<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />



<meta name="date" content="2022-01-20" />

<title>COVID-19 employment shock and second-tier safetynet</title>

<script src="data:application/javascript;base64,Ly8gUGFuZG9jIDIuOSBhZGRzIGF0dHJpYnV0ZXMgb24gYm90aCBoZWFkZXIgYW5kIGRpdi4gV2UgcmVtb3ZlIHRoZSBmb3JtZXIgKHRvCi8vIGJlIGNvbXBhdGlibGUgd2l0aCB0aGUgYmVoYXZpb3Igb2YgUGFuZG9jIDwgMi44KS4KZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uKGUpIHsKICB2YXIgaHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJkaXYuc2VjdGlvbltjbGFzcyo9J2xldmVsJ10gPiA6Zmlyc3QtY2hpbGQiKTsKICB2YXIgaSwgaCwgYTsKICBmb3IgKGkgPSAwOyBpIDwgaHMubGVuZ3RoOyBpKyspIHsKICAgIGggPSBoc1tpXTsKICAgIGlmICghL15oWzEtNl0kL2kudGVzdChoLnRhZ05hbWUpKSBjb250aW51ZTsgIC8vIGl0IHNob3VsZCBiZSBhIGhlYWRlciBoMS1oNgogICAgYSA9IGguYXR0cmlidXRlczsKICAgIHdoaWxlIChhLmxlbmd0aCA+IDApIGgucmVtb3ZlQXR0cmlidXRlKGFbMF0ubmFtZSk7CiAgfQp9KTsK"></script>
<script src="data:application/javascript;base64,LyohIGpRdWVyeSB2My42LjAgfCAoYykgT3BlbkpTIEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycyB8IGpxdWVyeS5vcmcvbGljZW5zZSAqLwohZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9ZS5kb2N1bWVudD90KGUsITApOmZ1bmN0aW9uKGUpe2lmKCFlLmRvY3VtZW50KXRocm93IG5ldyBFcnJvcigialF1ZXJ5IHJlcXVpcmVzIGEgd2luZG93IHdpdGggYSBkb2N1bWVudCIpO3JldHVybiB0KGUpfTp0KGUpfSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6dGhpcyxmdW5jdGlvbihDLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD1bXSxyPU9iamVjdC5nZXRQcm90b3R5cGVPZixzPXQuc2xpY2UsZz10LmZsYXQ/ZnVuY3Rpb24oZSl7cmV0dXJuIHQuZmxhdC5jYWxsKGUpfTpmdW5jdGlvbihlKXtyZXR1cm4gdC5jb25jYXQuYXBwbHkoW10sZSl9LHU9dC5wdXNoLGk9dC5pbmRleE9mLG49e30sbz1uLnRvU3RyaW5nLHY9bi5oYXNPd25Qcm9wZXJ0eSxhPXYudG9TdHJpbmcsbD1hLmNhbGwoT2JqZWN0KSx5PXt9LG09ZnVuY3Rpb24oZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGUmJiJudW1iZXIiIT10eXBlb2YgZS5ub2RlVHlwZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGUuaXRlbX0seD1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbCE9ZSYmZT09PWUud2luZG93fSxFPUMuZG9jdW1lbnQsYz17dHlwZTohMCxzcmM6ITAsbm9uY2U6ITAsbm9Nb2R1bGU6ITB9O2Z1bmN0aW9uIGIoZSx0LG4pe3ZhciByLGksbz0obj1ufHxFKS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtpZihvLnRleHQ9ZSx0KWZvcihyIGluIGMpKGk9dFtyXXx8dC5nZXRBdHRyaWJ1dGUmJnQuZ2V0QXR0cmlidXRlKHIpKSYmby5zZXRBdHRyaWJ1dGUocixpKTtuLmhlYWQuYXBwZW5kQ2hpbGQobykucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChvKX1mdW5jdGlvbiB3KGUpe3JldHVybiBudWxsPT1lP2UrIiI6Im9iamVjdCI9PXR5cGVvZiBlfHwiZnVuY3Rpb24iPT10eXBlb2YgZT9uW28uY2FsbChlKV18fCJvYmplY3QiOnR5cGVvZiBlfXZhciBmPSIzLjYuMCIsUz1mdW5jdGlvbihlLHQpe3JldHVybiBuZXcgUy5mbi5pbml0KGUsdCl9O2Z1bmN0aW9uIHAoZSl7dmFyIHQ9ISFlJiYibGVuZ3RoImluIGUmJmUubGVuZ3RoLG49dyhlKTtyZXR1cm4hbShlKSYmIXgoZSkmJigiYXJyYXkiPT09bnx8MD09PXR8fCJudW1iZXIiPT10eXBlb2YgdCYmMDx0JiZ0LTEgaW4gZSl9Uy5mbj1TLnByb3RvdHlwZT17anF1ZXJ5OmYsY29uc3RydWN0b3I6UyxsZW5ndGg6MCx0b0FycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIHMuY2FsbCh0aGlzKX0sZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lP3MuY2FsbCh0aGlzKTplPDA/dGhpc1tlK3RoaXMubGVuZ3RoXTp0aGlzW2VdfSxwdXNoU3RhY2s6ZnVuY3Rpb24oZSl7dmFyIHQ9Uy5tZXJnZSh0aGlzLmNvbnN0cnVjdG9yKCksZSk7cmV0dXJuIHQucHJldk9iamVjdD10aGlzLHR9LGVhY2g6ZnVuY3Rpb24oZSl7cmV0dXJuIFMuZWFjaCh0aGlzLGUpfSxtYXA6ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMucHVzaFN0YWNrKFMubWFwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4gbi5jYWxsKGUsdCxlKX0pKX0sc2xpY2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2socy5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSxmaXJzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKDApfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoLTEpfSxldmVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKFMuZ3JlcCh0aGlzLGZ1bmN0aW9uKGUsdCl7cmV0dXJuKHQrMSklMn0pKX0sb2RkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKFMuZ3JlcCh0aGlzLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQlMn0pKX0sZXE6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5sZW5ndGgsbj0rZSsoZTwwP3Q6MCk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKDA8PW4mJm48dD9bdGhpc1tuXV06W10pfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcmV2T2JqZWN0fHx0aGlzLmNvbnN0cnVjdG9yKCl9LHB1c2g6dSxzb3J0OnQuc29ydCxzcGxpY2U6dC5zcGxpY2V9LFMuZXh0ZW5kPVMuZm4uZXh0ZW5kPWZ1bmN0aW9uKCl7dmFyIGUsdCxuLHIsaSxvLGE9YXJndW1lbnRzWzBdfHx7fSxzPTEsdT1hcmd1bWVudHMubGVuZ3RoLGw9ITE7Zm9yKCJib29sZWFuIj09dHlwZW9mIGEmJihsPWEsYT1hcmd1bWVudHNbc118fHt9LHMrKyksIm9iamVjdCI9PXR5cGVvZiBhfHxtKGEpfHwoYT17fSkscz09PXUmJihhPXRoaXMscy0tKTtzPHU7cysrKWlmKG51bGwhPShlPWFyZ3VtZW50c1tzXSkpZm9yKHQgaW4gZSlyPWVbdF0sIl9fcHJvdG9fXyIhPT10JiZhIT09ciYmKGwmJnImJihTLmlzUGxhaW5PYmplY3Qocil8fChpPUFycmF5LmlzQXJyYXkocikpKT8obj1hW3RdLG89aSYmIUFycmF5LmlzQXJyYXkobik/W106aXx8Uy5pc1BsYWluT2JqZWN0KG4pP246e30saT0hMSxhW3RdPVMuZXh0ZW5kKGwsbyxyKSk6dm9pZCAwIT09ciYmKGFbdF09cikpO3JldHVybiBhfSxTLmV4dGVuZCh7ZXhwYW5kbzoialF1ZXJ5IisoZitNYXRoLnJhbmRvbSgpKS5yZXBsYWNlKC9cRC9nLCIiKSxpc1JlYWR5OiEwLGVycm9yOmZ1bmN0aW9uKGUpe3Rocm93IG5ldyBFcnJvcihlKX0sbm9vcDpmdW5jdGlvbigpe30saXNQbGFpbk9iamVjdDpmdW5jdGlvbihlKXt2YXIgdCxuO3JldHVybiEoIWV8fCJbb2JqZWN0IE9iamVjdF0iIT09by5jYWxsKGUpKSYmKCEodD1yKGUpKXx8ImZ1bmN0aW9uIj09dHlwZW9mKG49di5jYWxsKHQsImNvbnN0cnVjdG9yIikmJnQuY29uc3RydWN0b3IpJiZhLmNhbGwobik9PT1sKX0saXNFbXB0eU9iamVjdDpmdW5jdGlvbihlKXt2YXIgdDtmb3IodCBpbiBlKXJldHVybiExO3JldHVybiEwfSxnbG9iYWxFdmFsOmZ1bmN0aW9uKGUsdCxuKXtiKGUse25vbmNlOnQmJnQubm9uY2V9LG4pfSxlYWNoOmZ1bmN0aW9uKGUsdCl7dmFyIG4scj0wO2lmKHAoZSkpe2ZvcihuPWUubGVuZ3RoO3I8bjtyKyspaWYoITE9PT10LmNhbGwoZVtyXSxyLGVbcl0pKWJyZWFrfWVsc2UgZm9yKHIgaW4gZSlpZighMT09PXQuY2FsbChlW3JdLHIsZVtyXSkpYnJlYWs7cmV0dXJuIGV9LG1ha2VBcnJheTpmdW5jdGlvbihlLHQpe3ZhciBuPXR8fFtdO3JldHVybiBudWxsIT1lJiYocChPYmplY3QoZSkpP1MubWVyZ2Uobiwic3RyaW5nIj09dHlwZW9mIGU/W2VdOmUpOnUuY2FsbChuLGUpKSxufSxpbkFycmF5OmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbnVsbD09dD8tMTppLmNhbGwodCxlLG4pfSxtZXJnZTpmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0rdC5sZW5ndGgscj0wLGk9ZS5sZW5ndGg7cjxuO3IrKyllW2krK109dFtyXTtyZXR1cm4gZS5sZW5ndGg9aSxlfSxncmVwOmZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHI9W10saT0wLG89ZS5sZW5ndGgsYT0hbjtpPG87aSsrKSF0KGVbaV0saSkhPT1hJiZyLnB1c2goZVtpXSk7cmV0dXJuIHJ9LG1hcDpmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPTAsYT1bXTtpZihwKGUpKWZvcihyPWUubGVuZ3RoO288cjtvKyspbnVsbCE9KGk9dChlW29dLG8sbikpJiZhLnB1c2goaSk7ZWxzZSBmb3IobyBpbiBlKW51bGwhPShpPXQoZVtvXSxvLG4pKSYmYS5wdXNoKGkpO3JldHVybiBnKGEpfSxndWlkOjEsc3VwcG9ydDp5fSksImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKFMuZm5bU3ltYm9sLml0ZXJhdG9yXT10W1N5bWJvbC5pdGVyYXRvcl0pLFMuZWFjaCgiQm9vbGVhbiBOdW1iZXIgU3RyaW5nIEZ1bmN0aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdCBFcnJvciBTeW1ib2wiLnNwbGl0KCIgIiksZnVuY3Rpb24oZSx0KXtuWyJbb2JqZWN0ICIrdCsiXSJdPXQudG9Mb3dlckNhc2UoKX0pO3ZhciBkPWZ1bmN0aW9uKG4pe3ZhciBlLGQsYixvLGksaCxmLGcsdyx1LGwsVCxDLGEsRSx2LHMsYyx5LFM9InNpenpsZSIrMSpuZXcgRGF0ZSxwPW4uZG9jdW1lbnQsaz0wLHI9MCxtPXVlKCkseD11ZSgpLEE9dWUoKSxOPXVlKCksaj1mdW5jdGlvbihlLHQpe3JldHVybiBlPT09dCYmKGw9ITApLDB9LEQ9e30uaGFzT3duUHJvcGVydHksdD1bXSxxPXQucG9wLEw9dC5wdXNoLEg9dC5wdXNoLE89dC5zbGljZSxQPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPTAscj1lLmxlbmd0aDtuPHI7bisrKWlmKGVbbl09PT10KXJldHVybiBuO3JldHVybi0xfSxSPSJjaGVja2VkfHNlbGVjdGVkfGFzeW5jfGF1dG9mb2N1c3xhdXRvcGxheXxjb250cm9sc3xkZWZlcnxkaXNhYmxlZHxoaWRkZW58aXNtYXB8bG9vcHxtdWx0aXBsZXxvcGVufHJlYWRvbmx5fHJlcXVpcmVkfHNjb3BlZCIsTT0iW1xceDIwXFx0XFxyXFxuXFxmXSIsST0iKD86XFxcXFtcXGRhLWZBLUZdezEsNn0iK00rIj98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15cMC1cXHg3Zl0pKyIsVz0iXFxbIitNKyIqKCIrSSsiKSg/OiIrTSsiKihbKl4kfCF+XT89KSIrTSsiKig/OicoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg/OlxcXFwufFteXFxcXFwiXSkqKVwifCgiK0krIikpfCkiK00rIipcXF0iLEY9IjooIitJKyIpKD86XFwoKCgnKCg/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcIil8KCg/OlxcXFwufFteXFxcXCgpW1xcXV18IitXKyIpKil8LiopXFwpfCkiLEI9bmV3IFJlZ0V4cChNKyIrIiwiZyIpLCQ9bmV3IFJlZ0V4cCgiXiIrTSsiK3woKD86XnxbXlxcXFxdKSg/OlxcXFwuKSopIitNKyIrJCIsImciKSxfPW5ldyBSZWdFeHAoIl4iK00rIiosIitNKyIqIiksej1uZXcgUmVnRXhwKCJeIitNKyIqKFs+K35dfCIrTSsiKSIrTSsiKiIpLFU9bmV3IFJlZ0V4cChNKyJ8PiIpLFg9bmV3IFJlZ0V4cChGKSxWPW5ldyBSZWdFeHAoIl4iK0krIiQiKSxHPXtJRDpuZXcgUmVnRXhwKCJeIygiK0krIikiKSxDTEFTUzpuZXcgUmVnRXhwKCJeXFwuKCIrSSsiKSIpLFRBRzpuZXcgUmVnRXhwKCJeKCIrSSsifFsqXSkiKSxBVFRSOm5ldyBSZWdFeHAoIl4iK1cpLFBTRVVETzpuZXcgUmVnRXhwKCJeIitGKSxDSElMRDpuZXcgUmVnRXhwKCJeOihvbmx5fGZpcnN0fGxhc3R8bnRofG50aC1sYXN0KS0oY2hpbGR8b2YtdHlwZSkoPzpcXCgiK00rIiooZXZlbnxvZGR8KChbKy1dfCkoXFxkKilufCkiK00rIiooPzooWystXXwpIitNKyIqKFxcZCspfCkpIitNKyIqXFwpfCkiLCJpIiksYm9vbDpuZXcgUmVnRXhwKCJeKD86IitSKyIpJCIsImkiKSxuZWVkc0NvbnRleHQ6bmV3IFJlZ0V4cCgiXiIrTSsiKls+K35dfDooZXZlbnxvZGR8ZXF8Z3R8bHR8bnRofGZpcnN0fGxhc3QpKD86XFwoIitNKyIqKCg/Oi1cXGQpP1xcZCopIitNKyIqXFwpfCkoPz1bXi1dfCQpIiwiaSIpfSxZPS9IVE1MJC9pLFE9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaSxKPS9eaFxkJC9pLEs9L15bXntdK1x7XHMqXFtuYXRpdmUgXHcvLFo9L14oPzojKFtcdy1dKyl8KFx3Kyl8XC4oW1x3LV0rKSkkLyxlZT0vWyt+XS8sdGU9bmV3IFJlZ0V4cCgiXFxcXFtcXGRhLWZBLUZdezEsNn0iK00rIj98XFxcXChbXlxcclxcblxcZl0pIiwiZyIpLG5lPWZ1bmN0aW9uKGUsdCl7dmFyIG49IjB4IitlLnNsaWNlKDEpLTY1NTM2O3JldHVybiB0fHwobjwwP1N0cmluZy5mcm9tQ2hhckNvZGUobis2NTUzNik6U3RyaW5nLmZyb21DaGFyQ29kZShuPj4xMHw1NTI5NiwxMDIzJm58NTYzMjApKX0scmU9LyhbXDAtXHgxZlx4N2ZdfF4tP1xkKXxeLSR8W15cMC1ceDFmXHg3Zi1cdUZGRkZcdy1dL2csaWU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD8iXDAiPT09ZT8iXHVmZmZkIjplLnNsaWNlKDAsLTEpKyJcXCIrZS5jaGFyQ29kZUF0KGUubGVuZ3RoLTEpLnRvU3RyaW5nKDE2KSsiICI6IlxcIitlfSxvZT1mdW5jdGlvbigpe1QoKX0sYWU9YmUoZnVuY3Rpb24oZSl7cmV0dXJuITA9PT1lLmRpc2FibGVkJiYiZmllbGRzZXQiPT09ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpfSx7ZGlyOiJwYXJlbnROb2RlIixuZXh0OiJsZWdlbmQifSk7dHJ5e0guYXBwbHkodD1PLmNhbGwocC5jaGlsZE5vZGVzKSxwLmNoaWxkTm9kZXMpLHRbcC5jaGlsZE5vZGVzLmxlbmd0aF0ubm9kZVR5cGV9Y2F0Y2goZSl7SD17YXBwbHk6dC5sZW5ndGg/ZnVuY3Rpb24oZSx0KXtMLmFwcGx5KGUsTy5jYWxsKHQpKX06ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmxlbmd0aCxyPTA7d2hpbGUoZVtuKytdPXRbcisrXSk7ZS5sZW5ndGg9bi0xfX19ZnVuY3Rpb24gc2UodCxlLG4scil7dmFyIGksbyxhLHMsdSxsLGMsZj1lJiZlLm93bmVyRG9jdW1lbnQscD1lP2Uubm9kZVR5cGU6OTtpZihuPW58fFtdLCJzdHJpbmciIT10eXBlb2YgdHx8IXR8fDEhPT1wJiY5IT09cCYmMTEhPT1wKXJldHVybiBuO2lmKCFyJiYoVChlKSxlPWV8fEMsRSkpe2lmKDExIT09cCYmKHU9Wi5leGVjKHQpKSlpZihpPXVbMV0pe2lmKDk9PT1wKXtpZighKGE9ZS5nZXRFbGVtZW50QnlJZChpKSkpcmV0dXJuIG47aWYoYS5pZD09PWkpcmV0dXJuIG4ucHVzaChhKSxufWVsc2UgaWYoZiYmKGE9Zi5nZXRFbGVtZW50QnlJZChpKSkmJnkoZSxhKSYmYS5pZD09PWkpcmV0dXJuIG4ucHVzaChhKSxufWVsc2V7aWYodVsyXSlyZXR1cm4gSC5hcHBseShuLGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUodCkpLG47aWYoKGk9dVszXSkmJmQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKXJldHVybiBILmFwcGx5KG4sZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGkpKSxufWlmKGQucXNhJiYhTlt0KyIgIl0mJighdnx8IXYudGVzdCh0KSkmJigxIT09cHx8Im9iamVjdCIhPT1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpKXtpZihjPXQsZj1lLDE9PT1wJiYoVS50ZXN0KHQpfHx6LnRlc3QodCkpKXsoZj1lZS50ZXN0KHQpJiZ5ZShlLnBhcmVudE5vZGUpfHxlKT09PWUmJmQuc2NvcGV8fCgocz1lLmdldEF0dHJpYnV0ZSgiaWQiKSk/cz1zLnJlcGxhY2UocmUsaWUpOmUuc2V0QXR0cmlidXRlKCJpZCIscz1TKSksbz0obD1oKHQpKS5sZW5ndGg7d2hpbGUoby0tKWxbb109KHM/IiMiK3M6IjpzY29wZSIpKyIgIit4ZShsW29dKTtjPWwuam9pbigiLCIpfXRyeXtyZXR1cm4gSC5hcHBseShuLGYucXVlcnlTZWxlY3RvckFsbChjKSksbn1jYXRjaChlKXtOKHQsITApfWZpbmFsbHl7cz09PVMmJmUucmVtb3ZlQXR0cmlidXRlKCJpZCIpfX19cmV0dXJuIGcodC5yZXBsYWNlKCQsIiQxIiksZSxuLHIpfWZ1bmN0aW9uIHVlKCl7dmFyIHI9W107cmV0dXJuIGZ1bmN0aW9uIGUodCxuKXtyZXR1cm4gci5wdXNoKHQrIiAiKT5iLmNhY2hlTGVuZ3RoJiZkZWxldGUgZVtyLnNoaWZ0KCldLGVbdCsiICJdPW59fWZ1bmN0aW9uIGxlKGUpe3JldHVybiBlW1NdPSEwLGV9ZnVuY3Rpb24gY2UoZSl7dmFyIHQ9Qy5jcmVhdGVFbGVtZW50KCJmaWVsZHNldCIpO3RyeXtyZXR1cm4hIWUodCl9Y2F0Y2goZSl7cmV0dXJuITF9ZmluYWxseXt0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KSx0PW51bGx9fWZ1bmN0aW9uIGZlKGUsdCl7dmFyIG49ZS5zcGxpdCgifCIpLHI9bi5sZW5ndGg7d2hpbGUoci0tKWIuYXR0ckhhbmRsZVtuW3JdXT10fWZ1bmN0aW9uIHBlKGUsdCl7dmFyIG49dCYmZSxyPW4mJjE9PT1lLm5vZGVUeXBlJiYxPT09dC5ub2RlVHlwZSYmZS5zb3VyY2VJbmRleC10LnNvdXJjZUluZGV4O2lmKHIpcmV0dXJuIHI7aWYobil3aGlsZShuPW4ubmV4dFNpYmxpbmcpaWYobj09PXQpcmV0dXJuLTE7cmV0dXJuIGU/MTotMX1mdW5jdGlvbiBkZSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuImlucHV0Ij09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmZS50eXBlPT09dH19ZnVuY3Rpb24gaGUobil7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciB0PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4oImlucHV0Ij09PXR8fCJidXR0b24iPT09dCkmJmUudHlwZT09PW59fWZ1bmN0aW9uIGdlKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4iZm9ybSJpbiBlP2UucGFyZW50Tm9kZSYmITE9PT1lLmRpc2FibGVkPyJsYWJlbCJpbiBlPyJsYWJlbCJpbiBlLnBhcmVudE5vZGU/ZS5wYXJlbnROb2RlLmRpc2FibGVkPT09dDplLmRpc2FibGVkPT09dDplLmlzRGlzYWJsZWQ9PT10fHxlLmlzRGlzYWJsZWQhPT0hdCYmYWUoZSk9PT10OmUuZGlzYWJsZWQ9PT10OiJsYWJlbCJpbiBlJiZlLmRpc2FibGVkPT09dH19ZnVuY3Rpb24gdmUoYSl7cmV0dXJuIGxlKGZ1bmN0aW9uKG8pe3JldHVybiBvPStvLGxlKGZ1bmN0aW9uKGUsdCl7dmFyIG4scj1hKFtdLGUubGVuZ3RoLG8pLGk9ci5sZW5ndGg7d2hpbGUoaS0tKWVbbj1yW2ldXSYmKGVbbl09ISh0W25dPWVbbl0pKX0pfSl9ZnVuY3Rpb24geWUoZSl7cmV0dXJuIGUmJiJ1bmRlZmluZWQiIT10eXBlb2YgZS5nZXRFbGVtZW50c0J5VGFnTmFtZSYmZX1mb3IoZSBpbiBkPXNlLnN1cHBvcnQ9e30saT1zZS5pc1hNTD1mdW5jdGlvbihlKXt2YXIgdD1lJiZlLm5hbWVzcGFjZVVSSSxuPWUmJihlLm93bmVyRG9jdW1lbnR8fGUpLmRvY3VtZW50RWxlbWVudDtyZXR1cm4hWS50ZXN0KHR8fG4mJm4ubm9kZU5hbWV8fCJIVE1MIil9LFQ9c2Uuc2V0RG9jdW1lbnQ9ZnVuY3Rpb24oZSl7dmFyIHQsbixyPWU/ZS5vd25lckRvY3VtZW50fHxlOnA7cmV0dXJuIHIhPUMmJjk9PT1yLm5vZGVUeXBlJiZyLmRvY3VtZW50RWxlbWVudCYmKGE9KEM9cikuZG9jdW1lbnRFbGVtZW50LEU9IWkoQykscCE9QyYmKG49Qy5kZWZhdWx0VmlldykmJm4udG9wIT09biYmKG4uYWRkRXZlbnRMaXN0ZW5lcj9uLmFkZEV2ZW50TGlzdGVuZXIoInVubG9hZCIsb2UsITEpOm4uYXR0YWNoRXZlbnQmJm4uYXR0YWNoRXZlbnQoIm9udW5sb2FkIixvZSkpLGQuc2NvcGU9Y2UoZnVuY3Rpb24oZSl7cmV0dXJuIGEuYXBwZW5kQ2hpbGQoZSkuYXBwZW5kQ2hpbGQoQy5jcmVhdGVFbGVtZW50KCJkaXYiKSksInVuZGVmaW5lZCIhPXR5cGVvZiBlLnF1ZXJ5U2VsZWN0b3JBbGwmJiFlLnF1ZXJ5U2VsZWN0b3JBbGwoIjpzY29wZSBmaWVsZHNldCBkaXYiKS5sZW5ndGh9KSxkLmF0dHJpYnV0ZXM9Y2UoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2xhc3NOYW1lPSJpIiwhZS5nZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIpfSksZC5nZXRFbGVtZW50c0J5VGFnTmFtZT1jZShmdW5jdGlvbihlKXtyZXR1cm4gZS5hcHBlbmRDaGlsZChDLmNyZWF0ZUNvbW1lbnQoIiIpKSwhZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aH0pLGQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZT1LLnRlc3QoQy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKSxkLmdldEJ5SWQ9Y2UoZnVuY3Rpb24oZSl7cmV0dXJuIGEuYXBwZW5kQ2hpbGQoZSkuaWQ9UywhQy5nZXRFbGVtZW50c0J5TmFtZXx8IUMuZ2V0RWxlbWVudHNCeU5hbWUoUykubGVuZ3RofSksZC5nZXRCeUlkPyhiLmZpbHRlci5JRD1mdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UodGUsbmUpO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRBdHRyaWJ1dGUoImlkIik9PT10fX0sYi5maW5kLklEPWZ1bmN0aW9uKGUsdCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB0LmdldEVsZW1lbnRCeUlkJiZFKXt2YXIgbj10LmdldEVsZW1lbnRCeUlkKGUpO3JldHVybiBuP1tuXTpbXX19KTooYi5maWx0ZXIuSUQ9ZnVuY3Rpb24oZSl7dmFyIG49ZS5yZXBsYWNlKHRlLG5lKTtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQ9InVuZGVmaW5lZCIhPXR5cGVvZiBlLmdldEF0dHJpYnV0ZU5vZGUmJmUuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKTtyZXR1cm4gdCYmdC52YWx1ZT09PW59fSxiLmZpbmQuSUQ9ZnVuY3Rpb24oZSx0KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHQuZ2V0RWxlbWVudEJ5SWQmJkUpe3ZhciBuLHIsaSxvPXQuZ2V0RWxlbWVudEJ5SWQoZSk7aWYobyl7aWYoKG49by5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpKSYmbi52YWx1ZT09PWUpcmV0dXJuW29dO2k9dC5nZXRFbGVtZW50c0J5TmFtZShlKSxyPTA7d2hpbGUobz1pW3IrK10paWYoKG49by5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpKSYmbi52YWx1ZT09PWUpcmV0dXJuW29dfXJldHVybltdfX0pLGIuZmluZC5UQUc9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZT9mdW5jdGlvbihlLHQpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgdC5nZXRFbGVtZW50c0J5VGFnTmFtZT90LmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpOmQucXNhP3QucXVlcnlTZWxlY3RvckFsbChlKTp2b2lkIDB9OmZ1bmN0aW9uKGUsdCl7dmFyIG4scj1bXSxpPTAsbz10LmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpO2lmKCIqIj09PWUpe3doaWxlKG49b1tpKytdKTE9PT1uLm5vZGVUeXBlJiZyLnB1c2gobik7cmV0dXJuIHJ9cmV0dXJuIG99LGIuZmluZC5DTEFTUz1kLmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJmZ1bmN0aW9uKGUsdCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJkUpcmV0dXJuIHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShlKX0scz1bXSx2PVtdLChkLnFzYT1LLnRlc3QoQy5xdWVyeVNlbGVjdG9yQWxsKSkmJihjZShmdW5jdGlvbihlKXt2YXIgdDthLmFwcGVuZENoaWxkKGUpLmlubmVySFRNTD0iPGEgaWQ9JyIrUysiJz48L2E+PHNlbGVjdCBpZD0nIitTKyItXHJcXCcgbXNhbGxvd2NhcHR1cmU9Jyc+PG9wdGlvbiBzZWxlY3RlZD0nJz48L29wdGlvbj48L3NlbGVjdD4iLGUucXVlcnlTZWxlY3RvckFsbCgiW21zYWxsb3djYXB0dXJlXj0nJ10iKS5sZW5ndGgmJnYucHVzaCgiWypeJF09IitNKyIqKD86Jyd8XCJcIikiKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIltzZWxlY3RlZF0iKS5sZW5ndGh8fHYucHVzaCgiXFxbIitNKyIqKD86dmFsdWV8IitSKyIpIiksZS5xdWVyeVNlbGVjdG9yQWxsKCJbaWR+PSIrUysiLV0iKS5sZW5ndGh8fHYucHVzaCgifj0iKSwodD1DLmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLnNldEF0dHJpYnV0ZSgibmFtZSIsIiIpLGUuYXBwZW5kQ2hpbGQodCksZS5xdWVyeVNlbGVjdG9yQWxsKCJbbmFtZT0nJ10iKS5sZW5ndGh8fHYucHVzaCgiXFxbIitNKyIqbmFtZSIrTSsiKj0iK00rIiooPzonJ3xcIlwiKSIpLGUucXVlcnlTZWxlY3RvckFsbCgiOmNoZWNrZWQiKS5sZW5ndGh8fHYucHVzaCgiOmNoZWNrZWQiKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoImEjIitTKyIrKiIpLmxlbmd0aHx8di5wdXNoKCIuIy4rWyt+XSIpLGUucXVlcnlTZWxlY3RvckFsbCgiXFxcZiIpLHYucHVzaCgiW1xcclxcblxcZl0iKX0pLGNlKGZ1bmN0aW9uKGUpe2UuaW5uZXJIVE1MPSI8YSBocmVmPScnIGRpc2FibGVkPSdkaXNhYmxlZCc+PC9hPjxzZWxlY3QgZGlzYWJsZWQ9J2Rpc2FibGVkJz48b3B0aW9uLz48L3NlbGVjdD4iO3ZhciB0PUMuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTt0LnNldEF0dHJpYnV0ZSgidHlwZSIsImhpZGRlbiIpLGUuYXBwZW5kQ2hpbGQodCkuc2V0QXR0cmlidXRlKCJuYW1lIiwiRCIpLGUucXVlcnlTZWxlY3RvckFsbCgiW25hbWU9ZF0iKS5sZW5ndGgmJnYucHVzaCgibmFtZSIrTSsiKlsqXiR8IX5dPz0iKSwyIT09ZS5xdWVyeVNlbGVjdG9yQWxsKCI6ZW5hYmxlZCIpLmxlbmd0aCYmdi5wdXNoKCI6ZW5hYmxlZCIsIjpkaXNhYmxlZCIpLGEuYXBwZW5kQ2hpbGQoZSkuZGlzYWJsZWQ9ITAsMiE9PWUucXVlcnlTZWxlY3RvckFsbCgiOmRpc2FibGVkIikubGVuZ3RoJiZ2LnB1c2goIjplbmFibGVkIiwiOmRpc2FibGVkIiksZS5xdWVyeVNlbGVjdG9yQWxsKCIqLDp4Iiksdi5wdXNoKCIsLio6Iil9KSksKGQubWF0Y2hlc1NlbGVjdG9yPUsudGVzdChjPWEubWF0Y2hlc3x8YS53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fGEubW96TWF0Y2hlc1NlbGVjdG9yfHxhLm9NYXRjaGVzU2VsZWN0b3J8fGEubXNNYXRjaGVzU2VsZWN0b3IpKSYmY2UoZnVuY3Rpb24oZSl7ZC5kaXNjb25uZWN0ZWRNYXRjaD1jLmNhbGwoZSwiKiIpLGMuY2FsbChlLCJbcyE9JyddOngiKSxzLnB1c2goIiE9IixGKX0pLHY9di5sZW5ndGgmJm5ldyBSZWdFeHAodi5qb2luKCJ8IikpLHM9cy5sZW5ndGgmJm5ldyBSZWdFeHAocy5qb2luKCJ8IikpLHQ9Sy50ZXN0KGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24pLHk9dHx8Sy50ZXN0KGEuY29udGFpbnMpP2Z1bmN0aW9uKGUsdCl7dmFyIG49OT09PWUubm9kZVR5cGU/ZS5kb2N1bWVudEVsZW1lbnQ6ZSxyPXQmJnQucGFyZW50Tm9kZTtyZXR1cm4gZT09PXJ8fCEoIXJ8fDEhPT1yLm5vZGVUeXBlfHwhKG4uY29udGFpbnM/bi5jb250YWlucyhyKTplLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiYxNiZlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHIpKSl9OmZ1bmN0aW9uKGUsdCl7aWYodCl3aGlsZSh0PXQucGFyZW50Tm9kZSlpZih0PT09ZSlyZXR1cm4hMDtyZXR1cm4hMX0saj10P2Z1bmN0aW9uKGUsdCl7aWYoZT09PXQpcmV0dXJuIGw9ITAsMDt2YXIgbj0hZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbi0hdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbjtyZXR1cm4gbnx8KDEmKG49KGUub3duZXJEb2N1bWVudHx8ZSk9PSh0Lm93bmVyRG9jdW1lbnR8fHQpP2UuY29tcGFyZURvY3VtZW50UG9zaXRpb24odCk6MSl8fCFkLnNvcnREZXRhY2hlZCYmdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlKT09PW4/ZT09Q3x8ZS5vd25lckRvY3VtZW50PT1wJiZ5KHAsZSk/LTE6dD09Q3x8dC5vd25lckRvY3VtZW50PT1wJiZ5KHAsdCk/MTp1P1AodSxlKS1QKHUsdCk6MDo0Jm4/LTE6MSl9OmZ1bmN0aW9uKGUsdCl7aWYoZT09PXQpcmV0dXJuIGw9ITAsMDt2YXIgbixyPTAsaT1lLnBhcmVudE5vZGUsbz10LnBhcmVudE5vZGUsYT1bZV0scz1bdF07aWYoIWl8fCFvKXJldHVybiBlPT1DPy0xOnQ9PUM/MTppPy0xOm8/MTp1P1AodSxlKS1QKHUsdCk6MDtpZihpPT09bylyZXR1cm4gcGUoZSx0KTtuPWU7d2hpbGUobj1uLnBhcmVudE5vZGUpYS51bnNoaWZ0KG4pO249dDt3aGlsZShuPW4ucGFyZW50Tm9kZSlzLnVuc2hpZnQobik7d2hpbGUoYVtyXT09PXNbcl0pcisrO3JldHVybiByP3BlKGFbcl0sc1tyXSk6YVtyXT09cD8tMTpzW3JdPT1wPzE6MH0pLEN9LHNlLm1hdGNoZXM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gc2UoZSxudWxsLG51bGwsdCl9LHNlLm1hdGNoZXNTZWxlY3Rvcj1mdW5jdGlvbihlLHQpe2lmKFQoZSksZC5tYXRjaGVzU2VsZWN0b3ImJkUmJiFOW3QrIiAiXSYmKCFzfHwhcy50ZXN0KHQpKSYmKCF2fHwhdi50ZXN0KHQpKSl0cnl7dmFyIG49Yy5jYWxsKGUsdCk7aWYobnx8ZC5kaXNjb25uZWN0ZWRNYXRjaHx8ZS5kb2N1bWVudCYmMTEhPT1lLmRvY3VtZW50Lm5vZGVUeXBlKXJldHVybiBufWNhdGNoKGUpe04odCwhMCl9cmV0dXJuIDA8c2UodCxDLG51bGwsW2VdKS5sZW5ndGh9LHNlLmNvbnRhaW5zPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKGUub3duZXJEb2N1bWVudHx8ZSkhPUMmJlQoZSkseShlLHQpfSxzZS5hdHRyPWZ1bmN0aW9uKGUsdCl7KGUub3duZXJEb2N1bWVudHx8ZSkhPUMmJlQoZSk7dmFyIG49Yi5hdHRySGFuZGxlW3QudG9Mb3dlckNhc2UoKV0scj1uJiZELmNhbGwoYi5hdHRySGFuZGxlLHQudG9Mb3dlckNhc2UoKSk/bihlLHQsIUUpOnZvaWQgMDtyZXR1cm4gdm9pZCAwIT09cj9yOmQuYXR0cmlidXRlc3x8IUU/ZS5nZXRBdHRyaWJ1dGUodCk6KHI9ZS5nZXRBdHRyaWJ1dGVOb2RlKHQpKSYmci5zcGVjaWZpZWQ/ci52YWx1ZTpudWxsfSxzZS5lc2NhcGU9ZnVuY3Rpb24oZSl7cmV0dXJuKGUrIiIpLnJlcGxhY2UocmUsaWUpfSxzZS5lcnJvcj1mdW5jdGlvbihlKXt0aHJvdyBuZXcgRXJyb3IoIlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrZSl9LHNlLnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oZSl7dmFyIHQsbj1bXSxyPTAsaT0wO2lmKGw9IWQuZGV0ZWN0RHVwbGljYXRlcyx1PSFkLnNvcnRTdGFibGUmJmUuc2xpY2UoMCksZS5zb3J0KGopLGwpe3doaWxlKHQ9ZVtpKytdKXQ9PT1lW2ldJiYocj1uLnB1c2goaSkpO3doaWxlKHItLSllLnNwbGljZShuW3JdLDEpfXJldHVybiB1PW51bGwsZX0sbz1zZS5nZXRUZXh0PWZ1bmN0aW9uKGUpe3ZhciB0LG49IiIscj0wLGk9ZS5ub2RlVHlwZTtpZihpKXtpZigxPT09aXx8OT09PWl8fDExPT09aSl7aWYoInN0cmluZyI9PXR5cGVvZiBlLnRleHRDb250ZW50KXJldHVybiBlLnRleHRDb250ZW50O2ZvcihlPWUuZmlyc3RDaGlsZDtlO2U9ZS5uZXh0U2libGluZyluKz1vKGUpfWVsc2UgaWYoMz09PWl8fDQ9PT1pKXJldHVybiBlLm5vZGVWYWx1ZX1lbHNlIHdoaWxlKHQ9ZVtyKytdKW4rPW8odCk7cmV0dXJuIG59LChiPXNlLnNlbGVjdG9ycz17Y2FjaGVMZW5ndGg6NTAsY3JlYXRlUHNldWRvOmxlLG1hdGNoOkcsYXR0ckhhbmRsZTp7fSxmaW5kOnt9LHJlbGF0aXZlOnsiPiI6e2RpcjoicGFyZW50Tm9kZSIsZmlyc3Q6ITB9LCIgIjp7ZGlyOiJwYXJlbnROb2RlIn0sIisiOntkaXI6InByZXZpb3VzU2libGluZyIsZmlyc3Q6ITB9LCJ+Ijp7ZGlyOiJwcmV2aW91c1NpYmxpbmcifX0scHJlRmlsdGVyOntBVFRSOmZ1bmN0aW9uKGUpe3JldHVybiBlWzFdPWVbMV0ucmVwbGFjZSh0ZSxuZSksZVszXT0oZVszXXx8ZVs0XXx8ZVs1XXx8IiIpLnJlcGxhY2UodGUsbmUpLCJ+PSI9PT1lWzJdJiYoZVszXT0iICIrZVszXSsiICIpLGUuc2xpY2UoMCw0KX0sQ0hJTEQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGVbMV09ZVsxXS50b0xvd2VyQ2FzZSgpLCJudGgiPT09ZVsxXS5zbGljZSgwLDMpPyhlWzNdfHxzZS5lcnJvcihlWzBdKSxlWzRdPSsoZVs0XT9lWzVdKyhlWzZdfHwxKToyKigiZXZlbiI9PT1lWzNdfHwib2RkIj09PWVbM10pKSxlWzVdPSsoZVs3XStlWzhdfHwib2RkIj09PWVbM10pKTplWzNdJiZzZS5lcnJvcihlWzBdKSxlfSxQU0VVRE86ZnVuY3Rpb24oZSl7dmFyIHQsbj0hZVs2XSYmZVsyXTtyZXR1cm4gRy5DSElMRC50ZXN0KGVbMF0pP251bGw6KGVbM10/ZVsyXT1lWzRdfHxlWzVdfHwiIjpuJiZYLnRlc3QobikmJih0PWgobiwhMCkpJiYodD1uLmluZGV4T2YoIikiLG4ubGVuZ3RoLXQpLW4ubGVuZ3RoKSYmKGVbMF09ZVswXS5zbGljZSgwLHQpLGVbMl09bi5zbGljZSgwLHQpKSxlLnNsaWNlKDAsMykpfX0sZmlsdGVyOntUQUc6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yZXBsYWNlKHRlLG5lKS50b0xvd2VyQ2FzZSgpO3JldHVybiIqIj09PWU/ZnVuY3Rpb24oKXtyZXR1cm4hMH06ZnVuY3Rpb24oZSl7cmV0dXJuIGUubm9kZU5hbWUmJmUubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXR9fSxDTEFTUzpmdW5jdGlvbihlKXt2YXIgdD1tW2UrIiAiXTtyZXR1cm4gdHx8KHQ9bmV3IFJlZ0V4cCgiKF58IitNKyIpIitlKyIoIitNKyJ8JCkiKSkmJm0oZSxmdW5jdGlvbihlKXtyZXR1cm4gdC50ZXN0KCJzdHJpbmciPT10eXBlb2YgZS5jbGFzc05hbWUmJmUuY2xhc3NOYW1lfHwidW5kZWZpbmVkIiE9dHlwZW9mIGUuZ2V0QXR0cmlidXRlJiZlLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpfSl9LEFUVFI6ZnVuY3Rpb24obixyLGkpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgdD1zZS5hdHRyKGUsbik7cmV0dXJuIG51bGw9PXQ/IiE9Ij09PXI6IXJ8fCh0Kz0iIiwiPSI9PT1yP3Q9PT1pOiIhPSI9PT1yP3QhPT1pOiJePSI9PT1yP2kmJjA9PT10LmluZGV4T2YoaSk6Iio9Ij09PXI/aSYmLTE8dC5pbmRleE9mKGkpOiIkPSI9PT1yP2kmJnQuc2xpY2UoLWkubGVuZ3RoKT09PWk6In49Ij09PXI/LTE8KCIgIit0LnJlcGxhY2UoQiwiICIpKyIgIikuaW5kZXhPZihpKToifD0iPT09ciYmKHQ9PT1pfHx0LnNsaWNlKDAsaS5sZW5ndGgrMSk9PT1pKyItIikpfX0sQ0hJTEQ6ZnVuY3Rpb24oaCxlLHQsZyx2KXt2YXIgeT0ibnRoIiE9PWguc2xpY2UoMCwzKSxtPSJsYXN0IiE9PWguc2xpY2UoLTQpLHg9Im9mLXR5cGUiPT09ZTtyZXR1cm4gMT09PWcmJjA9PT12P2Z1bmN0aW9uKGUpe3JldHVybiEhZS5wYXJlbnROb2RlfTpmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGEscyx1LGw9eSE9PW0/Im5leHRTaWJsaW5nIjoicHJldmlvdXNTaWJsaW5nIixjPWUucGFyZW50Tm9kZSxmPXgmJmUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxwPSFuJiYheCxkPSExO2lmKGMpe2lmKHkpe3doaWxlKGwpe2E9ZTt3aGlsZShhPWFbbF0paWYoeD9hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1mOjE9PT1hLm5vZGVUeXBlKXJldHVybiExO3U9bD0ib25seSI9PT1oJiYhdSYmIm5leHRTaWJsaW5nIn1yZXR1cm4hMH1pZih1PVttP2MuZmlyc3RDaGlsZDpjLmxhc3RDaGlsZF0sbSYmcCl7ZD0ocz0ocj0oaT0obz0oYT1jKVtTXXx8KGFbU109e30pKVthLnVuaXF1ZUlEXXx8KG9bYS51bmlxdWVJRF09e30pKVtoXXx8W10pWzBdPT09ayYmclsxXSkmJnJbMl0sYT1zJiZjLmNoaWxkTm9kZXNbc107d2hpbGUoYT0rK3MmJmEmJmFbbF18fChkPXM9MCl8fHUucG9wKCkpaWYoMT09PWEubm9kZVR5cGUmJisrZCYmYT09PWUpe2lbaF09W2sscyxkXTticmVha319ZWxzZSBpZihwJiYoZD1zPShyPShpPShvPShhPWUpW1NdfHwoYVtTXT17fSkpW2EudW5pcXVlSURdfHwob1thLnVuaXF1ZUlEXT17fSkpW2hdfHxbXSlbMF09PT1rJiZyWzFdKSwhMT09PWQpd2hpbGUoYT0rK3MmJmEmJmFbbF18fChkPXM9MCl8fHUucG9wKCkpaWYoKHg/YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09ZjoxPT09YS5ub2RlVHlwZSkmJisrZCYmKHAmJigoaT0obz1hW1NdfHwoYVtTXT17fSkpW2EudW5pcXVlSURdfHwob1thLnVuaXF1ZUlEXT17fSkpW2hdPVtrLGRdKSxhPT09ZSkpYnJlYWs7cmV0dXJuKGQtPXYpPT09Z3x8ZCVnPT0wJiYwPD1kL2d9fX0sUFNFVURPOmZ1bmN0aW9uKGUsbyl7dmFyIHQsYT1iLnBzZXVkb3NbZV18fGIuc2V0RmlsdGVyc1tlLnRvTG93ZXJDYXNlKCldfHxzZS5lcnJvcigidW5zdXBwb3J0ZWQgcHNldWRvOiAiK2UpO3JldHVybiBhW1NdP2Eobyk6MTxhLmxlbmd0aD8odD1bZSxlLCIiLG9dLGIuc2V0RmlsdGVycy5oYXNPd25Qcm9wZXJ0eShlLnRvTG93ZXJDYXNlKCkpP2xlKGZ1bmN0aW9uKGUsdCl7dmFyIG4scj1hKGUsbyksaT1yLmxlbmd0aDt3aGlsZShpLS0pZVtuPVAoZSxyW2ldKV09ISh0W25dPXJbaV0pfSk6ZnVuY3Rpb24oZSl7cmV0dXJuIGEoZSwwLHQpfSk6YX19LHBzZXVkb3M6e25vdDpsZShmdW5jdGlvbihlKXt2YXIgcj1bXSxpPVtdLHM9ZihlLnJlcGxhY2UoJCwiJDEiKSk7cmV0dXJuIHNbU10/bGUoZnVuY3Rpb24oZSx0LG4scil7dmFyIGksbz1zKGUsbnVsbCxyLFtdKSxhPWUubGVuZ3RoO3doaWxlKGEtLSkoaT1vW2FdKSYmKGVbYV09ISh0W2FdPWkpKX0pOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gclswXT1lLHMocixudWxsLG4saSksclswXT1udWxsLCFpLnBvcCgpfX0pLGhhczpsZShmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIDA8c2UodCxlKS5sZW5ndGh9fSksY29udGFpbnM6bGUoZnVuY3Rpb24odCl7cmV0dXJuIHQ9dC5yZXBsYWNlKHRlLG5lKSxmdW5jdGlvbihlKXtyZXR1cm4tMTwoZS50ZXh0Q29udGVudHx8byhlKSkuaW5kZXhPZih0KX19KSxsYW5nOmxlKGZ1bmN0aW9uKG4pe3JldHVybiBWLnRlc3Qobnx8IiIpfHxzZS5lcnJvcigidW5zdXBwb3J0ZWQgbGFuZzogIituKSxuPW4ucmVwbGFjZSh0ZSxuZSkudG9Mb3dlckNhc2UoKSxmdW5jdGlvbihlKXt2YXIgdDtkb3tpZih0PUU/ZS5sYW5nOmUuZ2V0QXR0cmlidXRlKCJ4bWw6bGFuZyIpfHxlLmdldEF0dHJpYnV0ZSgibGFuZyIpKXJldHVybih0PXQudG9Mb3dlckNhc2UoKSk9PT1ufHwwPT09dC5pbmRleE9mKG4rIi0iKX13aGlsZSgoZT1lLnBhcmVudE5vZGUpJiYxPT09ZS5ub2RlVHlwZSk7cmV0dXJuITF9fSksdGFyZ2V0OmZ1bmN0aW9uKGUpe3ZhciB0PW4ubG9jYXRpb24mJm4ubG9jYXRpb24uaGFzaDtyZXR1cm4gdCYmdC5zbGljZSgxKT09PWUuaWR9LHJvb3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1hfSxmb2N1czpmdW5jdGlvbihlKXtyZXR1cm4gZT09PUMuYWN0aXZlRWxlbWVudCYmKCFDLmhhc0ZvY3VzfHxDLmhhc0ZvY3VzKCkpJiYhIShlLnR5cGV8fGUuaHJlZnx8fmUudGFiSW5kZXgpfSxlbmFibGVkOmdlKCExKSxkaXNhYmxlZDpnZSghMCksY2hlY2tlZDpmdW5jdGlvbihlKXt2YXIgdD1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PXQmJiEhZS5jaGVja2VkfHwib3B0aW9uIj09PXQmJiEhZS5zZWxlY3RlZH0sc2VsZWN0ZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucGFyZW50Tm9kZSYmZS5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgsITA9PT1lLnNlbGVjdGVkfSxlbXB0eTpmdW5jdGlvbihlKXtmb3IoZT1lLmZpcnN0Q2hpbGQ7ZTtlPWUubmV4dFNpYmxpbmcpaWYoZS5ub2RlVHlwZTw2KXJldHVybiExO3JldHVybiEwfSxwYXJlbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIWIucHNldWRvcy5lbXB0eShlKX0saGVhZGVyOmZ1bmN0aW9uKGUpe3JldHVybiBKLnRlc3QoZS5ub2RlTmFtZSl9LGlucHV0OmZ1bmN0aW9uKGUpe3JldHVybiBRLnRlc3QoZS5ub2RlTmFtZSl9LGJ1dHRvbjpmdW5jdGlvbihlKXt2YXIgdD1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PXQmJiJidXR0b24iPT09ZS50eXBlfHwiYnV0dG9uIj09PXR9LHRleHQ6ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuImlucHV0Ij09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmInRleHQiPT09ZS50eXBlJiYobnVsbD09KHQ9ZS5nZXRBdHRyaWJ1dGUoInR5cGUiKSl8fCJ0ZXh0Ij09PXQudG9Mb3dlckNhc2UoKSl9LGZpcnN0OnZlKGZ1bmN0aW9uKCl7cmV0dXJuWzBdfSksbGFzdDp2ZShmdW5jdGlvbihlLHQpe3JldHVyblt0LTFdfSksZXE6dmUoZnVuY3Rpb24oZSx0LG4pe3JldHVybltuPDA/bit0Om5dfSksZXZlbjp2ZShmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0wO248dDtuKz0yKWUucHVzaChuKTtyZXR1cm4gZX0pLG9kZDp2ZShmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0xO248dDtuKz0yKWUucHVzaChuKTtyZXR1cm4gZX0pLGx0OnZlKGZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHI9bjwwP24rdDp0PG4/dDpuOzA8PS0tcjspZS5wdXNoKHIpO3JldHVybiBlfSksZ3Q6dmUoZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcj1uPDA/bit0Om47KytyPHQ7KWUucHVzaChyKTtyZXR1cm4gZX0pfX0pLnBzZXVkb3MubnRoPWIucHNldWRvcy5lcSx7cmFkaW86ITAsY2hlY2tib3g6ITAsZmlsZTohMCxwYXNzd29yZDohMCxpbWFnZTohMH0pYi5wc2V1ZG9zW2VdPWRlKGUpO2ZvcihlIGlue3N1Ym1pdDohMCxyZXNldDohMH0pYi5wc2V1ZG9zW2VdPWhlKGUpO2Z1bmN0aW9uIG1lKCl7fWZ1bmN0aW9uIHhlKGUpe2Zvcih2YXIgdD0wLG49ZS5sZW5ndGgscj0iIjt0PG47dCsrKXIrPWVbdF0udmFsdWU7cmV0dXJuIHJ9ZnVuY3Rpb24gYmUocyxlLHQpe3ZhciB1PWUuZGlyLGw9ZS5uZXh0LGM9bHx8dSxmPXQmJiJwYXJlbnROb2RlIj09PWMscD1yKys7cmV0dXJuIGUuZmlyc3Q/ZnVuY3Rpb24oZSx0LG4pe3doaWxlKGU9ZVt1XSlpZigxPT09ZS5ub2RlVHlwZXx8ZilyZXR1cm4gcyhlLHQsbik7cmV0dXJuITF9OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYT1bayxwXTtpZihuKXt3aGlsZShlPWVbdV0paWYoKDE9PT1lLm5vZGVUeXBlfHxmKSYmcyhlLHQsbikpcmV0dXJuITB9ZWxzZSB3aGlsZShlPWVbdV0paWYoMT09PWUubm9kZVR5cGV8fGYpaWYoaT0obz1lW1NdfHwoZVtTXT17fSkpW2UudW5pcXVlSURdfHwob1tlLnVuaXF1ZUlEXT17fSksbCYmbD09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSllPWVbdV18fGU7ZWxzZXtpZigocj1pW2NdKSYmclswXT09PWsmJnJbMV09PT1wKXJldHVybiBhWzJdPXJbMl07aWYoKGlbY109YSlbMl09cyhlLHQsbikpcmV0dXJuITB9cmV0dXJuITF9fWZ1bmN0aW9uIHdlKGkpe3JldHVybiAxPGkubGVuZ3RoP2Z1bmN0aW9uKGUsdCxuKXt2YXIgcj1pLmxlbmd0aDt3aGlsZShyLS0paWYoIWlbcl0oZSx0LG4pKXJldHVybiExO3JldHVybiEwfTppWzBdfWZ1bmN0aW9uIFRlKGUsdCxuLHIsaSl7Zm9yKHZhciBvLGE9W10scz0wLHU9ZS5sZW5ndGgsbD1udWxsIT10O3M8dTtzKyspKG89ZVtzXSkmJihuJiYhbihvLHIsaSl8fChhLnB1c2gobyksbCYmdC5wdXNoKHMpKSk7cmV0dXJuIGF9ZnVuY3Rpb24gQ2UoZCxoLGcsdix5LGUpe3JldHVybiB2JiYhdltTXSYmKHY9Q2UodikpLHkmJiF5W1NdJiYoeT1DZSh5LGUpKSxsZShmdW5jdGlvbihlLHQsbixyKXt2YXIgaSxvLGEscz1bXSx1PVtdLGw9dC5sZW5ndGgsYz1lfHxmdW5jdGlvbihlLHQsbil7Zm9yKHZhciByPTAsaT10Lmxlbmd0aDtyPGk7cisrKXNlKGUsdFtyXSxuKTtyZXR1cm4gbn0oaHx8IioiLG4ubm9kZVR5cGU/W25dOm4sW10pLGY9IWR8fCFlJiZoP2M6VGUoYyxzLGQsbixyKSxwPWc/eXx8KGU/ZDpsfHx2KT9bXTp0OmY7aWYoZyYmZyhmLHAsbixyKSx2KXtpPVRlKHAsdSksdihpLFtdLG4sciksbz1pLmxlbmd0aDt3aGlsZShvLS0pKGE9aVtvXSkmJihwW3Vbb11dPSEoZlt1W29dXT1hKSl9aWYoZSl7aWYoeXx8ZCl7aWYoeSl7aT1bXSxvPXAubGVuZ3RoO3doaWxlKG8tLSkoYT1wW29dKSYmaS5wdXNoKGZbb109YSk7eShudWxsLHA9W10saSxyKX1vPXAubGVuZ3RoO3doaWxlKG8tLSkoYT1wW29dKSYmLTE8KGk9eT9QKGUsYSk6c1tvXSkmJihlW2ldPSEodFtpXT1hKSl9fWVsc2UgcD1UZShwPT09dD9wLnNwbGljZShsLHAubGVuZ3RoKTpwKSx5P3kobnVsbCx0LHAscik6SC5hcHBseSh0LHApfSl9ZnVuY3Rpb24gRWUoZSl7Zm9yKHZhciBpLHQsbixyPWUubGVuZ3RoLG89Yi5yZWxhdGl2ZVtlWzBdLnR5cGVdLGE9b3x8Yi5yZWxhdGl2ZVsiICJdLHM9bz8xOjAsdT1iZShmdW5jdGlvbihlKXtyZXR1cm4gZT09PWl9LGEsITApLGw9YmUoZnVuY3Rpb24oZSl7cmV0dXJuLTE8UChpLGUpfSxhLCEwKSxjPVtmdW5jdGlvbihlLHQsbil7dmFyIHI9IW8mJihufHx0IT09dyl8fCgoaT10KS5ub2RlVHlwZT91KGUsdCxuKTpsKGUsdCxuKSk7cmV0dXJuIGk9bnVsbCxyfV07czxyO3MrKylpZih0PWIucmVsYXRpdmVbZVtzXS50eXBlXSljPVtiZSh3ZShjKSx0KV07ZWxzZXtpZigodD1iLmZpbHRlcltlW3NdLnR5cGVdLmFwcGx5KG51bGwsZVtzXS5tYXRjaGVzKSlbU10pe2ZvcihuPSsrcztuPHI7bisrKWlmKGIucmVsYXRpdmVbZVtuXS50eXBlXSlicmVhaztyZXR1cm4gQ2UoMTxzJiZ3ZShjKSwxPHMmJnhlKGUuc2xpY2UoMCxzLTEpLmNvbmNhdCh7dmFsdWU6IiAiPT09ZVtzLTJdLnR5cGU/IioiOiIifSkpLnJlcGxhY2UoJCwiJDEiKSx0LHM8biYmRWUoZS5zbGljZShzLG4pKSxuPHImJkVlKGU9ZS5zbGljZShuKSksbjxyJiZ4ZShlKSl9Yy5wdXNoKHQpfXJldHVybiB3ZShjKX1yZXR1cm4gbWUucHJvdG90eXBlPWIuZmlsdGVycz1iLnBzZXVkb3MsYi5zZXRGaWx0ZXJzPW5ldyBtZSxoPXNlLnRva2VuaXplPWZ1bmN0aW9uKGUsdCl7dmFyIG4scixpLG8sYSxzLHUsbD14W2UrIiAiXTtpZihsKXJldHVybiB0PzA6bC5zbGljZSgwKTthPWUscz1bXSx1PWIucHJlRmlsdGVyO3doaWxlKGEpe2ZvcihvIGluIG4mJiEocj1fLmV4ZWMoYSkpfHwociYmKGE9YS5zbGljZShyWzBdLmxlbmd0aCl8fGEpLHMucHVzaChpPVtdKSksbj0hMSwocj16LmV4ZWMoYSkpJiYobj1yLnNoaWZ0KCksaS5wdXNoKHt2YWx1ZTpuLHR5cGU6clswXS5yZXBsYWNlKCQsIiAiKX0pLGE9YS5zbGljZShuLmxlbmd0aCkpLGIuZmlsdGVyKSEocj1HW29dLmV4ZWMoYSkpfHx1W29dJiYhKHI9dVtvXShyKSl8fChuPXIuc2hpZnQoKSxpLnB1c2goe3ZhbHVlOm4sdHlwZTpvLG1hdGNoZXM6cn0pLGE9YS5zbGljZShuLmxlbmd0aCkpO2lmKCFuKWJyZWFrfXJldHVybiB0P2EubGVuZ3RoOmE/c2UuZXJyb3IoZSk6eChlLHMpLnNsaWNlKDApfSxmPXNlLmNvbXBpbGU9ZnVuY3Rpb24oZSx0KXt2YXIgbix2LHksbSx4LHIsaT1bXSxvPVtdLGE9QVtlKyIgIl07aWYoIWEpe3R8fCh0PWgoZSkpLG49dC5sZW5ndGg7d2hpbGUobi0tKShhPUVlKHRbbl0pKVtTXT9pLnB1c2goYSk6by5wdXNoKGEpOyhhPUEoZSwodj1vLG09MDwoeT1pKS5sZW5ndGgseD0wPHYubGVuZ3RoLHI9ZnVuY3Rpb24oZSx0LG4scixpKXt2YXIgbyxhLHMsdT0wLGw9IjAiLGM9ZSYmW10sZj1bXSxwPXcsZD1lfHx4JiZiLmZpbmQuVEFHKCIqIixpKSxoPWsrPW51bGw9PXA/MTpNYXRoLnJhbmRvbSgpfHwuMSxnPWQubGVuZ3RoO2ZvcihpJiYodz10PT1DfHx0fHxpKTtsIT09ZyYmbnVsbCE9KG89ZFtsXSk7bCsrKXtpZih4JiZvKXthPTAsdHx8by5vd25lckRvY3VtZW50PT1DfHwoVChvKSxuPSFFKTt3aGlsZShzPXZbYSsrXSlpZihzKG8sdHx8QyxuKSl7ci5wdXNoKG8pO2JyZWFrfWkmJihrPWgpfW0mJigobz0hcyYmbykmJnUtLSxlJiZjLnB1c2gobykpfWlmKHUrPWwsbSYmbCE9PXUpe2E9MDt3aGlsZShzPXlbYSsrXSlzKGMsZix0LG4pO2lmKGUpe2lmKDA8dSl3aGlsZShsLS0pY1tsXXx8ZltsXXx8KGZbbF09cS5jYWxsKHIpKTtmPVRlKGYpfUguYXBwbHkocixmKSxpJiYhZSYmMDxmLmxlbmd0aCYmMTx1K3kubGVuZ3RoJiZzZS51bmlxdWVTb3J0KHIpfXJldHVybiBpJiYoaz1oLHc9cCksY30sbT9sZShyKTpyKSkpLnNlbGVjdG9yPWV9cmV0dXJuIGF9LGc9c2Uuc2VsZWN0PWZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpLG8sYSxzLHUsbD0iZnVuY3Rpb24iPT10eXBlb2YgZSYmZSxjPSFyJiZoKGU9bC5zZWxlY3Rvcnx8ZSk7aWYobj1ufHxbXSwxPT09Yy5sZW5ndGgpe2lmKDI8KG89Y1swXT1jWzBdLnNsaWNlKDApKS5sZW5ndGgmJiJJRCI9PT0oYT1vWzBdKS50eXBlJiY5PT09dC5ub2RlVHlwZSYmRSYmYi5yZWxhdGl2ZVtvWzFdLnR5cGVdKXtpZighKHQ9KGIuZmluZC5JRChhLm1hdGNoZXNbMF0ucmVwbGFjZSh0ZSxuZSksdCl8fFtdKVswXSkpcmV0dXJuIG47bCYmKHQ9dC5wYXJlbnROb2RlKSxlPWUuc2xpY2Uoby5zaGlmdCgpLnZhbHVlLmxlbmd0aCl9aT1HLm5lZWRzQ29udGV4dC50ZXN0KGUpPzA6by5sZW5ndGg7d2hpbGUoaS0tKXtpZihhPW9baV0sYi5yZWxhdGl2ZVtzPWEudHlwZV0pYnJlYWs7aWYoKHU9Yi5maW5kW3NdKSYmKHI9dShhLm1hdGNoZXNbMF0ucmVwbGFjZSh0ZSxuZSksZWUudGVzdChvWzBdLnR5cGUpJiZ5ZSh0LnBhcmVudE5vZGUpfHx0KSkpe2lmKG8uc3BsaWNlKGksMSksIShlPXIubGVuZ3RoJiZ4ZShvKSkpcmV0dXJuIEguYXBwbHkobixyKSxuO2JyZWFrfX19cmV0dXJuKGx8fGYoZSxjKSkocix0LCFFLG4sIXR8fGVlLnRlc3QoZSkmJnllKHQucGFyZW50Tm9kZSl8fHQpLG59LGQuc29ydFN0YWJsZT1TLnNwbGl0KCIiKS5zb3J0KGopLmpvaW4oIiIpPT09UyxkLmRldGVjdER1cGxpY2F0ZXM9ISFsLFQoKSxkLnNvcnREZXRhY2hlZD1jZShmdW5jdGlvbihlKXtyZXR1cm4gMSZlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKEMuY3JlYXRlRWxlbWVudCgiZmllbGRzZXQiKSl9KSxjZShmdW5jdGlvbihlKXtyZXR1cm4gZS5pbm5lckhUTUw9IjxhIGhyZWY9JyMnPjwvYT4iLCIjIj09PWUuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYiKX0pfHxmZSgidHlwZXxocmVmfGhlaWdodHx3aWR0aCIsZnVuY3Rpb24oZSx0LG4pe2lmKCFuKXJldHVybiBlLmdldEF0dHJpYnV0ZSh0LCJ0eXBlIj09PXQudG9Mb3dlckNhc2UoKT8xOjIpfSksZC5hdHRyaWJ1dGVzJiZjZShmdW5jdGlvbihlKXtyZXR1cm4gZS5pbm5lckhUTUw9IjxpbnB1dC8+IixlLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIiIpLCIiPT09ZS5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgidmFsdWUiKX0pfHxmZSgidmFsdWUiLGZ1bmN0aW9uKGUsdCxuKXtpZighbiYmImlucHV0Ij09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSlyZXR1cm4gZS5kZWZhdWx0VmFsdWV9KSxjZShmdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZS5nZXRBdHRyaWJ1dGUoImRpc2FibGVkIil9KXx8ZmUoUixmdW5jdGlvbihlLHQsbil7dmFyIHI7aWYoIW4pcmV0dXJuITA9PT1lW3RdP3QudG9Mb3dlckNhc2UoKToocj1lLmdldEF0dHJpYnV0ZU5vZGUodCkpJiZyLnNwZWNpZmllZD9yLnZhbHVlOm51bGx9KSxzZX0oQyk7Uy5maW5kPWQsUy5leHByPWQuc2VsZWN0b3JzLFMuZXhwclsiOiJdPVMuZXhwci5wc2V1ZG9zLFMudW5pcXVlU29ydD1TLnVuaXF1ZT1kLnVuaXF1ZVNvcnQsUy50ZXh0PWQuZ2V0VGV4dCxTLmlzWE1MRG9jPWQuaXNYTUwsUy5jb250YWlucz1kLmNvbnRhaW5zLFMuZXNjYXBlU2VsZWN0b3I9ZC5lc2NhcGU7dmFyIGg9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPVtdLGk9dm9pZCAwIT09bjt3aGlsZSgoZT1lW3RdKSYmOSE9PWUubm9kZVR5cGUpaWYoMT09PWUubm9kZVR5cGUpe2lmKGkmJlMoZSkuaXMobikpYnJlYWs7ci5wdXNoKGUpfXJldHVybiByfSxUPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPVtdO2U7ZT1lLm5leHRTaWJsaW5nKTE9PT1lLm5vZGVUeXBlJiZlIT09dCYmbi5wdXNoKGUpO3JldHVybiBufSxrPVMuZXhwci5tYXRjaC5uZWVkc0NvbnRleHQ7ZnVuY3Rpb24gQShlLHQpe3JldHVybiBlLm5vZGVOYW1lJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT10LnRvTG93ZXJDYXNlKCl9dmFyIE49L148KFthLXpdW15cL1wwPjpceDIwXHRcclxuXGZdKilbXHgyMFx0XHJcblxmXSpcLz8+KD86PFwvXDE+fCkkL2k7ZnVuY3Rpb24gaihlLG4scil7cmV0dXJuIG0obik/Uy5ncmVwKGUsZnVuY3Rpb24oZSx0KXtyZXR1cm4hIW4uY2FsbChlLHQsZSkhPT1yfSk6bi5ub2RlVHlwZT9TLmdyZXAoZSxmdW5jdGlvbihlKXtyZXR1cm4gZT09PW4hPT1yfSk6InN0cmluZyIhPXR5cGVvZiBuP1MuZ3JlcChlLGZ1bmN0aW9uKGUpe3JldHVybi0xPGkuY2FsbChuLGUpIT09cn0pOlMuZmlsdGVyKG4sZSxyKX1TLmZpbHRlcj1mdW5jdGlvbihlLHQsbil7dmFyIHI9dFswXTtyZXR1cm4gbiYmKGU9Ijpub3QoIitlKyIpIiksMT09PXQubGVuZ3RoJiYxPT09ci5ub2RlVHlwZT9TLmZpbmQubWF0Y2hlc1NlbGVjdG9yKHIsZSk/W3JdOltdOlMuZmluZC5tYXRjaGVzKGUsUy5ncmVwKHQsZnVuY3Rpb24oZSl7cmV0dXJuIDE9PT1lLm5vZGVUeXBlfSkpfSxTLmZuLmV4dGVuZCh7ZmluZDpmdW5jdGlvbihlKXt2YXIgdCxuLHI9dGhpcy5sZW5ndGgsaT10aGlzO2lmKCJzdHJpbmciIT10eXBlb2YgZSlyZXR1cm4gdGhpcy5wdXNoU3RhY2soUyhlKS5maWx0ZXIoZnVuY3Rpb24oKXtmb3IodD0wO3Q8cjt0KyspaWYoUy5jb250YWlucyhpW3RdLHRoaXMpKXJldHVybiEwfSkpO2ZvcihuPXRoaXMucHVzaFN0YWNrKFtdKSx0PTA7dDxyO3QrKylTLmZpbmQoZSxpW3RdLG4pO3JldHVybiAxPHI/Uy51bmlxdWVTb3J0KG4pOm59LGZpbHRlcjpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soaih0aGlzLGV8fFtdLCExKSl9LG5vdDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soaih0aGlzLGV8fFtdLCEwKSl9LGlzOmZ1bmN0aW9uKGUpe3JldHVybiEhaih0aGlzLCJzdHJpbmciPT10eXBlb2YgZSYmay50ZXN0KGUpP1MoZSk6ZXx8W10sITEpLmxlbmd0aH19KTt2YXIgRCxxPS9eKD86XHMqKDxbXHdcV10rPilbXj5dKnwjKFtcdy1dKykpJC87KFMuZm4uaW5pdD1mdW5jdGlvbihlLHQsbil7dmFyIHIsaTtpZighZSlyZXR1cm4gdGhpcztpZihuPW58fEQsInN0cmluZyI9PXR5cGVvZiBlKXtpZighKHI9IjwiPT09ZVswXSYmIj4iPT09ZVtlLmxlbmd0aC0xXSYmMzw9ZS5sZW5ndGg/W251bGwsZSxudWxsXTpxLmV4ZWMoZSkpfHwhclsxXSYmdClyZXR1cm4hdHx8dC5qcXVlcnk/KHR8fG4pLmZpbmQoZSk6dGhpcy5jb25zdHJ1Y3Rvcih0KS5maW5kKGUpO2lmKHJbMV0pe2lmKHQ9dCBpbnN0YW5jZW9mIFM/dFswXTp0LFMubWVyZ2UodGhpcyxTLnBhcnNlSFRNTChyWzFdLHQmJnQubm9kZVR5cGU/dC5vd25lckRvY3VtZW50fHx0OkUsITApKSxOLnRlc3QoclsxXSkmJlMuaXNQbGFpbk9iamVjdCh0KSlmb3IociBpbiB0KW0odGhpc1tyXSk/dGhpc1tyXSh0W3JdKTp0aGlzLmF0dHIocix0W3JdKTtyZXR1cm4gdGhpc31yZXR1cm4oaT1FLmdldEVsZW1lbnRCeUlkKHJbMl0pKSYmKHRoaXNbMF09aSx0aGlzLmxlbmd0aD0xKSx0aGlzfXJldHVybiBlLm5vZGVUeXBlPyh0aGlzWzBdPWUsdGhpcy5sZW5ndGg9MSx0aGlzKTptKGUpP3ZvaWQgMCE9PW4ucmVhZHk/bi5yZWFkeShlKTplKFMpOlMubWFrZUFycmF5KGUsdGhpcyl9KS5wcm90b3R5cGU9Uy5mbixEPVMoRSk7dmFyIEw9L14oPzpwYXJlbnRzfHByZXYoPzpVbnRpbHxBbGwpKS8sSD17Y2hpbGRyZW46ITAsY29udGVudHM6ITAsbmV4dDohMCxwcmV2OiEwfTtmdW5jdGlvbiBPKGUsdCl7d2hpbGUoKGU9ZVt0XSkmJjEhPT1lLm5vZGVUeXBlKTtyZXR1cm4gZX1TLmZuLmV4dGVuZCh7aGFzOmZ1bmN0aW9uKGUpe3ZhciB0PVMoZSx0aGlzKSxuPXQubGVuZ3RoO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8bjtlKyspaWYoUy5jb250YWlucyh0aGlzLHRbZV0pKXJldHVybiEwfSl9LGNsb3Nlc3Q6ZnVuY3Rpb24oZSx0KXt2YXIgbixyPTAsaT10aGlzLmxlbmd0aCxvPVtdLGE9InN0cmluZyIhPXR5cGVvZiBlJiZTKGUpO2lmKCFrLnRlc3QoZSkpZm9yKDtyPGk7cisrKWZvcihuPXRoaXNbcl07biYmbiE9PXQ7bj1uLnBhcmVudE5vZGUpaWYobi5ub2RlVHlwZTwxMSYmKGE/LTE8YS5pbmRleChuKToxPT09bi5ub2RlVHlwZSYmUy5maW5kLm1hdGNoZXNTZWxlY3RvcihuLGUpKSl7by5wdXNoKG4pO2JyZWFrfXJldHVybiB0aGlzLnB1c2hTdGFjaygxPG8ubGVuZ3RoP1MudW5pcXVlU29ydChvKTpvKX0saW5kZXg6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/InN0cmluZyI9PXR5cGVvZiBlP2kuY2FsbChTKGUpLHRoaXNbMF0pOmkuY2FsbCh0aGlzLGUuanF1ZXJ5P2VbMF06ZSk6dGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2RlP3RoaXMuZmlyc3QoKS5wcmV2QWxsKCkubGVuZ3RoOi0xfSxhZGQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy51bmlxdWVTb3J0KFMubWVyZ2UodGhpcy5nZXQoKSxTKGUsdCkpKSl9LGFkZEJhY2s6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuYWRkKG51bGw9PWU/dGhpcy5wcmV2T2JqZWN0OnRoaXMucHJldk9iamVjdC5maWx0ZXIoZSkpfX0pLFMuZWFjaCh7cGFyZW50OmZ1bmN0aW9uKGUpe3ZhciB0PWUucGFyZW50Tm9kZTtyZXR1cm4gdCYmMTEhPT10Lm5vZGVUeXBlP3Q6bnVsbH0scGFyZW50czpmdW5jdGlvbihlKXtyZXR1cm4gaChlLCJwYXJlbnROb2RlIil9LHBhcmVudHNVbnRpbDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGgoZSwicGFyZW50Tm9kZSIsbil9LG5leHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIE8oZSwibmV4dFNpYmxpbmciKX0scHJldjpmdW5jdGlvbihlKXtyZXR1cm4gTyhlLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihlKXtyZXR1cm4gaChlLCJuZXh0U2libGluZyIpfSxwcmV2QWxsOmZ1bmN0aW9uKGUpe3JldHVybiBoKGUsInByZXZpb3VzU2libGluZyIpfSxuZXh0VW50aWw6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBoKGUsIm5leHRTaWJsaW5nIixuKX0scHJldlVudGlsOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gaChlLCJwcmV2aW91c1NpYmxpbmciLG4pfSxzaWJsaW5nczpmdW5jdGlvbihlKXtyZXR1cm4gVCgoZS5wYXJlbnROb2RlfHx7fSkuZmlyc3RDaGlsZCxlKX0sY2hpbGRyZW46ZnVuY3Rpb24oZSl7cmV0dXJuIFQoZS5maXJzdENoaWxkKX0sY29udGVudHM6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPWUuY29udGVudERvY3VtZW50JiZyKGUuY29udGVudERvY3VtZW50KT9lLmNvbnRlbnREb2N1bWVudDooQShlLCJ0ZW1wbGF0ZSIpJiYoZT1lLmNvbnRlbnR8fGUpLFMubWVyZ2UoW10sZS5jaGlsZE5vZGVzKSl9fSxmdW5jdGlvbihyLGkpe1MuZm5bcl09ZnVuY3Rpb24oZSx0KXt2YXIgbj1TLm1hcCh0aGlzLGksZSk7cmV0dXJuIlVudGlsIiE9PXIuc2xpY2UoLTUpJiYodD1lKSx0JiYic3RyaW5nIj09dHlwZW9mIHQmJihuPVMuZmlsdGVyKHQsbikpLDE8dGhpcy5sZW5ndGgmJihIW3JdfHxTLnVuaXF1ZVNvcnQobiksTC50ZXN0KHIpJiZuLnJldmVyc2UoKSksdGhpcy5wdXNoU3RhY2sobil9fSk7dmFyIFA9L1teXHgyMFx0XHJcblxmXSsvZztmdW5jdGlvbiBSKGUpe3JldHVybiBlfWZ1bmN0aW9uIE0oZSl7dGhyb3cgZX1mdW5jdGlvbiBJKGUsdCxuLHIpe3ZhciBpO3RyeXtlJiZtKGk9ZS5wcm9taXNlKT9pLmNhbGwoZSkuZG9uZSh0KS5mYWlsKG4pOmUmJm0oaT1lLnRoZW4pP2kuY2FsbChlLHQsbik6dC5hcHBseSh2b2lkIDAsW2VdLnNsaWNlKHIpKX1jYXRjaChlKXtuLmFwcGx5KHZvaWQgMCxbZV0pfX1TLkNhbGxiYWNrcz1mdW5jdGlvbihyKXt2YXIgZSxuO3I9InN0cmluZyI9PXR5cGVvZiByPyhlPXIsbj17fSxTLmVhY2goZS5tYXRjaChQKXx8W10sZnVuY3Rpb24oZSx0KXtuW3RdPSEwfSksbik6Uy5leHRlbmQoe30scik7dmFyIGksdCxvLGEscz1bXSx1PVtdLGw9LTEsYz1mdW5jdGlvbigpe2ZvcihhPWF8fHIub25jZSxvPWk9ITA7dS5sZW5ndGg7bD0tMSl7dD11LnNoaWZ0KCk7d2hpbGUoKytsPHMubGVuZ3RoKSExPT09c1tsXS5hcHBseSh0WzBdLHRbMV0pJiZyLnN0b3BPbkZhbHNlJiYobD1zLmxlbmd0aCx0PSExKX1yLm1lbW9yeXx8KHQ9ITEpLGk9ITEsYSYmKHM9dD9bXToiIil9LGY9e2FkZDpmdW5jdGlvbigpe3JldHVybiBzJiYodCYmIWkmJihsPXMubGVuZ3RoLTEsdS5wdXNoKHQpKSxmdW5jdGlvbiBuKGUpe1MuZWFjaChlLGZ1bmN0aW9uKGUsdCl7bSh0KT9yLnVuaXF1ZSYmZi5oYXModCl8fHMucHVzaCh0KTp0JiZ0Lmxlbmd0aCYmInN0cmluZyIhPT13KHQpJiZuKHQpfSl9KGFyZ3VtZW50cyksdCYmIWkmJmMoKSksdGhpc30scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIFMuZWFjaChhcmd1bWVudHMsZnVuY3Rpb24oZSx0KXt2YXIgbjt3aGlsZSgtMTwobj1TLmluQXJyYXkodCxzLG4pKSlzLnNwbGljZShuLDEpLG48PWwmJmwtLX0pLHRoaXN9LGhhczpmdW5jdGlvbihlKXtyZXR1cm4gZT8tMTxTLmluQXJyYXkoZSxzKTowPHMubGVuZ3RofSxlbXB0eTpmdW5jdGlvbigpe3JldHVybiBzJiYocz1bXSksdGhpc30sZGlzYWJsZTpmdW5jdGlvbigpe3JldHVybiBhPXU9W10scz10PSIiLHRoaXN9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIXN9LGxvY2s6ZnVuY3Rpb24oKXtyZXR1cm4gYT11PVtdLHR8fGl8fChzPXQ9IiIpLHRoaXN9LGxvY2tlZDpmdW5jdGlvbigpe3JldHVybiEhYX0sZmlyZVdpdGg6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYXx8KHQ9W2UsKHQ9dHx8W10pLnNsaWNlP3Quc2xpY2UoKTp0XSx1LnB1c2godCksaXx8YygpKSx0aGlzfSxmaXJlOmZ1bmN0aW9uKCl7cmV0dXJuIGYuZmlyZVdpdGgodGhpcyxhcmd1bWVudHMpLHRoaXN9LGZpcmVkOmZ1bmN0aW9uKCl7cmV0dXJuISFvfX07cmV0dXJuIGZ9LFMuZXh0ZW5kKHtEZWZlcnJlZDpmdW5jdGlvbihlKXt2YXIgbz1bWyJub3RpZnkiLCJwcm9ncmVzcyIsUy5DYWxsYmFja3MoIm1lbW9yeSIpLFMuQ2FsbGJhY2tzKCJtZW1vcnkiKSwyXSxbInJlc29sdmUiLCJkb25lIixTLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxTLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwwLCJyZXNvbHZlZCJdLFsicmVqZWN0IiwiZmFpbCIsUy5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksUy5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksMSwicmVqZWN0ZWQiXV0saT0icGVuZGluZyIsYT17c3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sYWx3YXlzOmZ1bmN0aW9uKCl7cmV0dXJuIHMuZG9uZShhcmd1bWVudHMpLmZhaWwoYXJndW1lbnRzKSx0aGlzfSwiY2F0Y2giOmZ1bmN0aW9uKGUpe3JldHVybiBhLnRoZW4obnVsbCxlKX0scGlwZTpmdW5jdGlvbigpe3ZhciBpPWFyZ3VtZW50cztyZXR1cm4gUy5EZWZlcnJlZChmdW5jdGlvbihyKXtTLmVhY2gobyxmdW5jdGlvbihlLHQpe3ZhciBuPW0oaVt0WzRdXSkmJmlbdFs0XV07c1t0WzFdXShmdW5jdGlvbigpe3ZhciBlPW4mJm4uYXBwbHkodGhpcyxhcmd1bWVudHMpO2UmJm0oZS5wcm9taXNlKT9lLnByb21pc2UoKS5wcm9ncmVzcyhyLm5vdGlmeSkuZG9uZShyLnJlc29sdmUpLmZhaWwoci5yZWplY3QpOnJbdFswXSsiV2l0aCJdKHRoaXMsbj9bZV06YXJndW1lbnRzKX0pfSksaT1udWxsfSkucHJvbWlzZSgpfSx0aGVuOmZ1bmN0aW9uKHQsbixyKXt2YXIgdT0wO2Z1bmN0aW9uIGwoaSxvLGEscyl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dGhpcyxyPWFyZ3VtZW50cyxlPWZ1bmN0aW9uKCl7dmFyIGUsdDtpZighKGk8dSkpe2lmKChlPWEuYXBwbHkobixyKSk9PT1vLnByb21pc2UoKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGVuYWJsZSBzZWxmLXJlc29sdXRpb24iKTt0PWUmJigib2JqZWN0Ij09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlKSYmZS50aGVuLG0odCk/cz90LmNhbGwoZSxsKHUsbyxSLHMpLGwodSxvLE0scykpOih1KyssdC5jYWxsKGUsbCh1LG8sUixzKSxsKHUsbyxNLHMpLGwodSxvLFIsby5ub3RpZnlXaXRoKSkpOihhIT09UiYmKG49dm9pZCAwLHI9W2VdKSwoc3x8by5yZXNvbHZlV2l0aCkobixyKSl9fSx0PXM/ZTpmdW5jdGlvbigpe3RyeXtlKCl9Y2F0Y2goZSl7Uy5EZWZlcnJlZC5leGNlcHRpb25Ib29rJiZTLkRlZmVycmVkLmV4Y2VwdGlvbkhvb2soZSx0LnN0YWNrVHJhY2UpLHU8PWkrMSYmKGEhPT1NJiYobj12b2lkIDAscj1bZV0pLG8ucmVqZWN0V2l0aChuLHIpKX19O2k/dCgpOihTLkRlZmVycmVkLmdldFN0YWNrSG9vayYmKHQuc3RhY2tUcmFjZT1TLkRlZmVycmVkLmdldFN0YWNrSG9vaygpKSxDLnNldFRpbWVvdXQodCkpfX1yZXR1cm4gUy5EZWZlcnJlZChmdW5jdGlvbihlKXtvWzBdWzNdLmFkZChsKDAsZSxtKHIpP3I6UixlLm5vdGlmeVdpdGgpKSxvWzFdWzNdLmFkZChsKDAsZSxtKHQpP3Q6UikpLG9bMl1bM10uYWRkKGwoMCxlLG0obik/bjpNKSl9KS5wcm9taXNlKCl9LHByb21pc2U6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPWU/Uy5leHRlbmQoZSxhKTphfX0scz17fTtyZXR1cm4gUy5lYWNoKG8sZnVuY3Rpb24oZSx0KXt2YXIgbj10WzJdLHI9dFs1XTthW3RbMV1dPW4uYWRkLHImJm4uYWRkKGZ1bmN0aW9uKCl7aT1yfSxvWzMtZV1bMl0uZGlzYWJsZSxvWzMtZV1bM10uZGlzYWJsZSxvWzBdWzJdLmxvY2ssb1swXVszXS5sb2NrKSxuLmFkZCh0WzNdLmZpcmUpLHNbdFswXV09ZnVuY3Rpb24oKXtyZXR1cm4gc1t0WzBdKyJXaXRoIl0odGhpcz09PXM/dm9pZCAwOnRoaXMsYXJndW1lbnRzKSx0aGlzfSxzW3RbMF0rIldpdGgiXT1uLmZpcmVXaXRofSksYS5wcm9taXNlKHMpLGUmJmUuY2FsbChzLHMpLHN9LHdoZW46ZnVuY3Rpb24oZSl7dmFyIG49YXJndW1lbnRzLmxlbmd0aCx0PW4scj1BcnJheSh0KSxpPXMuY2FsbChhcmd1bWVudHMpLG89Uy5EZWZlcnJlZCgpLGE9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JbdF09dGhpcyxpW3RdPTE8YXJndW1lbnRzLmxlbmd0aD9zLmNhbGwoYXJndW1lbnRzKTplLC0tbnx8by5yZXNvbHZlV2l0aChyLGkpfX07aWYobjw9MSYmKEkoZSxvLmRvbmUoYSh0KSkucmVzb2x2ZSxvLnJlamVjdCwhbiksInBlbmRpbmciPT09by5zdGF0ZSgpfHxtKGlbdF0mJmlbdF0udGhlbikpKXJldHVybiBvLnRoZW4oKTt3aGlsZSh0LS0pSShpW3RdLGEodCksby5yZWplY3QpO3JldHVybiBvLnByb21pc2UoKX19KTt2YXIgVz0vXihFdmFsfEludGVybmFsfFJhbmdlfFJlZmVyZW5jZXxTeW50YXh8VHlwZXxVUkkpRXJyb3IkLztTLkRlZmVycmVkLmV4Y2VwdGlvbkhvb2s9ZnVuY3Rpb24oZSx0KXtDLmNvbnNvbGUmJkMuY29uc29sZS53YXJuJiZlJiZXLnRlc3QoZS5uYW1lKSYmQy5jb25zb2xlLndhcm4oImpRdWVyeS5EZWZlcnJlZCBleGNlcHRpb246ICIrZS5tZXNzYWdlLGUuc3RhY2ssdCl9LFMucmVhZHlFeGNlcHRpb249ZnVuY3Rpb24oZSl7Qy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgZX0pfTt2YXIgRj1TLkRlZmVycmVkKCk7ZnVuY3Rpb24gQigpe0UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsQiksQy5yZW1vdmVFdmVudExpc3RlbmVyKCJsb2FkIixCKSxTLnJlYWR5KCl9Uy5mbi5yZWFkeT1mdW5jdGlvbihlKXtyZXR1cm4gRi50aGVuKGUpWyJjYXRjaCJdKGZ1bmN0aW9uKGUpe1MucmVhZHlFeGNlcHRpb24oZSl9KSx0aGlzfSxTLmV4dGVuZCh7aXNSZWFkeTohMSxyZWFkeVdhaXQ6MSxyZWFkeTpmdW5jdGlvbihlKXsoITA9PT1lPy0tUy5yZWFkeVdhaXQ6Uy5pc1JlYWR5KXx8KFMuaXNSZWFkeT0hMCkhPT1lJiYwPC0tUy5yZWFkeVdhaXR8fEYucmVzb2x2ZVdpdGgoRSxbU10pfX0pLFMucmVhZHkudGhlbj1GLnRoZW4sImNvbXBsZXRlIj09PUUucmVhZHlTdGF0ZXx8ImxvYWRpbmciIT09RS5yZWFkeVN0YXRlJiYhRS5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGw/Qy5zZXRUaW1lb3V0KFMucmVhZHkpOihFLmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLEIpLEMuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsQikpO3ZhciAkPWZ1bmN0aW9uKGUsdCxuLHIsaSxvLGEpe3ZhciBzPTAsdT1lLmxlbmd0aCxsPW51bGw9PW47aWYoIm9iamVjdCI9PT13KG4pKWZvcihzIGluIGk9ITAsbikkKGUsdCxzLG5bc10sITAsbyxhKTtlbHNlIGlmKHZvaWQgMCE9PXImJihpPSEwLG0ocil8fChhPSEwKSxsJiYoYT8odC5jYWxsKGUsciksdD1udWxsKToobD10LHQ9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBsLmNhbGwoUyhlKSxuKX0pKSx0KSlmb3IoO3M8dTtzKyspdChlW3NdLG4sYT9yOnIuY2FsbChlW3NdLHMsdChlW3NdLG4pKSk7cmV0dXJuIGk/ZTpsP3QuY2FsbChlKTp1P3QoZVswXSxuKTpvfSxfPS9eLW1zLS8sej0vLShbYS16XSkvZztmdW5jdGlvbiBVKGUsdCl7cmV0dXJuIHQudG9VcHBlckNhc2UoKX1mdW5jdGlvbiBYKGUpe3JldHVybiBlLnJlcGxhY2UoXywibXMtIikucmVwbGFjZSh6LFUpfXZhciBWPWZ1bmN0aW9uKGUpe3JldHVybiAxPT09ZS5ub2RlVHlwZXx8OT09PWUubm9kZVR5cGV8fCErZS5ub2RlVHlwZX07ZnVuY3Rpb24gRygpe3RoaXMuZXhwYW5kbz1TLmV4cGFuZG8rRy51aWQrK31HLnVpZD0xLEcucHJvdG90eXBlPXtjYWNoZTpmdW5jdGlvbihlKXt2YXIgdD1lW3RoaXMuZXhwYW5kb107cmV0dXJuIHR8fCh0PXt9LFYoZSkmJihlLm5vZGVUeXBlP2VbdGhpcy5leHBhbmRvXT10Ok9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHRoaXMuZXhwYW5kbyx7dmFsdWU6dCxjb25maWd1cmFibGU6ITB9KSkpLHR9LHNldDpmdW5jdGlvbihlLHQsbil7dmFyIHIsaT10aGlzLmNhY2hlKGUpO2lmKCJzdHJpbmciPT10eXBlb2YgdClpW1godCldPW47ZWxzZSBmb3IociBpbiB0KWlbWChyKV09dFtyXTtyZXR1cm4gaX0sZ2V0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQ/dGhpcy5jYWNoZShlKTplW3RoaXMuZXhwYW5kb10mJmVbdGhpcy5leHBhbmRvXVtYKHQpXX0sYWNjZXNzOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdm9pZCAwPT09dHx8dCYmInN0cmluZyI9PXR5cGVvZiB0JiZ2b2lkIDA9PT1uP3RoaXMuZ2V0KGUsdCk6KHRoaXMuc2V0KGUsdCxuKSx2b2lkIDAhPT1uP246dCl9LHJlbW92ZTpmdW5jdGlvbihlLHQpe3ZhciBuLHI9ZVt0aGlzLmV4cGFuZG9dO2lmKHZvaWQgMCE9PXIpe2lmKHZvaWQgMCE9PXQpe249KHQ9QXJyYXkuaXNBcnJheSh0KT90Lm1hcChYKToodD1YKHQpKWluIHI/W3RdOnQubWF0Y2goUCl8fFtdKS5sZW5ndGg7d2hpbGUobi0tKWRlbGV0ZSByW3Rbbl1dfSh2b2lkIDA9PT10fHxTLmlzRW1wdHlPYmplY3QocikpJiYoZS5ub2RlVHlwZT9lW3RoaXMuZXhwYW5kb109dm9pZCAwOmRlbGV0ZSBlW3RoaXMuZXhwYW5kb10pfX0saGFzRGF0YTpmdW5jdGlvbihlKXt2YXIgdD1lW3RoaXMuZXhwYW5kb107cmV0dXJuIHZvaWQgMCE9PXQmJiFTLmlzRW1wdHlPYmplY3QodCl9fTt2YXIgWT1uZXcgRyxRPW5ldyBHLEo9L14oPzpce1tcd1xXXSpcfXxcW1tcd1xXXSpcXSkkLyxLPS9bQS1aXS9nO2Z1bmN0aW9uIFooZSx0LG4pe3ZhciByLGk7aWYodm9pZCAwPT09biYmMT09PWUubm9kZVR5cGUpaWYocj0iZGF0YS0iK3QucmVwbGFjZShLLCItJCYiKS50b0xvd2VyQ2FzZSgpLCJzdHJpbmciPT10eXBlb2Yobj1lLmdldEF0dHJpYnV0ZShyKSkpe3RyeXtuPSJ0cnVlIj09PShpPW4pfHwiZmFsc2UiIT09aSYmKCJudWxsIj09PWk/bnVsbDppPT09K2krIiI/K2k6Si50ZXN0KGkpP0pTT04ucGFyc2UoaSk6aSl9Y2F0Y2goZSl7fVEuc2V0KGUsdCxuKX1lbHNlIG49dm9pZCAwO3JldHVybiBufVMuZXh0ZW5kKHtoYXNEYXRhOmZ1bmN0aW9uKGUpe3JldHVybiBRLmhhc0RhdGEoZSl8fFkuaGFzRGF0YShlKX0sZGF0YTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIFEuYWNjZXNzKGUsdCxuKX0scmVtb3ZlRGF0YTpmdW5jdGlvbihlLHQpe1EucmVtb3ZlKGUsdCl9LF9kYXRhOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gWS5hY2Nlc3MoZSx0LG4pfSxfcmVtb3ZlRGF0YTpmdW5jdGlvbihlLHQpe1kucmVtb3ZlKGUsdCl9fSksUy5mbi5leHRlbmQoe2RhdGE6ZnVuY3Rpb24obixlKXt2YXIgdCxyLGksbz10aGlzWzBdLGE9byYmby5hdHRyaWJ1dGVzO2lmKHZvaWQgMD09PW4pe2lmKHRoaXMubGVuZ3RoJiYoaT1RLmdldChvKSwxPT09by5ub2RlVHlwZSYmIVkuZ2V0KG8sImhhc0RhdGFBdHRycyIpKSl7dD1hLmxlbmd0aDt3aGlsZSh0LS0pYVt0XSYmMD09PShyPWFbdF0ubmFtZSkuaW5kZXhPZigiZGF0YS0iKSYmKHI9WChyLnNsaWNlKDUpKSxaKG8scixpW3JdKSk7WS5zZXQobywiaGFzRGF0YUF0dHJzIiwhMCl9cmV0dXJuIGl9cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBuP3RoaXMuZWFjaChmdW5jdGlvbigpe1Euc2V0KHRoaXMsbil9KTokKHRoaXMsZnVuY3Rpb24oZSl7dmFyIHQ7aWYobyYmdm9pZCAwPT09ZSlyZXR1cm4gdm9pZCAwIT09KHQ9US5nZXQobyxuKSk/dDp2b2lkIDAhPT0odD1aKG8sbikpP3Q6dm9pZCAwO3RoaXMuZWFjaChmdW5jdGlvbigpe1Euc2V0KHRoaXMsbixlKX0pfSxudWxsLGUsMTxhcmd1bWVudHMubGVuZ3RoLG51bGwsITApfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtRLnJlbW92ZSh0aGlzLGUpfSl9fSksUy5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcjtpZihlKXJldHVybiB0PSh0fHwiZngiKSsicXVldWUiLHI9WS5nZXQoZSx0KSxuJiYoIXJ8fEFycmF5LmlzQXJyYXkobik/cj1ZLmFjY2VzcyhlLHQsUy5tYWtlQXJyYXkobikpOnIucHVzaChuKSkscnx8W119LGRlcXVldWU6ZnVuY3Rpb24oZSx0KXt0PXR8fCJmeCI7dmFyIG49Uy5xdWV1ZShlLHQpLHI9bi5sZW5ndGgsaT1uLnNoaWZ0KCksbz1TLl9xdWV1ZUhvb2tzKGUsdCk7ImlucHJvZ3Jlc3MiPT09aSYmKGk9bi5zaGlmdCgpLHItLSksaSYmKCJmeCI9PT10JiZuLnVuc2hpZnQoImlucHJvZ3Jlc3MiKSxkZWxldGUgby5zdG9wLGkuY2FsbChlLGZ1bmN0aW9uKCl7Uy5kZXF1ZXVlKGUsdCl9LG8pKSwhciYmbyYmby5lbXB0eS5maXJlKCl9LF9xdWV1ZUhvb2tzOmZ1bmN0aW9uKGUsdCl7dmFyIG49dCsicXVldWVIb29rcyI7cmV0dXJuIFkuZ2V0KGUsbil8fFkuYWNjZXNzKGUsbix7ZW1wdHk6Uy5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IikuYWRkKGZ1bmN0aW9uKCl7WS5yZW1vdmUoZSxbdCsicXVldWUiLG5dKX0pfSl9fSksUy5mbi5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKHQsbil7dmFyIGU9MjtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHQmJihuPXQsdD0iZngiLGUtLSksYXJndW1lbnRzLmxlbmd0aDxlP1MucXVldWUodGhpc1swXSx0KTp2b2lkIDA9PT1uP3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9Uy5xdWV1ZSh0aGlzLHQsbik7Uy5fcXVldWVIb29rcyh0aGlzLHQpLCJmeCI9PT10JiYiaW5wcm9ncmVzcyIhPT1lWzBdJiZTLmRlcXVldWUodGhpcyx0KX0pfSxkZXF1ZXVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtTLmRlcXVldWUodGhpcyxlKX0pfSxjbGVhclF1ZXVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnF1ZXVlKGV8fCJmeCIsW10pfSxwcm9taXNlOmZ1bmN0aW9uKGUsdCl7dmFyIG4scj0xLGk9Uy5EZWZlcnJlZCgpLG89dGhpcyxhPXRoaXMubGVuZ3RoLHM9ZnVuY3Rpb24oKXstLXJ8fGkucmVzb2x2ZVdpdGgobyxbb10pfTsic3RyaW5nIiE9dHlwZW9mIGUmJih0PWUsZT12b2lkIDApLGU9ZXx8ImZ4Ijt3aGlsZShhLS0pKG49WS5nZXQob1thXSxlKyJxdWV1ZUhvb2tzIikpJiZuLmVtcHR5JiYocisrLG4uZW1wdHkuYWRkKHMpKTtyZXR1cm4gcygpLGkucHJvbWlzZSh0KX19KTt2YXIgZWU9L1srLV0/KD86XGQqXC58KVxkKyg/OltlRV1bKy1dP1xkK3wpLy5zb3VyY2UsdGU9bmV3IFJlZ0V4cCgiXig/OihbKy1dKT18KSgiK2VlKyIpKFthLXolXSopJCIsImkiKSxuZT1bIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdLHJlPUUuZG9jdW1lbnRFbGVtZW50LGllPWZ1bmN0aW9uKGUpe3JldHVybiBTLmNvbnRhaW5zKGUub3duZXJEb2N1bWVudCxlKX0sb2U9e2NvbXBvc2VkOiEwfTtyZS5nZXRSb290Tm9kZSYmKGllPWZ1bmN0aW9uKGUpe3JldHVybiBTLmNvbnRhaW5zKGUub3duZXJEb2N1bWVudCxlKXx8ZS5nZXRSb290Tm9kZShvZSk9PT1lLm93bmVyRG9jdW1lbnR9KTt2YXIgYWU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4ibm9uZSI9PT0oZT10fHxlKS5zdHlsZS5kaXNwbGF5fHwiIj09PWUuc3R5bGUuZGlzcGxheSYmaWUoZSkmJiJub25lIj09PVMuY3NzKGUsImRpc3BsYXkiKX07ZnVuY3Rpb24gc2UoZSx0LG4scil7dmFyIGksbyxhPTIwLHM9cj9mdW5jdGlvbigpe3JldHVybiByLmN1cigpfTpmdW5jdGlvbigpe3JldHVybiBTLmNzcyhlLHQsIiIpfSx1PXMoKSxsPW4mJm5bM118fChTLmNzc051bWJlclt0XT8iIjoicHgiKSxjPWUubm9kZVR5cGUmJihTLmNzc051bWJlclt0XXx8InB4IiE9PWwmJit1KSYmdGUuZXhlYyhTLmNzcyhlLHQpKTtpZihjJiZjWzNdIT09bCl7dS89MixsPWx8fGNbM10sYz0rdXx8MTt3aGlsZShhLS0pUy5zdHlsZShlLHQsYytsKSwoMS1vKSooMS0obz1zKCkvdXx8LjUpKTw9MCYmKGE9MCksYy89bztjKj0yLFMuc3R5bGUoZSx0LGMrbCksbj1ufHxbXX1yZXR1cm4gbiYmKGM9K2N8fCt1fHwwLGk9blsxXT9jKyhuWzFdKzEpKm5bMl06K25bMl0sciYmKHIudW5pdD1sLHIuc3RhcnQ9YyxyLmVuZD1pKSksaX12YXIgdWU9e307ZnVuY3Rpb24gbGUoZSx0KXtmb3IodmFyIG4scixpLG8sYSxzLHUsbD1bXSxjPTAsZj1lLmxlbmd0aDtjPGY7YysrKShyPWVbY10pLnN0eWxlJiYobj1yLnN0eWxlLmRpc3BsYXksdD8oIm5vbmUiPT09biYmKGxbY109WS5nZXQociwiZGlzcGxheSIpfHxudWxsLGxbY118fChyLnN0eWxlLmRpc3BsYXk9IiIpKSwiIj09PXIuc3R5bGUuZGlzcGxheSYmYWUocikmJihsW2NdPSh1PWE9bz12b2lkIDAsYT0oaT1yKS5vd25lckRvY3VtZW50LHM9aS5ub2RlTmFtZSwodT11ZVtzXSl8fChvPWEuYm9keS5hcHBlbmRDaGlsZChhLmNyZWF0ZUVsZW1lbnQocykpLHU9Uy5jc3MobywiZGlzcGxheSIpLG8ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChvKSwibm9uZSI9PT11JiYodT0iYmxvY2siKSx1ZVtzXT11KSkpKToibm9uZSIhPT1uJiYobFtjXT0ibm9uZSIsWS5zZXQociwiZGlzcGxheSIsbikpKTtmb3IoYz0wO2M8ZjtjKyspbnVsbCE9bFtjXSYmKGVbY10uc3R5bGUuZGlzcGxheT1sW2NdKTtyZXR1cm4gZX1TLmZuLmV4dGVuZCh7c2hvdzpmdW5jdGlvbigpe3JldHVybiBsZSh0aGlzLCEwKX0saGlkZTpmdW5jdGlvbigpe3JldHVybiBsZSh0aGlzKX0sdG9nZ2xlOmZ1bmN0aW9uKGUpe3JldHVybiJib29sZWFuIj09dHlwZW9mIGU/ZT90aGlzLnNob3coKTp0aGlzLmhpZGUoKTp0aGlzLmVhY2goZnVuY3Rpb24oKXthZSh0aGlzKT9TKHRoaXMpLnNob3coKTpTKHRoaXMpLmhpZGUoKX0pfX0pO3ZhciBjZSxmZSxwZT0vXig/OmNoZWNrYm94fHJhZGlvKSQvaSxkZT0vPChbYS16XVteXC9cMD5ceDIwXHRcclxuXGZdKikvaSxoZT0vXiR8Xm1vZHVsZSR8XC8oPzpqYXZhfGVjbWEpc2NyaXB0L2k7Y2U9RS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkuYXBwZW5kQ2hpbGQoRS5jcmVhdGVFbGVtZW50KCJkaXYiKSksKGZlPUUuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSkuc2V0QXR0cmlidXRlKCJ0eXBlIiwicmFkaW8iKSxmZS5zZXRBdHRyaWJ1dGUoImNoZWNrZWQiLCJjaGVja2VkIiksZmUuc2V0QXR0cmlidXRlKCJuYW1lIiwidCIpLGNlLmFwcGVuZENoaWxkKGZlKSx5LmNoZWNrQ2xvbmU9Y2UuY2xvbmVOb2RlKCEwKS5jbG9uZU5vZGUoITApLmxhc3RDaGlsZC5jaGVja2VkLGNlLmlubmVySFRNTD0iPHRleHRhcmVhPng8L3RleHRhcmVhPiIseS5ub0Nsb25lQ2hlY2tlZD0hIWNlLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmRlZmF1bHRWYWx1ZSxjZS5pbm5lckhUTUw9IjxvcHRpb24+PC9vcHRpb24+Iix5Lm9wdGlvbj0hIWNlLmxhc3RDaGlsZDt2YXIgZ2U9e3RoZWFkOlsxLCI8dGFibGU+IiwiPC90YWJsZT4iXSxjb2w6WzIsIjx0YWJsZT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdLHRyOlsyLCI8dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXSx0ZDpbMywiPHRhYmxlPjx0Ym9keT48dHI+IiwiPC90cj48L3Rib2R5PjwvdGFibGU+Il0sX2RlZmF1bHQ6WzAsIiIsIiJdfTtmdW5jdGlvbiB2ZShlLHQpe3ZhciBuO3JldHVybiBuPSJ1bmRlZmluZWQiIT10eXBlb2YgZS5nZXRFbGVtZW50c0J5VGFnTmFtZT9lLmdldEVsZW1lbnRzQnlUYWdOYW1lKHR8fCIqIik6InVuZGVmaW5lZCIhPXR5cGVvZiBlLnF1ZXJ5U2VsZWN0b3JBbGw/ZS5xdWVyeVNlbGVjdG9yQWxsKHR8fCIqIik6W10sdm9pZCAwPT09dHx8dCYmQShlLHQpP1MubWVyZ2UoW2VdLG4pOm59ZnVuY3Rpb24geWUoZSx0KXtmb3IodmFyIG49MCxyPWUubGVuZ3RoO248cjtuKyspWS5zZXQoZVtuXSwiZ2xvYmFsRXZhbCIsIXR8fFkuZ2V0KHRbbl0sImdsb2JhbEV2YWwiKSl9Z2UudGJvZHk9Z2UudGZvb3Q9Z2UuY29sZ3JvdXA9Z2UuY2FwdGlvbj1nZS50aGVhZCxnZS50aD1nZS50ZCx5Lm9wdGlvbnx8KGdlLm9wdGdyb3VwPWdlLm9wdGlvbj1bMSwiPHNlbGVjdCBtdWx0aXBsZT0nbXVsdGlwbGUnPiIsIjwvc2VsZWN0PiJdKTt2YXIgbWU9Lzx8JiM/XHcrOy87ZnVuY3Rpb24geGUoZSx0LG4scixpKXtmb3IodmFyIG8sYSxzLHUsbCxjLGY9dC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkscD1bXSxkPTAsaD1lLmxlbmd0aDtkPGg7ZCsrKWlmKChvPWVbZF0pfHwwPT09bylpZigib2JqZWN0Ij09PXcobykpUy5tZXJnZShwLG8ubm9kZVR5cGU/W29dOm8pO2Vsc2UgaWYobWUudGVzdChvKSl7YT1hfHxmLmFwcGVuZENoaWxkKHQuY3JlYXRlRWxlbWVudCgiZGl2IikpLHM9KGRlLmV4ZWMobyl8fFsiIiwiIl0pWzFdLnRvTG93ZXJDYXNlKCksdT1nZVtzXXx8Z2UuX2RlZmF1bHQsYS5pbm5lckhUTUw9dVsxXStTLmh0bWxQcmVmaWx0ZXIobykrdVsyXSxjPXVbMF07d2hpbGUoYy0tKWE9YS5sYXN0Q2hpbGQ7Uy5tZXJnZShwLGEuY2hpbGROb2RlcyksKGE9Zi5maXJzdENoaWxkKS50ZXh0Q29udGVudD0iIn1lbHNlIHAucHVzaCh0LmNyZWF0ZVRleHROb2RlKG8pKTtmLnRleHRDb250ZW50PSIiLGQ9MDt3aGlsZShvPXBbZCsrXSlpZihyJiYtMTxTLmluQXJyYXkobyxyKSlpJiZpLnB1c2gobyk7ZWxzZSBpZihsPWllKG8pLGE9dmUoZi5hcHBlbmRDaGlsZChvKSwic2NyaXB0IiksbCYmeWUoYSksbil7Yz0wO3doaWxlKG89YVtjKytdKWhlLnRlc3Qoby50eXBlfHwiIikmJm4ucHVzaChvKX1yZXR1cm4gZn12YXIgYmU9L14oW14uXSopKD86XC4oLispfCkvO2Z1bmN0aW9uIHdlKCl7cmV0dXJuITB9ZnVuY3Rpb24gVGUoKXtyZXR1cm4hMX1mdW5jdGlvbiBDZShlLHQpe3JldHVybiBlPT09ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIEUuYWN0aXZlRWxlbWVudH1jYXRjaChlKXt9fSgpPT0oImZvY3VzIj09PXQpfWZ1bmN0aW9uIEVlKGUsdCxuLHIsaSxvKXt2YXIgYSxzO2lmKCJvYmplY3QiPT10eXBlb2YgdCl7Zm9yKHMgaW4ic3RyaW5nIiE9dHlwZW9mIG4mJihyPXJ8fG4sbj12b2lkIDApLHQpRWUoZSxzLG4scix0W3NdLG8pO3JldHVybiBlfWlmKG51bGw9PXImJm51bGw9PWk/KGk9bixyPW49dm9pZCAwKTpudWxsPT1pJiYoInN0cmluZyI9PXR5cGVvZiBuPyhpPXIscj12b2lkIDApOihpPXIscj1uLG49dm9pZCAwKSksITE9PT1pKWk9VGU7ZWxzZSBpZighaSlyZXR1cm4gZTtyZXR1cm4gMT09PW8mJihhPWksKGk9ZnVuY3Rpb24oZSl7cmV0dXJuIFMoKS5vZmYoZSksYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KS5ndWlkPWEuZ3VpZHx8KGEuZ3VpZD1TLmd1aWQrKykpLGUuZWFjaChmdW5jdGlvbigpe1MuZXZlbnQuYWRkKHRoaXMsdCxpLHIsbil9KX1mdW5jdGlvbiBTZShlLGksbyl7bz8oWS5zZXQoZSxpLCExKSxTLmV2ZW50LmFkZChlLGkse25hbWVzcGFjZTohMSxoYW5kbGVyOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj1ZLmdldCh0aGlzLGkpO2lmKDEmZS5pc1RyaWdnZXImJnRoaXNbaV0pe2lmKHIubGVuZ3RoKShTLmV2ZW50LnNwZWNpYWxbaV18fHt9KS5kZWxlZ2F0ZVR5cGUmJmUuc3RvcFByb3BhZ2F0aW9uKCk7ZWxzZSBpZihyPXMuY2FsbChhcmd1bWVudHMpLFkuc2V0KHRoaXMsaSxyKSx0PW8odGhpcyxpKSx0aGlzW2ldKCksciE9PShuPVkuZ2V0KHRoaXMsaSkpfHx0P1kuc2V0KHRoaXMsaSwhMSk6bj17fSxyIT09bilyZXR1cm4gZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSxlLnByZXZlbnREZWZhdWx0KCksbiYmbi52YWx1ZX1lbHNlIHIubGVuZ3RoJiYoWS5zZXQodGhpcyxpLHt2YWx1ZTpTLmV2ZW50LnRyaWdnZXIoUy5leHRlbmQoclswXSxTLkV2ZW50LnByb3RvdHlwZSksci5zbGljZSgxKSx0aGlzKX0pLGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCkpfX0pKTp2b2lkIDA9PT1ZLmdldChlLGkpJiZTLmV2ZW50LmFkZChlLGksd2UpfVMuZXZlbnQ9e2dsb2JhbDp7fSxhZGQ6ZnVuY3Rpb24odCxlLG4scixpKXt2YXIgbyxhLHMsdSxsLGMsZixwLGQsaCxnLHY9WS5nZXQodCk7aWYoVih0KSl7bi5oYW5kbGVyJiYobj0obz1uKS5oYW5kbGVyLGk9by5zZWxlY3RvciksaSYmUy5maW5kLm1hdGNoZXNTZWxlY3RvcihyZSxpKSxuLmd1aWR8fChuLmd1aWQ9Uy5ndWlkKyspLCh1PXYuZXZlbnRzKXx8KHU9di5ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSksKGE9di5oYW5kbGUpfHwoYT12LmhhbmRsZT1mdW5jdGlvbihlKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIFMmJlMuZXZlbnQudHJpZ2dlcmVkIT09ZS50eXBlP1MuZXZlbnQuZGlzcGF0Y2guYXBwbHkodCxhcmd1bWVudHMpOnZvaWQgMH0pLGw9KGU9KGV8fCIiKS5tYXRjaChQKXx8WyIiXSkubGVuZ3RoO3doaWxlKGwtLSlkPWc9KHM9YmUuZXhlYyhlW2xdKXx8W10pWzFdLGg9KHNbMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKSxkJiYoZj1TLmV2ZW50LnNwZWNpYWxbZF18fHt9LGQ9KGk/Zi5kZWxlZ2F0ZVR5cGU6Zi5iaW5kVHlwZSl8fGQsZj1TLmV2ZW50LnNwZWNpYWxbZF18fHt9LGM9Uy5leHRlbmQoe3R5cGU6ZCxvcmlnVHlwZTpnLGRhdGE6cixoYW5kbGVyOm4sZ3VpZDpuLmd1aWQsc2VsZWN0b3I6aSxuZWVkc0NvbnRleHQ6aSYmUy5leHByLm1hdGNoLm5lZWRzQ29udGV4dC50ZXN0KGkpLG5hbWVzcGFjZTpoLmpvaW4oIi4iKX0sbyksKHA9dVtkXSl8fCgocD11W2RdPVtdKS5kZWxlZ2F0ZUNvdW50PTAsZi5zZXR1cCYmITEhPT1mLnNldHVwLmNhbGwodCxyLGgsYSl8fHQuYWRkRXZlbnRMaXN0ZW5lciYmdC5hZGRFdmVudExpc3RlbmVyKGQsYSkpLGYuYWRkJiYoZi5hZGQuY2FsbCh0LGMpLGMuaGFuZGxlci5ndWlkfHwoYy5oYW5kbGVyLmd1aWQ9bi5ndWlkKSksaT9wLnNwbGljZShwLmRlbGVnYXRlQ291bnQrKywwLGMpOnAucHVzaChjKSxTLmV2ZW50Lmdsb2JhbFtkXT0hMCl9fSxyZW1vdmU6ZnVuY3Rpb24oZSx0LG4scixpKXt2YXIgbyxhLHMsdSxsLGMsZixwLGQsaCxnLHY9WS5oYXNEYXRhKGUpJiZZLmdldChlKTtpZih2JiYodT12LmV2ZW50cykpe2w9KHQ9KHR8fCIiKS5tYXRjaChQKXx8WyIiXSkubGVuZ3RoO3doaWxlKGwtLSlpZihkPWc9KHM9YmUuZXhlYyh0W2xdKXx8W10pWzFdLGg9KHNbMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKSxkKXtmPVMuZXZlbnQuc3BlY2lhbFtkXXx8e30scD11W2Q9KHI/Zi5kZWxlZ2F0ZVR5cGU6Zi5iaW5kVHlwZSl8fGRdfHxbXSxzPXNbMl0mJm5ldyBSZWdFeHAoIihefFxcLikiK2guam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIiksYT1vPXAubGVuZ3RoO3doaWxlKG8tLSljPXBbb10sIWkmJmchPT1jLm9yaWdUeXBlfHxuJiZuLmd1aWQhPT1jLmd1aWR8fHMmJiFzLnRlc3QoYy5uYW1lc3BhY2UpfHxyJiZyIT09Yy5zZWxlY3RvciYmKCIqKiIhPT1yfHwhYy5zZWxlY3Rvcil8fChwLnNwbGljZShvLDEpLGMuc2VsZWN0b3ImJnAuZGVsZWdhdGVDb3VudC0tLGYucmVtb3ZlJiZmLnJlbW92ZS5jYWxsKGUsYykpO2EmJiFwLmxlbmd0aCYmKGYudGVhcmRvd24mJiExIT09Zi50ZWFyZG93bi5jYWxsKGUsaCx2LmhhbmRsZSl8fFMucmVtb3ZlRXZlbnQoZSxkLHYuaGFuZGxlKSxkZWxldGUgdVtkXSl9ZWxzZSBmb3IoZCBpbiB1KVMuZXZlbnQucmVtb3ZlKGUsZCt0W2xdLG4sciwhMCk7Uy5pc0VtcHR5T2JqZWN0KHUpJiZZLnJlbW92ZShlLCJoYW5kbGUgZXZlbnRzIil9fSxkaXNwYXRjaDpmdW5jdGlvbihlKXt2YXIgdCxuLHIsaSxvLGEscz1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCksdT1TLmV2ZW50LmZpeChlKSxsPShZLmdldCh0aGlzLCJldmVudHMiKXx8T2JqZWN0LmNyZWF0ZShudWxsKSlbdS50eXBlXXx8W10sYz1TLmV2ZW50LnNwZWNpYWxbdS50eXBlXXx8e307Zm9yKHNbMF09dSx0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKylzW3RdPWFyZ3VtZW50c1t0XTtpZih1LmRlbGVnYXRlVGFyZ2V0PXRoaXMsIWMucHJlRGlzcGF0Y2h8fCExIT09Yy5wcmVEaXNwYXRjaC5jYWxsKHRoaXMsdSkpe2E9Uy5ldmVudC5oYW5kbGVycy5jYWxsKHRoaXMsdSxsKSx0PTA7d2hpbGUoKGk9YVt0KytdKSYmIXUuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSl7dS5jdXJyZW50VGFyZ2V0PWkuZWxlbSxuPTA7d2hpbGUoKG89aS5oYW5kbGVyc1tuKytdKSYmIXUuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKSl1LnJuYW1lc3BhY2UmJiExIT09by5uYW1lc3BhY2UmJiF1LnJuYW1lc3BhY2UudGVzdChvLm5hbWVzcGFjZSl8fCh1LmhhbmRsZU9iaj1vLHUuZGF0YT1vLmRhdGEsdm9pZCAwIT09KHI9KChTLmV2ZW50LnNwZWNpYWxbby5vcmlnVHlwZV18fHt9KS5oYW5kbGV8fG8uaGFuZGxlcikuYXBwbHkoaS5lbGVtLHMpKSYmITE9PT0odS5yZXN1bHQ9cikmJih1LnByZXZlbnREZWZhdWx0KCksdS5zdG9wUHJvcGFnYXRpb24oKSkpfXJldHVybiBjLnBvc3REaXNwYXRjaCYmYy5wb3N0RGlzcGF0Y2guY2FsbCh0aGlzLHUpLHUucmVzdWx0fX0saGFuZGxlcnM6ZnVuY3Rpb24oZSx0KXt2YXIgbixyLGksbyxhLHM9W10sdT10LmRlbGVnYXRlQ291bnQsbD1lLnRhcmdldDtpZih1JiZsLm5vZGVUeXBlJiYhKCJjbGljayI9PT1lLnR5cGUmJjE8PWUuYnV0dG9uKSlmb3IoO2whPT10aGlzO2w9bC5wYXJlbnROb2RlfHx0aGlzKWlmKDE9PT1sLm5vZGVUeXBlJiYoImNsaWNrIiE9PWUudHlwZXx8ITAhPT1sLmRpc2FibGVkKSl7Zm9yKG89W10sYT17fSxuPTA7bjx1O24rKyl2b2lkIDA9PT1hW2k9KHI9dFtuXSkuc2VsZWN0b3IrIiAiXSYmKGFbaV09ci5uZWVkc0NvbnRleHQ/LTE8UyhpLHRoaXMpLmluZGV4KGwpOlMuZmluZChpLHRoaXMsbnVsbCxbbF0pLmxlbmd0aCksYVtpXSYmby5wdXNoKHIpO28ubGVuZ3RoJiZzLnB1c2goe2VsZW06bCxoYW5kbGVyczpvfSl9cmV0dXJuIGw9dGhpcyx1PHQubGVuZ3RoJiZzLnB1c2goe2VsZW06bCxoYW5kbGVyczp0LnNsaWNlKHUpfSksc30sYWRkUHJvcDpmdW5jdGlvbih0LGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShTLkV2ZW50LnByb3RvdHlwZSx0LHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6bShlKT9mdW5jdGlvbigpe2lmKHRoaXMub3JpZ2luYWxFdmVudClyZXR1cm4gZSh0aGlzLm9yaWdpbmFsRXZlbnQpfTpmdW5jdGlvbigpe2lmKHRoaXMub3JpZ2luYWxFdmVudClyZXR1cm4gdGhpcy5vcmlnaW5hbEV2ZW50W3RdfSxzZXQ6ZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsdCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZX0pfX0pfSxmaXg6ZnVuY3Rpb24oZSl7cmV0dXJuIGVbUy5leHBhbmRvXT9lOm5ldyBTLkV2ZW50KGUpfSxzcGVjaWFsOntsb2FkOntub0J1YmJsZTohMH0sY2xpY2s6e3NldHVwOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXN8fGU7cmV0dXJuIHBlLnRlc3QodC50eXBlKSYmdC5jbGljayYmQSh0LCJpbnB1dCIpJiZTZSh0LCJjbGljayIsd2UpLCExfSx0cmlnZ2VyOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXN8fGU7cmV0dXJuIHBlLnRlc3QodC50eXBlKSYmdC5jbGljayYmQSh0LCJpbnB1dCIpJiZTZSh0LCJjbGljayIpLCEwfSxfZGVmYXVsdDpmdW5jdGlvbihlKXt2YXIgdD1lLnRhcmdldDtyZXR1cm4gcGUudGVzdCh0LnR5cGUpJiZ0LmNsaWNrJiZBKHQsImlucHV0IikmJlkuZ2V0KHQsImNsaWNrIil8fEEodCwiYSIpfX0sYmVmb3JldW5sb2FkOntwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24oZSl7dm9pZCAwIT09ZS5yZXN1bHQmJmUub3JpZ2luYWxFdmVudCYmKGUub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZT1lLnJlc3VsdCl9fX19LFMucmVtb3ZlRXZlbnQ9ZnVuY3Rpb24oZSx0LG4pe2UucmVtb3ZlRXZlbnRMaXN0ZW5lciYmZS5yZW1vdmVFdmVudExpc3RlbmVyKHQsbil9LFMuRXZlbnQ9ZnVuY3Rpb24oZSx0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBTLkV2ZW50KSlyZXR1cm4gbmV3IFMuRXZlbnQoZSx0KTtlJiZlLnR5cGU/KHRoaXMub3JpZ2luYWxFdmVudD1lLHRoaXMudHlwZT1lLnR5cGUsdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9ZS5kZWZhdWx0UHJldmVudGVkfHx2b2lkIDA9PT1lLmRlZmF1bHRQcmV2ZW50ZWQmJiExPT09ZS5yZXR1cm5WYWx1ZT93ZTpUZSx0aGlzLnRhcmdldD1lLnRhcmdldCYmMz09PWUudGFyZ2V0Lm5vZGVUeXBlP2UudGFyZ2V0LnBhcmVudE5vZGU6ZS50YXJnZXQsdGhpcy5jdXJyZW50VGFyZ2V0PWUuY3VycmVudFRhcmdldCx0aGlzLnJlbGF0ZWRUYXJnZXQ9ZS5yZWxhdGVkVGFyZ2V0KTp0aGlzLnR5cGU9ZSx0JiZTLmV4dGVuZCh0aGlzLHQpLHRoaXMudGltZVN0YW1wPWUmJmUudGltZVN0YW1wfHxEYXRlLm5vdygpLHRoaXNbUy5leHBhbmRvXT0hMH0sUy5FdmVudC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlMuRXZlbnQsaXNEZWZhdWx0UHJldmVudGVkOlRlLGlzUHJvcGFnYXRpb25TdG9wcGVkOlRlLGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOlRlLGlzU2ltdWxhdGVkOiExLHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPXdlLGUmJiF0aGlzLmlzU2ltdWxhdGVkJiZlLnByZXZlbnREZWZhdWx0KCl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPXdlLGUmJiF0aGlzLmlzU2ltdWxhdGVkJiZlLnN0b3BQcm9wYWdhdGlvbigpfSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD13ZSxlJiYhdGhpcy5pc1NpbXVsYXRlZCYmZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSx0aGlzLnN0b3BQcm9wYWdhdGlvbigpfX0sUy5lYWNoKHthbHRLZXk6ITAsYnViYmxlczohMCxjYW5jZWxhYmxlOiEwLGNoYW5nZWRUb3VjaGVzOiEwLGN0cmxLZXk6ITAsZGV0YWlsOiEwLGV2ZW50UGhhc2U6ITAsbWV0YUtleTohMCxwYWdlWDohMCxwYWdlWTohMCxzaGlmdEtleTohMCx2aWV3OiEwLCJjaGFyIjohMCxjb2RlOiEwLGNoYXJDb2RlOiEwLGtleTohMCxrZXlDb2RlOiEwLGJ1dHRvbjohMCxidXR0b25zOiEwLGNsaWVudFg6ITAsY2xpZW50WTohMCxvZmZzZXRYOiEwLG9mZnNldFk6ITAscG9pbnRlcklkOiEwLHBvaW50ZXJUeXBlOiEwLHNjcmVlblg6ITAsc2NyZWVuWTohMCx0YXJnZXRUb3VjaGVzOiEwLHRvRWxlbWVudDohMCx0b3VjaGVzOiEwLHdoaWNoOiEwfSxTLmV2ZW50LmFkZFByb3ApLFMuZWFjaCh7Zm9jdXM6ImZvY3VzaW4iLGJsdXI6ImZvY3Vzb3V0In0sZnVuY3Rpb24oZSx0KXtTLmV2ZW50LnNwZWNpYWxbZV09e3NldHVwOmZ1bmN0aW9uKCl7cmV0dXJuIFNlKHRoaXMsZSxDZSksITF9LHRyaWdnZXI6ZnVuY3Rpb24oKXtyZXR1cm4gU2UodGhpcyxlKSwhMH0sX2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sZGVsZWdhdGVUeXBlOnR9fSksUy5lYWNoKHttb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNlbGVhdmU6Im1vdXNlb3V0Iixwb2ludGVyZW50ZXI6InBvaW50ZXJvdmVyIixwb2ludGVybGVhdmU6InBvaW50ZXJvdXQifSxmdW5jdGlvbihlLGkpe1MuZXZlbnQuc3BlY2lhbFtlXT17ZGVsZWdhdGVUeXBlOmksYmluZFR5cGU6aSxoYW5kbGU6ZnVuY3Rpb24oZSl7dmFyIHQsbj1lLnJlbGF0ZWRUYXJnZXQscj1lLmhhbmRsZU9iajtyZXR1cm4gbiYmKG49PT10aGlzfHxTLmNvbnRhaW5zKHRoaXMsbikpfHwoZS50eXBlPXIub3JpZ1R5cGUsdD1yLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLGUudHlwZT1pKSx0fX19KSxTLmZuLmV4dGVuZCh7b246ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIEVlKHRoaXMsZSx0LG4scil9LG9uZTpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gRWUodGhpcyxlLHQsbixyLDEpfSxvZmY6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGk7aWYoZSYmZS5wcmV2ZW50RGVmYXVsdCYmZS5oYW5kbGVPYmopcmV0dXJuIHI9ZS5oYW5kbGVPYmosUyhlLmRlbGVnYXRlVGFyZ2V0KS5vZmYoci5uYW1lc3BhY2U/ci5vcmlnVHlwZSsiLiIrci5uYW1lc3BhY2U6ci5vcmlnVHlwZSxyLnNlbGVjdG9yLHIuaGFuZGxlciksdGhpcztpZigib2JqZWN0Ij09dHlwZW9mIGUpe2ZvcihpIGluIGUpdGhpcy5vZmYoaSx0LGVbaV0pO3JldHVybiB0aGlzfXJldHVybiExIT09dCYmImZ1bmN0aW9uIiE9dHlwZW9mIHR8fChuPXQsdD12b2lkIDApLCExPT09biYmKG49VGUpLHRoaXMuZWFjaChmdW5jdGlvbigpe1MuZXZlbnQucmVtb3ZlKHRoaXMsZSxuLHQpfSl9fSk7dmFyIGtlPS88c2NyaXB0fDxzdHlsZXw8bGluay9pLEFlPS9jaGVja2VkXHMqKD86W149XXw9XHMqLmNoZWNrZWQuKS9pLE5lPS9eXHMqPCEoPzpcW0NEQVRBXFt8LS0pfCg/OlxdXF18LS0pPlxzKiQvZztmdW5jdGlvbiBqZShlLHQpe3JldHVybiBBKGUsInRhYmxlIikmJkEoMTEhPT10Lm5vZGVUeXBlP3Q6dC5maXJzdENoaWxkLCJ0ciIpJiZTKGUpLmNoaWxkcmVuKCJ0Ym9keSIpWzBdfHxlfWZ1bmN0aW9uIERlKGUpe3JldHVybiBlLnR5cGU9KG51bGwhPT1lLmdldEF0dHJpYnV0ZSgidHlwZSIpKSsiLyIrZS50eXBlLGV9ZnVuY3Rpb24gcWUoZSl7cmV0dXJuInRydWUvIj09PShlLnR5cGV8fCIiKS5zbGljZSgwLDUpP2UudHlwZT1lLnR5cGUuc2xpY2UoNSk6ZS5yZW1vdmVBdHRyaWJ1dGUoInR5cGUiKSxlfWZ1bmN0aW9uIExlKGUsdCl7dmFyIG4scixpLG8sYSxzO2lmKDE9PT10Lm5vZGVUeXBlKXtpZihZLmhhc0RhdGEoZSkmJihzPVkuZ2V0KGUpLmV2ZW50cykpZm9yKGkgaW4gWS5yZW1vdmUodCwiaGFuZGxlIGV2ZW50cyIpLHMpZm9yKG49MCxyPXNbaV0ubGVuZ3RoO248cjtuKyspUy5ldmVudC5hZGQodCxpLHNbaV1bbl0pO1EuaGFzRGF0YShlKSYmKG89US5hY2Nlc3MoZSksYT1TLmV4dGVuZCh7fSxvKSxRLnNldCh0LGEpKX19ZnVuY3Rpb24gSGUobixyLGksbyl7cj1nKHIpO3ZhciBlLHQsYSxzLHUsbCxjPTAsZj1uLmxlbmd0aCxwPWYtMSxkPXJbMF0saD1tKGQpO2lmKGh8fDE8ZiYmInN0cmluZyI9PXR5cGVvZiBkJiYheS5jaGVja0Nsb25lJiZBZS50ZXN0KGQpKXJldHVybiBuLmVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9bi5lcShlKTtoJiYoclswXT1kLmNhbGwodGhpcyxlLHQuaHRtbCgpKSksSGUodCxyLGksbyl9KTtpZihmJiYodD0oZT14ZShyLG5bMF0ub3duZXJEb2N1bWVudCwhMSxuLG8pKS5maXJzdENoaWxkLDE9PT1lLmNoaWxkTm9kZXMubGVuZ3RoJiYoZT10KSx0fHxvKSl7Zm9yKHM9KGE9Uy5tYXAodmUoZSwic2NyaXB0IiksRGUpKS5sZW5ndGg7YzxmO2MrKyl1PWUsYyE9PXAmJih1PVMuY2xvbmUodSwhMCwhMCkscyYmUy5tZXJnZShhLHZlKHUsInNjcmlwdCIpKSksaS5jYWxsKG5bY10sdSxjKTtpZihzKWZvcihsPWFbYS5sZW5ndGgtMV0ub3duZXJEb2N1bWVudCxTLm1hcChhLHFlKSxjPTA7YzxzO2MrKyl1PWFbY10saGUudGVzdCh1LnR5cGV8fCIiKSYmIVkuYWNjZXNzKHUsImdsb2JhbEV2YWwiKSYmUy5jb250YWlucyhsLHUpJiYodS5zcmMmJiJtb2R1bGUiIT09KHUudHlwZXx8IiIpLnRvTG93ZXJDYXNlKCk/Uy5fZXZhbFVybCYmIXUubm9Nb2R1bGUmJlMuX2V2YWxVcmwodS5zcmMse25vbmNlOnUubm9uY2V8fHUuZ2V0QXR0cmlidXRlKCJub25jZSIpfSxsKTpiKHUudGV4dENvbnRlbnQucmVwbGFjZShOZSwiIiksdSxsKSl9cmV0dXJuIG59ZnVuY3Rpb24gT2UoZSx0LG4pe2Zvcih2YXIgcixpPXQ/Uy5maWx0ZXIodCxlKTplLG89MDtudWxsIT0ocj1pW29dKTtvKyspbnx8MSE9PXIubm9kZVR5cGV8fFMuY2xlYW5EYXRhKHZlKHIpKSxyLnBhcmVudE5vZGUmJihuJiZpZShyKSYmeWUodmUociwic2NyaXB0IikpLHIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyKSk7cmV0dXJuIGV9Uy5leHRlbmQoe2h0bWxQcmVmaWx0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LGNsb25lOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzLHUsbCxjPWUuY2xvbmVOb2RlKCEwKSxmPWllKGUpO2lmKCEoeS5ub0Nsb25lQ2hlY2tlZHx8MSE9PWUubm9kZVR5cGUmJjExIT09ZS5ub2RlVHlwZXx8Uy5pc1hNTERvYyhlKSkpZm9yKGE9dmUoYykscj0wLGk9KG89dmUoZSkpLmxlbmd0aDtyPGk7cisrKXM9b1tyXSx1PWFbcl0sdm9pZCAwLCJpbnB1dCI9PT0obD11Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpJiZwZS50ZXN0KHMudHlwZSk/dS5jaGVja2VkPXMuY2hlY2tlZDoiaW5wdXQiIT09bCYmInRleHRhcmVhIiE9PWx8fCh1LmRlZmF1bHRWYWx1ZT1zLmRlZmF1bHRWYWx1ZSk7aWYodClpZihuKWZvcihvPW98fHZlKGUpLGE9YXx8dmUoYykscj0wLGk9by5sZW5ndGg7cjxpO3IrKylMZShvW3JdLGFbcl0pO2Vsc2UgTGUoZSxjKTtyZXR1cm4gMDwoYT12ZShjLCJzY3JpcHQiKSkubGVuZ3RoJiZ5ZShhLCFmJiZ2ZShlLCJzY3JpcHQiKSksY30sY2xlYW5EYXRhOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuLHIsaT1TLmV2ZW50LnNwZWNpYWwsbz0wO3ZvaWQgMCE9PShuPWVbb10pO28rKylpZihWKG4pKXtpZih0PW5bWS5leHBhbmRvXSl7aWYodC5ldmVudHMpZm9yKHIgaW4gdC5ldmVudHMpaVtyXT9TLmV2ZW50LnJlbW92ZShuLHIpOlMucmVtb3ZlRXZlbnQobixyLHQuaGFuZGxlKTtuW1kuZXhwYW5kb109dm9pZCAwfW5bUS5leHBhbmRvXSYmKG5bUS5leHBhbmRvXT12b2lkIDApfX19KSxTLmZuLmV4dGVuZCh7ZGV0YWNoOmZ1bmN0aW9uKGUpe3JldHVybiBPZSh0aGlzLGUsITApfSxyZW1vdmU6ZnVuY3Rpb24oZSl7cmV0dXJuIE9lKHRoaXMsZSl9LHRleHQ6ZnVuY3Rpb24oZSl7cmV0dXJuICQodGhpcyxmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwPT09ZT9TLnRleHQodGhpcyk6dGhpcy5lbXB0eSgpLmVhY2goZnVuY3Rpb24oKXsxIT09dGhpcy5ub2RlVHlwZSYmMTEhPT10aGlzLm5vZGVUeXBlJiY5IT09dGhpcy5ub2RlVHlwZXx8KHRoaXMudGV4dENvbnRlbnQ9ZSl9KX0sbnVsbCxlLGFyZ3VtZW50cy5sZW5ndGgpfSxhcHBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gSGUodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oZSl7MSE9PXRoaXMubm9kZVR5cGUmJjExIT09dGhpcy5ub2RlVHlwZSYmOSE9PXRoaXMubm9kZVR5cGV8fGplKHRoaXMsZSkuYXBwZW5kQ2hpbGQoZSl9KX0scHJlcGVuZDpmdW5jdGlvbigpe3JldHVybiBIZSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihlKXtpZigxPT09dGhpcy5ub2RlVHlwZXx8MTE9PT10aGlzLm5vZGVUeXBlfHw5PT09dGhpcy5ub2RlVHlwZSl7dmFyIHQ9amUodGhpcyxlKTt0Lmluc2VydEJlZm9yZShlLHQuZmlyc3RDaGlsZCl9fSl9LGJlZm9yZTpmdW5jdGlvbigpe3JldHVybiBIZSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihlKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSx0aGlzKX0pfSxhZnRlcjpmdW5jdGlvbigpe3JldHVybiBIZSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihlKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSx0aGlzLm5leHRTaWJsaW5nKX0pfSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgZSx0PTA7bnVsbCE9KGU9dGhpc1t0XSk7dCsrKTE9PT1lLm5vZGVUeXBlJiYoUy5jbGVhbkRhdGEodmUoZSwhMSkpLGUudGV4dENvbnRlbnQ9IiIpO3JldHVybiB0aGlzfSxjbG9uZTpmdW5jdGlvbihlLHQpe3JldHVybiBlPW51bGwhPWUmJmUsdD1udWxsPT10P2U6dCx0aGlzLm1hcChmdW5jdGlvbigpe3JldHVybiBTLmNsb25lKHRoaXMsZSx0KX0pfSxodG1sOmZ1bmN0aW9uKGUpe3JldHVybiAkKHRoaXMsZnVuY3Rpb24oZSl7dmFyIHQ9dGhpc1swXXx8e30sbj0wLHI9dGhpcy5sZW5ndGg7aWYodm9pZCAwPT09ZSYmMT09PXQubm9kZVR5cGUpcmV0dXJuIHQuaW5uZXJIVE1MO2lmKCJzdHJpbmciPT10eXBlb2YgZSYmIWtlLnRlc3QoZSkmJiFnZVsoZGUuZXhlYyhlKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKV0pe2U9Uy5odG1sUHJlZmlsdGVyKGUpO3RyeXtmb3IoO248cjtuKyspMT09PSh0PXRoaXNbbl18fHt9KS5ub2RlVHlwZSYmKFMuY2xlYW5EYXRhKHZlKHQsITEpKSx0LmlubmVySFRNTD1lKTt0PTB9Y2F0Y2goZSl7fX10JiZ0aGlzLmVtcHR5KCkuYXBwZW5kKGUpfSxudWxsLGUsYXJndW1lbnRzLmxlbmd0aCl9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKCl7dmFyIG49W107cmV0dXJuIEhlKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMucGFyZW50Tm9kZTtTLmluQXJyYXkodGhpcyxuKTwwJiYoUy5jbGVhbkRhdGEodmUodGhpcykpLHQmJnQucmVwbGFjZUNoaWxkKGUsdGhpcykpfSxuKX19KSxTLmVhY2goe2FwcGVuZFRvOiJhcHBlbmQiLHByZXBlbmRUbzoicHJlcGVuZCIsaW5zZXJ0QmVmb3JlOiJiZWZvcmUiLGluc2VydEFmdGVyOiJhZnRlciIscmVwbGFjZUFsbDoicmVwbGFjZVdpdGgifSxmdW5jdGlvbihlLGEpe1MuZm5bZV09ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG49W10scj1TKGUpLGk9ci5sZW5ndGgtMSxvPTA7bzw9aTtvKyspdD1vPT09aT90aGlzOnRoaXMuY2xvbmUoITApLFMocltvXSlbYV0odCksdS5hcHBseShuLHQuZ2V0KCkpO3JldHVybiB0aGlzLnB1c2hTdGFjayhuKX19KTt2YXIgUGU9bmV3IFJlZ0V4cCgiXigiK2VlKyIpKD8hcHgpW2EteiVdKyQiLCJpIiksUmU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3O3JldHVybiB0JiZ0Lm9wZW5lcnx8KHQ9QyksdC5nZXRDb21wdXRlZFN0eWxlKGUpfSxNZT1mdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPXt9O2ZvcihpIGluIHQpb1tpXT1lLnN0eWxlW2ldLGUuc3R5bGVbaV09dFtpXTtmb3IoaSBpbiByPW4uY2FsbChlKSx0KWUuc3R5bGVbaV09b1tpXTtyZXR1cm4gcn0sSWU9bmV3IFJlZ0V4cChuZS5qb2luKCJ8IiksImkiKTtmdW5jdGlvbiBXZShlLHQsbil7dmFyIHIsaSxvLGEscz1lLnN0eWxlO3JldHVybihuPW58fFJlKGUpKSYmKCIiIT09KGE9bi5nZXRQcm9wZXJ0eVZhbHVlKHQpfHxuW3RdKXx8aWUoZSl8fChhPVMuc3R5bGUoZSx0KSksIXkucGl4ZWxCb3hTdHlsZXMoKSYmUGUudGVzdChhKSYmSWUudGVzdCh0KSYmKHI9cy53aWR0aCxpPXMubWluV2lkdGgsbz1zLm1heFdpZHRoLHMubWluV2lkdGg9cy5tYXhXaWR0aD1zLndpZHRoPWEsYT1uLndpZHRoLHMud2lkdGg9cixzLm1pbldpZHRoPWkscy5tYXhXaWR0aD1vKSksdm9pZCAwIT09YT9hKyIiOmF9ZnVuY3Rpb24gRmUoZSx0KXtyZXR1cm57Z2V0OmZ1bmN0aW9uKCl7aWYoIWUoKSlyZXR1cm4odGhpcy5nZXQ9dCkuYXBwbHkodGhpcyxhcmd1bWVudHMpO2RlbGV0ZSB0aGlzLmdldH19fSFmdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXtpZihsKXt1LnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTExMTExcHg7d2lkdGg6NjBweDttYXJnaW4tdG9wOjFweDtwYWRkaW5nOjA7Ym9yZGVyOjAiLGwuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6c2Nyb2xsO21hcmdpbjphdXRvO2JvcmRlcjoxcHg7cGFkZGluZzoxcHg7d2lkdGg6NjAlO3RvcDoxJSIscmUuYXBwZW5kQ2hpbGQodSkuYXBwZW5kQ2hpbGQobCk7dmFyIGU9Qy5nZXRDb21wdXRlZFN0eWxlKGwpO249IjElIiE9PWUudG9wLHM9MTI9PT10KGUubWFyZ2luTGVmdCksbC5zdHlsZS5yaWdodD0iNjAlIixvPTM2PT09dChlLnJpZ2h0KSxyPTM2PT09dChlLndpZHRoKSxsLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsaT0xMj09PXQobC5vZmZzZXRXaWR0aC8zKSxyZS5yZW1vdmVDaGlsZCh1KSxsPW51bGx9fWZ1bmN0aW9uIHQoZSl7cmV0dXJuIE1hdGgucm91bmQocGFyc2VGbG9hdChlKSl9dmFyIG4scixpLG8sYSxzLHU9RS5jcmVhdGVFbGVtZW50KCJkaXYiKSxsPUUuY3JlYXRlRWxlbWVudCgiZGl2Iik7bC5zdHlsZSYmKGwuc3R5bGUuYmFja2dyb3VuZENsaXA9ImNvbnRlbnQtYm94IixsLmNsb25lTm9kZSghMCkuc3R5bGUuYmFja2dyb3VuZENsaXA9IiIseS5jbGVhckNsb25lU3R5bGU9ImNvbnRlbnQtYm94Ij09PWwuc3R5bGUuYmFja2dyb3VuZENsaXAsUy5leHRlbmQoeSx7Ym94U2l6aW5nUmVsaWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gZSgpLHJ9LHBpeGVsQm94U3R5bGVzOmZ1bmN0aW9uKCl7cmV0dXJuIGUoKSxvfSxwaXhlbFBvc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIGUoKSxufSxyZWxpYWJsZU1hcmdpbkxlZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gZSgpLHN9LHNjcm9sbGJveFNpemU6ZnVuY3Rpb24oKXtyZXR1cm4gZSgpLGl9LHJlbGlhYmxlVHJEaW1lbnNpb25zOmZ1bmN0aW9uKCl7dmFyIGUsdCxuLHI7cmV0dXJuIG51bGw9PWEmJihlPUUuY3JlYXRlRWxlbWVudCgidGFibGUiKSx0PUUuY3JlYXRlRWxlbWVudCgidHIiKSxuPUUuY3JlYXRlRWxlbWVudCgiZGl2IiksZS5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xMTExMXB4O2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZSIsdC5zdHlsZS5jc3NUZXh0PSJib3JkZXI6MXB4IHNvbGlkIix0LnN0eWxlLmhlaWdodD0iMXB4IixuLnN0eWxlLmhlaWdodD0iOXB4IixuLnN0eWxlLmRpc3BsYXk9ImJsb2NrIixyZS5hcHBlbmRDaGlsZChlKS5hcHBlbmRDaGlsZCh0KS5hcHBlbmRDaGlsZChuKSxyPUMuZ2V0Q29tcHV0ZWRTdHlsZSh0KSxhPXBhcnNlSW50KHIuaGVpZ2h0LDEwKStwYXJzZUludChyLmJvcmRlclRvcFdpZHRoLDEwKStwYXJzZUludChyLmJvcmRlckJvdHRvbVdpZHRoLDEwKT09PXQub2Zmc2V0SGVpZ2h0LHJlLnJlbW92ZUNoaWxkKGUpKSxhfX0pKX0oKTt2YXIgQmU9WyJXZWJraXQiLCJNb3oiLCJtcyJdLCRlPUUuY3JlYXRlRWxlbWVudCgiZGl2Iikuc3R5bGUsX2U9e307ZnVuY3Rpb24gemUoZSl7dmFyIHQ9Uy5jc3NQcm9wc1tlXXx8X2VbZV07cmV0dXJuIHR8fChlIGluICRlP2U6X2VbZV09ZnVuY3Rpb24oZSl7dmFyIHQ9ZVswXS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSksbj1CZS5sZW5ndGg7d2hpbGUobi0tKWlmKChlPUJlW25dK3QpaW4gJGUpcmV0dXJuIGV9KGUpfHxlKX12YXIgVWU9L14obm9uZXx0YWJsZSg/IS1jW2VhXSkuKykvLFhlPS9eLS0vLFZlPXtwb3NpdGlvbjoiYWJzb2x1dGUiLHZpc2liaWxpdHk6ImhpZGRlbiIsZGlzcGxheToiYmxvY2sifSxHZT17bGV0dGVyU3BhY2luZzoiMCIsZm9udFdlaWdodDoiNDAwIn07ZnVuY3Rpb24gWWUoZSx0LG4pe3ZhciByPXRlLmV4ZWModCk7cmV0dXJuIHI/TWF0aC5tYXgoMCxyWzJdLShufHwwKSkrKHJbM118fCJweCIpOnR9ZnVuY3Rpb24gUWUoZSx0LG4scixpLG8pe3ZhciBhPSJ3aWR0aCI9PT10PzE6MCxzPTAsdT0wO2lmKG49PT0ocj8iYm9yZGVyIjoiY29udGVudCIpKXJldHVybiAwO2Zvcig7YTw0O2ErPTIpIm1hcmdpbiI9PT1uJiYodSs9Uy5jc3MoZSxuK25lW2FdLCEwLGkpKSxyPygiY29udGVudCI9PT1uJiYodS09Uy5jc3MoZSwicGFkZGluZyIrbmVbYV0sITAsaSkpLCJtYXJnaW4iIT09biYmKHUtPVMuY3NzKGUsImJvcmRlciIrbmVbYV0rIldpZHRoIiwhMCxpKSkpOih1Kz1TLmNzcyhlLCJwYWRkaW5nIituZVthXSwhMCxpKSwicGFkZGluZyIhPT1uP3UrPVMuY3NzKGUsImJvcmRlciIrbmVbYV0rIldpZHRoIiwhMCxpKTpzKz1TLmNzcyhlLCJib3JkZXIiK25lW2FdKyJXaWR0aCIsITAsaSkpO3JldHVybiFyJiYwPD1vJiYodSs9TWF0aC5tYXgoMCxNYXRoLmNlaWwoZVsib2Zmc2V0Iit0WzBdLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKV0tby11LXMtLjUpKXx8MCksdX1mdW5jdGlvbiBKZShlLHQsbil7dmFyIHI9UmUoZSksaT0oIXkuYm94U2l6aW5nUmVsaWFibGUoKXx8bikmJiJib3JkZXItYm94Ij09PVMuY3NzKGUsImJveFNpemluZyIsITEsciksbz1pLGE9V2UoZSx0LHIpLHM9Im9mZnNldCIrdFswXS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSk7aWYoUGUudGVzdChhKSl7aWYoIW4pcmV0dXJuIGE7YT0iYXV0byJ9cmV0dXJuKCF5LmJveFNpemluZ1JlbGlhYmxlKCkmJml8fCF5LnJlbGlhYmxlVHJEaW1lbnNpb25zKCkmJkEoZSwidHIiKXx8ImF1dG8iPT09YXx8IXBhcnNlRmxvYXQoYSkmJiJpbmxpbmUiPT09Uy5jc3MoZSwiZGlzcGxheSIsITEscikpJiZlLmdldENsaWVudFJlY3RzKCkubGVuZ3RoJiYoaT0iYm9yZGVyLWJveCI9PT1TLmNzcyhlLCJib3hTaXppbmciLCExLHIpLChvPXMgaW4gZSkmJihhPWVbc10pKSwoYT1wYXJzZUZsb2F0KGEpfHwwKStRZShlLHQsbnx8KGk/ImJvcmRlciI6ImNvbnRlbnQiKSxvLHIsYSkrInB4In1mdW5jdGlvbiBLZShlLHQsbixyLGkpe3JldHVybiBuZXcgS2UucHJvdG90eXBlLmluaXQoZSx0LG4scixpKX1TLmV4dGVuZCh7Y3NzSG9va3M6e29wYWNpdHk6e2dldDpmdW5jdGlvbihlLHQpe2lmKHQpe3ZhciBuPVdlKGUsIm9wYWNpdHkiKTtyZXR1cm4iIj09PW4/IjEiOm59fX19LGNzc051bWJlcjp7YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ITAsY29sdW1uQ291bnQ6ITAsZmlsbE9wYWNpdHk6ITAsZmxleEdyb3c6ITAsZmxleFNocmluazohMCxmb250V2VpZ2h0OiEwLGdyaWRBcmVhOiEwLGdyaWRDb2x1bW46ITAsZ3JpZENvbHVtbkVuZDohMCxncmlkQ29sdW1uU3RhcnQ6ITAsZ3JpZFJvdzohMCxncmlkUm93RW5kOiEwLGdyaWRSb3dTdGFydDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx3aWRvd3M6ITAsekluZGV4OiEwLHpvb206ITB9LGNzc1Byb3BzOnt9LHN0eWxlOmZ1bmN0aW9uKGUsdCxuLHIpe2lmKGUmJjMhPT1lLm5vZGVUeXBlJiY4IT09ZS5ub2RlVHlwZSYmZS5zdHlsZSl7dmFyIGksbyxhLHM9WCh0KSx1PVhlLnRlc3QodCksbD1lLnN0eWxlO2lmKHV8fCh0PXplKHMpKSxhPVMuY3NzSG9va3NbdF18fFMuY3NzSG9va3Nbc10sdm9pZCAwPT09bilyZXR1cm4gYSYmImdldCJpbiBhJiZ2b2lkIDAhPT0oaT1hLmdldChlLCExLHIpKT9pOmxbdF07InN0cmluZyI9PT0obz10eXBlb2YgbikmJihpPXRlLmV4ZWMobikpJiZpWzFdJiYobj1zZShlLHQsaSksbz0ibnVtYmVyIiksbnVsbCE9biYmbj09biYmKCJudW1iZXIiIT09b3x8dXx8KG4rPWkmJmlbM118fChTLmNzc051bWJlcltzXT8iIjoicHgiKSkseS5jbGVhckNsb25lU3R5bGV8fCIiIT09bnx8MCE9PXQuaW5kZXhPZigiYmFja2dyb3VuZCIpfHwobFt0XT0iaW5oZXJpdCIpLGEmJiJzZXQiaW4gYSYmdm9pZCAwPT09KG49YS5zZXQoZSxuLHIpKXx8KHU/bC5zZXRQcm9wZXJ0eSh0LG4pOmxbdF09bikpfX0sY3NzOmZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpLG8sYSxzPVgodCk7cmV0dXJuIFhlLnRlc3QodCl8fCh0PXplKHMpKSwoYT1TLmNzc0hvb2tzW3RdfHxTLmNzc0hvb2tzW3NdKSYmImdldCJpbiBhJiYoaT1hLmdldChlLCEwLG4pKSx2b2lkIDA9PT1pJiYoaT1XZShlLHQscikpLCJub3JtYWwiPT09aSYmdCBpbiBHZSYmKGk9R2VbdF0pLCIiPT09bnx8bj8obz1wYXJzZUZsb2F0KGkpLCEwPT09bnx8aXNGaW5pdGUobyk/b3x8MDppKTppfX0pLFMuZWFjaChbImhlaWdodCIsIndpZHRoIl0sZnVuY3Rpb24oZSx1KXtTLmNzc0hvb2tzW3VdPXtnZXQ6ZnVuY3Rpb24oZSx0LG4pe2lmKHQpcmV0dXJuIVVlLnRlc3QoUy5jc3MoZSwiZGlzcGxheSIpKXx8ZS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCYmZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aD9KZShlLHUsbik6TWUoZSxWZSxmdW5jdGlvbigpe3JldHVybiBKZShlLHUsbil9KX0sc2V0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpPVJlKGUpLG89IXkuc2Nyb2xsYm94U2l6ZSgpJiYiYWJzb2x1dGUiPT09aS5wb3NpdGlvbixhPShvfHxuKSYmImJvcmRlci1ib3giPT09Uy5jc3MoZSwiYm94U2l6aW5nIiwhMSxpKSxzPW4/UWUoZSx1LG4sYSxpKTowO3JldHVybiBhJiZvJiYocy09TWF0aC5jZWlsKGVbIm9mZnNldCIrdVswXS50b1VwcGVyQ2FzZSgpK3Uuc2xpY2UoMSldLXBhcnNlRmxvYXQoaVt1XSktUWUoZSx1LCJib3JkZXIiLCExLGkpLS41KSkscyYmKHI9dGUuZXhlYyh0KSkmJiJweCIhPT0oclszXXx8InB4IikmJihlLnN0eWxlW3VdPXQsdD1TLmNzcyhlLHUpKSxZZSgwLHQscyl9fX0pLFMuY3NzSG9va3MubWFyZ2luTGVmdD1GZSh5LnJlbGlhYmxlTWFyZ2luTGVmdCxmdW5jdGlvbihlLHQpe2lmKHQpcmV0dXJuKHBhcnNlRmxvYXQoV2UoZSwibWFyZ2luTGVmdCIpKXx8ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0LU1lKGUse21hcmdpbkxlZnQ6MH0sZnVuY3Rpb24oKXtyZXR1cm4gZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0fSkpKyJweCJ9KSxTLmVhY2goe21hcmdpbjoiIixwYWRkaW5nOiIiLGJvcmRlcjoiV2lkdGgifSxmdW5jdGlvbihpLG8pe1MuY3NzSG9va3NbaStvXT17ZXhwYW5kOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wLG49e30scj0ic3RyaW5nIj09dHlwZW9mIGU/ZS5zcGxpdCgiICIpOltlXTt0PDQ7dCsrKW5baStuZVt0XStvXT1yW3RdfHxyW3QtMl18fHJbMF07cmV0dXJuIG59fSwibWFyZ2luIiE9PWkmJihTLmNzc0hvb2tzW2krb10uc2V0PVllKX0pLFMuZm4uZXh0ZW5kKHtjc3M6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gJCh0aGlzLGZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89e30sYT0wO2lmKEFycmF5LmlzQXJyYXkodCkpe2ZvcihyPVJlKGUpLGk9dC5sZW5ndGg7YTxpO2ErKylvW3RbYV1dPVMuY3NzKGUsdFthXSwhMSxyKTtyZXR1cm4gb31yZXR1cm4gdm9pZCAwIT09bj9TLnN0eWxlKGUsdCxuKTpTLmNzcyhlLHQpfSxlLHQsMTxhcmd1bWVudHMubGVuZ3RoKX19KSwoKFMuVHdlZW49S2UpLnByb3RvdHlwZT17Y29uc3RydWN0b3I6S2UsaW5pdDpmdW5jdGlvbihlLHQsbixyLGksbyl7dGhpcy5lbGVtPWUsdGhpcy5wcm9wPW4sdGhpcy5lYXNpbmc9aXx8Uy5lYXNpbmcuX2RlZmF1bHQsdGhpcy5vcHRpb25zPXQsdGhpcy5zdGFydD10aGlzLm5vdz10aGlzLmN1cigpLHRoaXMuZW5kPXIsdGhpcy51bml0PW98fChTLmNzc051bWJlcltuXT8iIjoicHgiKX0sY3VyOmZ1bmN0aW9uKCl7dmFyIGU9S2UucHJvcEhvb2tzW3RoaXMucHJvcF07cmV0dXJuIGUmJmUuZ2V0P2UuZ2V0KHRoaXMpOktlLnByb3BIb29rcy5fZGVmYXVsdC5nZXQodGhpcyl9LHJ1bjpmdW5jdGlvbihlKXt2YXIgdCxuPUtlLnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiB0aGlzLm9wdGlvbnMuZHVyYXRpb24/dGhpcy5wb3M9dD1TLmVhc2luZ1t0aGlzLmVhc2luZ10oZSx0aGlzLm9wdGlvbnMuZHVyYXRpb24qZSwwLDEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKTp0aGlzLnBvcz10PWUsdGhpcy5ub3c9KHRoaXMuZW5kLXRoaXMuc3RhcnQpKnQrdGhpcy5zdGFydCx0aGlzLm9wdGlvbnMuc3RlcCYmdGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhpcyksbiYmbi5zZXQ/bi5zZXQodGhpcyk6S2UucHJvcEhvb2tzLl9kZWZhdWx0LnNldCh0aGlzKSx0aGlzfX0pLmluaXQucHJvdG90eXBlPUtlLnByb3RvdHlwZSwoS2UucHJvcEhvb2tzPXtfZGVmYXVsdDp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiAxIT09ZS5lbGVtLm5vZGVUeXBlfHxudWxsIT1lLmVsZW1bZS5wcm9wXSYmbnVsbD09ZS5lbGVtLnN0eWxlW2UucHJvcF0/ZS5lbGVtW2UucHJvcF06KHQ9Uy5jc3MoZS5lbGVtLGUucHJvcCwiIikpJiYiYXV0byIhPT10P3Q6MH0sc2V0OmZ1bmN0aW9uKGUpe1MuZnguc3RlcFtlLnByb3BdP1MuZnguc3RlcFtlLnByb3BdKGUpOjEhPT1lLmVsZW0ubm9kZVR5cGV8fCFTLmNzc0hvb2tzW2UucHJvcF0mJm51bGw9PWUuZWxlbS5zdHlsZVt6ZShlLnByb3ApXT9lLmVsZW1bZS5wcm9wXT1lLm5vdzpTLnN0eWxlKGUuZWxlbSxlLnByb3AsZS5ub3crZS51bml0KX19fSkuc2Nyb2xsVG9wPUtlLnByb3BIb29rcy5zY3JvbGxMZWZ0PXtzZXQ6ZnVuY3Rpb24oZSl7ZS5lbGVtLm5vZGVUeXBlJiZlLmVsZW0ucGFyZW50Tm9kZSYmKGUuZWxlbVtlLnByb3BdPWUubm93KX19LFMuZWFzaW5nPXtsaW5lYXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LHN3aW5nOmZ1bmN0aW9uKGUpe3JldHVybi41LU1hdGguY29zKGUqTWF0aC5QSSkvMn0sX2RlZmF1bHQ6InN3aW5nIn0sUy5meD1LZS5wcm90b3R5cGUuaW5pdCxTLmZ4LnN0ZXA9e307dmFyIFplLGV0LHR0LG50LHJ0PS9eKD86dG9nZ2xlfHNob3d8aGlkZSkkLyxpdD0vcXVldWVIb29rcyQvO2Z1bmN0aW9uIG90KCl7ZXQmJighMT09PUUuaGlkZGVuJiZDLnJlcXVlc3RBbmltYXRpb25GcmFtZT9DLnJlcXVlc3RBbmltYXRpb25GcmFtZShvdCk6Qy5zZXRUaW1lb3V0KG90LFMuZnguaW50ZXJ2YWwpLFMuZngudGljaygpKX1mdW5jdGlvbiBhdCgpe3JldHVybiBDLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtaZT12b2lkIDB9KSxaZT1EYXRlLm5vdygpfWZ1bmN0aW9uIHN0KGUsdCl7dmFyIG4scj0wLGk9e2hlaWdodDplfTtmb3IodD10PzE6MDtyPDQ7cis9Mi10KWlbIm1hcmdpbiIrKG49bmVbcl0pXT1pWyJwYWRkaW5nIituXT1lO3JldHVybiB0JiYoaS5vcGFjaXR5PWkud2lkdGg9ZSksaX1mdW5jdGlvbiB1dChlLHQsbil7Zm9yKHZhciByLGk9KGx0LnR3ZWVuZXJzW3RdfHxbXSkuY29uY2F0KGx0LnR3ZWVuZXJzWyIqIl0pLG89MCxhPWkubGVuZ3RoO288YTtvKyspaWYocj1pW29dLmNhbGwobix0LGUpKXJldHVybiByfWZ1bmN0aW9uIGx0KG8sZSx0KXt2YXIgbixhLHI9MCxpPWx0LnByZWZpbHRlcnMubGVuZ3RoLHM9Uy5EZWZlcnJlZCgpLmFsd2F5cyhmdW5jdGlvbigpe2RlbGV0ZSB1LmVsZW19KSx1PWZ1bmN0aW9uKCl7aWYoYSlyZXR1cm4hMTtmb3IodmFyIGU9WmV8fGF0KCksdD1NYXRoLm1heCgwLGwuc3RhcnRUaW1lK2wuZHVyYXRpb24tZSksbj0xLSh0L2wuZHVyYXRpb258fDApLHI9MCxpPWwudHdlZW5zLmxlbmd0aDtyPGk7cisrKWwudHdlZW5zW3JdLnJ1bihuKTtyZXR1cm4gcy5ub3RpZnlXaXRoKG8sW2wsbix0XSksbjwxJiZpP3Q6KGl8fHMubm90aWZ5V2l0aChvLFtsLDEsMF0pLHMucmVzb2x2ZVdpdGgobyxbbF0pLCExKX0sbD1zLnByb21pc2Uoe2VsZW06byxwcm9wczpTLmV4dGVuZCh7fSxlKSxvcHRzOlMuZXh0ZW5kKCEwLHtzcGVjaWFsRWFzaW5nOnt9LGVhc2luZzpTLmVhc2luZy5fZGVmYXVsdH0sdCksb3JpZ2luYWxQcm9wZXJ0aWVzOmUsb3JpZ2luYWxPcHRpb25zOnQsc3RhcnRUaW1lOlplfHxhdCgpLGR1cmF0aW9uOnQuZHVyYXRpb24sdHdlZW5zOltdLGNyZWF0ZVR3ZWVuOmZ1bmN0aW9uKGUsdCl7dmFyIG49Uy5Ud2VlbihvLGwub3B0cyxlLHQsbC5vcHRzLnNwZWNpYWxFYXNpbmdbZV18fGwub3B0cy5lYXNpbmcpO3JldHVybiBsLnR3ZWVucy5wdXNoKG4pLG59LHN0b3A6ZnVuY3Rpb24oZSl7dmFyIHQ9MCxuPWU/bC50d2VlbnMubGVuZ3RoOjA7aWYoYSlyZXR1cm4gdGhpcztmb3IoYT0hMDt0PG47dCsrKWwudHdlZW5zW3RdLnJ1bigxKTtyZXR1cm4gZT8ocy5ub3RpZnlXaXRoKG8sW2wsMSwwXSkscy5yZXNvbHZlV2l0aChvLFtsLGVdKSk6cy5yZWplY3RXaXRoKG8sW2wsZV0pLHRoaXN9fSksYz1sLnByb3BzO2ZvcighZnVuY3Rpb24oZSx0KXt2YXIgbixyLGksbyxhO2ZvcihuIGluIGUpaWYoaT10W3I9WChuKV0sbz1lW25dLEFycmF5LmlzQXJyYXkobykmJihpPW9bMV0sbz1lW25dPW9bMF0pLG4hPT1yJiYoZVtyXT1vLGRlbGV0ZSBlW25dKSwoYT1TLmNzc0hvb2tzW3JdKSYmImV4cGFuZCJpbiBhKWZvcihuIGluIG89YS5leHBhbmQobyksZGVsZXRlIGVbcl0sbyluIGluIGV8fChlW25dPW9bbl0sdFtuXT1pKTtlbHNlIHRbcl09aX0oYyxsLm9wdHMuc3BlY2lhbEVhc2luZyk7cjxpO3IrKylpZihuPWx0LnByZWZpbHRlcnNbcl0uY2FsbChsLG8sYyxsLm9wdHMpKXJldHVybiBtKG4uc3RvcCkmJihTLl9xdWV1ZUhvb2tzKGwuZWxlbSxsLm9wdHMucXVldWUpLnN0b3A9bi5zdG9wLmJpbmQobikpLG47cmV0dXJuIFMubWFwKGMsdXQsbCksbShsLm9wdHMuc3RhcnQpJiZsLm9wdHMuc3RhcnQuY2FsbChvLGwpLGwucHJvZ3Jlc3MobC5vcHRzLnByb2dyZXNzKS5kb25lKGwub3B0cy5kb25lLGwub3B0cy5jb21wbGV0ZSkuZmFpbChsLm9wdHMuZmFpbCkuYWx3YXlzKGwub3B0cy5hbHdheXMpLFMuZngudGltZXIoUy5leHRlbmQodSx7ZWxlbTpvLGFuaW06bCxxdWV1ZTpsLm9wdHMucXVldWV9KSksbH1TLkFuaW1hdGlvbj1TLmV4dGVuZChsdCx7dHdlZW5lcnM6eyIqIjpbZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLmNyZWF0ZVR3ZWVuKGUsdCk7cmV0dXJuIHNlKG4uZWxlbSxlLHRlLmV4ZWModCksbiksbn1dfSx0d2VlbmVyOmZ1bmN0aW9uKGUsdCl7bShlKT8odD1lLGU9WyIqIl0pOmU9ZS5tYXRjaChQKTtmb3IodmFyIG4scj0wLGk9ZS5sZW5ndGg7cjxpO3IrKyluPWVbcl0sbHQudHdlZW5lcnNbbl09bHQudHdlZW5lcnNbbl18fFtdLGx0LnR3ZWVuZXJzW25dLnVuc2hpZnQodCl9LHByZWZpbHRlcnM6W2Z1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzLHUsbCxjLGY9IndpZHRoImluIHR8fCJoZWlnaHQiaW4gdCxwPXRoaXMsZD17fSxoPWUuc3R5bGUsZz1lLm5vZGVUeXBlJiZhZShlKSx2PVkuZ2V0KGUsImZ4c2hvdyIpO2ZvcihyIGluIG4ucXVldWV8fChudWxsPT0oYT1TLl9xdWV1ZUhvb2tzKGUsImZ4IikpLnVucXVldWVkJiYoYS51bnF1ZXVlZD0wLHM9YS5lbXB0eS5maXJlLGEuZW1wdHkuZmlyZT1mdW5jdGlvbigpe2EudW5xdWV1ZWR8fHMoKX0pLGEudW5xdWV1ZWQrKyxwLmFsd2F5cyhmdW5jdGlvbigpe3AuYWx3YXlzKGZ1bmN0aW9uKCl7YS51bnF1ZXVlZC0tLFMucXVldWUoZSwiZngiKS5sZW5ndGh8fGEuZW1wdHkuZmlyZSgpfSl9KSksdClpZihpPXRbcl0scnQudGVzdChpKSl7aWYoZGVsZXRlIHRbcl0sbz1vfHwidG9nZ2xlIj09PWksaT09PShnPyJoaWRlIjoic2hvdyIpKXtpZigic2hvdyIhPT1pfHwhdnx8dm9pZCAwPT09dltyXSljb250aW51ZTtnPSEwfWRbcl09diYmdltyXXx8Uy5zdHlsZShlLHIpfWlmKCh1PSFTLmlzRW1wdHlPYmplY3QodCkpfHwhUy5pc0VtcHR5T2JqZWN0KGQpKWZvcihyIGluIGYmJjE9PT1lLm5vZGVUeXBlJiYobi5vdmVyZmxvdz1baC5vdmVyZmxvdyxoLm92ZXJmbG93WCxoLm92ZXJmbG93WV0sbnVsbD09KGw9diYmdi5kaXNwbGF5KSYmKGw9WS5nZXQoZSwiZGlzcGxheSIpKSwibm9uZSI9PT0oYz1TLmNzcyhlLCJkaXNwbGF5IikpJiYobD9jPWw6KGxlKFtlXSwhMCksbD1lLnN0eWxlLmRpc3BsYXl8fGwsYz1TLmNzcyhlLCJkaXNwbGF5IiksbGUoW2VdKSkpLCgiaW5saW5lIj09PWN8fCJpbmxpbmUtYmxvY2siPT09YyYmbnVsbCE9bCkmJiJub25lIj09PVMuY3NzKGUsImZsb2F0IikmJih1fHwocC5kb25lKGZ1bmN0aW9uKCl7aC5kaXNwbGF5PWx9KSxudWxsPT1sJiYoYz1oLmRpc3BsYXksbD0ibm9uZSI9PT1jPyIiOmMpKSxoLmRpc3BsYXk9ImlubGluZS1ibG9jayIpKSxuLm92ZXJmbG93JiYoaC5vdmVyZmxvdz0iaGlkZGVuIixwLmFsd2F5cyhmdW5jdGlvbigpe2gub3ZlcmZsb3c9bi5vdmVyZmxvd1swXSxoLm92ZXJmbG93WD1uLm92ZXJmbG93WzFdLGgub3ZlcmZsb3dZPW4ub3ZlcmZsb3dbMl19KSksdT0hMSxkKXV8fCh2PyJoaWRkZW4iaW4gdiYmKGc9di5oaWRkZW4pOnY9WS5hY2Nlc3MoZSwiZnhzaG93Iix7ZGlzcGxheTpsfSksbyYmKHYuaGlkZGVuPSFnKSxnJiZsZShbZV0sITApLHAuZG9uZShmdW5jdGlvbigpe2ZvcihyIGluIGd8fGxlKFtlXSksWS5yZW1vdmUoZSwiZnhzaG93IiksZClTLnN0eWxlKGUscixkW3JdKX0pKSx1PXV0KGc/dltyXTowLHIscCksciBpbiB2fHwodltyXT11LnN0YXJ0LGcmJih1LmVuZD11LnN0YXJ0LHUuc3RhcnQ9MCkpfV0scHJlZmlsdGVyOmZ1bmN0aW9uKGUsdCl7dD9sdC5wcmVmaWx0ZXJzLnVuc2hpZnQoZSk6bHQucHJlZmlsdGVycy5wdXNoKGUpfX0pLFMuc3BlZWQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWUmJiJvYmplY3QiPT10eXBlb2YgZT9TLmV4dGVuZCh7fSxlKTp7Y29tcGxldGU6bnx8IW4mJnR8fG0oZSkmJmUsZHVyYXRpb246ZSxlYXNpbmc6biYmdHx8dCYmIW0odCkmJnR9O3JldHVybiBTLmZ4Lm9mZj9yLmR1cmF0aW9uPTA6Im51bWJlciIhPXR5cGVvZiByLmR1cmF0aW9uJiYoci5kdXJhdGlvbiBpbiBTLmZ4LnNwZWVkcz9yLmR1cmF0aW9uPVMuZnguc3BlZWRzW3IuZHVyYXRpb25dOnIuZHVyYXRpb249Uy5meC5zcGVlZHMuX2RlZmF1bHQpLG51bGwhPXIucXVldWUmJiEwIT09ci5xdWV1ZXx8KHIucXVldWU9ImZ4Iiksci5vbGQ9ci5jb21wbGV0ZSxyLmNvbXBsZXRlPWZ1bmN0aW9uKCl7bShyLm9sZCkmJnIub2xkLmNhbGwodGhpcyksci5xdWV1ZSYmUy5kZXF1ZXVlKHRoaXMsci5xdWV1ZSl9LHJ9LFMuZm4uZXh0ZW5kKHtmYWRlVG86ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIHRoaXMuZmlsdGVyKGFlKS5jc3MoIm9wYWNpdHkiLDApLnNob3coKS5lbmQoKS5hbmltYXRlKHtvcGFjaXR5OnR9LGUsbixyKX0sYW5pbWF0ZTpmdW5jdGlvbih0LGUsbixyKXt2YXIgaT1TLmlzRW1wdHlPYmplY3QodCksbz1TLnNwZWVkKGUsbixyKSxhPWZ1bmN0aW9uKCl7dmFyIGU9bHQodGhpcyxTLmV4dGVuZCh7fSx0KSxvKTsoaXx8WS5nZXQodGhpcywiZmluaXNoIikpJiZlLnN0b3AoITApfTtyZXR1cm4gYS5maW5pc2g9YSxpfHwhMT09PW8ucXVldWU/dGhpcy5lYWNoKGEpOnRoaXMucXVldWUoby5xdWV1ZSxhKX0sc3RvcDpmdW5jdGlvbihpLGUsbyl7dmFyIGE9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zdG9wO2RlbGV0ZSBlLnN0b3AsdChvKX07cmV0dXJuInN0cmluZyIhPXR5cGVvZiBpJiYobz1lLGU9aSxpPXZvaWQgMCksZSYmdGhpcy5xdWV1ZShpfHwiZngiLFtdKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT0hMCx0PW51bGwhPWkmJmkrInF1ZXVlSG9va3MiLG49Uy50aW1lcnMscj1ZLmdldCh0aGlzKTtpZih0KXJbdF0mJnJbdF0uc3RvcCYmYShyW3RdKTtlbHNlIGZvcih0IGluIHIpclt0XSYmclt0XS5zdG9wJiZpdC50ZXN0KHQpJiZhKHJbdF0pO2Zvcih0PW4ubGVuZ3RoO3QtLTspblt0XS5lbGVtIT09dGhpc3x8bnVsbCE9aSYmblt0XS5xdWV1ZSE9PWl8fChuW3RdLmFuaW0uc3RvcChvKSxlPSExLG4uc3BsaWNlKHQsMSkpOyFlJiZvfHxTLmRlcXVldWUodGhpcyxpKX0pfSxmaW5pc2g6ZnVuY3Rpb24oYSl7cmV0dXJuITEhPT1hJiYoYT1hfHwiZngiKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZSx0PVkuZ2V0KHRoaXMpLG49dFthKyJxdWV1ZSJdLHI9dFthKyJxdWV1ZUhvb2tzIl0saT1TLnRpbWVycyxvPW4/bi5sZW5ndGg6MDtmb3IodC5maW5pc2g9ITAsUy5xdWV1ZSh0aGlzLGEsW10pLHImJnIuc3RvcCYmci5zdG9wLmNhbGwodGhpcywhMCksZT1pLmxlbmd0aDtlLS07KWlbZV0uZWxlbT09PXRoaXMmJmlbZV0ucXVldWU9PT1hJiYoaVtlXS5hbmltLnN0b3AoITApLGkuc3BsaWNlKGUsMSkpO2ZvcihlPTA7ZTxvO2UrKyluW2VdJiZuW2VdLmZpbmlzaCYmbltlXS5maW5pc2guY2FsbCh0aGlzKTtkZWxldGUgdC5maW5pc2h9KX19KSxTLmVhY2goWyJ0b2dnbGUiLCJzaG93IiwiaGlkZSJdLGZ1bmN0aW9uKGUscil7dmFyIGk9Uy5mbltyXTtTLmZuW3JdPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbnVsbD09ZXx8ImJvb2xlYW4iPT10eXBlb2YgZT9pLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0aGlzLmFuaW1hdGUoc3QociwhMCksZSx0LG4pfX0pLFMuZWFjaCh7c2xpZGVEb3duOnN0KCJzaG93Iiksc2xpZGVVcDpzdCgiaGlkZSIpLHNsaWRlVG9nZ2xlOnN0KCJ0b2dnbGUiKSxmYWRlSW46e29wYWNpdHk6InNob3cifSxmYWRlT3V0OntvcGFjaXR5OiJoaWRlIn0sZmFkZVRvZ2dsZTp7b3BhY2l0eToidG9nZ2xlIn19LGZ1bmN0aW9uKGUscil7Uy5mbltlXT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuYW5pbWF0ZShyLGUsdCxuKX19KSxTLnRpbWVycz1bXSxTLmZ4LnRpY2s9ZnVuY3Rpb24oKXt2YXIgZSx0PTAsbj1TLnRpbWVycztmb3IoWmU9RGF0ZS5ub3coKTt0PG4ubGVuZ3RoO3QrKykoZT1uW3RdKSgpfHxuW3RdIT09ZXx8bi5zcGxpY2UodC0tLDEpO24ubGVuZ3RofHxTLmZ4LnN0b3AoKSxaZT12b2lkIDB9LFMuZngudGltZXI9ZnVuY3Rpb24oZSl7Uy50aW1lcnMucHVzaChlKSxTLmZ4LnN0YXJ0KCl9LFMuZnguaW50ZXJ2YWw9MTMsUy5meC5zdGFydD1mdW5jdGlvbigpe2V0fHwoZXQ9ITAsb3QoKSl9LFMuZnguc3RvcD1mdW5jdGlvbigpe2V0PW51bGx9LFMuZnguc3BlZWRzPXtzbG93OjYwMCxmYXN0OjIwMCxfZGVmYXVsdDo0MDB9LFMuZm4uZGVsYXk9ZnVuY3Rpb24ocixlKXtyZXR1cm4gcj1TLmZ4JiZTLmZ4LnNwZWVkc1tyXXx8cixlPWV8fCJmeCIsdGhpcy5xdWV1ZShlLGZ1bmN0aW9uKGUsdCl7dmFyIG49Qy5zZXRUaW1lb3V0KGUscik7dC5zdG9wPWZ1bmN0aW9uKCl7Qy5jbGVhclRpbWVvdXQobil9fSl9LHR0PUUuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxudD1FLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLmFwcGVuZENoaWxkKEUuY3JlYXRlRWxlbWVudCgib3B0aW9uIikpLHR0LnR5cGU9ImNoZWNrYm94Iix5LmNoZWNrT249IiIhPT10dC52YWx1ZSx5Lm9wdFNlbGVjdGVkPW50LnNlbGVjdGVkLCh0dD1FLmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLnZhbHVlPSJ0Iix0dC50eXBlPSJyYWRpbyIseS5yYWRpb1ZhbHVlPSJ0Ij09PXR0LnZhbHVlO3ZhciBjdCxmdD1TLmV4cHIuYXR0ckhhbmRsZTtTLmZuLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihlLHQpe3JldHVybiAkKHRoaXMsUy5hdHRyLGUsdCwxPGFyZ3VtZW50cy5sZW5ndGgpfSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtTLnJlbW92ZUF0dHIodGhpcyxlKX0pfX0pLFMuZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89ZS5ub2RlVHlwZTtpZigzIT09byYmOCE9PW8mJjIhPT1vKXJldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgZS5nZXRBdHRyaWJ1dGU/Uy5wcm9wKGUsdCxuKTooMT09PW8mJlMuaXNYTUxEb2MoZSl8fChpPVMuYXR0ckhvb2tzW3QudG9Mb3dlckNhc2UoKV18fChTLmV4cHIubWF0Y2guYm9vbC50ZXN0KHQpP2N0OnZvaWQgMCkpLHZvaWQgMCE9PW4/bnVsbD09PW4/dm9pZCBTLnJlbW92ZUF0dHIoZSx0KTppJiYic2V0ImluIGkmJnZvaWQgMCE9PShyPWkuc2V0KGUsbix0KSk/cjooZS5zZXRBdHRyaWJ1dGUodCxuKyIiKSxuKTppJiYiZ2V0ImluIGkmJm51bGwhPT0ocj1pLmdldChlLHQpKT9yOm51bGw9PShyPVMuZmluZC5hdHRyKGUsdCkpP3ZvaWQgMDpyKX0sYXR0ckhvb2tzOnt0eXBlOntzZXQ6ZnVuY3Rpb24oZSx0KXtpZigheS5yYWRpb1ZhbHVlJiYicmFkaW8iPT09dCYmQShlLCJpbnB1dCIpKXt2YXIgbj1lLnZhbHVlO3JldHVybiBlLnNldEF0dHJpYnV0ZSgidHlwZSIsdCksbiYmKGUudmFsdWU9biksdH19fX0scmVtb3ZlQXR0cjpmdW5jdGlvbihlLHQpe3ZhciBuLHI9MCxpPXQmJnQubWF0Y2goUCk7aWYoaSYmMT09PWUubm9kZVR5cGUpd2hpbGUobj1pW3IrK10pZS5yZW1vdmVBdHRyaWJ1dGUobil9fSksY3Q9e3NldDpmdW5jdGlvbihlLHQsbil7cmV0dXJuITE9PT10P1MucmVtb3ZlQXR0cihlLG4pOmUuc2V0QXR0cmlidXRlKG4sbiksbn19LFMuZWFjaChTLmV4cHIubWF0Y2guYm9vbC5zb3VyY2UubWF0Y2goL1x3Ky9nKSxmdW5jdGlvbihlLHQpe3ZhciBhPWZ0W3RdfHxTLmZpbmQuYXR0cjtmdFt0XT1mdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPXQudG9Mb3dlckNhc2UoKTtyZXR1cm4gbnx8KGk9ZnRbb10sZnRbb109cixyPW51bGwhPWEoZSx0LG4pP286bnVsbCxmdFtvXT1pKSxyfX0pO3ZhciBwdD0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLGR0PS9eKD86YXxhcmVhKSQvaTtmdW5jdGlvbiBodChlKXtyZXR1cm4oZS5tYXRjaChQKXx8W10pLmpvaW4oIiAiKX1mdW5jdGlvbiBndChlKXtyZXR1cm4gZS5nZXRBdHRyaWJ1dGUmJmUuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIn1mdW5jdGlvbiB2dChlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lOiJzdHJpbmciPT10eXBlb2YgZSYmZS5tYXRjaChQKXx8W119Uy5mbi5leHRlbmQoe3Byb3A6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gJCh0aGlzLFMucHJvcCxlLHQsMTxhcmd1bWVudHMubGVuZ3RoKX0scmVtb3ZlUHJvcDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbUy5wcm9wRml4W2VdfHxlXX0pfX0pLFMuZXh0ZW5kKHtwcm9wOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89ZS5ub2RlVHlwZTtpZigzIT09byYmOCE9PW8mJjIhPT1vKXJldHVybiAxPT09byYmUy5pc1hNTERvYyhlKXx8KHQ9Uy5wcm9wRml4W3RdfHx0LGk9Uy5wcm9wSG9va3NbdF0pLHZvaWQgMCE9PW4/aSYmInNldCJpbiBpJiZ2b2lkIDAhPT0ocj1pLnNldChlLG4sdCkpP3I6ZVt0XT1uOmkmJiJnZXQiaW4gaSYmbnVsbCE9PShyPWkuZ2V0KGUsdCkpP3I6ZVt0XX0scHJvcEhvb2tzOnt0YWJJbmRleDp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0PVMuZmluZC5hdHRyKGUsInRhYmluZGV4Iik7cmV0dXJuIHQ/cGFyc2VJbnQodCwxMCk6cHQudGVzdChlLm5vZGVOYW1lKXx8ZHQudGVzdChlLm5vZGVOYW1lKSYmZS5ocmVmPzA6LTF9fX0scHJvcEZpeDp7ImZvciI6Imh0bWxGb3IiLCJjbGFzcyI6ImNsYXNzTmFtZSJ9fSkseS5vcHRTZWxlY3RlZHx8KFMucHJvcEhvb2tzLnNlbGVjdGVkPXtnZXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wYXJlbnROb2RlO3JldHVybiB0JiZ0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4LG51bGx9LHNldDpmdW5jdGlvbihlKXt2YXIgdD1lLnBhcmVudE5vZGU7dCYmKHQuc2VsZWN0ZWRJbmRleCx0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4KX19KSxTLmVhY2goWyJ0YWJJbmRleCIsInJlYWRPbmx5IiwibWF4TGVuZ3RoIiwiY2VsbFNwYWNpbmciLCJjZWxsUGFkZGluZyIsInJvd1NwYW4iLCJjb2xTcGFuIiwidXNlTWFwIiwiZnJhbWVCb3JkZXIiLCJjb250ZW50RWRpdGFibGUiXSxmdW5jdGlvbigpe1MucHJvcEZpeFt0aGlzLnRvTG93ZXJDYXNlKCldPXRoaXN9KSxTLmZuLmV4dGVuZCh7YWRkQ2xhc3M6ZnVuY3Rpb24odCl7dmFyIGUsbixyLGksbyxhLHMsdT0wO2lmKG0odCkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihlKXtTKHRoaXMpLmFkZENsYXNzKHQuY2FsbCh0aGlzLGUsZ3QodGhpcykpKX0pO2lmKChlPXZ0KHQpKS5sZW5ndGgpd2hpbGUobj10aGlzW3UrK10paWYoaT1ndChuKSxyPTE9PT1uLm5vZGVUeXBlJiYiICIraHQoaSkrIiAiKXthPTA7d2hpbGUobz1lW2ErK10pci5pbmRleE9mKCIgIitvKyIgIik8MCYmKHIrPW8rIiAiKTtpIT09KHM9aHQocikpJiZuLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHMpfXJldHVybiB0aGlzfSxyZW1vdmVDbGFzczpmdW5jdGlvbih0KXt2YXIgZSxuLHIsaSxvLGEscyx1PTA7aWYobSh0KSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGUpe1ModGhpcykucmVtb3ZlQ2xhc3ModC5jYWxsKHRoaXMsZSxndCh0aGlzKSkpfSk7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMuYXR0cigiY2xhc3MiLCIiKTtpZigoZT12dCh0KSkubGVuZ3RoKXdoaWxlKG49dGhpc1t1KytdKWlmKGk9Z3Qobikscj0xPT09bi5ub2RlVHlwZSYmIiAiK2h0KGkpKyIgIil7YT0wO3doaWxlKG89ZVthKytdKXdoaWxlKC0xPHIuaW5kZXhPZigiICIrbysiICIpKXI9ci5yZXBsYWNlKCIgIitvKyIgIiwiICIpO2khPT0ocz1odChyKSkmJm4uc2V0QXR0cmlidXRlKCJjbGFzcyIscyl9cmV0dXJuIHRoaXN9LHRvZ2dsZUNsYXNzOmZ1bmN0aW9uKGksdCl7dmFyIG89dHlwZW9mIGksYT0ic3RyaW5nIj09PW98fEFycmF5LmlzQXJyYXkoaSk7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgdCYmYT90P3RoaXMuYWRkQ2xhc3MoaSk6dGhpcy5yZW1vdmVDbGFzcyhpKTptKGkpP3RoaXMuZWFjaChmdW5jdGlvbihlKXtTKHRoaXMpLnRvZ2dsZUNsYXNzKGkuY2FsbCh0aGlzLGUsZ3QodGhpcyksdCksdCl9KTp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZSx0LG4scjtpZihhKXt0PTAsbj1TKHRoaXMpLHI9dnQoaSk7d2hpbGUoZT1yW3QrK10pbi5oYXNDbGFzcyhlKT9uLnJlbW92ZUNsYXNzKGUpOm4uYWRkQ2xhc3MoZSl9ZWxzZSB2b2lkIDAhPT1pJiYiYm9vbGVhbiIhPT1vfHwoKGU9Z3QodGhpcykpJiZZLnNldCh0aGlzLCJfX2NsYXNzTmFtZV9fIixlKSx0aGlzLnNldEF0dHJpYnV0ZSYmdGhpcy5zZXRBdHRyaWJ1dGUoImNsYXNzIixlfHwhMT09PWk/IiI6WS5nZXQodGhpcywiX19jbGFzc05hbWVfXyIpfHwiIikpfSl9LGhhc0NsYXNzOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj0wO3Q9IiAiK2UrIiAiO3doaWxlKG49dGhpc1tyKytdKWlmKDE9PT1uLm5vZGVUeXBlJiYtMTwoIiAiK2h0KGd0KG4pKSsiICIpLmluZGV4T2YodCkpcmV0dXJuITA7cmV0dXJuITF9fSk7dmFyIHl0PS9cci9nO1MuZm4uZXh0ZW5kKHt2YWw6ZnVuY3Rpb24obil7dmFyIHIsZSxpLHQ9dGhpc1swXTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1tKG4pLHRoaXMuZWFjaChmdW5jdGlvbihlKXt2YXIgdDsxPT09dGhpcy5ub2RlVHlwZSYmKG51bGw9PSh0PWk/bi5jYWxsKHRoaXMsZSxTKHRoaXMpLnZhbCgpKTpuKT90PSIiOiJudW1iZXIiPT10eXBlb2YgdD90Kz0iIjpBcnJheS5pc0FycmF5KHQpJiYodD1TLm1hcCh0LGZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lPyIiOmUrIiJ9KSksKHI9Uy52YWxIb29rc1t0aGlzLnR5cGVdfHxTLnZhbEhvb2tzW3RoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pJiYic2V0ImluIHImJnZvaWQgMCE9PXIuc2V0KHRoaXMsdCwidmFsdWUiKXx8KHRoaXMudmFsdWU9dCkpfSkpOnQ/KHI9Uy52YWxIb29rc1t0LnR5cGVdfHxTLnZhbEhvb2tzW3Qubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pJiYiZ2V0ImluIHImJnZvaWQgMCE9PShlPXIuZ2V0KHQsInZhbHVlIikpP2U6InN0cmluZyI9PXR5cGVvZihlPXQudmFsdWUpP2UucmVwbGFjZSh5dCwiIik6bnVsbD09ZT8iIjplOnZvaWQgMH19KSxTLmV4dGVuZCh7dmFsSG9va3M6e29wdGlvbjp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0PVMuZmluZC5hdHRyKGUsInZhbHVlIik7cmV0dXJuIG51bGwhPXQ/dDpodChTLnRleHQoZSkpfX0sc2VsZWN0OntnZXQ6ZnVuY3Rpb24oZSl7dmFyIHQsbixyLGk9ZS5vcHRpb25zLG89ZS5zZWxlY3RlZEluZGV4LGE9InNlbGVjdC1vbmUiPT09ZS50eXBlLHM9YT9udWxsOltdLHU9YT9vKzE6aS5sZW5ndGg7Zm9yKHI9bzwwP3U6YT9vOjA7cjx1O3IrKylpZigoKG49aVtyXSkuc2VsZWN0ZWR8fHI9PT1vKSYmIW4uZGlzYWJsZWQmJighbi5wYXJlbnROb2RlLmRpc2FibGVkfHwhQShuLnBhcmVudE5vZGUsIm9wdGdyb3VwIikpKXtpZih0PVMobikudmFsKCksYSlyZXR1cm4gdDtzLnB1c2godCl9cmV0dXJuIHN9LHNldDpmdW5jdGlvbihlLHQpe3ZhciBuLHIsaT1lLm9wdGlvbnMsbz1TLm1ha2VBcnJheSh0KSxhPWkubGVuZ3RoO3doaWxlKGEtLSkoKHI9aVthXSkuc2VsZWN0ZWQ9LTE8Uy5pbkFycmF5KFMudmFsSG9va3Mub3B0aW9uLmdldChyKSxvKSkmJihuPSEwKTtyZXR1cm4gbnx8KGUuc2VsZWN0ZWRJbmRleD0tMSksb319fX0pLFMuZWFjaChbInJhZGlvIiwiY2hlY2tib3giXSxmdW5jdGlvbigpe1MudmFsSG9va3NbdGhpc109e3NldDpmdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIGUuY2hlY2tlZD0tMTxTLmluQXJyYXkoUyhlKS52YWwoKSx0KX19LHkuY2hlY2tPbnx8KFMudmFsSG9va3NbdGhpc10uZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT09ZS5nZXRBdHRyaWJ1dGUoInZhbHVlIik/Im9uIjplLnZhbHVlfSl9KSx5LmZvY3VzaW49Im9uZm9jdXNpbiJpbiBDO3ZhciBtdD0vXig/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC8seHQ9ZnVuY3Rpb24oZSl7ZS5zdG9wUHJvcGFnYXRpb24oKX07Uy5leHRlbmQoUy5ldmVudCx7dHJpZ2dlcjpmdW5jdGlvbihlLHQsbixyKXt2YXIgaSxvLGEscyx1LGwsYyxmLHA9W258fEVdLGQ9di5jYWxsKGUsInR5cGUiKT9lLnR5cGU6ZSxoPXYuY2FsbChlLCJuYW1lc3BhY2UiKT9lLm5hbWVzcGFjZS5zcGxpdCgiLiIpOltdO2lmKG89Zj1hPW49bnx8RSwzIT09bi5ub2RlVHlwZSYmOCE9PW4ubm9kZVR5cGUmJiFtdC50ZXN0KGQrUy5ldmVudC50cmlnZ2VyZWQpJiYoLTE8ZC5pbmRleE9mKCIuIikmJihkPShoPWQuc3BsaXQoIi4iKSkuc2hpZnQoKSxoLnNvcnQoKSksdT1kLmluZGV4T2YoIjoiKTwwJiYib24iK2QsKGU9ZVtTLmV4cGFuZG9dP2U6bmV3IFMuRXZlbnQoZCwib2JqZWN0Ij09dHlwZW9mIGUmJmUpKS5pc1RyaWdnZXI9cj8yOjMsZS5uYW1lc3BhY2U9aC5qb2luKCIuIiksZS5ybmFtZXNwYWNlPWUubmFtZXNwYWNlP25ldyBSZWdFeHAoIihefFxcLikiK2guam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIik6bnVsbCxlLnJlc3VsdD12b2lkIDAsZS50YXJnZXR8fChlLnRhcmdldD1uKSx0PW51bGw9PXQ/W2VdOlMubWFrZUFycmF5KHQsW2VdKSxjPVMuZXZlbnQuc3BlY2lhbFtkXXx8e30scnx8IWMudHJpZ2dlcnx8ITEhPT1jLnRyaWdnZXIuYXBwbHkobix0KSkpe2lmKCFyJiYhYy5ub0J1YmJsZSYmIXgobikpe2ZvcihzPWMuZGVsZWdhdGVUeXBlfHxkLG10LnRlc3QocytkKXx8KG89by5wYXJlbnROb2RlKTtvO289by5wYXJlbnROb2RlKXAucHVzaChvKSxhPW87YT09PShuLm93bmVyRG9jdW1lbnR8fEUpJiZwLnB1c2goYS5kZWZhdWx0Vmlld3x8YS5wYXJlbnRXaW5kb3d8fEMpfWk9MDt3aGlsZSgobz1wW2krK10pJiYhZS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWY9byxlLnR5cGU9MTxpP3M6Yy5iaW5kVHlwZXx8ZCwobD0oWS5nZXQobywiZXZlbnRzIil8fE9iamVjdC5jcmVhdGUobnVsbCkpW2UudHlwZV0mJlkuZ2V0KG8sImhhbmRsZSIpKSYmbC5hcHBseShvLHQpLChsPXUmJm9bdV0pJiZsLmFwcGx5JiZWKG8pJiYoZS5yZXN1bHQ9bC5hcHBseShvLHQpLCExPT09ZS5yZXN1bHQmJmUucHJldmVudERlZmF1bHQoKSk7cmV0dXJuIGUudHlwZT1kLHJ8fGUuaXNEZWZhdWx0UHJldmVudGVkKCl8fGMuX2RlZmF1bHQmJiExIT09Yy5fZGVmYXVsdC5hcHBseShwLnBvcCgpLHQpfHwhVihuKXx8dSYmbShuW2RdKSYmIXgobikmJigoYT1uW3VdKSYmKG5bdV09bnVsbCksUy5ldmVudC50cmlnZ2VyZWQ9ZCxlLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkmJmYuYWRkRXZlbnRMaXN0ZW5lcihkLHh0KSxuW2RdKCksZS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpJiZmLnJlbW92ZUV2ZW50TGlzdGVuZXIoZCx4dCksUy5ldmVudC50cmlnZ2VyZWQ9dm9pZCAwLGEmJihuW3VdPWEpKSxlLnJlc3VsdH19LHNpbXVsYXRlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1TLmV4dGVuZChuZXcgUy5FdmVudCxuLHt0eXBlOmUsaXNTaW11bGF0ZWQ6ITB9KTtTLmV2ZW50LnRyaWdnZXIocixudWxsLHQpfX0pLFMuZm4uZXh0ZW5kKHt0cmlnZ2VyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe1MuZXZlbnQudHJpZ2dlcihlLHQsdGhpcyl9KX0sdHJpZ2dlckhhbmRsZXI6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzWzBdO2lmKG4pcmV0dXJuIFMuZXZlbnQudHJpZ2dlcihlLHQsbiwhMCl9fSkseS5mb2N1c2lufHxTLmVhY2goe2ZvY3VzOiJmb2N1c2luIixibHVyOiJmb2N1c291dCJ9LGZ1bmN0aW9uKG4scil7dmFyIGk9ZnVuY3Rpb24oZSl7Uy5ldmVudC5zaW11bGF0ZShyLGUudGFyZ2V0LFMuZXZlbnQuZml4KGUpKX07Uy5ldmVudC5zcGVjaWFsW3JdPXtzZXR1cDpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcy5kb2N1bWVudHx8dGhpcyx0PVkuYWNjZXNzKGUscik7dHx8ZS5hZGRFdmVudExpc3RlbmVyKG4saSwhMCksWS5hY2Nlc3MoZSxyLCh0fHwwKSsxKX0sdGVhcmRvd246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMuZG9jdW1lbnR8fHRoaXMsdD1ZLmFjY2VzcyhlLHIpLTE7dD9ZLmFjY2VzcyhlLHIsdCk6KGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihuLGksITApLFkucmVtb3ZlKGUscikpfX19KTt2YXIgYnQ9Qy5sb2NhdGlvbix3dD17Z3VpZDpEYXRlLm5vdygpfSxUdD0vXD8vO1MucGFyc2VYTUw9ZnVuY3Rpb24oZSl7dmFyIHQsbjtpZighZXx8InN0cmluZyIhPXR5cGVvZiBlKXJldHVybiBudWxsO3RyeXt0PShuZXcgQy5ET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZyhlLCJ0ZXh0L3htbCIpfWNhdGNoKGUpe31yZXR1cm4gbj10JiZ0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJzZXJlcnJvciIpWzBdLHQmJiFufHxTLmVycm9yKCJJbnZhbGlkIFhNTDogIisobj9TLm1hcChuLmNoaWxkTm9kZXMsZnVuY3Rpb24oZSl7cmV0dXJuIGUudGV4dENvbnRlbnR9KS5qb2luKCJcbiIpOmUpKSx0fTt2YXIgQ3Q9L1xbXF0kLyxFdD0vXHI/XG4vZyxTdD0vXig/OnN1Ym1pdHxidXR0b258aW1hZ2V8cmVzZXR8ZmlsZSkkL2ksa3Q9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8a2V5Z2VuKS9pO2Z1bmN0aW9uIEF0KG4sZSxyLGkpe3ZhciB0O2lmKEFycmF5LmlzQXJyYXkoZSkpUy5lYWNoKGUsZnVuY3Rpb24oZSx0KXtyfHxDdC50ZXN0KG4pP2kobix0KTpBdChuKyJbIisoIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT10P2U6IiIpKyJdIix0LHIsaSl9KTtlbHNlIGlmKHJ8fCJvYmplY3QiIT09dyhlKSlpKG4sZSk7ZWxzZSBmb3IodCBpbiBlKUF0KG4rIlsiK3QrIl0iLGVbdF0scixpKX1TLnBhcmFtPWZ1bmN0aW9uKGUsdCl7dmFyIG4scj1bXSxpPWZ1bmN0aW9uKGUsdCl7dmFyIG49bSh0KT90KCk6dDtyW3IubGVuZ3RoXT1lbmNvZGVVUklDb21wb25lbnQoZSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChudWxsPT1uPyIiOm4pfTtpZihudWxsPT1lKXJldHVybiIiO2lmKEFycmF5LmlzQXJyYXkoZSl8fGUuanF1ZXJ5JiYhUy5pc1BsYWluT2JqZWN0KGUpKVMuZWFjaChlLGZ1bmN0aW9uKCl7aSh0aGlzLm5hbWUsdGhpcy52YWx1ZSl9KTtlbHNlIGZvcihuIGluIGUpQXQobixlW25dLHQsaSk7cmV0dXJuIHIuam9pbigiJiIpfSxTLmZuLmV4dGVuZCh7c2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIFMucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgZT1TLnByb3AodGhpcywiZWxlbWVudHMiKTtyZXR1cm4gZT9TLm1ha2VBcnJheShlKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy50eXBlO3JldHVybiB0aGlzLm5hbWUmJiFTKHRoaXMpLmlzKCI6ZGlzYWJsZWQiKSYma3QudGVzdCh0aGlzLm5vZGVOYW1lKSYmIVN0LnRlc3QoZSkmJih0aGlzLmNoZWNrZWR8fCFwZS50ZXN0KGUpKX0pLm1hcChmdW5jdGlvbihlLHQpe3ZhciBuPVModGhpcykudmFsKCk7cmV0dXJuIG51bGw9PW4/bnVsbDpBcnJheS5pc0FycmF5KG4pP1MubWFwKG4sZnVuY3Rpb24oZSl7cmV0dXJue25hbWU6dC5uYW1lLHZhbHVlOmUucmVwbGFjZShFdCwiXHJcbiIpfX0pOntuYW1lOnQubmFtZSx2YWx1ZTpuLnJlcGxhY2UoRXQsIlxyXG4iKX19KS5nZXQoKX19KTt2YXIgTnQ9LyUyMC9nLGp0PS8jLiokLyxEdD0vKFs/Jl0pXz1bXiZdKi8scXQ9L14oLio/KTpbIFx0XSooW15cclxuXSopJC9nbSxMdD0vXig/OkdFVHxIRUFEKSQvLEh0PS9eXC9cLy8sT3Q9e30sUHQ9e30sUnQ9IiovIi5jb25jYXQoIioiKSxNdD1FLmNyZWF0ZUVsZW1lbnQoImEiKTtmdW5jdGlvbiBJdChvKXtyZXR1cm4gZnVuY3Rpb24oZSx0KXsic3RyaW5nIiE9dHlwZW9mIGUmJih0PWUsZT0iKiIpO3ZhciBuLHI9MCxpPWUudG9Mb3dlckNhc2UoKS5tYXRjaChQKXx8W107aWYobSh0KSl3aGlsZShuPWlbcisrXSkiKyI9PT1uWzBdPyhuPW4uc2xpY2UoMSl8fCIqIiwob1tuXT1vW25dfHxbXSkudW5zaGlmdCh0KSk6KG9bbl09b1tuXXx8W10pLnB1c2godCl9fWZ1bmN0aW9uIFd0KHQsaSxvLGEpe3ZhciBzPXt9LHU9dD09PVB0O2Z1bmN0aW9uIGwoZSl7dmFyIHI7cmV0dXJuIHNbZV09ITAsUy5lYWNoKHRbZV18fFtdLGZ1bmN0aW9uKGUsdCl7dmFyIG49dChpLG8sYSk7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBufHx1fHxzW25dP3U/IShyPW4pOnZvaWQgMDooaS5kYXRhVHlwZXMudW5zaGlmdChuKSxsKG4pLCExKX0pLHJ9cmV0dXJuIGwoaS5kYXRhVHlwZXNbMF0pfHwhc1siKiJdJiZsKCIqIil9ZnVuY3Rpb24gRnQoZSx0KXt2YXIgbixyLGk9Uy5hamF4U2V0dGluZ3MuZmxhdE9wdGlvbnN8fHt9O2ZvcihuIGluIHQpdm9pZCAwIT09dFtuXSYmKChpW25dP2U6cnx8KHI9e30pKVtuXT10W25dKTtyZXR1cm4gciYmUy5leHRlbmQoITAsZSxyKSxlfU10LmhyZWY9YnQuaHJlZixTLmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheFNldHRpbmdzOnt1cmw6YnQuaHJlZix0eXBlOiJHRVQiLGlzTG9jYWw6L14oPzphYm91dHxhcHB8YXBwLXN0b3JhZ2V8ListZXh0ZW5zaW9ufGZpbGV8cmVzfHdpZGdldCk6JC8udGVzdChidC5wcm90b2NvbCksZ2xvYmFsOiEwLHByb2Nlc3NEYXRhOiEwLGFzeW5jOiEwLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLTgiLGFjY2VwdHM6eyIqIjpSdCx0ZXh0OiJ0ZXh0L3BsYWluIixodG1sOiJ0ZXh0L2h0bWwiLHhtbDoiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsanNvbjoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0In0sY29udGVudHM6e3htbDovXGJ4bWxcYi8saHRtbDovXGJodG1sLyxqc29uOi9cYmpzb25cYi99LHJlc3BvbnNlRmllbGRzOnt4bWw6InJlc3BvbnNlWE1MIix0ZXh0OiJyZXNwb25zZVRleHQiLGpzb246InJlc3BvbnNlSlNPTiJ9LGNvbnZlcnRlcnM6eyIqIHRleHQiOlN0cmluZywidGV4dCBodG1sIjohMCwidGV4dCBqc29uIjpKU09OLnBhcnNlLCJ0ZXh0IHhtbCI6Uy5wYXJzZVhNTH0sZmxhdE9wdGlvbnM6e3VybDohMCxjb250ZXh0OiEwfX0sYWpheFNldHVwOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ/RnQoRnQoZSxTLmFqYXhTZXR0aW5ncyksdCk6RnQoUy5hamF4U2V0dGluZ3MsZSl9LGFqYXhQcmVmaWx0ZXI6SXQoT3QpLGFqYXhUcmFuc3BvcnQ6SXQoUHQpLGFqYXg6ZnVuY3Rpb24oZSx0KXsib2JqZWN0Ij09dHlwZW9mIGUmJih0PWUsZT12b2lkIDApLHQ9dHx8e307dmFyIGMsZixwLG4sZCxyLGgsZyxpLG8sdj1TLmFqYXhTZXR1cCh7fSx0KSx5PXYuY29udGV4dHx8dixtPXYuY29udGV4dCYmKHkubm9kZVR5cGV8fHkuanF1ZXJ5KT9TKHkpOlMuZXZlbnQseD1TLkRlZmVycmVkKCksYj1TLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSx3PXYuc3RhdHVzQ29kZXx8e30sYT17fSxzPXt9LHU9ImNhbmNlbGVkIixUPXtyZWFkeVN0YXRlOjAsZ2V0UmVzcG9uc2VIZWFkZXI6ZnVuY3Rpb24oZSl7dmFyIHQ7aWYoaCl7aWYoIW4pe249e307d2hpbGUodD1xdC5leGVjKHApKW5bdFsxXS50b0xvd2VyQ2FzZSgpKyIgIl09KG5bdFsxXS50b0xvd2VyQ2FzZSgpKyIgIl18fFtdKS5jb25jYXQodFsyXSl9dD1uW2UudG9Mb3dlckNhc2UoKSsiICJdfXJldHVybiBudWxsPT10P251bGw6dC5qb2luKCIsICIpfSxnZXRBbGxSZXNwb25zZUhlYWRlcnM6ZnVuY3Rpb24oKXtyZXR1cm4gaD9wOm51bGx9LHNldFJlcXVlc3RIZWFkZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbD09aCYmKGU9c1tlLnRvTG93ZXJDYXNlKCldPXNbZS50b0xvd2VyQ2FzZSgpXXx8ZSxhW2VdPXQpLHRoaXN9LG92ZXJyaWRlTWltZVR5cGU6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWgmJih2Lm1pbWVUeXBlPWUpLHRoaXN9LHN0YXR1c0NvZGU6ZnVuY3Rpb24oZSl7dmFyIHQ7aWYoZSlpZihoKVQuYWx3YXlzKGVbVC5zdGF0dXNdKTtlbHNlIGZvcih0IGluIGUpd1t0XT1bd1t0XSxlW3RdXTtyZXR1cm4gdGhpc30sYWJvcnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZXx8dTtyZXR1cm4gYyYmYy5hYm9ydCh0KSxsKDAsdCksdGhpc319O2lmKHgucHJvbWlzZShUKSx2LnVybD0oKGV8fHYudXJsfHxidC5ocmVmKSsiIikucmVwbGFjZShIdCxidC5wcm90b2NvbCsiLy8iKSx2LnR5cGU9dC5tZXRob2R8fHQudHlwZXx8di5tZXRob2R8fHYudHlwZSx2LmRhdGFUeXBlcz0odi5kYXRhVHlwZXx8IioiKS50b0xvd2VyQ2FzZSgpLm1hdGNoKFApfHxbIiJdLG51bGw9PXYuY3Jvc3NEb21haW4pe3I9RS5jcmVhdGVFbGVtZW50KCJhIik7dHJ5e3IuaHJlZj12LnVybCxyLmhyZWY9ci5ocmVmLHYuY3Jvc3NEb21haW49TXQucHJvdG9jb2wrIi8vIitNdC5ob3N0IT1yLnByb3RvY29sKyIvLyIrci5ob3N0fWNhdGNoKGUpe3YuY3Jvc3NEb21haW49ITB9fWlmKHYuZGF0YSYmdi5wcm9jZXNzRGF0YSYmInN0cmluZyIhPXR5cGVvZiB2LmRhdGEmJih2LmRhdGE9Uy5wYXJhbSh2LmRhdGEsdi50cmFkaXRpb25hbCkpLFd0KE90LHYsdCxUKSxoKXJldHVybiBUO2ZvcihpIGluKGc9Uy5ldmVudCYmdi5nbG9iYWwpJiYwPT1TLmFjdGl2ZSsrJiZTLmV2ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpLHYudHlwZT12LnR5cGUudG9VcHBlckNhc2UoKSx2Lmhhc0NvbnRlbnQ9IUx0LnRlc3Qodi50eXBlKSxmPXYudXJsLnJlcGxhY2UoanQsIiIpLHYuaGFzQ29udGVudD92LmRhdGEmJnYucHJvY2Vzc0RhdGEmJjA9PT0odi5jb250ZW50VHlwZXx8IiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiYodi5kYXRhPXYuZGF0YS5yZXBsYWNlKE50LCIrIikpOihvPXYudXJsLnNsaWNlKGYubGVuZ3RoKSx2LmRhdGEmJih2LnByb2Nlc3NEYXRhfHwic3RyaW5nIj09dHlwZW9mIHYuZGF0YSkmJihmKz0oVHQudGVzdChmKT8iJiI6Ij8iKSt2LmRhdGEsZGVsZXRlIHYuZGF0YSksITE9PT12LmNhY2hlJiYoZj1mLnJlcGxhY2UoRHQsIiQxIiksbz0oVHQudGVzdChmKT8iJiI6Ij8iKSsiXz0iK3d0Lmd1aWQrKytvKSx2LnVybD1mK28pLHYuaWZNb2RpZmllZCYmKFMubGFzdE1vZGlmaWVkW2ZdJiZULnNldFJlcXVlc3RIZWFkZXIoIklmLU1vZGlmaWVkLVNpbmNlIixTLmxhc3RNb2RpZmllZFtmXSksUy5ldGFnW2ZdJiZULnNldFJlcXVlc3RIZWFkZXIoIklmLU5vbmUtTWF0Y2giLFMuZXRhZ1tmXSkpLCh2LmRhdGEmJnYuaGFzQ29udGVudCYmITEhPT12LmNvbnRlbnRUeXBlfHx0LmNvbnRlbnRUeXBlKSYmVC5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLHYuY29udGVudFR5cGUpLFQuc2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0Iix2LmRhdGFUeXBlc1swXSYmdi5hY2NlcHRzW3YuZGF0YVR5cGVzWzBdXT92LmFjY2VwdHNbdi5kYXRhVHlwZXNbMF1dKygiKiIhPT12LmRhdGFUeXBlc1swXT8iLCAiK1J0KyI7IHE9MC4wMSI6IiIpOnYuYWNjZXB0c1siKiJdKSx2LmhlYWRlcnMpVC5zZXRSZXF1ZXN0SGVhZGVyKGksdi5oZWFkZXJzW2ldKTtpZih2LmJlZm9yZVNlbmQmJighMT09PXYuYmVmb3JlU2VuZC5jYWxsKHksVCx2KXx8aCkpcmV0dXJuIFQuYWJvcnQoKTtpZih1PSJhYm9ydCIsYi5hZGQodi5jb21wbGV0ZSksVC5kb25lKHYuc3VjY2VzcyksVC5mYWlsKHYuZXJyb3IpLGM9V3QoUHQsdix0LFQpKXtpZihULnJlYWR5U3RhdGU9MSxnJiZtLnRyaWdnZXIoImFqYXhTZW5kIixbVCx2XSksaClyZXR1cm4gVDt2LmFzeW5jJiYwPHYudGltZW91dCYmKGQ9Qy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7VC5hYm9ydCgidGltZW91dCIpfSx2LnRpbWVvdXQpKTt0cnl7aD0hMSxjLnNlbmQoYSxsKX1jYXRjaChlKXtpZihoKXRocm93IGU7bCgtMSxlKX19ZWxzZSBsKC0xLCJObyBUcmFuc3BvcnQiKTtmdW5jdGlvbiBsKGUsdCxuLHIpe3ZhciBpLG8sYSxzLHUsbD10O2h8fChoPSEwLGQmJkMuY2xlYXJUaW1lb3V0KGQpLGM9dm9pZCAwLHA9cnx8IiIsVC5yZWFkeVN0YXRlPTA8ZT80OjAsaT0yMDA8PWUmJmU8MzAwfHwzMDQ9PT1lLG4mJihzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzPWUuY29udGVudHMsdT1lLmRhdGFUeXBlczt3aGlsZSgiKiI9PT11WzBdKXUuc2hpZnQoKSx2b2lkIDA9PT1yJiYocj1lLm1pbWVUeXBlfHx0LmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LVR5cGUiKSk7aWYocilmb3IoaSBpbiBzKWlmKHNbaV0mJnNbaV0udGVzdChyKSl7dS51bnNoaWZ0KGkpO2JyZWFrfWlmKHVbMF1pbiBuKW89dVswXTtlbHNle2ZvcihpIGluIG4pe2lmKCF1WzBdfHxlLmNvbnZlcnRlcnNbaSsiICIrdVswXV0pe289aTticmVha31hfHwoYT1pKX1vPW98fGF9aWYobylyZXR1cm4gbyE9PXVbMF0mJnUudW5zaGlmdChvKSxuW29dfSh2LFQsbikpLCFpJiYtMTxTLmluQXJyYXkoInNjcmlwdCIsdi5kYXRhVHlwZXMpJiZTLmluQXJyYXkoImpzb24iLHYuZGF0YVR5cGVzKTwwJiYodi5jb252ZXJ0ZXJzWyJ0ZXh0IHNjcmlwdCJdPWZ1bmN0aW9uKCl7fSkscz1mdW5jdGlvbihlLHQsbixyKXt2YXIgaSxvLGEscyx1LGw9e30sYz1lLmRhdGFUeXBlcy5zbGljZSgpO2lmKGNbMV0pZm9yKGEgaW4gZS5jb252ZXJ0ZXJzKWxbYS50b0xvd2VyQ2FzZSgpXT1lLmNvbnZlcnRlcnNbYV07bz1jLnNoaWZ0KCk7d2hpbGUobylpZihlLnJlc3BvbnNlRmllbGRzW29dJiYobltlLnJlc3BvbnNlRmllbGRzW29dXT10KSwhdSYmciYmZS5kYXRhRmlsdGVyJiYodD1lLmRhdGFGaWx0ZXIodCxlLmRhdGFUeXBlKSksdT1vLG89Yy5zaGlmdCgpKWlmKCIqIj09PW8pbz11O2Vsc2UgaWYoIioiIT09dSYmdSE9PW8pe2lmKCEoYT1sW3UrIiAiK29dfHxsWyIqICIrb10pKWZvcihpIGluIGwpaWYoKHM9aS5zcGxpdCgiICIpKVsxXT09PW8mJihhPWxbdSsiICIrc1swXV18fGxbIiogIitzWzBdXSkpeyEwPT09YT9hPWxbaV06ITAhPT1sW2ldJiYobz1zWzBdLGMudW5zaGlmdChzWzFdKSk7YnJlYWt9aWYoITAhPT1hKWlmKGEmJmVbInRocm93cyJdKXQ9YSh0KTtlbHNlIHRyeXt0PWEodCl9Y2F0Y2goZSl7cmV0dXJue3N0YXRlOiJwYXJzZXJlcnJvciIsZXJyb3I6YT9lOiJObyBjb252ZXJzaW9uIGZyb20gIit1KyIgdG8gIitvfX19cmV0dXJue3N0YXRlOiJzdWNjZXNzIixkYXRhOnR9fSh2LHMsVCxpKSxpPyh2LmlmTW9kaWZpZWQmJigodT1ULmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIikpJiYoUy5sYXN0TW9kaWZpZWRbZl09dSksKHU9VC5nZXRSZXNwb25zZUhlYWRlcigiZXRhZyIpKSYmKFMuZXRhZ1tmXT11KSksMjA0PT09ZXx8IkhFQUQiPT09di50eXBlP2w9Im5vY29udGVudCI6MzA0PT09ZT9sPSJub3Rtb2RpZmllZCI6KGw9cy5zdGF0ZSxvPXMuZGF0YSxpPSEoYT1zLmVycm9yKSkpOihhPWwsIWUmJmx8fChsPSJlcnJvciIsZTwwJiYoZT0wKSkpLFQuc3RhdHVzPWUsVC5zdGF0dXNUZXh0PSh0fHxsKSsiIixpP3gucmVzb2x2ZVdpdGgoeSxbbyxsLFRdKTp4LnJlamVjdFdpdGgoeSxbVCxsLGFdKSxULnN0YXR1c0NvZGUodyksdz12b2lkIDAsZyYmbS50cmlnZ2VyKGk/ImFqYXhTdWNjZXNzIjoiYWpheEVycm9yIixbVCx2LGk/bzphXSksYi5maXJlV2l0aCh5LFtULGxdKSxnJiYobS50cmlnZ2VyKCJhamF4Q29tcGxldGUiLFtULHZdKSwtLVMuYWN0aXZlfHxTLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIikpKX1yZXR1cm4gVH0sZ2V0SlNPTjpmdW5jdGlvbihlLHQsbil7cmV0dXJuIFMuZ2V0KGUsdCxuLCJqc29uIil9LGdldFNjcmlwdDpmdW5jdGlvbihlLHQpe3JldHVybiBTLmdldChlLHZvaWQgMCx0LCJzY3JpcHQiKX19KSxTLmVhY2goWyJnZXQiLCJwb3N0Il0sZnVuY3Rpb24oZSxpKXtTW2ldPWZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiBtKHQpJiYocj1yfHxuLG49dCx0PXZvaWQgMCksUy5hamF4KFMuZXh0ZW5kKHt1cmw6ZSx0eXBlOmksZGF0YVR5cGU6cixkYXRhOnQsc3VjY2VzczpufSxTLmlzUGxhaW5PYmplY3QoZSkmJmUpKX19KSxTLmFqYXhQcmVmaWx0ZXIoZnVuY3Rpb24oZSl7dmFyIHQ7Zm9yKHQgaW4gZS5oZWFkZXJzKSJjb250ZW50LXR5cGUiPT09dC50b0xvd2VyQ2FzZSgpJiYoZS5jb250ZW50VHlwZT1lLmhlYWRlcnNbdF18fCIiKX0pLFMuX2V2YWxVcmw9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBTLmFqYXgoe3VybDplLHR5cGU6IkdFVCIsZGF0YVR5cGU6InNjcmlwdCIsY2FjaGU6ITAsYXN5bmM6ITEsZ2xvYmFsOiExLGNvbnZlcnRlcnM6eyJ0ZXh0IHNjcmlwdCI6ZnVuY3Rpb24oKXt9fSxkYXRhRmlsdGVyOmZ1bmN0aW9uKGUpe1MuZ2xvYmFsRXZhbChlLHQsbil9fSl9LFMuZm4uZXh0ZW5kKHt3cmFwQWxsOmZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiB0aGlzWzBdJiYobShlKSYmKGU9ZS5jYWxsKHRoaXNbMF0pKSx0PVMoZSx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmVxKDApLmNsb25lKCEwKSx0aGlzWzBdLnBhcmVudE5vZGUmJnQuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pLHQubWFwKGZ1bmN0aW9uKCl7dmFyIGU9dGhpczt3aGlsZShlLmZpcnN0RWxlbWVudENoaWxkKWU9ZS5maXJzdEVsZW1lbnRDaGlsZDtyZXR1cm4gZX0pLmFwcGVuZCh0aGlzKSksdGhpc30sd3JhcElubmVyOmZ1bmN0aW9uKG4pe3JldHVybiBtKG4pP3RoaXMuZWFjaChmdW5jdGlvbihlKXtTKHRoaXMpLndyYXBJbm5lcihuLmNhbGwodGhpcyxlKSl9KTp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1TKHRoaXMpLHQ9ZS5jb250ZW50cygpO3QubGVuZ3RoP3Qud3JhcEFsbChuKTplLmFwcGVuZChuKX0pfSx3cmFwOmZ1bmN0aW9uKHQpe3ZhciBuPW0odCk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihlKXtTKHRoaXMpLndyYXBBbGwobj90LmNhbGwodGhpcyxlKTp0KX0pfSx1bndyYXA6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucGFyZW50KGUpLm5vdCgiYm9keSIpLmVhY2goZnVuY3Rpb24oKXtTKHRoaXMpLnJlcGxhY2VXaXRoKHRoaXMuY2hpbGROb2Rlcyl9KSx0aGlzfX0pLFMuZXhwci5wc2V1ZG9zLmhpZGRlbj1mdW5jdGlvbihlKXtyZXR1cm4hUy5leHByLnBzZXVkb3MudmlzaWJsZShlKX0sUy5leHByLnBzZXVkb3MudmlzaWJsZT1mdW5jdGlvbihlKXtyZXR1cm4hIShlLm9mZnNldFdpZHRofHxlLm9mZnNldEhlaWdodHx8ZS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCl9LFMuYWpheFNldHRpbmdzLnhocj1mdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IEMuWE1MSHR0cFJlcXVlc3R9Y2F0Y2goZSl7fX07dmFyIEJ0PXswOjIwMCwxMjIzOjIwNH0sJHQ9Uy5hamF4U2V0dGluZ3MueGhyKCk7eS5jb3JzPSEhJHQmJiJ3aXRoQ3JlZGVudGlhbHMiaW4gJHQseS5hamF4PSR0PSEhJHQsUy5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKGkpe3ZhciBvLGE7aWYoeS5jb3JzfHwkdCYmIWkuY3Jvc3NEb21haW4pcmV0dXJue3NlbmQ6ZnVuY3Rpb24oZSx0KXt2YXIgbixyPWkueGhyKCk7aWYoci5vcGVuKGkudHlwZSxpLnVybCxpLmFzeW5jLGkudXNlcm5hbWUsaS5wYXNzd29yZCksaS54aHJGaWVsZHMpZm9yKG4gaW4gaS54aHJGaWVsZHMpcltuXT1pLnhockZpZWxkc1tuXTtmb3IobiBpbiBpLm1pbWVUeXBlJiZyLm92ZXJyaWRlTWltZVR5cGUmJnIub3ZlcnJpZGVNaW1lVHlwZShpLm1pbWVUeXBlKSxpLmNyb3NzRG9tYWlufHxlWyJYLVJlcXVlc3RlZC1XaXRoIl18fChlWyJYLVJlcXVlc3RlZC1XaXRoIl09IlhNTEh0dHBSZXF1ZXN0IiksZSlyLnNldFJlcXVlc3RIZWFkZXIobixlW25dKTtvPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe28mJihvPWE9ci5vbmxvYWQ9ci5vbmVycm9yPXIub25hYm9ydD1yLm9udGltZW91dD1yLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLCJhYm9ydCI9PT1lP3IuYWJvcnQoKToiZXJyb3IiPT09ZT8ibnVtYmVyIiE9dHlwZW9mIHIuc3RhdHVzP3QoMCwiZXJyb3IiKTp0KHIuc3RhdHVzLHIuc3RhdHVzVGV4dCk6dChCdFtyLnN0YXR1c118fHIuc3RhdHVzLHIuc3RhdHVzVGV4dCwidGV4dCIhPT0oci5yZXNwb25zZVR5cGV8fCJ0ZXh0Iil8fCJzdHJpbmciIT10eXBlb2Ygci5yZXNwb25zZVRleHQ/e2JpbmFyeTpyLnJlc3BvbnNlfTp7dGV4dDpyLnJlc3BvbnNlVGV4dH0sci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSkpfX0sci5vbmxvYWQ9bygpLGE9ci5vbmVycm9yPXIub250aW1lb3V0PW8oImVycm9yIiksdm9pZCAwIT09ci5vbmFib3J0P3Iub25hYm9ydD1hOnIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ND09PXIucmVhZHlTdGF0ZSYmQy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7byYmYSgpfSl9LG89bygiYWJvcnQiKTt0cnl7ci5zZW5kKGkuaGFzQ29udGVudCYmaS5kYXRhfHxudWxsKX1jYXRjaChlKXtpZihvKXRocm93IGV9fSxhYm9ydDpmdW5jdGlvbigpe28mJm8oKX19fSksUy5hamF4UHJlZmlsdGVyKGZ1bmN0aW9uKGUpe2UuY3Jvc3NEb21haW4mJihlLmNvbnRlbnRzLnNjcmlwdD0hMSl9KSxTLmFqYXhTZXR1cCh7YWNjZXB0czp7c2NyaXB0OiJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdCJ9LGNvbnRlbnRzOntzY3JpcHQ6L1xiKD86amF2YXxlY21hKXNjcmlwdFxiL30sY29udmVydGVyczp7InRleHQgc2NyaXB0IjpmdW5jdGlvbihlKXtyZXR1cm4gUy5nbG9iYWxFdmFsKGUpLGV9fX0pLFMuYWpheFByZWZpbHRlcigic2NyaXB0IixmdW5jdGlvbihlKXt2b2lkIDA9PT1lLmNhY2hlJiYoZS5jYWNoZT0hMSksZS5jcm9zc0RvbWFpbiYmKGUudHlwZT0iR0VUIil9KSxTLmFqYXhUcmFuc3BvcnQoInNjcmlwdCIsZnVuY3Rpb24obil7dmFyIHIsaTtpZihuLmNyb3NzRG9tYWlufHxuLnNjcmlwdEF0dHJzKXJldHVybntzZW5kOmZ1bmN0aW9uKGUsdCl7cj1TKCI8c2NyaXB0PiIpLmF0dHIobi5zY3JpcHRBdHRyc3x8e30pLnByb3Aoe2NoYXJzZXQ6bi5zY3JpcHRDaGFyc2V0LHNyYzpuLnVybH0pLm9uKCJsb2FkIGVycm9yIixpPWZ1bmN0aW9uKGUpe3IucmVtb3ZlKCksaT1udWxsLGUmJnQoImVycm9yIj09PWUudHlwZT80MDQ6MjAwLGUudHlwZSl9KSxFLmhlYWQuYXBwZW5kQ2hpbGQoclswXSl9LGFib3J0OmZ1bmN0aW9uKCl7aSYmaSgpfX19KTt2YXIgX3QsenQ9W10sVXQ9Lyg9KVw/KD89JnwkKXxcP1w/LztTLmFqYXhTZXR1cCh7anNvbnA6ImNhbGxiYWNrIixqc29ucENhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGU9enQucG9wKCl8fFMuZXhwYW5kbysiXyIrd3QuZ3VpZCsrO3JldHVybiB0aGlzW2VdPSEwLGV9fSksUy5hamF4UHJlZmlsdGVyKCJqc29uIGpzb25wIixmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGE9ITEhPT1lLmpzb25wJiYoVXQudGVzdChlLnVybCk/InVybCI6InN0cmluZyI9PXR5cGVvZiBlLmRhdGEmJjA9PT0oZS5jb250ZW50VHlwZXx8IiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiZVdC50ZXN0KGUuZGF0YSkmJiJkYXRhIik7aWYoYXx8Impzb25wIj09PWUuZGF0YVR5cGVzWzBdKXJldHVybiByPWUuanNvbnBDYWxsYmFjaz1tKGUuanNvbnBDYWxsYmFjayk/ZS5qc29ucENhbGxiYWNrKCk6ZS5qc29ucENhbGxiYWNrLGE/ZVthXT1lW2FdLnJlcGxhY2UoVXQsIiQxIityKTohMSE9PWUuanNvbnAmJihlLnVybCs9KFR0LnRlc3QoZS51cmwpPyImIjoiPyIpK2UuanNvbnArIj0iK3IpLGUuY29udmVydGVyc1sic2NyaXB0IGpzb24iXT1mdW5jdGlvbigpe3JldHVybiBvfHxTLmVycm9yKHIrIiB3YXMgbm90IGNhbGxlZCIpLG9bMF19LGUuZGF0YVR5cGVzWzBdPSJqc29uIixpPUNbcl0sQ1tyXT1mdW5jdGlvbigpe289YXJndW1lbnRzfSxuLmFsd2F5cyhmdW5jdGlvbigpe3ZvaWQgMD09PWk/UyhDKS5yZW1vdmVQcm9wKHIpOkNbcl09aSxlW3JdJiYoZS5qc29ucENhbGxiYWNrPXQuanNvbnBDYWxsYmFjayx6dC5wdXNoKHIpKSxvJiZtKGkpJiZpKG9bMF0pLG89aT12b2lkIDB9KSwic2NyaXB0In0pLHkuY3JlYXRlSFRNTERvY3VtZW50PSgoX3Q9RS5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpLmJvZHkpLmlubmVySFRNTD0iPGZvcm0+PC9mb3JtPjxmb3JtPjwvZm9ybT4iLDI9PT1fdC5jaGlsZE5vZGVzLmxlbmd0aCksUy5wYXJzZUhUTUw9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiJzdHJpbmciIT10eXBlb2YgZT9bXTooImJvb2xlYW4iPT10eXBlb2YgdCYmKG49dCx0PSExKSx0fHwoeS5jcmVhdGVIVE1MRG9jdW1lbnQ/KChyPSh0PUUuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKSkuY3JlYXRlRWxlbWVudCgiYmFzZSIpKS5ocmVmPUUubG9jYXRpb24uaHJlZix0LmhlYWQuYXBwZW5kQ2hpbGQocikpOnQ9RSksbz0hbiYmW10sKGk9Ti5leGVjKGUpKT9bdC5jcmVhdGVFbGVtZW50KGlbMV0pXTooaT14ZShbZV0sdCxvKSxvJiZvLmxlbmd0aCYmUyhvKS5yZW1vdmUoKSxTLm1lcmdlKFtdLGkuY2hpbGROb2RlcykpKTt2YXIgcixpLG99LFMuZm4ubG9hZD1mdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGE9dGhpcyxzPWUuaW5kZXhPZigiICIpO3JldHVybi0xPHMmJihyPWh0KGUuc2xpY2UocykpLGU9ZS5zbGljZSgwLHMpKSxtKHQpPyhuPXQsdD12b2lkIDApOnQmJiJvYmplY3QiPT10eXBlb2YgdCYmKGk9IlBPU1QiKSwwPGEubGVuZ3RoJiZTLmFqYXgoe3VybDplLHR5cGU6aXx8IkdFVCIsZGF0YVR5cGU6Imh0bWwiLGRhdGE6dH0pLmRvbmUoZnVuY3Rpb24oZSl7bz1hcmd1bWVudHMsYS5odG1sKHI/UygiPGRpdj4iKS5hcHBlbmQoUy5wYXJzZUhUTUwoZSkpLmZpbmQocik6ZSl9KS5hbHdheXMobiYmZnVuY3Rpb24oZSx0KXthLmVhY2goZnVuY3Rpb24oKXtuLmFwcGx5KHRoaXMsb3x8W2UucmVzcG9uc2VUZXh0LHQsZV0pfSl9KSx0aGlzfSxTLmV4cHIucHNldWRvcy5hbmltYXRlZD1mdW5jdGlvbih0KXtyZXR1cm4gUy5ncmVwKFMudGltZXJzLGZ1bmN0aW9uKGUpe3JldHVybiB0PT09ZS5lbGVtfSkubGVuZ3RofSxTLm9mZnNldD17c2V0T2Zmc2V0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzLHUsbD1TLmNzcyhlLCJwb3NpdGlvbiIpLGM9UyhlKSxmPXt9OyJzdGF0aWMiPT09bCYmKGUuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIikscz1jLm9mZnNldCgpLG89Uy5jc3MoZSwidG9wIiksdT1TLmNzcyhlLCJsZWZ0IiksKCJhYnNvbHV0ZSI9PT1sfHwiZml4ZWQiPT09bCkmJi0xPChvK3UpLmluZGV4T2YoImF1dG8iKT8oYT0ocj1jLnBvc2l0aW9uKCkpLnRvcCxpPXIubGVmdCk6KGE9cGFyc2VGbG9hdChvKXx8MCxpPXBhcnNlRmxvYXQodSl8fDApLG0odCkmJih0PXQuY2FsbChlLG4sUy5leHRlbmQoe30scykpKSxudWxsIT10LnRvcCYmKGYudG9wPXQudG9wLXMudG9wK2EpLG51bGwhPXQubGVmdCYmKGYubGVmdD10LmxlZnQtcy5sZWZ0K2kpLCJ1c2luZyJpbiB0P3QudXNpbmcuY2FsbChlLGYpOmMuY3NzKGYpfX0sUy5mbi5leHRlbmQoe29mZnNldDpmdW5jdGlvbih0KXtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiB2b2lkIDA9PT10P3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKGUpe1Mub2Zmc2V0LnNldE9mZnNldCh0aGlzLHQsZSl9KTt2YXIgZSxuLHI9dGhpc1swXTtyZXR1cm4gcj9yLmdldENsaWVudFJlY3RzKCkubGVuZ3RoPyhlPXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj1yLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcse3RvcDplLnRvcCtuLnBhZ2VZT2Zmc2V0LGxlZnQ6ZS5sZWZ0K24ucGFnZVhPZmZzZXR9KTp7dG9wOjAsbGVmdDowfTp2b2lkIDB9LHBvc2l0aW9uOmZ1bmN0aW9uKCl7aWYodGhpc1swXSl7dmFyIGUsdCxuLHI9dGhpc1swXSxpPXt0b3A6MCxsZWZ0OjB9O2lmKCJmaXhlZCI9PT1TLmNzcyhyLCJwb3NpdGlvbiIpKXQ9ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlbHNle3Q9dGhpcy5vZmZzZXQoKSxuPXIub3duZXJEb2N1bWVudCxlPXIub2Zmc2V0UGFyZW50fHxuLmRvY3VtZW50RWxlbWVudDt3aGlsZShlJiYoZT09PW4uYm9keXx8ZT09PW4uZG9jdW1lbnRFbGVtZW50KSYmInN0YXRpYyI9PT1TLmNzcyhlLCJwb3NpdGlvbiIpKWU9ZS5wYXJlbnROb2RlO2UmJmUhPT1yJiYxPT09ZS5ub2RlVHlwZSYmKChpPVMoZSkub2Zmc2V0KCkpLnRvcCs9Uy5jc3MoZSwiYm9yZGVyVG9wV2lkdGgiLCEwKSxpLmxlZnQrPVMuY3NzKGUsImJvcmRlckxlZnRXaWR0aCIsITApKX1yZXR1cm57dG9wOnQudG9wLWkudG9wLVMuY3NzKHIsIm1hcmdpblRvcCIsITApLGxlZnQ6dC5sZWZ0LWkubGVmdC1TLmNzcyhyLCJtYXJnaW5MZWZ0IiwhMCl9fX0sb2Zmc2V0UGFyZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vZmZzZXRQYXJlbnQ7d2hpbGUoZSYmInN0YXRpYyI9PT1TLmNzcyhlLCJwb3NpdGlvbiIpKWU9ZS5vZmZzZXRQYXJlbnQ7cmV0dXJuIGV8fHJlfSl9fSksUy5lYWNoKHtzY3JvbGxMZWZ0OiJwYWdlWE9mZnNldCIsc2Nyb2xsVG9wOiJwYWdlWU9mZnNldCJ9LGZ1bmN0aW9uKHQsaSl7dmFyIG89InBhZ2VZT2Zmc2V0Ij09PWk7Uy5mblt0XT1mdW5jdGlvbihlKXtyZXR1cm4gJCh0aGlzLGZ1bmN0aW9uKGUsdCxuKXt2YXIgcjtpZih4KGUpP3I9ZTo5PT09ZS5ub2RlVHlwZSYmKHI9ZS5kZWZhdWx0Vmlldyksdm9pZCAwPT09bilyZXR1cm4gcj9yW2ldOmVbdF07cj9yLnNjcm9sbFRvKG8/ci5wYWdlWE9mZnNldDpuLG8/bjpyLnBhZ2VZT2Zmc2V0KTplW3RdPW59LHQsZSxhcmd1bWVudHMubGVuZ3RoKX19KSxTLmVhY2goWyJ0b3AiLCJsZWZ0Il0sZnVuY3Rpb24oZSxuKXtTLmNzc0hvb2tzW25dPUZlKHkucGl4ZWxQb3NpdGlvbixmdW5jdGlvbihlLHQpe2lmKHQpcmV0dXJuIHQ9V2UoZSxuKSxQZS50ZXN0KHQpP1MoZSkucG9zaXRpb24oKVtuXSsicHgiOnR9KX0pLFMuZWFjaCh7SGVpZ2h0OiJoZWlnaHQiLFdpZHRoOiJ3aWR0aCJ9LGZ1bmN0aW9uKGEscyl7Uy5lYWNoKHtwYWRkaW5nOiJpbm5lciIrYSxjb250ZW50OnMsIiI6Im91dGVyIithfSxmdW5jdGlvbihyLG8pe1MuZm5bb109ZnVuY3Rpb24oZSx0KXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoJiYocnx8ImJvb2xlYW4iIT10eXBlb2YgZSksaT1yfHwoITA9PT1lfHwhMD09PXQ/Im1hcmdpbiI6ImJvcmRlciIpO3JldHVybiAkKHRoaXMsZnVuY3Rpb24oZSx0LG4pe3ZhciByO3JldHVybiB4KGUpPzA9PT1vLmluZGV4T2YoIm91dGVyIik/ZVsiaW5uZXIiK2FdOmUuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiK2FdOjk9PT1lLm5vZGVUeXBlPyhyPWUuZG9jdW1lbnRFbGVtZW50LE1hdGgubWF4KGUuYm9keVsic2Nyb2xsIithXSxyWyJzY3JvbGwiK2FdLGUuYm9keVsib2Zmc2V0IithXSxyWyJvZmZzZXQiK2FdLHJbImNsaWVudCIrYV0pKTp2b2lkIDA9PT1uP1MuY3NzKGUsdCxpKTpTLnN0eWxlKGUsdCxuLGkpfSxzLG4/ZTp2b2lkIDAsbil9fSl9KSxTLmVhY2goWyJhamF4U3RhcnQiLCJhamF4U3RvcCIsImFqYXhDb21wbGV0ZSIsImFqYXhFcnJvciIsImFqYXhTdWNjZXNzIiwiYWpheFNlbmQiXSxmdW5jdGlvbihlLHQpe1MuZm5bdF09ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMub24odCxlKX19KSxTLmZuLmV4dGVuZCh7YmluZDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMub24oZSxudWxsLHQsbil9LHVuYmluZDpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLm9mZihlLG51bGwsdCl9LGRlbGVnYXRlOmZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiB0aGlzLm9uKHQsZSxuLHIpfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5vZmYoZSwiKioiKTp0aGlzLm9mZih0LGV8fCIqKiIsbil9LGhvdmVyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMubW91c2VlbnRlcihlKS5tb3VzZWxlYXZlKHR8fGUpfX0pLFMuZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IHJlc2l6ZSBzY3JvbGwgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdlIHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBjb250ZXh0bWVudSIuc3BsaXQoIiAiKSxmdW5jdGlvbihlLG4pe1MuZm5bbl09ZnVuY3Rpb24oZSx0KXtyZXR1cm4gMDxhcmd1bWVudHMubGVuZ3RoP3RoaXMub24obixudWxsLGUsdCk6dGhpcy50cmlnZ2VyKG4pfX0pO3ZhciBYdD0vXltcc1x1RkVGRlx4QTBdK3xbXHNcdUZFRkZceEEwXSskL2c7Uy5wcm94eT1mdW5jdGlvbihlLHQpe3ZhciBuLHIsaTtpZigic3RyaW5nIj09dHlwZW9mIHQmJihuPWVbdF0sdD1lLGU9biksbShlKSlyZXR1cm4gcj1zLmNhbGwoYXJndW1lbnRzLDIpLChpPWZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkodHx8dGhpcyxyLmNvbmNhdChzLmNhbGwoYXJndW1lbnRzKSkpfSkuZ3VpZD1lLmd1aWQ9ZS5ndWlkfHxTLmd1aWQrKyxpfSxTLmhvbGRSZWFkeT1mdW5jdGlvbihlKXtlP1MucmVhZHlXYWl0Kys6Uy5yZWFkeSghMCl9LFMuaXNBcnJheT1BcnJheS5pc0FycmF5LFMucGFyc2VKU09OPUpTT04ucGFyc2UsUy5ub2RlTmFtZT1BLFMuaXNGdW5jdGlvbj1tLFMuaXNXaW5kb3c9eCxTLmNhbWVsQ2FzZT1YLFMudHlwZT13LFMubm93PURhdGUubm93LFMuaXNOdW1lcmljPWZ1bmN0aW9uKGUpe3ZhciB0PVMudHlwZShlKTtyZXR1cm4oIm51bWJlciI9PT10fHwic3RyaW5nIj09PXQpJiYhaXNOYU4oZS1wYXJzZUZsb2F0KGUpKX0sUy50cmltPWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lPyIiOihlKyIiKS5yZXBsYWNlKFh0LCIiKX0sImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZCYmZGVmaW5lKCJqcXVlcnkiLFtdLGZ1bmN0aW9uKCl7cmV0dXJuIFN9KTt2YXIgVnQ9Qy5qUXVlcnksR3Q9Qy4kO3JldHVybiBTLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIEMuJD09PVMmJihDLiQ9R3QpLGUmJkMualF1ZXJ5PT09UyYmKEMualF1ZXJ5PVZ0KSxTfSwidW5kZWZpbmVkIj09dHlwZW9mIGUmJihDLmpRdWVyeT1DLiQ9UyksU30pOwo="></script>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link href="data:text/css,html%7Bfont%2Dfamily%3Asans%2Dserif%3B%2Dwebkit%2Dtext%2Dsize%2Dadjust%3A100%25%3B%2Dms%2Dtext%2Dsize%2Dadjust%3A100%25%7Dbody%7Bmargin%3A0%7Darticle%2Caside%2Cdetails%2Cfigcaption%2Cfigure%2Cfooter%2Cheader%2Chgroup%2Cmain%2Cmenu%2Cnav%2Csection%2Csummary%7Bdisplay%3Ablock%7Daudio%2Ccanvas%2Cprogress%2Cvideo%7Bdisplay%3Ainline%2Dblock%3Bvertical%2Dalign%3Abaseline%7Daudio%3Anot%28%5Bcontrols%5D%29%7Bdisplay%3Anone%3Bheight%3A0%7D%5Bhidden%5D%2Ctemplate%7Bdisplay%3Anone%7Da%7Bbackground%2Dcolor%3Atransparent%7Da%3Aactive%2Ca%3Ahover%7Boutline%3A0%7Dabbr%5Btitle%5D%7Bborder%2Dbottom%3A1px%20dotted%7Db%2Cstrong%7Bfont%2Dweight%3A700%7Ddfn%7Bfont%2Dstyle%3Aitalic%7Dh1%7Bmargin%3A%2E67em%200%3Bfont%2Dsize%3A2em%7Dmark%7Bcolor%3A%23000%3Bbackground%3A%23ff0%7Dsmall%7Bfont%2Dsize%3A80%25%7Dsub%2Csup%7Bposition%3Arelative%3Bfont%2Dsize%3A75%25%3Bline%2Dheight%3A0%3Bvertical%2Dalign%3Abaseline%7Dsup%7Btop%3A%2D%2E5em%7Dsub%7Bbottom%3A%2D%2E25em%7Dimg%7Bborder%3A0%7Dsvg%3Anot%28%3Aroot%29%7Boverflow%3Ahidden%7Dfigure%7Bmargin%3A1em%2040px%7Dhr%7Bheight%3A0%3B%2Dwebkit%2Dbox%2Dsizing%3Acontent%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Acontent%2Dbox%3Bbox%2Dsizing%3Acontent%2Dbox%7Dpre%7Boverflow%3Aauto%7Dcode%2Ckbd%2Cpre%2Csamp%7Bfont%2Dfamily%3Amonospace%2Cmonospace%3Bfont%2Dsize%3A1em%7Dbutton%2Cinput%2Coptgroup%2Cselect%2Ctextarea%7Bmargin%3A0%3Bfont%3Ainherit%3Bcolor%3Ainherit%7Dbutton%7Boverflow%3Avisible%7Dbutton%2Cselect%7Btext%2Dtransform%3Anone%7Dbutton%2Chtml%20input%5Btype%3Dbutton%5D%2Cinput%5Btype%3Dreset%5D%2Cinput%5Btype%3Dsubmit%5D%7B%2Dwebkit%2Dappearance%3Abutton%3Bcursor%3Apointer%7Dbutton%5Bdisabled%5D%2Chtml%20input%5Bdisabled%5D%7Bcursor%3Adefault%7Dbutton%3A%3A%2Dmoz%2Dfocus%2Dinner%2Cinput%3A%3A%2Dmoz%2Dfocus%2Dinner%7Bpadding%3A0%3Bborder%3A0%7Dinput%7Bline%2Dheight%3Anormal%7Dinput%5Btype%3Dcheckbox%5D%2Cinput%5Btype%3Dradio%5D%7B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%3Bpadding%3A0%7Dinput%5Btype%3Dnumber%5D%3A%3A%2Dwebkit%2Dinner%2Dspin%2Dbutton%2Cinput%5Btype%3Dnumber%5D%3A%3A%2Dwebkit%2Douter%2Dspin%2Dbutton%7Bheight%3Aauto%7Dinput%5Btype%3Dsearch%5D%7B%2Dwebkit%2Dbox%2Dsizing%3Acontent%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Acontent%2Dbox%3Bbox%2Dsizing%3Acontent%2Dbox%3B%2Dwebkit%2Dappearance%3Atextfield%7Dinput%5Btype%3Dsearch%5D%3A%3A%2Dwebkit%2Dsearch%2Dcancel%2Dbutton%2Cinput%5Btype%3Dsearch%5D%3A%3A%2Dwebkit%2Dsearch%2Ddecoration%7B%2Dwebkit%2Dappearance%3Anone%7Dfieldset%7Bpadding%3A%2E35em%20%2E625em%20%2E75em%3Bmargin%3A0%202px%3Bborder%3A1px%20solid%20silver%7Dlegend%7Bpadding%3A0%3Bborder%3A0%7Dtextarea%7Boverflow%3Aauto%7Doptgroup%7Bfont%2Dweight%3A700%7Dtable%7Bborder%2Dspacing%3A0%3Bborder%2Dcollapse%3Acollapse%7Dtd%2Cth%7Bpadding%3A0%7D%40media%20print%7B%2A%2C%3Aafter%2C%3Abefore%7Bcolor%3A%23000%21important%3Btext%2Dshadow%3Anone%21important%3Bbackground%3A0%200%21important%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%21important%3Bbox%2Dshadow%3Anone%21important%7Da%2Ca%3Avisited%7Btext%2Ddecoration%3Aunderline%7Da%5Bhref%5D%3Aafter%7Bcontent%3A%22%20%28%22%20attr%28href%29%20%22%29%22%7Dabbr%5Btitle%5D%3Aafter%7Bcontent%3A%22%20%28%22%20attr%28title%29%20%22%29%22%7Da%5Bhref%5E%3D%22javascript%3A%22%5D%3Aafter%2Ca%5Bhref%5E%3D%22%23%22%5D%3Aafter%7Bcontent%3A%22%22%7Dblockquote%2Cpre%7Bborder%3A1px%20solid%20%23999%3Bpage%2Dbreak%2Dinside%3Aavoid%7Dthead%7Bdisplay%3Atable%2Dheader%2Dgroup%7Dimg%2Ctr%7Bpage%2Dbreak%2Dinside%3Aavoid%7Dimg%7Bmax%2Dwidth%3A100%25%21important%7Dh2%2Ch3%2Cp%7Borphans%3A3%3Bwidows%3A3%7Dh2%2Ch3%7Bpage%2Dbreak%2Dafter%3Aavoid%7D%2Enavbar%7Bdisplay%3Anone%7D%2Ebtn%3E%2Ecaret%2C%2Edropup%3E%2Ebtn%3E%2Ecaret%7Bborder%2Dtop%2Dcolor%3A%23000%21important%7D%2Elabel%7Bborder%3A1px%20solid%20%23000%7D%2Etable%7Bborder%2Dcollapse%3Acollapse%21important%7D%2Etable%20td%2C%2Etable%20th%7Bbackground%2Dcolor%3A%23fff%21important%7D%2Etable%2Dbordered%20td%2C%2Etable%2Dbordered%20th%7Bborder%3A1px%20solid%20%23ddd%21important%7D%7D%40font%2Dface%7Bfont%2Dfamily%3A%27Glyphicons%20Halflings%27%3Bsrc%3Aurl%28data%3Aapplication%2Fvnd%2Ems%2Dfontobject%3Bbase64%2Cn04AAEFNAAACAAIABAAAAAAABQAAAAAAAAABAJABAAAEAExQAAAAAAAAAAIAAAAAAAAAAAEAAAAAAAAAJxJ%2FLAAAAAAAAAAAAAAAAAAAAAAAACgARwBMAFkAUABIAEkAQwBPAE4AUwAgAEgAYQBsAGYAbABpAG4AZwBzAAAADgBSAGUAZwB1AGwAYQByAAAAeABWAGUAcgBzAGkAbwBuACAAMQAuADAAMAA5ADsAUABTACAAMAAwADEALgAwADAAOQA7AGgAbwB0AGMAbwBuAHYAIAAxAC4AMAAuADcAMAA7AG0AYQBrAGUAbwB0AGYALgBsAGkAYgAyAC4ANQAuADUAOAAzADIAOQAAADgARwBMAFkAUABIAEkAQwBPAE4AUwAgAEgAYQBsAGYAbABpAG4AZwBzACAAUgBlAGcAdQBsAGEAcgAAAAAAQlNHUAAAAAAAAAAAAAAAAAAAAAADAKncAE0TAE0ZAEbuFM3pjM%2FSEdmjKHUbyow8ATBE40IvWA3vTu8LiABDQ%2BpexwUMcm1SMnNryctQSiI1K5ZnbOlXKmnVV5YvRe6RnNMFNCOs1KNVpn6yZhCJkRtVRNzEufeIq7HgSrcx4S8h%2Fv4vnrrKc6oCNxmSk2uKlZQHBii6iKFoH0746ThvkO1kJHlxjrkxs%2BLWORaDQBEtiYJIR5IB9Bi1UyL4Rmr0BNigNkMzlKQmnofBHviqVzUxwdMb3NdCn69hy%2BpRYVKGVS%2F1tnsqv4LL7wCCPZZAZPT4aCShHjHJVNuXbmMrY5LeQaGnvAkXlVrJgKRAUdFjrWEah9XebPeQMj7KS7DIBAFt8ycgC5PLGUOHSE3ErGZCiViNLL5ZARfywnCoZaKQCu6NuFX42AEeKtKUGnr%2FCm2Cy8tpFhBPMW5Fxi4Qm4TkDWh4IWFDClhU2hRWosUWqcKLlgyXB%2BlSHaWaHiWlBAR8SeSgSPCQxdVQgzUixWKSTrIQEbU94viDctkvX%2BVSjJuUmV8L4CXShI11esnp0pjWNZIyxKHS4wVQ2ime1P4RnhvGw0aDN1OLAXGERsB7buFpFGGBAre4QEQR0HOIO5oYH305G%2BKspT%2FFupEGGafCCwxSe6ZUa%2B073rXHnNdVXE6eWvibUS27XtRzkH838mYLMBmYysZTM0EM3A1fbpCBYFccN1B%2FEnCYu%2FTgCGmr7bMh8GfYL%2BBfcLvB0gRagC09w9elfldaIy%2FhNCBLRgBgtCC7jAF63wLSMAfbfAlEggYU0bUA7ACCJmTDpEmJtI78w4%2FBO7dN7JR7J7ZvbYaUbaILSQsRBiF3HGk5fEg6p9unwLvn98r%2BvnsV%2B372uf1xBLq4qU%2F45fTuqaAP%2BpssmCCCTF0mhEow8ZXZOS8D7Q85JsxZ%2BAzok7B7O%2Ff6J8AzYBySZQB%2FQHYUSA%2BEeQhEWiS6AIQzgcsDiER4MjgMBAWDV4AgQ3g1eBgIdweCQmCjJEMkJ%2BPKRWyFHHmg1Wi%2F6xzUgA0LREoKJChwnQa9B%2B5RQZRB3IlBlkAnxyQNaANwHMowzlYSMCBgnbpzvqpl0iTJNCQidDI9ZrSYNIRBhHtUa5YHMHxyGEik9hDE0AKj72AbTCaxtHPUaKZdAZSnQTyjGqGLsmBStCejApUhg4uBMU6mATujEl%2BKdDPbI6Ag4vLr%2BhjY6lbjBeoLKnZl0UZgRX8gTySOeynZVz1wOq7e1hFGYIq%2BMhrGxDLak0PrwYzSXtcuyhXEhwOYofiW%2BEcI%2Fjw8P6IY6ed%2BetAbuqKp5QIapT77LnAe505lMuqL79a0ut4rWexzFttsOsLDy7zvtQzcq3U1qabe7tB0wHWVXji%2BzDbo8x8HyIRUbXnwUcklFv51fvTymiV%2BMXLSmGH9d9%2BaXpD5X6lao41anWGig7IwIdnoBY2ht%2FpO9mClLo4NdXHAsefqWUKlXJkbqPOFhMoR4aiA1BXqhRNbB2Xwi%2B7u%2FjpAoOpKJ0UX24EsrzMfHXViakCNcKjBxuQX8BO0ZqjJ3xXzf%2B61t2VXOSgJ8xu65QKgtN6FibPmPYsXbJRHHqbgATcSZxBqGiDiU4NNNsYBsKD0MIP%2FOfKnlk%2FLkaid%2FO2NbKeuQrwOB2Gq3YHyr6ALgzym5wIBnsdC1ZkoBFZSQXChZvlesPqvK2c5oHHT3Q65jYpNxnQcGF0EHbvYqoFw60WNlXIHQF2HQB7zD6lWjZ9rVqUKBXUT6hrkZOle0RFYII0V5ZYGl1JAP0Ud1fZZMvSomBzJ710j4Me8mjQDwEre5Uv2wQfk1ifDwb5ksuJQQ3xt423lbuQjvoIQByQrNDh1JxGFkOdlJvu%2FgFtuW0wR4cgd%2BZKesSV7QkNE2kw6AV4hoIuC02LGmTomyf8PiO6CZzOTLTPQ%2BHW06H%2Btx%2BbQ8LmDYg1pTFrp2oJXgkZTyeRJZM0C8aE2LpFrNVDuhARsN543%2FFV6klQ6Tv1OoZGXLv0igKrl%2FCmJxRmX7JJbJ998VSIPQRyDBICzl4JJlYHbdql30NvYcOuZ7a10uWRrgoieOdgIm4rlq6vNOQBuqESLbXG5lzdJGHw2m0sDYmODXbYGTfSTGRKpssTO95fothJCjUGQgEL4yKoGAF%2F0SrpUDNn8CBgBcSDQByAeNkCXp4S4Ro2Xh4OeaGRgR66PVOsU8bc6TR5%2FxTcn4IVMLOkXSWiXxkZQCbvKfmoAvQaKjO3EDKwkwqHChCDEM5loQRPd5ACBki1TjF772oaQhQbQ5C0lcWXPFOzrfsDGUXGrpxasbG4iab6eByaQkQfm0VFlP0ZsDkvvqCL6QXMUwCjdMx1ZOyKhTJ7a1GWAdOUcJ8RSejxNVyGs31OKMyRyBVoZFjqIkmKlLQ5eHMeEL4MkUf23cQ%2F1SgRCJ1dk4UdBT7OoyuNgLs0oCd8RnrEIb6QdMxT2QjD4zMrJkfgx5aDMcA4orsTtKCqWb%2FVeyceqa5OGSmB28YwH4rFbkQaLoUN8OQQYnD3w2eXpI4ScQfbCUZiJ4yMOIKLyyTc7BQ4uXUw6Ee6%2FxM%2B4Y67ngNBknxIPwuppgIhFcwJyr6EIj%2BLzNj%2FmfR2vhhRlx0BILZoAYruF0caWQ7YxO66UmeguDREAFHYuC7HJviRgVO6ruJH59h%2FC%2FPkgSle8xNzZJULLWq9JMDTE2fjGE146a1Us6PZDGYle6ldWRqn%2FpdpgHKNGrGIdkRK%2BKPETT9nKT6kLyDI8xd9A1FgWmXWRAIHwZ37WyZHOVyCadJEmMVz0MadMjDrPho%2BEIochkVC2xgGiwwsQ6DMv2P7UXqT4x7CdcYGId2BJQQa85EQKmCmwcRejQ9Bm4oATENFPkxPXILHpMPUyWTI5rjNOsIlmEeMbcOCEqInpXACYQ9DDxmFo9vcmsDblcMtg4tqBerNngkIKaFJmrQAPnq1dEzsMXcwjcHdfdCibcAxxA%2Bq%2Fj9m3LM%2FO7WJka4tSidVCjsvo2lQ%2F2ewyoYyXwAYyr2PlRoR5MpgVmSUIrM3PQxXPbgjBOaDQFIyFMJvx3Pc5RSYj12ySVF9fwFPQu2e2KWVoL9q3Ayv3IzpGHUdvdPdrNUdicjsTQ2ISy7QU3DrEytIjvbzJnAkmANXjAFERA0MUoPF3%2F5KFmW14bBNOhwircYgMqoDpUMcDtCmBE82QM2YtdjVLB4kBuKho%2FbcwQdeboqfQartuU3CsCf%2BcXkgYAqp%2F0Ee3RorAZt0AvvOCSI4JICIlGlsV0bsSid%2FNIEALAAzb6HAgyWHBps6xAOwkJIGcB82CxRQq4sJf3FzA70A%2BTRqcqjEMETCoez3mkPcpnoALs0ugJY8kQwrC%2BJE5ik3w9rzrvDRjAQnqgEVvdGrNwlanR0SOKWzxOJOvLJhcd8Cl4AshACUkv9czdMkJCVQSQhp6kp7StAlpVRpK0t0SW6LHeBJnE2QchB5Ccu8kxRghZXGIgZIiSj7gEKMJDClcnX6hgoqJMwiQDigIXg3ioFLCgDgjPtYHYpsF5EiA4kcnN18MZtOrY866dEQAb0FB34OGKHGZQjwW%2FWDHA60cYFaI%2FPjpzquUqdaYGcIq%2BmLez3WLFFCtNBN2QJcrlcoELgiPku5R5dSlJFaCEqEZle1AQzAKC%2B1SotMcBNyQUFuRHRF6OlimSBgjZeTBCwLyc6A%2BP%2FoFRchXTz5ADknYJHxzrJ5pGuIKRQISU6WyKTBBjD8WozmVYWIsto1AS5rxzKlvJu4E%2FvwOiKxRtCWsDM%2BeTHUrmwrCK5BIfMzGkD%2B0Fk5LzBs0jMYXktNDblB06LMNJ09U8pzSLmo14MS0OMjcdrZ31pyQqxJJpRImlSvfYAK8inkYU52QY2FPEVsjoWewpwhRp5yAuNpkqhdb7ku9Seefl2D0B8SMTFD90xi4CSOwwZy9IKkpMtI3FmFUg3%2FkFutpQGNc3pCR7gvC4sgwbupDu3DyEN%2BW6YGLNM21jpB49irxy9BSlHrVDlnihGKHwPrbVFtc%2Bh1rVQKZduxIyojccZIIcOCmhEnC7UkY68WXKQgLi2JCDQkQWJRQuk60hZp0D3rtCTINSeY9Ej2kIKYfGxwOs4j9qMM7fYZiipzgcf7TamnehqdhsiMiCawXnz4xAbyCkLAx5EGbo3Ax1u3dUIKnTxIaxwQTHehPl3V491H0%2BbC5zgpGz7Io%2BmjdhKlPJ01EeMpM7UsRJMi1nGjmJg35i6bQBAAxjO%2FENJubU2mg3ONySEoWklCwdABETcs7ck3jgiuU9pcKKpbgn%2B3YlzV1FzIkB6pmEDOSSyDfPPlQskznctFji0kpgZjW5RZe6x9kYT4KJcXg0bNiCyif%2BpZACCyRMmYsfiKmN9tSO65F0R2OO6ytlEhY5Sj6uRKfFxw0ijJaAx%2Fk3QgnAFSq27%2F2i4GEBA%2BUvTJKK%2F9eISNvG46Em5RZfjTYLdeD8kdXHyrwId%2FDQZUaMCY4gGbke2C8vfjgV%2FY9kkRQOJIn%2FxM9INZSpiBnqX0Q9GlQPpPKAyO5y%2BW5NMPSRdBCUlmuxl40ZfMCnf2Cp044uI9WLFtCi4YVxKjuRCOBWIb4XbIsGdbo4qtMQnNOQz4XDSui7W%2FN6l54qOynCqD3DpWQ%2BmpD7C40D8BZEWGJX3tlAaZBMj1yjvDYKwCJBa201u6nBKE5UE%2B7QSEhCwrXfbRZylAaAkplhBWX50dumrElePyNMRYUrC99UmcSSNgImhFhDI4BXjMtiqkgizUGCrZ8iwFxU6fQ8GEHCFdLewwxYWxgScAYMdMLmcZR6b7rZl95eQVDGVoUKcRMM1ixXQtXNkBETZkVVPg8LoSrdetHzkuM7DjZRHP02tCxA1fmkXKF3VzfN1pc1cv%2F8lbTIkkYpqKM9VOhp65ktYk%2BQ46myFWBapDfyWUCnsnI00QTBQmuFjMZTcd0V2NQ768Fhpby04k2IzNR1wKabuGJqYWwSly6ocMFGTeeI%2BejsWDYgEvr66QgqdcIbFYDNgsm0x9UHY6SCd5%2B7tpsLpKdvhahIDyYmEJQCqMqtCF6UlrE5GXRmbu%2Bvtm3BFSxI6ND6UxIE7GsGMgWqghXxSnaRJuGFveTcK5ZVSPJyjUxe1dKgI6kNF7EZhIZs8y8FVqwEfbM0Xk2ltORVDKZZM40SD3qQoQe0orJEKwPfZwm3YPqwixhUMOndis6MhbmfvLBKjC8sKKIZKbJk8L11oNkCQzCgvjhyyEiQSuJcgCQSG4Mocfgc0Hkwcjal1UNgP0CBPikYqBIk9tONv4kLtBswH07vUCjEaHiFGlLf8MgXKzSgjp2HolRRccAOh0ILHz9qlGgIFkwAnzHJRjWFhlA7ROwINyB5HFj59PRZHFor6voq7l23EPNRwdWhgawqbivLSjRA4htEYUFkjESu67icTg5S0aW1sOkCiIysfJ9UnIWevOOLGpepcBxy1wEhd2WI3AZg7sr9WBmHWyasxMcvY%2FiOmsLtHSWNUWEGk9hScMPShasUA1AcHOtRZlqMeQ0OzYS9vQvYUjOLrzP07BUAFikcJNMi7gIxEw4pL1G54TcmmmoAQ5s7TGWErJZ2Io4yQ0ljRYhL8H5e62oDtLF8aDpnIvZ5R3GWJyAugdiiJW9hQAVTsnCBHhwu7rkBlBX6r3b7ejEY0k5GGeyKv66v%2B6dg7mcJTrWHbtMywbedYqCQ0FPwoytmSWsL8WTtChZCKKzEF7vP6De4x2BJkkniMgSdWhbeBSLtJZR9CTHetK1xb34AYIJ37OegYIoPVbXgJ%2FqDQK%2BbfCtxQRVKQu77WzOoM6SGL7MaZwCGJVk46aImai9fmam%2BWpHG%2B0BtQPWUgZ7RIAlPq6lkECUhZQ2gqWkMYKcYMYaIc4gYCDFHYa2d1nzp3%2BJ1eCBay8IYZ0wQRKGAqvCuZ%2FUgbQPyllosq%2BXtfKIZOzmeJqRazpmmoP%2F76YfkjzV2NlXTDSBYB04SVlNQsFTbGPk1t%2FI4Jktu0XSgifO2ozFOiwd%2F0SssJDn0dn4xqk4GDTTKX73%2FwQyBLdqgJ%2BWx6AQaba3BA9CKEzjtQYIfAsiYamapq80LAamYjinlKXUkxdpIDk0puXUEYzSalfRibAeDAKpNiqQ0FTwoxuGYzRnisyTotdVTclis1LHRQCy%2FqqL8oUaQzWRxilq5Mi0IJGtMY02cGLD69vGjkj3p6pGePKI8bkBv5evq8SjjyU04vJR2cQXQwSJyoinDsUJHCQ50jrFTT7yRdbdYQMB3MYCb6uBzJ9ewhXYPAIZSXfeEQBZZ3GPN3Nbhh%2FwkvAJLXnQMdi5NYYZ5GHE400GS5rXkOZSQsdZgIbzRnF9ueLnsfQ47wHAsirITnTlkCcuWWIUhJSbpM3wWhXNHvt2xUsKKMpdBSbJnBMcihkoDqAd1Zml%2FR4yrzow1Q2A5G%2Bkzo%2FRhRxQS2lCSDRV8LlYLBOOoo1bF4jwJAwKMK1tWLHlu9i0j4Ig8qVm6wE1DxXwAwQwsaBWUg2pOOol2dHxyt6npwJEdLDDVYyRc2D0HbcbLUJQj8gPevQBUBOUHXPrsAPBERICpnYESeu2OHotpXQxRGlCCtLdIsu23MhZVEoJg8Qumj%2FUMMc34IBqTKLDTp76WzL%2FdMjCxK7MjhiGjeYAC%2Fkj%2FjY%2FRde7hpSM1xChrog6yZ7OWTuD56xBJnGFE%2BpT2ElSyCnJcwVzCjkqeNLfMEJqKW0G7OFIp0G%2B9mh50I9o8k1tpCY0xYqFNIALgIfc2me4n1bmJnRZ89oepgLPT0NTMLNZsvSCZAc3TXaNB07vail36%2FdBySis4m9%2FDR8izaLJW6bWCkVgm5T%2Bius3ZXq4xI%2BGnbveLbdRwF2mNtsrE0JjYc1AXknCOrLSu7Te%2Fr4dPYMCl5qtiHNTn%2BTPbh1jCBHH%2BdMJNhwNgs3nT%2BOhQoQ0vYif56BMG6WowAcHR3DjQolxLzyVekHj00PBAaW7IIAF1EF%2BuRIWyXjQMAs2chdpaKPNaB%2BkSezYt0%2BCA04sOg5vx8Fr7Ofa9sUv87h7SLAUFSzbetCCZ9pmyLt6l6%2FTzoA1%2FZBG9bIUVHLAbi%2FkdBFgYGyGwRQGBpkqCEg2ah9UD6EedEcEL3j4y0BQQCiExEnocA3SZboh%2Bepgd3YsOkHskZwPuQ5OoyA0fTA5AXrHcUOQF%2BzkJHIA7PwCDk1gGVmGUZSSoPhNf%2BTklauz98QofOlCIQ%2FtCD4dosHYPqtPCXB3agggQQIqQJsSkB%2Bqn0rkQ1toJjON%2FOtCIB9RYv3PqRA4C4U68ZMlZn6BdgEvi2ziU%2BTQ6NIw3ej%2BAtDwMGEZk7e2IjxUWKdAxyaw9OCwSmeADTPPleyk6UhGDNXQb%2B%2BW6Uk4q6F7%2Frg6WVTo82IoCxSIsFDrav4EPHphD3u4hR53WKVvYZUwNCCeM4PMBWzK%2BEfIthZOkuAwPo5C5jgoZgn6dUdvx5rIDmd58cXXdKNfw3l%2BwM2UjgrDJeQHhbD7HW2QDoZMCujgIUkk5Fg8VCsdyjOtnGRx8wgKRPZN5dR0zPUyfGZFVihbFRniXZFOZGKPnEQzU3AnD1KfR6weHW2XS6KbPJxUkOTZsAB9vTVp3Le1F8q5l%2BDMcLiIq78jxAImD2pGFw0VHfRatScGlK6SMu8leTmhUSMy8Uhdd6xBiH3Gdman4tjQGLboJfqz6fL2WKHTmrfsKZRYX6BTDjDldKMosaSTLdQS7oDisJNqAUhw1PfTlnacCO8vl8706Km1FROgLDmudzxg%2BEWTiArtHgLsRrAXYWdB0NmToNCJdKm0KWycZQqb%2BMw76Qy29iQ5up%2FX7oyw8QZ75kP5F6iJAJz6KCmqxz8fEa%2FxnsMYcIO%2FvEkGRuMckhr4rIeLrKaXnmIzlNLxbFspOphkcnJdnz%2FChp%2FVlpj2P7jJQmQRwGnltkTV5dbF9fE3%2FfxoSqTROgq9wFUlbuYzYcasE0ouzBo%2BdDCDzxKAfhbAZYxQiHrLzV2iVexnDX%2FQnT1fsT%2Fxuhu1ui5qIytgbGmRoQkeQooO8eJNNZsf0iALur8QxZFH0nCMnjerYQqG1pIfjyVZWxhVRznmmfLG00BcBWJE6hzQWRyFknuJnXuk8A5FRDCulwrWASSNoBtR%2BCtGdkPwYN2o7DOw%2FVGlCZPusRBFXODQdUM5zeHDIVuAJBLqbO%2Ff9Qua%2BpDqEPk230Sob9lEZ8BHiCorjVghuI0lI4JDgHGRDD%2FprQ84B1pVGkIpVUAHCG%2Biz3Bn3qm2AVrYcYWhock4jso5%2BJ7HfHVj4WMIQdGctq3psBCVVzupQOEioBGA2Bk%2BUILT7%2BVoX5mdxxA5fS42gISQVi%2FHTzrgMxu0fY6hE1ocUwwbsbWcezrY2n6S8%2F6cxXkOH4prpmPuFoikTzY7T85C4T2XYlbxLglSv2uLCgFv8Quk%2FwdesUdWPeHYIH0R729JIisN9Apdd4eB10aqwXrPt%2BSu9mA8k8n1sjMwnfsfF2j3jMUzXepSHmZ%2FBfqXvzgUNQQWOXO8YEuFBh4QTYCkOAPxywpYu1VxiDyJmKVcmJPGWk%2Fgc3Pov02StyYDahwmzw3E1gYC9wkupyWfDqDSUMpCTH5e5N8B%2F%2FlHiMuIkTNw4USHrJU67bjXGqNav6PBuQSoqTxc8avHoGmvqNtXzIaoyMIQIiiUHIM64cXieouplhNYln7qgc4wBVAYR104kO%2BCvKqsg4yIUlFNThVUAKZxZt1XA34h3TCUUiXVkZ0w8Hh2R0Z5L0b4LZvPd%2Fp1gi%2F07h8qfwHrByuSxglc9cI4QIg2oqvC%2Fqm0i7tjPLTgDhoWTAKDO2ONW5oe%2B%2FeKB9vZB8K6C25yCZ9RFVMnb6NRdRjyVK57CHHSkJBfnM2%2Fj4ODUwRkqrtBBCrDsDpt8jhZdXoy%2F1BCqw3sSGhgGGy0a5Jw6BP%2FTExoCmNFYjZl248A0osgPyGEmRA%2BfAsqPVaNAfytu0vuQJ7rk3J4kTDTR2AlCHJ5cls26opZM4w3jMULh2YXKpcqGBtuleAlOZnaZGbD6DHzMd6i2oFeJ8z9XYmalg1Szd%2FocZDc1C7Y6vcALJz2lYnTXiWEr2wawtoR4g3jvWUU2Ngjd1cewtFzEvM1NiHZPeLlIXFbBPawxNgMwwAlyNSuGF3zizVeOoC9bag1qRAQKQE%2FEZBWC2J8mnXAN2aTBboZ7HewnObE8CwROudZHmUM5oZ%2FUgd%2FJZQK8lvAm43uDRAbyW8gZ%2BZGq0EVerVGUKUSm%2FIdn8AQHdR4m7bue88WBwft9mSCeMOt1ncBwziOmJYI2ZR7ewNMPiCugmSsE4EyQ%2BQATJG6qORMGd4snEzc6B4shPIo4G1T7PgSm8PY5eUkPdF8JZ0VBtadbHXoJgnEhZQaODPj2gpODKJY5Yp4DOsLBFxWbvXN755KWylJm%2BoOd4zEL9Hpubuy2gyyfxh8oEfFutnYWdfB8PdESLWYvSqbElP9qo3u6KTmkhoacDauMNNjj0oy40DFV7Ql0aZj77xfGl7TJNHnIwgqOkenruYYNo6h724%2BzUQ7%2BvkCpZB%2BpGA562hYQiDxHVWOq0oDQl%2FQsoiY%2BcuI7iWq%2FZIBtHcXJ7kks%2Bh2fCNUPA82BzjnqktNts%2BRLdk1VSu%2BtqEn7QZCCsvEqk6FkfiOYkrsw092J8jsfIuEKypNjLxrKA9kiA19mxBD2suxQKCzwXGws7kEJvlhUiV9tArLIdZW0IORcxEzdzKmjtFhsjKy%2F44XYXdI5noQoRcvjZ1RMPACRqYg2V1%2BOwOepcOknRLLFdYgTkT5UApt%2FJhLM3jeFYprZV%2BZow2g8fP%2BU68hkKFWJj2yBbKqsrp25xkZX1DAjUw52IMYWaOhab8Kp05VrdNftqwRrymWF4OQSjbdfzmRZirK8FMJELEgER2PHjEAN9pGfLhCUiTJFbd5LBkOBMaxLr%2FA1SY9dXFz4RjzoU9ExfJCmx%2FI9FKEGT3n2cmzl2X42L3Jh%2BAbQq6sA%2BSs1kitoa4TAYgKHaoybHUDJ51oETdeI%2F9ThSmjWGkyLi5QAGWhL0BG1UsTyRGRJOldKBrYJeB8ljLJHfATWTEQBXBDnQexOHTB%2BUn44zExFE4vLytcu5NwpWrUxO%2F0ZICUGM7hGABXym0V6ZvDST0E370St9MIWQOTWngeoQHUTdCJUP04spMBMS8LSker9cReVQkULFDIZDFPrhTzBl6sed9wcZQTbL%2BBDqMyaN3RJPh%2Fanbx%2BIv%2BqgQdAa3M9Z5JmvYlh4qop%2BHo1F1W5gbOE9YKLgAnWytXElU4G8GtW47lhgFE6gaSs%2Bgs37sFvi0PPVvA5dnCBgILTwoKd%2F%2BDoL9F6inlM7H4rOTzD79KJgKlZO%2FZgt22UsKhrAaXU5ZcLrAglTVKJEmNJvORGN1vqrcfSMizfpsgbIe9zno%2BgBoKVXgIL%2FVI8dB1O5o%2FR3Suez%2FgD7M781ShjKpIIORM%2FnxG%2BjjhhgPwsn2IoXsPGPqYHXA63zJ07M2GPEykQwJBYLK808qYxuIew4frk52nhCsnCYmXiR6CuapvE1IwRB4%2FQftDbEn%2BAucIr1oxrLabRj9q4ae0%2BfXkHnteAJwXRbVkR0mctVSwEbqhJiMSZUp9DNbEDMmjX22m3ABpkrPQQTP3S1sib5pD2VRKRd%2BeNAjLYyT0hGrdjWJZy24OYXRoWQAIhGBZRxuBFMjjZQhpgrWo8SiFYbojcHO8V5DyscJpLTHyx9Fimassyo5U6WNtquUMYgccaHY5amgR3PQzq3ToNM5ABnoB9kuxsebqmYZm0R9qxJbFXCQ1UPyFIbxoUraTJFDpCk0Wk9GaYJKz%2F6oHwEP0Q14lMtlddQsOAU9zlYdMVHiT7RQP3XCmWYDcHCGbVRHGnHuwzScA0BaSBOGkz3lM8CArjrBsyEoV6Ys4qgDK3ykQQPZ3hCRGNXQTNNXbEb6tDiTDLKOyMzRhCFT%2BmAUmiYbV3YQVqFVp9dorv%2BTsLeCykS2b5yyu8AV7IS9cxcL8z4Kfwp%2BxJyYLv1OsxQCZwTB4a8BZ%2F5EdxTBJthApqyfd9u3ifr%2FWILTqq5VqgwMT9SOxbSGWLQJUUWCVi4k9tho9nEsbUh7U6NUsLmkYFXOhZ0kmamaJLRNJzSj%2Fqn4Mso6zb6iLLBXoaZ6AqeWCjHQm2lztnejYYM2eubnpBdKVLORZhudH3JF1waBJKA9%2BW8EhMj3Kzf0L4vi4k6RoHh3Z5YgmSZmk6ns4fjScjAoL8GoOECgqgYEBYUGFVO4FUv4%2FYtowhEmTs0vrvlD%2FCrisnoBNDAcUi%2FteY7OctFlmARQzjOItrrlKuPO6E2Ox93L4O%2F4DcgV%2FdZ7qR3VBwVQxP1GCieA4RIpweYJ5FoYrHxqRBdJjnqbsikA2Ictbb8vE1GYIo9dacK0REgDX4smy6GAkxlH1yCGGsk%2BtgiDhNKuKu3yNrMdxafmKTF632F8Vx4BNK57GvlFisrkjN9WDAtjsWA0ENT2e2nETUb%2Fn7qwhvGnrHuf5bX6Vh%2Fn3xffU3PeHdR%2BFA92i6ufT3AlyAREoNDh6chiMWTvjKjHDeRhOa9YkOQRq1vQXEMppAQVwHCuIcV2g5rBn6GmZZpTR7vnSD6ZmhdSl176gqKTXu5E%2BYbfL0adwNtHP7dT7t7b46DVZIkzaRJOM%2BS6KcrzYVg%2BT3wSRFRQashjfU18NutrKa%2F7PXbtuJvpIjbgPeqd%2BpjmRw6YKpnANFSQcpzTZgpSNJ6J7uiagAbir%2F8tNXJ%2FOsOnRh6iuIexxrmkIneAgz8QoLmiaJ8sLQrELVK2yn3wOHp57BAZJhDZjTBzyoRAuuZ4eoxHruY1pSb7qq79cIeAdOwin4GdgMeIMHeG%2BFZWYaiUQQyC5b50zKjYw97dFjAeY2I4Bnl105Iku1y0lMA1ZHolLx19uZnRdILcXKlZGQx%2FGdEqSsMRU1BIrFqRcV1qQOOHyxOLXEGcbRtAEsuAC2V4K3p5mFJ22IDWaEkk9ttf5Izb2LkD1MnrSwztXmmD%2FQi%2FEmVEFBfiKGmftsPwVaIoZanlKndMZsIBOskFYpDOq3QUs9aSbAAtL5Dbokus2G4%2FasthNMK5UQKCOhU97oaOYNGsTah%2BjfCKsZnTRn5TbhFX8ghg8CBYt%2FBjeYYYUrtUZ5jVij%2Fop7V5SsbA4mYTOwZ46hqdpbB6Qvq3AS2HHNkC15pTDIcDNGsMPXaBidXYPHc6PJAkRh29Vx8KcgX46LoUQBhRM%2B3SW6Opll%2FwgxxsPgKJKzr5QCmwkUxNbeg6Wj34SUnEzOemSuvS2OetRCO8Tyy%2BQbSKVJcqkia%2BGvDefFwMOmgnD7h81TUtMn%2BmRpyJJ349HhAnoWFTejhpYTL9G8N2nVg1qkXBeoS9Nw2fB27t7trm7d%2FQK7Cr4uoCeOQ7%2F8JfKT77KiDzLImESHw%2F0wf73QeHu74hxv7uihi4fTX%2BXEwAyQG3264dwv17aJ5N335Vt9sdrAXhPOAv8JFvzqyYXwfx8WYJaef1gMl98JRFyl5Mv5Uo%2FoVH5ww5OzLFsiTPDns7fS6EURSSWd%2F92BxMYQ8sBaH%2Bj%2BwthQPdVgDGpTfi%2BJQIWMD8xKqULliRH01rTeyF8x8q%2FGBEEEBrAJMPf25UQwi0b8tmqRXY7kIvNkzrkvRWLnxoGYEJsz8u4oOyMp8cHyaybb1HdMCaLApUE%2B%2F7xLIZGP6H9xuSEXp1zLIdjk5nBaMuV%2FyTDRRP8Y2ww5RO6d2D94o%2B6ucWIqUAvgHIHXhZsmDhjVLczmZ3ca0Cb3PpKwt2UtHVQ0BgFJsqqTsnzZPlKahRUkEu4qmkJt%2Bkqdae76ViWe3STan69yaF9%2BfESD2lcQshLHWVu4ovItXxO69bqC5p1nZLvI8NdQB9s9UNaJGlQ5mG947ipdDA0eTIw%2FA1zEdjWquIsQXXGIVEH0thC5M%2BW9pZe7IhAVnPJkYCCXN5a32HjN6nsvokEqRS44tGIs7s2LVTvcrHAF%2BRVmI8L4HUYk4x%2B67AxSMJKqCg8zrGOgvK9kNMdDrNiUtSWuHFpC8%2Fp5qIQrEo%2FH%2B1l%2F0cAwQ2nKmpWxKcMIuHY44Y6DlkpO48tRuUGBWT0FyHwSKO72Ud%2BtJUfdaZ4CWNijzZtlRa8%2BCkmO%2FEwHYfPZFU%2FhzjFWH7vnzHRMo%2BaF9u8qHSAiEkA2HjoNQPEwHsDKOt6hOoK3Ce%2F%2B%2F9boMWDa44I6FrQhdgS7OnNaSzwxWKZMcyHi6LN4WC6sSj0qm2PSOGBTvDs%2FGWJS6SwEN%2FULwpb4LQo9fYjUfSXRwZkynUazlSpvX9e%2BG2zor8l%2BYaMxSEomDdLHGcD6YVQPegTaA74H8%2BV4WvJkFUrjMLGLlvSZQWvi8%2FQA7yzQ8GPno%2F%2F5SJHRP%2FOqKObPCo81s%2F%2B6WgLqykYpGAgQZhVDEBPXWgU%2FWzFZjKUhSFInufPRiMAUULC6T11yL45ZrRoB4DzOyJShKXaAJIBS9wzLYIoCEcJKQW8GVCx4fihqJ6mshBUXSw3wWVj3grrHQlGNGhIDNNzsxQ3M%2BGWn6ASobIWC%2BLbYOC6UpahVO13Zs2zOzZC8z7FmA05JhUGyBsF4tsG0drcggIFzgg%2Fkpf3%2BCnAXKiMgIE8Jk%2FMhpkc8DUJEUzDSnWlQFme3d0sHZDrg7LavtsEX3cHwjCYA17pMTfx8Ajw9hHscN67hyo%2BRJQ4458RmPywXykkVcW688oVUrQhahpPRvTWPnuI0B%2BSkQu7dCyvLRyFYlC1LG1gRCIvn3rwQeINzZQC2KXq31FaR9UmVV2QeGVqBHjmE%2BVMd3b1fhCynD0pQNhCG6%2FWCDbKPyE7NRQzL3BzQAJ0g09aUzcQA6mUp9iZFK6Sbp%2FYbHjo%2B%2B7%2FWj8S4YNa%2BZdqAw1hDrKWFXv9%2BzaXpf8ZTDSbiqsxnwN%2FCzK5tPkOr4tRh2kY3Bn9JtalbIOI4b3F7F1vPQMfoDcdxMS8CW9m%2FNCW%2FHILTUVWQIPiD0j1A6bo8vsv6P1hCESl2abrSJWDrq5sSzUpwoxaCU9FtJyYH4QFMxDBpkkBR6kn0LMPO%2B5EJ7Z6bCiRoPedRZ%2FP0SSdii7ZnPAtVwwHUidcdyspwncz5uq6vvm4IEDbJVLUFCn%2FLvIHfooUBTkFO130FC7CmmcrKdgDJcid9mvVzsDSibOoXtIf9k6ABle3PmIxejodc4aob0QKS432srrCMndbfD454q52V01G4q913mC5HOsTzWF4h2No1av1VbcUgWAqyoZl%2B11PoFYnNv2HwAODeNRkHj%2B8SF1fcvVBu6MrehHAZK1Gm69ICcTKizykHgGFx7QdowTVAsYEF2tVc0Z6wLryz2FI1sc5By2znJAAmINndoJiB4sfPdPrTC8RnkW7KRCwxC6YvXg5ahMlQuMpoCSXjOlBy0Kij%2BbsCYPbGp8BdCBiLmLSAkEQRaieWo1SYvZIKJGj9Ur%2FeWHjiB7SOVdqMAVmpBvfRiebsFjger7DC%2B8kRFGtNrTrnnGD2GAJb8rQCWkUPYHhwXsjNBSkE6lGWUj5QNhK0DMNM2l%2BkXRZ0KLZaGsFSIdQz%2FHXDxf3%2FTE30%2BDgBKWGWdxElyLccJfEpjsnszECNoDGZpdwdRgCixeg9L4EPhH%2BRptvRMVRaahu4cySjS3P5wxAUCPkmn%2BrhyASpmiTaiDeggaIxYBmtLZDDhiWIJaBgzfCsAGUF1Q1SFZYyXDt9skCaxJsxK2Ms65dmdp5WAZyxik%2FzbrTQk5KmgxCg%2Ff45L0jywebOWUYFJQAJia7XzCV0x89rpp%2Ff3AVWhSPyTanqmik2SkD8A3Ml4NhIGLAjBXtPShwKYfi2eXtrDuKLk4QlSyTw1ftXgwqA2jUuopDl%2B5tfUWZNwBpEPXghzbBggYCw%2Fdhy0ntds2yeHCDKkF%2FYxQjNIL%2FF%2F37jLPHCKBO9ibwYCmuxImIo0ijV2Wbg3kSN2psoe8IsABv3RNFaF9uMyCtCYtqcD%2BqNOhwMlfARQUdJ2tUX%2BMNJqOwIciWalZsmEjt07tfa8ma4cji9sqz%2BQ9hWfmMoKEbIHPOQORbhQRHIsrTYlnVTNvcq1imqmmPDdVDkJgRcTgB8Sb6epCQVmFZe%2BjGDiNJQLWnfx%2BdrTKYjm0G8yH0ZAGMWzEJhUEQ4Maimgf%2Fbkvo8PLVBsZl152y5S8%2BHRDfZIMCbYZ1WDp4yrdchOJw8k6R%2B%2F2pHmydK4NIK2PHdFPHtoLmHxRDwLFb7eB%2BM4zNZcB9NrAgjVyzLM7xyYSY13ykWfIEEd2n5%2FiYp3ZdrCf7fL%2Ben%2BsIJu2W7E30MrAgZBD1rAAbZHPgeAMtKCg3NpSpYQUDWJu9bT3V7tOKv%2BNRiJc8JAKqqgCA%2FPNRBR7ChpiEulyQApMK1AyqcWnpSOmYh6yLiWkGJ2mklCSPIqN7UypWj3dGi5MvsHQ87MrB4VFgypJaFriaHivwcHIpmyi5LhNqtem4q0n8awM19Qk8BOS0EsqGscuuydYsIGsbT5GHnERUiMpKJl4ON7qjB4fEqlGN%2FhCky89232UQCiaeWpDYCJINXjT6xl4Gc7DxRCtgV0i1ma4RgWLsNtnEBRQFqZggCLiuyEydmFd7WlogpkCw5G1x4ft2psm3KAREwVwr1Gzl6RT7FDAqpVal34ewVm3VH4qn5mjGj%2BbYL1NgfLNeXDwtmYSpwzbruDKpTjOdgiIHDVQSb5%2FzBgSMbHLkxWWgghIh9QTFSDILixVwg0Eg1puooBiHAt7DzwJ7m8i8%2Fi%2BjHvKf0QDnnHVkVTIqMvIQImOrzCJwhSR7qYB5gSwL6aWL9hERHCZc4G2%2BJrpgHNB8eCCmcIWIQ6rSdyPCyftXkDlErUkHafHRlkOIjxGbAktz75bnh50dU7YHk%2BMz7wwstg6RFZb%2BTZuSOx1qqP5C66c0mptQmzIC2dlpte7vZrauAMm%2F7RfBYkGtXWGiaWTtwvAQiq2oD4YixPLXE2khB2FRaNRDTk%2B9sZ6K74Ia9VntCpN4BhJGJMT4Z5c5FhSepRCRWmBXqx%2BwhVZC4me4saDs2iNqXMuCl6iAZflH8fscC1sTsy4PHeC%2BXYuqMBMUun5YezKbRKmEPwuK%2BCLzijPEQgfhahQswBBLfg%2FGBgBiI4QwAqzJkkyYAWtjzSg2ILgMAgqxYfwERRo3zruBL9WOryUArSD8sQOcD7fvIODJxKFS615KFPsb68USBEPPj1orNzFY2xoTtNBVTyzBhPbhFH0PI5AtlJBl2aSgNPYzxYLw7XTDBDinmVoENwiGzmngrMo8OmnRP0Z0i0Zrln9DDFcnmOoBZjABaQIbPOJYZGqX%2BRCMlDDbElcjaROLDoualmUIQ88Kekk3iM4OQrADcxi3rJguS4MOIBIgKgXrjd1WkbCdqxJk%2F4efRIFsavZA7KvvJQqp3Iid5Z0NFc5aiMRzGN3vrpBzaMy4JYde3wr96PjN90AYOIbyp6T4zj8LoE66OGcX1Ef4Z3KoWLAUF4BTg7ug%2FAbkG5UNQXAMkQezujSHeir2uTThgd3gpyzDrbnEdDRH2W7U6PeRvBX1ZFMP5RM%2BZu6UUZZD8hDPHldVWntTCNk7To8IeOW9yn2wx0gmurwqC60AOde4r3ETi5pVMSDK8wxhoGAoEX9NLWHIR33VbrbMveii2jAJlrxwytTHbWNu8Y4N8vCCyZjAX%2FpcsfwXbLze2%2BD%2Bu33OGBoJyAAL3jn3RuEcdp5If8O%2Ba4NKWvxOTyDltG0IWoHhwVGe7dKkCWFT%2B%2Btm%2BhaBCikRUUMrMhYKZJKYoVuv%2FbsJzO8DwfVIInQq3g3BYypiz8baogH3r3GwqCwFtZnz4xMjAVOYnyOi5HWbFA8n0qz1OjSpHWFzpQOpvkNETZBGpxN8ybhtqV%2FDMUxd9uFZmBfKXMCn%2FSqkWJyKPnT6lq%2B4zBZni6fYRByJn6OK%2BOgPBGRAJluwGSk4wxjOOzyce%2FPKODwRlsgrVkdcsEiYrqYdXo0Er2GXi2GQZd0tNJT6c9pK1EEJG1zgDJBoTVuCXGAU8BKTvCO%2FcEQ1Wjk3Zzuy90JX4m3O5IlxVFhYkSUwuQB2up7jhvkm%2BbddRQu5F9s0XftGEJ9JSuSk%2BZachCbdU45fEqbugzTIUokwoAKvpUQF%2FCvLbWW5BNQFqFkJg2f30E%2F48StNe5QwBg8zz3YAJ82FZoXBxXSv4QDooDo79NixyglO9AembuBcx5Re3CwOKTHebOPhkmFC7wNaWtoBhFuV4AkEuJ0J%2B1pT0tLkvFVZaNzfhs%2FKd3%2BA9YsImlO4XK4vpCo%2FelHQi%2F9gkFg07xxnuXLt21unCIpDV%2BbbRxb7FC6nWYTsMFF8%2B1LUg4JFjVt3vqbuhHmDKbgQ4e%2BRGizRiO8ky05LQGMdL2IKLSNar0kNG7lHJMaXr5mLdG3nykgj6vB%2FKVijd1ARWkFEf3yiUw1v%2FWaQivVUpIDdSNrrKbjO5NPnxz6qTTGgYg03HgPhDrCFyYZTi3XQw3HXCva39mpLNFtz8AiEhxAJHpWX13gCTAwgm9YTvMeiqetdNQv6IU0hH0G%2BZManTqDLPjyrOse7WiiwOJCG%2BJ0pZYULhN8NILulmYYvmVcV2MjAfA39sGKqGdjpiPo86fecg65UPyXDIAOyOkCx5NQsLeD4gGVjTVDwOHWkbbBW0GeNjDkcSOn2Nq4cEssP54t9D749A7M1AIOBl0Fi0sSO5v3P7LCBrM6ZwFY6kp2FX6AcbGUdybnfChHPyu6WlRZ2Fwv9YM0RMI7kISRgR8HpQSJJOyTfXj%2F6gQKuihPtiUtlCQVPohUgzfezTg8o1b3n9pNZeco1QucaoXe40Fa5JYhqdTspFmxGtW9h5ezLFZs3j%2FN46f%2BS2rjYNC2JySXrnSAFhvAkz9a5L3pza8eYKHNoPrvBRESpxYPJdKVUxBE39nJ1chrAFpy4MMkf0qKgYALctGg1DQI1kIymyeS2AJNT4X240d3IFQb%2F0jQbaHJ2YRK8A%2Bls6WMhWmpCXYG5jqapGs5%2FeOJErxi2%2F2KWVHiPellTgh%2FfNl%2F2KYPKb7DUcAg%2BmCOPQFCiU9Mq%2FWLcU1xxC8aLePFZZlE%2BPCLzf7ey46INWRw2kcXySR9FDgByXzfxiNKwDFbUSMMhALPFSedyjEVM5442GZ4hTrsAEvZxIieSHGSgkwFh%2FnFNdrrFD4tBH4Il7fW6ur4J8Xaz7RW9jgtuPEXQsYk7gcMs2neu3zJwTyUerHKSh1iTBkj2YJh1SSOZL5pLuQbFFAvyO4k1Hxg2h99MTC6cTUkbONQIAnEfGsGkNFWRbuRyyaEZInM5pij73EA9rPIUfU4XoqQpHT9THZkW%2BoKFLvpyvTBMM69tN1Ydwv1LIEhHsC%2BueVG%2Bw%2BkyCPsvV3erRikcscHjZCkccx6VrBkBRusTDDd8847GA7p2Ucy0y0HdSRN6YIBciYa4vuXcAZbQAuSEmzw%2BH%2FAuOx%2BaH%2BtBL88H57D0MsqyiZxhOEQkF%2F8DR1d2hSPMj%2FsNOa5rxcUnBgH8ictv2J%2Bcb4BA4v3MCShdZ2vtK30vAwkobnEWh7rsSyhmos3WC93Gn9C4nnAd%2FPjMMtQfyDNZsOPd6XcAsnBE%2FmRHtHEyJMzJfZFLE9OvQa0i9kUmToJ0ZxknTgdl%2FXPV8xoh0K7wNHHsnBdvFH3sv52lU7UFteseLG%2FVanIvcwycVA7%2BBE1Ulyb20BvwUWZcMTKhaCcmY3ROpvonVMV4N7yBXTL7IDtHzQ4CCcqF66LjF3xUqgErKzolLyCG6Kb7irP%2FMVTCCwGRxfrPGpMMGvPLgJ881PHMNMIO09T5ig7AzZTX%2F5PLlwnJLDAPfuHynSGhV4tPqR3gJ4kg4c06c%2FF1AcjGytKm2Yb5jwMotF7vro4YDLWlnMIpmPg36NgAZsGA0W1spfLSue4xxat0Gdwd0lqDBOgIaMANykwwDKejt5YaNtJYIkrSgu0KjIg0pznY0SCd1qlC6R19g97UrWDoYJGlrvCE05J%2F5wkjpkre727p5PTRX5FGrSBIfJqhJE%2FIS876PaHFkx9pGTH3oaY3jJRvLX9Iy3Edoar7cFvJqyUlOhAEiOSAyYgVEGkzHdug%2BoRHIEOXAExMiTSKU9A6nmRC8mp8iYhwWdP2U%2F5EkFAdPrZw03YA3gSyNUtMZeh7dDCu8pF5x0VORCTgKp07ehy7NZqKTpIC4UJJ89lnboyAfy5OyXzXtuDRbtAFjZRSyGFTpFrXwkpjSLIQIG3N0Vj4BtzK3wdlkBJrO18MNsgseR4BysJilI0wI6ZahLhBFA0XBmV8d4LUzEcNVb0xbLjLTETYN8OEVqNxkt10W614dd1FlFFVTIgB7%2FBQQp1sWlNolpIu4ekxUTBV7NmxOFKEBmmN%2BnA7pvF78%2FRII5ZHA09OAiE%2F66MF6HQ%2BqVEJCHxwymukkNvzqHEh52dULPbVasfQMgTDyBZzx4007YiKdBuUauQOt27Gmy8ISclPmEUCIcuLbkb1mzQSqIa3iE0PJh7UMYQbkpe%2BhXjTJKdldyt2mVPwywoODGJtBV1lJTgMsuSQBlDMwhEKIfrvsxGQjHPCEfNfMAY2oxvyKcKPUbQySkKG6tj9AQyEW3Q5rpaDJ5Sns9ScLKeizPRbvWYAw4bXkrZdmB7CQopCH8NAmqbuciZChHN8lVGaDbCnmddnqO1PQ4ieMYfcSiBE5zzMz%2BJV%2F4eyzrzTEShvqSGzgWimkNxLvUj86iAwcZuIkqdB0VaIB7wncLRmzHkiUQpPBIXbDDLHBlq7vp9xwuC9AiNkIptAYlG7Biyuk8ILdynuUM1cHWJgeB%2BK3wBP%2FineogxkvBNNQ4AkW0hvpBOQGFfeptF2YTR75MexYDUy7Q%2F9uocGsx41O4IZhViw%2F2FvAEuGO5g2kyXBUijAggWM08bRhXg5ijgMwDJy40QeY%2FcQpUDZiIzmvskQpO5G1zyGZA8WByjIQU4jRoFJt56behxtHUUE%2Fom7Rj2psYXGmq3llVOCgGYKNMo4pzwntITtapDqjvQtqpjaJwjHmDzSVGLxMt12gEXAdLi%2FcaHSM3FPRGRf7dB7YC%2BcD2ho6oL2zGDCkjlf%2FDFoQVl8GS%2F56wur3rdV6ggtzZW60MRB3g%2BU1W8o8cvqIpMkctiGVMzXUFI7FacFLrgtdz4mTEr4aRAaQ2AFQaNeG7GX0yOJgMRYFziXdJf24kg%2FgBQIZMG%2FYcPEllRTVNoDYR6oSJ8wQNLuihfw81UpiKPm714bZX1KYjcXJdfclCUOOpvTxr9AAJevTY4HK%2FG7F3mUc3GOAKqh60zM0v34v%2BELyhJZqhkaMA8UMMOU90f8RKEJFj7EqepBVwsRiLbwMo1J2zrE2UYJnsgIAscDmjPjnzI8a719Wxp757wqmSJBjXowhc46QN4RwKIxqEE6E5218OeK7RfcpGjWG1jD7qND%2B%2FGTk6M56Ig4yMsU6LUW1EWE%2BfIYycVV1thldSlbP6ltdC01y3KUfkobkt2q01YYMmxpKRvh1Z48uNKzP%2FIoRIZ%2FF6buOymSnW8gICitpJjKWBscSb9JJKaWkvEkqinAJ2kowKoqkqZftRqfRQlLtKoqvTRDi2vg%2FRrPD%2Fd3a09J8JhGZlEkOM6znTsoMCsuvTmywxTCDhw5dd0GJOHCMPbsj3QLkTE3MInsZsimDQ3HkvthT7U9VA4s6G07sID0FW4SHJmRGwCl%2BMu4xf0ezqeXD2PtPDnwMPo86sbwDV%2B9PWcgFcARUVYm3hrFQrHcgMElFGbSM2A1zUYA3baWfheJp2AINmTJLuoyYD%2FOwA4a6V0ChBN97E8YtDBerUECv0u0TlxR5yhJCXvJxgyM73Bb6pyq0jTFJDZ4p1Am1SA6sh8nADd1hAcGBMfq4d%2FUfwnmBqe0Jun1n1LzrgKuZMAnxA3NtCN7Klf4BH%2B14B7ibBmgt0TGUafVzI4uKlpF7v8NmgNjg90D6QE3tbx8AjSAC%2BOA1YJvclyPKgT27QpIEgVYpbPYGBsnyCNrGz9XUsCHkW1QAHgL2STZk12QGqmvAB0NFteERkvBIH7INDsNW9KKaAYyDMdBEMzJiWaJHZALqDxQDWRntumSDPcplyFiI1oDpT8wbwe01AHhW6%2BvAUUBoGhY3CT2tgwehdPqU%2F4Q7ZLYvhRl%2FogOvR9O2%2BwkkPKW5vCTjD2fHRYXONCoIl4Jh1bZY0ZE1O94mMGn%2FdFSWBWzQ%2FVYk%2BGezi46RgiDv3EshoTmMSlioUK6MQEN8qeyK6FRninyX8ZPeUWjjbMJChn0n%2FyJvrq5bh5UcCAcBYSafTFg7p0jDgrXo2QWLb3WpSOET%2FHh4oSadBTvyDo10IufLzxiMLAnbZ1vcUmj3w7BQuIXjEZXifwukVxrGa9j%2BDXfpi12m1RbzYLg9J2wFergEwOxFyD0%2FJstNK06ZN2XdZSGWxcJODpQHOq4iKqjqkJUmPu1VczL5xTGUfCgLEYyNBCCbMBFT%2FcUP6pE%2FmujnHsSDeWxMbhrNilS5MyYR0nJyzanWXBeVcEQrRIhQeJA6Xt4f2eQESNeLwmC10WJVHqwx8SSyrtAAjpGjidcj1E2FYN0LObUcFQhafUKTiGmHWRHGsFCB%2BHEXgrzJEB5bp0QiF8ZHh11nFX8AboTD0PS4O1LqF8XBks2MpjsQnwKHF6HgaKCVLJtcr0XjqFMRGfKv8tmmykhLRzu%2BvqQ02%2BKpJBjaLt9ye1Ab%2BBbEBhy4EVdIJDrL2naV0o4wU8YZ2Lq04FG1mWCKC%2BUwkXOoAjneU%2FxHplMQo2cXUlrVNqJYczgYlaOEczVCs%2FOCgkyvLmTmdaBJc1iBLuKwmr6qtRnhowngsDxhzKFAi02tf8bmET8BO27ovJKF1plJwm3b0JpMh38%2BxsrXXg7U74QUM8ZCIMOpXujHntKdaRtsgyEZl5MClMVMMMZkZLNxH9%2Bb8fH6%2Bb8Lev30A9TuEVj9CqAdmwAAHBPbfOBFEATAPZ2CS0OH1Pj%2F0Q7PFUcC8hDrxESWdfgFRm%2B7vvWbkEppHB4T%2F1ApWnlTIqQwjcPl0VgS1yHSmD0OdsCVST8CQVwuiew1Y%2Bg3QGFjNMzwRB2DSsAk26cmA8lp2wIU4p93AUBiUHFGOxOajAqD7Gm6NezNDjYzwLOaSXRBYcWipTSONHjUDXCY4mMI8XoVCR%2FRrs%2FJLKXgEx%2BqkmeDlFOD1%2FyTQNDClRuiUyKYCllfMiQiyFkmuTz2vLsBNyRW%2Bxz%2B5FElFxWB28VjYIGZ0Yd%2B5wIjkcoMaggxswbT0pCmckRAErbRlIlcOGdBo4djTNO8FAgQ%2BlT6vPS60BwTRSUAM3ddkEAZiwtEyArrkiDRnS7LJ%2B2hwbzd2YDQagSgACpsovmjil5wfPuXq3GuH0CyE7FK3M4FgRaFoIkaodORrPx1%2BJpI9psyNYIFuJogZa0%2F1AhOWdlHQxdAgbwacsHqPZo8u%2FngAH2GmaTdhYnBfSDbBfh8CHq6Bx5bttP2%2BRdM%2BMAaYaZ0Y%2FADkbNCZuAyAVQa2OcXOeICmDn9Q%2FeFkDeFQg5MgHEDXq%2FtVjj%2Bjtd26nhaaolWxs1ixSUgOBwrDhRIGOLyOVk2%2FBc0UxvseQCO2pQ2i%2BKrfhu%2FWeBovNb5dJxQtJRUDv2mCwYVpNl2efQM9xQHnK0JwLYt%2FU0Wf%2BphiA4uw8G91slC832pmOTCAoZXohg1fewCZqLBhkOUBofBWpMPsqg7XEXgPfAlDo2U5WXjtFdS87PIqClCK5nW6adCeXPkUiTGx0emOIDQqw1yFYGHEVx20xKjJVYe0O8iLmnQr3FA9nSIQilUKtJ4ZAdcTm7%2BExseJauyqo30hs%2B1qSW211A1SFAOUgDlCGq7eTIcMAeyZkV1SQJ4j%2Fe1Smbq4HcjqgFbLAGLyKxlMDMgZavK5NAYH19Olz3la%2FQCTiVelFnU6O%2FGCvykqS%2FwZJDhKN9gBtSOp%2F1SP5VRgJcoVj%2Bkmf2wBgv4gjrgARBWiURYx8xENV3bEVUAAWWD3dYDKAIWk5opaCFCMR5ZjJExiCAw7gYiSZ2rkyTce4eNMY3lfGn%2B8p6%2BvBckGlKEXnA6Eota69OxDO9oOsJoy28BXOR0UoXNRaJD5ceKdlWMJlOFzDdZNpc05tkMGQtqeNF2lttZqNco1VtwXgRstLSQ6tSPChgqtGV5h2DcDReIQadaNRR6AsAYKL5gSFsCJMgfsaZ7DpKh8mg8Wz8V7H%2BgDnLuMxaWEIUPevIbClgap4dqmVWSrPgVYCzAoZHIa5z2Ocx1D%2FGvDOEqMOKLrMefWIbSWHZ6jbgA8qVBhYNHpx0P%2BjAgN5TB3haSifDcApp6yymEi6Ij%2FGsEpDYUgcHATJUYDUAmC1SCkJ4cuZXSAP2DEpQsGUjQmKJfJOvlC2x%2FpChkOyLW7KEoMYc5FDC4v2FGqSoRWiLsbPCiyg1U5yiHZVm1XLkHMMZL11%2Fyxyw0UnGig3MFdZklN5FI%2FqiT65T%2BjOXOdO7XbgWurOAZR6Cv9uu1cm5LjkXX4xi6mWn5r5NjBS0gTliHhMZI2WNqSiSphEtiCAwnafS11JhseDGHYQ5%2BbqWiAYiAv6Jsf79%2FVUs4cIl%2Bn6%2BWOjcgB%2F2l5TreoAV2717JzZbQIR0W1cl%2FdEqCy5kJ3ZSIHuU0vBoHooEpiHeQWVkkkOqRX27eD1FWw4BfO9CJDdKoSogQi3hAAwsPRFrN5RbX7bqLdBJ9JYMohWrgJKHSjVl1sy2xAG0E3sNyO0oCbSGOxCNBRRXTXenYKuwAoDLfnDcQaCwehUOIDiHAu5m5hMpKeKM4sIo3vxACakIxKoH2YWF2QM84e6F5C5hJU4g8uxuFOlAYnqtwxmHyNEawLW%2FPhoawJDrGAP0JYWHgAVUByo%2FbGdiv2T2EMg8gsS14%2FrAdzlOYazFE7w4OzxeKiWdm3nSOnQRRKXSlVo8HEAbBfyJMKqoq%2BSCcTSx5NDtbFwNlh8VhjGGDu7JG5%2FTAGAvniQSSUog0pNzTim8Owc6QTuSKSTXlQqwV3eiEnklS3LeSXYPXGK2VgeZBqNcHG6tZHvA3vTINhV0ELuQdp3t1y9%2BogD8Kk%2FW7QoRN1UWPqM4%2BxdygkFDPLoTaumKReKiLWoPHOfY54m3qPx4c%2B4pgY3MRKKbljG8w4wvz8pxk3AqKsy4GMAkAtmRjRMsCxbb4Q2Ds0Ia9ci8cMT6DmsJG00XaHCIS%2Bo3F8YVVeikw13w%2BOEDaCYYhC0ZE54kA4jpjruBr5STWeqQG6M74HHL6TZ3lXrd99ZX%2B%2B7LhNatQaZosuxEf5yRA15S9gPeHskBIq3Gcw81AGb9%2FO53DYi%2F5CsQ51EmEh8Rkg4vOciClpy4d04eYsfr6fyQkBmtD%2BP8sNh6e%2BXYHJXT%2FlkXxT4KXU5F2sGxYyzfniMMQkb9OjDN2C8tRRgTyL7GwozH14PrEUZc6oz05Emne3Ts5EG7WolDmU8OB1LDG3VrpQxp%2BpT0KYV5dGtknU64JhabdqcVQbGZiAxQAnvN1u70y1AnmvOSPgLI6uB4AuDGhmAu3ATkJSw7OtS%2F2ToPjqkaq62%2F7WFG8advGlRRqxB9diP07JrXowKR9tpRa%2BjGJ91zxNTT1h8I2PcSfoUPtd7NejVoH03EUcqSBuFZPkMZhegHyo2ZAITovmm3zAIdGFWxoNNORiMRShgwdYwFzkPw5PA4a5MIIQpmq%2Bnsp3YMuXt%2FGkXxLx%2FP6%2BZJS0lFyz4MunC3eWSGE8xlCQrKvhKUPXr0hjpAN9ZK4PfEDrPMfMbGNWcHDzjA7ngMxTPnT7GMHar%2BgMQQ3NwHCv4zH4BIMYvzsdiERi6gebRmerTsVwZJTRsL8dkZgxgRxmpbgRcud%2BYlCIRpPwHShlUSwuipZnx9QCsEWziVazdDeKSYU5CF7UVPAhLer3CgJOQXl%2Fzh575R5rsrmRnKAzq4POFdgbYBuEviM4%2BLVC15ssLNFghbTtHWerS1hDt5s4qkLUha%2FqpZXhWh1C6lTQAqCNQnaDjS7UGFBC6wTu8yFnKJnExCnAs3Ok9yj5KpfZESQ4lTy5pTGTnkAUpxI%2ByjEldJfSo4y0QhG4i4IwkRFGcjWY8%2BEzgYYJUK7BXQksLxAww%2FYYWBMhJILB9e8ePEJ4OP7z%2B4%2FwOQDl64iOYDp26DaONPxpKtBxq%2FaTzRGarm3VkPYTLJKx6Z%2FMw2YbBGseJhPMwhhNswrIkyvV2BYzrvZbxLpKwcWJhYmFtVZ%2BlPEq91FzVp1HlQY1bZVLqeNR9SAUn6n0E28k%2FUuGkNpP1DBI5ch%2FEehZfjUQ9aE41NhETExoPT2gGQz0IhWJbEOvTQ4wgcXCHHFBhewYUiFHuhRSAUVmEHeCRQHQkXGFwkAgyzREJCVN7TRnTon36Zw3tPhx4EALwNdwDv%2BJ41YSP4B2CQqz0EFgARZ4ESgBHQgROwAVn9GTI%2BHYexTUevLUeta4%2FDqKrbMVS%2BYqb8hUwYCrlgKtmAq1YCrFgKrd4qpXiqZcKn1oqdWipjYKpWwVPVYqW6xUpVipKqFR3QKjagVEtAqHpxUMTitsnFaJOKx2cVhswq35RVpyiq9lFVNIKnOQVMkgqtYxVNxiqQjFS7GKlSIVIsQqPIhUWwioigFQ%2B%2BKkN8VHr49HDw9Ebo9EDo9DTo9Crg9BDg9%2FWx7gWx7YWwlobYrOGxWPNisAaAHEyALpkAVDIAeWAArsABVXACYuAD5cAF6wAKFQAQqgAbVAAsoAAlQAUaYAfkwAvogBWQACOgAD9AAHSAAKT4GUdMiOvFngBTwCn2AZ7Dv6B6k%2F90B8%2ByRnkV144AIBoAMTQATGgAjNAA4YABgwABZgB%2FmQCwyAVlwCguASlwCEuAQFwB4uAMlwBYuAJlQAUVAAhUD2KgdpUDaJgaRMDFJgX5MC1JgWJEAokQCWRAHxEAWkQBMRADpEAMkQAYROAEecC484DRpwBDTnwNOdw05tjTmiNOYwtswhYFwLA7BYG4LA2BYGOLAwRYFuLAsxYFQJAohIEyJAMwkAwiQC0JAJgkAeiQBkJAFokAPCQA0JABwcD4Dgc4cDdDgaYcDIDgYgUC6CgWgUClCgUYUAVBQBOFAEYMALgwAgDA9QYAdIn8AZzeBB2L5EcWrenUT1KXienEsuJJ7x5U8XlTjc1NVzUyXFTGb1LlpUtWlTDIjqwE4LsagowoCi2gJLKAkpoBgJQNpAIhNqaEoneI6kiiqQ6Go%2Fn6j0cS%2Ba2gEU8gIHJ%2BBwfgZX4GL%2BBd%2FgW34FZ%2BBS%2FgUH4FN6BTegTvoEv6BJegRnYEF2A79gOvYDl2BdEjCkqkGtwXp0LNToIskOTXzh%2FF062yJ7AAAAEDAWAAABWhJ%2BKPEIJgBFxMVP7w2QJBGHASQnOBKXKFIdUK4igKA9IEaYJg%29%3Bsrc%3Aurl%28data%3Aapplication%2Fvnd%2Ems%2Dfontobject%3Bbase64%2Cn04AAEFNAAACAAIABAAAAAAABQAAAAAAAAABAJABAAAEAExQAAAAAAAAAAIAAAAAAAAAAAEAAAAAAAAAJxJ%2FLAAAAAAAAAAAAAAAAAAAAAAAACgARwBMAFkAUABIAEkAQwBPAE4AUwAgAEgAYQBsAGYAbABpAG4AZwBzAAAADgBSAGUAZwB1AGwAYQByAAAAeABWAGUAcgBzAGkAbwBuACAAMQAuADAAMAA5ADsAUABTACAAMAAwADEALgAwADAAOQA7AGgAbwB0AGMAbwBuAHYAIAAxAC4AMAAuADcAMAA7AG0AYQBrAGUAbwB0AGYALgBsAGkAYgAyAC4ANQAuADUAOAAzADIAOQAAADgARwBMAFkAUABIAEkAQwBPAE4AUwAgAEgAYQBsAGYAbABpAG4AZwBzACAAUgBlAGcAdQBsAGEAcgAAAAAAQlNHUAAAAAAAAAAAAAAAAAAAAAADAKncAE0TAE0ZAEbuFM3pjM%2FSEdmjKHUbyow8ATBE40IvWA3vTu8LiABDQ%2BpexwUMcm1SMnNryctQSiI1K5ZnbOlXKmnVV5YvRe6RnNMFNCOs1KNVpn6yZhCJkRtVRNzEufeIq7HgSrcx4S8h%2Fv4vnrrKc6oCNxmSk2uKlZQHBii6iKFoH0746ThvkO1kJHlxjrkxs%2BLWORaDQBEtiYJIR5IB9Bi1UyL4Rmr0BNigNkMzlKQmnofBHviqVzUxwdMb3NdCn69hy%2BpRYVKGVS%2F1tnsqv4LL7wCCPZZAZPT4aCShHjHJVNuXbmMrY5LeQaGnvAkXlVrJgKRAUdFjrWEah9XebPeQMj7KS7DIBAFt8ycgC5PLGUOHSE3ErGZCiViNLL5ZARfywnCoZaKQCu6NuFX42AEeKtKUGnr%2FCm2Cy8tpFhBPMW5Fxi4Qm4TkDWh4IWFDClhU2hRWosUWqcKLlgyXB%2BlSHaWaHiWlBAR8SeSgSPCQxdVQgzUixWKSTrIQEbU94viDctkvX%2BVSjJuUmV8L4CXShI11esnp0pjWNZIyxKHS4wVQ2ime1P4RnhvGw0aDN1OLAXGERsB7buFpFGGBAre4QEQR0HOIO5oYH305G%2BKspT%2FFupEGGafCCwxSe6ZUa%2B073rXHnNdVXE6eWvibUS27XtRzkH838mYLMBmYysZTM0EM3A1fbpCBYFccN1B%2FEnCYu%2FTgCGmr7bMh8GfYL%2BBfcLvB0gRagC09w9elfldaIy%2FhNCBLRgBgtCC7jAF63wLSMAfbfAlEggYU0bUA7ACCJmTDpEmJtI78w4%2FBO7dN7JR7J7ZvbYaUbaILSQsRBiF3HGk5fEg6p9unwLvn98r%2BvnsV%2B372uf1xBLq4qU%2F45fTuqaAP%2BpssmCCCTF0mhEow8ZXZOS8D7Q85JsxZ%2BAzok7B7O%2Ff6J8AzYBySZQB%2FQHYUSA%2BEeQhEWiS6AIQzgcsDiER4MjgMBAWDV4AgQ3g1eBgIdweCQmCjJEMkJ%2BPKRWyFHHmg1Wi%2F6xzUgA0LREoKJChwnQa9B%2B5RQZRB3IlBlkAnxyQNaANwHMowzlYSMCBgnbpzvqpl0iTJNCQidDI9ZrSYNIRBhHtUa5YHMHxyGEik9hDE0AKj72AbTCaxtHPUaKZdAZSnQTyjGqGLsmBStCejApUhg4uBMU6mATujEl%2BKdDPbI6Ag4vLr%2BhjY6lbjBeoLKnZl0UZgRX8gTySOeynZVz1wOq7e1hFGYIq%2BMhrGxDLak0PrwYzSXtcuyhXEhwOYofiW%2BEcI%2Fjw8P6IY6ed%2BetAbuqKp5QIapT77LnAe505lMuqL79a0ut4rWexzFttsOsLDy7zvtQzcq3U1qabe7tB0wHWVXji%2BzDbo8x8HyIRUbXnwUcklFv51fvTymiV%2BMXLSmGH9d9%2BaXpD5X6lao41anWGig7IwIdnoBY2ht%2FpO9mClLo4NdXHAsefqWUKlXJkbqPOFhMoR4aiA1BXqhRNbB2Xwi%2B7u%2FjpAoOpKJ0UX24EsrzMfHXViakCNcKjBxuQX8BO0ZqjJ3xXzf%2B61t2VXOSgJ8xu65QKgtN6FibPmPYsXbJRHHqbgATcSZxBqGiDiU4NNNsYBsKD0MIP%2FOfKnlk%2FLkaid%2FO2NbKeuQrwOB2Gq3YHyr6ALgzym5wIBnsdC1ZkoBFZSQXChZvlesPqvK2c5oHHT3Q65jYpNxnQcGF0EHbvYqoFw60WNlXIHQF2HQB7zD6lWjZ9rVqUKBXUT6hrkZOle0RFYII0V5ZYGl1JAP0Ud1fZZMvSomBzJ710j4Me8mjQDwEre5Uv2wQfk1ifDwb5ksuJQQ3xt423lbuQjvoIQByQrNDh1JxGFkOdlJvu%2FgFtuW0wR4cgd%2BZKesSV7QkNE2kw6AV4hoIuC02LGmTomyf8PiO6CZzOTLTPQ%2BHW06H%2Btx%2BbQ8LmDYg1pTFrp2oJXgkZTyeRJZM0C8aE2LpFrNVDuhARsN543%2FFV6klQ6Tv1OoZGXLv0igKrl%2FCmJxRmX7JJbJ998VSIPQRyDBICzl4JJlYHbdql30NvYcOuZ7a10uWRrgoieOdgIm4rlq6vNOQBuqESLbXG5lzdJGHw2m0sDYmODXbYGTfSTGRKpssTO95fothJCjUGQgEL4yKoGAF%2F0SrpUDNn8CBgBcSDQByAeNkCXp4S4Ro2Xh4OeaGRgR66PVOsU8bc6TR5%2FxTcn4IVMLOkXSWiXxkZQCbvKfmoAvQaKjO3EDKwkwqHChCDEM5loQRPd5ACBki1TjF772oaQhQbQ5C0lcWXPFOzrfsDGUXGrpxasbG4iab6eByaQkQfm0VFlP0ZsDkvvqCL6QXMUwCjdMx1ZOyKhTJ7a1GWAdOUcJ8RSejxNVyGs31OKMyRyBVoZFjqIkmKlLQ5eHMeEL4MkUf23cQ%2F1SgRCJ1dk4UdBT7OoyuNgLs0oCd8RnrEIb6QdMxT2QjD4zMrJkfgx5aDMcA4orsTtKCqWb%2FVeyceqa5OGSmB28YwH4rFbkQaLoUN8OQQYnD3w2eXpI4ScQfbCUZiJ4yMOIKLyyTc7BQ4uXUw6Ee6%2FxM%2B4Y67ngNBknxIPwuppgIhFcwJyr6EIj%2BLzNj%2FmfR2vhhRlx0BILZoAYruF0caWQ7YxO66UmeguDREAFHYuC7HJviRgVO6ruJH59h%2FC%2FPkgSle8xNzZJULLWq9JMDTE2fjGE146a1Us6PZDGYle6ldWRqn%2FpdpgHKNGrGIdkRK%2BKPETT9nKT6kLyDI8xd9A1FgWmXWRAIHwZ37WyZHOVyCadJEmMVz0MadMjDrPho%2BEIochkVC2xgGiwwsQ6DMv2P7UXqT4x7CdcYGId2BJQQa85EQKmCmwcRejQ9Bm4oATENFPkxPXILHpMPUyWTI5rjNOsIlmEeMbcOCEqInpXACYQ9DDxmFo9vcmsDblcMtg4tqBerNngkIKaFJmrQAPnq1dEzsMXcwjcHdfdCibcAxxA%2Bq%2Fj9m3LM%2FO7WJka4tSidVCjsvo2lQ%2F2ewyoYyXwAYyr2PlRoR5MpgVmSUIrM3PQxXPbgjBOaDQFIyFMJvx3Pc5RSYj12ySVF9fwFPQu2e2KWVoL9q3Ayv3IzpGHUdvdPdrNUdicjsTQ2ISy7QU3DrEytIjvbzJnAkmANXjAFERA0MUoPF3%2F5KFmW14bBNOhwircYgMqoDpUMcDtCmBE82QM2YtdjVLB4kBuKho%2FbcwQdeboqfQartuU3CsCf%2BcXkgYAqp%2F0Ee3RorAZt0AvvOCSI4JICIlGlsV0bsSid%2FNIEALAAzb6HAgyWHBps6xAOwkJIGcB82CxRQq4sJf3FzA70A%2BTRqcqjEMETCoez3mkPcpnoALs0ugJY8kQwrC%2BJE5ik3w9rzrvDRjAQnqgEVvdGrNwlanR0SOKWzxOJOvLJhcd8Cl4AshACUkv9czdMkJCVQSQhp6kp7StAlpVRpK0t0SW6LHeBJnE2QchB5Ccu8kxRghZXGIgZIiSj7gEKMJDClcnX6hgoqJMwiQDigIXg3ioFLCgDgjPtYHYpsF5EiA4kcnN18MZtOrY866dEQAb0FB34OGKHGZQjwW%2FWDHA60cYFaI%2FPjpzquUqdaYGcIq%2BmLez3WLFFCtNBN2QJcrlcoELgiPku5R5dSlJFaCEqEZle1AQzAKC%2B1SotMcBNyQUFuRHRF6OlimSBgjZeTBCwLyc6A%2BP%2FoFRchXTz5ADknYJHxzrJ5pGuIKRQISU6WyKTBBjD8WozmVYWIsto1AS5rxzKlvJu4E%2FvwOiKxRtCWsDM%2BeTHUrmwrCK5BIfMzGkD%2B0Fk5LzBs0jMYXktNDblB06LMNJ09U8pzSLmo14MS0OMjcdrZ31pyQqxJJpRImlSvfYAK8inkYU52QY2FPEVsjoWewpwhRp5yAuNpkqhdb7ku9Seefl2D0B8SMTFD90xi4CSOwwZy9IKkpMtI3FmFUg3%2FkFutpQGNc3pCR7gvC4sgwbupDu3DyEN%2BW6YGLNM21jpB49irxy9BSlHrVDlnihGKHwPrbVFtc%2Bh1rVQKZduxIyojccZIIcOCmhEnC7UkY68WXKQgLi2JCDQkQWJRQuk60hZp0D3rtCTINSeY9Ej2kIKYfGxwOs4j9qMM7fYZiipzgcf7TamnehqdhsiMiCawXnz4xAbyCkLAx5EGbo3Ax1u3dUIKnTxIaxwQTHehPl3V491H0%2BbC5zgpGz7Io%2BmjdhKlPJ01EeMpM7UsRJMi1nGjmJg35i6bQBAAxjO%2FENJubU2mg3ONySEoWklCwdABETcs7ck3jgiuU9pcKKpbgn%2B3YlzV1FzIkB6pmEDOSSyDfPPlQskznctFji0kpgZjW5RZe6x9kYT4KJcXg0bNiCyif%2BpZACCyRMmYsfiKmN9tSO65F0R2OO6ytlEhY5Sj6uRKfFxw0ijJaAx%2Fk3QgnAFSq27%2F2i4GEBA%2BUvTJKK%2F9eISNvG46Em5RZfjTYLdeD8kdXHyrwId%2FDQZUaMCY4gGbke2C8vfjgV%2FY9kkRQOJIn%2FxM9INZSpiBnqX0Q9GlQPpPKAyO5y%2BW5NMPSRdBCUlmuxl40ZfMCnf2Cp044uI9WLFtCi4YVxKjuRCOBWIb4XbIsGdbo4qtMQnNOQz4XDSui7W%2FN6l54qOynCqD3DpWQ%2BmpD7C40D8BZEWGJX3tlAaZBMj1yjvDYKwCJBa201u6nBKE5UE%2B7QSEhCwrXfbRZylAaAkplhBWX50dumrElePyNMRYUrC99UmcSSNgImhFhDI4BXjMtiqkgizUGCrZ8iwFxU6fQ8GEHCFdLewwxYWxgScAYMdMLmcZR6b7rZl95eQVDGVoUKcRMM1ixXQtXNkBETZkVVPg8LoSrdetHzkuM7DjZRHP02tCxA1fmkXKF3VzfN1pc1cv%2F8lbTIkkYpqKM9VOhp65ktYk%2BQ46myFWBapDfyWUCnsnI00QTBQmuFjMZTcd0V2NQ768Fhpby04k2IzNR1wKabuGJqYWwSly6ocMFGTeeI%2BejsWDYgEvr66QgqdcIbFYDNgsm0x9UHY6SCd5%2B7tpsLpKdvhahIDyYmEJQCqMqtCF6UlrE5GXRmbu%2Bvtm3BFSxI6ND6UxIE7GsGMgWqghXxSnaRJuGFveTcK5ZVSPJyjUxe1dKgI6kNF7EZhIZs8y8FVqwEfbM0Xk2ltORVDKZZM40SD3qQoQe0orJEKwPfZwm3YPqwixhUMOndis6MhbmfvLBKjC8sKKIZKbJk8L11oNkCQzCgvjhyyEiQSuJcgCQSG4Mocfgc0Hkwcjal1UNgP0CBPikYqBIk9tONv4kLtBswH07vUCjEaHiFGlLf8MgXKzSgjp2HolRRccAOh0ILHz9qlGgIFkwAnzHJRjWFhlA7ROwINyB5HFj59PRZHFor6voq7l23EPNRwdWhgawqbivLSjRA4htEYUFkjESu67icTg5S0aW1sOkCiIysfJ9UnIWevOOLGpepcBxy1wEhd2WI3AZg7sr9WBmHWyasxMcvY%2FiOmsLtHSWNUWEGk9hScMPShasUA1AcHOtRZlqMeQ0OzYS9vQvYUjOLrzP07BUAFikcJNMi7gIxEw4pL1G54TcmmmoAQ5s7TGWErJZ2Io4yQ0ljRYhL8H5e62oDtLF8aDpnIvZ5R3GWJyAugdiiJW9hQAVTsnCBHhwu7rkBlBX6r3b7ejEY0k5GGeyKv66v%2B6dg7mcJTrWHbtMywbedYqCQ0FPwoytmSWsL8WTtChZCKKzEF7vP6De4x2BJkkniMgSdWhbeBSLtJZR9CTHetK1xb34AYIJ37OegYIoPVbXgJ%2FqDQK%2BbfCtxQRVKQu77WzOoM6SGL7MaZwCGJVk46aImai9fmam%2BWpHG%2B0BtQPWUgZ7RIAlPq6lkECUhZQ2gqWkMYKcYMYaIc4gYCDFHYa2d1nzp3%2BJ1eCBay8IYZ0wQRKGAqvCuZ%2FUgbQPyllosq%2BXtfKIZOzmeJqRazpmmoP%2F76YfkjzV2NlXTDSBYB04SVlNQsFTbGPk1t%2FI4Jktu0XSgifO2ozFOiwd%2F0SssJDn0dn4xqk4GDTTKX73%2FwQyBLdqgJ%2BWx6AQaba3BA9CKEzjtQYIfAsiYamapq80LAamYjinlKXUkxdpIDk0puXUEYzSalfRibAeDAKpNiqQ0FTwoxuGYzRnisyTotdVTclis1LHRQCy%2FqqL8oUaQzWRxilq5Mi0IJGtMY02cGLD69vGjkj3p6pGePKI8bkBv5evq8SjjyU04vJR2cQXQwSJyoinDsUJHCQ50jrFTT7yRdbdYQMB3MYCb6uBzJ9ewhXYPAIZSXfeEQBZZ3GPN3Nbhh%2FwkvAJLXnQMdi5NYYZ5GHE400GS5rXkOZSQsdZgIbzRnF9ueLnsfQ47wHAsirITnTlkCcuWWIUhJSbpM3wWhXNHvt2xUsKKMpdBSbJnBMcihkoDqAd1Zml%2FR4yrzow1Q2A5G%2Bkzo%2FRhRxQS2lCSDRV8LlYLBOOoo1bF4jwJAwKMK1tWLHlu9i0j4Ig8qVm6wE1DxXwAwQwsaBWUg2pOOol2dHxyt6npwJEdLDDVYyRc2D0HbcbLUJQj8gPevQBUBOUHXPrsAPBERICpnYESeu2OHotpXQxRGlCCtLdIsu23MhZVEoJg8Qumj%2FUMMc34IBqTKLDTp76WzL%2FdMjCxK7MjhiGjeYAC%2Fkj%2FjY%2FRde7hpSM1xChrog6yZ7OWTuD56xBJnGFE%2BpT2ElSyCnJcwVzCjkqeNLfMEJqKW0G7OFIp0G%2B9mh50I9o8k1tpCY0xYqFNIALgIfc2me4n1bmJnRZ89oepgLPT0NTMLNZsvSCZAc3TXaNB07vail36%2FdBySis4m9%2FDR8izaLJW6bWCkVgm5T%2Bius3ZXq4xI%2BGnbveLbdRwF2mNtsrE0JjYc1AXknCOrLSu7Te%2Fr4dPYMCl5qtiHNTn%2BTPbh1jCBHH%2BdMJNhwNgs3nT%2BOhQoQ0vYif56BMG6WowAcHR3DjQolxLzyVekHj00PBAaW7IIAF1EF%2BuRIWyXjQMAs2chdpaKPNaB%2BkSezYt0%2BCA04sOg5vx8Fr7Ofa9sUv87h7SLAUFSzbetCCZ9pmyLt6l6%2FTzoA1%2FZBG9bIUVHLAbi%2FkdBFgYGyGwRQGBpkqCEg2ah9UD6EedEcEL3j4y0BQQCiExEnocA3SZboh%2Bepgd3YsOkHskZwPuQ5OoyA0fTA5AXrHcUOQF%2BzkJHIA7PwCDk1gGVmGUZSSoPhNf%2BTklauz98QofOlCIQ%2FtCD4dosHYPqtPCXB3agggQQIqQJsSkB%2Bqn0rkQ1toJjON%2FOtCIB9RYv3PqRA4C4U68ZMlZn6BdgEvi2ziU%2BTQ6NIw3ej%2BAtDwMGEZk7e2IjxUWKdAxyaw9OCwSmeADTPPleyk6UhGDNXQb%2B%2BW6Uk4q6F7%2Frg6WVTo82IoCxSIsFDrav4EPHphD3u4hR53WKVvYZUwNCCeM4PMBWzK%2BEfIthZOkuAwPo5C5jgoZgn6dUdvx5rIDmd58cXXdKNfw3l%2BwM2UjgrDJeQHhbD7HW2QDoZMCujgIUkk5Fg8VCsdyjOtnGRx8wgKRPZN5dR0zPUyfGZFVihbFRniXZFOZGKPnEQzU3AnD1KfR6weHW2XS6KbPJxUkOTZsAB9vTVp3Le1F8q5l%2BDMcLiIq78jxAImD2pGFw0VHfRatScGlK6SMu8leTmhUSMy8Uhdd6xBiH3Gdman4tjQGLboJfqz6fL2WKHTmrfsKZRYX6BTDjDldKMosaSTLdQS7oDisJNqAUhw1PfTlnacCO8vl8706Km1FROgLDmudzxg%2BEWTiArtHgLsRrAXYWdB0NmToNCJdKm0KWycZQqb%2BMw76Qy29iQ5up%2FX7oyw8QZ75kP5F6iJAJz6KCmqxz8fEa%2FxnsMYcIO%2FvEkGRuMckhr4rIeLrKaXnmIzlNLxbFspOphkcnJdnz%2FChp%2FVlpj2P7jJQmQRwGnltkTV5dbF9fE3%2FfxoSqTROgq9wFUlbuYzYcasE0ouzBo%2BdDCDzxKAfhbAZYxQiHrLzV2iVexnDX%2FQnT1fsT%2Fxuhu1ui5qIytgbGmRoQkeQooO8eJNNZsf0iALur8QxZFH0nCMnjerYQqG1pIfjyVZWxhVRznmmfLG00BcBWJE6hzQWRyFknuJnXuk8A5FRDCulwrWASSNoBtR%2BCtGdkPwYN2o7DOw%2FVGlCZPusRBFXODQdUM5zeHDIVuAJBLqbO%2Ff9Qua%2BpDqEPk230Sob9lEZ8BHiCorjVghuI0lI4JDgHGRDD%2FprQ84B1pVGkIpVUAHCG%2Biz3Bn3qm2AVrYcYWhock4jso5%2BJ7HfHVj4WMIQdGctq3psBCVVzupQOEioBGA2Bk%2BUILT7%2BVoX5mdxxA5fS42gISQVi%2FHTzrgMxu0fY6hE1ocUwwbsbWcezrY2n6S8%2F6cxXkOH4prpmPuFoikTzY7T85C4T2XYlbxLglSv2uLCgFv8Quk%2FwdesUdWPeHYIH0R729JIisN9Apdd4eB10aqwXrPt%2BSu9mA8k8n1sjMwnfsfF2j3jMUzXepSHmZ%2FBfqXvzgUNQQWOXO8YEuFBh4QTYCkOAPxywpYu1VxiDyJmKVcmJPGWk%2Fgc3Pov02StyYDahwmzw3E1gYC9wkupyWfDqDSUMpCTH5e5N8B%2F%2FlHiMuIkTNw4USHrJU67bjXGqNav6PBuQSoqTxc8avHoGmvqNtXzIaoyMIQIiiUHIM64cXieouplhNYln7qgc4wBVAYR104kO%2BCvKqsg4yIUlFNThVUAKZxZt1XA34h3TCUUiXVkZ0w8Hh2R0Z5L0b4LZvPd%2Fp1gi%2F07h8qfwHrByuSxglc9cI4QIg2oqvC%2Fqm0i7tjPLTgDhoWTAKDO2ONW5oe%2B%2FeKB9vZB8K6C25yCZ9RFVMnb6NRdRjyVK57CHHSkJBfnM2%2Fj4ODUwRkqrtBBCrDsDpt8jhZdXoy%2F1BCqw3sSGhgGGy0a5Jw6BP%2FTExoCmNFYjZl248A0osgPyGEmRA%2BfAsqPVaNAfytu0vuQJ7rk3J4kTDTR2AlCHJ5cls26opZM4w3jMULh2YXKpcqGBtuleAlOZnaZGbD6DHzMd6i2oFeJ8z9XYmalg1Szd%2FocZDc1C7Y6vcALJz2lYnTXiWEr2wawtoR4g3jvWUU2Ngjd1cewtFzEvM1NiHZPeLlIXFbBPawxNgMwwAlyNSuGF3zizVeOoC9bag1qRAQKQE%2FEZBWC2J8mnXAN2aTBboZ7HewnObE8CwROudZHmUM5oZ%2FUgd%2FJZQK8lvAm43uDRAbyW8gZ%2BZGq0EVerVGUKUSm%2FIdn8AQHdR4m7bue88WBwft9mSCeMOt1ncBwziOmJYI2ZR7ewNMPiCugmSsE4EyQ%2BQATJG6qORMGd4snEzc6B4shPIo4G1T7PgSm8PY5eUkPdF8JZ0VBtadbHXoJgnEhZQaODPj2gpODKJY5Yp4DOsLBFxWbvXN755KWylJm%2BoOd4zEL9Hpubuy2gyyfxh8oEfFutnYWdfB8PdESLWYvSqbElP9qo3u6KTmkhoacDauMNNjj0oy40DFV7Ql0aZj77xfGl7TJNHnIwgqOkenruYYNo6h724%2BzUQ7%2BvkCpZB%2BpGA562hYQiDxHVWOq0oDQl%2FQsoiY%2BcuI7iWq%2FZIBtHcXJ7kks%2Bh2fCNUPA82BzjnqktNts%2BRLdk1VSu%2BtqEn7QZCCsvEqk6FkfiOYkrsw092J8jsfIuEKypNjLxrKA9kiA19mxBD2suxQKCzwXGws7kEJvlhUiV9tArLIdZW0IORcxEzdzKmjtFhsjKy%2F44XYXdI5noQoRcvjZ1RMPACRqYg2V1%2BOwOepcOknRLLFdYgTkT5UApt%2FJhLM3jeFYprZV%2BZow2g8fP%2BU68hkKFWJj2yBbKqsrp25xkZX1DAjUw52IMYWaOhab8Kp05VrdNftqwRrymWF4OQSjbdfzmRZirK8FMJELEgER2PHjEAN9pGfLhCUiTJFbd5LBkOBMaxLr%2FA1SY9dXFz4RjzoU9ExfJCmx%2FI9FKEGT3n2cmzl2X42L3Jh%2BAbQq6sA%2BSs1kitoa4TAYgKHaoybHUDJ51oETdeI%2F9ThSmjWGkyLi5QAGWhL0BG1UsTyRGRJOldKBrYJeB8ljLJHfATWTEQBXBDnQexOHTB%2BUn44zExFE4vLytcu5NwpWrUxO%2F0ZICUGM7hGABXym0V6ZvDST0E370St9MIWQOTWngeoQHUTdCJUP04spMBMS8LSker9cReVQkULFDIZDFPrhTzBl6sed9wcZQTbL%2BBDqMyaN3RJPh%2Fanbx%2BIv%2BqgQdAa3M9Z5JmvYlh4qop%2BHo1F1W5gbOE9YKLgAnWytXElU4G8GtW47lhgFE6gaSs%2Bgs37sFvi0PPVvA5dnCBgILTwoKd%2F%2BDoL9F6inlM7H4rOTzD79KJgKlZO%2FZgt22UsKhrAaXU5ZcLrAglTVKJEmNJvORGN1vqrcfSMizfpsgbIe9zno%2BgBoKVXgIL%2FVI8dB1O5o%2FR3Suez%2FgD7M781ShjKpIIORM%2FnxG%2BjjhhgPwsn2IoXsPGPqYHXA63zJ07M2GPEykQwJBYLK808qYxuIew4frk52nhCsnCYmXiR6CuapvE1IwRB4%2FQftDbEn%2BAucIr1oxrLabRj9q4ae0%2BfXkHnteAJwXRbVkR0mctVSwEbqhJiMSZUp9DNbEDMmjX22m3ABpkrPQQTP3S1sib5pD2VRKRd%2BeNAjLYyT0hGrdjWJZy24OYXRoWQAIhGBZRxuBFMjjZQhpgrWo8SiFYbojcHO8V5DyscJpLTHyx9Fimassyo5U6WNtquUMYgccaHY5amgR3PQzq3ToNM5ABnoB9kuxsebqmYZm0R9qxJbFXCQ1UPyFIbxoUraTJFDpCk0Wk9GaYJKz%2F6oHwEP0Q14lMtlddQsOAU9zlYdMVHiT7RQP3XCmWYDcHCGbVRHGnHuwzScA0BaSBOGkz3lM8CArjrBsyEoV6Ys4qgDK3ykQQPZ3hCRGNXQTNNXbEb6tDiTDLKOyMzRhCFT%2BmAUmiYbV3YQVqFVp9dorv%2BTsLeCykS2b5yyu8AV7IS9cxcL8z4Kfwp%2BxJyYLv1OsxQCZwTB4a8BZ%2F5EdxTBJthApqyfd9u3ifr%2FWILTqq5VqgwMT9SOxbSGWLQJUUWCVi4k9tho9nEsbUh7U6NUsLmkYFXOhZ0kmamaJLRNJzSj%2Fqn4Mso6zb6iLLBXoaZ6AqeWCjHQm2lztnejYYM2eubnpBdKVLORZhudH3JF1waBJKA9%2BW8EhMj3Kzf0L4vi4k6RoHh3Z5YgmSZmk6ns4fjScjAoL8GoOECgqgYEBYUGFVO4FUv4%2FYtowhEmTs0vrvlD%2FCrisnoBNDAcUi%2FteY7OctFlmARQzjOItrrlKuPO6E2Ox93L4O%2F4DcgV%2FdZ7qR3VBwVQxP1GCieA4RIpweYJ5FoYrHxqRBdJjnqbsikA2Ictbb8vE1GYIo9dacK0REgDX4smy6GAkxlH1yCGGsk%2BtgiDhNKuKu3yNrMdxafmKTF632F8Vx4BNK57GvlFisrkjN9WDAtjsWA0ENT2e2nETUb%2Fn7qwhvGnrHuf5bX6Vh%2Fn3xffU3PeHdR%2BFA92i6ufT3AlyAREoNDh6chiMWTvjKjHDeRhOa9YkOQRq1vQXEMppAQVwHCuIcV2g5rBn6GmZZpTR7vnSD6ZmhdSl176gqKTXu5E%2BYbfL0adwNtHP7dT7t7b46DVZIkzaRJOM%2BS6KcrzYVg%2BT3wSRFRQashjfU18NutrKa%2F7PXbtuJvpIjbgPeqd%2BpjmRw6YKpnANFSQcpzTZgpSNJ6J7uiagAbir%2F8tNXJ%2FOsOnRh6iuIexxrmkIneAgz8QoLmiaJ8sLQrELVK2yn3wOHp57BAZJhDZjTBzyoRAuuZ4eoxHruY1pSb7qq79cIeAdOwin4GdgMeIMHeG%2BFZWYaiUQQyC5b50zKjYw97dFjAeY2I4Bnl105Iku1y0lMA1ZHolLx19uZnRdILcXKlZGQx%2FGdEqSsMRU1BIrFqRcV1qQOOHyxOLXEGcbRtAEsuAC2V4K3p5mFJ22IDWaEkk9ttf5Izb2LkD1MnrSwztXmmD%2FQi%2FEmVEFBfiKGmftsPwVaIoZanlKndMZsIBOskFYpDOq3QUs9aSbAAtL5Dbokus2G4%2FasthNMK5UQKCOhU97oaOYNGsTah%2BjfCKsZnTRn5TbhFX8ghg8CBYt%2FBjeYYYUrtUZ5jVij%2Fop7V5SsbA4mYTOwZ46hqdpbB6Qvq3AS2HHNkC15pTDIcDNGsMPXaBidXYPHc6PJAkRh29Vx8KcgX46LoUQBhRM%2B3SW6Opll%2FwgxxsPgKJKzr5QCmwkUxNbeg6Wj34SUnEzOemSuvS2OetRCO8Tyy%2BQbSKVJcqkia%2BGvDefFwMOmgnD7h81TUtMn%2BmRpyJJ349HhAnoWFTejhpYTL9G8N2nVg1qkXBeoS9Nw2fB27t7trm7d%2FQK7Cr4uoCeOQ7%2F8JfKT77KiDzLImESHw%2F0wf73QeHu74hxv7uihi4fTX%2BXEwAyQG3264dwv17aJ5N335Vt9sdrAXhPOAv8JFvzqyYXwfx8WYJaef1gMl98JRFyl5Mv5Uo%2FoVH5ww5OzLFsiTPDns7fS6EURSSWd%2F92BxMYQ8sBaH%2Bj%2BwthQPdVgDGpTfi%2BJQIWMD8xKqULliRH01rTeyF8x8q%2FGBEEEBrAJMPf25UQwi0b8tmqRXY7kIvNkzrkvRWLnxoGYEJsz8u4oOyMp8cHyaybb1HdMCaLApUE%2B%2F7xLIZGP6H9xuSEXp1zLIdjk5nBaMuV%2FyTDRRP8Y2ww5RO6d2D94o%2B6ucWIqUAvgHIHXhZsmDhjVLczmZ3ca0Cb3PpKwt2UtHVQ0BgFJsqqTsnzZPlKahRUkEu4qmkJt%2Bkqdae76ViWe3STan69yaF9%2BfESD2lcQshLHWVu4ovItXxO69bqC5p1nZLvI8NdQB9s9UNaJGlQ5mG947ipdDA0eTIw%2FA1zEdjWquIsQXXGIVEH0thC5M%2BW9pZe7IhAVnPJkYCCXN5a32HjN6nsvokEqRS44tGIs7s2LVTvcrHAF%2BRVmI8L4HUYk4x%2B67AxSMJKqCg8zrGOgvK9kNMdDrNiUtSWuHFpC8%2Fp5qIQrEo%2FH%2B1l%2F0cAwQ2nKmpWxKcMIuHY44Y6DlkpO48tRuUGBWT0FyHwSKO72Ud%2BtJUfdaZ4CWNijzZtlRa8%2BCkmO%2FEwHYfPZFU%2FhzjFWH7vnzHRMo%2BaF9u8qHSAiEkA2HjoNQPEwHsDKOt6hOoK3Ce%2F%2B%2F9boMWDa44I6FrQhdgS7OnNaSzwxWKZMcyHi6LN4WC6sSj0qm2PSOGBTvDs%2FGWJS6SwEN%2FULwpb4LQo9fYjUfSXRwZkynUazlSpvX9e%2BG2zor8l%2BYaMxSEomDdLHGcD6YVQPegTaA74H8%2BV4WvJkFUrjMLGLlvSZQWvi8%2FQA7yzQ8GPno%2F%2F5SJHRP%2FOqKObPCo81s%2F%2B6WgLqykYpGAgQZhVDEBPXWgU%2FWzFZjKUhSFInufPRiMAUULC6T11yL45ZrRoB4DzOyJShKXaAJIBS9wzLYIoCEcJKQW8GVCx4fihqJ6mshBUXSw3wWVj3grrHQlGNGhIDNNzsxQ3M%2BGWn6ASobIWC%2BLbYOC6UpahVO13Zs2zOzZC8z7FmA05JhUGyBsF4tsG0drcggIFzgg%2Fkpf3%2BCnAXKiMgIE8Jk%2FMhpkc8DUJEUzDSnWlQFme3d0sHZDrg7LavtsEX3cHwjCYA17pMTfx8Ajw9hHscN67hyo%2BRJQ4458RmPywXykkVcW688oVUrQhahpPRvTWPnuI0B%2BSkQu7dCyvLRyFYlC1LG1gRCIvn3rwQeINzZQC2KXq31FaR9UmVV2QeGVqBHjmE%2BVMd3b1fhCynD0pQNhCG6%2FWCDbKPyE7NRQzL3BzQAJ0g09aUzcQA6mUp9iZFK6Sbp%2FYbHjo%2B%2B7%2FWj8S4YNa%2BZdqAw1hDrKWFXv9%2BzaXpf8ZTDSbiqsxnwN%2FCzK5tPkOr4tRh2kY3Bn9JtalbIOI4b3F7F1vPQMfoDcdxMS8CW9m%2FNCW%2FHILTUVWQIPiD0j1A6bo8vsv6P1hCESl2abrSJWDrq5sSzUpwoxaCU9FtJyYH4QFMxDBpkkBR6kn0LMPO%2B5EJ7Z6bCiRoPedRZ%2FP0SSdii7ZnPAtVwwHUidcdyspwncz5uq6vvm4IEDbJVLUFCn%2FLvIHfooUBTkFO130FC7CmmcrKdgDJcid9mvVzsDSibOoXtIf9k6ABle3PmIxejodc4aob0QKS432srrCMndbfD454q52V01G4q913mC5HOsTzWF4h2No1av1VbcUgWAqyoZl%2B11PoFYnNv2HwAODeNRkHj%2B8SF1fcvVBu6MrehHAZK1Gm69ICcTKizykHgGFx7QdowTVAsYEF2tVc0Z6wLryz2FI1sc5By2znJAAmINndoJiB4sfPdPrTC8RnkW7KRCwxC6YvXg5ahMlQuMpoCSXjOlBy0Kij%2BbsCYPbGp8BdCBiLmLSAkEQRaieWo1SYvZIKJGj9Ur%2FeWHjiB7SOVdqMAVmpBvfRiebsFjger7DC%2B8kRFGtNrTrnnGD2GAJb8rQCWkUPYHhwXsjNBSkE6lGWUj5QNhK0DMNM2l%2BkXRZ0KLZaGsFSIdQz%2FHXDxf3%2FTE30%2BDgBKWGWdxElyLccJfEpjsnszECNoDGZpdwdRgCixeg9L4EPhH%2BRptvRMVRaahu4cySjS3P5wxAUCPkmn%2BrhyASpmiTaiDeggaIxYBmtLZDDhiWIJaBgzfCsAGUF1Q1SFZYyXDt9skCaxJsxK2Ms65dmdp5WAZyxik%2FzbrTQk5KmgxCg%2Ff45L0jywebOWUYFJQAJia7XzCV0x89rpp%2Ff3AVWhSPyTanqmik2SkD8A3Ml4NhIGLAjBXtPShwKYfi2eXtrDuKLk4QlSyTw1ftXgwqA2jUuopDl%2B5tfUWZNwBpEPXghzbBggYCw%2Fdhy0ntds2yeHCDKkF%2FYxQjNIL%2FF%2F37jLPHCKBO9ibwYCmuxImIo0ijV2Wbg3kSN2psoe8IsABv3RNFaF9uMyCtCYtqcD%2BqNOhwMlfARQUdJ2tUX%2BMNJqOwIciWalZsmEjt07tfa8ma4cji9sqz%2BQ9hWfmMoKEbIHPOQORbhQRHIsrTYlnVTNvcq1imqmmPDdVDkJgRcTgB8Sb6epCQVmFZe%2BjGDiNJQLWnfx%2BdrTKYjm0G8yH0ZAGMWzEJhUEQ4Maimgf%2Fbkvo8PLVBsZl152y5S8%2BHRDfZIMCbYZ1WDp4yrdchOJw8k6R%2B%2F2pHmydK4NIK2PHdFPHtoLmHxRDwLFb7eB%2BM4zNZcB9NrAgjVyzLM7xyYSY13ykWfIEEd2n5%2FiYp3ZdrCf7fL%2Ben%2BsIJu2W7E30MrAgZBD1rAAbZHPgeAMtKCg3NpSpYQUDWJu9bT3V7tOKv%2BNRiJc8JAKqqgCA%2FPNRBR7ChpiEulyQApMK1AyqcWnpSOmYh6yLiWkGJ2mklCSPIqN7UypWj3dGi5MvsHQ87MrB4VFgypJaFriaHivwcHIpmyi5LhNqtem4q0n8awM19Qk8BOS0EsqGscuuydYsIGsbT5GHnERUiMpKJl4ON7qjB4fEqlGN%2FhCky89232UQCiaeWpDYCJINXjT6xl4Gc7DxRCtgV0i1ma4RgWLsNtnEBRQFqZggCLiuyEydmFd7WlogpkCw5G1x4ft2psm3KAREwVwr1Gzl6RT7FDAqpVal34ewVm3VH4qn5mjGj%2BbYL1NgfLNeXDwtmYSpwzbruDKpTjOdgiIHDVQSb5%2FzBgSMbHLkxWWgghIh9QTFSDILixVwg0Eg1puooBiHAt7DzwJ7m8i8%2Fi%2BjHvKf0QDnnHVkVTIqMvIQImOrzCJwhSR7qYB5gSwL6aWL9hERHCZc4G2%2BJrpgHNB8eCCmcIWIQ6rSdyPCyftXkDlErUkHafHRlkOIjxGbAktz75bnh50dU7YHk%2BMz7wwstg6RFZb%2BTZuSOx1qqP5C66c0mptQmzIC2dlpte7vZrauAMm%2F7RfBYkGtXWGiaWTtwvAQiq2oD4YixPLXE2khB2FRaNRDTk%2B9sZ6K74Ia9VntCpN4BhJGJMT4Z5c5FhSepRCRWmBXqx%2BwhVZC4me4saDs2iNqXMuCl6iAZflH8fscC1sTsy4PHeC%2BXYuqMBMUun5YezKbRKmEPwuK%2BCLzijPEQgfhahQswBBLfg%2FGBgBiI4QwAqzJkkyYAWtjzSg2ILgMAgqxYfwERRo3zruBL9WOryUArSD8sQOcD7fvIODJxKFS615KFPsb68USBEPPj1orNzFY2xoTtNBVTyzBhPbhFH0PI5AtlJBl2aSgNPYzxYLw7XTDBDinmVoENwiGzmngrMo8OmnRP0Z0i0Zrln9DDFcnmOoBZjABaQIbPOJYZGqX%2BRCMlDDbElcjaROLDoualmUIQ88Kekk3iM4OQrADcxi3rJguS4MOIBIgKgXrjd1WkbCdqxJk%2F4efRIFsavZA7KvvJQqp3Iid5Z0NFc5aiMRzGN3vrpBzaMy4JYde3wr96PjN90AYOIbyp6T4zj8LoE66OGcX1Ef4Z3KoWLAUF4BTg7ug%2FAbkG5UNQXAMkQezujSHeir2uTThgd3gpyzDrbnEdDRH2W7U6PeRvBX1ZFMP5RM%2BZu6UUZZD8hDPHldVWntTCNk7To8IeOW9yn2wx0gmurwqC60AOde4r3ETi5pVMSDK8wxhoGAoEX9NLWHIR33VbrbMveii2jAJlrxwytTHbWNu8Y4N8vCCyZjAX%2FpcsfwXbLze2%2BD%2Bu33OGBoJyAAL3jn3RuEcdp5If8O%2Ba4NKWvxOTyDltG0IWoHhwVGe7dKkCWFT%2B%2Btm%2BhaBCikRUUMrMhYKZJKYoVuv%2FbsJzO8DwfVIInQq3g3BYypiz8baogH3r3GwqCwFtZnz4xMjAVOYnyOi5HWbFA8n0qz1OjSpHWFzpQOpvkNETZBGpxN8ybhtqV%2FDMUxd9uFZmBfKXMCn%2FSqkWJyKPnT6lq%2B4zBZni6fYRByJn6OK%2BOgPBGRAJluwGSk4wxjOOzyce%2FPKODwRlsgrVkdcsEiYrqYdXo0Er2GXi2GQZd0tNJT6c9pK1EEJG1zgDJBoTVuCXGAU8BKTvCO%2FcEQ1Wjk3Zzuy90JX4m3O5IlxVFhYkSUwuQB2up7jhvkm%2BbddRQu5F9s0XftGEJ9JSuSk%2BZachCbdU45fEqbugzTIUokwoAKvpUQF%2FCvLbWW5BNQFqFkJg2f30E%2F48StNe5QwBg8zz3YAJ82FZoXBxXSv4QDooDo79NixyglO9AembuBcx5Re3CwOKTHebOPhkmFC7wNaWtoBhFuV4AkEuJ0J%2B1pT0tLkvFVZaNzfhs%2FKd3%2BA9YsImlO4XK4vpCo%2FelHQi%2F9gkFg07xxnuXLt21unCIpDV%2BbbRxb7FC6nWYTsMFF8%2B1LUg4JFjVt3vqbuhHmDKbgQ4e%2BRGizRiO8ky05LQGMdL2IKLSNar0kNG7lHJMaXr5mLdG3nykgj6vB%2FKVijd1ARWkFEf3yiUw1v%2FWaQivVUpIDdSNrrKbjO5NPnxz6qTTGgYg03HgPhDrCFyYZTi3XQw3HXCva39mpLNFtz8AiEhxAJHpWX13gCTAwgm9YTvMeiqetdNQv6IU0hH0G%2BZManTqDLPjyrOse7WiiwOJCG%2BJ0pZYULhN8NILulmYYvmVcV2MjAfA39sGKqGdjpiPo86fecg65UPyXDIAOyOkCx5NQsLeD4gGVjTVDwOHWkbbBW0GeNjDkcSOn2Nq4cEssP54t9D749A7M1AIOBl0Fi0sSO5v3P7LCBrM6ZwFY6kp2FX6AcbGUdybnfChHPyu6WlRZ2Fwv9YM0RMI7kISRgR8HpQSJJOyTfXj%2F6gQKuihPtiUtlCQVPohUgzfezTg8o1b3n9pNZeco1QucaoXe40Fa5JYhqdTspFmxGtW9h5ezLFZs3j%2FN46f%2BS2rjYNC2JySXrnSAFhvAkz9a5L3pza8eYKHNoPrvBRESpxYPJdKVUxBE39nJ1chrAFpy4MMkf0qKgYALctGg1DQI1kIymyeS2AJNT4X240d3IFQb%2F0jQbaHJ2YRK8A%2Bls6WMhWmpCXYG5jqapGs5%2FeOJErxi2%2F2KWVHiPellTgh%2FfNl%2F2KYPKb7DUcAg%2BmCOPQFCiU9Mq%2FWLcU1xxC8aLePFZZlE%2BPCLzf7ey46INWRw2kcXySR9FDgByXzfxiNKwDFbUSMMhALPFSedyjEVM5442GZ4hTrsAEvZxIieSHGSgkwFh%2FnFNdrrFD4tBH4Il7fW6ur4J8Xaz7RW9jgtuPEXQsYk7gcMs2neu3zJwTyUerHKSh1iTBkj2YJh1SSOZL5pLuQbFFAvyO4k1Hxg2h99MTC6cTUkbONQIAnEfGsGkNFWRbuRyyaEZInM5pij73EA9rPIUfU4XoqQpHT9THZkW%2BoKFLvpyvTBMM69tN1Ydwv1LIEhHsC%2BueVG%2Bw%2BkyCPsvV3erRikcscHjZCkccx6VrBkBRusTDDd8847GA7p2Ucy0y0HdSRN6YIBciYa4vuXcAZbQAuSEmzw%2BH%2FAuOx%2BaH%2BtBL88H57D0MsqyiZxhOEQkF%2F8DR1d2hSPMj%2FsNOa5rxcUnBgH8ictv2J%2Bcb4BA4v3MCShdZ2vtK30vAwkobnEWh7rsSyhmos3WC93Gn9C4nnAd%2FPjMMtQfyDNZsOPd6XcAsnBE%2FmRHtHEyJMzJfZFLE9OvQa0i9kUmToJ0ZxknTgdl%2FXPV8xoh0K7wNHHsnBdvFH3sv52lU7UFteseLG%2FVanIvcwycVA7%2BBE1Ulyb20BvwUWZcMTKhaCcmY3ROpvonVMV4N7yBXTL7IDtHzQ4CCcqF66LjF3xUqgErKzolLyCG6Kb7irP%2FMVTCCwGRxfrPGpMMGvPLgJ881PHMNMIO09T5ig7AzZTX%2F5PLlwnJLDAPfuHynSGhV4tPqR3gJ4kg4c06c%2FF1AcjGytKm2Yb5jwMotF7vro4YDLWlnMIpmPg36NgAZsGA0W1spfLSue4xxat0Gdwd0lqDBOgIaMANykwwDKejt5YaNtJYIkrSgu0KjIg0pznY0SCd1qlC6R19g97UrWDoYJGlrvCE05J%2F5wkjpkre727p5PTRX5FGrSBIfJqhJE%2FIS876PaHFkx9pGTH3oaY3jJRvLX9Iy3Edoar7cFvJqyUlOhAEiOSAyYgVEGkzHdug%2BoRHIEOXAExMiTSKU9A6nmRC8mp8iYhwWdP2U%2F5EkFAdPrZw03YA3gSyNUtMZeh7dDCu8pF5x0VORCTgKp07ehy7NZqKTpIC4UJJ89lnboyAfy5OyXzXtuDRbtAFjZRSyGFTpFrXwkpjSLIQIG3N0Vj4BtzK3wdlkBJrO18MNsgseR4BysJilI0wI6ZahLhBFA0XBmV8d4LUzEcNVb0xbLjLTETYN8OEVqNxkt10W614dd1FlFFVTIgB7%2FBQQp1sWlNolpIu4ekxUTBV7NmxOFKEBmmN%2BnA7pvF78%2FRII5ZHA09OAiE%2F66MF6HQ%2BqVEJCHxwymukkNvzqHEh52dULPbVasfQMgTDyBZzx4007YiKdBuUauQOt27Gmy8ISclPmEUCIcuLbkb1mzQSqIa3iE0PJh7UMYQbkpe%2BhXjTJKdldyt2mVPwywoODGJtBV1lJTgMsuSQBlDMwhEKIfrvsxGQjHPCEfNfMAY2oxvyKcKPUbQySkKG6tj9AQyEW3Q5rpaDJ5Sns9ScLKeizPRbvWYAw4bXkrZdmB7CQopCH8NAmqbuciZChHN8lVGaDbCnmddnqO1PQ4ieMYfcSiBE5zzMz%2BJV%2F4eyzrzTEShvqSGzgWimkNxLvUj86iAwcZuIkqdB0VaIB7wncLRmzHkiUQpPBIXbDDLHBlq7vp9xwuC9AiNkIptAYlG7Biyuk8ILdynuUM1cHWJgeB%2BK3wBP%2FineogxkvBNNQ4AkW0hvpBOQGFfeptF2YTR75MexYDUy7Q%2F9uocGsx41O4IZhViw%2F2FvAEuGO5g2kyXBUijAggWM08bRhXg5ijgMwDJy40QeY%2FcQpUDZiIzmvskQpO5G1zyGZA8WByjIQU4jRoFJt56behxtHUUE%2Fom7Rj2psYXGmq3llVOCgGYKNMo4pzwntITtapDqjvQtqpjaJwjHmDzSVGLxMt12gEXAdLi%2FcaHSM3FPRGRf7dB7YC%2BcD2ho6oL2zGDCkjlf%2FDFoQVl8GS%2F56wur3rdV6ggtzZW60MRB3g%2BU1W8o8cvqIpMkctiGVMzXUFI7FacFLrgtdz4mTEr4aRAaQ2AFQaNeG7GX0yOJgMRYFziXdJf24kg%2FgBQIZMG%2FYcPEllRTVNoDYR6oSJ8wQNLuihfw81UpiKPm714bZX1KYjcXJdfclCUOOpvTxr9AAJevTY4HK%2FG7F3mUc3GOAKqh60zM0v34v%2BELyhJZqhkaMA8UMMOU90f8RKEJFj7EqepBVwsRiLbwMo1J2zrE2UYJnsgIAscDmjPjnzI8a719Wxp757wqmSJBjXowhc46QN4RwKIxqEE6E5218OeK7RfcpGjWG1jD7qND%2B%2FGTk6M56Ig4yMsU6LUW1EWE%2BfIYycVV1thldSlbP6ltdC01y3KUfkobkt2q01YYMmxpKRvh1Z48uNKzP%2FIoRIZ%2FF6buOymSnW8gICitpJjKWBscSb9JJKaWkvEkqinAJ2kowKoqkqZftRqfRQlLtKoqvTRDi2vg%2FRrPD%2Fd3a09J8JhGZlEkOM6znTsoMCsuvTmywxTCDhw5dd0GJOHCMPbsj3QLkTE3MInsZsimDQ3HkvthT7U9VA4s6G07sID0FW4SHJmRGwCl%2BMu4xf0ezqeXD2PtPDnwMPo86sbwDV%2B9PWcgFcARUVYm3hrFQrHcgMElFGbSM2A1zUYA3baWfheJp2AINmTJLuoyYD%2FOwA4a6V0ChBN97E8YtDBerUECv0u0TlxR5yhJCXvJxgyM73Bb6pyq0jTFJDZ4p1Am1SA6sh8nADd1hAcGBMfq4d%2FUfwnmBqe0Jun1n1LzrgKuZMAnxA3NtCN7Klf4BH%2B14B7ibBmgt0TGUafVzI4uKlpF7v8NmgNjg90D6QE3tbx8AjSAC%2BOA1YJvclyPKgT27QpIEgVYpbPYGBsnyCNrGz9XUsCHkW1QAHgL2STZk12QGqmvAB0NFteERkvBIH7INDsNW9KKaAYyDMdBEMzJiWaJHZALqDxQDWRntumSDPcplyFiI1oDpT8wbwe01AHhW6%2BvAUUBoGhY3CT2tgwehdPqU%2F4Q7ZLYvhRl%2FogOvR9O2%2BwkkPKW5vCTjD2fHRYXONCoIl4Jh1bZY0ZE1O94mMGn%2FdFSWBWzQ%2FVYk%2BGezi46RgiDv3EshoTmMSlioUK6MQEN8qeyK6FRninyX8ZPeUWjjbMJChn0n%2FyJvrq5bh5UcCAcBYSafTFg7p0jDgrXo2QWLb3WpSOET%2FHh4oSadBTvyDo10IufLzxiMLAnbZ1vcUmj3w7BQuIXjEZXifwukVxrGa9j%2BDXfpi12m1RbzYLg9J2wFergEwOxFyD0%2FJstNK06ZN2XdZSGWxcJODpQHOq4iKqjqkJUmPu1VczL5xTGUfCgLEYyNBCCbMBFT%2FcUP6pE%2FmujnHsSDeWxMbhrNilS5MyYR0nJyzanWXBeVcEQrRIhQeJA6Xt4f2eQESNeLwmC10WJVHqwx8SSyrtAAjpGjidcj1E2FYN0LObUcFQhafUKTiGmHWRHGsFCB%2BHEXgrzJEB5bp0QiF8ZHh11nFX8AboTD0PS4O1LqF8XBks2MpjsQnwKHF6HgaKCVLJtcr0XjqFMRGfKv8tmmykhLRzu%2BvqQ02%2BKpJBjaLt9ye1Ab%2BBbEBhy4EVdIJDrL2naV0o4wU8YZ2Lq04FG1mWCKC%2BUwkXOoAjneU%2FxHplMQo2cXUlrVNqJYczgYlaOEczVCs%2FOCgkyvLmTmdaBJc1iBLuKwmr6qtRnhowngsDxhzKFAi02tf8bmET8BO27ovJKF1plJwm3b0JpMh38%2BxsrXXg7U74QUM8ZCIMOpXujHntKdaRtsgyEZl5MClMVMMMZkZLNxH9%2Bb8fH6%2Bb8Lev30A9TuEVj9CqAdmwAAHBPbfOBFEATAPZ2CS0OH1Pj%2F0Q7PFUcC8hDrxESWdfgFRm%2B7vvWbkEppHB4T%2F1ApWnlTIqQwjcPl0VgS1yHSmD0OdsCVST8CQVwuiew1Y%2Bg3QGFjNMzwRB2DSsAk26cmA8lp2wIU4p93AUBiUHFGOxOajAqD7Gm6NezNDjYzwLOaSXRBYcWipTSONHjUDXCY4mMI8XoVCR%2FRrs%2FJLKXgEx%2BqkmeDlFOD1%2FyTQNDClRuiUyKYCllfMiQiyFkmuTz2vLsBNyRW%2Bxz%2B5FElFxWB28VjYIGZ0Yd%2B5wIjkcoMaggxswbT0pCmckRAErbRlIlcOGdBo4djTNO8FAgQ%2BlT6vPS60BwTRSUAM3ddkEAZiwtEyArrkiDRnS7LJ%2B2hwbzd2YDQagSgACpsovmjil5wfPuXq3GuH0CyE7FK3M4FgRaFoIkaodORrPx1%2BJpI9psyNYIFuJogZa0%2F1AhOWdlHQxdAgbwacsHqPZo8u%2FngAH2GmaTdhYnBfSDbBfh8CHq6Bx5bttP2%2BRdM%2BMAaYaZ0Y%2FADkbNCZuAyAVQa2OcXOeICmDn9Q%2FeFkDeFQg5MgHEDXq%2FtVjj%2Bjtd26nhaaolWxs1ixSUgOBwrDhRIGOLyOVk2%2FBc0UxvseQCO2pQ2i%2BKrfhu%2FWeBovNb5dJxQtJRUDv2mCwYVpNl2efQM9xQHnK0JwLYt%2FU0Wf%2BphiA4uw8G91slC832pmOTCAoZXohg1fewCZqLBhkOUBofBWpMPsqg7XEXgPfAlDo2U5WXjtFdS87PIqClCK5nW6adCeXPkUiTGx0emOIDQqw1yFYGHEVx20xKjJVYe0O8iLmnQr3FA9nSIQilUKtJ4ZAdcTm7%2BExseJauyqo30hs%2B1qSW211A1SFAOUgDlCGq7eTIcMAeyZkV1SQJ4j%2Fe1Smbq4HcjqgFbLAGLyKxlMDMgZavK5NAYH19Olz3la%2FQCTiVelFnU6O%2FGCvykqS%2FwZJDhKN9gBtSOp%2F1SP5VRgJcoVj%2Bkmf2wBgv4gjrgARBWiURYx8xENV3bEVUAAWWD3dYDKAIWk5opaCFCMR5ZjJExiCAw7gYiSZ2rkyTce4eNMY3lfGn%2B8p6%2BvBckGlKEXnA6Eota69OxDO9oOsJoy28BXOR0UoXNRaJD5ceKdlWMJlOFzDdZNpc05tkMGQtqeNF2lttZqNco1VtwXgRstLSQ6tSPChgqtGV5h2DcDReIQadaNRR6AsAYKL5gSFsCJMgfsaZ7DpKh8mg8Wz8V7H%2BgDnLuMxaWEIUPevIbClgap4dqmVWSrPgVYCzAoZHIa5z2Ocx1D%2FGvDOEqMOKLrMefWIbSWHZ6jbgA8qVBhYNHpx0P%2BjAgN5TB3haSifDcApp6yymEi6Ij%2FGsEpDYUgcHATJUYDUAmC1SCkJ4cuZXSAP2DEpQsGUjQmKJfJOvlC2x%2FpChkOyLW7KEoMYc5FDC4v2FGqSoRWiLsbPCiyg1U5yiHZVm1XLkHMMZL11%2Fyxyw0UnGig3MFdZklN5FI%2FqiT65T%2BjOXOdO7XbgWurOAZR6Cv9uu1cm5LjkXX4xi6mWn5r5NjBS0gTliHhMZI2WNqSiSphEtiCAwnafS11JhseDGHYQ5%2BbqWiAYiAv6Jsf79%2FVUs4cIl%2Bn6%2BWOjcgB%2F2l5TreoAV2717JzZbQIR0W1cl%2FdEqCy5kJ3ZSIHuU0vBoHooEpiHeQWVkkkOqRX27eD1FWw4BfO9CJDdKoSogQi3hAAwsPRFrN5RbX7bqLdBJ9JYMohWrgJKHSjVl1sy2xAG0E3sNyO0oCbSGOxCNBRRXTXenYKuwAoDLfnDcQaCwehUOIDiHAu5m5hMpKeKM4sIo3vxACakIxKoH2YWF2QM84e6F5C5hJU4g8uxuFOlAYnqtwxmHyNEawLW%2FPhoawJDrGAP0JYWHgAVUByo%2FbGdiv2T2EMg8gsS14%2FrAdzlOYazFE7w4OzxeKiWdm3nSOnQRRKXSlVo8HEAbBfyJMKqoq%2BSCcTSx5NDtbFwNlh8VhjGGDu7JG5%2FTAGAvniQSSUog0pNzTim8Owc6QTuSKSTXlQqwV3eiEnklS3LeSXYPXGK2VgeZBqNcHG6tZHvA3vTINhV0ELuQdp3t1y9%2BogD8Kk%2FW7QoRN1UWPqM4%2BxdygkFDPLoTaumKReKiLWoPHOfY54m3qPx4c%2B4pgY3MRKKbljG8w4wvz8pxk3AqKsy4GMAkAtmRjRMsCxbb4Q2Ds0Ia9ci8cMT6DmsJG00XaHCIS%2Bo3F8YVVeikw13w%2BOEDaCYYhC0ZE54kA4jpjruBr5STWeqQG6M74HHL6TZ3lXrd99ZX%2B%2B7LhNatQaZosuxEf5yRA15S9gPeHskBIq3Gcw81AGb9%2FO53DYi%2F5CsQ51EmEh8Rkg4vOciClpy4d04eYsfr6fyQkBmtD%2BP8sNh6e%2BXYHJXT%2FlkXxT4KXU5F2sGxYyzfniMMQkb9OjDN2C8tRRgTyL7GwozH14PrEUZc6oz05Emne3Ts5EG7WolDmU8OB1LDG3VrpQxp%2BpT0KYV5dGtknU64JhabdqcVQbGZiAxQAnvN1u70y1AnmvOSPgLI6uB4AuDGhmAu3ATkJSw7OtS%2F2ToPjqkaq62%2F7WFG8advGlRRqxB9diP07JrXowKR9tpRa%2BjGJ91zxNTT1h8I2PcSfoUPtd7NejVoH03EUcqSBuFZPkMZhegHyo2ZAITovmm3zAIdGFWxoNNORiMRShgwdYwFzkPw5PA4a5MIIQpmq%2Bnsp3YMuXt%2FGkXxLx%2FP6%2BZJS0lFyz4MunC3eWSGE8xlCQrKvhKUPXr0hjpAN9ZK4PfEDrPMfMbGNWcHDzjA7ngMxTPnT7GMHar%2BgMQQ3NwHCv4zH4BIMYvzsdiERi6gebRmerTsVwZJTRsL8dkZgxgRxmpbgRcud%2BYlCIRpPwHShlUSwuipZnx9QCsEWziVazdDeKSYU5CF7UVPAhLer3CgJOQXl%2Fzh575R5rsrmRnKAzq4POFdgbYBuEviM4%2BLVC15ssLNFghbTtHWerS1hDt5s4qkLUha%2FqpZXhWh1C6lTQAqCNQnaDjS7UGFBC6wTu8yFnKJnExCnAs3Ok9yj5KpfZESQ4lTy5pTGTnkAUpxI%2ByjEldJfSo4y0QhG4i4IwkRFGcjWY8%2BEzgYYJUK7BXQksLxAww%2FYYWBMhJILB9e8ePEJ4OP7z%2B4%2FwOQDl64iOYDp26DaONPxpKtBxq%2FaTzRGarm3VkPYTLJKx6Z%2FMw2YbBGseJhPMwhhNswrIkyvV2BYzrvZbxLpKwcWJhYmFtVZ%2BlPEq91FzVp1HlQY1bZVLqeNR9SAUn6n0E28k%2FUuGkNpP1DBI5ch%2FEehZfjUQ9aE41NhETExoPT2gGQz0IhWJbEOvTQ4wgcXCHHFBhewYUiFHuhRSAUVmEHeCRQHQkXGFwkAgyzREJCVN7TRnTon36Zw3tPhx4EALwNdwDv%2BJ41YSP4B2CQqz0EFgARZ4ESgBHQgROwAVn9GTI%2BHYexTUevLUeta4%2FDqKrbMVS%2BYqb8hUwYCrlgKtmAq1YCrFgKrd4qpXiqZcKn1oqdWipjYKpWwVPVYqW6xUpVipKqFR3QKjagVEtAqHpxUMTitsnFaJOKx2cVhswq35RVpyiq9lFVNIKnOQVMkgqtYxVNxiqQjFS7GKlSIVIsQqPIhUWwioigFQ%2B%2BKkN8VHr49HDw9Ebo9EDo9DTo9Crg9BDg9%2FWx7gWx7YWwlobYrOGxWPNisAaAHEyALpkAVDIAeWAArsABVXACYuAD5cAF6wAKFQAQqgAbVAAsoAAlQAUaYAfkwAvogBWQACOgAD9AAHSAAKT4GUdMiOvFngBTwCn2AZ7Dv6B6k%2F90B8%2ByRnkV144AIBoAMTQATGgAjNAA4YABgwABZgB%2FmQCwyAVlwCguASlwCEuAQFwB4uAMlwBYuAJlQAUVAAhUD2KgdpUDaJgaRMDFJgX5MC1JgWJEAokQCWRAHxEAWkQBMRADpEAMkQAYROAEecC484DRpwBDTnwNOdw05tjTmiNOYwtswhYFwLA7BYG4LA2BYGOLAwRYFuLAsxYFQJAohIEyJAMwkAwiQC0JAJgkAeiQBkJAFokAPCQA0JABwcD4Dgc4cDdDgaYcDIDgYgUC6CgWgUClCgUYUAVBQBOFAEYMALgwAgDA9QYAdIn8AZzeBB2L5EcWrenUT1KXienEsuJJ7x5U8XlTjc1NVzUyXFTGb1LlpUtWlTDIjqwE4LsagowoCi2gJLKAkpoBgJQNpAIhNqaEoneI6kiiqQ6Go%2Fn6j0cS%2Ba2gEU8gIHJ%2BBwfgZX4GL%2BBd%2FgW34FZ%2BBS%2FgUH4FN6BTegTvoEv6BJegRnYEF2A79gOvYDl2BdEjCkqkGtwXp0LNToIskOTXzh%2FF062yJ7AAAAEDAWAAABWhJ%2BKPEIJgBFxMVP7w2QJBGHASQnOBKXKFIdUK4igKA9IEaYJg%29%20format%28%27embedded%2Dopentype%27%29%2Curl%28data%3Aapplication%2Ffont%2Dwoff%3Bbase64%2Cd09GRgABAAAAAFuAAA8AAAAAsVwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABWAAAABwAAAAcbSqX3EdERUYAAAF0AAAAHwAAACABRAAET1MvMgAAAZQAAABFAAAAYGe5a4ljbWFwAAAB3AAAAsAAAAZy2q3jgWN2dCAAAAScAAAABAAAAAQAKAL4Z2FzcAAABKAAAAAIAAAACP%2F%2FAANnbHlmAAAEqAAATRcAAJSkfV3Cb2hlYWQAAFHAAAAANAAAADYFTS%2FYaGhlYQAAUfQAAAAcAAAAJApEBBFobXR4AABSEAAAAU8AAAN00scgYGxvY2EAAFNgAAACJwAAAjBv%2B5XObWF4cAAAVYgAAAAgAAAAIAFqANhuYW1lAABVqAAAAZ4AAAOisyygm3Bvc3QAAFdIAAAELQAACtG6o%2BU1d2ViZgAAW3gAAAAGAAAABsMYVFAAAAABAAAAAMw9os8AAAAA0HaBdQAAAADQdnOXeNpjYGRgYOADYgkGEGBiYGRgZBQDkixgHgMABUgASgB42mNgZulmnMDAysDCzMN0gYGBIQpCMy5hMGLaAeQDpRCACYkd6h3ux%2BDAoPD%2FP%2FOB%2FwJAdSIM1UBhRiQlCgyMADGWCwwAAAB42u2UP2hTQRzHf5ekaVPExv6JjW3fvTQ0sa3QLA5xylBLgyBx0gzSWEUaXbIoBBQyCQGHLqXUqYNdtIIgIg5FHJxEtwqtpbnfaV1E1KFaSvX5vVwGEbW6OPngk8%2FvvXfv7pt3v4SImojIDw6BViKxRgIVBaZwVdSv%2BxvXA%2BIuzqcog2cOkkvDNE8Lbqs74k64i%2B5Sf3u8Z2AnIRLbyVCyTflVSEXVoEqrrMqrgiqqsqqqWQ5xlAc5zWOc5TwXucxVnuE5HdQhHdFRHdNJndZZndeFLc%2FzsKJLQ%2FWV6BcrCdWkwspVKZVROaw0qUqqoqZZcJhdTnGGxznHBS5xhad5VhNWCuturBTXKZ3RObuS98pb9c57k6ql9rp2v1as5deb1r6s9q1GV2IrHSt73T631424YXzjgPwqt%2BRn%2BVG%2BlRvyirwsS%2FKCPCfPytPypDwhj8mjctRZd9acF86y89x55jxxHjkPnXstXfbt%2FpNjj%2FnwXW%2BcHa6%2FSYvZ7yEwbDYazDcIgoUGzY3h2HtqgUcs1AFPWKgTXrRQF7xkoQhRf7uF9hPFeyzUTTSwY6EoUUJY6AC8bSGMS4Ys1Au3WaiPSGGsMtkdGH2rzJgYHAaYjxIwQqtB1CnYkEZ9BM6ALOpROAfyqI%2FDBQudgidBETXuqRIooz4DV0AV9UV4GsyivkTEyMMmw1UYGdhkuAYjA5sMGMvIwCbDDRgZeAz1TXgcmDy3YeRhk%2BcOjCxsMjyAkYFNhscwMrDJ8BQ2886gXoaRhedQvyTSkDZ7uA6HLLQBI5vGntAbGHugTc53cMxC7%2BE4SKL%2BACOzNpk3YWTWJid%2BiRo5NXIKM3fBItAPW55FdJLY3FeHBDr90606JCIU9Jk%2BMs3%2FY%2F8L8jUq3y79bJ%2F0%2F%2BROoP4v9v%2F4%2Fmj%2Bi7HBXUd0%2FelU6IHfHt8Aj9EPGAAoAvgAAAAB%2F%2F8AAnjaxb0JfBvVtTA%2BdxaN1hltI1m2ZVuSJVneLVlSHCdy9oTEWchqtrBEJRAgCYEsQNhC2EsbWmpI2dqkQBoSYgKlpaQthVL0yusrpW77aEubfq%2Fly%2BujvJampSTW5Dvnzmi1E%2Bjr%2F%2F3%2BXmbu3Llz77nnbuece865DMu0MAy5jGtiOEZkOp8lTNeUwyLP%2FDH%2BrEH41ZTDHAtB5lkOowWMPiwayNiUwwTjE46AI5xwhFrINPXYn%2F7ENY0dbWHfZAiTZbL8ID%2FInAd5xz2NpIH4STpDGonHIJNE3OP1KG4ISaSNeBuITAyRLgIxoiEUhFAnmUpEiXSRSGqAQEw0kuyFUIb0k2gnGSApyBFi0il2SI5YLGb5MdFjXCey4mNHzQ7WwLGEdZiPPgYR64we8THZHAt%2BwnT84D%2Fx8YTpGPgheKH4CMEDVF9xBOIeP3EbQgGH29BGgpGkIxCMTCW9qUTA0Zsir%2BQUP1mt%2BP2KusevwIO6Bx%2FIaj8%2FOD5O0VNrZW2EsqZBWbO1skRiEKE0DdlKKaSVO5VAuRpqk8VQJAqY7ydxaK44YJvrO2EWjOoDBoFYzQbDNkON%2BUbiKoRkywMWWf1j4bEY2iIY1AeMgvmEz%2FkVo9v4FSc%2FaMZMrFbjl4zWLL0%2BY5FlyzNlEVYDudJohg8gPUP7kcB%2Fmn%2BG6cd%2B5PV4Q72dXCgocWJADBgUuDTwiXiGSyZo14HOEQ2lE6k0XDIEusexDzZOMXwt1Dutz%2BtqmxTvlskNWXXUQIbhaurum9GrePqm9Yaeabjkiqf%2BbUvzDOvb2Y1E%2BEX2DnemcTP%2FzLcuu7xjQXdAtjR0Lo5n4%2FHs%2FGtntMlysHt%2B29NXbH6se%2F%2FWbFcyu%2Br28H0MwzI30DYeYTLMXIA2EG8QlHpAsyS0EfEToR0a3utIxFPJ3kiIHCCrZ66b0e2xEmL1dM9YN%2FMwS5p01N5jMX%2FBLKt%2F1R83l0LyC29M6%2BiYxo%2FUNg%2FEF7c2WyyW5tYl8WnhWg2%2FhyySbD5UhnDyS7OcU0dnrFw%2BDfGdI7v4QfYIIzOMq9hFtY55gmvC7jZ2FK7sEdrn6IXBuucYhjsGdQ8z0yEbWkkczjjsE5hNAIZrPx2zOLZDmKNXcXtg7EMqidAEEWg%2BSJCBBNwxvxJfc%2FbZa%2BKKf%2BxoKZybnq5vaqpPTye7CiF%2BZFjxZ8%2F7Qij0hfOG%2FcowPA1rT1l4ymWnrKmxxqfErTVrpgwPlz1kC%2BOy8NMDz6c%2BIO38K%2Fx0xkPnLW8Kx6qGAoQdL%2BTD9V9rb%2B%2Fctn%2F%2Ftrxz8dUrZrD%2Fzk%2FferF0cNt1BzctmX2FZPXt%2FjnFCQNz4Ah%2FiKllGiCMs1w5Lkg0kiEwj6VTXCDKsX9rMpnvIj9pcDecXAIXMnqn2dTUbN6w0XQ9ue6FV%2FnnXCH7S3lPWGltVcLsH75ub3ab7A8M28caNrIeOr3o5Q0yFsYL80xaa0EY%2FUEczV7icUMY5pnelAkmUAXmHYjvFWFGxuqlSaow3OM%2B%2FiYY7%2Fl%2FhVELF4EjRqNR%2FbvRbOY%2BDUGzGR%2FOh3EqmE%2FugIQQguGt%2FeMYz%2F%2BL0cimjeZfQDI3phXMbMQsqH%2BCjwVz%2Fhf4idHovgVmB8gLvjbicDcC%2FNypP536E%2F9N%2FpuMibExdohBmNwyiaZdJGoigos7GpF222xrfnZhML%2F7Z%2BylaqP63Hr%2Bm7bdUkQ6%2F2cXqdfmvwixY%2Bs2ksXFeXcE%2BiX0Z%2BIow76DBNgjJ7TOdUK18iPsPflfQD%2BDPsZG2Aj9VmKMMJ4fYRrhIaxhTDR0Elh2vA6h%2FAE6xUb29mj3sjmL72petXjejPy%2Boel60M99tFduCI59N3221xe7apOvxs6aHs7vab1IqY2tv7q2xsHeHGml%2FcV06u%2F8S%2FxTjJ%2BJYc0bWEX0ukW6YmIbGkJRMdjJ9mYIH5QIdJF4hvRGyK7cC7ctImQRcUET99fGXOoft35GYLMQu%2Bg2smnkgZUrH8AL%2F9Si217IssJ916nv14ZrJrvdxLkQvrvtBcjgPC0NXOicO8Qf4mcxPqh3hgUw3DDfdvLJXngg7N3dN2zbPJSaed3OfZnMU7dvmznp3C3bruO%2BNmue0LFsy7S%2B6265%2BfCKFYdvvuW6vmlblnUI8xCXp37CrOZv4B9gauDBlYp7adcUXB5DNCwYImlXOJJKkAdvExXxVvKEYnCo%2B3eIskP9qrrfIYs71CccBjfXRC52udTHHdaP1A1ui%2FVvH1otbrLrpNXBsGX5B89QghDyimlvNB2KfkxZ5C9%2Fem3%2Bd1%2Bd%2F%2FIfFp2%2B2Oxn%2Fs%2B9n%2F79p39S3s8idN6g0yZObwJOgKUpNB3GyU0Ls0PbRzIRq4lcarLKOJBkLRzJQD4j2090XrbA7DW8K3jNF5hlGS5e4V2D17zgss4T20egOJte5iD0bReM9yjTxnQxCRj3c5kFzGJmGbNKmwGw39IJDJcXJZGMkaAB4jyJAKw0jt5IAuIE%2BA%2BU3cVAZZrq9zhDyBrU8oosuxcGNTzCKJfla7JjNVmuSb%2F%2BtuzN2H%2BX4vlB%2BPpdfMXXmuVsNiub1T34SFbjYw5itEvVi0K0Nt9pNJUMI7SLGRhf2xipfCYf8z5OdlGKayOucFeVPeS%2Fdbo3lBrbSMmwUiQN5%2Fed7g0Ds1s17IuZC5kNzM3MZ6EWCa0DtekdJfAxz%2BR%2FOX28sND7yRMTBcf%2B%2Bs8mQCQWHya4qBv%2FufeMoWyslPA9DtMxUknxkH%2FyfTnm2CMYzs%2BCq3r7PxY%2FMXomrvTEsRpfEGHa%2BWN8E1AHjElb7d06ddA7oK%2F%2B5Mdsv9EtPms0jv0Z5kf1FqPxWdFtfFr0kHfgDX0Y%2B5PRSG7RUj0tQr7rmfX8DH4G5W28kKeJLtmQsQkuwMP1pk16EV4sl7vrMJATfyUWo%2FGwEco4rh4XFQgaiUX9qxZHrMQqKnz%2Fc2d8b9TysYrAuXpP%2FRf%2FGr8b1qwwc5a%2BeuLa6S6sneNXToG2XrEJi4R5SGs8Sq2S3d97bsfCRaTdaLwKClRHt37mkudvXbjwVrLhuYeGhh56bvfQkHpk2CwvwClqgWwuBfndC3c8dwmstj81KkagcUgbfPY8Zje0W%2F82VPWJHmSq6pP8hPWpotc%2FEexDOK3qU%2BwngPhOCiO9MJRm8TJefjelrzoKnG2Bn%2B1NCUmPE4gHFmBN9jrTigRIpsACrc9Gstg58ULkp9467%2BGf%2FeFnD5%2F31lNrt2967dhrm7bzI%2BVT5m%2BfzKhvf2MzpICEm79Bopkn07lt1762adNr127LwVqQLdJ5%2BlpQDcvHPQtVY5knhYrK6q8%2FJsiP6EuhGZdFdaNszjvpqvc%2BPI0CdjN0AXsFOC3ZfALDJwr4q2Xq%2BGF%2BGNbsxUg5NLLIEXi8otcDQcUts0D8eQ1iVDRAMBTsYiNdRIxE09EIBJO9A2xqgERTaW86BUFn0OD2xFO97FAgFhF6OoQ7prYt4XwSeUgQHiJyDbeke9IdQntciLQ1FlJMaYcUNvZBg%2BFB1ubjlnRNvl3o6IEU2w7fdNPhm%2Fhh%2BFLysUu6%2B%2BDLHkOkrSHYEjH0tEPe7WdD3uyDgvAgK%2Fm4szFFR7ch0toUgBTdWHr7EpaWru6%2B6dmbbnqWEbV2EtxAsXiZAPTtGPSbHsotI2leoM8TePEqgSQprs7AGFf8kuOkPdZPXGb55POAW1d%2FjLST9v5YflasP6v%2FCO7%2BGNAPC2BMZWmsOjp2NNbfHwMCJD%2BLPVL%2BD%2FOYlWEEI%2F9jpPddOFkB5d1GSuKZYggmCCd7JUxD7EXAzxyirYnNDLdDZoFdx14kivkvGc3579Jm36reTTvDgBnaO6vzyQ6chQmlsMoIkIQ2%2BbBDWBud1Va4pcCn8CPqxlh%2FfgtG8IPaPH8C5wk6%2FnZDv69jurV5QhtwE0x2iqOsj9Mx8B9%2F0EaUdiPfOYYDCi%2Fq9jhWRuupMDEU0%2BCtX0sDFxv07T%2FK5niBPqN9%2BtQjgEc31NGCXFeMcCEuQBIc%2FBK4CO78u7EPYvl3yaEfK3vcb6qP1R2tI7vUjVDDUdKubsSrNjYKY1qBEa2P50SJoaXiksIoLiCwnxS6EBuBde87botNfdEWwYvF%2FR0%2Fu5yCqhGeEOR2ynSeyXjt6ka7neyye8kryBSWE52y%2BRBgogrXPZ8E1yIHoHIFUM%2BAbJhE7lbMtt8ApL%2BxmZW7PwbjAO0fAVoXQOuiSP%2FksIVdFZ0aulsamKUzwPZ%2FNYDMJRBPCxsBqLzqHyneXF6Ej9HlIFo7%2Bpg%2BjUb3unRmGpstGkm6etOuDBGA5wCMefp1gTHcdZlvPBXlOslvYTp1cd8UjYLVd%2FJ5awNrIOKLnIt9MD9qdrKrWCvA6ALm3QV9VrsPm60Q7%2BRHJHP%2B2hqfugo%2FMvI2H%2Fmqr4b9tFnKSRY1Y5Ek80Nm%2FWIhr1ikKnxGz9TWXrokf9xwujfvcOTtNTWnxd0F37Y2W79tteBqZ4G5qLCuomw%2BnSr28QESCRVLTyYKILGJOPfcnaIFOsewhRdvv%2BrWa%2FWih0vlbX6Zb75T5C0qNKVFvH1QL%2FvazSWgC2s6oWXXIuUxQelKiJbowuJDQViatLmLijg9CQBMg8WiPgiw3LEeYRmm5f%2BXdnvkDnxLLjMLxtvX74C3OlwPQqx4xwIdpPx38LrlDphiyWUWHWKAzzxurS%2FxTo%2BP5wGFak62ap1PVFFN4v%2Fy%2BxuR39WnIO7lsWfwgVsK17wxrs9K8ltIKuhkw7f%2F6dhK6gQokFKhWX3urrjk%2FrnI0pgfpGMeuQIUaEM7%2BGF5q2iMkCaMQwxxOzcvU0eXbsnS9XknXvP7Gtw5dwPXlFu2ecvSHEZgNDsU6x%2FGdXBYXyOQjzZReSedeEPY6nEv9gJR4oBQJtFO6Kd0fwC6BO4LNHDeBujB6dSNcUQC9zIv2LnAzGk99bUDrdFY%2B9yGFQtEo0GQPNv6vS2drj4%2B1jHbv3aJSMUWP%2BQTZrmbNTjU8wyG%2FiXNNpskybLcJ3CiTF5Ir%2BJYzmJwE0mSVhlxbtbmvweB3ulB6Til5UuUZydpgiFVeobhU0WaBqpJ198d%2B%2FXeNRTZ9%2F1OPfG7%2B2hwzd5W3D%2BhmyjsRcUg%2F%2BCavb%2B%2BVh2ls3L7zT%2FetOnHNxeerv313vzLVqPai4nJv%2BK1FC6040%2F4udw7sAb3laSg0XCkAAs0npBO6VJabS4Elk%2FU%2BD4gTXW%2Bj0wnrMlqNamq4tMIYB87tE10i0FR3LZNhJsb7%2FR561btmes8YBCRkhYNByRtKd55mqTas9FYhJnbRGHuOh3M4QTdgQSqmgRxuzGdSvZGcbMxNQGk5C3ebLjoXIOFM4l%2BWKHmLTJwRv9E8GWJ6dYvf%2FFmEyEGr%2Bgyrr1p5zrgkz0Cw2j94Hv8Jdx7dIVegBSNtgsqGsRQEYiIBoXwD0LNvQ5d7s5Z00QzwNhqZA0b%2BtMG1tQq5nd84uq8R0zPvX35G8uRaze4jcOHzz0w1%2BQ2BIRvf6J6Kgatnrbiem%2BCFvAxfkrndzD9MFPP1GWTUHclpASUkCNAQkpCCcCgDSUDAhDZ%2BCuEkgn8J7i9nMA7pA4lISappxILKfAeSAbIcSDuN2bJcfZILqeO5rLs0MnngSHYRdrHjmaz7JEsEPw51ZqDJDmUIOZIe34WaQeegNsJn1qz8AIpT3yCjyEih%2FxELkuJ0lEMYTLVCiWpo5oYMleMH6USyYJcD%2BuOe%2BkWKpn1Qns34iyYDjkSLvgnZXcgVQNeqINXr48m3iS7cjm8tedyY0f1QvTnHHdsrKby%2F%2BSSbPY8%2FNH6vpl%2FEsq3Ae4ZU1HC44KFiI9o7CEgab%2FRqHbj7s5KAg06s39ZP%2FzxI%2FmVuF%2FTbTSy%2B3Fb8If9%2Fcv7%2Bwt91yy8RfP1QXtW5RzQn7qIiZyuFM5QfJ5E9uVnqT85TanFx0lkP3ukBAMprvsRyi%2FC8NAJL1xbIIirSvnSj4O5netb4JxmNANHPssHAcHMHsFRgEug816gDBeMbdfiuRcghqYcm0%2BXxx%2F5IAEtN3fqFF3LzAXqwoT0PN0OVTNqxo8sxMkd5Ig6k79Zk7VxxX6gMLOZFQgvpW2RrMW1D0BDihaXQ9wVRoBxPLfpknmkeMtoB%2FqM9cRc9IqmMD2XUmdZ7GSRKPUZvChf8BoykriM2MnKYbOHX8R7cLdNCxSFFVQqoYswnlWtlFS2mNkhswVpZiQW1J%2FUKFfipHGlUkM6UKBhMz1istELIHJLMSctu3ugzfaVSOjKvUgc%2FTHK4Sdg2Wscz69leKIkkrwuuWiOe9yGYKQXRumkC3qbRcMwrvhjNXgdZk3RxAUEhuSPvn3nnd%2B%2BU%2F3vlVOmrJzCD8JLxV1OHRjrZifbcFDOuRNTGqdgQm1tSNJ2OcQ04YiEXuxtII1ECSQRoQGYioEsgCfchB4ghAtw7FfJre4WZ9hkVi9MtjuWqtdNDlpMrfEG9fOT6q21okg%2Be4As38MfGquNt7oUws6Ysarj1%2FefE%2Byst86YUVNvDdts3Pv5c8m%2FaP0C%2Bf8%2FQb%2BIMnGq09BgwN01oIOAnAdagI8mBSrqk1gxTDUBOtk2ousEtBH2z4Ir2d3f6k8PXXVlt2qN9RODxRuoJT%2Fv27wm09jRYVc%2Fe%2B%2Biyx2tyzJb%2Fn3J0htXP87eSsQaf2Ly0s6Zmxela88REy1cf4273mI3iXNJ7KxrZibOm9xm6rl4fqy%2Ft27smU8tOfdW2ucBzg2UfmOIVyLIl3kpYlwphDISTXJXsctmiDtN7fNV6zelgxwnWxsVr83Aj%2FS5ki1jL%2Fa0GC6%2B2L6Um%2BaoddlNFuj%2BbJ8mH%2FiaLh8I0%2FU51NspIEfq0dohwyFXKgm4NggwQ4rRhCOUFtxxo8XnitT4cnGfT93IS8FaT85XE3H5LMY4zIEPL1hw443wz%2B1UmhTJyJGxZzw%2BwsKkKZgUiVtKOKMEb2AKHTv61FNc01PQFwKnvsZ%2F9pPA4RKTASWahmh%2B8MxwzHxKy74IRn5LGRjsPUUwTu64UYNY38caqd7HKucZ%2FtHnODtENw%2F2UfHRMaq1UUPDJQ0OKkWCeet5fYOhII1VRz8%2B%2FElg5j4Gxur3J8o2PJ4rg%2B2d08T%2FfwEzSVbyZ9XPro95T477lRKqUSRXQnauHNsISAl27oWi6Fv9z48JMv8r%2FaMMj8onCP%2FDuDZOuN%2BGPPr%2F%2Bp7bx%2B7JlbYdppcNhzKU%2F1Px5aiaGDn%2Fs1iGMaBcleKUo%2Fv9rcxkZj7DBEKOfrayytXNLYiUdBY%2BpleQXdnscKlQcpzuWluxsieeyuXIK6SdxozitWyGOV3vOHHjguyCQ6fpIYy2JwvrQEF%2FQa9Pdf%2FQqOSqCiE%2FEE1%2FXIVKTc2tzWbHnimrEd%2BVyz311Ml3P0GVTj7PD5aDnsvCvH36alEaPMePcMegXs7x8igTu4B9v7G9vTHvhCu%2FkzIdx%2BBxC0ay9zRSvoS0F2lIxI%2BX7klU63I40gLQ3w5ep5na%2BSFnba3z5D64zv%2BQtM4n4ffG3tq4aNHGRfxgrXPMim%2B5487abL7xhdseIRn1KDl%2B7aINixdv0OD%2BJSPwKf5%2BxoP6aiTeQIDVlIhMcL1H5R9PYXvprs3fv2bO7MOplCmweuiq2JRZ1zz%2B9a%2Fv2PH1Hfz9236w%2BZrPXvWfAxlj4NLLHpq3c%2FPQ3uvmvbrjG7fe%2Bo2y%2FcLdtE6VUlXi0ASb1VLUBVSUWSU4HdvAraTyS8xzM8NxvxFkXV6pUVRiJwcgC5zEeht4rwcp7ki0k41G0qlQhG1Vzlq8alEmnFi58caB5Q9vn988MLhqyVlHvLEWjtQFeupdiocF%2FtkkOGPW2ibWaBTkeZ%2FdvPWazXfOnnvL6jkRXpi85sFzZt%2B55ZptW3bl1cCCHZPD06MhySha7UFzjcjbp8fOecFCirzAG%2FyVjBX6OFIaadSjQq1nNhyIe8tVbaaSdHlXIWKacMeuZA1uxS95zILhyrxAdsXTL6m7kNQlx2P9uZf2qhufePFFbpI6%2FOU0WcP99RrCsrwseVot5mtytpf6Y0gm9sdeyKnPQ7onyK4nXlR%2Frg7H95M1upzu89DH6pgUcikoiihJ6NJKmRxV1x%2BMJiOA3YwhDRQrWU0u%2F0rvq0VYXnyCwsLeTJYBq3dAtJDavuzyoVpzZ99Z0%2Ba0uoiFH%2FxcqgDR7rUFeOrUn6Cywb8ZeNMbhLV5ugP9l0zv9UN5b5mFkjzxUcpPJCn3V402pRxtJd2GrnLdhtVk9ZSZh9W91fCSH5B7ofxPiWL%2Bj3D%2FuwhBRdyAyozeZwvQzs79soi%2BBKSnafLviZCcfrpBpLyimfLfTyJtbyruIQKD01tUwJyKEo%2FybaxkSNFUMdMkhQoJyRBQFhnUkDQSXhTM%2B3NmY0EDM7ffLIjqWEGt8lCO6mLia3PukFnghosJD5p5SIho%2FVDkzQfLE%2BIrYoJXkD19pdP7OwG%2FvoIUtagiWiZ4PAFTHHlTVhRZ7dYmPar%2BNJ%2B8JhmR6DFK5DV1foHoLNO%2FpHrvZfmWZ15RQlwvoVDKhCWNK3CCch9lfFBuAqUgpFSShmNaPj%2Bi5%2B%2BWZfKeViJfW5HnUakVL4UCNVkA4%2BETfIqx4B5xSaP2L1yn0zn2ltPn4%2BOqZGmwwEVCaCSqG53ldtL1oLGAhdMLd09MpCCF6tD6ZnAZBY9hDaYsP0jzZ0j5ZjKsF4i1UmLuhbJMCnYJPt5VwFNvmZawXjEvLJqIH8STonZjq7BZ8gKgR20C9MDFqJAX1H64QW2NEup6qgzLP8cvppL%2FNNTOBTCJABOHeWoXzLhw4Wuy7gaBtjKr9kgKq8ZlRYBS32Lpxc8vIhpNDTfyNXWybMJbn2RyQ5EmWc2QF9wmSZ0KYCE%2BcPuYO6b15Uotj2Kd4MItLS7gtFbkTdrFND6pvEZqv5Yv7jXAus7Pg7avo7KDot50NX3CPkP%2BKps8J9%2F3mGQIteY%2FLGPC%2BL7872SPR2br5fy8MtKBMHedGuM28%2FMZmPJMrGgi3Gb1S%2BSi1%2FL%2FzrZwO9XH1ce%2Fz7ZQ1WSoY%2F%2BpMb5FT4ua0Wm%2BJf%2F298nFmChEQ%2BTi71est4mq9VYI6RsymoRJKYidElT2FGnDTZvqtfhGAFTbeqEw68GqtfmbVa%2F1IFO1%2FjdWr%2F8BDRRtQh9XNjubEm4aWVpVonpTGR7PVGc%2BKJNoBIWF7kYi4gUV3r1U6723i6TxUl3n3%2FtM27aZfKb7THiHW9VzFSwHJ05VfK6Ar7kaB0XgPPE0BSkSFKsBUpaLihEWoA9wBt8qirh2VSOkZwXEwyrxZ5jyt2rJmSo9gX7cg6jsEUGJU9z9xJPOEM3uQQxKgkh35DNATnVyrmJ3mbCNyIB%2Fyox4wH1bg2DwN7q9kov4pFqny8oSm3RQbGgJ1QQTs6ZMLilOVYJ9v6Wha3HcJ9jddsXp9YhGUXLXt%2FqMDnvLpPNTXfNa60z5%2FyjXQOMq%2BlNmwh5egpYrdfZQZV9rI47xlRkuyTjpzsmCBSWNkAXVoK8sgYWqQJWbo1RLo6QH0YW6pxqfCnRgkd%2BRiFjUQUQ7poIaYoakgXxwFd9BuuI38H1xBxXSFb%2FpBDIKQFn7YB3dB36l7sG1FLaKiBdp1KxLvfswap%2F30lnVESgNnvjbUoT6w9N%2BXoio0qcYOIM%2Bheg940YimsucQVvli9NEcft2UZwGQwLuilj1fFr1i3NP94X%2BPE7Hpvtj6lBJfJ4R6NvWiaL6MgzWHxiN66DExa%2BdAdAbMYX6HVF8A%2B7rjEZIXAVbDe7PVI9rmN69JOLV1DOSvRPxWNPZBZf%2FNf%2BNy65BhYxxxV%2B77XJ2wfQ389%2FIQPgajXbwMsuAz%2F0IaQcXJavKbRqR2IqyZruXjVC2%2Bhdee%2F5vdnYOedpmVtR3NGXldxSzDSIiBVpkGb9by89UpEPKrSLZmyFDzMab%2FwXl2CNe7s%2FqCtTvWgG5kpBmCBlSzDS%2Fr8N4uwBwohRW63JTS1y32f0TQsPfXVGEHQrV8%2FNCfiOUVirYcBbIeA2%2BiF68rQIo3B%2FS628vYESr79ehzS7Q9LEL9UXmik9XVHb1yBO3Ngvt5935%2Bk1efkV51mzzrM0LL3%2F20avnwMeKuWyOUZg2TasSqZ%2BKcZQiOn1Iu2Vh497ALUVZiCKt%2Fgh6IvTIj1ZLRjWAkpHKOKovNwp00eqPROiAbiNEKieXwMLcXhVJ1%2FuzmLP4tfxaHR59cBdJVG1kTAgl9ze9QKUEQ946Hkb%2BokJ5JRDyf54Axur1D%2BWS49cLr0tTPEu7UmXrxcSr3XNvumv4yXzInXKH4F7Tc7p17Zt%2Bt%2FqW2%2B93k063X7VW6lALxTY7i1nBXMxcxmzQbabxz%2BtJo%2BwijYaIGMNS8AoSMgAPt84DdHOoMPfjXhF%2BkuH1tZvuFQrRCN07xGcXRX9MYxYchDe5BcHj%2BZ4i%2B42WyPc8Xofi7bbZJN5nJLJ5qr6IqRtzqNlM17SpFsnkEyTWoABEjz4JXOQvzWYuwdnV5LNGOwTM5v9r4RpQ8ZXsYodks3o31JBlzbYtNotisnm22MxiwGFXam5oN1n0TA%2FhRvshvTSDwHff4nNzRo9Dum6PaJbMXzDz%2Bx%2BFkj4L4bFNBb1asqsgH7Dyh4DvbkPtf5yMDKzEwyoaESMSNS9P9gJVA3%2FRTlwoMwZvxECFWxIPNw9gi01nOHjP32esZTtmXHnxvZd8ZtakqQ7ekajbXetpNa6ocTVxJtY%2BuSe69OLz77zh5bDR3xjZMzUz6fxrz1nqrZGcHQHfPVefN%2BfiK86LeXj%2BSc5lPKy%2Bk%2FvCUI%2FDaLFYCWHr6nbXuILTIsb5imNKY%2FrCm28fSMxPhkN1XbNMNZGuqwOBhtTSxWuTk6bw0ZaG86b1hKddePOKuBvmiguYBn4T%2FyOqOyGRBt7bKUI1GjioBC8aUKwF7Q319UgcmtFGIzCJGBqwQij0ynDsfdFGc3TS3BlNfJ25xmzniMkpXXTPvCaD3ZaZvyzjmZdudBostmhb0ORZNN2sJBeed1HXkrUsywueQH%2BL0eCPxmsa5ZpgRJSDZ11yDv%2Bjmbd86vxZfc1WcZJ3UkMq1BOOOVtvu%2F%2BpB%2Ben186d3GTwWAw2jheaJs09%2F%2BLNfZft37DALyrNj1wABMuUKbODyTVnT%2FKYbJ3Tpq8IrNh92dkxOj5P%2FYpZx4%2FycyiVcDYdn4JbEoKdQi9054iBKsygLW46FRGxAb0NPNCm8BSNCPjoKcj6EAus4SuP3rB%2BcV99%2FeTF6294dA8%2BTK6v74MHVpYNRt%2FI30e8QGTOOdfGWzzxcy%2B87a7bLjw37rHw1nPzp0KyyRSeZO%2BQQhInt3dYgvycjrPOv%2BT8s1rptaP84VeywdWX2T4ysr0%2F7TLIs6%2Bx9zib56ye1dM9e%2FXsZmePY3NDs9zlnNVt4%2BWgHJbbz3Livg4P9WWgviOMm4kCRT6I8vw0NbUUEnFvOuFKoxQW1gTsvFirsF5pb7qTUCx4i7VmtToveaDxvK9uOaedVvPRpVOnNz0Q6bry7uiSdQ8t7Vy4JQKVS%2BXPplV2ts4bvCwZu%2BKzgITtxepaPRzWdpv74muvv6RO0SorX6cu%2FdqKn%2FXWnrtp%2FZragz13DUCl5myiFW2Ycvb0PtsXnU%2Btx8pvLFbUspLX68mdegwmOif%2FNPDONajTGoUh6tU56HBJCTBASVvNUB5VIiKpc9kd7kludodSFz7xQbiOmMk5dOYk56gzL6uaf7N8a6MQOHm0ae6snZpFDfuT3%2FjdYzjzwkXXIVHoXNuCfQslQZqBZjTsoHMqrkE4jaYdgkGz2ATOgB3cPkSukD01DnV3ttb1wx%2B6arPqbkcNAHoFPzKUUQ%2BqL0k97pjbZv1I%2FegC9zTFbrrlFpNdmea%2BgIgfWW3wqkcis8ky5FAcRd1If5nNZrl2FFpungc8wpoCl1BpQV%2FScS%2BzjlASyUTVv%2FAJ46gkJI4bHX4lTnloctxPZE1ckS3%2BjG2fKIjkQFyzuo8jvYQG1OrGvJPSTu%2FnSp9PHNTl4z5hK%2F8gtXVKF6gEKiglgcKiRlCESsQCV5QIlKWKpr34lt%2FwkSx%2FJCmP5%2FcBKQfl%2F5gd%2BrOS%2F%2Bp91%2F%2BYCg5CXK2W4M9fu%2B%2F6xxX%2BvnelVuldIDCG0VQTpU9Dw4pRfei%2B6zWx0MLie0gPbyrkmRU7OwT16JGeyXLHqOLqAfVN1GPlBzWtFNzj0TRTCjogtP1NjIvu5habN5Aoa1k66wGpqriVetJgiGdwDZtKhnN0y4n9sXYnsqGmZfDSR15%2B5NLBlhoDaedEm7sxmpqRija6ZEEg2EAnTiAC8IrmFbGz1q08P9PSkjl%2F5bqzYqT9hMmptEXDgTqP3Wiye%2BsD4Wir4jCeoHbbp5hRfpB7BakUIppIlPCD30dR1GtslDz8OsqbXmejFC%2Fv8wu5X2myq7SJ8Avzv9DFUJySf5uNvq4%2BTi7W9D%2FOZrLChdwxmPNiBRqVjnpK%2FaGxRCDspVYKAW9AN1JANoo8wP4BJUlGqdgw6m1qPQ2QW3%2BOfU5%2FieLS%2FNuKpDU3uf8bcAXyBal5jMR2NEAbPAZt0K3hvxHBEDlUxfIGcD%2BN2gNSNx36nfqlAYow0puatNpRz0e4W2oahKzQHsjf2c16ad%2F3t2KTtPobnX6D8C8pd0MDP%2BKx7wnXqGGlLQcvikMErm6TmfsuxJXbSAxqNjOogJLQBLiKEHAE%2BJGTS3JoEhTrz8%2FCB%2B5YlupJ58aOat8Kv4JvregxwcU5Cp8GFAFm1FyOfto6GS2m1NGTS6CPNKkbsTdCBlnN9onMho55BX8IJZtEQ35lk%2BhtwN5A0V3RCPoD%2FyXAcv6pAtbZczRUA64JmcUf4q7Q89ZHLeJVZ5D1Ps%2Ft%2B0iCT3AHVtZC7JDCXfR7OSb%2FXja5H3zQbZL1B%2BULX1BMTEk3AseSpmnKEK4T9ekMIidUCRQFfcbj7z8gNLvzF7mbhQN8h6ZbRset%2BnQWdS%2FZX3k7WpS8P9sfo0iGS64wV516pOhjI6TZ2dApgI5%2BLhxywYoWxKUrykKJsIoDsR4mSrCTg0egMPnLW%2F3Q5Nn8BZEuzqEI7HK3n0%2BzFmuO3TtWQ5WJoG9YqCD6Gc32SxnbnVPfsxvrFXK2dILl7bLthDp6glhcsfp4bYvbSmj%2FmQ94uBTw0E73x2jbNRCvC6VL6GCFDwU7eWQDcC5FY5s0slieRDwtAbRsbLXbaXAuu14e2OJw1dc6jQ3ZdY8v7rv2%2FBWZLqvFWVvvcmwZkK9f5jS4muO9yR5res4kfkRxhV03L1RfPOiPtYi8pd7jNEsOpyTwxpaY%2FyCZu%2FAmd5Or9uS3DYaeqVOhH7gZN%2F8I%2Fwi1fEuLXvyNivibjuKvN%2B1Nc01HF%2F3h%2Bef%2FsOhox8MPd5SFucPjorQwXT%2BytA8EmA5mamHNFDVhBI5pjZbQpugBNkO8MvRub8KVDKST1Wag7D3xlin1ZF7LFP%2F79nbvCXFOY%2BPUjrT7%2FotsPXXZ4exdPzuhZuL5LUXVAn7k7PbhG89uz3b41X01gbjP1xwlu5rrvvf9%2Bpbs6E%2FVu7Nk642%2FPYRaAiUBdrmO6CDTBLPQFA1ur0uXoBR1INDMkypKpoTqnSMx5GiEdTEaSHLs0Alvu%2F19%2F5QW9Rv1U1ridT22i%2B53pzumbs%2BXFFXYC%2B%2BCGsTj5JUT%2FGCgRt3n78i2n71FHG4%2Fu6X%2B%2B9%2Braya7os3ZbDmgWfXun44e%2Bu2NZKuGZ0HiF8M4TlMPR%2BEU6rPKRJ8wOU2RFUFLex3egEsz3YqEAq0cqhAAW19dBZIlVzR61tuIdTnpXH7l%2BuXrbjPUyep%2B8cl6aXKWhPHpDcXl9KiTWDNr4mBQc8Tq%2BNzK%2FOKSbsfl79o9G20R%2BbrBXYvUg0rLHhtrc4TN81TTOWSZ0gL1ZVlOYH2ery%2F7XVUjFMbzYpg7UswcqJPQwBd0LKLabJ8IaCr2otcjSkIrGwootKECaUd4XH1%2BSdazRrfddkBU98t1htvWrbjqSqjaCguxrffM%2F5zDCpBALUycmajhd%2BR6ww4SWafuZ5eU%2BtPid4lgd3gt%2Bb%2FY9rQoZNmiXYPXyRHbRs8zX%2Ff4WIFjWZJtUdSD55AP3xtXH%2BZipC0EqdBGDA4CoYEU6gRLGPU11QhkLTBiEYPiqOeQgwTCl9aok1Qr5pFf71qEeNxjy%2F8F0GoqYPv75Yh9j3x4DuJ%2BuEzHRpAq2lMqb%2BqfTdiq6kGtzfOWsv0c7lSeMXDHBDe1MT%2BLUgx0Pg%2Fp87u2UicdIvqQi8DkxhcUwUXCedMpb4NQjwY3npTmgsURJavLwCRyEcN2HfWsDVGfv%2Fu9ZUWUx%2BPYFueUKwaNvbtu%2BXps3eVWbN1GcgVrdMnWJ7WmJz9SD66EBidag0NF1Ukep0t5A7sFCWdhzvYwHv6L%2FBehXuHqfaBwBEU7hfVLcXvS4VQv%2BT%2FvaSIl7cbeMc7ekv9i8S3e1L5xxpvMGcu1EYPbKyCiijjGXcDKckm43PqU2qNWlXusZMiqF82cuVzolUHN9NNR0HZPxFPV9V0wLtvq%2Bk4DqOwVWDlzuQLVdqFiP08cRX7aRlBVfR8cb55bWe5LExnlcsDp1vAP8Q9BucPMk1Ulh4GnN0SAdxcNHv3q9ohx1Ati4S%2FtkWjIDe3hQdkUGrGRaFBiUdiTSkI41UkMuuQHP%2BEaSQYlPQTFWJF03BNPpTu5KFAdkWgDukzsZKMG0Q1TAQQglScOaP%2FdsZ8%2BfP75D%2F9Uu5Gs3FY%2F2SxPld0DHOciXI9gqjcEidXjE%2B3BLosy0OcX3T7O5g65ROGyzQ2BZs7WbZVnO5ydLe32hMwTQ4wnnKXW6XW5LAa7oaXOIHoUl0FgLQLH2by8wSTWeAx2Y5PDazK3BqZbeJZwXGPaYhX87ZNszoDdaRxotXO1nNlpdvAPFWHDm8PqEE0sZxDEqGzxisFNnuCWetPcGrObN0p23tTZwMuRVodSV8%2BLTrOV3eRvzjQZiSjaLYS1WEJe0kNsJlZu9LFun7%2B%2BwW4gRDRbaxw2nrOGm%2BxOj9cmtbp9ZqeTM1m8UXfQQCSTVSQox6pvtjot%2FFpHvIUjJovFEoYvHYV9C5Y%2FxN9OfcalvII37UEhTbTg%2FAQIaPb4Vz6j5u8%2FaViycMod%2FfkDcpu8QZbZoeBi%2FvbzP3XPsZvOubMtaPHkD9jt6%2BU2O7vqU%2F9C9SMvgrXpQNG%2FE0oJxun%2BCiElUa0IKQSUwERxOntKSV7ekcuh9VBZBBo3VUcB58ofKBHCwLyf9qFosz9Ibf8dGqwaBMjRig4SGOZ2UkWI7UiO9OfUPdxOYFApUZyfpY7mgEc5rtNGGk2H1lPhAk1Hp%2FVAMqQEHEUfEYkkUQq1JMdzsX7kklRrTrUi1wMcDjmu1YYfATj7Y%2BpGpPEBXuoQIj8rR9mgCl4C9yqmF7xnVWxGVniNqtpVmXBvQ6iwni5YQ8a1jYrXtc2J13HvgkvqWxuva1sbr%2BP2S5ceKGyBwDv2DbrToe1u6BkAJV7xnVLUaq0sJB8pFqcUIPi3yuwxi4JuLr%2BP30f3OkPQ72aO0xYo3%2FEsmO3QO5qEF8S0qQH0UsKXv0brnl9%2B8M7jF174%2BDsfvPOl1au%2FRL5%2F9DsbNnwHL2pHR1NTRxMZhJtHktOOxLxErPF6YlLvpC9YP73x%2B4ofw%2B3xVdrHcDE0dQQCmCRgvt9b35xINDf1CDcRSfJ%2BpYl%2BSf8YcurfmXP5F%2Fkj6J82jNsrkWiEuhVlgFfyNkB3S5MUzLhoNiwSCYcxQ7Ui4J0Xh7fmqRbaPa1tzujxkBRlsEHy0%2FOM4pYLPb7g9O6BQJN6l9zQ0OGyCaZz0vMTbHOzXfQ7a2tsterTcqxeInODoemdktw%2B1SbVhKwtW9ffe8VKadK0OVuC3bWzyKm5LeddsWTeorWyY9IMtUFutdu5g%2BRn533qkocdvLs2HmhU75br%2FMmWtD8zA3OP2t1ea636jEzqYxJZGAwFiDEd61oTsrRuW3%2F3pYNi3bS%2BRd%2BGjOfVpAPNd6y64Gsz1GaZleWIPoYL%2Fv9mTeQBENVEguiF1aC4YeXxFETw6QyPfn0m9g8IrMFAvKM1EI11DARnbqibHk%2FIojy5rSdgCyZi06y8sS024PeuO4MfwQ5Y9yKRZCqyYaF30vzeHlmUprR21tR0t0yz8KZY66zWuGvxVQB%2F36kP%2BK38t2Hu6NQ9SFJfw0AdpqPEK2qTMpf2VCqJwqPoJezTL824b8akoL%2Bx03nhh%2BoNo5e77psxg9Q5LzebIKD%2BfsY34f2MtB9fk9v5b8PT6tYrgv4kRPwd0q9z3gdJSJ0653KjCYPwCaR5aUY63eW48O%2Fkdo33yxX9wCiMv2QTrk8eGSI6Ag6moG9t2P%2FF7GRNlDjl0gw7pJ5aOXXqyqn8SENnXBmbSwUYLyqJjv3UmY1nKr4t80no0faXsaIEiF%2FBRaIBnItSce4OUif7W6Vm9T9H1X9Vj71BEm%2BRdmIJQST%2FZfVdudUvh9S%2FqqNvqT98g9SQ3lHibZY0mRVHooyDN%2FFHmTgzjdozKw28NwQ0hwN6BCoPKaEk3YtKwNhwRLXuk076CGoZNXDQcRwZvreTZY9EZi%2Bd0s4%2Bztv8iei04JQl6ZbDD2eHV7X4uHuFVfPrOmcs6m6Kr7hssr%2B1VZFcEZ%2FPdJkn1hOs8SXS%2FNFFgqt94PIZzZ3tdaL6Q5vo6piSzdy737pwsX1VyxUrF15iJ4uNkq%2Brbyg1Z%2BO8VsNC1UmcvORPRfxtPrfRwL2p%2FoA1eZp6Z%2FaGffoewaXcA%2FxBlKlQLfhQL%2FoPgBGP3qsA7IQS8qDVNswHKRSheDUvA3Q7MZoRcJMxlEygujn1QdyzfPfq3dEp%2FbXh5e5YXW2Ngfvza0ZF6UgFL%2FE0fTq4LBlvTE2qb%2FKuuzYSXVnjTfM1osvqMHVbm9950quIZlbqaL6YP7jk3kUtA0GnX2nvq53f3WoSsvEdDRnULgo2fN7lNZJgI8%2FVWi33c3bBZnGY05%2Bdm%2B3qc7fNmj4YGKLj2nfqFP%2Bg7jdDlxEV5XsJQZP6hYrS1l0VQr4c69Xueixp90gnZPmE5OF22j%2BSYEWHlZ0K%2FHgsh%2FZtsbh6h2DNRlvv6jJh9XaJaHCZDiUDKNTMkvb8vsqCyf3ZNdSmO0fa0Y4baJTtpbKzuVzeeSI7fCKr2Z0WypapnXJ4gnoWy3PoUIlIQ1TXdqhQJIXp9Wx5fYdpeWh2TY5D%2BYVyKd0jw3iumwi%2FBC3cEy4o83QlZnW79MrCgCjbhWXBlRZVVZZv4rIKpXC01HFlHdHLoeWVl6UVc%2FJ5uGm6CViW5mulYMk%2BHqNYr0AyUPivLg2oMs2MPqtuhHyRyiwvNJej1Br%2BfcLyoAyu8D9B7bgmzUqfFobF5nKnK4%2Bt8MPJkI%2FxHUNWk117jugWF%2BxazTAALQn6%2BUE9lhoI5ApGA%2FiuJOsrlNP28SVVuBVajXmircLel46w2bJS1Q0Ft0KDuikDFL%2F3pYrid1Q4FvofwRIo4R9h2ftSwc6jHAMqLcCql8YPHtlzGoByNXYN6v8hXnRaOhUvx0sVLCexwupGDR4NOYC7PePa5keIPACnuAdD7dEadRuTIiS6Lb7uskb381My5yjzF8lGCjBRqdwrWJCagfB3yCy7XT1i92hbcZ5Ci1FJkgYMDf6n%2BjspIsHFjJrTOdzSMuOa9DbDcj%2FnH9N9bIoGVgzHPWIQuFuYtaMRaq8eCKI0gEF6lPOZjBz3EEvaaxwSUT9U%2F8JbJZPJJLBLolH1La%2FRbF9AbC8JJjv%2FmMnssKjLRBJyqj9QXxNko0Ux%2FX79epfiXkm6fmKwF%2Fen1HLc6LxloXWKvGa5rVCVL83VuiPcDEX%2FK5pTXOxHfx6HHB0t2FI0qI2rCZFTrvPWU67zVuS%2FkTsLnc7IKhFg30e4FOkqNSfH5PtkmUy6Cpiv%2F36k2sbqCeCFNa%2BURpoY0sZoYmCgCr3qgZz6s8I0gP1bYiR%2BD79H56NOz0EVWCTy2%2FfffvSCCx59W7uRV9995eqrX8GLesOXNm360iZ%2BT%2FEl3uZqL%2BFyzSZ8XxpTiI%2FG0nkT4zznFZ0t4ipMz5v4q9ssqbdKUZt6u82knPCrt6PZwsnn0XySVnyPR1ZXAn72yx48bWJsu7apnI3Hy8bygUK5Js32qcytapqgmn95uexccj205vGgJ%2BeuOeG2SORmKZr%2FqKzcx9SFctMJdwMUFZDJITs7dnOp1EKZCxg304Cevyfya%2BvlKqv6aXK1qIj3imL%2BL6hL%2ByvUlFfE0VKZ7E8gBY3M%2F8VoJCFgizH1W6VyC76nH6b7jiibYVxUmVIEspry%2FLgZIlCeP11Z4zs%2FAwvVwtGFEut5S1JY4lfyT0N%2FevOLo%2BrUEgjcqc9IkGpQbv3iW7Co5b%2BKgjvpzYdH85PLcc4X21ouwEGl%2FS4qnUAvoSlXUUhR1eKr2VWFTB%2BGMl6FsiQsVD1R3urlAAIoSn7JQkmiVVCHSpCwDH%2FqPepXQ0Db77CJOAImohB%2BRPWr31ev5g%2FkE%2BzTa4lbvZo8xdWPffQu9yJTPCNB66s%2BzXoJt%2F0L6hSoCuBIoK8fnBGG87OoRckJpLqyWe4YbpGi50g0%2B3I3UD85Oa0fzubfoXxPLbW3FDWzigmyJeM0tQkax7PqTy80%2BUxfUHPlBZIRVNQ%2Bv0xRm8REKPoLmNr0%2BUo48v9GFbXPKylqQ2IKm00QddgyWGMROCTxdLB9nCY8P7j2DjlsV%2F%2Bmfr0C0r%2FNkeXbbpPlOTBBwT0mVz1zx9S%2FwJecBF9Wgv3p032iP2v4VSgfgW2G%2BHUEdEXU6iq4CtpLJfIN9XQG8dwa1VoO8XC2SrPDDyCOQptXgbcPvlAgBfxBoGwftQKeKFrNTASPt3pGGqDt%2FQRasn2kri%2BH6L80MJRsmVYJrAKyDItpJUy3%2F15WYIJqcJ9Q5N%2FLFJ4c3dc1URpWl9hW6mu50MUIelg4ucTPf15zs5DFo1c0VSp1tKB9jkwIyuM45kb%2BIP8gHed%2B6jO3v0KbIknzLy636E8KPTdCuUpB0wLo9JKnAO6pv0vS31EtBha%2FfJemkgLVVnd8KCk4qBTpQ5m7FbifBKrPJcq0pZAFVG%2FXbOFz%2BTcq2MLrcmV28Nmi%2FOHskh82bau0k8eWCaPijQPWQ5lUvslwVCfHkXBMIehqUgtDNLeauH1huvZTbYmw%2BluPjyWoNGEuxRLR7LK5fSyXFUyK7PURQv2v8D3XOt2NJ6liBbmPGOsakw1kbeOs%2B31Wm5qpH%2BiJWSzqdPr2O7zc2TmtnrzCig6bBd%2FvgQmzOlz0STWIlmZEQfupogOZFHUZ7EkUnMn0RrpIMqAgHRJAOjIJ3yGw1I%2FMAp9q9S3Q%2FclADNm1wEeO%2Bxbwg5OIYHZLY3ehG5lJk2xhco%2B6JWybpEVz2wrR6hZyD0QXZbeDVB%2BonmlimpkWprdAs4WEZDSQppsDlcdCBJJESIYFuAtUnC4GIF2C3Uu2Kv7L1bdz6FxtqxpG4TqQOqOUNAJ2HLvPWA2GgDy4O4vaDrtyl6P%2B1fAll%2BSyFcQ28GHqh7fvvf37udylf0fNwhzgz87Y%2Bcf5x9GnF6ygHu18sAbipWeF0YPBgp2GaKeQduxxdEr3SgbH1kvH7tvqSLhedomOvZyts2dw8acu3dY%2Ff%2BucuMtCuP%2Fe4zC4XnH3OLZ8ZuxTWxy8dJfU5dhDeKPSlJy5pn%2F%2B7u3XrJhmr9C5CuleGflGQocKnlAUaRKp0BAHV0ZwUt9VCqk6zYOgRIuMfePJzdmBdpPJ7%2F6B23%2Bf%2Bsp9NMDZevovvfYHG5dGPISQq1DojqNckchVrCcCYz%2FQ0hI0m3NKDRfkgsrnamo%2Bp0CAq1FyvC3a3Nak%2Fs5VX282x9Ufy3E39VAx6o7LpCvO2wK%2Bch9jNqpJCutcIOooKnYWtDK8gTRVYygRQfwgzKM5%2BjP2jOZdx3r32Py7rQUPOzAnoRs95NvRAR0qLGU11Taqu1bUYSzMcWjMEir067JQQHfIrLBHsrgv00%2FWavd8HRLMEEYFSW3HCSNQehnrHztKqHcDyo4VfZ6gPKCR%2BgufwA8GegxUEo4A%2Bgd0BASHiH6jYMLIsUdQJTs%2FC641KN4oCHWolCMLlMfIdtWKScjx7SM5LD9HnfmhrGI0S139UWfUnxgOXdJFW%2BAMcGjKr6eHAttHF5sUoeArYKDcxMSYcKA%2FxUDhPiEOEAPafSIUFArN0r24ynI91EPARDXvIDYyvqZaWeroBOUABQA%2FE%2BDXC7PWafDLQY2oiwpUEyj4RQtVlUp1GrM7In2p2A7VuiOW6otMiGOo5Mrp05ejVuTy6dNX%2Fk%2F7mybZQ0nUmfrbx3U4KueDnlHm5wdh8FFeKnoaKKh%2FTK18StOPhwG9Xo5mqXAxvw%2F79YQwwDR%2BnAKQQ4izVXioB84qcppWB7IqjU45z4CE17OvF1Dw%2BoTFqxtz8dxwtogBnF9MjIl%2Fin%2BK8s3hM9laIn0TiCbTAXL0T798bPXqx36p3chrv0O%2BGC9Xaj48Ecv8U8UEeBvUEsDlTepiU5OvlpeNGvpnKF0RvUooWhIjnx6GeBapXCQYTw9DNg6%2FOC3gZjp76oNTj9Kz6Jqobxb9NDqc08vcKReOpcsQV2K8InXFaXW3aI6Ofr1k48rp7CX7rx%2Bv1UKPsfvzQU0Kc83i2VdILmd2%2FyX55zT9luN2%2BCu4nKfwPcK%2FCvDVU%2BpHh8%2BLaldIf1fA5h3ndT6Fln9%2FW%2F9Ce1vndfvJtnPVO2xhm3qbafHVCN1X363UXHq9xuVD8OSD29Z8pZ5cZrern9cAdGW%2Fuib%2Fud%2BVK0L9a42r6C90kL8KzxwLQw9NkIQJL0ASU8M%2BVG0KsUdgdvpgP%2F6NqqP0%2FgHZFUfGEijZLHpiIgvV5%2FBltrj8Qd7XQd5p4P%2B7tJo30NMO6VGBwahSPMYiaaBYoLY6uEnciyhhh1Z%2FvvacG%2Frjpsvnpzs0B1Id6fmX8119l88XnOxe%2FuGrzzHcdu7UtY3%2B2vmXN5zUyj3ZcPl8p1sZSs6%2FnGXtwrV7Ka0XZdz83fwjjINpZWYw85lL8BRK4nGyIir2RiOsEyipuEcIakpGjWgBjLiHWOgj0Yi34gW1kKPxHt2Na5q%2Blwg1RdRSpFDNzosb44YJXnAfoEOpZW%2F%2F6u1lhYA6leevezbI26zNHO811M2dc5HFxpk4i1jPC0s21%2FBWW5DnPQbn2X1WK43%2FaM2n18DfSoybbNHijFpamzXI31eRibGUOxSu%2FlT96YZlq1Yt20DaSBuG6knw2eusHs5EPBfNmVvHKdaQzcDfz9ZsXmLDWGXy2U5OsYSsIn8CS12jQIyD12KKqZrLPy7mSPdICmd6WGHG8NDZkkHuE4h9TU8FpmUO%2FVjC%2FEinToFyoNDz2p9XD6g78WgQdPG7Z3R0T%2FZ5dTM9lsL8Ktek7szl2L%2BgQwGgwkZHc2g5Su7NvVqwGy2Ua4KSXUwt1X4PaM5paaEu6jQ5zVFyNabxvUksVt2T%2F4VeamYPlLtffdQsk%2B2sUTY%2FzDXl%2F05W53%2FBz9UK3p7LjapZ2ZxOm%2BUlZXrL3HHGqO8%2BwVroDaCTTnTxitMxmiAAYQzVJQH%2Bnj3oIHnPaN6Zq6sNSLjBl8tKgVr2mj%2F9CWi9dnKca8rBQBsd5R1tzVlgrl5pbnPw6kZclCr2CHxMnHohLz%2B3KRQokzALyeIKFU1TNCiayJdoHvDYe7K6mZLm8S3uJ9dojuaJ62%2FqN%2FtjQxnSnhnKPw%2BLNrLi8ZKyJ3x1YhiI1aNAtP6NzCGzYv3DmaGh%2FLvQZnt0evgIhTFV0kE%2FPYxAnOHhCQUZdCWY5JWJwMzlAGl1mpNbDU7yyGnhRMILsYhH3VRAijrPcBU8%2FCj1Y9NY6cnGVW0CjTLaz7E3epvaT%2FLtTV72Rs%2B0WVVmd0dz%2FMGTI5F0OsIviaqDlbbO5X6xT3PeXbXHRtf%2Fz%2Bfdka%2BeKPr8KF7IF4vBsT9MFPuPJMBTBMq9hQxXelQ%2Bbewnf18ap4Ib%2BmSMrtDU5zqlD8QANa5MBGh%2FOwOvSDfcV2d66mfEWsbGWmIz6nsyZDWQSmqmxDneYyvjHPmRXHZxeueyRGLZzvRioKnGto9nIPkibAJA16adcOZRQr1iAP3bUyBR7T4RgAWTKxhkCYFwshq%2B7iV9r0whk50cmRcTg4fy5x4OmmNkHndIA2%2BYuMbmE9dwGYB4KFTsvnDE6Ah47r%2FfE3AYI%2BoXADpkdlENcZ8OZEEf8FFGZNxMs6ZLpG3SUFLL7Q2kcFU%2FA%2FJsw%2BvWDa%2F7emewLaoeibaF1B9qUNnuqWK3%2BUfXYVL1v%2FomD15xxeDkPnXTOKSVcCbDGtOu0YQNpGAP7U1HU58UrqGu8xIbHtkQ3LVhb7Dx46ET3Ffcm1q0YcOizNmf3bC3VjWfAcpSv3MyTlgJ23FHQgmgvk%2Bgk8pL0mcCDOn08MDAQlf%2B%2FSlTZ1z12fnqntOhbOTL9%2FZdevbAPN%2Byby1f%2FuUtC%2Fixm8ZBo59LTXEW060hGrTDplNprWd58fwB%2Fb%2FE27BdS%2Fs7U%2BrGVCeQ46nzaw9QccnmZerGZZs3Yw9aVHt%2BKh6HN4ti6lxIhT%2FwahnZtWwzlY9QHQ2c79C%2BdxzvVDKy8GqKWQERO9YAKbpsDUTLdWV5dE8PVPjvj9pqw7ah%2FPFVtkit7aj6G5xY9mfJrCz1j1e0BcnPol4UjtrCdbahIVtd2HaURujnFJR8CuOuUUfhrGhgKKgjCYNSvCc1WKlEp8wHUaAYynFNyzZn%2B2MnYv36dbMDBTonl%2FT%2Fma5IKAyEGz%2B4eRnVtaX6tss2o34u8mWorFtuFgm4A6qK%2Fyp%2FgLEBVat5WnPDdKA574ubuFJ%2FIUfZ%2FY2Nt6mN%2BZNNTSTaeI56gKwkXerTe9DDHUw8%2FH35FY3nNN7GGuBKWhrV9ep%2B0k1WjNWVaHkW1yA%2BQHWNu8rtBw2a5YXuE40rs7%2FGA%2Bj09V3hA98yRnFPOGr8ltGlsFdD%2F7tRce3LH6Trcneuiy7K7J3khKu%2B3qUaXPWaX7T6%2FKfj9BX2eZq2XAcZT79u1ClJzUtHUqfqSMWBcZS43Ena0cUGLgpkKxB1QM%2B0Fxz10wgg6r5rltnFpH05pepUq3Y2HfYqeKRntmUFNz%2BXmcOs1H31U6cC6RTVLfCg7RNBF1UF2%2FwBgu0fFQtPEU1sSg3VcNsR7dWq3af87tUFn1l3ltXpaJxpNvtcZkH2WmMst3JqRpxUH%2BWC0E1qOGtP66s1MYv%2BVLu8%2FXFXvV%2FZbunYYBeVN64ls0ur6NzpV9xzlmQwB5qC4Tq70WC0tk8dWJXeHvkD0h9zJOM0vD86%2F1NJMaIAolctvlByferCsqOKDKceOfUu1PsmoFCamV5mCrMUOCi6V6FJosMF22AcrKJgQDVhfYh6tepp%2FlYgvnCEAbJQ1L0rOpajEmRcasMiPfxhgGoVo4rwreQpV6fUJHH2e8fa1s2c13Apl1b89a58ozdoap2sjgLN9uISl7P1DrulyeIkt0zr6JjWocoPOZsaXPb6jtqBblsgsaRre2xHi4nELm0MhG1%2Bx1SXwLpFi53b%2BaHRYo%2FIrbZtuWAKu5cSEXfybnnmUCaXGTpQr0xK2O2WWY76f%2BnAjNVf7nCZHU5XqIkTnpt6VtvsFlPXg1031g%2FVRdpkkyVpD7jnmax88QwDvg%2F66NnMRdRXTcGTmQc3cuINwN5IQqi0yzb%2BYFVHuVqI5s4ADfg5oE4ybDLd28mFSFmYvRoomsWXEdLU2Wl3GJy93ZNb%2Fd5gqmNaqJZSO1l6PVRy0nZIj%2F45EetjLguh1rLqR%2BSK0hO6NrsqcNX8zoUdjQYDJ7tb4os6%2Bi%2BY0qpY2AWlnLRDWdGFTfGY1gV0zNAtJ7pdo24se0D88AwLY%2FgZmE9iuP4V5v7CSR%2FRThaHLh%2BUeBkXwU6BC7lGOevK65udTv%2BtS%2FPfW7qj3ljTcj3b9OkbV85t8xsMj7Ddj7DGpthZKwKPvso%2Fc%2F1K9aLE12fMWLV1y1D9ua8lyJdWXr%2FbG%2BnoCFutf%2FmLILe39ITUV4igr3876fpX5g2zeB52sWnIL4fXHlgeUzOx5QfIvJQyrKQE9wHUqVq%2BPEaOrz0wVvNbJZVSfsuMzxN4l9PkedFzw9V5Dj%2BnzpgoT4ZxCxJfC5RWLc74YVHxKlExCYt0JAOMatREhHBSCAtSfod6x6Ls8HCWECLwXZ9nd5Dz1T24JUdWs6fU3%2B%2BfcnT49Qe%2BkBs%2BwdsMZgPXMp3U5S958snPP%2FEE7bvkOPCuTUDTUQ%2FUzirLhML9yPahoe1D5Fj5jWsaoveyP00PehdUAHk%2FseDVWsvDWXXXsyn%2F4wfpXc2V3%2FQxli3jl%2F5hj%2F83avSCfpTNxOEKLmTjxOEKuxgNlsQn0xgct724mhynupNW1Ph6o3RYS3%2F%2B2TJrzLlkFz%2Bip3qCHKf6eqW02QJLjBYuuj4sobhCWqa%2FYHGEHpcnumuWSOhxeaL7sOakNR6vvmo%2BYcfFA8UFXEPZf9UjyudIOyNwx%2Fi90DdsujS%2FFX2UAwvWSVK4NxaMhAGw3oowp%2Fuc8CTi7D2rBgZWwb%2F60faR7SPsEbjkXy4G0XaqhXPwe2cePjxjxuHD6ssQuR1fq6PF0E%2Bo2t1nePTn8TUmxz%2FA3crMoCc7egESuoTHYc7mYdg6etORoOhR7BBGD%2BqJopELrl4S6cJNRtEAsLP%2FOdvnJq0Wo0GolY2Et9VFB2Kf%2B4bZvVyxfOMz3WdFfSIryj6DwWghre7aQbdiDrkTL3A3vNDuDpk93HqXwam%2BbWmUJZfNn5ozKV5Pmmq8PF%2FjVY%2B2Tlk2M2RzSXKjmbQ4RZcQavEYrN%2F9rlXwtIQqzxQNMzPPfHYLvuPoO9TbT8bpGw5CQPGd%2BSyX%2FCyf0Vxjd2R9NmsunnXYa8xGHzn%2BsSfM5J0y0DZEXWWxkXjcR75KBLNLHi7XvX2G8VOrf4Ykg0AMdBESIpo7MgAfyakA6rkqpI6UjNs0px7cMV%2BD5BF49Tez1VGnYmq0WIijp985m4Sn2gJR9b07riPPFo97OYbUZbxJCpot7H%2FlpZBicglCPN7WOfJkcHqc3ElWqvvz%2F1E6bIQrG%2Btz6WkM1SM9FBTR7FSs8KyBBytSmNEoquJNFN5EQyTiCrnKDx1h58yxCepPHU5nxGoxEQeeOZi2m80DxNxncVhr6BmEfUarxejw%2BWSiHhWk19bSY7aKR5MsteblJpfTLtjimBouXsm3d3djjYM%2BwEW0El9dM%2FueVRWIsXwe43R7SgbVZqrnqoJ1X%2FkuF7pcgf8duv4q6vayV5U9zMV91GxO59UUjW8rHV6u799WzKMT7umRCXbYUKM%2BfoaCcwgaoqZUtmodV3p%2BX7akb4dnU9B9La38RPFUG2SCC90tVA4XwEFhyOpZZrUCsgWYHsczLFBBVGNtstoN1bw0Z%2BO4fYIbvZVt4EUcJEKOhHeincWqONw%2Bq6w5Go%2BWGOSR7LhKV%2BKBqbBPpfUvOf9QqkpDyVhBeyyZQGMsdA5FBUqvFMtUyGq9vjnsAJU4UcrxldP1CCaofyDkSAifoP5QwWx%2BSyUGxp75BzGAvtG7uQ38LehlyEQMeh0TeE6Bm7tYdXqdkt0uOb3kfYlNwmOdDyacOq%2FqlFo1v%2BPTmTi3E%2FglC9W11b34A22zmLzvb231Q0L2Bgg60OTW4YdstO%2BYOJnO38TtpH7zy9ymokWyA79qlVSn38HtpFlImFnhu3b4boNWXklOXV0Iwo7lQ1hrZyPFcwtjwFP7iEKSHSSJw509kh8kj6pr%2BH1jR7km9vcvqN9657vffefkv%2BfKxge1X%2B7RdjYUPIESN7gTvRkB%2FRMYtEkaVkdHApmdBPpnKmz0n1xSWFOyVIuLrinZwpoCRe6kyiVZoHX088F%2BUX4%2BWKS4iBTP0IWxGtZgOdMaV4KTayqHQF%2FVihBwTbgDXTCmKoOBJeNhwJMzEVjtjIFLuU38fPR7hqNG1JS7g%2FqRCuy3vmQ3W9Vu8qbVbP%2BSzazGRJH83MzP90Ck2m31mMjP8TiLn5uwD2Ugr2PFvPQjB5BnSJvQxGQZZEB%2BLopqzGzDbMmbkAPkZVJjeO5FzOSBKCgJze2ZS4Gemc9twrwY6u9H61iUQTcRvtdT9RW3tRxAWwFs2tcuJRnI6xjmBdWjbgFNRHMHiF1uHYBfUR%2Fut5Ug2jXAaT96%2B9RH%2FFToRwIzGbKmVJ1AZQnoabSB1yyIg7ByAridHApPMjyw0OiV6RjSbCuzwLAvFizBliWJua1tsuAgvNPbmljYbpt8lkWam7b3XZiOiKJskMOtmfScnsbPW208knwjuXrXK4Q1iKIgNyYXXDVT9C2Ye%2F78GQ5BEEXfFdde2RwauOysdJNL5AzCy84ard%2FnGAVN8alecnFdgu5Gbd5DJTL%2BhHZK0vApVy3OfU8XTSJg1TlssivsPYUlIqvn66PzrVTymCc4wgF6SDNR0pDf%2B9Gp%2BVnsUH5WtpHYsuhOaey8zdwLN47V8MTbm78g687%2BP3cx6tcAeNpjYGRgYGBk8s0%2FzBIfz2%2FzlUGeZQNQhOFCWfF0GP0%2F8P8c1jusIkAuBwMTSBQAYwQM6HjaY2BkYGAV%2Bd8KJgP%2FXWG9wwAUQQGLAYqPBl942n1TvUoDQRCe1VM8kWARjNrZGIurBAsRBIuA2vkAFsJiKTYW4guIjT5ARMgTxCLoA1hcb5OgDyGHrY7f7M65e8fpLF%2B%2B2W%2FnZ2eTmGfaIJi5I0qGDlZZcD51QzTTJirZPAI9JIwVA%2BwT8L5nOdMaV0AuMJ%2BicRHq8of6LSD18fzq8ds7xjpwBnQiSI9V5QVl6NwPvgM15NXn%2FAtWZyj3W0HjEXitOc%2FdIdbetPdFTZ%2BP6t%2BX7xU0%2Fk6GJtOe1%2FB3arN0%2Fpmz1J4UZc%2BD6ExwjD7vioeGd5HvhvU%2BR%2BDZcGZ6YBPNfAi0G97iBPwFXqph2cW8%2BD7kjMfwtinHb6kLb6Wygk3cZytSEoptGrlScdHtLPeri1JKueACMZfU1ViJG1Sq5E43dIt7SZZFl1zuRhb%2FGOs44xFVDbrJzB5tYs35OmaXTrEmkv0DajnMWQB42mNgYNCCwk0MLxheMPrhgUuY2JiUmOqY2pjWMD1hdmPOY%2B5hPsLCwWLEksSyiOUOawzrLrYiti%2FsCuxJ7Kc45DiSOPZxmnG2cG7jvMelweXDNYXrEbcBdxf3KR4OngheLd443g18fHwZfFv4NfiX8T8TEBIIEZggsEpQS7BMcJsQl5CFUI3QAWEp4RLhCyJaIldEbURXiJ4RYxEzE0sQ2yD2TzxIfJkEk4SeRJbENIkNEg8k%2FklqSGZITpE8InlL8p2UmVSG1A6pb9Jx0ltkjGSmyDySlZF1kc2RnSK7R%2FaZnJ5cmdwB%2BST5SwpuCvsUjRTLFHcoOShNU9qhzKespGyhXKV8SPmBCpOKgUqcyjSVR6omqgmqe9RE1OrUnqkHqO9R%2F6FholGgsUZzgeYZLTUtL60WbS7tKh0OnQydXTpvdGV0O3S%2F6Gnopekt0ruhz6fvpl%2Bnv0n%2Fh4GdQYvBJUMhwwTDdYYvjFSM4oxmGd0zVjK2M84w3mYiYZJgssLkkqmO6TzTF2Z2ZjVmd8ylzP3MJ5lfsRCwcLJoszhhyWXpZdlhecZKxirHapbVPesF1ndsJGwCbBbZ%2FLA1sn1jZ2XXY3fFXsM%2Bz36V%2FS8HD4cGh2OOTI51ThJOK5zeOUs4OzmXOS9wPuUi4JLgss7lm2uU6zY3NrcSty1u39zN3Mvct7l%2F8xDzMPLw88jyaPM44ynkaeEZ59niucqLyUvPKwgAn3OqOQAAAQAAARcApwARAAAAAAACAAAAAQABAAAAQAAuAAAAAHjarZK9TgJBEMf%2Fd6CRaAyRhMLqCgsbL4ciglTGRPEjSiSKlnLycXJ86CEniU%2FhM9jYWPgIFkYfwd6nsDD%2Bd1mBIIUx3mZnfzs3MzszuwDCeIYG8UUwQxmAFgxxPeeuyxrmcaNYxzTuFAewi0fFQSTxqXgM11pC8TgS2oPiCUS1d8Uh8ofiSczpYcVT5LjiCPlY8Qui%2BncOr7D02y6%2FBTCrP%2Fm%2Bb5bdTrPi2I26Z9qNGtbRQBMdXMJBGRW0YOCecxEWYoiTCvxrYBunqHPdoX2bLOyrMKlZg8thDETw5K7Itci1TXlGy0124QRZZLDFU%2FexhxztMozlosTpMH6ZPge0L%2BOKGnFKjJ4WRwppHPL0PP3SI2P9jLQwFOu3GRhDfkeyDo%2F%2FG7IHgzllZQxLdquvrdCyBVvat3seJlYo06gxapUxhU2JWnFygR03sSxnEkvcpf5Y5eibGq315TDp7fKWm8zbUVl71Aqq%2FZtNnlkWmLnQtno9ycvXYbA6W2pF3aKfCayyC0Ja7Fr%2FPW70%2FHO4YM0OKxFvzf0C1MyPjwAAeNpt1VWUU2cYRuHsgxenQt1d8%2F3JOUnqAyR1d%2FcCLQVKO22pu7tQd3d3d3d3d3cXmGzumrWy3pWLs%2FNdPDMpZaWu1783l1Lpf14MnfzO6FbqVupfGkD30iR60JNe9KYP09CXfvRnAAMZxGCGMG3pW6ZjemZgKDMyEzMzC7MyG7MzB3MyF3MzD%2FMyH%2FOzAAuyEAuzCIuyGIuzBGWCRIUqOQU16jRYkqVYmmVYluVYng6GMZwRNGmxAiuyEiuzCquyGquzBmuyFmuzDuuyHuuzARuyERuzCZuyGZuzBVuyFVuzDduyHdszklGMZgd2ZAw7MZZxjGdnJrALu9LJbuzOHkxkT%2FZib%2FZhX%2FZjfw7gQA7iYA7hUA7jcI7gSI7iaI7hWI7jeE7gRE7iZE5hEqdyGqdzBmdyFmdzDudyHudzARdyERdzCZdyGZdzBVdyFVdzDddyHddzAzdyEzdzC7dyG7dzB3dyF3dzD%2FdyH%2FfzAA%2FyEA%2FzCI%2FyGI%2FzBE%2FyFE%2FzDM%2FyHM%2FzAi%2FyEi%2FzCq%2FyGq%2FzBm%2FyFm%2FzDu%2FyHu%2FzAR%2FyER%2FzCZ%2FyGZ%2FzBV%2FyFV%2FzDd%2FyHd%2FzAz%2FyEz%2FzC7%2FyG7%2FzB3%2FyF3%2FzD%2F9mpYwsy7pl3bMeWc%2BsV9Y765NNk%2FXN%2BmX9swHZwGxQNjgb0nPkmInjR0V7Uq%2FOsaPL5Y7ylE3l8tQNN7kVt%2BrmbuHW3LrbcDvam1rtzVvdm50TxrU%2FDBvRtZUY1rV5a3jXFn550Wo%2FXDNWK3dFmh7X9LimxzU9qulRTY9qelTTo5rlKLt2wk7YiaprL%2ByFvbAX9pK9ZC%2FZS%2FaSvWQv2Uv2kr1kr2KvYq9ir2KvYq9ir2KvYq9ir2Kvaq9qr2qvaq9qr2qvaq9qr2qvai%2B3l9vL7eX2cnu5vdxebi%2B3l9sr7BV2CjuFncJOYaewU9gp7NTs1LyrZq9mr2avZq9mr2avZq9mr26vbq9ur26vbq9ur26vbq9ur26vYa9hr2GvYa9hr2GvYa%2FR7oXuQ%2Feh%2B2j%2FUU7e3C3cqc%2FV3fYdof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D92H7kP3ofvQfeg%2BdB%2B6D92H7kP3ofvQfRT29B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6j6nuG3Ya7U5q%2F0hN3nCTW3Grbu4Wrs%2FrP%2Bk%2F6T%2FpP%2Bk%2F6T%2FpP%2Bk%2B6T7pPek86TzpPOk86TzpOuk66TrpOuk66TrpOlWmPu%2F36zrpOuk66TrpOuk66TrpOvl%2FPek76TvpO%2Bk76TvpO%2Bk76TvpO%2Bk76TvpO7V9t%2BqtVs%2FOaOURU6bo6PgPt6rZbwAAAAABVFDDFwAA%29%20format%28%27woff%27%29%2Curl%28data%3Aapplication%2Ffont%2Dsfnt%3Bbase64%2CAAEAAAAPAIAAAwBwRkZUTW0ql9wAAAD8AAAAHEdERUYBRAAEAAABGAAAACBPUy8yZ7lriQAAATgAAABgY21hcNqt44EAAAGYAAAGcmN2dCAAKAL4AAAIDAAAAARnYXNw%2F%2F8AAwAACBAAAAAIZ2x5Zn1dwm8AAAgYAACUpGhlYWQFTS%2FYAACcvAAAADZoaGVhCkQEEQAAnPQAAAAkaG10eNLHIGAAAJ0YAAADdGxvY2Fv%2B5XOAACgjAAAAjBtYXhwAWoA2AAAorwAAAAgbmFtZbMsoJsAAKLcAAADonBvc3S6o%2BU1AACmgAAACtF3ZWJmwxhUUAAAsVQAAAAGAAAAAQAAAADMPaLPAAAAANB2gXUAAAAA0HZzlwABAAAADgAAABgAAAAAAAIAAQABARYAAQAEAAAAAgAAAAMEiwGQAAUABAMMAtAAAABaAwwC0AAAAaQAMgK4AAAAAAUAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAFVLV04AQAAg%2F%2F8DwP8QAAAFFAB7AAAAAQAAAAAAAAAAAAAAIAABAAAABQAAAAMAAAAsAAAACgAAAdwAAQAAAAAEaAADAAEAAAAsAAMACgAAAdwABAGwAAAAaABAAAUAKAAgACsAoAClIAogLyBfIKwgvSISIxsl%2FCYBJvonCScP4APgCeAZ4CngOeBJ4FngYOBp4HngieCX4QnhGeEp4TnhRuFJ4VnhaeF54YnhleGZ4gbiCeIW4hniIeIn4jniSeJZ4mD4%2F%2F%2F%2FAAAAIAAqAKAApSAAIC8gXyCsIL0iEiMbJfwmASb6JwknD%2BAB4AXgEOAg4DDgQOBQ4GDgYuBw4IDgkOEB4RDhIOEw4UDhSOFQ4WDhcOGA4ZDhl%2BIA4gniEOIY4iHiI%2BIw4kDiUOJg%2BP%2F%2F%2F%2F%2Fj%2F9r%2FZv9i4Ajf5N%2B132nfWd4F3P3aHdoZ2SHZE9kOIB0gHCAWIBAgCiAEH%2F4f%2BB%2F3H%2FEf6x%2FlH3wfdh9wH2ofZB9jH10fVx9RH0sfRR9EHt4e3B7WHtUezh7NHsUevx65HrMIFQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAACjAAAAAAAAAA1AAAAIAAAACAAAAADAAAAKgAAACsAAAAEAAAAoAAAAKAAAAAGAAAApQAAAKUAAAAHAAAgAAAAIAoAAAAIAAAgLwAAIC8AAAATAAAgXwAAIF8AAAAUAAAgrAAAIKwAAAAVAAAgvQAAIL0AAAAWAAAiEgAAIhIAAAAXAAAjGwAAIxsAAAAYAAAl%2FAAAJfwAAAAZAAAmAQAAJgEAAAAaAAAm%2BgAAJvoAAAAbAAAnCQAAJwkAAAAcAAAnDwAAJw8AAAAdAADgAQAA4AMAAAAeAADgBQAA4AkAAAAhAADgEAAA4BkAAAAmAADgIAAA4CkAAAAwAADgMAAA4DkAAAA6AADgQAAA4EkAAABEAADgUAAA4FkAAABOAADgYAAA4GAAAABYAADgYgAA4GkAAABZAADgcAAA4HkAAABhAADggAAA4IkAAABrAADgkAAA4JcAAAB1AADhAQAA4QkAAAB9AADhEAAA4RkAAACGAADhIAAA4SkAAACQAADhMAAA4TkAAACaAADhQAAA4UYAAACkAADhSAAA4UkAAACrAADhUAAA4VkAAACtAADhYAAA4WkAAAC3AADhcAAA4XkAAADBAADhgAAA4YkAAADLAADhkAAA4ZUAAADVAADhlwAA4ZkAAADbAADiAAAA4gYAAADeAADiCQAA4gkAAADlAADiEAAA4hYAAADmAADiGAAA4hkAAADtAADiIQAA4iEAAADvAADiIwAA4icAAADwAADiMAAA4jkAAAD1AADiQAAA4kkAAAD%2FAADiUAAA4lkAAAEJAADiYAAA4mAAAAETAAD4%2FwAA%2BP8AAAEUAAH1EQAB9REAAAEVAAH2qgAB9qoAAAEWAAYCCgAAAAABAAABAAAAAAAAAAAAAAAAAAAAAQACAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAEAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAL4AAAAAf%2F%2FAAIAAgAoAAABaAMgAAMABwAusQEALzyyBwQA7TKxBgXcPLIDAgDtMgCxAwAvPLIFBADtMrIHBgH8PLIBAgDtMjMRIRElMxEjKAFA%2Fujw8AMg%2FOAoAtAAAQBkAGQETARMAFsAAAEyFh8BHgEdATc%2BAR8BFgYPATMyFhcWFRQGDwEOASsBFx4BDwEGJi8BFRQGBwYjIiYvAS4BPQEHDgEvASY2PwEjIiYnJjU0Nj8BPgE7AScuAT8BNhYfATU0Njc2AlgPJgsLCg%2BeBxYIagcCB57gChECBgMCAQIRCuCeBwIHaggWB54PCikiDyYLCwoPngcWCGoHAgee4AoRAgYDAgECEQrgngcCB2oIFgeeDwopBEwDAgECEQrgngcCB2oIFgeeDwopIg8mCwsKD54HFghqBwIHnuAKEQIGAwIBAhEK4J4HAgdqCBYHng8KKSIPJgsLCg%2BeBxYIagcCB57gChECBgAAAAABAAAAAARMBEwAIwAAATMyFhURITIWHQEUBiMhERQGKwEiJjURISImPQE0NjMhETQ2AcLIFR0BXhUdHRX%2Boh0VyBUd%2FqIVHR0VAV4dBEwdFf6iHRXIFR3%2BohUdHRUBXh0VyBUdAV4VHQAAAAABAHAAAARABEwARQAAATMyFgcBBgchMhYPAQ4BKwEVITIWDwEOASsBFRQGKwEiJj0BISImPwE%2BATsBNSEiJj8BPgE7ASYnASY2OwEyHwEWMj8BNgM5%2BgoFCP6UBgUBDAoGBngGGAp9ARMKBgZ4BhgKfQ8LlAsP%2Fu0KBgZ4BhgKff7tCgYGeAYYCnYFBv6UCAUK%2BhkSpAgUCKQSBEwKCP6UBgwMCKAIDGQMCKAIDK4LDw8LrgwIoAgMZAwIoAgMDAYBbAgKEqQICKQSAAABAGQABQSMBK4AOwAAATIXFhcjNC4DIyIOAwchByEGFSEHIR4EMzI%2BAzUzBgcGIyInLgEnIzczNjcjNzM%2BATc2AujycDwGtSM0QDkXEys4MjAPAXtk%2FtQGAZZk%2FtQJMDlCNBUWOUA0I64eYmunznYkQgzZZHABBdpkhhQ%2BH3UErr1oaS1LMCEPCx4uTzJkMjJkSnRCKw8PIjBKK6trdZ4wqndkLzVkV4UljQAAAgB7AAAETASwAD4ARwAAASEyHgUVHAEVFA4FKwEHITIWDwEOASsBFRQGKwEiJj0BISImPwE%2BATsBNSEiJj8BPgE7ARE0NhcRMzI2NTQmIwGsAV5DakIwFgwBAQwWMEJqQ7ICASAKBgZ4BhgKigsKlQoP%2FvUKBgZ4BhgKdf71CgYGeAYYCnUPtstALS1ABLAaJD8yTyokCwsLJCpQMkAlGmQMCKAIDK8LDg8KrwwIoAgMZAwIoAgMAdsKD8j%2B1EJWVEAAAAEAyAGQBEwCvAAPAAATITIWHQEUBiMhIiY9ATQ2%2BgMgFR0dFfzgFR0dArwdFcgVHR0VyBUdAAAAAgDIAAAD6ASwACUAQQAAARUUBisBFRQGBx4BHQEzMhYdASE1NDY7ATU0NjcuAT0BIyImPQEXFRQWFx4BFAYHDgEdASE1NCYnLgE0Njc%2BAT0BA%2BgdFTJjUVFjMhUd%2FOAdFTJjUVFjMhUdyEE3HCAgHDdBAZBBNxwgIBw3QQSwlhUdZFuVIyOVW5YdFZaWFR2WW5UjI5VbZB0VlshkPGMYDDI8MgwYYzyWljxjGAwyPDIMGGM8ZAAAAAEAAAAAAAAAAAAAAAAxAAAB%2F%2FIBLATCBEEAFgAAATIWFzYzMhYVFAYjISImNTQ2NyY1NDYB9261LCwueKqqeP0ST3FVQgLYBEF3YQ6teHmtclBFaw4MGZnXAAAAAgAAAGQEsASvABoAHgAAAB4BDwEBMzIWHQEhNTQ2OwEBJyY%2BARYfATc2AyEnAwL2IAkKiAHTHhQe%2B1AeFB4B1IcKCSAkCm9wCXoBebbDBLMTIxC7%2FRYlFSoqFSUC6rcQJBQJEJSWEPwecAIWAAAAAAQAAABkBLAETAALABcAIwA3AAATITIWBwEGIicBJjYXARYUBwEGJjURNDYJATYWFREUBicBJjQHARYGIyEiJjcBNjIfARYyPwE2MhkEfgoFCP3MCBQI%2FcwIBQMBCAgI%2FvgICgoDjAEICAoKCP74CFwBbAgFCvuCCgUIAWwIFAikCBQIpAgUBEwKCP3JCAgCNwgK2v74CBQI%2FvgIBQoCJgoF%2FvABCAgFCv3aCgUIAQgIFID%2BlAgKCggBbAgIpAgIpAgAAAAD%2F%2FD%2F8AS6BLoACQANABAAAAAyHwEWFA8BJzcTAScJAQUTA%2BAmDpkNDWPWXyL9mdYCZv4f%2FrNuBLoNmQ4mDlzWYP50%2FZrWAmb8anABTwAAAAEAAAAABLAEsAAPAAABETMyFh0BITU0NjsBEQEhArz6FR384B0V%2Bv4MBLACiv3aHRUyMhUdAiYCJgAAAAEADgAIBEwEnAAfAAABJTYWFREUBgcGLgE2NzYXEQURFAYHBi4BNjc2FxE0NgFwAoUnMFNGT4gkV09IQv2oWEFPiCRXT0hCHQP5ow8eIvzBN1EXGSltchkYEAIJm%2F2iKmAVGilucRoYEQJ%2FJioAAAACAAn%2F%2BAS7BKcAHQApAAAAMh4CFQcXFAcBFgYPAQYiJwEGIycHIi4CND4BBCIOARQeATI%2BATQmAZDItoNOAQFOARMXARY7GikT%2Fu13jgUCZLaDTk6DAXKwlFZWlLCUVlYEp06DtmQCBY15%2Fu4aJRg6FBQBEk0BAU6Dtsi2g1tWlLCUVlaUsJQAAQBkAFgErwREABkAAAE%2BAh4CFRQOAwcuBDU0PgIeAQKJMHt4dVg2Q3mEqD4%2Bp4V4Qzhadnh5A7VESAUtU3ZAOXmAf7JVVbJ%2FgHk5QHZTLQVIAAAAAf%2FTAF4EewSUABgAAAETNjIXEyEyFgcFExYGJyUFBiY3EyUmNjMBl4MHFQeBAaUVBhH%2BqoIHDxH%2Bqf6qEQ8Hgv6lEQYUAyABYRMT%2Fp8RDPn%2BbxQLDPb3DAsUAZD7DBEAAv%2FTAF4EewSUABgAIgAAARM2MhcTITIWBwUTFgYnJQUGJjcTJSY2MwUjFwc3Fyc3IycBl4MHFQeBAaUVBhH%2BqoIHDxH%2Bqf6qEQ8Hgv6lEQYUAfPwxUrBw0rA6k4DIAFhExP%2BnxEM%2Bf5vFAsM9vcMCxQBkPsMEWSO4ouM5YzTAAABAAAAAASwBLAAJgAAATIWHQEUBiMVFBYXBR4BHQEUBiMhIiY9ATQ2NyU%2BAT0BIiY9ATQ2Alh8sD4mDAkBZgkMDwr7ggoPDAkBZgkMJj6wBLCwfPouaEsKFwbmBRcKXQoPDwpdChcF5gYXCktoLvp8sAAAAA0AAAAABLAETAAPABMAIwAnACsALwAzADcARwBLAE8AUwBXAAATITIWFREUBiMhIiY1ETQ2FxUzNSkBIgYVERQWMyEyNjURNCYzFTM1BRUzNSEVMzUFFTM1IRUzNQchIgYVERQWMyEyNjURNCYFFTM1IRUzNQUVMzUhFTM1GQR%2BCg8PCvuCCg8PVWQCo%2F3aCg8PCgImCg8Pc2T8GGQDIGT8GGQDIGTh%2FdoKDw8KAiYKDw%2F872QDIGT8GGQDIGQETA8K%2B%2BYKDw8KBBoKD2RkZA8K%2FqIKDw8KAV4KD2RkyGRkZGTIZGRkZGQPCv6iCg8PCgFeCg9kZGRkZMhkZGRkAAAEAAAAAARMBEwADwAfAC8APwAAEyEyFhURFAYjISImNRE0NikBMhYVERQGIyEiJjURNDYBITIWFREUBiMhIiY1ETQ2KQEyFhURFAYjISImNRE0NjIBkBUdHRX%2BcBUdHQJtAZAVHR0V%2FnAVHR39vQGQFR0dFf5wFR0dAm0BkBUdHRX%2BcBUdHQRMHRX%2BcBUdHRUBkBUdHRX%2BcBUdHRUBkBUd%2FagdFf5wFR0dFQGQFR0dFf5wFR0dFQGQFR0AAAkAAAAABEwETAAPAB8ALwA%2FAE8AXwBvAH8AjwAAEzMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYhMzIWHQEUBisBIiY9ATQ2ATMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYhMzIWHQEUBisBIiY9ATQ2ATMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYhMzIWHQEUBisBIiY9ATQ2MsgVHR0VyBUdHQGlyBUdHRXIFR0dAaXIFR0dFcgVHR389cgVHR0VyBUdHQGlyBUdHRXIFR0dAaXIFR0dFcgVHR389cgVHR0VyBUdHQGlyBUdHRXIFR0dAaXIFR0dFcgVHR0ETB0VyBUdHRXIFR0dFcgVHR0VyBUdHRXIFR0dFcgVHf5wHRXIFR0dFcgVHR0VyBUdHRXIFR0dFcgVHR0VyBUd%2FnAdFcgVHR0VyBUdHRXIFR0dFcgVHR0VyBUdHRXIFR0ABgAAAAAEsARMAA8AHwAvAD8ATwBfAAATMzIWHQEUBisBIiY9ATQ2KQEyFh0BFAYjISImPQE0NgEzMhYdARQGKwEiJj0BNDYpATIWHQEUBiMhIiY9ATQ2ATMyFh0BFAYrASImPQE0NikBMhYdARQGIyEiJj0BNDYyyBUdHRXIFR0dAaUCvBUdHRX9RBUdHf6FyBUdHRXIFR0dAaUCvBUdHRX9RBUdHf6FyBUdHRXIFR0dAaUCvBUdHRX9RBUdHQRMHRXIFR0dFcgVHR0VyBUdHRXIFR3%2BcB0VyBUdHRXIFR0dFcgVHR0VyBUd%2FnAdFcgVHR0VyBUdHRXIFR0dFcgVHQAAAAABACYALAToBCAAFwAACQE2Mh8BFhQHAQYiJwEmND8BNjIfARYyAdECOwgUB7EICPzxBxUH%2FoAICLEHFAirBxYB3QI7CAixBxQI%2FPAICAGACBQHsQgIqwcAAQBuAG4EQgRCACMAAAEXFhQHCQEWFA8BBiInCQEGIi8BJjQ3CQEmND8BNjIXCQE2MgOIsggI%2FvUBCwgIsggVB%2F70%2FvQHFQiyCAgBC%2F71CAiyCBUHAQwBDAcVBDuzCBUH%2FvT%2B9AcVCLIICAEL%2FvUICLIIFQcBDAEMBxUIsggI%2FvUBDAcAAwAX%2F%2BsExQSZABkAJQBJAAAAMh4CFRQHARYUDwEGIicBBiMiLgI0PgEEIg4BFB4BMj4BNCYFMzIWHQEzMhYdARQGKwEVFAYrASImPQEjIiY9ATQ2OwE1NDYBmcSzgk1OASwICG0HFQj%2B1HeOYrSBTU2BAW%2BzmFhYmLOZWFj%2BvJYKD0sKDw8KSw8KlgoPSwoPDwpLDwSZTYKzYo15%2FtUIFQhsCAgBK01NgbTEs4JNWJmzmFhYmLOZIw8KSw8KlgoPSwoPDwpLDwqWCg9LCg8AAAMAF%2F%2FrBMUEmQAZACUANQAAADIeAhUUBwEWFA8BBiInAQYjIi4CND4BBCIOARQeATI%2BATQmBSEyFh0BFAYjISImPQE0NgGZxLOCTU4BLAgIbQcVCP7Ud45itIFNTYEBb7OYWFiYs5lYWP5YAV4KDw8K%2FqIKDw8EmU2Cs2KNef7VCBUIbAgIAStNTYG0xLOCTViZs5hYWJizmYcPCpYKDw8KlgoPAAAAAAIAFwAXBJkEsAAPAC0AAAEzMhYVERQGKwEiJjURNDYFNRYSFRQOAiIuAjU0EjcVDgEVFB4BMj4BNTQmAiZkFR0dFWQVHR0BD6fSW5vW6tabW9KnZ3xyxejFcnwEsB0V%2FnAVHR0VAZAVHeGmPv7ZuHXWm1tbm9Z1uAEnPqY3yHh0xXJyxXR4yAAEAGQAAASwBLAADwAfAC8APwAAATMyFhURFAYrASImNRE0NgEzMhYVERQGKwEiJjURNDYBMzIWFREUBisBIiY1ETQ2BTMyFh0BFAYrASImPQE0NgQBlgoPDwqWCg8P%2Ft6WCg8PCpYKDw%2F%2B3pYKDw8KlgoPD%2F7elgoPDwqWCg8PBLAPCvuCCg8PCgR%2BCg%2F%2BcA8K%2FRIKDw8KAu4KD%2F7UDwr%2BPgoPDwoBwgoPyA8K%2BgoPDwr6Cg8AAAAAAgAaABsElgSWAEcATwAAATIfAhYfATcWFwcXFh8CFhUUDwIGDwEXBgcnBwYPAgYjIi8CJi8BByYnNycmLwImNTQ%2FAjY%2FASc2Nxc3Nj8CNhIiBhQWMjY0AlghKSYFMS0Fhj0rUAMZDgGYBQWYAQ8YA1AwOIYFLDIFJisfISkmBTEtBYY8LFADGQ0ClwYGlwINGQNQLzqFBS0xBSYreLJ%2BfrJ%2BBJYFmAEOGQJQMDmGBSwxBiYrHiIoJgYxLAWGPSxRAxkOApcFBZcCDhkDUTA5hgUtMAYmKiAhKCYGMC0Fhj0sUAIZDgGYBf6ZfrF%2BfrEABwBkAAAEsAUUABMAFwAhACUAKQAtADEAAAEhMhYdASEyFh0BITU0NjMhNTQ2FxUhNQERFAYjISImNREXETMRMxEzETMRMxEzETMRAfQBLCk7ARMKD%2Fu0DwoBEzspASwBLDsp%2FUQpO2RkZGRkZGRkBRQ7KWQPCktLCg9kKTtkZGT%2B1PzgKTs7KQMgZP1EArz9RAK8%2FUQCvP1EArwAAQAMAAAFCATRAB8AABMBNjIXARYGKwERFAYrASImNREhERQGKwEiJjURIyImEgJsCBUHAmAIBQqvDwr6Cg%2F%2B1A8K%2BgoPrwoFAmoCYAcH%2FaAICv3BCg8PCgF3%2FokKDw8KAj8KAAIAZAAAA%2BgEsAARABcAAAERFBYzIREUBiMhIiY1ETQ2MwEjIiY9AQJYOykBLB0V%2FOAVHR0VA1L6FR0EsP5wKTv9dhUdHRUETBUd%2FnAdFfoAAwAXABcEmQSZAA8AGwAwAAAAMh4CFA4CIi4CND4BBCIOARQeATI%2BATQmBTMyFhURMzIWHQEUBisBIiY1ETQ2AePq1ptbW5vW6tabW1ubAb%2FoxXJyxejFcnL%2BfDIKD68KDw8K%2BgoPDwSZW5vW6tabW1ub1urWmztyxejFcnLF6MUNDwr%2B7Q8KMgoPDwoBXgoPAAAAAAL%2FnAAABRQEsAALAA8AACkBAyMDIQEzAzMDMwEDMwMFFP3mKfIp%2FeYBr9EVohTQ%2Fp4b4BsBkP5wBLD%2B1AEs%2FnD%2B1AEsAAAAAAIAZAAABLAEsAAVAC8AAAEzMhYVETMyFgcBBiInASY2OwERNDYBMzIWFREUBiMhIiY1ETQ2OwEyFh0BITU0NgImyBUdvxQLDf65DSYN%2FrkNCxS%2FHQJUMgoPDwr75goPDwoyCg8DhA8EsB0V%2Fj4XEP5wEBABkBAXAcIVHfzgDwr%2BogoPDwoBXgoPDwqvrwoPAAMAFwAXBJkEmQAPABsAMQAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JgUzMhYVETMyFgcDBiInAyY2OwERNDYB4%2BrWm1tbm9bq1ptbW5sBv%2BjFcnLF6MVycv58lgoPiRUKDd8NJg3fDQoViQ8EmVub1urWm1tbm9bq1ps7csXoxXJyxejFDQ8K%2Fu0XEP7tEBABExAXARMKDwAAAAMAFwAXBJkEmQAPABsAMQAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JiUTFgYrAREUBisBIiY1ESMiJjcTNjIB4%2BrWm1tbm9bq1ptbW5sBv%2BjFcnLF6MVycv7n3w0KFYkPCpYKD4kVCg3fDSYEmVub1urWm1tbm9bq1ps7csXoxXJyxejFAf7tEBf%2B7QoPDwoBExcQARMQAAAAAAIAAAAABLAEsAAZADkAABMhMhYXExYVERQGBwYjISImJyY1EzQ3Ez4BBSEiBgcDBhY7ATIWHwEeATsBMjY%2FAT4BOwEyNicDLgHhAu4KEwO6BwgFDBn7tAweAgYBB7kDEwKX%2FdQKEgJXAgwKlgoTAiYCEwr6ChMCJgITCpYKDAJXAhIEsA4K%2FXQYGf5XDB4CBggEDRkBqRkYAowKDsgOC%2F4%2BCw4OCpgKDg4KmAoODgsBwgsOAAMAFwAXBJkEmQAPABsAJwAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JgUXFhQPAQYmNRE0NgHj6tabW1ub1urWm1tbmwG%2F6MVycsXoxXJy%2Fov9ERH9EBgYBJlbm9bq1ptbW5vW6tabO3LF6MVycsXoxV2%2BDCQMvgwLFQGQFQsAAQAXABcEmQSwACgAAAE3NhYVERQGIyEiJj8BJiMiDgEUHgEyPgE1MxQOAiIuAjQ%2BAjMyA7OHBwsPCv6WCwQHhW2BdMVycsXoxXKWW5vW6tabW1ub1nXABCSHBwQL%2FpYKDwsHhUxyxejFcnLFdHXWm1tbm9bq1ptbAAAAAAIAFwABBJkEsAAaADUAAAE3NhYVERQGIyEiJj8BJiMiDgEVIzQ%2BAjMyEzMUDgIjIicHBiY1ETQ2MyEyFg8BFjMyPgEDs4cHCw8L%2FpcLBAeGboF0xXKWW5vWdcDrllub1nXAnIYHCw8LAWgKBQiFboJ0xXIEJIcHBAv%2BlwsPCweGS3LFdHXWm1v9v3XWm1t2hggFCgFoCw8LB4VMcsUAAAAKAGQAAASwBLAADwAfAC8APwBPAF8AbwB%2FAI8AnwAAEyEyFhURFAYjISImNRE0NgUhIgYVERQWMyEyNjURNCYFMzIWHQEUBisBIiY9ATQ2MyEyFh0BFAYjISImPQE0NgczMhYdARQGKwEiJj0BNDYzITIWHQEUBiMhIiY9ATQ2BzMyFh0BFAYrASImPQE0NjMhMhYdARQGIyEiJj0BNDYHMzIWHQEUBisBIiY9ATQ2MyEyFh0BFAYjISImPQE0Nn0EGgoPDwr75goPDwPA%2FK4KDw8KA1IKDw%2F9CDIKDw8KMgoPD9IBwgoPDwr%2BPgoPD74yCg8PCjIKDw%2FSAcIKDw8K%2Fj4KDw%2B%2BMgoPDwoyCg8P0gHCCg8PCv4%2BCg8PvjIKDw8KMgoPD9IBwgoPDwr%2BPgoPDwSwDwr7ggoPDwoEfgoPyA8K%2FK4KDw8KA1IKD2QPCjIKDw8KMgoPDwoyCg8PCjIKD8gPCjIKDw8KMgoPDwoyCg8PCjIKD8gPCjIKDw8KMgoPDwoyCg8PCjIKD8gPCjIKDw8KMgoPDwoyCg8PCjIKDwAAAAACAAAAAARMBLAAGQAjAAABNTQmIyEiBh0BIyIGFREUFjMhMjY1ETQmIyE1NDY7ATIWHQEDhHVT%2FtRSdmQpOzspA4QpOzsp%2FageFMgUHgMgyFN1dlLIOyn9qCk7OykCWCk7lhUdHRWWAAIAZAAABEwETAAJADcAABMzMhYVESMRNDYFMhcWFREUBw4DIyIuAScuAiMiBwYjIicmNRE%2BATc2HgMXHgIzMjc2fTIKD2QPA8AEBRADIUNAMRwaPyonKSxHHlVLBwgGBQ4WeDsXKC4TOQQpLUUdZ1AHBEwPCvvNBDMKDzACBhH%2BWwYGO1AkDQ0ODg8PDzkFAwcPAbY3VwMCAwsGFAEODg5XCAAAAwAAAAAEsASXACEAMQBBAAAAMh4CFREUBisBIiY1ETQuASAOARURFAYrASImNRE0PgEDMzIWFREUBisBIiY1ETQ2ITMyFhURFAYrASImNRE0NgHk6N6jYw8KMgoPjeT%2B%2BuSNDwoyCg9joyqgCAwMCKAIDAwCYKAIDAwIoAgMDASXY6PedP7UCg8PCgEsf9FyctF%2F%2FtQKDw8KASx03qP9wAwI%2FjQIDAwIAcwIDAwI%2FjQIDAwIAcwIDAAAAAACAAAA0wRHA90AFQA5AAABJTYWFREUBiclJisBIiY1ETQ2OwEyBTc2Mh8BFhQPARcWFA8BBiIvAQcGIi8BJjQ%2FAScmND8BNjIXAUEBAgkMDAn%2B%2FhUZ%2BgoPDwr6GQJYeAcUByIHB3h4BwciBxQHeHgHFAciBwd3dwcHIgcUBwMurAYHCv0SCgcGrA4PCgFeCg%2BEeAcHIgcUB3h4BxQHIgcHd3cHByIHFAd4eAcUByIICAAAAAACAAAA0wNyA90AFQAvAAABJTYWFREUBiclJisBIiY1ETQ2OwEyJTMWFxYVFAcGDwEiLwEuATc2NTQnJjY%2FATYBQQECCQwMCf7%2BFRn6Cg8PCvoZAdIECgZgWgYLAwkHHQcDBkhOBgMIHQcDLqwGBwr9EgoHBqwODwoBXgoPZAEJgaGafwkBAQYXBxMIZ36EaggUBxYFAAAAAAMAAADEBGID7AAbADEASwAAATMWFxYVFAYHBgcjIi8BLgE3NjU0JicmNj8BNgUlNhYVERQGJyUmKwEiJjURNDY7ATIlMxYXFhUUBwYPASIvAS4BNzY1NCcmNj8BNgPHAwsGh0RABwoDCQcqCAIGbzs3BgIJKgf9ggECCQwMCf7%2BFRn6Cg8PCvoZAdIECgZgWgYLAwkHHQcDBkhOBgMIHQcD7AEJs9lpy1QJAQYiBhQIlrJarEcJFAYhBb6sBgcK%2FRIKBwasDg8KAV4KD2QBCYGhmn8JAQEGFwcTCGd%2BhGoIFQYWBQAAAAANAAAAAASwBLAACQAVABkAHQAhACUALQA7AD8AQwBHAEsATwAAATMVIxUhFSMRIQEjFTMVIREjESM1IQURIREhESERBSM1MwUjNTMBMxEhETM1MwEzFSMVIzUjNTM1IzUhBREhEQcjNTMFIzUzASM1MwUhNSEB9GRk%2FnBkAfQCvMjI%2FtTIZAJY%2B7QBLAGQASz84GRkArxkZP1EyP4MyGQB9MhkyGRkyAEs%2FUQBLGRkZAOEZGT%2BDGRkAfT%2B1AEsA4RkZGQCWP4MZMgBLAEsyGT%2B1AEs%2FtQBLMhkZGT%2BDP4MAfRk%2FtRkZGRkyGTI%2FtQBLMhkZGT%2B1GRkZAAAAAAJAAAAAASwBLAAAwAHAAsADwATABcAGwAfACMAADcjETMTIxEzASMRMxMjETMBIxEzASE1IRcjNTMXIzUzBSM1M2RkZMhkZAGQyMjIZGQBLMjI%2FOD%2B1AEsyGRkyGRkASzIyMgD6PwYA%2Bj8GAPo%2FBgD6PwYA%2Bj7UGRkW1tbW1sAAAIAAAAKBKYEsAANABUAAAkBFhQHAQYiJwETNDYzBCYiBhQWMjYB9AKqCAj%2BMAgUCP1WAQ8KAUM7Uzs7UzsEsP1WCBQI%2FjAICAKqAdsKD807O1Q7OwAAAAADAAAACgXSBLAADQAZACEAAAkBFhQHAQYiJwETNDYzIQEWFAcBBiIvAQkBBCYiBhQWMjYB9AKqCAj%2BMAgUCP1WAQ8KAwYCqggI%2FjAIFAg4Aaj9RP7TO1M7O1M7BLD9VggUCP4wCAgCqgHbCg%2F9VggUCP4wCAg4AaoCvM07O1Q7OwAAAAABAGQAAASwBLAAJgAAASEyFREUDwEGJjURNCYjISIPAQYWMyEyFhURFAYjISImNRE0PwE2ASwDOUsSQAgKDwr9RBkSQAgFCgK8Cg8PCvyuCg8SixIEsEv8fBkSQAgFCgO2Cg8SQAgKDwr8SgoPDwoDzxkSixIAAAABAMj%2F%2FwRMBLAACgAAEyEyFhURCQERNDb6AyAVHf4%2B%2Fj4dBLAdFfuCAbz%2BQwR%2FFR0AAAAAAwAAAAAEsASwABUARQBVAAABISIGBwMGHwEeATMhMjY%2FATYnAy4BASMiBg8BDgEjISImLwEuASsBIgYVERQWOwEyNj0BNDYzITIWHQEUFjsBMjY1ETQmASEiBg8BBhYzITI2LwEuAQM2%2FkQLEAFOBw45BhcKAcIKFwY%2BDgdTARABVpYKFgROBBYK%2FdoKFgROBBYKlgoPDwqWCg8PCgLuCg8PCpYKDw%2F%2Bsf4MChMCJgILCgJYCgsCJgITBLAPCv7TGBVsCQwMCWwVGAEtCg%2F%2BcA0JnAkNDQmcCQ0PCv12Cg8PCpYKDw8KlgoPDwoCigoP%2FagOCpgKDg4KmAoOAAAAAAQAAABkBLAETAAdACEAKQAxAAABMzIeAh8BMzIWFREUBiMhIiY1ETQ2OwE%2BBAEVMzUEIgYUFjI2NCQyFhQGIiY0AfTIOF00JAcGlik7Oyn8GCk7OymWAgknM10ByGT%2Bz76Hh76H%2Fu9WPDxWPARMKTs7FRQ7Kf2oKTs7KQJYKTsIG0U1K%2F7UZGRGh76Hh74IPFY8PFYAAAAAAgA1AAAEsASvACAAIwAACQEWFx4BHwEVITUyNi8BIQYHBh4CMxUhNTY3PgE%2FAQEDIQMCqQGBFCgSJQkK%2Fl81LBFS%2Fnk6IgsJKjIe%2FpM4HAwaBwcBj6wBVKIEr%2FwaMioTFQECQkJXLd6RWSIuHAxCQhgcDCUNDQPu%2FVoByQAAAAADAGQAAAPwBLAAJwAyADsAAAEeBhUUDgMjITU%2BATURNC4EJzUFMh4CFRQOAgclMzI2NTQuAisBETMyNjU0JisBAvEFEzUwOyodN1htbDD%2BDCk7AQYLFyEaAdc5dWM%2BHy0tEP6Pi05pESpTPnbYUFJ9Xp8CgQEHGB0zOlIuQ3VONxpZBzMoAzsYFBwLEAkHRwEpSXNDM1s6KwkxYUopOzQb%2FK5lUFqBAAABAMgAAANvBLAAGQAAARcOAQcDBhYXFSE1NjcTNjQuBCcmJzUDbQJTQgeECSxK%2Fgy6Dq0DAw8MHxUXDQYEsDkTNSj8uTEoBmFhEFIDQBEaExAJCwYHAwI5AAAAAAL%2FtQAABRQEsAAlAC8AAAEjNC4FKwERFBYfARUhNTI%2BAzURIyIOBRUjESEFIxEzByczESM3BRQyCAsZEyYYGcgyGRn%2BcAQOIhoWyBkYJhMZCwgyA%2Bj7m0tLfX1LS30DhBUgFQ4IAwH8rhYZAQJkZAEFCRUOA1IBAwgOFSAVASzI%2FOCnpwMgpwACACH%2FtQSPBLAAJQAvAAABIzQuBSsBERQWHwEVITUyPgM1ESMiDgUVIxEhEwc1IRUnNxUhNQRMMggLGRMmGBnIMhkZ%2FnAEDiIaFsgZGCYTGQsIMgPoQ6f84KenAyADhBUgFQ4IAwH9dhYZAQJkZAEFCRUOAooBAwgOFSAVASz7gn1LS319S0sABAAAAAAEsARMAA8AHwAvAD8AABMhMhYdARQGIyEiJj0BNDYTITIWHQEUBiMhIiY9ATQ2EyEyFh0BFAYjISImPQE0NhMhMhYdARQGIyEiJj0BNDYyAlgVHR0V%2FagVHR0VA%2BgVHR0V%2FBgVHR0VAyAVHR0V%2FOAVHR0VBEwVHR0V%2B7QVHR0ETB0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR0ABAAAAAAEsARMAA8AHwAvAD8AABMhMhYdARQGIyEiJj0BNDYDITIWHQEUBiMhIiY9ATQ2EyEyFh0BFAYjISImPQE0NgMhMhYdARQGIyEiJj0BNDb6ArwVHR0V%2FUQVHR2zBEwVHR0V%2B7QVHR3dArwVHR0V%2FUQVHR2zBEwVHR0V%2B7QVHR0ETB0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR0ABAAAAAAEsARMAA8AHwAvAD8AAAE1NDYzITIWHQEUBiMhIiYBNTQ2MyEyFh0BFAYjISImEzU0NjMhMhYdARQGIyEiJgE1NDYzITIWHQEUBiMhIiYB9B0VAlgVHR0V%2FagVHf5wHRUD6BUdHRX8GBUdyB0VAyAVHR0V%2FOAVHf7UHRUETBUdHRX7tBUdA7ZkFR0dFWQVHR3%2B6WQVHR0VZBUdHf7pZBUdHRVkFR0d%2FulkFR0dFWQVHR0AAAQAAAAABLAETAAPAB8ALwA%2FAAATITIWHQEUBiMhIiY9ATQ2EyEyFh0BFAYjISImPQE0NhMhMhYdARQGIyEiJj0BNDYTITIWHQEUBiMhIiY9ATQ2MgRMFR0dFfu0FR0dFQRMFR0dFfu0FR0dFQRMFR0dFfu0FR0dFQRMFR0dFfu0FR0dBEwdFWQVHR0VZBUd%2FtQdFWQVHR0VZBUd%2FtQdFWQVHR0VZBUd%2FtQdFWQVHR0VZBUdAAgAAAAABLAETAAPAB8ALwA%2FAE8AXwBvAH8AABMzMhYdARQGKwEiJj0BNDYpATIWHQEUBiMhIiY9ATQ2ATMyFh0BFAYrASImPQE0NikBMhYdARQGIyEiJj0BNDYBMzIWHQEUBisBIiY9ATQ2KQEyFh0BFAYjISImPQE0NgEzMhYdARQGKwEiJj0BNDYpATIWHQEUBiMhIiY9ATQ2MmQVHR0VZBUdHQFBAyAVHR0V%2FOAVHR3%2B6WQVHR0VZBUdHQFBAyAVHR0V%2FOAVHR3%2B6WQVHR0VZBUdHQFBAyAVHR0V%2FOAVHR3%2B6WQVHR0VZBUdHQFBAyAVHR0V%2FOAVHR0ETB0VZBUdHRVkFR0dFWQVHR0VZBUd%2FtQdFWQVHR0VZBUdHRVkFR0dFWQVHf7UHRVkFR0dFWQVHR0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR0dFWQVHR0VZBUdAAAG%2F5wAAASwBEwAAwATACMAKgA6AEoAACEjETsCMhYdARQGKwEiJj0BNDYTITIWHQEUBiMhIiY9ATQ2BQc1IzUzNQUhMhYdARQGIyEiJj0BNDYTITIWHQEUBiMhIiY9ATQ2AZBkZJZkFR0dFWQVHR0VAfQVHR0V%2FgwVHR3%2B%2BqfIyAHCASwVHR0V%2FtQVHR0VAlgVHR0V%2FagVHR0ETB0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR36fUtkS68dFWQVHR0VZBUd%2FtQdFWQVHR0VZBUdAAAABgAAAAAFFARMAA8AEwAjACoAOgBKAAATMzIWHQEUBisBIiY9ATQ2ASMRMwEhMhYdARQGIyEiJj0BNDYFMxUjFSc3BSEyFh0BFAYjISImPQE0NhMhMhYdARQGIyEiJj0BNDYyZBUdHRVkFR0dA2dkZPyuAfQVHR0V%2FgwVHR0EL8jIp6f75gEsFR0dFf7UFR0dFQJYFR0dFf2oFR0dBEwdFWQVHR0VZBUd%2B7QETP7UHRVkFR0dFWQVHchkS319rx0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR0AAAAAAgAAAMgEsAPoAA8AEgAAEyEyFhURFAYjISImNRE0NgkCSwLuHywsH%2F0SHywsBIT%2B1AEsA%2BgsH%2F12HywsHwKKHyz9RAEsASwAAwAAAAAEsARMAA8AFwAfAAATITIWFREUBiMhIiY1ETQ2FxE3BScBExEEMhYUBiImNCwEWBIaGhL7qBIaGkr3ASpKASXs%2FNJwTk5wTgRMGhL8DBIaGhID9BIaZP0ftoOcAT7%2B4AH0dE5vT09vAAAAAAIA2wAFBDYEkQAWAB4AAAEyHgEVFAcOAQ8BLgQnJjU0PgIWIgYUFjI2NAKIdcZzRkWyNjYJIV5YbSk8RHOft7eCgreCBJF4ynVzj23pPz4IIWZomEiEdVijeUjDgriBgbgAAAACABcAFwSZBJkADwAXAAAAMh4CFA4CIi4CND4BAREiDgEUHgEB4%2BrWm1tbm9bq1ptbW5sBS3TFcnLFBJlbm9bq1ptbW5vW6tab%2FG8DVnLF6MVyAAACAHUAAwPfBQ8AGgA1AAABHgYVFA4DBy4DNTQ%2BBQMOAhceBBcWNj8BNiYnLgInJjc2IyYCKhVJT1dOPiUzVnB9P1SbfEokP0xXUEm8FykoAwEbITEcExUWAgYCCQkFEikMGiACCAgFD0iPdXdzdYdFR4BeRiYEBTpjl1lFh3ZzeHaQ%2Ff4hS4I6JUEnIw4IBwwQIgoYBwQQQSlZtgsBAAAAAwAAAAAEywRsAAwAKgAvAAABNz4CHgEXHgEPAiUhMhcHISIGFREUFjMhMjY9ATcRFAYjISImNRE0NgkBBzcBA%2BhsAgYUFR0OFgoFBmz9BQGQMje7%2FpApOzspAfQpO8i7o%2F5wpbm5Azj%2BlqE3AWMD9XMBAgIEDw4WKgsKc8gNuzsp%2FgwpOzsptsj%2BtKW5uaUBkKW5%2Ftf%2BljKqAWMAAgAAAAAEkwRMABsANgAAASEGByMiBhURFBYzITI2NTcVFAYjISImNRE0NgUBFhQHAQYmJzUmDgMHPgY3NT4BAV4BaaQ0wyk7OykB9Ck7yLml%2FnClubkCfwFTCAj%2BrAcLARo5ZFRYGgouOUlARioTAQsETJI2Oyn%2BDCk7OymZZ6W5uaUBkKW5G%2F7TBxUH%2Fs4GBAnLAQINFjAhO2JBNB0UBwHSCgUAAAAAAgAAAAAEnQRMAB0ANQAAASEyFwchIgYVERQWMyEyNj0BNxUUBiMhIiY1ETQ2CQE2Mh8BFhQHAQYiLwEmND8BNjIfARYyAV4BXjxDsv6jKTs7KQH0KTvIuaX%2BcKW5uQHKAYsHFQdlBwf97QcVB%2FgHB2UHFQdvCBQETBexOyn%2BDCk7OylFyNulubmlAZCluf4zAYsHB2UHFQf97AcH%2BAcVB2UHB28HAAAAAQAKAAoEpgSmADsAAAkBNjIXARYGKwEVMzU0NhcBFhQHAQYmPQEjFTMyFgcBBiInASY2OwE1IxUUBicBJjQ3ATYWHQEzNSMiJgE%2BAQgIFAgBBAcFCqrICggBCAgI%2FvgICsiqCgUH%2FvwIFAj%2B%2BAgFCq%2FICgj%2B%2BAgIAQgICsivCgUDlgEICAj%2B%2BAgKyK0KBAf%2B%2FAcVB%2F73BwQKrcgKCP74CAgBCAgKyK0KBAcBCQcVBwEEBwQKrcgKAAEAyAAAA4QETAAZAAATMzIWFREBNhYVERQGJwERFAYrASImNRE0NvpkFR0B0A8VFQ%2F%2BMB0VZBUdHQRMHRX%2BSgHFDggV%2FBgVCA4Bxf5KFR0dFQPoFR0AAAABAAAAAASwBEwAIwAAEzMyFhURATYWFREBNhYVERQGJwERFAYnAREUBisBIiY1ETQ2MmQVHQHQDxUB0A8VFQ%2F%2BMBUP%2FjAdFWQVHR0ETB0V%2FkoBxQ4IFf5KAcUOCBX8GBUIDgHF%2FkoVCA4Bxf5KFR0dFQPoFR0AAAABAJ0AGQSwBDMAFQAAAREUBicBERQGJwEmNDcBNhYVEQE2FgSwFQ%2F%2BMBUP%2FhQPDwHsDxUB0A8VBBr8GBUIDgHF%2FkoVCA4B4A4qDgHgDggV%2FkoBxQ4IAAAAAQDIABYEMwQ2AAsAABMBFhQHAQYmNRE0NvMDLhIS%2FNISGRkEMv4OCx4L%2Fg4LDhUD6BUOAAIAyABkA4QD6AAPAB8AABMzMhYVERQGKwEiJjURNDYhMzIWFREUBisBIiY1ETQ2%2BsgVHR0VyBUdHQGlyBUdHRXIFR0dA%2BgdFfzgFR0dFQMgFR0dFfzgFR0dFQMgFR0AAAEAyABkBEwD6AAPAAABERQGIyEiJjURNDYzITIWBEwdFfzgFR0dFQMgFR0DtvzgFR0dFQMgFR0dAAAAAAEAAAAZBBMEMwAVAAABETQ2FwEWFAcBBiY1EQEGJjURNDYXAfQVDwHsDw%2F%2BFA8V%2FjAPFRUPAmQBthUIDv4gDioO%2FiAOCBUBtv47DggVA%2BgVCA4AAAH%2F%2FgACBLMETwAjAAABNzIWFRMUBiMHIiY1AwEGJjUDAQYmNQM0NhcBAzQ2FwEDNDYEGGQUHgUdFWQVHQL%2BMQ4VAv4yDxUFFQ8B0gIVDwHSAh0ETgEdFfwYFR0BHRUBtf46DwkVAbX%2BOQ4JFAPoFQkP%2Fj4BthQJDv49AbYVHQAAAQEsAAAD6ARMABkAAAEzMhYVERQGKwEiJjURAQYmNRE0NhcBETQ2A1JkFR0dFWQVHf4wDxUVDwHQHQRMHRX8GBUdHRUBtv47DggVA%2BgVCA7%2BOwG2FR0AAAIAZADIBLAESAALABsAAAkBFgYjISImNwE2MgEhMhYdARQGIyEiJj0BNDYCrgH1DwkW%2B%2B4WCQ8B9Q8q%2FfcD6BUdHRX8GBUdHQQ5%2FeQPFhYPAhwP%2FUgdFWQVHR0VZBUdAAEAiP%2F8A3UESgAFAAAJAgcJAQN1%2FqABYMX92AIoA4T%2Bn%2F6fxgIoAiYAAAAAAQE7%2F%2FwEKARKAAUAAAkBJwkBNwQo%2FdnGAWH%2Bn8YCI%2F3ZxgFhAWHGAAIAFwAXBJkEmQAPADMAAAAyHgIUDgIiLgI0PgEFIyIGHQEjIgYdARQWOwEVFBY7ATI2PQEzMjY9ATQmKwE1NCYB4%2BrWm1tbm9bq1ptbW5sBfWQVHZYVHR0Vlh0VZBUdlhUdHRWWHQSZW5vW6tabW1ub1urWm7odFZYdFWQVHZYVHR0Vlh0VZBUdlhUdAAAAAAIAFwAXBJkEmQAPAB8AAAAyHgIUDgIiLgI0PgEBISIGHQEUFjMhMjY9ATQmAePq1ptbW5vW6tabW1ubAkX%2BDBUdHRUB9BUdHQSZW5vW6tabW1ub1urWm%2F5%2BHRVkFR0dFWQVHQACABcAFwSZBJkADwAzAAAAMh4CFA4CIi4CND4BBCIPAScmIg8BBhQfAQcGFB8BFjI%2FARcWMj8BNjQvATc2NC8BAePq1ptbW5vW6tabW1ubAeUZCXh4CRkJjQkJeHgJCY0JGQl4eAkZCY0JCXh4CQmNBJlbm9bq1ptbW5vW6tabrQl4eAkJjQkZCXh4CRkJjQkJeHgJCY0JGQl4eAkZCY0AAgAXABcEmQSZAA8AJAAAADIeAhQOAiIuAjQ%2BAQEnJiIPAQYUHwEWMjcBNjQvASYiBwHj6tabW1ub1urWm1tbmwEVVAcVCIsHB%2FIHFQcBdwcHiwcVBwSZW5vW6tabW1ub1urWm%2F4xVQcHiwgUCPEICAF3BxUIiwcHAAAAAAMAFwAXBJkEmQAPADsASwAAADIeAhQOAiIuAjQ%2BAQUiDgMVFDsBFjc%2BATMyFhUUBgciDgUHBhY7ATI%2BAzU0LgMTIyIGHQEUFjsBMjY9ATQmAePq1ptbW5vW6tabW1ubAT8dPEIyIRSDHgUGHR8UFw4TARkOGhITDAIBDQ6tBx4oIxgiM0Q8OpYKDw8KlgoPDwSZW5vW6tabW1ub1urWm5ELHi9PMhkFEBQQFRIXFgcIBw4UHCoZCBEQKDhcNi9IKhsJ%2FeMPCpYKDw8KlgoPAAADABcAFwSZBJkADwAfAD4AAAAyHgIUDgIiLgI0PgEFIyIGHQEUFjsBMjY9ATQmAyMiBh0BFBY7ARUjIgYdARQWMyEyNj0BNCYrARE0JgHj6tabW1ub1urWm1tbmwGWlgoPDwqWCg8PCvoKDw8KS0sKDw8KAV4KDw8KSw8EmVub1urWm1tbm9bq1ptWDwqWCg8PCpYKD%2F7UDwoyCg%2FIDwoyCg8PCjIKDwETCg8AAgAAAAAEsASwAC8AXwAAATMyFh0BHgEXMzIWHQEUBisBDgEHFRQGKwEiJj0BLgEnIyImPQE0NjsBPgE3NTQ2ExUUBisBIiY9AQ4BBzMyFh0BFAYrAR4BFzU0NjsBMhYdAT4BNyMiJj0BNDY7AS4BAg2WCg9nlxvCCg8PCsIbl2cPCpYKD2eXG8IKDw8KwhuXZw%2B5DwqWCg9EZheoCg8PCqgXZkQPCpYKD0RmF6gKDw8KqBdmBLAPCsIbl2cPCpYKD2eXG8IKDw8KwhuXZw8KlgoPZ5cbwgoP%2Fs2oCg8PCqgXZkQPCpYKD0RmF6gKDw8KqBdmRA8KlgoPRGYAAwAXABcEmQSZAA8AGwA%2FAAAAMh4CFA4CIi4CND4BBCIOARQeATI%2BATQmBxcWFA8BFxYUDwEGIi8BBwYiLwEmND8BJyY0PwE2Mh8BNzYyAePq1ptbW5vW6tabW1ubAb%2FoxXJyxejFcnKaQAcHfHwHB0AHFQd8fAcVB0AHB3x8BwdABxUHfHwHFQSZW5vW6tabW1ub1urWmztyxejFcnLF6MVaQAcVB3x8BxUHQAcHfHwHB0AHFQd8fAcVB0AHB3x8BwAAAAMAFwAXBJkEmQAPABsAMAAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JgcXFhQHAQYiLwEmND8BNjIfATc2MgHj6tabW1ub1urWm1tbmwG%2F6MVycsXoxXJyg2oHB%2F7ACBQIyggIagcVB0%2FFBxUEmVub1urWm1tbm9bq1ps7csXoxXJyxejFfWoHFQf%2BvwcHywcVB2oICE%2FFBwAAAAMAFwAXBJkEmQAPABgAIQAAADIeAhQOAiIuAjQ%2BAQUiDgEVFBcBJhcBFjMyPgE1NAHj6tabW1ub1urWm1tbmwFLdMVyQQJLafX9uGhzdMVyBJlbm9bq1ptbW5vW6tabO3LFdHhpAktB0P24PnLFdHMAAAAAAQAXAFMEsAP5ABUAABMBNhYVESEyFh0BFAYjIREUBicBJjQnAgoQFwImFR0dFf3aFxD99hACRgGrDQoV%2Ft0dFcgVHf7dFQoNAasNJgAAAAABAAAAUwSZA%2FkAFQAACQEWFAcBBiY1ESEiJj0BNDYzIRE0NgJ%2FAgoQEP32EBf92hUdHRUCJhcD8f5VDSYN%2FlUNChUBIx0VyBUdASMVCgAAAAEAtwAABF0EmQAVAAAJARYGIyERFAYrASImNREhIiY3ATYyAqoBqw0KFf7dHRXIFR3%2B3RUKDQGrDSYEif32EBf92hUdHRUCJhcQAgoQAAAAAQC3ABcEXQSwABUAAAEzMhYVESEyFgcBBiInASY2MyERNDYCJsgVHQEjFQoN%2FlUNJg3%2BVQ0KFQEjHQSwHRX92hcQ%2FfYQEAIKEBcCJhUdAAABAAAAtwSZBF0AFwAACQEWFAcBBiY1EQ4DBz4ENxE0NgJ%2FAgoQEP32EBdesKWBJAUsW4fHfhcEVf5VDSYN%2FlUNChUBIwIkRHVNabGdcUYHAQYVCgACAAAAAASwBLAAFQArAAABITIWFREUBi8BBwYiLwEmND8BJyY2ASEiJjURNDYfATc2Mh8BFhQPARcWBgNSASwVHRUOXvkIFAhqBwf5Xg4I%2FiH%2B1BUdFQ5e%2BQgUCGoHB%2FleDggEsB0V%2FtQVCA5e%2BQcHaggUCPleDhX7UB0VASwVCA5e%2BQcHaggUCPleDhUAAAACAEkASQRnBGcAFQArAAABFxYUDwEXFgYjISImNRE0Nh8BNzYyASEyFhURFAYvAQcGIi8BJjQ%2FAScmNgP2agcH%2BV4OCBX%2B1BUdFQ5e%2BQgU%2FQwBLBUdFQ5e%2BQgUCGoHB%2FleDggEYGoIFAj5Xg4VHRUBLBUIDl75B%2F3xHRX%2B1BUIDl75BwdqCBQI%2BV4OFQAAAAADABcAFwSZBJkADwAfAC8AAAAyHgIUDgIiLgI0PgEFIyIGFxMeATsBMjY3EzYmAyMiBh0BFBY7ATI2PQE0JgHj6tabW1ub1urWm1tbmwGz0BQYBDoEIxQ2FCMEOgQYMZYKDw8KlgoPDwSZW5vW6tabW1ub1urWm7odFP7SFB0dFAEuFB3%2BDA8KlgoPDwqWCg8AAAAABQAAAAAEsASwAEkAVQBhAGgAbwAAATIWHwEWHwEWFxY3Nj8BNjc2MzIWHwEWHwIeATsBMhYdARQGKwEiBh0BIREjESE1NCYrASImPQE0NjsBMjY1ND8BNjc%2BBAUHBhY7ATI2LwEuAQUnJgYPAQYWOwEyNhMhIiY1ESkBERQGIyERAQQJFAUFFhbEFQ8dCAsmxBYXERUXMA0NDgQZCAEPCj0KDw8KMgoP%2FnDI%2FnAPCjIKDw8KPQsOCRkFDgIGFRYfAp2mBwQK2woKAzMDEP41sQgQAzMDCgrnCwMe%2FokKDwGQAlgPCv6JBLAEAgIKDXYNCxUJDRZ2DQoHIREQFRh7LAkLDwoyCg8PCq8BLP7UrwoPDwoyCg8GBQQwgBkUAwgWEQ55ogcKDgqVCgSqnQcECo8KDgr8cg8KAXf%2BiQoPAZAAAAAAAgAAAAwErwSmACsASQAAATYWFQYCDgQuAScmByYOAQ8BBiY1NDc%2BATc%2BAScuAT4BNz4GFyYGBw4BDwEOBAcOARY2Nz4CNz4DNz4BBI0IGgItQmxhi2KORDg9EQQRMxuZGhYqCFUYEyADCQIQOjEnUmFch3vAJQgdHyaiPT44XHRZUhcYDhItIRmKcVtGYWtbKRYEBKYDEwiy%2Ft3IlVgxEQgLCwwBAQIbG5kYEyJAJghKFRE8Hzdff4U%2FM0o1JSMbL0QJGCYvcSEhHjZST2c1ODwEJygeW0AxJUBff1UyFAABAF0AHgRyBM8ATwAAAQ4BHgQXLgc%2BATceAwYHDgQHBicmNzY3PgQuAScWDgMmJy4BJyY%2BBDcGHgM3PgEuAicmPgMCjScfCic4R0IgBBsKGAoQAwEJEg5gikggBhANPkpTPhZINx8SBgsNJysiCRZOQQoVNU1bYC9QZwICBAUWITsoCAYdJzIYHw8YIiYHDyJJYlkEz0OAZVxEOSQMBzgXOB42IzElKRIqg5Gnl0o3Z0c6IAYWCwYNAwQFIDhHXGF1OWiqb0sdBxUknF0XNTQ8PEUiNWNROBYJDS5AQVUhVZloUSkAAAAAA%2F%2FcAGoE1ARGABsAPwBRAAAAMh4FFA4FIi4FND4EBSYGFxYVFAYiJjU0NzYmBwYHDgEXHgQyPgM3NiYnJgUHDgEXFhcWNj8BNiYnJicuAQIGpJ17bk85HBw6T257naKde25POhwcOU9uewIPDwYIGbD4sBcIBw5GWg0ECxYyWl%2BDiINfWjIWCwQMWv3%2FIw8JCSU4EC0OIw4DDywtCyIERi1JXGJcSSpJXGJcSS0tSVxiXEkqSVxiXEncDwYTOT58sLB8OzcTBg9FcxAxEiRGXkQxMEVeRSQSMRF1HiQPLxJEMA0EDyIPJQ8sSRIEAAAABP%2FcAAAE1ASwABQAJwA7AEwAACEjNy4ENTQ%2BBTMyFzczEzceARUUDgMHNz4BNzYmJyYlBgcOARceBBc3LgE1NDc2JhcHDgEXFhcWNj8CJyYnLgECUJQfW6l2WSwcOU9ue51SPUEglCYvbIknUGqYUi5NdiYLBAw2%2FVFGWg0ECxIqSExoNSlrjxcIB3wjDwkJJTgQLQ4MFgMsLQsieBRhdHpiGxVJXGJcSS0Pef5StVXWNBpacm5jGq0xiD8SMRFGckVzEDESHjxRQTkNmhKnbjs3EwZwJA8vEkQwDQQPC1YELEkSBAAAAAP%2FngAABRIEqwALABgAKAAAJwE2FhcBFgYjISImJSE1NDY7ATIWHQEhAQczMhYPAQ4BKwEiJi8BJjZaAoIUOBQCghUbJfryJRsBCgFZDwqWCg8BWf5DaNAUGAQ6BCMUNhQjBDoEGGQEKh8FIfvgIEdEhEsKDw8KSwLT3x0U%2FBQdHRT8FB0AAAABAGQAFQSwBLAAKAAAADIWFREBHgEdARQGJyURFh0BFAYvAQcGJj0BNDcRBQYmPQE0NjcBETQCTHxYAWsPFhgR%2FplkGhPNzRMaZP6ZERgWDwFrBLBYPv6t%2FrsOMRQpFA0M%2Bf75XRRAFRAJgIAJEBVAFF0BB%2FkMDRQpFDEOAUUBUz4AAAARAAAAAARMBLAAHQAnACsALwAzADcAOwA%2FAEMARwBLAE8AUwBXAFsAXwBjAAABMzIWHQEzMhYdASE1NDY7ATU0NjsBMhYdASE1NDYBERQGIyEiJjURFxUzNTMVMzUzFTM1MxUzNTMVMzUFFTM1MxUzNTMVMzUzFTM1MxUzNQUVMzUzFTM1MxUzNTMVMzUzFTM1A1JkFR0yFR37tB0VMh0VZBUdAfQdAQ8dFfwYFR1kZGRkZGRkZGRk%2FHxkZGRkZGRkZGT8fGRkZGRkZGRkZASwHRUyHRWWlhUdMhUdHRUyMhUd%2FnD9EhUdHRUC7shkZGRkZGRkZGRkyGRkZGRkZGRkZGTIZGRkZGRkZGRkZAAAAAMAAAAZBXcElwAZACUANwAAARcWFA8BBiY9ASMBISImPQE0NjsBATM1NDYBBycjIiY9ATQ2MyEBFxYUDwEGJj0BIyc3FzM1NDYEb%2FkPD%2FkOFZ%2F9qP7dFR0dFdECWPEV%2FamNetEVHR0VASMDGvkPD%2FkOFfG1jXqfFQSN5g4qDuYOCBWW%2FagdFWQVHQJYlhUI%2FpiNeh0VZBUd%2Fk3mDioO5g4IFZa1jXqWFQgAAAABAAAAAASwBEwAEgAAEyEyFhURFAYjIQERIyImNRE0NmQD6Ck7Oyn9rP7QZCk7OwRMOyn9qCk7%2FtQBLDspAlgpOwAAAAMAZAAABEwEsAAJABMAPwAAEzMyFh0BITU0NiEzMhYdASE1NDYBERQOBSIuBTURIRUUFRwBHgYyPgYmNTQ9AZbIFR3%2B1B0C0cgVHf7UHQEPBhgoTGacwJxmTCgYBgEsAwcNFB8nNkI2Jx8TDwUFAQSwHRX6%2BhUdHRX6%2BhUd%2FnD%2B1ClJalZcPigoPlxWakkpASz6CRIVKyclIRsWEAgJEBccISUnKhURCPoAAAAB%2F%2F8A1ARMA8IABQAAAQcJAScBBEzG%2Fp%2F%2Bn8UCJwGbxwFh%2Fp%2FHAicAAQAAAO4ETQPcAAUAAAkCNwkBBE392v3ZxgFhAWEDFf3ZAifH%2Fp8BYQAAAAAC%2F1EAZAVfA%2BgAFAApAAABITIWFREzMhYPAQYiLwEmNjsBESElFxYGKwERIRchIiY1ESMiJj8BNjIBlALqFR2WFQgO5g4qDuYOCBWW%2FoP%2BHOYOCBWWAYHX%2FRIVHZYVCA7mDioD6B0V%2FdkVDvkPD%2FkOFQGRuPkOFf5wyB0VAiYVDvkPAAABAAYAAASeBLAAMAAAEzMyFh8BITIWBwMOASMhFyEyFhQGKwEVFAYiJj0BIRUUBiImPQEjIiYvAQMjIiY0NjheERwEJgOAGB4FZAUsIf2HMAIXFR0dFTIdKh3%2B1B0qHR8SHQYFyTYUHh4EsBYQoiUY%2FiUVK8gdKh0yFR0dFTIyFR0dFTIUCQoDwR0qHQAAAAACAAAAAASwBEwACwAPAAABFSE1MzQ2MyEyFhUFIREhBLD7UMg7KQEsKTv9RASw%2B1AD6GRkKTs7Kcj84AACAAAAAAXcBEwADAAQAAATAxEzNDYzITIWFSEVBQEhAcjIyDspASwqOgH0ASz%2B1PtQASwDIP5wAlgpOzspyGT9RAK8AAEBRQAAA2sErwAbAAABFxYGKwERMzIWDwEGIi8BJjY7AREjIiY%2FATYyAnvmDggVlpYVCA7mDioO5g4IFZaWFQgO5g4qBKD5DhX9pxUO%2BQ8P%2BQ4VAlkVDvkPAAAAAQABAUQErwNrABsAAAEXFhQPAQYmPQEhFRQGLwEmND8BNhYdASE1NDYDqPkODvkPFf2oFQ%2F5Dg75DxUCWBUDYOUPKQ%2FlDwkUl5cUCQ%2FlDykP5Q8JFZWVFQkAAAAEAAAAAASwBLAACQAZAB0AIQAAAQMuASMhIgYHAwUhIgYdARQWMyEyNj0BNCYFNTMVMzUzFQSRrAUkFP1gFCQFrAQt%2FBgpOzspA%2BgpOzv%2Bq2RkZAGQAtwXLSgV%2FR1kOylkKTs7KWQpO8hkZGRkAAAAA%2F%2BcAGQEsARMAAsAIwAxAAAAMhYVERQGIiY1ETQDJSMTFgYjIisBIiYnAj0BNDU0PgE7ASUBFSIuAz0BND4CNwRpKh0dKh1k%2FV0mLwMRFQUCVBQdBDcCCwzIAqP8GAQOIhoWFR0dCwRMHRX8rhUdHRUDUhX8mcj%2B7BAIHBUBUQ76AgQQDw36%2FtT6AQsTKRwyGigUDAEAAAACAEoAAARmBLAALAA1AAABMzIWDwEeARcTFzMyFhQGBw4EIyIuBC8BLgE0NjsBNxM%2BATcnJjYDFjMyNw4BIiYCKV4UEgYSU3oPP3YRExwaEggeZGqfTzl0XFU%2BLwwLEhocExF2Pw96UxIGEyQyNDUxDDdGOASwFRMlE39N%2FrmtHSkoBwQLHBYSCg4REg4FBAgoKR2tAUdNfhQgExr7vgYGMT09AAEAFAAUBJwEnAAXAAABNwcXBxcHFycHJwcnBzcnNyc3Jxc3FzcDIOBO6rS06k7gLZubLeBO6rS06k7gLZubA7JO4C2bmy3gTuq0tOpO4C2bmy3gTuq0tAADAAAAZASwBLAAIQAtAD0AAAEzMhYdAQchMhYdARQHAw4BKwEiJi8BIyImNRE0PwI%2BARcPAREzFzMTNSE3NQEzMhYVERQGKwEiJjURNDYCijIoPBwBSCg8He4QLBf6B0YfHz0tNxSRYA0xG2SWZIjW%2Bv4%2BMv12ZBUdHRVkFR0dBLBRLJZ9USxkLR3%2BqBghMhkZJCcBkCQbxMYcKGTU1f6JZAF3feGv%2FtQdFf4MFR0dFQH0FR0AAAAAAwAAAAAEsARMACAAMAA8AAABMzIWFxMWHQEUBiMhFh0BFAYrASImLwImNRE0NjsBNgUzMhYVERQGKwEiJjURNDYhByMRHwEzNSchNQMCWPoXLBDuHTwo%2FrgcPCgyGzENYJEUNy09fP3pZBUdHRVkFR0dAl%2BIZJZkMjIBwvoETCEY%2FqgdLWQsUXYHlixRKBzGxBskAZAnJGRkHRX%2BDBUdHRUB9BUdZP6J1dSv4X0BdwADAAAAZAUOBE8AGwA3AEcAAAElNh8BHgEPASEyFhQGKwEDDgEjISImNRE0NjcXERchEz4BOwEyNiYjISoDLgQnJj8BJwUzMhYVERQGKwEiJjURNDYBZAFrHxZuDQEMVAEuVGxuVGqDBhsP%2FqoHphwOOmQBJYMGGw%2FLFRMSFv44AgoCCQMHAwUDAQwRklb9T2QVHR0VZBUdHQNp5hAWcA0mD3lMkE7%2BrRUoog0CDRElCkj%2BCVkBUxUoMjIBAgIDBQIZFrdT5B0V%2FgwVHR0VAfQVHQAAAAP%2FnABkBLAETwAdADYARgAAAQUeBBURFAYjISImJwMjIiY0NjMhJyY2PwE2BxcWBw4FKgIjIRUzMhYXEyE3ESUFMzIWFREUBisBIiY1ETQ2AdsBbgIIFBANrAf%2Bqg8bBoNqVW1sVAEuVQsBDW4WSpIRDAIDBQMHAwkDCgH%2BJd0PHAaCASZq%2FqoCUGQVHR0VZBUdHQRP5gEFEBEXC%2F3zDaIoFQFTTpBMeQ8mDXAWrrcWGQIFAwICAWQoFf6tWQH37OQdFf4MFR0dFQH0FR0AAAADAGEAAARMBQ4AGwA3AEcAAAAyFh0BBR4BFREUBiMhIiYvAQMmPwE%2BAR8BETQXNTQmBhURHAMOBAcGLwEHEyE3ESUuAQMhMhYdARQGIyEiJj0BNDYB3pBOAVMVKKIN%2FfMRJQoJ5hAWcA0mD3nGMjIBAgIDBQIZFrdT7AH3Wf6tFSiWAfQVHR0V%2FgwVHR0FDm5UaoMGGw%2F%2BqgemHA4OAWsfFm4NAQxUAS5U1ssVExIW%2FjgCCgIJAwcDBQMBDBGSVv6tZAElgwYb%2FQsdFWQVHR0VZBUdAAP%2F%2FQAGA%2BgFFAAPAC0ASQAAASEyNj0BNCYjISIGHQEUFgEVFAYiJjURBwYmLwEmNxM%2BBDMhMhYVERQGBwEDFzc2Fx4FHAIVERQWNj0BNDY3JREnAV4B9BUdHRX%2BDBUdHQEPTpBMeQ8mDXAWEOYBBRARFwsCDQ2iKBX9iexTtxYZAgUDAgIBMjIoFQFTWQRMHRVkFR0dFWQVHfzmalRubFQBLlQMAQ1uFh8BawIIEw8Mpgf%2Bqg8bBgHP%2Fq1WkhEMAQMFAwcDCQIKAv44FhITFcsPGwaDASVkAAIAFgAWBJoEmgAPACUAAAAyHgIUDgIiLgI0PgEBJSYGHQEhIgYdARQWMyEVFBY3JTY0AeLs1ptbW5vW7NabW1ubAob%2B7RAX%2Fu0KDw8KARMXEAETEASaW5vW7NabW1ub1uzWm%2F453w0KFYkPCpYKD4kVCg3fDSYAAAIAFgAWBJoEmgAPACUAAAAyHgIUDgIiLgI0PgENAQYUFwUWNj0BITI2PQE0JiMhNTQmAeLs1ptbW5vW7NabW1ubASX%2B7RAQARMQFwETCg8PCv7tFwSaW5vW7NabW1ub1uzWm%2BjfDSYN3w0KFYkPCpYKD4kVCgAAAAIAFgAWBJoEmgAPACUAAAAyHgIUDgIiLgI0PgEBAyYiBwMGFjsBERQWOwEyNjURMzI2AeLs1ptbW5vW7NabW1ubAkvfDSYN3w0KFYkPCpYKD4kVCgSaW5vW7NabW1ub1uzWm%2F5AARMQEP7tEBf%2B7QoPDwoBExcAAAIAFgAWBJoEmgAPACUAAAAyHgIUDgIiLgI0PgEFIyIGFREjIgYXExYyNxM2JisBETQmAeLs1ptbW5vW7NabW1ubAZeWCg%2BJFQoN3w0mDd8NChWJDwSaW5vW7NabW1ub1uzWm7sPCv7tFxD%2B7RAQARMQFwETCg8AAAMAGAAYBJgEmAAPAJYApgAAADIeAhQOAiIuAjQ%2BASUOAwcGJgcOAQcGFgcOAQcGFgcUFgcyHgEXHgIXHgI3Fg4BFx4CFxQGFBcWNz4CNy4BJy4BJyIOAgcGJyY2NS4BJzYuAQYHBicmNzY3HgIXHgMfAT4CJyY%2BATc%2BAzcmNzIWMjY3LgMnND4CJiceAT8BNi4CJwYHFB4BFS4CJz4BNxYyPgEB5OjVm1xcm9Xo1ZtcXJsBZA8rHDoKDz0PFD8DAxMBAzEFCRwGIgEMFhkHECIvCxU%2FOR0HFBkDDRQjEwcFaHUeISQDDTAMD0UREi4oLBAzDwQBBikEAQMLGhIXExMLBhAGKBsGBxYVEwYFAgsFAwMNFwQGCQcYFgYQCCARFwkKKiFBCwQCAQMDHzcLDAUdLDgNEiEQEgg%2FKhADGgMKEgoRBJhcm9Xo1ZtcXJvV6NWbEQwRBwkCAwYFBycPCxcHInIWInYcCUcYChQECA4QBAkuHgQPJioRFRscBAcSCgwCch0kPiAIAQcHEAsBAgsLIxcBMQENCQIPHxkCFBkdHB4QBgEBBwoMGBENBAMMJSAQEhYXDQ4qFBkKEhIDCQsXJxQiBgEOCQwHAQ0DBAUcJAwSCwRnETIoAwEJCwsLJQcKDBEAAAAAAQAAAAIErwSFABYAAAE2FwUXNxYGBw4BJwEGIi8BJjQ3ASY2AvSkjv79kfsGUE08hjv9rA8rD28PDwJYIk8EhVxliuh%2BWYcrIgsW%2FawQEG4PKxACV2XJAAYAAABgBLAErAAPABMAIwAnADcAOwAAEyEyFh0BFAYjISImPQE0NgUjFTMFITIWHQEUBiMhIiY9ATQ2BSEVIQUhMhYdARQGIyEiJj0BNDYFIRUhZAPoKTs7KfwYKTs7BBHIyPwYA%2BgpOzsp%2FBgpOzsEEf4MAfT8GAPoKTs7KfwYKTs7BBH%2B1AEsBKw7KWQpOzspZCk7ZGTIOylkKTs7KWQpO2RkyDspZCk7OylkKTtkZAAAAAIAZAAABEwEsAALABEAABMhMhYUBiMhIiY0NgERBxEBIZYDhBUdHRX8fBUdHQI7yP6iA4QEsB0qHR0qHf1E%2FtTIAfQB9AAAAAMAAABkBLAEsAAXABsAJQAAATMyFh0BITIWFREhNSMVIRE0NjMhNTQ2FxUzNQEVFAYjISImPQEB9MgpOwEsKTv%2BDMj%2BDDspASw7KcgB9Dsp%2FBgpOwSwOylkOyn%2BcGRkAZApO2QpO2RkZP1EyCk7OynIAAAABAAAAAAEsASwABUAKwBBAFcAABMhMhYPARcWFA8BBiIvAQcGJjURNDYpATIWFREUBi8BBwYiLwEmND8BJyY2ARcWFA8BFxYGIyEiJjURNDYfATc2MgU3NhYVERQGIyEiJj8BJyY0PwE2MhcyASwVCA5exwcHaggUCMdeDhUdAzUBLBUdFQ5exwgUCGoHB8deDgj%2BL2oHB8deDggV%2FtQVHRUOXscIFALLXg4VHRX%2B1BUIDl7HBwdqCBQIBLAVDl7HCBQIagcHx14OCBUBLBUdHRX%2B1BUIDl7HBwdqCBQIx14OFf0maggUCMdeDhUdFQEsFQgOXscHzl4OCBX%2B1BUdFQ5exwgUCGoHBwAAAAYAAAAABKgEqAAPABsAIwA7AEMASwAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JiQyFhQGIiY0JDIWFAYjIicHFhUUBiImNTQ2PwImNTQEMhYUBiImNCQyFhQGIiY0Advy3Z9fX5%2Fd8t2gXl6gAcbgv29vv%2BC%2Fb2%2F%2BLS0gIC0gAUwtICAWDg83ETNIMykfegEJ%2FoctICAtIAIdLSAgLSAEqF%2Bf3fLdoF5eoN3y3Z9Xb7%2Fgv29vv%2BC%2FBiAtISEtICAtIQqRFxwkMzMkIDEFfgEODhekIC0gIC0gIC0gIC0AAf%2FYAFoEuQS8AFsAACUBNjc2JicmIyIOAwcABw4EFx4BMzI3ATYnLgEjIgcGBwEOASY0NwA3PgEzMhceARcWBgcOBgcGIyImJyY2NwE2NzYzMhceARcWBgcBDgEnLgECIgHVWwgHdl8WGSJBMD8hIP6IDx4eLRMNBQlZN0ozAiQkEAcdEhoYDRr%2Bqw8pHA4BRyIjQS4ODyw9DQ4YIwwod26La1YOOEBGdiIwGkQB%2F0coW2tQSE5nDxE4Qv4eDyoQEAOtAdZbZWKbEQQUGjIhH%2F6JDxsdNSg3HT5CMwIkJCcQFBcMGv6uDwEcKQ4BTSIjIQEINykvYyMLKnhuiWZMBxtAOU6%2BRAH%2FSBg3ISSGV121Qv4kDwIPDyYAAAACAGQAWASvBEQAGQBEAAABPgIeAhUUDgMHLgQ1ND4CHgEFIg4DIi4DIyIGFRQeAhcWFx4EMj4DNzY3PgQ1NCYCiTB7eHVYNkN5hKg%2BPqeFeEM4WnZ4eQEjIT8yLSohJyktPyJDbxtBMjMPBw86KzEhDSIzKUAMBAgrKT8dF2oDtURIBS1TdkA5eYB%2FslVVsn%2BAeTlAdlMtBUgtJjY1JiY1NiZvTRc4SjQxDwcOPCouGBgwKEALBAkpKkQqMhNPbQACADn%2F8gR3BL4AFwAuAAAAMh8BFhUUBg8BJi8BNycBFwcvASY0NwEDNxYfARYUBwEGIi8BJjQ%2FARYfAQcXAQKru0KNQjgiHR8uEl%2F3%2FnvUaRONQkIBGxJpCgmNQkL%2B5UK6Qo1CQjcdLhJf9wGFBL5CjUJeKmsiHTUuEl%2F4%2FnvUahKNQrpCARv%2BRmkICY1CukL%2B5UJCjUK7Qjc3LxFf%2BAGFAAAAAAMAyAAAA%2BgEsAARABUAHQAAADIeAhURFAYjISImNRE0PgEHESERACIGFBYyNjQCBqqaZDo7Kf2oKTs8Zj4CWP7%2FVj09Vj0EsB4uMhX8Ryk7OykDuRUzLar9RAK8%2FRY9Vj09VgABAAAAAASwBLAAFgAACQEWFAYiLwEBEScBBRMBJyEBJyY0NjIDhgEbDx0qDiT%2B6dT%2BzP7oywEz0gEsAQsjDx0qBKH%2B5g8qHQ8j%2FvX%2B1NL%2BzcsBGAE01AEXJA4qHQAAAAADAScAEQQJBOAAMgBAAEsAAAEVHgQXIy4DJxEXHgQVFAYHFSM1JicuASczHgEXEScuBDU0PgI3NRkBDgMVFB4DFxYXET4ENC4CArwmRVI8LAKfBA0dMydAIjxQNyiym2SWVygZA4sFV0obLkJOMCAyVWg6HSoqFQ4TJhkZCWgWKTEiGBkzNwTgTgUTLD9pQiQuLBsH%2Fs0NBxMtPGQ%2Bi6oMTU8QVyhrVk1iEAFPCA4ZLzlYNkZwSCoGTf4SARIEDh02Jh0rGRQIBgPQ%2FsoCCRYgNEM0JRkAAAABAGQAZgOUBK0ASgAAATIeARUjNC4CIyIGBwYVFB4BFxYXMxUjFgYHBgc%2BATM2FjMyNxcOAyMiLgEHDgEPASc%2BBTc%2BAScjNTMmJy4CPgE3NgIxVJlemSc8OxolVBQpGxoYBgPxxQgVFS02ImIWIIwiUzUyHzY4HCAXanQmJ1YYFzcEGAcTDBEJMAwk3aYXFQcKAg4tJGEErVCLTig%2FIhIdFSw5GkowKgkFZDKCHj4yCg8BIh6TExcIASIfBAMaDAuRAxAFDQsRCjePR2QvORQrREFMIVgAAAACABn%2F%2FwSXBLAADwAfAAABMzIWDwEGIi8BJjY7AREzBRcWBisBESMRIyImPwE2MgGQlhUIDuYOKg7mDggVlsgCF%2BYOCBWWyJYVCA7mDioBLBYO%2Bg8P%2Bg4WA4QQ%2BQ4V%2FHwDhBUO%2BQ8AAAQAGf%2F%2FA%2BgEsAAHABcAGwAlAAABIzUjFSMRIQEzMhYPAQYiLwEmNjsBETMFFTM1EwczFSE1NyM1IQPoZGRkASz9qJYVCA7mDioO5g4IFZbIAZFkY8jI%2FtTIyAEsArxkZAH0%2FHwWDvoPD%2FoOFgOEZMjI%2FRL6ZJb6ZAAAAAAEABn%2F%2FwPoBLAADwAZACEAJQAAATMyFg8BBiIvASY2OwERMwUHMxUhNTcjNSERIzUjFSMRIQcVMzUBkJYVCA7mDioO5g4IFZbIAljIyP7UyMgBLGRkZAEsx2QBLBYO%2Bg8P%2Bg4WA4SW%2BmSW%2BmT7UGRkAfRkyMgAAAAEABn%2F%2FwRMBLAADwAVABsAHwAAATMyFg8BBiIvASY2OwERMwEjESM1MxMjNSMRIQcVMzUBkJYVCA7mDioO5g4IFZbIAlhkZMhkZMgBLMdkASwWDvoPD%2FoOFgOE%2FgwBkGT7UGQBkGTIyAAAAAAEABn%2F%2FwRMBLAADwAVABkAHwAAATMyFg8BBiIvASY2OwERMwEjNSMRIQcVMzUDIxEjNTMBkJYVCA7mDioO5g4IFZbIArxkyAEsx2QBZGTIASwWDvoPD%2FoOFgOE%2FgxkAZBkyMj7tAGQZAAAAAAFABn%2F%2FwSwBLAADwATABcAGwAfAAABMzIWDwEGIi8BJjY7AREzBSM1MxMhNSETITUhEyE1IQGQlhUIDuYOKg7mDggVlsgB9MjIZP7UASxk%2FnABkGT%2BDAH0ASwWDvoPD%2FoOFgOEyMj%2BDMj%2BDMj%2BDMgABQAZ%2F%2F8EsASwAA8AEwAXABsAHwAAATMyFg8BBiIvASY2OwERMwUhNSEDITUhAyE1IQMjNTMBkJYVCA7mDioO5g4IFZbIAyD%2BDAH0ZP5wAZBk%2FtQBLGTIyAEsFg76Dw%2F6DhYDhMjI%2FgzI%2FgzI%2FgzIAAIAAAAABEwETAAPAB8AAAEhMhYVERQGIyEiJjURNDYFISIGFREUFjMhMjY1ETQmAV4BkKK8u6P%2BcKW5uQJn%2FgwpOzspAfQpOzsETLuj%2FnClubmlAZClucg7Kf4MKTs7KQH0KTsAAAAAAwAAAAAETARMAA8AHwArAAABITIWFREUBiMhIiY1ETQ2BSEiBhURFBYzITI2NRE0JgUXFhQPAQYmNRE0NgFeAZClubml%2FnCju7wCZP4MKTs7KQH0KTs7%2Fm%2F9ERH9EBgYBEy5pf5wpbm5pQGQo7vIOyn%2BDCk7OykB9Ck7gr4MJAy%2BDAsVAZAVCwAAAAADAAAAAARMBEwADwAfACsAAAEhMhYVERQGIyEiJjURNDYFISIGFREUFjMhMjY1ETQmBSEyFg8BBiIvASY2AV4BkKO7uaX%2BcKW5uQJn%2FgwpOzspAfQpOzv%2BFQGQFQsMvgwkDL4MCwRMvKL%2BcKW5uaUBkKO7yDsp%2FgwpOzspAfQpO8gYEP0REf0QGAAAAAMAAAAABEwETAAPAB8AKwAAASEyFhURFAYjISImNRE0NgUhIgYVERQWMyEyNjURNCYFFxYGIyEiJj8BNjIBXgGQpbm5pf5wo7u5Amf%2BDCk7OykB9Ck7O%2F77vgwLFf5wFQsMvgwkBEy5pf5wo7u8ogGQpbnIOyn%2BDCk7OykB9Ck7z%2F0QGBgQ%2FREAAAAAAgAAAAAFFARMAB8ANQAAASEyFhURFAYjISImPQE0NjMhMjY1ETQmIyEiJj0BNDYHARYUBwEGJj0BIyImPQE0NjsBNTQ2AiYBkKW5uaX%2BcBUdHRUBwik7Oyn%2BPhUdHb8BRBAQ%2FrwQFvoVHR0V%2BhYETLml%2FnCluR0VZBUdOykB9Ck7HRVkFR3p%2FuQOJg7%2B5A4KFZYdFcgVHZYVCgAAAQDZAAID1wSeACMAAAEXFgcGAgclMhYHIggBBwYrAScmNz4BPwEhIicmNzYANjc2MwMZCQgDA5gCASwYEQ4B%2Fvf%2B8wQMDgkJCQUCUCcn%2FtIXCAoQSwENuwUJEASeCQoRC%2F5TBwEjEv7K%2FsUFDwgLFQnlbm4TFRRWAS%2FTBhAAAAACAAAAAAT%2BBEwAHwA1AAABITIWHQEUBiMhIgYVERQWMyEyFh0BFAYjISImNRE0NgUBFhQHAQYmPQEjIiY9ATQ2OwE1NDYBXgGQFR0dFf4%2BKTs7KQHCFR0dFf5wpbm5AvEBRBAQ%2FrwQFvoVHR0V%2BhYETB0VZBUdOyn%2BDCk7HRVkFR25pQGQpbnp%2FuQOJg7%2B5A4KFZYdFcgVHZYVCgACAAAAAASwBLAAFQAxAAABITIWFREUBi8BAQYiLwEmNDcBJyY2ASMiBhURFBYzITI2PQE3ERQGIyEiJjURNDYzIQLuAZAVHRUObf7IDykPjQ8PAThtDgj%2B75wpOzspAfQpO8i7o%2F5wpbm5pQEsBLAdFf5wFQgObf7IDw%2BNDykPAThtDhX%2B1Dsp%2FgwpOzsplMj%2B1qW5uaUBkKW5AAADAA4ADgSiBKIADwAbACMAAAAyHgIUDgIiLgI0PgEEIg4BFB4BMj4BNCYEMhYUBiImNAHh7tmdXV2d2e7ZnV1dnQHD5sJxccLmwnFx%2FnugcnKgcgSiXZ3Z7tmdXV2d2e7ZnUdxwubCcXHC5sJzcqBycqAAAAMAAAAABEwEsAAVAB8AIwAAATMyFhURMzIWBwEGIicBJjY7ARE0NgEhMhYdASE1NDYFFTM1AcLIFR31FAoO%2FoEOJw3%2BhQ0JFfod%2FoUD6BUd%2B7QdA2dkBLAdFf6iFg%2F%2BVg8PAaoPFgFeFR38fB0V%2BvoVHWQyMgAAAAMAAAAABEwErAAVAB8AIwAACQEWBisBFRQGKwEiJj0BIyImNwE%2BAQEhMhYdASE1NDYFFTM1AkcBeg4KFfQiFsgUGPoUCw4Bfw4n%2FfkD6BUd%2B7QdA2dkBJ7%2BTQ8g%2BhQeHRX6IQ8BrxAC%2FH8dFfr6FR1kMjIAAwAAAAAETARLABQAHgAiAAAJATYyHwEWFAcBBiInASY0PwE2MhcDITIWHQEhNTQ2BRUzNQGMAXEHFQeLBwf98wcVB%2F7cBweLCBUH1APoFR37tB0DZ2QC0wFxBweLCBUH%2FfMICAEjCBQIiwcH%2FdIdFfr6FR1kMjIABAAAAAAETASbAAkAGQAjACcAABM3NjIfAQcnJjQFNzYWFQMOASMFIiY%2FASc3ASEyFh0BITU0NgUVMzWHjg4qDk3UTQ4CFtIOFQIBHRX9qxUIDtCa1P49A%2BgVHfu0HQNnZAP%2Fjg4OTdRMDyqa0g4IFf2pFB4BFQ7Qm9T9Oh0V%2BvoVHWQyMgAAAAQAAAAABEwEsAAPABkAIwAnAAABBR4BFRMUBi8BByc3JyY2EwcGIi8BJjQ%2FAQEhMhYdASE1NDYFFTM1AV4CVxQeARUO0JvUm9IOCMNMDyoOjg4OTf76A%2BgVHfu0HQNnZASwAgEdFf2rFQgO0JrUmtIOFf1QTQ4Ojg4qDk3%2BWB0V%2BvoVHWQyMgACAAT%2F7ASwBK8ABQAIAAAlCQERIQkBFQEEsP4d%2Fsb%2BcQSs%2FTMCq2cBFP5xAacDHPz55gO5AAAAAAIAAABkBEwEsAAVABkAAAERFAYrAREhESMiJjURNDY7AREhETMHIzUzBEwdFZb9RJYVHR0V%2BgH0ZMhkZAPo%2FK4VHQGQ%2FnAdFQPoFB7%2B1AEsyMgAAAMAAABFBN0EsAAWABoALwAAAQcBJyYiDwEhESMiJjURNDY7AREhETMHIzUzARcWFAcBBiIvASY0PwE2Mh8BATYyBEwC%2FtVfCRkJlf7IlhUdHRX6AfRkyGRkAbBqBwf%2BXAgUCMoICGoHFQdPASkHFQPolf7VXwkJk%2F5wHRUD6BQe%2FtQBLMjI%2Fc5qBxUH%2FlsHB8sHFQdqCAhPASkHAAMAAAANBQcEsAAWABoAPgAAAREHJy4BBwEhESMiJjURNDY7AREhETMHIzUzARcWFA8BFxYUDwEGIi8BBwYiLwEmND8BJyY0PwE2Mh8BNzYyBExnhg8lEP72%2FreWFR0dFfoB9GTIZGQB9kYPD4ODDw9GDykPg4MPKQ9GDw%2BDgw8PRg8pD4ODDykD6P7zZ4YPAw7%2B9v5wHRUD6BQe%2FtQBLMjI%2FYxGDykPg4MPKQ9GDw%2BDgw8PRg8pD4ODDykPRg8Pg4MPAAADAAAAFQSXBLAAFQAZAC8AAAERISIGHQEhESMiJjURNDY7AREhETMHIzUzEzMyFh0BMzIWDwEGIi8BJjY7ATU0NgRM%2FqIVHf4MlhUdHRX6AfRkyGRklmQVHZYVCA7mDioO5g4IFZYdA%2Bj%2B1B0Vlv5wHRUD6BQe%2FtQBLMjI%2FagdFfoVDuYODuYOFfoVHQAAAAADAAAAAASXBLAAFQAZAC8AAAERJyYiBwEhESMiJjURNDY7AREhETMHIzUzExcWBisBFRQGKwEiJj0BIyImPwE2MgRMpQ4qDv75%2Fm6WFR0dFfoB9GTIZGTr5g4IFZYdFWQVHZYVCA7mDioD6P5wpQ8P%2Fvf%2BcB0VA%2BgUHv7UASzIyP2F5Q8V%2BhQeHhT6FQ%2FlDwADAAAAyASwBEwACQATABcAABMhMhYdASE1NDYBERQGIyEiJjURExUhNTIETBUd%2B1AdBJMdFfu0FR1kAZAETB0VlpYVHf7U%2FdoVHR0VAib%2B1MjIAAAGAAMAfQStBJcADwAZAB0ALQAxADsAAAEXFhQPAQYmPQEhNSE1NDYBIyImPQE0NjsBFyM1MwE3NhYdASEVIRUUBi8BJjQFIzU7AjIWHQEUBisBA6f4Dg74DhX%2BcAGQFf0vMhUdHRUyyGRk%2FoL3DhUBkP5wFQ73DwOBZGRkMxQdHRQzBI3mDioO5g4IFZbIlhUI%2FoUdFWQVHcjI%2FcvmDggVlsiWFQgO5g4qecgdFWQVHQAAAAACAGQAAASwBLAAFgBRAAABJTYWFREUBisBIiY1ES4ENRE0NiUyFh8BERQOAg8BERQGKwEiJjURLgQ1ETQ%2BAzMyFh8BETMRPAE%2BAjMyFh8BETMRND4DA14BFBklHRXIFR0EDiIaFiX%2B4RYZAgEVHR0LCh0VyBUdBA4iGhYBBwoTDRQZAgNkBQkVDxcZAQFkAQUJFQQxdBIUH%2FuuFR0dFQGNAQgbHzUeAWcfRJEZDA3%2BPhw%2FMSkLC%2F5BFR0dFQG%2FBA8uLkAcAcICBxENCxkMDf6iAV4CBxENCxkMDf6iAV4CBxENCwABAGQAAASwBEwAMwAAARUiDgMVERQWHwEVITUyNjURIREUFjMVITUyPgM1ETQmLwE1IRUiBhURIRE0JiM1BLAEDiIaFjIZGf5wSxn%2BDBlL%2FnAEDiIaFjIZGQGQSxkB9BlLBEw4AQUKFA78iBYZAQI4OA0lAYr%2BdiUNODgBBQoUDgN4FhkBAjg4DSX%2BdgGKJQ04AAAABgAAAAAETARMAAwAHAAgACQAKAA0AAABITIWHQEjBTUnITchBSEyFhURFAYjISImNRE0NhcVITUBBTUlBRUhNQUVFAYjIQchJyE3MwKjAXcVHWn%2B2cj%2BcGQBd%2F4lASwpOzsp%2FtQpOzspASwCvP5wAZD8GAEsArwdFf6JZP6JZAGQyGkD6B0VlmJiyGTIOyn%2BDCk7OykB9Ck7ZMjI%2FveFo4XGyMhm%2BBUdZGTIAAEAEAAQBJ8EnwAmAAATNzYWHwEWBg8BHgEXNz4BHwEeAQ8BBiIuBicuBTcRohEuDosOBhF3ZvyNdxEzE8ATBxGjAw0uMUxPZWZ4O0p3RjITCwED76IRBhPCFDERdo78ZXYRBA6IDi8RogEECBUgNUNjO0qZfHNVQBAAAAACAAAAAASwBEwAIwBBAAAAMh4EHwEVFAYvAS4BPQEmIAcVFAYPAQYmPQE%2BBRIyHgIfARUBHgEdARQGIyEiJj0BNDY3ATU0PgIB%2FLimdWQ%2FLAkJHRTKFB2N%2FsKNHRTKFB0DDTE7ZnTKcFImFgEBAW0OFR0V%2B7QVHRUOAW0CFiYETBUhKCgiCgrIFRgDIgMiFZIYGJIVIgMiAxgVyAQNJyQrIP7kExwcCgoy%2FtEPMhTUFR0dFdQUMg8BLzIEDSEZAAADAAAAAASwBLAADQAdACcAAAEHIScRMxUzNTMVMzUzASEyFhQGKwEXITcjIiY0NgMhMhYdASE1NDYETMj9qMjIyMjIyPyuArwVHR0VDIn8SokMFR0dswRMFR37UB0CvMjIAfTIyMjI%2FOAdKh1kZB0qHf7UHRUyMhUdAAAAAwBkAAAEsARMAAkAEwAdAAABIyIGFREhETQmASMiBhURIRE0JgEhETQ2OwEyFhUCvGQpOwEsOwFnZCk7ASw7%2FRv%2B1DspZCk7BEw7KfwYA%2BgpO%2F7UOyn9RAK8KTv84AGQKTs7KQAAAAAF%2F5wAAASwBEwADwATAB8AJQApAAATITIWFREUBiMhIiY1ETQ2FxEhEQUjFTMRITUzNSMRIQURByMRMwcRMxHIArx8sLB8%2FUR8sLAYA4T%2BDMjI%2FtTIyAEsAZBkyMhkZARMsHz%2BDHywsHwB9HywyP1EArzIZP7UZGQBLGT%2B1GQB9GT%2B1AEsAAAABf%2BcAAAEsARMAA8AEwAfACUAKQAAEyEyFhURFAYjISImNRE0NhcRIREBIzUjFSMRMxUzNTMFEQcjETMHETMRyAK8fLCwfP1EfLCwGAOE%2FgxkZGRkZGQBkGTIyGRkBEywfP4MfLCwfAH0fLDI%2FUQCvP2oyMgB9MjIZP7UZAH0ZP7UASwABP%2BcAAAEsARMAA8AEwAbACMAABMhMhYVERQGIyEiJjURNDYXESERBSMRMxUhESEFIxEzFSERIcgCvHywsHz9RHywsBgDhP4MyMj%2B1AEsAZDIyP7UASwETLB8%2Fgx8sLB8AfR8sMj9RAK8yP7UZAH0ZP7UZAH0AAAABP%2BcAAAEsARMAA8AEwAWABkAABMhMhYVERQGIyEiJjURNDYXESERAS0BDQERyAK8fLCwfP1EfLCwGAOE%2Fgz%2B1AEsAZD%2B1ARMsHz%2BDHywsHwB9HywyP1EArz%2BDJaWlpYBLAAAAAX%2FnAAABLAETAAPABMAFwAgACkAABMhMhYVERQGIyEiJjURNDYXESERAyERIQcjIgYVFBY7AQERMzI2NTQmI8gCvHywsHz9RHywsBgDhGT9RAK8ZIImOTYpgv4Mgik2OSYETLB8%2Fgx8sLB8AfR8sMj9RAK8%2FagB9GRWQUFUASz%2B1FRBQVYAAAAF%2F5wAAASwBEwADwATAB8AJQApAAATITIWFREUBiMhIiY1ETQ2FxEhEQUjFTMRITUzNSMRIQEjESM1MwMjNTPIArx8sLB8%2FUR8sLAYA4T%2BDMjI%2FtTIyAEsAZBkZMjIZGQETLB8%2Fgx8sLB8AfR8sMj9RAK8yGT%2B1GRkASz%2BDAGQZP4MZAAG%2F5wAAASwBEwADwATABkAHwAjACcAABMhMhYVERQGIyEiJjURNDYXESERBTMRIREzASMRIzUzBRUzNQEjNTPIArx8sLB8%2FUR8sLAYA4T9RMj%2B1GQCWGRkyP2oZAEsZGQETLB8%2Fgx8sLB8AfR8sMj9RAK8yP5wAfT%2BDAGQZMjIyP7UZAAF%2F5wAAASwBEwADwATABwAIgAmAAATITIWFREUBiMhIiY1ETQ2FxEhEQEHIzU3NSM1IQEjESM1MwMjNTPIArx8sLB8%2FUR8sLAYA4T%2BDMdkx8gBLAGQZGTIx2RkBEywfP4MfLCwfAH0fLDI%2FUQCvP5wyDLIlmT%2BDAGQZP4MZAAAAAMACQAJBKcEpwAPABsAJQAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JgchFSEVISc1NyEB4PDbnl5entvw255eXp4BxeTCcXHC5MJxcWz%2B1AEs%2FtRkZAEsBKdentvw255eXp7b8NueTHHC5MJxccLkwtDIZGTIZAAAAAAEAAkACQSnBKcADwAbACcAKwAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JgcVBxcVIycjFSMRIQcVMzUB4PDbnl5entvw255eXp4BxeTCcXHC5MJxcWwyZGRklmQBLMjIBKdentvw255eXp7b8NueTHHC5MJxccLkwtBkMmQyZGQBkGRkZAAAAv%2Fy%2F50EwgRBACAANgAAATIWFzYzMhYUBisBNTQmIyEiBh0BIyImNTQ2NyY1ND4BEzMyFhURMzIWDwEGIi8BJjY7ARE0NgH3brUsLC54qqp4gB0V%2FtQVHd5QcFZBAmKqepYKD4kVCg3fDSYN3w0KFYkPBEF3YQ6t8a36FR0dFfpzT0VrDhMSZKpi%2FbMPCv7tFxD0EBD0EBcBEwoPAAAAAAL%2F8v%2BcBMMEQQAcADMAAAEyFhc2MzIWFxQGBwEmIgcBIyImNTQ2NyY1ND4BExcWBisBERQGKwEiJjURIyImNzY3NjIB9m62LCsueaoBeFr%2Bhg0lDf6DCU9xVkECYqnm3w0KFYkPCpYKD4kVCg3HGBMZBEF3YQ%2BteGOkHAFoEBD%2Bk3NPRWsOExNkqWP9kuQQF%2F7tCg8PCgETFxDMGBMAAAABAGQAAARMBG0AGAAAJTUhATMBMwkBMwEzASEVIyIGHQEhNTQmIwK8AZD%2B8qr%2B8qr%2B1P7Uqv7yqv7yAZAyFR0BkB0VZGQBLAEsAU3%2Bs%2F7U%2FtRkHRUyMhUdAAAAAAEAeQAABDcEmwAvAAABMhYXHgEVFAYHFhUUBiMiJxUyFh0BITU0NjM1BiMiJjU0Ny4BNTQ2MzIXNCY1NDYCWF6TGll7OzIJaUo3LRUd%2FtQdFS03SmkELzlpSgUSAqMEm3FZBoNaPWcfHRpKaR77HRUyMhUd%2Bx5pShIUFVg1SmkCAhAFdKMAAAAGACcAFASJBJwAEQAqAEIASgBiAHsAAAEWEgIHDgEiJicmAhI3PgEyFgUiBw4BBwYWHwEWMzI3Njc2Nz4BLwEmJyYXIgcOAQcGFh8BFjMyNz4BNz4BLwEmJyYWJiIGFBYyNjciBw4BBw4BHwEWFxYzMjc%2BATc2Ji8BJhciBwYHBgcOAR8BFhcWMzI3PgE3NiYvASYD8m9PT29T2dzZU29PT29T2dzZ%2Fj0EBHmxIgQNDCQDBBcGG0dGYAsNAwkDCwccBAVQdRgEDA0iBAQWBhJROQwMAwkDCwf5Y4xjY4xjVhYGElE6CwwDCQMLBwgEBVB1GAQNDCIEjRcGG0dGYAsNAwkDCwcIBAR5sSIEDQwkAwPyb%2F7V%2FtVvU1dXU28BKwErb1NXVxwBIrF5DBYDCQEWYEZHGwMVDCMNBgSRAhh1UA0WAwkBFTpREgMVCyMMBwT6Y2OMY2MVFTpREQQVCyMMBwQCGHVQDRYDCQEkFmBGRxsDFQwjDQYEASKxeQwWAwkBAAAABQBkAAAD6ASwAAwADwAWABwAIgAAASERIzUhFSERNDYzIQEjNQMzByczNTMDISImNREFFRQGKwECvAEstP6s%2FoQPCgI%2FASzIZKLU1KJktP51Cg8DhA8KwwMg%2FoTIyALzCg%2F%2B1Mj84NTUyP4MDwoBi8jDCg8AAAAABQBkAAAD6ASwAAkADAATABoAIQAAASERCQERNDYzIQEjNRMjFSM1IzcDISImPQEpARUUBisBNQK8ASz%2Bov3aDwoCPwEsyD6iZKLUqv6dCg8BfAIIDwqbAyD9%2BAFe%2FdoERwoP%2FtTI%2FHzIyNT%2BZA8KNzcKD1AAAAAAAwAAAAAEsAP0AAgAGQAfAAABIxUzFyERIzcFMzIeAhUhFSEDETM0PgIBMwMhASEEiqJkZP7UotT9EsgbGiEOASz9qMhkDiEaAnPw8PzgASwB9AMgyGQBLNTUBBErJGT%2BogHCJCsRBP5w%2FnAB9AAAAAMAAAAABEwETAAZADIAOQAAATMyFh0BMzIWHQEUBiMhIiY9ATQ2OwE1NDYFNTIWFREUBiMhIic3ARE0NjMVFBYzITI2AQc1IzUzNQKKZBUdMhUdHRX%2B1BUdHRUyHQFzKTs7Kf2oARP2%2Fro7KVg%2BASw%2BWP201MjIBEwdFTIdFWQVHR0VZBUdMhUd%2BpY7KfzgKTsE9gFGAUQpO5Y%2BWFj95tSiZKIAAwBkAAAEvARMABkANgA9AAABMzIWHQEzMhYdARQGIyEiJj0BNDY7ATU0NgU1MhYVESMRMxQOAiMhIiY1ETQ2MxUUFjMhMjYBBzUjNTM1AcJkFR0yFR0dFf7UFR0dFTIdAXMpO8jIDiEaG%2F2oKTs7KVg%2BASw%2BWAGc1MjIBEwdFTIdFWQVHR0VZBUdMhUd%2BpY7Kf4M%2FtQkKxEEOykDICk7lj5YWP3m1KJkogAAAAP%2FogAABRYE1AALABsAHwAACQEWBiMhIiY3ATYyEyMiBhcTHgE7ATI2NxM2JgMVMzUCkgJ9FyAs%2BwQsIBcCfRZARNAUGAQ6BCMUNhQjBDoEGODIBK37sCY3NyYEUCf%2BTB0U%2FtIUHR0UAS4UHf4MZGQAAAAACQAAAAAETARMAA8AHwAvAD8ATwBfAG8AfwCPAAABMzIWHQEUBisBIiY9ATQ2EzMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYBMzIWHQEUBisBIiY9ATQ2ITMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYBMzIWHQEUBisBIiY9ATQ2ITMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYBqfoKDw8K%2BgoPDwr6Cg8PCvoKDw8BmvoKDw8K%2BgoPD%2Fzq%2BgoPDwr6Cg8PAZr6Cg8PCvoKDw8BmvoKDw8K%2BgoPD%2Fzq%2BgoPDwr6Cg8PAZr6Cg8PCvoKDw8BmvoKDw8K%2BgoPDwRMDwqWCg8PCpYKD%2F7UDwqWCg8PCpYKDw8KlgoPDwqWCg%2F%2B1A8KlgoPDwqWCg8PCpYKDw8KlgoPDwqWCg8PCpYKD%2F7UDwqWCg8PCpYKDw8KlgoPDwqWCg8PCpYKDw8KlgoPAAAAAwAAAAAEsAUUABkAKQAzAAABMxUjFSEyFg8BBgchJi8BJjYzITUjNTM1MwEhMhYUBisBFyE3IyImNDYDITIWHQEhNTQ2ArxkZAFePjEcQiko%2FPwoKUIcMT4BXmRkyP4%2BArwVHR0VDIn8SooNFR0dswRMFR37UB0EsMhkTzeEUzMzU4Q3T2TIZPx8HSodZGQdKh3%2B1B0VMjIVHQAABAAAAAAEsAUUAAUAGQArADUAAAAyFhUjNAchFhUUByEyFg8BIScmNjMhJjU0AyEyFhQGKwEVBSElNSMiJjQ2AyEyFh0BITU0NgIwUDnCPAE6EgMBSCkHIq%2F9WrIiCikBSAOvArwVHR0VlgET%2FEoBE5YVHR2zBEwVHftQHQUUOykpjSUmCBEhFpGRFiERCCb%2BlR0qHcjIyMgdKh39qB0VMjIVHQAEAAAAAASwBJ0ABwAUACQALgAAADIWFAYiJjQTMzIWFRQXITY1NDYzASEyFhQGKwEXITcjIiY0NgMhMhYdASE1NDYCDZZqapZqty4iKyf%2BvCcrI%2F7NArwVHR0VDYr8SokMFR0dswRMFR37UB0EnWqWamqW%2Fus5Okxra0w6Of5yHSodZGQdKh3%2B1B0VMjIVHQAEAAAAAASwBRQADwAcACwANgAAATIeARUUBiImNTQ3FzcnNhMzMhYVFBchNjU0NjMBITIWFAYrARchNyMiJjQ2AyEyFh0BITU0NgJYL1szb5xvIpBvoyIfLiIrJ%2F68Jysj%2Fs0CvBUdHRUNivxKiQwVHR2zBEwVHftQHQUUa4s2Tm9vTj5Rj2%2BjGv4KOTpMa2tMOjn%2Bch0qHWRkHSod%2FtQdFTIyFR0AAAADAAAAAASwBRIAEgAiACwAAAEFFSEUHgMXIS4BNTQ%2BAjcBITIWFAYrARchNyMiJjQ2AyEyFh0BITU0NgJYASz%2B1CU%2FP00T%2Fe48PUJtj0r%2BogK8FR0dFQ2K%2FEqJDBUdHbMETBUd%2B1AdBLChizlmUT9IGVO9VFShdksE%2FH4dKh1kZB0qHf7UHRUyMhUdAAIAyAAAA%2BgFFAAPACkAAAAyFh0BHgEdASE1NDY3NTQDITIWFyMVMxUjFTMVIxUzFAYjISImNRE0NgIvUjsuNv5wNi5kAZA2XBqsyMjIyMh1U%2F5wU3V1BRQ7KU4aXDYyMjZcGk4p%2Fkc2LmRkZGRkU3V1UwGQU3UAAAMAZP%2F%2FBEwETAAPAC8AMwAAEyEyFhURFAYjISImNRE0NgMhMhYdARQGIyEXFhQGIi8BIQcGIiY0PwEhIiY9ATQ2BQchJ5YDhBUdHRX8fBUdHQQDtgoPDwr%2B5eANGiUNWP30Vw0mGg3g%2Ft8KDw8BqmQBRGQETB0V%2FgwVHR0VAfQVHf1EDwoyCg%2FgDSUbDVhYDRslDeAPCjIKD2RkZAAAAAAEAAAAAASwBEwAGQAjAC0ANwAAEyEyFh0BIzQmKwEiBhUjNCYrASIGFSM1NDYDITIWFREhETQ2ExUUBisBIiY9ASEVFAYrASImPQHIAyBTdWQ7KfopO2Q7KfopO2R1EQPoKTv7UDvxHRVkFR0D6B0VZBUdBEx1U8gpOzspKTs7KchTdf4MOyn%2B1AEsKTv%2BDDIVHR0VMjIVHR0VMgADAAEAAASpBKwADQARABsAAAkBFhQPASEBJjQ3ATYyCQMDITIWHQEhNTQ2AeACqh8fg%2F4f%2FfsgIAEnH1n%2BrAFWAS%2F%2Bq6IDIBUd%2FHwdBI39VR9ZH4MCBh9ZHwEoH%2F5u%2FqoBMAFV%2FBsdFTIyFR0AAAAAAgCPAAAEIQSwABcALwAAAQMuASMhIgYHAwYWMyEVFBYyNj0BMzI2AyE1NDY7ATU0NjsBETMRMzIWHQEzMhYVBCG9CCcV%2FnAVJwi9CBMVAnEdKh19FROo%2Fa0dFTIdFTDILxUdMhUdAocB%2BhMcHBP%2BBhMclhUdHRWWHP2MMhUdMhUdASz%2B1B0VMh0VAAAEAAAAAASwBLAADQAQAB8AIgAAASERFAYjIREBNTQ2MyEBIzUBIREUBiMhIiY1ETQ2MyEBIzUDhAEsDwr%2Bif7UDwoBdwEsyP2oASwPCv12Cg8PCgF3ASzIAyD9wQoPAk8BLFQKD%2F7UyP4M%2FcEKDw8KA7YKD%2F7UyAAC%2F5wAZAUUBEcARgBWAAABMzIeAhcWFxY2NzYnJjc%2BARYXFgcOASsBDgEPAQ4BKwEiJj8BBisBIicHDgErASImPwEmLwEuAT0BNDY7ATY3JyY2OwE2BSMiBh0BFBY7ATI2PQE0JgHkw0uOakkMEhEfQwoKGRMKBQ8XDCkCA1Y9Pgc4HCcDIhVkFRgDDDEqwxgpCwMiFWQVGAMaVCyfExwdFXwLLW8QBxXLdAFF%2BgoPDwr6Cg8PBEdBa4pJDgYKISAiJRsQCAYIDCw9P1c3fCbqFB0dFEYOCEAUHR0UnUplNQcmFTIVHVdPXw4TZV8PCjIKDw8KMgoPAAb%2FnP%2FmBRQEfgAJACQANAA8AFIAYgAAASU2Fh8BFgYPASUzMhYfASEyFh0BFAYHBQYmJyYjISImPQE0NhcjIgYdARQ7ATI2NTQmJyYEIgYUFjI2NAE3PgEeARceAT8BFxYGDwEGJi8BJjYlBwYfAR4BPwE2Jy4BJy4BAoEBpxMuDiAOAxCL%2FCtqQ0geZgM3FR0cE%2F0fFyIJKjr%2B1D5YWLlQExIqhhALIAsSAYBALS1ALf4PmBIgHhMQHC0aPzANITNQL3wpgigJASlmHyElDR0RPRMFAhQHCxADhPcICxAmDyoNeMgiNtQdFTIVJgeEBBQPQ1g%2ByD5YrBwVODMQEAtEERzJLUAtLUD%2B24ITChESEyMgAwWzPUkrRSgJL5cvfRxYGyYrDwkLNRAhFEgJDAQAAAAAAwBkAAAEOQSwAFEAYABvAAABMzIWHQEeARcWDgIPATIeBRUUDgUjFRQGKwEiJj0BIxUUBisBIiY9ASMiJj0BNDY7AREjIiY9ATQ2OwE1NDY7ATIWHQEzNTQ2AxUhMj4CNTc0LgMjARUhMj4CNTc0LgMjAnGWCg9PaAEBIC4uEBEGEjQwOiodFyI2LUAjGg8KlgoPZA8KlgoPrwoPDwpLSwoPDwqvDwqWCg9kD9cBBxwpEwsBAQsTKRz%2B%2BQFrHCkTCwEBCxMpHASwDwptIW1KLk0tHwYGAw8UKDJOLTtdPCoVCwJLCg8PCktLCg8PCksPCpYKDwJYDwqWCg9LCg8PCktLCg%2F%2B1MgVHR0LCgQOIhoW%2FnDIFR0dCwoEDiIaFgAAAwAEAAIEsASuABcAKQAsAAATITIWFREUBg8BDgEjISImJy4CNRE0NgQiDgQPARchNy4FAyMT1AMMVnokEhIdgVL9xFKCHAgYKHoCIIx9VkcrHQYGnAIwnAIIIClJVSGdwwSuelb%2BYDO3QkJXd3ZYHFrFMwGgVnqZFyYtLSUMDPPzBQ8sKDEj%2FsIBBQACAMgAAAOEBRQADwAZAAABMzIWFREUBiMhIiY1ETQ2ARUUBisBIiY9AQHblmesVCn%2BPilUrAFINhWWFTYFFKxn%2FgwpVFQpAfRnrPwY4RU2NhXhAAACAMgAAAOEBRQADwAZAAABMxQWMxEUBiMhIiY1ETQ2ARUUBisBIiY9AQHbYLOWVCn%2BPilUrAFINhWWFTYFFJaz%2FkIpVFQpAfRnrPwY4RU2NhXhAAACAAAAFAUOBBoAFAAaAAAJASUHFRcVJwc1NzU0Jj4CPwEnCQEFJTUFJQUO%2FYL%2Bhk5klpZkAQEBBQQvkwKCAVz%2Bov6iAV4BXgL%2F%2FuWqPOCWx5SVyJb6BA0GCgYDKEEBG%2F1ipqaTpaUAAAMAZAH0BLADIAAHAA8AFwAAEjIWFAYiJjQkMhYUBiImNCQyFhQGIiY0vHxYWHxYAeh8WFh8WAHofFhYfFgDIFh8WFh8WFh8WFh8WFh8WFh8AAAAAAMBkAAAArwETAAHAA8AFwAAADIWFAYiJjQSMhYUBiImNBIyFhQGIiY0Aeh8WFh8WFh8WFh8WFh8WFh8WARMWHxYWHz%2ByFh8WFh8%2FshYfFhYfAAAAAMAZABkBEwETAAPAB8ALwAAEyEyFh0BFAYjISImPQE0NhMhMhYdARQGIyEiJj0BNDYTITIWHQEUBiMhIiY9ATQ2fQO2Cg8PCvxKCg8PCgO2Cg8PCvxKCg8PCgO2Cg8PCvxKCg8PBEwPCpYKDw8KlgoP%2FnAPCpYKDw8KlgoP%2FnAPCpYKDw8KlgoPAAAABAAAAAAEsASwAA8AHwAvADMAAAEhMhYVERQGIyEiJjURNDYFISIGFREUFjMhMjY1ETQmBSEyFhURFAYjISImNRE0NhcVITUBXgH0ory7o%2F4Mpbm5Asv9qCk7OykCWCk7O%2F2xAfQVHR0V%2FgwVHR1HAZAEsLuj%2FgylubmlAfSlucg7Kf2oKTs7KQJYKTtkHRX%2B1BUdHRUBLBUdZMjIAAAAAAEAZABkBLAETAA7AAATITIWFAYrARUzMhYUBisBFTMyFhQGKwEVMzIWFAYjISImNDY7ATUjIiY0NjsBNSMiJjQ2OwE1IyImNDaWA%2BgVHR0VMjIVHR0VMjIVHR0VMjIVHR0V%2FBgVHR0VMjIVHR0VMjIVHR0VMjIVHR0ETB0qHcgdKh3IHSodyB0qHR0qHcgdKh3IHSodyB0qHQAAAAYBLAAFA%2BgEowAHAA0AEwAZAB8AKgAAAR4BBgcuATYBMhYVIiYlFAYjNDYBMhYVIiYlFAYjNDYDFRQGIiY9ARYzMgKKVz8%2FV1c%2FP%2F75fLB8sAK8sHyw%2FcB8sHywArywfLCwHSodKAMRBKNDsrJCQrKy%2FsCwfLB8fLB8sP7UsHywfHywfLD%2B05AVHR0VjgQAAAH%2FtQDIBJQDgQBCAAABNzYXAR4BBw4BKwEyFRQOBCsBIhE0NyYiBxYVECsBIi4DNTQzIyImJyY2NwE2HwEeAQ4BLwEHIScHBi4BNgLpRRkUASoLCAYFGg8IAQQNGyc%2FKZK4ChRUFQu4jjBJJxkHAgcPGQYGCAsBKhQaTBQVCiMUM7YDe7YsFCMKFgNuEwYS%2FtkLHw8OEw0dNkY4MhwBIBgXBAQYF%2F7gKjxTQyMNEw4PHwoBKBIHEwUjKBYGDMHBDAUWKCMAAAAAAgAAAAAEsASwACUAQwAAASM0LgUrAREUFh8BFSE1Mj4DNREjIg4FFSMRIQEjNC4DKwERFBYXMxUjNTI1ESMiDgMVIzUhBLAyCAsZEyYYGcgyGRn%2BcAQOIhoWyBkYJhMZCwgyA%2Bj9RBkIChgQEWQZDQzIMmQREBgKCBkB9AOEFSAVDggDAfyuFhkBAmRkAQUJFQ4DUgEDCA4VIBUBLP0SDxMKBQH%2BVwsNATIyGQGpAQUKEw%2BWAAAAAAMAAAAABEwErgAdACAAMAAAATUiJy4BLwEBIwEGBw4BDwEVITUiJj8BIRcWBiMVARsBARUUBiMhIiY9ATQ2MyEyFgPoGR4OFgUE%2Ft9F%2FtQSFQkfCwsBETE7EkUBJT0NISf%2B7IZ5AbEdFfwYFR0dFQPoFR0BLDIgDiIKCwLr%2FQ4jFQkTBQUyMisusKYiQTIBhwFW%2Fqr942QVHR0VZBUdHQADAAAAAASwBLAADwBHAEoAABMhMhYVERQGIyEiJjURNDYFIyIHAQYHBgcGHQEUFjMhMjY9ATQmIyInJj8BIRcWBwYjIgYdARQWMyEyNj0BNCYnIicmJyMBJhMjEzIETBUdHRX7tBUdHQJGRg0F%2FtUREhImDAsJAREIDAwINxAKCj8BCjkLEQwYCAwMCAE5CAwLCBEZGQ8B%2FuAFDsVnBLAdFfu0FR0dFQRMFR1SDP0PIBMSEAUNMggMDAgyCAwXDhmjmR8YEQwIMggMDAgyBwwBGRskAuwM%2FgUBCAAABAAAAAAEsASwAAMAEwAjACcAAAEhNSEFITIWFREUBiMhIiY1ETQ2KQEyFhURFAYjISImNRE0NhcRIREEsPtQBLD7ggGQFR0dFf5wFR0dAm0BkBUdHRX%2BcBUdHUcBLARMZMgdFfx8FR0dFQOEFR0dFf5wFR0dFQGQFR1k%2FtQBLAAEAAAAAASwBLAADwAfACMAJwAAEyEyFhURFAYjISImNRE0NgEhMhYVERQGIyEiJjURNDYXESEREyE1ITIBkBUdHRX%2BcBUdHQJtAZAVHR0V%2FnAVHR1HASzI%2B1AEsASwHRX8fBUdHRUDhBUd%2FgwdFf5wFR0dFQGQFR1k%2FtQBLP2oZAAAAAACAAAAZASwA%2BgAJwArAAATITIWFREzNTQ2MyEyFh0BMxUjFRQGIyEiJj0BIxEUBiMhIiY1ETQ2AREhETIBkBUdZB0VAZAVHWRkHRX%2BcBUdZB0V%2FnAVHR0CnwEsA%2BgdFf6ilhUdHRWWZJYVHR0Vlv6iFR0dFQMgFR3%2B1P7UASwAAAQAAAAABLAEsAADABMAFwAnAAAzIxEzFyEyFhURFAYjISImNRE0NhcRIREBITIWFREUBiMhIiY1ETQ2ZGRklgGQFR0dFf5wFR0dRwEs%2FqIDhBUdHRX8fBUdHQSwZB0V%2FnAVHR0VAZAVHWT%2B1AEs%2FgwdFf5wFR0dFQGQFR0AAAAAAgBkAAAETASwACcAKwAAATMyFhURFAYrARUhMhYVERQGIyEiJjURNDYzITUjIiY1ETQ2OwE1MwcRIRECWJYVHR0VlgHCFR0dFfx8FR0dFQFelhUdHRWWZMgBLARMHRX%2BcBUdZB0V%2FnAVHR0VAZAVHWQdFQGQFR1kyP7UASwAAAAEAAAAAASwBLAAAwATABcAJwAAISMRMwUhMhYVERQGIyEiJjURNDYXESERASEyFhURFAYjISImNRE0NgSwZGT9dgGQFR0dFf5wFR0dRwEs%2FK4DhBUdHRX8fBUdHQSwZB0V%2FnAVHR0VAZAVHWT%2B1AEs%2FgwdFf5wFR0dFQGQFR0AAAEBLAAwA28EgAAPAAAJAQYjIiY1ETQ2MzIXARYUA2H%2BEhcSDhAQDhIXAe4OAjX%2BEhcbGQPoGRsX%2FhIOKgAAAAABAUEAMgOEBH4ACwAACQE2FhURFAYnASY0AU8B7h0qKh3%2BEg4CewHuHREp%2FBgpER0B7g4qAAAAAAEAMgFBBH4DhAALAAATITIWBwEGIicBJjZkA%2BgpER3%2BEg4qDv4SHREDhCod%2FhIODgHuHSoAAAAAAQAyASwEfgNvAAsAAAkBFgYjISImNwE2MgJ7Ae4dESn8GCkRHQHuDioDYf4SHSoqHQHuDgAAAAACAAgAAASwBCgABgAKAAABFQE1LQE1ASE1IQK8%2FUwBnf5jBKj84AMgAuW2%2Fr3dwcHd%2B9jIAAAAAAIAAABkBLAEsAALADEAAAEjFTMVIREzNSM1IQEzND4FOwERFAYPARUhNSIuAzURMzIeBRUzESEEsMjI%2FtTIyAEs%2B1AyCAsZEyYYGWQyGRkBkAQOIhoWZBkYJhMZCwgy%2FOADhGRkASxkZP4MFSAVDggDAf3aFhkBAmRkAQUJFQ4CJgEDCA4VIBUBLAAAAgAAAAAETAPoACUAMQAAASM0LgUrAREUFh8BFSE1Mj4DNREjIg4FFSMRIQEjFTMVIREzNSM1IQMgMggLGRMmGBlkMhkZ%2FnAEDiIaFmQZGCYTGQsIMgMgASzIyP7UyMgBLAK8FSAVDggDAf3aFhkCAWRkAQUJFQ4CJgEDCA4VIBUBLPzgZGQBLGRkAAABAMgAZgNyBEoAEgAAATMyFgcJARYGKwEiJwEmNDcBNgK9oBAKDP4wAdAMChCgDQr%2BKQcHAdcKBEoWDP4w%2FjAMFgkB1wgUCAHXCQAAAQE%2BAGYD6ARKABIAAAEzMhcBFhQHAQYrASImNwkBJjYBU6ANCgHXBwf%2BKQoNoBAKDAHQ%2FjAMCgRKCf4pCBQI%2FikJFgwB0AHQDBYAAAEAZgDIBEoDcgASAAAAFh0BFAcBBiInASY9ATQ2FwkBBDQWCf4pCBQI%2FikJFgwB0AHQA3cKEKANCv4pBwcB1woNoBAKDP4wAdAAAAABAGYBPgRKA%2BgAEgAACQEWHQEUBicJAQYmPQE0NwE2MgJqAdcJFgz%2BMP4wDBYJAdcIFAPh%2FikKDaAQCgwB0P4wDAoQoA0KAdcHAAAAAgDZ%2F%2FkEPQSwAAUAOgAAARQGIzQ2BTMyFh8BNjc%2BAh4EBgcOBgcGIiYjIgYiJy4DLwEuAT4EHgEXJyY2A%2BiwfLD%2BVmQVJgdPBQsiKFAzRyorDwURAQQSFyozTSwNOkkLDkc3EDlfNyYHBw8GDyUqPjdGMR%2BTDA0EsHywfLDIHBPCAQIGBwcFDx81S21DBxlLR1xKQhEFBQcHGWt0bCQjP2hJNyATBwMGBcASGAAAAAACAMgAFQOEBLAAFgAaAAATITIWFREUBisBEQcGJjURIyImNRE0NhcVITX6AlgVHR0Vlv8TGpYVHR2rASwEsB0V%2FnAVHf4MsgkQFQKKHRUBkBUdZGRkAAAAAgDIABkETASwAA4AEgAAEyEyFhURBRElIREjETQ2ARU3NfoC7ic9%2FUQCWP1EZB8BDWQEsFEs%2FFt1A7Z9%2FBgEARc0%2FV1kFGQAAQAAAAECTW%2FDBF9fDzz1AB8EsAAAAADQdnOXAAAAANB2c5f%2FUf%2BcBdwFFAAAAAgAAgAAAAAAAAABAAAFFP%2BFAAAFFP9R%2FtQF3AABAAAAAAAAAAAAAAAAAAAAowG4ACgAAAAAAZAAAASwAAAEsABkBLAAAASwAAAEsABwAooAAAUUAAACigAABRQAAAGxAAABRQAAANgAAADYAAAAogAAAQQAAABIAAABBAAAAUUAAASwAGQEsAB7BLAAyASwAMgB9AAABLD%2F8gSwAAAEsAAABLD%2F8ASwAAAEsAAOBLAACQSwAGQEsP%2FTBLD%2F0wSwAAAEsAAABLAAAASwAAAEsAAABLAAJgSwAG4EsAAXBLAAFwSwABcEsABkBLAAGgSwAGQEsAAMBLAAZASwABcEsP%2BcBLAAZASwABcEsAAXBLAAAASwABcEsAAXBLAAFwSwAGQEsAAABLAAZASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAZASwAMgEsAAABLAAAASwADUEsABkBLAAyASw%2F7UEsAAhBLAAAASwAAAEsAAABLAAAASwAAAEsP%2BcBLAAAASwAAAEsAAABLAA2wSwABcEsAB1BLAAAASwAAAEsAAABLAACgSwAMgEsAAABLAAnQSwAMgEsADIBLAAyASwAAAEsP%2F%2BBLABLASwAGQEsACIBLABOwSwABcEsAAXBLAAFwSwABcEsAAXBLAAFwSwAAAEsAAXBLAAFwSwABcEsAAXBLAAAASwALcEsAC3BLAAAASwAAAEsABJBLAAFwSwAAAEsAAABLAAXQSw%2F9wEsP%2FcBLD%2FnwSwAGQEsAAABLAAAASwAAAEsABkBLD%2F%2FwSwAAAEsP9RBLAABgSwAAAEsAAABLABRQSwAAEEsAAABLD%2FnASwAEoEsAAUBLAAAASwAAAEsAAABLD%2FnASwAGEEsP%2F9BLAAFgSwABYEsAAWBLAAFgSwABgEsAAABMQAAASwAGQAAAAAAAD%2F2ABkADkAyAAAAScAZAAZABkAGQAZABkAGQAZAAAAAAAAAAAAAADZAAAAAAAOAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAMAZABkAAAAEAAAAAAAZP%2Bc%2F5z%2FnP%2Bc%2F5z%2FnP%2Bc%2F5wACQAJ%2F%2FL%2F8gBkAHkAJwBkAGQAAAAAAGT%2FogAAAAAAAAAAAAAAAADIAGQAAAABAI8AAP%2Bc%2F5wAZAAEAMgAyAAAAGQBkABkAAAAZAEs%2F7UAAAAAAAAAAAAAAAAAAABkAAABLAFBADIAMgAIAAAAAADIAT4AZgBmANkAyADIAAAAKgAqACoAKgCyAOgA6AFOAU4BTgFOAU4BTgFOAU4BTgFOAU4BTgFOAU4BpAIGAiICfgKGAqwC5ANGA24DjAPEBAgEMgRiBKIE3AVcBboGcgb0ByAHYgfKCB4IYgi%2BCTYJhAm2Cd4KKApMCpQK4gswC4oLygwIDFgNKg1eDbAODg5oDrQPKA%2BmD%2BYQEhBUEJAQqhEqEXYRthIKEjgSfBLAExoTdBPQFCoU1BU8FagVzBYEFjYWYBawFv4XUhemGAIYLhhqGJYYsBjgGP4ZKBloGZQZxBnaGe4aNhpoGrga9hteG7QcMhyUHOIdHB1EHWwdlB28HeYeLh52HsAfYh%2FSIEYgviEyIXYhuCJAIpYiuCMOIyIjOCN6I8Ij4CQCJDAkXiSWJOIlNCVgJbwmFCZ%2BJuYnUCe8J%2FgoNChwKKwpoCnMKiYqSiqEKworeiwILGgsuizsLRwtiC30LiguZi6iLtgvDi9GL34vsi%2F4MD4whDDSMRIxYDGuMegyJDJeMpoy3jMiMz4zaDO2NBg0YDSoNNI1LDWeNeg2PjZ8Ntw3GjdON5I31DgQOEI4hjjIOQo5SjmIOcw6HDpsOpo63jugO9w8GDxQPKI8%2BD0yPew%2BOj6MPtQ%2FKD9uP6o%2F%2BkBIQIBAxkECQX5CGEKoQu5DGENCQ3ZDoEPKRBBEYESuRPZFWkW2RgZGdEa0RvZHNkd2R7ZH9kgWSDJITkhqSIZIzEkSSThJXkmESapKAkouSlIAAQAAARcApwARAAAAAAACAAAAAQABAAAAQAAuAAAAAAAAABAAxgABAAAAAAATABIAAAADAAEECQAAAGoAEgADAAEECQABACgAfAADAAEECQACAA4ApAADAAEECQADAEwAsgADAAEECQAEADgA%2FgADAAEECQAFAHgBNgADAAEECQAGADYBrgADAAEECQAIABYB5AADAAEECQAJABYB%2BgADAAEECQALACQCEAADAAEECQAMACQCNAADAAEECQATACQCWAADAAEECQDIABYCfAADAAEECQDJADACkgADAAEECdkDABoCwnd3dy5nbHlwaGljb25zLmNvbQBDAG8AcAB5AHIAaQBnAGgAdAAgAKkAIAAyADAAMQA0ACAAYgB5ACAASgBhAG4AIABLAG8AdgBhAHIAaQBrAC4AIABBAGwAbAAgAHIAaQBnAGgAdABzACAAcgBlAHMAZQByAHYAZQBkAC4ARwBMAFkAUABIAEkAQwBPAE4AUwAgAEgAYQBsAGYAbABpAG4AZwBzAFIAZQBnAHUAbABhAHIAMQAuADAAMAA5ADsAVQBLAFcATgA7AEcATABZAFAASABJAEMATwBOAFMASABhAGwAZgBsAGkAbgBnAHMALQBSAGUAZwB1AGwAYQByAEcATABZAFAASABJAEMATwBOAFMAIABIAGEAbABmAGwAaQBuAGcAcwAgAFIAZQBnAHUAbABhAHIAVgBlAHIAcwBpAG8AbgAgADEALgAwADAAOQA7AFAAUwAgADAAMAAxAC4AMAAwADkAOwBoAG8AdABjAG8AbgB2ACAAMQAuADAALgA3ADAAOwBtAGEAawBlAG8AdABmAC4AbABpAGIAMgAuADUALgA1ADgAMwAyADkARwBMAFkAUABIAEkAQwBPAE4AUwBIAGEAbABmAGwAaQBuAGcAcwAtAFIAZQBnAHUAbABhAHIASgBhAG4AIABLAG8AdgBhAHIAaQBrAEoAYQBuACAASwBvAHYAYQByAGkAawB3AHcAdwAuAGcAbAB5AHAAaABpAGMAbwBuAHMALgBjAG8AbQB3AHcAdwAuAGcAbAB5AHAAaABpAGMAbwBuAHMALgBjAG8AbQB3AHcAdwAuAGcAbAB5AHAAaABpAGMAbwBuAHMALgBjAG8AbQBXAGUAYgBmAG8AbgB0ACAAMQAuADAAVwBlAGQAIABPAGMAdAAgADIAOQAgADAANgA6ADMANgA6ADAANwAgADIAMAAxADQARgBvAG4AdAAgAFMAcQB1AGkAcgByAGUAbAAAAAIAAAAAAAD%2FtQAyAAAAAAAAAAAAAAAAAAAAAAAAAAABFwAAAQIBAwADAA0ADgEEAJYBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMA7wEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoBKwEsAS0BLgEvATABMQEyATMBNAE1ATYBNwE4ATkBOgE7ATwBPQE%2BAT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAXIBcwF0AXUBdgF3AXgBeQF6AXsBfAF9AX4BfwGAAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG%2FAcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAdsB3AHdAd4B3wHgAeEB4gHjAeQB5QHmAecB6AHpAeoB6wHsAe0B7gHvAfAB8QHyAfMB9AH1AfYB9wH4AfkB%2BgH7AfwB%2FQH%2BAf8CAAIBAgICAwIEAgUCBgIHAggCCQIKAgsCDAINAg4CDwIQAhECEgZnbHlwaDEGZ2x5cGgyB3VuaTAwQTAHdW5pMjAwMAd1bmkyMDAxB3VuaTIwMDIHdW5pMjAwMwd1bmkyMDA0B3VuaTIwMDUHdW5pMjAwNgd1bmkyMDA3B3VuaTIwMDgHdW5pMjAwOQd1bmkyMDBBB3VuaTIwMkYHdW5pMjA1RgRFdXJvB3VuaTIwQkQHdW5pMjMxQgd1bmkyNUZDB3VuaTI2MDEHdW5pMjZGQQd1bmkyNzA5B3VuaTI3MEYHdW5pRTAwMQd1bmlFMDAyB3VuaUUwMDMHdW5pRTAwNQd1bmlFMDA2B3VuaUUwMDcHdW5pRTAwOAd1bmlFMDA5B3VuaUUwMTAHdW5pRTAxMQd1bmlFMDEyB3VuaUUwMTMHdW5pRTAxNAd1bmlFMDE1B3VuaUUwMTYHdW5pRTAxNwd1bmlFMDE4B3VuaUUwMTkHdW5pRTAyMAd1bmlFMDIxB3VuaUUwMjIHdW5pRTAyMwd1bmlFMDI0B3VuaUUwMjUHdW5pRTAyNgd1bmlFMDI3B3VuaUUwMjgHdW5pRTAyOQd1bmlFMDMwB3VuaUUwMzEHdW5pRTAzMgd1bmlFMDMzB3VuaUUwMzQHdW5pRTAzNQd1bmlFMDM2B3VuaUUwMzcHdW5pRTAzOAd1bmlFMDM5B3VuaUUwNDAHdW5pRTA0MQd1bmlFMDQyB3VuaUUwNDMHdW5pRTA0NAd1bmlFMDQ1B3VuaUUwNDYHdW5pRTA0Nwd1bmlFMDQ4B3VuaUUwNDkHdW5pRTA1MAd1bmlFMDUxB3VuaUUwNTIHdW5pRTA1Mwd1bmlFMDU0B3VuaUUwNTUHdW5pRTA1Ngd1bmlFMDU3B3VuaUUwNTgHdW5pRTA1OQd1bmlFMDYwB3VuaUUwNjIHdW5pRTA2Mwd1bmlFMDY0B3VuaUUwNjUHdW5pRTA2Ngd1bmlFMDY3B3VuaUUwNjgHdW5pRTA2OQd1bmlFMDcwB3VuaUUwNzEHdW5pRTA3Mgd1bmlFMDczB3VuaUUwNzQHdW5pRTA3NQd1bmlFMDc2B3VuaUUwNzcHdW5pRTA3OAd1bmlFMDc5B3VuaUUwODAHdW5pRTA4MQd1bmlFMDgyB3VuaUUwODMHdW5pRTA4NAd1bmlFMDg1B3VuaUUwODYHdW5pRTA4Nwd1bmlFMDg4B3VuaUUwODkHdW5pRTA5MAd1bmlFMDkxB3VuaUUwOTIHdW5pRTA5Mwd1bmlFMDk0B3VuaUUwOTUHdW5pRTA5Ngd1bmlFMDk3B3VuaUUxMDEHdW5pRTEwMgd1bmlFMTAzB3VuaUUxMDQHdW5pRTEwNQd1bmlFMTA2B3VuaUUxMDcHdW5pRTEwOAd1bmlFMTA5B3VuaUUxMTAHdW5pRTExMQd1bmlFMTEyB3VuaUUxMTMHdW5pRTExNAd1bmlFMTE1B3VuaUUxMTYHdW5pRTExNwd1bmlFMTE4B3VuaUUxMTkHdW5pRTEyMAd1bmlFMTIxB3VuaUUxMjIHdW5pRTEyMwd1bmlFMTI0B3VuaUUxMjUHdW5pRTEyNgd1bmlFMTI3B3VuaUUxMjgHdW5pRTEyOQd1bmlFMTMwB3VuaUUxMzEHdW5pRTEzMgd1bmlFMTMzB3VuaUUxMzQHdW5pRTEzNQd1bmlFMTM2B3VuaUUxMzcHdW5pRTEzOAd1bmlFMTM5B3VuaUUxNDAHdW5pRTE0MQd1bmlFMTQyB3VuaUUxNDMHdW5pRTE0NAd1bmlFMTQ1B3VuaUUxNDYHdW5pRTE0OAd1bmlFMTQ5B3VuaUUxNTAHdW5pRTE1MQd1bmlFMTUyB3VuaUUxNTMHdW5pRTE1NAd1bmlFMTU1B3VuaUUxNTYHdW5pRTE1Nwd1bmlFMTU4B3VuaUUxNTkHdW5pRTE2MAd1bmlFMTYxB3VuaUUxNjIHdW5pRTE2Mwd1bmlFMTY0B3VuaUUxNjUHdW5pRTE2Ngd1bmlFMTY3B3VuaUUxNjgHdW5pRTE2OQd1bmlFMTcwB3VuaUUxNzEHdW5pRTE3Mgd1bmlFMTczB3VuaUUxNzQHdW5pRTE3NQd1bmlFMTc2B3VuaUUxNzcHdW5pRTE3OAd1bmlFMTc5B3VuaUUxODAHdW5pRTE4MQd1bmlFMTgyB3VuaUUxODMHdW5pRTE4NAd1bmlFMTg1B3VuaUUxODYHdW5pRTE4Nwd1bmlFMTg4B3VuaUUxODkHdW5pRTE5MAd1bmlFMTkxB3VuaUUxOTIHdW5pRTE5Mwd1bmlFMTk0B3VuaUUxOTUHdW5pRTE5Nwd1bmlFMTk4B3VuaUUxOTkHdW5pRTIwMAd1bmlFMjAxB3VuaUUyMDIHdW5pRTIwMwd1bmlFMjA0B3VuaUUyMDUHdW5pRTIwNgd1bmlFMjA5B3VuaUUyMTAHdW5pRTIxMQd1bmlFMjEyB3VuaUUyMTMHdW5pRTIxNAd1bmlFMjE1B3VuaUUyMTYHdW5pRTIxOAd1bmlFMjE5B3VuaUUyMjEHdW5pRTIyMwd1bmlFMjI0B3VuaUUyMjUHdW5pRTIyNgd1bmlFMjI3B3VuaUUyMzAHdW5pRTIzMQd1bmlFMjMyB3VuaUUyMzMHdW5pRTIzNAd1bmlFMjM1B3VuaUUyMzYHdW5pRTIzNwd1bmlFMjM4B3VuaUUyMzkHdW5pRTI0MAd1bmlFMjQxB3VuaUUyNDIHdW5pRTI0Mwd1bmlFMjQ0B3VuaUUyNDUHdW5pRTI0Ngd1bmlFMjQ3B3VuaUUyNDgHdW5pRTI0OQd1bmlFMjUwB3VuaUUyNTEHdW5pRTI1Mgd1bmlFMjUzB3VuaUUyNTQHdW5pRTI1NQd1bmlFMjU2B3VuaUUyNTcHdW5pRTI1OAd1bmlFMjU5B3VuaUUyNjAHdW5pRjhGRgZ1MUY1MTEGdTFGNkFBAAAAAAFUUMMXAAA%3D%29%20format%28%27truetype%27%29%2Curl%28data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI%2FPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiID4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWV0YWRhdGE%2BPC9tZXRhZGF0YT4KPGRlZnM%2BCjxmb250IGlkPSJnbHlwaGljb25zX2hhbGZsaW5nc3JlZ3VsYXIiIGhvcml6LWFkdi14PSIxMjAwIiA%2BCjxmb250LWZhY2UgdW5pdHMtcGVyLWVtPSIxMjAwIiBhc2NlbnQ9Ijk2MCIgZGVzY2VudD0iLTI0MCIgLz4KPG1pc3NpbmctZ2x5cGggaG9yaXotYWR2LXg9IjUwMCIgLz4KPGdseXBoIGhvcml6LWFkdi14PSIwIiAvPgo8Z2x5cGggaG9yaXotYWR2LXg9IjQwMCIgLz4KPGdseXBoIHVuaWNvZGU9IiAiIC8%2BCjxnbHlwaCB1bmljb2RlPSIqIiBkPSJNNjAwIDExMDBxMTUgMCAzNCAtMS41dDMwIC0zLjVsMTEgLTFxMTAgLTIgMTcuNSAtMTAuNXQ3LjUgLTE4LjV2LTIyNGwxNTggMTU4cTcgNyAxOCA4dDE5IC02bDEwNiAtMTA2cTcgLTggNiAtMTl0LTggLTE4bC0xNTggLTE1OGgyMjRxMTAgMCAxOC41IC03LjV0MTAuNSAtMTcuNXE2IC00MSA2IC03NXEwIC0xNSAtMS41IC0zNHQtMy41IC0zMGwtMSAtMTFxLTIgLTEwIC0xMC41IC0xNy41dC0xOC41IC03LjVoLTIyNGwxNTggLTE1OCBxNyAtNyA4IC0xOHQtNiAtMTlsLTEwNiAtMTA2cS04IC03IC0xOSAtNnQtMTggOGwtMTU4IDE1OHYtMjI0cTAgLTEwIC03LjUgLTE4LjV0LTE3LjUgLTEwLjVxLTQxIC02IC03NSAtNnEtMTUgMCAtMzQgMS41dC0zMCAzLjVsLTExIDFxLTEwIDIgLTE3LjUgMTAuNXQtNy41IDE4LjV2MjI0bC0xNTggLTE1OHEtNyAtNyAtMTggLTh0LTE5IDZsLTEwNiAxMDZxLTcgOCAtNiAxOXQ4IDE4bDE1OCAxNThoLTIyNHEtMTAgMCAtMTguNSA3LjUgdC0xMC41IDE3LjVxLTYgNDEgLTYgNzVxMCAxNSAxLjUgMzR0My41IDMwbDEgMTFxMiAxMCAxMC41IDE3LjV0MTguNSA3LjVoMjI0bC0xNTggMTU4cS03IDcgLTggMTh0NiAxOWwxMDYgMTA2cTggNyAxOSA2dDE4IC04bDE1OCAtMTU4djIyNHEwIDEwIDcuNSAxOC41dDE3LjUgMTAuNXE0MSA2IDc1IDZ6IiAvPgo8Z2x5cGggdW5pY29kZT0iKyIgZD0iTTQ1MCAxMTAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMzUwaDM1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0zNTB2LTM1MHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMjAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYzNTBoLTM1MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNSBoMzUwdjM1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4YTA7IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4YTU7IiBkPSJNODI1IDExMDBoMjUwcTEwIDAgMTIuNSAtNXQtNS41IC0xM2wtMzY0IC0zNjRxLTYgLTYgLTExIC0xOGgyNjhxMTAgMCAxMyAtNnQtMyAtMTRsLTEyMCAtMTYwcS02IC04IC0xOCAtMTR0LTIyIC02aC0xMjV2LTEwMGgyNzVxMTAgMCAxMyAtNnQtMyAtMTRsLTEyMCAtMTYwcS02IC04IC0xOCAtMTR0LTIyIC02aC0xMjV2LTE3NHEwIC0xMSAtNy41IC0xOC41dC0xOC41IC03LjVoLTE0OHEtMTEgMCAtMTguNSA3LjV0LTcuNSAxOC41djE3NCBoLTI3NXEtMTAgMCAtMTMgNnQzIDE0bDEyMCAxNjBxNiA4IDE4IDE0dDIyIDZoMTI1djEwMGgtMjc1cS0xMCAwIC0xMyA2dDMgMTRsMTIwIDE2MHE2IDggMTggMTR0MjIgNmgxMThxLTUgMTIgLTExIDE4bC0zNjQgMzY0cS04IDggLTUuNSAxM3QxMi41IDVoMjUwcTI1IDAgNDMgLTE4bDE2NCAtMTY0cTggLTggMTggLTh0MTggOGwxNjQgMTY0cTE4IDE4IDQzIDE4eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwMDA7IiBob3Jpei1hZHYteD0iNjUwIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjAwMTsiIGhvcml6LWFkdi14PSIxMzAwIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjAwMjsiIGhvcml6LWFkdi14PSI2NTAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMDAzOyIgaG9yaXotYWR2LXg9IjEzMDAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMDA0OyIgaG9yaXotYWR2LXg9IjQzMyIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwMDU7IiBob3Jpei1hZHYteD0iMzI1IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjAwNjsiIGhvcml6LWFkdi14PSIyMTYiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMDA3OyIgaG9yaXotYWR2LXg9IjIxNiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwMDg7IiBob3Jpei1hZHYteD0iMTYyIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjAwOTsiIGhvcml6LWFkdi14PSIyNjAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMDBhOyIgaG9yaXotYWR2LXg9IjcyIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjAyZjsiIGhvcml6LWFkdi14PSIyNjAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMDVmOyIgaG9yaXotYWR2LXg9IjMyNSIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwYWM7IiBkPSJNNzQ0IDExOThxMjQyIDAgMzU0IC0xODlxNjAgLTEwNCA2NiAtMjA5aC0xODFxMCA0NSAtMTcuNSA4Mi41dC00My41IDYxLjV0LTU4IDQwLjV0LTYwLjUgMjR0LTUxLjUgNy41cS0xOSAwIC00MC41IC01LjV0LTQ5LjUgLTIwLjV0LTUzIC0zOHQtNDkgLTYyLjV0LTM5IC04OS41aDM3OWwtMTAwIC0xMDBoLTMwMHEtNiAtNTAgLTYgLTEwMGg0MDZsLTEwMCAtMTAwaC0zMDBxOSAtNzQgMzMgLTEzMnQ1Mi41IC05MXQ2MS41IC01NC41dDU5IC0yOSB0NDcgLTcuNXEyMiAwIDUwLjUgNy41dDYwLjUgMjQuNXQ1OCA0MXQ0My41IDYxdDE3LjUgODBoMTc0cS0zMCAtMTcxIC0xMjggLTI3OHEtMTA3IC0xMTcgLTI3NCAtMTE3cS0yMDYgMCAtMzI0IDE1OHEtMzYgNDggLTY5IDEzM3QtNDUgMjA0aC0yMTdsMTAwIDEwMGgxMTJxMSA0NyA2IDEwMGgtMjE4bDEwMCAxMDBoMTM0cTIwIDg3IDUxIDE1My41dDYyIDEwMy41cTExNyAxNDEgMjk3IDE0MXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMGJkOyIgZD0iTTQyOCAxMjAwaDM1MHE2NyAwIDEyMCAtMTN0ODYgLTMxdDU3IC00OS41dDM1IC01Ni41dDE3IC02NC41dDYuNSAtNjAuNXQwLjUgLTU3di0xNi41di0xNi41cTAgLTM2IC0wLjUgLTU3dC02LjUgLTYxdC0xNyAtNjV0LTM1IC01N3QtNTcgLTUwLjV0LTg2IC0zMS41dC0xMjAgLTEzaC0xNzhsLTIgLTEwMGgyODhxMTAgMCAxMyAtNnQtMyAtMTRsLTEyMCAtMTYwcS02IC04IC0xOCAtMTR0LTIyIC02aC0xMzh2LTE3NXEwIC0xMSAtNS41IC0xOCB0LTE1LjUgLTdoLTE0OXEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE3NWgtMjY3cS0xMCAwIC0xMyA2dDMgMTRsMTIwIDE2MHE2IDggMTggMTR0MjIgNmgxMTd2MTAwaC0yNjdxLTEwIDAgLTEzIDZ0MyAxNGwxMjAgMTYwcTYgOCAxOCAxNHQyMiA2aDExN3Y0NzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNNjAwIDEwMDB2LTMwMGgyMDNxNjQgMCA4Ni41IDMzdDIyLjUgMTE5cTAgODQgLTIyLjUgMTE2dC04Ni41IDMyaC0yMDN6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjIxMjsiIGQ9Ik0yNTAgNzAwaDgwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC04MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjMxYjsiIGQ9Ik0xMDAwIDEyMDB2LTE1MHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTB2LTEwMHEwIC05MSAtNDkuNSAtMTY1LjV0LTEzMC41IC0xMDkuNXE4MSAtMzUgMTMwLjUgLTEwOS41dDQ5LjUgLTE2NS41di0xNTBoNTBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTE1MGgtODAwdjE1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoNTB2MTUwcTAgOTEgNDkuNSAxNjUuNXQxMzAuNSAxMDkuNXEtODEgMzUgLTEzMC41IDEwOS41IHQtNDkuNSAxNjUuNXYxMDBoLTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxNTBoODAwek00MDAgMTAwMHYtMTAwcTAgLTYwIDMyLjUgLTEwOS41dDg3LjUgLTczLjVxMjggLTEyIDQ0IC0zN3QxNiAtNTV0LTE2IC01NXQtNDQgLTM3cS01NSAtMjQgLTg3LjUgLTczLjV0LTMyLjUgLTEwOS41di0xNTBoNDAwdjE1MHEwIDYwIC0zMi41IDEwOS41dC04Ny41IDczLjVxLTI4IDEyIC00NCAzN3QtMTYgNTV0MTYgNTV0NDQgMzcgcTU1IDI0IDg3LjUgNzMuNXQzMi41IDEwOS41djEwMGgtNDAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDI1ZmM7IiBob3Jpei1hZHYteD0iNTAwIiBkPSJNMCAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDI2MDE7IiBkPSJNNTAzIDEwODlxMTEwIDAgMjAwLjUgLTU5LjV0MTM0LjUgLTE1Ni41cTQ0IDE0IDkwIDE0cTEyMCAwIDIwNSAtODYuNXQ4NSAtMjA2LjVxMCAtMTIxIC04NSAtMjA3LjV0LTIwNSAtODYuNWgtNzUwcS03OSAwIC0xMzUuNSA1N3QtNTYuNSAxMzdxMCA2OSA0Mi41IDEyMi41dDEwOC41IDY3LjVxLTIgMTIgLTIgMzdxMCAxNTMgMTA4IDI2MC41dDI2MCAxMDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyNmZhOyIgZD0iTTc3NCAxMTkzLjVxMTYgLTkuNSAyMC41IC0yN3QtNS41IC0zMy41bC0xMzYgLTE4N2w0NjcgLTc0NmgzMHEyMCAwIDM1IC0xOC41dDE1IC0zOS41di00MmgtMTIwMHY0MnEwIDIxIDE1IDM5LjV0MzUgMTguNWgzMGw0NjggNzQ2bC0xMzUgMTgzcS0xMCAxNiAtNS41IDM0dDIwLjUgMjh0MzQgNS41dDI4IC0yMC41bDExMSAtMTQ4bDExMiAxNTBxOSAxNiAyNyAyMC41dDM0IC01ek02MDAgMjAwaDM3N2wtMTgyIDExMmwtMTk1IDUzNHYtNjQ2eiAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyNzA5OyIgZD0iTTI1IDExMDBoMTE1MHExMCAwIDEyLjUgLTV0LTUuNSAtMTNsLTU2NCAtNTY3cS04IC04IC0xOCAtOHQtMTggOGwtNTY0IDU2N3EtOCA4IC01LjUgMTN0MTIuNSA1ek0xOCA4ODJsMjY0IC0yNjRxOCAtOCA4IC0xOHQtOCAtMThsLTI2NCAtMjY0cS04IC04IC0xMyAtNS41dC01IDEyLjV2NTUwcTAgMTAgNSAxMi41dDEzIC01LjV6TTkxOCA2MThsMjY0IDI2NHE4IDggMTMgNS41dDUgLTEyLjV2LTU1MHEwIC0xMCAtNSAtMTIuNXQtMTMgNS41IGwtMjY0IDI2NHEtOCA4IC04IDE4dDggMTh6TTgxOCA0ODJsMzY0IC0zNjRxOCAtOCA1LjUgLTEzdC0xMi41IC01aC0xMTUwcS0xMCAwIC0xMi41IDV0NS41IDEzbDM2NCAzNjRxOCA4IDE4IDh0MTggLThsMTY0IC0xNjRxOCAtOCAxOCAtOHQxOCA4bDE2NCAxNjRxOCA4IDE4IDh0MTggLTh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjcwZjsiIGQ9Ik0xMDExIDEyMTBxMTkgMCAzMyAtMTNsMTUzIC0xNTNxMTMgLTE0IDEzIC0zM3QtMTMgLTMzbC05OSAtOTJsLTIxNCAyMTRsOTUgOTZxMTMgMTQgMzIgMTR6TTEwMTMgODAwbC02MTUgLTYxNGwtMjE0IDIxNGw2MTQgNjE0ek0zMTcgOTZsLTMzMyAtMTEybDExMCAzMzV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAwMTsiIGQ9Ik03MDAgNjUwdi01NTBoMjUwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGgtODAwdjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWgyNTB2NTUwbC01MDAgNTUwaDEyMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAwMjsiIGQ9Ik0zNjggMTAxN2w2NDUgMTYzcTM5IDE1IDYzIDB0MjQgLTQ5di04MzFxMCAtNTUgLTQxLjUgLTk1LjV0LTExMS41IC02My41cS03OSAtMjUgLTE0NyAtNC41dC04NiA3NXQyNS41IDExMS41dDEyMi41IDgycTcyIDI0IDEzOCA4djUyMWwtNjAwIC0xNTV2LTYwNnEwIC00MiAtNDQgLTkwdC0xMDkgLTY5cS03OSAtMjYgLTE0NyAtNS41dC04NiA3NS41dDI1LjUgMTExLjV0MTIyLjUgODIuNXE3MiAyNCAxMzggN3Y2MzlxMCAzOCAxNC41IDU5IHQ1My41IDM0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMDM7IiBkPSJNNTAwIDExOTFxMTAwIDAgMTkxIC0zOXQxNTYuNSAtMTA0LjV0MTA0LjUgLTE1Ni41dDM5IC0xOTFsLTEgLTJsMSAtNXEwIC0xNDEgLTc4IC0yNjJsMjc1IC0yNzRxMjMgLTI2IDIyLjUgLTQ0LjV0LTIyLjUgLTQyLjVsLTU5IC01OHEtMjYgLTIwIC00Ni41IC0yMHQtMzkuNSAyMGwtMjc1IDI3NHEtMTE5IC03NyAtMjYxIC03N2wtNSAxbC0yIC0xcS0xMDAgMCAtMTkxIDM5dC0xNTYuNSAxMDQuNXQtMTA0LjUgMTU2LjV0LTM5IDE5MSB0MzkgMTkxdDEwNC41IDE1Ni41dDE1Ni41IDEwNC41dDE5MSAzOXpNNTAwIDEwMjJxLTg4IDAgLTE2MiAtNDN0LTExNyAtMTE3dC00MyAtMTYydDQzIC0xNjJ0MTE3IC0xMTd0MTYyIC00M3QxNjIgNDN0MTE3IDExN3Q0MyAxNjJ0LTQzIDE2MnQtMTE3IDExN3QtMTYyIDQzeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMDU7IiBkPSJNNjQ5IDk0OXE0OCA2OCAxMDkuNSAxMDR0MTIxLjUgMzguNXQxMTguNSAtMjB0MTAyLjUgLTY0dDcxIC0xMDAuNXQyNyAtMTIzcTAgLTU3IC0zMy41IC0xMTcuNXQtOTQgLTEyNC41dC0xMjYuNSAtMTI3LjV0LTE1MCAtMTUyLjV0LTE0NiAtMTc0cS02MiA4NSAtMTQ1LjUgMTc0dC0xNTAgMTUyLjV0LTEyNi41IDEyNy41dC05My41IDEyNC41dC0zMy41IDExNy41cTAgNjQgMjggMTIzdDczIDEwMC41dDEwNCA2NHQxMTkgMjAgdDEyMC41IC0zOC41dDEwNC41IC0xMDR6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAwNjsiIGQ9Ik00MDcgODAwbDEzMSAzNTNxNyAxOSAxNy41IDE5dDE3LjUgLTE5bDEyOSAtMzUzaDQyMXEyMSAwIDI0IC04LjV0LTE0IC0yMC41bC0zNDIgLTI0OWwxMzAgLTQwMXE3IC0yMCAtMC41IC0yNS41dC0yNC41IDYuNWwtMzQzIDI0NmwtMzQyIC0yNDdxLTE3IC0xMiAtMjQuNSAtNi41dC0wLjUgMjUuNWwxMzAgNDAwbC0zNDcgMjUxcS0xNyAxMiAtMTQgMjAuNXQyMyA4LjVoNDI5eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMDc7IiBkPSJNNDA3IDgwMGwxMzEgMzUzcTcgMTkgMTcuNSAxOXQxNy41IC0xOWwxMjkgLTM1M2g0MjFxMjEgMCAyNCAtOC41dC0xNCAtMjAuNWwtMzQyIC0yNDlsMTMwIC00MDFxNyAtMjAgLTAuNSAtMjUuNXQtMjQuNSA2LjVsLTM0MyAyNDZsLTM0MiAtMjQ3cS0xNyAtMTIgLTI0LjUgLTYuNXQtMC41IDI1LjVsMTMwIDQwMGwtMzQ3IDI1MXEtMTcgMTIgLTE0IDIwLjV0MjMgOC41aDQyOXpNNDc3IDcwMGgtMjQwbDE5NyAtMTQybC03NCAtMjI2IGwxOTMgMTM5bDE5NSAtMTQwbC03NCAyMjlsMTkyIDE0MGgtMjM0bC03OCAyMTF6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAwODsiIGQ9Ik02MDAgMTIwMHExMjQgMCAyMTIgLTg4dDg4IC0yMTJ2LTI1MHEwIC00NiAtMzEgLTk4dC02OSAtNTJ2LTc1cTAgLTEwIDYgLTIxLjV0MTUgLTE3LjVsMzU4IC0yMzBxOSAtNSAxNSAtMTYuNXQ2IC0yMS41di05M3EwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTExNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY5M3EwIDEwIDYgMjEuNXQxNSAxNi41bDM1OCAyMzBxOSA2IDE1IDE3LjV0NiAyMS41djc1cS0zOCAwIC02OSA1MiB0LTMxIDk4djI1MHEwIDEyNCA4OCAyMTJ0MjEyIDg4eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMDk7IiBkPSJNMjUgMTEwMGgxMTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTA1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTExNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxMDUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTEwMCAxMDAwdi0xMDBoMTAwdjEwMGgtMTAwek04NzUgMTAwMGgtNTUwcS0xMCAwIC0xNy41IC03LjV0LTcuNSAtMTcuNXYtMzUwcTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoNTUwIHExMCAwIDE3LjUgNy41dDcuNSAxNy41djM1MHEwIDEwIC03LjUgMTcuNXQtMTcuNSA3LjV6TTEwMDAgMTAwMHYtMTAwaDEwMHYxMDBoLTEwMHpNMTAwIDgwMHYtMTAwaDEwMHYxMDBoLTEwMHpNMTAwMCA4MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTEwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTEwMDAgNjAwdi0xMDBoMTAwdjEwMGgtMTAwek04NzUgNTAwaC01NTBxLTEwIDAgLTE3LjUgLTcuNXQtNy41IC0xNy41di0zNTBxMCAtMTAgNy41IC0xNy41IHQxNy41IC03LjVoNTUwcTEwIDAgMTcuNSA3LjV0Ny41IDE3LjV2MzUwcTAgMTAgLTcuNSAxNy41dC0xNy41IDcuNXpNMTAwIDQwMHYtMTAwaDEwMHYxMDBoLTEwMHpNMTAwMCA0MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTEwMCAyMDB2LTEwMGgxMDB2MTAwaC0xMDB6TTEwMDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTA7IiBkPSJNNTAgMTEwMGg0MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNDAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek02NTAgMTEwMGg0MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNDAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDAgcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgNTAwaDQwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djQwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTY1MCA1MDBoNDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di00MDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTQwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djQwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAxMTsiIGQ9Ik01MCAxMTAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQ1MCAxMTAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek04NTAgMTEwMGgyMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTIwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMjAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYyMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA3MDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQ1MCA3MDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNODUwIDcwMGgyMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTIwMCBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgMzAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQ1MCAzMDBoMjAwIHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTg1MCAzMDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41IHQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAxMjsiIGQ9Ik01MCAxMTAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQ1MCAxMTAwaDcwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC03MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA3MDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNDUwIDcwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTIwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNzAwIHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgMzAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQ1MCAzMDBoNzAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDAgcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC03MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAxMzsiIGQ9Ik00NjUgNDc3bDU3MSA1NzFxOCA4IDE4IDh0MTcgLThsMTc3IC0xNzdxOCAtNyA4IC0xN3QtOCAtMThsLTc4MyAtNzg0cS03IC04IC0xNy41IC04dC0xNy41IDhsLTM4NCAzODRxLTggOCAtOCAxOHQ4IDE3bDE3NyAxNzdxNyA4IDE3IDh0MTggLThsMTcxIC0xNzFxNyAtNyAxOCAtN3QxOCA3eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTQ7IiBkPSJNOTA0IDEwODNsMTc4IC0xNzlxOCAtOCA4IC0xOC41dC04IC0xNy41bC0yNjcgLTI2OGwyNjcgLTI2OHE4IC03IDggLTE3LjV0LTggLTE4LjVsLTE3OCAtMTc4cS04IC04IC0xOC41IC04dC0xNy41IDhsLTI2OCAyNjdsLTI2OCAtMjY3cS03IC04IC0xNy41IC04dC0xOC41IDhsLTE3OCAxNzhxLTggOCAtOCAxOC41dDggMTcuNWwyNjcgMjY4bC0yNjcgMjY4cS04IDcgLTggMTcuNXQ4IDE4LjVsMTc4IDE3OHE4IDggMTguNSA4dDE3LjUgLTggbDI2OCAtMjY3bDI2OCAyNjhxNyA3IDE3LjUgN3QxOC41IC03eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTU7IiBkPSJNNTA3IDExNzdxOTggMCAxODcuNSAtMzguNXQxNTQuNSAtMTAzLjV0MTAzLjUgLTE1NC41dDM4LjUgLTE4Ny41cTAgLTE0MSAtNzggLTI2MmwzMDAgLTI5OXE4IC04IDggLTE4LjV0LTggLTE4LjVsLTEwOSAtMTA4cS03IC04IC0xNy41IC04dC0xOC41IDhsLTMwMCAyOTlxLTExOSAtNzcgLTI2MSAtNzdxLTk4IDAgLTE4OCAzOC41dC0xNTQuNSAxMDN0LTEwMyAxNTQuNXQtMzguNSAxODh0MzguNSAxODcuNXQxMDMgMTU0LjUgdDE1NC41IDEwMy41dDE4OCAzOC41ek01MDYuNSAxMDIzcS04OS41IDAgLTE2NS41IC00NHQtMTIwIC0xMjAuNXQtNDQgLTE2NnQ0NCAtMTY1LjV0MTIwIC0xMjB0MTY1LjUgLTQ0dDE2NiA0NHQxMjAuNSAxMjB0NDQgMTY1LjV0LTQ0IDE2NnQtMTIwLjUgMTIwLjV0LTE2NiA0NHpNNDI1IDkwMGgxNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di03NWg3NXExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41IHQtMTcuNSAtNy41aC03NXYtNzVxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0xNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY3NWgtNzVxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWg3NXY3NXEwIDEwIDcuNSAxNy41dDE3LjUgNy41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTY7IiBkPSJNNTA3IDExNzdxOTggMCAxODcuNSAtMzguNXQxNTQuNSAtMTAzLjV0MTAzLjUgLTE1NC41dDM4LjUgLTE4Ny41cTAgLTE0MSAtNzggLTI2MmwzMDAgLTI5OXE4IC04IDggLTE4LjV0LTggLTE4LjVsLTEwOSAtMTA4cS03IC04IC0xNy41IC04dC0xOC41IDhsLTMwMCAyOTlxLTExOSAtNzcgLTI2MSAtNzdxLTk4IDAgLTE4OCAzOC41dC0xNTQuNSAxMDN0LTEwMyAxNTQuNXQtMzguNSAxODh0MzguNSAxODcuNXQxMDMgMTU0LjUgdDE1NC41IDEwMy41dDE4OCAzOC41ek01MDYuNSAxMDIzcS04OS41IDAgLTE2NS41IC00NHQtMTIwIC0xMjAuNXQtNDQgLTE2NnQ0NCAtMTY1LjV0MTIwIC0xMjB0MTY1LjUgLTQ0dDE2NiA0NHQxMjAuNSAxMjB0NDQgMTY1LjV0LTQ0IDE2NnQtMTIwLjUgMTIwLjV0LTE2NiA0NHpNMzI1IDgwMGgzNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0zNTBxLTEwIDAgLTE3LjUgNy41IHQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAxNzsiIGQ9Ik01NTAgMTIwMGgxMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek04MDAgOTc1djE2NnExNjcgLTYyIDI3MiAtMjA5LjV0MTA1IC0zMzEuNXEwIC0xMTcgLTQ1LjUgLTIyNHQtMTIzIC0xODQuNXQtMTg0LjUgLTEyM3QtMjI0IC00NS41dC0yMjQgNDUuNSB0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHEwIDE4NCAxMDUgMzMxLjV0MjcyIDIwOS41di0xNjZxLTEwMyAtNTUgLTE2NSAtMTU1dC02MiAtMjIwcTAgLTExNiA1NyAtMjE0LjV0MTU1LjUgLTE1NS41dDIxNC41IC01N3QyMTQuNSA1N3QxNTUuNSAxNTUuNXQ1NyAyMTQuNXEwIDEyMCAtNjIgMjIwdC0xNjUgMTU1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTg7IiBkPSJNMTAyNSAxMjAwaDE1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTExNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0xNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxMTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTcyNSA4MDBoMTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNzUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2NzUwIHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek00MjUgNTAwaDE1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTQ1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djQ1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek0xMjUgMzAwaDE1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTI1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41IHYyNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDE5OyIgZD0iTTYwMCAxMTc0cTMzIDAgNzQgLTVsMzggLTE1Mmw1IC0xcTQ5IC0xNCA5NCAtMzlsNSAtMmwxMzQgODBxNjEgLTQ4IDEwNCAtMTA1bC04MCAtMTM0bDMgLTVxMjUgLTQ0IDM5IC05M2wxIC02bDE1MiAtMzhxNSAtNDMgNSAtNzNxMCAtMzQgLTUgLTc0bC0xNTIgLTM4bC0xIC02cS0xNSAtNDkgLTM5IC05M2wtMyAtNWw4MCAtMTM0cS00OCAtNjEgLTEwNCAtMTA1bC0xMzQgODFsLTUgLTNxLTQ0IC0yNSAtOTQgLTM5bC01IC0ybC0zOCAtMTUxIHEtNDMgLTUgLTc0IC01cS0zMyAwIC03NCA1bC0zOCAxNTFsLTUgMnEtNDkgMTQgLTk0IDM5bC01IDNsLTEzNCAtODFxLTYwIDQ4IC0xMDQgMTA1bDgwIDEzNGwtMyA1cS0yNSA0NSAtMzggOTNsLTIgNmwtMTUxIDM4cS02IDQyIC02IDc0cTAgMzMgNiA3M2wxNTEgMzhsMiA2cTEzIDQ4IDM4IDkzbDMgNWwtODAgMTM0cTQ3IDYxIDEwNSAxMDVsMTMzIC04MGw1IDJxNDUgMjUgOTQgMzlsNSAxbDM4IDE1MnE0MyA1IDc0IDV6TTYwMCA4MTUgcS04OSAwIC0xNTIgLTYzdC02MyAtMTUxLjV0NjMgLTE1MS41dDE1MiAtNjN0MTUyIDYzdDYzIDE1MS41dC02MyAxNTEuNXQtMTUyIDYzeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMjA7IiBkPSJNNTAwIDEzMDBoMzAwcTQxIDAgNzAuNSAtMjkuNXQyOS41IC03MC41di0xMDBoMjc1cTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNzVoLTExMDB2NzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgyNzV2MTAwcTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNXpNNTAwIDEyMDB2LTEwMGgzMDB2MTAwaC0zMDB6TTExMDAgOTAwdi04MDBxMCAtNDEgLTI5LjUgLTcwLjV0LTcwLjUgLTI5LjVoLTcwMHEtNDEgMCAtNzAuNSAyOS41dC0yOS41IDcwLjUgdjgwMGg5MDB6TTMwMCA4MDB2LTcwMGgxMDB2NzAwaC0xMDB6TTUwMCA4MDB2LTcwMGgxMDB2NzAwaC0xMDB6TTcwMCA4MDB2LTcwMGgxMDB2NzAwaC0xMDB6TTkwMCA4MDB2LTcwMGgxMDB2NzAwaC0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAyMTsiIGQ9Ik0xOCA2MThsNjIwIDYwOHE4IDcgMTguNSA3dDE3LjUgLTdsNjA4IC02MDhxOCAtOCA1LjUgLTEzdC0xMi41IC01aC0xNzV2LTU3NXEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTI1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djM3NWgtMzAwdi0zNzVxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1NzVoLTE3NXEtMTAgMCAtMTIuNSA1dDUuNSAxM3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDIyOyIgZD0iTTYwMCAxMjAwdi00MDBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDMwMHYtNjUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC04MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djExMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDQ1MHpNMTAwMCA4MDBoLTI1MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjUweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMjM7IiBkPSJNNjAwIDExNzdxMTE3IDAgMjI0IC00NS41dDE4NC41IC0xMjN0MTIzIC0xODQuNXQ0NS41IC0yMjR0LTQ1LjUgLTIyNHQtMTIzIC0xODQuNXQtMTg0LjUgLTEyM3QtMjI0IC00NS41dC0yMjQgNDUuNXQtMTg0LjUgMTIzdC0xMjMgMTg0LjV0LTQ1LjUgMjI0dDQ1LjUgMjI0dDEyMyAxODQuNXQxODQuNSAxMjN0MjI0IDQ1LjV6TTYwMCAxMDI3cS0xMTYgMCAtMjE0LjUgLTU3dC0xNTUuNSAtMTU1LjV0LTU3IC0yMTQuNXQ1NyAtMjE0LjUgdDE1NS41IC0xNTUuNXQyMTQuNSAtNTd0MjE0LjUgNTd0MTU1LjUgMTU1LjV0NTcgMjE0LjV0LTU3IDIxNC41dC0xNTUuNSAxNTUuNXQtMjE0LjUgNTd6TTUyNSA5MDBoNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0yNzVoMTc1cTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYzNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDI0OyIgZD0iTTEzMDAgMGgtNTM4bC00MSA0MDBoLTI0MmwtNDEgLTQwMGgtNTM4bDQzMSAxMjAwaDIwOWwtMjEgLTMwMGgxNjJsLTIwIDMwMGgyMDh6TTUxNSA4MDBsLTI3IC0zMDBoMjI0bC0yNyAzMDBoLTE3MHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDI1OyIgZD0iTTU1MCAxMjAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDUwaDE5MXEyMCAwIDI1LjUgLTExLjV0LTcuNSAtMjcuNWwtMzI3IC00MDBxLTEzIC0xNiAtMzIgLTE2dC0zMiAxNmwtMzI3IDQwMHEtMTMgMTYgLTcuNSAyNy41dDI1LjUgMTEuNWgxOTF2NDUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMTEyNSA0MDBoNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0zNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41IGgtMTA1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djM1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41aDUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTc1aDkwMHYxNzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDI2OyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02MDAgMTAyN3EtMTE2IDAgLTIxNC41IC01N3QtMTU1LjUgLTE1NS41dC01NyAtMjE0LjV0NTcgLTIxNC41IHQxNTUuNSAtMTU1LjV0MjE0LjUgLTU3dDIxNC41IDU3dDE1NS41IDE1NS41dDU3IDIxNC41dC01NyAyMTQuNXQtMTU1LjUgMTU1LjV0LTIxNC41IDU3ek01MjUgOTAwaDE1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTI3NWgxMzdxMjEgMCAyNiAtMTEuNXQtOCAtMjcuNWwtMjIzIC0yNzVxLTEzIC0xNiAtMzIgLTE2dC0zMiAxNmwtMjIzIDI3NXEtMTMgMTYgLTggMjcuNXQyNiAxMS41aDEzN3YyNzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXogIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAyNzsiIGQ9Ik02MDAgMTE3N3ExMTcgMCAyMjQgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNHQtNDUuNSAtMjI0dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjQgLTQ1LjV0LTIyNCA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjR0NDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXpNNjAwIDEwMjdxLTExNiAwIC0yMTQuNSAtNTd0LTE1NS41IC0xNTUuNXQtNTcgLTIxNC41dDU3IC0yMTQuNSB0MTU1LjUgLTE1NS41dDIxNC41IC01N3QyMTQuNSA1N3QxNTUuNSAxNTUuNXQ1NyAyMTQuNXQtNTcgMjE0LjV0LTE1NS41IDE1NS41dC0yMTQuNSA1N3pNNjMyIDkxNGwyMjMgLTI3NXExMyAtMTYgOCAtMjcuNXQtMjYgLTExLjVoLTEzN3YtMjc1cTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2Mjc1aC0xMzdxLTIxIDAgLTI2IDExLjV0OCAyNy41bDIyMyAyNzVxMTMgMTYgMzIgMTYgdDMyIC0xNnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDI4OyIgZD0iTTIyNSAxMjAwaDc1MHExMCAwIDE5LjUgLTd0MTIuNSAtMTdsMTg2IC02NTJxNyAtMjQgNyAtNDl2LTQyNXEwIC0xMiAtNCAtMjd0LTkgLTE3cS0xMiAtNiAtMzcgLTZoLTExMDBxLTEyIDAgLTI3IDR0LTE3IDhxLTYgMTMgLTYgMzhsMSA0MjVxMCAyNSA3IDQ5bDE4NSA2NTJxMyAxMCAxMi41IDE3dDE5LjUgN3pNODc4IDEwMDBoLTU1NnEtMTAgMCAtMTkgLTd0LTExIC0xOGwtODcgLTQ1MHEtMiAtMTEgNCAtMTh0MTYgLTdoMTUwIHExMCAwIDE5LjUgLTd0MTEuNSAtMTdsMzggLTE1MnEyIC0xMCAxMS41IC0xN3QxOS41IC03aDI1MHExMCAwIDE5LjUgN3QxMS41IDE3bDM4IDE1MnEyIDEwIDExLjUgMTd0MTkuNSA3aDE1MHExMCAwIDE2IDd0NCAxOGwtODcgNDUwcS0yIDExIC0xMSAxOHQtMTkgN3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDI5OyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02MDAgMTAyN3EtMTE2IDAgLTIxNC41IC01N3QtMTU1LjUgLTE1NS41dC01NyAtMjE0LjV0NTcgLTIxNC41IHQxNTUuNSAtMTU1LjV0MjE0LjUgLTU3dDIxNC41IDU3dDE1NS41IDE1NS41dDU3IDIxNC41dC01NyAyMTQuNXQtMTU1LjUgMTU1LjV0LTIxNC41IDU3ek01NDAgODIwbDI1MyAtMTkwcTE3IC0xMiAxNyAtMzB0LTE3IC0zMGwtMjUzIC0xOTBxLTE2IC0xMiAtMjggLTYuNXQtMTIgMjYuNXY0MDBxMCAyMSAxMiAyNi41dDI4IC02LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAzMDsiIGQ9Ik05NDcgMTA2MGwxMzUgMTM1cTcgNyAxMi41IDV0NS41IC0xM3YtMzYycTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMzYycS0xMSAwIC0xMyA1LjV0NSAxMi41bDEzMyAxMzNxLTEwOSA3NiAtMjM4IDc2cS0xMTYgMCAtMjE0LjUgLTU3dC0xNTUuNSAtMTU1LjV0LTU3IC0yMTQuNXQ1NyAtMjE0LjV0MTU1LjUgLTE1NS41dDIxNC41IC01N3QyMTQuNSA1N3QxNTUuNSAxNTUuNXQ1NyAyMTQuNWgxNTBxMCAtMTE3IC00NS41IC0yMjQgdC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjQgLTQ1LjV0LTIyNCA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjR0NDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXExOTIgMCAzNDcgLTExN3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDMxOyIgZD0iTTk0NyAxMDYwbDEzNSAxMzVxNyA3IDEyLjUgNXQ1LjUgLTEzdi0zNjFxMCAtMTEgLTcuNSAtMTguNXQtMTguNSAtNy41aC0zNjFxLTExIDAgLTEzIDUuNXQ1IDEyLjVsMTM0IDEzNHEtMTEwIDc1IC0yMzkgNzVxLTExNiAwIC0yMTQuNSAtNTd0LTE1NS41IC0xNTUuNXQtNTcgLTIxNC41aC0xNTBxMCAxMTcgNDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXExOTIgMCAzNDcgLTExN3pNMTAyNyA2MDBoMTUwIHEwIC0xMTcgLTQ1LjUgLTIyNHQtMTIzIC0xODQuNXQtMTg0LjUgLTEyM3QtMjI0IC00NS41cS0xOTIgMCAtMzQ4IDExOGwtMTM0IC0xMzRxLTcgLTggLTEyLjUgLTUuNXQtNS41IDEyLjV2MzYwcTAgMTEgNy41IDE4LjV0MTguNSA3LjVoMzYwcTEwIDAgMTIuNSAtNS41dC01LjUgLTEyLjVsLTEzMyAtMTMzcTExMCAtNzYgMjQwIC03NnExMTYgMCAyMTQuNSA1N3QxNTUuNSAxNTUuNXQ1NyAyMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDMyOyIgZD0iTTEyNSAxMjAwaDEwNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xMTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMTA1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djExNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNMTA3NSAxMDAwaC04NTBxLTEwIDAgLTE3LjUgLTcuNXQtNy41IC0xNy41di04NTBxMCAtMTAgNy41IC0xNy41dDE3LjUgLTcuNWg4NTBxMTAgMCAxNy41IDcuNXQ3LjUgMTcuNXY4NTAgcTAgMTAgLTcuNSAxNy41dC0xNy41IDcuNXpNMzI1IDkwMGg1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek01MjUgOTAwaDQ1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtNDUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2NTAgcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTMyNSA3MDBoNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di01MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2NTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNNTI1IDcwMGg0NTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di01MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTQ1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djUwIHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek0zMjUgNTAwaDUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC01MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTUyNSA1MDBoNDUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC00NTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1MCBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNMzI1IDMwMGg1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek01MjUgMzAwaDQ1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtNDUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2NTAgcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAzMzsiIGQ9Ik05MDAgODAwdjIwMHEwIDgzIC01OC41IDE0MS41dC0xNDEuNSA1OC41aC0zMDBxLTgyIDAgLTE0MSAtNTl0LTU5IC0xNDF2LTIwMGgtMTAwcS00MSAwIC03MC41IC0yOS41dC0yOS41IC03MC41di02MDBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDkwMHE0MSAwIDcwLjUgMjkuNXQyOS41IDcwLjV2NjAwcTAgNDEgLTI5LjUgNzAuNXQtNzAuNSAyOS41aC0xMDB6TTQwMCA4MDB2MTUwcTAgMjEgMTUgMzUuNXQzNSAxNC41aDIwMCBxMjAgMCAzNSAtMTQuNXQxNSAtMzUuNXYtMTUwaC0zMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAzNDsiIGQ9Ik0xMjUgMTEwMGg1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTEwNzVoLTEwMHYxMDc1cTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTEwNzUgMTA1MnE0IDAgOSAtMnExNiAtNiAxNiAtMjN2LTQyMXEwIC02IC0zIC0xMnEtMzMgLTU5IC02Ni41IC05OXQtNjUuNSAtNTh0LTU2LjUgLTI0LjV0LTUyLjUgLTYuNXEtMjYgMCAtNTcuNSA2LjV0LTUyLjUgMTMuNXQtNjAgMjFxLTQxIDE1IC02MyAyMi41dC01Ny41IDE1dC02NS41IDcuNSBxLTg1IDAgLTE2MCAtNTdxLTcgLTUgLTE1IC01cS02IDAgLTExIDNxLTE0IDcgLTE0IDIydjQzOHEyMiA1NSA4MiA5OC41dDExOSA0Ni41cTIzIDIgNDMgMC41dDQzIC03dDMyLjUgLTguNXQzOCAtMTN0MzIuNSAtMTFxNDEgLTE0IDYzLjUgLTIxdDU3IC0xNHQ2My41IC03cTEwMyAwIDE4MyA4N3E3IDggMTggOHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDM1OyIgZD0iTTYwMCAxMTc1cTExNiAwIDIyNyAtNDkuNXQxOTIuNSAtMTMxdDEzMSAtMTkyLjV0NDkuNSAtMjI3di0zMDBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC01MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djMwMHEwIDEyNyAtNzAuNSAyMzEuNXQtMTg0LjUgMTYxLjV0LTI0NSA1N3QtMjQ1IC01N3QtMTg0LjUgLTE2MS41dC03MC41IC0yMzEuNXYtMzAwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtNTAgcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MzAwcTAgMTE2IDQ5LjUgMjI3dDEzMSAxOTIuNXQxOTIuNSAxMzF0MjI3IDQ5LjV6TTIyMCA1MDBoMTYwcTggMCAxNCAtNnQ2IC0xNHYtNDYwcTAgLTggLTYgLTE0dC0xNCAtNmgtMTYwcS04IDAgLTE0IDZ0LTYgMTR2NDYwcTAgOCA2IDE0dDE0IDZ6TTgyMCA1MDBoMTYwcTggMCAxNCAtNnQ2IC0xNHYtNDYwcTAgLTggLTYgLTE0dC0xNCAtNmgtMTYwcS04IDAgLTE0IDZ0LTYgMTR2NDYwIHEwIDggNiAxNHQxNCA2eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMzY7IiBkPSJNMzIxIDgxNGwyNTggMTcycTkgNiAxNSAyLjV0NiAtMTMuNXYtNzUwcTAgLTEwIC02IC0xMy41dC0xNSAyLjVsLTI1OCAxNzJxLTIxIDE0IC00NiAxNGgtMjUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MzUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoMjUwcTI1IDAgNDYgMTR6TTkwMCA2NjhsMTIwIDEyMHE3IDcgMTcgN3QxNyAtN2wzNCAtMzRxNyAtNyA3IC0xN3QtNyAtMTdsLTEyMCAtMTIwbDEyMCAtMTIwcTcgLTcgNyAtMTcgdC03IC0xN2wtMzQgLTM0cS03IC03IC0xNyAtN3QtMTcgN2wtMTIwIDExOWwtMTIwIC0xMTlxLTcgLTcgLTE3IC03dC0xNyA3bC0zNCAzNHEtNyA3IC03IDE3dDcgMTdsMTE5IDEyMGwtMTE5IDEyMHEtNyA3IC03IDE3dDcgMTdsMzQgMzRxNyA4IDE3IDh0MTcgLTh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAzNzsiIGQ9Ik0zMjEgODE0bDI1OCAxNzJxOSA2IDE1IDIuNXQ2IC0xMy41di03NTBxMCAtMTAgLTYgLTEzLjV0LTE1IDIuNWwtMjU4IDE3MnEtMjEgMTQgLTQ2IDE0aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYzNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgyNTBxMjUgMCA0NiAxNHpNNzY2IDkwMGg0cTEwIC0xIDE2IC0xMHE5NiAtMTI5IDk2IC0yOTBxMCAtMTU0IC05MCAtMjgxcS02IC05IC0xNyAtMTBsLTMgLTFxLTkgMCAtMTYgNiBsLTI5IDIzcS03IDcgLTguNSAxNi41dDQuNSAxNy41cTcyIDEwMyA3MiAyMjlxMCAxMzIgLTc4IDIzOHEtNiA4IC00LjUgMTh0OS41IDE3bDI5IDIycTcgNSAxNSA1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMzg7IiBkPSJNOTY3IDEwMDRoM3ExMSAtMSAxNyAtMTBxMTM1IC0xNzkgMTM1IC0zOTZxMCAtMTA1IC0zNCAtMjA2LjV0LTk4IC0xODUuNXEtNyAtOSAtMTcgLTEwaC0zcS05IDAgLTE2IDZsLTQyIDM0cS04IDYgLTkgMTZ0NSAxOHExMTEgMTUwIDExMSAzMjhxMCA5MCAtMjkuNSAxNzZ0LTg0LjUgMTU3cS02IDkgLTUgMTl0MTAgMTZsNDIgMzNxNyA1IDE1IDV6TTMyMSA4MTRsMjU4IDE3MnE5IDYgMTUgMi41dDYgLTEzLjV2LTc1MHEwIC0xMCAtNiAtMTMuNSB0LTE1IDIuNWwtMjU4IDE3MnEtMjEgMTQgLTQ2IDE0aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYzNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgyNTBxMjUgMCA0NiAxNHpNNzY2IDkwMGg0cTEwIC0xIDE2IC0xMHE5NiAtMTI5IDk2IC0yOTBxMCAtMTU0IC05MCAtMjgxcS02IC05IC0xNyAtMTBsLTMgLTFxLTkgMCAtMTYgNmwtMjkgMjNxLTcgNyAtOC41IDE2LjV0NC41IDE3LjVxNzIgMTAzIDcyIDIyOXEwIDEzMiAtNzggMjM4IHEtNiA4IC00LjUgMTguNXQ5LjUgMTYuNWwyOSAyMnE3IDUgMTUgNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDM5OyIgZD0iTTUwMCA5MDBoMTAwdi0xMDBoLTEwMHYtMTAwaC00MDB2LTEwMGgtMTAwdjYwMGg1MDB2LTMwMHpNMTIwMCA3MDBoLTIwMHYtMTAwaDIwMHYtMjAwaC0zMDB2MzAwaC0yMDB2MzAwaC0xMDB2MjAwaDYwMHYtNTAwek0xMDAgMTEwMHYtMzAwaDMwMHYzMDBoLTMwMHpNODAwIDExMDB2LTMwMGgzMDB2MzAwaC0zMDB6TTMwMCA5MDBoLTEwMHYxMDBoMTAwdi0xMDB6TTEwMDAgOTAwaC0xMDB2MTAwaDEwMHYtMTAwek0zMDAgNTAwaDIwMHYtNTAwIGgtNTAwdjUwMGgyMDB2MTAwaDEwMHYtMTAwek04MDAgMzAwaDIwMHYtMTAwaC0xMDB2LTEwMGgtMjAwdjEwMGgtMTAwdjEwMGgxMDB2MjAwaC0yMDB2MTAwaDMwMHYtMzAwek0xMDAgNDAwdi0zMDBoMzAwdjMwMGgtMzAwek0zMDAgMjAwaC0xMDB2MTAwaDEwMHYtMTAwek0xMjAwIDIwMGgtMTAwdjEwMGgxMDB2LTEwMHpNNzAwIDBoLTEwMHYxMDBoMTAwdi0xMDB6TTEyMDAgMGgtMzAwdjEwMGgzMDB2LTEwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQwOyIgZD0iTTEwMCAyMDBoLTEwMHYxMDAwaDEwMHYtMTAwMHpNMzAwIDIwMGgtMTAwdjEwMDBoMTAwdi0xMDAwek03MDAgMjAwaC0yMDB2MTAwMGgyMDB2LTEwMDB6TTkwMCAyMDBoLTEwMHYxMDAwaDEwMHYtMTAwMHpNMTIwMCAyMDBoLTIwMHYxMDAwaDIwMHYtMTAwMHpNNDAwIDBoLTMwMHYxMDBoMzAwdi0xMDB6TTYwMCAwaC0xMDB2OTFoMTAwdi05MXpNODAwIDBoLTEwMHY5MWgxMDB2LTkxek0xMTAwIDBoLTIwMHY5MWgyMDB2LTkxeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNDE7IiBkPSJNNTAwIDEyMDBsNjgyIC02ODJxOCAtOCA4IC0xOHQtOCAtMThsLTQ2NCAtNDY0cS04IC04IC0xOCAtOHQtMTggOGwtNjgyIDY4MmwxIDQ3NXEwIDEwIDcuNSAxNy41dDE3LjUgNy41aDQ3NHpNMzE5LjUgMTAyNC41cS0yOS41IDI5LjUgLTcxIDI5LjV0LTcxIC0yOS41dC0yOS41IC03MS41dDI5LjUgLTcxLjV0NzEgLTI5LjV0NzEgMjkuNXQyOS41IDcxLjV0LTI5LjUgNzEuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQyOyIgZD0iTTUwMCAxMjAwbDY4MiAtNjgycTggLTggOCAtMTh0LTggLTE4bC00NjQgLTQ2NHEtOCAtOCAtMTggLTh0LTE4IDhsLTY4MiA2ODJsMSA0NzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWg0NzR6TTgwMCAxMjAwbDY4MiAtNjgycTggLTggOCAtMTh0LTggLTE4bC00NjQgLTQ2NHEtOCAtOCAtMTggLTh0LTE4IDhsLTU2IDU2bDQyNCA0MjZsLTcwMCA3MDBoMTUwek0zMTkuNSAxMDI0LjVxLTI5LjUgMjkuNSAtNzEgMjkuNXQtNzEgLTI5LjUgdC0yOS41IC03MS41dDI5LjUgLTcxLjV0NzEgLTI5LjV0NzEgMjkuNXQyOS41IDcxLjV0LTI5LjUgNzEuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQzOyIgZD0iTTMwMCAxMjAwaDgyNXE3NSAwIDc1IC03NXYtOTAwcTAgLTI1IC0xOCAtNDNsLTY0IC02NHEtOCAtOCAtMTMgLTUuNXQtNSAxMi41djk1MHEwIDEwIC03LjUgMTcuNXQtMTcuNSA3LjVoLTcwMHEtMjUgMCAtNDMgLTE4bC02NCAtNjRxLTggLTggLTUuNSAtMTN0MTIuNSAtNWg3MDBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di05NTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC04NTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY5NzUgcTAgMjUgMTggNDNsMTM5IDEzOXExOCAxOCA0MyAxOHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQ0OyIgZD0iTTI1MCAxMjAwaDgwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTE1MGwtNDUwIDQ0NGwtNDUwIC00NDV2MTE1MXEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA0NTsiIGQ9Ik04MjIgMTIwMGgtNDQ0cS0xMSAwIC0xOSAtNy41dC05IC0xNy41bC03OCAtMzAxcS03IC0yNCA3IC00NWw1NyAtMTA4cTYgLTkgMTcuNSAtMTV0MjEuNSAtNmg0NTBxMTAgMCAyMS41IDZ0MTcuNSAxNWw2MiAxMDhxMTQgMjEgNyA0NWwtODMgMzAxcS0xIDEwIC05IDE3LjV0LTE5IDcuNXpNMTE3NSA4MDBoLTE1MHEtMTAgMCAtMjEgLTYuNXQtMTUgLTE1LjVsLTc4IC0xNTZxLTQgLTkgLTE1IC0xNS41dC0yMSAtNi41aC01NTAgcS0xMCAwIC0yMSA2LjV0LTE1IDE1LjVsLTc4IDE1NnEtNCA5IC0xNSAxNS41dC0yMSA2LjVoLTE1MHEtMTAgMCAtMTcuNSAtNy41dC03LjUgLTE3LjV2LTY1MHEwIC0xMCA3LjUgLTE3LjV0MTcuNSAtNy41aDE1MHExMCAwIDE3LjUgNy41dDcuNSAxNy41djE1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41aDc1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCA3LjUgLTE3LjV0MTcuNSAtNy41aDE1MHExMCAwIDE3LjUgNy41IHQ3LjUgMTcuNXY2NTBxMCAxMCAtNy41IDE3LjV0LTE3LjUgNy41ek04NTAgMjAwaC01MDBxLTEwIDAgLTE5LjUgLTd0LTExLjUgLTE3bC0zOCAtMTUycS0yIC0xMCAzLjUgLTE3dDE1LjUgLTdoNjAwcTEwIDAgMTUuNSA3dDMuNSAxN2wtMzggMTUycS0yIDEwIC0xMS41IDE3dC0xOS41IDd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA0NjsiIGQ9Ik01MDAgMTEwMGgyMDBxNTYgMCAxMDIuNSAtMjAuNXQ3Mi41IC01MHQ0NCAtNTl0MjUgLTUwLjVsNiAtMjBoMTUwcTQxIDAgNzAuNSAtMjkuNXQyOS41IC03MC41di02MDBxMCAtNDEgLTI5LjUgLTcwLjV0LTcwLjUgLTI5LjVoLTEwMDBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djYwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjVoMTUwcTIgOCA2LjUgMjEuNXQyNCA0OHQ0NSA2MXQ3MiA0OHQxMDIuNSAyMS41ek05MDAgODAwdi0xMDAgaDEwMHYxMDBoLTEwMHpNNjAwIDczMHEtOTUgMCAtMTYyLjUgLTY3LjV0LTY3LjUgLTE2Mi41dDY3LjUgLTE2Mi41dDE2Mi41IC02Ny41dDE2Mi41IDY3LjV0NjcuNSAxNjIuNXQtNjcuNSAxNjIuNXQtMTYyLjUgNjcuNXpNNjAwIDYwM3E0MyAwIDczIC0zMHQzMCAtNzN0LTMwIC03M3QtNzMgLTMwdC03MyAzMHQtMzAgNzN0MzAgNzN0NzMgMzB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA0NzsiIGQ9Ik02ODEgMTE5OWwzODUgLTk5OHEyMCAtNTAgNjAgLTkycTE4IC0xOSAzNi41IC0yOS41dDI3LjUgLTExLjVsMTAgLTJ2LTY2aC00MTd2NjZxNTMgMCA3NSA0My41dDUgODguNWwtODIgMjIyaC0zOTFxLTU4IC0xNDUgLTkyIC0yMzRxLTExIC0zNCAtNi41IC01N3QyNS41IC0zN3Q0NiAtMjB0NTUgLTZ2LTY2aC0zNjV2NjZxNTYgMjQgODQgNTJxMTIgMTIgMjUgMzAuNXQyMCAzMS41bDcgMTNsMzk5IDEwMDZoOTN6TTQxNiA1MjFoMzQwIGwtMTYyIDQ1N3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQ4OyIgZD0iTTc1MyA2NDFxNSAtMSAxNC41IC00LjV0MzYgLTE1LjV0NTAuNSAtMjYuNXQ1My41IC00MHQ1MC41IC01NC41dDM1LjUgLTcwdDE0LjUgLTg3cTAgLTY3IC0yNy41IC0xMjUuNXQtNzEuNSAtOTcuNXQtOTguNSAtNjYuNXQtMTA4LjUgLTQwLjV0LTEwMiAtMTNoLTUwMHY4OXE0MSA3IDcwLjUgMzIuNXQyOS41IDY1LjV2ODI3cTAgMjQgLTAuNSAzNHQtMy41IDI0dC04LjUgMTkuNXQtMTcgMTMuNXQtMjggMTIuNXQtNDIuNSAxMS41djcxIGw0NzEgLTFxNTcgMCAxMTUuNSAtMjAuNXQxMDggLTU3dDgwLjUgLTk0dDMxIC0xMjQuNXEwIC01MSAtMTUuNSAtOTYuNXQtMzggLTc0LjV0LTQ1IC01MC41dC0zOC41IC0zMC41ek00MDAgNzAwaDEzOXE3OCAwIDEzMC41IDQ4LjV0NTIuNSAxMjIuNXEwIDQxIC04LjUgNzAuNXQtMjkuNSA1NS41dC02Mi41IDM5LjV0LTEwMy41IDEzLjVoLTExOHYtMzUwek00MDAgMjAwaDIxNnE4MCAwIDEyMSA1MC41dDQxIDEzMC41cTAgOTAgLTYyLjUgMTU0LjUgdC0xNTYuNSA2NC41aC0xNTl2LTQwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQ5OyIgZD0iTTg3NyAxMjAwbDIgLTU3cS04MyAtMTkgLTExNiAtNDUuNXQtNDAgLTY2LjVsLTEzMiAtODM5cS05IC00OSAxMyAtNjl0OTYgLTI2di05N2gtNTAwdjk3cTE4NiAxNiAyMDAgOThsMTczIDgzMnEzIDE3IDMgMzB0LTEuNSAyMi41dC05IDE3LjV0LTEzLjUgMTIuNXQtMjEuNSAxMHQtMjYgOC41dC0zMy41IDEwcS0xMyAzIC0xOSA1djU3aDQyNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDUwOyIgZD0iTTEzMDAgOTAwaC01MHEwIDIxIC00IDM3dC05LjUgMjYuNXQtMTggMTcuNXQtMjIgMTF0LTI4LjUgNS41dC0zMSAydC0zNyAwLjVoLTIwMHYtODUwcTAgLTIyIDI1IC0zNC41dDUwIC0xMy41bDI1IC0ydi0xMDBoLTQwMHYxMDBxNCAwIDExIDAuNXQyNCAzdDMwIDd0MjQgMTV0MTEgMjQuNXY4NTBoLTIwMHEtMjUgMCAtMzcgLTAuNXQtMzEgLTJ0LTI4LjUgLTUuNXQtMjIgLTExdC0xOCAtMTcuNXQtOS41IC0yNi41dC00IC0zN2gtNTB2MzAwIGgxMDAwdi0zMDB6TTE3NSAxMDAwaC03NXYtODAwaDc1bC0xMjUgLTE2N2wtMTI1IDE2N2g3NXY4MDBoLTc1bDEyNSAxNjd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1MTsiIGQ9Ik0xMTAwIDkwMGgtNTBxMCAyMSAtNCAzN3QtOS41IDI2LjV0LTE4IDE3LjV0LTIyIDExdC0yOC41IDUuNXQtMzEgMnQtMzcgMC41aC0yMDB2LTY1MHEwIC0yMiAyNSAtMzQuNXQ1MCAtMTMuNWwyNSAtMnYtMTAwaC00MDB2MTAwcTQgMCAxMSAwLjV0MjQgM3QzMCA3dDI0IDE1dDExIDI0LjV2NjUwaC0yMDBxLTI1IDAgLTM3IC0wLjV0LTMxIC0ydC0yOC41IC01LjV0LTIyIC0xMXQtMTggLTE3LjV0LTkuNSAtMjYuNXQtNCAtMzdoLTUwdjMwMCBoMTAwMHYtMzAwek0xMTY3IDUwbC0xNjcgLTEyNXY3NWgtODAwdi03NWwtMTY3IDEyNWwxNjcgMTI1di03NWg4MDB2NzV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1MjsiIGQ9Ik01MCAxMTAwaDYwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC02MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDgwMGgxMDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA1MDBoODAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTgwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgMjAwaDExMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTEwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1MzsiIGQ9Ik0yNTAgMTEwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNzAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA4MDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDAgcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMjUwIDUwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNzAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCAyMDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwIHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDU0OyIgZD0iTTUwMCA5NTB2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWg2MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNjAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXpNMTAwIDY1MHYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDEwMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41ek0zMDAgMzUwdjEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoODAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTgwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV6TTAgNTB2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDAgcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDU1OyIgZD0iTTUwIDExMDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA4MDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDAgcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgNTAwaDExMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgMjAwaDExMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTEwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1NjsiIGQ9Ik01MCAxMTAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTM1MCAxMTAwaDgwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC04MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA4MDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMzUwIDgwMGg4MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtODAwIHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgNTAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTM1MCA1MDBoODAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDAgcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC04MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDIwMGgxMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0zNTAgMjAwaDgwMCBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtODAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNTc7IiBkPSJNNDAwIDBoLTEwMHYxMTAwaDEwMHYtMTEwMHpNNTUwIDExMDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTUwIDgwMGg1MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTAwIHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMjY3IDU1MGwtMTY3IC0xMjV2NzVoLTIwMHYxMDBoMjAwdjc1ek01NTAgNTAwaDMwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0zMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTU1MCAyMDBoNjAwIHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC02MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1ODsiIGQ9Ik01MCAxMTAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTkwMCAwaC0xMDB2MTEwMGgxMDB2LTExMDB6TTUwIDgwMGg1MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTAwIHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMTEwMCA2MDBoMjAwdi0xMDBoLTIwMHYtNzVsLTE2NyAxMjVsMTY3IDEyNXYtNzV6TTUwIDUwMGgzMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMzAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCAyMDBoNjAwIHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC02MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1OTsiIGQ9Ik03NSAxMDAwaDc1MHEzMSAwIDUzIC0yMnQyMiAtNTN2LTY1MHEwIC0zMSAtMjIgLTUzdC01MyAtMjJoLTc1MHEtMzEgMCAtNTMgMjJ0LTIyIDUzdjY1MHEwIDMxIDIyIDUzdDUzIDIyek0xMjAwIDMwMGwtMzAwIDMwMGwzMDAgMzAwdi02MDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA2MDsiIGQ9Ik00NCAxMTAwaDExMTJxMTggMCAzMSAtMTN0MTMgLTMxdi0xMDEycTAgLTE4IC0xMyAtMzF0LTMxIC0xM2gtMTExMnEtMTggMCAtMzEgMTN0LTEzIDMxdjEwMTJxMCAxOCAxMyAzMXQzMSAxM3pNMTAwIDEwMDB2LTczN2wyNDcgMTgybDI5OCAtMTMxbC03NCAxNTZsMjkzIDMxOGwyMzYgLTI4OHY1MDBoLTEwMDB6TTM0MiA4ODRxNTYgMCA5NSAtMzl0MzkgLTk0LjV0LTM5IC05NXQtOTUgLTM5LjV0LTk1IDM5LjV0LTM5IDk1dDM5IDk0LjUgdDk1IDM5eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNjI7IiBkPSJNNjQ4IDExNjlxMTE3IDAgMjE2IC02MHQxNTYuNSAtMTYxdDU3LjUgLTIxOHEwIC0xMTUgLTcwIC0yNThxLTY5IC0xMDkgLTE1OCAtMjI1LjV0LTE0MyAtMTc5LjVsLTU0IC02MnEtOSA4IC0yNS41IDI0LjV0LTYzLjUgNjcuNXQtOTEgMTAzdC05OC41IDEyOHQtOTUuNSAxNDhxLTYwIDEzMiAtNjAgMjQ5cTAgODggMzQgMTY5LjV0OTEuNSAxNDJ0MTM3IDk2LjV0MTY2LjUgMzZ6TTY1Mi41IDk3NHEtOTEuNSAwIC0xNTYuNSAtNjUgdC02NSAtMTU3dDY1IC0xNTYuNXQxNTYuNSAtNjQuNXQxNTYuNSA2NC41dDY1IDE1Ni41dC02NSAxNTd0LTE1Ni41IDY1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNjM7IiBkPSJNNjAwIDExNzdxMTE3IDAgMjI0IC00NS41dDE4NC41IC0xMjN0MTIzIC0xODQuNXQ0NS41IC0yMjR0LTQ1LjUgLTIyNHQtMTIzIC0xODQuNXQtMTg0LjUgLTEyM3QtMjI0IC00NS41dC0yMjQgNDUuNXQtMTg0LjUgMTIzdC0xMjMgMTg0LjV0LTQ1LjUgMjI0dDQ1LjUgMjI0dDEyMyAxODQuNXQxODQuNSAxMjN0MjI0IDQ1LjV6TTYwMCAxNzN2ODU0cS0xMTYgMCAtMjE0LjUgLTU3dC0xNTUuNSAtMTU1LjV0LTU3IC0yMTQuNXQ1NyAtMjE0LjUgdDE1NS41IC0xNTUuNXQyMTQuNSAtNTd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA2NDsiIGQ9Ik01NTQgMTI5NXEyMSAtNzIgNTcuNSAtMTQzLjV0NzYgLTEzMHQ4MyAtMTE4dDgyLjUgLTExN3Q3MCAtMTE2dDQ5LjUgLTEyNnQxOC41IC0xMzYuNXEwIC03MSAtMjUuNSAtMTM1dC02OC41IC0xMTF0LTk5IC04MnQtMTE4LjUgLTU0dC0xMjUuNSAtMjNxLTg0IDUgLTE2MS41IDM0dC0xMzkuNSA3OC41dC05OSAxMjV0LTM3IDE2NC41cTAgNjkgMTggMTM2LjV0NDkuNSAxMjYuNXQ2OS41IDExNi41dDgxLjUgMTE3LjV0ODMuNSAxMTkgdDc2LjUgMTMxdDU4LjUgMTQzek0zNDQgNzEwcS0yMyAtMzMgLTQzLjUgLTcwLjV0LTQwLjUgLTEwMi41dC0xNyAtMTIzcTEgLTM3IDE0LjUgLTY5LjV0MzAgLTUydDQxIC0zN3QzOC41IC0yNC41dDMzIC0xNXEyMSAtNyAzMiAtMXQxMyAyMmw2IDM0cTIgMTAgLTIuNSAyMnQtMTMuNSAxOXEtNSA0IC0xNCAxMnQtMjkuNSA0MC41dC0zMi41IDczLjVxLTI2IDg5IDYgMjcxcTIgMTEgLTYgMTFxLTggMSAtMTUgLTEweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNjU7IiBkPSJNMTAwMCAxMDEzbDEwOCAxMTVxMiAxIDUgMnQxMyAydDIwLjUgLTF0MjUgLTkuNXQyOC41IC0yMS41cTIyIC0yMiAyNyAtNDN0MCAtMzJsLTYgLTEwbC0xMDggLTExNXpNMzUwIDExMDBoNDAwcTUwIDAgMTA1IC0xM2wtMTg3IC0xODdoLTM2OHEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNXYtNTAwcTAgLTQxIDI5LjUgLTcwLjV0NzAuNSAtMjkuNWg1MDBxNDEgMCA3MC41IDI5LjV0MjkuNSA3MC41djE4MmwyMDAgMjAwdi0zMzIgcTAgLTE2NSAtOTMuNSAtMjU3LjV0LTI1Ni41IC05Mi41aC00MDBxLTE2NSAwIC0yNTcuNSA5Mi41dC05Mi41IDI1Ny41djQwMHEwIDE2NSA5Mi41IDI1Ny41dDI1Ny41IDkyLjV6TTEwMDkgODAzbC0zNjIgLTM2MmwtMTYxIC01MGw1NSAxNzBsMzU1IDM1NXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDY2OyIgZD0iTTM1MCAxMTAwaDM2MXEtMTY0IC0xNDYgLTIxNiAtMjAwaC0xOTVxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoNTAwcTQxIDAgNzAuNSAyOS41dDI5LjUgNzAuNWwyMDAgMTUzdi0xMDNxMCAtMTY1IC05Mi41IC0yNTcuNXQtMjU3LjUgLTkyLjVoLTQwMHEtMTY1IDAgLTI1Ny41IDkyLjV0LTkyLjUgMjU3LjV2NDAwcTAgMTY1IDkyLjUgMjU3LjV0MjU3LjUgOTIuNXogTTgyNCAxMDczbDMzOSAtMzAxcTggLTcgOCAtMTcuNXQtOCAtMTcuNWwtMzQwIC0zMDZxLTcgLTYgLTEyLjUgLTR0LTYuNSAxMXYyMDNxLTI2IDEgLTU0LjUgMHQtNzguNSAtNy41dC05MiAtMTcuNXQtODYgLTM1dC03MCAtNTdxMTAgNTkgMzMgMTA4dDUxLjUgODEuNXQ2NSA1OC41dDY4LjUgNDAuNXQ2NyAyNC41dDU2IDEzLjV0NDAgNC41djIxMHExIDEwIDYuNSAxMi41dDEzLjUgLTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDY3OyIgZD0iTTM1MCAxMTAwaDM1MHE2MCAwIDEyNyAtMjNsLTE3OCAtMTc3aC0zNDlxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoNTAwcTQxIDAgNzAuNSAyOS41dDI5LjUgNzAuNXY2OWwyMDAgMjAwdi0yMTlxMCAtMTY1IC05Mi41IC0yNTcuNXQtMjU3LjUgLTkyLjVoLTQwMHEtMTY1IDAgLTI1Ny41IDkyLjV0LTkyLjUgMjU3LjV2NDAwcTAgMTY1IDkyLjUgMjU3LjV0MjU3LjUgOTIuNXogTTY0MyA2MzlsMzk1IDM5NXE3IDcgMTcuNSA3dDE3LjUgLTdsMTAxIC0xMDFxNyAtNyA3IC0xNy41dC03IC0xNy41bC01MzEgLTUzMnEtNyAtNyAtMTcuNSAtN3QtMTcuNSA3bC0yNDggMjQ4cS03IDcgLTcgMTcuNXQ3IDE3LjVsMTAxIDEwMXE3IDcgMTcuNSA3dDE3LjUgLTdsMTExIC0xMTFxOCAtNyAxOCAtN3QxOCA3eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNjg7IiBkPSJNMzE4IDkxOGwyNjQgMjY0cTggOCAxOCA4dDE4IC04bDI2MCAtMjY0cTcgLTggNC41IC0xM3QtMTIuNSAtNWgtMTcwdi0yMDBoMjAwdjE3M3EwIDEwIDUgMTJ0MTMgLTVsMjY0IC0yNjBxOCAtNyA4IC0xNy41dC04IC0xNy41bC0yNjQgLTI2NXEtOCAtNyAtMTMgLTV0LTUgMTJ2MTczaC0yMDB2LTIwMGgxNzBxMTAgMCAxMi41IC01dC00LjUgLTEzbC0yNjAgLTI2NHEtOCAtOCAtMTggLTh0LTE4IDhsLTI2NCAyNjRxLTggOCAtNS41IDEzIHQxMi41IDVoMTc1djIwMGgtMjAwdi0xNzNxMCAtMTAgLTUgLTEydC0xMyA1bC0yNjQgMjY1cS04IDcgLTggMTcuNXQ4IDE3LjVsMjY0IDI2MHE4IDcgMTMgNXQ1IC0xMnYtMTczaDIwMHYyMDBoLTE3NXEtMTAgMCAtMTIuNSA1dDUuNSAxM3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDY5OyIgZD0iTTI1MCAxMTAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDM4bDQ2NCA0NTNxMTUgMTQgMjUuNSAxMHQxMC41IC0yNXYtMTAwMHEwIC0yMSAtMTAuNSAtMjV0LTI1LjUgMTBsLTQ2NCA0NTN2LTQzOHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDcwOyIgZD0iTTUwIDExMDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di00MzhsNDY0IDQ1M3ExNSAxNCAyNS41IDEwdDEwLjUgLTI1di00MzhsNDY0IDQ1M3ExNSAxNCAyNS41IDEwdDEwLjUgLTI1di0xMDAwcTAgLTIxIC0xMC41IC0yNXQtMjUuNSAxMGwtNDY0IDQ1M3YtNDM4cTAgLTIxIC0xMC41IC0yNXQtMjUuNSAxMGwtNDY0IDQ1M3YtNDM4cTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNSB0LTE0LjUgMzUuNXYxMDAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDcxOyIgZD0iTTEyMDAgMTA1MHYtMTAwMHEwIC0yMSAtMTAuNSAtMjV0LTI1LjUgMTBsLTQ2NCA0NTN2LTQzOHEwIC0yMSAtMTAuNSAtMjV0LTI1LjUgMTBsLTQ5MiA0ODBxLTE1IDE0IC0xNSAzNXQxNSAzNWw0OTIgNDgwcTE1IDE0IDI1LjUgMTB0MTAuNSAtMjV2LTQzOGw0NjQgNDUzcTE1IDE0IDI1LjUgMTB0MTAuNSAtMjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA3MjsiIGQ9Ik0yNDMgMTA3NGw4MTQgLTQ5OHExOCAtMTEgMTggLTI2dC0xOCAtMjZsLTgxNCAtNDk4cS0xOCAtMTEgLTMwLjUgLTR0LTEyLjUgMjh2MTAwMHEwIDIxIDEyLjUgMjh0MzAuNSAtNHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDczOyIgZD0iTTI1MCAxMDAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtODAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djgwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTY1MCAxMDAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtODAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djgwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNzQ7IiBkPSJNMTEwMCA5NTB2LTgwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtODAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY4MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDgwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDc1OyIgZD0iTTUwMCA2MTJ2NDM4cTAgMjEgMTAuNSAyNXQyNS41IC0xMGw0OTIgLTQ4MHExNSAtMTQgMTUgLTM1dC0xNSAtMzVsLTQ5MiAtNDgwcS0xNSAtMTQgLTI1LjUgLTEwdC0xMC41IDI1djQzOGwtNDY0IC00NTNxLTE1IC0xNCAtMjUuNSAtMTB0LTEwLjUgMjV2MTAwMHEwIDIxIDEwLjUgMjV0MjUuNSAtMTB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA3NjsiIGQ9Ik0xMDQ4IDExMDJsMTAwIDFxMjAgMCAzNSAtMTQuNXQxNSAtMzUuNWw1IC0xMDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41bC0xMDAgLTFxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41bC0yIDQzN2wtNDYzIC00NTRxLTE0IC0xNSAtMjQuNSAtMTAuNXQtMTAuNSAyNS41bC0yIDQzN2wtNDYyIC00NTVxLTE1IC0xNCAtMjUuNSAtOS41dC0xMC41IDI0LjVsLTUgMTAwMHEwIDIxIDEwLjUgMjUuNXQyNS41IC0xMC41bDQ2NiAtNDUwIGwtMiA0MzhxMCAyMCAxMC41IDI0LjV0MjUuNSAtOS41bDQ2NiAtNDUxbC0yIDQzOHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA3NzsiIGQ9Ik04NTAgMTEwMGgxMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NDM4bC00NjQgLTQ1M3EtMTUgLTE0IC0yNS41IC0xMHQtMTAuNSAyNXYxMDAwcTAgMjEgMTAuNSAyNXQyNS41IC0xMGw0NjQgLTQ1M3Y0MzhxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNzg7IiBkPSJNNjg2IDEwODFsNTAxIC01NDBxMTUgLTE1IDEwLjUgLTI2dC0yNi41IC0xMWgtMTA0MnEtMjIgMCAtMjYuNSAxMXQxMC41IDI2bDUwMSA1NDBxMTUgMTUgMzYgMTV0MzYgLTE1ek0xNTAgNDAwaDEwMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDc5OyIgZD0iTTg4NSA5MDBsLTM1MiAtMzUzbDM1MiAtMzUzbC0xOTcgLTE5OGwtNTUyIDU1Mmw1NTIgNTUweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwODA7IiBkPSJNMTA2NCA1NDdsLTU1MSAtNTUxbC0xOTggMTk4bDM1MyAzNTNsLTM1MyAzNTNsMTk4IDE5OHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDgxOyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02NTAgOTAwaC0xMDBxLTIxIDAgLTM1LjUgLTE0LjV0LTE0LjUgLTM1LjV2LTE1MGgtMTUwIHEtMjEgMCAtMzUuNSAtMTQuNXQtMTQuNSAtMzUuNXYtMTAwcTAgLTIxIDE0LjUgLTM1LjV0MzUuNSAtMTQuNWgxNTB2LTE1MHEwIC0yMSAxNC41IC0zNS41dDM1LjUgLTE0LjVoMTAwcTIxIDAgMzUuNSAxNC41dDE0LjUgMzUuNXYxNTBoMTUwcTIxIDAgMzUuNSAxNC41dDE0LjUgMzUuNXYxMDBxMCAyMSAtMTQuNSAzNS41dC0zNS41IDE0LjVoLTE1MHYxNTBxMCAyMSAtMTQuNSAzNS41dC0zNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA4MjsiIGQ9Ik02MDAgMTE3N3ExMTcgMCAyMjQgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNHQtNDUuNSAtMjI0dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjQgLTQ1LjV0LTIyNCA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjR0NDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXpNODUwIDcwMGgtNTAwcS0yMSAwIC0zNS41IC0xNC41dC0xNC41IC0zNS41di0xMDBxMCAtMjEgMTQuNSAtMzUuNSB0MzUuNSAtMTQuNWg1MDBxMjEgMCAzNS41IDE0LjV0MTQuNSAzNS41djEwMHEwIDIxIC0xNC41IDM1LjV0LTM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDgzOyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek03NDEuNSA5MTNxLTEyLjUgMCAtMjEuNSAtOWwtMTIwIC0xMjBsLTEyMCAxMjBxLTkgOSAtMjEuNSA5IHQtMjEuNSAtOWwtMTQxIC0xNDFxLTkgLTkgLTkgLTIxLjV0OSAtMjEuNWwxMjAgLTEyMGwtMTIwIC0xMjBxLTkgLTkgLTkgLTIxLjV0OSAtMjEuNWwxNDEgLTE0MXE5IC05IDIxLjUgLTl0MjEuNSA5bDEyMCAxMjBsMTIwIC0xMjBxOSAtOSAyMS41IC05dDIxLjUgOWwxNDEgMTQxcTkgOSA5IDIxLjV0LTkgMjEuNWwtMTIwIDEyMGwxMjAgMTIwcTkgOSA5IDIxLjV0LTkgMjEuNWwtMTQxIDE0MXEtOSA5IC0yMS41IDl6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA4NDsiIGQ9Ik02MDAgMTE3N3ExMTcgMCAyMjQgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNHQtNDUuNSAtMjI0dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjQgLTQ1LjV0LTIyNCA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjR0NDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXpNNTQ2IDYyM2wtODQgODVxLTcgNyAtMTcuNSA3dC0xOC41IC03bC0xMzkgLTEzOXEtNyAtOCAtNyAtMTh0NyAtMTggbDI0MiAtMjQxcTcgLTggMTcuNSAtOHQxNy41IDhsMzc1IDM3NXE3IDcgNyAxNy41dC03IDE4LjVsLTEzOSAxMzlxLTcgNyAtMTcuNSA3dC0xNy41IC03eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwODU7IiBkPSJNNjAwIDExNzdxMTE3IDAgMjI0IC00NS41dDE4NC41IC0xMjN0MTIzIC0xODQuNXQ0NS41IC0yMjR0LTQ1LjUgLTIyNHQtMTIzIC0xODQuNXQtMTg0LjUgLTEyM3QtMjI0IC00NS41dC0yMjQgNDUuNXQtMTg0LjUgMTIzdC0xMjMgMTg0LjV0LTQ1LjUgMjI0dDQ1LjUgMjI0dDEyMyAxODQuNXQxODQuNSAxMjN0MjI0IDQ1LjV6TTU4OCA5NDFxLTI5IDAgLTU5IC01LjV0LTYzIC0yMC41dC01OCAtMzguNXQtNDEuNSAtNjN0LTE2LjUgLTg5LjUgcTAgLTI1IDIwIC0yNWgxMzFxMzAgLTUgMzUgMTFxNiAyMCAyMC41IDI4dDQ1LjUgOHEyMCAwIDMxLjUgLTEwLjV0MTEuNSAtMjguNXEwIC0yMyAtNyAtMzR0LTI2IC0xOHEtMSAwIC0xMy41IC00dC0xOS41IC03LjV0LTIwIC0xMC41dC0yMiAtMTd0LTE4LjUgLTI0dC0xNS41IC0zNXQtOCAtNDZxLTEgLTggNS41IC0xNi41dDIwLjUgLTguNWgxNzNxNyAwIDIyIDh0MzUgMjh0MzcuNSA0OHQyOS41IDc0dDEyIDEwMHEwIDQ3IC0xNyA4MyB0LTQyLjUgNTd0LTU5LjUgMzQuNXQtNjQgMTh0LTU5IDQuNXpNNjc1IDQwMGgtMTUwcS0xMCAwIC0xNy41IC03LjV0LTcuNSAtMTcuNXYtMTUwcTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoMTUwcTEwIDAgMTcuNSA3LjV0Ny41IDE3LjV2MTUwcTAgMTAgLTcuNSAxNy41dC0xNy41IDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDg2OyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02NzUgMTAwMGgtMTUwcS0xMCAwIC0xNy41IC03LjV0LTcuNSAtMTcuNXYtMTUwcTAgLTEwIDcuNSAtMTcuNSB0MTcuNSAtNy41aDE1MHExMCAwIDE3LjUgNy41dDcuNSAxNy41djE1MHEwIDEwIC03LjUgMTcuNXQtMTcuNSA3LjV6TTY3NSA3MDBoLTI1MHEtMTAgMCAtMTcuNSAtNy41dC03LjUgLTE3LjV2LTUwcTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoNzV2LTIwMGgtNzVxLTEwIDAgLTE3LjUgLTcuNXQtNy41IC0xNy41di01MHEwIC0xMCA3LjUgLTE3LjV0MTcuNSAtNy41aDM1MHExMCAwIDE3LjUgNy41dDcuNSAxNy41djUwcTAgMTAgLTcuNSAxNy41IHQtMTcuNSA3LjVoLTc1djI3NXEwIDEwIC03LjUgMTcuNXQtMTcuNSA3LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA4NzsiIGQ9Ik01MjUgMTIwMGgxNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xOTRxMTAzIC0yNyAxNzguNSAtMTAyLjV0MTAyLjUgLTE3OC41aDE5NHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE5NHEtMjcgLTEwMyAtMTAyLjUgLTE3OC41dC0xNzguNSAtMTAyLjV2LTE5NHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE5NCBxLTEwMyAyNyAtMTc4LjUgMTAyLjV0LTEwMi41IDE3OC41aC0xOTRxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgxOTRxMjcgMTAzIDEwMi41IDE3OC41dDE3OC41IDEwMi41djE5NHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek03MDAgODkzdi0xNjhxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0xNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNjhxLTY4IC0yMyAtMTE5IC03NCB0LTc0IC0xMTloMTY4cTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMTY4cTIzIC02OCA3NCAtMTE5dDExOSAtNzR2MTY4cTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoMTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTY4cTY4IDIzIDExOSA3NHQ3NCAxMTloLTE2OHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41aDE2OCBxLTIzIDY4IC03NCAxMTl0LTExOSA3NHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDg4OyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02MDAgMTAyN3EtMTE2IDAgLTIxNC41IC01N3QtMTU1LjUgLTE1NS41dC01NyAtMjE0LjV0NTcgLTIxNC41IHQxNTUuNSAtMTU1LjV0MjE0LjUgLTU3dDIxNC41IDU3dDE1NS41IDE1NS41dDU3IDIxNC41dC01NyAyMTQuNXQtMTU1LjUgMTU1LjV0LTIxNC41IDU3ek03NTkgODIzbDY0IC02NHE3IC03IDcgLTE3LjV0LTcgLTE3LjVsLTEyNCAtMTI0bDEyNCAtMTI0cTcgLTcgNyAtMTcuNXQtNyAtMTcuNWwtNjQgLTY0cS03IC03IC0xNy41IC03dC0xNy41IDdsLTEyNCAxMjRsLTEyNCAtMTI0cS03IC03IC0xNy41IC03dC0xNy41IDdsLTY0IDY0IHEtNyA3IC03IDE3LjV0NyAxNy41bDEyNCAxMjRsLTEyNCAxMjRxLTcgNyAtNyAxNy41dDcgMTcuNWw2NCA2NHE3IDcgMTcuNSA3dDE3LjUgLTdsMTI0IC0xMjRsMTI0IDEyNHE3IDcgMTcuNSA3dDE3LjUgLTd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA4OTsiIGQ9Ik02MDAgMTE3N3ExMTcgMCAyMjQgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNHQtNDUuNSAtMjI0dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjQgLTQ1LjV0LTIyNCA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjR0NDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXpNNjAwIDEwMjdxLTExNiAwIC0yMTQuNSAtNTd0LTE1NS41IC0xNTUuNXQtNTcgLTIxNC41dDU3IC0yMTQuNSB0MTU1LjUgLTE1NS41dDIxNC41IC01N3QyMTQuNSA1N3QxNTUuNSAxNTUuNXQ1NyAyMTQuNXQtNTcgMjE0LjV0LTE1NS41IDE1NS41dC0yMTQuNSA1N3pNNzgyIDc4OGwxMDYgLTEwNnE3IC03IDcgLTE3LjV0LTcgLTE3LjVsLTMyMCAtMzIxcS04IC03IC0xOCAtN3QtMTggN2wtMjAyIDIwM3EtOCA3IC04IDE3LjV0OCAxNy41bDEwNiAxMDZxNyA4IDE3LjUgOHQxNy41IC04bDc5IC03OWwxOTcgMTk3cTcgNyAxNy41IDd0MTcuNSAtN3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDkwOyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02MDAgMTAyN3EtMTE2IDAgLTIxNC41IC01N3QtMTU1LjUgLTE1NS41dC01NyAtMjE0LjVxMCAtMTIwIDY1IC0yMjUgbDU4NyA1ODdxLTEwNSA2NSAtMjI1IDY1ek05NjUgODE5bC01ODQgLTU4NHExMDQgLTYyIDIxOSAtNjJxMTE2IDAgMjE0LjUgNTd0MTU1LjUgMTU1LjV0NTcgMjE0LjVxMCAxMTUgLTYyIDIxOXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDkxOyIgZD0iTTM5IDU4Mmw1MjIgNDI3cTE2IDEzIDI3LjUgOHQxMS41IC0yNnYtMjkxaDU1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC01NTB2LTI5MXEwIC0yMSAtMTEuNSAtMjZ0LTI3LjUgOGwtNTIyIDQyN3EtMTYgMTMgLTE2IDMydDE2IDMyeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwOTI7IiBkPSJNNjM5IDEwMDlsNTIyIC00MjdxMTYgLTEzIDE2IC0zMnQtMTYgLTMybC01MjIgLTQyN3EtMTYgLTEzIC0yNy41IC04dC0xMS41IDI2djI5MWgtNTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYyMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDU1MHYyOTFxMCAyMSAxMS41IDI2dDI3LjUgLTh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA5MzsiIGQ9Ik02ODIgMTE2MWw0MjcgLTUyMnExMyAtMTYgOCAtMjcuNXQtMjYgLTExLjVoLTI5MXYtNTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djU1MGgtMjkxcS0yMSAwIC0yNiAxMS41dDggMjcuNWw0MjcgNTIycTEzIDE2IDMyIDE2dDMyIC0xNnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDk0OyIgZD0iTTU1MCAxMjAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTUwaDI5MXEyMSAwIDI2IC0xMS41dC04IC0yNy41bC00MjcgLTUyMnEtMTMgLTE2IC0zMiAtMTZ0LTMyIDE2bC00MjcgNTIycS0xMyAxNiAtOCAyNy41dDI2IDExLjVoMjkxdjU1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA5NTsiIGQ9Ik02MzkgMTEwOWw1MjIgLTQyN3ExNiAtMTMgMTYgLTMydC0xNiAtMzJsLTUyMiAtNDI3cS0xNiAtMTMgLTI3LjUgLTh0LTExLjUgMjZ2MjkxcS05NCAtMiAtMTgyIC0yMHQtMTcwLjUgLTUydC0xNDcgLTkyLjV0LTEwMC41IC0xMzUuNXE1IDEwNSAyNyAxOTMuNXQ2Ny41IDE2N3QxMTMgMTM1dDE2NyA5MS41dDIyNS41IDQydjI2MnEwIDIxIDExLjUgMjZ0MjcuNSAtOHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDk2OyIgZD0iTTg1MCAxMjAwaDMwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMzAwcTAgLTIxIC0xMC41IC0yNXQtMjQuNSAxMGwtOTQgOTRsLTI0OSAtMjQ5cS04IC03IC0xOCAtN3QtMTggN2wtMTA2IDEwNnEtNyA4IC03IDE4dDcgMThsMjQ5IDI0OWwtOTQgOTRxLTE0IDE0IC0xMCAyNC41dDI1IDEwLjV6TTM1MCAwaC0zMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djMwMHEwIDIxIDEwLjUgMjV0MjQuNSAtMTBsOTQgLTk0bDI0OSAyNDkgcTggNyAxOCA3dDE4IC03bDEwNiAtMTA2cTcgLTggNyAtMTh0LTcgLTE4bC0yNDkgLTI0OWw5NCAtOTRxMTQgLTE0IDEwIC0yNC41dC0yNSAtMTAuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDk3OyIgZD0iTTEwMTQgMTEyMGwxMDYgLTEwNnE3IC04IDcgLTE4dC03IC0xOGwtMjQ5IC0yNDlsOTQgLTk0cTE0IC0xNCAxMCAtMjQuNXQtMjUgLTEwLjVoLTMwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MzAwcTAgMjEgMTAuNSAyNXQyNC41IC0xMGw5NCAtOTRsMjQ5IDI0OXE4IDcgMTggN3QxOCAtN3pNMjUwIDYwMGgzMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTMwMHEwIC0yMSAtMTAuNSAtMjV0LTI0LjUgMTBsLTk0IDk0IGwtMjQ5IC0yNDlxLTggLTcgLTE4IC03dC0xOCA3bC0xMDYgMTA2cS03IDggLTcgMTh0NyAxOGwyNDkgMjQ5bC05NCA5NHEtMTQgMTQgLTEwIDI0LjV0MjUgMTAuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTAxOyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek03MDQgOTAwaC0yMDhxLTIwIDAgLTMyIC0xNC41dC04IC0zNC41bDU4IC0zMDJxNCAtMjAgMjEuNSAtMzQuNSB0MzcuNSAtMTQuNWg1NHEyMCAwIDM3LjUgMTQuNXQyMS41IDM0LjVsNTggMzAycTQgMjAgLTggMzQuNXQtMzIgMTQuNXpNNjc1IDQwMGgtMTUwcS0xMCAwIC0xNy41IC03LjV0LTcuNSAtMTcuNXYtMTUwcTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoMTUwcTEwIDAgMTcuNSA3LjV0Ny41IDE3LjV2MTUwcTAgMTAgLTcuNSAxNy41dC0xNy41IDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTAyOyIgZD0iTTI2MCAxMjAwcTkgMCAxOSAtMnQxNSAtNGw1IC0ycTIyIC0xMCA0NCAtMjNsMTk2IC0xMThxMjEgLTEzIDM2IC0yNHEyOSAtMjEgMzcgLTEycTExIDEzIDQ5IDM1bDE5NiAxMThxMjIgMTMgNDUgMjNxMTcgNyAzOCA3cTIzIDAgNDcgLTE2LjV0MzcgLTMzLjVsMTMgLTE2cTE0IC0yMSAxOCAtNDVsMjUgLTEyM2w4IC00NHExIC05IDguNSAtMTQuNXQxNy41IC01LjVoNjFxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di01MCBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC01MHEtMTAgMCAtMTcuNSAtNy41dC03LjUgLTE3LjV2LTE3NWgtNDAwdjMwMGgtMjAwdi0zMDBoLTQwMHYxNzVxMCAxMCAtNy41IDE3LjV0LTE3LjUgNy41aC01MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoNjFxMTEgMCAxOCAzdDcgOHEwIDQgOSA1MmwyNSAxMjhxNSAyNSAxOSA0NXEyIDMgNSA3dDEzLjUgMTV0MjEuNSAxOS41dDI2LjUgMTUuNSB0MjkuNSA3ek05MTUgMTA3OWwtMTY2IC0xNjJxLTcgLTcgLTUgLTEydDEyIC01aDIxOXExMCAwIDE1IDd0MiAxN2wtNTEgMTQ5cS0zIDEwIC0xMSAxMnQtMTUgLTZ6TTQ2MyA5MTdsLTE3NyAxNTdxLTggNyAtMTYgNXQtMTEgLTEybC01MSAtMTQzcS0zIC0xMCAyIC0xN3QxNSAtN2gyMzFxMTEgMCAxMi41IDV0LTUuNSAxMnpNNTAwIDBoLTM3NXEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djM3NWg0MDB2LTQwMHpNMTEwMCA0MDB2LTM3NSBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0zNzV2NDAwaDQwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTAzOyIgZD0iTTExNjUgMTE5MHE4IDMgMjEgLTYuNXQxMyAtMTcuNXEtMiAtMTc4IC0yNC41IC0zMjMuNXQtNTUuNSAtMjQ1LjV0LTg3IC0xNzQuNXQtMTAyLjUgLTExOC41dC0xMTggLTY4LjV0LTExOC41IC0zM3QtMTIwIC00LjV0LTEwNSA5LjV0LTkwIDE2LjVxLTYxIDEyIC03OCAxMXEtNCAxIC0xMi41IDB0LTM0IC0xNC41dC01Mi41IC00MC41bC0xNTMgLTE1M3EtMjYgLTI0IC0zNyAtMTQuNXQtMTEgNDMuNXEwIDY0IDQyIDEwMnE4IDggNTAuNSA0NSB0NjYuNSA1OHExOSAxNyAzNSA0N3QxMyA2MXEtOSA1NSAtMTAgMTAyLjV0NyAxMTF0MzcgMTMwdDc4IDEyOS41cTM5IDUxIDgwIDg4dDg5LjUgNjMuNXQ5NC41IDQ1dDExMy41IDM2dDEyOSAzMXQxNTcuNSAzN3QxODIgNDcuNXpNMTExNiAxMDk4cS04IDkgLTIyLjUgLTN0LTQ1LjUgLTUwcS0zOCAtNDcgLTExOSAtMTAzLjV0LTE0MiAtODkuNWwtNjIgLTMzcS01NiAtMzAgLTEwMiAtNTd0LTEwNCAtNjh0LTEwMi41IC04MC41dC04NS41IC05MSB0LTY0IC0xMDQuNXEtMjQgLTU2IC0zMSAtODZ0MiAtMzJ0MzEuNSAxNy41dDU1LjUgNTkuNXEyNSAzMCA5NCA3NS41dDEyNS41IDc3LjV0MTQ3LjUgODFxNzAgMzcgMTE4LjUgNjl0MTAyIDc5LjV0OTkgMTExdDg2LjUgMTQ4LjVxMjIgNTAgMjQgNjB0LTYgMTl6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEwNDsiIGQ9Ik02NTMgMTIzMXEtMzkgLTY3IC01NC41IC0xMzF0LTEwLjUgLTExNC41dDI0LjUgLTk2LjV0NDcuNSAtODB0NjMuNSAtNjIuNXQ2OC41IC00Ni41dDY1IC0zMHEtNCA3IC0xNy41IDM1dC0xOC41IDM5LjV0LTE3IDM5LjV0LTE3IDQzdC0xMyA0MnQtOS41IDQ0LjV0LTIgNDJ0NCA0M3QxMy41IDM5dDIzIDM4LjVxOTYgLTQyIDE2NSAtMTA3LjV0MTA1IC0xMzh0NTIgLTE1NnQxMyAtMTU5dC0xOSAtMTQ5LjVxLTEzIC01NSAtNDQgLTEwNi41IHQtNjggLTg3dC03OC41IC02NC41dC03Mi41IC00NXQtNTMgLTIycS03MiAtMjIgLTEyNyAtMTFxLTMxIDYgLTEzIDE5cTYgMyAxNyA3cTEzIDUgMzIuNSAyMXQ0MSA0NHQzOC41IDYzLjV0MjEuNSA4MS41dC02LjUgOTQuNXQtNTAgMTA3dC0xMDQgMTE1LjVxMTAgLTEwNCAtMC41IC0xODl0LTM3IC0xNDAuNXQtNjUgLTkzdC04NCAtNTJ0LTkzLjUgLTExdC05NSAyNC41cS04MCAzNiAtMTMxLjUgMTE0dC01My41IDE3MXEtMiAyMyAwIDQ5LjUgdDQuNSA1Mi41dDEzLjUgNTZ0MjcuNSA2MHQ0NiA2NC41dDY5LjUgNjguNXEtOCAtNTMgLTUgLTEwMi41dDE3LjUgLTkwdDM0IC02OC41dDQ0LjUgLTM5dDQ5IC0ycTMxIDEzIDM4LjUgMzZ0LTQuNSA1NXQtMjkgNjQuNXQtMzYgNzV0LTI2IDc1LjVxLTE1IDg1IDIgMTYxLjV0NTMuNSAxMjguNXQ4NS41IDkyLjV0OTMuNSA2MXQ4MS41IDI1LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEwNTsiIGQ9Ik02MDAgMTA5NHE4MiAwIDE2MC41IC0yMi41dDE0MCAtNTl0MTE2LjUgLTgyLjV0OTQuNSAtOTV0NjggLTk1dDQyLjUgLTgyLjV0MTQgLTU3LjV0LTE0IC01Ny41dC00MyAtODIuNXQtNjguNSAtOTV0LTk0LjUgLTk1dC0xMTYuNSAtODIuNXQtMTQwIC01OXQtMTU5LjUgLTIyLjV0LTE1OS41IDIyLjV0LTE0MCA1OXQtMTE2LjUgODIuNXQtOTQuNSA5NXQtNjguNSA5NXQtNDMgODIuNXQtMTQgNTcuNXQxNCA1Ny41dDQyLjUgODIuNXQ2OCA5NSB0OTQuNSA5NXQxMTYuNSA4Mi41dDE0MCA1OXQxNjAuNSAyMi41ek04ODggODI5cS0xNSAxNSAtMTggMTJ0NSAtMjJxMjUgLTU3IDI1IC0xMTlxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4dC0yMTIgODh0LTg4IDIxMnEwIDU5IDIzIDExNHE4IDE5IDQuNSAyMnQtMTcuNSAtMTJxLTcwIC02OSAtMTYwIC0xODRxLTEzIC0xNiAtMTUgLTQwLjV0OSAtNDIuNXEyMiAtMzYgNDcgLTcxdDcwIC04MnQ5Mi41IC04MXQxMTMgLTU4LjV0MTMzLjUgLTI0LjUgdDEzMy41IDI0dDExMyA1OC41dDkyLjUgODEuNXQ3MCA4MS41dDQ3IDcwLjVxMTEgMTggOSA0Mi41dC0xNCA0MS41cS05MCAxMTcgLTE2MyAxODl6TTQ0OCA3MjdsLTM1IC0zNnEtMTUgLTE1IC0xOS41IC0zOC41dDQuNSAtNDEuNXEzNyAtNjggOTMgLTExNnExNiAtMTMgMzguNSAtMTF0MzYuNSAxN2wzNSAzNHExNCAxNSAxMi41IDMzLjV0LTE2LjUgMzMuNXEtNDQgNDQgLTg5IDExN3EtMTEgMTggLTI4IDIwdC0zMiAtMTJ6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEwNjsiIGQ9Ik01OTIgMGgtMTQ4bDMxIDEyMHEtOTEgMjAgLTE3NS41IDY4LjV0LTE0My41IDEwNi41dC0xMDMuNSAxMTl0LTY2LjUgMTEwdC0yMiA3NnEwIDIxIDE0IDU3LjV0NDIuNSA4Mi41dDY4IDk1dDk0LjUgOTV0MTE2LjUgODIuNXQxNDAgNTl0MTYwLjUgMjIuNXE2MSAwIDEyNiAtMTVsMzIgMTIxaDE0OHpNOTQ0IDc3MGw0NyAxODFxMTA4IC04NSAxNzYuNSAtMTkydDY4LjUgLTE1OXEwIC0yNiAtMTkuNSAtNzF0LTU5LjUgLTEwMnQtOTMgLTExMiB0LTEyOSAtMTA0LjV0LTE1OCAtNzUuNWw0NiAxNzNxNzcgNDkgMTM2IDExN3Q5NyAxMzFxMTEgMTggOSA0Mi41dC0xNCA0MS41cS01NCA3MCAtMTA3IDEzMHpNMzEwIDgyNHEtNzAgLTY5IC0xNjAgLTE4NHEtMTMgLTE2IC0xNSAtNDAuNXQ5IC00Mi41cTE4IC0zMCAzOSAtNjB0NTcgLTcwLjV0NzQgLTczdDkwIC02MXQxMDUgLTQxLjVsNDEgMTU0cS0xMDcgMTggLTE3OC41IDEwMS41dC03MS41IDE5My41cTAgNTkgMjMgMTE0cTggMTkgNC41IDIyIHQtMTcuNSAtMTJ6TTQ0OCA3MjdsLTM1IC0zNnEtMTUgLTE1IC0xOS41IC0zOC41dDQuNSAtNDEuNXEzNyAtNjggOTMgLTExNnExNiAtMTMgMzguNSAtMTF0MzYuNSAxN2wxMiAxMWwyMiA4NmwtMyA0cS00NCA0NCAtODkgMTE3cS0xMSAxOCAtMjggMjB0LTMyIC0xMnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTA3OyIgZD0iTS05MCAxMDBsNjQyIDEwNjZxMjAgMzEgNDggMjguNXQ0OCAtMzUuNWw2NDIgLTEwNTZxMjEgLTMyIDcuNSAtNjcuNXQtNTAuNSAtMzUuNWgtMTI5NHEtMzcgMCAtNTAuNSAzNHQ3LjUgNjZ6TTE1NSAyMDBoMzQ1djc1cTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoMTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNzVoMzQ1bC00NDUgNzIzek00OTYgNzAwaDIwOHEyMCAwIDMyIC0xNC41dDggLTM0LjVsLTU4IC0yNTIgcS00IC0yMCAtMjEuNSAtMzQuNXQtMzcuNSAtMTQuNWgtNTRxLTIwIDAgLTM3LjUgMTQuNXQtMjEuNSAzNC41bC01OCAyNTJxLTQgMjAgOCAzNC41dDMyIDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEwODsiIGQ9Ik02NTAgMTIwMHE2MiAwIDEwNiAtNDR0NDQgLTEwNnYtMzM5bDM2MyAtMzI1cTE1IC0xNCAyNiAtMzguNXQxMSAtNDQuNXYtNDFxMCAtMjAgLTEyIC0yNi41dC0yOSA1LjVsLTM1OSAyNDl2LTI2M3ExMDAgLTkzIDEwMCAtMTEzdi02NHEwIC0yMSAtMTMgLTI5dC0zMiAxbC0yMDUgMTI4bC0yMDUgLTEyOHEtMTkgLTkgLTMyIC0xdC0xMyAyOXY2NHEwIDIwIDEwMCAxMTN2MjYzbC0zNTkgLTI0OXEtMTcgLTEyIC0yOSAtNS41dC0xMiAyNi41djQxIHEwIDIwIDExIDQ0LjV0MjYgMzguNWwzNjMgMzI1djMzOXEwIDYyIDQ0IDEwNnQxMDYgNDR6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEwOTsiIGQ9Ik04NTAgMTIwMGgxMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTUwaDUwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xNTBoLTExMDB2MTUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWg1MHY1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGg1MDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0xMTAwIDgwMHYtNzUwcTAgLTIxIC0xNC41IC0zNS41IHQtMzUuNSAtMTQuNWgtMTAwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NzUwaDExMDB6TTEwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTMwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTUwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTcwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTkwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTEwMCA0MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTMwMCA0MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTUwMCA0MDAgdi0xMDBoMTAwdjEwMGgtMTAwek03MDAgNDAwdi0xMDBoMTAwdjEwMGgtMTAwek05MDAgNDAwdi0xMDBoMTAwdjEwMGgtMTAwek0xMDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAwek0zMDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAwek01MDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAwek03MDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAwek05MDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTA7IiBkPSJNMTEzNSAxMTY1bDI0OSAtMjMwcTE1IC0xNCAxNSAtMzV0LTE1IC0zNWwtMjQ5IC0yMzBxLTE0IC0xNCAtMjQuNSAtMTB0LTEwLjUgMjV2MTUwaC0xNTlsLTYwMCAtNjAwaC0yOTFxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoMjA5bDYwMCA2MDBoMjQxdjE1MHEwIDIxIDEwLjUgMjV0MjQuNSAtMTB6TTUyMiA4MTlsLTE0MSAtMTQxbC0xMjIgMTIyaC0yMDlxLTIxIDAgLTM1LjUgMTQuNSB0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDI5MXpNMTEzNSA1NjVsMjQ5IC0yMzBxMTUgLTE0IDE1IC0zNXQtMTUgLTM1bC0yNDkgLTIzMHEtMTQgLTE0IC0yNC41IC0xMHQtMTAuNSAyNXYxNTBoLTI0MWwtMTgxIDE4MWwxNDEgMTQxbDEyMiAtMTIyaDE1OXYxNTBxMCAyMSAxMC41IDI1dDI0LjUgLTEweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTE7IiBkPSJNMTAwIDExMDBoMTAwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtNjAwcTAgLTQxIC0yOS41IC03MC41dC03MC41IC0yOS41aC01OTZsLTMwNCAtMzAwdjMwMGgtMTAwcS00MSAwIC03MC41IDI5LjV0LTI5LjUgNzAuNXY2MDBxMCA0MSAyOS41IDcwLjV0NzAuNSAyOS41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTI7IiBkPSJNMTUwIDEyMDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yNTBoLTMwMHYyNTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek04NTAgMTIwMGgyMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTI1MGgtMzAwdjI1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTExMDAgODAwdi0zMDBxMCAtNDEgLTMgLTc3LjV0LTE1IC04OS41dC0zMiAtOTZ0LTU4IC04OXQtODkgLTc3dC0xMjkgLTUxdC0xNzQgLTIwdC0xNzQgMjAgdC0xMjkgNTF0LTg5IDc3dC01OCA4OXQtMzIgOTZ0LTE1IDg5LjV0LTMgNzcuNXYzMDBoMzAwdi0yNTB2LTI3di00Mi41dDEuNSAtNDF0NSAtMzh0MTAgLTM1dDE2LjUgLTMwdDI1LjUgLTI0LjV0MzUgLTE5dDQ2LjUgLTEydDYwIC00dDYwIDQuNXQ0Ni41IDEyLjV0MzUgMTkuNXQyNSAyNS41dDE3IDMwLjV0MTAgMzV0NSAzOHQyIDQwLjV0LTAuNSA0MnYyNXYyNTBoMzAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTM7IiBkPSJNMTEwMCA0MTFsLTE5OCAtMTk5bC0zNTMgMzUzbC0zNTMgLTM1M2wtMTk3IDE5OWw1NTEgNTUxeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTQ7IiBkPSJNMTEwMSA3ODlsLTU1MCAtNTUxbC01NTEgNTUxbDE5OCAxOTlsMzUzIC0zNTNsMzUzIDM1M3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTE1OyIgZD0iTTQwNCAxMDAwaDc0NnEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTUxaDE1MHEyMSAwIDI1IC0xMC41dC0xMCAtMjQuNWwtMjMwIC0yNDlxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI0OXEtMTQgMTQgLTEwIDI0LjV0MjUgMTAuNWgxNTB2NDAxaC0zODF6TTEzNSA5ODRsMjMwIC0yNDlxMTQgLTE0IDEwIC0yNC41dC0yNSAtMTAuNWgtMTUwdi00MDBoMzg1bDIxNSAtMjAwaC03NTBxLTIxIDAgLTM1LjUgMTQuNSB0LTE0LjUgMzUuNXY1NTBoLTE1MHEtMjEgMCAtMjUgMTAuNXQxMCAyNC41bDIzMCAyNDlxMTQgMTUgMzUgMTV0MzUgLTE1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTY7IiBkPSJNNTYgMTIwMGg5NHExNyAwIDMxIC0xMXQxOCAtMjdsMzggLTE2Mmg4OTZxMjQgMCAzOSAtMTguNXQxMCAtNDIuNWwtMTAwIC00NzVxLTUgLTIxIC0yNyAtNDIuNXQtNTUgLTIxLjVoLTYzM2w0OCAtMjAwaDUzNXEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTB2LTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41dC0zNS41IDE0LjV0LTE0LjUgMzUuNXY1MGgtMzAwdi01MCBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjV0LTM1LjUgMTQuNXQtMTQuNSAzNS41djUwaC0zMXEtMTggMCAtMzIuNSAxMHQtMjAuNSAxOWwtNSAxMGwtMjAxIDk2MWgtNTRxLTIwIDAgLTM1IDE0LjV0LTE1IDM1LjV0MTUgMzUuNXQzNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTc7IiBkPSJNMTIwMCAxMDAwdi0xMDBoLTEyMDB2MTAwaDIwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjVoMzAwcTQxIDAgNzAuNSAtMjkuNXQyOS41IC03MC41aDUwMHpNMCA4MDBoMTIwMHYtODAwaC0xMjAwdjgwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTE4OyIgZD0iTTIwMCA4MDBsLTIwMCAtNDAwdjYwMGgyMDBxMCA0MSAyOS41IDcwLjV0NzAuNSAyOS41aDMwMHE0MiAwIDcxIC0yOS41dDI5IC03MC41aDUwMHYtMjAwaC0xMDAwek0xNTAwIDcwMGwtMzAwIC03MDBoLTEyMDBsMzAwIDcwMGgxMjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTk7IiBkPSJNNjM1IDExODRsMjMwIC0yNDlxMTQgLTE0IDEwIC0yNC41dC0yNSAtMTAuNWgtMTUwdi02MDFoMTUwcTIxIDAgMjUgLTEwLjV0LTEwIC0yNC41bC0yMzAgLTI0OXEtMTQgLTE1IC0zNSAtMTV0LTM1IDE1bC0yMzAgMjQ5cS0xNCAxNCAtMTAgMjQuNXQyNSAxMC41aDE1MHY2MDFoLTE1MHEtMjEgMCAtMjUgMTAuNXQxMCAyNC41bDIzMCAyNDlxMTQgMTUgMzUgMTV0MzUgLTE1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMjA7IiBkPSJNOTM2IDg2NGwyNDkgLTIyOXExNCAtMTUgMTQgLTM1LjV0LTE0IC0zNS41bC0yNDkgLTIyOXEtMTUgLTE1IC0yNS41IC0xMC41dC0xMC41IDI0LjV2MTUxaC02MDB2LTE1MXEwIC0yMCAtMTAuNSAtMjQuNXQtMjUuNSAxMC41bC0yNDkgMjI5cS0xNCAxNSAtMTQgMzUuNXQxNCAzNS41bDI0OSAyMjlxMTUgMTUgMjUuNSAxMC41dDEwLjUgLTI1LjV2LTE0OWg2MDB2MTQ5cTAgMjEgMTAuNSAyNS41dDI1LjUgLTEwLjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEyMTsiIGQ9Ik0xMTY5IDQwMGwtMTcyIDczMnEtNSAyMyAtMjMgNDUuNXQtMzggMjIuNWgtNjcycS0yMCAwIC0zOCAtMjB0LTIzIC00MWwtMTcyIC03MzloMTEzOHpNMTEwMCAzMDBoLTEwMDBxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTEwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoMTAwMHE0MSAwIDcwLjUgMjkuNXQyOS41IDcwLjV2MTAwcTAgNDEgLTI5LjUgNzAuNXQtNzAuNSAyOS41ek04MDAgMTAwdjEwMGgxMDB2LTEwMGgtMTAwIHpNMTAwMCAxMDB2MTAwaDEwMHYtMTAwaC0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEyMjsiIGQ9Ik0xMTUwIDExMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTg1MHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNXQtMzUuNSAxNC41dC0xNC41IDM1LjV2ODUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMTAwMCAyMDBsLTY3NSAyMDBoLTM4bDQ3IC0yNzZxMyAtMTYgLTUuNSAtMjB0LTI5LjUgLTRoLTdoLTg0cS0yMCAwIC0zNC41IDE0dC0xOC41IDM1cS01NSAzMzcgLTU1IDM1MXYyNTB2NnEwIDE2IDEgMjMuNXQ2LjUgMTQgdDE3LjUgNi41aDIwMGw2NzUgMjUwdi04NTB6TTAgNzUwdi0yNTBxLTQgMCAtMTEgMC41dC0yNCA2dC0zMCAxNXQtMjQgMzB0LTExIDQ4LjV2NTBxMCAyNiAxMC41IDQ2dDI1IDMwdDI5IDE2dDI1LjUgN3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTIzOyIgZD0iTTU1MyAxMjAwaDk0cTIwIDAgMjkgLTEwLjV0MyAtMjkuNWwtMTggLTM3cTgzIC0xOSAxNDQgLTgyLjV0NzYgLTE0MC41bDYzIC0zMjdsMTE4IC0xNzNoMTdxMTkgMCAzMyAtMTQuNXQxNCAtMzV0LTEzIC00MC41dC0zMSAtMjdxLTggLTQgLTIzIC05LjV0LTY1IC0xOS41dC0xMDMgLTI1dC0xMzIuNSAtMjB0LTE1OC41IC05cS01NyAwIC0xMTUgNXQtMTA0IDEydC04OC41IDE1LjV0LTczLjUgMTcuNXQtNTQuNSAxNnQtMzUuNSAxMmwtMTEgNCBxLTE4IDggLTMxIDI4dC0xMyA0MC41dDE0IDM1dDMzIDE0LjVoMTdsMTE4IDE3M2w2MyAzMjdxMTUgNzcgNzYgMTQwdDE0NCA4M2wtMTggMzJxLTYgMTkgMy41IDMydDI4LjUgMTN6TTQ5OCAxMTBxNTAgLTYgMTAyIC02cTUzIDAgMTAyIDZxLTEyIC00OSAtMzkuNSAtNzkuNXQtNjIuNSAtMzAuNXQtNjMgMzAuNXQtMzkgNzkuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTI0OyIgZD0iTTgwMCA5NDZsMjI0IDc4bC03OCAtMjI0bDIzNCAtNDVsLTE4MCAtMTU1bDE4MCAtMTU1bC0yMzQgLTQ1bDc4IC0yMjRsLTIyNCA3OGwtNDUgLTIzNGwtMTU1IDE4MGwtMTU1IC0xODBsLTQ1IDIzNGwtMjI0IC03OGw3OCAyMjRsLTIzNCA0NWwxODAgMTU1bC0xODAgMTU1bDIzNCA0NWwtNzggMjI0bDIyNCAtNzhsNDUgMjM0bDE1NSAtMTgwbDE1NSAxODB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEyNTsiIGQ9Ik02NTAgMTIwMGg1MHE0MCAwIDcwIC00MC41dDMwIC04NC41di0xNTBsLTI4IC0xMjVoMzI4cTQwIDAgNzAgLTQwLjV0MzAgLTg0LjV2LTEwMHEwIC00NSAtMjkgLTc0bC0yMzggLTM0NHEtMTYgLTI0IC0zOCAtNDAuNXQtNDUgLTE2LjVoLTI1MHEtNyAwIC00MiAyNXQtNjYgNTBsLTMxIDI1aC02MXEtNDUgMCAtNzIuNSAxOHQtMjcuNSA1N3Y0MDBxMCAzNiAyMCA2M2wxNDUgMTk2bDk2IDE5OHExMyAyOCAzNy41IDQ4dDUxLjUgMjB6IE02NTAgMTEwMGwtMTAwIC0yMTJsLTE1MCAtMjEzdi0zNzVoMTAwbDEzNiAtMTAwaDIxNGwyNTAgMzc1djEyNWgtNDUwbDUwIDIyNXYxNzVoLTUwek01MCA4MDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTI2OyIgZD0iTTYwMCAxMTAwaDI1MHEyMyAwIDQ1IC0xNi41dDM4IC00MC41bDIzOCAtMzQ0cTI5IC0yOSAyOSAtNzR2LTEwMHEwIC00NCAtMzAgLTg0LjV0LTcwIC00MC41aC0zMjhxMjggLTExOCAyOCAtMTI1di0xNTBxMCAtNDQgLTMwIC04NC41dC03MCAtNDAuNWgtNTBxLTI3IDAgLTUxLjUgMjB0LTM3LjUgNDhsLTk2IDE5OGwtMTQ1IDE5NnEtMjAgMjcgLTIwIDYzdjQwMHEwIDM5IDI3LjUgNTd0NzIuNSAxOGg2MXExMjQgMTAwIDEzOSAxMDB6IE01MCAxMDAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djUwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTYzNiAxMDAwbC0xMzYgLTEwMGgtMTAwdi0zNzVsMTUwIC0yMTNsMTAwIC0yMTJoNTB2MTc1bC01MCAyMjVoNDUwdjEyNWwtMjUwIDM3NWgtMjE0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMjc7IiBkPSJNMzU2IDg3M2wzNjMgMjMwcTMxIDE2IDUzIC02bDExMCAtMTEycTEzIC0xMyAxMy41IC0zMnQtMTEuNSAtMzRsLTg0IC0xMjFoMzAycTg0IDAgMTM4IC0zOHQ1NCAtMTEwdC01NSAtMTExdC0xMzkgLTM5aC0xMDZsLTEzMSAtMzM5cS02IC0yMSAtMTkuNSAtNDF0LTI4LjUgLTIwaC0zNDJxLTcgMCAtOTAgODF0LTgzIDk0djUyNXEwIDE3IDE0IDM1LjV0MjggMjguNXpNNDAwIDc5MnYtNTAzbDEwMCAtODloMjkzbDEzMSAzMzkgcTYgMjEgMTkuNSA0MXQyOC41IDIwaDIwM3EyMSAwIDMwLjUgMjV0MC41IDUwdC0zMSAyNWgtNDU2aC03aC02aC01LjV0LTYgMC41dC01IDEuNXQtNSAydC00IDIuNXQtNCA0dC0yLjUgNC41cS0xMiAyNSA1IDQ3bDE0NiAxODNsLTg2IDgzek01MCA4MDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NTAwIHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEyODsiIGQ9Ik00NzUgMTEwM2wzNjYgLTIzMHEyIC0xIDYgLTMuNXQxNCAtMTAuNXQxOCAtMTYuNXQxNC41IC0yMHQ2LjUgLTIyLjV2LTUyNXEwIC0xMyAtODYgLTk0dC05MyAtODFoLTM0MnEtMTUgMCAtMjguNSAyMHQtMTkuNSA0MWwtMTMxIDMzOWgtMTA2cS04NSAwIC0xMzkuNSAzOXQtNTQuNSAxMTF0NTQgMTEwdDEzOCAzOGgzMDJsLTg1IDEyMXEtMTEgMTUgLTEwLjUgMzR0MTMuNSAzMmwxMTAgMTEycTIyIDIyIDUzIDZ6TTM3MCA5NDVsMTQ2IC0xODMgcTE3IC0yMiA1IC00N3EtMiAtMiAtMy41IC00LjV0LTQgLTR0LTQgLTIuNXQtNSAtMnQtNSAtMS41dC02IC0wLjVoLTZoLTYuNWgtNmgtNDc1di0xMDBoMjIxcTE1IDAgMjkgLTIwdDIwIC00MWwxMzAgLTMzOWgyOTRsMTA2IDg5djUwM2wtMzQyIDIzNnpNMTA1MCA4MDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjUgdjUwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEyOTsiIGQ9Ik01NTAgMTI5NHE3MiAwIDExMSAtNTV0MzkgLTEzOXYtMTA2bDMzOSAtMTMxcTIxIC02IDQxIC0xOS41dDIwIC0yOC41di0zNDJxMCAtNyAtODEgLTkwdC05NCAtODNoLTUyNXEtMTcgMCAtMzUuNSAxNHQtMjguNSAyOGwtOSAxNGwtMjMwIDM2M3EtMTYgMzEgNiA1M2wxMTIgMTEwcTEzIDEzIDMyIDEzLjV0MzQgLTExLjVsMTIxIC04NHYzMDJxMCA4NCAzOCAxMzh0MTEwIDU0ek02MDAgOTcydjIwM3EwIDIxIC0yNSAzMC41dC01MCAwLjUgdC0yNSAtMzF2LTQ1NnYtN3YtNnYtNS41dC0wLjUgLTZ0LTEuNSAtNXQtMiAtNXQtMi41IC00dC00IC00dC00LjUgLTIuNXEtMjUgLTEyIC00NyA1bC0xODMgMTQ2bC04MyAtODZsMjM2IC0zMzloNTAzbDg5IDEwMHYyOTNsLTMzOSAxMzFxLTIxIDYgLTQxIDE5LjV0LTIwIDI4LjV6TTQ1MCAyMDBoNTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTUwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEzMDsiIGQ9Ik0zNTAgMTEwMGg1MDBxMjEgMCAzNS41IDE0LjV0MTQuNSAzNS41djEwMHEwIDIxIC0xNC41IDM1LjV0LTM1LjUgMTQuNWgtNTAwcS0yMSAwIC0zNS41IC0xNC41dC0xNC41IC0zNS41di0xMDBxMCAtMjEgMTQuNSAtMzUuNXQzNS41IC0xNC41ek02MDAgMzA2di0xMDZxMCAtODQgLTM5IC0xMzl0LTExMSAtNTV0LTExMCA1NHQtMzggMTM4djMwMmwtMTIxIC04NHEtMTUgLTEyIC0zNCAtMTEuNXQtMzIgMTMuNWwtMTEyIDExMCBxLTIyIDIyIC02IDUzbDIzMCAzNjNxMSAyIDMuNSA2dDEwLjUgMTMuNXQxNi41IDE3dDIwIDEzLjV0MjIuNSA2aDUyNXExMyAwIDk0IC04M3Q4MSAtOTB2LTM0MnEwIC0xNSAtMjAgLTI4LjV0LTQxIC0xOS41ek0zMDggOTAwbC0yMzYgLTMzOWw4MyAtODZsMTgzIDE0NnEyMiAxNyA0NyA1cTIgLTEgNC41IC0yLjV0NCAtNHQyLjUgLTR0MiAtNXQxLjUgLTV0MC41IC02di01LjV2LTZ2LTd2LTQ1NnEwIC0yMiAyNSAtMzF0NTAgMC41dDI1IDMwLjUgdjIwM3EwIDE1IDIwIDI4LjV0NDEgMTkuNWwzMzkgMTMxdjI5M2wtODkgMTAwaC01MDN6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEzMTsiIGQ9Ik02MDAgMTE3OHExMTggMCAyMjUgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNXQtNDUuNSAtMjI1dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjUgLTQ1LjV0LTIyNSA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjV0NDUuNSAyMjV0MTIzIDE4NC41dDE4NC41IDEyM3QyMjUgNDUuNXpNOTE0IDYzMmwtMjc1IDIyM3EtMTYgMTMgLTI3LjUgOHQtMTEuNSAtMjZ2LTEzN2gtMjc1IHEtMTAgMCAtMTcuNSAtNy41dC03LjUgLTE3LjV2LTE1MHEwIC0xMCA3LjUgLTE3LjV0MTcuNSAtNy41aDI3NXYtMTM3cTAgLTIxIDExLjUgLTI2dDI3LjUgOGwyNzUgMjIzcTE2IDEzIDE2IDMydC0xNiAzMnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTMyOyIgZD0iTTYwMCAxMTc4cTExOCAwIDIyNSAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI1dC00NS41IC0yMjV0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNSAtNDUuNXQtMjI1IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNXQ0NS41IDIyNXQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNSA0NS41ek01NjEgODU1bC0yNzUgLTIyM3EtMTYgLTEzIC0xNiAtMzJ0MTYgLTMybDI3NSAtMjIzcTE2IC0xMyAyNy41IC04IHQxMS41IDI2djEzN2gyNzVxMTAgMCAxNy41IDcuNXQ3LjUgMTcuNXYxNTBxMCAxMCAtNy41IDE3LjV0LTE3LjUgNy41aC0yNzV2MTM3cTAgMjEgLTExLjUgMjZ0LTI3LjUgLTh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEzMzsiIGQ9Ik02MDAgMTE3OHExMTggMCAyMjUgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNXQtNDUuNSAtMjI1dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjUgLTQ1LjV0LTIyNSA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjV0NDUuNSAyMjV0MTIzIDE4NC41dDE4NC41IDEyM3QyMjUgNDUuNXpNODU1IDYzOWwtMjIzIDI3NXEtMTMgMTYgLTMyIDE2dC0zMiAtMTZsLTIyMyAtMjc1cS0xMyAtMTYgLTggLTI3LjUgdDI2IC0xMS41aDEzN3YtMjc1cTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoMTUwcTEwIDAgMTcuNSA3LjV0Ny41IDE3LjV2Mjc1aDEzN3EyMSAwIDI2IDExLjV0LTggMjcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTM0OyIgZD0iTTYwMCAxMTc4cTExOCAwIDIyNSAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI1dC00NS41IC0yMjV0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNSAtNDUuNXQtMjI1IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNXQ0NS41IDIyNXQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNSA0NS41ek02NzUgOTAwaC0xNTBxLTEwIDAgLTE3LjUgLTcuNXQtNy41IC0xNy41di0yNzVoLTEzN3EtMjEgMCAtMjYgLTExLjUgdDggLTI3LjVsMjIzIC0yNzVxMTMgLTE2IDMyIC0xNnQzMiAxNmwyMjMgMjc1cTEzIDE2IDggMjcuNXQtMjYgMTEuNWgtMTM3djI3NXEwIDEwIC03LjUgMTcuNXQtMTcuNSA3LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEzNTsiIGQ9Ik02MDAgMTE3NnExMTYgMCAyMjIuNSAtNDZ0MTg0IC0xMjMuNXQxMjMuNSAtMTg0dDQ2IC0yMjIuNXQtNDYgLTIyMi41dC0xMjMuNSAtMTg0dC0xODQgLTEyMy41dC0yMjIuNSAtNDZ0LTIyMi41IDQ2dC0xODQgMTIzLjV0LTEyMy41IDE4NHQtNDYgMjIyLjV0NDYgMjIyLjV0MTIzLjUgMTg0dDE4NCAxMjMuNXQyMjIuNSA0NnpNNjI3IDExMDFxLTE1IC0xMiAtMzYuNSAtMjAuNXQtMzUuNSAtMTJ0LTQzIC04dC0zOSAtNi41IHEtMTUgLTMgLTQ1LjUgMHQtNDUuNSAtMnEtMjAgLTcgLTUxLjUgLTI2LjV0LTM0LjUgLTM0LjVxLTMgLTExIDYuNSAtMjIuNXQ4LjUgLTE4LjVxLTMgLTM0IC0yNy41IC05MXQtMjkuNSAtNzlxLTkgLTM0IDUgLTkzdDggLTg3cTAgLTkgMTcgLTQ0LjV0MTYgLTU5LjVxMTIgMCAyMyAtNXQyMy41IC0xNXQxOS41IC0xNHExNiAtOCAzMyAtMTV0NDAuNSAtMTV0MzQuNSAtMTJxMjEgLTkgNTIuNSAtMzJ0NjAgLTM4dDU3LjUgLTExIHE3IC0xNSAtMyAtMzR0LTIyLjUgLTQwdC05LjUgLTM4cTEzIC0yMSAyMyAtMzQuNXQyNy41IC0yNy41dDM2LjUgLTE4cTAgLTcgLTMuNSAtMTZ0LTMuNSAtMTR0NSAtMTdxMTA0IC0yIDIyMSAxMTJxMzAgMjkgNDYuNSA0N3QzNC41IDQ5dDIxIDYzcS0xMyA4IC0zNyA4LjV0LTM2IDcuNXEtMTUgNyAtNDkuNSAxNXQtNTEuNSAxOXEtMTggMCAtNDEgLTAuNXQtNDMgLTEuNXQtNDIgLTYuNXQtMzggLTE2LjVxLTUxIC0zNSAtNjYgLTEyIHEtNCAxIC0zLjUgMjUuNXQwLjUgMjUuNXEtNiAxMyAtMjYuNSAxNy41dC0yNC41IDYuNXExIDE1IC0wLjUgMzAuNXQtNyAyOHQtMTguNSAxMS41dC0zMSAtMjFxLTIzIC0yNSAtNDIgNHEtMTkgMjggLTggNThxNiAxNiAyMiAyMnE2IC0xIDI2IC0xLjV0MzMuNSAtNHQxOS41IC0xMy41cTcgLTEyIDE4IC0yNHQyMS41IC0yMC41dDIwIC0xNXQxNS41IC0xMC41bDUgLTNxMiAxMiA3LjUgMzAuNXQ4IDM0LjV0LTAuNSAzMnEtMyAxOCAzLjUgMjkgdDE4IDIyLjV0MTUuNSAyNC41cTYgMTQgMTAuNSAzNXQ4IDMxdDE1LjUgMjIuNXQzNCAyMi41cS02IDE4IDEwIDM2cTggMCAyNCAtMS41dDI0LjUgLTEuNXQyMCA0LjV0MjAuNSAxNS41cS0xMCAyMyAtMzEgNDIuNXQtMzcuNSAyOS41dC00OSAyN3QtNDMuNSAyM3EwIDEgMiA4dDMgMTEuNXQxLjUgMTAuNXQtMSA5LjV0LTQuNSA0LjVxMzEgLTEzIDU4LjUgLTE0LjV0MzguNSAyLjVsMTIgNXE1IDI4IC05LjUgNDZ0LTM2LjUgMjR0LTUwIDE1IHQtNDEgMjBxLTE4IC00IC0zNyAwek02MTMgOTk0cTAgLTE3IDggLTQydDE3IC00NXQ5IC0yM3EtOCAxIC0zOS41IDUuNXQtNTIuNSAxMHQtMzcgMTYuNXEzIDExIDE2IDI5LjV0MTYgMjUuNXExMCAtMTAgMTkgLTEwdDE0IDZ0MTMuNSAxNC41dDE2LjUgMTIuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTM2OyIgZD0iTTc1NiAxMTU3cTE2NCA5MiAzMDYgLTlsLTI1OSAtMTM4bDE0NSAtMjMybDI1MSAxMjZxNiAtODkgLTM0IC0xNTYuNXQtMTE3IC0xMTAuNXEtNjAgLTM0IC0xMjcgLTM5LjV0LTEyNiAxNi41bC01OTYgLTU5NnEtMTUgLTE2IC0zNi41IC0xNnQtMzYuNSAxNmwtMTExIDExMHEtMTUgMTUgLTE1IDM2LjV0MTUgMzcuNWw2MDAgNTk5cS0zNCAxMDEgNS41IDIwMS41dDEzNS41IDE1NC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMzc7IiBob3Jpei1hZHYteD0iMTIyMCIgZD0iTTEwMCAxMTk2aDEwMDBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTEwMHEwIC00MSAtMjkuNSAtNzAuNXQtNzAuNSAtMjkuNWgtMTAwMHEtNDEgMCAtNzAuNSAyOS41dC0yOS41IDcwLjV2MTAwcTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNXpNMTEwMCAxMDk2aC0yMDB2LTEwMGgyMDB2MTAwek0xMDAgNzk2aDEwMDBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTEwMHEwIC00MSAtMjkuNSAtNzAuNXQtNzAuNSAtMjkuNWgtMTAwMCBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djEwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjV6TTExMDAgNjk2aC01MDB2LTEwMGg1MDB2MTAwek0xMDAgMzk2aDEwMDBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTEwMHEwIC00MSAtMjkuNSAtNzAuNXQtNzAuNSAtMjkuNWgtMTAwMHEtNDEgMCAtNzAuNSAyOS41dC0yOS41IDcwLjV2MTAwcTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNXpNMTEwMCAyOTZoLTMwMHYtMTAwaDMwMHYxMDB6ICIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMzg7IiBkPSJNMTUwIDEyMDBoOTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41dC0xNC41IC0zNS41dC0zNS41IC0xNC41aC05MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6TTcwMCA1MDB2LTMwMGwtMjAwIC0yMDB2NTAwbC0zNTAgNTAwaDkwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTM5OyIgZD0iTTUwMCAxMjAwaDIwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtMTAwaDMwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtNDAwaC01MDB2MTAwaC0yMDB2LTEwMGgtNTAwdjQwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjVoMzAwdjEwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjV6TTUwMCAxMTAwdi0xMDBoMjAwdjEwMGgtMjAwek0xMjAwIDQwMHYtMjAwcTAgLTQxIC0yOS41IC03MC41dC03MC41IC0yOS41aC0xMDAwIHEtNDEgMCAtNzAuNSAyOS41dC0yOS41IDcwLjV2MjAwaDEyMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE0MDsiIGQ9Ik01MCAxMjAwaDMwMHEyMSAwIDI1IC0xMC41dC0xMCAtMjQuNWwtOTQgLTk0bDE5OSAtMTk5cTcgLTggNyAtMTh0LTcgLTE4bC0xMDYgLTEwNnEtOCAtNyAtMTggLTd0LTE4IDdsLTE5OSAxOTlsLTk0IC05NHEtMTQgLTE0IC0yNC41IC0xMHQtMTAuNSAyNXYzMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek04NTAgMTIwMGgzMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTMwMHEwIC0yMSAtMTAuNSAtMjV0LTI0LjUgMTBsLTk0IDk0IGwtMTk5IC0xOTlxLTggLTcgLTE4IC03dC0xOCA3bC0xMDYgMTA2cS03IDggLTcgMTh0NyAxOGwxOTkgMTk5bC05NCA5NHEtMTQgMTQgLTEwIDI0LjV0MjUgMTAuNXpNMzY0IDQ3MGwxMDYgLTEwNnE3IC04IDcgLTE4dC03IC0xOGwtMTk5IC0xOTlsOTQgLTk0cTE0IC0xNCAxMCAtMjQuNXQtMjUgLTEwLjVoLTMwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MzAwcTAgMjEgMTAuNSAyNXQyNC41IC0xMGw5NCAtOTRsMTk5IDE5OSBxOCA3IDE4IDd0MTggLTd6TTEwNzEgMjcxbDk0IDk0cTE0IDE0IDI0LjUgMTB0MTAuNSAtMjV2LTMwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMzAwcS0yMSAwIC0yNSAxMC41dDEwIDI0LjVsOTQgOTRsLTE5OSAxOTlxLTcgOCAtNyAxOHQ3IDE4bDEwNiAxMDZxOCA3IDE4IDd0MTggLTd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE0MTsiIGQ9Ik01OTYgMTE5MnExMjEgMCAyMzEuNSAtNDcuNXQxOTAgLTEyN3QxMjcgLTE5MHQ0Ny41IC0yMzEuNXQtNDcuNSAtMjMxLjV0LTEyNyAtMTkwLjV0LTE5MCAtMTI3dC0yMzEuNSAtNDd0LTIzMS41IDQ3dC0xOTAuNSAxMjd0LTEyNyAxOTAuNXQtNDcgMjMxLjV0NDcgMjMxLjV0MTI3IDE5MHQxOTAuNSAxMjd0MjMxLjUgNDcuNXpNNTk2IDEwMTBxLTExMiAwIC0yMDcuNSAtNTUuNXQtMTUxIC0xNTF0LTU1LjUgLTIwNy41dDU1LjUgLTIwNy41IHQxNTEgLTE1MXQyMDcuNSAtNTUuNXQyMDcuNSA1NS41dDE1MSAxNTF0NTUuNSAyMDcuNXQtNTUuNSAyMDcuNXQtMTUxIDE1MXQtMjA3LjUgNTUuNXpNNDU0LjUgOTA1cTIyLjUgMCAzOC41IC0xNnQxNiAtMzguNXQtMTYgLTM5dC0zOC41IC0xNi41dC0zOC41IDE2LjV0LTE2IDM5dDE2IDM4LjV0MzguNSAxNnpNNzU0LjUgOTA1cTIyLjUgMCAzOC41IC0xNnQxNiAtMzguNXQtMTYgLTM5dC0zOCAtMTYuNXEtMTQgMCAtMjkgMTBsLTU1IC0xNDUgcTE3IC0yMyAxNyAtNTFxMCAtMzYgLTI1LjUgLTYxLjV0LTYxLjUgLTI1LjV0LTYxLjUgMjUuNXQtMjUuNSA2MS41cTAgMzIgMjAuNSA1Ni41dDUxLjUgMjkuNWwxMjIgMTI2bDEgMXEtOSAxNCAtOSAyOHEwIDIzIDE2IDM5dDM4LjUgMTZ6TTM0NS41IDcwOXEyMi41IDAgMzguNSAtMTZ0MTYgLTM4LjV0LTE2IC0zOC41dC0zOC41IC0xNnQtMzguNSAxNnQtMTYgMzguNXQxNiAzOC41dDM4LjUgMTZ6TTg1NC41IDcwOXEyMi41IDAgMzguNSAtMTYgdDE2IC0zOC41dC0xNiAtMzguNXQtMzguNSAtMTZ0LTM4LjUgMTZ0LTE2IDM4LjV0MTYgMzguNXQzOC41IDE2eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNDI7IiBkPSJNNTQ2IDE3M2w0NjkgNDcwcTkxIDkxIDk5IDE5MnE3IDk4IC01MiAxNzUuNXQtMTU0IDk0LjVxLTIyIDQgLTQ3IDRxLTM0IDAgLTY2LjUgLTEwdC01Ni41IC0yM3QtNTUuNSAtMzh0LTQ4IC00MS41dC00OC41IC00Ny41cS0zNzYgLTM3NSAtMzkxIC0zOTBxLTMwIC0yNyAtNDUgLTQxLjV0LTM3LjUgLTQxdC0zMiAtNDYuNXQtMTYgLTQ3LjV0LTEuNSAtNTYuNXE5IC02MiA1My41IC05NXQ5OS41IC0zM3E3NCAwIDEyNSA1MWw1NDggNTQ4IHEzNiAzNiAyMCA3NXEtNyAxNiAtMjEuNSAyNnQtMzIuNSAxMHEtMjYgMCAtNTAgLTIzcS0xMyAtMTIgLTM5IC0zOGwtMzQxIC0zMzhxLTE1IC0xNSAtMzUuNSAtMTUuNXQtMzQuNSAxMy41dC0xNCAzNC41dDE0IDM0LjVxMzI3IDMzMyAzNjEgMzY3cTM1IDM1IDY3LjUgNTEuNXQ3OC41IDE2LjVxMTQgMCAyOSAtMXE0NCAtOCA3NC41IC0zNS41dDQzLjUgLTY4LjVxMTQgLTQ3IDIgLTk2LjV0LTQ3IC04NC41cS0xMiAtMTEgLTMyIC0zMiB0LTc5LjUgLTgxdC0xMTQuNSAtMTE1dC0xMjQuNSAtMTIzLjV0LTEyMyAtMTE5LjV0LTk2LjUgLTg5dC01NyAtNDVxLTU2IC0yNyAtMTIwIC0yN3EtNzAgMCAtMTI5IDMydC05MyA4OXEtNDggNzggLTM1IDE3M3Q4MSAxNjNsNTExIDUxMXE3MSA3MiAxMTEgOTZxOTEgNTUgMTk4IDU1cTgwIDAgMTUyIC0zM3E3OCAtMzYgMTI5LjUgLTEwM3Q2Ni41IC0xNTRxMTcgLTkzIC0xMSAtMTgzLjV0LTk0IC0xNTYuNWwtNDgyIC00NzYgcS0xNSAtMTUgLTM2IC0xNnQtMzcgMTR0LTE3LjUgMzR0MTQuNSAzNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTQzOyIgZD0iTTY0OSA5NDlxNDggNjggMTA5LjUgMTA0dDEyMS41IDM4LjV0MTE4LjUgLTIwdDEwMi41IC02NHQ3MSAtMTAwLjV0MjcgLTEyM3EwIC01NyAtMzMuNSAtMTE3LjV0LTk0IC0xMjQuNXQtMTI2LjUgLTEyNy41dC0xNTAgLTE1Mi41dC0xNDYgLTE3NHEtNjIgODUgLTE0NS41IDE3NHQtMTUwIDE1Mi41dC0xMjYuNSAxMjcuNXQtOTMuNSAxMjQuNXQtMzMuNSAxMTcuNXEwIDY0IDI4IDEyM3Q3MyAxMDAuNXQxMDQgNjR0MTE5IDIwIHQxMjAuNSAtMzguNXQxMDQuNSAtMTA0ek04OTYgOTcycS0zMyAwIC02NC41IC0xOXQtNTYuNSAtNDZ0LTQ3LjUgLTUzLjV0LTQzLjUgLTQ1LjV0LTM3LjUgLTE5dC0zNiAxOXQtNDAgNDUuNXQtNDMgNTMuNXQtNTQgNDZ0LTY1LjUgMTlxLTY3IDAgLTEyMi41IC01NS41dC01NS41IC0xMzIuNXEwIC0yMyAxMy41IC01MXQ0NiAtNjV0NTcuNSAtNjN0NzYgLTc1bDIyIC0yMnExNSAtMTQgNDQgLTQ0dDUwLjUgLTUxdDQ2IC00NHQ0MSAtMzV0MjMgLTEyIHQyMy41IDEydDQyLjUgMzZ0NDYgNDR0NTIuNSA1MnQ0NCA0M3E0IDQgMTIgMTNxNDMgNDEgNjMuNSA2MnQ1MiA1NXQ0NiA1NXQyNiA0NnQxMS41IDQ0cTAgNzkgLTUzIDEzMy41dC0xMjAgNTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTQ0OyIgZD0iTTc3Ni41IDEyMTRxOTMuNSAwIDE1OS41IC02NmwxNDEgLTE0MXE2NiAtNjYgNjYgLTE2MHEwIC00MiAtMjggLTk1LjV0LTYyIC04Ny41bC0yOSAtMjlxLTMxIDUzIC03NyA5OWwtMTggMThsOTUgOTVsLTI0NyAyNDhsLTM4OSAtMzg5bDIxMiAtMjEybC0xMDUgLTEwNmwtMTkgMThsLTE0MSAxNDFxLTY2IDY2IC02NiAxNTl0NjYgMTU5bDI4MyAyODNxNjUgNjYgMTU4LjUgNjZ6TTYwMCA3MDZsMTA1IDEwNXExMCAtOCAxOSAtMTdsMTQxIC0xNDEgcTY2IC02NiA2NiAtMTU5dC02NiAtMTU5bC0yODMgLTI4M3EtNjYgLTY2IC0xNTkgLTY2dC0xNTkgNjZsLTE0MSAxNDFxLTY2IDY2IC02NiAxNTkuNXQ2NiAxNTkuNWw1NSA1NXEyOSAtNTUgNzUgLTEwMmwxOCAtMTdsLTk1IC05NWwyNDcgLTI0OGwzODkgMzg5eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNDU7IiBkPSJNNjAzIDEyMDBxODUgMCAxNjIgLTE1dDEyNyAtMzh0NzkgLTQ4dDI5IC00NnYtOTUzcTAgLTQxIC0yOS41IC03MC41dC03MC41IC0yOS41aC02MDBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djk1M3EwIDIxIDMwIDQ2LjV0ODEgNDh0MTI5IDM3LjV0MTYzIDE1ek0zMDAgMTAwMHYtNzAwaDYwMHY3MDBoLTYwMHpNNjAwIDI1NHEtNDMgMCAtNzMuNSAtMzAuNXQtMzAuNSAtNzMuNXQzMC41IC03My41dDczLjUgLTMwLjV0NzMuNSAzMC41IHQzMC41IDczLjV0LTMwLjUgNzMuNXQtNzMuNSAzMC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNDY7IiBkPSJNOTAyIDExODVsMjgzIC0yODJxMTUgLTE1IDE1IC0zNnQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNXQtMzUgMTVsLTM2IDM1bC0yNzkgLTI2N3YtMzAwbC0yMTIgMjEwbC0zMDggLTMwN2wtMjgwIC0yMDNsMjAzIDI4MGwzMDcgMzA4bC0yMTAgMjEyaDMwMGwyNjcgMjc5bC0zNSAzNnEtMTUgMTQgLTE1IDM1dDE0LjUgMzUuNXQzNS41IDE0LjV0MzUgLTE1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNDg7IiBkPSJNNzAwIDEyNDh2LTc4cTM4IC01IDcyLjUgLTE0LjV0NzUuNSAtMzEuNXQ3MSAtNTMuNXQ1MiAtODR0MjQgLTExOC41aC0xNTlxLTQgMzYgLTEwLjUgNTl0LTIxIDQ1dC00MCAzNS41dC02NC41IDIwLjV2LTMwN2w2NCAtMTNxMzQgLTcgNjQgLTE2LjV0NzAgLTMydDY3LjUgLTUyLjV0NDcuNSAtODB0MjAgLTExMnEwIC0xMzkgLTg5IC0yMjR0LTI0NCAtOTd2LTc3aC0xMDB2NzlxLTE1MCAxNiAtMjM3IDEwM3EtNDAgNDAgLTUyLjUgOTMuNSB0LTE1LjUgMTM5LjVoMTM5cTUgLTc3IDQ4LjUgLTEyNnQxMTcuNSAtNjV2MzM1bC0yNyA4cS00NiAxNCAtNzkgMjYuNXQtNzIgMzZ0LTYzIDUydC00MCA3Mi41dC0xNiA5OHEwIDcwIDI1IDEyNnQ2Ny41IDkydDk0LjUgNTd0MTEwIDI3djc3aDEwMHpNNjAwIDc1NHYyNzRxLTI5IC00IC01MCAtMTF0LTQyIC0yMS41dC0zMS41IC00MS41dC0xMC41IC02NXEwIC0yOSA3IC01MC41dDE2LjUgLTM0dDI4LjUgLTIyLjV0MzEuNSAtMTR0MzcuNSAtMTAgcTkgLTMgMTMgLTR6TTcwMCA1NDd2LTMxMHEyMiAyIDQyLjUgNi41dDQ1IDE1LjV0NDEuNSAyN3QyOSA0MnQxMiA1OS41dC0xMi41IDU5LjV0LTM4IDQ0LjV0LTUzIDMxdC02Ni41IDI0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE0OTsiIGQ9Ik01NjEgMTE5N3E4NCAwIDE2MC41IC00MHQxMjMuNSAtMTA5LjV0NDcgLTE0Ny41aC0xNTNxMCA0MCAtMTkuNSA3MS41dC00OS41IDQ4LjV0LTU5LjUgMjZ0LTU1LjUgOXEtMzcgMCAtNzkgLTE0LjV0LTYyIC0zNS41cS00MSAtNDQgLTQxIC0xMDFxMCAtMjYgMTMuNSAtNjN0MjYuNSAtNjF0MzcgLTY2cTYgLTkgOSAtMTRoMjQxdi0xMDBoLTE5N3E4IC01MCAtMi41IC0xMTV0LTMxLjUgLTk1cS00NSAtNjIgLTk5IC0xMTIgcTM0IDEwIDgzIDE3LjV0NzEgNy41cTMyIDEgMTAyIC0xNnQxMDQgLTE3cTgzIDAgMTM2IDMwbDUwIC0xNDdxLTMxIC0xOSAtNTggLTMwLjV0LTU1IC0xNS41dC00MiAtNC41dC00NiAtMC41cS0yMyAwIC03NiAxN3QtMTExIDMyLjV0LTk2IDExLjVxLTM5IC0zIC04MiAtMTZ0LTY3IC0yNWwtMjMgLTExbC01NSAxNDVxNCAzIDE2IDExdDE1LjUgMTAuNXQxMyA5dDE1LjUgMTJ0MTQuNSAxNHQxNy41IDE4LjVxNDggNTUgNTQgMTI2LjUgdC0zMCAxNDIuNWgtMjIxdjEwMGgxNjZxLTIzIDQ3IC00NCAxMDRxLTcgMjAgLTEyIDQxLjV0LTYgNTUuNXQ2IDY2LjV0MjkuNSA3MC41dDU4LjUgNzFxOTcgODggMjYzIDg4eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTA7IiBkPSJNNDAwIDMwMGgxNTBxMjEgMCAyNSAtMTF0LTEwIC0yNWwtMjMwIC0yNTBxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI1MHEtMTQgMTQgLTEwIDI1dDI1IDExaDE1MHY5MDBoMjAwdi05MDB6TTkzNSAxMTg0bDIzMCAtMjQ5cTE0IC0xNCAxMCAtMjQuNXQtMjUgLTEwLjVoLTE1MHYtOTAwaC0yMDB2OTAwaC0xNTBxLTIxIDAgLTI1IDEwLjV0MTAgMjQuNWwyMzAgMjQ5cTE0IDE1IDM1IDE1dDM1IC0xNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTUxOyIgZD0iTTEwMDAgNzAwaC0xMDB2MTAwaC0xMDB2LTEwMGgtMTAwdjUwMGgzMDB2LTUwMHpNNDAwIDMwMGgxNTBxMjEgMCAyNSAtMTF0LTEwIC0yNWwtMjMwIC0yNTBxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI1MHEtMTQgMTQgLTEwIDI1dDI1IDExaDE1MHY5MDBoMjAwdi05MDB6TTgwMSAxMTAwdi0yMDBoMTAwdjIwMGgtMTAwek0xMDAwIDM1MGwtMjAwIC0yNTBoMjAwdi0xMDBoLTMwMHYxNTBsMjAwIDI1MGgtMjAwdjEwMGgzMDB2LTE1MHogIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE1MjsiIGQ9Ik00MDAgMzAwaDE1MHEyMSAwIDI1IC0xMXQtMTAgLTI1bC0yMzAgLTI1MHEtMTQgLTE1IC0zNSAtMTV0LTM1IDE1bC0yMzAgMjUwcS0xNCAxNCAtMTAgMjV0MjUgMTFoMTUwdjkwMGgyMDB2LTkwMHpNMTAwMCAxMDUwbC0yMDAgLTI1MGgyMDB2LTEwMGgtMzAwdjE1MGwyMDAgMjUwaC0yMDB2MTAwaDMwMHYtMTUwek0xMDAwIDBoLTEwMHYxMDBoLTEwMHYtMTAwaC0xMDB2NTAwaDMwMHYtNTAwek04MDEgNDAwdi0yMDBoMTAwdjIwMGgtMTAweiAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTUzOyIgZD0iTTQwMCAzMDBoMTUwcTIxIDAgMjUgLTExdC0xMCAtMjVsLTIzMCAtMjUwcS0xNCAtMTUgLTM1IC0xNXQtMzUgMTVsLTIzMCAyNTBxLTE0IDE0IC0xMCAyNXQyNSAxMWgxNTB2OTAwaDIwMHYtOTAwek0xMDAwIDcwMGgtMTAwdjQwMGgtMTAwdjEwMGgyMDB2LTUwMHpNMTEwMCAwaC0xMDB2MTAwaC0yMDB2NDAwaDMwMHYtNTAwek05MDEgNDAwdi0yMDBoMTAwdjIwMGgtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTQ7IiBkPSJNNDAwIDMwMGgxNTBxMjEgMCAyNSAtMTF0LTEwIC0yNWwtMjMwIC0yNTBxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI1MHEtMTQgMTQgLTEwIDI1dDI1IDExaDE1MHY5MDBoMjAwdi05MDB6TTExMDAgNzAwaC0xMDB2MTAwaC0yMDB2NDAwaDMwMHYtNTAwek05MDEgMTEwMHYtMjAwaDEwMHYyMDBoLTEwMHpNMTAwMCAwaC0xMDB2NDAwaC0xMDB2MTAwaDIwMHYtNTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTU7IiBkPSJNNDAwIDMwMGgxNTBxMjEgMCAyNSAtMTF0LTEwIC0yNWwtMjMwIC0yNTBxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI1MHEtMTQgMTQgLTEwIDI1dDI1IDExaDE1MHY5MDBoMjAwdi05MDB6TTkwMCAxMDAwaC0yMDB2MjAwaDIwMHYtMjAwek0xMDAwIDcwMGgtMzAwdjIwMGgzMDB2LTIwMHpNMTEwMCA0MDBoLTQwMHYyMDBoNDAwdi0yMDB6TTEyMDAgMTAwaC01MDB2MjAwaDUwMHYtMjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTY7IiBkPSJNNDAwIDMwMGgxNTBxMjEgMCAyNSAtMTF0LTEwIC0yNWwtMjMwIC0yNTBxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI1MHEtMTQgMTQgLTEwIDI1dDI1IDExaDE1MHY5MDBoMjAwdi05MDB6TTEyMDAgMTAwMGgtNTAwdjIwMGg1MDB2LTIwMHpNMTEwMCA3MDBoLTQwMHYyMDBoNDAwdi0yMDB6TTEwMDAgNDAwaC0zMDB2MjAwaDMwMHYtMjAwek05MDAgMTAwaC0yMDB2MjAwaDIwMHYtMjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTc7IiBkPSJNMzUwIDExMDBoNDAwcTE2MiAwIDI1NiAtOTMuNXQ5NCAtMjU2LjV2LTQwMHEwIC0xNjUgLTkzLjUgLTI1Ny41dC0yNTYuNSAtOTIuNWgtNDAwcS0xNjUgMCAtMjU3LjUgOTIuNXQtOTIuNSAyNTcuNXY0MDBxMCAxNjUgOTIuNSAyNTcuNXQyNTcuNSA5Mi41ek04MDAgOTAwaC01MDBxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoNTAwcTQxIDAgNzAuNSAyOS41dDI5LjUgNzAuNSB2NTAwcTAgNDEgLTI5LjUgNzAuNXQtNzAuNSAyOS41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTg7IiBkPSJNMzUwIDExMDBoNDAwcTE2NSAwIDI1Ny41IC05Mi41dDkyLjUgLTI1Ny41di00MDBxMCAtMTY1IC05Mi41IC0yNTcuNXQtMjU3LjUgLTkyLjVoLTQwMHEtMTYzIDAgLTI1Ni41IDkyLjV0LTkzLjUgMjU3LjV2NDAwcTAgMTYzIDk0IDI1Ni41dDI1NiA5My41ek04MDAgOTAwaC01MDBxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoNTAwcTQxIDAgNzAuNSAyOS41dDI5LjUgNzAuNSB2NTAwcTAgNDEgLTI5LjUgNzAuNXQtNzAuNSAyOS41ek00NDAgNzcwbDI1MyAtMTkwcTE3IC0xMiAxNyAtMzB0LTE3IC0zMGwtMjUzIC0xOTBxLTE2IC0xMiAtMjggLTYuNXQtMTIgMjYuNXY0MDBxMCAyMSAxMiAyNi41dDI4IC02LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE1OTsiIGQ9Ik0zNTAgMTEwMGg0MDBxMTYzIDAgMjU2LjUgLTk0dDkzLjUgLTI1NnYtNDAwcTAgLTE2NSAtOTIuNSAtMjU3LjV0LTI1Ny41IC05Mi41aC00MDBxLTE2NSAwIC0yNTcuNSA5Mi41dC05Mi41IDI1Ny41djQwMHEwIDE2MyA5Mi41IDI1Ni41dDI1Ny41IDkzLjV6TTgwMCA5MDBoLTUwMHEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNXYtNTAwcTAgLTQxIDI5LjUgLTcwLjV0NzAuNSAtMjkuNWg1MDBxNDEgMCA3MC41IDI5LjV0MjkuNSA3MC41IHY1MDBxMCA0MSAtMjkuNSA3MC41dC03MC41IDI5LjV6TTM1MCA3MDBoNDAwcTIxIDAgMjYuNSAtMTJ0LTYuNSAtMjhsLTE5MCAtMjUzcS0xMiAtMTcgLTMwIC0xN3QtMzAgMTdsLTE5MCAyNTNxLTEyIDE2IC02LjUgMjh0MjYuNSAxMnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTYwOyIgZD0iTTM1MCAxMTAwaDQwMHExNjUgMCAyNTcuNSAtOTIuNXQ5Mi41IC0yNTcuNXYtNDAwcTAgLTE2MyAtOTIuNSAtMjU2LjV0LTI1Ny41IC05My41aC00MDBxLTE2MyAwIC0yNTYuNSA5NHQtOTMuNSAyNTZ2NDAwcTAgMTY1IDkyLjUgMjU3LjV0MjU3LjUgOTIuNXpNODAwIDkwMGgtNTAwcS00MSAwIC03MC41IC0yOS41dC0yOS41IC03MC41di01MDBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDUwMHE0MSAwIDcwLjUgMjkuNXQyOS41IDcwLjUgdjUwMHEwIDQxIC0yOS41IDcwLjV0LTcwLjUgMjkuNXpNNTgwIDY5M2wxOTAgLTI1M3ExMiAtMTYgNi41IC0yOHQtMjYuNSAtMTJoLTQwMHEtMjEgMCAtMjYuNSAxMnQ2LjUgMjhsMTkwIDI1M3ExMiAxNyAzMCAxN3QzMCAtMTd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE2MTsiIGQ9Ik01NTAgMTEwMGg0MDBxMTY1IDAgMjU3LjUgLTkyLjV0OTIuNSAtMjU3LjV2LTQwMHEwIC0xNjUgLTkyLjUgLTI1Ny41dC0yNTcuNSAtOTIuNWgtNDAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDQ1MHE0MSAwIDcwLjUgMjkuNXQyOS41IDcwLjV2NTAwcTAgNDEgLTI5LjUgNzAuNXQtNzAuNSAyOS41aC00NTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0zMzggODY3bDMyNCAtMjg0cTE2IC0xNCAxNiAtMzN0LTE2IC0zM2wtMzI0IC0yODRxLTE2IC0xNCAtMjcgLTl0LTExIDI2djE1MGgtMjUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYyMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDI1MHYxNTBxMCAyMSAxMSAyNnQyNyAtOXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTYyOyIgZD0iTTc5MyAxMTgybDkgLTlxOCAtMTAgNSAtMjdxLTMgLTExIC03OSAtMjI1LjV0LTc4IC0yMjEuNWwzMDAgMXEyNCAwIDMyLjUgLTE3LjV0LTUuNSAtMzUuNXEtMSAwIC0xMzMuNSAtMTU1dC0yNjcgLTMxMi41dC0xMzguNSAtMTYyLjVxLTEyIC0xNSAtMjYgLTE1aC05bC05IDhxLTkgMTEgLTQgMzJxMiA5IDQyIDEyMy41dDc5IDIyNC41bDM5IDExMGgtMzAycS0yMyAwIC0zMSAxOXEtMTAgMjEgNiA0MXE3NSA4NiAyMDkuNSAyMzcuNSB0MjI4IDI1N3Q5OC41IDExMS41cTkgMTYgMjUgMTZoOXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTYzOyIgZD0iTTM1MCAxMTAwaDQwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00NTBxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoNDUwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTQwMHEtMTY1IDAgLTI1Ny41IDkyLjV0LTkyLjUgMjU3LjV2NDAwIHEwIDE2NSA5Mi41IDI1Ny41dDI1Ny41IDkyLjV6TTkzOCA4NjdsMzI0IC0yODRxMTYgLTE0IDE2IC0zM3QtMTYgLTMzbC0zMjQgLTI4NHEtMTYgLTE0IC0yNyAtOXQtMTEgMjZ2MTUwaC0yNTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoMjUwdjE1MHEwIDIxIDExIDI2dDI3IC05eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNjQ7IiBkPSJNNzUwIDEyMDBoNDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di00MDBxMCAtMjEgLTEwLjUgLTI1dC0yNC41IDEwbC0xMDkgMTA5bC0zMTIgLTMxMnEtMTUgLTE1IC0zNS41IC0xNXQtMzUuNSAxNWwtMTQxIDE0MXEtMTUgMTUgLTE1IDM1LjV0MTUgMzUuNWwzMTIgMzEybC0xMDkgMTA5cS0xNCAxNCAtMTAgMjQuNXQyNSAxMC41ek00NTYgOTAwaC0xNTZxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMCBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDUwMHE0MSAwIDcwLjUgMjkuNXQyOS41IDcwLjV2MTQ4bDIwMCAyMDB2LTI5OHEwIC0xNjUgLTkzLjUgLTI1Ny41dC0yNTYuNSAtOTIuNWgtNDAwcS0xNjUgMCAtMjU3LjUgOTIuNXQtOTIuNSAyNTcuNXY0MDBxMCAxNjUgOTIuNSAyNTcuNXQyNTcuNSA5Mi41aDMwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTY1OyIgZD0iTTYwMCAxMTg2cTExOSAwIDIyNy41IC00Ni41dDE4NyAtMTI1dDEyNSAtMTg3dDQ2LjUgLTIyNy41dC00Ni41IC0yMjcuNXQtMTI1IC0xODd0LTE4NyAtMTI1dC0yMjcuNSAtNDYuNXQtMjI3LjUgNDYuNXQtMTg3IDEyNXQtMTI1IDE4N3QtNDYuNSAyMjcuNXQ0Ni41IDIyNy41dDEyNSAxODd0MTg3IDEyNXQyMjcuNSA0Ni41ek02MDAgMTAyMnEtMTE1IDAgLTIxMiAtNTYuNXQtMTUzLjUgLTE1My41dC01Ni41IC0yMTJ0NTYuNSAtMjEyIHQxNTMuNSAtMTUzLjV0MjEyIC01Ni41dDIxMiA1Ni41dDE1My41IDE1My41dDU2LjUgMjEydC01Ni41IDIxMnQtMTUzLjUgMTUzLjV0LTIxMiA1Ni41ek02MDAgNzk0cTgwIDAgMTM3IC01N3Q1NyAtMTM3dC01NyAtMTM3dC0xMzcgLTU3dC0xMzcgNTd0LTU3IDEzN3Q1NyAxMzd0MTM3IDU3eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNjY7IiBkPSJNNDUwIDEyMDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0zNTBoMjQ1cTIwIDAgMjUgLTExdC05IC0yNmwtMzgzIC00MjZxLTE0IC0xNSAtMzMuNSAtMTV0LTMyLjUgMTVsLTM3OSA0MjZxLTEzIDE1IC04LjUgMjZ0MjUuNSAxMWgyNTB2MzUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgMzAwaDEwMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTI1MGgtMTEwMHYyNTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiBNOTAwIDIwMHYtNTBoMTAwdjUwaC0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE2NzsiIGQ9Ik01ODMgMTE4MmwzNzggLTQzNXExNCAtMTUgOSAtMzF0LTI2IC0xNmgtMjQ0di0yNTBxMCAtMjAgLTE3IC0zNXQtMzkgLTE1aC0yMDBxLTIwIDAgLTMyIDE0LjV0LTEyIDM1LjV2MjUwaC0yNTBxLTIwIDAgLTI1LjUgMTYuNXQ4LjUgMzEuNWwzODMgNDMxcTE0IDE2IDMzLjUgMTd0MzMuNSAtMTR6TTUwIDMwMGgxMDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yNTBoLTExMDB2MjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXogTTkwMCAyMDB2LTUwaDEwMHY1MGgtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNjg7IiBkPSJNMzk2IDcyM2wzNjkgMzY5cTcgNyAxNy41IDd0MTcuNSAtN2wxMzkgLTEzOXE3IC04IDcgLTE4LjV0LTcgLTE3LjVsLTUyNSAtNTI1cS03IC04IC0xNy41IC04dC0xNy41IDhsLTI5MiAyOTFxLTcgOCAtNyAxOHQ3IDE4bDEzOSAxMzlxOCA3IDE4LjUgN3QxNy41IC03ek01MCAzMDBoMTAwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjUwaC0xMTAwdjI1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTkwMCAyMDB2LTUwaDEwMHY1MCBoLTEwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTY5OyIgZD0iTTEzNSAxMDIzbDE0MiAxNDJxMTQgMTQgMzUgMTR0MzUgLTE0bDc3IC03N2wtMjEyIC0yMTJsLTc3IDc2cS0xNCAxNSAtMTQgMzZ0MTQgMzV6TTY1NSA4NTVsMjEwIDIxMHExNCAxNCAyNC41IDEwdDEwLjUgLTI1bC0yIC01OTlxLTEgLTIwIC0xNS41IC0zNXQtMzUuNSAtMTVsLTU5NyAtMXEtMjEgMCAtMjUgMTAuNXQxMCAyNC41bDIwOCAyMDhsLTE1NCAxNTVsMjEyIDIxMnpNNTAgMzAwaDEwMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjUgdi0yNTBoLTExMDB2MjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNOTAwIDIwMHYtNTBoMTAwdjUwaC0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE3MDsiIGQ9Ik0zNTAgMTIwMGw1OTkgLTJxMjAgLTEgMzUgLTE1LjV0MTUgLTM1LjVsMSAtNTk3cTAgLTIxIC0xMC41IC0yNXQtMjQuNSAxMGwtMjA4IDIwOGwtMTU1IC0xNTRsLTIxMiAyMTJsMTU1IDE1NGwtMjEwIDIxMHEtMTQgMTQgLTEwIDI0LjV0MjUgMTAuNXpNNTI0IDUxMmwtNzYgLTc3cS0xNSAtMTQgLTM2IC0xNHQtMzUgMTRsLTE0MiAxNDJxLTE0IDE0IC0xNCAzNXQxNCAzNWw3NyA3N3pNNTAgMzAwaDEwMDBxMjEgMCAzNS41IC0xNC41IHQxNC41IC0zNS41di0yNTBoLTExMDB2MjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNOTAwIDIwMHYtNTBoMTAwdjUwaC0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE3MTsiIGQ9Ik0xMjAwIDEwM2wtNDgzIDI3NmwtMzE0IC0zOTl2NDIzaC0zOTlsMTE5NiA3OTZ2LTEwOTZ6TTQ4MyA0MjR2LTIzMGw2ODMgOTUzeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNzI7IiBkPSJNMTEwMCAxMDAwdi04NTBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTE1MHY0MDBoLTcwMHYtNDAwaC0xNTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMDBxMCAyMCAxNC41IDM1dDM1LjUgMTVoMjUwdi0zMDBoNTAwdjMwMGgxMDB6TTcwMCAxMDAwaC0xMDB2MjAwaDEwMHYtMjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNzM7IiBkPSJNMTEwMCAxMDAwbC0yIC0xNDlsLTI5OSAtMjk5bC05NSA5NXEtOSA5IC0yMS41IDl0LTIxLjUgLTlsLTE0OSAtMTQ3aC0zMTJ2LTQwMGgtMTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDAwcTAgMjAgMTQuNSAzNXQzNS41IDE1aDI1MHYtMzAwaDUwMHYzMDBoMTAwek03MDAgMTAwMGgtMTAwdjIwMGgxMDB2LTIwMHpNMTEzMiA2MzhsMTA2IC0xMDZxNyAtNyA3IC0xNy41dC03IC0xNy41bC00MjAgLTQyMXEtOCAtNyAtMTggLTcgdC0xOCA3bC0yMDIgMjAzcS04IDcgLTggMTcuNXQ4IDE3LjVsMTA2IDEwNnE3IDggMTcuNSA4dDE3LjUgLThsNzkgLTc5bDI5NyAyOTdxNyA3IDE3LjUgN3QxNy41IC03eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNzQ7IiBkPSJNMTEwMCAxMDAwdi0yNjlsLTEwMyAtMTAzbC0xMzQgMTM0cS0xNSAxNSAtMzMuNSAxNi41dC0zNC41IC0xMi41bC0yNjYgLTI2NmgtMzI5di00MDBoLTE1MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwMHEwIDIwIDE0LjUgMzV0MzUuNSAxNWgyNTB2LTMwMGg1MDB2MzAwaDEwMHpNNzAwIDEwMDBoLTEwMHYyMDBoMTAwdi0yMDB6TTEyMDIgNTcybDcwIC03MHExNSAtMTUgMTUgLTM1LjV0LTE1IC0zNS41bC0xMzEgLTEzMSBsMTMxIC0xMzFxMTUgLTE1IDE1IC0zNS41dC0xNSAtMzUuNWwtNzAgLTcwcS0xNSAtMTUgLTM1LjUgLTE1dC0zNS41IDE1bC0xMzEgMTMxbC0xMzEgLTEzMXEtMTUgLTE1IC0zNS41IC0xNXQtMzUuNSAxNWwtNzAgNzBxLTE1IDE1IC0xNSAzNS41dDE1IDM1LjVsMTMxIDEzMWwtMTMxIDEzMXEtMTUgMTUgLTE1IDM1LjV0MTUgMzUuNWw3MCA3MHExNSAxNSAzNS41IDE1dDM1LjUgLTE1bDEzMSAtMTMxbDEzMSAxMzFxMTUgMTUgMzUuNSAxNSB0MzUuNSAtMTV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE3NTsiIGQ9Ik0xMTAwIDEwMDB2LTMwMGgtMzUwcS0yMSAwIC0zNS41IC0xNC41dC0xNC41IC0zNS41di0xNTBoLTUwMHYtNDAwaC0xNTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMDBxMCAyMCAxNC41IDM1dDM1LjUgMTVoMjUwdi0zMDBoNTAwdjMwMGgxMDB6TTcwMCAxMDAwaC0xMDB2MjAwaDEwMHYtMjAwek04NTAgNjAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjUwaDE1MHEyMSAwIDI1IC0xMC41dC0xMCAtMjQuNSBsLTIzMCAtMjMwcS0xNCAtMTQgLTM1IC0xNHQtMzUgMTRsLTIzMCAyMzBxLTE0IDE0IC0xMCAyNC41dDI1IDEwLjVoMTUwdjI1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE3NjsiIGQ9Ik0xMTAwIDEwMDB2LTQwMGwtMTY1IDE2NXEtMTQgMTUgLTM1IDE1dC0zNSAtMTVsLTI2MyAtMjY1aC00MDJ2LTQwMGgtMTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDAwcTAgMjAgMTQuNSAzNXQzNS41IDE1aDI1MHYtMzAwaDUwMHYzMDBoMTAwek03MDAgMTAwMGgtMTAwdjIwMGgxMDB2LTIwMHpNOTM1IDU2NWwyMzAgLTIyOXExNCAtMTUgMTAgLTI1LjV0LTI1IC0xMC41aC0xNTB2LTI1MHEwIC0yMCAtMTQuNSAtMzUgdC0zNS41IC0xNWgtMTAwcS0yMSAwIC0zNS41IDE1dC0xNC41IDM1djI1MGgtMTUwcS0yMSAwIC0yNSAxMC41dDEwIDI1LjVsMjMwIDIyOXExNCAxNSAzNSAxNXQzNSAtMTV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE3NzsiIGQ9Ik01MCAxMTAwaDExMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTE1MGgtMTIwMHYxNTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0xMjAwIDgwMHYtNTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY1NTBoMTIwMHpNMTAwIDUwMHYtMjAwaDQwMHYyMDBoLTQwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTc4OyIgZD0iTTkzNSAxMTY1bDI0OCAtMjMwcTE0IC0xNCAxNCAtMzV0LTE0IC0zNWwtMjQ4IC0yMzBxLTE0IC0xNCAtMjQuNSAtMTB0LTEwLjUgMjV2MTUwaC00MDB2MjAwaDQwMHYxNTBxMCAyMSAxMC41IDI1dDI0LjUgLTEwek0yMDAgODAwaC01MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWg1MHYtMjAwek00MDAgODAwaC0xMDB2MjAwaDEwMHYtMjAwek0xOCA0MzVsMjQ3IDIzMCBxMTQgMTQgMjQuNSAxMHQxMC41IC0yNXYtMTUwaDQwMHYtMjAwaC00MDB2LTE1MHEwIC0yMSAtMTAuNSAtMjV0LTI0LjUgMTBsLTI0NyAyMzBxLTE1IDE0IC0xNSAzNXQxNSAzNXpNOTAwIDMwMGgtMTAwdjIwMGgxMDB2LTIwMHpNMTAwMCA1MDBoNTFxMjAgMCAzNC41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzQuNSAtMTQuNWgtNTF2MjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNzk7IiBkPSJNODYyIDEwNzNsMjc2IDExNnEyNSAxOCA0My41IDh0MTguNSAtNDF2LTExMDZxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2Mzk3cS00IDEgLTExIDV0LTI0IDE3LjV0LTMwIDI5dC0yNCA0MnQtMTEgNTYuNXYzNTlxMCAzMSAxOC41IDY1dDQzLjUgNTJ6TTU1MCAxMjAwcTIyIDAgMzQuNSAtMTIuNXQxNC41IC0yNC41bDEgLTEzdi00NTBxMCAtMjggLTEwLjUgLTU5LjUgdC0yNSAtNTZ0LTI5IC00NXQtMjUuNSAtMzEuNWwtMTAgLTExdi00NDdxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NDQ3cS00IDQgLTExIDExLjV0LTI0IDMwLjV0LTMwIDQ2dC0yNCA1NXQtMTEgNjB2NDUwcTAgMiAwLjUgNS41dDQgMTJ0OC41IDE1dDE0LjUgMTJ0MjIuNSA1LjVxMjAgMCAzMi41IC0xMi41dDE0LjUgLTI0LjVsMyAtMTN2LTM1MGgxMDB2MzUwdjUuNXQyLjUgMTIgdDcgMTV0MTUgMTJ0MjUuNSA1LjVxMjMgMCAzNS41IC0xMi41dDEzLjUgLTI0LjVsMSAtMTN2LTM1MGgxMDB2MzUwcTAgMiAwLjUgNS41dDMgMTJ0NyAxNXQxNSAxMnQyNC41IDUuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTgwOyIgZD0iTTEyMDAgMTEwMHYtNTZxLTQgMCAtMTEgLTAuNXQtMjQgLTN0LTMwIC03LjV0LTI0IC0xNXQtMTEgLTI0di04ODhxMCAtMjIgMjUgLTM0LjV0NTAgLTEzLjVsMjUgLTJ2LTU2aC00MDB2NTZxNzUgMCA4Ny41IDYuNXQxMi41IDQzLjV2Mzk0aC01MDB2LTM5NHEwIC0zNyAxMi41IC00My41dDg3LjUgLTYuNXYtNTZoLTQwMHY1NnE0IDAgMTEgMC41dDI0IDN0MzAgNy41dDI0IDE1dDExIDI0djg4OHEwIDIyIC0yNSAzNC41dC01MCAxMy41IGwtMjUgMnY1Nmg0MDB2LTU2cS03NSAwIC04Ny41IC02LjV0LTEyLjUgLTQzLjV2LTM5NGg1MDB2Mzk0cTAgMzcgLTEyLjUgNDMuNXQtODcuNSA2LjV2NTZoNDAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxODE7IiBkPSJNNjc1IDEwMDBoMzc1cTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xNTBoLTEwNWwtMjk1IC05OHY5OGwtMjAwIDIwMGgtNDAwbDEwMCAxMDBoMzc1ek0xMDAgOTAwaDMwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtNTAwcTAgLTQxIC0yOS41IC03MC41dC03MC41IC0yOS41aC0zMDBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djUwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjV6TTEwMCA4MDB2LTIwMGgzMDB2MjAwIGgtMzAwek0xMTAwIDUzNWwtNDAwIC0xMzN2MTYzbDQwMCAxMzN2LTE2M3pNMTAwIDUwMHYtMjAwaDMwMHYyMDBoLTMwMHpNMTEwMCAzOTh2LTI0OHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMzc1bC0xMDAgLTEwMGgtMzc1bC0xMDAgMTAwaDQwMGwyMDAgMjAwaDEwNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTgyOyIgZD0iTTE3IDEwMDdsMTYyIDE2MnExNyAxNyA0MCAxNHQzNyAtMjJsMTM5IC0xOTRxMTQgLTIwIDExIC00NC41dC0yMCAtNDEuNWwtMTE5IC0xMThxMTAyIC0xNDIgMjI4IC0yNjh0MjY3IC0yMjdsMTE5IDExOHExNyAxNyA0Mi41IDE5dDQ0LjUgLTEybDE5MiAtMTM2cTE5IC0xNCAyMi41IC0zNy41dC0xMy41IC00MC41bC0xNjMgLTE2MnEtMyAtMSAtOS41IC0xdC0yOS41IDJ0LTQ3LjUgNnQtNjIuNSAxNC41dC03Ny41IDI2LjV0LTkwIDQyLjUgdC0xMDEuNSA2MHQtMTExIDgzdC0xMTkgMTA4LjVxLTc0IDc0IC0xMzMuNSAxNTAuNXQtOTQuNSAxMzguNXQtNjAgMTE5LjV0LTM0LjUgMTAwdC0xNSA3NC41dC00LjUgNDh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE4MzsiIGQ9Ik02MDAgMTEwMHE5MiAwIDE3NSAtMTAuNXQxNDEuNSAtMjd0MTA4LjUgLTM2LjV0ODEuNSAtNDB0NTMuNSAtMzd0MzEgLTI3bDkgLTEwdi0yMDBxMCAtMjEgLTE0LjUgLTMzdC0zNC41IC05bC0yMDIgMzRxLTIwIDMgLTM0LjUgMjB0LTE0LjUgMzh2MTQ2cS0xNDEgMjQgLTMwMCAyNHQtMzAwIC0yNHYtMTQ2cTAgLTIxIC0xNC41IC0zOHQtMzQuNSAtMjBsLTIwMiAtMzRxLTIwIC0zIC0zNC41IDl0LTE0LjUgMzN2MjAwcTMgNCA5LjUgMTAuNSB0MzEgMjZ0NTQgMzcuNXQ4MC41IDM5LjV0MTA5IDM3LjV0MTQxIDI2LjV0MTc1IDEwLjV6TTYwMCA3OTVxNTYgMCA5NyAtOS41dDYwIC0yMy41dDMwIC0yOHQxMiAtMjRsMSAtMTB2LTUwbDM2NSAtMzAzcTE0IC0xNSAyNC41IC00MHQxMC41IC00NXYtMjEycTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYyMTJxMCAyMCAxMC41IDQ1dDI0LjUgNDBsMzY1IDMwM3Y1MCBxMCA0IDEgMTAuNXQxMiAyM3QzMCAyOXQ2MCAyMi41dDk3IDEweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxODQ7IiBkPSJNMTEwMCA3MDBsLTIwMCAtMjAwaC02MDBsLTIwMCAyMDB2NTAwaDIwMHYtMjAwaDIwMHYyMDBoMjAwdi0yMDBoMjAwdjIwMGgyMDB2LTUwMHpNMjUwIDQwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV0LTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEybDEzNyAtMTAwaC05NTBsMTM3IDEwMGgtMTJxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDEwMGgxMTAwcTIxIDAgMzUuNSAtMTQuNSB0MTQuNSAtMzUuNXYtNTBoLTEyMDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxODU7IiBkPSJNNzAwIDExMDBoLTEwMHEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNXYtMTAwMGgzMDB2MTAwMHEwIDQxIC0yOS41IDcwLjV0LTcwLjUgMjkuNXpNMTEwMCA4MDBoLTEwMHEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNXYtNzAwaDMwMHY3MDBxMCA0MSAtMjkuNSA3MC41dC03MC41IDI5LjV6TTQwMCAwaC0zMDB2NDAwcTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNWgxMDBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTQwMHogIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE4NjsiIGQ9Ik0yMDAgMTEwMGg3MDBxMTI0IDAgMjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4aC03MDBxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnY1MDBxMCAxMjQgODggMjEydDIxMiA4OHpNMTAwIDkwMHYtNzAwaDkwMHY3MDBoLTkwMHpNNTAwIDcwMGgtMjAwdi0xMDBoMjAwdi0zMDBoLTMwMHYxMDBoMjAwdjEwMGgtMjAwdjMwMGgzMDB2LTEwMHpNOTAwIDcwMHYtMzAwbC0xMDAgLTEwMGgtMjAwdjUwMGgyMDB6IE03MDAgNzAwdi0zMDBoMTAwdjMwMGgtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxODc7IiBkPSJNMjAwIDExMDBoNzAwcTEyNCAwIDIxMiAtODh0ODggLTIxMnYtNTAwcTAgLTEyNCAtODggLTIxMnQtMjEyIC04OGgtNzAwcS0xMjQgMCAtMjEyIDg4dC04OCAyMTJ2NTAwcTAgMTI0IDg4IDIxMnQyMTIgODh6TTEwMCA5MDB2LTcwMGg5MDB2NzAwaC05MDB6TTUwMCAzMDBoLTEwMHYyMDBoLTEwMHYtMjAwaC0xMDB2NTAwaDEwMHYtMjAwaDEwMHYyMDBoMTAwdi01MDB6TTkwMCA3MDB2LTMwMGwtMTAwIC0xMDBoLTIwMHY1MDBoMjAweiBNNzAwIDcwMHYtMzAwaDEwMHYzMDBoLTEwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTg4OyIgZD0iTTIwMCAxMTAwaDcwMHExMjQgMCAyMTIgLTg4dDg4IC0yMTJ2LTUwMHEwIC0xMjQgLTg4IC0yMTJ0LTIxMiAtODhoLTcwMHEtMTI0IDAgLTIxMiA4OHQtODggMjEydjUwMHEwIDEyNCA4OCAyMTJ0MjEyIDg4ek0xMDAgOTAwdi03MDBoOTAwdjcwMGgtOTAwek01MDAgNzAwaC0yMDB2LTMwMGgyMDB2LTEwMGgtMzAwdjUwMGgzMDB2LTEwMHpNOTAwIDcwMGgtMjAwdi0zMDBoMjAwdi0xMDBoLTMwMHY1MDBoMzAwdi0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE4OTsiIGQ9Ik0yMDAgMTEwMGg3MDBxMTI0IDAgMjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4aC03MDBxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnY1MDBxMCAxMjQgODggMjEydDIxMiA4OHpNMTAwIDkwMHYtNzAwaDkwMHY3MDBoLTkwMHpNNTAwIDQwMGwtMzAwIDE1MGwzMDAgMTUwdi0zMDB6TTkwMCA1NTBsLTMwMCAtMTUwdjMwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTkwOyIgZD0iTTIwMCAxMTAwaDcwMHExMjQgMCAyMTIgLTg4dDg4IC0yMTJ2LTUwMHEwIC0xMjQgLTg4IC0yMTJ0LTIxMiAtODhoLTcwMHEtMTI0IDAgLTIxMiA4OHQtODggMjEydjUwMHEwIDEyNCA4OCAyMTJ0MjEyIDg4ek0xMDAgOTAwdi03MDBoOTAwdjcwMGgtOTAwek05MDAgMzAwaC03MDB2NTAwaDcwMHYtNTAwek04MDAgNzAwaC0xMzBxLTM4IDAgLTY2LjUgLTQzdC0yOC41IC0xMDh0MjcgLTEwN3Q2OCAtNDJoMTMwdjMwMHpNMzAwIDcwMHYtMzAwIGgxMzBxNDEgMCA2OCA0MnQyNyAxMDd0LTI4LjUgMTA4dC02Ni41IDQzaC0xMzB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE5MTsiIGQ9Ik0yMDAgMTEwMGg3MDBxMTI0IDAgMjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4aC03MDBxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnY1MDBxMCAxMjQgODggMjEydDIxMiA4OHpNMTAwIDkwMHYtNzAwaDkwMHY3MDBoLTkwMHpNNTAwIDcwMGgtMjAwdi0xMDBoMjAwdi0zMDBoLTMwMHYxMDBoMjAwdjEwMGgtMjAwdjMwMGgzMDB2LTEwMHpNOTAwIDMwMGgtMTAwdjQwMGgtMTAwdjEwMGgyMDB2LTUwMHogTTcwMCAzMDBoLTEwMHYxMDBoMTAwdi0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE5MjsiIGQ9Ik0yMDAgMTEwMGg3MDBxMTI0IDAgMjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4aC03MDBxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnY1MDBxMCAxMjQgODggMjEydDIxMiA4OHpNMTAwIDkwMHYtNzAwaDkwMHY3MDBoLTkwMHpNMzAwIDcwMGgyMDB2LTQwMGgtMzAwdjUwMGgxMDB2LTEwMHpNOTAwIDMwMGgtMTAwdjQwMGgtMTAwdjEwMGgyMDB2LTUwMHpNMzAwIDYwMHYtMjAwaDEwMHYyMDBoLTEwMHogTTcwMCAzMDBoLTEwMHYxMDBoMTAwdi0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE5MzsiIGQ9Ik0yMDAgMTEwMGg3MDBxMTI0IDAgMjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4aC03MDBxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnY1MDBxMCAxMjQgODggMjEydDIxMiA4OHpNMTAwIDkwMHYtNzAwaDkwMHY3MDBoLTkwMHpNNTAwIDUwMGwtMTk5IC0yMDBoLTEwMHY1MGwxOTkgMjAwdjE1MGgtMjAwdjEwMGgzMDB2LTMwMHpNOTAwIDMwMGgtMTAwdjQwMGgtMTAwdjEwMGgyMDB2LTUwMHpNNzAxIDMwMGgtMTAwIHYxMDBoMTAwdi0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE5NDsiIGQ9Ik02MDAgMTE5MXExMjAgMCAyMjkuNSAtNDd0MTg4LjUgLTEyNnQxMjYgLTE4OC41dDQ3IC0yMjkuNXQtNDcgLTIyOS41dC0xMjYgLTE4OC41dC0xODguNSAtMTI2dC0yMjkuNSAtNDd0LTIyOS41IDQ3dC0xODguNSAxMjZ0LTEyNiAxODguNXQtNDcgMjI5LjV0NDcgMjI5LjV0MTI2IDE4OC41dDE4OC41IDEyNnQyMjkuNSA0N3pNNjAwIDEwMjFxLTExNCAwIC0yMTEgLTU2LjV0LTE1My41IC0xNTMuNXQtNTYuNSAtMjExdDU2LjUgLTIxMSB0MTUzLjUgLTE1My41dDIxMSAtNTYuNXQyMTEgNTYuNXQxNTMuNSAxNTMuNXQ1Ni41IDIxMXQtNTYuNSAyMTF0LTE1My41IDE1My41dC0yMTEgNTYuNXpNODAwIDcwMGgtMzAwdi0yMDBoMzAwdi0xMDBoLTMwMGwtMTAwIDEwMHYyMDBsMTAwIDEwMGgzMDB2LTEwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTk1OyIgZD0iTTYwMCAxMTkxcTEyMCAwIDIyOS41IC00N3QxODguNSAtMTI2dDEyNiAtMTg4LjV0NDcgLTIyOS41dC00NyAtMjI5LjV0LTEyNiAtMTg4LjV0LTE4OC41IC0xMjZ0LTIyOS41IC00N3QtMjI5LjUgNDd0LTE4OC41IDEyNnQtMTI2IDE4OC41dC00NyAyMjkuNXQ0NyAyMjkuNXQxMjYgMTg4LjV0MTg4LjUgMTI2dDIyOS41IDQ3ek02MDAgMTAyMXEtMTE0IDAgLTIxMSAtNTYuNXQtMTUzLjUgLTE1My41dC01Ni41IC0yMTF0NTYuNSAtMjExIHQxNTMuNSAtMTUzLjV0MjExIC01Ni41dDIxMSA1Ni41dDE1My41IDE1My41dDU2LjUgMjExdC01Ni41IDIxMXQtMTUzLjUgMTUzLjV0LTIxMSA1Ni41ek04MDAgNzAwdi0xMDBsLTUwIC01MGwxMDAgLTEwMHYtNTBoLTEwMGwtMTAwIDEwMGgtMTUwdi0xMDBoLTEwMHY0MDBoMzAwek01MDAgNzAwdi0xMDBoMjAwdjEwMGgtMjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxOTc7IiBkPSJNNTAzIDEwODlxMTEwIDAgMjAwLjUgLTU5LjV0MTM0LjUgLTE1Ni41cTQ0IDE0IDkwIDE0cTEyMCAwIDIwNSAtODYuNXQ4NSAtMjA3dC04NSAtMjA3dC0yMDUgLTg2LjVoLTEyOHYyNTBxMCAyMSAtMTQuNSAzNS41dC0zNS41IDE0LjVoLTMwMHEtMjEgMCAtMzUuNSAtMTQuNXQtMTQuNSAtMzUuNXYtMjUwaC0yMjJxLTgwIDAgLTEzNiA1Ny41dC01NiAxMzYuNXEwIDY5IDQzIDEyMi41dDEwOCA2Ny41cS0yIDE5IC0yIDM3cTAgMTAwIDQ5IDE4NSB0MTM0IDEzNHQxODUgNDl6TTUyNSA1MDBoMTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMjc1aDEzN3EyMSAwIDI2IC0xMS41dC04IC0yNy41bC0yMjMgLTI0NHEtMTMgLTE2IC0zMiAtMTZ0LTMyIDE2bC0yMjMgMjQ0cS0xMyAxNiAtOCAyNy41dDI2IDExLjVoMTM3djI3NXEwIDEwIDcuNSAxNy41dDE3LjUgNy41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxOTg7IiBkPSJNNTAyIDEwODlxMTEwIDAgMjAxIC01OS41dDEzNSAtMTU2LjVxNDMgMTUgODkgMTVxMTIxIDAgMjA2IC04Ni41dDg2IC0yMDYuNXEwIC05OSAtNjAgLTE4MXQtMTUwIC0xMTBsLTM3OCAzNjBxLTEzIDE2IC0zMS41IDE2dC0zMS41IC0xNmwtMzgxIC0zNjVoLTlxLTc5IDAgLTEzNS41IDU3LjV0LTU2LjUgMTM2LjVxMCA2OSA0MyAxMjIuNXQxMDggNjcuNXEtMiAxOSAtMiAzOHEwIDEwMCA0OSAxODQuNXQxMzMuNSAxMzR0MTg0LjUgNDkuNXogTTYzMiA0NjdsMjIzIC0yMjhxMTMgLTE2IDggLTI3LjV0LTI2IC0xMS41aC0xMzd2LTI3NXEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djI3NWgtMTM3cS0yMSAwIC0yNiAxMS41dDggMjcuNXExOTkgMjA0IDIyMyAyMjhxMTkgMTkgMzEuNSAxOXQzMi41IC0xOXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTk5OyIgZD0iTTcwMCAxMDB2MTAwaDQwMGwtMjcwIDMwMGgxNzBsLTI3MCAzMDBoMTcwbC0zMDAgMzMzbC0zMDAgLTMzM2gxNzBsLTI3MCAtMzAwaDE3MGwtMjcwIC0zMDBoNDAwdi0xMDBoLTUwcS0yMSAwIC0zNS41IC0xNC41dC0xNC41IC0zNS41di01MGg0MDB2NTBxMCAyMSAtMTQuNSAzNS41dC0zNS41IDE0LjVoLTUweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMDA7IiBkPSJNNjAwIDExNzlxOTQgMCAxNjcuNSAtNTYuNXQ5OS41IC0xNDUuNXE4OSAtNiAxNTAuNSAtNzEuNXQ2MS41IC0xNTUuNXEwIC02MSAtMjkuNSAtMTEyLjV0LTc5LjUgLTgyLjVxOSAtMjkgOSAtNTVxMCAtNzQgLTUyLjUgLTEyNi41dC0xMjYuNSAtNTIuNXEtNTUgMCAtMTAwIDMwdi0yNTFxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTUwaC0zMDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41djI1MXEtNDUgLTMwIC0xMDAgLTMwIHEtNzQgMCAtMTI2LjUgNTIuNXQtNTIuNSAxMjYuNXEwIDE4IDQgMzhxLTQ3IDIxIC03NS41IDY1dC0yOC41IDk3cTAgNzQgNTIuNSAxMjYuNXQxMjYuNSA1Mi41cTUgMCAyMyAtMnEwIDIgLTEgMTB0LTEgMTNxMCAxMTYgODEuNSAxOTcuNXQxOTcuNSA4MS41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMDE7IiBkPSJNMTAxMCAxMDEwcTExMSAtMTExIDE1MC41IC0yNjAuNXQwIC0yOTl0LTE1MC41IC0yNjAuNXEtODMgLTgzIC0xOTEuNSAtMTI2LjV0LTIxOC41IC00My41dC0yMTguNSA0My41dC0xOTEuNSAxMjYuNXEtMTExIDExMSAtMTUwLjUgMjYwLjV0MCAyOTl0MTUwLjUgMjYwLjVxODMgODMgMTkxLjUgMTI2LjV0MjE4LjUgNDMuNXQyMTguNSAtNDMuNXQxOTEuNSAtMTI2LjV6TTQ3NiAxMDY1cS00IDAgLTggLTFxLTEyMSAtMzQgLTIwOS41IC0xMjIuNSB0LTEyMi41IC0yMDkuNXEtNCAtMTIgMi41IC0yM3QxOC41IC0xNGwzNiAtOXEzIC0xIDcgLTFxMjMgMCAyOSAyMnEyNyA5NiA5OCAxNjZxNzAgNzEgMTY2IDk4cTExIDMgMTcuNSAxMy41dDMuNSAyMi41bC05IDM1cS0zIDEzIC0xNCAxOXEtNyA0IC0xNSA0ek01MTIgOTIwcS00IDAgLTkgLTJxLTgwIC0yNCAtMTM4LjUgLTgyLjV0LTgyLjUgLTEzOC41cS00IC0xMyAyIC0yNHQxOSAtMTRsMzQgLTlxNCAtMSA4IC0xcTIyIDAgMjggMjEgcTE4IDU4IDU4LjUgOTguNXQ5Ny41IDU4LjVxMTIgMyAxOCAxMy41dDMgMjEuNWwtOSAzNXEtMyAxMiAtMTQgMTlxLTcgNCAtMTUgNHpNNzE5LjUgNzE5LjVxLTQ5LjUgNDkuNSAtMTE5LjUgNDkuNXQtMTE5LjUgLTQ5LjV0LTQ5LjUgLTExOS41dDQ5LjUgLTExOS41dDExOS41IC00OS41dDExOS41IDQ5LjV0NDkuNSAxMTkuNXQtNDkuNSAxMTkuNXpNODU1IDU1MXEtMjIgMCAtMjggLTIxcS0xOCAtNTggLTU4LjUgLTk4LjV0LTk4LjUgLTU3LjUgcS0xMSAtNCAtMTcgLTE0LjV0LTMgLTIxLjVsOSAtMzVxMyAtMTIgMTQgLTE5cTcgLTQgMTUgLTRxNCAwIDkgMnE4MCAyNCAxMzguNSA4Mi41dDgyLjUgMTM4LjVxNCAxMyAtMi41IDI0dC0xOC41IDE0bC0zNCA5cS00IDEgLTggMXpNMTAwMCA1MTVxLTIzIDAgLTI5IC0yMnEtMjcgLTk2IC05OCAtMTY2cS03MCAtNzEgLTE2NiAtOThxLTExIC0zIC0xNy41IC0xMy41dC0zLjUgLTIyLjVsOSAtMzVxMyAtMTMgMTQgLTE5cTcgLTQgMTUgLTQgcTQgMCA4IDFxMTIxIDM0IDIwOS41IDEyMi41dDEyMi41IDIwOS41cTQgMTIgLTIuNSAyM3QtMTguNSAxNGwtMzYgOXEtMyAxIC03IDF6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIwMjsiIGQ9Ik03MDAgODAwaDMwMHYtMzgwaC0xODB2MjAwaC0zNDB2LTIwMGgtMzgwdjc1NXEwIDEwIDcuNSAxNy41dDE3LjUgNy41aDU3NXYtNDAwek0xMDAwIDkwMGgtMjAwdjIwMHpNNzAwIDMwMGgxNjJsLTIxMiAtMjEybC0yMTIgMjEyaDE2MnYyMDBoMTAwdi0yMDB6TTUyMCAwaC0zOTVxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYzOTV6TTEwMDAgMjIwdi0xOTVxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0xOTV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIwMzsiIGQ9Ik03MDAgODAwaDMwMHYtNTIwbC0zNTAgMzUwbC01NTAgLTU1MHYxMDk1cTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoNTc1di00MDB6TTEwMDAgOTAwaC0yMDB2MjAwek04NjIgMjAwaC0xNjJ2LTIwMGgtMTAwdjIwMGgtMTYybDIxMiAyMTJ6TTQ4MCAwaC0zNTVxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1NWgzODB2LTgwek0xMDAwIDgwdi01NXEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE1NXY4MGgxODB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIwNDsiIGQ9Ik0xMTYyIDgwMGgtMTYydi0yMDBoMTAwbDEwMCAtMTAwaC0zMDB2MzAwaC0xNjJsMjEyIDIxMnpNMjAwIDgwMGgyMDBxMjcgMCA0MCAtMnQyOS41IC0xMC41dDIzLjUgLTMwdDcgLTU3LjVoMzAwdi0xMDBoLTYwMGwtMjAwIC0zNTB2NDUwaDEwMHEwIDM2IDcgNTcuNXQyMy41IDMwdDI5LjUgMTAuNXQ0MCAyek04MDAgNDAwaDI0MGwtMjQwIC00MDBoLTgwMGwzMDAgNTAwaDUwMHYtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMDU7IiBkPSJNNjUwIDExMDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGg1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0zMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoNTB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0xMDAwIDg1MHYxNTBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTgwMCBxMCAtNDEgLTI5LjUgLTcwLjV0LTcwLjUgLTI5LjVoLTYwMHEtMSAwIC0yMCA0bDI0NiAyNDZsLTMyNiAzMjZ2MzI0cTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNXYtMTUwcTAgLTYyIDQ0IC0xMDZ0MTA2IC00NGgzMDBxNjIgMCAxMDYgNDR0NDQgMTA2ek00MTIgMjUwbC0yMTIgLTIxMnYxNjJoLTIwMHYxMDBoMjAwdjE2MnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjA2OyIgZD0iTTQ1MCAxMTAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTBoNTBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMzAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDUwdjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNODAwIDg1MHYxNTBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTUwMCBoLTIwMHYtMzAwaDIwMHEwIC0zNiAtNyAtNTcuNXQtMjMuNSAtMzB0LTI5LjUgLTEwLjV0LTQwIC0yaC02MDBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djgwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjV2LTE1MHEwIC02MiA0NCAtMTA2dDEwNiAtNDRoMzAwcTYyIDAgMTA2IDQ0dDQ0IDEwNnpNMTIxMiAyNTBsLTIxMiAtMjEydjE2MmgtMjAwdjEwMGgyMDB2MTYyeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMDk7IiBkPSJNNjU4IDExOTdsNjM3IC0xMTA0cTIzIC0zOCA3IC02NS41dC02MCAtMjcuNWgtMTI3NnEtNDQgMCAtNjAgMjcuNXQ3IDY1LjVsNjM3IDExMDRxMjIgMzkgNTQgMzl0NTQgLTM5ek03MDQgODAwaC0yMDhxLTIwIDAgLTMyIC0xNC41dC04IC0zNC41bDU4IC0zMDJxNCAtMjAgMjEuNSAtMzQuNXQzNy41IC0xNC41aDU0cTIwIDAgMzcuNSAxNC41dDIxLjUgMzQuNWw1OCAzMDJxNCAyMCAtOCAzNC41dC0zMiAxNC41ek01MDAgMzAwdi0xMDBoMjAwIHYxMDBoLTIwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjEwOyIgZD0iTTQyNSAxMTAwaDI1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTI1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek00MjUgODAwaDI1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTI1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MHEwIDEwIDcuNSAxNy41IHQxNy41IDcuNXpNODI1IDgwMGgyNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNMjUgNTAwaDI1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTI1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MCBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNNDI1IDUwMGgyNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNODI1IDUwMGgyNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNSB2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTI1IDIwMGgyNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNNDI1IDIwMGgyNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41IHQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTgyNSAyMDBoMjUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMjUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIxMTsiIGQ9Ik03MDAgMTIwMGgxMDB2LTIwMGgtMTAwdi0xMDBoMzUwcTYyIDAgODYuNSAtMzkuNXQtMy41IC05NC41bC02NiAtMTMycS00MSAtODMgLTgxIC0xMzRoLTc3MnEtNDAgNTEgLTgxIDEzNGwtNjYgMTMycS0yOCA1NSAtMy41IDk0LjV0ODYuNSAzOS41aDM1MHYxMDBoLTEwMHYyMDBoMTAwdjEwMGgyMDB2LTEwMHpNMjUwIDQwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV0LTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEybDEzNyAtMTAwIGgtOTUwbDEzOCAxMDBoLTEzcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXQxNC41IDM1LjV0MzUuNSAxNC41ek01MCAxMDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTBoLTEyMDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMTI7IiBkPSJNNjAwIDEzMDBxNDAgMCA2OC41IC0yOS41dDI4LjUgLTcwLjVoLTE5NHEwIDQxIDI4LjUgNzAuNXQ2OC41IDI5LjV6TTQ0MyAxMTAwaDMxNHExOCAtMzcgMTggLTc1cTAgLTggLTMgLTI1aDMyOHE0MSAwIDQ0LjUgLTE2LjV0LTMwLjUgLTM4LjVsLTE3NSAtMTQ1aC02NzhsLTE3OCAxNDVxLTM0IDIyIC0yOSAzOC41dDQ2IDE2LjVoMzI4cS0zIDE3IC0zIDI1cTAgMzggMTggNzV6TTI1MCA3MDBoNzAwcTIxIDAgMzUuNSAtMTQuNSB0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTUwdi0yMDBsMjc1IC0yMDBoLTk1MGwyNzUgMjAwdjIwMGgtMTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXQxNC41IDM1LjV0MzUuNSAxNC41ek01MCAxMDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTBoLTEyMDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMTM7IiBkPSJNNjAwIDExODFxNzUgMCAxMjggLTUzdDUzIC0xMjh0LTUzIC0xMjh0LTEyOCAtNTN0LTEyOCA1M3QtNTMgMTI4dDUzIDEyOHQxMjggNTN6TTYwMiA3OThoNDZxMzQgMCA1NS41IC0yOC41dDIxLjUgLTg2LjVxMCAtNzYgMzkgLTE4M2gtMzI0cTM5IDEwNyAzOSAxODNxMCA1OCAyMS41IDg2LjV0NTYuNSAyOC41aDQ1ek0yNTAgNDAwaDcwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTMgbDEzOCAtMTAwaC05NTBsMTM3IDEwMGgtMTJxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDEwMGgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGgtMTIwMHY1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIxNDsiIGQ9Ik02MDAgMTMwMHE0NyAwIDkyLjUgLTUzLjV0NzEgLTEyM3QyNS41IC0xMjMuNXEwIC03OCAtNTUuNSAtMTMzLjV0LTEzMy41IC01NS41dC0xMzMuNSA1NS41dC01NS41IDEzMy41cTAgNjIgMzQgMTQzbDE0NCAtMTQzbDExMSAxMTFsLTE2MyAxNjNxMzQgMjYgNjMgMjZ6TTYwMiA3OThoNDZxMzQgMCA1NS41IC0yOC41dDIxLjUgLTg2LjVxMCAtNzYgMzkgLTE4M2gtMzI0cTM5IDEwNyAzOSAxODNxMCA1OCAyMS41IDg2LjV0NTYuNSAyOC41aDQ1IHpNMjUwIDQwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV0LTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEzbDEzOCAtMTAwaC05NTBsMTM3IDEwMGgtMTJxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDEwMGgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGgtMTIwMHY1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIxNTsiIGQ9Ik02MDAgMTIwMGwzMDAgLTE2MXYtMTM5aC0zMDBxMCAtNTcgMTguNSAtMTA4dDUwIC05MS41dDYzIC03MnQ3MCAtNjcuNXQ1Ny41IC02MWgtNTMwcS02MCA4MyAtOTAuNSAxNzcuNXQtMzAuNSAxNzguNXQzMyAxNjQuNXQ4Ny41IDEzOS41dDEyNiA5Ni41dDE0NS41IDQxLjV2LTk4ek0yNTAgNDAwaDcwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTNsMTM4IC0xMDBoLTk1MGwxMzcgMTAwIGgtMTJxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDEwMGgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGgtMTIwMHY1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIxNjsiIGQ9Ik02MDAgMTMwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtNzhxNDYgLTI2IDczIC03MnQyNyAtMTAwdi01MGgtNDAwdjUwcTAgNTQgMjcgMTAwdDczIDcydjc4cTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNXpNNDAwIDgwMGg0MDBxNTQgMCAxMDAgLTI3dDcyIC03M2gtMTcydi0xMDBoMjAwdi0xMDBoLTIwMHYtMTAwaDIwMHYtMTAwaC0yMDB2LTEwMGgyMDBxMCAtODMgLTU4LjUgLTE0MS41dC0xNDEuNSAtNTguNWgtNDAwIHEtODMgMCAtMTQxLjUgNTguNXQtNTguNSAxNDEuNXY0MDBxMCA4MyA1OC41IDE0MS41dDE0MS41IDU4LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIxODsiIGQ9Ik0xNTAgMTEwMGg5MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTUwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtOTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY1MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0xMjUgNDAwaDk1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMjgzbDIyNCAtMjI0cTEzIC0xMyAxMyAtMzEuNXQtMTMgLTMyIHQtMzEuNSAtMTMuNXQtMzEuNSAxM2wtODggODhoLTUyNGwtODcgLTg4cS0xMyAtMTMgLTMyIC0xM3QtMzIgMTMuNXQtMTMgMzJ0MTMgMzEuNWwyMjQgMjI0aC0yODlxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek01NDEgMzAwbC0xMDAgLTEwMGgzMjRsLTEwMCAxMDBoLTEyNHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjE5OyIgZD0iTTIwMCAxMTAwaDgwMHE4MyAwIDE0MS41IC01OC41dDU4LjUgLTE0MS41di0yMDBoLTEwMHEwIDQxIC0yOS41IDcwLjV0LTcwLjUgMjkuNWgtMjUwcS00MSAwIC03MC41IC0yOS41dC0yOS41IC03MC41aC0xMDBxMCA0MSAtMjkuNSA3MC41dC03MC41IDI5LjVoLTI1MHEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNWgtMTAwdjIwMHEwIDgzIDU4LjUgMTQxLjV0MTQxLjUgNTguNXpNMTAwIDYwMGgxMDAwcTQxIDAgNzAuNSAtMjkuNSB0MjkuNSAtNzAuNXYtMzAwaC0xMjAwdjMwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjV6TTMwMCAxMDB2LTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djUwaDIwMHpNMTEwMCAxMDB2LTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djUwaDIwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjIxOyIgZD0iTTQ4MCAxMTY1bDY4MiAtNjgzcTMxIC0zMSAzMSAtNzUuNXQtMzEgLTc1LjVsLTEzMSAtMTMxaC00ODFsLTUxNyA1MThxLTMyIDMxIC0zMiA3NS41dDMyIDc1LjVsMjk1IDI5NnEzMSAzMSA3NS41IDMxdDc2LjUgLTMxek0xMDggNzk0bDM0MiAtMzQybDMwMyAzMDRsLTM0MSAzNDF6TTI1MCAxMDBoODAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGgtOTAwdjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjIzOyIgZD0iTTEwNTcgNjQ3bC0xODkgNTA2cS04IDE5IC0yNy41IDMzdC00MC41IDE0aC00MDBxLTIxIDAgLTQwLjUgLTE0dC0yNy41IC0zM2wtMTg5IC01MDZxLTggLTE5IDEuNSAtMzN0MzAuNSAtMTRoNjI1di0xNTBxMCAtMjEgMTQuNSAtMzUuNXQzNS41IC0xNC41dDM1LjUgMTQuNXQxNC41IDM1LjV2MTUwaDEyNXEyMSAwIDMwLjUgMTR0MS41IDMzek04OTcgMGgtNTk1djUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWg1MHY1MCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDQ4djMwMGgyMDB2LTMwMGg0N3EyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTBoNTBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTUweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMjQ7IiBkPSJNOTAwIDgwMGgzMDB2LTU3NXEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTM3NXY1OTFsLTMwMCAzMDB2ODRxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgzNzV2LTQwMHpNMTIwMCA5MDBoLTIwMHYyMDB6TTQwMCA2MDBoMzAwdi01NzVxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC02NTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY5NTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgzNzV2LTQwMHpNNzAwIDcwMGgtMjAwdjIwMHogIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIyNTsiIGQ9Ik00ODQgMTA5NWgxOTVxNzUgMCAxNDYgLTMyLjV0MTI0IC04NnQ4OS41IC0xMjIuNXQ0OC41IC0xNDJxMTggLTE0IDM1IC0yMHEzMSAtMTAgNjQuNSA2LjV0NDMuNSA0OC41cTEwIDM0IC0xNSA3MXEtMTkgMjcgLTkgNDNxNSA4IDEyLjUgMTF0MTkgLTF0MjMuNSAtMTZxNDEgLTQ0IDM5IC0xMDVxLTMgLTYzIC00NiAtMTA2LjV0LTEwNCAtNDMuNWgtNjJxLTcgLTU1IC0zNSAtMTE3dC01NiAtMTAwbC0zOSAtMjM0cS0zIC0yMCAtMjAgLTM0LjUgdC0zOCAtMTQuNWgtMTAwcS0yMSAwIC0zMyAxNC41dC05IDM0LjVsMTIgNzBxLTQ5IC0xNCAtOTEgLTE0aC0xOTVxLTI0IDAgLTY1IDhsLTExIC02NHEtMyAtMjAgLTIwIC0zNC41dC0zOCAtMTQuNWgtMTAwcS0yMSAwIC0zMyAxNC41dC05IDM0LjVsMjYgMTU3cS04NCA3NCAtMTI4IDE3NWwtMTU5IDUzcS0xOSA3IC0zMyAyNnQtMTQgNDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDEyNHExMSA4NyA1NiAxNjZsLTExMSA5NSBxLTE2IDE0IC0xMi41IDIzLjV0MjQuNSA5LjVoMjAzcTExNiAxMDEgMjUwIDEwMXpNNjc1IDEwMDBoLTI1MHEtMTAgMCAtMTcuNSAtNy41dC03LjUgLTE3LjV2LTUwcTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoMjUwcTEwIDAgMTcuNSA3LjV0Ny41IDE3LjV2NTBxMCAxMCAtNy41IDE3LjV0LTE3LjUgNy41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMjY7IiBkPSJNNjQxIDkwMGw0MjMgMjQ3cTE5IDggNDIgMi41dDM3IC0yMS41bDMyIC0zOHExNCAtMTUgMTIuNSAtMzZ0LTE3LjUgLTM0bC0xMzkgLTEyMGgtMzkwek01MCAxMTAwaDEwNnE2NyAwIDEwMyAtMTd0NjYgLTcxbDEwMiAtMjEyaDgyM3EyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTBxMCAtMjEgLTE0IC00MHQtMzMgLTI2bC03MzcgLTEzMnEtMjMgLTQgLTQwIDZ0LTI2IDI1cS00MiA2NyAtMTAwIDY3aC0zMDBxLTYyIDAgLTEwNiA0NCB0LTQ0IDEwNnYyMDBxMCA2MiA0NCAxMDZ0MTA2IDQ0ek0xNzMgOTI4aC04MHEtMTkgMCAtMjggLTE0dC05IC0zNXYtNTZxMCAtNTEgNDIgLTUxaDEzNHExNiAwIDIxLjUgOHQ1LjUgMjRxMCAxMSAtMTYgNDV0LTI3IDUxcS0xOCAyOCAtNDMgMjh6TTU1MCA3MjdxLTMyIDAgLTU0LjUgLTIyLjV0LTIyLjUgLTU0LjV0MjIuNSAtNTQuNXQ1NC41IC0yMi41dDU0LjUgMjIuNXQyMi41IDU0LjV0LTIyLjUgNTQuNXQtNTQuNSAyMi41ek0xMzAgMzg5IGwxNTIgMTMwcTE4IDE5IDM0IDI0dDMxIC0zLjV0MjQuNSAtMTcuNXQyNS41IC0yOHEyOCAtMzUgNTAuNSAtNTF0NDguNSAtMTNsNjMgNWw0OCAtMTc5cTEzIC02MSAtMy41IC05Ny41dC02Ny41IC03OS41bC04MCAtNjlxLTQ3IC00MCAtMTA5IC0zNS41dC0xMDMgNTEuNWwtMTMwIDE1MXEtNDAgNDcgLTM1LjUgMTA5LjV0NTEuNSAxMDIuNXpNMzgwIDM3N2wtMTAyIC04OHEtMzEgLTI3IDIgLTY1bDM3IC00M3ExMyAtMTUgMjcuNSAtMTkuNSB0MzEuNSA2LjVsNjEgNTNxMTkgMTYgMTQgNDlxLTIgMjAgLTEyIDU2dC0xNyA0NXEtMTEgMTIgLTE5IDE0dC0yMyAtOHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjI3OyIgZD0iTTYyNSAxMjAwaDE1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTEwOXE3OSAtMzMgMTMxIC04Ny41dDUzIC0xMjguNXExIC00NiAtMTUgLTg0LjV0LTM5IC02MXQtNDYgLTM4dC0zOSAtMjEuNWwtMTcgLTZxNiAwIDE1IC0xLjV0MzUgLTl0NTAgLTE3LjV0NTMgLTMwdDUwIC00NXQzNS41IC02NHQxNC41IC04NHEwIC01OSAtMTEuNSAtMTA1LjV0LTI4LjUgLTc2LjV0LTQ0IC01MXQtNDkuNSAtMzEuNXQtNTQuNSAtMTZ0LTQ5LjUgLTYuNSB0LTQzLjUgLTF2LTc1cTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2NzVoLTEwMHYtNzVxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0xNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY3NWgtMTc1cS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoNzV2NjAwaC03NXEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MCBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgxNzV2NzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgxNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di03NWgxMDB2NzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNNDAwIDkwMHYtMjAwaDI2M3EyOCAwIDQ4LjUgMTAuNXQzMCAyNXQxNSAyOXQ1LjUgMjUuNWwxIDEwcTAgNCAtMC41IDExdC02IDI0dC0xNSAzMHQtMzAgMjR0LTQ4LjUgMTFoLTI2M3pNNDAwIDUwMHYtMjAwaDM2M3EyOCAwIDQ4LjUgMTAuNSB0MzAgMjV0MTUgMjl0NS41IDI1LjVsMSAxMHEwIDQgLTAuNSAxMXQtNiAyNHQtMTUgMzB0LTMwIDI0dC00OC41IDExaC0zNjN6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIzMDsiIGQ9Ik0yMTIgMTE5OGg3ODBxODYgMCAxNDcgLTYxdDYxIC0xNDd2LTQxNnEwIC01MSAtMTggLTE0Mi41dC0zNiAtMTU3LjVsLTE4IC02NnEtMjkgLTg3IC05My41IC0xNDYuNXQtMTQ2LjUgLTU5LjVoLTU3MnEtODIgMCAtMTQ3IDU5dC05MyAxNDdxLTggMjggLTIwIDczdC0zMiAxNDMuNXQtMjAgMTQ5LjV2NDE2cTAgODYgNjEgMTQ3dDE0NyA2MXpNNjAwIDEwNDVxLTcwIDAgLTEzMi41IC0xMS41dC0xMDUuNSAtMzAuNXQtNzguNSAtNDEuNSB0LTU3IC00NXQtMzYgLTQxdC0yMC41IC0zMC41bC02IC0xMmwxNTYgLTI0M2g1NjBsMTU2IDI0M3EtMiA1IC02IDEyLjV0LTIwIDI5LjV0LTM2LjUgNDJ0LTU3IDQ0LjV0LTc5IDQydC0xMDUgMjkuNXQtMTMyLjUgMTJ6TTc2MiA3MDNoLTE1N2wxOTUgMjYxeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMzE7IiBkPSJNNDc1IDEzMDBoMTUwcTEwMyAwIDE4OSAtODZ0ODYgLTE4OXYtNTAwcTAgLTQxIC00MiAtODN0LTgzIC00MmgtNDUwcS00MSAwIC04MyA0MnQtNDIgODN2NTAwcTAgMTAzIDg2IDE4OXQxODkgODZ6TTcwMCAzMDB2LTIyNXEwIC0yMSAtMjcgLTQ4dC00OCAtMjdoLTE1MHEtMjEgMCAtNDggMjd0LTI3IDQ4djIyNWgzMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIzMjsiIGQ9Ik00NzUgMTMwMGg5NnEwIC0xNTAgODkuNSAtMjM5LjV0MjM5LjUgLTg5LjV2LTQ0NnEwIC00MSAtNDIgLTgzdC04MyAtNDJoLTQ1MHEtNDEgMCAtODMgNDJ0LTQyIDgzdjUwMHEwIDEwMyA4NiAxODl0MTg5IDg2ek03MDAgMzAwdi0yMjVxMCAtMjEgLTI3IC00OHQtNDggLTI3aC0xNTBxLTIxIDAgLTQ4IDI3dC0yNyA0OHYyMjVoMzAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMzM7IiBkPSJNMTI5NCA3NjdsLTYzOCAtMjgzbC0zNzggMTcwbC03OCAtNjB2LTIyNGwxMDAgLTE1MHYtMTk5bC0xNTAgMTQ4bC0xNTAgLTE0OXYyMDBsMTAwIDE1MHYyNTBxMCA0IC0wLjUgMTAuNXQwIDkuNXQxIDh0MyA4dDYuNSA2bDQ3IDQwbC0xNDcgNjVsNjQyIDI4M3pNMTAwMCAzODBsLTM1MCAtMTY2bC0zNTAgMTY2djE0N2wzNTAgLTE2NWwzNTAgMTY1di0xNDd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIzNDsiIGQ9Ik0yNTAgODAwcTYyIDAgMTA2IC00NHQ0NCAtMTA2dC00NCAtMTA2dC0xMDYgLTQ0dC0xMDYgNDR0LTQ0IDEwNnQ0NCAxMDZ0MTA2IDQ0ek02NTAgODAwcTYyIDAgMTA2IC00NHQ0NCAtMTA2dC00NCAtMTA2dC0xMDYgLTQ0dC0xMDYgNDR0LTQ0IDEwNnQ0NCAxMDZ0MTA2IDQ0ek0xMDUwIDgwMHE2MiAwIDEwNiAtNDR0NDQgLTEwNnQtNDQgLTEwNnQtMTA2IC00NHQtMTA2IDQ0dC00NCAxMDZ0NDQgMTA2dDEwNiA0NHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjM1OyIgZD0iTTU1MCAxMTAwcTYyIDAgMTA2IC00NHQ0NCAtMTA2dC00NCAtMTA2dC0xMDYgLTQ0dC0xMDYgNDR0LTQ0IDEwNnQ0NCAxMDZ0MTA2IDQ0ek01NTAgNzAwcTYyIDAgMTA2IC00NHQ0NCAtMTA2dC00NCAtMTA2dC0xMDYgLTQ0dC0xMDYgNDR0LTQ0IDEwNnQ0NCAxMDZ0MTA2IDQ0ek01NTAgMzAwcTYyIDAgMTA2IC00NHQ0NCAtMTA2dC00NCAtMTA2dC0xMDYgLTQ0dC0xMDYgNDR0LTQ0IDEwNnQ0NCAxMDZ0MTA2IDQ0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMzY7IiBkPSJNMTI1IDExMDBoOTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtOTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTEyNSA3MDBoOTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtOTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjUgdDE3LjUgNy41ek0xMjUgMzAwaDk1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTk1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMzc7IiBkPSJNMzUwIDEyMDBoNTAwcTE2MiAwIDI1NiAtOTMuNXQ5NCAtMjU2LjV2LTUwMHEwIC0xNjUgLTkzLjUgLTI1Ny41dC0yNTYuNSAtOTIuNWgtNTAwcS0xNjUgMCAtMjU3LjUgOTIuNXQtOTIuNSAyNTcuNXY1MDBxMCAxNjUgOTIuNSAyNTcuNXQyNTcuNSA5Mi41ek05MDAgMTAwMGgtNjAwcS00MSAwIC03MC41IC0yOS41dC0yOS41IC03MC41di02MDBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDYwMHE0MSAwIDcwLjUgMjkuNSB0MjkuNSA3MC41djYwMHEwIDQxIC0yOS41IDcwLjV0LTcwLjUgMjkuNXpNMzUwIDkwMGg1MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTMwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYzMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek00MDAgODAwdi0yMDBoNDAwdjIwMGgtNDAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMzg7IiBkPSJNMTUwIDExMDBoMTAwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTB2LTIwMGg1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTB2LTIwMGg1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTB2LTIwMGg1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNSB0LTM1LjUgLTE0LjVoLTEwMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjVoNTB2MjAwaC01MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV0MTQuNSAzNS41dDM1LjUgMTQuNWg1MHYyMDBoLTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXQxNC41IDM1LjV0MzUuNSAxNC41aDUwdjIwMGgtNTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIzOTsiIGQ9Ik02NTAgMTE4N3E4NyAtNjcgMTE4LjUgLTE1NnQwIC0xNzh0LTExOC41IC0xNTVxLTg3IDY2IC0xMTguNSAxNTV0MCAxNzh0MTE4LjUgMTU2ek0zMDAgODAwcTEyNCAwIDIxMiAtODh0ODggLTIxMnEtMTI0IDAgLTIxMiA4OHQtODggMjEyek0xMDAwIDgwMHEwIC0xMjQgLTg4IC0yMTJ0LTIxMiAtODhxMCAxMjQgODggMjEydDIxMiA4OHpNMzAwIDUwMHExMjQgMCAyMTIgLTg4dDg4IC0yMTJxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnogTTEwMDAgNTAwcTAgLTEyNCAtODggLTIxMnQtMjEyIC04OHEwIDEyNCA4OCAyMTJ0MjEyIDg4ek03MDAgMTk5di0xNDRxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjV0LTM1LjUgMTQuNXQtMTQuNSAzNS41djE0MnE0MCAtNCA0MyAtNHExNyAwIDU3IDZ6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTI0MDsiIGQ9Ik03NDUgODc4bDY5IDE5cTI1IDYgNDUgLTEybDI5OCAtMjk1cTExIC0xMSAxNSAtMjYuNXQtMiAtMzAuNXEtNSAtMTQgLTE4IC0yMy41dC0yOCAtOS41aC04cTEgMCAxIC0xM3EwIC0yOSAtMiAtNTZ0LTguNSAtNjJ0LTIwIC02M3QtMzMgLTUzdC01MSAtMzl0LTcyLjUgLTE0aC0xNDZxLTE4NCAwIC0xODQgMjg4cTAgMjQgMTAgNDdxLTIwIDQgLTYyIDR0LTYzIC00cTExIC0yNCAxMSAtNDdxMCAtMjg4IC0xODQgLTI4OGgtMTQyIHEtNDggMCAtODQuNSAyMXQtNTYgNTF0LTMyIDcxLjV0LTE2IDc1dC0zLjUgNjguNXEwIDEzIDIgMTNoLTdxLTE1IDAgLTI3LjUgOS41dC0xOC41IDIzLjVxLTYgMTUgLTIgMzAuNXQxNSAyNS41bDI5OCAyOTZxMjAgMTggNDYgMTFsNzYgLTE5cTIwIC01IDMwLjUgLTIyLjV0NS41IC0zNy41dC0yMi41IC0zMXQtMzcuNSAtNWwtNTEgMTJsLTE4MiAtMTkzaDg5MWwtMTgyIDE5M2wtNDQgLTEycS0yMCAtNSAtMzcuNSA2dC0yMi41IDMxdDYgMzcuNSB0MzEgMjIuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjQxOyIgZD0iTTEyMDAgOTAwaC01MHEwIDIxIC00IDM3dC05LjUgMjYuNXQtMTggMTcuNXQtMjIgMTF0LTI4LjUgNS41dC0zMSAydC0zNyAwLjVoLTIwMHYtODUwcTAgLTIyIDI1IC0zNC41dDUwIC0xMy41bDI1IC0ydi0xMDBoLTQwMHYxMDBxNCAwIDExIDAuNXQyNCAzdDMwIDd0MjQgMTV0MTEgMjQuNXY4NTBoLTIwMHEtMjUgMCAtMzcgLTAuNXQtMzEgLTJ0LTI4LjUgLTUuNXQtMjIgLTExdC0xOCAtMTcuNXQtOS41IC0yNi41dC00IC0zN2gtNTB2MzAwIGgxMDAwdi0zMDB6TTUwMCA0NTBoLTI1cTAgMTUgLTQgMjQuNXQtOSAxNC41dC0xNyA3LjV0LTIwIDN0LTI1IDAuNWgtMTAwdi00MjVxMCAtMTEgMTIuNSAtMTcuNXQyNS41IC03LjVoMTJ2LTUwaC0yMDB2NTBxNTAgMCA1MCAyNXY0MjVoLTEwMHEtMTcgMCAtMjUgLTAuNXQtMjAgLTN0LTE3IC03LjV0LTkgLTE0LjV0LTQgLTI0LjVoLTI1djE1MGg1MDB2LTE1MHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjQyOyIgZD0iTTEwMDAgMzAwdjUwcS0yNSAwIC01NSAzMnEtMTQgMTQgLTI1IDMxdC0xNiAyN2wtNCAxMWwtMjg5IDc0N2gtNjlsLTMwMCAtNzU0cS0xOCAtMzUgLTM5IC01NnEtOSAtOSAtMjQuNSAtMTguNXQtMjYuNSAtMTQuNWwtMTEgLTV2LTUwaDI3M3Y1MHEtNDkgMCAtNzguNSAyMS41dC0xMS41IDY3LjVsNjkgMTc2aDI5M2w2MSAtMTY2cTEzIC0zNCAtMy41IC02Ni41dC01NS41IC0zMi41di01MGgzMTJ6TTQxMiA2OTFsMTM0IDM0MmwxMjEgLTM0MiBoLTI1NXpNMTEwMCAxNTB2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWgxMDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyNDM7IiBkPSJNNTAgMTIwMGgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNjExIDExMThoLTcwcS0xMyAwIC0xOCAtMTJsLTI5OSAtNzUzcS0xNyAtMzIgLTM1IC01MXEtMTggLTE4IC01NiAtMzRxLTEyIC01IC0xMiAtMTh2LTUwcTAgLTggNS41IC0xNHQxNC41IC02IGgyNzNxOCAwIDE0IDZ0NiAxNHY1MHEwIDggLTYgMTR0LTE0IDZxLTU1IDAgLTcxIDIzcS0xMCAxNCAwIDM5bDYzIDE2M2gyNjZsNTcgLTE1M3ExMSAtMzEgLTYgLTU1cS0xMiAtMTcgLTM2IC0xN3EtOCAwIC0xNCAtNnQtNiAtMTR2LTUwcTAgLTggNiAtMTR0MTQgLTZoMzEzcTggMCAxNCA2dDYgMTR2NTBxMCA3IC01LjUgMTN0LTEzLjUgN3EtMTcgMCAtNDIgMjVxLTI1IDI3IC00MCA2M2gtMWwtMjg4IDc0OHEtNSAxMiAtMTkgMTJ6TTYzOSA2MTEgaC0xOTdsMTAzIDI2NHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjQ0OyIgZD0iTTEyMDAgMTEwMGgtMTIwMHYxMDBoMTIwMHYtMTAwek01MCAxMDAwaDQwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtOTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djkwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTY1MCAxMDAwaDQwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00MDAgcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek03MDAgOTAwdi0zMDBoMzAwdjMwMGgtMzAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyNDU7IiBkPSJNNTAgMTIwMGg0MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTkwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNDAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY5MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek02NTAgNzAwaDQwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djQwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek03MDAgNjAwdi0zMDBoMzAwdjMwMGgtMzAwek0xMjAwIDBoLTEyMDB2MTAwaDEyMDB2LTEwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjQ2OyIgZD0iTTUwIDEwMDBoNDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0zNTBoMTAwdjE1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoNDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xNTBoMTAwdi0xMDBoLTEwMHYtMTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djE1MGgtMTAwdi0zNTBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTQwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djgwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTcwMCA3MDB2LTMwMGgzMDB2MzAwaC0zMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTI0NzsiIGQ9Ik0xMDAgMGgtMTAwdjEyMDBoMTAwdi0xMjAwek0yNTAgMTEwMGg0MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNDAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0zMDAgMTAwMHYtMzAwaDMwMHYzMDBoLTMwMHpNMjUwIDUwMGg5MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMCBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTkwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NDAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjQ4OyIgZD0iTTYwMCAxMTAwaDE1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xNTB2LTEwMGg0NTBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtOTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDM1MHYxMDBoLTE1MHEtMjEgMCAtMzUuNSAxNC41IHQtMTQuNSAzNS41djQwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoMTUwdjEwMGgxMDB2LTEwMHpNNDAwIDEwMDB2LTMwMGgzMDB2MzAwaC0zMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTI0OTsiIGQ9Ik0xMjAwIDBoLTEwMHYxMjAwaDEwMHYtMTIwMHpNNTUwIDExMDBoNDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di00MDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTQwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NDAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNjAwIDEwMDB2LTMwMGgzMDB2MzAwaC0zMDB6TTUwIDUwMGg5MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMCBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTkwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NDAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjUwOyIgZD0iTTg2NSA1NjVsLTQ5NCAtNDk0cS0yMyAtMjMgLTQxIC0yM3EtMTQgMCAtMjIgMTMuNXQtOCAzOC41djEwMDBxMCAyNSA4IDM4LjV0MjIgMTMuNXExOCAwIDQxIC0yM2w0OTQgLTQ5NHExNCAtMTQgMTQgLTM1dC0xNCAtMzV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTI1MTsiIGQ9Ik0zMzUgNjM1bDQ5NCA0OTRxMjkgMjkgNTAgMjAuNXQyMSAtNDkuNXYtMTAwMHEwIC00MSAtMjEgLTQ5LjV0LTUwIDIwLjVsLTQ5NCA0OTRxLTE0IDE0IC0xNCAzNXQxNCAzNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjUyOyIgZD0iTTEwMCA5MDBoMTAwMHE0MSAwIDQ5LjUgLTIxdC0yMC41IC01MGwtNDk0IC00OTRxLTE0IC0xNCAtMzUgLTE0dC0zNSAxNGwtNDk0IDQ5NHEtMjkgMjkgLTIwLjUgNTB0NDkuNSAyMXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjUzOyIgZD0iTTYzNSA4NjVsNDk0IC00OTRxMjkgLTI5IDIwLjUgLTUwdC00OS41IC0yMWgtMTAwMHEtNDEgMCAtNDkuNSAyMXQyMC41IDUwbDQ5NCA0OTRxMTQgMTQgMzUgMTR0MzUgLTE0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyNTQ7IiBkPSJNNzAwIDc0MXYtMTgybC02OTIgLTMyM3YyMjFsNDEzIDE5M2wtNDEzIDE5M3YyMjF6TTEyMDAgMGgtODAwdjIwMGg4MDB2LTIwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjU1OyIgZD0iTTEyMDAgOTAwaC0yMDB2LTEwMGgyMDB2LTEwMGgtMzAwdjMwMGgyMDB2MTAwaC0yMDB2MTAwaDMwMHYtMzAwek0wIDcwMGg1MHEwIDIxIDQgMzd0OS41IDI2LjV0MTggMTcuNXQyMiAxMXQyOC41IDUuNXQzMSAydDM3IDAuNWgxMDB2LTU1MHEwIC0yMiAtMjUgLTM0LjV0LTUwIC0xMy41bC0yNSAtMnYtMTAwaDQwMHYxMDBxLTQgMCAtMTEgMC41dC0yNCAzdC0zMCA3dC0yNCAxNXQtMTEgMjQuNXY1NTBoMTAwcTI1IDAgMzcgLTAuNXQzMSAtMiB0MjguNSAtNS41dDIyIC0xMXQxOCAtMTcuNXQ5LjUgLTI2LjV0NCAtMzdoNTB2MzAwaC04MDB2LTMwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjU2OyIgZD0iTTgwMCA3MDBoLTUwcTAgMjEgLTQgMzd0LTkuNSAyNi41dC0xOCAxNy41dC0yMiAxMXQtMjguNSA1LjV0LTMxIDJ0LTM3IDAuNWgtMTAwdi01NTBxMCAtMjIgMjUgLTM0LjV0NTAgLTE0LjVsMjUgLTF2LTEwMGgtNDAwdjEwMHE0IDAgMTEgMC41dDI0IDN0MzAgN3QyNCAxNXQxMSAyNC41djU1MGgtMTAwcS0yNSAwIC0zNyAtMC41dC0zMSAtMnQtMjguNSAtNS41dC0yMiAtMTF0LTE4IC0xNy41dC05LjUgLTI2LjV0LTQgLTM3aC01MHYzMDAgaDgwMHYtMzAwek0xMTAwIDIwMGgtMjAwdi0xMDBoMjAwdi0xMDBoLTMwMHYzMDBoMjAwdjEwMGgtMjAwdjEwMGgzMDB2LTMwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjU3OyIgZD0iTTcwMSAxMDk4aDE2MHExNiAwIDIxIC0xMXQtNyAtMjNsLTQ2NCAtNDY0bDQ2NCAtNDY0cTEyIC0xMiA3IC0yM3QtMjEgLTExaC0xNjBxLTEzIDAgLTIzIDlsLTQ3MSA0NzFxLTcgOCAtNyAxOHQ3IDE4bDQ3MSA0NzFxMTAgOSAyMyA5eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyNTg7IiBkPSJNMzM5IDEwOThoMTYwcTEzIDAgMjMgLTlsNDcxIC00NzFxNyAtOCA3IC0xOHQtNyAtMThsLTQ3MSAtNDcxcS0xMCAtOSAtMjMgLTloLTE2MHEtMTYgMCAtMjEgMTF0NyAyM2w0NjQgNDY0bC00NjQgNDY0cS0xMiAxMiAtNyAyM3QyMSAxMXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjU5OyIgZD0iTTEwODcgODgycTExIC01IDExIC0yMXYtMTYwcTAgLTEzIC05IC0yM2wtNDcxIC00NzFxLTggLTcgLTE4IC03dC0xOCA3bC00NzEgNDcxcS05IDEwIC05IDIzdjE2MHEwIDE2IDExIDIxdDIzIC03bDQ2NCAtNDY0bDQ2NCA0NjRxMTIgMTIgMjMgN3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjYwOyIgZD0iTTYxOCA5OTNsNDcxIC00NzFxOSAtMTAgOSAtMjN2LTE2MHEwIC0xNiAtMTEgLTIxdC0yMyA3bC00NjQgNDY0bC00NjQgLTQ2NHEtMTIgLTEyIC0yMyAtN3QtMTEgMjF2MTYwcTAgMTMgOSAyM2w0NzEgNDcxcTggNyAxOCA3dDE4IC03eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGY4ZmY7IiBkPSJNMTAwMCAxMjAwcTAgLTEyNCAtODggLTIxMnQtMjEyIC04OHEwIDEyNCA4OCAyMTJ0MjEyIDg4ek00NTAgMTAwMGgxMDBxMjEgMCA0MCAtMTR0MjYgLTMzbDc5IC0xOTRxNSAxIDE2IDNxMzQgNiA1NCA5LjV0NjAgN3Q2NS41IDF0NjEgLTEwdDU2LjUgLTIzdDQyLjUgLTQydDI5IC02NHQ1IC05MnQtMTkuNSAtMTIxLjVxLTEgLTcgLTMgLTE5LjV0LTExIC01MHQtMjAuNSAtNzN0LTMyLjUgLTgxLjV0LTQ2LjUgLTgzdC02NCAtNzAgdC04Mi41IC01MHEtMTMgLTUgLTQyIC01dC02NS41IDIuNXQtNDcuNSAyLjVxLTE0IDAgLTQ5LjUgLTMuNXQtNjMgLTMuNXQtNDMuNSA3cS01NyAyNSAtMTA0LjUgNzguNXQtNzUgMTExLjV0LTQ2LjUgMTEydC0yNiA5MGwtNyAzNXEtMTUgNjMgLTE4IDExNXQ0LjUgODguNXQyNiA2NHQzOS41IDQzLjV0NTIgMjUuNXQ1OC41IDEzdDYyLjUgMnQ1OS41IC00LjV0NTUuNSAtOGwtMTQ3IDE5MnEtMTIgMTggLTUuNSAzMHQyNy41IDEyeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDFmNTExOyIgZD0iTTI1MCAxMjAwaDYwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xNTB2LTUwMGwtMjU1IC0xNzhxLTE5IC05IC0zMiAtMXQtMTMgMjl2NjUwaC0xNTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djQwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQwMCAxMTAwdi0xMDBoMzAwdjEwMGgtMzAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDFmNmFhOyIgZD0iTTI1MCAxMjAwaDc1MHEzOSAwIDY5LjUgLTQwLjV0MzAuNSAtODQuNXYtOTMzbC03MDAgLTExN3Y5NTBsNjAwIDEyNWgtNzAwdi0xMDAwaC0xMDB2MTAyNXEwIDIzIDE1LjUgNDl0MzQuNSAyNnpNNTAwIDUyNXYtMTAwbDEwMCAyMHYxMDB6IiAvPgo8L2ZvbnQ%2BCjwvZGVmcz48L3N2Zz4g%29%20format%28%27svg%27%29%7D%2Eglyphicon%7Bposition%3Arelative%3Btop%3A1px%3Bdisplay%3Ainline%2Dblock%3Bfont%2Dfamily%3A%27Glyphicons%20Halflings%27%3Bfont%2Dstyle%3Anormal%3Bfont%2Dweight%3A400%3Bline%2Dheight%3A1%3B%2Dwebkit%2Dfont%2Dsmoothing%3Aantialiased%3B%2Dmoz%2Dosx%2Dfont%2Dsmoothing%3Agrayscale%7D%2Eglyphicon%2Dasterisk%3Abefore%7Bcontent%3A%22%5C2a%22%7D%2Eglyphicon%2Dplus%3Abefore%7Bcontent%3A%22%5C2b%22%7D%2Eglyphicon%2Deur%3Abefore%2C%2Eglyphicon%2Deuro%3Abefore%7Bcontent%3A%22%5C20ac%22%7D%2Eglyphicon%2Dminus%3Abefore%7Bcontent%3A%22%5C2212%22%7D%2Eglyphicon%2Dcloud%3Abefore%7Bcontent%3A%22%5C2601%22%7D%2Eglyphicon%2Denvelope%3Abefore%7Bcontent%3A%22%5C2709%22%7D%2Eglyphicon%2Dpencil%3Abefore%7Bcontent%3A%22%5C270f%22%7D%2Eglyphicon%2Dglass%3Abefore%7Bcontent%3A%22%5Ce001%22%7D%2Eglyphicon%2Dmusic%3Abefore%7Bcontent%3A%22%5Ce002%22%7D%2Eglyphicon%2Dsearch%3Abefore%7Bcontent%3A%22%5Ce003%22%7D%2Eglyphicon%2Dheart%3Abefore%7Bcontent%3A%22%5Ce005%22%7D%2Eglyphicon%2Dstar%3Abefore%7Bcontent%3A%22%5Ce006%22%7D%2Eglyphicon%2Dstar%2Dempty%3Abefore%7Bcontent%3A%22%5Ce007%22%7D%2Eglyphicon%2Duser%3Abefore%7Bcontent%3A%22%5Ce008%22%7D%2Eglyphicon%2Dfilm%3Abefore%7Bcontent%3A%22%5Ce009%22%7D%2Eglyphicon%2Dth%2Dlarge%3Abefore%7Bcontent%3A%22%5Ce010%22%7D%2Eglyphicon%2Dth%3Abefore%7Bcontent%3A%22%5Ce011%22%7D%2Eglyphicon%2Dth%2Dlist%3Abefore%7Bcontent%3A%22%5Ce012%22%7D%2Eglyphicon%2Dok%3Abefore%7Bcontent%3A%22%5Ce013%22%7D%2Eglyphicon%2Dremove%3Abefore%7Bcontent%3A%22%5Ce014%22%7D%2Eglyphicon%2Dzoom%2Din%3Abefore%7Bcontent%3A%22%5Ce015%22%7D%2Eglyphicon%2Dzoom%2Dout%3Abefore%7Bcontent%3A%22%5Ce016%22%7D%2Eglyphicon%2Doff%3Abefore%7Bcontent%3A%22%5Ce017%22%7D%2Eglyphicon%2Dsignal%3Abefore%7Bcontent%3A%22%5Ce018%22%7D%2Eglyphicon%2Dcog%3Abefore%7Bcontent%3A%22%5Ce019%22%7D%2Eglyphicon%2Dtrash%3Abefore%7Bcontent%3A%22%5Ce020%22%7D%2Eglyphicon%2Dhome%3Abefore%7Bcontent%3A%22%5Ce021%22%7D%2Eglyphicon%2Dfile%3Abefore%7Bcontent%3A%22%5Ce022%22%7D%2Eglyphicon%2Dtime%3Abefore%7Bcontent%3A%22%5Ce023%22%7D%2Eglyphicon%2Droad%3Abefore%7Bcontent%3A%22%5Ce024%22%7D%2Eglyphicon%2Ddownload%2Dalt%3Abefore%7Bcontent%3A%22%5Ce025%22%7D%2Eglyphicon%2Ddownload%3Abefore%7Bcontent%3A%22%5Ce026%22%7D%2Eglyphicon%2Dupload%3Abefore%7Bcontent%3A%22%5Ce027%22%7D%2Eglyphicon%2Dinbox%3Abefore%7Bcontent%3A%22%5Ce028%22%7D%2Eglyphicon%2Dplay%2Dcircle%3Abefore%7Bcontent%3A%22%5Ce029%22%7D%2Eglyphicon%2Drepeat%3Abefore%7Bcontent%3A%22%5Ce030%22%7D%2Eglyphicon%2Drefresh%3Abefore%7Bcontent%3A%22%5Ce031%22%7D%2Eglyphicon%2Dlist%2Dalt%3Abefore%7Bcontent%3A%22%5Ce032%22%7D%2Eglyphicon%2Dlock%3Abefore%7Bcontent%3A%22%5Ce033%22%7D%2Eglyphicon%2Dflag%3Abefore%7Bcontent%3A%22%5Ce034%22%7D%2Eglyphicon%2Dheadphones%3Abefore%7Bcontent%3A%22%5Ce035%22%7D%2Eglyphicon%2Dvolume%2Doff%3Abefore%7Bcontent%3A%22%5Ce036%22%7D%2Eglyphicon%2Dvolume%2Ddown%3Abefore%7Bcontent%3A%22%5Ce037%22%7D%2Eglyphicon%2Dvolume%2Dup%3Abefore%7Bcontent%3A%22%5Ce038%22%7D%2Eglyphicon%2Dqrcode%3Abefore%7Bcontent%3A%22%5Ce039%22%7D%2Eglyphicon%2Dbarcode%3Abefore%7Bcontent%3A%22%5Ce040%22%7D%2Eglyphicon%2Dtag%3Abefore%7Bcontent%3A%22%5Ce041%22%7D%2Eglyphicon%2Dtags%3Abefore%7Bcontent%3A%22%5Ce042%22%7D%2Eglyphicon%2Dbook%3Abefore%7Bcontent%3A%22%5Ce043%22%7D%2Eglyphicon%2Dbookmark%3Abefore%7Bcontent%3A%22%5Ce044%22%7D%2Eglyphicon%2Dprint%3Abefore%7Bcontent%3A%22%5Ce045%22%7D%2Eglyphicon%2Dcamera%3Abefore%7Bcontent%3A%22%5Ce046%22%7D%2Eglyphicon%2Dfont%3Abefore%7Bcontent%3A%22%5Ce047%22%7D%2Eglyphicon%2Dbold%3Abefore%7Bcontent%3A%22%5Ce048%22%7D%2Eglyphicon%2Ditalic%3Abefore%7Bcontent%3A%22%5Ce049%22%7D%2Eglyphicon%2Dtext%2Dheight%3Abefore%7Bcontent%3A%22%5Ce050%22%7D%2Eglyphicon%2Dtext%2Dwidth%3Abefore%7Bcontent%3A%22%5Ce051%22%7D%2Eglyphicon%2Dalign%2Dleft%3Abefore%7Bcontent%3A%22%5Ce052%22%7D%2Eglyphicon%2Dalign%2Dcenter%3Abefore%7Bcontent%3A%22%5Ce053%22%7D%2Eglyphicon%2Dalign%2Dright%3Abefore%7Bcontent%3A%22%5Ce054%22%7D%2Eglyphicon%2Dalign%2Djustify%3Abefore%7Bcontent%3A%22%5Ce055%22%7D%2Eglyphicon%2Dlist%3Abefore%7Bcontent%3A%22%5Ce056%22%7D%2Eglyphicon%2Dindent%2Dleft%3Abefore%7Bcontent%3A%22%5Ce057%22%7D%2Eglyphicon%2Dindent%2Dright%3Abefore%7Bcontent%3A%22%5Ce058%22%7D%2Eglyphicon%2Dfacetime%2Dvideo%3Abefore%7Bcontent%3A%22%5Ce059%22%7D%2Eglyphicon%2Dpicture%3Abefore%7Bcontent%3A%22%5Ce060%22%7D%2Eglyphicon%2Dmap%2Dmarker%3Abefore%7Bcontent%3A%22%5Ce062%22%7D%2Eglyphicon%2Dadjust%3Abefore%7Bcontent%3A%22%5Ce063%22%7D%2Eglyphicon%2Dtint%3Abefore%7Bcontent%3A%22%5Ce064%22%7D%2Eglyphicon%2Dedit%3Abefore%7Bcontent%3A%22%5Ce065%22%7D%2Eglyphicon%2Dshare%3Abefore%7Bcontent%3A%22%5Ce066%22%7D%2Eglyphicon%2Dcheck%3Abefore%7Bcontent%3A%22%5Ce067%22%7D%2Eglyphicon%2Dmove%3Abefore%7Bcontent%3A%22%5Ce068%22%7D%2Eglyphicon%2Dstep%2Dbackward%3Abefore%7Bcontent%3A%22%5Ce069%22%7D%2Eglyphicon%2Dfast%2Dbackward%3Abefore%7Bcontent%3A%22%5Ce070%22%7D%2Eglyphicon%2Dbackward%3Abefore%7Bcontent%3A%22%5Ce071%22%7D%2Eglyphicon%2Dplay%3Abefore%7Bcontent%3A%22%5Ce072%22%7D%2Eglyphicon%2Dpause%3Abefore%7Bcontent%3A%22%5Ce073%22%7D%2Eglyphicon%2Dstop%3Abefore%7Bcontent%3A%22%5Ce074%22%7D%2Eglyphicon%2Dforward%3Abefore%7Bcontent%3A%22%5Ce075%22%7D%2Eglyphicon%2Dfast%2Dforward%3Abefore%7Bcontent%3A%22%5Ce076%22%7D%2Eglyphicon%2Dstep%2Dforward%3Abefore%7Bcontent%3A%22%5Ce077%22%7D%2Eglyphicon%2Deject%3Abefore%7Bcontent%3A%22%5Ce078%22%7D%2Eglyphicon%2Dchevron%2Dleft%3Abefore%7Bcontent%3A%22%5Ce079%22%7D%2Eglyphicon%2Dchevron%2Dright%3Abefore%7Bcontent%3A%22%5Ce080%22%7D%2Eglyphicon%2Dplus%2Dsign%3Abefore%7Bcontent%3A%22%5Ce081%22%7D%2Eglyphicon%2Dminus%2Dsign%3Abefore%7Bcontent%3A%22%5Ce082%22%7D%2Eglyphicon%2Dremove%2Dsign%3Abefore%7Bcontent%3A%22%5Ce083%22%7D%2Eglyphicon%2Dok%2Dsign%3Abefore%7Bcontent%3A%22%5Ce084%22%7D%2Eglyphicon%2Dquestion%2Dsign%3Abefore%7Bcontent%3A%22%5Ce085%22%7D%2Eglyphicon%2Dinfo%2Dsign%3Abefore%7Bcontent%3A%22%5Ce086%22%7D%2Eglyphicon%2Dscreenshot%3Abefore%7Bcontent%3A%22%5Ce087%22%7D%2Eglyphicon%2Dremove%2Dcircle%3Abefore%7Bcontent%3A%22%5Ce088%22%7D%2Eglyphicon%2Dok%2Dcircle%3Abefore%7Bcontent%3A%22%5Ce089%22%7D%2Eglyphicon%2Dban%2Dcircle%3Abefore%7Bcontent%3A%22%5Ce090%22%7D%2Eglyphicon%2Darrow%2Dleft%3Abefore%7Bcontent%3A%22%5Ce091%22%7D%2Eglyphicon%2Darrow%2Dright%3Abefore%7Bcontent%3A%22%5Ce092%22%7D%2Eglyphicon%2Darrow%2Dup%3Abefore%7Bcontent%3A%22%5Ce093%22%7D%2Eglyphicon%2Darrow%2Ddown%3Abefore%7Bcontent%3A%22%5Ce094%22%7D%2Eglyphicon%2Dshare%2Dalt%3Abefore%7Bcontent%3A%22%5Ce095%22%7D%2Eglyphicon%2Dresize%2Dfull%3Abefore%7Bcontent%3A%22%5Ce096%22%7D%2Eglyphicon%2Dresize%2Dsmall%3Abefore%7Bcontent%3A%22%5Ce097%22%7D%2Eglyphicon%2Dexclamation%2Dsign%3Abefore%7Bcontent%3A%22%5Ce101%22%7D%2Eglyphicon%2Dgift%3Abefore%7Bcontent%3A%22%5Ce102%22%7D%2Eglyphicon%2Dleaf%3Abefore%7Bcontent%3A%22%5Ce103%22%7D%2Eglyphicon%2Dfire%3Abefore%7Bcontent%3A%22%5Ce104%22%7D%2Eglyphicon%2Deye%2Dopen%3Abefore%7Bcontent%3A%22%5Ce105%22%7D%2Eglyphicon%2Deye%2Dclose%3Abefore%7Bcontent%3A%22%5Ce106%22%7D%2Eglyphicon%2Dwarning%2Dsign%3Abefore%7Bcontent%3A%22%5Ce107%22%7D%2Eglyphicon%2Dplane%3Abefore%7Bcontent%3A%22%5Ce108%22%7D%2Eglyphicon%2Dcalendar%3Abefore%7Bcontent%3A%22%5Ce109%22%7D%2Eglyphicon%2Drandom%3Abefore%7Bcontent%3A%22%5Ce110%22%7D%2Eglyphicon%2Dcomment%3Abefore%7Bcontent%3A%22%5Ce111%22%7D%2Eglyphicon%2Dmagnet%3Abefore%7Bcontent%3A%22%5Ce112%22%7D%2Eglyphicon%2Dchevron%2Dup%3Abefore%7Bcontent%3A%22%5Ce113%22%7D%2Eglyphicon%2Dchevron%2Ddown%3Abefore%7Bcontent%3A%22%5Ce114%22%7D%2Eglyphicon%2Dretweet%3Abefore%7Bcontent%3A%22%5Ce115%22%7D%2Eglyphicon%2Dshopping%2Dcart%3Abefore%7Bcontent%3A%22%5Ce116%22%7D%2Eglyphicon%2Dfolder%2Dclose%3Abefore%7Bcontent%3A%22%5Ce117%22%7D%2Eglyphicon%2Dfolder%2Dopen%3Abefore%7Bcontent%3A%22%5Ce118%22%7D%2Eglyphicon%2Dresize%2Dvertical%3Abefore%7Bcontent%3A%22%5Ce119%22%7D%2Eglyphicon%2Dresize%2Dhorizontal%3Abefore%7Bcontent%3A%22%5Ce120%22%7D%2Eglyphicon%2Dhdd%3Abefore%7Bcontent%3A%22%5Ce121%22%7D%2Eglyphicon%2Dbullhorn%3Abefore%7Bcontent%3A%22%5Ce122%22%7D%2Eglyphicon%2Dbell%3Abefore%7Bcontent%3A%22%5Ce123%22%7D%2Eglyphicon%2Dcertificate%3Abefore%7Bcontent%3A%22%5Ce124%22%7D%2Eglyphicon%2Dthumbs%2Dup%3Abefore%7Bcontent%3A%22%5Ce125%22%7D%2Eglyphicon%2Dthumbs%2Ddown%3Abefore%7Bcontent%3A%22%5Ce126%22%7D%2Eglyphicon%2Dhand%2Dright%3Abefore%7Bcontent%3A%22%5Ce127%22%7D%2Eglyphicon%2Dhand%2Dleft%3Abefore%7Bcontent%3A%22%5Ce128%22%7D%2Eglyphicon%2Dhand%2Dup%3Abefore%7Bcontent%3A%22%5Ce129%22%7D%2Eglyphicon%2Dhand%2Ddown%3Abefore%7Bcontent%3A%22%5Ce130%22%7D%2Eglyphicon%2Dcircle%2Darrow%2Dright%3Abefore%7Bcontent%3A%22%5Ce131%22%7D%2Eglyphicon%2Dcircle%2Darrow%2Dleft%3Abefore%7Bcontent%3A%22%5Ce132%22%7D%2Eglyphicon%2Dcircle%2Darrow%2Dup%3Abefore%7Bcontent%3A%22%5Ce133%22%7D%2Eglyphicon%2Dcircle%2Darrow%2Ddown%3Abefore%7Bcontent%3A%22%5Ce134%22%7D%2Eglyphicon%2Dglobe%3Abefore%7Bcontent%3A%22%5Ce135%22%7D%2Eglyphicon%2Dwrench%3Abefore%7Bcontent%3A%22%5Ce136%22%7D%2Eglyphicon%2Dtasks%3Abefore%7Bcontent%3A%22%5Ce137%22%7D%2Eglyphicon%2Dfilter%3Abefore%7Bcontent%3A%22%5Ce138%22%7D%2Eglyphicon%2Dbriefcase%3Abefore%7Bcontent%3A%22%5Ce139%22%7D%2Eglyphicon%2Dfullscreen%3Abefore%7Bcontent%3A%22%5Ce140%22%7D%2Eglyphicon%2Ddashboard%3Abefore%7Bcontent%3A%22%5Ce141%22%7D%2Eglyphicon%2Dpaperclip%3Abefore%7Bcontent%3A%22%5Ce142%22%7D%2Eglyphicon%2Dheart%2Dempty%3Abefore%7Bcontent%3A%22%5Ce143%22%7D%2Eglyphicon%2Dlink%3Abefore%7Bcontent%3A%22%5Ce144%22%7D%2Eglyphicon%2Dphone%3Abefore%7Bcontent%3A%22%5Ce145%22%7D%2Eglyphicon%2Dpushpin%3Abefore%7Bcontent%3A%22%5Ce146%22%7D%2Eglyphicon%2Dusd%3Abefore%7Bcontent%3A%22%5Ce148%22%7D%2Eglyphicon%2Dgbp%3Abefore%7Bcontent%3A%22%5Ce149%22%7D%2Eglyphicon%2Dsort%3Abefore%7Bcontent%3A%22%5Ce150%22%7D%2Eglyphicon%2Dsort%2Dby%2Dalphabet%3Abefore%7Bcontent%3A%22%5Ce151%22%7D%2Eglyphicon%2Dsort%2Dby%2Dalphabet%2Dalt%3Abefore%7Bcontent%3A%22%5Ce152%22%7D%2Eglyphicon%2Dsort%2Dby%2Dorder%3Abefore%7Bcontent%3A%22%5Ce153%22%7D%2Eglyphicon%2Dsort%2Dby%2Dorder%2Dalt%3Abefore%7Bcontent%3A%22%5Ce154%22%7D%2Eglyphicon%2Dsort%2Dby%2Dattributes%3Abefore%7Bcontent%3A%22%5Ce155%22%7D%2Eglyphicon%2Dsort%2Dby%2Dattributes%2Dalt%3Abefore%7Bcontent%3A%22%5Ce156%22%7D%2Eglyphicon%2Dunchecked%3Abefore%7Bcontent%3A%22%5Ce157%22%7D%2Eglyphicon%2Dexpand%3Abefore%7Bcontent%3A%22%5Ce158%22%7D%2Eglyphicon%2Dcollapse%2Ddown%3Abefore%7Bcontent%3A%22%5Ce159%22%7D%2Eglyphicon%2Dcollapse%2Dup%3Abefore%7Bcontent%3A%22%5Ce160%22%7D%2Eglyphicon%2Dlog%2Din%3Abefore%7Bcontent%3A%22%5Ce161%22%7D%2Eglyphicon%2Dflash%3Abefore%7Bcontent%3A%22%5Ce162%22%7D%2Eglyphicon%2Dlog%2Dout%3Abefore%7Bcontent%3A%22%5Ce163%22%7D%2Eglyphicon%2Dnew%2Dwindow%3Abefore%7Bcontent%3A%22%5Ce164%22%7D%2Eglyphicon%2Drecord%3Abefore%7Bcontent%3A%22%5Ce165%22%7D%2Eglyphicon%2Dsave%3Abefore%7Bcontent%3A%22%5Ce166%22%7D%2Eglyphicon%2Dopen%3Abefore%7Bcontent%3A%22%5Ce167%22%7D%2Eglyphicon%2Dsaved%3Abefore%7Bcontent%3A%22%5Ce168%22%7D%2Eglyphicon%2Dimport%3Abefore%7Bcontent%3A%22%5Ce169%22%7D%2Eglyphicon%2Dexport%3Abefore%7Bcontent%3A%22%5Ce170%22%7D%2Eglyphicon%2Dsend%3Abefore%7Bcontent%3A%22%5Ce171%22%7D%2Eglyphicon%2Dfloppy%2Ddisk%3Abefore%7Bcontent%3A%22%5Ce172%22%7D%2Eglyphicon%2Dfloppy%2Dsaved%3Abefore%7Bcontent%3A%22%5Ce173%22%7D%2Eglyphicon%2Dfloppy%2Dremove%3Abefore%7Bcontent%3A%22%5Ce174%22%7D%2Eglyphicon%2Dfloppy%2Dsave%3Abefore%7Bcontent%3A%22%5Ce175%22%7D%2Eglyphicon%2Dfloppy%2Dopen%3Abefore%7Bcontent%3A%22%5Ce176%22%7D%2Eglyphicon%2Dcredit%2Dcard%3Abefore%7Bcontent%3A%22%5Ce177%22%7D%2Eglyphicon%2Dtransfer%3Abefore%7Bcontent%3A%22%5Ce178%22%7D%2Eglyphicon%2Dcutlery%3Abefore%7Bcontent%3A%22%5Ce179%22%7D%2Eglyphicon%2Dheader%3Abefore%7Bcontent%3A%22%5Ce180%22%7D%2Eglyphicon%2Dcompressed%3Abefore%7Bcontent%3A%22%5Ce181%22%7D%2Eglyphicon%2Dearphone%3Abefore%7Bcontent%3A%22%5Ce182%22%7D%2Eglyphicon%2Dphone%2Dalt%3Abefore%7Bcontent%3A%22%5Ce183%22%7D%2Eglyphicon%2Dtower%3Abefore%7Bcontent%3A%22%5Ce184%22%7D%2Eglyphicon%2Dstats%3Abefore%7Bcontent%3A%22%5Ce185%22%7D%2Eglyphicon%2Dsd%2Dvideo%3Abefore%7Bcontent%3A%22%5Ce186%22%7D%2Eglyphicon%2Dhd%2Dvideo%3Abefore%7Bcontent%3A%22%5Ce187%22%7D%2Eglyphicon%2Dsubtitles%3Abefore%7Bcontent%3A%22%5Ce188%22%7D%2Eglyphicon%2Dsound%2Dstereo%3Abefore%7Bcontent%3A%22%5Ce189%22%7D%2Eglyphicon%2Dsound%2Ddolby%3Abefore%7Bcontent%3A%22%5Ce190%22%7D%2Eglyphicon%2Dsound%2D5%2D1%3Abefore%7Bcontent%3A%22%5Ce191%22%7D%2Eglyphicon%2Dsound%2D6%2D1%3Abefore%7Bcontent%3A%22%5Ce192%22%7D%2Eglyphicon%2Dsound%2D7%2D1%3Abefore%7Bcontent%3A%22%5Ce193%22%7D%2Eglyphicon%2Dcopyright%2Dmark%3Abefore%7Bcontent%3A%22%5Ce194%22%7D%2Eglyphicon%2Dregistration%2Dmark%3Abefore%7Bcontent%3A%22%5Ce195%22%7D%2Eglyphicon%2Dcloud%2Ddownload%3Abefore%7Bcontent%3A%22%5Ce197%22%7D%2Eglyphicon%2Dcloud%2Dupload%3Abefore%7Bcontent%3A%22%5Ce198%22%7D%2Eglyphicon%2Dtree%2Dconifer%3Abefore%7Bcontent%3A%22%5Ce199%22%7D%2Eglyphicon%2Dtree%2Ddeciduous%3Abefore%7Bcontent%3A%22%5Ce200%22%7D%2Eglyphicon%2Dcd%3Abefore%7Bcontent%3A%22%5Ce201%22%7D%2Eglyphicon%2Dsave%2Dfile%3Abefore%7Bcontent%3A%22%5Ce202%22%7D%2Eglyphicon%2Dopen%2Dfile%3Abefore%7Bcontent%3A%22%5Ce203%22%7D%2Eglyphicon%2Dlevel%2Dup%3Abefore%7Bcontent%3A%22%5Ce204%22%7D%2Eglyphicon%2Dcopy%3Abefore%7Bcontent%3A%22%5Ce205%22%7D%2Eglyphicon%2Dpaste%3Abefore%7Bcontent%3A%22%5Ce206%22%7D%2Eglyphicon%2Dalert%3Abefore%7Bcontent%3A%22%5Ce209%22%7D%2Eglyphicon%2Dequalizer%3Abefore%7Bcontent%3A%22%5Ce210%22%7D%2Eglyphicon%2Dking%3Abefore%7Bcontent%3A%22%5Ce211%22%7D%2Eglyphicon%2Dqueen%3Abefore%7Bcontent%3A%22%5Ce212%22%7D%2Eglyphicon%2Dpawn%3Abefore%7Bcontent%3A%22%5Ce213%22%7D%2Eglyphicon%2Dbishop%3Abefore%7Bcontent%3A%22%5Ce214%22%7D%2Eglyphicon%2Dknight%3Abefore%7Bcontent%3A%22%5Ce215%22%7D%2Eglyphicon%2Dbaby%2Dformula%3Abefore%7Bcontent%3A%22%5Ce216%22%7D%2Eglyphicon%2Dtent%3Abefore%7Bcontent%3A%22%5C26fa%22%7D%2Eglyphicon%2Dblackboard%3Abefore%7Bcontent%3A%22%5Ce218%22%7D%2Eglyphicon%2Dbed%3Abefore%7Bcontent%3A%22%5Ce219%22%7D%2Eglyphicon%2Dapple%3Abefore%7Bcontent%3A%22%5Cf8ff%22%7D%2Eglyphicon%2Derase%3Abefore%7Bcontent%3A%22%5Ce221%22%7D%2Eglyphicon%2Dhourglass%3Abefore%7Bcontent%3A%22%5C231b%22%7D%2Eglyphicon%2Dlamp%3Abefore%7Bcontent%3A%22%5Ce223%22%7D%2Eglyphicon%2Dduplicate%3Abefore%7Bcontent%3A%22%5Ce224%22%7D%2Eglyphicon%2Dpiggy%2Dbank%3Abefore%7Bcontent%3A%22%5Ce225%22%7D%2Eglyphicon%2Dscissors%3Abefore%7Bcontent%3A%22%5Ce226%22%7D%2Eglyphicon%2Dbitcoin%3Abefore%7Bcontent%3A%22%5Ce227%22%7D%2Eglyphicon%2Dbtc%3Abefore%7Bcontent%3A%22%5Ce227%22%7D%2Eglyphicon%2Dxbt%3Abefore%7Bcontent%3A%22%5Ce227%22%7D%2Eglyphicon%2Dyen%3Abefore%7Bcontent%3A%22%5C00a5%22%7D%2Eglyphicon%2Djpy%3Abefore%7Bcontent%3A%22%5C00a5%22%7D%2Eglyphicon%2Druble%3Abefore%7Bcontent%3A%22%5C20bd%22%7D%2Eglyphicon%2Drub%3Abefore%7Bcontent%3A%22%5C20bd%22%7D%2Eglyphicon%2Dscale%3Abefore%7Bcontent%3A%22%5Ce230%22%7D%2Eglyphicon%2Dice%2Dlolly%3Abefore%7Bcontent%3A%22%5Ce231%22%7D%2Eglyphicon%2Dice%2Dlolly%2Dtasted%3Abefore%7Bcontent%3A%22%5Ce232%22%7D%2Eglyphicon%2Deducation%3Abefore%7Bcontent%3A%22%5Ce233%22%7D%2Eglyphicon%2Doption%2Dhorizontal%3Abefore%7Bcontent%3A%22%5Ce234%22%7D%2Eglyphicon%2Doption%2Dvertical%3Abefore%7Bcontent%3A%22%5Ce235%22%7D%2Eglyphicon%2Dmenu%2Dhamburger%3Abefore%7Bcontent%3A%22%5Ce236%22%7D%2Eglyphicon%2Dmodal%2Dwindow%3Abefore%7Bcontent%3A%22%5Ce237%22%7D%2Eglyphicon%2Doil%3Abefore%7Bcontent%3A%22%5Ce238%22%7D%2Eglyphicon%2Dgrain%3Abefore%7Bcontent%3A%22%5Ce239%22%7D%2Eglyphicon%2Dsunglasses%3Abefore%7Bcontent%3A%22%5Ce240%22%7D%2Eglyphicon%2Dtext%2Dsize%3Abefore%7Bcontent%3A%22%5Ce241%22%7D%2Eglyphicon%2Dtext%2Dcolor%3Abefore%7Bcontent%3A%22%5Ce242%22%7D%2Eglyphicon%2Dtext%2Dbackground%3Abefore%7Bcontent%3A%22%5Ce243%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dtop%3Abefore%7Bcontent%3A%22%5Ce244%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dbottom%3Abefore%7Bcontent%3A%22%5Ce245%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dhorizontal%3Abefore%7Bcontent%3A%22%5Ce246%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dleft%3Abefore%7Bcontent%3A%22%5Ce247%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dvertical%3Abefore%7Bcontent%3A%22%5Ce248%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dright%3Abefore%7Bcontent%3A%22%5Ce249%22%7D%2Eglyphicon%2Dtriangle%2Dright%3Abefore%7Bcontent%3A%22%5Ce250%22%7D%2Eglyphicon%2Dtriangle%2Dleft%3Abefore%7Bcontent%3A%22%5Ce251%22%7D%2Eglyphicon%2Dtriangle%2Dbottom%3Abefore%7Bcontent%3A%22%5Ce252%22%7D%2Eglyphicon%2Dtriangle%2Dtop%3Abefore%7Bcontent%3A%22%5Ce253%22%7D%2Eglyphicon%2Dconsole%3Abefore%7Bcontent%3A%22%5Ce254%22%7D%2Eglyphicon%2Dsuperscript%3Abefore%7Bcontent%3A%22%5Ce255%22%7D%2Eglyphicon%2Dsubscript%3Abefore%7Bcontent%3A%22%5Ce256%22%7D%2Eglyphicon%2Dmenu%2Dleft%3Abefore%7Bcontent%3A%22%5Ce257%22%7D%2Eglyphicon%2Dmenu%2Dright%3Abefore%7Bcontent%3A%22%5Ce258%22%7D%2Eglyphicon%2Dmenu%2Ddown%3Abefore%7Bcontent%3A%22%5Ce259%22%7D%2Eglyphicon%2Dmenu%2Dup%3Abefore%7Bcontent%3A%22%5Ce260%22%7D%2A%7B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%7D%3Aafter%2C%3Abefore%7B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%7Dhtml%7Bfont%2Dsize%3A10px%3B%2Dwebkit%2Dtap%2Dhighlight%2Dcolor%3Argba%280%2C0%2C0%2C0%29%7Dbody%7Bfont%2Dfamily%3A%22Helvetica%20Neue%22%2CHelvetica%2CArial%2Csans%2Dserif%3Bfont%2Dsize%3A14px%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23333%3Bbackground%2Dcolor%3A%23fff%7Dbutton%2Cinput%2Cselect%2Ctextarea%7Bfont%2Dfamily%3Ainherit%3Bfont%2Dsize%3Ainherit%3Bline%2Dheight%3Ainherit%7Da%7Bcolor%3A%23337ab7%3Btext%2Ddecoration%3Anone%7Da%3Afocus%2Ca%3Ahover%7Bcolor%3A%2323527c%3Btext%2Ddecoration%3Aunderline%7Da%3Afocus%7Boutline%3Athin%20dotted%3Boutline%3A5px%20auto%20%2Dwebkit%2Dfocus%2Dring%2Dcolor%3Boutline%2Doffset%3A%2D2px%7Dfigure%7Bmargin%3A0%7Dimg%7Bvertical%2Dalign%3Amiddle%7D%2Ecarousel%2Dinner%3E%2Eitem%3Ea%3Eimg%2C%2Ecarousel%2Dinner%3E%2Eitem%3Eimg%2C%2Eimg%2Dresponsive%2C%2Ethumbnail%20a%3Eimg%2C%2Ethumbnail%3Eimg%7Bdisplay%3Ablock%3Bmax%2Dwidth%3A100%25%3Bheight%3Aauto%7D%2Eimg%2Drounded%7Bborder%2Dradius%3A6px%7D%2Eimg%2Dthumbnail%7Bdisplay%3Ainline%2Dblock%3Bmax%2Dwidth%3A100%25%3Bheight%3Aauto%3Bpadding%3A4px%3Bline%2Dheight%3A1%2E42857143%3Bbackground%2Dcolor%3A%23fff%3Bborder%3A1px%20solid%20%23ddd%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dtransition%3Aall%20%2E2s%20ease%2Din%2Dout%3B%2Do%2Dtransition%3Aall%20%2E2s%20ease%2Din%2Dout%3Btransition%3Aall%20%2E2s%20ease%2Din%2Dout%7D%2Eimg%2Dcircle%7Bborder%2Dradius%3A50%25%7Dhr%7Bmargin%2Dtop%3A20px%3Bmargin%2Dbottom%3A20px%3Bborder%3A0%3Bborder%2Dtop%3A1px%20solid%20%23eee%7D%2Esr%2Donly%7Bposition%3Aabsolute%3Bwidth%3A1px%3Bheight%3A1px%3Bpadding%3A0%3Bmargin%3A%2D1px%3Boverflow%3Ahidden%3Bclip%3Arect%280%2C0%2C0%2C0%29%3Bborder%3A0%7D%2Esr%2Donly%2Dfocusable%3Aactive%2C%2Esr%2Donly%2Dfocusable%3Afocus%7Bposition%3Astatic%3Bwidth%3Aauto%3Bheight%3Aauto%3Bmargin%3A0%3Boverflow%3Avisible%3Bclip%3Aauto%7D%5Brole%3Dbutton%5D%7Bcursor%3Apointer%7D%2Eh1%2C%2Eh2%2C%2Eh3%2C%2Eh4%2C%2Eh5%2C%2Eh6%2Ch1%2Ch2%2Ch3%2Ch4%2Ch5%2Ch6%7Bfont%2Dfamily%3Ainherit%3Bfont%2Dweight%3A500%3Bline%2Dheight%3A1%2E1%3Bcolor%3Ainherit%7D%2Eh1%20%2Esmall%2C%2Eh1%20small%2C%2Eh2%20%2Esmall%2C%2Eh2%20small%2C%2Eh3%20%2Esmall%2C%2Eh3%20small%2C%2Eh4%20%2Esmall%2C%2Eh4%20small%2C%2Eh5%20%2Esmall%2C%2Eh5%20small%2C%2Eh6%20%2Esmall%2C%2Eh6%20small%2Ch1%20%2Esmall%2Ch1%20small%2Ch2%20%2Esmall%2Ch2%20small%2Ch3%20%2Esmall%2Ch3%20small%2Ch4%20%2Esmall%2Ch4%20small%2Ch5%20%2Esmall%2Ch5%20small%2Ch6%20%2Esmall%2Ch6%20small%7Bfont%2Dweight%3A400%3Bline%2Dheight%3A1%3Bcolor%3A%23777%7D%2Eh1%2C%2Eh2%2C%2Eh3%2Ch1%2Ch2%2Ch3%7Bmargin%2Dtop%3A20px%3Bmargin%2Dbottom%3A10px%7D%2Eh1%20%2Esmall%2C%2Eh1%20small%2C%2Eh2%20%2Esmall%2C%2Eh2%20small%2C%2Eh3%20%2Esmall%2C%2Eh3%20small%2Ch1%20%2Esmall%2Ch1%20small%2Ch2%20%2Esmall%2Ch2%20small%2Ch3%20%2Esmall%2Ch3%20small%7Bfont%2Dsize%3A65%25%7D%2Eh4%2C%2Eh5%2C%2Eh6%2Ch4%2Ch5%2Ch6%7Bmargin%2Dtop%3A10px%3Bmargin%2Dbottom%3A10px%7D%2Eh4%20%2Esmall%2C%2Eh4%20small%2C%2Eh5%20%2Esmall%2C%2Eh5%20small%2C%2Eh6%20%2Esmall%2C%2Eh6%20small%2Ch4%20%2Esmall%2Ch4%20small%2Ch5%20%2Esmall%2Ch5%20small%2Ch6%20%2Esmall%2Ch6%20small%7Bfont%2Dsize%3A75%25%7D%2Eh1%2Ch1%7Bfont%2Dsize%3A36px%7D%2Eh2%2Ch2%7Bfont%2Dsize%3A30px%7D%2Eh3%2Ch3%7Bfont%2Dsize%3A24px%7D%2Eh4%2Ch4%7Bfont%2Dsize%3A18px%7D%2Eh5%2Ch5%7Bfont%2Dsize%3A14px%7D%2Eh6%2Ch6%7Bfont%2Dsize%3A12px%7Dp%7Bmargin%3A0%200%2010px%7D%2Elead%7Bmargin%2Dbottom%3A20px%3Bfont%2Dsize%3A16px%3Bfont%2Dweight%3A300%3Bline%2Dheight%3A1%2E4%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Elead%7Bfont%2Dsize%3A21px%7D%7D%2Esmall%2Csmall%7Bfont%2Dsize%3A85%25%7D%2Emark%2Cmark%7Bpadding%3A%2E2em%3Bbackground%2Dcolor%3A%23fcf8e3%7D%2Etext%2Dleft%7Btext%2Dalign%3Aleft%7D%2Etext%2Dright%7Btext%2Dalign%3Aright%7D%2Etext%2Dcenter%7Btext%2Dalign%3Acenter%7D%2Etext%2Djustify%7Btext%2Dalign%3Ajustify%7D%2Etext%2Dnowrap%7Bwhite%2Dspace%3Anowrap%7D%2Etext%2Dlowercase%7Btext%2Dtransform%3Alowercase%7D%2Etext%2Duppercase%7Btext%2Dtransform%3Auppercase%7D%2Etext%2Dcapitalize%7Btext%2Dtransform%3Acapitalize%7D%2Etext%2Dmuted%7Bcolor%3A%23777%7D%2Etext%2Dprimary%7Bcolor%3A%23337ab7%7Da%2Etext%2Dprimary%3Afocus%2Ca%2Etext%2Dprimary%3Ahover%7Bcolor%3A%23286090%7D%2Etext%2Dsuccess%7Bcolor%3A%233c763d%7Da%2Etext%2Dsuccess%3Afocus%2Ca%2Etext%2Dsuccess%3Ahover%7Bcolor%3A%232b542c%7D%2Etext%2Dinfo%7Bcolor%3A%2331708f%7Da%2Etext%2Dinfo%3Afocus%2Ca%2Etext%2Dinfo%3Ahover%7Bcolor%3A%23245269%7D%2Etext%2Dwarning%7Bcolor%3A%238a6d3b%7Da%2Etext%2Dwarning%3Afocus%2Ca%2Etext%2Dwarning%3Ahover%7Bcolor%3A%2366512c%7D%2Etext%2Ddanger%7Bcolor%3A%23a94442%7Da%2Etext%2Ddanger%3Afocus%2Ca%2Etext%2Ddanger%3Ahover%7Bcolor%3A%23843534%7D%2Ebg%2Dprimary%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23337ab7%7Da%2Ebg%2Dprimary%3Afocus%2Ca%2Ebg%2Dprimary%3Ahover%7Bbackground%2Dcolor%3A%23286090%7D%2Ebg%2Dsuccess%7Bbackground%2Dcolor%3A%23dff0d8%7Da%2Ebg%2Dsuccess%3Afocus%2Ca%2Ebg%2Dsuccess%3Ahover%7Bbackground%2Dcolor%3A%23c1e2b3%7D%2Ebg%2Dinfo%7Bbackground%2Dcolor%3A%23d9edf7%7Da%2Ebg%2Dinfo%3Afocus%2Ca%2Ebg%2Dinfo%3Ahover%7Bbackground%2Dcolor%3A%23afd9ee%7D%2Ebg%2Dwarning%7Bbackground%2Dcolor%3A%23fcf8e3%7Da%2Ebg%2Dwarning%3Afocus%2Ca%2Ebg%2Dwarning%3Ahover%7Bbackground%2Dcolor%3A%23f7ecb5%7D%2Ebg%2Ddanger%7Bbackground%2Dcolor%3A%23f2dede%7Da%2Ebg%2Ddanger%3Afocus%2Ca%2Ebg%2Ddanger%3Ahover%7Bbackground%2Dcolor%3A%23e4b9b9%7D%2Epage%2Dheader%7Bpadding%2Dbottom%3A9px%3Bmargin%3A40px%200%2020px%3Bborder%2Dbottom%3A1px%20solid%20%23eee%7Dol%2Cul%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A10px%7Dol%20ol%2Col%20ul%2Cul%20ol%2Cul%20ul%7Bmargin%2Dbottom%3A0%7D%2Elist%2Dunstyled%7Bpadding%2Dleft%3A0%3Blist%2Dstyle%3Anone%7D%2Elist%2Dinline%7Bpadding%2Dleft%3A0%3Bmargin%2Dleft%3A%2D5px%3Blist%2Dstyle%3Anone%7D%2Elist%2Dinline%3Eli%7Bdisplay%3Ainline%2Dblock%3Bpadding%2Dright%3A5px%3Bpadding%2Dleft%3A5px%7Ddl%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A20px%7Ddd%2Cdt%7Bline%2Dheight%3A1%2E42857143%7Ddt%7Bfont%2Dweight%3A700%7Ddd%7Bmargin%2Dleft%3A0%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Edl%2Dhorizontal%20dt%7Bfloat%3Aleft%3Bwidth%3A160px%3Boverflow%3Ahidden%3Bclear%3Aleft%3Btext%2Dalign%3Aright%3Btext%2Doverflow%3Aellipsis%3Bwhite%2Dspace%3Anowrap%7D%2Edl%2Dhorizontal%20dd%7Bmargin%2Dleft%3A180px%7D%7Dabbr%5Bdata%2Doriginal%2Dtitle%5D%2Cabbr%5Btitle%5D%7Bcursor%3Ahelp%3Bborder%2Dbottom%3A1px%20dotted%20%23777%7D%2Einitialism%7Bfont%2Dsize%3A90%25%3Btext%2Dtransform%3Auppercase%7Dblockquote%7Bpadding%3A10px%2020px%3Bmargin%3A0%200%2020px%3Bfont%2Dsize%3A17%2E5px%3Bborder%2Dleft%3A5px%20solid%20%23eee%7Dblockquote%20ol%3Alast%2Dchild%2Cblockquote%20p%3Alast%2Dchild%2Cblockquote%20ul%3Alast%2Dchild%7Bmargin%2Dbottom%3A0%7Dblockquote%20%2Esmall%2Cblockquote%20footer%2Cblockquote%20small%7Bdisplay%3Ablock%3Bfont%2Dsize%3A80%25%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23777%7Dblockquote%20%2Esmall%3Abefore%2Cblockquote%20footer%3Abefore%2Cblockquote%20small%3Abefore%7Bcontent%3A%27%5C2014%20%5C00A0%27%7D%2Eblockquote%2Dreverse%2Cblockquote%2Epull%2Dright%7Bpadding%2Dright%3A15px%3Bpadding%2Dleft%3A0%3Btext%2Dalign%3Aright%3Bborder%2Dright%3A5px%20solid%20%23eee%3Bborder%2Dleft%3A0%7D%2Eblockquote%2Dreverse%20%2Esmall%3Abefore%2C%2Eblockquote%2Dreverse%20footer%3Abefore%2C%2Eblockquote%2Dreverse%20small%3Abefore%2Cblockquote%2Epull%2Dright%20%2Esmall%3Abefore%2Cblockquote%2Epull%2Dright%20footer%3Abefore%2Cblockquote%2Epull%2Dright%20small%3Abefore%7Bcontent%3A%27%27%7D%2Eblockquote%2Dreverse%20%2Esmall%3Aafter%2C%2Eblockquote%2Dreverse%20footer%3Aafter%2C%2Eblockquote%2Dreverse%20small%3Aafter%2Cblockquote%2Epull%2Dright%20%2Esmall%3Aafter%2Cblockquote%2Epull%2Dright%20footer%3Aafter%2Cblockquote%2Epull%2Dright%20small%3Aafter%7Bcontent%3A%27%5C00A0%20%5C2014%27%7Daddress%7Bmargin%2Dbottom%3A20px%3Bfont%2Dstyle%3Anormal%3Bline%2Dheight%3A1%2E42857143%7Dcode%2Ckbd%2Cpre%2Csamp%7Bfont%2Dfamily%3Amonospace%7Dcode%7Bpadding%3A2px%204px%3Bfont%2Dsize%3A90%25%3Bcolor%3A%23c7254e%3Bbackground%2Dcolor%3A%23f9f2f4%3Bborder%2Dradius%3A4px%7Dkbd%7Bpadding%3A2px%204px%3Bfont%2Dsize%3A90%25%3Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23333%3Bborder%2Dradius%3A3px%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%20%2D1px%200%20rgba%280%2C0%2C0%2C%2E25%29%3Bbox%2Dshadow%3Ainset%200%20%2D1px%200%20rgba%280%2C0%2C0%2C%2E25%29%7Dkbd%20kbd%7Bpadding%3A0%3Bfont%2Dsize%3A100%25%3Bfont%2Dweight%3A700%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7Dpre%7Bdisplay%3Ablock%3Bpadding%3A9%2E5px%3Bmargin%3A0%200%2010px%3Bfont%2Dsize%3A13px%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23333%3Bword%2Dbreak%3Abreak%2Dall%3Bword%2Dwrap%3Abreak%2Dword%3Bbackground%2Dcolor%3A%23f5f5f5%3Bborder%3A1px%20solid%20%23ccc%3Bborder%2Dradius%3A4px%7Dpre%20code%7Bpadding%3A0%3Bfont%2Dsize%3Ainherit%3Bcolor%3Ainherit%3Bwhite%2Dspace%3Apre%2Dwrap%3Bbackground%2Dcolor%3Atransparent%3Bborder%2Dradius%3A0%7D%2Epre%2Dscrollable%7Bmax%2Dheight%3A340px%3Boverflow%2Dy%3Ascroll%7D%2Econtainer%7Bpadding%2Dright%3A15px%3Bpadding%2Dleft%3A15px%3Bmargin%2Dright%3Aauto%3Bmargin%2Dleft%3Aauto%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Econtainer%7Bwidth%3A750px%7D%7D%40media%20%28min%2Dwidth%3A992px%29%7B%2Econtainer%7Bwidth%3A970px%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Econtainer%7Bwidth%3A1170px%7D%7D%2Econtainer%2Dfluid%7Bpadding%2Dright%3A15px%3Bpadding%2Dleft%3A15px%3Bmargin%2Dright%3Aauto%3Bmargin%2Dleft%3Aauto%7D%2Erow%7Bmargin%2Dright%3A%2D15px%3Bmargin%2Dleft%3A%2D15px%7D%2Ecol%2Dlg%2D1%2C%2Ecol%2Dlg%2D10%2C%2Ecol%2Dlg%2D11%2C%2Ecol%2Dlg%2D12%2C%2Ecol%2Dlg%2D2%2C%2Ecol%2Dlg%2D3%2C%2Ecol%2Dlg%2D4%2C%2Ecol%2Dlg%2D5%2C%2Ecol%2Dlg%2D6%2C%2Ecol%2Dlg%2D7%2C%2Ecol%2Dlg%2D8%2C%2Ecol%2Dlg%2D9%2C%2Ecol%2Dmd%2D1%2C%2Ecol%2Dmd%2D10%2C%2Ecol%2Dmd%2D11%2C%2Ecol%2Dmd%2D12%2C%2Ecol%2Dmd%2D2%2C%2Ecol%2Dmd%2D3%2C%2Ecol%2Dmd%2D4%2C%2Ecol%2Dmd%2D5%2C%2Ecol%2Dmd%2D6%2C%2Ecol%2Dmd%2D7%2C%2Ecol%2Dmd%2D8%2C%2Ecol%2Dmd%2D9%2C%2Ecol%2Dsm%2D1%2C%2Ecol%2Dsm%2D10%2C%2Ecol%2Dsm%2D11%2C%2Ecol%2Dsm%2D12%2C%2Ecol%2Dsm%2D2%2C%2Ecol%2Dsm%2D3%2C%2Ecol%2Dsm%2D4%2C%2Ecol%2Dsm%2D5%2C%2Ecol%2Dsm%2D6%2C%2Ecol%2Dsm%2D7%2C%2Ecol%2Dsm%2D8%2C%2Ecol%2Dsm%2D9%2C%2Ecol%2Dxs%2D1%2C%2Ecol%2Dxs%2D10%2C%2Ecol%2Dxs%2D11%2C%2Ecol%2Dxs%2D12%2C%2Ecol%2Dxs%2D2%2C%2Ecol%2Dxs%2D3%2C%2Ecol%2Dxs%2D4%2C%2Ecol%2Dxs%2D5%2C%2Ecol%2Dxs%2D6%2C%2Ecol%2Dxs%2D7%2C%2Ecol%2Dxs%2D8%2C%2Ecol%2Dxs%2D9%7Bposition%3Arelative%3Bmin%2Dheight%3A1px%3Bpadding%2Dright%3A15px%3Bpadding%2Dleft%3A15px%7D%2Ecol%2Dxs%2D1%2C%2Ecol%2Dxs%2D10%2C%2Ecol%2Dxs%2D11%2C%2Ecol%2Dxs%2D12%2C%2Ecol%2Dxs%2D2%2C%2Ecol%2Dxs%2D3%2C%2Ecol%2Dxs%2D4%2C%2Ecol%2Dxs%2D5%2C%2Ecol%2Dxs%2D6%2C%2Ecol%2Dxs%2D7%2C%2Ecol%2Dxs%2D8%2C%2Ecol%2Dxs%2D9%7Bfloat%3Aleft%7D%2Ecol%2Dxs%2D12%7Bwidth%3A100%25%7D%2Ecol%2Dxs%2D11%7Bwidth%3A91%2E66666667%25%7D%2Ecol%2Dxs%2D10%7Bwidth%3A83%2E33333333%25%7D%2Ecol%2Dxs%2D9%7Bwidth%3A75%25%7D%2Ecol%2Dxs%2D8%7Bwidth%3A66%2E66666667%25%7D%2Ecol%2Dxs%2D7%7Bwidth%3A58%2E33333333%25%7D%2Ecol%2Dxs%2D6%7Bwidth%3A50%25%7D%2Ecol%2Dxs%2D5%7Bwidth%3A41%2E66666667%25%7D%2Ecol%2Dxs%2D4%7Bwidth%3A33%2E33333333%25%7D%2Ecol%2Dxs%2D3%7Bwidth%3A25%25%7D%2Ecol%2Dxs%2D2%7Bwidth%3A16%2E66666667%25%7D%2Ecol%2Dxs%2D1%7Bwidth%3A8%2E33333333%25%7D%2Ecol%2Dxs%2Dpull%2D12%7Bright%3A100%25%7D%2Ecol%2Dxs%2Dpull%2D11%7Bright%3A91%2E66666667%25%7D%2Ecol%2Dxs%2Dpull%2D10%7Bright%3A83%2E33333333%25%7D%2Ecol%2Dxs%2Dpull%2D9%7Bright%3A75%25%7D%2Ecol%2Dxs%2Dpull%2D8%7Bright%3A66%2E66666667%25%7D%2Ecol%2Dxs%2Dpull%2D7%7Bright%3A58%2E33333333%25%7D%2Ecol%2Dxs%2Dpull%2D6%7Bright%3A50%25%7D%2Ecol%2Dxs%2Dpull%2D5%7Bright%3A41%2E66666667%25%7D%2Ecol%2Dxs%2Dpull%2D4%7Bright%3A33%2E33333333%25%7D%2Ecol%2Dxs%2Dpull%2D3%7Bright%3A25%25%7D%2Ecol%2Dxs%2Dpull%2D2%7Bright%3A16%2E66666667%25%7D%2Ecol%2Dxs%2Dpull%2D1%7Bright%3A8%2E33333333%25%7D%2Ecol%2Dxs%2Dpull%2D0%7Bright%3Aauto%7D%2Ecol%2Dxs%2Dpush%2D12%7Bleft%3A100%25%7D%2Ecol%2Dxs%2Dpush%2D11%7Bleft%3A91%2E66666667%25%7D%2Ecol%2Dxs%2Dpush%2D10%7Bleft%3A83%2E33333333%25%7D%2Ecol%2Dxs%2Dpush%2D9%7Bleft%3A75%25%7D%2Ecol%2Dxs%2Dpush%2D8%7Bleft%3A66%2E66666667%25%7D%2Ecol%2Dxs%2Dpush%2D7%7Bleft%3A58%2E33333333%25%7D%2Ecol%2Dxs%2Dpush%2D6%7Bleft%3A50%25%7D%2Ecol%2Dxs%2Dpush%2D5%7Bleft%3A41%2E66666667%25%7D%2Ecol%2Dxs%2Dpush%2D4%7Bleft%3A33%2E33333333%25%7D%2Ecol%2Dxs%2Dpush%2D3%7Bleft%3A25%25%7D%2Ecol%2Dxs%2Dpush%2D2%7Bleft%3A16%2E66666667%25%7D%2Ecol%2Dxs%2Dpush%2D1%7Bleft%3A8%2E33333333%25%7D%2Ecol%2Dxs%2Dpush%2D0%7Bleft%3Aauto%7D%2Ecol%2Dxs%2Doffset%2D12%7Bmargin%2Dleft%3A100%25%7D%2Ecol%2Dxs%2Doffset%2D11%7Bmargin%2Dleft%3A91%2E66666667%25%7D%2Ecol%2Dxs%2Doffset%2D10%7Bmargin%2Dleft%3A83%2E33333333%25%7D%2Ecol%2Dxs%2Doffset%2D9%7Bmargin%2Dleft%3A75%25%7D%2Ecol%2Dxs%2Doffset%2D8%7Bmargin%2Dleft%3A66%2E66666667%25%7D%2Ecol%2Dxs%2Doffset%2D7%7Bmargin%2Dleft%3A58%2E33333333%25%7D%2Ecol%2Dxs%2Doffset%2D6%7Bmargin%2Dleft%3A50%25%7D%2Ecol%2Dxs%2Doffset%2D5%7Bmargin%2Dleft%3A41%2E66666667%25%7D%2Ecol%2Dxs%2Doffset%2D4%7Bmargin%2Dleft%3A33%2E33333333%25%7D%2Ecol%2Dxs%2Doffset%2D3%7Bmargin%2Dleft%3A25%25%7D%2Ecol%2Dxs%2Doffset%2D2%7Bmargin%2Dleft%3A16%2E66666667%25%7D%2Ecol%2Dxs%2Doffset%2D1%7Bmargin%2Dleft%3A8%2E33333333%25%7D%2Ecol%2Dxs%2Doffset%2D0%7Bmargin%2Dleft%3A0%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Ecol%2Dsm%2D1%2C%2Ecol%2Dsm%2D10%2C%2Ecol%2Dsm%2D11%2C%2Ecol%2Dsm%2D12%2C%2Ecol%2Dsm%2D2%2C%2Ecol%2Dsm%2D3%2C%2Ecol%2Dsm%2D4%2C%2Ecol%2Dsm%2D5%2C%2Ecol%2Dsm%2D6%2C%2Ecol%2Dsm%2D7%2C%2Ecol%2Dsm%2D8%2C%2Ecol%2Dsm%2D9%7Bfloat%3Aleft%7D%2Ecol%2Dsm%2D12%7Bwidth%3A100%25%7D%2Ecol%2Dsm%2D11%7Bwidth%3A91%2E66666667%25%7D%2Ecol%2Dsm%2D10%7Bwidth%3A83%2E33333333%25%7D%2Ecol%2Dsm%2D9%7Bwidth%3A75%25%7D%2Ecol%2Dsm%2D8%7Bwidth%3A66%2E66666667%25%7D%2Ecol%2Dsm%2D7%7Bwidth%3A58%2E33333333%25%7D%2Ecol%2Dsm%2D6%7Bwidth%3A50%25%7D%2Ecol%2Dsm%2D5%7Bwidth%3A41%2E66666667%25%7D%2Ecol%2Dsm%2D4%7Bwidth%3A33%2E33333333%25%7D%2Ecol%2Dsm%2D3%7Bwidth%3A25%25%7D%2Ecol%2Dsm%2D2%7Bwidth%3A16%2E66666667%25%7D%2Ecol%2Dsm%2D1%7Bwidth%3A8%2E33333333%25%7D%2Ecol%2Dsm%2Dpull%2D12%7Bright%3A100%25%7D%2Ecol%2Dsm%2Dpull%2D11%7Bright%3A91%2E66666667%25%7D%2Ecol%2Dsm%2Dpull%2D10%7Bright%3A83%2E33333333%25%7D%2Ecol%2Dsm%2Dpull%2D9%7Bright%3A75%25%7D%2Ecol%2Dsm%2Dpull%2D8%7Bright%3A66%2E66666667%25%7D%2Ecol%2Dsm%2Dpull%2D7%7Bright%3A58%2E33333333%25%7D%2Ecol%2Dsm%2Dpull%2D6%7Bright%3A50%25%7D%2Ecol%2Dsm%2Dpull%2D5%7Bright%3A41%2E66666667%25%7D%2Ecol%2Dsm%2Dpull%2D4%7Bright%3A33%2E33333333%25%7D%2Ecol%2Dsm%2Dpull%2D3%7Bright%3A25%25%7D%2Ecol%2Dsm%2Dpull%2D2%7Bright%3A16%2E66666667%25%7D%2Ecol%2Dsm%2Dpull%2D1%7Bright%3A8%2E33333333%25%7D%2Ecol%2Dsm%2Dpull%2D0%7Bright%3Aauto%7D%2Ecol%2Dsm%2Dpush%2D12%7Bleft%3A100%25%7D%2Ecol%2Dsm%2Dpush%2D11%7Bleft%3A91%2E66666667%25%7D%2Ecol%2Dsm%2Dpush%2D10%7Bleft%3A83%2E33333333%25%7D%2Ecol%2Dsm%2Dpush%2D9%7Bleft%3A75%25%7D%2Ecol%2Dsm%2Dpush%2D8%7Bleft%3A66%2E66666667%25%7D%2Ecol%2Dsm%2Dpush%2D7%7Bleft%3A58%2E33333333%25%7D%2Ecol%2Dsm%2Dpush%2D6%7Bleft%3A50%25%7D%2Ecol%2Dsm%2Dpush%2D5%7Bleft%3A41%2E66666667%25%7D%2Ecol%2Dsm%2Dpush%2D4%7Bleft%3A33%2E33333333%25%7D%2Ecol%2Dsm%2Dpush%2D3%7Bleft%3A25%25%7D%2Ecol%2Dsm%2Dpush%2D2%7Bleft%3A16%2E66666667%25%7D%2Ecol%2Dsm%2Dpush%2D1%7Bleft%3A8%2E33333333%25%7D%2Ecol%2Dsm%2Dpush%2D0%7Bleft%3Aauto%7D%2Ecol%2Dsm%2Doffset%2D12%7Bmargin%2Dleft%3A100%25%7D%2Ecol%2Dsm%2Doffset%2D11%7Bmargin%2Dleft%3A91%2E66666667%25%7D%2Ecol%2Dsm%2Doffset%2D10%7Bmargin%2Dleft%3A83%2E33333333%25%7D%2Ecol%2Dsm%2Doffset%2D9%7Bmargin%2Dleft%3A75%25%7D%2Ecol%2Dsm%2Doffset%2D8%7Bmargin%2Dleft%3A66%2E66666667%25%7D%2Ecol%2Dsm%2Doffset%2D7%7Bmargin%2Dleft%3A58%2E33333333%25%7D%2Ecol%2Dsm%2Doffset%2D6%7Bmargin%2Dleft%3A50%25%7D%2Ecol%2Dsm%2Doffset%2D5%7Bmargin%2Dleft%3A41%2E66666667%25%7D%2Ecol%2Dsm%2Doffset%2D4%7Bmargin%2Dleft%3A33%2E33333333%25%7D%2Ecol%2Dsm%2Doffset%2D3%7Bmargin%2Dleft%3A25%25%7D%2Ecol%2Dsm%2Doffset%2D2%7Bmargin%2Dleft%3A16%2E66666667%25%7D%2Ecol%2Dsm%2Doffset%2D1%7Bmargin%2Dleft%3A8%2E33333333%25%7D%2Ecol%2Dsm%2Doffset%2D0%7Bmargin%2Dleft%3A0%7D%7D%40media%20%28min%2Dwidth%3A992px%29%7B%2Ecol%2Dmd%2D1%2C%2Ecol%2Dmd%2D10%2C%2Ecol%2Dmd%2D11%2C%2Ecol%2Dmd%2D12%2C%2Ecol%2Dmd%2D2%2C%2Ecol%2Dmd%2D3%2C%2Ecol%2Dmd%2D4%2C%2Ecol%2Dmd%2D5%2C%2Ecol%2Dmd%2D6%2C%2Ecol%2Dmd%2D7%2C%2Ecol%2Dmd%2D8%2C%2Ecol%2Dmd%2D9%7Bfloat%3Aleft%7D%2Ecol%2Dmd%2D12%7Bwidth%3A100%25%7D%2Ecol%2Dmd%2D11%7Bwidth%3A91%2E66666667%25%7D%2Ecol%2Dmd%2D10%7Bwidth%3A83%2E33333333%25%7D%2Ecol%2Dmd%2D9%7Bwidth%3A75%25%7D%2Ecol%2Dmd%2D8%7Bwidth%3A66%2E66666667%25%7D%2Ecol%2Dmd%2D7%7Bwidth%3A58%2E33333333%25%7D%2Ecol%2Dmd%2D6%7Bwidth%3A50%25%7D%2Ecol%2Dmd%2D5%7Bwidth%3A41%2E66666667%25%7D%2Ecol%2Dmd%2D4%7Bwidth%3A33%2E33333333%25%7D%2Ecol%2Dmd%2D3%7Bwidth%3A25%25%7D%2Ecol%2Dmd%2D2%7Bwidth%3A16%2E66666667%25%7D%2Ecol%2Dmd%2D1%7Bwidth%3A8%2E33333333%25%7D%2Ecol%2Dmd%2Dpull%2D12%7Bright%3A100%25%7D%2Ecol%2Dmd%2Dpull%2D11%7Bright%3A91%2E66666667%25%7D%2Ecol%2Dmd%2Dpull%2D10%7Bright%3A83%2E33333333%25%7D%2Ecol%2Dmd%2Dpull%2D9%7Bright%3A75%25%7D%2Ecol%2Dmd%2Dpull%2D8%7Bright%3A66%2E66666667%25%7D%2Ecol%2Dmd%2Dpull%2D7%7Bright%3A58%2E33333333%25%7D%2Ecol%2Dmd%2Dpull%2D6%7Bright%3A50%25%7D%2Ecol%2Dmd%2Dpull%2D5%7Bright%3A41%2E66666667%25%7D%2Ecol%2Dmd%2Dpull%2D4%7Bright%3A33%2E33333333%25%7D%2Ecol%2Dmd%2Dpull%2D3%7Bright%3A25%25%7D%2Ecol%2Dmd%2Dpull%2D2%7Bright%3A16%2E66666667%25%7D%2Ecol%2Dmd%2Dpull%2D1%7Bright%3A8%2E33333333%25%7D%2Ecol%2Dmd%2Dpull%2D0%7Bright%3Aauto%7D%2Ecol%2Dmd%2Dpush%2D12%7Bleft%3A100%25%7D%2Ecol%2Dmd%2Dpush%2D11%7Bleft%3A91%2E66666667%25%7D%2Ecol%2Dmd%2Dpush%2D10%7Bleft%3A83%2E33333333%25%7D%2Ecol%2Dmd%2Dpush%2D9%7Bleft%3A75%25%7D%2Ecol%2Dmd%2Dpush%2D8%7Bleft%3A66%2E66666667%25%7D%2Ecol%2Dmd%2Dpush%2D7%7Bleft%3A58%2E33333333%25%7D%2Ecol%2Dmd%2Dpush%2D6%7Bleft%3A50%25%7D%2Ecol%2Dmd%2Dpush%2D5%7Bleft%3A41%2E66666667%25%7D%2Ecol%2Dmd%2Dpush%2D4%7Bleft%3A33%2E33333333%25%7D%2Ecol%2Dmd%2Dpush%2D3%7Bleft%3A25%25%7D%2Ecol%2Dmd%2Dpush%2D2%7Bleft%3A16%2E66666667%25%7D%2Ecol%2Dmd%2Dpush%2D1%7Bleft%3A8%2E33333333%25%7D%2Ecol%2Dmd%2Dpush%2D0%7Bleft%3Aauto%7D%2Ecol%2Dmd%2Doffset%2D12%7Bmargin%2Dleft%3A100%25%7D%2Ecol%2Dmd%2Doffset%2D11%7Bmargin%2Dleft%3A91%2E66666667%25%7D%2Ecol%2Dmd%2Doffset%2D10%7Bmargin%2Dleft%3A83%2E33333333%25%7D%2Ecol%2Dmd%2Doffset%2D9%7Bmargin%2Dleft%3A75%25%7D%2Ecol%2Dmd%2Doffset%2D8%7Bmargin%2Dleft%3A66%2E66666667%25%7D%2Ecol%2Dmd%2Doffset%2D7%7Bmargin%2Dleft%3A58%2E33333333%25%7D%2Ecol%2Dmd%2Doffset%2D6%7Bmargin%2Dleft%3A50%25%7D%2Ecol%2Dmd%2Doffset%2D5%7Bmargin%2Dleft%3A41%2E66666667%25%7D%2Ecol%2Dmd%2Doffset%2D4%7Bmargin%2Dleft%3A33%2E33333333%25%7D%2Ecol%2Dmd%2Doffset%2D3%7Bmargin%2Dleft%3A25%25%7D%2Ecol%2Dmd%2Doffset%2D2%7Bmargin%2Dleft%3A16%2E66666667%25%7D%2Ecol%2Dmd%2Doffset%2D1%7Bmargin%2Dleft%3A8%2E33333333%25%7D%2Ecol%2Dmd%2Doffset%2D0%7Bmargin%2Dleft%3A0%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Ecol%2Dlg%2D1%2C%2Ecol%2Dlg%2D10%2C%2Ecol%2Dlg%2D11%2C%2Ecol%2Dlg%2D12%2C%2Ecol%2Dlg%2D2%2C%2Ecol%2Dlg%2D3%2C%2Ecol%2Dlg%2D4%2C%2Ecol%2Dlg%2D5%2C%2Ecol%2Dlg%2D6%2C%2Ecol%2Dlg%2D7%2C%2Ecol%2Dlg%2D8%2C%2Ecol%2Dlg%2D9%7Bfloat%3Aleft%7D%2Ecol%2Dlg%2D12%7Bwidth%3A100%25%7D%2Ecol%2Dlg%2D11%7Bwidth%3A91%2E66666667%25%7D%2Ecol%2Dlg%2D10%7Bwidth%3A83%2E33333333%25%7D%2Ecol%2Dlg%2D9%7Bwidth%3A75%25%7D%2Ecol%2Dlg%2D8%7Bwidth%3A66%2E66666667%25%7D%2Ecol%2Dlg%2D7%7Bwidth%3A58%2E33333333%25%7D%2Ecol%2Dlg%2D6%7Bwidth%3A50%25%7D%2Ecol%2Dlg%2D5%7Bwidth%3A41%2E66666667%25%7D%2Ecol%2Dlg%2D4%7Bwidth%3A33%2E33333333%25%7D%2Ecol%2Dlg%2D3%7Bwidth%3A25%25%7D%2Ecol%2Dlg%2D2%7Bwidth%3A16%2E66666667%25%7D%2Ecol%2Dlg%2D1%7Bwidth%3A8%2E33333333%25%7D%2Ecol%2Dlg%2Dpull%2D12%7Bright%3A100%25%7D%2Ecol%2Dlg%2Dpull%2D11%7Bright%3A91%2E66666667%25%7D%2Ecol%2Dlg%2Dpull%2D10%7Bright%3A83%2E33333333%25%7D%2Ecol%2Dlg%2Dpull%2D9%7Bright%3A75%25%7D%2Ecol%2Dlg%2Dpull%2D8%7Bright%3A66%2E66666667%25%7D%2Ecol%2Dlg%2Dpull%2D7%7Bright%3A58%2E33333333%25%7D%2Ecol%2Dlg%2Dpull%2D6%7Bright%3A50%25%7D%2Ecol%2Dlg%2Dpull%2D5%7Bright%3A41%2E66666667%25%7D%2Ecol%2Dlg%2Dpull%2D4%7Bright%3A33%2E33333333%25%7D%2Ecol%2Dlg%2Dpull%2D3%7Bright%3A25%25%7D%2Ecol%2Dlg%2Dpull%2D2%7Bright%3A16%2E66666667%25%7D%2Ecol%2Dlg%2Dpull%2D1%7Bright%3A8%2E33333333%25%7D%2Ecol%2Dlg%2Dpull%2D0%7Bright%3Aauto%7D%2Ecol%2Dlg%2Dpush%2D12%7Bleft%3A100%25%7D%2Ecol%2Dlg%2Dpush%2D11%7Bleft%3A91%2E66666667%25%7D%2Ecol%2Dlg%2Dpush%2D10%7Bleft%3A83%2E33333333%25%7D%2Ecol%2Dlg%2Dpush%2D9%7Bleft%3A75%25%7D%2Ecol%2Dlg%2Dpush%2D8%7Bleft%3A66%2E66666667%25%7D%2Ecol%2Dlg%2Dpush%2D7%7Bleft%3A58%2E33333333%25%7D%2Ecol%2Dlg%2Dpush%2D6%7Bleft%3A50%25%7D%2Ecol%2Dlg%2Dpush%2D5%7Bleft%3A41%2E66666667%25%7D%2Ecol%2Dlg%2Dpush%2D4%7Bleft%3A33%2E33333333%25%7D%2Ecol%2Dlg%2Dpush%2D3%7Bleft%3A25%25%7D%2Ecol%2Dlg%2Dpush%2D2%7Bleft%3A16%2E66666667%25%7D%2Ecol%2Dlg%2Dpush%2D1%7Bleft%3A8%2E33333333%25%7D%2Ecol%2Dlg%2Dpush%2D0%7Bleft%3Aauto%7D%2Ecol%2Dlg%2Doffset%2D12%7Bmargin%2Dleft%3A100%25%7D%2Ecol%2Dlg%2Doffset%2D11%7Bmargin%2Dleft%3A91%2E66666667%25%7D%2Ecol%2Dlg%2Doffset%2D10%7Bmargin%2Dleft%3A83%2E33333333%25%7D%2Ecol%2Dlg%2Doffset%2D9%7Bmargin%2Dleft%3A75%25%7D%2Ecol%2Dlg%2Doffset%2D8%7Bmargin%2Dleft%3A66%2E66666667%25%7D%2Ecol%2Dlg%2Doffset%2D7%7Bmargin%2Dleft%3A58%2E33333333%25%7D%2Ecol%2Dlg%2Doffset%2D6%7Bmargin%2Dleft%3A50%25%7D%2Ecol%2Dlg%2Doffset%2D5%7Bmargin%2Dleft%3A41%2E66666667%25%7D%2Ecol%2Dlg%2Doffset%2D4%7Bmargin%2Dleft%3A33%2E33333333%25%7D%2Ecol%2Dlg%2Doffset%2D3%7Bmargin%2Dleft%3A25%25%7D%2Ecol%2Dlg%2Doffset%2D2%7Bmargin%2Dleft%3A16%2E66666667%25%7D%2Ecol%2Dlg%2Doffset%2D1%7Bmargin%2Dleft%3A8%2E33333333%25%7D%2Ecol%2Dlg%2Doffset%2D0%7Bmargin%2Dleft%3A0%7D%7Dtable%7Bbackground%2Dcolor%3Atransparent%7Dcaption%7Bpadding%2Dtop%3A8px%3Bpadding%2Dbottom%3A8px%3Bcolor%3A%23777%3Btext%2Dalign%3Aleft%7Dth%7B%7D%2Etable%7Bwidth%3A100%25%3Bmax%2Dwidth%3A100%25%3Bmargin%2Dbottom%3A20px%7D%2Etable%3Etbody%3Etr%3Etd%2C%2Etable%3Etbody%3Etr%3Eth%2C%2Etable%3Etfoot%3Etr%3Etd%2C%2Etable%3Etfoot%3Etr%3Eth%2C%2Etable%3Ethead%3Etr%3Etd%2C%2Etable%3Ethead%3Etr%3Eth%7Bpadding%3A8px%3Bline%2Dheight%3A1%2E42857143%3Bvertical%2Dalign%3Atop%3Bborder%2Dtop%3A1px%20solid%20%23ddd%7D%2Etable%3Ethead%3Etr%3Eth%7Bvertical%2Dalign%3Abottom%3Bborder%2Dbottom%3A2px%20solid%20%23ddd%7D%2Etable%3Ecaption%2Bthead%3Etr%3Afirst%2Dchild%3Etd%2C%2Etable%3Ecaption%2Bthead%3Etr%3Afirst%2Dchild%3Eth%2C%2Etable%3Ecolgroup%2Bthead%3Etr%3Afirst%2Dchild%3Etd%2C%2Etable%3Ecolgroup%2Bthead%3Etr%3Afirst%2Dchild%3Eth%2C%2Etable%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%3Etd%2C%2Etable%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%3Eth%7Bborder%2Dtop%3A0%7D%2Etable%3Etbody%2Btbody%7Bborder%2Dtop%3A2px%20solid%20%23ddd%7D%2Etable%20%2Etable%7Bbackground%2Dcolor%3A%23fff%7D%2Etable%2Dcondensed%3Etbody%3Etr%3Etd%2C%2Etable%2Dcondensed%3Etbody%3Etr%3Eth%2C%2Etable%2Dcondensed%3Etfoot%3Etr%3Etd%2C%2Etable%2Dcondensed%3Etfoot%3Etr%3Eth%2C%2Etable%2Dcondensed%3Ethead%3Etr%3Etd%2C%2Etable%2Dcondensed%3Ethead%3Etr%3Eth%7Bpadding%3A5px%7D%2Etable%2Dbordered%7Bborder%3A1px%20solid%20%23ddd%7D%2Etable%2Dbordered%3Etbody%3Etr%3Etd%2C%2Etable%2Dbordered%3Etbody%3Etr%3Eth%2C%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%2C%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%2C%2Etable%2Dbordered%3Ethead%3Etr%3Etd%2C%2Etable%2Dbordered%3Ethead%3Etr%3Eth%7Bborder%3A1px%20solid%20%23ddd%7D%2Etable%2Dbordered%3Ethead%3Etr%3Etd%2C%2Etable%2Dbordered%3Ethead%3Etr%3Eth%7Bborder%2Dbottom%2Dwidth%3A2px%7D%2Etable%2Dstriped%3Etbody%3Etr%3Anth%2Dof%2Dtype%28odd%29%7Bbackground%2Dcolor%3A%23f9f9f9%7D%2Etable%2Dhover%3Etbody%3Etr%3Ahover%7Bbackground%2Dcolor%3A%23f5f5f5%7Dtable%20col%5Bclass%2A%3Dcol%2D%5D%7Bposition%3Astatic%3Bdisplay%3Atable%2Dcolumn%3Bfloat%3Anone%7Dtable%20td%5Bclass%2A%3Dcol%2D%5D%2Ctable%20th%5Bclass%2A%3Dcol%2D%5D%7Bposition%3Astatic%3Bdisplay%3Atable%2Dcell%3Bfloat%3Anone%7D%2Etable%3Etbody%3Etr%2Eactive%3Etd%2C%2Etable%3Etbody%3Etr%2Eactive%3Eth%2C%2Etable%3Etbody%3Etr%3Etd%2Eactive%2C%2Etable%3Etbody%3Etr%3Eth%2Eactive%2C%2Etable%3Etfoot%3Etr%2Eactive%3Etd%2C%2Etable%3Etfoot%3Etr%2Eactive%3Eth%2C%2Etable%3Etfoot%3Etr%3Etd%2Eactive%2C%2Etable%3Etfoot%3Etr%3Eth%2Eactive%2C%2Etable%3Ethead%3Etr%2Eactive%3Etd%2C%2Etable%3Ethead%3Etr%2Eactive%3Eth%2C%2Etable%3Ethead%3Etr%3Etd%2Eactive%2C%2Etable%3Ethead%3Etr%3Eth%2Eactive%7Bbackground%2Dcolor%3A%23f5f5f5%7D%2Etable%2Dhover%3Etbody%3Etr%2Eactive%3Ahover%3Etd%2C%2Etable%2Dhover%3Etbody%3Etr%2Eactive%3Ahover%3Eth%2C%2Etable%2Dhover%3Etbody%3Etr%3Ahover%3E%2Eactive%2C%2Etable%2Dhover%3Etbody%3Etr%3Etd%2Eactive%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%3Eth%2Eactive%3Ahover%7Bbackground%2Dcolor%3A%23e8e8e8%7D%2Etable%3Etbody%3Etr%2Esuccess%3Etd%2C%2Etable%3Etbody%3Etr%2Esuccess%3Eth%2C%2Etable%3Etbody%3Etr%3Etd%2Esuccess%2C%2Etable%3Etbody%3Etr%3Eth%2Esuccess%2C%2Etable%3Etfoot%3Etr%2Esuccess%3Etd%2C%2Etable%3Etfoot%3Etr%2Esuccess%3Eth%2C%2Etable%3Etfoot%3Etr%3Etd%2Esuccess%2C%2Etable%3Etfoot%3Etr%3Eth%2Esuccess%2C%2Etable%3Ethead%3Etr%2Esuccess%3Etd%2C%2Etable%3Ethead%3Etr%2Esuccess%3Eth%2C%2Etable%3Ethead%3Etr%3Etd%2Esuccess%2C%2Etable%3Ethead%3Etr%3Eth%2Esuccess%7Bbackground%2Dcolor%3A%23dff0d8%7D%2Etable%2Dhover%3Etbody%3Etr%2Esuccess%3Ahover%3Etd%2C%2Etable%2Dhover%3Etbody%3Etr%2Esuccess%3Ahover%3Eth%2C%2Etable%2Dhover%3Etbody%3Etr%3Ahover%3E%2Esuccess%2C%2Etable%2Dhover%3Etbody%3Etr%3Etd%2Esuccess%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%3Eth%2Esuccess%3Ahover%7Bbackground%2Dcolor%3A%23d0e9c6%7D%2Etable%3Etbody%3Etr%2Einfo%3Etd%2C%2Etable%3Etbody%3Etr%2Einfo%3Eth%2C%2Etable%3Etbody%3Etr%3Etd%2Einfo%2C%2Etable%3Etbody%3Etr%3Eth%2Einfo%2C%2Etable%3Etfoot%3Etr%2Einfo%3Etd%2C%2Etable%3Etfoot%3Etr%2Einfo%3Eth%2C%2Etable%3Etfoot%3Etr%3Etd%2Einfo%2C%2Etable%3Etfoot%3Etr%3Eth%2Einfo%2C%2Etable%3Ethead%3Etr%2Einfo%3Etd%2C%2Etable%3Ethead%3Etr%2Einfo%3Eth%2C%2Etable%3Ethead%3Etr%3Etd%2Einfo%2C%2Etable%3Ethead%3Etr%3Eth%2Einfo%7Bbackground%2Dcolor%3A%23d9edf7%7D%2Etable%2Dhover%3Etbody%3Etr%2Einfo%3Ahover%3Etd%2C%2Etable%2Dhover%3Etbody%3Etr%2Einfo%3Ahover%3Eth%2C%2Etable%2Dhover%3Etbody%3Etr%3Ahover%3E%2Einfo%2C%2Etable%2Dhover%3Etbody%3Etr%3Etd%2Einfo%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%3Eth%2Einfo%3Ahover%7Bbackground%2Dcolor%3A%23c4e3f3%7D%2Etable%3Etbody%3Etr%2Ewarning%3Etd%2C%2Etable%3Etbody%3Etr%2Ewarning%3Eth%2C%2Etable%3Etbody%3Etr%3Etd%2Ewarning%2C%2Etable%3Etbody%3Etr%3Eth%2Ewarning%2C%2Etable%3Etfoot%3Etr%2Ewarning%3Etd%2C%2Etable%3Etfoot%3Etr%2Ewarning%3Eth%2C%2Etable%3Etfoot%3Etr%3Etd%2Ewarning%2C%2Etable%3Etfoot%3Etr%3Eth%2Ewarning%2C%2Etable%3Ethead%3Etr%2Ewarning%3Etd%2C%2Etable%3Ethead%3Etr%2Ewarning%3Eth%2C%2Etable%3Ethead%3Etr%3Etd%2Ewarning%2C%2Etable%3Ethead%3Etr%3Eth%2Ewarning%7Bbackground%2Dcolor%3A%23fcf8e3%7D%2Etable%2Dhover%3Etbody%3Etr%2Ewarning%3Ahover%3Etd%2C%2Etable%2Dhover%3Etbody%3Etr%2Ewarning%3Ahover%3Eth%2C%2Etable%2Dhover%3Etbody%3Etr%3Ahover%3E%2Ewarning%2C%2Etable%2Dhover%3Etbody%3Etr%3Etd%2Ewarning%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%3Eth%2Ewarning%3Ahover%7Bbackground%2Dcolor%3A%23faf2cc%7D%2Etable%3Etbody%3Etr%2Edanger%3Etd%2C%2Etable%3Etbody%3Etr%2Edanger%3Eth%2C%2Etable%3Etbody%3Etr%3Etd%2Edanger%2C%2Etable%3Etbody%3Etr%3Eth%2Edanger%2C%2Etable%3Etfoot%3Etr%2Edanger%3Etd%2C%2Etable%3Etfoot%3Etr%2Edanger%3Eth%2C%2Etable%3Etfoot%3Etr%3Etd%2Edanger%2C%2Etable%3Etfoot%3Etr%3Eth%2Edanger%2C%2Etable%3Ethead%3Etr%2Edanger%3Etd%2C%2Etable%3Ethead%3Etr%2Edanger%3Eth%2C%2Etable%3Ethead%3Etr%3Etd%2Edanger%2C%2Etable%3Ethead%3Etr%3Eth%2Edanger%7Bbackground%2Dcolor%3A%23f2dede%7D%2Etable%2Dhover%3Etbody%3Etr%2Edanger%3Ahover%3Etd%2C%2Etable%2Dhover%3Etbody%3Etr%2Edanger%3Ahover%3Eth%2C%2Etable%2Dhover%3Etbody%3Etr%3Ahover%3E%2Edanger%2C%2Etable%2Dhover%3Etbody%3Etr%3Etd%2Edanger%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%3Eth%2Edanger%3Ahover%7Bbackground%2Dcolor%3A%23ebcccc%7D%2Etable%2Dresponsive%7Bmin%2Dheight%3A%2E01%25%3Boverflow%2Dx%3Aauto%7D%40media%20screen%20and%20%28max%2Dwidth%3A767px%29%7B%2Etable%2Dresponsive%7Bwidth%3A100%25%3Bmargin%2Dbottom%3A15px%3Boverflow%2Dy%3Ahidden%3B%2Dms%2Doverflow%2Dstyle%3A%2Dms%2Dautohiding%2Dscrollbar%3Bborder%3A1px%20solid%20%23ddd%7D%2Etable%2Dresponsive%3E%2Etable%7Bmargin%2Dbottom%3A0%7D%2Etable%2Dresponsive%3E%2Etable%3Etbody%3Etr%3Etd%2C%2Etable%2Dresponsive%3E%2Etable%3Etbody%3Etr%3Eth%2C%2Etable%2Dresponsive%3E%2Etable%3Etfoot%3Etr%3Etd%2C%2Etable%2Dresponsive%3E%2Etable%3Etfoot%3Etr%3Eth%2C%2Etable%2Dresponsive%3E%2Etable%3Ethead%3Etr%3Etd%2C%2Etable%2Dresponsive%3E%2Etable%3Ethead%3Etr%3Eth%7Bwhite%2Dspace%3Anowrap%7D%2Etable%2Dresponsive%3E%2Etable%2Dbordered%7Bborder%3A0%7D%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Afirst%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Afirst%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Afirst%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Afirst%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Afirst%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Afirst%2Dchild%7Bborder%2Dleft%3A0%7D%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Alast%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Alast%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Alast%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Alast%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Alast%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Alast%2Dchild%7Bborder%2Dright%3A0%7D%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Etd%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Eth%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Etd%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Eth%7Bborder%2Dbottom%3A0%7D%7Dfieldset%7Bmin%2Dwidth%3A0%3Bpadding%3A0%3Bmargin%3A0%3Bborder%3A0%7Dlegend%7Bdisplay%3Ablock%3Bwidth%3A100%25%3Bpadding%3A0%3Bmargin%2Dbottom%3A20px%3Bfont%2Dsize%3A21px%3Bline%2Dheight%3Ainherit%3Bcolor%3A%23333%3Bborder%3A0%3Bborder%2Dbottom%3A1px%20solid%20%23e5e5e5%7Dlabel%7Bdisplay%3Ainline%2Dblock%3Bmax%2Dwidth%3A100%25%3Bmargin%2Dbottom%3A5px%3Bfont%2Dweight%3A700%7Dinput%5Btype%3Dsearch%5D%7B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%7Dinput%5Btype%3Dcheckbox%5D%2Cinput%5Btype%3Dradio%5D%7Bmargin%3A4px%200%200%3Bmargin%2Dtop%3A1px%5C9%3Bline%2Dheight%3Anormal%7Dinput%5Btype%3Dfile%5D%7Bdisplay%3Ablock%7Dinput%5Btype%3Drange%5D%7Bdisplay%3Ablock%3Bwidth%3A100%25%7Dselect%5Bmultiple%5D%2Cselect%5Bsize%5D%7Bheight%3Aauto%7Dinput%5Btype%3Dfile%5D%3Afocus%2Cinput%5Btype%3Dcheckbox%5D%3Afocus%2Cinput%5Btype%3Dradio%5D%3Afocus%7Boutline%3Athin%20dotted%3Boutline%3A5px%20auto%20%2Dwebkit%2Dfocus%2Dring%2Dcolor%3Boutline%2Doffset%3A%2D2px%7Doutput%7Bdisplay%3Ablock%3Bpadding%2Dtop%3A7px%3Bfont%2Dsize%3A14px%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23555%7D%2Eform%2Dcontrol%7Bdisplay%3Ablock%3Bwidth%3A100%25%3Bheight%3A34px%3Bpadding%3A6px%2012px%3Bfont%2Dsize%3A14px%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23555%3Bbackground%2Dcolor%3A%23fff%3Bbackground%2Dimage%3Anone%3Bborder%3A1px%20solid%20%23ccc%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%3B%2Dwebkit%2Dtransition%3Aborder%2Dcolor%20ease%2Din%2Dout%20%2E15s%2C%2Dwebkit%2Dbox%2Dshadow%20ease%2Din%2Dout%20%2E15s%3B%2Do%2Dtransition%3Aborder%2Dcolor%20ease%2Din%2Dout%20%2E15s%2Cbox%2Dshadow%20ease%2Din%2Dout%20%2E15s%3Btransition%3Aborder%2Dcolor%20ease%2Din%2Dout%20%2E15s%2Cbox%2Dshadow%20ease%2Din%2Dout%20%2E15s%7D%2Eform%2Dcontrol%3Afocus%7Bborder%2Dcolor%3A%2366afe9%3Boutline%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%2C0%200%208px%20rgba%28102%2C175%2C233%2C%2E6%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%2C0%200%208px%20rgba%28102%2C175%2C233%2C%2E6%29%7D%2Eform%2Dcontrol%3A%3A%2Dmoz%2Dplaceholder%7Bcolor%3A%23999%3Bopacity%3A1%7D%2Eform%2Dcontrol%3A%2Dms%2Dinput%2Dplaceholder%7Bcolor%3A%23999%7D%2Eform%2Dcontrol%3A%3A%2Dwebkit%2Dinput%2Dplaceholder%7Bcolor%3A%23999%7D%2Eform%2Dcontrol%5Bdisabled%5D%2C%2Eform%2Dcontrol%5Breadonly%5D%2Cfieldset%5Bdisabled%5D%20%2Eform%2Dcontrol%7Bbackground%2Dcolor%3A%23eee%3Bopacity%3A1%7D%2Eform%2Dcontrol%5Bdisabled%5D%2Cfieldset%5Bdisabled%5D%20%2Eform%2Dcontrol%7Bcursor%3Anot%2Dallowed%7Dtextarea%2Eform%2Dcontrol%7Bheight%3Aauto%7Dinput%5Btype%3Dsearch%5D%7B%2Dwebkit%2Dappearance%3Anone%7D%40media%20screen%20and%20%28%2Dwebkit%2Dmin%2Ddevice%2Dpixel%2Dratio%3A0%29%7Binput%5Btype%3Ddate%5D%2Eform%2Dcontrol%2Cinput%5Btype%3Dtime%5D%2Eform%2Dcontrol%2Cinput%5Btype%3Ddatetime%2Dlocal%5D%2Eform%2Dcontrol%2Cinput%5Btype%3Dmonth%5D%2Eform%2Dcontrol%7Bline%2Dheight%3A34px%7D%2Einput%2Dgroup%2Dsm%20input%5Btype%3Ddate%5D%2C%2Einput%2Dgroup%2Dsm%20input%5Btype%3Dtime%5D%2C%2Einput%2Dgroup%2Dsm%20input%5Btype%3Ddatetime%2Dlocal%5D%2C%2Einput%2Dgroup%2Dsm%20input%5Btype%3Dmonth%5D%2Cinput%5Btype%3Ddate%5D%2Einput%2Dsm%2Cinput%5Btype%3Dtime%5D%2Einput%2Dsm%2Cinput%5Btype%3Ddatetime%2Dlocal%5D%2Einput%2Dsm%2Cinput%5Btype%3Dmonth%5D%2Einput%2Dsm%7Bline%2Dheight%3A30px%7D%2Einput%2Dgroup%2Dlg%20input%5Btype%3Ddate%5D%2C%2Einput%2Dgroup%2Dlg%20input%5Btype%3Dtime%5D%2C%2Einput%2Dgroup%2Dlg%20input%5Btype%3Ddatetime%2Dlocal%5D%2C%2Einput%2Dgroup%2Dlg%20input%5Btype%3Dmonth%5D%2Cinput%5Btype%3Ddate%5D%2Einput%2Dlg%2Cinput%5Btype%3Dtime%5D%2Einput%2Dlg%2Cinput%5Btype%3Ddatetime%2Dlocal%5D%2Einput%2Dlg%2Cinput%5Btype%3Dmonth%5D%2Einput%2Dlg%7Bline%2Dheight%3A46px%7D%7D%2Eform%2Dgroup%7Bmargin%2Dbottom%3A15px%7D%2Echeckbox%2C%2Eradio%7Bposition%3Arelative%3Bdisplay%3Ablock%3Bmargin%2Dtop%3A10px%3Bmargin%2Dbottom%3A10px%7D%2Echeckbox%20label%2C%2Eradio%20label%7Bmin%2Dheight%3A20px%3Bpadding%2Dleft%3A20px%3Bmargin%2Dbottom%3A0%3Bfont%2Dweight%3A400%3Bcursor%3Apointer%7D%2Echeckbox%20input%5Btype%3Dcheckbox%5D%2C%2Echeckbox%2Dinline%20input%5Btype%3Dcheckbox%5D%2C%2Eradio%20input%5Btype%3Dradio%5D%2C%2Eradio%2Dinline%20input%5Btype%3Dradio%5D%7Bposition%3Aabsolute%3Bmargin%2Dtop%3A4px%5C9%3Bmargin%2Dleft%3A%2D20px%7D%2Echeckbox%2B%2Echeckbox%2C%2Eradio%2B%2Eradio%7Bmargin%2Dtop%3A%2D5px%7D%2Echeckbox%2Dinline%2C%2Eradio%2Dinline%7Bposition%3Arelative%3Bdisplay%3Ainline%2Dblock%3Bpadding%2Dleft%3A20px%3Bmargin%2Dbottom%3A0%3Bfont%2Dweight%3A400%3Bvertical%2Dalign%3Amiddle%3Bcursor%3Apointer%7D%2Echeckbox%2Dinline%2B%2Echeckbox%2Dinline%2C%2Eradio%2Dinline%2B%2Eradio%2Dinline%7Bmargin%2Dtop%3A0%3Bmargin%2Dleft%3A10px%7Dfieldset%5Bdisabled%5D%20input%5Btype%3Dcheckbox%5D%2Cfieldset%5Bdisabled%5D%20input%5Btype%3Dradio%5D%2Cinput%5Btype%3Dcheckbox%5D%2Edisabled%2Cinput%5Btype%3Dcheckbox%5D%5Bdisabled%5D%2Cinput%5Btype%3Dradio%5D%2Edisabled%2Cinput%5Btype%3Dradio%5D%5Bdisabled%5D%7Bcursor%3Anot%2Dallowed%7D%2Echeckbox%2Dinline%2Edisabled%2C%2Eradio%2Dinline%2Edisabled%2Cfieldset%5Bdisabled%5D%20%2Echeckbox%2Dinline%2Cfieldset%5Bdisabled%5D%20%2Eradio%2Dinline%7Bcursor%3Anot%2Dallowed%7D%2Echeckbox%2Edisabled%20label%2C%2Eradio%2Edisabled%20label%2Cfieldset%5Bdisabled%5D%20%2Echeckbox%20label%2Cfieldset%5Bdisabled%5D%20%2Eradio%20label%7Bcursor%3Anot%2Dallowed%7D%2Eform%2Dcontrol%2Dstatic%7Bmin%2Dheight%3A34px%3Bpadding%2Dtop%3A7px%3Bpadding%2Dbottom%3A7px%3Bmargin%2Dbottom%3A0%7D%2Eform%2Dcontrol%2Dstatic%2Einput%2Dlg%2C%2Eform%2Dcontrol%2Dstatic%2Einput%2Dsm%7Bpadding%2Dright%3A0%3Bpadding%2Dleft%3A0%7D%2Einput%2Dsm%7Bheight%3A30px%3Bpadding%3A5px%2010px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E5%3Bborder%2Dradius%3A3px%7Dselect%2Einput%2Dsm%7Bheight%3A30px%3Bline%2Dheight%3A30px%7Dselect%5Bmultiple%5D%2Einput%2Dsm%2Ctextarea%2Einput%2Dsm%7Bheight%3Aauto%7D%2Eform%2Dgroup%2Dsm%20%2Eform%2Dcontrol%7Bheight%3A30px%3Bpadding%3A5px%2010px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E5%3Bborder%2Dradius%3A3px%7D%2Eform%2Dgroup%2Dsm%20select%2Eform%2Dcontrol%7Bheight%3A30px%3Bline%2Dheight%3A30px%7D%2Eform%2Dgroup%2Dsm%20select%5Bmultiple%5D%2Eform%2Dcontrol%2C%2Eform%2Dgroup%2Dsm%20textarea%2Eform%2Dcontrol%7Bheight%3Aauto%7D%2Eform%2Dgroup%2Dsm%20%2Eform%2Dcontrol%2Dstatic%7Bheight%3A30px%3Bmin%2Dheight%3A32px%3Bpadding%3A6px%2010px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E5%7D%2Einput%2Dlg%7Bheight%3A46px%3Bpadding%3A10px%2016px%3Bfont%2Dsize%3A18px%3Bline%2Dheight%3A1%2E3333333%3Bborder%2Dradius%3A6px%7Dselect%2Einput%2Dlg%7Bheight%3A46px%3Bline%2Dheight%3A46px%7Dselect%5Bmultiple%5D%2Einput%2Dlg%2Ctextarea%2Einput%2Dlg%7Bheight%3Aauto%7D%2Eform%2Dgroup%2Dlg%20%2Eform%2Dcontrol%7Bheight%3A46px%3Bpadding%3A10px%2016px%3Bfont%2Dsize%3A18px%3Bline%2Dheight%3A1%2E3333333%3Bborder%2Dradius%3A6px%7D%2Eform%2Dgroup%2Dlg%20select%2Eform%2Dcontrol%7Bheight%3A46px%3Bline%2Dheight%3A46px%7D%2Eform%2Dgroup%2Dlg%20select%5Bmultiple%5D%2Eform%2Dcontrol%2C%2Eform%2Dgroup%2Dlg%20textarea%2Eform%2Dcontrol%7Bheight%3Aauto%7D%2Eform%2Dgroup%2Dlg%20%2Eform%2Dcontrol%2Dstatic%7Bheight%3A46px%3Bmin%2Dheight%3A38px%3Bpadding%3A11px%2016px%3Bfont%2Dsize%3A18px%3Bline%2Dheight%3A1%2E3333333%7D%2Ehas%2Dfeedback%7Bposition%3Arelative%7D%2Ehas%2Dfeedback%20%2Eform%2Dcontrol%7Bpadding%2Dright%3A42%2E5px%7D%2Eform%2Dcontrol%2Dfeedback%7Bposition%3Aabsolute%3Btop%3A0%3Bright%3A0%3Bz%2Dindex%3A2%3Bdisplay%3Ablock%3Bwidth%3A34px%3Bheight%3A34px%3Bline%2Dheight%3A34px%3Btext%2Dalign%3Acenter%3Bpointer%2Devents%3Anone%7D%2Eform%2Dgroup%2Dlg%20%2Eform%2Dcontrol%2B%2Eform%2Dcontrol%2Dfeedback%2C%2Einput%2Dgroup%2Dlg%2B%2Eform%2Dcontrol%2Dfeedback%2C%2Einput%2Dlg%2B%2Eform%2Dcontrol%2Dfeedback%7Bwidth%3A46px%3Bheight%3A46px%3Bline%2Dheight%3A46px%7D%2Eform%2Dgroup%2Dsm%20%2Eform%2Dcontrol%2B%2Eform%2Dcontrol%2Dfeedback%2C%2Einput%2Dgroup%2Dsm%2B%2Eform%2Dcontrol%2Dfeedback%2C%2Einput%2Dsm%2B%2Eform%2Dcontrol%2Dfeedback%7Bwidth%3A30px%3Bheight%3A30px%3Bline%2Dheight%3A30px%7D%2Ehas%2Dsuccess%20%2Echeckbox%2C%2Ehas%2Dsuccess%20%2Echeckbox%2Dinline%2C%2Ehas%2Dsuccess%20%2Econtrol%2Dlabel%2C%2Ehas%2Dsuccess%20%2Ehelp%2Dblock%2C%2Ehas%2Dsuccess%20%2Eradio%2C%2Ehas%2Dsuccess%20%2Eradio%2Dinline%2C%2Ehas%2Dsuccess%2Echeckbox%20label%2C%2Ehas%2Dsuccess%2Echeckbox%2Dinline%20label%2C%2Ehas%2Dsuccess%2Eradio%20label%2C%2Ehas%2Dsuccess%2Eradio%2Dinline%20label%7Bcolor%3A%233c763d%7D%2Ehas%2Dsuccess%20%2Eform%2Dcontrol%7Bborder%2Dcolor%3A%233c763d%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%7D%2Ehas%2Dsuccess%20%2Eform%2Dcontrol%3Afocus%7Bborder%2Dcolor%3A%232b542c%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%2C0%200%206px%20%2367b168%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%2C0%200%206px%20%2367b168%7D%2Ehas%2Dsuccess%20%2Einput%2Dgroup%2Daddon%7Bcolor%3A%233c763d%3Bbackground%2Dcolor%3A%23dff0d8%3Bborder%2Dcolor%3A%233c763d%7D%2Ehas%2Dsuccess%20%2Eform%2Dcontrol%2Dfeedback%7Bcolor%3A%233c763d%7D%2Ehas%2Dwarning%20%2Echeckbox%2C%2Ehas%2Dwarning%20%2Echeckbox%2Dinline%2C%2Ehas%2Dwarning%20%2Econtrol%2Dlabel%2C%2Ehas%2Dwarning%20%2Ehelp%2Dblock%2C%2Ehas%2Dwarning%20%2Eradio%2C%2Ehas%2Dwarning%20%2Eradio%2Dinline%2C%2Ehas%2Dwarning%2Echeckbox%20label%2C%2Ehas%2Dwarning%2Echeckbox%2Dinline%20label%2C%2Ehas%2Dwarning%2Eradio%20label%2C%2Ehas%2Dwarning%2Eradio%2Dinline%20label%7Bcolor%3A%238a6d3b%7D%2Ehas%2Dwarning%20%2Eform%2Dcontrol%7Bborder%2Dcolor%3A%238a6d3b%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%7D%2Ehas%2Dwarning%20%2Eform%2Dcontrol%3Afocus%7Bborder%2Dcolor%3A%2366512c%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%2C0%200%206px%20%23c0a16b%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%2C0%200%206px%20%23c0a16b%7D%2Ehas%2Dwarning%20%2Einput%2Dgroup%2Daddon%7Bcolor%3A%238a6d3b%3Bbackground%2Dcolor%3A%23fcf8e3%3Bborder%2Dcolor%3A%238a6d3b%7D%2Ehas%2Dwarning%20%2Eform%2Dcontrol%2Dfeedback%7Bcolor%3A%238a6d3b%7D%2Ehas%2Derror%20%2Echeckbox%2C%2Ehas%2Derror%20%2Echeckbox%2Dinline%2C%2Ehas%2Derror%20%2Econtrol%2Dlabel%2C%2Ehas%2Derror%20%2Ehelp%2Dblock%2C%2Ehas%2Derror%20%2Eradio%2C%2Ehas%2Derror%20%2Eradio%2Dinline%2C%2Ehas%2Derror%2Echeckbox%20label%2C%2Ehas%2Derror%2Echeckbox%2Dinline%20label%2C%2Ehas%2Derror%2Eradio%20label%2C%2Ehas%2Derror%2Eradio%2Dinline%20label%7Bcolor%3A%23a94442%7D%2Ehas%2Derror%20%2Eform%2Dcontrol%7Bborder%2Dcolor%3A%23a94442%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%7D%2Ehas%2Derror%20%2Eform%2Dcontrol%3Afocus%7Bborder%2Dcolor%3A%23843534%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%2C0%200%206px%20%23ce8483%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%2C0%200%206px%20%23ce8483%7D%2Ehas%2Derror%20%2Einput%2Dgroup%2Daddon%7Bcolor%3A%23a94442%3Bbackground%2Dcolor%3A%23f2dede%3Bborder%2Dcolor%3A%23a94442%7D%2Ehas%2Derror%20%2Eform%2Dcontrol%2Dfeedback%7Bcolor%3A%23a94442%7D%2Ehas%2Dfeedback%20label%7E%2Eform%2Dcontrol%2Dfeedback%7Btop%3A25px%7D%2Ehas%2Dfeedback%20label%2Esr%2Donly%7E%2Eform%2Dcontrol%2Dfeedback%7Btop%3A0%7D%2Ehelp%2Dblock%7Bdisplay%3Ablock%3Bmargin%2Dtop%3A5px%3Bmargin%2Dbottom%3A10px%3Bcolor%3A%23737373%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Eform%2Dinline%20%2Eform%2Dgroup%7Bdisplay%3Ainline%2Dblock%3Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Eform%2Dinline%20%2Eform%2Dcontrol%7Bdisplay%3Ainline%2Dblock%3Bwidth%3Aauto%3Bvertical%2Dalign%3Amiddle%7D%2Eform%2Dinline%20%2Eform%2Dcontrol%2Dstatic%7Bdisplay%3Ainline%2Dblock%7D%2Eform%2Dinline%20%2Einput%2Dgroup%7Bdisplay%3Ainline%2Dtable%3Bvertical%2Dalign%3Amiddle%7D%2Eform%2Dinline%20%2Einput%2Dgroup%20%2Eform%2Dcontrol%2C%2Eform%2Dinline%20%2Einput%2Dgroup%20%2Einput%2Dgroup%2Daddon%2C%2Eform%2Dinline%20%2Einput%2Dgroup%20%2Einput%2Dgroup%2Dbtn%7Bwidth%3Aauto%7D%2Eform%2Dinline%20%2Einput%2Dgroup%3E%2Eform%2Dcontrol%7Bwidth%3A100%25%7D%2Eform%2Dinline%20%2Econtrol%2Dlabel%7Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Eform%2Dinline%20%2Echeckbox%2C%2Eform%2Dinline%20%2Eradio%7Bdisplay%3Ainline%2Dblock%3Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Eform%2Dinline%20%2Echeckbox%20label%2C%2Eform%2Dinline%20%2Eradio%20label%7Bpadding%2Dleft%3A0%7D%2Eform%2Dinline%20%2Echeckbox%20input%5Btype%3Dcheckbox%5D%2C%2Eform%2Dinline%20%2Eradio%20input%5Btype%3Dradio%5D%7Bposition%3Arelative%3Bmargin%2Dleft%3A0%7D%2Eform%2Dinline%20%2Ehas%2Dfeedback%20%2Eform%2Dcontrol%2Dfeedback%7Btop%3A0%7D%7D%2Eform%2Dhorizontal%20%2Echeckbox%2C%2Eform%2Dhorizontal%20%2Echeckbox%2Dinline%2C%2Eform%2Dhorizontal%20%2Eradio%2C%2Eform%2Dhorizontal%20%2Eradio%2Dinline%7Bpadding%2Dtop%3A7px%3Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A0%7D%2Eform%2Dhorizontal%20%2Echeckbox%2C%2Eform%2Dhorizontal%20%2Eradio%7Bmin%2Dheight%3A27px%7D%2Eform%2Dhorizontal%20%2Eform%2Dgroup%7Bmargin%2Dright%3A%2D15px%3Bmargin%2Dleft%3A%2D15px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Eform%2Dhorizontal%20%2Econtrol%2Dlabel%7Bpadding%2Dtop%3A7px%3Bmargin%2Dbottom%3A0%3Btext%2Dalign%3Aright%7D%7D%2Eform%2Dhorizontal%20%2Ehas%2Dfeedback%20%2Eform%2Dcontrol%2Dfeedback%7Bright%3A15px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Eform%2Dhorizontal%20%2Eform%2Dgroup%2Dlg%20%2Econtrol%2Dlabel%7Bpadding%2Dtop%3A14%2E33px%3Bfont%2Dsize%3A18px%7D%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Eform%2Dhorizontal%20%2Eform%2Dgroup%2Dsm%20%2Econtrol%2Dlabel%7Bpadding%2Dtop%3A6px%3Bfont%2Dsize%3A12px%7D%7D%2Ebtn%7Bdisplay%3Ainline%2Dblock%3Bpadding%3A6px%2012px%3Bmargin%2Dbottom%3A0%3Bfont%2Dsize%3A14px%3Bfont%2Dweight%3A400%3Bline%2Dheight%3A1%2E42857143%3Btext%2Dalign%3Acenter%3Bwhite%2Dspace%3Anowrap%3Bvertical%2Dalign%3Amiddle%3B%2Dms%2Dtouch%2Daction%3Amanipulation%3Btouch%2Daction%3Amanipulation%3Bcursor%3Apointer%3B%2Dwebkit%2Duser%2Dselect%3Anone%3B%2Dmoz%2Duser%2Dselect%3Anone%3B%2Dms%2Duser%2Dselect%3Anone%3Buser%2Dselect%3Anone%3Bbackground%2Dimage%3Anone%3Bborder%3A1px%20solid%20transparent%3Bborder%2Dradius%3A4px%7D%2Ebtn%2Eactive%2Efocus%2C%2Ebtn%2Eactive%3Afocus%2C%2Ebtn%2Efocus%2C%2Ebtn%3Aactive%2Efocus%2C%2Ebtn%3Aactive%3Afocus%2C%2Ebtn%3Afocus%7Boutline%3Athin%20dotted%3Boutline%3A5px%20auto%20%2Dwebkit%2Dfocus%2Dring%2Dcolor%3Boutline%2Doffset%3A%2D2px%7D%2Ebtn%2Efocus%2C%2Ebtn%3Afocus%2C%2Ebtn%3Ahover%7Bcolor%3A%23333%3Btext%2Ddecoration%3Anone%7D%2Ebtn%2Eactive%2C%2Ebtn%3Aactive%7Bbackground%2Dimage%3Anone%3Boutline%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%203px%205px%20rgba%280%2C0%2C0%2C%2E125%29%3Bbox%2Dshadow%3Ainset%200%203px%205px%20rgba%280%2C0%2C0%2C%2E125%29%7D%2Ebtn%2Edisabled%2C%2Ebtn%5Bdisabled%5D%2Cfieldset%5Bdisabled%5D%20%2Ebtn%7Bcursor%3Anot%2Dallowed%3Bfilter%3Aalpha%28opacity%3D65%29%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%3Bopacity%3A%2E65%7Da%2Ebtn%2Edisabled%2Cfieldset%5Bdisabled%5D%20a%2Ebtn%7Bpointer%2Devents%3Anone%7D%2Ebtn%2Ddefault%7Bcolor%3A%23333%3Bbackground%2Dcolor%3A%23fff%3Bborder%2Dcolor%3A%23ccc%7D%2Ebtn%2Ddefault%2Efocus%2C%2Ebtn%2Ddefault%3Afocus%7Bcolor%3A%23333%3Bbackground%2Dcolor%3A%23e6e6e6%3Bborder%2Dcolor%3A%238c8c8c%7D%2Ebtn%2Ddefault%3Ahover%7Bcolor%3A%23333%3Bbackground%2Dcolor%3A%23e6e6e6%3Bborder%2Dcolor%3A%23adadad%7D%2Ebtn%2Ddefault%2Eactive%2C%2Ebtn%2Ddefault%3Aactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddefault%7Bcolor%3A%23333%3Bbackground%2Dcolor%3A%23e6e6e6%3Bborder%2Dcolor%3A%23adadad%7D%2Ebtn%2Ddefault%2Eactive%2Efocus%2C%2Ebtn%2Ddefault%2Eactive%3Afocus%2C%2Ebtn%2Ddefault%2Eactive%3Ahover%2C%2Ebtn%2Ddefault%3Aactive%2Efocus%2C%2Ebtn%2Ddefault%3Aactive%3Afocus%2C%2Ebtn%2Ddefault%3Aactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddefault%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddefault%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddefault%3Ahover%7Bcolor%3A%23333%3Bbackground%2Dcolor%3A%23d4d4d4%3Bborder%2Dcolor%3A%238c8c8c%7D%2Ebtn%2Ddefault%2Eactive%2C%2Ebtn%2Ddefault%3Aactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddefault%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Ddefault%2Edisabled%2C%2Ebtn%2Ddefault%2Edisabled%2Eactive%2C%2Ebtn%2Ddefault%2Edisabled%2Efocus%2C%2Ebtn%2Ddefault%2Edisabled%3Aactive%2C%2Ebtn%2Ddefault%2Edisabled%3Afocus%2C%2Ebtn%2Ddefault%2Edisabled%3Ahover%2C%2Ebtn%2Ddefault%5Bdisabled%5D%2C%2Ebtn%2Ddefault%5Bdisabled%5D%2Eactive%2C%2Ebtn%2Ddefault%5Bdisabled%5D%2Efocus%2C%2Ebtn%2Ddefault%5Bdisabled%5D%3Aactive%2C%2Ebtn%2Ddefault%5Bdisabled%5D%3Afocus%2C%2Ebtn%2Ddefault%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddefault%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddefault%2Eactive%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddefault%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddefault%3Aactive%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddefault%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddefault%3Ahover%7Bbackground%2Dcolor%3A%23fff%3Bborder%2Dcolor%3A%23ccc%7D%2Ebtn%2Ddefault%20%2Ebadge%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23333%7D%2Ebtn%2Dprimary%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23337ab7%3Bborder%2Dcolor%3A%232e6da4%7D%2Ebtn%2Dprimary%2Efocus%2C%2Ebtn%2Dprimary%3Afocus%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23286090%3Bborder%2Dcolor%3A%23122b40%7D%2Ebtn%2Dprimary%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23286090%3Bborder%2Dcolor%3A%23204d74%7D%2Ebtn%2Dprimary%2Eactive%2C%2Ebtn%2Dprimary%3Aactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dprimary%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23286090%3Bborder%2Dcolor%3A%23204d74%7D%2Ebtn%2Dprimary%2Eactive%2Efocus%2C%2Ebtn%2Dprimary%2Eactive%3Afocus%2C%2Ebtn%2Dprimary%2Eactive%3Ahover%2C%2Ebtn%2Dprimary%3Aactive%2Efocus%2C%2Ebtn%2Dprimary%3Aactive%3Afocus%2C%2Ebtn%2Dprimary%3Aactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dprimary%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dprimary%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dprimary%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23204d74%3Bborder%2Dcolor%3A%23122b40%7D%2Ebtn%2Dprimary%2Eactive%2C%2Ebtn%2Dprimary%3Aactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dprimary%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Dprimary%2Edisabled%2C%2Ebtn%2Dprimary%2Edisabled%2Eactive%2C%2Ebtn%2Dprimary%2Edisabled%2Efocus%2C%2Ebtn%2Dprimary%2Edisabled%3Aactive%2C%2Ebtn%2Dprimary%2Edisabled%3Afocus%2C%2Ebtn%2Dprimary%2Edisabled%3Ahover%2C%2Ebtn%2Dprimary%5Bdisabled%5D%2C%2Ebtn%2Dprimary%5Bdisabled%5D%2Eactive%2C%2Ebtn%2Dprimary%5Bdisabled%5D%2Efocus%2C%2Ebtn%2Dprimary%5Bdisabled%5D%3Aactive%2C%2Ebtn%2Dprimary%5Bdisabled%5D%3Afocus%2C%2Ebtn%2Dprimary%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dprimary%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dprimary%2Eactive%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dprimary%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dprimary%3Aactive%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dprimary%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dprimary%3Ahover%7Bbackground%2Dcolor%3A%23337ab7%3Bborder%2Dcolor%3A%232e6da4%7D%2Ebtn%2Dprimary%20%2Ebadge%7Bcolor%3A%23337ab7%3Bbackground%2Dcolor%3A%23fff%7D%2Ebtn%2Dsuccess%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%235cb85c%3Bborder%2Dcolor%3A%234cae4c%7D%2Ebtn%2Dsuccess%2Efocus%2C%2Ebtn%2Dsuccess%3Afocus%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23449d44%3Bborder%2Dcolor%3A%23255625%7D%2Ebtn%2Dsuccess%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23449d44%3Bborder%2Dcolor%3A%23398439%7D%2Ebtn%2Dsuccess%2Eactive%2C%2Ebtn%2Dsuccess%3Aactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dsuccess%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23449d44%3Bborder%2Dcolor%3A%23398439%7D%2Ebtn%2Dsuccess%2Eactive%2Efocus%2C%2Ebtn%2Dsuccess%2Eactive%3Afocus%2C%2Ebtn%2Dsuccess%2Eactive%3Ahover%2C%2Ebtn%2Dsuccess%3Aactive%2Efocus%2C%2Ebtn%2Dsuccess%3Aactive%3Afocus%2C%2Ebtn%2Dsuccess%3Aactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dsuccess%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dsuccess%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dsuccess%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23398439%3Bborder%2Dcolor%3A%23255625%7D%2Ebtn%2Dsuccess%2Eactive%2C%2Ebtn%2Dsuccess%3Aactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dsuccess%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Dsuccess%2Edisabled%2C%2Ebtn%2Dsuccess%2Edisabled%2Eactive%2C%2Ebtn%2Dsuccess%2Edisabled%2Efocus%2C%2Ebtn%2Dsuccess%2Edisabled%3Aactive%2C%2Ebtn%2Dsuccess%2Edisabled%3Afocus%2C%2Ebtn%2Dsuccess%2Edisabled%3Ahover%2C%2Ebtn%2Dsuccess%5Bdisabled%5D%2C%2Ebtn%2Dsuccess%5Bdisabled%5D%2Eactive%2C%2Ebtn%2Dsuccess%5Bdisabled%5D%2Efocus%2C%2Ebtn%2Dsuccess%5Bdisabled%5D%3Aactive%2C%2Ebtn%2Dsuccess%5Bdisabled%5D%3Afocus%2C%2Ebtn%2Dsuccess%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dsuccess%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dsuccess%2Eactive%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dsuccess%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dsuccess%3Aactive%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dsuccess%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dsuccess%3Ahover%7Bbackground%2Dcolor%3A%235cb85c%3Bborder%2Dcolor%3A%234cae4c%7D%2Ebtn%2Dsuccess%20%2Ebadge%7Bcolor%3A%235cb85c%3Bbackground%2Dcolor%3A%23fff%7D%2Ebtn%2Dinfo%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%235bc0de%3Bborder%2Dcolor%3A%2346b8da%7D%2Ebtn%2Dinfo%2Efocus%2C%2Ebtn%2Dinfo%3Afocus%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%2331b0d5%3Bborder%2Dcolor%3A%231b6d85%7D%2Ebtn%2Dinfo%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%2331b0d5%3Bborder%2Dcolor%3A%23269abc%7D%2Ebtn%2Dinfo%2Eactive%2C%2Ebtn%2Dinfo%3Aactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dinfo%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%2331b0d5%3Bborder%2Dcolor%3A%23269abc%7D%2Ebtn%2Dinfo%2Eactive%2Efocus%2C%2Ebtn%2Dinfo%2Eactive%3Afocus%2C%2Ebtn%2Dinfo%2Eactive%3Ahover%2C%2Ebtn%2Dinfo%3Aactive%2Efocus%2C%2Ebtn%2Dinfo%3Aactive%3Afocus%2C%2Ebtn%2Dinfo%3Aactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dinfo%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dinfo%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dinfo%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23269abc%3Bborder%2Dcolor%3A%231b6d85%7D%2Ebtn%2Dinfo%2Eactive%2C%2Ebtn%2Dinfo%3Aactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dinfo%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Dinfo%2Edisabled%2C%2Ebtn%2Dinfo%2Edisabled%2Eactive%2C%2Ebtn%2Dinfo%2Edisabled%2Efocus%2C%2Ebtn%2Dinfo%2Edisabled%3Aactive%2C%2Ebtn%2Dinfo%2Edisabled%3Afocus%2C%2Ebtn%2Dinfo%2Edisabled%3Ahover%2C%2Ebtn%2Dinfo%5Bdisabled%5D%2C%2Ebtn%2Dinfo%5Bdisabled%5D%2Eactive%2C%2Ebtn%2Dinfo%5Bdisabled%5D%2Efocus%2C%2Ebtn%2Dinfo%5Bdisabled%5D%3Aactive%2C%2Ebtn%2Dinfo%5Bdisabled%5D%3Afocus%2C%2Ebtn%2Dinfo%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dinfo%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dinfo%2Eactive%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dinfo%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dinfo%3Aactive%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dinfo%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dinfo%3Ahover%7Bbackground%2Dcolor%3A%235bc0de%3Bborder%2Dcolor%3A%2346b8da%7D%2Ebtn%2Dinfo%20%2Ebadge%7Bcolor%3A%235bc0de%3Bbackground%2Dcolor%3A%23fff%7D%2Ebtn%2Dwarning%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23f0ad4e%3Bborder%2Dcolor%3A%23eea236%7D%2Ebtn%2Dwarning%2Efocus%2C%2Ebtn%2Dwarning%3Afocus%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23ec971f%3Bborder%2Dcolor%3A%23985f0d%7D%2Ebtn%2Dwarning%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23ec971f%3Bborder%2Dcolor%3A%23d58512%7D%2Ebtn%2Dwarning%2Eactive%2C%2Ebtn%2Dwarning%3Aactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dwarning%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23ec971f%3Bborder%2Dcolor%3A%23d58512%7D%2Ebtn%2Dwarning%2Eactive%2Efocus%2C%2Ebtn%2Dwarning%2Eactive%3Afocus%2C%2Ebtn%2Dwarning%2Eactive%3Ahover%2C%2Ebtn%2Dwarning%3Aactive%2Efocus%2C%2Ebtn%2Dwarning%3Aactive%3Afocus%2C%2Ebtn%2Dwarning%3Aactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dwarning%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dwarning%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dwarning%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23d58512%3Bborder%2Dcolor%3A%23985f0d%7D%2Ebtn%2Dwarning%2Eactive%2C%2Ebtn%2Dwarning%3Aactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dwarning%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Dwarning%2Edisabled%2C%2Ebtn%2Dwarning%2Edisabled%2Eactive%2C%2Ebtn%2Dwarning%2Edisabled%2Efocus%2C%2Ebtn%2Dwarning%2Edisabled%3Aactive%2C%2Ebtn%2Dwarning%2Edisabled%3Afocus%2C%2Ebtn%2Dwarning%2Edisabled%3Ahover%2C%2Ebtn%2Dwarning%5Bdisabled%5D%2C%2Ebtn%2Dwarning%5Bdisabled%5D%2Eactive%2C%2Ebtn%2Dwarning%5Bdisabled%5D%2Efocus%2C%2Ebtn%2Dwarning%5Bdisabled%5D%3Aactive%2C%2Ebtn%2Dwarning%5Bdisabled%5D%3Afocus%2C%2Ebtn%2Dwarning%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dwarning%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dwarning%2Eactive%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dwarning%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dwarning%3Aactive%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dwarning%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dwarning%3Ahover%7Bbackground%2Dcolor%3A%23f0ad4e%3Bborder%2Dcolor%3A%23eea236%7D%2Ebtn%2Dwarning%20%2Ebadge%7Bcolor%3A%23f0ad4e%3Bbackground%2Dcolor%3A%23fff%7D%2Ebtn%2Ddanger%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23d9534f%3Bborder%2Dcolor%3A%23d43f3a%7D%2Ebtn%2Ddanger%2Efocus%2C%2Ebtn%2Ddanger%3Afocus%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23c9302c%3Bborder%2Dcolor%3A%23761c19%7D%2Ebtn%2Ddanger%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23c9302c%3Bborder%2Dcolor%3A%23ac2925%7D%2Ebtn%2Ddanger%2Eactive%2C%2Ebtn%2Ddanger%3Aactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddanger%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23c9302c%3Bborder%2Dcolor%3A%23ac2925%7D%2Ebtn%2Ddanger%2Eactive%2Efocus%2C%2Ebtn%2Ddanger%2Eactive%3Afocus%2C%2Ebtn%2Ddanger%2Eactive%3Ahover%2C%2Ebtn%2Ddanger%3Aactive%2Efocus%2C%2Ebtn%2Ddanger%3Aactive%3Afocus%2C%2Ebtn%2Ddanger%3Aactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddanger%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddanger%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddanger%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23ac2925%3Bborder%2Dcolor%3A%23761c19%7D%2Ebtn%2Ddanger%2Eactive%2C%2Ebtn%2Ddanger%3Aactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddanger%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Ddanger%2Edisabled%2C%2Ebtn%2Ddanger%2Edisabled%2Eactive%2C%2Ebtn%2Ddanger%2Edisabled%2Efocus%2C%2Ebtn%2Ddanger%2Edisabled%3Aactive%2C%2Ebtn%2Ddanger%2Edisabled%3Afocus%2C%2Ebtn%2Ddanger%2Edisabled%3Ahover%2C%2Ebtn%2Ddanger%5Bdisabled%5D%2C%2Ebtn%2Ddanger%5Bdisabled%5D%2Eactive%2C%2Ebtn%2Ddanger%5Bdisabled%5D%2Efocus%2C%2Ebtn%2Ddanger%5Bdisabled%5D%3Aactive%2C%2Ebtn%2Ddanger%5Bdisabled%5D%3Afocus%2C%2Ebtn%2Ddanger%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddanger%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddanger%2Eactive%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddanger%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddanger%3Aactive%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddanger%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddanger%3Ahover%7Bbackground%2Dcolor%3A%23d9534f%3Bborder%2Dcolor%3A%23d43f3a%7D%2Ebtn%2Ddanger%20%2Ebadge%7Bcolor%3A%23d9534f%3Bbackground%2Dcolor%3A%23fff%7D%2Ebtn%2Dlink%7Bfont%2Dweight%3A400%3Bcolor%3A%23337ab7%3Bborder%2Dradius%3A0%7D%2Ebtn%2Dlink%2C%2Ebtn%2Dlink%2Eactive%2C%2Ebtn%2Dlink%3Aactive%2C%2Ebtn%2Dlink%5Bdisabled%5D%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dlink%7Bbackground%2Dcolor%3Atransparent%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%2Ebtn%2Dlink%2C%2Ebtn%2Dlink%3Aactive%2C%2Ebtn%2Dlink%3Afocus%2C%2Ebtn%2Dlink%3Ahover%7Bborder%2Dcolor%3Atransparent%7D%2Ebtn%2Dlink%3Afocus%2C%2Ebtn%2Dlink%3Ahover%7Bcolor%3A%2323527c%3Btext%2Ddecoration%3Aunderline%3Bbackground%2Dcolor%3Atransparent%7D%2Ebtn%2Dlink%5Bdisabled%5D%3Afocus%2C%2Ebtn%2Dlink%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dlink%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dlink%3Ahover%7Bcolor%3A%23777%3Btext%2Ddecoration%3Anone%7D%2Ebtn%2Dgroup%2Dlg%3E%2Ebtn%2C%2Ebtn%2Dlg%7Bpadding%3A10px%2016px%3Bfont%2Dsize%3A18px%3Bline%2Dheight%3A1%2E3333333%3Bborder%2Dradius%3A6px%7D%2Ebtn%2Dgroup%2Dsm%3E%2Ebtn%2C%2Ebtn%2Dsm%7Bpadding%3A5px%2010px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E5%3Bborder%2Dradius%3A3px%7D%2Ebtn%2Dgroup%2Dxs%3E%2Ebtn%2C%2Ebtn%2Dxs%7Bpadding%3A1px%205px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E5%3Bborder%2Dradius%3A3px%7D%2Ebtn%2Dblock%7Bdisplay%3Ablock%3Bwidth%3A100%25%7D%2Ebtn%2Dblock%2B%2Ebtn%2Dblock%7Bmargin%2Dtop%3A5px%7Dinput%5Btype%3Dbutton%5D%2Ebtn%2Dblock%2Cinput%5Btype%3Dreset%5D%2Ebtn%2Dblock%2Cinput%5Btype%3Dsubmit%5D%2Ebtn%2Dblock%7Bwidth%3A100%25%7D%2Efade%7Bopacity%3A0%3B%2Dwebkit%2Dtransition%3Aopacity%20%2E15s%20linear%3B%2Do%2Dtransition%3Aopacity%20%2E15s%20linear%3Btransition%3Aopacity%20%2E15s%20linear%7D%2Efade%2Ein%7Bopacity%3A1%7D%2Ecollapse%7Bdisplay%3Anone%7D%2Ecollapse%2Ein%7Bdisplay%3Ablock%7Dtr%2Ecollapse%2Ein%7Bdisplay%3Atable%2Drow%7Dtbody%2Ecollapse%2Ein%7Bdisplay%3Atable%2Drow%2Dgroup%7D%2Ecollapsing%7Bposition%3Arelative%3Bheight%3A0%3Boverflow%3Ahidden%3B%2Dwebkit%2Dtransition%2Dtiming%2Dfunction%3Aease%3B%2Do%2Dtransition%2Dtiming%2Dfunction%3Aease%3Btransition%2Dtiming%2Dfunction%3Aease%3B%2Dwebkit%2Dtransition%2Dduration%3A%2E35s%3B%2Do%2Dtransition%2Dduration%3A%2E35s%3Btransition%2Dduration%3A%2E35s%3B%2Dwebkit%2Dtransition%2Dproperty%3Aheight%2Cvisibility%3B%2Do%2Dtransition%2Dproperty%3Aheight%2Cvisibility%3Btransition%2Dproperty%3Aheight%2Cvisibility%7D%2Ecaret%7Bdisplay%3Ainline%2Dblock%3Bwidth%3A0%3Bheight%3A0%3Bmargin%2Dleft%3A2px%3Bvertical%2Dalign%3Amiddle%3Bborder%2Dtop%3A4px%20dashed%3Bborder%2Dtop%3A4px%20solid%5C9%3Bborder%2Dright%3A4px%20solid%20transparent%3Bborder%2Dleft%3A4px%20solid%20transparent%7D%2Edropdown%2C%2Edropup%7Bposition%3Arelative%7D%2Edropdown%2Dtoggle%3Afocus%7Boutline%3A0%7D%2Edropdown%2Dmenu%7Bposition%3Aabsolute%3Btop%3A100%25%3Bleft%3A0%3Bz%2Dindex%3A1000%3Bdisplay%3Anone%3Bfloat%3Aleft%3Bmin%2Dwidth%3A160px%3Bpadding%3A5px%200%3Bmargin%3A2px%200%200%3Bfont%2Dsize%3A14px%3Btext%2Dalign%3Aleft%3Blist%2Dstyle%3Anone%3Bbackground%2Dcolor%3A%23fff%3B%2Dwebkit%2Dbackground%2Dclip%3Apadding%2Dbox%3Bbackground%2Dclip%3Apadding%2Dbox%3Bborder%3A1px%20solid%20%23ccc%3Bborder%3A1px%20solid%20rgba%280%2C0%2C0%2C%2E15%29%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dbox%2Dshadow%3A0%206px%2012px%20rgba%280%2C0%2C0%2C%2E175%29%3Bbox%2Dshadow%3A0%206px%2012px%20rgba%280%2C0%2C0%2C%2E175%29%7D%2Edropdown%2Dmenu%2Epull%2Dright%7Bright%3A0%3Bleft%3Aauto%7D%2Edropdown%2Dmenu%20%2Edivider%7Bheight%3A1px%3Bmargin%3A9px%200%3Boverflow%3Ahidden%3Bbackground%2Dcolor%3A%23e5e5e5%7D%2Edropdown%2Dmenu%3Eli%3Ea%7Bdisplay%3Ablock%3Bpadding%3A3px%2020px%3Bclear%3Aboth%3Bfont%2Dweight%3A400%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23333%3Bwhite%2Dspace%3Anowrap%7D%2Edropdown%2Dmenu%3Eli%3Ea%3Afocus%2C%2Edropdown%2Dmenu%3Eli%3Ea%3Ahover%7Bcolor%3A%23262626%3Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3A%23f5f5f5%7D%2Edropdown%2Dmenu%3E%2Eactive%3Ea%2C%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Afocus%2C%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Ahover%7Bcolor%3A%23fff%3Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3A%23337ab7%3Boutline%3A0%7D%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%2C%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Afocus%2C%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Ahover%7Bcolor%3A%23777%7D%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Afocus%2C%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Ahover%7Btext%2Ddecoration%3Anone%3Bcursor%3Anot%2Dallowed%3Bbackground%2Dcolor%3Atransparent%3Bbackground%2Dimage%3Anone%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28enabled%3Dfalse%29%7D%2Eopen%3E%2Edropdown%2Dmenu%7Bdisplay%3Ablock%7D%2Eopen%3Ea%7Boutline%3A0%7D%2Edropdown%2Dmenu%2Dright%7Bright%3A0%3Bleft%3Aauto%7D%2Edropdown%2Dmenu%2Dleft%7Bright%3Aauto%3Bleft%3A0%7D%2Edropdown%2Dheader%7Bdisplay%3Ablock%3Bpadding%3A3px%2020px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23777%3Bwhite%2Dspace%3Anowrap%7D%2Edropdown%2Dbackdrop%7Bposition%3Afixed%3Btop%3A0%3Bright%3A0%3Bbottom%3A0%3Bleft%3A0%3Bz%2Dindex%3A990%7D%2Epull%2Dright%3E%2Edropdown%2Dmenu%7Bright%3A0%3Bleft%3Aauto%7D%2Edropup%20%2Ecaret%2C%2Enavbar%2Dfixed%2Dbottom%20%2Edropdown%20%2Ecaret%7Bcontent%3A%22%22%3Bborder%2Dtop%3A0%3Bborder%2Dbottom%3A4px%20dashed%3Bborder%2Dbottom%3A4px%20solid%5C9%7D%2Edropup%20%2Edropdown%2Dmenu%2C%2Enavbar%2Dfixed%2Dbottom%20%2Edropdown%20%2Edropdown%2Dmenu%7Btop%3Aauto%3Bbottom%3A100%25%3Bmargin%2Dbottom%3A2px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dright%20%2Edropdown%2Dmenu%7Bright%3A0%3Bleft%3Aauto%7D%2Enavbar%2Dright%20%2Edropdown%2Dmenu%2Dleft%7Bright%3Aauto%3Bleft%3A0%7D%7D%2Ebtn%2Dgroup%2C%2Ebtn%2Dgroup%2Dvertical%7Bposition%3Arelative%3Bdisplay%3Ainline%2Dblock%3Bvertical%2Dalign%3Amiddle%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2C%2Ebtn%2Dgroup%3E%2Ebtn%7Bposition%3Arelative%3Bfloat%3Aleft%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Eactive%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Aactive%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Afocus%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Ahover%2C%2Ebtn%2Dgroup%3E%2Ebtn%2Eactive%2C%2Ebtn%2Dgroup%3E%2Ebtn%3Aactive%2C%2Ebtn%2Dgroup%3E%2Ebtn%3Afocus%2C%2Ebtn%2Dgroup%3E%2Ebtn%3Ahover%7Bz%2Dindex%3A2%7D%2Ebtn%2Dgroup%20%2Ebtn%2B%2Ebtn%2C%2Ebtn%2Dgroup%20%2Ebtn%2B%2Ebtn%2Dgroup%2C%2Ebtn%2Dgroup%20%2Ebtn%2Dgroup%2B%2Ebtn%2C%2Ebtn%2Dgroup%20%2Ebtn%2Dgroup%2B%2Ebtn%2Dgroup%7Bmargin%2Dleft%3A%2D1px%7D%2Ebtn%2Dtoolbar%7Bmargin%2Dleft%3A%2D5px%7D%2Ebtn%2Dtoolbar%20%2Ebtn%2C%2Ebtn%2Dtoolbar%20%2Ebtn%2Dgroup%2C%2Ebtn%2Dtoolbar%20%2Einput%2Dgroup%7Bfloat%3Aleft%7D%2Ebtn%2Dtoolbar%3E%2Ebtn%2C%2Ebtn%2Dtoolbar%3E%2Ebtn%2Dgroup%2C%2Ebtn%2Dtoolbar%3E%2Einput%2Dgroup%7Bmargin%2Dleft%3A5px%7D%2Ebtn%2Dgroup%3E%2Ebtn%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%3Anot%28%2Edropdown%2Dtoggle%29%7Bborder%2Dradius%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%3Afirst%2Dchild%7Bmargin%2Dleft%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%3Anot%28%2Edropdown%2Dtoggle%29%7Bborder%2Dtop%2Dright%2Dradius%3A0%3Bborder%2Dbottom%2Dright%2Dradius%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%3Alast%2Dchild%3Anot%28%3Afirst%2Dchild%29%2C%2Ebtn%2Dgroup%3E%2Edropdown%2Dtoggle%3Anot%28%3Afirst%2Dchild%29%7Bborder%2Dtop%2Dleft%2Dradius%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dgroup%7Bfloat%3Aleft%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dgroup%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%3E%2Ebtn%7Bborder%2Dradius%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dgroup%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%3E%2Ebtn%3Alast%2Dchild%2C%2Ebtn%2Dgroup%3E%2Ebtn%2Dgroup%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%3E%2Edropdown%2Dtoggle%7Bborder%2Dtop%2Dright%2Dradius%3A0%3Bborder%2Dbottom%2Dright%2Dradius%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dgroup%3Alast%2Dchild%3Anot%28%3Afirst%2Dchild%29%3E%2Ebtn%3Afirst%2Dchild%7Bborder%2Dtop%2Dleft%2Dradius%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A0%7D%2Ebtn%2Dgroup%20%2Edropdown%2Dtoggle%3Aactive%2C%2Ebtn%2Dgroup%2Eopen%20%2Edropdown%2Dtoggle%7Boutline%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%2B%2Edropdown%2Dtoggle%7Bpadding%2Dright%3A8px%3Bpadding%2Dleft%3A8px%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dlg%2B%2Edropdown%2Dtoggle%7Bpadding%2Dright%3A12px%3Bpadding%2Dleft%3A12px%7D%2Ebtn%2Dgroup%2Eopen%20%2Edropdown%2Dtoggle%7B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%203px%205px%20rgba%280%2C0%2C0%2C%2E125%29%3Bbox%2Dshadow%3Ainset%200%203px%205px%20rgba%280%2C0%2C0%2C%2E125%29%7D%2Ebtn%2Dgroup%2Eopen%20%2Edropdown%2Dtoggle%2Ebtn%2Dlink%7B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%2Ebtn%20%2Ecaret%7Bmargin%2Dleft%3A0%7D%2Ebtn%2Dlg%20%2Ecaret%7Bborder%2Dwidth%3A5px%205px%200%3Bborder%2Dbottom%2Dwidth%3A0%7D%2Edropup%20%2Ebtn%2Dlg%20%2Ecaret%7Bborder%2Dwidth%3A0%205px%205px%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3E%2Ebtn%7Bdisplay%3Ablock%3Bfloat%3Anone%3Bwidth%3A100%25%3Bmax%2Dwidth%3A100%25%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3E%2Ebtn%7Bfloat%3Anone%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2B%2Ebtn%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2B%2Ebtn%2Dgroup%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%2B%2Ebtn%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%2B%2Ebtn%2Dgroup%7Bmargin%2Dtop%3A%2D1px%3Bmargin%2Dleft%3A0%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%7Bborder%2Dradius%3A0%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%7Bborder%2Dtop%2Dright%2Dradius%3A4px%3Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A0%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Alast%2Dchild%3Anot%28%3Afirst%2Dchild%29%7Bborder%2Dtop%2Dleft%2Dradius%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A4px%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%3E%2Ebtn%7Bborder%2Dradius%3A0%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%3E%2Ebtn%3Alast%2Dchild%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%3E%2Edropdown%2Dtoggle%7Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A0%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Alast%2Dchild%3Anot%28%3Afirst%2Dchild%29%3E%2Ebtn%3Afirst%2Dchild%7Bborder%2Dtop%2Dleft%2Dradius%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A0%7D%2Ebtn%2Dgroup%2Djustified%7Bdisplay%3Atable%3Bwidth%3A100%25%3Btable%2Dlayout%3Afixed%3Bborder%2Dcollapse%3Aseparate%7D%2Ebtn%2Dgroup%2Djustified%3E%2Ebtn%2C%2Ebtn%2Dgroup%2Djustified%3E%2Ebtn%2Dgroup%7Bdisplay%3Atable%2Dcell%3Bfloat%3Anone%3Bwidth%3A1%25%7D%2Ebtn%2Dgroup%2Djustified%3E%2Ebtn%2Dgroup%20%2Ebtn%7Bwidth%3A100%25%7D%2Ebtn%2Dgroup%2Djustified%3E%2Ebtn%2Dgroup%20%2Edropdown%2Dmenu%7Bleft%3Aauto%7D%5Bdata%2Dtoggle%3Dbuttons%5D%3E%2Ebtn%20input%5Btype%3Dcheckbox%5D%2C%5Bdata%2Dtoggle%3Dbuttons%5D%3E%2Ebtn%20input%5Btype%3Dradio%5D%2C%5Bdata%2Dtoggle%3Dbuttons%5D%3E%2Ebtn%2Dgroup%3E%2Ebtn%20input%5Btype%3Dcheckbox%5D%2C%5Bdata%2Dtoggle%3Dbuttons%5D%3E%2Ebtn%2Dgroup%3E%2Ebtn%20input%5Btype%3Dradio%5D%7Bposition%3Aabsolute%3Bclip%3Arect%280%2C0%2C0%2C0%29%3Bpointer%2Devents%3Anone%7D%2Einput%2Dgroup%7Bposition%3Arelative%3Bdisplay%3Atable%3Bborder%2Dcollapse%3Aseparate%7D%2Einput%2Dgroup%5Bclass%2A%3Dcol%2D%5D%7Bfloat%3Anone%3Bpadding%2Dright%3A0%3Bpadding%2Dleft%3A0%7D%2Einput%2Dgroup%20%2Eform%2Dcontrol%7Bposition%3Arelative%3Bz%2Dindex%3A2%3Bfloat%3Aleft%3Bwidth%3A100%25%3Bmargin%2Dbottom%3A0%7D%2Einput%2Dgroup%2Dlg%3E%2Eform%2Dcontrol%2C%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Daddon%2C%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3A46px%3Bpadding%3A10px%2016px%3Bfont%2Dsize%3A18px%3Bline%2Dheight%3A1%2E3333333%3Bborder%2Dradius%3A6px%7Dselect%2Einput%2Dgroup%2Dlg%3E%2Eform%2Dcontrol%2Cselect%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Daddon%2Cselect%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3A46px%3Bline%2Dheight%3A46px%7Dselect%5Bmultiple%5D%2Einput%2Dgroup%2Dlg%3E%2Eform%2Dcontrol%2Cselect%5Bmultiple%5D%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Daddon%2Cselect%5Bmultiple%5D%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%2Ctextarea%2Einput%2Dgroup%2Dlg%3E%2Eform%2Dcontrol%2Ctextarea%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Daddon%2Ctextarea%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3Aauto%7D%2Einput%2Dgroup%2Dsm%3E%2Eform%2Dcontrol%2C%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Daddon%2C%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3A30px%3Bpadding%3A5px%2010px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E5%3Bborder%2Dradius%3A3px%7Dselect%2Einput%2Dgroup%2Dsm%3E%2Eform%2Dcontrol%2Cselect%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Daddon%2Cselect%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3A30px%3Bline%2Dheight%3A30px%7Dselect%5Bmultiple%5D%2Einput%2Dgroup%2Dsm%3E%2Eform%2Dcontrol%2Cselect%5Bmultiple%5D%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Daddon%2Cselect%5Bmultiple%5D%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%2Ctextarea%2Einput%2Dgroup%2Dsm%3E%2Eform%2Dcontrol%2Ctextarea%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Daddon%2Ctextarea%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3Aauto%7D%2Einput%2Dgroup%20%2Eform%2Dcontrol%2C%2Einput%2Dgroup%2Daddon%2C%2Einput%2Dgroup%2Dbtn%7Bdisplay%3Atable%2Dcell%7D%2Einput%2Dgroup%20%2Eform%2Dcontrol%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%2C%2Einput%2Dgroup%2Daddon%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%2C%2Einput%2Dgroup%2Dbtn%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%7Bborder%2Dradius%3A0%7D%2Einput%2Dgroup%2Daddon%2C%2Einput%2Dgroup%2Dbtn%7Bwidth%3A1%25%3Bwhite%2Dspace%3Anowrap%3Bvertical%2Dalign%3Amiddle%7D%2Einput%2Dgroup%2Daddon%7Bpadding%3A6px%2012px%3Bfont%2Dsize%3A14px%3Bfont%2Dweight%3A400%3Bline%2Dheight%3A1%3Bcolor%3A%23555%3Btext%2Dalign%3Acenter%3Bbackground%2Dcolor%3A%23eee%3Bborder%3A1px%20solid%20%23ccc%3Bborder%2Dradius%3A4px%7D%2Einput%2Dgroup%2Daddon%2Einput%2Dsm%7Bpadding%3A5px%2010px%3Bfont%2Dsize%3A12px%3Bborder%2Dradius%3A3px%7D%2Einput%2Dgroup%2Daddon%2Einput%2Dlg%7Bpadding%3A10px%2016px%3Bfont%2Dsize%3A18px%3Bborder%2Dradius%3A6px%7D%2Einput%2Dgroup%2Daddon%20input%5Btype%3Dcheckbox%5D%2C%2Einput%2Dgroup%2Daddon%20input%5Btype%3Dradio%5D%7Bmargin%2Dtop%3A0%7D%2Einput%2Dgroup%20%2Eform%2Dcontrol%3Afirst%2Dchild%2C%2Einput%2Dgroup%2Daddon%3Afirst%2Dchild%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%2Dgroup%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Edropdown%2Dtoggle%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%2Dgroup%3Anot%28%3Alast%2Dchild%29%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%3Anot%28%3Alast%2Dchild%29%3Anot%28%2Edropdown%2Dtoggle%29%7Bborder%2Dtop%2Dright%2Dradius%3A0%3Bborder%2Dbottom%2Dright%2Dradius%3A0%7D%2Einput%2Dgroup%2Daddon%3Afirst%2Dchild%7Bborder%2Dright%3A0%7D%2Einput%2Dgroup%20%2Eform%2Dcontrol%3Alast%2Dchild%2C%2Einput%2Dgroup%2Daddon%3Alast%2Dchild%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%2Dgroup%3Anot%28%3Afirst%2Dchild%29%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%3Anot%28%3Afirst%2Dchild%29%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%2Dgroup%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Edropdown%2Dtoggle%7Bborder%2Dtop%2Dleft%2Dradius%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A0%7D%2Einput%2Dgroup%2Daddon%3Alast%2Dchild%7Bborder%2Dleft%3A0%7D%2Einput%2Dgroup%2Dbtn%7Bposition%3Arelative%3Bfont%2Dsize%3A0%3Bwhite%2Dspace%3Anowrap%7D%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bposition%3Arelative%7D%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%2B%2Ebtn%7Bmargin%2Dleft%3A%2D1px%7D%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%3Aactive%2C%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%3Afocus%2C%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%3Ahover%7Bz%2Dindex%3A2%7D%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%2Dgroup%7Bmargin%2Dright%3A%2D1px%7D%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%2Dgroup%7Bz%2Dindex%3A2%3Bmargin%2Dleft%3A%2D1px%7D%2Enav%7Bpadding%2Dleft%3A0%3Bmargin%2Dbottom%3A0%3Blist%2Dstyle%3Anone%7D%2Enav%3Eli%7Bposition%3Arelative%3Bdisplay%3Ablock%7D%2Enav%3Eli%3Ea%7Bposition%3Arelative%3Bdisplay%3Ablock%3Bpadding%3A10px%2015px%7D%2Enav%3Eli%3Ea%3Afocus%2C%2Enav%3Eli%3Ea%3Ahover%7Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3A%23eee%7D%2Enav%3Eli%2Edisabled%3Ea%7Bcolor%3A%23777%7D%2Enav%3Eli%2Edisabled%3Ea%3Afocus%2C%2Enav%3Eli%2Edisabled%3Ea%3Ahover%7Bcolor%3A%23777%3Btext%2Ddecoration%3Anone%3Bcursor%3Anot%2Dallowed%3Bbackground%2Dcolor%3Atransparent%7D%2Enav%20%2Eopen%3Ea%2C%2Enav%20%2Eopen%3Ea%3Afocus%2C%2Enav%20%2Eopen%3Ea%3Ahover%7Bbackground%2Dcolor%3A%23eee%3Bborder%2Dcolor%3A%23337ab7%7D%2Enav%20%2Enav%2Ddivider%7Bheight%3A1px%3Bmargin%3A9px%200%3Boverflow%3Ahidden%3Bbackground%2Dcolor%3A%23e5e5e5%7D%2Enav%3Eli%3Ea%3Eimg%7Bmax%2Dwidth%3Anone%7D%2Enav%2Dtabs%7Bborder%2Dbottom%3A1px%20solid%20%23ddd%7D%2Enav%2Dtabs%3Eli%7Bfloat%3Aleft%3Bmargin%2Dbottom%3A%2D1px%7D%2Enav%2Dtabs%3Eli%3Ea%7Bmargin%2Dright%3A2px%3Bline%2Dheight%3A1%2E42857143%3Bborder%3A1px%20solid%20transparent%3Bborder%2Dradius%3A4px%204px%200%200%7D%2Enav%2Dtabs%3Eli%3Ea%3Ahover%7Bborder%2Dcolor%3A%23eee%20%23eee%20%23ddd%7D%2Enav%2Dtabs%3Eli%2Eactive%3Ea%2C%2Enav%2Dtabs%3Eli%2Eactive%3Ea%3Afocus%2C%2Enav%2Dtabs%3Eli%2Eactive%3Ea%3Ahover%7Bcolor%3A%23555%3Bcursor%3Adefault%3Bbackground%2Dcolor%3A%23fff%3Bborder%3A1px%20solid%20%23ddd%3Bborder%2Dbottom%2Dcolor%3Atransparent%7D%2Enav%2Dtabs%2Enav%2Djustified%7Bwidth%3A100%25%3Bborder%2Dbottom%3A0%7D%2Enav%2Dtabs%2Enav%2Djustified%3Eli%7Bfloat%3Anone%7D%2Enav%2Dtabs%2Enav%2Djustified%3Eli%3Ea%7Bmargin%2Dbottom%3A5px%3Btext%2Dalign%3Acenter%7D%2Enav%2Dtabs%2Enav%2Djustified%3E%2Edropdown%20%2Edropdown%2Dmenu%7Btop%3Aauto%3Bleft%3Aauto%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enav%2Dtabs%2Enav%2Djustified%3Eli%7Bdisplay%3Atable%2Dcell%3Bwidth%3A1%25%7D%2Enav%2Dtabs%2Enav%2Djustified%3Eli%3Ea%7Bmargin%2Dbottom%3A0%7D%7D%2Enav%2Dtabs%2Enav%2Djustified%3Eli%3Ea%7Bmargin%2Dright%3A0%3Bborder%2Dradius%3A4px%7D%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%2C%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%3Afocus%2C%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%3Ahover%7Bborder%3A1px%20solid%20%23ddd%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enav%2Dtabs%2Enav%2Djustified%3Eli%3Ea%7Bborder%2Dbottom%3A1px%20solid%20%23ddd%3Bborder%2Dradius%3A4px%204px%200%200%7D%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%2C%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%3Afocus%2C%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%3Ahover%7Bborder%2Dbottom%2Dcolor%3A%23fff%7D%7D%2Enav%2Dpills%3Eli%7Bfloat%3Aleft%7D%2Enav%2Dpills%3Eli%3Ea%7Bborder%2Dradius%3A4px%7D%2Enav%2Dpills%3Eli%2Bli%7Bmargin%2Dleft%3A2px%7D%2Enav%2Dpills%3Eli%2Eactive%3Ea%2C%2Enav%2Dpills%3Eli%2Eactive%3Ea%3Afocus%2C%2Enav%2Dpills%3Eli%2Eactive%3Ea%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23337ab7%7D%2Enav%2Dstacked%3Eli%7Bfloat%3Anone%7D%2Enav%2Dstacked%3Eli%2Bli%7Bmargin%2Dtop%3A2px%3Bmargin%2Dleft%3A0%7D%2Enav%2Djustified%7Bwidth%3A100%25%7D%2Enav%2Djustified%3Eli%7Bfloat%3Anone%7D%2Enav%2Djustified%3Eli%3Ea%7Bmargin%2Dbottom%3A5px%3Btext%2Dalign%3Acenter%7D%2Enav%2Djustified%3E%2Edropdown%20%2Edropdown%2Dmenu%7Btop%3Aauto%3Bleft%3Aauto%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enav%2Djustified%3Eli%7Bdisplay%3Atable%2Dcell%3Bwidth%3A1%25%7D%2Enav%2Djustified%3Eli%3Ea%7Bmargin%2Dbottom%3A0%7D%7D%2Enav%2Dtabs%2Djustified%7Bborder%2Dbottom%3A0%7D%2Enav%2Dtabs%2Djustified%3Eli%3Ea%7Bmargin%2Dright%3A0%3Bborder%2Dradius%3A4px%7D%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%2C%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%3Afocus%2C%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%3Ahover%7Bborder%3A1px%20solid%20%23ddd%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enav%2Dtabs%2Djustified%3Eli%3Ea%7Bborder%2Dbottom%3A1px%20solid%20%23ddd%3Bborder%2Dradius%3A4px%204px%200%200%7D%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%2C%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%3Afocus%2C%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%3Ahover%7Bborder%2Dbottom%2Dcolor%3A%23fff%7D%7D%2Etab%2Dcontent%3E%2Etab%2Dpane%7Bdisplay%3Anone%7D%2Etab%2Dcontent%3E%2Eactive%7Bdisplay%3Ablock%7D%2Enav%2Dtabs%20%2Edropdown%2Dmenu%7Bmargin%2Dtop%3A%2D1px%3Bborder%2Dtop%2Dleft%2Dradius%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A0%7D%2Enavbar%7Bposition%3Arelative%3Bmin%2Dheight%3A50px%3Bmargin%2Dbottom%3A20px%3Bborder%3A1px%20solid%20transparent%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%7Bborder%2Dradius%3A4px%7D%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dheader%7Bfloat%3Aleft%7D%7D%2Enavbar%2Dcollapse%7Bpadding%2Dright%3A15px%3Bpadding%2Dleft%3A15px%3Boverflow%2Dx%3Avisible%3B%2Dwebkit%2Doverflow%2Dscrolling%3Atouch%3Bborder%2Dtop%3A1px%20solid%20transparent%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C%2E1%29%3Bbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C%2E1%29%7D%2Enavbar%2Dcollapse%2Ein%7Boverflow%2Dy%3Aauto%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dcollapse%7Bwidth%3Aauto%3Bborder%2Dtop%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%2Enavbar%2Dcollapse%2Ecollapse%7Bdisplay%3Ablock%21important%3Bheight%3Aauto%21important%3Bpadding%2Dbottom%3A0%3Boverflow%3Avisible%21important%7D%2Enavbar%2Dcollapse%2Ein%7Boverflow%2Dy%3Avisible%7D%2Enavbar%2Dfixed%2Dbottom%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Dfixed%2Dtop%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Dstatic%2Dtop%20%2Enavbar%2Dcollapse%7Bpadding%2Dright%3A0%3Bpadding%2Dleft%3A0%7D%7D%2Enavbar%2Dfixed%2Dbottom%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Dfixed%2Dtop%20%2Enavbar%2Dcollapse%7Bmax%2Dheight%3A340px%7D%40media%20%28max%2Ddevice%2Dwidth%3A480px%29%20and%20%28orientation%3Alandscape%29%7B%2Enavbar%2Dfixed%2Dbottom%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Dfixed%2Dtop%20%2Enavbar%2Dcollapse%7Bmax%2Dheight%3A200px%7D%7D%2Econtainer%2Dfluid%3E%2Enavbar%2Dcollapse%2C%2Econtainer%2Dfluid%3E%2Enavbar%2Dheader%2C%2Econtainer%3E%2Enavbar%2Dcollapse%2C%2Econtainer%3E%2Enavbar%2Dheader%7Bmargin%2Dright%3A%2D15px%3Bmargin%2Dleft%3A%2D15px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Econtainer%2Dfluid%3E%2Enavbar%2Dcollapse%2C%2Econtainer%2Dfluid%3E%2Enavbar%2Dheader%2C%2Econtainer%3E%2Enavbar%2Dcollapse%2C%2Econtainer%3E%2Enavbar%2Dheader%7Bmargin%2Dright%3A0%3Bmargin%2Dleft%3A0%7D%7D%2Enavbar%2Dstatic%2Dtop%7Bz%2Dindex%3A1000%3Bborder%2Dwidth%3A0%200%201px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dstatic%2Dtop%7Bborder%2Dradius%3A0%7D%7D%2Enavbar%2Dfixed%2Dbottom%2C%2Enavbar%2Dfixed%2Dtop%7Bposition%3Afixed%3Bright%3A0%3Bleft%3A0%3Bz%2Dindex%3A1030%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dfixed%2Dbottom%2C%2Enavbar%2Dfixed%2Dtop%7Bborder%2Dradius%3A0%7D%7D%2Enavbar%2Dfixed%2Dtop%7Btop%3A0%3Bborder%2Dwidth%3A0%200%201px%7D%2Enavbar%2Dfixed%2Dbottom%7Bbottom%3A0%3Bmargin%2Dbottom%3A0%3Bborder%2Dwidth%3A1px%200%200%7D%2Enavbar%2Dbrand%7Bfloat%3Aleft%3Bheight%3A50px%3Bpadding%3A15px%2015px%3Bfont%2Dsize%3A18px%3Bline%2Dheight%3A20px%7D%2Enavbar%2Dbrand%3Afocus%2C%2Enavbar%2Dbrand%3Ahover%7Btext%2Ddecoration%3Anone%7D%2Enavbar%2Dbrand%3Eimg%7Bdisplay%3Ablock%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%3E%2Econtainer%20%2Enavbar%2Dbrand%2C%2Enavbar%3E%2Econtainer%2Dfluid%20%2Enavbar%2Dbrand%7Bmargin%2Dleft%3A%2D15px%7D%7D%2Enavbar%2Dtoggle%7Bposition%3Arelative%3Bfloat%3Aright%3Bpadding%3A9px%2010px%3Bmargin%2Dtop%3A8px%3Bmargin%2Dright%3A15px%3Bmargin%2Dbottom%3A8px%3Bbackground%2Dcolor%3Atransparent%3Bbackground%2Dimage%3Anone%3Bborder%3A1px%20solid%20transparent%3Bborder%2Dradius%3A4px%7D%2Enavbar%2Dtoggle%3Afocus%7Boutline%3A0%7D%2Enavbar%2Dtoggle%20%2Eicon%2Dbar%7Bdisplay%3Ablock%3Bwidth%3A22px%3Bheight%3A2px%3Bborder%2Dradius%3A1px%7D%2Enavbar%2Dtoggle%20%2Eicon%2Dbar%2B%2Eicon%2Dbar%7Bmargin%2Dtop%3A4px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dtoggle%7Bdisplay%3Anone%7D%7D%2Enavbar%2Dnav%7Bmargin%3A7%2E5px%20%2D15px%7D%2Enavbar%2Dnav%3Eli%3Ea%7Bpadding%2Dtop%3A10px%3Bpadding%2Dbottom%3A10px%3Bline%2Dheight%3A20px%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%7Bposition%3Astatic%3Bfloat%3Anone%3Bwidth%3Aauto%3Bmargin%2Dtop%3A0%3Bbackground%2Dcolor%3Atransparent%3Bborder%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%20%2Edropdown%2Dheader%2C%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%7Bpadding%3A5px%2015px%205px%2025px%7D%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%7Bline%2Dheight%3A20px%7D%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Afocus%2C%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Ahover%7Bbackground%2Dimage%3Anone%7D%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dnav%7Bfloat%3Aleft%3Bmargin%3A0%7D%2Enavbar%2Dnav%3Eli%7Bfloat%3Aleft%7D%2Enavbar%2Dnav%3Eli%3Ea%7Bpadding%2Dtop%3A15px%3Bpadding%2Dbottom%3A15px%7D%7D%2Enavbar%2Dform%7Bpadding%3A10px%2015px%3Bmargin%2Dtop%3A8px%3Bmargin%2Dright%3A%2D15px%3Bmargin%2Dbottom%3A8px%3Bmargin%2Dleft%3A%2D15px%3Bborder%2Dtop%3A1px%20solid%20transparent%3Bborder%2Dbottom%3A1px%20solid%20transparent%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C%2E1%29%2C0%201px%200%20rgba%28255%2C255%2C255%2C%2E1%29%3Bbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C%2E1%29%2C0%201px%200%20rgba%28255%2C255%2C255%2C%2E1%29%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dform%20%2Eform%2Dgroup%7Bdisplay%3Ainline%2Dblock%3Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Enavbar%2Dform%20%2Eform%2Dcontrol%7Bdisplay%3Ainline%2Dblock%3Bwidth%3Aauto%3Bvertical%2Dalign%3Amiddle%7D%2Enavbar%2Dform%20%2Eform%2Dcontrol%2Dstatic%7Bdisplay%3Ainline%2Dblock%7D%2Enavbar%2Dform%20%2Einput%2Dgroup%7Bdisplay%3Ainline%2Dtable%3Bvertical%2Dalign%3Amiddle%7D%2Enavbar%2Dform%20%2Einput%2Dgroup%20%2Eform%2Dcontrol%2C%2Enavbar%2Dform%20%2Einput%2Dgroup%20%2Einput%2Dgroup%2Daddon%2C%2Enavbar%2Dform%20%2Einput%2Dgroup%20%2Einput%2Dgroup%2Dbtn%7Bwidth%3Aauto%7D%2Enavbar%2Dform%20%2Einput%2Dgroup%3E%2Eform%2Dcontrol%7Bwidth%3A100%25%7D%2Enavbar%2Dform%20%2Econtrol%2Dlabel%7Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Enavbar%2Dform%20%2Echeckbox%2C%2Enavbar%2Dform%20%2Eradio%7Bdisplay%3Ainline%2Dblock%3Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Enavbar%2Dform%20%2Echeckbox%20label%2C%2Enavbar%2Dform%20%2Eradio%20label%7Bpadding%2Dleft%3A0%7D%2Enavbar%2Dform%20%2Echeckbox%20input%5Btype%3Dcheckbox%5D%2C%2Enavbar%2Dform%20%2Eradio%20input%5Btype%3Dradio%5D%7Bposition%3Arelative%3Bmargin%2Dleft%3A0%7D%2Enavbar%2Dform%20%2Ehas%2Dfeedback%20%2Eform%2Dcontrol%2Dfeedback%7Btop%3A0%7D%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Enavbar%2Dform%20%2Eform%2Dgroup%7Bmargin%2Dbottom%3A5px%7D%2Enavbar%2Dform%20%2Eform%2Dgroup%3Alast%2Dchild%7Bmargin%2Dbottom%3A0%7D%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dform%7Bwidth%3Aauto%3Bpadding%2Dtop%3A0%3Bpadding%2Dbottom%3A0%3Bmargin%2Dright%3A0%3Bmargin%2Dleft%3A0%3Bborder%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%7D%2Enavbar%2Dnav%3Eli%3E%2Edropdown%2Dmenu%7Bmargin%2Dtop%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A0%7D%2Enavbar%2Dfixed%2Dbottom%20%2Enavbar%2Dnav%3Eli%3E%2Edropdown%2Dmenu%7Bmargin%2Dbottom%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A4px%3Bborder%2Dtop%2Dright%2Dradius%3A4px%3Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A0%7D%2Enavbar%2Dbtn%7Bmargin%2Dtop%3A8px%3Bmargin%2Dbottom%3A8px%7D%2Enavbar%2Dbtn%2Ebtn%2Dsm%7Bmargin%2Dtop%3A10px%3Bmargin%2Dbottom%3A10px%7D%2Enavbar%2Dbtn%2Ebtn%2Dxs%7Bmargin%2Dtop%3A14px%3Bmargin%2Dbottom%3A14px%7D%2Enavbar%2Dtext%7Bmargin%2Dtop%3A15px%3Bmargin%2Dbottom%3A15px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dtext%7Bfloat%3Aleft%3Bmargin%2Dright%3A15px%3Bmargin%2Dleft%3A15px%7D%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dleft%7Bfloat%3Aleft%21important%7D%2Enavbar%2Dright%7Bfloat%3Aright%21important%3Bmargin%2Dright%3A%2D15px%7D%2Enavbar%2Dright%7E%2Enavbar%2Dright%7Bmargin%2Dright%3A0%7D%7D%2Enavbar%2Ddefault%7Bbackground%2Dcolor%3A%23f8f8f8%3Bborder%2Dcolor%3A%23e7e7e7%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dbrand%7Bcolor%3A%23777%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dbrand%3Afocus%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dbrand%3Ahover%7Bcolor%3A%235e5e5e%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dtext%7Bcolor%3A%23777%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3Eli%3Ea%7Bcolor%3A%23777%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3Eli%3Ea%3Afocus%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3Eli%3Ea%3Ahover%7Bcolor%3A%23333%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%3Afocus%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%3Ahover%7Bcolor%3A%23555%3Bbackground%2Dcolor%3A%23e7e7e7%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%3Afocus%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%3Ahover%7Bcolor%3A%23ccc%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dtoggle%7Bborder%2Dcolor%3A%23ddd%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dtoggle%3Afocus%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dtoggle%3Ahover%7Bbackground%2Dcolor%3A%23ddd%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dtoggle%20%2Eicon%2Dbar%7Bbackground%2Dcolor%3A%23888%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dform%7Bborder%2Dcolor%3A%23e7e7e7%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%3Afocus%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%3Ahover%7Bcolor%3A%23555%3Bbackground%2Dcolor%3A%23e7e7e7%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%7Bcolor%3A%23777%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Afocus%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Ahover%7Bcolor%3A%23333%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Afocus%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Ahover%7Bcolor%3A%23555%3Bbackground%2Dcolor%3A%23e7e7e7%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Afocus%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Ahover%7Bcolor%3A%23ccc%3Bbackground%2Dcolor%3Atransparent%7D%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dlink%7Bcolor%3A%23777%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dlink%3Ahover%7Bcolor%3A%23333%7D%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%7Bcolor%3A%23777%7D%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%3Afocus%2C%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%3Ahover%7Bcolor%3A%23333%7D%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%5Bdisabled%5D%3Afocus%2C%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%3Ahover%7Bcolor%3A%23ccc%7D%2Enavbar%2Dinverse%7Bbackground%2Dcolor%3A%23222%3Bborder%2Dcolor%3A%23080808%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dbrand%7Bcolor%3A%239d9d9d%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dbrand%3Afocus%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dbrand%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dtext%7Bcolor%3A%239d9d9d%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3Eli%3Ea%7Bcolor%3A%239d9d9d%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3Eli%3Ea%3Afocus%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3Eli%3Ea%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%3Afocus%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23080808%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%3Afocus%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%3Ahover%7Bcolor%3A%23444%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dtoggle%7Bborder%2Dcolor%3A%23333%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dtoggle%3Afocus%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dtoggle%3Ahover%7Bbackground%2Dcolor%3A%23333%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dtoggle%20%2Eicon%2Dbar%7Bbackground%2Dcolor%3A%23fff%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dform%7Bborder%2Dcolor%3A%23101010%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%3Afocus%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23080808%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edropdown%2Dheader%7Bborder%2Dcolor%3A%23080808%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%20%2Edivider%7Bbackground%2Dcolor%3A%23080808%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%7Bcolor%3A%239d9d9d%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Afocus%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Afocus%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23080808%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Afocus%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Ahover%7Bcolor%3A%23444%3Bbackground%2Dcolor%3Atransparent%7D%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dlink%7Bcolor%3A%239d9d9d%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dlink%3Ahover%7Bcolor%3A%23fff%7D%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%7Bcolor%3A%239d9d9d%7D%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%3Afocus%2C%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%3Ahover%7Bcolor%3A%23fff%7D%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%5Bdisabled%5D%3Afocus%2C%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%3Ahover%7Bcolor%3A%23444%7D%2Ebreadcrumb%7Bpadding%3A8px%2015px%3Bmargin%2Dbottom%3A20px%3Blist%2Dstyle%3Anone%3Bbackground%2Dcolor%3A%23f5f5f5%3Bborder%2Dradius%3A4px%7D%2Ebreadcrumb%3Eli%7Bdisplay%3Ainline%2Dblock%7D%2Ebreadcrumb%3Eli%2Bli%3Abefore%7Bpadding%3A0%205px%3Bcolor%3A%23ccc%3Bcontent%3A%22%2F%5C00a0%22%7D%2Ebreadcrumb%3E%2Eactive%7Bcolor%3A%23777%7D%2Epagination%7Bdisplay%3Ainline%2Dblock%3Bpadding%2Dleft%3A0%3Bmargin%3A20px%200%3Bborder%2Dradius%3A4px%7D%2Epagination%3Eli%7Bdisplay%3Ainline%7D%2Epagination%3Eli%3Ea%2C%2Epagination%3Eli%3Espan%7Bposition%3Arelative%3Bfloat%3Aleft%3Bpadding%3A6px%2012px%3Bmargin%2Dleft%3A%2D1px%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23337ab7%3Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3A%23fff%3Bborder%3A1px%20solid%20%23ddd%7D%2Epagination%3Eli%3Afirst%2Dchild%3Ea%2C%2Epagination%3Eli%3Afirst%2Dchild%3Espan%7Bmargin%2Dleft%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A4px%3Bborder%2Dbottom%2Dleft%2Dradius%3A4px%7D%2Epagination%3Eli%3Alast%2Dchild%3Ea%2C%2Epagination%3Eli%3Alast%2Dchild%3Espan%7Bborder%2Dtop%2Dright%2Dradius%3A4px%3Bborder%2Dbottom%2Dright%2Dradius%3A4px%7D%2Epagination%3Eli%3Ea%3Afocus%2C%2Epagination%3Eli%3Ea%3Ahover%2C%2Epagination%3Eli%3Espan%3Afocus%2C%2Epagination%3Eli%3Espan%3Ahover%7Bz%2Dindex%3A3%3Bcolor%3A%2323527c%3Bbackground%2Dcolor%3A%23eee%3Bborder%2Dcolor%3A%23ddd%7D%2Epagination%3E%2Eactive%3Ea%2C%2Epagination%3E%2Eactive%3Ea%3Afocus%2C%2Epagination%3E%2Eactive%3Ea%3Ahover%2C%2Epagination%3E%2Eactive%3Espan%2C%2Epagination%3E%2Eactive%3Espan%3Afocus%2C%2Epagination%3E%2Eactive%3Espan%3Ahover%7Bz%2Dindex%3A2%3Bcolor%3A%23fff%3Bcursor%3Adefault%3Bbackground%2Dcolor%3A%23337ab7%3Bborder%2Dcolor%3A%23337ab7%7D%2Epagination%3E%2Edisabled%3Ea%2C%2Epagination%3E%2Edisabled%3Ea%3Afocus%2C%2Epagination%3E%2Edisabled%3Ea%3Ahover%2C%2Epagination%3E%2Edisabled%3Espan%2C%2Epagination%3E%2Edisabled%3Espan%3Afocus%2C%2Epagination%3E%2Edisabled%3Espan%3Ahover%7Bcolor%3A%23777%3Bcursor%3Anot%2Dallowed%3Bbackground%2Dcolor%3A%23fff%3Bborder%2Dcolor%3A%23ddd%7D%2Epagination%2Dlg%3Eli%3Ea%2C%2Epagination%2Dlg%3Eli%3Espan%7Bpadding%3A10px%2016px%3Bfont%2Dsize%3A18px%3Bline%2Dheight%3A1%2E3333333%7D%2Epagination%2Dlg%3Eli%3Afirst%2Dchild%3Ea%2C%2Epagination%2Dlg%3Eli%3Afirst%2Dchild%3Espan%7Bborder%2Dtop%2Dleft%2Dradius%3A6px%3Bborder%2Dbottom%2Dleft%2Dradius%3A6px%7D%2Epagination%2Dlg%3Eli%3Alast%2Dchild%3Ea%2C%2Epagination%2Dlg%3Eli%3Alast%2Dchild%3Espan%7Bborder%2Dtop%2Dright%2Dradius%3A6px%3Bborder%2Dbottom%2Dright%2Dradius%3A6px%7D%2Epagination%2Dsm%3Eli%3Ea%2C%2Epagination%2Dsm%3Eli%3Espan%7Bpadding%3A5px%2010px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E5%7D%2Epagination%2Dsm%3Eli%3Afirst%2Dchild%3Ea%2C%2Epagination%2Dsm%3Eli%3Afirst%2Dchild%3Espan%7Bborder%2Dtop%2Dleft%2Dradius%3A3px%3Bborder%2Dbottom%2Dleft%2Dradius%3A3px%7D%2Epagination%2Dsm%3Eli%3Alast%2Dchild%3Ea%2C%2Epagination%2Dsm%3Eli%3Alast%2Dchild%3Espan%7Bborder%2Dtop%2Dright%2Dradius%3A3px%3Bborder%2Dbottom%2Dright%2Dradius%3A3px%7D%2Epager%7Bpadding%2Dleft%3A0%3Bmargin%3A20px%200%3Btext%2Dalign%3Acenter%3Blist%2Dstyle%3Anone%7D%2Epager%20li%7Bdisplay%3Ainline%7D%2Epager%20li%3Ea%2C%2Epager%20li%3Espan%7Bdisplay%3Ainline%2Dblock%3Bpadding%3A5px%2014px%3Bbackground%2Dcolor%3A%23fff%3Bborder%3A1px%20solid%20%23ddd%3Bborder%2Dradius%3A15px%7D%2Epager%20li%3Ea%3Afocus%2C%2Epager%20li%3Ea%3Ahover%7Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3A%23eee%7D%2Epager%20%2Enext%3Ea%2C%2Epager%20%2Enext%3Espan%7Bfloat%3Aright%7D%2Epager%20%2Eprevious%3Ea%2C%2Epager%20%2Eprevious%3Espan%7Bfloat%3Aleft%7D%2Epager%20%2Edisabled%3Ea%2C%2Epager%20%2Edisabled%3Ea%3Afocus%2C%2Epager%20%2Edisabled%3Ea%3Ahover%2C%2Epager%20%2Edisabled%3Espan%7Bcolor%3A%23777%3Bcursor%3Anot%2Dallowed%3Bbackground%2Dcolor%3A%23fff%7D%2Elabel%7Bdisplay%3Ainline%3Bpadding%3A%2E2em%20%2E6em%20%2E3em%3Bfont%2Dsize%3A75%25%3Bfont%2Dweight%3A700%3Bline%2Dheight%3A1%3Bcolor%3A%23fff%3Btext%2Dalign%3Acenter%3Bwhite%2Dspace%3Anowrap%3Bvertical%2Dalign%3Abaseline%3Bborder%2Dradius%3A%2E25em%7Da%2Elabel%3Afocus%2Ca%2Elabel%3Ahover%7Bcolor%3A%23fff%3Btext%2Ddecoration%3Anone%3Bcursor%3Apointer%7D%2Elabel%3Aempty%7Bdisplay%3Anone%7D%2Ebtn%20%2Elabel%7Bposition%3Arelative%3Btop%3A%2D1px%7D%2Elabel%2Ddefault%7Bbackground%2Dcolor%3A%23777%7D%2Elabel%2Ddefault%5Bhref%5D%3Afocus%2C%2Elabel%2Ddefault%5Bhref%5D%3Ahover%7Bbackground%2Dcolor%3A%235e5e5e%7D%2Elabel%2Dprimary%7Bbackground%2Dcolor%3A%23337ab7%7D%2Elabel%2Dprimary%5Bhref%5D%3Afocus%2C%2Elabel%2Dprimary%5Bhref%5D%3Ahover%7Bbackground%2Dcolor%3A%23286090%7D%2Elabel%2Dsuccess%7Bbackground%2Dcolor%3A%235cb85c%7D%2Elabel%2Dsuccess%5Bhref%5D%3Afocus%2C%2Elabel%2Dsuccess%5Bhref%5D%3Ahover%7Bbackground%2Dcolor%3A%23449d44%7D%2Elabel%2Dinfo%7Bbackground%2Dcolor%3A%235bc0de%7D%2Elabel%2Dinfo%5Bhref%5D%3Afocus%2C%2Elabel%2Dinfo%5Bhref%5D%3Ahover%7Bbackground%2Dcolor%3A%2331b0d5%7D%2Elabel%2Dwarning%7Bbackground%2Dcolor%3A%23f0ad4e%7D%2Elabel%2Dwarning%5Bhref%5D%3Afocus%2C%2Elabel%2Dwarning%5Bhref%5D%3Ahover%7Bbackground%2Dcolor%3A%23ec971f%7D%2Elabel%2Ddanger%7Bbackground%2Dcolor%3A%23d9534f%7D%2Elabel%2Ddanger%5Bhref%5D%3Afocus%2C%2Elabel%2Ddanger%5Bhref%5D%3Ahover%7Bbackground%2Dcolor%3A%23c9302c%7D%2Ebadge%7Bdisplay%3Ainline%2Dblock%3Bmin%2Dwidth%3A10px%3Bpadding%3A3px%207px%3Bfont%2Dsize%3A12px%3Bfont%2Dweight%3A700%3Bline%2Dheight%3A1%3Bcolor%3A%23fff%3Btext%2Dalign%3Acenter%3Bwhite%2Dspace%3Anowrap%3Bvertical%2Dalign%3Amiddle%3Bbackground%2Dcolor%3A%23777%3Bborder%2Dradius%3A10px%7D%2Ebadge%3Aempty%7Bdisplay%3Anone%7D%2Ebtn%20%2Ebadge%7Bposition%3Arelative%3Btop%3A%2D1px%7D%2Ebtn%2Dgroup%2Dxs%3E%2Ebtn%20%2Ebadge%2C%2Ebtn%2Dxs%20%2Ebadge%7Btop%3A0%3Bpadding%3A1px%205px%7Da%2Ebadge%3Afocus%2Ca%2Ebadge%3Ahover%7Bcolor%3A%23fff%3Btext%2Ddecoration%3Anone%3Bcursor%3Apointer%7D%2Elist%2Dgroup%2Ditem%2Eactive%3E%2Ebadge%2C%2Enav%2Dpills%3E%2Eactive%3Ea%3E%2Ebadge%7Bcolor%3A%23337ab7%3Bbackground%2Dcolor%3A%23fff%7D%2Elist%2Dgroup%2Ditem%3E%2Ebadge%7Bfloat%3Aright%7D%2Elist%2Dgroup%2Ditem%3E%2Ebadge%2B%2Ebadge%7Bmargin%2Dright%3A5px%7D%2Enav%2Dpills%3Eli%3Ea%3E%2Ebadge%7Bmargin%2Dleft%3A3px%7D%2Ejumbotron%7Bpadding%2Dtop%3A30px%3Bpadding%2Dbottom%3A30px%3Bmargin%2Dbottom%3A30px%3Bcolor%3Ainherit%3Bbackground%2Dcolor%3A%23eee%7D%2Ejumbotron%20%2Eh1%2C%2Ejumbotron%20h1%7Bcolor%3Ainherit%7D%2Ejumbotron%20p%7Bmargin%2Dbottom%3A15px%3Bfont%2Dsize%3A21px%3Bfont%2Dweight%3A200%7D%2Ejumbotron%3Ehr%7Bborder%2Dtop%2Dcolor%3A%23d5d5d5%7D%2Econtainer%20%2Ejumbotron%2C%2Econtainer%2Dfluid%20%2Ejumbotron%7Bborder%2Dradius%3A6px%7D%2Ejumbotron%20%2Econtainer%7Bmax%2Dwidth%3A100%25%7D%40media%20screen%20and%20%28min%2Dwidth%3A768px%29%7B%2Ejumbotron%7Bpadding%2Dtop%3A48px%3Bpadding%2Dbottom%3A48px%7D%2Econtainer%20%2Ejumbotron%2C%2Econtainer%2Dfluid%20%2Ejumbotron%7Bpadding%2Dright%3A60px%3Bpadding%2Dleft%3A60px%7D%2Ejumbotron%20%2Eh1%2C%2Ejumbotron%20h1%7Bfont%2Dsize%3A63px%7D%7D%2Ethumbnail%7Bdisplay%3Ablock%3Bpadding%3A4px%3Bmargin%2Dbottom%3A20px%3Bline%2Dheight%3A1%2E42857143%3Bbackground%2Dcolor%3A%23fff%3Bborder%3A1px%20solid%20%23ddd%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dtransition%3Aborder%20%2E2s%20ease%2Din%2Dout%3B%2Do%2Dtransition%3Aborder%20%2E2s%20ease%2Din%2Dout%3Btransition%3Aborder%20%2E2s%20ease%2Din%2Dout%7D%2Ethumbnail%20a%3Eimg%2C%2Ethumbnail%3Eimg%7Bmargin%2Dright%3Aauto%3Bmargin%2Dleft%3Aauto%7Da%2Ethumbnail%2Eactive%2Ca%2Ethumbnail%3Afocus%2Ca%2Ethumbnail%3Ahover%7Bborder%2Dcolor%3A%23337ab7%7D%2Ethumbnail%20%2Ecaption%7Bpadding%3A9px%3Bcolor%3A%23333%7D%2Ealert%7Bpadding%3A15px%3Bmargin%2Dbottom%3A20px%3Bborder%3A1px%20solid%20transparent%3Bborder%2Dradius%3A4px%7D%2Ealert%20h4%7Bmargin%2Dtop%3A0%3Bcolor%3Ainherit%7D%2Ealert%20%2Ealert%2Dlink%7Bfont%2Dweight%3A700%7D%2Ealert%3Ep%2C%2Ealert%3Eul%7Bmargin%2Dbottom%3A0%7D%2Ealert%3Ep%2Bp%7Bmargin%2Dtop%3A5px%7D%2Ealert%2Ddismissable%2C%2Ealert%2Ddismissible%7Bpadding%2Dright%3A35px%7D%2Ealert%2Ddismissable%20%2Eclose%2C%2Ealert%2Ddismissible%20%2Eclose%7Bposition%3Arelative%3Btop%3A%2D2px%3Bright%3A%2D21px%3Bcolor%3Ainherit%7D%2Ealert%2Dsuccess%7Bcolor%3A%233c763d%3Bbackground%2Dcolor%3A%23dff0d8%3Bborder%2Dcolor%3A%23d6e9c6%7D%2Ealert%2Dsuccess%20hr%7Bborder%2Dtop%2Dcolor%3A%23c9e2b3%7D%2Ealert%2Dsuccess%20%2Ealert%2Dlink%7Bcolor%3A%232b542c%7D%2Ealert%2Dinfo%7Bcolor%3A%2331708f%3Bbackground%2Dcolor%3A%23d9edf7%3Bborder%2Dcolor%3A%23bce8f1%7D%2Ealert%2Dinfo%20hr%7Bborder%2Dtop%2Dcolor%3A%23a6e1ec%7D%2Ealert%2Dinfo%20%2Ealert%2Dlink%7Bcolor%3A%23245269%7D%2Ealert%2Dwarning%7Bcolor%3A%238a6d3b%3Bbackground%2Dcolor%3A%23fcf8e3%3Bborder%2Dcolor%3A%23faebcc%7D%2Ealert%2Dwarning%20hr%7Bborder%2Dtop%2Dcolor%3A%23f7e1b5%7D%2Ealert%2Dwarning%20%2Ealert%2Dlink%7Bcolor%3A%2366512c%7D%2Ealert%2Ddanger%7Bcolor%3A%23a94442%3Bbackground%2Dcolor%3A%23f2dede%3Bborder%2Dcolor%3A%23ebccd1%7D%2Ealert%2Ddanger%20hr%7Bborder%2Dtop%2Dcolor%3A%23e4b9c0%7D%2Ealert%2Ddanger%20%2Ealert%2Dlink%7Bcolor%3A%23843534%7D%40%2Dwebkit%2Dkeyframes%20progress%2Dbar%2Dstripes%7Bfrom%7Bbackground%2Dposition%3A40px%200%7Dto%7Bbackground%2Dposition%3A0%200%7D%7D%40%2Do%2Dkeyframes%20progress%2Dbar%2Dstripes%7Bfrom%7Bbackground%2Dposition%3A40px%200%7Dto%7Bbackground%2Dposition%3A0%200%7D%7D%40keyframes%20progress%2Dbar%2Dstripes%7Bfrom%7Bbackground%2Dposition%3A40px%200%7Dto%7Bbackground%2Dposition%3A0%200%7D%7D%2Eprogress%7Bheight%3A20px%3Bmargin%2Dbottom%3A20px%3Boverflow%3Ahidden%3Bbackground%2Dcolor%3A%23f5f5f5%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%202px%20rgba%280%2C0%2C0%2C%2E1%29%3Bbox%2Dshadow%3Ainset%200%201px%202px%20rgba%280%2C0%2C0%2C%2E1%29%7D%2Eprogress%2Dbar%7Bfloat%3Aleft%3Bwidth%3A0%3Bheight%3A100%25%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A20px%3Bcolor%3A%23fff%3Btext%2Dalign%3Acenter%3Bbackground%2Dcolor%3A%23337ab7%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%20%2D1px%200%20rgba%280%2C0%2C0%2C%2E15%29%3Bbox%2Dshadow%3Ainset%200%20%2D1px%200%20rgba%280%2C0%2C0%2C%2E15%29%3B%2Dwebkit%2Dtransition%3Awidth%20%2E6s%20ease%3B%2Do%2Dtransition%3Awidth%20%2E6s%20ease%3Btransition%3Awidth%20%2E6s%20ease%7D%2Eprogress%2Dbar%2Dstriped%2C%2Eprogress%2Dstriped%20%2Eprogress%2Dbar%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3B%2Dwebkit%2Dbackground%2Dsize%3A40px%2040px%3Bbackground%2Dsize%3A40px%2040px%7D%2Eprogress%2Dbar%2Eactive%2C%2Eprogress%2Eactive%20%2Eprogress%2Dbar%7B%2Dwebkit%2Danimation%3Aprogress%2Dbar%2Dstripes%202s%20linear%20infinite%3B%2Do%2Danimation%3Aprogress%2Dbar%2Dstripes%202s%20linear%20infinite%3Banimation%3Aprogress%2Dbar%2Dstripes%202s%20linear%20infinite%7D%2Eprogress%2Dbar%2Dsuccess%7Bbackground%2Dcolor%3A%235cb85c%7D%2Eprogress%2Dstriped%20%2Eprogress%2Dbar%2Dsuccess%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%7D%2Eprogress%2Dbar%2Dinfo%7Bbackground%2Dcolor%3A%235bc0de%7D%2Eprogress%2Dstriped%20%2Eprogress%2Dbar%2Dinfo%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%7D%2Eprogress%2Dbar%2Dwarning%7Bbackground%2Dcolor%3A%23f0ad4e%7D%2Eprogress%2Dstriped%20%2Eprogress%2Dbar%2Dwarning%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%7D%2Eprogress%2Dbar%2Ddanger%7Bbackground%2Dcolor%3A%23d9534f%7D%2Eprogress%2Dstriped%20%2Eprogress%2Dbar%2Ddanger%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%7D%2Emedia%7Bmargin%2Dtop%3A15px%7D%2Emedia%3Afirst%2Dchild%7Bmargin%2Dtop%3A0%7D%2Emedia%2C%2Emedia%2Dbody%7Boverflow%3Ahidden%3Bzoom%3A1%7D%2Emedia%2Dbody%7Bwidth%3A10000px%7D%2Emedia%2Dobject%7Bdisplay%3Ablock%7D%2Emedia%2Dobject%2Eimg%2Dthumbnail%7Bmax%2Dwidth%3Anone%7D%2Emedia%2Dright%2C%2Emedia%3E%2Epull%2Dright%7Bpadding%2Dleft%3A10px%7D%2Emedia%2Dleft%2C%2Emedia%3E%2Epull%2Dleft%7Bpadding%2Dright%3A10px%7D%2Emedia%2Dbody%2C%2Emedia%2Dleft%2C%2Emedia%2Dright%7Bdisplay%3Atable%2Dcell%3Bvertical%2Dalign%3Atop%7D%2Emedia%2Dmiddle%7Bvertical%2Dalign%3Amiddle%7D%2Emedia%2Dbottom%7Bvertical%2Dalign%3Abottom%7D%2Emedia%2Dheading%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A5px%7D%2Emedia%2Dlist%7Bpadding%2Dleft%3A0%3Blist%2Dstyle%3Anone%7D%2Elist%2Dgroup%7Bpadding%2Dleft%3A0%3Bmargin%2Dbottom%3A20px%7D%2Elist%2Dgroup%2Ditem%7Bposition%3Arelative%3Bdisplay%3Ablock%3Bpadding%3A10px%2015px%3Bmargin%2Dbottom%3A%2D1px%3Bbackground%2Dcolor%3A%23fff%3Bborder%3A1px%20solid%20%23ddd%7D%2Elist%2Dgroup%2Ditem%3Afirst%2Dchild%7Bborder%2Dtop%2Dleft%2Dradius%3A4px%3Bborder%2Dtop%2Dright%2Dradius%3A4px%7D%2Elist%2Dgroup%2Ditem%3Alast%2Dchild%7Bmargin%2Dbottom%3A0%3Bborder%2Dbottom%2Dright%2Dradius%3A4px%3Bborder%2Dbottom%2Dleft%2Dradius%3A4px%7Da%2Elist%2Dgroup%2Ditem%2Cbutton%2Elist%2Dgroup%2Ditem%7Bcolor%3A%23555%7Da%2Elist%2Dgroup%2Ditem%20%2Elist%2Dgroup%2Ditem%2Dheading%2Cbutton%2Elist%2Dgroup%2Ditem%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3A%23333%7Da%2Elist%2Dgroup%2Ditem%3Afocus%2Ca%2Elist%2Dgroup%2Ditem%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%3Ahover%7Bcolor%3A%23555%3Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3A%23f5f5f5%7Dbutton%2Elist%2Dgroup%2Ditem%7Bwidth%3A100%25%3Btext%2Dalign%3Aleft%7D%2Elist%2Dgroup%2Ditem%2Edisabled%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Afocus%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Ahover%7Bcolor%3A%23777%3Bcursor%3Anot%2Dallowed%3Bbackground%2Dcolor%3A%23eee%7D%2Elist%2Dgroup%2Ditem%2Edisabled%20%2Elist%2Dgroup%2Ditem%2Dheading%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dheading%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3Ainherit%7D%2Elist%2Dgroup%2Ditem%2Edisabled%20%2Elist%2Dgroup%2Ditem%2Dtext%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dtext%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dtext%7Bcolor%3A%23777%7D%2Elist%2Dgroup%2Ditem%2Eactive%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Afocus%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Ahover%7Bz%2Dindex%3A2%3Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23337ab7%3Bborder%2Dcolor%3A%23337ab7%7D%2Elist%2Dgroup%2Ditem%2Eactive%20%2Elist%2Dgroup%2Ditem%2Dheading%2C%2Elist%2Dgroup%2Ditem%2Eactive%20%2Elist%2Dgroup%2Ditem%2Dheading%3E%2Esmall%2C%2Elist%2Dgroup%2Ditem%2Eactive%20%2Elist%2Dgroup%2Ditem%2Dheading%3Esmall%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dheading%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dheading%3E%2Esmall%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dheading%3Esmall%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dheading%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dheading%3E%2Esmall%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dheading%3Esmall%7Bcolor%3Ainherit%7D%2Elist%2Dgroup%2Ditem%2Eactive%20%2Elist%2Dgroup%2Ditem%2Dtext%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dtext%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dtext%7Bcolor%3A%23c7ddef%7D%2Elist%2Dgroup%2Ditem%2Dsuccess%7Bcolor%3A%233c763d%3Bbackground%2Dcolor%3A%23dff0d8%7Da%2Elist%2Dgroup%2Ditem%2Dsuccess%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%7Bcolor%3A%233c763d%7Da%2Elist%2Dgroup%2Ditem%2Dsuccess%20%2Elist%2Dgroup%2Ditem%2Dheading%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3Ainherit%7Da%2Elist%2Dgroup%2Ditem%2Dsuccess%3Afocus%2Ca%2Elist%2Dgroup%2Ditem%2Dsuccess%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%3Ahover%7Bcolor%3A%233c763d%3Bbackground%2Dcolor%3A%23d0e9c6%7Da%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%2Ca%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%3Afocus%2Ca%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%233c763d%3Bborder%2Dcolor%3A%233c763d%7D%2Elist%2Dgroup%2Ditem%2Dinfo%7Bcolor%3A%2331708f%3Bbackground%2Dcolor%3A%23d9edf7%7Da%2Elist%2Dgroup%2Ditem%2Dinfo%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%7Bcolor%3A%2331708f%7Da%2Elist%2Dgroup%2Ditem%2Dinfo%20%2Elist%2Dgroup%2Ditem%2Dheading%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3Ainherit%7Da%2Elist%2Dgroup%2Ditem%2Dinfo%3Afocus%2Ca%2Elist%2Dgroup%2Ditem%2Dinfo%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%3Ahover%7Bcolor%3A%2331708f%3Bbackground%2Dcolor%3A%23c4e3f3%7Da%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%2Ca%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%3Afocus%2Ca%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%2331708f%3Bborder%2Dcolor%3A%2331708f%7D%2Elist%2Dgroup%2Ditem%2Dwarning%7Bcolor%3A%238a6d3b%3Bbackground%2Dcolor%3A%23fcf8e3%7Da%2Elist%2Dgroup%2Ditem%2Dwarning%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%7Bcolor%3A%238a6d3b%7Da%2Elist%2Dgroup%2Ditem%2Dwarning%20%2Elist%2Dgroup%2Ditem%2Dheading%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3Ainherit%7Da%2Elist%2Dgroup%2Ditem%2Dwarning%3Afocus%2Ca%2Elist%2Dgroup%2Ditem%2Dwarning%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%3Ahover%7Bcolor%3A%238a6d3b%3Bbackground%2Dcolor%3A%23faf2cc%7Da%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%2Ca%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%3Afocus%2Ca%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%238a6d3b%3Bborder%2Dcolor%3A%238a6d3b%7D%2Elist%2Dgroup%2Ditem%2Ddanger%7Bcolor%3A%23a94442%3Bbackground%2Dcolor%3A%23f2dede%7Da%2Elist%2Dgroup%2Ditem%2Ddanger%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%7Bcolor%3A%23a94442%7Da%2Elist%2Dgroup%2Ditem%2Ddanger%20%2Elist%2Dgroup%2Ditem%2Dheading%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3Ainherit%7Da%2Elist%2Dgroup%2Ditem%2Ddanger%3Afocus%2Ca%2Elist%2Dgroup%2Ditem%2Ddanger%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%3Ahover%7Bcolor%3A%23a94442%3Bbackground%2Dcolor%3A%23ebcccc%7Da%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%2Ca%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%3Afocus%2Ca%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23a94442%3Bborder%2Dcolor%3A%23a94442%7D%2Elist%2Dgroup%2Ditem%2Dheading%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A5px%7D%2Elist%2Dgroup%2Ditem%2Dtext%7Bmargin%2Dbottom%3A0%3Bline%2Dheight%3A1%2E3%7D%2Epanel%7Bmargin%2Dbottom%3A20px%3Bbackground%2Dcolor%3A%23fff%3Bborder%3A1px%20solid%20transparent%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dbox%2Dshadow%3A0%201px%201px%20rgba%280%2C0%2C0%2C%2E05%29%3Bbox%2Dshadow%3A0%201px%201px%20rgba%280%2C0%2C0%2C%2E05%29%7D%2Epanel%2Dbody%7Bpadding%3A15px%7D%2Epanel%2Dheading%7Bpadding%3A10px%2015px%3Bborder%2Dbottom%3A1px%20solid%20transparent%3Bborder%2Dtop%2Dleft%2Dradius%3A3px%3Bborder%2Dtop%2Dright%2Dradius%3A3px%7D%2Epanel%2Dheading%3E%2Edropdown%20%2Edropdown%2Dtoggle%7Bcolor%3Ainherit%7D%2Epanel%2Dtitle%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A0%3Bfont%2Dsize%3A16px%3Bcolor%3Ainherit%7D%2Epanel%2Dtitle%3E%2Esmall%2C%2Epanel%2Dtitle%3E%2Esmall%3Ea%2C%2Epanel%2Dtitle%3Ea%2C%2Epanel%2Dtitle%3Esmall%2C%2Epanel%2Dtitle%3Esmall%3Ea%7Bcolor%3Ainherit%7D%2Epanel%2Dfooter%7Bpadding%3A10px%2015px%3Bbackground%2Dcolor%3A%23f5f5f5%3Bborder%2Dtop%3A1px%20solid%20%23ddd%3Bborder%2Dbottom%2Dright%2Dradius%3A3px%3Bborder%2Dbottom%2Dleft%2Dradius%3A3px%7D%2Epanel%3E%2Elist%2Dgroup%2C%2Epanel%3E%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%7Bmargin%2Dbottom%3A0%7D%2Epanel%3E%2Elist%2Dgroup%20%2Elist%2Dgroup%2Ditem%2C%2Epanel%3E%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%20%2Elist%2Dgroup%2Ditem%7Bborder%2Dwidth%3A1px%200%3Bborder%2Dradius%3A0%7D%2Epanel%3E%2Elist%2Dgroup%3Afirst%2Dchild%20%2Elist%2Dgroup%2Ditem%3Afirst%2Dchild%2C%2Epanel%3E%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%3Afirst%2Dchild%20%2Elist%2Dgroup%2Ditem%3Afirst%2Dchild%7Bborder%2Dtop%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A3px%3Bborder%2Dtop%2Dright%2Dradius%3A3px%7D%2Epanel%3E%2Elist%2Dgroup%3Alast%2Dchild%20%2Elist%2Dgroup%2Ditem%3Alast%2Dchild%2C%2Epanel%3E%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%3Alast%2Dchild%20%2Elist%2Dgroup%2Ditem%3Alast%2Dchild%7Bborder%2Dbottom%3A0%3Bborder%2Dbottom%2Dright%2Dradius%3A3px%3Bborder%2Dbottom%2Dleft%2Dradius%3A3px%7D%2Epanel%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%20%2Elist%2Dgroup%2Ditem%3Afirst%2Dchild%7Bborder%2Dtop%2Dleft%2Dradius%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A0%7D%2Epanel%2Dheading%2B%2Elist%2Dgroup%20%2Elist%2Dgroup%2Ditem%3Afirst%2Dchild%7Bborder%2Dtop%2Dwidth%3A0%7D%2Elist%2Dgroup%2B%2Epanel%2Dfooter%7Bborder%2Dtop%2Dwidth%3A0%7D%2Epanel%3E%2Epanel%2Dcollapse%3E%2Etable%2C%2Epanel%3E%2Etable%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%7Bmargin%2Dbottom%3A0%7D%2Epanel%3E%2Epanel%2Dcollapse%3E%2Etable%20caption%2C%2Epanel%3E%2Etable%20caption%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%20caption%7Bpadding%2Dright%3A15px%3Bpadding%2Dleft%3A15px%7D%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%7Bborder%2Dtop%2Dleft%2Dradius%3A3px%3Bborder%2Dtop%2Dright%2Dradius%3A3px%7D%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%7Bborder%2Dtop%2Dleft%2Dradius%3A3px%3Bborder%2Dtop%2Dright%2Dradius%3A3px%7D%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Afirst%2Dchild%7Bborder%2Dtop%2Dleft%2Dradius%3A3px%7D%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Alast%2Dchild%7Bborder%2Dtop%2Dright%2Dradius%3A3px%7D%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%7Bborder%2Dbottom%2Dright%2Dradius%3A3px%3Bborder%2Dbottom%2Dleft%2Dradius%3A3px%7D%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%7Bborder%2Dbottom%2Dright%2Dradius%3A3px%3Bborder%2Dbottom%2Dleft%2Dradius%3A3px%7D%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Afirst%2Dchild%7Bborder%2Dbottom%2Dleft%2Dradius%3A3px%7D%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Alast%2Dchild%7Bborder%2Dbottom%2Dright%2Dradius%3A3px%7D%2Epanel%3E%2Epanel%2Dbody%2B%2Etable%2C%2Epanel%3E%2Epanel%2Dbody%2B%2Etable%2Dresponsive%2C%2Epanel%3E%2Etable%2B%2Epanel%2Dbody%2C%2Epanel%3E%2Etable%2Dresponsive%2B%2Epanel%2Dbody%7Bborder%2Dtop%3A1px%20solid%20%23ddd%7D%2Epanel%3E%2Etable%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%2C%2Epanel%3E%2Etable%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%7Bborder%2Dtop%3A0%7D%2Epanel%3E%2Etable%2Dbordered%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%7Bborder%3A0%7D%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Afirst%2Dchild%7Bborder%2Dleft%3A0%7D%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Alast%2Dchild%7Bborder%2Dright%3A0%7D%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Afirst%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Afirst%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Afirst%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Afirst%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Afirst%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Afirst%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Afirst%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Afirst%2Dchild%3Eth%7Bborder%2Dbottom%3A0%7D%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Eth%7Bborder%2Dbottom%3A0%7D%2Epanel%3E%2Etable%2Dresponsive%7Bmargin%2Dbottom%3A0%3Bborder%3A0%7D%2Epanel%2Dgroup%7Bmargin%2Dbottom%3A20px%7D%2Epanel%2Dgroup%20%2Epanel%7Bmargin%2Dbottom%3A0%3Bborder%2Dradius%3A4px%7D%2Epanel%2Dgroup%20%2Epanel%2B%2Epanel%7Bmargin%2Dtop%3A5px%7D%2Epanel%2Dgroup%20%2Epanel%2Dheading%7Bborder%2Dbottom%3A0%7D%2Epanel%2Dgroup%20%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%2C%2Epanel%2Dgroup%20%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%3A1px%20solid%20%23ddd%7D%2Epanel%2Dgroup%20%2Epanel%2Dfooter%7Bborder%2Dtop%3A0%7D%2Epanel%2Dgroup%20%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%20%2Epanel%2Dbody%7Bborder%2Dbottom%3A1px%20solid%20%23ddd%7D%2Epanel%2Ddefault%7Bborder%2Dcolor%3A%23ddd%7D%2Epanel%2Ddefault%3E%2Epanel%2Dheading%7Bcolor%3A%23333%3Bbackground%2Dcolor%3A%23f5f5f5%3Bborder%2Dcolor%3A%23ddd%7D%2Epanel%2Ddefault%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3A%23ddd%7D%2Epanel%2Ddefault%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%23f5f5f5%3Bbackground%2Dcolor%3A%23333%7D%2Epanel%2Ddefault%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3A%23ddd%7D%2Epanel%2Dprimary%7Bborder%2Dcolor%3A%23337ab7%7D%2Epanel%2Dprimary%3E%2Epanel%2Dheading%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23337ab7%3Bborder%2Dcolor%3A%23337ab7%7D%2Epanel%2Dprimary%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3A%23337ab7%7D%2Epanel%2Dprimary%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%23337ab7%3Bbackground%2Dcolor%3A%23fff%7D%2Epanel%2Dprimary%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3A%23337ab7%7D%2Epanel%2Dsuccess%7Bborder%2Dcolor%3A%23d6e9c6%7D%2Epanel%2Dsuccess%3E%2Epanel%2Dheading%7Bcolor%3A%233c763d%3Bbackground%2Dcolor%3A%23dff0d8%3Bborder%2Dcolor%3A%23d6e9c6%7D%2Epanel%2Dsuccess%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3A%23d6e9c6%7D%2Epanel%2Dsuccess%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%23dff0d8%3Bbackground%2Dcolor%3A%233c763d%7D%2Epanel%2Dsuccess%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3A%23d6e9c6%7D%2Epanel%2Dinfo%7Bborder%2Dcolor%3A%23bce8f1%7D%2Epanel%2Dinfo%3E%2Epanel%2Dheading%7Bcolor%3A%2331708f%3Bbackground%2Dcolor%3A%23d9edf7%3Bborder%2Dcolor%3A%23bce8f1%7D%2Epanel%2Dinfo%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3A%23bce8f1%7D%2Epanel%2Dinfo%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%23d9edf7%3Bbackground%2Dcolor%3A%2331708f%7D%2Epanel%2Dinfo%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3A%23bce8f1%7D%2Epanel%2Dwarning%7Bborder%2Dcolor%3A%23faebcc%7D%2Epanel%2Dwarning%3E%2Epanel%2Dheading%7Bcolor%3A%238a6d3b%3Bbackground%2Dcolor%3A%23fcf8e3%3Bborder%2Dcolor%3A%23faebcc%7D%2Epanel%2Dwarning%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3A%23faebcc%7D%2Epanel%2Dwarning%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%23fcf8e3%3Bbackground%2Dcolor%3A%238a6d3b%7D%2Epanel%2Dwarning%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3A%23faebcc%7D%2Epanel%2Ddanger%7Bborder%2Dcolor%3A%23ebccd1%7D%2Epanel%2Ddanger%3E%2Epanel%2Dheading%7Bcolor%3A%23a94442%3Bbackground%2Dcolor%3A%23f2dede%3Bborder%2Dcolor%3A%23ebccd1%7D%2Epanel%2Ddanger%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3A%23ebccd1%7D%2Epanel%2Ddanger%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%23f2dede%3Bbackground%2Dcolor%3A%23a94442%7D%2Epanel%2Ddanger%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3A%23ebccd1%7D%2Eembed%2Dresponsive%7Bposition%3Arelative%3Bdisplay%3Ablock%3Bheight%3A0%3Bpadding%3A0%3Boverflow%3Ahidden%7D%2Eembed%2Dresponsive%20%2Eembed%2Dresponsive%2Ditem%2C%2Eembed%2Dresponsive%20embed%2C%2Eembed%2Dresponsive%20iframe%2C%2Eembed%2Dresponsive%20object%2C%2Eembed%2Dresponsive%20video%7Bposition%3Aabsolute%3Btop%3A0%3Bbottom%3A0%3Bleft%3A0%3Bwidth%3A100%25%3Bheight%3A100%25%3Bborder%3A0%7D%2Eembed%2Dresponsive%2D16by9%7Bpadding%2Dbottom%3A56%2E25%25%7D%2Eembed%2Dresponsive%2D4by3%7Bpadding%2Dbottom%3A75%25%7D%2Ewell%7Bmin%2Dheight%3A20px%3Bpadding%3A19px%3Bmargin%2Dbottom%3A20px%3Bbackground%2Dcolor%3A%23f5f5f5%3Bborder%3A1px%20solid%20%23e3e3e3%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E05%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E05%29%7D%2Ewell%20blockquote%7Bborder%2Dcolor%3A%23ddd%3Bborder%2Dcolor%3Argba%280%2C0%2C0%2C%2E15%29%7D%2Ewell%2Dlg%7Bpadding%3A24px%3Bborder%2Dradius%3A6px%7D%2Ewell%2Dsm%7Bpadding%3A9px%3Bborder%2Dradius%3A3px%7D%2Eclose%7Bfloat%3Aright%3Bfont%2Dsize%3A21px%3Bfont%2Dweight%3A700%3Bline%2Dheight%3A1%3Bcolor%3A%23000%3Btext%2Dshadow%3A0%201px%200%20%23fff%3Bfilter%3Aalpha%28opacity%3D20%29%3Bopacity%3A%2E2%7D%2Eclose%3Afocus%2C%2Eclose%3Ahover%7Bcolor%3A%23000%3Btext%2Ddecoration%3Anone%3Bcursor%3Apointer%3Bfilter%3Aalpha%28opacity%3D50%29%3Bopacity%3A%2E5%7Dbutton%2Eclose%7B%2Dwebkit%2Dappearance%3Anone%3Bpadding%3A0%3Bcursor%3Apointer%3Bbackground%3A0%200%3Bborder%3A0%7D%2Emodal%2Dopen%7Boverflow%3Ahidden%7D%2Emodal%7Bposition%3Afixed%3Btop%3A0%3Bright%3A0%3Bbottom%3A0%3Bleft%3A0%3Bz%2Dindex%3A1050%3Bdisplay%3Anone%3Boverflow%3Ahidden%3B%2Dwebkit%2Doverflow%2Dscrolling%3Atouch%3Boutline%3A0%7D%2Emodal%2Efade%20%2Emodal%2Ddialog%7B%2Dwebkit%2Dtransition%3A%2Dwebkit%2Dtransform%20%2E3s%20ease%2Dout%3B%2Do%2Dtransition%3A%2Do%2Dtransform%20%2E3s%20ease%2Dout%3Btransition%3Atransform%20%2E3s%20ease%2Dout%3B%2Dwebkit%2Dtransform%3Atranslate%280%2C%2D25%25%29%3B%2Dms%2Dtransform%3Atranslate%280%2C%2D25%25%29%3B%2Do%2Dtransform%3Atranslate%280%2C%2D25%25%29%3Btransform%3Atranslate%280%2C%2D25%25%29%7D%2Emodal%2Ein%20%2Emodal%2Ddialog%7B%2Dwebkit%2Dtransform%3Atranslate%280%2C0%29%3B%2Dms%2Dtransform%3Atranslate%280%2C0%29%3B%2Do%2Dtransform%3Atranslate%280%2C0%29%3Btransform%3Atranslate%280%2C0%29%7D%2Emodal%2Dopen%20%2Emodal%7Boverflow%2Dx%3Ahidden%3Boverflow%2Dy%3Aauto%7D%2Emodal%2Ddialog%7Bposition%3Arelative%3Bwidth%3Aauto%3Bmargin%3A10px%7D%2Emodal%2Dcontent%7Bposition%3Arelative%3Bbackground%2Dcolor%3A%23fff%3B%2Dwebkit%2Dbackground%2Dclip%3Apadding%2Dbox%3Bbackground%2Dclip%3Apadding%2Dbox%3Bborder%3A1px%20solid%20%23999%3Bborder%3A1px%20solid%20rgba%280%2C0%2C0%2C%2E2%29%3Bborder%2Dradius%3A6px%3Boutline%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3A0%203px%209px%20rgba%280%2C0%2C0%2C%2E5%29%3Bbox%2Dshadow%3A0%203px%209px%20rgba%280%2C0%2C0%2C%2E5%29%7D%2Emodal%2Dbackdrop%7Bposition%3Afixed%3Btop%3A0%3Bright%3A0%3Bbottom%3A0%3Bleft%3A0%3Bz%2Dindex%3A1040%3Bbackground%2Dcolor%3A%23000%7D%2Emodal%2Dbackdrop%2Efade%7Bfilter%3Aalpha%28opacity%3D0%29%3Bopacity%3A0%7D%2Emodal%2Dbackdrop%2Ein%7Bfilter%3Aalpha%28opacity%3D50%29%3Bopacity%3A%2E5%7D%2Emodal%2Dheader%7Bmin%2Dheight%3A16%2E43px%3Bpadding%3A15px%3Bborder%2Dbottom%3A1px%20solid%20%23e5e5e5%7D%2Emodal%2Dheader%20%2Eclose%7Bmargin%2Dtop%3A%2D2px%7D%2Emodal%2Dtitle%7Bmargin%3A0%3Bline%2Dheight%3A1%2E42857143%7D%2Emodal%2Dbody%7Bposition%3Arelative%3Bpadding%3A15px%7D%2Emodal%2Dfooter%7Bpadding%3A15px%3Btext%2Dalign%3Aright%3Bborder%2Dtop%3A1px%20solid%20%23e5e5e5%7D%2Emodal%2Dfooter%20%2Ebtn%2B%2Ebtn%7Bmargin%2Dbottom%3A0%3Bmargin%2Dleft%3A5px%7D%2Emodal%2Dfooter%20%2Ebtn%2Dgroup%20%2Ebtn%2B%2Ebtn%7Bmargin%2Dleft%3A%2D1px%7D%2Emodal%2Dfooter%20%2Ebtn%2Dblock%2B%2Ebtn%2Dblock%7Bmargin%2Dleft%3A0%7D%2Emodal%2Dscrollbar%2Dmeasure%7Bposition%3Aabsolute%3Btop%3A%2D9999px%3Bwidth%3A50px%3Bheight%3A50px%3Boverflow%3Ascroll%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Emodal%2Ddialog%7Bwidth%3A600px%3Bmargin%3A30px%20auto%7D%2Emodal%2Dcontent%7B%2Dwebkit%2Dbox%2Dshadow%3A0%205px%2015px%20rgba%280%2C0%2C0%2C%2E5%29%3Bbox%2Dshadow%3A0%205px%2015px%20rgba%280%2C0%2C0%2C%2E5%29%7D%2Emodal%2Dsm%7Bwidth%3A300px%7D%7D%40media%20%28min%2Dwidth%3A992px%29%7B%2Emodal%2Dlg%7Bwidth%3A900px%7D%7D%2Etooltip%7Bposition%3Aabsolute%3Bz%2Dindex%3A1070%3Bdisplay%3Ablock%3Bfont%2Dfamily%3A%22Helvetica%20Neue%22%2CHelvetica%2CArial%2Csans%2Dserif%3Bfont%2Dsize%3A12px%3Bfont%2Dstyle%3Anormal%3Bfont%2Dweight%3A400%3Bline%2Dheight%3A1%2E42857143%3Btext%2Dalign%3Aleft%3Btext%2Dalign%3Astart%3Btext%2Ddecoration%3Anone%3Btext%2Dshadow%3Anone%3Btext%2Dtransform%3Anone%3Bletter%2Dspacing%3Anormal%3Bword%2Dbreak%3Anormal%3Bword%2Dspacing%3Anormal%3Bword%2Dwrap%3Anormal%3Bwhite%2Dspace%3Anormal%3Bfilter%3Aalpha%28opacity%3D0%29%3Bopacity%3A0%3Bline%2Dbreak%3Aauto%7D%2Etooltip%2Ein%7Bfilter%3Aalpha%28opacity%3D90%29%3Bopacity%3A%2E9%7D%2Etooltip%2Etop%7Bpadding%3A5px%200%3Bmargin%2Dtop%3A%2D3px%7D%2Etooltip%2Eright%7Bpadding%3A0%205px%3Bmargin%2Dleft%3A3px%7D%2Etooltip%2Ebottom%7Bpadding%3A5px%200%3Bmargin%2Dtop%3A3px%7D%2Etooltip%2Eleft%7Bpadding%3A0%205px%3Bmargin%2Dleft%3A%2D3px%7D%2Etooltip%2Dinner%7Bmax%2Dwidth%3A200px%3Bpadding%3A3px%208px%3Bcolor%3A%23fff%3Btext%2Dalign%3Acenter%3Bbackground%2Dcolor%3A%23000%3Bborder%2Dradius%3A4px%7D%2Etooltip%2Darrow%7Bposition%3Aabsolute%3Bwidth%3A0%3Bheight%3A0%3Bborder%2Dcolor%3Atransparent%3Bborder%2Dstyle%3Asolid%7D%2Etooltip%2Etop%20%2Etooltip%2Darrow%7Bbottom%3A0%3Bleft%3A50%25%3Bmargin%2Dleft%3A%2D5px%3Bborder%2Dwidth%3A5px%205px%200%3Bborder%2Dtop%2Dcolor%3A%23000%7D%2Etooltip%2Etop%2Dleft%20%2Etooltip%2Darrow%7Bright%3A5px%3Bbottom%3A0%3Bmargin%2Dbottom%3A%2D5px%3Bborder%2Dwidth%3A5px%205px%200%3Bborder%2Dtop%2Dcolor%3A%23000%7D%2Etooltip%2Etop%2Dright%20%2Etooltip%2Darrow%7Bbottom%3A0%3Bleft%3A5px%3Bmargin%2Dbottom%3A%2D5px%3Bborder%2Dwidth%3A5px%205px%200%3Bborder%2Dtop%2Dcolor%3A%23000%7D%2Etooltip%2Eright%20%2Etooltip%2Darrow%7Btop%3A50%25%3Bleft%3A0%3Bmargin%2Dtop%3A%2D5px%3Bborder%2Dwidth%3A5px%205px%205px%200%3Bborder%2Dright%2Dcolor%3A%23000%7D%2Etooltip%2Eleft%20%2Etooltip%2Darrow%7Btop%3A50%25%3Bright%3A0%3Bmargin%2Dtop%3A%2D5px%3Bborder%2Dwidth%3A5px%200%205px%205px%3Bborder%2Dleft%2Dcolor%3A%23000%7D%2Etooltip%2Ebottom%20%2Etooltip%2Darrow%7Btop%3A0%3Bleft%3A50%25%3Bmargin%2Dleft%3A%2D5px%3Bborder%2Dwidth%3A0%205px%205px%3Bborder%2Dbottom%2Dcolor%3A%23000%7D%2Etooltip%2Ebottom%2Dleft%20%2Etooltip%2Darrow%7Btop%3A0%3Bright%3A5px%3Bmargin%2Dtop%3A%2D5px%3Bborder%2Dwidth%3A0%205px%205px%3Bborder%2Dbottom%2Dcolor%3A%23000%7D%2Etooltip%2Ebottom%2Dright%20%2Etooltip%2Darrow%7Btop%3A0%3Bleft%3A5px%3Bmargin%2Dtop%3A%2D5px%3Bborder%2Dwidth%3A0%205px%205px%3Bborder%2Dbottom%2Dcolor%3A%23000%7D%2Epopover%7Bposition%3Aabsolute%3Btop%3A0%3Bleft%3A0%3Bz%2Dindex%3A1060%3Bdisplay%3Anone%3Bmax%2Dwidth%3A276px%3Bpadding%3A1px%3Bfont%2Dfamily%3A%22Helvetica%20Neue%22%2CHelvetica%2CArial%2Csans%2Dserif%3Bfont%2Dsize%3A14px%3Bfont%2Dstyle%3Anormal%3Bfont%2Dweight%3A400%3Bline%2Dheight%3A1%2E42857143%3Btext%2Dalign%3Aleft%3Btext%2Dalign%3Astart%3Btext%2Ddecoration%3Anone%3Btext%2Dshadow%3Anone%3Btext%2Dtransform%3Anone%3Bletter%2Dspacing%3Anormal%3Bword%2Dbreak%3Anormal%3Bword%2Dspacing%3Anormal%3Bword%2Dwrap%3Anormal%3Bwhite%2Dspace%3Anormal%3Bbackground%2Dcolor%3A%23fff%3B%2Dwebkit%2Dbackground%2Dclip%3Apadding%2Dbox%3Bbackground%2Dclip%3Apadding%2Dbox%3Bborder%3A1px%20solid%20%23ccc%3Bborder%3A1px%20solid%20rgba%280%2C0%2C0%2C%2E2%29%3Bborder%2Dradius%3A6px%3B%2Dwebkit%2Dbox%2Dshadow%3A0%205px%2010px%20rgba%280%2C0%2C0%2C%2E2%29%3Bbox%2Dshadow%3A0%205px%2010px%20rgba%280%2C0%2C0%2C%2E2%29%3Bline%2Dbreak%3Aauto%7D%2Epopover%2Etop%7Bmargin%2Dtop%3A%2D10px%7D%2Epopover%2Eright%7Bmargin%2Dleft%3A10px%7D%2Epopover%2Ebottom%7Bmargin%2Dtop%3A10px%7D%2Epopover%2Eleft%7Bmargin%2Dleft%3A%2D10px%7D%2Epopover%2Dtitle%7Bpadding%3A8px%2014px%3Bmargin%3A0%3Bfont%2Dsize%3A14px%3Bbackground%2Dcolor%3A%23f7f7f7%3Bborder%2Dbottom%3A1px%20solid%20%23ebebeb%3Bborder%2Dradius%3A5px%205px%200%200%7D%2Epopover%2Dcontent%7Bpadding%3A9px%2014px%7D%2Epopover%3E%2Earrow%2C%2Epopover%3E%2Earrow%3Aafter%7Bposition%3Aabsolute%3Bdisplay%3Ablock%3Bwidth%3A0%3Bheight%3A0%3Bborder%2Dcolor%3Atransparent%3Bborder%2Dstyle%3Asolid%7D%2Epopover%3E%2Earrow%7Bborder%2Dwidth%3A11px%7D%2Epopover%3E%2Earrow%3Aafter%7Bcontent%3A%22%22%3Bborder%2Dwidth%3A10px%7D%2Epopover%2Etop%3E%2Earrow%7Bbottom%3A%2D11px%3Bleft%3A50%25%3Bmargin%2Dleft%3A%2D11px%3Bborder%2Dtop%2Dcolor%3A%23999%3Bborder%2Dtop%2Dcolor%3Argba%280%2C0%2C0%2C%2E25%29%3Bborder%2Dbottom%2Dwidth%3A0%7D%2Epopover%2Etop%3E%2Earrow%3Aafter%7Bbottom%3A1px%3Bmargin%2Dleft%3A%2D10px%3Bcontent%3A%22%20%22%3Bborder%2Dtop%2Dcolor%3A%23fff%3Bborder%2Dbottom%2Dwidth%3A0%7D%2Epopover%2Eright%3E%2Earrow%7Btop%3A50%25%3Bleft%3A%2D11px%3Bmargin%2Dtop%3A%2D11px%3Bborder%2Dright%2Dcolor%3A%23999%3Bborder%2Dright%2Dcolor%3Argba%280%2C0%2C0%2C%2E25%29%3Bborder%2Dleft%2Dwidth%3A0%7D%2Epopover%2Eright%3E%2Earrow%3Aafter%7Bbottom%3A%2D10px%3Bleft%3A1px%3Bcontent%3A%22%20%22%3Bborder%2Dright%2Dcolor%3A%23fff%3Bborder%2Dleft%2Dwidth%3A0%7D%2Epopover%2Ebottom%3E%2Earrow%7Btop%3A%2D11px%3Bleft%3A50%25%3Bmargin%2Dleft%3A%2D11px%3Bborder%2Dtop%2Dwidth%3A0%3Bborder%2Dbottom%2Dcolor%3A%23999%3Bborder%2Dbottom%2Dcolor%3Argba%280%2C0%2C0%2C%2E25%29%7D%2Epopover%2Ebottom%3E%2Earrow%3Aafter%7Btop%3A1px%3Bmargin%2Dleft%3A%2D10px%3Bcontent%3A%22%20%22%3Bborder%2Dtop%2Dwidth%3A0%3Bborder%2Dbottom%2Dcolor%3A%23fff%7D%2Epopover%2Eleft%3E%2Earrow%7Btop%3A50%25%3Bright%3A%2D11px%3Bmargin%2Dtop%3A%2D11px%3Bborder%2Dright%2Dwidth%3A0%3Bborder%2Dleft%2Dcolor%3A%23999%3Bborder%2Dleft%2Dcolor%3Argba%280%2C0%2C0%2C%2E25%29%7D%2Epopover%2Eleft%3E%2Earrow%3Aafter%7Bright%3A1px%3Bbottom%3A%2D10px%3Bcontent%3A%22%20%22%3Bborder%2Dright%2Dwidth%3A0%3Bborder%2Dleft%2Dcolor%3A%23fff%7D%2Ecarousel%7Bposition%3Arelative%7D%2Ecarousel%2Dinner%7Bposition%3Arelative%3Bwidth%3A100%25%3Boverflow%3Ahidden%7D%2Ecarousel%2Dinner%3E%2Eitem%7Bposition%3Arelative%3Bdisplay%3Anone%3B%2Dwebkit%2Dtransition%3A%2E6s%20ease%2Din%2Dout%20left%3B%2Do%2Dtransition%3A%2E6s%20ease%2Din%2Dout%20left%3Btransition%3A%2E6s%20ease%2Din%2Dout%20left%7D%2Ecarousel%2Dinner%3E%2Eitem%3Ea%3Eimg%2C%2Ecarousel%2Dinner%3E%2Eitem%3Eimg%7Bline%2Dheight%3A1%7D%40media%20all%20and%20%28transform%2D3d%29%2C%28%2Dwebkit%2Dtransform%2D3d%29%7B%2Ecarousel%2Dinner%3E%2Eitem%7B%2Dwebkit%2Dtransition%3A%2Dwebkit%2Dtransform%20%2E6s%20ease%2Din%2Dout%3B%2Do%2Dtransition%3A%2Do%2Dtransform%20%2E6s%20ease%2Din%2Dout%3Btransition%3Atransform%20%2E6s%20ease%2Din%2Dout%3B%2Dwebkit%2Dbackface%2Dvisibility%3Ahidden%3Bbackface%2Dvisibility%3Ahidden%3B%2Dwebkit%2Dperspective%3A1000px%3Bperspective%3A1000px%7D%2Ecarousel%2Dinner%3E%2Eitem%2Eactive%2Eright%2C%2Ecarousel%2Dinner%3E%2Eitem%2Enext%7Bleft%3A0%3B%2Dwebkit%2Dtransform%3Atranslate3d%28100%25%2C0%2C0%29%3Btransform%3Atranslate3d%28100%25%2C0%2C0%29%7D%2Ecarousel%2Dinner%3E%2Eitem%2Eactive%2Eleft%2C%2Ecarousel%2Dinner%3E%2Eitem%2Eprev%7Bleft%3A0%3B%2Dwebkit%2Dtransform%3Atranslate3d%28%2D100%25%2C0%2C0%29%3Btransform%3Atranslate3d%28%2D100%25%2C0%2C0%29%7D%2Ecarousel%2Dinner%3E%2Eitem%2Eactive%2C%2Ecarousel%2Dinner%3E%2Eitem%2Enext%2Eleft%2C%2Ecarousel%2Dinner%3E%2Eitem%2Eprev%2Eright%7Bleft%3A0%3B%2Dwebkit%2Dtransform%3Atranslate3d%280%2C0%2C0%29%3Btransform%3Atranslate3d%280%2C0%2C0%29%7D%7D%2Ecarousel%2Dinner%3E%2Eactive%2C%2Ecarousel%2Dinner%3E%2Enext%2C%2Ecarousel%2Dinner%3E%2Eprev%7Bdisplay%3Ablock%7D%2Ecarousel%2Dinner%3E%2Eactive%7Bleft%3A0%7D%2Ecarousel%2Dinner%3E%2Enext%2C%2Ecarousel%2Dinner%3E%2Eprev%7Bposition%3Aabsolute%3Btop%3A0%3Bwidth%3A100%25%7D%2Ecarousel%2Dinner%3E%2Enext%7Bleft%3A100%25%7D%2Ecarousel%2Dinner%3E%2Eprev%7Bleft%3A%2D100%25%7D%2Ecarousel%2Dinner%3E%2Enext%2Eleft%2C%2Ecarousel%2Dinner%3E%2Eprev%2Eright%7Bleft%3A0%7D%2Ecarousel%2Dinner%3E%2Eactive%2Eleft%7Bleft%3A%2D100%25%7D%2Ecarousel%2Dinner%3E%2Eactive%2Eright%7Bleft%3A100%25%7D%2Ecarousel%2Dcontrol%7Bposition%3Aabsolute%3Btop%3A0%3Bbottom%3A0%3Bleft%3A0%3Bwidth%3A15%25%3Bfont%2Dsize%3A20px%3Bcolor%3A%23fff%3Btext%2Dalign%3Acenter%3Btext%2Dshadow%3A0%201px%202px%20rgba%280%2C0%2C0%2C%2E6%29%3Bfilter%3Aalpha%28opacity%3D50%29%3Bopacity%3A%2E5%7D%2Ecarousel%2Dcontrol%2Eleft%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28left%2Crgba%280%2C0%2C0%2C%2E5%29%200%2Crgba%280%2C0%2C0%2C%2E0001%29%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28left%2Crgba%280%2C0%2C0%2C%2E5%29%200%2Crgba%280%2C0%2C0%2C%2E0001%29%20100%25%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2Cleft%20top%2Cright%20top%2Cfrom%28rgba%280%2C0%2C0%2C%2E5%29%29%2Cto%28rgba%280%2C0%2C0%2C%2E0001%29%29%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20right%2Crgba%280%2C0%2C0%2C%2E5%29%200%2Crgba%280%2C0%2C0%2C%2E0001%29%20100%25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%2380000000%27%2C%20endColorstr%3D%27%2300000000%27%2C%20GradientType%3D1%29%3Bbackground%2Drepeat%3Arepeat%2Dx%7D%2Ecarousel%2Dcontrol%2Eright%7Bright%3A0%3Bleft%3Aauto%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28left%2Crgba%280%2C0%2C0%2C%2E0001%29%200%2Crgba%280%2C0%2C0%2C%2E5%29%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28left%2Crgba%280%2C0%2C0%2C%2E0001%29%200%2Crgba%280%2C0%2C0%2C%2E5%29%20100%25%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2Cleft%20top%2Cright%20top%2Cfrom%28rgba%280%2C0%2C0%2C%2E0001%29%29%2Cto%28rgba%280%2C0%2C0%2C%2E5%29%29%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20right%2Crgba%280%2C0%2C0%2C%2E0001%29%200%2Crgba%280%2C0%2C0%2C%2E5%29%20100%25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%2300000000%27%2C%20endColorstr%3D%27%2380000000%27%2C%20GradientType%3D1%29%3Bbackground%2Drepeat%3Arepeat%2Dx%7D%2Ecarousel%2Dcontrol%3Afocus%2C%2Ecarousel%2Dcontrol%3Ahover%7Bcolor%3A%23fff%3Btext%2Ddecoration%3Anone%3Bfilter%3Aalpha%28opacity%3D90%29%3Boutline%3A0%3Bopacity%3A%2E9%7D%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dleft%2C%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dright%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%7Bposition%3Aabsolute%3Btop%3A50%25%3Bz%2Dindex%3A5%3Bdisplay%3Ainline%2Dblock%3Bmargin%2Dtop%3A%2D10px%7D%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dleft%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%7Bleft%3A50%25%3Bmargin%2Dleft%3A%2D10px%7D%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dright%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%7Bright%3A50%25%3Bmargin%2Dright%3A%2D10px%7D%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%7Bwidth%3A20px%3Bheight%3A20px%3Bfont%2Dfamily%3Aserif%3Bline%2Dheight%3A1%7D%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%3Abefore%7Bcontent%3A%27%5C2039%27%7D%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%3Abefore%7Bcontent%3A%27%5C203a%27%7D%2Ecarousel%2Dindicators%7Bposition%3Aabsolute%3Bbottom%3A10px%3Bleft%3A50%25%3Bz%2Dindex%3A15%3Bwidth%3A60%25%3Bpadding%2Dleft%3A0%3Bmargin%2Dleft%3A%2D30%25%3Btext%2Dalign%3Acenter%3Blist%2Dstyle%3Anone%7D%2Ecarousel%2Dindicators%20li%7Bdisplay%3Ainline%2Dblock%3Bwidth%3A10px%3Bheight%3A10px%3Bmargin%3A1px%3Btext%2Dindent%3A%2D999px%3Bcursor%3Apointer%3Bbackground%2Dcolor%3A%23000%5C9%3Bbackground%2Dcolor%3Argba%280%2C0%2C0%2C0%29%3Bborder%3A1px%20solid%20%23fff%3Bborder%2Dradius%3A10px%7D%2Ecarousel%2Dindicators%20%2Eactive%7Bwidth%3A12px%3Bheight%3A12px%3Bmargin%3A0%3Bbackground%2Dcolor%3A%23fff%7D%2Ecarousel%2Dcaption%7Bposition%3Aabsolute%3Bright%3A15%25%3Bbottom%3A20px%3Bleft%3A15%25%3Bz%2Dindex%3A10%3Bpadding%2Dtop%3A20px%3Bpadding%2Dbottom%3A20px%3Bcolor%3A%23fff%3Btext%2Dalign%3Acenter%3Btext%2Dshadow%3A0%201px%202px%20rgba%280%2C0%2C0%2C%2E6%29%7D%2Ecarousel%2Dcaption%20%2Ebtn%7Btext%2Dshadow%3Anone%7D%40media%20screen%20and%20%28min%2Dwidth%3A768px%29%7B%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dleft%2C%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dright%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%7Bwidth%3A30px%3Bheight%3A30px%3Bmargin%2Dtop%3A%2D15px%3Bfont%2Dsize%3A30px%7D%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dleft%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%7Bmargin%2Dleft%3A%2D15px%7D%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dright%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%7Bmargin%2Dright%3A%2D15px%7D%2Ecarousel%2Dcaption%7Bright%3A20%25%3Bleft%3A20%25%3Bpadding%2Dbottom%3A30px%7D%2Ecarousel%2Dindicators%7Bbottom%3A20px%7D%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Aafter%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Abefore%2C%2Ebtn%2Dtoolbar%3Aafter%2C%2Ebtn%2Dtoolbar%3Abefore%2C%2Eclearfix%3Aafter%2C%2Eclearfix%3Abefore%2C%2Econtainer%2Dfluid%3Aafter%2C%2Econtainer%2Dfluid%3Abefore%2C%2Econtainer%3Aafter%2C%2Econtainer%3Abefore%2C%2Edl%2Dhorizontal%20dd%3Aafter%2C%2Edl%2Dhorizontal%20dd%3Abefore%2C%2Eform%2Dhorizontal%20%2Eform%2Dgroup%3Aafter%2C%2Eform%2Dhorizontal%20%2Eform%2Dgroup%3Abefore%2C%2Emodal%2Dfooter%3Aafter%2C%2Emodal%2Dfooter%3Abefore%2C%2Enav%3Aafter%2C%2Enav%3Abefore%2C%2Enavbar%2Dcollapse%3Aafter%2C%2Enavbar%2Dcollapse%3Abefore%2C%2Enavbar%2Dheader%3Aafter%2C%2Enavbar%2Dheader%3Abefore%2C%2Enavbar%3Aafter%2C%2Enavbar%3Abefore%2C%2Epager%3Aafter%2C%2Epager%3Abefore%2C%2Epanel%2Dbody%3Aafter%2C%2Epanel%2Dbody%3Abefore%2C%2Erow%3Aafter%2C%2Erow%3Abefore%7Bdisplay%3Atable%3Bcontent%3A%22%20%22%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Aafter%2C%2Ebtn%2Dtoolbar%3Aafter%2C%2Eclearfix%3Aafter%2C%2Econtainer%2Dfluid%3Aafter%2C%2Econtainer%3Aafter%2C%2Edl%2Dhorizontal%20dd%3Aafter%2C%2Eform%2Dhorizontal%20%2Eform%2Dgroup%3Aafter%2C%2Emodal%2Dfooter%3Aafter%2C%2Enav%3Aafter%2C%2Enavbar%2Dcollapse%3Aafter%2C%2Enavbar%2Dheader%3Aafter%2C%2Enavbar%3Aafter%2C%2Epager%3Aafter%2C%2Epanel%2Dbody%3Aafter%2C%2Erow%3Aafter%7Bclear%3Aboth%7D%2Ecenter%2Dblock%7Bdisplay%3Ablock%3Bmargin%2Dright%3Aauto%3Bmargin%2Dleft%3Aauto%7D%2Epull%2Dright%7Bfloat%3Aright%21important%7D%2Epull%2Dleft%7Bfloat%3Aleft%21important%7D%2Ehide%7Bdisplay%3Anone%21important%7D%2Eshow%7Bdisplay%3Ablock%21important%7D%2Einvisible%7Bvisibility%3Ahidden%7D%2Etext%2Dhide%7Bfont%3A0%2F0%20a%3Bcolor%3Atransparent%3Btext%2Dshadow%3Anone%3Bbackground%2Dcolor%3Atransparent%3Bborder%3A0%7D%2Ehidden%7Bdisplay%3Anone%21important%7D%2Eaffix%7Bposition%3Afixed%7D%40%2Dms%2Dviewport%7Bwidth%3Adevice%2Dwidth%7D%2Evisible%2Dlg%2C%2Evisible%2Dmd%2C%2Evisible%2Dsm%2C%2Evisible%2Dxs%7Bdisplay%3Anone%21important%7D%2Evisible%2Dlg%2Dblock%2C%2Evisible%2Dlg%2Dinline%2C%2Evisible%2Dlg%2Dinline%2Dblock%2C%2Evisible%2Dmd%2Dblock%2C%2Evisible%2Dmd%2Dinline%2C%2Evisible%2Dmd%2Dinline%2Dblock%2C%2Evisible%2Dsm%2Dblock%2C%2Evisible%2Dsm%2Dinline%2C%2Evisible%2Dsm%2Dinline%2Dblock%2C%2Evisible%2Dxs%2Dblock%2C%2Evisible%2Dxs%2Dinline%2C%2Evisible%2Dxs%2Dinline%2Dblock%7Bdisplay%3Anone%21important%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Evisible%2Dxs%7Bdisplay%3Ablock%21important%7Dtable%2Evisible%2Dxs%7Bdisplay%3Atable%21important%7Dtr%2Evisible%2Dxs%7Bdisplay%3Atable%2Drow%21important%7Dtd%2Evisible%2Dxs%2Cth%2Evisible%2Dxs%7Bdisplay%3Atable%2Dcell%21important%7D%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Evisible%2Dxs%2Dblock%7Bdisplay%3Ablock%21important%7D%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Evisible%2Dxs%2Dinline%7Bdisplay%3Ainline%21important%7D%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Evisible%2Dxs%2Dinline%2Dblock%7Bdisplay%3Ainline%2Dblock%21important%7D%7D%40media%20%28min%2Dwidth%3A768px%29%20and%20%28max%2Dwidth%3A991px%29%7B%2Evisible%2Dsm%7Bdisplay%3Ablock%21important%7Dtable%2Evisible%2Dsm%7Bdisplay%3Atable%21important%7Dtr%2Evisible%2Dsm%7Bdisplay%3Atable%2Drow%21important%7Dtd%2Evisible%2Dsm%2Cth%2Evisible%2Dsm%7Bdisplay%3Atable%2Dcell%21important%7D%7D%40media%20%28min%2Dwidth%3A768px%29%20and%20%28max%2Dwidth%3A991px%29%7B%2Evisible%2Dsm%2Dblock%7Bdisplay%3Ablock%21important%7D%7D%40media%20%28min%2Dwidth%3A768px%29%20and%20%28max%2Dwidth%3A991px%29%7B%2Evisible%2Dsm%2Dinline%7Bdisplay%3Ainline%21important%7D%7D%40media%20%28min%2Dwidth%3A768px%29%20and%20%28max%2Dwidth%3A991px%29%7B%2Evisible%2Dsm%2Dinline%2Dblock%7Bdisplay%3Ainline%2Dblock%21important%7D%7D%40media%20%28min%2Dwidth%3A992px%29%20and%20%28max%2Dwidth%3A1199px%29%7B%2Evisible%2Dmd%7Bdisplay%3Ablock%21important%7Dtable%2Evisible%2Dmd%7Bdisplay%3Atable%21important%7Dtr%2Evisible%2Dmd%7Bdisplay%3Atable%2Drow%21important%7Dtd%2Evisible%2Dmd%2Cth%2Evisible%2Dmd%7Bdisplay%3Atable%2Dcell%21important%7D%7D%40media%20%28min%2Dwidth%3A992px%29%20and%20%28max%2Dwidth%3A1199px%29%7B%2Evisible%2Dmd%2Dblock%7Bdisplay%3Ablock%21important%7D%7D%40media%20%28min%2Dwidth%3A992px%29%20and%20%28max%2Dwidth%3A1199px%29%7B%2Evisible%2Dmd%2Dinline%7Bdisplay%3Ainline%21important%7D%7D%40media%20%28min%2Dwidth%3A992px%29%20and%20%28max%2Dwidth%3A1199px%29%7B%2Evisible%2Dmd%2Dinline%2Dblock%7Bdisplay%3Ainline%2Dblock%21important%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Evisible%2Dlg%7Bdisplay%3Ablock%21important%7Dtable%2Evisible%2Dlg%7Bdisplay%3Atable%21important%7Dtr%2Evisible%2Dlg%7Bdisplay%3Atable%2Drow%21important%7Dtd%2Evisible%2Dlg%2Cth%2Evisible%2Dlg%7Bdisplay%3Atable%2Dcell%21important%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Evisible%2Dlg%2Dblock%7Bdisplay%3Ablock%21important%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Evisible%2Dlg%2Dinline%7Bdisplay%3Ainline%21important%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Evisible%2Dlg%2Dinline%2Dblock%7Bdisplay%3Ainline%2Dblock%21important%7D%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Ehidden%2Dxs%7Bdisplay%3Anone%21important%7D%7D%40media%20%28min%2Dwidth%3A768px%29%20and%20%28max%2Dwidth%3A991px%29%7B%2Ehidden%2Dsm%7Bdisplay%3Anone%21important%7D%7D%40media%20%28min%2Dwidth%3A992px%29%20and%20%28max%2Dwidth%3A1199px%29%7B%2Ehidden%2Dmd%7Bdisplay%3Anone%21important%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Ehidden%2Dlg%7Bdisplay%3Anone%21important%7D%7D%2Evisible%2Dprint%7Bdisplay%3Anone%21important%7D%40media%20print%7B%2Evisible%2Dprint%7Bdisplay%3Ablock%21important%7Dtable%2Evisible%2Dprint%7Bdisplay%3Atable%21important%7Dtr%2Evisible%2Dprint%7Bdisplay%3Atable%2Drow%21important%7Dtd%2Evisible%2Dprint%2Cth%2Evisible%2Dprint%7Bdisplay%3Atable%2Dcell%21important%7D%7D%2Evisible%2Dprint%2Dblock%7Bdisplay%3Anone%21important%7D%40media%20print%7B%2Evisible%2Dprint%2Dblock%7Bdisplay%3Ablock%21important%7D%7D%2Evisible%2Dprint%2Dinline%7Bdisplay%3Anone%21important%7D%40media%20print%7B%2Evisible%2Dprint%2Dinline%7Bdisplay%3Ainline%21important%7D%7D%2Evisible%2Dprint%2Dinline%2Dblock%7Bdisplay%3Anone%21important%7D%40media%20print%7B%2Evisible%2Dprint%2Dinline%2Dblock%7Bdisplay%3Ainline%2Dblock%21important%7D%7D%40media%20print%7B%2Ehidden%2Dprint%7Bdisplay%3Anone%21important%7D%7D%0A" rel="stylesheet" />
<script src="data:application/javascript;base64,LyohCiAqIEJvb3RzdHJhcCB2My4zLjUgKGh0dHA6Ly9nZXRib290c3RyYXAuY29tKQogKiBDb3B5cmlnaHQgMjAxMS0yMDE1IFR3aXR0ZXIsIEluYy4KICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlCiAqLwppZigidW5kZWZpbmVkIj09dHlwZW9mIGpRdWVyeSl0aHJvdyBuZXcgRXJyb3IoIkJvb3RzdHJhcCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5Iik7K2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0Ijt2YXIgYj1hLmZuLmpxdWVyeS5zcGxpdCgiICIpWzBdLnNwbGl0KCIuIik7aWYoYlswXTwyJiZiWzFdPDl8fDE9PWJbMF0mJjk9PWJbMV0mJmJbMl08MSl0aHJvdyBuZXcgRXJyb3IoIkJvb3RzdHJhcCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5IHZlcnNpb24gMS45LjEgb3IgaGlnaGVyIil9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYm9vdHN0cmFwIiksYj17V2Via2l0VHJhbnNpdGlvbjoid2Via2l0VHJhbnNpdGlvbkVuZCIsTW96VHJhbnNpdGlvbjoidHJhbnNpdGlvbmVuZCIsT1RyYW5zaXRpb246Im9UcmFuc2l0aW9uRW5kIG90cmFuc2l0aW9uZW5kIix0cmFuc2l0aW9uOiJ0cmFuc2l0aW9uZW5kIn07Zm9yKHZhciBjIGluIGIpaWYodm9pZCAwIT09YS5zdHlsZVtjXSlyZXR1cm57ZW5kOmJbY119O3JldHVybiExfWEuZm4uZW11bGF0ZVRyYW5zaXRpb25FbmQ9ZnVuY3Rpb24oYil7dmFyIGM9ITEsZD10aGlzO2EodGhpcykub25lKCJic1RyYW5zaXRpb25FbmQiLGZ1bmN0aW9uKCl7Yz0hMH0pO3ZhciBlPWZ1bmN0aW9uKCl7Y3x8YShkKS50cmlnZ2VyKGEuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCl9O3JldHVybiBzZXRUaW1lb3V0KGUsYiksdGhpc30sYShmdW5jdGlvbigpe2Euc3VwcG9ydC50cmFuc2l0aW9uPWIoKSxhLnN1cHBvcnQudHJhbnNpdGlvbiYmKGEuZXZlbnQuc3BlY2lhbC5ic1RyYW5zaXRpb25FbmQ9e2JpbmRUeXBlOmEuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCxkZWxlZ2F0ZVR5cGU6YS5zdXBwb3J0LnRyYW5zaXRpb24uZW5kLGhhbmRsZTpmdW5jdGlvbihiKXtyZXR1cm4gYShiLnRhcmdldCkuaXModGhpcyk/Yi5oYW5kbGVPYmouaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dm9pZCAwfX0pfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1hKHRoaXMpLGU9Yy5kYXRhKCJicy5hbGVydCIpO2V8fGMuZGF0YSgiYnMuYWxlcnQiLGU9bmV3IGQodGhpcykpLCJzdHJpbmciPT10eXBlb2YgYiYmZVtiXS5jYWxsKGMpfSl9dmFyIGM9J1tkYXRhLWRpc21pc3M9ImFsZXJ0Il0nLGQ9ZnVuY3Rpb24oYil7YShiKS5vbigiY2xpY2siLGMsdGhpcy5jbG9zZSl9O2QuVkVSU0lPTj0iMy4zLjUiLGQuVFJBTlNJVElPTl9EVVJBVElPTj0xNTAsZC5wcm90b3R5cGUuY2xvc2U9ZnVuY3Rpb24oYil7ZnVuY3Rpb24gYygpe2cuZGV0YWNoKCkudHJpZ2dlcigiY2xvc2VkLmJzLmFsZXJ0IikucmVtb3ZlKCl9dmFyIGU9YSh0aGlzKSxmPWUuYXR0cigiZGF0YS10YXJnZXQiKTtmfHwoZj1lLmF0dHIoImhyZWYiKSxmPWYmJmYucmVwbGFjZSgvLiooPz0jW15cc10qJCkvLCIiKSk7dmFyIGc9YShmKTtiJiZiLnByZXZlbnREZWZhdWx0KCksZy5sZW5ndGh8fChnPWUuY2xvc2VzdCgiLmFsZXJ0IikpLGcudHJpZ2dlcihiPWEuRXZlbnQoImNsb3NlLmJzLmFsZXJ0IikpLGIuaXNEZWZhdWx0UHJldmVudGVkKCl8fChnLnJlbW92ZUNsYXNzKCJpbiIpLGEuc3VwcG9ydC50cmFuc2l0aW9uJiZnLmhhc0NsYXNzKCJmYWRlIik/Zy5vbmUoImJzVHJhbnNpdGlvbkVuZCIsYykuZW11bGF0ZVRyYW5zaXRpb25FbmQoZC5UUkFOU0lUSU9OX0RVUkFUSU9OKTpjKCkpfTt2YXIgZT1hLmZuLmFsZXJ0O2EuZm4uYWxlcnQ9YixhLmZuLmFsZXJ0LkNvbnN0cnVjdG9yPWQsYS5mbi5hbGVydC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4uYWxlcnQ9ZSx0aGlzfSxhKGRvY3VtZW50KS5vbigiY2xpY2suYnMuYWxlcnQuZGF0YS1hcGkiLGMsZC5wcm90b3R5cGUuY2xvc2UpfShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9YSh0aGlzKSxlPWQuZGF0YSgiYnMuYnV0dG9uIiksZj0ib2JqZWN0Ij09dHlwZW9mIGImJmI7ZXx8ZC5kYXRhKCJicy5idXR0b24iLGU9bmV3IGModGhpcyxmKSksInRvZ2dsZSI9PWI/ZS50b2dnbGUoKTpiJiZlLnNldFN0YXRlKGIpfSl9dmFyIGM9ZnVuY3Rpb24oYixkKXt0aGlzLiRlbGVtZW50PWEoYiksdGhpcy5vcHRpb25zPWEuZXh0ZW5kKHt9LGMuREVGQVVMVFMsZCksdGhpcy5pc0xvYWRpbmc9ITF9O2MuVkVSU0lPTj0iMy4zLjUiLGMuREVGQVVMVFM9e2xvYWRpbmdUZXh0OiJsb2FkaW5nLi4uIn0sYy5wcm90b3R5cGUuc2V0U3RhdGU9ZnVuY3Rpb24oYil7dmFyIGM9ImRpc2FibGVkIixkPXRoaXMuJGVsZW1lbnQsZT1kLmlzKCJpbnB1dCIpPyJ2YWwiOiJodG1sIixmPWQuZGF0YSgpO2IrPSJUZXh0IixudWxsPT1mLnJlc2V0VGV4dCYmZC5kYXRhKCJyZXNldFRleHQiLGRbZV0oKSksc2V0VGltZW91dChhLnByb3h5KGZ1bmN0aW9uKCl7ZFtlXShudWxsPT1mW2JdP3RoaXMub3B0aW9uc1tiXTpmW2JdKSwibG9hZGluZ1RleHQiPT1iPyh0aGlzLmlzTG9hZGluZz0hMCxkLmFkZENsYXNzKGMpLmF0dHIoYyxjKSk6dGhpcy5pc0xvYWRpbmcmJih0aGlzLmlzTG9hZGluZz0hMSxkLnJlbW92ZUNsYXNzKGMpLnJlbW92ZUF0dHIoYykpfSx0aGlzKSwwKX0sYy5wcm90b3R5cGUudG9nZ2xlPWZ1bmN0aW9uKCl7dmFyIGE9ITAsYj10aGlzLiRlbGVtZW50LmNsb3Nlc3QoJ1tkYXRhLXRvZ2dsZT0iYnV0dG9ucyJdJyk7aWYoYi5sZW5ndGgpe3ZhciBjPXRoaXMuJGVsZW1lbnQuZmluZCgiaW5wdXQiKTsicmFkaW8iPT1jLnByb3AoInR5cGUiKT8oYy5wcm9wKCJjaGVja2VkIikmJihhPSExKSxiLmZpbmQoIi5hY3RpdmUiKS5yZW1vdmVDbGFzcygiYWN0aXZlIiksdGhpcy4kZWxlbWVudC5hZGRDbGFzcygiYWN0aXZlIikpOiJjaGVja2JveCI9PWMucHJvcCgidHlwZSIpJiYoYy5wcm9wKCJjaGVja2VkIikhPT10aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJhY3RpdmUiKSYmKGE9ITEpLHRoaXMuJGVsZW1lbnQudG9nZ2xlQ2xhc3MoImFjdGl2ZSIpKSxjLnByb3AoImNoZWNrZWQiLHRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImFjdGl2ZSIpKSxhJiZjLnRyaWdnZXIoImNoYW5nZSIpfWVsc2UgdGhpcy4kZWxlbWVudC5hdHRyKCJhcmlhLXByZXNzZWQiLCF0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJhY3RpdmUiKSksdGhpcy4kZWxlbWVudC50b2dnbGVDbGFzcygiYWN0aXZlIil9O3ZhciBkPWEuZm4uYnV0dG9uO2EuZm4uYnV0dG9uPWIsYS5mbi5idXR0b24uQ29uc3RydWN0b3I9YyxhLmZuLmJ1dHRvbi5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4uYnV0dG9uPWQsdGhpc30sYShkb2N1bWVudCkub24oImNsaWNrLmJzLmJ1dHRvbi5kYXRhLWFwaSIsJ1tkYXRhLXRvZ2dsZV49ImJ1dHRvbiJdJyxmdW5jdGlvbihjKXt2YXIgZD1hKGMudGFyZ2V0KTtkLmhhc0NsYXNzKCJidG4iKXx8KGQ9ZC5jbG9zZXN0KCIuYnRuIikpLGIuY2FsbChkLCJ0b2dnbGUiKSxhKGMudGFyZ2V0KS5pcygnaW5wdXRbdHlwZT0icmFkaW8iXScpfHxhKGMudGFyZ2V0KS5pcygnaW5wdXRbdHlwZT0iY2hlY2tib3giXScpfHxjLnByZXZlbnREZWZhdWx0KCl9KS5vbigiZm9jdXMuYnMuYnV0dG9uLmRhdGEtYXBpIGJsdXIuYnMuYnV0dG9uLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlXj0iYnV0dG9uIl0nLGZ1bmN0aW9uKGIpe2EoYi50YXJnZXQpLmNsb3Nlc3QoIi5idG4iKS50b2dnbGVDbGFzcygiZm9jdXMiLC9eZm9jdXMoaW4pPyQvLnRlc3QoYi50eXBlKSl9KX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoImJzLmNhcm91c2VsIiksZj1hLmV4dGVuZCh7fSxjLkRFRkFVTFRTLGQuZGF0YSgpLCJvYmplY3QiPT10eXBlb2YgYiYmYiksZz0ic3RyaW5nIj09dHlwZW9mIGI/YjpmLnNsaWRlO2V8fGQuZGF0YSgiYnMuY2Fyb3VzZWwiLGU9bmV3IGModGhpcyxmKSksIm51bWJlciI9PXR5cGVvZiBiP2UudG8oYik6Zz9lW2ddKCk6Zi5pbnRlcnZhbCYmZS5wYXVzZSgpLmN5Y2xlKCl9KX12YXIgYz1mdW5jdGlvbihiLGMpe3RoaXMuJGVsZW1lbnQ9YShiKSx0aGlzLiRpbmRpY2F0b3JzPXRoaXMuJGVsZW1lbnQuZmluZCgiLmNhcm91c2VsLWluZGljYXRvcnMiKSx0aGlzLm9wdGlvbnM9Yyx0aGlzLnBhdXNlZD1udWxsLHRoaXMuc2xpZGluZz1udWxsLHRoaXMuaW50ZXJ2YWw9bnVsbCx0aGlzLiRhY3RpdmU9bnVsbCx0aGlzLiRpdGVtcz1udWxsLHRoaXMub3B0aW9ucy5rZXlib2FyZCYmdGhpcy4kZWxlbWVudC5vbigia2V5ZG93bi5icy5jYXJvdXNlbCIsYS5wcm94eSh0aGlzLmtleWRvd24sdGhpcykpLCJob3ZlciI9PXRoaXMub3B0aW9ucy5wYXVzZSYmISgib250b3VjaHN0YXJ0ImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkmJnRoaXMuJGVsZW1lbnQub24oIm1vdXNlZW50ZXIuYnMuY2Fyb3VzZWwiLGEucHJveHkodGhpcy5wYXVzZSx0aGlzKSkub24oIm1vdXNlbGVhdmUuYnMuY2Fyb3VzZWwiLGEucHJveHkodGhpcy5jeWNsZSx0aGlzKSl9O2MuVkVSU0lPTj0iMy4zLjUiLGMuVFJBTlNJVElPTl9EVVJBVElPTj02MDAsYy5ERUZBVUxUUz17aW50ZXJ2YWw6NWUzLHBhdXNlOiJob3ZlciIsd3JhcDohMCxrZXlib2FyZDohMH0sYy5wcm90b3R5cGUua2V5ZG93bj1mdW5jdGlvbihhKXtpZighL2lucHV0fHRleHRhcmVhL2kudGVzdChhLnRhcmdldC50YWdOYW1lKSl7c3dpdGNoKGEud2hpY2gpe2Nhc2UgMzc6dGhpcy5wcmV2KCk7YnJlYWs7Y2FzZSAzOTp0aGlzLm5leHQoKTticmVhaztkZWZhdWx0OnJldHVybn1hLnByZXZlbnREZWZhdWx0KCl9fSxjLnByb3RvdHlwZS5jeWNsZT1mdW5jdGlvbihiKXtyZXR1cm4gYnx8KHRoaXMucGF1c2VkPSExKSx0aGlzLmludGVydmFsJiZjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpLHRoaXMub3B0aW9ucy5pbnRlcnZhbCYmIXRoaXMucGF1c2VkJiYodGhpcy5pbnRlcnZhbD1zZXRJbnRlcnZhbChhLnByb3h5KHRoaXMubmV4dCx0aGlzKSx0aGlzLm9wdGlvbnMuaW50ZXJ2YWwpKSx0aGlzfSxjLnByb3RvdHlwZS5nZXRJdGVtSW5kZXg9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuJGl0ZW1zPWEucGFyZW50KCkuY2hpbGRyZW4oIi5pdGVtIiksdGhpcy4kaXRlbXMuaW5kZXgoYXx8dGhpcy4kYWN0aXZlKX0sYy5wcm90b3R5cGUuZ2V0SXRlbUZvckRpcmVjdGlvbj1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuZ2V0SXRlbUluZGV4KGIpLGQ9InByZXYiPT1hJiYwPT09Y3x8Im5leHQiPT1hJiZjPT10aGlzLiRpdGVtcy5sZW5ndGgtMTtpZihkJiYhdGhpcy5vcHRpb25zLndyYXApcmV0dXJuIGI7dmFyIGU9InByZXYiPT1hPy0xOjEsZj0oYytlKSV0aGlzLiRpdGVtcy5sZW5ndGg7cmV0dXJuIHRoaXMuJGl0ZW1zLmVxKGYpfSxjLnByb3RvdHlwZS50bz1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9dGhpcy5nZXRJdGVtSW5kZXgodGhpcy4kYWN0aXZlPXRoaXMuJGVsZW1lbnQuZmluZCgiLml0ZW0uYWN0aXZlIikpO3JldHVybiBhPnRoaXMuJGl0ZW1zLmxlbmd0aC0xfHwwPmE/dm9pZCAwOnRoaXMuc2xpZGluZz90aGlzLiRlbGVtZW50Lm9uZSgic2xpZC5icy5jYXJvdXNlbCIsZnVuY3Rpb24oKXtiLnRvKGEpfSk6Yz09YT90aGlzLnBhdXNlKCkuY3ljbGUoKTp0aGlzLnNsaWRlKGE+Yz8ibmV4dCI6InByZXYiLHRoaXMuJGl0ZW1zLmVxKGEpKX0sYy5wcm90b3R5cGUucGF1c2U9ZnVuY3Rpb24oYil7cmV0dXJuIGJ8fCh0aGlzLnBhdXNlZD0hMCksdGhpcy4kZWxlbWVudC5maW5kKCIubmV4dCwgLnByZXYiKS5sZW5ndGgmJmEuc3VwcG9ydC50cmFuc2l0aW9uJiYodGhpcy4kZWxlbWVudC50cmlnZ2VyKGEuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCksdGhpcy5jeWNsZSghMCkpLHRoaXMuaW50ZXJ2YWw9Y2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsKSx0aGlzfSxjLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2xpZGluZz92b2lkIDA6dGhpcy5zbGlkZSgibmV4dCIpfSxjLnByb3RvdHlwZS5wcmV2PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2xpZGluZz92b2lkIDA6dGhpcy5zbGlkZSgicHJldiIpfSxjLnByb3RvdHlwZS5zbGlkZT1mdW5jdGlvbihiLGQpe3ZhciBlPXRoaXMuJGVsZW1lbnQuZmluZCgiLml0ZW0uYWN0aXZlIiksZj1kfHx0aGlzLmdldEl0ZW1Gb3JEaXJlY3Rpb24oYixlKSxnPXRoaXMuaW50ZXJ2YWwsaD0ibmV4dCI9PWI/ImxlZnQiOiJyaWdodCIsaT10aGlzO2lmKGYuaGFzQ2xhc3MoImFjdGl2ZSIpKXJldHVybiB0aGlzLnNsaWRpbmc9ITE7dmFyIGo9ZlswXSxrPWEuRXZlbnQoInNsaWRlLmJzLmNhcm91c2VsIix7cmVsYXRlZFRhcmdldDpqLGRpcmVjdGlvbjpofSk7aWYodGhpcy4kZWxlbWVudC50cmlnZ2VyKGspLCFrLmlzRGVmYXVsdFByZXZlbnRlZCgpKXtpZih0aGlzLnNsaWRpbmc9ITAsZyYmdGhpcy5wYXVzZSgpLHRoaXMuJGluZGljYXRvcnMubGVuZ3RoKXt0aGlzLiRpbmRpY2F0b3JzLmZpbmQoIi5hY3RpdmUiKS5yZW1vdmVDbGFzcygiYWN0aXZlIik7dmFyIGw9YSh0aGlzLiRpbmRpY2F0b3JzLmNoaWxkcmVuKClbdGhpcy5nZXRJdGVtSW5kZXgoZildKTtsJiZsLmFkZENsYXNzKCJhY3RpdmUiKX12YXIgbT1hLkV2ZW50KCJzbGlkLmJzLmNhcm91c2VsIix7cmVsYXRlZFRhcmdldDpqLGRpcmVjdGlvbjpofSk7cmV0dXJuIGEuc3VwcG9ydC50cmFuc2l0aW9uJiZ0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJzbGlkZSIpPyhmLmFkZENsYXNzKGIpLGZbMF0ub2Zmc2V0V2lkdGgsZS5hZGRDbGFzcyhoKSxmLmFkZENsYXNzKGgpLGUub25lKCJic1RyYW5zaXRpb25FbmQiLGZ1bmN0aW9uKCl7Zi5yZW1vdmVDbGFzcyhbYixoXS5qb2luKCIgIikpLmFkZENsYXNzKCJhY3RpdmUiKSxlLnJlbW92ZUNsYXNzKFsiYWN0aXZlIixoXS5qb2luKCIgIikpLGkuc2xpZGluZz0hMSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aS4kZWxlbWVudC50cmlnZ2VyKG0pfSwwKX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTikpOihlLnJlbW92ZUNsYXNzKCJhY3RpdmUiKSxmLmFkZENsYXNzKCJhY3RpdmUiKSx0aGlzLnNsaWRpbmc9ITEsdGhpcy4kZWxlbWVudC50cmlnZ2VyKG0pKSxnJiZ0aGlzLmN5Y2xlKCksdGhpc319O3ZhciBkPWEuZm4uY2Fyb3VzZWw7YS5mbi5jYXJvdXNlbD1iLGEuZm4uY2Fyb3VzZWwuQ29uc3RydWN0b3I9YyxhLmZuLmNhcm91c2VsLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5jYXJvdXNlbD1kLHRoaXN9O3ZhciBlPWZ1bmN0aW9uKGMpe3ZhciBkLGU9YSh0aGlzKSxmPWEoZS5hdHRyKCJkYXRhLXRhcmdldCIpfHwoZD1lLmF0dHIoImhyZWYiKSkmJmQucmVwbGFjZSgvLiooPz0jW15cc10rJCkvLCIiKSk7aWYoZi5oYXNDbGFzcygiY2Fyb3VzZWwiKSl7dmFyIGc9YS5leHRlbmQoe30sZi5kYXRhKCksZS5kYXRhKCkpLGg9ZS5hdHRyKCJkYXRhLXNsaWRlLXRvIik7aCYmKGcuaW50ZXJ2YWw9ITEpLGIuY2FsbChmLGcpLGgmJmYuZGF0YSgiYnMuY2Fyb3VzZWwiKS50byhoKSxjLnByZXZlbnREZWZhdWx0KCl9fTthKGRvY3VtZW50KS5vbigiY2xpY2suYnMuY2Fyb3VzZWwuZGF0YS1hcGkiLCJbZGF0YS1zbGlkZV0iLGUpLm9uKCJjbGljay5icy5jYXJvdXNlbC5kYXRhLWFwaSIsIltkYXRhLXNsaWRlLXRvXSIsZSksYSh3aW5kb3cpLm9uKCJsb2FkIixmdW5jdGlvbigpe2EoJ1tkYXRhLXJpZGU9ImNhcm91c2VsIl0nKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGM9YSh0aGlzKTtiLmNhbGwoYyxjLmRhdGEoKSl9KX0pfShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiKXt2YXIgYyxkPWIuYXR0cigiZGF0YS10YXJnZXQiKXx8KGM9Yi5hdHRyKCJocmVmIikpJiZjLnJlcGxhY2UoLy4qKD89I1teXHNdKyQpLywiIik7cmV0dXJuIGEoZCl9ZnVuY3Rpb24gYyhiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGM9YSh0aGlzKSxlPWMuZGF0YSgiYnMuY29sbGFwc2UiKSxmPWEuZXh0ZW5kKHt9LGQuREVGQVVMVFMsYy5kYXRhKCksIm9iamVjdCI9PXR5cGVvZiBiJiZiKTshZSYmZi50b2dnbGUmJi9zaG93fGhpZGUvLnRlc3QoYikmJihmLnRvZ2dsZT0hMSksZXx8Yy5kYXRhKCJicy5jb2xsYXBzZSIsZT1uZXcgZCh0aGlzLGYpKSwic3RyaW5nIj09dHlwZW9mIGImJmVbYl0oKX0pfXZhciBkPWZ1bmN0aW9uKGIsYyl7dGhpcy4kZWxlbWVudD1hKGIpLHRoaXMub3B0aW9ucz1hLmV4dGVuZCh7fSxkLkRFRkFVTFRTLGMpLHRoaXMuJHRyaWdnZXI9YSgnW2RhdGEtdG9nZ2xlPSJjb2xsYXBzZSJdW2hyZWY9IiMnK2IuaWQrJyJdLFtkYXRhLXRvZ2dsZT0iY29sbGFwc2UiXVtkYXRhLXRhcmdldD0iIycrYi5pZCsnIl0nKSx0aGlzLnRyYW5zaXRpb25pbmc9bnVsbCx0aGlzLm9wdGlvbnMucGFyZW50P3RoaXMuJHBhcmVudD10aGlzLmdldFBhcmVudCgpOnRoaXMuYWRkQXJpYUFuZENvbGxhcHNlZENsYXNzKHRoaXMuJGVsZW1lbnQsdGhpcy4kdHJpZ2dlciksdGhpcy5vcHRpb25zLnRvZ2dsZSYmdGhpcy50b2dnbGUoKX07ZC5WRVJTSU9OPSIzLjMuNSIsZC5UUkFOU0lUSU9OX0RVUkFUSU9OPTM1MCxkLkRFRkFVTFRTPXt0b2dnbGU6ITB9LGQucHJvdG90eXBlLmRpbWVuc2lvbj1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoIndpZHRoIik7cmV0dXJuIGE/IndpZHRoIjoiaGVpZ2h0In0sZC5wcm90b3R5cGUuc2hvdz1mdW5jdGlvbigpe2lmKCF0aGlzLnRyYW5zaXRpb25pbmcmJiF0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJpbiIpKXt2YXIgYixlPXRoaXMuJHBhcmVudCYmdGhpcy4kcGFyZW50LmNoaWxkcmVuKCIucGFuZWwiKS5jaGlsZHJlbigiLmluLCAuY29sbGFwc2luZyIpO2lmKCEoZSYmZS5sZW5ndGgmJihiPWUuZGF0YSgiYnMuY29sbGFwc2UiKSxiJiZiLnRyYW5zaXRpb25pbmcpKSl7dmFyIGY9YS5FdmVudCgic2hvdy5icy5jb2xsYXBzZSIpO2lmKHRoaXMuJGVsZW1lbnQudHJpZ2dlcihmKSwhZi5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7ZSYmZS5sZW5ndGgmJihjLmNhbGwoZSwiaGlkZSIpLGJ8fGUuZGF0YSgiYnMuY29sbGFwc2UiLG51bGwpKTt2YXIgZz10aGlzLmRpbWVuc2lvbigpO3RoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoImNvbGxhcHNlIikuYWRkQ2xhc3MoImNvbGxhcHNpbmciKVtnXSgwKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMCksdGhpcy4kdHJpZ2dlci5yZW1vdmVDbGFzcygiY29sbGFwc2VkIikuYXR0cigiYXJpYS1leHBhbmRlZCIsITApLHRoaXMudHJhbnNpdGlvbmluZz0xO3ZhciBoPWZ1bmN0aW9uKCl7dGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcygiY29sbGFwc2luZyIpLmFkZENsYXNzKCJjb2xsYXBzZSBpbiIpW2ddKCIiKSx0aGlzLnRyYW5zaXRpb25pbmc9MCx0aGlzLiRlbGVtZW50LnRyaWdnZXIoInNob3duLmJzLmNvbGxhcHNlIil9O2lmKCFhLnN1cHBvcnQudHJhbnNpdGlvbilyZXR1cm4gaC5jYWxsKHRoaXMpO3ZhciBpPWEuY2FtZWxDYXNlKFsic2Nyb2xsIixnXS5qb2luKCItIikpO3RoaXMuJGVsZW1lbnQub25lKCJic1RyYW5zaXRpb25FbmQiLGEucHJveHkoaCx0aGlzKSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoZC5UUkFOU0lUSU9OX0RVUkFUSU9OKVtnXSh0aGlzLiRlbGVtZW50WzBdW2ldKX19fX0sZC5wcm90b3R5cGUuaGlkZT1mdW5jdGlvbigpe2lmKCF0aGlzLnRyYW5zaXRpb25pbmcmJnRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImluIikpe3ZhciBiPWEuRXZlbnQoImhpZGUuYnMuY29sbGFwc2UiKTtpZih0aGlzLiRlbGVtZW50LnRyaWdnZXIoYiksIWIuaXNEZWZhdWx0UHJldmVudGVkKCkpe3ZhciBjPXRoaXMuZGltZW5zaW9uKCk7dGhpcy4kZWxlbWVudFtjXSh0aGlzLiRlbGVtZW50W2NdKCkpWzBdLm9mZnNldEhlaWdodCx0aGlzLiRlbGVtZW50LmFkZENsYXNzKCJjb2xsYXBzaW5nIikucmVtb3ZlQ2xhc3MoImNvbGxhcHNlIGluIikuYXR0cigiYXJpYS1leHBhbmRlZCIsITEpLHRoaXMuJHRyaWdnZXIuYWRkQ2xhc3MoImNvbGxhcHNlZCIpLmF0dHIoImFyaWEtZXhwYW5kZWQiLCExKSx0aGlzLnRyYW5zaXRpb25pbmc9MTt2YXIgZT1mdW5jdGlvbigpe3RoaXMudHJhbnNpdGlvbmluZz0wLHRoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoImNvbGxhcHNpbmciKS5hZGRDbGFzcygiY29sbGFwc2UiKS50cmlnZ2VyKCJoaWRkZW4uYnMuY29sbGFwc2UiKX07cmV0dXJuIGEuc3VwcG9ydC50cmFuc2l0aW9uP3ZvaWQgdGhpcy4kZWxlbWVudFtjXSgwKS5vbmUoImJzVHJhbnNpdGlvbkVuZCIsYS5wcm94eShlLHRoaXMpKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChkLlRSQU5TSVRJT05fRFVSQVRJT04pOmUuY2FsbCh0aGlzKX19fSxkLnByb3RvdHlwZS50b2dnbGU9ZnVuY3Rpb24oKXt0aGlzW3RoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImluIik/ImhpZGUiOiJzaG93Il0oKX0sZC5wcm90b3R5cGUuZ2V0UGFyZW50PWZ1bmN0aW9uKCl7cmV0dXJuIGEodGhpcy5vcHRpb25zLnBhcmVudCkuZmluZCgnW2RhdGEtdG9nZ2xlPSJjb2xsYXBzZSJdW2RhdGEtcGFyZW50PSInK3RoaXMub3B0aW9ucy5wYXJlbnQrJyJdJykuZWFjaChhLnByb3h5KGZ1bmN0aW9uKGMsZCl7dmFyIGU9YShkKTt0aGlzLmFkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcyhiKGUpLGUpfSx0aGlzKSkuZW5kKCl9LGQucHJvdG90eXBlLmFkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcz1mdW5jdGlvbihhLGIpe3ZhciBjPWEuaGFzQ2xhc3MoImluIik7YS5hdHRyKCJhcmlhLWV4cGFuZGVkIixjKSxiLnRvZ2dsZUNsYXNzKCJjb2xsYXBzZWQiLCFjKS5hdHRyKCJhcmlhLWV4cGFuZGVkIixjKX07dmFyIGU9YS5mbi5jb2xsYXBzZTthLmZuLmNvbGxhcHNlPWMsYS5mbi5jb2xsYXBzZS5Db25zdHJ1Y3Rvcj1kLGEuZm4uY29sbGFwc2Uubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLmNvbGxhcHNlPWUsdGhpc30sYShkb2N1bWVudCkub24oImNsaWNrLmJzLmNvbGxhcHNlLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlPSJjb2xsYXBzZSJdJyxmdW5jdGlvbihkKXt2YXIgZT1hKHRoaXMpO2UuYXR0cigiZGF0YS10YXJnZXQiKXx8ZC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBmPWIoZSksZz1mLmRhdGEoImJzLmNvbGxhcHNlIiksaD1nPyJ0b2dnbGUiOmUuZGF0YSgpO2MuY2FsbChmLGgpfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3ZhciBjPWIuYXR0cigiZGF0YS10YXJnZXQiKTtjfHwoYz1iLmF0dHIoImhyZWYiKSxjPWMmJi8jW0EtWmEtel0vLnRlc3QoYykmJmMucmVwbGFjZSgvLiooPz0jW15cc10qJCkvLCIiKSk7dmFyIGQ9YyYmYShjKTtyZXR1cm4gZCYmZC5sZW5ndGg/ZDpiLnBhcmVudCgpfWZ1bmN0aW9uIGMoYyl7YyYmMz09PWMud2hpY2h8fChhKGUpLnJlbW92ZSgpLGEoZikuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1iKGQpLGY9e3JlbGF0ZWRUYXJnZXQ6dGhpc307ZS5oYXNDbGFzcygib3BlbiIpJiYoYyYmImNsaWNrIj09Yy50eXBlJiYvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KGMudGFyZ2V0LnRhZ05hbWUpJiZhLmNvbnRhaW5zKGVbMF0sYy50YXJnZXQpfHwoZS50cmlnZ2VyKGM9YS5FdmVudCgiaGlkZS5icy5kcm9wZG93biIsZikpLGMuaXNEZWZhdWx0UHJldmVudGVkKCl8fChkLmF0dHIoImFyaWEtZXhwYW5kZWQiLCJmYWxzZSIpLGUucmVtb3ZlQ2xhc3MoIm9wZW4iKS50cmlnZ2VyKCJoaWRkZW4uYnMuZHJvcGRvd24iLGYpKSkpfSkpfWZ1bmN0aW9uIGQoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBjPWEodGhpcyksZD1jLmRhdGEoImJzLmRyb3Bkb3duIik7ZHx8Yy5kYXRhKCJicy5kcm9wZG93biIsZD1uZXcgZyh0aGlzKSksInN0cmluZyI9PXR5cGVvZiBiJiZkW2JdLmNhbGwoYyl9KX12YXIgZT0iLmRyb3Bkb3duLWJhY2tkcm9wIixmPSdbZGF0YS10b2dnbGU9ImRyb3Bkb3duIl0nLGc9ZnVuY3Rpb24oYil7YShiKS5vbigiY2xpY2suYnMuZHJvcGRvd24iLHRoaXMudG9nZ2xlKX07Zy5WRVJTSU9OPSIzLjMuNSIsZy5wcm90b3R5cGUudG9nZ2xlPWZ1bmN0aW9uKGQpe3ZhciBlPWEodGhpcyk7aWYoIWUuaXMoIi5kaXNhYmxlZCwgOmRpc2FibGVkIikpe3ZhciBmPWIoZSksZz1mLmhhc0NsYXNzKCJvcGVuIik7aWYoYygpLCFnKXsib250b3VjaHN0YXJ0ImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmIWYuY2xvc2VzdCgiLm5hdmJhci1uYXYiKS5sZW5ndGgmJmEoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmFkZENsYXNzKCJkcm9wZG93bi1iYWNrZHJvcCIpLmluc2VydEFmdGVyKGEodGhpcykpLm9uKCJjbGljayIsYyk7dmFyIGg9e3JlbGF0ZWRUYXJnZXQ6dGhpc307aWYoZi50cmlnZ2VyKGQ9YS5FdmVudCgic2hvdy5icy5kcm9wZG93biIsaCkpLGQuaXNEZWZhdWx0UHJldmVudGVkKCkpcmV0dXJuO2UudHJpZ2dlcigiZm9jdXMiKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwidHJ1ZSIpLGYudG9nZ2xlQ2xhc3MoIm9wZW4iKS50cmlnZ2VyKCJzaG93bi5icy5kcm9wZG93biIsaCl9cmV0dXJuITF9fSxnLnByb3RvdHlwZS5rZXlkb3duPWZ1bmN0aW9uKGMpe2lmKC8oMzh8NDB8Mjd8MzIpLy50ZXN0KGMud2hpY2gpJiYhL2lucHV0fHRleHRhcmVhL2kudGVzdChjLnRhcmdldC50YWdOYW1lKSl7dmFyIGQ9YSh0aGlzKTtpZihjLnByZXZlbnREZWZhdWx0KCksYy5zdG9wUHJvcGFnYXRpb24oKSwhZC5pcygiLmRpc2FibGVkLCA6ZGlzYWJsZWQiKSl7dmFyIGU9YihkKSxnPWUuaGFzQ2xhc3MoIm9wZW4iKTtpZighZyYmMjchPWMud2hpY2h8fGcmJjI3PT1jLndoaWNoKXJldHVybiAyNz09Yy53aGljaCYmZS5maW5kKGYpLnRyaWdnZXIoImZvY3VzIiksZC50cmlnZ2VyKCJjbGljayIpO3ZhciBoPSIgbGk6bm90KC5kaXNhYmxlZCk6dmlzaWJsZSBhIixpPWUuZmluZCgiLmRyb3Bkb3duLW1lbnUiK2gpO2lmKGkubGVuZ3RoKXt2YXIgaj1pLmluZGV4KGMudGFyZ2V0KTszOD09Yy53aGljaCYmaj4wJiZqLS0sNDA9PWMud2hpY2gmJmo8aS5sZW5ndGgtMSYmaisrLH5qfHwoaj0wKSxpLmVxKGopLnRyaWdnZXIoImZvY3VzIil9fX19O3ZhciBoPWEuZm4uZHJvcGRvd247YS5mbi5kcm9wZG93bj1kLGEuZm4uZHJvcGRvd24uQ29uc3RydWN0b3I9ZyxhLmZuLmRyb3Bkb3duLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5kcm9wZG93bj1oLHRoaXN9LGEoZG9jdW1lbnQpLm9uKCJjbGljay5icy5kcm9wZG93bi5kYXRhLWFwaSIsYykub24oImNsaWNrLmJzLmRyb3Bkb3duLmRhdGEtYXBpIiwiLmRyb3Bkb3duIGZvcm0iLGZ1bmN0aW9uKGEpe2Euc3RvcFByb3BhZ2F0aW9uKCl9KS5vbigiY2xpY2suYnMuZHJvcGRvd24uZGF0YS1hcGkiLGYsZy5wcm90b3R5cGUudG9nZ2xlKS5vbigia2V5ZG93bi5icy5kcm9wZG93bi5kYXRhLWFwaSIsZixnLnByb3RvdHlwZS5rZXlkb3duKS5vbigia2V5ZG93bi5icy5kcm9wZG93bi5kYXRhLWFwaSIsIi5kcm9wZG93bi1tZW51IixnLnByb3RvdHlwZS5rZXlkb3duKX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYixkKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9YSh0aGlzKSxmPWUuZGF0YSgiYnMubW9kYWwiKSxnPWEuZXh0ZW5kKHt9LGMuREVGQVVMVFMsZS5kYXRhKCksIm9iamVjdCI9PXR5cGVvZiBiJiZiKTtmfHxlLmRhdGEoImJzLm1vZGFsIixmPW5ldyBjKHRoaXMsZykpLCJzdHJpbmciPT10eXBlb2YgYj9mW2JdKGQpOmcuc2hvdyYmZi5zaG93KGQpfSl9dmFyIGM9ZnVuY3Rpb24oYixjKXt0aGlzLm9wdGlvbnM9Yyx0aGlzLiRib2R5PWEoZG9jdW1lbnQuYm9keSksdGhpcy4kZWxlbWVudD1hKGIpLHRoaXMuJGRpYWxvZz10aGlzLiRlbGVtZW50LmZpbmQoIi5tb2RhbC1kaWFsb2ciKSx0aGlzLiRiYWNrZHJvcD1udWxsLHRoaXMuaXNTaG93bj1udWxsLHRoaXMub3JpZ2luYWxCb2R5UGFkPW51bGwsdGhpcy5zY3JvbGxiYXJXaWR0aD0wLHRoaXMuaWdub3JlQmFja2Ryb3BDbGljaz0hMSx0aGlzLm9wdGlvbnMucmVtb3RlJiZ0aGlzLiRlbGVtZW50LmZpbmQoIi5tb2RhbC1jb250ZW50IikubG9hZCh0aGlzLm9wdGlvbnMucmVtb3RlLGEucHJveHkoZnVuY3Rpb24oKXt0aGlzLiRlbGVtZW50LnRyaWdnZXIoImxvYWRlZC5icy5tb2RhbCIpfSx0aGlzKSl9O2MuVkVSU0lPTj0iMy4zLjUiLGMuVFJBTlNJVElPTl9EVVJBVElPTj0zMDAsYy5CQUNLRFJPUF9UUkFOU0lUSU9OX0RVUkFUSU9OPTE1MCxjLkRFRkFVTFRTPXtiYWNrZHJvcDohMCxrZXlib2FyZDohMCxzaG93OiEwfSxjLnByb3RvdHlwZS50b2dnbGU9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaXNTaG93bj90aGlzLmhpZGUoKTp0aGlzLnNob3coYSl9LGMucHJvdG90eXBlLnNob3c9ZnVuY3Rpb24oYil7dmFyIGQ9dGhpcyxlPWEuRXZlbnQoInNob3cuYnMubW9kYWwiLHtyZWxhdGVkVGFyZ2V0OmJ9KTt0aGlzLiRlbGVtZW50LnRyaWdnZXIoZSksdGhpcy5pc1Nob3dufHxlLmlzRGVmYXVsdFByZXZlbnRlZCgpfHwodGhpcy5pc1Nob3duPSEwLHRoaXMuY2hlY2tTY3JvbGxiYXIoKSx0aGlzLnNldFNjcm9sbGJhcigpLHRoaXMuJGJvZHkuYWRkQ2xhc3MoIm1vZGFsLW9wZW4iKSx0aGlzLmVzY2FwZSgpLHRoaXMucmVzaXplKCksdGhpcy4kZWxlbWVudC5vbigiY2xpY2suZGlzbWlzcy5icy5tb2RhbCIsJ1tkYXRhLWRpc21pc3M9Im1vZGFsIl0nLGEucHJveHkodGhpcy5oaWRlLHRoaXMpKSx0aGlzLiRkaWFsb2cub24oIm1vdXNlZG93bi5kaXNtaXNzLmJzLm1vZGFsIixmdW5jdGlvbigpe2QuJGVsZW1lbnQub25lKCJtb3VzZXVwLmRpc21pc3MuYnMubW9kYWwiLGZ1bmN0aW9uKGIpe2EoYi50YXJnZXQpLmlzKGQuJGVsZW1lbnQpJiYoZC5pZ25vcmVCYWNrZHJvcENsaWNrPSEwKX0pfSksdGhpcy5iYWNrZHJvcChmdW5jdGlvbigpe3ZhciBlPWEuc3VwcG9ydC50cmFuc2l0aW9uJiZkLiRlbGVtZW50Lmhhc0NsYXNzKCJmYWRlIik7ZC4kZWxlbWVudC5wYXJlbnQoKS5sZW5ndGh8fGQuJGVsZW1lbnQuYXBwZW5kVG8oZC4kYm9keSksZC4kZWxlbWVudC5zaG93KCkuc2Nyb2xsVG9wKDApLGQuYWRqdXN0RGlhbG9nKCksZSYmZC4kZWxlbWVudFswXS5vZmZzZXRXaWR0aCxkLiRlbGVtZW50LmFkZENsYXNzKCJpbiIpLGQuZW5mb3JjZUZvY3VzKCk7dmFyIGY9YS5FdmVudCgic2hvd24uYnMubW9kYWwiLHtyZWxhdGVkVGFyZ2V0OmJ9KTtlP2QuJGRpYWxvZy5vbmUoImJzVHJhbnNpdGlvbkVuZCIsZnVuY3Rpb24oKXtkLiRlbGVtZW50LnRyaWdnZXIoImZvY3VzIikudHJpZ2dlcihmKX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTik6ZC4kZWxlbWVudC50cmlnZ2VyKCJmb2N1cyIpLnRyaWdnZXIoZil9KSl9LGMucHJvdG90eXBlLmhpZGU9ZnVuY3Rpb24oYil7YiYmYi5wcmV2ZW50RGVmYXVsdCgpLGI9YS5FdmVudCgiaGlkZS5icy5tb2RhbCIpLHRoaXMuJGVsZW1lbnQudHJpZ2dlcihiKSx0aGlzLmlzU2hvd24mJiFiLmlzRGVmYXVsdFByZXZlbnRlZCgpJiYodGhpcy5pc1Nob3duPSExLHRoaXMuZXNjYXBlKCksdGhpcy5yZXNpemUoKSxhKGRvY3VtZW50KS5vZmYoImZvY3VzaW4uYnMubW9kYWwiKSx0aGlzLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJpbiIpLm9mZigiY2xpY2suZGlzbWlzcy5icy5tb2RhbCIpLm9mZigibW91c2V1cC5kaXNtaXNzLmJzLm1vZGFsIiksdGhpcy4kZGlhbG9nLm9mZigibW91c2Vkb3duLmRpc21pc3MuYnMubW9kYWwiKSxhLnN1cHBvcnQudHJhbnNpdGlvbiYmdGhpcy4kZWxlbWVudC5oYXNDbGFzcygiZmFkZSIpP3RoaXMuJGVsZW1lbnQub25lKCJic1RyYW5zaXRpb25FbmQiLGEucHJveHkodGhpcy5oaWRlTW9kYWwsdGhpcykpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTik6dGhpcy5oaWRlTW9kYWwoKSl9LGMucHJvdG90eXBlLmVuZm9yY2VGb2N1cz1mdW5jdGlvbigpe2EoZG9jdW1lbnQpLm9mZigiZm9jdXNpbi5icy5tb2RhbCIpLm9uKCJmb2N1c2luLmJzLm1vZGFsIixhLnByb3h5KGZ1bmN0aW9uKGEpe3RoaXMuJGVsZW1lbnRbMF09PT1hLnRhcmdldHx8dGhpcy4kZWxlbWVudC5oYXMoYS50YXJnZXQpLmxlbmd0aHx8dGhpcy4kZWxlbWVudC50cmlnZ2VyKCJmb2N1cyIpfSx0aGlzKSl9LGMucHJvdG90eXBlLmVzY2FwZT1mdW5jdGlvbigpe3RoaXMuaXNTaG93biYmdGhpcy5vcHRpb25zLmtleWJvYXJkP3RoaXMuJGVsZW1lbnQub24oImtleWRvd24uZGlzbWlzcy5icy5tb2RhbCIsYS5wcm94eShmdW5jdGlvbihhKXsyNz09YS53aGljaCYmdGhpcy5oaWRlKCl9LHRoaXMpKTp0aGlzLmlzU2hvd258fHRoaXMuJGVsZW1lbnQub2ZmKCJrZXlkb3duLmRpc21pc3MuYnMubW9kYWwiKX0sYy5wcm90b3R5cGUucmVzaXplPWZ1bmN0aW9uKCl7dGhpcy5pc1Nob3duP2Eod2luZG93KS5vbigicmVzaXplLmJzLm1vZGFsIixhLnByb3h5KHRoaXMuaGFuZGxlVXBkYXRlLHRoaXMpKTphKHdpbmRvdykub2ZmKCJyZXNpemUuYnMubW9kYWwiKX0sYy5wcm90b3R5cGUuaGlkZU1vZGFsPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLiRlbGVtZW50LmhpZGUoKSx0aGlzLmJhY2tkcm9wKGZ1bmN0aW9uKCl7YS4kYm9keS5yZW1vdmVDbGFzcygibW9kYWwtb3BlbiIpLGEucmVzZXRBZGp1c3RtZW50cygpLGEucmVzZXRTY3JvbGxiYXIoKSxhLiRlbGVtZW50LnRyaWdnZXIoImhpZGRlbi5icy5tb2RhbCIpfSl9LGMucHJvdG90eXBlLnJlbW92ZUJhY2tkcm9wPWZ1bmN0aW9uKCl7dGhpcy4kYmFja2Ryb3AmJnRoaXMuJGJhY2tkcm9wLnJlbW92ZSgpLHRoaXMuJGJhY2tkcm9wPW51bGx9LGMucHJvdG90eXBlLmJhY2tkcm9wPWZ1bmN0aW9uKGIpe3ZhciBkPXRoaXMsZT10aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJmYWRlIik/ImZhZGUiOiIiO2lmKHRoaXMuaXNTaG93biYmdGhpcy5vcHRpb25zLmJhY2tkcm9wKXt2YXIgZj1hLnN1cHBvcnQudHJhbnNpdGlvbiYmZTtpZih0aGlzLiRiYWNrZHJvcD1hKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5hZGRDbGFzcygibW9kYWwtYmFja2Ryb3AgIitlKS5hcHBlbmRUbyh0aGlzLiRib2R5KSx0aGlzLiRlbGVtZW50Lm9uKCJjbGljay5kaXNtaXNzLmJzLm1vZGFsIixhLnByb3h5KGZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmlnbm9yZUJhY2tkcm9wQ2xpY2s/dm9pZCh0aGlzLmlnbm9yZUJhY2tkcm9wQ2xpY2s9ITEpOnZvaWQoYS50YXJnZXQ9PT1hLmN1cnJlbnRUYXJnZXQmJigic3RhdGljIj09dGhpcy5vcHRpb25zLmJhY2tkcm9wP3RoaXMuJGVsZW1lbnRbMF0uZm9jdXMoKTp0aGlzLmhpZGUoKSkpfSx0aGlzKSksZiYmdGhpcy4kYmFja2Ryb3BbMF0ub2Zmc2V0V2lkdGgsdGhpcy4kYmFja2Ryb3AuYWRkQ2xhc3MoImluIiksIWIpcmV0dXJuO2Y/dGhpcy4kYmFja2Ryb3Aub25lKCJic1RyYW5zaXRpb25FbmQiLGIpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuQkFDS0RST1BfVFJBTlNJVElPTl9EVVJBVElPTik6YigpfWVsc2UgaWYoIXRoaXMuaXNTaG93biYmdGhpcy4kYmFja2Ryb3Ape3RoaXMuJGJhY2tkcm9wLnJlbW92ZUNsYXNzKCJpbiIpO3ZhciBnPWZ1bmN0aW9uKCl7ZC5yZW1vdmVCYWNrZHJvcCgpLGImJmIoKX07YS5zdXBwb3J0LnRyYW5zaXRpb24mJnRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImZhZGUiKT90aGlzLiRiYWNrZHJvcC5vbmUoImJzVHJhbnNpdGlvbkVuZCIsZykuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5CQUNLRFJPUF9UUkFOU0lUSU9OX0RVUkFUSU9OKTpnKCl9ZWxzZSBiJiZiKCl9LGMucHJvdG90eXBlLmhhbmRsZVVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuYWRqdXN0RGlhbG9nKCl9LGMucHJvdG90eXBlLmFkanVzdERpYWxvZz1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnRbMF0uc2Nyb2xsSGVpZ2h0PmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7dGhpcy4kZWxlbWVudC5jc3Moe3BhZGRpbmdMZWZ0OiF0aGlzLmJvZHlJc092ZXJmbG93aW5nJiZhP3RoaXMuc2Nyb2xsYmFyV2lkdGg6IiIscGFkZGluZ1JpZ2h0OnRoaXMuYm9keUlzT3ZlcmZsb3dpbmcmJiFhP3RoaXMuc2Nyb2xsYmFyV2lkdGg6IiJ9KX0sYy5wcm90b3R5cGUucmVzZXRBZGp1c3RtZW50cz1mdW5jdGlvbigpe3RoaXMuJGVsZW1lbnQuY3NzKHtwYWRkaW5nTGVmdDoiIixwYWRkaW5nUmlnaHQ6IiJ9KX0sYy5wcm90b3R5cGUuY2hlY2tTY3JvbGxiYXI9ZnVuY3Rpb24oKXt2YXIgYT13aW5kb3cuaW5uZXJXaWR0aDtpZighYSl7dmFyIGI9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2E9Yi5yaWdodC1NYXRoLmFicyhiLmxlZnQpfXRoaXMuYm9keUlzT3ZlcmZsb3dpbmc9ZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aDxhLHRoaXMuc2Nyb2xsYmFyV2lkdGg9dGhpcy5tZWFzdXJlU2Nyb2xsYmFyKCl9LGMucHJvdG90eXBlLnNldFNjcm9sbGJhcj1mdW5jdGlvbigpe3ZhciBhPXBhcnNlSW50KHRoaXMuJGJvZHkuY3NzKCJwYWRkaW5nLXJpZ2h0Iil8fDAsMTApO3RoaXMub3JpZ2luYWxCb2R5UGFkPWRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0fHwiIix0aGlzLmJvZHlJc092ZXJmbG93aW5nJiZ0aGlzLiRib2R5LmNzcygicGFkZGluZy1yaWdodCIsYSt0aGlzLnNjcm9sbGJhcldpZHRoKX0sYy5wcm90b3R5cGUucmVzZXRTY3JvbGxiYXI9ZnVuY3Rpb24oKXt0aGlzLiRib2R5LmNzcygicGFkZGluZy1yaWdodCIsdGhpcy5vcmlnaW5hbEJvZHlQYWQpfSxjLnByb3RvdHlwZS5tZWFzdXJlU2Nyb2xsYmFyPWZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5jbGFzc05hbWU9Im1vZGFsLXNjcm9sbGJhci1tZWFzdXJlIix0aGlzLiRib2R5LmFwcGVuZChhKTt2YXIgYj1hLm9mZnNldFdpZHRoLWEuY2xpZW50V2lkdGg7cmV0dXJuIHRoaXMuJGJvZHlbMF0ucmVtb3ZlQ2hpbGQoYSksYn07dmFyIGQ9YS5mbi5tb2RhbDthLmZuLm1vZGFsPWIsYS5mbi5tb2RhbC5Db25zdHJ1Y3Rvcj1jLGEuZm4ubW9kYWwubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLm1vZGFsPWQsdGhpc30sYShkb2N1bWVudCkub24oImNsaWNrLmJzLm1vZGFsLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlPSJtb2RhbCJdJyxmdW5jdGlvbihjKXt2YXIgZD1hKHRoaXMpLGU9ZC5hdHRyKCJocmVmIiksZj1hKGQuYXR0cigiZGF0YS10YXJnZXQiKXx8ZSYmZS5yZXBsYWNlKC8uKig/PSNbXlxzXSskKS8sIiIpKSxnPWYuZGF0YSgiYnMubW9kYWwiKT8idG9nZ2xlIjphLmV4dGVuZCh7cmVtb3RlOiEvIy8udGVzdChlKSYmZX0sZi5kYXRhKCksZC5kYXRhKCkpO2QuaXMoImEiKSYmYy5wcmV2ZW50RGVmYXVsdCgpLGYub25lKCJzaG93LmJzLm1vZGFsIixmdW5jdGlvbihhKXthLmlzRGVmYXVsdFByZXZlbnRlZCgpfHxmLm9uZSgiaGlkZGVuLmJzLm1vZGFsIixmdW5jdGlvbigpe2QuaXMoIjp2aXNpYmxlIikmJmQudHJpZ2dlcigiZm9jdXMiKX0pfSksYi5jYWxsKGYsZyx0aGlzKX0pfShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9YSh0aGlzKSxlPWQuZGF0YSgiYnMudG9vbHRpcCIpLGY9Im9iamVjdCI9PXR5cGVvZiBiJiZiOyhlfHwhL2Rlc3Ryb3l8aGlkZS8udGVzdChiKSkmJihlfHxkLmRhdGEoImJzLnRvb2x0aXAiLGU9bmV3IGModGhpcyxmKSksInN0cmluZyI9PXR5cGVvZiBiJiZlW2JdKCkpfSl9dmFyIGM9ZnVuY3Rpb24oYSxiKXt0aGlzLnR5cGU9bnVsbCx0aGlzLm9wdGlvbnM9bnVsbCx0aGlzLmVuYWJsZWQ9bnVsbCx0aGlzLnRpbWVvdXQ9bnVsbCx0aGlzLmhvdmVyU3RhdGU9bnVsbCx0aGlzLiRlbGVtZW50PW51bGwsdGhpcy5pblN0YXRlPW51bGwsdGhpcy5pbml0KCJ0b29sdGlwIixhLGIpfTtjLlZFUlNJT049IjMuMy41IixjLlRSQU5TSVRJT05fRFVSQVRJT049MTUwLGMuREVGQVVMVFM9e2FuaW1hdGlvbjohMCxwbGFjZW1lbnQ6InRvcCIsc2VsZWN0b3I6ITEsdGVtcGxhdGU6JzxkaXYgY2xhc3M9InRvb2x0aXAiIHJvbGU9InRvb2x0aXAiPjxkaXYgY2xhc3M9InRvb2x0aXAtYXJyb3ciPjwvZGl2PjxkaXYgY2xhc3M9InRvb2x0aXAtaW5uZXIiPjwvZGl2PjwvZGl2PicsdHJpZ2dlcjoiaG92ZXIgZm9jdXMiLHRpdGxlOiIiLGRlbGF5OjAsaHRtbDohMSxjb250YWluZXI6ITEsdmlld3BvcnQ6e3NlbGVjdG9yOiJib2R5IixwYWRkaW5nOjB9fSxjLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKGIsYyxkKXtpZih0aGlzLmVuYWJsZWQ9ITAsdGhpcy50eXBlPWIsdGhpcy4kZWxlbWVudD1hKGMpLHRoaXMub3B0aW9ucz10aGlzLmdldE9wdGlvbnMoZCksdGhpcy4kdmlld3BvcnQ9dGhpcy5vcHRpb25zLnZpZXdwb3J0JiZhKGEuaXNGdW5jdGlvbih0aGlzLm9wdGlvbnMudmlld3BvcnQpP3RoaXMub3B0aW9ucy52aWV3cG9ydC5jYWxsKHRoaXMsdGhpcy4kZWxlbWVudCk6dGhpcy5vcHRpb25zLnZpZXdwb3J0LnNlbGVjdG9yfHx0aGlzLm9wdGlvbnMudmlld3BvcnQpLHRoaXMuaW5TdGF0ZT17Y2xpY2s6ITEsaG92ZXI6ITEsZm9jdXM6ITF9LHRoaXMuJGVsZW1lbnRbMF1pbnN0YW5jZW9mIGRvY3VtZW50LmNvbnN0cnVjdG9yJiYhdGhpcy5vcHRpb25zLnNlbGVjdG9yKXRocm93IG5ldyBFcnJvcigiYHNlbGVjdG9yYCBvcHRpb24gbXVzdCBiZSBzcGVjaWZpZWQgd2hlbiBpbml0aWFsaXppbmcgIit0aGlzLnR5cGUrIiBvbiB0aGUgd2luZG93LmRvY3VtZW50IG9iamVjdCEiKTtmb3IodmFyIGU9dGhpcy5vcHRpb25zLnRyaWdnZXIuc3BsaXQoIiAiKSxmPWUubGVuZ3RoO2YtLTspe3ZhciBnPWVbZl07aWYoImNsaWNrIj09Zyl0aGlzLiRlbGVtZW50Lm9uKCJjbGljay4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLnRvZ2dsZSx0aGlzKSk7ZWxzZSBpZigibWFudWFsIiE9Zyl7dmFyIGg9ImhvdmVyIj09Zz8ibW91c2VlbnRlciI6ImZvY3VzaW4iLGk9ImhvdmVyIj09Zz8ibW91c2VsZWF2ZSI6ImZvY3Vzb3V0Ijt0aGlzLiRlbGVtZW50Lm9uKGgrIi4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLmVudGVyLHRoaXMpKSx0aGlzLiRlbGVtZW50Lm9uKGkrIi4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLmxlYXZlLHRoaXMpKX19dGhpcy5vcHRpb25zLnNlbGVjdG9yP3RoaXMuX29wdGlvbnM9YS5leHRlbmQoe30sdGhpcy5vcHRpb25zLHt0cmlnZ2VyOiJtYW51YWwiLHNlbGVjdG9yOiIifSk6dGhpcy5maXhUaXRsZSgpfSxjLnByb3RvdHlwZS5nZXREZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBjLkRFRkFVTFRTfSxjLnByb3RvdHlwZS5nZXRPcHRpb25zPWZ1bmN0aW9uKGIpe3JldHVybiBiPWEuZXh0ZW5kKHt9LHRoaXMuZ2V0RGVmYXVsdHMoKSx0aGlzLiRlbGVtZW50LmRhdGEoKSxiKSxiLmRlbGF5JiYibnVtYmVyIj09dHlwZW9mIGIuZGVsYXkmJihiLmRlbGF5PXtzaG93OmIuZGVsYXksaGlkZTpiLmRlbGF5fSksYn0sYy5wcm90b3R5cGUuZ2V0RGVsZWdhdGVPcHRpb25zPWZ1bmN0aW9uKCl7dmFyIGI9e30sYz10aGlzLmdldERlZmF1bHRzKCk7cmV0dXJuIHRoaXMuX29wdGlvbnMmJmEuZWFjaCh0aGlzLl9vcHRpb25zLGZ1bmN0aW9uKGEsZCl7Y1thXSE9ZCYmKGJbYV09ZCl9KSxifSxjLnByb3RvdHlwZS5lbnRlcj1mdW5jdGlvbihiKXt2YXIgYz1iIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3Rvcj9iOmEoYi5jdXJyZW50VGFyZ2V0KS5kYXRhKCJicy4iK3RoaXMudHlwZSk7cmV0dXJuIGN8fChjPW5ldyB0aGlzLmNvbnN0cnVjdG9yKGIuY3VycmVudFRhcmdldCx0aGlzLmdldERlbGVnYXRlT3B0aW9ucygpKSxhKGIuY3VycmVudFRhcmdldCkuZGF0YSgiYnMuIit0aGlzLnR5cGUsYykpLGIgaW5zdGFuY2VvZiBhLkV2ZW50JiYoYy5pblN0YXRlWyJmb2N1c2luIj09Yi50eXBlPyJmb2N1cyI6ImhvdmVyIl09ITApLGMudGlwKCkuaGFzQ2xhc3MoImluIil8fCJpbiI9PWMuaG92ZXJTdGF0ZT92b2lkKGMuaG92ZXJTdGF0ZT0iaW4iKTooY2xlYXJUaW1lb3V0KGMudGltZW91dCksYy5ob3ZlclN0YXRlPSJpbiIsYy5vcHRpb25zLmRlbGF5JiZjLm9wdGlvbnMuZGVsYXkuc2hvdz92b2lkKGMudGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ImluIj09Yy5ob3ZlclN0YXRlJiZjLnNob3coKX0sYy5vcHRpb25zLmRlbGF5LnNob3cpKTpjLnNob3coKSl9LGMucHJvdG90eXBlLmlzSW5TdGF0ZVRydWU9ZnVuY3Rpb24oKXtmb3IodmFyIGEgaW4gdGhpcy5pblN0YXRlKWlmKHRoaXMuaW5TdGF0ZVthXSlyZXR1cm4hMDtyZXR1cm4hMX0sYy5wcm90b3R5cGUubGVhdmU9ZnVuY3Rpb24oYil7dmFyIGM9YiBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3I/YjphKGIuY3VycmVudFRhcmdldCkuZGF0YSgiYnMuIit0aGlzLnR5cGUpO3JldHVybiBjfHwoYz1uZXcgdGhpcy5jb25zdHJ1Y3RvcihiLmN1cnJlbnRUYXJnZXQsdGhpcy5nZXREZWxlZ2F0ZU9wdGlvbnMoKSksYShiLmN1cnJlbnRUYXJnZXQpLmRhdGEoImJzLiIrdGhpcy50eXBlLGMpKSxiIGluc3RhbmNlb2YgYS5FdmVudCYmKGMuaW5TdGF0ZVsiZm9jdXNvdXQiPT1iLnR5cGU/ImZvY3VzIjoiaG92ZXIiXT0hMSksYy5pc0luU3RhdGVUcnVlKCk/dm9pZCAwOihjbGVhclRpbWVvdXQoYy50aW1lb3V0KSxjLmhvdmVyU3RhdGU9Im91dCIsYy5vcHRpb25zLmRlbGF5JiZjLm9wdGlvbnMuZGVsYXkuaGlkZT92b2lkKGMudGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Im91dCI9PWMuaG92ZXJTdGF0ZSYmYy5oaWRlKCl9LGMub3B0aW9ucy5kZWxheS5oaWRlKSk6Yy5oaWRlKCkpfSxjLnByb3RvdHlwZS5zaG93PWZ1bmN0aW9uKCl7dmFyIGI9YS5FdmVudCgic2hvdy5icy4iK3RoaXMudHlwZSk7aWYodGhpcy5oYXNDb250ZW50KCkmJnRoaXMuZW5hYmxlZCl7dGhpcy4kZWxlbWVudC50cmlnZ2VyKGIpO3ZhciBkPWEuY29udGFpbnModGhpcy4kZWxlbWVudFswXS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCx0aGlzLiRlbGVtZW50WzBdKTtpZihiLmlzRGVmYXVsdFByZXZlbnRlZCgpfHwhZClyZXR1cm47dmFyIGU9dGhpcyxmPXRoaXMudGlwKCksZz10aGlzLmdldFVJRCh0aGlzLnR5cGUpO3RoaXMuc2V0Q29udGVudCgpLGYuYXR0cigiaWQiLGcpLHRoaXMuJGVsZW1lbnQuYXR0cigiYXJpYS1kZXNjcmliZWRieSIsZyksdGhpcy5vcHRpb25zLmFuaW1hdGlvbiYmZi5hZGRDbGFzcygiZmFkZSIpO3ZhciBoPSJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLm9wdGlvbnMucGxhY2VtZW50P3RoaXMub3B0aW9ucy5wbGFjZW1lbnQuY2FsbCh0aGlzLGZbMF0sdGhpcy4kZWxlbWVudFswXSk6dGhpcy5vcHRpb25zLnBsYWNlbWVudCxpPS9ccz9hdXRvP1xzPy9pLGo9aS50ZXN0KGgpO2omJihoPWgucmVwbGFjZShpLCIiKXx8InRvcCIpLGYuZGV0YWNoKCkuY3NzKHt0b3A6MCxsZWZ0OjAsZGlzcGxheToiYmxvY2sifSkuYWRkQ2xhc3MoaCkuZGF0YSgiYnMuIit0aGlzLnR5cGUsdGhpcyksdGhpcy5vcHRpb25zLmNvbnRhaW5lcj9mLmFwcGVuZFRvKHRoaXMub3B0aW9ucy5jb250YWluZXIpOmYuaW5zZXJ0QWZ0ZXIodGhpcy4kZWxlbWVudCksdGhpcy4kZWxlbWVudC50cmlnZ2VyKCJpbnNlcnRlZC5icy4iK3RoaXMudHlwZSk7dmFyIGs9dGhpcy5nZXRQb3NpdGlvbigpLGw9ZlswXS5vZmZzZXRXaWR0aCxtPWZbMF0ub2Zmc2V0SGVpZ2h0O2lmKGope3ZhciBuPWgsbz10aGlzLmdldFBvc2l0aW9uKHRoaXMuJHZpZXdwb3J0KTtoPSJib3R0b20iPT1oJiZrLmJvdHRvbSttPm8uYm90dG9tPyJ0b3AiOiJ0b3AiPT1oJiZrLnRvcC1tPG8udG9wPyJib3R0b20iOiJyaWdodCI9PWgmJmsucmlnaHQrbD5vLndpZHRoPyJsZWZ0IjoibGVmdCI9PWgmJmsubGVmdC1sPG8ubGVmdD8icmlnaHQiOmgsZi5yZW1vdmVDbGFzcyhuKS5hZGRDbGFzcyhoKX12YXIgcD10aGlzLmdldENhbGN1bGF0ZWRPZmZzZXQoaCxrLGwsbSk7dGhpcy5hcHBseVBsYWNlbWVudChwLGgpO3ZhciBxPWZ1bmN0aW9uKCl7dmFyIGE9ZS5ob3ZlclN0YXRlO2UuJGVsZW1lbnQudHJpZ2dlcigic2hvd24uYnMuIitlLnR5cGUpLGUuaG92ZXJTdGF0ZT1udWxsLCJvdXQiPT1hJiZlLmxlYXZlKGUpfTthLnN1cHBvcnQudHJhbnNpdGlvbiYmdGhpcy4kdGlwLmhhc0NsYXNzKCJmYWRlIik/Zi5vbmUoImJzVHJhbnNpdGlvbkVuZCIscSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5UUkFOU0lUSU9OX0RVUkFUSU9OKTpxKCl9fSxjLnByb3RvdHlwZS5hcHBseVBsYWNlbWVudD1mdW5jdGlvbihiLGMpe3ZhciBkPXRoaXMudGlwKCksZT1kWzBdLm9mZnNldFdpZHRoLGY9ZFswXS5vZmZzZXRIZWlnaHQsZz1wYXJzZUludChkLmNzcygibWFyZ2luLXRvcCIpLDEwKSxoPXBhcnNlSW50KGQuY3NzKCJtYXJnaW4tbGVmdCIpLDEwKTtpc05hTihnKSYmKGc9MCksaXNOYU4oaCkmJihoPTApLGIudG9wKz1nLGIubGVmdCs9aCxhLm9mZnNldC5zZXRPZmZzZXQoZFswXSxhLmV4dGVuZCh7dXNpbmc6ZnVuY3Rpb24oYSl7ZC5jc3Moe3RvcDpNYXRoLnJvdW5kKGEudG9wKSxsZWZ0Ok1hdGgucm91bmQoYS5sZWZ0KX0pfX0sYiksMCksZC5hZGRDbGFzcygiaW4iKTt2YXIgaT1kWzBdLm9mZnNldFdpZHRoLGo9ZFswXS5vZmZzZXRIZWlnaHQ7InRvcCI9PWMmJmohPWYmJihiLnRvcD1iLnRvcCtmLWopO3ZhciBrPXRoaXMuZ2V0Vmlld3BvcnRBZGp1c3RlZERlbHRhKGMsYixpLGopO2subGVmdD9iLmxlZnQrPWsubGVmdDpiLnRvcCs9ay50b3A7dmFyIGw9L3RvcHxib3R0b20vLnRlc3QoYyksbT1sPzIqay5sZWZ0LWUraToyKmsudG9wLWYraixuPWw/Im9mZnNldFdpZHRoIjoib2Zmc2V0SGVpZ2h0IjtkLm9mZnNldChiKSx0aGlzLnJlcGxhY2VBcnJvdyhtLGRbMF1bbl0sbCl9LGMucHJvdG90eXBlLnJlcGxhY2VBcnJvdz1mdW5jdGlvbihhLGIsYyl7dGhpcy5hcnJvdygpLmNzcyhjPyJsZWZ0IjoidG9wIiw1MCooMS1hL2IpKyIlIikuY3NzKGM/InRvcCI6ImxlZnQiLCIiKX0sYy5wcm90b3R5cGUuc2V0Q29udGVudD1mdW5jdGlvbigpe3ZhciBhPXRoaXMudGlwKCksYj10aGlzLmdldFRpdGxlKCk7YS5maW5kKCIudG9vbHRpcC1pbm5lciIpW3RoaXMub3B0aW9ucy5odG1sPyJodG1sIjoidGV4dCJdKGIpLGEucmVtb3ZlQ2xhc3MoImZhZGUgaW4gdG9wIGJvdHRvbSBsZWZ0IHJpZ2h0Iil9LGMucHJvdG90eXBlLmhpZGU9ZnVuY3Rpb24oYil7ZnVuY3Rpb24gZCgpeyJpbiIhPWUuaG92ZXJTdGF0ZSYmZi5kZXRhY2goKSxlLiRlbGVtZW50LnJlbW92ZUF0dHIoImFyaWEtZGVzY3JpYmVkYnkiKS50cmlnZ2VyKCJoaWRkZW4uYnMuIitlLnR5cGUpLGImJmIoKX12YXIgZT10aGlzLGY9YSh0aGlzLiR0aXApLGc9YS5FdmVudCgiaGlkZS5icy4iK3RoaXMudHlwZSk7cmV0dXJuIHRoaXMuJGVsZW1lbnQudHJpZ2dlcihnKSxnLmlzRGVmYXVsdFByZXZlbnRlZCgpP3ZvaWQgMDooZi5yZW1vdmVDbGFzcygiaW4iKSxhLnN1cHBvcnQudHJhbnNpdGlvbiYmZi5oYXNDbGFzcygiZmFkZSIpP2Yub25lKCJic1RyYW5zaXRpb25FbmQiLGQpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTik6ZCgpLHRoaXMuaG92ZXJTdGF0ZT1udWxsLHRoaXMpfSxjLnByb3RvdHlwZS5maXhUaXRsZT1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnQ7KGEuYXR0cigidGl0bGUiKXx8InN0cmluZyIhPXR5cGVvZiBhLmF0dHIoImRhdGEtb3JpZ2luYWwtdGl0bGUiKSkmJmEuYXR0cigiZGF0YS1vcmlnaW5hbC10aXRsZSIsYS5hdHRyKCJ0aXRsZSIpfHwiIikuYXR0cigidGl0bGUiLCIiKX0sYy5wcm90b3R5cGUuaGFzQ29udGVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRpdGxlKCl9LGMucHJvdG90eXBlLmdldFBvc2l0aW9uPWZ1bmN0aW9uKGIpe2I9Ynx8dGhpcy4kZWxlbWVudDt2YXIgYz1iWzBdLGQ9IkJPRFkiPT1jLnRhZ05hbWUsZT1jLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO251bGw9PWUud2lkdGgmJihlPWEuZXh0ZW5kKHt9LGUse3dpZHRoOmUucmlnaHQtZS5sZWZ0LGhlaWdodDplLmJvdHRvbS1lLnRvcH0pKTt2YXIgZj1kP3t0b3A6MCxsZWZ0OjB9OmIub2Zmc2V0KCksZz17c2Nyb2xsOmQ/ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A6Yi5zY3JvbGxUb3AoKX0saD1kP3t3aWR0aDphKHdpbmRvdykud2lkdGgoKSxoZWlnaHQ6YSh3aW5kb3cpLmhlaWdodCgpfTpudWxsO3JldHVybiBhLmV4dGVuZCh7fSxlLGcsaCxmKX0sYy5wcm90b3R5cGUuZ2V0Q2FsY3VsYXRlZE9mZnNldD1mdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4iYm90dG9tIj09YT97dG9wOmIudG9wK2IuaGVpZ2h0LGxlZnQ6Yi5sZWZ0K2Iud2lkdGgvMi1jLzJ9OiJ0b3AiPT1hP3t0b3A6Yi50b3AtZCxsZWZ0OmIubGVmdCtiLndpZHRoLzItYy8yfToibGVmdCI9PWE/e3RvcDpiLnRvcCtiLmhlaWdodC8yLWQvMixsZWZ0OmIubGVmdC1jfTp7dG9wOmIudG9wK2IuaGVpZ2h0LzItZC8yLGxlZnQ6Yi5sZWZ0K2Iud2lkdGh9fSxjLnByb3RvdHlwZS5nZXRWaWV3cG9ydEFkanVzdGVkRGVsdGE9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9e3RvcDowLGxlZnQ6MH07aWYoIXRoaXMuJHZpZXdwb3J0KXJldHVybiBlO3ZhciBmPXRoaXMub3B0aW9ucy52aWV3cG9ydCYmdGhpcy5vcHRpb25zLnZpZXdwb3J0LnBhZGRpbmd8fDAsZz10aGlzLmdldFBvc2l0aW9uKHRoaXMuJHZpZXdwb3J0KTtpZigvcmlnaHR8bGVmdC8udGVzdChhKSl7dmFyIGg9Yi50b3AtZi1nLnNjcm9sbCxpPWIudG9wK2YtZy5zY3JvbGwrZDtoPGcudG9wP2UudG9wPWcudG9wLWg6aT5nLnRvcCtnLmhlaWdodCYmKGUudG9wPWcudG9wK2cuaGVpZ2h0LWkpfWVsc2V7dmFyIGo9Yi5sZWZ0LWYsaz1iLmxlZnQrZitjO2o8Zy5sZWZ0P2UubGVmdD1nLmxlZnQtajprPmcucmlnaHQmJihlLmxlZnQ9Zy5sZWZ0K2cud2lkdGgtayl9cmV0dXJuIGV9LGMucHJvdG90eXBlLmdldFRpdGxlPWZ1bmN0aW9uKCl7dmFyIGEsYj10aGlzLiRlbGVtZW50LGM9dGhpcy5vcHRpb25zO3JldHVybiBhPWIuYXR0cigiZGF0YS1vcmlnaW5hbC10aXRsZSIpfHwoImZ1bmN0aW9uIj09dHlwZW9mIGMudGl0bGU/Yy50aXRsZS5jYWxsKGJbMF0pOmMudGl0bGUpfSxjLnByb3RvdHlwZS5nZXRVSUQ9ZnVuY3Rpb24oYSl7ZG8gYSs9fn4oMWU2Kk1hdGgucmFuZG9tKCkpO3doaWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpKTtyZXR1cm4gYX0sYy5wcm90b3R5cGUudGlwPWZ1bmN0aW9uKCl7aWYoIXRoaXMuJHRpcCYmKHRoaXMuJHRpcD1hKHRoaXMub3B0aW9ucy50ZW1wbGF0ZSksMSE9dGhpcy4kdGlwLmxlbmd0aCkpdGhyb3cgbmV3IEVycm9yKHRoaXMudHlwZSsiIGB0ZW1wbGF0ZWAgb3B0aW9uIG11c3QgY29uc2lzdCBvZiBleGFjdGx5IDEgdG9wLWxldmVsIGVsZW1lbnQhIik7cmV0dXJuIHRoaXMuJHRpcH0sYy5wcm90b3R5cGUuYXJyb3c9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kYXJyb3c9dGhpcy4kYXJyb3d8fHRoaXMudGlwKCkuZmluZCgiLnRvb2x0aXAtYXJyb3ciKX0sYy5wcm90b3R5cGUuZW5hYmxlPWZ1bmN0aW9uKCl7dGhpcy5lbmFibGVkPSEwfSxjLnByb3RvdHlwZS5kaXNhYmxlPWZ1bmN0aW9uKCl7dGhpcy5lbmFibGVkPSExfSxjLnByb3RvdHlwZS50b2dnbGVFbmFibGVkPWZ1bmN0aW9uKCl7dGhpcy5lbmFibGVkPSF0aGlzLmVuYWJsZWR9LGMucHJvdG90eXBlLnRvZ2dsZT1mdW5jdGlvbihiKXt2YXIgYz10aGlzO2ImJihjPWEoYi5jdXJyZW50VGFyZ2V0KS5kYXRhKCJicy4iK3RoaXMudHlwZSksY3x8KGM9bmV3IHRoaXMuY29uc3RydWN0b3IoYi5jdXJyZW50VGFyZ2V0LHRoaXMuZ2V0RGVsZWdhdGVPcHRpb25zKCkpLGEoYi5jdXJyZW50VGFyZ2V0KS5kYXRhKCJicy4iK3RoaXMudHlwZSxjKSkpLGI/KGMuaW5TdGF0ZS5jbGljaz0hYy5pblN0YXRlLmNsaWNrLGMuaXNJblN0YXRlVHJ1ZSgpP2MuZW50ZXIoYyk6Yy5sZWF2ZShjKSk6Yy50aXAoKS5oYXNDbGFzcygiaW4iKT9jLmxlYXZlKGMpOmMuZW50ZXIoYyl9LGMucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO2NsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpLHRoaXMuaGlkZShmdW5jdGlvbigpe2EuJGVsZW1lbnQub2ZmKCIuIithLnR5cGUpLnJlbW92ZURhdGEoImJzLiIrYS50eXBlKSxhLiR0aXAmJmEuJHRpcC5kZXRhY2goKSxhLiR0aXA9bnVsbCxhLiRhcnJvdz1udWxsLGEuJHZpZXdwb3J0PW51bGx9KX07dmFyIGQ9YS5mbi50b29sdGlwO2EuZm4udG9vbHRpcD1iLGEuZm4udG9vbHRpcC5Db25zdHJ1Y3Rvcj1jLGEuZm4udG9vbHRpcC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4udG9vbHRpcD1kLHRoaXN9fShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9YSh0aGlzKSxlPWQuZGF0YSgiYnMucG9wb3ZlciIpLGY9Im9iamVjdCI9PXR5cGVvZiBiJiZiOyhlfHwhL2Rlc3Ryb3l8aGlkZS8udGVzdChiKSkmJihlfHxkLmRhdGEoImJzLnBvcG92ZXIiLGU9bmV3IGModGhpcyxmKSksInN0cmluZyI9PXR5cGVvZiBiJiZlW2JdKCkpfSl9dmFyIGM9ZnVuY3Rpb24oYSxiKXt0aGlzLmluaXQoInBvcG92ZXIiLGEsYil9O2lmKCFhLmZuLnRvb2x0aXApdGhyb3cgbmV3IEVycm9yKCJQb3BvdmVyIHJlcXVpcmVzIHRvb2x0aXAuanMiKTtjLlZFUlNJT049IjMuMy41IixjLkRFRkFVTFRTPWEuZXh0ZW5kKHt9LGEuZm4udG9vbHRpcC5Db25zdHJ1Y3Rvci5ERUZBVUxUUyx7cGxhY2VtZW50OiJyaWdodCIsdHJpZ2dlcjoiY2xpY2siLGNvbnRlbnQ6IiIsdGVtcGxhdGU6JzxkaXYgY2xhc3M9InBvcG92ZXIiIHJvbGU9InRvb2x0aXAiPjxkaXYgY2xhc3M9ImFycm93Ij48L2Rpdj48aDMgY2xhc3M9InBvcG92ZXItdGl0bGUiPjwvaDM+PGRpdiBjbGFzcz0icG9wb3Zlci1jb250ZW50Ij48L2Rpdj48L2Rpdj4nfSksYy5wcm90b3R5cGU9YS5leHRlbmQoe30sYS5mbi50b29sdGlwLkNvbnN0cnVjdG9yLnByb3RvdHlwZSksYy5wcm90b3R5cGUuY29uc3RydWN0b3I9YyxjLnByb3RvdHlwZS5nZXREZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBjLkRFRkFVTFRTfSxjLnByb3RvdHlwZS5zZXRDb250ZW50PWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy50aXAoKSxiPXRoaXMuZ2V0VGl0bGUoKSxjPXRoaXMuZ2V0Q29udGVudCgpO2EuZmluZCgiLnBvcG92ZXItdGl0bGUiKVt0aGlzLm9wdGlvbnMuaHRtbD8iaHRtbCI6InRleHQiXShiKSxhLmZpbmQoIi5wb3BvdmVyLWNvbnRlbnQiKS5jaGlsZHJlbigpLmRldGFjaCgpLmVuZCgpW3RoaXMub3B0aW9ucy5odG1sPyJzdHJpbmciPT10eXBlb2YgYz8iaHRtbCI6ImFwcGVuZCI6InRleHQiXShjKSxhLnJlbW92ZUNsYXNzKCJmYWRlIHRvcCBib3R0b20gbGVmdCByaWdodCBpbiIpLGEuZmluZCgiLnBvcG92ZXItdGl0bGUiKS5odG1sKCl8fGEuZmluZCgiLnBvcG92ZXItdGl0bGUiKS5oaWRlKCl9LGMucHJvdG90eXBlLmhhc0NvbnRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUaXRsZSgpfHx0aGlzLmdldENvbnRlbnQoKX0sYy5wcm90b3R5cGUuZ2V0Q29udGVudD1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnQsYj10aGlzLm9wdGlvbnM7cmV0dXJuIGEuYXR0cigiZGF0YS1jb250ZW50Iil8fCgiZnVuY3Rpb24iPT10eXBlb2YgYi5jb250ZW50P2IuY29udGVudC5jYWxsKGFbMF0pOmIuY29udGVudCl9LGMucHJvdG90eXBlLmFycm93PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGFycm93PXRoaXMuJGFycm93fHx0aGlzLnRpcCgpLmZpbmQoIi5hcnJvdyIpfTt2YXIgZD1hLmZuLnBvcG92ZXI7YS5mbi5wb3BvdmVyPWIsYS5mbi5wb3BvdmVyLkNvbnN0cnVjdG9yPWMsYS5mbi5wb3BvdmVyLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5wb3BvdmVyPWQsdGhpc319KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGMsZCl7dGhpcy4kYm9keT1hKGRvY3VtZW50LmJvZHkpLHRoaXMuJHNjcm9sbEVsZW1lbnQ9YShhKGMpLmlzKGRvY3VtZW50LmJvZHkpP3dpbmRvdzpjKSx0aGlzLm9wdGlvbnM9YS5leHRlbmQoe30sYi5ERUZBVUxUUyxkKSx0aGlzLnNlbGVjdG9yPSh0aGlzLm9wdGlvbnMudGFyZ2V0fHwiIikrIiAubmF2IGxpID4gYSIsdGhpcy5vZmZzZXRzPVtdLHRoaXMudGFyZ2V0cz1bXSx0aGlzLmFjdGl2ZVRhcmdldD1udWxsLHRoaXMuc2Nyb2xsSGVpZ2h0PTAsdGhpcy4kc2Nyb2xsRWxlbWVudC5vbigic2Nyb2xsLmJzLnNjcm9sbHNweSIsYS5wcm94eSh0aGlzLnByb2Nlc3MsdGhpcykpLHRoaXMucmVmcmVzaCgpLHRoaXMucHJvY2VzcygpfWZ1bmN0aW9uIGMoYyl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoImJzLnNjcm9sbHNweSIpLGY9Im9iamVjdCI9PXR5cGVvZiBjJiZjO2V8fGQuZGF0YSgiYnMuc2Nyb2xsc3B5IixlPW5ldyBiKHRoaXMsZikpLCJzdHJpbmciPT10eXBlb2YgYyYmZVtjXSgpfSl9Yi5WRVJTSU9OPSIzLjMuNSIsYi5ERUZBVUxUUz17b2Zmc2V0OjEwfSxiLnByb3RvdHlwZS5nZXRTY3JvbGxIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kc2Nyb2xsRWxlbWVudFswXS5zY3JvbGxIZWlnaHR8fE1hdGgubWF4KHRoaXMuJGJvZHlbMF0uc2Nyb2xsSGVpZ2h0LGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQpfSxiLnByb3RvdHlwZS5yZWZyZXNoPWZ1bmN0aW9uKCl7dmFyIGI9dGhpcyxjPSJvZmZzZXQiLGQ9MDt0aGlzLm9mZnNldHM9W10sdGhpcy50YXJnZXRzPVtdLHRoaXMuc2Nyb2xsSGVpZ2h0PXRoaXMuZ2V0U2Nyb2xsSGVpZ2h0KCksYS5pc1dpbmRvdyh0aGlzLiRzY3JvbGxFbGVtZW50WzBdKXx8KGM9InBvc2l0aW9uIixkPXRoaXMuJHNjcm9sbEVsZW1lbnQuc2Nyb2xsVG9wKCkpLHRoaXMuJGJvZHkuZmluZCh0aGlzLnNlbGVjdG9yKS5tYXAoZnVuY3Rpb24oKXt2YXIgYj1hKHRoaXMpLGU9Yi5kYXRhKCJ0YXJnZXQiKXx8Yi5hdHRyKCJocmVmIiksZj0vXiMuLy50ZXN0KGUpJiZhKGUpO3JldHVybiBmJiZmLmxlbmd0aCYmZi5pcygiOnZpc2libGUiKSYmW1tmW2NdKCkudG9wK2QsZV1dfHxudWxsfSkuc29ydChmdW5jdGlvbihhLGIpe3JldHVybiBhWzBdLWJbMF19KS5lYWNoKGZ1bmN0aW9uKCl7Yi5vZmZzZXRzLnB1c2godGhpc1swXSksYi50YXJnZXRzLnB1c2godGhpc1sxXSl9KX0sYi5wcm90b3R5cGUucHJvY2Vzcz1mdW5jdGlvbigpe3ZhciBhLGI9dGhpcy4kc2Nyb2xsRWxlbWVudC5zY3JvbGxUb3AoKSt0aGlzLm9wdGlvbnMub2Zmc2V0LGM9dGhpcy5nZXRTY3JvbGxIZWlnaHQoKSxkPXRoaXMub3B0aW9ucy5vZmZzZXQrYy10aGlzLiRzY3JvbGxFbGVtZW50LmhlaWdodCgpLGU9dGhpcy5vZmZzZXRzLGY9dGhpcy50YXJnZXRzLGc9dGhpcy5hY3RpdmVUYXJnZXQ7aWYodGhpcy5zY3JvbGxIZWlnaHQhPWMmJnRoaXMucmVmcmVzaCgpLGI+PWQpcmV0dXJuIGchPShhPWZbZi5sZW5ndGgtMV0pJiZ0aGlzLmFjdGl2YXRlKGEpO2lmKGcmJmI8ZVswXSlyZXR1cm4gdGhpcy5hY3RpdmVUYXJnZXQ9bnVsbCx0aGlzLmNsZWFyKCk7Zm9yKGE9ZS5sZW5ndGg7YS0tOylnIT1mW2FdJiZiPj1lW2FdJiYodm9pZCAwPT09ZVthKzFdfHxiPGVbYSsxXSkmJnRoaXMuYWN0aXZhdGUoZlthXSl9LGIucHJvdG90eXBlLmFjdGl2YXRlPWZ1bmN0aW9uKGIpe3RoaXMuYWN0aXZlVGFyZ2V0PWIsdGhpcy5jbGVhcigpO3ZhciBjPXRoaXMuc2VsZWN0b3IrJ1tkYXRhLXRhcmdldD0iJytiKyciXSwnK3RoaXMuc2VsZWN0b3IrJ1tocmVmPSInK2IrJyJdJyxkPWEoYykucGFyZW50cygibGkiKS5hZGRDbGFzcygiYWN0aXZlIik7ZC5wYXJlbnQoIi5kcm9wZG93bi1tZW51IikubGVuZ3RoJiYoZD1kLmNsb3Nlc3QoImxpLmRyb3Bkb3duIikuYWRkQ2xhc3MoImFjdGl2ZSIpKSwKZC50cmlnZ2VyKCJhY3RpdmF0ZS5icy5zY3JvbGxzcHkiKX0sYi5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXthKHRoaXMuc2VsZWN0b3IpLnBhcmVudHNVbnRpbCh0aGlzLm9wdGlvbnMudGFyZ2V0LCIuYWN0aXZlIikucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpfTt2YXIgZD1hLmZuLnNjcm9sbHNweTthLmZuLnNjcm9sbHNweT1jLGEuZm4uc2Nyb2xsc3B5LkNvbnN0cnVjdG9yPWIsYS5mbi5zY3JvbGxzcHkubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLnNjcm9sbHNweT1kLHRoaXN9LGEod2luZG93KS5vbigibG9hZC5icy5zY3JvbGxzcHkuZGF0YS1hcGkiLGZ1bmN0aW9uKCl7YSgnW2RhdGEtc3B5PSJzY3JvbGwiXScpLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1hKHRoaXMpO2MuY2FsbChiLGIuZGF0YSgpKX0pfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1hKHRoaXMpLGU9ZC5kYXRhKCJicy50YWIiKTtlfHxkLmRhdGEoImJzLnRhYiIsZT1uZXcgYyh0aGlzKSksInN0cmluZyI9PXR5cGVvZiBiJiZlW2JdKCl9KX12YXIgYz1mdW5jdGlvbihiKXt0aGlzLmVsZW1lbnQ9YShiKX07Yy5WRVJTSU9OPSIzLjMuNSIsYy5UUkFOU0lUSU9OX0RVUkFUSU9OPTE1MCxjLnByb3RvdHlwZS5zaG93PWZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5lbGVtZW50LGM9Yi5jbG9zZXN0KCJ1bDpub3QoLmRyb3Bkb3duLW1lbnUpIiksZD1iLmRhdGEoInRhcmdldCIpO2lmKGR8fChkPWIuYXR0cigiaHJlZiIpLGQ9ZCYmZC5yZXBsYWNlKC8uKig/PSNbXlxzXSokKS8sIiIpKSwhYi5wYXJlbnQoImxpIikuaGFzQ2xhc3MoImFjdGl2ZSIpKXt2YXIgZT1jLmZpbmQoIi5hY3RpdmU6bGFzdCBhIiksZj1hLkV2ZW50KCJoaWRlLmJzLnRhYiIse3JlbGF0ZWRUYXJnZXQ6YlswXX0pLGc9YS5FdmVudCgic2hvdy5icy50YWIiLHtyZWxhdGVkVGFyZ2V0OmVbMF19KTtpZihlLnRyaWdnZXIoZiksYi50cmlnZ2VyKGcpLCFnLmlzRGVmYXVsdFByZXZlbnRlZCgpJiYhZi5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7dmFyIGg9YShkKTt0aGlzLmFjdGl2YXRlKGIuY2xvc2VzdCgibGkiKSxjKSx0aGlzLmFjdGl2YXRlKGgsaC5wYXJlbnQoKSxmdW5jdGlvbigpe2UudHJpZ2dlcih7dHlwZToiaGlkZGVuLmJzLnRhYiIscmVsYXRlZFRhcmdldDpiWzBdfSksYi50cmlnZ2VyKHt0eXBlOiJzaG93bi5icy50YWIiLHJlbGF0ZWRUYXJnZXQ6ZVswXX0pfSl9fX0sYy5wcm90b3R5cGUuYWN0aXZhdGU9ZnVuY3Rpb24oYixkLGUpe2Z1bmN0aW9uIGYoKXtnLnJlbW92ZUNsYXNzKCJhY3RpdmUiKS5maW5kKCI+IC5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSIpLnJlbW92ZUNsYXNzKCJhY3RpdmUiKS5lbmQoKS5maW5kKCdbZGF0YS10b2dnbGU9InRhYiJdJykuYXR0cigiYXJpYS1leHBhbmRlZCIsITEpLGIuYWRkQ2xhc3MoImFjdGl2ZSIpLmZpbmQoJ1tkYXRhLXRvZ2dsZT0idGFiIl0nKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMCksaD8oYlswXS5vZmZzZXRXaWR0aCxiLmFkZENsYXNzKCJpbiIpKTpiLnJlbW92ZUNsYXNzKCJmYWRlIiksYi5wYXJlbnQoIi5kcm9wZG93bi1tZW51IikubGVuZ3RoJiZiLmNsb3Nlc3QoImxpLmRyb3Bkb3duIikuYWRkQ2xhc3MoImFjdGl2ZSIpLmVuZCgpLmZpbmQoJ1tkYXRhLXRvZ2dsZT0idGFiIl0nKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMCksZSYmZSgpfXZhciBnPWQuZmluZCgiPiAuYWN0aXZlIiksaD1lJiZhLnN1cHBvcnQudHJhbnNpdGlvbiYmKGcubGVuZ3RoJiZnLmhhc0NsYXNzKCJmYWRlIil8fCEhZC5maW5kKCI+IC5mYWRlIikubGVuZ3RoKTtnLmxlbmd0aCYmaD9nLm9uZSgiYnNUcmFuc2l0aW9uRW5kIixmKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChjLlRSQU5TSVRJT05fRFVSQVRJT04pOmYoKSxnLnJlbW92ZUNsYXNzKCJpbiIpfTt2YXIgZD1hLmZuLnRhYjthLmZuLnRhYj1iLGEuZm4udGFiLkNvbnN0cnVjdG9yPWMsYS5mbi50YWIubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLnRhYj1kLHRoaXN9O3ZhciBlPWZ1bmN0aW9uKGMpe2MucHJldmVudERlZmF1bHQoKSxiLmNhbGwoYSh0aGlzKSwic2hvdyIpfTthKGRvY3VtZW50KS5vbigiY2xpY2suYnMudGFiLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlPSJ0YWIiXScsZSkub24oImNsaWNrLmJzLnRhYi5kYXRhLWFwaSIsJ1tkYXRhLXRvZ2dsZT0icGlsbCJdJyxlKX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoImJzLmFmZml4IiksZj0ib2JqZWN0Ij09dHlwZW9mIGImJmI7ZXx8ZC5kYXRhKCJicy5hZmZpeCIsZT1uZXcgYyh0aGlzLGYpKSwic3RyaW5nIj09dHlwZW9mIGImJmVbYl0oKX0pfXZhciBjPWZ1bmN0aW9uKGIsZCl7dGhpcy5vcHRpb25zPWEuZXh0ZW5kKHt9LGMuREVGQVVMVFMsZCksdGhpcy4kdGFyZ2V0PWEodGhpcy5vcHRpb25zLnRhcmdldCkub24oInNjcm9sbC5icy5hZmZpeC5kYXRhLWFwaSIsYS5wcm94eSh0aGlzLmNoZWNrUG9zaXRpb24sdGhpcykpLm9uKCJjbGljay5icy5hZmZpeC5kYXRhLWFwaSIsYS5wcm94eSh0aGlzLmNoZWNrUG9zaXRpb25XaXRoRXZlbnRMb29wLHRoaXMpKSx0aGlzLiRlbGVtZW50PWEoYiksdGhpcy5hZmZpeGVkPW51bGwsdGhpcy51bnBpbj1udWxsLHRoaXMucGlubmVkT2Zmc2V0PW51bGwsdGhpcy5jaGVja1Bvc2l0aW9uKCl9O2MuVkVSU0lPTj0iMy4zLjUiLGMuUkVTRVQ9ImFmZml4IGFmZml4LXRvcCBhZmZpeC1ib3R0b20iLGMuREVGQVVMVFM9e29mZnNldDowLHRhcmdldDp3aW5kb3d9LGMucHJvdG90eXBlLmdldFN0YXRlPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXRoaXMuJHRhcmdldC5zY3JvbGxUb3AoKSxmPXRoaXMuJGVsZW1lbnQub2Zmc2V0KCksZz10aGlzLiR0YXJnZXQuaGVpZ2h0KCk7aWYobnVsbCE9YyYmInRvcCI9PXRoaXMuYWZmaXhlZClyZXR1cm4gYz5lPyJ0b3AiOiExO2lmKCJib3R0b20iPT10aGlzLmFmZml4ZWQpcmV0dXJuIG51bGwhPWM/ZSt0aGlzLnVucGluPD1mLnRvcD8hMToiYm90dG9tIjphLWQ+PWUrZz8hMToiYm90dG9tIjt2YXIgaD1udWxsPT10aGlzLmFmZml4ZWQsaT1oP2U6Zi50b3Asaj1oP2c6YjtyZXR1cm4gbnVsbCE9YyYmYz49ZT8idG9wIjpudWxsIT1kJiZpK2o+PWEtZD8iYm90dG9tIjohMX0sYy5wcm90b3R5cGUuZ2V0UGlubmVkT2Zmc2V0PWZ1bmN0aW9uKCl7aWYodGhpcy5waW5uZWRPZmZzZXQpcmV0dXJuIHRoaXMucGlubmVkT2Zmc2V0O3RoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoYy5SRVNFVCkuYWRkQ2xhc3MoImFmZml4Iik7dmFyIGE9dGhpcy4kdGFyZ2V0LnNjcm9sbFRvcCgpLGI9dGhpcy4kZWxlbWVudC5vZmZzZXQoKTtyZXR1cm4gdGhpcy5waW5uZWRPZmZzZXQ9Yi50b3AtYX0sYy5wcm90b3R5cGUuY2hlY2tQb3NpdGlvbldpdGhFdmVudExvb3A9ZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGEucHJveHkodGhpcy5jaGVja1Bvc2l0aW9uLHRoaXMpLDEpfSxjLnByb3RvdHlwZS5jaGVja1Bvc2l0aW9uPWZ1bmN0aW9uKCl7aWYodGhpcy4kZWxlbWVudC5pcygiOnZpc2libGUiKSl7dmFyIGI9dGhpcy4kZWxlbWVudC5oZWlnaHQoKSxkPXRoaXMub3B0aW9ucy5vZmZzZXQsZT1kLnRvcCxmPWQuYm90dG9tLGc9TWF0aC5tYXgoYShkb2N1bWVudCkuaGVpZ2h0KCksYShkb2N1bWVudC5ib2R5KS5oZWlnaHQoKSk7Im9iamVjdCIhPXR5cGVvZiBkJiYoZj1lPWQpLCJmdW5jdGlvbiI9PXR5cGVvZiBlJiYoZT1kLnRvcCh0aGlzLiRlbGVtZW50KSksImZ1bmN0aW9uIj09dHlwZW9mIGYmJihmPWQuYm90dG9tKHRoaXMuJGVsZW1lbnQpKTt2YXIgaD10aGlzLmdldFN0YXRlKGcsYixlLGYpO2lmKHRoaXMuYWZmaXhlZCE9aCl7bnVsbCE9dGhpcy51bnBpbiYmdGhpcy4kZWxlbWVudC5jc3MoInRvcCIsIiIpO3ZhciBpPSJhZmZpeCIrKGg/Ii0iK2g6IiIpLGo9YS5FdmVudChpKyIuYnMuYWZmaXgiKTtpZih0aGlzLiRlbGVtZW50LnRyaWdnZXIoaiksai5pc0RlZmF1bHRQcmV2ZW50ZWQoKSlyZXR1cm47dGhpcy5hZmZpeGVkPWgsdGhpcy51bnBpbj0iYm90dG9tIj09aD90aGlzLmdldFBpbm5lZE9mZnNldCgpOm51bGwsdGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcyhjLlJFU0VUKS5hZGRDbGFzcyhpKS50cmlnZ2VyKGkucmVwbGFjZSgiYWZmaXgiLCJhZmZpeGVkIikrIi5icy5hZmZpeCIpfSJib3R0b20iPT1oJiZ0aGlzLiRlbGVtZW50Lm9mZnNldCh7dG9wOmctYi1mfSl9fTt2YXIgZD1hLmZuLmFmZml4O2EuZm4uYWZmaXg9YixhLmZuLmFmZml4LkNvbnN0cnVjdG9yPWMsYS5mbi5hZmZpeC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4uYWZmaXg9ZCx0aGlzfSxhKHdpbmRvdykub24oImxvYWQiLGZ1bmN0aW9uKCl7YSgnW2RhdGEtc3B5PSJhZmZpeCJdJykuZWFjaChmdW5jdGlvbigpe3ZhciBjPWEodGhpcyksZD1jLmRhdGEoKTtkLm9mZnNldD1kLm9mZnNldHx8e30sbnVsbCE9ZC5vZmZzZXRCb3R0b20mJihkLm9mZnNldC5ib3R0b209ZC5vZmZzZXRCb3R0b20pLG51bGwhPWQub2Zmc2V0VG9wJiYoZC5vZmZzZXQudG9wPWQub2Zmc2V0VG9wKSxiLmNhbGwoYyxkKX0pfSl9KGpRdWVyeSk7"></script>
<script src="data:application/javascript;base64,LyoqCiogQHByZXNlcnZlIEhUTUw1IFNoaXYgMy43LjIgfCBAYWZhcmthcyBAamRhbHRvbiBAam9uX25lYWwgQHJlbSB8IE1JVC9HUEwyIExpY2Vuc2VkCiovCi8vIE9ubHkgcnVuIHRoaXMgY29kZSBpbiBJRSA4CmlmICghIXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKCJNU0lFIDgiKSkgewohZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGEsYil7dmFyIGM9YS5jcmVhdGVFbGVtZW50KCJwIiksZD1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGEuZG9jdW1lbnRFbGVtZW50O3JldHVybiBjLmlubmVySFRNTD0ieDxzdHlsZT4iK2IrIjwvc3R5bGU+IixkLmluc2VydEJlZm9yZShjLmxhc3RDaGlsZCxkLmZpcnN0Q2hpbGQpfWZ1bmN0aW9uIGQoKXt2YXIgYT10LmVsZW1lbnRzO3JldHVybiJzdHJpbmciPT10eXBlb2YgYT9hLnNwbGl0KCIgIik6YX1mdW5jdGlvbiBlKGEsYil7dmFyIGM9dC5lbGVtZW50czsic3RyaW5nIiE9dHlwZW9mIGMmJihjPWMuam9pbigiICIpKSwic3RyaW5nIiE9dHlwZW9mIGEmJihhPWEuam9pbigiICIpKSx0LmVsZW1lbnRzPWMrIiAiK2EsaihiKX1mdW5jdGlvbiBmKGEpe3ZhciBiPXNbYVtxXV07cmV0dXJuIGJ8fChiPXt9LHIrKyxhW3FdPXIsc1tyXT1iKSxifWZ1bmN0aW9uIGcoYSxjLGQpe2lmKGN8fChjPWIpLGwpcmV0dXJuIGMuY3JlYXRlRWxlbWVudChhKTtkfHwoZD1mKGMpKTt2YXIgZTtyZXR1cm4gZT1kLmNhY2hlW2FdP2QuY2FjaGVbYV0uY2xvbmVOb2RlKCk6cC50ZXN0KGEpPyhkLmNhY2hlW2FdPWQuY3JlYXRlRWxlbShhKSkuY2xvbmVOb2RlKCk6ZC5jcmVhdGVFbGVtKGEpLCFlLmNhbkhhdmVDaGlsZHJlbnx8by50ZXN0KGEpfHxlLnRhZ1Vybj9lOmQuZnJhZy5hcHBlbmRDaGlsZChlKX1mdW5jdGlvbiBoKGEsYyl7aWYoYXx8KGE9YiksbClyZXR1cm4gYS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Yz1jfHxmKGEpO2Zvcih2YXIgZT1jLmZyYWcuY2xvbmVOb2RlKCksZz0wLGg9ZCgpLGk9aC5sZW5ndGg7aT5nO2crKyllLmNyZWF0ZUVsZW1lbnQoaFtnXSk7cmV0dXJuIGV9ZnVuY3Rpb24gaShhLGIpe2IuY2FjaGV8fChiLmNhY2hlPXt9LGIuY3JlYXRlRWxlbT1hLmNyZWF0ZUVsZW1lbnQsYi5jcmVhdGVGcmFnPWEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCxiLmZyYWc9Yi5jcmVhdGVGcmFnKCkpLGEuY3JlYXRlRWxlbWVudD1mdW5jdGlvbihjKXtyZXR1cm4gdC5zaGl2TWV0aG9kcz9nKGMsYSxiKTpiLmNyZWF0ZUVsZW0oYyl9LGEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudD1GdW5jdGlvbigiaCxmIiwicmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49Zi5jbG9uZU5vZGUoKSxjPW4uY3JlYXRlRWxlbWVudDtoLnNoaXZNZXRob2RzJiYoIitkKCkuam9pbigpLnJlcGxhY2UoL1tcd1wtOl0rL2csZnVuY3Rpb24oYSl7cmV0dXJuIGIuY3JlYXRlRWxlbShhKSxiLmZyYWcuY3JlYXRlRWxlbWVudChhKSwnYygiJythKyciKSd9KSsiKTtyZXR1cm4gbn0iKSh0LGIuZnJhZyl9ZnVuY3Rpb24gaihhKXthfHwoYT1iKTt2YXIgZD1mKGEpO3JldHVybiF0LnNoaXZDU1N8fGt8fGQuaGFzQ1NTfHwoZC5oYXNDU1M9ISFjKGEsImFydGljbGUsYXNpZGUsZGlhbG9nLGZpZ2NhcHRpb24sZmlndXJlLGZvb3RlcixoZWFkZXIsaGdyb3VwLG1haW4sbmF2LHNlY3Rpb257ZGlzcGxheTpibG9ja31tYXJre2JhY2tncm91bmQ6I0ZGMDtjb2xvcjojMDAwfXRlbXBsYXRle2Rpc3BsYXk6bm9uZX0iKSksbHx8aShhLGQpLGF9dmFyIGssbCxtPSIzLjcuMiIsbj1hLmh0bWw1fHx7fSxvPS9ePHxeKD86YnV0dG9ufG1hcHxzZWxlY3R8dGV4dGFyZWF8b2JqZWN0fGlmcmFtZXxvcHRpb258b3B0Z3JvdXApJC9pLHA9L14oPzphfGJ8Y29kZXxkaXZ8ZmllbGRzZXR8aDF8aDJ8aDN8aDR8aDV8aDZ8aXxsYWJlbHxsaXxvbHxwfHF8c3BhbnxzdHJvbmd8c3R5bGV8dGFibGV8dGJvZHl8dGR8dGh8dHJ8dWwpJC9pLHE9Il9odG1sNXNoaXYiLHI9MCxzPXt9OyFmdW5jdGlvbigpe3RyeXt2YXIgYT1iLmNyZWF0ZUVsZW1lbnQoImEiKTthLmlubmVySFRNTD0iPHh5ej48L3h5ej4iLGs9ImhpZGRlbiJpbiBhLGw9MT09YS5jaGlsZE5vZGVzLmxlbmd0aHx8ZnVuY3Rpb24oKXtiLmNyZWF0ZUVsZW1lbnQoImEiKTt2YXIgYT1iLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGEuY2xvbmVOb2RlfHwidW5kZWZpbmVkIj09dHlwZW9mIGEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudHx8InVuZGVmaW5lZCI9PXR5cGVvZiBhLmNyZWF0ZUVsZW1lbnR9KCl9Y2F0Y2goYyl7az0hMCxsPSEwfX0oKTt2YXIgdD17ZWxlbWVudHM6bi5lbGVtZW50c3x8ImFiYnIgYXJ0aWNsZSBhc2lkZSBhdWRpbyBiZGkgY2FudmFzIGRhdGEgZGF0YWxpc3QgZGV0YWlscyBkaWFsb2cgZmlnY2FwdGlvbiBmaWd1cmUgZm9vdGVyIGhlYWRlciBoZ3JvdXAgbWFpbiBtYXJrIG1ldGVyIG5hdiBvdXRwdXQgcGljdHVyZSBwcm9ncmVzcyBzZWN0aW9uIHN1bW1hcnkgdGVtcGxhdGUgdGltZSB2aWRlbyIsdmVyc2lvbjptLHNoaXZDU1M6bi5zaGl2Q1NTIT09ITEsc3VwcG9ydHNVbmtub3duRWxlbWVudHM6bCxzaGl2TWV0aG9kczpuLnNoaXZNZXRob2RzIT09ITEsdHlwZToiZGVmYXVsdCIsc2hpdkRvY3VtZW50OmosY3JlYXRlRWxlbWVudDpnLGNyZWF0ZURvY3VtZW50RnJhZ21lbnQ6aCxhZGRFbGVtZW50czplfTthLmh0bWw1PXQsaihiKX0odGhpcyxkb2N1bWVudCk7Cn07Cg=="></script>
<script src="data:application/javascript;base64,LyohIFJlc3BvbmQuanMgdjEuNC4yOiBtaW4vbWF4LXdpZHRoIG1lZGlhIHF1ZXJ5IHBvbHlmaWxsICogQ29weXJpZ2h0IDIwMTMgU2NvdHQgSmVobAogKiBMaWNlbnNlZCB1bmRlciBodHRwczovL2dpdGh1Yi5jb20vc2NvdHRqZWhsL1Jlc3BvbmQvYmxvYi9tYXN0ZXIvTElDRU5TRS1NSVQKICogICovCgovLyBPbmx5IHJ1biB0aGlzIGNvZGUgaW4gSUUgOAppZiAoISF3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgiTVNJRSA4IikpIHsKIWZ1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjthLm1hdGNoTWVkaWE9YS5tYXRjaE1lZGlhfHxmdW5jdGlvbihhKXt2YXIgYixjPWEuZG9jdW1lbnRFbGVtZW50LGQ9Yy5maXJzdEVsZW1lbnRDaGlsZHx8Yy5maXJzdENoaWxkLGU9YS5jcmVhdGVFbGVtZW50KCJib2R5IiksZj1hLmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBmLmlkPSJtcS10ZXN0LTEiLGYuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7dG9wOi0xMDBlbSIsZS5zdHlsZS5iYWNrZ3JvdW5kPSJub25lIixlLmFwcGVuZENoaWxkKGYpLGZ1bmN0aW9uKGEpe3JldHVybiBmLmlubmVySFRNTD0nJnNoeTs8c3R5bGUgbWVkaWE9IicrYSsnIj4gI21xLXRlc3QtMSB7IHdpZHRoOiA0MnB4OyB9PC9zdHlsZT4nLGMuaW5zZXJ0QmVmb3JlKGUsZCksYj00Mj09PWYub2Zmc2V0V2lkdGgsYy5yZW1vdmVDaGlsZChlKSx7bWF0Y2hlczpiLG1lZGlhOmF9fX0oYS5kb2N1bWVudCl9KHRoaXMpLGZ1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKCl7dSghMCl9dmFyIGM9e307YS5yZXNwb25kPWMsYy51cGRhdGU9ZnVuY3Rpb24oKXt9O3ZhciBkPVtdLGU9ZnVuY3Rpb24oKXt2YXIgYj0hMTt0cnl7Yj1uZXcgYS5YTUxIdHRwUmVxdWVzdH1jYXRjaChjKXtiPW5ldyBhLkFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIil9cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGJ9fSgpLGY9ZnVuY3Rpb24oYSxiKXt2YXIgYz1lKCk7YyYmKGMub3BlbigiR0VUIixhLCEwKSxjLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpezQhPT1jLnJlYWR5U3RhdGV8fDIwMCE9PWMuc3RhdHVzJiYzMDQhPT1jLnN0YXR1c3x8YihjLnJlc3BvbnNlVGV4dCl9LDQhPT1jLnJlYWR5U3RhdGUmJmMuc2VuZChudWxsKSl9O2lmKGMuYWpheD1mLGMucXVldWU9ZCxjLnJlZ2V4PXttZWRpYTovQG1lZGlhW15ce10rXHsoW15ce1x9XSpce1teXH1ce10qXH0pKy9naSxrZXlmcmFtZXM6L0AoPzpcLSg/Om98bW96fHdlYmtpdClcLSk/a2V5ZnJhbWVzW15ce10rXHsoPzpbXlx7XH1dKlx7W15cfVx7XSpcfSkrW15cfV0qXH0vZ2ksdXJsczovKHVybFwoKVsnIl0/KFteXC9cKSciXVteOlwpJyJdKylbJyJdPyhcKSkvZyxmaW5kU3R5bGVzOi9AbWVkaWEgKihbXlx7XSspXHsoW1xTXHNdKz8pJC8sb25seTovKG9ubHlccyspPyhbYS16QS1aXSspXHM/LyxtaW53Oi9cKFtcc10qbWluXC13aWR0aFxzKjpbXHNdKihbXHNdKlswLTlcLl0rKShweHxlbSlbXHNdKlwpLyxtYXh3Oi9cKFtcc10qbWF4XC13aWR0aFxzKjpbXHNdKihbXHNdKlswLTlcLl0rKShweHxlbSlbXHNdKlwpL30sYy5tZWRpYVF1ZXJpZXNTdXBwb3J0ZWQ9YS5tYXRjaE1lZGlhJiZudWxsIT09YS5tYXRjaE1lZGlhKCJvbmx5IGFsbCIpJiZhLm1hdGNoTWVkaWEoIm9ubHkgYWxsIikubWF0Y2hlcywhYy5tZWRpYVF1ZXJpZXNTdXBwb3J0ZWQpe3ZhciBnLGgsaSxqPWEuZG9jdW1lbnQsaz1qLmRvY3VtZW50RWxlbWVudCxsPVtdLG09W10sbj1bXSxvPXt9LHA9MzAscT1qLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGsscj1qLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJiYXNlIilbMF0scz1xLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5rIiksdD1mdW5jdGlvbigpe3ZhciBhLGI9ai5jcmVhdGVFbGVtZW50KCJkaXYiKSxjPWouYm9keSxkPWsuc3R5bGUuZm9udFNpemUsZT1jJiZjLnN0eWxlLmZvbnRTaXplLGY9ITE7cmV0dXJuIGIuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7Zm9udC1zaXplOjFlbTt3aWR0aDoxZW0iLGN8fChjPWY9ai5jcmVhdGVFbGVtZW50KCJib2R5IiksYy5zdHlsZS5iYWNrZ3JvdW5kPSJub25lIiksay5zdHlsZS5mb250U2l6ZT0iMTAwJSIsYy5zdHlsZS5mb250U2l6ZT0iMTAwJSIsYy5hcHBlbmRDaGlsZChiKSxmJiZrLmluc2VydEJlZm9yZShjLGsuZmlyc3RDaGlsZCksYT1iLm9mZnNldFdpZHRoLGY/ay5yZW1vdmVDaGlsZChjKTpjLnJlbW92ZUNoaWxkKGIpLGsuc3R5bGUuZm9udFNpemU9ZCxlJiYoYy5zdHlsZS5mb250U2l6ZT1lKSxhPWk9cGFyc2VGbG9hdChhKX0sdT1mdW5jdGlvbihiKXt2YXIgYz0iY2xpZW50V2lkdGgiLGQ9a1tjXSxlPSJDU1MxQ29tcGF0Ij09PWouY29tcGF0TW9kZSYmZHx8ai5ib2R5W2NdfHxkLGY9e30sbz1zW3MubGVuZ3RoLTFdLHI9KG5ldyBEYXRlKS5nZXRUaW1lKCk7aWYoYiYmZyYmcD5yLWcpcmV0dXJuIGEuY2xlYXJUaW1lb3V0KGgpLGg9YS5zZXRUaW1lb3V0KHUscCksdm9pZCAwO2c9cjtmb3IodmFyIHYgaW4gbClpZihsLmhhc093blByb3BlcnR5KHYpKXt2YXIgdz1sW3ZdLHg9dy5taW53LHk9dy5tYXh3LHo9bnVsbD09PXgsQT1udWxsPT09eSxCPSJlbSI7eCYmKHg9cGFyc2VGbG9hdCh4KSooeC5pbmRleE9mKEIpPi0xP2l8fHQoKToxKSkseSYmKHk9cGFyc2VGbG9hdCh5KSooeS5pbmRleE9mKEIpPi0xP2l8fHQoKToxKSksdy5oYXNxdWVyeSYmKHomJkF8fCEoenx8ZT49eCl8fCEoQXx8eT49ZSkpfHwoZlt3Lm1lZGlhXXx8KGZbdy5tZWRpYV09W10pLGZbdy5tZWRpYV0ucHVzaChtW3cucnVsZXNdKSl9Zm9yKHZhciBDIGluIG4pbi5oYXNPd25Qcm9wZXJ0eShDKSYmbltDXSYmbltDXS5wYXJlbnROb2RlPT09cSYmcS5yZW1vdmVDaGlsZChuW0NdKTtuLmxlbmd0aD0wO2Zvcih2YXIgRCBpbiBmKWlmKGYuaGFzT3duUHJvcGVydHkoRCkpe3ZhciBFPWouY3JlYXRlRWxlbWVudCgic3R5bGUiKSxGPWZbRF0uam9pbigiXG4iKTtFLnR5cGU9InRleHQvY3NzIixFLm1lZGlhPUQscS5pbnNlcnRCZWZvcmUoRSxvLm5leHRTaWJsaW5nKSxFLnN0eWxlU2hlZXQ/RS5zdHlsZVNoZWV0LmNzc1RleHQ9RjpFLmFwcGVuZENoaWxkKGouY3JlYXRlVGV4dE5vZGUoRikpLG4ucHVzaChFKX19LHY9ZnVuY3Rpb24oYSxiLGQpe3ZhciBlPWEucmVwbGFjZShjLnJlZ2V4LmtleWZyYW1lcywiIikubWF0Y2goYy5yZWdleC5tZWRpYSksZj1lJiZlLmxlbmd0aHx8MDtiPWIuc3Vic3RyaW5nKDAsYi5sYXN0SW5kZXhPZigiLyIpKTt2YXIgZz1mdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKGMucmVnZXgudXJscywiJDEiK2IrIiQyJDMiKX0saD0hZiYmZDtiLmxlbmd0aCYmKGIrPSIvIiksaCYmKGY9MSk7Zm9yKHZhciBpPTA7Zj5pO2krKyl7dmFyIGosayxuLG87aD8oaj1kLG0ucHVzaChnKGEpKSk6KGo9ZVtpXS5tYXRjaChjLnJlZ2V4LmZpbmRTdHlsZXMpJiZSZWdFeHAuJDEsbS5wdXNoKFJlZ0V4cC4kMiYmZyhSZWdFeHAuJDIpKSksbj1qLnNwbGl0KCIsIiksbz1uLmxlbmd0aDtmb3IodmFyIHA9MDtvPnA7cCsrKWs9bltwXSxsLnB1c2goe21lZGlhOmsuc3BsaXQoIigiKVswXS5tYXRjaChjLnJlZ2V4Lm9ubHkpJiZSZWdFeHAuJDJ8fCJhbGwiLHJ1bGVzOm0ubGVuZ3RoLTEsaGFzcXVlcnk6ay5pbmRleE9mKCIoIik+LTEsbWludzprLm1hdGNoKGMucmVnZXgubWludykmJnBhcnNlRmxvYXQoUmVnRXhwLiQxKSsoUmVnRXhwLiQyfHwiIiksbWF4dzprLm1hdGNoKGMucmVnZXgubWF4dykmJnBhcnNlRmxvYXQoUmVnRXhwLiQxKSsoUmVnRXhwLiQyfHwiIil9KX11KCl9LHc9ZnVuY3Rpb24oKXtpZihkLmxlbmd0aCl7dmFyIGI9ZC5zaGlmdCgpO2YoYi5ocmVmLGZ1bmN0aW9uKGMpe3YoYyxiLmhyZWYsYi5tZWRpYSksb1tiLmhyZWZdPSEwLGEuc2V0VGltZW91dChmdW5jdGlvbigpe3coKX0sMCl9KX19LHg9ZnVuY3Rpb24oKXtmb3IodmFyIGI9MDtiPHMubGVuZ3RoO2IrKyl7dmFyIGM9c1tiXSxlPWMuaHJlZixmPWMubWVkaWEsZz1jLnJlbCYmInN0eWxlc2hlZXQiPT09Yy5yZWwudG9Mb3dlckNhc2UoKTtlJiZnJiYhb1tlXSYmKGMuc3R5bGVTaGVldCYmYy5zdHlsZVNoZWV0LnJhd0Nzc1RleHQ/KHYoYy5zdHlsZVNoZWV0LnJhd0Nzc1RleHQsZSxmKSxvW2VdPSEwKTooIS9eKFthLXpBLVo6XSpcL1wvKS8udGVzdChlKSYmIXJ8fGUucmVwbGFjZShSZWdFeHAuJDEsIiIpLnNwbGl0KCIvIilbMF09PT1hLmxvY2F0aW9uLmhvc3QpJiYoIi8vIj09PWUuc3Vic3RyaW5nKDAsMikmJihlPWEubG9jYXRpb24ucHJvdG9jb2wrZSksZC5wdXNoKHtocmVmOmUsbWVkaWE6Zn0pKSl9dygpfTt4KCksYy51cGRhdGU9eCxjLmdldEVtVmFsdWU9dCxhLmFkZEV2ZW50TGlzdGVuZXI/YS5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLGIsITEpOmEuYXR0YWNoRXZlbnQmJmEuYXR0YWNoRXZlbnQoIm9ucmVzaXplIixiKX19KHRoaXMpOwp9Owo="></script>
<style>h1 {font-size: 34px;}
       h1.title {font-size: 38px;}
       h2 {font-size: 30px;}
       h3 {font-size: 24px;}
       h4 {font-size: 18px;}
       h5 {font-size: 16px;}
       h6 {font-size: 12px;}
       code {color: inherit; background-color: rgba(0, 0, 0, 0.04);}
       pre:not([class]) { background-color: white }</style>
<script src="data:application/javascript;base64,LyohIGpRdWVyeSBVSSAtIHYxLjExLjQgLSAyMDE2LTAxLTA1CiogaHR0cDovL2pxdWVyeXVpLmNvbQoqIEluY2x1ZGVzOiBjb3JlLmpzLCB3aWRnZXQuanMsIG1vdXNlLmpzLCBwb3NpdGlvbi5qcywgZHJhZ2dhYmxlLmpzLCBkcm9wcGFibGUuanMsIHJlc2l6YWJsZS5qcywgc2VsZWN0YWJsZS5qcywgc29ydGFibGUuanMsIGFjY29yZGlvbi5qcywgYXV0b2NvbXBsZXRlLmpzLCBidXR0b24uanMsIGRpYWxvZy5qcywgbWVudS5qcywgcHJvZ3Jlc3NiYXIuanMsIHNlbGVjdG1lbnUuanMsIHNsaWRlci5qcywgc3Bpbm5lci5qcywgdGFicy5qcywgdG9vbHRpcC5qcywgZWZmZWN0LmpzLCBlZmZlY3QtYmxpbmQuanMsIGVmZmVjdC1ib3VuY2UuanMsIGVmZmVjdC1jbGlwLmpzLCBlZmZlY3QtZHJvcC5qcywgZWZmZWN0LWV4cGxvZGUuanMsIGVmZmVjdC1mYWRlLmpzLCBlZmZlY3QtZm9sZC5qcywgZWZmZWN0LWhpZ2hsaWdodC5qcywgZWZmZWN0LXB1ZmYuanMsIGVmZmVjdC1wdWxzYXRlLmpzLCBlZmZlY3Qtc2NhbGUuanMsIGVmZmVjdC1zaGFrZS5qcywgZWZmZWN0LXNpemUuanMsIGVmZmVjdC1zbGlkZS5qcywgZWZmZWN0LXRyYW5zZmVyLmpzCiogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnM7IExpY2Vuc2VkIE1JVCAqLwoKKGZ1bmN0aW9uKGUpeyJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFsianF1ZXJ5Il0sZSk6ZShqUXVlcnkpfSkoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCh0LHMpe3ZhciBuLGEsbyxyPXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iYXJlYSI9PT1yPyhuPXQucGFyZW50Tm9kZSxhPW4ubmFtZSx0LmhyZWYmJmEmJiJtYXAiPT09bi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPyhvPWUoImltZ1t1c2VtYXA9JyMiK2ErIiddIilbMF0sISFvJiZpKG8pKTohMSk6KC9eKGlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b258b2JqZWN0KSQvLnRlc3Qocik/IXQuZGlzYWJsZWQ6ImEiPT09cj90LmhyZWZ8fHM6cykmJmkodCl9ZnVuY3Rpb24gaSh0KXtyZXR1cm4gZS5leHByLmZpbHRlcnMudmlzaWJsZSh0KSYmIWUodCkucGFyZW50cygpLmFkZEJhY2soKS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4iaGlkZGVuIj09PWUuY3NzKHRoaXMsInZpc2liaWxpdHkiKX0pLmxlbmd0aH1mdW5jdGlvbiBzKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMuZWxlbWVudC52YWwoKTtlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9yZWZyZXNoKCksdCE9PXRoaXMuZWxlbWVudC52YWwoKSYmdGhpcy5fdHJpZ2dlcigiY2hhbmdlIil9fWUudWk9ZS51aXx8e30sZS5leHRlbmQoZS51aSx7dmVyc2lvbjoiMS4xMS40IixrZXlDb2RlOntCQUNLU1BBQ0U6OCxDT01NQToxODgsREVMRVRFOjQ2LERPV046NDAsRU5EOjM1LEVOVEVSOjEzLEVTQ0FQRToyNyxIT01FOjM2LExFRlQ6MzcsUEFHRV9ET1dOOjM0LFBBR0VfVVA6MzMsUEVSSU9EOjE5MCxSSUdIVDozOSxTUEFDRTozMixUQUI6OSxVUDozOH19KSxlLmZuLmV4dGVuZCh7c2Nyb2xsUGFyZW50OmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMuY3NzKCJwb3NpdGlvbiIpLHM9ImFic29sdXRlIj09PWksbj10Py8oYXV0b3xzY3JvbGx8aGlkZGVuKS86LyhhdXRvfHNjcm9sbCkvLGE9dGhpcy5wYXJlbnRzKCkuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKTtyZXR1cm4gcyYmInN0YXRpYyI9PT10LmNzcygicG9zaXRpb24iKT8hMTpuLnRlc3QodC5jc3MoIm92ZXJmbG93IikrdC5jc3MoIm92ZXJmbG93LXkiKSt0LmNzcygib3ZlcmZsb3cteCIpKX0pLmVxKDApO3JldHVybiJmaXhlZCIhPT1pJiZhLmxlbmd0aD9hOmUodGhpc1swXS5vd25lckRvY3VtZW50fHxkb2N1bWVudCl9LHVuaXF1ZUlkOmZ1bmN0aW9uKCl7dmFyIGU9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5pZHx8KHRoaXMuaWQ9InVpLWlkLSIrICsrZSl9KX19KCkscmVtb3ZlVW5pcXVlSWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7L151aS1pZC1cZCskLy50ZXN0KHRoaXMuaWQpJiZlKHRoaXMpLnJlbW92ZUF0dHIoImlkIil9KX19KSxlLmV4dGVuZChlLmV4cHJbIjoiXSx7ZGF0YTplLmV4cHIuY3JlYXRlUHNldWRvP2UuZXhwci5jcmVhdGVQc2V1ZG8oZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybiEhZS5kYXRhKGksdCl9fSk6ZnVuY3Rpb24odCxpLHMpe3JldHVybiEhZS5kYXRhKHQsc1szXSl9LGZvY3VzYWJsZTpmdW5jdGlvbihpKXtyZXR1cm4gdChpLCFpc05hTihlLmF0dHIoaSwidGFiaW5kZXgiKSkpfSx0YWJiYWJsZTpmdW5jdGlvbihpKXt2YXIgcz1lLmF0dHIoaSwidGFiaW5kZXgiKSxuPWlzTmFOKHMpO3JldHVybihufHxzPj0wKSYmdChpLCFuKX19KSxlKCI8YT4iKS5vdXRlcldpZHRoKDEpLmpxdWVyeXx8ZS5lYWNoKFsiV2lkdGgiLCJIZWlnaHQiXSxmdW5jdGlvbih0LGkpe2Z1bmN0aW9uIHModCxpLHMsYSl7cmV0dXJuIGUuZWFjaChuLGZ1bmN0aW9uKCl7aS09cGFyc2VGbG9hdChlLmNzcyh0LCJwYWRkaW5nIit0aGlzKSl8fDAscyYmKGktPXBhcnNlRmxvYXQoZS5jc3ModCwiYm9yZGVyIit0aGlzKyJXaWR0aCIpKXx8MCksYSYmKGktPXBhcnNlRmxvYXQoZS5jc3ModCwibWFyZ2luIit0aGlzKSl8fDApfSksaX12YXIgbj0iV2lkdGgiPT09aT9bIkxlZnQiLCJSaWdodCJdOlsiVG9wIiwiQm90dG9tIl0sYT1pLnRvTG93ZXJDYXNlKCksbz17aW5uZXJXaWR0aDplLmZuLmlubmVyV2lkdGgsaW5uZXJIZWlnaHQ6ZS5mbi5pbm5lckhlaWdodCxvdXRlcldpZHRoOmUuZm4ub3V0ZXJXaWR0aCxvdXRlckhlaWdodDplLmZuLm91dGVySGVpZ2h0fTtlLmZuWyJpbm5lciIraV09ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQ/b1siaW5uZXIiK2ldLmNhbGwodGhpcyk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZSh0aGlzKS5jc3MoYSxzKHRoaXMsdCkrInB4Iil9KX0sZS5mblsib3V0ZXIiK2ldPWZ1bmN0aW9uKHQsbil7cmV0dXJuIm51bWJlciIhPXR5cGVvZiB0P29bIm91dGVyIitpXS5jYWxsKHRoaXMsdCk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZSh0aGlzKS5jc3MoYSxzKHRoaXMsdCwhMCxuKSsicHgiKX0pfX0pLGUuZm4uYWRkQmFja3x8KGUuZm4uYWRkQmFjaz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5hZGQobnVsbD09ZT90aGlzLnByZXZPYmplY3Q6dGhpcy5wcmV2T2JqZWN0LmZpbHRlcihlKSl9KSxlKCI8YT4iKS5kYXRhKCJhLWIiLCJhIikucmVtb3ZlRGF0YSgiYS1iIikuZGF0YSgiYS1iIikmJihlLmZuLnJlbW92ZURhdGE9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3QuY2FsbCh0aGlzLGUuY2FtZWxDYXNlKGkpKTp0LmNhbGwodGhpcyl9fShlLmZuLnJlbW92ZURhdGEpKSxlLnVpLmllPSEhL21zaWUgW1x3Ll0rLy5leGVjKG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSksZS5mbi5leHRlbmQoe2ZvY3VzOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihpLHMpe3JldHVybiJudW1iZXIiPT10eXBlb2YgaT90aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD10aGlzO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtlKHQpLmZvY3VzKCkscyYmcy5jYWxsKHQpfSxpKX0pOnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oZS5mbi5mb2N1cyksZGlzYWJsZVNlbGVjdGlvbjpmdW5jdGlvbigpe3ZhciBlPSJvbnNlbGVjdHN0YXJ0ImluIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpPyJzZWxlY3RzdGFydCI6Im1vdXNlZG93biI7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYmluZChlKyIudWktZGlzYWJsZVNlbGVjdGlvbiIsZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpfSl9fSgpLGVuYWJsZVNlbGVjdGlvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnVuYmluZCgiLnVpLWRpc2FibGVTZWxlY3Rpb24iKX0sekluZGV4OmZ1bmN0aW9uKHQpe2lmKHZvaWQgMCE9PXQpcmV0dXJuIHRoaXMuY3NzKCJ6SW5kZXgiLHQpO2lmKHRoaXMubGVuZ3RoKWZvcih2YXIgaSxzLG49ZSh0aGlzWzBdKTtuLmxlbmd0aCYmblswXSE9PWRvY3VtZW50Oyl7aWYoaT1uLmNzcygicG9zaXRpb24iKSwoImFic29sdXRlIj09PWl8fCJyZWxhdGl2ZSI9PT1pfHwiZml4ZWQiPT09aSkmJihzPXBhcnNlSW50KG4uY3NzKCJ6SW5kZXgiKSwxMCksIWlzTmFOKHMpJiYwIT09cykpcmV0dXJuIHM7bj1uLnBhcmVudCgpfXJldHVybiAwfX0pLGUudWkucGx1Z2luPXthZGQ6ZnVuY3Rpb24odCxpLHMpe3ZhciBuLGE9ZS51aVt0XS5wcm90b3R5cGU7Zm9yKG4gaW4gcylhLnBsdWdpbnNbbl09YS5wbHVnaW5zW25dfHxbXSxhLnBsdWdpbnNbbl0ucHVzaChbaSxzW25dXSl9LGNhbGw6ZnVuY3Rpb24oZSx0LGkscyl7dmFyIG4sYT1lLnBsdWdpbnNbdF07aWYoYSYmKHN8fGUuZWxlbWVudFswXS5wYXJlbnROb2RlJiYxMSE9PWUuZWxlbWVudFswXS5wYXJlbnROb2RlLm5vZGVUeXBlKSlmb3Iobj0wO2EubGVuZ3RoPm47bisrKWUub3B0aW9uc1thW25dWzBdXSYmYVtuXVsxXS5hcHBseShlLmVsZW1lbnQsaSl9fTt2YXIgbj0wLGE9QXJyYXkucHJvdG90eXBlLnNsaWNlO2UuY2xlYW5EYXRhPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihpKXt2YXIgcyxuLGE7Zm9yKGE9MDtudWxsIT0obj1pW2FdKTthKyspdHJ5e3M9ZS5fZGF0YShuLCJldmVudHMiKSxzJiZzLnJlbW92ZSYmZShuKS50cmlnZ2VySGFuZGxlcigicmVtb3ZlIil9Y2F0Y2gobyl7fXQoaSl9fShlLmNsZWFuRGF0YSksZS53aWRnZXQ9ZnVuY3Rpb24odCxpLHMpe3ZhciBuLGEsbyxyLGg9e30sbD10LnNwbGl0KCIuIilbMF07cmV0dXJuIHQ9dC5zcGxpdCgiLiIpWzFdLG49bCsiLSIrdCxzfHwocz1pLGk9ZS5XaWRnZXQpLGUuZXhwclsiOiJdW24udG9Mb3dlckNhc2UoKV09ZnVuY3Rpb24odCl7cmV0dXJuISFlLmRhdGEodCxuKX0sZVtsXT1lW2xdfHx7fSxhPWVbbF1bdF0sbz1lW2xdW3RdPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX2NyZWF0ZVdpZGdldD8oYXJndW1lbnRzLmxlbmd0aCYmdGhpcy5fY3JlYXRlV2lkZ2V0KGUsdCksdm9pZCAwKTpuZXcgbyhlLHQpfSxlLmV4dGVuZChvLGEse3ZlcnNpb246cy52ZXJzaW9uLF9wcm90bzplLmV4dGVuZCh7fSxzKSxfY2hpbGRDb25zdHJ1Y3RvcnM6W119KSxyPW5ldyBpLHIub3B0aW9ucz1lLndpZGdldC5leHRlbmQoe30sci5vcHRpb25zKSxlLmVhY2gocyxmdW5jdGlvbih0LHMpe3JldHVybiBlLmlzRnVuY3Rpb24ocyk/KGhbdF09ZnVuY3Rpb24oKXt2YXIgZT1mdW5jdGlvbigpe3JldHVybiBpLnByb3RvdHlwZVt0XS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LG49ZnVuY3Rpb24oZSl7cmV0dXJuIGkucHJvdG90eXBlW3RdLmFwcGx5KHRoaXMsZSl9O3JldHVybiBmdW5jdGlvbigpe3ZhciB0LGk9dGhpcy5fc3VwZXIsYT10aGlzLl9zdXBlckFwcGx5O3JldHVybiB0aGlzLl9zdXBlcj1lLHRoaXMuX3N1cGVyQXBwbHk9bix0PXMuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX3N1cGVyPWksdGhpcy5fc3VwZXJBcHBseT1hLHR9fSgpLHZvaWQgMCk6KGhbdF09cyx2b2lkIDApfSksby5wcm90b3R5cGU9ZS53aWRnZXQuZXh0ZW5kKHIse3dpZGdldEV2ZW50UHJlZml4OmE/ci53aWRnZXRFdmVudFByZWZpeHx8dDp0fSxoLHtjb25zdHJ1Y3RvcjpvLG5hbWVzcGFjZTpsLHdpZGdldE5hbWU6dCx3aWRnZXRGdWxsTmFtZTpufSksYT8oZS5lYWNoKGEuX2NoaWxkQ29uc3RydWN0b3JzLGZ1bmN0aW9uKHQsaSl7dmFyIHM9aS5wcm90b3R5cGU7ZS53aWRnZXQocy5uYW1lc3BhY2UrIi4iK3Mud2lkZ2V0TmFtZSxvLGkuX3Byb3RvKX0pLGRlbGV0ZSBhLl9jaGlsZENvbnN0cnVjdG9ycyk6aS5fY2hpbGRDb25zdHJ1Y3RvcnMucHVzaChvKSxlLndpZGdldC5icmlkZ2UodCxvKSxvfSxlLndpZGdldC5leHRlbmQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBpLHMsbj1hLmNhbGwoYXJndW1lbnRzLDEpLG89MCxyPW4ubGVuZ3RoO3I+bztvKyspZm9yKGkgaW4gbltvXSlzPW5bb11baV0sbltvXS5oYXNPd25Qcm9wZXJ0eShpKSYmdm9pZCAwIT09cyYmKHRbaV09ZS5pc1BsYWluT2JqZWN0KHMpP2UuaXNQbGFpbk9iamVjdCh0W2ldKT9lLndpZGdldC5leHRlbmQoe30sdFtpXSxzKTplLndpZGdldC5leHRlbmQoe30scyk6cyk7cmV0dXJuIHR9LGUud2lkZ2V0LmJyaWRnZT1mdW5jdGlvbih0LGkpe3ZhciBzPWkucHJvdG90eXBlLndpZGdldEZ1bGxOYW1lfHx0O2UuZm5bdF09ZnVuY3Rpb24obil7dmFyIG89InN0cmluZyI9PXR5cGVvZiBuLHI9YS5jYWxsKGFyZ3VtZW50cywxKSxoPXRoaXM7cmV0dXJuIG8/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGksYT1lLmRhdGEodGhpcyxzKTtyZXR1cm4iaW5zdGFuY2UiPT09bj8oaD1hLCExKTphP2UuaXNGdW5jdGlvbihhW25dKSYmIl8iIT09bi5jaGFyQXQoMCk/KGk9YVtuXS5hcHBseShhLHIpLGkhPT1hJiZ2b2lkIDAhPT1pPyhoPWkmJmkuanF1ZXJ5P2gucHVzaFN0YWNrKGkuZ2V0KCkpOmksITEpOnZvaWQgMCk6ZS5lcnJvcigibm8gc3VjaCBtZXRob2QgJyIrbisiJyBmb3IgIit0KyIgd2lkZ2V0IGluc3RhbmNlIik6ZS5lcnJvcigiY2Fubm90IGNhbGwgbWV0aG9kcyBvbiAiK3QrIiBwcmlvciB0byBpbml0aWFsaXphdGlvbjsgIisiYXR0ZW1wdGVkIHRvIGNhbGwgbWV0aG9kICciK24rIiciKX0pOihyLmxlbmd0aCYmKG49ZS53aWRnZXQuZXh0ZW5kLmFwcGx5KG51bGwsW25dLmNvbmNhdChyKSkpLHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PWUuZGF0YSh0aGlzLHMpO3Q/KHQub3B0aW9uKG58fHt9KSx0Ll9pbml0JiZ0Ll9pbml0KCkpOmUuZGF0YSh0aGlzLHMsbmV3IGkobix0aGlzKSl9KSksaH19LGUuV2lkZ2V0PWZ1bmN0aW9uKCl7fSxlLldpZGdldC5fY2hpbGRDb25zdHJ1Y3RvcnM9W10sZS5XaWRnZXQucHJvdG90eXBlPXt3aWRnZXROYW1lOiJ3aWRnZXQiLHdpZGdldEV2ZW50UHJlZml4OiIiLGRlZmF1bHRFbGVtZW50OiI8ZGl2PiIsb3B0aW9uczp7ZGlzYWJsZWQ6ITEsY3JlYXRlOm51bGx9LF9jcmVhdGVXaWRnZXQ6ZnVuY3Rpb24odCxpKXtpPWUoaXx8dGhpcy5kZWZhdWx0RWxlbWVudHx8dGhpcylbMF0sdGhpcy5lbGVtZW50PWUoaSksdGhpcy51dWlkPW4rKyx0aGlzLmV2ZW50TmFtZXNwYWNlPSIuIit0aGlzLndpZGdldE5hbWUrdGhpcy51dWlkLHRoaXMuYmluZGluZ3M9ZSgpLHRoaXMuaG92ZXJhYmxlPWUoKSx0aGlzLmZvY3VzYWJsZT1lKCksaSE9PXRoaXMmJihlLmRhdGEoaSx0aGlzLndpZGdldEZ1bGxOYW1lLHRoaXMpLHRoaXMuX29uKCEwLHRoaXMuZWxlbWVudCx7cmVtb3ZlOmZ1bmN0aW9uKGUpe2UudGFyZ2V0PT09aSYmdGhpcy5kZXN0cm95KCl9fSksdGhpcy5kb2N1bWVudD1lKGkuc3R5bGU/aS5vd25lckRvY3VtZW50OmkuZG9jdW1lbnR8fGkpLHRoaXMud2luZG93PWUodGhpcy5kb2N1bWVudFswXS5kZWZhdWx0Vmlld3x8dGhpcy5kb2N1bWVudFswXS5wYXJlbnRXaW5kb3cpKSx0aGlzLm9wdGlvbnM9ZS53aWRnZXQuZXh0ZW5kKHt9LHRoaXMub3B0aW9ucyx0aGlzLl9nZXRDcmVhdGVPcHRpb25zKCksdCksdGhpcy5fY3JlYXRlKCksdGhpcy5fdHJpZ2dlcigiY3JlYXRlIixudWxsLHRoaXMuX2dldENyZWF0ZUV2ZW50RGF0YSgpKSx0aGlzLl9pbml0KCl9LF9nZXRDcmVhdGVPcHRpb25zOmUubm9vcCxfZ2V0Q3JlYXRlRXZlbnREYXRhOmUubm9vcCxfY3JlYXRlOmUubm9vcCxfaW5pdDplLm5vb3AsZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuX2Rlc3Ryb3koKSx0aGlzLmVsZW1lbnQudW5iaW5kKHRoaXMuZXZlbnROYW1lc3BhY2UpLnJlbW92ZURhdGEodGhpcy53aWRnZXRGdWxsTmFtZSkucmVtb3ZlRGF0YShlLmNhbWVsQ2FzZSh0aGlzLndpZGdldEZ1bGxOYW1lKSksdGhpcy53aWRnZXQoKS51bmJpbmQodGhpcy5ldmVudE5hbWVzcGFjZSkucmVtb3ZlQXR0cigiYXJpYS1kaXNhYmxlZCIpLnJlbW92ZUNsYXNzKHRoaXMud2lkZ2V0RnVsbE5hbWUrIi1kaXNhYmxlZCAiKyJ1aS1zdGF0ZS1kaXNhYmxlZCIpLHRoaXMuYmluZGluZ3MudW5iaW5kKHRoaXMuZXZlbnROYW1lc3BhY2UpLHRoaXMuaG92ZXJhYmxlLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpLHRoaXMuZm9jdXNhYmxlLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpfSxfZGVzdHJveTplLm5vb3Asd2lkZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWxlbWVudH0sb3B0aW9uOmZ1bmN0aW9uKHQsaSl7dmFyIHMsbixhLG89dDtpZigwPT09YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gZS53aWRnZXQuZXh0ZW5kKHt9LHRoaXMub3B0aW9ucyk7aWYoInN0cmluZyI9PXR5cGVvZiB0KWlmKG89e30scz10LnNwbGl0KCIuIiksdD1zLnNoaWZ0KCkscy5sZW5ndGgpe2ZvcihuPW9bdF09ZS53aWRnZXQuZXh0ZW5kKHt9LHRoaXMub3B0aW9uc1t0XSksYT0wO3MubGVuZ3RoLTE+YTthKyspbltzW2FdXT1uW3NbYV1dfHx7fSxuPW5bc1thXV07aWYodD1zLnBvcCgpLDE9PT1hcmd1bWVudHMubGVuZ3RoKXJldHVybiB2b2lkIDA9PT1uW3RdP251bGw6blt0XTtuW3RdPWl9ZWxzZXtpZigxPT09YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdm9pZCAwPT09dGhpcy5vcHRpb25zW3RdP251bGw6dGhpcy5vcHRpb25zW3RdO29bdF09aX1yZXR1cm4gdGhpcy5fc2V0T3B0aW9ucyhvKSx0aGlzfSxfc2V0T3B0aW9uczpmdW5jdGlvbihlKXt2YXIgdDtmb3IodCBpbiBlKXRoaXMuX3NldE9wdGlvbih0LGVbdF0pO3JldHVybiB0aGlzfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMub3B0aW9uc1tlXT10LCJkaXNhYmxlZCI9PT1lJiYodGhpcy53aWRnZXQoKS50b2dnbGVDbGFzcyh0aGlzLndpZGdldEZ1bGxOYW1lKyItZGlzYWJsZWQiLCEhdCksdCYmKHRoaXMuaG92ZXJhYmxlLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpLHRoaXMuZm9jdXNhYmxlLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpKSksdGhpc30sZW5hYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NldE9wdGlvbnMoe2Rpc2FibGVkOiExfSl9LGRpc2FibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2V0T3B0aW9ucyh7ZGlzYWJsZWQ6ITB9KX0sX29uOmZ1bmN0aW9uKHQsaSxzKXt2YXIgbixhPXRoaXM7ImJvb2xlYW4iIT10eXBlb2YgdCYmKHM9aSxpPXQsdD0hMSkscz8oaT1uPWUoaSksdGhpcy5iaW5kaW5ncz10aGlzLmJpbmRpbmdzLmFkZChpKSk6KHM9aSxpPXRoaXMuZWxlbWVudCxuPXRoaXMud2lkZ2V0KCkpLGUuZWFjaChzLGZ1bmN0aW9uKHMsbyl7ZnVuY3Rpb24gcigpe3JldHVybiB0fHxhLm9wdGlvbnMuZGlzYWJsZWQhPT0hMCYmIWUodGhpcykuaGFzQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIik/KCJzdHJpbmciPT10eXBlb2Ygbz9hW29dOm8pLmFwcGx5KGEsYXJndW1lbnRzKTp2b2lkIDB9InN0cmluZyIhPXR5cGVvZiBvJiYoci5ndWlkPW8uZ3VpZD1vLmd1aWR8fHIuZ3VpZHx8ZS5ndWlkKyspO3ZhciBoPXMubWF0Y2goL14oW1x3Oi1dKilccyooLiopJC8pLGw9aFsxXSthLmV2ZW50TmFtZXNwYWNlLHU9aFsyXTt1P24uZGVsZWdhdGUodSxsLHIpOmkuYmluZChsLHIpfSl9LF9vZmY6ZnVuY3Rpb24odCxpKXtpPShpfHwiIikuc3BsaXQoIiAiKS5qb2luKHRoaXMuZXZlbnROYW1lc3BhY2UrIiAiKSt0aGlzLmV2ZW50TmFtZXNwYWNlLHQudW5iaW5kKGkpLnVuZGVsZWdhdGUoaSksdGhpcy5iaW5kaW5ncz1lKHRoaXMuYmluZGluZ3Mubm90KHQpLmdldCgpKSx0aGlzLmZvY3VzYWJsZT1lKHRoaXMuZm9jdXNhYmxlLm5vdCh0KS5nZXQoKSksdGhpcy5ob3ZlcmFibGU9ZSh0aGlzLmhvdmVyYWJsZS5ub3QodCkuZ2V0KCkpfSxfZGVsYXk6ZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBpKCl7cmV0dXJuKCJzdHJpbmciPT10eXBlb2YgZT9zW2VdOmUpLmFwcGx5KHMsYXJndW1lbnRzKX12YXIgcz10aGlzO3JldHVybiBzZXRUaW1lb3V0KGksdHx8MCl9LF9ob3ZlcmFibGU6ZnVuY3Rpb24odCl7dGhpcy5ob3ZlcmFibGU9dGhpcy5ob3ZlcmFibGUuYWRkKHQpLHRoaXMuX29uKHQse21vdXNlZW50ZXI6ZnVuY3Rpb24odCl7ZSh0LmN1cnJlbnRUYXJnZXQpLmFkZENsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpfSxtb3VzZWxlYXZlOmZ1bmN0aW9uKHQpe2UodC5jdXJyZW50VGFyZ2V0KS5yZW1vdmVDbGFzcygidWktc3RhdGUtaG92ZXIiKX19KX0sX2ZvY3VzYWJsZTpmdW5jdGlvbih0KXt0aGlzLmZvY3VzYWJsZT10aGlzLmZvY3VzYWJsZS5hZGQodCksdGhpcy5fb24odCx7Zm9jdXNpbjpmdW5jdGlvbih0KXtlKHQuY3VycmVudFRhcmdldCkuYWRkQ2xhc3MoInVpLXN0YXRlLWZvY3VzIil9LGZvY3Vzb3V0OmZ1bmN0aW9uKHQpe2UodC5jdXJyZW50VGFyZ2V0KS5yZW1vdmVDbGFzcygidWktc3RhdGUtZm9jdXMiKX19KX0sX3RyaWdnZXI6ZnVuY3Rpb24odCxpLHMpe3ZhciBuLGEsbz10aGlzLm9wdGlvbnNbdF07aWYocz1zfHx7fSxpPWUuRXZlbnQoaSksaS50eXBlPSh0PT09dGhpcy53aWRnZXRFdmVudFByZWZpeD90OnRoaXMud2lkZ2V0RXZlbnRQcmVmaXgrdCkudG9Mb3dlckNhc2UoKSxpLnRhcmdldD10aGlzLmVsZW1lbnRbMF0sYT1pLm9yaWdpbmFsRXZlbnQpZm9yKG4gaW4gYSluIGluIGl8fChpW25dPWFbbl0pO3JldHVybiB0aGlzLmVsZW1lbnQudHJpZ2dlcihpLHMpLCEoZS5pc0Z1bmN0aW9uKG8pJiZvLmFwcGx5KHRoaXMuZWxlbWVudFswXSxbaV0uY29uY2F0KHMpKT09PSExfHxpLmlzRGVmYXVsdFByZXZlbnRlZCgpKX19LGUuZWFjaCh7c2hvdzoiZmFkZUluIixoaWRlOiJmYWRlT3V0In0sZnVuY3Rpb24odCxpKXtlLldpZGdldC5wcm90b3R5cGVbIl8iK3RdPWZ1bmN0aW9uKHMsbixhKXsic3RyaW5nIj09dHlwZW9mIG4mJihuPXtlZmZlY3Q6bn0pO3ZhciBvLHI9bj9uPT09ITB8fCJudW1iZXIiPT10eXBlb2Ygbj9pOm4uZWZmZWN0fHxpOnQ7bj1ufHx7fSwibnVtYmVyIj09dHlwZW9mIG4mJihuPXtkdXJhdGlvbjpufSksbz0hZS5pc0VtcHR5T2JqZWN0KG4pLG4uY29tcGxldGU9YSxuLmRlbGF5JiZzLmRlbGF5KG4uZGVsYXkpLG8mJmUuZWZmZWN0cyYmZS5lZmZlY3RzLmVmZmVjdFtyXT9zW3RdKG4pOnIhPT10JiZzW3JdP3Nbcl0obi5kdXJhdGlvbixuLmVhc2luZyxhKTpzLnF1ZXVlKGZ1bmN0aW9uKGkpe2UodGhpcylbdF0oKSxhJiZhLmNhbGwoc1swXSksaSgpfSl9fSksZS53aWRnZXQ7dmFyIG89ITE7ZShkb2N1bWVudCkubW91c2V1cChmdW5jdGlvbigpe289ITF9KSxlLndpZGdldCgidWkubW91c2UiLHt2ZXJzaW9uOiIxLjExLjQiLG9wdGlvbnM6e2NhbmNlbDoiaW5wdXQsdGV4dGFyZWEsYnV0dG9uLHNlbGVjdCxvcHRpb24iLGRpc3RhbmNlOjEsZGVsYXk6MH0sX21vdXNlSW5pdDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5lbGVtZW50LmJpbmQoIm1vdXNlZG93bi4iK3RoaXMud2lkZ2V0TmFtZSxmdW5jdGlvbihlKXtyZXR1cm4gdC5fbW91c2VEb3duKGUpfSkuYmluZCgiY2xpY2suIit0aGlzLndpZGdldE5hbWUsZnVuY3Rpb24oaSl7cmV0dXJuITA9PT1lLmRhdGEoaS50YXJnZXQsdC53aWRnZXROYW1lKyIucHJldmVudENsaWNrRXZlbnQiKT8oZS5yZW1vdmVEYXRhKGkudGFyZ2V0LHQud2lkZ2V0TmFtZSsiLnByZXZlbnRDbGlja0V2ZW50IiksaS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSwhMSk6dm9pZCAwfSksdGhpcy5zdGFydGVkPSExfSxfbW91c2VEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnVuYmluZCgiLiIrdGhpcy53aWRnZXROYW1lKSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSYmdGhpcy5kb2N1bWVudC51bmJpbmQoIm1vdXNlbW92ZS4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSkudW5iaW5kKCJtb3VzZXVwLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSl9LF9tb3VzZURvd246ZnVuY3Rpb24odCl7aWYoIW8pe3RoaXMuX21vdXNlTW92ZWQ9ITEsdGhpcy5fbW91c2VTdGFydGVkJiZ0aGlzLl9tb3VzZVVwKHQpLHRoaXMuX21vdXNlRG93bkV2ZW50PXQ7dmFyIGk9dGhpcyxzPTE9PT10LndoaWNoLG49InN0cmluZyI9PXR5cGVvZiB0aGlzLm9wdGlvbnMuY2FuY2VsJiZ0LnRhcmdldC5ub2RlTmFtZT9lKHQudGFyZ2V0KS5jbG9zZXN0KHRoaXMub3B0aW9ucy5jYW5jZWwpLmxlbmd0aDohMTtyZXR1cm4gcyYmIW4mJnRoaXMuX21vdXNlQ2FwdHVyZSh0KT8odGhpcy5tb3VzZURlbGF5TWV0PSF0aGlzLm9wdGlvbnMuZGVsYXksdGhpcy5tb3VzZURlbGF5TWV0fHwodGhpcy5fbW91c2VEZWxheVRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtpLm1vdXNlRGVsYXlNZXQ9ITB9LHRoaXMub3B0aW9ucy5kZWxheSkpLHRoaXMuX21vdXNlRGlzdGFuY2VNZXQodCkmJnRoaXMuX21vdXNlRGVsYXlNZXQodCkmJih0aGlzLl9tb3VzZVN0YXJ0ZWQ9dGhpcy5fbW91c2VTdGFydCh0KSE9PSExLCF0aGlzLl9tb3VzZVN0YXJ0ZWQpPyh0LnByZXZlbnREZWZhdWx0KCksITApOighMD09PWUuZGF0YSh0LnRhcmdldCx0aGlzLndpZGdldE5hbWUrIi5wcmV2ZW50Q2xpY2tFdmVudCIpJiZlLnJlbW92ZURhdGEodC50YXJnZXQsdGhpcy53aWRnZXROYW1lKyIucHJldmVudENsaWNrRXZlbnQiKSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZT1mdW5jdGlvbihlKXtyZXR1cm4gaS5fbW91c2VNb3ZlKGUpfSx0aGlzLl9tb3VzZVVwRGVsZWdhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGkuX21vdXNlVXAoZSl9LHRoaXMuZG9jdW1lbnQuYmluZCgibW91c2Vtb3ZlLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlKS5iaW5kKCJtb3VzZXVwLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSksdC5wcmV2ZW50RGVmYXVsdCgpLG89ITAsITApKTohMH19LF9tb3VzZU1vdmU6ZnVuY3Rpb24odCl7aWYodGhpcy5fbW91c2VNb3ZlZCl7aWYoZS51aS5pZSYmKCFkb2N1bWVudC5kb2N1bWVudE1vZGV8fDk+ZG9jdW1lbnQuZG9jdW1lbnRNb2RlKSYmIXQuYnV0dG9uKXJldHVybiB0aGlzLl9tb3VzZVVwKHQpO2lmKCF0LndoaWNoKXJldHVybiB0aGlzLl9tb3VzZVVwKHQpfXJldHVybih0LndoaWNofHx0LmJ1dHRvbikmJih0aGlzLl9tb3VzZU1vdmVkPSEwKSx0aGlzLl9tb3VzZVN0YXJ0ZWQ/KHRoaXMuX21vdXNlRHJhZyh0KSx0LnByZXZlbnREZWZhdWx0KCkpOih0aGlzLl9tb3VzZURpc3RhbmNlTWV0KHQpJiZ0aGlzLl9tb3VzZURlbGF5TWV0KHQpJiYodGhpcy5fbW91c2VTdGFydGVkPXRoaXMuX21vdXNlU3RhcnQodGhpcy5fbW91c2VEb3duRXZlbnQsdCkhPT0hMSx0aGlzLl9tb3VzZVN0YXJ0ZWQ/dGhpcy5fbW91c2VEcmFnKHQpOnRoaXMuX21vdXNlVXAodCkpLCF0aGlzLl9tb3VzZVN0YXJ0ZWQpfSxfbW91c2VVcDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kb2N1bWVudC51bmJpbmQoIm1vdXNlbW92ZS4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSkudW5iaW5kKCJtb3VzZXVwLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSksdGhpcy5fbW91c2VTdGFydGVkJiYodGhpcy5fbW91c2VTdGFydGVkPSExLHQudGFyZ2V0PT09dGhpcy5fbW91c2VEb3duRXZlbnQudGFyZ2V0JiZlLmRhdGEodC50YXJnZXQsdGhpcy53aWRnZXROYW1lKyIucHJldmVudENsaWNrRXZlbnQiLCEwKSx0aGlzLl9tb3VzZVN0b3AodCkpLG89ITEsITF9LF9tb3VzZURpc3RhbmNlTWV0OmZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLm1heChNYXRoLmFicyh0aGlzLl9tb3VzZURvd25FdmVudC5wYWdlWC1lLnBhZ2VYKSxNYXRoLmFicyh0aGlzLl9tb3VzZURvd25FdmVudC5wYWdlWS1lLnBhZ2VZKSk+PXRoaXMub3B0aW9ucy5kaXN0YW5jZX0sX21vdXNlRGVsYXlNZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tb3VzZURlbGF5TWV0fSxfbW91c2VTdGFydDpmdW5jdGlvbigpe30sX21vdXNlRHJhZzpmdW5jdGlvbigpe30sX21vdXNlU3RvcDpmdW5jdGlvbigpe30sX21vdXNlQ2FwdHVyZTpmdW5jdGlvbigpe3JldHVybiEwfX0pLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLHQsaSl7cmV0dXJuW3BhcnNlRmxvYXQoZVswXSkqKHAudGVzdChlWzBdKT90LzEwMDoxKSxwYXJzZUZsb2F0KGVbMV0pKihwLnRlc3QoZVsxXSk/aS8xMDA6MSldfWZ1bmN0aW9uIGkodCxpKXtyZXR1cm4gcGFyc2VJbnQoZS5jc3ModCxpKSwxMCl8fDB9ZnVuY3Rpb24gcyh0KXt2YXIgaT10WzBdO3JldHVybiA5PT09aS5ub2RlVHlwZT97d2lkdGg6dC53aWR0aCgpLGhlaWdodDp0LmhlaWdodCgpLG9mZnNldDp7dG9wOjAsbGVmdDowfX06ZS5pc1dpbmRvdyhpKT97d2lkdGg6dC53aWR0aCgpLGhlaWdodDp0LmhlaWdodCgpLG9mZnNldDp7dG9wOnQuc2Nyb2xsVG9wKCksbGVmdDp0LnNjcm9sbExlZnQoKX19OmkucHJldmVudERlZmF1bHQ/e3dpZHRoOjAsaGVpZ2h0OjAsb2Zmc2V0Ont0b3A6aS5wYWdlWSxsZWZ0OmkucGFnZVh9fTp7d2lkdGg6dC5vdXRlcldpZHRoKCksaGVpZ2h0OnQub3V0ZXJIZWlnaHQoKSxvZmZzZXQ6dC5vZmZzZXQoKX19ZS51aT1lLnVpfHx7fTt2YXIgbixhLG89TWF0aC5tYXgscj1NYXRoLmFicyxoPU1hdGgucm91bmQsbD0vbGVmdHxjZW50ZXJ8cmlnaHQvLHU9L3RvcHxjZW50ZXJ8Ym90dG9tLyxkPS9bXCtcLV1cZCsoXC5bXGRdKyk/JT8vLGM9L15cdysvLHA9LyUkLyxmPWUuZm4ucG9zaXRpb247ZS5wb3NpdGlvbj17c2Nyb2xsYmFyV2lkdGg6ZnVuY3Rpb24oKXtpZih2b2lkIDAhPT1uKXJldHVybiBuO3ZhciB0LGkscz1lKCI8ZGl2IHN0eWxlPSdkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjUwcHg7aGVpZ2h0OjUwcHg7b3ZlcmZsb3c6aGlkZGVuOyc+PGRpdiBzdHlsZT0naGVpZ2h0OjEwMHB4O3dpZHRoOmF1dG87Jz48L2Rpdj48L2Rpdj4iKSxhPXMuY2hpbGRyZW4oKVswXTtyZXR1cm4gZSgiYm9keSIpLmFwcGVuZChzKSx0PWEub2Zmc2V0V2lkdGgscy5jc3MoIm92ZXJmbG93Iiwic2Nyb2xsIiksaT1hLm9mZnNldFdpZHRoLHQ9PT1pJiYoaT1zWzBdLmNsaWVudFdpZHRoKSxzLnJlbW92ZSgpLG49dC1pfSxnZXRTY3JvbGxJbmZvOmZ1bmN0aW9uKHQpe3ZhciBpPXQuaXNXaW5kb3d8fHQuaXNEb2N1bWVudD8iIjp0LmVsZW1lbnQuY3NzKCJvdmVyZmxvdy14Iikscz10LmlzV2luZG93fHx0LmlzRG9jdW1lbnQ/IiI6dC5lbGVtZW50LmNzcygib3ZlcmZsb3cteSIpLG49InNjcm9sbCI9PT1pfHwiYXV0byI9PT1pJiZ0LndpZHRoPHQuZWxlbWVudFswXS5zY3JvbGxXaWR0aCxhPSJzY3JvbGwiPT09c3x8ImF1dG8iPT09cyYmdC5oZWlnaHQ8dC5lbGVtZW50WzBdLnNjcm9sbEhlaWdodDtyZXR1cm57d2lkdGg6YT9lLnBvc2l0aW9uLnNjcm9sbGJhcldpZHRoKCk6MCxoZWlnaHQ6bj9lLnBvc2l0aW9uLnNjcm9sbGJhcldpZHRoKCk6MH19LGdldFdpdGhpbkluZm86ZnVuY3Rpb24odCl7dmFyIGk9ZSh0fHx3aW5kb3cpLHM9ZS5pc1dpbmRvdyhpWzBdKSxuPSEhaVswXSYmOT09PWlbMF0ubm9kZVR5cGU7cmV0dXJue2VsZW1lbnQ6aSxpc1dpbmRvdzpzLGlzRG9jdW1lbnQ6bixvZmZzZXQ6aS5vZmZzZXQoKXx8e2xlZnQ6MCx0b3A6MH0sc2Nyb2xsTGVmdDppLnNjcm9sbExlZnQoKSxzY3JvbGxUb3A6aS5zY3JvbGxUb3AoKSx3aWR0aDpzfHxuP2kud2lkdGgoKTppLm91dGVyV2lkdGgoKSxoZWlnaHQ6c3x8bj9pLmhlaWdodCgpOmkub3V0ZXJIZWlnaHQoKX19fSxlLmZuLnBvc2l0aW9uPWZ1bmN0aW9uKG4pe2lmKCFufHwhbi5vZilyZXR1cm4gZi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bj1lLmV4dGVuZCh7fSxuKTt2YXIgcCxtLGcsdix5LGIsXz1lKG4ub2YpLHg9ZS5wb3NpdGlvbi5nZXRXaXRoaW5JbmZvKG4ud2l0aGluKSx3PWUucG9zaXRpb24uZ2V0U2Nyb2xsSW5mbyh4KSxrPShuLmNvbGxpc2lvbnx8ImZsaXAiKS5zcGxpdCgiICIpLFQ9e307cmV0dXJuIGI9cyhfKSxfWzBdLnByZXZlbnREZWZhdWx0JiYobi5hdD0ibGVmdCB0b3AiKSxtPWIud2lkdGgsZz1iLmhlaWdodCx2PWIub2Zmc2V0LHk9ZS5leHRlbmQoe30sdiksZS5lYWNoKFsibXkiLCJhdCJdLGZ1bmN0aW9uKCl7dmFyIGUsdCxpPShuW3RoaXNdfHwiIikuc3BsaXQoIiAiKTsxPT09aS5sZW5ndGgmJihpPWwudGVzdChpWzBdKT9pLmNvbmNhdChbImNlbnRlciJdKTp1LnRlc3QoaVswXSk/WyJjZW50ZXIiXS5jb25jYXQoaSk6WyJjZW50ZXIiLCJjZW50ZXIiXSksaVswXT1sLnRlc3QoaVswXSk/aVswXToiY2VudGVyIixpWzFdPXUudGVzdChpWzFdKT9pWzFdOiJjZW50ZXIiLGU9ZC5leGVjKGlbMF0pLHQ9ZC5leGVjKGlbMV0pLFRbdGhpc109W2U/ZVswXTowLHQ/dFswXTowXSxuW3RoaXNdPVtjLmV4ZWMoaVswXSlbMF0sYy5leGVjKGlbMV0pWzBdXX0pLDE9PT1rLmxlbmd0aCYmKGtbMV09a1swXSksInJpZ2h0Ij09PW4uYXRbMF0/eS5sZWZ0Kz1tOiJjZW50ZXIiPT09bi5hdFswXSYmKHkubGVmdCs9bS8yKSwiYm90dG9tIj09PW4uYXRbMV0/eS50b3ArPWc6ImNlbnRlciI9PT1uLmF0WzFdJiYoeS50b3ArPWcvMikscD10KFQuYXQsbSxnKSx5LmxlZnQrPXBbMF0seS50b3ArPXBbMV0sdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHMsbCx1PWUodGhpcyksZD11Lm91dGVyV2lkdGgoKSxjPXUub3V0ZXJIZWlnaHQoKSxmPWkodGhpcywibWFyZ2luTGVmdCIpLGI9aSh0aGlzLCJtYXJnaW5Ub3AiKSxEPWQrZitpKHRoaXMsIm1hcmdpblJpZ2h0Iikrdy53aWR0aCxTPWMrYitpKHRoaXMsIm1hcmdpbkJvdHRvbSIpK3cuaGVpZ2h0LE49ZS5leHRlbmQoe30seSksTT10KFQubXksdS5vdXRlcldpZHRoKCksdS5vdXRlckhlaWdodCgpKTsicmlnaHQiPT09bi5teVswXT9OLmxlZnQtPWQ6ImNlbnRlciI9PT1uLm15WzBdJiYoTi5sZWZ0LT1kLzIpLCJib3R0b20iPT09bi5teVsxXT9OLnRvcC09YzoiY2VudGVyIj09PW4ubXlbMV0mJihOLnRvcC09Yy8yKSxOLmxlZnQrPU1bMF0sTi50b3ArPU1bMV0sYXx8KE4ubGVmdD1oKE4ubGVmdCksTi50b3A9aChOLnRvcCkpLHM9e21hcmdpbkxlZnQ6ZixtYXJnaW5Ub3A6Yn0sZS5lYWNoKFsibGVmdCIsInRvcCJdLGZ1bmN0aW9uKHQsaSl7ZS51aS5wb3NpdGlvbltrW3RdXSYmZS51aS5wb3NpdGlvbltrW3RdXVtpXShOLHt0YXJnZXRXaWR0aDptLHRhcmdldEhlaWdodDpnLGVsZW1XaWR0aDpkLGVsZW1IZWlnaHQ6Yyxjb2xsaXNpb25Qb3NpdGlvbjpzLGNvbGxpc2lvbldpZHRoOkQsY29sbGlzaW9uSGVpZ2h0OlMsb2Zmc2V0OltwWzBdK01bMF0scFsxXStNWzFdXSxteTpuLm15LGF0Om4uYXQsd2l0aGluOngsZWxlbTp1fSl9KSxuLnVzaW5nJiYobD1mdW5jdGlvbihlKXt2YXIgdD12LmxlZnQtTi5sZWZ0LGk9dCttLWQscz12LnRvcC1OLnRvcCxhPXMrZy1jLGg9e3RhcmdldDp7ZWxlbWVudDpfLGxlZnQ6di5sZWZ0LHRvcDp2LnRvcCx3aWR0aDptLGhlaWdodDpnfSxlbGVtZW50OntlbGVtZW50OnUsbGVmdDpOLmxlZnQsdG9wOk4udG9wLHdpZHRoOmQsaGVpZ2h0OmN9LGhvcml6b250YWw6MD5pPyJsZWZ0Ijp0PjA/InJpZ2h0IjoiY2VudGVyIix2ZXJ0aWNhbDowPmE/InRvcCI6cz4wPyJib3R0b20iOiJtaWRkbGUifTtkPm0mJm0+cih0K2kpJiYoaC5ob3Jpem9udGFsPSJjZW50ZXIiKSxjPmcmJmc+cihzK2EpJiYoaC52ZXJ0aWNhbD0ibWlkZGxlIiksaC5pbXBvcnRhbnQ9byhyKHQpLHIoaSkpPm8ocihzKSxyKGEpKT8iaG9yaXpvbnRhbCI6InZlcnRpY2FsIixuLnVzaW5nLmNhbGwodGhpcyxlLGgpfSksdS5vZmZzZXQoZS5leHRlbmQoTix7dXNpbmc6bH0pKX0pfSxlLnVpLnBvc2l0aW9uPXtmaXQ6e2xlZnQ6ZnVuY3Rpb24oZSx0KXt2YXIgaSxzPXQud2l0aGluLG49cy5pc1dpbmRvdz9zLnNjcm9sbExlZnQ6cy5vZmZzZXQubGVmdCxhPXMud2lkdGgscj1lLmxlZnQtdC5jb2xsaXNpb25Qb3NpdGlvbi5tYXJnaW5MZWZ0LGg9bi1yLGw9cit0LmNvbGxpc2lvbldpZHRoLWEtbjt0LmNvbGxpc2lvbldpZHRoPmE/aD4wJiYwPj1sPyhpPWUubGVmdCtoK3QuY29sbGlzaW9uV2lkdGgtYS1uLGUubGVmdCs9aC1pKTplLmxlZnQ9bD4wJiYwPj1oP246aD5sP24rYS10LmNvbGxpc2lvbldpZHRoOm46aD4wP2UubGVmdCs9aDpsPjA/ZS5sZWZ0LT1sOmUubGVmdD1vKGUubGVmdC1yLGUubGVmdCl9LHRvcDpmdW5jdGlvbihlLHQpe3ZhciBpLHM9dC53aXRoaW4sbj1zLmlzV2luZG93P3Muc2Nyb2xsVG9wOnMub2Zmc2V0LnRvcCxhPXQud2l0aGluLmhlaWdodCxyPWUudG9wLXQuY29sbGlzaW9uUG9zaXRpb24ubWFyZ2luVG9wLGg9bi1yLGw9cit0LmNvbGxpc2lvbkhlaWdodC1hLW47dC5jb2xsaXNpb25IZWlnaHQ+YT9oPjAmJjA+PWw/KGk9ZS50b3AraCt0LmNvbGxpc2lvbkhlaWdodC1hLW4sZS50b3ArPWgtaSk6ZS50b3A9bD4wJiYwPj1oP246aD5sP24rYS10LmNvbGxpc2lvbkhlaWdodDpuOmg+MD9lLnRvcCs9aDpsPjA/ZS50b3AtPWw6ZS50b3A9byhlLnRvcC1yLGUudG9wKX19LGZsaXA6e2xlZnQ6ZnVuY3Rpb24oZSx0KXt2YXIgaSxzLG49dC53aXRoaW4sYT1uLm9mZnNldC5sZWZ0K24uc2Nyb2xsTGVmdCxvPW4ud2lkdGgsaD1uLmlzV2luZG93P24uc2Nyb2xsTGVmdDpuLm9mZnNldC5sZWZ0LGw9ZS5sZWZ0LXQuY29sbGlzaW9uUG9zaXRpb24ubWFyZ2luTGVmdCx1PWwtaCxkPWwrdC5jb2xsaXNpb25XaWR0aC1vLWgsYz0ibGVmdCI9PT10Lm15WzBdPy10LmVsZW1XaWR0aDoicmlnaHQiPT09dC5teVswXT90LmVsZW1XaWR0aDowLHA9ImxlZnQiPT09dC5hdFswXT90LnRhcmdldFdpZHRoOiJyaWdodCI9PT10LmF0WzBdPy10LnRhcmdldFdpZHRoOjAsZj0tMip0Lm9mZnNldFswXTswPnU/KGk9ZS5sZWZ0K2MrcCtmK3QuY29sbGlzaW9uV2lkdGgtby1hLCgwPml8fHIodSk+aSkmJihlLmxlZnQrPWMrcCtmKSk6ZD4wJiYocz1lLmxlZnQtdC5jb2xsaXNpb25Qb3NpdGlvbi5tYXJnaW5MZWZ0K2MrcCtmLWgsKHM+MHx8ZD5yKHMpKSYmKGUubGVmdCs9YytwK2YpKX0sdG9wOmZ1bmN0aW9uKGUsdCl7dmFyIGkscyxuPXQud2l0aGluLGE9bi5vZmZzZXQudG9wK24uc2Nyb2xsVG9wLG89bi5oZWlnaHQsaD1uLmlzV2luZG93P24uc2Nyb2xsVG9wOm4ub2Zmc2V0LnRvcCxsPWUudG9wLXQuY29sbGlzaW9uUG9zaXRpb24ubWFyZ2luVG9wLHU9bC1oLGQ9bCt0LmNvbGxpc2lvbkhlaWdodC1vLWgsYz0idG9wIj09PXQubXlbMV0scD1jPy10LmVsZW1IZWlnaHQ6ImJvdHRvbSI9PT10Lm15WzFdP3QuZWxlbUhlaWdodDowLGY9InRvcCI9PT10LmF0WzFdP3QudGFyZ2V0SGVpZ2h0OiJib3R0b20iPT09dC5hdFsxXT8tdC50YXJnZXRIZWlnaHQ6MCxtPS0yKnQub2Zmc2V0WzFdOzA+dT8ocz1lLnRvcCtwK2YrbSt0LmNvbGxpc2lvbkhlaWdodC1vLWEsKDA+c3x8cih1KT5zKSYmKGUudG9wKz1wK2YrbSkpOmQ+MCYmKGk9ZS50b3AtdC5jb2xsaXNpb25Qb3NpdGlvbi5tYXJnaW5Ub3ArcCtmK20taCwoaT4wfHxkPnIoaSkpJiYoZS50b3ArPXArZittKSl9fSxmbGlwZml0OntsZWZ0OmZ1bmN0aW9uKCl7ZS51aS5wb3NpdGlvbi5mbGlwLmxlZnQuYXBwbHkodGhpcyxhcmd1bWVudHMpLGUudWkucG9zaXRpb24uZml0LmxlZnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSx0b3A6ZnVuY3Rpb24oKXtlLnVpLnBvc2l0aW9uLmZsaXAudG9wLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxlLnVpLnBvc2l0aW9uLmZpdC50b3AuYXBwbHkodGhpcyxhcmd1bWVudHMpfX19LGZ1bmN0aW9uKCl7dmFyIHQsaSxzLG4sbyxyPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF0saD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQocj8iZGl2IjoiYm9keSIpLHM9e3Zpc2liaWxpdHk6ImhpZGRlbiIsd2lkdGg6MCxoZWlnaHQ6MCxib3JkZXI6MCxtYXJnaW46MCxiYWNrZ3JvdW5kOiJub25lIn0sciYmZS5leHRlbmQocyx7cG9zaXRpb246ImFic29sdXRlIixsZWZ0OiItMTAwMHB4Iix0b3A6Ii0xMDAwcHgifSk7Zm9yKG8gaW4gcyl0LnN0eWxlW29dPXNbb107dC5hcHBlbmRDaGlsZChoKSxpPXJ8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxpLmluc2VydEJlZm9yZSh0LGkuZmlyc3RDaGlsZCksaC5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDEwLjc0MzIyMjJweDsiLG49ZShoKS5vZmZzZXQoKS5sZWZ0LGE9bj4xMCYmMTE+bix0LmlubmVySFRNTD0iIixpLnJlbW92ZUNoaWxkKHQpfSgpfSgpLGUudWkucG9zaXRpb24sZS53aWRnZXQoInVpLmRyYWdnYWJsZSIsZS51aS5tb3VzZSx7dmVyc2lvbjoiMS4xMS40Iix3aWRnZXRFdmVudFByZWZpeDoiZHJhZyIsb3B0aW9uczp7YWRkQ2xhc3NlczohMCxhcHBlbmRUbzoicGFyZW50IixheGlzOiExLGNvbm5lY3RUb1NvcnRhYmxlOiExLGNvbnRhaW5tZW50OiExLGN1cnNvcjoiYXV0byIsY3Vyc29yQXQ6ITEsZ3JpZDohMSxoYW5kbGU6ITEsaGVscGVyOiJvcmlnaW5hbCIsaWZyYW1lRml4OiExLG9wYWNpdHk6ITEscmVmcmVzaFBvc2l0aW9uczohMSxyZXZlcnQ6ITEscmV2ZXJ0RHVyYXRpb246NTAwLHNjb3BlOiJkZWZhdWx0IixzY3JvbGw6ITAsc2Nyb2xsU2Vuc2l0aXZpdHk6MjAsc2Nyb2xsU3BlZWQ6MjAsc25hcDohMSxzbmFwTW9kZToiYm90aCIsc25hcFRvbGVyYW5jZToyMCxzdGFjazohMSx6SW5kZXg6ITEsZHJhZzpudWxsLHN0YXJ0Om51bGwsc3RvcDpudWxsfSxfY3JlYXRlOmZ1bmN0aW9uKCl7Im9yaWdpbmFsIj09PXRoaXMub3B0aW9ucy5oZWxwZXImJnRoaXMuX3NldFBvc2l0aW9uUmVsYXRpdmUoKSx0aGlzLm9wdGlvbnMuYWRkQ2xhc3NlcyYmdGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS1kcmFnZ2FibGUiKSx0aGlzLm9wdGlvbnMuZGlzYWJsZWQmJnRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktZHJhZ2dhYmxlLWRpc2FibGVkIiksdGhpcy5fc2V0SGFuZGxlQ2xhc3NOYW1lKCksdGhpcy5fbW91c2VJbml0KCl9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXt0aGlzLl9zdXBlcihlLHQpLCJoYW5kbGUiPT09ZSYmKHRoaXMuX3JlbW92ZUhhbmRsZUNsYXNzTmFtZSgpLHRoaXMuX3NldEhhbmRsZUNsYXNzTmFtZSgpKX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5oZWxwZXJ8fHRoaXMuZWxlbWVudCkuaXMoIi51aS1kcmFnZ2FibGUtZHJhZ2dpbmciKT8odGhpcy5kZXN0cm95T25DbGVhcj0hMCx2b2lkIDApOih0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLWRyYWdnYWJsZSB1aS1kcmFnZ2FibGUtZHJhZ2dpbmcgdWktZHJhZ2dhYmxlLWRpc2FibGVkIiksdGhpcy5fcmVtb3ZlSGFuZGxlQ2xhc3NOYW1lKCksdGhpcy5fbW91c2VEZXN0cm95KCksdm9pZCAwKX0sX21vdXNlQ2FwdHVyZTpmdW5jdGlvbih0KXt2YXIgaT10aGlzLm9wdGlvbnM7cmV0dXJuIHRoaXMuX2JsdXJBY3RpdmVFbGVtZW50KHQpLHRoaXMuaGVscGVyfHxpLmRpc2FibGVkfHxlKHQudGFyZ2V0KS5jbG9zZXN0KCIudWktcmVzaXphYmxlLWhhbmRsZSIpLmxlbmd0aD4wPyExOih0aGlzLmhhbmRsZT10aGlzLl9nZXRIYW5kbGUodCksdGhpcy5oYW5kbGU/KHRoaXMuX2Jsb2NrRnJhbWVzKGkuaWZyYW1lRml4PT09ITA/ImlmcmFtZSI6aS5pZnJhbWVGaXgpLCEwKTohMSl9LF9ibG9ja0ZyYW1lczpmdW5jdGlvbih0KXt0aGlzLmlmcmFtZUJsb2Nrcz10aGlzLmRvY3VtZW50LmZpbmQodCkubWFwKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKTtyZXR1cm4gZSgiPGRpdj4iKS5jc3MoInBvc2l0aW9uIiwiYWJzb2x1dGUiKS5hcHBlbmRUbyh0LnBhcmVudCgpKS5vdXRlcldpZHRoKHQub3V0ZXJXaWR0aCgpKS5vdXRlckhlaWdodCh0Lm91dGVySGVpZ2h0KCkpLm9mZnNldCh0Lm9mZnNldCgpKVswXX0pfSxfdW5ibG9ja0ZyYW1lczpmdW5jdGlvbigpe3RoaXMuaWZyYW1lQmxvY2tzJiYodGhpcy5pZnJhbWVCbG9ja3MucmVtb3ZlKCksZGVsZXRlIHRoaXMuaWZyYW1lQmxvY2tzKX0sX2JsdXJBY3RpdmVFbGVtZW50OmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMuZG9jdW1lbnRbMF07aWYodGhpcy5oYW5kbGVFbGVtZW50LmlzKHQudGFyZ2V0KSl0cnl7aS5hY3RpdmVFbGVtZW50JiYiYm9keSIhPT1pLmFjdGl2ZUVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmZShpLmFjdGl2ZUVsZW1lbnQpLmJsdXIoKX1jYXRjaChzKXt9fSxfbW91c2VTdGFydDpmdW5jdGlvbih0KXt2YXIgaT10aGlzLm9wdGlvbnM7cmV0dXJuIHRoaXMuaGVscGVyPXRoaXMuX2NyZWF0ZUhlbHBlcih0KSx0aGlzLmhlbHBlci5hZGRDbGFzcygidWktZHJhZ2dhYmxlLWRyYWdnaW5nIiksdGhpcy5fY2FjaGVIZWxwZXJQcm9wb3J0aW9ucygpLGUudWkuZGRtYW5hZ2VyJiYoZS51aS5kZG1hbmFnZXIuY3VycmVudD10aGlzKSx0aGlzLl9jYWNoZU1hcmdpbnMoKSx0aGlzLmNzc1Bvc2l0aW9uPXRoaXMuaGVscGVyLmNzcygicG9zaXRpb24iKSx0aGlzLnNjcm9sbFBhcmVudD10aGlzLmhlbHBlci5zY3JvbGxQYXJlbnQoITApLHRoaXMub2Zmc2V0UGFyZW50PXRoaXMuaGVscGVyLm9mZnNldFBhcmVudCgpLHRoaXMuaGFzRml4ZWRBbmNlc3Rvcj10aGlzLmhlbHBlci5wYXJlbnRzKCkuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuImZpeGVkIj09PWUodGhpcykuY3NzKCJwb3NpdGlvbiIpfSkubGVuZ3RoPjAsdGhpcy5wb3NpdGlvbkFicz10aGlzLmVsZW1lbnQub2Zmc2V0KCksdGhpcy5fcmVmcmVzaE9mZnNldHModCksdGhpcy5vcmlnaW5hbFBvc2l0aW9uPXRoaXMucG9zaXRpb249dGhpcy5fZ2VuZXJhdGVQb3NpdGlvbih0LCExKSx0aGlzLm9yaWdpbmFsUGFnZVg9dC5wYWdlWCx0aGlzLm9yaWdpbmFsUGFnZVk9dC5wYWdlWSxpLmN1cnNvckF0JiZ0aGlzLl9hZGp1c3RPZmZzZXRGcm9tSGVscGVyKGkuY3Vyc29yQXQpLHRoaXMuX3NldENvbnRhaW5tZW50KCksdGhpcy5fdHJpZ2dlcigic3RhcnQiLHQpPT09ITE/KHRoaXMuX2NsZWFyKCksITEpOih0aGlzLl9jYWNoZUhlbHBlclByb3BvcnRpb25zKCksZS51aS5kZG1hbmFnZXImJiFpLmRyb3BCZWhhdmlvdXImJmUudWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKHRoaXMsdCksdGhpcy5fbm9ybWFsaXplUmlnaHRCb3R0b20oKSx0aGlzLl9tb3VzZURyYWcodCwhMCksZS51aS5kZG1hbmFnZXImJmUudWkuZGRtYW5hZ2VyLmRyYWdTdGFydCh0aGlzLHQpLCEwKX0sX3JlZnJlc2hPZmZzZXRzOmZ1bmN0aW9uKGUpe3RoaXMub2Zmc2V0PXt0b3A6dGhpcy5wb3NpdGlvbkFicy50b3AtdGhpcy5tYXJnaW5zLnRvcCxsZWZ0OnRoaXMucG9zaXRpb25BYnMubGVmdC10aGlzLm1hcmdpbnMubGVmdCxzY3JvbGw6ITEscGFyZW50OnRoaXMuX2dldFBhcmVudE9mZnNldCgpLHJlbGF0aXZlOnRoaXMuX2dldFJlbGF0aXZlT2Zmc2V0KCl9LHRoaXMub2Zmc2V0LmNsaWNrPXtsZWZ0OmUucGFnZVgtdGhpcy5vZmZzZXQubGVmdCx0b3A6ZS5wYWdlWS10aGlzLm9mZnNldC50b3B9fSxfbW91c2VEcmFnOmZ1bmN0aW9uKHQsaSl7aWYodGhpcy5oYXNGaXhlZEFuY2VzdG9yJiYodGhpcy5vZmZzZXQucGFyZW50PXRoaXMuX2dldFBhcmVudE9mZnNldCgpKSx0aGlzLnBvc2l0aW9uPXRoaXMuX2dlbmVyYXRlUG9zaXRpb24odCwhMCksdGhpcy5wb3NpdGlvbkFicz10aGlzLl9jb252ZXJ0UG9zaXRpb25UbygiYWJzb2x1dGUiKSwhaSl7dmFyIHM9dGhpcy5fdWlIYXNoKCk7aWYodGhpcy5fdHJpZ2dlcigiZHJhZyIsdCxzKT09PSExKXJldHVybiB0aGlzLl9tb3VzZVVwKHt9KSwhMTt0aGlzLnBvc2l0aW9uPXMucG9zaXRpb259cmV0dXJuIHRoaXMuaGVscGVyWzBdLnN0eWxlLmxlZnQ9dGhpcy5wb3NpdGlvbi5sZWZ0KyJweCIsdGhpcy5oZWxwZXJbMF0uc3R5bGUudG9wPXRoaXMucG9zaXRpb24udG9wKyJweCIsZS51aS5kZG1hbmFnZXImJmUudWkuZGRtYW5hZ2VyLmRyYWcodGhpcyx0KSwhMX0sX21vdXNlU3RvcDpmdW5jdGlvbih0KXt2YXIgaT10aGlzLHM9ITE7cmV0dXJuIGUudWkuZGRtYW5hZ2VyJiYhdGhpcy5vcHRpb25zLmRyb3BCZWhhdmlvdXImJihzPWUudWkuZGRtYW5hZ2VyLmRyb3AodGhpcyx0KSksdGhpcy5kcm9wcGVkJiYocz10aGlzLmRyb3BwZWQsdGhpcy5kcm9wcGVkPSExKSwiaW52YWxpZCI9PT10aGlzLm9wdGlvbnMucmV2ZXJ0JiYhc3x8InZhbGlkIj09PXRoaXMub3B0aW9ucy5yZXZlcnQmJnN8fHRoaXMub3B0aW9ucy5yZXZlcnQ9PT0hMHx8ZS5pc0Z1bmN0aW9uKHRoaXMub3B0aW9ucy5yZXZlcnQpJiZ0aGlzLm9wdGlvbnMucmV2ZXJ0LmNhbGwodGhpcy5lbGVtZW50LHMpP2UodGhpcy5oZWxwZXIpLmFuaW1hdGUodGhpcy5vcmlnaW5hbFBvc2l0aW9uLHBhcnNlSW50KHRoaXMub3B0aW9ucy5yZXZlcnREdXJhdGlvbiwxMCksZnVuY3Rpb24oKXtpLl90cmlnZ2VyKCJzdG9wIix0KSE9PSExJiZpLl9jbGVhcigpfSk6dGhpcy5fdHJpZ2dlcigic3RvcCIsdCkhPT0hMSYmdGhpcy5fY2xlYXIoKSwhMX0sX21vdXNlVXA6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3VuYmxvY2tGcmFtZXMoKSxlLnVpLmRkbWFuYWdlciYmZS51aS5kZG1hbmFnZXIuZHJhZ1N0b3AodGhpcyx0KSx0aGlzLmhhbmRsZUVsZW1lbnQuaXModC50YXJnZXQpJiZ0aGlzLmVsZW1lbnQuZm9jdXMoKSxlLnVpLm1vdXNlLnByb3RvdHlwZS5fbW91c2VVcC5jYWxsKHRoaXMsdCl9LGNhbmNlbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhlbHBlci5pcygiLnVpLWRyYWdnYWJsZS1kcmFnZ2luZyIpP3RoaXMuX21vdXNlVXAoe30pOnRoaXMuX2NsZWFyKCksdGhpc30sX2dldEhhbmRsZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5vcHRpb25zLmhhbmRsZT8hIWUodC50YXJnZXQpLmNsb3Nlc3QodGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLmhhbmRsZSkpLmxlbmd0aDohMH0sX3NldEhhbmRsZUNsYXNzTmFtZTpmdW5jdGlvbigpe3RoaXMuaGFuZGxlRWxlbWVudD10aGlzLm9wdGlvbnMuaGFuZGxlP3RoaXMuZWxlbWVudC5maW5kKHRoaXMub3B0aW9ucy5oYW5kbGUpOnRoaXMuZWxlbWVudCx0aGlzLmhhbmRsZUVsZW1lbnQuYWRkQ2xhc3MoInVpLWRyYWdnYWJsZS1oYW5kbGUiKX0sX3JlbW92ZUhhbmRsZUNsYXNzTmFtZTpmdW5jdGlvbigpe3RoaXMuaGFuZGxlRWxlbWVudC5yZW1vdmVDbGFzcygidWktZHJhZ2dhYmxlLWhhbmRsZSIpfSxfY3JlYXRlSGVscGVyOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMub3B0aW9ucyxzPWUuaXNGdW5jdGlvbihpLmhlbHBlciksbj1zP2UoaS5oZWxwZXIuYXBwbHkodGhpcy5lbGVtZW50WzBdLFt0XSkpOiJjbG9uZSI9PT1pLmhlbHBlcj90aGlzLmVsZW1lbnQuY2xvbmUoKS5yZW1vdmVBdHRyKCJpZCIpOnRoaXMuZWxlbWVudDtyZXR1cm4gbi5wYXJlbnRzKCJib2R5IikubGVuZ3RofHxuLmFwcGVuZFRvKCJwYXJlbnQiPT09aS5hcHBlbmRUbz90aGlzLmVsZW1lbnRbMF0ucGFyZW50Tm9kZTppLmFwcGVuZFRvKSxzJiZuWzBdPT09dGhpcy5lbGVtZW50WzBdJiZ0aGlzLl9zZXRQb3NpdGlvblJlbGF0aXZlKCksblswXT09PXRoaXMuZWxlbWVudFswXXx8LyhmaXhlZHxhYnNvbHV0ZSkvLnRlc3Qobi5jc3MoInBvc2l0aW9uIikpfHxuLmNzcygicG9zaXRpb24iLCJhYnNvbHV0ZSIpLG59LF9zZXRQb3NpdGlvblJlbGF0aXZlOmZ1bmN0aW9uKCl7L14oPzpyfGF8ZikvLnRlc3QodGhpcy5lbGVtZW50LmNzcygicG9zaXRpb24iKSl8fCh0aGlzLmVsZW1lbnRbMF0uc3R5bGUucG9zaXRpb249InJlbGF0aXZlIil9LF9hZGp1c3RPZmZzZXRGcm9tSGVscGVyOmZ1bmN0aW9uKHQpeyJzdHJpbmciPT10eXBlb2YgdCYmKHQ9dC5zcGxpdCgiICIpKSxlLmlzQXJyYXkodCkmJih0PXtsZWZ0Oit0WzBdLHRvcDordFsxXXx8MH0pLCJsZWZ0ImluIHQmJih0aGlzLm9mZnNldC5jbGljay5sZWZ0PXQubGVmdCt0aGlzLm1hcmdpbnMubGVmdCksInJpZ2h0ImluIHQmJih0aGlzLm9mZnNldC5jbGljay5sZWZ0PXRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgtdC5yaWdodCt0aGlzLm1hcmdpbnMubGVmdCksInRvcCJpbiB0JiYodGhpcy5vZmZzZXQuY2xpY2sudG9wPXQudG9wK3RoaXMubWFyZ2lucy50b3ApLCJib3R0b20iaW4gdCYmKHRoaXMub2Zmc2V0LmNsaWNrLnRvcD10aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC10LmJvdHRvbSt0aGlzLm1hcmdpbnMudG9wKX0sX2lzUm9vdE5vZGU6ZnVuY3Rpb24oZSl7cmV0dXJuLyhodG1sfGJvZHkpL2kudGVzdChlLnRhZ05hbWUpfHxlPT09dGhpcy5kb2N1bWVudFswXX0sX2dldFBhcmVudE9mZnNldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMub2Zmc2V0UGFyZW50Lm9mZnNldCgpLGk9dGhpcy5kb2N1bWVudFswXTtyZXR1cm4iYWJzb2x1dGUiPT09dGhpcy5jc3NQb3NpdGlvbiYmdGhpcy5zY3JvbGxQYXJlbnRbMF0hPT1pJiZlLmNvbnRhaW5zKHRoaXMuc2Nyb2xsUGFyZW50WzBdLHRoaXMub2Zmc2V0UGFyZW50WzBdKSYmKHQubGVmdCs9dGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgpLHQudG9wKz10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKSksdGhpcy5faXNSb290Tm9kZSh0aGlzLm9mZnNldFBhcmVudFswXSkmJih0PXt0b3A6MCxsZWZ0OjB9KSx7dG9wOnQudG9wKyhwYXJzZUludCh0aGlzLm9mZnNldFBhcmVudC5jc3MoImJvcmRlclRvcFdpZHRoIiksMTApfHwwKSxsZWZ0OnQubGVmdCsocGFyc2VJbnQodGhpcy5vZmZzZXRQYXJlbnQuY3NzKCJib3JkZXJMZWZ0V2lkdGgiKSwxMCl8fDApfX0sX2dldFJlbGF0aXZlT2Zmc2V0OmZ1bmN0aW9uKCl7aWYoInJlbGF0aXZlIiE9PXRoaXMuY3NzUG9zaXRpb24pcmV0dXJue3RvcDowLGxlZnQ6MH07dmFyIGU9dGhpcy5lbGVtZW50LnBvc2l0aW9uKCksdD10aGlzLl9pc1Jvb3ROb2RlKHRoaXMuc2Nyb2xsUGFyZW50WzBdKTtyZXR1cm57dG9wOmUudG9wLShwYXJzZUludCh0aGlzLmhlbHBlci5jc3MoInRvcCIpLDEwKXx8MCkrKHQ/MDp0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKSksbGVmdDplLmxlZnQtKHBhcnNlSW50KHRoaXMuaGVscGVyLmNzcygibGVmdCIpLDEwKXx8MCkrKHQ/MDp0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCkpfX0sX2NhY2hlTWFyZ2luczpmdW5jdGlvbigpe3RoaXMubWFyZ2lucz17bGVmdDpwYXJzZUludCh0aGlzLmVsZW1lbnQuY3NzKCJtYXJnaW5MZWZ0IiksMTApfHwwLHRvcDpwYXJzZUludCh0aGlzLmVsZW1lbnQuY3NzKCJtYXJnaW5Ub3AiKSwxMCl8fDAscmlnaHQ6cGFyc2VJbnQodGhpcy5lbGVtZW50LmNzcygibWFyZ2luUmlnaHQiKSwxMCl8fDAsYm90dG9tOnBhcnNlSW50KHRoaXMuZWxlbWVudC5jc3MoIm1hcmdpbkJvdHRvbSIpLDEwKXx8MH19LF9jYWNoZUhlbHBlclByb3BvcnRpb25zOmZ1bmN0aW9uKCl7dGhpcy5oZWxwZXJQcm9wb3J0aW9ucz17d2lkdGg6dGhpcy5oZWxwZXIub3V0ZXJXaWR0aCgpLGhlaWdodDp0aGlzLmhlbHBlci5vdXRlckhlaWdodCgpfX0sX3NldENvbnRhaW5tZW50OmZ1bmN0aW9uKCl7dmFyIHQsaSxzLG49dGhpcy5vcHRpb25zLGE9dGhpcy5kb2N1bWVudFswXTtyZXR1cm4gdGhpcy5yZWxhdGl2ZUNvbnRhaW5lcj1udWxsLG4uY29udGFpbm1lbnQ/IndpbmRvdyI9PT1uLmNvbnRhaW5tZW50Pyh0aGlzLmNvbnRhaW5tZW50PVtlKHdpbmRvdykuc2Nyb2xsTGVmdCgpLXRoaXMub2Zmc2V0LnJlbGF0aXZlLmxlZnQtdGhpcy5vZmZzZXQucGFyZW50LmxlZnQsZSh3aW5kb3cpLnNjcm9sbFRvcCgpLXRoaXMub2Zmc2V0LnJlbGF0aXZlLnRvcC10aGlzLm9mZnNldC5wYXJlbnQudG9wLGUod2luZG93KS5zY3JvbGxMZWZ0KCkrZSh3aW5kb3cpLndpZHRoKCktdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aC10aGlzLm1hcmdpbnMubGVmdCxlKHdpbmRvdykuc2Nyb2xsVG9wKCkrKGUod2luZG93KS5oZWlnaHQoKXx8YS5ib2R5LnBhcmVudE5vZGUuc2Nyb2xsSGVpZ2h0KS10aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC10aGlzLm1hcmdpbnMudG9wXSx2b2lkIDApOiJkb2N1bWVudCI9PT1uLmNvbnRhaW5tZW50Pyh0aGlzLmNvbnRhaW5tZW50PVswLDAsZShhKS53aWR0aCgpLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgtdGhpcy5tYXJnaW5zLmxlZnQsKGUoYSkuaGVpZ2h0KCl8fGEuYm9keS5wYXJlbnROb2RlLnNjcm9sbEhlaWdodCktdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQtdGhpcy5tYXJnaW5zLnRvcF0sdm9pZCAwKTpuLmNvbnRhaW5tZW50LmNvbnN0cnVjdG9yPT09QXJyYXk/KHRoaXMuY29udGFpbm1lbnQ9bi5jb250YWlubWVudCx2b2lkIDApOigicGFyZW50Ij09PW4uY29udGFpbm1lbnQmJihuLmNvbnRhaW5tZW50PXRoaXMuaGVscGVyWzBdLnBhcmVudE5vZGUpLGk9ZShuLmNvbnRhaW5tZW50KSxzPWlbMF0scyYmKHQ9LyhzY3JvbGx8YXV0bykvLnRlc3QoaS5jc3MoIm92ZXJmbG93IikpLHRoaXMuY29udGFpbm1lbnQ9WyhwYXJzZUludChpLmNzcygiYm9yZGVyTGVmdFdpZHRoIiksMTApfHwwKSsocGFyc2VJbnQoaS5jc3MoInBhZGRpbmdMZWZ0IiksMTApfHwwKSwocGFyc2VJbnQoaS5jc3MoImJvcmRlclRvcFdpZHRoIiksMTApfHwwKSsocGFyc2VJbnQoaS5jc3MoInBhZGRpbmdUb3AiKSwxMCl8fDApLCh0P01hdGgubWF4KHMuc2Nyb2xsV2lkdGgscy5vZmZzZXRXaWR0aCk6cy5vZmZzZXRXaWR0aCktKHBhcnNlSW50KGkuY3NzKCJib3JkZXJSaWdodFdpZHRoIiksMTApfHwwKS0ocGFyc2VJbnQoaS5jc3MoInBhZGRpbmdSaWdodCIpLDEwKXx8MCktdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aC10aGlzLm1hcmdpbnMubGVmdC10aGlzLm1hcmdpbnMucmlnaHQsKHQ/TWF0aC5tYXgocy5zY3JvbGxIZWlnaHQscy5vZmZzZXRIZWlnaHQpOnMub2Zmc2V0SGVpZ2h0KS0ocGFyc2VJbnQoaS5jc3MoImJvcmRlckJvdHRvbVdpZHRoIiksMTApfHwwKS0ocGFyc2VJbnQoaS5jc3MoInBhZGRpbmdCb3R0b20iKSwxMCl8fDApLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LXRoaXMubWFyZ2lucy50b3AtdGhpcy5tYXJnaW5zLmJvdHRvbV0sdGhpcy5yZWxhdGl2ZUNvbnRhaW5lcj1pKSx2b2lkIDApOih0aGlzLmNvbnRhaW5tZW50PW51bGwsdm9pZCAwKX0sX2NvbnZlcnRQb3NpdGlvblRvOmZ1bmN0aW9uKGUsdCl7dHx8KHQ9dGhpcy5wb3NpdGlvbik7dmFyIGk9ImFic29sdXRlIj09PWU/MTotMSxzPXRoaXMuX2lzUm9vdE5vZGUodGhpcy5zY3JvbGxQYXJlbnRbMF0pO3JldHVybnt0b3A6dC50b3ArdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wKmkrdGhpcy5vZmZzZXQucGFyZW50LnRvcCppLSgiZml4ZWQiPT09dGhpcy5jc3NQb3NpdGlvbj8tdGhpcy5vZmZzZXQuc2Nyb2xsLnRvcDpzPzA6dGhpcy5vZmZzZXQuc2Nyb2xsLnRvcCkqaSxsZWZ0OnQubGVmdCt0aGlzLm9mZnNldC5yZWxhdGl2ZS5sZWZ0KmkrdGhpcy5vZmZzZXQucGFyZW50LmxlZnQqaS0oImZpeGVkIj09PXRoaXMuY3NzUG9zaXRpb24/LXRoaXMub2Zmc2V0LnNjcm9sbC5sZWZ0OnM/MDp0aGlzLm9mZnNldC5zY3JvbGwubGVmdCkqaX19LF9nZW5lcmF0ZVBvc2l0aW9uOmZ1bmN0aW9uKGUsdCl7dmFyIGkscyxuLGEsbz10aGlzLm9wdGlvbnMscj10aGlzLl9pc1Jvb3ROb2RlKHRoaXMuc2Nyb2xsUGFyZW50WzBdKSxoPWUucGFnZVgsbD1lLnBhZ2VZO3JldHVybiByJiZ0aGlzLm9mZnNldC5zY3JvbGx8fCh0aGlzLm9mZnNldC5zY3JvbGw9e3RvcDp0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKSxsZWZ0OnRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbExlZnQoKX0pLHQmJih0aGlzLmNvbnRhaW5tZW50JiYodGhpcy5yZWxhdGl2ZUNvbnRhaW5lcj8ocz10aGlzLnJlbGF0aXZlQ29udGFpbmVyLm9mZnNldCgpLGk9W3RoaXMuY29udGFpbm1lbnRbMF0rcy5sZWZ0LHRoaXMuY29udGFpbm1lbnRbMV0rcy50b3AsdGhpcy5jb250YWlubWVudFsyXStzLmxlZnQsdGhpcy5jb250YWlubWVudFszXStzLnRvcF0pOmk9dGhpcy5jb250YWlubWVudCxlLnBhZ2VYLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ8aVswXSYmKGg9aVswXSt0aGlzLm9mZnNldC5jbGljay5sZWZ0KSxlLnBhZ2VZLXRoaXMub2Zmc2V0LmNsaWNrLnRvcDxpWzFdJiYobD1pWzFdK3RoaXMub2Zmc2V0LmNsaWNrLnRvcCksZS5wYWdlWC10aGlzLm9mZnNldC5jbGljay5sZWZ0PmlbMl0mJihoPWlbMl0rdGhpcy5vZmZzZXQuY2xpY2subGVmdCksZS5wYWdlWS10aGlzLm9mZnNldC5jbGljay50b3A+aVszXSYmKGw9aVszXSt0aGlzLm9mZnNldC5jbGljay50b3ApKSxvLmdyaWQmJihuPW8uZ3JpZFsxXT90aGlzLm9yaWdpbmFsUGFnZVkrTWF0aC5yb3VuZCgobC10aGlzLm9yaWdpbmFsUGFnZVkpL28uZ3JpZFsxXSkqby5ncmlkWzFdOnRoaXMub3JpZ2luYWxQYWdlWSxsPWk/bi10aGlzLm9mZnNldC5jbGljay50b3A+PWlbMV18fG4tdGhpcy5vZmZzZXQuY2xpY2sudG9wPmlbM10/bjpuLXRoaXMub2Zmc2V0LmNsaWNrLnRvcD49aVsxXT9uLW8uZ3JpZFsxXTpuK28uZ3JpZFsxXTpuLGE9by5ncmlkWzBdP3RoaXMub3JpZ2luYWxQYWdlWCtNYXRoLnJvdW5kKChoLXRoaXMub3JpZ2luYWxQYWdlWCkvby5ncmlkWzBdKSpvLmdyaWRbMF06dGhpcy5vcmlnaW5hbFBhZ2VYLGg9aT9hLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ+PWlbMF18fGEtdGhpcy5vZmZzZXQuY2xpY2subGVmdD5pWzJdP2E6YS10aGlzLm9mZnNldC5jbGljay5sZWZ0Pj1pWzBdP2Etby5ncmlkWzBdOmErby5ncmlkWzBdOmEpLCJ5Ij09PW8uYXhpcyYmKGg9dGhpcy5vcmlnaW5hbFBhZ2VYKSwieCI9PT1vLmF4aXMmJihsPXRoaXMub3JpZ2luYWxQYWdlWSkpLHt0b3A6bC10aGlzLm9mZnNldC5jbGljay50b3AtdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wLXRoaXMub2Zmc2V0LnBhcmVudC50b3ArKCJmaXhlZCI9PT10aGlzLmNzc1Bvc2l0aW9uPy10aGlzLm9mZnNldC5zY3JvbGwudG9wOnI/MDp0aGlzLm9mZnNldC5zY3JvbGwudG9wKSxsZWZ0OmgtdGhpcy5vZmZzZXQuY2xpY2subGVmdC10aGlzLm9mZnNldC5yZWxhdGl2ZS5sZWZ0LXRoaXMub2Zmc2V0LnBhcmVudC5sZWZ0KygiZml4ZWQiPT09dGhpcy5jc3NQb3NpdGlvbj8tdGhpcy5vZmZzZXQuc2Nyb2xsLmxlZnQ6cj8wOnRoaXMub2Zmc2V0LnNjcm9sbC5sZWZ0KX19LF9jbGVhcjpmdW5jdGlvbigpe3RoaXMuaGVscGVyLnJlbW92ZUNsYXNzKCJ1aS1kcmFnZ2FibGUtZHJhZ2dpbmciKSx0aGlzLmhlbHBlclswXT09PXRoaXMuZWxlbWVudFswXXx8dGhpcy5jYW5jZWxIZWxwZXJSZW1vdmFsfHx0aGlzLmhlbHBlci5yZW1vdmUoKSx0aGlzLmhlbHBlcj1udWxsLHRoaXMuY2FuY2VsSGVscGVyUmVtb3ZhbD0hMSx0aGlzLmRlc3Ryb3lPbkNsZWFyJiZ0aGlzLmRlc3Ryb3koKX0sX25vcm1hbGl6ZVJpZ2h0Qm90dG9tOmZ1bmN0aW9uKCl7InkiIT09dGhpcy5vcHRpb25zLmF4aXMmJiJhdXRvIiE9PXRoaXMuaGVscGVyLmNzcygicmlnaHQiKSYmKHRoaXMuaGVscGVyLndpZHRoKHRoaXMuaGVscGVyLndpZHRoKCkpLHRoaXMuaGVscGVyLmNzcygicmlnaHQiLCJhdXRvIikpLCJ4IiE9PXRoaXMub3B0aW9ucy5heGlzJiYiYXV0byIhPT10aGlzLmhlbHBlci5jc3MoImJvdHRvbSIpJiYodGhpcy5oZWxwZXIuaGVpZ2h0KHRoaXMuaGVscGVyLmhlaWdodCgpKSx0aGlzLmhlbHBlci5jc3MoImJvdHRvbSIsImF1dG8iKSl9LF90cmlnZ2VyOmZ1bmN0aW9uKHQsaSxzKXtyZXR1cm4gcz1zfHx0aGlzLl91aUhhc2goKSxlLnVpLnBsdWdpbi5jYWxsKHRoaXMsdCxbaSxzLHRoaXNdLCEwKSwvXihkcmFnfHN0YXJ0fHN0b3ApLy50ZXN0KHQpJiYodGhpcy5wb3NpdGlvbkFicz10aGlzLl9jb252ZXJ0UG9zaXRpb25UbygiYWJzb2x1dGUiKSxzLm9mZnNldD10aGlzLnBvc2l0aW9uQWJzKSxlLldpZGdldC5wcm90b3R5cGUuX3RyaWdnZXIuY2FsbCh0aGlzLHQsaSxzKX0scGx1Z2luczp7fSxfdWlIYXNoOmZ1bmN0aW9uKCl7cmV0dXJue2hlbHBlcjp0aGlzLmhlbHBlcixwb3NpdGlvbjp0aGlzLnBvc2l0aW9uLG9yaWdpbmFsUG9zaXRpb246dGhpcy5vcmlnaW5hbFBvc2l0aW9uLG9mZnNldDp0aGlzLnBvc2l0aW9uQWJzfX19KSxlLnVpLnBsdWdpbi5hZGQoImRyYWdnYWJsZSIsImNvbm5lY3RUb1NvcnRhYmxlIix7c3RhcnQ6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPWUuZXh0ZW5kKHt9LGkse2l0ZW06cy5lbGVtZW50fSk7cy5zb3J0YWJsZXM9W10sZShzLm9wdGlvbnMuY29ubmVjdFRvU29ydGFibGUpLmVhY2goZnVuY3Rpb24oKXt2YXIgaT1lKHRoaXMpLnNvcnRhYmxlKCJpbnN0YW5jZSIpO2kmJiFpLm9wdGlvbnMuZGlzYWJsZWQmJihzLnNvcnRhYmxlcy5wdXNoKGkpLGkucmVmcmVzaFBvc2l0aW9ucygpLGkuX3RyaWdnZXIoImFjdGl2YXRlIix0LG4pKX0pfSxzdG9wOmZ1bmN0aW9uKHQsaSxzKXt2YXIgbj1lLmV4dGVuZCh7fSxpLHtpdGVtOnMuZWxlbWVudH0pO3MuY2FuY2VsSGVscGVyUmVtb3ZhbD0hMSxlLmVhY2gocy5zb3J0YWJsZXMsZnVuY3Rpb24oKXt2YXIgZT10aGlzO2UuaXNPdmVyPyhlLmlzT3Zlcj0wLHMuY2FuY2VsSGVscGVyUmVtb3ZhbD0hMCxlLmNhbmNlbEhlbHBlclJlbW92YWw9ITEsZS5fc3RvcmVkQ1NTPXtwb3NpdGlvbjplLnBsYWNlaG9sZGVyLmNzcygicG9zaXRpb24iKSx0b3A6ZS5wbGFjZWhvbGRlci5jc3MoInRvcCIpLGxlZnQ6ZS5wbGFjZWhvbGRlci5jc3MoImxlZnQiKX0sZS5fbW91c2VTdG9wKHQpLGUub3B0aW9ucy5oZWxwZXI9ZS5vcHRpb25zLl9oZWxwZXIpOihlLmNhbmNlbEhlbHBlclJlbW92YWw9ITAsZS5fdHJpZ2dlcigiZGVhY3RpdmF0ZSIsdCxuKSl9KX0sZHJhZzpmdW5jdGlvbih0LGkscyl7ZS5lYWNoKHMuc29ydGFibGVzLGZ1bmN0aW9uKCl7dmFyIG49ITEsYT10aGlzO2EucG9zaXRpb25BYnM9cy5wb3NpdGlvbkFicyxhLmhlbHBlclByb3BvcnRpb25zPXMuaGVscGVyUHJvcG9ydGlvbnMsYS5vZmZzZXQuY2xpY2s9cy5vZmZzZXQuY2xpY2ssYS5faW50ZXJzZWN0c1dpdGgoYS5jb250YWluZXJDYWNoZSkmJihuPSEwLGUuZWFjaChzLnNvcnRhYmxlcyxmdW5jdGlvbigpe3JldHVybiB0aGlzLnBvc2l0aW9uQWJzPXMucG9zaXRpb25BYnMsdGhpcy5oZWxwZXJQcm9wb3J0aW9ucz1zLmhlbHBlclByb3BvcnRpb25zLHRoaXMub2Zmc2V0LmNsaWNrPXMub2Zmc2V0LmNsaWNrLHRoaXMhPT1hJiZ0aGlzLl9pbnRlcnNlY3RzV2l0aCh0aGlzLmNvbnRhaW5lckNhY2hlKSYmZS5jb250YWlucyhhLmVsZW1lbnRbMF0sdGhpcy5lbGVtZW50WzBdKSYmKG49ITEpLG4KfSkpLG4/KGEuaXNPdmVyfHwoYS5pc092ZXI9MSxzLl9wYXJlbnQ9aS5oZWxwZXIucGFyZW50KCksYS5jdXJyZW50SXRlbT1pLmhlbHBlci5hcHBlbmRUbyhhLmVsZW1lbnQpLmRhdGEoInVpLXNvcnRhYmxlLWl0ZW0iLCEwKSxhLm9wdGlvbnMuX2hlbHBlcj1hLm9wdGlvbnMuaGVscGVyLGEub3B0aW9ucy5oZWxwZXI9ZnVuY3Rpb24oKXtyZXR1cm4gaS5oZWxwZXJbMF19LHQudGFyZ2V0PWEuY3VycmVudEl0ZW1bMF0sYS5fbW91c2VDYXB0dXJlKHQsITApLGEuX21vdXNlU3RhcnQodCwhMCwhMCksYS5vZmZzZXQuY2xpY2sudG9wPXMub2Zmc2V0LmNsaWNrLnRvcCxhLm9mZnNldC5jbGljay5sZWZ0PXMub2Zmc2V0LmNsaWNrLmxlZnQsYS5vZmZzZXQucGFyZW50LmxlZnQtPXMub2Zmc2V0LnBhcmVudC5sZWZ0LWEub2Zmc2V0LnBhcmVudC5sZWZ0LGEub2Zmc2V0LnBhcmVudC50b3AtPXMub2Zmc2V0LnBhcmVudC50b3AtYS5vZmZzZXQucGFyZW50LnRvcCxzLl90cmlnZ2VyKCJ0b1NvcnRhYmxlIix0KSxzLmRyb3BwZWQ9YS5lbGVtZW50LGUuZWFjaChzLnNvcnRhYmxlcyxmdW5jdGlvbigpe3RoaXMucmVmcmVzaFBvc2l0aW9ucygpfSkscy5jdXJyZW50SXRlbT1zLmVsZW1lbnQsYS5mcm9tT3V0c2lkZT1zKSxhLmN1cnJlbnRJdGVtJiYoYS5fbW91c2VEcmFnKHQpLGkucG9zaXRpb249YS5wb3NpdGlvbikpOmEuaXNPdmVyJiYoYS5pc092ZXI9MCxhLmNhbmNlbEhlbHBlclJlbW92YWw9ITAsYS5vcHRpb25zLl9yZXZlcnQ9YS5vcHRpb25zLnJldmVydCxhLm9wdGlvbnMucmV2ZXJ0PSExLGEuX3RyaWdnZXIoIm91dCIsdCxhLl91aUhhc2goYSkpLGEuX21vdXNlU3RvcCh0LCEwKSxhLm9wdGlvbnMucmV2ZXJ0PWEub3B0aW9ucy5fcmV2ZXJ0LGEub3B0aW9ucy5oZWxwZXI9YS5vcHRpb25zLl9oZWxwZXIsYS5wbGFjZWhvbGRlciYmYS5wbGFjZWhvbGRlci5yZW1vdmUoKSxpLmhlbHBlci5hcHBlbmRUbyhzLl9wYXJlbnQpLHMuX3JlZnJlc2hPZmZzZXRzKHQpLGkucG9zaXRpb249cy5fZ2VuZXJhdGVQb3NpdGlvbih0LCEwKSxzLl90cmlnZ2VyKCJmcm9tU29ydGFibGUiLHQpLHMuZHJvcHBlZD0hMSxlLmVhY2gocy5zb3J0YWJsZXMsZnVuY3Rpb24oKXt0aGlzLnJlZnJlc2hQb3NpdGlvbnMoKX0pKX0pfX0pLGUudWkucGx1Z2luLmFkZCgiZHJhZ2dhYmxlIiwiY3Vyc29yIix7c3RhcnQ6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPWUoImJvZHkiKSxhPXMub3B0aW9ucztuLmNzcygiY3Vyc29yIikmJihhLl9jdXJzb3I9bi5jc3MoImN1cnNvciIpKSxuLmNzcygiY3Vyc29yIixhLmN1cnNvcil9LHN0b3A6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPXMub3B0aW9ucztuLl9jdXJzb3ImJmUoImJvZHkiKS5jc3MoImN1cnNvciIsbi5fY3Vyc29yKX19KSxlLnVpLnBsdWdpbi5hZGQoImRyYWdnYWJsZSIsIm9wYWNpdHkiLHtzdGFydDpmdW5jdGlvbih0LGkscyl7dmFyIG49ZShpLmhlbHBlciksYT1zLm9wdGlvbnM7bi5jc3MoIm9wYWNpdHkiKSYmKGEuX29wYWNpdHk9bi5jc3MoIm9wYWNpdHkiKSksbi5jc3MoIm9wYWNpdHkiLGEub3BhY2l0eSl9LHN0b3A6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPXMub3B0aW9ucztuLl9vcGFjaXR5JiZlKGkuaGVscGVyKS5jc3MoIm9wYWNpdHkiLG4uX29wYWNpdHkpfX0pLGUudWkucGx1Z2luLmFkZCgiZHJhZ2dhYmxlIiwic2Nyb2xsIix7c3RhcnQ6ZnVuY3Rpb24oZSx0LGkpe2kuc2Nyb2xsUGFyZW50Tm90SGlkZGVufHwoaS5zY3JvbGxQYXJlbnROb3RIaWRkZW49aS5oZWxwZXIuc2Nyb2xsUGFyZW50KCExKSksaS5zY3JvbGxQYXJlbnROb3RIaWRkZW5bMF0hPT1pLmRvY3VtZW50WzBdJiYiSFRNTCIhPT1pLnNjcm9sbFBhcmVudE5vdEhpZGRlblswXS50YWdOYW1lJiYoaS5vdmVyZmxvd09mZnNldD1pLnNjcm9sbFBhcmVudE5vdEhpZGRlbi5vZmZzZXQoKSl9LGRyYWc6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPXMub3B0aW9ucyxhPSExLG89cy5zY3JvbGxQYXJlbnROb3RIaWRkZW5bMF0scj1zLmRvY3VtZW50WzBdO28hPT1yJiYiSFRNTCIhPT1vLnRhZ05hbWU/KG4uYXhpcyYmIngiPT09bi5heGlzfHwocy5vdmVyZmxvd09mZnNldC50b3Arby5vZmZzZXRIZWlnaHQtdC5wYWdlWTxuLnNjcm9sbFNlbnNpdGl2aXR5P28uc2Nyb2xsVG9wPWE9by5zY3JvbGxUb3Arbi5zY3JvbGxTcGVlZDp0LnBhZ2VZLXMub3ZlcmZsb3dPZmZzZXQudG9wPG4uc2Nyb2xsU2Vuc2l0aXZpdHkmJihvLnNjcm9sbFRvcD1hPW8uc2Nyb2xsVG9wLW4uc2Nyb2xsU3BlZWQpKSxuLmF4aXMmJiJ5Ij09PW4uYXhpc3x8KHMub3ZlcmZsb3dPZmZzZXQubGVmdCtvLm9mZnNldFdpZHRoLXQucGFnZVg8bi5zY3JvbGxTZW5zaXRpdml0eT9vLnNjcm9sbExlZnQ9YT1vLnNjcm9sbExlZnQrbi5zY3JvbGxTcGVlZDp0LnBhZ2VYLXMub3ZlcmZsb3dPZmZzZXQubGVmdDxuLnNjcm9sbFNlbnNpdGl2aXR5JiYoby5zY3JvbGxMZWZ0PWE9by5zY3JvbGxMZWZ0LW4uc2Nyb2xsU3BlZWQpKSk6KG4uYXhpcyYmIngiPT09bi5heGlzfHwodC5wYWdlWS1lKHIpLnNjcm9sbFRvcCgpPG4uc2Nyb2xsU2Vuc2l0aXZpdHk/YT1lKHIpLnNjcm9sbFRvcChlKHIpLnNjcm9sbFRvcCgpLW4uc2Nyb2xsU3BlZWQpOmUod2luZG93KS5oZWlnaHQoKS0odC5wYWdlWS1lKHIpLnNjcm9sbFRvcCgpKTxuLnNjcm9sbFNlbnNpdGl2aXR5JiYoYT1lKHIpLnNjcm9sbFRvcChlKHIpLnNjcm9sbFRvcCgpK24uc2Nyb2xsU3BlZWQpKSksbi5heGlzJiYieSI9PT1uLmF4aXN8fCh0LnBhZ2VYLWUocikuc2Nyb2xsTGVmdCgpPG4uc2Nyb2xsU2Vuc2l0aXZpdHk/YT1lKHIpLnNjcm9sbExlZnQoZShyKS5zY3JvbGxMZWZ0KCktbi5zY3JvbGxTcGVlZCk6ZSh3aW5kb3cpLndpZHRoKCktKHQucGFnZVgtZShyKS5zY3JvbGxMZWZ0KCkpPG4uc2Nyb2xsU2Vuc2l0aXZpdHkmJihhPWUocikuc2Nyb2xsTGVmdChlKHIpLnNjcm9sbExlZnQoKStuLnNjcm9sbFNwZWVkKSkpKSxhIT09ITEmJmUudWkuZGRtYW5hZ2VyJiYhbi5kcm9wQmVoYXZpb3VyJiZlLnVpLmRkbWFuYWdlci5wcmVwYXJlT2Zmc2V0cyhzLHQpfX0pLGUudWkucGx1Z2luLmFkZCgiZHJhZ2dhYmxlIiwic25hcCIse3N0YXJ0OmZ1bmN0aW9uKHQsaSxzKXt2YXIgbj1zLm9wdGlvbnM7cy5zbmFwRWxlbWVudHM9W10sZShuLnNuYXAuY29uc3RydWN0b3IhPT1TdHJpbmc/bi5zbmFwLml0ZW1zfHwiOmRhdGEodWktZHJhZ2dhYmxlKSI6bi5zbmFwKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKSxpPXQub2Zmc2V0KCk7dGhpcyE9PXMuZWxlbWVudFswXSYmcy5zbmFwRWxlbWVudHMucHVzaCh7aXRlbTp0aGlzLHdpZHRoOnQub3V0ZXJXaWR0aCgpLGhlaWdodDp0Lm91dGVySGVpZ2h0KCksdG9wOmkudG9wLGxlZnQ6aS5sZWZ0fSl9KX0sZHJhZzpmdW5jdGlvbih0LGkscyl7dmFyIG4sYSxvLHIsaCxsLHUsZCxjLHAsZj1zLm9wdGlvbnMsbT1mLnNuYXBUb2xlcmFuY2UsZz1pLm9mZnNldC5sZWZ0LHY9ZytzLmhlbHBlclByb3BvcnRpb25zLndpZHRoLHk9aS5vZmZzZXQudG9wLGI9eStzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodDtmb3IoYz1zLnNuYXBFbGVtZW50cy5sZW5ndGgtMTtjPj0wO2MtLSloPXMuc25hcEVsZW1lbnRzW2NdLmxlZnQtcy5tYXJnaW5zLmxlZnQsbD1oK3Muc25hcEVsZW1lbnRzW2NdLndpZHRoLHU9cy5zbmFwRWxlbWVudHNbY10udG9wLXMubWFyZ2lucy50b3AsZD11K3Muc25hcEVsZW1lbnRzW2NdLmhlaWdodCxoLW0+dnx8Zz5sK218fHUtbT5ifHx5PmQrbXx8IWUuY29udGFpbnMocy5zbmFwRWxlbWVudHNbY10uaXRlbS5vd25lckRvY3VtZW50LHMuc25hcEVsZW1lbnRzW2NdLml0ZW0pPyhzLnNuYXBFbGVtZW50c1tjXS5zbmFwcGluZyYmcy5vcHRpb25zLnNuYXAucmVsZWFzZSYmcy5vcHRpb25zLnNuYXAucmVsZWFzZS5jYWxsKHMuZWxlbWVudCx0LGUuZXh0ZW5kKHMuX3VpSGFzaCgpLHtzbmFwSXRlbTpzLnNuYXBFbGVtZW50c1tjXS5pdGVtfSkpLHMuc25hcEVsZW1lbnRzW2NdLnNuYXBwaW5nPSExKTooImlubmVyIiE9PWYuc25hcE1vZGUmJihuPW0+PU1hdGguYWJzKHUtYiksYT1tPj1NYXRoLmFicyhkLXkpLG89bT49TWF0aC5hYnMoaC12KSxyPW0+PU1hdGguYWJzKGwtZyksbiYmKGkucG9zaXRpb24udG9wPXMuX2NvbnZlcnRQb3NpdGlvblRvKCJyZWxhdGl2ZSIse3RvcDp1LXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LGxlZnQ6MH0pLnRvcCksYSYmKGkucG9zaXRpb24udG9wPXMuX2NvbnZlcnRQb3NpdGlvblRvKCJyZWxhdGl2ZSIse3RvcDpkLGxlZnQ6MH0pLnRvcCksbyYmKGkucG9zaXRpb24ubGVmdD1zLl9jb252ZXJ0UG9zaXRpb25UbygicmVsYXRpdmUiLHt0b3A6MCxsZWZ0Omgtcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aH0pLmxlZnQpLHImJihpLnBvc2l0aW9uLmxlZnQ9cy5fY29udmVydFBvc2l0aW9uVG8oInJlbGF0aXZlIix7dG9wOjAsbGVmdDpsfSkubGVmdCkpLHA9bnx8YXx8b3x8ciwib3V0ZXIiIT09Zi5zbmFwTW9kZSYmKG49bT49TWF0aC5hYnModS15KSxhPW0+PU1hdGguYWJzKGQtYiksbz1tPj1NYXRoLmFicyhoLWcpLHI9bT49TWF0aC5hYnMobC12KSxuJiYoaS5wb3NpdGlvbi50b3A9cy5fY29udmVydFBvc2l0aW9uVG8oInJlbGF0aXZlIix7dG9wOnUsbGVmdDowfSkudG9wKSxhJiYoaS5wb3NpdGlvbi50b3A9cy5fY29udmVydFBvc2l0aW9uVG8oInJlbGF0aXZlIix7dG9wOmQtcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQsbGVmdDowfSkudG9wKSxvJiYoaS5wb3NpdGlvbi5sZWZ0PXMuX2NvbnZlcnRQb3NpdGlvblRvKCJyZWxhdGl2ZSIse3RvcDowLGxlZnQ6aH0pLmxlZnQpLHImJihpLnBvc2l0aW9uLmxlZnQ9cy5fY29udmVydFBvc2l0aW9uVG8oInJlbGF0aXZlIix7dG9wOjAsbGVmdDpsLXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGh9KS5sZWZ0KSksIXMuc25hcEVsZW1lbnRzW2NdLnNuYXBwaW5nJiYobnx8YXx8b3x8cnx8cCkmJnMub3B0aW9ucy5zbmFwLnNuYXAmJnMub3B0aW9ucy5zbmFwLnNuYXAuY2FsbChzLmVsZW1lbnQsdCxlLmV4dGVuZChzLl91aUhhc2goKSx7c25hcEl0ZW06cy5zbmFwRWxlbWVudHNbY10uaXRlbX0pKSxzLnNuYXBFbGVtZW50c1tjXS5zbmFwcGluZz1ufHxhfHxvfHxyfHxwKX19KSxlLnVpLnBsdWdpbi5hZGQoImRyYWdnYWJsZSIsInN0YWNrIix7c3RhcnQ6ZnVuY3Rpb24odCxpLHMpe3ZhciBuLGE9cy5vcHRpb25zLG89ZS5tYWtlQXJyYXkoZShhLnN0YWNrKSkuc29ydChmdW5jdGlvbih0LGkpe3JldHVybihwYXJzZUludChlKHQpLmNzcygiekluZGV4IiksMTApfHwwKS0ocGFyc2VJbnQoZShpKS5jc3MoInpJbmRleCIpLDEwKXx8MCl9KTtvLmxlbmd0aCYmKG49cGFyc2VJbnQoZShvWzBdKS5jc3MoInpJbmRleCIpLDEwKXx8MCxlKG8pLmVhY2goZnVuY3Rpb24odCl7ZSh0aGlzKS5jc3MoInpJbmRleCIsbit0KX0pLHRoaXMuY3NzKCJ6SW5kZXgiLG4rby5sZW5ndGgpKX19KSxlLnVpLnBsdWdpbi5hZGQoImRyYWdnYWJsZSIsInpJbmRleCIse3N0YXJ0OmZ1bmN0aW9uKHQsaSxzKXt2YXIgbj1lKGkuaGVscGVyKSxhPXMub3B0aW9ucztuLmNzcygiekluZGV4IikmJihhLl96SW5kZXg9bi5jc3MoInpJbmRleCIpKSxuLmNzcygiekluZGV4IixhLnpJbmRleCl9LHN0b3A6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPXMub3B0aW9ucztuLl96SW5kZXgmJmUoaS5oZWxwZXIpLmNzcygiekluZGV4IixuLl96SW5kZXgpfX0pLGUudWkuZHJhZ2dhYmxlLGUud2lkZ2V0KCJ1aS5kcm9wcGFibGUiLHt2ZXJzaW9uOiIxLjExLjQiLHdpZGdldEV2ZW50UHJlZml4OiJkcm9wIixvcHRpb25zOnthY2NlcHQ6IioiLGFjdGl2ZUNsYXNzOiExLGFkZENsYXNzZXM6ITAsZ3JlZWR5OiExLGhvdmVyQ2xhc3M6ITEsc2NvcGU6ImRlZmF1bHQiLHRvbGVyYW5jZToiaW50ZXJzZWN0IixhY3RpdmF0ZTpudWxsLGRlYWN0aXZhdGU6bnVsbCxkcm9wOm51bGwsb3V0Om51bGwsb3ZlcjpudWxsfSxfY3JlYXRlOmZ1bmN0aW9uKCl7dmFyIHQsaT10aGlzLm9wdGlvbnMscz1pLmFjY2VwdDt0aGlzLmlzb3Zlcj0hMSx0aGlzLmlzb3V0PSEwLHRoaXMuYWNjZXB0PWUuaXNGdW5jdGlvbihzKT9zOmZ1bmN0aW9uKGUpe3JldHVybiBlLmlzKHMpfSx0aGlzLnByb3BvcnRpb25zPWZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9YXJndW1lbnRzWzBdLHZvaWQgMCk6dD90OnQ9e3dpZHRoOnRoaXMuZWxlbWVudFswXS5vZmZzZXRXaWR0aCxoZWlnaHQ6dGhpcy5lbGVtZW50WzBdLm9mZnNldEhlaWdodH19LHRoaXMuX2FkZFRvTWFuYWdlcihpLnNjb3BlKSxpLmFkZENsYXNzZXMmJnRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktZHJvcHBhYmxlIil9LF9hZGRUb01hbmFnZXI6ZnVuY3Rpb24odCl7ZS51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1t0XT1lLnVpLmRkbWFuYWdlci5kcm9wcGFibGVzW3RdfHxbXSxlLnVpLmRkbWFuYWdlci5kcm9wcGFibGVzW3RdLnB1c2godGhpcyl9LF9zcGxpY2U6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7ZS5sZW5ndGg+dDt0KyspZVt0XT09PXRoaXMmJmUuc3BsaWNlKHQsMSl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dmFyIHQ9ZS51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1t0aGlzLm9wdGlvbnMuc2NvcGVdO3RoaXMuX3NwbGljZSh0KSx0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLWRyb3BwYWJsZSB1aS1kcm9wcGFibGUtZGlzYWJsZWQiKX0sX3NldE9wdGlvbjpmdW5jdGlvbih0LGkpe2lmKCJhY2NlcHQiPT09dCl0aGlzLmFjY2VwdD1lLmlzRnVuY3Rpb24oaSk/aTpmdW5jdGlvbihlKXtyZXR1cm4gZS5pcyhpKX07ZWxzZSBpZigic2NvcGUiPT09dCl7dmFyIHM9ZS51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1t0aGlzLm9wdGlvbnMuc2NvcGVdO3RoaXMuX3NwbGljZShzKSx0aGlzLl9hZGRUb01hbmFnZXIoaSl9dGhpcy5fc3VwZXIodCxpKX0sX2FjdGl2YXRlOmZ1bmN0aW9uKHQpe3ZhciBpPWUudWkuZGRtYW5hZ2VyLmN1cnJlbnQ7dGhpcy5vcHRpb25zLmFjdGl2ZUNsYXNzJiZ0aGlzLmVsZW1lbnQuYWRkQ2xhc3ModGhpcy5vcHRpb25zLmFjdGl2ZUNsYXNzKSxpJiZ0aGlzLl90cmlnZ2VyKCJhY3RpdmF0ZSIsdCx0aGlzLnVpKGkpKX0sX2RlYWN0aXZhdGU6ZnVuY3Rpb24odCl7dmFyIGk9ZS51aS5kZG1hbmFnZXIuY3VycmVudDt0aGlzLm9wdGlvbnMuYWN0aXZlQ2xhc3MmJnRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuYWN0aXZlQ2xhc3MpLGkmJnRoaXMuX3RyaWdnZXIoImRlYWN0aXZhdGUiLHQsdGhpcy51aShpKSl9LF9vdmVyOmZ1bmN0aW9uKHQpe3ZhciBpPWUudWkuZGRtYW5hZ2VyLmN1cnJlbnQ7aSYmKGkuY3VycmVudEl0ZW18fGkuZWxlbWVudClbMF0hPT10aGlzLmVsZW1lbnRbMF0mJnRoaXMuYWNjZXB0LmNhbGwodGhpcy5lbGVtZW50WzBdLGkuY3VycmVudEl0ZW18fGkuZWxlbWVudCkmJih0aGlzLm9wdGlvbnMuaG92ZXJDbGFzcyYmdGhpcy5lbGVtZW50LmFkZENsYXNzKHRoaXMub3B0aW9ucy5ob3ZlckNsYXNzKSx0aGlzLl90cmlnZ2VyKCJvdmVyIix0LHRoaXMudWkoaSkpKX0sX291dDpmdW5jdGlvbih0KXt2YXIgaT1lLnVpLmRkbWFuYWdlci5jdXJyZW50O2kmJihpLmN1cnJlbnRJdGVtfHxpLmVsZW1lbnQpWzBdIT09dGhpcy5lbGVtZW50WzBdJiZ0aGlzLmFjY2VwdC5jYWxsKHRoaXMuZWxlbWVudFswXSxpLmN1cnJlbnRJdGVtfHxpLmVsZW1lbnQpJiYodGhpcy5vcHRpb25zLmhvdmVyQ2xhc3MmJnRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuaG92ZXJDbGFzcyksdGhpcy5fdHJpZ2dlcigib3V0Iix0LHRoaXMudWkoaSkpKX0sX2Ryb3A6ZnVuY3Rpb24odCxpKXt2YXIgcz1pfHxlLnVpLmRkbWFuYWdlci5jdXJyZW50LG49ITE7cmV0dXJuIHMmJihzLmN1cnJlbnRJdGVtfHxzLmVsZW1lbnQpWzBdIT09dGhpcy5lbGVtZW50WzBdPyh0aGlzLmVsZW1lbnQuZmluZCgiOmRhdGEodWktZHJvcHBhYmxlKSIpLm5vdCgiLnVpLWRyYWdnYWJsZS1kcmFnZ2luZyIpLmVhY2goZnVuY3Rpb24oKXt2YXIgaT1lKHRoaXMpLmRyb3BwYWJsZSgiaW5zdGFuY2UiKTtyZXR1cm4gaS5vcHRpb25zLmdyZWVkeSYmIWkub3B0aW9ucy5kaXNhYmxlZCYmaS5vcHRpb25zLnNjb3BlPT09cy5vcHRpb25zLnNjb3BlJiZpLmFjY2VwdC5jYWxsKGkuZWxlbWVudFswXSxzLmN1cnJlbnRJdGVtfHxzLmVsZW1lbnQpJiZlLnVpLmludGVyc2VjdChzLGUuZXh0ZW5kKGkse29mZnNldDppLmVsZW1lbnQub2Zmc2V0KCl9KSxpLm9wdGlvbnMudG9sZXJhbmNlLHQpPyhuPSEwLCExKTp2b2lkIDB9KSxuPyExOnRoaXMuYWNjZXB0LmNhbGwodGhpcy5lbGVtZW50WzBdLHMuY3VycmVudEl0ZW18fHMuZWxlbWVudCk/KHRoaXMub3B0aW9ucy5hY3RpdmVDbGFzcyYmdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKHRoaXMub3B0aW9ucy5hY3RpdmVDbGFzcyksdGhpcy5vcHRpb25zLmhvdmVyQ2xhc3MmJnRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuaG92ZXJDbGFzcyksdGhpcy5fdHJpZ2dlcigiZHJvcCIsdCx0aGlzLnVpKHMpKSx0aGlzLmVsZW1lbnQpOiExKTohMX0sdWk6ZnVuY3Rpb24oZSl7cmV0dXJue2RyYWdnYWJsZTplLmN1cnJlbnRJdGVtfHxlLmVsZW1lbnQsaGVscGVyOmUuaGVscGVyLHBvc2l0aW9uOmUucG9zaXRpb24sb2Zmc2V0OmUucG9zaXRpb25BYnN9fX0pLGUudWkuaW50ZXJzZWN0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQsaSl7cmV0dXJuIGU+PXQmJnQraT5lfXJldHVybiBmdW5jdGlvbih0LGkscyxuKXtpZighaS5vZmZzZXQpcmV0dXJuITE7dmFyIGE9KHQucG9zaXRpb25BYnN8fHQucG9zaXRpb24uYWJzb2x1dGUpLmxlZnQrdC5tYXJnaW5zLmxlZnQsbz0odC5wb3NpdGlvbkFic3x8dC5wb3NpdGlvbi5hYnNvbHV0ZSkudG9wK3QubWFyZ2lucy50b3Ascj1hK3QuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgsaD1vK3QuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LGw9aS5vZmZzZXQubGVmdCx1PWkub2Zmc2V0LnRvcCxkPWwraS5wcm9wb3J0aW9ucygpLndpZHRoLGM9dStpLnByb3BvcnRpb25zKCkuaGVpZ2h0O3N3aXRjaChzKXtjYXNlImZpdCI6cmV0dXJuIGE+PWwmJmQ+PXImJm8+PXUmJmM+PWg7Y2FzZSJpbnRlcnNlY3QiOnJldHVybiBhK3QuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgvMj5sJiZkPnItdC5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aC8yJiZvK3QuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LzI+dSYmYz5oLXQuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LzI7Y2FzZSJwb2ludGVyIjpyZXR1cm4gZShuLnBhZ2VZLHUsaS5wcm9wb3J0aW9ucygpLmhlaWdodCkmJmUobi5wYWdlWCxsLGkucHJvcG9ydGlvbnMoKS53aWR0aCk7Y2FzZSJ0b3VjaCI6cmV0dXJuKG8+PXUmJmM+PW98fGg+PXUmJmM+PWh8fHU+byYmaD5jKSYmKGE+PWwmJmQ+PWF8fHI+PWwmJmQ+PXJ8fGw+YSYmcj5kKTtkZWZhdWx0OnJldHVybiExfX19KCksZS51aS5kZG1hbmFnZXI9e2N1cnJlbnQ6bnVsbCxkcm9wcGFibGVzOnsiZGVmYXVsdCI6W119LHByZXBhcmVPZmZzZXRzOmZ1bmN0aW9uKHQsaSl7dmFyIHMsbixhPWUudWkuZGRtYW5hZ2VyLmRyb3BwYWJsZXNbdC5vcHRpb25zLnNjb3BlXXx8W10sbz1pP2kudHlwZTpudWxsLHI9KHQuY3VycmVudEl0ZW18fHQuZWxlbWVudCkuZmluZCgiOmRhdGEodWktZHJvcHBhYmxlKSIpLmFkZEJhY2soKTtlOmZvcihzPTA7YS5sZW5ndGg+cztzKyspaWYoIShhW3NdLm9wdGlvbnMuZGlzYWJsZWR8fHQmJiFhW3NdLmFjY2VwdC5jYWxsKGFbc10uZWxlbWVudFswXSx0LmN1cnJlbnRJdGVtfHx0LmVsZW1lbnQpKSl7Zm9yKG49MDtyLmxlbmd0aD5uO24rKylpZihyW25dPT09YVtzXS5lbGVtZW50WzBdKXthW3NdLnByb3BvcnRpb25zKCkuaGVpZ2h0PTA7Y29udGludWUgZX1hW3NdLnZpc2libGU9Im5vbmUiIT09YVtzXS5lbGVtZW50LmNzcygiZGlzcGxheSIpLGFbc10udmlzaWJsZSYmKCJtb3VzZWRvd24iPT09byYmYVtzXS5fYWN0aXZhdGUuY2FsbChhW3NdLGkpLGFbc10ub2Zmc2V0PWFbc10uZWxlbWVudC5vZmZzZXQoKSxhW3NdLnByb3BvcnRpb25zKHt3aWR0aDphW3NdLmVsZW1lbnRbMF0ub2Zmc2V0V2lkdGgsaGVpZ2h0OmFbc10uZWxlbWVudFswXS5vZmZzZXRIZWlnaHR9KSl9fSxkcm9wOmZ1bmN0aW9uKHQsaSl7dmFyIHM9ITE7cmV0dXJuIGUuZWFjaCgoZS51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1t0Lm9wdGlvbnMuc2NvcGVdfHxbXSkuc2xpY2UoKSxmdW5jdGlvbigpe3RoaXMub3B0aW9ucyYmKCF0aGlzLm9wdGlvbnMuZGlzYWJsZWQmJnRoaXMudmlzaWJsZSYmZS51aS5pbnRlcnNlY3QodCx0aGlzLHRoaXMub3B0aW9ucy50b2xlcmFuY2UsaSkmJihzPXRoaXMuX2Ryb3AuY2FsbCh0aGlzLGkpfHxzKSwhdGhpcy5vcHRpb25zLmRpc2FibGVkJiZ0aGlzLnZpc2libGUmJnRoaXMuYWNjZXB0LmNhbGwodGhpcy5lbGVtZW50WzBdLHQuY3VycmVudEl0ZW18fHQuZWxlbWVudCkmJih0aGlzLmlzb3V0PSEwLHRoaXMuaXNvdmVyPSExLHRoaXMuX2RlYWN0aXZhdGUuY2FsbCh0aGlzLGkpKSl9KSxzfSxkcmFnU3RhcnQ6ZnVuY3Rpb24odCxpKXt0LmVsZW1lbnQucGFyZW50c1VudGlsKCJib2R5IikuYmluZCgic2Nyb2xsLmRyb3BwYWJsZSIsZnVuY3Rpb24oKXt0Lm9wdGlvbnMucmVmcmVzaFBvc2l0aW9uc3x8ZS51aS5kZG1hbmFnZXIucHJlcGFyZU9mZnNldHModCxpKX0pfSxkcmFnOmZ1bmN0aW9uKHQsaSl7dC5vcHRpb25zLnJlZnJlc2hQb3NpdGlvbnMmJmUudWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKHQsaSksZS5lYWNoKGUudWkuZGRtYW5hZ2VyLmRyb3BwYWJsZXNbdC5vcHRpb25zLnNjb3BlXXx8W10sZnVuY3Rpb24oKXtpZighdGhpcy5vcHRpb25zLmRpc2FibGVkJiYhdGhpcy5ncmVlZHlDaGlsZCYmdGhpcy52aXNpYmxlKXt2YXIgcyxuLGEsbz1lLnVpLmludGVyc2VjdCh0LHRoaXMsdGhpcy5vcHRpb25zLnRvbGVyYW5jZSxpKSxyPSFvJiZ0aGlzLmlzb3Zlcj8iaXNvdXQiOm8mJiF0aGlzLmlzb3Zlcj8iaXNvdmVyIjpudWxsO3ImJih0aGlzLm9wdGlvbnMuZ3JlZWR5JiYobj10aGlzLm9wdGlvbnMuc2NvcGUsYT10aGlzLmVsZW1lbnQucGFyZW50cygiOmRhdGEodWktZHJvcHBhYmxlKSIpLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiBlKHRoaXMpLmRyb3BwYWJsZSgiaW5zdGFuY2UiKS5vcHRpb25zLnNjb3BlPT09bn0pLGEubGVuZ3RoJiYocz1lKGFbMF0pLmRyb3BwYWJsZSgiaW5zdGFuY2UiKSxzLmdyZWVkeUNoaWxkPSJpc292ZXIiPT09cikpLHMmJiJpc292ZXIiPT09ciYmKHMuaXNvdmVyPSExLHMuaXNvdXQ9ITAscy5fb3V0LmNhbGwocyxpKSksdGhpc1tyXT0hMCx0aGlzWyJpc291dCI9PT1yPyJpc292ZXIiOiJpc291dCJdPSExLHRoaXNbImlzb3ZlciI9PT1yPyJfb3ZlciI6Il9vdXQiXS5jYWxsKHRoaXMsaSkscyYmImlzb3V0Ij09PXImJihzLmlzb3V0PSExLHMuaXNvdmVyPSEwLHMuX292ZXIuY2FsbChzLGkpKSl9fSl9LGRyYWdTdG9wOmZ1bmN0aW9uKHQsaSl7dC5lbGVtZW50LnBhcmVudHNVbnRpbCgiYm9keSIpLnVuYmluZCgic2Nyb2xsLmRyb3BwYWJsZSIpLHQub3B0aW9ucy5yZWZyZXNoUG9zaXRpb25zfHxlLnVpLmRkbWFuYWdlci5wcmVwYXJlT2Zmc2V0cyh0LGkpfX0sZS51aS5kcm9wcGFibGUsZS53aWRnZXQoInVpLnJlc2l6YWJsZSIsZS51aS5tb3VzZSx7dmVyc2lvbjoiMS4xMS40Iix3aWRnZXRFdmVudFByZWZpeDoicmVzaXplIixvcHRpb25zOnthbHNvUmVzaXplOiExLGFuaW1hdGU6ITEsYW5pbWF0ZUR1cmF0aW9uOiJzbG93IixhbmltYXRlRWFzaW5nOiJzd2luZyIsYXNwZWN0UmF0aW86ITEsYXV0b0hpZGU6ITEsY29udGFpbm1lbnQ6ITEsZ2hvc3Q6ITEsZ3JpZDohMSxoYW5kbGVzOiJlLHMsc2UiLGhlbHBlcjohMSxtYXhIZWlnaHQ6bnVsbCxtYXhXaWR0aDpudWxsLG1pbkhlaWdodDoxMCxtaW5XaWR0aDoxMCx6SW5kZXg6OTAscmVzaXplOm51bGwsc3RhcnQ6bnVsbCxzdG9wOm51bGx9LF9udW06ZnVuY3Rpb24oZSl7cmV0dXJuIHBhcnNlSW50KGUsMTApfHwwfSxfaXNOdW1iZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIWlzTmFOKHBhcnNlSW50KGUsMTApKX0sX2hhc1Njcm9sbDpmdW5jdGlvbih0LGkpe2lmKCJoaWRkZW4iPT09ZSh0KS5jc3MoIm92ZXJmbG93IikpcmV0dXJuITE7dmFyIHM9aSYmImxlZnQiPT09aT8ic2Nyb2xsTGVmdCI6InNjcm9sbFRvcCIsbj0hMTtyZXR1cm4gdFtzXT4wPyEwOih0W3NdPTEsbj10W3NdPjAsdFtzXT0wLG4pfSxfY3JlYXRlOmZ1bmN0aW9uKCl7dmFyIHQsaSxzLG4sYSxvPXRoaXMscj10aGlzLm9wdGlvbnM7aWYodGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS1yZXNpemFibGUiKSxlLmV4dGVuZCh0aGlzLHtfYXNwZWN0UmF0aW86ISFyLmFzcGVjdFJhdGlvLGFzcGVjdFJhdGlvOnIuYXNwZWN0UmF0aW8sb3JpZ2luYWxFbGVtZW50OnRoaXMuZWxlbWVudCxfcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50czpbXSxfaGVscGVyOnIuaGVscGVyfHxyLmdob3N0fHxyLmFuaW1hdGU/ci5oZWxwZXJ8fCJ1aS1yZXNpemFibGUtaGVscGVyIjpudWxsfSksdGhpcy5lbGVtZW50WzBdLm5vZGVOYW1lLm1hdGNoKC9eKGNhbnZhc3x0ZXh0YXJlYXxpbnB1dHxzZWxlY3R8YnV0dG9ufGltZykkL2kpJiYodGhpcy5lbGVtZW50LndyYXAoZSgiPGRpdiBjbGFzcz0ndWktd3JhcHBlcicgc3R5bGU9J292ZXJmbG93OiBoaWRkZW47Jz48L2Rpdj4iKS5jc3Moe3Bvc2l0aW9uOnRoaXMuZWxlbWVudC5jc3MoInBvc2l0aW9uIiksd2lkdGg6dGhpcy5lbGVtZW50Lm91dGVyV2lkdGgoKSxoZWlnaHQ6dGhpcy5lbGVtZW50Lm91dGVySGVpZ2h0KCksdG9wOnRoaXMuZWxlbWVudC5jc3MoInRvcCIpLGxlZnQ6dGhpcy5lbGVtZW50LmNzcygibGVmdCIpfSkpLHRoaXMuZWxlbWVudD10aGlzLmVsZW1lbnQucGFyZW50KCkuZGF0YSgidWktcmVzaXphYmxlIix0aGlzLmVsZW1lbnQucmVzaXphYmxlKCJpbnN0YW5jZSIpKSx0aGlzLmVsZW1lbnRJc1dyYXBwZXI9ITAsdGhpcy5lbGVtZW50LmNzcyh7bWFyZ2luTGVmdDp0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoIm1hcmdpbkxlZnQiKSxtYXJnaW5Ub3A6dGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKCJtYXJnaW5Ub3AiKSxtYXJnaW5SaWdodDp0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoIm1hcmdpblJpZ2h0IiksbWFyZ2luQm90dG9tOnRoaXMub3JpZ2luYWxFbGVtZW50LmNzcygibWFyZ2luQm90dG9tIil9KSx0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3Moe21hcmdpbkxlZnQ6MCxtYXJnaW5Ub3A6MCxtYXJnaW5SaWdodDowLG1hcmdpbkJvdHRvbTowfSksdGhpcy5vcmlnaW5hbFJlc2l6ZVN0eWxlPXRoaXMub3JpZ2luYWxFbGVtZW50LmNzcygicmVzaXplIiksdGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKCJyZXNpemUiLCJub25lIiksdGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50cy5wdXNoKHRoaXMub3JpZ2luYWxFbGVtZW50LmNzcyh7cG9zaXRpb246InN0YXRpYyIsem9vbToxLGRpc3BsYXk6ImJsb2NrIn0pKSx0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3Moe21hcmdpbjp0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoIm1hcmdpbiIpfSksdGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemUoKSksdGhpcy5oYW5kbGVzPXIuaGFuZGxlc3x8KGUoIi51aS1yZXNpemFibGUtaGFuZGxlIix0aGlzLmVsZW1lbnQpLmxlbmd0aD97bjoiLnVpLXJlc2l6YWJsZS1uIixlOiIudWktcmVzaXphYmxlLWUiLHM6Ii51aS1yZXNpemFibGUtcyIsdzoiLnVpLXJlc2l6YWJsZS13IixzZToiLnVpLXJlc2l6YWJsZS1zZSIsc3c6Ii51aS1yZXNpemFibGUtc3ciLG5lOiIudWktcmVzaXphYmxlLW5lIixudzoiLnVpLXJlc2l6YWJsZS1udyJ9OiJlLHMsc2UiKSx0aGlzLl9oYW5kbGVzPWUoKSx0aGlzLmhhbmRsZXMuY29uc3RydWN0b3I9PT1TdHJpbmcpZm9yKCJhbGwiPT09dGhpcy5oYW5kbGVzJiYodGhpcy5oYW5kbGVzPSJuLGUscyx3LHNlLHN3LG5lLG53IiksdD10aGlzLmhhbmRsZXMuc3BsaXQoIiwiKSx0aGlzLmhhbmRsZXM9e30saT0wO3QubGVuZ3RoPmk7aSsrKXM9ZS50cmltKHRbaV0pLGE9InVpLXJlc2l6YWJsZS0iK3Msbj1lKCI8ZGl2IGNsYXNzPSd1aS1yZXNpemFibGUtaGFuZGxlICIrYSsiJz48L2Rpdj4iKSxuLmNzcyh7ekluZGV4OnIuekluZGV4fSksInNlIj09PXMmJm4uYWRkQ2xhc3MoInVpLWljb24gdWktaWNvbi1ncmlwc21hbGwtZGlhZ29uYWwtc2UiKSx0aGlzLmhhbmRsZXNbc109Ii51aS1yZXNpemFibGUtIitzLHRoaXMuZWxlbWVudC5hcHBlbmQobik7dGhpcy5fcmVuZGVyQXhpcz1mdW5jdGlvbih0KXt2YXIgaSxzLG4sYTt0PXR8fHRoaXMuZWxlbWVudDtmb3IoaSBpbiB0aGlzLmhhbmRsZXMpdGhpcy5oYW5kbGVzW2ldLmNvbnN0cnVjdG9yPT09U3RyaW5nP3RoaXMuaGFuZGxlc1tpXT10aGlzLmVsZW1lbnQuY2hpbGRyZW4odGhpcy5oYW5kbGVzW2ldKS5maXJzdCgpLnNob3coKToodGhpcy5oYW5kbGVzW2ldLmpxdWVyeXx8dGhpcy5oYW5kbGVzW2ldLm5vZGVUeXBlKSYmKHRoaXMuaGFuZGxlc1tpXT1lKHRoaXMuaGFuZGxlc1tpXSksdGhpcy5fb24odGhpcy5oYW5kbGVzW2ldLHttb3VzZWRvd246by5fbW91c2VEb3dufSkpLHRoaXMuZWxlbWVudElzV3JhcHBlciYmdGhpcy5vcmlnaW5hbEVsZW1lbnRbMF0ubm9kZU5hbWUubWF0Y2goL14odGV4dGFyZWF8aW5wdXR8c2VsZWN0fGJ1dHRvbikkL2kpJiYocz1lKHRoaXMuaGFuZGxlc1tpXSx0aGlzLmVsZW1lbnQpLGE9L3N3fG5lfG53fHNlfG58cy8udGVzdChpKT9zLm91dGVySGVpZ2h0KCk6cy5vdXRlcldpZHRoKCksbj1bInBhZGRpbmciLC9uZXxud3xuLy50ZXN0KGkpPyJUb3AiOi9zZXxzd3xzLy50ZXN0KGkpPyJCb3R0b20iOi9eZSQvLnRlc3QoaSk/IlJpZ2h0IjoiTGVmdCJdLmpvaW4oIiIpLHQuY3NzKG4sYSksdGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemUoKSksdGhpcy5faGFuZGxlcz10aGlzLl9oYW5kbGVzLmFkZCh0aGlzLmhhbmRsZXNbaV0pfSx0aGlzLl9yZW5kZXJBeGlzKHRoaXMuZWxlbWVudCksdGhpcy5faGFuZGxlcz10aGlzLl9oYW5kbGVzLmFkZCh0aGlzLmVsZW1lbnQuZmluZCgiLnVpLXJlc2l6YWJsZS1oYW5kbGUiKSksdGhpcy5faGFuZGxlcy5kaXNhYmxlU2VsZWN0aW9uKCksdGhpcy5faGFuZGxlcy5tb3VzZW92ZXIoZnVuY3Rpb24oKXtvLnJlc2l6aW5nfHwodGhpcy5jbGFzc05hbWUmJihuPXRoaXMuY2xhc3NOYW1lLm1hdGNoKC91aS1yZXNpemFibGUtKHNlfHN3fG5lfG53fG58ZXxzfHcpL2kpKSxvLmF4aXM9biYmblsxXT9uWzFdOiJzZSIpfSksci5hdXRvSGlkZSYmKHRoaXMuX2hhbmRsZXMuaGlkZSgpLGUodGhpcy5lbGVtZW50KS5hZGRDbGFzcygidWktcmVzaXphYmxlLWF1dG9oaWRlIikubW91c2VlbnRlcihmdW5jdGlvbigpe3IuZGlzYWJsZWR8fChlKHRoaXMpLnJlbW92ZUNsYXNzKCJ1aS1yZXNpemFibGUtYXV0b2hpZGUiKSxvLl9oYW5kbGVzLnNob3coKSl9KS5tb3VzZWxlYXZlKGZ1bmN0aW9uKCl7ci5kaXNhYmxlZHx8by5yZXNpemluZ3x8KGUodGhpcykuYWRkQ2xhc3MoInVpLXJlc2l6YWJsZS1hdXRvaGlkZSIpLG8uX2hhbmRsZXMuaGlkZSgpKX0pKSx0aGlzLl9tb3VzZUluaXQoKX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9tb3VzZURlc3Ryb3koKTt2YXIgdCxpPWZ1bmN0aW9uKHQpe2UodCkucmVtb3ZlQ2xhc3MoInVpLXJlc2l6YWJsZSB1aS1yZXNpemFibGUtZGlzYWJsZWQgdWktcmVzaXphYmxlLXJlc2l6aW5nIikucmVtb3ZlRGF0YSgicmVzaXphYmxlIikucmVtb3ZlRGF0YSgidWktcmVzaXphYmxlIikudW5iaW5kKCIucmVzaXphYmxlIikuZmluZCgiLnVpLXJlc2l6YWJsZS1oYW5kbGUiKS5yZW1vdmUoKX07cmV0dXJuIHRoaXMuZWxlbWVudElzV3JhcHBlciYmKGkodGhpcy5lbGVtZW50KSx0PXRoaXMuZWxlbWVudCx0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3Moe3Bvc2l0aW9uOnQuY3NzKCJwb3NpdGlvbiIpLHdpZHRoOnQub3V0ZXJXaWR0aCgpLGhlaWdodDp0Lm91dGVySGVpZ2h0KCksdG9wOnQuY3NzKCJ0b3AiKSxsZWZ0OnQuY3NzKCJsZWZ0Iil9KS5pbnNlcnRBZnRlcih0KSx0LnJlbW92ZSgpKSx0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoInJlc2l6ZSIsdGhpcy5vcmlnaW5hbFJlc2l6ZVN0eWxlKSxpKHRoaXMub3JpZ2luYWxFbGVtZW50KSx0aGlzfSxfbW91c2VDYXB0dXJlOmZ1bmN0aW9uKHQpe3ZhciBpLHMsbj0hMTtmb3IoaSBpbiB0aGlzLmhhbmRsZXMpcz1lKHRoaXMuaGFuZGxlc1tpXSlbMF0sKHM9PT10LnRhcmdldHx8ZS5jb250YWlucyhzLHQudGFyZ2V0KSkmJihuPSEwKTtyZXR1cm4hdGhpcy5vcHRpb25zLmRpc2FibGVkJiZufSxfbW91c2VTdGFydDpmdW5jdGlvbih0KXt2YXIgaSxzLG4sYT10aGlzLm9wdGlvbnMsbz10aGlzLmVsZW1lbnQ7cmV0dXJuIHRoaXMucmVzaXppbmc9ITAsdGhpcy5fcmVuZGVyUHJveHkoKSxpPXRoaXMuX251bSh0aGlzLmhlbHBlci5jc3MoImxlZnQiKSkscz10aGlzLl9udW0odGhpcy5oZWxwZXIuY3NzKCJ0b3AiKSksYS5jb250YWlubWVudCYmKGkrPWUoYS5jb250YWlubWVudCkuc2Nyb2xsTGVmdCgpfHwwLHMrPWUoYS5jb250YWlubWVudCkuc2Nyb2xsVG9wKCl8fDApLHRoaXMub2Zmc2V0PXRoaXMuaGVscGVyLm9mZnNldCgpLHRoaXMucG9zaXRpb249e2xlZnQ6aSx0b3A6c30sdGhpcy5zaXplPXRoaXMuX2hlbHBlcj97d2lkdGg6dGhpcy5oZWxwZXIud2lkdGgoKSxoZWlnaHQ6dGhpcy5oZWxwZXIuaGVpZ2h0KCl9Ont3aWR0aDpvLndpZHRoKCksaGVpZ2h0Om8uaGVpZ2h0KCl9LHRoaXMub3JpZ2luYWxTaXplPXRoaXMuX2hlbHBlcj97d2lkdGg6by5vdXRlcldpZHRoKCksaGVpZ2h0Om8ub3V0ZXJIZWlnaHQoKX06e3dpZHRoOm8ud2lkdGgoKSxoZWlnaHQ6by5oZWlnaHQoKX0sdGhpcy5zaXplRGlmZj17d2lkdGg6by5vdXRlcldpZHRoKCktby53aWR0aCgpLGhlaWdodDpvLm91dGVySGVpZ2h0KCktby5oZWlnaHQoKX0sdGhpcy5vcmlnaW5hbFBvc2l0aW9uPXtsZWZ0OmksdG9wOnN9LHRoaXMub3JpZ2luYWxNb3VzZVBvc2l0aW9uPXtsZWZ0OnQucGFnZVgsdG9wOnQucGFnZVl9LHRoaXMuYXNwZWN0UmF0aW89Im51bWJlciI9PXR5cGVvZiBhLmFzcGVjdFJhdGlvP2EuYXNwZWN0UmF0aW86dGhpcy5vcmlnaW5hbFNpemUud2lkdGgvdGhpcy5vcmlnaW5hbFNpemUuaGVpZ2h0fHwxLG49ZSgiLnVpLXJlc2l6YWJsZS0iK3RoaXMuYXhpcykuY3NzKCJjdXJzb3IiKSxlKCJib2R5IikuY3NzKCJjdXJzb3IiLCJhdXRvIj09PW4/dGhpcy5heGlzKyItcmVzaXplIjpuKSxvLmFkZENsYXNzKCJ1aS1yZXNpemFibGUtcmVzaXppbmciKSx0aGlzLl9wcm9wYWdhdGUoInN0YXJ0Iix0KSwhMH0sX21vdXNlRHJhZzpmdW5jdGlvbih0KXt2YXIgaSxzLG49dGhpcy5vcmlnaW5hbE1vdXNlUG9zaXRpb24sYT10aGlzLmF4aXMsbz10LnBhZ2VYLW4ubGVmdHx8MCxyPXQucGFnZVktbi50b3B8fDAsaD10aGlzLl9jaGFuZ2VbYV07cmV0dXJuIHRoaXMuX3VwZGF0ZVByZXZQcm9wZXJ0aWVzKCksaD8oaT1oLmFwcGx5KHRoaXMsW3QsbyxyXSksdGhpcy5fdXBkYXRlVmlydHVhbEJvdW5kYXJpZXModC5zaGlmdEtleSksKHRoaXMuX2FzcGVjdFJhdGlvfHx0LnNoaWZ0S2V5KSYmKGk9dGhpcy5fdXBkYXRlUmF0aW8oaSx0KSksaT10aGlzLl9yZXNwZWN0U2l6ZShpLHQpLHRoaXMuX3VwZGF0ZUNhY2hlKGkpLHRoaXMuX3Byb3BhZ2F0ZSgicmVzaXplIix0KSxzPXRoaXMuX2FwcGx5Q2hhbmdlcygpLCF0aGlzLl9oZWxwZXImJnRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMubGVuZ3RoJiZ0aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZSgpLGUuaXNFbXB0eU9iamVjdChzKXx8KHRoaXMuX3VwZGF0ZVByZXZQcm9wZXJ0aWVzKCksdGhpcy5fdHJpZ2dlcigicmVzaXplIix0LHRoaXMudWkoKSksdGhpcy5fYXBwbHlDaGFuZ2VzKCkpLCExKTohMX0sX21vdXNlU3RvcDpmdW5jdGlvbih0KXt0aGlzLnJlc2l6aW5nPSExO3ZhciBpLHMsbixhLG8scixoLGw9dGhpcy5vcHRpb25zLHU9dGhpcztyZXR1cm4gdGhpcy5faGVscGVyJiYoaT10aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZUVsZW1lbnRzLHM9aS5sZW5ndGgmJi90ZXh0YXJlYS9pLnRlc3QoaVswXS5ub2RlTmFtZSksbj1zJiZ0aGlzLl9oYXNTY3JvbGwoaVswXSwibGVmdCIpPzA6dS5zaXplRGlmZi5oZWlnaHQsYT1zPzA6dS5zaXplRGlmZi53aWR0aCxvPXt3aWR0aDp1LmhlbHBlci53aWR0aCgpLWEsaGVpZ2h0OnUuaGVscGVyLmhlaWdodCgpLW59LHI9cGFyc2VJbnQodS5lbGVtZW50LmNzcygibGVmdCIpLDEwKSsodS5wb3NpdGlvbi5sZWZ0LXUub3JpZ2luYWxQb3NpdGlvbi5sZWZ0KXx8bnVsbCxoPXBhcnNlSW50KHUuZWxlbWVudC5jc3MoInRvcCIpLDEwKSsodS5wb3NpdGlvbi50b3AtdS5vcmlnaW5hbFBvc2l0aW9uLnRvcCl8fG51bGwsbC5hbmltYXRlfHx0aGlzLmVsZW1lbnQuY3NzKGUuZXh0ZW5kKG8se3RvcDpoLGxlZnQ6cn0pKSx1LmhlbHBlci5oZWlnaHQodS5zaXplLmhlaWdodCksdS5oZWxwZXIud2lkdGgodS5zaXplLndpZHRoKSx0aGlzLl9oZWxwZXImJiFsLmFuaW1hdGUmJnRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplKCkpLGUoImJvZHkiKS5jc3MoImN1cnNvciIsImF1dG8iKSx0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXJlc2l6YWJsZS1yZXNpemluZyIpLHRoaXMuX3Byb3BhZ2F0ZSgic3RvcCIsdCksdGhpcy5faGVscGVyJiZ0aGlzLmhlbHBlci5yZW1vdmUoKSwhMX0sX3VwZGF0ZVByZXZQcm9wZXJ0aWVzOmZ1bmN0aW9uKCl7dGhpcy5wcmV2UG9zaXRpb249e3RvcDp0aGlzLnBvc2l0aW9uLnRvcCxsZWZ0OnRoaXMucG9zaXRpb24ubGVmdH0sdGhpcy5wcmV2U2l6ZT17d2lkdGg6dGhpcy5zaXplLndpZHRoLGhlaWdodDp0aGlzLnNpemUuaGVpZ2h0fX0sX2FwcGx5Q2hhbmdlczpmdW5jdGlvbigpe3ZhciBlPXt9O3JldHVybiB0aGlzLnBvc2l0aW9uLnRvcCE9PXRoaXMucHJldlBvc2l0aW9uLnRvcCYmKGUudG9wPXRoaXMucG9zaXRpb24udG9wKyJweCIpLHRoaXMucG9zaXRpb24ubGVmdCE9PXRoaXMucHJldlBvc2l0aW9uLmxlZnQmJihlLmxlZnQ9dGhpcy5wb3NpdGlvbi5sZWZ0KyJweCIpLHRoaXMuc2l6ZS53aWR0aCE9PXRoaXMucHJldlNpemUud2lkdGgmJihlLndpZHRoPXRoaXMuc2l6ZS53aWR0aCsicHgiKSx0aGlzLnNpemUuaGVpZ2h0IT09dGhpcy5wcmV2U2l6ZS5oZWlnaHQmJihlLmhlaWdodD10aGlzLnNpemUuaGVpZ2h0KyJweCIpLHRoaXMuaGVscGVyLmNzcyhlKSxlfSxfdXBkYXRlVmlydHVhbEJvdW5kYXJpZXM6ZnVuY3Rpb24oZSl7dmFyIHQsaSxzLG4sYSxvPXRoaXMub3B0aW9uczthPXttaW5XaWR0aDp0aGlzLl9pc051bWJlcihvLm1pbldpZHRoKT9vLm1pbldpZHRoOjAsbWF4V2lkdGg6dGhpcy5faXNOdW1iZXIoby5tYXhXaWR0aCk/by5tYXhXaWR0aDoxLzAsbWluSGVpZ2h0OnRoaXMuX2lzTnVtYmVyKG8ubWluSGVpZ2h0KT9vLm1pbkhlaWdodDowLG1heEhlaWdodDp0aGlzLl9pc051bWJlcihvLm1heEhlaWdodCk/by5tYXhIZWlnaHQ6MS8wfSwodGhpcy5fYXNwZWN0UmF0aW98fGUpJiYodD1hLm1pbkhlaWdodCp0aGlzLmFzcGVjdFJhdGlvLHM9YS5taW5XaWR0aC90aGlzLmFzcGVjdFJhdGlvLGk9YS5tYXhIZWlnaHQqdGhpcy5hc3BlY3RSYXRpbyxuPWEubWF4V2lkdGgvdGhpcy5hc3BlY3RSYXRpbyx0PmEubWluV2lkdGgmJihhLm1pbldpZHRoPXQpLHM+YS5taW5IZWlnaHQmJihhLm1pbkhlaWdodD1zKSxhLm1heFdpZHRoPmkmJihhLm1heFdpZHRoPWkpLGEubWF4SGVpZ2h0Pm4mJihhLm1heEhlaWdodD1uKSksdGhpcy5fdkJvdW5kYXJpZXM9YX0sX3VwZGF0ZUNhY2hlOmZ1bmN0aW9uKGUpe3RoaXMub2Zmc2V0PXRoaXMuaGVscGVyLm9mZnNldCgpLHRoaXMuX2lzTnVtYmVyKGUubGVmdCkmJih0aGlzLnBvc2l0aW9uLmxlZnQ9ZS5sZWZ0KSx0aGlzLl9pc051bWJlcihlLnRvcCkmJih0aGlzLnBvc2l0aW9uLnRvcD1lLnRvcCksdGhpcy5faXNOdW1iZXIoZS5oZWlnaHQpJiYodGhpcy5zaXplLmhlaWdodD1lLmhlaWdodCksdGhpcy5faXNOdW1iZXIoZS53aWR0aCkmJih0aGlzLnNpemUud2lkdGg9ZS53aWR0aCl9LF91cGRhdGVSYXRpbzpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnBvc2l0aW9uLGk9dGhpcy5zaXplLHM9dGhpcy5heGlzO3JldHVybiB0aGlzLl9pc051bWJlcihlLmhlaWdodCk/ZS53aWR0aD1lLmhlaWdodCp0aGlzLmFzcGVjdFJhdGlvOnRoaXMuX2lzTnVtYmVyKGUud2lkdGgpJiYoZS5oZWlnaHQ9ZS53aWR0aC90aGlzLmFzcGVjdFJhdGlvKSwic3ciPT09cyYmKGUubGVmdD10LmxlZnQrKGkud2lkdGgtZS53aWR0aCksZS50b3A9bnVsbCksIm53Ij09PXMmJihlLnRvcD10LnRvcCsoaS5oZWlnaHQtZS5oZWlnaHQpLGUubGVmdD10LmxlZnQrKGkud2lkdGgtZS53aWR0aCkpLGV9LF9yZXNwZWN0U2l6ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLl92Qm91bmRhcmllcyxpPXRoaXMuYXhpcyxzPXRoaXMuX2lzTnVtYmVyKGUud2lkdGgpJiZ0Lm1heFdpZHRoJiZ0Lm1heFdpZHRoPGUud2lkdGgsbj10aGlzLl9pc051bWJlcihlLmhlaWdodCkmJnQubWF4SGVpZ2h0JiZ0Lm1heEhlaWdodDxlLmhlaWdodCxhPXRoaXMuX2lzTnVtYmVyKGUud2lkdGgpJiZ0Lm1pbldpZHRoJiZ0Lm1pbldpZHRoPmUud2lkdGgsbz10aGlzLl9pc051bWJlcihlLmhlaWdodCkmJnQubWluSGVpZ2h0JiZ0Lm1pbkhlaWdodD5lLmhlaWdodCxyPXRoaXMub3JpZ2luYWxQb3NpdGlvbi5sZWZ0K3RoaXMub3JpZ2luYWxTaXplLndpZHRoLGg9dGhpcy5wb3NpdGlvbi50b3ArdGhpcy5zaXplLmhlaWdodCxsPS9zd3xud3x3Ly50ZXN0KGkpLHU9L253fG5lfG4vLnRlc3QoaSk7cmV0dXJuIGEmJihlLndpZHRoPXQubWluV2lkdGgpLG8mJihlLmhlaWdodD10Lm1pbkhlaWdodCkscyYmKGUud2lkdGg9dC5tYXhXaWR0aCksbiYmKGUuaGVpZ2h0PXQubWF4SGVpZ2h0KSxhJiZsJiYoZS5sZWZ0PXItdC5taW5XaWR0aCkscyYmbCYmKGUubGVmdD1yLXQubWF4V2lkdGgpLG8mJnUmJihlLnRvcD1oLXQubWluSGVpZ2h0KSxuJiZ1JiYoZS50b3A9aC10Lm1heEhlaWdodCksZS53aWR0aHx8ZS5oZWlnaHR8fGUubGVmdHx8IWUudG9wP2Uud2lkdGh8fGUuaGVpZ2h0fHxlLnRvcHx8IWUubGVmdHx8KGUubGVmdD1udWxsKTplLnRvcD1udWxsLGV9LF9nZXRQYWRkaW5nUGx1c0JvcmRlckRpbWVuc2lvbnM6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTAsaT1bXSxzPVtlLmNzcygiYm9yZGVyVG9wV2lkdGgiKSxlLmNzcygiYm9yZGVyUmlnaHRXaWR0aCIpLGUuY3NzKCJib3JkZXJCb3R0b21XaWR0aCIpLGUuY3NzKCJib3JkZXJMZWZ0V2lkdGgiKV0sbj1bZS5jc3MoInBhZGRpbmdUb3AiKSxlLmNzcygicGFkZGluZ1JpZ2h0IiksZS5jc3MoInBhZGRpbmdCb3R0b20iKSxlLmNzcygicGFkZGluZ0xlZnQiKV07ND50O3QrKylpW3RdPXBhcnNlSW50KHNbdF0sMTApfHwwLGlbdF0rPXBhcnNlSW50KG5bdF0sMTApfHwwO3JldHVybntoZWlnaHQ6aVswXStpWzJdLHdpZHRoOmlbMV0raVszXX19LF9wcm9wb3J0aW9uYWxseVJlc2l6ZTpmdW5jdGlvbigpe2lmKHRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMubGVuZ3RoKWZvcih2YXIgZSx0PTAsaT10aGlzLmhlbHBlcnx8dGhpcy5lbGVtZW50O3RoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMubGVuZ3RoPnQ7dCsrKWU9dGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50c1t0XSx0aGlzLm91dGVyRGltZW5zaW9uc3x8KHRoaXMub3V0ZXJEaW1lbnNpb25zPXRoaXMuX2dldFBhZGRpbmdQbHVzQm9yZGVyRGltZW5zaW9ucyhlKSksZS5jc3Moe2hlaWdodDppLmhlaWdodCgpLXRoaXMub3V0ZXJEaW1lbnNpb25zLmhlaWdodHx8MCx3aWR0aDppLndpZHRoKCktdGhpcy5vdXRlckRpbWVuc2lvbnMud2lkdGh8fDB9KX0sX3JlbmRlclByb3h5OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbGVtZW50LGk9dGhpcy5vcHRpb25zO3RoaXMuZWxlbWVudE9mZnNldD10Lm9mZnNldCgpLHRoaXMuX2hlbHBlcj8odGhpcy5oZWxwZXI9dGhpcy5oZWxwZXJ8fGUoIjxkaXYgc3R5bGU9J292ZXJmbG93OmhpZGRlbjsnPjwvZGl2PiIpLHRoaXMuaGVscGVyLmFkZENsYXNzKHRoaXMuX2hlbHBlcikuY3NzKHt3aWR0aDp0aGlzLmVsZW1lbnQub3V0ZXJXaWR0aCgpLTEsaGVpZ2h0OnRoaXMuZWxlbWVudC5vdXRlckhlaWdodCgpLTEscG9zaXRpb246ImFic29sdXRlIixsZWZ0OnRoaXMuZWxlbWVudE9mZnNldC5sZWZ0KyJweCIsdG9wOnRoaXMuZWxlbWVudE9mZnNldC50b3ArInB4Iix6SW5kZXg6KytpLnpJbmRleH0pLHRoaXMuaGVscGVyLmFwcGVuZFRvKCJib2R5IikuZGlzYWJsZVNlbGVjdGlvbigpKTp0aGlzLmhlbHBlcj10aGlzLmVsZW1lbnR9LF9jaGFuZ2U6e2U6ZnVuY3Rpb24oZSx0KXtyZXR1cm57d2lkdGg6dGhpcy5vcmlnaW5hbFNpemUud2lkdGgrdH19LHc6ZnVuY3Rpb24oZSx0KXt2YXIgaT10aGlzLm9yaWdpbmFsU2l6ZSxzPXRoaXMub3JpZ2luYWxQb3NpdGlvbjtyZXR1cm57bGVmdDpzLmxlZnQrdCx3aWR0aDppLndpZHRoLXR9fSxuOmZ1bmN0aW9uKGUsdCxpKXt2YXIgcz10aGlzLm9yaWdpbmFsU2l6ZSxuPXRoaXMub3JpZ2luYWxQb3NpdGlvbjtyZXR1cm57dG9wOm4udG9wK2ksaGVpZ2h0OnMuaGVpZ2h0LWl9fSxzOmZ1bmN0aW9uKGUsdCxpKXtyZXR1cm57aGVpZ2h0OnRoaXMub3JpZ2luYWxTaXplLmhlaWdodCtpfX0sc2U6ZnVuY3Rpb24odCxpLHMpe3JldHVybiBlLmV4dGVuZCh0aGlzLl9jaGFuZ2Uucy5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fY2hhbmdlLmUuYXBwbHkodGhpcyxbdCxpLHNdKSl9LHN3OmZ1bmN0aW9uKHQsaSxzKXtyZXR1cm4gZS5leHRlbmQodGhpcy5fY2hhbmdlLnMuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX2NoYW5nZS53LmFwcGx5KHRoaXMsW3QsaSxzXSkpfSxuZTpmdW5jdGlvbih0LGkscyl7cmV0dXJuIGUuZXh0ZW5kKHRoaXMuX2NoYW5nZS5uLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9jaGFuZ2UuZS5hcHBseSh0aGlzLFt0LGksc10pKX0sbnc6ZnVuY3Rpb24odCxpLHMpe3JldHVybiBlLmV4dGVuZCh0aGlzLl9jaGFuZ2Uubi5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fY2hhbmdlLncuYXBwbHkodGhpcyxbdCxpLHNdKSl9fSxfcHJvcGFnYXRlOmZ1bmN0aW9uKHQsaSl7ZS51aS5wbHVnaW4uY2FsbCh0aGlzLHQsW2ksdGhpcy51aSgpXSksInJlc2l6ZSIhPT10JiZ0aGlzLl90cmlnZ2VyKHQsaSx0aGlzLnVpKCkpfSxwbHVnaW5zOnt9LHVpOmZ1bmN0aW9uKCl7cmV0dXJue29yaWdpbmFsRWxlbWVudDp0aGlzLm9yaWdpbmFsRWxlbWVudCxlbGVtZW50OnRoaXMuZWxlbWVudCxoZWxwZXI6dGhpcy5oZWxwZXIscG9zaXRpb246dGhpcy5wb3NpdGlvbixzaXplOnRoaXMuc2l6ZSxvcmlnaW5hbFNpemU6dGhpcy5vcmlnaW5hbFNpemUsb3JpZ2luYWxQb3NpdGlvbjp0aGlzLm9yaWdpbmFsUG9zaXRpb259fX0pLGUudWkucGx1Z2luLmFkZCgicmVzaXphYmxlIiwiYW5pbWF0ZSIse3N0b3A6ZnVuY3Rpb24odCl7dmFyIGk9ZSh0aGlzKS5yZXNpemFibGUoImluc3RhbmNlIikscz1pLm9wdGlvbnMsbj1pLl9wcm9wb3J0aW9uYWxseVJlc2l6ZUVsZW1lbnRzLGE9bi5sZW5ndGgmJi90ZXh0YXJlYS9pLnRlc3QoblswXS5ub2RlTmFtZSksbz1hJiZpLl9oYXNTY3JvbGwoblswXSwibGVmdCIpPzA6aS5zaXplRGlmZi5oZWlnaHQscj1hPzA6aS5zaXplRGlmZi53aWR0aCxoPXt3aWR0aDppLnNpemUud2lkdGgtcixoZWlnaHQ6aS5zaXplLmhlaWdodC1vfSxsPXBhcnNlSW50KGkuZWxlbWVudC5jc3MoImxlZnQiKSwxMCkrKGkucG9zaXRpb24ubGVmdC1pLm9yaWdpbmFsUG9zaXRpb24ubGVmdCl8fG51bGwsdT1wYXJzZUludChpLmVsZW1lbnQuY3NzKCJ0b3AiKSwxMCkrKGkucG9zaXRpb24udG9wLWkub3JpZ2luYWxQb3NpdGlvbi50b3ApfHxudWxsO2kuZWxlbWVudC5hbmltYXRlKGUuZXh0ZW5kKGgsdSYmbD97dG9wOnUsbGVmdDpsfTp7fSkse2R1cmF0aW9uOnMuYW5pbWF0ZUR1cmF0aW9uLGVhc2luZzpzLmFuaW1hdGVFYXNpbmcsc3RlcDpmdW5jdGlvbigpe3ZhciBzPXt3aWR0aDpwYXJzZUludChpLmVsZW1lbnQuY3NzKCJ3aWR0aCIpLDEwKSxoZWlnaHQ6cGFyc2VJbnQoaS5lbGVtZW50LmNzcygiaGVpZ2h0IiksMTApLHRvcDpwYXJzZUludChpLmVsZW1lbnQuY3NzKCJ0b3AiKSwxMCksbGVmdDpwYXJzZUludChpLmVsZW1lbnQuY3NzKCJsZWZ0IiksMTApfTtuJiZuLmxlbmd0aCYmZShuWzBdKS5jc3Moe3dpZHRoOnMud2lkdGgsaGVpZ2h0OnMuaGVpZ2h0fSksaS5fdXBkYXRlQ2FjaGUocyksaS5fcHJvcGFnYXRlKCJyZXNpemUiLHQpfX0pfX0pLGUudWkucGx1Z2luLmFkZCgicmVzaXphYmxlIiwiY29udGFpbm1lbnQiLHtzdGFydDpmdW5jdGlvbigpe3ZhciB0LGkscyxuLGEsbyxyLGg9ZSh0aGlzKS5yZXNpemFibGUoImluc3RhbmNlIiksbD1oLm9wdGlvbnMsdT1oLmVsZW1lbnQsZD1sLmNvbnRhaW5tZW50LGM9ZCBpbnN0YW5jZW9mIGU/ZC5nZXQoMCk6L3BhcmVudC8udGVzdChkKT91LnBhcmVudCgpLmdldCgwKTpkO2MmJihoLmNvbnRhaW5lckVsZW1lbnQ9ZShjKSwvZG9jdW1lbnQvLnRlc3QoZCl8fGQ9PT1kb2N1bWVudD8oaC5jb250YWluZXJPZmZzZXQ9e2xlZnQ6MCx0b3A6MH0saC5jb250YWluZXJQb3NpdGlvbj17bGVmdDowLHRvcDowfSxoLnBhcmVudERhdGE9e2VsZW1lbnQ6ZShkb2N1bWVudCksbGVmdDowLHRvcDowLHdpZHRoOmUoZG9jdW1lbnQpLndpZHRoKCksaGVpZ2h0OmUoZG9jdW1lbnQpLmhlaWdodCgpfHxkb2N1bWVudC5ib2R5LnBhcmVudE5vZGUuc2Nyb2xsSGVpZ2h0fSk6KHQ9ZShjKSxpPVtdLGUoWyJUb3AiLCJSaWdodCIsIkxlZnQiLCJCb3R0b20iXSkuZWFjaChmdW5jdGlvbihlLHMpe2lbZV09aC5fbnVtKHQuY3NzKCJwYWRkaW5nIitzKSl9KSxoLmNvbnRhaW5lck9mZnNldD10Lm9mZnNldCgpLGguY29udGFpbmVyUG9zaXRpb249dC5wb3NpdGlvbigpLGguY29udGFpbmVyU2l6ZT17aGVpZ2h0OnQuaW5uZXJIZWlnaHQoKS1pWzNdLHdpZHRoOnQuaW5uZXJXaWR0aCgpLWlbMV19LHM9aC5jb250YWluZXJPZmZzZXQsbj1oLmNvbnRhaW5lclNpemUuaGVpZ2h0LGE9aC5jb250YWluZXJTaXplLndpZHRoLG89aC5faGFzU2Nyb2xsKGMsImxlZnQiKT9jLnNjcm9sbFdpZHRoOmEscj1oLl9oYXNTY3JvbGwoYyk/Yy5zY3JvbGxIZWlnaHQ6bixoLnBhcmVudERhdGE9e2VsZW1lbnQ6YyxsZWZ0OnMubGVmdCx0b3A6cy50b3Asd2lkdGg6byxoZWlnaHQ6cn0pKX0scmVzaXplOmZ1bmN0aW9uKHQpe3ZhciBpLHMsbixhLG89ZSh0aGlzKS5yZXNpemFibGUoImluc3RhbmNlIikscj1vLm9wdGlvbnMsaD1vLmNvbnRhaW5lck9mZnNldCxsPW8ucG9zaXRpb24sdT1vLl9hc3BlY3RSYXRpb3x8dC5zaGlmdEtleSxkPXt0b3A6MCxsZWZ0OjB9LGM9by5jb250YWluZXJFbGVtZW50LHA9ITA7Y1swXSE9PWRvY3VtZW50JiYvc3RhdGljLy50ZXN0KGMuY3NzKCJwb3NpdGlvbiIpKSYmKGQ9aCksbC5sZWZ0PChvLl9oZWxwZXI/aC5sZWZ0OjApJiYoby5zaXplLndpZHRoPW8uc2l6ZS53aWR0aCsoby5faGVscGVyP28ucG9zaXRpb24ubGVmdC1oLmxlZnQ6by5wb3NpdGlvbi5sZWZ0LWQubGVmdCksdSYmKG8uc2l6ZS5oZWlnaHQ9by5zaXplLndpZHRoL28uYXNwZWN0UmF0aW8scD0hMSksby5wb3NpdGlvbi5sZWZ0PXIuaGVscGVyP2gubGVmdDowKSxsLnRvcDwoby5faGVscGVyP2gudG9wOjApJiYoby5zaXplLmhlaWdodD1vLnNpemUuaGVpZ2h0KyhvLl9oZWxwZXI/by5wb3NpdGlvbi50b3AtaC50b3A6by5wb3NpdGlvbi50b3ApLHUmJihvLnNpemUud2lkdGg9by5zaXplLmhlaWdodCpvLmFzcGVjdFJhdGlvLHA9ITEpLG8ucG9zaXRpb24udG9wPW8uX2hlbHBlcj9oLnRvcDowKSxuPW8uY29udGFpbmVyRWxlbWVudC5nZXQoMCk9PT1vLmVsZW1lbnQucGFyZW50KCkuZ2V0KDApLGE9L3JlbGF0aXZlfGFic29sdXRlLy50ZXN0KG8uY29udGFpbmVyRWxlbWVudC5jc3MoInBvc2l0aW9uIikpLG4mJmE/KG8ub2Zmc2V0LmxlZnQ9by5wYXJlbnREYXRhLmxlZnQrby5wb3NpdGlvbi5sZWZ0LG8ub2Zmc2V0LnRvcD1vLnBhcmVudERhdGEudG9wK28ucG9zaXRpb24udG9wKTooby5vZmZzZXQubGVmdD1vLmVsZW1lbnQub2Zmc2V0KCkubGVmdCxvLm9mZnNldC50b3A9by5lbGVtZW50Lm9mZnNldCgpLnRvcCksaT1NYXRoLmFicyhvLnNpemVEaWZmLndpZHRoKyhvLl9oZWxwZXI/by5vZmZzZXQubGVmdC1kLmxlZnQ6by5vZmZzZXQubGVmdC1oLmxlZnQpKSxzPU1hdGguYWJzKG8uc2l6ZURpZmYuaGVpZ2h0KyhvLl9oZWxwZXI/by5vZmZzZXQudG9wLWQudG9wOm8ub2Zmc2V0LnRvcC1oLnRvcCkpLGkrby5zaXplLndpZHRoPj1vLnBhcmVudERhdGEud2lkdGgmJihvLnNpemUud2lkdGg9by5wYXJlbnREYXRhLndpZHRoLWksdSYmKG8uc2l6ZS5oZWlnaHQ9by5zaXplLndpZHRoL28uYXNwZWN0UmF0aW8scD0hMSkpLHMrby5zaXplLmhlaWdodD49by5wYXJlbnREYXRhLmhlaWdodCYmKG8uc2l6ZS5oZWlnaHQ9by5wYXJlbnREYXRhLmhlaWdodC1zLHUmJihvLnNpemUud2lkdGg9by5zaXplLmhlaWdodCpvLmFzcGVjdFJhdGlvLHA9ITEpKSxwfHwoby5wb3NpdGlvbi5sZWZ0PW8ucHJldlBvc2l0aW9uLmxlZnQsby5wb3NpdGlvbi50b3A9by5wcmV2UG9zaXRpb24udG9wLG8uc2l6ZS53aWR0aD1vLnByZXZTaXplLndpZHRoLG8uc2l6ZS5oZWlnaHQ9by5wcmV2U2l6ZS5oZWlnaHQpfSxzdG9wOmZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKS5yZXNpemFibGUoImluc3RhbmNlIiksaT10Lm9wdGlvbnMscz10LmNvbnRhaW5lck9mZnNldCxuPXQuY29udGFpbmVyUG9zaXRpb24sYT10LmNvbnRhaW5lckVsZW1lbnQsbz1lKHQuaGVscGVyKSxyPW8ub2Zmc2V0KCksaD1vLm91dGVyV2lkdGgoKS10LnNpemVEaWZmLndpZHRoLGw9by5vdXRlckhlaWdodCgpLXQuc2l6ZURpZmYuaGVpZ2h0O3QuX2hlbHBlciYmIWkuYW5pbWF0ZSYmL3JlbGF0aXZlLy50ZXN0KGEuY3NzKCJwb3NpdGlvbiIpKSYmZSh0aGlzKS5jc3Moe2xlZnQ6ci5sZWZ0LW4ubGVmdC1zLmxlZnQsd2lkdGg6aCxoZWlnaHQ6bH0pLHQuX2hlbHBlciYmIWkuYW5pbWF0ZSYmL3N0YXRpYy8udGVzdChhLmNzcygicG9zaXRpb24iKSkmJmUodGhpcykuY3NzKHtsZWZ0OnIubGVmdC1uLmxlZnQtcy5sZWZ0LHdpZHRoOmgsaGVpZ2h0Omx9KX19KSxlLnVpLnBsdWdpbi5hZGQoInJlc2l6YWJsZSIsImFsc29SZXNpemUiLHtzdGFydDpmdW5jdGlvbigpe3ZhciB0PWUodGhpcykucmVzaXphYmxlKCJpbnN0YW5jZSIpLGk9dC5vcHRpb25zO2UoaS5hbHNvUmVzaXplKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKTt0LmRhdGEoInVpLXJlc2l6YWJsZS1hbHNvcmVzaXplIix7d2lkdGg6cGFyc2VJbnQodC53aWR0aCgpLDEwKSxoZWlnaHQ6cGFyc2VJbnQodC5oZWlnaHQoKSwxMCksbGVmdDpwYXJzZUludCh0LmNzcygibGVmdCIpLDEwKSx0b3A6cGFyc2VJbnQodC5jc3MoInRvcCIpLDEwKX0pfSl9LHJlc2l6ZTpmdW5jdGlvbih0LGkpe3ZhciBzPWUodGhpcykucmVzaXphYmxlKCJpbnN0YW5jZSIpLG49cy5vcHRpb25zLGE9cy5vcmlnaW5hbFNpemUsbz1zLm9yaWdpbmFsUG9zaXRpb24scj17aGVpZ2h0OnMuc2l6ZS5oZWlnaHQtYS5oZWlnaHR8fDAsd2lkdGg6cy5zaXplLndpZHRoLWEud2lkdGh8fDAsdG9wOnMucG9zaXRpb24udG9wLW8udG9wfHwwLGxlZnQ6cy5wb3NpdGlvbi5sZWZ0LW8ubGVmdHx8MH07ZShuLmFsc29SZXNpemUpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLHM9ZSh0aGlzKS5kYXRhKCJ1aS1yZXNpemFibGUtYWxzb3Jlc2l6ZSIpLG49e30sYT10LnBhcmVudHMoaS5vcmlnaW5hbEVsZW1lbnRbMF0pLmxlbmd0aD9bIndpZHRoIiwiaGVpZ2h0Il06WyJ3aWR0aCIsImhlaWdodCIsInRvcCIsImxlZnQiXTtlLmVhY2goYSxmdW5jdGlvbihlLHQpe3ZhciBpPShzW3RdfHwwKSsoclt0XXx8MCk7aSYmaT49MCYmKG5bdF09aXx8bnVsbCl9KSx0LmNzcyhuKX0pfSxzdG9wOmZ1bmN0aW9uKCl7ZSh0aGlzKS5yZW1vdmVEYXRhKCJyZXNpemFibGUtYWxzb3Jlc2l6ZSIpfX0pLGUudWkucGx1Z2luLmFkZCgicmVzaXphYmxlIiwiZ2hvc3QiLHtzdGFydDpmdW5jdGlvbigpe3ZhciB0PWUodGhpcykucmVzaXphYmxlKCJpbnN0YW5jZSIpLGk9dC5vcHRpb25zLHM9dC5zaXplO3QuZ2hvc3Q9dC5vcmlnaW5hbEVsZW1lbnQuY2xvbmUoKSx0Lmdob3N0LmNzcyh7b3BhY2l0eTouMjUsZGlzcGxheToiYmxvY2siLHBvc2l0aW9uOiJyZWxhdGl2ZSIsaGVpZ2h0OnMuaGVpZ2h0LHdpZHRoOnMud2lkdGgsbWFyZ2luOjAsbGVmdDowLHRvcDowfSkuYWRkQ2xhc3MoInVpLXJlc2l6YWJsZS1naG9zdCIpLmFkZENsYXNzKCJzdHJpbmciPT10eXBlb2YgaS5naG9zdD9pLmdob3N0OiIiKSx0Lmdob3N0LmFwcGVuZFRvKHQuaGVscGVyKX0scmVzaXplOmZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKS5yZXNpemFibGUoImluc3RhbmNlIik7dC5naG9zdCYmdC5naG9zdC5jc3Moe3Bvc2l0aW9uOiJyZWxhdGl2ZSIsaGVpZ2h0OnQuc2l6ZS5oZWlnaHQsd2lkdGg6dC5zaXplLndpZHRofSl9LHN0b3A6ZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLnJlc2l6YWJsZSgiaW5zdGFuY2UiKTt0Lmdob3N0JiZ0LmhlbHBlciYmdC5oZWxwZXIuZ2V0KDApLnJlbW92ZUNoaWxkKHQuZ2hvc3QuZ2V0KDApKX19KSxlLnVpLnBsdWdpbi5hZGQoInJlc2l6YWJsZSIsImdyaWQiLHtyZXNpemU6ZnVuY3Rpb24oKXt2YXIgdCxpPWUodGhpcykucmVzaXphYmxlKCJpbnN0YW5jZSIpLHM9aS5vcHRpb25zLG49aS5zaXplLGE9aS5vcmlnaW5hbFNpemUsbz1pLm9yaWdpbmFsUG9zaXRpb24scj1pLmF4aXMsaD0ibnVtYmVyIj09dHlwZW9mIHMuZ3JpZD9bcy5ncmlkLHMuZ3JpZF06cy5ncmlkLGw9aFswXXx8MSx1PWhbMV18fDEsZD1NYXRoLnJvdW5kKChuLndpZHRoLWEud2lkdGgpL2wpKmwsYz1NYXRoLnJvdW5kKChuLmhlaWdodC1hLmhlaWdodCkvdSkqdSxwPWEud2lkdGgrZCxmPWEuaGVpZ2h0K2MsbT1zLm1heFdpZHRoJiZwPnMubWF4V2lkdGgsZz1zLm1heEhlaWdodCYmZj5zLm1heEhlaWdodCx2PXMubWluV2lkdGgmJnMubWluV2lkdGg+cCx5PXMubWluSGVpZ2h0JiZzLm1pbkhlaWdodD5mO3MuZ3JpZD1oLHYmJihwKz1sKSx5JiYoZis9dSksbSYmKHAtPWwpLGcmJihmLT11KSwvXihzZXxzfGUpJC8udGVzdChyKT8oaS5zaXplLndpZHRoPXAsaS5zaXplLmhlaWdodD1mKTovXihuZSkkLy50ZXN0KHIpPyhpLnNpemUud2lkdGg9cCxpLnNpemUuaGVpZ2h0PWYsaS5wb3NpdGlvbi50b3A9by50b3AtYyk6L14oc3cpJC8udGVzdChyKT8oaS5zaXplLndpZHRoPXAsaS5zaXplLmhlaWdodD1mLGkucG9zaXRpb24ubGVmdD1vLmxlZnQtZCk6KCgwPj1mLXV8fDA+PXAtbCkmJih0PWkuX2dldFBhZGRpbmdQbHVzQm9yZGVyRGltZW5zaW9ucyh0aGlzKSksZi11PjA/KGkuc2l6ZS5oZWlnaHQ9ZixpLnBvc2l0aW9uLnRvcD1vLnRvcC1jKTooZj11LXQuaGVpZ2h0LGkuc2l6ZS5oZWlnaHQ9ZixpLnBvc2l0aW9uLnRvcD1vLnRvcCthLmhlaWdodC1mKSxwLWw+MD8oaS5zaXplLndpZHRoPXAsaS5wb3NpdGlvbi5sZWZ0PW8ubGVmdC1kKToocD1sLXQud2lkdGgsaS5zaXplLndpZHRoPXAsaS5wb3NpdGlvbi5sZWZ0PW8ubGVmdCthLndpZHRoLXApKX19KSxlLnVpLnJlc2l6YWJsZSxlLndpZGdldCgidWkuc2VsZWN0YWJsZSIsZS51aS5tb3VzZSx7dmVyc2lvbjoiMS4xMS40IixvcHRpb25zOnthcHBlbmRUbzoiYm9keSIsYXV0b1JlZnJlc2g6ITAsZGlzdGFuY2U6MCxmaWx0ZXI6IioiLHRvbGVyYW5jZToidG91Y2giLHNlbGVjdGVkOm51bGwsc2VsZWN0aW5nOm51bGwsc3RhcnQ6bnVsbCxzdG9wOm51bGwsdW5zZWxlY3RlZDpudWxsLHVuc2VsZWN0aW5nOm51bGx9LF9jcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdCxpPXRoaXM7dGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS1zZWxlY3RhYmxlIiksdGhpcy5kcmFnZ2VkPSExLHRoaXMucmVmcmVzaD1mdW5jdGlvbigpe3Q9ZShpLm9wdGlvbnMuZmlsdGVyLGkuZWxlbWVudFswXSksdC5hZGRDbGFzcygidWktc2VsZWN0ZWUiKSx0LmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLGk9dC5vZmZzZXQoKTtlLmRhdGEodGhpcywic2VsZWN0YWJsZS1pdGVtIix7ZWxlbWVudDp0aGlzLCRlbGVtZW50OnQsbGVmdDppLmxlZnQsdG9wOmkudG9wLHJpZ2h0OmkubGVmdCt0Lm91dGVyV2lkdGgoKSxib3R0b206aS50b3ArdC5vdXRlckhlaWdodCgpLHN0YXJ0c2VsZWN0ZWQ6ITEsc2VsZWN0ZWQ6dC5oYXNDbGFzcygidWktc2VsZWN0ZWQiKSxzZWxlY3Rpbmc6dC5oYXNDbGFzcygidWktc2VsZWN0aW5nIiksdW5zZWxlY3Rpbmc6dC5oYXNDbGFzcygidWktdW5zZWxlY3RpbmciKX0pfSl9LHRoaXMucmVmcmVzaCgpLHRoaXMuc2VsZWN0ZWVzPXQuYWRkQ2xhc3MoInVpLXNlbGVjdGVlIiksdGhpcy5fbW91c2VJbml0KCksdGhpcy5oZWxwZXI9ZSgiPGRpdiBjbGFzcz0ndWktc2VsZWN0YWJsZS1oZWxwZXInPjwvZGl2PiIpfSxfZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuc2VsZWN0ZWVzLnJlbW92ZUNsYXNzKCJ1aS1zZWxlY3RlZSIpLnJlbW92ZURhdGEoInNlbGVjdGFibGUtaXRlbSIpLHRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcygidWktc2VsZWN0YWJsZSB1aS1zZWxlY3RhYmxlLWRpc2FibGVkIiksdGhpcy5fbW91c2VEZXN0cm95KCl9LF9tb3VzZVN0YXJ0OmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMscz10aGlzLm9wdGlvbnM7dGhpcy5vcG9zPVt0LnBhZ2VYLHQucGFnZVldLHRoaXMub3B0aW9ucy5kaXNhYmxlZHx8KHRoaXMuc2VsZWN0ZWVzPWUocy5maWx0ZXIsdGhpcy5lbGVtZW50WzBdKSx0aGlzLl90cmlnZ2VyKCJzdGFydCIsdCksZShzLmFwcGVuZFRvKS5hcHBlbmQodGhpcy5oZWxwZXIpLHRoaXMuaGVscGVyLmNzcyh7bGVmdDp0LnBhZ2VYLHRvcDp0LnBhZ2VZLHdpZHRoOjAsaGVpZ2h0OjB9KSxzLmF1dG9SZWZyZXNoJiZ0aGlzLnJlZnJlc2goKSx0aGlzLnNlbGVjdGVlcy5maWx0ZXIoIi51aS1zZWxlY3RlZCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgcz1lLmRhdGEodGhpcywic2VsZWN0YWJsZS1pdGVtIik7cy5zdGFydHNlbGVjdGVkPSEwLHQubWV0YUtleXx8dC5jdHJsS2V5fHwocy4kZWxlbWVudC5yZW1vdmVDbGFzcygidWktc2VsZWN0ZWQiKSxzLnNlbGVjdGVkPSExLHMuJGVsZW1lbnQuYWRkQ2xhc3MoInVpLXVuc2VsZWN0aW5nIikscy51bnNlbGVjdGluZz0hMCxpLl90cmlnZ2VyKCJ1bnNlbGVjdGluZyIsdCx7dW5zZWxlY3Rpbmc6cy5lbGVtZW50fSkpfSksZSh0LnRhcmdldCkucGFyZW50cygpLmFkZEJhY2soKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHMsbj1lLmRhdGEodGhpcywic2VsZWN0YWJsZS1pdGVtIik7cmV0dXJuIG4/KHM9IXQubWV0YUtleSYmIXQuY3RybEtleXx8IW4uJGVsZW1lbnQuaGFzQ2xhc3MoInVpLXNlbGVjdGVkIiksbi4kZWxlbWVudC5yZW1vdmVDbGFzcyhzPyJ1aS11bnNlbGVjdGluZyI6InVpLXNlbGVjdGVkIikuYWRkQ2xhc3Mocz8idWktc2VsZWN0aW5nIjoidWktdW5zZWxlY3RpbmciKSxuLnVuc2VsZWN0aW5nPSFzLG4uc2VsZWN0aW5nPXMsbi5zZWxlY3RlZD1zLHM/aS5fdHJpZ2dlcigic2VsZWN0aW5nIix0LHtzZWxlY3Rpbmc6bi5lbGVtZW50fSk6aS5fdHJpZ2dlcigidW5zZWxlY3RpbmciLHQse3Vuc2VsZWN0aW5nOm4uZWxlbWVudH0pLCExKTp2b2lkIDB9KSl9LF9tb3VzZURyYWc6ZnVuY3Rpb24odCl7aWYodGhpcy5kcmFnZ2VkPSEwLCF0aGlzLm9wdGlvbnMuZGlzYWJsZWQpe3ZhciBpLHM9dGhpcyxuPXRoaXMub3B0aW9ucyxhPXRoaXMub3Bvc1swXSxvPXRoaXMub3Bvc1sxXSxyPXQucGFnZVgsaD10LnBhZ2VZO3JldHVybiBhPnImJihpPXIscj1hLGE9aSksbz5oJiYoaT1oLGg9byxvPWkpLHRoaXMuaGVscGVyLmNzcyh7bGVmdDphLHRvcDpvLHdpZHRoOnItYSxoZWlnaHQ6aC1vfSksdGhpcy5zZWxlY3RlZXMuZWFjaChmdW5jdGlvbigpe3ZhciBpPWUuZGF0YSh0aGlzLCJzZWxlY3RhYmxlLWl0ZW0iKSxsPSExOwppJiZpLmVsZW1lbnQhPT1zLmVsZW1lbnRbMF0mJigidG91Y2giPT09bi50b2xlcmFuY2U/bD0hKGkubGVmdD5yfHxhPmkucmlnaHR8fGkudG9wPmh8fG8+aS5ib3R0b20pOiJmaXQiPT09bi50b2xlcmFuY2UmJihsPWkubGVmdD5hJiZyPmkucmlnaHQmJmkudG9wPm8mJmg+aS5ib3R0b20pLGw/KGkuc2VsZWN0ZWQmJihpLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zZWxlY3RlZCIpLGkuc2VsZWN0ZWQ9ITEpLGkudW5zZWxlY3RpbmcmJihpLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS11bnNlbGVjdGluZyIpLGkudW5zZWxlY3Rpbmc9ITEpLGkuc2VsZWN0aW5nfHwoaS4kZWxlbWVudC5hZGRDbGFzcygidWktc2VsZWN0aW5nIiksaS5zZWxlY3Rpbmc9ITAscy5fdHJpZ2dlcigic2VsZWN0aW5nIix0LHtzZWxlY3Rpbmc6aS5lbGVtZW50fSkpKTooaS5zZWxlY3RpbmcmJigodC5tZXRhS2V5fHx0LmN0cmxLZXkpJiZpLnN0YXJ0c2VsZWN0ZWQ/KGkuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXNlbGVjdGluZyIpLGkuc2VsZWN0aW5nPSExLGkuJGVsZW1lbnQuYWRkQ2xhc3MoInVpLXNlbGVjdGVkIiksaS5zZWxlY3RlZD0hMCk6KGkuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXNlbGVjdGluZyIpLGkuc2VsZWN0aW5nPSExLGkuc3RhcnRzZWxlY3RlZCYmKGkuJGVsZW1lbnQuYWRkQ2xhc3MoInVpLXVuc2VsZWN0aW5nIiksaS51bnNlbGVjdGluZz0hMCkscy5fdHJpZ2dlcigidW5zZWxlY3RpbmciLHQse3Vuc2VsZWN0aW5nOmkuZWxlbWVudH0pKSksaS5zZWxlY3RlZCYmKHQubWV0YUtleXx8dC5jdHJsS2V5fHxpLnN0YXJ0c2VsZWN0ZWR8fChpLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zZWxlY3RlZCIpLGkuc2VsZWN0ZWQ9ITEsaS4kZWxlbWVudC5hZGRDbGFzcygidWktdW5zZWxlY3RpbmciKSxpLnVuc2VsZWN0aW5nPSEwLHMuX3RyaWdnZXIoInVuc2VsZWN0aW5nIix0LHt1bnNlbGVjdGluZzppLmVsZW1lbnR9KSkpKSl9KSwhMX19LF9tb3VzZVN0b3A6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcztyZXR1cm4gdGhpcy5kcmFnZ2VkPSExLGUoIi51aS11bnNlbGVjdGluZyIsdGhpcy5lbGVtZW50WzBdKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHM9ZS5kYXRhKHRoaXMsInNlbGVjdGFibGUtaXRlbSIpO3MuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXVuc2VsZWN0aW5nIikscy51bnNlbGVjdGluZz0hMSxzLnN0YXJ0c2VsZWN0ZWQ9ITEsaS5fdHJpZ2dlcigidW5zZWxlY3RlZCIsdCx7dW5zZWxlY3RlZDpzLmVsZW1lbnR9KX0pLGUoIi51aS1zZWxlY3RpbmciLHRoaXMuZWxlbWVudFswXSkuZWFjaChmdW5jdGlvbigpe3ZhciBzPWUuZGF0YSh0aGlzLCJzZWxlY3RhYmxlLWl0ZW0iKTtzLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zZWxlY3RpbmciKS5hZGRDbGFzcygidWktc2VsZWN0ZWQiKSxzLnNlbGVjdGluZz0hMSxzLnNlbGVjdGVkPSEwLHMuc3RhcnRzZWxlY3RlZD0hMCxpLl90cmlnZ2VyKCJzZWxlY3RlZCIsdCx7c2VsZWN0ZWQ6cy5lbGVtZW50fSl9KSx0aGlzLl90cmlnZ2VyKCJzdG9wIix0KSx0aGlzLmhlbHBlci5yZW1vdmUoKSwhMX19KSxlLndpZGdldCgidWkuc29ydGFibGUiLGUudWkubW91c2Use3ZlcnNpb246IjEuMTEuNCIsd2lkZ2V0RXZlbnRQcmVmaXg6InNvcnQiLHJlYWR5OiExLG9wdGlvbnM6e2FwcGVuZFRvOiJwYXJlbnQiLGF4aXM6ITEsY29ubmVjdFdpdGg6ITEsY29udGFpbm1lbnQ6ITEsY3Vyc29yOiJhdXRvIixjdXJzb3JBdDohMSxkcm9wT25FbXB0eTohMCxmb3JjZVBsYWNlaG9sZGVyU2l6ZTohMSxmb3JjZUhlbHBlclNpemU6ITEsZ3JpZDohMSxoYW5kbGU6ITEsaGVscGVyOiJvcmlnaW5hbCIsaXRlbXM6Ij4gKiIsb3BhY2l0eTohMSxwbGFjZWhvbGRlcjohMSxyZXZlcnQ6ITEsc2Nyb2xsOiEwLHNjcm9sbFNlbnNpdGl2aXR5OjIwLHNjcm9sbFNwZWVkOjIwLHNjb3BlOiJkZWZhdWx0Iix0b2xlcmFuY2U6ImludGVyc2VjdCIsekluZGV4OjFlMyxhY3RpdmF0ZTpudWxsLGJlZm9yZVN0b3A6bnVsbCxjaGFuZ2U6bnVsbCxkZWFjdGl2YXRlOm51bGwsb3V0Om51bGwsb3ZlcjpudWxsLHJlY2VpdmU6bnVsbCxyZW1vdmU6bnVsbCxzb3J0Om51bGwsc3RhcnQ6bnVsbCxzdG9wOm51bGwsdXBkYXRlOm51bGx9LF9pc092ZXJBeGlzOmZ1bmN0aW9uKGUsdCxpKXtyZXR1cm4gZT49dCYmdCtpPmV9LF9pc0Zsb2F0aW5nOmZ1bmN0aW9uKGUpe3JldHVybi9sZWZ0fHJpZ2h0Ly50ZXN0KGUuY3NzKCJmbG9hdCIpKXx8L2lubGluZXx0YWJsZS1jZWxsLy50ZXN0KGUuY3NzKCJkaXNwbGF5IikpfSxfY3JlYXRlOmZ1bmN0aW9uKCl7dGhpcy5jb250YWluZXJDYWNoZT17fSx0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLXNvcnRhYmxlIiksdGhpcy5yZWZyZXNoKCksdGhpcy5vZmZzZXQ9dGhpcy5lbGVtZW50Lm9mZnNldCgpLHRoaXMuX21vdXNlSW5pdCgpLHRoaXMuX3NldEhhbmRsZUNsYXNzTmFtZSgpLHRoaXMucmVhZHk9ITB9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXt0aGlzLl9zdXBlcihlLHQpLCJoYW5kbGUiPT09ZSYmdGhpcy5fc2V0SGFuZGxlQ2xhc3NOYW1lKCl9LF9zZXRIYW5kbGVDbGFzc05hbWU6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQuZmluZCgiLnVpLXNvcnRhYmxlLWhhbmRsZSIpLnJlbW92ZUNsYXNzKCJ1aS1zb3J0YWJsZS1oYW5kbGUiKSxlLmVhY2godGhpcy5pdGVtcyxmdW5jdGlvbigpeyh0aGlzLmluc3RhbmNlLm9wdGlvbnMuaGFuZGxlP3RoaXMuaXRlbS5maW5kKHRoaXMuaW5zdGFuY2Uub3B0aW9ucy5oYW5kbGUpOnRoaXMuaXRlbSkuYWRkQ2xhc3MoInVpLXNvcnRhYmxlLWhhbmRsZSIpfSl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zb3J0YWJsZSB1aS1zb3J0YWJsZS1kaXNhYmxlZCIpLmZpbmQoIi51aS1zb3J0YWJsZS1oYW5kbGUiKS5yZW1vdmVDbGFzcygidWktc29ydGFibGUtaGFuZGxlIiksdGhpcy5fbW91c2VEZXN0cm95KCk7Zm9yKHZhciBlPXRoaXMuaXRlbXMubGVuZ3RoLTE7ZT49MDtlLS0pdGhpcy5pdGVtc1tlXS5pdGVtLnJlbW92ZURhdGEodGhpcy53aWRnZXROYW1lKyItaXRlbSIpO3JldHVybiB0aGlzfSxfbW91c2VDYXB0dXJlOmZ1bmN0aW9uKHQsaSl7dmFyIHM9bnVsbCxuPSExLGE9dGhpcztyZXR1cm4gdGhpcy5yZXZlcnRpbmc/ITE6dGhpcy5vcHRpb25zLmRpc2FibGVkfHwic3RhdGljIj09PXRoaXMub3B0aW9ucy50eXBlPyExOih0aGlzLl9yZWZyZXNoSXRlbXModCksZSh0LnRhcmdldCkucGFyZW50cygpLmVhY2goZnVuY3Rpb24oKXtyZXR1cm4gZS5kYXRhKHRoaXMsYS53aWRnZXROYW1lKyItaXRlbSIpPT09YT8ocz1lKHRoaXMpLCExKTp2b2lkIDB9KSxlLmRhdGEodC50YXJnZXQsYS53aWRnZXROYW1lKyItaXRlbSIpPT09YSYmKHM9ZSh0LnRhcmdldCkpLHM/IXRoaXMub3B0aW9ucy5oYW5kbGV8fGl8fChlKHRoaXMub3B0aW9ucy5oYW5kbGUscykuZmluZCgiKiIpLmFkZEJhY2soKS5lYWNoKGZ1bmN0aW9uKCl7dGhpcz09PXQudGFyZ2V0JiYobj0hMCl9KSxuKT8odGhpcy5jdXJyZW50SXRlbT1zLHRoaXMuX3JlbW92ZUN1cnJlbnRzRnJvbUl0ZW1zKCksITApOiExOiExKX0sX21vdXNlU3RhcnQ6ZnVuY3Rpb24odCxpLHMpe3ZhciBuLGEsbz10aGlzLm9wdGlvbnM7aWYodGhpcy5jdXJyZW50Q29udGFpbmVyPXRoaXMsdGhpcy5yZWZyZXNoUG9zaXRpb25zKCksdGhpcy5oZWxwZXI9dGhpcy5fY3JlYXRlSGVscGVyKHQpLHRoaXMuX2NhY2hlSGVscGVyUHJvcG9ydGlvbnMoKSx0aGlzLl9jYWNoZU1hcmdpbnMoKSx0aGlzLnNjcm9sbFBhcmVudD10aGlzLmhlbHBlci5zY3JvbGxQYXJlbnQoKSx0aGlzLm9mZnNldD10aGlzLmN1cnJlbnRJdGVtLm9mZnNldCgpLHRoaXMub2Zmc2V0PXt0b3A6dGhpcy5vZmZzZXQudG9wLXRoaXMubWFyZ2lucy50b3AsbGVmdDp0aGlzLm9mZnNldC5sZWZ0LXRoaXMubWFyZ2lucy5sZWZ0fSxlLmV4dGVuZCh0aGlzLm9mZnNldCx7Y2xpY2s6e2xlZnQ6dC5wYWdlWC10aGlzLm9mZnNldC5sZWZ0LHRvcDp0LnBhZ2VZLXRoaXMub2Zmc2V0LnRvcH0scGFyZW50OnRoaXMuX2dldFBhcmVudE9mZnNldCgpLHJlbGF0aXZlOnRoaXMuX2dldFJlbGF0aXZlT2Zmc2V0KCl9KSx0aGlzLmhlbHBlci5jc3MoInBvc2l0aW9uIiwiYWJzb2x1dGUiKSx0aGlzLmNzc1Bvc2l0aW9uPXRoaXMuaGVscGVyLmNzcygicG9zaXRpb24iKSx0aGlzLm9yaWdpbmFsUG9zaXRpb249dGhpcy5fZ2VuZXJhdGVQb3NpdGlvbih0KSx0aGlzLm9yaWdpbmFsUGFnZVg9dC5wYWdlWCx0aGlzLm9yaWdpbmFsUGFnZVk9dC5wYWdlWSxvLmN1cnNvckF0JiZ0aGlzLl9hZGp1c3RPZmZzZXRGcm9tSGVscGVyKG8uY3Vyc29yQXQpLHRoaXMuZG9tUG9zaXRpb249e3ByZXY6dGhpcy5jdXJyZW50SXRlbS5wcmV2KClbMF0scGFyZW50OnRoaXMuY3VycmVudEl0ZW0ucGFyZW50KClbMF19LHRoaXMuaGVscGVyWzBdIT09dGhpcy5jdXJyZW50SXRlbVswXSYmdGhpcy5jdXJyZW50SXRlbS5oaWRlKCksdGhpcy5fY3JlYXRlUGxhY2Vob2xkZXIoKSxvLmNvbnRhaW5tZW50JiZ0aGlzLl9zZXRDb250YWlubWVudCgpLG8uY3Vyc29yJiYiYXV0byIhPT1vLmN1cnNvciYmKGE9dGhpcy5kb2N1bWVudC5maW5kKCJib2R5IiksdGhpcy5zdG9yZWRDdXJzb3I9YS5jc3MoImN1cnNvciIpLGEuY3NzKCJjdXJzb3IiLG8uY3Vyc29yKSx0aGlzLnN0b3JlZFN0eWxlc2hlZXQ9ZSgiPHN0eWxlPip7IGN1cnNvcjogIitvLmN1cnNvcisiICFpbXBvcnRhbnQ7IH08L3N0eWxlPiIpLmFwcGVuZFRvKGEpKSxvLm9wYWNpdHkmJih0aGlzLmhlbHBlci5jc3MoIm9wYWNpdHkiKSYmKHRoaXMuX3N0b3JlZE9wYWNpdHk9dGhpcy5oZWxwZXIuY3NzKCJvcGFjaXR5IikpLHRoaXMuaGVscGVyLmNzcygib3BhY2l0eSIsby5vcGFjaXR5KSksby56SW5kZXgmJih0aGlzLmhlbHBlci5jc3MoInpJbmRleCIpJiYodGhpcy5fc3RvcmVkWkluZGV4PXRoaXMuaGVscGVyLmNzcygiekluZGV4IikpLHRoaXMuaGVscGVyLmNzcygiekluZGV4IixvLnpJbmRleCkpLHRoaXMuc2Nyb2xsUGFyZW50WzBdIT09dGhpcy5kb2N1bWVudFswXSYmIkhUTUwiIT09dGhpcy5zY3JvbGxQYXJlbnRbMF0udGFnTmFtZSYmKHRoaXMub3ZlcmZsb3dPZmZzZXQ9dGhpcy5zY3JvbGxQYXJlbnQub2Zmc2V0KCkpLHRoaXMuX3RyaWdnZXIoInN0YXJ0Iix0LHRoaXMuX3VpSGFzaCgpKSx0aGlzLl9wcmVzZXJ2ZUhlbHBlclByb3BvcnRpb25zfHx0aGlzLl9jYWNoZUhlbHBlclByb3BvcnRpb25zKCksIXMpZm9yKG49dGhpcy5jb250YWluZXJzLmxlbmd0aC0xO24+PTA7bi0tKXRoaXMuY29udGFpbmVyc1tuXS5fdHJpZ2dlcigiYWN0aXZhdGUiLHQsdGhpcy5fdWlIYXNoKHRoaXMpKTtyZXR1cm4gZS51aS5kZG1hbmFnZXImJihlLnVpLmRkbWFuYWdlci5jdXJyZW50PXRoaXMpLGUudWkuZGRtYW5hZ2VyJiYhby5kcm9wQmVoYXZpb3VyJiZlLnVpLmRkbWFuYWdlci5wcmVwYXJlT2Zmc2V0cyh0aGlzLHQpLHRoaXMuZHJhZ2dpbmc9ITAsdGhpcy5oZWxwZXIuYWRkQ2xhc3MoInVpLXNvcnRhYmxlLWhlbHBlciIpLHRoaXMuX21vdXNlRHJhZyh0KSwhMH0sX21vdXNlRHJhZzpmdW5jdGlvbih0KXt2YXIgaSxzLG4sYSxvPXRoaXMub3B0aW9ucyxyPSExO2Zvcih0aGlzLnBvc2l0aW9uPXRoaXMuX2dlbmVyYXRlUG9zaXRpb24odCksdGhpcy5wb3NpdGlvbkFicz10aGlzLl9jb252ZXJ0UG9zaXRpb25UbygiYWJzb2x1dGUiKSx0aGlzLmxhc3RQb3NpdGlvbkFic3x8KHRoaXMubGFzdFBvc2l0aW9uQWJzPXRoaXMucG9zaXRpb25BYnMpLHRoaXMub3B0aW9ucy5zY3JvbGwmJih0aGlzLnNjcm9sbFBhcmVudFswXSE9PXRoaXMuZG9jdW1lbnRbMF0mJiJIVE1MIiE9PXRoaXMuc2Nyb2xsUGFyZW50WzBdLnRhZ05hbWU/KHRoaXMub3ZlcmZsb3dPZmZzZXQudG9wK3RoaXMuc2Nyb2xsUGFyZW50WzBdLm9mZnNldEhlaWdodC10LnBhZ2VZPG8uc2Nyb2xsU2Vuc2l0aXZpdHk/dGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsVG9wPXI9dGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsVG9wK28uc2Nyb2xsU3BlZWQ6dC5wYWdlWS10aGlzLm92ZXJmbG93T2Zmc2V0LnRvcDxvLnNjcm9sbFNlbnNpdGl2aXR5JiYodGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsVG9wPXI9dGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsVG9wLW8uc2Nyb2xsU3BlZWQpLHRoaXMub3ZlcmZsb3dPZmZzZXQubGVmdCt0aGlzLnNjcm9sbFBhcmVudFswXS5vZmZzZXRXaWR0aC10LnBhZ2VYPG8uc2Nyb2xsU2Vuc2l0aXZpdHk/dGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsTGVmdD1yPXRoaXMuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbExlZnQrby5zY3JvbGxTcGVlZDp0LnBhZ2VYLXRoaXMub3ZlcmZsb3dPZmZzZXQubGVmdDxvLnNjcm9sbFNlbnNpdGl2aXR5JiYodGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsTGVmdD1yPXRoaXMuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbExlZnQtby5zY3JvbGxTcGVlZCkpOih0LnBhZ2VZLXRoaXMuZG9jdW1lbnQuc2Nyb2xsVG9wKCk8by5zY3JvbGxTZW5zaXRpdml0eT9yPXRoaXMuZG9jdW1lbnQuc2Nyb2xsVG9wKHRoaXMuZG9jdW1lbnQuc2Nyb2xsVG9wKCktby5zY3JvbGxTcGVlZCk6dGhpcy53aW5kb3cuaGVpZ2h0KCktKHQucGFnZVktdGhpcy5kb2N1bWVudC5zY3JvbGxUb3AoKSk8by5zY3JvbGxTZW5zaXRpdml0eSYmKHI9dGhpcy5kb2N1bWVudC5zY3JvbGxUb3AodGhpcy5kb2N1bWVudC5zY3JvbGxUb3AoKStvLnNjcm9sbFNwZWVkKSksdC5wYWdlWC10aGlzLmRvY3VtZW50LnNjcm9sbExlZnQoKTxvLnNjcm9sbFNlbnNpdGl2aXR5P3I9dGhpcy5kb2N1bWVudC5zY3JvbGxMZWZ0KHRoaXMuZG9jdW1lbnQuc2Nyb2xsTGVmdCgpLW8uc2Nyb2xsU3BlZWQpOnRoaXMud2luZG93LndpZHRoKCktKHQucGFnZVgtdGhpcy5kb2N1bWVudC5zY3JvbGxMZWZ0KCkpPG8uc2Nyb2xsU2Vuc2l0aXZpdHkmJihyPXRoaXMuZG9jdW1lbnQuc2Nyb2xsTGVmdCh0aGlzLmRvY3VtZW50LnNjcm9sbExlZnQoKStvLnNjcm9sbFNwZWVkKSkpLHIhPT0hMSYmZS51aS5kZG1hbmFnZXImJiFvLmRyb3BCZWhhdmlvdXImJmUudWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKHRoaXMsdCkpLHRoaXMucG9zaXRpb25BYnM9dGhpcy5fY29udmVydFBvc2l0aW9uVG8oImFic29sdXRlIiksdGhpcy5vcHRpb25zLmF4aXMmJiJ5Ij09PXRoaXMub3B0aW9ucy5heGlzfHwodGhpcy5oZWxwZXJbMF0uc3R5bGUubGVmdD10aGlzLnBvc2l0aW9uLmxlZnQrInB4IiksdGhpcy5vcHRpb25zLmF4aXMmJiJ4Ij09PXRoaXMub3B0aW9ucy5heGlzfHwodGhpcy5oZWxwZXJbMF0uc3R5bGUudG9wPXRoaXMucG9zaXRpb24udG9wKyJweCIpLGk9dGhpcy5pdGVtcy5sZW5ndGgtMTtpPj0wO2ktLSlpZihzPXRoaXMuaXRlbXNbaV0sbj1zLml0ZW1bMF0sYT10aGlzLl9pbnRlcnNlY3RzV2l0aFBvaW50ZXIocyksYSYmcy5pbnN0YW5jZT09PXRoaXMuY3VycmVudENvbnRhaW5lciYmbiE9PXRoaXMuY3VycmVudEl0ZW1bMF0mJnRoaXMucGxhY2Vob2xkZXJbMT09PWE/Im5leHQiOiJwcmV2Il0oKVswXSE9PW4mJiFlLmNvbnRhaW5zKHRoaXMucGxhY2Vob2xkZXJbMF0sbikmJigic2VtaS1keW5hbWljIj09PXRoaXMub3B0aW9ucy50eXBlPyFlLmNvbnRhaW5zKHRoaXMuZWxlbWVudFswXSxuKTohMCkpe2lmKHRoaXMuZGlyZWN0aW9uPTE9PT1hPyJkb3duIjoidXAiLCJwb2ludGVyIiE9PXRoaXMub3B0aW9ucy50b2xlcmFuY2UmJiF0aGlzLl9pbnRlcnNlY3RzV2l0aFNpZGVzKHMpKWJyZWFrO3RoaXMuX3JlYXJyYW5nZSh0LHMpLHRoaXMuX3RyaWdnZXIoImNoYW5nZSIsdCx0aGlzLl91aUhhc2goKSk7YnJlYWt9cmV0dXJuIHRoaXMuX2NvbnRhY3RDb250YWluZXJzKHQpLGUudWkuZGRtYW5hZ2VyJiZlLnVpLmRkbWFuYWdlci5kcmFnKHRoaXMsdCksdGhpcy5fdHJpZ2dlcigic29ydCIsdCx0aGlzLl91aUhhc2goKSksdGhpcy5sYXN0UG9zaXRpb25BYnM9dGhpcy5wb3NpdGlvbkFicywhMX0sX21vdXNlU3RvcDpmdW5jdGlvbih0LGkpe2lmKHQpe2lmKGUudWkuZGRtYW5hZ2VyJiYhdGhpcy5vcHRpb25zLmRyb3BCZWhhdmlvdXImJmUudWkuZGRtYW5hZ2VyLmRyb3AodGhpcyx0KSx0aGlzLm9wdGlvbnMucmV2ZXJ0KXt2YXIgcz10aGlzLG49dGhpcy5wbGFjZWhvbGRlci5vZmZzZXQoKSxhPXRoaXMub3B0aW9ucy5heGlzLG89e307YSYmIngiIT09YXx8KG8ubGVmdD1uLmxlZnQtdGhpcy5vZmZzZXQucGFyZW50LmxlZnQtdGhpcy5tYXJnaW5zLmxlZnQrKHRoaXMub2Zmc2V0UGFyZW50WzBdPT09dGhpcy5kb2N1bWVudFswXS5ib2R5PzA6dGhpcy5vZmZzZXRQYXJlbnRbMF0uc2Nyb2xsTGVmdCkpLGEmJiJ5IiE9PWF8fChvLnRvcD1uLnRvcC10aGlzLm9mZnNldC5wYXJlbnQudG9wLXRoaXMubWFyZ2lucy50b3ArKHRoaXMub2Zmc2V0UGFyZW50WzBdPT09dGhpcy5kb2N1bWVudFswXS5ib2R5PzA6dGhpcy5vZmZzZXRQYXJlbnRbMF0uc2Nyb2xsVG9wKSksdGhpcy5yZXZlcnRpbmc9ITAsZSh0aGlzLmhlbHBlcikuYW5pbWF0ZShvLHBhcnNlSW50KHRoaXMub3B0aW9ucy5yZXZlcnQsMTApfHw1MDAsZnVuY3Rpb24oKXtzLl9jbGVhcih0KX0pfWVsc2UgdGhpcy5fY2xlYXIodCxpKTtyZXR1cm4hMX19LGNhbmNlbDpmdW5jdGlvbigpe2lmKHRoaXMuZHJhZ2dpbmcpe3RoaXMuX21vdXNlVXAoe3RhcmdldDpudWxsfSksIm9yaWdpbmFsIj09PXRoaXMub3B0aW9ucy5oZWxwZXI/dGhpcy5jdXJyZW50SXRlbS5jc3ModGhpcy5fc3RvcmVkQ1NTKS5yZW1vdmVDbGFzcygidWktc29ydGFibGUtaGVscGVyIik6dGhpcy5jdXJyZW50SXRlbS5zaG93KCk7Zm9yKHZhciB0PXRoaXMuY29udGFpbmVycy5sZW5ndGgtMTt0Pj0wO3QtLSl0aGlzLmNvbnRhaW5lcnNbdF0uX3RyaWdnZXIoImRlYWN0aXZhdGUiLG51bGwsdGhpcy5fdWlIYXNoKHRoaXMpKSx0aGlzLmNvbnRhaW5lcnNbdF0uY29udGFpbmVyQ2FjaGUub3ZlciYmKHRoaXMuY29udGFpbmVyc1t0XS5fdHJpZ2dlcigib3V0IixudWxsLHRoaXMuX3VpSGFzaCh0aGlzKSksdGhpcy5jb250YWluZXJzW3RdLmNvbnRhaW5lckNhY2hlLm92ZXI9MCl9cmV0dXJuIHRoaXMucGxhY2Vob2xkZXImJih0aGlzLnBsYWNlaG9sZGVyWzBdLnBhcmVudE5vZGUmJnRoaXMucGxhY2Vob2xkZXJbMF0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnBsYWNlaG9sZGVyWzBdKSwib3JpZ2luYWwiIT09dGhpcy5vcHRpb25zLmhlbHBlciYmdGhpcy5oZWxwZXImJnRoaXMuaGVscGVyWzBdLnBhcmVudE5vZGUmJnRoaXMuaGVscGVyLnJlbW92ZSgpLGUuZXh0ZW5kKHRoaXMse2hlbHBlcjpudWxsLGRyYWdnaW5nOiExLHJldmVydGluZzohMSxfbm9GaW5hbFNvcnQ6bnVsbH0pLHRoaXMuZG9tUG9zaXRpb24ucHJldj9lKHRoaXMuZG9tUG9zaXRpb24ucHJldikuYWZ0ZXIodGhpcy5jdXJyZW50SXRlbSk6ZSh0aGlzLmRvbVBvc2l0aW9uLnBhcmVudCkucHJlcGVuZCh0aGlzLmN1cnJlbnRJdGVtKSksdGhpc30sc2VyaWFsaXplOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMuX2dldEl0ZW1zQXNqUXVlcnkodCYmdC5jb25uZWN0ZWQpLHM9W107cmV0dXJuIHQ9dHx8e30sZShpKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGk9KGUodC5pdGVtfHx0aGlzKS5hdHRyKHQuYXR0cmlidXRlfHwiaWQiKXx8IiIpLm1hdGNoKHQuZXhwcmVzc2lvbnx8LyguKylbXC09X10oLispLyk7aSYmcy5wdXNoKCh0LmtleXx8aVsxXSsiW10iKSsiPSIrKHQua2V5JiZ0LmV4cHJlc3Npb24/aVsxXTppWzJdKSl9KSwhcy5sZW5ndGgmJnQua2V5JiZzLnB1c2godC5rZXkrIj0iKSxzLmpvaW4oIiYiKX0sdG9BcnJheTpmdW5jdGlvbih0KXt2YXIgaT10aGlzLl9nZXRJdGVtc0FzalF1ZXJ5KHQmJnQuY29ubmVjdGVkKSxzPVtdO3JldHVybiB0PXR8fHt9LGkuZWFjaChmdW5jdGlvbigpe3MucHVzaChlKHQuaXRlbXx8dGhpcykuYXR0cih0LmF0dHJpYnV0ZXx8ImlkIil8fCIiKX0pLHN9LF9pbnRlcnNlY3RzV2l0aDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnBvc2l0aW9uQWJzLmxlZnQsaT10K3RoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgscz10aGlzLnBvc2l0aW9uQWJzLnRvcCxuPXMrdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQsYT1lLmxlZnQsbz1hK2Uud2lkdGgscj1lLnRvcCxoPXIrZS5oZWlnaHQsbD10aGlzLm9mZnNldC5jbGljay50b3AsdT10aGlzLm9mZnNldC5jbGljay5sZWZ0LGQ9IngiPT09dGhpcy5vcHRpb25zLmF4aXN8fHMrbD5yJiZoPnMrbCxjPSJ5Ij09PXRoaXMub3B0aW9ucy5heGlzfHx0K3U+YSYmbz50K3UscD1kJiZjO3JldHVybiJwb2ludGVyIj09PXRoaXMub3B0aW9ucy50b2xlcmFuY2V8fHRoaXMub3B0aW9ucy5mb3JjZVBvaW50ZXJGb3JDb250YWluZXJzfHwicG9pbnRlciIhPT10aGlzLm9wdGlvbnMudG9sZXJhbmNlJiZ0aGlzLmhlbHBlclByb3BvcnRpb25zW3RoaXMuZmxvYXRpbmc/IndpZHRoIjoiaGVpZ2h0Il0+ZVt0aGlzLmZsb2F0aW5nPyJ3aWR0aCI6ImhlaWdodCJdP3A6dCt0aGlzLmhlbHBlclByb3BvcnRpb25zLndpZHRoLzI+YSYmbz5pLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgvMiYmcyt0aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC8yPnImJmg+bi10aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC8yfSxfaW50ZXJzZWN0c1dpdGhQb2ludGVyOmZ1bmN0aW9uKGUpe3ZhciB0PSJ4Ij09PXRoaXMub3B0aW9ucy5heGlzfHx0aGlzLl9pc092ZXJBeGlzKHRoaXMucG9zaXRpb25BYnMudG9wK3RoaXMub2Zmc2V0LmNsaWNrLnRvcCxlLnRvcCxlLmhlaWdodCksaT0ieSI9PT10aGlzLm9wdGlvbnMuYXhpc3x8dGhpcy5faXNPdmVyQXhpcyh0aGlzLnBvc2l0aW9uQWJzLmxlZnQrdGhpcy5vZmZzZXQuY2xpY2subGVmdCxlLmxlZnQsZS53aWR0aCkscz10JiZpLG49dGhpcy5fZ2V0RHJhZ1ZlcnRpY2FsRGlyZWN0aW9uKCksYT10aGlzLl9nZXREcmFnSG9yaXpvbnRhbERpcmVjdGlvbigpO3JldHVybiBzP3RoaXMuZmxvYXRpbmc/YSYmInJpZ2h0Ij09PWF8fCJkb3duIj09PW4/MjoxOm4mJigiZG93biI9PT1uPzI6MSk6ITF9LF9pbnRlcnNlY3RzV2l0aFNpZGVzOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2lzT3ZlckF4aXModGhpcy5wb3NpdGlvbkFicy50b3ArdGhpcy5vZmZzZXQuY2xpY2sudG9wLGUudG9wK2UuaGVpZ2h0LzIsZS5oZWlnaHQpLGk9dGhpcy5faXNPdmVyQXhpcyh0aGlzLnBvc2l0aW9uQWJzLmxlZnQrdGhpcy5vZmZzZXQuY2xpY2subGVmdCxlLmxlZnQrZS53aWR0aC8yLGUud2lkdGgpLHM9dGhpcy5fZ2V0RHJhZ1ZlcnRpY2FsRGlyZWN0aW9uKCksbj10aGlzLl9nZXREcmFnSG9yaXpvbnRhbERpcmVjdGlvbigpO3JldHVybiB0aGlzLmZsb2F0aW5nJiZuPyJyaWdodCI9PT1uJiZpfHwibGVmdCI9PT1uJiYhaTpzJiYoImRvd24iPT09cyYmdHx8InVwIj09PXMmJiF0KX0sX2dldERyYWdWZXJ0aWNhbERpcmVjdGlvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMucG9zaXRpb25BYnMudG9wLXRoaXMubGFzdFBvc2l0aW9uQWJzLnRvcDtyZXR1cm4gMCE9PWUmJihlPjA/ImRvd24iOiJ1cCIpfSxfZ2V0RHJhZ0hvcml6b250YWxEaXJlY3Rpb246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBvc2l0aW9uQWJzLmxlZnQtdGhpcy5sYXN0UG9zaXRpb25BYnMubGVmdDtyZXR1cm4gMCE9PWUmJihlPjA/InJpZ2h0IjoibGVmdCIpfSxyZWZyZXNoOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9yZWZyZXNoSXRlbXMoZSksdGhpcy5fc2V0SGFuZGxlQ2xhc3NOYW1lKCksdGhpcy5yZWZyZXNoUG9zaXRpb25zKCksdGhpc30sX2Nvbm5lY3RXaXRoOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zO3JldHVybiBlLmNvbm5lY3RXaXRoLmNvbnN0cnVjdG9yPT09U3RyaW5nP1tlLmNvbm5lY3RXaXRoXTplLmNvbm5lY3RXaXRofSxfZ2V0SXRlbXNBc2pRdWVyeTpmdW5jdGlvbih0KXtmdW5jdGlvbiBpKCl7ci5wdXNoKHRoaXMpfXZhciBzLG4sYSxvLHI9W10saD1bXSxsPXRoaXMuX2Nvbm5lY3RXaXRoKCk7aWYobCYmdClmb3Iocz1sLmxlbmd0aC0xO3M+PTA7cy0tKWZvcihhPWUobFtzXSx0aGlzLmRvY3VtZW50WzBdKSxuPWEubGVuZ3RoLTE7bj49MDtuLS0pbz1lLmRhdGEoYVtuXSx0aGlzLndpZGdldEZ1bGxOYW1lKSxvJiZvIT09dGhpcyYmIW8ub3B0aW9ucy5kaXNhYmxlZCYmaC5wdXNoKFtlLmlzRnVuY3Rpb24oby5vcHRpb25zLml0ZW1zKT9vLm9wdGlvbnMuaXRlbXMuY2FsbChvLmVsZW1lbnQpOmUoby5vcHRpb25zLml0ZW1zLG8uZWxlbWVudCkubm90KCIudWktc29ydGFibGUtaGVscGVyIikubm90KCIudWktc29ydGFibGUtcGxhY2Vob2xkZXIiKSxvXSk7Zm9yKGgucHVzaChbZS5pc0Z1bmN0aW9uKHRoaXMub3B0aW9ucy5pdGVtcyk/dGhpcy5vcHRpb25zLml0ZW1zLmNhbGwodGhpcy5lbGVtZW50LG51bGwse29wdGlvbnM6dGhpcy5vcHRpb25zLGl0ZW06dGhpcy5jdXJyZW50SXRlbX0pOmUodGhpcy5vcHRpb25zLml0ZW1zLHRoaXMuZWxlbWVudCkubm90KCIudWktc29ydGFibGUtaGVscGVyIikubm90KCIudWktc29ydGFibGUtcGxhY2Vob2xkZXIiKSx0aGlzXSkscz1oLmxlbmd0aC0xO3M+PTA7cy0tKWhbc11bMF0uZWFjaChpKTtyZXR1cm4gZShyKX0sX3JlbW92ZUN1cnJlbnRzRnJvbUl0ZW1zOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jdXJyZW50SXRlbS5maW5kKCI6ZGF0YSgiK3RoaXMud2lkZ2V0TmFtZSsiLWl0ZW0pIik7dGhpcy5pdGVtcz1lLmdyZXAodGhpcy5pdGVtcyxmdW5jdGlvbihlKXtmb3IodmFyIGk9MDt0Lmxlbmd0aD5pO2krKylpZih0W2ldPT09ZS5pdGVtWzBdKXJldHVybiExO3JldHVybiEwfSl9LF9yZWZyZXNoSXRlbXM6ZnVuY3Rpb24odCl7dGhpcy5pdGVtcz1bXSx0aGlzLmNvbnRhaW5lcnM9W3RoaXNdO3ZhciBpLHMsbixhLG8scixoLGwsdT10aGlzLml0ZW1zLGQ9W1tlLmlzRnVuY3Rpb24odGhpcy5vcHRpb25zLml0ZW1zKT90aGlzLm9wdGlvbnMuaXRlbXMuY2FsbCh0aGlzLmVsZW1lbnRbMF0sdCx7aXRlbTp0aGlzLmN1cnJlbnRJdGVtfSk6ZSh0aGlzLm9wdGlvbnMuaXRlbXMsdGhpcy5lbGVtZW50KSx0aGlzXV0sYz10aGlzLl9jb25uZWN0V2l0aCgpO2lmKGMmJnRoaXMucmVhZHkpZm9yKGk9Yy5sZW5ndGgtMTtpPj0wO2ktLSlmb3Iobj1lKGNbaV0sdGhpcy5kb2N1bWVudFswXSkscz1uLmxlbmd0aC0xO3M+PTA7cy0tKWE9ZS5kYXRhKG5bc10sdGhpcy53aWRnZXRGdWxsTmFtZSksYSYmYSE9PXRoaXMmJiFhLm9wdGlvbnMuZGlzYWJsZWQmJihkLnB1c2goW2UuaXNGdW5jdGlvbihhLm9wdGlvbnMuaXRlbXMpP2Eub3B0aW9ucy5pdGVtcy5jYWxsKGEuZWxlbWVudFswXSx0LHtpdGVtOnRoaXMuY3VycmVudEl0ZW19KTplKGEub3B0aW9ucy5pdGVtcyxhLmVsZW1lbnQpLGFdKSx0aGlzLmNvbnRhaW5lcnMucHVzaChhKSk7Zm9yKGk9ZC5sZW5ndGgtMTtpPj0wO2ktLSlmb3Iobz1kW2ldWzFdLHI9ZFtpXVswXSxzPTAsbD1yLmxlbmd0aDtsPnM7cysrKWg9ZShyW3NdKSxoLmRhdGEodGhpcy53aWRnZXROYW1lKyItaXRlbSIsbyksdS5wdXNoKHtpdGVtOmgsaW5zdGFuY2U6byx3aWR0aDowLGhlaWdodDowLGxlZnQ6MCx0b3A6MH0pfSxyZWZyZXNoUG9zaXRpb25zOmZ1bmN0aW9uKHQpe3RoaXMuZmxvYXRpbmc9dGhpcy5pdGVtcy5sZW5ndGg/IngiPT09dGhpcy5vcHRpb25zLmF4aXN8fHRoaXMuX2lzRmxvYXRpbmcodGhpcy5pdGVtc1swXS5pdGVtKTohMSx0aGlzLm9mZnNldFBhcmVudCYmdGhpcy5oZWxwZXImJih0aGlzLm9mZnNldC5wYXJlbnQ9dGhpcy5fZ2V0UGFyZW50T2Zmc2V0KCkpO3ZhciBpLHMsbixhO2ZvcihpPXRoaXMuaXRlbXMubGVuZ3RoLTE7aT49MDtpLS0pcz10aGlzLml0ZW1zW2ldLHMuaW5zdGFuY2UhPT10aGlzLmN1cnJlbnRDb250YWluZXImJnRoaXMuY3VycmVudENvbnRhaW5lciYmcy5pdGVtWzBdIT09dGhpcy5jdXJyZW50SXRlbVswXXx8KG49dGhpcy5vcHRpb25zLnRvbGVyYW5jZUVsZW1lbnQ/ZSh0aGlzLm9wdGlvbnMudG9sZXJhbmNlRWxlbWVudCxzLml0ZW0pOnMuaXRlbSx0fHwocy53aWR0aD1uLm91dGVyV2lkdGgoKSxzLmhlaWdodD1uLm91dGVySGVpZ2h0KCkpLGE9bi5vZmZzZXQoKSxzLmxlZnQ9YS5sZWZ0LHMudG9wPWEudG9wKTtpZih0aGlzLm9wdGlvbnMuY3VzdG9tJiZ0aGlzLm9wdGlvbnMuY3VzdG9tLnJlZnJlc2hDb250YWluZXJzKXRoaXMub3B0aW9ucy5jdXN0b20ucmVmcmVzaENvbnRhaW5lcnMuY2FsbCh0aGlzKTtlbHNlIGZvcihpPXRoaXMuY29udGFpbmVycy5sZW5ndGgtMTtpPj0wO2ktLSlhPXRoaXMuY29udGFpbmVyc1tpXS5lbGVtZW50Lm9mZnNldCgpLHRoaXMuY29udGFpbmVyc1tpXS5jb250YWluZXJDYWNoZS5sZWZ0PWEubGVmdCx0aGlzLmNvbnRhaW5lcnNbaV0uY29udGFpbmVyQ2FjaGUudG9wPWEudG9wLHRoaXMuY29udGFpbmVyc1tpXS5jb250YWluZXJDYWNoZS53aWR0aD10aGlzLmNvbnRhaW5lcnNbaV0uZWxlbWVudC5vdXRlcldpZHRoKCksdGhpcy5jb250YWluZXJzW2ldLmNvbnRhaW5lckNhY2hlLmhlaWdodD10aGlzLmNvbnRhaW5lcnNbaV0uZWxlbWVudC5vdXRlckhlaWdodCgpO3JldHVybiB0aGlzfSxfY3JlYXRlUGxhY2Vob2xkZXI6ZnVuY3Rpb24odCl7dD10fHx0aGlzO3ZhciBpLHM9dC5vcHRpb25zO3MucGxhY2Vob2xkZXImJnMucGxhY2Vob2xkZXIuY29uc3RydWN0b3IhPT1TdHJpbmd8fChpPXMucGxhY2Vob2xkZXIscy5wbGFjZWhvbGRlcj17ZWxlbWVudDpmdW5jdGlvbigpe3ZhciBzPXQuY3VycmVudEl0ZW1bMF0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxuPWUoIjwiK3MrIj4iLHQuZG9jdW1lbnRbMF0pLmFkZENsYXNzKGl8fHQuY3VycmVudEl0ZW1bMF0uY2xhc3NOYW1lKyIgdWktc29ydGFibGUtcGxhY2Vob2xkZXIiKS5yZW1vdmVDbGFzcygidWktc29ydGFibGUtaGVscGVyIik7cmV0dXJuInRib2R5Ij09PXM/dC5fY3JlYXRlVHJQbGFjZWhvbGRlcih0LmN1cnJlbnRJdGVtLmZpbmQoInRyIikuZXEoMCksZSgiPHRyPiIsdC5kb2N1bWVudFswXSkuYXBwZW5kVG8obikpOiJ0ciI9PT1zP3QuX2NyZWF0ZVRyUGxhY2Vob2xkZXIodC5jdXJyZW50SXRlbSxuKToiaW1nIj09PXMmJm4uYXR0cigic3JjIix0LmN1cnJlbnRJdGVtLmF0dHIoInNyYyIpKSxpfHxuLmNzcygidmlzaWJpbGl0eSIsImhpZGRlbiIpLG59LHVwZGF0ZTpmdW5jdGlvbihlLG4peyghaXx8cy5mb3JjZVBsYWNlaG9sZGVyU2l6ZSkmJihuLmhlaWdodCgpfHxuLmhlaWdodCh0LmN1cnJlbnRJdGVtLmlubmVySGVpZ2h0KCktcGFyc2VJbnQodC5jdXJyZW50SXRlbS5jc3MoInBhZGRpbmdUb3AiKXx8MCwxMCktcGFyc2VJbnQodC5jdXJyZW50SXRlbS5jc3MoInBhZGRpbmdCb3R0b20iKXx8MCwxMCkpLG4ud2lkdGgoKXx8bi53aWR0aCh0LmN1cnJlbnRJdGVtLmlubmVyV2lkdGgoKS1wYXJzZUludCh0LmN1cnJlbnRJdGVtLmNzcygicGFkZGluZ0xlZnQiKXx8MCwxMCktcGFyc2VJbnQodC5jdXJyZW50SXRlbS5jc3MoInBhZGRpbmdSaWdodCIpfHwwLDEwKSkpfX0pLHQucGxhY2Vob2xkZXI9ZShzLnBsYWNlaG9sZGVyLmVsZW1lbnQuY2FsbCh0LmVsZW1lbnQsdC5jdXJyZW50SXRlbSkpLHQuY3VycmVudEl0ZW0uYWZ0ZXIodC5wbGFjZWhvbGRlcikscy5wbGFjZWhvbGRlci51cGRhdGUodCx0LnBsYWNlaG9sZGVyKX0sX2NyZWF0ZVRyUGxhY2Vob2xkZXI6ZnVuY3Rpb24odCxpKXt2YXIgcz10aGlzO3QuY2hpbGRyZW4oKS5lYWNoKGZ1bmN0aW9uKCl7ZSgiPHRkPiYjMTYwOzwvdGQ+IixzLmRvY3VtZW50WzBdKS5hdHRyKCJjb2xzcGFuIixlKHRoaXMpLmF0dHIoImNvbHNwYW4iKXx8MSkuYXBwZW5kVG8oaSl9KX0sX2NvbnRhY3RDb250YWluZXJzOmZ1bmN0aW9uKHQpe3ZhciBpLHMsbixhLG8scixoLGwsdSxkLGM9bnVsbCxwPW51bGw7Zm9yKGk9dGhpcy5jb250YWluZXJzLmxlbmd0aC0xO2k+PTA7aS0tKWlmKCFlLmNvbnRhaW5zKHRoaXMuY3VycmVudEl0ZW1bMF0sdGhpcy5jb250YWluZXJzW2ldLmVsZW1lbnRbMF0pKWlmKHRoaXMuX2ludGVyc2VjdHNXaXRoKHRoaXMuY29udGFpbmVyc1tpXS5jb250YWluZXJDYWNoZSkpe2lmKGMmJmUuY29udGFpbnModGhpcy5jb250YWluZXJzW2ldLmVsZW1lbnRbMF0sYy5lbGVtZW50WzBdKSljb250aW51ZTtjPXRoaXMuY29udGFpbmVyc1tpXSxwPWl9ZWxzZSB0aGlzLmNvbnRhaW5lcnNbaV0uY29udGFpbmVyQ2FjaGUub3ZlciYmKHRoaXMuY29udGFpbmVyc1tpXS5fdHJpZ2dlcigib3V0Iix0LHRoaXMuX3VpSGFzaCh0aGlzKSksdGhpcy5jb250YWluZXJzW2ldLmNvbnRhaW5lckNhY2hlLm92ZXI9MCk7aWYoYylpZigxPT09dGhpcy5jb250YWluZXJzLmxlbmd0aCl0aGlzLmNvbnRhaW5lcnNbcF0uY29udGFpbmVyQ2FjaGUub3Zlcnx8KHRoaXMuY29udGFpbmVyc1twXS5fdHJpZ2dlcigib3ZlciIsdCx0aGlzLl91aUhhc2godGhpcykpLHRoaXMuY29udGFpbmVyc1twXS5jb250YWluZXJDYWNoZS5vdmVyPTEpO2Vsc2V7Zm9yKG49MWU0LGE9bnVsbCx1PWMuZmxvYXRpbmd8fHRoaXMuX2lzRmxvYXRpbmcodGhpcy5jdXJyZW50SXRlbSksbz11PyJsZWZ0IjoidG9wIixyPXU/IndpZHRoIjoiaGVpZ2h0IixkPXU/ImNsaWVudFgiOiJjbGllbnRZIixzPXRoaXMuaXRlbXMubGVuZ3RoLTE7cz49MDtzLS0pZS5jb250YWlucyh0aGlzLmNvbnRhaW5lcnNbcF0uZWxlbWVudFswXSx0aGlzLml0ZW1zW3NdLml0ZW1bMF0pJiZ0aGlzLml0ZW1zW3NdLml0ZW1bMF0hPT10aGlzLmN1cnJlbnRJdGVtWzBdJiYoaD10aGlzLml0ZW1zW3NdLml0ZW0ub2Zmc2V0KClbb10sbD0hMSx0W2RdLWg+dGhpcy5pdGVtc1tzXVtyXS8yJiYobD0hMCksbj5NYXRoLmFicyh0W2RdLWgpJiYobj1NYXRoLmFicyh0W2RdLWgpLGE9dGhpcy5pdGVtc1tzXSx0aGlzLmRpcmVjdGlvbj1sPyJ1cCI6ImRvd24iKSk7aWYoIWEmJiF0aGlzLm9wdGlvbnMuZHJvcE9uRW1wdHkpcmV0dXJuO2lmKHRoaXMuY3VycmVudENvbnRhaW5lcj09PXRoaXMuY29udGFpbmVyc1twXSlyZXR1cm4gdGhpcy5jdXJyZW50Q29udGFpbmVyLmNvbnRhaW5lckNhY2hlLm92ZXJ8fCh0aGlzLmNvbnRhaW5lcnNbcF0uX3RyaWdnZXIoIm92ZXIiLHQsdGhpcy5fdWlIYXNoKCkpLHRoaXMuY3VycmVudENvbnRhaW5lci5jb250YWluZXJDYWNoZS5vdmVyPTEpLHZvaWQgMDthP3RoaXMuX3JlYXJyYW5nZSh0LGEsbnVsbCwhMCk6dGhpcy5fcmVhcnJhbmdlKHQsbnVsbCx0aGlzLmNvbnRhaW5lcnNbcF0uZWxlbWVudCwhMCksdGhpcy5fdHJpZ2dlcigiY2hhbmdlIix0LHRoaXMuX3VpSGFzaCgpKSx0aGlzLmNvbnRhaW5lcnNbcF0uX3RyaWdnZXIoImNoYW5nZSIsdCx0aGlzLl91aUhhc2godGhpcykpLHRoaXMuY3VycmVudENvbnRhaW5lcj10aGlzLmNvbnRhaW5lcnNbcF0sdGhpcy5vcHRpb25zLnBsYWNlaG9sZGVyLnVwZGF0ZSh0aGlzLmN1cnJlbnRDb250YWluZXIsdGhpcy5wbGFjZWhvbGRlciksdGhpcy5jb250YWluZXJzW3BdLl90cmlnZ2VyKCJvdmVyIix0LHRoaXMuX3VpSGFzaCh0aGlzKSksdGhpcy5jb250YWluZXJzW3BdLmNvbnRhaW5lckNhY2hlLm92ZXI9MX19LF9jcmVhdGVIZWxwZXI6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5vcHRpb25zLHM9ZS5pc0Z1bmN0aW9uKGkuaGVscGVyKT9lKGkuaGVscGVyLmFwcGx5KHRoaXMuZWxlbWVudFswXSxbdCx0aGlzLmN1cnJlbnRJdGVtXSkpOiJjbG9uZSI9PT1pLmhlbHBlcj90aGlzLmN1cnJlbnRJdGVtLmNsb25lKCk6dGhpcy5jdXJyZW50SXRlbTtyZXR1cm4gcy5wYXJlbnRzKCJib2R5IikubGVuZ3RofHxlKCJwYXJlbnQiIT09aS5hcHBlbmRUbz9pLmFwcGVuZFRvOnRoaXMuY3VycmVudEl0ZW1bMF0ucGFyZW50Tm9kZSlbMF0uYXBwZW5kQ2hpbGQoc1swXSksc1swXT09PXRoaXMuY3VycmVudEl0ZW1bMF0mJih0aGlzLl9zdG9yZWRDU1M9e3dpZHRoOnRoaXMuY3VycmVudEl0ZW1bMF0uc3R5bGUud2lkdGgsaGVpZ2h0OnRoaXMuY3VycmVudEl0ZW1bMF0uc3R5bGUuaGVpZ2h0LHBvc2l0aW9uOnRoaXMuY3VycmVudEl0ZW0uY3NzKCJwb3NpdGlvbiIpLHRvcDp0aGlzLmN1cnJlbnRJdGVtLmNzcygidG9wIiksbGVmdDp0aGlzLmN1cnJlbnRJdGVtLmNzcygibGVmdCIpfSksKCFzWzBdLnN0eWxlLndpZHRofHxpLmZvcmNlSGVscGVyU2l6ZSkmJnMud2lkdGgodGhpcy5jdXJyZW50SXRlbS53aWR0aCgpKSwoIXNbMF0uc3R5bGUuaGVpZ2h0fHxpLmZvcmNlSGVscGVyU2l6ZSkmJnMuaGVpZ2h0KHRoaXMuY3VycmVudEl0ZW0uaGVpZ2h0KCkpLHN9LF9hZGp1c3RPZmZzZXRGcm9tSGVscGVyOmZ1bmN0aW9uKHQpeyJzdHJpbmciPT10eXBlb2YgdCYmKHQ9dC5zcGxpdCgiICIpKSxlLmlzQXJyYXkodCkmJih0PXtsZWZ0Oit0WzBdLHRvcDordFsxXXx8MH0pLCJsZWZ0ImluIHQmJih0aGlzLm9mZnNldC5jbGljay5sZWZ0PXQubGVmdCt0aGlzLm1hcmdpbnMubGVmdCksInJpZ2h0ImluIHQmJih0aGlzLm9mZnNldC5jbGljay5sZWZ0PXRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgtdC5yaWdodCt0aGlzLm1hcmdpbnMubGVmdCksInRvcCJpbiB0JiYodGhpcy5vZmZzZXQuY2xpY2sudG9wPXQudG9wK3RoaXMubWFyZ2lucy50b3ApLCJib3R0b20iaW4gdCYmKHRoaXMub2Zmc2V0LmNsaWNrLnRvcD10aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC10LmJvdHRvbSt0aGlzLm1hcmdpbnMudG9wKX0sX2dldFBhcmVudE9mZnNldDpmdW5jdGlvbigpe3RoaXMub2Zmc2V0UGFyZW50PXRoaXMuaGVscGVyLm9mZnNldFBhcmVudCgpO3ZhciB0PXRoaXMub2Zmc2V0UGFyZW50Lm9mZnNldCgpO3JldHVybiJhYnNvbHV0ZSI9PT10aGlzLmNzc1Bvc2l0aW9uJiZ0aGlzLnNjcm9sbFBhcmVudFswXSE9PXRoaXMuZG9jdW1lbnRbMF0mJmUuY29udGFpbnModGhpcy5zY3JvbGxQYXJlbnRbMF0sdGhpcy5vZmZzZXRQYXJlbnRbMF0pJiYodC5sZWZ0Kz10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCksdC50b3ArPXRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCgpKSwodGhpcy5vZmZzZXRQYXJlbnRbMF09PT10aGlzLmRvY3VtZW50WzBdLmJvZHl8fHRoaXMub2Zmc2V0UGFyZW50WzBdLnRhZ05hbWUmJiJodG1sIj09PXRoaXMub2Zmc2V0UGFyZW50WzBdLnRhZ05hbWUudG9Mb3dlckNhc2UoKSYmZS51aS5pZSkmJih0PXt0b3A6MCxsZWZ0OjB9KSx7dG9wOnQudG9wKyhwYXJzZUludCh0aGlzLm9mZnNldFBhcmVudC5jc3MoImJvcmRlclRvcFdpZHRoIiksMTApfHwwKSxsZWZ0OnQubGVmdCsocGFyc2VJbnQodGhpcy5vZmZzZXRQYXJlbnQuY3NzKCJib3JkZXJMZWZ0V2lkdGgiKSwxMCl8fDApfX0sX2dldFJlbGF0aXZlT2Zmc2V0OmZ1bmN0aW9uKCl7aWYoInJlbGF0aXZlIj09PXRoaXMuY3NzUG9zaXRpb24pe3ZhciBlPXRoaXMuY3VycmVudEl0ZW0ucG9zaXRpb24oKTtyZXR1cm57dG9wOmUudG9wLShwYXJzZUludCh0aGlzLmhlbHBlci5jc3MoInRvcCIpLDEwKXx8MCkrdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsVG9wKCksbGVmdDplLmxlZnQtKHBhcnNlSW50KHRoaXMuaGVscGVyLmNzcygibGVmdCIpLDEwKXx8MCkrdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgpfX1yZXR1cm57dG9wOjAsbGVmdDowfX0sX2NhY2hlTWFyZ2luczpmdW5jdGlvbigpe3RoaXMubWFyZ2lucz17bGVmdDpwYXJzZUludCh0aGlzLmN1cnJlbnRJdGVtLmNzcygibWFyZ2luTGVmdCIpLDEwKXx8MCx0b3A6cGFyc2VJbnQodGhpcy5jdXJyZW50SXRlbS5jc3MoIm1hcmdpblRvcCIpLDEwKXx8MH19LF9jYWNoZUhlbHBlclByb3BvcnRpb25zOmZ1bmN0aW9uKCl7dGhpcy5oZWxwZXJQcm9wb3J0aW9ucz17d2lkdGg6dGhpcy5oZWxwZXIub3V0ZXJXaWR0aCgpLGhlaWdodDp0aGlzLmhlbHBlci5vdXRlckhlaWdodCgpfX0sX3NldENvbnRhaW5tZW50OmZ1bmN0aW9uKCl7dmFyIHQsaSxzLG49dGhpcy5vcHRpb25zOyJwYXJlbnQiPT09bi5jb250YWlubWVudCYmKG4uY29udGFpbm1lbnQ9dGhpcy5oZWxwZXJbMF0ucGFyZW50Tm9kZSksKCJkb2N1bWVudCI9PT1uLmNvbnRhaW5tZW50fHwid2luZG93Ij09PW4uY29udGFpbm1lbnQpJiYodGhpcy5jb250YWlubWVudD1bMC10aGlzLm9mZnNldC5yZWxhdGl2ZS5sZWZ0LXRoaXMub2Zmc2V0LnBhcmVudC5sZWZ0LDAtdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wLXRoaXMub2Zmc2V0LnBhcmVudC50b3AsImRvY3VtZW50Ij09PW4uY29udGFpbm1lbnQ/dGhpcy5kb2N1bWVudC53aWR0aCgpOnRoaXMud2luZG93LndpZHRoKCktdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aC10aGlzLm1hcmdpbnMubGVmdCwoImRvY3VtZW50Ij09PW4uY29udGFpbm1lbnQ/dGhpcy5kb2N1bWVudC53aWR0aCgpOnRoaXMud2luZG93LmhlaWdodCgpfHx0aGlzLmRvY3VtZW50WzBdLmJvZHkucGFyZW50Tm9kZS5zY3JvbGxIZWlnaHQpLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LXRoaXMubWFyZ2lucy50b3BdKSwvXihkb2N1bWVudHx3aW5kb3d8cGFyZW50KSQvLnRlc3Qobi5jb250YWlubWVudCl8fCh0PWUobi5jb250YWlubWVudClbMF0saT1lKG4uY29udGFpbm1lbnQpLm9mZnNldCgpLHM9ImhpZGRlbiIhPT1lKHQpLmNzcygib3ZlcmZsb3ciKSx0aGlzLmNvbnRhaW5tZW50PVtpLmxlZnQrKHBhcnNlSW50KGUodCkuY3NzKCJib3JkZXJMZWZ0V2lkdGgiKSwxMCl8fDApKyhwYXJzZUludChlKHQpLmNzcygicGFkZGluZ0xlZnQiKSwxMCl8fDApLXRoaXMubWFyZ2lucy5sZWZ0LGkudG9wKyhwYXJzZUludChlKHQpLmNzcygiYm9yZGVyVG9wV2lkdGgiKSwxMCl8fDApKyhwYXJzZUludChlKHQpLmNzcygicGFkZGluZ1RvcCIpLDEwKXx8MCktdGhpcy5tYXJnaW5zLnRvcCxpLmxlZnQrKHM/TWF0aC5tYXgodC5zY3JvbGxXaWR0aCx0Lm9mZnNldFdpZHRoKTp0Lm9mZnNldFdpZHRoKS0ocGFyc2VJbnQoZSh0KS5jc3MoImJvcmRlckxlZnRXaWR0aCIpLDEwKXx8MCktKHBhcnNlSW50KGUodCkuY3NzKCJwYWRkaW5nUmlnaHQiKSwxMCl8fDApLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgtdGhpcy5tYXJnaW5zLmxlZnQsaS50b3ArKHM/TWF0aC5tYXgodC5zY3JvbGxIZWlnaHQsdC5vZmZzZXRIZWlnaHQpOnQub2Zmc2V0SGVpZ2h0KS0ocGFyc2VJbnQoZSh0KS5jc3MoImJvcmRlclRvcFdpZHRoIiksMTApfHwwKS0ocGFyc2VJbnQoZSh0KS5jc3MoInBhZGRpbmdCb3R0b20iKSwxMCl8fDApLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LXRoaXMubWFyZ2lucy50b3BdKX0sX2NvbnZlcnRQb3NpdGlvblRvOmZ1bmN0aW9uKHQsaSl7aXx8KGk9dGhpcy5wb3NpdGlvbik7dmFyIHM9ImFic29sdXRlIj09PXQ/MTotMSxuPSJhYnNvbHV0ZSIhPT10aGlzLmNzc1Bvc2l0aW9ufHx0aGlzLnNjcm9sbFBhcmVudFswXSE9PXRoaXMuZG9jdW1lbnRbMF0mJmUuY29udGFpbnModGhpcy5zY3JvbGxQYXJlbnRbMF0sdGhpcy5vZmZzZXRQYXJlbnRbMF0pP3RoaXMuc2Nyb2xsUGFyZW50OnRoaXMub2Zmc2V0UGFyZW50LGE9LyhodG1sfGJvZHkpL2kudGVzdChuWzBdLnRhZ05hbWUpO3JldHVybnt0b3A6aS50b3ArdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wKnMrdGhpcy5vZmZzZXQucGFyZW50LnRvcCpzLSgiZml4ZWQiPT09dGhpcy5jc3NQb3NpdGlvbj8tdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsVG9wKCk6YT8wOm4uc2Nyb2xsVG9wKCkpKnMsbGVmdDppLmxlZnQrdGhpcy5vZmZzZXQucmVsYXRpdmUubGVmdCpzK3RoaXMub2Zmc2V0LnBhcmVudC5sZWZ0KnMtKCJmaXhlZCI9PT10aGlzLmNzc1Bvc2l0aW9uPy10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCk6YT8wOm4uc2Nyb2xsTGVmdCgpKSpzfX0sX2dlbmVyYXRlUG9zaXRpb246ZnVuY3Rpb24odCl7dmFyIGkscyxuPXRoaXMub3B0aW9ucyxhPXQucGFnZVgsbz10LnBhZ2VZLHI9ImFic29sdXRlIiE9PXRoaXMuY3NzUG9zaXRpb258fHRoaXMuc2Nyb2xsUGFyZW50WzBdIT09dGhpcy5kb2N1bWVudFswXSYmZS5jb250YWlucyh0aGlzLnNjcm9sbFBhcmVudFswXSx0aGlzLm9mZnNldFBhcmVudFswXSk/dGhpcy5zY3JvbGxQYXJlbnQ6dGhpcy5vZmZzZXRQYXJlbnQsaD0vKGh0bWx8Ym9keSkvaS50ZXN0KHJbMF0udGFnTmFtZSk7cmV0dXJuInJlbGF0aXZlIiE9PXRoaXMuY3NzUG9zaXRpb258fHRoaXMuc2Nyb2xsUGFyZW50WzBdIT09dGhpcy5kb2N1bWVudFswXSYmdGhpcy5zY3JvbGxQYXJlbnRbMF0hPT10aGlzLm9mZnNldFBhcmVudFswXXx8KHRoaXMub2Zmc2V0LnJlbGF0aXZlPXRoaXMuX2dldFJlbGF0aXZlT2Zmc2V0KCkpLHRoaXMub3JpZ2luYWxQb3NpdGlvbiYmKHRoaXMuY29udGFpbm1lbnQmJih0LnBhZ2VYLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ8dGhpcy5jb250YWlubWVudFswXSYmKGE9dGhpcy5jb250YWlubWVudFswXSt0aGlzLm9mZnNldC5jbGljay5sZWZ0KSx0LnBhZ2VZLXRoaXMub2Zmc2V0LmNsaWNrLnRvcDx0aGlzLmNvbnRhaW5tZW50WzFdJiYobz10aGlzLmNvbnRhaW5tZW50WzFdK3RoaXMub2Zmc2V0LmNsaWNrLnRvcCksdC5wYWdlWC10aGlzLm9mZnNldC5jbGljay5sZWZ0PnRoaXMuY29udGFpbm1lbnRbMl0mJihhPXRoaXMuY29udGFpbm1lbnRbMl0rdGhpcy5vZmZzZXQuY2xpY2subGVmdCksdC5wYWdlWS10aGlzLm9mZnNldC5jbGljay50b3A+dGhpcy5jb250YWlubWVudFszXSYmKG89dGhpcy5jb250YWlubWVudFszXSt0aGlzLm9mZnNldC5jbGljay50b3ApKSxuLmdyaWQmJihpPXRoaXMub3JpZ2luYWxQYWdlWStNYXRoLnJvdW5kKChvLXRoaXMub3JpZ2luYWxQYWdlWSkvbi5ncmlkWzFdKSpuLmdyaWRbMV0sbz10aGlzLmNvbnRhaW5tZW50P2ktdGhpcy5vZmZzZXQuY2xpY2sudG9wPj10aGlzLmNvbnRhaW5tZW50WzFdJiZpLXRoaXMub2Zmc2V0LmNsaWNrLnRvcDw9dGhpcy5jb250YWlubWVudFszXT9pOmktdGhpcy5vZmZzZXQuY2xpY2sudG9wPj10aGlzLmNvbnRhaW5tZW50WzFdP2ktbi5ncmlkWzFdOmkrbi5ncmlkWzFdOmkscz10aGlzLm9yaWdpbmFsUGFnZVgrTWF0aC5yb3VuZCgoYS10aGlzLm9yaWdpbmFsUGFnZVgpL24uZ3JpZFswXSkqbi5ncmlkWzBdLGE9dGhpcy5jb250YWlubWVudD9zLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ+PXRoaXMuY29udGFpbm1lbnRbMF0mJnMtdGhpcy5vZmZzZXQuY2xpY2subGVmdDw9dGhpcy5jb250YWlubWVudFsyXT9zOnMtdGhpcy5vZmZzZXQuY2xpY2subGVmdD49dGhpcy5jb250YWlubWVudFswXT9zLW4uZ3JpZFswXTpzK24uZ3JpZFswXTpzKSkse3RvcDpvLXRoaXMub2Zmc2V0LmNsaWNrLnRvcC10aGlzLm9mZnNldC5yZWxhdGl2ZS50b3AtdGhpcy5vZmZzZXQucGFyZW50LnRvcCsoImZpeGVkIj09PXRoaXMuY3NzUG9zaXRpb24/LXRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCgpOmg/MDpyLnNjcm9sbFRvcCgpKSxsZWZ0OmEtdGhpcy5vZmZzZXQuY2xpY2subGVmdC10aGlzLm9mZnNldC5yZWxhdGl2ZS5sZWZ0LXRoaXMub2Zmc2V0LnBhcmVudC5sZWZ0KygiZml4ZWQiPT09dGhpcy5jc3NQb3NpdGlvbj8tdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgpOmg/MDpyLnNjcm9sbExlZnQoKSl9fSxfcmVhcnJhbmdlOmZ1bmN0aW9uKGUsdCxpLHMpe2k/aVswXS5hcHBlbmRDaGlsZCh0aGlzLnBsYWNlaG9sZGVyWzBdKTp0Lml0ZW1bMF0ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcy5wbGFjZWhvbGRlclswXSwiZG93biI9PT10aGlzLmRpcmVjdGlvbj90Lml0ZW1bMF06dC5pdGVtWzBdLm5leHRTaWJsaW5nKSx0aGlzLmNvdW50ZXI9dGhpcy5jb3VudGVyPysrdGhpcy5jb3VudGVyOjE7dmFyIG49dGhpcy5jb3VudGVyO3RoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7bj09PXRoaXMuY291bnRlciYmdGhpcy5yZWZyZXNoUG9zaXRpb25zKCFzKX0pfSxfY2xlYXI6ZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBpKGUsdCxpKXtyZXR1cm4gZnVuY3Rpb24ocyl7aS5fdHJpZ2dlcihlLHMsdC5fdWlIYXNoKHQpKX19dGhpcy5yZXZlcnRpbmc9ITE7dmFyIHMsbj1bXTtpZighdGhpcy5fbm9GaW5hbFNvcnQmJnRoaXMuY3VycmVudEl0ZW0ucGFyZW50KCkubGVuZ3RoJiZ0aGlzLnBsYWNlaG9sZGVyLmJlZm9yZSh0aGlzLmN1cnJlbnRJdGVtKSx0aGlzLl9ub0ZpbmFsU29ydD1udWxsLHRoaXMuaGVscGVyWzBdPT09dGhpcy5jdXJyZW50SXRlbVswXSl7Zm9yKHMgaW4gdGhpcy5fc3RvcmVkQ1NTKSgiYXV0byI9PT10aGlzLl9zdG9yZWRDU1Nbc118fCJzdGF0aWMiPT09dGhpcy5fc3RvcmVkQ1NTW3NdKSYmKHRoaXMuX3N0b3JlZENTU1tzXT0iIik7dGhpcy5jdXJyZW50SXRlbS5jc3ModGhpcy5fc3RvcmVkQ1NTKS5yZW1vdmVDbGFzcygidWktc29ydGFibGUtaGVscGVyIil9ZWxzZSB0aGlzLmN1cnJlbnRJdGVtLnNob3coKTtmb3IodGhpcy5mcm9tT3V0c2lkZSYmIXQmJm4ucHVzaChmdW5jdGlvbihlKXt0aGlzLl90cmlnZ2VyKCJyZWNlaXZlIixlLHRoaXMuX3VpSGFzaCh0aGlzLmZyb21PdXRzaWRlKSl9KSwhdGhpcy5mcm9tT3V0c2lkZSYmdGhpcy5kb21Qb3NpdGlvbi5wcmV2PT09dGhpcy5jdXJyZW50SXRlbS5wcmV2KCkubm90KCIudWktc29ydGFibGUtaGVscGVyIilbMF0mJnRoaXMuZG9tUG9zaXRpb24ucGFyZW50PT09dGhpcy5jdXJyZW50SXRlbS5wYXJlbnQoKVswXXx8dHx8bi5wdXNoKGZ1bmN0aW9uKGUpe3RoaXMuX3RyaWdnZXIoInVwZGF0ZSIsZSx0aGlzLl91aUhhc2goKSl9KSx0aGlzIT09dGhpcy5jdXJyZW50Q29udGFpbmVyJiYodHx8KG4ucHVzaChmdW5jdGlvbihlKXt0aGlzLl90cmlnZ2VyKCJyZW1vdmUiLGUsdGhpcy5fdWlIYXNoKCkpfSksbi5wdXNoKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtlLl90cmlnZ2VyKCJyZWNlaXZlIix0LHRoaXMuX3VpSGFzaCh0aGlzKSl9fS5jYWxsKHRoaXMsdGhpcy5jdXJyZW50Q29udGFpbmVyKSksbi5wdXNoKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtlLl90cmlnZ2VyKCJ1cGRhdGUiLHQsdGhpcy5fdWlIYXNoKHRoaXMpKX19LmNhbGwodGhpcyx0aGlzLmN1cnJlbnRDb250YWluZXIpKSkpLHM9dGhpcy5jb250YWluZXJzLmxlbmd0aC0xO3M+PTA7cy0tKXR8fG4ucHVzaChpKCJkZWFjdGl2YXRlIix0aGlzLHRoaXMuY29udGFpbmVyc1tzXSkpLHRoaXMuY29udGFpbmVyc1tzXS5jb250YWluZXJDYWNoZS5vdmVyJiYobi5wdXNoKGkoIm91dCIsdGhpcyx0aGlzLmNvbnRhaW5lcnNbc10pKSx0aGlzLmNvbnRhaW5lcnNbc10uY29udGFpbmVyQ2FjaGUub3Zlcj0wKTtpZih0aGlzLnN0b3JlZEN1cnNvciYmKHRoaXMuZG9jdW1lbnQuZmluZCgiYm9keSIpLmNzcygiY3Vyc29yIix0aGlzLnN0b3JlZEN1cnNvciksdGhpcy5zdG9yZWRTdHlsZXNoZWV0LnJlbW92ZSgpKSx0aGlzLl9zdG9yZWRPcGFjaXR5JiZ0aGlzLmhlbHBlci5jc3MoIm9wYWNpdHkiLHRoaXMuX3N0b3JlZE9wYWNpdHkpLHRoaXMuX3N0b3JlZFpJbmRleCYmdGhpcy5oZWxwZXIuY3NzKCJ6SW5kZXgiLCJhdXRvIj09PXRoaXMuX3N0b3JlZFpJbmRleD8iIjp0aGlzLl9zdG9yZWRaSW5kZXgpLHRoaXMuZHJhZ2dpbmc9ITEsdHx8dGhpcy5fdHJpZ2dlcigiYmVmb3JlU3RvcCIsZSx0aGlzLl91aUhhc2goKSksdGhpcy5wbGFjZWhvbGRlclswXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMucGxhY2Vob2xkZXJbMF0pLHRoaXMuY2FuY2VsSGVscGVyUmVtb3ZhbHx8KHRoaXMuaGVscGVyWzBdIT09dGhpcy5jdXJyZW50SXRlbVswXSYmdGhpcy5oZWxwZXIucmVtb3ZlKCksdGhpcy5oZWxwZXI9bnVsbCksIXQpe2ZvcihzPTA7bi5sZW5ndGg+cztzKyspbltzXS5jYWxsKHRoaXMsZSk7dGhpcy5fdHJpZ2dlcigic3RvcCIsZSx0aGlzLl91aUhhc2goKSl9cmV0dXJuIHRoaXMuZnJvbU91dHNpZGU9ITEsIXRoaXMuY2FuY2VsSGVscGVyUmVtb3ZhbH0sX3RyaWdnZXI6ZnVuY3Rpb24oKXtlLldpZGdldC5wcm90b3R5cGUuX3RyaWdnZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpPT09ITEmJnRoaXMuY2FuY2VsKCl9LF91aUhhc2g6ZnVuY3Rpb24odCl7dmFyIGk9dHx8dGhpcztyZXR1cm57aGVscGVyOmkuaGVscGVyLHBsYWNlaG9sZGVyOmkucGxhY2Vob2xkZXJ8fGUoW10pLHBvc2l0aW9uOmkucG9zaXRpb24sb3JpZ2luYWxQb3NpdGlvbjppLm9yaWdpbmFsUG9zaXRpb24sb2Zmc2V0OmkucG9zaXRpb25BYnMsaXRlbTppLmN1cnJlbnRJdGVtLHNlbmRlcjp0P3QuZWxlbWVudDpudWxsfX19KSxlLndpZGdldCgidWkuYWNjb3JkaW9uIix7dmVyc2lvbjoiMS4xMS40IixvcHRpb25zOnthY3RpdmU6MCxhbmltYXRlOnt9LGNvbGxhcHNpYmxlOiExLGV2ZW50OiJjbGljayIsaGVhZGVyOiI+IGxpID4gOmZpcnN0LWNoaWxkLD4gOm5vdChsaSk6ZXZlbiIsaGVpZ2h0U3R5bGU6ImF1dG8iLGljb25zOnthY3RpdmVIZWFkZXI6InVpLWljb24tdHJpYW5nbGUtMS1zIixoZWFkZXI6InVpLWljb24tdHJpYW5nbGUtMS1lIn0sYWN0aXZhdGU6bnVsbCxiZWZvcmVBY3RpdmF0ZTpudWxsfSxoaWRlUHJvcHM6e2JvcmRlclRvcFdpZHRoOiJoaWRlIixib3JkZXJCb3R0b21XaWR0aDoiaGlkZSIscGFkZGluZ1RvcDoiaGlkZSIscGFkZGluZ0JvdHRvbToiaGlkZSIsaGVpZ2h0OiJoaWRlIn0sc2hvd1Byb3BzOntib3JkZXJUb3BXaWR0aDoic2hvdyIsYm9yZGVyQm90dG9tV2lkdGg6InNob3ciLHBhZGRpbmdUb3A6InNob3ciLHBhZGRpbmdCb3R0b206InNob3ciLGhlaWdodDoic2hvdyJ9LF9jcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnM7dGhpcy5wcmV2U2hvdz10aGlzLnByZXZIaWRlPWUoKSx0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLWFjY29yZGlvbiB1aS13aWRnZXQgdWktaGVscGVyLXJlc2V0IikuYXR0cigicm9sZSIsInRhYmxpc3QiKSx0LmNvbGxhcHNpYmxlfHx0LmFjdGl2ZSE9PSExJiZudWxsIT10LmFjdGl2ZXx8KHQuYWN0aXZlPTApLHRoaXMuX3Byb2Nlc3NQYW5lbHMoKSwwPnQuYWN0aXZlJiYodC5hY3RpdmUrPXRoaXMuaGVhZGVycy5sZW5ndGgpLHRoaXMuX3JlZnJlc2goKX0sX2dldENyZWF0ZUV2ZW50RGF0YTpmdW5jdGlvbigpe3JldHVybntoZWFkZXI6dGhpcy5hY3RpdmUscGFuZWw6dGhpcy5hY3RpdmUubGVuZ3RoP3RoaXMuYWN0aXZlLm5leHQoKTplKCl9fSxfY3JlYXRlSWNvbnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMuaWNvbnM7dCYmKGUoIjxzcGFuPiIpLmFkZENsYXNzKCJ1aS1hY2NvcmRpb24taGVhZGVyLWljb24gdWktaWNvbiAiK3QuaGVhZGVyKS5wcmVwZW5kVG8odGhpcy5oZWFkZXJzKSx0aGlzLmFjdGl2ZS5jaGlsZHJlbigiLnVpLWFjY29yZGlvbi1oZWFkZXItaWNvbiIpLnJlbW92ZUNsYXNzKHQuaGVhZGVyKS5hZGRDbGFzcyh0LmFjdGl2ZUhlYWRlciksdGhpcy5oZWFkZXJzLmFkZENsYXNzKCJ1aS1hY2NvcmRpb24taWNvbnMiKSl9LF9kZXN0cm95SWNvbnM6ZnVuY3Rpb24oKXt0aGlzLmhlYWRlcnMucmVtb3ZlQ2xhc3MoInVpLWFjY29yZGlvbi1pY29ucyIpLmNoaWxkcmVuKCIudWktYWNjb3JkaW9uLWhlYWRlci1pY29uIikucmVtb3ZlKCl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dmFyIGU7dGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1hY2NvcmRpb24gdWktd2lkZ2V0IHVpLWhlbHBlci1yZXNldCIpLnJlbW92ZUF0dHIoInJvbGUiKSx0aGlzLmhlYWRlcnMucmVtb3ZlQ2xhc3MoInVpLWFjY29yZGlvbi1oZWFkZXIgdWktYWNjb3JkaW9uLWhlYWRlci1hY3RpdmUgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIHVpLXN0YXRlLWFjdGl2ZSB1aS1zdGF0ZS1kaXNhYmxlZCB1aS1jb3JuZXItdG9wIikucmVtb3ZlQXR0cigicm9sZSIpLnJlbW92ZUF0dHIoImFyaWEtZXhwYW5kZWQiKS5yZW1vdmVBdHRyKCJhcmlhLXNlbGVjdGVkIikucmVtb3ZlQXR0cigiYXJpYS1jb250cm9scyIpLnJlbW92ZUF0dHIoInRhYkluZGV4IikucmVtb3ZlVW5pcXVlSWQoKSx0aGlzLl9kZXN0cm95SWNvbnMoKSxlPXRoaXMuaGVhZGVycy5uZXh0KCkucmVtb3ZlQ2xhc3MoInVpLWhlbHBlci1yZXNldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYm90dG9tIHVpLWFjY29yZGlvbi1jb250ZW50IHVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSB1aS1zdGF0ZS1kaXNhYmxlZCIpLmNzcygiZGlzcGxheSIsIiIpLnJlbW92ZUF0dHIoInJvbGUiKS5yZW1vdmVBdHRyKCJhcmlhLWhpZGRlbiIpLnJlbW92ZUF0dHIoImFyaWEtbGFiZWxsZWRieSIpLnJlbW92ZVVuaXF1ZUlkKCksImNvbnRlbnQiIT09dGhpcy5vcHRpb25zLmhlaWdodFN0eWxlJiZlLmNzcygiaGVpZ2h0IiwiIil9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4iYWN0aXZlIj09PWU/KHRoaXMuX2FjdGl2YXRlKHQpLHZvaWQgMCk6KCJldmVudCI9PT1lJiYodGhpcy5vcHRpb25zLmV2ZW50JiZ0aGlzLl9vZmYodGhpcy5oZWFkZXJzLHRoaXMub3B0aW9ucy5ldmVudCksdGhpcy5fc2V0dXBFdmVudHModCkpLHRoaXMuX3N1cGVyKGUsdCksImNvbGxhcHNpYmxlIiE9PWV8fHR8fHRoaXMub3B0aW9ucy5hY3RpdmUhPT0hMXx8dGhpcy5fYWN0aXZhdGUoMCksImljb25zIj09PWUmJih0aGlzLl9kZXN0cm95SWNvbnMoKSx0JiZ0aGlzLl9jcmVhdGVJY29ucygpKSwiZGlzYWJsZWQiPT09ZSYmKHRoaXMuZWxlbWVudC50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLCEhdCkuYXR0cigiYXJpYS1kaXNhYmxlZCIsdCksdGhpcy5oZWFkZXJzLmFkZCh0aGlzLmhlYWRlcnMubmV4dCgpKS50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLCEhdCkpLHZvaWQgMCl9LF9rZXlkb3duOmZ1bmN0aW9uKHQpe2lmKCF0LmFsdEtleSYmIXQuY3RybEtleSl7dmFyIGk9ZS51aS5rZXlDb2RlLHM9dGhpcy5oZWFkZXJzLmxlbmd0aCxuPXRoaXMuaGVhZGVycy5pbmRleCh0LnRhcmdldCksYT0hMTtzd2l0Y2godC5rZXlDb2RlKXtjYXNlIGkuUklHSFQ6Y2FzZSBpLkRPV046YT10aGlzLmhlYWRlcnNbKG4rMSklc107YnJlYWs7Y2FzZSBpLkxFRlQ6Y2FzZSBpLlVQOmE9dGhpcy5oZWFkZXJzWyhuLTErcyklc107YnJlYWs7Y2FzZSBpLlNQQUNFOmNhc2UgaS5FTlRFUjp0aGlzLl9ldmVudEhhbmRsZXIodCk7YnJlYWs7Y2FzZSBpLkhPTUU6YT10aGlzLmhlYWRlcnNbMF07YnJlYWs7Y2FzZSBpLkVORDphPXRoaXMuaGVhZGVyc1tzLTFdfWEmJihlKHQudGFyZ2V0KS5hdHRyKCJ0YWJJbmRleCIsLTEpLGUoYSkuYXR0cigidGFiSW5kZXgiLDApLGEuZm9jdXMoKSx0LnByZXZlbnREZWZhdWx0KCkpfX0sX3BhbmVsS2V5RG93bjpmdW5jdGlvbih0KXt0LmtleUNvZGU9PT1lLnVpLmtleUNvZGUuVVAmJnQuY3RybEtleSYmZSh0LmN1cnJlbnRUYXJnZXQpLnByZXYoKS5mb2N1cygpfSxyZWZyZXNoOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcHRpb25zO3RoaXMuX3Byb2Nlc3NQYW5lbHMoKSx0LmFjdGl2ZT09PSExJiZ0LmNvbGxhcHNpYmxlPT09ITB8fCF0aGlzLmhlYWRlcnMubGVuZ3RoPyh0LmFjdGl2ZT0hMSx0aGlzLmFjdGl2ZT1lKCkpOnQuYWN0aXZlPT09ITE/dGhpcy5fYWN0aXZhdGUoMCk6dGhpcy5hY3RpdmUubGVuZ3RoJiYhZS5jb250YWlucyh0aGlzLmVsZW1lbnRbMF0sdGhpcy5hY3RpdmVbMF0pP3RoaXMuaGVhZGVycy5sZW5ndGg9PT10aGlzLmhlYWRlcnMuZmluZCgiLnVpLXN0YXRlLWRpc2FibGVkIikubGVuZ3RoPyh0LmFjdGl2ZT0hMSx0aGlzLmFjdGl2ZT1lKCkpOnRoaXMuX2FjdGl2YXRlKE1hdGgubWF4KDAsdC5hY3RpdmUtMSkpOnQuYWN0aXZlPXRoaXMuaGVhZGVycy5pbmRleCh0aGlzLmFjdGl2ZSksdGhpcy5fZGVzdHJveUljb25zKCksdGhpcy5fcmVmcmVzaCgpfSxfcHJvY2Vzc1BhbmVsczpmdW5jdGlvbigpe3ZhciBlPXRoaXMuaGVhZGVycyx0PXRoaXMucGFuZWxzO3RoaXMuaGVhZGVycz10aGlzLmVsZW1lbnQuZmluZCh0aGlzLm9wdGlvbnMuaGVhZGVyKS5hZGRDbGFzcygidWktYWNjb3JkaW9uLWhlYWRlciB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwiKSx0aGlzLnBhbmVscz10aGlzLmhlYWRlcnMubmV4dCgpLmFkZENsYXNzKCJ1aS1hY2NvcmRpb24tY29udGVudCB1aS1oZWxwZXItcmVzZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWJvdHRvbSIpLmZpbHRlcigiOm5vdCgudWktYWNjb3JkaW9uLWNvbnRlbnQtYWN0aXZlKSIpLmhpZGUoKSx0JiYodGhpcy5fb2ZmKGUubm90KHRoaXMuaGVhZGVycykpLHRoaXMuX29mZih0Lm5vdCh0aGlzLnBhbmVscykpKX0sX3JlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdCxpPXRoaXMub3B0aW9ucyxzPWkuaGVpZ2h0U3R5bGUsbj10aGlzLmVsZW1lbnQucGFyZW50KCk7dGhpcy5hY3RpdmU9dGhpcy5fZmluZEFjdGl2ZShpLmFjdGl2ZSkuYWRkQ2xhc3MoInVpLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSB1aS1jb3JuZXItdG9wIikucmVtb3ZlQ2xhc3MoInVpLWNvcm5lci1hbGwiKSx0aGlzLmFjdGl2ZS5uZXh0KCkuYWRkQ2xhc3MoInVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSIpLnNob3coKSx0aGlzLmhlYWRlcnMuYXR0cigicm9sZSIsInRhYiIpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLGk9dC51bmlxdWVJZCgpLmF0dHIoImlkIikscz10Lm5leHQoKSxuPXMudW5pcXVlSWQoKS5hdHRyKCJpZCIpO3QuYXR0cigiYXJpYS1jb250cm9scyIsbikscy5hdHRyKCJhcmlhLWxhYmVsbGVkYnkiLGkpfSkubmV4dCgpLmF0dHIoInJvbGUiLCJ0YWJwYW5lbCIpLHRoaXMuaGVhZGVycy5ub3QodGhpcy5hY3RpdmUpLmF0dHIoeyJhcmlhLXNlbGVjdGVkIjoiZmFsc2UiLCJhcmlhLWV4cGFuZGVkIjoiZmFsc2UiLHRhYkluZGV4Oi0xfSkubmV4dCgpLmF0dHIoeyJhcmlhLWhpZGRlbiI6InRydWUifSkuaGlkZSgpLHRoaXMuYWN0aXZlLmxlbmd0aD90aGlzLmFjdGl2ZS5hdHRyKHsiYXJpYS1zZWxlY3RlZCI6InRydWUiLCJhcmlhLWV4cGFuZGVkIjoidHJ1ZSIsdGFiSW5kZXg6MH0pLm5leHQoKS5hdHRyKHsiYXJpYS1oaWRkZW4iOiJmYWxzZSJ9KTp0aGlzLmhlYWRlcnMuZXEoMCkuYXR0cigidGFiSW5kZXgiLDApLHRoaXMuX2NyZWF0ZUljb25zKCksdGhpcy5fc2V0dXBFdmVudHMoaS5ldmVudCksImZpbGwiPT09cz8odD1uLmhlaWdodCgpLHRoaXMuZWxlbWVudC5zaWJsaW5ncygiOnZpc2libGUiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGk9ZSh0aGlzKSxzPWkuY3NzKCJwb3NpdGlvbiIpOyJhYnNvbHV0ZSIhPT1zJiYiZml4ZWQiIT09cyYmKHQtPWkub3V0ZXJIZWlnaHQoITApKX0pLHRoaXMuaGVhZGVycy5lYWNoKGZ1bmN0aW9uKCl7dC09ZSh0aGlzKS5vdXRlckhlaWdodCghMCl9KSx0aGlzLmhlYWRlcnMubmV4dCgpLmVhY2goZnVuY3Rpb24oKXtlKHRoaXMpLmhlaWdodChNYXRoLm1heCgwLHQtZSh0aGlzKS5pbm5lckhlaWdodCgpK2UodGhpcykuaGVpZ2h0KCkpKX0pLmNzcygib3ZlcmZsb3ciLCJhdXRvIikpOiJhdXRvIj09PXMmJih0PTAsdGhpcy5oZWFkZXJzLm5leHQoKS5lYWNoKGZ1bmN0aW9uKCl7dD1NYXRoLm1heCh0LGUodGhpcykuY3NzKCJoZWlnaHQiLCIiKS5oZWlnaHQoKSl9KS5oZWlnaHQodCkpfSxfYWN0aXZhdGU6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5fZmluZEFjdGl2ZSh0KVswXTtpIT09dGhpcy5hY3RpdmVbMF0mJihpPWl8fHRoaXMuYWN0aXZlWzBdLHRoaXMuX2V2ZW50SGFuZGxlcih7dGFyZ2V0OmksY3VycmVudFRhcmdldDppLHByZXZlbnREZWZhdWx0OmUubm9vcH0pKX0sX2ZpbmRBY3RpdmU6ZnVuY3Rpb24odCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0P3RoaXMuaGVhZGVycy5lcSh0KTplKCl9LF9zZXR1cEV2ZW50czpmdW5jdGlvbih0KXt2YXIgaT17a2V5ZG93bjoiX2tleWRvd24ifTt0JiZlLmVhY2godC5zcGxpdCgiICIpLGZ1bmN0aW9uKGUsdCl7aVt0XT0iX2V2ZW50SGFuZGxlciJ9KSx0aGlzLl9vZmYodGhpcy5oZWFkZXJzLmFkZCh0aGlzLmhlYWRlcnMubmV4dCgpKSksdGhpcy5fb24odGhpcy5oZWFkZXJzLGkpLHRoaXMuX29uKHRoaXMuaGVhZGVycy5uZXh0KCkse2tleWRvd246Il9wYW5lbEtleURvd24ifSksdGhpcy5faG92ZXJhYmxlKHRoaXMuaGVhZGVycyksdGhpcy5fZm9jdXNhYmxlKHRoaXMuaGVhZGVycyl9LF9ldmVudEhhbmRsZXI6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5vcHRpb25zLHM9dGhpcy5hY3RpdmUsbj1lKHQuY3VycmVudFRhcmdldCksYT1uWzBdPT09c1swXSxvPWEmJmkuY29sbGFwc2libGUscj1vP2UoKTpuLm5leHQoKSxoPXMubmV4dCgpLGw9e29sZEhlYWRlcjpzLG9sZFBhbmVsOmgsbmV3SGVhZGVyOm8/ZSgpOm4sbmV3UGFuZWw6cn07CnQucHJldmVudERlZmF1bHQoKSxhJiYhaS5jb2xsYXBzaWJsZXx8dGhpcy5fdHJpZ2dlcigiYmVmb3JlQWN0aXZhdGUiLHQsbCk9PT0hMXx8KGkuYWN0aXZlPW8/ITE6dGhpcy5oZWFkZXJzLmluZGV4KG4pLHRoaXMuYWN0aXZlPWE/ZSgpOm4sdGhpcy5fdG9nZ2xlKGwpLHMucmVtb3ZlQ2xhc3MoInVpLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSIpLGkuaWNvbnMmJnMuY2hpbGRyZW4oIi51aS1hY2NvcmRpb24taGVhZGVyLWljb24iKS5yZW1vdmVDbGFzcyhpLmljb25zLmFjdGl2ZUhlYWRlcikuYWRkQ2xhc3MoaS5pY29ucy5oZWFkZXIpLGF8fChuLnJlbW92ZUNsYXNzKCJ1aS1jb3JuZXItYWxsIikuYWRkQ2xhc3MoInVpLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSB1aS1jb3JuZXItdG9wIiksaS5pY29ucyYmbi5jaGlsZHJlbigiLnVpLWFjY29yZGlvbi1oZWFkZXItaWNvbiIpLnJlbW92ZUNsYXNzKGkuaWNvbnMuaGVhZGVyKS5hZGRDbGFzcyhpLmljb25zLmFjdGl2ZUhlYWRlciksbi5uZXh0KCkuYWRkQ2xhc3MoInVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSIpKSl9LF90b2dnbGU6ZnVuY3Rpb24odCl7dmFyIGk9dC5uZXdQYW5lbCxzPXRoaXMucHJldlNob3cubGVuZ3RoP3RoaXMucHJldlNob3c6dC5vbGRQYW5lbDt0aGlzLnByZXZTaG93LmFkZCh0aGlzLnByZXZIaWRlKS5zdG9wKCEwLCEwKSx0aGlzLnByZXZTaG93PWksdGhpcy5wcmV2SGlkZT1zLHRoaXMub3B0aW9ucy5hbmltYXRlP3RoaXMuX2FuaW1hdGUoaSxzLHQpOihzLmhpZGUoKSxpLnNob3coKSx0aGlzLl90b2dnbGVDb21wbGV0ZSh0KSkscy5hdHRyKHsiYXJpYS1oaWRkZW4iOiJ0cnVlIn0pLHMucHJldigpLmF0dHIoeyJhcmlhLXNlbGVjdGVkIjoiZmFsc2UiLCJhcmlhLWV4cGFuZGVkIjoiZmFsc2UifSksaS5sZW5ndGgmJnMubGVuZ3RoP3MucHJldigpLmF0dHIoe3RhYkluZGV4Oi0xLCJhcmlhLWV4cGFuZGVkIjoiZmFsc2UifSk6aS5sZW5ndGgmJnRoaXMuaGVhZGVycy5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gMD09PXBhcnNlSW50KGUodGhpcykuYXR0cigidGFiSW5kZXgiKSwxMCl9KS5hdHRyKCJ0YWJJbmRleCIsLTEpLGkuYXR0cigiYXJpYS1oaWRkZW4iLCJmYWxzZSIpLnByZXYoKS5hdHRyKHsiYXJpYS1zZWxlY3RlZCI6InRydWUiLCJhcmlhLWV4cGFuZGVkIjoidHJ1ZSIsdGFiSW5kZXg6MH0pfSxfYW5pbWF0ZTpmdW5jdGlvbihlLHQsaSl7dmFyIHMsbixhLG89dGhpcyxyPTAsaD1lLmNzcygiYm94LXNpemluZyIpLGw9ZS5sZW5ndGgmJighdC5sZW5ndGh8fGUuaW5kZXgoKTx0LmluZGV4KCkpLHU9dGhpcy5vcHRpb25zLmFuaW1hdGV8fHt9LGQ9bCYmdS5kb3dufHx1LGM9ZnVuY3Rpb24oKXtvLl90b2dnbGVDb21wbGV0ZShpKX07cmV0dXJuIm51bWJlciI9PXR5cGVvZiBkJiYoYT1kKSwic3RyaW5nIj09dHlwZW9mIGQmJihuPWQpLG49bnx8ZC5lYXNpbmd8fHUuZWFzaW5nLGE9YXx8ZC5kdXJhdGlvbnx8dS5kdXJhdGlvbix0Lmxlbmd0aD9lLmxlbmd0aD8ocz1lLnNob3coKS5vdXRlckhlaWdodCgpLHQuYW5pbWF0ZSh0aGlzLmhpZGVQcm9wcyx7ZHVyYXRpb246YSxlYXNpbmc6bixzdGVwOmZ1bmN0aW9uKGUsdCl7dC5ub3c9TWF0aC5yb3VuZChlKX19KSxlLmhpZGUoKS5hbmltYXRlKHRoaXMuc2hvd1Byb3BzLHtkdXJhdGlvbjphLGVhc2luZzpuLGNvbXBsZXRlOmMsc3RlcDpmdW5jdGlvbihlLGkpe2kubm93PU1hdGgucm91bmQoZSksImhlaWdodCIhPT1pLnByb3A/ImNvbnRlbnQtYm94Ij09PWgmJihyKz1pLm5vdyk6ImNvbnRlbnQiIT09by5vcHRpb25zLmhlaWdodFN0eWxlJiYoaS5ub3c9TWF0aC5yb3VuZChzLXQub3V0ZXJIZWlnaHQoKS1yKSxyPTApfX0pLHZvaWQgMCk6dC5hbmltYXRlKHRoaXMuaGlkZVByb3BzLGEsbixjKTplLmFuaW1hdGUodGhpcy5zaG93UHJvcHMsYSxuLGMpfSxfdG9nZ2xlQ29tcGxldGU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vbGRQYW5lbDt0LnJlbW92ZUNsYXNzKCJ1aS1hY2NvcmRpb24tY29udGVudC1hY3RpdmUiKS5wcmV2KCkucmVtb3ZlQ2xhc3MoInVpLWNvcm5lci10b3AiKS5hZGRDbGFzcygidWktY29ybmVyLWFsbCIpLHQubGVuZ3RoJiYodC5wYXJlbnQoKVswXS5jbGFzc05hbWU9dC5wYXJlbnQoKVswXS5jbGFzc05hbWUpLHRoaXMuX3RyaWdnZXIoImFjdGl2YXRlIixudWxsLGUpfX0pLGUud2lkZ2V0KCJ1aS5tZW51Iix7dmVyc2lvbjoiMS4xMS40IixkZWZhdWx0RWxlbWVudDoiPHVsPiIsZGVsYXk6MzAwLG9wdGlvbnM6e2ljb25zOntzdWJtZW51OiJ1aS1pY29uLWNhcmF0LTEtZSJ9LGl0ZW1zOiI+ICoiLG1lbnVzOiJ1bCIscG9zaXRpb246e215OiJsZWZ0LTEgdG9wIixhdDoicmlnaHQgdG9wIn0scm9sZToibWVudSIsYmx1cjpudWxsLGZvY3VzOm51bGwsc2VsZWN0Om51bGx9LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLmFjdGl2ZU1lbnU9dGhpcy5lbGVtZW50LHRoaXMubW91c2VIYW5kbGVkPSExLHRoaXMuZWxlbWVudC51bmlxdWVJZCgpLmFkZENsYXNzKCJ1aS1tZW51IHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCIpLnRvZ2dsZUNsYXNzKCJ1aS1tZW51LWljb25zIiwhIXRoaXMuZWxlbWVudC5maW5kKCIudWktaWNvbiIpLmxlbmd0aCkuYXR0cih7cm9sZTp0aGlzLm9wdGlvbnMucm9sZSx0YWJJbmRleDowfSksdGhpcy5vcHRpb25zLmRpc2FibGVkJiZ0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIikuYXR0cigiYXJpYS1kaXNhYmxlZCIsInRydWUiKSx0aGlzLl9vbih7Im1vdXNlZG93biAudWktbWVudS1pdGVtIjpmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCl9LCJjbGljayAudWktbWVudS1pdGVtIjpmdW5jdGlvbih0KXt2YXIgaT1lKHQudGFyZ2V0KTshdGhpcy5tb3VzZUhhbmRsZWQmJmkubm90KCIudWktc3RhdGUtZGlzYWJsZWQiKS5sZW5ndGgmJih0aGlzLnNlbGVjdCh0KSx0LmlzUHJvcGFnYXRpb25TdG9wcGVkKCl8fCh0aGlzLm1vdXNlSGFuZGxlZD0hMCksaS5oYXMoIi51aS1tZW51IikubGVuZ3RoP3RoaXMuZXhwYW5kKHQpOiF0aGlzLmVsZW1lbnQuaXMoIjpmb2N1cyIpJiZlKHRoaXMuZG9jdW1lbnRbMF0uYWN0aXZlRWxlbWVudCkuY2xvc2VzdCgiLnVpLW1lbnUiKS5sZW5ndGgmJih0aGlzLmVsZW1lbnQudHJpZ2dlcigiZm9jdXMiLFshMF0pLHRoaXMuYWN0aXZlJiYxPT09dGhpcy5hY3RpdmUucGFyZW50cygiLnVpLW1lbnUiKS5sZW5ndGgmJmNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSkpfSwibW91c2VlbnRlciAudWktbWVudS1pdGVtIjpmdW5jdGlvbih0KXtpZighdGhpcy5wcmV2aW91c0ZpbHRlcil7dmFyIGk9ZSh0LmN1cnJlbnRUYXJnZXQpO2kuc2libGluZ3MoIi51aS1zdGF0ZS1hY3RpdmUiKS5yZW1vdmVDbGFzcygidWktc3RhdGUtYWN0aXZlIiksdGhpcy5mb2N1cyh0LGkpfX0sbW91c2VsZWF2ZToiY29sbGFwc2VBbGwiLCJtb3VzZWxlYXZlIC51aS1tZW51IjoiY29sbGFwc2VBbGwiLGZvY3VzOmZ1bmN0aW9uKGUsdCl7dmFyIGk9dGhpcy5hY3RpdmV8fHRoaXMuZWxlbWVudC5maW5kKHRoaXMub3B0aW9ucy5pdGVtcykuZXEoMCk7dHx8dGhpcy5mb2N1cyhlLGkpfSxibHVyOmZ1bmN0aW9uKHQpe3RoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7ZS5jb250YWlucyh0aGlzLmVsZW1lbnRbMF0sdGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50KXx8dGhpcy5jb2xsYXBzZUFsbCh0KX0pfSxrZXlkb3duOiJfa2V5ZG93biJ9KSx0aGlzLnJlZnJlc2goKSx0aGlzLl9vbih0aGlzLmRvY3VtZW50LHtjbGljazpmdW5jdGlvbihlKXt0aGlzLl9jbG9zZU9uRG9jdW1lbnRDbGljayhlKSYmdGhpcy5jb2xsYXBzZUFsbChlKSx0aGlzLm1vdXNlSGFuZGxlZD0hMX19KX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQucmVtb3ZlQXR0cigiYXJpYS1hY3RpdmVkZXNjZW5kYW50IikuZmluZCgiLnVpLW1lbnUiKS5hZGRCYWNrKCkucmVtb3ZlQ2xhc3MoInVpLW1lbnUgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLW1lbnUtaWNvbnMgdWktZnJvbnQiKS5yZW1vdmVBdHRyKCJyb2xlIikucmVtb3ZlQXR0cigidGFiSW5kZXgiKS5yZW1vdmVBdHRyKCJhcmlhLWxhYmVsbGVkYnkiKS5yZW1vdmVBdHRyKCJhcmlhLWV4cGFuZGVkIikucmVtb3ZlQXR0cigiYXJpYS1oaWRkZW4iKS5yZW1vdmVBdHRyKCJhcmlhLWRpc2FibGVkIikucmVtb3ZlVW5pcXVlSWQoKS5zaG93KCksdGhpcy5lbGVtZW50LmZpbmQoIi51aS1tZW51LWl0ZW0iKS5yZW1vdmVDbGFzcygidWktbWVudS1pdGVtIikucmVtb3ZlQXR0cigicm9sZSIpLnJlbW92ZUF0dHIoImFyaWEtZGlzYWJsZWQiKS5yZW1vdmVVbmlxdWVJZCgpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpLnJlbW92ZUF0dHIoInRhYkluZGV4IikucmVtb3ZlQXR0cigicm9sZSIpLnJlbW92ZUF0dHIoImFyaWEtaGFzcG9wdXAiKS5jaGlsZHJlbigpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpO3QuZGF0YSgidWktbWVudS1zdWJtZW51LWNhcmF0IikmJnQucmVtb3ZlKCl9KSx0aGlzLmVsZW1lbnQuZmluZCgiLnVpLW1lbnUtZGl2aWRlciIpLnJlbW92ZUNsYXNzKCJ1aS1tZW51LWRpdmlkZXIgdWktd2lkZ2V0LWNvbnRlbnQiKX0sX2tleWRvd246ZnVuY3Rpb24odCl7dmFyIGkscyxuLGEsbz0hMDtzd2l0Y2godC5rZXlDb2RlKXtjYXNlIGUudWkua2V5Q29kZS5QQUdFX1VQOnRoaXMucHJldmlvdXNQYWdlKHQpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLlBBR0VfRE9XTjp0aGlzLm5leHRQYWdlKHQpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkhPTUU6dGhpcy5fbW92ZSgiZmlyc3QiLCJmaXJzdCIsdCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuRU5EOnRoaXMuX21vdmUoImxhc3QiLCJsYXN0Iix0KTticmVhaztjYXNlIGUudWkua2V5Q29kZS5VUDp0aGlzLnByZXZpb3VzKHQpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkRPV046dGhpcy5uZXh0KHQpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkxFRlQ6dGhpcy5jb2xsYXBzZSh0KTticmVhaztjYXNlIGUudWkua2V5Q29kZS5SSUdIVDp0aGlzLmFjdGl2ZSYmIXRoaXMuYWN0aXZlLmlzKCIudWktc3RhdGUtZGlzYWJsZWQiKSYmdGhpcy5leHBhbmQodCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuRU5URVI6Y2FzZSBlLnVpLmtleUNvZGUuU1BBQ0U6dGhpcy5fYWN0aXZhdGUodCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuRVNDQVBFOnRoaXMuY29sbGFwc2UodCk7YnJlYWs7ZGVmYXVsdDpvPSExLHM9dGhpcy5wcmV2aW91c0ZpbHRlcnx8IiIsbj1TdHJpbmcuZnJvbUNoYXJDb2RlKHQua2V5Q29kZSksYT0hMSxjbGVhclRpbWVvdXQodGhpcy5maWx0ZXJUaW1lciksbj09PXM/YT0hMDpuPXMrbixpPXRoaXMuX2ZpbHRlck1lbnVJdGVtcyhuKSxpPWEmJi0xIT09aS5pbmRleCh0aGlzLmFjdGl2ZS5uZXh0KCkpP3RoaXMuYWN0aXZlLm5leHRBbGwoIi51aS1tZW51LWl0ZW0iKTppLGkubGVuZ3RofHwobj1TdHJpbmcuZnJvbUNoYXJDb2RlKHQua2V5Q29kZSksaT10aGlzLl9maWx0ZXJNZW51SXRlbXMobikpLGkubGVuZ3RoPyh0aGlzLmZvY3VzKHQsaSksdGhpcy5wcmV2aW91c0ZpbHRlcj1uLHRoaXMuZmlsdGVyVGltZXI9dGhpcy5fZGVsYXkoZnVuY3Rpb24oKXtkZWxldGUgdGhpcy5wcmV2aW91c0ZpbHRlcn0sMWUzKSk6ZGVsZXRlIHRoaXMucHJldmlvdXNGaWx0ZXJ9byYmdC5wcmV2ZW50RGVmYXVsdCgpfSxfYWN0aXZhdGU6ZnVuY3Rpb24oZSl7dGhpcy5hY3RpdmUuaXMoIi51aS1zdGF0ZS1kaXNhYmxlZCIpfHwodGhpcy5hY3RpdmUuaXMoIlthcmlhLWhhc3BvcHVwPSd0cnVlJ10iKT90aGlzLmV4cGFuZChlKTp0aGlzLnNlbGVjdChlKSl9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdCxpLHM9dGhpcyxuPXRoaXMub3B0aW9ucy5pY29ucy5zdWJtZW51LGE9dGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLm1lbnVzKTt0aGlzLmVsZW1lbnQudG9nZ2xlQ2xhc3MoInVpLW1lbnUtaWNvbnMiLCEhdGhpcy5lbGVtZW50LmZpbmQoIi51aS1pY29uIikubGVuZ3RoKSxhLmZpbHRlcigiOm5vdCgudWktbWVudSkiKS5hZGRDbGFzcygidWktbWVudSB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktZnJvbnQiKS5oaWRlKCkuYXR0cih7cm9sZTp0aGlzLm9wdGlvbnMucm9sZSwiYXJpYS1oaWRkZW4iOiJ0cnVlIiwiYXJpYS1leHBhbmRlZCI6ImZhbHNlIn0pLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLGk9dC5wYXJlbnQoKSxzPWUoIjxzcGFuPiIpLmFkZENsYXNzKCJ1aS1tZW51LWljb24gdWktaWNvbiAiK24pLmRhdGEoInVpLW1lbnUtc3VibWVudS1jYXJhdCIsITApO2kuYXR0cigiYXJpYS1oYXNwb3B1cCIsInRydWUiKS5wcmVwZW5kKHMpLHQuYXR0cigiYXJpYS1sYWJlbGxlZGJ5IixpLmF0dHIoImlkIikpfSksdD1hLmFkZCh0aGlzLmVsZW1lbnQpLGk9dC5maW5kKHRoaXMub3B0aW9ucy5pdGVtcyksaS5ub3QoIi51aS1tZW51LWl0ZW0iKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKTtzLl9pc0RpdmlkZXIodCkmJnQuYWRkQ2xhc3MoInVpLXdpZGdldC1jb250ZW50IHVpLW1lbnUtZGl2aWRlciIpfSksaS5ub3QoIi51aS1tZW51LWl0ZW0sIC51aS1tZW51LWRpdmlkZXIiKS5hZGRDbGFzcygidWktbWVudS1pdGVtIikudW5pcXVlSWQoKS5hdHRyKHt0YWJJbmRleDotMSxyb2xlOnRoaXMuX2l0ZW1Sb2xlKCl9KSxpLmZpbHRlcigiLnVpLXN0YXRlLWRpc2FibGVkIikuYXR0cigiYXJpYS1kaXNhYmxlZCIsInRydWUiKSx0aGlzLmFjdGl2ZSYmIWUuY29udGFpbnModGhpcy5lbGVtZW50WzBdLHRoaXMuYWN0aXZlWzBdKSYmdGhpcy5ibHVyKCl9LF9pdGVtUm9sZTpmdW5jdGlvbigpe3JldHVybnttZW51OiJtZW51aXRlbSIsbGlzdGJveDoib3B0aW9uIn1bdGhpcy5vcHRpb25zLnJvbGVdfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKGUsdCl7Imljb25zIj09PWUmJnRoaXMuZWxlbWVudC5maW5kKCIudWktbWVudS1pY29uIikucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmljb25zLnN1Ym1lbnUpLmFkZENsYXNzKHQuc3VibWVudSksImRpc2FibGVkIj09PWUmJnRoaXMuZWxlbWVudC50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLCEhdCkuYXR0cigiYXJpYS1kaXNhYmxlZCIsdCksdGhpcy5fc3VwZXIoZSx0KX0sZm9jdXM6ZnVuY3Rpb24oZSx0KXt2YXIgaSxzO3RoaXMuYmx1cihlLGUmJiJmb2N1cyI9PT1lLnR5cGUpLHRoaXMuX3Njcm9sbEludG9WaWV3KHQpLHRoaXMuYWN0aXZlPXQuZmlyc3QoKSxzPXRoaXMuYWN0aXZlLmFkZENsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKSx0aGlzLm9wdGlvbnMucm9sZSYmdGhpcy5lbGVtZW50LmF0dHIoImFyaWEtYWN0aXZlZGVzY2VuZGFudCIscy5hdHRyKCJpZCIpKSx0aGlzLmFjdGl2ZS5wYXJlbnQoKS5jbG9zZXN0KCIudWktbWVudS1pdGVtIikuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLGUmJiJrZXlkb3duIj09PWUudHlwZT90aGlzLl9jbG9zZSgpOnRoaXMudGltZXI9dGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt0aGlzLl9jbG9zZSgpfSx0aGlzLmRlbGF5KSxpPXQuY2hpbGRyZW4oIi51aS1tZW51IiksaS5sZW5ndGgmJmUmJi9ebW91c2UvLnRlc3QoZS50eXBlKSYmdGhpcy5fc3RhcnRPcGVuaW5nKGkpLHRoaXMuYWN0aXZlTWVudT10LnBhcmVudCgpLHRoaXMuX3RyaWdnZXIoImZvY3VzIixlLHtpdGVtOnR9KX0sX3Njcm9sbEludG9WaWV3OmZ1bmN0aW9uKHQpe3ZhciBpLHMsbixhLG8scjt0aGlzLl9oYXNTY3JvbGwoKSYmKGk9cGFyc2VGbG9hdChlLmNzcyh0aGlzLmFjdGl2ZU1lbnVbMF0sImJvcmRlclRvcFdpZHRoIikpfHwwLHM9cGFyc2VGbG9hdChlLmNzcyh0aGlzLmFjdGl2ZU1lbnVbMF0sInBhZGRpbmdUb3AiKSl8fDAsbj10Lm9mZnNldCgpLnRvcC10aGlzLmFjdGl2ZU1lbnUub2Zmc2V0KCkudG9wLWktcyxhPXRoaXMuYWN0aXZlTWVudS5zY3JvbGxUb3AoKSxvPXRoaXMuYWN0aXZlTWVudS5oZWlnaHQoKSxyPXQub3V0ZXJIZWlnaHQoKSwwPm4/dGhpcy5hY3RpdmVNZW51LnNjcm9sbFRvcChhK24pOm4rcj5vJiZ0aGlzLmFjdGl2ZU1lbnUuc2Nyb2xsVG9wKGErbi1vK3IpKX0sYmx1cjpmdW5jdGlvbihlLHQpe3R8fGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLmFjdGl2ZSYmKHRoaXMuYWN0aXZlLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpLHRoaXMuYWN0aXZlPW51bGwsdGhpcy5fdHJpZ2dlcigiYmx1ciIsZSx7aXRlbTp0aGlzLmFjdGl2ZX0pKX0sX3N0YXJ0T3BlbmluZzpmdW5jdGlvbihlKXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksInRydWUiPT09ZS5hdHRyKCJhcmlhLWhpZGRlbiIpJiYodGhpcy50aW1lcj10aGlzLl9kZWxheShmdW5jdGlvbigpe3RoaXMuX2Nsb3NlKCksdGhpcy5fb3BlbihlKX0sdGhpcy5kZWxheSkpfSxfb3BlbjpmdW5jdGlvbih0KXt2YXIgaT1lLmV4dGVuZCh7b2Y6dGhpcy5hY3RpdmV9LHRoaXMub3B0aW9ucy5wb3NpdGlvbik7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuZWxlbWVudC5maW5kKCIudWktbWVudSIpLm5vdCh0LnBhcmVudHMoIi51aS1tZW51IikpLmhpZGUoKS5hdHRyKCJhcmlhLWhpZGRlbiIsInRydWUiKSx0LnNob3coKS5yZW1vdmVBdHRyKCJhcmlhLWhpZGRlbiIpLmF0dHIoImFyaWEtZXhwYW5kZWQiLCJ0cnVlIikucG9zaXRpb24oaSl9LGNvbGxhcHNlQWxsOmZ1bmN0aW9uKHQsaSl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMudGltZXI9dGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt2YXIgcz1pP3RoaXMuZWxlbWVudDplKHQmJnQudGFyZ2V0KS5jbG9zZXN0KHRoaXMuZWxlbWVudC5maW5kKCIudWktbWVudSIpKTtzLmxlbmd0aHx8KHM9dGhpcy5lbGVtZW50KSx0aGlzLl9jbG9zZShzKSx0aGlzLmJsdXIodCksdGhpcy5hY3RpdmVNZW51PXN9LHRoaXMuZGVsYXkpfSxfY2xvc2U6ZnVuY3Rpb24oZSl7ZXx8KGU9dGhpcy5hY3RpdmU/dGhpcy5hY3RpdmUucGFyZW50KCk6dGhpcy5lbGVtZW50KSxlLmZpbmQoIi51aS1tZW51IikuaGlkZSgpLmF0dHIoImFyaWEtaGlkZGVuIiwidHJ1ZSIpLmF0dHIoImFyaWEtZXhwYW5kZWQiLCJmYWxzZSIpLmVuZCgpLmZpbmQoIi51aS1zdGF0ZS1hY3RpdmUiKS5ub3QoIi51aS1zdGF0ZS1mb2N1cyIpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKX0sX2Nsb3NlT25Eb2N1bWVudENsaWNrOmZ1bmN0aW9uKHQpe3JldHVybiFlKHQudGFyZ2V0KS5jbG9zZXN0KCIudWktbWVudSIpLmxlbmd0aH0sX2lzRGl2aWRlcjpmdW5jdGlvbihlKXtyZXR1cm4hL1teXC1cdTIwMTRcdTIwMTNcc10vLnRlc3QoZS50ZXh0KCkpfSxjb2xsYXBzZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmFjdGl2ZSYmdGhpcy5hY3RpdmUucGFyZW50KCkuY2xvc2VzdCgiLnVpLW1lbnUtaXRlbSIsdGhpcy5lbGVtZW50KTt0JiZ0Lmxlbmd0aCYmKHRoaXMuX2Nsb3NlKCksdGhpcy5mb2N1cyhlLHQpKX0sZXhwYW5kOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuYWN0aXZlJiZ0aGlzLmFjdGl2ZS5jaGlsZHJlbigiLnVpLW1lbnUgIikuZmluZCh0aGlzLm9wdGlvbnMuaXRlbXMpLmZpcnN0KCk7dCYmdC5sZW5ndGgmJih0aGlzLl9vcGVuKHQucGFyZW50KCkpLHRoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7dGhpcy5mb2N1cyhlLHQpfSkpfSxuZXh0OmZ1bmN0aW9uKGUpe3RoaXMuX21vdmUoIm5leHQiLCJmaXJzdCIsZSl9LHByZXZpb3VzOmZ1bmN0aW9uKGUpe3RoaXMuX21vdmUoInByZXYiLCJsYXN0IixlKX0saXNGaXJzdEl0ZW06ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hY3RpdmUmJiF0aGlzLmFjdGl2ZS5wcmV2QWxsKCIudWktbWVudS1pdGVtIikubGVuZ3RofSxpc0xhc3RJdGVtOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWN0aXZlJiYhdGhpcy5hY3RpdmUubmV4dEFsbCgiLnVpLW1lbnUtaXRlbSIpLmxlbmd0aH0sX21vdmU6ZnVuY3Rpb24oZSx0LGkpe3ZhciBzO3RoaXMuYWN0aXZlJiYocz0iZmlyc3QiPT09ZXx8Imxhc3QiPT09ZT90aGlzLmFjdGl2ZVsiZmlyc3QiPT09ZT8icHJldkFsbCI6Im5leHRBbGwiXSgiLnVpLW1lbnUtaXRlbSIpLmVxKC0xKTp0aGlzLmFjdGl2ZVtlKyJBbGwiXSgiLnVpLW1lbnUtaXRlbSIpLmVxKDApKSxzJiZzLmxlbmd0aCYmdGhpcy5hY3RpdmV8fChzPXRoaXMuYWN0aXZlTWVudS5maW5kKHRoaXMub3B0aW9ucy5pdGVtcylbdF0oKSksdGhpcy5mb2N1cyhpLHMpfSxuZXh0UGFnZTpmdW5jdGlvbih0KXt2YXIgaSxzLG47cmV0dXJuIHRoaXMuYWN0aXZlPyh0aGlzLmlzTGFzdEl0ZW0oKXx8KHRoaXMuX2hhc1Njcm9sbCgpPyhzPXRoaXMuYWN0aXZlLm9mZnNldCgpLnRvcCxuPXRoaXMuZWxlbWVudC5oZWlnaHQoKSx0aGlzLmFjdGl2ZS5uZXh0QWxsKCIudWktbWVudS1pdGVtIikuZWFjaChmdW5jdGlvbigpe3JldHVybiBpPWUodGhpcyksMD5pLm9mZnNldCgpLnRvcC1zLW59KSx0aGlzLmZvY3VzKHQsaSkpOnRoaXMuZm9jdXModCx0aGlzLmFjdGl2ZU1lbnUuZmluZCh0aGlzLm9wdGlvbnMuaXRlbXMpW3RoaXMuYWN0aXZlPyJsYXN0IjoiZmlyc3QiXSgpKSksdm9pZCAwKToodGhpcy5uZXh0KHQpLHZvaWQgMCl9LHByZXZpb3VzUGFnZTpmdW5jdGlvbih0KXt2YXIgaSxzLG47cmV0dXJuIHRoaXMuYWN0aXZlPyh0aGlzLmlzRmlyc3RJdGVtKCl8fCh0aGlzLl9oYXNTY3JvbGwoKT8ocz10aGlzLmFjdGl2ZS5vZmZzZXQoKS50b3Asbj10aGlzLmVsZW1lbnQuaGVpZ2h0KCksdGhpcy5hY3RpdmUucHJldkFsbCgiLnVpLW1lbnUtaXRlbSIpLmVhY2goZnVuY3Rpb24oKXtyZXR1cm4gaT1lKHRoaXMpLGkub2Zmc2V0KCkudG9wLXMrbj4wfSksdGhpcy5mb2N1cyh0LGkpKTp0aGlzLmZvY3VzKHQsdGhpcy5hY3RpdmVNZW51LmZpbmQodGhpcy5vcHRpb25zLml0ZW1zKS5maXJzdCgpKSksdm9pZCAwKToodGhpcy5uZXh0KHQpLHZvaWQgMCl9LF9oYXNTY3JvbGw6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50Lm91dGVySGVpZ2h0KCk8dGhpcy5lbGVtZW50LnByb3AoInNjcm9sbEhlaWdodCIpfSxzZWxlY3Q6ZnVuY3Rpb24odCl7dGhpcy5hY3RpdmU9dGhpcy5hY3RpdmV8fGUodC50YXJnZXQpLmNsb3Nlc3QoIi51aS1tZW51LWl0ZW0iKTt2YXIgaT17aXRlbTp0aGlzLmFjdGl2ZX07dGhpcy5hY3RpdmUuaGFzKCIudWktbWVudSIpLmxlbmd0aHx8dGhpcy5jb2xsYXBzZUFsbCh0LCEwKSx0aGlzLl90cmlnZ2VyKCJzZWxlY3QiLHQsaSl9LF9maWx0ZXJNZW51SXRlbXM6ZnVuY3Rpb24odCl7dmFyIGk9dC5yZXBsYWNlKC9bXC1cW1xde30oKSorPy4sXFxcXiR8I1xzXS9nLCJcXCQmIikscz1SZWdFeHAoIl4iK2ksImkiKTtyZXR1cm4gdGhpcy5hY3RpdmVNZW51LmZpbmQodGhpcy5vcHRpb25zLml0ZW1zKS5maWx0ZXIoIi51aS1tZW51LWl0ZW0iKS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gcy50ZXN0KGUudHJpbShlKHRoaXMpLnRleHQoKSkpfSl9fSksZS53aWRnZXQoInVpLmF1dG9jb21wbGV0ZSIse3ZlcnNpb246IjEuMTEuNCIsZGVmYXVsdEVsZW1lbnQ6IjxpbnB1dD4iLG9wdGlvbnM6e2FwcGVuZFRvOm51bGwsYXV0b0ZvY3VzOiExLGRlbGF5OjMwMCxtaW5MZW5ndGg6MSxwb3NpdGlvbjp7bXk6ImxlZnQgdG9wIixhdDoibGVmdCBib3R0b20iLGNvbGxpc2lvbjoibm9uZSJ9LHNvdXJjZTpudWxsLGNoYW5nZTpudWxsLGNsb3NlOm51bGwsZm9jdXM6bnVsbCxvcGVuOm51bGwscmVzcG9uc2U6bnVsbCxzZWFyY2g6bnVsbCxzZWxlY3Q6bnVsbH0scmVxdWVzdEluZGV4OjAscGVuZGluZzowLF9jcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdCxpLHMsbj10aGlzLmVsZW1lbnRbMF0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxhPSJ0ZXh0YXJlYSI9PT1uLG89ImlucHV0Ij09PW47dGhpcy5pc011bHRpTGluZT1hPyEwOm8/ITE6dGhpcy5lbGVtZW50LnByb3AoImlzQ29udGVudEVkaXRhYmxlIiksdGhpcy52YWx1ZU1ldGhvZD10aGlzLmVsZW1lbnRbYXx8bz8idmFsIjoidGV4dCJdLHRoaXMuaXNOZXdNZW51PSEwLHRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktYXV0b2NvbXBsZXRlLWlucHV0IikuYXR0cigiYXV0b2NvbXBsZXRlIiwib2ZmIiksdGhpcy5fb24odGhpcy5lbGVtZW50LHtrZXlkb3duOmZ1bmN0aW9uKG4pe2lmKHRoaXMuZWxlbWVudC5wcm9wKCJyZWFkT25seSIpKXJldHVybiB0PSEwLHM9ITAsaT0hMCx2b2lkIDA7dD0hMSxzPSExLGk9ITE7dmFyIGE9ZS51aS5rZXlDb2RlO3N3aXRjaChuLmtleUNvZGUpe2Nhc2UgYS5QQUdFX1VQOnQ9ITAsdGhpcy5fbW92ZSgicHJldmlvdXNQYWdlIixuKTticmVhaztjYXNlIGEuUEFHRV9ET1dOOnQ9ITAsdGhpcy5fbW92ZSgibmV4dFBhZ2UiLG4pO2JyZWFrO2Nhc2UgYS5VUDp0PSEwLHRoaXMuX2tleUV2ZW50KCJwcmV2aW91cyIsbik7YnJlYWs7Y2FzZSBhLkRPV046dD0hMCx0aGlzLl9rZXlFdmVudCgibmV4dCIsbik7YnJlYWs7Y2FzZSBhLkVOVEVSOnRoaXMubWVudS5hY3RpdmUmJih0PSEwLG4ucHJldmVudERlZmF1bHQoKSx0aGlzLm1lbnUuc2VsZWN0KG4pKTticmVhaztjYXNlIGEuVEFCOnRoaXMubWVudS5hY3RpdmUmJnRoaXMubWVudS5zZWxlY3Qobik7YnJlYWs7Y2FzZSBhLkVTQ0FQRTp0aGlzLm1lbnUuZWxlbWVudC5pcygiOnZpc2libGUiKSYmKHRoaXMuaXNNdWx0aUxpbmV8fHRoaXMuX3ZhbHVlKHRoaXMudGVybSksdGhpcy5jbG9zZShuKSxuLnByZXZlbnREZWZhdWx0KCkpO2JyZWFrO2RlZmF1bHQ6aT0hMCx0aGlzLl9zZWFyY2hUaW1lb3V0KG4pfX0sa2V5cHJlc3M6ZnVuY3Rpb24ocyl7aWYodClyZXR1cm4gdD0hMSwoIXRoaXMuaXNNdWx0aUxpbmV8fHRoaXMubWVudS5lbGVtZW50LmlzKCI6dmlzaWJsZSIpKSYmcy5wcmV2ZW50RGVmYXVsdCgpLHZvaWQgMDtpZighaSl7dmFyIG49ZS51aS5rZXlDb2RlO3N3aXRjaChzLmtleUNvZGUpe2Nhc2Ugbi5QQUdFX1VQOnRoaXMuX21vdmUoInByZXZpb3VzUGFnZSIscyk7YnJlYWs7Y2FzZSBuLlBBR0VfRE9XTjp0aGlzLl9tb3ZlKCJuZXh0UGFnZSIscyk7YnJlYWs7Y2FzZSBuLlVQOnRoaXMuX2tleUV2ZW50KCJwcmV2aW91cyIscyk7YnJlYWs7Y2FzZSBuLkRPV046dGhpcy5fa2V5RXZlbnQoIm5leHQiLHMpfX19LGlucHV0OmZ1bmN0aW9uKGUpe3JldHVybiBzPyhzPSExLGUucHJldmVudERlZmF1bHQoKSx2b2lkIDApOih0aGlzLl9zZWFyY2hUaW1lb3V0KGUpLHZvaWQgMCl9LGZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5zZWxlY3RlZEl0ZW09bnVsbCx0aGlzLnByZXZpb3VzPXRoaXMuX3ZhbHVlKCl9LGJsdXI6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2FuY2VsQmx1cj8oZGVsZXRlIHRoaXMuY2FuY2VsQmx1cix2b2lkIDApOihjbGVhclRpbWVvdXQodGhpcy5zZWFyY2hpbmcpLHRoaXMuY2xvc2UoZSksdGhpcy5fY2hhbmdlKGUpLHZvaWQgMCl9fSksdGhpcy5faW5pdFNvdXJjZSgpLHRoaXMubWVudT1lKCI8dWw+IikuYWRkQ2xhc3MoInVpLWF1dG9jb21wbGV0ZSB1aS1mcm9udCIpLmFwcGVuZFRvKHRoaXMuX2FwcGVuZFRvKCkpLm1lbnUoe3JvbGU6bnVsbH0pLmhpZGUoKS5tZW51KCJpbnN0YW5jZSIpLHRoaXMuX29uKHRoaXMubWVudS5lbGVtZW50LHttb3VzZWRvd246ZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY2FuY2VsQmx1cj0hMCx0aGlzLl9kZWxheShmdW5jdGlvbigpe2RlbGV0ZSB0aGlzLmNhbmNlbEJsdXJ9KTt2YXIgaT10aGlzLm1lbnUuZWxlbWVudFswXTtlKHQudGFyZ2V0KS5jbG9zZXN0KCIudWktbWVudS1pdGVtIikubGVuZ3RofHx0aGlzLl9kZWxheShmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5kb2N1bWVudC5vbmUoIm1vdXNlZG93biIsZnVuY3Rpb24ocyl7cy50YXJnZXQ9PT10LmVsZW1lbnRbMF18fHMudGFyZ2V0PT09aXx8ZS5jb250YWlucyhpLHMudGFyZ2V0KXx8dC5jbG9zZSgpfSl9KX0sbWVudWZvY3VzOmZ1bmN0aW9uKHQsaSl7dmFyIHMsbjtyZXR1cm4gdGhpcy5pc05ld01lbnUmJih0aGlzLmlzTmV3TWVudT0hMSx0Lm9yaWdpbmFsRXZlbnQmJi9ebW91c2UvLnRlc3QodC5vcmlnaW5hbEV2ZW50LnR5cGUpKT8odGhpcy5tZW51LmJsdXIoKSx0aGlzLmRvY3VtZW50Lm9uZSgibW91c2Vtb3ZlIixmdW5jdGlvbigpe2UodC50YXJnZXQpLnRyaWdnZXIodC5vcmlnaW5hbEV2ZW50KX0pLHZvaWQgMCk6KG49aS5pdGVtLmRhdGEoInVpLWF1dG9jb21wbGV0ZS1pdGVtIiksITEhPT10aGlzLl90cmlnZ2VyKCJmb2N1cyIsdCx7aXRlbTpufSkmJnQub3JpZ2luYWxFdmVudCYmL15rZXkvLnRlc3QodC5vcmlnaW5hbEV2ZW50LnR5cGUpJiZ0aGlzLl92YWx1ZShuLnZhbHVlKSxzPWkuaXRlbS5hdHRyKCJhcmlhLWxhYmVsIil8fG4udmFsdWUscyYmZS50cmltKHMpLmxlbmd0aCYmKHRoaXMubGl2ZVJlZ2lvbi5jaGlsZHJlbigpLmhpZGUoKSxlKCI8ZGl2PiIpLnRleHQocykuYXBwZW5kVG8odGhpcy5saXZlUmVnaW9uKSksdm9pZCAwKX0sbWVudXNlbGVjdDpmdW5jdGlvbihlLHQpe3ZhciBpPXQuaXRlbS5kYXRhKCJ1aS1hdXRvY29tcGxldGUtaXRlbSIpLHM9dGhpcy5wcmV2aW91czt0aGlzLmVsZW1lbnRbMF0hPT10aGlzLmRvY3VtZW50WzBdLmFjdGl2ZUVsZW1lbnQmJih0aGlzLmVsZW1lbnQuZm9jdXMoKSx0aGlzLnByZXZpb3VzPXMsdGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt0aGlzLnByZXZpb3VzPXMsdGhpcy5zZWxlY3RlZEl0ZW09aX0pKSwhMSE9PXRoaXMuX3RyaWdnZXIoInNlbGVjdCIsZSx7aXRlbTppfSkmJnRoaXMuX3ZhbHVlKGkudmFsdWUpLHRoaXMudGVybT10aGlzLl92YWx1ZSgpLHRoaXMuY2xvc2UoZSksdGhpcy5zZWxlY3RlZEl0ZW09aX19KSx0aGlzLmxpdmVSZWdpb249ZSgiPHNwYW4+Iix7cm9sZToic3RhdHVzIiwiYXJpYS1saXZlIjoiYXNzZXJ0aXZlIiwiYXJpYS1yZWxldmFudCI6ImFkZGl0aW9ucyJ9KS5hZGRDbGFzcygidWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxlIikuYXBwZW5kVG8odGhpcy5kb2N1bWVudFswXS5ib2R5KSx0aGlzLl9vbih0aGlzLndpbmRvdyx7YmVmb3JldW5sb2FkOmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnJlbW92ZUF0dHIoImF1dG9jb21wbGV0ZSIpfX0pfSxfZGVzdHJveTpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLnNlYXJjaGluZyksdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1hdXRvY29tcGxldGUtaW5wdXQiKS5yZW1vdmVBdHRyKCJhdXRvY29tcGxldGUiKSx0aGlzLm1lbnUuZWxlbWVudC5yZW1vdmUoKSx0aGlzLmxpdmVSZWdpb24ucmVtb3ZlKCl9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXt0aGlzLl9zdXBlcihlLHQpLCJzb3VyY2UiPT09ZSYmdGhpcy5faW5pdFNvdXJjZSgpLCJhcHBlbmRUbyI9PT1lJiZ0aGlzLm1lbnUuZWxlbWVudC5hcHBlbmRUbyh0aGlzLl9hcHBlbmRUbygpKSwiZGlzYWJsZWQiPT09ZSYmdCYmdGhpcy54aHImJnRoaXMueGhyLmFib3J0KCl9LF9hcHBlbmRUbzpmdW5jdGlvbigpe3ZhciB0PXRoaXMub3B0aW9ucy5hcHBlbmRUbztyZXR1cm4gdCYmKHQ9dC5qcXVlcnl8fHQubm9kZVR5cGU/ZSh0KTp0aGlzLmRvY3VtZW50LmZpbmQodCkuZXEoMCkpLHQmJnRbMF18fCh0PXRoaXMuZWxlbWVudC5jbG9zZXN0KCIudWktZnJvbnQiKSksdC5sZW5ndGh8fCh0PXRoaXMuZG9jdW1lbnRbMF0uYm9keSksdH0sX2luaXRTb3VyY2U6ZnVuY3Rpb24oKXt2YXIgdCxpLHM9dGhpcztlLmlzQXJyYXkodGhpcy5vcHRpb25zLnNvdXJjZSk/KHQ9dGhpcy5vcHRpb25zLnNvdXJjZSx0aGlzLnNvdXJjZT1mdW5jdGlvbihpLHMpe3MoZS51aS5hdXRvY29tcGxldGUuZmlsdGVyKHQsaS50ZXJtKSl9KToic3RyaW5nIj09dHlwZW9mIHRoaXMub3B0aW9ucy5zb3VyY2U/KGk9dGhpcy5vcHRpb25zLnNvdXJjZSx0aGlzLnNvdXJjZT1mdW5jdGlvbih0LG4pe3MueGhyJiZzLnhoci5hYm9ydCgpLHMueGhyPWUuYWpheCh7dXJsOmksZGF0YTp0LGRhdGFUeXBlOiJqc29uIixzdWNjZXNzOmZ1bmN0aW9uKGUpe24oZSl9LGVycm9yOmZ1bmN0aW9uKCl7bihbXSl9fSl9KTp0aGlzLnNvdXJjZT10aGlzLm9wdGlvbnMuc291cmNlfSxfc2VhcmNoVGltZW91dDpmdW5jdGlvbihlKXtjbGVhclRpbWVvdXQodGhpcy5zZWFyY2hpbmcpLHRoaXMuc2VhcmNoaW5nPXRoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50ZXJtPT09dGhpcy5fdmFsdWUoKSxpPXRoaXMubWVudS5lbGVtZW50LmlzKCI6dmlzaWJsZSIpLHM9ZS5hbHRLZXl8fGUuY3RybEtleXx8ZS5tZXRhS2V5fHxlLnNoaWZ0S2V5OyghdHx8dCYmIWkmJiFzKSYmKHRoaXMuc2VsZWN0ZWRJdGVtPW51bGwsdGhpcy5zZWFyY2gobnVsbCxlKSl9LHRoaXMub3B0aW9ucy5kZWxheSl9LHNlYXJjaDpmdW5jdGlvbihlLHQpe3JldHVybiBlPW51bGwhPWU/ZTp0aGlzLl92YWx1ZSgpLHRoaXMudGVybT10aGlzLl92YWx1ZSgpLGUubGVuZ3RoPHRoaXMub3B0aW9ucy5taW5MZW5ndGg/dGhpcy5jbG9zZSh0KTp0aGlzLl90cmlnZ2VyKCJzZWFyY2giLHQpIT09ITE/dGhpcy5fc2VhcmNoKGUpOnZvaWQgMH0sX3NlYXJjaDpmdW5jdGlvbihlKXt0aGlzLnBlbmRpbmcrKyx0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLWF1dG9jb21wbGV0ZS1sb2FkaW5nIiksdGhpcy5jYW5jZWxTZWFyY2g9ITEsdGhpcy5zb3VyY2Uoe3Rlcm06ZX0sdGhpcy5fcmVzcG9uc2UoKSl9LF9yZXNwb25zZTpmdW5jdGlvbigpe3ZhciB0PSsrdGhpcy5yZXF1ZXN0SW5kZXg7cmV0dXJuIGUucHJveHkoZnVuY3Rpb24oZSl7dD09PXRoaXMucmVxdWVzdEluZGV4JiZ0aGlzLl9fcmVzcG9uc2UoZSksdGhpcy5wZW5kaW5nLS0sdGhpcy5wZW5kaW5nfHx0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLWF1dG9jb21wbGV0ZS1sb2FkaW5nIil9LHRoaXMpfSxfX3Jlc3BvbnNlOmZ1bmN0aW9uKGUpe2UmJihlPXRoaXMuX25vcm1hbGl6ZShlKSksdGhpcy5fdHJpZ2dlcigicmVzcG9uc2UiLG51bGwse2NvbnRlbnQ6ZX0pLCF0aGlzLm9wdGlvbnMuZGlzYWJsZWQmJmUmJmUubGVuZ3RoJiYhdGhpcy5jYW5jZWxTZWFyY2g/KHRoaXMuX3N1Z2dlc3QoZSksdGhpcy5fdHJpZ2dlcigib3BlbiIpKTp0aGlzLl9jbG9zZSgpfSxjbG9zZTpmdW5jdGlvbihlKXt0aGlzLmNhbmNlbFNlYXJjaD0hMCx0aGlzLl9jbG9zZShlKX0sX2Nsb3NlOmZ1bmN0aW9uKGUpe3RoaXMubWVudS5lbGVtZW50LmlzKCI6dmlzaWJsZSIpJiYodGhpcy5tZW51LmVsZW1lbnQuaGlkZSgpLHRoaXMubWVudS5ibHVyKCksdGhpcy5pc05ld01lbnU9ITAsdGhpcy5fdHJpZ2dlcigiY2xvc2UiLGUpKX0sX2NoYW5nZTpmdW5jdGlvbihlKXt0aGlzLnByZXZpb3VzIT09dGhpcy5fdmFsdWUoKSYmdGhpcy5fdHJpZ2dlcigiY2hhbmdlIixlLHtpdGVtOnRoaXMuc2VsZWN0ZWRJdGVtfSl9LF9ub3JtYWxpemU6ZnVuY3Rpb24odCl7cmV0dXJuIHQubGVuZ3RoJiZ0WzBdLmxhYmVsJiZ0WzBdLnZhbHVlP3Q6ZS5tYXAodCxmdW5jdGlvbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/e2xhYmVsOnQsdmFsdWU6dH06ZS5leHRlbmQoe30sdCx7bGFiZWw6dC5sYWJlbHx8dC52YWx1ZSx2YWx1ZTp0LnZhbHVlfHx0LmxhYmVsfSl9KX0sX3N1Z2dlc3Q6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5tZW51LmVsZW1lbnQuZW1wdHkoKTt0aGlzLl9yZW5kZXJNZW51KGksdCksdGhpcy5pc05ld01lbnU9ITAsdGhpcy5tZW51LnJlZnJlc2goKSxpLnNob3coKSx0aGlzLl9yZXNpemVNZW51KCksaS5wb3NpdGlvbihlLmV4dGVuZCh7b2Y6dGhpcy5lbGVtZW50fSx0aGlzLm9wdGlvbnMucG9zaXRpb24pKSx0aGlzLm9wdGlvbnMuYXV0b0ZvY3VzJiZ0aGlzLm1lbnUubmV4dCgpfSxfcmVzaXplTWVudTpmdW5jdGlvbigpe3ZhciBlPXRoaXMubWVudS5lbGVtZW50O2Uub3V0ZXJXaWR0aChNYXRoLm1heChlLndpZHRoKCIiKS5vdXRlcldpZHRoKCkrMSx0aGlzLmVsZW1lbnQub3V0ZXJXaWR0aCgpKSl9LF9yZW5kZXJNZW51OmZ1bmN0aW9uKHQsaSl7dmFyIHM9dGhpcztlLmVhY2goaSxmdW5jdGlvbihlLGkpe3MuX3JlbmRlckl0ZW1EYXRhKHQsaSl9KX0sX3JlbmRlckl0ZW1EYXRhOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX3JlbmRlckl0ZW0oZSx0KS5kYXRhKCJ1aS1hdXRvY29tcGxldGUtaXRlbSIsdCl9LF9yZW5kZXJJdGVtOmZ1bmN0aW9uKHQsaSl7cmV0dXJuIGUoIjxsaT4iKS50ZXh0KGkubGFiZWwpLmFwcGVuZFRvKHQpfSxfbW92ZTpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLm1lbnUuZWxlbWVudC5pcygiOnZpc2libGUiKT90aGlzLm1lbnUuaXNGaXJzdEl0ZW0oKSYmL15wcmV2aW91cy8udGVzdChlKXx8dGhpcy5tZW51LmlzTGFzdEl0ZW0oKSYmL15uZXh0Ly50ZXN0KGUpPyh0aGlzLmlzTXVsdGlMaW5lfHx0aGlzLl92YWx1ZSh0aGlzLnRlcm0pLHRoaXMubWVudS5ibHVyKCksdm9pZCAwKToodGhpcy5tZW51W2VdKHQpLHZvaWQgMCk6KHRoaXMuc2VhcmNoKG51bGwsdCksdm9pZCAwKX0sd2lkZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWVudS5lbGVtZW50fSxfdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZU1ldGhvZC5hcHBseSh0aGlzLmVsZW1lbnQsYXJndW1lbnRzKX0sX2tleUV2ZW50OmZ1bmN0aW9uKGUsdCl7KCF0aGlzLmlzTXVsdGlMaW5lfHx0aGlzLm1lbnUuZWxlbWVudC5pcygiOnZpc2libGUiKSkmJih0aGlzLl9tb3ZlKGUsdCksdC5wcmV2ZW50RGVmYXVsdCgpKX19KSxlLmV4dGVuZChlLnVpLmF1dG9jb21wbGV0ZSx7ZXNjYXBlUmVnZXg6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSgvW1wtXFtcXXt9KCkqKz8uLFxcXF4kfCNcc10vZywiXFwkJiIpfSxmaWx0ZXI6ZnVuY3Rpb24odCxpKXt2YXIgcz1SZWdFeHAoZS51aS5hdXRvY29tcGxldGUuZXNjYXBlUmVnZXgoaSksImkiKTtyZXR1cm4gZS5ncmVwKHQsZnVuY3Rpb24oZSl7cmV0dXJuIHMudGVzdChlLmxhYmVsfHxlLnZhbHVlfHxlKX0pfX0pLGUud2lkZ2V0KCJ1aS5hdXRvY29tcGxldGUiLGUudWkuYXV0b2NvbXBsZXRlLHtvcHRpb25zOnttZXNzYWdlczp7bm9SZXN1bHRzOiJObyBzZWFyY2ggcmVzdWx0cy4iLHJlc3VsdHM6ZnVuY3Rpb24oZSl7cmV0dXJuIGUrKGU+MT8iIHJlc3VsdHMgYXJlIjoiIHJlc3VsdCBpcyIpKyIgYXZhaWxhYmxlLCB1c2UgdXAgYW5kIGRvd24gYXJyb3cga2V5cyB0byBuYXZpZ2F0ZS4ifX19LF9fcmVzcG9uc2U6ZnVuY3Rpb24odCl7dmFyIGk7dGhpcy5fc3VwZXJBcHBseShhcmd1bWVudHMpLHRoaXMub3B0aW9ucy5kaXNhYmxlZHx8dGhpcy5jYW5jZWxTZWFyY2h8fChpPXQmJnQubGVuZ3RoP3RoaXMub3B0aW9ucy5tZXNzYWdlcy5yZXN1bHRzKHQubGVuZ3RoKTp0aGlzLm9wdGlvbnMubWVzc2FnZXMubm9SZXN1bHRzLHRoaXMubGl2ZVJlZ2lvbi5jaGlsZHJlbigpLmhpZGUoKSxlKCI8ZGl2PiIpLnRleHQoaSkuYXBwZW5kVG8odGhpcy5saXZlUmVnaW9uKSl9fSksZS51aS5hdXRvY29tcGxldGU7dmFyIHIsaD0idWktYnV0dG9uIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwiLGw9InVpLWJ1dHRvbi1pY29ucy1vbmx5IHVpLWJ1dHRvbi1pY29uLW9ubHkgdWktYnV0dG9uLXRleHQtaWNvbnMgdWktYnV0dG9uLXRleHQtaWNvbi1wcmltYXJ5IHVpLWJ1dHRvbi10ZXh0LWljb24tc2Vjb25kYXJ5IHVpLWJ1dHRvbi10ZXh0LW9ubHkiLHU9ZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmZpbmQoIjp1aS1idXR0b24iKS5idXR0b24oInJlZnJlc2giKX0sMSl9LGQ9ZnVuY3Rpb24odCl7dmFyIGk9dC5uYW1lLHM9dC5mb3JtLG49ZShbXSk7cmV0dXJuIGkmJihpPWkucmVwbGFjZSgvJy9nLCJcXCciKSxuPXM/ZShzKS5maW5kKCJbbmFtZT0nIitpKyInXVt0eXBlPXJhZGlvXSIpOmUoIltuYW1lPSciK2krIiddW3R5cGU9cmFkaW9dIix0Lm93bmVyRG9jdW1lbnQpLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiF0aGlzLmZvcm19KSksbn07ZS53aWRnZXQoInVpLmJ1dHRvbiIse3ZlcnNpb246IjEuMTEuNCIsZGVmYXVsdEVsZW1lbnQ6IjxidXR0b24+IixvcHRpb25zOntkaXNhYmxlZDpudWxsLHRleHQ6ITAsbGFiZWw6bnVsbCxpY29uczp7cHJpbWFyeTpudWxsLHNlY29uZGFyeTpudWxsfX0sX2NyZWF0ZTpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC5jbG9zZXN0KCJmb3JtIikudW5iaW5kKCJyZXNldCIrdGhpcy5ldmVudE5hbWVzcGFjZSkuYmluZCgicmVzZXQiK3RoaXMuZXZlbnROYW1lc3BhY2UsdSksImJvb2xlYW4iIT10eXBlb2YgdGhpcy5vcHRpb25zLmRpc2FibGVkP3RoaXMub3B0aW9ucy5kaXNhYmxlZD0hIXRoaXMuZWxlbWVudC5wcm9wKCJkaXNhYmxlZCIpOnRoaXMuZWxlbWVudC5wcm9wKCJkaXNhYmxlZCIsdGhpcy5vcHRpb25zLmRpc2FibGVkKSx0aGlzLl9kZXRlcm1pbmVCdXR0b25UeXBlKCksdGhpcy5oYXNUaXRsZT0hIXRoaXMuYnV0dG9uRWxlbWVudC5hdHRyKCJ0aXRsZSIpO3ZhciB0PXRoaXMsaT10aGlzLm9wdGlvbnMscz0iY2hlY2tib3giPT09dGhpcy50eXBlfHwicmFkaW8iPT09dGhpcy50eXBlLG49cz8iIjoidWktc3RhdGUtYWN0aXZlIjtudWxsPT09aS5sYWJlbCYmKGkubGFiZWw9ImlucHV0Ij09PXRoaXMudHlwZT90aGlzLmJ1dHRvbkVsZW1lbnQudmFsKCk6dGhpcy5idXR0b25FbGVtZW50Lmh0bWwoKSksdGhpcy5faG92ZXJhYmxlKHRoaXMuYnV0dG9uRWxlbWVudCksdGhpcy5idXR0b25FbGVtZW50LmFkZENsYXNzKGgpLmF0dHIoInJvbGUiLCJidXR0b24iKS5iaW5kKCJtb3VzZWVudGVyIit0aGlzLmV2ZW50TmFtZXNwYWNlLGZ1bmN0aW9uKCl7aS5kaXNhYmxlZHx8dGhpcz09PXImJmUodGhpcykuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpfSkuYmluZCgibW91c2VsZWF2ZSIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbigpe2kuZGlzYWJsZWR8fGUodGhpcykucmVtb3ZlQ2xhc3Mobil9KS5iaW5kKCJjbGljayIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbihlKXtpLmRpc2FibGVkJiYoZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCkpfSksdGhpcy5fb24oe2ZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5idXR0b25FbGVtZW50LmFkZENsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpfSxibHVyOmZ1bmN0aW9uKCl7dGhpcy5idXR0b25FbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpfX0pLHMmJnRoaXMuZWxlbWVudC5iaW5kKCJjaGFuZ2UiK3RoaXMuZXZlbnROYW1lc3BhY2UsZnVuY3Rpb24oKXt0LnJlZnJlc2goKX0pLCJjaGVja2JveCI9PT10aGlzLnR5cGU/dGhpcy5idXR0b25FbGVtZW50LmJpbmQoImNsaWNrIit0aGlzLmV2ZW50TmFtZXNwYWNlLGZ1bmN0aW9uKCl7cmV0dXJuIGkuZGlzYWJsZWQ/ITE6dm9pZCAwfSk6InJhZGlvIj09PXRoaXMudHlwZT90aGlzLmJ1dHRvbkVsZW1lbnQuYmluZCgiY2xpY2siK3RoaXMuZXZlbnROYW1lc3BhY2UsZnVuY3Rpb24oKXtpZihpLmRpc2FibGVkKXJldHVybiExO2UodGhpcykuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLHQuYnV0dG9uRWxlbWVudC5hdHRyKCJhcmlhLXByZXNzZWQiLCJ0cnVlIik7dmFyIHM9dC5lbGVtZW50WzBdO2Qocykubm90KHMpLm1hcChmdW5jdGlvbigpe3JldHVybiBlKHRoaXMpLmJ1dHRvbigid2lkZ2V0IilbMF19KS5yZW1vdmVDbGFzcygidWktc3RhdGUtYWN0aXZlIikuYXR0cigiYXJpYS1wcmVzc2VkIiwiZmFsc2UiKX0pOih0aGlzLmJ1dHRvbkVsZW1lbnQuYmluZCgibW91c2Vkb3duIit0aGlzLmV2ZW50TmFtZXNwYWNlLGZ1bmN0aW9uKCl7cmV0dXJuIGkuZGlzYWJsZWQ/ITE6KGUodGhpcykuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLHI9dGhpcyx0LmRvY3VtZW50Lm9uZSgibW91c2V1cCIsZnVuY3Rpb24oKXtyPW51bGx9KSx2b2lkIDApfSkuYmluZCgibW91c2V1cCIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbigpe3JldHVybiBpLmRpc2FibGVkPyExOihlKHRoaXMpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKSx2b2lkIDApfSkuYmluZCgia2V5ZG93biIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbih0KXtyZXR1cm4gaS5kaXNhYmxlZD8hMTooKHQua2V5Q29kZT09PWUudWkua2V5Q29kZS5TUEFDRXx8dC5rZXlDb2RlPT09ZS51aS5rZXlDb2RlLkVOVEVSKSYmZSh0aGlzKS5hZGRDbGFzcygidWktc3RhdGUtYWN0aXZlIiksdm9pZCAwKX0pLmJpbmQoImtleXVwIit0aGlzLmV2ZW50TmFtZXNwYWNlKyIgYmx1ciIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbigpe2UodGhpcykucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpfSksdGhpcy5idXR0b25FbGVtZW50LmlzKCJhIikmJnRoaXMuYnV0dG9uRWxlbWVudC5rZXl1cChmdW5jdGlvbih0KXt0LmtleUNvZGU9PT1lLnVpLmtleUNvZGUuU1BBQ0UmJmUodGhpcykuY2xpY2soKX0pKSx0aGlzLl9zZXRPcHRpb24oImRpc2FibGVkIixpLmRpc2FibGVkKSx0aGlzLl9yZXNldEJ1dHRvbigpfSxfZGV0ZXJtaW5lQnV0dG9uVHlwZTpmdW5jdGlvbigpe3ZhciBlLHQsaTt0aGlzLnR5cGU9dGhpcy5lbGVtZW50LmlzKCJbdHlwZT1jaGVja2JveF0iKT8iY2hlY2tib3giOnRoaXMuZWxlbWVudC5pcygiW3R5cGU9cmFkaW9dIik/InJhZGlvIjp0aGlzLmVsZW1lbnQuaXMoImlucHV0Iik/ImlucHV0IjoiYnV0dG9uIiwiY2hlY2tib3giPT09dGhpcy50eXBlfHwicmFkaW8iPT09dGhpcy50eXBlPyhlPXRoaXMuZWxlbWVudC5wYXJlbnRzKCkubGFzdCgpLHQ9ImxhYmVsW2Zvcj0nIit0aGlzLmVsZW1lbnQuYXR0cigiaWQiKSsiJ10iLHRoaXMuYnV0dG9uRWxlbWVudD1lLmZpbmQodCksdGhpcy5idXR0b25FbGVtZW50Lmxlbmd0aHx8KGU9ZS5sZW5ndGg/ZS5zaWJsaW5ncygpOnRoaXMuZWxlbWVudC5zaWJsaW5ncygpLHRoaXMuYnV0dG9uRWxlbWVudD1lLmZpbHRlcih0KSx0aGlzLmJ1dHRvbkVsZW1lbnQubGVuZ3RofHwodGhpcy5idXR0b25FbGVtZW50PWUuZmluZCh0KSkpLHRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxlIiksaT10aGlzLmVsZW1lbnQuaXMoIjpjaGVja2VkIiksaSYmdGhpcy5idXR0b25FbGVtZW50LmFkZENsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKSx0aGlzLmJ1dHRvbkVsZW1lbnQucHJvcCgiYXJpYS1wcmVzc2VkIixpKSk6dGhpcy5idXR0b25FbGVtZW50PXRoaXMuZWxlbWVudH0sd2lkZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYnV0dG9uRWxlbWVudH0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLWhlbHBlci1oaWRkZW4tYWNjZXNzaWJsZSIpLHRoaXMuYnV0dG9uRWxlbWVudC5yZW1vdmVDbGFzcyhoKyIgdWktc3RhdGUtYWN0aXZlICIrbCkucmVtb3ZlQXR0cigicm9sZSIpLnJlbW92ZUF0dHIoImFyaWEtcHJlc3NlZCIpLmh0bWwodGhpcy5idXR0b25FbGVtZW50LmZpbmQoIi51aS1idXR0b24tdGV4dCIpLmh0bWwoKSksdGhpcy5oYXNUaXRsZXx8dGhpcy5idXR0b25FbGVtZW50LnJlbW92ZUF0dHIoInRpdGxlIil9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fc3VwZXIoZSx0KSwiZGlzYWJsZWQiPT09ZT8odGhpcy53aWRnZXQoKS50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLCEhdCksdGhpcy5lbGVtZW50LnByb3AoImRpc2FibGVkIiwhIXQpLHQmJigiY2hlY2tib3giPT09dGhpcy50eXBlfHwicmFkaW8iPT09dGhpcy50eXBlP3RoaXMuYnV0dG9uRWxlbWVudC5yZW1vdmVDbGFzcygidWktc3RhdGUtZm9jdXMiKTp0aGlzLmJ1dHRvbkVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWZvY3VzIHVpLXN0YXRlLWFjdGl2ZSIpKSx2b2lkIDApOih0aGlzLl9yZXNldEJ1dHRvbigpLHZvaWQgMCl9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVsZW1lbnQuaXMoImlucHV0LCBidXR0b24iKT90aGlzLmVsZW1lbnQuaXMoIjpkaXNhYmxlZCIpOnRoaXMuZWxlbWVudC5oYXNDbGFzcygidWktYnV0dG9uLWRpc2FibGVkIik7dCE9PXRoaXMub3B0aW9ucy5kaXNhYmxlZCYmdGhpcy5fc2V0T3B0aW9uKCJkaXNhYmxlZCIsdCksInJhZGlvIj09PXRoaXMudHlwZT9kKHRoaXMuZWxlbWVudFswXSkuZWFjaChmdW5jdGlvbigpe2UodGhpcykuaXMoIjpjaGVja2VkIik/ZSh0aGlzKS5idXR0b24oIndpZGdldCIpLmFkZENsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKS5hdHRyKCJhcmlhLXByZXNzZWQiLCJ0cnVlIik6ZSh0aGlzKS5idXR0b24oIndpZGdldCIpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKS5hdHRyKCJhcmlhLXByZXNzZWQiLCJmYWxzZSIpfSk6ImNoZWNrYm94Ij09PXRoaXMudHlwZSYmKHRoaXMuZWxlbWVudC5pcygiOmNoZWNrZWQiKT90aGlzLmJ1dHRvbkVsZW1lbnQuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLmF0dHIoImFyaWEtcHJlc3NlZCIsInRydWUiKTp0aGlzLmJ1dHRvbkVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLmF0dHIoImFyaWEtcHJlc3NlZCIsImZhbHNlIikpfSxfcmVzZXRCdXR0b246ZnVuY3Rpb24oKXtpZigiaW5wdXQiPT09dGhpcy50eXBlKXJldHVybiB0aGlzLm9wdGlvbnMubGFiZWwmJnRoaXMuZWxlbWVudC52YWwodGhpcy5vcHRpb25zLmxhYmVsKSx2b2lkIDA7dmFyIHQ9dGhpcy5idXR0b25FbGVtZW50LnJlbW92ZUNsYXNzKGwpLGk9ZSgiPHNwYW4+PC9zcGFuPiIsdGhpcy5kb2N1bWVudFswXSkuYWRkQ2xhc3MoInVpLWJ1dHRvbi10ZXh0IikuaHRtbCh0aGlzLm9wdGlvbnMubGFiZWwpLmFwcGVuZFRvKHQuZW1wdHkoKSkudGV4dCgpLHM9dGhpcy5vcHRpb25zLmljb25zLG49cy5wcmltYXJ5JiZzLnNlY29uZGFyeSxhPVtdO3MucHJpbWFyeXx8cy5zZWNvbmRhcnk/KHRoaXMub3B0aW9ucy50ZXh0JiZhLnB1c2goInVpLWJ1dHRvbi10ZXh0LWljb24iKyhuPyJzIjpzLnByaW1hcnk/Ii1wcmltYXJ5IjoiLXNlY29uZGFyeSIpKSxzLnByaW1hcnkmJnQucHJlcGVuZCgiPHNwYW4gY2xhc3M9J3VpLWJ1dHRvbi1pY29uLXByaW1hcnkgdWktaWNvbiAiK3MucHJpbWFyeSsiJz48L3NwYW4+Iikscy5zZWNvbmRhcnkmJnQuYXBwZW5kKCI8c3BhbiBjbGFzcz0ndWktYnV0dG9uLWljb24tc2Vjb25kYXJ5IHVpLWljb24gIitzLnNlY29uZGFyeSsiJz48L3NwYW4+IiksdGhpcy5vcHRpb25zLnRleHR8fChhLnB1c2gobj8idWktYnV0dG9uLWljb25zLW9ubHkiOiJ1aS1idXR0b24taWNvbi1vbmx5IiksdGhpcy5oYXNUaXRsZXx8dC5hdHRyKCJ0aXRsZSIsZS50cmltKGkpKSkpOmEucHVzaCgidWktYnV0dG9uLXRleHQtb25seSIpLHQuYWRkQ2xhc3MoYS5qb2luKCIgIikpfX0pLGUud2lkZ2V0KCJ1aS5idXR0b25zZXQiLHt2ZXJzaW9uOiIxLjExLjQiLG9wdGlvbnM6e2l0ZW1zOiJidXR0b24sIGlucHV0W3R5cGU9YnV0dG9uXSwgaW5wdXRbdHlwZT1zdWJtaXRdLCBpbnB1dFt0eXBlPXJlc2V0XSwgaW5wdXRbdHlwZT1jaGVja2JveF0sIGlucHV0W3R5cGU9cmFkaW9dLCBhLCA6ZGF0YSh1aS1idXR0b24pIn0sX2NyZWF0ZTpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC5hZGRDbGFzcygidWktYnV0dG9uc2V0Iil9LF9pbml0OmZ1bmN0aW9uKCl7dGhpcy5yZWZyZXNoKCl9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXsiZGlzYWJsZWQiPT09ZSYmdGhpcy5idXR0b25zLmJ1dHRvbigib3B0aW9uIixlLHQpLHRoaXMuX3N1cGVyKGUsdCl9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdD0icnRsIj09PXRoaXMuZWxlbWVudC5jc3MoImRpcmVjdGlvbiIpLGk9dGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLml0ZW1zKSxzPWkuZmlsdGVyKCI6dWktYnV0dG9uIik7aS5ub3QoIjp1aS1idXR0b24iKS5idXR0b24oKSxzLmJ1dHRvbigicmVmcmVzaCIpLHRoaXMuYnV0dG9ucz1pLm1hcChmdW5jdGlvbigpe3JldHVybiBlKHRoaXMpLmJ1dHRvbigid2lkZ2V0IilbMF19KS5yZW1vdmVDbGFzcygidWktY29ybmVyLWFsbCB1aS1jb3JuZXItbGVmdCB1aS1jb3JuZXItcmlnaHQiKS5maWx0ZXIoIjpmaXJzdCIpLmFkZENsYXNzKHQ/InVpLWNvcm5lci1yaWdodCI6InVpLWNvcm5lci1sZWZ0IikuZW5kKCkuZmlsdGVyKCI6bGFzdCIpLmFkZENsYXNzKHQ/InVpLWNvcm5lci1sZWZ0IjoidWktY29ybmVyLXJpZ2h0IikuZW5kKCkuZW5kKCl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1idXR0b25zZXQiKSx0aGlzLmJ1dHRvbnMubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIGUodGhpcykuYnV0dG9uKCJ3aWRnZXQiKVswXX0pLnJlbW92ZUNsYXNzKCJ1aS1jb3JuZXItbGVmdCB1aS1jb3JuZXItcmlnaHQiKS5lbmQoKS5idXR0b24oImRlc3Ryb3kiKX19KSxlLnVpLmJ1dHRvbixlLndpZGdldCgidWkuZGlhbG9nIix7dmVyc2lvbjoiMS4xMS40IixvcHRpb25zOnthcHBlbmRUbzoiYm9keSIsYXV0b09wZW46ITAsYnV0dG9uczpbXSxjbG9zZU9uRXNjYXBlOiEwLGNsb3NlVGV4dDoiQ2xvc2UiLGRpYWxvZ0NsYXNzOiIiLGRyYWdnYWJsZTohMCxoaWRlOm51bGwsaGVpZ2h0OiJhdXRvIixtYXhIZWlnaHQ6bnVsbCxtYXhXaWR0aDpudWxsLG1pbkhlaWdodDoxNTAsbWluV2lkdGg6MTUwLG1vZGFsOiExLHBvc2l0aW9uOntteToiY2VudGVyIixhdDoiY2VudGVyIixvZjp3aW5kb3csY29sbGlzaW9uOiJmaXQiLHVzaW5nOmZ1bmN0aW9uKHQpe3ZhciBpPWUodGhpcykuY3NzKHQpLm9mZnNldCgpLnRvcDswPmkmJmUodGhpcykuY3NzKCJ0b3AiLHQudG9wLWkpfX0scmVzaXphYmxlOiEwLHNob3c6bnVsbCx0aXRsZTpudWxsLHdpZHRoOjMwMCxiZWZvcmVDbG9zZTpudWxsLGNsb3NlOm51bGwsZHJhZzpudWxsLGRyYWdTdGFydDpudWxsLGRyYWdTdG9wOm51bGwsZm9jdXM6bnVsbCxvcGVuOm51bGwscmVzaXplOm51bGwscmVzaXplU3RhcnQ6bnVsbCxyZXNpemVTdG9wOm51bGx9LHNpemVSZWxhdGVkT3B0aW9uczp7YnV0dG9uczohMCxoZWlnaHQ6ITAsbWF4SGVpZ2h0OiEwLG1heFdpZHRoOiEwLG1pbkhlaWdodDohMCxtaW5XaWR0aDohMCx3aWR0aDohMH0scmVzaXphYmxlUmVsYXRlZE9wdGlvbnM6e21heEhlaWdodDohMCxtYXhXaWR0aDohMCxtaW5IZWlnaHQ6ITAsbWluV2lkdGg6ITB9LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLm9yaWdpbmFsQ3NzPXtkaXNwbGF5OnRoaXMuZWxlbWVudFswXS5zdHlsZS5kaXNwbGF5LHdpZHRoOnRoaXMuZWxlbWVudFswXS5zdHlsZS53aWR0aCxtaW5IZWlnaHQ6dGhpcy5lbGVtZW50WzBdLnN0eWxlLm1pbkhlaWdodCxtYXhIZWlnaHQ6dGhpcy5lbGVtZW50WzBdLnN0eWxlLm1heEhlaWdodCxoZWlnaHQ6dGhpcy5lbGVtZW50WzBdLnN0eWxlLmhlaWdodH0sdGhpcy5vcmlnaW5hbFBvc2l0aW9uPXtwYXJlbnQ6dGhpcy5lbGVtZW50LnBhcmVudCgpLGluZGV4OnRoaXMuZWxlbWVudC5wYXJlbnQoKS5jaGlsZHJlbigpLmluZGV4KHRoaXMuZWxlbWVudCl9LHRoaXMub3JpZ2luYWxUaXRsZT10aGlzLmVsZW1lbnQuYXR0cigidGl0bGUiKSx0aGlzLm9wdGlvbnMudGl0bGU9dGhpcy5vcHRpb25zLnRpdGxlfHx0aGlzLm9yaWdpbmFsVGl0bGUsdGhpcy5fY3JlYXRlV3JhcHBlcigpLHRoaXMuZWxlbWVudC5zaG93KCkucmVtb3ZlQXR0cigidGl0bGUiKS5hZGRDbGFzcygidWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiKS5hcHBlbmRUbyh0aGlzLnVpRGlhbG9nKSx0aGlzLl9jcmVhdGVUaXRsZWJhcigpLHRoaXMuX2NyZWF0ZUJ1dHRvblBhbmUoKSx0aGlzLm9wdGlvbnMuZHJhZ2dhYmxlJiZlLmZuLmRyYWdnYWJsZSYmdGhpcy5fbWFrZURyYWdnYWJsZSgpLHRoaXMub3B0aW9ucy5yZXNpemFibGUmJmUuZm4ucmVzaXphYmxlJiZ0aGlzLl9tYWtlUmVzaXphYmxlKCksdGhpcy5faXNPcGVuPSExLHRoaXMuX3RyYWNrRm9jdXMoKX0sX2luaXQ6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMuYXV0b09wZW4mJnRoaXMub3BlbigpfSxfYXBwZW5kVG86ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMuYXBwZW5kVG87cmV0dXJuIHQmJih0LmpxdWVyeXx8dC5ub2RlVHlwZSk/ZSh0KTp0aGlzLmRvY3VtZW50LmZpbmQodHx8ImJvZHkiKS5lcSgwKX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXMub3JpZ2luYWxQb3NpdGlvbjt0aGlzLl91bnRyYWNrSW5zdGFuY2UoKSx0aGlzLl9kZXN0cm95T3ZlcmxheSgpLHRoaXMuZWxlbWVudC5yZW1vdmVVbmlxdWVJZCgpLnJlbW92ZUNsYXNzKCJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCIpLmNzcyh0aGlzLm9yaWdpbmFsQ3NzKS5kZXRhY2goKSx0aGlzLnVpRGlhbG9nLnN0b3AoITAsITApLnJlbW92ZSgpLHRoaXMub3JpZ2luYWxUaXRsZSYmdGhpcy5lbGVtZW50LmF0dHIoInRpdGxlIix0aGlzLm9yaWdpbmFsVGl0bGUpLGU9dC5wYXJlbnQuY2hpbGRyZW4oKS5lcSh0LmluZGV4KSxlLmxlbmd0aCYmZVswXSE9PXRoaXMuZWxlbWVudFswXT9lLmJlZm9yZSh0aGlzLmVsZW1lbnQpOnQucGFyZW50LmFwcGVuZCh0aGlzLmVsZW1lbnQpfSx3aWRnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51aURpYWxvZ30sZGlzYWJsZTplLm5vb3AsZW5hYmxlOmUubm9vcCxjbG9zZTpmdW5jdGlvbih0KXt2YXIgaSxzPXRoaXM7aWYodGhpcy5faXNPcGVuJiZ0aGlzLl90cmlnZ2VyKCJiZWZvcmVDbG9zZSIsdCkhPT0hMSl7aWYodGhpcy5faXNPcGVuPSExLHRoaXMuX2ZvY3VzZWRFbGVtZW50PW51bGwsdGhpcy5fZGVzdHJveU92ZXJsYXkoKSx0aGlzLl91bnRyYWNrSW5zdGFuY2UoKSwhdGhpcy5vcGVuZXIuZmlsdGVyKCI6Zm9jdXNhYmxlIikuZm9jdXMoKS5sZW5ndGgpdHJ5e2k9dGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50LGkmJiJib2R5IiE9PWkubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmZShpKS5ibHVyKCl9Y2F0Y2gobil7fXRoaXMuX2hpZGUodGhpcy51aURpYWxvZyx0aGlzLm9wdGlvbnMuaGlkZSxmdW5jdGlvbigpe3MuX3RyaWdnZXIoImNsb3NlIix0KX0pfX0saXNPcGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2lzT3Blbn0sbW92ZVRvVG9wOmZ1bmN0aW9uKCl7dGhpcy5fbW92ZVRvVG9wKCl9LF9tb3ZlVG9Ub3A6ZnVuY3Rpb24odCxpKXt2YXIgcz0hMSxuPXRoaXMudWlEaWFsb2cuc2libGluZ3MoIi51aS1mcm9udDp2aXNpYmxlIikubWFwKGZ1bmN0aW9uKCl7cmV0dXJuK2UodGhpcykuY3NzKCJ6LWluZGV4Iil9KS5nZXQoKSxhPU1hdGgubWF4LmFwcGx5KG51bGwsbik7cmV0dXJuIGE+PSt0aGlzLnVpRGlhbG9nLmNzcygiei1pbmRleCIpJiYodGhpcy51aURpYWxvZy5jc3MoInotaW5kZXgiLGErMSkscz0hMCkscyYmIWkmJnRoaXMuX3RyaWdnZXIoImZvY3VzIix0KSxzfSxvcGVuOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5faXNPcGVuPyh0aGlzLl9tb3ZlVG9Ub3AoKSYmdGhpcy5fZm9jdXNUYWJiYWJsZSgpLHZvaWQgMCk6KHRoaXMuX2lzT3Blbj0hMCx0aGlzLm9wZW5lcj1lKHRoaXMuZG9jdW1lbnRbMF0uYWN0aXZlRWxlbWVudCksdGhpcy5fc2l6ZSgpLHRoaXMuX3Bvc2l0aW9uKCksdGhpcy5fY3JlYXRlT3ZlcmxheSgpLHRoaXMuX21vdmVUb1RvcChudWxsLCEwKSx0aGlzLm92ZXJsYXkmJnRoaXMub3ZlcmxheS5jc3MoInotaW5kZXgiLHRoaXMudWlEaWFsb2cuY3NzKCJ6LWluZGV4IiktMSksdGhpcy5fc2hvdyh0aGlzLnVpRGlhbG9nLHRoaXMub3B0aW9ucy5zaG93LGZ1bmN0aW9uKCl7dC5fZm9jdXNUYWJiYWJsZSgpLHQuX3RyaWdnZXIoImZvY3VzIil9KSx0aGlzLl9tYWtlRm9jdXNUYXJnZXQoKSx0aGlzLl90cmlnZ2VyKCJvcGVuIiksdm9pZCAwKX0sX2ZvY3VzVGFiYmFibGU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9mb2N1c2VkRWxlbWVudDtlfHwoZT10aGlzLmVsZW1lbnQuZmluZCgiW2F1dG9mb2N1c10iKSksZS5sZW5ndGh8fChlPXRoaXMuZWxlbWVudC5maW5kKCI6dGFiYmFibGUiKSksZS5sZW5ndGh8fChlPXRoaXMudWlEaWFsb2dCdXR0b25QYW5lLmZpbmQoIjp0YWJiYWJsZSIpKSxlLmxlbmd0aHx8KGU9dGhpcy51aURpYWxvZ1RpdGxlYmFyQ2xvc2UuZmlsdGVyKCI6dGFiYmFibGUiKSksZS5sZW5ndGh8fChlPXRoaXMudWlEaWFsb2cpLGUuZXEoMCkuZm9jdXMoKX0sX2tlZXBGb2N1czpmdW5jdGlvbih0KXtmdW5jdGlvbiBpKCl7dmFyIHQ9dGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50LGk9dGhpcy51aURpYWxvZ1swXT09PXR8fGUuY29udGFpbnModGhpcy51aURpYWxvZ1swXSx0KTtpfHx0aGlzLl9mb2N1c1RhYmJhYmxlKCl9dC5wcmV2ZW50RGVmYXVsdCgpLGkuY2FsbCh0aGlzKSx0aGlzLl9kZWxheShpKX0sX2NyZWF0ZVdyYXBwZXI6ZnVuY3Rpb24oKXt0aGlzLnVpRGlhbG9nPWUoIjxkaXY+IikuYWRkQ2xhc3MoInVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1mcm9udCAiK3RoaXMub3B0aW9ucy5kaWFsb2dDbGFzcykuaGlkZSgpLmF0dHIoe3RhYkluZGV4Oi0xLHJvbGU6ImRpYWxvZyJ9KS5hcHBlbmRUbyh0aGlzLl9hcHBlbmRUbygpKSx0aGlzLl9vbih0aGlzLnVpRGlhbG9nLHtrZXlkb3duOmZ1bmN0aW9uKHQpe2lmKHRoaXMub3B0aW9ucy5jbG9zZU9uRXNjYXBlJiYhdC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmdC5rZXlDb2RlJiZ0LmtleUNvZGU9PT1lLnVpLmtleUNvZGUuRVNDQVBFKXJldHVybiB0LnByZXZlbnREZWZhdWx0KCksdGhpcy5jbG9zZSh0KSx2b2lkIDA7aWYodC5rZXlDb2RlPT09ZS51aS5rZXlDb2RlLlRBQiYmIXQuaXNEZWZhdWx0UHJldmVudGVkKCkpe3ZhciBpPXRoaXMudWlEaWFsb2cuZmluZCgiOnRhYmJhYmxlIikscz1pLmZpbHRlcigiOmZpcnN0Iiksbj1pLmZpbHRlcigiOmxhc3QiKTt0LnRhcmdldCE9PW5bMF0mJnQudGFyZ2V0IT09dGhpcy51aURpYWxvZ1swXXx8dC5zaGlmdEtleT90LnRhcmdldCE9PXNbMF0mJnQudGFyZ2V0IT09dGhpcy51aURpYWxvZ1swXXx8IXQuc2hpZnRLZXl8fCh0aGlzLl9kZWxheShmdW5jdGlvbigpe24uZm9jdXMoKX0pLHQucHJldmVudERlZmF1bHQoKSk6KHRoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7cy5mb2N1cygpfSksdC5wcmV2ZW50RGVmYXVsdCgpKX19LG1vdXNlZG93bjpmdW5jdGlvbihlKXt0aGlzLl9tb3ZlVG9Ub3AoZSkmJnRoaXMuX2ZvY3VzVGFiYmFibGUoKX19KSx0aGlzLmVsZW1lbnQuZmluZCgiW2FyaWEtZGVzY3JpYmVkYnldIikubGVuZ3RofHx0aGlzLnVpRGlhbG9nLmF0dHIoeyJhcmlhLWRlc2NyaWJlZGJ5Ijp0aGlzLmVsZW1lbnQudW5pcXVlSWQoKS5hdHRyKCJpZCIpfSl9LF9jcmVhdGVUaXRsZWJhcjpmdW5jdGlvbigpe3ZhciB0O3RoaXMudWlEaWFsb2dUaXRsZWJhcj1lKCI8ZGl2PiIpLmFkZENsYXNzKCJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1jb3JuZXItYWxsIHVpLWhlbHBlci1jbGVhcmZpeCIpLnByZXBlbmRUbyh0aGlzLnVpRGlhbG9nKSx0aGlzLl9vbih0aGlzLnVpRGlhbG9nVGl0bGViYXIse21vdXNlZG93bjpmdW5jdGlvbih0KXtlKHQudGFyZ2V0KS5jbG9zZXN0KCIudWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIil8fHRoaXMudWlEaWFsb2cuZm9jdXMoKX19KSx0aGlzLnVpRGlhbG9nVGl0bGViYXJDbG9zZT1lKCI8YnV0dG9uIHR5cGU9J2J1dHRvbic+PC9idXR0b24+IikuYnV0dG9uKHtsYWJlbDp0aGlzLm9wdGlvbnMuY2xvc2VUZXh0LGljb25zOntwcmltYXJ5OiJ1aS1pY29uLWNsb3NldGhpY2sifSx0ZXh0OiExfSkuYWRkQ2xhc3MoInVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSIpLmFwcGVuZFRvKHRoaXMudWlEaWFsb2dUaXRsZWJhciksdGhpcy5fb24odGhpcy51aURpYWxvZ1RpdGxlYmFyQ2xvc2Use2NsaWNrOmZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKSx0aGlzLmNsb3NlKGUpfX0pLHQ9ZSgiPHNwYW4+IikudW5pcXVlSWQoKS5hZGRDbGFzcygidWktZGlhbG9nLXRpdGxlIikucHJlcGVuZFRvKHRoaXMudWlEaWFsb2dUaXRsZWJhciksdGhpcy5fdGl0bGUodCksdGhpcy51aURpYWxvZy5hdHRyKHsiYXJpYS1sYWJlbGxlZGJ5Ijp0LmF0dHIoImlkIil9KX0sX3RpdGxlOmZ1bmN0aW9uKGUpe3RoaXMub3B0aW9ucy50aXRsZXx8ZS5odG1sKCImIzE2MDsiKSxlLnRleHQodGhpcy5vcHRpb25zLnRpdGxlKQp9LF9jcmVhdGVCdXR0b25QYW5lOmZ1bmN0aW9uKCl7dGhpcy51aURpYWxvZ0J1dHRvblBhbmU9ZSgiPGRpdj4iKS5hZGRDbGFzcygidWktZGlhbG9nLWJ1dHRvbnBhbmUgdWktd2lkZ2V0LWNvbnRlbnQgdWktaGVscGVyLWNsZWFyZml4IiksdGhpcy51aUJ1dHRvblNldD1lKCI8ZGl2PiIpLmFkZENsYXNzKCJ1aS1kaWFsb2ctYnV0dG9uc2V0IikuYXBwZW5kVG8odGhpcy51aURpYWxvZ0J1dHRvblBhbmUpLHRoaXMuX2NyZWF0ZUJ1dHRvbnMoKX0sX2NyZWF0ZUJ1dHRvbnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGk9dGhpcy5vcHRpb25zLmJ1dHRvbnM7cmV0dXJuIHRoaXMudWlEaWFsb2dCdXR0b25QYW5lLnJlbW92ZSgpLHRoaXMudWlCdXR0b25TZXQuZW1wdHkoKSxlLmlzRW1wdHlPYmplY3QoaSl8fGUuaXNBcnJheShpKSYmIWkubGVuZ3RoPyh0aGlzLnVpRGlhbG9nLnJlbW92ZUNsYXNzKCJ1aS1kaWFsb2ctYnV0dG9ucyIpLHZvaWQgMCk6KGUuZWFjaChpLGZ1bmN0aW9uKGkscyl7dmFyIG4sYTtzPWUuaXNGdW5jdGlvbihzKT97Y2xpY2s6cyx0ZXh0Oml9OnMscz1lLmV4dGVuZCh7dHlwZToiYnV0dG9uIn0scyksbj1zLmNsaWNrLHMuY2xpY2s9ZnVuY3Rpb24oKXtuLmFwcGx5KHQuZWxlbWVudFswXSxhcmd1bWVudHMpfSxhPXtpY29uczpzLmljb25zLHRleHQ6cy5zaG93VGV4dH0sZGVsZXRlIHMuaWNvbnMsZGVsZXRlIHMuc2hvd1RleHQsZSgiPGJ1dHRvbj48L2J1dHRvbj4iLHMpLmJ1dHRvbihhKS5hcHBlbmRUbyh0LnVpQnV0dG9uU2V0KX0pLHRoaXMudWlEaWFsb2cuYWRkQ2xhc3MoInVpLWRpYWxvZy1idXR0b25zIiksdGhpcy51aURpYWxvZ0J1dHRvblBhbmUuYXBwZW5kVG8odGhpcy51aURpYWxvZyksdm9pZCAwKX0sX21ha2VEcmFnZ2FibGU6ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3JldHVybntwb3NpdGlvbjplLnBvc2l0aW9uLG9mZnNldDplLm9mZnNldH19dmFyIGk9dGhpcyxzPXRoaXMub3B0aW9uczt0aGlzLnVpRGlhbG9nLmRyYWdnYWJsZSh7Y2FuY2VsOiIudWktZGlhbG9nLWNvbnRlbnQsIC51aS1kaWFsb2ctdGl0bGViYXItY2xvc2UiLGhhbmRsZToiLnVpLWRpYWxvZy10aXRsZWJhciIsY29udGFpbm1lbnQ6ImRvY3VtZW50IixzdGFydDpmdW5jdGlvbihzLG4pe2UodGhpcykuYWRkQ2xhc3MoInVpLWRpYWxvZy1kcmFnZ2luZyIpLGkuX2Jsb2NrRnJhbWVzKCksaS5fdHJpZ2dlcigiZHJhZ1N0YXJ0IixzLHQobikpfSxkcmFnOmZ1bmN0aW9uKGUscyl7aS5fdHJpZ2dlcigiZHJhZyIsZSx0KHMpKX0sc3RvcDpmdW5jdGlvbihuLGEpe3ZhciBvPWEub2Zmc2V0LmxlZnQtaS5kb2N1bWVudC5zY3JvbGxMZWZ0KCkscj1hLm9mZnNldC50b3AtaS5kb2N1bWVudC5zY3JvbGxUb3AoKTtzLnBvc2l0aW9uPXtteToibGVmdCB0b3AiLGF0OiJsZWZ0Iisobz49MD8iKyI6IiIpK28rIiAiKyJ0b3AiKyhyPj0wPyIrIjoiIikrcixvZjppLndpbmRvd30sZSh0aGlzKS5yZW1vdmVDbGFzcygidWktZGlhbG9nLWRyYWdnaW5nIiksaS5fdW5ibG9ja0ZyYW1lcygpLGkuX3RyaWdnZXIoImRyYWdTdG9wIixuLHQoYSkpfX0pfSxfbWFrZVJlc2l6YWJsZTpmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7cmV0dXJue29yaWdpbmFsUG9zaXRpb246ZS5vcmlnaW5hbFBvc2l0aW9uLG9yaWdpbmFsU2l6ZTplLm9yaWdpbmFsU2l6ZSxwb3NpdGlvbjplLnBvc2l0aW9uLHNpemU6ZS5zaXplfX12YXIgaT10aGlzLHM9dGhpcy5vcHRpb25zLG49cy5yZXNpemFibGUsYT10aGlzLnVpRGlhbG9nLmNzcygicG9zaXRpb24iKSxvPSJzdHJpbmciPT10eXBlb2Ygbj9uOiJuLGUscyx3LHNlLHN3LG5lLG53Ijt0aGlzLnVpRGlhbG9nLnJlc2l6YWJsZSh7Y2FuY2VsOiIudWktZGlhbG9nLWNvbnRlbnQiLGNvbnRhaW5tZW50OiJkb2N1bWVudCIsYWxzb1Jlc2l6ZTp0aGlzLmVsZW1lbnQsbWF4V2lkdGg6cy5tYXhXaWR0aCxtYXhIZWlnaHQ6cy5tYXhIZWlnaHQsbWluV2lkdGg6cy5taW5XaWR0aCxtaW5IZWlnaHQ6dGhpcy5fbWluSGVpZ2h0KCksaGFuZGxlczpvLHN0YXJ0OmZ1bmN0aW9uKHMsbil7ZSh0aGlzKS5hZGRDbGFzcygidWktZGlhbG9nLXJlc2l6aW5nIiksaS5fYmxvY2tGcmFtZXMoKSxpLl90cmlnZ2VyKCJyZXNpemVTdGFydCIscyx0KG4pKX0scmVzaXplOmZ1bmN0aW9uKGUscyl7aS5fdHJpZ2dlcigicmVzaXplIixlLHQocykpfSxzdG9wOmZ1bmN0aW9uKG4sYSl7dmFyIG89aS51aURpYWxvZy5vZmZzZXQoKSxyPW8ubGVmdC1pLmRvY3VtZW50LnNjcm9sbExlZnQoKSxoPW8udG9wLWkuZG9jdW1lbnQuc2Nyb2xsVG9wKCk7cy5oZWlnaHQ9aS51aURpYWxvZy5oZWlnaHQoKSxzLndpZHRoPWkudWlEaWFsb2cud2lkdGgoKSxzLnBvc2l0aW9uPXtteToibGVmdCB0b3AiLGF0OiJsZWZ0Iisocj49MD8iKyI6IiIpK3IrIiAiKyJ0b3AiKyhoPj0wPyIrIjoiIikraCxvZjppLndpbmRvd30sZSh0aGlzKS5yZW1vdmVDbGFzcygidWktZGlhbG9nLXJlc2l6aW5nIiksaS5fdW5ibG9ja0ZyYW1lcygpLGkuX3RyaWdnZXIoInJlc2l6ZVN0b3AiLG4sdChhKSl9fSkuY3NzKCJwb3NpdGlvbiIsYSl9LF90cmFja0ZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5fb24odGhpcy53aWRnZXQoKSx7Zm9jdXNpbjpmdW5jdGlvbih0KXt0aGlzLl9tYWtlRm9jdXNUYXJnZXQoKSx0aGlzLl9mb2N1c2VkRWxlbWVudD1lKHQudGFyZ2V0KX19KX0sX21ha2VGb2N1c1RhcmdldDpmdW5jdGlvbigpe3RoaXMuX3VudHJhY2tJbnN0YW5jZSgpLHRoaXMuX3RyYWNraW5nSW5zdGFuY2VzKCkudW5zaGlmdCh0aGlzKX0sX3VudHJhY2tJbnN0YW5jZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX3RyYWNraW5nSW5zdGFuY2VzKCksaT1lLmluQXJyYXkodGhpcyx0KTstMSE9PWkmJnQuc3BsaWNlKGksMSl9LF90cmFja2luZ0luc3RhbmNlczpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZG9jdW1lbnQuZGF0YSgidWktZGlhbG9nLWluc3RhbmNlcyIpO3JldHVybiBlfHwoZT1bXSx0aGlzLmRvY3VtZW50LmRhdGEoInVpLWRpYWxvZy1pbnN0YW5jZXMiLGUpKSxlfSxfbWluSGVpZ2h0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zO3JldHVybiJhdXRvIj09PWUuaGVpZ2h0P2UubWluSGVpZ2h0Ok1hdGgubWluKGUubWluSGVpZ2h0LGUuaGVpZ2h0KX0sX3Bvc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy51aURpYWxvZy5pcygiOnZpc2libGUiKTtlfHx0aGlzLnVpRGlhbG9nLnNob3coKSx0aGlzLnVpRGlhbG9nLnBvc2l0aW9uKHRoaXMub3B0aW9ucy5wb3NpdGlvbiksZXx8dGhpcy51aURpYWxvZy5oaWRlKCl9LF9zZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMscz0hMSxuPXt9O2UuZWFjaCh0LGZ1bmN0aW9uKGUsdCl7aS5fc2V0T3B0aW9uKGUsdCksZSBpbiBpLnNpemVSZWxhdGVkT3B0aW9ucyYmKHM9ITApLGUgaW4gaS5yZXNpemFibGVSZWxhdGVkT3B0aW9ucyYmKG5bZV09dCl9KSxzJiYodGhpcy5fc2l6ZSgpLHRoaXMuX3Bvc2l0aW9uKCkpLHRoaXMudWlEaWFsb2cuaXMoIjpkYXRhKHVpLXJlc2l6YWJsZSkiKSYmdGhpcy51aURpYWxvZy5yZXNpemFibGUoIm9wdGlvbiIsbil9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXt2YXIgaSxzLG49dGhpcy51aURpYWxvZzsiZGlhbG9nQ2xhc3MiPT09ZSYmbi5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuZGlhbG9nQ2xhc3MpLmFkZENsYXNzKHQpLCJkaXNhYmxlZCIhPT1lJiYodGhpcy5fc3VwZXIoZSx0KSwiYXBwZW5kVG8iPT09ZSYmdGhpcy51aURpYWxvZy5hcHBlbmRUbyh0aGlzLl9hcHBlbmRUbygpKSwiYnV0dG9ucyI9PT1lJiZ0aGlzLl9jcmVhdGVCdXR0b25zKCksImNsb3NlVGV4dCI9PT1lJiZ0aGlzLnVpRGlhbG9nVGl0bGViYXJDbG9zZS5idXR0b24oe2xhYmVsOiIiK3R9KSwiZHJhZ2dhYmxlIj09PWUmJihpPW4uaXMoIjpkYXRhKHVpLWRyYWdnYWJsZSkiKSxpJiYhdCYmbi5kcmFnZ2FibGUoImRlc3Ryb3kiKSwhaSYmdCYmdGhpcy5fbWFrZURyYWdnYWJsZSgpKSwicG9zaXRpb24iPT09ZSYmdGhpcy5fcG9zaXRpb24oKSwicmVzaXphYmxlIj09PWUmJihzPW4uaXMoIjpkYXRhKHVpLXJlc2l6YWJsZSkiKSxzJiYhdCYmbi5yZXNpemFibGUoImRlc3Ryb3kiKSxzJiYic3RyaW5nIj09dHlwZW9mIHQmJm4ucmVzaXphYmxlKCJvcHRpb24iLCJoYW5kbGVzIix0KSxzfHx0PT09ITF8fHRoaXMuX21ha2VSZXNpemFibGUoKSksInRpdGxlIj09PWUmJnRoaXMuX3RpdGxlKHRoaXMudWlEaWFsb2dUaXRsZWJhci5maW5kKCIudWktZGlhbG9nLXRpdGxlIikpKX0sX3NpemU6ZnVuY3Rpb24oKXt2YXIgZSx0LGkscz10aGlzLm9wdGlvbnM7dGhpcy5lbGVtZW50LnNob3coKS5jc3Moe3dpZHRoOiJhdXRvIixtaW5IZWlnaHQ6MCxtYXhIZWlnaHQ6Im5vbmUiLGhlaWdodDowfSkscy5taW5XaWR0aD5zLndpZHRoJiYocy53aWR0aD1zLm1pbldpZHRoKSxlPXRoaXMudWlEaWFsb2cuY3NzKHtoZWlnaHQ6ImF1dG8iLHdpZHRoOnMud2lkdGh9KS5vdXRlckhlaWdodCgpLHQ9TWF0aC5tYXgoMCxzLm1pbkhlaWdodC1lKSxpPSJudW1iZXIiPT10eXBlb2Ygcy5tYXhIZWlnaHQ/TWF0aC5tYXgoMCxzLm1heEhlaWdodC1lKToibm9uZSIsImF1dG8iPT09cy5oZWlnaHQ/dGhpcy5lbGVtZW50LmNzcyh7bWluSGVpZ2h0OnQsbWF4SGVpZ2h0OmksaGVpZ2h0OiJhdXRvIn0pOnRoaXMuZWxlbWVudC5oZWlnaHQoTWF0aC5tYXgoMCxzLmhlaWdodC1lKSksdGhpcy51aURpYWxvZy5pcygiOmRhdGEodWktcmVzaXphYmxlKSIpJiZ0aGlzLnVpRGlhbG9nLnJlc2l6YWJsZSgib3B0aW9uIiwibWluSGVpZ2h0Iix0aGlzLl9taW5IZWlnaHQoKSl9LF9ibG9ja0ZyYW1lczpmdW5jdGlvbigpe3RoaXMuaWZyYW1lQmxvY2tzPXRoaXMuZG9jdW1lbnQuZmluZCgiaWZyYW1lIikubWFwKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKTtyZXR1cm4gZSgiPGRpdj4iKS5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsd2lkdGg6dC5vdXRlcldpZHRoKCksaGVpZ2h0OnQub3V0ZXJIZWlnaHQoKX0pLmFwcGVuZFRvKHQucGFyZW50KCkpLm9mZnNldCh0Lm9mZnNldCgpKVswXX0pfSxfdW5ibG9ja0ZyYW1lczpmdW5jdGlvbigpe3RoaXMuaWZyYW1lQmxvY2tzJiYodGhpcy5pZnJhbWVCbG9ja3MucmVtb3ZlKCksZGVsZXRlIHRoaXMuaWZyYW1lQmxvY2tzKX0sX2FsbG93SW50ZXJhY3Rpb246ZnVuY3Rpb24odCl7cmV0dXJuIGUodC50YXJnZXQpLmNsb3Nlc3QoIi51aS1kaWFsb2ciKS5sZW5ndGg/ITA6ISFlKHQudGFyZ2V0KS5jbG9zZXN0KCIudWktZGF0ZXBpY2tlciIpLmxlbmd0aH0sX2NyZWF0ZU92ZXJsYXk6ZnVuY3Rpb24oKXtpZih0aGlzLm9wdGlvbnMubW9kYWwpe3ZhciB0PSEwO3RoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7dD0hMX0pLHRoaXMuZG9jdW1lbnQuZGF0YSgidWktZGlhbG9nLW92ZXJsYXlzIil8fHRoaXMuX29uKHRoaXMuZG9jdW1lbnQse2ZvY3VzaW46ZnVuY3Rpb24oZSl7dHx8dGhpcy5fYWxsb3dJbnRlcmFjdGlvbihlKXx8KGUucHJldmVudERlZmF1bHQoKSx0aGlzLl90cmFja2luZ0luc3RhbmNlcygpWzBdLl9mb2N1c1RhYmJhYmxlKCkpfX0pLHRoaXMub3ZlcmxheT1lKCI8ZGl2PiIpLmFkZENsYXNzKCJ1aS13aWRnZXQtb3ZlcmxheSB1aS1mcm9udCIpLmFwcGVuZFRvKHRoaXMuX2FwcGVuZFRvKCkpLHRoaXMuX29uKHRoaXMub3ZlcmxheSx7bW91c2Vkb3duOiJfa2VlcEZvY3VzIn0pLHRoaXMuZG9jdW1lbnQuZGF0YSgidWktZGlhbG9nLW92ZXJsYXlzIiwodGhpcy5kb2N1bWVudC5kYXRhKCJ1aS1kaWFsb2ctb3ZlcmxheXMiKXx8MCkrMSl9fSxfZGVzdHJveU92ZXJsYXk6ZnVuY3Rpb24oKXtpZih0aGlzLm9wdGlvbnMubW9kYWwmJnRoaXMub3ZlcmxheSl7dmFyIGU9dGhpcy5kb2N1bWVudC5kYXRhKCJ1aS1kaWFsb2ctb3ZlcmxheXMiKS0xO2U/dGhpcy5kb2N1bWVudC5kYXRhKCJ1aS1kaWFsb2ctb3ZlcmxheXMiLGUpOnRoaXMuZG9jdW1lbnQudW5iaW5kKCJmb2N1c2luIikucmVtb3ZlRGF0YSgidWktZGlhbG9nLW92ZXJsYXlzIiksdGhpcy5vdmVybGF5LnJlbW92ZSgpLHRoaXMub3ZlcmxheT1udWxsfX19KSxlLndpZGdldCgidWkucHJvZ3Jlc3NiYXIiLHt2ZXJzaW9uOiIxLjExLjQiLG9wdGlvbnM6e21heDoxMDAsdmFsdWU6MCxjaGFuZ2U6bnVsbCxjb21wbGV0ZTpudWxsfSxtaW46MCxfY3JlYXRlOmZ1bmN0aW9uKCl7dGhpcy5vbGRWYWx1ZT10aGlzLm9wdGlvbnMudmFsdWU9dGhpcy5fY29uc3RyYWluZWRWYWx1ZSgpLHRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktcHJvZ3Jlc3NiYXIgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwiKS5hdHRyKHtyb2xlOiJwcm9ncmVzc2JhciIsImFyaWEtdmFsdWVtaW4iOnRoaXMubWlufSksdGhpcy52YWx1ZURpdj1lKCI8ZGl2IGNsYXNzPSd1aS1wcm9ncmVzc2Jhci12YWx1ZSB1aS13aWRnZXQtaGVhZGVyIHVpLWNvcm5lci1sZWZ0Jz48L2Rpdj4iKS5hcHBlbmRUbyh0aGlzLmVsZW1lbnQpLHRoaXMuX3JlZnJlc2hWYWx1ZSgpfSxfZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC5yZW1vdmVDbGFzcygidWktcHJvZ3Jlc3NiYXIgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwiKS5yZW1vdmVBdHRyKCJyb2xlIikucmVtb3ZlQXR0cigiYXJpYS12YWx1ZW1pbiIpLnJlbW92ZUF0dHIoImFyaWEtdmFsdWVtYXgiKS5yZW1vdmVBdHRyKCJhcmlhLXZhbHVlbm93IiksdGhpcy52YWx1ZURpdi5yZW1vdmUoKX0sdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMD09PWU/dGhpcy5vcHRpb25zLnZhbHVlOih0aGlzLm9wdGlvbnMudmFsdWU9dGhpcy5fY29uc3RyYWluZWRWYWx1ZShlKSx0aGlzLl9yZWZyZXNoVmFsdWUoKSx2b2lkIDApfSxfY29uc3RyYWluZWRWYWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9dGhpcy5vcHRpb25zLnZhbHVlKSx0aGlzLmluZGV0ZXJtaW5hdGU9ZT09PSExLCJudW1iZXIiIT10eXBlb2YgZSYmKGU9MCksdGhpcy5pbmRldGVybWluYXRlPyExOk1hdGgubWluKHRoaXMub3B0aW9ucy5tYXgsTWF0aC5tYXgodGhpcy5taW4sZSkpfSxfc2V0T3B0aW9uczpmdW5jdGlvbihlKXt2YXIgdD1lLnZhbHVlO2RlbGV0ZSBlLnZhbHVlLHRoaXMuX3N1cGVyKGUpLHRoaXMub3B0aW9ucy52YWx1ZT10aGlzLl9jb25zdHJhaW5lZFZhbHVlKHQpLHRoaXMuX3JlZnJlc2hWYWx1ZSgpfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKGUsdCl7Im1heCI9PT1lJiYodD1NYXRoLm1heCh0aGlzLm1pbix0KSksImRpc2FibGVkIj09PWUmJnRoaXMuZWxlbWVudC50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLCEhdCkuYXR0cigiYXJpYS1kaXNhYmxlZCIsdCksdGhpcy5fc3VwZXIoZSx0KX0sX3BlcmNlbnRhZ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbmRldGVybWluYXRlPzEwMDoxMDAqKHRoaXMub3B0aW9ucy52YWx1ZS10aGlzLm1pbikvKHRoaXMub3B0aW9ucy5tYXgtdGhpcy5taW4pfSxfcmVmcmVzaFZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcHRpb25zLnZhbHVlLGk9dGhpcy5fcGVyY2VudGFnZSgpO3RoaXMudmFsdWVEaXYudG9nZ2xlKHRoaXMuaW5kZXRlcm1pbmF0ZXx8dD50aGlzLm1pbikudG9nZ2xlQ2xhc3MoInVpLWNvcm5lci1yaWdodCIsdD09PXRoaXMub3B0aW9ucy5tYXgpLndpZHRoKGkudG9GaXhlZCgwKSsiJSIpLHRoaXMuZWxlbWVudC50b2dnbGVDbGFzcygidWktcHJvZ3Jlc3NiYXItaW5kZXRlcm1pbmF0ZSIsdGhpcy5pbmRldGVybWluYXRlKSx0aGlzLmluZGV0ZXJtaW5hdGU/KHRoaXMuZWxlbWVudC5yZW1vdmVBdHRyKCJhcmlhLXZhbHVlbm93IiksdGhpcy5vdmVybGF5RGl2fHwodGhpcy5vdmVybGF5RGl2PWUoIjxkaXYgY2xhc3M9J3VpLXByb2dyZXNzYmFyLW92ZXJsYXknPjwvZGl2PiIpLmFwcGVuZFRvKHRoaXMudmFsdWVEaXYpKSk6KHRoaXMuZWxlbWVudC5hdHRyKHsiYXJpYS12YWx1ZW1heCI6dGhpcy5vcHRpb25zLm1heCwiYXJpYS12YWx1ZW5vdyI6dH0pLHRoaXMub3ZlcmxheURpdiYmKHRoaXMub3ZlcmxheURpdi5yZW1vdmUoKSx0aGlzLm92ZXJsYXlEaXY9bnVsbCkpLHRoaXMub2xkVmFsdWUhPT10JiYodGhpcy5vbGRWYWx1ZT10LHRoaXMuX3RyaWdnZXIoImNoYW5nZSIpKSx0PT09dGhpcy5vcHRpb25zLm1heCYmdGhpcy5fdHJpZ2dlcigiY29tcGxldGUiKX19KSxlLndpZGdldCgidWkuc2VsZWN0bWVudSIse3ZlcnNpb246IjEuMTEuNCIsZGVmYXVsdEVsZW1lbnQ6IjxzZWxlY3Q+IixvcHRpb25zOnthcHBlbmRUbzpudWxsLGRpc2FibGVkOm51bGwsaWNvbnM6e2J1dHRvbjoidWktaWNvbi10cmlhbmdsZS0xLXMifSxwb3NpdGlvbjp7bXk6ImxlZnQgdG9wIixhdDoibGVmdCBib3R0b20iLGNvbGxpc2lvbjoibm9uZSJ9LHdpZHRoOm51bGwsY2hhbmdlOm51bGwsY2xvc2U6bnVsbCxmb2N1czpudWxsLG9wZW46bnVsbCxzZWxlY3Q6bnVsbH0sX2NyZWF0ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZWxlbWVudC51bmlxdWVJZCgpLmF0dHIoImlkIik7dGhpcy5pZHM9e2VsZW1lbnQ6ZSxidXR0b246ZSsiLWJ1dHRvbiIsbWVudTplKyItbWVudSJ9LHRoaXMuX2RyYXdCdXR0b24oKSx0aGlzLl9kcmF3TWVudSgpLHRoaXMub3B0aW9ucy5kaXNhYmxlZCYmdGhpcy5kaXNhYmxlKCl9LF9kcmF3QnV0dG9uOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLmxhYmVsPWUoImxhYmVsW2Zvcj0nIit0aGlzLmlkcy5lbGVtZW50KyInXSIpLmF0dHIoImZvciIsdGhpcy5pZHMuYnV0dG9uKSx0aGlzLl9vbih0aGlzLmxhYmVsLHtjbGljazpmdW5jdGlvbihlKXt0aGlzLmJ1dHRvbi5mb2N1cygpLGUucHJldmVudERlZmF1bHQoKX19KSx0aGlzLmVsZW1lbnQuaGlkZSgpLHRoaXMuYnV0dG9uPWUoIjxzcGFuPiIseyJjbGFzcyI6InVpLXNlbGVjdG1lbnUtYnV0dG9uIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwiLHRhYmluZGV4OnRoaXMub3B0aW9ucy5kaXNhYmxlZD8tMTowLGlkOnRoaXMuaWRzLmJ1dHRvbixyb2xlOiJjb21ib2JveCIsImFyaWEtZXhwYW5kZWQiOiJmYWxzZSIsImFyaWEtYXV0b2NvbXBsZXRlIjoibGlzdCIsImFyaWEtb3ducyI6dGhpcy5pZHMubWVudSwiYXJpYS1oYXNwb3B1cCI6InRydWUifSkuaW5zZXJ0QWZ0ZXIodGhpcy5lbGVtZW50KSxlKCI8c3Bhbj4iLHsiY2xhc3MiOiJ1aS1pY29uICIrdGhpcy5vcHRpb25zLmljb25zLmJ1dHRvbn0pLnByZXBlbmRUbyh0aGlzLmJ1dHRvbiksdGhpcy5idXR0b25UZXh0PWUoIjxzcGFuPiIseyJjbGFzcyI6InVpLXNlbGVjdG1lbnUtdGV4dCJ9KS5hcHBlbmRUbyh0aGlzLmJ1dHRvbiksdGhpcy5fc2V0VGV4dCh0aGlzLmJ1dHRvblRleHQsdGhpcy5lbGVtZW50LmZpbmQoIm9wdGlvbjpzZWxlY3RlZCIpLnRleHQoKSksdGhpcy5fcmVzaXplQnV0dG9uKCksdGhpcy5fb24odGhpcy5idXR0b24sdGhpcy5fYnV0dG9uRXZlbnRzKSx0aGlzLmJ1dHRvbi5vbmUoImZvY3VzaW4iLGZ1bmN0aW9uKCl7dC5tZW51SXRlbXN8fHQuX3JlZnJlc2hNZW51KCl9KSx0aGlzLl9ob3ZlcmFibGUodGhpcy5idXR0b24pLHRoaXMuX2ZvY3VzYWJsZSh0aGlzLmJ1dHRvbil9LF9kcmF3TWVudTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5tZW51PWUoIjx1bD4iLHsiYXJpYS1oaWRkZW4iOiJ0cnVlIiwiYXJpYS1sYWJlbGxlZGJ5Ijp0aGlzLmlkcy5idXR0b24saWQ6dGhpcy5pZHMubWVudX0pLHRoaXMubWVudVdyYXA9ZSgiPGRpdj4iLHsiY2xhc3MiOiJ1aS1zZWxlY3RtZW51LW1lbnUgdWktZnJvbnQifSkuYXBwZW5kKHRoaXMubWVudSkuYXBwZW5kVG8odGhpcy5fYXBwZW5kVG8oKSksdGhpcy5tZW51SW5zdGFuY2U9dGhpcy5tZW51Lm1lbnUoe3JvbGU6Imxpc3Rib3giLHNlbGVjdDpmdW5jdGlvbihlLGkpe2UucHJldmVudERlZmF1bHQoKSx0Ll9zZXRTZWxlY3Rpb24oKSx0Ll9zZWxlY3QoaS5pdGVtLmRhdGEoInVpLXNlbGVjdG1lbnUtaXRlbSIpLGUpfSxmb2N1czpmdW5jdGlvbihlLGkpe3ZhciBzPWkuaXRlbS5kYXRhKCJ1aS1zZWxlY3RtZW51LWl0ZW0iKTtudWxsIT10LmZvY3VzSW5kZXgmJnMuaW5kZXghPT10LmZvY3VzSW5kZXgmJih0Ll90cmlnZ2VyKCJmb2N1cyIsZSx7aXRlbTpzfSksdC5pc09wZW58fHQuX3NlbGVjdChzLGUpKSx0LmZvY3VzSW5kZXg9cy5pbmRleCx0LmJ1dHRvbi5hdHRyKCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnQiLHQubWVudUl0ZW1zLmVxKHMuaW5kZXgpLmF0dHIoImlkIikpfX0pLm1lbnUoImluc3RhbmNlIiksdGhpcy5tZW51LmFkZENsYXNzKCJ1aS1jb3JuZXItYm90dG9tIikucmVtb3ZlQ2xhc3MoInVpLWNvcm5lci1hbGwiKSx0aGlzLm1lbnVJbnN0YW5jZS5fb2ZmKHRoaXMubWVudSwibW91c2VsZWF2ZSIpLHRoaXMubWVudUluc3RhbmNlLl9jbG9zZU9uRG9jdW1lbnRDbGljaz1mdW5jdGlvbigpe3JldHVybiExfSx0aGlzLm1lbnVJbnN0YW5jZS5faXNEaXZpZGVyPWZ1bmN0aW9uKCl7cmV0dXJuITF9fSxyZWZyZXNoOmZ1bmN0aW9uKCl7dGhpcy5fcmVmcmVzaE1lbnUoKSx0aGlzLl9zZXRUZXh0KHRoaXMuYnV0dG9uVGV4dCx0aGlzLl9nZXRTZWxlY3RlZEl0ZW0oKS50ZXh0KCkpLHRoaXMub3B0aW9ucy53aWR0aHx8dGhpcy5fcmVzaXplQnV0dG9uKCl9LF9yZWZyZXNoTWVudTpmdW5jdGlvbigpe3RoaXMubWVudS5lbXB0eSgpO3ZhciBlLHQ9dGhpcy5lbGVtZW50LmZpbmQoIm9wdGlvbiIpO3QubGVuZ3RoJiYodGhpcy5fcGFyc2VPcHRpb25zKHQpLHRoaXMuX3JlbmRlck1lbnUodGhpcy5tZW51LHRoaXMuaXRlbXMpLHRoaXMubWVudUluc3RhbmNlLnJlZnJlc2goKSx0aGlzLm1lbnVJdGVtcz10aGlzLm1lbnUuZmluZCgibGkiKS5ub3QoIi51aS1zZWxlY3RtZW51LW9wdGdyb3VwIiksZT10aGlzLl9nZXRTZWxlY3RlZEl0ZW0oKSx0aGlzLm1lbnVJbnN0YW5jZS5mb2N1cyhudWxsLGUpLHRoaXMuX3NldEFyaWEoZS5kYXRhKCJ1aS1zZWxlY3RtZW51LWl0ZW0iKSksdGhpcy5fc2V0T3B0aW9uKCJkaXNhYmxlZCIsdGhpcy5lbGVtZW50LnByb3AoImRpc2FibGVkIikpKX0sb3BlbjpmdW5jdGlvbihlKXt0aGlzLm9wdGlvbnMuZGlzYWJsZWR8fCh0aGlzLm1lbnVJdGVtcz8odGhpcy5tZW51LmZpbmQoIi51aS1zdGF0ZS1mb2N1cyIpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpLHRoaXMubWVudUluc3RhbmNlLmZvY3VzKG51bGwsdGhpcy5fZ2V0U2VsZWN0ZWRJdGVtKCkpKTp0aGlzLl9yZWZyZXNoTWVudSgpLHRoaXMuaXNPcGVuPSEwLHRoaXMuX3RvZ2dsZUF0dHIoKSx0aGlzLl9yZXNpemVNZW51KCksdGhpcy5fcG9zaXRpb24oKSx0aGlzLl9vbih0aGlzLmRvY3VtZW50LHRoaXMuX2RvY3VtZW50Q2xpY2spLHRoaXMuX3RyaWdnZXIoIm9wZW4iLGUpKX0sX3Bvc2l0aW9uOmZ1bmN0aW9uKCl7dGhpcy5tZW51V3JhcC5wb3NpdGlvbihlLmV4dGVuZCh7b2Y6dGhpcy5idXR0b259LHRoaXMub3B0aW9ucy5wb3NpdGlvbikpfSxjbG9zZTpmdW5jdGlvbihlKXt0aGlzLmlzT3BlbiYmKHRoaXMuaXNPcGVuPSExLHRoaXMuX3RvZ2dsZUF0dHIoKSx0aGlzLnJhbmdlPW51bGwsdGhpcy5fb2ZmKHRoaXMuZG9jdW1lbnQpLHRoaXMuX3RyaWdnZXIoImNsb3NlIixlKSl9LHdpZGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmJ1dHRvbn0sbWVudVdpZGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1lbnV9LF9yZW5kZXJNZW51OmZ1bmN0aW9uKHQsaSl7dmFyIHM9dGhpcyxuPSIiO2UuZWFjaChpLGZ1bmN0aW9uKGksYSl7YS5vcHRncm91cCE9PW4mJihlKCI8bGk+Iix7ImNsYXNzIjoidWktc2VsZWN0bWVudS1vcHRncm91cCB1aS1tZW51LWRpdmlkZXIiKyhhLmVsZW1lbnQucGFyZW50KCJvcHRncm91cCIpLnByb3AoImRpc2FibGVkIik/IiB1aS1zdGF0ZS1kaXNhYmxlZCI6IiIpLHRleHQ6YS5vcHRncm91cH0pLmFwcGVuZFRvKHQpLG49YS5vcHRncm91cCkscy5fcmVuZGVySXRlbURhdGEodCxhKX0pfSxfcmVuZGVySXRlbURhdGE6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fcmVuZGVySXRlbShlLHQpLmRhdGEoInVpLXNlbGVjdG1lbnUtaXRlbSIsdCl9LF9yZW5kZXJJdGVtOmZ1bmN0aW9uKHQsaSl7dmFyIHM9ZSgiPGxpPiIpO3JldHVybiBpLmRpc2FibGVkJiZzLmFkZENsYXNzKCJ1aS1zdGF0ZS1kaXNhYmxlZCIpLHRoaXMuX3NldFRleHQocyxpLmxhYmVsKSxzLmFwcGVuZFRvKHQpfSxfc2V0VGV4dDpmdW5jdGlvbihlLHQpe3Q/ZS50ZXh0KHQpOmUuaHRtbCgiJiMxNjA7Iil9LF9tb3ZlOmZ1bmN0aW9uKGUsdCl7dmFyIGkscyxuPSIudWktbWVudS1pdGVtIjt0aGlzLmlzT3Blbj9pPXRoaXMubWVudUl0ZW1zLmVxKHRoaXMuZm9jdXNJbmRleCk6KGk9dGhpcy5tZW51SXRlbXMuZXEodGhpcy5lbGVtZW50WzBdLnNlbGVjdGVkSW5kZXgpLG4rPSI6bm90KC51aS1zdGF0ZS1kaXNhYmxlZCkiKSxzPSJmaXJzdCI9PT1lfHwibGFzdCI9PT1lP2lbImZpcnN0Ij09PWU/InByZXZBbGwiOiJuZXh0QWxsIl0obikuZXEoLTEpOmlbZSsiQWxsIl0obikuZXEoMCkscy5sZW5ndGgmJnRoaXMubWVudUluc3RhbmNlLmZvY3VzKHQscyl9LF9nZXRTZWxlY3RlZEl0ZW06ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tZW51SXRlbXMuZXEodGhpcy5lbGVtZW50WzBdLnNlbGVjdGVkSW5kZXgpfSxfdG9nZ2xlOmZ1bmN0aW9uKGUpe3RoaXNbdGhpcy5pc09wZW4/ImNsb3NlIjoib3BlbiJdKGUpfSxfc2V0U2VsZWN0aW9uOmZ1bmN0aW9uKCl7dmFyIGU7dGhpcy5yYW5nZSYmKHdpbmRvdy5nZXRTZWxlY3Rpb24/KGU9d2luZG93LmdldFNlbGVjdGlvbigpLGUucmVtb3ZlQWxsUmFuZ2VzKCksZS5hZGRSYW5nZSh0aGlzLnJhbmdlKSk6dGhpcy5yYW5nZS5zZWxlY3QoKSx0aGlzLmJ1dHRvbi5mb2N1cygpKX0sX2RvY3VtZW50Q2xpY2s6e21vdXNlZG93bjpmdW5jdGlvbih0KXt0aGlzLmlzT3BlbiYmKGUodC50YXJnZXQpLmNsb3Nlc3QoIi51aS1zZWxlY3RtZW51LW1lbnUsICMiK3RoaXMuaWRzLmJ1dHRvbikubGVuZ3RofHx0aGlzLmNsb3NlKHQpKX19LF9idXR0b25FdmVudHM6e21vdXNlZG93bjpmdW5jdGlvbigpe3ZhciBlO3dpbmRvdy5nZXRTZWxlY3Rpb24/KGU9d2luZG93LmdldFNlbGVjdGlvbigpLGUucmFuZ2VDb3VudCYmKHRoaXMucmFuZ2U9ZS5nZXRSYW5nZUF0KDApKSk6dGhpcy5yYW5nZT1kb2N1bWVudC5zZWxlY3Rpb24uY3JlYXRlUmFuZ2UoKX0sY2xpY2s6ZnVuY3Rpb24oZSl7dGhpcy5fc2V0U2VsZWN0aW9uKCksdGhpcy5fdG9nZ2xlKGUpfSxrZXlkb3duOmZ1bmN0aW9uKHQpe3ZhciBpPSEwO3N3aXRjaCh0LmtleUNvZGUpe2Nhc2UgZS51aS5rZXlDb2RlLlRBQjpjYXNlIGUudWkua2V5Q29kZS5FU0NBUEU6dGhpcy5jbG9zZSh0KSxpPSExO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkVOVEVSOnRoaXMuaXNPcGVuJiZ0aGlzLl9zZWxlY3RGb2N1c2VkSXRlbSh0KTticmVhaztjYXNlIGUudWkua2V5Q29kZS5VUDp0LmFsdEtleT90aGlzLl90b2dnbGUodCk6dGhpcy5fbW92ZSgicHJldiIsdCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuRE9XTjp0LmFsdEtleT90aGlzLl90b2dnbGUodCk6dGhpcy5fbW92ZSgibmV4dCIsdCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuU1BBQ0U6dGhpcy5pc09wZW4/dGhpcy5fc2VsZWN0Rm9jdXNlZEl0ZW0odCk6dGhpcy5fdG9nZ2xlKHQpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkxFRlQ6dGhpcy5fbW92ZSgicHJldiIsdCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuUklHSFQ6dGhpcy5fbW92ZSgibmV4dCIsdCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuSE9NRTpjYXNlIGUudWkua2V5Q29kZS5QQUdFX1VQOnRoaXMuX21vdmUoImZpcnN0Iix0KTticmVhaztjYXNlIGUudWkua2V5Q29kZS5FTkQ6Y2FzZSBlLnVpLmtleUNvZGUuUEFHRV9ET1dOOnRoaXMuX21vdmUoImxhc3QiLHQpO2JyZWFrO2RlZmF1bHQ6dGhpcy5tZW51LnRyaWdnZXIodCksaT0hMX1pJiZ0LnByZXZlbnREZWZhdWx0KCl9fSxfc2VsZWN0Rm9jdXNlZEl0ZW06ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5tZW51SXRlbXMuZXEodGhpcy5mb2N1c0luZGV4KTt0Lmhhc0NsYXNzKCJ1aS1zdGF0ZS1kaXNhYmxlZCIpfHx0aGlzLl9zZWxlY3QodC5kYXRhKCJ1aS1zZWxlY3RtZW51LWl0ZW0iKSxlKX0sX3NlbGVjdDpmdW5jdGlvbihlLHQpe3ZhciBpPXRoaXMuZWxlbWVudFswXS5zZWxlY3RlZEluZGV4O3RoaXMuZWxlbWVudFswXS5zZWxlY3RlZEluZGV4PWUuaW5kZXgsdGhpcy5fc2V0VGV4dCh0aGlzLmJ1dHRvblRleHQsZS5sYWJlbCksdGhpcy5fc2V0QXJpYShlKSx0aGlzLl90cmlnZ2VyKCJzZWxlY3QiLHQse2l0ZW06ZX0pLGUuaW5kZXghPT1pJiZ0aGlzLl90cmlnZ2VyKCJjaGFuZ2UiLHQse2l0ZW06ZX0pLHRoaXMuY2xvc2UodCl9LF9zZXRBcmlhOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMubWVudUl0ZW1zLmVxKGUuaW5kZXgpLmF0dHIoImlkIik7dGhpcy5idXR0b24uYXR0cih7ImFyaWEtbGFiZWxsZWRieSI6dCwiYXJpYS1hY3RpdmVkZXNjZW5kYW50Ijp0fSksdGhpcy5tZW51LmF0dHIoImFyaWEtYWN0aXZlZGVzY2VuZGFudCIsdCl9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXsiaWNvbnMiPT09ZSYmdGhpcy5idXR0b24uZmluZCgic3Bhbi51aS1pY29uIikucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmljb25zLmJ1dHRvbikuYWRkQ2xhc3ModC5idXR0b24pLHRoaXMuX3N1cGVyKGUsdCksImFwcGVuZFRvIj09PWUmJnRoaXMubWVudVdyYXAuYXBwZW5kVG8odGhpcy5fYXBwZW5kVG8oKSksImRpc2FibGVkIj09PWUmJih0aGlzLm1lbnVJbnN0YW5jZS5vcHRpb24oImRpc2FibGVkIix0KSx0aGlzLmJ1dHRvbi50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLHQpLmF0dHIoImFyaWEtZGlzYWJsZWQiLHQpLHRoaXMuZWxlbWVudC5wcm9wKCJkaXNhYmxlZCIsdCksdD8odGhpcy5idXR0b24uYXR0cigidGFiaW5kZXgiLC0xKSx0aGlzLmNsb3NlKCkpOnRoaXMuYnV0dG9uLmF0dHIoInRhYmluZGV4IiwwKSksIndpZHRoIj09PWUmJnRoaXMuX3Jlc2l6ZUJ1dHRvbigpfSxfYXBwZW5kVG86ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMuYXBwZW5kVG87cmV0dXJuIHQmJih0PXQuanF1ZXJ5fHx0Lm5vZGVUeXBlP2UodCk6dGhpcy5kb2N1bWVudC5maW5kKHQpLmVxKDApKSx0JiZ0WzBdfHwodD10aGlzLmVsZW1lbnQuY2xvc2VzdCgiLnVpLWZyb250IikpLHQubGVuZ3RofHwodD10aGlzLmRvY3VtZW50WzBdLmJvZHkpLHR9LF90b2dnbGVBdHRyOmZ1bmN0aW9uKCl7dGhpcy5idXR0b24udG9nZ2xlQ2xhc3MoInVpLWNvcm5lci10b3AiLHRoaXMuaXNPcGVuKS50b2dnbGVDbGFzcygidWktY29ybmVyLWFsbCIsIXRoaXMuaXNPcGVuKS5hdHRyKCJhcmlhLWV4cGFuZGVkIix0aGlzLmlzT3BlbiksdGhpcy5tZW51V3JhcC50b2dnbGVDbGFzcygidWktc2VsZWN0bWVudS1vcGVuIix0aGlzLmlzT3BlbiksdGhpcy5tZW51LmF0dHIoImFyaWEtaGlkZGVuIiwhdGhpcy5pc09wZW4pfSxfcmVzaXplQnV0dG9uOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zLndpZHRoO2V8fChlPXRoaXMuZWxlbWVudC5zaG93KCkub3V0ZXJXaWR0aCgpLHRoaXMuZWxlbWVudC5oaWRlKCkpLHRoaXMuYnV0dG9uLm91dGVyV2lkdGgoZSl9LF9yZXNpemVNZW51OmZ1bmN0aW9uKCl7dGhpcy5tZW51Lm91dGVyV2lkdGgoTWF0aC5tYXgodGhpcy5idXR0b24ub3V0ZXJXaWR0aCgpLHRoaXMubWVudS53aWR0aCgiIikub3V0ZXJXaWR0aCgpKzEpKX0sX2dldENyZWF0ZU9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm57ZGlzYWJsZWQ6dGhpcy5lbGVtZW50LnByb3AoImRpc2FibGVkIil9fSxfcGFyc2VPcHRpb25zOmZ1bmN0aW9uKHQpe3ZhciBpPVtdO3QuZWFjaChmdW5jdGlvbih0LHMpe3ZhciBuPWUocyksYT1uLnBhcmVudCgib3B0Z3JvdXAiKTtpLnB1c2goe2VsZW1lbnQ6bixpbmRleDp0LHZhbHVlOm4udmFsKCksbGFiZWw6bi50ZXh0KCksb3B0Z3JvdXA6YS5hdHRyKCJsYWJlbCIpfHwiIixkaXNhYmxlZDphLnByb3AoImRpc2FibGVkIil8fG4ucHJvcCgiZGlzYWJsZWQiKX0pfSksdGhpcy5pdGVtcz1pfSxfZGVzdHJveTpmdW5jdGlvbigpe3RoaXMubWVudVdyYXAucmVtb3ZlKCksdGhpcy5idXR0b24ucmVtb3ZlKCksdGhpcy5lbGVtZW50LnNob3coKSx0aGlzLmVsZW1lbnQucmVtb3ZlVW5pcXVlSWQoKSx0aGlzLmxhYmVsLmF0dHIoImZvciIsdGhpcy5pZHMuZWxlbWVudCl9fSksZS53aWRnZXQoInVpLnNsaWRlciIsZS51aS5tb3VzZSx7dmVyc2lvbjoiMS4xMS40Iix3aWRnZXRFdmVudFByZWZpeDoic2xpZGUiLG9wdGlvbnM6e2FuaW1hdGU6ITEsZGlzdGFuY2U6MCxtYXg6MTAwLG1pbjowLG9yaWVudGF0aW9uOiJob3Jpem9udGFsIixyYW5nZTohMSxzdGVwOjEsdmFsdWU6MCx2YWx1ZXM6bnVsbCxjaGFuZ2U6bnVsbCxzbGlkZTpudWxsLHN0YXJ0Om51bGwsc3RvcDpudWxsfSxudW1QYWdlczo1LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLl9rZXlTbGlkaW5nPSExLHRoaXMuX21vdXNlU2xpZGluZz0hMSx0aGlzLl9hbmltYXRlT2ZmPSEwLHRoaXMuX2hhbmRsZUluZGV4PW51bGwsdGhpcy5fZGV0ZWN0T3JpZW50YXRpb24oKSx0aGlzLl9tb3VzZUluaXQoKSx0aGlzLl9jYWxjdWxhdGVOZXdNYXgoKSx0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLXNsaWRlciB1aS1zbGlkZXItIit0aGlzLm9yaWVudGF0aW9uKyIgdWktd2lkZ2V0IisiIHVpLXdpZGdldC1jb250ZW50IisiIHVpLWNvcm5lci1hbGwiKSx0aGlzLl9yZWZyZXNoKCksdGhpcy5fc2V0T3B0aW9uKCJkaXNhYmxlZCIsdGhpcy5vcHRpb25zLmRpc2FibGVkKSx0aGlzLl9hbmltYXRlT2ZmPSExfSxfcmVmcmVzaDpmdW5jdGlvbigpe3RoaXMuX2NyZWF0ZVJhbmdlKCksdGhpcy5fY3JlYXRlSGFuZGxlcygpLHRoaXMuX3NldHVwRXZlbnRzKCksdGhpcy5fcmVmcmVzaFZhbHVlKCl9LF9jcmVhdGVIYW5kbGVzOmZ1bmN0aW9uKCl7dmFyIHQsaSxzPXRoaXMub3B0aW9ucyxuPXRoaXMuZWxlbWVudC5maW5kKCIudWktc2xpZGVyLWhhbmRsZSIpLmFkZENsYXNzKCJ1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwiKSxhPSI8c3BhbiBjbGFzcz0ndWktc2xpZGVyLWhhbmRsZSB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwnIHRhYmluZGV4PScwJz48L3NwYW4+IixvPVtdO2ZvcihpPXMudmFsdWVzJiZzLnZhbHVlcy5sZW5ndGh8fDEsbi5sZW5ndGg+aSYmKG4uc2xpY2UoaSkucmVtb3ZlKCksbj1uLnNsaWNlKDAsaSkpLHQ9bi5sZW5ndGg7aT50O3QrKylvLnB1c2goYSk7dGhpcy5oYW5kbGVzPW4uYWRkKGUoby5qb2luKCIiKSkuYXBwZW5kVG8odGhpcy5lbGVtZW50KSksdGhpcy5oYW5kbGU9dGhpcy5oYW5kbGVzLmVxKDApLHRoaXMuaGFuZGxlcy5lYWNoKGZ1bmN0aW9uKHQpe2UodGhpcykuZGF0YSgidWktc2xpZGVyLWhhbmRsZS1pbmRleCIsdCl9KX0sX2NyZWF0ZVJhbmdlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcHRpb25zLGk9IiI7dC5yYW5nZT8odC5yYW5nZT09PSEwJiYodC52YWx1ZXM/dC52YWx1ZXMubGVuZ3RoJiYyIT09dC52YWx1ZXMubGVuZ3RoP3QudmFsdWVzPVt0LnZhbHVlc1swXSx0LnZhbHVlc1swXV06ZS5pc0FycmF5KHQudmFsdWVzKSYmKHQudmFsdWVzPXQudmFsdWVzLnNsaWNlKDApKTp0LnZhbHVlcz1bdGhpcy5fdmFsdWVNaW4oKSx0aGlzLl92YWx1ZU1pbigpXSksdGhpcy5yYW5nZSYmdGhpcy5yYW5nZS5sZW5ndGg/dGhpcy5yYW5nZS5yZW1vdmVDbGFzcygidWktc2xpZGVyLXJhbmdlLW1pbiB1aS1zbGlkZXItcmFuZ2UtbWF4IikuY3NzKHtsZWZ0OiIiLGJvdHRvbToiIn0pOih0aGlzLnJhbmdlPWUoIjxkaXY+PC9kaXY+IikuYXBwZW5kVG8odGhpcy5lbGVtZW50KSxpPSJ1aS1zbGlkZXItcmFuZ2UgdWktd2lkZ2V0LWhlYWRlciB1aS1jb3JuZXItYWxsIiksdGhpcy5yYW5nZS5hZGRDbGFzcyhpKygibWluIj09PXQucmFuZ2V8fCJtYXgiPT09dC5yYW5nZT8iIHVpLXNsaWRlci1yYW5nZS0iK3QucmFuZ2U6IiIpKSk6KHRoaXMucmFuZ2UmJnRoaXMucmFuZ2UucmVtb3ZlKCksdGhpcy5yYW5nZT1udWxsKX0sX3NldHVwRXZlbnRzOmZ1bmN0aW9uKCl7dGhpcy5fb2ZmKHRoaXMuaGFuZGxlcyksdGhpcy5fb24odGhpcy5oYW5kbGVzLHRoaXMuX2hhbmRsZUV2ZW50cyksdGhpcy5faG92ZXJhYmxlKHRoaXMuaGFuZGxlcyksdGhpcy5fZm9jdXNhYmxlKHRoaXMuaGFuZGxlcyl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5oYW5kbGVzLnJlbW92ZSgpLHRoaXMucmFuZ2UmJnRoaXMucmFuZ2UucmVtb3ZlKCksdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zbGlkZXIgdWktc2xpZGVyLWhvcml6b250YWwgdWktc2xpZGVyLXZlcnRpY2FsIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIiksdGhpcy5fbW91c2VEZXN0cm95KCl9LF9tb3VzZUNhcHR1cmU6ZnVuY3Rpb24odCl7dmFyIGkscyxuLGEsbyxyLGgsbCx1PXRoaXMsZD10aGlzLm9wdGlvbnM7cmV0dXJuIGQuZGlzYWJsZWQ/ITE6KHRoaXMuZWxlbWVudFNpemU9e3dpZHRoOnRoaXMuZWxlbWVudC5vdXRlcldpZHRoKCksaGVpZ2h0OnRoaXMuZWxlbWVudC5vdXRlckhlaWdodCgpfSx0aGlzLmVsZW1lbnRPZmZzZXQ9dGhpcy5lbGVtZW50Lm9mZnNldCgpLGk9e3g6dC5wYWdlWCx5OnQucGFnZVl9LHM9dGhpcy5fbm9ybVZhbHVlRnJvbU1vdXNlKGkpLG49dGhpcy5fdmFsdWVNYXgoKS10aGlzLl92YWx1ZU1pbigpKzEsdGhpcy5oYW5kbGVzLmVhY2goZnVuY3Rpb24odCl7dmFyIGk9TWF0aC5hYnMocy11LnZhbHVlcyh0KSk7KG4+aXx8bj09PWkmJih0PT09dS5fbGFzdENoYW5nZWRWYWx1ZXx8dS52YWx1ZXModCk9PT1kLm1pbikpJiYobj1pLGE9ZSh0aGlzKSxvPXQpfSkscj10aGlzLl9zdGFydCh0LG8pLHI9PT0hMT8hMToodGhpcy5fbW91c2VTbGlkaW5nPSEwLHRoaXMuX2hhbmRsZUluZGV4PW8sYS5hZGRDbGFzcygidWktc3RhdGUtYWN0aXZlIikuZm9jdXMoKSxoPWEub2Zmc2V0KCksbD0hZSh0LnRhcmdldCkucGFyZW50cygpLmFkZEJhY2soKS5pcygiLnVpLXNsaWRlci1oYW5kbGUiKSx0aGlzLl9jbGlja09mZnNldD1sP3tsZWZ0OjAsdG9wOjB9OntsZWZ0OnQucGFnZVgtaC5sZWZ0LWEud2lkdGgoKS8yLHRvcDp0LnBhZ2VZLWgudG9wLWEuaGVpZ2h0KCkvMi0ocGFyc2VJbnQoYS5jc3MoImJvcmRlclRvcFdpZHRoIiksMTApfHwwKS0ocGFyc2VJbnQoYS5jc3MoImJvcmRlckJvdHRvbVdpZHRoIiksMTApfHwwKSsocGFyc2VJbnQoYS5jc3MoIm1hcmdpblRvcCIpLDEwKXx8MCl9LHRoaXMuaGFuZGxlcy5oYXNDbGFzcygidWktc3RhdGUtaG92ZXIiKXx8dGhpcy5fc2xpZGUodCxvLHMpLHRoaXMuX2FuaW1hdGVPZmY9ITAsITApKX0sX21vdXNlU3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sX21vdXNlRHJhZzpmdW5jdGlvbihlKXt2YXIgdD17eDplLnBhZ2VYLHk6ZS5wYWdlWX0saT10aGlzLl9ub3JtVmFsdWVGcm9tTW91c2UodCk7cmV0dXJuIHRoaXMuX3NsaWRlKGUsdGhpcy5faGFuZGxlSW5kZXgsaSksITF9LF9tb3VzZVN0b3A6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuaGFuZGxlcy5yZW1vdmVDbGFzcygidWktc3RhdGUtYWN0aXZlIiksdGhpcy5fbW91c2VTbGlkaW5nPSExLHRoaXMuX3N0b3AoZSx0aGlzLl9oYW5kbGVJbmRleCksdGhpcy5fY2hhbmdlKGUsdGhpcy5faGFuZGxlSW5kZXgpLHRoaXMuX2hhbmRsZUluZGV4PW51bGwsdGhpcy5fY2xpY2tPZmZzZXQ9bnVsbCx0aGlzLl9hbmltYXRlT2ZmPSExLCExfSxfZGV0ZWN0T3JpZW50YXRpb246ZnVuY3Rpb24oKXt0aGlzLm9yaWVudGF0aW9uPSJ2ZXJ0aWNhbCI9PT10aGlzLm9wdGlvbnMub3JpZW50YXRpb24/InZlcnRpY2FsIjoiaG9yaXpvbnRhbCJ9LF9ub3JtVmFsdWVGcm9tTW91c2U6ZnVuY3Rpb24oZSl7dmFyIHQsaSxzLG4sYTtyZXR1cm4iaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uPyh0PXRoaXMuZWxlbWVudFNpemUud2lkdGgsaT1lLngtdGhpcy5lbGVtZW50T2Zmc2V0LmxlZnQtKHRoaXMuX2NsaWNrT2Zmc2V0P3RoaXMuX2NsaWNrT2Zmc2V0LmxlZnQ6MCkpOih0PXRoaXMuZWxlbWVudFNpemUuaGVpZ2h0LGk9ZS55LXRoaXMuZWxlbWVudE9mZnNldC50b3AtKHRoaXMuX2NsaWNrT2Zmc2V0P3RoaXMuX2NsaWNrT2Zmc2V0LnRvcDowKSkscz1pL3Qscz4xJiYocz0xKSwwPnMmJihzPTApLCJ2ZXJ0aWNhbCI9PT10aGlzLm9yaWVudGF0aW9uJiYocz0xLXMpLG49dGhpcy5fdmFsdWVNYXgoKS10aGlzLl92YWx1ZU1pbigpLGE9dGhpcy5fdmFsdWVNaW4oKStzKm4sdGhpcy5fdHJpbUFsaWduVmFsdWUoYSl9LF9zdGFydDpmdW5jdGlvbihlLHQpe3ZhciBpPXtoYW5kbGU6dGhpcy5oYW5kbGVzW3RdLHZhbHVlOnRoaXMudmFsdWUoKX07cmV0dXJuIHRoaXMub3B0aW9ucy52YWx1ZXMmJnRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoJiYoaS52YWx1ZT10aGlzLnZhbHVlcyh0KSxpLnZhbHVlcz10aGlzLnZhbHVlcygpKSx0aGlzLl90cmlnZ2VyKCJzdGFydCIsZSxpKX0sX3NsaWRlOmZ1bmN0aW9uKGUsdCxpKXt2YXIgcyxuLGE7dGhpcy5vcHRpb25zLnZhbHVlcyYmdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGg/KHM9dGhpcy52YWx1ZXModD8wOjEpLDI9PT10aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aCYmdGhpcy5vcHRpb25zLnJhbmdlPT09ITAmJigwPT09dCYmaT5zfHwxPT09dCYmcz5pKSYmKGk9cyksaSE9PXRoaXMudmFsdWVzKHQpJiYobj10aGlzLnZhbHVlcygpLG5bdF09aSxhPXRoaXMuX3RyaWdnZXIoInNsaWRlIixlLHtoYW5kbGU6dGhpcy5oYW5kbGVzW3RdLHZhbHVlOmksdmFsdWVzOm59KSxzPXRoaXMudmFsdWVzKHQ/MDoxKSxhIT09ITEmJnRoaXMudmFsdWVzKHQsaSkpKTppIT09dGhpcy52YWx1ZSgpJiYoYT10aGlzLl90cmlnZ2VyKCJzbGlkZSIsZSx7aGFuZGxlOnRoaXMuaGFuZGxlc1t0XSx2YWx1ZTppfSksYSE9PSExJiZ0aGlzLnZhbHVlKGkpKX0sX3N0b3A6ZnVuY3Rpb24oZSx0KXt2YXIgaT17aGFuZGxlOnRoaXMuaGFuZGxlc1t0XSx2YWx1ZTp0aGlzLnZhbHVlKCl9O3RoaXMub3B0aW9ucy52YWx1ZXMmJnRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoJiYoaS52YWx1ZT10aGlzLnZhbHVlcyh0KSxpLnZhbHVlcz10aGlzLnZhbHVlcygpKSx0aGlzLl90cmlnZ2VyKCJzdG9wIixlLGkpfSxfY2hhbmdlOmZ1bmN0aW9uKGUsdCl7aWYoIXRoaXMuX2tleVNsaWRpbmcmJiF0aGlzLl9tb3VzZVNsaWRpbmcpe3ZhciBpPXtoYW5kbGU6dGhpcy5oYW5kbGVzW3RdLHZhbHVlOnRoaXMudmFsdWUoKX07dGhpcy5vcHRpb25zLnZhbHVlcyYmdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGgmJihpLnZhbHVlPXRoaXMudmFsdWVzKHQpLGkudmFsdWVzPXRoaXMudmFsdWVzKCkpLHRoaXMuX2xhc3RDaGFuZ2VkVmFsdWU9dCx0aGlzLl90cmlnZ2VyKCJjaGFuZ2UiLGUsaSl9fSx2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5vcHRpb25zLnZhbHVlPXRoaXMuX3RyaW1BbGlnblZhbHVlKGUpLHRoaXMuX3JlZnJlc2hWYWx1ZSgpLHRoaXMuX2NoYW5nZShudWxsLDApLHZvaWQgMCk6dGhpcy5fdmFsdWUoKX0sdmFsdWVzOmZ1bmN0aW9uKHQsaSl7dmFyIHMsbixhO2lmKGFyZ3VtZW50cy5sZW5ndGg+MSlyZXR1cm4gdGhpcy5vcHRpb25zLnZhbHVlc1t0XT10aGlzLl90cmltQWxpZ25WYWx1ZShpKSx0aGlzLl9yZWZyZXNoVmFsdWUoKSx0aGlzLl9jaGFuZ2UobnVsbCx0KSx2b2lkIDA7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMuX3ZhbHVlcygpO2lmKCFlLmlzQXJyYXkoYXJndW1lbnRzWzBdKSlyZXR1cm4gdGhpcy5vcHRpb25zLnZhbHVlcyYmdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGg/dGhpcy5fdmFsdWVzKHQpOnRoaXMudmFsdWUoKTtmb3Iocz10aGlzLm9wdGlvbnMudmFsdWVzLG49YXJndW1lbnRzWzBdLGE9MDtzLmxlbmd0aD5hO2ErPTEpc1thXT10aGlzLl90cmltQWxpZ25WYWx1ZShuW2FdKSx0aGlzLl9jaGFuZ2UobnVsbCxhKTt0aGlzLl9yZWZyZXNoVmFsdWUoKX0sX3NldE9wdGlvbjpmdW5jdGlvbih0LGkpe3ZhciBzLG49MDtzd2l0Y2goInJhbmdlIj09PXQmJnRoaXMub3B0aW9ucy5yYW5nZT09PSEwJiYoIm1pbiI9PT1pPyh0aGlzLm9wdGlvbnMudmFsdWU9dGhpcy5fdmFsdWVzKDApLHRoaXMub3B0aW9ucy52YWx1ZXM9bnVsbCk6Im1heCI9PT1pJiYodGhpcy5vcHRpb25zLnZhbHVlPXRoaXMuX3ZhbHVlcyh0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aC0xKSx0aGlzLm9wdGlvbnMudmFsdWVzPW51bGwpKSxlLmlzQXJyYXkodGhpcy5vcHRpb25zLnZhbHVlcykmJihuPXRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoKSwiZGlzYWJsZWQiPT09dCYmdGhpcy5lbGVtZW50LnRvZ2dsZUNsYXNzKCJ1aS1zdGF0ZS1kaXNhYmxlZCIsISFpKSx0aGlzLl9zdXBlcih0LGkpLHQpe2Nhc2Uib3JpZW50YXRpb24iOnRoaXMuX2RldGVjdE9yaWVudGF0aW9uKCksdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zbGlkZXItaG9yaXpvbnRhbCB1aS1zbGlkZXItdmVydGljYWwiKS5hZGRDbGFzcygidWktc2xpZGVyLSIrdGhpcy5vcmllbnRhdGlvbiksdGhpcy5fcmVmcmVzaFZhbHVlKCksdGhpcy5oYW5kbGVzLmNzcygiaG9yaXpvbnRhbCI9PT1pPyJib3R0b20iOiJsZWZ0IiwiIik7YnJlYWs7Y2FzZSJ2YWx1ZSI6dGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9yZWZyZXNoVmFsdWUoKSx0aGlzLl9jaGFuZ2UobnVsbCwwKSx0aGlzLl9hbmltYXRlT2ZmPSExO2JyZWFrO2Nhc2UidmFsdWVzIjpmb3IodGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9yZWZyZXNoVmFsdWUoKSxzPTA7bj5zO3MrPTEpdGhpcy5fY2hhbmdlKG51bGwscyk7dGhpcy5fYW5pbWF0ZU9mZj0hMTticmVhaztjYXNlInN0ZXAiOmNhc2UibWluIjpjYXNlIm1heCI6dGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9jYWxjdWxhdGVOZXdNYXgoKSx0aGlzLl9yZWZyZXNoVmFsdWUoKSx0aGlzLl9hbmltYXRlT2ZmPSExO2JyZWFrO2Nhc2UicmFuZ2UiOnRoaXMuX2FuaW1hdGVPZmY9ITAsdGhpcy5fcmVmcmVzaCgpLHRoaXMuX2FuaW1hdGVPZmY9ITF9fSxfdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9wdGlvbnMudmFsdWU7cmV0dXJuIGU9dGhpcy5fdHJpbUFsaWduVmFsdWUoZSl9LF92YWx1ZXM6ZnVuY3Rpb24oZSl7dmFyIHQsaSxzO2lmKGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHQ9dGhpcy5vcHRpb25zLnZhbHVlc1tlXSx0PXRoaXMuX3RyaW1BbGlnblZhbHVlKHQpO2lmKHRoaXMub3B0aW9ucy52YWx1ZXMmJnRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoKXtmb3IoaT10aGlzLm9wdGlvbnMudmFsdWVzLnNsaWNlKCkscz0wO2kubGVuZ3RoPnM7cys9MSlpW3NdPXRoaXMuX3RyaW1BbGlnblZhbHVlKGlbc10pO3JldHVybiBpfXJldHVybltdfSxfdHJpbUFsaWduVmFsdWU6ZnVuY3Rpb24oZSl7aWYodGhpcy5fdmFsdWVNaW4oKT49ZSlyZXR1cm4gdGhpcy5fdmFsdWVNaW4oKTtpZihlPj10aGlzLl92YWx1ZU1heCgpKXJldHVybiB0aGlzLl92YWx1ZU1heCgpO3ZhciB0PXRoaXMub3B0aW9ucy5zdGVwPjA/dGhpcy5vcHRpb25zLnN0ZXA6MSxpPShlLXRoaXMuX3ZhbHVlTWluKCkpJXQscz1lLWk7cmV0dXJuIDIqTWF0aC5hYnMoaSk+PXQmJihzKz1pPjA/dDotdCkscGFyc2VGbG9hdChzLnRvRml4ZWQoNSkpfSxfY2FsY3VsYXRlTmV3TWF4OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zLm1heCx0PXRoaXMuX3ZhbHVlTWluKCksaT10aGlzLm9wdGlvbnMuc3RlcCxzPU1hdGguZmxvb3IoKyhlLXQpLnRvRml4ZWQodGhpcy5fcHJlY2lzaW9uKCkpL2kpKmk7ZT1zK3QsdGhpcy5tYXg9cGFyc2VGbG9hdChlLnRvRml4ZWQodGhpcy5fcHJlY2lzaW9uKCkpKX0sX3ByZWNpc2lvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMuX3ByZWNpc2lvbk9mKHRoaXMub3B0aW9ucy5zdGVwKTtyZXR1cm4gbnVsbCE9PXRoaXMub3B0aW9ucy5taW4mJihlPU1hdGgubWF4KGUsdGhpcy5fcHJlY2lzaW9uT2YodGhpcy5vcHRpb25zLm1pbikpKSxlfSxfcHJlY2lzaW9uT2Y6ZnVuY3Rpb24oZSl7dmFyIHQ9IiIrZSxpPXQuaW5kZXhPZigiLiIpO3JldHVybi0xPT09aT8wOnQubGVuZ3RoLWktMX0sX3ZhbHVlTWluOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5taW59LF92YWx1ZU1heDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1heH0sX3JlZnJlc2hWYWx1ZTpmdW5jdGlvbigpe3ZhciB0LGkscyxuLGEsbz10aGlzLm9wdGlvbnMucmFuZ2Uscj10aGlzLm9wdGlvbnMsaD10aGlzLGw9dGhpcy5fYW5pbWF0ZU9mZj8hMTpyLmFuaW1hdGUsdT17fTt0aGlzLm9wdGlvbnMudmFsdWVzJiZ0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aD90aGlzLmhhbmRsZXMuZWFjaChmdW5jdGlvbihzKXtpPTEwMCooKGgudmFsdWVzKHMpLWguX3ZhbHVlTWluKCkpLyhoLl92YWx1ZU1heCgpLWguX3ZhbHVlTWluKCkpKSx1WyJob3Jpem9udGFsIj09PWgub3JpZW50YXRpb24/ImxlZnQiOiJib3R0b20iXT1pKyIlIixlKHRoaXMpLnN0b3AoMSwxKVtsPyJhbmltYXRlIjoiY3NzIl0odSxyLmFuaW1hdGUpLGgub3B0aW9ucy5yYW5nZT09PSEwJiYoImhvcml6b250YWwiPT09aC5vcmllbnRhdGlvbj8oMD09PXMmJmgucmFuZ2Uuc3RvcCgxLDEpW2w/ImFuaW1hdGUiOiJjc3MiXSh7bGVmdDppKyIlIn0sci5hbmltYXRlKSwxPT09cyYmaC5yYW5nZVtsPyJhbmltYXRlIjoiY3NzIl0oe3dpZHRoOmktdCsiJSJ9LHtxdWV1ZTohMSxkdXJhdGlvbjpyLmFuaW1hdGV9KSk6KDA9PT1zJiZoLnJhbmdlLnN0b3AoMSwxKVtsPyJhbmltYXRlIjoiY3NzIl0oe2JvdHRvbTppKyIlIn0sci5hbmltYXRlKSwxPT09cyYmaC5yYW5nZVtsPyJhbmltYXRlIjoiY3NzIl0oe2hlaWdodDppLXQrIiUifSx7cXVldWU6ITEsZHVyYXRpb246ci5hbmltYXRlfSkpKSx0PWl9KToocz10aGlzLnZhbHVlKCksbj10aGlzLl92YWx1ZU1pbigpLGE9dGhpcy5fdmFsdWVNYXgoKSxpPWEhPT1uPzEwMCooKHMtbikvKGEtbikpOjAsdVsiaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uPyJsZWZ0IjoiYm90dG9tIl09aSsiJSIsdGhpcy5oYW5kbGUuc3RvcCgxLDEpW2w/ImFuaW1hdGUiOiJjc3MiXSh1LHIuYW5pbWF0ZSksIm1pbiI9PT1vJiYiaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uJiZ0aGlzLnJhbmdlLnN0b3AoMSwxKVtsPyJhbmltYXRlIjoiY3NzIl0oe3dpZHRoOmkrIiUifSxyLmFuaW1hdGUpLCJtYXgiPT09byYmImhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbiYmdGhpcy5yYW5nZVtsPyJhbmltYXRlIjoiY3NzIl0oe3dpZHRoOjEwMC1pKyIlIn0se3F1ZXVlOiExLGR1cmF0aW9uOnIuYW5pbWF0ZX0pLCJtaW4iPT09byYmInZlcnRpY2FsIj09PXRoaXMub3JpZW50YXRpb24mJnRoaXMucmFuZ2Uuc3RvcCgxLDEpW2w/ImFuaW1hdGUiOiJjc3MiXSh7aGVpZ2h0OmkrIiUifSxyLmFuaW1hdGUpLCJtYXgiPT09byYmInZlcnRpY2FsIj09PXRoaXMub3JpZW50YXRpb24mJnRoaXMucmFuZ2VbbD8iYW5pbWF0ZSI6ImNzcyJdKHtoZWlnaHQ6MTAwLWkrIiUifSx7cXVldWU6ITEsZHVyYXRpb246ci5hbmltYXRlfSkpfSxfaGFuZGxlRXZlbnRzOntrZXlkb3duOmZ1bmN0aW9uKHQpe3ZhciBpLHMsbixhLG89ZSh0LnRhcmdldCkuZGF0YSgidWktc2xpZGVyLWhhbmRsZS1pbmRleCIpO3N3aXRjaCh0LmtleUNvZGUpe2Nhc2UgZS51aS5rZXlDb2RlLkhPTUU6Y2FzZSBlLnVpLmtleUNvZGUuRU5EOmNhc2UgZS51aS5rZXlDb2RlLlBBR0VfVVA6Y2FzZSBlLnVpLmtleUNvZGUuUEFHRV9ET1dOOmNhc2UgZS51aS5rZXlDb2RlLlVQOmNhc2UgZS51aS5rZXlDb2RlLlJJR0hUOmNhc2UgZS51aS5rZXlDb2RlLkRPV046Y2FzZSBlLnVpLmtleUNvZGUuTEVGVDppZih0LnByZXZlbnREZWZhdWx0KCksIXRoaXMuX2tleVNsaWRpbmcmJih0aGlzLl9rZXlTbGlkaW5nPSEwLGUodC50YXJnZXQpLmFkZENsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKSxpPXRoaXMuX3N0YXJ0KHQsbyksaT09PSExKSlyZXR1cm59c3dpdGNoKGE9dGhpcy5vcHRpb25zLnN0ZXAscz1uPXRoaXMub3B0aW9ucy52YWx1ZXMmJnRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoP3RoaXMudmFsdWVzKG8pOnRoaXMudmFsdWUoKSx0LmtleUNvZGUpe2Nhc2UgZS51aS5rZXlDb2RlLkhPTUU6bj10aGlzLl92YWx1ZU1pbigpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkVORDpuPXRoaXMuX3ZhbHVlTWF4KCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuUEFHRV9VUDpuPXRoaXMuX3RyaW1BbGlnblZhbHVlKHMrKHRoaXMuX3ZhbHVlTWF4KCktdGhpcy5fdmFsdWVNaW4oKSkvdGhpcy5udW1QYWdlcyk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuUEFHRV9ET1dOOm49dGhpcy5fdHJpbUFsaWduVmFsdWUocy0odGhpcy5fdmFsdWVNYXgoKS10aGlzLl92YWx1ZU1pbigpKS90aGlzLm51bVBhZ2VzKTticmVhaztjYXNlIGUudWkua2V5Q29kZS5VUDpjYXNlIGUudWkua2V5Q29kZS5SSUdIVDppZihzPT09dGhpcy5fdmFsdWVNYXgoKSlyZXR1cm47bj10aGlzLl90cmltQWxpZ25WYWx1ZShzK2EpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkRPV046Y2FzZSBlLnVpLmtleUNvZGUuTEVGVDppZihzPT09dGhpcy5fdmFsdWVNaW4oKSlyZXR1cm47bj10aGlzLl90cmltQWxpZ25WYWx1ZShzLWEpfXRoaXMuX3NsaWRlKHQsbyxuKX0sa2V5dXA6ZnVuY3Rpb24odCl7dmFyIGk9ZSh0LnRhcmdldCkuZGF0YSgidWktc2xpZGVyLWhhbmRsZS1pbmRleCIpO3RoaXMuX2tleVNsaWRpbmcmJih0aGlzLl9rZXlTbGlkaW5nPSExLHRoaXMuX3N0b3AodCxpKSx0aGlzLl9jaGFuZ2UodCxpKSxlKHQudGFyZ2V0KS5yZW1vdmVDbGFzcygidWktc3RhdGUtYWN0aXZlIikpfX19KSxlLndpZGdldCgidWkuc3Bpbm5lciIse3ZlcnNpb246IjEuMTEuNCIsZGVmYXVsdEVsZW1lbnQ6IjxpbnB1dD4iLHdpZGdldEV2ZW50UHJlZml4OiJzcGluIixvcHRpb25zOntjdWx0dXJlOm51bGwsaWNvbnM6e2Rvd246InVpLWljb24tdHJpYW5nbGUtMS1zIix1cDoidWktaWNvbi10cmlhbmdsZS0xLW4ifSxpbmNyZW1lbnRhbDohMCxtYXg6bnVsbCxtaW46bnVsbCxudW1iZXJGb3JtYXQ6bnVsbCxwYWdlOjEwLHN0ZXA6MSxjaGFuZ2U6bnVsbCxzcGluOm51bGwsc3RhcnQ6bnVsbCxzdG9wOm51bGx9LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLl9zZXRPcHRpb24oIm1heCIsdGhpcy5vcHRpb25zLm1heCksdGhpcy5fc2V0T3B0aW9uKCJtaW4iLHRoaXMub3B0aW9ucy5taW4pLHRoaXMuX3NldE9wdGlvbigic3RlcCIsdGhpcy5vcHRpb25zLnN0ZXApLCIiIT09dGhpcy52YWx1ZSgpJiZ0aGlzLl92YWx1ZSh0aGlzLmVsZW1lbnQudmFsKCksITApLHRoaXMuX2RyYXcoKSx0aGlzLl9vbih0aGlzLl9ldmVudHMpLHRoaXMuX3JlZnJlc2goKSx0aGlzLl9vbih0aGlzLndpbmRvdyx7YmVmb3JldW5sb2FkOmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnJlbW92ZUF0dHIoImF1dG9jb21wbGV0ZSIpfX0pfSxfZ2V0Q3JlYXRlT3B0aW9uczpmdW5jdGlvbigpe3ZhciB0PXt9LGk9dGhpcy5lbGVtZW50O3JldHVybiBlLmVhY2goWyJtaW4iLCJtYXgiLCJzdGVwIl0sZnVuY3Rpb24oZSxzKXt2YXIgbj1pLmF0dHIocyk7dm9pZCAwIT09biYmbi5sZW5ndGgmJih0W3NdPW4pfSksdH0sX2V2ZW50czp7a2V5ZG93bjpmdW5jdGlvbihlKXt0aGlzLl9zdGFydChlKSYmdGhpcy5fa2V5ZG93bihlKSYmZS5wcmV2ZW50RGVmYXVsdCgpfSxrZXl1cDoiX3N0b3AiLGZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5wcmV2aW91cz10aGlzLmVsZW1lbnQudmFsKCl9LGJsdXI6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2FuY2VsQmx1cj8oZGVsZXRlIHRoaXMuY2FuY2VsQmx1cix2b2lkIDApOih0aGlzLl9zdG9wKCksdGhpcy5fcmVmcmVzaCgpLHRoaXMucHJldmlvdXMhPT10aGlzLmVsZW1lbnQudmFsKCkmJnRoaXMuX3RyaWdnZXIoImNoYW5nZSIsZSksdm9pZCAwKX0sbW91c2V3aGVlbDpmdW5jdGlvbihlLHQpe2lmKHQpe2lmKCF0aGlzLnNwaW5uaW5nJiYhdGhpcy5fc3RhcnQoZSkpcmV0dXJuITE7dGhpcy5fc3BpbigodD4wPzE6LTEpKnRoaXMub3B0aW9ucy5zdGVwLGUpLGNsZWFyVGltZW91dCh0aGlzLm1vdXNld2hlZWxUaW1lciksdGhpcy5tb3VzZXdoZWVsVGltZXI9dGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt0aGlzLnNwaW5uaW5nJiZ0aGlzLl9zdG9wKGUpfSwxMDApLGUucHJldmVudERlZmF1bHQoKX19LCJtb3VzZWRvd24gLnVpLXNwaW5uZXItYnV0dG9uIjpmdW5jdGlvbih0KXtmdW5jdGlvbiBpKCl7dmFyIGU9dGhpcy5lbGVtZW50WzBdPT09dGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50O2V8fCh0aGlzLmVsZW1lbnQuZm9jdXMoKSx0aGlzLnByZXZpb3VzPXMsdGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt0aGlzLnByZXZpb3VzPXN9KSl9dmFyIHM7cz10aGlzLmVsZW1lbnRbMF09PT10aGlzLmRvY3VtZW50WzBdLmFjdGl2ZUVsZW1lbnQ/dGhpcy5wcmV2aW91czp0aGlzLmVsZW1lbnQudmFsKCksdC5wcmV2ZW50RGVmYXVsdCgpLGkuY2FsbCh0aGlzKSx0aGlzLmNhbmNlbEJsdXI9ITAsdGhpcy5fZGVsYXkoZnVuY3Rpb24oKXtkZWxldGUgdGhpcy5jYW5jZWxCbHVyLGkuY2FsbCh0aGlzKX0pLHRoaXMuX3N0YXJ0KHQpIT09ITEmJnRoaXMuX3JlcGVhdChudWxsLGUodC5jdXJyZW50VGFyZ2V0KS5oYXNDbGFzcygidWktc3Bpbm5lci11cCIpPzE6LTEsdCl9LCJtb3VzZXVwIC51aS1zcGlubmVyLWJ1dHRvbiI6Il9zdG9wIiwibW91c2VlbnRlciAudWktc3Bpbm5lci1idXR0b24iOmZ1bmN0aW9uKHQpe3JldHVybiBlKHQuY3VycmVudFRhcmdldCkuaGFzQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpP3RoaXMuX3N0YXJ0KHQpPT09ITE/ITE6KHRoaXMuX3JlcGVhdChudWxsLGUodC5jdXJyZW50VGFyZ2V0KS5oYXNDbGFzcygidWktc3Bpbm5lci11cCIpPzE6LTEsdCksdm9pZCAwKTp2b2lkIDB9LCJtb3VzZWxlYXZlIC51aS1zcGlubmVyLWJ1dHRvbiI6Il9zdG9wIn0sX2RyYXc6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnVpU3Bpbm5lcj10aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLXNwaW5uZXItaW5wdXQiKS5hdHRyKCJhdXRvY29tcGxldGUiLCJvZmYiKS53cmFwKHRoaXMuX3VpU3Bpbm5lckh0bWwoKSkucGFyZW50KCkuYXBwZW5kKHRoaXMuX2J1dHRvbkh0bWwoKSk7dGhpcy5lbGVtZW50LmF0dHIoInJvbGUiLCJzcGluYnV0dG9uIiksdGhpcy5idXR0b25zPWUuZmluZCgiLnVpLXNwaW5uZXItYnV0dG9uIikuYXR0cigidGFiSW5kZXgiLC0xKS5idXR0b24oKS5yZW1vdmVDbGFzcygidWktY29ybmVyLWFsbCIpLHRoaXMuYnV0dG9ucy5oZWlnaHQoKT5NYXRoLmNlaWwoLjUqZS5oZWlnaHQoKSkmJmUuaGVpZ2h0KCk+MCYmZS5oZWlnaHQoZS5oZWlnaHQoKSksdGhpcy5vcHRpb25zLmRpc2FibGVkJiZ0aGlzLmRpc2FibGUoKX0sX2tleWRvd246ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5vcHRpb25zLHM9ZS51aS5rZXlDb2RlO3N3aXRjaCh0LmtleUNvZGUpe2Nhc2Ugcy5VUDpyZXR1cm4gdGhpcy5fcmVwZWF0KG51bGwsMSx0KSwhMDtjYXNlIHMuRE9XTjpyZXR1cm4gdGhpcy5fcmVwZWF0KG51bGwsLTEsdCksITA7Y2FzZSBzLlBBR0VfVVA6cmV0dXJuIHRoaXMuX3JlcGVhdChudWxsLGkucGFnZSx0KSwhMDtjYXNlIHMuUEFHRV9ET1dOOnJldHVybiB0aGlzLl9yZXBlYXQobnVsbCwtaS5wYWdlLHQpLCEwfXJldHVybiExfSxfdWlTcGlubmVySHRtbDpmdW5jdGlvbigpe3JldHVybiI8c3BhbiBjbGFzcz0ndWktc3Bpbm5lciB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCc+PC9zcGFuPiJ9LF9idXR0b25IdG1sOmZ1bmN0aW9uKCl7cmV0dXJuIjxhIGNsYXNzPSd1aS1zcGlubmVyLWJ1dHRvbiB1aS1zcGlubmVyLXVwIHVpLWNvcm5lci10cic+PHNwYW4gY2xhc3M9J3VpLWljb24gIit0aGlzLm9wdGlvbnMuaWNvbnMudXArIic+JiM5NjUwOzwvc3Bhbj4iKyI8L2E+IisiPGEgY2xhc3M9J3VpLXNwaW5uZXItYnV0dG9uIHVpLXNwaW5uZXItZG93biB1aS1jb3JuZXItYnInPiIrIjxzcGFuIGNsYXNzPSd1aS1pY29uICIrdGhpcy5vcHRpb25zLmljb25zLmRvd24rIic+JiM5NjYwOzwvc3Bhbj4iKyI8L2E+In0sX3N0YXJ0OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnNwaW5uaW5nfHx0aGlzLl90cmlnZ2VyKCJzdGFydCIsZSkhPT0hMT8odGhpcy5jb3VudGVyfHwodGhpcy5jb3VudGVyPTEpLHRoaXMuc3Bpbm5pbmc9ITAsITApOiExfSxfcmVwZWF0OmZ1bmN0aW9uKGUsdCxpKXtlPWV8fDUwMCxjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy50aW1lcj10aGlzLl9kZWxheShmdW5jdGlvbigpe3RoaXMuX3JlcGVhdCg0MCx0LGkpfSxlKSx0aGlzLl9zcGluKHQqdGhpcy5vcHRpb25zLnN0ZXAsaSl9LF9zcGluOmZ1bmN0aW9uKGUsdCl7dmFyIGk9dGhpcy52YWx1ZSgpfHwwO3RoaXMuY291bnRlcnx8KHRoaXMuY291bnRlcj0xKSxpPXRoaXMuX2FkanVzdFZhbHVlKGkrZSp0aGlzLl9pbmNyZW1lbnQodGhpcy5jb3VudGVyKSksdGhpcy5zcGlubmluZyYmdGhpcy5fdHJpZ2dlcigic3BpbiIsdCx7dmFsdWU6aX0pPT09ITF8fCh0aGlzLl92YWx1ZShpKSx0aGlzLmNvdW50ZXIrKyl9LF9pbmNyZW1lbnQ6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5vcHRpb25zLmluY3JlbWVudGFsO3JldHVybiBpP2UuaXNGdW5jdGlvbihpKT9pKHQpOk1hdGguZmxvb3IodCp0KnQvNWU0LXQqdC81MDArMTcqdC8yMDArMSk6MX0sX3ByZWNpc2lvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMuX3ByZWNpc2lvbk9mKHRoaXMub3B0aW9ucy5zdGVwKTtyZXR1cm4gbnVsbCE9PXRoaXMub3B0aW9ucy5taW4mJihlPU1hdGgubWF4KGUsdGhpcy5fcHJlY2lzaW9uT2YodGhpcy5vcHRpb25zLm1pbikpKSxlfSxfcHJlY2lzaW9uT2Y6ZnVuY3Rpb24oZSl7dmFyIHQ9IiIrZSxpPXQuaW5kZXhPZigiLiIpO3JldHVybi0xPT09aT8wOnQubGVuZ3RoLWktMX0sX2FkanVzdFZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0LGkscz10aGlzLm9wdGlvbnM7cmV0dXJuIHQ9bnVsbCE9PXMubWluP3MubWluOjAsaT1lLXQsaT1NYXRoLnJvdW5kKGkvcy5zdGVwKSpzLnN0ZXAsZT10K2ksZT1wYXJzZUZsb2F0KGUudG9GaXhlZCh0aGlzLl9wcmVjaXNpb24oKSkpLG51bGwhPT1zLm1heCYmZT5zLm1heD9zLm1heDpudWxsIT09cy5taW4mJnMubWluPmU/cy5taW46ZX0sX3N0b3A6ZnVuY3Rpb24oZSl7dGhpcy5zcGlubmluZyYmKGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSxjbGVhclRpbWVvdXQodGhpcy5tb3VzZXdoZWVsVGltZXIpLHRoaXMuY291bnRlcj0wLHRoaXMuc3Bpbm5pbmc9ITEsdGhpcy5fdHJpZ2dlcigic3RvcCIsZSkpfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKGUsdCl7aWYoImN1bHR1cmUiPT09ZXx8Im51bWJlckZvcm1hdCI9PT1lKXt2YXIgaT10aGlzLl9wYXJzZSh0aGlzLmVsZW1lbnQudmFsKCkpO3JldHVybiB0aGlzLm9wdGlvbnNbZV09dCx0aGlzLmVsZW1lbnQudmFsKHRoaXMuX2Zvcm1hdChpKSksdm9pZCAwfSgibWF4Ij09PWV8fCJtaW4iPT09ZXx8InN0ZXAiPT09ZSkmJiJzdHJpbmciPT10eXBlb2YgdCYmKHQ9dGhpcy5fcGFyc2UodCkpLCJpY29ucyI9PT1lJiYodGhpcy5idXR0b25zLmZpcnN0KCkuZmluZCgiLnVpLWljb24iKS5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuaWNvbnMudXApLmFkZENsYXNzKHQudXApLHRoaXMuYnV0dG9ucy5sYXN0KCkuZmluZCgiLnVpLWljb24iKS5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuaWNvbnMuZG93bikuYWRkQ2xhc3ModC5kb3duKSksdGhpcy5fc3VwZXIoZSx0KSwiZGlzYWJsZWQiPT09ZSYmKHRoaXMud2lkZ2V0KCkudG9nZ2xlQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIiwhIXQpLHRoaXMuZWxlbWVudC5wcm9wKCJkaXNhYmxlZCIsISF0KSx0aGlzLmJ1dHRvbnMuYnV0dG9uKHQ/ImRpc2FibGUiOiJlbmFibGUiKSl9LF9zZXRPcHRpb25zOnMoZnVuY3Rpb24oZSl7dGhpcy5fc3VwZXIoZSl9KSxfcGFyc2U6ZnVuY3Rpb24oZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlJiYiIiE9PWUmJihlPXdpbmRvdy5HbG9iYWxpemUmJnRoaXMub3B0aW9ucy5udW1iZXJGb3JtYXQ/R2xvYmFsaXplLnBhcnNlRmxvYXQoZSwxMCx0aGlzLm9wdGlvbnMuY3VsdHVyZSk6K2UpLCIiPT09ZXx8aXNOYU4oZSk/bnVsbDplCn0sX2Zvcm1hdDpmdW5jdGlvbihlKXtyZXR1cm4iIj09PWU/IiI6d2luZG93Lkdsb2JhbGl6ZSYmdGhpcy5vcHRpb25zLm51bWJlckZvcm1hdD9HbG9iYWxpemUuZm9ybWF0KGUsdGhpcy5vcHRpb25zLm51bWJlckZvcm1hdCx0aGlzLm9wdGlvbnMuY3VsdHVyZSk6ZX0sX3JlZnJlc2g6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQuYXR0cih7ImFyaWEtdmFsdWVtaW4iOnRoaXMub3B0aW9ucy5taW4sImFyaWEtdmFsdWVtYXgiOnRoaXMub3B0aW9ucy5tYXgsImFyaWEtdmFsdWVub3ciOnRoaXMuX3BhcnNlKHRoaXMuZWxlbWVudC52YWwoKSl9KX0saXNWYWxpZDpmdW5jdGlvbigpe3ZhciBlPXRoaXMudmFsdWUoKTtyZXR1cm4gbnVsbD09PWU/ITE6ZT09PXRoaXMuX2FkanVzdFZhbHVlKGUpfSxfdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgaTsiIiE9PWUmJihpPXRoaXMuX3BhcnNlKGUpLG51bGwhPT1pJiYodHx8KGk9dGhpcy5fYWRqdXN0VmFsdWUoaSkpLGU9dGhpcy5fZm9ybWF0KGkpKSksdGhpcy5lbGVtZW50LnZhbChlKSx0aGlzLl9yZWZyZXNoKCl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zcGlubmVyLWlucHV0IikucHJvcCgiZGlzYWJsZWQiLCExKS5yZW1vdmVBdHRyKCJhdXRvY29tcGxldGUiKS5yZW1vdmVBdHRyKCJyb2xlIikucmVtb3ZlQXR0cigiYXJpYS12YWx1ZW1pbiIpLnJlbW92ZUF0dHIoImFyaWEtdmFsdWVtYXgiKS5yZW1vdmVBdHRyKCJhcmlhLXZhbHVlbm93IiksdGhpcy51aVNwaW5uZXIucmVwbGFjZVdpdGgodGhpcy5lbGVtZW50KX0sc3RlcFVwOnMoZnVuY3Rpb24oZSl7dGhpcy5fc3RlcFVwKGUpfSksX3N0ZXBVcDpmdW5jdGlvbihlKXt0aGlzLl9zdGFydCgpJiYodGhpcy5fc3BpbigoZXx8MSkqdGhpcy5vcHRpb25zLnN0ZXApLHRoaXMuX3N0b3AoKSl9LHN0ZXBEb3duOnMoZnVuY3Rpb24oZSl7dGhpcy5fc3RlcERvd24oZSl9KSxfc3RlcERvd246ZnVuY3Rpb24oZSl7dGhpcy5fc3RhcnQoKSYmKHRoaXMuX3NwaW4oKGV8fDEpKi10aGlzLm9wdGlvbnMuc3RlcCksdGhpcy5fc3RvcCgpKX0scGFnZVVwOnMoZnVuY3Rpb24oZSl7dGhpcy5fc3RlcFVwKChlfHwxKSp0aGlzLm9wdGlvbnMucGFnZSl9KSxwYWdlRG93bjpzKGZ1bmN0aW9uKGUpe3RoaXMuX3N0ZXBEb3duKChlfHwxKSp0aGlzLm9wdGlvbnMucGFnZSl9KSx2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocyh0aGlzLl92YWx1ZSkuY2FsbCh0aGlzLGUpLHZvaWQgMCk6dGhpcy5fcGFyc2UodGhpcy5lbGVtZW50LnZhbCgpKX0sd2lkZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudWlTcGlubmVyfX0pLGUud2lkZ2V0KCJ1aS50YWJzIix7dmVyc2lvbjoiMS4xMS40IixkZWxheTozMDAsb3B0aW9uczp7YWN0aXZlOm51bGwsY29sbGFwc2libGU6ITEsZXZlbnQ6ImNsaWNrIixoZWlnaHRTdHlsZToiY29udGVudCIsaGlkZTpudWxsLHNob3c6bnVsbCxhY3RpdmF0ZTpudWxsLGJlZm9yZUFjdGl2YXRlOm51bGwsYmVmb3JlTG9hZDpudWxsLGxvYWQ6bnVsbH0sX2lzTG9jYWw6ZnVuY3Rpb24oKXt2YXIgZT0vIy4qJC87cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBpLHM7dD10LmNsb25lTm9kZSghMSksaT10LmhyZWYucmVwbGFjZShlLCIiKSxzPWxvY2F0aW9uLmhyZWYucmVwbGFjZShlLCIiKTt0cnl7aT1kZWNvZGVVUklDb21wb25lbnQoaSl9Y2F0Y2gobil7fXRyeXtzPWRlY29kZVVSSUNvbXBvbmVudChzKX1jYXRjaChuKXt9cmV0dXJuIHQuaGFzaC5sZW5ndGg+MSYmaT09PXN9fSgpLF9jcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGk9dGhpcy5vcHRpb25zO3RoaXMucnVubmluZz0hMSx0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLXRhYnMgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwiKS50b2dnbGVDbGFzcygidWktdGFicy1jb2xsYXBzaWJsZSIsaS5jb2xsYXBzaWJsZSksdGhpcy5fcHJvY2Vzc1RhYnMoKSxpLmFjdGl2ZT10aGlzLl9pbml0aWFsQWN0aXZlKCksZS5pc0FycmF5KGkuZGlzYWJsZWQpJiYoaS5kaXNhYmxlZD1lLnVuaXF1ZShpLmRpc2FibGVkLmNvbmNhdChlLm1hcCh0aGlzLnRhYnMuZmlsdGVyKCIudWktc3RhdGUtZGlzYWJsZWQiKSxmdW5jdGlvbihlKXtyZXR1cm4gdC50YWJzLmluZGV4KGUpfSkpKS5zb3J0KCkpLHRoaXMuYWN0aXZlPXRoaXMub3B0aW9ucy5hY3RpdmUhPT0hMSYmdGhpcy5hbmNob3JzLmxlbmd0aD90aGlzLl9maW5kQWN0aXZlKGkuYWN0aXZlKTplKCksdGhpcy5fcmVmcmVzaCgpLHRoaXMuYWN0aXZlLmxlbmd0aCYmdGhpcy5sb2FkKGkuYWN0aXZlKX0sX2luaXRpYWxBY3RpdmU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMuYWN0aXZlLGk9dGhpcy5vcHRpb25zLmNvbGxhcHNpYmxlLHM9bG9jYXRpb24uaGFzaC5zdWJzdHJpbmcoMSk7cmV0dXJuIG51bGw9PT10JiYocyYmdGhpcy50YWJzLmVhY2goZnVuY3Rpb24oaSxuKXtyZXR1cm4gZShuKS5hdHRyKCJhcmlhLWNvbnRyb2xzIik9PT1zPyh0PWksITEpOnZvaWQgMH0pLG51bGw9PT10JiYodD10aGlzLnRhYnMuaW5kZXgodGhpcy50YWJzLmZpbHRlcigiLnVpLXRhYnMtYWN0aXZlIikpKSwobnVsbD09PXR8fC0xPT09dCkmJih0PXRoaXMudGFicy5sZW5ndGg/MDohMSkpLHQhPT0hMSYmKHQ9dGhpcy50YWJzLmluZGV4KHRoaXMudGFicy5lcSh0KSksLTE9PT10JiYodD1pPyExOjApKSwhaSYmdD09PSExJiZ0aGlzLmFuY2hvcnMubGVuZ3RoJiYodD0wKSx0fSxfZ2V0Q3JlYXRlRXZlbnREYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3RhYjp0aGlzLmFjdGl2ZSxwYW5lbDp0aGlzLmFjdGl2ZS5sZW5ndGg/dGhpcy5fZ2V0UGFuZWxGb3JUYWIodGhpcy5hY3RpdmUpOmUoKX19LF90YWJLZXlkb3duOmZ1bmN0aW9uKHQpe3ZhciBpPWUodGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50KS5jbG9zZXN0KCJsaSIpLHM9dGhpcy50YWJzLmluZGV4KGkpLG49ITA7aWYoIXRoaXMuX2hhbmRsZVBhZ2VOYXYodCkpe3N3aXRjaCh0LmtleUNvZGUpe2Nhc2UgZS51aS5rZXlDb2RlLlJJR0hUOmNhc2UgZS51aS5rZXlDb2RlLkRPV046cysrO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLlVQOmNhc2UgZS51aS5rZXlDb2RlLkxFRlQ6bj0hMSxzLS07YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuRU5EOnM9dGhpcy5hbmNob3JzLmxlbmd0aC0xO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkhPTUU6cz0wO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLlNQQUNFOnJldHVybiB0LnByZXZlbnREZWZhdWx0KCksY2xlYXJUaW1lb3V0KHRoaXMuYWN0aXZhdGluZyksdGhpcy5fYWN0aXZhdGUocyksdm9pZCAwO2Nhc2UgZS51aS5rZXlDb2RlLkVOVEVSOnJldHVybiB0LnByZXZlbnREZWZhdWx0KCksY2xlYXJUaW1lb3V0KHRoaXMuYWN0aXZhdGluZyksdGhpcy5fYWN0aXZhdGUocz09PXRoaXMub3B0aW9ucy5hY3RpdmU/ITE6cyksdm9pZCAwO2RlZmF1bHQ6cmV0dXJufXQucHJldmVudERlZmF1bHQoKSxjbGVhclRpbWVvdXQodGhpcy5hY3RpdmF0aW5nKSxzPXRoaXMuX2ZvY3VzTmV4dFRhYihzLG4pLHQuY3RybEtleXx8dC5tZXRhS2V5fHwoaS5hdHRyKCJhcmlhLXNlbGVjdGVkIiwiZmFsc2UiKSx0aGlzLnRhYnMuZXEocykuYXR0cigiYXJpYS1zZWxlY3RlZCIsInRydWUiKSx0aGlzLmFjdGl2YXRpbmc9dGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt0aGlzLm9wdGlvbigiYWN0aXZlIixzKX0sdGhpcy5kZWxheSkpfX0sX3BhbmVsS2V5ZG93bjpmdW5jdGlvbih0KXt0aGlzLl9oYW5kbGVQYWdlTmF2KHQpfHx0LmN0cmxLZXkmJnQua2V5Q29kZT09PWUudWkua2V5Q29kZS5VUCYmKHQucHJldmVudERlZmF1bHQoKSx0aGlzLmFjdGl2ZS5mb2N1cygpKX0sX2hhbmRsZVBhZ2VOYXY6ZnVuY3Rpb24odCl7cmV0dXJuIHQuYWx0S2V5JiZ0LmtleUNvZGU9PT1lLnVpLmtleUNvZGUuUEFHRV9VUD8odGhpcy5fYWN0aXZhdGUodGhpcy5fZm9jdXNOZXh0VGFiKHRoaXMub3B0aW9ucy5hY3RpdmUtMSwhMSkpLCEwKTp0LmFsdEtleSYmdC5rZXlDb2RlPT09ZS51aS5rZXlDb2RlLlBBR0VfRE9XTj8odGhpcy5fYWN0aXZhdGUodGhpcy5fZm9jdXNOZXh0VGFiKHRoaXMub3B0aW9ucy5hY3RpdmUrMSwhMCkpLCEwKTp2b2lkIDB9LF9maW5kTmV4dFRhYjpmdW5jdGlvbih0LGkpe2Z1bmN0aW9uIHMoKXtyZXR1cm4gdD5uJiYodD0wKSwwPnQmJih0PW4pLHR9Zm9yKHZhciBuPXRoaXMudGFicy5sZW5ndGgtMTstMSE9PWUuaW5BcnJheShzKCksdGhpcy5vcHRpb25zLmRpc2FibGVkKTspdD1pP3QrMTp0LTE7cmV0dXJuIHR9LF9mb2N1c05leHRUYWI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT10aGlzLl9maW5kTmV4dFRhYihlLHQpLHRoaXMudGFicy5lcShlKS5mb2N1cygpLGV9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4iYWN0aXZlIj09PWU/KHRoaXMuX2FjdGl2YXRlKHQpLHZvaWQgMCk6ImRpc2FibGVkIj09PWU/KHRoaXMuX3NldHVwRGlzYWJsZWQodCksdm9pZCAwKToodGhpcy5fc3VwZXIoZSx0KSwiY29sbGFwc2libGUiPT09ZSYmKHRoaXMuZWxlbWVudC50b2dnbGVDbGFzcygidWktdGFicy1jb2xsYXBzaWJsZSIsdCksdHx8dGhpcy5vcHRpb25zLmFjdGl2ZSE9PSExfHx0aGlzLl9hY3RpdmF0ZSgwKSksImV2ZW50Ij09PWUmJnRoaXMuX3NldHVwRXZlbnRzKHQpLCJoZWlnaHRTdHlsZSI9PT1lJiZ0aGlzLl9zZXR1cEhlaWdodFN0eWxlKHQpLHZvaWQgMCl9LF9zYW5pdGl6ZVNlbGVjdG9yOmZ1bmN0aW9uKGUpe3JldHVybiBlP2UucmVwbGFjZSgvWyEiJCUmJygpKissLlwvOjs8PT4/QFxbXF1cXmB7fH1+XS9nLCJcXCQmIik6IiJ9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMsaT10aGlzLnRhYmxpc3QuY2hpbGRyZW4oIjpoYXMoYVtocmVmXSkiKTt0LmRpc2FibGVkPWUubWFwKGkuZmlsdGVyKCIudWktc3RhdGUtZGlzYWJsZWQiKSxmdW5jdGlvbihlKXtyZXR1cm4gaS5pbmRleChlKX0pLHRoaXMuX3Byb2Nlc3NUYWJzKCksdC5hY3RpdmUhPT0hMSYmdGhpcy5hbmNob3JzLmxlbmd0aD90aGlzLmFjdGl2ZS5sZW5ndGgmJiFlLmNvbnRhaW5zKHRoaXMudGFibGlzdFswXSx0aGlzLmFjdGl2ZVswXSk/dGhpcy50YWJzLmxlbmd0aD09PXQuZGlzYWJsZWQubGVuZ3RoPyh0LmFjdGl2ZT0hMSx0aGlzLmFjdGl2ZT1lKCkpOnRoaXMuX2FjdGl2YXRlKHRoaXMuX2ZpbmROZXh0VGFiKE1hdGgubWF4KDAsdC5hY3RpdmUtMSksITEpKTp0LmFjdGl2ZT10aGlzLnRhYnMuaW5kZXgodGhpcy5hY3RpdmUpOih0LmFjdGl2ZT0hMSx0aGlzLmFjdGl2ZT1lKCkpLHRoaXMuX3JlZnJlc2goKX0sX3JlZnJlc2g6ZnVuY3Rpb24oKXt0aGlzLl9zZXR1cERpc2FibGVkKHRoaXMub3B0aW9ucy5kaXNhYmxlZCksdGhpcy5fc2V0dXBFdmVudHModGhpcy5vcHRpb25zLmV2ZW50KSx0aGlzLl9zZXR1cEhlaWdodFN0eWxlKHRoaXMub3B0aW9ucy5oZWlnaHRTdHlsZSksdGhpcy50YWJzLm5vdCh0aGlzLmFjdGl2ZSkuYXR0cih7ImFyaWEtc2VsZWN0ZWQiOiJmYWxzZSIsImFyaWEtZXhwYW5kZWQiOiJmYWxzZSIsdGFiSW5kZXg6LTF9KSx0aGlzLnBhbmVscy5ub3QodGhpcy5fZ2V0UGFuZWxGb3JUYWIodGhpcy5hY3RpdmUpKS5oaWRlKCkuYXR0cih7ImFyaWEtaGlkZGVuIjoidHJ1ZSJ9KSx0aGlzLmFjdGl2ZS5sZW5ndGg/KHRoaXMuYWN0aXZlLmFkZENsYXNzKCJ1aS10YWJzLWFjdGl2ZSB1aS1zdGF0ZS1hY3RpdmUiKS5hdHRyKHsiYXJpYS1zZWxlY3RlZCI6InRydWUiLCJhcmlhLWV4cGFuZGVkIjoidHJ1ZSIsdGFiSW5kZXg6MH0pLHRoaXMuX2dldFBhbmVsRm9yVGFiKHRoaXMuYWN0aXZlKS5zaG93KCkuYXR0cih7ImFyaWEtaGlkZGVuIjoiZmFsc2UifSkpOnRoaXMudGFicy5lcSgwKS5hdHRyKCJ0YWJJbmRleCIsMCl9LF9wcm9jZXNzVGFiczpmdW5jdGlvbigpe3ZhciB0PXRoaXMsaT10aGlzLnRhYnMscz10aGlzLmFuY2hvcnMsbj10aGlzLnBhbmVsczt0aGlzLnRhYmxpc3Q9dGhpcy5fZ2V0TGlzdCgpLmFkZENsYXNzKCJ1aS10YWJzLW5hdiB1aS1oZWxwZXItcmVzZXQgdWktaGVscGVyLWNsZWFyZml4IHVpLXdpZGdldC1oZWFkZXIgdWktY29ybmVyLWFsbCIpLmF0dHIoInJvbGUiLCJ0YWJsaXN0IikuZGVsZWdhdGUoIj4gbGkiLCJtb3VzZWRvd24iK3RoaXMuZXZlbnROYW1lc3BhY2UsZnVuY3Rpb24odCl7ZSh0aGlzKS5pcygiLnVpLXN0YXRlLWRpc2FibGVkIikmJnQucHJldmVudERlZmF1bHQoKX0pLmRlbGVnYXRlKCIudWktdGFicy1hbmNob3IiLCJmb2N1cyIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbigpe2UodGhpcykuY2xvc2VzdCgibGkiKS5pcygiLnVpLXN0YXRlLWRpc2FibGVkIikmJnRoaXMuYmx1cigpfSksdGhpcy50YWJzPXRoaXMudGFibGlzdC5maW5kKCI+IGxpOmhhcyhhW2hyZWZdKSIpLmFkZENsYXNzKCJ1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci10b3AiKS5hdHRyKHtyb2xlOiJ0YWIiLHRhYkluZGV4Oi0xfSksdGhpcy5hbmNob3JzPXRoaXMudGFicy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gZSgiYSIsdGhpcylbMF19KS5hZGRDbGFzcygidWktdGFicy1hbmNob3IiKS5hdHRyKHtyb2xlOiJwcmVzZW50YXRpb24iLHRhYkluZGV4Oi0xfSksdGhpcy5wYW5lbHM9ZSgpLHRoaXMuYW5jaG9ycy5lYWNoKGZ1bmN0aW9uKGkscyl7dmFyIG4sYSxvLHI9ZShzKS51bmlxdWVJZCgpLmF0dHIoImlkIiksaD1lKHMpLmNsb3Nlc3QoImxpIiksbD1oLmF0dHIoImFyaWEtY29udHJvbHMiKTt0Ll9pc0xvY2FsKHMpPyhuPXMuaGFzaCxvPW4uc3Vic3RyaW5nKDEpLGE9dC5lbGVtZW50LmZpbmQodC5fc2FuaXRpemVTZWxlY3RvcihuKSkpOihvPWguYXR0cigiYXJpYS1jb250cm9scyIpfHxlKHt9KS51bmlxdWVJZCgpWzBdLmlkLG49IiMiK28sYT10LmVsZW1lbnQuZmluZChuKSxhLmxlbmd0aHx8KGE9dC5fY3JlYXRlUGFuZWwobyksYS5pbnNlcnRBZnRlcih0LnBhbmVsc1tpLTFdfHx0LnRhYmxpc3QpKSxhLmF0dHIoImFyaWEtbGl2ZSIsInBvbGl0ZSIpKSxhLmxlbmd0aCYmKHQucGFuZWxzPXQucGFuZWxzLmFkZChhKSksbCYmaC5kYXRhKCJ1aS10YWJzLWFyaWEtY29udHJvbHMiLGwpLGguYXR0cih7ImFyaWEtY29udHJvbHMiOm8sImFyaWEtbGFiZWxsZWRieSI6cn0pLGEuYXR0cigiYXJpYS1sYWJlbGxlZGJ5IixyKX0pLHRoaXMucGFuZWxzLmFkZENsYXNzKCJ1aS10YWJzLXBhbmVsIHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1ib3R0b20iKS5hdHRyKCJyb2xlIiwidGFicGFuZWwiKSxpJiYodGhpcy5fb2ZmKGkubm90KHRoaXMudGFicykpLHRoaXMuX29mZihzLm5vdCh0aGlzLmFuY2hvcnMpKSx0aGlzLl9vZmYobi5ub3QodGhpcy5wYW5lbHMpKSl9LF9nZXRMaXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGFibGlzdHx8dGhpcy5lbGVtZW50LmZpbmQoIm9sLHVsIikuZXEoMCl9LF9jcmVhdGVQYW5lbDpmdW5jdGlvbih0KXtyZXR1cm4gZSgiPGRpdj4iKS5hdHRyKCJpZCIsdCkuYWRkQ2xhc3MoInVpLXRhYnMtcGFuZWwgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWJvdHRvbSIpLmRhdGEoInVpLXRhYnMtZGVzdHJveSIsITApfSxfc2V0dXBEaXNhYmxlZDpmdW5jdGlvbih0KXtlLmlzQXJyYXkodCkmJih0Lmxlbmd0aD90Lmxlbmd0aD09PXRoaXMuYW5jaG9ycy5sZW5ndGgmJih0PSEwKTp0PSExKTtmb3IodmFyIGkscz0wO2k9dGhpcy50YWJzW3NdO3MrKyl0PT09ITB8fC0xIT09ZS5pbkFycmF5KHMsdCk/ZShpKS5hZGRDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiKS5hdHRyKCJhcmlhLWRpc2FibGVkIiwidHJ1ZSIpOmUoaSkucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIikucmVtb3ZlQXR0cigiYXJpYS1kaXNhYmxlZCIpO3RoaXMub3B0aW9ucy5kaXNhYmxlZD10fSxfc2V0dXBFdmVudHM6ZnVuY3Rpb24odCl7dmFyIGk9e307dCYmZS5lYWNoKHQuc3BsaXQoIiAiKSxmdW5jdGlvbihlLHQpe2lbdF09Il9ldmVudEhhbmRsZXIifSksdGhpcy5fb2ZmKHRoaXMuYW5jaG9ycy5hZGQodGhpcy50YWJzKS5hZGQodGhpcy5wYW5lbHMpKSx0aGlzLl9vbighMCx0aGlzLmFuY2hvcnMse2NsaWNrOmZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKX19KSx0aGlzLl9vbih0aGlzLmFuY2hvcnMsaSksdGhpcy5fb24odGhpcy50YWJzLHtrZXlkb3duOiJfdGFiS2V5ZG93biJ9KSx0aGlzLl9vbih0aGlzLnBhbmVscyx7a2V5ZG93bjoiX3BhbmVsS2V5ZG93biJ9KSx0aGlzLl9mb2N1c2FibGUodGhpcy50YWJzKSx0aGlzLl9ob3ZlcmFibGUodGhpcy50YWJzKX0sX3NldHVwSGVpZ2h0U3R5bGU6ZnVuY3Rpb24odCl7dmFyIGkscz10aGlzLmVsZW1lbnQucGFyZW50KCk7ImZpbGwiPT09dD8oaT1zLmhlaWdodCgpLGktPXRoaXMuZWxlbWVudC5vdXRlckhlaWdodCgpLXRoaXMuZWxlbWVudC5oZWlnaHQoKSx0aGlzLmVsZW1lbnQuc2libGluZ3MoIjp2aXNpYmxlIikuZWFjaChmdW5jdGlvbigpe3ZhciB0PWUodGhpcykscz10LmNzcygicG9zaXRpb24iKTsiYWJzb2x1dGUiIT09cyYmImZpeGVkIiE9PXMmJihpLT10Lm91dGVySGVpZ2h0KCEwKSl9KSx0aGlzLmVsZW1lbnQuY2hpbGRyZW4oKS5ub3QodGhpcy5wYW5lbHMpLmVhY2goZnVuY3Rpb24oKXtpLT1lKHRoaXMpLm91dGVySGVpZ2h0KCEwKX0pLHRoaXMucGFuZWxzLmVhY2goZnVuY3Rpb24oKXtlKHRoaXMpLmhlaWdodChNYXRoLm1heCgwLGktZSh0aGlzKS5pbm5lckhlaWdodCgpK2UodGhpcykuaGVpZ2h0KCkpKX0pLmNzcygib3ZlcmZsb3ciLCJhdXRvIikpOiJhdXRvIj09PXQmJihpPTAsdGhpcy5wYW5lbHMuZWFjaChmdW5jdGlvbigpe2k9TWF0aC5tYXgoaSxlKHRoaXMpLmhlaWdodCgiIikuaGVpZ2h0KCkpfSkuaGVpZ2h0KGkpKX0sX2V2ZW50SGFuZGxlcjpmdW5jdGlvbih0KXt2YXIgaT10aGlzLm9wdGlvbnMscz10aGlzLmFjdGl2ZSxuPWUodC5jdXJyZW50VGFyZ2V0KSxhPW4uY2xvc2VzdCgibGkiKSxvPWFbMF09PT1zWzBdLHI9byYmaS5jb2xsYXBzaWJsZSxoPXI/ZSgpOnRoaXMuX2dldFBhbmVsRm9yVGFiKGEpLGw9cy5sZW5ndGg/dGhpcy5fZ2V0UGFuZWxGb3JUYWIocyk6ZSgpLHU9e29sZFRhYjpzLG9sZFBhbmVsOmwsbmV3VGFiOnI/ZSgpOmEsbmV3UGFuZWw6aH07dC5wcmV2ZW50RGVmYXVsdCgpLGEuaGFzQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIil8fGEuaGFzQ2xhc3MoInVpLXRhYnMtbG9hZGluZyIpfHx0aGlzLnJ1bm5pbmd8fG8mJiFpLmNvbGxhcHNpYmxlfHx0aGlzLl90cmlnZ2VyKCJiZWZvcmVBY3RpdmF0ZSIsdCx1KT09PSExfHwoaS5hY3RpdmU9cj8hMTp0aGlzLnRhYnMuaW5kZXgoYSksdGhpcy5hY3RpdmU9bz9lKCk6YSx0aGlzLnhociYmdGhpcy54aHIuYWJvcnQoKSxsLmxlbmd0aHx8aC5sZW5ndGh8fGUuZXJyb3IoImpRdWVyeSBVSSBUYWJzOiBNaXNtYXRjaGluZyBmcmFnbWVudCBpZGVudGlmaWVyLiIpLGgubGVuZ3RoJiZ0aGlzLmxvYWQodGhpcy50YWJzLmluZGV4KGEpLHQpLHRoaXMuX3RvZ2dsZSh0LHUpKX0sX3RvZ2dsZTpmdW5jdGlvbih0LGkpe2Z1bmN0aW9uIHMoKXthLnJ1bm5pbmc9ITEsYS5fdHJpZ2dlcigiYWN0aXZhdGUiLHQsaSl9ZnVuY3Rpb24gbigpe2kubmV3VGFiLmNsb3Nlc3QoImxpIikuYWRkQ2xhc3MoInVpLXRhYnMtYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSIpLG8ubGVuZ3RoJiZhLm9wdGlvbnMuc2hvdz9hLl9zaG93KG8sYS5vcHRpb25zLnNob3cscyk6KG8uc2hvdygpLHMoKSl9dmFyIGE9dGhpcyxvPWkubmV3UGFuZWwscj1pLm9sZFBhbmVsO3RoaXMucnVubmluZz0hMCxyLmxlbmd0aCYmdGhpcy5vcHRpb25zLmhpZGU/dGhpcy5faGlkZShyLHRoaXMub3B0aW9ucy5oaWRlLGZ1bmN0aW9uKCl7aS5vbGRUYWIuY2xvc2VzdCgibGkiKS5yZW1vdmVDbGFzcygidWktdGFicy1hY3RpdmUgdWktc3RhdGUtYWN0aXZlIiksbigpfSk6KGkub2xkVGFiLmNsb3Nlc3QoImxpIikucmVtb3ZlQ2xhc3MoInVpLXRhYnMtYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSIpLHIuaGlkZSgpLG4oKSksci5hdHRyKCJhcmlhLWhpZGRlbiIsInRydWUiKSxpLm9sZFRhYi5hdHRyKHsiYXJpYS1zZWxlY3RlZCI6ImZhbHNlIiwiYXJpYS1leHBhbmRlZCI6ImZhbHNlIn0pLG8ubGVuZ3RoJiZyLmxlbmd0aD9pLm9sZFRhYi5hdHRyKCJ0YWJJbmRleCIsLTEpOm8ubGVuZ3RoJiZ0aGlzLnRhYnMuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuIDA9PT1lKHRoaXMpLmF0dHIoInRhYkluZGV4Iil9KS5hdHRyKCJ0YWJJbmRleCIsLTEpLG8uYXR0cigiYXJpYS1oaWRkZW4iLCJmYWxzZSIpLGkubmV3VGFiLmF0dHIoeyJhcmlhLXNlbGVjdGVkIjoidHJ1ZSIsImFyaWEtZXhwYW5kZWQiOiJ0cnVlIix0YWJJbmRleDowfSl9LF9hY3RpdmF0ZTpmdW5jdGlvbih0KXt2YXIgaSxzPXRoaXMuX2ZpbmRBY3RpdmUodCk7c1swXSE9PXRoaXMuYWN0aXZlWzBdJiYocy5sZW5ndGh8fChzPXRoaXMuYWN0aXZlKSxpPXMuZmluZCgiLnVpLXRhYnMtYW5jaG9yIilbMF0sdGhpcy5fZXZlbnRIYW5kbGVyKHt0YXJnZXQ6aSxjdXJyZW50VGFyZ2V0OmkscHJldmVudERlZmF1bHQ6ZS5ub29wfSkpfSxfZmluZEFjdGl2ZTpmdW5jdGlvbih0KXtyZXR1cm4gdD09PSExP2UoKTp0aGlzLnRhYnMuZXEodCl9LF9nZXRJbmRleDpmdW5jdGlvbihlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGUmJihlPXRoaXMuYW5jaG9ycy5pbmRleCh0aGlzLmFuY2hvcnMuZmlsdGVyKCJbaHJlZiQ9JyIrZSsiJ10iKSkpLGV9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy54aHImJnRoaXMueGhyLmFib3J0KCksdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS10YWJzIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIHVpLXRhYnMtY29sbGFwc2libGUiKSx0aGlzLnRhYmxpc3QucmVtb3ZlQ2xhc3MoInVpLXRhYnMtbmF2IHVpLWhlbHBlci1yZXNldCB1aS1oZWxwZXItY2xlYXJmaXggdWktd2lkZ2V0LWhlYWRlciB1aS1jb3JuZXItYWxsIikucmVtb3ZlQXR0cigicm9sZSIpLHRoaXMuYW5jaG9ycy5yZW1vdmVDbGFzcygidWktdGFicy1hbmNob3IiKS5yZW1vdmVBdHRyKCJyb2xlIikucmVtb3ZlQXR0cigidGFiSW5kZXgiKS5yZW1vdmVVbmlxdWVJZCgpLHRoaXMudGFibGlzdC51bmJpbmQodGhpcy5ldmVudE5hbWVzcGFjZSksdGhpcy50YWJzLmFkZCh0aGlzLnBhbmVscykuZWFjaChmdW5jdGlvbigpe2UuZGF0YSh0aGlzLCJ1aS10YWJzLWRlc3Ryb3kiKT9lKHRoaXMpLnJlbW92ZSgpOmUodGhpcykucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWRlZmF1bHQgdWktc3RhdGUtYWN0aXZlIHVpLXN0YXRlLWRpc2FibGVkIHVpLWNvcm5lci10b3AgdWktY29ybmVyLWJvdHRvbSB1aS13aWRnZXQtY29udGVudCB1aS10YWJzLWFjdGl2ZSB1aS10YWJzLXBhbmVsIikucmVtb3ZlQXR0cigidGFiSW5kZXgiKS5yZW1vdmVBdHRyKCJhcmlhLWxpdmUiKS5yZW1vdmVBdHRyKCJhcmlhLWJ1c3kiKS5yZW1vdmVBdHRyKCJhcmlhLXNlbGVjdGVkIikucmVtb3ZlQXR0cigiYXJpYS1sYWJlbGxlZGJ5IikucmVtb3ZlQXR0cigiYXJpYS1oaWRkZW4iKS5yZW1vdmVBdHRyKCJhcmlhLWV4cGFuZGVkIikucmVtb3ZlQXR0cigicm9sZSIpfSksdGhpcy50YWJzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLGk9dC5kYXRhKCJ1aS10YWJzLWFyaWEtY29udHJvbHMiKTtpP3QuYXR0cigiYXJpYS1jb250cm9scyIsaSkucmVtb3ZlRGF0YSgidWktdGFicy1hcmlhLWNvbnRyb2xzIik6dC5yZW1vdmVBdHRyKCJhcmlhLWNvbnRyb2xzIil9KSx0aGlzLnBhbmVscy5zaG93KCksImNvbnRlbnQiIT09dGhpcy5vcHRpb25zLmhlaWdodFN0eWxlJiZ0aGlzLnBhbmVscy5jc3MoImhlaWdodCIsIiIpfSxlbmFibGU6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5vcHRpb25zLmRpc2FibGVkO2khPT0hMSYmKHZvaWQgMD09PXQ/aT0hMToodD10aGlzLl9nZXRJbmRleCh0KSxpPWUuaXNBcnJheShpKT9lLm1hcChpLGZ1bmN0aW9uKGUpe3JldHVybiBlIT09dD9lOm51bGx9KTplLm1hcCh0aGlzLnRhYnMsZnVuY3Rpb24oZSxpKXtyZXR1cm4gaSE9PXQ/aTpudWxsfSkpLHRoaXMuX3NldHVwRGlzYWJsZWQoaSkpfSxkaXNhYmxlOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMub3B0aW9ucy5kaXNhYmxlZDtpZihpIT09ITApe2lmKHZvaWQgMD09PXQpaT0hMDtlbHNle2lmKHQ9dGhpcy5fZ2V0SW5kZXgodCksLTEhPT1lLmluQXJyYXkodCxpKSlyZXR1cm47aT1lLmlzQXJyYXkoaSk/ZS5tZXJnZShbdF0saSkuc29ydCgpOlt0XX10aGlzLl9zZXR1cERpc2FibGVkKGkpfX0sbG9hZDpmdW5jdGlvbih0LGkpe3Q9dGhpcy5fZ2V0SW5kZXgodCk7dmFyIHM9dGhpcyxuPXRoaXMudGFicy5lcSh0KSxhPW4uZmluZCgiLnVpLXRhYnMtYW5jaG9yIiksbz10aGlzLl9nZXRQYW5lbEZvclRhYihuKSxyPXt0YWI6bixwYW5lbDpvfSxoPWZ1bmN0aW9uKGUsdCl7ImFib3J0Ij09PXQmJnMucGFuZWxzLnN0b3AoITEsITApLG4ucmVtb3ZlQ2xhc3MoInVpLXRhYnMtbG9hZGluZyIpLG8ucmVtb3ZlQXR0cigiYXJpYS1idXN5IiksZT09PXMueGhyJiZkZWxldGUgcy54aHJ9O3RoaXMuX2lzTG9jYWwoYVswXSl8fCh0aGlzLnhocj1lLmFqYXgodGhpcy5fYWpheFNldHRpbmdzKGEsaSxyKSksdGhpcy54aHImJiJjYW5jZWxlZCIhPT10aGlzLnhoci5zdGF0dXNUZXh0JiYobi5hZGRDbGFzcygidWktdGFicy1sb2FkaW5nIiksby5hdHRyKCJhcmlhLWJ1c3kiLCJ0cnVlIiksdGhpcy54aHIuZG9uZShmdW5jdGlvbihlLHQsbil7c2V0VGltZW91dChmdW5jdGlvbigpe28uaHRtbChlKSxzLl90cmlnZ2VyKCJsb2FkIixpLHIpLGgobix0KX0sMSl9KS5mYWlsKGZ1bmN0aW9uKGUsdCl7c2V0VGltZW91dChmdW5jdGlvbigpe2goZSx0KX0sMSl9KSkpfSxfYWpheFNldHRpbmdzOmZ1bmN0aW9uKHQsaSxzKXt2YXIgbj10aGlzO3JldHVybnt1cmw6dC5hdHRyKCJocmVmIiksYmVmb3JlU2VuZDpmdW5jdGlvbih0LGEpe3JldHVybiBuLl90cmlnZ2VyKCJiZWZvcmVMb2FkIixpLGUuZXh0ZW5kKHtqcVhIUjp0LGFqYXhTZXR0aW5nczphfSxzKSl9fX0sX2dldFBhbmVsRm9yVGFiOmZ1bmN0aW9uKHQpe3ZhciBpPWUodCkuYXR0cigiYXJpYS1jb250cm9scyIpO3JldHVybiB0aGlzLmVsZW1lbnQuZmluZCh0aGlzLl9zYW5pdGl6ZVNlbGVjdG9yKCIjIitpKSl9fSksZS53aWRnZXQoInVpLnRvb2x0aXAiLHt2ZXJzaW9uOiIxLjExLjQiLG9wdGlvbnM6e2NvbnRlbnQ6ZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLmF0dHIoInRpdGxlIil8fCIiO3JldHVybiBlKCI8YT4iKS50ZXh0KHQpLmh0bWwoKX0saGlkZTohMCxpdGVtczoiW3RpdGxlXTpub3QoW2Rpc2FibGVkXSkiLHBvc2l0aW9uOntteToibGVmdCB0b3ArMTUiLGF0OiJsZWZ0IGJvdHRvbSIsY29sbGlzaW9uOiJmbGlwZml0IGZsaXAifSxzaG93OiEwLHRvb2x0aXBDbGFzczpudWxsLHRyYWNrOiExLGNsb3NlOm51bGwsb3BlbjpudWxsfSxfYWRkRGVzY3JpYmVkQnk6ZnVuY3Rpb24odCxpKXt2YXIgcz0odC5hdHRyKCJhcmlhLWRlc2NyaWJlZGJ5Iil8fCIiKS5zcGxpdCgvXHMrLyk7cy5wdXNoKGkpLHQuZGF0YSgidWktdG9vbHRpcC1pZCIsaSkuYXR0cigiYXJpYS1kZXNjcmliZWRieSIsZS50cmltKHMuam9pbigiICIpKSl9LF9yZW1vdmVEZXNjcmliZWRCeTpmdW5jdGlvbih0KXt2YXIgaT10LmRhdGEoInVpLXRvb2x0aXAtaWQiKSxzPSh0LmF0dHIoImFyaWEtZGVzY3JpYmVkYnkiKXx8IiIpLnNwbGl0KC9ccysvKSxuPWUuaW5BcnJheShpLHMpOy0xIT09biYmcy5zcGxpY2UobiwxKSx0LnJlbW92ZURhdGEoInVpLXRvb2x0aXAtaWQiKSxzPWUudHJpbShzLmpvaW4oIiAiKSkscz90LmF0dHIoImFyaWEtZGVzY3JpYmVkYnkiLHMpOnQucmVtb3ZlQXR0cigiYXJpYS1kZXNjcmliZWRieSIpfSxfY3JlYXRlOmZ1bmN0aW9uKCl7dGhpcy5fb24oe21vdXNlb3Zlcjoib3BlbiIsZm9jdXNpbjoib3BlbiJ9KSx0aGlzLnRvb2x0aXBzPXt9LHRoaXMucGFyZW50cz17fSx0aGlzLm9wdGlvbnMuZGlzYWJsZWQmJnRoaXMuX2Rpc2FibGUoKSx0aGlzLmxpdmVSZWdpb249ZSgiPGRpdj4iKS5hdHRyKHtyb2xlOiJsb2ciLCJhcmlhLWxpdmUiOiJhc3NlcnRpdmUiLCJhcmlhLXJlbGV2YW50IjoiYWRkaXRpb25zIn0pLmFkZENsYXNzKCJ1aS1oZWxwZXItaGlkZGVuLWFjY2Vzc2libGUiKS5hcHBlbmRUbyh0aGlzLmRvY3VtZW50WzBdLmJvZHkpfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKHQsaSl7dmFyIHM9dGhpcztyZXR1cm4iZGlzYWJsZWQiPT09dD8odGhpc1tpPyJfZGlzYWJsZSI6Il9lbmFibGUiXSgpLHRoaXMub3B0aW9uc1t0XT1pLHZvaWQgMCk6KHRoaXMuX3N1cGVyKHQsaSksImNvbnRlbnQiPT09dCYmZS5lYWNoKHRoaXMudG9vbHRpcHMsZnVuY3Rpb24oZSx0KXtzLl91cGRhdGVDb250ZW50KHQuZWxlbWVudCl9KSx2b2lkIDApfSxfZGlzYWJsZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7ZS5lYWNoKHRoaXMudG9vbHRpcHMsZnVuY3Rpb24oaSxzKXt2YXIgbj1lLkV2ZW50KCJibHVyIik7bi50YXJnZXQ9bi5jdXJyZW50VGFyZ2V0PXMuZWxlbWVudFswXSx0LmNsb3NlKG4sITApfSksdGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLml0ZW1zKS5hZGRCYWNrKCkuZWFjaChmdW5jdGlvbigpe3ZhciB0PWUodGhpcyk7dC5pcygiW3RpdGxlXSIpJiZ0LmRhdGEoInVpLXRvb2x0aXAtdGl0bGUiLHQuYXR0cigidGl0bGUiKSkucmVtb3ZlQXR0cigidGl0bGUiKX0pfSxfZW5hYmxlOmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLml0ZW1zKS5hZGRCYWNrKCkuZWFjaChmdW5jdGlvbigpe3ZhciB0PWUodGhpcyk7dC5kYXRhKCJ1aS10b29sdGlwLXRpdGxlIikmJnQuYXR0cigidGl0bGUiLHQuZGF0YSgidWktdG9vbHRpcC10aXRsZSIpKX0pfSxvcGVuOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMscz1lKHQ/dC50YXJnZXQ6dGhpcy5lbGVtZW50KS5jbG9zZXN0KHRoaXMub3B0aW9ucy5pdGVtcyk7cy5sZW5ndGgmJiFzLmRhdGEoInVpLXRvb2x0aXAtaWQiKSYmKHMuYXR0cigidGl0bGUiKSYmcy5kYXRhKCJ1aS10b29sdGlwLXRpdGxlIixzLmF0dHIoInRpdGxlIikpLHMuZGF0YSgidWktdG9vbHRpcC1vcGVuIiwhMCksdCYmIm1vdXNlb3ZlciI9PT10LnR5cGUmJnMucGFyZW50cygpLmVhY2goZnVuY3Rpb24oKXt2YXIgdCxzPWUodGhpcyk7cy5kYXRhKCJ1aS10b29sdGlwLW9wZW4iKSYmKHQ9ZS5FdmVudCgiYmx1ciIpLHQudGFyZ2V0PXQuY3VycmVudFRhcmdldD10aGlzLGkuY2xvc2UodCwhMCkpLHMuYXR0cigidGl0bGUiKSYmKHMudW5pcXVlSWQoKSxpLnBhcmVudHNbdGhpcy5pZF09e2VsZW1lbnQ6dGhpcyx0aXRsZTpzLmF0dHIoInRpdGxlIil9LHMuYXR0cigidGl0bGUiLCIiKSl9KSx0aGlzLl9yZWdpc3RlckNsb3NlSGFuZGxlcnModCxzKSx0aGlzLl91cGRhdGVDb250ZW50KHMsdCkpfSxfdXBkYXRlQ29udGVudDpmdW5jdGlvbihlLHQpe3ZhciBpLHM9dGhpcy5vcHRpb25zLmNvbnRlbnQsbj10aGlzLGE9dD90LnR5cGU6bnVsbDtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHM/dGhpcy5fb3Blbih0LGUscyk6KGk9cy5jYWxsKGVbMF0sZnVuY3Rpb24oaSl7bi5fZGVsYXkoZnVuY3Rpb24oKXtlLmRhdGEoInVpLXRvb2x0aXAtb3BlbiIpJiYodCYmKHQudHlwZT1hKSx0aGlzLl9vcGVuKHQsZSxpKSl9KX0pLGkmJnRoaXMuX29wZW4odCxlLGkpLHZvaWQgMCl9LF9vcGVuOmZ1bmN0aW9uKHQsaSxzKXtmdW5jdGlvbiBuKGUpe2wub2Y9ZSxvLmlzKCI6aGlkZGVuIil8fG8ucG9zaXRpb24obCl9dmFyIGEsbyxyLGgsbD1lLmV4dGVuZCh7fSx0aGlzLm9wdGlvbnMucG9zaXRpb24pO2lmKHMpe2lmKGE9dGhpcy5fZmluZChpKSlyZXR1cm4gYS50b29sdGlwLmZpbmQoIi51aS10b29sdGlwLWNvbnRlbnQiKS5odG1sKHMpLHZvaWQgMDtpLmlzKCJbdGl0bGVdIikmJih0JiYibW91c2VvdmVyIj09PXQudHlwZT9pLmF0dHIoInRpdGxlIiwiIik6aS5yZW1vdmVBdHRyKCJ0aXRsZSIpKSxhPXRoaXMuX3Rvb2x0aXAoaSksbz1hLnRvb2x0aXAsdGhpcy5fYWRkRGVzY3JpYmVkQnkoaSxvLmF0dHIoImlkIikpLG8uZmluZCgiLnVpLXRvb2x0aXAtY29udGVudCIpLmh0bWwocyksdGhpcy5saXZlUmVnaW9uLmNoaWxkcmVuKCkuaGlkZSgpLHMuY2xvbmU/KGg9cy5jbG9uZSgpLGgucmVtb3ZlQXR0cigiaWQiKS5maW5kKCJbaWRdIikucmVtb3ZlQXR0cigiaWQiKSk6aD1zLGUoIjxkaXY+IikuaHRtbChoKS5hcHBlbmRUbyh0aGlzLmxpdmVSZWdpb24pLHRoaXMub3B0aW9ucy50cmFjayYmdCYmL15tb3VzZS8udGVzdCh0LnR5cGUpPyh0aGlzLl9vbih0aGlzLmRvY3VtZW50LHttb3VzZW1vdmU6bn0pLG4odCkpOm8ucG9zaXRpb24oZS5leHRlbmQoe29mOml9LHRoaXMub3B0aW9ucy5wb3NpdGlvbikpLG8uaGlkZSgpLHRoaXMuX3Nob3cobyx0aGlzLm9wdGlvbnMuc2hvdyksdGhpcy5vcHRpb25zLnNob3cmJnRoaXMub3B0aW9ucy5zaG93LmRlbGF5JiYocj10aGlzLmRlbGF5ZWRTaG93PXNldEludGVydmFsKGZ1bmN0aW9uKCl7by5pcygiOnZpc2libGUiKSYmKG4obC5vZiksY2xlYXJJbnRlcnZhbChyKSl9LGUuZnguaW50ZXJ2YWwpKSx0aGlzLl90cmlnZ2VyKCJvcGVuIix0LHt0b29sdGlwOm99KX19LF9yZWdpc3RlckNsb3NlSGFuZGxlcnM6ZnVuY3Rpb24odCxpKXt2YXIgcz17a2V5dXA6ZnVuY3Rpb24odCl7aWYodC5rZXlDb2RlPT09ZS51aS5rZXlDb2RlLkVTQ0FQRSl7dmFyIHM9ZS5FdmVudCh0KTtzLmN1cnJlbnRUYXJnZXQ9aVswXSx0aGlzLmNsb3NlKHMsITApfX19O2lbMF0hPT10aGlzLmVsZW1lbnRbMF0mJihzLnJlbW92ZT1mdW5jdGlvbigpe3RoaXMuX3JlbW92ZVRvb2x0aXAodGhpcy5fZmluZChpKS50b29sdGlwKX0pLHQmJiJtb3VzZW92ZXIiIT09dC50eXBlfHwocy5tb3VzZWxlYXZlPSJjbG9zZSIpLHQmJiJmb2N1c2luIiE9PXQudHlwZXx8KHMuZm9jdXNvdXQ9ImNsb3NlIiksdGhpcy5fb24oITAsaSxzKX0sY2xvc2U6ZnVuY3Rpb24odCl7dmFyIGkscz10aGlzLG49ZSh0P3QuY3VycmVudFRhcmdldDp0aGlzLmVsZW1lbnQpLGE9dGhpcy5fZmluZChuKTtyZXR1cm4gYT8oaT1hLnRvb2x0aXAsYS5jbG9zaW5nfHwoY2xlYXJJbnRlcnZhbCh0aGlzLmRlbGF5ZWRTaG93KSxuLmRhdGEoInVpLXRvb2x0aXAtdGl0bGUiKSYmIW4uYXR0cigidGl0bGUiKSYmbi5hdHRyKCJ0aXRsZSIsbi5kYXRhKCJ1aS10b29sdGlwLXRpdGxlIikpLHRoaXMuX3JlbW92ZURlc2NyaWJlZEJ5KG4pLGEuaGlkaW5nPSEwLGkuc3RvcCghMCksdGhpcy5faGlkZShpLHRoaXMub3B0aW9ucy5oaWRlLGZ1bmN0aW9uKCl7cy5fcmVtb3ZlVG9vbHRpcChlKHRoaXMpKX0pLG4ucmVtb3ZlRGF0YSgidWktdG9vbHRpcC1vcGVuIiksdGhpcy5fb2ZmKG4sIm1vdXNlbGVhdmUgZm9jdXNvdXQga2V5dXAiKSxuWzBdIT09dGhpcy5lbGVtZW50WzBdJiZ0aGlzLl9vZmYobiwicmVtb3ZlIiksdGhpcy5fb2ZmKHRoaXMuZG9jdW1lbnQsIm1vdXNlbW92ZSIpLHQmJiJtb3VzZWxlYXZlIj09PXQudHlwZSYmZS5lYWNoKHRoaXMucGFyZW50cyxmdW5jdGlvbih0LGkpe2UoaS5lbGVtZW50KS5hdHRyKCJ0aXRsZSIsaS50aXRsZSksZGVsZXRlIHMucGFyZW50c1t0XX0pLGEuY2xvc2luZz0hMCx0aGlzLl90cmlnZ2VyKCJjbG9zZSIsdCx7dG9vbHRpcDppfSksYS5oaWRpbmd8fChhLmNsb3Npbmc9ITEpKSx2b2lkIDApOihuLnJlbW92ZURhdGEoInVpLXRvb2x0aXAtb3BlbiIpLHZvaWQgMCl9LF90b29sdGlwOmZ1bmN0aW9uKHQpe3ZhciBpPWUoIjxkaXY+IikuYXR0cigicm9sZSIsInRvb2x0aXAiKS5hZGRDbGFzcygidWktdG9vbHRpcCB1aS13aWRnZXQgdWktY29ybmVyLWFsbCB1aS13aWRnZXQtY29udGVudCAiKyh0aGlzLm9wdGlvbnMudG9vbHRpcENsYXNzfHwiIikpLHM9aS51bmlxdWVJZCgpLmF0dHIoImlkIik7cmV0dXJuIGUoIjxkaXY+IikuYWRkQ2xhc3MoInVpLXRvb2x0aXAtY29udGVudCIpLmFwcGVuZFRvKGkpLGkuYXBwZW5kVG8odGhpcy5kb2N1bWVudFswXS5ib2R5KSx0aGlzLnRvb2x0aXBzW3NdPXtlbGVtZW50OnQsdG9vbHRpcDppfX0sX2ZpbmQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5kYXRhKCJ1aS10b29sdGlwLWlkIik7cmV0dXJuIHQ/dGhpcy50b29sdGlwc1t0XTpudWxsfSxfcmVtb3ZlVG9vbHRpcDpmdW5jdGlvbihlKXtlLnJlbW92ZSgpLGRlbGV0ZSB0aGlzLnRvb2x0aXBzW2UuYXR0cigiaWQiKV19LF9kZXN0cm95OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztlLmVhY2godGhpcy50b29sdGlwcyxmdW5jdGlvbihpLHMpe3ZhciBuPWUuRXZlbnQoImJsdXIiKSxhPXMuZWxlbWVudDtuLnRhcmdldD1uLmN1cnJlbnRUYXJnZXQ9YVswXSx0LmNsb3NlKG4sITApLGUoIiMiK2kpLnJlbW92ZSgpLGEuZGF0YSgidWktdG9vbHRpcC10aXRsZSIpJiYoYS5hdHRyKCJ0aXRsZSIpfHxhLmF0dHIoInRpdGxlIixhLmRhdGEoInVpLXRvb2x0aXAtdGl0bGUiKSksYS5yZW1vdmVEYXRhKCJ1aS10b29sdGlwLXRpdGxlIikpfSksdGhpcy5saXZlUmVnaW9uLnJlbW92ZSgpfX0pO3ZhciBjPSJ1aS1lZmZlY3RzLSIscD1lO2UuZWZmZWN0cz17ZWZmZWN0Ont9fSxmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIGkoZSx0LGkpe3ZhciBzPWRbdC50eXBlXXx8e307cmV0dXJuIG51bGw9PWU/aXx8IXQuZGVmP251bGw6dC5kZWY6KGU9cy5mbG9vcj9+fmU6cGFyc2VGbG9hdChlKSxpc05hTihlKT90LmRlZjpzLm1vZD8oZStzLm1vZCklcy5tb2Q6MD5lPzA6ZT5zLm1heD9zLm1heDplKX1mdW5jdGlvbiBzKGkpe3ZhciBzPWwoKSxuPXMuX3JnYmE9W107cmV0dXJuIGk9aS50b0xvd2VyQ2FzZSgpLGYoaCxmdW5jdGlvbihlLGEpe3ZhciBvLHI9YS5yZS5leGVjKGkpLGg9ciYmYS5wYXJzZShyKSxsPWEuc3BhY2V8fCJyZ2JhIjtyZXR1cm4gaD8obz1zW2xdKGgpLHNbdVtsXS5jYWNoZV09b1t1W2xdLmNhY2hlXSxuPXMuX3JnYmE9by5fcmdiYSwhMSk6dH0pLG4ubGVuZ3RoPygiMCwwLDAsMCI9PT1uLmpvaW4oKSYmZS5leHRlbmQobixhLnRyYW5zcGFyZW50KSxzKTphW2ldfWZ1bmN0aW9uIG4oZSx0LGkpe3JldHVybiBpPShpKzEpJTEsMT42Kmk/ZSs2Kih0LWUpKmk6MT4yKmk/dDoyPjMqaT9lKzYqKHQtZSkqKDIvMy1pKTplfXZhciBhLG89ImJhY2tncm91bmRDb2xvciBib3JkZXJCb3R0b21Db2xvciBib3JkZXJMZWZ0Q29sb3IgYm9yZGVyUmlnaHRDb2xvciBib3JkZXJUb3BDb2xvciBjb2xvciBjb2x1bW5SdWxlQ29sb3Igb3V0bGluZUNvbG9yIHRleHREZWNvcmF0aW9uQ29sb3IgdGV4dEVtcGhhc2lzQ29sb3IiLHI9L14oW1wtK10pPVxzKihcZCtcLj9cZCopLyxoPVt7cmU6L3JnYmE/XChccyooXGR7MSwzfSlccyosXHMqKFxkezEsM30pXHMqLFxzKihcZHsxLDN9KVxzKig/OixccyooXGQ/KD86XC5cZCspPylccyopP1wpLyxwYXJzZTpmdW5jdGlvbihlKXtyZXR1cm5bZVsxXSxlWzJdLGVbM10sZVs0XV19fSx7cmU6L3JnYmE/XChccyooXGQrKD86XC5cZCspPylcJVxzKixccyooXGQrKD86XC5cZCspPylcJVxzKixccyooXGQrKD86XC5cZCspPylcJVxzKig/OixccyooXGQ/KD86XC5cZCspPylccyopP1wpLyxwYXJzZTpmdW5jdGlvbihlKXtyZXR1cm5bMi41NSplWzFdLDIuNTUqZVsyXSwyLjU1KmVbM10sZVs0XV19fSx7cmU6LyMoW2EtZjAtOV17Mn0pKFthLWYwLTldezJ9KShbYS1mMC05XXsyfSkvLHBhcnNlOmZ1bmN0aW9uKGUpe3JldHVybltwYXJzZUludChlWzFdLDE2KSxwYXJzZUludChlWzJdLDE2KSxwYXJzZUludChlWzNdLDE2KV19fSx7cmU6LyMoW2EtZjAtOV0pKFthLWYwLTldKShbYS1mMC05XSkvLHBhcnNlOmZ1bmN0aW9uKGUpe3JldHVybltwYXJzZUludChlWzFdK2VbMV0sMTYpLHBhcnNlSW50KGVbMl0rZVsyXSwxNikscGFyc2VJbnQoZVszXStlWzNdLDE2KV19fSx7cmU6L2hzbGE/XChccyooXGQrKD86XC5cZCspPylccyosXHMqKFxkKyg/OlwuXGQrKT8pXCVccyosXHMqKFxkKyg/OlwuXGQrKT8pXCVccyooPzosXHMqKFxkPyg/OlwuXGQrKT8pXHMqKT9cKS8sc3BhY2U6ImhzbGEiLHBhcnNlOmZ1bmN0aW9uKGUpe3JldHVybltlWzFdLGVbMl0vMTAwLGVbM10vMTAwLGVbNF1dfX1dLGw9ZS5Db2xvcj1mdW5jdGlvbih0LGkscyxuKXtyZXR1cm4gbmV3IGUuQ29sb3IuZm4ucGFyc2UodCxpLHMsbil9LHU9e3JnYmE6e3Byb3BzOntyZWQ6e2lkeDowLHR5cGU6ImJ5dGUifSxncmVlbjp7aWR4OjEsdHlwZToiYnl0ZSJ9LGJsdWU6e2lkeDoyLHR5cGU6ImJ5dGUifX19LGhzbGE6e3Byb3BzOntodWU6e2lkeDowLHR5cGU6ImRlZ3JlZXMifSxzYXR1cmF0aW9uOntpZHg6MSx0eXBlOiJwZXJjZW50In0sbGlnaHRuZXNzOntpZHg6Mix0eXBlOiJwZXJjZW50In19fX0sZD17ImJ5dGUiOntmbG9vcjohMCxtYXg6MjU1fSxwZXJjZW50OnttYXg6MX0sZGVncmVlczp7bW9kOjM2MCxmbG9vcjohMH19LGM9bC5zdXBwb3J0PXt9LHA9ZSgiPHA+IilbMF0sZj1lLmVhY2g7cC5zdHlsZS5jc3NUZXh0PSJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMSwxLDEsLjUpIixjLnJnYmE9cC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IuaW5kZXhPZigicmdiYSIpPi0xLGYodSxmdW5jdGlvbihlLHQpe3QuY2FjaGU9Il8iK2UsdC5wcm9wcy5hbHBoYT17aWR4OjMsdHlwZToicGVyY2VudCIsZGVmOjF9fSksbC5mbj1lLmV4dGVuZChsLnByb3RvdHlwZSx7cGFyc2U6ZnVuY3Rpb24obixvLHIsaCl7aWYobj09PXQpcmV0dXJuIHRoaXMuX3JnYmE9W251bGwsbnVsbCxudWxsLG51bGxdLHRoaXM7KG4uanF1ZXJ5fHxuLm5vZGVUeXBlKSYmKG49ZShuKS5jc3Mobyksbz10KTt2YXIgZD10aGlzLGM9ZS50eXBlKG4pLHA9dGhpcy5fcmdiYT1bXTtyZXR1cm4gbyE9PXQmJihuPVtuLG8scixoXSxjPSJhcnJheSIpLCJzdHJpbmciPT09Yz90aGlzLnBhcnNlKHMobil8fGEuX2RlZmF1bHQpOiJhcnJheSI9PT1jPyhmKHUucmdiYS5wcm9wcyxmdW5jdGlvbihlLHQpe3BbdC5pZHhdPWkoblt0LmlkeF0sdCl9KSx0aGlzKToib2JqZWN0Ij09PWM/KG4gaW5zdGFuY2VvZiBsP2YodSxmdW5jdGlvbihlLHQpe25bdC5jYWNoZV0mJihkW3QuY2FjaGVdPW5bdC5jYWNoZV0uc2xpY2UoKSl9KTpmKHUsZnVuY3Rpb24odCxzKXt2YXIgYT1zLmNhY2hlO2Yocy5wcm9wcyxmdW5jdGlvbihlLHQpe2lmKCFkW2FdJiZzLnRvKXtpZigiYWxwaGEiPT09ZXx8bnVsbD09bltlXSlyZXR1cm47ZFthXT1zLnRvKGQuX3JnYmEpfWRbYV1bdC5pZHhdPWkobltlXSx0LCEwKX0pLGRbYV0mJjA+ZS5pbkFycmF5KG51bGwsZFthXS5zbGljZSgwLDMpKSYmKGRbYV1bM109MSxzLmZyb20mJihkLl9yZ2JhPXMuZnJvbShkW2FdKSkpfSksdGhpcyk6dH0saXM6ZnVuY3Rpb24oZSl7dmFyIGk9bChlKSxzPSEwLG49dGhpcztyZXR1cm4gZih1LGZ1bmN0aW9uKGUsYSl7dmFyIG8scj1pW2EuY2FjaGVdO3JldHVybiByJiYobz1uW2EuY2FjaGVdfHxhLnRvJiZhLnRvKG4uX3JnYmEpfHxbXSxmKGEucHJvcHMsZnVuY3Rpb24oZSxpKXtyZXR1cm4gbnVsbCE9cltpLmlkeF0/cz1yW2kuaWR4XT09PW9baS5pZHhdOnR9KSksc30pLHN9LF9zcGFjZTpmdW5jdGlvbigpe3ZhciBlPVtdLHQ9dGhpcztyZXR1cm4gZih1LGZ1bmN0aW9uKGkscyl7dFtzLmNhY2hlXSYmZS5wdXNoKGkpfSksZS5wb3AoKX0sdHJhbnNpdGlvbjpmdW5jdGlvbihlLHQpe3ZhciBzPWwoZSksbj1zLl9zcGFjZSgpLGE9dVtuXSxvPTA9PT10aGlzLmFscGhhKCk/bCgidHJhbnNwYXJlbnQiKTp0aGlzLHI9b1thLmNhY2hlXXx8YS50byhvLl9yZ2JhKSxoPXIuc2xpY2UoKTtyZXR1cm4gcz1zW2EuY2FjaGVdLGYoYS5wcm9wcyxmdW5jdGlvbihlLG4pe3ZhciBhPW4uaWR4LG89clthXSxsPXNbYV0sdT1kW24udHlwZV18fHt9O251bGwhPT1sJiYobnVsbD09PW8/aFthXT1sOih1Lm1vZCYmKGwtbz51Lm1vZC8yP28rPXUubW9kOm8tbD51Lm1vZC8yJiYoby09dS5tb2QpKSxoW2FdPWkoKGwtbykqdCtvLG4pKSl9KSx0aGlzW25dKGgpfSxibGVuZDpmdW5jdGlvbih0KXtpZigxPT09dGhpcy5fcmdiYVszXSlyZXR1cm4gdGhpczt2YXIgaT10aGlzLl9yZ2JhLnNsaWNlKCkscz1pLnBvcCgpLG49bCh0KS5fcmdiYTtyZXR1cm4gbChlLm1hcChpLGZ1bmN0aW9uKGUsdCl7cmV0dXJuKDEtcykqblt0XStzKmV9KSl9LHRvUmdiYVN0cmluZzpmdW5jdGlvbigpe3ZhciB0PSJyZ2JhKCIsaT1lLm1hcCh0aGlzLl9yZ2JhLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG51bGw9PWU/dD4yPzE6MDplfSk7cmV0dXJuIDE9PT1pWzNdJiYoaS5wb3AoKSx0PSJyZ2IoIiksdCtpLmpvaW4oKSsiKSJ9LHRvSHNsYVN0cmluZzpmdW5jdGlvbigpe3ZhciB0PSJoc2xhKCIsaT1lLm1hcCh0aGlzLmhzbGEoKSxmdW5jdGlvbihlLHQpe3JldHVybiBudWxsPT1lJiYoZT10PjI/MTowKSx0JiYzPnQmJihlPU1hdGgucm91bmQoMTAwKmUpKyIlIiksZX0pO3JldHVybiAxPT09aVszXSYmKGkucG9wKCksdD0iaHNsKCIpLHQraS5qb2luKCkrIikifSx0b0hleFN0cmluZzpmdW5jdGlvbih0KXt2YXIgaT10aGlzLl9yZ2JhLnNsaWNlKCkscz1pLnBvcCgpO3JldHVybiB0JiZpLnB1c2gofn4oMjU1KnMpKSwiIyIrZS5tYXAoaSxmdW5jdGlvbihlKXtyZXR1cm4gZT0oZXx8MCkudG9TdHJpbmcoMTYpLDE9PT1lLmxlbmd0aD8iMCIrZTplfSkuam9pbigiIil9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLl9yZ2JhWzNdPyJ0cmFuc3BhcmVudCI6dGhpcy50b1JnYmFTdHJpbmcoKX19KSxsLmZuLnBhcnNlLnByb3RvdHlwZT1sLmZuLHUuaHNsYS50bz1mdW5jdGlvbihlKXtpZihudWxsPT1lWzBdfHxudWxsPT1lWzFdfHxudWxsPT1lWzJdKXJldHVybltudWxsLG51bGwsbnVsbCxlWzNdXTt2YXIgdCxpLHM9ZVswXS8yNTUsbj1lWzFdLzI1NSxhPWVbMl0vMjU1LG89ZVszXSxyPU1hdGgubWF4KHMsbixhKSxoPU1hdGgubWluKHMsbixhKSxsPXItaCx1PXIraCxkPS41KnU7cmV0dXJuIHQ9aD09PXI/MDpzPT09cj82MCoobi1hKS9sKzM2MDpuPT09cj82MCooYS1zKS9sKzEyMDo2MCoocy1uKS9sKzI0MCxpPTA9PT1sPzA6LjU+PWQ/bC91OmwvKDItdSksW01hdGgucm91bmQodCklMzYwLGksZCxudWxsPT1vPzE6b119LHUuaHNsYS5mcm9tPWZ1bmN0aW9uKGUpe2lmKG51bGw9PWVbMF18fG51bGw9PWVbMV18fG51bGw9PWVbMl0pcmV0dXJuW251bGwsbnVsbCxudWxsLGVbM11dO3ZhciB0PWVbMF0vMzYwLGk9ZVsxXSxzPWVbMl0sYT1lWzNdLG89LjU+PXM/cyooMStpKTpzK2ktcyppLHI9MipzLW87cmV0dXJuW01hdGgucm91bmQoMjU1Km4ocixvLHQrMS8zKSksTWF0aC5yb3VuZCgyNTUqbihyLG8sdCkpLE1hdGgucm91bmQoMjU1Km4ocixvLHQtMS8zKSksYV19LGYodSxmdW5jdGlvbihzLG4pe3ZhciBhPW4ucHJvcHMsbz1uLmNhY2hlLGg9bi50byx1PW4uZnJvbTtsLmZuW3NdPWZ1bmN0aW9uKHMpe2lmKGgmJiF0aGlzW29dJiYodGhpc1tvXT1oKHRoaXMuX3JnYmEpKSxzPT09dClyZXR1cm4gdGhpc1tvXS5zbGljZSgpO3ZhciBuLHI9ZS50eXBlKHMpLGQ9ImFycmF5Ij09PXJ8fCJvYmplY3QiPT09cj9zOmFyZ3VtZW50cyxjPXRoaXNbb10uc2xpY2UoKTtyZXR1cm4gZihhLGZ1bmN0aW9uKGUsdCl7dmFyIHM9ZFsib2JqZWN0Ij09PXI/ZTp0LmlkeF07bnVsbD09cyYmKHM9Y1t0LmlkeF0pLGNbdC5pZHhdPWkocyx0KX0pLHU/KG49bCh1KGMpKSxuW29dPWMsbik6bChjKX0sZihhLGZ1bmN0aW9uKHQsaSl7bC5mblt0XXx8KGwuZm5bdF09ZnVuY3Rpb24obil7dmFyIGEsbz1lLnR5cGUobiksaD0iYWxwaGEiPT09dD90aGlzLl9oc2xhPyJoc2xhIjoicmdiYSI6cyxsPXRoaXNbaF0oKSx1PWxbaS5pZHhdO3JldHVybiJ1bmRlZmluZWQiPT09bz91OigiZnVuY3Rpb24iPT09byYmKG49bi5jYWxsKHRoaXMsdSksbz1lLnR5cGUobikpLG51bGw9PW4mJmkuZW1wdHk/dGhpczooInN0cmluZyI9PT1vJiYoYT1yLmV4ZWMobiksYSYmKG49dStwYXJzZUZsb2F0KGFbMl0pKigiKyI9PT1hWzFdPzE6LTEpKSksbFtpLmlkeF09bix0aGlzW2hdKGwpKSl9KX0pfSksbC5ob29rPWZ1bmN0aW9uKHQpe3ZhciBpPXQuc3BsaXQoIiAiKTtmKGksZnVuY3Rpb24odCxpKXtlLmNzc0hvb2tzW2ldPXtzZXQ6ZnVuY3Rpb24odCxuKXt2YXIgYSxvLHI9IiI7aWYoInRyYW5zcGFyZW50IiE9PW4mJigic3RyaW5nIiE9PWUudHlwZShuKXx8KGE9cyhuKSkpKXtpZihuPWwoYXx8biksIWMucmdiYSYmMSE9PW4uX3JnYmFbM10pe2ZvcihvPSJiYWNrZ3JvdW5kQ29sb3IiPT09aT90LnBhcmVudE5vZGU6dDsoIiI9PT1yfHwidHJhbnNwYXJlbnQiPT09cikmJm8mJm8uc3R5bGU7KXRyeXtyPWUuY3NzKG8sImJhY2tncm91bmRDb2xvciIpLG89by5wYXJlbnROb2RlfWNhdGNoKGgpe31uPW4uYmxlbmQociYmInRyYW5zcGFyZW50IiE9PXI/cjoiX2RlZmF1bHQiKX1uPW4udG9SZ2JhU3RyaW5nKCl9dHJ5e3Quc3R5bGVbaV09bn1jYXRjaChoKXt9fX0sZS5meC5zdGVwW2ldPWZ1bmN0aW9uKHQpe3QuY29sb3JJbml0fHwodC5zdGFydD1sKHQuZWxlbSxpKSx0LmVuZD1sKHQuZW5kKSx0LmNvbG9ySW5pdD0hMCksZS5jc3NIb29rc1tpXS5zZXQodC5lbGVtLHQuc3RhcnQudHJhbnNpdGlvbih0LmVuZCx0LnBvcykpfX0pfSxsLmhvb2sobyksZS5jc3NIb29rcy5ib3JkZXJDb2xvcj17ZXhwYW5kOmZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBmKFsiVG9wIiwiUmlnaHQiLCJCb3R0b20iLCJMZWZ0Il0sZnVuY3Rpb24oaSxzKXt0WyJib3JkZXIiK3MrIkNvbG9yIl09ZX0pLHR9fSxhPWUuQ29sb3IubmFtZXM9e2FxdWE6IiMwMGZmZmYiLGJsYWNrOiIjMDAwMDAwIixibHVlOiIjMDAwMGZmIixmdWNoc2lhOiIjZmYwMGZmIixncmF5OiIjODA4MDgwIixncmVlbjoiIzAwODAwMCIsbGltZToiIzAwZmYwMCIsbWFyb29uOiIjODAwMDAwIixuYXZ5OiIjMDAwMDgwIixvbGl2ZToiIzgwODAwMCIscHVycGxlOiIjODAwMDgwIixyZWQ6IiNmZjAwMDAiLHNpbHZlcjoiI2MwYzBjMCIsdGVhbDoiIzAwODA4MCIsd2hpdGU6IiNmZmZmZmYiLHllbGxvdzoiI2ZmZmYwMCIsdHJhbnNwYXJlbnQ6W251bGwsbnVsbCxudWxsLDBdLF9kZWZhdWx0OiIjZmZmZmZmIn19KHApLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgaSxzLG49dC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3P3Qub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHQsbnVsbCk6dC5jdXJyZW50U3R5bGUsYT17fTtpZihuJiZuLmxlbmd0aCYmblswXSYmbltuWzBdXSlmb3Iocz1uLmxlbmd0aDtzLS07KWk9bltzXSwic3RyaW5nIj09dHlwZW9mIG5baV0mJihhW2UuY2FtZWxDYXNlKGkpXT1uW2ldKTtlbHNlIGZvcihpIGluIG4pInN0cmluZyI9PXR5cGVvZiBuW2ldJiYoYVtpXT1uW2ldKTtyZXR1cm4gYX1mdW5jdGlvbiBpKHQsaSl7dmFyIHMsYSxvPXt9O2ZvcihzIGluIGkpYT1pW3NdLHRbc10hPT1hJiYobltzXXx8KGUuZnguc3RlcFtzXXx8IWlzTmFOKHBhcnNlRmxvYXQoYSkpKSYmKG9bc109YSkpO3JldHVybiBvfXZhciBzPVsiYWRkIiwicmVtb3ZlIiwidG9nZ2xlIl0sbj17Ym9yZGVyOjEsYm9yZGVyQm90dG9tOjEsYm9yZGVyQ29sb3I6MSxib3JkZXJMZWZ0OjEsYm9yZGVyUmlnaHQ6MSxib3JkZXJUb3A6MSxib3JkZXJXaWR0aDoxLG1hcmdpbjoxLHBhZGRpbmc6MX07ZS5lYWNoKFsiYm9yZGVyTGVmdFN0eWxlIiwiYm9yZGVyUmlnaHRTdHlsZSIsImJvcmRlckJvdHRvbVN0eWxlIiwiYm9yZGVyVG9wU3R5bGUiXSxmdW5jdGlvbih0LGkpe2UuZnguc3RlcFtpXT1mdW5jdGlvbihlKXsoIm5vbmUiIT09ZS5lbmQmJiFlLnNldEF0dHJ8fDE9PT1lLnBvcyYmIWUuc2V0QXR0cikmJihwLnN0eWxlKGUuZWxlbSxpLGUuZW5kKSxlLnNldEF0dHI9ITApfX0pLGUuZm4uYWRkQmFja3x8KGUuZm4uYWRkQmFjaz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5hZGQobnVsbD09ZT90aGlzLnByZXZPYmplY3Q6dGhpcy5wcmV2T2JqZWN0LmZpbHRlcihlKSl9KSxlLmVmZmVjdHMuYW5pbWF0ZUNsYXNzPWZ1bmN0aW9uKG4sYSxvLHIpe3ZhciBoPWUuc3BlZWQoYSxvLHIpO3JldHVybiB0aGlzLnF1ZXVlKGZ1bmN0aW9uKCl7dmFyIGEsbz1lKHRoaXMpLHI9by5hdHRyKCJjbGFzcyIpfHwiIixsPWguY2hpbGRyZW4/by5maW5kKCIqIikuYWRkQmFjaygpOm87bD1sLm1hcChmdW5jdGlvbigpe3ZhciBpPWUodGhpcyk7cmV0dXJue2VsOmksc3RhcnQ6dCh0aGlzKX19KSxhPWZ1bmN0aW9uKCl7ZS5lYWNoKHMsZnVuY3Rpb24oZSx0KXtuW3RdJiZvW3QrIkNsYXNzIl0oblt0XSl9KX0sYSgpLGw9bC5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmQ9dCh0aGlzLmVsWzBdKSx0aGlzLmRpZmY9aSh0aGlzLnN0YXJ0LHRoaXMuZW5kKSx0aGlzfSksby5hdHRyKCJjbGFzcyIsciksbD1sLm1hcChmdW5jdGlvbigpe3ZhciB0PXRoaXMsaT1lLkRlZmVycmVkKCkscz1lLmV4dGVuZCh7fSxoLHtxdWV1ZTohMSxjb21wbGV0ZTpmdW5jdGlvbigpe2kucmVzb2x2ZSh0KX19KTtyZXR1cm4gdGhpcy5lbC5hbmltYXRlKHRoaXMuZGlmZixzKSxpLnByb21pc2UoKX0pLGUud2hlbi5hcHBseShlLGwuZ2V0KCkpLmRvbmUoZnVuY3Rpb24oKXthKCksZS5lYWNoKGFyZ3VtZW50cyxmdW5jdGlvbigpe3ZhciB0PXRoaXMuZWw7ZS5lYWNoKHRoaXMuZGlmZixmdW5jdGlvbihlKXt0LmNzcyhlLCIiKX0pfSksaC5jb21wbGV0ZS5jYWxsKG9bMF0pfSl9KX0sZS5mbi5leHRlbmQoe2FkZENsYXNzOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihpLHMsbixhKXtyZXR1cm4gcz9lLmVmZmVjdHMuYW5pbWF0ZUNsYXNzLmNhbGwodGhpcyx7YWRkOml9LHMsbixhKTp0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KGUuZm4uYWRkQ2xhc3MpLHJlbW92ZUNsYXNzOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihpLHMsbixhKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP2UuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCh0aGlzLHtyZW1vdmU6aX0scyxuLGEpOnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oZS5mbi5yZW1vdmVDbGFzcyksdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGkscyxuLGEsbyl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2Ygc3x8dm9pZCAwPT09cz9uP2UuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCh0aGlzLHM/e2FkZDppfTp7cmVtb3ZlOml9LG4sYSxvKTp0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTplLmVmZmVjdHMuYW5pbWF0ZUNsYXNzLmNhbGwodGhpcyx7dG9nZ2xlOml9LHMsbixhKX19KGUuZm4udG9nZ2xlQ2xhc3MpLHN3aXRjaENsYXNzOmZ1bmN0aW9uKHQsaSxzLG4sYSl7cmV0dXJuIGUuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCh0aGlzLHthZGQ6aSxyZW1vdmU6dH0scyxuLGEpfX0pfSgpLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGkscyxuKXtyZXR1cm4gZS5pc1BsYWluT2JqZWN0KHQpJiYoaT10LHQ9dC5lZmZlY3QpLHQ9e2VmZmVjdDp0fSxudWxsPT1pJiYoaT17fSksZS5pc0Z1bmN0aW9uKGkpJiYobj1pLHM9bnVsbCxpPXt9KSwoIm51bWJlciI9PXR5cGVvZiBpfHxlLmZ4LnNwZWVkc1tpXSkmJihuPXMscz1pLGk9e30pLGUuaXNGdW5jdGlvbihzKSYmKG49cyxzPW51bGwpLGkmJmUuZXh0ZW5kKHQsaSkscz1zfHxpLmR1cmF0aW9uLHQuZHVyYXRpb249ZS5meC5vZmY/MDoibnVtYmVyIj09dHlwZW9mIHM/czpzIGluIGUuZnguc3BlZWRzP2UuZnguc3BlZWRzW3NdOmUuZnguc3BlZWRzLl9kZWZhdWx0LHQuY29tcGxldGU9bnx8aS5jb21wbGV0ZSx0fWZ1bmN0aW9uIGkodCl7cmV0dXJuIXR8fCJudW1iZXIiPT10eXBlb2YgdHx8ZS5meC5zcGVlZHNbdF0/ITA6InN0cmluZyIhPXR5cGVvZiB0fHxlLmVmZmVjdHMuZWZmZWN0W3RdP2UuaXNGdW5jdGlvbih0KT8hMDoib2JqZWN0IiE9dHlwZW9mIHR8fHQuZWZmZWN0PyExOiEwOiEwfWUuZXh0ZW5kKGUuZWZmZWN0cyx7dmVyc2lvbjoiMS4xMS40IixzYXZlOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBpPTA7dC5sZW5ndGg+aTtpKyspbnVsbCE9PXRbaV0mJmUuZGF0YShjK3RbaV0sZVswXS5zdHlsZVt0W2ldXSl9LHJlc3RvcmU6ZnVuY3Rpb24oZSx0KXt2YXIgaSxzO2ZvcihzPTA7dC5sZW5ndGg+cztzKyspbnVsbCE9PXRbc10mJihpPWUuZGF0YShjK3Rbc10pLHZvaWQgMD09PWkmJihpPSIiKSxlLmNzcyh0W3NdLGkpKX0sc2V0TW9kZTpmdW5jdGlvbihlLHQpe3JldHVybiJ0b2dnbGUiPT09dCYmKHQ9ZS5pcygiOmhpZGRlbiIpPyJzaG93IjoiaGlkZSIpLHR9LGdldEJhc2VsaW5lOmZ1bmN0aW9uKGUsdCl7dmFyIGkscztzd2l0Y2goZVswXSl7Y2FzZSJ0b3AiOmk9MDticmVhaztjYXNlIm1pZGRsZSI6aT0uNTticmVhaztjYXNlImJvdHRvbSI6aT0xO2JyZWFrO2RlZmF1bHQ6aT1lWzBdL3QuaGVpZ2h0fXN3aXRjaChlWzFdKXtjYXNlImxlZnQiOnM9MDticmVhaztjYXNlImNlbnRlciI6cz0uNTticmVhaztjYXNlInJpZ2h0IjpzPTE7YnJlYWs7ZGVmYXVsdDpzPWVbMV0vdC53aWR0aH1yZXR1cm57eDpzLHk6aX19LGNyZWF0ZVdyYXBwZXI6ZnVuY3Rpb24odCl7aWYodC5wYXJlbnQoKS5pcygiLnVpLWVmZmVjdHMtd3JhcHBlciIpKXJldHVybiB0LnBhcmVudCgpO3ZhciBpPXt3aWR0aDp0Lm91dGVyV2lkdGgoITApLGhlaWdodDp0Lm91dGVySGVpZ2h0KCEwKSwiZmxvYXQiOnQuY3NzKCJmbG9hdCIpfSxzPWUoIjxkaXY+PC9kaXY+IikuYWRkQ2xhc3MoInVpLWVmZmVjdHMtd3JhcHBlciIpLmNzcyh7Zm9udFNpemU6IjEwMCUiLGJhY2tncm91bmQ6InRyYW5zcGFyZW50Iixib3JkZXI6Im5vbmUiLG1hcmdpbjowLHBhZGRpbmc6MH0pLG49e3dpZHRoOnQud2lkdGgoKSxoZWlnaHQ6dC5oZWlnaHQoKX0sYT1kb2N1bWVudC5hY3RpdmVFbGVtZW50O3RyeXthLmlkfWNhdGNoKG8pe2E9ZG9jdW1lbnQuYm9keX1yZXR1cm4gdC53cmFwKHMpLCh0WzBdPT09YXx8ZS5jb250YWlucyh0WzBdLGEpKSYmZShhKS5mb2N1cygpLHM9dC5wYXJlbnQoKSwic3RhdGljIj09PXQuY3NzKCJwb3NpdGlvbiIpPyhzLmNzcyh7cG9zaXRpb246InJlbGF0aXZlIn0pLHQuY3NzKHtwb3NpdGlvbjoicmVsYXRpdmUifSkpOihlLmV4dGVuZChpLHtwb3NpdGlvbjp0LmNzcygicG9zaXRpb24iKSx6SW5kZXg6dC5jc3MoInotaW5kZXgiKX0pLGUuZWFjaChbInRvcCIsImxlZnQiLCJib3R0b20iLCJyaWdodCJdLGZ1bmN0aW9uKGUscyl7aVtzXT10LmNzcyhzKSxpc05hTihwYXJzZUludChpW3NdLDEwKSkmJihpW3NdPSJhdXRvIil9KSx0LmNzcyh7cG9zaXRpb246InJlbGF0aXZlIix0b3A6MCxsZWZ0OjAscmlnaHQ6ImF1dG8iLGJvdHRvbToiYXV0byJ9KSksdC5jc3Mobikscy5jc3MoaSkuc2hvdygpfSxyZW1vdmVXcmFwcGVyOmZ1bmN0aW9uKHQpe3ZhciBpPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7cmV0dXJuIHQucGFyZW50KCkuaXMoIi51aS1lZmZlY3RzLXdyYXBwZXIiKSYmKHQucGFyZW50KCkucmVwbGFjZVdpdGgodCksKHRbMF09PT1pfHxlLmNvbnRhaW5zKHRbMF0saSkpJiZlKGkpLmZvY3VzKCkpLHR9LHNldFRyYW5zaXRpb246ZnVuY3Rpb24odCxpLHMsbil7cmV0dXJuIG49bnx8e30sZS5lYWNoKGksZnVuY3Rpb24oZSxpKXt2YXIgYT10LmNzc1VuaXQoaSk7YVswXT4wJiYobltpXT1hWzBdKnMrYVsxXSl9KSxufX0pLGUuZm4uZXh0ZW5kKHtlZmZlY3Q6ZnVuY3Rpb24oKXtmdW5jdGlvbiBpKHQpe2Z1bmN0aW9uIGkoKXtlLmlzRnVuY3Rpb24oYSkmJmEuY2FsbChuWzBdKSxlLmlzRnVuY3Rpb24odCkmJnQoKX12YXIgbj1lKHRoaXMpLGE9cy5jb21wbGV0ZSxyPXMubW9kZTsobi5pcygiOmhpZGRlbiIpPyJoaWRlIj09PXI6InNob3ciPT09cik/KG5bcl0oKSxpKCkpOm8uY2FsbChuWzBdLHMsaSl9dmFyIHM9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyksbj1zLm1vZGUsYT1zLnF1ZXVlLG89ZS5lZmZlY3RzLmVmZmVjdFtzLmVmZmVjdF07cmV0dXJuIGUuZngub2ZmfHwhbz9uP3RoaXNbbl0ocy5kdXJhdGlvbixzLmNvbXBsZXRlKTp0aGlzLmVhY2goZnVuY3Rpb24oKXtzLmNvbXBsZXRlJiZzLmNvbXBsZXRlLmNhbGwodGhpcyl9KTphPT09ITE/dGhpcy5lYWNoKGkpOnRoaXMucXVldWUoYXx8ImZ4IixpKX0sc2hvdzpmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24ocyl7aWYoaShzKSlyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIG49dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIG4ubW9kZT0ic2hvdyIsdGhpcy5lZmZlY3QuY2FsbCh0aGlzLG4pfX0oZS5mbi5zaG93KSxoaWRlOmZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihzKXtpZihpKHMpKXJldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgbj10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gbi5tb2RlPSJoaWRlIix0aGlzLmVmZmVjdC5jYWxsKHRoaXMsbil9fShlLmZuLmhpZGUpLHRvZ2dsZTpmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24ocyl7aWYoaShzKXx8ImJvb2xlYW4iPT10eXBlb2YgcylyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIG49dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIG4ubW9kZT0idG9nZ2xlIix0aGlzLmVmZmVjdC5jYWxsKHRoaXMsbil9fShlLmZuLnRvZ2dsZSksY3NzVW5pdDpmdW5jdGlvbih0KXt2YXIgaT10aGlzLmNzcyh0KSxzPVtdO3JldHVybiBlLmVhY2goWyJlbSIsInB4IiwiJSIsInB0Il0sZnVuY3Rpb24oZSx0KXtpLmluZGV4T2YodCk+MCYmKHM9W3BhcnNlRmxvYXQoaSksdF0pfSksc319KX0oKSxmdW5jdGlvbigpe3ZhciB0PXt9O2UuZWFjaChbIlF1YWQiLCJDdWJpYyIsIlF1YXJ0IiwiUXVpbnQiLCJFeHBvIl0sZnVuY3Rpb24oZSxpKXt0W2ldPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnBvdyh0LGUrMil9fSksZS5leHRlbmQodCx7U2luZTpmdW5jdGlvbihlKXtyZXR1cm4gMS1NYXRoLmNvcyhlKk1hdGguUEkvMil9LENpcmM6ZnVuY3Rpb24oZSl7cmV0dXJuIDEtTWF0aC5zcXJ0KDEtZSplKX0sRWxhc3RpYzpmdW5jdGlvbihlKXtyZXR1cm4gMD09PWV8fDE9PT1lP2U6LU1hdGgucG93KDIsOCooZS0xKSkqTWF0aC5zaW4oKDgwKihlLTEpLTcuNSkqTWF0aC5QSS8xNSl9LEJhY2s6ZnVuY3Rpb24oZSl7cmV0dXJuIGUqZSooMyplLTIpfSxCb3VuY2U6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LGk9NDsoKHQ9TWF0aC5wb3coMiwtLWkpKS0xKS8xMT5lOyk7cmV0dXJuIDEvTWF0aC5wb3coNCwzLWkpLTcuNTYyNSpNYXRoLnBvdygoMyp0LTIpLzIyLWUsMil9fSksZS5lYWNoKHQsZnVuY3Rpb24odCxpKXtlLmVhc2luZ1siZWFzZUluIit0XT1pLGUuZWFzaW5nWyJlYXNlT3V0Iit0XT1mdW5jdGlvbihlKXtyZXR1cm4gMS1pKDEtZSl9LGUuZWFzaW5nWyJlYXNlSW5PdXQiK3RdPWZ1bmN0aW9uKGUpe3JldHVybi41PmU/aSgyKmUpLzI6MS1pKC0yKmUrMikvMn19KX0oKSxlLmVmZmVjdHMsZS5lZmZlY3RzLmVmZmVjdC5ibGluZD1mdW5jdGlvbih0LGkpe3ZhciBzLG4sYSxvPWUodGhpcykscj0vdXB8ZG93bnx2ZXJ0aWNhbC8saD0vdXB8bGVmdHx2ZXJ0aWNhbHxob3Jpem9udGFsLyxsPVsicG9zaXRpb24iLCJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJoZWlnaHQiLCJ3aWR0aCJdLHU9ZS5lZmZlY3RzLnNldE1vZGUobyx0Lm1vZGV8fCJoaWRlIiksZD10LmRpcmVjdGlvbnx8InVwIixjPXIudGVzdChkKSxwPWM/ImhlaWdodCI6IndpZHRoIixmPWM/InRvcCI6ImxlZnQiLG09aC50ZXN0KGQpLGc9e30sdj0ic2hvdyI9PT11O28ucGFyZW50KCkuaXMoIi51aS1lZmZlY3RzLXdyYXBwZXIiKT9lLmVmZmVjdHMuc2F2ZShvLnBhcmVudCgpLGwpOmUuZWZmZWN0cy5zYXZlKG8sbCksby5zaG93KCkscz1lLmVmZmVjdHMuY3JlYXRlV3JhcHBlcihvKS5jc3Moe292ZXJmbG93OiJoaWRkZW4ifSksbj1zW3BdKCksYT1wYXJzZUZsb2F0KHMuY3NzKGYpKXx8MCxnW3BdPXY/bjowLG18fChvLmNzcyhjPyJib3R0b20iOiJyaWdodCIsMCkuY3NzKGM/InRvcCI6ImxlZnQiLCJhdXRvIikuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUifSksZ1tmXT12P2E6bithKSx2JiYocy5jc3MocCwwKSxtfHxzLmNzcyhmLGErbikpLHMuYW5pbWF0ZShnLHtkdXJhdGlvbjp0LmR1cmF0aW9uLGVhc2luZzp0LmVhc2luZyxxdWV1ZTohMSxjb21wbGV0ZTpmdW5jdGlvbigpeyJoaWRlIj09PXUmJm8uaGlkZSgpLGUuZWZmZWN0cy5yZXN0b3JlKG8sbCksZS5lZmZlY3RzLnJlbW92ZVdyYXBwZXIobyksaSgpCn19KX0sZS5lZmZlY3RzLmVmZmVjdC5ib3VuY2U9ZnVuY3Rpb24odCxpKXt2YXIgcyxuLGEsbz1lKHRoaXMpLHI9WyJwb3NpdGlvbiIsInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCIsImhlaWdodCIsIndpZHRoIl0saD1lLmVmZmVjdHMuc2V0TW9kZShvLHQubW9kZXx8ImVmZmVjdCIpLGw9ImhpZGUiPT09aCx1PSJzaG93Ij09PWgsZD10LmRpcmVjdGlvbnx8InVwIixjPXQuZGlzdGFuY2UscD10LnRpbWVzfHw1LGY9MipwKyh1fHxsPzE6MCksbT10LmR1cmF0aW9uL2YsZz10LmVhc2luZyx2PSJ1cCI9PT1kfHwiZG93biI9PT1kPyJ0b3AiOiJsZWZ0Iix5PSJ1cCI9PT1kfHwibGVmdCI9PT1kLGI9by5xdWV1ZSgpLF89Yi5sZW5ndGg7Zm9yKCh1fHxsKSYmci5wdXNoKCJvcGFjaXR5IiksZS5lZmZlY3RzLnNhdmUobyxyKSxvLnNob3coKSxlLmVmZmVjdHMuY3JlYXRlV3JhcHBlcihvKSxjfHwoYz1vWyJ0b3AiPT09dj8ib3V0ZXJIZWlnaHQiOiJvdXRlcldpZHRoIl0oKS8zKSx1JiYoYT17b3BhY2l0eToxfSxhW3ZdPTAsby5jc3MoIm9wYWNpdHkiLDApLmNzcyh2LHk/MiotYzoyKmMpLmFuaW1hdGUoYSxtLGcpKSxsJiYoYy89TWF0aC5wb3coMixwLTEpKSxhPXt9LGFbdl09MCxzPTA7cD5zO3MrKyluPXt9LG5bdl09KHk/Ii09IjoiKz0iKStjLG8uYW5pbWF0ZShuLG0sZykuYW5pbWF0ZShhLG0sZyksYz1sPzIqYzpjLzI7bCYmKG49e29wYWNpdHk6MH0sblt2XT0oeT8iLT0iOiIrPSIpK2Msby5hbmltYXRlKG4sbSxnKSksby5xdWV1ZShmdW5jdGlvbigpe2wmJm8uaGlkZSgpLGUuZWZmZWN0cy5yZXN0b3JlKG8sciksZS5lZmZlY3RzLnJlbW92ZVdyYXBwZXIobyksaSgpfSksXz4xJiZiLnNwbGljZS5hcHBseShiLFsxLDBdLmNvbmNhdChiLnNwbGljZShfLGYrMSkpKSxvLmRlcXVldWUoKX0sZS5lZmZlY3RzLmVmZmVjdC5jbGlwPWZ1bmN0aW9uKHQsaSl7dmFyIHMsbixhLG89ZSh0aGlzKSxyPVsicG9zaXRpb24iLCJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJoZWlnaHQiLCJ3aWR0aCJdLGg9ZS5lZmZlY3RzLnNldE1vZGUobyx0Lm1vZGV8fCJoaWRlIiksbD0ic2hvdyI9PT1oLHU9dC5kaXJlY3Rpb258fCJ2ZXJ0aWNhbCIsZD0idmVydGljYWwiPT09dSxjPWQ/ImhlaWdodCI6IndpZHRoIixwPWQ/InRvcCI6ImxlZnQiLGY9e307ZS5lZmZlY3RzLnNhdmUobyxyKSxvLnNob3coKSxzPWUuZWZmZWN0cy5jcmVhdGVXcmFwcGVyKG8pLmNzcyh7b3ZlcmZsb3c6ImhpZGRlbiJ9KSxuPSJJTUciPT09b1swXS50YWdOYW1lP3M6byxhPW5bY10oKSxsJiYobi5jc3MoYywwKSxuLmNzcyhwLGEvMikpLGZbY109bD9hOjAsZltwXT1sPzA6YS8yLG4uYW5pbWF0ZShmLHtxdWV1ZTohMSxkdXJhdGlvbjp0LmR1cmF0aW9uLGVhc2luZzp0LmVhc2luZyxjb21wbGV0ZTpmdW5jdGlvbigpe2x8fG8uaGlkZSgpLGUuZWZmZWN0cy5yZXN0b3JlKG8sciksZS5lZmZlY3RzLnJlbW92ZVdyYXBwZXIobyksaSgpfX0pfSxlLmVmZmVjdHMuZWZmZWN0LmRyb3A9ZnVuY3Rpb24odCxpKXt2YXIgcyxuPWUodGhpcyksYT1bInBvc2l0aW9uIiwidG9wIiwiYm90dG9tIiwibGVmdCIsInJpZ2h0Iiwib3BhY2l0eSIsImhlaWdodCIsIndpZHRoIl0sbz1lLmVmZmVjdHMuc2V0TW9kZShuLHQubW9kZXx8ImhpZGUiKSxyPSJzaG93Ij09PW8saD10LmRpcmVjdGlvbnx8ImxlZnQiLGw9InVwIj09PWh8fCJkb3duIj09PWg/InRvcCI6ImxlZnQiLHU9InVwIj09PWh8fCJsZWZ0Ij09PWg/InBvcyI6Im5lZyIsZD17b3BhY2l0eTpyPzE6MH07ZS5lZmZlY3RzLnNhdmUobixhKSxuLnNob3coKSxlLmVmZmVjdHMuY3JlYXRlV3JhcHBlcihuKSxzPXQuZGlzdGFuY2V8fG5bInRvcCI9PT1sPyJvdXRlckhlaWdodCI6Im91dGVyV2lkdGgiXSghMCkvMixyJiZuLmNzcygib3BhY2l0eSIsMCkuY3NzKGwsInBvcyI9PT11Py1zOnMpLGRbbF09KHI/InBvcyI9PT11PyIrPSI6Ii09IjoicG9zIj09PXU/Ii09IjoiKz0iKStzLG4uYW5pbWF0ZShkLHtxdWV1ZTohMSxkdXJhdGlvbjp0LmR1cmF0aW9uLGVhc2luZzp0LmVhc2luZyxjb21wbGV0ZTpmdW5jdGlvbigpeyJoaWRlIj09PW8mJm4uaGlkZSgpLGUuZWZmZWN0cy5yZXN0b3JlKG4sYSksZS5lZmZlY3RzLnJlbW92ZVdyYXBwZXIobiksaSgpfX0pfSxlLmVmZmVjdHMuZWZmZWN0LmV4cGxvZGU9ZnVuY3Rpb24odCxpKXtmdW5jdGlvbiBzKCl7Yi5wdXNoKHRoaXMpLGIubGVuZ3RoPT09ZCpjJiZuKCl9ZnVuY3Rpb24gbigpe3AuY3NzKHt2aXNpYmlsaXR5OiJ2aXNpYmxlIn0pLGUoYikucmVtb3ZlKCksbXx8cC5oaWRlKCksaSgpfXZhciBhLG8scixoLGwsdSxkPXQucGllY2VzP01hdGgucm91bmQoTWF0aC5zcXJ0KHQucGllY2VzKSk6MyxjPWQscD1lKHRoaXMpLGY9ZS5lZmZlY3RzLnNldE1vZGUocCx0Lm1vZGV8fCJoaWRlIiksbT0ic2hvdyI9PT1mLGc9cC5zaG93KCkuY3NzKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIikub2Zmc2V0KCksdj1NYXRoLmNlaWwocC5vdXRlcldpZHRoKCkvYykseT1NYXRoLmNlaWwocC5vdXRlckhlaWdodCgpL2QpLGI9W107Zm9yKGE9MDtkPmE7YSsrKWZvcihoPWcudG9wK2EqeSx1PWEtKGQtMSkvMixvPTA7Yz5vO28rKylyPWcubGVmdCtvKnYsbD1vLShjLTEpLzIscC5jbG9uZSgpLmFwcGVuZFRvKCJib2R5Iikud3JhcCgiPGRpdj48L2Rpdj4iKS5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdmlzaWJpbGl0eToidmlzaWJsZSIsbGVmdDotbyp2LHRvcDotYSp5fSkucGFyZW50KCkuYWRkQ2xhc3MoInVpLWVmZmVjdHMtZXhwbG9kZSIpLmNzcyh7cG9zaXRpb246ImFic29sdXRlIixvdmVyZmxvdzoiaGlkZGVuIix3aWR0aDp2LGhlaWdodDp5LGxlZnQ6cisobT9sKnY6MCksdG9wOmgrKG0/dSp5OjApLG9wYWNpdHk6bT8wOjF9KS5hbmltYXRlKHtsZWZ0OnIrKG0/MDpsKnYpLHRvcDpoKyhtPzA6dSp5KSxvcGFjaXR5Om0/MTowfSx0LmR1cmF0aW9ufHw1MDAsdC5lYXNpbmcscyl9LGUuZWZmZWN0cy5lZmZlY3QuZmFkZT1mdW5jdGlvbih0LGkpe3ZhciBzPWUodGhpcyksbj1lLmVmZmVjdHMuc2V0TW9kZShzLHQubW9kZXx8InRvZ2dsZSIpO3MuYW5pbWF0ZSh7b3BhY2l0eTpufSx7cXVldWU6ITEsZHVyYXRpb246dC5kdXJhdGlvbixlYXNpbmc6dC5lYXNpbmcsY29tcGxldGU6aX0pfSxlLmVmZmVjdHMuZWZmZWN0LmZvbGQ9ZnVuY3Rpb24odCxpKXt2YXIgcyxuLGE9ZSh0aGlzKSxvPVsicG9zaXRpb24iLCJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJoZWlnaHQiLCJ3aWR0aCJdLHI9ZS5lZmZlY3RzLnNldE1vZGUoYSx0Lm1vZGV8fCJoaWRlIiksaD0ic2hvdyI9PT1yLGw9ImhpZGUiPT09cix1PXQuc2l6ZXx8MTUsZD0vKFswLTldKyklLy5leGVjKHUpLGM9ISF0Lmhvcml6Rmlyc3QscD1oIT09YyxmPXA/WyJ3aWR0aCIsImhlaWdodCJdOlsiaGVpZ2h0Iiwid2lkdGgiXSxtPXQuZHVyYXRpb24vMixnPXt9LHY9e307ZS5lZmZlY3RzLnNhdmUoYSxvKSxhLnNob3coKSxzPWUuZWZmZWN0cy5jcmVhdGVXcmFwcGVyKGEpLmNzcyh7b3ZlcmZsb3c6ImhpZGRlbiJ9KSxuPXA/W3Mud2lkdGgoKSxzLmhlaWdodCgpXTpbcy5oZWlnaHQoKSxzLndpZHRoKCldLGQmJih1PXBhcnNlSW50KGRbMV0sMTApLzEwMCpuW2w/MDoxXSksaCYmcy5jc3MoYz97aGVpZ2h0OjAsd2lkdGg6dX06e2hlaWdodDp1LHdpZHRoOjB9KSxnW2ZbMF1dPWg/blswXTp1LHZbZlsxXV09aD9uWzFdOjAscy5hbmltYXRlKGcsbSx0LmVhc2luZykuYW5pbWF0ZSh2LG0sdC5lYXNpbmcsZnVuY3Rpb24oKXtsJiZhLmhpZGUoKSxlLmVmZmVjdHMucmVzdG9yZShhLG8pLGUuZWZmZWN0cy5yZW1vdmVXcmFwcGVyKGEpLGkoKX0pfSxlLmVmZmVjdHMuZWZmZWN0LmhpZ2hsaWdodD1mdW5jdGlvbih0LGkpe3ZhciBzPWUodGhpcyksbj1bImJhY2tncm91bmRJbWFnZSIsImJhY2tncm91bmRDb2xvciIsIm9wYWNpdHkiXSxhPWUuZWZmZWN0cy5zZXRNb2RlKHMsdC5tb2RlfHwic2hvdyIpLG89e2JhY2tncm91bmRDb2xvcjpzLmNzcygiYmFja2dyb3VuZENvbG9yIil9OyJoaWRlIj09PWEmJihvLm9wYWNpdHk9MCksZS5lZmZlY3RzLnNhdmUocyxuKSxzLnNob3coKS5jc3Moe2JhY2tncm91bmRJbWFnZToibm9uZSIsYmFja2dyb3VuZENvbG9yOnQuY29sb3J8fCIjZmZmZjk5In0pLmFuaW1hdGUobyx7cXVldWU6ITEsZHVyYXRpb246dC5kdXJhdGlvbixlYXNpbmc6dC5lYXNpbmcsY29tcGxldGU6ZnVuY3Rpb24oKXsiaGlkZSI9PT1hJiZzLmhpZGUoKSxlLmVmZmVjdHMucmVzdG9yZShzLG4pLGkoKX19KX0sZS5lZmZlY3RzLmVmZmVjdC5zaXplPWZ1bmN0aW9uKHQsaSl7dmFyIHMsbixhLG89ZSh0aGlzKSxyPVsicG9zaXRpb24iLCJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJ3aWR0aCIsImhlaWdodCIsIm92ZXJmbG93Iiwib3BhY2l0eSJdLGg9WyJwb3NpdGlvbiIsInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCIsIm92ZXJmbG93Iiwib3BhY2l0eSJdLGw9WyJ3aWR0aCIsImhlaWdodCIsIm92ZXJmbG93Il0sdT1bImZvbnRTaXplIl0sZD1bImJvcmRlclRvcFdpZHRoIiwiYm9yZGVyQm90dG9tV2lkdGgiLCJwYWRkaW5nVG9wIiwicGFkZGluZ0JvdHRvbSJdLGM9WyJib3JkZXJMZWZ0V2lkdGgiLCJib3JkZXJSaWdodFdpZHRoIiwicGFkZGluZ0xlZnQiLCJwYWRkaW5nUmlnaHQiXSxwPWUuZWZmZWN0cy5zZXRNb2RlKG8sdC5tb2RlfHwiZWZmZWN0IiksZj10LnJlc3RvcmV8fCJlZmZlY3QiIT09cCxtPXQuc2NhbGV8fCJib3RoIixnPXQub3JpZ2lufHxbIm1pZGRsZSIsImNlbnRlciJdLHY9by5jc3MoInBvc2l0aW9uIikseT1mP3I6aCxiPXtoZWlnaHQ6MCx3aWR0aDowLG91dGVySGVpZ2h0OjAsb3V0ZXJXaWR0aDowfTsic2hvdyI9PT1wJiZvLnNob3coKSxzPXtoZWlnaHQ6by5oZWlnaHQoKSx3aWR0aDpvLndpZHRoKCksb3V0ZXJIZWlnaHQ6by5vdXRlckhlaWdodCgpLG91dGVyV2lkdGg6by5vdXRlcldpZHRoKCl9LCJ0b2dnbGUiPT09dC5tb2RlJiYic2hvdyI9PT1wPyhvLmZyb209dC50b3x8YixvLnRvPXQuZnJvbXx8cyk6KG8uZnJvbT10LmZyb218fCgic2hvdyI9PT1wP2I6cyksby50bz10LnRvfHwoImhpZGUiPT09cD9iOnMpKSxhPXtmcm9tOnt5Om8uZnJvbS5oZWlnaHQvcy5oZWlnaHQseDpvLmZyb20ud2lkdGgvcy53aWR0aH0sdG86e3k6by50by5oZWlnaHQvcy5oZWlnaHQseDpvLnRvLndpZHRoL3Mud2lkdGh9fSwoImJveCI9PT1tfHwiYm90aCI9PT1tKSYmKGEuZnJvbS55IT09YS50by55JiYoeT15LmNvbmNhdChkKSxvLmZyb209ZS5lZmZlY3RzLnNldFRyYW5zaXRpb24obyxkLGEuZnJvbS55LG8uZnJvbSksby50bz1lLmVmZmVjdHMuc2V0VHJhbnNpdGlvbihvLGQsYS50by55LG8udG8pKSxhLmZyb20ueCE9PWEudG8ueCYmKHk9eS5jb25jYXQoYyksby5mcm9tPWUuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKG8sYyxhLmZyb20ueCxvLmZyb20pLG8udG89ZS5lZmZlY3RzLnNldFRyYW5zaXRpb24obyxjLGEudG8ueCxvLnRvKSkpLCgiY29udGVudCI9PT1tfHwiYm90aCI9PT1tKSYmYS5mcm9tLnkhPT1hLnRvLnkmJih5PXkuY29uY2F0KHUpLmNvbmNhdChsKSxvLmZyb209ZS5lZmZlY3RzLnNldFRyYW5zaXRpb24obyx1LGEuZnJvbS55LG8uZnJvbSksby50bz1lLmVmZmVjdHMuc2V0VHJhbnNpdGlvbihvLHUsYS50by55LG8udG8pKSxlLmVmZmVjdHMuc2F2ZShvLHkpLG8uc2hvdygpLGUuZWZmZWN0cy5jcmVhdGVXcmFwcGVyKG8pLG8uY3NzKCJvdmVyZmxvdyIsImhpZGRlbiIpLmNzcyhvLmZyb20pLGcmJihuPWUuZWZmZWN0cy5nZXRCYXNlbGluZShnLHMpLG8uZnJvbS50b3A9KHMub3V0ZXJIZWlnaHQtby5vdXRlckhlaWdodCgpKSpuLnksby5mcm9tLmxlZnQ9KHMub3V0ZXJXaWR0aC1vLm91dGVyV2lkdGgoKSkqbi54LG8udG8udG9wPShzLm91dGVySGVpZ2h0LW8udG8ub3V0ZXJIZWlnaHQpKm4ueSxvLnRvLmxlZnQ9KHMub3V0ZXJXaWR0aC1vLnRvLm91dGVyV2lkdGgpKm4ueCksby5jc3Moby5mcm9tKSwoImNvbnRlbnQiPT09bXx8ImJvdGgiPT09bSkmJihkPWQuY29uY2F0KFsibWFyZ2luVG9wIiwibWFyZ2luQm90dG9tIl0pLmNvbmNhdCh1KSxjPWMuY29uY2F0KFsibWFyZ2luTGVmdCIsIm1hcmdpblJpZ2h0Il0pLGw9ci5jb25jYXQoZCkuY29uY2F0KGMpLG8uZmluZCgiKlt3aWR0aF0iKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGk9ZSh0aGlzKSxzPXtoZWlnaHQ6aS5oZWlnaHQoKSx3aWR0aDppLndpZHRoKCksb3V0ZXJIZWlnaHQ6aS5vdXRlckhlaWdodCgpLG91dGVyV2lkdGg6aS5vdXRlcldpZHRoKCl9O2YmJmUuZWZmZWN0cy5zYXZlKGksbCksaS5mcm9tPXtoZWlnaHQ6cy5oZWlnaHQqYS5mcm9tLnksd2lkdGg6cy53aWR0aCphLmZyb20ueCxvdXRlckhlaWdodDpzLm91dGVySGVpZ2h0KmEuZnJvbS55LG91dGVyV2lkdGg6cy5vdXRlcldpZHRoKmEuZnJvbS54fSxpLnRvPXtoZWlnaHQ6cy5oZWlnaHQqYS50by55LHdpZHRoOnMud2lkdGgqYS50by54LG91dGVySGVpZ2h0OnMuaGVpZ2h0KmEudG8ueSxvdXRlcldpZHRoOnMud2lkdGgqYS50by54fSxhLmZyb20ueSE9PWEudG8ueSYmKGkuZnJvbT1lLmVmZmVjdHMuc2V0VHJhbnNpdGlvbihpLGQsYS5mcm9tLnksaS5mcm9tKSxpLnRvPWUuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKGksZCxhLnRvLnksaS50bykpLGEuZnJvbS54IT09YS50by54JiYoaS5mcm9tPWUuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKGksYyxhLmZyb20ueCxpLmZyb20pLGkudG89ZS5lZmZlY3RzLnNldFRyYW5zaXRpb24oaSxjLGEudG8ueCxpLnRvKSksaS5jc3MoaS5mcm9tKSxpLmFuaW1hdGUoaS50byx0LmR1cmF0aW9uLHQuZWFzaW5nLGZ1bmN0aW9uKCl7ZiYmZS5lZmZlY3RzLnJlc3RvcmUoaSxsKX0pfSkpLG8uYW5pbWF0ZShvLnRvLHtxdWV1ZTohMSxkdXJhdGlvbjp0LmR1cmF0aW9uLGVhc2luZzp0LmVhc2luZyxjb21wbGV0ZTpmdW5jdGlvbigpezA9PT1vLnRvLm9wYWNpdHkmJm8uY3NzKCJvcGFjaXR5IixvLmZyb20ub3BhY2l0eSksImhpZGUiPT09cCYmby5oaWRlKCksZS5lZmZlY3RzLnJlc3RvcmUobyx5KSxmfHwoInN0YXRpYyI9PT12P28uY3NzKHtwb3NpdGlvbjoicmVsYXRpdmUiLHRvcDpvLnRvLnRvcCxsZWZ0Om8udG8ubGVmdH0pOmUuZWFjaChbInRvcCIsImxlZnQiXSxmdW5jdGlvbihlLHQpe28uY3NzKHQsZnVuY3Rpb24odCxpKXt2YXIgcz1wYXJzZUludChpLDEwKSxuPWU/by50by5sZWZ0Om8udG8udG9wO3JldHVybiJhdXRvIj09PWk/bisicHgiOnMrbisicHgifSl9KSksZS5lZmZlY3RzLnJlbW92ZVdyYXBwZXIobyksaSgpfX0pfSxlLmVmZmVjdHMuZWZmZWN0LnNjYWxlPWZ1bmN0aW9uKHQsaSl7dmFyIHM9ZSh0aGlzKSxuPWUuZXh0ZW5kKCEwLHt9LHQpLGE9ZS5lZmZlY3RzLnNldE1vZGUocyx0Lm1vZGV8fCJlZmZlY3QiKSxvPXBhcnNlSW50KHQucGVyY2VudCwxMCl8fCgwPT09cGFyc2VJbnQodC5wZXJjZW50LDEwKT8wOiJoaWRlIj09PWE/MDoxMDApLHI9dC5kaXJlY3Rpb258fCJib3RoIixoPXQub3JpZ2luLGw9e2hlaWdodDpzLmhlaWdodCgpLHdpZHRoOnMud2lkdGgoKSxvdXRlckhlaWdodDpzLm91dGVySGVpZ2h0KCksb3V0ZXJXaWR0aDpzLm91dGVyV2lkdGgoKX0sdT17eToiaG9yaXpvbnRhbCIhPT1yP28vMTAwOjEseDoidmVydGljYWwiIT09cj9vLzEwMDoxfTtuLmVmZmVjdD0ic2l6ZSIsbi5xdWV1ZT0hMSxuLmNvbXBsZXRlPWksImVmZmVjdCIhPT1hJiYobi5vcmlnaW49aHx8WyJtaWRkbGUiLCJjZW50ZXIiXSxuLnJlc3RvcmU9ITApLG4uZnJvbT10LmZyb218fCgic2hvdyI9PT1hP3toZWlnaHQ6MCx3aWR0aDowLG91dGVySGVpZ2h0OjAsb3V0ZXJXaWR0aDowfTpsKSxuLnRvPXtoZWlnaHQ6bC5oZWlnaHQqdS55LHdpZHRoOmwud2lkdGgqdS54LG91dGVySGVpZ2h0Omwub3V0ZXJIZWlnaHQqdS55LG91dGVyV2lkdGg6bC5vdXRlcldpZHRoKnUueH0sbi5mYWRlJiYoInNob3ciPT09YSYmKG4uZnJvbS5vcGFjaXR5PTAsbi50by5vcGFjaXR5PTEpLCJoaWRlIj09PWEmJihuLmZyb20ub3BhY2l0eT0xLG4udG8ub3BhY2l0eT0wKSkscy5lZmZlY3Qobil9LGUuZWZmZWN0cy5lZmZlY3QucHVmZj1mdW5jdGlvbih0LGkpe3ZhciBzPWUodGhpcyksbj1lLmVmZmVjdHMuc2V0TW9kZShzLHQubW9kZXx8ImhpZGUiKSxhPSJoaWRlIj09PW4sbz1wYXJzZUludCh0LnBlcmNlbnQsMTApfHwxNTAscj1vLzEwMCxoPXtoZWlnaHQ6cy5oZWlnaHQoKSx3aWR0aDpzLndpZHRoKCksb3V0ZXJIZWlnaHQ6cy5vdXRlckhlaWdodCgpLG91dGVyV2lkdGg6cy5vdXRlcldpZHRoKCl9O2UuZXh0ZW5kKHQse2VmZmVjdDoic2NhbGUiLHF1ZXVlOiExLGZhZGU6ITAsbW9kZTpuLGNvbXBsZXRlOmkscGVyY2VudDphP286MTAwLGZyb206YT9oOntoZWlnaHQ6aC5oZWlnaHQqcix3aWR0aDpoLndpZHRoKnIsb3V0ZXJIZWlnaHQ6aC5vdXRlckhlaWdodCpyLG91dGVyV2lkdGg6aC5vdXRlcldpZHRoKnJ9fSkscy5lZmZlY3QodCl9LGUuZWZmZWN0cy5lZmZlY3QucHVsc2F0ZT1mdW5jdGlvbih0LGkpe3ZhciBzLG49ZSh0aGlzKSxhPWUuZWZmZWN0cy5zZXRNb2RlKG4sdC5tb2RlfHwic2hvdyIpLG89InNob3ciPT09YSxyPSJoaWRlIj09PWEsaD1vfHwiaGlkZSI9PT1hLGw9MioodC50aW1lc3x8NSkrKGg/MTowKSx1PXQuZHVyYXRpb24vbCxkPTAsYz1uLnF1ZXVlKCkscD1jLmxlbmd0aDtmb3IoKG98fCFuLmlzKCI6dmlzaWJsZSIpKSYmKG4uY3NzKCJvcGFjaXR5IiwwKS5zaG93KCksZD0xKSxzPTE7bD5zO3MrKyluLmFuaW1hdGUoe29wYWNpdHk6ZH0sdSx0LmVhc2luZyksZD0xLWQ7bi5hbmltYXRlKHtvcGFjaXR5OmR9LHUsdC5lYXNpbmcpLG4ucXVldWUoZnVuY3Rpb24oKXtyJiZuLmhpZGUoKSxpKCl9KSxwPjEmJmMuc3BsaWNlLmFwcGx5KGMsWzEsMF0uY29uY2F0KGMuc3BsaWNlKHAsbCsxKSkpLG4uZGVxdWV1ZSgpfSxlLmVmZmVjdHMuZWZmZWN0LnNoYWtlPWZ1bmN0aW9uKHQsaSl7dmFyIHMsbj1lKHRoaXMpLGE9WyJwb3NpdGlvbiIsInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCIsImhlaWdodCIsIndpZHRoIl0sbz1lLmVmZmVjdHMuc2V0TW9kZShuLHQubW9kZXx8ImVmZmVjdCIpLHI9dC5kaXJlY3Rpb258fCJsZWZ0IixoPXQuZGlzdGFuY2V8fDIwLGw9dC50aW1lc3x8Myx1PTIqbCsxLGQ9TWF0aC5yb3VuZCh0LmR1cmF0aW9uL3UpLGM9InVwIj09PXJ8fCJkb3duIj09PXI/InRvcCI6ImxlZnQiLHA9InVwIj09PXJ8fCJsZWZ0Ij09PXIsZj17fSxtPXt9LGc9e30sdj1uLnF1ZXVlKCkseT12Lmxlbmd0aDtmb3IoZS5lZmZlY3RzLnNhdmUobixhKSxuLnNob3coKSxlLmVmZmVjdHMuY3JlYXRlV3JhcHBlcihuKSxmW2NdPShwPyItPSI6Iis9IikraCxtW2NdPShwPyIrPSI6Ii09IikrMipoLGdbY109KHA/Ii09IjoiKz0iKSsyKmgsbi5hbmltYXRlKGYsZCx0LmVhc2luZykscz0xO2w+cztzKyspbi5hbmltYXRlKG0sZCx0LmVhc2luZykuYW5pbWF0ZShnLGQsdC5lYXNpbmcpO24uYW5pbWF0ZShtLGQsdC5lYXNpbmcpLmFuaW1hdGUoZixkLzIsdC5lYXNpbmcpLnF1ZXVlKGZ1bmN0aW9uKCl7ImhpZGUiPT09byYmbi5oaWRlKCksZS5lZmZlY3RzLnJlc3RvcmUobixhKSxlLmVmZmVjdHMucmVtb3ZlV3JhcHBlcihuKSxpKCl9KSx5PjEmJnYuc3BsaWNlLmFwcGx5KHYsWzEsMF0uY29uY2F0KHYuc3BsaWNlKHksdSsxKSkpLG4uZGVxdWV1ZSgpfSxlLmVmZmVjdHMuZWZmZWN0LnNsaWRlPWZ1bmN0aW9uKHQsaSl7dmFyIHMsbj1lKHRoaXMpLGE9WyJwb3NpdGlvbiIsInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCIsIndpZHRoIiwiaGVpZ2h0Il0sbz1lLmVmZmVjdHMuc2V0TW9kZShuLHQubW9kZXx8InNob3ciKSxyPSJzaG93Ij09PW8saD10LmRpcmVjdGlvbnx8ImxlZnQiLGw9InVwIj09PWh8fCJkb3duIj09PWg/InRvcCI6ImxlZnQiLHU9InVwIj09PWh8fCJsZWZ0Ij09PWgsZD17fTtlLmVmZmVjdHMuc2F2ZShuLGEpLG4uc2hvdygpLHM9dC5kaXN0YW5jZXx8blsidG9wIj09PWw/Im91dGVySGVpZ2h0Ijoib3V0ZXJXaWR0aCJdKCEwKSxlLmVmZmVjdHMuY3JlYXRlV3JhcHBlcihuKS5jc3Moe292ZXJmbG93OiJoaWRkZW4ifSksciYmbi5jc3MobCx1P2lzTmFOKHMpPyItIitzOi1zOnMpLGRbbF09KHI/dT8iKz0iOiItPSI6dT8iLT0iOiIrPSIpK3Msbi5hbmltYXRlKGQse3F1ZXVlOiExLGR1cmF0aW9uOnQuZHVyYXRpb24sZWFzaW5nOnQuZWFzaW5nLGNvbXBsZXRlOmZ1bmN0aW9uKCl7ImhpZGUiPT09byYmbi5oaWRlKCksZS5lZmZlY3RzLnJlc3RvcmUobixhKSxlLmVmZmVjdHMucmVtb3ZlV3JhcHBlcihuKSxpKCl9fSl9LGUuZWZmZWN0cy5lZmZlY3QudHJhbnNmZXI9ZnVuY3Rpb24odCxpKXt2YXIgcz1lKHRoaXMpLG49ZSh0LnRvKSxhPSJmaXhlZCI9PT1uLmNzcygicG9zaXRpb24iKSxvPWUoImJvZHkiKSxyPWE/by5zY3JvbGxUb3AoKTowLGg9YT9vLnNjcm9sbExlZnQoKTowLGw9bi5vZmZzZXQoKSx1PXt0b3A6bC50b3AtcixsZWZ0OmwubGVmdC1oLGhlaWdodDpuLmlubmVySGVpZ2h0KCksd2lkdGg6bi5pbm5lcldpZHRoKCl9LGQ9cy5vZmZzZXQoKSxjPWUoIjxkaXYgY2xhc3M9J3VpLWVmZmVjdHMtdHJhbnNmZXInPjwvZGl2PiIpLmFwcGVuZFRvKGRvY3VtZW50LmJvZHkpLmFkZENsYXNzKHQuY2xhc3NOYW1lKS5jc3Moe3RvcDpkLnRvcC1yLGxlZnQ6ZC5sZWZ0LWgsaGVpZ2h0OnMuaW5uZXJIZWlnaHQoKSx3aWR0aDpzLmlubmVyV2lkdGgoKSxwb3NpdGlvbjphPyJmaXhlZCI6ImFic29sdXRlIn0pLmFuaW1hdGUodSx0LmR1cmF0aW9uLHQuZWFzaW5nLGZ1bmN0aW9uKCl7Yy5yZW1vdmUoKSxpKCl9KX19KTs="></script>
<link href="data:text/css,%0A%0A%2Etocify%20%7B%0Awidth%3A%2020%25%3B%0Amax%2Dheight%3A%2090%25%3B%0Aoverflow%3A%20auto%3B%0Amargin%2Dleft%3A%202%25%3B%0Aposition%3A%20fixed%3B%0Aborder%3A%201px%20solid%20%23ccc%3B%0Aborder%2Dradius%3A%206px%3B%0A%7D%0A%0A%2Etocify%20ul%2C%20%2Etocify%20li%20%7B%0Alist%2Dstyle%3A%20none%3B%0Amargin%3A%200%3B%0Apadding%3A%200%3B%0Aborder%3A%20none%3B%0Aline%2Dheight%3A%2030px%3B%0A%7D%0A%0A%2Etocify%2Dheader%20%7B%0Atext%2Dindent%3A%2010px%3B%0A%7D%0A%0A%2Etocify%2Dsubheader%20%7B%0Atext%2Dindent%3A%2020px%3B%0Adisplay%3A%20none%3B%0A%7D%0A%0A%2Etocify%2Dsubheader%20li%20%7B%0Afont%2Dsize%3A%2012px%3B%0A%7D%0A%0A%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%7B%0Atext%2Dindent%3A%2030px%3B%0A%7D%0A%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%7B%0Atext%2Dindent%3A%2040px%3B%0A%7D%0A%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%7B%0Atext%2Dindent%3A%2050px%3B%0A%7D%0A%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%7B%0Atext%2Dindent%3A%2060px%3B%0A%7D%0A%0A%2Etocify%20%2Etocify%2Ditem%20%3E%20a%2C%20%2Etocify%20%2Enav%2Dlist%20%2Enav%2Dheader%20%7B%0Amargin%3A%200px%3B%0A%7D%0A%0A%2Etocify%20%2Etocify%2Ditem%20a%2C%20%2Etocify%20%2Elist%2Dgroup%2Ditem%20%7B%0Apadding%3A%205px%3B%0A%7D%0A%2Etocify%20%2Enav%2Dpills%20%3E%20li%20%7B%0Afloat%3A%20none%3B%0A%7D%0A%0A%0A" rel="stylesheet" />
<script src="data:application/javascript;base64,LyoganF1ZXJ5IFRvY2lmeSAtIHYxLjkuMSAtIDIwMTMtMTAtMjIKICogaHR0cDovL3d3dy5ncmVnZnJhbmtvLmNvbS9qcXVlcnkudG9jaWZ5LmpzLwogKiBDb3B5cmlnaHQgKGMpIDIwMTMgR3JlZyBGcmFua287IExpY2Vuc2VkIE1JVCAqLwoKLy8gSW1tZWRpYXRlbHktSW52b2tlZCBGdW5jdGlvbiBFeHByZXNzaW9uIChJSUZFKSBbQmVuIEFsbWFuIEJsb2cgUG9zdF0oaHR0cDovL2JlbmFsbWFuLmNvbS9uZXdzLzIwMTAvMTEvaW1tZWRpYXRlbHktaW52b2tlZC1mdW5jdGlvbi1leHByZXNzaW9uLykgdGhhdCBjYWxscyBhbm90aGVyIElJRkUgdGhhdCBjb250YWlucyBhbGwgb2YgdGhlIHBsdWdpbiBsb2dpYy4gIEkgdXNlZCB0aGlzIHBhdHRlcm4gc28gdGhhdCBhbnlvbmUgdmlld2luZyB0aGlzIGNvZGUgd291bGQgbm90IGhhdmUgdG8gc2Nyb2xsIHRvIHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgdG8gdmlldyB0aGUgbG9jYWwgcGFyYW1ldGVycyB0aGF0IHdlcmUgcGFzc2VkIHRvIHRoZSBtYWluIElJRkUuCihmdW5jdGlvbih0b2NpZnkpIHsKCiAgICAvLyBFQ01BU2NyaXB0IDUgU3RyaWN0IE1vZGU6IFtKb2huIFJlc2lnIEJsb2cgUG9zdF0oaHR0cDovL2Vqb2huLm9yZy9ibG9nL2VjbWFzY3JpcHQtNS1zdHJpY3QtbW9kZS1qc29uLWFuZC1tb3JlLykKICAgICJ1c2Ugc3RyaWN0IjsKCiAgICAvLyBDYWxscyB0aGUgc2Vjb25kIElJRkUgYW5kIGxvY2FsbHkgcGFzc2VzIGluIHRoZSBnbG9iYWwgalF1ZXJ5LCB3aW5kb3csIGFuZCBkb2N1bWVudCBvYmplY3RzCiAgICB0b2NpZnkod2luZG93LmpRdWVyeSwgd2luZG93LCBkb2N1bWVudCk7CgogIH0KCiAgLy8gTG9jYWxseSBwYXNzZXMgaW4gYGpRdWVyeWAsIHRoZSBgd2luZG93YCBvYmplY3QsIHRoZSBgZG9jdW1lbnRgIG9iamVjdCwgYW5kIGFuIGB1bmRlZmluZWRgIHZhcmlhYmxlLiAgVGhlIGBqUXVlcnlgLCBgd2luZG93YCBhbmQgYGRvY3VtZW50YCBvYmplY3RzIGFyZSBwYXNzZWQgaW4gbG9jYWxseSwgdG8gaW1wcm92ZSBwZXJmb3JtYW5jZSwgc2luY2UgamF2YXNjcmlwdCBmaXJzdCBzZWFyY2hlcyBmb3IgYSB2YXJpYWJsZSBtYXRjaCB3aXRoaW4gdGhlIGxvY2FsIHZhcmlhYmxlcyBzZXQgYmVmb3JlIHNlYXJjaGluZyB0aGUgZ2xvYmFsIHZhcmlhYmxlcyBzZXQuICBBbGwgb2YgdGhlIGdsb2JhbCB2YXJpYWJsZXMgYXJlIGFsc28gcGFzc2VkIGluIGxvY2FsbHkgdG8gYmUgbWluaWZpZXIgZnJpZW5kbHkuIGB1bmRlZmluZWRgIGNhbiBiZSBwYXNzZWQgaW4gbG9jYWxseSwgYmVjYXVzZSBpdCBpcyBub3QgYSByZXNlcnZlZCB3b3JkIGluIEphdmFTY3JpcHQuCiAgKGZ1bmN0aW9uKCQsIHdpbmRvdywgZG9jdW1lbnQsIHVuZGVmaW5lZCkgewoKICAgIC8vIEVDTUFTY3JpcHQgNSBTdHJpY3QgTW9kZTogW0pvaG4gUmVzaWcgQmxvZyBQb3N0XShodHRwOi8vZWpvaG4ub3JnL2Jsb2cvZWNtYXNjcmlwdC01LXN0cmljdC1tb2RlLWpzb24tYW5kLW1vcmUvKQogICAgInVzZSBzdHJpY3QiOwoKICAgIHZhciB0b2NDbGFzc05hbWUgPSAidG9jaWZ5IiwKICAgICAgdG9jQ2xhc3MgPSAiLiIgKyB0b2NDbGFzc05hbWUsCiAgICAgIHRvY0ZvY3VzQ2xhc3NOYW1lID0gInRvY2lmeS1mb2N1cyIsCiAgICAgIHRvY0hvdmVyQ2xhc3NOYW1lID0gInRvY2lmeS1ob3ZlciIsCiAgICAgIGhpZGVUb2NDbGFzc05hbWUgPSAidG9jaWZ5LWhpZGUiLAogICAgICBoaWRlVG9jQ2xhc3MgPSAiLiIgKyBoaWRlVG9jQ2xhc3NOYW1lLAogICAgICBoZWFkZXJDbGFzc05hbWUgPSAidG9jaWZ5LWhlYWRlciIsCiAgICAgIGhlYWRlckNsYXNzID0gIi4iICsgaGVhZGVyQ2xhc3NOYW1lLAogICAgICBzdWJoZWFkZXJDbGFzc05hbWUgPSAidG9jaWZ5LXN1YmhlYWRlciIsCiAgICAgIHN1YmhlYWRlckNsYXNzID0gIi4iICsgc3ViaGVhZGVyQ2xhc3NOYW1lLAogICAgICBpdGVtQ2xhc3NOYW1lID0gInRvY2lmeS1pdGVtIiwKICAgICAgaXRlbUNsYXNzID0gIi4iICsgaXRlbUNsYXNzTmFtZSwKICAgICAgZXh0ZW5kUGFnZUNsYXNzTmFtZSA9ICJ0b2NpZnktZXh0ZW5kLXBhZ2UiLAogICAgICBleHRlbmRQYWdlQ2xhc3MgPSAiLiIgKyBleHRlbmRQYWdlQ2xhc3NOYW1lOwoKICAgIC8vIENhbGxpbmcgdGhlIGpRdWVyeVVJIFdpZGdldCBGYWN0b3J5IE1ldGhvZAogICAgJC53aWRnZXQoInRvYy50b2NpZnkiLCB7CgogICAgICAvL1BsdWdpbiB2ZXJzaW9uCiAgICAgIHZlcnNpb246ICIxLjkuMSIsCgogICAgICAvLyBUaGVzZSBvcHRpb25zIHdpbGwgYmUgdXNlZCBhcyBkZWZhdWx0cwogICAgICBvcHRpb25zOiB7CgogICAgICAgIC8vICoqY29udGV4dCoqOiBBY2NlcHRzIFN0cmluZzogQW55IGpRdWVyeSBzZWxlY3RvcgogICAgICAgIC8vIFRoZSBjb250YWluZXIgZWxlbWVudCB0aGF0IGhvbGRzIGFsbCBvZiB0aGUgZWxlbWVudHMgdXNlZCB0byBnZW5lcmF0ZSB0aGUgdGFibGUgb2YgY29udGVudHMKICAgICAgICBjb250ZXh0OiAiYm9keSIsCgogICAgICAgIC8vICoqaWdub3JlU2VsZWN0b3IqKjogQWNjZXB0cyBTdHJpbmc6IEFueSBqUXVlcnkgc2VsZWN0b3IKICAgICAgICAvLyBBIHNlbGVjdG9yIHRvIGFueSBlbGVtZW50IHRoYXQgd291bGQgYmUgbWF0Y2hlZCBieSBzZWxlY3RvcnMgdGhhdCB5b3Ugd2lzaCB0byBiZSBpZ25vcmVkCiAgICAgICAgaWdub3JlU2VsZWN0b3I6IG51bGwsCgogICAgICAgIC8vICoqc2VsZWN0b3JzKio6IEFjY2VwdHMgYW4gQXJyYXkgb2YgU3RyaW5nczogQW55IGpRdWVyeSBzZWxlY3RvcnMKICAgICAgICAvLyBUaGUgZWxlbWVudCdzIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIHRhYmxlIG9mIGNvbnRlbnRzLiAgVGhlIG9yZGVyIGlzIHZlcnkgaW1wb3J0YW50IHNpbmNlIGl0IHdpbGwgZGV0ZXJtaW5lIHRoZSB0YWJsZSBvZiBjb250ZW50J3MgbmVzdGluZyBzdHJ1Y3R1cmUKICAgICAgICBzZWxlY3RvcnM6ICJoMSwgaDIsIGgzIiwKCiAgICAgICAgLy8gKipzaG93QW5kSGlkZSoqOiBBY2NlcHRzIGEgYm9vbGVhbjogdHJ1ZSBvciBmYWxzZQogICAgICAgIC8vIFVzZWQgdG8gZGV0ZXJtaW5lIGlmIGVsZW1lbnRzIHNob3VsZCBiZSBzaG93biBhbmQgaGlkZGVuCiAgICAgICAgc2hvd0FuZEhpZGU6IHRydWUsCgogICAgICAgIC8vICoqc2hvd0VmZmVjdCoqOiBBY2NlcHRzIFN0cmluZzogIm5vbmUiLCAiZmFkZUluIiwgInNob3ciLCBvciAic2xpZGVEb3duIgogICAgICAgIC8vIFVzZWQgdG8gZGlzcGxheSBhbnkgb2YgdGhlIHRhYmxlIG9mIGNvbnRlbnRzIG5lc3RlZCBpdGVtcwogICAgICAgIHNob3dFZmZlY3Q6ICJzbGlkZURvd24iLAoKICAgICAgICAvLyAqKnNob3dFZmZlY3RTcGVlZCoqOiBBY2NlcHRzIE51bWJlciAobWlsbGlzZWNvbmRzKSBvciBTdHJpbmc6ICJzbG93IiwgIm1lZGl1bSIsIG9yICJmYXN0IgogICAgICAgIC8vIFRoZSB0aW1lIGR1cmF0aW9uIG9mIHRoZSBzaG93IGFuaW1hdGlvbgogICAgICAgIHNob3dFZmZlY3RTcGVlZDogIm1lZGl1bSIsCgogICAgICAgIC8vICoqaGlkZUVmZmVjdCoqOiBBY2NlcHRzIFN0cmluZzogIm5vbmUiLCAiZmFkZU91dCIsICJoaWRlIiwgb3IgInNsaWRlVXAiCiAgICAgICAgLy8gVXNlZCB0byBoaWRlIGFueSBvZiB0aGUgdGFibGUgb2YgY29udGVudHMgbmVzdGVkIGl0ZW1zCiAgICAgICAgaGlkZUVmZmVjdDogInNsaWRlVXAiLAoKICAgICAgICAvLyAqKmhpZGVFZmZlY3RTcGVlZCoqOiBBY2NlcHRzIE51bWJlciAobWlsbGlzZWNvbmRzKSBvciBTdHJpbmc6ICJzbG93IiwgIm1lZGl1bSIsIG9yICJmYXN0IgogICAgICAgIC8vIFRoZSB0aW1lIGR1cmF0aW9uIG9mIHRoZSBoaWRlIGFuaW1hdGlvbgogICAgICAgIGhpZGVFZmZlY3RTcGVlZDogIm1lZGl1bSIsCgogICAgICAgIC8vICoqc21vb3RoU2Nyb2xsKio6IEFjY2VwdHMgYSBib29sZWFuOiB0cnVlIG9yIGZhbHNlCiAgICAgICAgLy8gRGV0ZXJtaW5lcyBpZiBhIGpRdWVyeSBhbmltYXRpb24gc2hvdWxkIGJlIHVzZWQgdG8gc2Nyb2xsIHRvIHNwZWNpZmljIHRhYmxlIG9mIGNvbnRlbnRzIGl0ZW1zIG9uIHRoZSBwYWdlCiAgICAgICAgc21vb3RoU2Nyb2xsOiB0cnVlLAoKICAgICAgICAvLyAqKnNtb290aFNjcm9sbFNwZWVkKio6IEFjY2VwdHMgTnVtYmVyIChtaWxsaXNlY29uZHMpIG9yIFN0cmluZzogInNsb3ciLCAibWVkaXVtIiwgb3IgImZhc3QiCiAgICAgICAgLy8gVGhlIHRpbWUgZHVyYXRpb24gb2YgdGhlIHNtb290aFNjcm9sbCBhbmltYXRpb24KICAgICAgICBzbW9vdGhTY3JvbGxTcGVlZDogIm1lZGl1bSIsCgogICAgICAgIC8vICoqc2Nyb2xsVG8qKjogQWNjZXB0cyBOdW1iZXIgKHBpeGVscykKICAgICAgICAvLyBUaGUgYW1vdW50IG9mIHNwYWNlIGJldHdlZW4gdGhlIHRvcCBvZiBwYWdlIGFuZCB0aGUgc2VsZWN0ZWQgdGFibGUgb2YgY29udGVudHMgaXRlbSBhZnRlciB0aGUgcGFnZSBoYXMgYmVlbiBzY3JvbGxlZAogICAgICAgIHNjcm9sbFRvOiAwLAoKICAgICAgICAvLyAqKnNob3dBbmRIaWRlT25TY3JvbGwqKjogQWNjZXB0cyBhIGJvb2xlYW46IHRydWUgb3IgZmFsc2UKICAgICAgICAvLyBEZXRlcm1pbmVzIGlmIHRhYmxlIG9mIGNvbnRlbnRzIG5lc3RlZCBpdGVtcyBzaG91bGQgYmUgc2hvd24gYW5kIGhpZGRlbiB3aGlsZSBzY3JvbGxpbmcKICAgICAgICBzaG93QW5kSGlkZU9uU2Nyb2xsOiB0cnVlLAoKICAgICAgICAvLyAqKmhpZ2hsaWdodE9uU2Nyb2xsKio6IEFjY2VwdHMgYSBib29sZWFuOiB0cnVlIG9yIGZhbHNlCiAgICAgICAgLy8gRGV0ZXJtaW5lcyBpZiB0YWJsZSBvZiBjb250ZW50cyBuZXN0ZWQgaXRlbXMgc2hvdWxkIGJlIGhpZ2hsaWdodGVkIChzZXQgdG8gYSBkaWZmZXJlbnQgY29sb3IpIHdoaWxlIHNjcm9sbGluZwogICAgICAgIGhpZ2hsaWdodE9uU2Nyb2xsOiB0cnVlLAoKICAgICAgICAvLyAqKmhpZ2hsaWdodE9mZnNldCoqOiBBY2NlcHRzIGEgbnVtYmVyCiAgICAgICAgLy8gVGhlIG9mZnNldCBkaXN0YW5jZSBpbiBwaXhlbHMgdG8gdHJpZ2dlciB0aGUgbmV4dCBhY3RpdmUgdGFibGUgb2YgY29udGVudHMgaXRlbQogICAgICAgIGhpZ2hsaWdodE9mZnNldDogNDAsCgogICAgICAgIC8vICoqdGhlbWUqKjogQWNjZXB0cyBhIHN0cmluZzogImJvb3RzdHJhcCIsICJqcXVlcnl1aSIsIG9yICJub25lIgogICAgICAgIC8vIERldGVybWluZXMgaWYgVHdpdHRlciBCb290c3RyYXAsIGpRdWVyeVVJLCBvciBUb2NpZnkgY2xhc3NlcyBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIHRhYmxlIG9mIGNvbnRlbnRzCiAgICAgICAgdGhlbWU6ICJib290c3RyYXAiLAoKICAgICAgICAvLyAqKmV4dGVuZFBhZ2UqKjogQWNjZXB0cyBhIGJvb2xlYW46IHRydWUgb3IgZmFsc2UKICAgICAgICAvLyBJZiBhIHVzZXIgc2Nyb2xscyB0byB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGFuZCB0aGUgcGFnZSBpcyBub3QgdGFsbCBlbm91Z2ggdG8gc2Nyb2xsIHRvIHRoZSBsYXN0IHRhYmxlIG9mIGNvbnRlbnRzIGl0ZW0sIHRoZW4gdGhlIHBhZ2UgaGVpZ2h0IGlzIGluY3JlYXNlZAogICAgICAgIGV4dGVuZFBhZ2U6IHRydWUsCgogICAgICAgIC8vICoqZXh0ZW5kUGFnZU9mZnNldCoqOiBBY2NlcHRzIGEgbnVtYmVyOiBwaXhlbHMKICAgICAgICAvLyBIb3cgY2xvc2UgdG8gdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBhIHVzZXIgbXVzdCBzY3JvbGwgYmVmb3JlIHRoZSBwYWdlIGlzIGV4dGVuZGVkCiAgICAgICAgZXh0ZW5kUGFnZU9mZnNldDogMTAwLAoKICAgICAgICAvLyAqKmhpc3RvcnkqKjogQWNjZXB0cyBhIGJvb2xlYW46IHRydWUgb3IgZmFsc2UKICAgICAgICAvLyBBZGRzIGEgaGFzaCB0byB0aGUgcGFnZSB1cmwgdG8gbWFpbnRhaW4gaGlzdG9yeQogICAgICAgIGhpc3Rvcnk6IHRydWUsCgogICAgICAgIC8vICoqc2Nyb2xsSGlzdG9yeSoqOiBBY2NlcHRzIGEgYm9vbGVhbjogdHJ1ZSBvciBmYWxzZQogICAgICAgIC8vIEFkZHMgYSBoYXNoIHRvIHRoZSBwYWdlIHVybCwgdG8gbWFpbnRhaW4gaGlzdG9yeSwgd2hlbiBzY3JvbGxpbmcgdG8gYSBUT0MgaXRlbQogICAgICAgIHNjcm9sbEhpc3Rvcnk6IGZhbHNlLAoKICAgICAgICAvLyAqKmhhc2hHZW5lcmF0b3IqKjogSG93IHRoZSBoYXNoIHZhbHVlICh0aGUgYW5jaG9yIHNlZ21lbnQgb2YgdGhlIFVSTCwgZm9sbG93aW5nIHRoZQogICAgICAgIC8vICMgY2hhcmFjdGVyKSB3aWxsIGJlIGdlbmVyYXRlZC4KICAgICAgICAvLwogICAgICAgIC8vICJjb21wYWN0IiAoZGVmYXVsdCkgLSAjQ29tcHJlc3Nlc0V2ZXJ5dGhpbmdUb2dldGhlcgogICAgICAgIC8vICJwcmV0dHkiIC0gI2xvb2tzLWxpa2UtYS1uaWNlLXVybC1hbmQtaXMtZWFzaWx5LXJlYWRhYmxlCiAgICAgICAgLy8gZnVuY3Rpb24odGV4dCwgZWxlbWVudCl7fSAtIFlvdXIgb3duIGhhc2ggZ2VuZXJhdGlvbiBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdGhlIHRleHQgYXMgYW4KICAgICAgICAvLyBhcmd1bWVudCwgYW5kIHJldHVybnMgdGhlIGhhc2ggdmFsdWUuCiAgICAgICAgaGFzaEdlbmVyYXRvcjogImNvbXBhY3QiLAoKICAgICAgICAvLyAqKmhpZ2hsaWdodERlZmF1bHQqKjogQWNjZXB0cyBhIGJvb2xlYW46IHRydWUgb3IgZmFsc2UKICAgICAgICAvLyBTZXQncyB0aGUgZmlyc3QgVE9DIGl0ZW0gYXMgYWN0aXZlIGlmIG5vIG90aGVyIFRPQyBpdGVtIGlzIGFjdGl2ZS4KICAgICAgICBoaWdobGlnaHREZWZhdWx0OiB0cnVlCgogICAgICB9LAoKICAgICAgLy8gX0NyZWF0ZQogICAgICAvLyAtLS0tLS0tCiAgICAgIC8vICAgICAgQ29uc3RydWN0cyB0aGUgcGx1Z2luLiAgT25seSBjYWxsZWQgb25jZS4KICAgICAgX2NyZWF0ZTogZnVuY3Rpb24oKSB7CgogICAgICAgIHZhciBzZWxmID0gdGhpczsKCiAgICAgICAgc2VsZi5leHRlbmRQYWdlU2Nyb2xsID0gdHJ1ZTsKCiAgICAgICAgLy8gSW50ZXJuYWwgYXJyYXkgdGhhdCBrZWVwcyB0cmFjayBvZiBhbGwgVE9DIGl0ZW1zIChIZWxwcyB0byByZWNvZ25pemUgaWYgdGhlcmUgYXJlIGR1cGxpY2F0ZSBUT0MgaXRlbSBzdHJpbmdzKQogICAgICAgIHNlbGYuaXRlbXMgPSBbXTsKCiAgICAgICAgLy8gR2VuZXJhdGVzIHRoZSBIVE1MIGZvciB0aGUgZHluYW1pYyB0YWJsZSBvZiBjb250ZW50cwogICAgICAgIHNlbGYuX2dlbmVyYXRlVG9jKCk7CgogICAgICAgIC8vIEFkZHMgQ1NTIGNsYXNzZXMgdG8gdGhlIG5ld2x5IGdlbmVyYXRlZCB0YWJsZSBvZiBjb250ZW50cyBIVE1MCiAgICAgICAgc2VsZi5fYWRkQ1NTQ2xhc3NlcygpOwoKICAgICAgICBzZWxmLndlYmtpdCA9IChmdW5jdGlvbigpIHsKCiAgICAgICAgICBmb3IgKHZhciBwcm9wIGluIHdpbmRvdykgewoKICAgICAgICAgICAgaWYgKHByb3ApIHsKCiAgICAgICAgICAgICAgaWYgKHByb3AudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ3ZWJraXQiKSAhPT0gLTEpIHsKCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKCiAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgfQoKICAgICAgICAgIH0KCiAgICAgICAgICByZXR1cm4gZmFsc2U7CgogICAgICAgIH0oKSk7CgogICAgICAgIC8vIEFkZHMgalF1ZXJ5IGV2ZW50IGhhbmRsZXJzIHRvIHRoZSBuZXdseSBnZW5lcmF0ZWQgdGFibGUgb2YgY29udGVudHMKICAgICAgICBzZWxmLl9zZXRFdmVudEhhbmRsZXJzKCk7CgogICAgICAgIC8vIEJpbmRpbmcgdG8gdGhlIFdpbmRvdyBsb2FkIGV2ZW50IHRvIG1ha2Ugc3VyZSB0aGUgY29ycmVjdCBzY3JvbGxUb3AgaXMgY2FsY3VsYXRlZAogICAgICAgICQod2luZG93KS5vbigibG9hZCIsIGZ1bmN0aW9uKCkgewoKICAgICAgICAgIC8vIFNldHMgdGhlIGFjdGl2ZSBUT0MgaXRlbQogICAgICAgICAgc2VsZi5fc2V0QWN0aXZlRWxlbWVudCh0cnVlKTsKCiAgICAgICAgICAvLyBPbmNlIGFsbCBhbmltYXRpb25zIG9uIHRoZSBwYWdlIGFyZSBjb21wbGV0ZSwgdGhpcyBjYWxsYmFjayBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZAogICAgICAgICAgJCgiaHRtbCwgYm9keSIpLnByb21pc2UoKS5kb25lKGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKCiAgICAgICAgICAgICAgc2VsZi5leHRlbmRQYWdlU2Nyb2xsID0gZmFsc2U7CgogICAgICAgICAgICB9LCAwKTsKCiAgICAgICAgICB9KTsKCiAgICAgICAgfSk7CgogICAgICB9LAoKICAgICAgLy8gX2dlbmVyYXRlVG9jCiAgICAgIC8vIC0tLS0tLS0tLS0tLQogICAgICAvLyAgICAgIEdlbmVyYXRlcyB0aGUgSFRNTCBmb3IgdGhlIGR5bmFtaWMgdGFibGUgb2YgY29udGVudHMKICAgICAgX2dlbmVyYXRlVG9jOiBmdW5jdGlvbigpIHsKCiAgICAgICAgLy8gX0xvY2FsIHZhcmlhYmxlc18KCiAgICAgICAgLy8gU3RvcmVzIHRoZSBwbHVnaW4gY29udGV4dCBpbiB0aGUgc2VsZiB2YXJpYWJsZQogICAgICAgIHZhciBzZWxmID0gdGhpcywKCiAgICAgICAgICAvLyBBbGwgb2YgdGhlIEhUTUwgdGFncyBmb3VuZCB3aXRoaW4gdGhlIGNvbnRleHQgcHJvdmlkZWQgKGkuZS4gYm9keSkgdGhhdCBtYXRjaCB0aGUgdG9wIGxldmVsIGpRdWVyeSBzZWxlY3RvciBhYm92ZQogICAgICAgICAgZmlyc3RFbGVtLAoKICAgICAgICAgIC8vIEluc3RhbnRpYXRlZCB2YXJpYWJsZSB0aGF0IHdpbGwgc3RvcmUgdGhlIHRvcCBsZXZlbCBuZXdseSBjcmVhdGVkIHVub3JkZXJlZCBsaXN0IERPTSBlbGVtZW50CiAgICAgICAgICB1bCwKICAgICAgICAgIGlnbm9yZVNlbGVjdG9yID0gc2VsZi5vcHRpb25zLmlnbm9yZVNlbGVjdG9yOwoKCiAgICAgICAgLy8gRGV0ZXJtaW5lIHRoZSBlbGVtZW50IHRvIHN0YXJ0IHRoZSB0b2Mgd2l0aAogICAgICAgIC8vIGdldCBhbGwgdGhlIHRvcCBsZXZlbCBzZWxlY3RvcnMKICAgICAgICBmaXJzdEVsZW0gPSBbXTsKICAgICAgICB2YXIgc2VsZWN0b3JzID0gdGhpcy5vcHRpb25zLnNlbGVjdG9ycy5yZXBsYWNlKC8gL2csICIiKS5zcGxpdCgiLCIpOwogICAgICAgIC8vIGZpbmQgdGhlIGZpcnN0IHNldCB0aGF0IGhhdmUgYXQgbGVhc3Qgb25lIG5vbi1pZ25vcmVkIGVsZW1lbnQKICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2VsZWN0b3JzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICB2YXIgZm91bmRTZWxlY3RvcnMgPSAkKHRoaXMub3B0aW9ucy5jb250ZXh0KS5maW5kKHNlbGVjdG9yc1tpXSk7CiAgICAgICAgICBmb3IgKHZhciBzID0gMDsgcyA8IGZvdW5kU2VsZWN0b3JzLmxlbmd0aDsgcysrKSB7CiAgICAgICAgICAgIGlmICghJChmb3VuZFNlbGVjdG9yc1tzXSkuaXMoaWdub3JlU2VsZWN0b3IpKSB7CiAgICAgICAgICAgICAgZmlyc3RFbGVtID0gZm91bmRTZWxlY3RvcnM7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGlmIChmaXJzdEVsZW0ubGVuZ3RoPiAwKQogICAgICAgICAgICBicmVhazsKICAgICAgICB9CgogICAgICAgIGlmICghZmlyc3RFbGVtLmxlbmd0aCkgewoKICAgICAgICAgIHNlbGYuZWxlbWVudC5hZGRDbGFzcyhoaWRlVG9jQ2xhc3NOYW1lKTsKCiAgICAgICAgICByZXR1cm47CgogICAgICAgIH0KCiAgICAgICAgc2VsZi5lbGVtZW50LmFkZENsYXNzKHRvY0NsYXNzTmFtZSk7CgogICAgICAgIC8vIExvb3BzIHRocm91Z2ggZWFjaCB0b3AgbGV2ZWwgc2VsZWN0b3IKICAgICAgICBmaXJzdEVsZW0uZWFjaChmdW5jdGlvbihpbmRleCkgewoKICAgICAgICAgIC8vSWYgdGhlIGVsZW1lbnQgbWF0Y2hlcyB0aGUgaWdub3JlU2VsZWN0b3IgdGhlbiB3ZSBza2lwIGl0CiAgICAgICAgICBpZiAoJCh0aGlzKS5pcyhpZ25vcmVTZWxlY3RvcikpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQoKICAgICAgICAgIC8vIENyZWF0ZXMgYW4gdW5vcmRlcmVkIGxpc3QgSFRNTCBlbGVtZW50IGFuZCBhZGRzIGEgZHluYW1pYyBJRCBhbmQgc3RhbmRhcmQgY2xhc3MgbmFtZQogICAgICAgICAgdWwgPSAkKCI8dWwvPiIsIHsKICAgICAgICAgICAgImlkIjogaGVhZGVyQ2xhc3NOYW1lICsgaW5kZXgsCiAgICAgICAgICAgICJjbGFzcyI6IGhlYWRlckNsYXNzTmFtZQogICAgICAgICAgfSkuCgogICAgICAgICAgLy8gQXBwZW5kcyBhIHRvcCBsZXZlbCBsaXN0IGl0ZW0gSFRNTCBlbGVtZW50IHRvIHRoZSBwcmV2aW91c2x5IGNyZWF0ZWQgSFRNTCBoZWFkZXIKICAgICAgICAgIGFwcGVuZChzZWxmLl9uZXN0RWxlbWVudHMoJCh0aGlzKSwgaW5kZXgpKTsKCiAgICAgICAgICAvLyBBZGQgdGhlIGNyZWF0ZWQgdW5vcmRlcmVkIGxpc3QgZWxlbWVudCB0byB0aGUgSFRNTCBlbGVtZW50IGNhbGxpbmcgdGhlIHBsdWdpbgogICAgICAgICAgc2VsZi5lbGVtZW50LmFwcGVuZCh1bCk7CgogICAgICAgICAgLy8gRmluZHMgYWxsIG9mIHRoZSBIVE1MIHRhZ3MgYmV0d2VlbiB0aGUgaGVhZGVyIGFuZCBzdWJoZWFkZXIgZWxlbWVudHMKICAgICAgICAgICQodGhpcykubmV4dFVudGlsKHRoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKSkuZWFjaChmdW5jdGlvbigpIHsKCiAgICAgICAgICAgIC8vIElmIHRoZXJlIGFyZSBubyBuZXN0ZWQgc3ViaGVhZGVyIGVsZW1lbWVudHMKICAgICAgICAgICAgaWYgKCQodGhpcykuZmluZChzZWxmLm9wdGlvbnMuc2VsZWN0b3JzKS5sZW5ndGggPT09IDApIHsKCiAgICAgICAgICAgICAgLy8gTG9vcHMgdGhyb3VnaCBhbGwgb2YgdGhlIHN1YmhlYWRlciBlbGVtZW50cwogICAgICAgICAgICAgICQodGhpcykuZmlsdGVyKHNlbGYub3B0aW9ucy5zZWxlY3RvcnMpLmVhY2goZnVuY3Rpb24oKSB7CgogICAgICAgICAgICAgICAgLy9JZiB0aGUgZWxlbWVudCBtYXRjaGVzIHRoZSBpZ25vcmVTZWxlY3RvciB0aGVuIHdlIHNraXAgaXQKICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLmlzKGlnbm9yZVNlbGVjdG9yKSkgewogICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgc2VsZi5fYXBwZW5kU3ViaGVhZGVycy5jYWxsKHRoaXMsIHNlbGYsIHVsKTsKCiAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBJZiB0aGVyZSBhcmUgbmVzdGVkIHN1YmhlYWRlciBlbGVtZW50cwogICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgLy8gTG9vcHMgdGhyb3VnaCBhbGwgb2YgdGhlIHN1YmhlYWRlciBlbGVtZW50cwogICAgICAgICAgICAgICQodGhpcykuZmluZChzZWxmLm9wdGlvbnMuc2VsZWN0b3JzKS5lYWNoKGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgICAgIC8vSWYgdGhlIGVsZW1lbnQgbWF0Y2hlcyB0aGUgaWdub3JlU2VsZWN0b3IgdGhlbiB3ZSBza2lwIGl0CiAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5pcyhpZ25vcmVTZWxlY3RvcikpIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHNlbGYuX2FwcGVuZFN1YmhlYWRlcnMuY2FsbCh0aGlzLCBzZWxmLCB1bCk7CgogICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgfQoKICAgICAgICAgIH0pOwoKICAgICAgICB9KTsKCiAgICAgIH0sCgogICAgICBfc2V0QWN0aXZlRWxlbWVudDogZnVuY3Rpb24ocGFnZWxvYWQpIHsKCiAgICAgICAgdmFyIHNlbGYgPSB0aGlzLAoKICAgICAgICAgIGhhc2ggPSB3aW5kb3cubG9jYXRpb24uaGFzaC5zdWJzdHJpbmcoMSksCgogICAgICAgICAgZWxlbSA9IHNlbGYuZWxlbWVudC5maW5kKCdsaVtkYXRhLXVuaXF1ZT0iJyArIGhhc2ggKyAnIl0nKTsKCiAgICAgICAgaWYgKGhhc2gubGVuZ3RoKSB7CgogICAgICAgICAgLy8gUmVtb3ZlcyBoaWdobGlnaHRpbmcgZnJvbSBhbGwgb2YgdGhlIGxpc3QgaXRlbSdzCiAgICAgICAgICBzZWxmLmVsZW1lbnQuZmluZCgiLiIgKyBzZWxmLmZvY3VzQ2xhc3MpLnJlbW92ZUNsYXNzKHNlbGYuZm9jdXNDbGFzcyk7CgogICAgICAgICAgLy8gSGlnaGxpZ2h0cyB0aGUgY3VycmVudCBsaXN0IGl0ZW0gdGhhdCB3YXMgY2xpY2tlZAogICAgICAgICAgZWxlbS5hZGRDbGFzcyhzZWxmLmZvY3VzQ2xhc3MpOwoKICAgICAgICAgIC8vIFRyaWdnZXJzIHRoZSBjbGljayBldmVudCBvbiB0aGUgY3VycmVudGx5IGZvY3VzZWQgVE9DIGl0ZW0KICAgICAgICAgIGVsZW0uY2xpY2soKTsKCiAgICAgICAgfSBlbHNlIHsKCiAgICAgICAgICAvLyBSZW1vdmVzIGhpZ2hsaWdodGluZyBmcm9tIGFsbCBvZiB0aGUgbGlzdCBpdGVtJ3MKICAgICAgICAgIHNlbGYuZWxlbWVudC5maW5kKCIuIiArIHNlbGYuZm9jdXNDbGFzcykucmVtb3ZlQ2xhc3Moc2VsZi5mb2N1c0NsYXNzKTsKCiAgICAgICAgICBpZiAoIWhhc2gubGVuZ3RoICYmIHBhZ2Vsb2FkICYmIHNlbGYub3B0aW9ucy5oaWdobGlnaHREZWZhdWx0KSB7CgogICAgICAgICAgICAvLyBIaWdobGlnaHRzIHRoZSBmaXJzdCBUT0MgaXRlbSBpZiBubyBvdGhlciBpdGVtcyBhcmUgaGlnaGxpZ2h0ZWQKICAgICAgICAgICAgc2VsZi5lbGVtZW50LmZpbmQoaXRlbUNsYXNzKS5maXJzdCgpLmFkZENsYXNzKHNlbGYuZm9jdXNDbGFzcyk7CgogICAgICAgICAgfQoKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmOwoKICAgICAgfSwKCiAgICAgIC8vIF9uZXN0RWxlbWVudHMKICAgICAgLy8gLS0tLS0tLS0tLS0tLQogICAgICAvLyAgICAgIEhlbHBzIGNyZWF0ZSB0aGUgdGFibGUgb2YgY29udGVudHMgbGlzdCBieSBhcHBlbmRpbmcgbmVzdGVkIGxpc3QgaXRlbXMKICAgICAgX25lc3RFbGVtZW50czogZnVuY3Rpb24oc2VsZiwgaW5kZXgpIHsKCiAgICAgICAgdmFyIGFyciwgaXRlbSwgaGFzaFZhbHVlOwoKICAgICAgICBhcnIgPSAkLmdyZXAodGhpcy5pdGVtcywgZnVuY3Rpb24oaXRlbSkgewoKICAgICAgICAgIHJldHVybiBpdGVtID09PSBzZWxmLnRleHQoKTsKCiAgICAgICAgfSk7CgogICAgICAgIC8vIElmIHRoZXJlIGlzIGFscmVhZHkgYSBkdXBsaWNhdGUgVE9DIGl0ZW0KICAgICAgICBpZiAoYXJyLmxlbmd0aCkgewoKICAgICAgICAgIC8vIEFkZHMgdGhlIGN1cnJlbnQgVE9DIGl0ZW0gdGV4dCBhbmQgaW5kZXggKGZvciBzbGlnaHQgcmFuZG9taXphdGlvbikgdG8gdGhlIGludGVybmFsIGFycmF5CiAgICAgICAgICB0aGlzLml0ZW1zLnB1c2goc2VsZi50ZXh0KCkgKyBpbmRleCk7CgogICAgICAgIH0KCiAgICAgICAgLy8gSWYgdGhlcmUgbm90IGEgZHVwbGljYXRlIFRPQyBpdGVtCiAgICAgICAgZWxzZSB7CgogICAgICAgICAgLy8gQWRkcyB0aGUgY3VycmVudCBUT0MgaXRlbSB0ZXh0IHRvIHRoZSBpbnRlcm5hbCBhcnJheQogICAgICAgICAgdGhpcy5pdGVtcy5wdXNoKHNlbGYudGV4dCgpKTsKCiAgICAgICAgfQoKICAgICAgICBoYXNoVmFsdWUgPSB0aGlzLl9nZW5lcmF0ZUhhc2hWYWx1ZShhcnIsIHNlbGYsIGluZGV4KTsKCiAgICAgICAgLy8gQXBwZW5kcyBhIGxpc3QgaXRlbSBIVE1MIGVsZW1lbnQgdG8gdGhlIGxhc3QgdW5vcmRlcmVkIGxpc3QgSFRNTCBlbGVtZW50IGZvdW5kIHdpdGhpbiB0aGUgSFRNTCBlbGVtZW50IGNhbGxpbmcgdGhlIHBsdWdpbgogICAgICAgIGl0ZW0gPSAkKCI8bGkvPiIsIHsKCiAgICAgICAgICAvLyBTZXRzIGEgY29tbW9uIGNsYXNzIG5hbWUgdG8gdGhlIGxpc3QgaXRlbQogICAgICAgICAgImNsYXNzIjogaXRlbUNsYXNzTmFtZSwKCiAgICAgICAgICAiZGF0YS11bmlxdWUiOiBoYXNoVmFsdWUKCiAgICAgICAgfSk7CgogICAgICAgIGlmICh0aGlzLm9wdGlvbnMudGhlbWUgIT09ICJib290c3RyYXAzIikgewoKICAgICAgICAgIGl0ZW0uYXBwZW5kKCQoIjxhLz4iLCB7CgogICAgICAgICAgICAiaHRtbCI6IHNlbGYuaHRtbCgpCgogICAgICAgICAgfSkpOwoKICAgICAgICB9IGVsc2UgewoKICAgICAgICAgIGl0ZW0uaHRtbChzZWxmLmh0bWwoKSk7CgogICAgICAgIH0KCiAgICAgICAgLy8gQWRkcyBhbiBIVE1MIGFuY2hvciB0YWcgYmVmb3JlIHRoZSBjdXJyZW50bHkgdHJhdmVyc2VkIEhUTUwgZWxlbWVudAogICAgICAgIHNlbGYuYmVmb3JlKCQoIjxkaXYvPiIsIHsKCiAgICAgICAgICAvLyBTZXRzIGEgbmFtZSBhdHRyaWJ1dGUgb24gdGhlIGFuY2hvciB0YWcgdG8gdGhlIHRleHQgb2YgdGhlIGN1cnJlbnRseSB0cmF2ZXJzZWQgSFRNTCBlbGVtZW50IChhbHNvIG1ha2luZyBzdXJlIHRoYXQgYWxsIHdoaXRlc3BhY2UgaXMgcmVwbGFjZWQgd2l0aCBhbiB1bmRlcnNjb3JlKQogICAgICAgICAgIm5hbWUiOiBoYXNoVmFsdWUsCgogICAgICAgICAgImRhdGEtdW5pcXVlIjogaGFzaFZhbHVlCgogICAgICAgIH0pKTsKCiAgICAgICAgcmV0dXJuIGl0ZW07CgogICAgICB9LAoKICAgICAgLy8gX2dlbmVyYXRlSGFzaFZhbHVlCiAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAvLyAgICAgIEdlbmVyYXRlcyB0aGUgaGFzaCB2YWx1ZSB0aGF0IHdpbGwgYmUgdXNlZCB0byByZWZlciB0byBlYWNoIGl0ZW0uCiAgICAgIF9nZW5lcmF0ZUhhc2hWYWx1ZTogZnVuY3Rpb24oYXJyLCBzZWxmLCBpbmRleCkgewoKICAgICAgICB2YXIgaGFzaFZhbHVlID0gIiIsCiAgICAgICAgICBoYXNoR2VuZXJhdG9yT3B0aW9uID0gdGhpcy5vcHRpb25zLmhhc2hHZW5lcmF0b3I7CgogICAgICAgIGlmIChoYXNoR2VuZXJhdG9yT3B0aW9uID09PSAicHJldHR5IikgewoKICAgICAgICAgIC8vIHByZXR0aWZ5IHRoZSB0ZXh0CiAgICAgICAgICBoYXNoVmFsdWUgPSBzZWxmLnRleHQoKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xzL2csICItIik7CgogICAgICAgICAgLy8gZml4IGRvdWJsZSBoeXBoZW5zCiAgICAgICAgICB3aGlsZSAoaGFzaFZhbHVlLmluZGV4T2YoIi0tIikgPiAtMSkgewogICAgICAgICAgICBoYXNoVmFsdWUgPSBoYXNoVmFsdWUucmVwbGFjZSgvLS0vZywgIi0iKTsKICAgICAgICAgIH0KCiAgICAgICAgICAvLyBmaXggY29sb24tc3BhY2UgaW5zdGFuY2VzCiAgICAgICAgICB3aGlsZSAoaGFzaFZhbHVlLmluZGV4T2YoIjotIikgPiAtMSkgewogICAgICAgICAgICBoYXNoVmFsdWUgPSBoYXNoVmFsdWUucmVwbGFjZSgvOi0vZywgIi0iKTsKICAgICAgICAgIH0KCiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgaGFzaEdlbmVyYXRvck9wdGlvbiA9PT0gImZ1bmN0aW9uIikgewoKICAgICAgICAgIC8vIGNhbGwgdGhlIGZ1bmN0aW9uCiAgICAgICAgICBoYXNoVmFsdWUgPSBoYXNoR2VuZXJhdG9yT3B0aW9uKHNlbGYudGV4dCgpLCBzZWxmKTsKCiAgICAgICAgfSBlbHNlIHsKCiAgICAgICAgICAvLyBjb21wYWN0IC0gdGhlIGRlZmF1bHQKICAgICAgICAgIGhhc2hWYWx1ZSA9IHNlbGYudGV4dCgpLnJlcGxhY2UoL1xzL2csICIiKTsKCiAgICAgICAgfQoKICAgICAgICAvLyBhZGQgdGhlIGluZGV4IGlmIHdlIG5lZWQgdG8KICAgICAgICBpZiAoYXJyLmxlbmd0aCkgewogICAgICAgICAgaGFzaFZhbHVlICs9ICIiICsgaW5kZXg7CiAgICAgICAgfQoKICAgICAgICAvLyByZXR1cm4gdGhlIHZhbHVlCiAgICAgICAgcmV0dXJuIGhhc2hWYWx1ZTsKCiAgICAgIH0sCgogICAgICAvLyBfYXBwZW5kRWxlbWVudHMKICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tCiAgICAgIC8vICAgICAgSGVscHMgY3JlYXRlIHRoZSB0YWJsZSBvZiBjb250ZW50cyBsaXN0IGJ5IGFwcGVuZGluZyBzdWJoZWFkZXIgZWxlbWVudHMKCiAgICAgIF9hcHBlbmRTdWJoZWFkZXJzOiBmdW5jdGlvbihzZWxmLCB1bCkgewoKICAgICAgICAvLyBUaGUgY3VycmVudCBlbGVtZW50IGluZGV4CiAgICAgICAgdmFyIGluZGV4ID0gJCh0aGlzKS5pbmRleChzZWxmLm9wdGlvbnMuc2VsZWN0b3JzKSwKCiAgICAgICAgICAvLyBGaW5kcyB0aGUgcHJldmlvdXMgaGVhZGVyIERPTSBlbGVtZW50CiAgICAgICAgICBwcmV2aW91c0hlYWRlciA9ICQoc2VsZi5vcHRpb25zLnNlbGVjdG9ycykuZXEoaW5kZXggLSAxKSwKCiAgICAgICAgICBjdXJyZW50VGFnTmFtZSA9ICskKHRoaXMpLnByb3AoInRhZ05hbWUiKS5jaGFyQXQoMSksCgogICAgICAgICAgcHJldmlvdXNUYWdOYW1lID0gK3ByZXZpb3VzSGVhZGVyLnByb3AoInRhZ05hbWUiKS5jaGFyQXQoMSksCgogICAgICAgICAgbGFzdFN1YmhlYWRlcjsKCiAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgaGVhZGVyIERPTSBlbGVtZW50IGlzIHNtYWxsZXIgdGhhbiB0aGUgcHJldmlvdXMgaGVhZGVyIERPTSBlbGVtZW50IG9yIHRoZSBmaXJzdCBzdWJoZWFkZXIKICAgICAgICBpZiAoY3VycmVudFRhZ05hbWUgPCBwcmV2aW91c1RhZ05hbWUpIHsKCiAgICAgICAgICAvLyBTZWxlY3RzIHRoZSBsYXN0IHVub3JkZXJlZCBsaXN0IEhUTUwgZm91bmQgd2l0aGluIHRoZSBIVE1MIGVsZW1lbnQgY2FsbGluZyB0aGUgcGx1Z2luCiAgICAgICAgICBzZWxmLmVsZW1lbnQuZmluZChzdWJoZWFkZXJDbGFzcyArICJbZGF0YS10YWc9IiArIGN1cnJlbnRUYWdOYW1lICsgIl0iKS5sYXN0KCkuYXBwZW5kKHNlbGYuX25lc3RFbGVtZW50cygkKHRoaXMpLCBpbmRleCkpOwoKICAgICAgICB9CgogICAgICAgIC8vIElmIHRoZSBjdXJyZW50IGhlYWRlciBET00gZWxlbWVudCBpcyB0aGUgc2FtZSB0eXBlIG9mIGhlYWRlcihlZy4gaDQpIGFzIHRoZSBwcmV2aW91cyBoZWFkZXIgRE9NIGVsZW1lbnQKICAgICAgICBlbHNlIGlmIChjdXJyZW50VGFnTmFtZSA9PT0gcHJldmlvdXNUYWdOYW1lKSB7CgogICAgICAgICAgdWwuZmluZChpdGVtQ2xhc3MpLmxhc3QoKS5hZnRlcihzZWxmLl9uZXN0RWxlbWVudHMoJCh0aGlzKSwgaW5kZXgpKTsKCiAgICAgICAgfSBlbHNlIHsKCiAgICAgICAgICAvLyBTZWxlY3RzIHRoZSBsYXN0IHVub3JkZXJlZCBsaXN0IEhUTUwgZm91bmQgd2l0aGluIHRoZSBIVE1MIGVsZW1lbnQgY2FsbGluZyB0aGUgcGx1Z2luCiAgICAgICAgICB1bC5maW5kKGl0ZW1DbGFzcykubGFzdCgpLgoKICAgICAgICAgIC8vIEFwcGVuZHMgYW4gdW5vcmRlcmVkTGlzdCBIVE1MIGVsZW1lbnQgdG8gdGhlIGR5bmFtaWMgYHVub3JkZXJlZExpc3RgIHZhcmlhYmxlIGFuZCBzZXRzIGEgY29tbW9uIGNsYXNzIG5hbWUKICAgICAgICAgIGFmdGVyKCQoIjx1bC8+IiwgewoKICAgICAgICAgICAgImNsYXNzIjogc3ViaGVhZGVyQ2xhc3NOYW1lLAoKICAgICAgICAgICAgImRhdGEtdGFnIjogY3VycmVudFRhZ05hbWUKCiAgICAgICAgICB9KSkubmV4dChzdWJoZWFkZXJDbGFzcykuCgogICAgICAgICAgLy8gQXBwZW5kcyBhIGxpc3QgaXRlbSBIVE1MIGVsZW1lbnQgdG8gdGhlIGxhc3QgdW5vcmRlcmVkIGxpc3QgSFRNTCBlbGVtZW50IGZvdW5kIHdpdGhpbiB0aGUgSFRNTCBlbGVtZW50IGNhbGxpbmcgdGhlIHBsdWdpbgogICAgICAgICAgYXBwZW5kKHNlbGYuX25lc3RFbGVtZW50cygkKHRoaXMpLCBpbmRleCkpOwogICAgICAgIH0KCiAgICAgIH0sCgogICAgICAvLyBfc2V0RXZlbnRIYW5kbGVycwogICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tCiAgICAgIC8vICAgICAgQWRkcyBqUXVlcnkgZXZlbnQgaGFuZGxlcnMgdG8gdGhlIG5ld2x5IGdlbmVyYXRlZCB0YWJsZSBvZiBjb250ZW50cwogICAgICBfc2V0RXZlbnRIYW5kbGVyczogZnVuY3Rpb24oKSB7CgogICAgICAgIC8vIF9Mb2NhbCB2YXJpYWJsZXNfCgogICAgICAgIC8vIFN0b3JlcyB0aGUgcGx1Z2luIGNvbnRleHQgaW4gdGhlIHNlbGYgdmFyaWFibGUKICAgICAgICB2YXIgc2VsZiA9IHRoaXMsCgogICAgICAgICAgLy8gSW5zdGFudGlhdGVzIGEgbmV3IHZhcmlhYmxlIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGhvbGQgYSBzcGVjaWZpYyBlbGVtZW50J3MgY29udGV4dAogICAgICAgICAgJHNlbGYsCgogICAgICAgICAgLy8gSW5zdGFudGlhdGVzIGEgbmV3IHZhcmlhYmxlIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGRldGVybWluZSB0aGUgc21vb3RoU2Nyb2xsIGFuaW1hdGlvbiB0aW1lIGR1cmF0aW9uCiAgICAgICAgICBkdXJhdGlvbjsKCiAgICAgICAgLy8gRXZlbnQgZGVsZWdhdGlvbiB0aGF0IGxvb2tzIGZvciBhbnkgY2xpY2tzIG9uIGxpc3QgaXRlbSBlbGVtZW50cyBpbnNpZGUgb2YgdGhlIEhUTUwgZWxlbWVudCBjYWxsaW5nIHRoZSBwbHVnaW4KICAgICAgICB0aGlzLmVsZW1lbnQub24oImNsaWNrLnRvY2lmeSIsICJsaSIsIGZ1bmN0aW9uKGV2ZW50KSB7CgogICAgICAgICAgaWYgKHNlbGYub3B0aW9ucy5oaXN0b3J5KSB7CgogICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaGFzaCA9ICQodGhpcykuYXR0cigiZGF0YS11bmlxdWUiKTsKCiAgICAgICAgICB9CgogICAgICAgICAgLy8gUmVtb3ZlcyBoaWdobGlnaHRpbmcgZnJvbSBhbGwgb2YgdGhlIGxpc3QgaXRlbSdzCiAgICAgICAgICBzZWxmLmVsZW1lbnQuZmluZCgiLiIgKyBzZWxmLmZvY3VzQ2xhc3MpLnJlbW92ZUNsYXNzKHNlbGYuZm9jdXNDbGFzcyk7CgogICAgICAgICAgLy8gSGlnaGxpZ2h0cyB0aGUgY3VycmVudCBsaXN0IGl0ZW0gdGhhdCB3YXMgY2xpY2tlZAogICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcyhzZWxmLmZvY3VzQ2xhc3MpOwoKICAgICAgICAgIC8vIElmIHRoZSBzaG93QW5kSGlkZSBvcHRpb24gaXMgdHJ1ZQogICAgICAgICAgaWYgKHNlbGYub3B0aW9ucy5zaG93QW5kSGlkZSkgewoKICAgICAgICAgICAgdmFyIGVsZW0gPSAkKCdsaVtkYXRhLXVuaXF1ZT0iJyArICQodGhpcykuYXR0cigiZGF0YS11bmlxdWUiKSArICciXScpOwoKICAgICAgICAgICAgc2VsZi5fdHJpZ2dlclNob3coZWxlbSk7CgogICAgICAgICAgfQoKICAgICAgICAgIHNlbGYuX3Njcm9sbFRvKCQodGhpcykpOwoKICAgICAgICB9KTsKCiAgICAgICAgLy8gTW91c2VlbnRlciBhbmQgTW91c2VsZWF2ZSBldmVudCBoYW5kbGVycyBmb3IgdGhlIGxpc3QgaXRlbSdzIHdpdGhpbiB0aGUgSFRNTCBlbGVtZW50IGNhbGxpbmcgdGhlIHBsdWdpbgogICAgICAgIHRoaXMuZWxlbWVudC5maW5kKCJsaSIpLm9uKHsKCiAgICAgICAgICAvLyBNb3VzZWVudGVyIGV2ZW50IGhhbmRsZXIKICAgICAgICAgICJtb3VzZWVudGVyLnRvY2lmeSI6IGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgLy8gQWRkcyBhIGhvdmVyIENTUyBjbGFzcyB0byB0aGUgY3VycmVudCBsaXN0IGl0ZW0KICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcyhzZWxmLmhvdmVyQ2xhc3MpOwoKICAgICAgICAgICAgLy8gTWFrZXMgc3VyZSB0aGUgY3Vyc29yIGlzIHNldCB0byB0aGUgcG9pbnRlciBpY29uCiAgICAgICAgICAgICQodGhpcykuY3NzKCJjdXJzb3IiLCAicG9pbnRlciIpOwoKICAgICAgICAgIH0sCgogICAgICAgICAgLy8gTW91c2VsZWF2ZSBldmVudCBoYW5kbGVyCiAgICAgICAgICAibW91c2VsZWF2ZS50b2NpZnkiOiBmdW5jdGlvbigpIHsKCiAgICAgICAgICAgIGlmIChzZWxmLm9wdGlvbnMudGhlbWUgIT09ICJib290c3RyYXAiKSB7CgogICAgICAgICAgICAgIC8vIFJlbW92ZXMgdGhlIGhvdmVyIENTUyBjbGFzcyBmcm9tIHRoZSBjdXJyZW50IGxpc3QgaXRlbQogICAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3Moc2VsZi5ob3ZlckNsYXNzKTsKCiAgICAgICAgICAgIH0KCiAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICAgIC8vIG9ubHkgYXR0YWNoIGhhbmRsZXIgaWYgbmVlZGVkIChleHBlbnNpdmUgaW4gSUUpCiAgICAgICAgaWYgKHNlbGYub3B0aW9ucy5leHRlbmRQYWdlIHx8IHNlbGYub3B0aW9ucy5oaWdobGlnaHRPblNjcm9sbCB8fCBzZWxmLm9wdGlvbnMuc2Nyb2xsSGlzdG9yeSB8fCBzZWxmLm9wdGlvbnMuc2hvd0FuZEhpZGVPblNjcm9sbCkgewogICAgICAgICAgLy8gV2luZG93IHNjcm9sbCBldmVudCBoYW5kbGVyCiAgICAgICAgICAkKHdpbmRvdykub24oInNjcm9sbC50b2NpZnkiLCBmdW5jdGlvbigpIHsKCiAgICAgICAgICAgIC8vIE9uY2UgYWxsIGFuaW1hdGlvbnMgb24gdGhlIHBhZ2UgYXJlIGNvbXBsZXRlLCB0aGlzIGNhbGxiYWNrIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkCiAgICAgICAgICAgICQoImh0bWwsIGJvZHkiKS5wcm9taXNlKCkuZG9uZShmdW5jdGlvbigpIHsKCiAgICAgICAgICAgICAgLy8gTG9jYWwgdmFyaWFibGVzCgogICAgICAgICAgICAgIC8vIFN0b3JlcyBob3cgZmFyIHRoZSB1c2VyIGhhcyBzY3JvbGxlZAogICAgICAgICAgICAgIHZhciB3aW5TY3JvbGxUb3AgPSAkKHdpbmRvdykuc2Nyb2xsVG9wKCksCgogICAgICAgICAgICAgICAgLy8gU3RvcmVzIHRoZSBoZWlnaHQgb2YgdGhlIHdpbmRvdwogICAgICAgICAgICAgICAgd2luSGVpZ2h0ID0gJCh3aW5kb3cpLmhlaWdodCgpLAoKICAgICAgICAgICAgICAgIC8vIFN0b3JlcyB0aGUgaGVpZ2h0IG9mIHRoZSBkb2N1bWVudAogICAgICAgICAgICAgICAgZG9jSGVpZ2h0ID0gJChkb2N1bWVudCkuaGVpZ2h0KCksCgogICAgICAgICAgICAgICAgc2Nyb2xsSGVpZ2h0ID0gJCgiYm9keSIpWzBdLnNjcm9sbEhlaWdodCwKCiAgICAgICAgICAgICAgICAvLyBJbnN0YW50aWF0ZXMgYSB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgdXNlZCB0byBob2xkIGEgc2VsZWN0ZWQgSFRNTCBlbGVtZW50CiAgICAgICAgICAgICAgICBlbGVtLAoKICAgICAgICAgICAgICAgIGxhc3RFbGVtLAoKICAgICAgICAgICAgICAgIGxhc3RFbGVtT2Zmc2V0LAoKICAgICAgICAgICAgICAgIGN1cnJlbnRFbGVtOwoKICAgICAgICAgICAgICBpZiAoc2VsZi5vcHRpb25zLmV4dGVuZFBhZ2UpIHsKCiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdXNlciBoYXMgc2Nyb2xsZWQgdG8gdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBhbmQgdGhlIGxhc3QgdG9jIGl0ZW0gaXMgbm90IGZvY3VzZWQKICAgICAgICAgICAgICAgIGlmICgoc2VsZi53ZWJraXQgJiYgd2luU2Nyb2xsVG9wID49IHNjcm9sbEhlaWdodCAtIHdpbkhlaWdodCAtIHNlbGYub3B0aW9ucy5leHRlbmRQYWdlT2Zmc2V0KSB8fCAoIXNlbGYud2Via2l0ICYmIHdpbkhlaWdodCArIHdpblNjcm9sbFRvcCA+IGRvY0hlaWdodCAtIHNlbGYub3B0aW9ucy5leHRlbmRQYWdlT2Zmc2V0KSkgewoKICAgICAgICAgICAgICAgICAgaWYgKCEkKGV4dGVuZFBhZ2VDbGFzcykubGVuZ3RoKSB7CgogICAgICAgICAgICAgICAgICAgIGxhc3RFbGVtID0gJCgnZGl2W2RhdGEtdW5pcXVlPSInICsgJChpdGVtQ2xhc3MpLmxhc3QoKS5hdHRyKCJkYXRhLXVuaXF1ZSIpICsgJyJdJyk7CgogICAgICAgICAgICAgICAgICAgIGlmICghbGFzdEVsZW0ubGVuZ3RoKSByZXR1cm47CgogICAgICAgICAgICAgICAgICAgIC8vIEdldHMgdGhlIHRvcCBvZmZzZXQgb2YgdGhlIHBhZ2UgaGVhZGVyIHRoYXQgaXMgbGlua2VkIHRvIHRoZSBsYXN0IHRvYyBpdGVtCiAgICAgICAgICAgICAgICAgICAgbGFzdEVsZW1PZmZzZXQgPSBsYXN0RWxlbS5vZmZzZXQoKS50b3A7CgogICAgICAgICAgICAgICAgICAgIC8vIEFwcGVuZHMgYSBkaXYgdG8gdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBhbmQgc2V0cyB0aGUgaGVpZ2h0IHRvIHRoZSBkaWZmZXJlbmNlIG9mIHRoZSB3aW5kb3cgc2Nyb2xsVG9wIGFuZCB0aGUgbGFzdCBlbGVtZW50J3MgcG9zaXRpb24gdG9wIG9mZnNldAogICAgICAgICAgICAgICAgICAgICQoc2VsZi5vcHRpb25zLmNvbnRleHQpLmFwcGVuZCgkKCI8ZGl2Lz4iLCB7CgogICAgICAgICAgICAgICAgICAgICAgImNsYXNzIjogZXh0ZW5kUGFnZUNsYXNzTmFtZSwKCiAgICAgICAgICAgICAgICAgICAgICAiaGVpZ2h0IjogTWF0aC5hYnMobGFzdEVsZW1PZmZzZXQgLSB3aW5TY3JvbGxUb3ApICsgInB4IiwKCiAgICAgICAgICAgICAgICAgICAgICAiZGF0YS11bmlxdWUiOiBleHRlbmRQYWdlQ2xhc3NOYW1lCgogICAgICAgICAgICAgICAgICAgIH0pKTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGYuZXh0ZW5kUGFnZVNjcm9sbCkgewoKICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRFbGVtID0gc2VsZi5lbGVtZW50LmZpbmQoJ2xpLicgKyBzZWxmLmZvY3VzQ2xhc3MpOwoKICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3Njcm9sbFRvKCQoJ2RpdltkYXRhLXVuaXF1ZT0iJyArIGN1cnJlbnRFbGVtLmF0dHIoImRhdGEtdW5pcXVlIikgKyAnIl0nKSk7CgogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgLy8gVGhlIHplcm8gdGltZW91dCBlbnN1cmVzIHRoZSBmb2xsb3dpbmcgY29kZSBpcyBydW4gYWZ0ZXIgdGhlIHNjcm9sbCBldmVudHMKICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgICAgIC8vIF9Mb2NhbCB2YXJpYWJsZXNfCgogICAgICAgICAgICAgICAgLy8gU3RvcmVzIHRoZSBkaXN0YW5jZSB0byB0aGUgY2xvc2VzdCBhbmNob3IKICAgICAgICAgICAgICAgIHZhciBjbG9zZXN0QW5jaG9yRGlzdGFuY2UgPSBudWxsLAoKICAgICAgICAgICAgICAgICAgLy8gU3RvcmVzIHRoZSBpbmRleCBvZiB0aGUgY2xvc2VzdCBhbmNob3IKICAgICAgICAgICAgICAgICAgY2xvc2VzdEFuY2hvcklkeCA9IG51bGwsCgogICAgICAgICAgICAgICAgICAvLyBLZWVwcyBhIHJlZmVyZW5jZSB0byBhbGwgYW5jaG9ycwogICAgICAgICAgICAgICAgICBhbmNob3JzID0gJChzZWxmLm9wdGlvbnMuY29udGV4dCkuZmluZCgiZGl2W2RhdGEtdW5pcXVlXSIpLAoKICAgICAgICAgICAgICAgICAgYW5jaG9yVGV4dDsKCiAgICAgICAgICAgICAgICAvLyBEZXRlcm1pbmVzIHRoZSBpbmRleCBvZiB0aGUgY2xvc2VzdCBhbmNob3IKICAgICAgICAgICAgICAgIGFuY2hvcnMuZWFjaChmdW5jdGlvbihpZHgpIHsKICAgICAgICAgICAgICAgICAgdmFyIGRpc3RhbmNlID0gTWF0aC5hYnMoKCQodGhpcykubmV4dCgpLmxlbmd0aCA/ICQodGhpcykubmV4dCgpIDogJCh0aGlzKSkub2Zmc2V0KCkudG9wIC0gd2luU2Nyb2xsVG9wIC0gc2VsZi5vcHRpb25zLmhpZ2hsaWdodE9mZnNldCk7CiAgICAgICAgICAgICAgICAgIGlmIChjbG9zZXN0QW5jaG9yRGlzdGFuY2UgPT0gbnVsbCB8fCBkaXN0YW5jZSA8IGNsb3Nlc3RBbmNob3JEaXN0YW5jZSkgewogICAgICAgICAgICAgICAgICAgIGNsb3Nlc3RBbmNob3JEaXN0YW5jZSA9IGRpc3RhbmNlOwogICAgICAgICAgICAgICAgICAgIGNsb3Nlc3RBbmNob3JJZHggPSBpZHg7CiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICBhbmNob3JUZXh0ID0gJChhbmNob3JzW2Nsb3Nlc3RBbmNob3JJZHhdKS5hdHRyKCJkYXRhLXVuaXF1ZSIpOwoKICAgICAgICAgICAgICAgIC8vIFN0b3JlcyB0aGUgbGlzdCBpdGVtIEhUTUwgZWxlbWVudCB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBjdXJyZW50bHkgdHJhdmVyc2VkIGFuY2hvciB0YWcKICAgICAgICAgICAgICAgIGVsZW0gPSAkKCdsaVtkYXRhLXVuaXF1ZT0iJyArIGFuY2hvclRleHQgKyAnIl0nKTsKCiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgYGhpZ2hsaWdodE9uU2Nyb2xsYCBvcHRpb24gaXMgdHJ1ZSBhbmQgYSBuZXh0IGVsZW1lbnQgaXMgZm91bmQKICAgICAgICAgICAgICAgIGlmIChzZWxmLm9wdGlvbnMuaGlnaGxpZ2h0T25TY3JvbGwgJiYgZWxlbS5sZW5ndGgpIHsKCiAgICAgICAgICAgICAgICAgIC8vIFJlbW92ZXMgaGlnaGxpZ2h0aW5nIGZyb20gYWxsIG9mIHRoZSBsaXN0IGl0ZW0ncwogICAgICAgICAgICAgICAgICBzZWxmLmVsZW1lbnQuZmluZCgiLiIgKyBzZWxmLmZvY3VzQ2xhc3MpLnJlbW92ZUNsYXNzKHNlbGYuZm9jdXNDbGFzcyk7CgogICAgICAgICAgICAgICAgICAvLyBIaWdobGlnaHRzIHRoZSBjb3JyZXNwb25kaW5nIGxpc3QgaXRlbQogICAgICAgICAgICAgICAgICBlbGVtLmFkZENsYXNzKHNlbGYuZm9jdXNDbGFzcyk7CgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChzZWxmLm9wdGlvbnMuc2Nyb2xsSGlzdG9yeSkgewoKICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5oYXNoICE9PSAiIyIgKyBhbmNob3JUZXh0KSB7CgogICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKCIjIiArIGFuY2hvclRleHQpOwoKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIElmIHRoZSBgc2hvd0FuZEhpZGVPblNjcm9sbGAgb3B0aW9uIGlzIHRydWUKICAgICAgICAgICAgICAgIGlmIChzZWxmLm9wdGlvbnMuc2hvd0FuZEhpZGVPblNjcm9sbCAmJiBzZWxmLm9wdGlvbnMuc2hvd0FuZEhpZGUpIHsKCiAgICAgICAgICAgICAgICAgIHNlbGYuX3RyaWdnZXJTaG93KGVsZW0sIHRydWUpOwoKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgfSwgMCk7CgogICAgICAgICAgICB9KTsKCiAgICAgICAgICB9KTsKICAgICAgICB9CgogICAgICB9LAoKICAgICAgLy8gU2hvdwogICAgICAvLyAtLS0tCiAgICAgIC8vICAgICAgT3BlbnMgdGhlIGN1cnJlbnQgc3ViLWhlYWRlcgogICAgICBzaG93OiBmdW5jdGlvbihlbGVtLCBzY3JvbGwpIHsKCiAgICAgICAgLy8gU3RvcmVzIHRoZSBwbHVnaW4gY29udGV4dCBpbiB0aGUgYHNlbGZgIHZhcmlhYmxlCiAgICAgICAgdmFyIHNlbGYgPSB0aGlzLAogICAgICAgICAgZWxlbWVudCA9IGVsZW07CgogICAgICAgIC8vIElmIHRoZSBzdWItaGVhZGVyIGlzIG5vdCBhbHJlYWR5IHZpc2libGUKICAgICAgICBpZiAoIWVsZW0uaXMoIjp2aXNpYmxlIikpIHsKCiAgICAgICAgICAvLyBJZiB0aGUgY3VycmVudCBlbGVtZW50IGRvZXMgbm90IGhhdmUgYW55IG5lc3RlZCBzdWJoZWFkZXJzLCBpcyBub3QgYSBoZWFkZXIsIGFuZCBpdHMgcGFyZW50IGlzIG5vdCB2aXNpYmxlCiAgICAgICAgICBpZiAoIWVsZW0uZmluZChzdWJoZWFkZXJDbGFzcykubGVuZ3RoICYmICFlbGVtLnBhcmVudCgpLmlzKGhlYWRlckNsYXNzKSAmJiAhZWxlbS5wYXJlbnQoKS5pcygiOnZpc2libGUiKSkgewoKICAgICAgICAgICAgLy8gU2V0cyB0aGUgY3VycmVudCBlbGVtZW50IHRvIGFsbCBvZiB0aGUgc3ViaGVhZGVycyB3aXRoaW4gdGhlIGN1cnJlbnQgaGVhZGVyCiAgICAgICAgICAgIGVsZW0gPSBlbGVtLnBhcmVudHMoc3ViaGVhZGVyQ2xhc3MpLmFkZChlbGVtKTsKCiAgICAgICAgICB9CgogICAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgZWxlbWVudCBkb2VzIG5vdCBoYXZlIGFueSBuZXN0ZWQgc3ViaGVhZGVycyBhbmQgaXMgbm90IGEgaGVhZGVyCiAgICAgICAgICBlbHNlIGlmICghZWxlbS5jaGlsZHJlbihzdWJoZWFkZXJDbGFzcykubGVuZ3RoICYmICFlbGVtLnBhcmVudCgpLmlzKGhlYWRlckNsYXNzKSkgewoKICAgICAgICAgICAgLy8gU2V0cyB0aGUgY3VycmVudCBlbGVtZW50IHRvIHRoZSBjbG9zZXN0IHN1YmhlYWRlcgogICAgICAgICAgICBlbGVtID0gZWxlbS5jbG9zZXN0KHN1YmhlYWRlckNsYXNzKTsKCiAgICAgICAgICB9CgogICAgICAgICAgLy9EZXRlcm1pbmVzIHdoYXQgalF1ZXJ5IGVmZmVjdCB0byB1c2UKICAgICAgICAgIHN3aXRjaCAoc2VsZi5vcHRpb25zLnNob3dFZmZlY3QpIHsKCiAgICAgICAgICAgIC8vVXNlcyBgbm8gZWZmZWN0YAogICAgICAgICAgICBjYXNlICJub25lIjoKCiAgICAgICAgICAgICAgZWxlbS5zaG93KCk7CgogICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAvL1VzZXMgdGhlIGpRdWVyeSBgc2hvd2Agc3BlY2lhbCBlZmZlY3QKICAgICAgICAgICAgY2FzZSAic2hvdyI6CgogICAgICAgICAgICAgIGVsZW0uc2hvdyhzZWxmLm9wdGlvbnMuc2hvd0VmZmVjdFNwZWVkKTsKCiAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgIC8vVXNlcyB0aGUgalF1ZXJ5IGBzbGlkZURvd25gIHNwZWNpYWwgZWZmZWN0CiAgICAgICAgICAgIGNhc2UgInNsaWRlRG93biI6CgogICAgICAgICAgICAgIGVsZW0uc2xpZGVEb3duKHNlbGYub3B0aW9ucy5zaG93RWZmZWN0U3BlZWQpOwoKICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgLy9Vc2VzIHRoZSBqUXVlcnkgYGZhZGVJbmAgc3BlY2lhbCBlZmZlY3QKICAgICAgICAgICAgY2FzZSAiZmFkZUluIjoKCiAgICAgICAgICAgICAgZWxlbS5mYWRlSW4oc2VsZi5vcHRpb25zLnNob3dFZmZlY3RTcGVlZCk7CgogICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAvL0lmIG5vbmUgb2YgdGhlIGFib3ZlIG9wdGlvbnMgd2VyZSBwYXNzZWQsIHRoZW4gYSBgalF1ZXJ5VUkgc2hvdyBlZmZlY3RgIGlzIGV4cGVjdGVkCiAgICAgICAgICAgIGRlZmF1bHQ6CgogICAgICAgICAgICAgIGVsZW0uc2hvdygpOwoKICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICB9CgogICAgICAgIH0KCiAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgc3ViaGVhZGVyIHBhcmVudCBlbGVtZW50IGlzIGEgaGVhZGVyCiAgICAgICAgaWYgKGVsZW0ucGFyZW50KCkuaXMoaGVhZGVyQ2xhc3MpKSB7CgogICAgICAgICAgLy8gSGlkZXMgYWxsIG5vbi1hY3RpdmUgc3ViLWhlYWRlcnMKICAgICAgICAgIHNlbGYuaGlkZSgkKHN1YmhlYWRlckNsYXNzKS5ub3QoZWxlbSkpOwoKICAgICAgICB9CgogICAgICAgIC8vIElmIHRoZSBjdXJyZW50IHN1YmhlYWRlciBwYXJlbnQgZWxlbWVudCBpcyBub3QgYSBoZWFkZXIKICAgICAgICBlbHNlIHsKCiAgICAgICAgICAvLyBIaWRlcyBhbGwgbm9uLWFjdGl2ZSBzdWItaGVhZGVycwogICAgICAgICAgc2VsZi5oaWRlKCQoc3ViaGVhZGVyQ2xhc3MpLm5vdChlbGVtLmNsb3Nlc3QoaGVhZGVyQ2xhc3MpLmZpbmQoc3ViaGVhZGVyQ2xhc3MpLm5vdChlbGVtLnNpYmxpbmdzKCkpKSk7CgogICAgICAgIH0KCiAgICAgICAgLy8gTWFpbnRhaW5zIGNoYWluYWJsaXR5CiAgICAgICAgcmV0dXJuIHNlbGY7CgogICAgICB9LAoKICAgICAgLy8gSGlkZQogICAgICAvLyAtLS0tCiAgICAgIC8vICAgICAgQ2xvc2VzIHRoZSBjdXJyZW50IHN1Yi1oZWFkZXIKICAgICAgaGlkZTogZnVuY3Rpb24oZWxlbSkgewoKICAgICAgICAvLyBTdG9yZXMgdGhlIHBsdWdpbiBjb250ZXh0IGluIHRoZSBgc2VsZmAgdmFyaWFibGUKICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CgogICAgICAgIC8vRGV0ZXJtaW5lcyB3aGF0IGpRdWVyeSBlZmZlY3QgdG8gdXNlCiAgICAgICAgc3dpdGNoIChzZWxmLm9wdGlvbnMuaGlkZUVmZmVjdCkgewoKICAgICAgICAgIC8vIFVzZXMgYG5vIGVmZmVjdGAKICAgICAgICAgIGNhc2UgIm5vbmUiOgoKICAgICAgICAgICAgZWxlbS5oaWRlKCk7CgogICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIC8vIFVzZXMgdGhlIGpRdWVyeSBgaGlkZWAgc3BlY2lhbCBlZmZlY3QKICAgICAgICAgIGNhc2UgImhpZGUiOgoKICAgICAgICAgICAgZWxlbS5oaWRlKHNlbGYub3B0aW9ucy5oaWRlRWZmZWN0U3BlZWQpOwoKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAvLyBVc2VzIHRoZSBqUXVlcnkgYHNsaWRlVXBgIHNwZWNpYWwgZWZmZWN0CiAgICAgICAgICBjYXNlICJzbGlkZVVwIjoKCiAgICAgICAgICAgIGVsZW0uc2xpZGVVcChzZWxmLm9wdGlvbnMuaGlkZUVmZmVjdFNwZWVkKTsKCiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgLy8gVXNlcyB0aGUgalF1ZXJ5IGBmYWRlT3V0YCBzcGVjaWFsIGVmZmVjdAogICAgICAgICAgY2FzZSAiZmFkZU91dCI6CgogICAgICAgICAgICBlbGVtLmZhZGVPdXQoc2VsZi5vcHRpb25zLmhpZGVFZmZlY3RTcGVlZCk7CgogICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIC8vIElmIG5vbmUgb2YgdGhlIGFib3ZlIG9wdGlvbnMgd2VyZSBwYXNzZWQsIHRoZW4gYSBganF1ZXJ5VUkgaGlkZSBlZmZlY3RgIGlzIGV4cGVjdGVkCiAgICAgICAgICBkZWZhdWx0OgoKICAgICAgICAgICAgZWxlbS5oaWRlKCk7CgogICAgICAgICAgICBicmVhazsKCiAgICAgICAgfQoKICAgICAgICAvLyBNYWludGFpbnMgY2hhaW5hYmxpdHkKICAgICAgICByZXR1cm4gc2VsZjsKICAgICAgfSwKCiAgICAgIC8vIF90cmlnZ2VyU2hvdwogICAgICAvLyAtLS0tLS0tLS0tLS0KICAgICAgLy8gICAgICBEZXRlcm1pbmVzIHdoYXQgZWxlbWVudHMgZ2V0IHNob3duIG9uIHNjcm9sbCBhbmQgY2xpY2sKICAgICAgX3RyaWdnZXJTaG93OiBmdW5jdGlvbihlbGVtLCBzY3JvbGwpIHsKCiAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwoKICAgICAgICAvLyBJZiB0aGUgY3VycmVudCBlbGVtZW50J3MgcGFyZW50IGlzIGEgaGVhZGVyIGVsZW1lbnQgb3IgdGhlIG5leHQgZWxlbWVudCBpcyBhIG5lc3RlZCBzdWJoZWFkZXIgZWxlbWVudAogICAgICAgIGlmIChlbGVtLnBhcmVudCgpLmlzKGhlYWRlckNsYXNzKSB8fCBlbGVtLm5leHQoKS5pcyhzdWJoZWFkZXJDbGFzcykpIHsKCiAgICAgICAgICAvLyBTaG93cyB0aGUgbmV4dCBzdWItaGVhZGVyIGVsZW1lbnQKICAgICAgICAgIHNlbGYuc2hvdyhlbGVtLm5leHQoc3ViaGVhZGVyQ2xhc3MpLCBzY3JvbGwpOwoKICAgICAgICB9CgogICAgICAgIC8vIElmIHRoZSBjdXJyZW50IGVsZW1lbnQncyBwYXJlbnQgaXMgYSBzdWJoZWFkZXIgZWxlbWVudAogICAgICAgIGVsc2UgaWYgKGVsZW0ucGFyZW50KCkuaXMoc3ViaGVhZGVyQ2xhc3MpKSB7CgogICAgICAgICAgLy8gU2hvd3MgdGhlIHBhcmVudCBzdWItaGVhZGVyIGVsZW1lbnQKICAgICAgICAgIHNlbGYuc2hvdyhlbGVtLnBhcmVudCgpLCBzY3JvbGwpOwoKICAgICAgICB9CgogICAgICAgIC8vIE1haW50YWlucyBjaGFpbmFiaWxpdHkKICAgICAgICByZXR1cm4gc2VsZjsKCiAgICAgIH0sCgogICAgICAvLyBfYWRkQ1NTQ2xhc3NlcwogICAgICAvLyAtLS0tLS0tLS0tLS0tLQogICAgICAvLyAgICAgIEFkZHMgQ1NTIGNsYXNzZXMgdG8gdGhlIG5ld2x5IGdlbmVyYXRlZCB0YWJsZSBvZiBjb250ZW50cyBIVE1MCiAgICAgIF9hZGRDU1NDbGFzc2VzOiBmdW5jdGlvbigpIHsKCiAgICAgICAgLy8gSWYgdGhlIHVzZXIgd2FudHMgYSBqcXVlcnlVSSB0aGVtZQogICAgICAgIGlmICh0aGlzLm9wdGlvbnMudGhlbWUgPT09ICJqcXVlcnl1aSIpIHsKCiAgICAgICAgICB0aGlzLmZvY3VzQ2xhc3MgPSAidWktc3RhdGUtZGVmYXVsdCI7CgogICAgICAgICAgdGhpcy5ob3ZlckNsYXNzID0gInVpLXN0YXRlLWhvdmVyIjsKCiAgICAgICAgICAvL0FkZHMgdGhlIGRlZmF1bHQgc3R5bGluZyB0byB0aGUgZHJvcGRvd24gbGlzdAogICAgICAgICAgdGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS13aWRnZXQiKS5maW5kKCIudG9jLXRpdGxlIikuYWRkQ2xhc3MoInVpLXdpZGdldC1oZWFkZXIiKS5lbmQoKS5maW5kKCJsaSIpLmFkZENsYXNzKCJ1aS13aWRnZXQtY29udGVudCIpOwoKICAgICAgICB9CgogICAgICAgIC8vIElmIHRoZSB1c2VyIHdhbnRzIGEgdHdpdHRlckJvb3RzdHJhcCB0aGVtZQogICAgICAgIGVsc2UgaWYgKHRoaXMub3B0aW9ucy50aGVtZSA9PT0gImJvb3RzdHJhcCIpIHsKCiAgICAgICAgICB0aGlzLmVsZW1lbnQuZmluZChoZWFkZXJDbGFzcyArICIsIiArIHN1YmhlYWRlckNsYXNzKS5hZGRDbGFzcygibmF2IG5hdi1saXN0Iik7CgogICAgICAgICAgdGhpcy5mb2N1c0NsYXNzID0gImFjdGl2ZSI7CgogICAgICAgIH0KCiAgICAgICAgLy8gSWYgdGhlIHVzZXIgd2FudHMgYSB0d2l0dGVyQm9vdHN0cmFwIHRoZW1lCiAgICAgICAgZWxzZSBpZiAodGhpcy5vcHRpb25zLnRoZW1lID09PSAiYm9vdHN0cmFwMyIpIHsKCiAgICAgICAgICB0aGlzLmVsZW1lbnQuZmluZChoZWFkZXJDbGFzcyArICIsIiArIHN1YmhlYWRlckNsYXNzKS5hZGRDbGFzcygibGlzdC1ncm91cCIpOwoKICAgICAgICAgIHRoaXMuZWxlbWVudC5maW5kKGl0ZW1DbGFzcykuYWRkQ2xhc3MoImxpc3QtZ3JvdXAtaXRlbSIpOwoKICAgICAgICAgIHRoaXMuZm9jdXNDbGFzcyA9ICJhY3RpdmUiOwoKICAgICAgICB9CgogICAgICAgIC8vIElmIGEgdXNlciBkb2VzIG5vdCB3YW50IGEgcHJlYnVpbHQgdGhlbWUKICAgICAgICBlbHNlIHsKCiAgICAgICAgICAvLyBBZGRzIG1vcmUgbmV1dHJhbCBjbGFzc2VzIChpbnN0ZWFkIG9mIGpxdWVyeXVpKQoKICAgICAgICAgIHRoaXMuZm9jdXNDbGFzcyA9IHRvY0ZvY3VzQ2xhc3NOYW1lOwoKICAgICAgICAgIHRoaXMuaG92ZXJDbGFzcyA9IHRvY0hvdmVyQ2xhc3NOYW1lOwoKICAgICAgICB9CgogICAgICAgIC8vTWFpbnRhaW5zIGNoYWluYWJpbGl0eQogICAgICAgIHJldHVybiB0aGlzOwoKICAgICAgfSwKCiAgICAgIC8vIHNldE9wdGlvbgogICAgICAvLyAtLS0tLS0tLS0KICAgICAgLy8gICAgICBTZXRzIGEgc2luZ2xlIFRvY2lmeSBvcHRpb24gYWZ0ZXIgdGhlIHBsdWdpbiBpcyBpbnZva2VkCiAgICAgIHNldE9wdGlvbjogZnVuY3Rpb24oKSB7CgogICAgICAgIC8vIENhbGxzIHRoZSBqUXVlcnlVSSBXaWRnZXQgRmFjdG9yeSBzZXRPcHRpb24gbWV0aG9kCiAgICAgICAgJC5XaWRnZXQucHJvdG90eXBlLl9zZXRPcHRpb24uYXBwbHkodGhpcywgYXJndW1lbnRzKTsKCiAgICAgIH0sCgogICAgICAvLyBzZXRPcHRpb25zCiAgICAgIC8vIC0tLS0tLS0tLS0KICAgICAgLy8gICAgICBTZXRzIGEgc2luZ2xlIG9yIG11bHRpcGxlIFRvY2lmeSBvcHRpb25zIGFmdGVyIHRoZSBwbHVnaW4gaXMgaW52b2tlZAogICAgICBzZXRPcHRpb25zOiBmdW5jdGlvbigpIHsKCiAgICAgICAgLy8gQ2FsbHMgdGhlIGpRdWVyeVVJIFdpZGdldCBGYWN0b3J5IHNldE9wdGlvbnMgbWV0aG9kCiAgICAgICAgJC5XaWRnZXQucHJvdG90eXBlLl9zZXRPcHRpb25zLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CgogICAgICB9LAoKICAgICAgLy8gX3Njcm9sbFRvCiAgICAgIC8vIC0tLS0tLS0tLQogICAgICAvLyAgICAgIFNjcm9sbHMgdG8gYSBzcGVjaWZpYyBlbGVtZW50CiAgICAgIF9zY3JvbGxUbzogZnVuY3Rpb24oZWxlbSkgewoKICAgICAgICB2YXIgc2VsZiA9IHRoaXMsCiAgICAgICAgICBkdXJhdGlvbiA9IHNlbGYub3B0aW9ucy5zbW9vdGhTY3JvbGwgfHwgMCwKICAgICAgICAgIHNjcm9sbFRvID0gc2VsZi5vcHRpb25zLnNjcm9sbFRvLAogICAgICAgICAgY3VycmVudERpdiA9ICQoJ2RpdltkYXRhLXVuaXF1ZT0iJyArIGVsZW0uYXR0cigiZGF0YS11bmlxdWUiKSArICciXScpOwoKICAgICAgICBpZiAoIWN1cnJlbnREaXYubGVuZ3RoKSB7CgogICAgICAgICAgcmV0dXJuIHNlbGY7CgogICAgICAgIH0KCiAgICAgICAgLy8gT25jZSBhbGwgYW5pbWF0aW9ucyBvbiB0aGUgcGFnZSBhcmUgY29tcGxldGUsIHRoaXMgY2FsbGJhY2sgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQKICAgICAgICAkKCJodG1sLCBib2R5IikucHJvbWlzZSgpLmRvbmUoZnVuY3Rpb24oKSB7CgogICAgICAgICAgLy8gQW5pbWF0ZXMgdGhlIGh0bWwgYW5kIGJvZHkgZWxlbWVudCBzY3JvbGx0b3BzCiAgICAgICAgICAkKCJodG1sLCBib2R5IikuYW5pbWF0ZSh7CgogICAgICAgICAgICAvLyBTZXRzIHRoZSBqUXVlcnkgYHNjcm9sbFRvcGAgdG8gdGhlIHRvcCBvZmZzZXQgb2YgdGhlIEhUTUwgZGl2IHRhZyB0aGF0IG1hdGNoZXMgdGhlIGN1cnJlbnQgbGlzdCBpdGVtJ3MgYGRhdGEtdW5pcXVlYCB0YWcKICAgICAgICAgICAgInNjcm9sbFRvcCI6IGN1cnJlbnREaXYub2Zmc2V0KCkudG9wIC0gKCQuaXNGdW5jdGlvbihzY3JvbGxUbykgPyBzY3JvbGxUby5jYWxsKCkgOiBzY3JvbGxUbykgKyAicHgiCgogICAgICAgICAgfSwgewoKICAgICAgICAgICAgLy8gU2V0cyB0aGUgc21vb3RoU2Nyb2xsIGFuaW1hdGlvbiB0aW1lIGR1cmF0aW9uIHRvIHRoZSBzbW9vdGhTY3JvbGxTcGVlZCBvcHRpb24KICAgICAgICAgICAgImR1cmF0aW9uIjogZHVyYXRpb24KCiAgICAgICAgICB9KTsKCiAgICAgICAgfSk7CgogICAgICAgIC8vIE1haW50YWlucyBjaGFpbmFiaWxpdHkKICAgICAgICByZXR1cm4gc2VsZjsKCiAgICAgIH0KCiAgICB9KTsKCiAgfSkpOyAvL2VuZCBvZiBwbHVnaW4K"></script>
<script src="data:application/javascript;base64,CgovKioKICogalF1ZXJ5IFBsdWdpbjogU3RpY2t5IFRhYnMKICoKICogQGF1dGhvciBBaWRhbiBMaXN0ZXIgPGFpZGFuQHBocC5uZXQ+CiAqIGFkYXB0ZWQgYnkgUnViZW4gQXJzbGFuIHRvIGFjdGl2YXRlIHBhcmVudCB0YWJzIHRvbwogKiBodHRwOi8vd3d3LmFpZGFubGlzdGVyLmNvbS8yMDE0LzAzL3BlcnNpc3RpbmctdGhlLXRhYi1zdGF0ZS1pbi1ib290c3RyYXAvCiAqLwooZnVuY3Rpb24oJCkgewogICJ1c2Ugc3RyaWN0IjsKICAkLmZuLnJtYXJrZG93blN0aWNreVRhYnMgPSBmdW5jdGlvbigpIHsKICAgIHZhciBjb250ZXh0ID0gdGhpczsKICAgIC8vIFNob3cgdGhlIHRhYiBjb3JyZXNwb25kaW5nIHdpdGggdGhlIGhhc2ggaW4gdGhlIFVSTCwgb3IgdGhlIGZpcnN0IHRhYgogICAgdmFyIHNob3dTdHVmZkZyb21IYXNoID0gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBoYXNoID0gd2luZG93LmxvY2F0aW9uLmhhc2g7CiAgICAgIHZhciBzZWxlY3RvciA9IGhhc2ggPyAnYVtocmVmPSInICsgaGFzaCArICciXScgOiAnbGkuYWN0aXZlID4gYSc7CiAgICAgIHZhciAkc2VsZWN0b3IgPSAkKHNlbGVjdG9yLCBjb250ZXh0KTsKICAgICAgaWYoJHNlbGVjdG9yLmRhdGEoJ3RvZ2dsZScpID09PSAidGFiIikgewogICAgICAgICRzZWxlY3Rvci50YWIoJ3Nob3cnKTsKICAgICAgICAvLyB3YWxrIHVwIHRoZSBhbmNlc3RvcnMgb2YgdGhpcyBlbGVtZW50LCBzaG93IGFueSBoaWRkZW4gdGFicwogICAgICAgICRzZWxlY3Rvci5wYXJlbnRzKCcuc2VjdGlvbi50YWJzZXQnKS5lYWNoKGZ1bmN0aW9uKGksIGVsbSkgewogICAgICAgICAgdmFyIGxpbmsgPSAkKCdhW2hyZWY9IiMnICsgJChlbG0pLmF0dHIoJ2lkJykgKyAnIl0nKTsKICAgICAgICAgIGlmKGxpbmsuZGF0YSgndG9nZ2xlJykgPT09ICJ0YWIiKSB7CiAgICAgICAgICAgIGxpbmsudGFiKCJzaG93Iik7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH07CgoKICAgIC8vIFNldCB0aGUgY29ycmVjdCB0YWIgd2hlbiB0aGUgcGFnZSBsb2FkcwogICAgc2hvd1N0dWZmRnJvbUhhc2goY29udGV4dCk7CgogICAgLy8gU2V0IHRoZSBjb3JyZWN0IHRhYiB3aGVuIGEgdXNlciB1c2VzIHRoZWlyIGJhY2svZm9yd2FyZCBidXR0b24KICAgICQod2luZG93KS5vbignaGFzaGNoYW5nZScsIGZ1bmN0aW9uKCkgewogICAgICBzaG93U3R1ZmZGcm9tSGFzaChjb250ZXh0KTsKICAgIH0pOwoKICAgIC8vIENoYW5nZSB0aGUgVVJMIHdoZW4gdGFicyBhcmUgY2xpY2tlZAogICAgJCgnYScsIGNvbnRleHQpLm9uKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKICAgICAgaGlzdG9yeS5wdXNoU3RhdGUobnVsbCwgbnVsbCwgdGhpcy5ocmVmKTsKICAgICAgc2hvd1N0dWZmRnJvbUhhc2goY29udGV4dCk7CiAgICB9KTsKCiAgICByZXR1cm4gdGhpczsKICB9Owp9KGpRdWVyeSkpOwoKd2luZG93LmJ1aWxkVGFic2V0cyA9IGZ1bmN0aW9uKHRvY0lEKSB7CgogIC8vIGJ1aWxkIGEgdGFic2V0IGZyb20gYSBzZWN0aW9uIGRpdiB3aXRoIHRoZSAudGFic2V0IGNsYXNzCiAgZnVuY3Rpb24gYnVpbGRUYWJzZXQodGFic2V0KSB7CgogICAgLy8gY2hlY2sgZm9yIGZhZGUgYW5kIHBpbGxzIG9wdGlvbnMKICAgIHZhciBmYWRlID0gdGFic2V0Lmhhc0NsYXNzKCJ0YWJzZXQtZmFkZSIpOwogICAgdmFyIHBpbGxzID0gdGFic2V0Lmhhc0NsYXNzKCJ0YWJzZXQtcGlsbHMiKTsKICAgIHZhciBuYXZDbGFzcyA9IHBpbGxzID8gIm5hdi1waWxscyIgOiAibmF2LXRhYnMiOwoKICAgIC8vIGRldGVybWluZSB0aGUgaGVhZGluZyBsZXZlbCBvZiB0aGUgdGFic2V0IGFuZCB0YWJzCiAgICB2YXIgbWF0Y2ggPSB0YWJzZXQuYXR0cignY2xhc3MnKS5tYXRjaCgvbGV2ZWwoXGQpIC8pOwogICAgaWYgKG1hdGNoID09PSBudWxsKQogICAgICByZXR1cm47CiAgICB2YXIgdGFic2V0TGV2ZWwgPSBOdW1iZXIobWF0Y2hbMV0pOwogICAgdmFyIHRhYkxldmVsID0gdGFic2V0TGV2ZWwgKyAxOwoKICAgIC8vIGZpbmQgYWxsIHN1YmhlYWRpbmdzIGltbWVkaWF0ZWx5IGJlbG93CiAgICB2YXIgdGFicyA9IHRhYnNldC5maW5kKCJkaXYuc2VjdGlvbi5sZXZlbCIgKyB0YWJMZXZlbCk7CiAgICBpZiAoIXRhYnMubGVuZ3RoKQogICAgICByZXR1cm47CgogICAgLy8gY3JlYXRlIHRhYmxpc3QgYW5kIHRhYi1jb250ZW50IGVsZW1lbnRzCiAgICB2YXIgdGFiTGlzdCA9ICQoJzx1bCBjbGFzcz0ibmF2ICcgKyBuYXZDbGFzcyArICciIHJvbGU9InRhYmxpc3QiPjwvdWw+Jyk7CiAgICAkKHRhYnNbMF0pLmJlZm9yZSh0YWJMaXN0KTsKICAgIHZhciB0YWJDb250ZW50ID0gJCgnPGRpdiBjbGFzcz0idGFiLWNvbnRlbnQiPjwvZGl2PicpOwogICAgJCh0YWJzWzBdKS5iZWZvcmUodGFiQ29udGVudCk7CgogICAgLy8gYnVpbGQgdGhlIHRhYnNldAogICAgdmFyIGFjdGl2ZVRhYiA9IDA7CiAgICB0YWJzLmVhY2goZnVuY3Rpb24oaSkgewoKICAgICAgLy8gZ2V0IHRoZSB0YWIgZGl2CiAgICAgIHZhciB0YWIgPSAkKHRhYnNbaV0pOwoKICAgICAgLy8gZ2V0IHRoZSBpZCB0aGVuIHNhbml0aXplIGl0IGZvciB1c2Ugd2l0aCBib290c3RyYXAgdGFicwogICAgICB2YXIgaWQgPSB0YWIuYXR0cignaWQnKTsKCiAgICAgIC8vIHNlZSBpZiB0aGlzIGlzIG1hcmtlZCBhcyB0aGUgYWN0aXZlIHRhYgogICAgICBpZiAodGFiLmhhc0NsYXNzKCdhY3RpdmUnKSkKICAgICAgICBhY3RpdmVUYWIgPSBpOwoKICAgICAgLy8gcmVtb3ZlIGFueSB0YWJsZSBvZiBjb250ZW50cyBlbnRyaWVzIGFzc29jaWF0ZWQgd2l0aAogICAgICAvLyB0aGlzIElEIChzaW5jZSB3ZSdsbCBiZSByZW1vdmluZyB0aGUgaGVhZGluZyBlbGVtZW50KQogICAgICAkKCJkaXYjIiArIHRvY0lEICsgIiBsaSBhW2hyZWY9JyMiICsgaWQgKyAiJ10iKS5wYXJlbnQoKS5yZW1vdmUoKTsKCiAgICAgIC8vIHNhbml0aXplIHRoZSBpZCBmb3IgdXNlIHdpdGggYm9vdHN0cmFwIHRhYnMKICAgICAgaWQgPSBpZC5yZXBsYWNlKC9bLlwvPyYhIzw+XS9nLCAnJykucmVwbGFjZSgvXHMvZywgJ18nKTsKICAgICAgdGFiLmF0dHIoJ2lkJywgaWQpOwoKICAgICAgLy8gZ2V0IHRoZSBoZWFkaW5nIGVsZW1lbnQgd2l0aGluIGl0LCBncmFiIGl0J3MgdGV4dCwgdGhlbiByZW1vdmUgaXQKICAgICAgdmFyIGhlYWRpbmcgPSB0YWIuZmluZCgnaCcgKyB0YWJMZXZlbCArICc6Zmlyc3QnKTsKICAgICAgdmFyIGhlYWRpbmdUZXh0ID0gaGVhZGluZy5odG1sKCk7CiAgICAgIGhlYWRpbmcucmVtb3ZlKCk7CgogICAgICAvLyBidWlsZCBhbmQgYXBwZW5kIHRoZSB0YWIgbGlzdCBpdGVtCiAgICAgIHZhciBhID0gJCgnPGEgcm9sZT0idGFiIiBkYXRhLXRvZ2dsZT0idGFiIj4nICsgaGVhZGluZ1RleHQgKyAnPC9hPicpOwogICAgICBhLmF0dHIoJ2hyZWYnLCAnIycgKyBpZCk7CiAgICAgIGEuYXR0cignYXJpYS1jb250cm9scycsIGlkKTsKICAgICAgdmFyIGxpID0gJCgnPGxpIHJvbGU9InByZXNlbnRhdGlvbiI+PC9saT4nKTsKICAgICAgbGkuYXBwZW5kKGEpOwogICAgICB0YWJMaXN0LmFwcGVuZChsaSk7CgogICAgICAvLyBzZXQgaXQncyBhdHRyaWJ1dGVzCiAgICAgIHRhYi5hdHRyKCdyb2xlJywgJ3RhYnBhbmVsJyk7CiAgICAgIHRhYi5hZGRDbGFzcygndGFiLXBhbmUnKTsKICAgICAgdGFiLmFkZENsYXNzKCd0YWJiZWQtcGFuZScpOwogICAgICBpZiAoZmFkZSkKICAgICAgICB0YWIuYWRkQ2xhc3MoJ2ZhZGUnKTsKCiAgICAgIC8vIG1vdmUgaXQgaW50byB0aGUgdGFiIGNvbnRlbnQgZGl2CiAgICAgIHRhYi5kZXRhY2goKS5hcHBlbmRUbyh0YWJDb250ZW50KTsKICAgIH0pOwoKICAgIC8vIHNldCBhY3RpdmUgdGFiCiAgICAkKHRhYkxpc3QuY2hpbGRyZW4oJ2xpJylbYWN0aXZlVGFiXSkuYWRkQ2xhc3MoJ2FjdGl2ZScpOwogICAgdmFyIGFjdGl2ZSA9ICQodGFiQ29udGVudC5jaGlsZHJlbignZGl2LnNlY3Rpb24nKVthY3RpdmVUYWJdKTsKICAgIGFjdGl2ZS5hZGRDbGFzcygnYWN0aXZlJyk7CiAgICBpZiAoZmFkZSkKICAgICAgYWN0aXZlLmFkZENsYXNzKCdpbicpOwoKICAgIGlmICh0YWJzZXQuaGFzQ2xhc3MoInRhYnNldC1zdGlja3kiKSkKICAgICAgdGFic2V0LnJtYXJrZG93blN0aWNreVRhYnMoKTsKICB9CgogIC8vIGNvbnZlcnQgc2VjdGlvbiBkaXZzIHdpdGggdGhlIC50YWJzZXQgY2xhc3MgdG8gdGFic2V0cwogIHZhciB0YWJzZXRzID0gJCgiZGl2LnNlY3Rpb24udGFic2V0Iik7CiAgdGFic2V0cy5lYWNoKGZ1bmN0aW9uKGkpIHsKICAgIGJ1aWxkVGFic2V0KCQodGFic2V0c1tpXSkpOwogIH0pOwp9OwoK"></script>
<script src="data:application/javascript;base64,CndpbmRvdy5pbml0aWFsaXplQ29kZUZvbGRpbmcgPSBmdW5jdGlvbihzaG93KSB7CgogIC8vIGhhbmRsZXJzIGZvciBzaG93LWFsbCBhbmQgaGlkZSBhbGwKICAkKCIjcm1kLXNob3ctYWxsLWNvZGUiKS5jbGljayhmdW5jdGlvbigpIHsKICAgICQoJ2Rpdi5yLWNvZGUtY29sbGFwc2UnKS5lYWNoKGZ1bmN0aW9uKCkgewogICAgICAkKHRoaXMpLmNvbGxhcHNlKCdzaG93Jyk7CiAgICB9KTsKICB9KTsKICAkKCIjcm1kLWhpZGUtYWxsLWNvZGUiKS5jbGljayhmdW5jdGlvbigpIHsKICAgICQoJ2Rpdi5yLWNvZGUtY29sbGFwc2UnKS5lYWNoKGZ1bmN0aW9uKCkgewogICAgICAkKHRoaXMpLmNvbGxhcHNlKCdoaWRlJyk7CiAgICB9KTsKICB9KTsKCiAgLy8gaW5kZXggZm9yIHVuaXF1ZSBjb2RlIGVsZW1lbnQgaWRzCiAgdmFyIGN1cnJlbnRJbmRleCA9IDE7CgogIC8vIHNlbGVjdCBhbGwgUiBjb2RlIGJsb2NrcwogIHZhciByQ29kZUJsb2NrcyA9ICQoJ3ByZS5yLCBwcmUucHl0aG9uLCBwcmUuYmFzaCwgcHJlLnNxbCwgcHJlLmNwcCwgcHJlLnN0YW4sIHByZS5qdWxpYSwgcHJlLmZvbGRhYmxlJyk7CiAgckNvZGVCbG9ja3MuZWFjaChmdW5jdGlvbigpIHsKCiAgICAvLyBjcmVhdGUgYSBjb2xsYXBzYWJsZSBkaXYgdG8gd3JhcCB0aGUgY29kZSBpbgogICAgdmFyIGRpdiA9ICQoJzxkaXYgY2xhc3M9ImNvbGxhcHNlIHItY29kZS1jb2xsYXBzZSI+PC9kaXY+Jyk7CiAgICB2YXIgc2hvd1RoaXMgPSAoc2hvdyB8fCAkKHRoaXMpLmhhc0NsYXNzKCdmb2xkLXNob3cnKSkgJiYgISQodGhpcykuaGFzQ2xhc3MoJ2ZvbGQtaGlkZScpOwogICAgdmFyIGlkID0gJ3Jjb2RlLTY0M0UwRjM2JyArIGN1cnJlbnRJbmRleCsrOwogICAgZGl2LmF0dHIoJ2lkJywgaWQpOwogICAgJCh0aGlzKS5iZWZvcmUoZGl2KTsKICAgICQodGhpcykuZGV0YWNoKCkuYXBwZW5kVG8oZGl2KTsKCiAgICAvLyBhZGQgYSBzaG93IGNvZGUgYnV0dG9uIHJpZ2h0IGFib3ZlCiAgICB2YXIgc2hvd0NvZGVUZXh0ID0gJCgnPHNwYW4+JyArIChzaG93VGhpcyA/ICdIaWRlJyA6ICdDb2RlJykgKyAnPC9zcGFuPicpOwogICAgdmFyIHNob3dDb2RlQnV0dG9uID0gJCgnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgYnRuLXhzIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIGNvZGUtZm9sZGluZy1idG4gcHVsbC1yaWdodCBmbG9hdC1yaWdodCI+PC9idXR0b24+Jyk7CiAgICBzaG93Q29kZUJ1dHRvbi5hcHBlbmQoc2hvd0NvZGVUZXh0KTsKICAgIHNob3dDb2RlQnV0dG9uCiAgICAgICAgLmF0dHIoJ2RhdGEtdG9nZ2xlJywgJ2NvbGxhcHNlJykKICAgICAgICAuYXR0cignZGF0YS10YXJnZXQnLCAnIycgKyBpZCkKICAgICAgICAuYXR0cignYXJpYS1leHBhbmRlZCcsIHNob3dUaGlzKQogICAgICAgIC5hdHRyKCdhcmlhLWNvbnRyb2xzJywgaWQpOwoKICAgIHZhciBidXR0b25Sb3cgPSAkKCc8ZGl2IGNsYXNzPSJyb3ciPjwvZGl2PicpOwogICAgdmFyIGJ1dHRvbkNvbCA9ICQoJzxkaXYgY2xhc3M9ImNvbC1tZC0xMiI+PC9kaXY+Jyk7CgogICAgYnV0dG9uQ29sLmFwcGVuZChzaG93Q29kZUJ1dHRvbik7CiAgICBidXR0b25Sb3cuYXBwZW5kKGJ1dHRvbkNvbCk7CgogICAgZGl2LmJlZm9yZShidXR0b25Sb3cpOwoKICAgIC8vIHNob3cgdGhlIGRpdiBpZiBuZWNlc3NhcnkKICAgIGlmIChzaG93VGhpcykgZGl2LmNvbGxhcHNlKCdzaG93Jyk7CgogICAgLy8gdXBkYXRlIHN0YXRlIG9mIGJ1dHRvbiBvbiBzaG93L2hpZGUKICAgIC8vICAgKiBDaGFuZ2UgdGV4dAogICAgLy8gICAqIGFkZCBhIGNsYXNzIGZvciBpbnRlcm1lZGlhdGUgc3RhdGVzIHN0eWxpbmcKICAgIGRpdi5vbignaGlkZS5icy5jb2xsYXBzZScsIGZ1bmN0aW9uICgpIHsKICAgICAgc2hvd0NvZGVUZXh0LnRleHQoJ0NvZGUnKTsKICAgICAgc2hvd0NvZGVCdXR0b24uYWRkQ2xhc3MoJ2J0bi1jb2xsYXBzaW5nJyk7CiAgICB9KTsKICAgIGRpdi5vbignaGlkZGVuLmJzLmNvbGxhcHNlJywgZnVuY3Rpb24gKCkgewogICAgICBzaG93Q29kZUJ1dHRvbi5yZW1vdmVDbGFzcygnYnRuLWNvbGxhcHNpbmcnKTsKICAgIH0pOwogICAgZGl2Lm9uKCdzaG93LmJzLmNvbGxhcHNlJywgZnVuY3Rpb24gKCkgewogICAgICBzaG93Q29kZVRleHQudGV4dCgnSGlkZScpOwogICAgICBzaG93Q29kZUJ1dHRvbi5hZGRDbGFzcygnYnRuLWV4cGFuZGluZycpOwogICAgfSk7CiAgICBkaXYub24oJ3Nob3duLmJzLmNvbGxhcHNlJywgZnVuY3Rpb24gKCkgewogICAgICBzaG93Q29kZUJ1dHRvbi5yZW1vdmVDbGFzcygnYnRuLWV4cGFuZGluZycpOwogICAgfSk7CgogIH0pOwoKfQo="></script>
<link href="data:text/css,%2Epagedtable%20%7B%0Aoverflow%3A%20auto%3B%0Apadding%2Dleft%3A%208px%3B%0Apadding%2Dright%3A%208px%3B%0A%7D%0A%2Epagedtable%2Dwrapper%20%7B%0Aborder%3A%201px%20solid%20%23ccc%3B%0Aborder%2Dradius%3A%204px%3B%0Amargin%2Dbottom%3A%2010px%3B%0A%7D%0A%2Epagedtable%20table%20%7B%0Awidth%3A%20100%25%3B%0Amax%2Dwidth%3A%20100%25%3B%0Amargin%3A%200%3B%0A%7D%0A%2Epagedtable%20th%20%7B%0Apadding%3A%200%205px%200%205px%3B%0Aborder%3A%20none%3B%0Aborder%2Dbottom%3A%202px%20solid%20%23dddddd%3B%0Amin%2Dwidth%3A%2045px%3B%0A%7D%0A%2Epagedtable%2Dempty%20th%20%7B%0Adisplay%3A%20none%3B%0A%7D%0A%2Epagedtable%20td%20%7B%0Apadding%3A%200%204px%200%204px%3B%0A%7D%0A%2Epagedtable%20%2Eeven%20%7B%0Abackground%2Dcolor%3A%20rgba%28140%2C%20140%2C%20140%2C%200%2E1%29%3B%0A%7D%0A%2Epagedtable%2Dpadding%2Dcol%20%7B%0Adisplay%3A%20none%3B%0A%7D%0A%2Epagedtable%20a%20%7B%0A%2Dwebkit%2Dtouch%2Dcallout%3A%20none%3B%0A%2Dwebkit%2Duser%2Dselect%3A%20none%3B%0A%2Dkhtml%2Duser%2Dselect%3A%20none%3B%0A%2Dmoz%2Duser%2Dselect%3A%20none%3B%0A%2Dms%2Duser%2Dselect%3A%20none%3B%0Auser%2Dselect%3A%20none%3B%0A%7D%0A%2Epagedtable%2Dindex%2Dnav%20%7B%0Acursor%3A%20pointer%3B%0Apadding%3A%200%205px%200%205px%3B%0Afloat%3A%20right%3B%0Aborder%3A%200%3B%0A%7D%0A%2Epagedtable%2Dindex%2Dnav%2Ddisabled%20%7B%0Acursor%3A%20default%3B%0Atext%2Ddecoration%3A%20none%3B%0Acolor%3A%20%23999%3B%0A%7D%0Aa%2Epagedtable%2Dindex%2Dnav%2Ddisabled%3Ahover%20%7B%0Atext%2Ddecoration%3A%20none%3B%0Acolor%3A%20%23999%3B%0A%7D%0A%2Epagedtable%2Dindexes%20%7B%0Acursor%3A%20pointer%3B%0Afloat%3A%20right%3B%0Aborder%3A%200%3B%0A%7D%0A%2Epagedtable%2Dindex%2Dcurrent%20%7B%0Acursor%3A%20default%3B%0Atext%2Ddecoration%3A%20none%3B%0Afont%2Dweight%3A%20bold%3B%0Acolor%3A%20%23333%3B%0Aborder%3A%200%3B%0A%7D%0Aa%2Epagedtable%2Dindex%2Dcurrent%3Ahover%20%7B%0Atext%2Ddecoration%3A%20none%3B%0Afont%2Dweight%3A%20bold%3B%0Acolor%3A%20%23333%3B%0A%7D%0A%2Epagedtable%2Dindex%20%7B%0Awidth%3A%2030px%3B%0Adisplay%3A%20inline%2Dblock%3B%0Atext%2Dalign%3A%20center%3B%0Aborder%3A%200%3B%0A%7D%0A%2Epagedtable%2Dindex%2Dseparator%2Dleft%20%7B%0Adisplay%3A%20inline%2Dblock%3B%0Acolor%3A%20%23333%3B%0Afont%2Dsize%3A%209px%3B%0Apadding%3A%200%200%200%200%3B%0Acursor%3A%20default%3B%0A%7D%0A%2Epagedtable%2Dindex%2Dseparator%2Dright%20%7B%0Adisplay%3A%20inline%2Dblock%3B%0Acolor%3A%20%23333%3B%0Afont%2Dsize%3A%209px%3B%0Apadding%3A%200%204px%200%200%3B%0Acursor%3A%20default%3B%0A%7D%0A%2Epagedtable%2Dfooter%20%7B%0Apadding%2Dtop%3A%204px%3B%0Apadding%2Dbottom%3A%205px%3B%0A%7D%0A%2Epagedtable%2Dnot%2Dempty%20%2Epagedtable%2Dfooter%20%7B%0Aborder%2Dtop%3A%202px%20solid%20%23dddddd%3B%0A%7D%0A%2Epagedtable%2Dinfo%20%7B%0Aoverflow%3A%20hidden%3B%0Acolor%3A%20%23999%3B%0Awhite%2Dspace%3A%20nowrap%3B%0Atext%2Doverflow%3A%20ellipsis%3B%0A%7D%0A%2Epagedtable%2Dheader%2Dname%20%7B%0Aoverflow%3A%20hidden%3B%0Atext%2Doverflow%3A%20ellipsis%3B%0A%7D%0A%2Epagedtable%2Dheader%2Dtype%20%7B%0Acolor%3A%20%23999%3B%0Afont%2Dweight%3A%20400%3B%0A%7D%0A%2Epagedtable%2Dna%2Dcell%20%7B%0Afont%2Dstyle%3A%20italic%3B%0Aopacity%3A%200%2E3%3B%0A%7D%0A" rel="stylesheet" />
<script src="data:application/javascript;base64,Ly8gUHJvZHVjdGlvbiBzdGVwcyBvZiBFQ01BLTI2MiwgRWRpdGlvbiA1LCAxNS40LjQuMTgKLy8gUmVmZXJlbmNlOiBodHRwOi8vZXM1LmdpdGh1Yi5pby8jeDE1LjQuNC4xOAppZiAoIUFycmF5LnByb3RvdHlwZS5mb3JFYWNoKSB7CgogIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoID0gZnVuY3Rpb24oY2FsbGJhY2ssIHRoaXNBcmcpIHsKCiAgICB2YXIgVCwgazsKCiAgICBpZiAodGhpcyA9PT0gbnVsbCkgewogICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCcgdGhpcyBpcyBudWxsIG9yIG5vdCBkZWZpbmVkJyk7CiAgICB9CgogICAgLy8gMS4gTGV0IE8gYmUgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRvT2JqZWN0KCkgcGFzc2luZyB0aGUKICAgIC8vIHx0aGlzfCB2YWx1ZSBhcyB0aGUgYXJndW1lbnQuCiAgICB2YXIgTyA9IE9iamVjdCh0aGlzKTsKCiAgICAvLyAyLiBMZXQgbGVuVmFsdWUgYmUgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBHZXQoKSBpbnRlcm5hbAogICAgLy8gbWV0aG9kIG9mIE8gd2l0aCB0aGUgYXJndW1lbnQgImxlbmd0aCIuCiAgICAvLyAzLiBMZXQgbGVuIGJlIHRvVWludDMyKGxlblZhbHVlKS4KICAgIHZhciBsZW4gPSBPLmxlbmd0aCA+Pj4gMDsKCiAgICAvLyA0LiBJZiBpc0NhbGxhYmxlKGNhbGxiYWNrKSBpcyBmYWxzZSwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgogICAgLy8gU2VlOiBodHRwOi8vZXM1LmdpdGh1Yi5jb20vI3g5LjExCiAgICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSAiZnVuY3Rpb24iKSB7CiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoY2FsbGJhY2sgKyAnIGlzIG5vdCBhIGZ1bmN0aW9uJyk7CiAgICB9CgogICAgLy8gNS4gSWYgdGhpc0FyZyB3YXMgc3VwcGxpZWQsIGxldCBUIGJlIHRoaXNBcmc7IGVsc2UgbGV0CiAgICAvLyBUIGJlIHVuZGVmaW5lZC4KICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSkgewogICAgICBUID0gdGhpc0FyZzsKICAgIH0KCiAgICAvLyA2LiBMZXQgayBiZSAwCiAgICBrID0gMDsKCiAgICAvLyA3LiBSZXBlYXQsIHdoaWxlIGsgPCBsZW4KICAgIHdoaWxlIChrIDwgbGVuKSB7CgogICAgICB2YXIga1ZhbHVlOwoKICAgICAgLy8gYS4gTGV0IFBrIGJlIFRvU3RyaW5nKGspLgogICAgICAvLyAgICBUaGlzIGlzIGltcGxpY2l0IGZvciBMSFMgb3BlcmFuZHMgb2YgdGhlIGluIG9wZXJhdG9yCiAgICAgIC8vIGIuIExldCBrUHJlc2VudCBiZSB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgdGhlIEhhc1Byb3BlcnR5CiAgICAgIC8vICAgIGludGVybmFsIG1ldGhvZCBvZiBPIHdpdGggYXJndW1lbnQgUGsuCiAgICAgIC8vICAgIFRoaXMgc3RlcCBjYW4gYmUgY29tYmluZWQgd2l0aCBjCiAgICAgIC8vIGMuIElmIGtQcmVzZW50IGlzIHRydWUsIHRoZW4KICAgICAgaWYgKGsgaW4gTykgewoKICAgICAgICAvLyBpLiBMZXQga1ZhbHVlIGJlIHRoZSByZXN1bHQgb2YgY2FsbGluZyB0aGUgR2V0IGludGVybmFsCiAgICAgICAgLy8gbWV0aG9kIG9mIE8gd2l0aCBhcmd1bWVudCBQay4KICAgICAgICBrVmFsdWUgPSBPW2tdOwoKICAgICAgICAvLyBpaS4gQ2FsbCB0aGUgQ2FsbCBpbnRlcm5hbCBtZXRob2Qgb2YgY2FsbGJhY2sgd2l0aCBUIGFzCiAgICAgICAgLy8gdGhlIHRoaXMgdmFsdWUgYW5kIGFyZ3VtZW50IGxpc3QgY29udGFpbmluZyBrVmFsdWUsIGssIGFuZCBPLgogICAgICAgIGNhbGxiYWNrLmNhbGwoVCwga1ZhbHVlLCBrLCBPKTsKICAgICAgfQogICAgICAvLyBkLiBJbmNyZWFzZSBrIGJ5IDEuCiAgICAgIGsrKzsKICAgIH0KICAgIC8vIDguIHJldHVybiB1bmRlZmluZWQKICB9Owp9CgovLyBQcm9kdWN0aW9uIHN0ZXBzIG9mIEVDTUEtMjYyLCBFZGl0aW9uIDUsIDE1LjQuNC4xOQovLyBSZWZlcmVuY2U6IGh0dHA6Ly9lczUuZ2l0aHViLmlvLyN4MTUuNC40LjE5CmlmICghQXJyYXkucHJvdG90eXBlLm1hcCkgewoKICBBcnJheS5wcm90b3R5cGUubWFwID0gZnVuY3Rpb24oY2FsbGJhY2ssIHRoaXNBcmcpIHsKCiAgICB2YXIgVCwgQSwgazsKCiAgICBpZiAodGhpcyA9PSBudWxsKSB7CiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJyB0aGlzIGlzIG51bGwgb3Igbm90IGRlZmluZWQnKTsKICAgIH0KCiAgICAvLyAxLiBMZXQgTyBiZSB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgVG9PYmplY3QgcGFzc2luZyB0aGUgfHRoaXN8CiAgICAvLyAgICB2YWx1ZSBhcyB0aGUgYXJndW1lbnQuCiAgICB2YXIgTyA9IE9iamVjdCh0aGlzKTsKCiAgICAvLyAyLiBMZXQgbGVuVmFsdWUgYmUgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBHZXQgaW50ZXJuYWwKICAgIC8vICAgIG1ldGhvZCBvZiBPIHdpdGggdGhlIGFyZ3VtZW50ICJsZW5ndGgiLgogICAgLy8gMy4gTGV0IGxlbiBiZSBUb1VpbnQzMihsZW5WYWx1ZSkuCiAgICB2YXIgbGVuID0gTy5sZW5ndGggPj4+IDA7CgogICAgLy8gNC4gSWYgSXNDYWxsYWJsZShjYWxsYmFjaykgaXMgZmFsc2UsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KICAgIC8vIFNlZTogaHR0cDovL2VzNS5naXRodWIuY29tLyN4OS4xMQogICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gJ2Z1bmN0aW9uJykgewogICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGNhbGxiYWNrICsgJyBpcyBub3QgYSBmdW5jdGlvbicpOwogICAgfQoKICAgIC8vIDUuIElmIHRoaXNBcmcgd2FzIHN1cHBsaWVkLCBsZXQgVCBiZSB0aGlzQXJnOyBlbHNlIGxldCBUIGJlIHVuZGVmaW5lZC4KICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSkgewogICAgICBUID0gdGhpc0FyZzsKICAgIH0KCiAgICAvLyA2LiBMZXQgQSBiZSBhIG5ldyBhcnJheSBjcmVhdGVkIGFzIGlmIGJ5IHRoZSBleHByZXNzaW9uIG5ldyBBcnJheShsZW4pCiAgICAvLyAgICB3aGVyZSBBcnJheSBpcyB0aGUgc3RhbmRhcmQgYnVpbHQtaW4gY29uc3RydWN0b3Igd2l0aCB0aGF0IG5hbWUgYW5kCiAgICAvLyAgICBsZW4gaXMgdGhlIHZhbHVlIG9mIGxlbi4KICAgIEEgPSBuZXcgQXJyYXkobGVuKTsKCiAgICAvLyA3LiBMZXQgayBiZSAwCiAgICBrID0gMDsKCiAgICAvLyA4LiBSZXBlYXQsIHdoaWxlIGsgPCBsZW4KICAgIHdoaWxlIChrIDwgbGVuKSB7CgogICAgICB2YXIga1ZhbHVlLCBtYXBwZWRWYWx1ZTsKCiAgICAgIC8vIGEuIExldCBQayBiZSBUb1N0cmluZyhrKS4KICAgICAgLy8gICBUaGlzIGlzIGltcGxpY2l0IGZvciBMSFMgb3BlcmFuZHMgb2YgdGhlIGluIG9wZXJhdG9yCiAgICAgIC8vIGIuIExldCBrUHJlc2VudCBiZSB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgdGhlIEhhc1Byb3BlcnR5IGludGVybmFsCiAgICAgIC8vICAgIG1ldGhvZCBvZiBPIHdpdGggYXJndW1lbnQgUGsuCiAgICAgIC8vICAgVGhpcyBzdGVwIGNhbiBiZSBjb21iaW5lZCB3aXRoIGMKICAgICAgLy8gYy4gSWYga1ByZXNlbnQgaXMgdHJ1ZSwgdGhlbgogICAgICBpZiAoayBpbiBPKSB7CgogICAgICAgIC8vIGkuIExldCBrVmFsdWUgYmUgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBHZXQgaW50ZXJuYWwKICAgICAgICAvLyAgICBtZXRob2Qgb2YgTyB3aXRoIGFyZ3VtZW50IFBrLgogICAgICAgIGtWYWx1ZSA9IE9ba107CgogICAgICAgIC8vIGlpLiBMZXQgbWFwcGVkVmFsdWUgYmUgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBDYWxsIGludGVybmFsCiAgICAgICAgLy8gICAgIG1ldGhvZCBvZiBjYWxsYmFjayB3aXRoIFQgYXMgdGhlIHRoaXMgdmFsdWUgYW5kIGFyZ3VtZW50CiAgICAgICAgLy8gICAgIGxpc3QgY29udGFpbmluZyBrVmFsdWUsIGssIGFuZCBPLgogICAgICAgIG1hcHBlZFZhbHVlID0gY2FsbGJhY2suY2FsbChULCBrVmFsdWUsIGssIE8pOwoKICAgICAgICAvLyBpaWkuIENhbGwgdGhlIERlZmluZU93blByb3BlcnR5IGludGVybmFsIG1ldGhvZCBvZiBBIHdpdGggYXJndW1lbnRzCiAgICAgICAgLy8gUGssIFByb3BlcnR5IERlc2NyaXB0b3IKICAgICAgICAvLyB7IFZhbHVlOiBtYXBwZWRWYWx1ZSwKICAgICAgICAvLyAgIFdyaXRhYmxlOiB0cnVlLAogICAgICAgIC8vICAgRW51bWVyYWJsZTogdHJ1ZSwKICAgICAgICAvLyAgIENvbmZpZ3VyYWJsZTogdHJ1ZSB9LAogICAgICAgIC8vIGFuZCBmYWxzZS4KCiAgICAgICAgLy8gSW4gYnJvd3NlcnMgdGhhdCBzdXBwb3J0IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSwgdXNlIHRoZSBmb2xsb3dpbmc6CiAgICAgICAgLy8gT2JqZWN0LmRlZmluZVByb3BlcnR5KEEsIGssIHsKICAgICAgICAvLyAgIHZhbHVlOiBtYXBwZWRWYWx1ZSwKICAgICAgICAvLyAgIHdyaXRhYmxlOiB0cnVlLAogICAgICAgIC8vICAgZW51bWVyYWJsZTogdHJ1ZSwKICAgICAgICAvLyAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQogICAgICAgIC8vIH0pOwoKICAgICAgICAvLyBGb3IgYmVzdCBicm93c2VyIHN1cHBvcnQsIHVzZSB0aGUgZm9sbG93aW5nOgogICAgICAgIEFba10gPSBtYXBwZWRWYWx1ZTsKICAgICAgfQogICAgICAvLyBkLiBJbmNyZWFzZSBrIGJ5IDEuCiAgICAgIGsrKzsKICAgIH0KCiAgICAvLyA5LiByZXR1cm4gQQogICAgcmV0dXJuIEE7CiAgfTsKfQoKdmFyIFBhZ2VkVGFibGUgPSBmdW5jdGlvbiAocGFnZWRUYWJsZSkgewogIHZhciBtZSA9IHRoaXM7CgogIHZhciBzb3VyY2UgPSBmdW5jdGlvbihwYWdlZFRhYmxlKSB7CiAgICB2YXIgc291cmNlRWxlbXMgPSBbXS5zbGljZS5jYWxsKHBhZ2VkVGFibGUuY2hpbGRyZW4pLmZpbHRlcihmdW5jdGlvbihlKSB7CiAgICAgIHJldHVybiBlLmhhc0F0dHJpYnV0ZSgiZGF0YS1wYWdlZHRhYmxlLXNvdXJjZSIpOwogICAgfSk7CgogICAgaWYgKHNvdXJjZUVsZW1zID09PSBudWxsIHx8IHNvdXJjZUVsZW1zLmxlbmd0aCAhPT0gMSkgewogICAgICB0aHJvdygiQSBzaW5nbGUgZGF0YS1wYWdlZHRhYmxlLXNvdXJjZSB3YXMgbm90IGZvdW5kIik7CiAgICB9CgogICAgcmV0dXJuIEpTT04ucGFyc2Uoc291cmNlRWxlbXNbMF0uaW5uZXJIVE1MKTsKICB9KHBhZ2VkVGFibGUpOwoKICB2YXIgb3B0aW9ucyA9IGZ1bmN0aW9uKHNvdXJjZSkgewogICAgdmFyIG9wdGlvbnMgPSB0eXBlb2Yoc291cmNlLm9wdGlvbnMpICE9PSAidW5kZWZpbmVkIiAmJgogICAgICBzb3VyY2Uub3B0aW9ucyAhPT0gbnVsbCA/IHNvdXJjZS5vcHRpb25zIDoge307CgogICAgdmFyIGNvbHVtbnMgPSB0eXBlb2Yob3B0aW9ucy5jb2x1bW5zKSAhPT0gInVuZGVmaW5lZCIgPyBvcHRpb25zLmNvbHVtbnMgOiB7fTsKICAgIHZhciByb3dzID0gdHlwZW9mKG9wdGlvbnMucm93cykgIT09ICJ1bmRlZmluZWQiID8gb3B0aW9ucy5yb3dzIDoge307CgogICAgdmFyIHBvc2l0aXZlSW50T3JOdWxsID0gZnVuY3Rpb24odmFsdWUpIHsKICAgICAgcmV0dXJuIHBhcnNlSW50KHZhbHVlKSA+PSAwID8gcGFyc2VJbnQodmFsdWUpIDogbnVsbDsKICAgIH07CgogICAgcmV0dXJuIHsKICAgICAgcGFnZXM6IHBvc2l0aXZlSW50T3JOdWxsKG9wdGlvbnMucGFnZXMpLAogICAgICByb3dzOiB7CiAgICAgICAgbWluOiBwb3NpdGl2ZUludE9yTnVsbChyb3dzLm1pbiksCiAgICAgICAgbWF4OiBwb3NpdGl2ZUludE9yTnVsbChyb3dzLm1heCksCiAgICAgICAgdG90YWw6IHBvc2l0aXZlSW50T3JOdWxsKHJvd3MudG90YWwpCiAgICAgIH0sCiAgICAgIGNvbHVtbnM6IHsKICAgICAgICBtaW46IHBvc2l0aXZlSW50T3JOdWxsKGNvbHVtbnMubWluKSwKICAgICAgICBtYXg6IHBvc2l0aXZlSW50T3JOdWxsKGNvbHVtbnMubWF4KSwKICAgICAgICB0b3RhbDogcG9zaXRpdmVJbnRPck51bGwoY29sdW1ucy50b3RhbCkKICAgICAgfQogICAgfTsKICB9KHNvdXJjZSk7CgogIHZhciBNZWFzdXJlciA9IGZ1bmN0aW9uKCkgewoKICAgIC8vIHNldCBzb21lIGRlZmF1bHQgaW5pdGlhbCB2YWx1ZXMgdGhhdCB3aWxsIGdldCBhZGp1c3RlZCBpbiBydW50aW1lCiAgICBtZS5tZWFzdXJlcyA9IHsKICAgICAgcGFkZGluZzogMTIsCiAgICAgIGNoYXJhY3RlcjogOCwKICAgICAgaGVpZ2h0OiAxNSwKICAgICAgZGVmYXVsdHM6IHRydWUKICAgIH07CgogICAgbWUuY2FsY3VsYXRlID0gZnVuY3Rpb24obWVhc3VyZXNDZWxsKSB7CiAgICAgIGlmICghbWUubWVhc3VyZXMuZGVmYXVsdHMpCiAgICAgICAgcmV0dXJuOwoKICAgICAgdmFyIG1lYXN1cmVzQ2VsbFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUobWVhc3VyZXNDZWxsLCBudWxsKTsKCiAgICAgIHZhciBuZXdQYWRkaW5nID0gcGFyc2VQYWRkaW5nKG1lYXN1cmVzQ2VsbFN0eWxlLnBhZGRpbmdMZWZ0KSArCiAgICAgICAgICAgIHBhcnNlUGFkZGluZyhtZWFzdXJlc0NlbGxTdHlsZS5wYWRkaW5nUmlnaHQpOwoKICAgICAgdmFyIHNhbXBsZVN0cmluZyA9ICJBQkNERUZHSElKMDEyMzQ1Njc4OSI7CiAgICAgIHZhciBuZXdDaGFyYWN0ZXIgPSBNYXRoLmNlaWwobWVhc3VyZXNDZWxsLmNsaWVudFdpZHRoIC8gc2FtcGxlU3RyaW5nLmxlbmd0aCk7CgogICAgICBpZiAobmV3UGFkZGluZyA8PSAwIHx8IG5ld0NoYXJhY3RlciA8PSAwKQogICAgICAgIHJldHVybjsKCiAgICAgIG1lLm1lYXN1cmVzLnBhZGRpbmcgPSBuZXdQYWRkaW5nOwogICAgICBtZS5tZWFzdXJlcy5jaGFyYWN0ZXIgPSBuZXdDaGFyYWN0ZXI7CiAgICAgIG1lLm1lYXN1cmVzLmhlaWdodCA9IG1lYXN1cmVzQ2VsbC5jbGllbnRIZWlnaHQ7CiAgICAgIG1lLm1lYXN1cmVzLmRlZmF1bHRzID0gZmFsc2U7CiAgICB9OwoKICAgIHJldHVybiBtZTsKICB9OwoKICB2YXIgUGFnZSA9IGZ1bmN0aW9uKGRhdGEsIG9wdGlvbnMpIHsKICAgIHZhciBtZSA9IHRoaXM7CgogICAgdmFyIGRlZmF1bHRzID0gewogICAgICBtYXg6IDcsCiAgICAgIHJvd3M6IDEwCiAgICB9OwoKICAgIHZhciB0b3RhbFBhZ2VzID0gZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBNYXRoLmNlaWwoZGF0YS5sZW5ndGggLyBtZS5yb3dzKTsKICAgIH07CgogICAgbWUubnVtYmVyID0gMDsKICAgIG1lLm1heCA9IG9wdGlvbnMucGFnZXMgIT09IG51bGwgPyBvcHRpb25zLnBhZ2VzIDogZGVmYXVsdHMubWF4OwogICAgbWUudmlzaWJsZSA9IG1lLm1heDsKICAgIG1lLnJvd3MgPSBvcHRpb25zLnJvd3MubWluICE9PSBudWxsID8gb3B0aW9ucy5yb3dzLm1pbiA6IGRlZmF1bHRzLnJvd3M7CiAgICBtZS50b3RhbCA9IHRvdGFsUGFnZXMoKTsKCiAgICBtZS5zZXRSb3dzID0gZnVuY3Rpb24obmV3Um93cykgewogICAgICBtZS5yb3dzID0gbmV3Um93czsKICAgICAgbWUudG90YWwgPSB0b3RhbFBhZ2VzKCk7CiAgICB9OwoKICAgIG1lLnNldFBhZ2VOdW1iZXIgPSBmdW5jdGlvbihuZXdQYWdlTnVtYmVyKSB7CiAgICAgIGlmIChuZXdQYWdlTnVtYmVyIDwgMCkgbmV3UGFnZU51bWJlciA9IDA7CiAgICAgIGlmIChuZXdQYWdlTnVtYmVyID49IG1lLnRvdGFsKSBuZXdQYWdlTnVtYmVyID0gbWUudG90YWwgLSAxOwoKICAgICAgbWUubnVtYmVyID0gbmV3UGFnZU51bWJlcjsKICAgIH07CgogICAgbWUuc2V0VmlzaWJsZVBhZ2VzID0gZnVuY3Rpb24odmlzaWJsZVBhZ2VzKSB7CiAgICAgIG1lLnZpc2libGUgPSBNYXRoLm1pbihtZS5tYXgsIHZpc2libGVQYWdlcyk7CiAgICAgIG1lLnNldFBhZ2VOdW1iZXIobWUubnVtYmVyKTsKICAgIH07CgogICAgbWUuZ2V0VmlzaWJsZVBhZ2VSYW5nZSA9IGZ1bmN0aW9uKCkgewogICAgICB2YXIgc3RhcnQgPSBtZS5udW1iZXIgLSBNYXRoLm1heChNYXRoLmZsb29yKChtZS52aXNpYmxlIC0gMSkgLyAyKSwgMCk7CiAgICAgIHZhciBlbmQgPSBtZS5udW1iZXIgKyBNYXRoLmZsb29yKG1lLnZpc2libGUgLyAyKSArIDE7CiAgICAgIHZhciBwYWdlQ291bnQgPSBtZS50b3RhbDsKCiAgICAgIGlmIChzdGFydCA8IDApIHsKICAgICAgICB2YXIgZGlmZlRvU3RhcnQgPSAwIC0gc3RhcnQ7CiAgICAgICAgc3RhcnQgKz0gZGlmZlRvU3RhcnQ7CiAgICAgICAgZW5kICs9IGRpZmZUb1N0YXJ0OwogICAgICB9CgogICAgICBpZiAoZW5kID4gcGFnZUNvdW50KSB7CiAgICAgICAgdmFyIGRpZmZUb0VuZCA9IGVuZCAtIHBhZ2VDb3VudDsKICAgICAgICBzdGFydCAtPSBkaWZmVG9FbmQ7CiAgICAgICAgZW5kIC09IGRpZmZUb0VuZDsKICAgICAgfQoKICAgICAgc3RhcnQgPSBzdGFydCA8IDAgPyAwIDogc3RhcnQ7CiAgICAgIGVuZCA9IGVuZCA+PSBwYWdlQ291bnQgPyBwYWdlQ291bnQgOiBlbmQ7CgogICAgICB2YXIgZmlyc3QgPSBmYWxzZTsKICAgICAgdmFyIGxhc3QgPSBmYWxzZTsKCiAgICAgIGlmIChzdGFydCA+IDAgJiYgbWUudmlzaWJsZSA+IDEpIHsKICAgICAgICBzdGFydCA9IHN0YXJ0ICsgMTsKICAgICAgICBmaXJzdCA9IHRydWU7CiAgICAgIH0KCiAgICAgIGlmIChlbmQgPCBwYWdlQ291bnQgJiYgbWUudmlzaWJsZSA+IDIpIHsKICAgICAgICBlbmQgPSBlbmQgLSAxOwogICAgICAgIGxhc3QgPSB0cnVlOwogICAgICB9CgogICAgICByZXR1cm4gewogICAgICAgIGZpcnN0OiBmaXJzdCwKICAgICAgICBzdGFydDogc3RhcnQsCiAgICAgICAgZW5kOiBlbmQsCiAgICAgICAgbGFzdDogbGFzdAogICAgICB9OwogICAgfTsKCiAgICBtZS5nZXRSb3dTdGFydCA9IGZ1bmN0aW9uKCkgewogICAgICB2YXIgcm93U3RhcnQgPSBwYWdlLm51bWJlciAqIHBhZ2Uucm93czsKICAgICAgaWYgKHJvd1N0YXJ0IDwgMCkKICAgICAgICByb3dTdGFydCA9IDA7CgogICAgICByZXR1cm4gcm93U3RhcnQ7CiAgICB9OwoKICAgIG1lLmdldFJvd0VuZCA9IGZ1bmN0aW9uKCkgewogICAgICB2YXIgcm93U3RhcnQgPSBtZS5nZXRSb3dTdGFydCgpOwogICAgICByZXR1cm4gTWF0aC5taW4ocm93U3RhcnQgKyBtZS5yb3dzLCBkYXRhLmxlbmd0aCk7CiAgICB9OwoKICAgIG1lLmdldFBhZGRpbmdSb3dzID0gZnVuY3Rpb24oKSB7CiAgICAgIHZhciByb3dTdGFydCA9IG1lLmdldFJvd1N0YXJ0KCk7CiAgICAgIHZhciByb3dFbmQgPSBtZS5nZXRSb3dFbmQoKTsKICAgICAgcmV0dXJuIGRhdGEubGVuZ3RoID4gbWUucm93cyA/IG1lLnJvd3MgLSAocm93RW5kIC0gcm93U3RhcnQpIDogMDsKICAgIH07CiAgfTsKCiAgdmFyIENvbHVtbnMgPSBmdW5jdGlvbihkYXRhLCBjb2x1bW5zLCBvcHRpb25zKSB7CiAgICB2YXIgbWUgPSB0aGlzOwoKICAgIG1lLmRlZmF1bHRzID0gewogICAgICBtaW46IDUKICAgIH07CgogICAgbWUubnVtYmVyID0gMDsKICAgIG1lLnZpc2libGUgPSAwOwogICAgbWUudG90YWwgPSBjb2x1bW5zLmxlbmd0aDsKICAgIG1lLnN1YnNldCA9IFtdOwogICAgbWUucGFkZGluZyA9IDA7CiAgICBtZS5taW4gPSBvcHRpb25zLmNvbHVtbnMubWluICE9PSBudWxsID8gb3B0aW9ucy5jb2x1bW5zLm1pbiA6IG1lLmRlZmF1bHRzLm1pbjsKICAgIG1lLm1heCA9IG9wdGlvbnMuY29sdW1ucy5tYXggIT09IG51bGwgPyBvcHRpb25zLmNvbHVtbnMubWF4IDogbnVsbDsKICAgIG1lLndpZHRocyA9IHt9OwoKICAgIHZhciB3aWR0aHNMb29rQWhlYWQgPSBNYXRoLm1heCgxMDAsIG9wdGlvbnMucm93cy5taW4pOwogICAgdmFyIHBhZGRpbmdDb2xDaGFycyA9IDEwOwoKICAgIG1lLmVtcHR5TmFtZXMgPSBmdW5jdGlvbigpIHsKICAgICAgY29sdW1ucy5mb3JFYWNoKGZ1bmN0aW9uKGNvbHVtbikgewogICAgICAgIGlmIChjb2x1bW5zLmxhYmVsICE9PSBudWxsICYmIGNvbHVtbnMubGFiZWwgIT09ICIiKQogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9KTsKCiAgICAgIHJldHVybiB0cnVlOwogICAgfTsKCiAgICB2YXIgcGFyc2VQYWRkaW5nID0gZnVuY3Rpb24odmFsdWUpIHsKICAgICAgcmV0dXJuIHBhcnNlSW50KHZhbHVlKSA+PSAwID8gcGFyc2VJbnQodmFsdWUpIDogMDsKICAgIH07CgogICAgbWUuY2FsY3VsYXRlV2lkdGhzID0gZnVuY3Rpb24obWVhc3VyZXMpIHsKICAgICAgY29sdW1ucy5mb3JFYWNoKGZ1bmN0aW9uKGNvbHVtbikgewogICAgICAgIHZhciBtYXhDaGFycyA9IE1hdGgubWF4KAogICAgICAgICAgY29sdW1uLmxhYmVsLnRvU3RyaW5nKCkubGVuZ3RoLAogICAgICAgICAgY29sdW1uLnR5cGUudG9TdHJpbmcoKS5sZW5ndGgKICAgICAgICApOwoKICAgICAgICBmb3IgKHZhciBpZHhSb3cgPSAwOyBpZHhSb3cgPCBNYXRoLm1pbih3aWR0aHNMb29rQWhlYWQsIGRhdGEubGVuZ3RoKTsgaWR4Um93KyspIHsKICAgICAgICAgIG1heENoYXJzID0gTWF0aC5tYXgobWF4Q2hhcnMsIGRhdGFbaWR4Um93XVtjb2x1bW4ubmFtZS50b1N0cmluZygpXS5sZW5ndGgpOwogICAgICAgIH0KCiAgICAgICAgbWUud2lkdGhzW2NvbHVtbi5uYW1lXSA9IHsKICAgICAgICAgIC8vIHdpZHRoIGluIGNoYXJhY3RlcnMKICAgICAgICAgIGNoYXJzOiBtYXhDaGFycywKICAgICAgICAgIC8vIHdpZHRoIGZvciB0aGUgaW5uZXIgaHRtbCBjb2x1bW5zCiAgICAgICAgICBpbm5lcjogbWF4Q2hhcnMgKiBtZWFzdXJlcy5jaGFyYWN0ZXIsCiAgICAgICAgICAvLyB3aWR0aCBhZGRpbmcgb3V0ZXIgc3R5bGVzIGxpa2UgcGFkZGluZwogICAgICAgICAgb3V0ZXI6IG1heENoYXJzICogbWVhc3VyZXMuY2hhcmFjdGVyICsgbWVhc3VyZXMucGFkZGluZwogICAgICAgIH07CiAgICAgIH0pOwogICAgfTsKCiAgICBtZS5nZXRXaWR0aCA9IGZ1bmN0aW9uKCkgewogICAgICB2YXIgd2lkdGhPdXRlciA9IDA7CiAgICAgIGZvciAodmFyIGlkeENvbCA9IDA7IGlkeENvbCA8IG1lLnN1YnNldC5sZW5ndGg7IGlkeENvbCsrKSB7CiAgICAgICAgdmFyIGNvbHVtbk5hbWUgPSBtZS5zdWJzZXRbaWR4Q29sXS5uYW1lOwogICAgICAgIHdpZHRoT3V0ZXIgPSB3aWR0aE91dGVyICsgbWUud2lkdGhzW2NvbHVtbk5hbWVdLm91dGVyOwogICAgICB9CgogICAgICB3aWR0aE91dGVyID0gd2lkdGhPdXRlciArIG1lLnBhZGRpbmcgKiBwYWRkaW5nQ29sQ2hhcnMgKiBtZWFzdXJlci5tZWFzdXJlcy5jaGFyYWN0ZXI7CgogICAgICBpZiAobWUuaGFzTW9yZUxlZnRDb2x1bW5zKCkpIHsKICAgICAgICB3aWR0aE91dGVyID0gd2lkdGhPdXRlciArIGNvbHVtbk5hdmlnYXRpb25XaWR0aFBYICsgbWVhc3VyZXIubWVhc3VyZXMucGFkZGluZzsKICAgICAgfQoKICAgICAgaWYgKG1lLmhhc01vcmVSaWdodENvbHVtbnMoKSkgewogICAgICAgIHdpZHRoT3V0ZXIgPSB3aWR0aE91dGVyICsgY29sdW1uTmF2aWdhdGlvbldpZHRoUFggKyBtZWFzdXJlci5tZWFzdXJlcy5wYWRkaW5nOwogICAgICB9CgogICAgICByZXR1cm4gd2lkdGhPdXRlcjsKICAgIH07CgogICAgbWUudXBkYXRlU2xpY2UgPSBmdW5jdGlvbigpIHsKICAgICAgaWYgKG1lLm51bWJlciArIG1lLnZpc2libGUgPj0gbWUudG90YWwpCiAgICAgICAgbWUubnVtYmVyID0gbWUudG90YWwgLSBtZS52aXNpYmxlOwoKICAgICAgaWYgKG1lLm51bWJlciA8IDApIG1lLm51bWJlciA9IDA7CgogICAgICBtZS5zdWJzZXQgPSBjb2x1bW5zLnNsaWNlKG1lLm51bWJlciwgTWF0aC5taW4obWUubnVtYmVyICsgbWUudmlzaWJsZSwgbWUudG90YWwpKTsKCiAgICAgIG1lLnN1YnNldCA9IG1lLnN1YnNldC5tYXAoZnVuY3Rpb24oY29sdW1uKSB7CiAgICAgICAgT2JqZWN0LmtleXMoY29sdW1uKS5mb3JFYWNoKGZ1bmN0aW9uKGNvbEtleSkgewogICAgICAgICAgY29sdW1uW2NvbEtleV0gPSBjb2x1bW5bY29sS2V5XSA9PT0gbnVsbCA/ICIiIDogY29sdW1uW2NvbEtleV0udG9TdHJpbmcoKTsKICAgICAgICB9KTsKCiAgICAgICAgY29sdW1uLndpZHRoID0gbnVsbDsKICAgICAgICByZXR1cm4gY29sdW1uOwogICAgICB9KTsKICAgIH07CgogICAgbWUuc2V0VmlzaWJsZUNvbHVtbnMgPSBmdW5jdGlvbihjb2x1bW5OdW1iZXIsIG5ld1Zpc2libGVDb2x1bW5zLCBwYWRkaW5nQ291bnQpIHsKICAgICAgbWUubnVtYmVyID0gY29sdW1uTnVtYmVyOwogICAgICBtZS52aXNpYmxlID0gbmV3VmlzaWJsZUNvbHVtbnM7CiAgICAgIG1lLnBhZGRpbmcgPSBwYWRkaW5nQ291bnQ7CgogICAgICBtZS51cGRhdGVTbGljZSgpOwogICAgfTsKCiAgICBtZS5pbmNDb2x1bW5OdW1iZXIgPSBmdW5jdGlvbihpbmNyZW1lbnQpIHsKICAgICAgbWUubnVtYmVyID0gbWUubnVtYmVyICsgaW5jcmVtZW50OwogICAgfTsKCiAgICBtZS5zZXRDb2x1bW5OdW1iZXIgPSBmdW5jdGlvbihuZXdOdW1iZXIpIHsKICAgICAgbWUubnVtYmVyID0gbmV3TnVtYmVyOwogICAgfTsKCiAgICBtZS5zZXRQYWRkaW5nQ291bnQgPSBmdW5jdGlvbihuZXdQYWRkaW5nKSB7CiAgICAgIG1lLnBhZGRpbmcgPSBuZXdQYWRkaW5nOwogICAgfTsKCiAgICBtZS5nZXRQYWRkaW5nQ291bnQgPSBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIG1lLnBhZGRpbmc7CiAgICB9OwoKICAgIG1lLmhhc01vcmVMZWZ0Q29sdW1ucyA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gbWUubnVtYmVyID4gMDsKICAgIH07CgogICAgbWUuaGFzTW9yZVJpZ2h0Q29sdW1ucyA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gbWUubnVtYmVyICsgbWUudmlzaWJsZSA8IG1lLnRvdGFsOwogICAgfTsKCiAgICBtZS51cGRhdGVTbGljZSgwKTsKICAgIHJldHVybiBtZTsKICB9OwoKICB2YXIgZGF0YSA9IHNvdXJjZS5kYXRhOwogIHZhciBwYWdlID0gbmV3IFBhZ2UoZGF0YSwgb3B0aW9ucyk7CiAgdmFyIG1lYXN1cmVyID0gbmV3IE1lYXN1cmVyKGRhdGEsIG9wdGlvbnMpOwogIHZhciBjb2x1bW5zID0gbmV3IENvbHVtbnMoZGF0YSwgc291cmNlLmNvbHVtbnMsIG9wdGlvbnMpOwoKICB2YXIgdGFibGUgPSBudWxsOwogIHZhciB0YWJsZURpdiA9IG51bGw7CiAgdmFyIGhlYWRlciA9IG51bGw7CiAgdmFyIGZvb3RlciA9IG51bGw7CiAgdmFyIHRib2R5ID0gbnVsbDsKCiAgLy8gQ2FjaGVzIHBhZ2VkVGFibGUuY2xpZW50V2lkdGgsIHNwZWNpYWxseSBmb3Igd2Via2l0CiAgdmFyIGNhY2hlZFBhZ2VkVGFibGVDbGllbnRXaWR0aCA9IG51bGw7CgogIHZhciBvbkNoYW5nZUNhbGxiYWNrcyA9IFtdOwoKICB2YXIgY2xlYXJTZWxlY3Rpb24gPSBmdW5jdGlvbigpIHsKICAgIGlmKGRvY3VtZW50LnNlbGVjdGlvbiAmJiBkb2N1bWVudC5zZWxlY3Rpb24uZW1wdHkpIHsKICAgICAgZG9jdW1lbnQuc2VsZWN0aW9uLmVtcHR5KCk7CiAgICB9IGVsc2UgaWYod2luZG93LmdldFNlbGVjdGlvbikgewogICAgICB2YXIgc2VsID0gd2luZG93LmdldFNlbGVjdGlvbigpOwogICAgICBzZWwucmVtb3ZlQWxsUmFuZ2VzKCk7CiAgICB9CiAgfTsKCiAgdmFyIGNvbHVtbk5hdmlnYXRpb25XaWR0aFBYID0gNTsKCiAgdmFyIHJlbmRlckNvbHVtbk5hdmlnYXRpb24gPSBmdW5jdGlvbihpbmNyZW1lbnQsIGJhY2t3YXJkcykgewogICAgdmFyIGFycm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICBhcnJvdy5zZXRBdHRyaWJ1dGUoInN0eWxlIiwKICAgICAgImJvcmRlci10b3A6ICIgKyBjb2x1bW5OYXZpZ2F0aW9uV2lkdGhQWCArICJweCBzb2xpZCB0cmFuc3BhcmVudDsiICsKICAgICAgImJvcmRlci1ib3R0b206ICIgKyBjb2x1bW5OYXZpZ2F0aW9uV2lkdGhQWCArICJweCBzb2xpZCB0cmFuc3BhcmVudDsiICsKICAgICAgImJvcmRlci0iICsgKGJhY2t3YXJkcyA/ICJyaWdodCIgOiAibGVmdCIpICsgIjogIiArIGNvbHVtbk5hdmlnYXRpb25XaWR0aFBYICsgInB4IHNvbGlkOyIpOwoKICAgIHZhciBoZWFkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0aCIpOwogICAgaGVhZGVyLmFwcGVuZENoaWxkKGFycm93KTsKICAgIGhlYWRlci5zZXRBdHRyaWJ1dGUoInN0eWxlIiwKICAgICAgImN1cnNvcjogcG9pbnRlcjsiICsKICAgICAgInZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IiArCiAgICAgICJtaW4td2lkdGg6ICIgKyBjb2x1bW5OYXZpZ2F0aW9uV2lkdGhQWCArICJweDsiICsKICAgICAgIndpZHRoOiAiICsgY29sdW1uTmF2aWdhdGlvbldpZHRoUFggKyAicHg7Iik7CgogICAgaGVhZGVyLm9uY2xpY2sgPSBmdW5jdGlvbigpIHsKICAgICAgY29sdW1ucy5pbmNDb2x1bW5OdW1iZXIoYmFja3dhcmRzID8gLTEgOiBpbmNyZW1lbnQpOwoKICAgICAgbWUuYW5pbWF0ZUNvbHVtbnMoYmFja3dhcmRzKTsKICAgICAgcmVuZGVyRm9vdGVyKCk7CgogICAgICBjbGVhclNlbGVjdGlvbigpOwogICAgICB0cmlnZ2VyT25DaGFuZ2UoKTsKICAgIH07CgogICAgcmV0dXJuIGhlYWRlcjsKICB9OwoKICB2YXIgbWF4Q29sdW1uV2lkdGggPSBmdW5jdGlvbih3aWR0aCkgewogICAgdmFyIHBhZGRpbmcgPSA4MDsKICAgIHZhciBjb2x1bW5NYXggPSBNYXRoLm1heChjYWNoZWRQYWdlZFRhYmxlQ2xpZW50V2lkdGggLSBwYWRkaW5nLCAwKTsKCiAgICByZXR1cm4gcGFyc2VJbnQod2lkdGgpID4gMCA/CiAgICAgIE1hdGgubWluKGNvbHVtbk1heCwgcGFyc2VJbnQod2lkdGgpKSArICJweCIgOgogICAgICBjb2x1bW5NYXggKyAicHgiOwogIH07CgogIHZhciBjbGVhckhlYWRlciA9IGZ1bmN0aW9uKCkgewogICAgdmFyIHRoZWFkID0gcGFnZWRUYWJsZS5xdWVyeVNlbGVjdG9yQWxsKCJ0aGVhZCIpWzBdOwogICAgdGhlYWQuaW5uZXJIVE1MID0gIiI7CiAgfTsKCiAgdmFyIHJlbmRlckhlYWRlciA9IGZ1bmN0aW9uKGNsZWFyKSB7CiAgICBjYWNoZWRQYWdlZFRhYmxlQ2xpZW50V2lkdGggPSBwYWdlZFRhYmxlLmNsaWVudFdpZHRoOwoKICAgIHZhciBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKCiAgICBoZWFkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ciIpOwogICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoaGVhZGVyKTsKCiAgICBpZiAoY29sdW1ucy5udW1iZXIgPiAwKQogICAgICBoZWFkZXIuYXBwZW5kQ2hpbGQocmVuZGVyQ29sdW1uTmF2aWdhdGlvbigtY29sdW1ucy52aXNpYmxlLCB0cnVlKSk7CgogICAgY29sdW1ucy5zdWJzZXQgPSBjb2x1bW5zLnN1YnNldC5tYXAoZnVuY3Rpb24oY29sdW1uRGF0YSkgewogICAgICB2YXIgY29sdW1uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGgiKTsKICAgICAgY29sdW1uLnNldEF0dHJpYnV0ZSgiYWxpZ24iLCBjb2x1bW5EYXRhLmFsaWduKTsKICAgICAgY29sdW1uLnN0eWxlLnRleHRBbGlnbiA9IGNvbHVtbkRhdGEuYWxpZ247CgogICAgICBjb2x1bW4uc3R5bGUubWF4V2lkdGggPSBtYXhDb2x1bW5XaWR0aChudWxsKTsKICAgICAgaWYgKGNvbHVtbkRhdGEud2lkdGgpIHsKICAgICAgICBjb2x1bW4uc3R5bGUubWluV2lkdGggPQogICAgICAgICAgY29sdW1uLnN0eWxlLm1heFdpZHRoID0gbWF4Q29sdW1uV2lkdGgoY29sdW1uRGF0YS53aWR0aCk7CiAgICAgIH0KCiAgICAgIHZhciBjb2x1bW5OYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgIGNvbHVtbk5hbWUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJwYWdlZHRhYmxlLWhlYWRlci1uYW1lIik7CiAgICAgIGlmIChjb2x1bW5EYXRhLmxhYmVsID09PSAiIikgewogICAgICAgIGNvbHVtbk5hbWUuaW5uZXJIVE1MID0gIiZuYnNwOyI7CiAgICAgIH0KICAgICAgZWxzZSB7CiAgICAgICAgY29sdW1uTmFtZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjb2x1bW5EYXRhLmxhYmVsKSk7CiAgICAgIH0KICAgICAgY29sdW1uLmFwcGVuZENoaWxkKGNvbHVtbk5hbWUpOwoKICAgICAgdmFyIGNvbHVtblR5cGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgY29sdW1uVHlwZS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgInBhZ2VkdGFibGUtaGVhZGVyLXR5cGUiKTsKICAgICAgaWYgKGNvbHVtbkRhdGEudHlwZSA9PT0gIiIpIHsKICAgICAgICBjb2x1bW5UeXBlLmlubmVySFRNTCA9ICImbmJzcDsiOwogICAgICB9CiAgICAgIGVsc2UgewogICAgICAgIGNvbHVtblR5cGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIjwiICsgY29sdW1uRGF0YS50eXBlICsgIj4iKSk7CiAgICAgIH0KICAgICAgY29sdW1uLmFwcGVuZENoaWxkKGNvbHVtblR5cGUpOwoKICAgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNvbHVtbik7CgogICAgICBjb2x1bW5EYXRhLmVsZW1lbnQgPSBjb2x1bW47CgogICAgICByZXR1cm4gY29sdW1uRGF0YTsKICAgIH0pOwoKICAgIGZvciAodmFyIGlkeCA9IDA7IGlkeCA8IGNvbHVtbnMuZ2V0UGFkZGluZ0NvdW50KCk7IGlkeCsrKSB7CiAgICAgIHZhciBwYWRkaW5nQ29sID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGgiKTsKICAgICAgcGFkZGluZ0NvbC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgInBhZ2VkdGFibGUtcGFkZGluZy1jb2wiKTsKICAgICAgaGVhZGVyLmFwcGVuZENoaWxkKHBhZGRpbmdDb2wpOwogICAgfQoKICAgIGlmIChjb2x1bW5zLm51bWJlciArIGNvbHVtbnMudmlzaWJsZSA8IGNvbHVtbnMudG90YWwpCiAgICAgIGhlYWRlci5hcHBlbmRDaGlsZChyZW5kZXJDb2x1bW5OYXZpZ2F0aW9uKGNvbHVtbnMudmlzaWJsZSwgZmFsc2UpKTsKCiAgICBpZiAodHlwZW9mKGNsZWFyKSA9PSAidW5kZWZpbmVkIiB8fCBjbGVhcikgY2xlYXJIZWFkZXIoKTsKICAgIHZhciB0aGVhZCA9IHBhZ2VkVGFibGUucXVlcnlTZWxlY3RvckFsbCgidGhlYWQiKVswXTsKICAgIHRoZWFkLmFwcGVuZENoaWxkKGZyYWdtZW50KTsKICB9OwoKICBtZS5hbmltYXRlQ29sdW1ucyA9IGZ1bmN0aW9uKGJhY2t3YXJkcykgewogICAgdmFyIHRoZWFkID0gcGFnZWRUYWJsZS5xdWVyeVNlbGVjdG9yQWxsKCJ0aGVhZCIpWzBdOwoKICAgIHZhciBoZWFkZXJPbGQgPSB0aGVhZC5xdWVyeVNlbGVjdG9yQWxsKCJ0ciIpWzBdOwogICAgdmFyIHRib2R5T2xkID0gdGFibGUucXVlcnlTZWxlY3RvckFsbCgidGJvZHkiKVswXTsKCiAgICBtZS5maXRDb2x1bW5zKGJhY2t3YXJkcyk7CgogICAgcmVuZGVySGVhZGVyKGZhbHNlKTsKCiAgICBoZWFkZXIuc3R5bGUub3BhY2l0eSA9ICIwIjsKICAgIGhlYWRlci5zdHlsZS50cmFuc2Zvcm0gPSBiYWNrd2FyZHMgPyAidHJhbnNsYXRlWCgtMzBweCkiIDogInRyYW5zbGF0ZVgoMzBweCkiOwogICAgaGVhZGVyLnN0eWxlLnRyYW5zaXRpb24gPSAidHJhbnNmb3JtIDIwMG1zIGxpbmVhciwgb3BhY2l0eSAyMDBtcyI7CiAgICBoZWFkZXIuc3R5bGUudHJhbnNpdGlvbkRlbGF5ID0gIjAiOwoKICAgIHJlbmRlckJvZHkoZmFsc2UpOwoKICAgIGlmIChoZWFkZXJPbGQpIHsKICAgICAgaGVhZGVyT2xkLnN0eWxlLnBvc2l0aW9uID0gImFic29sdXRlIjsKICAgICAgaGVhZGVyT2xkLnN0eWxlLnRyYW5zZm9ybSA9ICJ0cmFuc2xhdGVYKDBweCkiOwogICAgICBoZWFkZXJPbGQuc3R5bGUub3BhY2l0eSA9ICIxIjsKICAgICAgaGVhZGVyT2xkLnN0eWxlLnRyYW5zaXRpb24gPSAidHJhbnNmb3JtIDEwMG1zIGxpbmVhciwgb3BhY2l0eSAxMDBtcyI7CiAgICAgIGhlYWRlck9sZC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgInBhZ2VkdGFibGUtcmVtb3ZlLWhlYWQiKTsKICAgICAgaWYgKGhlYWRlck9sZC5zdHlsZS50cmFuc2l0aW9uRW5kKSB7CiAgICAgICAgaGVhZGVyT2xkLmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBoZWFkZXJPbGRCeUNsYXNzID0gdGhlYWQucXVlcnlTZWxlY3RvcigiLnBhZ2VkdGFibGUtcmVtb3ZlLWhlYWQiKTsKICAgICAgICAgIGlmIChoZWFkZXJPbGRCeUNsYXNzKSB0aGVhZC5yZW1vdmVDaGlsZChoZWFkZXJPbGRCeUNsYXNzKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICBlbHNlIHsKICAgICAgICB0aGVhZC5yZW1vdmVDaGlsZChoZWFkZXJPbGQpOwogICAgICB9CiAgICB9CgogICAgaWYgKHRib2R5T2xkKSB0YWJsZS5yZW1vdmVDaGlsZCh0Ym9keU9sZCk7CgogICAgdGJvZHkuc3R5bGUub3BhY2l0eSA9ICIwIjsKICAgIHRib2R5LnN0eWxlLnRyYW5zaXRpb24gPSAidHJhbnNmb3JtIDIwMG1zIGxpbmVhciwgb3BhY2l0eSAyMDBtcyI7CiAgICB0Ym9keS5zdHlsZS50cmFuc2l0aW9uRGVsYXkgPSAiMG1zIjsKCiAgICAvLyBmb3JjZSByZWxheW91dAogICAgd2luZG93LmdldENvbXB1dGVkU3R5bGUoaGVhZGVyKS5vcGFjaXR5OwogICAgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGJvZHkpLm9wYWNpdHk7CgogICAgaWYgKGhlYWRlck9sZCkgewogICAgICBoZWFkZXJPbGQuc3R5bGUudHJhbnNmb3JtID0gYmFja3dhcmRzID8gInRyYW5zbGF0ZVgoMjBweCkiIDogInRyYW5zbGF0ZVgoLTMwcHgpIjsKICAgICAgaGVhZGVyT2xkLnN0eWxlLm9wYWNpdHkgPSAiMCI7CiAgICB9CgogICAgaGVhZGVyLnN0eWxlLnRyYW5zZm9ybSA9ICJ0cmFuc2xhdGVYKDBweCkiOwogICAgaGVhZGVyLnN0eWxlLm9wYWNpdHkgPSAiMSI7CgogICAgdGJvZHkuc3R5bGUub3BhY2l0eSA9ICIxIjsKICB9CgogIG1lLm9uQ2hhbmdlID0gZnVuY3Rpb24oY2FsbGJhY2spIHsKICAgIG9uQ2hhbmdlQ2FsbGJhY2tzLnB1c2goY2FsbGJhY2spOwogIH07CgogIHZhciB0cmlnZ2VyT25DaGFuZ2UgPSBmdW5jdGlvbigpIHsKICAgIG9uQ2hhbmdlQ2FsbGJhY2tzLmZvckVhY2goZnVuY3Rpb24ob25DaGFuZ2UpIHsKICAgICAgb25DaGFuZ2UoKTsKICAgIH0pOwogIH07CgogIHZhciBjbGVhckJvZHkgPSBmdW5jdGlvbigpIHsKICAgIGlmICh0Ym9keSkgewogICAgICB0YWJsZS5yZW1vdmVDaGlsZCh0Ym9keSk7CiAgICAgIHRib2R5ID0gbnVsbDsKICAgIH0KICB9OwoKICB2YXIgcmVuZGVyQm9keSA9IGZ1bmN0aW9uKGNsZWFyKSB7CiAgICBjYWNoZWRQYWdlZFRhYmxlQ2xpZW50V2lkdGggPSBwYWdlZFRhYmxlLmNsaWVudFdpZHRoCgogICAgdmFyIGZyYWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwoKICAgIHZhciBwYWdlRGF0YSA9IGRhdGEuc2xpY2UocGFnZS5nZXRSb3dTdGFydCgpLCBwYWdlLmdldFJvd0VuZCgpKTsKCiAgICBwYWdlRGF0YS5mb3JFYWNoKGZ1bmN0aW9uKGRhdGFSb3csIGlkeFJvdykgewogICAgICB2YXIgaHRtbFJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRyIik7CiAgICAgIGh0bWxSb3cuc2V0QXR0cmlidXRlKCJjbGFzcyIsIChpZHhSb3cgJSAyICE9PTApID8gImV2ZW4iIDogIm9kZCIpOwoKICAgICAgaWYgKGNvbHVtbnMuaGFzTW9yZUxlZnRDb2x1bW5zKCkpCiAgICAgICAgaHRtbFJvdy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpKTsKCiAgICAgIGNvbHVtbnMuc3Vic2V0LmZvckVhY2goZnVuY3Rpb24oY29sdW1uRGF0YSkgewogICAgICAgIHZhciBjZWxsTmFtZSA9IGNvbHVtbkRhdGEubmFtZTsKICAgICAgICB2YXIgZGF0YUNlbGwgPSBkYXRhUm93W2NlbGxOYW1lXTsKICAgICAgICB2YXIgaHRtbENlbGwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpOwoKICAgICAgICBpZiAoZGF0YUNlbGwgPT09ICJOQSIpIGh0bWxDZWxsLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAicGFnZWR0YWJsZS1uYS1jZWxsIik7CiAgICAgICAgaWYgKGRhdGFDZWxsID09PSAiX19OQV9fIikgZGF0YUNlbGwgPSAiTkEiOwoKICAgICAgICB2YXIgY2VsbFRleHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShkYXRhQ2VsbCk7CiAgICAgICAgaHRtbENlbGwuYXBwZW5kQ2hpbGQoY2VsbFRleHQpOwogICAgICAgIGlmIChkYXRhQ2VsbC5sZW5ndGggPiA1MCkgewogICAgICAgICAgaHRtbENlbGwuc2V0QXR0cmlidXRlKCJ0aXRsZSIsIGRhdGFDZWxsKTsKICAgICAgICB9CiAgICAgICAgaHRtbENlbGwuc2V0QXR0cmlidXRlKCJhbGlnbiIsIGNvbHVtbkRhdGEuYWxpZ24pOwogICAgICAgIGh0bWxDZWxsLnN0eWxlLnRleHRBbGlnbiA9IGNvbHVtbkRhdGEuYWxpZ247CiAgICAgICAgaHRtbENlbGwuc3R5bGUubWF4V2lkdGggPSBtYXhDb2x1bW5XaWR0aChudWxsKTsKICAgICAgICBpZiAoY29sdW1uRGF0YS53aWR0aCkgewogICAgICAgICAgaHRtbENlbGwuc3R5bGUubWluV2lkdGggPSBodG1sQ2VsbC5zdHlsZS5tYXhXaWR0aCA9IG1heENvbHVtbldpZHRoKGNvbHVtbkRhdGEud2lkdGgpOwogICAgICAgIH0KICAgICAgICBodG1sUm93LmFwcGVuZENoaWxkKGh0bWxDZWxsKTsKICAgICAgfSk7CgogICAgICBmb3IgKHZhciBpZHggPSAwOyBpZHggPCBjb2x1bW5zLmdldFBhZGRpbmdDb3VudCgpOyBpZHgrKykgewogICAgICAgIHZhciBwYWRkaW5nQ29sID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGQiKTsKICAgICAgICBwYWRkaW5nQ29sLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAicGFnZWR0YWJsZS1wYWRkaW5nLWNvbCIpOwogICAgICAgIGh0bWxSb3cuYXBwZW5kQ2hpbGQocGFkZGluZ0NvbCk7CiAgICAgIH0KCiAgICAgIGlmIChjb2x1bW5zLmhhc01vcmVSaWdodENvbHVtbnMoKSkKICAgICAgICBodG1sUm93LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIikpOwoKICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoaHRtbFJvdyk7CiAgICB9KTsKCiAgICBmb3IgKHZhciBpZHhQYWRkaW5nID0gMDsgaWR4UGFkZGluZyA8IHBhZ2UuZ2V0UGFkZGluZ1Jvd3MoKTsgaWR4UGFkZGluZysrKSB7CiAgICAgIHZhciBwYWRkaW5nUm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidHIiKTsKCiAgICAgIHZhciBwYWRkaW5nQ2VsbFJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIik7CiAgICAgIHBhZGRpbmdDZWxsUm93LmlubmVySFRNTCA9ICImbmJzcDsiOwogICAgICBwYWRkaW5nQ2VsbFJvdy5zZXRBdHRyaWJ1dGUoImNvbHNwYW4iLCAiMTAwJSIpOwogICAgICBwYWRkaW5nUm93LmFwcGVuZENoaWxkKHBhZGRpbmdDZWxsUm93KTsKCiAgICAgIGZyYWdtZW50LmFwcGVuZENoaWxkKHBhZGRpbmdSb3cpOwogICAgfQoKICAgIGlmICh0eXBlb2YoY2xlYXIpID09ICJ1bmRlZmluZWQiIHx8IGNsZWFyKSBjbGVhckJvZHkoKTsKICAgIHRib2R5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGJvZHkiKTsKICAgIHRib2R5LmFwcGVuZENoaWxkKGZyYWdtZW50KTsKCiAgICB0YWJsZS5hcHBlbmRDaGlsZCh0Ym9keSk7CiAgfTsKCiAgdmFyIGdldExhYmVsSW5mbyA9IGZ1bmN0aW9uKCkgewogICAgdmFyIHBhZ2VTdGFydCA9IHBhZ2UuZ2V0Um93U3RhcnQoKTsKICAgIHZhciBwYWdlRW5kID0gcGFnZS5nZXRSb3dFbmQoKTsKICAgIHZhciB0b3RhbFJvd3MgPSBkYXRhLmxlbmd0aDsKCiAgICB2YXIgdG90YWxSb3dzTGFiZWwgPSBvcHRpb25zLnJvd3MudG90YWwgPyBvcHRpb25zLnJvd3MudG90YWwgOiB0b3RhbFJvd3M7CiAgICB2YXIgdG90YWxSb3dzTGFiZWxGb3JtYXQgPSB0b3RhbFJvd3NMYWJlbC50b1N0cmluZygpLnJlcGxhY2UoLyhcZCkoPz0oXGRcZFxkKSsoPyFcZCkpL2csICckMSwnKTsKCiAgICB2YXIgaW5mb1RleHQgPSAocGFnZVN0YXJ0ICsgMSkgKyAiLSIgKyBwYWdlRW5kICsgIiBvZiAiICsgdG90YWxSb3dzTGFiZWxGb3JtYXQgKyAiIHJvd3MiOwogICAgaWYgKHRvdGFsUm93cyA8IHBhZ2Uucm93cykgewogICAgICBpbmZvVGV4dCA9IHRvdGFsUm93c0xhYmVsICsgIiByb3ciICsgKHRvdGFsUm93cyAhPSAxID8gInMiIDogIiIpOwogICAgfQogICAgaWYgKGNvbHVtbnMudG90YWwgPiBjb2x1bW5zLnZpc2libGUpIHsKICAgICAgdmFyIHRvdGFsQ29sdW1uc0xhYmVsID0gb3B0aW9ucy5jb2x1bW5zLnRvdGFsID8gb3B0aW9ucy5jb2x1bW5zLnRvdGFsIDogY29sdW1ucy50b3RhbDsKCiAgICAgIGluZm9UZXh0ID0gaW5mb1RleHQgKyAiIHwgIiArIChjb2x1bW5zLm51bWJlciArIDEpICsgIi0iICsKICAgICAgICAoTWF0aC5taW4oY29sdW1ucy5udW1iZXIgKyBjb2x1bW5zLnZpc2libGUsIGNvbHVtbnMudG90YWwpKSArCiAgICAgICAgIiBvZiAiICsgdG90YWxDb2x1bW5zTGFiZWwgKyAiIGNvbHVtbnMiOwogICAgfQoKICAgIHJldHVybiBpbmZvVGV4dDsKICB9OwoKICB2YXIgY2xlYXJGb290ZXIgPSBmdW5jdGlvbigpIHsKICAgIGZvb3RlciA9IHBhZ2VkVGFibGUucXVlcnlTZWxlY3RvckFsbCgiZGl2LnBhZ2VkdGFibGUtZm9vdGVyIilbMF07CiAgICBmb290ZXIuaW5uZXJIVE1MID0gIiI7CgogICAgcmV0dXJuIGZvb3RlcjsKICB9OwoKICB2YXIgY3JlYXRlUGFnZUxpbmsgPSBmdW5jdGlvbihpZHhQYWdlKSB7CiAgICB2YXIgcGFnZUxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7CiAgICBwYWdlTGlua0NsYXNzID0gaWR4UGFnZSA9PT0gcGFnZS5udW1iZXIgPyAicGFnZWR0YWJsZS1pbmRleCBwYWdlZHRhYmxlLWluZGV4LWN1cnJlbnQiIDogInBhZ2VkdGFibGUtaW5kZXgiOwogICAgcGFnZUxpbmsuc2V0QXR0cmlidXRlKCJjbGFzcyIsIHBhZ2VMaW5rQ2xhc3MpOwogICAgcGFnZUxpbmsuc2V0QXR0cmlidXRlKCJkYXRhLXBhZ2UtaW5kZXgiLCBpZHhQYWdlKTsKICAgIHBhZ2VMaW5rLm9uY2xpY2sgPSBmdW5jdGlvbigpIHsKICAgICAgcGFnZS5zZXRQYWdlTnVtYmVyKHBhcnNlSW50KHRoaXMuZ2V0QXR0cmlidXRlKCJkYXRhLXBhZ2UtaW5kZXgiKSkpOwogICAgICByZW5kZXJCb2R5KCk7CiAgICAgIHJlbmRlckZvb3RlcigpOwoKICAgICAgdHJpZ2dlck9uQ2hhbmdlKCk7CiAgICB9OwoKICAgIHBhZ2VMaW5rLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGlkeFBhZ2UgKyAxKSk7CgogICAgcmV0dXJuIHBhZ2VMaW5rOwogIH0KCiAgdmFyIHJlbmRlckZvb3RlciA9IGZ1bmN0aW9uKCkgewogICAgZm9vdGVyID0gY2xlYXJGb290ZXIoKTsKCiAgICB2YXIgbmV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTsKICAgIG5leHQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIk5leHQiKSk7CiAgICBuZXh0Lm9uY2xpY2sgPSBmdW5jdGlvbigpIHsKICAgICAgcGFnZS5zZXRQYWdlTnVtYmVyKHBhZ2UubnVtYmVyICsgMSk7CiAgICAgIHJlbmRlckJvZHkoKTsKICAgICAgcmVuZGVyRm9vdGVyKCk7CgogICAgICB0cmlnZ2VyT25DaGFuZ2UoKTsKICAgIH07CiAgICBpZiAoZGF0YS5sZW5ndGggPiBwYWdlLnJvd3MpIGZvb3Rlci5hcHBlbmRDaGlsZChuZXh0KTsKCiAgICB2YXIgcGFnZU51bWJlcnMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgIHBhZ2VOdW1iZXJzLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAicGFnZWR0YWJsZS1pbmRleGVzIik7CgogICAgdmFyIHBhZ2VSYW5nZSA9IHBhZ2UuZ2V0VmlzaWJsZVBhZ2VSYW5nZSgpOwoKICAgIGlmIChwYWdlUmFuZ2UuZmlyc3QpIHsKICAgICAgdmFyIHBhZ2VMaW5rID0gY3JlYXRlUGFnZUxpbmsoMCk7CiAgICAgIHBhZ2VOdW1iZXJzLmFwcGVuZENoaWxkKHBhZ2VMaW5rKTsKCiAgICAgIHZhciBwYWdlU2VwYXJhdG9yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgIHBhZ2VTZXBhcmF0b3Iuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJwYWdlZHRhYmxlLWluZGV4LXNlcGFyYXRvci1sZWZ0Iik7CiAgICAgIHBhZ2VTZXBhcmF0b3IuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIi4uLiIpKQogICAgICBwYWdlTnVtYmVycy5hcHBlbmRDaGlsZChwYWdlU2VwYXJhdG9yKTsKICAgIH0KCiAgICBmb3IgKHZhciBpZHhQYWdlID0gcGFnZVJhbmdlLnN0YXJ0OyBpZHhQYWdlIDwgcGFnZVJhbmdlLmVuZDsgaWR4UGFnZSsrKSB7CiAgICAgIHZhciBwYWdlTGluayA9IGNyZWF0ZVBhZ2VMaW5rKGlkeFBhZ2UpOwoKICAgICAgcGFnZU51bWJlcnMuYXBwZW5kQ2hpbGQocGFnZUxpbmspOwogICAgfQoKICAgIGlmIChwYWdlUmFuZ2UubGFzdCkgewogICAgICB2YXIgcGFnZVNlcGFyYXRvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICBwYWdlU2VwYXJhdG9yLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAicGFnZWR0YWJsZS1pbmRleC1zZXBhcmF0b3ItcmlnaHQiKTsKICAgICAgcGFnZVNlcGFyYXRvci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiLi4uIikpCiAgICAgIHBhZ2VOdW1iZXJzLmFwcGVuZENoaWxkKHBhZ2VTZXBhcmF0b3IpOwoKICAgICAgdmFyIHBhZ2VMaW5rID0gY3JlYXRlUGFnZUxpbmsocGFnZS50b3RhbCAtIDEpOwogICAgICBwYWdlTnVtYmVycy5hcHBlbmRDaGlsZChwYWdlTGluayk7CiAgICB9CgogICAgaWYgKGRhdGEubGVuZ3RoID4gcGFnZS5yb3dzKSBmb290ZXIuYXBwZW5kQ2hpbGQocGFnZU51bWJlcnMpOwoKICAgIHZhciBwcmV2aW91cyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTsKICAgIHByZXZpb3VzLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJQcmV2aW91cyIpKTsKICAgIHByZXZpb3VzLm9uY2xpY2sgPSBmdW5jdGlvbigpIHsKICAgICAgcGFnZS5zZXRQYWdlTnVtYmVyKHBhZ2UubnVtYmVyIC0gMSk7CiAgICAgIHJlbmRlckJvZHkoKTsKICAgICAgcmVuZGVyRm9vdGVyKCk7CgogICAgICB0cmlnZ2VyT25DaGFuZ2UoKTsKICAgIH07CiAgICBpZiAoZGF0YS5sZW5ndGggPiBwYWdlLnJvd3MpIGZvb3Rlci5hcHBlbmRDaGlsZChwcmV2aW91cyk7CgogICAgdmFyIGluZm9MYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgaW5mb0xhYmVsLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAicGFnZWR0YWJsZS1pbmZvIik7CiAgICBpbmZvTGFiZWwuc2V0QXR0cmlidXRlKCJ0aXRsZSIsIGdldExhYmVsSW5mbygpKTsKICAgIGluZm9MYWJlbC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShnZXRMYWJlbEluZm8oKSkpOwogICAgZm9vdGVyLmFwcGVuZENoaWxkKGluZm9MYWJlbCk7CgogICAgdmFyIGVuYWJsZWRDbGFzcyA9ICJwYWdlZHRhYmxlLWluZGV4LW5hdiI7CiAgICB2YXIgZGlzYWJsZWRDbGFzcyA9ICJwYWdlZHRhYmxlLWluZGV4LW5hdiBwYWdlZHRhYmxlLWluZGV4LW5hdi1kaXNhYmxlZCI7CiAgICBwcmV2aW91cy5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgcGFnZS5udW1iZXIgPD0gMCA/IGRpc2FibGVkQ2xhc3MgOiBlbmFibGVkQ2xhc3MpOwogICAgbmV4dC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgKHBhZ2UubnVtYmVyICsgMSkgKiBwYWdlLnJvd3MgPj0gZGF0YS5sZW5ndGggPyBkaXNhYmxlZENsYXNzIDogZW5hYmxlZENsYXNzKTsKICB9OwoKICB2YXIgbWVhc3VyZXNDZWxsID0gbnVsbDsKCiAgdmFyIHJlbmRlck1lYXN1cmVzID0gZnVuY3Rpb24oKSB7CiAgICB2YXIgbWVhc3VyZXNUYWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRhYmxlIik7CiAgICBtZWFzdXJlc1RhYmxlLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKICAgIG1lYXN1cmVzVGFibGUuc3R5bGUucG9zaXRpb24gPSAiYWJzb2x1dGUiOwogICAgbWVhc3VyZXNUYWJsZS5zdHlsZS53aGl0ZVNwYWNlID0gIm5vd3JhcCI7CiAgICBtZWFzdXJlc1RhYmxlLnN0eWxlLmhlaWdodCA9ICJhdXRvIjsKICAgIG1lYXN1cmVzVGFibGUuc3R5bGUud2lkdGggPSAiYXV0byI7CgogICAgdmFyIG1lYXN1cmVzUm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidHIiKTsKICAgIG1lYXN1cmVzVGFibGUuYXBwZW5kQ2hpbGQobWVhc3VyZXNSb3cpOwoKICAgIG1lYXN1cmVzQ2VsbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIik7CiAgICB2YXIgc2FtcGxlU3RyaW5nID0gIkFCQ0RFRkdISUowMTIzNDU2Nzg5IjsKICAgIG1lYXN1cmVzQ2VsbC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzYW1wbGVTdHJpbmcpKTsKCiAgICBtZWFzdXJlc1Jvdy5hcHBlbmRDaGlsZChtZWFzdXJlc0NlbGwpOwoKICAgIHRhYmxlRGl2LmFwcGVuZENoaWxkKG1lYXN1cmVzVGFibGUpOwogIH0KCiAgbWUuaW5pdCA9IGZ1bmN0aW9uKCkgewogICAgdGFibGVEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgIHBhZ2VkVGFibGUuYXBwZW5kQ2hpbGQodGFibGVEaXYpOwogICAgdmFyIHBhZ2VkVGFibGVDbGFzcyA9IGRhdGEubGVuZ3RoID4gMCA/CiAgICAgICJwYWdlZHRhYmxlIHBhZ2VkdGFibGUtbm90LWVtcHR5IiA6CiAgICAgICJwYWdlZHRhYmxlIHBhZ2VkdGFibGUtZW1wdHkiOwoKICAgIGlmIChjb2x1bW5zLnRvdGFsID09IDAgfHwgKGNvbHVtbnMuZW1wdHlOYW1lcygpICYmIGRhdGEubGVuZ3RoID09IDApKSB7CiAgICAgIHBhZ2VkVGFibGVDbGFzcyA9IHBhZ2VkVGFibGVDbGFzcyArICIgcGFnZWR0YWJsZS1lbXB0eS1jb2x1bW5zIjsKICAgIH0KCiAgICB0YWJsZURpdi5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgcGFnZWRUYWJsZUNsYXNzKTsKCiAgICByZW5kZXJNZWFzdXJlcygpOwogICAgbWVhc3VyZXIuY2FsY3VsYXRlKG1lYXN1cmVzQ2VsbCk7CiAgICBjb2x1bW5zLmNhbGN1bGF0ZVdpZHRocyhtZWFzdXJlci5tZWFzdXJlcyk7CgogICAgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0YWJsZSIpOwogICAgdGFibGUuc2V0QXR0cmlidXRlKCJjZWxsc3BhY2luZyIsICIwIik7CiAgICB0YWJsZS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgInRhYmxlIHRhYmxlLWNvbmRlbnNlZCIpOwogICAgdGFibGVEaXYuYXBwZW5kQ2hpbGQodGFibGUpOwoKICAgIHRhYmxlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRoZWFkIikpOwoKICAgIHZhciBmb290ZXJEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgIGZvb3RlckRpdi5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgInBhZ2VkdGFibGUtZm9vdGVyIik7CiAgICB0YWJsZURpdi5hcHBlbmRDaGlsZChmb290ZXJEaXYpOwoKICAgIC8vIGlmIHRoZSBob3N0IGhhcyBub3QgeWV0IHByb3ZpZGVkIGhvcml6b250YWwgc3BhY2UsIHJlbmRlciBoaWRkZW4KICAgIGlmICh0YWJsZURpdi5jbGllbnRXaWR0aCA8PSAwKSB7CiAgICAgIHRhYmxlRGl2LnN0eWxlLm9wYWNpdHkgPSAiMCI7CiAgICB9CgogICAgbWUucmVuZGVyKCk7CgogICAgLy8gcmV0cnkgc2VpemluZyBjb2x1bW5zIGxhdGVyIGlmIHRoZSBob3N0IGhhcyBub3QgcHJvdmlkZWQgc3BhY2UKICAgIGZ1bmN0aW9uIHJldHJ5Rml0KCkgewogICAgICBpZiAodGFibGVEaXYuY2xpZW50V2lkdGggPD0gMCkgewogICAgICAgIHNldFRpbWVvdXQocmV0cnlGaXQsIDEwMCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgbWUucmVuZGVyKCk7CiAgICAgICAgdHJpZ2dlck9uQ2hhbmdlKCk7CiAgICAgIH0KICAgIH0KICAgIGlmICh0YWJsZURpdi5jbGllbnRXaWR0aCA8PSAwKSB7CiAgICAgIHJldHJ5Rml0KCk7CiAgICB9CiAgfTsKCiAgdmFyIHJlZ2lzdGVyV2lkdGhzID0gZnVuY3Rpb24oKSB7CiAgICBjb2x1bW5zLnN1YnNldCA9IGNvbHVtbnMuc3Vic2V0Lm1hcChmdW5jdGlvbihjb2x1bW4pIHsKICAgICAgY29sdW1uLndpZHRoID0gY29sdW1ucy53aWR0aHNbY29sdW1uLm5hbWVdLmlubmVyOwogICAgICByZXR1cm4gY29sdW1uOwogICAgfSk7CiAgfTsKCiAgdmFyIHBhcnNlUGFkZGluZyA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICByZXR1cm4gcGFyc2VJbnQodmFsdWUpID49IDAgPyBwYXJzZUludCh2YWx1ZSkgOiAwOwogIH07CgogIG1lLmZpeGVkSGVpZ2h0ID0gZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gb3B0aW9ucy5yb3dzLm1heCAhPSBudWxsOwogIH0KCiAgbWUuZml0Um93cyA9IGZ1bmN0aW9uKCkgewogICAgaWYgKG1lLmZpeGVkSGVpZ2h0KCkpCiAgICAgIHJldHVybjsKCiAgICBtZWFzdXJlci5jYWxjdWxhdGUobWVhc3VyZXNDZWxsKTsKCiAgICB2YXIgcm93cyA9IG9wdGlvbnMucm93cy5taW4gIT09IG51bGwgPyBvcHRpb25zLnJvd3MubWluIDogMDsKICAgIHZhciBoZWFkZXJIZWlnaHQgPSBoZWFkZXIgIT09IG51bGwgJiYgaGVhZGVyLm9mZnNldEhlaWdodCA+IDAgPyBoZWFkZXIub2Zmc2V0SGVpZ2h0IDogMDsKICAgIHZhciBmb290ZXJIZWlnaHQgPSBmb290ZXIgIT09IG51bGwgJiYgZm9vdGVyLm9mZnNldEhlaWdodCA+IDAgPyBmb290ZXIub2Zmc2V0SGVpZ2h0IDogMDsKCiAgICBpZiAocGFnZWRUYWJsZS5vZmZzZXRIZWlnaHQgPiAwKSB7CiAgICAgIHZhciBhdmFpbGFibGVIZWlnaHQgPSBwYWdlZFRhYmxlLm9mZnNldEhlaWdodCAtIGhlYWRlckhlaWdodCAtIGZvb3RlckhlaWdodDsKICAgICAgcm93cyA9IE1hdGguZmxvb3IoKGF2YWlsYWJsZUhlaWdodCkgLyBtZWFzdXJlci5tZWFzdXJlcy5oZWlnaHQpOwogICAgfQoKICAgIHJvd3MgPSBvcHRpb25zLnJvd3MubWluICE9PSBudWxsID8gTWF0aC5tYXgob3B0aW9ucy5yb3dzLm1pbiwgcm93cykgOiByb3dzOwoKICAgIHBhZ2Uuc2V0Um93cyhyb3dzKTsKICB9CgogIC8vIFRoZSBnb2FsIG9mIHRoaXMgZnVuY3Rpb24gaXMgdG8gYWRkIGFzIG1hbnkgY29sdW1ucyBhcyBwb3NzaWJsZQogIC8vIHN0YXJ0aW5nIGZyb20gbGVmdC10by1yaWdodCwgd2hlbiB0aGUgcmlnaHQgbW9zdCBsaW1pdCBpcyByZWFjaGVkCiAgLy8gaXQgdHJpZXMgdG8gYWRkIGNvbHVtbnMgZnJvbSB0aGUgbGVmdCBhcyB3ZWxsLgogIC8vCiAgLy8gV2hlbiBzdGFydEJhY2t3YXJkcyBpcyB0cnVlIGNvbHVtbnMgYXJlIGFkZGVkIGZyb20gcmlnaHQtdG8tbGVmdAogIG1lLmZpdENvbHVtbnMgPSBmdW5jdGlvbihzdGFydEJhY2t3YXJkcykgewogICAgbWVhc3VyZXIuY2FsY3VsYXRlKG1lYXN1cmVzQ2VsbCk7CiAgICBjb2x1bW5zLmNhbGN1bGF0ZVdpZHRocyhtZWFzdXJlci5tZWFzdXJlcyk7CgogICAgaWYgKHRhYmxlRGl2LmNsaWVudFdpZHRoID4gMCkgewogICAgICB0YWJsZURpdi5zdHlsZS5vcGFjaXR5ID0gMTsKICAgIH0KCiAgICB2YXIgdmlzaWJsZUNvbHVtbnMgPSB0YWJsZURpdi5jbGllbnRXaWR0aCA8PSAwID8gTWF0aC5tYXgoY29sdW1ucy5taW4sIDEpIDogMTsKICAgIHZhciBjb2x1bW5OdW1iZXIgPSBjb2x1bW5zLm51bWJlcjsKICAgIHZhciBwYWRkaW5nQ291bnQgPSAwOwoKICAgIC8vIHRyYWNrIGEgbGlzdCBvZiBhZGRlZCBjb2x1bW5zIGFzIHdlIGJ1aWxkIHRoZSB2aXNpYmxlIG9uZXMgdG8gYWxsb3cgdXMKICAgIC8vIHRvIHJlbW92ZSBjb2x1bW5zIHdoZW4gdGhleSBkb24ndCBmaXQgYW55bW9yZS4KICAgIHZhciBjb2x1bW5IaXN0b3J5ID0gW107CgogICAgdmFyIGxhc3RUYWJsZUhlaWdodCA9IDA7CiAgICB2YXIgYmFja3dhcmRzID0gc3RhcnRCYWNrd2FyZHM7CgogICAgdmFyIHRhYmxlRGl2U3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YWJsZURpdiwgbnVsbCk7CiAgICB2YXIgdGFibGVEaXZQYWRkaW5nID0gcGFyc2VQYWRkaW5nKHRhYmxlRGl2U3R5bGUucGFkZGluZ0xlZnQpICsKICAgICAgcGFyc2VQYWRkaW5nKHRhYmxlRGl2U3R5bGUucGFkZGluZ1JpZ2h0KTsKCiAgICB2YXIgYWRkUGFkZGluZ0NvbCA9IGZhbHNlOwogICAgdmFyIGN1cnJlbnRXaWR0aCA9IDA7CgogICAgd2hpbGUgKHRydWUpIHsKICAgICAgY29sdW1ucy5zZXRWaXNpYmxlQ29sdW1ucyhjb2x1bW5OdW1iZXIsIHZpc2libGVDb2x1bW5zLCBwYWRkaW5nQ291bnQpOwogICAgICBjdXJyZW50V2lkdGggPSBjb2x1bW5zLmdldFdpZHRoKCk7CgogICAgICBpZiAodGFibGVEaXYuY2xpZW50V2lkdGggLSB0YWJsZURpdlBhZGRpbmcgPCBjdXJyZW50V2lkdGgpIHsKICAgICAgICBicmVhazsKICAgICAgfQoKICAgICAgY29sdW1uSGlzdG9yeS5wdXNoKHsKICAgICAgICBjb2x1bW5OdW1iZXI6IGNvbHVtbk51bWJlciwKICAgICAgICB2aXNpYmxlQ29sdW1uczogdmlzaWJsZUNvbHVtbnMsCiAgICAgICAgcGFkZGluZ0NvdW50OiBwYWRkaW5nQ291bnQKICAgICAgfSk7CgogICAgICBpZiAoY29sdW1uSGlzdG9yeS5sZW5ndGggPiAxMDApIHsKICAgICAgICBjb25zb2xlLmVycm9yKCJNb3JlIHRoYW4gMTAwIHRyaWVzIHRvIGZpdCBjb2x1bW5zLCBhYm9ydGluZyIpOwogICAgICAgIGJyZWFrOwogICAgICB9CgogICAgICBpZiAoY29sdW1ucy5tYXggIT09IG51bGwgJiYKICAgICAgICBjb2x1bW5zLnZpc2libGUgKyBjb2x1bW5zLmdldFBhZGRpbmdDb3VudCgpID49IGNvbHVtbnMubWF4KSB7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KCiAgICAgIC8vIGlmIHdlIHJ1biBvdXQgb2YgcmlnaHQtY29sdW1ucwogICAgICBpZiAoIWJhY2t3YXJkcyAmJiBjb2x1bW5OdW1iZXIgKyBjb2x1bW5zLnZpc2libGUgPj0gY29sdW1ucy50b3RhbCkgewogICAgICAgIC8vIGlmIHdlIHN0YXJ0ZWQgYWRkaW5nIHJpZ2h0LWNvbHVtbnMsIHRyeSBhZGRpbmcgbGVmdC1jb2x1bW5zCiAgICAgICAgaWYgKCFzdGFydEJhY2t3YXJkcyAmJiBjb2x1bW5OdW1iZXIgPiAwKSB7CiAgICAgICAgICBiYWNrd2FyZHMgPSB0cnVlOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChjb2x1bW5zLm1pbiA9PT0gbnVsbCB8fCB2aXNpYmxlQ29sdW1ucyArIGNvbHVtbnMuZ2V0UGFkZGluZ0NvdW50KCkgPj0gY29sdW1ucy5taW4pIHsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgIHBhZGRpbmdDb3VudCA9IHBhZGRpbmdDb3VudCArIDE7CiAgICAgICAgfQogICAgICB9CgogICAgICAvLyBpZiB3ZSBydW4gb3V0IG9mIGxlZnQtY29sdW1ucwogICAgICBpZiAoYmFja3dhcmRzICYmIGNvbHVtbk51bWJlciA9PSAwKSB7CiAgICAgICAgLy8gaWYgd2Ugc3RhcnRlZCBhZGRpbmcgbGVmdC1jb2x1bW5zLCB0cnkgYWRkaW5nIHJpZ2h0LWNvbHVtbnMKICAgICAgICBpZiAoc3RhcnRCYWNrd2FyZHMgJiYgY29sdW1uTnVtYmVyICsgY29sdW1ucy52aXNpYmxlIDwgY29sdW1ucy50b3RhbCkgewogICAgICAgICAgYmFja3dhcmRzID0gZmFsc2U7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKGNvbHVtbnMubWluID09PSBudWxsIHx8IHZpc2libGVDb2x1bW5zICsgY29sdW1ucy5nZXRQYWRkaW5nQ291bnQoKSA+PSBjb2x1bW5zLm1pbikgewogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgcGFkZGluZ0NvdW50ID0gcGFkZGluZ0NvdW50ICsgMTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8vIHdoZW4gbW92aW5nIGJhY2t3YXJkcyB0cnkgZml0dGluZyBsZWZ0IGNvbHVtbnMgZmlyc3QKICAgICAgaWYgKGJhY2t3YXJkcyAmJiBjb2x1bW5OdW1iZXIgPiAwKSB7CiAgICAgICAgY29sdW1uTnVtYmVyID0gY29sdW1uTnVtYmVyIC0gMTsKICAgICAgfQoKICAgICAgaWYgKGNvbHVtbk51bWJlciArIHZpc2libGVDb2x1bW5zIDwgY29sdW1ucy50b3RhbCkgewogICAgICAgIHZpc2libGVDb2x1bW5zID0gdmlzaWJsZUNvbHVtbnMgKyAxOwogICAgICB9CiAgICB9CgogICAgdmFyIGxhc3RSZW5kZXJhYmxlQ29sdW1uID0gewogICAgICAgIGNvbHVtbk51bWJlcjogY29sdW1uTnVtYmVyLAogICAgICAgIHZpc2libGVDb2x1bW5zOiB2aXNpYmxlQ29sdW1ucywKICAgICAgICBwYWRkaW5nQ291bnQ6IHBhZGRpbmdDb3VudAogICAgfTsKCiAgICBpZiAoY29sdW1uSGlzdG9yeS5sZW5ndGggPiAwKSB7CiAgICAgIGxhc3RSZW5kZXJhYmxlQ29sdW1uID0gY29sdW1uSGlzdG9yeVtjb2x1bW5IaXN0b3J5Lmxlbmd0aCAtIDFdOwogICAgfQoKICAgIGNvbHVtbnMuc2V0VmlzaWJsZUNvbHVtbnMoCiAgICAgIGxhc3RSZW5kZXJhYmxlQ29sdW1uLmNvbHVtbk51bWJlciwKICAgICAgbGFzdFJlbmRlcmFibGVDb2x1bW4udmlzaWJsZUNvbHVtbnMsCiAgICAgIGxhc3RSZW5kZXJhYmxlQ29sdW1uLnBhZGRpbmdDb3VudCk7CgogICAgaWYgKHBhZ2VkVGFibGUub2Zmc2V0V2lkdGggPiAwKSB7CiAgICAgIHBhZ2Uuc2V0VmlzaWJsZVBhZ2VzKE1hdGgubWF4KE1hdGguY2VpbCgxLjAgKiAocGFnZWRUYWJsZS5vZmZzZXRXaWR0aCAtIDI1MCkgLyA0MCksIDIpKTsKICAgIH0KCiAgICByZWdpc3RlcldpZHRocygpOwogIH07CgogIG1lLmZpdCA9IGZ1bmN0aW9uKHN0YXJ0QmFja3dhcmRzKSB7CiAgICBtZS5maXRSb3dzKCk7CiAgICBtZS5maXRDb2x1bW5zKHN0YXJ0QmFja3dhcmRzKTsKICB9CgogIG1lLnJlbmRlciA9IGZ1bmN0aW9uKCkgewogICAgbWUuZml0Q29sdW1ucyhmYWxzZSk7CgogICAgLy8gcmVuZGVyIGhlYWRlci9mb290ZXIgdG8gbWVhc3VyZSBoZWlnaHQgYWNjdXJhdGVseQogICAgcmVuZGVySGVhZGVyKCk7CiAgICByZW5kZXJGb290ZXIoKTsKCiAgICBtZS5maXRSb3dzKCk7CiAgICByZW5kZXJCb2R5KCk7CgogICAgLy8gcmUtcmVuZGVyIGZvb3RlciB0byBtYXRjaCBuZXcgcm93cwogICAgcmVuZGVyRm9vdGVyKCk7CiAgfQoKICB2YXIgcmVzaXplTGFzdFdpZHRoID0gLTE7CiAgdmFyIHJlc2l6ZUxhc3RIZWlnaHQgPSAtMTsKICB2YXIgcmVzaXplTmV3V2lkdGggPSAtMTsKICB2YXIgcmVzaXplTmV3SGVpZ2h0ID0gLTE7CiAgdmFyIHJlc2l6ZVBlbmRpbmcgPSBmYWxzZTsKCiAgbWUucmVzaXplID0gZnVuY3Rpb24obmV3V2lkdGgsIG5ld0hlaWdodCkgewoKICAgIGZ1bmN0aW9uIHJlc2l6ZURlbGF5ZWQoKSB7CiAgICAgIHJlc2l6ZVBlbmRpbmcgPSBmYWxzZTsKCiAgICAgIGlmICgKICAgICAgICAocmVzaXplTmV3V2lkdGggIT09IHJlc2l6ZUxhc3RXaWR0aCkgfHwKICAgICAgICAoIW1lLmZpeGVkSGVpZ2h0KCkgJiYgcmVzaXplTmV3SGVpZ2h0ICE9PSByZXNpemVMYXN0SGVpZ2h0KQogICAgICApIHsKICAgICAgICByZXNpemVMYXN0V2lkdGggPSByZXNpemVOZXdXaWR0aDsKICAgICAgICByZXNpemVMYXN0SGVpZ2h0ID0gcmVzaXplTmV3SGVpZ2h0OwoKICAgICAgICBzZXRUaW1lb3V0KHJlc2l6ZURlbGF5ZWQsIDIwMCk7CiAgICAgICAgcmVzaXplUGVuZGluZyA9IHRydWU7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgbWUucmVuZGVyKCk7CiAgICAgICAgdHJpZ2dlck9uQ2hhbmdlKCk7CgogICAgICAgIHJlc2l6ZUxhc3RXaWR0aCA9IC0xOwogICAgICAgIHJlc2l6ZUxhc3RIZWlnaHQgPSAtMTsKICAgICAgfQogICAgfQoKICAgIHJlc2l6ZU5ld1dpZHRoID0gbmV3V2lkdGg7CiAgICByZXNpemVOZXdIZWlnaHQgPSBuZXdIZWlnaHQ7CgogICAgaWYgKCFyZXNpemVQZW5kaW5nKSByZXNpemVEZWxheWVkKCk7CiAgfTsKfTsKCnZhciBQYWdlZFRhYmxlRG9jOwooZnVuY3Rpb24gKFBhZ2VkVGFibGVEb2MpIHsKICB2YXIgYWxsUGFnZWRUYWJsZXMgPSBbXTsKCiAgUGFnZWRUYWJsZURvYy5pbml0QWxsID0gZnVuY3Rpb24oKSB7CiAgICBhbGxQYWdlZFRhYmxlcyA9IFtdOwoKICAgIHZhciBwYWdlZFRhYmxlcyA9IFtdLnNsaWNlLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtcGFnZWR0YWJsZT0iZmFsc2UiXSxbZGF0YS1wYWdlZHRhYmxlPSIiXScpKTsKICAgIHBhZ2VkVGFibGVzLmZvckVhY2goZnVuY3Rpb24ocGFnZWRUYWJsZSwgaWR4KSB7CiAgICAgIHBhZ2VkVGFibGUuc2V0QXR0cmlidXRlKCJkYXRhLXBhZ2VkdGFibGUiLCAidHJ1ZSIpOwogICAgICBwYWdlZFRhYmxlLnNldEF0dHJpYnV0ZSgicGFnZWR0YWJsZS1wYWdlIiwgMCk7CiAgICAgIHBhZ2VkVGFibGUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJwYWdlZHRhYmxlLXdyYXBwZXIiKTsKCiAgICAgIHZhciBwYWdlZFRhYmxlSW5zdGFuY2UgPSBuZXcgUGFnZWRUYWJsZShwYWdlZFRhYmxlKTsKICAgICAgcGFnZWRUYWJsZUluc3RhbmNlLmluaXQoKTsKCiAgICAgIGFsbFBhZ2VkVGFibGVzLnB1c2gocGFnZWRUYWJsZUluc3RhbmNlKTsKICAgIH0pOwogIH07CgogIFBhZ2VkVGFibGVEb2MucmVzaXplQWxsID0gZnVuY3Rpb24oKSB7CiAgICBhbGxQYWdlZFRhYmxlcy5mb3JFYWNoKGZ1bmN0aW9uKHBhZ2VkVGFibGUpIHsKICAgICAgcGFnZWRUYWJsZS5yZW5kZXIoKTsKICAgIH0pOwogIH07CgogIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBQYWdlZFRhYmxlRG9jLnJlc2l6ZUFsbCk7CgogIHJldHVybiBQYWdlZFRhYmxlRG9jOwp9KShQYWdlZFRhYmxlRG9jIHx8IChQYWdlZFRhYmxlRG9jID0ge30pKTsKCndpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKICBQYWdlZFRhYmxlRG9jLmluaXRBbGwoKTsKfTsK"></script>
<script src="data:application/javascript;base64,KGZ1bmN0aW9uKCkgewogIC8vIElmIHdpbmRvdy5IVE1MV2lkZ2V0cyBpcyBhbHJlYWR5IGRlZmluZWQsIHRoZW4gdXNlIGl0OyBvdGhlcndpc2UgY3JlYXRlIGEKICAvLyBuZXcgb2JqZWN0LiBUaGlzIGFsbG93cyBwcmVjZWRpbmcgY29kZSB0byBzZXQgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUKICAvLyBpbml0aWFsaXphdGlvbiBwcm9jZXNzICh0aG91Z2ggbm9uZSBjdXJyZW50bHkgZXhpc3QpLgogIHdpbmRvdy5IVE1MV2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cyB8fCB7fTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSB2aWV3ZXIgcGFuZS4gSWYgbm90LCB3ZSdyZSBpbiBhIHdlYiBicm93c2VyLgogIHZhciB2aWV3ZXJNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUgPQogICAgICAvXGJ2aWV3ZXJfcGFuZT0xXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uKTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZS4gSWYgbm90LCBpdCdzIGEgc3RhdGljIGRvY3VtZW50LgogIC8vIE5vdGUgdGhhdCBzdGF0aWMgd2lkZ2V0cyBjYW4gYXBwZWFyIGluIGJvdGggU2hpbnkgYW5kIHN0YXRpYyBtb2RlcywgYnV0CiAgLy8gb2J2aW91c2x5LCBTaGlueSB3aWRnZXRzIGNhbiBvbmx5IGFwcGVhciBpbiBTaGlueSBhcHBzL2RvY3VtZW50cy4KICB2YXIgc2hpbnlNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnNoaW55TW9kZSA9CiAgICAgIHR5cGVvZih3aW5kb3cuU2hpbnkpICE9PSAidW5kZWZpbmVkIiAmJiAhIXdpbmRvdy5TaGlueS5vdXRwdXRCaW5kaW5nczsKCiAgLy8gV2UgY2FuJ3QgY291bnQgb24galF1ZXJ5IGJlaW5nIGF2YWlsYWJsZSwgc28gd2UgaW1wbGVtZW50IG91ciBvd24KICAvLyB2ZXJzaW9uIGlmIG5lY2Vzc2FyeS4KICBmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKHR5cGVvZihqUXVlcnkpICE9PSAidW5kZWZpbmVkIiAmJiBzY29wZSBpbnN0YW5jZW9mIGpRdWVyeSkgewogICAgICByZXR1cm4gc2NvcGUuZmluZChzZWxlY3Rvcik7CiAgICB9CiAgICBpZiAoc2NvcGUucXVlcnlTZWxlY3RvckFsbCkgewogICAgICByZXR1cm4gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhc0FycmF5KHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwpCiAgICAgIHJldHVybiBbXTsKICAgIGlmICgkLmlzQXJyYXkodmFsdWUpKQogICAgICByZXR1cm4gdmFsdWU7CiAgICByZXR1cm4gW3ZhbHVlXTsKICB9CgogIC8vIEltcGxlbWVudCBqUXVlcnkncyBleHRlbmQKICBmdW5jdGlvbiBleHRlbmQodGFyZ2V0IC8qLCAuLi4gKi8pIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgQXJyYXkuZm9yRWFjaC4KICBmdW5jdGlvbiBmb3JFYWNoKHZhbHVlcywgY2FsbGJhY2ssIHRoaXNBcmcpIHsKICAgIGlmICh2YWx1ZXMuZm9yRWFjaCkgewogICAgICB2YWx1ZXMuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7CiAgICB9IGVsc2UgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWVzW2ldLCBpLCB2YWx1ZXMpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZXBsYWNlcyB0aGUgc3BlY2lmaWVkIG1ldGhvZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY1NvdXJjZS4KICAvLwogIC8vIE5vdGUgdGhhdCBmdW5jU291cmNlIHNob3VsZCBub3QgQkUgdGhlIG5ldyBtZXRob2QsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uCiAgLy8gdGhhdCBSRVRVUk5TIHRoZSBuZXcgbWV0aG9kLiBmdW5jU291cmNlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMKICAvLyB0aGUgb3ZlcnJpZGRlbiBtZXRob2QsIGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbmV3IG1ldGhvZC4gVGhlIG92ZXJyaWRkZW4KICAvLyBtZXRob2QgY2FuIGJlIGNhbGxlZCBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiwgaXQgaGFzIHRoZSB0YXJnZXQgcGVybWFuZW50bHkKICAvLyBib3VuZCB0byBpdCBzbyAidGhpcyIgd2lsbCB3b3JrIGNvcnJlY3RseS4KICBmdW5jdGlvbiBvdmVycmlkZU1ldGhvZCh0YXJnZXQsIG1ldGhvZE5hbWUsIGZ1bmNTb3VyY2UpIHsKICAgIHZhciBzdXBlckZ1bmMgPSB0YXJnZXRbbWV0aG9kTmFtZV0gfHwgZnVuY3Rpb24oKSB7fTsKICAgIHZhciBzdXBlckZ1bmNCb3VuZCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3VwZXJGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTsKICAgIH07CiAgICB0YXJnZXRbbWV0aG9kTmFtZV0gPSBmdW5jU291cmNlKHN1cGVyRnVuY0JvdW5kKTsKICB9CgogIC8vIEFkZCBhIG1ldGhvZCB0byBkZWxlZ2F0b3IgdGhhdCwgd2hlbiBpbnZva2VkLCBjYWxscwogIC8vIGRlbGVnYXRlZS5tZXRob2ROYW1lLiBJZiB0aGVyZSBpcyBubyBzdWNoIG1ldGhvZCBvbgogIC8vIHRoZSBkZWxlZ2F0ZWUsIGJ1dCB0aGVyZSB3YXMgb25lIG9uIGRlbGVnYXRvciBiZWZvcmUKICAvLyBkZWxlZ2F0ZU1ldGhvZCB3YXMgY2FsbGVkLCB0aGVuIHRoZSBvcmlnaW5hbCB2ZXJzaW9uCiAgLy8gaXMgaW52b2tlZCBpbnN0ZWFkLgogIC8vIEZvciBleGFtcGxlOgogIC8vCiAgLy8gdmFyIGEgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2ExJyk7IH0KICAvLyAgIG1ldGhvZDI6IGZ1bmN0aW9uKCkgeyBjb25zb2xlLmxvZygnYTInKTsgfQogIC8vIH07CiAgLy8gdmFyIGIgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2IxJyk7IH0KICAvLyB9OwogIC8vIGRlbGVnYXRlTWV0aG9kKGEsIGIsICJtZXRob2QxIik7CiAgLy8gZGVsZWdhdGVNZXRob2QoYSwgYiwgIm1ldGhvZDIiKTsKICAvLyBhLm1ldGhvZDEoKTsKICAvLyBhLm1ldGhvZDIoKTsKICAvLwogIC8vIFRoZSBvdXRwdXQgd291bGQgYmUgImIxIiwgImEyIi4KICBmdW5jdGlvbiBkZWxlZ2F0ZU1ldGhvZChkZWxlZ2F0b3IsIGRlbGVnYXRlZSwgbWV0aG9kTmFtZSkgewogICAgdmFyIGluaGVyaXRlZCA9IGRlbGVnYXRvclttZXRob2ROYW1lXTsKICAgIGRlbGVnYXRvclttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkgewogICAgICB2YXIgdGFyZ2V0ID0gZGVsZWdhdGVlOwogICAgICB2YXIgbWV0aG9kID0gZGVsZWdhdGVlW21ldGhvZE5hbWVdOwoKICAgICAgLy8gVGhlIG1ldGhvZCBkb2Vzbid0IGV4aXN0IG9uIHRoZSBkZWxlZ2F0ZWUuIEluc3RlYWQsCiAgICAgIC8vIGNhbGwgdGhlIG1ldGhvZCBvbiB0aGUgZGVsZWdhdG9yLCBpZiBpdCBleGlzdHMuCiAgICAgIGlmICghbWV0aG9kKSB7CiAgICAgICAgdGFyZ2V0ID0gZGVsZWdhdG9yOwogICAgICAgIG1ldGhvZCA9IGluaGVyaXRlZDsKICAgICAgfQoKICAgICAgaWYgKG1ldGhvZCkgewogICAgICAgIHJldHVybiBtZXRob2QuYXBwbHkodGFyZ2V0LCBhcmd1bWVudHMpOwogICAgICB9CiAgICB9OwogIH0KCiAgLy8gSW1wbGVtZW50IGEgdmFndWUgZmFjc2ltaWxpZSBvZiBqUXVlcnkncyBkYXRhIG1ldGhvZAogIGZ1bmN0aW9uIGVsZW1lbnREYXRhKGVsLCBuYW1lLCB2YWx1ZSkgewogICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMikgewogICAgICByZXR1cm4gZWxbImh0bWx3aWRnZXRfZGF0YV8iICsgbmFtZV07CiAgICB9IGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMykgewogICAgICBlbFsiaHRtbHdpZGdldF9kYXRhXyIgKyBuYW1lXSA9IHZhbHVlOwogICAgICByZXR1cm4gZWw7CiAgICB9IGVsc2UgewogICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIGVsZW1lbnREYXRhOiAiICsKICAgICAgICBhcmd1bWVudHMubGVuZ3RoKTsKICAgIH0KICB9CgogIC8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzQ0NjE3MC9lc2NhcGUtc3RyaW5nLWZvci11c2UtaW4tamF2YXNjcmlwdC1yZWdleAogIGZ1bmN0aW9uIGVzY2FwZVJlZ0V4cChzdHIpIHsKICAgIHJldHVybiBzdHIucmVwbGFjZSgvW1wtXFtcXVwvXHtcfVwoXClcKlwrXD9cLlxcXF5cJFx8XS9nLCAiXFwkJiIpOwogIH0KCiAgZnVuY3Rpb24gaGFzQ2xhc3MoZWwsIGNsYXNzTmFtZSkgewogICAgdmFyIHJlID0gbmV3IFJlZ0V4cCgiXFxiIiArIGVzY2FwZVJlZ0V4cChjbGFzc05hbWUpICsgIlxcYiIpOwogICAgcmV0dXJuIHJlLnRlc3QoZWwuY2xhc3NOYW1lKTsKICB9CgogIC8vIGVsZW1lbnRzIC0gYXJyYXkgKG9yIGFycmF5LWxpa2Ugb2JqZWN0KSBvZiBIVE1MIGVsZW1lbnRzCiAgLy8gY2xhc3NOYW1lIC0gY2xhc3MgbmFtZSB0byB0ZXN0IGZvcgogIC8vIGluY2x1ZGUgLSBpZiB0cnVlLCBvbmx5IHJldHVybiBlbGVtZW50cyB3aXRoIGdpdmVuIGNsYXNzTmFtZTsKICAvLyAgIGlmIGZhbHNlLCBvbmx5IHJldHVybiBlbGVtZW50cyAqd2l0aG91dCogZ2l2ZW4gY2xhc3NOYW1lCiAgZnVuY3Rpb24gZmlsdGVyQnlDbGFzcyhlbGVtZW50cywgY2xhc3NOYW1lLCBpbmNsdWRlKSB7CiAgICB2YXIgcmVzdWx0cyA9IFtdOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykgewogICAgICBpZiAoaGFzQ2xhc3MoZWxlbWVudHNbaV0sIGNsYXNzTmFtZSkgPT0gaW5jbHVkZSkKICAgICAgICByZXN1bHRzLnB1c2goZWxlbWVudHNbaV0pOwogICAgfQogICAgcmV0dXJuIHJlc3VsdHM7CiAgfQoKICBmdW5jdGlvbiBvbihvYmosIGV2ZW50TmFtZSwgZnVuYykgewogICAgaWYgKG9iai5hZGRFdmVudExpc3RlbmVyKSB7CiAgICAgIG9iai5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgZnVuYywgZmFsc2UpOwogICAgfSBlbHNlIGlmIChvYmouYXR0YWNoRXZlbnQpIHsKICAgICAgb2JqLmF0dGFjaEV2ZW50KGV2ZW50TmFtZSwgZnVuYyk7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBvZmYob2JqLCBldmVudE5hbWUsIGZ1bmMpIHsKICAgIGlmIChvYmoucmVtb3ZlRXZlbnRMaXN0ZW5lcikKICAgICAgb2JqLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBmdW5jLCBmYWxzZSk7CiAgICBlbHNlIGlmIChvYmouZGV0YWNoRXZlbnQpIHsKICAgICAgb2JqLmRldGFjaEV2ZW50KGV2ZW50TmFtZSwgZnVuYyk7CiAgICB9CiAgfQoKICAvLyBUcmFuc2xhdGUgYXJyYXkgb2YgdmFsdWVzIHRvIHRvcC9yaWdodC9ib3R0b20vbGVmdCwgYXMgdXN1YWwgd2l0aAogIC8vIHRoZSAicGFkZGluZyIgQ1NTIHByb3BlcnR5CiAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL3BhZGRpbmcKICBmdW5jdGlvbiB1bnBhY2tQYWRkaW5nKHZhbHVlKSB7CiAgICBpZiAodHlwZW9mKHZhbHVlKSA9PT0gIm51bWJlciIpCiAgICAgIHZhbHVlID0gW3ZhbHVlXTsKICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDEpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMF0sIGJvdHRvbTogdmFsdWVbMF0sIGxlZnQ6IHZhbHVlWzBdfTsKICAgIH0KICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDIpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMV0sIGJvdHRvbTogdmFsdWVbMF0sIGxlZnQ6IHZhbHVlWzFdfTsKICAgIH0KICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDMpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMV0sIGJvdHRvbTogdmFsdWVbMl0sIGxlZnQ6IHZhbHVlWzFdfTsKICAgIH0KICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDQpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMV0sIGJvdHRvbTogdmFsdWVbMl0sIGxlZnQ6IHZhbHVlWzNdfTsKICAgIH0KICB9CgogIC8vIENvbnZlcnQgYW4gdW5wYWNrZWQgcGFkZGluZyBvYmplY3QgdG8gYSBDU1MgdmFsdWUKICBmdW5jdGlvbiBwYWRkaW5nVG9Dc3MocGFkZGluZ09iaikgewogICAgcmV0dXJuIHBhZGRpbmdPYmoudG9wICsgInB4ICIgKyBwYWRkaW5nT2JqLnJpZ2h0ICsgInB4ICIgKyBwYWRkaW5nT2JqLmJvdHRvbSArICJweCAiICsgcGFkZGluZ09iai5sZWZ0ICsgInB4IjsKICB9CgogIC8vIE1ha2VzIGEgbnVtYmVyIHN1aXRhYmxlIGZvciBDU1MKICBmdW5jdGlvbiBweCh4KSB7CiAgICBpZiAodHlwZW9mKHgpID09PSAibnVtYmVyIikKICAgICAgcmV0dXJuIHggKyAicHgiOwogICAgZWxzZQogICAgICByZXR1cm4geDsKICB9CgogIC8vIFJldHJpZXZlcyBydW50aW1lIHdpZGdldCBzaXppbmcgaW5mb3JtYXRpb24gZm9yIGFuIGVsZW1lbnQuCiAgLy8gVGhlIHJldHVybiB2YWx1ZSBpcyBlaXRoZXIgbnVsbCwgb3IgYW4gb2JqZWN0IHdpdGggZmlsbCwgcGFkZGluZywKICAvLyBkZWZhdWx0V2lkdGgsIGRlZmF1bHRIZWlnaHQgZmllbGRzLgogIGZ1bmN0aW9uIHNpemluZ1BvbGljeShlbCkgewogICAgdmFyIHNpemluZ0VsID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigic2NyaXB0W2RhdGEtZm9yPSciICsgZWwuaWQgKyAiJ11bdHlwZT0nYXBwbGljYXRpb24vaHRtbHdpZGdldC1zaXppbmcnXSIpOwogICAgaWYgKCFzaXppbmdFbCkKICAgICAgcmV0dXJuIG51bGw7CiAgICB2YXIgc3AgPSBKU09OLnBhcnNlKHNpemluZ0VsLnRleHRDb250ZW50IHx8IHNpemluZ0VsLnRleHQgfHwgInt9Iik7CiAgICBpZiAodmlld2VyTW9kZSkgewogICAgICByZXR1cm4gc3Audmlld2VyOwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuIHNwLmJyb3dzZXI7CiAgICB9CiAgfQoKICAvLyBAcGFyYW0gdGFza3MgQXJyYXkgb2Ygc3RyaW5ncyAob3IgZmFsc3kgdmFsdWUsIGluIHdoaWNoIGNhc2Ugbm8tb3ApLgogIC8vICAgRWFjaCBlbGVtZW50IG11c3QgYmUgYSB2YWxpZCBKYXZhU2NyaXB0IGV4cHJlc3Npb24gdGhhdCB5aWVsZHMgYQogIC8vICAgZnVuY3Rpb24uIE9yLCBjYW4gYmUgYW4gYXJyYXkgb2Ygb2JqZWN0cyB3aXRoICJjb2RlIiBhbmQgImRhdGEiCiAgLy8gICBwcm9wZXJ0aWVzOyBpbiB0aGlzIGNhc2UsIHRoZSAiY29kZSIgcHJvcGVydHkgc2hvdWxkIGJlIGEgc3RyaW5nCiAgLy8gICBvZiBKUyB0aGF0J3MgYW4gZXhwciB0aGF0IHlpZWxkcyBhIGZ1bmN0aW9uLCBhbmQgImRhdGEiIHNob3VsZCBiZQogIC8vICAgYW4gb2JqZWN0IHRoYXQgd2lsbCBiZSBhZGRlZCBhcyBhbiBhZGRpdGlvbmFsIGFyZ3VtZW50IHdoZW4gdGhhdAogIC8vICAgZnVuY3Rpb24gaXMgY2FsbGVkLgogIC8vIEBwYXJhbSB0YXJnZXQgVGhlIG9iamVjdCB0aGF0IHdpbGwgYmUgInRoaXMiIGZvciBlYWNoIGZ1bmN0aW9uCiAgLy8gICBleGVjdXRpb24uCiAgLy8gQHBhcmFtIGFyZ3MgQXJyYXkgb2YgYXJndW1lbnRzIHRvIGJlIHBhc3NlZCB0byB0aGUgZnVuY3Rpb25zLiAoVGhlCiAgLy8gICBzYW1lIGFyZ3VtZW50cyB3aWxsIGJlIHBhc3NlZCB0byBhbGwgZnVuY3Rpb25zLikKICBmdW5jdGlvbiBldmFsQW5kUnVuKHRhc2tzLCB0YXJnZXQsIGFyZ3MpIHsKICAgIGlmICh0YXNrcykgewogICAgICBmb3JFYWNoKHRhc2tzLCBmdW5jdGlvbih0YXNrKSB7CiAgICAgICAgdmFyIHRoZXNlQXJncyA9IGFyZ3M7CiAgICAgICAgaWYgKHR5cGVvZih0YXNrKSA9PT0gIm9iamVjdCIpIHsKICAgICAgICAgIHRoZXNlQXJncyA9IHRoZXNlQXJncy5jb25jYXQoW3Rhc2suZGF0YV0pOwogICAgICAgICAgdGFzayA9IHRhc2suY29kZTsKICAgICAgICB9CiAgICAgICAgdmFyIHRhc2tGdW5jID0gdHJ5RXZhbCh0YXNrKTsKICAgICAgICBpZiAodHlwZW9mKHRhc2tGdW5jKSAhPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUYXNrIG11c3QgYmUgYSBmdW5jdGlvbiEgU291cmNlOlxuIiArIHRhc2spOwogICAgICAgIH0KICAgICAgICB0YXNrRnVuYy5hcHBseSh0YXJnZXQsIHRoZXNlQXJncyk7CiAgICAgIH0pOwogICAgfQogIH0KCiAgLy8gQXR0ZW1wdCBldmFsKCkgYm90aCB3aXRoIGFuZCB3aXRob3V0IGVuY2xvc2luZyBpbiBwYXJlbnRoZXNlcy4KICAvLyBOb3RlIHRoYXQgZW5jbG9zaW5nIGNvZXJjZXMgYSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBpbnRvCiAgLy8gYW4gZXhwcmVzc2lvbiB0aGF0IGV2YWwoKSBjYW4gcGFyc2UKICAvLyAob3RoZXJ3aXNlLCBhIFN5bnRheEVycm9yIGlzIHRocm93bikKICBmdW5jdGlvbiB0cnlFdmFsKGNvZGUpIHsKICAgIHZhciByZXN1bHQgPSBudWxsOwogICAgdHJ5IHsKICAgICAgcmVzdWx0ID0gZXZhbChjb2RlKTsKICAgIH0gY2F0Y2goZXJyb3IpIHsKICAgICAgaWYgKCFlcnJvciBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSB7CiAgICAgICAgdGhyb3cgZXJyb3I7CiAgICAgIH0KICAgICAgdHJ5IHsKICAgICAgICByZXN1bHQgPSBldmFsKCIoIiArIGNvZGUgKyAiKSIpOwogICAgICB9IGNhdGNoKGUpIHsKICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSB7CiAgICAgICAgICB0aHJvdyBlcnJvcjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhyb3cgZTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIHJldHVybiByZXN1bHQ7CiAgfQoKICBmdW5jdGlvbiBpbml0U2l6aW5nKGVsKSB7CiAgICB2YXIgc2l6aW5nID0gc2l6aW5nUG9saWN5KGVsKTsKICAgIGlmICghc2l6aW5nKQogICAgICByZXR1cm47CgogICAgdmFyIGNlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJodG1sd2lkZ2V0X2NvbnRhaW5lciIpOwogICAgaWYgKCFjZWwpCiAgICAgIHJldHVybjsKCiAgICBpZiAodHlwZW9mKHNpemluZy5wYWRkaW5nKSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5tYXJnaW4gPSAiMCI7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZyA9IHBhZGRpbmdUb0Nzcyh1bnBhY2tQYWRkaW5nKHNpemluZy5wYWRkaW5nKSk7CiAgICB9CgogICAgaWYgKHNpemluZy5maWxsKSB7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAiaGlkZGVuIjsKICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIxMDAlIjsKICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQgPSAiMTAwJSI7CiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS53aWR0aCA9ICIxMDAlIjsKICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLmhlaWdodCA9ICIxMDAlIjsKICAgICAgaWYgKGNlbCkgewogICAgICAgIGNlbC5zdHlsZS5wb3NpdGlvbiA9ICJhYnNvbHV0ZSI7CiAgICAgICAgdmFyIHBhZCA9IHVucGFja1BhZGRpbmcoc2l6aW5nLnBhZGRpbmcpOwogICAgICAgIGNlbC5zdHlsZS50b3AgPSBwYWQudG9wICsgInB4IjsKICAgICAgICBjZWwuc3R5bGUucmlnaHQgPSBwYWQucmlnaHQgKyAicHgiOwogICAgICAgIGNlbC5zdHlsZS5ib3R0b20gPSBwYWQuYm90dG9tICsgInB4IjsKICAgICAgICBjZWwuc3R5bGUubGVmdCA9IHBhZC5sZWZ0ICsgInB4IjsKICAgICAgICBlbC5zdHlsZS53aWR0aCA9ICIxMDAlIjsKICAgICAgICBlbC5zdHlsZS5oZWlnaHQgPSAiMTAwJSI7CiAgICAgIH0KCiAgICAgIHJldHVybiB7CiAgICAgICAgZ2V0V2lkdGg6IGZ1bmN0aW9uKCkgeyByZXR1cm4gY2VsLm9mZnNldFdpZHRoOyB9LAogICAgICAgIGdldEhlaWdodDogZnVuY3Rpb24oKSB7IHJldHVybiBjZWwub2Zmc2V0SGVpZ2h0OyB9CiAgICAgIH07CgogICAgfSBlbHNlIHsKICAgICAgZWwuc3R5bGUud2lkdGggPSBweChzaXppbmcud2lkdGgpOwogICAgICBlbC5zdHlsZS5oZWlnaHQgPSBweChzaXppbmcuaGVpZ2h0KTsKCiAgICAgIHJldHVybiB7CiAgICAgICAgZ2V0V2lkdGg6IGZ1bmN0aW9uKCkgeyByZXR1cm4gZWwub2Zmc2V0V2lkdGg7IH0sCiAgICAgICAgZ2V0SGVpZ2h0OiBmdW5jdGlvbigpIHsgcmV0dXJuIGVsLm9mZnNldEhlaWdodDsgfQogICAgICB9OwogICAgfQogIH0KCiAgLy8gRGVmYXVsdCBpbXBsZW1lbnRhdGlvbnMgZm9yIG1ldGhvZHMKICB2YXIgZGVmYXVsdHMgPSB7CiAgICBmaW5kOiBmdW5jdGlvbihzY29wZSkgewogICAgICByZXR1cm4gcXVlcnlTZWxlY3RvckFsbChzY29wZSwgIi4iICsgdGhpcy5uYW1lKTsKICAgIH0sCiAgICByZW5kZXJFcnJvcjogZnVuY3Rpb24oZWwsIGVycikgewogICAgICB2YXIgJGVsID0gJChlbCk7CgogICAgICB0aGlzLmNsZWFyRXJyb3IoZWwpOwoKICAgICAgLy8gQWRkIGFsbCB0aGVzZSBlcnJvciBjbGFzc2VzLCBhcyBTaGlueSBkb2VzCiAgICAgIHZhciBlcnJDbGFzcyA9ICJzaGlueS1vdXRwdXQtZXJyb3IiOwogICAgICBpZiAoZXJyLnR5cGUgIT09IG51bGwpIHsKICAgICAgICAvLyB1c2UgdGhlIGNsYXNzZXMgb2YgdGhlIGVycm9yIGNvbmRpdGlvbiBhcyBDU1MgY2xhc3MgbmFtZXMKICAgICAgICBlcnJDbGFzcyA9IGVyckNsYXNzICsgIiAiICsgJC5tYXAoYXNBcnJheShlcnIudHlwZSksIGZ1bmN0aW9uKHR5cGUpIHsKICAgICAgICAgIHJldHVybiBlcnJDbGFzcyArICItIiArIHR5cGU7CiAgICAgICAgfSkuam9pbigiICIpOwogICAgICB9CiAgICAgIGVyckNsYXNzID0gZXJyQ2xhc3MgKyAiIGh0bWx3aWRnZXRzLWVycm9yIjsKCiAgICAgIC8vIElzIGVsIGlubGluZSBvciBibG9jaz8gSWYgaW5saW5lIG9yIGlubGluZS1ibG9jaywganVzdCBkaXNwbGF5Om5vbmUgaXQKICAgICAgLy8gYW5kIGFkZCBhbiBpbmxpbmUgZXJyb3IuCiAgICAgIHZhciBkaXNwbGF5ID0gJGVsLmNzcygiZGlzcGxheSIpOwogICAgICAkZWwuZGF0YSgicmVzdG9yZS1kaXNwbGF5LW1vZGUiLCBkaXNwbGF5KTsKCiAgICAgIGlmIChkaXNwbGF5ID09PSAiaW5saW5lIiB8fCBkaXNwbGF5ID09PSAiaW5saW5lLWJsb2NrIikgewogICAgICAgICRlbC5oaWRlKCk7CiAgICAgICAgaWYgKGVyci5tZXNzYWdlICE9PSAiIikgewogICAgICAgICAgdmFyIGVycm9yU3BhbiA9ICQoIjxzcGFuPiIpLmFkZENsYXNzKGVyckNsYXNzKTsKICAgICAgICAgIGVycm9yU3Bhbi50ZXh0KGVyci5tZXNzYWdlKTsKICAgICAgICAgICRlbC5hZnRlcihlcnJvclNwYW4pOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmIChkaXNwbGF5ID09PSAiYmxvY2siKSB7CiAgICAgICAgLy8gSWYgYmxvY2ssIGFkZCBhbiBlcnJvciBqdXN0IGFmdGVyIHRoZSBlbCwgc2V0IHZpc2liaWxpdHk6bm9uZSBvbiB0aGUKICAgICAgICAvLyBlbCwgYW5kIHBvc2l0aW9uIHRoZSBlcnJvciB0byBiZSBvbiB0b3Agb2YgdGhlIGVsLgogICAgICAgIC8vIE1hcmsgaXQgd2l0aCBhIHVuaXF1ZSBJRCBhbmQgQ1NTIGNsYXNzIHNvIHdlIGNhbiByZW1vdmUgaXQgbGF0ZXIuCiAgICAgICAgJGVsLmNzcygidmlzaWJpbGl0eSIsICJoaWRkZW4iKTsKICAgICAgICBpZiAoZXJyLm1lc3NhZ2UgIT09ICIiKSB7CiAgICAgICAgICB2YXIgZXJyb3JEaXYgPSAkKCI8ZGl2PiIpLmFkZENsYXNzKGVyckNsYXNzKS5jc3MoInBvc2l0aW9uIiwgImFic29sdXRlIikKICAgICAgICAgICAgLmNzcygidG9wIiwgZWwub2Zmc2V0VG9wKQogICAgICAgICAgICAuY3NzKCJsZWZ0IiwgZWwub2Zmc2V0TGVmdCkKICAgICAgICAgICAgLy8gc2V0dGluZyB3aWR0aCBjYW4gcHVzaCBvdXQgdGhlIHBhZ2Ugc2l6ZSwgZm9yY2luZyBvdGhlcndpc2UKICAgICAgICAgICAgLy8gdW5uZWNlc3Nhcnkgc2Nyb2xsYmFycyB0byBhcHBlYXIgYW5kIG1ha2luZyBpdCBpbXBvc3NpYmxlIGZvcgogICAgICAgICAgICAvLyB0aGUgZWxlbWVudCB0byBzaHJpbms7IHNvIHVzZSBtYXgtd2lkdGggaW5zdGVhZAogICAgICAgICAgICAuY3NzKCJtYXhXaWR0aCIsIGVsLm9mZnNldFdpZHRoKQogICAgICAgICAgICAuY3NzKCJoZWlnaHQiLCBlbC5vZmZzZXRIZWlnaHQpOwogICAgICAgICAgZXJyb3JEaXYudGV4dChlcnIubWVzc2FnZSk7CiAgICAgICAgICAkZWwuYWZ0ZXIoZXJyb3JEaXYpOwoKICAgICAgICAgIC8vIFJlYWxseSBkdW1iIHdheSB0byBrZWVwIHRoZSBzaXplL3Bvc2l0aW9uIG9mIHRoZSBlcnJvciBpbiBzeW5jIHdpdGgKICAgICAgICAgIC8vIHRoZSBwYXJlbnQgZWxlbWVudCBhcyB0aGUgd2luZG93IGlzIHJlc2l6ZWQgb3Igd2hhdGV2ZXIuCiAgICAgICAgICB2YXIgaW50SWQgPSBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHsKICAgICAgICAgICAgaWYgKCFlcnJvckRpdlswXS5wYXJlbnRFbGVtZW50KSB7CiAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRJZCk7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVycm9yRGl2CiAgICAgICAgICAgICAgLmNzcygidG9wIiwgZWwub2Zmc2V0VG9wKQogICAgICAgICAgICAgIC5jc3MoImxlZnQiLCBlbC5vZmZzZXRMZWZ0KQogICAgICAgICAgICAgIC5jc3MoIm1heFdpZHRoIiwgZWwub2Zmc2V0V2lkdGgpCiAgICAgICAgICAgICAgLmNzcygiaGVpZ2h0IiwgZWwub2Zmc2V0SGVpZ2h0KTsKICAgICAgICAgIH0sIDUwMCk7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgY2xlYXJFcnJvcjogZnVuY3Rpb24oZWwpIHsKICAgICAgdmFyICRlbCA9ICQoZWwpOwogICAgICB2YXIgZGlzcGxheSA9ICRlbC5kYXRhKCJyZXN0b3JlLWRpc3BsYXktbW9kZSIpOwogICAgICAkZWwuZGF0YSgicmVzdG9yZS1kaXNwbGF5LW1vZGUiLCBudWxsKTsKCiAgICAgIGlmIChkaXNwbGF5ID09PSAiaW5saW5lIiB8fCBkaXNwbGF5ID09PSAiaW5saW5lLWJsb2NrIikgewogICAgICAgIGlmIChkaXNwbGF5KQogICAgICAgICAgJGVsLmNzcygiZGlzcGxheSIsIGRpc3BsYXkpOwogICAgICAgICQoZWwubmV4dFNpYmxpbmcpLmZpbHRlcigiLmh0bWx3aWRnZXRzLWVycm9yIikucmVtb3ZlKCk7CiAgICAgIH0gZWxzZSBpZiAoZGlzcGxheSA9PT0gImJsb2NrIil7CiAgICAgICAgJGVsLmNzcygidmlzaWJpbGl0eSIsICJpbmhlcml0Iik7CiAgICAgICAgJChlbC5uZXh0U2libGluZykuZmlsdGVyKCIuaHRtbHdpZGdldHMtZXJyb3IiKS5yZW1vdmUoKTsKICAgICAgfQogICAgfSwKICAgIHNpemluZzoge30KICB9OwoKICAvLyBDYWxsZWQgYnkgd2lkZ2V0IGJpbmRpbmdzIHRvIHJlZ2lzdGVyIGEgbmV3IHR5cGUgb2Ygd2lkZ2V0LiBUaGUgZGVmaW5pdGlvbgogIC8vIG9iamVjdCBjYW4gY29udGFpbiB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAgLy8gLSBuYW1lIChyZXF1aXJlZCkgLSBBIHN0cmluZyBpbmRpY2F0aW5nIHRoZSBiaW5kaW5nIG5hbWUsIHdoaWNoIHdpbGwgYmUKICAvLyAgIHVzZWQgYnkgZGVmYXVsdCBhcyB0aGUgQ1NTIGNsYXNzbmFtZSB0byBsb29rIGZvci4KICAvLyAtIGluaXRpYWxpemUgKG9wdGlvbmFsKSAtIEEgZnVuY3Rpb24oZWwpIHRoYXQgd2lsbCBiZSBjYWxsZWQgb25jZSBwZXIKICAvLyAgIHdpZGdldCBlbGVtZW50OyBpZiBhIHZhbHVlIGlzIHJldHVybmVkLCBpdCB3aWxsIGJlIHBhc3NlZCBhcyB0aGUgdGhpcmQKICAvLyAgIHZhbHVlIHRvIHJlbmRlclZhbHVlLgogIC8vIC0gcmVuZGVyVmFsdWUgKHJlcXVpcmVkKSAtIEEgZnVuY3Rpb24oZWwsIGRhdGEsIGluaXRWYWx1ZSkgdGhhdCB3aWxsIGJlCiAgLy8gICBjYWxsZWQgd2l0aCBkYXRhLiBTdGF0aWMgY29udGV4dHMgd2lsbCBjYXVzZSB0aGlzIHRvIGJlIGNhbGxlZCBvbmNlIHBlcgogIC8vICAgZWxlbWVudDsgU2hpbnkgYXBwcyB3aWxsIGNhdXNlIHRoaXMgdG8gYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHBlcgogIC8vICAgZWxlbWVudCwgYXMgdGhlIGRhdGEgY2hhbmdlcy4KICB3aW5kb3cuSFRNTFdpZGdldHMud2lkZ2V0ID0gZnVuY3Rpb24oZGVmaW5pdGlvbikgewogICAgaWYgKCFkZWZpbml0aW9uLm5hbWUpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJXaWRnZXQgbXVzdCBoYXZlIGEgbmFtZSIpOwogICAgfQogICAgaWYgKCFkZWZpbml0aW9uLnR5cGUpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJXaWRnZXQgbXVzdCBoYXZlIGEgdHlwZSIpOwogICAgfQogICAgLy8gQ3VycmVudGx5IHdlIG9ubHkgc3VwcG9ydCBvdXRwdXQgd2lkZ2V0cwogICAgaWYgKGRlZmluaXRpb24udHlwZSAhPT0gIm91dHB1dCIpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgd2lkZ2V0IHR5cGUgJyIgKyBkZWZpbml0aW9uLnR5cGUgKyAiJyIpOwogICAgfQogICAgLy8gVE9ETzogVmVyaWZ5IHRoYXQgLm5hbWUgaXMgYSB2YWxpZCBDU1MgY2xhc3NuYW1lCgogICAgLy8gU3VwcG9ydCBuZXctc3R5bGUgaW5zdGFuY2UtYm91bmQgZGVmaW5pdGlvbnMuIE9sZC1zdHlsZSBjbGFzcy1ib3VuZAogICAgLy8gZGVmaW5pdGlvbnMgaGF2ZSBvbmUgd2lkZ2V0ICJvYmplY3QiIHBlciB3aWRnZXQgcGVyIHR5cGUvY2xhc3Mgb2YKICAgIC8vIHdpZGdldDsgdGhlIHJlbmRlclZhbHVlIGFuZCByZXNpemUgbWV0aG9kcyBvbiBzdWNoIHdpZGdldCBvYmplY3RzCiAgICAvLyB0YWtlIGVsIGFuZCBpbnN0YW5jZSBhcmd1bWVudHMsIGJlY2F1c2UgdGhlIHdpZGdldCBvYmplY3QgY2FuJ3QKICAgIC8vIHN0b3JlIHRoZW0uIE5ldy1zdHlsZSBpbnN0YW5jZS1ib3VuZCBkZWZpbml0aW9ucyBoYXZlIG9uZSB3aWRnZXQKICAgIC8vIG9iamVjdCBwZXIgd2lkZ2V0IGluc3RhbmNlOyB0aGUgZGVmaW5pdGlvbiB0aGF0J3MgcGFzc2VkIGluIGRvZXNuJ3QKICAgIC8vIHByb3ZpZGUgcmVuZGVyVmFsdWUgb3IgcmVzaXplIG1ldGhvZHMgYXQgYWxsLCBqdXN0IHRoZSBzaW5nbGUgbWV0aG9kCiAgICAvLyAgIGZhY3RvcnkoZWwsIHdpZHRoLCBoZWlnaHQpCiAgICAvLyB3aGljaCByZXR1cm5zIGFuIG9iamVjdCB0aGF0IGhhcyByZW5kZXJWYWx1ZSh4KSBhbmQgcmVzaXplKHcsIGgpLgogICAgLy8gVGhpcyBlbmFibGVzIGEgZmFyIG1vcmUgbmF0dXJhbCBwcm9ncmFtbWluZyBzdHlsZSBmb3IgdGhlIHdpZGdldAogICAgLy8gYXV0aG9yLCB3aG8gY2FuIHN0b3JlIHBlci1pbnN0YW5jZSBzdGF0ZSB1c2luZyBlaXRoZXIgT08tc3R5bGUKICAgIC8vIGluc3RhbmNlIGZpZWxkcyBvciBmdW5jdGlvbmFsLXN0eWxlIGNsb3N1cmUgdmFyaWFibGVzIChJIGd1ZXNzIHRoaXMKICAgIC8vIGlzIGluIGNvbnRyYXN0IHRvIHdoYXQgY2FuIG9ubHkgYmUgY2FsbGVkIEMtc3R5bGUgcHNldWRvLU9PIHdoaWNoIGlzCiAgICAvLyB3aGF0IHdlIHJlcXVpcmVkIGJlZm9yZSkuCiAgICBpZiAoZGVmaW5pdGlvbi5mYWN0b3J5KSB7CiAgICAgIGRlZmluaXRpb24gPSBjcmVhdGVMZWdhY3lEZWZpbml0aW9uQWRhcHRlcihkZWZpbml0aW9uKTsKICAgIH0KCiAgICBpZiAoIWRlZmluaXRpb24ucmVuZGVyVmFsdWUpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJXaWRnZXQgbXVzdCBoYXZlIGEgcmVuZGVyVmFsdWUgZnVuY3Rpb24iKTsKICAgIH0KCiAgICAvLyBGb3Igc3RhdGljIHJlbmRlcmluZyAobm9uLVNoaW55KSwgdXNlIGEgc2ltcGxlIHdpZGdldCByZWdpc3RyYXRpb24KICAgIC8vIHNjaGVtZS4gV2UgYWxzbyB1c2UgdGhpcyBzY2hlbWUgZm9yIFNoaW55IGFwcHMvZG9jdW1lbnRzIHRoYXQgYWxzbwogICAgLy8gY29udGFpbiBzdGF0aWMgd2lkZ2V0cy4KICAgIHdpbmRvdy5IVE1MV2lkZ2V0cy53aWRnZXRzID0gd2luZG93LkhUTUxXaWRnZXRzLndpZGdldHMgfHwgW107CiAgICAvLyBNZXJnZSBkZWZhdWx0cyBpbnRvIHRoZSBkZWZpbml0aW9uOyBkb24ndCBtdXRhdGUgdGhlIG9yaWdpbmFsIGRlZmluaXRpb24uCiAgICB2YXIgc3RhdGljQmluZGluZyA9IGV4dGVuZCh7fSwgZGVmYXVsdHMsIGRlZmluaXRpb24pOwogICAgb3ZlcnJpZGVNZXRob2Qoc3RhdGljQmluZGluZywgImZpbmQiLCBmdW5jdGlvbihzdXBlcmZ1bmMpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNjb3BlKSB7CiAgICAgICAgdmFyIHJlc3VsdHMgPSBzdXBlcmZ1bmMoc2NvcGUpOwogICAgICAgIC8vIEZpbHRlciBvdXQgU2hpbnkgb3V0cHV0cywgd2Ugb25seSB3YW50IHRoZSBzdGF0aWMga2luZAogICAgICAgIHJldHVybiBmaWx0ZXJCeUNsYXNzKHJlc3VsdHMsICJodG1sLXdpZGdldC1vdXRwdXQiLCBmYWxzZSk7CiAgICAgIH07CiAgICB9KTsKICAgIHdpbmRvdy5IVE1MV2lkZ2V0cy53aWRnZXRzLnB1c2goc3RhdGljQmluZGluZyk7CgogICAgaWYgKHNoaW55TW9kZSkgewogICAgICAvLyBTaGlueSBpcyBydW5uaW5nLiBSZWdpc3RlciB0aGUgZGVmaW5pdGlvbiB3aXRoIGFuIG91dHB1dCBiaW5kaW5nLgogICAgICAvLyBUaGUgZGVmaW5pdGlvbiBpdHNlbGYgd2lsbCBub3QgYmUgdGhlIG91dHB1dCBiaW5kaW5nLCBpbnN0ZWFkCiAgICAgIC8vIHdlIHdpbGwgbWFrZSBhbiBvdXRwdXQgYmluZGluZyBvYmplY3QgdGhhdCBkZWxlZ2F0ZXMgdG8gdGhlCiAgICAgIC8vIGRlZmluaXRpb24uIFRoaXMgaXMgYmVjYXVzZSB3ZSBmb29saXNobHkgdXNlZCB0aGUgc2FtZSBtZXRob2QKICAgICAgLy8gbmFtZSAocmVuZGVyVmFsdWUpIGZvciBodG1sd2lkZ2V0cyBkZWZpbml0aW9uIGFuZCBTaGlueSBiaW5kaW5ncwogICAgICAvLyBidXQgdGhleSBhY3R1YWxseSBoYXZlIHF1aXRlIGRpZmZlcmVudCBzZW1hbnRpY3MgKHRoZSBTaGlueQogICAgICAvLyBiaW5kaW5ncyByZWNlaXZlIGRhdGEgdGhhdCBpbmNsdWRlcyBsb3RzIG9mIG1ldGFkYXRhIHRoYXQgaXQKICAgICAgLy8gc3RyaXBzIG9mZiBiZWZvcmUgY2FsbGluZyBodG1sd2lkZ2V0cyByZW5kZXJWYWx1ZSkuIFdlIGNhbid0CiAgICAgIC8vIGp1c3QgaWdub3JlIHRoZSBkaWZmZXJlbmNlIGJlY2F1c2UgaW4gc29tZSB3aWRnZXRzIGl0J3MgaGVscGZ1bAogICAgICAvLyB0byBjYWxsIHRoaXMucmVuZGVyVmFsdWUoKSBmcm9tIGluc2lkZSBvZiByZXNpemUoKSwgYW5kIGlmCiAgICAgIC8vIHdlJ3JlIG5vdCBkZWxlZ2F0aW5nLCB0aGVuIHRoYXQgY2FsbCB3aWxsIGdvIHRvIHRoZSBTaGlueQogICAgICAvLyB2ZXJzaW9uIGluc3RlYWQgb2YgdGhlIGh0bWx3aWRnZXRzIHZlcnNpb24uCgogICAgICAvLyBNZXJnZSBkZWZhdWx0cyB3aXRoIGRlZmluaXRpb24sIHdpdGhvdXQgbXV0YXRpbmcgZWl0aGVyLgogICAgICB2YXIgYmluZGluZ0RlZiA9IGV4dGVuZCh7fSwgZGVmYXVsdHMsIGRlZmluaXRpb24pOwoKICAgICAgLy8gVGhpcyBvYmplY3Qgd2lsbCBiZSBvdXIgYWN0dWFsIFNoaW55IGJpbmRpbmcuCiAgICAgIHZhciBzaGlueUJpbmRpbmcgPSBuZXcgU2hpbnkuT3V0cHV0QmluZGluZygpOwoKICAgICAgLy8gV2l0aCBhIGZldyBleGNlcHRpb25zLCB3ZSdsbCB3YW50IHRvIHNpbXBseSB1c2UgdGhlIGJpbmRpbmdEZWYncwogICAgICAvLyB2ZXJzaW9uIG9mIG1ldGhvZHMgaWYgdGhleSBhcmUgYXZhaWxhYmxlLCBvdGhlcndpc2UgZmFsbCBiYWNrIHRvCiAgICAgIC8vIFNoaW55J3MgZGVmYXVsdHMuIE5PVEU6IElmIFNoaW55J3Mgb3V0cHV0IGJpbmRpbmdzIGdhaW4gYWRkaXRpb25hbAogICAgICAvLyBtZXRob2RzIGluIHRoZSBmdXR1cmUsIGFuZCB3ZSB3YW50IHRoZW0gdG8gYmUgb3ZlcnJpZGVhYmxlIGJ5CiAgICAgIC8vIEhUTUxXaWRnZXQgYmluZGluZyBkZWZpbml0aW9ucywgdGhlbiB3ZSdsbCBuZWVkIHRvIGFkZCB0aGVtIHRvIHRoaXMKICAgICAgLy8gbGlzdC4KICAgICAgZGVsZWdhdGVNZXRob2Qoc2hpbnlCaW5kaW5nLCBiaW5kaW5nRGVmLCAiZ2V0SWQiKTsKICAgICAgZGVsZWdhdGVNZXRob2Qoc2hpbnlCaW5kaW5nLCBiaW5kaW5nRGVmLCAib25WYWx1ZUNoYW5nZSIpOwogICAgICBkZWxlZ2F0ZU1ldGhvZChzaGlueUJpbmRpbmcsIGJpbmRpbmdEZWYsICJvblZhbHVlRXJyb3IiKTsKICAgICAgZGVsZWdhdGVNZXRob2Qoc2hpbnlCaW5kaW5nLCBiaW5kaW5nRGVmLCAicmVuZGVyRXJyb3IiKTsKICAgICAgZGVsZWdhdGVNZXRob2Qoc2hpbnlCaW5kaW5nLCBiaW5kaW5nRGVmLCAiY2xlYXJFcnJvciIpOwogICAgICBkZWxlZ2F0ZU1ldGhvZChzaGlueUJpbmRpbmcsIGJpbmRpbmdEZWYsICJzaG93UHJvZ3Jlc3MiKTsKCiAgICAgIC8vIFRoZSBmaW5kLCByZW5kZXJWYWx1ZSwgYW5kIHJlc2l6ZSBhcmUgaGFuZGxlZCBkaWZmZXJlbnRseSwgYmVjYXVzZSB3ZQogICAgICAvLyB3YW50IHRvIGFjdHVhbGx5IGRlY29yYXRlIHRoZSBiZWhhdmlvciBvZiB0aGUgYmluZGluZ0RlZiBtZXRob2RzLgoKICAgICAgc2hpbnlCaW5kaW5nLmZpbmQgPSBmdW5jdGlvbihzY29wZSkgewogICAgICAgIHZhciByZXN1bHRzID0gYmluZGluZ0RlZi5maW5kKHNjb3BlKTsKCiAgICAgICAgLy8gT25seSByZXR1cm4gZWxlbWVudHMgdGhhdCBhcmUgU2hpbnkgb3V0cHV0cywgbm90IHN0YXRpYyBvbmVzCiAgICAgICAgdmFyIGR5bmFtaWNSZXN1bHRzID0gcmVzdWx0cy5maWx0ZXIoIi5odG1sLXdpZGdldC1vdXRwdXQiKTsKCiAgICAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IHdoYXRldmVyIGNhdXNlZCBTaGlueSB0byB0aGluayB0aGVyZSBtaWdodCBiZQogICAgICAgIC8vIG5ldyBkeW5hbWljIG91dHB1dHMsIGFsc28gY2F1c2VkIHRoZXJlIHRvIGJlIG5ldyBzdGF0aWMgb3V0cHV0cy4KICAgICAgICAvLyBTaW5jZSB0aGVyZSBtaWdodCBiZSBsb3RzIG9mIGRpZmZlcmVudCBodG1sd2lkZ2V0cyBiaW5kaW5ncywgd2UKICAgICAgICAvLyBzY2hlZHVsZSBleGVjdXRpb24gZm9yIGxhdGVyLS1ubyBuZWVkIHRvIHN0YXRpY1JlbmRlciBtdWx0aXBsZQogICAgICAgIC8vIHRpbWVzLgogICAgICAgIGlmIChyZXN1bHRzLmxlbmd0aCAhPT0gZHluYW1pY1Jlc3VsdHMubGVuZ3RoKQogICAgICAgICAgc2NoZWR1bGVTdGF0aWNSZW5kZXIoKTsKCiAgICAgICAgcmV0dXJuIGR5bmFtaWNSZXN1bHRzOwogICAgICB9OwoKICAgICAgLy8gV3JhcCByZW5kZXJWYWx1ZSB0byBoYW5kbGUgaW5pdGlhbGl6YXRpb24sIHdoaWNoIHVuZm9ydHVuYXRlbHkgaXNuJ3QKICAgICAgLy8gc3VwcG9ydGVkIG5hdGl2ZWx5IGJ5IFNoaW55IGF0IHRoZSB0aW1lIG9mIHRoaXMgd3JpdGluZy4KCiAgICAgIHNoaW55QmluZGluZy5yZW5kZXJWYWx1ZSA9IGZ1bmN0aW9uKGVsLCBkYXRhKSB7CiAgICAgICAgU2hpbnkucmVuZGVyRGVwZW5kZW5jaWVzKGRhdGEuZGVwcyk7CiAgICAgICAgLy8gUmVzb2x2ZSBzdHJpbmdzIG1hcmtlZCBhcyBqYXZhc2NyaXB0IGxpdGVyYWxzIHRvIG9iamVjdHMKICAgICAgICBpZiAoIShkYXRhLmV2YWxzIGluc3RhbmNlb2YgQXJyYXkpKSBkYXRhLmV2YWxzID0gW2RhdGEuZXZhbHNdOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBkYXRhLmV2YWxzICYmIGkgPCBkYXRhLmV2YWxzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICB3aW5kb3cuSFRNTFdpZGdldHMuZXZhbHVhdGVTdHJpbmdNZW1iZXIoZGF0YS54LCBkYXRhLmV2YWxzW2ldKTsKICAgICAgICB9CiAgICAgICAgaWYgKCFiaW5kaW5nRGVmLnJlbmRlck9uTnVsbFZhbHVlKSB7CiAgICAgICAgICBpZiAoZGF0YS54ID09PSBudWxsKSB7CiAgICAgICAgICAgIGVsLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZWwuc3R5bGUudmlzaWJpbGl0eSA9ICJpbmhlcml0IjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCFlbGVtZW50RGF0YShlbCwgImluaXRpYWxpemVkIikpIHsKICAgICAgICAgIGluaXRTaXppbmcoZWwpOwoKICAgICAgICAgIGVsZW1lbnREYXRhKGVsLCAiaW5pdGlhbGl6ZWQiLCB0cnVlKTsKICAgICAgICAgIGlmIChiaW5kaW5nRGVmLmluaXRpYWxpemUpIHsKICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGJpbmRpbmdEZWYuaW5pdGlhbGl6ZShlbCwgZWwub2Zmc2V0V2lkdGgsCiAgICAgICAgICAgICAgZWwub2Zmc2V0SGVpZ2h0KTsKICAgICAgICAgICAgZWxlbWVudERhdGEoZWwsICJpbml0X3Jlc3VsdCIsIHJlc3VsdCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGJpbmRpbmdEZWYucmVuZGVyVmFsdWUoZWwsIGRhdGEueCwgZWxlbWVudERhdGEoZWwsICJpbml0X3Jlc3VsdCIpKTsKICAgICAgICBldmFsQW5kUnVuKGRhdGEuanNIb29rcy5yZW5kZXIsIGVsZW1lbnREYXRhKGVsLCAiaW5pdF9yZXN1bHQiKSwgW2VsLCBkYXRhLnhdKTsKICAgICAgfTsKCiAgICAgIC8vIE9ubHkgb3ZlcnJpZGUgcmVzaXplIGlmIGJpbmRpbmdEZWYgaW1wbGVtZW50cyBpdAogICAgICBpZiAoYmluZGluZ0RlZi5yZXNpemUpIHsKICAgICAgICBzaGlueUJpbmRpbmcucmVzaXplID0gZnVuY3Rpb24oZWwsIHdpZHRoLCBoZWlnaHQpIHsKICAgICAgICAgIC8vIFNoaW55IGNhbiBjYWxsIHJlc2l6ZSBiZWZvcmUgaW5pdGlhbGl6ZS9yZW5kZXJWYWx1ZSBoYXZlIGJlZW4KICAgICAgICAgIC8vIGNhbGxlZCwgd2hpY2ggZG9lc24ndCBtYWtlIHNlbnNlIGZvciB3aWRnZXRzLgogICAgICAgICAgaWYgKGVsZW1lbnREYXRhKGVsLCAiaW5pdGlhbGl6ZWQiKSkgewogICAgICAgICAgICBiaW5kaW5nRGVmLnJlc2l6ZShlbCwgd2lkdGgsIGhlaWdodCwgZWxlbWVudERhdGEoZWwsICJpbml0X3Jlc3VsdCIpKTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICB9CgogICAgICBTaGlueS5vdXRwdXRCaW5kaW5ncy5yZWdpc3RlcihzaGlueUJpbmRpbmcsIGJpbmRpbmdEZWYubmFtZSk7CiAgICB9CiAgfTsKCiAgdmFyIHNjaGVkdWxlU3RhdGljUmVuZGVyVGltZXJJZCA9IG51bGw7CiAgZnVuY3Rpb24gc2NoZWR1bGVTdGF0aWNSZW5kZXIoKSB7CiAgICBpZiAoIXNjaGVkdWxlU3RhdGljUmVuZGVyVGltZXJJZCkgewogICAgICBzY2hlZHVsZVN0YXRpY1JlbmRlclRpbWVySWQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgIHNjaGVkdWxlU3RhdGljUmVuZGVyVGltZXJJZCA9IG51bGw7CiAgICAgICAgd2luZG93LkhUTUxXaWRnZXRzLnN0YXRpY1JlbmRlcigpOwogICAgICB9LCAxKTsKICAgIH0KICB9CgogIC8vIFJlbmRlciBzdGF0aWMgd2lkZ2V0cyBhZnRlciB0aGUgZG9jdW1lbnQgZmluaXNoZXMgbG9hZGluZwogIC8vIFN0YXRpY2FsbHkgcmVuZGVyIGFsbCBlbGVtZW50cyB0aGF0IGFyZSBvZiB0aGlzIHdpZGdldCdzIGNsYXNzCiAgd2luZG93LkhUTUxXaWRnZXRzLnN0YXRpY1JlbmRlciA9IGZ1bmN0aW9uKCkgewogICAgdmFyIGJpbmRpbmdzID0gd2luZG93LkhUTUxXaWRnZXRzLndpZGdldHMgfHwgW107CiAgICBmb3JFYWNoKGJpbmRpbmdzLCBmdW5jdGlvbihiaW5kaW5nKSB7CiAgICAgIHZhciBtYXRjaGVzID0gYmluZGluZy5maW5kKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCk7CiAgICAgIGZvckVhY2gobWF0Y2hlcywgZnVuY3Rpb24oZWwpIHsKICAgICAgICB2YXIgc2l6ZU9iaiA9IGluaXRTaXppbmcoZWwsIGJpbmRpbmcpOwoKICAgICAgICBpZiAoaGFzQ2xhc3MoZWwsICJodG1sLXdpZGdldC1zdGF0aWMtYm91bmQiKSkKICAgICAgICAgIHJldHVybjsKICAgICAgICBlbC5jbGFzc05hbWUgPSBlbC5jbGFzc05hbWUgKyAiIGh0bWwtd2lkZ2V0LXN0YXRpYy1ib3VuZCI7CgogICAgICAgIHZhciBpbml0UmVzdWx0OwogICAgICAgIGlmIChiaW5kaW5nLmluaXRpYWxpemUpIHsKICAgICAgICAgIGluaXRSZXN1bHQgPSBiaW5kaW5nLmluaXRpYWxpemUoZWwsCiAgICAgICAgICAgIHNpemVPYmogPyBzaXplT2JqLmdldFdpZHRoKCkgOiBlbC5vZmZzZXRXaWR0aCwKICAgICAgICAgICAgc2l6ZU9iaiA/IHNpemVPYmouZ2V0SGVpZ2h0KCkgOiBlbC5vZmZzZXRIZWlnaHQKICAgICAgICAgICk7CiAgICAgICAgICBlbGVtZW50RGF0YShlbCwgImluaXRfcmVzdWx0IiwgaW5pdFJlc3VsdCk7CiAgICAgICAgfQoKICAgICAgICBpZiAoYmluZGluZy5yZXNpemUpIHsKICAgICAgICAgIHZhciBsYXN0U2l6ZSA9IHsKICAgICAgICAgICAgdzogc2l6ZU9iaiA/IHNpemVPYmouZ2V0V2lkdGgoKSA6IGVsLm9mZnNldFdpZHRoLAogICAgICAgICAgICBoOiBzaXplT2JqID8gc2l6ZU9iai5nZXRIZWlnaHQoKSA6IGVsLm9mZnNldEhlaWdodAogICAgICAgICAgfTsKICAgICAgICAgIHZhciByZXNpemVIYW5kbGVyID0gZnVuY3Rpb24oZSkgewogICAgICAgICAgICB2YXIgc2l6ZSA9IHsKICAgICAgICAgICAgICB3OiBzaXplT2JqID8gc2l6ZU9iai5nZXRXaWR0aCgpIDogZWwub2Zmc2V0V2lkdGgsCiAgICAgICAgICAgICAgaDogc2l6ZU9iaiA/IHNpemVPYmouZ2V0SGVpZ2h0KCkgOiBlbC5vZmZzZXRIZWlnaHQKICAgICAgICAgICAgfTsKICAgICAgICAgICAgaWYgKHNpemUudyA9PT0gMCAmJiBzaXplLmggPT09IDApCiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBpZiAoc2l6ZS53ID09PSBsYXN0U2l6ZS53ICYmIHNpemUuaCA9PT0gbGFzdFNpemUuaCkKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGxhc3RTaXplID0gc2l6ZTsKICAgICAgICAgICAgYmluZGluZy5yZXNpemUoZWwsIHNpemUudywgc2l6ZS5oLCBpbml0UmVzdWx0KTsKICAgICAgICAgIH07CgogICAgICAgICAgb24od2luZG93LCAicmVzaXplIiwgcmVzaXplSGFuZGxlcik7CgogICAgICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgZm9yIGNhc2VzIHdoZXJlIHdlJ3JlIHJ1bm5pbmcgaW4gYSBTaGlueQogICAgICAgICAgLy8gYXBwLCBidXQgdGhlIHdpZGdldCBpdHNlbGYgaXMgbm90IGEgU2hpbnkgb3V0cHV0LCBidXQKICAgICAgICAgIC8vIHJhdGhlciBhIHNpbXBsZSBzdGF0aWMgd2lkZ2V0LiBPbmUgZXhhbXBsZSBvZiB0aGlzIGlzCiAgICAgICAgICAvLyBhbiBybWFya2Rvd24gZG9jdW1lbnQgdGhhdCBoYXMgcnVudGltZTpzaGlueSBhbmQgd2lkZ2V0CiAgICAgICAgICAvLyB0aGF0IGlzbid0IGluIGEgcmVuZGVyIGZ1bmN0aW9uLiBTaGlueSBvbmx5IGtub3dzIHRvCiAgICAgICAgICAvLyBjYWxsIHJlc2l6ZSBoYW5kbGVycyBmb3IgU2hpbnkgb3V0cHV0cywgbm90IGZvciBzdGF0aWMKICAgICAgICAgIC8vIHdpZGdldHMsIHNvIHdlIGRvIGl0IG91cnNlbHZlcy4KICAgICAgICAgIGlmICh3aW5kb3cualF1ZXJ5KSB7CiAgICAgICAgICAgIHdpbmRvdy5qUXVlcnkoZG9jdW1lbnQpLm9uKAogICAgICAgICAgICAgICJzaG93bi5odG1sd2lkZ2V0cyBzaG93bi5icy50YWIuaHRtbHdpZGdldHMgc2hvd24uYnMuY29sbGFwc2UuaHRtbHdpZGdldHMiLAogICAgICAgICAgICAgIHJlc2l6ZUhhbmRsZXIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgd2luZG93LmpRdWVyeShkb2N1bWVudCkub24oCiAgICAgICAgICAgICAgImhpZGRlbi5odG1sd2lkZ2V0cyBoaWRkZW4uYnMudGFiLmh0bWx3aWRnZXRzIGhpZGRlbi5icy5jb2xsYXBzZS5odG1sd2lkZ2V0cyIsCiAgICAgICAgICAgICAgcmVzaXplSGFuZGxlcgogICAgICAgICAgICApOwogICAgICAgICAgfQoKICAgICAgICAgIC8vIFRoaXMgaXMgbmVlZGVkIGZvciB0aGUgc3BlY2lmaWMgY2FzZSBvZiBpb3NsaWRlcywgd2hpY2gKICAgICAgICAgIC8vIGZsaXBzIHNsaWRlcyBiZXR3ZWVuIGRpc3BsYXk6bm9uZSBhbmQgZGlzcGxheTpibG9jay4KICAgICAgICAgIC8vIElkZWFsbHkgd2Ugd291bGQgbm90IGhhdmUgdG8gaGF2ZSBpb3NsaWRlLXNwZWNpZmljIGNvZGUKICAgICAgICAgIC8vIGhlcmUsIGJ1dCByYXRoZXIgaGF2ZSBpb3NsaWRlcyByYWlzZSBhIGdlbmVyaWMgZXZlbnQsCiAgICAgICAgICAvLyBidXQgdGhlIHJtYXJrZG93biBwYWNrYWdlIGp1c3Qgd2VudCB0byBDUkFOIHNvIHRoZQogICAgICAgICAgLy8gd2luZG93IHRvIGdldHRpbmcgdGhhdCBmaXhlZCBtYXkgYmUgbG9uZy4KICAgICAgICAgIGlmICh3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcikgewogICAgICAgICAgICAvLyBJdCdzIE9LIHRvIGxpbWl0IHRoaXMgdG8gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIKICAgICAgICAgICAgLy8gYnJvd3NlcnMgYmVjYXVzZSBpb3NsaWRlcyBpdHNlbGYgb25seSBzdXBwb3J0cwogICAgICAgICAgICAvLyBzdWNoIGJyb3dzZXJzLgogICAgICAgICAgICBvbihkb2N1bWVudCwgInNsaWRlZW50ZXIiLCByZXNpemVIYW5kbGVyKTsKICAgICAgICAgICAgb24oZG9jdW1lbnQsICJzbGlkZWxlYXZlIiwgcmVzaXplSGFuZGxlcik7CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICB2YXIgc2NyaXB0RGF0YSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInNjcmlwdFtkYXRhLWZvcj0nIiArIGVsLmlkICsgIiddW3R5cGU9J2FwcGxpY2F0aW9uL2pzb24nXSIpOwogICAgICAgIGlmIChzY3JpcHREYXRhKSB7CiAgICAgICAgICB2YXIgZGF0YSA9IEpTT04ucGFyc2Uoc2NyaXB0RGF0YS50ZXh0Q29udGVudCB8fCBzY3JpcHREYXRhLnRleHQpOwogICAgICAgICAgLy8gUmVzb2x2ZSBzdHJpbmdzIG1hcmtlZCBhcyBqYXZhc2NyaXB0IGxpdGVyYWxzIHRvIG9iamVjdHMKICAgICAgICAgIGlmICghKGRhdGEuZXZhbHMgaW5zdGFuY2VvZiBBcnJheSkpIGRhdGEuZXZhbHMgPSBbZGF0YS5ldmFsc107CiAgICAgICAgICBmb3IgKHZhciBrID0gMDsgZGF0YS5ldmFscyAmJiBrIDwgZGF0YS5ldmFscy5sZW5ndGg7IGsrKykgewogICAgICAgICAgICB3aW5kb3cuSFRNTFdpZGdldHMuZXZhbHVhdGVTdHJpbmdNZW1iZXIoZGF0YS54LCBkYXRhLmV2YWxzW2tdKTsKICAgICAgICAgIH0KICAgICAgICAgIGJpbmRpbmcucmVuZGVyVmFsdWUoZWwsIGRhdGEueCwgaW5pdFJlc3VsdCk7CiAgICAgICAgICBldmFsQW5kUnVuKGRhdGEuanNIb29rcy5yZW5kZXIsIGluaXRSZXN1bHQsIFtlbCwgZGF0YS54XSk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0pOwoKICAgIGludm9rZVBvc3RSZW5kZXJIYW5kbGVycygpOwogIH0KCgogIGZ1bmN0aW9uIGhhc19qUXVlcnkzKCkgewogICAgaWYgKCF3aW5kb3cualF1ZXJ5KSB7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIHZhciAkdmVyc2lvbiA9IHdpbmRvdy5qUXVlcnkuZm4uanF1ZXJ5OwogICAgdmFyICRtYWpvcl92ZXJzaW9uID0gcGFyc2VJbnQoJHZlcnNpb24uc3BsaXQoIi4iKVswXSk7CiAgICByZXR1cm4gJG1ham9yX3ZlcnNpb24gPj0gMzsKICB9CgogIC8qCiAgLyBTaGlueSAxLjQgYnVtcGVkIGpRdWVyeSBmcm9tIDEueCB0byAzLnggd2hpY2ggbWVhbnMgalF1ZXJ5J3MKICAvIG9uLXJlYWR5IGhhbmRsZXIgKGkuZS4sICQoZm4pKSBpcyBub3cgYXN5bmNyb25vdXMgKGkuZS4sIGl0IG5vdwogIC8gcmVhbGx5IG1lYW5zICQoc2V0VGltZW91dChmbikpLgogIC8gaHR0cHM6Ly9qcXVlcnkuY29tL3VwZ3JhZGUtZ3VpZGUvMy4wLyNicmVha2luZy1jaGFuZ2UtZG9jdW1lbnQtcmVhZHktaGFuZGxlcnMtYXJlLW5vdy1hc3luY2hyb25vdXMKICAvCiAgLyBTaW5jZSBTaGlueSB1c2VzICQoKSB0byBzY2hlZHVsZSBpbml0U2hpbnksIHNoaW55Pj0xLjQgY2FsbHMgaW5pdFNoaW55CiAgLyBvbmUgdGljayBsYXRlciB0aGFuIGl0IGRpZCBiZWZvcmUsIHdoaWNoIG1lYW5zIHN0YXRpY1JlbmRlcigpIGlzCiAgLyBjYWxsZWQgcmVuZGVyVmFsdWUoKSBlYXJsaWVyIHRoYW4gKGFkdmFuY2VkKSB3aWRnZXQgYXV0aG9ycyBtaWdodCBiZSBleHBlY3RpbmcuCiAgLyBodHRwczovL2dpdGh1Yi5jb20vcnN0dWRpby9zaGlueS9pc3N1ZXMvMjYzMAogIC8KICAvIEZvciBhIGNvbmNyZXRlIGV4YW1wbGUsIGxlYWZsZXQgaGFzIHNvbWUgbWV0aG9kcyAoZS5nLiwgdXBkYXRlQm91bmRzKQogIC8gd2hpY2ggcmVmZXJlbmNlIFNoaW55IG1ldGhvZHMgcmVnaXN0ZXJlZCBpbiBpbml0U2hpbnkgKGUuZy4sIHNldElucHV0VmFsdWUpLgogIC8gU2luY2UgbGVhZmxldCBpcyBwcml2eSB0byB0aGlzIGxpZmUtY3ljbGUsIGl0IGtub3dzIHRvIHVzZSBzZXRUaW1lb3V0KCkgdG8KICAvIGRlbGF5IGV4ZWN1dGlvbiBvZiB0aG9zZSBtZXRob2RzICh1bnRpbCBTaGlueSBtZXRob2RzIGFyZSByZWFkeSkKICAvIGh0dHBzOi8vZ2l0aHViLmNvbS9yc3R1ZGlvL2xlYWZsZXQvYmxvYi8xOGVjOTgxL2phdmFzY3JpcHQvc3JjL2luZGV4LmpzI0wyNjYtTDI2OAogIC8KICAvIElkZWFsbHkgd2lkZ2V0IGF1dGhvcnMgd291bGRuJ3QgbmVlZCB0byB1c2UgdGhpcyBzZXRUaW1lb3V0KCkgaGFjayB0aGF0CiAgLyBsZWFmbGV0IHVzZXMgdG8gY2FsbCBTaGlueSBtZXRob2RzIG9uIGEgc3RhdGljUmVuZGVyKCkuIEluIHRoZSBsb25nIHJ1biwKICAvIHRoZSBsb2dpYyBpbml0U2hpbnkgc2hvdWxkIGJlIGJyb2tlbiB1cCBzbyB0aGF0IG1ldGhvZCByZWdpc3RyYXRpb24gaGFwcGVucwogIC8gcmlnaHQgYXdheSwgYnV0IGJpbmRpbmcgaGFwcGVucyBsYXRlci4KICAqLwogIGZ1bmN0aW9uIG1heWJlU3RhdGljUmVuZGVyTGF0ZXIoKSB7CiAgICBpZiAoc2hpbnlNb2RlICYmIGhhc19qUXVlcnkzKCkpIHsKICAgICAgd2luZG93LmpRdWVyeSh3aW5kb3cuSFRNTFdpZGdldHMuc3RhdGljUmVuZGVyKTsKICAgIH0gZWxzZSB7CiAgICAgIHdpbmRvdy5IVE1MV2lkZ2V0cy5zdGF0aWNSZW5kZXIoKTsKICAgIH0KICB9CgogIGlmIChkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKSB7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgZnVuY3Rpb24oKSB7CiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCBhcmd1bWVudHMuY2FsbGVlLCBmYWxzZSk7CiAgICAgIG1heWJlU3RhdGljUmVuZGVyTGF0ZXIoKTsKICAgIH0sIGZhbHNlKTsKICB9IGVsc2UgaWYgKGRvY3VtZW50LmF0dGFjaEV2ZW50KSB7CiAgICBkb2N1bWVudC5hdHRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIiwgZnVuY3Rpb24oKSB7CiAgICAgIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSAiY29tcGxldGUiKSB7CiAgICAgICAgZG9jdW1lbnQuZGV0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsIGFyZ3VtZW50cy5jYWxsZWUpOwogICAgICAgIG1heWJlU3RhdGljUmVuZGVyTGF0ZXIoKTsKICAgICAgfQogICAgfSk7CiAgfQoKCiAgd2luZG93LkhUTUxXaWRnZXRzLmdldEF0dGFjaG1lbnRVcmwgPSBmdW5jdGlvbihkZXBuYW1lLCBrZXkpIHsKICAgIC8vIElmIG5vIGtleSwgZGVmYXVsdCB0byB0aGUgZmlyc3QgaXRlbQogICAgaWYgKHR5cGVvZihrZXkpID09PSAidW5kZWZpbmVkIikKICAgICAga2V5ID0gMTsKCiAgICB2YXIgbGluayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRlcG5hbWUgKyAiLSIgKyBrZXkgKyAiLWF0dGFjaG1lbnQiKTsKICAgIGlmICghbGluaykgewogICAgICB0aHJvdyBuZXcgRXJyb3IoIkF0dGFjaG1lbnQgIiArIGRlcG5hbWUgKyAiLyIgKyBrZXkgKyAiIG5vdCBmb3VuZCBpbiBkb2N1bWVudCIpOwogICAgfQogICAgcmV0dXJuIGxpbmsuZ2V0QXR0cmlidXRlKCJocmVmIik7CiAgfTsKCiAgd2luZG93LkhUTUxXaWRnZXRzLmRhdGFmcmFtZVRvRDMgPSBmdW5jdGlvbihkZikgewogICAgdmFyIG5hbWVzID0gW107CiAgICB2YXIgbGVuZ3RoOwogICAgZm9yICh2YXIgbmFtZSBpbiBkZikgewogICAgICAgIGlmIChkZi5oYXNPd25Qcm9wZXJ0eShuYW1lKSkKICAgICAgICAgICAgbmFtZXMucHVzaChuYW1lKTsKICAgICAgICBpZiAodHlwZW9mKGRmW25hbWVdKSAhPT0gIm9iamVjdCIgfHwgdHlwZW9mKGRmW25hbWVdLmxlbmd0aCkgPT09ICJ1bmRlZmluZWQiKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQWxsIGZpZWxkcyBtdXN0IGJlIGFycmF5cyIpOwogICAgICAgIH0gZWxzZSBpZiAodHlwZW9mKGxlbmd0aCkgIT09ICJ1bmRlZmluZWQiICYmIGxlbmd0aCAhPT0gZGZbbmFtZV0ubGVuZ3RoKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQWxsIGZpZWxkcyBtdXN0IGJlIGFycmF5cyBvZiB0aGUgc2FtZSBsZW5ndGgiKTsKICAgICAgICB9CiAgICAgICAgbGVuZ3RoID0gZGZbbmFtZV0ubGVuZ3RoOwogICAgfQogICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgIHZhciBpdGVtOwogICAgZm9yICh2YXIgcm93ID0gMDsgcm93IDwgbGVuZ3RoOyByb3crKykgewogICAgICAgIGl0ZW0gPSB7fTsKICAgICAgICBmb3IgKHZhciBjb2wgPSAwOyBjb2wgPCBuYW1lcy5sZW5ndGg7IGNvbCsrKSB7CiAgICAgICAgICAgIGl0ZW1bbmFtZXNbY29sXV0gPSBkZltuYW1lc1tjb2xdXVtyb3ddOwogICAgICAgIH0KICAgICAgICByZXN1bHRzLnB1c2goaXRlbSk7CiAgICB9CiAgICByZXR1cm4gcmVzdWx0czsKICB9OwoKICB3aW5kb3cuSFRNTFdpZGdldHMudHJhbnNwb3NlQXJyYXkyRCA9IGZ1bmN0aW9uKGFycmF5KSB7CiAgICAgIGlmIChhcnJheS5sZW5ndGggPT09IDApIHJldHVybiBhcnJheTsKICAgICAgdmFyIG5ld0FycmF5ID0gYXJyYXlbMF0ubWFwKGZ1bmN0aW9uKGNvbCwgaSkgewogICAgICAgICAgcmV0dXJuIGFycmF5Lm1hcChmdW5jdGlvbihyb3cpIHsKICAgICAgICAgICAgICByZXR1cm4gcm93W2ldCiAgICAgICAgICB9KQogICAgICB9KTsKICAgICAgcmV0dXJuIG5ld0FycmF5OwogIH07CiAgLy8gU3BsaXQgdmFsdWUgYXQgc3BsaXRDaGFyLCBidXQgYWxsb3cgc3BsaXRDaGFyIHRvIGJlIGVzY2FwZWQKICAvLyB1c2luZyBlc2NhcGVDaGFyLiBBbnkgb3RoZXIgY2hhcmFjdGVycyBlc2NhcGVkIGJ5IGVzY2FwZUNoYXIKICAvLyB3aWxsIGJlIGluY2x1ZGVkIGFzIHVzdWFsIChpbmNsdWRpbmcgZXNjYXBlQ2hhciBpdHNlbGYpLgogIGZ1bmN0aW9uIHNwbGl0V2l0aEVzY2FwZSh2YWx1ZSwgc3BsaXRDaGFyLCBlc2NhcGVDaGFyKSB7CiAgICB2YXIgcmVzdWx0cyA9IFtdOwogICAgdmFyIGVzY2FwZU1vZGUgPSBmYWxzZTsKICAgIHZhciBjdXJyZW50UmVzdWx0ID0gIiI7CiAgICBmb3IgKHZhciBwb3MgPSAwOyBwb3MgPCB2YWx1ZS5sZW5ndGg7IHBvcysrKSB7CiAgICAgIGlmICghZXNjYXBlTW9kZSkgewogICAgICAgIGlmICh2YWx1ZVtwb3NdID09PSBzcGxpdENoYXIpIHsKICAgICAgICAgIHJlc3VsdHMucHVzaChjdXJyZW50UmVzdWx0KTsKICAgICAgICAgIGN1cnJlbnRSZXN1bHQgPSAiIjsKICAgICAgICB9IGVsc2UgaWYgKHZhbHVlW3Bvc10gPT09IGVzY2FwZUNoYXIpIHsKICAgICAgICAgIGVzY2FwZU1vZGUgPSB0cnVlOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjdXJyZW50UmVzdWx0ICs9IHZhbHVlW3Bvc107CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGN1cnJlbnRSZXN1bHQgKz0gdmFsdWVbcG9zXTsKICAgICAgICBlc2NhcGVNb2RlID0gZmFsc2U7CiAgICAgIH0KICAgIH0KICAgIGlmIChjdXJyZW50UmVzdWx0ICE9PSAiIikgewogICAgICByZXN1bHRzLnB1c2goY3VycmVudFJlc3VsdCk7CiAgICB9CiAgICByZXR1cm4gcmVzdWx0czsKICB9CiAgLy8gRnVuY3Rpb24gYXV0aG9yZWQgYnkgWWlodWkvSkogQWxsYWlyZQogIHdpbmRvdy5IVE1MV2lkZ2V0cy5ldmFsdWF0ZVN0cmluZ01lbWJlciA9IGZ1bmN0aW9uKG8sIG1lbWJlcikgewogICAgdmFyIHBhcnRzID0gc3BsaXRXaXRoRXNjYXBlKG1lbWJlciwgJy4nLCAnXFwnKTsKICAgIGZvciAodmFyIGkgPSAwLCBsID0gcGFydHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7CiAgICAgIHZhciBwYXJ0ID0gcGFydHNbaV07CiAgICAgIC8vIHBhcnQgbWF5IGJlIGEgY2hhcmFjdGVyIG9yICdudW1lcmljJyBtZW1iZXIgbmFtZQogICAgICBpZiAobyAhPT0gbnVsbCAmJiB0eXBlb2YgbyA9PT0gIm9iamVjdCIgJiYgcGFydCBpbiBvKSB7CiAgICAgICAgaWYgKGkgPT0gKGwgLSAxKSkgeyAvLyBpZiB3ZSBhcmUgYXQgdGhlIGVuZCBvZiB0aGUgbGluZSB0aGVuIGV2YWx1bGF0ZQogICAgICAgICAgaWYgKHR5cGVvZiBvW3BhcnRdID09PSAic3RyaW5nIikKICAgICAgICAgICAgb1twYXJ0XSA9IHRyeUV2YWwob1twYXJ0XSk7CiAgICAgICAgfSBlbHNlIHsgLy8gb3RoZXJ3aXNlIGNvbnRpbnVlIHRvIG5leHQgZW1iZWRkZWQgb2JqZWN0CiAgICAgICAgICBvID0gb1twYXJ0XTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9OwoKICAvLyBSZXRyaWV2ZSB0aGUgSFRNTFdpZGdldCBpbnN0YW5jZSAoaS5lLiB0aGUgcmV0dXJuIHZhbHVlIG9mIGFuCiAgLy8gSFRNTFdpZGdldCBiaW5kaW5nJ3MgaW5pdGlhbGl6ZSgpIG9yIGZhY3RvcnkoKSBmdW5jdGlvbikKICAvLyBhc3NvY2lhdGVkIHdpdGggYW4gZWxlbWVudCwgb3IgbnVsbCBpZiBub25lLgogIHdpbmRvdy5IVE1MV2lkZ2V0cy5nZXRJbnN0YW5jZSA9IGZ1bmN0aW9uKGVsKSB7CiAgICByZXR1cm4gZWxlbWVudERhdGEoZWwsICJpbml0X3Jlc3VsdCIpOwogIH07CgogIC8vIEZpbmRzIHRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBzY29wZSB0aGF0IG1hdGNoZXMgdGhlIHNlbGVjdG9yLAogIC8vIGFuZCByZXR1cm5zIHRoZSBIVE1MV2lkZ2V0IGluc3RhbmNlIChpLmUuIHRoZSByZXR1cm4gdmFsdWUgb2YKICAvLyBhbiBIVE1MV2lkZ2V0IGJpbmRpbmcncyBpbml0aWFsaXplKCkgb3IgZmFjdG9yeSgpIGZ1bmN0aW9uKQogIC8vIGFzc29jaWF0ZWQgd2l0aCB0aGF0IGVsZW1lbnQsIGlmIGFueS4gSWYgbm8gZWxlbWVudCBtYXRjaGVzIHRoZQogIC8vIHNlbGVjdG9yLCBvciB0aGUgZmlyc3QgbWF0Y2hpbmcgZWxlbWVudCBoYXMgbm8gSFRNTFdpZGdldAogIC8vIGluc3RhbmNlIGFzc29jaWF0ZWQgd2l0aCBpdCwgdGhlbiBudWxsIGlzIHJldHVybmVkLgogIC8vCiAgLy8gVGhlIHNjb3BlIGFyZ3VtZW50IGlzIG9wdGlvbmFsLCBhbmQgZGVmYXVsdHMgdG8gd2luZG93LmRvY3VtZW50LgogIHdpbmRvdy5IVE1MV2lkZ2V0cy5maW5kID0gZnVuY3Rpb24oc2NvcGUsIHNlbGVjdG9yKSB7CiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAxKSB7CiAgICAgIHNlbGVjdG9yID0gc2NvcGU7CiAgICAgIHNjb3BlID0gZG9jdW1lbnQ7CiAgICB9CgogICAgdmFyIGVsID0gc2NvcGUucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7CiAgICBpZiAoZWwgPT09IG51bGwpIHsKICAgICAgcmV0dXJuIG51bGw7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gd2luZG93LkhUTUxXaWRnZXRzLmdldEluc3RhbmNlKGVsKTsKICAgIH0KICB9OwoKICAvLyBGaW5kcyBhbGwgZWxlbWVudHMgaW4gdGhlIHNjb3BlIHRoYXQgbWF0Y2ggdGhlIHNlbGVjdG9yLCBhbmQKICAvLyByZXR1cm5zIHRoZSBIVE1MV2lkZ2V0IGluc3RhbmNlcyAoaS5lLiB0aGUgcmV0dXJuIHZhbHVlcyBvZgogIC8vIGFuIEhUTUxXaWRnZXQgYmluZGluZydzIGluaXRpYWxpemUoKSBvciBmYWN0b3J5KCkgZnVuY3Rpb24pCiAgLy8gYXNzb2NpYXRlZCB3aXRoIHRoZSBlbGVtZW50cywgaW4gYW4gYXJyYXkuIElmIGVsZW1lbnRzIHRoYXQKICAvLyBtYXRjaCB0aGUgc2VsZWN0b3IgZG9uJ3QgaGF2ZSBhbiBhc3NvY2lhdGVkIEhUTUxXaWRnZXQKICAvLyBpbnN0YW5jZSwgdGhlIHJldHVybmVkIGFycmF5IHdpbGwgY29udGFpbiBudWxscy4KICAvLwogIC8vIFRoZSBzY29wZSBhcmd1bWVudCBpcyBvcHRpb25hbCwgYW5kIGRlZmF1bHRzIHRvIHdpbmRvdy5kb2N1bWVudC4KICB3aW5kb3cuSFRNTFdpZGdldHMuZmluZEFsbCA9IGZ1bmN0aW9uKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMSkgewogICAgICBzZWxlY3RvciA9IHNjb3BlOwogICAgICBzY29wZSA9IGRvY3VtZW50OwogICAgfQoKICAgIHZhciBub2RlcyA9IHNjb3BlLnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpOwogICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsKICAgICAgcmVzdWx0cy5wdXNoKHdpbmRvdy5IVE1MV2lkZ2V0cy5nZXRJbnN0YW5jZShub2Rlc1tpXSkpOwogICAgfQogICAgcmV0dXJuIHJlc3VsdHM7CiAgfTsKCiAgdmFyIHBvc3RSZW5kZXJIYW5kbGVycyA9IFtdOwogIGZ1bmN0aW9uIGludm9rZVBvc3RSZW5kZXJIYW5kbGVycygpIHsKICAgIHdoaWxlIChwb3N0UmVuZGVySGFuZGxlcnMubGVuZ3RoKSB7CiAgICAgIHZhciBoYW5kbGVyID0gcG9zdFJlbmRlckhhbmRsZXJzLnNoaWZ0KCk7CiAgICAgIGlmIChoYW5kbGVyKSB7CiAgICAgICAgaGFuZGxlcigpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZWdpc3RlciB0aGUgZ2l2ZW4gY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgaW52b2tlZCBhZnRlciB0aGUKICAvLyBuZXh0IHRpbWUgc3RhdGljIHdpZGdldHMgYXJlIHJlbmRlcmVkLgogIHdpbmRvdy5IVE1MV2lkZ2V0cy5hZGRQb3N0UmVuZGVySGFuZGxlciA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7CiAgICBwb3N0UmVuZGVySGFuZGxlcnMucHVzaChjYWxsYmFjayk7CiAgfTsKCiAgLy8gVGFrZXMgYSBuZXctc3R5bGUgaW5zdGFuY2UtYm91bmQgZGVmaW5pdGlvbiwgYW5kIHJldHVybnMgYW4KICAvLyBvbGQtc3R5bGUgY2xhc3MtYm91bmQgZGVmaW5pdGlvbi4gVGhpcyBzYXZlcyB1cyBmcm9tIGhhdmluZwogIC8vIHRvIHJld3JpdGUgYWxsIHRoZSBsb2dpYyBpbiB0aGlzIGZpbGUgdG8gYWNjb21vZGF0ZSBib3RoCiAgLy8gdHlwZXMgb2YgZGVmaW5pdGlvbnMuCiAgZnVuY3Rpb24gY3JlYXRlTGVnYWN5RGVmaW5pdGlvbkFkYXB0ZXIoZGVmbikgewogICAgdmFyIHJlc3VsdCA9IHsKICAgICAgbmFtZTogZGVmbi5uYW1lLAogICAgICB0eXBlOiBkZWZuLnR5cGUsCiAgICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0KSB7CiAgICAgICAgcmV0dXJuIGRlZm4uZmFjdG9yeShlbCwgd2lkdGgsIGhlaWdodCk7CiAgICAgIH0sCiAgICAgIHJlbmRlclZhbHVlOiBmdW5jdGlvbihlbCwgeCwgaW5zdGFuY2UpIHsKICAgICAgICByZXR1cm4gaW5zdGFuY2UucmVuZGVyVmFsdWUoeCk7CiAgICAgIH0sCiAgICAgIHJlc2l6ZTogZnVuY3Rpb24oZWwsIHdpZHRoLCBoZWlnaHQsIGluc3RhbmNlKSB7CiAgICAgICAgcmV0dXJuIGluc3RhbmNlLnJlc2l6ZSh3aWR0aCwgaGVpZ2h0KTsKICAgICAgfQogICAgfTsKCiAgICBpZiAoZGVmbi5maW5kKQogICAgICByZXN1bHQuZmluZCA9IGRlZm4uZmluZDsKICAgIGlmIChkZWZuLnJlbmRlckVycm9yKQogICAgICByZXN1bHQucmVuZGVyRXJyb3IgPSBkZWZuLnJlbmRlckVycm9yOwogICAgaWYgKGRlZm4uY2xlYXJFcnJvcikKICAgICAgcmVzdWx0LmNsZWFyRXJyb3IgPSBkZWZuLmNsZWFyRXJyb3I7CgogICAgcmV0dXJuIHJlc3VsdDsKICB9Cn0pKCk7Cgo="></script>
<script src="data:application/javascript;base64,CkhUTUxXaWRnZXRzLndpZGdldCh7CiAgbmFtZTogInBsb3RseSIsCiAgdHlwZTogIm91dHB1dCIsCgogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0KSB7CiAgICByZXR1cm4ge307CiAgfSwKCiAgcmVzaXplOiBmdW5jdGlvbihlbCwgd2lkdGgsIGhlaWdodCwgaW5zdGFuY2UpIHsKICAgIGlmIChpbnN0YW5jZS5hdXRvc2l6ZSkgewogICAgICB2YXIgd2lkdGggPSBpbnN0YW5jZS53aWR0aCB8fCB3aWR0aDsKICAgICAgdmFyIGhlaWdodCA9IGluc3RhbmNlLmhlaWdodCB8fCBoZWlnaHQ7CiAgICAgIFBsb3RseS5yZWxheW91dChlbC5pZCwge3dpZHRoOiB3aWR0aCwgaGVpZ2h0OiBoZWlnaHR9KTsKICAgIH0KICB9LCAgCiAgCiAgcmVuZGVyVmFsdWU6IGZ1bmN0aW9uKGVsLCB4LCBpbnN0YW5jZSkgewogICAgCiAgICAvLyBQbG90bHkucmVsYXlvdXQoKSBtdXRhdGVzIHRoZSBwbG90IGlucHV0IG9iamVjdCwgc28gbWFrZSBzdXJlIHRvIAogICAgLy8ga2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgdXNlci1zdXBwbGllZCB3aWR0aC9oZWlnaHQgKmJlZm9yZSoKICAgIC8vIHdlIGNhbGwgUGxvdGx5LnBsb3QoKTsKICAgIHZhciBsYXkgPSB4LmxheW91dCB8fCB7fTsKICAgIGluc3RhbmNlLndpZHRoID0gbGF5LndpZHRoOwogICAgaW5zdGFuY2UuaGVpZ2h0ID0gbGF5LmhlaWdodDsKICAgIGluc3RhbmNlLmF1dG9zaXplID0gbGF5LmF1dG9zaXplIHx8IHRydWU7CiAgICAKICAgIC8qIAogICAgLyAnaW5mb3JtIHRoZSB3b3JsZCcgYWJvdXQgaGlnaGxpZ2h0aW5nIG9wdGlvbnMgdGhpcyBpcyBzbyBvdGhlcgogICAgLyBjcm9zc3RhbGsgbGlicmFyaWVzIGhhdmUgYSBjaGFuY2UgdG8gcmVzcG9uZCB0byBzcGVjaWFsIHNldHRpbmdzIAogICAgLyBzdWNoIGFzIHBlcnNpc3RlbnQgc2VsZWN0aW9uLiAKICAgIC8gQUZBSUssIGxlYWZsZXQgaXMgdGhlIG9ubHkgbGlicmFyeSB3aXRoIHN1Y2ggaW50ZXJncmF0aW9uCiAgICAvIGh0dHBzOi8vZ2l0aHViLmNvbS9yc3R1ZGlvL2xlYWZsZXQvcHVsbC8zNDYvZmlsZXMjZGlmZi1hZDBjMmQ1MWNlNWZkZjhjOTBjNzM5NWIxMDJmNDI2NVIxNTQKICAgICovCiAgICB2YXIgY3RDb25maWcgPSBjcm9zc3RhbGsudmFyKCdwbG90bHlDcm9zc3RhbGtPcHRzJykuc2V0KHguaGlnaGxpZ2h0KTsKICAgICAgCiAgICBpZiAodHlwZW9mKHdpbmRvdykgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgIC8vIG1ha2Ugc3VyZSBwbG90cyBkb24ndCBnZXQgY3JlYXRlZCBvdXRzaWRlIHRoZSBuZXR3b3JrIChmb3Igb24tcHJlbSkKICAgICAgd2luZG93LlBMT1RMWUVOViA9IHdpbmRvdy5QTE9UTFlFTlYgfHwge307CiAgICAgIHdpbmRvdy5QTE9UTFlFTlYuQkFTRV9VUkwgPSB4LmJhc2VfdXJsOwogICAgICAKICAgICAgLy8gRW5hYmxlIHBlcnNpc3RlbnQgc2VsZWN0aW9uIHdoZW4gc2hpZnQga2V5IGlzIGRvd24KICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTgyODYxMy9jaGVjay1pZi1hLWtleS1pcy1kb3duCiAgICAgIHZhciBwZXJzaXN0T25TaGlmdCA9IGZ1bmN0aW9uKGUpIHsKICAgICAgICBpZiAoIWUpIHdpbmRvdy5ldmVudDsKICAgICAgICBpZiAoZS5zaGlmdEtleSkgeyAKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnQgPSB0cnVlOyAKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnRTaGlmdCA9IHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnQgPSBmYWxzZTsgCiAgICAgICAgICB4LmhpZ2hsaWdodC5wZXJzaXN0ZW50U2hpZnQgPSBmYWxzZTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIAogICAgICAvLyBPbmx5IHJlbGV2YW50IGlmIHdlIGhhdmVuJ3QgZm9yY2VkIHBlcnNpc3RlbnQgbW9kZSBhdCBjb21tYW5kIGxpbmUKICAgICAgaWYgKCF4LmhpZ2hsaWdodC5wZXJzaXN0ZW50KSB7CiAgICAgICAgd2luZG93Lm9ubW91c2Vtb3ZlID0gcGVyc2lzdE9uU2hpZnQ7CiAgICAgIH0KICAgIH0KCiAgICB2YXIgZ3JhcGhEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbC5pZCk7CiAgICAKICAgIC8vIFRPRE86IG1vdmUgdGhlIGNvbnRyb2wgcGFuZWwgaW5qZWN0aW9uIHN0cmF0ZWd5IGluc2lkZSBoZXJlLi4uCiAgICBIVE1MV2lkZ2V0cy5hZGRQb3N0UmVuZGVySGFuZGxlcihmdW5jdGlvbigpIHsKICAgICAgCiAgICAgIC8vIGxvd2VyIHRoZSB6LWluZGV4IG9mIHRoZSBtb2RlYmFyIHRvIHByZXZlbnQgaXQgZnJvbSBoaWdoamFja2luZyBob3ZlcgogICAgICAvLyAoVE9ETzogZG8gdGhpcyB2aWEgQ1NTPykKICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3JvcGVuc2NpL3Bsb3RseS9pc3N1ZXMvOTU2CiAgICAgIC8vIGh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vanNyZWYvcHJvcF9zdHlsZV96aW5kZXguYXNwCiAgICAgIHZhciBtb2RlYmFycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1wbG90bHktcGxvdCAucGxvdGx5IC5tb2RlYmFyIik7CiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbW9kZWJhcnMubGVuZ3RoOyBpKyspIHsKICAgICAgICBtb2RlYmFyc1tpXS5zdHlsZS56SW5kZXggPSAxOwogICAgICB9CiAgICB9KTsKICAgICAgCiAgICAgIC8vIGluamVjdCBhICJjb250cm9sIHBhbmVsIiBob2xkaW5nIHNlbGVjdGl6ZS9keW5hbWljIGNvbG9yIHdpZGdldChzKQogICAgaWYgKHguc2VsZWN0aXplIHx8IHguaGlnaGxpZ2h0LmR5bmFtaWMgJiYgIWluc3RhbmNlLnBsb3RseSkgewogICAgICB2YXIgZmxleCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICBmbGV4LmNsYXNzID0gInBsb3RseS1jcm9zc3RhbGstY29udHJvbC1wYW5lbCI7CiAgICAgIGZsZXguc3R5bGUgPSAiZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwIjsKICAgICAgCiAgICAgIC8vIGluamVjdCB0aGUgY29sb3VycGlja2VyIEhUTUwgY29udGFpbmVyIGludG8gdGhlIGZsZXhib3gKICAgICAgaWYgKHguaGlnaGxpZ2h0LmR5bmFtaWMpIHsKICAgICAgICB2YXIgcGlja2VyRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgCiAgICAgICAgdmFyIHBpY2tlcklucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKICAgICAgICBwaWNrZXJJbnB1dC5pZCA9IGVsLmlkICsgIi1jb2xvdXJwaWNrZXIiOwogICAgICAgIHBpY2tlcklucHV0LnBsYWNlaG9sZGVyID0gImFzZGFzZCI7CiAgICAgICAgCiAgICAgICAgdmFyIHBpY2tlckxhYmVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGFiZWwiKTsKICAgICAgICBwaWNrZXJMYWJlbC5mb3IgPSBwaWNrZXJJbnB1dC5pZDsKICAgICAgICBwaWNrZXJMYWJlbC5pbm5lckhUTUwgPSAiQnJ1c2ggY29sb3ImbmJzcDsmbmJzcDsiOwogICAgICAgIAogICAgICAgIHBpY2tlckRpdi5hcHBlbmRDaGlsZChwaWNrZXJMYWJlbCk7CiAgICAgICAgcGlja2VyRGl2LmFwcGVuZENoaWxkKHBpY2tlcklucHV0KTsKICAgICAgICBmbGV4LmFwcGVuZENoaWxkKHBpY2tlckRpdik7CiAgICAgIH0KICAgICAgCiAgICAgIC8vIGluamVjdCBzZWxlY3RpemUgSFRNTCBjb250YWluZXJzIChvbmUgZm9yIGV2ZXJ5IGNyb3NzdGFsayBncm91cCkKICAgICAgaWYgKHguc2VsZWN0aXplKSB7CiAgICAgICAgdmFyIGlkcyA9IE9iamVjdC5rZXlzKHguc2VsZWN0aXplKTsKICAgICAgICAKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlkcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICAgY29udGFpbmVyLmlkID0gaWRzW2ldOwogICAgICAgICAgY29udGFpbmVyLnN0eWxlID0gIndpZHRoOiA4MCU7IGhlaWdodDogMTAlIjsKICAgICAgICAgIGNvbnRhaW5lci5jbGFzcyA9ICJmb3JtLWdyb3VwIGNyb3NzdGFsay1pbnB1dC1wbG90bHktaGlnaGxpZ2h0IjsKICAgICAgICAgIAogICAgICAgICAgdmFyIGxhYmVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGFiZWwiKTsKICAgICAgICAgIGxhYmVsLmZvciA9IGlkc1tpXTsKICAgICAgICAgIGxhYmVsLmlubmVySFRNTCA9IHguc2VsZWN0aXplW2lkc1tpXV0uZ3JvdXA7CiAgICAgICAgICBsYWJlbC5jbGFzcyA9ICJjb250cm9sLWxhYmVsIjsKICAgICAgICAgIAogICAgICAgICAgdmFyIHNlbGVjdERpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICAgdmFyIHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpOwogICAgICAgICAgc2VsZWN0Lm11bHRpcGxlID0gdHJ1ZTsKICAgICAgICAgIAogICAgICAgICAgc2VsZWN0RGl2LmFwcGVuZENoaWxkKHNlbGVjdCk7CiAgICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQobGFiZWwpOwogICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKHNlbGVjdERpdik7CiAgICAgICAgICBmbGV4LmFwcGVuZENoaWxkKGNvbnRhaW5lcik7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAvLyBmaW5hbGx5LCBpbnNlcnQgdGhlIGZsZXhib3ggaW5zaWRlIHRoZSBodG1sd2lkZ2V0IGNvbnRhaW5lciwKICAgICAgLy8gYnV0IGJlZm9yZSB0aGUgcGxvdGx5IGdyYXBoIGRpdgogICAgICBncmFwaERpdi5wYXJlbnRFbGVtZW50Lmluc2VydEJlZm9yZShmbGV4LCBncmFwaERpdik7CiAgICAgIAogICAgICBpZiAoeC5oaWdobGlnaHQuZHluYW1pYykgewogICAgICAgIHZhciBwaWNrZXIgPSAkKCIjIiArIHBpY2tlcklucHV0LmlkKTsKICAgICAgICB2YXIgY29sb3JzID0geC5oaWdobGlnaHQuY29sb3IgfHwgW107CiAgICAgICAgLy8gVE9ETzogbGV0IHVzZXJzIHNwZWNpZnkgb3B0aW9ucz8KICAgICAgICB2YXIgb3B0cyA9IHsKICAgICAgICAgIHZhbHVlOiBjb2xvcnNbMF0sCiAgICAgICAgICBzaG93Q29sb3VyOiAiYm90aCIsCiAgICAgICAgICBwYWxldHRlOiAibGltaXRlZCIsCiAgICAgICAgICBhbGxvd2VkQ29sczogY29sb3JzLmpvaW4oIiAiKSwKICAgICAgICAgIHdpZHRoOiAiMjAlIiwKICAgICAgICAgIGhlaWdodDogIjEwJSIKICAgICAgICB9OwogICAgICAgIHBpY2tlci5jb2xvdXJwaWNrZXIoe2NoYW5nZURlbGF5OiAwfSk7CiAgICAgICAgcGlja2VyLmNvbG91cnBpY2tlcigic2V0dGluZ3MiLCBvcHRzKTsKICAgICAgICBwaWNrZXIuY29sb3VycGlja2VyKCJ2YWx1ZSIsIG9wdHMudmFsdWUpOwogICAgICAgIC8vIGluZm9ybSBjcm9zc3RhbGsgYWJvdXQgYSBjaGFuZ2UgaW4gdGhlIGN1cnJlbnQgc2VsZWN0aW9uIGNvbG91cgogICAgICAgIHZhciBncnBzID0geC5oaWdobGlnaHQuY3RHcm91cHMgfHwgW107CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBncnBzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICBjcm9zc3RhbGsuZ3JvdXAoZ3Jwc1tpXSkudmFyKCdwbG90bHlTZWxlY3Rpb25Db2xvdXInKQogICAgICAgICAgICAuc2V0KHBpY2tlci5jb2xvdXJwaWNrZXIoJ3ZhbHVlJykpOwogICAgICAgIH0KICAgICAgICBwaWNrZXIub24oImNoYW5nZSIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBncnBzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGNyb3NzdGFsay5ncm91cChncnBzW2ldKS52YXIoJ3Bsb3RseVNlbGVjdGlvbkNvbG91cicpCiAgICAgICAgICAgICAgLnNldChwaWNrZXIuY29sb3VycGlja2VyKCd2YWx1ZScpKTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfQogICAgfQogICAgCiAgICAvLyBpZiBubyBwbG90IGV4aXN0cyB5ZXQsIGNyZWF0ZSBvbmUgd2l0aCBhIHBhcnRpY3VsYXIgY29uZmlndXJhdGlvbgogICAgaWYgKCFpbnN0YW5jZS5wbG90bHkpIHsKICAgICAgCiAgICAgIHZhciBwbG90ID0gUGxvdGx5LnBsb3QoZ3JhcGhEaXYsIHgpOwogICAgICBpbnN0YW5jZS5wbG90bHkgPSB0cnVlOwogICAgICAKICAgIH0gZWxzZSB7CiAgICAgIAogICAgICAvLyB0aGlzIGlzIGVzc2VudGlhbGx5IGVxdWl2YWxlbnQgdG8gUGxvdGx5Lm5ld1Bsb3QoKSwgYnV0IGF2b2lkcyBjcmVhdGluZyAKICAgICAgLy8gYSBuZXcgd2ViZ2wgY29udGV4dAogICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcGxvdGx5L3Bsb3RseS5qcy9ibG9iLzJiMjRmOWRlZjkwMTgzMWU2MTI4MjA3NmNmM2Y4MzU1OThkNTZmMGUvc3JjL3Bsb3RfYXBpL3Bsb3RfYXBpLmpzI0w1MzEtTDUzMgoKICAgICAgLy8gVE9ETzogcmVzdG9yZSBjcm9zc3RhbGsgc2VsZWN0aW9ucz8KICAgICAgUGxvdGx5LnB1cmdlKGdyYXBoRGl2KTsKICAgICAgLy8gVE9ETzogd2h5IGlzIHRoaXMgbmVjZXNzYXJ5IHRvIGdldCBjcm9zc3RhbGsgd29ya2luZz8KICAgICAgZ3JhcGhEaXYuZGF0YSA9IHVuZGVmaW5lZDsKICAgICAgZ3JhcGhEaXYubGF5b3V0ID0gdW5kZWZpbmVkOwogICAgICB2YXIgcGxvdCA9IFBsb3RseS5wbG90KGdyYXBoRGl2LCB4KTsKICAgIH0KICAgIAogICAgLy8gVHJpZ2dlciBwbG90bHkuanMgY2FsbHMgZGVmaW5lZCB2aWEgYHBsb3RseVByb3h5KClgCiAgICBwbG90LnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgIGlmIChIVE1MV2lkZ2V0cy5zaGlueU1vZGUpIHsKICAgICAgICBTaGlueS5hZGRDdXN0b21NZXNzYWdlSGFuZGxlcigicGxvdGx5LWNhbGxzIiwgZnVuY3Rpb24obXNnKSB7CiAgICAgICAgICB2YXIgZ2QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChtc2cuaWQpOwogICAgICAgICAgaWYgKCFnZCkgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNvdWxkbid0IGZpbmQgcGxvdGx5IGdyYXBoIHdpdGggaWQ6ICIgKyBtc2cuaWQpOwogICAgICAgICAgfQogICAgICAgICAgLy8gVGhpcyBpc24ndCBhbiBvZmZpY2lhbCBwbG90bHkuanMgbWV0aG9kLCBidXQgaXQncyB0aGUgb25seSBjdXJyZW50IHdheSB0byAKICAgICAgICAgIC8vIGNoYW5nZSBqdXN0IHRoZSBjb25maWd1cmF0aW9uIG9mIGEgcGxvdCAKICAgICAgICAgIC8vIGh0dHBzOi8vY29tbXVuaXR5LnBsb3QubHkvdC91cGRhdGUtY29uZmlnLWZ1bmN0aW9uLzkwNTcKICAgICAgICAgIGlmIChtc2cubWV0aG9kID09ICJyZWNvbmZpZyIpIHsKICAgICAgICAgICAgUGxvdGx5LnJlYWN0KGdkLCBnZC5kYXRhLCBnZC5sYXlvdXQsIG1zZy5hcmdzKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgICAgaWYgKCFQbG90bHlbbXNnLm1ldGhvZF0pIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIG1ldGhvZCAiICsgbXNnLm1ldGhvZCk7CiAgICAgICAgICB9CiAgICAgICAgICB2YXIgYXJncyA9IFtnZF0uY29uY2F0KG1zZy5hcmdzKTsKICAgICAgICAgIFBsb3RseVttc2cubWV0aG9kXS5hcHBseShudWxsLCBhcmdzKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICAKICAgICAgLy8gcGxvdGx5J3MgbWFwYm94IEFQSSBkb2Vzbid0IGN1cnJlbnRseSBzdXBwb3J0IHNldHRpbmcgYm91bmRpbmcgYm94ZXMKICAgICAgLy8gaHR0cHM6Ly93d3cubWFwYm94LmNvbS9tYXBib3gtZ2wtanMvZXhhbXBsZS9maXRib3VuZHMvCiAgICAgIC8vIHNvIHdlIGRvIHRoaXMgbWFudWFsbHkuLi4KICAgICAgLy8gVE9ETzogbWFrZSBzdXJlIHRoaXMgdHJpZ2dlcnMgb24gYSByZWRyYXcgYW5kIHJlbGF5b3V0IGFzIHdlbGwgYXMgb24gaW5pdGlhbCBkcmF3CiAgICAgIHZhciBtYXBib3hJRHMgPSBncmFwaERpdi5fZnVsbExheW91dC5fc3VicGxvdHMubWFwYm94IHx8IFtdOwogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1hcGJveElEcy5sZW5ndGg7IGkrKykgewogICAgICAgIHZhciBpZCA9IG1hcGJveElEc1tpXTsKICAgICAgICB2YXIgbWFwT3B0cyA9IHgubGF5b3V0W2lkXSB8fCB7fTsKICAgICAgICB2YXIgYXJncyA9IG1hcE9wdHMuX2ZpdEJvdW5kcyB8fCB7fTsKICAgICAgICBpZiAoIWFyZ3MpIHsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICB2YXIgbWFwT2JqID0gZ3JhcGhEaXYuX2Z1bGxMYXlvdXRbaWRdLl9zdWJwbG90Lm1hcDsKICAgICAgICBtYXBPYmouZml0Qm91bmRzKGFyZ3MuYm91bmRzLCBhcmdzLm9wdGlvbnMpOwogICAgICB9CiAgICAgIAogICAgfSk7CiAgICAKICAgIC8vIEF0dGFjaCBhdHRyaWJ1dGVzIChlLmcuLCAia2V5IiwgInoiKSB0byBwbG90bHkgZXZlbnQgZGF0YQogICAgZnVuY3Rpb24gZXZlbnREYXRhV2l0aEtleShldmVudERhdGEpIHsKICAgICAgaWYgKGV2ZW50RGF0YSA9PT0gdW5kZWZpbmVkIHx8ICFldmVudERhdGEuaGFzT3duUHJvcGVydHkoInBvaW50cyIpKSB7CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH0KICAgICAgcmV0dXJuIGV2ZW50RGF0YS5wb2ludHMubWFwKGZ1bmN0aW9uKHB0KSB7CiAgICAgICAgdmFyIG9iaiA9IHsKICAgICAgICAgIGN1cnZlTnVtYmVyOiBwdC5jdXJ2ZU51bWJlciwgCiAgICAgICAgICBwb2ludE51bWJlcjogcHQucG9pbnROdW1iZXIsIAogICAgICAgICAgeDogcHQueCwKICAgICAgICAgIHk6IHB0LnkKICAgICAgICB9OwogICAgICAgIAogICAgICAgIC8vIElmICd6JyBpcyByZXBvcnRlZCB3aXRoIHRoZSBldmVudCBkYXRhLCB0aGVuIHVzZSBpdCEKICAgICAgICBpZiAocHQuaGFzT3duUHJvcGVydHkoInoiKSkgewogICAgICAgICAgb2JqLnogPSBwdC56OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBpZiAocHQuaGFzT3duUHJvcGVydHkoImN1c3RvbWRhdGEiKSkgewogICAgICAgICAgb2JqLmN1c3RvbWRhdGEgPSBwdC5jdXN0b21kYXRhOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiAKICAgICAgICAgIFRMO0RSOiAoSSB0aGluaykgd2UgaGF2ZSB0byBzZWxlY3QgdGhlIGdyYXBoIGRpdiAoYWdhaW4pIHRvIGF0dGFjaCBrZXlzLi4uCiAgICAgICAgICAKICAgICAgICAgIFdoeT8gUmVtZW1iZXIgdGhhdCBjcm9zc3RhbGsgd2lsbCBkeW5hbWljYWxseSBhZGQvZGVsZXRlIHRyYWNlcyAKICAgICAgICAgIChzZWUgdHJhY2VNYW5hZ2VyLnByb3RvdHlwZS51cGRhdGVTZWxlY3Rpb24oKSBiZWxvdykKICAgICAgICAgIEZvciB0aGlzIHJlYXNvbiwgd2UgY2FuJ3Qgc2ltcGx5IGdyYWIga2V5cyBmcm9tIHguZGF0YSAobGlrZSB3ZSBkaWQgcHJldmlvdXNseSkKICAgICAgICAgIE1vcmVvdmVyLCB3ZSBjYW4ndCB1c2UgX2Z1bGxEYXRhLCBzaW5jZSB0aGF0IGRvZXNuJ3QgaW5jbHVkZSAKICAgICAgICAgIHVub2ZmaWNpYWwgYXR0cmlidXRlcy4gSXQncyB0cnVlIHRoYXQgY2xpY2svaG92ZXIgZXZlbnRzIGZpcmUgd2l0aCAKICAgICAgICAgIHB0LmRhdGEsIGJ1dCBkcmFnIGV2ZW50cyBkb24ndC4uLgogICAgICAgICovCiAgICAgICAgdmFyIGdkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWwuaWQpOwogICAgICAgIHZhciB0cmFjZSA9IGdkLmRhdGFbcHQuY3VydmVOdW1iZXJdOwogICAgICAgIAogICAgICAgIGlmICghdHJhY2UuX2lzU2ltcGxlS2V5KSB7CiAgICAgICAgICB2YXIgYXR0cnNUb0F0dGFjaCA9IFsia2V5Il07CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIC8vIHNpbXBsZSBrZXlzIGZpcmUgdGhlIHdob2xlIGtleQogICAgICAgICAgb2JqLmtleSA9IHRyYWNlLmtleTsKICAgICAgICAgIHZhciBhdHRyc1RvQXR0YWNoID0gW107CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXR0cnNUb0F0dGFjaC5sZW5ndGg7IGkrKykgewogICAgICAgICAgdmFyIGF0dHIgPSB0cmFjZVthdHRyc1RvQXR0YWNoW2ldXTsKICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGF0dHIpKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgcHQucG9pbnROdW1iZXIgPT09ICJudW1iZXIiKSB7CiAgICAgICAgICAgICAgb2JqW2F0dHJzVG9BdHRhY2hbaV1dID0gYXR0cltwdC5wb2ludE51bWJlcl07CiAgICAgICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShwdC5wb2ludE51bWJlcikpIHsKICAgICAgICAgICAgICBvYmpbYXR0cnNUb0F0dGFjaFtpXV0gPSBhdHRyW3B0LnBvaW50TnVtYmVyWzBdXVtwdC5wb2ludE51bWJlclsxXV07CiAgICAgICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShwdC5wb2ludE51bWJlcnMpKSB7CiAgICAgICAgICAgICAgb2JqW2F0dHJzVG9BdHRhY2hbaV1dID0gcHQucG9pbnROdW1iZXJzLm1hcChmdW5jdGlvbihpZHgpIHsgcmV0dXJuIGF0dHJbaWR4XTsgfSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIG9iajsKICAgICAgfSk7CiAgICB9CiAgICAKICAgIAogICAgdmFyIGxlZ2VuZEV2ZW50RGF0YSA9IGZ1bmN0aW9uKGQpIHsKICAgICAgLy8gaWYgbGVnZW5kZ3JvdXAgaXMgbm90IHJlbGV2YW50IGp1c3QgcmV0dXJuIHRoZSB0cmFjZQogICAgICB2YXIgdHJhY2UgPSBkLmRhdGFbZC5jdXJ2ZU51bWJlcl07CiAgICAgIGlmICghdHJhY2UubGVnZW5kZ3JvdXApIHJldHVybiB0cmFjZTsKICAgICAgCiAgICAgIC8vIGlmIGxlZ2VuZGdyb3VwIHdhcyBzcGVjaWZpZWQsIHJldHVybiBhbGwgdHJhY2VzIHRoYXQgbWF0Y2ggdGhlIGdyb3VwCiAgICAgIHZhciBsZWdlbmRncnBzID0gZC5kYXRhLm1hcChmdW5jdGlvbih0cmFjZSl7IHJldHVybiB0cmFjZS5sZWdlbmRncm91cDsgfSk7CiAgICAgIHZhciB0cmFjZXMgPSBbXTsKICAgICAgZm9yIChpID0gMDsgaSA8IGxlZ2VuZGdycHMubGVuZ3RoOyBpKyspIHsKICAgICAgICBpZiAobGVnZW5kZ3Jwc1tpXSA9PSB0cmFjZS5sZWdlbmRncm91cCkgewogICAgICAgICAgdHJhY2VzLnB1c2goZC5kYXRhW2ldKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIHJldHVybiB0cmFjZXM7CiAgICB9OwoKICAgIAogICAgLy8gc2VuZCB1c2VyIGlucHV0IGV2ZW50IGRhdGEgdG8gc2hpbnkKICAgIGlmIChIVE1MV2lkZ2V0cy5zaGlueU1vZGUgJiYgU2hpbnkuc2V0SW5wdXRWYWx1ZSkgewogICAgICAKICAgICAgLy8gU29tZSBldmVudHMgY2xlYXIgb3RoZXIgaW5wdXQgdmFsdWVzCiAgICAgIC8vIFRPRE86IGFsd2F5cyByZWdpc3RlciB0aGVzZT8KICAgICAgdmFyIGV2ZW50Q2xlYXJNYXAgPSB7CiAgICAgICAgcGxvdGx5X2Rlc2VsZWN0OiBbInBsb3RseV9zZWxlY3RlZCIsICJwbG90bHlfc2VsZWN0aW5nIiwgInBsb3RseV9icnVzaGVkIiwgInBsb3RseV9icnVzaGluZyIsICJwbG90bHlfY2xpY2siXSwKICAgICAgICBwbG90bHlfdW5ob3ZlcjogWyJwbG90bHlfaG92ZXIiXSwKICAgICAgICBwbG90bHlfZG91YmxlY2xpY2s6IFsicGxvdGx5X2NsaWNrIl0KICAgICAgfTsKICAgIAogICAgICBPYmplY3Qua2V5cyhldmVudENsZWFyTWFwKS5tYXAoZnVuY3Rpb24oZXZ0KSB7CiAgICAgICAgZ3JhcGhEaXYub24oZXZ0LCBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBpbnB1dHNUb0NsZWFyID0gZXZlbnRDbGVhck1hcFtldnRdOwogICAgICAgICAgaW5wdXRzVG9DbGVhci5tYXAoZnVuY3Rpb24oaW5wdXQpIHsKICAgICAgICAgICAgU2hpbnkuc2V0SW5wdXRWYWx1ZShpbnB1dCArICItIiArIHguc291cmNlLCBudWxsLCB7cHJpb3JpdHk6ICJldmVudCJ9KTsKICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgICB9KTsKICAgICAgCiAgICAgIHZhciBldmVudERhdGFGdW5jdGlvbk1hcCA9IHsKICAgICAgICBwbG90bHlfY2xpY2s6IGV2ZW50RGF0YVdpdGhLZXksCiAgICAgICAgcGxvdGx5X3N1bmJ1cnN0Y2xpY2s6IGV2ZW50RGF0YVdpdGhLZXksCiAgICAgICAgcGxvdGx5X2hvdmVyOiBldmVudERhdGFXaXRoS2V5LAogICAgICAgIHBsb3RseV91bmhvdmVyOiBldmVudERhdGFXaXRoS2V5LAogICAgICAgIC8vIElmICdwbG90bHlfc2VsZWN0ZWQnIGhhcyBhbHJlYWR5IGJlZW4gZmlyZWQsIGFuZCB5b3UgY2xpY2sKICAgICAgICAvLyBvbiB0aGUgcGxvdCBhZnRlcndhcmRzLCB0aGlzIGV2ZW50IGZpcmVzIGB1bmRlZmluZWRgPyE/CiAgICAgICAgLy8gVGhhdCBtaWdodCBiZSBjb25zaWRlcmVkIGEgcGxvdGx5LmpzIGJ1ZywgYnV0IGl0IGRvZXNuJ3QgbWFrZSAKICAgICAgICAvLyBzZW5zZSBmb3IgdGhpcyBpbnB1dCBjaGFuZ2UgdG8gb2NjdXIgaWYgYGRgIGlzIGZhbHN5IGJlY2F1c2UsCiAgICAgICAgLy8gZXZlbiBpbiB0aGUgZW1wdHkgc2VsZWN0aW9uIGNhc2UsIGBkYCBpcyB0cnV0aHkgKGFuIG9iamVjdCksCiAgICAgICAgLy8gYW5kIHRoZSAncGxvdGx5X2Rlc2VsZWN0JyBldmVudCB3aWxsIHJlc2V0IHRoaXMgaW5wdXQKICAgICAgICBwbG90bHlfc2VsZWN0ZWQ6IGZ1bmN0aW9uKGQpIHsgaWYgKGQpIHsgcmV0dXJuIGV2ZW50RGF0YVdpdGhLZXkoZCk7IH0gfSwKICAgICAgICBwbG90bHlfc2VsZWN0aW5nOiBmdW5jdGlvbihkKSB7IGlmIChkKSB7IHJldHVybiBldmVudERhdGFXaXRoS2V5KGQpOyB9IH0sCiAgICAgICAgcGxvdGx5X2JydXNoZWQ6IGZ1bmN0aW9uKGQpIHsKICAgICAgICAgIGlmIChkKSB7IHJldHVybiBkLnJhbmdlID8gZC5yYW5nZSA6IGQubGFzc29Qb2ludHM7IH0KICAgICAgICB9LAogICAgICAgIHBsb3RseV9icnVzaGluZzogZnVuY3Rpb24oZCkgewogICAgICAgICAgaWYgKGQpIHsgcmV0dXJuIGQucmFuZ2UgPyBkLnJhbmdlIDogZC5sYXNzb1BvaW50czsgfQogICAgICAgIH0sCiAgICAgICAgcGxvdGx5X2xlZ2VuZGNsaWNrOiBsZWdlbmRFdmVudERhdGEsCiAgICAgICAgcGxvdGx5X2xlZ2VuZGRvdWJsZWNsaWNrOiBsZWdlbmRFdmVudERhdGEsCiAgICAgICAgcGxvdGx5X2NsaWNrYW5ub3RhdGlvbjogZnVuY3Rpb24oZCkgeyByZXR1cm4gZC5mdWxsQW5ub3RhdGlvbiB9CiAgICAgIH07CiAgICAgIAogICAgICB2YXIgcmVnaXN0ZXJTaGlueVZhbHVlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICB2YXIgZXZlbnREYXRhUHJlUHJvY2Vzc29yID0gZXZlbnREYXRhRnVuY3Rpb25NYXBbZXZlbnRdIHx8IGZ1bmN0aW9uKGQpIHsgcmV0dXJuIGQgPyBkIDogZWwuaWQgfTsKICAgICAgICAvLyBzb21lIGV2ZW50cyBhcmUgdW5pcXVlIHRvIHRoZSBSIHBhY2thZ2UKICAgICAgICB2YXIgcGxvdGx5SlNldmVudCA9IChldmVudCA9PSAicGxvdGx5X2JydXNoZWQiKSA/ICJwbG90bHlfc2VsZWN0ZWQiIDogKGV2ZW50ID09ICJwbG90bHlfYnJ1c2hpbmciKSA/ICJwbG90bHlfc2VsZWN0aW5nIiA6IGV2ZW50OwogICAgICAgIC8vIHJlZ2lzdGVyIHRoZSBldmVudAogICAgICAgIGdyYXBoRGl2Lm9uKHBsb3RseUpTZXZlbnQsIGZ1bmN0aW9uKGQpIHsKICAgICAgICAgIFNoaW55LnNldElucHV0VmFsdWUoCiAgICAgICAgICAgIGV2ZW50ICsgIi0iICsgeC5zb3VyY2UsCiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGV2ZW50RGF0YVByZVByb2Nlc3NvcihkKSksCiAgICAgICAgICAgIHtwcmlvcml0eTogImV2ZW50In0KICAgICAgICAgICk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIAogICAgICB2YXIgc2hpbnlFdmVudHMgPSB4LnNoaW55RXZlbnRzIHx8IFtdOwogICAgICBzaGlueUV2ZW50cy5tYXAocmVnaXN0ZXJTaGlueVZhbHVlKTsKICAgIH0KICAgIAogICAgLy8gR2l2ZW4gYW4gYXJyYXkgb2Yge2N1cnZlTnVtYmVyOiB4LCBwb2ludE51bWJlcjogeX0gb2JqZWN0cywKICAgIC8vIHJldHVybiBhIGhhc2ggb2YgewogICAgLy8gICBzZXQxOiB7dmFsdWU6IFtrZXkxLCBrZXkyLCAuLi5dLCBfaXNTaW1wbGVLZXk6IGZhbHNlfSwgCiAgICAvLyAgIHNldDI6IHt2YWx1ZTogW2tleTMsIGtleTQsIC4uLl0sIF9pc1NpbXBsZUtleTogZmFsc2V9CiAgICAvLyB9CiAgICBmdW5jdGlvbiBwb2ludHNUb0tleXMocG9pbnRzKSB7CiAgICAgIHZhciBrZXlzQnlTZXQgPSB7fTsKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAKICAgICAgICB2YXIgdHJhY2UgPSBncmFwaERpdi5kYXRhW3BvaW50c1tpXS5jdXJ2ZU51bWJlcl07CiAgICAgICAgaWYgKCF0cmFjZS5rZXkgfHwgIXRyYWNlLnNldCkgewogICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIHNldCBkZWZhdWx0cyBmb3IgdGhpcyBrZXlTZXQKICAgICAgICAvLyBub3RlIHRoYXQgd2UgZG9uJ3QgdHJhY2sgdGhlIG5lc3RlZCBwcm9wZXJ0eSAoeWV0KSBzaW5jZSB3ZSBhbHdheXMgCiAgICAgICAgLy8gZW1pdCB0aGUgdW5pb24gLS0gaHR0cDovL2Nwc2lldmVydC5naXRodWIuaW8vdGFsa3MvMjAxNjEyMTJiLyMyMQogICAgICAgIGtleXNCeVNldFt0cmFjZS5zZXRdID0ga2V5c0J5U2V0W3RyYWNlLnNldF0gfHwgewogICAgICAgICAgdmFsdWU6IFtdLAogICAgICAgICAgX2lzU2ltcGxlS2V5OiB0cmFjZS5faXNTaW1wbGVLZXkKICAgICAgICB9OwogICAgICAgIAogICAgICAgIC8vIFVzZSBwb2ludE51bWJlciBieSBkZWZhdWx0LCBidXQgYWdncmVnYXRlZCB0cmFjZXMgc2hvdWxkIGVtaXQgcG9pbnROdW1iZXJzCiAgICAgICAgdmFyIHB0TnVtID0gcG9pbnRzW2ldLnBvaW50TnVtYmVyOwogICAgICAgIHZhciBoYXNQdE51bSA9IHR5cGVvZiBwdE51bSA9PT0gIm51bWJlciI7CiAgICAgICAgdmFyIHB0TnVtID0gaGFzUHROdW0gPyBwdE51bSA6IHBvaW50c1tpXS5wb2ludE51bWJlcnM7CiAgICAgICAgCiAgICAgICAgLy8gc2VsZWN0aW5nIGEgcG9pbnQgb2YgYSAic2ltcGxlIiB0cmFjZSBtZWFuczogc2VsZWN0IHRoZSAKICAgICAgICAvLyBlbnRpcmUga2V5IGF0dGFjaGVkIHRvIHRoaXMgdHJhY2UsIHdoaWNoIGlzIHVzZWZ1bCBmb3IsCiAgICAgICAgLy8gc2F5IGNsaWNraW5nIG9uIGEgZml0dGVkIGxpbmUgdG8gc2VsZWN0IGNvcnJlc3BvbmRpbmcgb2JzZXJ2YXRpb25zIAogICAgICAgIHZhciBrZXkgPSB0cmFjZS5faXNTaW1wbGVLZXkgPyB0cmFjZS5rZXkgOiBBcnJheS5pc0FycmF5KHB0TnVtKSA/IHB0TnVtLm1hcChmdW5jdGlvbihpZHgpIHsgcmV0dXJuIHRyYWNlLmtleVtpZHhdOyB9KSA6IHRyYWNlLmtleVtwdE51bV07CiAgICAgICAgLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMDg2NTAyNS9tZXJnZS1mbGF0dGVuLWFuLWFycmF5LW9mLWFycmF5cy1pbi1qYXZhc2NyaXB0CiAgICAgICAgdmFyIGtleUZsYXQgPSB0cmFjZS5faXNOZXN0ZWRLZXkgPyBbXS5jb25jYXQuYXBwbHkoW10sIGtleSkgOiBrZXk7CiAgICAgICAgCiAgICAgICAgLy8gVE9ETzogYmV0dGVyIHRvIG9ubHkgYWRkIG5ldyB2YWx1ZXM/CiAgICAgICAga2V5c0J5U2V0W3RyYWNlLnNldF0udmFsdWUgPSBrZXlzQnlTZXRbdHJhY2Uuc2V0XS52YWx1ZS5jb25jYXQoa2V5RmxhdCk7CiAgICAgIH0KICAgICAgCiAgICAgIHJldHVybiBrZXlzQnlTZXQ7CiAgICB9CiAgICAKICAgIAogICAgeC5oaWdobGlnaHQuY29sb3IgPSB4LmhpZ2hsaWdodC5jb2xvciB8fCBbXTsKICAgIC8vIG1ha2Ugc3VyZSBoaWdobGlnaHQgY29sb3IgaXMgYW4gYXJyYXkKICAgIGlmICghQXJyYXkuaXNBcnJheSh4LmhpZ2hsaWdodC5jb2xvcikpIHsKICAgICAgeC5oaWdobGlnaHQuY29sb3IgPSBbeC5oaWdobGlnaHQuY29sb3JdOwogICAgfQoKICAgIHZhciB0cmFjZU1hbmFnZXIgPSBuZXcgVHJhY2VNYW5hZ2VyKGdyYXBoRGl2LCB4LmhpZ2hsaWdodCk7CgogICAgLy8gR2F0aGVyIGFsbCAqdW5pcXVlKiBzZXRzLgogICAgdmFyIGFsbFNldHMgPSBbXTsKICAgIGZvciAodmFyIGN1cnZlSWR4ID0gMDsgY3VydmVJZHggPCB4LmRhdGEubGVuZ3RoOyBjdXJ2ZUlkeCsrKSB7CiAgICAgIHZhciBuZXdTZXQgPSB4LmRhdGFbY3VydmVJZHhdLnNldDsKICAgICAgaWYgKG5ld1NldCkgewogICAgICAgIGlmIChhbGxTZXRzLmluZGV4T2YobmV3U2V0KSA9PT0gLTEpIHsKICAgICAgICAgIGFsbFNldHMucHVzaChuZXdTZXQpOwogICAgICAgIH0KICAgICAgfQogICAgfQoKICAgIC8vIHJlZ2lzdGVyIGV2ZW50IGxpc3RlbmVycyBmb3IgYWxsIHNldHMKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsU2V0cy5sZW5ndGg7IGkrKykgewogICAgICAKICAgICAgdmFyIHNldCA9IGFsbFNldHNbaV07CiAgICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgY3Jvc3N0YWxrLlNlbGVjdGlvbkhhbmRsZShzZXQpOwogICAgICB2YXIgZmlsdGVyID0gbmV3IGNyb3NzdGFsay5GaWx0ZXJIYW5kbGUoc2V0KTsKICAgICAgCiAgICAgIHZhciBmaWx0ZXJDaGFuZ2UgPSBmdW5jdGlvbihlKSB7CiAgICAgICAgcmVtb3ZlQnJ1c2goZWwpOwogICAgICAgIHRyYWNlTWFuYWdlci51cGRhdGVGaWx0ZXIoc2V0LCBlLnZhbHVlKTsKICAgICAgfTsKICAgICAgZmlsdGVyLm9uKCJjaGFuZ2UiLCBmaWx0ZXJDaGFuZ2UpOwogICAgICAKICAgICAgCiAgICAgIHZhciBzZWxlY3Rpb25DaGFuZ2UgPSBmdW5jdGlvbihlKSB7CiAgICAgICAgCiAgICAgICAgLy8gV29ya2Fyb3VuZCBmb3IgJ3Bsb3RseV9zZWxlY3RlZCcgbm93IGZpcmluZyBwcmV2aW91c2x5IHNlbGVjdGVkCiAgICAgICAgLy8gcG9pbnRzIChpbiBhZGRpdGlvbiB0byBuZXcgb25lcykgd2hlbiBob2xkaW5nIHNoaWZ0IGtleS4gSW4gb3VyIGNhc2UsCiAgICAgICAgLy8gd2UganVzdCB3YW50IHRoZSBuZXcga2V5cyAKICAgICAgICBpZiAoeC5oaWdobGlnaHQub24gPT09ICJwbG90bHlfc2VsZWN0ZWQiICYmIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnRTaGlmdCkgewogICAgICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTE4NzUxOC9ob3ctdG8tZ2V0LXRoZS1kaWZmZXJlbmNlLWJldHdlZW4tdHdvLWFycmF5cy1pbi1qYXZhc2NyaXB0CiAgICAgICAgICBBcnJheS5wcm90b3R5cGUuZGlmZiA9IGZ1bmN0aW9uKGEpIHsKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oaSkge3JldHVybiBhLmluZGV4T2YoaSkgPCAwO30pOwogICAgICAgICAgfTsKICAgICAgICAgIGUudmFsdWUgPSBlLnZhbHVlLmRpZmYoZS5vbGRWYWx1ZSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIGFycmF5IG9mICJldmVudCBvYmplY3RzIiB0cmFja2luZyB0aGUgc2VsZWN0aW9uIGhpc3RvcnkKICAgICAgICAvLyB0aGlzIGlzIHVzZWQgdG8gYXZvaWQgYWRkaW5nIHJlZHVuZGFudCBzZWxlY3Rpb25zCiAgICAgICAgdmFyIHNlbGVjdGlvbkhpc3RvcnkgPSBjcm9zc3RhbGsudmFyKCJwbG90bHlTZWxlY3Rpb25IaXN0b3J5IikuZ2V0KCkgfHwgW107CiAgICAgICAgCiAgICAgICAgLy8gQ29uc3RydWN0IGFuIGV2ZW50IG9iamVjdCAiZGVmaW5pbmciIHRoZSBjdXJyZW50IGV2ZW50LiAKICAgICAgICB2YXIgZXZlbnQgPSB7CiAgICAgICAgICByZWNlaXZlcklEOiB0cmFjZU1hbmFnZXIuZ2QuaWQsCiAgICAgICAgICBwbG90bHlTZWxlY3Rpb25Db2xvdXI6IGNyb3NzdGFsay5ncm91cChzZXQpLnZhcigicGxvdGx5U2VsZWN0aW9uQ29sb3VyIikuZ2V0KCkKICAgICAgICB9OwogICAgICAgIGV2ZW50W3NldF0gPSBlLnZhbHVlOwogICAgICAgIC8vIFRPRE86IGlzIHRoZXJlIGEgc21hcnRlciB3YXkgdG8gY2hlY2sgb2JqZWN0IGVxdWFsaXR5PwogICAgICAgIGlmIChzZWxlY3Rpb25IaXN0b3J5Lmxlbmd0aCA+IDApIHsKICAgICAgICAgIHZhciBldiA9IEpTT04uc3RyaW5naWZ5KGV2ZW50KTsKICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0aW9uSGlzdG9yeS5sZW5ndGg7IGkrKykgewogICAgICAgICAgICB2YXIgc2VsID0gSlNPTi5zdHJpbmdpZnkoc2VsZWN0aW9uSGlzdG9yeVtpXSk7CiAgICAgICAgICAgIGlmIChzZWwgPT0gZXYpIHsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gYWNjdW11bGF0ZSBoaXN0b3J5IGZvciBwZXJzaXN0ZW50IHNlbGVjdGlvbgogICAgICAgIGlmICgheC5oaWdobGlnaHQucGVyc2lzdGVudCkgewogICAgICAgICAgc2VsZWN0aW9uSGlzdG9yeSA9IFtldmVudF07CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHNlbGVjdGlvbkhpc3RvcnkucHVzaChldmVudCk7CiAgICAgICAgfQogICAgICAgIGNyb3NzdGFsay52YXIoInBsb3RseVNlbGVjdGlvbkhpc3RvcnkiKS5zZXQoc2VsZWN0aW9uSGlzdG9yeSk7CiAgICAgICAgCiAgICAgICAgLy8gZG8gdGhlIGFjdHVhbCB1cGRhdGluZyBvZiB0cmFjZXMsIGZyYW1lcywgYW5kIHRoZSBzZWxlY3RpemUgd2lkZ2V0CiAgICAgICAgdHJhY2VNYW5hZ2VyLnVwZGF0ZVNlbGVjdGlvbihzZXQsIGUudmFsdWUpOwogICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9zZWxlY3RpemUvc2VsZWN0aXplLmpzL2Jsb2IvbWFzdGVyL2RvY3MvYXBpLm1kI21ldGhvZHNfaXRlbXMKICAgICAgICBpZiAoeC5zZWxlY3RpemUpIHsKICAgICAgICAgIGlmICgheC5oaWdobGlnaHQucGVyc2lzdGVudCB8fCBlLnZhbHVlID09PSBudWxsKSB7CiAgICAgICAgICAgIHNlbGVjdGl6ZS5jbGVhcih0cnVlKTsKICAgICAgICAgIH0KICAgICAgICAgIHNlbGVjdGl6ZS5hZGRJdGVtcyhlLnZhbHVlLCB0cnVlKTsKICAgICAgICAgIHNlbGVjdGl6ZS5jbG9zZSgpOwogICAgICAgIH0KICAgICAgfQogICAgICBzZWxlY3Rpb24ub24oImNoYW5nZSIsIHNlbGVjdGlvbkNoYW5nZSk7CiAgICAgIAogICAgICAvLyBTZXQgYSBjcm9zc3RhbGsgdmFyaWFibGUgc2VsZWN0aW9uIHZhbHVlLCB0cmlnZ2VyaW5nIGFuIHVwZGF0ZQogICAgICB2YXIgdHVybk9uID0gZnVuY3Rpb24oZSkgewogICAgICAgIGlmIChlKSB7CiAgICAgICAgICB2YXIgc2VsZWN0ZWRLZXlzID0gcG9pbnRzVG9LZXlzKGUucG9pbnRzKTsKICAgICAgICAgIC8vIEtleXMgYXJlIGdyb3VwIG5hbWVzLCB2YWx1ZXMgYXJlIGFycmF5IG9mIHNlbGVjdGVkIGtleXMgZnJvbSBncm91cC4KICAgICAgICAgIGZvciAodmFyIHNldCBpbiBzZWxlY3RlZEtleXMpIHsKICAgICAgICAgICAgaWYgKHNlbGVjdGVkS2V5cy5oYXNPd25Qcm9wZXJ0eShzZXQpKSB7CiAgICAgICAgICAgICAgc2VsZWN0aW9uLnNldChzZWxlY3RlZEtleXNbc2V0XS52YWx1ZSwge3NlbmRlcjogZWx9KTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfTsKICAgICAgaWYgKHguaGlnaGxpZ2h0LmRlYm91bmNlID4gMCkgewogICAgICAgIHR1cm5PbiA9IGRlYm91bmNlKHR1cm5PbiwgeC5oaWdobGlnaHQuZGVib3VuY2UpOwogICAgICB9CiAgICAgIGdyYXBoRGl2Lm9uKHguaGlnaGxpZ2h0Lm9uLCB0dXJuT24pOwogICAgICAKICAgICAgZ3JhcGhEaXYub24oeC5oaWdobGlnaHQub2ZmLCBmdW5jdGlvbiB0dXJuT2ZmKGUpIHsKICAgICAgICAvLyByZW1vdmUgYW55IHZpc3VhbCBjbHVlcwogICAgICAgIHJlbW92ZUJydXNoKGVsKTsKICAgICAgICAvLyByZW1vdmUgYW55IHNlbGVjdGlvbiBoaXN0b3J5CiAgICAgICAgY3Jvc3N0YWxrLnZhcigicGxvdGx5U2VsZWN0aW9uSGlzdG9yeSIpLnNldChudWxsKTsKICAgICAgICAvLyB0cmlnZ2VyIHRoZSBhY3R1YWwgcmVtb3ZhbCBvZiBzZWxlY3Rpb24gdHJhY2VzCiAgICAgICAgc2VsZWN0aW9uLnNldChudWxsLCB7c2VuZGVyOiBlbH0pOwogICAgICB9KTsKICAgICAgICAgIAogICAgICAvLyByZWdpc3RlciBhIGNhbGxiYWNrIGZvciBzZWxlY3RpemUgc28gdGhhdCB0aGVyZSBpcyBiaS1kaXJlY3Rpb25hbAogICAgICAvLyBjb21tdW5pY2F0aW9uIGJldHdlZW4gdGhlIHdpZGdldCBhbmQgZGlyZWN0IG1hbmlwdWxhdGlvbiBldmVudHMKICAgICAgaWYgKHguc2VsZWN0aXplKSB7CiAgICAgICAgdmFyIHNlbGVjdGl6ZUlEID0gT2JqZWN0LmtleXMoeC5zZWxlY3RpemUpW2ldOwogICAgICAgIHZhciBpdGVtcyA9IHguc2VsZWN0aXplW3NlbGVjdGl6ZUlEXS5pdGVtczsKICAgICAgICB2YXIgZmlyc3QgPSBbe3ZhbHVlOiAiIiwgbGFiZWw6ICIoQWxsKSJ9XTsKICAgICAgICB2YXIgb3B0cyA9IHsKICAgICAgICAgIG9wdGlvbnM6IGZpcnN0LmNvbmNhdChpdGVtcyksCiAgICAgICAgICBzZWFyY2hGaWVsZDogImxhYmVsIiwKICAgICAgICAgIHZhbHVlRmllbGQ6ICJ2YWx1ZSIsCiAgICAgICAgICBsYWJlbEZpZWxkOiAibGFiZWwiLAogICAgICAgICAgbWF4SXRlbXM6IDUwCiAgICAgICAgfTsKICAgICAgICB2YXIgc2VsZWN0ID0gJCgiIyIgKyBzZWxlY3RpemVJRCkuZmluZCgic2VsZWN0IilbMF07CiAgICAgICAgdmFyIHNlbGVjdGl6ZSA9ICQoc2VsZWN0KS5zZWxlY3RpemUob3B0cylbMF0uc2VsZWN0aXplOwogICAgICAgIC8vIE5PVEU6IHRoaXMgY2FsbGJhY2sgaXMgdHJpZ2dlcmVkIHdoZW4gKmRpcmVjdGx5KiBhbHRlcmluZyAKICAgICAgICAvLyBkcm9wZG93biBpdGVtcwogICAgICAgIHNlbGVjdGl6ZS5vbigiY2hhbmdlIiwgZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgY3VycmVudEl0ZW1zID0gdHJhY2VNYW5hZ2VyLmdyb3VwU2VsZWN0aW9uc1tzZXRdIHx8IFtdOwogICAgICAgICAgaWYgKCF4LmhpZ2hsaWdodC5wZXJzaXN0ZW50KSB7CiAgICAgICAgICAgIHJlbW92ZUJydXNoKGVsKTsKICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjdXJyZW50SXRlbXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICBzZWxlY3RpemUucmVtb3ZlSXRlbShjdXJyZW50SXRlbXNbaV0sIHRydWUpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICB2YXIgbmV3SXRlbXMgPSBzZWxlY3RpemUuaXRlbXMuZmlsdGVyKGZ1bmN0aW9uKGlkeCkgeyAKICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRJdGVtcy5pbmRleE9mKGlkeCkgPCAwOwogICAgICAgICAgfSk7CiAgICAgICAgICBpZiAobmV3SXRlbXMubGVuZ3RoID4gMCkgewogICAgICAgICAgICB0cmFjZU1hbmFnZXIudXBkYXRlU2VsZWN0aW9uKHNldCwgbmV3SXRlbXMpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gSXRlbSBoYXMgYmVlbiByZW1vdmVkLi4uCiAgICAgICAgICAgIC8vIFRPRE86IHRoaXMgbG9naWMgd29uJ3Qgd29yayBmb3IgZHluYW1pY2FsbHkgY2hhbmdpbmcgcGFsZXR0ZSAKICAgICAgICAgICAgdHJhY2VNYW5hZ2VyLnVwZGF0ZVNlbGVjdGlvbihzZXQsIG51bGwpOwogICAgICAgICAgICB0cmFjZU1hbmFnZXIudXBkYXRlU2VsZWN0aW9uKHNldCwgc2VsZWN0aXplLml0ZW1zKTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfQogICAgfSAvLyBlbmQgb2Ygc2VsZWN0aW9uQ2hhbmdlCiAgICAKICB9IC8vIGVuZCBvZiByZW5kZXJWYWx1ZQp9KTsgLy8gZW5kIG9mIHdpZGdldCBkZWZpbml0aW9uCgovKioKICogQHBhcmFtIGdyYXBoRGl2IFRoZSBQbG90bHkgZ3JhcGggZGl2CiAqIEBwYXJhbSBoaWdobGlnaHQgQW4gb2JqZWN0IHdpdGggb3B0aW9ucyBmb3IgdXBkYXRpbmcgc2VsZWN0aW9uKHMpCiAqLwpmdW5jdGlvbiBUcmFjZU1hbmFnZXIoZ3JhcGhEaXYsIGhpZ2hsaWdodCkgewogIC8vIFRoZSBQbG90bHkgZ3JhcGggZGl2CiAgdGhpcy5nZCA9IGdyYXBoRGl2OwoKICAvLyBQcmVzZXJ2ZSB0aGUgb3JpZ2luYWwgZGF0YS4KICAvLyBUT0RPOiB0cnkgdXNpbmcgTGliLmV4dGVuZEZsYXQoKSBhcyBkb25lIGluICAKICAvLyBodHRwczovL2dpdGh1Yi5jb20vcGxvdGx5L3Bsb3RseS5qcy9wdWxsLzExMzYgCiAgdGhpcy5vcmlnRGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZ3JhcGhEaXYuZGF0YSkpOwogIAogIC8vIGF2b2lkIGRvaW5nIHRoaXMgb3ZlciBhbmQgb3ZlcgogIHRoaXMub3JpZ09wYWNpdHkgPSBbXTsKICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMub3JpZ0RhdGEubGVuZ3RoOyBpKyspIHsKICAgIHRoaXMub3JpZ09wYWNpdHlbaV0gPSB0aGlzLm9yaWdEYXRhW2ldLm9wYWNpdHkgPT09IDAgPyAwIDogKHRoaXMub3JpZ0RhdGFbaV0ub3BhY2l0eSB8fCAxKTsKICB9CgogIC8vIGtleTogZ3JvdXAgbmFtZSwgdmFsdWU6IG51bGwgb3IgYXJyYXkgb2Yga2V5cyByZXByZXNlbnRpbmcgdGhlCiAgLy8gbW9zdCByZWNlbnRseSByZWNlaXZlZCBzZWxlY3Rpb24gZm9yIHRoYXQgZ3JvdXAuCiAgdGhpcy5ncm91cFNlbGVjdGlvbnMgPSB7fTsKICAKICAvLyBzZWxlY3Rpb24gcGFyYW1ldGVycyAoZS5nLiwgdHJhbnNpZW50IHZlcnN1cyBwZXJzaXN0ZW50IHNlbGVjdGlvbikKICB0aGlzLmhpZ2hsaWdodCA9IGhpZ2hsaWdodDsKfQoKVHJhY2VNYW5hZ2VyLnByb3RvdHlwZS5jbG9zZSA9IGZ1bmN0aW9uKCkgewogIC8vIFRPRE86IFVuaG9vayBhbGwgZXZlbnQgaGFuZGxlcnMKfTsKClRyYWNlTWFuYWdlci5wcm90b3R5cGUudXBkYXRlRmlsdGVyID0gZnVuY3Rpb24oZ3JvdXAsIGtleXMpIHsKCiAgaWYgKHR5cGVvZihrZXlzKSA9PT0gInVuZGVmaW5lZCIgfHwga2V5cyA9PT0gbnVsbCkgewogICAgCiAgICB0aGlzLmdkLmRhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMub3JpZ0RhdGEpKTsKICAgIAogIH0gZWxzZSB7CiAgCiAgICB2YXIgdHJhY2VzID0gW107CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMub3JpZ0RhdGEubGVuZ3RoOyBpKyspIHsKICAgICAgdmFyIHRyYWNlID0gdGhpcy5vcmlnRGF0YVtpXTsKICAgICAgaWYgKCF0cmFjZS5rZXkgfHwgdHJhY2Uuc2V0ICE9PSBncm91cCkgewogICAgICAgIGNvbnRpbnVlOwogICAgICB9CiAgICAgIHZhciBtYXRjaEZ1bmMgPSBnZXRNYXRjaEZ1bmModHJhY2UpOwogICAgICB2YXIgbWF0Y2hlcyA9IG1hdGNoRnVuYyh0cmFjZS5rZXksIGtleXMpOwogICAgICAKICAgICAgaWYgKG1hdGNoZXMubGVuZ3RoID4gMCkgewogICAgICAgIGlmICghdHJhY2UuX2lzU2ltcGxlS2V5KSB7CiAgICAgICAgICAvLyBzdWJzZXRBcnJheUF0dHJzIGRvZXNuJ3QgbXV0YXRlIHRyYWNlIChpdCBtYWtlcyBhIG1vZGlmaWVkIGNsb25lKQogICAgICAgICAgdHJhY2UgPSBzdWJzZXRBcnJheUF0dHJzKHRyYWNlLCBtYXRjaGVzKTsKICAgICAgICB9CiAgICAgICAgdHJhY2VzLnB1c2godHJhY2UpOwogICAgICB9CiAgICB9CiAgfQogIAogIHRoaXMuZ2QuZGF0YSA9IHRyYWNlczsKICBQbG90bHkucmVkcmF3KHRoaXMuZ2QpOwogIAogIC8vIE5PVEU6IHdlIHB1cnBvc2VseSBkbyBfbm90XyByZXN0b3JlIHNlbGVjdGlvbihzKSwgc2luY2Ugb24gZmlsdGVyLAogIC8vIGF4aXMgbGlrZWx5IHdpbGwgdXBkYXRlLCBjaGFuZ2luZyB0aGUgcGl4ZWwgLT4gZGF0YSBtYXBwaW5nLCBsZWFkaW5nIAogIC8vIHRvIGEgbGlrZWx5IG1pc21hdGNoIGluIHRoZSBicnVzaCBvdXRsaW5lIGFuZCBoaWdobGlnaHRlZCBtYXJrcwogIAp9OwoKVHJhY2VNYW5hZ2VyLnByb3RvdHlwZS51cGRhdGVTZWxlY3Rpb24gPSBmdW5jdGlvbihncm91cCwga2V5cykgewogIAogIGlmIChrZXlzICE9PSBudWxsICYmICFBcnJheS5pc0FycmF5KGtleXMpKSB7CiAgICB0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQga2V5cyBhcmd1bWVudDsgbnVsbCBvciBhcnJheSBleHBlY3RlZCIpOwogIH0KICAKICAvLyBpZiBzZWxlY3Rpb24gaGFzIGJlZW4gY2xlYXJlZCwgb3IgaWYgdGhpcyBpcyB0cmFuc2llbnQKICAvLyBzZWxlY3Rpb24sIGRlbGV0ZSB0aGUgInNlbGVjdGlvbiB0cmFjZXMiCiAgdmFyIG5OZXdUcmFjZXMgPSB0aGlzLmdkLmRhdGEubGVuZ3RoIC0gdGhpcy5vcmlnRGF0YS5sZW5ndGg7CiAgaWYgKGtleXMgPT09IG51bGwgfHwgIXRoaXMuaGlnaGxpZ2h0LnBlcnNpc3RlbnQgJiYgbk5ld1RyYWNlcyA+IDApIHsKICAgIHZhciB0cmFjZXNUb1JlbW92ZSA9IFtdOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmdkLmRhdGEubGVuZ3RoOyBpKyspIHsKICAgICAgaWYgKHRoaXMuZ2QuZGF0YVtpXS5faXNDcm9zc3RhbGtUcmFjZSkgdHJhY2VzVG9SZW1vdmUucHVzaChpKTsKICAgIH0KICAgIFBsb3RseS5kZWxldGVUcmFjZXModGhpcy5nZCwgdHJhY2VzVG9SZW1vdmUpOwogICAgdGhpcy5ncm91cFNlbGVjdGlvbnNbZ3JvdXBdID0ga2V5czsKICB9IGVsc2UgewogICAgLy8gYWRkIHRvIHRoZSBncm91cFNlbGVjdGlvbiwgcmF0aGVyIHRoYW4gb3ZlcndyaXRpbmcgaXQKICAgIC8vIFRPRE86IGNhbiB0aGlzIGJlIHJlbW92ZWQ/CiAgICB0aGlzLmdyb3VwU2VsZWN0aW9uc1tncm91cF0gPSB0aGlzLmdyb3VwU2VsZWN0aW9uc1tncm91cF0gfHwgW107CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHsKICAgICAgdmFyIGsgPSBrZXlzW2ldOwogICAgICBpZiAodGhpcy5ncm91cFNlbGVjdGlvbnNbZ3JvdXBdLmluZGV4T2YoaykgPCAwKSB7CiAgICAgICAgdGhpcy5ncm91cFNlbGVjdGlvbnNbZ3JvdXBdLnB1c2goayk7CiAgICAgIH0KICAgIH0KICB9CiAgCiAgaWYgKGtleXMgPT09IG51bGwpIHsKICAgIAogICAgUGxvdGx5LnJlc3R5bGUodGhpcy5nZCwgeyJvcGFjaXR5IjogdGhpcy5vcmlnT3BhY2l0eX0pOwogICAgCiAgfSBlbHNlIGlmIChrZXlzLmxlbmd0aCA+PSAxKSB7CiAgICAKICAgIC8vIHBsYWNlaG9sZGVyIGZvciBuZXcgInNlbGVjdGlvbiB0cmFjZXMiCiAgICB2YXIgdHJhY2VzID0gW107CiAgICAvLyB0aGlzIHZhcmlhYmxlIGlzIHNldCBpbiBSL2hpZ2hsaWdodC5SCiAgICB2YXIgc2VsZWN0aW9uQ29sb3VyID0gY3Jvc3N0YWxrLmdyb3VwKGdyb3VwKS52YXIoInBsb3RseVNlbGVjdGlvbkNvbG91ciIpLmdldCgpIHx8IAogICAgICB0aGlzLmhpZ2hsaWdodC5jb2xvclswXTsKCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMub3JpZ0RhdGEubGVuZ3RoOyBpKyspIHsKICAgICAgLy8gVE9ETzogdHJ5IHVzaW5nIExpYi5leHRlbmRGbGF0KCkgYXMgZG9uZSBpbiAgCiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9wbG90bHkvcGxvdGx5LmpzL3B1bGwvMTEzNiAKICAgICAgdmFyIHRyYWNlID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmdkLmRhdGFbaV0pKTsKICAgICAgaWYgKCF0cmFjZS5rZXkgfHwgdHJhY2Uuc2V0ICE9PSBncm91cCkgewogICAgICAgIGNvbnRpbnVlOwogICAgICB9CiAgICAgIC8vIEdldCBzb3J0ZWQgYXJyYXkgb2YgbWF0Y2hpbmcgaW5kaWNlcyBpbiB0cmFjZS5rZXkKICAgICAgdmFyIG1hdGNoRnVuYyA9IGdldE1hdGNoRnVuYyh0cmFjZSk7CiAgICAgIHZhciBtYXRjaGVzID0gbWF0Y2hGdW5jKHRyYWNlLmtleSwga2V5cyk7CiAgICAgIAogICAgICBpZiAobWF0Y2hlcy5sZW5ndGggPiAwKSB7CiAgICAgICAgLy8gSWYgdGhpcyBpcyBhICJzaW1wbGUiIGtleSwgdGhhdCBtZWFucyBzZWxlY3QgdGhlIGVudGlyZSB0cmFjZQogICAgICAgIGlmICghdHJhY2UuX2lzU2ltcGxlS2V5KSB7CiAgICAgICAgICB0cmFjZSA9IHN1YnNldEFycmF5QXR0cnModHJhY2UsIG1hdGNoZXMpOwogICAgICAgIH0KICAgICAgICAvLyByZWFjaCBpbnRvIHRoZSBmdWxsIHRyYWNlIG9iamVjdCBzbyB3ZSBjYW4gcHJvcGVybHkgcmVmbGVjdCB0aGUgCiAgICAgICAgLy8gc2VsZWN0aW9uIGF0dHJpYnV0ZXMgaW4gZXZlcnkgdmlldwogICAgICAgIHZhciBkID0gdGhpcy5nZC5fZnVsbERhdGFbaV07CiAgICAgICAgCiAgICAgICAgLyogCiAgICAgICAgLyBSZWN1cnNpdmVseSBpbmhlcml0IHNlbGVjdGlvbiBhdHRyaWJ1dGVzIGZyb20gdmFyaW91cyBzb3VyY2VzLCAKICAgICAgICAvIGluIG9yZGVyIG9mIHByZWZlcmVuY2U6CiAgICAgICAgLyAgKDEpIG9mZmljaWFsIHBsb3RseS5qcyBzZWxlY3RlZCBhdHRyaWJ1dGUKICAgICAgICAvICAoMikgaGlnaGxpZ2h0KHNlbGVjdGVkID0gYXR0cnNfc2VsZWN0ZWQoLi4uKSkKICAgICAgICAqLwogICAgICAgIC8vIFRPRE86IGl0IHdvdWxkIGJlIG5lYXQgdG8gaGF2ZSBhIGRyb3Bkb3duIHRvIGR5bmFtaWNhbGx5IHNwZWNpZnkgdGhlc2UhCiAgICAgICAgJC5leHRlbmQodHJ1ZSwgdHJhY2UsIHRoaXMuaGlnaGxpZ2h0LnNlbGVjdGVkKTsKICAgICAgICAKICAgICAgICAvLyBpZiBpdCBpcyBkZWZpbmVkLCBvdmVycmlkZSBjb2xvciB3aXRoIHRoZSAiZHluYW1pYyBicnVzaCBjb2xvciIiCiAgICAgICAgaWYgKGQubWFya2VyKSB7CiAgICAgICAgICB0cmFjZS5tYXJrZXIgPSB0cmFjZS5tYXJrZXIgfHwge307CiAgICAgICAgICB0cmFjZS5tYXJrZXIuY29sb3IgPSAgc2VsZWN0aW9uQ29sb3VyIHx8IHRyYWNlLm1hcmtlci5jb2xvciB8fCBkLm1hcmtlci5jb2xvcjsKICAgICAgICB9CiAgICAgICAgaWYgKGQubGluZSkgewogICAgICAgICAgdHJhY2UubGluZSA9IHRyYWNlLmxpbmUgfHwge307CiAgICAgICAgICB0cmFjZS5saW5lLmNvbG9yID0gIHNlbGVjdGlvbkNvbG91ciB8fCB0cmFjZS5saW5lLmNvbG9yIHx8IGQubGluZS5jb2xvcjsKICAgICAgICB9CiAgICAgICAgaWYgKGQudGV4dGZvbnQpIHsKICAgICAgICAgIHRyYWNlLnRleHRmb250ID0gdHJhY2UudGV4dGZvbnQgfHwge307CiAgICAgICAgICB0cmFjZS50ZXh0Zm9udC5jb2xvciA9ICBzZWxlY3Rpb25Db2xvdXIgfHwgdHJhY2UudGV4dGZvbnQuY29sb3IgfHwgZC50ZXh0Zm9udC5jb2xvcjsKICAgICAgICB9CiAgICAgICAgaWYgKGQuZmlsbGNvbG9yKSB7CiAgICAgICAgICAvLyBUT0RPOiBzaG91bGQgc2VsZWN0aW9uQ29sb3VyIGluaGVyaXQgYWxwaGEgZnJvbSB0aGUgZXhpc3RpbmcgZmlsbGNvbG9yPwogICAgICAgICAgdHJhY2UuZmlsbGNvbG9yID0gc2VsZWN0aW9uQ29sb3VyIHx8IHRyYWNlLmZpbGxjb2xvciB8fCBkLmZpbGxjb2xvcjsKICAgICAgICB9CiAgICAgICAgLy8gYXR0YWNoIGEgc2Vuc2libGUgbmFtZS9sZWdlbmRncm91cAogICAgICAgIHRyYWNlLm5hbWUgPSB0cmFjZS5uYW1lIHx8IGtleXMuam9pbigiPGJyIC8+Iik7CiAgICAgICAgdHJhY2UubGVnZW5kZ3JvdXAgPSB0cmFjZS5sZWdlbmRncm91cCB8fCBrZXlzLmpvaW4oIjxiciAvPiIpOwogICAgICAgIAogICAgICAgIC8vIGtlZXAgdHJhY2sgb2YgbWFwcGluZyBiZXR3ZWVuIHRoaXMgbmV3IHRyYWNlIGFuZCB0aGUgdHJhY2UgaXQgdGFyZ2V0cwogICAgICAgIC8vIChuZWNlc3NhcnkgZm9yIHVwZGF0aW5nIGZyYW1lcyB0byByZWZsZWN0IHRoZSBzZWxlY3Rpb24gdHJhY2VzKQogICAgICAgIHRyYWNlLl9vcmlnaW5hbEluZGV4ID0gaTsKICAgICAgICB0cmFjZS5fbmV3SW5kZXggPSB0aGlzLmdkLl9mdWxsRGF0YS5sZW5ndGggKyB0cmFjZXMubGVuZ3RoOwogICAgICAgIHRyYWNlLl9pc0Nyb3NzdGFsa1RyYWNlID0gdHJ1ZTsKICAgICAgICB0cmFjZXMucHVzaCh0cmFjZSk7CiAgICAgIH0KICAgIH0KICAgIAogICAgaWYgKHRyYWNlcy5sZW5ndGggPiAwKSB7CiAgICAgIAogICAgICBQbG90bHkuYWRkVHJhY2VzKHRoaXMuZ2QsIHRyYWNlcykudGhlbihmdW5jdGlvbihnZCkgewogICAgICAgIC8vIGluY3JlbWVudGFsbHkgYWRkIHNlbGVjdGlvbiB0cmFjZXMgdG8gZnJhbWVzCiAgICAgICAgLy8gKHRoaXMgaXMgaGVhdmlseSBpbnNwaXJlZCBieSBQbG90bHkuUGxvdHMubW9kaWZ5RnJhbWVzKCkgCiAgICAgICAgLy8gaW4gc3JjL3Bsb3RzL3Bsb3RzLmpzKQogICAgICAgIHZhciBfaGFzaCA9IGdkLl90cmFuc2l0aW9uRGF0YS5fZnJhbWVIYXNoOwogICAgICAgIHZhciBfZnJhbWVzID0gZ2QuX3RyYW5zaXRpb25EYXRhLl9mcmFtZXMgfHwgW107CiAgICAgICAgCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBfZnJhbWVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAKICAgICAgICAgIC8vIGFkZCB0byBfZnJhbWVzW2ldLnRyYWNlcyAqaWYqIHRoaXMgZnJhbWUgcmVmZXJlbmNlcyBzZWxlY3RlZCB0cmFjZShzKQogICAgICAgICAgdmFyIG5ld0luZGljZXMgPSBbXTsKICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgdHJhY2VzLmxlbmd0aDsgaisrKSB7CiAgICAgICAgICAgIHZhciB0ciA9IHRyYWNlc1tqXTsKICAgICAgICAgICAgaWYgKF9mcmFtZXNbaV0udHJhY2VzLmluZGV4T2YodHIuX29yaWdpbmFsSW5kZXgpID4gLTEpIHsKICAgICAgICAgICAgICBuZXdJbmRpY2VzLnB1c2godHIuX25ld0luZGV4KTsKICAgICAgICAgICAgICBfZnJhbWVzW2ldLnRyYWNlcy5wdXNoKHRyLl9uZXdJbmRleCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIAogICAgICAgICAgLy8gbm90aGluZyB0byBkby4uLgogICAgICAgICAgaWYgKG5ld0luZGljZXMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgCiAgICAgICAgICB2YXIgY3RyID0gMDsKICAgICAgICAgIHZhciBuRnJhbWVUcmFjZXMgPSBfZnJhbWVzW2ldLmRhdGEubGVuZ3RoOwogICAgICAgICAgCiAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IG5GcmFtZVRyYWNlczsgaisrKSB7CiAgICAgICAgICAgIHZhciBmcmFtZVRyYWNlID0gX2ZyYW1lc1tpXS5kYXRhW2pdOwogICAgICAgICAgICBpZiAoIWZyYW1lVHJhY2Uua2V5IHx8IGZyYW1lVHJhY2Uuc2V0ICE9PSBncm91cCkgewogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgbWF0Y2hGdW5jID0gZ2V0TWF0Y2hGdW5jKGZyYW1lVHJhY2UpOwogICAgICAgICAgICB2YXIgbWF0Y2hlcyA9IG1hdGNoRnVuYyhmcmFtZVRyYWNlLmtleSwga2V5cyk7CiAgICAgICAgICAgIAogICAgICAgICAgICBpZiAobWF0Y2hlcy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgaWYgKCF0cmFjZS5faXNTaW1wbGVLZXkpIHsKICAgICAgICAgICAgICAgIGZyYW1lVHJhY2UgPSBzdWJzZXRBcnJheUF0dHJzKGZyYW1lVHJhY2UsIG1hdGNoZXMpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB2YXIgZCA9IGdkLl9mdWxsRGF0YVtuZXdJbmRpY2VzW2N0cl1dOwogICAgICAgICAgICAgIGlmIChkLm1hcmtlcikgewogICAgICAgICAgICAgICAgZnJhbWVUcmFjZS5tYXJrZXIgPSBkLm1hcmtlcjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKGQubGluZSkgewogICAgICAgICAgICAgICAgZnJhbWVUcmFjZS5saW5lID0gZC5saW5lOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoZC50ZXh0Zm9udCkgewogICAgICAgICAgICAgICAgZnJhbWVUcmFjZS50ZXh0Zm9udCA9IGQudGV4dGZvbnQ7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGN0ciA9IGN0ciArIDE7CiAgICAgICAgICAgICAgX2ZyYW1lc1tpXS5kYXRhLnB1c2goZnJhbWVUcmFjZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIAogICAgICAgICAgLy8gdXBkYXRlIGdkLl90cmFuc2l0aW9uRGF0YS5fZnJhbWVIYXNoCiAgICAgICAgICBfaGFzaFtfZnJhbWVzW2ldLm5hbWVdID0gX2ZyYW1lc1tpXTsKICAgICAgICB9CiAgICAgIAogICAgICB9KTsKICAgICAgCiAgICAgIC8vIGRpbSB0cmFjZXMgdGhhdCBoYXZlIGEgc2V0IG1hdGNoaW5nIHRoZSBzZXQgb2Ygc2VsZWN0aW9uIHNldHMKICAgICAgdmFyIHRyYWNlc1RvRGltID0gW10sCiAgICAgICAgICBvcGFjaXRpZXMgPSBbXSwKICAgICAgICAgIHNldHMgPSBPYmplY3Qua2V5cyh0aGlzLmdyb3VwU2VsZWN0aW9ucyksCiAgICAgICAgICBuID0gdGhpcy5vcmlnRGF0YS5sZW5ndGg7CiAgICAgICAgICAKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICB2YXIgb3BhY2l0eSA9IHRoaXMub3JpZ09wYWNpdHlbaV0gfHwgMTsKICAgICAgICAvLyBoYXZlIHdlIGFscmVhZHkgZGltbWVkIHRoaXMgdHJhY2U/IE9yIGlzIHRoaXMgZXZlbiB3b3J0aCBkb2luZz8KICAgICAgICBpZiAob3BhY2l0eSAhPT0gdGhpcy5nZC5fZnVsbERhdGFbaV0ub3BhY2l0eSB8fCB0aGlzLmhpZ2hsaWdodC5vcGFjaXR5RGltID09PSAxKSB7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgLy8gaXMgdGhpcyBzZXQgYW4gZWxlbWVudCBvZiB0aGUgc2V0IG9mIHNlbGVjdGlvbiBzZXRzPwogICAgICAgIHZhciBtYXRjaGVzID0gZmluZE1hdGNoZXMoc2V0cywgW3RoaXMuZ2QuZGF0YVtpXS5zZXRdKTsKICAgICAgICBpZiAobWF0Y2hlcy5sZW5ndGgpIHsKICAgICAgICAgIHRyYWNlc1RvRGltLnB1c2goaSk7CiAgICAgICAgICBvcGFjaXRpZXMucHVzaChvcGFjaXR5ICogdGhpcy5oaWdobGlnaHQub3BhY2l0eURpbSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICBpZiAodHJhY2VzVG9EaW0ubGVuZ3RoID4gMCkgewogICAgICAgIFBsb3RseS5yZXN0eWxlKHRoaXMuZ2QsIHsib3BhY2l0eSI6IG9wYWNpdGllc30sIHRyYWNlc1RvRGltKTsKICAgICAgICAvLyB0dXJuIG9mZiB0aGUgc2VsZWN0ZWQvdW5zZWxlY3RlZCBBUEkKICAgICAgICBQbG90bHkucmVzdHlsZSh0aGlzLmdkLCB7InNlbGVjdGVkcG9pbnRzIjogbnVsbH0pOwogICAgICB9CiAgICAgIAogICAgfQogICAgCiAgfQp9OwoKLyogCk5vdGU6IGluIGFsbCBvZiB0aGVzZSBtYXRjaCBmdW5jdGlvbnMsIHdlIGFzc3VtZSBuZWVkbGVTZXQgKGkuZS4gdGhlIHNlbGVjdGVkIGtleXMpCmlzIGEgMUQgKG9yIGZsYXQpIGFycmF5LiBUaGUgcmVhbCBkaWZmZXJlbmNlIGlzIHRoZSBtZWFuaW5nIG9mIGhheXN0YWNrLgpmaW5kTWF0Y2hlcygpIGRvZXMgdGhlIHVzdWFsIHRoaW5nIHlvdSdkIGV4cGVjdCBmb3IgCmxpbmtlZCBicnVzaGluZyBvbiBhIHNjYXR0ZXJwbG90IG1hdHJpeC4gZmluZFNpbXBsZU1hdGNoZXMoKSByZXR1cm5zIGEgbWF0Y2ggaWZmIApoYXlzdGFjayBpcyBhIHN1YnNldCBvZiB0aGUgbmVlZGxlU2V0LiBmaW5kTmVzdGVkTWF0Y2hlcygpIHJldHVybnMgCiovCgpmdW5jdGlvbiBnZXRNYXRjaEZ1bmModHJhY2UpIHsKICByZXR1cm4gKHRyYWNlLl9pc05lc3RlZEtleSkgPyBmaW5kTmVzdGVkTWF0Y2hlcyA6IAogICAgKHRyYWNlLl9pc1NpbXBsZUtleSkgPyBmaW5kU2ltcGxlTWF0Y2hlcyA6IGZpbmRNYXRjaGVzOwp9CgovLyBmaW5kIG1hdGNoZXMgZm9yICJmbGF0IiBrZXlzCmZ1bmN0aW9uIGZpbmRNYXRjaGVzKGhheXN0YWNrLCBuZWVkbGVTZXQpIHsKICB2YXIgbWF0Y2hlcyA9IFtdOwogIGhheXN0YWNrLmZvckVhY2goZnVuY3Rpb24ob2JqLCBpKSB7CiAgICBpZiAob2JqID09PSBudWxsIHx8IG5lZWRsZVNldC5pbmRleE9mKG9iaikgPj0gMCkgewogICAgICBtYXRjaGVzLnB1c2goaSk7CiAgICB9CiAgfSk7CiAgcmV0dXJuIG1hdGNoZXM7Cn0KCi8vIGZpbmQgbWF0Y2hlcyBmb3IgInNpbXBsZSIga2V5cwpmdW5jdGlvbiBmaW5kU2ltcGxlTWF0Y2hlcyhoYXlzdGFjaywgbmVlZGxlU2V0KSB7CiAgdmFyIG1hdGNoID0gaGF5c3RhY2suZXZlcnkoZnVuY3Rpb24odmFsKSB7CiAgICByZXR1cm4gdmFsID09PSBudWxsIHx8IG5lZWRsZVNldC5pbmRleE9mKHZhbCkgPj0gMDsKICB9KTsKICAvLyB5ZXMsIHRoaXMgZG9lc24ndCBtYWtlIG11Y2ggc2Vuc2Ugb3RoZXIgdGhhbiBjb25mb3JtaW5nIAogIC8vIHRvIHRoZSBvdXRwdXQgdHlwZSBvZiB0aGUgb3RoZXIgbWF0Y2ggZnVuY3Rpb25zCiAgcmV0dXJuIChtYXRjaCkgPyBbMF0gOiBbXQp9CgovLyBmaW5kIG1hdGNoZXMgZm9yIGEgIm5lc3RlZCIgaGF5c3RhY2sgKDJEIGFycmF5cykKZnVuY3Rpb24gZmluZE5lc3RlZE1hdGNoZXMoaGF5c3RhY2ssIG5lZWRsZVNldCkgewogIHZhciBtYXRjaGVzID0gW107CiAgZm9yICh2YXIgaSA9IDA7IGkgPCBoYXlzdGFjay5sZW5ndGg7IGkrKykgewogICAgdmFyIGhheSA9IGhheXN0YWNrW2ldOwogICAgdmFyIG1hdGNoID0gaGF5LmV2ZXJ5KGZ1bmN0aW9uKHZhbCkgeyAKICAgICAgcmV0dXJuIHZhbCA9PT0gbnVsbCB8fCBuZWVkbGVTZXQuaW5kZXhPZih2YWwpID49IDA7IAogICAgfSk7CiAgICBpZiAobWF0Y2gpIHsKICAgICAgbWF0Y2hlcy5wdXNoKGkpOwogICAgfQogIH0KICByZXR1cm4gbWF0Y2hlczsKfQoKZnVuY3Rpb24gaXNQbGFpbk9iamVjdChvYmopIHsKICByZXR1cm4gKAogICAgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iaikgPT09ICdbb2JqZWN0IE9iamVjdF0nICYmCiAgICBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqKSA9PT0gT2JqZWN0LnByb3RvdHlwZQogICk7Cn0KCmZ1bmN0aW9uIHN1YnNldEFycmF5QXR0cnMob2JqLCBpbmRpY2VzKSB7CiAgdmFyIG5ld09iaiA9IHt9OwogIE9iamVjdC5rZXlzKG9iaikuZm9yRWFjaChmdW5jdGlvbihrKSB7CiAgICB2YXIgdmFsID0gb2JqW2tdOwoKICAgIGlmIChrLmNoYXJBdCgwKSA9PT0gIl8iKSB7CiAgICAgIG5ld09ialtrXSA9IHZhbDsKICAgIH0gZWxzZSBpZiAoayA9PT0gInRyYW5zZm9ybXMiICYmIEFycmF5LmlzQXJyYXkodmFsKSkgewogICAgICBuZXdPYmpba10gPSB2YWwubWFwKGZ1bmN0aW9uKHRyYW5zZm9ybSkgewogICAgICAgIHJldHVybiBzdWJzZXRBcnJheUF0dHJzKHRyYW5zZm9ybSwgaW5kaWNlcyk7CiAgICAgIH0pOwogICAgfSBlbHNlIGlmIChrID09PSAiY29sb3JzY2FsZSIgJiYgQXJyYXkuaXNBcnJheSh2YWwpKSB7CiAgICAgIG5ld09ialtrXSA9IHZhbDsKICAgIH0gZWxzZSBpZiAoaXNQbGFpbk9iamVjdCh2YWwpKSB7CiAgICAgIG5ld09ialtrXSA9IHN1YnNldEFycmF5QXR0cnModmFsLCBpbmRpY2VzKTsKICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7CiAgICAgIG5ld09ialtrXSA9IHN1YnNldEFycmF5KHZhbCwgaW5kaWNlcyk7CiAgICB9IGVsc2UgewogICAgICBuZXdPYmpba10gPSB2YWw7CiAgICB9CiAgfSk7CiAgcmV0dXJuIG5ld09iajsKfQoKZnVuY3Rpb24gc3Vic2V0QXJyYXkoYXJyLCBpbmRpY2VzKSB7CiAgdmFyIHJlc3VsdCA9IFtdOwogIGZvciAodmFyIGkgPSAwOyBpIDwgaW5kaWNlcy5sZW5ndGg7IGkrKykgewogICAgcmVzdWx0LnB1c2goYXJyW2luZGljZXNbaV1dKTsKICB9CiAgcmV0dXJuIHJlc3VsdDsKfQoKLy8gQ29udmVuaWVuY2UgZnVuY3Rpb24gZm9yIHJlbW92aW5nIHBsb3RseSdzIGJydXNoIApmdW5jdGlvbiByZW1vdmVCcnVzaChlbCkgewogIHZhciBvdXRsaW5lcyA9IGVsLnF1ZXJ5U2VsZWN0b3JBbGwoIi5zZWxlY3Qtb3V0bGluZSIpOwogIGZvciAodmFyIGkgPSAwOyBpIDwgb3V0bGluZXMubGVuZ3RoOyBpKyspIHsKICAgIG91dGxpbmVzW2ldLnJlbW92ZSgpOwogIH0KfQoKCi8vIGh0dHBzOi8vZGF2aWR3YWxzaC5uYW1lL2phdmFzY3JpcHQtZGVib3VuY2UtZnVuY3Rpb24KCi8vIFJldHVybnMgYSBmdW5jdGlvbiwgdGhhdCwgYXMgbG9uZyBhcyBpdCBjb250aW51ZXMgdG8gYmUgaW52b2tlZCwgd2lsbCBub3QKLy8gYmUgdHJpZ2dlcmVkLiBUaGUgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgYWZ0ZXIgaXQgc3RvcHMgYmVpbmcgY2FsbGVkIGZvcgovLyBOIG1pbGxpc2Vjb25kcy4gSWYgYGltbWVkaWF0ZWAgaXMgcGFzc2VkLCB0cmlnZ2VyIHRoZSBmdW5jdGlvbiBvbiB0aGUKLy8gbGVhZGluZyBlZGdlLCBpbnN0ZWFkIG9mIHRoZSB0cmFpbGluZy4KZnVuY3Rpb24gZGVib3VuY2UoZnVuYywgd2FpdCwgaW1tZWRpYXRlKSB7Cgl2YXIgdGltZW91dDsKCXJldHVybiBmdW5jdGlvbigpIHsKCQl2YXIgY29udGV4dCA9IHRoaXMsIGFyZ3MgPSBhcmd1bWVudHM7CgkJdmFyIGxhdGVyID0gZnVuY3Rpb24oKSB7CgkJCXRpbWVvdXQgPSBudWxsOwoJCQlpZiAoIWltbWVkaWF0ZSkgZnVuYy5hcHBseShjb250ZXh0LCBhcmdzKTsKCQl9OwoJCXZhciBjYWxsTm93ID0gaW1tZWRpYXRlICYmICF0aW1lb3V0OwoJCWNsZWFyVGltZW91dCh0aW1lb3V0KTsKCQl0aW1lb3V0ID0gc2V0VGltZW91dChsYXRlciwgd2FpdCk7CgkJaWYgKGNhbGxOb3cpIGZ1bmMuYXBwbHkoY29udGV4dCwgYXJncyk7Cgl9Owp9Owo="></script>
<script src="data:application/javascript;base64,KGZ1bmN0aW9uKGdsb2JhbCl7InVzZSBzdHJpY3QiO3ZhciB1bmRlZmluZWQ9dm9pZCAwO3ZhciBNQVhfQVJSQVlfTEVOR1RIPTFlNTtmdW5jdGlvbiBUeXBlKHYpe3N3aXRjaCh0eXBlb2Ygdil7Y2FzZSJ1bmRlZmluZWQiOnJldHVybiJ1bmRlZmluZWQiO2Nhc2UiYm9vbGVhbiI6cmV0dXJuImJvb2xlYW4iO2Nhc2UibnVtYmVyIjpyZXR1cm4ibnVtYmVyIjtjYXNlInN0cmluZyI6cmV0dXJuInN0cmluZyI7ZGVmYXVsdDpyZXR1cm4gdj09PW51bGw/Im51bGwiOiJvYmplY3QifX1mdW5jdGlvbiBDbGFzcyh2KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHYpLnJlcGxhY2UoL15cW29iamVjdCAqfFxdJC9nLCIiKX1mdW5jdGlvbiBJc0NhbGxhYmxlKG8pe3JldHVybiB0eXBlb2Ygbz09PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gVG9PYmplY3Qodil7aWYodj09PW51bGx8fHY9PT11bmRlZmluZWQpdGhyb3cgVHlwZUVycm9yKCk7cmV0dXJuIE9iamVjdCh2KX1mdW5jdGlvbiBUb0ludDMyKHYpe3JldHVybiB2Pj4wfWZ1bmN0aW9uIFRvVWludDMyKHYpe3JldHVybiB2Pj4+MH12YXIgTE4yPU1hdGguTE4yLGFicz1NYXRoLmFicyxmbG9vcj1NYXRoLmZsb29yLGxvZz1NYXRoLmxvZyxtYXg9TWF0aC5tYXgsbWluPU1hdGgubWluLHBvdz1NYXRoLnBvdyxyb3VuZD1NYXRoLnJvdW5kOyhmdW5jdGlvbigpe3ZhciBvcmlnPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgZG9tX29ubHk9IWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sIngiLHt9KX1jYXRjaChfKXtyZXR1cm4gZmFsc2V9fSgpO2lmKCFvcmlnfHxkb21fb25seSl7T2JqZWN0LmRlZmluZVByb3BlcnR5PWZ1bmN0aW9uKG8scHJvcCxkZXNjKXtpZihvcmlnKXRyeXtyZXR1cm4gb3JpZyhvLHByb3AsZGVzYyl9Y2F0Y2goXyl7fWlmKG8hPT1PYmplY3QobykpdGhyb3cgVHlwZUVycm9yKCJPYmplY3QuZGVmaW5lUHJvcGVydHkgY2FsbGVkIG9uIG5vbi1vYmplY3QiKTtpZihPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18mJiJnZXQiaW4gZGVzYylPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18uY2FsbChvLHByb3AsZGVzYy5nZXQpO2lmKE9iamVjdC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXyYmInNldCJpbiBkZXNjKU9iamVjdC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXy5jYWxsKG8scHJvcCxkZXNjLnNldCk7aWYoInZhbHVlImluIGRlc2Mpb1twcm9wXT1kZXNjLnZhbHVlO3JldHVybiBvfX19KSgpO2Z1bmN0aW9uIG1ha2VBcnJheUFjY2Vzc29ycyhvYmope2lmKG9iai5sZW5ndGg+TUFYX0FSUkFZX0xFTkdUSCl0aHJvdyBSYW5nZUVycm9yKCJBcnJheSB0b28gbGFyZ2UgZm9yIHBvbHlmaWxsIik7ZnVuY3Rpb24gbWFrZUFycmF5QWNjZXNzb3IoaW5kZXgpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosaW5kZXgse2dldDpmdW5jdGlvbigpe3JldHVybiBvYmouX2dldHRlcihpbmRleCl9LHNldDpmdW5jdGlvbih2KXtvYmouX3NldHRlcihpbmRleCx2KX0sZW51bWVyYWJsZTp0cnVlLGNvbmZpZ3VyYWJsZTpmYWxzZX0pfXZhciBpO2ZvcihpPTA7aTxvYmoubGVuZ3RoO2krPTEpe21ha2VBcnJheUFjY2Vzc29yKGkpfX1mdW5jdGlvbiBhc19zaWduZWQodmFsdWUsYml0cyl7dmFyIHM9MzItYml0cztyZXR1cm4gdmFsdWU8PHM+PnN9ZnVuY3Rpb24gYXNfdW5zaWduZWQodmFsdWUsYml0cyl7dmFyIHM9MzItYml0cztyZXR1cm4gdmFsdWU8PHM+Pj5zfWZ1bmN0aW9uIHBhY2tJOChuKXtyZXR1cm5bbiYyNTVdfWZ1bmN0aW9uIHVucGFja0k4KGJ5dGVzKXtyZXR1cm4gYXNfc2lnbmVkKGJ5dGVzWzBdLDgpfWZ1bmN0aW9uIHBhY2tVOChuKXtyZXR1cm5bbiYyNTVdfWZ1bmN0aW9uIHVucGFja1U4KGJ5dGVzKXtyZXR1cm4gYXNfdW5zaWduZWQoYnl0ZXNbMF0sOCl9ZnVuY3Rpb24gcGFja1U4Q2xhbXBlZChuKXtuPXJvdW5kKE51bWJlcihuKSk7cmV0dXJuW248MD8wOm4+MjU1PzI1NTpuJjI1NV19ZnVuY3Rpb24gcGFja0kxNihuKXtyZXR1cm5bbj4+OCYyNTUsbiYyNTVdfWZ1bmN0aW9uIHVucGFja0kxNihieXRlcyl7cmV0dXJuIGFzX3NpZ25lZChieXRlc1swXTw8OHxieXRlc1sxXSwxNil9ZnVuY3Rpb24gcGFja1UxNihuKXtyZXR1cm5bbj4+OCYyNTUsbiYyNTVdfWZ1bmN0aW9uIHVucGFja1UxNihieXRlcyl7cmV0dXJuIGFzX3Vuc2lnbmVkKGJ5dGVzWzBdPDw4fGJ5dGVzWzFdLDE2KX1mdW5jdGlvbiBwYWNrSTMyKG4pe3JldHVybltuPj4yNCYyNTUsbj4+MTYmMjU1LG4+PjgmMjU1LG4mMjU1XX1mdW5jdGlvbiB1bnBhY2tJMzIoYnl0ZXMpe3JldHVybiBhc19zaWduZWQoYnl0ZXNbMF08PDI0fGJ5dGVzWzFdPDwxNnxieXRlc1syXTw8OHxieXRlc1szXSwzMil9ZnVuY3Rpb24gcGFja1UzMihuKXtyZXR1cm5bbj4+MjQmMjU1LG4+PjE2JjI1NSxuPj44JjI1NSxuJjI1NV19ZnVuY3Rpb24gdW5wYWNrVTMyKGJ5dGVzKXtyZXR1cm4gYXNfdW5zaWduZWQoYnl0ZXNbMF08PDI0fGJ5dGVzWzFdPDwxNnxieXRlc1syXTw8OHxieXRlc1szXSwzMil9ZnVuY3Rpb24gcGFja0lFRUU3NTQodixlYml0cyxmYml0cyl7dmFyIGJpYXM9KDE8PGViaXRzLTEpLTEscyxlLGYsbG4saSxiaXRzLHN0cixieXRlcztmdW5jdGlvbiByb3VuZFRvRXZlbihuKXt2YXIgdz1mbG9vcihuKSxmPW4tdztpZihmPC41KXJldHVybiB3O2lmKGY+LjUpcmV0dXJuIHcrMTtyZXR1cm4gdyUyP3crMTp3fWlmKHYhPT12KXtlPSgxPDxlYml0cyktMTtmPXBvdygyLGZiaXRzLTEpO3M9MH1lbHNlIGlmKHY9PT1JbmZpbml0eXx8dj09PS1JbmZpbml0eSl7ZT0oMTw8ZWJpdHMpLTE7Zj0wO3M9djwwPzE6MH1lbHNlIGlmKHY9PT0wKXtlPTA7Zj0wO3M9MS92PT09LUluZmluaXR5PzE6MH1lbHNle3M9djwwO3Y9YWJzKHYpO2lmKHY+PXBvdygyLDEtYmlhcykpe2U9bWluKGZsb29yKGxvZyh2KS9MTjIpLDEwMjMpO2Y9cm91bmRUb0V2ZW4odi9wb3coMixlKSpwb3coMixmYml0cykpO2lmKGYvcG93KDIsZmJpdHMpPj0yKXtlPWUrMTtmPTF9aWYoZT5iaWFzKXtlPSgxPDxlYml0cyktMTtmPTB9ZWxzZXtlPWUrYmlhcztmPWYtcG93KDIsZmJpdHMpfX1lbHNle2U9MDtmPXJvdW5kVG9FdmVuKHYvcG93KDIsMS1iaWFzLWZiaXRzKSl9fWJpdHM9W107Zm9yKGk9ZmJpdHM7aTtpLT0xKXtiaXRzLnB1c2goZiUyPzE6MCk7Zj1mbG9vcihmLzIpfWZvcihpPWViaXRzO2k7aS09MSl7Yml0cy5wdXNoKGUlMj8xOjApO2U9Zmxvb3IoZS8yKX1iaXRzLnB1c2gocz8xOjApO2JpdHMucmV2ZXJzZSgpO3N0cj1iaXRzLmpvaW4oIiIpO2J5dGVzPVtdO3doaWxlKHN0ci5sZW5ndGgpe2J5dGVzLnB1c2gocGFyc2VJbnQoc3RyLnN1YnN0cmluZygwLDgpLDIpKTtzdHI9c3RyLnN1YnN0cmluZyg4KX1yZXR1cm4gYnl0ZXN9ZnVuY3Rpb24gdW5wYWNrSUVFRTc1NChieXRlcyxlYml0cyxmYml0cyl7dmFyIGJpdHM9W10saSxqLGIsc3RyLGJpYXMscyxlLGY7Zm9yKGk9Ynl0ZXMubGVuZ3RoO2k7aS09MSl7Yj1ieXRlc1tpLTFdO2ZvcihqPTg7ajtqLT0xKXtiaXRzLnB1c2goYiUyPzE6MCk7Yj1iPj4xfX1iaXRzLnJldmVyc2UoKTtzdHI9Yml0cy5qb2luKCIiKTtiaWFzPSgxPDxlYml0cy0xKS0xO3M9cGFyc2VJbnQoc3RyLnN1YnN0cmluZygwLDEpLDIpPy0xOjE7ZT1wYXJzZUludChzdHIuc3Vic3RyaW5nKDEsMStlYml0cyksMik7Zj1wYXJzZUludChzdHIuc3Vic3RyaW5nKDErZWJpdHMpLDIpO2lmKGU9PT0oMTw8ZWJpdHMpLTEpe3JldHVybiBmIT09MD9OYU46cypJbmZpbml0eX1lbHNlIGlmKGU+MCl7cmV0dXJuIHMqcG93KDIsZS1iaWFzKSooMStmL3BvdygyLGZiaXRzKSl9ZWxzZSBpZihmIT09MCl7cmV0dXJuIHMqcG93KDIsLShiaWFzLTEpKSooZi9wb3coMixmYml0cykpfWVsc2V7cmV0dXJuIHM8MD8tMDowfX1mdW5jdGlvbiB1bnBhY2tGNjQoYil7cmV0dXJuIHVucGFja0lFRUU3NTQoYiwxMSw1Mil9ZnVuY3Rpb24gcGFja0Y2NCh2KXtyZXR1cm4gcGFja0lFRUU3NTQodiwxMSw1Mil9ZnVuY3Rpb24gdW5wYWNrRjMyKGIpe3JldHVybiB1bnBhY2tJRUVFNzU0KGIsOCwyMyl9ZnVuY3Rpb24gcGFja0YzMih2KXtyZXR1cm4gcGFja0lFRUU3NTQodiw4LDIzKX0oZnVuY3Rpb24oKXtmdW5jdGlvbiBBcnJheUJ1ZmZlcihsZW5ndGgpe2xlbmd0aD1Ub0ludDMyKGxlbmd0aCk7aWYobGVuZ3RoPDApdGhyb3cgUmFuZ2VFcnJvcigiQXJyYXlCdWZmZXIgc2l6ZSBpcyBub3QgYSBzbWFsbCBlbm91Z2ggcG9zaXRpdmUgaW50ZWdlci4iKTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiYnl0ZUxlbmd0aCIse3ZhbHVlOmxlbmd0aH0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJfYnl0ZXMiLHt2YWx1ZTpBcnJheShsZW5ndGgpfSk7Zm9yKHZhciBpPTA7aTxsZW5ndGg7aSs9MSl0aGlzLl9ieXRlc1tpXT0wfWdsb2JhbC5BcnJheUJ1ZmZlcj1nbG9iYWwuQXJyYXlCdWZmZXJ8fEFycmF5QnVmZmVyO2Z1bmN0aW9uICRUeXBlZEFycmF5JCgpe2lmKCFhcmd1bWVudHMubGVuZ3RofHx0eXBlb2YgYXJndW1lbnRzWzBdIT09Im9iamVjdCIpe3JldHVybiBmdW5jdGlvbihsZW5ndGgpe2xlbmd0aD1Ub0ludDMyKGxlbmd0aCk7aWYobGVuZ3RoPDApdGhyb3cgUmFuZ2VFcnJvcigibGVuZ3RoIGlzIG5vdCBhIHNtYWxsIGVub3VnaCBwb3NpdGl2ZSBpbnRlZ2VyLiIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJsZW5ndGgiLHt2YWx1ZTpsZW5ndGh9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiYnl0ZUxlbmd0aCIse3ZhbHVlOmxlbmd0aCp0aGlzLkJZVEVTX1BFUl9FTEVNRU5UfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImJ1ZmZlciIse3ZhbHVlOm5ldyBBcnJheUJ1ZmZlcih0aGlzLmJ5dGVMZW5ndGgpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImJ5dGVPZmZzZXQiLHt2YWx1ZTowfSl9LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1pZihhcmd1bWVudHMubGVuZ3RoPj0xJiZUeXBlKGFyZ3VtZW50c1swXSk9PT0ib2JqZWN0IiYmYXJndW1lbnRzWzBdaW5zdGFuY2VvZiAkVHlwZWRBcnJheSQpe3JldHVybiBmdW5jdGlvbih0eXBlZEFycmF5KXtpZih0aGlzLmNvbnN0cnVjdG9yIT09dHlwZWRBcnJheS5jb25zdHJ1Y3Rvcil0aHJvdyBUeXBlRXJyb3IoKTt2YXIgYnl0ZUxlbmd0aD10eXBlZEFycmF5Lmxlbmd0aCp0aGlzLkJZVEVTX1BFUl9FTEVNRU5UO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJidWZmZXIiLHt2YWx1ZTpuZXcgQXJyYXlCdWZmZXIoYnl0ZUxlbmd0aCl9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiYnl0ZUxlbmd0aCIse3ZhbHVlOmJ5dGVMZW5ndGh9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiYnl0ZU9mZnNldCIse3ZhbHVlOjB9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywibGVuZ3RoIix7dmFsdWU6dHlwZWRBcnJheS5sZW5ndGh9KTtmb3IodmFyIGk9MDtpPHRoaXMubGVuZ3RoO2krPTEpdGhpcy5fc2V0dGVyKGksdHlwZWRBcnJheS5fZ2V0dGVyKGkpKX0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWlmKGFyZ3VtZW50cy5sZW5ndGg+PTEmJlR5cGUoYXJndW1lbnRzWzBdKT09PSJvYmplY3QiJiYhKGFyZ3VtZW50c1swXWluc3RhbmNlb2YgJFR5cGVkQXJyYXkkKSYmIShhcmd1bWVudHNbMF1pbnN0YW5jZW9mIEFycmF5QnVmZmVyfHxDbGFzcyhhcmd1bWVudHNbMF0pPT09IkFycmF5QnVmZmVyIikpe3JldHVybiBmdW5jdGlvbihhcnJheSl7dmFyIGJ5dGVMZW5ndGg9YXJyYXkubGVuZ3RoKnRoaXMuQllURVNfUEVSX0VMRU1FTlQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImJ1ZmZlciIse3ZhbHVlOm5ldyBBcnJheUJ1ZmZlcihieXRlTGVuZ3RoKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJieXRlTGVuZ3RoIix7dmFsdWU6Ynl0ZUxlbmd0aH0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJieXRlT2Zmc2V0Iix7dmFsdWU6MH0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJsZW5ndGgiLHt2YWx1ZTphcnJheS5sZW5ndGh9KTtmb3IodmFyIGk9MDtpPHRoaXMubGVuZ3RoO2krPTEpe3ZhciBzPWFycmF5W2ldO3RoaXMuX3NldHRlcihpLE51bWJlcihzKSl9fS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9aWYoYXJndW1lbnRzLmxlbmd0aD49MSYmVHlwZShhcmd1bWVudHNbMF0pPT09Im9iamVjdCImJihhcmd1bWVudHNbMF1pbnN0YW5jZW9mIEFycmF5QnVmZmVyfHxDbGFzcyhhcmd1bWVudHNbMF0pPT09IkFycmF5QnVmZmVyIikpe3JldHVybiBmdW5jdGlvbihidWZmZXIsYnl0ZU9mZnNldCxsZW5ndGgpe2J5dGVPZmZzZXQ9VG9VaW50MzIoYnl0ZU9mZnNldCk7aWYoYnl0ZU9mZnNldD5idWZmZXIuYnl0ZUxlbmd0aCl0aHJvdyBSYW5nZUVycm9yKCJieXRlT2Zmc2V0IG91dCBvZiByYW5nZSIpO2lmKGJ5dGVPZmZzZXQldGhpcy5CWVRFU19QRVJfRUxFTUVOVCl0aHJvdyBSYW5nZUVycm9yKCJidWZmZXIgbGVuZ3RoIG1pbnVzIHRoZSBieXRlT2Zmc2V0IGlzIG5vdCBhIG11bHRpcGxlIG9mIHRoZSBlbGVtZW50IHNpemUuIik7aWYobGVuZ3RoPT09dW5kZWZpbmVkKXt2YXIgYnl0ZUxlbmd0aD1idWZmZXIuYnl0ZUxlbmd0aC1ieXRlT2Zmc2V0O2lmKGJ5dGVMZW5ndGgldGhpcy5CWVRFU19QRVJfRUxFTUVOVCl0aHJvdyBSYW5nZUVycm9yKCJsZW5ndGggb2YgYnVmZmVyIG1pbnVzIGJ5dGVPZmZzZXQgbm90IGEgbXVsdGlwbGUgb2YgdGhlIGVsZW1lbnQgc2l6ZSIpO2xlbmd0aD1ieXRlTGVuZ3RoL3RoaXMuQllURVNfUEVSX0VMRU1FTlR9ZWxzZXtsZW5ndGg9VG9VaW50MzIobGVuZ3RoKTtieXRlTGVuZ3RoPWxlbmd0aCp0aGlzLkJZVEVTX1BFUl9FTEVNRU5UfWlmKGJ5dGVPZmZzZXQrYnl0ZUxlbmd0aD5idWZmZXIuYnl0ZUxlbmd0aCl0aHJvdyBSYW5nZUVycm9yKCJieXRlT2Zmc2V0IGFuZCBsZW5ndGggcmVmZXJlbmNlIGFuIGFyZWEgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlciIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJidWZmZXIiLHt2YWx1ZTpidWZmZXJ9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiYnl0ZUxlbmd0aCIse3ZhbHVlOmJ5dGVMZW5ndGh9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiYnl0ZU9mZnNldCIse3ZhbHVlOmJ5dGVPZmZzZXR9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywibGVuZ3RoIix7dmFsdWU6bGVuZ3RofSl9LmFwcGx5KHRoaXMsYXJndW1lbnRzKX10aHJvdyBUeXBlRXJyb3IoKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoJFR5cGVkQXJyYXkkLCJmcm9tIix7dmFsdWU6ZnVuY3Rpb24oaXRlcmFibGUpe3JldHVybiBuZXcgdGhpcyhpdGVyYWJsZSl9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KCRUeXBlZEFycmF5JCwib2YiLHt2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBuZXcgdGhpcyhhcmd1bWVudHMpfX0pO3ZhciAkVHlwZWRBcnJheVByb3RvdHlwZSQ9e307JFR5cGVkQXJyYXkkLnByb3RvdHlwZT0kVHlwZWRBcnJheVByb3RvdHlwZSQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KCRUeXBlZEFycmF5JC5wcm90b3R5cGUsIl9nZXR0ZXIiLHt2YWx1ZTpmdW5jdGlvbihpbmRleCl7aWYoYXJndW1lbnRzLmxlbmd0aDwxKXRocm93IFN5bnRheEVycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpO2luZGV4PVRvVWludDMyKGluZGV4KTtpZihpbmRleD49dGhpcy5sZW5ndGgpcmV0dXJuIHVuZGVmaW5lZDt2YXIgYnl0ZXM9W10saSxvO2ZvcihpPTAsbz10aGlzLmJ5dGVPZmZzZXQraW5kZXgqdGhpcy5CWVRFU19QRVJfRUxFTUVOVDtpPHRoaXMuQllURVNfUEVSX0VMRU1FTlQ7aSs9MSxvKz0xKXtieXRlcy5wdXNoKHRoaXMuYnVmZmVyLl9ieXRlc1tvXSl9cmV0dXJuIHRoaXMuX3VucGFjayhieXRlcyl9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KCRUeXBlZEFycmF5JC5wcm90b3R5cGUsImdldCIse3ZhbHVlOiRUeXBlZEFycmF5JC5wcm90b3R5cGUuX2dldHRlcn0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJfc2V0dGVyIix7dmFsdWU6ZnVuY3Rpb24oaW5kZXgsdmFsdWUpe2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil0aHJvdyBTeW50YXhFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiKTtpbmRleD1Ub1VpbnQzMihpbmRleCk7aWYoaW5kZXg+PXRoaXMubGVuZ3RoKXJldHVybjt2YXIgYnl0ZXM9dGhpcy5fcGFjayh2YWx1ZSksaSxvO2ZvcihpPTAsbz10aGlzLmJ5dGVPZmZzZXQraW5kZXgqdGhpcy5CWVRFU19QRVJfRUxFTUVOVDtpPHRoaXMuQllURVNfUEVSX0VMRU1FTlQ7aSs9MSxvKz0xKXt0aGlzLmJ1ZmZlci5fYnl0ZXNbb109Ynl0ZXNbaV19fX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJjb25zdHJ1Y3RvciIse3ZhbHVlOiRUeXBlZEFycmF5JH0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJjb3B5V2l0aGluIix7dmFsdWU6ZnVuY3Rpb24odGFyZ2V0LHN0YXJ0KXt2YXIgZW5kPWFyZ3VtZW50c1syXTt2YXIgbz1Ub09iamVjdCh0aGlzKTt2YXIgbGVuVmFsPW8ubGVuZ3RoO3ZhciBsZW49VG9VaW50MzIobGVuVmFsKTtsZW49bWF4KGxlbiwwKTt2YXIgcmVsYXRpdmVUYXJnZXQ9VG9JbnQzMih0YXJnZXQpO3ZhciB0bztpZihyZWxhdGl2ZVRhcmdldDwwKXRvPW1heChsZW4rcmVsYXRpdmVUYXJnZXQsMCk7ZWxzZSB0bz1taW4ocmVsYXRpdmVUYXJnZXQsbGVuKTt2YXIgcmVsYXRpdmVTdGFydD1Ub0ludDMyKHN0YXJ0KTt2YXIgZnJvbTtpZihyZWxhdGl2ZVN0YXJ0PDApZnJvbT1tYXgobGVuK3JlbGF0aXZlU3RhcnQsMCk7ZWxzZSBmcm9tPW1pbihyZWxhdGl2ZVN0YXJ0LGxlbik7dmFyIHJlbGF0aXZlRW5kO2lmKGVuZD09PXVuZGVmaW5lZClyZWxhdGl2ZUVuZD1sZW47ZWxzZSByZWxhdGl2ZUVuZD1Ub0ludDMyKGVuZCk7dmFyIGZpbmFsO2lmKHJlbGF0aXZlRW5kPDApZmluYWw9bWF4KGxlbityZWxhdGl2ZUVuZCwwKTtlbHNlIGZpbmFsPW1pbihyZWxhdGl2ZUVuZCxsZW4pO3ZhciBjb3VudD1taW4oZmluYWwtZnJvbSxsZW4tdG8pO3ZhciBkaXJlY3Rpb247aWYoZnJvbTx0byYmdG88ZnJvbStjb3VudCl7ZGlyZWN0aW9uPS0xO2Zyb209ZnJvbStjb3VudC0xO3RvPXRvK2NvdW50LTF9ZWxzZXtkaXJlY3Rpb249MX13aGlsZShjb3VudD4wKXtvLl9zZXR0ZXIodG8sby5fZ2V0dGVyKGZyb20pKTtmcm9tPWZyb20rZGlyZWN0aW9uO3RvPXRvK2RpcmVjdGlvbjtjb3VudD1jb3VudC0xfXJldHVybiBvfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJldmVyeSIse3ZhbHVlOmZ1bmN0aW9uKGNhbGxiYWNrZm4pe2lmKHRoaXM9PT11bmRlZmluZWR8fHRoaXM9PT1udWxsKXRocm93IFR5cGVFcnJvcigpO3ZhciB0PU9iamVjdCh0aGlzKTt2YXIgbGVuPVRvVWludDMyKHQubGVuZ3RoKTtpZighSXNDYWxsYWJsZShjYWxsYmFja2ZuKSl0aHJvdyBUeXBlRXJyb3IoKTt2YXIgdGhpc0FyZz1hcmd1bWVudHNbMV07Zm9yKHZhciBpPTA7aTxsZW47aSsrKXtpZighY2FsbGJhY2tmbi5jYWxsKHRoaXNBcmcsdC5fZ2V0dGVyKGkpLGksdCkpcmV0dXJuIGZhbHNlfXJldHVybiB0cnVlfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJmaWxsIix7dmFsdWU6ZnVuY3Rpb24odmFsdWUpe3ZhciBzdGFydD1hcmd1bWVudHNbMV0sZW5kPWFyZ3VtZW50c1syXTt2YXIgbz1Ub09iamVjdCh0aGlzKTt2YXIgbGVuVmFsPW8ubGVuZ3RoO3ZhciBsZW49VG9VaW50MzIobGVuVmFsKTtsZW49bWF4KGxlbiwwKTt2YXIgcmVsYXRpdmVTdGFydD1Ub0ludDMyKHN0YXJ0KTt2YXIgaztpZihyZWxhdGl2ZVN0YXJ0PDApaz1tYXgobGVuK3JlbGF0aXZlU3RhcnQsMCk7ZWxzZSBrPW1pbihyZWxhdGl2ZVN0YXJ0LGxlbik7dmFyIHJlbGF0aXZlRW5kO2lmKGVuZD09PXVuZGVmaW5lZClyZWxhdGl2ZUVuZD1sZW47ZWxzZSByZWxhdGl2ZUVuZD1Ub0ludDMyKGVuZCk7dmFyIGZpbmFsO2lmKHJlbGF0aXZlRW5kPDApZmluYWw9bWF4KGxlbityZWxhdGl2ZUVuZCwwKTtlbHNlIGZpbmFsPW1pbihyZWxhdGl2ZUVuZCxsZW4pO3doaWxlKGs8ZmluYWwpe28uX3NldHRlcihrLHZhbHVlKTtrKz0xfXJldHVybiBvfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJmaWx0ZXIiLHt2YWx1ZTpmdW5jdGlvbihjYWxsYmFja2ZuKXtpZih0aGlzPT09dW5kZWZpbmVkfHx0aGlzPT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoKTt2YXIgdD1PYmplY3QodGhpcyk7dmFyIGxlbj1Ub1VpbnQzMih0Lmxlbmd0aCk7aWYoIUlzQ2FsbGFibGUoY2FsbGJhY2tmbikpdGhyb3cgVHlwZUVycm9yKCk7dmFyIHJlcz1bXTt2YXIgdGhpc3A9YXJndW1lbnRzWzFdO2Zvcih2YXIgaT0wO2k8bGVuO2krKyl7dmFyIHZhbD10Ll9nZXR0ZXIoaSk7aWYoY2FsbGJhY2tmbi5jYWxsKHRoaXNwLHZhbCxpLHQpKXJlcy5wdXNoKHZhbCl9cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHJlcyl9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KCRUeXBlZEFycmF5JC5wcm90b3R5cGUsImZpbmQiLHt2YWx1ZTpmdW5jdGlvbihwcmVkaWNhdGUpe3ZhciBvPVRvT2JqZWN0KHRoaXMpO3ZhciBsZW5WYWx1ZT1vLmxlbmd0aDt2YXIgbGVuPVRvVWludDMyKGxlblZhbHVlKTtpZighSXNDYWxsYWJsZShwcmVkaWNhdGUpKXRocm93IFR5cGVFcnJvcigpO3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dW5kZWZpbmVkO3ZhciBrPTA7d2hpbGUoazxsZW4pe3ZhciBrVmFsdWU9by5fZ2V0dGVyKGspO3ZhciB0ZXN0UmVzdWx0PXByZWRpY2F0ZS5jYWxsKHQsa1ZhbHVlLGssbyk7aWYoQm9vbGVhbih0ZXN0UmVzdWx0KSlyZXR1cm4ga1ZhbHVlOysra31yZXR1cm4gdW5kZWZpbmVkfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJmaW5kSW5kZXgiLHt2YWx1ZTpmdW5jdGlvbihwcmVkaWNhdGUpe3ZhciBvPVRvT2JqZWN0KHRoaXMpO3ZhciBsZW5WYWx1ZT1vLmxlbmd0aDt2YXIgbGVuPVRvVWludDMyKGxlblZhbHVlKTtpZighSXNDYWxsYWJsZShwcmVkaWNhdGUpKXRocm93IFR5cGVFcnJvcigpO3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dW5kZWZpbmVkO3ZhciBrPTA7d2hpbGUoazxsZW4pe3ZhciBrVmFsdWU9by5fZ2V0dGVyKGspO3ZhciB0ZXN0UmVzdWx0PXByZWRpY2F0ZS5jYWxsKHQsa1ZhbHVlLGssbyk7aWYoQm9vbGVhbih0ZXN0UmVzdWx0KSlyZXR1cm4gazsrK2t9cmV0dXJuLTF9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KCRUeXBlZEFycmF5JC5wcm90b3R5cGUsImZvckVhY2giLHt2YWx1ZTpmdW5jdGlvbihjYWxsYmFja2ZuKXtpZih0aGlzPT09dW5kZWZpbmVkfHx0aGlzPT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoKTt2YXIgdD1PYmplY3QodGhpcyk7dmFyIGxlbj1Ub1VpbnQzMih0Lmxlbmd0aCk7aWYoIUlzQ2FsbGFibGUoY2FsbGJhY2tmbikpdGhyb3cgVHlwZUVycm9yKCk7dmFyIHRoaXNwPWFyZ3VtZW50c1sxXTtmb3IodmFyIGk9MDtpPGxlbjtpKyspY2FsbGJhY2tmbi5jYWxsKHRoaXNwLHQuX2dldHRlcihpKSxpLHQpfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJpbmRleE9mIix7dmFsdWU6ZnVuY3Rpb24oc2VhcmNoRWxlbWVudCl7aWYodGhpcz09PXVuZGVmaW5lZHx8dGhpcz09PW51bGwpdGhyb3cgVHlwZUVycm9yKCk7dmFyIHQ9T2JqZWN0KHRoaXMpO3ZhciBsZW49VG9VaW50MzIodC5sZW5ndGgpO2lmKGxlbj09PTApcmV0dXJuLTE7dmFyIG49MDtpZihhcmd1bWVudHMubGVuZ3RoPjApe249TnVtYmVyKGFyZ3VtZW50c1sxXSk7aWYobiE9PW4pe249MH1lbHNlIGlmKG4hPT0wJiZuIT09MS8wJiZuIT09LSgxLzApKXtuPShuPjB8fC0xKSpmbG9vcihhYnMobikpfX1pZihuPj1sZW4pcmV0dXJuLTE7dmFyIGs9bj49MD9uOm1heChsZW4tYWJzKG4pLDApO2Zvcig7azxsZW47aysrKXtpZih0Ll9nZXR0ZXIoayk9PT1zZWFyY2hFbGVtZW50KXtyZXR1cm4ga319cmV0dXJuLTF9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KCRUeXBlZEFycmF5JC5wcm90b3R5cGUsImpvaW4iLHt2YWx1ZTpmdW5jdGlvbihzZXBhcmF0b3Ipe2lmKHRoaXM9PT11bmRlZmluZWR8fHRoaXM9PT1udWxsKXRocm93IFR5cGVFcnJvcigpO3ZhciB0PU9iamVjdCh0aGlzKTt2YXIgbGVuPVRvVWludDMyKHQubGVuZ3RoKTt2YXIgdG1wPUFycmF5KGxlbik7Zm9yKHZhciBpPTA7aTxsZW47KytpKXRtcFtpXT10Ll9nZXR0ZXIoaSk7cmV0dXJuIHRtcC5qb2luKHNlcGFyYXRvcj09PXVuZGVmaW5lZD8iLCI6c2VwYXJhdG9yKX19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoJFR5cGVkQXJyYXkkLnByb3RvdHlwZSwibGFzdEluZGV4T2YiLHt2YWx1ZTpmdW5jdGlvbihzZWFyY2hFbGVtZW50KXtpZih0aGlzPT09dW5kZWZpbmVkfHx0aGlzPT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoKTt2YXIgdD1PYmplY3QodGhpcyk7dmFyIGxlbj1Ub1VpbnQzMih0Lmxlbmd0aCk7aWYobGVuPT09MClyZXR1cm4tMTt2YXIgbj1sZW47aWYoYXJndW1lbnRzLmxlbmd0aD4xKXtuPU51bWJlcihhcmd1bWVudHNbMV0pO2lmKG4hPT1uKXtuPTB9ZWxzZSBpZihuIT09MCYmbiE9PTEvMCYmbiE9PS0oMS8wKSl7bj0obj4wfHwtMSkqZmxvb3IoYWJzKG4pKX19dmFyIGs9bj49MD9taW4obixsZW4tMSk6bGVuLWFicyhuKTtmb3IoO2s+PTA7ay0tKXtpZih0Ll9nZXR0ZXIoayk9PT1zZWFyY2hFbGVtZW50KXJldHVybiBrfXJldHVybi0xfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJtYXAiLHt2YWx1ZTpmdW5jdGlvbihjYWxsYmFja2ZuKXtpZih0aGlzPT09dW5kZWZpbmVkfHx0aGlzPT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoKTt2YXIgdD1PYmplY3QodGhpcyk7dmFyIGxlbj1Ub1VpbnQzMih0Lmxlbmd0aCk7aWYoIUlzQ2FsbGFibGUoY2FsbGJhY2tmbikpdGhyb3cgVHlwZUVycm9yKCk7dmFyIHJlcz1bXTtyZXMubGVuZ3RoPWxlbjt2YXIgdGhpc3A9YXJndW1lbnRzWzFdO2Zvcih2YXIgaT0wO2k8bGVuO2krKylyZXNbaV09Y2FsbGJhY2tmbi5jYWxsKHRoaXNwLHQuX2dldHRlcihpKSxpLHQpO3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3RvcihyZXMpfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJyZWR1Y2UiLHt2YWx1ZTpmdW5jdGlvbihjYWxsYmFja2ZuKXtpZih0aGlzPT09dW5kZWZpbmVkfHx0aGlzPT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoKTt2YXIgdD1PYmplY3QodGhpcyk7dmFyIGxlbj1Ub1VpbnQzMih0Lmxlbmd0aCk7aWYoIUlzQ2FsbGFibGUoY2FsbGJhY2tmbikpdGhyb3cgVHlwZUVycm9yKCk7aWYobGVuPT09MCYmYXJndW1lbnRzLmxlbmd0aD09PTEpdGhyb3cgVHlwZUVycm9yKCk7dmFyIGs9MDt2YXIgYWNjdW11bGF0b3I7aWYoYXJndW1lbnRzLmxlbmd0aD49Mil7YWNjdW11bGF0b3I9YXJndW1lbnRzWzFdfWVsc2V7YWNjdW11bGF0b3I9dC5fZ2V0dGVyKGsrKyl9d2hpbGUoazxsZW4pe2FjY3VtdWxhdG9yPWNhbGxiYWNrZm4uY2FsbCh1bmRlZmluZWQsYWNjdW11bGF0b3IsdC5fZ2V0dGVyKGspLGssdCk7aysrfXJldHVybiBhY2N1bXVsYXRvcn19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoJFR5cGVkQXJyYXkkLnByb3RvdHlwZSwicmVkdWNlUmlnaHQiLHt2YWx1ZTpmdW5jdGlvbihjYWxsYmFja2ZuKXtpZih0aGlzPT09dW5kZWZpbmVkfHx0aGlzPT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoKTt2YXIgdD1PYmplY3QodGhpcyk7dmFyIGxlbj1Ub1VpbnQzMih0Lmxlbmd0aCk7aWYoIUlzQ2FsbGFibGUoY2FsbGJhY2tmbikpdGhyb3cgVHlwZUVycm9yKCk7aWYobGVuPT09MCYmYXJndW1lbnRzLmxlbmd0aD09PTEpdGhyb3cgVHlwZUVycm9yKCk7dmFyIGs9bGVuLTE7dmFyIGFjY3VtdWxhdG9yO2lmKGFyZ3VtZW50cy5sZW5ndGg+PTIpe2FjY3VtdWxhdG9yPWFyZ3VtZW50c1sxXX1lbHNle2FjY3VtdWxhdG9yPXQuX2dldHRlcihrLS0pfXdoaWxlKGs+PTApe2FjY3VtdWxhdG9yPWNhbGxiYWNrZm4uY2FsbCh1bmRlZmluZWQsYWNjdW11bGF0b3IsdC5fZ2V0dGVyKGspLGssdCk7ay0tfXJldHVybiBhY2N1bXVsYXRvcn19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoJFR5cGVkQXJyYXkkLnByb3RvdHlwZSwicmV2ZXJzZSIse3ZhbHVlOmZ1bmN0aW9uKCl7aWYodGhpcz09PXVuZGVmaW5lZHx8dGhpcz09PW51bGwpdGhyb3cgVHlwZUVycm9yKCk7dmFyIHQ9T2JqZWN0KHRoaXMpO3ZhciBsZW49VG9VaW50MzIodC5sZW5ndGgpO3ZhciBoYWxmPWZsb29yKGxlbi8yKTtmb3IodmFyIGk9MCxqPWxlbi0xO2k8aGFsZjsrK2ksLS1qKXt2YXIgdG1wPXQuX2dldHRlcihpKTt0Ll9zZXR0ZXIoaSx0Ll9nZXR0ZXIoaikpO3QuX3NldHRlcihqLHRtcCl9cmV0dXJuIHR9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KCRUeXBlZEFycmF5JC5wcm90b3R5cGUsInNldCIse3ZhbHVlOmZ1bmN0aW9uKGluZGV4LHZhbHVlKXtpZihhcmd1bWVudHMubGVuZ3RoPDEpdGhyb3cgU3ludGF4RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIik7dmFyIGFycmF5LHNlcXVlbmNlLG9mZnNldCxsZW4saSxzLGQsYnl0ZU9mZnNldCxieXRlTGVuZ3RoLHRtcDtpZih0eXBlb2YgYXJndW1lbnRzWzBdPT09Im9iamVjdCImJmFyZ3VtZW50c1swXS5jb25zdHJ1Y3Rvcj09PXRoaXMuY29uc3RydWN0b3Ipe2FycmF5PWFyZ3VtZW50c1swXTtvZmZzZXQ9VG9VaW50MzIoYXJndW1lbnRzWzFdKTtpZihvZmZzZXQrYXJyYXkubGVuZ3RoPnRoaXMubGVuZ3RoKXt0aHJvdyBSYW5nZUVycm9yKCJPZmZzZXQgcGx1cyBsZW5ndGggb2YgYXJyYXkgaXMgb3V0IG9mIHJhbmdlIil9Ynl0ZU9mZnNldD10aGlzLmJ5dGVPZmZzZXQrb2Zmc2V0KnRoaXMuQllURVNfUEVSX0VMRU1FTlQ7Ynl0ZUxlbmd0aD1hcnJheS5sZW5ndGgqdGhpcy5CWVRFU19QRVJfRUxFTUVOVDtpZihhcnJheS5idWZmZXI9PT10aGlzLmJ1ZmZlcil7dG1wPVtdO2ZvcihpPTAscz1hcnJheS5ieXRlT2Zmc2V0O2k8Ynl0ZUxlbmd0aDtpKz0xLHMrPTEpe3RtcFtpXT1hcnJheS5idWZmZXIuX2J5dGVzW3NdfWZvcihpPTAsZD1ieXRlT2Zmc2V0O2k8Ynl0ZUxlbmd0aDtpKz0xLGQrPTEpe3RoaXMuYnVmZmVyLl9ieXRlc1tkXT10bXBbaV19fWVsc2V7Zm9yKGk9MCxzPWFycmF5LmJ5dGVPZmZzZXQsZD1ieXRlT2Zmc2V0O2k8Ynl0ZUxlbmd0aDtpKz0xLHMrPTEsZCs9MSl7dGhpcy5idWZmZXIuX2J5dGVzW2RdPWFycmF5LmJ1ZmZlci5fYnl0ZXNbc119fX1lbHNlIGlmKHR5cGVvZiBhcmd1bWVudHNbMF09PT0ib2JqZWN0IiYmdHlwZW9mIGFyZ3VtZW50c1swXS5sZW5ndGghPT0idW5kZWZpbmVkIil7c2VxdWVuY2U9YXJndW1lbnRzWzBdO2xlbj1Ub1VpbnQzMihzZXF1ZW5jZS5sZW5ndGgpO29mZnNldD1Ub1VpbnQzMihhcmd1bWVudHNbMV0pO2lmKG9mZnNldCtsZW4+dGhpcy5sZW5ndGgpe3Rocm93IFJhbmdlRXJyb3IoIk9mZnNldCBwbHVzIGxlbmd0aCBvZiBhcnJheSBpcyBvdXQgb2YgcmFuZ2UiKX1mb3IoaT0wO2k8bGVuO2krPTEpe3M9c2VxdWVuY2VbaV07dGhpcy5fc2V0dGVyKG9mZnNldCtpLE51bWJlcihzKSl9fWVsc2V7dGhyb3cgVHlwZUVycm9yKCJVbmV4cGVjdGVkIGFyZ3VtZW50IHR5cGUocykiKX19fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KCRUeXBlZEFycmF5JC5wcm90b3R5cGUsInNsaWNlIix7dmFsdWU6ZnVuY3Rpb24oc3RhcnQsZW5kKXt2YXIgbz1Ub09iamVjdCh0aGlzKTt2YXIgbGVuVmFsPW8ubGVuZ3RoO3ZhciBsZW49VG9VaW50MzIobGVuVmFsKTt2YXIgcmVsYXRpdmVTdGFydD1Ub0ludDMyKHN0YXJ0KTt2YXIgaz1yZWxhdGl2ZVN0YXJ0PDA/bWF4KGxlbityZWxhdGl2ZVN0YXJ0LDApOm1pbihyZWxhdGl2ZVN0YXJ0LGxlbik7dmFyIHJlbGF0aXZlRW5kPWVuZD09PXVuZGVmaW5lZD9sZW46VG9JbnQzMihlbmQpO3ZhciBmaW5hbD1yZWxhdGl2ZUVuZDwwP21heChsZW4rcmVsYXRpdmVFbmQsMCk6bWluKHJlbGF0aXZlRW5kLGxlbik7dmFyIGNvdW50PWZpbmFsLWs7dmFyIGM9by5jb25zdHJ1Y3Rvcjt2YXIgYT1uZXcgYyhjb3VudCk7dmFyIG49MDt3aGlsZShrPGZpbmFsKXt2YXIga1ZhbHVlPW8uX2dldHRlcihrKTthLl9zZXR0ZXIobixrVmFsdWUpOysrazsrK259cmV0dXJuIGF9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KCRUeXBlZEFycmF5JC5wcm90b3R5cGUsInNvbWUiLHt2YWx1ZTpmdW5jdGlvbihjYWxsYmFja2ZuKXtpZih0aGlzPT09dW5kZWZpbmVkfHx0aGlzPT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoKTt2YXIgdD1PYmplY3QodGhpcyk7dmFyIGxlbj1Ub1VpbnQzMih0Lmxlbmd0aCk7aWYoIUlzQ2FsbGFibGUoY2FsbGJhY2tmbikpdGhyb3cgVHlwZUVycm9yKCk7dmFyIHRoaXNwPWFyZ3VtZW50c1sxXTtmb3IodmFyIGk9MDtpPGxlbjtpKyspe2lmKGNhbGxiYWNrZm4uY2FsbCh0aGlzcCx0Ll9nZXR0ZXIoaSksaSx0KSl7cmV0dXJuIHRydWV9fXJldHVybiBmYWxzZX19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoJFR5cGVkQXJyYXkkLnByb3RvdHlwZSwic29ydCIse3ZhbHVlOmZ1bmN0aW9uKGNvbXBhcmVmbil7aWYodGhpcz09PXVuZGVmaW5lZHx8dGhpcz09PW51bGwpdGhyb3cgVHlwZUVycm9yKCk7dmFyIHQ9T2JqZWN0KHRoaXMpO3ZhciBsZW49VG9VaW50MzIodC5sZW5ndGgpO3ZhciB0bXA9QXJyYXkobGVuKTtmb3IodmFyIGk9MDtpPGxlbjsrK2kpdG1wW2ldPXQuX2dldHRlcihpKTtpZihjb21wYXJlZm4pdG1wLnNvcnQoY29tcGFyZWZuKTtlbHNlIHRtcC5zb3J0KCk7Zm9yKGk9MDtpPGxlbjsrK2kpdC5fc2V0dGVyKGksdG1wW2ldKTtyZXR1cm4gdH19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoJFR5cGVkQXJyYXkkLnByb3RvdHlwZSwic3ViYXJyYXkiLHt2YWx1ZTpmdW5jdGlvbihzdGFydCxlbmQpe2Z1bmN0aW9uIGNsYW1wKHYsbWluLG1heCl7cmV0dXJuIHY8bWluP21pbjp2Pm1heD9tYXg6dn1zdGFydD1Ub0ludDMyKHN0YXJ0KTtlbmQ9VG9JbnQzMihlbmQpO2lmKGFyZ3VtZW50cy5sZW5ndGg8MSl7c3RhcnQ9MH1pZihhcmd1bWVudHMubGVuZ3RoPDIpe2VuZD10aGlzLmxlbmd0aH1pZihzdGFydDwwKXtzdGFydD10aGlzLmxlbmd0aCtzdGFydH1pZihlbmQ8MCl7ZW5kPXRoaXMubGVuZ3RoK2VuZH1zdGFydD1jbGFtcChzdGFydCwwLHRoaXMubGVuZ3RoKTtlbmQ9Y2xhbXAoZW5kLDAsdGhpcy5sZW5ndGgpO3ZhciBsZW49ZW5kLXN0YXJ0O2lmKGxlbjwwKXtsZW49MH1yZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy5idWZmZXIsdGhpcy5ieXRlT2Zmc2V0K3N0YXJ0KnRoaXMuQllURVNfUEVSX0VMRU1FTlQsbGVuKX19KTtmdW5jdGlvbiBtYWtlVHlwZWRBcnJheShlbGVtZW50U2l6ZSxwYWNrLHVucGFjayl7dmFyIFR5cGVkQXJyYXk9ZnVuY3Rpb24oKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiY29uc3RydWN0b3IiLHt2YWx1ZTpUeXBlZEFycmF5fSk7JFR5cGVkQXJyYXkkLmFwcGx5KHRoaXMsYXJndW1lbnRzKTttYWtlQXJyYXlBY2Nlc3NvcnModGhpcyl9O2lmKCJfX3Byb3RvX18iaW4gVHlwZWRBcnJheSl7VHlwZWRBcnJheS5fX3Byb3RvX189JFR5cGVkQXJyYXkkfWVsc2V7VHlwZWRBcnJheS5mcm9tPSRUeXBlZEFycmF5JC5mcm9tO1R5cGVkQXJyYXkub2Y9JFR5cGVkQXJyYXkkLm9mfVR5cGVkQXJyYXkuQllURVNfUEVSX0VMRU1FTlQ9ZWxlbWVudFNpemU7dmFyIFR5cGVkQXJyYXlQcm90b3R5cGU9ZnVuY3Rpb24oKXt9O1R5cGVkQXJyYXlQcm90b3R5cGUucHJvdG90eXBlPSRUeXBlZEFycmF5UHJvdG90eXBlJDtUeXBlZEFycmF5LnByb3RvdHlwZT1uZXcgVHlwZWRBcnJheVByb3RvdHlwZTtPYmplY3QuZGVmaW5lUHJvcGVydHkoVHlwZWRBcnJheS5wcm90b3R5cGUsIkJZVEVTX1BFUl9FTEVNRU5UIix7dmFsdWU6ZWxlbWVudFNpemV9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoVHlwZWRBcnJheS5wcm90b3R5cGUsIl9wYWNrIix7dmFsdWU6cGFja30pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShUeXBlZEFycmF5LnByb3RvdHlwZSwiX3VucGFjayIse3ZhbHVlOnVucGFja30pO3JldHVybiBUeXBlZEFycmF5fXZhciBJbnQ4QXJyYXk9bWFrZVR5cGVkQXJyYXkoMSxwYWNrSTgsdW5wYWNrSTgpO3ZhciBVaW50OEFycmF5PW1ha2VUeXBlZEFycmF5KDEscGFja1U4LHVucGFja1U4KTt2YXIgVWludDhDbGFtcGVkQXJyYXk9bWFrZVR5cGVkQXJyYXkoMSxwYWNrVThDbGFtcGVkLHVucGFja1U4KTt2YXIgSW50MTZBcnJheT1tYWtlVHlwZWRBcnJheSgyLHBhY2tJMTYsdW5wYWNrSTE2KTt2YXIgVWludDE2QXJyYXk9bWFrZVR5cGVkQXJyYXkoMixwYWNrVTE2LHVucGFja1UxNik7dmFyIEludDMyQXJyYXk9bWFrZVR5cGVkQXJyYXkoNCxwYWNrSTMyLHVucGFja0kzMik7dmFyIFVpbnQzMkFycmF5PW1ha2VUeXBlZEFycmF5KDQscGFja1UzMix1bnBhY2tVMzIpO3ZhciBGbG9hdDMyQXJyYXk9bWFrZVR5cGVkQXJyYXkoNCxwYWNrRjMyLHVucGFja0YzMik7dmFyIEZsb2F0NjRBcnJheT1tYWtlVHlwZWRBcnJheSg4LHBhY2tGNjQsdW5wYWNrRjY0KTtnbG9iYWwuSW50OEFycmF5PWdsb2JhbC5JbnQ4QXJyYXl8fEludDhBcnJheTtnbG9iYWwuVWludDhBcnJheT1nbG9iYWwuVWludDhBcnJheXx8VWludDhBcnJheTtnbG9iYWwuVWludDhDbGFtcGVkQXJyYXk9Z2xvYmFsLlVpbnQ4Q2xhbXBlZEFycmF5fHxVaW50OENsYW1wZWRBcnJheTtnbG9iYWwuSW50MTZBcnJheT1nbG9iYWwuSW50MTZBcnJheXx8SW50MTZBcnJheTtnbG9iYWwuVWludDE2QXJyYXk9Z2xvYmFsLlVpbnQxNkFycmF5fHxVaW50MTZBcnJheTtnbG9iYWwuSW50MzJBcnJheT1nbG9iYWwuSW50MzJBcnJheXx8SW50MzJBcnJheTtnbG9iYWwuVWludDMyQXJyYXk9Z2xvYmFsLlVpbnQzMkFycmF5fHxVaW50MzJBcnJheTtnbG9iYWwuRmxvYXQzMkFycmF5PWdsb2JhbC5GbG9hdDMyQXJyYXl8fEZsb2F0MzJBcnJheTtnbG9iYWwuRmxvYXQ2NEFycmF5PWdsb2JhbC5GbG9hdDY0QXJyYXl8fEZsb2F0NjRBcnJheX0pKCk7KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihhcnJheSxpbmRleCl7cmV0dXJuIElzQ2FsbGFibGUoYXJyYXkuZ2V0KT9hcnJheS5nZXQoaW5kZXgpOmFycmF5W2luZGV4XX12YXIgSVNfQklHX0VORElBTj1mdW5jdGlvbigpe3ZhciB1MTZhcnJheT1uZXcgVWludDE2QXJyYXkoWzQ2NjBdKSx1OGFycmF5PW5ldyBVaW50OEFycmF5KHUxNmFycmF5LmJ1ZmZlcik7cmV0dXJuIHIodThhcnJheSwwKT09PTE4fSgpO2Z1bmN0aW9uIERhdGFWaWV3KGJ1ZmZlcixieXRlT2Zmc2V0LGJ5dGVMZW5ndGgpe2lmKCEoYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ8fENsYXNzKGJ1ZmZlcik9PT0iQXJyYXlCdWZmZXIiKSl0aHJvdyBUeXBlRXJyb3IoKTtieXRlT2Zmc2V0PVRvVWludDMyKGJ5dGVPZmZzZXQpO2lmKGJ5dGVPZmZzZXQ+YnVmZmVyLmJ5dGVMZW5ndGgpdGhyb3cgUmFuZ2VFcnJvcigiYnl0ZU9mZnNldCBvdXQgb2YgcmFuZ2UiKTtpZihieXRlTGVuZ3RoPT09dW5kZWZpbmVkKWJ5dGVMZW5ndGg9YnVmZmVyLmJ5dGVMZW5ndGgtYnl0ZU9mZnNldDtlbHNlIGJ5dGVMZW5ndGg9VG9VaW50MzIoYnl0ZUxlbmd0aCk7aWYoYnl0ZU9mZnNldCtieXRlTGVuZ3RoPmJ1ZmZlci5ieXRlTGVuZ3RoKXRocm93IFJhbmdlRXJyb3IoImJ5dGVPZmZzZXQgYW5kIGxlbmd0aCByZWZlcmVuY2UgYW4gYXJlYSBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyIik7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImJ1ZmZlciIse3ZhbHVlOmJ1ZmZlcn0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJieXRlTGVuZ3RoIix7dmFsdWU6Ynl0ZUxlbmd0aH0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJieXRlT2Zmc2V0Iix7dmFsdWU6Ynl0ZU9mZnNldH0pfWZ1bmN0aW9uIG1ha2VHZXR0ZXIoYXJyYXlUeXBlKXtyZXR1cm4gZnVuY3Rpb24gR2V0Vmlld1ZhbHVlKGJ5dGVPZmZzZXQsbGl0dGxlRW5kaWFuKXtieXRlT2Zmc2V0PVRvVWludDMyKGJ5dGVPZmZzZXQpO2lmKGJ5dGVPZmZzZXQrYXJyYXlUeXBlLkJZVEVTX1BFUl9FTEVNRU5UPnRoaXMuYnl0ZUxlbmd0aCl0aHJvdyBSYW5nZUVycm9yKCJBcnJheSBpbmRleCBvdXQgb2YgcmFuZ2UiKTtieXRlT2Zmc2V0Kz10aGlzLmJ5dGVPZmZzZXQ7dmFyIHVpbnQ4QXJyYXk9bmV3IFVpbnQ4QXJyYXkodGhpcy5idWZmZXIsYnl0ZU9mZnNldCxhcnJheVR5cGUuQllURVNfUEVSX0VMRU1FTlQpLGJ5dGVzPVtdO2Zvcih2YXIgaT0wO2k8YXJyYXlUeXBlLkJZVEVTX1BFUl9FTEVNRU5UO2krPTEpYnl0ZXMucHVzaChyKHVpbnQ4QXJyYXksaSkpO2lmKEJvb2xlYW4obGl0dGxlRW5kaWFuKT09PUJvb2xlYW4oSVNfQklHX0VORElBTikpYnl0ZXMucmV2ZXJzZSgpO3JldHVybiByKG5ldyBhcnJheVR5cGUobmV3IFVpbnQ4QXJyYXkoYnl0ZXMpLmJ1ZmZlciksMCl9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhVmlldy5wcm90b3R5cGUsImdldFVpbnQ4Iix7dmFsdWU6bWFrZUdldHRlcihVaW50OEFycmF5KX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhVmlldy5wcm90b3R5cGUsImdldEludDgiLHt2YWx1ZTptYWtlR2V0dGVyKEludDhBcnJheSl9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoRGF0YVZpZXcucHJvdG90eXBlLCJnZXRVaW50MTYiLHt2YWx1ZTptYWtlR2V0dGVyKFVpbnQxNkFycmF5KX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhVmlldy5wcm90b3R5cGUsImdldEludDE2Iix7dmFsdWU6bWFrZUdldHRlcihJbnQxNkFycmF5KX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhVmlldy5wcm90b3R5cGUsImdldFVpbnQzMiIse3ZhbHVlOm1ha2VHZXR0ZXIoVWludDMyQXJyYXkpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFWaWV3LnByb3RvdHlwZSwiZ2V0SW50MzIiLHt2YWx1ZTptYWtlR2V0dGVyKEludDMyQXJyYXkpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFWaWV3LnByb3RvdHlwZSwiZ2V0RmxvYXQzMiIse3ZhbHVlOm1ha2VHZXR0ZXIoRmxvYXQzMkFycmF5KX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhVmlldy5wcm90b3R5cGUsImdldEZsb2F0NjQiLHt2YWx1ZTptYWtlR2V0dGVyKEZsb2F0NjRBcnJheSl9KTtmdW5jdGlvbiBtYWtlU2V0dGVyKGFycmF5VHlwZSl7cmV0dXJuIGZ1bmN0aW9uIFNldFZpZXdWYWx1ZShieXRlT2Zmc2V0LHZhbHVlLGxpdHRsZUVuZGlhbil7Ynl0ZU9mZnNldD1Ub1VpbnQzMihieXRlT2Zmc2V0KTtpZihieXRlT2Zmc2V0K2FycmF5VHlwZS5CWVRFU19QRVJfRUxFTUVOVD50aGlzLmJ5dGVMZW5ndGgpdGhyb3cgUmFuZ2VFcnJvcigiQXJyYXkgaW5kZXggb3V0IG9mIHJhbmdlIik7dmFyIHR5cGVBcnJheT1uZXcgYXJyYXlUeXBlKFt2YWx1ZV0pLGJ5dGVBcnJheT1uZXcgVWludDhBcnJheSh0eXBlQXJyYXkuYnVmZmVyKSxieXRlcz1bXSxpLGJ5dGVWaWV3O2ZvcihpPTA7aTxhcnJheVR5cGUuQllURVNfUEVSX0VMRU1FTlQ7aSs9MSlieXRlcy5wdXNoKHIoYnl0ZUFycmF5LGkpKTtpZihCb29sZWFuKGxpdHRsZUVuZGlhbik9PT1Cb29sZWFuKElTX0JJR19FTkRJQU4pKWJ5dGVzLnJldmVyc2UoKTtieXRlVmlldz1uZXcgVWludDhBcnJheSh0aGlzLmJ1ZmZlcixieXRlT2Zmc2V0LGFycmF5VHlwZS5CWVRFU19QRVJfRUxFTUVOVCk7Ynl0ZVZpZXcuc2V0KGJ5dGVzKX19T2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFWaWV3LnByb3RvdHlwZSwic2V0VWludDgiLHt2YWx1ZTptYWtlU2V0dGVyKFVpbnQ4QXJyYXkpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFWaWV3LnByb3RvdHlwZSwic2V0SW50OCIse3ZhbHVlOm1ha2VTZXR0ZXIoSW50OEFycmF5KX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhVmlldy5wcm90b3R5cGUsInNldFVpbnQxNiIse3ZhbHVlOm1ha2VTZXR0ZXIoVWludDE2QXJyYXkpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFWaWV3LnByb3RvdHlwZSwic2V0SW50MTYiLHt2YWx1ZTptYWtlU2V0dGVyKEludDE2QXJyYXkpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFWaWV3LnByb3RvdHlwZSwic2V0VWludDMyIix7dmFsdWU6bWFrZVNldHRlcihVaW50MzJBcnJheSl9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoRGF0YVZpZXcucHJvdG90eXBlLCJzZXRJbnQzMiIse3ZhbHVlOm1ha2VTZXR0ZXIoSW50MzJBcnJheSl9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoRGF0YVZpZXcucHJvdG90eXBlLCJzZXRGbG9hdDMyIix7dmFsdWU6bWFrZVNldHRlcihGbG9hdDMyQXJyYXkpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFWaWV3LnByb3RvdHlwZSwic2V0RmxvYXQ2NCIse3ZhbHVlOm1ha2VTZXR0ZXIoRmxvYXQ2NEFycmF5KX0pO2dsb2JhbC5EYXRhVmlldz1nbG9iYWwuRGF0YVZpZXd8fERhdGFWaWV3fSkoKX0pKHRoaXMpOw=="></script>
<link href="data:text/css,%0A%2Econtainer%2Dfluid%2Ecrosstalk%2Dbscols%20%7B%0Amargin%2Dleft%3A%20%2D30px%3B%0Amargin%2Dright%3A%20%2D30px%3B%0Awhite%2Dspace%3A%20normal%3B%0A%7D%0A%0Abody%20%3E%20%2Econtainer%2Dfluid%2Ecrosstalk%2Dbscols%20%7B%0Amargin%2Dleft%3A%20auto%3B%0Amargin%2Dright%3A%20auto%3B%0A%7D%0A%2Ecrosstalk%2Dinput%2Dcheckboxgroup%20%2Ecrosstalk%2Doptions%2Dgroup%20%2Ecrosstalk%2Doptions%2Dcolumn%20%7B%0Adisplay%3A%20inline%2Dblock%3B%0Apadding%2Dright%3A%2012px%3B%0Avertical%2Dalign%3A%20top%3B%0A%7D%0A%40media%20only%20screen%20and%20%28max%2Dwidth%3A480px%29%20%7B%0A%2Ecrosstalk%2Dinput%2Dcheckboxgroup%20%2Ecrosstalk%2Doptions%2Dgroup%20%2Ecrosstalk%2Doptions%2Dcolumn%20%7B%0Adisplay%3A%20block%3B%0Apadding%2Dright%3A%20inherit%3B%0A%7D%0A%7D%0A" rel="stylesheet" />
<script src="data:application/javascript;base64,IWZ1bmN0aW9uIG8odSxhLGwpe2Z1bmN0aW9uIHMobixlKXtpZighYVtuXSl7aWYoIXVbbl0pe3ZhciB0PSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFlJiZ0KXJldHVybiB0KG4sITApO2lmKGYpcmV0dXJuIGYobiwhMCk7dmFyIHI9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrbisiJyIpO3Rocm93IHIuY29kZT0iTU9EVUxFX05PVF9GT1VORCIscn12YXIgaT1hW25dPXtleHBvcnRzOnt9fTt1W25dWzBdLmNhbGwoaS5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciB0PXVbbl1bMV1bZV07cmV0dXJuIHModHx8ZSl9LGksaS5leHBvcnRzLG8sdSxhLGwpfXJldHVybiBhW25dLmV4cG9ydHN9Zm9yKHZhciBmPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGU9MDtlPGwubGVuZ3RoO2UrKylzKGxbZV0pO3JldHVybiBzfSh7MTpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLmtleSxyKX19cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmcihlLnByb3RvdHlwZSx0KSxuJiZyKGUsbiksZX19KCk7dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZSksdGhpcy5fdHlwZXM9e30sdGhpcy5fc2VxPTB9cmV0dXJuIHIoZSxbe2tleToib24iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fdHlwZXNbZV07bnx8KG49dGhpcy5fdHlwZXNbZV09e30pO3ZhciByPSJzdWIiK3RoaXMuX3NlcSsrO3JldHVybiBuW3JdPXQscn19LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLl90eXBlc1tlXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdCl7Zm9yKHZhciByIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShyKSYmbltyXT09PXQpcmV0dXJuIGRlbGV0ZSBuW3JdLHI7cmV0dXJuITF9aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiEoIW58fCFuW3RdKSYmKGRlbGV0ZSBuW3RdLHQpO3Rocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCB0eXBlIGZvciBsaXN0ZW5lciIpfX0se2tleToidHJpZ2dlciIsdmFsdWU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXMuX3R5cGVzW2VdO2Zvcih2YXIgaSBpbiByKXIuaGFzT3duUHJvcGVydHkoaSkmJnJbaV0uY2FsbChuLHQpfX1dKSxlfSgpO24uZGVmYXVsdD1pfSx7fV0sMjpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5GaWx0ZXJIYW5kbGU9dm9pZCAwO3ZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsci5rZXkscil9fXJldHVybiBmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQmJnIoZS5wcm90b3R5cGUsdCksbiYmcihlLG4pLGV9fSgpLGk9bChlKCIuL2V2ZW50cyIpKSxvPWwoZSgiLi9maWx0ZXJzZXQiKSksdT1sKGUoIi4vZ3JvdXAiKSksYT1mdW5jdGlvbihlKXt7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PXt9O2lmKG51bGwhPWUpZm9yKHZhciBuIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJih0W25dPWVbbl0pO3JldHVybiB0LmRlZmF1bHQ9ZSx0fX0oZSgiLi91dGlsIikpO2Z1bmN0aW9uIGwoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fXZhciBzPTE7bi5GaWx0ZXJIYW5kbGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKGUsdCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsbiksdGhpcy5fZXZlbnRSZWxheT1uZXcgaS5kZWZhdWx0LHRoaXMuX2VtaXR0ZXI9bmV3IGEuU3Vic2NyaXB0aW9uVHJhY2tlcih0aGlzLl9ldmVudFJlbGF5KSx0aGlzLl9ncm91cD1udWxsLHRoaXMuX2ZpbHRlclNldD1udWxsLHRoaXMuX2ZpbHRlclZhcj1udWxsLHRoaXMuX3Zhck9uQ2hhbmdlU3ViPW51bGwsdGhpcy5fZXh0cmFJbmZvPWEuZXh0ZW5kKHtzZW5kZXI6dGhpc30sdCksdGhpcy5faWQ9ImZpbHRlciIrcysrLHRoaXMuc2V0R3JvdXAoZSl9cmV0dXJuIHIobixbe2tleToic2V0R3JvdXAiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj10aGlzO2lmKHRoaXMuX2dyb3VwIT09ZSYmKCh0aGlzLl9ncm91cHx8ZSkmJih0aGlzLl9maWx0ZXJWYXImJih0aGlzLl9maWx0ZXJWYXIub2ZmKCJjaGFuZ2UiLHRoaXMuX3Zhck9uQ2hhbmdlU3ViKSx0aGlzLmNsZWFyKCksdGhpcy5fdmFyT25DaGFuZ2VTdWI9bnVsbCx0aGlzLl9maWx0ZXJWYXI9bnVsbCx0aGlzLl9maWx0ZXJTZXQ9bnVsbCksdGhpcy5fZ3JvdXA9ZSkpKXtlPSgwLHUuZGVmYXVsdCkoZSksdGhpcy5fZmlsdGVyU2V0PSh0PWUudmFyKCJmaWx0ZXJzZXQiKSwobj10LmdldCgpKXx8KG49bmV3IG8uZGVmYXVsdCx0LnNldChuKSksbiksdGhpcy5fZmlsdGVyVmFyPSgwLHUuZGVmYXVsdCkoZSkudmFyKCJmaWx0ZXIiKTt2YXIgaT10aGlzLl9maWx0ZXJWYXIub24oImNoYW5nZSIsZnVuY3Rpb24oZSl7ci5fZXZlbnRSZWxheS50cmlnZ2VyKCJjaGFuZ2UiLGUscil9KTt0aGlzLl92YXJPbkNoYW5nZVN1Yj1pfX19LHtrZXk6Il9tZXJnZUV4dHJhSW5mbyIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIGEuZXh0ZW5kKHt9LHRoaXMuX2V4dHJhSW5mbz90aGlzLl9leHRyYUluZm86bnVsbCxlfHxudWxsKX19LHtrZXk6ImNsb3NlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2VtaXR0ZXIucmVtb3ZlQWxsTGlzdGVuZXJzKCksdGhpcy5jbGVhcigpLHRoaXMuc2V0R3JvdXAobnVsbCl9fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oZSl7dGhpcy5fZmlsdGVyU2V0JiYodGhpcy5fZmlsdGVyU2V0LmNsZWFyKHRoaXMuX2lkKSx0aGlzLl9vbkNoYW5nZShlKSl9fSx7a2V5OiJzZXQiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dGhpcy5fZmlsdGVyU2V0JiYodGhpcy5fZmlsdGVyU2V0LnVwZGF0ZSh0aGlzLl9pZCxlKSx0aGlzLl9vbkNoYW5nZSh0KSl9fSx7a2V5OiJvbiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fZW1pdHRlci5vbihlLHQpfX0se2tleToib2ZmIix2YWx1ZTpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9lbWl0dGVyLm9mZihlLHQpfX0se2tleToiX29uQ2hhbmdlIix2YWx1ZTpmdW5jdGlvbihlKXt0aGlzLl9maWx0ZXJTZXQmJnRoaXMuX2ZpbHRlclZhci5zZXQodGhpcy5fZmlsdGVyU2V0LnZhbHVlLHRoaXMuX21lcmdlRXh0cmFJbmZvKGUpKX19LHtrZXk6ImZpbHRlcmVkS2V5cyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ZpbHRlclNldD90aGlzLl9maWx0ZXJTZXQudmFsdWU6bnVsbH19XSksbn0oKX0seyIuL2V2ZW50cyI6MSwiLi9maWx0ZXJzZXQiOjMsIi4vZ3JvdXAiOjQsIi4vdXRpbCI6MTF9XSwzOltmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHI9dFtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIua2V5LHIpfX1yZXR1cm4gZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZyKGUucHJvdG90eXBlLHQpLG4mJnIoZSxuKSxlfX0oKSxhPWUoIi4vdXRpbCIpO2Z1bmN0aW9uIGwoZSx0KXtyZXR1cm4gZT09PXQ/MDplPHQ/LTE6dDxlPzE6dm9pZCAwfXZhciBpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpeyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGUpLHRoaXMucmVzZXQoKX1yZXR1cm4gcihlLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9oYW5kbGVzPXt9LHRoaXMuX2tleXM9e30sdGhpcy5fdmFsdWU9bnVsbCx0aGlzLl9hY3RpdmVIYW5kbGVzPTB9fSx7a2V5OiJ1cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7bnVsbCE9PXQmJih0PXQuc2xpY2UoMCkpLnNvcnQobCk7dmFyIG49KDAsYS5kaWZmU29ydGVkTGlzdHMpKHRoaXMuX2hhbmRsZXNbZV0sdCkscj1uLmFkZGVkLGk9bi5yZW1vdmVkO3RoaXMuX2hhbmRsZXNbZV09dDtmb3IodmFyIG89MDtvPHIubGVuZ3RoO28rKyl0aGlzLl9rZXlzW3Jbb11dPSh0aGlzLl9rZXlzW3Jbb11dfHwwKSsxO2Zvcih2YXIgdT0wO3U8aS5sZW5ndGg7dSsrKXRoaXMuX2tleXNbaVt1XV0tLTt0aGlzLl91cGRhdGVWYWx1ZSh0KX19LHtrZXk6Il91cGRhdGVWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT0wPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5fYWxsS2V5cyx0PU9iamVjdC5rZXlzKHRoaXMuX2hhbmRsZXMpLmxlbmd0aDtpZigwPT09dCl0aGlzLl92YWx1ZT1udWxsO2Vsc2V7dGhpcy5fdmFsdWU9W107Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3RoaXMuX2tleXNbZVtuXV09PT10JiZ0aGlzLl92YWx1ZS5wdXNoKGVbbl0pfX19fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oZSl7aWYodm9pZCAwIT09dGhpcy5faGFuZGxlc1tlXSl7dmFyIHQ9dGhpcy5faGFuZGxlc1tlXTt0fHwodD1bXSk7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspdGhpcy5fa2V5c1t0W25dXS0tO2RlbGV0ZSB0aGlzLl9oYW5kbGVzW2VdLHRoaXMuX3VwZGF0ZVZhbHVlKCl9fX0se2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl92YWx1ZX19LHtrZXk6Il9hbGxLZXlzIixnZXQ6ZnVuY3Rpb24oKXt2YXIgZT1PYmplY3Qua2V5cyh0aGlzLl9rZXlzKTtyZXR1cm4gZS5zb3J0KGwpLGV9fV0pLGV9KCk7bi5kZWZhdWx0PWl9LHsiLi91dGlsIjoxMX1dLDQ6W2Z1bmN0aW9uKGwsZSxzKXsoZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj1mdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHI9dFtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIua2V5LHIpfX1yZXR1cm4gZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZyKGUucHJvdG90eXBlLHQpLG4mJnIoZSxuKSxlfX0oKSxyPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfTtzLmRlZmF1bHQ9ZnVuY3Rpb24gZSh0KXt7aWYodCYmInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB1Lmhhc093blByb3BlcnR5KHQpfHwodVt0XT1uZXcgYSh0KSksdVt0XTtpZigib2JqZWN0Ij09PSh2b2lkIDA9PT10PyJ1bmRlZmluZWQiOnIodCkpJiZ0Ll92YXJzJiZ0LnZhcilyZXR1cm4gdDtpZihBcnJheS5pc0FycmF5KHQpJiYxPT10Lmxlbmd0aCYmInN0cmluZyI9PXR5cGVvZiB0WzBdKXJldHVybiBlKHRbMF0pO3Rocm93IG5ldyBFcnJvcigiSW52YWxpZCBncm91cE5hbWUgYXJndW1lbnQiKX19O3ZhciB0LGk9bCgiLi92YXIiKSxvPSh0PWkpJiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fTtlLl9fY3Jvc3N0YWxrX2dyb3Vwcz1lLl9fY3Jvc3N0YWxrX2dyb3Vwc3x8e307dmFyIHU9ZS5fX2Nyb3NzdGFsa19ncm91cHM7dmFyIGE9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpeyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLHQpLHRoaXMubmFtZT1lLHRoaXMuX3ZhcnM9e319cmV0dXJuIG4odCxbe2tleToidmFyIix2YWx1ZTpmdW5jdGlvbihlKXtpZighZXx8InN0cmluZyIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCB2YXIgbmFtZSIpO3JldHVybiB0aGlzLl92YXJzLmhhc093blByb3BlcnR5KGUpfHwodGhpcy5fdmFyc1tlXT1uZXcgby5kZWZhdWx0KHRoaXMsZSkpLHRoaXMuX3ZhcnNbZV19fSx7a2V5OiJoYXMiLHZhbHVlOmZ1bmN0aW9uKGUpe2lmKCFlfHwic3RyaW5nIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHZhciBuYW1lIik7cmV0dXJuIHRoaXMuX3ZhcnMuaGFzT3duUHJvcGVydHkoZSl9fV0pLHR9KCl9KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHsiLi92YXIiOjEyfV0sNTpbZnVuY3Rpb24oZixlLGMpeyhmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB0LG49ZigiLi9ncm91cCIpLHI9KHQ9bikmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9LGk9ZigiLi9zZWxlY3Rpb24iKSxvPWYoIi4vZmlsdGVyIiksdT1mKCIuL2lucHV0Iik7ZigiLi9pbnB1dF9zZWxlY3RpemUiKSxmKCIuL2lucHV0X2NoZWNrYm94Z3JvdXAiKSxmKCIuL2lucHV0X3NsaWRlciIpO3ZhciBhPSgwLHIuZGVmYXVsdCkoImRlZmF1bHQiKTtmdW5jdGlvbiBsKGUpe3JldHVybiBhLnZhcihlKX1lLlNoaW55JiZlLlNoaW55LmFkZEN1c3RvbU1lc3NhZ2VIYW5kbGVyKCJ1cGRhdGUtY2xpZW50LXZhbHVlIixmdW5jdGlvbihlKXsic3RyaW5nIj09dHlwZW9mIGUuZ3JvdXA/KDAsci5kZWZhdWx0KShlLmdyb3VwKS52YXIoZS5uYW1lKS5zZXQoZS52YWx1ZSk6bChlLm5hbWUpLnNldChlLnZhbHVlKX0pO3ZhciBzPXtncm91cDpyLmRlZmF1bHQsdmFyOmwsaGFzOmZ1bmN0aW9uKGUpe3JldHVybiBhLmhhcyhlKX0sU2VsZWN0aW9uSGFuZGxlOmkuU2VsZWN0aW9uSGFuZGxlLEZpbHRlckhhbmRsZTpvLkZpbHRlckhhbmRsZSxiaW5kOnUuYmluZH07Yy5kZWZhdWx0PXMsZS5jcm9zc3RhbGs9c30pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0seyIuL2ZpbHRlciI6MiwiLi9ncm91cCI6NCwiLi9pbnB1dCI6NiwiLi9pbnB1dF9jaGVja2JveGdyb3VwIjo3LCIuL2lucHV0X3NlbGVjdGl6ZSI6OCwiLi9pbnB1dF9zbGlkZXIiOjksIi4vc2VsZWN0aW9uIjoxMH1dLDY6W2Z1bmN0aW9uKGUsdCxhKXsoZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxhLnJlZ2lzdGVyPWZ1bmN0aW9uKGUpe3JbZS5jbGFzc05hbWVdPWUsdC5kb2N1bWVudCYmImNvbXBsZXRlIiE9PXQuZG9jdW1lbnQucmVhZHlTdGF0ZT9vKGZ1bmN0aW9uKCl7bigpfSk6dC5kb2N1bWVudCYmc2V0VGltZW91dChuLDEwMCl9LGEuYmluZD1uO3ZhciBvPXQualF1ZXJ5LHI9e307ZnVuY3Rpb24gbigpe09iamVjdC5rZXlzKHIpLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIG49cltlXTtvKCIuIituLmNsYXNzTmFtZSkubm90KCIuY3Jvc3N0YWxrLWlucHV0LWJvdW5kIikuZWFjaChmdW5jdGlvbihlLHQpe2kobix0KX0pfSl9ZnVuY3Rpb24gaShlLHQpe3ZhciBuPW8odCkuZmluZCgic2NyaXB0W3R5cGU9J2FwcGxpY2F0aW9uL2pzb24nXVtkYXRhLWZvcj0nIit0LmlkLnJlcGxhY2UoLyhbISIjJCUmJygpKissLi86Ozw9Pj9AW1xcXF1eYHt8fX5dKS9nLCJcXCQxIikrIiddIikscj1KU09OLnBhcnNlKG5bMF0uaW5uZXJUZXh0KSxpPWUuZmFjdG9yeSh0LHIpO28odCkuZGF0YSgiY3Jvc3N0YWxrLWluc3RhbmNlIixpKSxvKHQpLmFkZENsYXNzKCJjcm9zc3RhbGstaW5wdXQtYm91bmQiKX1pZih0LlNoaW55KXt2YXIgZT1uZXcgdC5TaGlueS5JbnB1dEJpbmRpbmcsdT10LmpRdWVyeTt1LmV4dGVuZChlLHtmaW5kOmZ1bmN0aW9uKGUpe3JldHVybiB1KGUpLmZpbmQoIi5jcm9zc3RhbGstaW5wdXQiKX0saW5pdGlhbGl6ZTpmdW5jdGlvbihlKXt2YXIgdCxuO3UoZSkuaGFzQ2xhc3MoImNyb3NzdGFsay1pbnB1dC1ib3VuZCIpfHwobj1vKHQ9ZSksT2JqZWN0LmtleXMocikuZm9yRWFjaChmdW5jdGlvbihlKXtuLmhhc0NsYXNzKGUpJiYhbi5oYXNDbGFzcygiY3Jvc3N0YWxrLWlucHV0LWJvdW5kIikmJmkocltlXSx0KX0pKX0sZ2V0SWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWR9LGdldFZhbHVlOmZ1bmN0aW9uKGUpe30sc2V0VmFsdWU6ZnVuY3Rpb24oZSx0KXt9LHJlY2VpdmVNZXNzYWdlOmZ1bmN0aW9uKGUsdCl7fSxzdWJzY3JpYmU6ZnVuY3Rpb24oZSx0KXt1KGUpLmRhdGEoImNyb3NzdGFsay1pbnN0YW5jZSIpLnJlc3VtZSgpfSx1bnN1YnNjcmliZTpmdW5jdGlvbihlKXt1KGUpLmRhdGEoImNyb3NzdGFsay1pbnN0YW5jZSIpLnN1c3BlbmQoKX19KSx0LlNoaW55LmlucHV0QmluZGluZ3MucmVnaXN0ZXIoZSwiY3Jvc3N0YWxrLmlucHV0QmluZGluZyIpfX0pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0se31dLDc6W2Z1bmN0aW9uKHIsZSx0KXsoZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO3ZhciB0PWZ1bmN0aW9uKGUpe3tpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHQ9e307aWYobnVsbCE9ZSlmb3IodmFyIG4gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmKHRbbl09ZVtuXSk7cmV0dXJuIHQuZGVmYXVsdD1lLHR9fShyKCIuL2lucHV0IikpLG49cigiLi9maWx0ZXIiKTt2YXIgYT1lLmpRdWVyeTt0LnJlZ2lzdGVyKHtjbGFzc05hbWU6ImNyb3NzdGFsay1pbnB1dC1jaGVja2JveGdyb3VwIixmYWN0b3J5OmZ1bmN0aW9uKGUscil7dmFyIGk9bmV3IG4uRmlsdGVySGFuZGxlKHIuZ3JvdXApLG89dm9pZCAwLHU9YShlKTtyZXR1cm4gdS5vbigiY2hhbmdlIiwiaW5wdXRbdHlwZT0nY2hlY2tib3gnXSIsZnVuY3Rpb24oKXt2YXIgZT11LmZpbmQoImlucHV0W3R5cGU9J2NoZWNrYm94J106Y2hlY2tlZCIpO2lmKDA9PT1lLmxlbmd0aClvPW51bGwsaS5jbGVhcigpO2Vsc2V7dmFyIHQ9e307ZS5lYWNoKGZ1bmN0aW9uKCl7ci5tYXBbdGhpcy52YWx1ZV0uZm9yRWFjaChmdW5jdGlvbihlKXt0W2VdPSEwfSl9KTt2YXIgbj1PYmplY3Qua2V5cyh0KTtuLnNvcnQoKSxvPW4saS5zZXQobil9fSkse3N1c3BlbmQ6ZnVuY3Rpb24oKXtpLmNsZWFyKCl9LHJlc3VtZTpmdW5jdGlvbigpe28mJmkuc2V0KG8pfX19fSl9KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHsiLi9maWx0ZXIiOjIsIi4vaW5wdXQiOjZ9XSw4OltmdW5jdGlvbihyLGUsdCl7KGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD1uKHIoIi4vaW5wdXQiKSksbD1uKHIoIi4vdXRpbCIpKSxzPXIoIi4vZmlsdGVyIik7ZnVuY3Rpb24gbihlKXtpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHQ9e307aWYobnVsbCE9ZSlmb3IodmFyIG4gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmKHRbbl09ZVtuXSk7cmV0dXJuIHQuZGVmYXVsdD1lLHR9dmFyIGY9ZS5qUXVlcnk7dC5yZWdpc3Rlcih7Y2xhc3NOYW1lOiJjcm9zc3RhbGstaW5wdXQtc2VsZWN0IixmYWN0b3J5OmZ1bmN0aW9uKGUsbil7dmFyIHQ9bC5kYXRhZnJhbWVUb0QzKG4uaXRlbXMpLHI9e29wdGlvbnM6W3t2YWx1ZToiIixsYWJlbDoiKEFsbCkifV0uY29uY2F0KHQpLHZhbHVlRmllbGQ6InZhbHVlIixsYWJlbEZpZWxkOiJsYWJlbCIsc2VhcmNoRmllbGQ6ImxhYmVsIn0saT1mKGUpLmZpbmQoInNlbGVjdCIpWzBdLG89ZihpKS5zZWxlY3RpemUocilbMF0uc2VsZWN0aXplLHU9bmV3IHMuRmlsdGVySGFuZGxlKG4uZ3JvdXApLGE9dm9pZCAwO3JldHVybiBvLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7aWYoMD09PW8uaXRlbXMubGVuZ3RoKWE9bnVsbCx1LmNsZWFyKCk7ZWxzZXt2YXIgdD17fTtvLml0ZW1zLmZvckVhY2goZnVuY3Rpb24oZSl7bi5tYXBbZV0uZm9yRWFjaChmdW5jdGlvbihlKXt0W2VdPSEwfSl9KTt2YXIgZT1PYmplY3Qua2V5cyh0KTtlLnNvcnQoKSxhPWUsdS5zZXQoZSl9fSkse3N1c3BlbmQ6ZnVuY3Rpb24oKXt1LmNsZWFyKCl9LHJlc3VtZTpmdW5jdGlvbigpe2EmJnUuc2V0KGEpfX19fSl9KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHsiLi9maWx0ZXIiOjIsIi4vaW5wdXQiOjYsIi4vdXRpbCI6MTF9XSw5OltmdW5jdGlvbihuLGUsdCl7KGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgZD1mdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGU7aWYoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChlKSlyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgbj1bXSxyPSEwLGk9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgdSxhPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEocj0odT1hLm5leHQoKSkuZG9uZSkmJihuLnB1c2godS52YWx1ZSksIXR8fG4ubGVuZ3RoIT09dCk7cj0hMCk7fWNhdGNoKGUpe2k9ITAsbz1lfWZpbmFsbHl7dHJ5eyFyJiZhLnJldHVybiYmYS5yZXR1cm4oKX1maW5hbGx5e2lmKGkpdGhyb3cgb319cmV0dXJuIG59KGUsdCk7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpfSx0PWZ1bmN0aW9uKGUpe3tpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHQ9e307aWYobnVsbCE9ZSlmb3IodmFyIG4gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmKHRbbl09ZVtuXSk7cmV0dXJuIHQuZGVmYXVsdD1lLHR9fShuKCIuL2lucHV0IikpLGE9bigiLi9maWx0ZXIiKTt2YXIgdj1lLmpRdWVyeSxwPWUuc3RyZnRpbWU7ZnVuY3Rpb24geShlLHQpe2Zvcih2YXIgbj1lLnRvU3RyaW5nKCk7bi5sZW5ndGg8dDspbj0iMCIrbjtyZXR1cm4gbn10LnJlZ2lzdGVyKHtjbGFzc05hbWU6ImNyb3NzdGFsay1pbnB1dC1zbGlkZXIiLGZhY3Rvcnk6ZnVuY3Rpb24oZSxsKXt2YXIgcz1uZXcgYS5GaWx0ZXJIYW5kbGUobC5ncm91cCksdD17fSxmPXYoZSkuZmluZCgiaW5wdXQiKSxuPWYuZGF0YSgiZGF0YS10eXBlIikscj1mLmRhdGEoInRpbWUtZm9ybWF0IiksaT1mLmRhdGEoInJvdW5kIiksbz12b2lkIDA7aWYoImRhdGUiPT09bilvPXAudXRjKCksdC5wcmV0dGlmeT1mdW5jdGlvbihlKXtyZXR1cm4gbyhyLG5ldyBEYXRlKGUpKX07ZWxzZSBpZigiZGF0ZXRpbWUiPT09bil7dmFyIHU9Zi5kYXRhKCJ0aW1lem9uZSIpO289dT9wLnRpbWV6b25lKHUpOnAsdC5wcmV0dGlmeT1mdW5jdGlvbihlKXtyZXR1cm4gbyhyLG5ldyBEYXRlKGUpKX19ZWxzZSJudW1iZXIiPT09biYmdm9pZCAwIT09aSYmKHQucHJldHRpZnk9ZnVuY3Rpb24oZSl7dmFyIHQ9TWF0aC5wb3coMTAsaSk7cmV0dXJuIE1hdGgucm91bmQoZSp0KS90fSk7ZnVuY3Rpb24gYygpe3ZhciBlPWYuZGF0YSgiaW9uUmFuZ2VTbGlkZXIiKS5yZXN1bHQsdD12b2lkIDAsbj1mLmRhdGEoImRhdGEtdHlwZSIpO3JldHVybiB0PSJkYXRlIj09PW4/ZnVuY3Rpb24oZSl7cmV0dXJuKHQ9bmV3IERhdGUoK2UpKWluc3RhbmNlb2YgRGF0ZT90LmdldFVUQ0Z1bGxZZWFyKCkrIi0iK3kodC5nZXRVVENNb250aCgpKzEsMikrIi0iK3kodC5nZXRVVENEYXRlKCksMik6bnVsbDt2YXIgdH06ImRhdGV0aW1lIj09PW4/ZnVuY3Rpb24oZSl7cmV0dXJuK2UvMWUzfTpmdW5jdGlvbihlKXtyZXR1cm4rZX0sImRvdWJsZSI9PT1mLmRhdGEoImlvblJhbmdlU2xpZGVyIikub3B0aW9ucy50eXBlP1t0KGUuZnJvbSksdChlLnRvKV06dChlLmZyb20pfWYuaW9uUmFuZ2VTbGlkZXIodCk7dmFyIGg9bnVsbDtyZXR1cm4gZi5vbigiY2hhbmdlLmNyb3NzdGFsa1NsaWRlcklucHV0IixmdW5jdGlvbihlKXtpZighZi5kYXRhKCJ1cGRhdGluZyIpJiYhZi5kYXRhKCJhbmltYXRpbmciKSl7Zm9yKHZhciB0PWMoKSxuPWQodCwyKSxyPW5bMF0saT1uWzFdLG89W10sdT0wO3U8bC52YWx1ZXMubGVuZ3RoO3UrKyl7dmFyIGE9bC52YWx1ZXNbdV07cjw9YSYmYTw9aSYmby5wdXNoKGwua2V5c1t1XSl9by5zb3J0KCkscy5zZXQobyksaD1vfX0pLHtzdXNwZW5kOmZ1bmN0aW9uKCl7cy5jbGVhcigpfSxyZXN1bWU6ZnVuY3Rpb24oKXtoJiZzLnNldChoKX19fX0pfSkuY2FsbCh0aGlzLCJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6e30pfSx7Ii4vZmlsdGVyIjoyLCIuL2lucHV0Ijo2fV0sMTA6W2Z1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uU2VsZWN0aW9uSGFuZGxlPXZvaWQgMDt2YXIgcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHI9dFtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIua2V5LHIpfX1yZXR1cm4gZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZyKGUucHJvdG90eXBlLHQpLG4mJnIoZSxuKSxlfX0oKSxpPWEoZSgiLi9ldmVudHMiKSksbz1hKGUoIi4vZ3JvdXAiKSksdT1mdW5jdGlvbihlKXt7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PXt9O2lmKG51bGwhPWUpZm9yKHZhciBuIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJih0W25dPWVbbl0pO3JldHVybiB0LmRlZmF1bHQ9ZSx0fX0oZSgiLi91dGlsIikpO2Z1bmN0aW9uIGEoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fW4uU2VsZWN0aW9uSGFuZGxlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbigpe3ZhciBlPTA8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpudWxsLHQ9MTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm51bGw7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsbiksdGhpcy5fZXZlbnRSZWxheT1uZXcgaS5kZWZhdWx0LHRoaXMuX2VtaXR0ZXI9bmV3IHUuU3Vic2NyaXB0aW9uVHJhY2tlcih0aGlzLl9ldmVudFJlbGF5KSx0aGlzLl9ncm91cD1udWxsLHRoaXMuX3Zhcj1udWxsLHRoaXMuX3Zhck9uQ2hhbmdlU3ViPW51bGwsdGhpcy5fZXh0cmFJbmZvPXUuZXh0ZW5kKHtzZW5kZXI6dGhpc30sdCksdGhpcy5zZXRHcm91cChlKX1yZXR1cm4gcihuLFt7a2V5OiJzZXRHcm91cCIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztpZih0aGlzLl9ncm91cCE9PWUmJih0aGlzLl9ncm91cHx8ZSkmJih0aGlzLl92YXImJih0aGlzLl92YXIub2ZmKCJjaGFuZ2UiLHRoaXMuX3Zhck9uQ2hhbmdlU3ViKSx0aGlzLl92YXI9bnVsbCx0aGlzLl92YXJPbkNoYW5nZVN1Yj1udWxsKSx0aGlzLl9ncm91cD1lKSl7dGhpcy5fdmFyPSgwLG8uZGVmYXVsdCkoZSkudmFyKCJzZWxlY3Rpb24iKTt2YXIgbj10aGlzLl92YXIub24oImNoYW5nZSIsZnVuY3Rpb24oZSl7dC5fZXZlbnRSZWxheS50cmlnZ2VyKCJjaGFuZ2UiLGUsdCl9KTt0aGlzLl92YXJPbkNoYW5nZVN1Yj1ufX19LHtrZXk6Il9tZXJnZUV4dHJhSW5mbyIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHUuZXh0ZW5kKHt9LHRoaXMuX2V4dHJhSW5mbz90aGlzLl9leHRyYUluZm86bnVsbCxlfHxudWxsKX19LHtrZXk6InNldCIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt0aGlzLl92YXImJnRoaXMuX3Zhci5zZXQoZSx0aGlzLl9tZXJnZUV4dHJhSW5mbyh0KSl9fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oZSl7dGhpcy5fdmFyJiZ0aGlzLnNldCh2b2lkIDAsdGhpcy5fbWVyZ2VFeHRyYUluZm8oZSkpfX0se2tleToib24iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX2VtaXR0ZXIub24oZSx0KX19LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fZW1pdHRlci5vZmYoZSx0KX19LHtrZXk6ImNsb3NlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2VtaXR0ZXIucmVtb3ZlQWxsTGlzdGVuZXJzKCksdGhpcy5zZXRHcm91cChudWxsKX19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdmFyP3RoaXMuX3Zhci5nZXQoKTpudWxsfX1dKSxufSgpfSx7Ii4vZXZlbnRzIjoxLCIuL2dyb3VwIjo0LCIuL3V0aWwiOjExfV0sMTE6W2Z1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsci5rZXkscil9fXJldHVybiBmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQmJnIoZS5wcm90b3R5cGUsdCksbiYmcihlLG4pLGV9fSgpLGw9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9O2Z1bmN0aW9uIHUoZSl7Zm9yKHZhciB0PTE7dDxlLmxlbmd0aDt0KyspaWYoZVt0XTw9ZVt0LTFdKXRocm93IG5ldyBFcnJvcigiTGlzdCBpcyBub3Qgc29ydGVkIG9yIGNvbnRhaW5zIGR1cGxpY2F0ZSIpfW4uZXh0ZW5kPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1hcmd1bWVudHMubGVuZ3RoLG49QXJyYXkoMTx0P3QtMTowKSxyPTE7cjx0O3IrKyluW3ItMV09YXJndW1lbnRzW3JdO2Zvcih2YXIgaT0wO2k8bi5sZW5ndGg7aSsrKXt2YXIgbz1uW2ldO2lmKG51bGwhPW8pZm9yKHZhciB1IGluIG8pby5oYXNPd25Qcm9wZXJ0eSh1KSYmKGVbdV09b1t1XSl9cmV0dXJuIGV9LG4uY2hlY2tTb3J0ZWQ9dSxuLmRpZmZTb3J0ZWRMaXN0cz1mdW5jdGlvbihlLHQpe3ZhciBuPTAscj0wO2V8fChlPVtdKTt0fHwodD1bXSk7dmFyIGk9W10sbz1bXTt1KGUpLHUodCk7Zm9yKDtuPGUubGVuZ3RoJiZyPHQubGVuZ3RoOyllW25dPT09dFtyXT8obisrLHIrKyk6ZVtuXTx0W3JdP2kucHVzaChlW24rK10pOm8ucHVzaCh0W3IrK10pO248ZS5sZW5ndGgmJihpPWkuY29uY2F0KGUuc2xpY2UobikpKTtyPHQubGVuZ3RoJiYobz1vLmNvbmNhdCh0LnNsaWNlKHIpKSk7cmV0dXJue3JlbW92ZWQ6aSxhZGRlZDpvfX0sbi5kYXRhZnJhbWVUb0QzPWZ1bmN0aW9uKGUpe3ZhciB0PVtdLG49dm9pZCAwO2Zvcih2YXIgciBpbiBlKXtpZihlLmhhc093blByb3BlcnR5KHIpJiZ0LnB1c2gociksIm9iamVjdCIhPT1sKGVbcl0pfHx2b2lkIDA9PT1lW3JdLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkFsbCBmaWVsZHMgbXVzdCBiZSBhcnJheXMiKTtpZih2b2lkIDAhPT1uJiZuIT09ZVtyXS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJBbGwgZmllbGRzIG11c3QgYmUgYXJyYXlzIG9mIHRoZSBzYW1lIGxlbmd0aCIpO249ZVtyXS5sZW5ndGh9Zm9yKHZhciBpPVtdLG89dm9pZCAwLHU9MDt1PG47dSsrKXtvPXt9O2Zvcih2YXIgYT0wO2E8dC5sZW5ndGg7YSsrKW9bdFthXV09ZVt0W2FdXVt1XTtpLnB1c2gobyl9cmV0dXJuIGl9O24uU3Vic2NyaXB0aW9uVHJhY2tlcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsdCksdGhpcy5fZW1pdHRlcj1lLHRoaXMuX3N1YnM9e319cmV0dXJuIHIodCxbe2tleToib24iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fZW1pdHRlci5vbihlLHQpO3JldHVybiB0aGlzLl9zdWJzW25dPWUsbn19LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLl9lbWl0dGVyLm9mZihlLHQpO3JldHVybiBuJiZkZWxldGUgdGhpcy5fc3Vic1tuXSxufX0se2tleToicmVtb3ZlQWxsTGlzdGVuZXJzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj10aGlzLl9zdWJzO3RoaXMuX3N1YnM9e30sT2JqZWN0LmtleXMobikuZm9yRWFjaChmdW5jdGlvbihlKXt0Ll9lbWl0dGVyLm9mZihuW2VdLGUpfSl9fV0pLHR9KCl9LHt9XSwxMjpbZnVuY3Rpb24oYSxlLGwpeyhmdW5jdGlvbihvKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGwsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlLHU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9LHQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLmtleSxyKX19cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmcihlLnByb3RvdHlwZSx0KSxuJiZyKGUsbiksZX19KCksbj1hKCIuL2V2ZW50cyIpLGk9KGU9bikmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9O3ZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLHQsbil7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsciksdGhpcy5fZ3JvdXA9ZSx0aGlzLl9uYW1lPXQsdGhpcy5fdmFsdWU9bix0aGlzLl9ldmVudHM9bmV3IGkuZGVmYXVsdH1yZXR1cm4gdChyLFt7a2V5OiJnZXQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfX0se2tleToic2V0Iix2YWx1ZTpmdW5jdGlvbihlLHQpe2lmKHRoaXMuX3ZhbHVlIT09ZSl7dmFyIG49dGhpcy5fdmFsdWU7dGhpcy5fdmFsdWU9ZTt2YXIgcj17fTtpZih0JiYib2JqZWN0Ij09PSh2b2lkIDA9PT10PyJ1bmRlZmluZWQiOnUodCkpKWZvcih2YXIgaSBpbiB0KXQuaGFzT3duUHJvcGVydHkoaSkmJihyW2ldPXRbaV0pO3Iub2xkVmFsdWU9bixyLnZhbHVlPWUsdGhpcy5fZXZlbnRzLnRyaWdnZXIoImNoYW5nZSIscix0aGlzKSxvLlNoaW55JiZvLlNoaW55Lm9uSW5wdXRDaGFuZ2UmJm8uU2hpbnkub25JbnB1dENoYW5nZSgiLmNsaWVudFZhbHVlLSIrKG51bGwhPT10aGlzLl9ncm91cC5uYW1lP3RoaXMuX2dyb3VwLm5hbWUrIi0iOiIiKSt0aGlzLl9uYW1lLHZvaWQgMD09PWU/bnVsbDplKX19fSx7a2V5OiJvbiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fZXZlbnRzLm9uKGUsdCl9fSx7a2V5OiJvZmYiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX2V2ZW50cy5vZmYoZSx0KX19XSkscn0oKTtsLmRlZmF1bHQ9cn0pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0seyIuL2V2ZW50cyI6MX1dfSx7fSxbNV0pOwovLyMgc291cmNlTWFwcGluZ1VSTD1jcm9zc3RhbGsubWluLmpzLm1hcA=="></script>
<link href="data:text/css,%0Aslide%3Anot%28%2Ecurrent%29%20%2Eplotly%2Ehtml%2Dwidget%7B%0Adisplay%3A%20none%3B%0A%7D%0A" rel="stylesheet" />
<script src="data:application/javascript;base64,LyoqCiogcGxvdGx5LmpzIHYxLjUyLjIKKiBDb3B5cmlnaHQgMjAxMi0yMDIwLCBQbG90bHksIEluYy4KKiBBbGwgcmlnaHRzIHJlc2VydmVkLgoqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQoqLwohZnVuY3Rpb24odCl7aWYoIm9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZSltb2R1bGUuZXhwb3J0cz10KCk7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kKWRlZmluZShbXSx0KTtlbHNleygidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnRoaXMpLlBsb3RseT10KCl9fShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiB0KGUscixuKXtmdW5jdGlvbiBhKG8scyl7aWYoIXJbb10pe2lmKCFlW29dKXt2YXIgbD0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighcyYmbClyZXR1cm4gbChvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBjPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK28rIiciKTt0aHJvdyBjLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLGN9dmFyIHU9cltvXT17ZXhwb3J0czp7fX07ZVtvXVswXS5jYWxsKHUuZXhwb3J0cyxmdW5jdGlvbih0KXtyZXR1cm4gYShlW29dWzFdW3RdfHx0KX0sdSx1LmV4cG9ydHMsdCxlLHIsbil9cmV0dXJuIHJbb10uZXhwb3J0c31mb3IodmFyIGk9ImZ1bmN0aW9uIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsbz0wO288bi5sZW5ndGg7bysrKWEobltvXSk7cmV0dXJuIGF9fSgpKHsxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NyYy9saWIiKSxhPXsiWCxYIGRpdiI6ImRpcmVjdGlvbjpsdHI7Zm9udC1mYW1pbHk6J09wZW4gU2FucycsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmO21hcmdpbjowO3BhZGRpbmc6MDsiLCJYIGlucHV0LFggYnV0dG9uIjoiZm9udC1mYW1pbHk6J09wZW4gU2FucycsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmOyIsIlggaW5wdXQ6Zm9jdXMsWCBidXR0b246Zm9jdXMiOiJvdXRsaW5lOm5vbmU7IiwiWCBhIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7IiwiWCBhOmhvdmVyIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7IiwiWCAuY3Jpc3AiOiJzaGFwZS1yZW5kZXJpbmc6Y3Jpc3BFZGdlczsiLCJYIC51c2VyLXNlbGVjdC1ub25lIjoiLXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTstby11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7IiwiWCBzdmciOiJvdmVyZmxvdzpoaWRkZW47IiwiWCBzdmcgYSI6ImZpbGw6IzQ0N2FkYjsiLCJYIHN2ZyBhOmhvdmVyIjoiZmlsbDojM2M2ZGM1OyIsIlggLm1haW4tc3ZnIjoicG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3BvaW50ZXItZXZlbnRzOm5vbmU7IiwiWCAubWFpbi1zdmcgLmRyYWdsYXllciI6InBvaW50ZXItZXZlbnRzOmFsbDsiLCJYIC5jdXJzb3ItZGVmYXVsdCI6ImN1cnNvcjpkZWZhdWx0OyIsIlggLmN1cnNvci1wb2ludGVyIjoiY3Vyc29yOnBvaW50ZXI7IiwiWCAuY3Vyc29yLWNyb3NzaGFpciI6ImN1cnNvcjpjcm9zc2hhaXI7IiwiWCAuY3Vyc29yLW1vdmUiOiJjdXJzb3I6bW92ZTsiLCJYIC5jdXJzb3ItY29sLXJlc2l6ZSI6ImN1cnNvcjpjb2wtcmVzaXplOyIsIlggLmN1cnNvci1yb3ctcmVzaXplIjoiY3Vyc29yOnJvdy1yZXNpemU7IiwiWCAuY3Vyc29yLW5zLXJlc2l6ZSI6ImN1cnNvcjpucy1yZXNpemU7IiwiWCAuY3Vyc29yLWV3LXJlc2l6ZSI6ImN1cnNvcjpldy1yZXNpemU7IiwiWCAuY3Vyc29yLXN3LXJlc2l6ZSI6ImN1cnNvcjpzdy1yZXNpemU7IiwiWCAuY3Vyc29yLXMtcmVzaXplIjoiY3Vyc29yOnMtcmVzaXplOyIsIlggLmN1cnNvci1zZS1yZXNpemUiOiJjdXJzb3I6c2UtcmVzaXplOyIsIlggLmN1cnNvci13LXJlc2l6ZSI6ImN1cnNvcjp3LXJlc2l6ZTsiLCJYIC5jdXJzb3ItZS1yZXNpemUiOiJjdXJzb3I6ZS1yZXNpemU7IiwiWCAuY3Vyc29yLW53LXJlc2l6ZSI6ImN1cnNvcjpudy1yZXNpemU7IiwiWCAuY3Vyc29yLW4tcmVzaXplIjoiY3Vyc29yOm4tcmVzaXplOyIsIlggLmN1cnNvci1uZS1yZXNpemUiOiJjdXJzb3I6bmUtcmVzaXplOyIsIlggLmN1cnNvci1ncmFiIjoiY3Vyc29yOi13ZWJraXQtZ3JhYjtjdXJzb3I6Z3JhYjsiLCJYIC5tb2RlYmFyIjoicG9zaXRpb246YWJzb2x1dGU7dG9wOjJweDtyaWdodDoycHg7IiwiWCAuZWFzZS1iZyI6Ii13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZSAwczstbW96LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2UgMHM7LW1zLXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2UgMHM7LW8tdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZSAwczt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlIDBzOyIsIlggLm1vZGViYXItLWhvdmVyPjpub3QoLndhdGVybWFyaykiOiJvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlIDBzOy1tb3otdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZSAwczstbXMtdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZSAwczstby10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlIDBzO3RyYW5zaXRpb246b3BhY2l0eSAwLjNzIGVhc2UgMHM7IiwiWDpob3ZlciAubW9kZWJhci0taG92ZXIgLm1vZGViYXItZ3JvdXAiOiJvcGFjaXR5OjE7IiwiWCAubW9kZWJhci1ncm91cCI6ImZsb2F0OmxlZnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmctbGVmdDo4cHg7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOm5vd3JhcDsiLCJYIC5tb2RlYmFyLWJ0biI6InBvc2l0aW9uOnJlbGF0aXZlO2ZvbnQtc2l6ZToxNnB4O3BhZGRpbmc6M3B4IDRweDtoZWlnaHQ6MjJweDtjdXJzb3I6cG9pbnRlcjtsaW5lLWhlaWdodDpub3JtYWw7Ym94LXNpemluZzpib3JkZXItYm94OyIsIlggLm1vZGViYXItYnRuIHN2ZyI6InBvc2l0aW9uOnJlbGF0aXZlO3RvcDoycHg7IiwiWCAubW9kZWJhci52ZXJ0aWNhbCI6ImRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC13cmFwOndyYXA7YWxpZ24tY29udGVudDpmbGV4LWVuZDttYXgtaGVpZ2h0OjEwMCU7IiwiWCAubW9kZWJhci52ZXJ0aWNhbCBzdmciOiJ0b3A6LTFweDsiLCJYIC5tb2RlYmFyLnZlcnRpY2FsIC5tb2RlYmFyLWdyb3VwIjoiZGlzcGxheTpibG9jaztmbG9hdDpub25lO3BhZGRpbmctbGVmdDowcHg7cGFkZGluZy1ib3R0b206OHB4OyIsIlggLm1vZGViYXIudmVydGljYWwgLm1vZGViYXItZ3JvdXAgLm1vZGViYXItYnRuIjoiZGlzcGxheTpibG9jazt0ZXh0LWFsaWduOmNlbnRlcjsiLCJYIFtkYXRhLXRpdGxlXTpiZWZvcmUsWCBbZGF0YS10aXRsZV06YWZ0ZXIiOiJwb3NpdGlvbjphYnNvbHV0ZTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLCAwLCAwKTstbW96LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLCAwLCAwKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApOy1vLXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLCAwLCAwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7ZGlzcGxheTpub25lO29wYWNpdHk6MDt6LWluZGV4OjEwMDE7cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MTEwJTtyaWdodDo1MCU7IiwiWCBbZGF0YS10aXRsZV06aG92ZXI6YmVmb3JlLFggW2RhdGEtdGl0bGVdOmhvdmVyOmFmdGVyIjoiZGlzcGxheTpibG9jaztvcGFjaXR5OjE7IiwiWCBbZGF0YS10aXRsZV06YmVmb3JlIjoiY29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjo2cHggc29saWQgdHJhbnNwYXJlbnQ7ei1pbmRleDoxMDAyO21hcmdpbi10b3A6LTEycHg7Ym9yZGVyLWJvdHRvbS1jb2xvcjojNjk3MzhhO21hcmdpbi1yaWdodDotNnB4OyIsIlggW2RhdGEtdGl0bGVdOmFmdGVyIjoiY29udGVudDphdHRyKGRhdGEtdGl0bGUpO2JhY2tncm91bmQ6IzY5NzM4YTtjb2xvcjp3aGl0ZTtwYWRkaW5nOjhweCAxMHB4O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjEycHg7d2hpdGUtc3BhY2U6bm93cmFwO21hcmdpbi1yaWdodDotMThweDtib3JkZXItcmFkaXVzOjJweDsiLCJYIC52ZXJ0aWNhbCBbZGF0YS10aXRsZV06YmVmb3JlLFggLnZlcnRpY2FsIFtkYXRhLXRpdGxlXTphZnRlciI6InRvcDowJTtyaWdodDoyMDAlOyIsIlggLnZlcnRpY2FsIFtkYXRhLXRpdGxlXTpiZWZvcmUiOiJib3JkZXI6NnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0LWNvbG9yOiM2OTczOGE7bWFyZ2luLXRvcDo4cHg7bWFyZ2luLXJpZ2h0Oi0zMHB4OyIsIlggLnNlbGVjdC1vdXRsaW5lIjoiZmlsbDpub25lO3N0cm9rZS13aWR0aDoxO3NoYXBlLXJlbmRlcmluZzpjcmlzcEVkZ2VzOyIsIlggLnNlbGVjdC1vdXRsaW5lLTEiOiJzdHJva2U6d2hpdGU7IiwiWCAuc2VsZWN0LW91dGxpbmUtMiI6InN0cm9rZTpibGFjaztzdHJva2UtZGFzaGFycmF5OjJweCAycHg7IixZOiJmb250LWZhbWlseTonT3BlbiBTYW5zJztwb3NpdGlvbjpmaXhlZDt0b3A6NTBweDtyaWdodDoyMHB4O3otaW5kZXg6MTAwMDA7Zm9udC1zaXplOjEwcHQ7bWF4LXdpZHRoOjE4MHB4OyIsIlkgcCI6Im1hcmdpbjowOyIsIlkgLm5vdGlmaWVyLW5vdGUiOiJtaW4td2lkdGg6MTgwcHg7bWF4LXdpZHRoOjI1MHB4O2JvcmRlcjoxcHggc29saWQgI2ZmZjt6LWluZGV4OjMwMDA7bWFyZ2luOjA7YmFja2dyb3VuZC1jb2xvcjojOGM5N2FmO2JhY2tncm91bmQtY29sb3I6cmdiYSgxNDAsMTUxLDE3NSwwLjkpO2NvbG9yOiNmZmY7cGFkZGluZzoxMHB4O292ZXJmbG93LXdyYXA6YnJlYWstd29yZDt3b3JkLXdyYXA6YnJlYWstd29yZDstbXMtaHlwaGVuczphdXRvOy13ZWJraXQtaHlwaGVuczphdXRvO2h5cGhlbnM6YXV0bzsiLCJZIC5ub3RpZmllci1jbG9zZSI6ImNvbG9yOiNmZmY7b3BhY2l0eTowLjg7ZmxvYXQ6cmlnaHQ7cGFkZGluZzowIDVweDtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOm5vbmU7Zm9udC1zaXplOjIwcHg7Zm9udC13ZWlnaHQ6Ym9sZDtsaW5lLWhlaWdodDoyMHB4OyIsIlkgLm5vdGlmaWVyLWNsb3NlOmhvdmVyIjoiY29sb3I6IzQ0NDt0ZXh0LWRlY29yYXRpb246bm9uZTtjdXJzb3I6cG9pbnRlcjsifTtmb3IodmFyIGkgaW4gYSl7dmFyIG89aS5yZXBsYWNlKC9eLC8sIiAsIikucmVwbGFjZSgvWC9nLCIuanMtcGxvdGx5LXBsb3QgLnBsb3RseSIpLnJlcGxhY2UoL1kvZywiLnBsb3RseS1ub3RpZmllciIpO24uYWRkU3R5bGVSdWxlKG8sYVtpXSl9fSx7Ii4uL3NyYy9saWIiOjcxN31dLDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFuc2Zvcm1zL2FnZ3JlZ2F0ZSIpfSx7Ii4uL3NyYy90cmFuc2Zvcm1zL2FnZ3JlZ2F0ZSI6MTI5N31dLDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvYmFyIil9LHsiLi4vc3JjL3RyYWNlcy9iYXIiOjg2NH1dLDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvYmFycG9sYXIiKX0seyIuLi9zcmMvdHJhY2VzL2JhcnBvbGFyIjo4Nzd9XSw1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2JveCIpfSx7Ii4uL3NyYy90cmFjZXMvYm94Ijo4ODd9XSw2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvY29tcG9uZW50cy9jYWxlbmRhcnMiKX0seyIuLi9zcmMvY29tcG9uZW50cy9jYWxlbmRhcnMiOjU5MH1dLDc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvY2FuZGxlc3RpY2siKX0seyIuLi9zcmMvdHJhY2VzL2NhbmRsZXN0aWNrIjo4OTZ9XSw4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2NhcnBldCIpfSx7Ii4uL3NyYy90cmFjZXMvY2FycGV0Ijo5MTV9XSw5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2Nob3JvcGxldGgiKX0seyIuLi9zcmMvdHJhY2VzL2Nob3JvcGxldGgiOjkyOX1dLDEwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2Nob3JvcGxldGhtYXBib3giKX0seyIuLi9zcmMvdHJhY2VzL2Nob3JvcGxldGhtYXBib3giOjkzNn1dLDExOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2NvbmUiKX0seyIuLi9zcmMvdHJhY2VzL2NvbmUiOjk0Mn1dLDEyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2NvbnRvdXIiKX0seyIuLi9zcmMvdHJhY2VzL2NvbnRvdXIiOjk1N31dLDEzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2NvbnRvdXJjYXJwZXQiKX0seyIuLi9zcmMvdHJhY2VzL2NvbnRvdXJjYXJwZXQiOjk2OH1dLDE0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvY29yZSIpfSx7Ii4uL3NyYy9jb3JlIjo2OTV9XSwxNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9kZW5zaXR5bWFwYm94Iil9LHsiLi4vc3JjL3RyYWNlcy9kZW5zaXR5bWFwYm94Ijo5NzZ9XSwxNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYW5zZm9ybXMvZmlsdGVyIil9LHsiLi4vc3JjL3RyYW5zZm9ybXMvZmlsdGVyIjoxMjk4fV0sMTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvZnVubmVsIil9LHsiLi4vc3JjL3RyYWNlcy9mdW5uZWwiOjk4Nn1dLDE4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2Z1bm5lbGFyZWEiKX0seyIuLi9zcmMvdHJhY2VzL2Z1bm5lbGFyZWEiOjk5NX1dLDE5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhbnNmb3Jtcy9ncm91cGJ5Iil9LHsiLi4vc3JjL3RyYW5zZm9ybXMvZ3JvdXBieSI6MTI5OX1dLDIwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2hlYXRtYXAiKX0seyIuLi9zcmMvdHJhY2VzL2hlYXRtYXAiOjEwMDh9XSwyMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9oZWF0bWFwZ2wiKX0seyIuLi9zcmMvdHJhY2VzL2hlYXRtYXBnbCI6MTAxN31dLDIyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2hpc3RvZ3JhbSIpfSx7Ii4uL3NyYy90cmFjZXMvaGlzdG9ncmFtIjoxMDI5fV0sMjM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvaGlzdG9ncmFtMmQiKX0seyIuLi9zcmMvdHJhY2VzL2hpc3RvZ3JhbTJkIjoxMDM1fV0sMjQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvaGlzdG9ncmFtMmRjb250b3VyIil9LHsiLi4vc3JjL3RyYWNlcy9oaXN0b2dyYW0yZGNvbnRvdXIiOjEwMzl9XSwyNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9pbWFnZSIpfSx7Ii4uL3NyYy90cmFjZXMvaW1hZ2UiOjEwNDZ9XSwyNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2NvcmUiKTtuLnJlZ2lzdGVyKFt0KCIuL2JhciIpLHQoIi4vYm94IiksdCgiLi9oZWF0bWFwIiksdCgiLi9oaXN0b2dyYW0iKSx0KCIuL2hpc3RvZ3JhbTJkIiksdCgiLi9oaXN0b2dyYW0yZGNvbnRvdXIiKSx0KCIuL2NvbnRvdXIiKSx0KCIuL3NjYXR0ZXJ0ZXJuYXJ5IiksdCgiLi92aW9saW4iKSx0KCIuL2Z1bm5lbCIpLHQoIi4vd2F0ZXJmYWxsIiksdCgiLi9pbWFnZSIpLHQoIi4vcGllIiksdCgiLi9zdW5idXJzdCIpLHQoIi4vdHJlZW1hcCIpLHQoIi4vZnVubmVsYXJlYSIpLHQoIi4vc2NhdHRlcjNkIiksdCgiLi9zdXJmYWNlIiksdCgiLi9pc29zdXJmYWNlIiksdCgiLi92b2x1bWUiKSx0KCIuL21lc2gzZCIpLHQoIi4vY29uZSIpLHQoIi4vc3RyZWFtdHViZSIpLHQoIi4vc2NhdHRlcmdlbyIpLHQoIi4vY2hvcm9wbGV0aCIpLHQoIi4vc2NhdHRlcmdsIiksdCgiLi9zcGxvbSIpLHQoIi4vcG9pbnRjbG91ZCIpLHQoIi4vaGVhdG1hcGdsIiksdCgiLi9wYXJjb29yZHMiKSx0KCIuL3BhcmNhdHMiKSx0KCIuL3NjYXR0ZXJtYXBib3giKSx0KCIuL2Nob3JvcGxldGhtYXBib3giKSx0KCIuL2RlbnNpdHltYXBib3giKSx0KCIuL3NhbmtleSIpLHQoIi4vaW5kaWNhdG9yIiksdCgiLi90YWJsZSIpLHQoIi4vY2FycGV0IiksdCgiLi9zY2F0dGVyY2FycGV0IiksdCgiLi9jb250b3VyY2FycGV0IiksdCgiLi9vaGxjIiksdCgiLi9jYW5kbGVzdGljayIpLHQoIi4vc2NhdHRlcnBvbGFyIiksdCgiLi9zY2F0dGVycG9sYXJnbCIpLHQoIi4vYmFycG9sYXIiKV0pLG4ucmVnaXN0ZXIoW3QoIi4vYWdncmVnYXRlIiksdCgiLi9maWx0ZXIiKSx0KCIuL2dyb3VwYnkiKSx0KCIuL3NvcnQiKV0pLG4ucmVnaXN0ZXIoW3QoIi4vY2FsZW5kYXJzIildKSxlLmV4cG9ydHM9bn0seyIuL2FnZ3JlZ2F0ZSI6MiwiLi9iYXIiOjMsIi4vYmFycG9sYXIiOjQsIi4vYm94Ijo1LCIuL2NhbGVuZGFycyI6NiwiLi9jYW5kbGVzdGljayI6NywiLi9jYXJwZXQiOjgsIi4vY2hvcm9wbGV0aCI6OSwiLi9jaG9yb3BsZXRobWFwYm94IjoxMCwiLi9jb25lIjoxMSwiLi9jb250b3VyIjoxMiwiLi9jb250b3VyY2FycGV0IjoxMywiLi9jb3JlIjoxNCwiLi9kZW5zaXR5bWFwYm94IjoxNSwiLi9maWx0ZXIiOjE2LCIuL2Z1bm5lbCI6MTcsIi4vZnVubmVsYXJlYSI6MTgsIi4vZ3JvdXBieSI6MTksIi4vaGVhdG1hcCI6MjAsIi4vaGVhdG1hcGdsIjoyMSwiLi9oaXN0b2dyYW0iOjIyLCIuL2hpc3RvZ3JhbTJkIjoyMywiLi9oaXN0b2dyYW0yZGNvbnRvdXIiOjI0LCIuL2ltYWdlIjoyNSwiLi9pbmRpY2F0b3IiOjI3LCIuL2lzb3N1cmZhY2UiOjI4LCIuL21lc2gzZCI6MjksIi4vb2hsYyI6MzAsIi4vcGFyY2F0cyI6MzEsIi4vcGFyY29vcmRzIjozMiwiLi9waWUiOjMzLCIuL3BvaW50Y2xvdWQiOjM0LCIuL3NhbmtleSI6MzUsIi4vc2NhdHRlcjNkIjozNiwiLi9zY2F0dGVyY2FycGV0IjozNywiLi9zY2F0dGVyZ2VvIjozOCwiLi9zY2F0dGVyZ2wiOjM5LCIuL3NjYXR0ZXJtYXBib3giOjQwLCIuL3NjYXR0ZXJwb2xhciI6NDEsIi4vc2NhdHRlcnBvbGFyZ2wiOjQyLCIuL3NjYXR0ZXJ0ZXJuYXJ5Ijo0MywiLi9zb3J0Ijo0NCwiLi9zcGxvbSI6NDUsIi4vc3RyZWFtdHViZSI6NDYsIi4vc3VuYnVyc3QiOjQ3LCIuL3N1cmZhY2UiOjQ4LCIuL3RhYmxlIjo0OSwiLi90cmVlbWFwIjo1MCwiLi92aW9saW4iOjUxLCIuL3ZvbHVtZSI6NTIsIi4vd2F0ZXJmYWxsIjo1M31dLDI3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2luZGljYXRvciIpfSx7Ii4uL3NyYy90cmFjZXMvaW5kaWNhdG9yIjoxMDU0fV0sMjg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvaXNvc3VyZmFjZSIpfSx7Ii4uL3NyYy90cmFjZXMvaXNvc3VyZmFjZSI6MTA2MH1dLDI5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL21lc2gzZCIpfSx7Ii4uL3NyYy90cmFjZXMvbWVzaDNkIjoxMDY1fV0sMzA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvb2hsYyIpfSx7Ii4uL3NyYy90cmFjZXMvb2hsYyI6MTA3MH1dLDMxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3BhcmNhdHMiKX0seyIuLi9zcmMvdHJhY2VzL3BhcmNhdHMiOjEwNzl9XSwzMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9wYXJjb29yZHMiKX0seyIuLi9zcmMvdHJhY2VzL3BhcmNvb3JkcyI6MTA4OX1dLDMzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3BpZSIpfSx7Ii4uL3NyYy90cmFjZXMvcGllIjoxMTAwfV0sMzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvcG9pbnRjbG91ZCIpfSx7Ii4uL3NyYy90cmFjZXMvcG9pbnRjbG91ZCI6MTEwOX1dLDM1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3NhbmtleSIpfSx7Ii4uL3NyYy90cmFjZXMvc2Fua2V5IjoxMTE1fV0sMzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvc2NhdHRlcjNkIil9LHsiLi4vc3JjL3RyYWNlcy9zY2F0dGVyM2QiOjExNTJ9XSwzNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9zY2F0dGVyY2FycGV0Iil9LHsiLi4vc3JjL3RyYWNlcy9zY2F0dGVyY2FycGV0IjoxMTU5fV0sMzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvc2NhdHRlcmdlbyIpfSx7Ii4uL3NyYy90cmFjZXMvc2NhdHRlcmdlbyI6MTE2N31dLDM5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3NjYXR0ZXJnbCIpfSx7Ii4uL3NyYy90cmFjZXMvc2NhdHRlcmdsIjoxMTgwfV0sNDA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvc2NhdHRlcm1hcGJveCIpfSx7Ii4uL3NyYy90cmFjZXMvc2NhdHRlcm1hcGJveCI6MTE5MH1dLDQxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3NjYXR0ZXJwb2xhciIpfSx7Ii4uL3NyYy90cmFjZXMvc2NhdHRlcnBvbGFyIjoxMTk4fV0sNDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvc2NhdHRlcnBvbGFyZ2wiKX0seyIuLi9zcmMvdHJhY2VzL3NjYXR0ZXJwb2xhcmdsIjoxMjA1fV0sNDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvc2NhdHRlcnRlcm5hcnkiKX0seyIuLi9zcmMvdHJhY2VzL3NjYXR0ZXJ0ZXJuYXJ5IjoxMjEzfV0sNDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFuc2Zvcm1zL3NvcnQiKX0seyIuLi9zcmMvdHJhbnNmb3Jtcy9zb3J0IjoxMzAxfV0sNDU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvc3Bsb20iKX0seyIuLi9zcmMvdHJhY2VzL3NwbG9tIjoxMjIyfV0sNDY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvc3RyZWFtdHViZSIpfSx7Ii4uL3NyYy90cmFjZXMvc3RyZWFtdHViZSI6MTIzMH1dLDQ3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3N1bmJ1cnN0Iil9LHsiLi4vc3JjL3RyYWNlcy9zdW5idXJzdCI6MTIzOH1dLDQ4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3N1cmZhY2UiKX0seyIuLi9zcmMvdHJhY2VzL3N1cmZhY2UiOjEyNDd9XSw0OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy90YWJsZSIpfSx7Ii4uL3NyYy90cmFjZXMvdGFibGUiOjEyNTV9XSw1MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy90cmVlbWFwIil9LHsiLi4vc3JjL3RyYWNlcy90cmVlbWFwIjoxMjY0fV0sNTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvdmlvbGluIil9LHsiLi4vc3JjL3RyYWNlcy92aW9saW4iOjEyNzZ9XSw1MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy92b2x1bWUiKX0seyIuLi9zcmMvdHJhY2VzL3ZvbHVtZSI6MTI4NH1dLDUzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3dhdGVyZmFsbCIpfSx7Ii4uL3NyYy90cmFjZXMvd2F0ZXJmYWxsIjoxMjkyfV0sNTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPSh0PXR8fHt9KS5leWV8fFswLDAsMV0scj10LmNlbnRlcnx8WzAsMCwwXSxzPXQudXB8fFswLDEsMF0sbD10LmRpc3RhbmNlTGltaXRzfHxbMCwxLzBdLGM9dC5tb2RlfHwidHVybnRhYmxlIix1PW4oKSxoPWEoKSxmPWkoKTtyZXR1cm4gdS5zZXREaXN0YW5jZUxpbWl0cyhsWzBdLGxbMV0pLHUubG9va0F0KDAsZSxyLHMpLGguc2V0RGlzdGFuY2VMaW1pdHMobFswXSxsWzFdKSxoLmxvb2tBdCgwLGUscixzKSxmLnNldERpc3RhbmNlTGltaXRzKGxbMF0sbFsxXSksZi5sb29rQXQoMCxlLHIscyksbmV3IG8oe3R1cm50YWJsZTp1LG9yYml0OmgsbWF0cml4OmZ9LGMpfTt2YXIgbj10KCJ0dXJudGFibGUtY2FtZXJhLWNvbnRyb2xsZXIiKSxhPXQoIm9yYml0LWNhbWVyYS1jb250cm9sbGVyIiksaT10KCJtYXRyaXgtY2FtZXJhLWNvbnRyb2xsZXIiKTtmdW5jdGlvbiBvKHQsZSl7dGhpcy5fY29udHJvbGxlck5hbWVzPU9iamVjdC5rZXlzKHQpLHRoaXMuX2NvbnRyb2xsZXJMaXN0PXRoaXMuX2NvbnRyb2xsZXJOYW1lcy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19KSx0aGlzLl9tb2RlPWUsdGhpcy5fYWN0aXZlPXRbZV0sdGhpcy5fYWN0aXZlfHwodGhpcy5fbW9kZT0idHVybnRhYmxlIix0aGlzLl9hY3RpdmU9dC50dXJudGFibGUpLHRoaXMubW9kZXM9dGhpcy5fY29udHJvbGxlck5hbWVzLHRoaXMuY29tcHV0ZWRNYXRyaXg9dGhpcy5fYWN0aXZlLmNvbXB1dGVkTWF0cml4LHRoaXMuY29tcHV0ZWRFeWU9dGhpcy5fYWN0aXZlLmNvbXB1dGVkRXllLHRoaXMuY29tcHV0ZWRVcD10aGlzLl9hY3RpdmUuY29tcHV0ZWRVcCx0aGlzLmNvbXB1dGVkQ2VudGVyPXRoaXMuX2FjdGl2ZS5jb21wdXRlZENlbnRlcix0aGlzLmNvbXB1dGVkUmFkaXVzPXRoaXMuX2FjdGl2ZS5jb21wdXRlZFJhZGl1c312YXIgcz1vLnByb3RvdHlwZTtbWyJmbHVzaCIsMV0sWyJpZGxlIiwxXSxbImxvb2tBdCIsNF0sWyJyb3RhdGUiLDRdLFsicGFuIiw0XSxbInRyYW5zbGF0ZSIsNF0sWyJzZXRNYXRyaXgiLDJdLFsic2V0RGlzdGFuY2VMaW1pdHMiLDJdLFsic2V0RGlzdGFuY2UiLDJdXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10WzBdLHI9W10sbj0wO248dFsxXTsrK24pci5wdXNoKCJhIituKTt2YXIgYT0idmFyIGNjPXRoaXMuX2NvbnRyb2xsZXJMaXN0O2Zvcih2YXIgaT0wO2k8Y2MubGVuZ3RoOysraSl7Y2NbaV0uIit0WzBdKyIoIityLmpvaW4oKSsiKX0iO3NbZV09RnVuY3Rpb24uYXBwbHkobnVsbCxyLmNvbmNhdChhKSl9KSxzLnJlY2FsY01hdHJpeD1mdW5jdGlvbih0KXt0aGlzLl9hY3RpdmUucmVjYWxjTWF0cml4KHQpfSxzLmdldERpc3RhbmNlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hY3RpdmUuZ2V0RGlzdGFuY2UodCl9LHMuZ2V0RGlzdGFuY2VMaW1pdHM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2FjdGl2ZS5nZXREaXN0YW5jZUxpbWl0cyh0KX0scy5sYXN0VD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hY3RpdmUubGFzdFQoKX0scy5zZXRNb2RlPWZ1bmN0aW9uKHQpe2lmKHQhPT10aGlzLl9tb2RlKXt2YXIgZT10aGlzLl9jb250cm9sbGVyTmFtZXMuaW5kZXhPZih0KTtpZighKGU8MCkpe3ZhciByPXRoaXMuX2FjdGl2ZSxuPXRoaXMuX2NvbnRyb2xsZXJMaXN0W2VdLGE9TWF0aC5tYXgoci5sYXN0VCgpLG4ubGFzdFQoKSk7ci5yZWNhbGNNYXRyaXgoYSksbi5zZXRNYXRyaXgoYSxyLmNvbXB1dGVkTWF0cml4KSx0aGlzLl9hY3RpdmU9bix0aGlzLl9tb2RlPXQsdGhpcy5jb21wdXRlZE1hdHJpeD10aGlzLl9hY3RpdmUuY29tcHV0ZWRNYXRyaXgsdGhpcy5jb21wdXRlZEV5ZT10aGlzLl9hY3RpdmUuY29tcHV0ZWRFeWUsdGhpcy5jb21wdXRlZFVwPXRoaXMuX2FjdGl2ZS5jb21wdXRlZFVwLHRoaXMuY29tcHV0ZWRDZW50ZXI9dGhpcy5fYWN0aXZlLmNvbXB1dGVkQ2VudGVyLHRoaXMuY29tcHV0ZWRSYWRpdXM9dGhpcy5fYWN0aXZlLmNvbXB1dGVkUmFkaXVzfX19LHMuZ2V0TW9kZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9tb2RlfX0seyJtYXRyaXgtY2FtZXJhLWNvbnRyb2xsZXIiOjQzNSwib3JiaXQtY2FtZXJhLWNvbnRyb2xsZXIiOjQ1OCwidHVybnRhYmxlLWNhbWVyYS1jb250cm9sbGVyIjo1NDF9XSw1NTpbZnVuY3Rpb24odCxlLHIpe3ZhciBuLGE7bj10aGlzLGE9ZnVuY3Rpb24odCxlLHIsbixhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaSh0KXtyZXR1cm4gdC50YXJnZXQuZGVwdGh9ZnVuY3Rpb24gbyh0LGUpe3JldHVybiB0LnNvdXJjZUxpbmtzLmxlbmd0aD90LmRlcHRoOmUtMX1mdW5jdGlvbiBzKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1hPWEmJmEuaGFzT3duUHJvcGVydHkoImRlZmF1bHQiKT9hLmRlZmF1bHQ6YTt2YXIgbD0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH07ZnVuY3Rpb24gYyh0LGUpe3JldHVybiBoKHQuc291cmNlLGUuc291cmNlKXx8dC5pbmRleC1lLmluZGV4fWZ1bmN0aW9uIHUodCxlKXtyZXR1cm4gaCh0LnRhcmdldCxlLnRhcmdldCl8fHQuaW5kZXgtZS5pbmRleH1mdW5jdGlvbiBoKHQsZSl7cmV0dXJuIHQucGFydE9mQ3ljbGU9PT1lLnBhcnRPZkN5Y2xlP3QueTAtZS55MDoidG9wIj09PXQuY2lyY3VsYXJMaW5rVHlwZXx8ImJvdHRvbSI9PT1lLmNpcmN1bGFyTGlua1R5cGU/LTE6MX1mdW5jdGlvbiBmKHQpe3JldHVybiB0LnZhbHVlfWZ1bmN0aW9uIHAodCl7cmV0dXJuKHQueTArdC55MSkvMn1mdW5jdGlvbiBkKHQpe3JldHVybiBwKHQuc291cmNlKX1mdW5jdGlvbiBnKHQpe3JldHVybiBwKHQudGFyZ2V0KX1mdW5jdGlvbiB2KHQpe3JldHVybiB0LmluZGV4fWZ1bmN0aW9uIG0odCl7cmV0dXJuIHQubm9kZXN9ZnVuY3Rpb24geSh0KXtyZXR1cm4gdC5saW5rc31mdW5jdGlvbiB4KHQsZSl7dmFyIHI9dC5nZXQoZSk7aWYoIXIpdGhyb3cgbmV3IEVycm9yKCJtaXNzaW5nOiAiK2UpO3JldHVybiByfWZ1bmN0aW9uIGIodCxlKXtyZXR1cm4gZSh0KX12YXIgXz0yNSx3PTEwLGs9LjM7ZnVuY3Rpb24gVCh0LGUpe3ZhciByPTAsbj0wO3QubGlua3MuZm9yRWFjaChmdW5jdGlvbihhKXthLmNpcmN1bGFyJiYoYS5zb3VyY2UuY2lyY3VsYXJMaW5rVHlwZXx8YS50YXJnZXQuY2lyY3VsYXJMaW5rVHlwZT9hLmNpcmN1bGFyTGlua1R5cGU9YS5zb3VyY2UuY2lyY3VsYXJMaW5rVHlwZT9hLnNvdXJjZS5jaXJjdWxhckxpbmtUeXBlOmEudGFyZ2V0LmNpcmN1bGFyTGlua1R5cGU6YS5jaXJjdWxhckxpbmtUeXBlPXI8bj8idG9wIjoiYm90dG9tIiwidG9wIj09YS5jaXJjdWxhckxpbmtUeXBlP3IrPTE6bis9MSx0Lm5vZGVzLmZvckVhY2goZnVuY3Rpb24odCl7Yih0LGUpIT1iKGEuc291cmNlLGUpJiZiKHQsZSkhPWIoYS50YXJnZXQsZSl8fCh0LmNpcmN1bGFyTGlua1R5cGU9YS5jaXJjdWxhckxpbmtUeXBlKX0pKX0pLHQubGlua3MuZm9yRWFjaChmdW5jdGlvbih0KXt0LmNpcmN1bGFyJiYodC5zb3VyY2UuY2lyY3VsYXJMaW5rVHlwZT09dC50YXJnZXQuY2lyY3VsYXJMaW5rVHlwZSYmKHQuY2lyY3VsYXJMaW5rVHlwZT10LnNvdXJjZS5jaXJjdWxhckxpbmtUeXBlKSxZKHQsZSkmJih0LmNpcmN1bGFyTGlua1R5cGU9dC5zb3VyY2UuY2lyY3VsYXJMaW5rVHlwZSkpfSl9ZnVuY3Rpb24gTSh0KXt2YXIgZT1NYXRoLmFicyh0LnkxLXQueTApLHI9TWF0aC5hYnModC50YXJnZXQueDAtdC5zb3VyY2UueDEpO3JldHVybiBNYXRoLmF0YW4oci9lKX1mdW5jdGlvbiBBKHQsZSl7dmFyIHI9MDt0LnNvdXJjZUxpbmtzLmZvckVhY2goZnVuY3Rpb24odCl7cj10LmNpcmN1bGFyJiYhWSh0LGUpP3IrMTpyfSk7dmFyIG49MDtyZXR1cm4gdC50YXJnZXRMaW5rcy5mb3JFYWNoKGZ1bmN0aW9uKHQpe249dC5jaXJjdWxhciYmIVkodCxlKT9uKzE6bn0pLHIrbn1mdW5jdGlvbiBTKHQpe3ZhciBlPXQuc291cmNlLnNvdXJjZUxpbmtzLHI9MDtlLmZvckVhY2goZnVuY3Rpb24odCl7cj10LmNpcmN1bGFyP3IrMTpyfSk7dmFyIG49dC50YXJnZXQudGFyZ2V0TGlua3MsYT0wO3JldHVybiBuLmZvckVhY2goZnVuY3Rpb24odCl7YT10LmNpcmN1bGFyP2ErMTphfSksIShyPjF8fGE+MSl9ZnVuY3Rpb24gRSh0LGUscil7cmV0dXJuIHQuc29ydChDKSx0LmZvckVhY2goZnVuY3Rpb24obixhKXt2YXIgaSxvLHM9MDtpZihZKG4scikmJlMobikpbi5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsQnVmZmVyPXMrbi53aWR0aC8yO2Vsc2V7Zm9yKHZhciBsPTA7bDxhO2wrKylpZihpPXRbYV0sbz10W2xdLCEoaS5zb3VyY2UuY29sdW1uPG8udGFyZ2V0LmNvbHVtbnx8aS50YXJnZXQuY29sdW1uPm8uc291cmNlLmNvbHVtbikpe3ZhciBjPXRbbF0uY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbEJ1ZmZlcit0W2xdLndpZHRoLzIrZTtzPWM+cz9jOnN9bi5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsQnVmZmVyPXMrbi53aWR0aC8yfX0pLHR9ZnVuY3Rpb24gTCh0LHIsYSxpKXt2YXIgbz1lLm1pbih0LmxpbmtzLGZ1bmN0aW9uKHQpe3JldHVybiB0LnNvdXJjZS55MH0pO3QubGlua3MuZm9yRWFjaChmdW5jdGlvbih0KXt0LmNpcmN1bGFyJiYodC5jaXJjdWxhclBhdGhEYXRhPXt9KX0pLEUodC5saW5rcy5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuInRvcCI9PXQuY2lyY3VsYXJMaW5rVHlwZX0pLHIsaSksRSh0LmxpbmtzLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4iYm90dG9tIj09dC5jaXJjdWxhckxpbmtUeXBlfSkscixpKSx0LmxpbmtzLmZvckVhY2goZnVuY3Rpb24oZSl7aWYoZS5jaXJjdWxhcil7aWYoZS5jaXJjdWxhclBhdGhEYXRhLmFyY1JhZGl1cz1lLndpZHRoK3csZS5jaXJjdWxhclBhdGhEYXRhLmxlZnROb2RlQnVmZmVyPTUsZS5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0Tm9kZUJ1ZmZlcj01LGUuY2lyY3VsYXJQYXRoRGF0YS5zb3VyY2VXaWR0aD1lLnNvdXJjZS54MS1lLnNvdXJjZS54MCxlLmNpcmN1bGFyUGF0aERhdGEuc291cmNlWD1lLnNvdXJjZS54MCtlLmNpcmN1bGFyUGF0aERhdGEuc291cmNlV2lkdGgsZS5jaXJjdWxhclBhdGhEYXRhLnRhcmdldFg9ZS50YXJnZXQueDAsZS5jaXJjdWxhclBhdGhEYXRhLnNvdXJjZVk9ZS55MCxlLmNpcmN1bGFyUGF0aERhdGEudGFyZ2V0WT1lLnkxLFkoZSxpKSYmUyhlKSllLmNpcmN1bGFyUGF0aERhdGEubGVmdFNtYWxsQXJjUmFkaXVzPXcrZS53aWR0aC8yLGUuY2lyY3VsYXJQYXRoRGF0YS5sZWZ0TGFyZ2VBcmNSYWRpdXM9dytlLndpZHRoLzIsZS5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0U21hbGxBcmNSYWRpdXM9dytlLndpZHRoLzIsZS5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0TGFyZ2VBcmNSYWRpdXM9dytlLndpZHRoLzIsImJvdHRvbSI9PWUuY2lyY3VsYXJMaW5rVHlwZT8oZS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsRnVsbEV4dGVudD1lLnNvdXJjZS55MStfK2UuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbEJ1ZmZlcixlLmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxMZWZ0SW5uZXJFeHRlbnQ9ZS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsRnVsbEV4dGVudC1lLmNpcmN1bGFyUGF0aERhdGEubGVmdExhcmdlQXJjUmFkaXVzLGUuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbFJpZ2h0SW5uZXJFeHRlbnQ9ZS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsRnVsbEV4dGVudC1lLmNpcmN1bGFyUGF0aERhdGEucmlnaHRMYXJnZUFyY1JhZGl1cyk6KGUuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbEZ1bGxFeHRlbnQ9ZS5zb3VyY2UueTAtXy1lLmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxCdWZmZXIsZS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsTGVmdElubmVyRXh0ZW50PWUuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbEZ1bGxFeHRlbnQrZS5jaXJjdWxhclBhdGhEYXRhLmxlZnRMYXJnZUFyY1JhZGl1cyxlLmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxSaWdodElubmVyRXh0ZW50PWUuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbEZ1bGxFeHRlbnQrZS5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0TGFyZ2VBcmNSYWRpdXMpO2Vsc2V7dmFyIHM9ZS5zb3VyY2UuY29sdW1uLGw9ZS5jaXJjdWxhckxpbmtUeXBlLGM9dC5saW5rcy5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQuc291cmNlLmNvbHVtbj09cyYmdC5jaXJjdWxhckxpbmtUeXBlPT1sfSk7ImJvdHRvbSI9PWUuY2lyY3VsYXJMaW5rVHlwZT9jLnNvcnQoTyk6Yy5zb3J0KFApO3ZhciB1PTA7Yy5mb3JFYWNoKGZ1bmN0aW9uKHQsbil7dC5jaXJjdWxhckxpbmtJRD09ZS5jaXJjdWxhckxpbmtJRCYmKGUuY2lyY3VsYXJQYXRoRGF0YS5sZWZ0U21hbGxBcmNSYWRpdXM9dytlLndpZHRoLzIrdSxlLmNpcmN1bGFyUGF0aERhdGEubGVmdExhcmdlQXJjUmFkaXVzPXcrZS53aWR0aC8yK24qcit1KSx1Kz10LndpZHRofSkscz1lLnRhcmdldC5jb2x1bW4sYz10LmxpbmtzLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC50YXJnZXQuY29sdW1uPT1zJiZ0LmNpcmN1bGFyTGlua1R5cGU9PWx9KSwiYm90dG9tIj09ZS5jaXJjdWxhckxpbmtUeXBlP2Muc29ydChJKTpjLnNvcnQoeiksdT0wLGMuZm9yRWFjaChmdW5jdGlvbih0LG4pe3QuY2lyY3VsYXJMaW5rSUQ9PWUuY2lyY3VsYXJMaW5rSUQmJihlLmNpcmN1bGFyUGF0aERhdGEucmlnaHRTbWFsbEFyY1JhZGl1cz13K2Uud2lkdGgvMit1LGUuY2lyY3VsYXJQYXRoRGF0YS5yaWdodExhcmdlQXJjUmFkaXVzPXcrZS53aWR0aC8yK24qcit1KSx1Kz10LndpZHRofSksImJvdHRvbSI9PWUuY2lyY3VsYXJMaW5rVHlwZT8oZS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsRnVsbEV4dGVudD1NYXRoLm1heChhLGUuc291cmNlLnkxLGUudGFyZ2V0LnkxKStfK2UuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbEJ1ZmZlcixlLmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxMZWZ0SW5uZXJFeHRlbnQ9ZS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsRnVsbEV4dGVudC1lLmNpcmN1bGFyUGF0aERhdGEubGVmdExhcmdlQXJjUmFkaXVzLGUuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbFJpZ2h0SW5uZXJFeHRlbnQ9ZS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsRnVsbEV4dGVudC1lLmNpcmN1bGFyUGF0aERhdGEucmlnaHRMYXJnZUFyY1JhZGl1cyk6KGUuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbEZ1bGxFeHRlbnQ9by1fLWUuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbEJ1ZmZlcixlLmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxMZWZ0SW5uZXJFeHRlbnQ9ZS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsRnVsbEV4dGVudCtlLmNpcmN1bGFyUGF0aERhdGEubGVmdExhcmdlQXJjUmFkaXVzLGUuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbFJpZ2h0SW5uZXJFeHRlbnQ9ZS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsRnVsbEV4dGVudCtlLmNpcmN1bGFyUGF0aERhdGEucmlnaHRMYXJnZUFyY1JhZGl1cyl9ZS5jaXJjdWxhclBhdGhEYXRhLmxlZnRJbm5lckV4dGVudD1lLmNpcmN1bGFyUGF0aERhdGEuc291cmNlWCtlLmNpcmN1bGFyUGF0aERhdGEubGVmdE5vZGVCdWZmZXIsZS5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0SW5uZXJFeHRlbnQ9ZS5jaXJjdWxhclBhdGhEYXRhLnRhcmdldFgtZS5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0Tm9kZUJ1ZmZlcixlLmNpcmN1bGFyUGF0aERhdGEubGVmdEZ1bGxFeHRlbnQ9ZS5jaXJjdWxhclBhdGhEYXRhLnNvdXJjZVgrZS5jaXJjdWxhclBhdGhEYXRhLmxlZnRMYXJnZUFyY1JhZGl1cytlLmNpcmN1bGFyUGF0aERhdGEubGVmdE5vZGVCdWZmZXIsZS5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0RnVsbEV4dGVudD1lLmNpcmN1bGFyUGF0aERhdGEudGFyZ2V0WC1lLmNpcmN1bGFyUGF0aERhdGEucmlnaHRMYXJnZUFyY1JhZGl1cy1lLmNpcmN1bGFyUGF0aERhdGEucmlnaHROb2RlQnVmZmVyfWlmKGUuY2lyY3VsYXIpZS5wYXRoPWZ1bmN0aW9uKHQpe3ZhciBlPSIiO2U9InRvcCI9PXQuY2lyY3VsYXJMaW5rVHlwZT8iTSIrdC5jaXJjdWxhclBhdGhEYXRhLnNvdXJjZVgrIiAiK3QuY2lyY3VsYXJQYXRoRGF0YS5zb3VyY2VZKyIgTCIrdC5jaXJjdWxhclBhdGhEYXRhLmxlZnRJbm5lckV4dGVudCsiICIrdC5jaXJjdWxhclBhdGhEYXRhLnNvdXJjZVkrIiBBIit0LmNpcmN1bGFyUGF0aERhdGEubGVmdExhcmdlQXJjUmFkaXVzKyIgIit0LmNpcmN1bGFyUGF0aERhdGEubGVmdFNtYWxsQXJjUmFkaXVzKyIgMCAwIDAgIit0LmNpcmN1bGFyUGF0aERhdGEubGVmdEZ1bGxFeHRlbnQrIiAiKyh0LmNpcmN1bGFyUGF0aERhdGEuc291cmNlWS10LmNpcmN1bGFyUGF0aERhdGEubGVmdFNtYWxsQXJjUmFkaXVzKSsiIEwiK3QuY2lyY3VsYXJQYXRoRGF0YS5sZWZ0RnVsbEV4dGVudCsiICIrdC5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsTGVmdElubmVyRXh0ZW50KyIgQSIrdC5jaXJjdWxhclBhdGhEYXRhLmxlZnRMYXJnZUFyY1JhZGl1cysiICIrdC5jaXJjdWxhclBhdGhEYXRhLmxlZnRMYXJnZUFyY1JhZGl1cysiIDAgMCAwICIrdC5jaXJjdWxhclBhdGhEYXRhLmxlZnRJbm5lckV4dGVudCsiICIrdC5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsRnVsbEV4dGVudCsiIEwiK3QuY2lyY3VsYXJQYXRoRGF0YS5yaWdodElubmVyRXh0ZW50KyIgIit0LmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxGdWxsRXh0ZW50KyIgQSIrdC5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0TGFyZ2VBcmNSYWRpdXMrIiAiK3QuY2lyY3VsYXJQYXRoRGF0YS5yaWdodExhcmdlQXJjUmFkaXVzKyIgMCAwIDAgIit0LmNpcmN1bGFyUGF0aERhdGEucmlnaHRGdWxsRXh0ZW50KyIgIit0LmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxSaWdodElubmVyRXh0ZW50KyIgTCIrdC5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0RnVsbEV4dGVudCsiICIrKHQuY2lyY3VsYXJQYXRoRGF0YS50YXJnZXRZLXQuY2lyY3VsYXJQYXRoRGF0YS5yaWdodFNtYWxsQXJjUmFkaXVzKSsiIEEiK3QuY2lyY3VsYXJQYXRoRGF0YS5yaWdodExhcmdlQXJjUmFkaXVzKyIgIit0LmNpcmN1bGFyUGF0aERhdGEucmlnaHRTbWFsbEFyY1JhZGl1cysiIDAgMCAwICIrdC5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0SW5uZXJFeHRlbnQrIiAiK3QuY2lyY3VsYXJQYXRoRGF0YS50YXJnZXRZKyIgTCIrdC5jaXJjdWxhclBhdGhEYXRhLnRhcmdldFgrIiAiK3QuY2lyY3VsYXJQYXRoRGF0YS50YXJnZXRZOiJNIit0LmNpcmN1bGFyUGF0aERhdGEuc291cmNlWCsiICIrdC5jaXJjdWxhclBhdGhEYXRhLnNvdXJjZVkrIiBMIit0LmNpcmN1bGFyUGF0aERhdGEubGVmdElubmVyRXh0ZW50KyIgIit0LmNpcmN1bGFyUGF0aERhdGEuc291cmNlWSsiIEEiK3QuY2lyY3VsYXJQYXRoRGF0YS5sZWZ0TGFyZ2VBcmNSYWRpdXMrIiAiK3QuY2lyY3VsYXJQYXRoRGF0YS5sZWZ0U21hbGxBcmNSYWRpdXMrIiAwIDAgMSAiK3QuY2lyY3VsYXJQYXRoRGF0YS5sZWZ0RnVsbEV4dGVudCsiICIrKHQuY2lyY3VsYXJQYXRoRGF0YS5zb3VyY2VZK3QuY2lyY3VsYXJQYXRoRGF0YS5sZWZ0U21hbGxBcmNSYWRpdXMpKyIgTCIrdC5jaXJjdWxhclBhdGhEYXRhLmxlZnRGdWxsRXh0ZW50KyIgIit0LmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxMZWZ0SW5uZXJFeHRlbnQrIiBBIit0LmNpcmN1bGFyUGF0aERhdGEubGVmdExhcmdlQXJjUmFkaXVzKyIgIit0LmNpcmN1bGFyUGF0aERhdGEubGVmdExhcmdlQXJjUmFkaXVzKyIgMCAwIDEgIit0LmNpcmN1bGFyUGF0aERhdGEubGVmdElubmVyRXh0ZW50KyIgIit0LmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxGdWxsRXh0ZW50KyIgTCIrdC5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0SW5uZXJFeHRlbnQrIiAiK3QuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbEZ1bGxFeHRlbnQrIiBBIit0LmNpcmN1bGFyUGF0aERhdGEucmlnaHRMYXJnZUFyY1JhZGl1cysiICIrdC5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0TGFyZ2VBcmNSYWRpdXMrIiAwIDAgMSAiK3QuY2lyY3VsYXJQYXRoRGF0YS5yaWdodEZ1bGxFeHRlbnQrIiAiK3QuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbFJpZ2h0SW5uZXJFeHRlbnQrIiBMIit0LmNpcmN1bGFyUGF0aERhdGEucmlnaHRGdWxsRXh0ZW50KyIgIisodC5jaXJjdWxhclBhdGhEYXRhLnRhcmdldFkrdC5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0U21hbGxBcmNSYWRpdXMpKyIgQSIrdC5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0TGFyZ2VBcmNSYWRpdXMrIiAiK3QuY2lyY3VsYXJQYXRoRGF0YS5yaWdodFNtYWxsQXJjUmFkaXVzKyIgMCAwIDEgIit0LmNpcmN1bGFyUGF0aERhdGEucmlnaHRJbm5lckV4dGVudCsiICIrdC5jaXJjdWxhclBhdGhEYXRhLnRhcmdldFkrIiBMIit0LmNpcmN1bGFyUGF0aERhdGEudGFyZ2V0WCsiICIrdC5jaXJjdWxhclBhdGhEYXRhLnRhcmdldFk7cmV0dXJuIGV9KGUpO2Vsc2V7dmFyIGg9bi5saW5rSG9yaXpvbnRhbCgpLnNvdXJjZShmdW5jdGlvbih0KXtyZXR1cm5bdC5zb3VyY2UueDArKHQuc291cmNlLngxLXQuc291cmNlLngwKSx0LnkwXX0pLnRhcmdldChmdW5jdGlvbih0KXtyZXR1cm5bdC50YXJnZXQueDAsdC55MV19KTtlLnBhdGg9aChlKX19KX1mdW5jdGlvbiBDKHQsZSl7cmV0dXJuIEQodCk9PUQoZSk/ImJvdHRvbSI9PXQuY2lyY3VsYXJMaW5rVHlwZT9PKHQsZSk6UCh0LGUpOkQoZSktRCh0KX1mdW5jdGlvbiBQKHQsZSl7cmV0dXJuIHQueTAtZS55MH1mdW5jdGlvbiBPKHQsZSl7cmV0dXJuIGUueTAtdC55MH1mdW5jdGlvbiB6KHQsZSl7cmV0dXJuIHQueTEtZS55MX1mdW5jdGlvbiBJKHQsZSl7cmV0dXJuIGUueTEtdC55MX1mdW5jdGlvbiBEKHQpe3JldHVybiB0LnRhcmdldC5jb2x1bW4tdC5zb3VyY2UuY29sdW1ufWZ1bmN0aW9uIFIodCl7cmV0dXJuIHQudGFyZ2V0LngwLXQuc291cmNlLngxfWZ1bmN0aW9uIEYodCxlKXt2YXIgcj1NKHQpLG49UihlKS9NYXRoLnRhbihyKTtyZXR1cm4idXAiPT1HKHQpP3QueTErbjp0LnkxLW59ZnVuY3Rpb24gQih0LGUpe3ZhciByPU0odCksbj1SKGUpL01hdGgudGFuKHIpO3JldHVybiJ1cCI9PUcodCk/dC55MS1uOnQueTErbn1mdW5jdGlvbiBOKHQsZSxyLG4pe3QubGlua3MuZm9yRWFjaChmdW5jdGlvbihhKXtpZighYS5jaXJjdWxhciYmYS50YXJnZXQuY29sdW1uLWEuc291cmNlLmNvbHVtbj4xKXt2YXIgaT1hLnNvdXJjZS5jb2x1bW4rMSxvPWEudGFyZ2V0LmNvbHVtbi0xLHM9MSxsPW8taSsxO2ZvcihzPTE7aTw9bztpKysscysrKXQubm9kZXMuZm9yRWFjaChmdW5jdGlvbihvKXtpZihvLmNvbHVtbj09aSl7dmFyIGMsdT1zLyhsKzEpLGg9TWF0aC5wb3coMS11LDMpLGY9Myp1Kk1hdGgucG93KDEtdSwyKSxwPTMqTWF0aC5wb3codSwyKSooMS11KSxkPU1hdGgucG93KHUsMyksZz1oKmEueTArZiphLnkwK3AqYS55MStkKmEueTEsdj1nLWEud2lkdGgvMixtPWcrYS53aWR0aC8yO3Y+by55MCYmdjxvLnkxPyhjPW8ueTEtdisxMCxjPSJib3R0b20iPT1vLmNpcmN1bGFyTGlua1R5cGU/YzotYyxvPVYobyxjLGUsciksdC5ub2Rlcy5mb3JFYWNoKGZ1bmN0aW9uKHQpe2IodCxuKSE9YihvLG4pJiZ0LmNvbHVtbj09by5jb2x1bW4mJmoobyx0KSYmVih0LGMsZSxyKX0pKTptPm8ueTAmJm08by55MT8oYz1tLW8ueTArMTAsbz1WKG8sYyxlLHIpLHQubm9kZXMuZm9yRWFjaChmdW5jdGlvbih0KXtiKHQsbikhPWIobyxuKSYmdC5jb2x1bW49PW8uY29sdW1uJiZ0LnkwPG8ueTEmJnQueTE+by55MSYmVih0LGMsZSxyKX0pKTp2PG8ueTAmJm0+by55MSYmKGM9bS1vLnkwKzEwLG89VihvLGMsZSxyKSx0Lm5vZGVzLmZvckVhY2goZnVuY3Rpb24odCl7Yih0LG4pIT1iKG8sbikmJnQuY29sdW1uPT1vLmNvbHVtbiYmdC55MDxvLnkxJiZ0LnkxPm8ueTEmJlYodCxjLGUscil9KSl9fSl9fSl9ZnVuY3Rpb24gaih0LGUpe3JldHVybiB0LnkwPmUueTAmJnQueTA8ZS55MXx8KHQueTE+ZS55MCYmdC55MTxlLnkxfHx0LnkwPGUueTAmJnQueTE+ZS55MSl9ZnVuY3Rpb24gVih0LGUscixuKXtyZXR1cm4gdC55MCtlPj1yJiZ0LnkxK2U8PW4mJih0LnkwPXQueTArZSx0LnkxPXQueTErZSx0LnRhcmdldExpbmtzLmZvckVhY2goZnVuY3Rpb24odCl7dC55MT10LnkxK2V9KSx0LnNvdXJjZUxpbmtzLmZvckVhY2goZnVuY3Rpb24odCl7dC55MD10LnkwK2V9KSksdH1mdW5jdGlvbiBVKHQsZSxyLG4pe3Qubm9kZXMuZm9yRWFjaChmdW5jdGlvbihhKXtuJiZhLnkrKGEueTEtYS55MCk+ZSYmKGEueT1hLnktKGEueSsoYS55MS1hLnkwKS1lKSk7dmFyIGk9dC5saW5rcy5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIGIodC5zb3VyY2Uscik9PWIoYSxyKX0pLG89aS5sZW5ndGg7bz4xJiZpLnNvcnQoZnVuY3Rpb24odCxlKXtpZighdC5jaXJjdWxhciYmIWUuY2lyY3VsYXIpe2lmKHQudGFyZ2V0LmNvbHVtbj09ZS50YXJnZXQuY29sdW1uKXJldHVybiB0LnkxLWUueTE7aWYoIUgodCxlKSlyZXR1cm4gdC55MS1lLnkxO2lmKHQudGFyZ2V0LmNvbHVtbj5lLnRhcmdldC5jb2x1bW4pe3ZhciByPUIoZSx0KTtyZXR1cm4gdC55MS1yfWlmKGUudGFyZ2V0LmNvbHVtbj50LnRhcmdldC5jb2x1bW4pcmV0dXJuIEIodCxlKS1lLnkxfXJldHVybiB0LmNpcmN1bGFyJiYhZS5jaXJjdWxhcj8idG9wIj09dC5jaXJjdWxhckxpbmtUeXBlPy0xOjE6ZS5jaXJjdWxhciYmIXQuY2lyY3VsYXI/InRvcCI9PWUuY2lyY3VsYXJMaW5rVHlwZT8xOi0xOnQuY2lyY3VsYXImJmUuY2lyY3VsYXI/dC5jaXJjdWxhckxpbmtUeXBlPT09ZS5jaXJjdWxhckxpbmtUeXBlJiYidG9wIj09dC5jaXJjdWxhckxpbmtUeXBlP3QudGFyZ2V0LmNvbHVtbj09PWUudGFyZ2V0LmNvbHVtbj90LnRhcmdldC55MS1lLnRhcmdldC55MTplLnRhcmdldC5jb2x1bW4tdC50YXJnZXQuY29sdW1uOnQuY2lyY3VsYXJMaW5rVHlwZT09PWUuY2lyY3VsYXJMaW5rVHlwZSYmImJvdHRvbSI9PXQuY2lyY3VsYXJMaW5rVHlwZT90LnRhcmdldC5jb2x1bW49PT1lLnRhcmdldC5jb2x1bW4/ZS50YXJnZXQueTEtdC50YXJnZXQueTE6dC50YXJnZXQuY29sdW1uLWUudGFyZ2V0LmNvbHVtbjoidG9wIj09dC5jaXJjdWxhckxpbmtUeXBlPy0xOjE6dm9pZCAwfSk7dmFyIHM9YS55MDtpLmZvckVhY2goZnVuY3Rpb24odCl7dC55MD1zK3Qud2lkdGgvMixzKz10LndpZHRofSksaS5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7aWYoImJvdHRvbSI9PXQuY2lyY3VsYXJMaW5rVHlwZSl7Zm9yKHZhciByPWUrMSxuPTA7cjxvO3IrKyluKz1pW3JdLndpZHRoO3QueTA9YS55MS1uLXQud2lkdGgvMn19KX0pfWZ1bmN0aW9uIHEodCxlLHIpe3Qubm9kZXMuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgbj10LmxpbmtzLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gYih0LnRhcmdldCxyKT09YihlLHIpfSksYT1uLmxlbmd0aDthPjEmJm4uc29ydChmdW5jdGlvbih0LGUpe2lmKCF0LmNpcmN1bGFyJiYhZS5jaXJjdWxhcil7aWYodC5zb3VyY2UuY29sdW1uPT1lLnNvdXJjZS5jb2x1bW4pcmV0dXJuIHQueTAtZS55MDtpZighSCh0LGUpKXJldHVybiB0LnkwLWUueTA7aWYoZS5zb3VyY2UuY29sdW1uPHQuc291cmNlLmNvbHVtbil7dmFyIHI9RihlLHQpO3JldHVybiB0LnkwLXJ9aWYodC5zb3VyY2UuY29sdW1uPGUuc291cmNlLmNvbHVtbilyZXR1cm4gRih0LGUpLWUueTB9cmV0dXJuIHQuY2lyY3VsYXImJiFlLmNpcmN1bGFyPyJ0b3AiPT10LmNpcmN1bGFyTGlua1R5cGU/LTE6MTplLmNpcmN1bGFyJiYhdC5jaXJjdWxhcj8idG9wIj09ZS5jaXJjdWxhckxpbmtUeXBlPzE6LTE6dC5jaXJjdWxhciYmZS5jaXJjdWxhcj90LmNpcmN1bGFyTGlua1R5cGU9PT1lLmNpcmN1bGFyTGlua1R5cGUmJiJ0b3AiPT10LmNpcmN1bGFyTGlua1R5cGU/dC5zb3VyY2UuY29sdW1uPT09ZS5zb3VyY2UuY29sdW1uP3Quc291cmNlLnkxLWUuc291cmNlLnkxOnQuc291cmNlLmNvbHVtbi1lLnNvdXJjZS5jb2x1bW46dC5jaXJjdWxhckxpbmtUeXBlPT09ZS5jaXJjdWxhckxpbmtUeXBlJiYiYm90dG9tIj09dC5jaXJjdWxhckxpbmtUeXBlP3Quc291cmNlLmNvbHVtbj09PWUuc291cmNlLmNvbHVtbj90LnNvdXJjZS55MS1lLnNvdXJjZS55MTplLnNvdXJjZS5jb2x1bW4tdC5zb3VyY2UuY29sdW1uOiJ0b3AiPT10LmNpcmN1bGFyTGlua1R5cGU/LTE6MTp2b2lkIDB9KTt2YXIgaT1lLnkwO24uZm9yRWFjaChmdW5jdGlvbih0KXt0LnkxPWkrdC53aWR0aC8yLGkrPXQud2lkdGh9KSxuLmZvckVhY2goZnVuY3Rpb24odCxyKXtpZigiYm90dG9tIj09dC5jaXJjdWxhckxpbmtUeXBlKXtmb3IodmFyIGk9cisxLG89MDtpPGE7aSsrKW8rPW5baV0ud2lkdGg7dC55MT1lLnkxLW8tdC53aWR0aC8yfX0pfSl9ZnVuY3Rpb24gSCh0LGUpe3JldHVybiBHKHQpPT1HKGUpfWZ1bmN0aW9uIEcodCl7cmV0dXJuIHQueTAtdC55MT4wPyJ1cCI6ImRvd24ifWZ1bmN0aW9uIFkodCxlKXtyZXR1cm4gYih0LnNvdXJjZSxlKT09Yih0LnRhcmdldCxlKX10LnNhbmtleUNpcmN1bGFyPWZ1bmN0aW9uKCl7dmFyIHQsbixpPTAsYj0wLE09MSxTPTEsRT0yNCxDPXYsUD1vLE89bSx6PXksST0zMixEPTIsUj1udWxsO2Z1bmN0aW9uIEYoKXt2YXIgbz17bm9kZXM6Ty5hcHBseShudWxsLGFyZ3VtZW50cyksbGlua3M6ei5hcHBseShudWxsLGFyZ3VtZW50cyl9OyFmdW5jdGlvbih0KXt0Lm5vZGVzLmZvckVhY2goZnVuY3Rpb24odCxlKXt0LmluZGV4PWUsdC5zb3VyY2VMaW5rcz1bXSx0LnRhcmdldExpbmtzPVtdfSk7dmFyIGU9ci5tYXAodC5ub2RlcyxDKTt0LmxpbmtzLmZvckVhY2goZnVuY3Rpb24odCxyKXt0LmluZGV4PXI7dmFyIG49dC5zb3VyY2UsYT10LnRhcmdldDsib2JqZWN0IiE9PSgidW5kZWZpbmVkIj09dHlwZW9mIG4/InVuZGVmaW5lZCI6bChuKSkmJihuPXQuc291cmNlPXgoZSxuKSksIm9iamVjdCIhPT0oInVuZGVmaW5lZCI9PXR5cGVvZiBhPyJ1bmRlZmluZWQiOmwoYSkpJiYoYT10LnRhcmdldD14KGUsYSkpLG4uc291cmNlTGlua3MucHVzaCh0KSxhLnRhcmdldExpbmtzLnB1c2godCl9KX0obyksZnVuY3Rpb24odCxlLHIpe3ZhciBuPTA7aWYobnVsbD09PXIpe2Zvcih2YXIgaT1bXSxvPTA7bzx0LmxpbmtzLmxlbmd0aDtvKyspe3ZhciBzPXQubGlua3Nbb10sbD1zLnNvdXJjZS5pbmRleCxjPXMudGFyZ2V0LmluZGV4O2lbbF18fChpW2xdPVtdKSxpW2NdfHwoaVtjXT1bXSksLTE9PT1pW2xdLmluZGV4T2YoYykmJmlbbF0ucHVzaChjKX12YXIgdT1hKGkpO3Uuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiB0Lmxlbmd0aC1lLmxlbmd0aH0pO3ZhciBoPXt9O2ZvcihvPTA7bzx1Lmxlbmd0aDtvKyspe3ZhciBmPXVbb10scD1mLnNsaWNlKC0yKTtoW3BbMF1dfHwoaFtwWzBdXT17fSksaFtwWzBdXVtwWzFdXT0hMH10LmxpbmtzLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU9dC50YXJnZXQuaW5kZXgscj10LnNvdXJjZS5pbmRleDtlPT09cnx8aFtyXSYmaFtyXVtlXT8odC5jaXJjdWxhcj0hMCx0LmNpcmN1bGFyTGlua0lEPW4sbis9MSk6dC5jaXJjdWxhcj0hMX0pfWVsc2UgdC5saW5rcy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3Quc291cmNlW3JdPHQudGFyZ2V0W3JdP3QuY2lyY3VsYXI9ITE6KHQuY2lyY3VsYXI9ITAsdC5jaXJjdWxhckxpbmtJRD1uLG4rPTEpfSl9KG8sMCxSKSxmdW5jdGlvbih0KXt0Lm5vZGVzLmZvckVhY2goZnVuY3Rpb24odCl7dC5wYXJ0T2ZDeWNsZT0hMSx0LnZhbHVlPU1hdGgubWF4KGUuc3VtKHQuc291cmNlTGlua3MsZiksZS5zdW0odC50YXJnZXRMaW5rcyxmKSksdC5zb3VyY2VMaW5rcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UuY2lyY3VsYXImJih0LnBhcnRPZkN5Y2xlPSEwLHQuY2lyY3VsYXJMaW5rVHlwZT1lLmNpcmN1bGFyTGlua1R5cGUpfSksdC50YXJnZXRMaW5rcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UuY2lyY3VsYXImJih0LnBhcnRPZkN5Y2xlPSEwLHQuY2lyY3VsYXJMaW5rVHlwZT1lLmNpcmN1bGFyTGlua1R5cGUpfSl9KX0obyksZnVuY3Rpb24odCl7dmFyIGUscixuO2ZvcihlPXQubm9kZXMscj1bXSxuPTA7ZS5sZW5ndGg7KytuLGU9cixyPVtdKWUuZm9yRWFjaChmdW5jdGlvbih0KXt0LmRlcHRoPW4sdC5zb3VyY2VMaW5rcy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3IuaW5kZXhPZih0LnRhcmdldCk8MCYmIXQuY2lyY3VsYXImJnIucHVzaCh0LnRhcmdldCl9KX0pO2ZvcihlPXQubm9kZXMscj1bXSxuPTA7ZS5sZW5ndGg7KytuLGU9cixyPVtdKWUuZm9yRWFjaChmdW5jdGlvbih0KXt0LmhlaWdodD1uLHQudGFyZ2V0TGlua3MuZm9yRWFjaChmdW5jdGlvbih0KXtyLmluZGV4T2YodC5zb3VyY2UpPDAmJiF0LmNpcmN1bGFyJiZyLnB1c2godC5zb3VyY2UpfSl9KTt0Lm5vZGVzLmZvckVhY2goZnVuY3Rpb24odCl7dC5jb2x1bW49TWF0aC5mbG9vcihQLmNhbGwobnVsbCx0LG4pKX0pfShvKSxUKG8sQyksZnVuY3Rpb24oYSxvLHMpe3ZhciBsPXIubmVzdCgpLmtleShmdW5jdGlvbih0KXtyZXR1cm4gdC5jb2x1bW59KS5zb3J0S2V5cyhlLmFzY2VuZGluZykuZW50cmllcyhhLm5vZGVzKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQudmFsdWVzfSk7KGZ1bmN0aW9uKHIpe2lmKG4pe3ZhciBvPTEvMDtsLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU9UypuLyh0Lmxlbmd0aCsxKTtvPWU8bz9lOm99KSx0PW99dmFyIHM9ZS5taW4obCxmdW5jdGlvbihyKXtyZXR1cm4oUy1iLShyLmxlbmd0aC0xKSp0KS9lLnN1bShyLGYpfSk7cyo9ayxhLmxpbmtzLmZvckVhY2goZnVuY3Rpb24odCl7dC53aWR0aD10LnZhbHVlKnN9KTt2YXIgYz1mdW5jdGlvbih0KXt2YXIgcj0wLG49MCxhPTAsaT0wLG89ZS5tYXgodC5ub2RlcyxmdW5jdGlvbih0KXtyZXR1cm4gdC5jb2x1bW59KTtyZXR1cm4gdC5saW5rcy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuY2lyY3VsYXImJigidG9wIj09dC5jaXJjdWxhckxpbmtUeXBlP3IrPXQud2lkdGg6bis9dC53aWR0aCwwPT10LnRhcmdldC5jb2x1bW4mJihpKz10LndpZHRoKSx0LnNvdXJjZS5jb2x1bW49PW8mJihhKz10LndpZHRoKSl9KSx7dG9wOnI9cj4wP3IrXyt3OnIsYm90dG9tOm49bj4wP24rXyt3Om4sbGVmdDppPWk+MD9pK18rdzppLHJpZ2h0OmE9YT4wP2ErXyt3OmF9fShhKSx1PWZ1bmN0aW9uKHQscil7dmFyIG49ZS5tYXgodC5ub2RlcyxmdW5jdGlvbih0KXtyZXR1cm4gdC5jb2x1bW59KSxhPU0taSxvPVMtYixzPWErci5yaWdodCtyLmxlZnQsbD1vK3IudG9wK3IuYm90dG9tLGM9YS9zLHU9by9sO3JldHVybiBpPWkqYytyLmxlZnQsTT0wPT1yLnJpZ2h0P006TSpjLGI9Yip1K3IudG9wLFMqPXUsdC5ub2Rlcy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QueDA9aSt0LmNvbHVtbiooKE0taS1FKS9uKSx0LngxPXQueDArRX0pLHV9KGEsYyk7cyo9dSxhLmxpbmtzLmZvckVhY2goZnVuY3Rpb24odCl7dC53aWR0aD10LnZhbHVlKnN9KSxsLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU9dC5sZW5ndGg7dC5mb3JFYWNoKGZ1bmN0aW9uKHQsbil7dC5kZXB0aD09bC5sZW5ndGgtMSYmMT09ZT8odC55MD1TLzItdC52YWx1ZSpzLHQueTE9dC55MCt0LnZhbHVlKnMpOjA9PXQuZGVwdGgmJjE9PWU/KHQueTA9Uy8yLXQudmFsdWUqcyx0LnkxPXQueTArdC52YWx1ZSpzKTp0LnBhcnRPZkN5Y2xlPzA9PUEodCxyKT8odC55MD1TLzIrbix0LnkxPXQueTArdC52YWx1ZSpzKToidG9wIj09dC5jaXJjdWxhckxpbmtUeXBlPyh0LnkwPWIrbix0LnkxPXQueTArdC52YWx1ZSpzKToodC55MD1TLXQudmFsdWUqcy1uLHQueTE9dC55MCt0LnZhbHVlKnMpOjA9PWMudG9wfHwwPT1jLmJvdHRvbT8odC55MD0oUy1iKS9lKm4sdC55MT10LnkwK3QudmFsdWUqcyk6KHQueTA9KFMtYikvMi1lLzIrbix0LnkxPXQueTArdC52YWx1ZSpzKX0pfSl9KShzKSxtKCk7Zm9yKHZhciBjPTEsdT1vO3U+MDstLXUpdihjKj0uOTkscyksbSgpO2Z1bmN0aW9uIHYodCxyKXt2YXIgbj1sLmxlbmd0aDtsLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGk9YS5sZW5ndGgsbz1hWzBdLmRlcHRoO2EuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgcztpZihhLnNvdXJjZUxpbmtzLmxlbmd0aHx8YS50YXJnZXRMaW5rcy5sZW5ndGgpaWYoYS5wYXJ0T2ZDeWNsZSYmQShhLHIpPjApO2Vsc2UgaWYoMD09byYmMT09aSlzPWEueTEtYS55MCxhLnkwPVMvMi1zLzIsYS55MT1TLzIrcy8yO2Vsc2UgaWYobz09bi0xJiYxPT1pKXM9YS55MS1hLnkwLGEueTA9Uy8yLXMvMixhLnkxPVMvMitzLzI7ZWxzZXt2YXIgbD1lLm1lYW4oYS5zb3VyY2VMaW5rcyxnKSxjPWUubWVhbihhLnRhcmdldExpbmtzLGQpLHU9KChsJiZjPyhsK2MpLzI6bHx8YyktcChhKSkqdDthLnkwKz11LGEueTErPXV9fSl9KX1mdW5jdGlvbiBtKCl7bC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciByLG4sYSxpPWIsbz1lLmxlbmd0aDtmb3IoZS5zb3J0KGgpLGE9MDthPG87KythKXI9ZVthXSwobj1pLXIueTApPjAmJihyLnkwKz1uLHIueTErPW4pLGk9ci55MSt0O2lmKChuPWktdC1TKT4wKWZvcihpPXIueTAtPW4sci55MS09bixhPW8tMjthPj0wOy0tYSlyPWVbYV0sKG49ci55MSt0LWkpPjAmJihyLnkwLT1uLHIueTEtPW4pLGk9ci55MH0pfX0obyxJLEMpLEIobyk7Zm9yKHZhciBzPTA7czw0O3MrKylVKG8sUyxDKSxxKG8sMCxDKSxOKG8sYixTLEMpLFUobyxTLEMpLHEobywwLEMpO3JldHVybiBmdW5jdGlvbih0LHIsbil7dmFyIGE9dC5ub2RlcyxpPXQubGlua3Msbz0hMSxzPSExO2lmKGkuZm9yRWFjaChmdW5jdGlvbih0KXsidG9wIj09dC5jaXJjdWxhckxpbmtUeXBlP289ITA6ImJvdHRvbSI9PXQuY2lyY3VsYXJMaW5rVHlwZSYmKHM9ITApfSksMD09b3x8MD09cyl7dmFyIGw9ZS5taW4oYSxmdW5jdGlvbih0KXtyZXR1cm4gdC55MH0pLGM9ZS5tYXgoYSxmdW5jdGlvbih0KXtyZXR1cm4gdC55MX0pLHU9Yy1sLGg9bi1yLGY9aC91O2EuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZT0odC55MS10LnkwKSpmO3QueTA9KHQueTAtbCkqZix0LnkxPXQueTArZX0pLGkuZm9yRWFjaChmdW5jdGlvbih0KXt0LnkwPSh0LnkwLWwpKmYsdC55MT0odC55MS1sKSpmLHQud2lkdGg9dC53aWR0aCpmfSl9fShvLGIsUyksTChvLEQsUyxDKSxvfWZ1bmN0aW9uIEIodCl7dC5ub2Rlcy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3Quc291cmNlTGlua3Muc29ydCh1KSx0LnRhcmdldExpbmtzLnNvcnQoYyl9KSx0Lm5vZGVzLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU9dC55MCxyPWUsbj10LnkxLGE9bjt0LnNvdXJjZUxpbmtzLmZvckVhY2goZnVuY3Rpb24odCl7dC5jaXJjdWxhcj8odC55MD1uLXQud2lkdGgvMixuLT10LndpZHRoKToodC55MD1lK3Qud2lkdGgvMixlKz10LndpZHRoKX0pLHQudGFyZ2V0TGlua3MuZm9yRWFjaChmdW5jdGlvbih0KXt0LmNpcmN1bGFyPyh0LnkxPWEtdC53aWR0aC8yLGEtPXQud2lkdGgpOih0LnkxPXIrdC53aWR0aC8yLHIrPXQud2lkdGgpfSl9KX1yZXR1cm4gRi5ub2RlSWQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KEM9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpzKHQpLEYpOkN9LEYubm9kZUFsaWduPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhQPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cyh0KSxGKTpQfSxGLm5vZGVXaWR0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oRT0rdCxGKTpFfSxGLm5vZGVQYWRkaW5nPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PStlLEYpOnR9LEYubm9kZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KE89ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpzKHQpLEYpOk99LEYubGlua3M9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHo9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpzKHQpLEYpOnp9LEYuc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1iPTAsTT0rdFswXSxTPSt0WzFdLEYpOltNLWksUy1iXX0sRi5leHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9K3RbMF1bMF0sTT0rdFsxXVswXSxiPSt0WzBdWzFdLFM9K3RbMV1bMV0sRik6W1tpLGJdLFtNLFNdXX0sRi5pdGVyYXRpb25zPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhJPSt0LEYpOkl9LEYuY2lyY3VsYXJMaW5rR2FwPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhEPSt0LEYpOkR9LEYubm9kZVBhZGRpbmdSYXRpbz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0rdCxGKTpufSxGLnNvcnROb2Rlcz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oUj10LEYpOlJ9LEYudXBkYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBUKHQsQyksQih0KSx0LmxpbmtzLmZvckVhY2goZnVuY3Rpb24odCl7dC5jaXJjdWxhciYmKHQuY2lyY3VsYXJMaW5rVHlwZT10LnkwK3QueTE8Uz8idG9wIjoiYm90dG9tIix0LnNvdXJjZS5jaXJjdWxhckxpbmtUeXBlPXQuY2lyY3VsYXJMaW5rVHlwZSx0LnRhcmdldC5jaXJjdWxhckxpbmtUeXBlPXQuY2lyY3VsYXJMaW5rVHlwZSl9KSxVKHQsUyxDLCExKSxxKHQsMCxDKSxMKHQsRCxTLEMpLHR9LEZ9LHQuc2Fua2V5Q2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiB0LnRhcmdldExpbmtzLmxlbmd0aD90LmRlcHRoOnQuc291cmNlTGlua3MubGVuZ3RoP2UubWluKHQuc291cmNlTGlua3MsaSktMTowfSx0LnNhbmtleUxlZnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQuZGVwdGh9LHQuc2Fua2V5UmlnaHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS0xLXQuaGVpZ2h0fSx0LnNhbmtleUp1c3RpZnk9byxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LCJvYmplY3QiPT10eXBlb2YgciYmInVuZGVmaW5lZCIhPXR5cGVvZiBlP2Eocix0KCJkMy1hcnJheSIpLHQoImQzLWNvbGxlY3Rpb24iKSx0KCJkMy1zaGFwZSIpLHQoImVsZW1lbnRhcnktY2lyY3VpdHMtZGlyZWN0ZWQtZ3JhcGgiKSk6YShuLmQzPW4uZDN8fHt9LG4uZDMsbi5kMyxuLmQzLG51bGwpfSx7ImQzLWFycmF5IjoxNTQsImQzLWNvbGxlY3Rpb24iOjE1NSwiZDMtc2hhcGUiOjE2MywiZWxlbWVudGFyeS1jaXJjdWl0cy1kaXJlY3RlZC1ncmFwaCI6MTc1fV0sNTY6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbixhO249dGhpcyxhPWZ1bmN0aW9uKHQsZSxyLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBhKHQpe3JldHVybiB0LnRhcmdldC5kZXB0aH1mdW5jdGlvbiBpKHQsZSl7cmV0dXJuIHQuc291cmNlTGlua3MubGVuZ3RoP3QuZGVwdGg6ZS0xfWZ1bmN0aW9uIG8odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIHModCxlKXtyZXR1cm4gYyh0LnNvdXJjZSxlLnNvdXJjZSl8fHQuaW5kZXgtZS5pbmRleH1mdW5jdGlvbiBsKHQsZSl7cmV0dXJuIGModC50YXJnZXQsZS50YXJnZXQpfHx0LmluZGV4LWUuaW5kZXh9ZnVuY3Rpb24gYyh0LGUpe3JldHVybiB0LnkwLWUueTB9ZnVuY3Rpb24gdSh0KXtyZXR1cm4gdC52YWx1ZX1mdW5jdGlvbiBoKHQpe3JldHVybih0LnkwK3QueTEpLzJ9ZnVuY3Rpb24gZih0KXtyZXR1cm4gaCh0LnNvdXJjZSkqdC52YWx1ZX1mdW5jdGlvbiBwKHQpe3JldHVybiBoKHQudGFyZ2V0KSp0LnZhbHVlfWZ1bmN0aW9uIGQodCl7cmV0dXJuIHQuaW5kZXh9ZnVuY3Rpb24gZyh0KXtyZXR1cm4gdC5ub2Rlc31mdW5jdGlvbiB2KHQpe3JldHVybiB0LmxpbmtzfWZ1bmN0aW9uIG0odCxlKXt2YXIgcj10LmdldChlKTtpZighcil0aHJvdyBuZXcgRXJyb3IoIm1pc3Npbmc6ICIrZSk7cmV0dXJuIHJ9ZnVuY3Rpb24geSh0KXtyZXR1cm5bdC5zb3VyY2UueDEsdC55MF19ZnVuY3Rpb24geCh0KXtyZXR1cm5bdC50YXJnZXQueDAsdC55MV19dC5zYW5rZXk9ZnVuY3Rpb24oKXt2YXIgdD0wLG49MCxhPTEseT0xLHg9MjQsYj04LF89ZCx3PWksaz1nLFQ9dixNPTMyLEE9Mi8zO2Z1bmN0aW9uIFMoKXt2YXIgaT17bm9kZXM6ay5hcHBseShudWxsLGFyZ3VtZW50cyksbGlua3M6VC5hcHBseShudWxsLGFyZ3VtZW50cyl9O3JldHVybiBmdW5jdGlvbih0KXt0Lm5vZGVzLmZvckVhY2goZnVuY3Rpb24odCxlKXt0LmluZGV4PWUsdC5zb3VyY2VMaW5rcz1bXSx0LnRhcmdldExpbmtzPVtdfSk7dmFyIGU9ci5tYXAodC5ub2RlcyxfKTt0LmxpbmtzLmZvckVhY2goZnVuY3Rpb24odCxyKXt0LmluZGV4PXI7dmFyIG49dC5zb3VyY2UsYT10LnRhcmdldDsib2JqZWN0IiE9dHlwZW9mIG4mJihuPXQuc291cmNlPW0oZSxuKSksIm9iamVjdCIhPXR5cGVvZiBhJiYoYT10LnRhcmdldD1tKGUsYSkpLG4uc291cmNlTGlua3MucHVzaCh0KSxhLnRhcmdldExpbmtzLnB1c2godCl9KX0oaSksZnVuY3Rpb24odCl7dC5ub2Rlcy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QudmFsdWU9TWF0aC5tYXgoZS5zdW0odC5zb3VyY2VMaW5rcyx1KSxlLnN1bSh0LnRhcmdldExpbmtzLHUpKX0pfShpKSxmdW5jdGlvbihlKXt2YXIgcixuLGk7Zm9yKHI9ZS5ub2RlcyxuPVtdLGk9MDtyLmxlbmd0aDsrK2kscj1uLG49W10pci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuZGVwdGg9aSx0LnNvdXJjZUxpbmtzLmZvckVhY2goZnVuY3Rpb24odCl7bi5pbmRleE9mKHQudGFyZ2V0KTwwJiZuLnB1c2godC50YXJnZXQpfSl9KTtmb3Iocj1lLm5vZGVzLG49W10saT0wO3IubGVuZ3RoOysraSxyPW4sbj1bXSlyLmZvckVhY2goZnVuY3Rpb24odCl7dC5oZWlnaHQ9aSx0LnRhcmdldExpbmtzLmZvckVhY2goZnVuY3Rpb24odCl7bi5pbmRleE9mKHQuc291cmNlKTwwJiZuLnB1c2godC5zb3VyY2UpfSl9KTt2YXIgbz0oYS10LXgpLyhpLTEpO2Uubm9kZXMuZm9yRWFjaChmdW5jdGlvbihlKXtlLngxPShlLngwPXQrTWF0aC5tYXgoMCxNYXRoLm1pbihpLTEsTWF0aC5mbG9vcih3LmNhbGwobnVsbCxlLGkpKSkpKm8pK3h9KX0oaSksZnVuY3Rpb24odCl7dmFyIGE9ci5uZXN0KCkua2V5KGZ1bmN0aW9uKHQpe3JldHVybiB0LngwfSkuc29ydEtleXMoZS5hc2NlbmRpbmcpLmVudHJpZXModC5ub2RlcykubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnZhbHVlc30pOyhmdW5jdGlvbigpe3ZhciByPWUubWF4KGEsZnVuY3Rpb24odCl7cmV0dXJuIHQubGVuZ3RofSksaT1BKih5LW4pLyhyLTEpO2I+aSYmKGI9aSk7dmFyIG89ZS5taW4oYSxmdW5jdGlvbih0KXtyZXR1cm4oeS1uLSh0Lmxlbmd0aC0xKSpiKS9lLnN1bSh0LHUpfSk7YS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuZm9yRWFjaChmdW5jdGlvbih0LGUpe3QueTE9KHQueTA9ZSkrdC52YWx1ZSpvfSl9KSx0LmxpbmtzLmZvckVhY2goZnVuY3Rpb24odCl7dC53aWR0aD10LnZhbHVlKm99KX0pKCksZCgpO2Zvcih2YXIgaT0xLG89TTtvPjA7LS1vKWwoaSo9Ljk5KSxkKCkscyhpKSxkKCk7ZnVuY3Rpb24gcyh0KXthLmZvckVhY2goZnVuY3Rpb24ocil7ci5mb3JFYWNoKGZ1bmN0aW9uKHIpe2lmKHIudGFyZ2V0TGlua3MubGVuZ3RoKXt2YXIgbj0oZS5zdW0oci50YXJnZXRMaW5rcyxmKS9lLnN1bShyLnRhcmdldExpbmtzLHUpLWgocikpKnQ7ci55MCs9bixyLnkxKz1ufX0pfSl9ZnVuY3Rpb24gbCh0KXthLnNsaWNlKCkucmV2ZXJzZSgpLmZvckVhY2goZnVuY3Rpb24ocil7ci5mb3JFYWNoKGZ1bmN0aW9uKHIpe2lmKHIuc291cmNlTGlua3MubGVuZ3RoKXt2YXIgbj0oZS5zdW0oci5zb3VyY2VMaW5rcyxwKS9lLnN1bShyLnNvdXJjZUxpbmtzLHUpLWgocikpKnQ7ci55MCs9bixyLnkxKz1ufX0pfSl9ZnVuY3Rpb24gZCgpe2EuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZSxyLGEsaT1uLG89dC5sZW5ndGg7Zm9yKHQuc29ydChjKSxhPTA7YTxvOysrYSllPXRbYV0sKHI9aS1lLnkwKT4wJiYoZS55MCs9cixlLnkxKz1yKSxpPWUueTErYjtpZigocj1pLWIteSk+MClmb3IoaT1lLnkwLT1yLGUueTEtPXIsYT1vLTI7YT49MDstLWEpZT10W2FdLChyPWUueTErYi1pKT4wJiYoZS55MC09cixlLnkxLT1yKSxpPWUueTB9KX19KGkpLEUoaSksaX1mdW5jdGlvbiBFKHQpe3Qubm9kZXMuZm9yRWFjaChmdW5jdGlvbih0KXt0LnNvdXJjZUxpbmtzLnNvcnQobCksdC50YXJnZXRMaW5rcy5zb3J0KHMpfSksdC5ub2Rlcy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPXQueTAscj1lO3Quc291cmNlTGlua3MuZm9yRWFjaChmdW5jdGlvbih0KXt0LnkwPWUrdC53aWR0aC8yLGUrPXQud2lkdGh9KSx0LnRhcmdldExpbmtzLmZvckVhY2goZnVuY3Rpb24odCl7dC55MT1yK3Qud2lkdGgvMixyKz10LndpZHRofSl9KX1yZXR1cm4gUy51cGRhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIEUodCksdH0sUy5ub2RlSWQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KF89ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpvKHQpLFMpOl99LFMubm9kZUFsaWduPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh3PSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6byh0KSxTKTp3fSxTLm5vZGVXaWR0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oeD0rdCxTKTp4fSxTLm5vZGVQYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhiPSt0LFMpOmJ9LFMubm9kZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGs9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpvKHQpLFMpOmt9LFMubGlua3M9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KFQ9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpvKHQpLFMpOlR9LFMuc2l6ZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1uPTAsYT0rZVswXSx5PStlWzFdLFMpOlthLXQseS1uXX0sUy5leHRlbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9K2VbMF1bMF0sYT0rZVsxXVswXSxuPStlWzBdWzFdLHk9K2VbMV1bMV0sUyk6W1t0LG5dLFthLHldXX0sUy5pdGVyYXRpb25zPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhNPSt0LFMpOk19LFN9LHQuc2Fua2V5Q2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiB0LnRhcmdldExpbmtzLmxlbmd0aD90LmRlcHRoOnQuc291cmNlTGlua3MubGVuZ3RoP2UubWluKHQuc291cmNlTGlua3MsYSktMTowfSx0LnNhbmtleUxlZnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQuZGVwdGh9LHQuc2Fua2V5UmlnaHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS0xLXQuaGVpZ2h0fSx0LnNhbmtleUp1c3RpZnk9aSx0LnNhbmtleUxpbmtIb3Jpem9udGFsPWZ1bmN0aW9uKCl7cmV0dXJuIG4ubGlua0hvcml6b250YWwoKS5zb3VyY2UoeSkudGFyZ2V0KHgpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LCJvYmplY3QiPT10eXBlb2YgciYmInVuZGVmaW5lZCIhPXR5cGVvZiBlP2Eocix0KCJkMy1hcnJheSIpLHQoImQzLWNvbGxlY3Rpb24iKSx0KCJkMy1zaGFwZSIpKTphKG4uZDM9bi5kM3x8e30sbi5kMyxuLmQzLG4uZDMpfSx7ImQzLWFycmF5IjoxNTQsImQzLWNvbGxlY3Rpb24iOjE1NSwiZDMtc2hhcGUiOjE2M31dLDU3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj10KCJAdHVyZi9tZXRhIiksYT02Mzc4MTM3O2Z1bmN0aW9uIGkodCl7dmFyIGU9MDtpZih0JiZ0Lmxlbmd0aD4wKXtlKz1NYXRoLmFicyhvKHRbMF0pKTtmb3IodmFyIHI9MTtyPHQubGVuZ3RoO3IrKyllLT1NYXRoLmFicyhvKHRbcl0pKX1yZXR1cm4gZX1mdW5jdGlvbiBvKHQpe3ZhciBlLHIsbixpLG8sbCxjPTAsdT10Lmxlbmd0aDtpZih1PjIpe2ZvcihsPTA7bDx1O2wrKylsPT09dS0yPyhuPXUtMixpPXUtMSxvPTApOmw9PT11LTE/KG49dS0xLGk9MCxvPTEpOihuPWwsaT1sKzEsbz1sKzIpLGU9dFtuXSxyPXRbaV0sYys9KHModFtvXVswXSktcyhlWzBdKSkqTWF0aC5zaW4ocyhyWzFdKSk7Yz1jKmEqYS8yfXJldHVybiBjfWZ1bmN0aW9uIHModCl7cmV0dXJuIHQqTWF0aC5QSS8xODB9ci5kZWZhdWx0PWZ1bmN0aW9uKHQpe3JldHVybiBuLmdlb21SZWR1Y2UodCxmdW5jdGlvbih0LGUpe3JldHVybiB0K2Z1bmN0aW9uKHQpe3ZhciBlLHI9MDtzd2l0Y2godC50eXBlKXtjYXNlIlBvbHlnb24iOnJldHVybiBpKHQuY29vcmRpbmF0ZXMpO2Nhc2UiTXVsdGlQb2x5Z29uIjpmb3IoZT0wO2U8dC5jb29yZGluYXRlcy5sZW5ndGg7ZSsrKXIrPWkodC5jb29yZGluYXRlc1tlXSk7cmV0dXJuIHI7Y2FzZSJQb2ludCI6Y2FzZSJNdWx0aVBvaW50IjpjYXNlIkxpbmVTdHJpbmciOmNhc2UiTXVsdGlMaW5lU3RyaW5nIjpyZXR1cm4gMH1yZXR1cm4gMH0oZSl9LDApfX0seyJAdHVyZi9tZXRhIjo2MX1dLDU4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj10KCJAdHVyZi9tZXRhIik7ci5kZWZhdWx0PWZ1bmN0aW9uKHQpe3ZhciBlPVsxLzAsMS8wLC0xLzAsLTEvMF07cmV0dXJuIG4uY29vcmRFYWNoKHQsZnVuY3Rpb24odCl7ZVswXT50WzBdJiYoZVswXT10WzBdKSxlWzFdPnRbMV0mJihlWzFdPXRbMV0pLGVbMl08dFswXSYmKGVbMl09dFswXSksZVszXTx0WzFdJiYoZVszXT10WzFdKX0pLGV9fSx7IkB0dXJmL21ldGEiOjYxfV0sNTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXQoIkB0dXJmL21ldGEiKSxhPXQoIkB0dXJmL2hlbHBlcnMiKTtyLmRlZmF1bHQ9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIHI9MCxpPTAsbz0wO3JldHVybiBuLmNvb3JkRWFjaCh0LGZ1bmN0aW9uKHQpe3IrPXRbMF0saSs9dFsxXSxvKyt9KSxhLnBvaW50KFtyL28saS9vXSxlLnByb3BlcnRpZXMpfX0seyJAdHVyZi9oZWxwZXJzIjo2MCwiQHR1cmYvbWV0YSI6NjF9XSw2MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyKXt2b2lkIDA9PT1yJiYocj17fSk7dmFyIG49e3R5cGU6IkZlYXR1cmUifTtyZXR1cm4oMD09PXIuaWR8fHIuaWQpJiYobi5pZD1yLmlkKSxyLmJib3gmJihuLmJib3g9ci5iYm94KSxuLnByb3BlcnRpZXM9ZXx8e30sbi5nZW9tZXRyeT10LG59ZnVuY3Rpb24gYSh0LGUscil7cmV0dXJuIHZvaWQgMD09PXImJihyPXt9KSxuKHt0eXBlOiJQb2ludCIsY29vcmRpbmF0ZXM6dH0sZSxyKX1mdW5jdGlvbiBpKHQsZSxyKXt2b2lkIDA9PT1yJiYocj17fSk7Zm9yKHZhciBhPTAsaT10O2E8aS5sZW5ndGg7YSsrKXt2YXIgbz1pW2FdO2lmKG8ubGVuZ3RoPDQpdGhyb3cgbmV3IEVycm9yKCJFYWNoIExpbmVhclJpbmcgb2YgYSBQb2x5Z29uIG11c3QgaGF2ZSA0IG9yIG1vcmUgUG9zaXRpb25zLiIpO2Zvcih2YXIgcz0wO3M8b1tvLmxlbmd0aC0xXS5sZW5ndGg7cysrKWlmKG9bby5sZW5ndGgtMV1bc10hPT1vWzBdW3NdKXRocm93IG5ldyBFcnJvcigiRmlyc3QgYW5kIGxhc3QgUG9zaXRpb24gYXJlIG5vdCBlcXVpdmFsZW50LiIpfXJldHVybiBuKHt0eXBlOiJQb2x5Z29uIixjb29yZGluYXRlczp0fSxlLHIpfWZ1bmN0aW9uIG8odCxlLHIpe2lmKHZvaWQgMD09PXImJihyPXt9KSx0Lmxlbmd0aDwyKXRocm93IG5ldyBFcnJvcigiY29vcmRpbmF0ZXMgbXVzdCBiZSBhbiBhcnJheSBvZiB0d28gb3IgbW9yZSBwb3NpdGlvbnMiKTtyZXR1cm4gbih7dHlwZToiTGluZVN0cmluZyIsY29vcmRpbmF0ZXM6dH0sZSxyKX1mdW5jdGlvbiBzKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciByPXt0eXBlOiJGZWF0dXJlQ29sbGVjdGlvbiJ9O3JldHVybiBlLmlkJiYoci5pZD1lLmlkKSxlLmJib3gmJihyLmJib3g9ZS5iYm94KSxyLmZlYXR1cmVzPXQscn1mdW5jdGlvbiBsKHQsZSxyKXtyZXR1cm4gdm9pZCAwPT09ciYmKHI9e30pLG4oe3R5cGU6Ik11bHRpTGluZVN0cmluZyIsY29vcmRpbmF0ZXM6dH0sZSxyKX1mdW5jdGlvbiBjKHQsZSxyKXtyZXR1cm4gdm9pZCAwPT09ciYmKHI9e30pLG4oe3R5cGU6Ik11bHRpUG9pbnQiLGNvb3JkaW5hdGVzOnR9LGUscil9ZnVuY3Rpb24gdSh0LGUscil7cmV0dXJuIHZvaWQgMD09PXImJihyPXt9KSxuKHt0eXBlOiJNdWx0aVBvbHlnb24iLGNvb3JkaW5hdGVzOnR9LGUscil9ZnVuY3Rpb24gaCh0LGUpe3ZvaWQgMD09PWUmJihlPSJraWxvbWV0ZXJzIik7dmFyIG49ci5mYWN0b3JzW2VdO2lmKCFuKXRocm93IG5ldyBFcnJvcihlKyIgdW5pdHMgaXMgaW52YWxpZCIpO3JldHVybiB0Km59ZnVuY3Rpb24gZih0LGUpe3ZvaWQgMD09PWUmJihlPSJraWxvbWV0ZXJzIik7dmFyIG49ci5mYWN0b3JzW2VdO2lmKCFuKXRocm93IG5ldyBFcnJvcihlKyIgdW5pdHMgaXMgaW52YWxpZCIpO3JldHVybiB0L259ZnVuY3Rpb24gcCh0KXtyZXR1cm4gMTgwKih0JSgyKk1hdGguUEkpKS9NYXRoLlBJfWZ1bmN0aW9uIGQodCl7cmV0dXJuIWlzTmFOKHQpJiZudWxsIT09dCYmIUFycmF5LmlzQXJyYXkodCkmJiEvXlxzKiQvLnRlc3QodCl9T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHIuZWFydGhSYWRpdXM9NjM3MTAwOC44LHIuZmFjdG9ycz17Y2VudGltZXRlcnM6MTAwKnIuZWFydGhSYWRpdXMsY2VudGltZXRyZXM6MTAwKnIuZWFydGhSYWRpdXMsZGVncmVlczpyLmVhcnRoUmFkaXVzLzExMTMyNSxmZWV0OjMuMjgwODQqci5lYXJ0aFJhZGl1cyxpbmNoZXM6MzkuMzcqci5lYXJ0aFJhZGl1cyxraWxvbWV0ZXJzOnIuZWFydGhSYWRpdXMvMWUzLGtpbG9tZXRyZXM6ci5lYXJ0aFJhZGl1cy8xZTMsbWV0ZXJzOnIuZWFydGhSYWRpdXMsbWV0cmVzOnIuZWFydGhSYWRpdXMsbWlsZXM6ci5lYXJ0aFJhZGl1cy8xNjA5LjM0NCxtaWxsaW1ldGVyczoxZTMqci5lYXJ0aFJhZGl1cyxtaWxsaW1ldHJlczoxZTMqci5lYXJ0aFJhZGl1cyxuYXV0aWNhbG1pbGVzOnIuZWFydGhSYWRpdXMvMTg1MixyYWRpYW5zOjEseWFyZHM6ci5lYXJ0aFJhZGl1cy8xLjA5MzZ9LHIudW5pdHNGYWN0b3JzPXtjZW50aW1ldGVyczoxMDAsY2VudGltZXRyZXM6MTAwLGRlZ3JlZXM6MS8xMTEzMjUsZmVldDozLjI4MDg0LGluY2hlczozOS4zNyxraWxvbWV0ZXJzOi4wMDEsa2lsb21ldHJlczouMDAxLG1ldGVyczoxLG1ldHJlczoxLG1pbGVzOjEvMTYwOS4zNDQsbWlsbGltZXRlcnM6MWUzLG1pbGxpbWV0cmVzOjFlMyxuYXV0aWNhbG1pbGVzOjEvMTg1MixyYWRpYW5zOjEvci5lYXJ0aFJhZGl1cyx5YXJkczoxLzEuMDkzNn0sci5hcmVhRmFjdG9ycz17YWNyZXM6MjQ3MTA1ZS05LGNlbnRpbWV0ZXJzOjFlNCxjZW50aW1ldHJlczoxZTQsZmVldDoxMC43NjM5MTA0MTcsaW5jaGVzOjE1NTAuMDAzMTAwMDA2LGtpbG9tZXRlcnM6MWUtNixraWxvbWV0cmVzOjFlLTYsbWV0ZXJzOjEsbWV0cmVzOjEsbWlsZXM6My44NmUtNyxtaWxsaW1ldGVyczoxZTYsbWlsbGltZXRyZXM6MWU2LHlhcmRzOjEuMTk1OTkwMDQ2fSxyLmZlYXR1cmU9bixyLmdlb21ldHJ5PWZ1bmN0aW9uKHQsZSxyKXtzd2l0Y2godm9pZCAwPT09ciYmKHI9e30pLHQpe2Nhc2UiUG9pbnQiOnJldHVybiBhKGUpLmdlb21ldHJ5O2Nhc2UiTGluZVN0cmluZyI6cmV0dXJuIG8oZSkuZ2VvbWV0cnk7Y2FzZSJQb2x5Z29uIjpyZXR1cm4gaShlKS5nZW9tZXRyeTtjYXNlIk11bHRpUG9pbnQiOnJldHVybiBjKGUpLmdlb21ldHJ5O2Nhc2UiTXVsdGlMaW5lU3RyaW5nIjpyZXR1cm4gbChlKS5nZW9tZXRyeTtjYXNlIk11bHRpUG9seWdvbiI6cmV0dXJuIHUoZSkuZ2VvbWV0cnk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IodCsiIGlzIGludmFsaWQiKX19LHIucG9pbnQ9YSxyLnBvaW50cz1mdW5jdGlvbih0LGUscil7cmV0dXJuIHZvaWQgMD09PXImJihyPXt9KSxzKHQubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBhKHQsZSl9KSxyKX0sci5wb2x5Z29uPWksci5wb2x5Z29ucz1mdW5jdGlvbih0LGUscil7cmV0dXJuIHZvaWQgMD09PXImJihyPXt9KSxzKHQubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBpKHQsZSl9KSxyKX0sci5saW5lU3RyaW5nPW8sci5saW5lU3RyaW5ncz1mdW5jdGlvbih0LGUscil7cmV0dXJuIHZvaWQgMD09PXImJihyPXt9KSxzKHQubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBvKHQsZSl9KSxyKX0sci5mZWF0dXJlQ29sbGVjdGlvbj1zLHIubXVsdGlMaW5lU3RyaW5nPWwsci5tdWx0aVBvaW50PWMsci5tdWx0aVBvbHlnb249dSxyLmdlb21ldHJ5Q29sbGVjdGlvbj1mdW5jdGlvbih0LGUscil7cmV0dXJuIHZvaWQgMD09PXImJihyPXt9KSxuKHt0eXBlOiJHZW9tZXRyeUNvbGxlY3Rpb24iLGdlb21ldHJpZXM6dH0sZSxyKX0sci5yb3VuZD1mdW5jdGlvbih0LGUpe2lmKHZvaWQgMD09PWUmJihlPTApLGUmJiEoZT49MCkpdGhyb3cgbmV3IEVycm9yKCJwcmVjaXNpb24gbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciIpO3ZhciByPU1hdGgucG93KDEwLGV8fDApO3JldHVybiBNYXRoLnJvdW5kKHQqcikvcn0sci5yYWRpYW5zVG9MZW5ndGg9aCxyLmxlbmd0aFRvUmFkaWFucz1mLHIubGVuZ3RoVG9EZWdyZWVzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHAoZih0LGUpKX0sci5iZWFyaW5nVG9BemltdXRoPWZ1bmN0aW9uKHQpe3ZhciBlPXQlMzYwO3JldHVybiBlPDAmJihlKz0zNjApLGV9LHIucmFkaWFuc1RvRGVncmVlcz1wLHIuZGVncmVlc1RvUmFkaWFucz1mdW5jdGlvbih0KXtyZXR1cm4gdCUzNjAqTWF0aC5QSS8xODB9LHIuY29udmVydExlbmd0aD1mdW5jdGlvbih0LGUscil7aWYodm9pZCAwPT09ZSYmKGU9ImtpbG9tZXRlcnMiKSx2b2lkIDA9PT1yJiYocj0ia2lsb21ldGVycyIpLCEodD49MCkpdGhyb3cgbmV3IEVycm9yKCJsZW5ndGggbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciIpO3JldHVybiBoKGYodCxlKSxyKX0sci5jb252ZXJ0QXJlYT1mdW5jdGlvbih0LGUsbil7aWYodm9pZCAwPT09ZSYmKGU9Im1ldGVycyIpLHZvaWQgMD09PW4mJihuPSJraWxvbWV0ZXJzIiksISh0Pj0wKSl0aHJvdyBuZXcgRXJyb3IoImFyZWEgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciIpO3ZhciBhPXIuYXJlYUZhY3RvcnNbZV07aWYoIWEpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIG9yaWdpbmFsIHVuaXRzIik7dmFyIGk9ci5hcmVhRmFjdG9yc1tuXTtpZighaSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgZmluYWwgdW5pdHMiKTtyZXR1cm4gdC9hKml9LHIuaXNOdW1iZXI9ZCxyLmlzT2JqZWN0PWZ1bmN0aW9uKHQpe3JldHVybiEhdCYmdC5jb25zdHJ1Y3Rvcj09PU9iamVjdH0sci52YWxpZGF0ZUJCb3g9ZnVuY3Rpb24odCl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJiYm94IGlzIHJlcXVpcmVkIik7aWYoIUFycmF5LmlzQXJyYXkodCkpdGhyb3cgbmV3IEVycm9yKCJiYm94IG11c3QgYmUgYW4gQXJyYXkiKTtpZig0IT09dC5sZW5ndGgmJjYhPT10Lmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImJib3ggbXVzdCBiZSBhbiBBcnJheSBvZiA0IG9yIDYgbnVtYmVycyIpO3QuZm9yRWFjaChmdW5jdGlvbih0KXtpZighZCh0KSl0aHJvdyBuZXcgRXJyb3IoImJib3ggbXVzdCBvbmx5IGNvbnRhaW4gbnVtYmVycyIpfSl9LHIudmFsaWRhdGVJZD1mdW5jdGlvbih0KXtpZighdCl0aHJvdyBuZXcgRXJyb3IoImlkIGlzIHJlcXVpcmVkIik7aWYoLTE9PT1bInN0cmluZyIsIm51bWJlciJdLmluZGV4T2YodHlwZW9mIHQpKXRocm93IG5ldyBFcnJvcigiaWQgbXVzdCBiZSBhIG51bWJlciBvciBhIHN0cmluZyIpfSxyLnJhZGlhbnMyZGVncmVlcz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigibWV0aG9kIGhhcyBiZWVuIHJlbmFtZWQgdG8gYHJhZGlhbnNUb0RlZ3JlZXNgIil9LHIuZGVncmVlczJyYWRpYW5zPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJtZXRob2QgaGFzIGJlZW4gcmVuYW1lZCB0byBgZGVncmVlc1RvUmFkaWFuc2AiKX0sci5kaXN0YW5jZVRvRGVncmVlcz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigibWV0aG9kIGhhcyBiZWVuIHJlbmFtZWQgdG8gYGxlbmd0aFRvRGVncmVlc2AiKX0sci5kaXN0YW5jZVRvUmFkaWFucz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigibWV0aG9kIGhhcyBiZWVuIHJlbmFtZWQgdG8gYGxlbmd0aFRvUmFkaWFuc2AiKX0sci5yYWRpYW5zVG9EaXN0YW5jZT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigibWV0aG9kIGhhcyBiZWVuIHJlbmFtZWQgdG8gYHJhZGlhbnNUb0xlbmd0aGAiKX0sci5iZWFyaW5nVG9BbmdsZT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigibWV0aG9kIGhhcyBiZWVuIHJlbmFtZWQgdG8gYGJlYXJpbmdUb0F6aW11dGhgIil9LHIuY29udmVydERpc3RhbmNlPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJtZXRob2QgaGFzIGJlZW4gcmVuYW1lZCB0byBgY29udmVydExlbmd0aGAiKX19LHt9XSw2MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49dCgiQHR1cmYvaGVscGVycyIpO2Z1bmN0aW9uIGEodCxlLHIpe2lmKG51bGwhPT10KWZvcih2YXIgbixpLG8scyxsLGMsdSxoLGY9MCxwPTAsZD10LnR5cGUsZz0iRmVhdHVyZUNvbGxlY3Rpb24iPT09ZCx2PSJGZWF0dXJlIj09PWQsbT1nP3QuZmVhdHVyZXMubGVuZ3RoOjEseT0wO3k8bTt5Kyspe2w9KGg9ISEodT1nP3QuZmVhdHVyZXNbeV0uZ2VvbWV0cnk6dj90Lmdlb21ldHJ5OnQpJiYiR2VvbWV0cnlDb2xsZWN0aW9uIj09PXUudHlwZSk/dS5nZW9tZXRyaWVzLmxlbmd0aDoxO2Zvcih2YXIgeD0wO3g8bDt4Kyspe3ZhciBiPTAsXz0wO2lmKG51bGwhPT0ocz1oP3UuZ2VvbWV0cmllc1t4XTp1KSl7Yz1zLmNvb3JkaW5hdGVzO3ZhciB3PXMudHlwZTtzd2l0Y2goZj0hcnx8IlBvbHlnb24iIT09dyYmIk11bHRpUG9seWdvbiIhPT13PzA6MSx3KXtjYXNlIG51bGw6YnJlYWs7Y2FzZSJQb2ludCI6aWYoITE9PT1lKGMscCx5LGIsXykpcmV0dXJuITE7cCsrLGIrKzticmVhaztjYXNlIkxpbmVTdHJpbmciOmNhc2UiTXVsdGlQb2ludCI6Zm9yKG49MDtuPGMubGVuZ3RoO24rKyl7aWYoITE9PT1lKGNbbl0scCx5LGIsXykpcmV0dXJuITE7cCsrLCJNdWx0aVBvaW50Ij09PXcmJmIrK30iTGluZVN0cmluZyI9PT13JiZiKys7YnJlYWs7Y2FzZSJQb2x5Z29uIjpjYXNlIk11bHRpTGluZVN0cmluZyI6Zm9yKG49MDtuPGMubGVuZ3RoO24rKyl7Zm9yKGk9MDtpPGNbbl0ubGVuZ3RoLWY7aSsrKXtpZighMT09PWUoY1tuXVtpXSxwLHksYixfKSlyZXR1cm4hMTtwKyt9Ik11bHRpTGluZVN0cmluZyI9PT13JiZiKyssIlBvbHlnb24iPT09dyYmXysrfSJQb2x5Z29uIj09PXcmJmIrKzticmVhaztjYXNlIk11bHRpUG9seWdvbiI6Zm9yKG49MDtuPGMubGVuZ3RoO24rKyl7Zm9yKF89MCxpPTA7aTxjW25dLmxlbmd0aDtpKyspe2ZvcihvPTA7bzxjW25dW2ldLmxlbmd0aC1mO28rKyl7aWYoITE9PT1lKGNbbl1baV1bb10scCx5LGIsXykpcmV0dXJuITE7cCsrfV8rK31iKyt9YnJlYWs7Y2FzZSJHZW9tZXRyeUNvbGxlY3Rpb24iOmZvcihuPTA7bjxzLmdlb21ldHJpZXMubGVuZ3RoO24rKylpZighMT09PWEocy5nZW9tZXRyaWVzW25dLGUscikpcmV0dXJuITE7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gR2VvbWV0cnkgVHlwZSIpfX19fX1mdW5jdGlvbiBpKHQsZSl7dmFyIHI7c3dpdGNoKHQudHlwZSl7Y2FzZSJGZWF0dXJlQ29sbGVjdGlvbiI6Zm9yKHI9MDtyPHQuZmVhdHVyZXMubGVuZ3RoJiYhMSE9PWUodC5mZWF0dXJlc1tyXS5wcm9wZXJ0aWVzLHIpO3IrKyk7YnJlYWs7Y2FzZSJGZWF0dXJlIjplKHQucHJvcGVydGllcywwKX19ZnVuY3Rpb24gbyh0LGUpe2lmKCJGZWF0dXJlIj09PXQudHlwZSllKHQsMCk7ZWxzZSBpZigiRmVhdHVyZUNvbGxlY3Rpb24iPT09dC50eXBlKWZvcih2YXIgcj0wO3I8dC5mZWF0dXJlcy5sZW5ndGgmJiExIT09ZSh0LmZlYXR1cmVzW3JdLHIpO3IrKyk7fWZ1bmN0aW9uIHModCxlKXt2YXIgcixuLGEsaSxvLHMsbCxjLHUsaCxmPTAscD0iRmVhdHVyZUNvbGxlY3Rpb24iPT09dC50eXBlLGQ9IkZlYXR1cmUiPT09dC50eXBlLGc9cD90LmZlYXR1cmVzLmxlbmd0aDoxO2ZvcihyPTA7cjxnO3IrKyl7Zm9yKHM9cD90LmZlYXR1cmVzW3JdLmdlb21ldHJ5OmQ/dC5nZW9tZXRyeTp0LGM9cD90LmZlYXR1cmVzW3JdLnByb3BlcnRpZXM6ZD90LnByb3BlcnRpZXM6e30sdT1wP3QuZmVhdHVyZXNbcl0uYmJveDpkP3QuYmJveDp2b2lkIDAsaD1wP3QuZmVhdHVyZXNbcl0uaWQ6ZD90LmlkOnZvaWQgMCxvPShsPSEhcyYmIkdlb21ldHJ5Q29sbGVjdGlvbiI9PT1zLnR5cGUpP3MuZ2VvbWV0cmllcy5sZW5ndGg6MSxhPTA7YTxvO2ErKylpZihudWxsIT09KGk9bD9zLmdlb21ldHJpZXNbYV06cykpc3dpdGNoKGkudHlwZSl7Y2FzZSJQb2ludCI6Y2FzZSJMaW5lU3RyaW5nIjpjYXNlIk11bHRpUG9pbnQiOmNhc2UiUG9seWdvbiI6Y2FzZSJNdWx0aUxpbmVTdHJpbmciOmNhc2UiTXVsdGlQb2x5Z29uIjppZighMT09PWUoaSxmLGMsdSxoKSlyZXR1cm4hMTticmVhaztjYXNlIkdlb21ldHJ5Q29sbGVjdGlvbiI6Zm9yKG49MDtuPGkuZ2VvbWV0cmllcy5sZW5ndGg7bisrKWlmKCExPT09ZShpLmdlb21ldHJpZXNbbl0sZixjLHUsaCkpcmV0dXJuITE7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gR2VvbWV0cnkgVHlwZSIpfWVsc2UgaWYoITE9PT1lKG51bGwsZixjLHUsaCkpcmV0dXJuITE7ZisrfX1mdW5jdGlvbiBsKHQsZSl7cyh0LGZ1bmN0aW9uKHQscixhLGksbyl7dmFyIHMsbD1udWxsPT09dD9udWxsOnQudHlwZTtzd2l0Y2gobCl7Y2FzZSBudWxsOmNhc2UiUG9pbnQiOmNhc2UiTGluZVN0cmluZyI6Y2FzZSJQb2x5Z29uIjpyZXR1cm4hMSE9PWUobi5mZWF0dXJlKHQsYSx7YmJveDppLGlkOm99KSxyLDApJiZ2b2lkIDB9c3dpdGNoKGwpe2Nhc2UiTXVsdGlQb2ludCI6cz0iUG9pbnQiO2JyZWFrO2Nhc2UiTXVsdGlMaW5lU3RyaW5nIjpzPSJMaW5lU3RyaW5nIjticmVhaztjYXNlIk11bHRpUG9seWdvbiI6cz0iUG9seWdvbiJ9Zm9yKHZhciBjPTA7Yzx0LmNvb3JkaW5hdGVzLmxlbmd0aDtjKyspe3ZhciB1PXt0eXBlOnMsY29vcmRpbmF0ZXM6dC5jb29yZGluYXRlc1tjXX07aWYoITE9PT1lKG4uZmVhdHVyZSh1LGEpLHIsYykpcmV0dXJuITF9fSl9ZnVuY3Rpb24gYyh0LGUpe2wodCxmdW5jdGlvbih0LHIsaSl7dmFyIG89MDtpZih0Lmdlb21ldHJ5KXt2YXIgcz10Lmdlb21ldHJ5LnR5cGU7aWYoIlBvaW50IiE9PXMmJiJNdWx0aVBvaW50IiE9PXMpe3ZhciBsLGM9MCx1PTAsaD0wO3JldHVybiExIT09YSh0LGZ1bmN0aW9uKGEscyxmLHAsZCl7aWYodm9pZCAwPT09bHx8cj5jfHxwPnV8fGQ+aClyZXR1cm4gbD1hLGM9cix1PXAsaD1kLHZvaWQobz0wKTt2YXIgZz1uLmxpbmVTdHJpbmcoW2wsYV0sdC5wcm9wZXJ0aWVzKTtpZighMT09PWUoZyxyLGksZCxvKSlyZXR1cm4hMTtvKyssbD1hfSkmJnZvaWQgMH19fSl9ZnVuY3Rpb24gdSh0LGUpe2lmKCF0KXRocm93IG5ldyBFcnJvcigiZ2VvanNvbiBpcyByZXF1aXJlZCIpO2wodCxmdW5jdGlvbih0LHIsYSl7aWYobnVsbCE9PXQuZ2VvbWV0cnkpe3ZhciBpPXQuZ2VvbWV0cnkudHlwZSxvPXQuZ2VvbWV0cnkuY29vcmRpbmF0ZXM7c3dpdGNoKGkpe2Nhc2UiTGluZVN0cmluZyI6aWYoITE9PT1lKHQscixhLDAsMCkpcmV0dXJuITE7YnJlYWs7Y2FzZSJQb2x5Z29uIjpmb3IodmFyIHM9MDtzPG8ubGVuZ3RoO3MrKylpZighMT09PWUobi5saW5lU3RyaW5nKG9bc10sdC5wcm9wZXJ0aWVzKSxyLGEscykpcmV0dXJuITF9fX0pfXIuY29vcmRFYWNoPWEsci5jb29yZFJlZHVjZT1mdW5jdGlvbih0LGUscixuKXt2YXIgaT1yO3JldHVybiBhKHQsZnVuY3Rpb24odCxuLGEsbyxzKXtpPTA9PT1uJiZ2b2lkIDA9PT1yP3Q6ZShpLHQsbixhLG8scyl9LG4pLGl9LHIucHJvcEVhY2g9aSxyLnByb3BSZWR1Y2U9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXI7cmV0dXJuIGkodCxmdW5jdGlvbih0LGEpe249MD09PWEmJnZvaWQgMD09PXI/dDplKG4sdCxhKX0pLG59LHIuZmVhdHVyZUVhY2g9byxyLmZlYXR1cmVSZWR1Y2U9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXI7cmV0dXJuIG8odCxmdW5jdGlvbih0LGEpe249MD09PWEmJnZvaWQgMD09PXI/dDplKG4sdCxhKX0pLG59LHIuY29vcmRBbGw9ZnVuY3Rpb24odCl7dmFyIGU9W107cmV0dXJuIGEodCxmdW5jdGlvbih0KXtlLnB1c2godCl9KSxlfSxyLmdlb21FYWNoPXMsci5nZW9tUmVkdWNlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1yO3JldHVybiBzKHQsZnVuY3Rpb24odCxhLGksbyxzKXtuPTA9PT1hJiZ2b2lkIDA9PT1yP3Q6ZShuLHQsYSxpLG8scyl9KSxufSxyLmZsYXR0ZW5FYWNoPWwsci5mbGF0dGVuUmVkdWNlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1yO3JldHVybiBsKHQsZnVuY3Rpb24odCxhLGkpe249MD09PWEmJjA9PT1pJiZ2b2lkIDA9PT1yP3Q6ZShuLHQsYSxpKX0pLG59LHIuc2VnbWVudEVhY2g9YyxyLnNlZ21lbnRSZWR1Y2U9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXIsYT0hMTtyZXR1cm4gYyh0LGZ1bmN0aW9uKHQsaSxvLHMsbCl7bj0hMT09PWEmJnZvaWQgMD09PXI/dDplKG4sdCxpLG8scyxsKSxhPSEwfSksbn0sci5saW5lRWFjaD11LHIubGluZVJlZHVjZT1mdW5jdGlvbih0LGUscil7dmFyIG49cjtyZXR1cm4gdSh0LGZ1bmN0aW9uKHQsYSxpLG8pe249MD09PWEmJnZvaWQgMD09PXI/dDplKG4sdCxhLGksbyl9KSxufSxyLmZpbmRTZWdtZW50PWZ1bmN0aW9uKHQsZSl7aWYoZT1lfHx7fSwhbi5pc09iamVjdChlKSl0aHJvdyBuZXcgRXJyb3IoIm9wdGlvbnMgaXMgaW52YWxpZCIpO3ZhciByLGE9ZS5mZWF0dXJlSW5kZXh8fDAsaT1lLm11bHRpRmVhdHVyZUluZGV4fHwwLG89ZS5nZW9tZXRyeUluZGV4fHwwLHM9ZS5zZWdtZW50SW5kZXh8fDAsbD1lLnByb3BlcnRpZXM7c3dpdGNoKHQudHlwZSl7Y2FzZSJGZWF0dXJlQ29sbGVjdGlvbiI6YTwwJiYoYT10LmZlYXR1cmVzLmxlbmd0aCthKSxsPWx8fHQuZmVhdHVyZXNbYV0ucHJvcGVydGllcyxyPXQuZmVhdHVyZXNbYV0uZ2VvbWV0cnk7YnJlYWs7Y2FzZSJGZWF0dXJlIjpsPWx8fHQucHJvcGVydGllcyxyPXQuZ2VvbWV0cnk7YnJlYWs7Y2FzZSJQb2ludCI6Y2FzZSJNdWx0aVBvaW50IjpyZXR1cm4gbnVsbDtjYXNlIkxpbmVTdHJpbmciOmNhc2UiUG9seWdvbiI6Y2FzZSJNdWx0aUxpbmVTdHJpbmciOmNhc2UiTXVsdGlQb2x5Z29uIjpyPXQ7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImdlb2pzb24gaXMgaW52YWxpZCIpfWlmKG51bGw9PT1yKXJldHVybiBudWxsO3ZhciBjPXIuY29vcmRpbmF0ZXM7c3dpdGNoKHIudHlwZSl7Y2FzZSJQb2ludCI6Y2FzZSJNdWx0aVBvaW50IjpyZXR1cm4gbnVsbDtjYXNlIkxpbmVTdHJpbmciOnJldHVybiBzPDAmJihzPWMubGVuZ3RoK3MtMSksbi5saW5lU3RyaW5nKFtjW3NdLGNbcysxXV0sbCxlKTtjYXNlIlBvbHlnb24iOnJldHVybiBvPDAmJihvPWMubGVuZ3RoK28pLHM8MCYmKHM9Y1tvXS5sZW5ndGgrcy0xKSxuLmxpbmVTdHJpbmcoW2Nbb11bc10sY1tvXVtzKzFdXSxsLGUpO2Nhc2UiTXVsdGlMaW5lU3RyaW5nIjpyZXR1cm4gaTwwJiYoaT1jLmxlbmd0aCtpKSxzPDAmJihzPWNbaV0ubGVuZ3RoK3MtMSksbi5saW5lU3RyaW5nKFtjW2ldW3NdLGNbaV1bcysxXV0sbCxlKTtjYXNlIk11bHRpUG9seWdvbiI6cmV0dXJuIGk8MCYmKGk9Yy5sZW5ndGgraSksbzwwJiYobz1jW2ldLmxlbmd0aCtvKSxzPDAmJihzPWNbaV1bb10ubGVuZ3RoLXMtMSksbi5saW5lU3RyaW5nKFtjW2ldW29dW3NdLGNbaV1bb11bcysxXV0sbCxlKX10aHJvdyBuZXcgRXJyb3IoImdlb2pzb24gaXMgaW52YWxpZCIpfSxyLmZpbmRQb2ludD1mdW5jdGlvbih0LGUpe2lmKGU9ZXx8e30sIW4uaXNPYmplY3QoZSkpdGhyb3cgbmV3IEVycm9yKCJvcHRpb25zIGlzIGludmFsaWQiKTt2YXIgcixhPWUuZmVhdHVyZUluZGV4fHwwLGk9ZS5tdWx0aUZlYXR1cmVJbmRleHx8MCxvPWUuZ2VvbWV0cnlJbmRleHx8MCxzPWUuY29vcmRJbmRleHx8MCxsPWUucHJvcGVydGllcztzd2l0Y2godC50eXBlKXtjYXNlIkZlYXR1cmVDb2xsZWN0aW9uIjphPDAmJihhPXQuZmVhdHVyZXMubGVuZ3RoK2EpLGw9bHx8dC5mZWF0dXJlc1thXS5wcm9wZXJ0aWVzLHI9dC5mZWF0dXJlc1thXS5nZW9tZXRyeTticmVhaztjYXNlIkZlYXR1cmUiOmw9bHx8dC5wcm9wZXJ0aWVzLHI9dC5nZW9tZXRyeTticmVhaztjYXNlIlBvaW50IjpjYXNlIk11bHRpUG9pbnQiOnJldHVybiBudWxsO2Nhc2UiTGluZVN0cmluZyI6Y2FzZSJQb2x5Z29uIjpjYXNlIk11bHRpTGluZVN0cmluZyI6Y2FzZSJNdWx0aVBvbHlnb24iOnI9dDticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiZ2VvanNvbiBpcyBpbnZhbGlkIil9aWYobnVsbD09PXIpcmV0dXJuIG51bGw7dmFyIGM9ci5jb29yZGluYXRlcztzd2l0Y2goci50eXBlKXtjYXNlIlBvaW50IjpyZXR1cm4gbi5wb2ludChjLGwsZSk7Y2FzZSJNdWx0aVBvaW50IjpyZXR1cm4gaTwwJiYoaT1jLmxlbmd0aCtpKSxuLnBvaW50KGNbaV0sbCxlKTtjYXNlIkxpbmVTdHJpbmciOnJldHVybiBzPDAmJihzPWMubGVuZ3RoK3MpLG4ucG9pbnQoY1tzXSxsLGUpO2Nhc2UiUG9seWdvbiI6cmV0dXJuIG88MCYmKG89Yy5sZW5ndGgrbyksczwwJiYocz1jW29dLmxlbmd0aCtzKSxuLnBvaW50KGNbb11bc10sbCxlKTtjYXNlIk11bHRpTGluZVN0cmluZyI6cmV0dXJuIGk8MCYmKGk9Yy5sZW5ndGgraSksczwwJiYocz1jW2ldLmxlbmd0aCtzKSxuLnBvaW50KGNbaV1bc10sbCxlKTtjYXNlIk11bHRpUG9seWdvbiI6cmV0dXJuIGk8MCYmKGk9Yy5sZW5ndGgraSksbzwwJiYobz1jW2ldLmxlbmd0aCtvKSxzPDAmJihzPWNbaV1bb10ubGVuZ3RoLXMpLG4ucG9pbnQoY1tpXVtvXVtzXSxsLGUpfXRocm93IG5ldyBFcnJvcigiZ2VvanNvbiBpcyBpbnZhbGlkIil9fSx7IkB0dXJmL2hlbHBlcnMiOjYwfV0sNjI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49InVuZGVmaW5lZCI9PXR5cGVvZiBXZWFrTWFwP3QoIndlYWstbWFwIik6V2Vha01hcCxhPXQoImdsLWJ1ZmZlciIpLGk9dCgiZ2wtdmFvIiksbz1uZXcgbjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9by5nZXQodCkscj1lJiYoZS5fdHJpYW5nbGVCdWZmZXIuaGFuZGxlfHxlLl90cmlhbmdsZUJ1ZmZlci5idWZmZXIpO2lmKCFyfHwhdC5pc0J1ZmZlcihyKSl7dmFyIG49YSh0LG5ldyBGbG9hdDMyQXJyYXkoWy0xLC0xLC0xLDQsNCwtMV0pKTsoZT1pKHQsW3tidWZmZXI6bix0eXBlOnQuRkxPQVQsc2l6ZToyfV0pKS5fdHJpYW5nbGVCdWZmZXI9bixvLnNldCh0LGUpfWUuYmluZCgpLHQuZHJhd0FycmF5cyh0LlRSSUFOR0xFUywwLDMpLGUudW5iaW5kKCl9fSx7ImdsLWJ1ZmZlciI6MjQ0LCJnbC12YW8iOjMyOSwid2Vhay1tYXAiOjU1MX1dLDYzOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPTAscj0wLG49MCxhPTA7cmV0dXJuIHQubWFwKGZ1bmN0aW9uKHQpe3ZhciBpPSh0PXQuc2xpY2UoKSlbMF0sbz1pLnRvVXBwZXJDYXNlKCk7aWYoaSE9bylzd2l0Y2godFswXT1vLGkpe2Nhc2UiYSI6dFs2XSs9bix0WzddKz1hO2JyZWFrO2Nhc2UidiI6dFsxXSs9YTticmVhaztjYXNlImgiOnRbMV0rPW47YnJlYWs7ZGVmYXVsdDpmb3IodmFyIHM9MTtzPHQubGVuZ3RoOyl0W3MrK10rPW4sdFtzKytdKz1hfXN3aXRjaChvKXtjYXNlIloiOm49ZSxhPXI7YnJlYWs7Y2FzZSJIIjpuPXRbMV07YnJlYWs7Y2FzZSJWIjphPXRbMV07YnJlYWs7Y2FzZSJNIjpuPWU9dFsxXSxhPXI9dFsyXTticmVhaztkZWZhdWx0Om49dFt0Lmxlbmd0aC0yXSxhPXRbdC5sZW5ndGgtMV19cmV0dXJuIHR9KX19LHt9XSw2NDpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoInBhZC1sZWZ0Iik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtlPSJudW1iZXIiPT10eXBlb2YgZT9lOjEscj1yfHwiOiAiO3ZhciBhPXQuc3BsaXQoL1xyP1xuLyksaT1TdHJpbmcoYS5sZW5ndGgrZS0xKS5sZW5ndGg7cmV0dXJuIGEubWFwKGZ1bmN0aW9uKHQsYSl7dmFyIG89YStlLHM9U3RyaW5nKG8pLmxlbmd0aCxsPW4obyxpLXMpO3JldHVybiBsK3IrdH0pLmpvaW4oIlxuIil9fSx7InBhZC1sZWZ0Ijo0NTl9XSw2NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5sZW5ndGg7aWYoMD09PWUpcmV0dXJuW107aWYoMT09PWUpcmV0dXJuWzBdO2Zvcih2YXIgcj10WzBdLmxlbmd0aCxuPVt0WzBdXSxpPVswXSxvPTE7bzxlOysrbylpZihuLnB1c2godFtvXSksYShuLHIpKXtpZihpLnB1c2gobyksaS5sZW5ndGg9PT1yKzEpcmV0dXJuIGl9ZWxzZSBuLnBvcCgpO3JldHVybiBpfTt2YXIgbj10KCJyb2J1c3Qtb3JpZW50YXRpb24iKTtmdW5jdGlvbiBhKHQsZSl7Zm9yKHZhciByPW5ldyBBcnJheShlKzEpLGE9MDthPHQubGVuZ3RoOysrYSlyW2FdPXRbYV07Zm9yKGE9MDthPD10Lmxlbmd0aDsrK2Epe2Zvcih2YXIgaT10Lmxlbmd0aDtpPD1lOysraSl7Zm9yKHZhciBvPW5ldyBBcnJheShlKSxzPTA7czxlOysrcylvW3NdPU1hdGgucG93KGkrMS1hLHMpO3JbaV09b31pZihuLmFwcGx5KHZvaWQgMCxyKSlyZXR1cm4hMH1yZXR1cm4hMX19LHsicm9idXN0LW9yaWVudGF0aW9uIjo1MDl9XSw2NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbihlKS5maWx0ZXIoZnVuY3Rpb24ocil7Zm9yKHZhciBuPW5ldyBBcnJheShyLmxlbmd0aCksaT0wO2k8ci5sZW5ndGg7KytpKW5baV09ZVtyW2ldXTtyZXR1cm4gYShuKSp0PDF9KX07dmFyIG49dCgiZGVsYXVuYXktdHJpYW5ndWxhdGUiKSxhPXQoImNpcmN1bXJhZGl1cyIpfSx7Y2lyY3VtcmFkaXVzOjExNiwiZGVsYXVuYXktdHJpYW5ndWxhdGUiOjE2N31dLDY3OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGEobih0LGUpKX07dmFyIG49dCgiYWxwaGEtY29tcGxleCIpLGE9dCgic2ltcGxpY2lhbC1jb21wbGV4LWJvdW5kYXJ5Iil9LHsiYWxwaGEtY29tcGxleCI6NjYsInNpbXBsaWNpYWwtY29tcGxleC1ib3VuZGFyeSI6NTE2fV0sNjg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYoIXR8fG51bGw9PXQubGVuZ3RoKXRocm93IEVycm9yKCJBcmd1bWVudCBzaG91bGQgYmUgYW4gYXJyYXkiKTtlPW51bGw9PWU/MTpNYXRoLmZsb29yKGUpO2Zvcih2YXIgcj1BcnJheSgyKmUpLG49MDtuPGU7bisrKXtmb3IodmFyIGE9LTEvMCxpPTEvMCxvPW4scz10Lmxlbmd0aDtvPHM7bys9ZSl0W29dPmEmJihhPXRbb10pLHRbb108aSYmKGk9dFtvXSk7cltuXT1pLHJbZStuXT1hfXJldHVybiByfX0se31dLDY5OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9Im51bWJlciI9PXR5cGVvZiB0LG49Im51bWJlciI9PXR5cGVvZiBlO3ImJiFuPyhlPXQsdD0wKTpyfHxufHwodD0wLGU9MCk7dmFyIGE9KGV8PTApLSh0fD0wKTtpZihhPDApdGhyb3cgbmV3IEVycm9yKCJhcnJheSBsZW5ndGggbXVzdCBiZSBwb3NpdGl2ZSIpO2Zvcih2YXIgaT1uZXcgQXJyYXkoYSksbz0wLHM9dDtvPGE7bysrLHMrKylpW29dPXM7cmV0dXJuIGl9fSx7fV0sNzA6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24ocil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIm9iamVjdC1hc3NpZ24iKTtmdW5jdGlvbiBhKHQsZSl7aWYodD09PWUpcmV0dXJuIDA7Zm9yKHZhciByPXQubGVuZ3RoLG49ZS5sZW5ndGgsYT0wLGk9TWF0aC5taW4ocixuKTthPGk7KythKWlmKHRbYV0hPT1lW2FdKXtyPXRbYV0sbj1lW2FdO2JyZWFrfXJldHVybiByPG4/LTE6bjxyPzE6MH1mdW5jdGlvbiBpKHQpe3JldHVybiByLkJ1ZmZlciYmImZ1bmN0aW9uIj09dHlwZW9mIHIuQnVmZmVyLmlzQnVmZmVyP3IuQnVmZmVyLmlzQnVmZmVyKHQpOiEobnVsbD09dHx8IXQuX2lzQnVmZmVyKX12YXIgbz10KCJ1dGlsLyIpLHM9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxsPUFycmF5LnByb3RvdHlwZS5zbGljZSxjPSJmb28iPT09ZnVuY3Rpb24oKXt9Lm5hbWU7ZnVuY3Rpb24gdSh0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWZ1bmN0aW9uIGgodCl7cmV0dXJuIWkodCkmJigiZnVuY3Rpb24iPT10eXBlb2Ygci5BcnJheUJ1ZmZlciYmKCJmdW5jdGlvbiI9PXR5cGVvZiBBcnJheUJ1ZmZlci5pc1ZpZXc/QXJyYXlCdWZmZXIuaXNWaWV3KHQpOiEhdCYmKHQgaW5zdGFuY2VvZiBEYXRhVmlld3x8ISEodC5idWZmZXImJnQuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpKSkpfXZhciBmPWUuZXhwb3J0cz15LHA9L1xzKmZ1bmN0aW9uXHMrKFteXChcc10qKVxzKi87ZnVuY3Rpb24gZCh0KXtpZihvLmlzRnVuY3Rpb24odCkpe2lmKGMpcmV0dXJuIHQubmFtZTt2YXIgZT10LnRvU3RyaW5nKCkubWF0Y2gocCk7cmV0dXJuIGUmJmVbMV19fWZ1bmN0aW9uIGcodCxlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/dC5sZW5ndGg8ZT90OnQuc2xpY2UoMCxlKTp0fWZ1bmN0aW9uIHYodCl7aWYoY3x8IW8uaXNGdW5jdGlvbih0KSlyZXR1cm4gby5pbnNwZWN0KHQpO3ZhciBlPWQodCk7cmV0dXJuIltGdW5jdGlvbiIrKGU/IjogIitlOiIiKSsiXSJ9ZnVuY3Rpb24gbSh0LGUscixuLGEpe3Rocm93IG5ldyBmLkFzc2VydGlvbkVycm9yKHttZXNzYWdlOnIsYWN0dWFsOnQsZXhwZWN0ZWQ6ZSxvcGVyYXRvcjpuLHN0YWNrU3RhcnRGdW5jdGlvbjphfSl9ZnVuY3Rpb24geSh0LGUpe3R8fG0odCwhMCxlLCI9PSIsZi5vayl9ZnVuY3Rpb24geCh0LGUscixuKXtpZih0PT09ZSlyZXR1cm4hMDtpZihpKHQpJiZpKGUpKXJldHVybiAwPT09YSh0LGUpO2lmKG8uaXNEYXRlKHQpJiZvLmlzRGF0ZShlKSlyZXR1cm4gdC5nZXRUaW1lKCk9PT1lLmdldFRpbWUoKTtpZihvLmlzUmVnRXhwKHQpJiZvLmlzUmVnRXhwKGUpKXJldHVybiB0LnNvdXJjZT09PWUuc291cmNlJiZ0Lmdsb2JhbD09PWUuZ2xvYmFsJiZ0Lm11bHRpbGluZT09PWUubXVsdGlsaW5lJiZ0Lmxhc3RJbmRleD09PWUubGFzdEluZGV4JiZ0Lmlnbm9yZUNhc2U9PT1lLmlnbm9yZUNhc2U7aWYobnVsbCE9PXQmJiJvYmplY3QiPT10eXBlb2YgdHx8bnVsbCE9PWUmJiJvYmplY3QiPT10eXBlb2YgZSl7aWYoaCh0KSYmaChlKSYmdSh0KT09PXUoZSkmJiEodCBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheXx8dCBpbnN0YW5jZW9mIEZsb2F0NjRBcnJheSkpcmV0dXJuIDA9PT1hKG5ldyBVaW50OEFycmF5KHQuYnVmZmVyKSxuZXcgVWludDhBcnJheShlLmJ1ZmZlcikpO2lmKGkodCkhPT1pKGUpKXJldHVybiExO3ZhciBzPShuPW58fHthY3R1YWw6W10sZXhwZWN0ZWQ6W119KS5hY3R1YWwuaW5kZXhPZih0KTtyZXR1cm4tMSE9PXMmJnM9PT1uLmV4cGVjdGVkLmluZGV4T2YoZSl8fChuLmFjdHVhbC5wdXNoKHQpLG4uZXhwZWN0ZWQucHVzaChlKSxmdW5jdGlvbih0LGUscixuKXtpZihudWxsPT10fHxudWxsPT1lKXJldHVybiExO2lmKG8uaXNQcmltaXRpdmUodCl8fG8uaXNQcmltaXRpdmUoZSkpcmV0dXJuIHQ9PT1lO2lmKHImJk9iamVjdC5nZXRQcm90b3R5cGVPZih0KSE9PU9iamVjdC5nZXRQcm90b3R5cGVPZihlKSlyZXR1cm4hMTt2YXIgYT1iKHQpLGk9YihlKTtpZihhJiYhaXx8IWEmJmkpcmV0dXJuITE7aWYoYSlyZXR1cm4gdD1sLmNhbGwodCksZT1sLmNhbGwoZSkseCh0LGUscik7dmFyIHMsYyx1PWsodCksaD1rKGUpO2lmKHUubGVuZ3RoIT09aC5sZW5ndGgpcmV0dXJuITE7Zm9yKHUuc29ydCgpLGguc29ydCgpLGM9dS5sZW5ndGgtMTtjPj0wO2MtLSlpZih1W2NdIT09aFtjXSlyZXR1cm4hMTtmb3IoYz11Lmxlbmd0aC0xO2M+PTA7Yy0tKWlmKHM9dVtjXSwheCh0W3NdLGVbc10scixuKSlyZXR1cm4hMTtyZXR1cm4hMH0odCxlLHIsbikpfXJldHVybiByP3Q9PT1lOnQ9PWV9ZnVuY3Rpb24gYih0KXtyZXR1cm4iW29iamVjdCBBcmd1bWVudHNdIj09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWZ1bmN0aW9uIF8odCxlKXtpZighdHx8IWUpcmV0dXJuITE7aWYoIltvYmplY3QgUmVnRXhwXSI9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKSlyZXR1cm4gZS50ZXN0KHQpO3RyeXtpZih0IGluc3RhbmNlb2YgZSlyZXR1cm4hMH1jYXRjaCh0KXt9cmV0dXJuIUVycm9yLmlzUHJvdG90eXBlT2YoZSkmJiEwPT09ZS5jYWxsKHt9LHQpfWZ1bmN0aW9uIHcodCxlLHIsbil7dmFyIGE7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcignImJsb2NrIiBhcmd1bWVudCBtdXN0IGJlIGEgZnVuY3Rpb24nKTsic3RyaW5nIj09dHlwZW9mIHImJihuPXIscj1udWxsKSxhPWZ1bmN0aW9uKHQpe3ZhciBlO3RyeXt0KCl9Y2F0Y2godCl7ZT10fXJldHVybiBlfShlKSxuPShyJiZyLm5hbWU/IiAoIityLm5hbWUrIikuIjoiLiIpKyhuPyIgIituOiIuIiksdCYmIWEmJm0oYSxyLCJNaXNzaW5nIGV4cGVjdGVkIGV4Y2VwdGlvbiIrbik7dmFyIGk9InN0cmluZyI9PXR5cGVvZiBuLHM9IXQmJmEmJiFyO2lmKCghdCYmby5pc0Vycm9yKGEpJiZpJiZfKGEscil8fHMpJiZtKGEsciwiR290IHVud2FudGVkIGV4Y2VwdGlvbiIrbiksdCYmYSYmciYmIV8oYSxyKXx8IXQmJmEpdGhyb3cgYX1mLkFzc2VydGlvbkVycm9yPWZ1bmN0aW9uKHQpe3ZhciBlO3RoaXMubmFtZT0iQXNzZXJ0aW9uRXJyb3IiLHRoaXMuYWN0dWFsPXQuYWN0dWFsLHRoaXMuZXhwZWN0ZWQ9dC5leHBlY3RlZCx0aGlzLm9wZXJhdG9yPXQub3BlcmF0b3IsdC5tZXNzYWdlPyh0aGlzLm1lc3NhZ2U9dC5tZXNzYWdlLHRoaXMuZ2VuZXJhdGVkTWVzc2FnZT0hMSk6KHRoaXMubWVzc2FnZT1nKHYoKGU9dGhpcykuYWN0dWFsKSwxMjgpKyIgIitlLm9wZXJhdG9yKyIgIitnKHYoZS5leHBlY3RlZCksMTI4KSx0aGlzLmdlbmVyYXRlZE1lc3NhZ2U9ITApO3ZhciByPXQuc3RhY2tTdGFydEZ1bmN0aW9ufHxtO2lmKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKUVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMscik7ZWxzZXt2YXIgbj1uZXcgRXJyb3I7aWYobi5zdGFjayl7dmFyIGE9bi5zdGFjayxpPWQociksbz1hLmluZGV4T2YoIlxuIitpKTtpZihvPj0wKXt2YXIgcz1hLmluZGV4T2YoIlxuIixvKzEpO2E9YS5zdWJzdHJpbmcocysxKX10aGlzLnN0YWNrPWF9fX0sby5pbmhlcml0cyhmLkFzc2VydGlvbkVycm9yLEVycm9yKSxmLmZhaWw9bSxmLm9rPXksZi5lcXVhbD1mdW5jdGlvbih0LGUscil7dCE9ZSYmbSh0LGUsciwiPT0iLGYuZXF1YWwpfSxmLm5vdEVxdWFsPWZ1bmN0aW9uKHQsZSxyKXt0PT1lJiZtKHQsZSxyLCIhPSIsZi5ub3RFcXVhbCl9LGYuZGVlcEVxdWFsPWZ1bmN0aW9uKHQsZSxyKXt4KHQsZSwhMSl8fG0odCxlLHIsImRlZXBFcXVhbCIsZi5kZWVwRXF1YWwpfSxmLmRlZXBTdHJpY3RFcXVhbD1mdW5jdGlvbih0LGUscil7eCh0LGUsITApfHxtKHQsZSxyLCJkZWVwU3RyaWN0RXF1YWwiLGYuZGVlcFN0cmljdEVxdWFsKX0sZi5ub3REZWVwRXF1YWw9ZnVuY3Rpb24odCxlLHIpe3godCxlLCExKSYmbSh0LGUsciwibm90RGVlcEVxdWFsIixmLm5vdERlZXBFcXVhbCl9LGYubm90RGVlcFN0cmljdEVxdWFsPWZ1bmN0aW9uIHQoZSxyLG4pe3goZSxyLCEwKSYmbShlLHIsbiwibm90RGVlcFN0cmljdEVxdWFsIix0KX0sZi5zdHJpY3RFcXVhbD1mdW5jdGlvbih0LGUscil7dCE9PWUmJm0odCxlLHIsIj09PSIsZi5zdHJpY3RFcXVhbCl9LGYubm90U3RyaWN0RXF1YWw9ZnVuY3Rpb24odCxlLHIpe3Q9PT1lJiZtKHQsZSxyLCIhPT0iLGYubm90U3RyaWN0RXF1YWwpfSxmLnRocm93cz1mdW5jdGlvbih0LGUscil7dyghMCx0LGUscil9LGYuZG9lc05vdFRocm93PWZ1bmN0aW9uKHQsZSxyKXt3KCExLHQsZSxyKX0sZi5pZkVycm9yPWZ1bmN0aW9uKHQpe2lmKHQpdGhyb3cgdH0sZi5zdHJpY3Q9bihmdW5jdGlvbiB0KGUscil7ZXx8bShlLCEwLHIsIj09Iix0KX0sZix7ZXF1YWw6Zi5zdHJpY3RFcXVhbCxkZWVwRXF1YWw6Zi5kZWVwU3RyaWN0RXF1YWwsbm90RXF1YWw6Zi5ub3RTdHJpY3RFcXVhbCxub3REZWVwRXF1YWw6Zi5ub3REZWVwU3RyaWN0RXF1YWx9KSxmLnN0cmljdC5zdHJpY3Q9Zi5zdHJpY3Q7dmFyIGs9T2JqZWN0LmtleXN8fGZ1bmN0aW9uKHQpe3ZhciBlPVtdO2Zvcih2YXIgciBpbiB0KXMuY2FsbCh0LHIpJiZlLnB1c2gocik7cmV0dXJuIGV9fSkuY2FsbCh0aGlzLCJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6e30pfSx7Im9iamVjdC1hc3NpZ24iOjQ1NiwidXRpbC8iOjczfV0sNzE6W2Z1bmN0aW9uKHQsZSxyKXsiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmNyZWF0ZT9lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt0LnN1cGVyXz1lLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pfTplLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt0LnN1cGVyXz1lO3ZhciByPWZ1bmN0aW9uKCl7fTtyLnByb3RvdHlwZT1lLnByb3RvdHlwZSx0LnByb3RvdHlwZT1uZXcgcix0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj10fX0se31dLDcyOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0JiYib2JqZWN0Ij09dHlwZW9mIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LmNvcHkmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LmZpbGwmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LnJlYWRVSW50OH19LHt9XSw3MzpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbihlLG4pe3ZhciBhPS8lW3NkaiVdL2c7ci5mb3JtYXQ9ZnVuY3Rpb24odCl7aWYoIW0odCkpe2Zvcih2YXIgZT1bXSxyPTA7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyllLnB1c2gocyhhcmd1bWVudHNbcl0pKTtyZXR1cm4gZS5qb2luKCIgIil9cj0xO2Zvcih2YXIgbj1hcmd1bWVudHMsaT1uLmxlbmd0aCxvPVN0cmluZyh0KS5yZXBsYWNlKGEsZnVuY3Rpb24odCl7aWYoIiUlIj09PXQpcmV0dXJuIiUiO2lmKHI+PWkpcmV0dXJuIHQ7c3dpdGNoKHQpe2Nhc2UiJXMiOnJldHVybiBTdHJpbmcobltyKytdKTtjYXNlIiVkIjpyZXR1cm4gTnVtYmVyKG5bcisrXSk7Y2FzZSIlaiI6dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeShuW3IrK10pfWNhdGNoKHQpe3JldHVybiJbQ2lyY3VsYXJdIn1kZWZhdWx0OnJldHVybiB0fX0pLGw9bltyXTtyPGk7bD1uWysrcl0pZyhsKXx8IWIobCk/bys9IiAiK2w6bys9IiAiK3MobCk7cmV0dXJuIG99LHIuZGVwcmVjYXRlPWZ1bmN0aW9uKHQsYSl7aWYoeShuLnByb2Nlc3MpKXJldHVybiBmdW5jdGlvbigpe3JldHVybiByLmRlcHJlY2F0ZSh0LGEpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07aWYoITA9PT1lLm5vRGVwcmVjYXRpb24pcmV0dXJuIHQ7dmFyIGk9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoIWkpe2lmKGUudGhyb3dEZXByZWNhdGlvbil0aHJvdyBuZXcgRXJyb3IoYSk7ZS50cmFjZURlcHJlY2F0aW9uP2NvbnNvbGUudHJhY2UoYSk6Y29uc29sZS5lcnJvcihhKSxpPSEwfXJldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19O3ZhciBpLG89e307ZnVuY3Rpb24gcyh0LGUpe3ZhciBuPXtzZWVuOltdLHN0eWxpemU6Y307cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+PTMmJihuLmRlcHRoPWFyZ3VtZW50c1syXSksYXJndW1lbnRzLmxlbmd0aD49NCYmKG4uY29sb3JzPWFyZ3VtZW50c1szXSksZChlKT9uLnNob3dIaWRkZW49ZTplJiZyLl9leHRlbmQobixlKSx5KG4uc2hvd0hpZGRlbikmJihuLnNob3dIaWRkZW49ITEpLHkobi5kZXB0aCkmJihuLmRlcHRoPTIpLHkobi5jb2xvcnMpJiYobi5jb2xvcnM9ITEpLHkobi5jdXN0b21JbnNwZWN0KSYmKG4uY3VzdG9tSW5zcGVjdD0hMCksbi5jb2xvcnMmJihuLnN0eWxpemU9bCksdShuLHQsbi5kZXB0aCl9ZnVuY3Rpb24gbCh0LGUpe3ZhciByPXMuc3R5bGVzW2VdO3JldHVybiByPyJceDFiWyIrcy5jb2xvcnNbcl1bMF0rIm0iK3QrIlx4MWJbIitzLmNvbG9yc1tyXVsxXSsibSI6dH1mdW5jdGlvbiBjKHQsZSl7cmV0dXJuIHR9ZnVuY3Rpb24gdSh0LGUsbil7aWYodC5jdXN0b21JbnNwZWN0JiZlJiZrKGUuaW5zcGVjdCkmJmUuaW5zcGVjdCE9PXIuaW5zcGVjdCYmKCFlLmNvbnN0cnVjdG9yfHxlLmNvbnN0cnVjdG9yLnByb3RvdHlwZSE9PWUpKXt2YXIgYT1lLmluc3BlY3Qobix0KTtyZXR1cm4gbShhKXx8KGE9dSh0LGEsbikpLGF9dmFyIGk9ZnVuY3Rpb24odCxlKXtpZih5KGUpKXJldHVybiB0LnN0eWxpemUoInVuZGVmaW5lZCIsInVuZGVmaW5lZCIpO2lmKG0oZSkpe3ZhciByPSInIitKU09OLnN0cmluZ2lmeShlKS5yZXBsYWNlKC9eInwiJC9nLCIiKS5yZXBsYWNlKC8nL2csIlxcJyIpLnJlcGxhY2UoL1xcIi9nLCciJykrIiciO3JldHVybiB0LnN0eWxpemUociwic3RyaW5nIil9aWYodihlKSlyZXR1cm4gdC5zdHlsaXplKCIiK2UsIm51bWJlciIpO2lmKGQoZSkpcmV0dXJuIHQuc3R5bGl6ZSgiIitlLCJib29sZWFuIik7aWYoZyhlKSlyZXR1cm4gdC5zdHlsaXplKCJudWxsIiwibnVsbCIpfSh0LGUpO2lmKGkpcmV0dXJuIGk7dmFyIG89T2JqZWN0LmtleXMoZSkscz1mdW5jdGlvbih0KXt2YXIgZT17fTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKHQscil7ZVt0XT0hMH0pLGV9KG8pO2lmKHQuc2hvd0hpZGRlbiYmKG89T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZSkpLHcoZSkmJihvLmluZGV4T2YoIm1lc3NhZ2UiKT49MHx8by5pbmRleE9mKCJkZXNjcmlwdGlvbiIpPj0wKSlyZXR1cm4gaChlKTtpZigwPT09by5sZW5ndGgpe2lmKGsoZSkpe3ZhciBsPWUubmFtZT8iOiAiK2UubmFtZToiIjtyZXR1cm4gdC5zdHlsaXplKCJbRnVuY3Rpb24iK2wrIl0iLCJzcGVjaWFsIil9aWYoeChlKSlyZXR1cm4gdC5zdHlsaXplKFJlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKSwicmVnZXhwIik7aWYoXyhlKSlyZXR1cm4gdC5zdHlsaXplKERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSksImRhdGUiKTtpZih3KGUpKXJldHVybiBoKGUpfXZhciBjLGI9IiIsVD0hMSxNPVsieyIsIn0iXTsocChlKSYmKFQ9ITAsTT1bIlsiLCJdIl0pLGsoZSkpJiYoYj0iIFtGdW5jdGlvbiIrKGUubmFtZT8iOiAiK2UubmFtZToiIikrIl0iKTtyZXR1cm4geChlKSYmKGI9IiAiK1JlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKSksXyhlKSYmKGI9IiAiK0RhdGUucHJvdG90eXBlLnRvVVRDU3RyaW5nLmNhbGwoZSkpLHcoZSkmJihiPSIgIitoKGUpKSwwIT09by5sZW5ndGh8fFQmJjAhPWUubGVuZ3RoP248MD94KGUpP3Quc3R5bGl6ZShSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSksInJlZ2V4cCIpOnQuc3R5bGl6ZSgiW09iamVjdF0iLCJzcGVjaWFsIik6KHQuc2Vlbi5wdXNoKGUpLGM9VD9mdW5jdGlvbih0LGUscixuLGEpe2Zvcih2YXIgaT1bXSxvPTAscz1lLmxlbmd0aDtvPHM7KytvKVMoZSxTdHJpbmcobykpP2kucHVzaChmKHQsZSxyLG4sU3RyaW5nKG8pLCEwKSk6aS5wdXNoKCIiKTtyZXR1cm4gYS5mb3JFYWNoKGZ1bmN0aW9uKGEpe2EubWF0Y2goL15cZCskLyl8fGkucHVzaChmKHQsZSxyLG4sYSwhMCkpfSksaX0odCxlLG4scyxvKTpvLm1hcChmdW5jdGlvbihyKXtyZXR1cm4gZih0LGUsbixzLHIsVCl9KSx0LnNlZW4ucG9wKCksZnVuY3Rpb24odCxlLHIpe2lmKHQucmVkdWNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIDAsZS5pbmRleE9mKCJcbiIpPj0wJiYwLHQrZS5yZXBsYWNlKC9cdTAwMWJcW1xkXGQ/bS9nLCIiKS5sZW5ndGgrMX0sMCk+NjApcmV0dXJuIHJbMF0rKCIiPT09ZT8iIjplKyJcbiAiKSsiICIrdC5qb2luKCIsXG4gICIpKyIgIityWzFdO3JldHVybiByWzBdK2UrIiAiK3Quam9pbigiLCAiKSsiICIrclsxXX0oYyxiLE0pKTpNWzBdK2IrTVsxXX1mdW5jdGlvbiBoKHQpe3JldHVybiJbIitFcnJvci5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KSsiXSJ9ZnVuY3Rpb24gZih0LGUscixuLGEsaSl7dmFyIG8scyxsO2lmKChsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxhKXx8e3ZhbHVlOmVbYV19KS5nZXQ/cz1sLnNldD90LnN0eWxpemUoIltHZXR0ZXIvU2V0dGVyXSIsInNwZWNpYWwiKTp0LnN0eWxpemUoIltHZXR0ZXJdIiwic3BlY2lhbCIpOmwuc2V0JiYocz10LnN0eWxpemUoIltTZXR0ZXJdIiwic3BlY2lhbCIpKSxTKG4sYSl8fChvPSJbIithKyJdIiksc3x8KHQuc2Vlbi5pbmRleE9mKGwudmFsdWUpPDA/KHM9ZyhyKT91KHQsbC52YWx1ZSxudWxsKTp1KHQsbC52YWx1ZSxyLTEpKS5pbmRleE9mKCJcbiIpPi0xJiYocz1pP3Muc3BsaXQoIlxuIikubWFwKGZ1bmN0aW9uKHQpe3JldHVybiIgICIrdH0pLmpvaW4oIlxuIikuc3Vic3RyKDIpOiJcbiIrcy5zcGxpdCgiXG4iKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIiAgICIrdH0pLmpvaW4oIlxuIikpOnM9dC5zdHlsaXplKCJbQ2lyY3VsYXJdIiwic3BlY2lhbCIpKSx5KG8pKXtpZihpJiZhLm1hdGNoKC9eXGQrJC8pKXJldHVybiBzOyhvPUpTT04uc3RyaW5naWZ5KCIiK2EpKS5tYXRjaCgvXiIoW2EtekEtWl9dW2EtekEtWl8wLTldKikiJC8pPyhvPW8uc3Vic3RyKDEsby5sZW5ndGgtMiksbz10LnN0eWxpemUobywibmFtZSIpKToobz1vLnJlcGxhY2UoLycvZywiXFwnIikucmVwbGFjZSgvXFwiL2csJyInKS5yZXBsYWNlKC8oXiJ8IiQpL2csIiciKSxvPXQuc3R5bGl6ZShvLCJzdHJpbmciKSl9cmV0dXJuIG8rIjogIitzfWZ1bmN0aW9uIHAodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCl9ZnVuY3Rpb24gZCh0KXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiB0fWZ1bmN0aW9uIGcodCl7cmV0dXJuIG51bGw9PT10fWZ1bmN0aW9uIHYodCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0fWZ1bmN0aW9uIG0odCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0fWZ1bmN0aW9uIHkodCl7cmV0dXJuIHZvaWQgMD09PXR9ZnVuY3Rpb24geCh0KXtyZXR1cm4gYih0KSYmIltvYmplY3QgUmVnRXhwXSI9PT1UKHQpfWZ1bmN0aW9uIGIodCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT09dH1mdW5jdGlvbiBfKHQpe3JldHVybiBiKHQpJiYiW29iamVjdCBEYXRlXSI9PT1UKHQpfWZ1bmN0aW9uIHcodCl7cmV0dXJuIGIodCkmJigiW29iamVjdCBFcnJvcl0iPT09VCh0KXx8dCBpbnN0YW5jZW9mIEVycm9yKX1mdW5jdGlvbiBrKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0fWZ1bmN0aW9uIFQodCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1mdW5jdGlvbiBNKHQpe3JldHVybiB0PDEwPyIwIit0LnRvU3RyaW5nKDEwKTp0LnRvU3RyaW5nKDEwKX1yLmRlYnVnbG9nPWZ1bmN0aW9uKHQpe2lmKHkoaSkmJihpPWUuZW52Lk5PREVfREVCVUd8fCIiKSx0PXQudG9VcHBlckNhc2UoKSwhb1t0XSlpZihuZXcgUmVnRXhwKCJcXGIiK3QrIlxcYiIsImkiKS50ZXN0KGkpKXt2YXIgbj1lLnBpZDtvW3RdPWZ1bmN0aW9uKCl7dmFyIGU9ci5mb3JtYXQuYXBwbHkocixhcmd1bWVudHMpO2NvbnNvbGUuZXJyb3IoIiVzICVkOiAlcyIsdCxuLGUpfX1lbHNlIG9bdF09ZnVuY3Rpb24oKXt9O3JldHVybiBvW3RdfSxyLmluc3BlY3Q9cyxzLmNvbG9ycz17Ym9sZDpbMSwyMl0saXRhbGljOlszLDIzXSx1bmRlcmxpbmU6WzQsMjRdLGludmVyc2U6WzcsMjddLHdoaXRlOlszNywzOV0sZ3JleTpbOTAsMzldLGJsYWNrOlszMCwzOV0sYmx1ZTpbMzQsMzldLGN5YW46WzM2LDM5XSxncmVlbjpbMzIsMzldLG1hZ2VudGE6WzM1LDM5XSxyZWQ6WzMxLDM5XSx5ZWxsb3c6WzMzLDM5XX0scy5zdHlsZXM9e3NwZWNpYWw6ImN5YW4iLG51bWJlcjoieWVsbG93Iixib29sZWFuOiJ5ZWxsb3ciLHVuZGVmaW5lZDoiZ3JleSIsbnVsbDoiYm9sZCIsc3RyaW5nOiJncmVlbiIsZGF0ZToibWFnZW50YSIscmVnZXhwOiJyZWQifSxyLmlzQXJyYXk9cCxyLmlzQm9vbGVhbj1kLHIuaXNOdWxsPWcsci5pc051bGxPclVuZGVmaW5lZD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dH0sci5pc051bWJlcj12LHIuaXNTdHJpbmc9bSxyLmlzU3ltYm9sPWZ1bmN0aW9uKHQpe3JldHVybiJzeW1ib2wiPT10eXBlb2YgdH0sci5pc1VuZGVmaW5lZD15LHIuaXNSZWdFeHA9eCxyLmlzT2JqZWN0PWIsci5pc0RhdGU9XyxyLmlzRXJyb3I9dyxyLmlzRnVuY3Rpb249ayxyLmlzUHJpbWl0aXZlPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT09dHx8ImJvb2xlYW4iPT10eXBlb2YgdHx8Im51bWJlciI9PXR5cGVvZiB0fHwic3RyaW5nIj09dHlwZW9mIHR8fCJzeW1ib2wiPT10eXBlb2YgdHx8InVuZGVmaW5lZCI9PXR5cGVvZiB0fSxyLmlzQnVmZmVyPXQoIi4vc3VwcG9ydC9pc0J1ZmZlciIpO3ZhciBBPVsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl07ZnVuY3Rpb24gUyh0LGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxlKX1yLmxvZz1mdW5jdGlvbigpe3ZhciB0LGU7Y29uc29sZS5sb2coIiVzIC0gJXMiLCh0PW5ldyBEYXRlLGU9W00odC5nZXRIb3VycygpKSxNKHQuZ2V0TWludXRlcygpKSxNKHQuZ2V0U2Vjb25kcygpKV0uam9pbigiOiIpLFt0LmdldERhdGUoKSxBW3QuZ2V0TW9udGgoKV0sZV0uam9pbigiICIpKSxyLmZvcm1hdC5hcHBseShyLGFyZ3VtZW50cykpfSxyLmluaGVyaXRzPXQoImluaGVyaXRzIiksci5fZXh0ZW5kPWZ1bmN0aW9uKHQsZSl7aWYoIWV8fCFiKGUpKXJldHVybiB0O2Zvcih2YXIgcj1PYmplY3Qua2V5cyhlKSxuPXIubGVuZ3RoO24tLTspdFtyW25dXT1lW3Jbbl1dO3JldHVybiB0fX0pLmNhbGwodGhpcyx0KCJfcHJvY2VzcyIpLCJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6e30pfSx7Ii4vc3VwcG9ydC9pc0J1ZmZlciI6NzIsX3Byb2Nlc3M6NDg0LGluaGVyaXRzOjcxfV0sNzQ6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGF0b2IodCl9fSx7fV0sNzU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPWUubGVuZ3RoLGk9bmV3IEFycmF5KHIrMSksbz0wO288cjsrK28pe2Zvcih2YXIgcz1uZXcgQXJyYXkocisxKSxsPTA7bDw9cjsrK2wpc1tsXT10W2xdW29dO2lbb109c31pW3JdPW5ldyBBcnJheShyKzEpO2Zvcih2YXIgbz0wO288PXI7KytvKWlbcl1bb109MTtmb3IodmFyIGM9bmV3IEFycmF5KHIrMSksbz0wO288cjsrK28pY1tvXT1lW29dO2Nbcl09MTt2YXIgdT1uKGksYyksaD1hKHVbcisxXSk7MD09PWgmJihoPTEpO2Zvcih2YXIgZj1uZXcgQXJyYXkocisxKSxvPTA7bzw9cjsrK28pZltvXT1hKHVbb10pL2g7cmV0dXJuIGZ9O3ZhciBuPXQoInJvYnVzdC1saW5lYXItc29sdmUiKTtmdW5jdGlvbiBhKHQpe2Zvcih2YXIgZT0wLHI9MDtyPHQubGVuZ3RoOysrcillKz10W3JdO3JldHVybiBlfX0seyJyb2J1c3QtbGluZWFyLXNvbHZlIjo1MDh9XSw3NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmJ5dGVMZW5ndGg9ZnVuY3Rpb24odCl7dmFyIGU9Yyh0KSxyPWVbMF0sbj1lWzFdO3JldHVybiAzKihyK24pLzQtbn0sci50b0J5dGVBcnJheT1mdW5jdGlvbih0KXt2YXIgZSxyLG49Yyh0KSxvPW5bMF0scz1uWzFdLGw9bmV3IGkoZnVuY3Rpb24odCxlLHIpe3JldHVybiAzKihlK3IpLzQtcn0oMCxvLHMpKSx1PTAsaD1zPjA/by00Om87Zm9yKHI9MDtyPGg7cis9NCllPWFbdC5jaGFyQ29kZUF0KHIpXTw8MTh8YVt0LmNoYXJDb2RlQXQocisxKV08PDEyfGFbdC5jaGFyQ29kZUF0KHIrMildPDw2fGFbdC5jaGFyQ29kZUF0KHIrMyldLGxbdSsrXT1lPj4xNiYyNTUsbFt1KytdPWU+PjgmMjU1LGxbdSsrXT0yNTUmZTsyPT09cyYmKGU9YVt0LmNoYXJDb2RlQXQocildPDwyfGFbdC5jaGFyQ29kZUF0KHIrMSldPj40LGxbdSsrXT0yNTUmZSk7MT09PXMmJihlPWFbdC5jaGFyQ29kZUF0KHIpXTw8MTB8YVt0LmNoYXJDb2RlQXQocisxKV08PDR8YVt0LmNoYXJDb2RlQXQocisyKV0+PjIsbFt1KytdPWU+PjgmMjU1LGxbdSsrXT0yNTUmZSk7cmV0dXJuIGx9LHIuZnJvbUJ5dGVBcnJheT1mdW5jdGlvbih0KXtmb3IodmFyIGUscj10Lmxlbmd0aCxhPXIlMyxpPVtdLG89MCxzPXItYTtvPHM7bys9MTYzODMpaS5wdXNoKHUodCxvLG8rMTYzODM+cz9zOm8rMTYzODMpKTsxPT09YT8oZT10W3ItMV0saS5wdXNoKG5bZT4+Ml0rbltlPDw0JjYzXSsiPT0iKSk6Mj09PWEmJihlPSh0W3ItMl08PDgpK3Rbci0xXSxpLnB1c2gobltlPj4xMF0rbltlPj40JjYzXStuW2U8PDImNjNdKyI9IikpO3JldHVybiBpLmpvaW4oIiIpfTtmb3IodmFyIG49W10sYT1bXSxpPSJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheT9VaW50OEFycmF5OkFycmF5LG89IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLHM9MCxsPW8ubGVuZ3RoO3M8bDsrK3MpbltzXT1vW3NdLGFbby5jaGFyQ29kZUF0KHMpXT1zO2Z1bmN0aW9uIGModCl7dmFyIGU9dC5sZW5ndGg7aWYoZSU0PjApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHN0cmluZy4gTGVuZ3RoIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA0Iik7dmFyIHI9dC5pbmRleE9mKCI9Iik7cmV0dXJuLTE9PT1yJiYocj1lKSxbcixyPT09ZT8wOjQtciU0XX1mdW5jdGlvbiB1KHQsZSxyKXtmb3IodmFyIGEsaSxvPVtdLHM9ZTtzPHI7cys9MylhPSh0W3NdPDwxNiYxNjcxMTY4MCkrKHRbcysxXTw8OCY2NTI4MCkrKDI1NSZ0W3MrMl0pLG8ucHVzaChuWyhpPWEpPj4xOCY2M10rbltpPj4xMiY2M10rbltpPj42JjYzXStuWzYzJmldKTtyZXR1cm4gby5qb2luKCIiKX1hWyItIi5jaGFyQ29kZUF0KDApXT02MixhWyJfIi5jaGFyQ29kZUF0KDApXT02M30se31dLDc3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vbGliL3JhdGlvbmFsaXplIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4odFswXS5tdWwoZVsxXSkuYWRkKGVbMF0ubXVsKHRbMV0pKSx0WzFdLm11bChlWzFdKSl9fSx7Ii4vbGliL3JhdGlvbmFsaXplIjo4N31dLDc4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiB0WzBdLm11bChlWzFdKS5jbXAoZVswXS5tdWwodFsxXSkpfX0se31dLDc5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vbGliL3JhdGlvbmFsaXplIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4odFswXS5tdWwoZVsxXSksdFsxXS5tdWwoZVswXSkpfX0seyIuL2xpYi9yYXRpb25hbGl6ZSI6ODd9XSw4MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2lzLXJhdCIpLGE9dCgiLi9saWIvaXMtYm4iKSxpPXQoIi4vbGliL251bS10by1ibiIpLG89dCgiLi9saWIvc3RyLXRvLWJuIikscz10KCIuL2xpYi9yYXRpb25hbGl6ZSIpLGw9dCgiLi9kaXYiKTtlLmV4cG9ydHM9ZnVuY3Rpb24gdChlLHIpe2lmKG4oZSkpcmV0dXJuIHI/bChlLHQocikpOltlWzBdLmNsb25lKCksZVsxXS5jbG9uZSgpXTt2YXIgYz0wO3ZhciB1LGg7aWYoYShlKSl1PWUuY2xvbmUoKTtlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgZSl1PW8oZSk7ZWxzZXtpZigwPT09ZSlyZXR1cm5baSgwKSxpKDEpXTtpZihlPT09TWF0aC5mbG9vcihlKSl1PWkoZSk7ZWxzZXtmb3IoO2UhPT1NYXRoLmZsb29yKGUpOyllKj1NYXRoLnBvdygyLDI1NiksYy09MjU2O3U9aShlKX19aWYobihyKSl1Lm11bChyWzFdKSxoPXJbMF0uY2xvbmUoKTtlbHNlIGlmKGEocikpaD1yLmNsb25lKCk7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIHIpaD1vKHIpO2Vsc2UgaWYocilpZihyPT09TWF0aC5mbG9vcihyKSloPWkocik7ZWxzZXtmb3IoO3IhPT1NYXRoLmZsb29yKHIpOylyKj1NYXRoLnBvdygyLDI1NiksYys9MjU2O2g9aShyKX1lbHNlIGg9aSgxKTtjPjA/dT11LnVzaGxuKGMpOmM8MCYmKGg9aC51c2hsbigtYykpO3JldHVybiBzKHUsaCl9fSx7Ii4vZGl2Ijo3OSwiLi9pcy1yYXQiOjgxLCIuL2xpYi9pcy1ibiI6ODUsIi4vbGliL251bS10by1ibiI6ODYsIi4vbGliL3JhdGlvbmFsaXplIjo4NywiLi9saWIvc3RyLXRvLWJuIjo4OH1dLDgxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vbGliL2lzLWJuIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpJiYyPT09dC5sZW5ndGgmJm4odFswXSkmJm4odFsxXSl9fSx7Ii4vbGliL2lzLWJuIjo4NX1dLDgyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImJuLmpzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0LmNtcChuZXcgbigwKSl9fSx7ImJuLmpzIjo5Nn1dLDgzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vYm4tc2lnbiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10Lmxlbmd0aCxyPXQud29yZHMsYT0wO2lmKDE9PT1lKWE9clswXTtlbHNlIGlmKDI9PT1lKWE9clswXSs2NzEwODg2NCpyWzFdO2Vsc2UgZm9yKHZhciBpPTA7aTxlO2krKyl7dmFyIG89cltpXTthKz1vKk1hdGgucG93KDY3MTA4ODY0LGkpfXJldHVybiBuKHQpKmF9fSx7Ii4vYm4tc2lnbiI6ODJ9XSw4NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkb3VibGUtYml0cyIpLGE9dCgiYml0LXR3aWRkbGUiKS5jb3VudFRyYWlsaW5nWmVyb3M7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPWEobi5sbyh0KSk7aWYoZTwzMilyZXR1cm4gZTt2YXIgcj1hKG4uaGkodCkpO2lmKHI+MjApcmV0dXJuIDUyO3JldHVybiByKzMyfX0seyJiaXQtdHdpZGRsZSI6OTQsImRvdWJsZS1iaXRzIjoxNjl9XSw4NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt0KCJibi5qcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gdCYmIm9iamVjdCI9PXR5cGVvZiB0JiZCb29sZWFuKHQud29yZHMpfX0seyJibi5qcyI6OTZ9XSw4NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJibi5qcyIpLGE9dCgiZG91YmxlLWJpdHMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9YS5leHBvbmVudCh0KTtyZXR1cm4gZTw1Mj9uZXcgbih0KTpuZXcgbih0Kk1hdGgucG93KDIsNTItZSkpLnVzaGxuKGUtNTIpfX0seyJibi5qcyI6OTYsImRvdWJsZS1iaXRzIjoxNjl9XSw4NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL251bS10by1ibiIpLGE9dCgiLi9ibi1zaWduIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9YSh0KSxpPWEoZSk7aWYoMD09PXIpcmV0dXJuW24oMCksbigxKV07aWYoMD09PWkpcmV0dXJuW24oMCksbigwKV07aTwwJiYodD10Lm5lZygpLGU9ZS5uZWcoKSk7dmFyIG89dC5nY2QoZSk7aWYoby5jbXBuKDEpKXJldHVyblt0LmRpdihvKSxlLmRpdihvKV07cmV0dXJuW3QsZV19fSx7Ii4vYm4tc2lnbiI6ODIsIi4vbnVtLXRvLWJuIjo4Nn1dLDg4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImJuLmpzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgbih0KX19LHsiYm4uanMiOjk2fV0sODk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9saWIvcmF0aW9uYWxpemUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbih0WzBdLm11bChlWzBdKSx0WzFdLm11bChlWzFdKSl9fSx7Ii4vbGliL3JhdGlvbmFsaXplIjo4N31dLDkwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vbGliL2JuLXNpZ24iKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG4odFswXSkqbih0WzFdKX19LHsiLi9saWIvYm4tc2lnbiI6ODJ9XSw5MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2xpYi9yYXRpb25hbGl6ZSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBuKHRbMF0ubXVsKGVbMV0pLnN1Yih0WzFdLm11bChlWzBdKSksdFsxXS5tdWwoZVsxXSkpfX0seyIuL2xpYi9yYXRpb25hbGl6ZSI6ODd9XSw5MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2xpYi9ibi10by1udW0iKSxhPXQoIi4vbGliL2N0eiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10WzBdLHI9dFsxXTtpZigwPT09ZS5jbXBuKDApKXJldHVybiAwO3ZhciBpPWUuYWJzKCkuZGl2bW9kKHIuYWJzKCkpLG89aS5kaXYscz1uKG8pLGw9aS5tb2QsYz1lLm5lZ2F0aXZlIT09ci5uZWdhdGl2ZT8tMToxO2lmKDA9PT1sLmNtcG4oMCkpcmV0dXJuIGMqcztpZihzKXt2YXIgdT1hKHMpKzQsaD1uKGwudXNobG4odSkuZGl2Um91bmQocikpO3JldHVybiBjKihzK2gqTWF0aC5wb3coMiwtdSkpfXZhciBmPXIuYml0TGVuZ3RoKCktbC5iaXRMZW5ndGgoKSs1MyxoPW4obC51c2hsbihmKS5kaXZSb3VuZChyKSk7cmV0dXJuIGY8MTAyMz9jKmgqTWF0aC5wb3coMiwtZik6KGgqPU1hdGgucG93KDIsLTEwMjMpLGMqaCpNYXRoLnBvdygyLDEwMjMtZikpfX0seyIuL2xpYi9ibi10by1udW0iOjgzLCIuL2xpYi9jdHoiOjg0fV0sOTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuLGEsaSl7dmFyIG89WyJmdW5jdGlvbiAiLHQsIihhLGwsaCwiLG4uam9pbigiLCIpLCIpeyIsaT8iIjoidmFyIGk9IixyPyJsLTEiOiJoKzEiLCI7d2hpbGUobDw9aCl7dmFyIG09KGwraCk+Pj4xLHg9YSIsYT8iLmdldChtKSI6IlttXSJdO3JldHVybiBpP2UuaW5kZXhPZigiYyIpPDA/by5wdXNoKCI7aWYoeD09PXkpe3JldHVybiBtfWVsc2UgaWYoeDw9eSl7Iik6by5wdXNoKCI7dmFyIHA9Yyh4LHkpO2lmKHA9PT0wKXtyZXR1cm4gbX1lbHNlIGlmKHA8PTApeyIpOm8ucHVzaCgiO2lmKCIsZSwiKXtpPW07Iikscj9vLnB1c2goImw9bSsxfWVsc2V7aD1tLTF9Iik6by5wdXNoKCJoPW0tMX1lbHNle2w9bSsxfSIpLG8ucHVzaCgifSIpLGk/by5wdXNoKCJyZXR1cm4gLTF9OyIpOm8ucHVzaCgicmV0dXJuIGl9OyIpLG8uam9pbigiIil9ZnVuY3Rpb24gYSh0LGUscixhKXtyZXR1cm4gbmV3IEZ1bmN0aW9uKFtuKCJBIiwieCIrdCsieSIsZSxbInkiXSwhMSxhKSxuKCJCIiwieCIrdCsieSIsZSxbInkiXSwhMCxhKSxuKCJQIiwiYyh4LHkpIit0KyIwIixlLFsieSIsImMiXSwhMSxhKSxuKCJRIiwiYyh4LHkpIit0KyIwIixlLFsieSIsImMiXSwhMCxhKSwiZnVuY3Rpb24gZGlzcGF0Y2hCc2VhcmNoIixyLCIoYSx5LGMsbCxoKXtpZihhLnNoYXBlKXtpZih0eXBlb2YoYyk9PT0nZnVuY3Rpb24nKXtyZXR1cm4gUShhLChsPT09dW5kZWZpbmVkKT8wOmx8MCwoaD09PXVuZGVmaW5lZCk/YS5zaGFwZVswXS0xOmh8MCx5LGMpfWVsc2V7cmV0dXJuIEIoYSwoYz09PXVuZGVmaW5lZCk/MDpjfDAsKGw9PT11bmRlZmluZWQpP2Euc2hhcGVbMF0tMTpsfDAseSl9fWVsc2V7aWYodHlwZW9mKGMpPT09J2Z1bmN0aW9uJyl7cmV0dXJuIFAoYSwobD09PXVuZGVmaW5lZCk/MDpsfDAsKGg9PT11bmRlZmluZWQpP2EubGVuZ3RoLTE6aHwwLHksYyl9ZWxzZXtyZXR1cm4gQShhLChjPT09dW5kZWZpbmVkKT8wOmN8MCwobD09PXVuZGVmaW5lZCk/YS5sZW5ndGgtMTpsfDAseSl9fX1yZXR1cm4gZGlzcGF0Y2hCc2VhcmNoIixyXS5qb2luKCIiKSkoKX1lLmV4cG9ydHM9e2dlOmEoIj49IiwhMSwiR0UiKSxndDphKCI+IiwhMSwiR1QiKSxsdDphKCI8IiwhMCwiTFQiKSxsZTphKCI8PSIsITAsIkxFIiksZXE6YSgiLSIsITAsIkVRIiwhMCl9fSx7fV0sOTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXt2YXIgZT0zMjtyZXR1cm4odCY9LXQpJiZlLS0sNjU1MzUmdCYmKGUtPTE2KSwxNjcxMTkzNSZ0JiYoZS09OCksMjUyNjQ1MTM1JnQmJihlLT00KSw4NTg5OTM0NTkmdCYmKGUtPTIpLDE0MzE2NTU3NjUmdCYmKGUtPTEpLGV9ci5JTlRfQklUUz0zMixyLklOVF9NQVg9MjE0NzQ4MzY0NyxyLklOVF9NSU49LTE8PDMxLHIuc2lnbj1mdW5jdGlvbih0KXtyZXR1cm4odD4wKS0odDwwKX0sci5hYnM9ZnVuY3Rpb24odCl7dmFyIGU9dD4+MzE7cmV0dXJuKHReZSktZX0sci5taW49ZnVuY3Rpb24odCxlKXtyZXR1cm4gZV4odF5lKSYtKHQ8ZSl9LHIubWF4PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHReKHReZSkmLSh0PGUpfSxyLmlzUG93Mj1mdW5jdGlvbih0KXtyZXR1cm4hKHQmdC0xfHwhdCl9LHIubG9nMj1mdW5jdGlvbih0KXt2YXIgZSxyO3JldHVybiBlPSh0PjY1NTM1KTw8NCxlfD1yPSgodD4+Pj1lKT4yNTUpPDwzLGV8PXI9KCh0Pj4+PXIpPjE1KTw8MiwoZXw9cj0oKHQ+Pj49cik+Myk8PDEpfCh0Pj4+PXIpPj4xfSxyLmxvZzEwPWZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xZTk/OTp0Pj0xZTg/ODp0Pj0xZTc/Nzp0Pj0xZTY/Njp0Pj0xZTU/NTp0Pj0xZTQ/NDp0Pj0xZTM/Mzp0Pj0xMDA/Mjp0Pj0xMD8xOjB9LHIucG9wQ291bnQ9ZnVuY3Rpb24odCl7cmV0dXJuIDE2ODQzMDA5KigodD0oODU4OTkzNDU5Jih0LT10Pj4+MSYxNDMxNjU1NzY1KSkrKHQ+Pj4yJjg1ODk5MzQ1OSkpKyh0Pj4+NCkmMjUyNjQ1MTM1KT4+PjI0fSxyLmNvdW50VHJhaWxpbmdaZXJvcz1uLHIubmV4dFBvdzI9ZnVuY3Rpb24odCl7cmV0dXJuIHQrPTA9PT10LC0tdCx0fD10Pj4+MSx0fD10Pj4+Mix0fD10Pj4+NCx0fD10Pj4+OCwodHw9dD4+PjE2KSsxfSxyLnByZXZQb3cyPWZ1bmN0aW9uKHQpe3JldHVybiB0fD10Pj4+MSx0fD10Pj4+Mix0fD10Pj4+NCx0fD10Pj4+OCwodHw9dD4+PjE2KS0odD4+PjEpfSxyLnBhcml0eT1mdW5jdGlvbih0KXtyZXR1cm4gdF49dD4+PjE2LHRePXQ+Pj44LHRePXQ+Pj40LDI3MDMwPj4+KHQmPTE1KSYxfTt2YXIgYT1uZXcgQXJyYXkoMjU2KTshZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTwyNTY7KytlKXt2YXIgcj1lLG49ZSxhPTc7Zm9yKHI+Pj49MTtyO3I+Pj49MSluPDw9MSxufD0xJnIsLS1hO3RbZV09bjw8YSYyNTV9fShhKSxyLnJldmVyc2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFbMjU1JnRdPDwyNHxhW3Q+Pj44JjI1NV08PDE2fGFbdD4+PjE2JjI1NV08PDh8YVt0Pj4+MjQmMjU1XX0sci5pbnRlcmxlYXZlMj1mdW5jdGlvbih0LGUpe3JldHVybih0PTE0MzE2NTU3NjUmKCh0PTg1ODk5MzQ1OSYoKHQ9MjUyNjQ1MTM1JigodD0xNjcxMTkzNSYoKHQmPTY1NTM1KXx0PDw4KSl8dDw8NCkpfHQ8PDIpKXx0PDwxKSl8KGU9MTQzMTY1NTc2NSYoKGU9ODU4OTkzNDU5JigoZT0yNTI2NDUxMzUmKChlPTE2NzExOTM1JigoZSY9NjU1MzUpfGU8PDgpKXxlPDw0KSl8ZTw8MikpfGU8PDEpKTw8MX0sci5kZWludGVybGVhdmUyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuKHQ9NjU1MzUmKCh0PTE2NzExOTM1JigodD0yNTI2NDUxMzUmKCh0PTg1ODk5MzQ1OSYoKHQ9dD4+PmUmMTQzMTY1NTc2NSl8dD4+PjEpKXx0Pj4+MikpfHQ+Pj40KSl8dD4+PjE2KSk8PDE2Pj4xNn0sci5pbnRlcmxlYXZlMz1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9MTIyNzEzMzUxMyYoKHQ9MzI3MjM1NjAzNSYoKHQ9MjUxNzE5Njk1JigodD00Mjc4MTkwMzM1JigodCY9MTAyMyl8dDw8MTYpKXx0PDw4KSl8dDw8NCkpfHQ8PDIpLCh0fD0oZT0xMjI3MTMzNTEzJigoZT0zMjcyMzU2MDM1JigoZT0yNTE3MTk2OTUmKChlPTQyNzgxOTAzMzUmKChlJj0xMDIzKXxlPDwxNikpfGU8PDgpKXxlPDw0KSl8ZTw8MikpPDwxKXwocj0xMjI3MTMzNTEzJigocj0zMjcyMzU2MDM1Jigocj0yNTE3MTk2OTUmKChyPTQyNzgxOTAzMzUmKChyJj0xMDIzKXxyPDwxNikpfHI8PDgpKXxyPDw0KSl8cjw8MikpPDwyfSxyLmRlaW50ZXJsZWF2ZTM9ZnVuY3Rpb24odCxlKXtyZXR1cm4odD0xMDIzJigodD00Mjc4MTkwMzM1JigodD0yNTE3MTk2OTUmKCh0PTMyNzIzNTYwMzUmKCh0PXQ+Pj5lJjEyMjcxMzM1MTMpfHQ+Pj4yKSl8dD4+PjQpKXx0Pj4+OCkpfHQ+Pj4xNikpPDwyMj4+MjJ9LHIubmV4dENvbWJpbmF0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPXR8dC0xO3JldHVybiBlKzF8KH5lJi1+ZSktMT4+Pm4odCkrMX19LHt9XSw5NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJjbGFtcCIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2V8fChlPXt9KTt2YXIgcixvLHMsbCxjLHUsaCxmLHAsZCxnLHY9bnVsbD09ZS5jdXRvZmY/LjI1OmUuY3V0b2ZmLG09bnVsbD09ZS5yYWRpdXM/ODplLnJhZGl1cyx5PWUuY2hhbm5lbHx8MDtpZihBcnJheUJ1ZmZlci5pc1ZpZXcodCl8fEFycmF5LmlzQXJyYXkodCkpe2lmKCFlLndpZHRofHwhZS5oZWlnaHQpdGhyb3cgRXJyb3IoIkZvciByYXcgZGF0YSB3aWR0aCBhbmQgaGVpZ2h0IHNob3VsZCBiZSBwcm92aWRlZCBieSBvcHRpb25zIik7cj1lLndpZHRoLG89ZS5oZWlnaHQsbD10LHU9ZS5zdHJpZGU/ZS5zdHJpZGU6TWF0aC5mbG9vcih0Lmxlbmd0aC9yL28pfWVsc2Ugd2luZG93LkhUTUxDYW52YXNFbGVtZW50JiZ0IGluc3RhbmNlb2Ygd2luZG93LkhUTUxDYW52YXNFbGVtZW50PyhoPShmPXQpLmdldENvbnRleHQoIjJkIikscj1mLndpZHRoLG89Zi5oZWlnaHQscD1oLmdldEltYWdlRGF0YSgwLDAscixvKSxsPXAuZGF0YSx1PTQpOndpbmRvdy5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQmJnQgaW5zdGFuY2VvZiB3aW5kb3cuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPyhmPXQuY2FudmFzLGg9dCxyPWYud2lkdGgsbz1mLmhlaWdodCxwPWguZ2V0SW1hZ2VEYXRhKDAsMCxyLG8pLGw9cC5kYXRhLHU9NCk6d2luZG93LkltYWdlRGF0YSYmdCBpbnN0YW5jZW9mIHdpbmRvdy5JbWFnZURhdGEmJihwPXQscj10LndpZHRoLG89dC5oZWlnaHQsbD1wLmRhdGEsdT00KTtpZihzPU1hdGgubWF4KHIsbyksd2luZG93LlVpbnQ4Q2xhbXBlZEFycmF5JiZsIGluc3RhbmNlb2Ygd2luZG93LlVpbnQ4Q2xhbXBlZEFycmF5fHx3aW5kb3cuVWludDhBcnJheSYmbCBpbnN0YW5jZW9mIHdpbmRvdy5VaW50OEFycmF5KWZvcihjPWwsbD1BcnJheShyKm8pLGQ9MCxnPWMubGVuZ3RoO2Q8ZztkKyspbFtkXT1jW2QqdSt5XS8yNTU7ZWxzZSBpZigxIT09dSl0aHJvdyBFcnJvcigiUmF3IGRhdGEgY2FuIGhhdmUgb25seSAxIHZhbHVlIHBlciBwaXhlbCIpO3ZhciB4PUFycmF5KHIqbyksYj1BcnJheShyKm8pLF89QXJyYXkocyksdz1BcnJheShzKSxrPUFycmF5KHMrMSksVD1BcnJheShzKTtmb3IoZD0wLGc9cipvO2Q8ZztkKyspe3ZhciBNPWxbZF07eFtkXT0xPT09TT8wOjA9PT1NP2E6TWF0aC5wb3coTWF0aC5tYXgoMCwuNS1NKSwyKSxiW2RdPTE9PT1NP2E6MD09PU0/MDpNYXRoLnBvdyhNYXRoLm1heCgwLE0tLjUpLDIpfWkoeCxyLG8sXyx3LFQsayksaShiLHIsbyxfLHcsVCxrKTt2YXIgQT13aW5kb3cuRmxvYXQzMkFycmF5P25ldyBGbG9hdDMyQXJyYXkocipvKTpuZXcgQXJyYXkocipvKTtmb3IoZD0wLGc9cipvO2Q8ZztkKyspQVtkXT1uKDEtKCh4W2RdLWJbZF0pL20rdiksMCwxKTtyZXR1cm4gQX07dmFyIGE9MWUyMDtmdW5jdGlvbiBpKHQsZSxyLG4sYSxpLHMpe2Zvcih2YXIgbD0wO2w8ZTtsKyspe2Zvcih2YXIgYz0wO2M8cjtjKyspbltjXT10W2MqZStsXTtmb3IobyhuLGEsaSxzLHIpLGM9MDtjPHI7YysrKXRbYyplK2xdPWFbY119Zm9yKGM9MDtjPHI7YysrKXtmb3IobD0wO2w8ZTtsKyspbltsXT10W2MqZStsXTtmb3IobyhuLGEsaSxzLGUpLGw9MDtsPGU7bCsrKXRbYyplK2xdPU1hdGguc3FydChhW2xdKX19ZnVuY3Rpb24gbyh0LGUscixuLGkpe3JbMF09MCxuWzBdPS1hLG5bMV09K2E7Zm9yKHZhciBvPTEscz0wO288aTtvKyspe2Zvcih2YXIgbD0odFtvXStvKm8tKHRbcltzXV0rcltzXSpyW3NdKSkvKDIqby0yKnJbc10pO2w8PW5bc107KXMtLSxsPSh0W29dK28qby0odFtyW3NdXStyW3NdKnJbc10pKS8oMipvLTIqcltzXSk7clsrK3NdPW8sbltzXT1sLG5bcysxXT0rYX1mb3Iobz0wLHM9MDtvPGk7bysrKXtmb3IoO25bcysxXTxvOylzKys7ZVtvXT0oby1yW3NdKSooby1yW3NdKSt0W3Jbc11dfX19LHtjbGFtcDoxMTd9XSw5NjpbZnVuY3Rpb24odCxlLHIpeyFmdW5jdGlvbihlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKGV8fCJBc3NlcnRpb24gZmFpbGVkIil9ZnVuY3Rpb24gYSh0LGUpe3Quc3VwZXJfPWU7dmFyIHI9ZnVuY3Rpb24oKXt9O3IucHJvdG90eXBlPWUucHJvdG90eXBlLHQucHJvdG90eXBlPW5ldyByLHQucHJvdG90eXBlLmNvbnN0cnVjdG9yPXR9ZnVuY3Rpb24gaSh0LGUscil7aWYoaS5pc0JOKHQpKXJldHVybiB0O3RoaXMubmVnYXRpdmU9MCx0aGlzLndvcmRzPW51bGwsdGhpcy5sZW5ndGg9MCx0aGlzLnJlZD1udWxsLG51bGwhPT10JiYoImxlIiE9PWUmJiJiZSIhPT1lfHwocj1lLGU9MTApLHRoaXMuX2luaXQodHx8MCxlfHwxMCxyfHwiYmUiKSl9dmFyIG87Im9iamVjdCI9PXR5cGVvZiBlP2UuZXhwb3J0cz1pOnIuQk49aSxpLkJOPWksaS53b3JkU2l6ZT0yNjt0cnl7bz10KCJidWZmZXIiKS5CdWZmZXJ9Y2F0Y2godCl7fWZ1bmN0aW9uIHModCxlLHIpe2Zvcih2YXIgbj0wLGE9TWF0aC5taW4odC5sZW5ndGgsciksaT1lO2k8YTtpKyspe3ZhciBvPXQuY2hhckNvZGVBdChpKS00ODtuPDw9NCxufD1vPj00OSYmbzw9NTQ/by00OSsxMDpvPj0xNyYmbzw9MjI/by0xNysxMDoxNSZvfXJldHVybiBufWZ1bmN0aW9uIGwodCxlLHIsbil7Zm9yKHZhciBhPTAsaT1NYXRoLm1pbih0Lmxlbmd0aCxyKSxvPWU7bzxpO28rKyl7dmFyIHM9dC5jaGFyQ29kZUF0KG8pLTQ4O2EqPW4sYSs9cz49NDk/cy00OSsxMDpzPj0xNz9zLTE3KzEwOnN9cmV0dXJuIGF9aS5pc0JOPWZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2YgaXx8bnVsbCE9PXQmJiJvYmplY3QiPT10eXBlb2YgdCYmdC5jb25zdHJ1Y3Rvci53b3JkU2l6ZT09PWkud29yZFNpemUmJkFycmF5LmlzQXJyYXkodC53b3Jkcyl9LGkubWF4PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuY21wKGUpPjA/dDplfSxpLm1pbj1mdW5jdGlvbih0LGUpe3JldHVybiB0LmNtcChlKTwwP3Q6ZX0saS5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24odCxlLHIpe2lmKCJudW1iZXIiPT10eXBlb2YgdClyZXR1cm4gdGhpcy5faW5pdE51bWJlcih0LGUscik7aWYoIm9iamVjdCI9PXR5cGVvZiB0KXJldHVybiB0aGlzLl9pbml0QXJyYXkodCxlLHIpOyJoZXgiPT09ZSYmKGU9MTYpLG4oZT09PSgwfGUpJiZlPj0yJiZlPD0zNik7dmFyIGE9MDsiLSI9PT0odD10LnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpKVswXSYmYSsrLDE2PT09ZT90aGlzLl9wYXJzZUhleCh0LGEpOnRoaXMuX3BhcnNlQmFzZSh0LGUsYSksIi0iPT09dFswXSYmKHRoaXMubmVnYXRpdmU9MSksdGhpcy5zdHJpcCgpLCJsZSI9PT1yJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksZSxyKX0saS5wcm90b3R5cGUuX2luaXROdW1iZXI9ZnVuY3Rpb24odCxlLHIpe3Q8MCYmKHRoaXMubmVnYXRpdmU9MSx0PS10KSx0PDY3MTA4ODY0Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZ0XSx0aGlzLmxlbmd0aD0xKTp0PDQ1MDM1OTk2MjczNzA0OTY/KHRoaXMud29yZHM9WzY3MTA4ODYzJnQsdC82NzEwODg2NCY2NzEwODg2M10sdGhpcy5sZW5ndGg9Mik6KG4odDw5MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEwODg2MyZ0LHQvNjcxMDg4NjQmNjcxMDg4NjMsMV0sdGhpcy5sZW5ndGg9MyksImxlIj09PXImJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSxlLHIpfSxpLnByb3RvdHlwZS5faW5pdEFycmF5PWZ1bmN0aW9uKHQsZSxyKXtpZihuKCJudW1iZXIiPT10eXBlb2YgdC5sZW5ndGgpLHQubGVuZ3RoPD0wKXJldHVybiB0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xLHRoaXM7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKHQubGVuZ3RoLzMpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIGE9MDthPHRoaXMubGVuZ3RoO2ErKyl0aGlzLndvcmRzW2FdPTA7dmFyIGksbyxzPTA7aWYoImJlIj09PXIpZm9yKGE9dC5sZW5ndGgtMSxpPTA7YT49MDthLT0zKW89dFthXXx0W2EtMV08PDh8dFthLTJdPDwxNix0aGlzLndvcmRzW2ldfD1vPDxzJjY3MTA4ODYzLHRoaXMud29yZHNbaSsxXT1vPj4+MjYtcyY2NzEwODg2Mywocys9MjQpPj0yNiYmKHMtPTI2LGkrKyk7ZWxzZSBpZigibGUiPT09cilmb3IoYT0wLGk9MDthPHQubGVuZ3RoO2ErPTMpbz10W2FdfHRbYSsxXTw8OHx0W2ErMl08PDE2LHRoaXMud29yZHNbaV18PW88PHMmNjcxMDg4NjMsdGhpcy53b3Jkc1tpKzFdPW8+Pj4yNi1zJjY3MTA4ODYzLChzKz0yNCk+PTI2JiYocy09MjYsaSsrKTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxpLnByb3RvdHlwZS5fcGFyc2VIZXg9ZnVuY3Rpb24odCxlKXt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoKHQubGVuZ3RoLWUpLzYpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHI9MDtyPHRoaXMubGVuZ3RoO3IrKyl0aGlzLndvcmRzW3JdPTA7dmFyIG4sYSxpPTA7Zm9yKHI9dC5sZW5ndGgtNixuPTA7cj49ZTtyLT02KWE9cyh0LHIscis2KSx0aGlzLndvcmRzW25dfD1hPDxpJjY3MTA4ODYzLHRoaXMud29yZHNbbisxXXw9YT4+PjI2LWkmNDE5NDMwMywoaSs9MjQpPj0yNiYmKGktPTI2LG4rKyk7cis2IT09ZSYmKGE9cyh0LGUscis2KSx0aGlzLndvcmRzW25dfD1hPDxpJjY3MTA4ODYzLHRoaXMud29yZHNbbisxXXw9YT4+PjI2LWkmNDE5NDMwMyksdGhpcy5zdHJpcCgpfSxpLnByb3RvdHlwZS5fcGFyc2VCYXNlPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xO2Zvcih2YXIgbj0wLGE9MTthPD02NzEwODg2MzthKj1lKW4rKztuLS0sYT1hL2V8MDtmb3IodmFyIGk9dC5sZW5ndGgtcixvPWklbixzPU1hdGgubWluKGksaS1vKStyLGM9MCx1PXI7dTxzO3UrPW4pYz1sKHQsdSx1K24sZSksdGhpcy5pbXVsbihhKSx0aGlzLndvcmRzWzBdK2M8NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9Yzp0aGlzLl9pYWRkbihjKTtpZigwIT09byl7dmFyIGg9MTtmb3IoYz1sKHQsdSx0Lmxlbmd0aCxlKSx1PTA7dTxvO3UrKyloKj1lO3RoaXMuaW11bG4oaCksdGhpcy53b3Jkc1swXStjPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPWM6dGhpcy5faWFkZG4oYyl9fSxpLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKHQpe3Qud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIGU9MDtlPHRoaXMubGVuZ3RoO2UrKyl0LndvcmRzW2VdPXRoaXMud29yZHNbZV07dC5sZW5ndGg9dGhpcy5sZW5ndGgsdC5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLHQucmVkPXRoaXMucmVkfSxpLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciB0PW5ldyBpKG51bGwpO3JldHVybiB0aGlzLmNvcHkodCksdH0saS5wcm90b3R5cGUuX2V4cGFuZD1mdW5jdGlvbih0KXtmb3IoO3RoaXMubGVuZ3RoPHQ7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4gdGhpc30saS5wcm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdOyl0aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSxpLnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30saS5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgYz1bIiIsIjAiLCIwMCIsIjAwMCIsIjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAiLCIwMDAwMDAwMCIsIjAwMDAwMDAwMCIsIjAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXSx1PVswLDAsMjUsMTYsMTIsMTEsMTAsOSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLGg9WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQzMiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07ZnVuY3Rpb24gZih0LGUscil7ci5uZWdhdGl2ZT1lLm5lZ2F0aXZlXnQubmVnYXRpdmU7dmFyIG49dC5sZW5ndGgrZS5sZW5ndGh8MDtyLmxlbmd0aD1uLG49bi0xfDA7dmFyIGE9MHx0LndvcmRzWzBdLGk9MHxlLndvcmRzWzBdLG89YSppLHM9NjcxMDg4NjMmbyxsPW8vNjcxMDg4NjR8MDtyLndvcmRzWzBdPXM7Zm9yKHZhciBjPTE7YzxuO2MrKyl7Zm9yKHZhciB1PWw+Pj4yNixoPTY3MTA4ODYzJmwsZj1NYXRoLm1pbihjLGUubGVuZ3RoLTEpLHA9TWF0aC5tYXgoMCxjLXQubGVuZ3RoKzEpO3A8PWY7cCsrKXt2YXIgZD1jLXB8MDt1Kz0obz0oYT0wfHQud29yZHNbZF0pKihpPTB8ZS53b3Jkc1twXSkraCkvNjcxMDg4NjR8MCxoPTY3MTA4ODYzJm99ci53b3Jkc1tjXT0wfGgsbD0wfHV9cmV0dXJuIDAhPT1sP3Iud29yZHNbY109MHxsOnIubGVuZ3RoLS0sci5zdHJpcCgpfWkucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKHQsZSl7dmFyIHI7aWYoZT0wfGV8fDEsMTY9PT0odD10fHwxMCl8fCJoZXgiPT09dCl7cj0iIjtmb3IodmFyIGE9MCxpPTAsbz0wO288dGhpcy5sZW5ndGg7bysrKXt2YXIgcz10aGlzLndvcmRzW29dLGw9KDE2Nzc3MjE1JihzPDxhfGkpKS50b1N0cmluZygxNik7cj0wIT09KGk9cz4+PjI0LWEmMTY3NzcyMTUpfHxvIT09dGhpcy5sZW5ndGgtMT9jWzYtbC5sZW5ndGhdK2wrcjpsK3IsKGErPTIpPj0yNiYmKGEtPTI2LG8tLSl9Zm9yKDAhPT1pJiYocj1pLnRvU3RyaW5nKDE2KStyKTtyLmxlbmd0aCVlIT0wOylyPSIwIityO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKHI9Ii0iK3IpLHJ9aWYodD09PSgwfHQpJiZ0Pj0yJiZ0PD0zNil7dmFyIGY9dVt0XSxwPWhbdF07cj0iIjt2YXIgZD10aGlzLmNsb25lKCk7Zm9yKGQubmVnYXRpdmU9MDshZC5pc1plcm8oKTspe3ZhciBnPWQubW9kbihwKS50b1N0cmluZyh0KTtyPShkPWQuaWRpdm4ocCkpLmlzWmVybygpP2crcjpjW2YtZy5sZW5ndGhdK2crcn1mb3IodGhpcy5pc1plcm8oKSYmKHI9IjAiK3IpO3IubGVuZ3RoJWUhPTA7KXI9IjAiK3I7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYocj0iLSIrcikscn1uKCExLCJCYXNlIHNob3VsZCBiZSBiZXR3ZWVuIDIgYW5kIDM2Iil9LGkucHJvdG90eXBlLnRvTnVtYmVyPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53b3Jkc1swXTtyZXR1cm4gMj09PXRoaXMubGVuZ3RoP3QrPTY3MTA4ODY0KnRoaXMud29yZHNbMV06Mz09PXRoaXMubGVuZ3RoJiYxPT09dGhpcy53b3Jkc1syXT90Kz00NTAzNTk5NjI3MzcwNDk2KzY3MTA4ODY0KnRoaXMud29yZHNbMV06dGhpcy5sZW5ndGg+MiYmbighMSwiTnVtYmVyIGNhbiBvbmx5IHNhZmVseSBzdG9yZSB1cCB0byA1MyBiaXRzIiksMCE9PXRoaXMubmVnYXRpdmU/LXQ6dH0saS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoMTYpfSxpLnByb3RvdHlwZS50b0J1ZmZlcj1mdW5jdGlvbih0LGUpe3JldHVybiBuKCJ1bmRlZmluZWQiIT10eXBlb2YgbyksdGhpcy50b0FycmF5TGlrZShvLHQsZSl9LGkucHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy50b0FycmF5TGlrZShBcnJheSx0LGUpfSxpLnByb3RvdHlwZS50b0FycmF5TGlrZT1mdW5jdGlvbih0LGUscil7dmFyIGE9dGhpcy5ieXRlTGVuZ3RoKCksaT1yfHxNYXRoLm1heCgxLGEpO24oYTw9aSwiYnl0ZSBhcnJheSBsb25nZXIgdGhhbiBkZXNpcmVkIGxlbmd0aCIpLG4oaT4wLCJSZXF1ZXN0ZWQgYXJyYXkgbGVuZ3RoIDw9IDAiKSx0aGlzLnN0cmlwKCk7dmFyIG8scyxsPSJsZSI9PT1lLGM9bmV3IHQoaSksdT10aGlzLmNsb25lKCk7aWYobCl7Zm9yKHM9MDshdS5pc1plcm8oKTtzKyspbz11LmFuZGxuKDI1NSksdS5pdXNocm4oOCksY1tzXT1vO2Zvcig7czxpO3MrKyljW3NdPTB9ZWxzZXtmb3Iocz0wO3M8aS1hO3MrKyljW3NdPTA7Zm9yKHM9MDshdS5pc1plcm8oKTtzKyspbz11LmFuZGxuKDI1NSksdS5pdXNocm4oOCksY1tpLXMtMV09b31yZXR1cm4gY30sTWF0aC5jbHozMj9pLnByb3RvdHlwZS5fY291bnRCaXRzPWZ1bmN0aW9uKHQpe3JldHVybiAzMi1NYXRoLmNsejMyKHQpfTppLnByb3RvdHlwZS5fY291bnRCaXRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQscj0wO3JldHVybiBlPj00MDk2JiYocis9MTMsZT4+Pj0xMyksZT49NjQmJihyKz03LGU+Pj49NyksZT49OCYmKHIrPTQsZT4+Pj00KSxlPj0yJiYocis9MixlPj4+PTIpLHIrZX0saS5wcm90b3R5cGUuX3plcm9CaXRzPWZ1bmN0aW9uKHQpe2lmKDA9PT10KXJldHVybiAyNjt2YXIgZT10LHI9MDtyZXR1cm4gMD09KDgxOTEmZSkmJihyKz0xMyxlPj4+PTEzKSwwPT0oMTI3JmUpJiYocis9NyxlPj4+PTcpLDA9PSgxNSZlKSYmKHIrPTQsZT4+Pj00KSwwPT0oMyZlKSYmKHIrPTIsZT4+Pj0yKSwwPT0oMSZlKSYmcisrLHJ9LGkucHJvdG90eXBlLmJpdExlbmd0aD1mdW5jdGlvbigpe3ZhciB0PXRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0sZT10aGlzLl9jb3VudEJpdHModCk7cmV0dXJuIDI2Kih0aGlzLmxlbmd0aC0xKStlfSxpLnByb3RvdHlwZS56ZXJvQml0cz1mdW5jdGlvbigpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIDA7Zm9yKHZhciB0PTAsZT0wO2U8dGhpcy5sZW5ndGg7ZSsrKXt2YXIgcj10aGlzLl96ZXJvQml0cyh0aGlzLndvcmRzW2VdKTtpZih0Kz1yLDI2IT09cilicmVha31yZXR1cm4gdH0saS5wcm90b3R5cGUuYnl0ZUxlbmd0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmNlaWwodGhpcy5iaXRMZW5ndGgoKS84KX0saS5wcm90b3R5cGUudG9Ud29zPWZ1bmN0aW9uKHQpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT90aGlzLmFicygpLmlub3RuKHQpLmlhZGRuKDEpOnRoaXMuY2xvbmUoKX0saS5wcm90b3R5cGUuZnJvbVR3b3M9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudGVzdG4odC0xKT90aGlzLm5vdG4odCkuaWFkZG4oMSkuaW5lZygpOnRoaXMuY2xvbmUoKX0saS5wcm90b3R5cGUuaXNOZWc9ZnVuY3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmV9LGkucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaW5lZygpfSxpLnByb3RvdHlwZS5pbmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNaZXJvKCl8fCh0aGlzLm5lZ2F0aXZlXj0xKSx0aGlzfSxpLnByb3RvdHlwZS5pdW9yPWZ1bmN0aW9uKHQpe2Zvcig7dGhpcy5sZW5ndGg8dC5sZW5ndGg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKyl0aGlzLndvcmRzW2VdPXRoaXMud29yZHNbZV18dC53b3Jkc1tlXTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxpLnByb3RvdHlwZS5pb3I9ZnVuY3Rpb24odCl7cmV0dXJuIG4oMD09KHRoaXMubmVnYXRpdmV8dC5uZWdhdGl2ZSkpLHRoaXMuaXVvcih0KX0saS5wcm90b3R5cGUub3I9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGVuZ3RoPnQubGVuZ3RoP3RoaXMuY2xvbmUoKS5pb3IodCk6dC5jbG9uZSgpLmlvcih0aGlzKX0saS5wcm90b3R5cGUudW9yPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaXVvcih0KTp0LmNsb25lKCkuaXVvcih0aGlzKX0saS5wcm90b3R5cGUuaXVhbmQ9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLmxlbmd0aD50Lmxlbmd0aD90OnRoaXM7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspdGhpcy53b3Jkc1tyXT10aGlzLndvcmRzW3JdJnQud29yZHNbcl07cmV0dXJuIHRoaXMubGVuZ3RoPWUubGVuZ3RoLHRoaXMuc3RyaXAoKX0saS5wcm90b3R5cGUuaWFuZD1mdW5jdGlvbih0KXtyZXR1cm4gbigwPT0odGhpcy5uZWdhdGl2ZXx0Lm5lZ2F0aXZlKSksdGhpcy5pdWFuZCh0KX0saS5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZCh0KTp0LmNsb25lKCkuaWFuZCh0aGlzKX0saS5wcm90b3R5cGUudWFuZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sZW5ndGg+dC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1YW5kKHQpOnQuY2xvbmUoKS5pdWFuZCh0aGlzKX0saS5wcm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24odCl7dmFyIGUscjt0aGlzLmxlbmd0aD50Lmxlbmd0aD8oZT10aGlzLHI9dCk6KGU9dCxyPXRoaXMpO2Zvcih2YXIgbj0wO248ci5sZW5ndGg7bisrKXRoaXMud29yZHNbbl09ZS53b3Jkc1tuXV5yLndvcmRzW25dO2lmKHRoaXMhPT1lKWZvcig7bjxlLmxlbmd0aDtuKyspdGhpcy53b3Jkc1tuXT1lLndvcmRzW25dO3JldHVybiB0aGlzLmxlbmd0aD1lLmxlbmd0aCx0aGlzLnN0cmlwKCl9LGkucHJvdG90eXBlLml4b3I9ZnVuY3Rpb24odCl7cmV0dXJuIG4oMD09KHRoaXMubmVnYXRpdmV8dC5uZWdhdGl2ZSkpLHRoaXMuaXV4b3IodCl9LGkucHJvdG90eXBlLnhvcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sZW5ndGg+dC5sZW5ndGg/dGhpcy5jbG9uZSgpLml4b3IodCk6dC5jbG9uZSgpLml4b3IodGhpcyl9LGkucHJvdG90eXBlLnV4b3I9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGVuZ3RoPnQubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdXhvcih0KTp0LmNsb25lKCkuaXV4b3IodGhpcyl9LGkucHJvdG90eXBlLmlub3RuPWZ1bmN0aW9uKHQpe24oIm51bWJlciI9PXR5cGVvZiB0JiZ0Pj0wKTt2YXIgZT0wfE1hdGguY2VpbCh0LzI2KSxyPXQlMjY7dGhpcy5fZXhwYW5kKGUpLHI+MCYmZS0tO2Zvcih2YXIgYT0wO2E8ZTthKyspdGhpcy53b3Jkc1thXT02NzEwODg2MyZ+dGhpcy53b3Jkc1thXTtyZXR1cm4gcj4wJiYodGhpcy53b3Jkc1thXT1+dGhpcy53b3Jkc1thXSY2NzEwODg2Mz4+MjYtciksdGhpcy5zdHJpcCgpfSxpLnByb3RvdHlwZS5ub3RuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4odCl9LGkucHJvdG90eXBlLnNldG49ZnVuY3Rpb24odCxlKXtuKCJudW1iZXIiPT10eXBlb2YgdCYmdD49MCk7dmFyIHI9dC8yNnwwLGE9dCUyNjtyZXR1cm4gdGhpcy5fZXhwYW5kKHIrMSksdGhpcy53b3Jkc1tyXT1lP3RoaXMud29yZHNbcl18MTw8YTp0aGlzLndvcmRzW3JdJn4oMTw8YSksdGhpcy5zdHJpcCgpfSxpLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbjtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PXQubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCxlPXRoaXMuaXN1Yih0KSx0aGlzLm5lZ2F0aXZlXj0xLHRoaXMuX25vcm1TaWduKCk7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT10Lm5lZ2F0aXZlKXJldHVybiB0Lm5lZ2F0aXZlPTAsZT10aGlzLmlzdWIodCksdC5uZWdhdGl2ZT0xLGUuX25vcm1TaWduKCk7dGhpcy5sZW5ndGg+dC5sZW5ndGg/KHI9dGhpcyxuPXQpOihyPXQsbj10aGlzKTtmb3IodmFyIGE9MCxpPTA7aTxuLmxlbmd0aDtpKyspZT0oMHxyLndvcmRzW2ldKSsoMHxuLndvcmRzW2ldKSthLHRoaXMud29yZHNbaV09NjcxMDg4NjMmZSxhPWU+Pj4yNjtmb3IoOzAhPT1hJiZpPHIubGVuZ3RoO2krKyllPSgwfHIud29yZHNbaV0pK2EsdGhpcy53b3Jkc1tpXT02NzEwODg2MyZlLGE9ZT4+PjI2O2lmKHRoaXMubGVuZ3RoPXIubGVuZ3RoLDAhPT1hKXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPWEsdGhpcy5sZW5ndGgrKztlbHNlIGlmKHIhPT10aGlzKWZvcig7aTxyLmxlbmd0aDtpKyspdGhpcy53b3Jkc1tpXT1yLndvcmRzW2ldO3JldHVybiB0aGlzfSxpLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIDAhPT10Lm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8odC5uZWdhdGl2ZT0wLGU9dGhpcy5zdWIodCksdC5uZWdhdGl2ZV49MSxlKTowPT09dC5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMubmVnYXRpdmU9MCxlPXQuc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSxlKTp0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZCh0KTp0LmNsb25lKCkuaWFkZCh0aGlzKX0saS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbih0KXtpZigwIT09dC5uZWdhdGl2ZSl7dC5uZWdhdGl2ZT0wO3ZhciBlPXRoaXMuaWFkZCh0KTtyZXR1cm4gdC5uZWdhdGl2ZT0xLGUuX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGQodCksdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIHIsbixhPXRoaXMuY21wKHQpO2lmKDA9PT1hKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpczthPjA/KHI9dGhpcyxuPXQpOihyPXQsbj10aGlzKTtmb3IodmFyIGk9MCxvPTA7bzxuLmxlbmd0aDtvKyspaT0oZT0oMHxyLndvcmRzW29dKS0oMHxuLndvcmRzW29dKStpKT4+MjYsdGhpcy53b3Jkc1tvXT02NzEwODg2MyZlO2Zvcig7MCE9PWkmJm88ci5sZW5ndGg7bysrKWk9KGU9KDB8ci53b3Jkc1tvXSkraSk+PjI2LHRoaXMud29yZHNbb109NjcxMDg4NjMmZTtpZigwPT09aSYmbzxyLmxlbmd0aCYmciE9PXRoaXMpZm9yKDtvPHIubGVuZ3RoO28rKyl0aGlzLndvcmRzW29dPXIud29yZHNbb107cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLG8pLHIhPT10aGlzJiYodGhpcy5uZWdhdGl2ZT0xKSx0aGlzLnN0cmlwKCl9LGkucHJvdG90eXBlLnN1Yj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWIodCl9O3ZhciBwPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixhLGksbz10LndvcmRzLHM9ZS53b3JkcyxsPXIud29yZHMsYz0wLHU9MHxvWzBdLGg9ODE5MSZ1LGY9dT4+PjEzLHA9MHxvWzFdLGQ9ODE5MSZwLGc9cD4+PjEzLHY9MHxvWzJdLG09ODE5MSZ2LHk9dj4+PjEzLHg9MHxvWzNdLGI9ODE5MSZ4LF89eD4+PjEzLHc9MHxvWzRdLGs9ODE5MSZ3LFQ9dz4+PjEzLE09MHxvWzVdLEE9ODE5MSZNLFM9TT4+PjEzLEU9MHxvWzZdLEw9ODE5MSZFLEM9RT4+PjEzLFA9MHxvWzddLE89ODE5MSZQLHo9UD4+PjEzLEk9MHxvWzhdLEQ9ODE5MSZJLFI9ST4+PjEzLEY9MHxvWzldLEI9ODE5MSZGLE49Rj4+PjEzLGo9MHxzWzBdLFY9ODE5MSZqLFU9aj4+PjEzLHE9MHxzWzFdLEg9ODE5MSZxLEc9cT4+PjEzLFk9MHxzWzJdLFc9ODE5MSZZLFg9WT4+PjEzLFo9MHxzWzNdLEo9ODE5MSZaLEs9Wj4+PjEzLFE9MHxzWzRdLCQ9ODE5MSZRLHR0PVE+Pj4xMyxldD0wfHNbNV0scnQ9ODE5MSZldCxudD1ldD4+PjEzLGF0PTB8c1s2XSxpdD04MTkxJmF0LG90PWF0Pj4+MTMsc3Q9MHxzWzddLGx0PTgxOTEmc3QsY3Q9c3Q+Pj4xMyx1dD0wfHNbOF0saHQ9ODE5MSZ1dCxmdD11dD4+PjEzLHB0PTB8c1s5XSxkdD04MTkxJnB0LGd0PXB0Pj4+MTM7ci5uZWdhdGl2ZT10Lm5lZ2F0aXZlXmUubmVnYXRpdmUsci5sZW5ndGg9MTk7dmFyIHZ0PShjKyhuPU1hdGguaW11bChoLFYpKXwwKSsoKDgxOTEmKGE9KGE9TWF0aC5pbXVsKGgsVSkpK01hdGguaW11bChmLFYpfDApKTw8MTMpfDA7Yz0oKGk9TWF0aC5pbXVsKGYsVSkpKyhhPj4+MTMpfDApKyh2dD4+PjI2KXwwLHZ0Jj02NzEwODg2MyxuPU1hdGguaW11bChkLFYpLGE9KGE9TWF0aC5pbXVsKGQsVSkpK01hdGguaW11bChnLFYpfDAsaT1NYXRoLmltdWwoZyxVKTt2YXIgbXQ9KGMrKG49bitNYXRoLmltdWwoaCxIKXwwKXwwKSsoKDgxOTEmKGE9KGE9YStNYXRoLmltdWwoaCxHKXwwKStNYXRoLmltdWwoZixIKXwwKSk8PDEzKXwwO2M9KChpPWkrTWF0aC5pbXVsKGYsRyl8MCkrKGE+Pj4xMyl8MCkrKG10Pj4+MjYpfDAsbXQmPTY3MTA4ODYzLG49TWF0aC5pbXVsKG0sViksYT0oYT1NYXRoLmltdWwobSxVKSkrTWF0aC5pbXVsKHksVil8MCxpPU1hdGguaW11bCh5LFUpLG49bitNYXRoLmltdWwoZCxIKXwwLGE9KGE9YStNYXRoLmltdWwoZCxHKXwwKStNYXRoLmltdWwoZyxIKXwwLGk9aStNYXRoLmltdWwoZyxHKXwwO3ZhciB5dD0oYysobj1uK01hdGguaW11bChoLFcpfDApfDApKygoODE5MSYoYT0oYT1hK01hdGguaW11bChoLFgpfDApK01hdGguaW11bChmLFcpfDApKTw8MTMpfDA7Yz0oKGk9aStNYXRoLmltdWwoZixYKXwwKSsoYT4+PjEzKXwwKSsoeXQ+Pj4yNil8MCx5dCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoYixWKSxhPShhPU1hdGguaW11bChiLFUpKStNYXRoLmltdWwoXyxWKXwwLGk9TWF0aC5pbXVsKF8sVSksbj1uK01hdGguaW11bChtLEgpfDAsYT0oYT1hK01hdGguaW11bChtLEcpfDApK01hdGguaW11bCh5LEgpfDAsaT1pK01hdGguaW11bCh5LEcpfDAsbj1uK01hdGguaW11bChkLFcpfDAsYT0oYT1hK01hdGguaW11bChkLFgpfDApK01hdGguaW11bChnLFcpfDAsaT1pK01hdGguaW11bChnLFgpfDA7dmFyIHh0PShjKyhuPW4rTWF0aC5pbXVsKGgsSil8MCl8MCkrKCg4MTkxJihhPShhPWErTWF0aC5pbXVsKGgsSyl8MCkrTWF0aC5pbXVsKGYsSil8MCkpPDwxMyl8MDtjPSgoaT1pK01hdGguaW11bChmLEspfDApKyhhPj4+MTMpfDApKyh4dD4+PjI2KXwwLHh0Jj02NzEwODg2MyxuPU1hdGguaW11bChrLFYpLGE9KGE9TWF0aC5pbXVsKGssVSkpK01hdGguaW11bChULFYpfDAsaT1NYXRoLmltdWwoVCxVKSxuPW4rTWF0aC5pbXVsKGIsSCl8MCxhPShhPWErTWF0aC5pbXVsKGIsRyl8MCkrTWF0aC5pbXVsKF8sSCl8MCxpPWkrTWF0aC5pbXVsKF8sRyl8MCxuPW4rTWF0aC5pbXVsKG0sVyl8MCxhPShhPWErTWF0aC5pbXVsKG0sWCl8MCkrTWF0aC5pbXVsKHksVyl8MCxpPWkrTWF0aC5pbXVsKHksWCl8MCxuPW4rTWF0aC5pbXVsKGQsSil8MCxhPShhPWErTWF0aC5pbXVsKGQsSyl8MCkrTWF0aC5pbXVsKGcsSil8MCxpPWkrTWF0aC5pbXVsKGcsSyl8MDt2YXIgYnQ9KGMrKG49bitNYXRoLmltdWwoaCwkKXwwKXwwKSsoKDgxOTEmKGE9KGE9YStNYXRoLmltdWwoaCx0dCl8MCkrTWF0aC5pbXVsKGYsJCl8MCkpPDwxMyl8MDtjPSgoaT1pK01hdGguaW11bChmLHR0KXwwKSsoYT4+PjEzKXwwKSsoYnQ+Pj4yNil8MCxidCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoQSxWKSxhPShhPU1hdGguaW11bChBLFUpKStNYXRoLmltdWwoUyxWKXwwLGk9TWF0aC5pbXVsKFMsVSksbj1uK01hdGguaW11bChrLEgpfDAsYT0oYT1hK01hdGguaW11bChrLEcpfDApK01hdGguaW11bChULEgpfDAsaT1pK01hdGguaW11bChULEcpfDAsbj1uK01hdGguaW11bChiLFcpfDAsYT0oYT1hK01hdGguaW11bChiLFgpfDApK01hdGguaW11bChfLFcpfDAsaT1pK01hdGguaW11bChfLFgpfDAsbj1uK01hdGguaW11bChtLEopfDAsYT0oYT1hK01hdGguaW11bChtLEspfDApK01hdGguaW11bCh5LEopfDAsaT1pK01hdGguaW11bCh5LEspfDAsbj1uK01hdGguaW11bChkLCQpfDAsYT0oYT1hK01hdGguaW11bChkLHR0KXwwKStNYXRoLmltdWwoZywkKXwwLGk9aStNYXRoLmltdWwoZyx0dCl8MDt2YXIgX3Q9KGMrKG49bitNYXRoLmltdWwoaCxydCl8MCl8MCkrKCg4MTkxJihhPShhPWErTWF0aC5pbXVsKGgsbnQpfDApK01hdGguaW11bChmLHJ0KXwwKSk8PDEzKXwwO2M9KChpPWkrTWF0aC5pbXVsKGYsbnQpfDApKyhhPj4+MTMpfDApKyhfdD4+PjI2KXwwLF90Jj02NzEwODg2MyxuPU1hdGguaW11bChMLFYpLGE9KGE9TWF0aC5pbXVsKEwsVSkpK01hdGguaW11bChDLFYpfDAsaT1NYXRoLmltdWwoQyxVKSxuPW4rTWF0aC5pbXVsKEEsSCl8MCxhPShhPWErTWF0aC5pbXVsKEEsRyl8MCkrTWF0aC5pbXVsKFMsSCl8MCxpPWkrTWF0aC5pbXVsKFMsRyl8MCxuPW4rTWF0aC5pbXVsKGssVyl8MCxhPShhPWErTWF0aC5pbXVsKGssWCl8MCkrTWF0aC5pbXVsKFQsVyl8MCxpPWkrTWF0aC5pbXVsKFQsWCl8MCxuPW4rTWF0aC5pbXVsKGIsSil8MCxhPShhPWErTWF0aC5pbXVsKGIsSyl8MCkrTWF0aC5pbXVsKF8sSil8MCxpPWkrTWF0aC5pbXVsKF8sSyl8MCxuPW4rTWF0aC5pbXVsKG0sJCl8MCxhPShhPWErTWF0aC5pbXVsKG0sdHQpfDApK01hdGguaW11bCh5LCQpfDAsaT1pK01hdGguaW11bCh5LHR0KXwwLG49bitNYXRoLmltdWwoZCxydCl8MCxhPShhPWErTWF0aC5pbXVsKGQsbnQpfDApK01hdGguaW11bChnLHJ0KXwwLGk9aStNYXRoLmltdWwoZyxudCl8MDt2YXIgd3Q9KGMrKG49bitNYXRoLmltdWwoaCxpdCl8MCl8MCkrKCg4MTkxJihhPShhPWErTWF0aC5pbXVsKGgsb3QpfDApK01hdGguaW11bChmLGl0KXwwKSk8PDEzKXwwO2M9KChpPWkrTWF0aC5pbXVsKGYsb3QpfDApKyhhPj4+MTMpfDApKyh3dD4+PjI2KXwwLHd0Jj02NzEwODg2MyxuPU1hdGguaW11bChPLFYpLGE9KGE9TWF0aC5pbXVsKE8sVSkpK01hdGguaW11bCh6LFYpfDAsaT1NYXRoLmltdWwoeixVKSxuPW4rTWF0aC5pbXVsKEwsSCl8MCxhPShhPWErTWF0aC5pbXVsKEwsRyl8MCkrTWF0aC5pbXVsKEMsSCl8MCxpPWkrTWF0aC5pbXVsKEMsRyl8MCxuPW4rTWF0aC5pbXVsKEEsVyl8MCxhPShhPWErTWF0aC5pbXVsKEEsWCl8MCkrTWF0aC5pbXVsKFMsVyl8MCxpPWkrTWF0aC5pbXVsKFMsWCl8MCxuPW4rTWF0aC5pbXVsKGssSil8MCxhPShhPWErTWF0aC5pbXVsKGssSyl8MCkrTWF0aC5pbXVsKFQsSil8MCxpPWkrTWF0aC5pbXVsKFQsSyl8MCxuPW4rTWF0aC5pbXVsKGIsJCl8MCxhPShhPWErTWF0aC5pbXVsKGIsdHQpfDApK01hdGguaW11bChfLCQpfDAsaT1pK01hdGguaW11bChfLHR0KXwwLG49bitNYXRoLmltdWwobSxydCl8MCxhPShhPWErTWF0aC5pbXVsKG0sbnQpfDApK01hdGguaW11bCh5LHJ0KXwwLGk9aStNYXRoLmltdWwoeSxudCl8MCxuPW4rTWF0aC5pbXVsKGQsaXQpfDAsYT0oYT1hK01hdGguaW11bChkLG90KXwwKStNYXRoLmltdWwoZyxpdCl8MCxpPWkrTWF0aC5pbXVsKGcsb3QpfDA7dmFyIGt0PShjKyhuPW4rTWF0aC5pbXVsKGgsbHQpfDApfDApKygoODE5MSYoYT0oYT1hK01hdGguaW11bChoLGN0KXwwKStNYXRoLmltdWwoZixsdCl8MCkpPDwxMyl8MDtjPSgoaT1pK01hdGguaW11bChmLGN0KXwwKSsoYT4+PjEzKXwwKSsoa3Q+Pj4yNil8MCxrdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoRCxWKSxhPShhPU1hdGguaW11bChELFUpKStNYXRoLmltdWwoUixWKXwwLGk9TWF0aC5pbXVsKFIsVSksbj1uK01hdGguaW11bChPLEgpfDAsYT0oYT1hK01hdGguaW11bChPLEcpfDApK01hdGguaW11bCh6LEgpfDAsaT1pK01hdGguaW11bCh6LEcpfDAsbj1uK01hdGguaW11bChMLFcpfDAsYT0oYT1hK01hdGguaW11bChMLFgpfDApK01hdGguaW11bChDLFcpfDAsaT1pK01hdGguaW11bChDLFgpfDAsbj1uK01hdGguaW11bChBLEopfDAsYT0oYT1hK01hdGguaW11bChBLEspfDApK01hdGguaW11bChTLEopfDAsaT1pK01hdGguaW11bChTLEspfDAsbj1uK01hdGguaW11bChrLCQpfDAsYT0oYT1hK01hdGguaW11bChrLHR0KXwwKStNYXRoLmltdWwoVCwkKXwwLGk9aStNYXRoLmltdWwoVCx0dCl8MCxuPW4rTWF0aC5pbXVsKGIscnQpfDAsYT0oYT1hK01hdGguaW11bChiLG50KXwwKStNYXRoLmltdWwoXyxydCl8MCxpPWkrTWF0aC5pbXVsKF8sbnQpfDAsbj1uK01hdGguaW11bChtLGl0KXwwLGE9KGE9YStNYXRoLmltdWwobSxvdCl8MCkrTWF0aC5pbXVsKHksaXQpfDAsaT1pK01hdGguaW11bCh5LG90KXwwLG49bitNYXRoLmltdWwoZCxsdCl8MCxhPShhPWErTWF0aC5pbXVsKGQsY3QpfDApK01hdGguaW11bChnLGx0KXwwLGk9aStNYXRoLmltdWwoZyxjdCl8MDt2YXIgVHQ9KGMrKG49bitNYXRoLmltdWwoaCxodCl8MCl8MCkrKCg4MTkxJihhPShhPWErTWF0aC5pbXVsKGgsZnQpfDApK01hdGguaW11bChmLGh0KXwwKSk8PDEzKXwwO2M9KChpPWkrTWF0aC5pbXVsKGYsZnQpfDApKyhhPj4+MTMpfDApKyhUdD4+PjI2KXwwLFR0Jj02NzEwODg2MyxuPU1hdGguaW11bChCLFYpLGE9KGE9TWF0aC5pbXVsKEIsVSkpK01hdGguaW11bChOLFYpfDAsaT1NYXRoLmltdWwoTixVKSxuPW4rTWF0aC5pbXVsKEQsSCl8MCxhPShhPWErTWF0aC5pbXVsKEQsRyl8MCkrTWF0aC5pbXVsKFIsSCl8MCxpPWkrTWF0aC5pbXVsKFIsRyl8MCxuPW4rTWF0aC5pbXVsKE8sVyl8MCxhPShhPWErTWF0aC5pbXVsKE8sWCl8MCkrTWF0aC5pbXVsKHosVyl8MCxpPWkrTWF0aC5pbXVsKHosWCl8MCxuPW4rTWF0aC5pbXVsKEwsSil8MCxhPShhPWErTWF0aC5pbXVsKEwsSyl8MCkrTWF0aC5pbXVsKEMsSil8MCxpPWkrTWF0aC5pbXVsKEMsSyl8MCxuPW4rTWF0aC5pbXVsKEEsJCl8MCxhPShhPWErTWF0aC5pbXVsKEEsdHQpfDApK01hdGguaW11bChTLCQpfDAsaT1pK01hdGguaW11bChTLHR0KXwwLG49bitNYXRoLmltdWwoayxydCl8MCxhPShhPWErTWF0aC5pbXVsKGssbnQpfDApK01hdGguaW11bChULHJ0KXwwLGk9aStNYXRoLmltdWwoVCxudCl8MCxuPW4rTWF0aC5pbXVsKGIsaXQpfDAsYT0oYT1hK01hdGguaW11bChiLG90KXwwKStNYXRoLmltdWwoXyxpdCl8MCxpPWkrTWF0aC5pbXVsKF8sb3QpfDAsbj1uK01hdGguaW11bChtLGx0KXwwLGE9KGE9YStNYXRoLmltdWwobSxjdCl8MCkrTWF0aC5pbXVsKHksbHQpfDAsaT1pK01hdGguaW11bCh5LGN0KXwwLG49bitNYXRoLmltdWwoZCxodCl8MCxhPShhPWErTWF0aC5pbXVsKGQsZnQpfDApK01hdGguaW11bChnLGh0KXwwLGk9aStNYXRoLmltdWwoZyxmdCl8MDt2YXIgTXQ9KGMrKG49bitNYXRoLmltdWwoaCxkdCl8MCl8MCkrKCg4MTkxJihhPShhPWErTWF0aC5pbXVsKGgsZ3QpfDApK01hdGguaW11bChmLGR0KXwwKSk8PDEzKXwwO2M9KChpPWkrTWF0aC5pbXVsKGYsZ3QpfDApKyhhPj4+MTMpfDApKyhNdD4+PjI2KXwwLE10Jj02NzEwODg2MyxuPU1hdGguaW11bChCLEgpLGE9KGE9TWF0aC5pbXVsKEIsRykpK01hdGguaW11bChOLEgpfDAsaT1NYXRoLmltdWwoTixHKSxuPW4rTWF0aC5pbXVsKEQsVyl8MCxhPShhPWErTWF0aC5pbXVsKEQsWCl8MCkrTWF0aC5pbXVsKFIsVyl8MCxpPWkrTWF0aC5pbXVsKFIsWCl8MCxuPW4rTWF0aC5pbXVsKE8sSil8MCxhPShhPWErTWF0aC5pbXVsKE8sSyl8MCkrTWF0aC5pbXVsKHosSil8MCxpPWkrTWF0aC5pbXVsKHosSyl8MCxuPW4rTWF0aC5pbXVsKEwsJCl8MCxhPShhPWErTWF0aC5pbXVsKEwsdHQpfDApK01hdGguaW11bChDLCQpfDAsaT1pK01hdGguaW11bChDLHR0KXwwLG49bitNYXRoLmltdWwoQSxydCl8MCxhPShhPWErTWF0aC5pbXVsKEEsbnQpfDApK01hdGguaW11bChTLHJ0KXwwLGk9aStNYXRoLmltdWwoUyxudCl8MCxuPW4rTWF0aC5pbXVsKGssaXQpfDAsYT0oYT1hK01hdGguaW11bChrLG90KXwwKStNYXRoLmltdWwoVCxpdCl8MCxpPWkrTWF0aC5pbXVsKFQsb3QpfDAsbj1uK01hdGguaW11bChiLGx0KXwwLGE9KGE9YStNYXRoLmltdWwoYixjdCl8MCkrTWF0aC5pbXVsKF8sbHQpfDAsaT1pK01hdGguaW11bChfLGN0KXwwLG49bitNYXRoLmltdWwobSxodCl8MCxhPShhPWErTWF0aC5pbXVsKG0sZnQpfDApK01hdGguaW11bCh5LGh0KXwwLGk9aStNYXRoLmltdWwoeSxmdCl8MDt2YXIgQXQ9KGMrKG49bitNYXRoLmltdWwoZCxkdCl8MCl8MCkrKCg4MTkxJihhPShhPWErTWF0aC5pbXVsKGQsZ3QpfDApK01hdGguaW11bChnLGR0KXwwKSk8PDEzKXwwO2M9KChpPWkrTWF0aC5pbXVsKGcsZ3QpfDApKyhhPj4+MTMpfDApKyhBdD4+PjI2KXwwLEF0Jj02NzEwODg2MyxuPU1hdGguaW11bChCLFcpLGE9KGE9TWF0aC5pbXVsKEIsWCkpK01hdGguaW11bChOLFcpfDAsaT1NYXRoLmltdWwoTixYKSxuPW4rTWF0aC5pbXVsKEQsSil8MCxhPShhPWErTWF0aC5pbXVsKEQsSyl8MCkrTWF0aC5pbXVsKFIsSil8MCxpPWkrTWF0aC5pbXVsKFIsSyl8MCxuPW4rTWF0aC5pbXVsKE8sJCl8MCxhPShhPWErTWF0aC5pbXVsKE8sdHQpfDApK01hdGguaW11bCh6LCQpfDAsaT1pK01hdGguaW11bCh6LHR0KXwwLG49bitNYXRoLmltdWwoTCxydCl8MCxhPShhPWErTWF0aC5pbXVsKEwsbnQpfDApK01hdGguaW11bChDLHJ0KXwwLGk9aStNYXRoLmltdWwoQyxudCl8MCxuPW4rTWF0aC5pbXVsKEEsaXQpfDAsYT0oYT1hK01hdGguaW11bChBLG90KXwwKStNYXRoLmltdWwoUyxpdCl8MCxpPWkrTWF0aC5pbXVsKFMsb3QpfDAsbj1uK01hdGguaW11bChrLGx0KXwwLGE9KGE9YStNYXRoLmltdWwoayxjdCl8MCkrTWF0aC5pbXVsKFQsbHQpfDAsaT1pK01hdGguaW11bChULGN0KXwwLG49bitNYXRoLmltdWwoYixodCl8MCxhPShhPWErTWF0aC5pbXVsKGIsZnQpfDApK01hdGguaW11bChfLGh0KXwwLGk9aStNYXRoLmltdWwoXyxmdCl8MDt2YXIgU3Q9KGMrKG49bitNYXRoLmltdWwobSxkdCl8MCl8MCkrKCg4MTkxJihhPShhPWErTWF0aC5pbXVsKG0sZ3QpfDApK01hdGguaW11bCh5LGR0KXwwKSk8PDEzKXwwO2M9KChpPWkrTWF0aC5pbXVsKHksZ3QpfDApKyhhPj4+MTMpfDApKyhTdD4+PjI2KXwwLFN0Jj02NzEwODg2MyxuPU1hdGguaW11bChCLEopLGE9KGE9TWF0aC5pbXVsKEIsSykpK01hdGguaW11bChOLEopfDAsaT1NYXRoLmltdWwoTixLKSxuPW4rTWF0aC5pbXVsKEQsJCl8MCxhPShhPWErTWF0aC5pbXVsKEQsdHQpfDApK01hdGguaW11bChSLCQpfDAsaT1pK01hdGguaW11bChSLHR0KXwwLG49bitNYXRoLmltdWwoTyxydCl8MCxhPShhPWErTWF0aC5pbXVsKE8sbnQpfDApK01hdGguaW11bCh6LHJ0KXwwLGk9aStNYXRoLmltdWwoeixudCl8MCxuPW4rTWF0aC5pbXVsKEwsaXQpfDAsYT0oYT1hK01hdGguaW11bChMLG90KXwwKStNYXRoLmltdWwoQyxpdCl8MCxpPWkrTWF0aC5pbXVsKEMsb3QpfDAsbj1uK01hdGguaW11bChBLGx0KXwwLGE9KGE9YStNYXRoLmltdWwoQSxjdCl8MCkrTWF0aC5pbXVsKFMsbHQpfDAsaT1pK01hdGguaW11bChTLGN0KXwwLG49bitNYXRoLmltdWwoayxodCl8MCxhPShhPWErTWF0aC5pbXVsKGssZnQpfDApK01hdGguaW11bChULGh0KXwwLGk9aStNYXRoLmltdWwoVCxmdCl8MDt2YXIgRXQ9KGMrKG49bitNYXRoLmltdWwoYixkdCl8MCl8MCkrKCg4MTkxJihhPShhPWErTWF0aC5pbXVsKGIsZ3QpfDApK01hdGguaW11bChfLGR0KXwwKSk8PDEzKXwwO2M9KChpPWkrTWF0aC5pbXVsKF8sZ3QpfDApKyhhPj4+MTMpfDApKyhFdD4+PjI2KXwwLEV0Jj02NzEwODg2MyxuPU1hdGguaW11bChCLCQpLGE9KGE9TWF0aC5pbXVsKEIsdHQpKStNYXRoLmltdWwoTiwkKXwwLGk9TWF0aC5pbXVsKE4sdHQpLG49bitNYXRoLmltdWwoRCxydCl8MCxhPShhPWErTWF0aC5pbXVsKEQsbnQpfDApK01hdGguaW11bChSLHJ0KXwwLGk9aStNYXRoLmltdWwoUixudCl8MCxuPW4rTWF0aC5pbXVsKE8saXQpfDAsYT0oYT1hK01hdGguaW11bChPLG90KXwwKStNYXRoLmltdWwoeixpdCl8MCxpPWkrTWF0aC5pbXVsKHosb3QpfDAsbj1uK01hdGguaW11bChMLGx0KXwwLGE9KGE9YStNYXRoLmltdWwoTCxjdCl8MCkrTWF0aC5pbXVsKEMsbHQpfDAsaT1pK01hdGguaW11bChDLGN0KXwwLG49bitNYXRoLmltdWwoQSxodCl8MCxhPShhPWErTWF0aC5pbXVsKEEsZnQpfDApK01hdGguaW11bChTLGh0KXwwLGk9aStNYXRoLmltdWwoUyxmdCl8MDt2YXIgTHQ9KGMrKG49bitNYXRoLmltdWwoayxkdCl8MCl8MCkrKCg4MTkxJihhPShhPWErTWF0aC5pbXVsKGssZ3QpfDApK01hdGguaW11bChULGR0KXwwKSk8PDEzKXwwO2M9KChpPWkrTWF0aC5pbXVsKFQsZ3QpfDApKyhhPj4+MTMpfDApKyhMdD4+PjI2KXwwLEx0Jj02NzEwODg2MyxuPU1hdGguaW11bChCLHJ0KSxhPShhPU1hdGguaW11bChCLG50KSkrTWF0aC5pbXVsKE4scnQpfDAsaT1NYXRoLmltdWwoTixudCksbj1uK01hdGguaW11bChELGl0KXwwLGE9KGE9YStNYXRoLmltdWwoRCxvdCl8MCkrTWF0aC5pbXVsKFIsaXQpfDAsaT1pK01hdGguaW11bChSLG90KXwwLG49bitNYXRoLmltdWwoTyxsdCl8MCxhPShhPWErTWF0aC5pbXVsKE8sY3QpfDApK01hdGguaW11bCh6LGx0KXwwLGk9aStNYXRoLmltdWwoeixjdCl8MCxuPW4rTWF0aC5pbXVsKEwsaHQpfDAsYT0oYT1hK01hdGguaW11bChMLGZ0KXwwKStNYXRoLmltdWwoQyxodCl8MCxpPWkrTWF0aC5pbXVsKEMsZnQpfDA7dmFyIEN0PShjKyhuPW4rTWF0aC5pbXVsKEEsZHQpfDApfDApKygoODE5MSYoYT0oYT1hK01hdGguaW11bChBLGd0KXwwKStNYXRoLmltdWwoUyxkdCl8MCkpPDwxMyl8MDtjPSgoaT1pK01hdGguaW11bChTLGd0KXwwKSsoYT4+PjEzKXwwKSsoQ3Q+Pj4yNil8MCxDdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoQixpdCksYT0oYT1NYXRoLmltdWwoQixvdCkpK01hdGguaW11bChOLGl0KXwwLGk9TWF0aC5pbXVsKE4sb3QpLG49bitNYXRoLmltdWwoRCxsdCl8MCxhPShhPWErTWF0aC5pbXVsKEQsY3QpfDApK01hdGguaW11bChSLGx0KXwwLGk9aStNYXRoLmltdWwoUixjdCl8MCxuPW4rTWF0aC5pbXVsKE8saHQpfDAsYT0oYT1hK01hdGguaW11bChPLGZ0KXwwKStNYXRoLmltdWwoeixodCl8MCxpPWkrTWF0aC5pbXVsKHosZnQpfDA7dmFyIFB0PShjKyhuPW4rTWF0aC5pbXVsKEwsZHQpfDApfDApKygoODE5MSYoYT0oYT1hK01hdGguaW11bChMLGd0KXwwKStNYXRoLmltdWwoQyxkdCl8MCkpPDwxMyl8MDtjPSgoaT1pK01hdGguaW11bChDLGd0KXwwKSsoYT4+PjEzKXwwKSsoUHQ+Pj4yNil8MCxQdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoQixsdCksYT0oYT1NYXRoLmltdWwoQixjdCkpK01hdGguaW11bChOLGx0KXwwLGk9TWF0aC5pbXVsKE4sY3QpLG49bitNYXRoLmltdWwoRCxodCl8MCxhPShhPWErTWF0aC5pbXVsKEQsZnQpfDApK01hdGguaW11bChSLGh0KXwwLGk9aStNYXRoLmltdWwoUixmdCl8MDt2YXIgT3Q9KGMrKG49bitNYXRoLmltdWwoTyxkdCl8MCl8MCkrKCg4MTkxJihhPShhPWErTWF0aC5pbXVsKE8sZ3QpfDApK01hdGguaW11bCh6LGR0KXwwKSk8PDEzKXwwO2M9KChpPWkrTWF0aC5pbXVsKHosZ3QpfDApKyhhPj4+MTMpfDApKyhPdD4+PjI2KXwwLE90Jj02NzEwODg2MyxuPU1hdGguaW11bChCLGh0KSxhPShhPU1hdGguaW11bChCLGZ0KSkrTWF0aC5pbXVsKE4saHQpfDAsaT1NYXRoLmltdWwoTixmdCk7dmFyIHp0PShjKyhuPW4rTWF0aC5pbXVsKEQsZHQpfDApfDApKygoODE5MSYoYT0oYT1hK01hdGguaW11bChELGd0KXwwKStNYXRoLmltdWwoUixkdCl8MCkpPDwxMyl8MDtjPSgoaT1pK01hdGguaW11bChSLGd0KXwwKSsoYT4+PjEzKXwwKSsoenQ+Pj4yNil8MCx6dCY9NjcxMDg4NjM7dmFyIEl0PShjKyhuPU1hdGguaW11bChCLGR0KSl8MCkrKCg4MTkxJihhPShhPU1hdGguaW11bChCLGd0KSkrTWF0aC5pbXVsKE4sZHQpfDApKTw8MTMpfDA7cmV0dXJuIGM9KChpPU1hdGguaW11bChOLGd0KSkrKGE+Pj4xMyl8MCkrKEl0Pj4+MjYpfDAsSXQmPTY3MTA4ODYzLGxbMF09dnQsbFsxXT1tdCxsWzJdPXl0LGxbM109eHQsbFs0XT1idCxsWzVdPV90LGxbNl09d3QsbFs3XT1rdCxsWzhdPVR0LGxbOV09TXQsbFsxMF09QXQsbFsxMV09U3QsbFsxMl09RXQsbFsxM109THQsbFsxNF09Q3QsbFsxNV09UHQsbFsxNl09T3QsbFsxN109enQsbFsxOF09SXQsMCE9PWMmJihsWzE5XT1jLHIubGVuZ3RoKyspLHJ9O2Z1bmN0aW9uIGQodCxlLHIpe3JldHVybihuZXcgZykubXVscCh0LGUscil9ZnVuY3Rpb24gZyh0LGUpe3RoaXMueD10LHRoaXMueT1lfU1hdGguaW11bHx8KHA9ZiksaS5wcm90b3R5cGUubXVsVG89ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmxlbmd0aCt0Lmxlbmd0aDtyZXR1cm4gMTA9PT10aGlzLmxlbmd0aCYmMTA9PT10Lmxlbmd0aD9wKHRoaXMsdCxlKTpyPDYzP2YodGhpcyx0LGUpOnI8MTAyND9mdW5jdGlvbih0LGUscil7ci5uZWdhdGl2ZT1lLm5lZ2F0aXZlXnQubmVnYXRpdmUsci5sZW5ndGg9dC5sZW5ndGgrZS5sZW5ndGg7Zm9yKHZhciBuPTAsYT0wLGk9MDtpPHIubGVuZ3RoLTE7aSsrKXt2YXIgbz1hO2E9MDtmb3IodmFyIHM9NjcxMDg4NjMmbixsPU1hdGgubWluKGksZS5sZW5ndGgtMSksYz1NYXRoLm1heCgwLGktdC5sZW5ndGgrMSk7Yzw9bDtjKyspe3ZhciB1PWktYyxoPSgwfHQud29yZHNbdV0pKigwfGUud29yZHNbY10pLGY9NjcxMDg4NjMmaDtzPTY3MTA4ODYzJihmPWYrc3wwKSxhKz0obz0obz1vKyhoLzY3MTA4ODY0fDApfDApKyhmPj4+MjYpfDApPj4+MjYsbyY9NjcxMDg4NjN9ci53b3Jkc1tpXT1zLG49byxvPWF9cmV0dXJuIDAhPT1uP3Iud29yZHNbaV09bjpyLmxlbmd0aC0tLHIuc3RyaXAoKX0odGhpcyx0LGUpOmQodGhpcyx0LGUpfSxnLnByb3RvdHlwZS5tYWtlUkJUPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodCkscj1pLnByb3RvdHlwZS5fY291bnRCaXRzKHQpLTEsbj0wO248dDtuKyspZVtuXT10aGlzLnJldkJpbihuLHIsdCk7cmV0dXJuIGV9LGcucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbih0LGUscil7aWYoMD09PXR8fHQ9PT1yLTEpcmV0dXJuIHQ7Zm9yKHZhciBuPTAsYT0wO2E8ZTthKyspbnw9KDEmdCk8PGUtYS0xLHQ+Pj0xO3JldHVybiBufSxnLnByb3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKHQsZSxyLG4sYSxpKXtmb3IodmFyIG89MDtvPGk7bysrKW5bb109ZVt0W29dXSxhW29dPXJbdFtvXV19LGcucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbih0LGUscixuLGEsaSl7dGhpcy5wZXJtdXRlKGksdCxlLHIsbixhKTtmb3IodmFyIG89MTtvPGE7bzw8PTEpZm9yKHZhciBzPW88PDEsbD1NYXRoLmNvcygyKk1hdGguUEkvcyksYz1NYXRoLnNpbigyKk1hdGguUEkvcyksdT0wO3U8YTt1Kz1zKWZvcih2YXIgaD1sLGY9YyxwPTA7cDxvO3ArKyl7dmFyIGQ9clt1K3BdLGc9blt1K3BdLHY9clt1K3Arb10sbT1uW3UrcCtvXSx5PWgqdi1mKm07bT1oKm0rZip2LHY9eSxyW3UrcF09ZCt2LG5bdStwXT1nK20sclt1K3Arb109ZC12LG5bdStwK29dPWctbSxwIT09cyYmKHk9bCpoLWMqZixmPWwqZitjKmgsaD15KX19LGcucHJvdG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKHQsZSl7dmFyIHI9MXxNYXRoLm1heChlLHQpLG49MSZyLGE9MDtmb3Iocj1yLzJ8MDtyO3I+Pj49MSlhKys7cmV0dXJuIDE8PGErMStufSxnLnByb3RvdHlwZS5jb25qdWdhdGU9ZnVuY3Rpb24odCxlLHIpe2lmKCEocjw9MSkpZm9yKHZhciBuPTA7bjxyLzI7bisrKXt2YXIgYT10W25dO3Rbbl09dFtyLW4tMV0sdFtyLW4tMV09YSxhPWVbbl0sZVtuXT0tZVtyLW4tMV0sZVtyLW4tMV09LWF9fSxnLnByb3RvdHlwZS5ub3JtYWxpemUxM2I9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MCxuPTA7bjxlLzI7bisrKXt2YXIgYT04MTkyKk1hdGgucm91bmQodFsyKm4rMV0vZSkrTWF0aC5yb3VuZCh0WzIqbl0vZSkrcjt0W25dPTY3MTA4ODYzJmEscj1hPDY3MTA4ODY0PzA6YS82NzEwODg2NHwwfXJldHVybiB0fSxnLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKHQsZSxyLGEpe2Zvcih2YXIgaT0wLG89MDtvPGU7bysrKWkrPTB8dFtvXSxyWzIqb109ODE5MSZpLGk+Pj49MTMsclsyKm8rMV09ODE5MSZpLGk+Pj49MTM7Zm9yKG89MiplO288YTsrK28pcltvXT0wO24oMD09PWkpLG4oMD09KC04MTkyJmkpKX0sZy5wcm90b3R5cGUuc3R1Yj1mdW5jdGlvbih0KXtmb3IodmFyIGU9bmV3IEFycmF5KHQpLHI9MDtyPHQ7cisrKWVbcl09MDtyZXR1cm4gZX0sZy5wcm90b3R5cGUubXVscD1mdW5jdGlvbih0LGUscil7dmFyIG49Mip0aGlzLmd1ZXNzTGVuMTNiKHQubGVuZ3RoLGUubGVuZ3RoKSxhPXRoaXMubWFrZVJCVChuKSxpPXRoaXMuc3R1YihuKSxvPW5ldyBBcnJheShuKSxzPW5ldyBBcnJheShuKSxsPW5ldyBBcnJheShuKSxjPW5ldyBBcnJheShuKSx1PW5ldyBBcnJheShuKSxoPW5ldyBBcnJheShuKSxmPXIud29yZHM7Zi5sZW5ndGg9bix0aGlzLmNvbnZlcnQxM2IodC53b3Jkcyx0Lmxlbmd0aCxvLG4pLHRoaXMuY29udmVydDEzYihlLndvcmRzLGUubGVuZ3RoLGMsbiksdGhpcy50cmFuc2Zvcm0obyxpLHMsbCxuLGEpLHRoaXMudHJhbnNmb3JtKGMsaSx1LGgsbixhKTtmb3IodmFyIHA9MDtwPG47cCsrKXt2YXIgZD1zW3BdKnVbcF0tbFtwXSpoW3BdO2xbcF09c1twXSpoW3BdK2xbcF0qdVtwXSxzW3BdPWR9cmV0dXJuIHRoaXMuY29uanVnYXRlKHMsbCxuKSx0aGlzLnRyYW5zZm9ybShzLGwsZixpLG4sYSksdGhpcy5jb25qdWdhdGUoZixpLG4pLHRoaXMubm9ybWFsaXplMTNiKGYsbiksci5uZWdhdGl2ZT10Lm5lZ2F0aXZlXmUubmVnYXRpdmUsci5sZW5ndGg9dC5sZW5ndGgrZS5sZW5ndGgsci5zdHJpcCgpfSxpLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IGkobnVsbCk7cmV0dXJuIGUud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK3QubGVuZ3RoKSx0aGlzLm11bFRvKHQsZSl9LGkucHJvdG90eXBlLm11bGY9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IGkobnVsbCk7cmV0dXJuIGUud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK3QubGVuZ3RoKSxkKHRoaXMsdCxlKX0saS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLm11bFRvKHQsdGhpcyl9LGkucHJvdG90eXBlLmltdWxuPWZ1bmN0aW9uKHQpe24oIm51bWJlciI9PXR5cGVvZiB0KSxuKHQ8NjcxMDg4NjQpO2Zvcih2YXIgZT0wLHI9MDtyPHRoaXMubGVuZ3RoO3IrKyl7dmFyIGE9KDB8dGhpcy53b3Jkc1tyXSkqdCxpPSg2NzEwODg2MyZhKSsoNjcxMDg4NjMmZSk7ZT4+PTI2LGUrPWEvNjcxMDg4NjR8MCxlKz1pPj4+MjYsdGhpcy53b3Jkc1tyXT02NzEwODg2MyZpfXJldHVybiAwIT09ZSYmKHRoaXMud29yZHNbcl09ZSx0aGlzLmxlbmd0aCsrKSx0aGlzfSxpLnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4odCl9LGkucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0saS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKX0saS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodC5iaXRMZW5ndGgoKSkscj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1yLzI2fDAsYT1yJTI2O2Vbcl09KHQud29yZHNbbl0mMTw8YSk+Pj5hfXJldHVybiBlfSh0KTtpZigwPT09ZS5sZW5ndGgpcmV0dXJuIG5ldyBpKDEpO2Zvcih2YXIgcj10aGlzLG49MDtuPGUubGVuZ3RoJiYwPT09ZVtuXTtuKysscj1yLnNxcigpKTtpZigrK248ZS5sZW5ndGgpZm9yKHZhciBhPXIuc3FyKCk7bjxlLmxlbmd0aDtuKyssYT1hLnNxcigpKTAhPT1lW25dJiYocj1yLm11bChhKSk7cmV0dXJuIHJ9LGkucHJvdG90eXBlLml1c2hsbj1mdW5jdGlvbih0KXtuKCJudW1iZXIiPT10eXBlb2YgdCYmdD49MCk7dmFyIGUscj10JTI2LGE9KHQtcikvMjYsaT02NzEwODg2Mz4+PjI2LXI8PDI2LXI7aWYoMCE9PXIpe3ZhciBvPTA7Zm9yKGU9MDtlPHRoaXMubGVuZ3RoO2UrKyl7dmFyIHM9dGhpcy53b3Jkc1tlXSZpLGw9KDB8dGhpcy53b3Jkc1tlXSktczw8cjt0aGlzLndvcmRzW2VdPWx8byxvPXM+Pj4yNi1yfW8mJih0aGlzLndvcmRzW2VdPW8sdGhpcy5sZW5ndGgrKyl9aWYoMCE9PWEpe2ZvcihlPXRoaXMubGVuZ3RoLTE7ZT49MDtlLS0pdGhpcy53b3Jkc1tlK2FdPXRoaXMud29yZHNbZV07Zm9yKGU9MDtlPGE7ZSsrKXRoaXMud29yZHNbZV09MDt0aGlzLmxlbmd0aCs9YX1yZXR1cm4gdGhpcy5zdHJpcCgpfSxpLnByb3RvdHlwZS5pc2hsbj1mdW5jdGlvbih0KXtyZXR1cm4gbigwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNobG4odCl9LGkucHJvdG90eXBlLml1c2hybj1mdW5jdGlvbih0LGUscil7dmFyIGE7bigibnVtYmVyIj09dHlwZW9mIHQmJnQ+PTApLGE9ZT8oZS1lJTI2KS8yNjowO3ZhciBpPXQlMjYsbz1NYXRoLm1pbigodC1pKS8yNix0aGlzLmxlbmd0aCkscz02NzEwODg2M142NzEwODg2Mz4+Pmk8PGksbD1yO2lmKGEtPW8sYT1NYXRoLm1heCgwLGEpLGwpe2Zvcih2YXIgYz0wO2M8bztjKyspbC53b3Jkc1tjXT10aGlzLndvcmRzW2NdO2wubGVuZ3RoPW99aWYoMD09PW8pO2Vsc2UgaWYodGhpcy5sZW5ndGg+bylmb3IodGhpcy5sZW5ndGgtPW8sYz0wO2M8dGhpcy5sZW5ndGg7YysrKXRoaXMud29yZHNbY109dGhpcy53b3Jkc1tjK29dO2Vsc2UgdGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTE7dmFyIHU9MDtmb3IoYz10aGlzLmxlbmd0aC0xO2M+PTAmJigwIT09dXx8Yz49YSk7Yy0tKXt2YXIgaD0wfHRoaXMud29yZHNbY107dGhpcy53b3Jkc1tjXT11PDwyNi1pfGg+Pj5pLHU9aCZzfXJldHVybiBsJiYwIT09dSYmKGwud29yZHNbbC5sZW5ndGgrK109dSksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuc3RyaXAoKX0saS5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24odCxlLHIpe3JldHVybiBuKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hybih0LGUscil9LGkucHJvdG90eXBlLnNobG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbih0KX0saS5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4odCl9LGkucHJvdG90eXBlLnNocm49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybih0KX0saS5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4odCl9LGkucHJvdG90eXBlLnRlc3RuPWZ1bmN0aW9uKHQpe24oIm51bWJlciI9PXR5cGVvZiB0JiZ0Pj0wKTt2YXIgZT10JTI2LHI9KHQtZSkvMjYsYT0xPDxlO3JldHVybiEodGhpcy5sZW5ndGg8PXIpJiYhISh0aGlzLndvcmRzW3JdJmEpfSxpLnByb3RvdHlwZS5pbWFza249ZnVuY3Rpb24odCl7bigibnVtYmVyIj09dHlwZW9mIHQmJnQ+PTApO3ZhciBlPXQlMjYscj0odC1lKS8yNjtpZihuKDA9PT10aGlzLm5lZ2F0aXZlLCJpbWFza24gd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlIG51bWJlcnMiKSx0aGlzLmxlbmd0aDw9cilyZXR1cm4gdGhpcztpZigwIT09ZSYmcisrLHRoaXMubGVuZ3RoPU1hdGgubWluKHIsdGhpcy5sZW5ndGgpLDAhPT1lKXt2YXIgYT02NzEwODg2M142NzEwODg2Mz4+PmU8PGU7dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSY9YX1yZXR1cm4gdGhpcy5zdHJpcCgpfSxpLnByb3RvdHlwZS5tYXNrbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbih0KX0saS5wcm90b3R5cGUuaWFkZG49ZnVuY3Rpb24odCl7cmV0dXJuIG4oIm51bWJlciI9PXR5cGVvZiB0KSxuKHQ8NjcxMDg4NjQpLHQ8MD90aGlzLmlzdWJuKC10KTowIT09dGhpcy5uZWdhdGl2ZT8xPT09dGhpcy5sZW5ndGgmJigwfHRoaXMud29yZHNbMF0pPHQ/KHRoaXMud29yZHNbMF09dC0oMHx0aGlzLndvcmRzWzBdKSx0aGlzLm5lZ2F0aXZlPTAsdGhpcyk6KHRoaXMubmVnYXRpdmU9MCx0aGlzLmlzdWJuKHQpLHRoaXMubmVnYXRpdmU9MSx0aGlzKTp0aGlzLl9pYWRkbih0KX0saS5wcm90b3R5cGUuX2lhZGRuPWZ1bmN0aW9uKHQpe3RoaXMud29yZHNbMF0rPXQ7Zm9yKHZhciBlPTA7ZTx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1tlXT49NjcxMDg4NjQ7ZSsrKXRoaXMud29yZHNbZV0tPTY3MTA4ODY0LGU9PT10aGlzLmxlbmd0aC0xP3RoaXMud29yZHNbZSsxXT0xOnRoaXMud29yZHNbZSsxXSsrO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxlKzEpLHRoaXN9LGkucHJvdG90eXBlLmlzdWJuPWZ1bmN0aW9uKHQpe2lmKG4oIm51bWJlciI9PXR5cGVvZiB0KSxuKHQ8NjcxMDg4NjQpLHQ8MClyZXR1cm4gdGhpcy5pYWRkbigtdCk7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKHQpLHRoaXMubmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPXQsMT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFyIGU9MDtlPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW2VdPDA7ZSsrKXRoaXMud29yZHNbZV0rPTY3MTA4ODY0LHRoaXMud29yZHNbZSsxXS09MTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxpLnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuaWFkZG4odCl9LGkucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3Vibih0KX0saS5wcm90b3R5cGUuaWFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30saS5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCl9LGkucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbih0LGUscil7dmFyIGEsaSxvPXQubGVuZ3RoK3I7dGhpcy5fZXhwYW5kKG8pO3ZhciBzPTA7Zm9yKGE9MDthPHQubGVuZ3RoO2ErKyl7aT0oMHx0aGlzLndvcmRzW2Ercl0pK3M7dmFyIGw9KDB8dC53b3Jkc1thXSkqZTtzPSgoaS09NjcxMDg4NjMmbCk+PjI2KS0obC82NzEwODg2NHwwKSx0aGlzLndvcmRzW2Ercl09NjcxMDg4NjMmaX1mb3IoO2E8dGhpcy5sZW5ndGgtcjthKyspcz0oaT0oMHx0aGlzLndvcmRzW2Ercl0pK3MpPj4yNix0aGlzLndvcmRzW2Ercl09NjcxMDg4NjMmaTtpZigwPT09cylyZXR1cm4gdGhpcy5zdHJpcCgpO2ZvcihuKC0xPT09cykscz0wLGE9MDthPHRoaXMubGVuZ3RoO2ErKylzPShpPS0oMHx0aGlzLndvcmRzW2FdKStzKT4+MjYsdGhpcy53b3Jkc1thXT02NzEwODg2MyZpO3JldHVybiB0aGlzLm5lZ2F0aXZlPTEsdGhpcy5zdHJpcCgpfSxpLnByb3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbih0LGUpe3ZhciByPSh0aGlzLmxlbmd0aCx0Lmxlbmd0aCksbj10aGlzLmNsb25lKCksYT10LG89MHxhLndvcmRzW2EubGVuZ3RoLTFdOzAhPT0ocj0yNi10aGlzLl9jb3VudEJpdHMobykpJiYoYT1hLnVzaGxuKHIpLG4uaXVzaGxuKHIpLG89MHxhLndvcmRzW2EubGVuZ3RoLTFdKTt2YXIgcyxsPW4ubGVuZ3RoLWEubGVuZ3RoO2lmKCJtb2QiIT09ZSl7KHM9bmV3IGkobnVsbCkpLmxlbmd0aD1sKzEscy53b3Jkcz1uZXcgQXJyYXkocy5sZW5ndGgpO2Zvcih2YXIgYz0wO2M8cy5sZW5ndGg7YysrKXMud29yZHNbY109MH12YXIgdT1uLmNsb25lKCkuX2lzaGxuc3VibXVsKGEsMSxsKTswPT09dS5uZWdhdGl2ZSYmKG49dSxzJiYocy53b3Jkc1tsXT0xKSk7Zm9yKHZhciBoPWwtMTtoPj0wO2gtLSl7dmFyIGY9NjcxMDg4NjQqKDB8bi53b3Jkc1thLmxlbmd0aCtoXSkrKDB8bi53b3Jkc1thLmxlbmd0aCtoLTFdKTtmb3IoZj1NYXRoLm1pbihmL298MCw2NzEwODg2Myksbi5faXNobG5zdWJtdWwoYSxmLGgpOzAhPT1uLm5lZ2F0aXZlOylmLS0sbi5uZWdhdGl2ZT0wLG4uX2lzaGxuc3VibXVsKGEsMSxoKSxuLmlzWmVybygpfHwobi5uZWdhdGl2ZV49MSk7cyYmKHMud29yZHNbaF09Zil9cmV0dXJuIHMmJnMuc3RyaXAoKSxuLnN0cmlwKCksImRpdiIhPT1lJiYwIT09ciYmbi5pdXNocm4ocikse2RpdjpzfHxudWxsLG1vZDpufX0saS5wcm90b3R5cGUuZGl2bW9kPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gbighdC5pc1plcm8oKSksdGhpcy5pc1plcm8oKT97ZGl2Om5ldyBpKDApLG1vZDpuZXcgaSgwKX06MCE9PXRoaXMubmVnYXRpdmUmJjA9PT10Lm5lZ2F0aXZlPyhzPXRoaXMubmVnKCkuZGl2bW9kKHQsZSksIm1vZCIhPT1lJiYoYT1zLmRpdi5uZWcoKSksImRpdiIhPT1lJiYobz1zLm1vZC5uZWcoKSxyJiYwIT09by5uZWdhdGl2ZSYmby5pYWRkKHQpKSx7ZGl2OmEsbW9kOm99KTowPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXQubmVnYXRpdmU/KHM9dGhpcy5kaXZtb2QodC5uZWcoKSxlKSwibW9kIiE9PWUmJihhPXMuZGl2Lm5lZygpKSx7ZGl2OmEsbW9kOnMubW9kfSk6MCE9KHRoaXMubmVnYXRpdmUmdC5uZWdhdGl2ZSk/KHM9dGhpcy5uZWcoKS5kaXZtb2QodC5uZWcoKSxlKSwiZGl2IiE9PWUmJihvPXMubW9kLm5lZygpLHImJjAhPT1vLm5lZ2F0aXZlJiZvLmlzdWIodCkpLHtkaXY6cy5kaXYsbW9kOm99KTp0Lmxlbmd0aD50aGlzLmxlbmd0aHx8dGhpcy5jbXAodCk8MD97ZGl2Om5ldyBpKDApLG1vZDp0aGlzfToxPT09dC5sZW5ndGg/ImRpdiI9PT1lP3tkaXY6dGhpcy5kaXZuKHQud29yZHNbMF0pLG1vZDpudWxsfToibW9kIj09PWU/e2RpdjpudWxsLG1vZDpuZXcgaSh0aGlzLm1vZG4odC53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bih0LndvcmRzWzBdKSxtb2Q6bmV3IGkodGhpcy5tb2RuKHQud29yZHNbMF0pKX06dGhpcy5fd29yZERpdih0LGUpO3ZhciBhLG8sc30saS5wcm90b3R5cGUuZGl2PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmRpdm1vZCh0LCJkaXYiLCExKS5kaXZ9LGkucHJvdG90eXBlLm1vZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kaXZtb2QodCwibW9kIiwhMSkubW9kfSxpLnByb3RvdHlwZS51bW9kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmRpdm1vZCh0LCJtb2QiLCEwKS5tb2R9LGkucHJvdG90eXBlLmRpdlJvdW5kPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZGl2bW9kKHQpO2lmKGUubW9kLmlzWmVybygpKXJldHVybiBlLmRpdjt2YXIgcj0wIT09ZS5kaXYubmVnYXRpdmU/ZS5tb2QuaXN1Yih0KTplLm1vZCxuPXQudXNocm4oMSksYT10LmFuZGxuKDEpLGk9ci5jbXAobik7cmV0dXJuIGk8MHx8MT09PWEmJjA9PT1pP2UuZGl2OjAhPT1lLmRpdi5uZWdhdGl2ZT9lLmRpdi5pc3VibigxKTplLmRpdi5pYWRkbigxKX0saS5wcm90b3R5cGUubW9kbj1mdW5jdGlvbih0KXtuKHQ8PTY3MTA4ODYzKTtmb3IodmFyIGU9KDE8PDI2KSV0LHI9MCxhPXRoaXMubGVuZ3RoLTE7YT49MDthLS0pcj0oZSpyKygwfHRoaXMud29yZHNbYV0pKSV0O3JldHVybiByfSxpLnByb3RvdHlwZS5pZGl2bj1mdW5jdGlvbih0KXtuKHQ8PTY3MTA4ODYzKTtmb3IodmFyIGU9MCxyPXRoaXMubGVuZ3RoLTE7cj49MDtyLS0pe3ZhciBhPSgwfHRoaXMud29yZHNbcl0pKzY3MTA4ODY0KmU7dGhpcy53b3Jkc1tyXT1hL3R8MCxlPWEldH1yZXR1cm4gdGhpcy5zdHJpcCgpfSxpLnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuaWRpdm4odCl9LGkucHJvdG90eXBlLmVnY2Q9ZnVuY3Rpb24odCl7bigwPT09dC5uZWdhdGl2ZSksbighdC5pc1plcm8oKSk7dmFyIGU9dGhpcyxyPXQuY2xvbmUoKTtlPTAhPT1lLm5lZ2F0aXZlP2UudW1vZCh0KTplLmNsb25lKCk7Zm9yKHZhciBhPW5ldyBpKDEpLG89bmV3IGkoMCkscz1uZXcgaSgwKSxsPW5ldyBpKDEpLGM9MDtlLmlzRXZlbigpJiZyLmlzRXZlbigpOyllLml1c2hybigxKSxyLml1c2hybigxKSwrK2M7Zm9yKHZhciB1PXIuY2xvbmUoKSxoPWUuY2xvbmUoKTshZS5pc1plcm8oKTspe2Zvcih2YXIgZj0wLHA9MTswPT0oZS53b3Jkc1swXSZwKSYmZjwyNjsrK2YscDw8PTEpO2lmKGY+MClmb3IoZS5pdXNocm4oZik7Zi0tID4wOykoYS5pc09kZCgpfHxvLmlzT2RkKCkpJiYoYS5pYWRkKHUpLG8uaXN1YihoKSksYS5pdXNocm4oMSksby5pdXNocm4oMSk7Zm9yKHZhciBkPTAsZz0xOzA9PShyLndvcmRzWzBdJmcpJiZkPDI2OysrZCxnPDw9MSk7aWYoZD4wKWZvcihyLml1c2hybihkKTtkLS0gPjA7KShzLmlzT2RkKCl8fGwuaXNPZGQoKSkmJihzLmlhZGQodSksbC5pc3ViKGgpKSxzLml1c2hybigxKSxsLml1c2hybigxKTtlLmNtcChyKT49MD8oZS5pc3ViKHIpLGEuaXN1YihzKSxvLmlzdWIobCkpOihyLmlzdWIoZSkscy5pc3ViKGEpLGwuaXN1YihvKSl9cmV0dXJue2E6cyxiOmwsZ2NkOnIuaXVzaGxuKGMpfX0saS5wcm90b3R5cGUuX2ludm1wPWZ1bmN0aW9uKHQpe24oMD09PXQubmVnYXRpdmUpLG4oIXQuaXNaZXJvKCkpO3ZhciBlPXRoaXMscj10LmNsb25lKCk7ZT0wIT09ZS5uZWdhdGl2ZT9lLnVtb2QodCk6ZS5jbG9uZSgpO2Zvcih2YXIgYSxvPW5ldyBpKDEpLHM9bmV3IGkoMCksbD1yLmNsb25lKCk7ZS5jbXBuKDEpPjAmJnIuY21wbigxKT4wOyl7Zm9yKHZhciBjPTAsdT0xOzA9PShlLndvcmRzWzBdJnUpJiZjPDI2OysrYyx1PDw9MSk7aWYoYz4wKWZvcihlLml1c2hybihjKTtjLS0gPjA7KW8uaXNPZGQoKSYmby5pYWRkKGwpLG8uaXVzaHJuKDEpO2Zvcih2YXIgaD0wLGY9MTswPT0oci53b3Jkc1swXSZmKSYmaDwyNjsrK2gsZjw8PTEpO2lmKGg+MClmb3Ioci5pdXNocm4oaCk7aC0tID4wOylzLmlzT2RkKCkmJnMuaWFkZChsKSxzLml1c2hybigxKTtlLmNtcChyKT49MD8oZS5pc3ViKHIpLG8uaXN1YihzKSk6KHIuaXN1YihlKSxzLmlzdWIobykpfXJldHVybihhPTA9PT1lLmNtcG4oMSk/bzpzKS5jbXBuKDApPDAmJmEuaWFkZCh0KSxhfSxpLnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24odCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gdC5hYnMoKTtpZih0LmlzWmVybygpKXJldHVybiB0aGlzLmFicygpO3ZhciBlPXRoaXMuY2xvbmUoKSxyPXQuY2xvbmUoKTtlLm5lZ2F0aXZlPTAsci5uZWdhdGl2ZT0wO2Zvcih2YXIgbj0wO2UuaXNFdmVuKCkmJnIuaXNFdmVuKCk7bisrKWUuaXVzaHJuKDEpLHIuaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDtlLmlzRXZlbigpOyllLml1c2hybigxKTtmb3IoO3IuaXNFdmVuKCk7KXIuaXVzaHJuKDEpO3ZhciBhPWUuY21wKHIpO2lmKGE8MCl7dmFyIGk9ZTtlPXIscj1pfWVsc2UgaWYoMD09PWF8fDA9PT1yLmNtcG4oMSkpYnJlYWs7ZS5pc3ViKHIpfXJldHVybiByLml1c2hsbihuKX0saS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5lZ2NkKHQpLmEudW1vZCh0KX0saS5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PSgxJnRoaXMud29yZHNbMF0pfSxpLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT0oMSZ0aGlzLndvcmRzWzBdKX0saS5wcm90b3R5cGUuYW5kbG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMud29yZHNbMF0mdH0saS5wcm90b3R5cGUuYmluY249ZnVuY3Rpb24odCl7bigibnVtYmVyIj09dHlwZW9mIHQpO3ZhciBlPXQlMjYscj0odC1lKS8yNixhPTE8PGU7aWYodGhpcy5sZW5ndGg8PXIpcmV0dXJuIHRoaXMuX2V4cGFuZChyKzEpLHRoaXMud29yZHNbcl18PWEsdGhpcztmb3IodmFyIGk9YSxvPXI7MCE9PWkmJm88dGhpcy5sZW5ndGg7bysrKXt2YXIgcz0wfHRoaXMud29yZHNbb107aT0ocys9aSk+Pj4yNixzJj02NzEwODg2Myx0aGlzLndvcmRzW29dPXN9cmV0dXJuIDAhPT1pJiYodGhpcy53b3Jkc1tvXT1pLHRoaXMubGVuZ3RoKyspLHRoaXN9LGkucHJvdG90eXBlLmlzWmVybz1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdfSxpLnByb3RvdHlwZS5jbXBuPWZ1bmN0aW9uKHQpe3ZhciBlLHI9dDwwO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYhcilyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmcilyZXR1cm4gMTtpZih0aGlzLnN0cmlwKCksdGhpcy5sZW5ndGg+MSllPTE7ZWxzZXtyJiYodD0tdCksbih0PD02NzEwODg2MywiTnVtYmVyIGlzIHRvbyBiaWciKTt2YXIgYT0wfHRoaXMud29yZHNbMF07ZT1hPT09dD8wOmE8dD8tMToxfXJldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1lOmV9LGkucHJvdG90eXBlLmNtcD1mdW5jdGlvbih0KXtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PXQubmVnYXRpdmUpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT10Lm5lZ2F0aXZlKXJldHVybiAxO3ZhciBlPXRoaXMudWNtcCh0KTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtZTplfSxpLnByb3RvdHlwZS51Y21wPWZ1bmN0aW9uKHQpe2lmKHRoaXMubGVuZ3RoPnQubGVuZ3RoKXJldHVybiAxO2lmKHRoaXMubGVuZ3RoPHQubGVuZ3RoKXJldHVybi0xO2Zvcih2YXIgZT0wLHI9dGhpcy5sZW5ndGgtMTtyPj0wO3ItLSl7dmFyIG49MHx0aGlzLndvcmRzW3JdLGE9MHx0LndvcmRzW3JdO2lmKG4hPT1hKXtuPGE/ZT0tMTpuPmEmJihlPTEpO2JyZWFrfX1yZXR1cm4gZX0saS5wcm90b3R5cGUuZ3RuPWZ1bmN0aW9uKHQpe3JldHVybiAxPT09dGhpcy5jbXBuKHQpfSxpLnByb3RvdHlwZS5ndD1mdW5jdGlvbih0KXtyZXR1cm4gMT09PXRoaXMuY21wKHQpfSxpLnByb3RvdHlwZS5ndGVuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNtcG4odCk+PTB9LGkucHJvdG90eXBlLmd0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbXAodCk+PTB9LGkucHJvdG90eXBlLmx0bj1mdW5jdGlvbih0KXtyZXR1cm4tMT09PXRoaXMuY21wbih0KX0saS5wcm90b3R5cGUubHQ9ZnVuY3Rpb24odCl7cmV0dXJuLTE9PT10aGlzLmNtcCh0KX0saS5wcm90b3R5cGUubHRlbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbXBuKHQpPD0wfSxpLnByb3RvdHlwZS5sdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY21wKHQpPD0wfSxpLnByb3RvdHlwZS5lcW49ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10aGlzLmNtcG4odCl9LGkucHJvdG90eXBlLmVxPWZ1bmN0aW9uKHQpe3JldHVybiAwPT09dGhpcy5jbXAodCl9LGkucmVkPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgdyh0KX0saS5wcm90b3R5cGUudG9SZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIG4oIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksbigwPT09dGhpcy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSx0LmNvbnZlcnRUbyh0aGlzKS5fZm9yY2VSZWQodCl9LGkucHJvdG90eXBlLmZyb21SZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLnJlZCwiZnJvbVJlZCB3b3JrcyBvbmx5IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSxpLnByb3RvdHlwZS5fZm9yY2VSZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucmVkPXQsdGhpc30saS5wcm90b3R5cGUuZm9yY2VSZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIG4oIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VSZWQodCl9LGkucHJvdG90eXBlLnJlZEFkZD1mdW5jdGlvbih0KXtyZXR1cm4gbih0aGlzLnJlZCwicmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmFkZCh0aGlzLHQpfSxpLnByb3RvdHlwZS5yZWRJQWRkPWZ1bmN0aW9uKHQpe3JldHVybiBuKHRoaXMucmVkLCJyZWRJQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlhZGQodGhpcyx0KX0saS5wcm90b3R5cGUucmVkU3ViPWZ1bmN0aW9uKHQpe3JldHVybiBuKHRoaXMucmVkLCJyZWRTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc3ViKHRoaXMsdCl9LGkucHJvdG90eXBlLnJlZElTdWI9ZnVuY3Rpb24odCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZElTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaXN1Yih0aGlzLHQpfSxpLnByb3RvdHlwZS5yZWRTaGw9ZnVuY3Rpb24odCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZFNobCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zaGwodGhpcyx0KX0saS5wcm90b3R5cGUucmVkTXVsPWZ1bmN0aW9uKHQpe3JldHVybiBuKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyx0KSx0aGlzLnJlZC5tdWwodGhpcyx0KX0saS5wcm90b3R5cGUucmVkSU11bD1mdW5jdGlvbih0KXtyZXR1cm4gbih0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsdCksdGhpcy5yZWQuaW11bCh0aGlzLHQpfSxpLnByb3RvdHlwZS5yZWRTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcih0aGlzKX0saS5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJyZWRJU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmlzcXIodGhpcyl9LGkucHJvdG90eXBlLnJlZFNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXJ0KHRoaXMpfSxpLnByb3RvdHlwZS5yZWRJbnZtPWZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaW52bSh0aGlzKX0saS5wcm90b3R5cGUucmVkTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5uZWcodGhpcyl9LGkucHJvdG90eXBlLnJlZFBvdz1mdW5jdGlvbih0KXtyZXR1cm4gbih0aGlzLnJlZCYmIXQucmVkLCJyZWRQb3cobm9ybWFsTnVtKSIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnBvdyh0aGlzLHQpfTt2YXIgdj17azI1NjpudWxsLHAyMjQ6bnVsbCxwMTkyOm51bGwscDI1NTE5Om51bGx9O2Z1bmN0aW9uIG0odCxlKXt0aGlzLm5hbWU9dCx0aGlzLnA9bmV3IGkoZSwxNiksdGhpcy5uPXRoaXMucC5iaXRMZW5ndGgoKSx0aGlzLms9bmV3IGkoMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApLHRoaXMudG1wPXRoaXMuX3RtcCgpfWZ1bmN0aW9uIHkoKXttLmNhbGwodGhpcywiazI1NiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmYzJmIil9ZnVuY3Rpb24geCgpe20uY2FsbCh0aGlzLCJwMjI0IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEiKX1mdW5jdGlvbiBiKCl7bS5jYWxsKHRoaXMsInAxOTIiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIpfWZ1bmN0aW9uIF8oKXttLmNhbGwodGhpcywiMjU1MTkiLCI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkIil9ZnVuY3Rpb24gdyh0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpe3ZhciBlPWkuX3ByaW1lKHQpO3RoaXMubT1lLnAsdGhpcy5wcmltZT1lfWVsc2Ugbih0Lmd0bigxKSwibW9kdWx1cyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxIiksdGhpcy5tPXQsdGhpcy5wcmltZT1udWxsfWZ1bmN0aW9uIGsodCl7dy5jYWxsKHRoaXMsdCksdGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9MCYmKHRoaXMuc2hpZnQrPTI2LXRoaXMuc2hpZnQlMjYpLHRoaXMucj1uZXcgaSgxKS5pdXNobG4odGhpcy5zaGlmdCksdGhpcy5yMj10aGlzLmltb2QodGhpcy5yLnNxcigpKSx0aGlzLnJpbnY9dGhpcy5yLl9pbnZtcCh0aGlzLm0pLHRoaXMubWludj10aGlzLnJpbnYubXVsKHRoaXMucikuaXN1Ym4oMSkuZGl2KHRoaXMubSksdGhpcy5taW52PXRoaXMubWludi51bW9kKHRoaXMuciksdGhpcy5taW52PXRoaXMuci5zdWIodGhpcy5taW52KX1tLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IGkobnVsbCk7cmV0dXJuIHQud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKSx0fSxtLnByb3RvdHlwZS5pcmVkdWNlPWZ1bmN0aW9uKHQpe3ZhciBlLHI9dDtkb3t0aGlzLnNwbGl0KHIsdGhpcy50bXApLGU9KHI9KHI9dGhpcy5pbXVsSyhyKSkuaWFkZCh0aGlzLnRtcCkpLmJpdExlbmd0aCgpfXdoaWxlKGU+dGhpcy5uKTt2YXIgbj1lPHRoaXMubj8tMTpyLnVjbXAodGhpcy5wKTtyZXR1cm4gMD09PW4/KHIud29yZHNbMF09MCxyLmxlbmd0aD0xKTpuPjA/ci5pc3ViKHRoaXMucCk6ci5zdHJpcCgpLHJ9LG0ucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKHQsZSl7dC5pdXNocm4odGhpcy5uLDAsZSl9LG0ucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHQpe3JldHVybiB0LmltdWwodGhpcy5rKX0sYSh5LG0pLHkucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPU1hdGgubWluKHQubGVuZ3RoLDkpLG49MDtuPHI7bisrKWUud29yZHNbbl09dC53b3Jkc1tuXTtpZihlLmxlbmd0aD1yLHQubGVuZ3RoPD05KXJldHVybiB0LndvcmRzWzBdPTAsdm9pZCh0Lmxlbmd0aD0xKTt2YXIgYT10LndvcmRzWzldO2ZvcihlLndvcmRzW2UubGVuZ3RoKytdPTQxOTQzMDMmYSxuPTEwO248dC5sZW5ndGg7bisrKXt2YXIgaT0wfHQud29yZHNbbl07dC53b3Jkc1tuLTEwXT0oNDE5NDMwMyZpKTw8NHxhPj4+MjIsYT1pfWE+Pj49MjIsdC53b3Jkc1tuLTEwXT1hLDA9PT1hJiZ0Lmxlbmd0aD4xMD90Lmxlbmd0aC09MTA6dC5sZW5ndGgtPTl9LHkucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHQpe3Qud29yZHNbdC5sZW5ndGhdPTAsdC53b3Jkc1t0Lmxlbmd0aCsxXT0wLHQubGVuZ3RoKz0yO2Zvcih2YXIgZT0wLHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG49MHx0LndvcmRzW3JdO2UrPTk3NypuLHQud29yZHNbcl09NjcxMDg4NjMmZSxlPTY0Km4rKGUvNjcxMDg4NjR8MCl9cmV0dXJuIDA9PT10LndvcmRzW3QubGVuZ3RoLTFdJiYodC5sZW5ndGgtLSwwPT09dC53b3Jkc1t0Lmxlbmd0aC0xXSYmdC5sZW5ndGgtLSksdH0sYSh4LG0pLGEoYixtKSxhKF8sbSksXy5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgbj0xOSooMHx0LndvcmRzW3JdKStlLGE9NjcxMDg4NjMmbjtuPj4+PTI2LHQud29yZHNbcl09YSxlPW59cmV0dXJuIDAhPT1lJiYodC53b3Jkc1t0Lmxlbmd0aCsrXT1lKSx0fSxpLl9wcmltZT1mdW5jdGlvbih0KXtpZih2W3RdKXJldHVybiB2W3RdO3ZhciBlO2lmKCJrMjU2Ij09PXQpZT1uZXcgeTtlbHNlIGlmKCJwMjI0Ij09PXQpZT1uZXcgeDtlbHNlIGlmKCJwMTkyIj09PXQpZT1uZXcgYjtlbHNle2lmKCJwMjU1MTkiIT09dCl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gcHJpbWUgIit0KTtlPW5ldyBffXJldHVybiB2W3RdPWUsZX0sdy5wcm90b3R5cGUuX3ZlcmlmeTE9ZnVuY3Rpb24odCl7bigwPT09dC5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxuKHQucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LHcucHJvdG90eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKHQsZSl7bigwPT0odC5uZWdhdGl2ZXxlLm5lZ2F0aXZlKSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxuKHQucmVkJiZ0LnJlZD09PWUucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LHcucHJvdG90eXBlLmltb2Q9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKHQpLl9mb3JjZVJlZCh0aGlzKTp0LnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcyl9LHcucHJvdG90eXBlLm5lZz1mdW5jdGlvbih0KXtyZXR1cm4gdC5pc1plcm8oKT90LmNsb25lKCk6dGhpcy5tLnN1Yih0KS5fZm9yY2VSZWQodGhpcyl9LHcucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0LGUpe3RoaXMuX3ZlcmlmeTIodCxlKTt2YXIgcj10LmFkZChlKTtyZXR1cm4gci5jbXAodGhpcy5tKT49MCYmci5pc3ViKHRoaXMubSksci5fZm9yY2VSZWQodGhpcyl9LHcucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24odCxlKXt0aGlzLl92ZXJpZnkyKHQsZSk7dmFyIHI9dC5pYWRkKGUpO3JldHVybiByLmNtcCh0aGlzLm0pPj0wJiZyLmlzdWIodGhpcy5tKSxyfSx3LnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24odCxlKXt0aGlzLl92ZXJpZnkyKHQsZSk7dmFyIHI9dC5zdWIoZSk7cmV0dXJuIHIuY21wbigwKTwwJiZyLmlhZGQodGhpcy5tKSxyLl9mb3JjZVJlZCh0aGlzKX0sdy5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbih0LGUpe3RoaXMuX3ZlcmlmeTIodCxlKTt2YXIgcj10LmlzdWIoZSk7cmV0dXJuIHIuY21wbigwKTwwJiZyLmlhZGQodGhpcy5tKSxyfSx3LnByb3RvdHlwZS5zaGw9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fdmVyaWZ5MSh0KSx0aGlzLmltb2QodC51c2hsbihlKSl9LHcucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fdmVyaWZ5Mih0LGUpLHRoaXMuaW1vZCh0LmltdWwoZSkpfSx3LnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fdmVyaWZ5Mih0LGUpLHRoaXMuaW1vZCh0Lm11bChlKSl9LHcucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaW11bCh0LHQuY2xvbmUoKSl9LHcucHJvdG90eXBlLnNxcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5tdWwodCx0KX0sdy5wcm90b3R5cGUuc3FydD1mdW5jdGlvbih0KXtpZih0LmlzWmVybygpKXJldHVybiB0LmNsb25lKCk7dmFyIGU9dGhpcy5tLmFuZGxuKDMpO2lmKG4oZSUyPT0xKSwzPT09ZSl7dmFyIHI9dGhpcy5tLmFkZChuZXcgaSgxKSkuaXVzaHJuKDIpO3JldHVybiB0aGlzLnBvdyh0LHIpfWZvcih2YXIgYT10aGlzLm0uc3VibigxKSxvPTA7IWEuaXNaZXJvKCkmJjA9PT1hLmFuZGxuKDEpOylvKyssYS5pdXNocm4oMSk7bighYS5pc1plcm8oKSk7dmFyIHM9bmV3IGkoMSkudG9SZWQodGhpcyksbD1zLnJlZE5lZygpLGM9dGhpcy5tLnN1Ym4oMSkuaXVzaHJuKDEpLHU9dGhpcy5tLmJpdExlbmd0aCgpO2Zvcih1PW5ldyBpKDIqdSp1KS50b1JlZCh0aGlzKTswIT09dGhpcy5wb3codSxjKS5jbXAobCk7KXUucmVkSUFkZChsKTtmb3IodmFyIGg9dGhpcy5wb3codSxhKSxmPXRoaXMucG93KHQsYS5hZGRuKDEpLml1c2hybigxKSkscD10aGlzLnBvdyh0LGEpLGQ9bzswIT09cC5jbXAocyk7KXtmb3IodmFyIGc9cCx2PTA7MCE9PWcuY21wKHMpO3YrKylnPWcucmVkU3FyKCk7bih2PGQpO3ZhciBtPXRoaXMucG93KGgsbmV3IGkoMSkuaXVzaGxuKGQtdi0xKSk7Zj1mLnJlZE11bChtKSxoPW0ucmVkU3FyKCkscD1wLnJlZE11bChoKSxkPXZ9cmV0dXJuIGZ9LHcucHJvdG90eXBlLmludm09ZnVuY3Rpb24odCl7dmFyIGU9dC5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PWUubmVnYXRpdmU/KGUubmVnYXRpdmU9MCx0aGlzLmltb2QoZSkucmVkTmVnKCkpOnRoaXMuaW1vZChlKX0sdy5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHQsZSl7aWYoZS5pc1plcm8oKSlyZXR1cm4gbmV3IGkoMSkudG9SZWQodGhpcyk7aWYoMD09PWUuY21wbigxKSlyZXR1cm4gdC5jbG9uZSgpO3ZhciByPW5ldyBBcnJheSgxNik7clswXT1uZXcgaSgxKS50b1JlZCh0aGlzKSxyWzFdPXQ7Zm9yKHZhciBuPTI7bjxyLmxlbmd0aDtuKyspcltuXT10aGlzLm11bChyW24tMV0sdCk7dmFyIGE9clswXSxvPTAscz0wLGw9ZS5iaXRMZW5ndGgoKSUyNjtmb3IoMD09PWwmJihsPTI2KSxuPWUubGVuZ3RoLTE7bj49MDtuLS0pe2Zvcih2YXIgYz1lLndvcmRzW25dLHU9bC0xO3U+PTA7dS0tKXt2YXIgaD1jPj51JjE7YSE9PXJbMF0mJihhPXRoaXMuc3FyKGEpKSwwIT09aHx8MCE9PW8/KG88PD0xLG98PWgsKDQ9PT0rK3N8fDA9PT1uJiYwPT09dSkmJihhPXRoaXMubXVsKGEscltvXSkscz0wLG89MCkpOnM9MH1sPTI2fXJldHVybiBhfSx3LnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24odCl7dmFyIGU9dC51bW9kKHRoaXMubSk7cmV0dXJuIGU9PT10P2UuY2xvbmUoKTplfSx3LnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbih0KXt2YXIgZT10LmNsb25lKCk7cmV0dXJuIGUucmVkPW51bGwsZX0saS5tb250PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgayh0KX0sYShrLHcpLGsucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbW9kKHQudXNobG4odGhpcy5zaGlmdCkpfSxrLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmltb2QodC5tdWwodGhpcy5yaW52KSk7cmV0dXJuIGUucmVkPW51bGwsZX0say5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih0LGUpe2lmKHQuaXNaZXJvKCl8fGUuaXNaZXJvKCkpcmV0dXJuIHQud29yZHNbMF09MCx0Lmxlbmd0aD0xLHQ7dmFyIHI9dC5pbXVsKGUpLG49ci5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksYT1yLmlzdWIobikuaXVzaHJuKHRoaXMuc2hpZnQpLGk9YTtyZXR1cm4gYS5jbXAodGhpcy5tKT49MD9pPWEuaXN1Yih0aGlzLm0pOmEuY21wbigwKTwwJiYoaT1hLmlhZGQodGhpcy5tKSksaS5fZm9yY2VSZWQodGhpcyl9LGsucHJvdG90eXBlLm11bD1mdW5jdGlvbih0LGUpe2lmKHQuaXNaZXJvKCl8fGUuaXNaZXJvKCkpcmV0dXJuIG5ldyBpKDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgcj10Lm11bChlKSxuPXIubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLGE9ci5pc3ViKG4pLml1c2hybih0aGlzLnNoaWZ0KSxvPWE7cmV0dXJuIGEuY21wKHRoaXMubSk+PTA/bz1hLmlzdWIodGhpcy5tKTphLmNtcG4oMCk8MCYmKG89YS5pYWRkKHRoaXMubSkpLG8uX2ZvcmNlUmVkKHRoaXMpfSxrLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmltb2QodC5faW52bXAodGhpcy5tKS5tdWwodGhpcy5yMikpLl9mb3JjZVJlZCh0aGlzKX19KCJ1bmRlZmluZWQiPT10eXBlb2YgZXx8ZSx0aGlzKX0se2J1ZmZlcjoxMDV9XSw5NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGUscixuLGE9dC5sZW5ndGgsaT0wO2ZvcihlPTA7ZTxhOysrZSlpKz10W2VdLmxlbmd0aDt2YXIgbz1uZXcgQXJyYXkoaSkscz0wO2ZvcihlPTA7ZTxhOysrZSl7dmFyIGw9dFtlXSxjPWwubGVuZ3RoO2ZvcihyPTA7cjxjOysrcil7dmFyIHU9b1tzKytdPW5ldyBBcnJheShjLTEpLGg9MDtmb3Iobj0wO248YzsrK24pbiE9PXImJih1W2grK109bFtuXSk7aWYoMSZyKXt2YXIgZj11WzFdO3VbMV09dVswXSx1WzBdPWZ9fX1yZXR1cm4gb319LHt9XSw5ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDE6cmV0dXJuIG49W10sYyhhPXQsYSx1LCEwKSxuO2Nhc2UgMjpyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZT9jKHQsdCxlLCEwKTpmdW5jdGlvbih0LGUpe3JldHVybiBuPVtdLGModCxlLHUsITEpLG59KHQsZSk7Y2FzZSAzOnJldHVybiBjKHQsZSxyLCExKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiYm94LWludGVyc2VjdDogSW52YWxpZCBhcmd1bWVudHMiKX12YXIgYX07dmFyIG4sYT10KCJ0eXBlZGFycmF5LXBvb2wiKSxpPXQoIi4vbGliL3N3ZWVwIiksbz10KCIuL2xpYi9pbnRlcnNlY3QiKTtmdW5jdGlvbiBzKHQsZSl7Zm9yKHZhciByPTA7cjx0OysrcilpZighKGVbcl08PWVbcit0XSkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gbCh0LGUscixuKXtmb3IodmFyIGE9MCxpPTAsbz0wLGw9dC5sZW5ndGg7bzxsOysrbyl7dmFyIGM9dFtvXTtpZighcyhlLGMpKXtmb3IodmFyIHU9MDt1PDIqZTsrK3UpclthKytdPWNbdV07bltpKytdPW99fXJldHVybiBpfWZ1bmN0aW9uIGModCxlLHIsbil7dmFyIHM9dC5sZW5ndGgsYz1lLmxlbmd0aDtpZighKHM8PTB8fGM8PTApKXt2YXIgdT10WzBdLmxlbmd0aD4+PjE7aWYoISh1PD0wKSl7dmFyIGgsZj1hLm1hbGxvY0RvdWJsZSgyKnUqcykscD1hLm1hbGxvY0ludDMyKHMpO2lmKChzPWwodCx1LGYscCkpPjApe2lmKDE9PT11JiZuKWkuaW5pdChzKSxoPWkuc3dlZXBDb21wbGV0ZSh1LHIsMCxzLGYscCwwLHMsZixwKTtlbHNle3ZhciBkPWEubWFsbG9jRG91YmxlKDIqdSpjKSxnPWEubWFsbG9jSW50MzIoYyk7KGM9bChlLHUsZCxnKSk+MCYmKGkuaW5pdChzK2MpLGg9MT09PXU/aS5zd2VlcEJpcGFydGl0ZSh1LHIsMCxzLGYscCwwLGMsZCxnKTpvKHUscixuLHMsZixwLGMsZCxnKSxhLmZyZWUoZCksYS5mcmVlKGcpKX1hLmZyZWUoZiksYS5mcmVlKHApfXJldHVybiBofX19ZnVuY3Rpb24gdSh0LGUpe24ucHVzaChbdCxlXSl9fSx7Ii4vbGliL2ludGVyc2VjdCI6MTAwLCIuL2xpYi9zd2VlcCI6MTA0LCJ0eXBlZGFycmF5LXBvb2wiOjU0NH1dLDk5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPSJkIixhPSJheCIsaT0idnYiLG89ImZwIixzPSJlcyIsbD0icnMiLGM9InJlIix1PSJyYiIsaD0icmkiLGY9InJwIixwPSJicyIsZD0iYmUiLGc9ImJiIix2PSJiaSIsbT0iYnAiLHk9InJ2Iix4PSJRIixiPVtuLGEsaSxsLGMsdSxoLHAsZCxnLHZdO2Z1bmN0aW9uIF8odCl7dmFyIGU9ImJydXRlRm9yY2UiKyh0PyJGdWxsIjoiUGFydGlhbCIpLHI9W10sXz1iLnNsaWNlKCk7dHx8Xy5zcGxpY2UoMywwLG8pO3ZhciB3PVsiZnVuY3Rpb24gIitlKyIoIitfLmpvaW4oKSsiKXsiXTtmdW5jdGlvbiBrKGUsbyl7dmFyIF89ZnVuY3Rpb24odCxlLHIpe3ZhciBvPSJicnV0ZUZvcmNlIisodD8iUmVkIjoiQmx1ZSIpKyhlPyJGbGlwIjoiIikrKHI/IkZ1bGwiOiIiKSxfPVsiZnVuY3Rpb24gIixvLCIoIixiLmpvaW4oKSwiKXsiLCJ2YXIgIixzLCI9MioiLG4sIjsiXSx3PSJmb3IodmFyIGk9IitsKyIsIitmKyI9IitzKyIqIitsKyI7aTwiK2MrIjsrK2ksIitmKyIrPSIrcysiKXt2YXIgeDA9Iit1KyJbIithKyIrIitmKyJdLHgxPSIrdSsiWyIrYSsiKyIrZisiKyIrbisiXSx4aT0iK2grIltpXTsiLGs9ImZvcih2YXIgaj0iK3ArIiwiK20rIj0iK3MrIioiK3ArIjtqPCIrZCsiOysraiwiK20rIis9IitzKyIpe3ZhciB5MD0iK2crIlsiK2ErIisiK20rIl0sIisocj8ieTE9IitnKyJbIithKyIrIittKyIrIituKyJdLCI6IiIpKyJ5aT0iK3YrIltqXTsiO3JldHVybiB0P18ucHVzaCh3LHgsIjoiLGspOl8ucHVzaChrLHgsIjoiLHcpLHI/Xy5wdXNoKCJpZih5MTx4MHx8eDE8eTApY29udGludWU7Iik6ZT9fLnB1c2goImlmKHkwPD14MHx8eDE8eTApY29udGludWU7Iik6Xy5wdXNoKCJpZih5MDx4MHx8eDE8eTApY29udGludWU7IiksXy5wdXNoKCJmb3IodmFyIGs9IithKyIrMTtrPCIrbisiOysrayl7dmFyIHIwPSIrdSsiW2srIitmKyJdLHIxPSIrdSsiW2srIituKyIrIitmKyJdLGIwPSIrZysiW2srIittKyJdLGIxPSIrZysiW2srIituKyIrIittKyJdO2lmKHIxPGIwfHxiMTxyMCljb250aW51ZSAiK3grIjt9dmFyICIreSsiPSIraSsiKCIpLGU/Xy5wdXNoKCJ5aSx4aSIpOl8ucHVzaCgieGkseWkiKSxfLnB1c2goIik7aWYoIit5KyIhPT12b2lkIDApcmV0dXJuICIreSsiO319fSIpLHtuYW1lOm8sY29kZTpfLmpvaW4oIiIpfX0oZSxvLHQpO3IucHVzaChfLmNvZGUpLHcucHVzaCgicmV0dXJuICIrXy5uYW1lKyIoIitiLmpvaW4oKSsiKTsiKX13LnB1c2goImlmKCIrYysiLSIrbCsiPiIrZCsiLSIrcCsiKXsiKSx0PyhrKCEwLCExKSx3LnB1c2goIn1lbHNleyIpLGsoITEsITEpKToody5wdXNoKCJpZigiK28rIil7IiksayghMCwhMCksdy5wdXNoKCJ9ZWxzZXsiKSxrKCEwLCExKSx3LnB1c2goIn19ZWxzZXtpZigiK28rIil7IiksayghMSwhMCksdy5wdXNoKCJ9ZWxzZXsiKSxrKCExLCExKSx3LnB1c2goIn0iKSksdy5wdXNoKCJ9fXJldHVybiAiK2UpO3ZhciBUPXIuam9pbigiIikrdy5qb2luKCIiKTtyZXR1cm4gbmV3IEZ1bmN0aW9uKFQpKCl9ci5wYXJ0aWFsPV8oITEpLHIuZnVsbD1fKCEwKX0se31dLDEwMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaSx1LFMsRSxMLEMpeyFmdW5jdGlvbih0LGUpe3ZhciByPTgqYS5sb2cyKGUrMSkqKHQrMSl8MCxpPWEubmV4dFBvdzIoYipyKTt3Lmxlbmd0aDxpJiYobi5mcmVlKHcpLHc9bi5tYWxsb2NJbnQzMihpKSk7dmFyIG89YS5uZXh0UG93MihfKnIpO2s8byYmKG4uZnJlZShrKSxrPW4ubWFsbG9jRG91YmxlKG8pKX0odCxpK0UpO3ZhciBQLE89MCx6PTIqdDtUKE8rKywwLDAsaSwwLEUscj8xNjowLC0xLzAsMS8wKSxyfHxUKE8rKywwLDAsRSwwLGksMSwtMS8wLDEvMCk7Zm9yKDtPPjA7KXt2YXIgST0oTy09MSkqYixEPXdbSV0sUj13W0krMV0sRj13W0krMl0sQj13W0krM10sTj13W0krNF0saj13W0krNV0sVj1PKl8sVT1rW1ZdLHE9a1tWKzFdLEg9MSZqLEc9ISEoMTYmaiksWT11LFc9UyxYPUwsWj1DO2lmKEgmJihZPUwsVz1DLFg9dSxaPVMpLCEoMiZqJiYoRj12KHQsRCxSLEYsWSxXLHEpLFI+PUYpfHw0JmomJihSPW0odCxELFIsRixZLFcsVSkpPj1GKSl7dmFyIEo9Ri1SLEs9Ti1CO2lmKEcpe2lmKHQqSiooSitLKTxwKXtpZih2b2lkIDAhPT0oUD1sLnNjYW5Db21wbGV0ZSh0LEQsZSxSLEYsWSxXLEIsTixYLFopKSlyZXR1cm4gUDtjb250aW51ZX19ZWxzZXtpZih0Kk1hdGgubWluKEosSyk8aCl7aWYodm9pZCAwIT09KFA9byh0LEQsZSxILFIsRixZLFcsQixOLFgsWikpKXJldHVybiBQO2NvbnRpbnVlfWlmKHQqSipLPGYpe2lmKHZvaWQgMCE9PShQPWwuc2NhbkJpcGFydGl0ZSh0LEQsZSxILFIsRixZLFcsQixOLFgsWikpKXJldHVybiBQO2NvbnRpbnVlfX12YXIgUT1kKHQsRCxSLEYsWSxXLFUscSk7aWYoUjxRKWlmKHQqKFEtUik8aCl7aWYodm9pZCAwIT09KFA9cyh0LEQrMSxlLFIsUSxZLFcsQixOLFgsWikpKXJldHVybiBQfWVsc2UgaWYoRD09PXQtMil7aWYodm9pZCAwIT09KFA9SD9sLnN3ZWVwQmlwYXJ0aXRlKHQsZSxCLE4sWCxaLFIsUSxZLFcpOmwuc3dlZXBCaXBhcnRpdGUodCxlLFIsUSxZLFcsQixOLFgsWikpKXJldHVybiBQfWVsc2UgVChPKyssRCsxLFIsUSxCLE4sSCwtMS8wLDEvMCksVChPKyssRCsxLEIsTixSLFEsMV5ILC0xLzAsMS8wKTtpZihRPEYpe3ZhciAkPWModCxELEIsTixYLFopLHR0PVhbeiokK0RdLGV0PWcodCxELCQsTixYLFosdHQpO2lmKGV0PE4mJlQoTysrLEQsUSxGLGV0LE4sKDR8SCkrKEc/MTY6MCksdHQscSksQjwkJiZUKE8rKyxELFEsRixCLCQsKDJ8SCkrKEc/MTY6MCksVSx0dCksJCsxPT09ZXQpe2lmKHZvaWQgMCE9PShQPUc/QSh0LEQsZSxRLEYsWSxXLCQsWCxaWyRdKTpNKHQsRCxlLEgsUSxGLFksVywkLFgsWlskXSkpKXJldHVybiBQfWVsc2UgaWYoJDxldCl7dmFyIHJ0O2lmKEcpe2lmKHJ0PXkodCxELFEsRixZLFcsdHQpLFE8cnQpe3ZhciBudD1nKHQsRCxRLHJ0LFksVyx0dCk7aWYoRD09PXQtMil7aWYoUTxudCYmdm9pZCAwIT09KFA9bC5zd2VlcENvbXBsZXRlKHQsZSxRLG50LFksVywkLGV0LFgsWikpKXJldHVybiBQO2lmKG50PHJ0JiZ2b2lkIDAhPT0oUD1sLnN3ZWVwQmlwYXJ0aXRlKHQsZSxudCxydCxZLFcsJCxldCxYLFopKSlyZXR1cm4gUH1lbHNlIFE8bnQmJlQoTysrLEQrMSxRLG50LCQsZXQsMTYsLTEvMCwxLzApLG50PHJ0JiYoVChPKyssRCsxLG50LHJ0LCQsZXQsMCwtMS8wLDEvMCksVChPKyssRCsxLCQsZXQsbnQscnQsMSwtMS8wLDEvMCkpfX1lbHNlIHJ0PUg/eCh0LEQsUSxGLFksVyx0dCk6eSh0LEQsUSxGLFksVyx0dCksUTxydCYmKEQ9PT10LTI/UD1IP2wuc3dlZXBCaXBhcnRpdGUodCxlLCQsZXQsWCxaLFEscnQsWSxXKTpsLnN3ZWVwQmlwYXJ0aXRlKHQsZSxRLHJ0LFksVywkLGV0LFgsWik6KFQoTysrLEQrMSxRLHJ0LCQsZXQsSCwtMS8wLDEvMCksVChPKyssRCsxLCQsZXQsUSxydCwxXkgsLTEvMCwxLzApKSl9fX19fTt2YXIgbj10KCJ0eXBlZGFycmF5LXBvb2wiKSxhPXQoImJpdC10d2lkZGxlIiksaT10KCIuL2JydXRlIiksbz1pLnBhcnRpYWwscz1pLmZ1bGwsbD10KCIuL3N3ZWVwIiksYz10KCIuL21lZGlhbiIpLHU9dCgiLi9wYXJ0aXRpb24iKSxoPTEyOCxmPTE8PDIyLHA9MTw8MjIsZD11KCIhKGxvPj1wMCkmJiEocDE+PWhpKSIsWyJwMCIsInAxIl0pLGc9dSgibG89PT1wMCIsWyJwMCJdKSx2PXUoImxvPHAwIixbInAwIl0pLG09dSgiaGk8PXAwIixbInAwIl0pLHk9dSgibG88PXAwJiZwMDw9aGkiLFsicDAiXSkseD11KCJsbzxwMCYmcDA8PWhpIixbInAwIl0pLGI9NixfPTIsdz1uLm1hbGxvY0ludDMyKDEwMjQpLGs9bi5tYWxsb2NEb3VibGUoMTAyNCk7ZnVuY3Rpb24gVCh0LGUscixuLGEsaSxvLHMsbCl7dmFyIGM9Yip0O3dbY109ZSx3W2MrMV09cix3W2MrMl09bix3W2MrM109YSx3W2MrNF09aSx3W2MrNV09bzt2YXIgdT1fKnQ7a1t1XT1zLGtbdSsxXT1sfWZ1bmN0aW9uIE0odCxlLHIsbixhLGksbyxzLGwsYyx1KXt2YXIgaD0yKnQsZj1sKmgscD1jW2YrZV07dDpmb3IodmFyIGQ9YSxnPWEqaDtkPGk7KytkLGcrPWgpe3ZhciB2PW9bZytlXSxtPW9bZytlK3RdO2lmKCEocDx2fHxtPHApJiYoIW58fHAhPT12KSl7Zm9yKHZhciB5LHg9c1tkXSxiPWUrMTtiPHQ7KytiKXt2PW9bZytiXSxtPW9bZytiK3RdO3ZhciBfPWNbZitiXSx3PWNbZitiK3RdO2lmKG08X3x8dzx2KWNvbnRpbnVlIHR9aWYodm9pZCAwIT09KHk9bj9yKHUseCk6cih4LHUpKSlyZXR1cm4geX19fWZ1bmN0aW9uIEEodCxlLHIsbixhLGksbyxzLGwsYyl7dmFyIHU9Mip0LGg9cyp1LGY9bFtoK2VdO3Q6Zm9yKHZhciBwPW4sZD1uKnU7cDxhOysrcCxkKz11KXt2YXIgZz1vW3BdO2lmKGchPT1jKXt2YXIgdj1pW2QrZV0sbT1pW2QrZSt0XTtpZighKGY8dnx8bTxmKSl7Zm9yKHZhciB5PWUrMTt5PHQ7Kyt5KXt2PWlbZCt5XSxtPWlbZCt5K3RdO3ZhciB4PWxbaCt5XSxiPWxbaCt5K3RdO2lmKG08eHx8Yjx2KWNvbnRpbnVlIHR9dmFyIF89cihnLGMpO2lmKHZvaWQgMCE9PV8pcmV0dXJuIF99fX19fSx7Ii4vYnJ1dGUiOjk5LCIuL21lZGlhbiI6MTAxLCIuL3BhcnRpdGlvbiI6MTAyLCIuL3N3ZWVwIjoxMDQsImJpdC10d2lkZGxlIjo5NCwidHlwZWRhcnJheS1wb29sIjo1NDR9XSwxMDE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8scyxsKXtpZihvPD1yKzEpcmV0dXJuIHI7dmFyIGM9cix1PW8saD1vK3I+Pj4xLGY9Mip0LHA9aCxkPXNbZipoK2VdO2Zvcig7Yzx1Oyl7aWYodS1jPGEpe2kodCxlLGMsdSxzLGwpLGQ9c1tmKmgrZV07YnJlYWt9dmFyIGc9dS1jLHY9TWF0aC5yYW5kb20oKSpnK2N8MCxtPXNbZip2K2VdLHk9TWF0aC5yYW5kb20oKSpnK2N8MCx4PXNbZip5K2VdLGI9TWF0aC5yYW5kb20oKSpnK2N8MCxfPXNbZipiK2VdO208PXg/Xz49eD8ocD15LGQ9eCk6bT49Xz8ocD12LGQ9bSk6KHA9YixkPV8pOng+PV8/KHA9eSxkPXgpOl8+PW0/KHA9dixkPW0pOihwPWIsZD1fKTtmb3IodmFyIHc9ZioodS0xKSxrPWYqcCxUPTA7VDxmOysrVCwrK3csKytrKXt2YXIgTT1zW3ddO3Nbd109c1trXSxzW2tdPU19dmFyIEE9bFt1LTFdO2xbdS0xXT1sW3BdLGxbcF09QSxwPW4odCxlLGMsdS0xLHMsbCxkKTtmb3IodmFyIHc9ZioodS0xKSxrPWYqcCxUPTA7VDxmOysrVCwrK3csKytrKXt2YXIgTT1zW3ddO3Nbd109c1trXSxzW2tdPU19dmFyIEE9bFt1LTFdO2lmKGxbdS0xXT1sW3BdLGxbcF09QSxoPHApe2Zvcih1PXAtMTtjPHUmJnNbZioodS0xKStlXT09PWQ7KXUtPTE7dSs9MX1lbHNle2lmKCEocDxoKSlicmVhaztmb3IoYz1wKzE7Yzx1JiZzW2YqYytlXT09PWQ7KWMrPTF9fXJldHVybiBuKHQsZSxyLGgscyxsLHNbZipoK2VdKX07dmFyIG49dCgiLi9wYXJ0aXRpb24iKSgibG88cDAiLFsicDAiXSksYT04O2Z1bmN0aW9uIGkodCxlLHIsbixhLGkpe2Zvcih2YXIgbz0yKnQscz1vKihyKzEpK2UsbD1yKzE7bDxuOysrbCxzKz1vKWZvcih2YXIgYz1hW3NdLHU9bCxoPW8qKGwtMSk7dT5yJiZhW2grZV0+YzstLXUsaC09byl7Zm9yKHZhciBmPWgscD1oK28sZD0wO2Q8bzsrK2QsKytmLCsrcCl7dmFyIGc9YVtmXTthW2ZdPWFbcF0sYVtwXT1nfXZhciB2PWlbdV07aVt1XT1pW3UtMV0saVt1LTFdPXZ9fX0seyIuL3BhcnRpdGlvbiI6MTAyfV0sMTAyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPSJhYmNkZWYiLnNwbGl0KCIiKS5jb25jYXQoZSksYT1bXTt0LmluZGV4T2YoImxvIik+PTAmJmEucHVzaCgibG89ZVtrK25dIik7dC5pbmRleE9mKCJoaSIpPj0wJiZhLnB1c2goImhpPWVbaytvXSIpO3JldHVybiByLnB1c2gobi5yZXBsYWNlKCJfIixhLmpvaW4oKSkucmVwbGFjZSgiJCIsdCkpLEZ1bmN0aW9uLmFwcGx5KHZvaWQgMCxyKX07dmFyIG49ImZvcih2YXIgaj0yKmEsaz1qKmMsbD1rLG09YyxuPWIsbz1hK2IscD1jO2Q+cDsrK3Asays9ail7dmFyIF87aWYoJClpZihtPT09cCltKz0xLGwrPWo7ZWxzZXtmb3IodmFyIHM9MDtqPnM7KytzKXt2YXIgdD1lW2src107ZVtrK3NdPWVbbF0sZVtsKytdPXR9dmFyIHU9ZltwXTtmW3BdPWZbbV0sZlttKytdPXV9fXJldHVybiBtIn0se31dLDEwMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtlPD00Km4/YSgwLGUtMSx0KTpmdW5jdGlvbiB0KGUscixoKXt2YXIgZj0oci1lKzEpLzZ8MCxwPWUrZixkPXItZixnPWUrcj4+MSx2PWctZixtPWcrZix5PXAseD12LGI9ZyxfPW0sdz1kLGs9ZSsxLFQ9ci0xLE09MDtjKHkseCxoKSYmKE09eSx5PXgseD1NKTtjKF8sdyxoKSYmKE09XyxfPXcsdz1NKTtjKHksYixoKSYmKE09eSx5PWIsYj1NKTtjKHgsYixoKSYmKE09eCx4PWIsYj1NKTtjKHksXyxoKSYmKE09eSx5PV8sXz1NKTtjKGIsXyxoKSYmKE09YixiPV8sXz1NKTtjKHgsdyxoKSYmKE09eCx4PXcsdz1NKTtjKHgsYixoKSYmKE09eCx4PWIsYj1NKTtjKF8sdyxoKSYmKE09XyxfPXcsdz1NKTt2YXIgQT1oWzIqeF07dmFyIFM9aFsyKngrMV07dmFyIEU9aFsyKl9dO3ZhciBMPWhbMipfKzFdO3ZhciBDPTIqeTt2YXIgUD0yKmI7dmFyIE89Mip3O3ZhciB6PTIqcDt2YXIgST0yKmc7dmFyIEQ9MipkO2Zvcih2YXIgUj0wO1I8MjsrK1Ipe3ZhciBGPWhbQytSXSxCPWhbUCtSXSxOPWhbTytSXTtoW3orUl09RixoW0krUl09QixoW0QrUl09Tn1vKHYsZSxoKTtvKG0scixoKTtmb3IodmFyIGo9aztqPD1UOysrailpZih1KGosQSxTLGgpKWohPT1rJiZpKGosayxoKSwrK2s7ZWxzZSBpZighdShqLEUsTCxoKSlmb3IoOzspe2lmKHUoVCxFLEwsaCkpe3UoVCxBLFMsaCk/KHMoaixrLFQsaCksKytrLC0tVCk6KGkoaixULGgpLC0tVCk7YnJlYWt9aWYoLS1UPGopYnJlYWt9bChlLGstMSxBLFMsaCk7bChyLFQrMSxFLEwsaCk7ay0yLWU8PW4/YShlLGstMixoKTp0KGUsay0yLGgpO3ItKFQrMik8PW4/YShUKzIscixoKTp0KFQrMixyLGgpO1Qtazw9bj9hKGssVCxoKTp0KGssVCxoKX0oMCxlLTEsdCl9O3ZhciBuPTMyO2Z1bmN0aW9uIGEodCxlLHIpe2Zvcih2YXIgbj0yKih0KzEpLGE9dCsxO2E8PWU7KythKXtmb3IodmFyIGk9cltuKytdLG89cltuKytdLHM9YSxsPW4tMjtzLS0gPnQ7KXt2YXIgYz1yW2wtMl0sdT1yW2wtMV07aWYoYzxpKWJyZWFrO2lmKGM9PT1pJiZ1PG8pYnJlYWs7cltsXT1jLHJbbCsxXT11LGwtPTJ9cltsXT1pLHJbbCsxXT1vfX1mdW5jdGlvbiBpKHQsZSxyKXtlKj0yO3ZhciBuPXJbdCo9Ml0sYT1yW3QrMV07clt0XT1yW2VdLHJbdCsxXT1yW2UrMV0scltlXT1uLHJbZSsxXT1hfWZ1bmN0aW9uIG8odCxlLHIpe2UqPTIsclt0Kj0yXT1yW2VdLHJbdCsxXT1yW2UrMV19ZnVuY3Rpb24gcyh0LGUscixuKXtlKj0yLHIqPTI7dmFyIGE9blt0Kj0yXSxpPW5bdCsxXTtuW3RdPW5bZV0sblt0KzFdPW5bZSsxXSxuW2VdPW5bcl0sbltlKzFdPW5bcisxXSxuW3JdPWEsbltyKzFdPWl9ZnVuY3Rpb24gbCh0LGUscixuLGEpe2UqPTIsYVt0Kj0yXT1hW2VdLGFbZV09cixhW3QrMV09YVtlKzFdLGFbZSsxXT1ufWZ1bmN0aW9uIGModCxlLHIpe2UqPTI7dmFyIG49clt0Kj0yXSxhPXJbZV07cmV0dXJuIShuPGEpJiYobiE9PWF8fHJbdCsxXT5yW2UrMV0pfWZ1bmN0aW9uIHUodCxlLHIsbil7dmFyIGE9blt0Kj0yXTtyZXR1cm4gYTxlfHxhPT09ZSYmblt0KzFdPHJ9fSx7fV0sMTA0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17aW5pdDpmdW5jdGlvbih0KXt2YXIgZT1hLm5leHRQb3cyKHQpO3MubGVuZ3RoPGUmJihuLmZyZWUocykscz1uLm1hbGxvY0ludDMyKGUpKTtsLmxlbmd0aDxlJiYobi5mcmVlKGwpLGw9bi5tYWxsb2NJbnQzMihlKSk7Yy5sZW5ndGg8ZSYmKG4uZnJlZShjKSxjPW4ubWFsbG9jSW50MzIoZSkpO3UubGVuZ3RoPGUmJihuLmZyZWUodSksdT1uLm1hbGxvY0ludDMyKGUpKTtoLmxlbmd0aDxlJiYobi5mcmVlKGgpLGg9bi5tYWxsb2NJbnQzMihlKSk7Zi5sZW5ndGg8ZSYmKG4uZnJlZShmKSxmPW4ubWFsbG9jSW50MzIoZSkpO3ZhciByPTgqZTtwLmxlbmd0aDxyJiYobi5mcmVlKHApLHA9bi5tYWxsb2NEb3VibGUocikpfSxzd2VlcEJpcGFydGl0ZTpmdW5jdGlvbih0LGUscixuLGEsaCxmLHYsbSx5KXtmb3IodmFyIHg9MCxiPTIqdCxfPXQtMSx3PWItMSxrPXI7azxuOysrayl7dmFyIFQ9aFtrXSxNPWIqaztwW3grK109YVtNK19dLHBbeCsrXT0tKFQrMSkscFt4KytdPWFbTSt3XSxwW3grK109VH1mb3IodmFyIGs9ZjtrPHY7KytrKXt2YXIgVD15W2tdK28sQT1iKms7cFt4KytdPW1bQStfXSxwW3grK109LVQscFt4KytdPW1bQSt3XSxwW3grK109VH12YXIgUz14Pj4+MTtpKHAsUyk7Zm9yKHZhciBFPTAsTD0wLGs9MDtrPFM7KytrKXt2YXIgQz0wfHBbMiprKzFdO2lmKEM+PW8pZChjLHUsTC0tLEM9Qy1vfDApO2Vsc2UgaWYoQz49MClkKHMsbCxFLS0sQyk7ZWxzZSBpZihDPD0tbyl7Qz0tQy1vfDA7Zm9yKHZhciBQPTA7UDxFOysrUCl7dmFyIE89ZShzW1BdLEMpO2lmKHZvaWQgMCE9PU8pcmV0dXJuIE99ZyhjLHUsTCsrLEMpfWVsc2V7Qz0tQy0xfDA7Zm9yKHZhciBQPTA7UDxMOysrUCl7dmFyIE89ZShDLGNbUF0pO2lmKHZvaWQgMCE9PU8pcmV0dXJuIE99ZyhzLGwsRSsrLEMpfX19LHN3ZWVwQ29tcGxldGU6ZnVuY3Rpb24odCxlLHIsbixhLG8sdixtLHkseCl7Zm9yKHZhciBiPTAsXz0yKnQsdz10LTEsaz1fLTEsVD1yO1Q8bjsrK1Qpe3ZhciBNPW9bVF0rMTw8MSxBPV8qVDtwW2IrK109YVtBK3ddLHBbYisrXT0tTSxwW2IrK109YVtBK2tdLHBbYisrXT1NfWZvcih2YXIgVD12O1Q8bTsrK1Qpe3ZhciBNPXhbVF0rMTw8MSxTPV8qVDtwW2IrK109eVtTK3ddLHBbYisrXT0xfC1NLHBbYisrXT15W1Mra10scFtiKytdPTF8TX12YXIgRT1iPj4+MTtpKHAsRSk7Zm9yKHZhciBMPTAsQz0wLFA9MCxUPTA7VDxFOysrVCl7dmFyIE89MHxwWzIqVCsxXSx6PTEmTztpZihUPEUtMSYmTz4+MT09cFsyKlQrM10+PjEmJih6PTIsVCs9MSksTzwwKXtmb3IodmFyIEk9LShPPj4xKS0xLEQ9MDtEPFA7KytEKXt2YXIgUj1lKGhbRF0sSSk7aWYodm9pZCAwIT09UilyZXR1cm4gUn1pZigwIT09eilmb3IodmFyIEQ9MDtEPEw7KytEKXt2YXIgUj1lKHNbRF0sSSk7aWYodm9pZCAwIT09UilyZXR1cm4gUn1pZigxIT09eilmb3IodmFyIEQ9MDtEPEM7KytEKXt2YXIgUj1lKGNbRF0sSSk7aWYodm9pZCAwIT09UilyZXR1cm4gUn0wPT09ej9nKHMsbCxMKyssSSk6MT09PXo/ZyhjLHUsQysrLEkpOjI9PT16JiZnKGgsZixQKyssSSl9ZWxzZXt2YXIgST0oTz4+MSktMTswPT09ej9kKHMsbCxMLS0sSSk6MT09PXo/ZChjLHUsQy0tLEkpOjI9PT16JiZkKGgsZixQLS0sSSl9fX0sc2NhbkJpcGFydGl0ZTpmdW5jdGlvbih0LGUscixuLGEsYyx1LGgsZix2LG0seSl7dmFyIHg9MCxiPTIqdCxfPWUsdz1lK3Qsaz0xLFQ9MTtuP1Q9bzprPW87Zm9yKHZhciBNPWE7TTxjOysrTSl7dmFyIEE9TStrLFM9YipNO3BbeCsrXT11W1MrX10scFt4KytdPS1BLHBbeCsrXT11W1Mrd10scFt4KytdPUF9Zm9yKHZhciBNPWY7TTx2OysrTSl7dmFyIEE9TStULEU9YipNO3BbeCsrXT1tW0UrX10scFt4KytdPS1BfXZhciBMPXg+Pj4xO2kocCxMKTtmb3IodmFyIEM9MCxNPTA7TTxMOysrTSl7dmFyIFA9MHxwWzIqTSsxXTtpZihQPDApe3ZhciBBPS1QLE89ITE7aWYoQT49bz8oTz0hbixBLT1vKTooTz0hIW4sQS09MSksTylnKHMsbCxDKyssQSk7ZWxzZXt2YXIgej15W0FdLEk9YipBLEQ9bVtJK2UrMV0sUj1tW0krZSsxK3RdO3Q6Zm9yKHZhciBGPTA7RjxDOysrRil7dmFyIEI9c1tGXSxOPWIqQjtpZighKFI8dVtOK2UrMV18fHVbTitlKzErdF08RCkpe2Zvcih2YXIgaj1lKzI7ajx0OysrailpZihtW0krait0XTx1W04ral18fHVbTitqK3RdPG1bSStqXSljb250aW51ZSB0O3ZhciBWLFU9aFtCXTtpZih2b2lkIDAhPT0oVj1uP3IoeixVKTpyKFUseikpKXJldHVybiBWfX19fWVsc2UgZChzLGwsQy0tLFAtayl9fSxzY2FuQ29tcGxldGU6ZnVuY3Rpb24odCxlLHIsbixhLGwsYyx1LGgsZixkKXtmb3IodmFyIGc9MCx2PTIqdCxtPWUseT1lK3QseD1uO3g8YTsrK3gpe3ZhciBiPXgrbyxfPXYqeDtwW2crK109bFtfK21dLHBbZysrXT0tYixwW2crK109bFtfK3ldLHBbZysrXT1ifWZvcih2YXIgeD11O3g8aDsrK3gpe3ZhciBiPXgrMSx3PXYqeDtwW2crK109Zlt3K21dLHBbZysrXT0tYn12YXIgaz1nPj4+MTtpKHAsayk7Zm9yKHZhciBUPTAseD0wO3g8azsrK3gpe3ZhciBNPTB8cFsyKngrMV07aWYoTTwwKXt2YXIgYj0tTTtpZihiPj1vKXNbVCsrXT1iLW87ZWxzZXt2YXIgQT1kW2ItPTFdLFM9dipiLEU9ZltTK2UrMV0sTD1mW1MrZSsxK3RdO3Q6Zm9yKHZhciBDPTA7QzxUOysrQyl7dmFyIFA9c1tDXSxPPWNbUF07aWYoTz09PUEpYnJlYWs7dmFyIHo9dipQO2lmKCEoTDxsW3orZSsxXXx8bFt6K2UrMSt0XTxFKSl7Zm9yKHZhciBJPWUrMjtJPHQ7KytJKWlmKGZbUytJK3RdPGxbeitJXXx8bFt6K0krdF08ZltTK0ldKWNvbnRpbnVlIHQ7dmFyIEQ9cihPLEEpO2lmKHZvaWQgMCE9PUQpcmV0dXJuIER9fX19ZWxzZXtmb3IodmFyIGI9TS1vLEM9VC0xO0M+PTA7LS1DKWlmKHNbQ109PT1iKXtmb3IodmFyIEk9QysxO0k8VDsrK0kpc1tJLTFdPXNbSV07YnJlYWt9LS1UfX19fTt2YXIgbj10KCJ0eXBlZGFycmF5LXBvb2wiKSxhPXQoImJpdC10d2lkZGxlIiksaT10KCIuL3NvcnQiKSxvPTE8PDI4LHM9bi5tYWxsb2NJbnQzMigxMDI0KSxsPW4ubWFsbG9jSW50MzIoMTAyNCksYz1uLm1hbGxvY0ludDMyKDEwMjQpLHU9bi5tYWxsb2NJbnQzMigxMDI0KSxoPW4ubWFsbG9jSW50MzIoMTAyNCksZj1uLm1hbGxvY0ludDMyKDEwMjQpLHA9bi5tYWxsb2NEb3VibGUoODE5Mik7ZnVuY3Rpb24gZCh0LGUscixuKXt2YXIgYT1lW25dLGk9dFtyLTFdO3RbYV09aSxlW2ldPWF9ZnVuY3Rpb24gZyh0LGUscixuKXt0W3JdPW4sZVtuXT1yfX0seyIuL3NvcnQiOjEwMywiYml0LXR3aWRkbGUiOjk0LCJ0eXBlZGFycmF5LXBvb2wiOjU0NH1dLDEwNTpbZnVuY3Rpb24odCxlLHIpe30se31dLDEwNjpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKCl7fTtyZXR1cm4gZS5wcm90b3R5cGU9dCxuZXcgZX0sYT1PYmplY3Qua2V5c3x8ZnVuY3Rpb24odCl7dmFyIGU9W107Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUucHVzaChyKTtyZXR1cm4gcn0saT1GdW5jdGlvbi5wcm90b3R5cGUuYmluZHx8ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseSh0LGFyZ3VtZW50cyl9fTtmdW5jdGlvbiBvKCl7dGhpcy5fZXZlbnRzJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcywiX2V2ZW50cyIpfHwodGhpcy5fZXZlbnRzPW4obnVsbCksdGhpcy5fZXZlbnRzQ291bnQ9MCksdGhpcy5fbWF4TGlzdGVuZXJzPXRoaXMuX21heExpc3RlbmVyc3x8dm9pZCAwfWUuZXhwb3J0cz1vLG8uRXZlbnRFbWl0dGVyPW8sby5wcm90b3R5cGUuX2V2ZW50cz12b2lkIDAsby5wcm90b3R5cGUuX21heExpc3RlbmVycz12b2lkIDA7dmFyIHMsbD0xMDt0cnl7dmFyIGM9e307T2JqZWN0LmRlZmluZVByb3BlcnR5JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYywieCIse3ZhbHVlOjB9KSxzPTA9PT1jLnh9Y2F0Y2godCl7cz0hMX1mdW5jdGlvbiB1KHQpe3JldHVybiB2b2lkIDA9PT10Ll9tYXhMaXN0ZW5lcnM/by5kZWZhdWx0TWF4TGlzdGVuZXJzOnQuX21heExpc3RlbmVyc31mdW5jdGlvbiBoKHQsZSxyLGEpe3ZhciBpLG8scztpZigiZnVuY3Rpb24iIT10eXBlb2Ygcil0aHJvdyBuZXcgVHlwZUVycm9yKCcibGlzdGVuZXIiIGFyZ3VtZW50IG11c3QgYmUgYSBmdW5jdGlvbicpO2lmKChvPXQuX2V2ZW50cyk/KG8ubmV3TGlzdGVuZXImJih0LmVtaXQoIm5ld0xpc3RlbmVyIixlLHIubGlzdGVuZXI/ci5saXN0ZW5lcjpyKSxvPXQuX2V2ZW50cykscz1vW2VdKToobz10Ll9ldmVudHM9bihudWxsKSx0Ll9ldmVudHNDb3VudD0wKSxzKXtpZigiZnVuY3Rpb24iPT10eXBlb2Ygcz9zPW9bZV09YT9bcixzXTpbcyxyXTphP3MudW5zaGlmdChyKTpzLnB1c2gociksIXMud2FybmVkJiYoaT11KHQpKSYmaT4wJiZzLmxlbmd0aD5pKXtzLndhcm5lZD0hMDt2YXIgbD1uZXcgRXJyb3IoIlBvc3NpYmxlIEV2ZW50RW1pdHRlciBtZW1vcnkgbGVhayBkZXRlY3RlZC4gIitzLmxlbmd0aCsnICInK1N0cmluZyhlKSsnIiBsaXN0ZW5lcnMgYWRkZWQuIFVzZSBlbWl0dGVyLnNldE1heExpc3RlbmVycygpIHRvIGluY3JlYXNlIGxpbWl0LicpO2wubmFtZT0iTWF4TGlzdGVuZXJzRXhjZWVkZWRXYXJuaW5nIixsLmVtaXR0ZXI9dCxsLnR5cGU9ZSxsLmNvdW50PXMubGVuZ3RoLCJvYmplY3QiPT10eXBlb2YgY29uc29sZSYmY29uc29sZS53YXJuJiZjb25zb2xlLndhcm4oIiVzOiAlcyIsbC5uYW1lLGwubWVzc2FnZSl9fWVsc2Ugcz1vW2VdPXIsKyt0Ll9ldmVudHNDb3VudDtyZXR1cm4gdH1mdW5jdGlvbiBmKCl7aWYoIXRoaXMuZmlyZWQpc3dpdGNoKHRoaXMudGFyZ2V0LnJlbW92ZUxpc3RlbmVyKHRoaXMudHlwZSx0aGlzLndyYXBGbiksdGhpcy5maXJlZD0hMCxhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIHRoaXMubGlzdGVuZXIuY2FsbCh0aGlzLnRhcmdldCk7Y2FzZSAxOnJldHVybiB0aGlzLmxpc3RlbmVyLmNhbGwodGhpcy50YXJnZXQsYXJndW1lbnRzWzBdKTtjYXNlIDI6cmV0dXJuIHRoaXMubGlzdGVuZXIuY2FsbCh0aGlzLnRhcmdldCxhcmd1bWVudHNbMF0sYXJndW1lbnRzWzFdKTtjYXNlIDM6cmV0dXJuIHRoaXMubGlzdGVuZXIuY2FsbCh0aGlzLnRhcmdldCxhcmd1bWVudHNbMF0sYXJndW1lbnRzWzFdLGFyZ3VtZW50c1syXSk7ZGVmYXVsdDpmb3IodmFyIHQ9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLGU9MDtlPHQubGVuZ3RoOysrZSl0W2VdPWFyZ3VtZW50c1tlXTt0aGlzLmxpc3RlbmVyLmFwcGx5KHRoaXMudGFyZ2V0LHQpfX1mdW5jdGlvbiBwKHQsZSxyKXt2YXIgbj17ZmlyZWQ6ITEsd3JhcEZuOnZvaWQgMCx0YXJnZXQ6dCx0eXBlOmUsbGlzdGVuZXI6cn0sYT1pLmNhbGwoZixuKTtyZXR1cm4gYS5saXN0ZW5lcj1yLG4ud3JhcEZuPWEsYX1mdW5jdGlvbiBkKHQsZSxyKXt2YXIgbj10Ll9ldmVudHM7aWYoIW4pcmV0dXJuW107dmFyIGE9bltlXTtyZXR1cm4gYT8iZnVuY3Rpb24iPT10eXBlb2YgYT9yP1thLmxpc3RlbmVyfHxhXTpbYV06cj9mdW5jdGlvbih0KXtmb3IodmFyIGU9bmV3IEFycmF5KHQubGVuZ3RoKSxyPTA7cjxlLmxlbmd0aDsrK3IpZVtyXT10W3JdLmxpc3RlbmVyfHx0W3JdO3JldHVybiBlfShhKTp2KGEsYS5sZW5ndGgpOltdfWZ1bmN0aW9uIGcodCl7dmFyIGU9dGhpcy5fZXZlbnRzO2lmKGUpe3ZhciByPWVbdF07aWYoImZ1bmN0aW9uIj09dHlwZW9mIHIpcmV0dXJuIDE7aWYocilyZXR1cm4gci5sZW5ndGh9cmV0dXJuIDB9ZnVuY3Rpb24gdih0LGUpe2Zvcih2YXIgcj1uZXcgQXJyYXkoZSksbj0wO248ZTsrK24pcltuXT10W25dO3JldHVybiByfXM/T2JqZWN0LmRlZmluZVByb3BlcnR5KG8sImRlZmF1bHRNYXhMaXN0ZW5lcnMiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBsfSxzZXQ6ZnVuY3Rpb24odCl7aWYoIm51bWJlciIhPXR5cGVvZiB0fHx0PDB8fHQhPXQpdGhyb3cgbmV3IFR5cGVFcnJvcignImRlZmF1bHRNYXhMaXN0ZW5lcnMiIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXInKTtsPXR9fSk6by5kZWZhdWx0TWF4TGlzdGVuZXJzPWwsby5wcm90b3R5cGUuc2V0TWF4TGlzdGVuZXJzPWZ1bmN0aW9uKHQpe2lmKCJudW1iZXIiIT10eXBlb2YgdHx8dDwwfHxpc05hTih0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCcibiIgYXJndW1lbnQgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlcicpO3JldHVybiB0aGlzLl9tYXhMaXN0ZW5lcnM9dCx0aGlzfSxvLnByb3RvdHlwZS5nZXRNYXhMaXN0ZW5lcnM9ZnVuY3Rpb24oKXtyZXR1cm4gdSh0aGlzKX0sby5wcm90b3R5cGUuZW1pdD1mdW5jdGlvbih0KXt2YXIgZSxyLG4sYSxpLG8scz0iZXJyb3IiPT09dDtpZihvPXRoaXMuX2V2ZW50cylzPXMmJm51bGw9PW8uZXJyb3I7ZWxzZSBpZighcylyZXR1cm4hMTtpZihzKXtpZihhcmd1bWVudHMubGVuZ3RoPjEmJihlPWFyZ3VtZW50c1sxXSksZSBpbnN0YW5jZW9mIEVycm9yKXRocm93IGU7dmFyIGw9bmV3IEVycm9yKCdVbmhhbmRsZWQgImVycm9yIiBldmVudC4gKCcrZSsiKSIpO3Rocm93IGwuY29udGV4dD1lLGx9aWYoIShyPW9bdF0pKXJldHVybiExO3ZhciBjPSJmdW5jdGlvbiI9PXR5cGVvZiByO3N3aXRjaChuPWFyZ3VtZW50cy5sZW5ndGgpe2Nhc2UgMTohZnVuY3Rpb24odCxlLHIpe2lmKGUpdC5jYWxsKHIpO2Vsc2UgZm9yKHZhciBuPXQubGVuZ3RoLGE9dih0LG4pLGk9MDtpPG47KytpKWFbaV0uY2FsbChyKX0ocixjLHRoaXMpO2JyZWFrO2Nhc2UgMjohZnVuY3Rpb24odCxlLHIsbil7aWYoZSl0LmNhbGwocixuKTtlbHNlIGZvcih2YXIgYT10Lmxlbmd0aCxpPXYodCxhKSxvPTA7bzxhOysrbylpW29dLmNhbGwocixuKX0ocixjLHRoaXMsYXJndW1lbnRzWzFdKTticmVhaztjYXNlIDM6IWZ1bmN0aW9uKHQsZSxyLG4sYSl7aWYoZSl0LmNhbGwocixuLGEpO2Vsc2UgZm9yKHZhciBpPXQubGVuZ3RoLG89dih0LGkpLHM9MDtzPGk7KytzKW9bc10uY2FsbChyLG4sYSl9KHIsYyx0aGlzLGFyZ3VtZW50c1sxXSxhcmd1bWVudHNbMl0pO2JyZWFrO2Nhc2UgNDohZnVuY3Rpb24odCxlLHIsbixhLGkpe2lmKGUpdC5jYWxsKHIsbixhLGkpO2Vsc2UgZm9yKHZhciBvPXQubGVuZ3RoLHM9dih0LG8pLGw9MDtsPG87KytsKXNbbF0uY2FsbChyLG4sYSxpKX0ocixjLHRoaXMsYXJndW1lbnRzWzFdLGFyZ3VtZW50c1syXSxhcmd1bWVudHNbM10pO2JyZWFrO2RlZmF1bHQ6Zm9yKGE9bmV3IEFycmF5KG4tMSksaT0xO2k8bjtpKyspYVtpLTFdPWFyZ3VtZW50c1tpXTshZnVuY3Rpb24odCxlLHIsbil7aWYoZSl0LmFwcGx5KHIsbik7ZWxzZSBmb3IodmFyIGE9dC5sZW5ndGgsaT12KHQsYSksbz0wO288YTsrK28paVtvXS5hcHBseShyLG4pfShyLGMsdGhpcyxhKX1yZXR1cm4hMH0sby5wcm90b3R5cGUuYWRkTGlzdGVuZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gaCh0aGlzLHQsZSwhMSl9LG8ucHJvdG90eXBlLm9uPW8ucHJvdG90eXBlLmFkZExpc3RlbmVyLG8ucHJvdG90eXBlLnByZXBlbmRMaXN0ZW5lcj1mdW5jdGlvbih0LGUpe3JldHVybiBoKHRoaXMsdCxlLCEwKX0sby5wcm90b3R5cGUub25jZT1mdW5jdGlvbih0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoJyJsaXN0ZW5lciIgYXJndW1lbnQgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7cmV0dXJuIHRoaXMub24odCxwKHRoaXMsdCxlKSksdGhpc30sby5wcm90b3R5cGUucHJlcGVuZE9uY2VMaXN0ZW5lcj1mdW5jdGlvbih0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoJyJsaXN0ZW5lciIgYXJndW1lbnQgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7cmV0dXJuIHRoaXMucHJlcGVuZExpc3RlbmVyKHQscCh0aGlzLHQsZSkpLHRoaXN9LG8ucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPWZ1bmN0aW9uKHQsZSl7dmFyIHIsYSxpLG8scztpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCcibGlzdGVuZXIiIGFyZ3VtZW50IG11c3QgYmUgYSBmdW5jdGlvbicpO2lmKCEoYT10aGlzLl9ldmVudHMpKXJldHVybiB0aGlzO2lmKCEocj1hW3RdKSlyZXR1cm4gdGhpcztpZihyPT09ZXx8ci5saXN0ZW5lcj09PWUpMD09LS10aGlzLl9ldmVudHNDb3VudD90aGlzLl9ldmVudHM9bihudWxsKTooZGVsZXRlIGFbdF0sYS5yZW1vdmVMaXN0ZW5lciYmdGhpcy5lbWl0KCJyZW1vdmVMaXN0ZW5lciIsdCxyLmxpc3RlbmVyfHxlKSk7ZWxzZSBpZigiZnVuY3Rpb24iIT10eXBlb2Ygcil7Zm9yKGk9LTEsbz1yLmxlbmd0aC0xO28+PTA7by0tKWlmKHJbb109PT1lfHxyW29dLmxpc3RlbmVyPT09ZSl7cz1yW29dLmxpc3RlbmVyLGk9bzticmVha31pZihpPDApcmV0dXJuIHRoaXM7MD09PWk/ci5zaGlmdCgpOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPWUsbj1yKzEsYT10Lmxlbmd0aDtuPGE7cis9MSxuKz0xKXRbcl09dFtuXTt0LnBvcCgpfShyLGkpLDE9PT1yLmxlbmd0aCYmKGFbdF09clswXSksYS5yZW1vdmVMaXN0ZW5lciYmdGhpcy5lbWl0KCJyZW1vdmVMaXN0ZW5lciIsdCxzfHxlKX1yZXR1cm4gdGhpc30sby5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzPWZ1bmN0aW9uKHQpe3ZhciBlLHIsaTtpZighKHI9dGhpcy5fZXZlbnRzKSlyZXR1cm4gdGhpcztpZighci5yZW1vdmVMaXN0ZW5lcilyZXR1cm4gMD09PWFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX2V2ZW50cz1uKG51bGwpLHRoaXMuX2V2ZW50c0NvdW50PTApOnJbdF0mJigwPT0tLXRoaXMuX2V2ZW50c0NvdW50P3RoaXMuX2V2ZW50cz1uKG51bGwpOmRlbGV0ZSByW3RdKSx0aGlzO2lmKDA9PT1hcmd1bWVudHMubGVuZ3RoKXt2YXIgbyxzPWEocik7Zm9yKGk9MDtpPHMubGVuZ3RoOysraSkicmVtb3ZlTGlzdGVuZXIiIT09KG89c1tpXSkmJnRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKG8pO3JldHVybiB0aGlzLnJlbW92ZUFsbExpc3RlbmVycygicmVtb3ZlTGlzdGVuZXIiKSx0aGlzLl9ldmVudHM9bihudWxsKSx0aGlzLl9ldmVudHNDb3VudD0wLHRoaXN9aWYoImZ1bmN0aW9uIj09dHlwZW9mKGU9clt0XSkpdGhpcy5yZW1vdmVMaXN0ZW5lcih0LGUpO2Vsc2UgaWYoZSlmb3IoaT1lLmxlbmd0aC0xO2k+PTA7aS0tKXRoaXMucmVtb3ZlTGlzdGVuZXIodCxlW2ldKTtyZXR1cm4gdGhpc30sby5wcm90b3R5cGUubGlzdGVuZXJzPWZ1bmN0aW9uKHQpe3JldHVybiBkKHRoaXMsdCwhMCl9LG8ucHJvdG90eXBlLnJhd0xpc3RlbmVycz1mdW5jdGlvbih0KXtyZXR1cm4gZCh0aGlzLHQsITEpfSxvLmxpc3RlbmVyQ291bnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdC5saXN0ZW5lckNvdW50P3QubGlzdGVuZXJDb3VudChlKTpnLmNhbGwodCxlKX0sby5wcm90b3R5cGUubGlzdGVuZXJDb3VudD1nLG8ucHJvdG90eXBlLmV2ZW50TmFtZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZXZlbnRzQ291bnQ+MD9SZWZsZWN0Lm93bktleXModGhpcy5fZXZlbnRzKTpbXX19LHt9XSwxMDc6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO3ZhciBuPXQoImJhc2U2NC1qcyIpLGE9dCgiaWVlZTc1NCIpLGk9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbC5mb3I/U3ltYm9sLmZvcigibm9kZWpzLnV0aWwuaW5zcGVjdC5jdXN0b20iKTpudWxsO3IuQnVmZmVyPWUsci5TbG93QnVmZmVyPWZ1bmN0aW9uKHQpeyt0IT10JiYodD0wKTtyZXR1cm4gZS5hbGxvYygrdCl9LHIuSU5TUEVDVF9NQVhfQllURVM9NTA7dmFyIG89MjE0NzQ4MzY0NztmdW5jdGlvbiBzKHQpe2lmKHQ+byl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlICInK3QrJyIgaXMgaW52YWxpZCBmb3Igb3B0aW9uICJzaXplIicpO3ZhciByPW5ldyBVaW50OEFycmF5KHQpO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YocixlLnByb3RvdHlwZSkscn1mdW5jdGlvbiBlKHQsZSxyKXtpZigibnVtYmVyIj09dHlwZW9mIHQpe2lmKCJzdHJpbmciPT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInN0cmluZyIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIHN0cmluZy4gUmVjZWl2ZWQgdHlwZSBudW1iZXInKTtyZXR1cm4gdSh0KX1yZXR1cm4gbCh0LGUscil9ZnVuY3Rpb24gbCh0LHIsbil7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiBmdW5jdGlvbih0LHIpeyJzdHJpbmciPT10eXBlb2YgciYmIiIhPT1yfHwocj0idXRmOCIpO2lmKCFlLmlzRW5jb2RpbmcocikpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIityKTt2YXIgbj0wfHAodCxyKSxhPXMobiksaT1hLndyaXRlKHQscik7aSE9PW4mJihhPWEuc2xpY2UoMCxpKSk7cmV0dXJuIGF9KHQscik7aWYoQXJyYXlCdWZmZXIuaXNWaWV3KHQpKXJldHVybiBoKHQpO2lmKG51bGw9PXQpdGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgb3IgQXJyYXktbGlrZSBPYmplY3QuIFJlY2VpdmVkIHR5cGUgIit0eXBlb2YgdCk7aWYoaih0LEFycmF5QnVmZmVyKXx8dCYmaih0LmJ1ZmZlcixBcnJheUJ1ZmZlcikpcmV0dXJuIGZ1bmN0aW9uKHQscixuKXtpZihyPDB8fHQuYnl0ZUxlbmd0aDxyKXRocm93IG5ldyBSYW5nZUVycm9yKCcib2Zmc2V0IiBpcyBvdXRzaWRlIG9mIGJ1ZmZlciBib3VuZHMnKTtpZih0LmJ5dGVMZW5ndGg8cisobnx8MCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJsZW5ndGgiIGlzIG91dHNpZGUgb2YgYnVmZmVyIGJvdW5kcycpO3ZhciBhO2E9dm9pZCAwPT09ciYmdm9pZCAwPT09bj9uZXcgVWludDhBcnJheSh0KTp2b2lkIDA9PT1uP25ldyBVaW50OEFycmF5KHQscik6bmV3IFVpbnQ4QXJyYXkodCxyLG4pO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YoYSxlLnByb3RvdHlwZSksYX0odCxyLG4pO2lmKCJudW1iZXIiPT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInZhbHVlIiBhcmd1bWVudCBtdXN0IG5vdCBiZSBvZiB0eXBlIG51bWJlci4gUmVjZWl2ZWQgdHlwZSBudW1iZXInKTt2YXIgYT10LnZhbHVlT2YmJnQudmFsdWVPZigpO2lmKG51bGwhPWEmJmEhPT10KXJldHVybiBlLmZyb20oYSxyLG4pO3ZhciBpPWZ1bmN0aW9uKHQpe2lmKGUuaXNCdWZmZXIodCkpe3ZhciByPTB8Zih0Lmxlbmd0aCksbj1zKHIpO3JldHVybiAwPT09bi5sZW5ndGg/bjoodC5jb3B5KG4sMCwwLHIpLG4pfWlmKHZvaWQgMCE9PXQubGVuZ3RoKXJldHVybiJudW1iZXIiIT10eXBlb2YgdC5sZW5ndGh8fFYodC5sZW5ndGgpP3MoMCk6aCh0KTtpZigiQnVmZmVyIj09PXQudHlwZSYmQXJyYXkuaXNBcnJheSh0LmRhdGEpKXJldHVybiBoKHQuZGF0YSl9KHQpO2lmKGkpcmV0dXJuIGk7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPVN5bWJvbC50b1ByaW1pdGl2ZSYmImZ1bmN0aW9uIj09dHlwZW9mIHRbU3ltYm9sLnRvUHJpbWl0aXZlXSlyZXR1cm4gZS5mcm9tKHRbU3ltYm9sLnRvUHJpbWl0aXZlXSgic3RyaW5nIikscixuKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSAiK3R5cGVvZiB0KX1mdW5jdGlvbiBjKHQpe2lmKCJudW1iZXIiIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCcic2l6ZSIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIG51bWJlcicpO2lmKHQ8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlICInK3QrJyIgaXMgaW52YWxpZCBmb3Igb3B0aW9uICJzaXplIicpfWZ1bmN0aW9uIHUodCl7cmV0dXJuIGModCkscyh0PDA/MDowfGYodCkpfWZ1bmN0aW9uIGgodCl7Zm9yKHZhciBlPXQubGVuZ3RoPDA/MDowfGYodC5sZW5ndGgpLHI9cyhlKSxuPTA7bjxlO24rPTEpcltuXT0yNTUmdFtuXTtyZXR1cm4gcn1mdW5jdGlvbiBmKHQpe2lmKHQ+PW8pdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkF0dGVtcHQgdG8gYWxsb2NhdGUgQnVmZmVyIGxhcmdlciB0aGFuIG1heGltdW0gc2l6ZTogMHgiK28udG9TdHJpbmcoMTYpKyIgYnl0ZXMiKTtyZXR1cm4gMHx0fWZ1bmN0aW9uIHAodCxyKXtpZihlLmlzQnVmZmVyKHQpKXJldHVybiB0Lmxlbmd0aDtpZihBcnJheUJ1ZmZlci5pc1ZpZXcodCl8fGoodCxBcnJheUJ1ZmZlcikpcmV0dXJuIHQuYnl0ZUxlbmd0aDtpZigic3RyaW5nIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJzdHJpbmciIGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIG9yIEFycmF5QnVmZmVyLiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIHQpO3ZhciBuPXQubGVuZ3RoLGE9YXJndW1lbnRzLmxlbmd0aD4yJiYhMD09PWFyZ3VtZW50c1syXTtpZighYSYmMD09PW4pcmV0dXJuIDA7Zm9yKHZhciBpPSExOzspc3dpdGNoKHIpe2Nhc2UiYXNjaWkiOmNhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuIG47Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4gRih0KS5sZW5ndGg7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiAyKm47Y2FzZSJoZXgiOnJldHVybiBuPj4+MTtjYXNlImJhc2U2NCI6cmV0dXJuIEIodCkubGVuZ3RoO2RlZmF1bHQ6aWYoaSlyZXR1cm4gYT8tMTpGKHQpLmxlbmd0aDtyPSgiIityKS50b0xvd2VyQ2FzZSgpLGk9ITB9fWZ1bmN0aW9uIGQodCxlLHIpe3ZhciBuPXRbZV07dFtlXT10W3JdLHRbcl09bn1mdW5jdGlvbiBnKHQscixuLGEsaSl7aWYoMD09PXQubGVuZ3RoKXJldHVybi0xO2lmKCJzdHJpbmciPT10eXBlb2Ygbj8oYT1uLG49MCk6bj4yMTQ3NDgzNjQ3P249MjE0NzQ4MzY0NzpuPC0yMTQ3NDgzNjQ4JiYobj0tMjE0NzQ4MzY0OCksVihuPStuKSYmKG49aT8wOnQubGVuZ3RoLTEpLG48MCYmKG49dC5sZW5ndGgrbiksbj49dC5sZW5ndGgpe2lmKGkpcmV0dXJuLTE7bj10Lmxlbmd0aC0xfWVsc2UgaWYobjwwKXtpZighaSlyZXR1cm4tMTtuPTB9aWYoInN0cmluZyI9PXR5cGVvZiByJiYocj1lLmZyb20ocixhKSksZS5pc0J1ZmZlcihyKSlyZXR1cm4gMD09PXIubGVuZ3RoPy0xOnYodCxyLG4sYSxpKTtpZigibnVtYmVyIj09dHlwZW9mIHIpcmV0dXJuIHImPTI1NSwiZnVuY3Rpb24iPT10eXBlb2YgVWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZj9pP1VpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbCh0LHIsbik6VWludDhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YuY2FsbCh0LHIsbik6dih0LFtyXSxuLGEsaSk7dGhyb3cgbmV3IFR5cGVFcnJvcigidmFsIG11c3QgYmUgc3RyaW5nLCBudW1iZXIgb3IgQnVmZmVyIil9ZnVuY3Rpb24gdih0LGUscixuLGEpe3ZhciBpLG89MSxzPXQubGVuZ3RoLGw9ZS5sZW5ndGg7aWYodm9pZCAwIT09biYmKCJ1Y3MyIj09PShuPVN0cmluZyhuKS50b0xvd2VyQ2FzZSgpKXx8InVjcy0yIj09PW58fCJ1dGYxNmxlIj09PW58fCJ1dGYtMTZsZSI9PT1uKSl7aWYodC5sZW5ndGg8Mnx8ZS5sZW5ndGg8MilyZXR1cm4tMTtvPTIscy89MixsLz0yLHIvPTJ9ZnVuY3Rpb24gYyh0LGUpe3JldHVybiAxPT09bz90W2VdOnQucmVhZFVJbnQxNkJFKGUqbyl9aWYoYSl7dmFyIHU9LTE7Zm9yKGk9cjtpPHM7aSsrKWlmKGModCxpKT09PWMoZSwtMT09PXU/MDppLXUpKXtpZigtMT09PXUmJih1PWkpLGktdSsxPT09bClyZXR1cm4gdSpvfWVsc2UtMSE9PXUmJihpLT1pLXUpLHU9LTF9ZWxzZSBmb3IocitsPnMmJihyPXMtbCksaT1yO2k+PTA7aS0tKXtmb3IodmFyIGg9ITAsZj0wO2Y8bDtmKyspaWYoYyh0LGkrZikhPT1jKGUsZikpe2g9ITE7YnJlYWt9aWYoaClyZXR1cm4gaX1yZXR1cm4tMX1mdW5jdGlvbiBtKHQsZSxyLG4pe3I9TnVtYmVyKHIpfHwwO3ZhciBhPXQubGVuZ3RoLXI7bj8obj1OdW1iZXIobikpPmEmJihuPWEpOm49YTt2YXIgaT1lLmxlbmd0aDtuPmkvMiYmKG49aS8yKTtmb3IodmFyIG89MDtvPG47KytvKXt2YXIgcz1wYXJzZUludChlLnN1YnN0cigyKm8sMiksMTYpO2lmKFYocykpcmV0dXJuIG87dFtyK29dPXN9cmV0dXJuIG99ZnVuY3Rpb24geSh0LGUscixuKXtyZXR1cm4gTihGKGUsdC5sZW5ndGgtciksdCxyLG4pfWZ1bmN0aW9uIHgodCxlLHIsbil7cmV0dXJuIE4oZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLHI9MDtyPHQubGVuZ3RoOysrcillLnB1c2goMjU1JnQuY2hhckNvZGVBdChyKSk7cmV0dXJuIGV9KGUpLHQscixuKX1mdW5jdGlvbiBiKHQsZSxyLG4pe3JldHVybiB4KHQsZSxyLG4pfWZ1bmN0aW9uIF8odCxlLHIsbil7cmV0dXJuIE4oQihlKSx0LHIsbil9ZnVuY3Rpb24gdyh0LGUscixuKXtyZXR1cm4gTihmdW5jdGlvbih0LGUpe2Zvcih2YXIgcixuLGEsaT1bXSxvPTA7bzx0Lmxlbmd0aCYmISgoZS09Mik8MCk7KytvKXI9dC5jaGFyQ29kZUF0KG8pLG49cj4+OCxhPXIlMjU2LGkucHVzaChhKSxpLnB1c2gobik7cmV0dXJuIGl9KGUsdC5sZW5ndGgtciksdCxyLG4pfWZ1bmN0aW9uIGsodCxlLHIpe3JldHVybiAwPT09ZSYmcj09PXQubGVuZ3RoP24uZnJvbUJ5dGVBcnJheSh0KTpuLmZyb21CeXRlQXJyYXkodC5zbGljZShlLHIpKX1mdW5jdGlvbiBUKHQsZSxyKXtyPU1hdGgubWluKHQubGVuZ3RoLHIpO2Zvcih2YXIgbj1bXSxhPWU7YTxyOyl7dmFyIGksbyxzLGwsYz10W2FdLHU9bnVsbCxoPWM+MjM5PzQ6Yz4yMjM/MzpjPjE5MT8yOjE7aWYoYStoPD1yKXN3aXRjaChoKXtjYXNlIDE6YzwxMjgmJih1PWMpO2JyZWFrO2Nhc2UgMjoxMjg9PSgxOTImKGk9dFthKzFdKSkmJihsPSgzMSZjKTw8Nnw2MyZpKT4xMjcmJih1PWwpO2JyZWFrO2Nhc2UgMzppPXRbYSsxXSxvPXRbYSsyXSwxMjg9PSgxOTImaSkmJjEyOD09KDE5MiZvKSYmKGw9KDE1JmMpPDwxMnwoNjMmaSk8PDZ8NjMmbyk+MjA0NyYmKGw8NTUyOTZ8fGw+NTczNDMpJiYodT1sKTticmVhaztjYXNlIDQ6aT10W2ErMV0sbz10W2ErMl0scz10W2ErM10sMTI4PT0oMTkyJmkpJiYxMjg9PSgxOTImbykmJjEyOD09KDE5MiZzKSYmKGw9KDE1JmMpPDwxOHwoNjMmaSk8PDEyfCg2MyZvKTw8Nnw2MyZzKT42NTUzNSYmbDwxMTE0MTEyJiYodT1sKX1udWxsPT09dT8odT02NTUzMyxoPTEpOnU+NjU1MzUmJih1LT02NTUzNixuLnB1c2godT4+PjEwJjEwMjN8NTUyOTYpLHU9NTYzMjB8MTAyMyZ1KSxuLnB1c2godSksYSs9aH1yZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9dC5sZW5ndGg7aWYoZTw9TSlyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsdCk7dmFyIHI9IiIsbj0wO2Zvcig7bjxlOylyKz1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyx0LnNsaWNlKG4sbis9TSkpO3JldHVybiByfShuKX1yLmtNYXhMZW5ndGg9byxlLlRZUEVEX0FSUkFZX1NVUFBPUlQ9ZnVuY3Rpb24oKXt0cnl7dmFyIHQ9bmV3IFVpbnQ4QXJyYXkoMSksZT17Zm9vOmZ1bmN0aW9uKCl7cmV0dXJuIDQyfX07cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZihlLFVpbnQ4QXJyYXkucHJvdG90eXBlKSxPYmplY3Quc2V0UHJvdG90eXBlT2YodCxlKSw0Mj09PXQuZm9vKCl9Y2F0Y2godCl7cmV0dXJuITF9fSgpLGUuVFlQRURfQVJSQVlfU1VQUE9SVHx8InVuZGVmaW5lZCI9PXR5cGVvZiBjb25zb2xlfHwiZnVuY3Rpb24iIT10eXBlb2YgY29uc29sZS5lcnJvcnx8Y29uc29sZS5lcnJvcigiVGhpcyBicm93c2VyIGxhY2tzIHR5cGVkIGFycmF5IChVaW50OEFycmF5KSBzdXBwb3J0IHdoaWNoIGlzIHJlcXVpcmVkIGJ5IGBidWZmZXJgIHY1LnguIFVzZSBgYnVmZmVyYCB2NC54IGlmIHlvdSByZXF1aXJlIG9sZCBicm93c2VyIHN1cHBvcnQuIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJwYXJlbnQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2lmKGUuaXNCdWZmZXIodGhpcykpcmV0dXJuIHRoaXMuYnVmZmVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwib2Zmc2V0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtpZihlLmlzQnVmZmVyKHRoaXMpKXJldHVybiB0aGlzLmJ5dGVPZmZzZXR9fSksInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPVN5bWJvbC5zcGVjaWVzJiZlW1N5bWJvbC5zcGVjaWVzXT09PWUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFN5bWJvbC5zcGVjaWVzLHt2YWx1ZTpudWxsLGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiExfSksZS5wb29sU2l6ZT04MTkyLGUuZnJvbT1mdW5jdGlvbih0LGUscil7cmV0dXJuIGwodCxlLHIpfSxPYmplY3Quc2V0UHJvdG90eXBlT2YoZS5wcm90b3R5cGUsVWludDhBcnJheS5wcm90b3R5cGUpLE9iamVjdC5zZXRQcm90b3R5cGVPZihlLFVpbnQ4QXJyYXkpLGUuYWxsb2M9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBmdW5jdGlvbih0LGUscil7cmV0dXJuIGModCksdDw9MD9zKHQpOnZvaWQgMCE9PWU/InN0cmluZyI9PXR5cGVvZiByP3ModCkuZmlsbChlLHIpOnModCkuZmlsbChlKTpzKHQpfSh0LGUscil9LGUuYWxsb2NVbnNhZmU9ZnVuY3Rpb24odCl7cmV0dXJuIHUodCl9LGUuYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKHQpe3JldHVybiB1KHQpfSxlLmlzQnVmZmVyPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT10JiYhMD09PXQuX2lzQnVmZmVyJiZ0IT09ZS5wcm90b3R5cGV9LGUuY29tcGFyZT1mdW5jdGlvbih0LHIpe2lmKGoodCxVaW50OEFycmF5KSYmKHQ9ZS5mcm9tKHQsdC5vZmZzZXQsdC5ieXRlTGVuZ3RoKSksaihyLFVpbnQ4QXJyYXkpJiYocj1lLmZyb20ocixyLm9mZnNldCxyLmJ5dGVMZW5ndGgpKSwhZS5pc0J1ZmZlcih0KXx8IWUuaXNCdWZmZXIocikpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJidWYxIiwgImJ1ZjIiIGFyZ3VtZW50cyBtdXN0IGJlIG9uZSBvZiB0eXBlIEJ1ZmZlciBvciBVaW50OEFycmF5Jyk7aWYodD09PXIpcmV0dXJuIDA7Zm9yKHZhciBuPXQubGVuZ3RoLGE9ci5sZW5ndGgsaT0wLG89TWF0aC5taW4obixhKTtpPG87KytpKWlmKHRbaV0hPT1yW2ldKXtuPXRbaV0sYT1yW2ldO2JyZWFrfXJldHVybiBuPGE/LTE6YTxuPzE6MH0sZS5pc0VuY29kaW5nPWZ1bmN0aW9uKHQpe3N3aXRjaChTdHJpbmcodCkudG9Mb3dlckNhc2UoKSl7Y2FzZSJoZXgiOmNhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6Y2FzZSJhc2NpaSI6Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpjYXNlImJhc2U2NCI6Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fSxlLmNvbmNhdD1mdW5jdGlvbih0LHIpe2lmKCFBcnJheS5pc0FycmF5KHQpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJsaXN0IiBhcmd1bWVudCBtdXN0IGJlIGFuIEFycmF5IG9mIEJ1ZmZlcnMnKTtpZigwPT09dC5sZW5ndGgpcmV0dXJuIGUuYWxsb2MoMCk7dmFyIG47aWYodm9pZCAwPT09cilmb3Iocj0wLG49MDtuPHQubGVuZ3RoOysrbilyKz10W25dLmxlbmd0aDt2YXIgYT1lLmFsbG9jVW5zYWZlKHIpLGk9MDtmb3Iobj0wO248dC5sZW5ndGg7KytuKXt2YXIgbz10W25dO2lmKGoobyxVaW50OEFycmF5KSYmKG89ZS5mcm9tKG8pKSwhZS5pc0J1ZmZlcihvKSl0aHJvdyBuZXcgVHlwZUVycm9yKCcibGlzdCIgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzJyk7by5jb3B5KGEsaSksaSs9by5sZW5ndGh9cmV0dXJuIGF9LGUuYnl0ZUxlbmd0aD1wLGUucHJvdG90eXBlLl9pc0J1ZmZlcj0hMCxlLnByb3RvdHlwZS5zd2FwMTY9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmxlbmd0aDtpZih0JTIhPTApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkJ1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAxNi1iaXRzIik7Zm9yKHZhciBlPTA7ZTx0O2UrPTIpZCh0aGlzLGUsZSsxKTtyZXR1cm4gdGhpc30sZS5wcm90b3R5cGUuc3dhcDMyPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5sZW5ndGg7aWYodCU0IT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMzItYml0cyIpO2Zvcih2YXIgZT0wO2U8dDtlKz00KWQodGhpcyxlLGUrMyksZCh0aGlzLGUrMSxlKzIpO3JldHVybiB0aGlzfSxlLnByb3RvdHlwZS5zd2FwNjQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmxlbmd0aDtpZih0JTghPTApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkJ1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA2NC1iaXRzIik7Zm9yKHZhciBlPTA7ZTx0O2UrPTgpZCh0aGlzLGUsZSs3KSxkKHRoaXMsZSsxLGUrNiksZCh0aGlzLGUrMixlKzUpLGQodGhpcyxlKzMsZSs0KTtyZXR1cm4gdGhpc30sZS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmxlbmd0aDtyZXR1cm4gMD09PXQ/IiI6MD09PWFyZ3VtZW50cy5sZW5ndGg/VCh0aGlzLDAsdCk6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPSExO2lmKCh2b2lkIDA9PT1lfHxlPDApJiYoZT0wKSxlPnRoaXMubGVuZ3RoKXJldHVybiIiO2lmKCh2b2lkIDA9PT1yfHxyPnRoaXMubGVuZ3RoKSYmKHI9dGhpcy5sZW5ndGgpLHI8PTApcmV0dXJuIiI7aWYoKHI+Pj49MCk8PShlPj4+PTApKXJldHVybiIiO2Zvcih0fHwodD0idXRmOCIpOzspc3dpdGNoKHQpe2Nhc2UiaGV4IjpyZXR1cm4gRSh0aGlzLGUscik7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4gVCh0aGlzLGUscik7Y2FzZSJhc2NpaSI6cmV0dXJuIEEodGhpcyxlLHIpO2Nhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuIFModGhpcyxlLHIpO2Nhc2UiYmFzZTY0IjpyZXR1cm4gayh0aGlzLGUscik7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiBMKHRoaXMsZSxyKTtkZWZhdWx0OmlmKG4pdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIit0KTt0PSh0KyIiKS50b0xvd2VyQ2FzZSgpLG49ITB9fS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGUucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nPWUucHJvdG90eXBlLnRvU3RyaW5nLGUucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtpZighZS5pc0J1ZmZlcih0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIik7cmV0dXJuIHRoaXM9PT10fHwwPT09ZS5jb21wYXJlKHRoaXMsdCl9LGUucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXt2YXIgdD0iIixlPXIuSU5TUEVDVF9NQVhfQllURVM7cmV0dXJuIHQ9dGhpcy50b1N0cmluZygiaGV4IiwwLGUpLnJlcGxhY2UoLyguezJ9KS9nLCIkMSAiKS50cmltKCksdGhpcy5sZW5ndGg+ZSYmKHQrPSIgLi4uICIpLCI8QnVmZmVyICIrdCsiPiJ9LGkmJihlLnByb3RvdHlwZVtpXT1lLnByb3RvdHlwZS5pbnNwZWN0KSxlLnByb3RvdHlwZS5jb21wYXJlPWZ1bmN0aW9uKHQscixuLGEsaSl7aWYoaih0LFVpbnQ4QXJyYXkpJiYodD1lLmZyb20odCx0Lm9mZnNldCx0LmJ5dGVMZW5ndGgpKSwhZS5pc0J1ZmZlcih0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInRhcmdldCIgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBCdWZmZXIgb3IgVWludDhBcnJheS4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiB0KTtpZih2b2lkIDA9PT1yJiYocj0wKSx2b2lkIDA9PT1uJiYobj10P3QubGVuZ3RoOjApLHZvaWQgMD09PWEmJihhPTApLHZvaWQgMD09PWkmJihpPXRoaXMubGVuZ3RoKSxyPDB8fG4+dC5sZW5ndGh8fGE8MHx8aT50aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib3V0IG9mIHJhbmdlIGluZGV4Iik7aWYoYT49aSYmcj49bilyZXR1cm4gMDtpZihhPj1pKXJldHVybi0xO2lmKHI+PW4pcmV0dXJuIDE7aWYodGhpcz09PXQpcmV0dXJuIDA7Zm9yKHZhciBvPShpPj4+PTApLShhPj4+PTApLHM9KG4+Pj49MCktKHI+Pj49MCksbD1NYXRoLm1pbihvLHMpLGM9dGhpcy5zbGljZShhLGkpLHU9dC5zbGljZShyLG4pLGg9MDtoPGw7KytoKWlmKGNbaF0hPT11W2hdKXtvPWNbaF0scz11W2hdO2JyZWFrfXJldHVybiBvPHM/LTE6czxvPzE6MH0sZS5wcm90b3R5cGUuaW5jbHVkZXM9ZnVuY3Rpb24odCxlLHIpe3JldHVybi0xIT09dGhpcy5pbmRleE9mKHQsZSxyKX0sZS5wcm90b3R5cGUuaW5kZXhPZj1mdW5jdGlvbih0LGUscil7cmV0dXJuIGcodGhpcyx0LGUsciwhMCl9LGUucHJvdG90eXBlLmxhc3RJbmRleE9mPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZyh0aGlzLHQsZSxyLCExKX0sZS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24odCxlLHIsbil7aWYodm9pZCAwPT09ZSluPSJ1dGY4IixyPXRoaXMubGVuZ3RoLGU9MDtlbHNlIGlmKHZvaWQgMD09PXImJiJzdHJpbmciPT10eXBlb2YgZSluPWUscj10aGlzLmxlbmd0aCxlPTA7ZWxzZXtpZighaXNGaW5pdGUoZSkpdGhyb3cgbmV3IEVycm9yKCJCdWZmZXIud3JpdGUoc3RyaW5nLCBlbmNvZGluZywgb2Zmc2V0WywgbGVuZ3RoXSkgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCIpO2U+Pj49MCxpc0Zpbml0ZShyKT8ocj4+Pj0wLHZvaWQgMD09PW4mJihuPSJ1dGY4IikpOihuPXIscj12b2lkIDApfXZhciBhPXRoaXMubGVuZ3RoLWU7aWYoKHZvaWQgMD09PXJ8fHI+YSkmJihyPWEpLHQubGVuZ3RoPjAmJihyPDB8fGU8MCl8fGU+dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkF0dGVtcHQgdG8gd3JpdGUgb3V0c2lkZSBidWZmZXIgYm91bmRzIik7bnx8KG49InV0ZjgiKTtmb3IodmFyIGk9ITE7Oylzd2l0Y2gobil7Y2FzZSJoZXgiOnJldHVybiBtKHRoaXMsdCxlLHIpO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIHkodGhpcyx0LGUscik7Y2FzZSJhc2NpaSI6cmV0dXJuIHgodGhpcyx0LGUscik7Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gYih0aGlzLHQsZSxyKTtjYXNlImJhc2U2NCI6cmV0dXJuIF8odGhpcyx0LGUscik7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiB3KHRoaXMsdCxlLHIpO2RlZmF1bHQ6aWYoaSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK24pO249KCIiK24pLnRvTG93ZXJDYXNlKCksaT0hMH19LGUucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJCdWZmZXIiLGRhdGE6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodGhpcy5fYXJyfHx0aGlzLDApfX07dmFyIE09NDA5NjtmdW5jdGlvbiBBKHQsZSxyKXt2YXIgbj0iIjtyPU1hdGgubWluKHQubGVuZ3RoLHIpO2Zvcih2YXIgYT1lO2E8cjsrK2Epbis9U3RyaW5nLmZyb21DaGFyQ29kZSgxMjcmdFthXSk7cmV0dXJuIG59ZnVuY3Rpb24gUyh0LGUscil7dmFyIG49IiI7cj1NYXRoLm1pbih0Lmxlbmd0aCxyKTtmb3IodmFyIGE9ZTthPHI7KythKW4rPVN0cmluZy5mcm9tQ2hhckNvZGUodFthXSk7cmV0dXJuIG59ZnVuY3Rpb24gRSh0LGUscil7dmFyIG49dC5sZW5ndGg7KCFlfHxlPDApJiYoZT0wKSwoIXJ8fHI8MHx8cj5uKSYmKHI9bik7Zm9yKHZhciBhPSIiLGk9ZTtpPHI7KytpKWErPVIodFtpXSk7cmV0dXJuIGF9ZnVuY3Rpb24gTCh0LGUscil7Zm9yKHZhciBuPXQuc2xpY2UoZSxyKSxhPSIiLGk9MDtpPG4ubGVuZ3RoO2krPTIpYSs9U3RyaW5nLmZyb21DaGFyQ29kZShuW2ldKzI1NipuW2krMV0pO3JldHVybiBhfWZ1bmN0aW9uIEModCxlLHIpe2lmKHQlMSE9MHx8dDwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJvZmZzZXQgaXMgbm90IHVpbnQiKTtpZih0K2U+cil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiVHJ5aW5nIHRvIGFjY2VzcyBiZXlvbmQgYnVmZmVyIGxlbmd0aCIpfWZ1bmN0aW9uIFAodCxyLG4sYSxpLG8pe2lmKCFlLmlzQnVmZmVyKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJidWZmZXIiIGFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIgaW5zdGFuY2UnKTtpZihyPml8fHI8byl0aHJvdyBuZXcgUmFuZ2VFcnJvcignInZhbHVlIiBhcmd1bWVudCBpcyBvdXQgb2YgYm91bmRzJyk7aWYobithPnQubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKX1mdW5jdGlvbiBPKHQsZSxyLG4sYSxpKXtpZihyK24+dC5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkluZGV4IG91dCBvZiByYW5nZSIpO2lmKHI8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24geih0LGUscixuLGkpe3JldHVybiBlPStlLHI+Pj49MCxpfHxPKHQsMCxyLDQpLGEud3JpdGUodCxlLHIsbiwyMyw0KSxyKzR9ZnVuY3Rpb24gSSh0LGUscixuLGkpe3JldHVybiBlPStlLHI+Pj49MCxpfHxPKHQsMCxyLDgpLGEud3JpdGUodCxlLHIsbiw1Miw4KSxyKzh9ZS5wcm90b3R5cGUuc2xpY2U9ZnVuY3Rpb24odCxyKXt2YXIgbj10aGlzLmxlbmd0aDsodD1+fnQpPDA/KHQrPW4pPDAmJih0PTApOnQ+biYmKHQ9biksKHI9dm9pZCAwPT09cj9uOn5+cik8MD8ocis9bik8MCYmKHI9MCk6cj5uJiYocj1uKSxyPHQmJihyPXQpO3ZhciBhPXRoaXMuc3ViYXJyYXkodCxyKTtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKGEsZS5wcm90b3R5cGUpLGF9LGUucHJvdG90eXBlLnJlYWRVSW50TEU9ZnVuY3Rpb24odCxlLHIpe3Q+Pj49MCxlPj4+PTAscnx8Qyh0LGUsdGhpcy5sZW5ndGgpO2Zvcih2YXIgbj10aGlzW3RdLGE9MSxpPTA7KytpPGUmJihhKj0yNTYpOyluKz10aGlzW3QraV0qYTtyZXR1cm4gbn0sZS5wcm90b3R5cGUucmVhZFVJbnRCRT1mdW5jdGlvbih0LGUscil7dD4+Pj0wLGU+Pj49MCxyfHxDKHQsZSx0aGlzLmxlbmd0aCk7Zm9yKHZhciBuPXRoaXNbdCstLWVdLGE9MTtlPjAmJihhKj0yNTYpOyluKz10aGlzW3QrLS1lXSphO3JldHVybiBufSxlLnByb3RvdHlwZS5yZWFkVUludDg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD4+Pj0wLGV8fEModCwxLHRoaXMubGVuZ3RoKSx0aGlzW3RdfSxlLnByb3RvdHlwZS5yZWFkVUludDE2TEU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD4+Pj0wLGV8fEModCwyLHRoaXMubGVuZ3RoKSx0aGlzW3RdfHRoaXNbdCsxXTw8OH0sZS5wcm90b3R5cGUucmVhZFVJbnQxNkJFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHxDKHQsMix0aGlzLmxlbmd0aCksdGhpc1t0XTw8OHx0aGlzW3QrMV19LGUucHJvdG90eXBlLnJlYWRVSW50MzJMRT1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8Qyh0LDQsdGhpcy5sZW5ndGgpLCh0aGlzW3RdfHRoaXNbdCsxXTw8OHx0aGlzW3QrMl08PDE2KSsxNjc3NzIxNip0aGlzW3QrM119LGUucHJvdG90eXBlLnJlYWRVSW50MzJCRT1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8Qyh0LDQsdGhpcy5sZW5ndGgpLDE2Nzc3MjE2KnRoaXNbdF0rKHRoaXNbdCsxXTw8MTZ8dGhpc1t0KzJdPDw4fHRoaXNbdCszXSl9LGUucHJvdG90eXBlLnJlYWRJbnRMRT1mdW5jdGlvbih0LGUscil7dD4+Pj0wLGU+Pj49MCxyfHxDKHQsZSx0aGlzLmxlbmd0aCk7Zm9yKHZhciBuPXRoaXNbdF0sYT0xLGk9MDsrK2k8ZSYmKGEqPTI1Nik7KW4rPXRoaXNbdCtpXSphO3JldHVybiBuPj0oYSo9MTI4KSYmKG4tPU1hdGgucG93KDIsOCplKSksbn0sZS5wcm90b3R5cGUucmVhZEludEJFPWZ1bmN0aW9uKHQsZSxyKXt0Pj4+PTAsZT4+Pj0wLHJ8fEModCxlLHRoaXMubGVuZ3RoKTtmb3IodmFyIG49ZSxhPTEsaT10aGlzW3QrLS1uXTtuPjAmJihhKj0yNTYpOylpKz10aGlzW3QrLS1uXSphO3JldHVybiBpPj0oYSo9MTI4KSYmKGktPU1hdGgucG93KDIsOCplKSksaX0sZS5wcm90b3R5cGUucmVhZEludDg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD4+Pj0wLGV8fEModCwxLHRoaXMubGVuZ3RoKSwxMjgmdGhpc1t0XT8tMSooMjU1LXRoaXNbdF0rMSk6dGhpc1t0XX0sZS5wcm90b3R5cGUucmVhZEludDE2TEU9ZnVuY3Rpb24odCxlKXt0Pj4+PTAsZXx8Qyh0LDIsdGhpcy5sZW5ndGgpO3ZhciByPXRoaXNbdF18dGhpc1t0KzFdPDw4O3JldHVybiAzMjc2OCZyPzQyOTQ5MDE3NjB8cjpyfSxlLnByb3RvdHlwZS5yZWFkSW50MTZCRT1mdW5jdGlvbih0LGUpe3Q+Pj49MCxlfHxDKHQsMix0aGlzLmxlbmd0aCk7dmFyIHI9dGhpc1t0KzFdfHRoaXNbdF08PDg7cmV0dXJuIDMyNzY4JnI/NDI5NDkwMTc2MHxyOnJ9LGUucHJvdG90eXBlLnJlYWRJbnQzMkxFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHxDKHQsNCx0aGlzLmxlbmd0aCksdGhpc1t0XXx0aGlzW3QrMV08PDh8dGhpc1t0KzJdPDwxNnx0aGlzW3QrM108PDI0fSxlLnByb3RvdHlwZS5yZWFkSW50MzJCRT1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8Qyh0LDQsdGhpcy5sZW5ndGgpLHRoaXNbdF08PDI0fHRoaXNbdCsxXTw8MTZ8dGhpc1t0KzJdPDw4fHRoaXNbdCszXX0sZS5wcm90b3R5cGUucmVhZEZsb2F0TEU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD4+Pj0wLGV8fEModCw0LHRoaXMubGVuZ3RoKSxhLnJlYWQodGhpcyx0LCEwLDIzLDQpfSxlLnByb3RvdHlwZS5yZWFkRmxvYXRCRT1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8Qyh0LDQsdGhpcy5sZW5ndGgpLGEucmVhZCh0aGlzLHQsITEsMjMsNCl9LGUucHJvdG90eXBlLnJlYWREb3VibGVMRT1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8Qyh0LDgsdGhpcy5sZW5ndGgpLGEucmVhZCh0aGlzLHQsITAsNTIsOCl9LGUucHJvdG90eXBlLnJlYWREb3VibGVCRT1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8Qyh0LDgsdGhpcy5sZW5ndGgpLGEucmVhZCh0aGlzLHQsITEsNTIsOCl9LGUucHJvdG90eXBlLndyaXRlVUludExFPWZ1bmN0aW9uKHQsZSxyLG4peyh0PSt0LGU+Pj49MCxyPj4+PTAsbil8fFAodGhpcyx0LGUscixNYXRoLnBvdygyLDgqciktMSwwKTt2YXIgYT0xLGk9MDtmb3IodGhpc1tlXT0yNTUmdDsrK2k8ciYmKGEqPTI1Nik7KXRoaXNbZStpXT10L2EmMjU1O3JldHVybiBlK3J9LGUucHJvdG90eXBlLndyaXRlVUludEJFPWZ1bmN0aW9uKHQsZSxyLG4peyh0PSt0LGU+Pj49MCxyPj4+PTAsbil8fFAodGhpcyx0LGUscixNYXRoLnBvdygyLDgqciktMSwwKTt2YXIgYT1yLTEsaT0xO2Zvcih0aGlzW2UrYV09MjU1JnQ7LS1hPj0wJiYoaSo9MjU2KTspdGhpc1tlK2FdPXQvaSYyNTU7cmV0dXJuIGUrcn0sZS5wcm90b3R5cGUud3JpdGVVSW50OD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9K3QsZT4+Pj0wLHJ8fFAodGhpcyx0LGUsMSwyNTUsMCksdGhpc1tlXT0yNTUmdCxlKzF9LGUucHJvdG90eXBlLndyaXRlVUludDE2TEU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxQKHRoaXMsdCxlLDIsNjU1MzUsMCksdGhpc1tlXT0yNTUmdCx0aGlzW2UrMV09dD4+PjgsZSsyfSxlLnByb3RvdHlwZS53cml0ZVVJbnQxNkJFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8UCh0aGlzLHQsZSwyLDY1NTM1LDApLHRoaXNbZV09dD4+PjgsdGhpc1tlKzFdPTI1NSZ0LGUrMn0sZS5wcm90b3R5cGUud3JpdGVVSW50MzJMRT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9K3QsZT4+Pj0wLHJ8fFAodGhpcyx0LGUsNCw0Mjk0OTY3Mjk1LDApLHRoaXNbZSszXT10Pj4+MjQsdGhpc1tlKzJdPXQ+Pj4xNix0aGlzW2UrMV09dD4+PjgsdGhpc1tlXT0yNTUmdCxlKzR9LGUucHJvdG90eXBlLndyaXRlVUludDMyQkU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxQKHRoaXMsdCxlLDQsNDI5NDk2NzI5NSwwKSx0aGlzW2VdPXQ+Pj4yNCx0aGlzW2UrMV09dD4+PjE2LHRoaXNbZSsyXT10Pj4+OCx0aGlzW2UrM109MjU1JnQsZSs0fSxlLnByb3RvdHlwZS53cml0ZUludExFPWZ1bmN0aW9uKHQsZSxyLG4pe2lmKHQ9K3QsZT4+Pj0wLCFuKXt2YXIgYT1NYXRoLnBvdygyLDgqci0xKTtQKHRoaXMsdCxlLHIsYS0xLC1hKX12YXIgaT0wLG89MSxzPTA7Zm9yKHRoaXNbZV09MjU1JnQ7KytpPHImJihvKj0yNTYpOyl0PDAmJjA9PT1zJiYwIT09dGhpc1tlK2ktMV0mJihzPTEpLHRoaXNbZStpXT0odC9vPj4wKS1zJjI1NTtyZXR1cm4gZStyfSxlLnByb3RvdHlwZS53cml0ZUludEJFPWZ1bmN0aW9uKHQsZSxyLG4pe2lmKHQ9K3QsZT4+Pj0wLCFuKXt2YXIgYT1NYXRoLnBvdygyLDgqci0xKTtQKHRoaXMsdCxlLHIsYS0xLC1hKX12YXIgaT1yLTEsbz0xLHM9MDtmb3IodGhpc1tlK2ldPTI1NSZ0Oy0taT49MCYmKG8qPTI1Nik7KXQ8MCYmMD09PXMmJjAhPT10aGlzW2UraSsxXSYmKHM9MSksdGhpc1tlK2ldPSh0L28+PjApLXMmMjU1O3JldHVybiBlK3J9LGUucHJvdG90eXBlLndyaXRlSW50OD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9K3QsZT4+Pj0wLHJ8fFAodGhpcyx0LGUsMSwxMjcsLTEyOCksdDwwJiYodD0yNTUrdCsxKSx0aGlzW2VdPTI1NSZ0LGUrMX0sZS5wcm90b3R5cGUud3JpdGVJbnQxNkxFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8UCh0aGlzLHQsZSwyLDMyNzY3LC0zMjc2OCksdGhpc1tlXT0yNTUmdCx0aGlzW2UrMV09dD4+PjgsZSsyfSxlLnByb3RvdHlwZS53cml0ZUludDE2QkU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxQKHRoaXMsdCxlLDIsMzI3NjcsLTMyNzY4KSx0aGlzW2VdPXQ+Pj44LHRoaXNbZSsxXT0yNTUmdCxlKzJ9LGUucHJvdG90eXBlLndyaXRlSW50MzJMRT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9K3QsZT4+Pj0wLHJ8fFAodGhpcyx0LGUsNCwyMTQ3NDgzNjQ3LC0yMTQ3NDgzNjQ4KSx0aGlzW2VdPTI1NSZ0LHRoaXNbZSsxXT10Pj4+OCx0aGlzW2UrMl09dD4+PjE2LHRoaXNbZSszXT10Pj4+MjQsZSs0fSxlLnByb3RvdHlwZS53cml0ZUludDMyQkU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxQKHRoaXMsdCxlLDQsMjE0NzQ4MzY0NywtMjE0NzQ4MzY0OCksdDwwJiYodD00Mjk0OTY3Mjk1K3QrMSksdGhpc1tlXT10Pj4+MjQsdGhpc1tlKzFdPXQ+Pj4xNix0aGlzW2UrMl09dD4+PjgsdGhpc1tlKzNdPTI1NSZ0LGUrNH0sZS5wcm90b3R5cGUud3JpdGVGbG9hdExFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4geih0aGlzLHQsZSwhMCxyKX0sZS5wcm90b3R5cGUud3JpdGVGbG9hdEJFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4geih0aGlzLHQsZSwhMSxyKX0sZS5wcm90b3R5cGUud3JpdGVEb3VibGVMRT1mdW5jdGlvbih0LGUscil7cmV0dXJuIEkodGhpcyx0LGUsITAscil9LGUucHJvdG90eXBlLndyaXRlRG91YmxlQkU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBJKHRoaXMsdCxlLCExLHIpfSxlLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKHQscixuLGEpe2lmKCFlLmlzQnVmZmVyKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoImFyZ3VtZW50IHNob3VsZCBiZSBhIEJ1ZmZlciIpO2lmKG58fChuPTApLGF8fDA9PT1hfHwoYT10aGlzLmxlbmd0aCkscj49dC5sZW5ndGgmJihyPXQubGVuZ3RoKSxyfHwocj0wKSxhPjAmJmE8biYmKGE9biksYT09PW4pcmV0dXJuIDA7aWYoMD09PXQubGVuZ3RofHwwPT09dGhpcy5sZW5ndGgpcmV0dXJuIDA7aWYocjwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJ0YXJnZXRTdGFydCBvdXQgb2YgYm91bmRzIik7aWYobjwwfHxuPj10aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIik7aWYoYTwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJzb3VyY2VFbmQgb3V0IG9mIGJvdW5kcyIpO2E+dGhpcy5sZW5ndGgmJihhPXRoaXMubGVuZ3RoKSx0Lmxlbmd0aC1yPGEtbiYmKGE9dC5sZW5ndGgtcituKTt2YXIgaT1hLW47aWYodGhpcz09PXQmJiJmdW5jdGlvbiI9PXR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5jb3B5V2l0aGluKXRoaXMuY29weVdpdGhpbihyLG4sYSk7ZWxzZSBpZih0aGlzPT09dCYmbjxyJiZyPGEpZm9yKHZhciBvPWktMTtvPj0wOy0tbyl0W28rcl09dGhpc1tvK25dO2Vsc2UgVWludDhBcnJheS5wcm90b3R5cGUuc2V0LmNhbGwodCx0aGlzLnN1YmFycmF5KG4sYSkscik7cmV0dXJuIGl9LGUucHJvdG90eXBlLmZpbGw9ZnVuY3Rpb24odCxyLG4sYSl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtpZigic3RyaW5nIj09dHlwZW9mIHI/KGE9cixyPTAsbj10aGlzLmxlbmd0aCk6InN0cmluZyI9PXR5cGVvZiBuJiYoYT1uLG49dGhpcy5sZW5ndGgpLHZvaWQgMCE9PWEmJiJzdHJpbmciIT10eXBlb2YgYSl0aHJvdyBuZXcgVHlwZUVycm9yKCJlbmNvZGluZyBtdXN0IGJlIGEgc3RyaW5nIik7aWYoInN0cmluZyI9PXR5cGVvZiBhJiYhZS5pc0VuY29kaW5nKGEpKXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrYSk7aWYoMT09PXQubGVuZ3RoKXt2YXIgaT10LmNoYXJDb2RlQXQoMCk7KCJ1dGY4Ij09PWEmJmk8MTI4fHwibGF0aW4xIj09PWEpJiYodD1pKX19ZWxzZSJudW1iZXIiPT10eXBlb2YgdD90Jj0yNTU6ImJvb2xlYW4iPT10eXBlb2YgdCYmKHQ9TnVtYmVyKHQpKTtpZihyPDB8fHRoaXMubGVuZ3RoPHJ8fHRoaXMubGVuZ3RoPG4pdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk91dCBvZiByYW5nZSBpbmRleCIpO2lmKG48PXIpcmV0dXJuIHRoaXM7dmFyIG87aWYocj4+Pj0wLG49dm9pZCAwPT09bj90aGlzLmxlbmd0aDpuPj4+MCx0fHwodD0wKSwibnVtYmVyIj09dHlwZW9mIHQpZm9yKG89cjtvPG47KytvKXRoaXNbb109dDtlbHNle3ZhciBzPWUuaXNCdWZmZXIodCk/dDplLmZyb20odCxhKSxsPXMubGVuZ3RoO2lmKDA9PT1sKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSB2YWx1ZSAiJyt0KyciIGlzIGludmFsaWQgZm9yIGFyZ3VtZW50ICJ2YWx1ZSInKTtmb3Iobz0wO288bi1yOysrbyl0aGlzW28rcl09c1tvJWxdfXJldHVybiB0aGlzfTt2YXIgRD0vW14rLzAtOUEtWmEtei1fXS9nO2Z1bmN0aW9uIFIodCl7cmV0dXJuIHQ8MTY/IjAiK3QudG9TdHJpbmcoMTYpOnQudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIEYodCxlKXt2YXIgcjtlPWV8fDEvMDtmb3IodmFyIG49dC5sZW5ndGgsYT1udWxsLGk9W10sbz0wO288bjsrK28pe2lmKChyPXQuY2hhckNvZGVBdChvKSk+NTUyOTUmJnI8NTczNDQpe2lmKCFhKXtpZihyPjU2MzE5KXsoZS09Myk+LTEmJmkucHVzaCgyMzksMTkxLDE4OSk7Y29udGludWV9aWYobysxPT09bil7KGUtPTMpPi0xJiZpLnB1c2goMjM5LDE5MSwxODkpO2NvbnRpbnVlfWE9cjtjb250aW51ZX1pZihyPDU2MzIwKXsoZS09Myk+LTEmJmkucHVzaCgyMzksMTkxLDE4OSksYT1yO2NvbnRpbnVlfXI9NjU1MzYrKGEtNTUyOTY8PDEwfHItNTYzMjApfWVsc2UgYSYmKGUtPTMpPi0xJiZpLnB1c2goMjM5LDE5MSwxODkpO2lmKGE9bnVsbCxyPDEyOCl7aWYoKGUtPTEpPDApYnJlYWs7aS5wdXNoKHIpfWVsc2UgaWYocjwyMDQ4KXtpZigoZS09Mik8MClicmVhaztpLnB1c2gocj4+NnwxOTIsNjMmcnwxMjgpfWVsc2UgaWYocjw2NTUzNil7aWYoKGUtPTMpPDApYnJlYWs7aS5wdXNoKHI+PjEyfDIyNCxyPj42JjYzfDEyOCw2MyZyfDEyOCl9ZWxzZXtpZighKHI8MTExNDExMikpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNvZGUgcG9pbnQiKTtpZigoZS09NCk8MClicmVhaztpLnB1c2gocj4+MTh8MjQwLHI+PjEyJjYzfDEyOCxyPj42JjYzfDEyOCw2MyZyfDEyOCl9fXJldHVybiBpfWZ1bmN0aW9uIEIodCl7cmV0dXJuIG4udG9CeXRlQXJyYXkoZnVuY3Rpb24odCl7aWYoKHQ9KHQ9dC5zcGxpdCgiPSIpWzBdKS50cmltKCkucmVwbGFjZShELCIiKSkubGVuZ3RoPDIpcmV0dXJuIiI7Zm9yKDt0Lmxlbmd0aCU0IT0wOyl0Kz0iPSI7cmV0dXJuIHR9KHQpKX1mdW5jdGlvbiBOKHQsZSxyLG4pe2Zvcih2YXIgYT0wO2E8biYmIShhK3I+PWUubGVuZ3RofHxhPj10Lmxlbmd0aCk7KythKWVbYStyXT10W2FdO3JldHVybiBhfWZ1bmN0aW9uIGoodCxlKXtyZXR1cm4gdCBpbnN0YW5jZW9mIGV8fG51bGwhPXQmJm51bGwhPXQuY29uc3RydWN0b3ImJm51bGwhPXQuY29uc3RydWN0b3IubmFtZSYmdC5jb25zdHJ1Y3Rvci5uYW1lPT09ZS5uYW1lfWZ1bmN0aW9uIFYodCl7cmV0dXJuIHQhPXR9fSkuY2FsbCh0aGlzLHQoImJ1ZmZlciIpLkJ1ZmZlcil9LHsiYmFzZTY0LWpzIjo3NixidWZmZXI6MTA3LGllZWU3NTQ6NDE0fV0sMTA4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vbGliL21vbm90b25lIiksYT10KCIuL2xpYi90cmlhbmd1bGF0aW9uIiksaT10KCIuL2xpYi9kZWxhdW5heSIpLG89dCgiLi9saWIvZmlsdGVyIik7ZnVuY3Rpb24gcyh0KXtyZXR1cm5bTWF0aC5taW4odFswXSx0WzFdKSxNYXRoLm1heCh0WzBdLHRbMV0pXX1mdW5jdGlvbiBsKHQsZSl7cmV0dXJuIHRbMF0tZVswXXx8dFsxXS1lWzFdfWZ1bmN0aW9uIGModCxlLHIpe3JldHVybiBlIGluIHQ/dFtlXTpyfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7QXJyYXkuaXNBcnJheShlKT8ocj1yfHx7fSxlPWV8fFtdKToocj1lfHx7fSxlPVtdKTt2YXIgdT0hIWMociwiZGVsYXVuYXkiLCEwKSxoPSEhYyhyLCJpbnRlcmlvciIsITApLGY9ISFjKHIsImV4dGVyaW9yIiwhMCkscD0hIWMociwiaW5maW5pdHkiLCExKTtpZighaCYmIWZ8fDA9PT10Lmxlbmd0aClyZXR1cm5bXTt2YXIgZD1uKHQsZSk7aWYodXx8aCE9PWZ8fHApe2Zvcih2YXIgZz1hKHQubGVuZ3RoLGZ1bmN0aW9uKHQpe3JldHVybiB0Lm1hcChzKS5zb3J0KGwpfShlKSksdj0wO3Y8ZC5sZW5ndGg7Kyt2KXt2YXIgbT1kW3ZdO2cuYWRkVHJpYW5nbGUobVswXSxtWzFdLG1bMl0pfXJldHVybiB1JiZpKHQsZyksZj9oP3A/byhnLDAscCk6Zy5jZWxscygpOm8oZywxLHApOm8oZywtMSl9cmV0dXJuIGR9fSx7Ii4vbGliL2RlbGF1bmF5IjoxMDksIi4vbGliL2ZpbHRlciI6MTEwLCIuL2xpYi9tb25vdG9uZSI6MTExLCIuL2xpYi90cmlhbmd1bGF0aW9uIjoxMTJ9XSwxMDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgicm9idXN0LWluLXNwaGVyZSIpWzRdO3QoImJpbmFyeS1zZWFyY2gtYm91bmRzIik7ZnVuY3Rpb24gYSh0LGUscixhLGksbyl7dmFyIHM9ZS5vcHBvc2l0ZShhLGkpO2lmKCEoczwwKSl7aWYoaTxhKXt2YXIgbD1hO2E9aSxpPWwsbD1vLG89cyxzPWx9ZS5pc0NvbnN0cmFpbnQoYSxpKXx8bih0W2FdLHRbaV0sdFtvXSx0W3NdKTwwJiZyLnB1c2goYSxpKX19ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVtdLGk9dC5sZW5ndGgsbz1lLnN0YXJzLHM9MDtzPGk7KytzKWZvcih2YXIgbD1vW3NdLGM9MTtjPGwubGVuZ3RoO2MrPTIpe3ZhciB1PWxbY107aWYoISh1PHMpJiYhZS5pc0NvbnN0cmFpbnQocyx1KSl7Zm9yKHZhciBoPWxbYy0xXSxmPS0xLHA9MTtwPGwubGVuZ3RoO3ArPTIpaWYobFtwLTFdPT09dSl7Zj1sW3BdO2JyZWFrfWY8MHx8bih0W3NdLHRbdV0sdFtoXSx0W2ZdKTwwJiZyLnB1c2gocyx1KX19Zm9yKDtyLmxlbmd0aD4wOyl7Zm9yKHZhciB1PXIucG9wKCkscz1yLnBvcCgpLGg9LTEsZj0tMSxsPW9bc10sZD0xO2Q8bC5sZW5ndGg7ZCs9Mil7dmFyIGc9bFtkLTFdLHY9bFtkXTtnPT09dT9mPXY6dj09PXUmJihoPWcpfWg8MHx8ZjwwfHwobih0W3NdLHRbdV0sdFtoXSx0W2ZdKT49MHx8KGUuZmxpcChzLHUpLGEodCxlLHIsaCxzLGYpLGEodCxlLHIscyxmLGgpLGEodCxlLHIsZix1LGgpLGEodCxlLHIsdSxoLGYpKSl9fX0seyJiaW5hcnktc2VhcmNoLWJvdW5kcyI6MTEzLCJyb2J1c3QtaW4tc3BoZXJlIjo1MDd9XSwxMTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG4sYT10KCJiaW5hcnktc2VhcmNoLWJvdW5kcyIpO2Z1bmN0aW9uIGkodCxlLHIsbixhLGksbyl7dGhpcy5jZWxscz10LHRoaXMubmVpZ2hib3I9ZSx0aGlzLmZsYWdzPW4sdGhpcy5jb25zdHJhaW50PXIsdGhpcy5hY3RpdmU9YSx0aGlzLm5leHQ9aSx0aGlzLmJvdW5kYXJ5PW99ZnVuY3Rpb24gbyh0LGUpe3JldHVybiB0WzBdLWVbMF18fHRbMV0tZVsxXXx8dFsyXS1lWzJdfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5jZWxscygpLG49ci5sZW5ndGgsYT0wO2E8bjsrK2Epe3ZhciBzPXJbYV0sbD1zWzBdLGM9c1sxXSx1PXNbMl07Yzx1P2M8bCYmKHNbMF09YyxzWzFdPXUsc1syXT1sKTp1PGwmJihzWzBdPXUsc1sxXT1sLHNbMl09Yyl9ci5zb3J0KG8pO2Zvcih2YXIgaD1uZXcgQXJyYXkobiksYT0wO2E8aC5sZW5ndGg7KythKWhbYV09MDt2YXIgZj1bXSxwPVtdLGQ9bmV3IEFycmF5KDMqbiksZz1uZXcgQXJyYXkoMypuKSx2PW51bGw7ZSYmKHY9W10pO2Zvcih2YXIgbT1uZXcgaShyLGQsZyxoLGYscCx2KSxhPTA7YTxuOysrYSlmb3IodmFyIHM9clthXSx5PTA7eTwzOysreSl7dmFyIGw9c1t5XSxjPXNbKHkrMSklM10seD1kWzMqYSt5XT1tLmxvY2F0ZShjLGwsdC5vcHBvc2l0ZShjLGwpKSxiPWdbMyphK3ldPXQuaXNDb25zdHJhaW50KGwsYyk7eDwwJiYoYj9wLnB1c2goYSk6KGYucHVzaChhKSxoW2FdPTEpLGUmJnYucHVzaChbYyxsLC0xXSkpfXJldHVybiBtfSh0LHIpO2lmKDA9PT1lKXJldHVybiByP24uY2VsbHMuY29uY2F0KG4uYm91bmRhcnkpOm4uY2VsbHM7dmFyIGE9MSxzPW4uYWN0aXZlLGw9bi5uZXh0LGM9bi5mbGFncyx1PW4uY2VsbHMsaD1uLmNvbnN0cmFpbnQsZj1uLm5laWdoYm9yO2Zvcig7cy5sZW5ndGg+MHx8bC5sZW5ndGg+MDspe2Zvcig7cy5sZW5ndGg+MDspe3ZhciBwPXMucG9wKCk7aWYoY1twXSE9PS1hKXtjW3BdPWE7dVtwXTtmb3IodmFyIGQ9MDtkPDM7KytkKXt2YXIgZz1mWzMqcCtkXTtnPj0wJiYwPT09Y1tnXSYmKGhbMypwK2RdP2wucHVzaChnKToocy5wdXNoKGcpLGNbZ109YSkpfX19dmFyIHY9bDtsPXMscz12LGwubGVuZ3RoPTAsYT0tYX12YXIgbT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPTAsYT0wO2E8dC5sZW5ndGg7KythKWVbYV09PT1yJiYodFtuKytdPXRbYV0pO3JldHVybiB0Lmxlbmd0aD1uLHR9KHUsYyxlKTtpZihyKXJldHVybiBtLmNvbmNhdChuLmJvdW5kYXJ5KTtyZXR1cm4gbX0saS5wcm90b3R5cGUubG9jYXRlPShuPVswLDAsMF0sZnVuY3Rpb24odCxlLHIpe3ZhciBpPXQscz1lLGw9cjtyZXR1cm4gZTxyP2U8dCYmKGk9ZSxzPXIsbD10KTpyPHQmJihpPXIscz10LGw9ZSksaTwwPy0xOihuWzBdPWksblsxXT1zLG5bMl09bCxhLmVxKHRoaXMuY2VsbHMsbixvKSl9KX0seyJiaW5hcnktc2VhcmNoLWJvdW5kcyI6MTEzfV0sMTExOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImJpbmFyeS1zZWFyY2gtYm91bmRzIiksYT10KCJyb2J1c3Qtb3JpZW50YXRpb24iKVszXSxpPTAsbz0xLHM9MjtmdW5jdGlvbiBsKHQsZSxyLG4sYSl7dGhpcy5hPXQsdGhpcy5iPWUsdGhpcy5pZHg9cix0aGlzLmxvd2VySWRzPW4sdGhpcy51cHBlcklkcz1hfWZ1bmN0aW9uIGModCxlLHIsbil7dGhpcy5hPXQsdGhpcy5iPWUsdGhpcy50eXBlPXIsdGhpcy5pZHg9bn1mdW5jdGlvbiB1KHQsZSl7dmFyIHI9dC5hWzBdLWUuYVswXXx8dC5hWzFdLWUuYVsxXXx8dC50eXBlLWUudHlwZTtyZXR1cm4gcnx8KHQudHlwZSE9PWkmJihyPWEodC5hLHQuYixlLmIpKT9yOnQuaWR4LWUuaWR4KX1mdW5jdGlvbiBoKHQsZSl7cmV0dXJuIGEodC5hLHQuYixlKX1mdW5jdGlvbiBmKHQsZSxyLGksbyl7Zm9yKHZhciBzPW4ubHQoZSxpLGgpLGw9bi5ndChlLGksaCksYz1zO2M8bDsrK2Mpe2Zvcih2YXIgdT1lW2NdLGY9dS5sb3dlcklkcyxwPWYubGVuZ3RoO3A+MSYmYShyW2ZbcC0yXV0scltmW3AtMV1dLGkpPjA7KXQucHVzaChbZltwLTFdLGZbcC0yXSxvXSkscC09MTtmLmxlbmd0aD1wLGYucHVzaChvKTt2YXIgZD11LnVwcGVySWRzO2ZvcihwPWQubGVuZ3RoO3A+MSYmYShyW2RbcC0yXV0scltkW3AtMV1dLGkpPDA7KXQucHVzaChbZFtwLTJdLGRbcC0xXSxvXSkscC09MTtkLmxlbmd0aD1wLGQucHVzaChvKX19ZnVuY3Rpb24gcCh0LGUpe3ZhciByO3JldHVybihyPXQuYVswXTxlLmFbMF0/YSh0LmEsdC5iLGUuYSk6YShlLmIsZS5hLHQuYSkpP3I6KHI9ZS5iWzBdPHQuYlswXT9hKHQuYSx0LmIsZS5iKTphKGUuYixlLmEsdC5iKSl8fHQuaWR4LWUuaWR4fWZ1bmN0aW9uIGQodCxlLHIpe3ZhciBhPW4ubGUodCxyLHApLGk9dFthXSxvPWkudXBwZXJJZHMscz1vW28ubGVuZ3RoLTFdO2kudXBwZXJJZHM9W3NdLHQuc3BsaWNlKGErMSwwLG5ldyBsKHIuYSxyLmIsci5pZHgsW3NdLG8pKX1mdW5jdGlvbiBnKHQsZSxyKXt2YXIgYT1yLmE7ci5hPXIuYixyLmI9YTt2YXIgaT1uLmVxKHQscixwKSxvPXRbaV07dFtpLTFdLnVwcGVySWRzPW8udXBwZXJJZHMsdC5zcGxpY2UoaSwxKX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5sZW5ndGgsbj1lLmxlbmd0aCxhPVtdLGg9MDtoPHI7KytoKWEucHVzaChuZXcgYyh0W2hdLG51bGwsaSxoKSk7Zm9yKHZhciBoPTA7aDxuOysraCl7dmFyIHA9ZVtoXSx2PXRbcFswXV0sbT10W3BbMV1dO3ZbMF08bVswXT9hLnB1c2gobmV3IGModixtLHMsaCksbmV3IGMobSx2LG8saCkpOnZbMF0+bVswXSYmYS5wdXNoKG5ldyBjKG0sdixzLGgpLG5ldyBjKHYsbSxvLGgpKX1hLnNvcnQodSk7Zm9yKHZhciB5PWFbMF0uYVswXS0oMStNYXRoLmFicyhhWzBdLmFbMF0pKSpNYXRoLnBvdygyLC01MikseD1bbmV3IGwoW3ksMV0sW3ksMF0sLTEsW10sW10sW10sW10pXSxiPVtdLGg9MCxfPWEubGVuZ3RoO2g8XzsrK2gpe3ZhciB3PWFbaF0saz13LnR5cGU7az09PWk/ZihiLHgsdCx3LmEsdy5pZHgpOms9PT1zP2QoeCx0LHcpOmcoeCx0LHcpfXJldHVybiBifX0seyJiaW5hcnktc2VhcmNoLWJvdW5kcyI6MTEzLCJyb2J1c3Qtb3JpZW50YXRpb24iOjUwOX1dLDExMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJiaW5hcnktc2VhcmNoLWJvdW5kcyIpO2Z1bmN0aW9uIGEodCxlKXt0aGlzLnN0YXJzPXQsdGhpcy5lZGdlcz1lfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1uZXcgQXJyYXkodCksbj0wO248dDsrK24pcltuXT1bXTtyZXR1cm4gbmV3IGEocixlKX07dmFyIGk9YS5wcm90b3R5cGU7ZnVuY3Rpb24gbyh0LGUscil7Zm9yKHZhciBuPTEsYT10Lmxlbmd0aDtuPGE7bis9MilpZih0W24tMV09PT1lJiZ0W25dPT09cilyZXR1cm4gdFtuLTFdPXRbYS0yXSx0W25dPXRbYS0xXSx2b2lkKHQubGVuZ3RoPWEtMil9aS5pc0NvbnN0cmFpbnQ9ZnVuY3Rpb24oKXt2YXIgdD1bMCwwXTtmdW5jdGlvbiBlKHQsZSl7cmV0dXJuIHRbMF0tZVswXXx8dFsxXS1lWzFdfXJldHVybiBmdW5jdGlvbihyLGEpe3JldHVybiB0WzBdPU1hdGgubWluKHIsYSksdFsxXT1NYXRoLm1heChyLGEpLG4uZXEodGhpcy5lZGdlcyx0LGUpPj0wfX0oKSxpLnJlbW92ZVRyaWFuZ2xlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLnN0YXJzO28oblt0XSxlLHIpLG8obltlXSxyLHQpLG8obltyXSx0LGUpfSxpLmFkZFRyaWFuZ2xlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLnN0YXJzO25bdF0ucHVzaChlLHIpLG5bZV0ucHVzaChyLHQpLG5bcl0ucHVzaCh0LGUpfSxpLm9wcG9zaXRlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXRoaXMuc3RhcnNbZV0sbj0xLGE9ci5sZW5ndGg7bjxhO24rPTIpaWYocltuXT09PXQpcmV0dXJuIHJbbi0xXTtyZXR1cm4tMX0saS5mbGlwPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5vcHBvc2l0ZSh0LGUpLG49dGhpcy5vcHBvc2l0ZShlLHQpO3RoaXMucmVtb3ZlVHJpYW5nbGUodCxlLHIpLHRoaXMucmVtb3ZlVHJpYW5nbGUoZSx0LG4pLHRoaXMuYWRkVHJpYW5nbGUodCxuLHIpLHRoaXMuYWRkVHJpYW5nbGUoZSxyLG4pfSxpLmVkZ2VzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuc3RhcnMsZT1bXSxyPTAsbj10Lmxlbmd0aDtyPG47KytyKWZvcih2YXIgYT10W3JdLGk9MCxvPWEubGVuZ3RoO2k8bztpKz0yKWUucHVzaChbYVtpXSxhW2krMV1dKTtyZXR1cm4gZX0saS5jZWxscz1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLnN0YXJzLGU9W10scj0wLG49dC5sZW5ndGg7cjxuOysrcilmb3IodmFyIGE9dFtyXSxpPTAsbz1hLmxlbmd0aDtpPG87aSs9Mil7dmFyIHM9YVtpXSxsPWFbaSsxXTtyPE1hdGgubWluKHMsbCkmJmUucHVzaChbcixzLGxdKX1yZXR1cm4gZX19LHsiYmluYXJ5LXNlYXJjaC1ib3VuZHMiOjExM31dLDExMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyLG4sYSl7dmFyIGk9WyJmdW5jdGlvbiAiLHQsIihhLGwsaCwiLG4uam9pbigiLCIpLCIpeyIsYT8iIjoidmFyIGk9IixyPyJsLTEiOiJoKzEiLCI7d2hpbGUobDw9aCl7dmFyIG09KGwraCk+Pj4xLHg9YVttXSJdO3JldHVybiBhP2UuaW5kZXhPZigiYyIpPDA/aS5wdXNoKCI7aWYoeD09PXkpe3JldHVybiBtfWVsc2UgaWYoeDw9eSl7Iik6aS5wdXNoKCI7dmFyIHA9Yyh4LHkpO2lmKHA9PT0wKXtyZXR1cm4gbX1lbHNlIGlmKHA8PTApeyIpOmkucHVzaCgiO2lmKCIsZSwiKXtpPW07Iikscj9pLnB1c2goImw9bSsxfWVsc2V7aD1tLTF9Iik6aS5wdXNoKCJoPW0tMX1lbHNle2w9bSsxfSIpLGkucHVzaCgifSIpLGE/aS5wdXNoKCJyZXR1cm4gLTF9OyIpOmkucHVzaCgicmV0dXJuIGl9OyIpLGkuam9pbigiIil9ZnVuY3Rpb24gYSh0LGUscixhKXtyZXR1cm4gbmV3IEZ1bmN0aW9uKFtuKCJBIiwieCIrdCsieSIsZSxbInkiXSxhKSxuKCJQIiwiYyh4LHkpIit0KyIwIixlLFsieSIsImMiXSxhKSwiZnVuY3Rpb24gZGlzcGF0Y2hCc2VhcmNoIixyLCIoYSx5LGMsbCxoKXtpZih0eXBlb2YoYyk9PT0nZnVuY3Rpb24nKXtyZXR1cm4gUChhLChsPT09dm9pZCAwKT8wOmx8MCwoaD09PXZvaWQgMCk/YS5sZW5ndGgtMTpofDAseSxjKX1lbHNle3JldHVybiBBKGEsKGM9PT12b2lkIDApPzA6Y3wwLChsPT09dm9pZCAwKT9hLmxlbmd0aC0xOmx8MCx5KX19cmV0dXJuIGRpc3BhdGNoQnNlYXJjaCIscl0uam9pbigiIikpKCl9ZS5leHBvcnRzPXtnZTphKCI+PSIsITEsIkdFIiksZ3Q6YSgiPiIsITEsIkdUIiksbHQ6YSgiPCIsITAsIkxUIiksbGU6YSgiPD0iLCEwLCJMRSIpLGVxOmEoIi0iLCEwLCJFUSIsITApfX0se31dLDExNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTEscj0xO3I8dC5sZW5ndGg7KytyKWZvcih2YXIgbj0wO248cjsrK24paWYodFtyXTx0W25dKWU9LWU7ZWxzZSBpZih0W25dPT09dFtyXSlyZXR1cm4gMDtyZXR1cm4gZX19LHt9XSwxMTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZHVwIiksYT10KCJyb2J1c3QtbGluZWFyLXNvbHZlIik7ZnVuY3Rpb24gaSh0LGUpe2Zvcih2YXIgcj0wLG49dC5sZW5ndGgsYT0wO2E8bjsrK2Epcis9dFthXSplW2FdO3JldHVybiByfWZ1bmN0aW9uIG8odCl7dmFyIGU9dC5sZW5ndGg7aWYoMD09PWUpcmV0dXJuW107dFswXS5sZW5ndGg7dmFyIHI9bihbdC5sZW5ndGgrMSx0Lmxlbmd0aCsxXSwxKSxvPW4oW3QubGVuZ3RoKzFdLDEpO3JbZV1bZV09MDtmb3IodmFyIHM9MDtzPGU7KytzKXtmb3IodmFyIGw9MDtsPD1zOysrbClyW2xdW3NdPXJbc11bbF09MippKHRbc10sdFtsXSk7b1tzXT1pKHRbc10sdFtzXSl9dmFyIGM9YShyLG8pLHU9MCxoPWNbZSsxXTtmb3Iocz0wO3M8aC5sZW5ndGg7KytzKXUrPWhbc107dmFyIGY9bmV3IEFycmF5KGUpO2ZvcihzPTA7czxlOysrcyl7aD1jW3NdO3ZhciBwPTA7Zm9yKGw9MDtsPGgubGVuZ3RoOysrbClwKz1oW2xdO2Zbc109cC91fXJldHVybiBmfWZ1bmN0aW9uIHModCl7aWYoMD09PXQubGVuZ3RoKXJldHVybltdO2Zvcih2YXIgZT10WzBdLmxlbmd0aCxyPW4oW2VdKSxhPW8odCksaT0wO2k8dC5sZW5ndGg7KytpKWZvcih2YXIgcz0wO3M8ZTsrK3MpcltzXSs9dFtpXVtzXSphW2ldO3JldHVybiByfXMuYmFyeWNlbmV0cmljPW8sZS5leHBvcnRzPXN9LHtkdXA6MTcyLCJyb2J1c3QtbGluZWFyLXNvbHZlIjo1MDh9XSwxMTY6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPW4odCkscj0wLGE9MDthPHQubGVuZ3RoOysrYSlmb3IodmFyIGk9dFthXSxvPTA7bzxlLmxlbmd0aDsrK28pcis9TWF0aC5wb3coaVtvXS1lW29dLDIpO3JldHVybiBNYXRoLnNxcnQoci90Lmxlbmd0aCl9O3ZhciBuPXQoImNpcmN1bWNlbnRlciIpfSx7Y2lyY3VtY2VudGVyOjExNX1dLDExNzpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7cmV0dXJuIGU8cj90PGU/ZTp0PnI/cjp0OnQ8cj9yOnQ+ZT9lOnR9fSx7fV0sMTE4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG47aWYocil7bj1lO2Zvcih2YXIgYT1uZXcgQXJyYXkoZS5sZW5ndGgpLGk9MDtpPGUubGVuZ3RoOysraSl7dmFyIG89ZVtpXTthW2ldPVtvWzBdLG9bMV0scltpXV19ZT1hfXZhciBzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1kKHQsW10scCh0KSk7cmV0dXJuIG0oZSxuLHIpLCEhbn0odCxlLCEhcik7Zm9yKDt5KHQsZSwhIXIpOylzPSEwO2lmKHImJnMpe24ubGVuZ3RoPTAsci5sZW5ndGg9MDtmb3IodmFyIGk9MDtpPGUubGVuZ3RoOysraSl7dmFyIG89ZVtpXTtuLnB1c2goW29bMF0sb1sxXV0pLHIucHVzaChvWzJdKX19cmV0dXJuIHN9O3ZhciBuPXQoInVuaW9uLWZpbmQiKSxhPXQoImJveC1pbnRlcnNlY3QiKSxpPXQoInJvYnVzdC1zZWdtZW50LWludGVyc2VjdCIpLG89dCgiYmlnLXJhdCIpLHM9dCgiYmlnLXJhdC9jbXAiKSxsPXQoImJpZy1yYXQvdG8tZmxvYXQiKSxjPXQoInJhdC12ZWMiKSx1PXQoIm5leHRhZnRlciIpLGg9dCgiLi9saWIvcmF0LXNlZy1pbnRlcnNlY3QiKTtmdW5jdGlvbiBmKHQpe3ZhciBlPWwodCk7cmV0dXJuW3UoZSwtMS8wKSx1KGUsMS8wKV19ZnVuY3Rpb24gcCh0KXtmb3IodmFyIGU9bmV3IEFycmF5KHQubGVuZ3RoKSxyPTA7cjx0Lmxlbmd0aDsrK3Ipe3ZhciBuPXRbcl07ZVtyXT1bdShuWzBdLC0xLzApLHUoblsxXSwtMS8wKSx1KG5bMF0sMS8wKSx1KG5bMV0sMS8wKV19cmV0dXJuIGV9ZnVuY3Rpb24gZCh0LGUscil7Zm9yKHZhciBpPWUubGVuZ3RoLG89bmV3IG4oaSkscz1bXSxsPTA7bDxlLmxlbmd0aDsrK2wpe3ZhciBjPWVbbF0saD1mKGNbMF0pLHA9ZihjWzFdKTtzLnB1c2goW3UoaFswXSwtMS8wKSx1KHBbMF0sLTEvMCksdShoWzFdLDEvMCksdShwWzFdLDEvMCldKX1hKHMsZnVuY3Rpb24odCxlKXtvLmxpbmsodCxlKX0pO3ZhciBkPSEwLGc9bmV3IEFycmF5KGkpO2ZvcihsPTA7bDxpOysrbCl7KG09by5maW5kKGwpKSE9PWwmJihkPSExLHRbbV09W01hdGgubWluKHRbbF1bMF0sdFttXVswXSksTWF0aC5taW4odFtsXVsxXSx0W21dWzFdKV0pfWlmKGQpcmV0dXJuIG51bGw7dmFyIHY9MDtmb3IobD0wO2w8aTsrK2wpe3ZhciBtOyhtPW8uZmluZChsKSk9PT1sPyhnW2xdPXYsdFt2KytdPXRbbF0pOmdbbF09LTF9dC5sZW5ndGg9djtmb3IobD0wO2w8aTsrK2wpZ1tsXTwwJiYoZ1tsXT1nW28uZmluZChsKV0pO3JldHVybiBnfWZ1bmN0aW9uIGcodCxlKXtyZXR1cm4gdFswXS1lWzBdfHx0WzFdLWVbMV19ZnVuY3Rpb24gdih0LGUpe3ZhciByPXRbMF0tZVswXXx8dFsxXS1lWzFdO3JldHVybiByfHwodFsyXTxlWzJdPy0xOnRbMl0+ZVsyXT8xOjApfWZ1bmN0aW9uIG0odCxlLHIpe2lmKDAhPT10Lmxlbmd0aCl7aWYoZSlmb3IodmFyIG49MDtuPHQubGVuZ3RoOysrbil7dmFyIGE9ZVsobz10W25dKVswXV0saT1lW29bMV1dO29bMF09TWF0aC5taW4oYSxpKSxvWzFdPU1hdGgubWF4KGEsaSl9ZWxzZSBmb3Iobj0wO248dC5sZW5ndGg7KytuKXt2YXIgbzthPShvPXRbbl0pWzBdLGk9b1sxXTtvWzBdPU1hdGgubWluKGEsaSksb1sxXT1NYXRoLm1heChhLGkpfXI/dC5zb3J0KHYpOnQuc29ydChnKTt2YXIgcz0xO2ZvcihuPTE7bjx0Lmxlbmd0aDsrK24pe3ZhciBsPXRbbi0xXSxjPXRbbl07KGNbMF0hPT1sWzBdfHxjWzFdIT09bFsxXXx8ciYmY1syXSE9PWxbMl0pJiYodFtzKytdPWMpfXQubGVuZ3RoPXN9fWZ1bmN0aW9uIHkodCxlLHIpe3ZhciBuPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPW5ldyBBcnJheShlLmxlbmd0aCksbj0wO248ZS5sZW5ndGg7KytuKXt2YXIgYT1lW25dLGk9dFthWzBdXSxvPXRbYVsxXV07cltuXT1bdShNYXRoLm1pbihpWzBdLG9bMF0pLC0xLzApLHUoTWF0aC5taW4oaVsxXSxvWzFdKSwtMS8wKSx1KE1hdGgubWF4KGlbMF0sb1swXSksMS8wKSx1KE1hdGgubWF4KGlbMV0sb1sxXSksMS8wKV19cmV0dXJuIHJ9KHQsZSksZj1mdW5jdGlvbih0LGUscil7dmFyIG49W107cmV0dXJuIGEocixmdW5jdGlvbihyLGEpe3ZhciBvPWVbcl0scz1lW2FdO2lmKG9bMF0hPT1zWzBdJiZvWzBdIT09c1sxXSYmb1sxXSE9PXNbMF0mJm9bMV0hPT1zWzFdKXt2YXIgbD10W29bMF1dLGM9dFtvWzFdXSx1PXRbc1swXV0saD10W3NbMV1dO2kobCxjLHUsaCkmJm4ucHVzaChbcixhXSl9fSksbn0odCxlLG4pLGc9cCh0KSx2PWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBvPVtdO3JldHVybiBhKHIsbixmdW5jdGlvbihyLG4pe3ZhciBhPWVbcl07aWYoYVswXSE9PW4mJmFbMV0hPT1uKXt2YXIgcz10W25dLGw9dFthWzBdXSxjPXRbYVsxXV07aShsLGMscyxzKSYmby5wdXNoKFtyLG5dKX19KSxvfSh0LGUsbixnKSx5PWQodCxmdW5jdGlvbih0LGUscixuLGEpe3ZhciBpLHUsZj10Lm1hcChmdW5jdGlvbih0KXtyZXR1cm5bbyh0WzBdKSxvKHRbMV0pXX0pO2ZvcihpPTA7aTxyLmxlbmd0aDsrK2kpe3ZhciBwPXJbaV07dT1wWzBdO3ZhciBkPXBbMV0sZz1lW3VdLHY9ZVtkXSxtPWgoYyh0W2dbMF1dKSxjKHRbZ1sxXV0pLGModFt2WzBdXSksYyh0W3ZbMV1dKSk7aWYobSl7dmFyIHk9dC5sZW5ndGg7dC5wdXNoKFtsKG1bMF0pLGwobVsxXSldKSxmLnB1c2gobSksbi5wdXNoKFt1LHldLFtkLHldKX19Zm9yKG4uc29ydChmdW5jdGlvbih0LGUpe2lmKHRbMF0hPT1lWzBdKXJldHVybiB0WzBdLWVbMF07dmFyIHI9Zlt0WzFdXSxuPWZbZVsxXV07cmV0dXJuIHMoclswXSxuWzBdKXx8cyhyWzFdLG5bMV0pfSksaT1uLmxlbmd0aC0xO2k+PTA7LS1pKXt2YXIgeD1lW3U9KFM9bltpXSlbMF1dLGI9eFswXSxfPXhbMV0sdz10W2JdLGs9dFtfXTtpZigod1swXS1rWzBdfHx3WzFdLWtbMV0pPDApe3ZhciBUPWI7Yj1fLF89VH14WzBdPWI7dmFyIE0sQT14WzFdPVNbMV07Zm9yKGEmJihNPXhbMl0pO2k+MCYmbltpLTFdWzBdPT09dTspe3ZhciBTLEU9KFM9blstLWldKVsxXTthP2UucHVzaChbQSxFLE1dKTplLnB1c2goW0EsRV0pLEE9RX1hP2UucHVzaChbQSxfLE1dKTplLnB1c2goW0EsX10pfXJldHVybiBmfSh0LGUsZix2LHIpKTtyZXR1cm4gbShlLHksciksISF5fHwoZi5sZW5ndGg+MHx8di5sZW5ndGg+MCl9fSx7Ii4vbGliL3JhdC1zZWctaW50ZXJzZWN0IjoxMTksImJpZy1yYXQiOjgwLCJiaWctcmF0L2NtcCI6NzgsImJpZy1yYXQvdG8tZmxvYXQiOjkyLCJib3gtaW50ZXJzZWN0Ijo5OCxuZXh0YWZ0ZXI6NDUzLCJyYXQtdmVjIjo0ODgsInJvYnVzdC1zZWdtZW50LWludGVyc2VjdCI6NTEyLCJ1bmlvbi1maW5kIjo1NDV9XSwxMTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPXMoZSx0KSxoPXMobixyKSxmPXUoaSxoKTtpZigwPT09byhmKSlyZXR1cm4gbnVsbDt2YXIgcD1zKHQsciksZD11KGgscCksZz1hKGQsZiksdj1jKGksZyk7cmV0dXJuIGwodCx2KX07dmFyIG49dCgiYmlnLXJhdC9tdWwiKSxhPXQoImJpZy1yYXQvZGl2IiksaT10KCJiaWctcmF0L3N1YiIpLG89dCgiYmlnLXJhdC9zaWduIikscz10KCJyYXQtdmVjL3N1YiIpLGw9dCgicmF0LXZlYy9hZGQiKSxjPXQoInJhdC12ZWMvbXVscyIpO2Z1bmN0aW9uIHUodCxlKXtyZXR1cm4gaShuKHRbMF0sZVsxXSksbih0WzFdLGVbMF0pKX19LHsiYmlnLXJhdC9kaXYiOjc5LCJiaWctcmF0L211bCI6ODksImJpZy1yYXQvc2lnbiI6OTAsImJpZy1yYXQvc3ViIjo5MSwicmF0LXZlYy9hZGQiOjQ4NywicmF0LXZlYy9tdWxzIjo0ODksInJhdC12ZWMvc3ViIjo0OTB9XSwxMjA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiY2xhbXAiKTtmdW5jdGlvbiBhKHQsZSl7bnVsbD09ZSYmKGU9ITApO3ZhciByPXRbMF0sYT10WzFdLGk9dFsyXSxvPXRbM107cmV0dXJuIG51bGw9PW8mJihvPWU/MToyNTUpLGUmJihyKj0yNTUsYSo9MjU1LGkqPTI1NSxvKj0yNTUpLDE2Nzc3MjE2KihyPTI1NSZuKHIsMCwyNTUpKSsoKGE9MjU1Jm4oYSwwLDI1NSkpPDwxNikrKChpPTI1NSZuKGksMCwyNTUpKTw8OCkrKG89MjU1Jm4obywwLDI1NSkpfWUuZXhwb3J0cz1hLGUuZXhwb3J0cy50bz1hLGUuZXhwb3J0cy5mcm9tPWZ1bmN0aW9uKHQsZSl7dmFyIHI9KHQ9K3QpPj4+MjQsbj0oMTY3MTE2ODAmdCk+Pj4xNixhPSg2NTI4MCZ0KT4+PjgsaT0yNTUmdDtyZXR1cm4hMT09PWU/W3IsbixhLGldOltyLzI1NSxuLzI1NSxhLzI1NSxpLzI1NV19fSx7Y2xhbXA6MTE3fV0sMTIxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YWxpY2VibHVlOlsyNDAsMjQ4LDI1NV0sYW50aXF1ZXdoaXRlOlsyNTAsMjM1LDIxNV0sYXF1YTpbMCwyNTUsMjU1XSxhcXVhbWFyaW5lOlsxMjcsMjU1LDIxMl0sYXp1cmU6WzI0MCwyNTUsMjU1XSxiZWlnZTpbMjQ1LDI0NSwyMjBdLGJpc3F1ZTpbMjU1LDIyOCwxOTZdLGJsYWNrOlswLDAsMF0sYmxhbmNoZWRhbG1vbmQ6WzI1NSwyMzUsMjA1XSxibHVlOlswLDAsMjU1XSxibHVldmlvbGV0OlsxMzgsNDMsMjI2XSxicm93bjpbMTY1LDQyLDQyXSxidXJseXdvb2Q6WzIyMiwxODQsMTM1XSxjYWRldGJsdWU6Wzk1LDE1OCwxNjBdLGNoYXJ0cmV1c2U6WzEyNywyNTUsMF0sY2hvY29sYXRlOlsyMTAsMTA1LDMwXSxjb3JhbDpbMjU1LDEyNyw4MF0sY29ybmZsb3dlcmJsdWU6WzEwMCwxNDksMjM3XSxjb3Juc2lsazpbMjU1LDI0OCwyMjBdLGNyaW1zb246WzIyMCwyMCw2MF0sY3lhbjpbMCwyNTUsMjU1XSxkYXJrYmx1ZTpbMCwwLDEzOV0sZGFya2N5YW46WzAsMTM5LDEzOV0sZGFya2dvbGRlbnJvZDpbMTg0LDEzNCwxMV0sZGFya2dyYXk6WzE2OSwxNjksMTY5XSxkYXJrZ3JlZW46WzAsMTAwLDBdLGRhcmtncmV5OlsxNjksMTY5LDE2OV0sZGFya2toYWtpOlsxODksMTgzLDEwN10sZGFya21hZ2VudGE6WzEzOSwwLDEzOV0sZGFya29saXZlZ3JlZW46Wzg1LDEwNyw0N10sZGFya29yYW5nZTpbMjU1LDE0MCwwXSxkYXJrb3JjaGlkOlsxNTMsNTAsMjA0XSxkYXJrcmVkOlsxMzksMCwwXSxkYXJrc2FsbW9uOlsyMzMsMTUwLDEyMl0sZGFya3NlYWdyZWVuOlsxNDMsMTg4LDE0M10sZGFya3NsYXRlYmx1ZTpbNzIsNjEsMTM5XSxkYXJrc2xhdGVncmF5Ols0Nyw3OSw3OV0sZGFya3NsYXRlZ3JleTpbNDcsNzksNzldLGRhcmt0dXJxdW9pc2U6WzAsMjA2LDIwOV0sZGFya3Zpb2xldDpbMTQ4LDAsMjExXSxkZWVwcGluazpbMjU1LDIwLDE0N10sZGVlcHNreWJsdWU6WzAsMTkxLDI1NV0sZGltZ3JheTpbMTA1LDEwNSwxMDVdLGRpbWdyZXk6WzEwNSwxMDUsMTA1XSxkb2RnZXJibHVlOlszMCwxNDQsMjU1XSxmaXJlYnJpY2s6WzE3OCwzNCwzNF0sZmxvcmFsd2hpdGU6WzI1NSwyNTAsMjQwXSxmb3Jlc3RncmVlbjpbMzQsMTM5LDM0XSxmdWNoc2lhOlsyNTUsMCwyNTVdLGdhaW5zYm9ybzpbMjIwLDIyMCwyMjBdLGdob3N0d2hpdGU6WzI0OCwyNDgsMjU1XSxnb2xkOlsyNTUsMjE1LDBdLGdvbGRlbnJvZDpbMjE4LDE2NSwzMl0sZ3JheTpbMTI4LDEyOCwxMjhdLGdyZWVuOlswLDEyOCwwXSxncmVlbnllbGxvdzpbMTczLDI1NSw0N10sZ3JleTpbMTI4LDEyOCwxMjhdLGhvbmV5ZGV3OlsyNDAsMjU1LDI0MF0saG90cGluazpbMjU1LDEwNSwxODBdLGluZGlhbnJlZDpbMjA1LDkyLDkyXSxpbmRpZ286Wzc1LDAsMTMwXSxpdm9yeTpbMjU1LDI1NSwyNDBdLGtoYWtpOlsyNDAsMjMwLDE0MF0sbGF2ZW5kZXI6WzIzMCwyMzAsMjUwXSxsYXZlbmRlcmJsdXNoOlsyNTUsMjQwLDI0NV0sbGF3bmdyZWVuOlsxMjQsMjUyLDBdLGxlbW9uY2hpZmZvbjpbMjU1LDI1MCwyMDVdLGxpZ2h0Ymx1ZTpbMTczLDIxNiwyMzBdLGxpZ2h0Y29yYWw6WzI0MCwxMjgsMTI4XSxsaWdodGN5YW46WzIyNCwyNTUsMjU1XSxsaWdodGdvbGRlbnJvZHllbGxvdzpbMjUwLDI1MCwyMTBdLGxpZ2h0Z3JheTpbMjExLDIxMSwyMTFdLGxpZ2h0Z3JlZW46WzE0NCwyMzgsMTQ0XSxsaWdodGdyZXk6WzIxMSwyMTEsMjExXSxsaWdodHBpbms6WzI1NSwxODIsMTkzXSxsaWdodHNhbG1vbjpbMjU1LDE2MCwxMjJdLGxpZ2h0c2VhZ3JlZW46WzMyLDE3OCwxNzBdLGxpZ2h0c2t5Ymx1ZTpbMTM1LDIwNiwyNTBdLGxpZ2h0c2xhdGVncmF5OlsxMTksMTM2LDE1M10sbGlnaHRzbGF0ZWdyZXk6WzExOSwxMzYsMTUzXSxsaWdodHN0ZWVsYmx1ZTpbMTc2LDE5NiwyMjJdLGxpZ2h0eWVsbG93OlsyNTUsMjU1LDIyNF0sbGltZTpbMCwyNTUsMF0sbGltZWdyZWVuOls1MCwyMDUsNTBdLGxpbmVuOlsyNTAsMjQwLDIzMF0sbWFnZW50YTpbMjU1LDAsMjU1XSxtYXJvb246WzEyOCwwLDBdLG1lZGl1bWFxdWFtYXJpbmU6WzEwMiwyMDUsMTcwXSxtZWRpdW1ibHVlOlswLDAsMjA1XSxtZWRpdW1vcmNoaWQ6WzE4Niw4NSwyMTFdLG1lZGl1bXB1cnBsZTpbMTQ3LDExMiwyMTldLG1lZGl1bXNlYWdyZWVuOls2MCwxNzksMTEzXSxtZWRpdW1zbGF0ZWJsdWU6WzEyMywxMDQsMjM4XSxtZWRpdW1zcHJpbmdncmVlbjpbMCwyNTAsMTU0XSxtZWRpdW10dXJxdW9pc2U6WzcyLDIwOSwyMDRdLG1lZGl1bXZpb2xldHJlZDpbMTk5LDIxLDEzM10sbWlkbmlnaHRibHVlOlsyNSwyNSwxMTJdLG1pbnRjcmVhbTpbMjQ1LDI1NSwyNTBdLG1pc3R5cm9zZTpbMjU1LDIyOCwyMjVdLG1vY2Nhc2luOlsyNTUsMjI4LDE4MV0sbmF2YWpvd2hpdGU6WzI1NSwyMjIsMTczXSxuYXZ5OlswLDAsMTI4XSxvbGRsYWNlOlsyNTMsMjQ1LDIzMF0sb2xpdmU6WzEyOCwxMjgsMF0sb2xpdmVkcmFiOlsxMDcsMTQyLDM1XSxvcmFuZ2U6WzI1NSwxNjUsMF0sb3JhbmdlcmVkOlsyNTUsNjksMF0sb3JjaGlkOlsyMTgsMTEyLDIxNF0scGFsZWdvbGRlbnJvZDpbMjM4LDIzMiwxNzBdLHBhbGVncmVlbjpbMTUyLDI1MSwxNTJdLHBhbGV0dXJxdW9pc2U6WzE3NSwyMzgsMjM4XSxwYWxldmlvbGV0cmVkOlsyMTksMTEyLDE0N10scGFwYXlhd2hpcDpbMjU1LDIzOSwyMTNdLHBlYWNocHVmZjpbMjU1LDIxOCwxODVdLHBlcnU6WzIwNSwxMzMsNjNdLHBpbms6WzI1NSwxOTIsMjAzXSxwbHVtOlsyMjEsMTYwLDIyMV0scG93ZGVyYmx1ZTpbMTc2LDIyNCwyMzBdLHB1cnBsZTpbMTI4LDAsMTI4XSxyZWJlY2NhcHVycGxlOlsxMDIsNTEsMTUzXSxyZWQ6WzI1NSwwLDBdLHJvc3licm93bjpbMTg4LDE0MywxNDNdLHJveWFsYmx1ZTpbNjUsMTA1LDIyNV0sc2FkZGxlYnJvd246WzEzOSw2OSwxOV0sc2FsbW9uOlsyNTAsMTI4LDExNF0sc2FuZHlicm93bjpbMjQ0LDE2NCw5Nl0sc2VhZ3JlZW46WzQ2LDEzOSw4N10sc2Vhc2hlbGw6WzI1NSwyNDUsMjM4XSxzaWVubmE6WzE2MCw4Miw0NV0sc2lsdmVyOlsxOTIsMTkyLDE5Ml0sc2t5Ymx1ZTpbMTM1LDIwNiwyMzVdLHNsYXRlYmx1ZTpbMTA2LDkwLDIwNV0sc2xhdGVncmF5OlsxMTIsMTI4LDE0NF0sc2xhdGVncmV5OlsxMTIsMTI4LDE0NF0sc25vdzpbMjU1LDI1MCwyNTBdLHNwcmluZ2dyZWVuOlswLDI1NSwxMjddLHN0ZWVsYmx1ZTpbNzAsMTMwLDE4MF0sdGFuOlsyMTAsMTgwLDE0MF0sdGVhbDpbMCwxMjgsMTI4XSx0aGlzdGxlOlsyMTYsMTkxLDIxNl0sdG9tYXRvOlsyNTUsOTksNzFdLHR1cnF1b2lzZTpbNjQsMjI0LDIwOF0sdmlvbGV0OlsyMzgsMTMwLDIzOF0sd2hlYXQ6WzI0NSwyMjIsMTc5XSx3aGl0ZTpbMjU1LDI1NSwyNTVdLHdoaXRlc21va2U6WzI0NSwyNDUsMjQ1XSx5ZWxsb3c6WzI1NSwyNTUsMF0seWVsbG93Z3JlZW46WzE1NCwyMDUsNTBdfX0se31dLDEyMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJjb2xvci1yZ2JhIiksYT10KCJjbGFtcCIpLGk9dCgiZHR5cGUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXsiZmxvYXQiIT09ZSYmZXx8KGU9ImFycmF5IiksInVpbnQiPT09ZSYmKGU9InVpbnQ4IiksInVpbnRfY2xhbXBlZCI9PT1lJiYoZT0idWludDhfY2xhbXBlZCIpO3ZhciByPW5ldyhpKGUpKSg0KSxvPSJ1aW50OCIhPT1lJiYidWludDhfY2xhbXBlZCIhPT1lO3JldHVybiB0Lmxlbmd0aCYmInN0cmluZyIhPXR5cGVvZiB0fHwoKHQ9bih0KSlbMF0vPTI1NSx0WzFdLz0yNTUsdFsyXS89MjU1KSxmdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl8fHQgaW5zdGFuY2VvZiBVaW50OENsYW1wZWRBcnJheXx8ISEoQXJyYXkuaXNBcnJheSh0KSYmKHRbMF0+MXx8MD09PXRbMF0pJiYodFsxXT4xfHwwPT09dFsxXSkmJih0WzJdPjF8fDA9PT10WzJdKSYmKCF0WzNdfHx0WzNdPjEpKX0odCk/KHJbMF09dFswXSxyWzFdPXRbMV0sclsyXT10WzJdLHJbM109bnVsbCE9dFszXT90WzNdOjI1NSxvJiYoclswXS89MjU1LHJbMV0vPTI1NSxyWzJdLz0yNTUsclszXS89MjU1KSxyKToobz8oclswXT10WzBdLHJbMV09dFsxXSxyWzJdPXRbMl0sclszXT1udWxsIT10WzNdP3RbM106MSk6KHJbMF09YShNYXRoLmZsb29yKDI1NSp0WzBdKSwwLDI1NSksclsxXT1hKE1hdGguZmxvb3IoMjU1KnRbMV0pLDAsMjU1KSxyWzJdPWEoTWF0aC5mbG9vcigyNTUqdFsyXSksMCwyNTUpLHJbM109bnVsbD09dFszXT8yNTU6YShNYXRoLmZsb29yKDI1NSp0WzNdKSwwLDI1NSkpLHIpfX0se2NsYW1wOjExNywiY29sb3ItcmdiYSI6MTI0LGR0eXBlOjE3MX1dLDEyMzpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbihyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiY29sb3ItbmFtZSIpLGE9dCgiaXMtcGxhaW4tb2JqIiksaT10KCJkZWZpbmVkIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlLHMsbD1bXSxjPTE7aWYoInN0cmluZyI9PXR5cGVvZiB0KWlmKG5bdF0pbD1uW3RdLnNsaWNlKCkscz0icmdiIjtlbHNlIGlmKCJ0cmFuc3BhcmVudCI9PT10KWM9MCxzPSJyZ2IiLGw9WzAsMCwwXTtlbHNlIGlmKC9eI1tBLUZhLWYwLTldKyQvLnRlc3QodCkpe3ZhciB1PXQuc2xpY2UoMSksaD11Lmxlbmd0aCxmPWg8PTQ7Yz0xLGY/KGw9W3BhcnNlSW50KHVbMF0rdVswXSwxNikscGFyc2VJbnQodVsxXSt1WzFdLDE2KSxwYXJzZUludCh1WzJdK3VbMl0sMTYpXSw0PT09aCYmKGM9cGFyc2VJbnQodVszXSt1WzNdLDE2KS8yNTUpKToobD1bcGFyc2VJbnQodVswXSt1WzFdLDE2KSxwYXJzZUludCh1WzJdK3VbM10sMTYpLHBhcnNlSW50KHVbNF0rdVs1XSwxNildLDg9PT1oJiYoYz1wYXJzZUludCh1WzZdK3VbN10sMTYpLzI1NSkpLGxbMF18fChsWzBdPTApLGxbMV18fChsWzFdPTApLGxbMl18fChsWzJdPTApLHM9InJnYiJ9ZWxzZSBpZihlPS9eKCg/OnJnYnxoc1tsdmJdfGh3YnxjbXlrP3x4eVt6eV18Z3JheXxsYWJ8bGNodT92P3xbbHlddXZ8bG1zKWE/KVxzKlwoKFteXCldKilcKS8uZXhlYyh0KSl7dmFyIHA9ZVsxXSxkPSJyZ2IiPT09cCx1PXAucmVwbGFjZSgvYSQvLCIiKTtzPXU7dmFyIGg9ImNteWsiPT09dT80OiJncmF5Ij09PXU/MTozO2w9ZVsyXS50cmltKCkuc3BsaXQoL1xzKixccyovKS5tYXAoZnVuY3Rpb24odCxlKXtpZigvJSQvLnRlc3QodCkpcmV0dXJuIGU9PT1oP3BhcnNlRmxvYXQodCkvMTAwOiJyZ2IiPT09dT8yNTUqcGFyc2VGbG9hdCh0KS8xMDA6cGFyc2VGbG9hdCh0KTtpZigiaCI9PT11W2VdKXtpZigvZGVnJC8udGVzdCh0KSlyZXR1cm4gcGFyc2VGbG9hdCh0KTtpZih2b2lkIDAhPT1vW3RdKXJldHVybiBvW3RdfXJldHVybiBwYXJzZUZsb2F0KHQpfSkscD09PXUmJmwucHVzaCgxKSxjPWQ/MTp2b2lkIDA9PT1sW2hdPzE6bFtoXSxsPWwuc2xpY2UoMCxoKX1lbHNlIHQubGVuZ3RoPjEwJiYvWzAtOV0oPzpcc3xcLykvLnRlc3QodCkmJihsPXQubWF0Y2goLyhbMC05XSspL2cpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gcGFyc2VGbG9hdCh0KX0pLHM9dC5tYXRjaCgvKFthLXpdKS9naSkuam9pbigiIikudG9Mb3dlckNhc2UoKSk7ZWxzZSBpZihpc05hTih0KSlpZihhKHQpKXt2YXIgZz1pKHQucix0LnJlZCx0LlIsbnVsbCk7bnVsbCE9PWc/KHM9InJnYiIsbD1bZyxpKHQuZyx0LmdyZWVuLHQuRyksaSh0LmIsdC5ibHVlLHQuQildKToocz0iaHNsIixsPVtpKHQuaCx0Lmh1ZSx0LkgpLGkodC5zLHQuc2F0dXJhdGlvbix0LlMpLGkodC5sLHQubGlnaHRuZXNzLHQuTCx0LmIsdC5icmlnaHRuZXNzKV0pLGM9aSh0LmEsdC5hbHBoYSx0Lm9wYWNpdHksMSksbnVsbCE9dC5vcGFjaXR5JiYoYy89MTAwKX1lbHNlKEFycmF5LmlzQXJyYXkodCl8fHIuQXJyYXlCdWZmZXImJkFycmF5QnVmZmVyLmlzVmlldyYmQXJyYXlCdWZmZXIuaXNWaWV3KHQpKSYmKGw9W3RbMF0sdFsxXSx0WzJdXSxzPSJyZ2IiLGM9ND09PXQubGVuZ3RoP3RbM106MSk7ZWxzZSBzPSJyZ2IiLGw9W3Q+Pj4xNiwoNjUyODAmdCk+Pj44LDI1NSZ0XTtyZXR1cm57c3BhY2U6cyx2YWx1ZXM6bCxhbHBoYTpjfX07dmFyIG89e3JlZDowLG9yYW5nZTo2MCx5ZWxsb3c6MTIwLGdyZWVuOjE4MCxibHVlOjI0MCxwdXJwbGU6MzAwfX0pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0seyJjb2xvci1uYW1lIjoxMjEsZGVmaW5lZDoxNjYsImlzLXBsYWluLW9iaiI6NDI0fV0sMTI0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImNvbG9yLXBhcnNlIiksYT10KCJjb2xvci1zcGFjZS9oc2wiKSxpPXQoImNsYW1wIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlLHI9bih0KTtyZXR1cm4gci5zcGFjZT8oKGU9QXJyYXkoMykpWzBdPWkoci52YWx1ZXNbMF0sMCwyNTUpLGVbMV09aShyLnZhbHVlc1sxXSwwLDI1NSksZVsyXT1pKHIudmFsdWVzWzJdLDAsMjU1KSwiaCI9PT1yLnNwYWNlWzBdJiYoZT1hLnJnYihlKSksZS5wdXNoKGkoci5hbHBoYSwwLDEpKSxlKTpbXX19LHtjbGFtcDoxMTcsImNvbG9yLXBhcnNlIjoxMjMsImNvbG9yLXNwYWNlL2hzbCI6MTI1fV0sMTI1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vcmdiIik7ZS5leHBvcnRzPXtuYW1lOiJoc2wiLG1pbjpbMCwwLDBdLG1heDpbMzYwLDEwMCwxMDBdLGNoYW5uZWw6WyJodWUiLCJzYXR1cmF0aW9uIiwibGlnaHRuZXNzIl0sYWxpYXM6WyJIU0wiXSxyZ2I6ZnVuY3Rpb24odCl7dmFyIGUscixuLGEsaSxvPXRbMF0vMzYwLHM9dFsxXS8xMDAsbD10WzJdLzEwMDtpZigwPT09cylyZXR1cm5baT0yNTUqbCxpLGldO2U9MipsLShyPWw8LjU/bCooMStzKTpsK3MtbCpzKSxhPVswLDAsMF07Zm9yKHZhciBjPTA7YzwzO2MrKykobj1vKzEvMyotKGMtMSkpPDA/bisrOm4+MSYmbi0tLGk9NipuPDE/ZSs2KihyLWUpKm46MipuPDE/cjozKm48Mj9lKyhyLWUpKigyLzMtbikqNjplLGFbY109MjU1Kmk7cmV0dXJuIGF9fSxuLmhzbD1mdW5jdGlvbih0KXt2YXIgZSxyLG49dFswXS8yNTUsYT10WzFdLzI1NSxpPXRbMl0vMjU1LG89TWF0aC5taW4obixhLGkpLHM9TWF0aC5tYXgobixhLGkpLGw9cy1vO3JldHVybiBzPT09bz9lPTA6bj09PXM/ZT0oYS1pKS9sOmE9PT1zP2U9MisoaS1uKS9sOmk9PT1zJiYoZT00KyhuLWEpL2wpLChlPU1hdGgubWluKDYwKmUsMzYwKSk8MCYmKGUrPTM2MCkscj0obytzKS8yLFtlLDEwMCoocz09PW8/MDpyPD0uNT9sLyhzK28pOmwvKDItcy1vKSksMTAwKnJdfX0seyIuL3JnYiI6MTI2fV0sMTI2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bmFtZToicmdiIixtaW46WzAsMCwwXSxtYXg6WzI1NSwyNTUsMjU1XSxjaGFubmVsOlsicmVkIiwiZ3JlZW4iLCJibHVlIl0sYWxpYXM6WyJSR0IiXX19LHt9XSwxMjc6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9e2pldDpbe2luZGV4OjAscmdiOlswLDAsMTMxXX0se2luZGV4Oi4xMjUscmdiOlswLDYwLDE3MF19LHtpbmRleDouMzc1LHJnYjpbNSwyNTUsMjU1XX0se2luZGV4Oi42MjUscmdiOlsyNTUsMjU1LDBdfSx7aW5kZXg6Ljg3NSxyZ2I6WzI1MCwwLDBdfSx7aW5kZXg6MSxyZ2I6WzEyOCwwLDBdfV0saHN2Olt7aW5kZXg6MCxyZ2I6WzI1NSwwLDBdfSx7aW5kZXg6LjE2OSxyZ2I6WzI1MywyNTUsMl19LHtpbmRleDouMTczLHJnYjpbMjQ3LDI1NSwyXX0se2luZGV4Oi4zMzcscmdiOlswLDI1Miw0XX0se2luZGV4Oi4zNDEscmdiOlswLDI1MiwxMF19LHtpbmRleDouNTA2LHJnYjpbMSwyNDksMjU1XX0se2luZGV4Oi42NzEscmdiOlsyLDAsMjUzXX0se2luZGV4Oi42NzUscmdiOls4LDAsMjUzXX0se2luZGV4Oi44MzkscmdiOlsyNTUsMCwyNTFdfSx7aW5kZXg6Ljg0MyxyZ2I6WzI1NSwwLDI0NV19LHtpbmRleDoxLHJnYjpbMjU1LDAsNl19XSxob3Q6W3tpbmRleDowLHJnYjpbMCwwLDBdfSx7aW5kZXg6LjMscmdiOlsyMzAsMCwwXX0se2luZGV4Oi42LHJnYjpbMjU1LDIxMCwwXX0se2luZGV4OjEscmdiOlsyNTUsMjU1LDI1NV19XSxjb29sOlt7aW5kZXg6MCxyZ2I6WzAsMjU1LDI1NV19LHtpbmRleDoxLHJnYjpbMjU1LDAsMjU1XX1dLHNwcmluZzpbe2luZGV4OjAscmdiOlsyNTUsMCwyNTVdfSx7aW5kZXg6MSxyZ2I6WzI1NSwyNTUsMF19XSxzdW1tZXI6W3tpbmRleDowLHJnYjpbMCwxMjgsMTAyXX0se2luZGV4OjEscmdiOlsyNTUsMjU1LDEwMl19XSxhdXR1bW46W3tpbmRleDowLHJnYjpbMjU1LDAsMF19LHtpbmRleDoxLHJnYjpbMjU1LDI1NSwwXX1dLHdpbnRlcjpbe2luZGV4OjAscmdiOlswLDAsMjU1XX0se2luZGV4OjEscmdiOlswLDI1NSwxMjhdfV0sYm9uZTpbe2luZGV4OjAscmdiOlswLDAsMF19LHtpbmRleDouMzc2LHJnYjpbODQsODQsMTE2XX0se2luZGV4Oi43NTMscmdiOlsxNjksMjAwLDIwMF19LHtpbmRleDoxLHJnYjpbMjU1LDI1NSwyNTVdfV0sY29wcGVyOlt7aW5kZXg6MCxyZ2I6WzAsMCwwXX0se2luZGV4Oi44MDQscmdiOlsyNTUsMTYwLDEwMl19LHtpbmRleDoxLHJnYjpbMjU1LDE5OSwxMjddfV0sZ3JleXM6W3tpbmRleDowLHJnYjpbMCwwLDBdfSx7aW5kZXg6MSxyZ2I6WzI1NSwyNTUsMjU1XX1dLHlpZ25idTpbe2luZGV4OjAscmdiOls4LDI5LDg4XX0se2luZGV4Oi4xMjUscmdiOlszNyw1MiwxNDhdfSx7aW5kZXg6LjI1LHJnYjpbMzQsOTQsMTY4XX0se2luZGV4Oi4zNzUscmdiOlsyOSwxNDUsMTkyXX0se2luZGV4Oi41LHJnYjpbNjUsMTgyLDE5Nl19LHtpbmRleDouNjI1LHJnYjpbMTI3LDIwNSwxODddfSx7aW5kZXg6Ljc1LHJnYjpbMTk5LDIzMywxODBdfSx7aW5kZXg6Ljg3NSxyZ2I6WzIzNywyNDgsMjE3XX0se2luZGV4OjEscmdiOlsyNTUsMjU1LDIxN119XSxncmVlbnM6W3tpbmRleDowLHJnYjpbMCw2OCwyN119LHtpbmRleDouMTI1LHJnYjpbMCwxMDksNDRdfSx7aW5kZXg6LjI1LHJnYjpbMzUsMTM5LDY5XX0se2luZGV4Oi4zNzUscmdiOls2NSwxNzEsOTNdfSx7aW5kZXg6LjUscmdiOlsxMTYsMTk2LDExOF19LHtpbmRleDouNjI1LHJnYjpbMTYxLDIxNywxNTVdfSx7aW5kZXg6Ljc1LHJnYjpbMTk5LDIzMywxOTJdfSx7aW5kZXg6Ljg3NSxyZ2I6WzIyOSwyNDUsMjI0XX0se2luZGV4OjEscmdiOlsyNDcsMjUyLDI0NV19XSx5aW9ycmQ6W3tpbmRleDowLHJnYjpbMTI4LDAsMzhdfSx7aW5kZXg6LjEyNSxyZ2I6WzE4OSwwLDM4XX0se2luZGV4Oi4yNSxyZ2I6WzIyNywyNiwyOF19LHtpbmRleDouMzc1LHJnYjpbMjUyLDc4LDQyXX0se2luZGV4Oi41LHJnYjpbMjUzLDE0MSw2MF19LHtpbmRleDouNjI1LHJnYjpbMjU0LDE3OCw3Nl19LHtpbmRleDouNzUscmdiOlsyNTQsMjE3LDExOF19LHtpbmRleDouODc1LHJnYjpbMjU1LDIzNywxNjBdfSx7aW5kZXg6MSxyZ2I6WzI1NSwyNTUsMjA0XX1dLGJsdWVyZWQ6W3tpbmRleDowLHJnYjpbMCwwLDI1NV19LHtpbmRleDoxLHJnYjpbMjU1LDAsMF19XSxyZGJ1Olt7aW5kZXg6MCxyZ2I6WzUsMTAsMTcyXX0se2luZGV4Oi4zNSxyZ2I6WzEwNiwxMzcsMjQ3XX0se2luZGV4Oi41LHJnYjpbMTkwLDE5MCwxOTBdfSx7aW5kZXg6LjYscmdiOlsyMjAsMTcwLDEzMl19LHtpbmRleDouNyxyZ2I6WzIzMCwxNDUsOTBdfSx7aW5kZXg6MSxyZ2I6WzE3OCwxMCwyOF19XSxwaWNuaWM6W3tpbmRleDowLHJnYjpbMCwwLDI1NV19LHtpbmRleDouMSxyZ2I6WzUxLDE1MywyNTVdfSx7aW5kZXg6LjIscmdiOlsxMDIsMjA0LDI1NV19LHtpbmRleDouMyxyZ2I6WzE1MywyMDQsMjU1XX0se2luZGV4Oi40LHJnYjpbMjA0LDIwNCwyNTVdfSx7aW5kZXg6LjUscmdiOlsyNTUsMjU1LDI1NV19LHtpbmRleDouNixyZ2I6WzI1NSwyMDQsMjU1XX0se2luZGV4Oi43LHJnYjpbMjU1LDE1MywyNTVdfSx7aW5kZXg6LjgscmdiOlsyNTUsMTAyLDIwNF19LHtpbmRleDouOSxyZ2I6WzI1NSwxMDIsMTAyXX0se2luZGV4OjEscmdiOlsyNTUsMCwwXX1dLHJhaW5ib3c6W3tpbmRleDowLHJnYjpbMTUwLDAsOTBdfSx7aW5kZXg6LjEyNSxyZ2I6WzAsMCwyMDBdfSx7aW5kZXg6LjI1LHJnYjpbMCwyNSwyNTVdfSx7aW5kZXg6LjM3NSxyZ2I6WzAsMTUyLDI1NV19LHtpbmRleDouNSxyZ2I6WzQ0LDI1NSwxNTBdfSx7aW5kZXg6LjYyNSxyZ2I6WzE1MSwyNTUsMF19LHtpbmRleDouNzUscmdiOlsyNTUsMjM0LDBdfSx7aW5kZXg6Ljg3NSxyZ2I6WzI1NSwxMTEsMF19LHtpbmRleDoxLHJnYjpbMjU1LDAsMF19XSxwb3J0bGFuZDpbe2luZGV4OjAscmdiOlsxMiw1MSwxMzFdfSx7aW5kZXg6LjI1LHJnYjpbMTAsMTM2LDE4Nl19LHtpbmRleDouNSxyZ2I6WzI0MiwyMTEsNTZdfSx7aW5kZXg6Ljc1LHJnYjpbMjQyLDE0Myw1Nl19LHtpbmRleDoxLHJnYjpbMjE3LDMwLDMwXX1dLGJsYWNrYm9keTpbe2luZGV4OjAscmdiOlswLDAsMF19LHtpbmRleDouMixyZ2I6WzIzMCwwLDBdfSx7aW5kZXg6LjQscmdiOlsyMzAsMjEwLDBdfSx7aW5kZXg6LjcscmdiOlsyNTUsMjU1LDI1NV19LHtpbmRleDoxLHJnYjpbMTYwLDIwMCwyNTVdfV0sZWFydGg6W3tpbmRleDowLHJnYjpbMCwwLDEzMF19LHtpbmRleDouMSxyZ2I6WzAsMTgwLDE4MF19LHtpbmRleDouMixyZ2I6WzQwLDIxMCw0MF19LHtpbmRleDouNCxyZ2I6WzIzMCwyMzAsNTBdfSx7aW5kZXg6LjYscmdiOlsxMjAsNzAsMjBdfSx7aW5kZXg6MSxyZ2I6WzI1NSwyNTUsMjU1XX1dLGVsZWN0cmljOlt7aW5kZXg6MCxyZ2I6WzAsMCwwXX0se2luZGV4Oi4xNSxyZ2I6WzMwLDAsMTAwXX0se2luZGV4Oi40LHJnYjpbMTIwLDAsMTAwXX0se2luZGV4Oi42LHJnYjpbMTYwLDkwLDBdfSx7aW5kZXg6LjgscmdiOlsyMzAsMjAwLDBdfSx7aW5kZXg6MSxyZ2I6WzI1NSwyNTAsMjIwXX1dLGFscGhhOlt7aW5kZXg6MCxyZ2I6WzI1NSwyNTUsMjU1LDBdfSx7aW5kZXg6MSxyZ2I6WzI1NSwyNTUsMjU1LDFdfV0sdmlyaWRpczpbe2luZGV4OjAscmdiOls2OCwxLDg0XX0se2luZGV4Oi4xMyxyZ2I6WzcxLDQ0LDEyMl19LHtpbmRleDouMjUscmdiOls1OSw4MSwxMzldfSx7aW5kZXg6LjM4LHJnYjpbNDQsMTEzLDE0Ml19LHtpbmRleDouNSxyZ2I6WzMzLDE0NCwxNDFdfSx7aW5kZXg6LjYzLHJnYjpbMzksMTczLDEyOV19LHtpbmRleDouNzUscmdiOls5MiwyMDAsOTldfSx7aW5kZXg6Ljg4LHJnYjpbMTcwLDIyMCw1MF19LHtpbmRleDoxLHJnYjpbMjUzLDIzMSwzN119XSxpbmZlcm5vOlt7aW5kZXg6MCxyZ2I6WzAsMCw0XX0se2luZGV4Oi4xMyxyZ2I6WzMxLDEyLDcyXX0se2luZGV4Oi4yNSxyZ2I6Wzg1LDE1LDEwOV19LHtpbmRleDouMzgscmdiOlsxMzYsMzQsMTA2XX0se2luZGV4Oi41LHJnYjpbMTg2LDU0LDg1XX0se2luZGV4Oi42MyxyZ2I6WzIyNyw4OSw1MV19LHtpbmRleDouNzUscmdiOlsyNDksMTQwLDEwXX0se2luZGV4Oi44OCxyZ2I6WzI0OSwyMDEsNTBdfSx7aW5kZXg6MSxyZ2I6WzI1MiwyNTUsMTY0XX1dLG1hZ21hOlt7aW5kZXg6MCxyZ2I6WzAsMCw0XX0se2luZGV4Oi4xMyxyZ2I6WzI4LDE2LDY4XX0se2luZGV4Oi4yNSxyZ2I6Wzc5LDE4LDEyM119LHtpbmRleDouMzgscmdiOlsxMjksMzcsMTI5XX0se2luZGV4Oi41LHJnYjpbMTgxLDU0LDEyMl19LHtpbmRleDouNjMscmdiOlsyMjksODAsMTAwXX0se2luZGV4Oi43NSxyZ2I6WzI1MSwxMzUsOTddfSx7aW5kZXg6Ljg4LHJnYjpbMjU0LDE5NCwxMzVdfSx7aW5kZXg6MSxyZ2I6WzI1MiwyNTMsMTkxXX1dLHBsYXNtYTpbe2luZGV4OjAscmdiOlsxMyw4LDEzNV19LHtpbmRleDouMTMscmdiOls3NSwzLDE2MV19LHtpbmRleDouMjUscmdiOlsxMjUsMywxNjhdfSx7aW5kZXg6LjM4LHJnYjpbMTY4LDM0LDE1MF19LHtpbmRleDouNSxyZ2I6WzIwMyw3MCwxMjFdfSx7aW5kZXg6LjYzLHJnYjpbMjI5LDEwNyw5M119LHtpbmRleDouNzUscmdiOlsyNDgsMTQ4LDY1XX0se2luZGV4Oi44OCxyZ2I6WzI1MywxOTUsNDBdfSx7aW5kZXg6MSxyZ2I6WzI0MCwyNDksMzNdfV0sd2FybTpbe2luZGV4OjAscmdiOlsxMjUsMCwxNzldfSx7aW5kZXg6LjEzLHJnYjpbMTcyLDAsMTg3XX0se2luZGV4Oi4yNSxyZ2I6WzIxOSwwLDE3MF19LHtpbmRleDouMzgscmdiOlsyNTUsMCwxMzBdfSx7aW5kZXg6LjUscmdiOlsyNTUsNjMsNzRdfSx7aW5kZXg6LjYzLHJnYjpbMjU1LDEyMywwXX0se2luZGV4Oi43NSxyZ2I6WzIzNCwxNzYsMF19LHtpbmRleDouODgscmdiOlsxOTAsMjI4LDBdfSx7aW5kZXg6MSxyZ2I6WzE0NywyNTUsMF19XSxjb29sOlt7aW5kZXg6MCxyZ2I6WzEyNSwwLDE3OV19LHtpbmRleDouMTMscmdiOlsxMTYsMCwyMThdfSx7aW5kZXg6LjI1LHJnYjpbOTgsNzQsMjM3XX0se2luZGV4Oi4zOCxyZ2I6WzY4LDE0NiwyMzFdfSx7aW5kZXg6LjUscmdiOlswLDIwNCwxOTddfSx7aW5kZXg6LjYzLHJnYjpbMCwyNDcsMTQ2XX0se2luZGV4Oi43NSxyZ2I6WzAsMjU1LDg4XX0se2luZGV4Oi44OCxyZ2I6WzQwLDI1NSw4XX0se2luZGV4OjEscmdiOlsxNDcsMjU1LDBdfV0sInJhaW5ib3ctc29mdCI6W3tpbmRleDowLHJnYjpbMTI1LDAsMTc5XX0se2luZGV4Oi4xLHJnYjpbMTk5LDAsMTgwXX0se2luZGV4Oi4yLHJnYjpbMjU1LDAsMTIxXX0se2luZGV4Oi4zLHJnYjpbMjU1LDEwOCwwXX0se2luZGV4Oi40LHJnYjpbMjIyLDE5NCwwXX0se2luZGV4Oi41LHJnYjpbMTUwLDI1NSwwXX0se2luZGV4Oi42LHJnYjpbMCwyNTUsNTVdfSx7aW5kZXg6LjcscmdiOlswLDI0NiwxNTBdfSx7aW5kZXg6LjgscmdiOls1MCwxNjcsMjIyXX0se2luZGV4Oi45LHJnYjpbMTAzLDUxLDIzNV19LHtpbmRleDoxLHJnYjpbMTI0LDAsMTg2XX1dLGJhdGh5bWV0cnk6W3tpbmRleDowLHJnYjpbNDAsMjYsNDRdfSx7aW5kZXg6LjEzLHJnYjpbNTksNDksOTBdfSx7aW5kZXg6LjI1LHJnYjpbNjQsNzYsMTM5XX0se2luZGV4Oi4zOCxyZ2I6WzYzLDExMCwxNTFdfSx7aW5kZXg6LjUscmdiOls3MiwxNDIsMTU4XX0se2luZGV4Oi42MyxyZ2I6Wzg1LDE3NCwxNjNdfSx7aW5kZXg6Ljc1LHJnYjpbMTIwLDIwNiwxNjNdfSx7aW5kZXg6Ljg4LHJnYjpbMTg3LDIzMCwxNzJdfSx7aW5kZXg6MSxyZ2I6WzI1MywyNTQsMjA0XX1dLGNkb206W3tpbmRleDowLHJnYjpbNDcsMTUsNjJdfSx7aW5kZXg6LjEzLHJnYjpbODcsMjMsODZdfSx7aW5kZXg6LjI1LHJnYjpbMTMwLDI4LDk5XX0se2luZGV4Oi4zOCxyZ2I6WzE3MSw0MSw5Nl19LHtpbmRleDouNSxyZ2I6WzIwNiw2Nyw4Nl19LHtpbmRleDouNjMscmdiOlsyMzAsMTA2LDg0XX0se2luZGV4Oi43NSxyZ2I6WzI0MiwxNDksMTAzXX0se2luZGV4Oi44OCxyZ2I6WzI0OSwxOTMsMTM1XX0se2luZGV4OjEscmdiOlsyNTQsMjM3LDE3Nl19XSxjaGxvcm9waHlsbDpbe2luZGV4OjAscmdiOlsxOCwzNiwyMF19LHtpbmRleDouMTMscmdiOlsyNSw2Myw0MV19LHtpbmRleDouMjUscmdiOlsyNCw5MSw1OV19LHtpbmRleDouMzgscmdiOlsxMywxMTksNzJdfSx7aW5kZXg6LjUscmdiOlsxOCwxNDgsODBdfSx7aW5kZXg6LjYzLHJnYjpbODAsMTczLDg5XX0se2luZGV4Oi43NSxyZ2I6WzEzMiwxOTYsMTIyXX0se2luZGV4Oi44OCxyZ2I6WzE3NSwyMjEsMTYyXX0se2luZGV4OjEscmdiOlsyMTUsMjQ5LDIwOF19XSxkZW5zaXR5Olt7aW5kZXg6MCxyZ2I6WzU0LDE0LDM2XX0se2luZGV4Oi4xMyxyZ2I6Wzg5LDIzLDgwXX0se2luZGV4Oi4yNSxyZ2I6WzExMCw0NSwxMzJdfSx7aW5kZXg6LjM4LHJnYjpbMTIwLDc3LDE3OF19LHtpbmRleDouNSxyZ2I6WzEyMCwxMTMsMjEzXX0se2luZGV4Oi42MyxyZ2I6WzExNSwxNTEsMjI4XX0se2luZGV4Oi43NSxyZ2I6WzEzNCwxODUsMjI3XX0se2luZGV4Oi44OCxyZ2I6WzE3NywyMTQsMjI3XX0se2luZGV4OjEscmdiOlsyMzAsMjQxLDI0MV19XSwiZnJlZXN1cmZhY2UtYmx1ZSI6W3tpbmRleDowLHJnYjpbMzAsNCwxMTBdfSx7aW5kZXg6LjEzLHJnYjpbNDcsMTQsMTc2XX0se2luZGV4Oi4yNSxyZ2I6WzQxLDQ1LDIzNl19LHtpbmRleDouMzgscmdiOlsyNSw5OSwyMTJdfSx7aW5kZXg6LjUscmdiOls2OCwxMzEsMjAwXX0se2luZGV4Oi42MyxyZ2I6WzExNCwxNTYsMTk3XX0se2luZGV4Oi43NSxyZ2I6WzE1NywxODEsMjAzXX0se2luZGV4Oi44OCxyZ2I6WzIwMCwyMDgsMjE2XX0se2luZGV4OjEscmdiOlsyNDEsMjM3LDIzNl19XSwiZnJlZXN1cmZhY2UtcmVkIjpbe2luZGV4OjAscmdiOls2MCw5LDE4XX0se2luZGV4Oi4xMyxyZ2I6WzEwMCwxNywyN119LHtpbmRleDouMjUscmdiOlsxNDIsMjAsMjldfSx7aW5kZXg6LjM4LHJnYjpbMTc3LDQzLDI3XX0se2luZGV4Oi41LHJnYjpbMTkyLDg3LDYzXX0se2luZGV4Oi42MyxyZ2I6WzIwNSwxMjUsMTA1XX0se2luZGV4Oi43NSxyZ2I6WzIxNiwxNjIsMTQ4XX0se2luZGV4Oi44OCxyZ2I6WzIyNywxOTksMTkzXX0se2luZGV4OjEscmdiOlsyNDEsMjM3LDIzNl19XSxveHlnZW46W3tpbmRleDowLHJnYjpbNjQsNSw1XX0se2luZGV4Oi4xMyxyZ2I6WzEwNiw2LDE1XX0se2luZGV4Oi4yNSxyZ2I6WzE0NCwyNiw3XX0se2luZGV4Oi4zOCxyZ2I6WzE2OCw2NCwzXX0se2luZGV4Oi41LHJnYjpbMTg4LDEwMCw0XX0se2luZGV4Oi42MyxyZ2I6WzIwNiwxMzYsMTFdfSx7aW5kZXg6Ljc1LHJnYjpbMjIwLDE3NCwyNV19LHtpbmRleDouODgscmdiOlsyMzEsMjE1LDQ0XX0se2luZGV4OjEscmdiOlsyNDgsMjU0LDEwNV19XSxwYXI6W3tpbmRleDowLHJnYjpbNTEsMjAsMjRdfSx7aW5kZXg6LjEzLHJnYjpbOTAsMzIsMzVdfSx7aW5kZXg6LjI1LHJnYjpbMTI5LDQ0LDM0XX0se2luZGV4Oi4zOCxyZ2I6WzE1OSw2OCwyNV19LHtpbmRleDouNSxyZ2I6WzE4Miw5OSwxOV19LHtpbmRleDouNjMscmdiOlsxOTksMTM0LDIyXX0se2luZGV4Oi43NSxyZ2I6WzIxMiwxNzEsMzVdfSx7aW5kZXg6Ljg4LHJnYjpbMjIxLDIxMCw1NF19LHtpbmRleDoxLHJnYjpbMjI1LDI1Myw3NV19XSxwaGFzZTpbe2luZGV4OjAscmdiOlsxNDUsMTA1LDE4XX0se2luZGV4Oi4xMyxyZ2I6WzE4NCw3MSwzOF19LHtpbmRleDouMjUscmdiOlsxODYsNTgsMTE1XX0se2luZGV4Oi4zOCxyZ2I6WzE2MCw3MSwxODVdfSx7aW5kZXg6LjUscmdiOlsxMTAsOTcsMjE4XX0se2luZGV4Oi42MyxyZ2I6WzUwLDEyMywxNjRdfSx7aW5kZXg6Ljc1LHJnYjpbMzEsMTMxLDExMF19LHtpbmRleDouODgscmdiOls3NywxMjksMzRdfSx7aW5kZXg6MSxyZ2I6WzE0NSwxMDUsMThdfV0sc2FsaW5pdHk6W3tpbmRleDowLHJnYjpbNDIsMjQsMTA4XX0se2luZGV4Oi4xMyxyZ2I6WzMzLDUwLDE2Ml19LHtpbmRleDouMjUscmdiOlsxNSw5MCwxNDVdfSx7aW5kZXg6LjM4LHJnYjpbNDAsMTE4LDEzN119LHtpbmRleDouNSxyZ2I6WzU5LDE0NiwxMzVdfSx7aW5kZXg6LjYzLHJnYjpbNzksMTc1LDEyNl19LHtpbmRleDouNzUscmdiOlsxMjAsMjAzLDEwNF19LHtpbmRleDouODgscmdiOlsxOTMsMjIxLDEwMF19LHtpbmRleDoxLHJnYjpbMjUzLDIzOSwxNTRdfV0sdGVtcGVyYXR1cmU6W3tpbmRleDowLHJnYjpbNCwzNSw1MV19LHtpbmRleDouMTMscmdiOlsyMyw1MSwxMjJdfSx7aW5kZXg6LjI1LHJnYjpbODUsNTksMTU3XX0se2luZGV4Oi4zOCxyZ2I6WzEyOSw3OSwxNDNdfSx7aW5kZXg6LjUscmdiOlsxNzUsOTUsMTMwXX0se2luZGV4Oi42MyxyZ2I6WzIyMiwxMTIsMTAxXX0se2luZGV4Oi43NSxyZ2I6WzI0OSwxNDYsNjZdfSx7aW5kZXg6Ljg4LHJnYjpbMjQ5LDE5Niw2NV19LHtpbmRleDoxLHJnYjpbMjMyLDI1MCw5MV19XSx0dXJiaWRpdHk6W3tpbmRleDowLHJnYjpbMzQsMzEsMjddfSx7aW5kZXg6LjEzLHJnYjpbNjUsNTAsNDFdfSx7aW5kZXg6LjI1LHJnYjpbOTgsNjksNTJdfSx7aW5kZXg6LjM4LHJnYjpbMTMxLDg5LDU3XX0se2luZGV4Oi41LHJnYjpbMTYxLDExMiw1OV19LHtpbmRleDouNjMscmdiOlsxODUsMTQwLDY2XX0se2luZGV4Oi43NSxyZ2I6WzIwMiwxNzQsODhdfSx7aW5kZXg6Ljg4LHJnYjpbMjE2LDIwOSwxMjZdfSx7aW5kZXg6MSxyZ2I6WzIzMywyNDYsMTcxXX1dLCJ2ZWxvY2l0eS1ibHVlIjpbe2luZGV4OjAscmdiOlsxNywzMiw2NF19LHtpbmRleDouMTMscmdiOlszNSw1MiwxMTZdfSx7aW5kZXg6LjI1LHJnYjpbMjksODEsMTU2XX0se2luZGV4Oi4zOCxyZ2I6WzMxLDExMywxNjJdfSx7aW5kZXg6LjUscmdiOls1MCwxNDQsMTY5XX0se2luZGV4Oi42MyxyZ2I6Wzg3LDE3MywxNzZdfSx7aW5kZXg6Ljc1LHJnYjpbMTQ5LDE5NiwxODldfSx7aW5kZXg6Ljg4LHJnYjpbMjAzLDIyMSwyMTFdfSx7aW5kZXg6MSxyZ2I6WzI1NCwyNTEsMjMwXX1dLCJ2ZWxvY2l0eS1ncmVlbiI6W3tpbmRleDowLHJnYjpbMjMsMzUsMTldfSx7aW5kZXg6LjEzLHJnYjpbMjQsNjQsMzhdfSx7aW5kZXg6LjI1LHJnYjpbMTEsOTUsNDVdfSx7aW5kZXg6LjM4LHJnYjpbMzksMTIzLDM1XX0se2luZGV4Oi41LHJnYjpbOTUsMTQ2LDEyXX0se2luZGV4Oi42MyxyZ2I6WzE1MiwxNjUsMThdfSx7aW5kZXg6Ljc1LHJnYjpbMjAxLDE4Niw2OV19LHtpbmRleDouODgscmdiOlsyMzMsMjE2LDEzN119LHtpbmRleDoxLHJnYjpbMjU1LDI1MywyMDVdfV0sY3ViZWhlbGl4Olt7aW5kZXg6MCxyZ2I6WzAsMCwwXX0se2luZGV4Oi4wNyxyZ2I6WzIyLDUsNTldfSx7aW5kZXg6LjEzLHJnYjpbNjAsNCwxMDVdfSx7aW5kZXg6LjIscmdiOlsxMDksMSwxMzVdfSx7aW5kZXg6LjI3LHJnYjpbMTYxLDAsMTQ3XX0se2luZGV4Oi4zMyxyZ2I6WzIxMCwyLDE0Ml19LHtpbmRleDouNCxyZ2I6WzI1MSwxMSwxMjNdfSx7aW5kZXg6LjQ3LHJnYjpbMjU1LDI5LDk3XX0se2luZGV4Oi41MyxyZ2I6WzI1NSw1NCw2OV19LHtpbmRleDouNixyZ2I6WzI1NSw4NSw0Nl19LHtpbmRleDouNjcscmdiOlsyNTUsMTIwLDM0XX0se2luZGV4Oi43MyxyZ2I6WzI1NSwxNTcsMzddfSx7aW5kZXg6LjgscmdiOlsyNDEsMTkxLDU3XX0se2luZGV4Oi44NyxyZ2I6WzIyNCwyMjAsOTNdfSx7aW5kZXg6LjkzLHJnYjpbMjE4LDI0MSwxNDJdfSx7aW5kZXg6MSxyZ2I6WzIyNywyNTMsMTk4XX1dfX0se31dLDEyODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2NvbG9yU2NhbGUiKSxhPXQoImxlcnAiKTtmdW5jdGlvbiBpKHQpe3JldHVyblt0WzBdLzI1NSx0WzFdLzI1NSx0WzJdLzI1NSx0WzNdXX1mdW5jdGlvbiBvKHQpe2Zvcih2YXIgZSxyPSIjIixuPTA7bjwzOysrbilyKz0oIjAwIisoZT0oZT10W25dKS50b1N0cmluZygxNikpKS5zdWJzdHIoZS5sZW5ndGgpO3JldHVybiByfWZ1bmN0aW9uIHModCl7cmV0dXJuInJnYmEoIit0LmpvaW4oIiwiKSsiKSJ9ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbCxjLHUsaCxmLHAsZCxnO3R8fCh0PXt9KTtwPSh0Lm5zaGFkZXN8fDcyKS0xLGY9dC5mb3JtYXR8fCJoZXgiLChoPXQuY29sb3JtYXApfHwoaD0iamV0Iik7aWYoInN0cmluZyI9PXR5cGVvZiBoKXtpZihoPWgudG9Mb3dlckNhc2UoKSwhbltoXSl0aHJvdyBFcnJvcihoKyIgbm90IGEgc3VwcG9ydGVkIGNvbG9yc2NhbGUiKTt1PW5baF19ZWxzZXtpZighQXJyYXkuaXNBcnJheShoKSl0aHJvdyBFcnJvcigidW5zdXBwb3J0ZWQgY29sb3JtYXAgb3B0aW9uIixoKTt1PWguc2xpY2UoKX1pZih1Lmxlbmd0aD5wKzEpdGhyb3cgbmV3IEVycm9yKGgrIiBtYXAgcmVxdWlyZXMgbnNoYWRlcyB0byBiZSBhdCBsZWFzdCBzaXplICIrdS5sZW5ndGgpO2Q9QXJyYXkuaXNBcnJheSh0LmFscGhhKT8yIT09dC5hbHBoYS5sZW5ndGg/WzEsMV06dC5hbHBoYS5zbGljZSgpOiJudW1iZXIiPT10eXBlb2YgdC5hbHBoYT9bdC5hbHBoYSx0LmFscGhhXTpbMSwxXTtlPXUubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQuaW5kZXgqcCl9KSxkWzBdPU1hdGgubWluKE1hdGgubWF4KGRbMF0sMCksMSksZFsxXT1NYXRoLm1pbihNYXRoLm1heChkWzFdLDApLDEpO3ZhciB2PXUubWFwKGZ1bmN0aW9uKHQsZSl7dmFyIHI9dVtlXS5pbmRleCxuPXVbZV0ucmdiLnNsaWNlKCk7cmV0dXJuIDQ9PT1uLmxlbmd0aCYmblszXT49MCYmblszXTw9MT9uOihuWzNdPWRbMF0rKGRbMV0tZFswXSkqcixuKX0pLG09W107Zm9yKGc9MDtnPGUubGVuZ3RoLTE7KytnKXtjPWVbZysxXS1lW2ddLHI9dltnXSxsPXZbZysxXTtmb3IodmFyIHk9MDt5PGM7eSsrKXt2YXIgeD15L2M7bS5wdXNoKFtNYXRoLnJvdW5kKGEoclswXSxsWzBdLHgpKSxNYXRoLnJvdW5kKGEoclsxXSxsWzFdLHgpKSxNYXRoLnJvdW5kKGEoclsyXSxsWzJdLHgpKSxhKHJbM10sbFszXSx4KV0pfX1tLnB1c2godVt1Lmxlbmd0aC0xXS5yZ2IuY29uY2F0KGRbMV0pKSwiaGV4Ij09PWY/bT1tLm1hcChvKToicmdiYVN0cmluZyI9PT1mP209bS5tYXAocyk6ImZsb2F0Ij09PWYmJihtPW0ubWFwKGkpKTtyZXR1cm4gbX19LHsiLi9jb2xvclNjYWxlIjoxMjcsbGVycDo0Mjd9XSwxMjk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBvPW4oZSxyLGkpO2lmKDA9PT1vKXt2YXIgcz1hKG4odCxlLHIpKSxjPWEobih0LGUsaSkpO2lmKHM9PT1jKXtpZigwPT09cyl7dmFyIHU9bCh0LGUsciksaD1sKHQsZSxpKTtyZXR1cm4gdT09PWg/MDp1PzE6LTF9cmV0dXJuIDB9cmV0dXJuIDA9PT1jP3M+MD8tMTpsKHQsZSxpKT8tMToxOjA9PT1zP2M+MD8xOmwodCxlLHIpPzE6LTE6YShjLXMpfXZhciBmPW4odCxlLHIpO2lmKGY+MClyZXR1cm4gbz4wJiZuKHQsZSxpKT4wPzE6LTE7aWYoZjwwKXJldHVybiBvPjB8fG4odCxlLGkpPjA/MTotMTt2YXIgcD1uKHQsZSxpKTtyZXR1cm4gcD4wPzE6bCh0LGUscik/MTotMX07dmFyIG49dCgicm9idXN0LW9yaWVudGF0aW9uIiksYT10KCJzaWdudW0iKSxpPXQoInR3by1zdW0iKSxvPXQoInJvYnVzdC1wcm9kdWN0Iikscz10KCJyb2J1c3Qtc3VtIik7ZnVuY3Rpb24gbCh0LGUscil7dmFyIG49aSh0WzBdLC1lWzBdKSxhPWkodFsxXSwtZVsxXSksbD1pKHJbMF0sLWVbMF0pLGM9aShyWzFdLC1lWzFdKSx1PXMobyhuLGwpLG8oYSxjKSk7cmV0dXJuIHVbdS5sZW5ndGgtMV0+PTB9fSx7InJvYnVzdC1vcmllbnRhdGlvbiI6NTA5LCJyb2J1c3QtcHJvZHVjdCI6NTEwLCJyb2J1c3Qtc3VtIjo1MTQsc2lnbnVtOjUxNSwidHdvLXN1bSI6NTQzfV0sMTMwOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5sZW5ndGgsaT10Lmxlbmd0aC1lLmxlbmd0aDtpZihpKXJldHVybiBpO3N3aXRjaChyKXtjYXNlIDA6cmV0dXJuIDA7Y2FzZSAxOnJldHVybiB0WzBdLWVbMF07Y2FzZSAyOnJldHVybiB0WzBdK3RbMV0tZVswXS1lWzFdfHxuKHRbMF0sdFsxXSktbihlWzBdLGVbMV0pO2Nhc2UgMzp2YXIgbz10WzBdK3RbMV0scz1lWzBdK2VbMV07aWYoaT1vK3RbMl0tKHMrZVsyXSkpcmV0dXJuIGk7dmFyIGw9bih0WzBdLHRbMV0pLGM9bihlWzBdLGVbMV0pO3JldHVybiBuKGwsdFsyXSktbihjLGVbMl0pfHxuKGwrdFsyXSxvKS1uKGMrZVsyXSxzKTtjYXNlIDQ6dmFyIHU9dFswXSxoPXRbMV0sZj10WzJdLHA9dFszXSxkPWVbMF0sZz1lWzFdLHY9ZVsyXSxtPWVbM107cmV0dXJuIHUraCtmK3AtKGQrZyt2K20pfHxuKHUsaCxmLHApLW4oZCxnLHYsbSxkKXx8bih1K2gsdStmLHUrcCxoK2YsaCtwLGYrcCktbihkK2csZCt2LGQrbSxnK3YsZyttLHYrbSl8fG4odStoK2YsdStoK3AsdStmK3AsaCtmK3ApLW4oZCtnK3YsZCtnK20sZCt2K20sZyt2K20pO2RlZmF1bHQ6Zm9yKHZhciB5PXQuc2xpY2UoKS5zb3J0KGEpLHg9ZS5zbGljZSgpLnNvcnQoYSksYj0wO2I8cjsrK2IpaWYoaT15W2JdLXhbYl0pcmV0dXJuIGk7cmV0dXJuIDB9fTt2YXIgbj1NYXRoLm1pbjtmdW5jdGlvbiBhKHQsZSl7cmV0dXJuIHQtZX19LHt9XSwxMzE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiY29tcGFyZS1jZWxsIiksYT10KCJjZWxsLW9yaWVudGF0aW9uIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4odCxlKXx8YSh0KS1hKGUpfX0seyJjZWxsLW9yaWVudGF0aW9uIjoxMTQsImNvbXBhcmUtY2VsbCI6MTMwfV0sMTMyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vbGliL2NoMWQiKSxhPXQoIi4vbGliL2NoMmQiKSxpPXQoIi4vbGliL2NobmQiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5sZW5ndGg7aWYoMD09PWUpcmV0dXJuW107aWYoMT09PWUpcmV0dXJuW1swXV07dmFyIHI9dFswXS5sZW5ndGg7aWYoMD09PXIpcmV0dXJuW107aWYoMT09PXIpcmV0dXJuIG4odCk7aWYoMj09PXIpcmV0dXJuIGEodCk7cmV0dXJuIGkodCxyKX19LHsiLi9saWIvY2gxZCI6MTMzLCIuL2xpYi9jaDJkIjoxMzQsIi4vbGliL2NobmQiOjEzNX1dLDEzMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj0wLG49MTtuPHQubGVuZ3RoOysrbil0W25dWzBdPHRbZV1bMF0mJihlPW4pLHRbbl1bMF0+dFtyXVswXSYmKHI9bik7cmV0dXJuIGU8cj9bW2VdLFtyXV06ZT5yP1tbcl0sW2VdXTpbW2VdXX19LHt9XSwxMzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPW4odCkscj1lLmxlbmd0aDtpZihyPD0yKXJldHVybltdO2Zvcih2YXIgYT1uZXcgQXJyYXkociksaT1lW3ItMV0sbz0wO288cjsrK28pe3ZhciBzPWVbb107YVtvXT1baSxzXSxpPXN9cmV0dXJuIGF9O3ZhciBuPXQoIm1vbm90b25lLWNvbnZleC1odWxsLTJkIil9LHsibW9ub3RvbmUtY29udmV4LWh1bGwtMmQiOjQzNn1dLDEzNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIG4odCwhMCl9Y2F0Y2gocyl7dmFyIHI9YSh0KTtpZihyLmxlbmd0aDw9ZSlyZXR1cm5bXTt2YXIgaT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10Lmxlbmd0aCxuPW5ldyBBcnJheShyKSxhPTA7YTxlLmxlbmd0aDsrK2EpblthXT10W2VbYV1dO2Zvcih2YXIgaT1lLmxlbmd0aCxhPTA7YTxyOysrYSllLmluZGV4T2YoYSk8MCYmKG5baSsrXT10W2FdKTtyZXR1cm4gbn0odCxyKSxvPW4oaSwhMCk7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQubGVuZ3RoLG49ZS5sZW5ndGgsYT0wO2E8cjsrK2EpZm9yKHZhciBpPXRbYV0sbz0wO288aS5sZW5ndGg7KytvKXt2YXIgcz1pW29dO2lmKHM8bilpW29dPWVbc107ZWxzZXtzLT1uO2Zvcih2YXIgbD0wO2w8bjsrK2wpcz49ZVtsXSYmKHMrPTEpO2lbb109c319cmV0dXJuIHR9KG8scil9fTt2YXIgbj10KCJpbmNyZW1lbnRhbC1jb252ZXgtaHVsbCIpLGE9dCgiYWZmaW5lLWh1bGwiKX0seyJhZmZpbmUtaHVsbCI6NjUsImluY3JlbWVudGFsLWNvbnZleC1odWxsIjo0MTV9XSwxMzY6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9e0FGRzoiYWZnaGFuIixBTEE6IlxcYlxcd2xhbmQiLEFMQjoiYWxiYW5pYSIsRFpBOiJhbGdlcmlhIixBU006Il4oPz0uKmFtZXJpYykuKnNhbW9hIixBTkQ6ImFuZG9ycmEiLEFHTzoiYW5nb2xhIixBSUE6ImFuZ3VpbGw/YSIsQVRBOiJhbnRhcmN0aWNhIixBVEc6ImFudGlndWEiLEFSRzoiYXJnZW50aW4iLEFSTToiYXJtZW5pYSIsQUJXOiJeKD8hLipib25haXJlKS4qXFxiYXJ1YmEiLEFVUzoiYXVzdHJhbGlhIixBVVQ6Il4oPyEuKmh1bmdhcnkpLiphdXN0cmlhfFxcYmF1c3RyaS4qXFxiZW1wIixBWkU6ImF6ZXJiYWlqYW4iLEJIUzoiYmFoYW1hcyIsQkhSOiJiYWhyYWluIixCR0Q6ImJhbmdsYWRlc2h8Xig/PS4qZWFzdCkuKnBha2k/c3RhbiIsQlJCOiJiYXJiYWRvcyIsQkxSOiJiZWxhcnVzfGJ5ZWxvIixCRUw6Il4oPyEuKmx1eGVtKS4qYmVsZ2l1bSIsQkxaOiJiZWxpemV8Xig/PS4qYnJpdGlzaCkuKmhvbmR1cmFzIixCRU46ImJlbmlufGRhaG9tZSIsQk1VOiJiZXJtdWRhIixCVE46ImJodXRhbiIsQk9MOiJib2xpdmlhIixCRVM6Il4oPz0uKmJvbmFpcmUpLipldXN0YXRpdXN8Xig/PS4qY2FyaWIpLipuZXRoZXJsYW5kc3xcXGJiZXMuP2lzbGFuZHMiLEJJSDoiaGVyemVnb3ZpbmF8Ym9zbmlhIixCV0E6ImJvdHN3YW5hfGJlY2h1YW5hIixCVlQ6ImJvdXZldCIsQlJBOiJicmF6aWwiLElPVDoiYnJpdGlzaC4/aW5kaWFuLj9vY2VhbiIsQlJOOiJicnVuZWkiLEJHUjoiYnVsZ2FyaWEiLEJGQToiYnVya2luYXxcXGJmYXNvfHVwcGVyLj92b2x0YSIsQkRJOiJidXJ1bmRpIixDUFY6InZlcmRlIixLSE06ImNhbWJvZGlhfGthbXB1Y2hlYXxraG1lciIsQ01SOiJjYW1lcm9vbiIsQ0FOOiJjYW5hZGEiLENZTToiY2F5bWFuIixDQUY6IlxcYmNlbnRyYWwuYWZyaWNhbi5yZXB1YmxpYyIsVENEOiJcXGJjaGFkIixDSEw6IlxcYmNoaWxlIixDSE46Il4oPyEuKlxcYm1hYykoPyEuKlxcYmhvbmcpKD8hLipcXGJ0YWkpKD8hLipcXGJyZXApLipjaGluYXxeKD89LipwZW8pKD89LipyZXApLipjaGluYSIsQ1hSOiJjaHJpc3RtYXMiLENDSzoiXFxiY29jb3N8a2VlbGluZyIsQ09MOiJjb2xvbWJpYSIsQ09NOiJjb21vcm8iLENPRzoiXig/IS4qXFxiZGVtKSg/IS4qXFxiZFtcXC5dP3IpKD8hLipraW5zaGFzYSkoPyEuKnphaXJlKSg/IS4qYmVsZykoPyEuKmwub3BvbGR2aWxsZSkoPyEuKmZyZWUpLipcXGJjb25nbyIsQ09LOiJcXGJjb29rIixDUkk6ImNvc3RhLj9yaWNhIixDSVY6Iml2b2lyZXxpdm9yeSIsSFJWOiJjcm9hdGlhIixDVUI6IlxcYmN1YmEiLENVVzoiXig/IS4qYm9uYWlyZSkuKlxcYmN1cmEoY3xceGU3KWFvIixDWVA6ImN5cHJ1cyIsQ1NLOiJjemVjaG9zbG92YWtpYSIsQ1pFOiJeKD89LipyZXApLipjemVjaHxjemVjaGlhfGJvaGVtaWEiLENPRDoiXFxiZGVtLipjb25nb3xjb25nby4qXFxiZGVtfGNvbmdvLipcXGJkW1xcLl0/cnxcXGJkW1xcLl0/ci4qY29uZ298YmVsZ2lhbi4/Y29uZ298Y29uZ28uP2ZyZWUuP3N0YXRlfGtpbnNoYXNhfHphaXJlfGwub3BvbGR2aWxsZXxkcmN8ZHJvY3xyZGMiLEROSzoiZGVubWFyayIsREpJOiJkamlib3V0aSIsRE1BOiJkb21pbmljYSg/IW4pIixET006ImRvbWluaWNhbi5yZXAiLEVDVToiZWN1YWRvciIsRUdZOiJlZ3lwdCIsU0xWOiJlbC4/c2FsdmFkb3IiLEdOUToiZ3VpbmUuKmVxfGVxLipndWluZXxeKD89LipzcGFuKS4qZ3VpbmVhIixFUkk6ImVyaXRyZWEiLEVTVDoiZXN0b25pYSIsRVRIOiJldGhpb3BpYXxhYnlzc2luaWEiLEZMSzoiZmFsa2xhbmR8bWFsdmluYXMiLEZSTzoiZmFyb2V8ZmFlcm9lIixGSkk6ImZpamkiLEZJTjoiZmlubGFuZCIsRlJBOiJeKD8hLipcXGJkZXApKD8hLiptYXJ0aW5pcXVlKS4qZnJhbmNlfGZyZW5jaC4/cmVwdWJsaWN8XFxiZ2F1bCIsR1VGOiJeKD89LipmcmVuY2gpLipndWlhbmEiLFBZRjoiZnJlbmNoLj9wb2x5bmVzaWF8dGFoaXRpIixBVEY6ImZyZW5jaC4/c291dGhlcm4iLEdBQjoiZ2Fib24iLEdNQjoiZ2FtYmlhIixHRU86Il4oPyEuKnNvdXRoKS4qZ2VvcmdpYSIsRERSOiJnZXJtYW4uP2RlbW9jcmF0aWMuP3JlcHVibGljfGRlbW9jcmF0aWMuP3JlcHVibGljLipnZXJtYW55fGVhc3QuZ2VybWFueSIsREVVOiJeKD8hLiplYXN0KS4qZ2VybWFueXxeKD89LipcXGJmZWQuKlxcYnJlcCkuKmdlcm1hbiIsR0hBOiJnaGFuYXxnb2xkLj9jb2FzdCIsR0lCOiJnaWJyYWx0YXIiLEdSQzoiZ3JlZWNlfGhlbGxlbmljfGhlbGxhcyIsR1JMOiJncmVlbmxhbmQiLEdSRDoiZ3JlbmFkYSIsR0xQOiJndWFkZWxvdXBlIixHVU06IlxcYmd1YW0iLEdUTToiZ3VhdGVtYWxhIixHR1k6Imd1ZXJuc2V5IixHSU46Il4oPyEuKmVxKSg/IS4qc3BhbikoPyEuKmJpc3NhdSkoPyEuKnBvcnR1KSg/IS4qbmV3KS4qZ3VpbmVhIixHTkI6ImJpc3NhdXxeKD89Lipwb3J0dSkuKmd1aW5lYSIsR1VZOiJndXlhbmF8YnJpdGlzaC4/Z3VpYW5hIixIVEk6ImhhaXRpIixITUQ6ImhlYXJkLiptY2RvbmFsZCIsVkFUOiJob2x5Lj9zZWV8dmF0aWNhbnxwYXBhbC4/c3QiLEhORDoiXig/IS4qYnJpdCkuKmhvbmR1cmFzIixIS0c6ImhvbmcuP2tvbmciLEhVTjoiXig/IS4qYXVzdHIpLipodW5nYXJ5IixJU0w6ImljZWxhbmQiLElORDoiaW5kaWEoPyEuKm9jZWEpIixJRE46ImluZG9uZXNpYSIsSVJOOiJcXGJpcmFufHBlcnNpYSIsSVJROiJcXGJpcmFxfG1lc29wb3RhbWlhIixJUkw6IiheaXJlbGFuZCl8KF5yZXB1YmxpYy4qaXJlbGFuZCkiLElNTjoiXig/PS4qaXNsZSkuKlxcYm1hbiIsSVNSOiJpc3JhZWwiLElUQToiaXRhbHkiLEpBTToiamFtYWljYSIsSlBOOiJqYXBhbiIsSkVZOiJqZXJzZXkiLEpPUjoiam9yZGFuIixLQVo6ImthemFrIixLRU46ImtlbnlhfGJyaXRpc2guP2Vhc3QuP2FmcmljYXxlYXN0Lj9hZnJpY2EuP3Byb3QiLEtJUjoia2lyaWJhdGkiLFBSSzoiXig/PS4qZGVtb2NyYXR8cGVvcGxlfG5vcnRofGQuKnAuKi5yKS4qXFxia29yZWF8ZHBya3xrb3JlYS4qKGQuKnAuKnIpIixLV1Q6Imt1d2FpdCIsS0daOiJreXJneXp8a2lyZ2hpeiIsTEFPOiJcXGJsYW9zP1xcYiIsTFZBOiJsYXR2aWEiLExCTjoibGViYW5vbiIsTFNPOiJsZXNvdGhvfGJhc3V0byIsTEJSOiJsaWJlcmlhIixMQlk6ImxpYnlhIixMSUU6ImxpZWNodGVuc3RlaW4iLExUVToibGl0aHVhbmlhIixMVVg6Il4oPyEuKmJlbGcpLipsdXhlbSIsTUFDOiJtYWNhKG98dSkiLE1ERzoibWFkYWdhc2NhcnxtYWxhZ2FzeSIsTVdJOiJtYWxhd2l8bnlhc2EiLE1ZUzoibWFsYXlzaWEiLE1EVjoibWFsZGl2ZSIsTUxJOiJcXGJtYWxpXFxiIixNTFQ6IlxcYm1hbHRhIixNSEw6Im1hcnNoYWxsIixNVFE6Im1hcnRpbmlxdWUiLE1SVDoibWF1cml0YW5pYSIsTVVTOiJtYXVyaXRpdXMiLE1ZVDoiXFxibWF5b3R0ZSIsTUVYOiJcXGJtZXhpYyIsRlNNOiJmZWQuKm1pY3JvbmVzaWF8bWljcm9uZXNpYS4qZmVkIixNQ086Im1vbmFjbyIsTU5HOiJtb25nb2xpYSIsTU5FOiJeKD8hLipzZXJiaWEpLiptb250ZW5lZ3JvIixNU1I6Im1vbnRzZXJyYXQiLE1BUjoibW9yb2Njb3xcXGJtYXJvYyIsTU9aOiJtb3phbWJpcXVlIixNTVI6Im15YW5tYXJ8YnVybWEiLE5BTToibmFtaWJpYSIsTlJVOiJuYXVydSIsTlBMOiJuZXBhbCIsTkxEOiJeKD8hLipcXGJhbnQpKD8hLipcXGJjYXJpYikuKm5ldGhlcmxhbmRzIixBTlQ6Il4oPz0uKlxcYmFudCkuKihuZXRoZXJ8ZHV0Y2gpIixOQ0w6Im5ldy4/Y2FsZWRvbmlhIixOWkw6Im5ldy4/emVhbGFuZCIsTklDOiJuaWNhcmFndWEiLE5FUjoiXFxibmlnZXIoPyFpYSkiLE5HQToibmlnZXJpYSIsTklVOiJuaXVlIixORks6Im5vcmZvbGsiLE1OUDoibWFyaWFuYSIsTk9SOiJub3J3YXkiLE9NTjoiXFxib21hbnx0cnVjaWFsIixQQUs6Il4oPyEuKmVhc3QpLipwYWtpP3N0YW4iLFBMVzoicGFsYXUiLFBTRToicGFsZXN0aW58XFxiZ2F6YXx3ZXN0Lj9iYW5rIixQQU46InBhbmFtYSIsUE5HOiJwYXB1YXxuZXcuP2d1aW5lYSIsUFJZOiJwYXJhZ3VheSIsUEVSOiJwZXJ1IixQSEw6InBoaWxpcHBpbmVzIixQQ046InBpdGNhaXJuIixQT0w6InBvbGFuZCIsUFJUOiJwb3J0dWdhbCIsUFJJOiJwdWVydG8uP3JpY28iLFFBVDoicWF0YXIiLEtPUjoiXig/IS4qZC4qcC4qcikoPyEuKmRlbW9jcmF0KSg/IS4qcGVvcGxlKSg/IS4qbm9ydGgpLipcXGJrb3JlYSg/IS4qZC4qcC4qcikiLE1EQToibW9sZG92fGIoYXxlKXNzYXJhYmlhIixSRVU6InIoZXxceGU5KXVuaW9uIixST1U6InIob3x1fG91KW1hbmlhIixSVVM6IlxcYnJ1c3NpYXxzb3ZpZXQuP3VuaW9ufHVcXC4/c1xcLj9zXFwuP3J8c29jaWFsaXN0Lj9yZXB1YmxpY3MiLFJXQToicndhbmRhIixCTE06ImJhcnRoKGV8XHhlOSlsZW15IixTSE46ImhlbGVuYSIsS05BOiJraXR0c3xcXGJuZXZpcyIsTENBOiJcXGJsdWNpYSIsTUFGOiJeKD89Lipjb2xsZWN0aXZpdHkpLiptYXJ0aW58Xig/PS4qZnJhbmNlKS4qbWFydGluKD8haXF1ZSl8Xig/PS4qZnJlbmNoKS4qbWFydGluKD8haXF1ZSkiLFNQTToibWlxdWVsb24iLFZDVDoidmluY2VudCIsV1NNOiJeKD8hLiphbWVyKS4qc2Ftb2EiLFNNUjoic2FuLj9tYXJpbm8iLFNUUDoiXFxicyhhfFx4ZTMpby4/dG9tKGV8XHhlOSkiLFNBVToiXFxic2FcXHcqLj9hcmFiaWEiLFNFTjoic2VuZWdhbCIsU1JCOiJeKD8hLiptb250ZSkuKnNlcmJpYSIsU1lDOiJzZXljaGVsbCIsU0xFOiJzaWVycmEiLFNHUDoic2luZ2Fwb3JlIixTWE06Il4oPyEuKm1hcnRpbikoPyEuKnNhYmEpLiptYWFydGVuIixTVks6Il4oPyEuKmN6ZSkuKnNsb3ZhayIsU1ZOOiJzbG92ZW5pYSIsU0xCOiJzb2xvbW9uIixTT006InNvbWFsaSIsWkFGOiJzb3V0aC5hZnJpY2F8c1xcXFwuLj9hZnJpY2EiLFNHUzoic291dGguP2dlb3JnaWF8c2FuZHdpY2giLFNTRDoiXFxic1xcdyouP3N1ZGFuIixFU1A6InNwYWluIixMS0E6InNyaS4/bGFua2F8Y2V5bG9uIixTRE46Il4oPyEuKlxcYnMoPyF1KSkuKnN1ZGFuIixTVVI6InN1cmluYW18ZHV0Y2guP2d1aWFuYSIsU0pNOiJzdmFsYmFyZCIsU1daOiJzd2F6aWxhbmQiLFNXRToic3dlZGVuIixDSEU6InN3aXR6fHN3aXNzIixTWVI6InN5cmlhIixUV046InRhaXdhbnx0YWlwZWl8Zm9ybW9zYXxeKD8hLipwZW8pKD89LipyZXApLipjaGluYSIsVEpLOiJ0YWppayIsVEhBOiJ0aGFpbGFuZHxcXGJzaWFtIixNS0Q6Im1hY2Vkb25pYXxmeXJvbSIsVExTOiJeKD89LipsZXN0ZSkuKnRpbW9yfF4oPz0uKmVhc3QpLip0aW1vciIsVEdPOiJ0b2dvIixUS0w6InRva2VsYXUiLFRPTjoidG9uZ2EiLFRUTzoidHJpbmlkYWR8dG9iYWdvIixUVU46InR1bmlzaWEiLFRVUjoidHVya2V5IixUS006InR1cmttZW4iLFRDQToidHVya3MiLFRVVjoidHV2YWx1IixVR0E6InVnYW5kYSIsVUtSOiJ1a3JhaW4iLEFSRToiZW1pcmF0ZXN8XnVcXC4/YVxcLj9lXFwuPyR8dW5pdGVkLj9hcmFiLj9lbSIsR0JSOiJ1bml0ZWQuP2tpbmdkb218YnJpdGFpbnxedVxcLj9rXFwuPyQiLFRaQToidGFuemFuaWEiLFVTQToidW5pdGVkLj9zdGF0ZXNcXGIoPyEuKmlzbGFuZHMpfFxcYnVcXC4/c1xcLj9hXFwuP1xcYnxeXFxzKnVcXC4/c1xcLj9cXGIoPyEuKmlzbGFuZHMpIixVTUk6Im1pbm9yLj9vdXRseWluZy4/aXMiLFVSWToidXJ1Z3VheSIsVVpCOiJ1emJlayIsVlVUOiJ2YW51YXR1fG5ldy4/aGVicmlkZXMiLFZFTjoidmVuZXp1ZWxhIixWTk06Il4oPyEuKnJlcHVibGljKS4qdmlldC4/bmFtfF4oPz0uKnNvY2lhbGlzdCkuKnZpZXQuP25hbSIsVkdCOiJeKD89LipcXGJ1XFwuP1xccz9rKS4qdmlyZ2lufF4oPz0uKmJyaXQpLip2aXJnaW58Xig/PS4qa2luZ2RvbSkuKnZpcmdpbiIsVklSOiJeKD89LipcXGJ1XFwuP1xccz9zKS4qdmlyZ2lufF4oPz0uKnN0YXRlcykuKnZpcmdpbiIsV0xGOiJmdXR1bmF8d2FsbGlzIixFU0g6Indlc3Rlcm4uc2FoYXJhIixZRU06Il4oPyEuKmFyYWIpKD8hLipub3J0aCkoPyEuKnNhbmEpKD8hLipwZW8pKD8hLipkZW0pKD8hLipzb3V0aCkoPyEuKmFkZW4pKD8hLipcXGJwXFwuP2RcXC4/cikuKnllbWVuIixZTUQ6Il4oPz0uKnBlbykuKnllbWVufF4oPyEuKnJlcCkoPz0uKmRlbSkuKnllbWVufF4oPz0uKnNvdXRoKS4qeWVtZW58Xig/PS4qYWRlbikuKnllbWVufF4oPz0uKlxcYnBcXC4/ZFxcLj9yKS4qeWVtZW4iLFlVRzoieXVnb3NsYXZpYSIsWk1COiJ6YW1iaWF8bm9ydGhlcm4uP3Job2Rlc2lhIixFQVo6InphbnppYmFyIixaV0U6InppbWJhYndlfF4oPyEuKm5vcnRoZXJuKS4qcmhvZGVzaWEifX0se31dLDEzNzpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1bInh4LXNtYWxsIiwieC1zbWFsbCIsInNtYWxsIiwibWVkaXVtIiwibGFyZ2UiLCJ4LWxhcmdlIiwieHgtbGFyZ2UiLCJsYXJnZXIiLCJzbWFsbGVyIl19LHt9XSwxMzg6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9WyJub3JtYWwiLCJjb25kZW5zZWQiLCJzZW1pLWNvbmRlbnNlZCIsImV4dHJhLWNvbmRlbnNlZCIsInVsdHJhLWNvbmRlbnNlZCIsImV4cGFuZGVkIiwic2VtaS1leHBhbmRlZCIsImV4dHJhLWV4cGFuZGVkIiwidWx0cmEtZXhwYW5kZWQiXX0se31dLDEzOTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1bIm5vcm1hbCIsIml0YWxpYyIsIm9ibGlxdWUiXX0se31dLDE0MDpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1bIm5vcm1hbCIsImJvbGQiLCJib2xkZXIiLCJsaWdodGVyIiwiMTAwIiwiMjAwIiwiMzAwIiwiNDAwIiwiNTAwIiwiNjAwIiwiNzAwIiwiODAwIiwiOTAwIl19LHt9XSwxNDE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtwYXJzZTp0KCIuL3BhcnNlIiksc3RyaW5naWZ5OnQoIi4vc3RyaW5naWZ5Iil9fSx7Ii4vcGFyc2UiOjE0MywiLi9zdHJpbmdpZnkiOjE0NH1dLDE0MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJjc3MtZm9udC1zaXplLWtleXdvcmRzIik7ZS5leHBvcnRzPXtpc1NpemU6ZnVuY3Rpb24odCl7cmV0dXJuL15bXGRcLl0vLnRlc3QodCl8fC0xIT09dC5pbmRleE9mKCIvIil8fC0xIT09bi5pbmRleE9mKHQpfX19LHsiY3NzLWZvbnQtc2l6ZS1rZXl3b3JkcyI6MTM3fV0sMTQzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInVucXVvdGUiKSxhPXQoImNzcy1nbG9iYWwta2V5d29yZHMiKSxpPXQoImNzcy1zeXN0ZW0tZm9udC1rZXl3b3JkcyIpLG89dCgiY3NzLWZvbnQtd2VpZ2h0LWtleXdvcmRzIikscz10KCJjc3MtZm9udC1zdHlsZS1rZXl3b3JkcyIpLGw9dCgiY3NzLWZvbnQtc3RyZXRjaC1rZXl3b3JkcyIpLGM9dCgic3RyaW5nLXNwbGl0LWJ5IiksdT10KCIuL2xpYi91dGlsIikuaXNTaXplO2UuZXhwb3J0cz1mO3ZhciBoPWYuY2FjaGU9e307ZnVuY3Rpb24gZih0KXtpZigic3RyaW5nIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yKCJGb250IGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmcuIik7aWYoaFt0XSlyZXR1cm4gaFt0XTtpZigiIj09PXQpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcGFyc2UgYW4gZW1wdHkgc3RyaW5nLiIpO2lmKC0xIT09aS5pbmRleE9mKHQpKXJldHVybiBoW3RdPXtzeXN0ZW06dH07Zm9yKHZhciBlLHI9e3N0eWxlOiJub3JtYWwiLHZhcmlhbnQ6Im5vcm1hbCIsd2VpZ2h0OiJub3JtYWwiLHN0cmV0Y2g6Im5vcm1hbCIsbGluZUhlaWdodDoibm9ybWFsIixzaXplOiIxcmVtIixmYW1pbHk6WyJzZXJpZiJdfSxmPWModCwvXHMrLyk7ZT1mLnNoaWZ0KCk7KXtpZigtMSE9PWEuaW5kZXhPZihlKSlyZXR1cm5bInN0eWxlIiwidmFyaWFudCIsIndlaWdodCIsInN0cmV0Y2giXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JbdF09ZX0pLGhbdF09cjtpZigtMT09PXMuaW5kZXhPZihlKSlpZigibm9ybWFsIiE9PWUmJiJzbWFsbC1jYXBzIiE9PWUpaWYoLTE9PT1sLmluZGV4T2YoZSkpe2lmKC0xPT09by5pbmRleE9mKGUpKXtpZih1KGUpKXt2YXIgZD1jKGUsIi8iKTtpZihyLnNpemU9ZFswXSxudWxsIT1kWzFdP3IubGluZUhlaWdodD1wKGRbMV0pOiIvIj09PWZbMF0mJihmLnNoaWZ0KCksci5saW5lSGVpZ2h0PXAoZi5zaGlmdCgpKSksIWYubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiTWlzc2luZyByZXF1aXJlZCBmb250LWZhbWlseS4iKTtyZXR1cm4gci5mYW1pbHk9YyhmLmpvaW4oIiAiKSwvXHMqLFxzKi8pLm1hcChuKSxoW3RdPXJ9dGhyb3cgbmV3IEVycm9yKCJVbmtub3duIG9yIHVuc3VwcG9ydGVkIGZvbnQgdG9rZW46ICIrZSl9ci53ZWlnaHQ9ZX1lbHNlIHIuc3RyZXRjaD1lO2Vsc2Ugci52YXJpYW50PWU7ZWxzZSByLnN0eWxlPWV9dGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIHJlcXVpcmVkIGZvbnQtc2l6ZS4iKX1mdW5jdGlvbiBwKHQpe3ZhciBlPXBhcnNlRmxvYXQodCk7cmV0dXJuIGUudG9TdHJpbmcoKT09PXQ/ZTp0fX0seyIuL2xpYi91dGlsIjoxNDIsImNzcy1mb250LXN0cmV0Y2gta2V5d29yZHMiOjEzOCwiY3NzLWZvbnQtc3R5bGUta2V5d29yZHMiOjEzOSwiY3NzLWZvbnQtd2VpZ2h0LWtleXdvcmRzIjoxNDAsImNzcy1nbG9iYWwta2V5d29yZHMiOjE0NSwiY3NzLXN5c3RlbS1mb250LWtleXdvcmRzIjoxNDYsInN0cmluZy1zcGxpdC1ieSI6NTI4LHVucXVvdGU6NTQ3fV0sMTQ0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInBpY2stYnktYWxpYXMiKSxhPXQoIi4vbGliL3V0aWwiKS5pc1NpemUsaT1nKHQoImNzcy1nbG9iYWwta2V5d29yZHMiKSksbz1nKHQoImNzcy1zeXN0ZW0tZm9udC1rZXl3b3JkcyIpKSxzPWcodCgiY3NzLWZvbnQtd2VpZ2h0LWtleXdvcmRzIikpLGw9Zyh0KCJjc3MtZm9udC1zdHlsZS1rZXl3b3JkcyIpKSxjPWcodCgiY3NzLWZvbnQtc3RyZXRjaC1rZXl3b3JkcyIpKSx1PXtub3JtYWw6MSwic21hbGwtY2FwcyI6MX0saD17c2VyaWY6MSwic2Fucy1zZXJpZiI6MSxtb25vc3BhY2U6MSxjdXJzaXZlOjEsZmFudGFzeToxLCJzeXN0ZW0tdWkiOjF9LGY9IjFyZW0iLHA9InNlcmlmIjtmdW5jdGlvbiBkKHQsZSl7aWYodCYmIWVbdF0mJiFpW3RdKXRocm93IEVycm9yKCJVbmtub3duIGtleXdvcmQgYCIrdCsiYCIpO3JldHVybiB0fWZ1bmN0aW9uIGcodCl7Zm9yKHZhciBlPXt9LHI9MDtyPHQubGVuZ3RoO3IrKyllW3Rbcl1dPTE7cmV0dXJuIGV9ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKCh0PW4odCx7c3R5bGU6InN0eWxlIGZvbnRzdHlsZSBmb250U3R5bGUgZm9udC1zdHlsZSBzbG9wZSBkaXN0aW5jdGlvbiIsdmFyaWFudDoidmFyaWFudCBmb250LXZhcmlhbnQgZm9udFZhcmlhbnQgZm9udHZhcmlhbnQgdmFyIGNhcGl0YWxpemF0aW9uIix3ZWlnaHQ6IndlaWdodCB3IGZvbnQtd2VpZ2h0IGZvbnRXZWlnaHQgZm9udHdlaWdodCIsc3RyZXRjaDoic3RyZXRjaCBmb250LXN0cmV0Y2ggZm9udFN0cmV0Y2ggZm9udHN0cmV0Y2ggd2lkdGgiLHNpemU6InNpemUgcyBmb250LXNpemUgZm9udFNpemUgZm9udHNpemUgaGVpZ2h0IGVtIGVtU2l6ZSIsbGluZUhlaWdodDoibGggbGluZS1oZWlnaHQgbGluZUhlaWdodCBsaW5laGVpZ2h0IGxlYWRpbmciLGZhbWlseToiZm9udCBmYW1pbHkgZm9udEZhbWlseSBmb250LWZhbWlseSBmb250ZmFtaWx5IHR5cGUgdHlwZWZhY2UgZmFjZSIsc3lzdGVtOiJzeXN0ZW0gcmVzZXJ2ZWQgZGVmYXVsdCBnbG9iYWwifSkpLnN5c3RlbSlyZXR1cm4gdC5zeXN0ZW0mJmQodC5zeXN0ZW0sbyksdC5zeXN0ZW07aWYoZCh0LnN0eWxlLGwpLGQodC52YXJpYW50LHUpLGQodC53ZWlnaHQscyksZCh0LnN0cmV0Y2gsYyksbnVsbD09dC5zaXplJiYodC5zaXplPWYpLCJudW1iZXIiPT10eXBlb2YgdC5zaXplJiYodC5zaXplKz0icHgiKSwhYSl0aHJvdyBFcnJvcigiQmFkIHNpemUgdmFsdWUgYCIrdC5zaXplKyJgIik7dC5mYW1pbHl8fCh0LmZhbWlseT1wKSxBcnJheS5pc0FycmF5KHQuZmFtaWx5KSYmKHQuZmFtaWx5Lmxlbmd0aHx8KHQuZmFtaWx5PVtwXSksdC5mYW1pbHk9dC5mYW1pbHkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBoW3RdP3Q6JyInK3QrJyInfSkuam9pbigiLCAiKSk7dmFyIGU9W107cmV0dXJuIGUucHVzaCh0LnN0eWxlKSx0LnZhcmlhbnQhPT10LnN0eWxlJiZlLnB1c2godC52YXJpYW50KSx0LndlaWdodCE9PXQudmFyaWFudCYmdC53ZWlnaHQhPT10LnN0eWxlJiZlLnB1c2godC53ZWlnaHQpLHQuc3RyZXRjaCE9PXQud2VpZ2h0JiZ0LnN0cmV0Y2ghPT10LnZhcmlhbnQmJnQuc3RyZXRjaCE9PXQuc3R5bGUmJmUucHVzaCh0LnN0cmV0Y2gpLGUucHVzaCh0LnNpemUrKG51bGw9PXQubGluZUhlaWdodHx8Im5vcm1hbCI9PT10LmxpbmVIZWlnaHR8fHQubGluZUhlaWdodCsiIj09IjEiPyIiOiIvIit0LmxpbmVIZWlnaHQpKSxlLnB1c2godC5mYW1pbHkpLGUuZmlsdGVyKEJvb2xlYW4pLmpvaW4oIiAiKX19LHsiLi9saWIvdXRpbCI6MTQyLCJjc3MtZm9udC1zdHJldGNoLWtleXdvcmRzIjoxMzgsImNzcy1mb250LXN0eWxlLWtleXdvcmRzIjoxMzksImNzcy1mb250LXdlaWdodC1rZXl3b3JkcyI6MTQwLCJjc3MtZ2xvYmFsLWtleXdvcmRzIjoxNDUsImNzcy1zeXN0ZW0tZm9udC1rZXl3b3JkcyI6MTQ2LCJwaWNrLWJ5LWFsaWFzIjo0Njd9XSwxNDU6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9WyJpbmhlcml0IiwiaW5pdGlhbCIsInVuc2V0Il19LHt9XSwxNDY6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9WyJjYXB0aW9uIiwiaWNvbiIsIm1lbnUiLCJtZXNzYWdlLWJveCIsInNtYWxsLWNhcHRpb24iLCJzdGF0dXMtYmFyIl19LHt9XSwxNDc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4sYSxpKXt2YXIgbz1hLTEscz1hKmEsbD1vKm8sYz0oMSsyKmEpKmwsdT1hKmwsaD1zKigzLTIqYSksZj1zKm87aWYodC5sZW5ndGgpe2l8fChpPW5ldyBBcnJheSh0Lmxlbmd0aCkpO2Zvcih2YXIgcD10Lmxlbmd0aC0xO3A+PTA7LS1wKWlbcF09Yyp0W3BdK3UqZVtwXStoKnJbcF0rZipuW3BdO3JldHVybiBpfXJldHVybiBjKnQrdSplK2gqcitmKm59LGUuZXhwb3J0cy5kZXJpdmF0aXZlPWZ1bmN0aW9uKHQsZSxyLG4sYSxpKXt2YXIgbz02KmEqYS02KmEscz0zKmEqYS00KmErMSxsPS02KmEqYSs2KmEsYz0zKmEqYS0yKmE7aWYodC5sZW5ndGgpe2l8fChpPW5ldyBBcnJheSh0Lmxlbmd0aCkpO2Zvcih2YXIgdT10Lmxlbmd0aC0xO3U+PTA7LS11KWlbdV09byp0W3VdK3MqZVt1XStsKnJbdV0rYypuW3VdO3JldHVybiBpfXJldHVybiBvKnQrcyplK2wqclt1XStjKm59fSx7fV0sMTQ4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vbGliL3RodW5rLmpzIik7ZnVuY3Rpb24gYSgpe3RoaXMuYXJnVHlwZXM9W10sdGhpcy5zaGltQXJncz1bXSx0aGlzLmFycmF5QXJncz1bXSx0aGlzLmFycmF5QmxvY2tJbmRpY2VzPVtdLHRoaXMuc2NhbGFyQXJncz1bXSx0aGlzLm9mZnNldEFyZ3M9W10sdGhpcy5vZmZzZXRBcmdJbmRleD1bXSx0aGlzLmluZGV4QXJncz1bXSx0aGlzLnNoYXBlQXJncz1bXSx0aGlzLmZ1bmNOYW1lPSIiLHRoaXMucHJlPW51bGwsdGhpcy5ib2R5PW51bGwsdGhpcy5wb3N0PW51bGwsdGhpcy5kZWJ1Zz0hMX1lLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IGE7ZS5wcmU9dC5wcmUsZS5ib2R5PXQuYm9keSxlLnBvc3Q9dC5wb3N0O3ZhciByPXQuYXJncy5zbGljZSgwKTtlLmFyZ1R5cGVzPXI7Zm9yKHZhciBpPTA7aTxyLmxlbmd0aDsrK2kpe3ZhciBvPXJbaV07aWYoImFycmF5Ij09PW98fCJvYmplY3QiPT10eXBlb2YgbyYmby5ibG9ja0luZGljZXMpe2lmKGUuYXJnVHlwZXNbaV09ImFycmF5IixlLmFycmF5QXJncy5wdXNoKGkpLGUuYXJyYXlCbG9ja0luZGljZXMucHVzaChvLmJsb2NrSW5kaWNlcz9vLmJsb2NrSW5kaWNlczowKSxlLnNoaW1BcmdzLnB1c2goImFycmF5IitpKSxpPGUucHJlLmFyZ3MubGVuZ3RoJiZlLnByZS5hcmdzW2ldLmNvdW50PjApdGhyb3cgbmV3IEVycm9yKCJjd2lzZTogcHJlKCkgYmxvY2sgbWF5IG5vdCByZWZlcmVuY2UgYXJyYXkgYXJncyIpO2lmKGk8ZS5wb3N0LmFyZ3MubGVuZ3RoJiZlLnBvc3QuYXJnc1tpXS5jb3VudD4wKXRocm93IG5ldyBFcnJvcigiY3dpc2U6IHBvc3QoKSBibG9jayBtYXkgbm90IHJlZmVyZW5jZSBhcnJheSBhcmdzIil9ZWxzZSBpZigic2NhbGFyIj09PW8pZS5zY2FsYXJBcmdzLnB1c2goaSksZS5zaGltQXJncy5wdXNoKCJzY2FsYXIiK2kpO2Vsc2UgaWYoImluZGV4Ij09PW8pe2lmKGUuaW5kZXhBcmdzLnB1c2goaSksaTxlLnByZS5hcmdzLmxlbmd0aCYmZS5wcmUuYXJnc1tpXS5jb3VudD4wKXRocm93IG5ldyBFcnJvcigiY3dpc2U6IHByZSgpIGJsb2NrIG1heSBub3QgcmVmZXJlbmNlIGFycmF5IGluZGV4Iik7aWYoaTxlLmJvZHkuYXJncy5sZW5ndGgmJmUuYm9keS5hcmdzW2ldLmx2YWx1ZSl0aHJvdyBuZXcgRXJyb3IoImN3aXNlOiBib2R5KCkgYmxvY2sgbWF5IG5vdCB3cml0ZSB0byBhcnJheSBpbmRleCIpO2lmKGk8ZS5wb3N0LmFyZ3MubGVuZ3RoJiZlLnBvc3QuYXJnc1tpXS5jb3VudD4wKXRocm93IG5ldyBFcnJvcigiY3dpc2U6IHBvc3QoKSBibG9jayBtYXkgbm90IHJlZmVyZW5jZSBhcnJheSBpbmRleCIpfWVsc2UgaWYoInNoYXBlIj09PW8pe2lmKGUuc2hhcGVBcmdzLnB1c2goaSksaTxlLnByZS5hcmdzLmxlbmd0aCYmZS5wcmUuYXJnc1tpXS5sdmFsdWUpdGhyb3cgbmV3IEVycm9yKCJjd2lzZTogcHJlKCkgYmxvY2sgbWF5IG5vdCB3cml0ZSB0byBhcnJheSBzaGFwZSIpO2lmKGk8ZS5ib2R5LmFyZ3MubGVuZ3RoJiZlLmJvZHkuYXJnc1tpXS5sdmFsdWUpdGhyb3cgbmV3IEVycm9yKCJjd2lzZTogYm9keSgpIGJsb2NrIG1heSBub3Qgd3JpdGUgdG8gYXJyYXkgc2hhcGUiKTtpZihpPGUucG9zdC5hcmdzLmxlbmd0aCYmZS5wb3N0LmFyZ3NbaV0ubHZhbHVlKXRocm93IG5ldyBFcnJvcigiY3dpc2U6IHBvc3QoKSBibG9jayBtYXkgbm90IHdyaXRlIHRvIGFycmF5IHNoYXBlIil9ZWxzZXtpZigib2JqZWN0IiE9dHlwZW9mIG98fCFvLm9mZnNldCl0aHJvdyBuZXcgRXJyb3IoImN3aXNlOiBVbmtub3duIGFyZ3VtZW50IHR5cGUgIityW2ldKTtlLmFyZ1R5cGVzW2ldPSJvZmZzZXQiLGUub2Zmc2V0QXJncy5wdXNoKHthcnJheTpvLmFycmF5LG9mZnNldDpvLm9mZnNldH0pLGUub2Zmc2V0QXJnSW5kZXgucHVzaChpKX19aWYoZS5hcnJheUFyZ3MubGVuZ3RoPD0wKXRocm93IG5ldyBFcnJvcigiY3dpc2U6IE5vIGFycmF5IGFyZ3VtZW50cyBzcGVjaWZpZWQiKTtpZihlLnByZS5hcmdzLmxlbmd0aD5yLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImN3aXNlOiBUb28gbWFueSBhcmd1bWVudHMgaW4gcHJlKCkgYmxvY2siKTtpZihlLmJvZHkuYXJncy5sZW5ndGg+ci5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJjd2lzZTogVG9vIG1hbnkgYXJndW1lbnRzIGluIGJvZHkoKSBibG9jayIpO2lmKGUucG9zdC5hcmdzLmxlbmd0aD5yLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImN3aXNlOiBUb28gbWFueSBhcmd1bWVudHMgaW4gcG9zdCgpIGJsb2NrIik7cmV0dXJuIGUuZGVidWc9ISF0LnByaW50Q29kZXx8ISF0LmRlYnVnLGUuZnVuY05hbWU9dC5mdW5jTmFtZXx8ImN3aXNlIixlLmJsb2NrU2l6ZT10LmJsb2NrU2l6ZXx8NjQsbihlKX19LHsiLi9saWIvdGh1bmsuanMiOjE1MH1dLDE0OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJ1bmlxIik7ZnVuY3Rpb24gYSh0LGUscil7dmFyIG4sYSxpPXQubGVuZ3RoLG89ZS5hcnJheUFyZ3MubGVuZ3RoLHM9ZS5pbmRleEFyZ3MubGVuZ3RoPjAsbD1bXSxjPVtdLHU9MCxoPTA7Zm9yKG49MDtuPGk7KytuKWMucHVzaChbImkiLG4sIj0wIl0uam9pbigiIikpO2ZvcihhPTA7YTxvOysrYSlmb3Iobj0wO248aTsrK24paD11LHU9dFtuXSwwPT09bj9jLnB1c2goWyJkIixhLCJzIixuLCI9dCIsYSwicCIsdV0uam9pbigiIikpOmMucHVzaChbImQiLGEsInMiLG4sIj0odCIsYSwicCIsdSwiLXMiLGgsIip0IixhLCJwIixoLCIpIl0uam9pbigiIikpO2ZvcihjLmxlbmd0aD4wJiZsLnB1c2goInZhciAiK2Muam9pbigiLCIpKSxuPWktMTtuPj0wOy0tbil1PXRbbl0sbC5wdXNoKFsiZm9yKGkiLG4sIj0wO2kiLG4sIjxzIix1LCI7KytpIixuLCIpeyJdLmpvaW4oIiIpKTtmb3IobC5wdXNoKHIpLG49MDtuPGk7KytuKXtmb3IoaD11LHU9dFtuXSxhPTA7YTxvOysrYSlsLnB1c2goWyJwIixhLCIrPWQiLGEsInMiLG5dLmpvaW4oIiIpKTtzJiYobj4wJiZsLnB1c2goWyJpbmRleFsiLGgsIl0tPXMiLGhdLmpvaW4oIiIpKSxsLnB1c2goWyIrK2luZGV4WyIsdSwiXSJdLmpvaW4oIiIpKSksbC5wdXNoKCJ9Iil9cmV0dXJuIGwuam9pbigiXG4iKX1mdW5jdGlvbiBpKHQsZSxyKXtmb3IodmFyIG49dC5ib2R5LGE9W10saT1bXSxvPTA7bzx0LmFyZ3MubGVuZ3RoOysrbyl7dmFyIHM9dC5hcmdzW29dO2lmKCEocy5jb3VudDw9MCkpe3ZhciBsPW5ldyBSZWdFeHAocy5uYW1lLCJnIiksYz0iIix1PWUuYXJyYXlBcmdzLmluZGV4T2Yobyk7c3dpdGNoKGUuYXJnVHlwZXNbb10pe2Nhc2Uib2Zmc2V0Ijp2YXIgaD1lLm9mZnNldEFyZ0luZGV4LmluZGV4T2Yobyk7dT1lLm9mZnNldEFyZ3NbaF0uYXJyYXksYz0iK3EiK2g7Y2FzZSJhcnJheSI6Yz0icCIrdStjO3ZhciBmPSJsIitvLHA9ImEiK3U7aWYoMD09PWUuYXJyYXlCbG9ja0luZGljZXNbdV0pMT09PXMuY291bnQ/ImdlbmVyaWMiPT09clt1XT9zLmx2YWx1ZT8oYS5wdXNoKFsidmFyICIsZiwiPSIscCwiLmdldCgiLGMsIikiXS5qb2luKCIiKSksbj1uLnJlcGxhY2UobCxmKSxpLnB1c2goW3AsIi5zZXQoIixjLCIsIixmLCIpIl0uam9pbigiIikpKTpuPW4ucmVwbGFjZShsLFtwLCIuZ2V0KCIsYywiKSJdLmpvaW4oIiIpKTpuPW4ucmVwbGFjZShsLFtwLCJbIixjLCJdIl0uam9pbigiIikpOiJnZW5lcmljIj09PXJbdV0/KGEucHVzaChbInZhciAiLGYsIj0iLHAsIi5nZXQoIixjLCIpIl0uam9pbigiIikpLG49bi5yZXBsYWNlKGwsZikscy5sdmFsdWUmJmkucHVzaChbcCwiLnNldCgiLGMsIiwiLGYsIikiXS5qb2luKCIiKSkpOihhLnB1c2goWyJ2YXIgIixmLCI9IixwLCJbIixjLCJdIl0uam9pbigiIikpLG49bi5yZXBsYWNlKGwsZikscy5sdmFsdWUmJmkucHVzaChbcCwiWyIsYywiXT0iLGZdLmpvaW4oIiIpKSk7ZWxzZXtmb3IodmFyIGQ9W3MubmFtZV0sZz1bY10sdj0wO3Y8TWF0aC5hYnMoZS5hcnJheUJsb2NrSW5kaWNlc1t1XSk7disrKWQucHVzaCgiXFxzKlxcWyhbXlxcXV0rKVxcXSIpLGcucHVzaCgiJCIrKHYrMSkrIip0Iit1KyJiIit2KTtpZihsPW5ldyBSZWdFeHAoZC5qb2luKCIiKSwiZyIpLGM9Zy5qb2luKCIrIiksImdlbmVyaWMiPT09clt1XSl0aHJvdyBuZXcgRXJyb3IoImN3aXNlOiBHZW5lcmljIGFycmF5cyBub3Qgc3VwcG9ydGVkIGluIGNvbWJpbmF0aW9uIHdpdGggYmxvY2tzISIpO249bi5yZXBsYWNlKGwsW3AsIlsiLGMsIl0iXS5qb2luKCIiKSl9YnJlYWs7Y2FzZSJzY2FsYXIiOm49bi5yZXBsYWNlKGwsIlkiK2Uuc2NhbGFyQXJncy5pbmRleE9mKG8pKTticmVhaztjYXNlImluZGV4IjpuPW4ucmVwbGFjZShsLCJpbmRleCIpO2JyZWFrO2Nhc2Uic2hhcGUiOm49bi5yZXBsYWNlKGwsInNoYXBlIil9fX1yZXR1cm5bYS5qb2luKCJcbiIpLG4saS5qb2luKCJcbiIpXS5qb2luKCJcbiIpLnRyaW0oKX1mdW5jdGlvbiBvKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodC5sZW5ndGgpLHI9ITAsbj0wO248dC5sZW5ndGg7KytuKXt2YXIgYT10W25dLGk9YS5tYXRjaCgvXGQrLyk7aT1pP2lbMF06IiIsMD09PWEuY2hhckF0KDApP2Vbbl09InUiK2EuY2hhckF0KDEpK2k6ZVtuXT1hLmNoYXJBdCgwKStpLG4+MCYmKHI9ciYmZVtuXT09PWVbbi0xXSl9cmV0dXJuIHI/ZVswXTplLmpvaW4oIiIpfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1lWzFdLmxlbmd0aC1NYXRoLmFicyh0LmFycmF5QmxvY2tJbmRpY2VzWzBdKXwwLHM9bmV3IEFycmF5KHQuYXJyYXlBcmdzLmxlbmd0aCksbD1uZXcgQXJyYXkodC5hcnJheUFyZ3MubGVuZ3RoKSxjPTA7Yzx0LmFycmF5QXJncy5sZW5ndGg7KytjKWxbY109ZVsyKmNdLHNbY109ZVsyKmMrMV07dmFyIHU9W10saD1bXSxmPVtdLHA9W10sZD1bXTtmb3IoYz0wO2M8dC5hcnJheUFyZ3MubGVuZ3RoOysrYyl7dC5hcnJheUJsb2NrSW5kaWNlc1tjXTwwPyhmLnB1c2goMCkscC5wdXNoKHIpLHUucHVzaChyKSxoLnB1c2gocit0LmFycmF5QmxvY2tJbmRpY2VzW2NdKSk6KGYucHVzaCh0LmFycmF5QmxvY2tJbmRpY2VzW2NdKSxwLnB1c2godC5hcnJheUJsb2NrSW5kaWNlc1tjXStyKSx1LnB1c2goMCksaC5wdXNoKHQuYXJyYXlCbG9ja0luZGljZXNbY10pKTtmb3IodmFyIGc9W10sdj0wO3Y8c1tjXS5sZW5ndGg7disrKWZbY108PXNbY11bdl0mJnNbY11bdl08cFtjXSYmZy5wdXNoKHNbY11bdl0tZltjXSk7ZC5wdXNoKGcpfXZhciBtPVsiU1MiXSx5PVsiJ3VzZSBzdHJpY3QnIl0seD1bXTtmb3Iodj0wO3Y8cjsrK3YpeC5wdXNoKFsicyIsdiwiPVNTWyIsdiwiXSJdLmpvaW4oIiIpKTtmb3IoYz0wO2M8dC5hcnJheUFyZ3MubGVuZ3RoOysrYyl7Zm9yKG0ucHVzaCgiYSIrYyksbS5wdXNoKCJ0IitjKSxtLnB1c2goInAiK2MpLHY9MDt2PHI7Kyt2KXgucHVzaChbInQiLGMsInAiLHYsIj10IixjLCJbIixmW2NdK3YsIl0iXS5qb2luKCIiKSk7Zm9yKHY9MDt2PE1hdGguYWJzKHQuYXJyYXlCbG9ja0luZGljZXNbY10pOysrdil4LnB1c2goWyJ0IixjLCJiIix2LCI9dCIsYywiWyIsdVtjXSt2LCJdIl0uam9pbigiIikpfWZvcihjPTA7Yzx0LnNjYWxhckFyZ3MubGVuZ3RoOysrYyltLnB1c2goIlkiK2MpO2lmKHQuc2hhcGVBcmdzLmxlbmd0aD4wJiZ4LnB1c2goInNoYXBlPVNTLnNsaWNlKDApIiksdC5pbmRleEFyZ3MubGVuZ3RoPjApe3ZhciBiPW5ldyBBcnJheShyKTtmb3IoYz0wO2M8cjsrK2MpYltjXT0iMCI7eC5wdXNoKFsiaW5kZXg9WyIsYi5qb2luKCIsIiksIl0iXS5qb2luKCIiKSl9Zm9yKGM9MDtjPHQub2Zmc2V0QXJncy5sZW5ndGg7KytjKXt2YXIgXz10Lm9mZnNldEFyZ3NbY10sdz1bXTtmb3Iodj0wO3Y8Xy5vZmZzZXQubGVuZ3RoOysrdikwIT09Xy5vZmZzZXRbdl0mJigxPT09Xy5vZmZzZXRbdl0/dy5wdXNoKFsidCIsXy5hcnJheSwicCIsdl0uam9pbigiIikpOncucHVzaChbXy5vZmZzZXRbdl0sIip0IixfLmFycmF5LCJwIix2XS5qb2luKCIiKSkpOzA9PT13Lmxlbmd0aD94LnB1c2goInEiK2MrIj0wIik6eC5wdXNoKFsicSIsYywiPSIsdy5qb2luKCIrIildLmpvaW4oIiIpKX12YXIgaz1uKFtdLmNvbmNhdCh0LnByZS50aGlzVmFycykuY29uY2F0KHQuYm9keS50aGlzVmFycykuY29uY2F0KHQucG9zdC50aGlzVmFycykpO2ZvcigoeD14LmNvbmNhdChrKSkubGVuZ3RoPjAmJnkucHVzaCgidmFyICIreC5qb2luKCIsIikpLGM9MDtjPHQuYXJyYXlBcmdzLmxlbmd0aDsrK2MpeS5wdXNoKCJwIitjKyJ8PTAiKTt0LnByZS5ib2R5Lmxlbmd0aD4zJiZ5LnB1c2goaSh0LnByZSx0LGwpKTt2YXIgVD1pKHQuYm9keSx0LGwpLE09ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj10WzBdLmxlbmd0aDtlPHI7KXtmb3IodmFyIG49MTtuPHQubGVuZ3RoOysrbilpZih0W25dW2VdIT09dFswXVtlXSlyZXR1cm4gZTsrK2V9cmV0dXJuIGV9KGQpO008cj95LnB1c2goZnVuY3Rpb24odCxlLHIsbil7Zm9yKHZhciBpPWUubGVuZ3RoLG89ci5hcnJheUFyZ3MubGVuZ3RoLHM9ci5ibG9ja1NpemUsbD1yLmluZGV4QXJncy5sZW5ndGg+MCxjPVtdLHU9MDt1PG87Kyt1KWMucHVzaChbInZhciBvZmZzZXQiLHUsIj1wIix1XS5qb2luKCIiKSk7Zm9yKHU9dDt1PGk7Kyt1KWMucHVzaChbImZvcih2YXIgaiIrdSsiPVNTWyIsZVt1XSwiXXwwO2oiLHUsIj4wOyl7Il0uam9pbigiIikpLGMucHVzaChbImlmKGoiLHUsIjwiLHMsIil7Il0uam9pbigiIikpLGMucHVzaChbInMiLGVbdV0sIj1qIix1XS5qb2luKCIiKSksYy5wdXNoKFsiaiIsdSwiPTAiXS5qb2luKCIiKSksYy5wdXNoKFsifWVsc2V7cyIsZVt1XSwiPSIsc10uam9pbigiIikpLGMucHVzaChbImoiLHUsIi09IixzLCJ9Il0uam9pbigiIikpLGwmJmMucHVzaChbImluZGV4WyIsZVt1XSwiXT1qIix1XS5qb2luKCIiKSk7Zm9yKHU9MDt1PG87Kyt1KXtmb3IodmFyIGg9WyJvZmZzZXQiK3VdLGY9dDtmPGk7KytmKWgucHVzaChbImoiLGYsIip0Iix1LCJwIixlW2ZdXS5qb2luKCIiKSk7Yy5wdXNoKFsicCIsdSwiPSgiLGguam9pbigiKyIpLCIpIl0uam9pbigiIikpfWZvcihjLnB1c2goYShlLHIsbikpLHU9dDt1PGk7Kyt1KWMucHVzaCgifSIpO3JldHVybiBjLmpvaW4oIlxuIil9KE0sZFswXSx0LFQpKTp5LnB1c2goYShkWzBdLHQsVCkpLHQucG9zdC5ib2R5Lmxlbmd0aD4zJiZ5LnB1c2goaSh0LnBvc3QsdCxsKSksdC5kZWJ1ZyYmY29uc29sZS5sb2coIi0tLS0tR2VuZXJhdGVkIGN3aXNlIHJvdXRpbmUgZm9yICIsZSwiOlxuIit5LmpvaW4oIlxuIikrIlxuLS0tLS0tLS0tLSIpO3ZhciBBPVt0LmZ1bmNOYW1lfHwidW5uYW1lZCIsIl9jd2lzZV9sb29wXyIsc1swXS5qb2luKCJzIiksIm0iLE0sbyhsKV0uam9pbigiIik7cmV0dXJuIG5ldyBGdW5jdGlvbihbImZ1bmN0aW9uICIsQSwiKCIsbS5qb2luKCIsIiksIil7Iix5LmpvaW4oIlxuIiksIn0gcmV0dXJuICIsQV0uam9pbigiIikpKCl9fSx7dW5pcTo1NDZ9XSwxNTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9jb21waWxlLmpzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPVsiJ3VzZSBzdHJpY3QnIiwidmFyIENBQ0hFRD17fSJdLHI9W10sYT10LmZ1bmNOYW1lKyJfY3dpc2VfdGh1bmsiO2UucHVzaChbInJldHVybiBmdW5jdGlvbiAiLGEsIigiLHQuc2hpbUFyZ3Muam9pbigiLCIpLCIpeyJdLmpvaW4oIiIpKTtmb3IodmFyIGk9W10sbz1bXSxzPVtbImFycmF5Iix0LmFycmF5QXJnc1swXSwiLnNoYXBlLnNsaWNlKCIsTWF0aC5tYXgoMCx0LmFycmF5QmxvY2tJbmRpY2VzWzBdKSx0LmFycmF5QmxvY2tJbmRpY2VzWzBdPDA/IiwiK3QuYXJyYXlCbG9ja0luZGljZXNbMF0rIikiOiIpIl0uam9pbigiIildLGw9W10sYz1bXSx1PTA7dTx0LmFycmF5QXJncy5sZW5ndGg7Kyt1KXt2YXIgaD10LmFycmF5QXJnc1t1XTtyLnB1c2goWyJ0IixoLCI9YXJyYXkiLGgsIi5kdHlwZSwiLCJyIixoLCI9YXJyYXkiLGgsIi5vcmRlciJdLmpvaW4oIiIpKSxpLnB1c2goInQiK2gpLGkucHVzaCgiciIraCksby5wdXNoKCJ0IitoKSxvLnB1c2goInIiK2grIi5qb2luKCkiKSxzLnB1c2goImFycmF5IitoKyIuZGF0YSIpLHMucHVzaCgiYXJyYXkiK2grIi5zdHJpZGUiKSxzLnB1c2goImFycmF5IitoKyIub2Zmc2V0fDAiKSx1PjAmJihsLnB1c2goImFycmF5Iit0LmFycmF5QXJnc1swXSsiLnNoYXBlLmxlbmd0aD09PWFycmF5IitoKyIuc2hhcGUubGVuZ3RoKyIrKE1hdGguYWJzKHQuYXJyYXlCbG9ja0luZGljZXNbMF0pLU1hdGguYWJzKHQuYXJyYXlCbG9ja0luZGljZXNbdV0pKSksYy5wdXNoKCJhcnJheSIrdC5hcnJheUFyZ3NbMF0rIi5zaGFwZVtzaGFwZUluZGV4KyIrTWF0aC5tYXgoMCx0LmFycmF5QmxvY2tJbmRpY2VzWzBdKSsiXT09PWFycmF5IitoKyIuc2hhcGVbc2hhcGVJbmRleCsiK01hdGgubWF4KDAsdC5hcnJheUJsb2NrSW5kaWNlc1t1XSkrIl0iKSl9Zm9yKHQuYXJyYXlBcmdzLmxlbmd0aD4xJiYoZS5wdXNoKCJpZiAoISgiK2wuam9pbigiICYmICIpKyIpKSB0aHJvdyBuZXcgRXJyb3IoJ2N3aXNlOiBBcnJheXMgZG8gbm90IGFsbCBoYXZlIHRoZSBzYW1lIGRpbWVuc2lvbmFsaXR5IScpIiksZS5wdXNoKCJmb3IodmFyIHNoYXBlSW5kZXg9YXJyYXkiK3QuYXJyYXlBcmdzWzBdKyIuc2hhcGUubGVuZ3RoLSIrTWF0aC5hYnModC5hcnJheUJsb2NrSW5kaWNlc1swXSkrIjsgc2hhcGVJbmRleC0tXHgzZTA7KSB7IiksZS5wdXNoKCJpZiAoISgiK2Muam9pbigiICYmICIpKyIpKSB0aHJvdyBuZXcgRXJyb3IoJ2N3aXNlOiBBcnJheXMgZG8gbm90IGFsbCBoYXZlIHRoZSBzYW1lIHNoYXBlIScpIiksZS5wdXNoKCJ9IikpLHU9MDt1PHQuc2NhbGFyQXJncy5sZW5ndGg7Kyt1KXMucHVzaCgic2NhbGFyIit0LnNjYWxhckFyZ3NbdV0pO3JldHVybiByLnB1c2goWyJ0eXBlPVsiLG8uam9pbigiLCIpLCJdLmpvaW4oKSJdLmpvaW4oIiIpKSxyLnB1c2goInByb2M9Q0FDSEVEW3R5cGVdIiksZS5wdXNoKCJ2YXIgIityLmpvaW4oIiwiKSksZS5wdXNoKFsiaWYoIXByb2MpeyIsIkNBQ0hFRFt0eXBlXT1wcm9jPWNvbXBpbGUoWyIsaS5qb2luKCIsIiksIl0pfSIsInJldHVybiBwcm9jKCIscy5qb2luKCIsIiksIil9Il0uam9pbigiIikpLHQuZGVidWcmJmNvbnNvbGUubG9nKCItLS0tLUdlbmVyYXRlZCB0aHVuazpcbiIrZS5qb2luKCJcbiIpKyJcbi0tLS0tLS0tLS0iKSxuZXcgRnVuY3Rpb24oImNvbXBpbGUiLGUuam9pbigiXG4iKSkobi5iaW5kKHZvaWQgMCx0KSl9fSx7Ii4vY29tcGlsZS5qcyI6MTQ5fV0sMTUxOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXQoImN3aXNlLWNvbXBpbGVyIil9LHsiY3dpc2UtY29tcGlsZXIiOjE0OH1dLDE1MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixhPXQoImVzNS1leHQvb2JqZWN0L2NvcHkiKSxpPXQoImVzNS1leHQvb2JqZWN0L25vcm1hbGl6ZS1vcHRpb25zIiksbz10KCJlczUtZXh0L29iamVjdC92YWxpZC1jYWxsYWJsZSIpLHM9dCgiZXM1LWV4dC9vYmplY3QvbWFwIiksbD10KCJlczUtZXh0L29iamVjdC92YWxpZC1jYWxsYWJsZSIpLGM9dCgiZXM1LWV4dC9vYmplY3QvdmFsaWQtdmFsdWUiKSx1PUZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLGg9T2JqZWN0LmRlZmluZVByb3BlcnR5LGY9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtuPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpPWMoZSkmJmwoZS52YWx1ZSk7cmV0dXJuIGRlbGV0ZShuPWEoZSkpLndyaXRhYmxlLGRlbGV0ZSBuLnZhbHVlLG4uZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIXIub3ZlcndyaXRlRGVmaW5pdGlvbiYmZi5jYWxsKHRoaXMsdCk/aTooZS52YWx1ZT11LmNhbGwoaSxyLnJlc29sdmVDb250ZXh0P3IucmVzb2x2ZUNvbnRleHQodGhpcyk6dGhpcyksaCh0aGlzLHQsZSksdGhpc1t0XSl9LG59LGUuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1pKGFyZ3VtZW50c1sxXSk7cmV0dXJuIG51bGwhPWUucmVzb2x2ZUNvbnRleHQmJm8oZS5yZXNvbHZlQ29udGV4dCkscyh0LGZ1bmN0aW9uKHQscil7cmV0dXJuIG4ocix0LGUpfSl9fSx7ImVzNS1leHQvb2JqZWN0L2NvcHkiOjE5MiwiZXM1LWV4dC9vYmplY3QvbWFwIjoyMDEsImVzNS1leHQvb2JqZWN0L25vcm1hbGl6ZS1vcHRpb25zIjoyMDIsImVzNS1leHQvb2JqZWN0L3ZhbGlkLWNhbGxhYmxlIjoyMDYsImVzNS1leHQvb2JqZWN0L3ZhbGlkLXZhbHVlIjoyMDh9XSwxNTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZXM1LWV4dC9vYmplY3QvYXNzaWduIiksYT10KCJlczUtZXh0L29iamVjdC9ub3JtYWxpemUtb3B0aW9ucyIpLGk9dCgiZXM1LWV4dC9vYmplY3QvaXMtY2FsbGFibGUiKSxvPXQoImVzNS1leHQvc3RyaW5nLyMvY29udGFpbnMiKTsoZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsaSxzLGwsYztyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyfHwic3RyaW5nIiE9dHlwZW9mIHQ/KGw9ZSxlPXQsdD1udWxsKTpsPWFyZ3VtZW50c1syXSxudWxsPT10PyhyPXM9ITAsaT0hMSk6KHI9by5jYWxsKHQsImMiKSxpPW8uY2FsbCh0LCJlIikscz1vLmNhbGwodCwidyIpKSxjPXt2YWx1ZTplLGNvbmZpZ3VyYWJsZTpyLGVudW1lcmFibGU6aSx3cml0YWJsZTpzfSxsP24oYShsKSxjKTpjfSkuZ3M9ZnVuY3Rpb24odCxlLHIpe3ZhciBzLGwsYyx1O3JldHVybiJzdHJpbmciIT10eXBlb2YgdD8oYz1yLHI9ZSxlPXQsdD1udWxsKTpjPWFyZ3VtZW50c1szXSxudWxsPT1lP2U9dm9pZCAwOmkoZSk/bnVsbD09cj9yPXZvaWQgMDppKHIpfHwoYz1yLHI9dm9pZCAwKTooYz1lLGU9cj12b2lkIDApLG51bGw9PXQ/KHM9ITAsbD0hMSk6KHM9by5jYWxsKHQsImMiKSxsPW8uY2FsbCh0LCJlIikpLHU9e2dldDplLHNldDpyLGNvbmZpZ3VyYWJsZTpzLGVudW1lcmFibGU6bH0sYz9uKGEoYyksdSk6dX19LHsiZXM1LWV4dC9vYmplY3QvYXNzaWduIjoxODksImVzNS1leHQvb2JqZWN0L2lzLWNhbGxhYmxlIjoxOTUsImVzNS1leHQvb2JqZWN0L25vcm1hbGl6ZS1vcHRpb25zIjoyMDIsImVzNS1leHQvc3RyaW5nLyMvY29udGFpbnMiOjIwOX1dLDE1NDpbZnVuY3Rpb24odCxlLHIpe3ZhciBuO249dGhpcyxmdW5jdGlvbih0KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZSh0LGUpe3JldHVybiB0PGU/LTE6dD5lPzE6dD49ZT8wOk5hTn1mdW5jdGlvbiByKHQpe3ZhciByO3JldHVybiAxPT09dC5sZW5ndGgmJihyPXQsdD1mdW5jdGlvbih0LG4pe3JldHVybiBlKHIodCksbil9KSx7bGVmdDpmdW5jdGlvbihlLHIsbixhKXtmb3IobnVsbD09biYmKG49MCksbnVsbD09YSYmKGE9ZS5sZW5ndGgpO248YTspe3ZhciBpPW4rYT4+PjE7dChlW2ldLHIpPDA/bj1pKzE6YT1pfXJldHVybiBufSxyaWdodDpmdW5jdGlvbihlLHIsbixhKXtmb3IobnVsbD09biYmKG49MCksbnVsbD09YSYmKGE9ZS5sZW5ndGgpO248YTspe3ZhciBpPW4rYT4+PjE7dChlW2ldLHIpPjA/YT1pOm49aSsxfXJldHVybiBufX19dmFyIG49cihlKSxhPW4ucmlnaHQsaT1uLmxlZnQ7ZnVuY3Rpb24gbyh0LGUpe3JldHVyblt0LGVdfWZ1bmN0aW9uIHModCl7cmV0dXJuIG51bGw9PT10P05hTjordH1mdW5jdGlvbiBsKHQsZSl7dmFyIHIsbixhPXQubGVuZ3RoLGk9MCxvPS0xLGw9MCxjPTA7aWYobnVsbD09ZSlmb3IoOysrbzxhOylpc05hTihyPXModFtvXSkpfHwoYys9KG49ci1sKSooci0obCs9bi8rK2kpKSk7ZWxzZSBmb3IoOysrbzxhOylpc05hTihyPXMoZSh0W29dLG8sdCkpKXx8KGMrPShuPXItbCkqKHItKGwrPW4vKytpKSkpO2lmKGk+MSlyZXR1cm4gYy8oaS0xKX1mdW5jdGlvbiBjKHQsZSl7dmFyIHI9bCh0LGUpO3JldHVybiByP01hdGguc3FydChyKTpyfWZ1bmN0aW9uIHUodCxlKXt2YXIgcixuLGEsaT10Lmxlbmd0aCxvPS0xO2lmKG51bGw9PWUpe2Zvcig7KytvPGk7KWlmKG51bGwhPShyPXRbb10pJiZyPj1yKWZvcihuPWE9cjsrK288aTspbnVsbCE9KHI9dFtvXSkmJihuPnImJihuPXIpLGE8ciYmKGE9cikpfWVsc2UgZm9yKDsrK288aTspaWYobnVsbCE9KHI9ZSh0W29dLG8sdCkpJiZyPj1yKWZvcihuPWE9cjsrK288aTspbnVsbCE9KHI9ZSh0W29dLG8sdCkpJiYobj5yJiYobj1yKSxhPHImJihhPXIpKTtyZXR1cm5bbixhXX12YXIgaD1BcnJheS5wcm90b3R5cGUsZj1oLnNsaWNlLHA9aC5tYXA7ZnVuY3Rpb24gZCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gZyh0KXtyZXR1cm4gdH1mdW5jdGlvbiB2KHQsZSxyKXt0PSt0LGU9K2Uscj0oYT1hcmd1bWVudHMubGVuZ3RoKTwyPyhlPXQsdD0wLDEpOmE8Mz8xOityO2Zvcih2YXIgbj0tMSxhPTB8TWF0aC5tYXgoMCxNYXRoLmNlaWwoKGUtdCkvcikpLGk9bmV3IEFycmF5KGEpOysrbjxhOylpW25dPXQrbipyO3JldHVybiBpfXZhciBtPU1hdGguc3FydCg1MCkseT1NYXRoLnNxcnQoMTApLHg9TWF0aC5zcXJ0KDIpO2Z1bmN0aW9uIGIodCxlLHIpe3ZhciBuPShlLXQpL01hdGgubWF4KDAsciksYT1NYXRoLmZsb29yKE1hdGgubG9nKG4pL01hdGguTE4xMCksaT1uL01hdGgucG93KDEwLGEpO3JldHVybiBhPj0wPyhpPj1tPzEwOmk+PXk/NTppPj14PzI6MSkqTWF0aC5wb3coMTAsYSk6LU1hdGgucG93KDEwLC1hKS8oaT49bT8xMDppPj15PzU6aT49eD8yOjEpfWZ1bmN0aW9uIF8odCxlLHIpe3ZhciBuPU1hdGguYWJzKGUtdCkvTWF0aC5tYXgoMCxyKSxhPU1hdGgucG93KDEwLE1hdGguZmxvb3IoTWF0aC5sb2cobikvTWF0aC5MTjEwKSksaT1uL2E7cmV0dXJuIGk+PW0/YSo9MTA6aT49eT9hKj01Omk+PXgmJihhKj0yKSxlPHQ/LWE6YX1mdW5jdGlvbiB3KHQpe3JldHVybiBNYXRoLmNlaWwoTWF0aC5sb2codC5sZW5ndGgpL01hdGguTE4yKSsxfWZ1bmN0aW9uIGsodCxlLHIpe2lmKG51bGw9PXImJihyPXMpLG49dC5sZW5ndGgpe2lmKChlPStlKTw9MHx8bjwyKXJldHVybityKHRbMF0sMCx0KTtpZihlPj0xKXJldHVybityKHRbbi0xXSxuLTEsdCk7dmFyIG4sYT0obi0xKSplLGk9TWF0aC5mbG9vcihhKSxvPStyKHRbaV0saSx0KTtyZXR1cm4gbysoK3IodFtpKzFdLGkrMSx0KS1vKSooYS1pKX19ZnVuY3Rpb24gVCh0LGUpe3ZhciByLG4sYT10Lmxlbmd0aCxpPS0xO2lmKG51bGw9PWUpe2Zvcig7KytpPGE7KWlmKG51bGwhPShyPXRbaV0pJiZyPj1yKWZvcihuPXI7KytpPGE7KW51bGwhPShyPXRbaV0pJiZuPnImJihuPXIpfWVsc2UgZm9yKDsrK2k8YTspaWYobnVsbCE9KHI9ZSh0W2ldLGksdCkpJiZyPj1yKWZvcihuPXI7KytpPGE7KW51bGwhPShyPWUodFtpXSxpLHQpKSYmbj5yJiYobj1yKTtyZXR1cm4gbn1mdW5jdGlvbiBNKHQpe2lmKCEoYT10Lmxlbmd0aCkpcmV0dXJuW107Zm9yKHZhciBlPS0xLHI9VCh0LEEpLG49bmV3IEFycmF5KHIpOysrZTxyOylmb3IodmFyIGEsaT0tMSxvPW5bZV09bmV3IEFycmF5KGEpOysraTxhOylvW2ldPXRbaV1bZV07cmV0dXJuIG59ZnVuY3Rpb24gQSh0KXtyZXR1cm4gdC5sZW5ndGh9dC5iaXNlY3Q9YSx0LmJpc2VjdFJpZ2h0PWEsdC5iaXNlY3RMZWZ0PWksdC5hc2NlbmRpbmc9ZSx0LmJpc2VjdG9yPXIsdC5jcm9zcz1mdW5jdGlvbih0LGUscil7dmFyIG4sYSxpLHMsbD10Lmxlbmd0aCxjPWUubGVuZ3RoLHU9bmV3IEFycmF5KGwqYyk7Zm9yKG51bGw9PXImJihyPW8pLG49aT0wO248bDsrK24pZm9yKHM9dFtuXSxhPTA7YTxjOysrYSwrK2kpdVtpXT1yKHMsZVthXSk7cmV0dXJuIHV9LHQuZGVzY2VuZGluZz1mdW5jdGlvbih0LGUpe3JldHVybiBlPHQ/LTE6ZT50PzE6ZT49dD8wOk5hTn0sdC5kZXZpYXRpb249Yyx0LmV4dGVudD11LHQuaGlzdG9ncmFtPWZ1bmN0aW9uKCl7dmFyIHQ9ZyxlPXUscj13O2Z1bmN0aW9uIG4obil7dmFyIGksbyxzPW4ubGVuZ3RoLGw9bmV3IEFycmF5KHMpO2ZvcihpPTA7aTxzOysraSlsW2ldPXQobltpXSxpLG4pO3ZhciBjPWUobCksdT1jWzBdLGg9Y1sxXSxmPXIobCx1LGgpO0FycmF5LmlzQXJyYXkoZil8fChmPV8odSxoLGYpLGY9dihNYXRoLmNlaWwodS9mKSpmLGgsZikpO2Zvcih2YXIgcD1mLmxlbmd0aDtmWzBdPD11OylmLnNoaWZ0KCksLS1wO2Zvcig7ZltwLTFdPmg7KWYucG9wKCksLS1wO3ZhciBkLGc9bmV3IEFycmF5KHArMSk7Zm9yKGk9MDtpPD1wOysraSkoZD1nW2ldPVtdKS54MD1pPjA/ZltpLTFdOnUsZC54MT1pPHA/ZltpXTpoO2ZvcihpPTA7aTxzOysraSl1PD0obz1sW2ldKSYmbzw9aCYmZ1thKGYsbywwLHApXS5wdXNoKG5baV0pO3JldHVybiBnfXJldHVybiBuLnZhbHVlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6ZChlKSxuKTp0fSxuLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmQoW3RbMF0sdFsxXV0pLG4pOmV9LG4udGhyZXNob2xkcz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkFycmF5LmlzQXJyYXkodCk/ZChmLmNhbGwodCkpOmQodCksbik6cn0sbn0sdC50aHJlc2hvbGRGcmVlZG1hbkRpYWNvbmlzPWZ1bmN0aW9uKHQscixuKXtyZXR1cm4gdD1wLmNhbGwodCxzKS5zb3J0KGUpLE1hdGguY2VpbCgobi1yKS8oMiooayh0LC43NSktayh0LC4yNSkpKk1hdGgucG93KHQubGVuZ3RoLC0xLzMpKSl9LHQudGhyZXNob2xkU2NvdHQ9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBNYXRoLmNlaWwoKHItZSkvKDMuNSpjKHQpKk1hdGgucG93KHQubGVuZ3RoLC0xLzMpKSl9LHQudGhyZXNob2xkU3R1cmdlcz13LHQubWF4PWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixhPXQubGVuZ3RoLGk9LTE7aWYobnVsbD09ZSl7Zm9yKDsrK2k8YTspaWYobnVsbCE9KHI9dFtpXSkmJnI+PXIpZm9yKG49cjsrK2k8YTspbnVsbCE9KHI9dFtpXSkmJnI+biYmKG49cil9ZWxzZSBmb3IoOysraTxhOylpZihudWxsIT0ocj1lKHRbaV0saSx0KSkmJnI+PXIpZm9yKG49cjsrK2k8YTspbnVsbCE9KHI9ZSh0W2ldLGksdCkpJiZyPm4mJihuPXIpO3JldHVybiBufSx0Lm1lYW49ZnVuY3Rpb24odCxlKXt2YXIgcixuPXQubGVuZ3RoLGE9bixpPS0xLG89MDtpZihudWxsPT1lKWZvcig7KytpPG47KWlzTmFOKHI9cyh0W2ldKSk/LS1hOm8rPXI7ZWxzZSBmb3IoOysraTxuOylpc05hTihyPXMoZSh0W2ldLGksdCkpKT8tLWE6bys9cjtpZihhKXJldHVybiBvL2F9LHQubWVkaWFuPWZ1bmN0aW9uKHQscil7dmFyIG4sYT10Lmxlbmd0aCxpPS0xLG89W107aWYobnVsbD09cilmb3IoOysraTxhOylpc05hTihuPXModFtpXSkpfHxvLnB1c2gobik7ZWxzZSBmb3IoOysraTxhOylpc05hTihuPXMocih0W2ldLGksdCkpKXx8by5wdXNoKG4pO3JldHVybiBrKG8uc29ydChlKSwuNSl9LHQubWVyZ2U9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLHIsbixhPXQubGVuZ3RoLGk9LTEsbz0wOysraTxhOylvKz10W2ldLmxlbmd0aDtmb3Iocj1uZXcgQXJyYXkobyk7LS1hPj0wOylmb3IoZT0obj10W2FdKS5sZW5ndGg7LS1lPj0wOylyWy0tb109bltlXTtyZXR1cm4gcn0sdC5taW49VCx0LnBhaXJzPWZ1bmN0aW9uKHQsZSl7bnVsbD09ZSYmKGU9byk7Zm9yKHZhciByPTAsbj10Lmxlbmd0aC0xLGE9dFswXSxpPW5ldyBBcnJheShuPDA/MDpuKTtyPG47KWlbcl09ZShhLGE9dFsrK3JdKTtyZXR1cm4gaX0sdC5wZXJtdXRlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPWUubGVuZ3RoLG49bmV3IEFycmF5KHIpO3ItLTspbltyXT10W2Vbcl1dO3JldHVybiBufSx0LnF1YW50aWxlPWssdC5yYW5nZT12LHQuc2Nhbj1mdW5jdGlvbih0LHIpe2lmKG49dC5sZW5ndGgpe3ZhciBuLGEsaT0wLG89MCxzPXRbb107Zm9yKG51bGw9PXImJihyPWUpOysraTxuOykocihhPXRbaV0scyk8MHx8MCE9PXIocyxzKSkmJihzPWEsbz1pKTtyZXR1cm4gMD09PXIocyxzKT9vOnZvaWQgMH19LHQuc2h1ZmZsZT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuLGEsaT0obnVsbD09cj90Lmxlbmd0aDpyKS0oZT1udWxsPT1lPzA6K2UpO2k7KWE9TWF0aC5yYW5kb20oKSppLS18MCxuPXRbaStlXSx0W2krZV09dFthK2VdLHRbYStlXT1uO3JldHVybiB0fSx0LnN1bT1mdW5jdGlvbih0LGUpe3ZhciByLG49dC5sZW5ndGgsYT0tMSxpPTA7aWYobnVsbD09ZSlmb3IoOysrYTxuOykocj0rdFthXSkmJihpKz1yKTtlbHNlIGZvcig7KythPG47KShyPStlKHRbYV0sYSx0KSkmJihpKz1yKTtyZXR1cm4gaX0sdC50aWNrcz1mdW5jdGlvbih0LGUscil7dmFyIG4sYSxpLG8scz0tMTtpZihyPStyLCh0PSt0KT09KGU9K2UpJiZyPjApcmV0dXJuW3RdO2lmKChuPWU8dCkmJihhPXQsdD1lLGU9YSksMD09PShvPWIodCxlLHIpKXx8IWlzRmluaXRlKG8pKXJldHVybltdO2lmKG8+MClmb3IodD1NYXRoLmNlaWwodC9vKSxlPU1hdGguZmxvb3IoZS9vKSxpPW5ldyBBcnJheShhPU1hdGguY2VpbChlLXQrMSkpOysrczxhOylpW3NdPSh0K3MpKm87ZWxzZSBmb3IodD1NYXRoLmZsb29yKHQqbyksZT1NYXRoLmNlaWwoZSpvKSxpPW5ldyBBcnJheShhPU1hdGguY2VpbCh0LWUrMSkpOysrczxhOylpW3NdPSh0LXMpL287cmV0dXJuIG4mJmkucmV2ZXJzZSgpLGl9LHQudGlja0luY3JlbWVudD1iLHQudGlja1N0ZXA9Xyx0LnRyYW5zcG9zZT1NLHQudmFyaWFuY2U9bCx0LnppcD1mdW5jdGlvbigpe3JldHVybiBNKGFyZ3VtZW50cyl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0oIm9iamVjdCI9PXR5cGVvZiByJiYidW5kZWZpbmVkIiE9dHlwZW9mIGU/cjpuLmQzPW4uZDN8fHt9KX0se31dLDE1NTpbZnVuY3Rpb24odCxlLHIpe3ZhciBuO249dGhpcyxmdW5jdGlvbih0KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZSgpe31mdW5jdGlvbiByKHQscil7dmFyIG49bmV3IGU7aWYodCBpbnN0YW5jZW9mIGUpdC5lYWNoKGZ1bmN0aW9uKHQsZSl7bi5zZXQoZSx0KX0pO2Vsc2UgaWYoQXJyYXkuaXNBcnJheSh0KSl7dmFyIGEsaT0tMSxvPXQubGVuZ3RoO2lmKG51bGw9PXIpZm9yKDsrK2k8bzspbi5zZXQoaSx0W2ldKTtlbHNlIGZvcig7KytpPG87KW4uc2V0KHIoYT10W2ldLGksdCksYSl9ZWxzZSBpZih0KWZvcih2YXIgcyBpbiB0KW4uc2V0KHMsdFtzXSk7cmV0dXJuIG59ZnVuY3Rpb24gbigpe3JldHVybnt9fWZ1bmN0aW9uIGEodCxlLHIpe3RbZV09cn1mdW5jdGlvbiBpKCl7cmV0dXJuIHIoKX1mdW5jdGlvbiBvKHQsZSxyKXt0LnNldChlLHIpfWZ1bmN0aW9uIHMoKXt9ZS5wcm90b3R5cGU9ci5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmUsaGFzOmZ1bmN0aW9uKHQpe3JldHVybiIkIit0IGluIHRoaXN9LGdldDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpc1siJCIrdF19LHNldDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzWyIkIit0XT1lLHRoaXN9LHJlbW92ZTpmdW5jdGlvbih0KXt2YXIgZT0iJCIrdDtyZXR1cm4gZSBpbiB0aGlzJiZkZWxldGUgdGhpc1tlXX0sY2xlYXI6ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcykiJCI9PT10WzBdJiZkZWxldGUgdGhpc1t0XX0sa2V5czpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzKSIkIj09PWVbMF0mJnQucHVzaChlLnNsaWNlKDEpKTtyZXR1cm4gdH0sdmFsdWVzOmZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMpIiQiPT09ZVswXSYmdC5wdXNoKHRoaXNbZV0pO3JldHVybiB0fSxlbnRyaWVzOmZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMpIiQiPT09ZVswXSYmdC5wdXNoKHtrZXk6ZS5zbGljZSgxKSx2YWx1ZTp0aGlzW2VdfSk7cmV0dXJuIHR9LHNpemU6ZnVuY3Rpb24oKXt2YXIgdD0wO2Zvcih2YXIgZSBpbiB0aGlzKSIkIj09PWVbMF0mJisrdDtyZXR1cm4gdH0sZW1wdHk6ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcylpZigiJCI9PT10WzBdKXJldHVybiExO3JldHVybiEwfSxlYWNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiB0aGlzKSIkIj09PWVbMF0mJnQodGhpc1tlXSxlLnNsaWNlKDEpLHRoaXMpfX07dmFyIGw9ci5wcm90b3R5cGU7ZnVuY3Rpb24gYyh0LGUpe3ZhciByPW5ldyBzO2lmKHQgaW5zdGFuY2VvZiBzKXQuZWFjaChmdW5jdGlvbih0KXtyLmFkZCh0KX0pO2Vsc2UgaWYodCl7dmFyIG49LTEsYT10Lmxlbmd0aDtpZihudWxsPT1lKWZvcig7KytuPGE7KXIuYWRkKHRbbl0pO2Vsc2UgZm9yKDsrK248YTspci5hZGQoZSh0W25dLG4sdCkpfXJldHVybiByfXMucHJvdG90eXBlPWMucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpzLGhhczpsLmhhcyxhZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbIiQiKyh0Kz0iIildPXQsdGhpc30scmVtb3ZlOmwucmVtb3ZlLGNsZWFyOmwuY2xlYXIsdmFsdWVzOmwua2V5cyxzaXplOmwuc2l6ZSxlbXB0eTpsLmVtcHR5LGVhY2g6bC5lYWNofSx0Lm5lc3Q9ZnVuY3Rpb24oKXt2YXIgdCxlLHMsbD1bXSxjPVtdO2Z1bmN0aW9uIHUobixhLGksbyl7aWYoYT49bC5sZW5ndGgpcmV0dXJuIG51bGwhPXQmJm4uc29ydCh0KSxudWxsIT1lP2Uobik6bjtmb3IodmFyIHMsYyxoLGY9LTEscD1uLmxlbmd0aCxkPWxbYSsrXSxnPXIoKSx2PWkoKTsrK2Y8cDspKGg9Zy5nZXQocz1kKGM9bltmXSkrIiIpKT9oLnB1c2goYyk6Zy5zZXQocyxbY10pO3JldHVybiBnLmVhY2goZnVuY3Rpb24odCxlKXtvKHYsZSx1KHQsYSxpLG8pKX0pLHZ9cmV0dXJuIHM9e29iamVjdDpmdW5jdGlvbih0KXtyZXR1cm4gdSh0LDAsbixhKX0sbWFwOmZ1bmN0aW9uKHQpe3JldHVybiB1KHQsMCxpLG8pfSxlbnRyaWVzOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbiB0KHIsbil7aWYoKytuPmwubGVuZ3RoKXJldHVybiByO3ZhciBhLGk9Y1tuLTFdO3JldHVybiBudWxsIT1lJiZuPj1sLmxlbmd0aD9hPXIuZW50cmllcygpOihhPVtdLHIuZWFjaChmdW5jdGlvbihlLHIpe2EucHVzaCh7a2V5OnIsdmFsdWVzOnQoZSxuKX0pfSkpLG51bGwhPWk/YS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGkodC5rZXksZS5rZXkpfSk6YX0odSh0LDAsaSxvKSwwKX0sa2V5OmZ1bmN0aW9uKHQpe3JldHVybiBsLnB1c2godCksc30sc29ydEtleXM6ZnVuY3Rpb24odCl7cmV0dXJuIGNbbC5sZW5ndGgtMV09dCxzfSxzb3J0VmFsdWVzOmZ1bmN0aW9uKGUpe3JldHVybiB0PWUsc30scm9sbHVwOmZ1bmN0aW9uKHQpe3JldHVybiBlPXQsc319fSx0LnNldD1jLHQubWFwPXIsdC5rZXlzPWZ1bmN0aW9uKHQpe3ZhciBlPVtdO2Zvcih2YXIgciBpbiB0KWUucHVzaChyKTtyZXR1cm4gZX0sdC52YWx1ZXM9ZnVuY3Rpb24odCl7dmFyIGU9W107Zm9yKHZhciByIGluIHQpZS5wdXNoKHRbcl0pO3JldHVybiBlfSx0LmVudHJpZXM9ZnVuY3Rpb24odCl7dmFyIGU9W107Zm9yKHZhciByIGluIHQpZS5wdXNoKHtrZXk6cix2YWx1ZTp0W3JdfSk7cmV0dXJuIGV9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0oIm9iamVjdCI9PXR5cGVvZiByJiYidW5kZWZpbmVkIiE9dHlwZW9mIGU/cjpuLmQzPW4uZDN8fHt9KX0se31dLDE1NjpbZnVuY3Rpb24odCxlLHIpe3ZhciBuO249dGhpcyxmdW5jdGlvbih0KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZSh0LGUscil7dC5wcm90b3R5cGU9ZS5wcm90b3R5cGU9cixyLmNvbnN0cnVjdG9yPXR9ZnVuY3Rpb24gcih0LGUpe3ZhciByPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUpO2Zvcih2YXIgbiBpbiBlKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBuKCl7fXZhciBhPSJcXHMqKFsrLV0/XFxkKylcXHMqIixpPSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KVxccyoiLG89IlxccyooWystXT9cXGQqXFwuP1xcZCsoPzpbZUVdWystXT9cXGQrKT8pJVxccyoiLHM9L14jKFswLTlhLWZdezMsOH0pJC8sbD1uZXcgUmVnRXhwKCJecmdiXFwoIitbYSxhLGFdKyJcXCkkIiksYz1uZXcgUmVnRXhwKCJecmdiXFwoIitbbyxvLG9dKyJcXCkkIiksdT1uZXcgUmVnRXhwKCJecmdiYVxcKCIrW2EsYSxhLGldKyJcXCkkIiksaD1uZXcgUmVnRXhwKCJecmdiYVxcKCIrW28sbyxvLGldKyJcXCkkIiksZj1uZXcgUmVnRXhwKCJeaHNsXFwoIitbaSxvLG9dKyJcXCkkIikscD1uZXcgUmVnRXhwKCJeaHNsYVxcKCIrW2ksbyxvLGldKyJcXCkkIiksZD17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtmdW5jdGlvbiBnKCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0SGV4KCl9ZnVuY3Rpb24gdigpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdFJnYigpfWZ1bmN0aW9uIG0odCl7dmFyIGUscjtyZXR1cm4gdD0odCsiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksKGU9cy5leGVjKHQpKT8ocj1lWzFdLmxlbmd0aCxlPXBhcnNlSW50KGVbMV0sMTYpLDY9PT1yP3koZSk6Mz09PXI/bmV3IHcoZT4+OCYxNXxlPj40JjI0MCxlPj40JjE1fDI0MCZlLCgxNSZlKTw8NHwxNSZlLDEpOjg9PT1yP25ldyB3KGU+PjI0JjI1NSxlPj4xNiYyNTUsZT4+OCYyNTUsKDI1NSZlKS8yNTUpOjQ9PT1yP25ldyB3KGU+PjEyJjE1fGU+PjgmMjQwLGU+PjgmMTV8ZT4+NCYyNDAsZT4+NCYxNXwyNDAmZSwoKDE1JmUpPDw0fDE1JmUpLzI1NSk6bnVsbCk6KGU9bC5leGVjKHQpKT9uZXcgdyhlWzFdLGVbMl0sZVszXSwxKTooZT1jLmV4ZWModCkpP25ldyB3KDI1NSplWzFdLzEwMCwyNTUqZVsyXS8xMDAsMjU1KmVbM10vMTAwLDEpOihlPXUuZXhlYyh0KSk/eChlWzFdLGVbMl0sZVszXSxlWzRdKTooZT1oLmV4ZWModCkpP3goMjU1KmVbMV0vMTAwLDI1NSplWzJdLzEwMCwyNTUqZVszXS8xMDAsZVs0XSk6KGU9Zi5leGVjKHQpKT9BKGVbMV0sZVsyXS8xMDAsZVszXS8xMDAsMSk6KGU9cC5leGVjKHQpKT9BKGVbMV0sZVsyXS8xMDAsZVszXS8xMDAsZVs0XSk6ZC5oYXNPd25Qcm9wZXJ0eSh0KT95KGRbdF0pOiJ0cmFuc3BhcmVudCI9PT10P25ldyB3KE5hTixOYU4sTmFOLDApOm51bGx9ZnVuY3Rpb24geSh0KXtyZXR1cm4gbmV3IHcodD4+MTYmMjU1LHQ+PjgmMjU1LDI1NSZ0LDEpfWZ1bmN0aW9uIHgodCxlLHIsbil7cmV0dXJuIG48PTAmJih0PWU9cj1OYU4pLG5ldyB3KHQsZSxyLG4pfWZ1bmN0aW9uIGIodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBufHwodD1tKHQpKSx0P25ldyB3KCh0PXQucmdiKCkpLnIsdC5nLHQuYix0Lm9wYWNpdHkpOm5ldyB3fWZ1bmN0aW9uIF8odCxlLHIsbil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP2IodCk6bmV3IHcodCxlLHIsbnVsbD09bj8xOm4pfWZ1bmN0aW9uIHcodCxlLHIsbil7dGhpcy5yPSt0LHRoaXMuZz0rZSx0aGlzLmI9K3IsdGhpcy5vcGFjaXR5PStufWZ1bmN0aW9uIGsoKXtyZXR1cm4iIyIrTSh0aGlzLnIpK00odGhpcy5nKStNKHRoaXMuYil9ZnVuY3Rpb24gVCgpe3ZhciB0PXRoaXMub3BhY2l0eTtyZXR1cm4oMT09PSh0PWlzTmFOKHQpPzE6TWF0aC5tYXgoMCxNYXRoLm1pbigxLHQpKSk/InJnYigiOiJyZ2JhKCIpK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5yKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmcpfHwwKSkrIiwgIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMuYil8fDApKSsoMT09PXQ/IikiOiIsICIrdCsiKSIpfWZ1bmN0aW9uIE0odCl7cmV0dXJuKCh0PU1hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodCl8fDApKSk8MTY/IjAiOiIiKSt0LnRvU3RyaW5nKDE2KX1mdW5jdGlvbiBBKHQsZSxyLG4pe3JldHVybiBuPD0wP3Q9ZT1yPU5hTjpyPD0wfHxyPj0xP3Q9ZT1OYU46ZTw9MCYmKHQ9TmFOKSxuZXcgTCh0LGUscixuKX1mdW5jdGlvbiBTKHQpe2lmKHQgaW5zdGFuY2VvZiBMKXJldHVybiBuZXcgTCh0LmgsdC5zLHQubCx0Lm9wYWNpdHkpO2lmKHQgaW5zdGFuY2VvZiBufHwodD1tKHQpKSwhdClyZXR1cm4gbmV3IEw7aWYodCBpbnN0YW5jZW9mIEwpcmV0dXJuIHQ7dmFyIGU9KHQ9dC5yZ2IoKSkuci8yNTUscj10LmcvMjU1LGE9dC5iLzI1NSxpPU1hdGgubWluKGUscixhKSxvPU1hdGgubWF4KGUscixhKSxzPU5hTixsPW8taSxjPShvK2kpLzI7cmV0dXJuIGw/KHM9ZT09PW8/KHItYSkvbCs2KihyPGEpOnI9PT1vPyhhLWUpL2wrMjooZS1yKS9sKzQsbC89YzwuNT9vK2k6Mi1vLWkscyo9NjApOmw9Yz4wJiZjPDE/MDpzLG5ldyBMKHMsbCxjLHQub3BhY2l0eSl9ZnVuY3Rpb24gRSh0LGUscixuKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/Uyh0KTpuZXcgTCh0LGUscixudWxsPT1uPzE6bil9ZnVuY3Rpb24gTCh0LGUscixuKXt0aGlzLmg9K3QsdGhpcy5zPStlLHRoaXMubD0rcix0aGlzLm9wYWNpdHk9K259ZnVuY3Rpb24gQyh0LGUscil7cmV0dXJuIDI1NSoodDw2MD9lKyhyLWUpKnQvNjA6dDwxODA/cjp0PDI0MD9lKyhyLWUpKigyNDAtdCkvNjA6ZSl9ZShuLG0se2NvcHk6ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IHRoaXMuY29uc3RydWN0b3IsdGhpcyx0KX0sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZ2IoKS5kaXNwbGF5YWJsZSgpfSxoZXg6Zyxmb3JtYXRIZXg6Zyxmb3JtYXRIc2w6ZnVuY3Rpb24oKXtyZXR1cm4gUyh0aGlzKS5mb3JtYXRIc2woKX0sZm9ybWF0UmdiOnYsdG9TdHJpbmc6dn0pLGUodyxfLHIobix7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD8xLy43Ok1hdGgucG93KDEvLjcsdCksbmV3IHcodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/Ljc6TWF0aC5wb3coLjcsdCksbmV3IHcodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuLS41PD10aGlzLnImJnRoaXMucjwyNTUuNSYmLS41PD10aGlzLmcmJnRoaXMuZzwyNTUuNSYmLS41PD10aGlzLmImJnRoaXMuYjwyNTUuNSYmMDw9dGhpcy5vcGFjaXR5JiZ0aGlzLm9wYWNpdHk8PTF9LGhleDprLGZvcm1hdEhleDprLGZvcm1hdFJnYjpULHRvU3RyaW5nOlR9KSksZShMLEUscihuLHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10PzEvLjc6TWF0aC5wb3coMS8uNyx0KSxuZXcgTCh0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10Py43Ok1hdGgucG93KC43LHQpLG5ldyBMKHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5oJTM2MCszNjAqKHRoaXMuaDwwKSxlPWlzTmFOKHQpfHxpc05hTih0aGlzLnMpPzA6dGhpcy5zLHI9dGhpcy5sLG49cisocjwuNT9yOjEtcikqZSxhPTIqci1uO3JldHVybiBuZXcgdyhDKHQ+PTI0MD90LTI0MDp0KzEyMCxhLG4pLEModCxhLG4pLEModDwxMjA/dCsyNDA6dC0xMjAsYSxuKSx0aGlzLm9wYWNpdHkpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybigwPD10aGlzLnMmJnRoaXMuczw9MXx8aXNOYU4odGhpcy5zKSkmJjA8PXRoaXMubCYmdGhpcy5sPD0xJiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0sZm9ybWF0SHNsOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcGFjaXR5O3JldHVybigxPT09KHQ9aXNOYU4odCk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsdCkpKT8iaHNsKCI6ImhzbGEoIikrKHRoaXMuaHx8MCkrIiwgIisxMDAqKHRoaXMuc3x8MCkrIiUsICIrMTAwKih0aGlzLmx8fDApKyIlIisoMT09PXQ/IikiOiIsICIrdCsiKSIpfX0pKTt2YXIgUD1NYXRoLlBJLzE4MCxPPTE4MC9NYXRoLlBJLHo9Ljk2NDIyLEk9MSxEPS44MjUyMSxSPTQvMjksRj02LzI5LEI9MypGKkYsTj1GKkYqRjtmdW5jdGlvbiBqKHQpe2lmKHQgaW5zdGFuY2VvZiBVKXJldHVybiBuZXcgVSh0LmwsdC5hLHQuYix0Lm9wYWNpdHkpO2lmKHQgaW5zdGFuY2VvZiBaKXJldHVybiBKKHQpO3QgaW5zdGFuY2VvZiB3fHwodD1iKHQpKTt2YXIgZSxyLG49WSh0LnIpLGE9WSh0LmcpLGk9WSh0LmIpLG89cSgoLjIyMjUwNDUqbisuNzE2ODc4NiphKy4wNjA2MTY5KmkpL0kpO3JldHVybiBuPT09YSYmYT09PWk/ZT1yPW86KGU9cSgoLjQzNjA3NDcqbisuMzg1MDY0OSphKy4xNDMwODA0KmkpL3opLHI9cSgoLjAxMzkzMjIqbisuMDk3MTA0NSphKy43MTQxNzMzKmkpL0QpKSxuZXcgVSgxMTYqby0xNiw1MDAqKGUtbyksMjAwKihvLXIpLHQub3BhY2l0eSl9ZnVuY3Rpb24gVih0LGUscixuKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/aih0KTpuZXcgVSh0LGUscixudWxsPT1uPzE6bil9ZnVuY3Rpb24gVSh0LGUscixuKXt0aGlzLmw9K3QsdGhpcy5hPStlLHRoaXMuYj0rcix0aGlzLm9wYWNpdHk9K259ZnVuY3Rpb24gcSh0KXtyZXR1cm4gdD5OP01hdGgucG93KHQsMS8zKTp0L0IrUn1mdW5jdGlvbiBIKHQpe3JldHVybiB0PkY/dCp0KnQ6QioodC1SKX1mdW5jdGlvbiBHKHQpe3JldHVybiAyNTUqKHQ8PS4wMDMxMzA4PzEyLjkyKnQ6MS4wNTUqTWF0aC5wb3codCwxLzIuNCktLjA1NSl9ZnVuY3Rpb24gWSh0KXtyZXR1cm4odC89MjU1KTw9LjA0MDQ1P3QvMTIuOTI6TWF0aC5wb3coKHQrLjA1NSkvMS4wNTUsMi40KX1mdW5jdGlvbiBXKHQpe2lmKHQgaW5zdGFuY2VvZiBaKXJldHVybiBuZXcgWih0LmgsdC5jLHQubCx0Lm9wYWNpdHkpO2lmKHQgaW5zdGFuY2VvZiBVfHwodD1qKHQpKSwwPT09dC5hJiYwPT09dC5iKXJldHVybiBuZXcgWihOYU4sMDx0LmwmJnQubDwxMDA/MDpOYU4sdC5sLHQub3BhY2l0eSk7dmFyIGU9TWF0aC5hdGFuMih0LmIsdC5hKSpPO3JldHVybiBuZXcgWihlPDA/ZSszNjA6ZSxNYXRoLnNxcnQodC5hKnQuYSt0LmIqdC5iKSx0LmwsdC5vcGFjaXR5KX1mdW5jdGlvbiBYKHQsZSxyLG4pe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9XKHQpOm5ldyBaKHQsZSxyLG51bGw9PW4/MTpuKX1mdW5jdGlvbiBaKHQsZSxyLG4pe3RoaXMuaD0rdCx0aGlzLmM9K2UsdGhpcy5sPStyLHRoaXMub3BhY2l0eT0rbn1mdW5jdGlvbiBKKHQpe2lmKGlzTmFOKHQuaCkpcmV0dXJuIG5ldyBVKHQubCwwLDAsdC5vcGFjaXR5KTt2YXIgZT10LmgqUDtyZXR1cm4gbmV3IFUodC5sLE1hdGguY29zKGUpKnQuYyxNYXRoLnNpbihlKSp0LmMsdC5vcGFjaXR5KX1lKFUsVixyKG4se2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgVSh0aGlzLmwrMTgqKG51bGw9PXQ/MTp0KSx0aGlzLmEsdGhpcy5iLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IFUodGhpcy5sLTE4KihudWxsPT10PzE6dCksdGhpcy5hLHRoaXMuYix0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD0odGhpcy5sKzE2KS8xMTYsZT1pc05hTih0aGlzLmEpP3Q6dCt0aGlzLmEvNTAwLHI9aXNOYU4odGhpcy5iKT90OnQtdGhpcy5iLzIwMDtyZXR1cm4gbmV3IHcoRygzLjEzMzg1NjEqKGU9eipIKGUpKS0xLjYxNjg2NjcqKHQ9SSpIKHQpKS0uNDkwNjE0Nioocj1EKkgocikpKSxHKC0uOTc4NzY4NCplKzEuOTE2MTQxNSp0Ky4wMzM0NTQqciksRyguMDcxOTQ1MyplLS4yMjg5OTE0KnQrMS40MDUyNDI3KnIpLHRoaXMub3BhY2l0eSl9fSkpLGUoWixYLHIobix7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBaKHRoaXMuaCx0aGlzLmMsdGhpcy5sKzE4KihudWxsPT10PzE6dCksdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgWih0aGlzLmgsdGhpcy5jLHRoaXMubC0xOCoobnVsbD09dD8xOnQpLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiBKKHRoaXMpLnJnYigpfX0pKTt2YXIgSz0tLjE0ODYxLFE9MS43ODI3NywkPS0uMjkyMjcsdHQ9LS45MDY0OSxldD0xLjk3Mjk0LHJ0PWV0KnR0LG50PWV0KlEsYXQ9USokLXR0Kks7ZnVuY3Rpb24gaXQodCxlLHIsbil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP2Z1bmN0aW9uKHQpe2lmKHQgaW5zdGFuY2VvZiBvdClyZXR1cm4gbmV3IG90KHQuaCx0LnMsdC5sLHQub3BhY2l0eSk7dCBpbnN0YW5jZW9mIHd8fCh0PWIodCkpO3ZhciBlPXQuci8yNTUscj10LmcvMjU1LG49dC5iLzI1NSxhPShhdCpuK3J0KmUtbnQqcikvKGF0K3J0LW50KSxpPW4tYSxvPShldCooci1hKS0kKmkpL3R0LHM9TWF0aC5zcXJ0KG8qbytpKmkpLyhldCphKigxLWEpKSxsPXM/TWF0aC5hdGFuMihvLGkpKk8tMTIwOk5hTjtyZXR1cm4gbmV3IG90KGw8MD9sKzM2MDpsLHMsYSx0Lm9wYWNpdHkpfSh0KTpuZXcgb3QodCxlLHIsbnVsbD09bj8xOm4pfWZ1bmN0aW9uIG90KHQsZSxyLG4pe3RoaXMuaD0rdCx0aGlzLnM9K2UsdGhpcy5sPStyLHRoaXMub3BhY2l0eT0rbn1lKG90LGl0LHIobix7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD8xLy43Ok1hdGgucG93KDEvLjcsdCksbmV3IG90KHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/Ljc6TWF0aC5wb3coLjcsdCksbmV3IG90KHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIHQ9aXNOYU4odGhpcy5oKT8wOih0aGlzLmgrMTIwKSpQLGU9K3RoaXMubCxyPWlzTmFOKHRoaXMucyk/MDp0aGlzLnMqZSooMS1lKSxuPU1hdGguY29zKHQpLGE9TWF0aC5zaW4odCk7cmV0dXJuIG5ldyB3KDI1NSooZStyKihLKm4rUSphKSksMjU1KihlK3IqKCQqbit0dCphKSksMjU1KihlK3IqKGV0Km4pKSx0aGlzLm9wYWNpdHkpfX0pKSx0LmNvbG9yPW0sdC5jdWJlaGVsaXg9aXQsdC5ncmF5PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBVKHQsMCwwLG51bGw9PWU/MTplKX0sdC5oY2w9WCx0LmhzbD1FLHQubGFiPVYsdC5sY2g9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP1codCk6bmV3IFoocixlLHQsbnVsbD09bj8xOm4pfSx0LnJnYj1fLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0oIm9iamVjdCI9PXR5cGVvZiByJiYidW5kZWZpbmVkIiE9dHlwZW9mIGU/cjoobj1ufHxzZWxmKS5kMz1uLmQzfHx7fSl9LHt9XSwxNTc6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbjtuPXRoaXMsZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiO3ZhciBlPXt2YWx1ZTpmdW5jdGlvbigpe319O2Z1bmN0aW9uIHIoKXtmb3IodmFyIHQsZT0wLHI9YXJndW1lbnRzLmxlbmd0aCxhPXt9O2U8cjsrK2Upe2lmKCEodD1hcmd1bWVudHNbZV0rIiIpfHx0IGluIGEpdGhyb3cgbmV3IEVycm9yKCJpbGxlZ2FsIHR5cGU6ICIrdCk7YVt0XT1bXX1yZXR1cm4gbmV3IG4oYSl9ZnVuY3Rpb24gbih0KXt0aGlzLl89dH1mdW5jdGlvbiBhKHQsZSl7Zm9yKHZhciByLG49MCxhPXQubGVuZ3RoO248YTsrK24paWYoKHI9dFtuXSkubmFtZT09PWUpcmV0dXJuIHIudmFsdWV9ZnVuY3Rpb24gaSh0LHIsbil7Zm9yKHZhciBhPTAsaT10Lmxlbmd0aDthPGk7KythKWlmKHRbYV0ubmFtZT09PXIpe3RbYV09ZSx0PXQuc2xpY2UoMCxhKS5jb25jYXQodC5zbGljZShhKzEpKTticmVha31yZXR1cm4gbnVsbCE9biYmdC5wdXNoKHtuYW1lOnIsdmFsdWU6bn0pLHR9bi5wcm90b3R5cGU9ci5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOm4sb246ZnVuY3Rpb24odCxlKXt2YXIgcixuLG89dGhpcy5fLHM9KG49bywodCsiIikudHJpbSgpLnNwbGl0KC9efFxzKy8pLm1hcChmdW5jdGlvbih0KXt2YXIgZT0iIixyPXQuaW5kZXhPZigiLiIpO2lmKHI+PTAmJihlPXQuc2xpY2UocisxKSx0PXQuc2xpY2UoMCxyKSksdCYmIW4uaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrdCk7cmV0dXJue3R5cGU6dCxuYW1lOmV9fSkpLGw9LTEsYz1zLmxlbmd0aDtpZighKGFyZ3VtZW50cy5sZW5ndGg8Mikpe2lmKG51bGwhPWUmJiJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBjYWxsYmFjazogIitlKTtmb3IoOysrbDxjOylpZihyPSh0PXNbbF0pLnR5cGUpb1tyXT1pKG9bcl0sdC5uYW1lLGUpO2Vsc2UgaWYobnVsbD09ZSlmb3IociBpbiBvKW9bcl09aShvW3JdLHQubmFtZSxudWxsKTtyZXR1cm4gdGhpc31mb3IoOysrbDxjOylpZigocj0odD1zW2xdKS50eXBlKSYmKHI9YShvW3JdLHQubmFtZSkpKXJldHVybiByfSxjb3B5OmZ1bmN0aW9uKCl7dmFyIHQ9e30sZT10aGlzLl87Zm9yKHZhciByIGluIGUpdFtyXT1lW3JdLnNsaWNlKCk7cmV0dXJuIG5ldyBuKHQpfSxjYWxsOmZ1bmN0aW9uKHQsZSl7aWYoKHI9YXJndW1lbnRzLmxlbmd0aC0yKT4wKWZvcih2YXIgcixuLGE9bmV3IEFycmF5KHIpLGk9MDtpPHI7KytpKWFbaV09YXJndW1lbnRzW2krMl07aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtmb3IoaT0wLHI9KG49dGhpcy5fW3RdKS5sZW5ndGg7aTxyOysraSluW2ldLnZhbHVlLmFwcGx5KGUsYSl9LGFwcGx5OmZ1bmN0aW9uKHQsZSxyKXtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO2Zvcih2YXIgbj10aGlzLl9bdF0sYT0wLGk9bi5sZW5ndGg7YTxpOysrYSluW2FdLnZhbHVlLmFwcGx5KGUscil9fSx0LmRpc3BhdGNoPXIsT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSgib2JqZWN0Ij09dHlwZW9mIHImJiJ1bmRlZmluZWQiIT10eXBlb2YgZT9yOm4uZDM9bi5kM3x8e30pfSx7fV0sMTU4OltmdW5jdGlvbih0LGUscil7dmFyIG4sYTtuPXRoaXMsYT1mdW5jdGlvbih0LGUscixuLGEpeyJ1c2Ugc3RyaWN0Ijt2YXIgaT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19LG89ZnVuY3Rpb24oKXtyZXR1cm4gMWUtNiooTWF0aC5yYW5kb20oKS0uNSl9O2Z1bmN0aW9uIHModCl7cmV0dXJuIHQueCt0LnZ4fWZ1bmN0aW9uIGwodCl7cmV0dXJuIHQueSt0LnZ5fWZ1bmN0aW9uIGModCl7cmV0dXJuIHQuaW5kZXh9ZnVuY3Rpb24gdSh0LGUpe3ZhciByPXQuZ2V0KGUpO2lmKCFyKXRocm93IG5ldyBFcnJvcigibWlzc2luZzogIitlKTtyZXR1cm4gcn1mdW5jdGlvbiBoKHQpe3JldHVybiB0Lnh9ZnVuY3Rpb24gZih0KXtyZXR1cm4gdC55fXZhciBwPTEwLGQ9TWF0aC5QSSooMy1NYXRoLnNxcnQoNSkpO3QuZm9yY2VDZW50ZXI9ZnVuY3Rpb24odCxlKXt2YXIgcjtmdW5jdGlvbiBuKCl7dmFyIG4sYSxpPXIubGVuZ3RoLG89MCxzPTA7Zm9yKG49MDtuPGk7KytuKW8rPShhPXJbbl0pLngscys9YS55O2ZvcihvPW8vaS10LHM9cy9pLWUsbj0wO248aTsrK24pKGE9cltuXSkueC09byxhLnktPXN9cmV0dXJuIG51bGw9PXQmJih0PTApLG51bGw9PWUmJihlPTApLG4uaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtyPXR9LG4ueD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0rZSxuKTp0fSxuLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K3Qsbik6ZX0sbn0sdC5mb3JjZUNvbGxpZGU9ZnVuY3Rpb24odCl7dmFyIHIsbixhPTEsYz0xO2Z1bmN0aW9uIHUoKXtmb3IodmFyIHQsaSx1LGYscCxkLGcsdj1yLmxlbmd0aCxtPTA7bTxjOysrbSlmb3IoaT1lLnF1YWR0cmVlKHIscyxsKS52aXNpdEFmdGVyKGgpLHQ9MDt0PHY7Kyt0KXU9clt0XSxkPW5bdS5pbmRleF0sZz1kKmQsZj11LngrdS52eCxwPXUueSt1LnZ5LGkudmlzaXQoeSk7ZnVuY3Rpb24geSh0LGUscixuLGkpe3ZhciBzPXQuZGF0YSxsPXQucixjPWQrbDtpZighcylyZXR1cm4gZT5mK2N8fG48Zi1jfHxyPnArY3x8aTxwLWM7aWYocy5pbmRleD51LmluZGV4KXt2YXIgaD1mLXMueC1zLnZ4LHY9cC1zLnktcy52eSxtPWgqaCt2KnY7bTxjKmMmJigwPT09aCYmKG0rPShoPW8oKSkqaCksMD09PXYmJihtKz0odj1vKCkpKnYpLG09KGMtKG09TWF0aC5zcXJ0KG0pKSkvbSphLHUudngrPShoKj1tKSooYz0obCo9bCkvKGcrbCkpLHUudnkrPSh2Kj1tKSpjLHMudngtPWgqKGM9MS1jKSxzLnZ5LT12KmMpfX19ZnVuY3Rpb24gaCh0KXtpZih0LmRhdGEpcmV0dXJuIHQucj1uW3QuZGF0YS5pbmRleF07Zm9yKHZhciBlPXQucj0wO2U8NDsrK2UpdFtlXSYmdFtlXS5yPnQuciYmKHQucj10W2VdLnIpfWZ1bmN0aW9uIGYoKXtpZihyKXt2YXIgZSxhLGk9ci5sZW5ndGg7Zm9yKG49bmV3IEFycmF5KGkpLGU9MDtlPGk7KytlKWE9cltlXSxuW2EuaW5kZXhdPSt0KGEsZSxyKX19cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PWkobnVsbD09dD8xOit0KSksdS5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe3I9dCxmKCl9LHUuaXRlcmF0aW9ucz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz0rdCx1KTpjfSx1LnN0cmVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSt0LHUpOmF9LHUucmFkaXVzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6aSgrZSksZigpLHUpOnR9LHV9LHQuZm9yY2VMaW5rPWZ1bmN0aW9uKHQpe3ZhciBlLG4sYSxzLGwsaD1jLGY9ZnVuY3Rpb24odCl7cmV0dXJuIDEvTWF0aC5taW4oc1t0LnNvdXJjZS5pbmRleF0sc1t0LnRhcmdldC5pbmRleF0pfSxwPWkoMzApLGQ9MTtmdW5jdGlvbiBnKHIpe2Zvcih2YXIgYT0wLGk9dC5sZW5ndGg7YTxkOysrYSlmb3IodmFyIHMsYyx1LGgsZixwLGcsdj0wO3Y8aTsrK3YpYz0ocz10W3ZdKS5zb3VyY2UsaD0odT1zLnRhcmdldCkueCt1LnZ4LWMueC1jLnZ4fHxvKCksZj11LnkrdS52eS1jLnktYy52eXx8bygpLGgqPXA9KChwPU1hdGguc3FydChoKmgrZipmKSktblt2XSkvcCpyKmVbdl0sZio9cCx1LnZ4LT1oKihnPWxbdl0pLHUudnktPWYqZyxjLnZ4Kz1oKihnPTEtZyksYy52eSs9ZipnfWZ1bmN0aW9uIHYoKXtpZihhKXt2YXIgaSxvLGM9YS5sZW5ndGgsZj10Lmxlbmd0aCxwPXIubWFwKGEsaCk7Zm9yKGk9MCxzPW5ldyBBcnJheShjKTtpPGY7KytpKShvPXRbaV0pLmluZGV4PWksIm9iamVjdCIhPXR5cGVvZiBvLnNvdXJjZSYmKG8uc291cmNlPXUocCxvLnNvdXJjZSkpLCJvYmplY3QiIT10eXBlb2Ygby50YXJnZXQmJihvLnRhcmdldD11KHAsby50YXJnZXQpKSxzW28uc291cmNlLmluZGV4XT0oc1tvLnNvdXJjZS5pbmRleF18fDApKzEsc1tvLnRhcmdldC5pbmRleF09KHNbby50YXJnZXQuaW5kZXhdfHwwKSsxO2ZvcihpPTAsbD1uZXcgQXJyYXkoZik7aTxmOysraSlvPXRbaV0sbFtpXT1zW28uc291cmNlLmluZGV4XS8oc1tvLnNvdXJjZS5pbmRleF0rc1tvLnRhcmdldC5pbmRleF0pO2U9bmV3IEFycmF5KGYpLG0oKSxuPW5ldyBBcnJheShmKSx5KCl9fWZ1bmN0aW9uIG0oKXtpZihhKWZvcih2YXIgcj0wLG49dC5sZW5ndGg7cjxuOysrcillW3JdPStmKHRbcl0scix0KX1mdW5jdGlvbiB5KCl7aWYoYSlmb3IodmFyIGU9MCxyPXQubGVuZ3RoO2U8cjsrK2UpbltlXT0rcCh0W2VdLGUsdCl9cmV0dXJuIG51bGw9PXQmJih0PVtdKSxnLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7YT10LHYoKX0sZy5saW5rcz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1lLHYoKSxnKTp0fSxnLmlkPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPXQsZyk6aH0sZy5pdGVyYXRpb25zPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhkPSt0LGcpOmR9LGcuc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDppKCt0KSxtKCksZyk6Zn0sZy5kaXN0YW5jZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocD0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmkoK3QpLHkoKSxnKTpwfSxnfSx0LmZvcmNlTWFueUJvZHk9ZnVuY3Rpb24oKXt2YXIgdCxyLG4sYSxzPWkoLTMwKSxsPTEsYz0xLzAsdT0uODE7ZnVuY3Rpb24gcChhKXt2YXIgaSxvPXQubGVuZ3RoLHM9ZS5xdWFkdHJlZSh0LGgsZikudmlzaXRBZnRlcihnKTtmb3Iobj1hLGk9MDtpPG87KytpKXI9dFtpXSxzLnZpc2l0KHYpfWZ1bmN0aW9uIGQoKXtpZih0KXt2YXIgZSxyLG49dC5sZW5ndGg7Zm9yKGE9bmV3IEFycmF5KG4pLGU9MDtlPG47KytlKXI9dFtlXSxhW3IuaW5kZXhdPStzKHIsZSx0KX19ZnVuY3Rpb24gZyh0KXt2YXIgZSxyLG4saSxvLHM9MCxsPTA7aWYodC5sZW5ndGgpe2ZvcihuPWk9bz0wO288NDsrK28pKGU9dFtvXSkmJihyPU1hdGguYWJzKGUudmFsdWUpKSYmKHMrPWUudmFsdWUsbCs9cixuKz1yKmUueCxpKz1yKmUueSk7dC54PW4vbCx0Lnk9aS9sfWVsc2V7KGU9dCkueD1lLmRhdGEueCxlLnk9ZS5kYXRhLnk7ZG97cys9YVtlLmRhdGEuaW5kZXhdfXdoaWxlKGU9ZS5uZXh0KX10LnZhbHVlPXN9ZnVuY3Rpb24gdih0LGUsaSxzKXtpZighdC52YWx1ZSlyZXR1cm4hMDt2YXIgaD10Lngtci54LGY9dC55LXIueSxwPXMtZSxkPWgqaCtmKmY7aWYocCpwL3U8ZClyZXR1cm4gZDxjJiYoMD09PWgmJihkKz0oaD1vKCkpKmgpLDA9PT1mJiYoZCs9KGY9bygpKSpmKSxkPGwmJihkPU1hdGguc3FydChsKmQpKSxyLnZ4Kz1oKnQudmFsdWUqbi9kLHIudnkrPWYqdC52YWx1ZSpuL2QpLCEwO2lmKCEodC5sZW5ndGh8fGQ+PWMpKXsodC5kYXRhIT09cnx8dC5uZXh0KSYmKDA9PT1oJiYoZCs9KGg9bygpKSpoKSwwPT09ZiYmKGQrPShmPW8oKSkqZiksZDxsJiYoZD1NYXRoLnNxcnQobCpkKSkpO2Rve3QuZGF0YSE9PXImJihwPWFbdC5kYXRhLmluZGV4XSpuL2Qsci52eCs9aCpwLHIudnkrPWYqcCl9d2hpbGUodD10Lm5leHQpfX1yZXR1cm4gcC5pbml0aWFsaXplPWZ1bmN0aW9uKGUpe3Q9ZSxkKCl9LHAuc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDppKCt0KSxkKCkscCk6c30scC5kaXN0YW5jZU1pbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD10KnQscCk6TWF0aC5zcXJ0KGwpfSxwLmRpc3RhbmNlTWF4PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPXQqdCxwKTpNYXRoLnNxcnQoYyl9LHAudGhldGE9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9dCp0LHApOk1hdGguc3FydCh1KX0scH0sdC5mb3JjZVJhZGlhbD1mdW5jdGlvbih0LGUscil7dmFyIG4sYSxvLHM9aSguMSk7ZnVuY3Rpb24gbCh0KXtmb3IodmFyIGk9MCxzPW4ubGVuZ3RoO2k8czsrK2kpe3ZhciBsPW5baV0sYz1sLngtZXx8MWUtNix1PWwueS1yfHwxZS02LGg9TWF0aC5zcXJ0KGMqYyt1KnUpLGY9KG9baV0taCkqYVtpXSp0L2g7bC52eCs9YypmLGwudnkrPXUqZn19ZnVuY3Rpb24gYygpe2lmKG4pe3ZhciBlLHI9bi5sZW5ndGg7Zm9yKGE9bmV3IEFycmF5KHIpLG89bmV3IEFycmF5KHIpLGU9MDtlPHI7KytlKW9bZV09K3QobltlXSxlLG4pLGFbZV09aXNOYU4ob1tlXSk/MDorcyhuW2VdLGUsbil9fXJldHVybiJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1pKCt0KSksbnVsbD09ZSYmKGU9MCksbnVsbD09ciYmKHI9MCksbC5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe249dCxjKCl9LGwuc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDppKCt0KSxjKCksbCk6c30sbC5yYWRpdXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTppKCtlKSxjKCksbCk6dH0sbC54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSt0LGwpOmV9LGwueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0rdCxsKTpyfSxsfSx0LmZvcmNlU2ltdWxhdGlvbj1mdW5jdGlvbih0KXt2YXIgZSxpPTEsbz0uMDAxLHM9MS1NYXRoLnBvdyhvLDEvMzAwKSxsPTAsYz0uNix1PXIubWFwKCksaD1hLnRpbWVyKGcpLGY9bi5kaXNwYXRjaCgidGljayIsImVuZCIpO2Z1bmN0aW9uIGcoKXt2KCksZi5jYWxsKCJ0aWNrIixlKSxpPG8mJihoLnN0b3AoKSxmLmNhbGwoImVuZCIsZSkpfWZ1bmN0aW9uIHYoKXt2YXIgZSxyLG49dC5sZW5ndGg7Zm9yKGkrPShsLWkpKnMsdS5lYWNoKGZ1bmN0aW9uKHQpe3QoaSl9KSxlPTA7ZTxuOysrZSludWxsPT0ocj10W2VdKS5meD9yLngrPXIudngqPWM6KHIueD1yLmZ4LHIudng9MCksbnVsbD09ci5meT9yLnkrPXIudnkqPWM6KHIueT1yLmZ5LHIudnk9MCl9ZnVuY3Rpb24gbSgpe2Zvcih2YXIgZSxyPTAsbj10Lmxlbmd0aDtyPG47KytyKXtpZigoZT10W3JdKS5pbmRleD1yLGlzTmFOKGUueCl8fGlzTmFOKGUueSkpe3ZhciBhPXAqTWF0aC5zcXJ0KHIpLGk9cipkO2UueD1hKk1hdGguY29zKGkpLGUueT1hKk1hdGguc2luKGkpfShpc05hTihlLnZ4KXx8aXNOYU4oZS52eSkpJiYoZS52eD1lLnZ5PTApfX1mdW5jdGlvbiB5KGUpe3JldHVybiBlLmluaXRpYWxpemUmJmUuaW5pdGlhbGl6ZSh0KSxlfXJldHVybiBudWxsPT10JiYodD1bXSksbSgpLGU9e3RpY2s6dixyZXN0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIGgucmVzdGFydChnKSxlfSxzdG9wOmZ1bmN0aW9uKCl7cmV0dXJuIGguc3RvcCgpLGV9LG5vZGVzOmZ1bmN0aW9uKHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PXIsbSgpLHUuZWFjaCh5KSxlKTp0fSxhbHBoYTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0rdCxlKTppfSxhbHBoYU1pbjpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0rdCxlKTpvfSxhbHBoYURlY2F5OmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPSt0LGUpOitzfSxhbHBoYVRhcmdldDpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD0rdCxlKTpsfSx2ZWxvY2l0eURlY2F5OmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPTEtdCxlKToxLWN9LGZvcmNlOmZ1bmN0aW9uKHQscil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT8obnVsbD09cj91LnJlbW92ZSh0KTp1LnNldCh0LHkocikpLGUpOnUuZ2V0KHQpfSxmaW5kOmZ1bmN0aW9uKGUscixuKXt2YXIgYSxpLG8scyxsLGM9MCx1PXQubGVuZ3RoO2ZvcihudWxsPT1uP249MS8wOm4qPW4sYz0wO2M8dTsrK2MpKG89KGE9ZS0ocz10W2NdKS54KSphKyhpPXItcy55KSppKTxuJiYobD1zLG49byk7cmV0dXJuIGx9LG9uOmZ1bmN0aW9uKHQscil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT8oZi5vbih0LHIpLGUpOmYub24odCl9fX0sdC5mb3JjZVg9ZnVuY3Rpb24odCl7dmFyIGUscixuLGE9aSguMSk7ZnVuY3Rpb24gbyh0KXtmb3IodmFyIGEsaT0wLG89ZS5sZW5ndGg7aTxvOysraSkoYT1lW2ldKS52eCs9KG5baV0tYS54KSpyW2ldKnR9ZnVuY3Rpb24gcygpe2lmKGUpe3ZhciBpLG89ZS5sZW5ndGg7Zm9yKHI9bmV3IEFycmF5KG8pLG49bmV3IEFycmF5KG8pLGk9MDtpPG87KytpKXJbaV09aXNOYU4obltpXT0rdChlW2ldLGksZSkpPzA6K2EoZVtpXSxpLGUpfX1yZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9aShudWxsPT10PzA6K3QpKSxvLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7ZT10LHMoKX0sby5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmkoK3QpLHMoKSxvKTphfSxvLng9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTppKCtlKSxzKCksbyk6dH0sb30sdC5mb3JjZVk9ZnVuY3Rpb24odCl7dmFyIGUscixuLGE9aSguMSk7ZnVuY3Rpb24gbyh0KXtmb3IodmFyIGEsaT0wLG89ZS5sZW5ndGg7aTxvOysraSkoYT1lW2ldKS52eSs9KG5baV0tYS55KSpyW2ldKnR9ZnVuY3Rpb24gcygpe2lmKGUpe3ZhciBpLG89ZS5sZW5ndGg7Zm9yKHI9bmV3IEFycmF5KG8pLG49bmV3IEFycmF5KG8pLGk9MDtpPG87KytpKXJbaV09aXNOYU4obltpXT0rdChlW2ldLGksZSkpPzA6K2EoZVtpXSxpLGUpfX1yZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9aShudWxsPT10PzA6K3QpKSxvLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7ZT10LHMoKX0sby5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmkoK3QpLHMoKSxvKTphfSxvLnk9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTppKCtlKSxzKCksbyk6dH0sb30sT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSwib2JqZWN0Ij09dHlwZW9mIHImJiJ1bmRlZmluZWQiIT10eXBlb2YgZT9hKHIsdCgiZDMtcXVhZHRyZWUiKSx0KCJkMy1jb2xsZWN0aW9uIiksdCgiZDMtZGlzcGF0Y2giKSx0KCJkMy10aW1lciIpKTphKG4uZDM9bi5kM3x8e30sbi5kMyxuLmQzLG4uZDMsbi5kMyl9LHsiZDMtY29sbGVjdGlvbiI6MTU1LCJkMy1kaXNwYXRjaCI6MTU3LCJkMy1xdWFkdHJlZSI6MTYyLCJkMy10aW1lciI6MTY0fV0sMTU5OltmdW5jdGlvbih0LGUscil7dmFyIG47bj10aGlzLGZ1bmN0aW9uKHQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBlKHQsZSl7cmV0dXJuIHQucGFyZW50PT09ZS5wYXJlbnQ/MToyfWZ1bmN0aW9uIHIodCxlKXtyZXR1cm4gdCtlLnh9ZnVuY3Rpb24gbih0LGUpe3JldHVybiBNYXRoLm1heCh0LGUueSl9ZnVuY3Rpb24gYSh0KXt2YXIgZT0wLHI9dC5jaGlsZHJlbixuPXImJnIubGVuZ3RoO2lmKG4pZm9yKDstLW4+PTA7KWUrPXJbbl0udmFsdWU7ZWxzZSBlPTE7dC52YWx1ZT1lfWZ1bmN0aW9uIGkodCxlKXt2YXIgcixuLGEsaSxzLHU9bmV3IGModCksaD0rdC52YWx1ZSYmKHUudmFsdWU9dC52YWx1ZSksZj1bdV07Zm9yKG51bGw9PWUmJihlPW8pO3I9Zi5wb3AoKTspaWYoaCYmKHIudmFsdWU9K3IuZGF0YS52YWx1ZSksKGE9ZShyLmRhdGEpKSYmKHM9YS5sZW5ndGgpKWZvcihyLmNoaWxkcmVuPW5ldyBBcnJheShzKSxpPXMtMTtpPj0wOy0taSlmLnB1c2gobj1yLmNoaWxkcmVuW2ldPW5ldyBjKGFbaV0pKSxuLnBhcmVudD1yLG4uZGVwdGg9ci5kZXB0aCsxO3JldHVybiB1LmVhY2hCZWZvcmUobCl9ZnVuY3Rpb24gbyh0KXtyZXR1cm4gdC5jaGlsZHJlbn1mdW5jdGlvbiBzKHQpe3QuZGF0YT10LmRhdGEuZGF0YX1mdW5jdGlvbiBsKHQpe3ZhciBlPTA7ZG97dC5oZWlnaHQ9ZX13aGlsZSgodD10LnBhcmVudCkmJnQuaGVpZ2h0PCsrZSl9ZnVuY3Rpb24gYyh0KXt0aGlzLmRhdGE9dCx0aGlzLmRlcHRoPXRoaXMuaGVpZ2h0PTAsdGhpcy5wYXJlbnQ9bnVsbH1jLnByb3RvdHlwZT1pLnByb3RvdHlwZT17Y29uc3RydWN0b3I6Yyxjb3VudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2hBZnRlcihhKX0sZWFjaDpmdW5jdGlvbih0KXt2YXIgZSxyLG4sYSxpPXRoaXMsbz1baV07ZG97Zm9yKGU9by5yZXZlcnNlKCksbz1bXTtpPWUucG9wKCk7KWlmKHQoaSkscj1pLmNoaWxkcmVuKWZvcihuPTAsYT1yLmxlbmd0aDtuPGE7KytuKW8ucHVzaChyW25dKX13aGlsZShvLmxlbmd0aCk7cmV0dXJuIHRoaXN9LGVhY2hBZnRlcjpmdW5jdGlvbih0KXtmb3IodmFyIGUscixuLGE9dGhpcyxpPVthXSxvPVtdO2E9aS5wb3AoKTspaWYoby5wdXNoKGEpLGU9YS5jaGlsZHJlbilmb3Iocj0wLG49ZS5sZW5ndGg7cjxuOysrcilpLnB1c2goZVtyXSk7Zm9yKDthPW8ucG9wKCk7KXQoYSk7cmV0dXJuIHRoaXN9LGVhY2hCZWZvcmU6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLHIsbj10aGlzLGE9W25dO249YS5wb3AoKTspaWYodChuKSxlPW4uY2hpbGRyZW4pZm9yKHI9ZS5sZW5ndGgtMTtyPj0wOy0tcilhLnB1c2goZVtyXSk7cmV0dXJuIHRoaXN9LHN1bTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5lYWNoQWZ0ZXIoZnVuY3Rpb24oZSl7Zm9yKHZhciByPSt0KGUuZGF0YSl8fDAsbj1lLmNoaWxkcmVuLGE9biYmbi5sZW5ndGg7LS1hPj0wOylyKz1uW2FdLnZhbHVlO2UudmFsdWU9cn0pfSxzb3J0OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmVhY2hCZWZvcmUoZnVuY3Rpb24oZSl7ZS5jaGlsZHJlbiYmZS5jaGlsZHJlbi5zb3J0KHQpfSl9LHBhdGg6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMscj1mdW5jdGlvbih0LGUpe2lmKHQ9PT1lKXJldHVybiB0O3ZhciByPXQuYW5jZXN0b3JzKCksbj1lLmFuY2VzdG9ycygpLGE9bnVsbDtmb3IodD1yLnBvcCgpLGU9bi5wb3AoKTt0PT09ZTspYT10LHQ9ci5wb3AoKSxlPW4ucG9wKCk7cmV0dXJuIGF9KGUsdCksbj1bZV07ZSE9PXI7KWU9ZS5wYXJlbnQsbi5wdXNoKGUpO2Zvcih2YXIgYT1uLmxlbmd0aDt0IT09cjspbi5zcGxpY2UoYSwwLHQpLHQ9dC5wYXJlbnQ7cmV0dXJuIG59LGFuY2VzdG9yczpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLGU9W3RdO3Q9dC5wYXJlbnQ7KWUucHVzaCh0KTtyZXR1cm4gZX0sZGVzY2VuZGFudHM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGUpe3QucHVzaChlKX0pLHR9LGxlYXZlczpmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmVhY2hCZWZvcmUoZnVuY3Rpb24oZSl7ZS5jaGlsZHJlbnx8dC5wdXNoKGUpfSksdH0sbGlua3M6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9W107cmV0dXJuIHQuZWFjaChmdW5jdGlvbihyKXtyIT09dCYmZS5wdXNoKHtzb3VyY2U6ci5wYXJlbnQsdGFyZ2V0OnJ9KX0pLGV9LGNvcHk6ZnVuY3Rpb24oKXtyZXR1cm4gaSh0aGlzKS5lYWNoQmVmb3JlKHMpfX07dmFyIHU9QXJyYXkucHJvdG90eXBlLnNsaWNlO2Z1bmN0aW9uIGgodCl7Zm9yKHZhciBlLHIsbj0wLGE9KHQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLHIsbj10Lmxlbmd0aDtuOylyPU1hdGgucmFuZG9tKCkqbi0tfDAsZT10W25dLHRbbl09dFtyXSx0W3JdPWU7cmV0dXJuIHR9KHUuY2FsbCh0KSkpLmxlbmd0aCxpPVtdO248YTspZT10W25dLHImJmQocixlKT8rK246KHI9dihpPWYoaSxlKSksbj0wKTtyZXR1cm4gcn1mdW5jdGlvbiBmKHQsZSl7dmFyIHIsbjtpZihnKGUsdCkpcmV0dXJuW2VdO2ZvcihyPTA7cjx0Lmxlbmd0aDsrK3IpaWYocChlLHRbcl0pJiZnKG0odFtyXSxlKSx0KSlyZXR1cm5bdFtyXSxlXTtmb3Iocj0wO3I8dC5sZW5ndGgtMTsrK3IpZm9yKG49cisxO248dC5sZW5ndGg7KytuKWlmKHAobSh0W3JdLHRbbl0pLGUpJiZwKG0odFtyXSxlKSx0W25dKSYmcChtKHRbbl0sZSksdFtyXSkmJmcoeSh0W3JdLHRbbl0sZSksdCkpcmV0dXJuW3Rbcl0sdFtuXSxlXTt0aHJvdyBuZXcgRXJyb3J9ZnVuY3Rpb24gcCh0LGUpe3ZhciByPXQuci1lLnIsbj1lLngtdC54LGE9ZS55LXQueTtyZXR1cm4gcjwwfHxyKnI8bipuK2EqYX1mdW5jdGlvbiBkKHQsZSl7dmFyIHI9dC5yLWUucisxZS02LG49ZS54LXQueCxhPWUueS10Lnk7cmV0dXJuIHI+MCYmcipyPm4qbithKmF9ZnVuY3Rpb24gZyh0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7KytyKWlmKCFkKHQsZVtyXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gdih0KXtzd2l0Y2godC5sZW5ndGgpe2Nhc2UgMTpyZXR1cm57eDooZT10WzBdKS54LHk6ZS55LHI6ZS5yfTtjYXNlIDI6cmV0dXJuIG0odFswXSx0WzFdKTtjYXNlIDM6cmV0dXJuIHkodFswXSx0WzFdLHRbMl0pfXZhciBlfWZ1bmN0aW9uIG0odCxlKXt2YXIgcj10Lngsbj10LnksYT10LnIsaT1lLngsbz1lLnkscz1lLnIsbD1pLXIsYz1vLW4sdT1zLWEsaD1NYXRoLnNxcnQobCpsK2MqYyk7cmV0dXJue3g6KHIraStsL2gqdSkvMix5OihuK28rYy9oKnUpLzIscjooaCthK3MpLzJ9fWZ1bmN0aW9uIHkodCxlLHIpe3ZhciBuPXQueCxhPXQueSxpPXQucixvPWUueCxzPWUueSxsPWUucixjPXIueCx1PXIueSxoPXIucixmPW4tbyxwPW4tYyxkPWEtcyxnPWEtdSx2PWwtaSxtPWgtaSx5PW4qbithKmEtaSppLHg9eS1vKm8tcypzK2wqbCxiPXktYypjLXUqdStoKmgsXz1wKmQtZipnLHc9KGQqYi1nKngpLygyKl8pLW4saz0oZyp2LWQqbSkvXyxUPShwKngtZipiKS8oMipfKS1hLE09KGYqbS1wKnYpL18sQT1rKmsrTSpNLTEsUz0yKihpK3cqaytUKk0pLEU9dyp3K1QqVC1pKmksTD0tKEE/KFMrTWF0aC5zcXJ0KFMqUy00KkEqRSkpLygyKkEpOkUvUyk7cmV0dXJue3g6bit3K2sqTCx5OmErVCtNKkwscjpMfX1mdW5jdGlvbiB4KHQsZSxyKXt2YXIgbixhLGksbyxzPXQueC1lLngsbD10LnktZS55LGM9cypzK2wqbDtjPyhhPWUucityLnIsYSo9YSxvPXQucityLnIsYT4obyo9byk/KG49KGMrby1hKS8oMipjKSxpPU1hdGguc3FydChNYXRoLm1heCgwLG8vYy1uKm4pKSxyLng9dC54LW4qcy1pKmwsci55PXQueS1uKmwraSpzKToobj0oYythLW8pLygyKmMpLGk9TWF0aC5zcXJ0KE1hdGgubWF4KDAsYS9jLW4qbikpLHIueD1lLngrbipzLWkqbCxyLnk9ZS55K24qbCtpKnMpKTooci54PWUueCtyLnIsci55PWUueSl9ZnVuY3Rpb24gYih0LGUpe3ZhciByPXQucitlLnItMWUtNixuPWUueC10LngsYT1lLnktdC55O3JldHVybiByPjAmJnIqcj5uKm4rYSphfWZ1bmN0aW9uIF8odCl7dmFyIGU9dC5fLHI9dC5uZXh0Ll8sbj1lLnIrci5yLGE9KGUueCpyLnIrci54KmUucikvbixpPShlLnkqci5yK3IueSplLnIpL247cmV0dXJuIGEqYStpKml9ZnVuY3Rpb24gdyh0KXt0aGlzLl89dCx0aGlzLm5leHQ9bnVsbCx0aGlzLnByZXZpb3VzPW51bGx9ZnVuY3Rpb24gayh0KXtpZighKGE9dC5sZW5ndGgpKXJldHVybiAwO3ZhciBlLHIsbixhLGksbyxzLGwsYyx1LGY7aWYoKGU9dFswXSkueD0wLGUueT0wLCEoYT4xKSlyZXR1cm4gZS5yO2lmKHI9dFsxXSxlLng9LXIucixyLng9ZS5yLHIueT0wLCEoYT4yKSlyZXR1cm4gZS5yK3Iucjt4KHIsZSxuPXRbMl0pLGU9bmV3IHcoZSkscj1uZXcgdyhyKSxuPW5ldyB3KG4pLGUubmV4dD1uLnByZXZpb3VzPXIsci5uZXh0PWUucHJldmlvdXM9bixuLm5leHQ9ci5wcmV2aW91cz1lO3Q6Zm9yKHM9MztzPGE7KytzKXt4KGUuXyxyLl8sbj10W3NdKSxuPW5ldyB3KG4pLGw9ci5uZXh0LGM9ZS5wcmV2aW91cyx1PXIuXy5yLGY9ZS5fLnI7ZG97aWYodTw9Zil7aWYoYihsLl8sbi5fKSl7cj1sLGUubmV4dD1yLHIucHJldmlvdXM9ZSwtLXM7Y29udGludWUgdH11Kz1sLl8ucixsPWwubmV4dH1lbHNle2lmKGIoYy5fLG4uXykpeyhlPWMpLm5leHQ9cixyLnByZXZpb3VzPWUsLS1zO2NvbnRpbnVlIHR9Zis9Yy5fLnIsYz1jLnByZXZpb3VzfX13aGlsZShsIT09Yy5uZXh0KTtmb3Iobi5wcmV2aW91cz1lLG4ubmV4dD1yLGUubmV4dD1yLnByZXZpb3VzPXI9bixpPV8oZSk7KG49bi5uZXh0KSE9PXI7KShvPV8obikpPGkmJihlPW4saT1vKTtyPWUubmV4dH1mb3IoZT1bci5fXSxuPXI7KG49bi5uZXh0KSE9PXI7KWUucHVzaChuLl8pO2ZvcihuPWgoZSkscz0wO3M8YTsrK3MpKGU9dFtzXSkueC09bi54LGUueS09bi55O3JldHVybiBuLnJ9ZnVuY3Rpb24gVCh0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHR9ZnVuY3Rpb24gTSgpe3JldHVybiAwfWZ1bmN0aW9uIEEodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIFModCl7cmV0dXJuIE1hdGguc3FydCh0LnZhbHVlKX1mdW5jdGlvbiBFKHQpe3JldHVybiBmdW5jdGlvbihlKXtlLmNoaWxkcmVufHwoZS5yPU1hdGgubWF4KDAsK3QoZSl8fDApKX19ZnVuY3Rpb24gTCh0LGUpe3JldHVybiBmdW5jdGlvbihyKXtpZihuPXIuY2hpbGRyZW4pe3ZhciBuLGEsaSxvPW4ubGVuZ3RoLHM9dChyKSplfHwwO2lmKHMpZm9yKGE9MDthPG87KythKW5bYV0ucis9cztpZihpPWsobikscylmb3IoYT0wO2E8bzsrK2EpblthXS5yLT1zO3Iucj1pK3N9fX1mdW5jdGlvbiBDKHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgcj1lLnBhcmVudDtlLnIqPXQsciYmKGUueD1yLngrdCplLngsZS55PXIueSt0KmUueSl9fWZ1bmN0aW9uIFAodCl7dC54MD1NYXRoLnJvdW5kKHQueDApLHQueTA9TWF0aC5yb3VuZCh0LnkwKSx0LngxPU1hdGgucm91bmQodC54MSksdC55MT1NYXRoLnJvdW5kKHQueTEpfWZ1bmN0aW9uIE8odCxlLHIsbixhKXtmb3IodmFyIGksbz10LmNoaWxkcmVuLHM9LTEsbD1vLmxlbmd0aCxjPXQudmFsdWUmJihuLWUpL3QudmFsdWU7KytzPGw7KShpPW9bc10pLnkwPXIsaS55MT1hLGkueDA9ZSxpLngxPWUrPWkudmFsdWUqY312YXIgej0iJCIsST17ZGVwdGg6LTF9LEQ9e307ZnVuY3Rpb24gUih0KXtyZXR1cm4gdC5pZH1mdW5jdGlvbiBGKHQpe3JldHVybiB0LnBhcmVudElkfWZ1bmN0aW9uIEIodCxlKXtyZXR1cm4gdC5wYXJlbnQ9PT1lLnBhcmVudD8xOjJ9ZnVuY3Rpb24gTih0KXt2YXIgZT10LmNoaWxkcmVuO3JldHVybiBlP2VbMF06dC50fWZ1bmN0aW9uIGoodCl7dmFyIGU9dC5jaGlsZHJlbjtyZXR1cm4gZT9lW2UubGVuZ3RoLTFdOnQudH1mdW5jdGlvbiBWKHQsZSxyKXt2YXIgbj1yLyhlLmktdC5pKTtlLmMtPW4sZS5zKz1yLHQuYys9bixlLnorPXIsZS5tKz1yfWZ1bmN0aW9uIFUodCxlLHIpe3JldHVybiB0LmEucGFyZW50PT09ZS5wYXJlbnQ/dC5hOnJ9ZnVuY3Rpb24gcSh0LGUpe3RoaXMuXz10LHRoaXMucGFyZW50PW51bGwsdGhpcy5jaGlsZHJlbj1udWxsLHRoaXMuQT1udWxsLHRoaXMuYT10aGlzLHRoaXMuej0wLHRoaXMubT0wLHRoaXMuYz0wLHRoaXMucz0wLHRoaXMudD1udWxsLHRoaXMuaT1lfWZ1bmN0aW9uIEgodCxlLHIsbixhKXtmb3IodmFyIGksbz10LmNoaWxkcmVuLHM9LTEsbD1vLmxlbmd0aCxjPXQudmFsdWUmJihhLXIpL3QudmFsdWU7KytzPGw7KShpPW9bc10pLngwPWUsaS54MT1uLGkueTA9cixpLnkxPXIrPWkudmFsdWUqY31xLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGMucHJvdG90eXBlKTt2YXIgRz0oMStNYXRoLnNxcnQoNSkpLzI7ZnVuY3Rpb24gWSh0LGUscixuLGEsaSl7Zm9yKHZhciBvLHMsbCxjLHUsaCxmLHAsZCxnLHYsbT1bXSx5PWUuY2hpbGRyZW4seD0wLGI9MCxfPXkubGVuZ3RoLHc9ZS52YWx1ZTt4PF87KXtsPWEtcixjPWktbjtkb3t1PXlbYisrXS52YWx1ZX13aGlsZSghdSYmYjxfKTtmb3IoaD1mPXUsdj11KnUqKGc9TWF0aC5tYXgoYy9sLGwvYykvKHcqdCkpLGQ9TWF0aC5tYXgoZi92LHYvaCk7YjxfOysrYil7aWYodSs9cz15W2JdLnZhbHVlLHM8aCYmKGg9cykscz5mJiYoZj1zKSx2PXUqdSpnLChwPU1hdGgubWF4KGYvdix2L2gpKT5kKXt1LT1zO2JyZWFrfWQ9cH1tLnB1c2gobz17dmFsdWU6dSxkaWNlOmw8YyxjaGlsZHJlbjp5LnNsaWNlKHgsYil9KSxvLmRpY2U/TyhvLHIsbixhLHc/bis9Yyp1L3c6aSk6SChvLHIsbix3P3IrPWwqdS93OmEsaSksdy09dSx4PWJ9cmV0dXJuIG19dmFyIFc9ZnVuY3Rpb24gdChlKXtmdW5jdGlvbiByKHQscixuLGEsaSl7WShlLHQscixuLGEsaSl9cmV0dXJuIHIucmF0aW89ZnVuY3Rpb24oZSl7cmV0dXJuIHQoKGU9K2UpPjE/ZToxKX0scn0oRyksWD1mdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIHIodCxyLG4sYSxpKXtpZigobz10Ll9zcXVhcmlmeSkmJm8ucmF0aW89PT1lKWZvcih2YXIgbyxzLGwsYyx1LGg9LTEsZj1vLmxlbmd0aCxwPXQudmFsdWU7KytoPGY7KXtmb3IobD0ocz1vW2hdKS5jaGlsZHJlbixjPXMudmFsdWU9MCx1PWwubGVuZ3RoO2M8dTsrK2Mpcy52YWx1ZSs9bFtjXS52YWx1ZTtzLmRpY2U/TyhzLHIsbixhLG4rPShpLW4pKnMudmFsdWUvcCk6SChzLHIsbixyKz0oYS1yKSpzLnZhbHVlL3AsaSkscC09cy52YWx1ZX1lbHNlIHQuX3NxdWFyaWZ5PW89WShlLHQscixuLGEsaSksby5yYXRpbz1lfXJldHVybiByLnJhdGlvPWZ1bmN0aW9uKGUpe3JldHVybiB0KChlPStlKT4xP2U6MSl9LHJ9KEcpO3QuY2x1c3Rlcj1mdW5jdGlvbigpe3ZhciB0PWUsYT0xLGk9MSxvPSExO2Z1bmN0aW9uIHMoZSl7dmFyIHMsbD0wO2UuZWFjaEFmdGVyKGZ1bmN0aW9uKGUpe3ZhciBhPWUuY2hpbGRyZW47YT8oZS54PWZ1bmN0aW9uKHQpe3JldHVybiB0LnJlZHVjZShyLDApL3QubGVuZ3RofShhKSxlLnk9ZnVuY3Rpb24odCl7cmV0dXJuIDErdC5yZWR1Y2UobiwwKX0oYSkpOihlLng9cz9sKz10KGUscyk6MCxlLnk9MCxzPWUpfSk7dmFyIGM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlO2U9dC5jaGlsZHJlbjspdD1lWzBdO3JldHVybiB0fShlKSx1PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZTtlPXQuY2hpbGRyZW47KXQ9ZVtlLmxlbmd0aC0xXTtyZXR1cm4gdH0oZSksaD1jLngtdChjLHUpLzIsZj11LngrdCh1LGMpLzI7cmV0dXJuIGUuZWFjaEFmdGVyKG8/ZnVuY3Rpb24odCl7dC54PSh0LngtZS54KSphLHQueT0oZS55LXQueSkqaX06ZnVuY3Rpb24odCl7dC54PSh0LngtaCkvKGYtaCkqYSx0Lnk9KDEtKGUueT90LnkvZS55OjEpKSppfSl9cmV0dXJuIHMuc2VwYXJhdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1lLHMpOnR9LHMuc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0hMSxhPSt0WzBdLGk9K3RbMV0scyk6bz9udWxsOlthLGldfSxzLm5vZGVTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPSEwLGE9K3RbMF0saT0rdFsxXSxzKTpvP1thLGldOm51bGx9LHN9LHQuaGllcmFyY2h5PWksdC5wYWNrPWZ1bmN0aW9uKCl7dmFyIHQ9bnVsbCxlPTEscj0xLG49TTtmdW5jdGlvbiBhKGEpe3JldHVybiBhLng9ZS8yLGEueT1yLzIsdD9hLmVhY2hCZWZvcmUoRSh0KSkuZWFjaEFmdGVyKEwobiwuNSkpLmVhY2hCZWZvcmUoQygxKSk6YS5lYWNoQmVmb3JlKEUoUykpLmVhY2hBZnRlcihMKE0sMSkpLmVhY2hBZnRlcihMKG4sYS5yL01hdGgubWluKGUscikpKS5lYWNoQmVmb3JlKEMoTWF0aC5taW4oZSxyKS8oMiphLnIpKSksYX1yZXR1cm4gYS5yYWRpdXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9bnVsbD09KHI9ZSk/bnVsbDpUKHIpLGEpOnQ7dmFyIHJ9LGEuc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0rdFswXSxyPSt0WzFdLGEpOltlLHJdfSxhLnBhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpBKCt0KSxhKTpufSxhfSx0LnBhY2tFbmNsb3NlPWgsdC5wYWNrU2libGluZ3M9ZnVuY3Rpb24odCl7cmV0dXJuIGsodCksdH0sdC5wYXJ0aXRpb249ZnVuY3Rpb24oKXt2YXIgdD0xLGU9MSxyPTAsbj0hMTtmdW5jdGlvbiBhKGEpe3ZhciBpPWEuaGVpZ2h0KzE7cmV0dXJuIGEueDA9YS55MD1yLGEueDE9dCxhLnkxPWUvaSxhLmVhY2hCZWZvcmUoZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24obil7bi5jaGlsZHJlbiYmTyhuLG4ueDAsdCoobi5kZXB0aCsxKS9lLG4ueDEsdCoobi5kZXB0aCsyKS9lKTt2YXIgYT1uLngwLGk9bi55MCxvPW4ueDEtcixzPW4ueTEtcjtvPGEmJihhPW89KGErbykvMiksczxpJiYoaT1zPShpK3MpLzIpLG4ueDA9YSxuLnkwPWksbi54MT1vLG4ueTE9c319KGUsaSkpLG4mJmEuZWFjaEJlZm9yZShQKSxhfXJldHVybiBhLnJvdW5kPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSEhdCxhKTpufSxhLnNpemU9ZnVuY3Rpb24ocil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9K3JbMF0sZT0rclsxXSxhKTpbdCxlXX0sYS5wYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSt0LGEpOnJ9LGF9LHQuc3RyYXRpZnk9ZnVuY3Rpb24oKXt2YXIgdD1SLGU9RjtmdW5jdGlvbiByKHIpe3ZhciBuLGEsaSxvLHMsdSxoLGY9ci5sZW5ndGgscD1uZXcgQXJyYXkoZiksZD17fTtmb3IoYT0wO2E8ZjsrK2Epbj1yW2FdLHM9cFthXT1uZXcgYyhuKSxudWxsIT0odT10KG4sYSxyKSkmJih1Kz0iIikmJihkW2g9eisocy5pZD11KV09aCBpbiBkP0Q6cyk7Zm9yKGE9MDthPGY7KythKWlmKHM9cFthXSxudWxsIT0odT1lKHJbYV0sYSxyKSkmJih1Kz0iIikpe2lmKCEobz1kW3ordV0pKXRocm93IG5ldyBFcnJvcigibWlzc2luZzogIit1KTtpZihvPT09RCl0aHJvdyBuZXcgRXJyb3IoImFtYmlndW91czogIit1KTtvLmNoaWxkcmVuP28uY2hpbGRyZW4ucHVzaChzKTpvLmNoaWxkcmVuPVtzXSxzLnBhcmVudD1vfWVsc2V7aWYoaSl0aHJvdyBuZXcgRXJyb3IoIm11bHRpcGxlIHJvb3RzIik7aT1zfWlmKCFpKXRocm93IG5ldyBFcnJvcigibm8gcm9vdCIpO2lmKGkucGFyZW50PUksaS5lYWNoQmVmb3JlKGZ1bmN0aW9uKHQpe3QuZGVwdGg9dC5wYXJlbnQuZGVwdGgrMSwtLWZ9KS5lYWNoQmVmb3JlKGwpLGkucGFyZW50PW51bGwsZj4wKXRocm93IG5ldyBFcnJvcigiY3ljbGUiKTtyZXR1cm4gaX1yZXR1cm4gci5pZD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1UKGUpLHIpOnR9LHIucGFyZW50SWQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9VCh0KSxyKTplfSxyfSx0LnRyZWU9ZnVuY3Rpb24oKXt2YXIgdD1CLGU9MSxyPTEsbj1udWxsO2Z1bmN0aW9uIGEoYSl7dmFyIGw9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLHIsbixhLGksbz1uZXcgcSh0LDApLHM9W29dO2U9cy5wb3AoKTspaWYobj1lLl8uY2hpbGRyZW4pZm9yKGUuY2hpbGRyZW49bmV3IEFycmF5KGk9bi5sZW5ndGgpLGE9aS0xO2E+PTA7LS1hKXMucHVzaChyPWUuY2hpbGRyZW5bYV09bmV3IHEoblthXSxhKSksci5wYXJlbnQ9ZTtyZXR1cm4oby5wYXJlbnQ9bmV3IHEobnVsbCwwKSkuY2hpbGRyZW49W29dLG99KGEpO2lmKGwuZWFjaEFmdGVyKGkpLGwucGFyZW50Lm09LWwueixsLmVhY2hCZWZvcmUobyksbilhLmVhY2hCZWZvcmUocyk7ZWxzZXt2YXIgYz1hLHU9YSxoPWE7YS5lYWNoQmVmb3JlKGZ1bmN0aW9uKHQpe3QueDxjLngmJihjPXQpLHQueD51LngmJih1PXQpLHQuZGVwdGg+aC5kZXB0aCYmKGg9dCl9KTt2YXIgZj1jPT09dT8xOnQoYyx1KS8yLHA9Zi1jLngsZD1lLyh1LngrZitwKSxnPXIvKGguZGVwdGh8fDEpO2EuZWFjaEJlZm9yZShmdW5jdGlvbih0KXt0Lng9KHQueCtwKSpkLHQueT10LmRlcHRoKmd9KX1yZXR1cm4gYX1mdW5jdGlvbiBpKGUpe3ZhciByPWUuY2hpbGRyZW4sbj1lLnBhcmVudC5jaGlsZHJlbixhPWUuaT9uW2UuaS0xXTpudWxsO2lmKHIpeyFmdW5jdGlvbih0KXtmb3IodmFyIGUscj0wLG49MCxhPXQuY2hpbGRyZW4saT1hLmxlbmd0aDstLWk+PTA7KShlPWFbaV0pLnorPXIsZS5tKz1yLHIrPWUucysobis9ZS5jKX0oZSk7dmFyIGk9KHJbMF0ueityW3IubGVuZ3RoLTFdLnopLzI7YT8oZS56PWEueit0KGUuXyxhLl8pLGUubT1lLnotaSk6ZS56PWl9ZWxzZSBhJiYoZS56PWEueit0KGUuXyxhLl8pKTtlLnBhcmVudC5BPWZ1bmN0aW9uKGUscixuKXtpZihyKXtmb3IodmFyIGEsaT1lLG89ZSxzPXIsbD1pLnBhcmVudC5jaGlsZHJlblswXSxjPWkubSx1PW8ubSxoPXMubSxmPWwubTtzPWoocyksaT1OKGkpLHMmJmk7KWw9TihsKSwobz1qKG8pKS5hPWUsKGE9cy56K2gtaS56LWMrdChzLl8saS5fKSk+MCYmKFYoVShzLGUsbiksZSxhKSxjKz1hLHUrPWEpLGgrPXMubSxjKz1pLm0sZis9bC5tLHUrPW8ubTtzJiYhaihvKSYmKG8udD1zLG8ubSs9aC11KSxpJiYhTihsKSYmKGwudD1pLGwubSs9Yy1mLG49ZSl9cmV0dXJuIG59KGUsYSxlLnBhcmVudC5BfHxuWzBdKX1mdW5jdGlvbiBvKHQpe3QuXy54PXQueit0LnBhcmVudC5tLHQubSs9dC5wYXJlbnQubX1mdW5jdGlvbiBzKHQpe3QueCo9ZSx0Lnk9dC5kZXB0aCpyfXJldHVybiBhLnNlcGFyYXRpb249ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ZSxhKTp0fSxhLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ITEsZT0rdFswXSxyPSt0WzFdLGEpOm4/bnVsbDpbZSxyXX0sYS5ub2RlU2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0hMCxlPSt0WzBdLHI9K3RbMV0sYSk6bj9bZSxyXTpudWxsfSxhfSx0LnRyZWVtYXA9ZnVuY3Rpb24oKXt2YXIgdD1XLGU9ITEscj0xLG49MSxhPVswXSxpPU0sbz1NLHM9TSxsPU0sYz1NO2Z1bmN0aW9uIHUodCl7cmV0dXJuIHQueDA9dC55MD0wLHQueDE9cix0LnkxPW4sdC5lYWNoQmVmb3JlKGgpLGE9WzBdLGUmJnQuZWFjaEJlZm9yZShQKSx0fWZ1bmN0aW9uIGgoZSl7dmFyIHI9YVtlLmRlcHRoXSxuPWUueDArcix1PWUueTArcixoPWUueDEtcixmPWUueTEtcjtoPG4mJihuPWg9KG4raCkvMiksZjx1JiYodT1mPSh1K2YpLzIpLGUueDA9bixlLnkwPXUsZS54MT1oLGUueTE9ZixlLmNoaWxkcmVuJiYocj1hW2UuZGVwdGgrMV09aShlKS8yLG4rPWMoZSktcix1Kz1vKGUpLXIsKGgtPXMoZSktcik8biYmKG49aD0obitoKS8yKSwoZi09bChlKS1yKTx1JiYodT1mPSh1K2YpLzIpLHQoZSxuLHUsaCxmKSl9cmV0dXJuIHUucm91bmQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9ISF0LHUpOmV9LHUuc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0rdFswXSxuPSt0WzFdLHUpOltyLG5dfSx1LnRpbGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9VChlKSx1KTp0fSx1LnBhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dS5wYWRkaW5nSW5uZXIodCkucGFkZGluZ091dGVyKHQpOnUucGFkZGluZ0lubmVyKCl9LHUucGFkZGluZ0lubmVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6QSgrdCksdSk6aX0sdS5wYWRkaW5nT3V0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dS5wYWRkaW5nVG9wKHQpLnBhZGRpbmdSaWdodCh0KS5wYWRkaW5nQm90dG9tKHQpLnBhZGRpbmdMZWZ0KHQpOnUucGFkZGluZ1RvcCgpfSx1LnBhZGRpbmdUb3A9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpBKCt0KSx1KTpvfSx1LnBhZGRpbmdSaWdodD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkEoK3QpLHUpOnN9LHUucGFkZGluZ0JvdHRvbT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkEoK3QpLHUpOmx9LHUucGFkZGluZ0xlZnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpBKCt0KSx1KTpjfSx1fSx0LnRyZWVtYXBCaW5hcnk9ZnVuY3Rpb24odCxlLHIsbixhKXt2YXIgaSxvLHM9dC5jaGlsZHJlbixsPXMubGVuZ3RoLGM9bmV3IEFycmF5KGwrMSk7Zm9yKGNbMF09bz1pPTA7aTxsOysraSljW2krMV09bys9c1tpXS52YWx1ZTshZnVuY3Rpb24gdChlLHIsbixhLGksbyxsKXtpZihlPj1yLTEpe3ZhciB1PXNbZV07cmV0dXJuIHUueDA9YSx1LnkwPWksdS54MT1vLHZvaWQodS55MT1sKX1mb3IodmFyIGg9Y1tlXSxmPW4vMitoLHA9ZSsxLGQ9ci0xO3A8ZDspe3ZhciBnPXArZD4+PjE7Y1tnXTxmP3A9ZysxOmQ9Z31mLWNbcC0xXTxjW3BdLWYmJmUrMTxwJiYtLXA7dmFyIHY9Y1twXS1oLG09bi12O2lmKG8tYT5sLWkpe3ZhciB5PShhKm0rbyp2KS9uO3QoZSxwLHYsYSxpLHksbCksdChwLHIsbSx5LGksbyxsKX1lbHNle3ZhciB4PShpKm0rbCp2KS9uO3QoZSxwLHYsYSxpLG8seCksdChwLHIsbSxhLHgsbyxsKX19KDAsbCx0LnZhbHVlLGUscixuLGEpfSx0LnRyZWVtYXBEaWNlPU8sdC50cmVlbWFwUmVzcXVhcmlmeT1YLHQudHJlZW1hcFNsaWNlPUgsdC50cmVlbWFwU2xpY2VEaWNlPWZ1bmN0aW9uKHQsZSxyLG4sYSl7KDEmdC5kZXB0aD9IOk8pKHQsZSxyLG4sYSl9LHQudHJlZW1hcFNxdWFyaWZ5PVcsT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSgib2JqZWN0Ij09dHlwZW9mIHImJiJ1bmRlZmluZWQiIT10eXBlb2YgZT9yOihuPW58fHNlbGYpLmQzPW4uZDN8fHt9KX0se31dLDE2MDpbZnVuY3Rpb24odCxlLHIpe3ZhciBuLGE7bj10aGlzLGE9ZnVuY3Rpb24odCxlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0LGUscixuLGEpe3ZhciBpPXQqdCxvPWkqdDtyZXR1cm4oKDEtMyp0KzMqaS1vKSplKyg0LTYqaSszKm8pKnIrKDErMyp0KzMqaS0zKm8pKm4rbyphKS82fWZ1bmN0aW9uIG4odCl7dmFyIGU9dC5sZW5ndGgtMTtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGE9bjw9MD9uPTA6bj49MT8obj0xLGUtMSk6TWF0aC5mbG9vcihuKmUpLGk9dFthXSxvPXRbYSsxXSxzPWE+MD90W2EtMV06MippLW8sbD1hPGUtMT90W2ErMl06MipvLWk7cmV0dXJuIHIoKG4tYS9lKSplLHMsaSxvLGwpfX1mdW5jdGlvbiBhKHQpe3ZhciBlPXQubGVuZ3RoO3JldHVybiBmdW5jdGlvbihuKXt2YXIgYT1NYXRoLmZsb29yKCgobiU9MSk8MD8rK246bikqZSksaT10WyhhK2UtMSklZV0sbz10W2ElZV0scz10WyhhKzEpJWVdLGw9dFsoYSsyKSVlXTtyZXR1cm4gcigobi1hL2UpKmUsaSxvLHMsbCl9fWZ1bmN0aW9uIGkodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIG8odCxlKXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIHQrciplfX1mdW5jdGlvbiBzKHQsZSl7dmFyIHI9ZS10O3JldHVybiByP28odCxyPjE4MHx8cjwtMTgwP3ItMzYwKk1hdGgucm91bmQoci8zNjApOnIpOmkoaXNOYU4odCk/ZTp0KX1mdW5jdGlvbiBsKHQpe3JldHVybiAxPT0odD0rdCk/YzpmdW5jdGlvbihlLHIpe3JldHVybiByLWU/ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PU1hdGgucG93KHQsciksZT1NYXRoLnBvdyhlLHIpLXQscj0xL3IsZnVuY3Rpb24obil7cmV0dXJuIE1hdGgucG93KHQrbiplLHIpfX0oZSxyLHQpOmkoaXNOYU4oZSk/cjplKX19ZnVuY3Rpb24gYyh0LGUpe3ZhciByPWUtdDtyZXR1cm4gcj9vKHQscik6aShpc05hTih0KT9lOnQpfXZhciB1PWZ1bmN0aW9uIHQocil7dmFyIG49bChyKTtmdW5jdGlvbiBhKHQscil7dmFyIGE9bigodD1lLnJnYih0KSkuciwocj1lLnJnYihyKSkuciksaT1uKHQuZyxyLmcpLG89bih0LmIsci5iKSxzPWModC5vcGFjaXR5LHIub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0LnI9YShlKSx0Lmc9aShlKSx0LmI9byhlKSx0Lm9wYWNpdHk9cyhlKSx0KyIifX1yZXR1cm4gYS5nYW1tYT10LGF9KDEpO2Z1bmN0aW9uIGgodCl7cmV0dXJuIGZ1bmN0aW9uKHIpe3ZhciBuLGEsaT1yLmxlbmd0aCxvPW5ldyBBcnJheShpKSxzPW5ldyBBcnJheShpKSxsPW5ldyBBcnJheShpKTtmb3Iobj0wO248aTsrK24pYT1lLnJnYihyW25dKSxvW25dPWEucnx8MCxzW25dPWEuZ3x8MCxsW25dPWEuYnx8MDtyZXR1cm4gbz10KG8pLHM9dChzKSxsPXQobCksYS5vcGFjaXR5PTEsZnVuY3Rpb24odCl7cmV0dXJuIGEucj1vKHQpLGEuZz1zKHQpLGEuYj1sKHQpLGErIiJ9fX12YXIgZj1oKG4pLHA9aChhKTtmdW5jdGlvbiBkKHQsZSl7ZXx8KGU9W10pO3ZhciByLG49dD9NYXRoLm1pbihlLmxlbmd0aCx0Lmxlbmd0aCk6MCxhPWUuc2xpY2UoKTtyZXR1cm4gZnVuY3Rpb24oaSl7Zm9yKHI9MDtyPG47KytyKWFbcl09dFtyXSooMS1pKStlW3JdKmk7cmV0dXJuIGF9fWZ1bmN0aW9uIGcodCl7cmV0dXJuIEFycmF5QnVmZmVyLmlzVmlldyh0KSYmISh0IGluc3RhbmNlb2YgRGF0YVZpZXcpfWZ1bmN0aW9uIHYodCxlKXt2YXIgcixuPWU/ZS5sZW5ndGg6MCxhPXQ/TWF0aC5taW4obix0Lmxlbmd0aCk6MCxpPW5ldyBBcnJheShhKSxvPW5ldyBBcnJheShuKTtmb3Iocj0wO3I8YTsrK3IpaVtyXT1rKHRbcl0sZVtyXSk7Zm9yKDtyPG47KytyKW9bcl09ZVtyXTtyZXR1cm4gZnVuY3Rpb24odCl7Zm9yKHI9MDtyPGE7KytyKW9bcl09aVtyXSh0KTtyZXR1cm4gb319ZnVuY3Rpb24gbSh0LGUpe3ZhciByPW5ldyBEYXRlO3JldHVybiB0PSt0LGU9K2UsZnVuY3Rpb24obil7cmV0dXJuIHIuc2V0VGltZSh0KigxLW4pK2Uqbikscn19ZnVuY3Rpb24geSh0LGUpe3JldHVybiB0PSt0LGU9K2UsZnVuY3Rpb24ocil7cmV0dXJuIHQqKDEtcikrZSpyfX1mdW5jdGlvbiB4KHQsZSl7dmFyIHIsbj17fSxhPXt9O2ZvcihyIGluIG51bGwhPT10JiYib2JqZWN0Ij09dHlwZW9mIHR8fCh0PXt9KSxudWxsIT09ZSYmIm9iamVjdCI9PXR5cGVvZiBlfHwoZT17fSksZSlyIGluIHQ/bltyXT1rKHRbcl0sZVtyXSk6YVtyXT1lW3JdO3JldHVybiBmdW5jdGlvbih0KXtmb3IociBpbiBuKWFbcl09bltyXSh0KTtyZXR1cm4gYX19dmFyIGI9L1stK10/KD86XGQrXC4/XGQqfFwuP1xkKykoPzpbZUVdWy0rXT9cZCspPy9nLF89bmV3IFJlZ0V4cChiLnNvdXJjZSwiZyIpO2Z1bmN0aW9uIHcodCxlKXt2YXIgcixuLGEsaT1iLmxhc3RJbmRleD1fLmxhc3RJbmRleD0wLG89LTEscz1bXSxsPVtdO2Zvcih0Kz0iIixlKz0iIjsocj1iLmV4ZWModCkpJiYobj1fLmV4ZWMoZSkpOykoYT1uLmluZGV4KT5pJiYoYT1lLnNsaWNlKGksYSksc1tvXT9zW29dKz1hOnNbKytvXT1hKSwocj1yWzBdKT09PShuPW5bMF0pP3Nbb10/c1tvXSs9bjpzWysrb109bjooc1srK29dPW51bGwsbC5wdXNoKHtpOm8seDp5KHIsbil9KSksaT1fLmxhc3RJbmRleDtyZXR1cm4gaTxlLmxlbmd0aCYmKGE9ZS5zbGljZShpKSxzW29dP3Nbb10rPWE6c1srK29dPWEpLHMubGVuZ3RoPDI/bFswXT9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQoZSkrIiJ9fShsWzBdLngpOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX0oZSk6KGU9bC5sZW5ndGgsZnVuY3Rpb24odCl7Zm9yKHZhciByLG49MDtuPGU7KytuKXNbKHI9bFtuXSkuaV09ci54KHQpO3JldHVybiBzLmpvaW4oIiIpfSl9ZnVuY3Rpb24gayh0LHIpe3ZhciBuLGE9dHlwZW9mIHI7cmV0dXJuIG51bGw9PXJ8fCJib29sZWFuIj09PWE/aShyKTooIm51bWJlciI9PT1hP3k6InN0cmluZyI9PT1hPyhuPWUuY29sb3IocikpPyhyPW4sdSk6dzpyIGluc3RhbmNlb2YgZS5jb2xvcj91OnIgaW5zdGFuY2VvZiBEYXRlP206ZyhyKT9kOkFycmF5LmlzQXJyYXkocik/djoiZnVuY3Rpb24iIT10eXBlb2Ygci52YWx1ZU9mJiYiZnVuY3Rpb24iIT10eXBlb2Ygci50b1N0cmluZ3x8aXNOYU4ocik/eDp5KSh0LHIpfXZhciBULE0sQSxTLEU9MTgwL01hdGguUEksTD17dHJhbnNsYXRlWDowLHRyYW5zbGF0ZVk6MCxyb3RhdGU6MCxza2V3WDowLHNjYWxlWDoxLHNjYWxlWToxfTtmdW5jdGlvbiBDKHQsZSxyLG4sYSxpKXt2YXIgbyxzLGw7cmV0dXJuKG89TWF0aC5zcXJ0KHQqdCtlKmUpKSYmKHQvPW8sZS89byksKGw9dCpyK2UqbikmJihyLT10Kmwsbi09ZSpsKSwocz1NYXRoLnNxcnQocipyK24qbikpJiYoci89cyxuLz1zLGwvPXMpLHQqbjxlKnImJih0PS10LGU9LWUsbD0tbCxvPS1vKSx7dHJhbnNsYXRlWDphLHRyYW5zbGF0ZVk6aSxyb3RhdGU6TWF0aC5hdGFuMihlLHQpKkUsc2tld1g6TWF0aC5hdGFuKGwpKkUsc2NhbGVYOm8sc2NhbGVZOnN9fWZ1bmN0aW9uIFAodCxlLHIsbil7ZnVuY3Rpb24gYSh0KXtyZXR1cm4gdC5sZW5ndGg/dC5wb3AoKSsiICI6IiJ9cmV0dXJuIGZ1bmN0aW9uKGksbyl7dmFyIHM9W10sbD1bXTtyZXR1cm4gaT10KGkpLG89dChvKSxmdW5jdGlvbih0LG4sYSxpLG8scyl7aWYodCE9PWF8fG4hPT1pKXt2YXIgbD1vLnB1c2goInRyYW5zbGF0ZSgiLG51bGwsZSxudWxsLHIpO3MucHVzaCh7aTpsLTQseDp5KHQsYSl9LHtpOmwtMix4OnkobixpKX0pfWVsc2UoYXx8aSkmJm8ucHVzaCgidHJhbnNsYXRlKCIrYStlK2krcil9KGkudHJhbnNsYXRlWCxpLnRyYW5zbGF0ZVksby50cmFuc2xhdGVYLG8udHJhbnNsYXRlWSxzLGwpLGZ1bmN0aW9uKHQsZSxyLGkpe3QhPT1lPyh0LWU+MTgwP2UrPTM2MDplLXQ+MTgwJiYodCs9MzYwKSxpLnB1c2goe2k6ci5wdXNoKGEocikrInJvdGF0ZSgiLG51bGwsbiktMix4OnkodCxlKX0pKTplJiZyLnB1c2goYShyKSsicm90YXRlKCIrZStuKX0oaS5yb3RhdGUsby5yb3RhdGUscyxsKSxmdW5jdGlvbih0LGUscixpKXt0IT09ZT9pLnB1c2goe2k6ci5wdXNoKGEocikrInNrZXdYKCIsbnVsbCxuKS0yLHg6eSh0LGUpfSk6ZSYmci5wdXNoKGEocikrInNrZXdYKCIrZStuKX0oaS5za2V3WCxvLnNrZXdYLHMsbCksZnVuY3Rpb24odCxlLHIsbixpLG8pe2lmKHQhPT1yfHxlIT09bil7dmFyIHM9aS5wdXNoKGEoaSkrInNjYWxlKCIsbnVsbCwiLCIsbnVsbCwiKSIpO28ucHVzaCh7aTpzLTQseDp5KHQscil9LHtpOnMtMix4OnkoZSxuKX0pfWVsc2UgMT09PXImJjE9PT1ufHxpLnB1c2goYShpKSsic2NhbGUoIityKyIsIituKyIpIil9KGkuc2NhbGVYLGkuc2NhbGVZLG8uc2NhbGVYLG8uc2NhbGVZLHMsbCksaT1vPW51bGwsZnVuY3Rpb24odCl7Zm9yKHZhciBlLHI9LTEsbj1sLmxlbmd0aDsrK3I8bjspc1soZT1sW3JdKS5pXT1lLngodCk7cmV0dXJuIHMuam9pbigiIil9fX12YXIgTz1QKGZ1bmN0aW9uKHQpe3JldHVybiJub25lIj09PXQ/TDooVHx8KFQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIiksTT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsQT1kb2N1bWVudC5kZWZhdWx0VmlldyksVC5zdHlsZS50cmFuc2Zvcm09dCx0PUEuZ2V0Q29tcHV0ZWRTdHlsZShNLmFwcGVuZENoaWxkKFQpLG51bGwpLmdldFByb3BlcnR5VmFsdWUoInRyYW5zZm9ybSIpLE0ucmVtb3ZlQ2hpbGQoVCksQygrKHQ9dC5zbGljZSg3LC0xKS5zcGxpdCgiLCIpKVswXSwrdFsxXSwrdFsyXSwrdFszXSwrdFs0XSwrdFs1XSkpfSwicHgsICIsInB4KSIsImRlZykiKSx6PVAoZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/TDooU3x8KFM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImciKSksUy5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsdCksKHQ9Uy50cmFuc2Zvcm0uYmFzZVZhbC5jb25zb2xpZGF0ZSgpKT9DKCh0PXQubWF0cml4KS5hLHQuYix0LmMsdC5kLHQuZSx0LmYpOkwpfSwiLCAiLCIpIiwiKSIpLEk9TWF0aC5TUVJUMixEPTIsUj00LEY9MWUtMTI7ZnVuY3Rpb24gQih0KXtyZXR1cm4oKHQ9TWF0aC5leHAodCkpKzEvdCkvMn1mdW5jdGlvbiBOKHQpe3JldHVybiBmdW5jdGlvbihyLG4pe3ZhciBhPXQoKHI9ZS5oc2wocikpLmgsKG49ZS5oc2wobikpLmgpLGk9YyhyLnMsbi5zKSxvPWMoci5sLG4ubCkscz1jKHIub3BhY2l0eSxuLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gci5oPWEodCksci5zPWkodCksci5sPW8odCksci5vcGFjaXR5PXModCkscisiIn19fXZhciBqPU4ocyksVj1OKGMpO2Z1bmN0aW9uIFUodCl7cmV0dXJuIGZ1bmN0aW9uKHIsbil7dmFyIGE9dCgocj1lLmhjbChyKSkuaCwobj1lLmhjbChuKSkuaCksaT1jKHIuYyxuLmMpLG89YyhyLmwsbi5sKSxzPWMoci5vcGFjaXR5LG4ub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiByLmg9YSh0KSxyLmM9aSh0KSxyLmw9byh0KSxyLm9wYWNpdHk9cyh0KSxyKyIifX19dmFyIHE9VShzKSxIPVUoYyk7ZnVuY3Rpb24gRyh0KXtyZXR1cm4gZnVuY3Rpb24gcihuKXtmdW5jdGlvbiBhKHIsYSl7dmFyIGk9dCgocj1lLmN1YmVoZWxpeChyKSkuaCwoYT1lLmN1YmVoZWxpeChhKSkuaCksbz1jKHIucyxhLnMpLHM9YyhyLmwsYS5sKSxsPWMoci5vcGFjaXR5LGEub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiByLmg9aSh0KSxyLnM9byh0KSxyLmw9cyhNYXRoLnBvdyh0LG4pKSxyLm9wYWNpdHk9bCh0KSxyKyIifX1yZXR1cm4gbj0rbixhLmdhbW1hPXIsYX0oMSl9dmFyIFk9RyhzKSxXPUcoYyk7dC5pbnRlcnBvbGF0ZT1rLHQuaW50ZXJwb2xhdGVBcnJheT1mdW5jdGlvbih0LGUpe3JldHVybihnKGUpP2Q6dikodCxlKX0sdC5pbnRlcnBvbGF0ZUJhc2lzPW4sdC5pbnRlcnBvbGF0ZUJhc2lzQ2xvc2VkPWEsdC5pbnRlcnBvbGF0ZUN1YmVoZWxpeD1ZLHQuaW50ZXJwb2xhdGVDdWJlaGVsaXhMb25nPVcsdC5pbnRlcnBvbGF0ZURhdGU9bSx0LmludGVycG9sYXRlRGlzY3JldGU9ZnVuY3Rpb24odCl7dmFyIGU9dC5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiB0W01hdGgubWF4KDAsTWF0aC5taW4oZS0xLE1hdGguZmxvb3IociplKSkpXX19LHQuaW50ZXJwb2xhdGVIY2w9cSx0LmludGVycG9sYXRlSGNsTG9uZz1ILHQuaW50ZXJwb2xhdGVIc2w9aix0LmludGVycG9sYXRlSHNsTG9uZz1WLHQuaW50ZXJwb2xhdGVIdWU9ZnVuY3Rpb24odCxlKXt2YXIgcj1zKCt0LCtlKTtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9cih0KTtyZXR1cm4gZS0zNjAqTWF0aC5mbG9vcihlLzM2MCl9fSx0LmludGVycG9sYXRlTGFiPWZ1bmN0aW9uKHQscil7dmFyIG49YygodD1lLmxhYih0KSkubCwocj1lLmxhYihyKSkubCksYT1jKHQuYSxyLmEpLGk9Yyh0LmIsci5iKSxvPWModC5vcGFjaXR5LHIub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0Lmw9bihlKSx0LmE9YShlKSx0LmI9aShlKSx0Lm9wYWNpdHk9byhlKSx0KyIifX0sdC5pbnRlcnBvbGF0ZU51bWJlcj15LHQuaW50ZXJwb2xhdGVOdW1iZXJBcnJheT1kLHQuaW50ZXJwb2xhdGVPYmplY3Q9eCx0LmludGVycG9sYXRlUmdiPXUsdC5pbnRlcnBvbGF0ZVJnYkJhc2lzPWYsdC5pbnRlcnBvbGF0ZVJnYkJhc2lzQ2xvc2VkPXAsdC5pbnRlcnBvbGF0ZVJvdW5kPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9K3QsZT0rZSxmdW5jdGlvbihyKXtyZXR1cm4gTWF0aC5yb3VuZCh0KigxLXIpK2Uqcil9fSx0LmludGVycG9sYXRlU3RyaW5nPXcsdC5pbnRlcnBvbGF0ZVRyYW5zZm9ybUNzcz1PLHQuaW50ZXJwb2xhdGVUcmFuc2Zvcm1Tdmc9eix0LmludGVycG9sYXRlWm9vbT1mdW5jdGlvbih0LGUpe3ZhciByLG4sYT10WzBdLGk9dFsxXSxvPXRbMl0scz1lWzBdLGw9ZVsxXSxjPWVbMl0sdT1zLWEsaD1sLWksZj11KnUraCpoO2lmKGY8RiluPU1hdGgubG9nKGMvbykvSSxyPWZ1bmN0aW9uKHQpe3JldHVyblthK3QqdSxpK3QqaCxvKk1hdGguZXhwKEkqdCpuKV19O2Vsc2V7dmFyIHA9TWF0aC5zcXJ0KGYpLGQ9KGMqYy1vKm8rUipmKS8oMipvKkQqcCksZz0oYypjLW8qby1SKmYpLygyKmMqRCpwKSx2PU1hdGgubG9nKE1hdGguc3FydChkKmQrMSktZCksbT1NYXRoLmxvZyhNYXRoLnNxcnQoZypnKzEpLWcpO249KG0tdikvSSxyPWZ1bmN0aW9uKHQpe3ZhciBlLHI9dCpuLHM9Qih2KSxsPW8vKEQqcCkqKHMqKGU9SSpyK3YsKChlPU1hdGguZXhwKDIqZSkpLTEpLyhlKzEpKS1mdW5jdGlvbih0KXtyZXR1cm4oKHQ9TWF0aC5leHAodCkpLTEvdCkvMn0odikpO3JldHVyblthK2wqdSxpK2wqaCxvKnMvQihJKnIrdildfX1yZXR1cm4gci5kdXJhdGlvbj0xZTMqbixyfSx0LnBpZWNld2lzZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wLG49ZS5sZW5ndGgtMSxhPWVbMF0saT1uZXcgQXJyYXkobjwwPzA6bik7cjxuOylpW3JdPXQoYSxhPWVbKytyXSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBlPU1hdGgubWF4KDAsTWF0aC5taW4obi0xLE1hdGguZmxvb3IodCo9bikpKTtyZXR1cm4gaVtlXSh0LWUpfX0sdC5xdWFudGl6ZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1uZXcgQXJyYXkoZSksbj0wO248ZTsrK24pcltuXT10KG4vKGUtMSkpO3JldHVybiByfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LCJvYmplY3QiPT10eXBlb2YgciYmInVuZGVmaW5lZCIhPXR5cGVvZiBlP2Eocix0KCJkMy1jb2xvciIpKTphKChuPW58fHNlbGYpLmQzPW4uZDN8fHt9LG4uZDMpfSx7ImQzLWNvbG9yIjoxNTZ9XSwxNjE6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbjtuPXRoaXMsZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiO3ZhciBlPU1hdGguUEkscj0yKmUsbj1yLTFlLTY7ZnVuY3Rpb24gYSgpe3RoaXMuX3gwPXRoaXMuX3kwPXRoaXMuX3gxPXRoaXMuX3kxPW51bGwsdGhpcy5fPSIifWZ1bmN0aW9uIGkoKXtyZXR1cm4gbmV3IGF9YS5wcm90b3R5cGU9aS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmEsbW92ZVRvOmZ1bmN0aW9uKHQsZSl7dGhpcy5fKz0iTSIrKHRoaXMuX3gwPXRoaXMuX3gxPSt0KSsiLCIrKHRoaXMuX3kwPXRoaXMuX3kxPStlKX0sY2xvc2VQYXRoOmZ1bmN0aW9uKCl7bnVsbCE9PXRoaXMuX3gxJiYodGhpcy5feDE9dGhpcy5feDAsdGhpcy5feTE9dGhpcy5feTAsdGhpcy5fKz0iWiIpfSxsaW5lVG86ZnVuY3Rpb24odCxlKXt0aGlzLl8rPSJMIisodGhpcy5feDE9K3QpKyIsIisodGhpcy5feTE9K2UpfSxxdWFkcmF0aWNDdXJ2ZVRvOmZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMuXys9IlEiKyArdCsiLCIrICtlKyIsIisodGhpcy5feDE9K3IpKyIsIisodGhpcy5feTE9K24pfSxiZXppZXJDdXJ2ZVRvOmZ1bmN0aW9uKHQsZSxyLG4sYSxpKXt0aGlzLl8rPSJDIisgK3QrIiwiKyArZSsiLCIrICtyKyIsIisgK24rIiwiKyh0aGlzLl94MT0rYSkrIiwiKyh0aGlzLl95MT0raSl9LGFyY1RvOmZ1bmN0aW9uKHQscixuLGEsaSl7dD0rdCxyPStyLG49K24sYT0rYSxpPStpO3ZhciBvPXRoaXMuX3gxLHM9dGhpcy5feTEsbD1uLXQsYz1hLXIsdT1vLXQsaD1zLXIsZj11KnUraCpoO2lmKGk8MCl0aHJvdyBuZXcgRXJyb3IoIm5lZ2F0aXZlIHJhZGl1czogIitpKTtpZihudWxsPT09dGhpcy5feDEpdGhpcy5fKz0iTSIrKHRoaXMuX3gxPXQpKyIsIisodGhpcy5feTE9cik7ZWxzZSBpZihmPjFlLTYpaWYoTWF0aC5hYnMoaCpsLWMqdSk+MWUtNiYmaSl7dmFyIHA9bi1vLGQ9YS1zLGc9bCpsK2MqYyx2PXAqcCtkKmQsbT1NYXRoLnNxcnQoZykseT1NYXRoLnNxcnQoZikseD1pKk1hdGgudGFuKChlLU1hdGguYWNvcygoZytmLXYpLygyKm0qeSkpKS8yKSxiPXgveSxfPXgvbTtNYXRoLmFicyhiLTEpPjFlLTYmJih0aGlzLl8rPSJMIisodCtiKnUpKyIsIisocitiKmgpKSx0aGlzLl8rPSJBIitpKyIsIitpKyIsMCwwLCIrICsoaCpwPnUqZCkrIiwiKyh0aGlzLl94MT10K18qbCkrIiwiKyh0aGlzLl95MT1yK18qYyl9ZWxzZSB0aGlzLl8rPSJMIisodGhpcy5feDE9dCkrIiwiKyh0aGlzLl95MT1yKTtlbHNlO30sYXJjOmZ1bmN0aW9uKHQsYSxpLG8scyxsKXt0PSt0LGE9K2E7dmFyIGM9KGk9K2kpKk1hdGguY29zKG8pLHU9aSpNYXRoLnNpbihvKSxoPXQrYyxmPWErdSxwPTFebCxkPWw/by1zOnMtbztpZihpPDApdGhyb3cgbmV3IEVycm9yKCJuZWdhdGl2ZSByYWRpdXM6ICIraSk7bnVsbD09PXRoaXMuX3gxP3RoaXMuXys9Ik0iK2grIiwiK2Y6KE1hdGguYWJzKHRoaXMuX3gxLWgpPjFlLTZ8fE1hdGguYWJzKHRoaXMuX3kxLWYpPjFlLTYpJiYodGhpcy5fKz0iTCIraCsiLCIrZiksaSYmKGQ8MCYmKGQ9ZCVyK3IpLGQ+bj90aGlzLl8rPSJBIitpKyIsIitpKyIsMCwxLCIrcCsiLCIrKHQtYykrIiwiKyhhLXUpKyJBIitpKyIsIitpKyIsMCwxLCIrcCsiLCIrKHRoaXMuX3gxPWgpKyIsIisodGhpcy5feTE9Zik6ZD4xZS02JiYodGhpcy5fKz0iQSIraSsiLCIraSsiLDAsIisgKyhkPj1lKSsiLCIrcCsiLCIrKHRoaXMuX3gxPXQraSpNYXRoLmNvcyhzKSkrIiwiKyh0aGlzLl95MT1hK2kqTWF0aC5zaW4ocykpKSl9LHJlY3Q6ZnVuY3Rpb24odCxlLHIsbil7dGhpcy5fKz0iTSIrKHRoaXMuX3gwPXRoaXMuX3gxPSt0KSsiLCIrKHRoaXMuX3kwPXRoaXMuX3kxPStlKSsiaCIrICtyKyJ2IisgK24rImgiKy1yKyJaIn0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ffX0sdC5wYXRoPWksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSgib2JqZWN0Ij09dHlwZW9mIHImJiJ1bmRlZmluZWQiIT10eXBlb2YgZT9yOm4uZDM9bi5kM3x8e30pfSx7fV0sMTYyOltmdW5jdGlvbih0LGUscil7dmFyIG47bj10aGlzLGZ1bmN0aW9uKHQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBlKHQsZSxyLG4pe2lmKGlzTmFOKGUpfHxpc05hTihyKSlyZXR1cm4gdDt2YXIgYSxpLG8scyxsLGMsdSxoLGYscD10Ll9yb290LGQ9e2RhdGE6bn0sZz10Ll94MCx2PXQuX3kwLG09dC5feDEseT10Ll95MTtpZighcClyZXR1cm4gdC5fcm9vdD1kLHQ7Zm9yKDtwLmxlbmd0aDspaWYoKGM9ZT49KGk9KGcrbSkvMikpP2c9aTptPWksKHU9cj49KG89KHYreSkvMikpP3Y9bzp5PW8sYT1wLCEocD1wW2g9dTw8MXxjXSkpcmV0dXJuIGFbaF09ZCx0O2lmKHM9K3QuX3guY2FsbChudWxsLHAuZGF0YSksbD0rdC5feS5jYWxsKG51bGwscC5kYXRhKSxlPT09cyYmcj09PWwpcmV0dXJuIGQubmV4dD1wLGE/YVtoXT1kOnQuX3Jvb3Q9ZCx0O2Rve2E9YT9hW2hdPW5ldyBBcnJheSg0KTp0Ll9yb290PW5ldyBBcnJheSg0KSwoYz1lPj0oaT0oZyttKS8yKSk/Zz1pOm09aSwodT1yPj0obz0odit5KS8yKSk/dj1vOnk9b313aGlsZSgoaD11PDwxfGMpPT0oZj0obD49byk8PDF8cz49aSkpO3JldHVybiBhW2ZdPXAsYVtoXT1kLHR9dmFyIHI9ZnVuY3Rpb24odCxlLHIsbixhKXt0aGlzLm5vZGU9dCx0aGlzLngwPWUsdGhpcy55MD1yLHRoaXMueDE9bix0aGlzLnkxPWF9O2Z1bmN0aW9uIG4odCl7cmV0dXJuIHRbMF19ZnVuY3Rpb24gYSh0KXtyZXR1cm4gdFsxXX1mdW5jdGlvbiBpKHQsZSxyKXt2YXIgaT1uZXcgbyhudWxsPT1lP246ZSxudWxsPT1yP2E6cixOYU4sTmFOLE5hTixOYU4pO3JldHVybiBudWxsPT10P2k6aS5hZGRBbGwodCl9ZnVuY3Rpb24gbyh0LGUscixuLGEsaSl7dGhpcy5feD10LHRoaXMuX3k9ZSx0aGlzLl94MD1yLHRoaXMuX3kwPW4sdGhpcy5feDE9YSx0aGlzLl95MT1pLHRoaXMuX3Jvb3Q9dm9pZCAwfWZ1bmN0aW9uIHModCl7Zm9yKHZhciBlPXtkYXRhOnQuZGF0YX0scj1lO3Q9dC5uZXh0OylyPXIubmV4dD17ZGF0YTp0LmRhdGF9O3JldHVybiBlfXZhciBsPWkucHJvdG90eXBlPW8ucHJvdG90eXBlO2wuY29weT1mdW5jdGlvbigpe3ZhciB0LGUscj1uZXcgbyh0aGlzLl94LHRoaXMuX3ksdGhpcy5feDAsdGhpcy5feTAsdGhpcy5feDEsdGhpcy5feTEpLG49dGhpcy5fcm9vdDtpZighbilyZXR1cm4gcjtpZighbi5sZW5ndGgpcmV0dXJuIHIuX3Jvb3Q9cyhuKSxyO2Zvcih0PVt7c291cmNlOm4sdGFyZ2V0OnIuX3Jvb3Q9bmV3IEFycmF5KDQpfV07bj10LnBvcCgpOylmb3IodmFyIGE9MDthPDQ7KythKShlPW4uc291cmNlW2FdKSYmKGUubGVuZ3RoP3QucHVzaCh7c291cmNlOmUsdGFyZ2V0Om4udGFyZ2V0W2FdPW5ldyBBcnJheSg0KX0pOm4udGFyZ2V0W2FdPXMoZSkpO3JldHVybiByfSxsLmFkZD1mdW5jdGlvbih0KXt2YXIgcj0rdGhpcy5feC5jYWxsKG51bGwsdCksbj0rdGhpcy5feS5jYWxsKG51bGwsdCk7cmV0dXJuIGUodGhpcy5jb3ZlcihyLG4pLHIsbix0KX0sbC5hZGRBbGw9ZnVuY3Rpb24odCl7dmFyIHIsbixhLGksbz10Lmxlbmd0aCxzPW5ldyBBcnJheShvKSxsPW5ldyBBcnJheShvKSxjPTEvMCx1PTEvMCxoPS0xLzAsZj0tMS8wO2ZvcihuPTA7bjxvOysrbilpc05hTihhPSt0aGlzLl94LmNhbGwobnVsbCxyPXRbbl0pKXx8aXNOYU4oaT0rdGhpcy5feS5jYWxsKG51bGwscikpfHwoc1tuXT1hLGxbbl09aSxhPGMmJihjPWEpLGE+aCYmKGg9YSksaTx1JiYodT1pKSxpPmYmJihmPWkpKTtmb3IoaDxjJiYoYz10aGlzLl94MCxoPXRoaXMuX3gxKSxmPHUmJih1PXRoaXMuX3kwLGY9dGhpcy5feTEpLHRoaXMuY292ZXIoYyx1KS5jb3ZlcihoLGYpLG49MDtuPG87KytuKWUodGhpcyxzW25dLGxbbl0sdFtuXSk7cmV0dXJuIHRoaXN9LGwuY292ZXI9ZnVuY3Rpb24odCxlKXtpZihpc05hTih0PSt0KXx8aXNOYU4oZT0rZSkpcmV0dXJuIHRoaXM7dmFyIHI9dGhpcy5feDAsbj10aGlzLl95MCxhPXRoaXMuX3gxLGk9dGhpcy5feTE7aWYoaXNOYU4ocikpYT0ocj1NYXRoLmZsb29yKHQpKSsxLGk9KG49TWF0aC5mbG9vcihlKSkrMTtlbHNle2lmKCEocj50fHx0PmF8fG4+ZXx8ZT5pKSlyZXR1cm4gdGhpczt2YXIgbyxzLGw9YS1yLGM9dGhpcy5fcm9vdDtzd2l0Y2gocz0oZTwobitpKS8yKTw8MXx0PChyK2EpLzIpe2Nhc2UgMDpkb3sobz1uZXcgQXJyYXkoNCkpW3NdPWMsYz1vfXdoaWxlKGk9bisobCo9MiksdD4oYT1yK2wpfHxlPmkpO2JyZWFrO2Nhc2UgMTpkb3sobz1uZXcgQXJyYXkoNCkpW3NdPWMsYz1vfXdoaWxlKGk9bisobCo9MiksKHI9YS1sKT50fHxlPmkpO2JyZWFrO2Nhc2UgMjpkb3sobz1uZXcgQXJyYXkoNCkpW3NdPWMsYz1vfXdoaWxlKG49aS0obCo9MiksdD4oYT1yK2wpfHxuPmUpO2JyZWFrO2Nhc2UgMzpkb3sobz1uZXcgQXJyYXkoNCkpW3NdPWMsYz1vfXdoaWxlKG49aS0obCo9MiksKHI9YS1sKT50fHxuPmUpfXRoaXMuX3Jvb3QmJnRoaXMuX3Jvb3QubGVuZ3RoJiYodGhpcy5fcm9vdD1jKX1yZXR1cm4gdGhpcy5feDA9cix0aGlzLl95MD1uLHRoaXMuX3gxPWEsdGhpcy5feTE9aSx0aGlzfSxsLmRhdGE9ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy52aXNpdChmdW5jdGlvbihlKXtpZighZS5sZW5ndGgpZG97dC5wdXNoKGUuZGF0YSl9d2hpbGUoZT1lLm5leHQpfSksdH0sbC5leHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5jb3ZlcigrdFswXVswXSwrdFswXVsxXSkuY292ZXIoK3RbMV1bMF0sK3RbMV1bMV0pOmlzTmFOKHRoaXMuX3gwKT92b2lkIDA6W1t0aGlzLl94MCx0aGlzLl95MF0sW3RoaXMuX3gxLHRoaXMuX3kxXV19LGwuZmluZD1mdW5jdGlvbih0LGUsbil7dmFyIGEsaSxvLHMsbCxjLHUsaD10aGlzLl94MCxmPXRoaXMuX3kwLHA9dGhpcy5feDEsZD10aGlzLl95MSxnPVtdLHY9dGhpcy5fcm9vdDtmb3IodiYmZy5wdXNoKG5ldyByKHYsaCxmLHAsZCkpLG51bGw9PW4/bj0xLzA6KGg9dC1uLGY9ZS1uLHA9dCtuLGQ9ZStuLG4qPW4pO2M9Zy5wb3AoKTspaWYoISghKHY9Yy5ub2RlKXx8KGk9Yy54MCk+cHx8KG89Yy55MCk+ZHx8KHM9Yy54MSk8aHx8KGw9Yy55MSk8ZikpaWYodi5sZW5ndGgpe3ZhciBtPShpK3MpLzIseT0obytsKS8yO2cucHVzaChuZXcgcih2WzNdLG0seSxzLGwpLG5ldyByKHZbMl0saSx5LG0sbCksbmV3IHIodlsxXSxtLG8scyx5KSxuZXcgcih2WzBdLGksbyxtLHkpKSwodT0oZT49eSk8PDF8dD49bSkmJihjPWdbZy5sZW5ndGgtMV0sZ1tnLmxlbmd0aC0xXT1nW2cubGVuZ3RoLTEtdV0sZ1tnLmxlbmd0aC0xLXVdPWMpfWVsc2V7dmFyIHg9dC0rdGhpcy5feC5jYWxsKG51bGwsdi5kYXRhKSxiPWUtK3RoaXMuX3kuY2FsbChudWxsLHYuZGF0YSksXz14KngrYipiO2lmKF88bil7dmFyIHc9TWF0aC5zcXJ0KG49Xyk7aD10LXcsZj1lLXcscD10K3csZD1lK3csYT12LmRhdGF9fXJldHVybiBhfSxsLnJlbW92ZT1mdW5jdGlvbih0KXtpZihpc05hTihpPSt0aGlzLl94LmNhbGwobnVsbCx0KSl8fGlzTmFOKG89K3RoaXMuX3kuY2FsbChudWxsLHQpKSlyZXR1cm4gdGhpczt2YXIgZSxyLG4sYSxpLG8scyxsLGMsdSxoLGYscD10aGlzLl9yb290LGQ9dGhpcy5feDAsZz10aGlzLl95MCx2PXRoaXMuX3gxLG09dGhpcy5feTE7aWYoIXApcmV0dXJuIHRoaXM7aWYocC5sZW5ndGgpZm9yKDs7KXtpZigoYz1pPj0ocz0oZCt2KS8yKSk/ZD1zOnY9cywodT1vPj0obD0oZyttKS8yKSk/Zz1sOm09bCxlPXAsIShwPXBbaD11PDwxfGNdKSlyZXR1cm4gdGhpcztpZighcC5sZW5ndGgpYnJlYWs7KGVbaCsxJjNdfHxlW2grMiYzXXx8ZVtoKzMmM10pJiYocj1lLGY9aCl9Zm9yKDtwLmRhdGEhPT10OylpZihuPXAsIShwPXAubmV4dCkpcmV0dXJuIHRoaXM7cmV0dXJuKGE9cC5uZXh0KSYmZGVsZXRlIHAubmV4dCxuPyhhP24ubmV4dD1hOmRlbGV0ZSBuLm5leHQsdGhpcyk6ZT8oYT9lW2hdPWE6ZGVsZXRlIGVbaF0sKHA9ZVswXXx8ZVsxXXx8ZVsyXXx8ZVszXSkmJnA9PT0oZVszXXx8ZVsyXXx8ZVsxXXx8ZVswXSkmJiFwLmxlbmd0aCYmKHI/cltmXT1wOnRoaXMuX3Jvb3Q9cCksdGhpcyk6KHRoaXMuX3Jvb3Q9YSx0aGlzKX0sbC5yZW1vdmVBbGw9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj10Lmxlbmd0aDtlPHI7KytlKXRoaXMucmVtb3ZlKHRbZV0pO3JldHVybiB0aGlzfSxsLnJvb3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcm9vdH0sbC5zaXplPWZ1bmN0aW9uKCl7dmFyIHQ9MDtyZXR1cm4gdGhpcy52aXNpdChmdW5jdGlvbihlKXtpZighZS5sZW5ndGgpZG97Kyt0fXdoaWxlKGU9ZS5uZXh0KX0pLHR9LGwudmlzaXQ9ZnVuY3Rpb24odCl7dmFyIGUsbixhLGksbyxzLGw9W10sYz10aGlzLl9yb290O2ZvcihjJiZsLnB1c2gobmV3IHIoYyx0aGlzLl94MCx0aGlzLl95MCx0aGlzLl94MSx0aGlzLl95MSkpO2U9bC5wb3AoKTspaWYoIXQoYz1lLm5vZGUsYT1lLngwLGk9ZS55MCxvPWUueDEscz1lLnkxKSYmYy5sZW5ndGgpe3ZhciB1PShhK28pLzIsaD0oaStzKS8yOyhuPWNbM10pJiZsLnB1c2gobmV3IHIobix1LGgsbyxzKSksKG49Y1syXSkmJmwucHVzaChuZXcgcihuLGEsaCx1LHMpKSwobj1jWzFdKSYmbC5wdXNoKG5ldyByKG4sdSxpLG8saCkpLChuPWNbMF0pJiZsLnB1c2gobmV3IHIobixhLGksdSxoKSl9cmV0dXJuIHRoaXN9LGwudmlzaXRBZnRlcj1mdW5jdGlvbih0KXt2YXIgZSxuPVtdLGE9W107Zm9yKHRoaXMuX3Jvb3QmJm4ucHVzaChuZXcgcih0aGlzLl9yb290LHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSk7ZT1uLnBvcCgpOyl7dmFyIGk9ZS5ub2RlO2lmKGkubGVuZ3RoKXt2YXIgbyxzPWUueDAsbD1lLnkwLGM9ZS54MSx1PWUueTEsaD0ocytjKS8yLGY9KGwrdSkvMjsobz1pWzBdKSYmbi5wdXNoKG5ldyByKG8scyxsLGgsZikpLChvPWlbMV0pJiZuLnB1c2gobmV3IHIobyxoLGwsYyxmKSksKG89aVsyXSkmJm4ucHVzaChuZXcgcihvLHMsZixoLHUpKSwobz1pWzNdKSYmbi5wdXNoKG5ldyByKG8saCxmLGMsdSkpfWEucHVzaChlKX1mb3IoO2U9YS5wb3AoKTspdChlLm5vZGUsZS54MCxlLnkwLGUueDEsZS55MSk7cmV0dXJuIHRoaXN9LGwueD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5feD10LHRoaXMpOnRoaXMuX3h9LGwueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5feT10LHRoaXMpOnRoaXMuX3l9LHQucXVhZHRyZWU9aSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KCJvYmplY3QiPT10eXBlb2YgciYmInVuZGVmaW5lZCIhPXR5cGVvZiBlP3I6bi5kMz1uLmQzfHx7fSl9LHt9XSwxNjM6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbixhO249dGhpcyxhPWZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fXZhciBuPU1hdGguYWJzLGE9TWF0aC5hdGFuMixpPU1hdGguY29zLG89TWF0aC5tYXgscz1NYXRoLm1pbixsPU1hdGguc2luLGM9TWF0aC5zcXJ0LHU9MWUtMTIsaD1NYXRoLlBJLGY9aC8yLHA9MipoO2Z1bmN0aW9uIGQodCl7cmV0dXJuIHQ+PTE/Zjp0PD0tMT8tZjpNYXRoLmFzaW4odCl9ZnVuY3Rpb24gZyh0KXtyZXR1cm4gdC5pbm5lclJhZGl1c31mdW5jdGlvbiB2KHQpe3JldHVybiB0Lm91dGVyUmFkaXVzfWZ1bmN0aW9uIG0odCl7cmV0dXJuIHQuc3RhcnRBbmdsZX1mdW5jdGlvbiB5KHQpe3JldHVybiB0LmVuZEFuZ2xlfWZ1bmN0aW9uIHgodCl7cmV0dXJuIHQmJnQucGFkQW5nbGV9ZnVuY3Rpb24gYih0LGUscixuLGEsaSxzKXt2YXIgbD10LXIsdT1lLW4saD0ocz9pOi1pKS9jKGwqbCt1KnUpLGY9aCp1LHA9LWgqbCxkPXQrZixnPWUrcCx2PXIrZixtPW4rcCx5PShkK3YpLzIseD0oZyttKS8yLGI9di1kLF89bS1nLHc9YipiK18qXyxrPWEtaSxUPWQqbS12KmcsTT0oXzwwPy0xOjEpKmMobygwLGsqayp3LVQqVCkpLEE9KFQqXy1iKk0pL3csUz0oLVQqYi1fKk0pL3csRT0oVCpfK2IqTSkvdyxMPSgtVCpiK18qTSkvdyxDPUEteSxQPVMteCxPPUUteSx6PUwteDtyZXR1cm4gQypDK1AqUD5PKk8reip6JiYoQT1FLFM9TCkse2N4OkEsY3k6Uyx4MDE6LWYseTAxOi1wLHgxMTpBKihhL2stMSkseTExOlMqKGEvay0xKX19ZnVuY3Rpb24gXyh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gdyh0KXtyZXR1cm4gbmV3IF8odCl9ZnVuY3Rpb24gayh0KXtyZXR1cm4gdFswXX1mdW5jdGlvbiBUKHQpe3JldHVybiB0WzFdfWZ1bmN0aW9uIE0oKXt2YXIgdD1rLG49VCxhPXIoITApLGk9bnVsbCxvPXcscz1udWxsO2Z1bmN0aW9uIGwocil7dmFyIGwsYyx1LGg9ci5sZW5ndGgsZj0hMTtmb3IobnVsbD09aSYmKHM9byh1PWUucGF0aCgpKSksbD0wO2w8PWg7KytsKSEobDxoJiZhKGM9cltsXSxsLHIpKT09PWYmJigoZj0hZik/cy5saW5lU3RhcnQoKTpzLmxpbmVFbmQoKSksZiYmcy5wb2ludCgrdChjLGwsciksK24oYyxsLHIpKTtpZih1KXJldHVybiBzPW51bGwsdSsiInx8bnVsbH1yZXR1cm4gbC54PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6cigrZSksbCk6dH0sbC55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cigrdCksbCk6bn0sbC5kZWZpbmVkPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cighIXQpLGwpOmF9LGwuY3VydmU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89dCxudWxsIT1pJiYocz1vKGkpKSxsKTpvfSxsLmNvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG51bGw9PXQ/aT1zPW51bGw6cz1vKGk9dCksbCk6aX0sbH1mdW5jdGlvbiBBKCl7dmFyIHQ9ayxuPW51bGwsYT1yKDApLGk9VCxvPXIoITApLHM9bnVsbCxsPXcsYz1udWxsO2Z1bmN0aW9uIHUocil7dmFyIHUsaCxmLHAsZCxnPXIubGVuZ3RoLHY9ITEsbT1uZXcgQXJyYXkoZykseT1uZXcgQXJyYXkoZyk7Zm9yKG51bGw9PXMmJihjPWwoZD1lLnBhdGgoKSkpLHU9MDt1PD1nOysrdSl7aWYoISh1PGcmJm8ocD1yW3VdLHUscikpPT09dilpZih2PSF2KWg9dSxjLmFyZWFTdGFydCgpLGMubGluZVN0YXJ0KCk7ZWxzZXtmb3IoYy5saW5lRW5kKCksYy5saW5lU3RhcnQoKSxmPXUtMTtmPj1oOy0tZiljLnBvaW50KG1bZl0seVtmXSk7Yy5saW5lRW5kKCksYy5hcmVhRW5kKCl9diYmKG1bdV09K3QocCx1LHIpLHlbdV09K2EocCx1LHIpLGMucG9pbnQobj8rbihwLHUscik6bVt1XSxpPytpKHAsdSxyKTp5W3VdKSl9aWYoZClyZXR1cm4gYz1udWxsLGQrIiJ8fG51bGx9ZnVuY3Rpb24gaCgpe3JldHVybiBNKCkuZGVmaW5lZChvKS5jdXJ2ZShsKS5jb250ZXh0KHMpfXJldHVybiB1Lng9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpyKCtlKSxuPW51bGwsdSk6dH0sdS54MD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOnIoK2UpLHUpOnR9LHUueDE9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49bnVsbD09dD9udWxsOiJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cigrdCksdSk6bn0sdS55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cigrdCksaT1udWxsLHUpOmF9LHUueTA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpyKCt0KSx1KTphfSx1LnkxPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW51bGw9PXQ/bnVsbDoiZnVuY3Rpb24iPT10eXBlb2YgdD90OnIoK3QpLHUpOml9LHUubGluZVgwPXUubGluZVkwPWZ1bmN0aW9uKCl7cmV0dXJuIGgoKS54KHQpLnkoYSl9LHUubGluZVkxPWZ1bmN0aW9uKCl7cmV0dXJuIGgoKS54KHQpLnkoaSl9LHUubGluZVgxPWZ1bmN0aW9uKCl7cmV0dXJuIGgoKS54KG4pLnkoYSl9LHUuZGVmaW5lZD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnIoISF0KSx1KTpvfSx1LmN1cnZlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPXQsbnVsbCE9cyYmKGM9bChzKSksdSk6bH0sdS5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhudWxsPT10P3M9Yz1udWxsOmM9bChzPXQpLHUpOnN9LHV9ZnVuY3Rpb24gUyh0LGUpe3JldHVybiBlPHQ/LTE6ZT50PzE6ZT49dD8wOk5hTn1mdW5jdGlvbiBFKHQpe3JldHVybiB0fV8ucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpeyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxlKXtzd2l0Y2godD0rdCxlPStlLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsZSk6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxlKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjtkZWZhdWx0OnRoaXMuX2NvbnRleHQubGluZVRvKHQsZSl9fX07dmFyIEw9UCh3KTtmdW5jdGlvbiBDKHQpe3RoaXMuX2N1cnZlPXR9ZnVuY3Rpb24gUCh0KXtmdW5jdGlvbiBlKGUpe3JldHVybiBuZXcgQyh0KGUpKX1yZXR1cm4gZS5fY3VydmU9dCxlfWZ1bmN0aW9uIE8odCl7dmFyIGU9dC5jdXJ2ZTtyZXR1cm4gdC5hbmdsZT10LngsZGVsZXRlIHQueCx0LnJhZGl1cz10LnksZGVsZXRlIHQueSx0LmN1cnZlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2UoUCh0KSk6ZSgpLl9jdXJ2ZX0sdH1mdW5jdGlvbiB6KCl7cmV0dXJuIE8oTSgpLmN1cnZlKEwpKX1mdW5jdGlvbiBJKCl7dmFyIHQ9QSgpLmN1cnZlKEwpLGU9dC5jdXJ2ZSxyPXQubGluZVgwLG49dC5saW5lWDEsYT10LmxpbmVZMCxpPXQubGluZVkxO3JldHVybiB0LmFuZ2xlPXQueCxkZWxldGUgdC54LHQuc3RhcnRBbmdsZT10LngwLGRlbGV0ZSB0LngwLHQuZW5kQW5nbGU9dC54MSxkZWxldGUgdC54MSx0LnJhZGl1cz10LnksZGVsZXRlIHQueSx0LmlubmVyUmFkaXVzPXQueTAsZGVsZXRlIHQueTAsdC5vdXRlclJhZGl1cz10LnkxLGRlbGV0ZSB0LnkxLHQubGluZVN0YXJ0QW5nbGU9ZnVuY3Rpb24oKXtyZXR1cm4gTyhyKCkpfSxkZWxldGUgdC5saW5lWDAsdC5saW5lRW5kQW5nbGU9ZnVuY3Rpb24oKXtyZXR1cm4gTyhuKCkpfSxkZWxldGUgdC5saW5lWDEsdC5saW5lSW5uZXJSYWRpdXM9ZnVuY3Rpb24oKXtyZXR1cm4gTyhhKCkpfSxkZWxldGUgdC5saW5lWTAsdC5saW5lT3V0ZXJSYWRpdXM9ZnVuY3Rpb24oKXtyZXR1cm4gTyhpKCkpfSxkZWxldGUgdC5saW5lWTEsdC5jdXJ2ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9lKFAodCkpOmUoKS5fY3VydmV9LHR9ZnVuY3Rpb24gRCh0LGUpe3JldHVyblsoZT0rZSkqTWF0aC5jb3ModC09TWF0aC5QSS8yKSxlKk1hdGguc2luKHQpXX1DLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fY3VydmUuYXJlYVN0YXJ0KCl9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9jdXJ2ZS5hcmVhRW5kKCl9LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX2N1cnZlLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dGhpcy5fY3VydmUubGluZUVuZCgpfSxwb2ludDpmdW5jdGlvbih0LGUpe3RoaXMuX2N1cnZlLnBvaW50KGUqTWF0aC5zaW4odCksZSotTWF0aC5jb3ModCkpfX07dmFyIFI9QXJyYXkucHJvdG90eXBlLnNsaWNlO2Z1bmN0aW9uIEYodCl7cmV0dXJuIHQuc291cmNlfWZ1bmN0aW9uIEIodCl7cmV0dXJuIHQudGFyZ2V0fWZ1bmN0aW9uIE4odCl7dmFyIG49RixhPUIsaT1rLG89VCxzPW51bGw7ZnVuY3Rpb24gbCgpe3ZhciByLGw9Ui5jYWxsKGFyZ3VtZW50cyksYz1uLmFwcGx5KHRoaXMsbCksdT1hLmFwcGx5KHRoaXMsbCk7aWYoc3x8KHM9cj1lLnBhdGgoKSksdChzLCtpLmFwcGx5KHRoaXMsKGxbMF09YyxsKSksK28uYXBwbHkodGhpcyxsKSwraS5hcHBseSh0aGlzLChsWzBdPXUsbCkpLCtvLmFwcGx5KHRoaXMsbCkpLHIpcmV0dXJuIHM9bnVsbCxyKyIifHxudWxsfXJldHVybiBsLnNvdXJjZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10LGwpOm59LGwudGFyZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPXQsbCk6YX0sbC54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cigrdCksbCk6aX0sbC55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cigrdCksbCk6b30sbC5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPW51bGw9PXQ/bnVsbDp0LGwpOnN9LGx9ZnVuY3Rpb24gaih0LGUscixuLGEpe3QubW92ZVRvKGUsciksdC5iZXppZXJDdXJ2ZVRvKGU9KGUrbikvMixyLGUsYSxuLGEpfWZ1bmN0aW9uIFYodCxlLHIsbixhKXt0Lm1vdmVUbyhlLHIpLHQuYmV6aWVyQ3VydmVUbyhlLHI9KHIrYSkvMixuLHIsbixhKX1mdW5jdGlvbiBVKHQsZSxyLG4sYSl7dmFyIGk9RChlLHIpLG89RChlLHI9KHIrYSkvMikscz1EKG4sciksbD1EKG4sYSk7dC5tb3ZlVG8oaVswXSxpWzFdKSx0LmJlemllckN1cnZlVG8ob1swXSxvWzFdLHNbMF0sc1sxXSxsWzBdLGxbMV0pfXZhciBxPXtkcmF3OmZ1bmN0aW9uKHQsZSl7dmFyIHI9TWF0aC5zcXJ0KGUvaCk7dC5tb3ZlVG8ociwwKSx0LmFyYygwLDAsciwwLHApfX0sSD17ZHJhdzpmdW5jdGlvbih0LGUpe3ZhciByPU1hdGguc3FydChlLzUpLzI7dC5tb3ZlVG8oLTMqciwtciksdC5saW5lVG8oLXIsLXIpLHQubGluZVRvKC1yLC0zKnIpLHQubGluZVRvKHIsLTMqciksdC5saW5lVG8ociwtciksdC5saW5lVG8oMypyLC1yKSx0LmxpbmVUbygzKnIsciksdC5saW5lVG8ocixyKSx0LmxpbmVUbyhyLDMqciksdC5saW5lVG8oLXIsMypyKSx0LmxpbmVUbygtcixyKSx0LmxpbmVUbygtMypyLHIpLHQuY2xvc2VQYXRoKCl9fSxHPU1hdGguc3FydCgxLzMpLFk9MipHLFc9e2RyYXc6ZnVuY3Rpb24odCxlKXt2YXIgcj1NYXRoLnNxcnQoZS9ZKSxuPXIqRzt0Lm1vdmVUbygwLC1yKSx0LmxpbmVUbyhuLDApLHQubGluZVRvKDAsciksdC5saW5lVG8oLW4sMCksdC5jbG9zZVBhdGgoKX19LFg9TWF0aC5zaW4oaC8xMCkvTWF0aC5zaW4oNypoLzEwKSxaPU1hdGguc2luKHAvMTApKlgsSj0tTWF0aC5jb3MocC8xMCkqWCxLPXtkcmF3OmZ1bmN0aW9uKHQsZSl7dmFyIHI9TWF0aC5zcXJ0KC44OTA4MTMwOTE1MjkyODUyKmUpLG49WipyLGE9SipyO3QubW92ZVRvKDAsLXIpLHQubGluZVRvKG4sYSk7Zm9yKHZhciBpPTE7aTw1OysraSl7dmFyIG89cCppLzUscz1NYXRoLmNvcyhvKSxsPU1hdGguc2luKG8pO3QubGluZVRvKGwqciwtcypyKSx0LmxpbmVUbyhzKm4tbCphLGwqbitzKmEpfXQuY2xvc2VQYXRoKCl9fSxRPXtkcmF3OmZ1bmN0aW9uKHQsZSl7dmFyIHI9TWF0aC5zcXJ0KGUpLG49LXIvMjt0LnJlY3QobixuLHIscil9fSwkPU1hdGguc3FydCgzKSx0dD17ZHJhdzpmdW5jdGlvbih0LGUpe3ZhciByPS1NYXRoLnNxcnQoZS8oMyokKSk7dC5tb3ZlVG8oMCwyKnIpLHQubGluZVRvKC0kKnIsLXIpLHQubGluZVRvKCQqciwtciksdC5jbG9zZVBhdGgoKX19LGV0PS0uNSxydD1NYXRoLnNxcnQoMykvMixudD0xL01hdGguc3FydCgxMiksYXQ9MyoobnQvMisxKSxpdD17ZHJhdzpmdW5jdGlvbih0LGUpe3ZhciByPU1hdGguc3FydChlL2F0KSxuPXIvMixhPXIqbnQsaT1uLG89cipudCtyLHM9LWksbD1vO3QubW92ZVRvKG4sYSksdC5saW5lVG8oaSxvKSx0LmxpbmVUbyhzLGwpLHQubGluZVRvKGV0Km4tcnQqYSxydCpuK2V0KmEpLHQubGluZVRvKGV0KmktcnQqbyxydCppK2V0Km8pLHQubGluZVRvKGV0KnMtcnQqbCxydCpzK2V0KmwpLHQubGluZVRvKGV0Km4rcnQqYSxldCphLXJ0Km4pLHQubGluZVRvKGV0KmkrcnQqbyxldCpvLXJ0KmkpLHQubGluZVRvKGV0KnMrcnQqbCxldCpsLXJ0KnMpLHQuY2xvc2VQYXRoKCl9fSxvdD1bcSxILFcsUSxLLHR0LGl0XTtmdW5jdGlvbiBzdCgpe31mdW5jdGlvbiBsdCh0LGUscil7dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKCgyKnQuX3gwK3QuX3gxKS8zLCgyKnQuX3kwK3QuX3kxKS8zLCh0Ll94MCsyKnQuX3gxKS8zLCh0Ll95MCsyKnQuX3kxKS8zLCh0Ll94MCs0KnQuX3gxK2UpLzYsKHQuX3kwKzQqdC5feTErcikvNil9ZnVuY3Rpb24gY3QodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIHV0KHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBodCh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gZnQodCxlKXt0aGlzLl9iYXNpcz1uZXcgY3QodCksdGhpcy5fYmV0YT1lfWN0LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3kwPXRoaXMuX3kxPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDM6bHQodGhpcyx0aGlzLl94MSx0aGlzLl95MSk7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gxLHRoaXMuX3kxKX0odGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsZSk7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5fY29udGV4dC5saW5lVG8oKDUqdGhpcy5feDArdGhpcy5feDEpLzYsKDUqdGhpcy5feTArdGhpcy5feTEpLzYpO2RlZmF1bHQ6bHQodGhpcyx0LGUpfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9ZX19LHV0LnByb3RvdHlwZT17YXJlYVN0YXJ0OnN0LGFyZWFFbmQ6c3QsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feDM9dGhpcy5feDQ9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9dGhpcy5feTM9dGhpcy5feTQ9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94Mix0aGlzLl95MiksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDI6dGhpcy5fY29udGV4dC5tb3ZlVG8oKHRoaXMuX3gyKzIqdGhpcy5feDMpLzMsKHRoaXMuX3kyKzIqdGhpcy5feTMpLzMpLHRoaXMuX2NvbnRleHQubGluZVRvKCh0aGlzLl94MysyKnRoaXMuX3gyKS8zLCh0aGlzLl95MysyKnRoaXMuX3kyKS8zKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMzp0aGlzLnBvaW50KHRoaXMuX3gyLHRoaXMuX3kyKSx0aGlzLnBvaW50KHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLnBvaW50KHRoaXMuX3g0LHRoaXMuX3k0KX19LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5feDI9dCx0aGlzLl95Mj1lO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yLHRoaXMuX3gzPXQsdGhpcy5feTM9ZTticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl94ND10LHRoaXMuX3k0PWUsdGhpcy5fY29udGV4dC5tb3ZlVG8oKHRoaXMuX3gwKzQqdGhpcy5feDErdCkvNiwodGhpcy5feTArNCp0aGlzLl95MStlKS82KTticmVhaztkZWZhdWx0Omx0KHRoaXMsdCxlKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPWV9fSxodC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl95MD10aGlzLl95MT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpeyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMz09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxlKXtzd2l0Y2godD0rdCxlPStlLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Mzt2YXIgcj0odGhpcy5feDArNCp0aGlzLl94MSt0KS82LG49KHRoaXMuX3kwKzQqdGhpcy5feTErZSkvNjt0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHIsbik6dGhpcy5fY29udGV4dC5tb3ZlVG8ocixuKTticmVhaztjYXNlIDM6dGhpcy5fcG9pbnQ9NDtkZWZhdWx0Omx0KHRoaXMsdCxlKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPWV9fSxmdC5wcm90b3R5cGU9e2xpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3g9W10sdGhpcy5feT1bXSx0aGlzLl9iYXNpcy5saW5lU3RhcnQoKX0sbGluZUVuZDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX3gsZT10aGlzLl95LHI9dC5sZW5ndGgtMTtpZihyPjApZm9yKHZhciBuLGE9dFswXSxpPWVbMF0sbz10W3JdLWEscz1lW3JdLWksbD0tMTsrK2w8PXI7KW49bC9yLHRoaXMuX2Jhc2lzLnBvaW50KHRoaXMuX2JldGEqdFtsXSsoMS10aGlzLl9iZXRhKSooYStuKm8pLHRoaXMuX2JldGEqZVtsXSsoMS10aGlzLl9iZXRhKSooaStuKnMpKTt0aGlzLl94PXRoaXMuX3k9bnVsbCx0aGlzLl9iYXNpcy5saW5lRW5kKCl9LHBvaW50OmZ1bmN0aW9uKHQsZSl7dGhpcy5feC5wdXNoKCt0KSx0aGlzLl95LnB1c2goK2UpfX07dmFyIHB0PWZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gMT09PWU/bmV3IGN0KHQpOm5ldyBmdCh0LGUpfXJldHVybiByLmJldGE9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoK2UpfSxyfSguODUpO2Z1bmN0aW9uIGR0KHQsZSxyKXt0Ll9jb250ZXh0LmJlemllckN1cnZlVG8odC5feDErdC5fayoodC5feDItdC5feDApLHQuX3kxK3QuX2sqKHQuX3kyLXQuX3kwKSx0Ll94Mit0Ll9rKih0Ll94MS1lKSx0Ll95Mit0Ll9rKih0Ll95MS1yKSx0Ll94Mix0Ll95Mil9ZnVuY3Rpb24gZ3QodCxlKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5faz0oMS1lKS82fWd0LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzpkdCh0aGlzLHRoaXMuX3gxLHRoaXMuX3kxKX0odGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsZSk7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTIsdGhpcy5feDE9dCx0aGlzLl95MT1lO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zO2RlZmF1bHQ6ZHQodGhpcyx0LGUpfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9ZX19O3ZhciB2dD1mdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIHIodCl7cmV0dXJuIG5ldyBndCh0LGUpfXJldHVybiByLnRlbnNpb249ZnVuY3Rpb24oZSl7cmV0dXJuIHQoK2UpfSxyfSgwKTtmdW5jdGlvbiBtdCh0LGUpe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9rPSgxLWUpLzZ9bXQucHJvdG90eXBlPXthcmVhU3RhcnQ6c3QsYXJlYUVuZDpzdCxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl94Mz10aGlzLl94ND10aGlzLl94NT10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj10aGlzLl95Mz10aGlzLl95ND10aGlzLl95NT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAxOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5wb2ludCh0aGlzLl94NCx0aGlzLl95NCksdGhpcy5wb2ludCh0aGlzLl94NSx0aGlzLl95NSl9fSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX3gzPXQsdGhpcy5feTM9ZTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94ND10LHRoaXMuX3k0PWUpO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX3g1PXQsdGhpcy5feTU9ZTticmVhaztkZWZhdWx0OmR0KHRoaXMsdCxlKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPWV9fTt2YXIgeXQ9ZnVuY3Rpb24gdChlKXtmdW5jdGlvbiByKHQpe3JldHVybiBuZXcgbXQodCxlKX1yZXR1cm4gci50ZW5zaW9uPWZ1bmN0aW9uKGUpe3JldHVybiB0KCtlKX0scn0oMCk7ZnVuY3Rpb24geHQodCxlKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5faz0oMS1lKS82fXh0LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYzPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6dGhpcy5fcG9pbnQ9NDtkZWZhdWx0OmR0KHRoaXMsdCxlKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPWV9fTt2YXIgYnQ9ZnVuY3Rpb24gdChlKXtmdW5jdGlvbiByKHQpe3JldHVybiBuZXcgeHQodCxlKX1yZXR1cm4gci50ZW5zaW9uPWZ1bmN0aW9uKGUpe3JldHVybiB0KCtlKX0scn0oMCk7ZnVuY3Rpb24gX3QodCxlLHIpe3ZhciBuPXQuX3gxLGE9dC5feTEsaT10Ll94MixvPXQuX3kyO2lmKHQuX2wwMV9hPnUpe3ZhciBzPTIqdC5fbDAxXzJhKzMqdC5fbDAxX2EqdC5fbDEyX2ErdC5fbDEyXzJhLGw9Myp0Ll9sMDFfYSoodC5fbDAxX2ErdC5fbDEyX2EpO249KG4qcy10Ll94MCp0Ll9sMTJfMmErdC5feDIqdC5fbDAxXzJhKS9sLGE9KGEqcy10Ll95MCp0Ll9sMTJfMmErdC5feTIqdC5fbDAxXzJhKS9sfWlmKHQuX2wyM19hPnUpe3ZhciBjPTIqdC5fbDIzXzJhKzMqdC5fbDIzX2EqdC5fbDEyX2ErdC5fbDEyXzJhLGg9Myp0Ll9sMjNfYSoodC5fbDIzX2ErdC5fbDEyX2EpO2k9KGkqYyt0Ll94MSp0Ll9sMjNfMmEtZSp0Ll9sMTJfMmEpL2gsbz0obypjK3QuX3kxKnQuX2wyM18yYS1yKnQuX2wxMl8yYSkvaH10Ll9jb250ZXh0LmJlemllckN1cnZlVG8obixhLGksbyx0Ll94Mix0Ll95Mil9ZnVuY3Rpb24gd3QodCxlKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5fYWxwaGE9ZX13dC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fbDAxX2E9dGhpcy5fbDEyX2E9dGhpcy5fbDIzX2E9dGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmE9dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Mix0aGlzLl95Mil9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LGUpe2lmKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7dmFyIHI9dGhpcy5feDItdCxuPXRoaXMuX3kyLWU7dGhpcy5fbDIzX2E9TWF0aC5zcXJ0KHRoaXMuX2wyM18yYT1NYXRoLnBvdyhyKnIrbipuLHRoaXMuX2FscGhhKSl9c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsZSk6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxlKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MztkZWZhdWx0Ol90KHRoaXMsdCxlKX10aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1lfX07dmFyIGt0PWZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gZT9uZXcgd3QodCxlKTpuZXcgZ3QodCwwKX1yZXR1cm4gci5hbHBoYT1mdW5jdGlvbihlKXtyZXR1cm4gdCgrZSl9LHJ9KC41KTtmdW5jdGlvbiBUdCh0LGUpe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9hbHBoYT1lfVR0LnByb3RvdHlwZT17YXJlYVN0YXJ0OnN0LGFyZWFFbmQ6c3QsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feDM9dGhpcy5feDQ9dGhpcy5feDU9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9dGhpcy5feTM9dGhpcy5feTQ9dGhpcy5feTU9TmFOLHRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hPXRoaXMuX2wyM19hPXRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhPXRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDMsdGhpcy5feTMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAzOnRoaXMucG9pbnQodGhpcy5feDMsdGhpcy5feTMpLHRoaXMucG9pbnQodGhpcy5feDQsdGhpcy5feTQpLHRoaXMucG9pbnQodGhpcy5feDUsdGhpcy5feTUpfX0scG9pbnQ6ZnVuY3Rpb24odCxlKXtpZih0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe3ZhciByPXRoaXMuX3gyLXQsbj10aGlzLl95Mi1lO3RoaXMuX2wyM19hPU1hdGguc3FydCh0aGlzLl9sMjNfMmE9TWF0aC5wb3cocipyK24qbix0aGlzLl9hbHBoYSkpfXN3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5feDM9dCx0aGlzLl95Mz1lO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yLHRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3g0PXQsdGhpcy5feTQ9ZSk7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5feDU9dCx0aGlzLl95NT1lO2JyZWFrO2RlZmF1bHQ6X3QodGhpcyx0LGUpfXRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hLHRoaXMuX2wxMl9hPXRoaXMuX2wyM19hLHRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmEsdGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYSx0aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPWV9fTt2YXIgTXQ9ZnVuY3Rpb24gdChlKXtmdW5jdGlvbiByKHQpe3JldHVybiBlP25ldyBUdCh0LGUpOm5ldyBtdCh0LDApfXJldHVybiByLmFscGhhPWZ1bmN0aW9uKGUpe3JldHVybiB0KCtlKX0scn0oLjUpO2Z1bmN0aW9uIEF0KHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2FscGhhPWV9QXQucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9TmFOLHRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hPXRoaXMuX2wyM19hPXRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhPXRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjM9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7aWYodD0rdCxlPStlLHRoaXMuX3BvaW50KXt2YXIgcj10aGlzLl94Mi10LG49dGhpcy5feTItZTt0aGlzLl9sMjNfYT1NYXRoLnNxcnQodGhpcy5fbDIzXzJhPU1hdGgucG93KHIqcituKm4sdGhpcy5fYWxwaGEpKX1zd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6dGhpcy5fcG9pbnQ9NDtkZWZhdWx0Ol90KHRoaXMsdCxlKX10aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1lfX07dmFyIFN0PWZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gZT9uZXcgQXQodCxlKTpuZXcgeHQodCwwKX1yZXR1cm4gci5hbHBoYT1mdW5jdGlvbihlKXtyZXR1cm4gdCgrZSl9LHJ9KC41KTtmdW5jdGlvbiBFdCh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gTHQodCl7cmV0dXJuIHQ8MD8tMToxfWZ1bmN0aW9uIEN0KHQsZSxyKXt2YXIgbj10Ll94MS10Ll94MCxhPWUtdC5feDEsaT0odC5feTEtdC5feTApLyhufHxhPDAmJi0wKSxvPShyLXQuX3kxKS8oYXx8bjwwJiYtMCkscz0oaSphK28qbikvKG4rYSk7cmV0dXJuKEx0KGkpK0x0KG8pKSpNYXRoLm1pbihNYXRoLmFicyhpKSxNYXRoLmFicyhvKSwuNSpNYXRoLmFicyhzKSl8fDB9ZnVuY3Rpb24gUHQodCxlKXt2YXIgcj10Ll94MS10Ll94MDtyZXR1cm4gcj8oMyoodC5feTEtdC5feTApL3ItZSkvMjplfWZ1bmN0aW9uIE90KHQsZSxyKXt2YXIgbj10Ll94MCxhPXQuX3kwLGk9dC5feDEsbz10Ll95MSxzPShpLW4pLzM7dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKG4rcyxhK3MqZSxpLXMsby1zKnIsaSxvKX1mdW5jdGlvbiB6dCh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gSXQodCl7dGhpcy5fY29udGV4dD1uZXcgRHQodCl9ZnVuY3Rpb24gRHQodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIFJ0KHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBGdCh0KXt2YXIgZSxyLG49dC5sZW5ndGgtMSxhPW5ldyBBcnJheShuKSxpPW5ldyBBcnJheShuKSxvPW5ldyBBcnJheShuKTtmb3IoYVswXT0wLGlbMF09MixvWzBdPXRbMF0rMip0WzFdLGU9MTtlPG4tMTsrK2UpYVtlXT0xLGlbZV09NCxvW2VdPTQqdFtlXSsyKnRbZSsxXTtmb3IoYVtuLTFdPTIsaVtuLTFdPTcsb1tuLTFdPTgqdFtuLTFdK3Rbbl0sZT0xO2U8bjsrK2Upcj1hW2VdL2lbZS0xXSxpW2VdLT1yLG9bZV0tPXIqb1tlLTFdO2ZvcihhW24tMV09b1tuLTFdL2lbbi0xXSxlPW4tMjtlPj0wOy0tZSlhW2VdPShvW2VdLWFbZSsxXSkvaVtlXTtmb3IoaVtuLTFdPSh0W25dK2Fbbi0xXSkvMixlPTA7ZTxuLTE7KytlKWlbZV09Mip0W2UrMV0tYVtlKzFdO3JldHVyblthLGldfWZ1bmN0aW9uIEJ0KHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX3Q9ZX1mdW5jdGlvbiBOdCh0LGUpe2lmKChhPXQubGVuZ3RoKT4xKWZvcih2YXIgcixuLGEsaT0xLG89dFtlWzBdXSxzPW8ubGVuZ3RoO2k8YTsrK2kpZm9yKG49byxvPXRbZVtpXV0scj0wO3I8czsrK3Ipb1tyXVsxXSs9b1tyXVswXT1pc05hTihuW3JdWzFdKT9uW3JdWzBdOm5bcl1bMV19ZnVuY3Rpb24ganQodCl7Zm9yKHZhciBlPXQubGVuZ3RoLHI9bmV3IEFycmF5KGUpOy0tZT49MDspcltlXT1lO3JldHVybiByfWZ1bmN0aW9uIFZ0KHQsZSl7cmV0dXJuIHRbZV19ZnVuY3Rpb24gVXQodCl7dmFyIGU9dC5tYXAocXQpO3JldHVybiBqdCh0KS5zb3J0KGZ1bmN0aW9uKHQscil7cmV0dXJuIGVbdF0tZVtyXX0pfWZ1bmN0aW9uIHF0KHQpe2Zvcih2YXIgZSxyPS0xLG49MCxhPXQubGVuZ3RoLGk9LTEvMDsrK3I8YTspKGU9K3Rbcl1bMV0pPmkmJihpPWUsbj1yKTtyZXR1cm4gbn1mdW5jdGlvbiBIdCh0KXt2YXIgZT10Lm1hcChHdCk7cmV0dXJuIGp0KHQpLnNvcnQoZnVuY3Rpb24odCxyKXtyZXR1cm4gZVt0XS1lW3JdfSl9ZnVuY3Rpb24gR3QodCl7Zm9yKHZhciBlLHI9MCxuPS0xLGE9dC5sZW5ndGg7KytuPGE7KShlPSt0W25dWzFdKSYmKHIrPWUpO3JldHVybiByfUV0LnByb3RvdHlwZT17YXJlYVN0YXJ0OnN0LGFyZWFFbmQ6c3QsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3RoaXMuX3BvaW50JiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpfSxwb2ludDpmdW5jdGlvbih0LGUpe3Q9K3QsZT0rZSx0aGlzLl9wb2ludD90aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpOih0aGlzLl9wb2ludD0xLHRoaXMuX2NvbnRleHQubW92ZVRvKHQsZSkpfX0senQucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5fdDA9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94MSx0aGlzLl95MSk7YnJlYWs7Y2FzZSAzOk90KHRoaXMsdGhpcy5fdDAsUHQodGhpcyx0aGlzLl90MCkpfSh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxlKXt2YXIgcj1OYU47aWYoZT0rZSwodD0rdCkhPT10aGlzLl94MXx8ZSE9PXRoaXMuX3kxKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLE90KHRoaXMsUHQodGhpcyxyPUN0KHRoaXMsdCxlKSkscik7YnJlYWs7ZGVmYXVsdDpPdCh0aGlzLHRoaXMuX3QwLHI9Q3QodGhpcyx0LGUpKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPWUsdGhpcy5fdDA9cn19fSwoSXQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoenQucHJvdG90eXBlKSkucG9pbnQ9ZnVuY3Rpb24odCxlKXt6dC5wcm90b3R5cGUucG9pbnQuY2FsbCh0aGlzLGUsdCl9LER0LnByb3RvdHlwZT17bW92ZVRvOmZ1bmN0aW9uKHQsZSl7dGhpcy5fY29udGV4dC5tb3ZlVG8oZSx0KX0sY2xvc2VQYXRoOmZ1bmN0aW9uKCl7dGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKX0sbGluZVRvOmZ1bmN0aW9uKHQsZSl7dGhpcy5fY29udGV4dC5saW5lVG8oZSx0KX0sYmV6aWVyQ3VydmVUbzpmdW5jdGlvbih0LGUscixuLGEsaSl7dGhpcy5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKGUsdCxuLHIsaSxhKX19LFJ0LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3g9W10sdGhpcy5feT1bXX0sbGluZUVuZDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX3gsZT10aGlzLl95LHI9dC5sZW5ndGg7aWYocilpZih0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHRbMF0sZVswXSk6dGhpcy5fY29udGV4dC5tb3ZlVG8odFswXSxlWzBdKSwyPT09cil0aGlzLl9jb250ZXh0LmxpbmVUbyh0WzFdLGVbMV0pO2Vsc2UgZm9yKHZhciBuPUZ0KHQpLGE9RnQoZSksaT0wLG89MTtvPHI7KytpLCsrbyl0aGlzLl9jb250ZXh0LmJlemllckN1cnZlVG8oblswXVtpXSxhWzBdW2ldLG5bMV1baV0sYVsxXVtpXSx0W29dLGVbb10pOyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXIpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lLHRoaXMuX3g9dGhpcy5feT1udWxsfSxwb2ludDpmdW5jdGlvbih0LGUpe3RoaXMuX3gucHVzaCgrdCksdGhpcy5feS5wdXNoKCtlKX19LEJ0LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3g9dGhpcy5feT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpezA8dGhpcy5fdCYmdGhpcy5fdDwxJiYyPT09dGhpcy5fcG9pbnQmJnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gsdGhpcy5feSksKHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU+PTAmJih0aGlzLl90PTEtdGhpcy5fdCx0aGlzLl9saW5lPTEtdGhpcy5fbGluZSl9LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsZSk7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7ZGVmYXVsdDppZih0aGlzLl90PD0wKXRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gsZSksdGhpcy5fY29udGV4dC5saW5lVG8odCxlKTtlbHNle3ZhciByPXRoaXMuX3gqKDEtdGhpcy5fdCkrdCp0aGlzLl90O3RoaXMuX2NvbnRleHQubGluZVRvKHIsdGhpcy5feSksdGhpcy5fY29udGV4dC5saW5lVG8ocixlKX19dGhpcy5feD10LHRoaXMuX3k9ZX19LHQuYXJjPWZ1bmN0aW9uKCl7dmFyIHQ9ZyxvPXYsXz1yKDApLHc9bnVsbCxrPW0sVD15LE09eCxBPW51bGw7ZnVuY3Rpb24gUygpe3ZhciByLGcsdixtPSt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKSx5PStvLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx4PWsuYXBwbHkodGhpcyxhcmd1bWVudHMpLWYsUz1ULmFwcGx5KHRoaXMsYXJndW1lbnRzKS1mLEU9bihTLXgpLEw9Uz54O2lmKEF8fChBPXI9ZS5wYXRoKCkpLHk8bSYmKGc9eSx5PW0sbT1nKSx5PnUpaWYoRT5wLXUpQS5tb3ZlVG8oeSppKHgpLHkqbCh4KSksQS5hcmMoMCwwLHkseCxTLCFMKSxtPnUmJihBLm1vdmVUbyhtKmkoUyksbSpsKFMpKSxBLmFyYygwLDAsbSxTLHgsTCkpO2Vsc2V7dmFyIEMsUCxPPXgsej1TLEk9eCxEPVMsUj1FLEY9RSxCPU0uYXBwbHkodGhpcyxhcmd1bWVudHMpLzIsTj1CPnUmJih3Pyt3LmFwcGx5KHRoaXMsYXJndW1lbnRzKTpjKG0qbSt5KnkpKSxqPXMobih5LW0pLzIsK18uYXBwbHkodGhpcyxhcmd1bWVudHMpKSxWPWosVT1qO2lmKE4+dSl7dmFyIHE9ZChOL20qbChCKSksSD1kKE4veSpsKEIpKTsoUi09MipxKT51PyhJKz1xKj1MPzE6LTEsRC09cSk6KFI9MCxJPUQ9KHgrUykvMiksKEYtPTIqSCk+dT8oTys9SCo9TD8xOi0xLHotPUgpOihGPTAsTz16PSh4K1MpLzIpfXZhciBHPXkqaShPKSxZPXkqbChPKSxXPW0qaShEKSxYPW0qbChEKTtpZihqPnUpe3ZhciBaLEo9eSppKHopLEs9eSpsKHopLFE9bSppKEkpLCQ9bSpsKEkpO2lmKEU8aCYmKFo9ZnVuY3Rpb24odCxlLHIsbixhLGksbyxzKXt2YXIgbD1yLXQsYz1uLWUsaD1vLWEsZj1zLWkscD1mKmwtaCpjO2lmKCEocCpwPHUpKXJldHVyblt0KyhwPShoKihlLWkpLWYqKHQtYSkpL3ApKmwsZStwKmNdfShHLFksUSwkLEosSyxXLFgpKSl7dmFyIHR0PUctWlswXSxldD1ZLVpbMV0scnQ9Si1aWzBdLG50PUstWlsxXSxhdD0xL2woKCh2PSh0dCpydCtldCpudCkvKGModHQqdHQrZXQqZXQpKmMocnQqcnQrbnQqbnQpKSk+MT8wOnY8LTE/aDpNYXRoLmFjb3ModikpLzIpLGl0PWMoWlswXSpaWzBdK1pbMV0qWlsxXSk7Vj1zKGosKG0taXQpLyhhdC0xKSksVT1zKGosKHktaXQpLyhhdCsxKSl9fUY+dT9VPnU/KEM9YihRLCQsRyxZLHksVSxMKSxQPWIoSixLLFcsWCx5LFUsTCksQS5tb3ZlVG8oQy5jeCtDLngwMSxDLmN5K0MueTAxKSxVPGo/QS5hcmMoQy5jeCxDLmN5LFUsYShDLnkwMSxDLngwMSksYShQLnkwMSxQLngwMSksIUwpOihBLmFyYyhDLmN4LEMuY3ksVSxhKEMueTAxLEMueDAxKSxhKEMueTExLEMueDExKSwhTCksQS5hcmMoMCwwLHksYShDLmN5K0MueTExLEMuY3grQy54MTEpLGEoUC5jeStQLnkxMSxQLmN4K1AueDExKSwhTCksQS5hcmMoUC5jeCxQLmN5LFUsYShQLnkxMSxQLngxMSksYShQLnkwMSxQLngwMSksIUwpKSk6KEEubW92ZVRvKEcsWSksQS5hcmMoMCwwLHksTyx6LCFMKSk6QS5tb3ZlVG8oRyxZKSxtPnUmJlI+dT9WPnU/KEM9YihXLFgsSixLLG0sLVYsTCksUD1iKEcsWSxRLCQsbSwtVixMKSxBLmxpbmVUbyhDLmN4K0MueDAxLEMuY3krQy55MDEpLFY8aj9BLmFyYyhDLmN4LEMuY3ksVixhKEMueTAxLEMueDAxKSxhKFAueTAxLFAueDAxKSwhTCk6KEEuYXJjKEMuY3gsQy5jeSxWLGEoQy55MDEsQy54MDEpLGEoQy55MTEsQy54MTEpLCFMKSxBLmFyYygwLDAsbSxhKEMuY3krQy55MTEsQy5jeCtDLngxMSksYShQLmN5K1AueTExLFAuY3grUC54MTEpLEwpLEEuYXJjKFAuY3gsUC5jeSxWLGEoUC55MTEsUC54MTEpLGEoUC55MDEsUC54MDEpLCFMKSkpOkEuYXJjKDAsMCxtLEQsSSxMKTpBLmxpbmVUbyhXLFgpfWVsc2UgQS5tb3ZlVG8oMCwwKTtpZihBLmNsb3NlUGF0aCgpLHIpcmV0dXJuIEE9bnVsbCxyKyIifHxudWxsfXJldHVybiBTLmNlbnRyb2lkPWZ1bmN0aW9uKCl7dmFyIGU9KCt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKSsgK28uYXBwbHkodGhpcyxhcmd1bWVudHMpKS8yLHI9KCtrLmFwcGx5KHRoaXMsYXJndW1lbnRzKSsgK1QuYXBwbHkodGhpcyxhcmd1bWVudHMpKS8yLWgvMjtyZXR1cm5baShyKSplLGwocikqZV19LFMuaW5uZXJSYWRpdXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpyKCtlKSxTKTp0fSxTLm91dGVyUmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cigrdCksUyk6b30sUy5jb3JuZXJSYWRpdXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KF89ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpyKCt0KSxTKTpffSxTLnBhZFJhZGl1cz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odz1udWxsPT10P251bGw6ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpyKCt0KSxTKTp3fSxTLnN0YXJ0QW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGs9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpyKCt0KSxTKTprfSxTLmVuZEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhUPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cigrdCksUyk6VH0sUy5wYWRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oTT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnIoK3QpLFMpOk19LFMuY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oQT1udWxsPT10P251bGw6dCxTKTpBfSxTfSx0LmFyZWE9QSx0LmxpbmU9TSx0LnBpZT1mdW5jdGlvbigpe3ZhciB0PUUsZT1TLG49bnVsbCxhPXIoMCksaT1yKHApLG89cigwKTtmdW5jdGlvbiBzKHIpe3ZhciBzLGwsYyx1LGgsZj1yLmxlbmd0aCxkPTAsZz1uZXcgQXJyYXkoZiksdj1uZXcgQXJyYXkoZiksbT0rYS5hcHBseSh0aGlzLGFyZ3VtZW50cykseT1NYXRoLm1pbihwLE1hdGgubWF4KC1wLGkuYXBwbHkodGhpcyxhcmd1bWVudHMpLW0pKSx4PU1hdGgubWluKE1hdGguYWJzKHkpL2Ysby5hcHBseSh0aGlzLGFyZ3VtZW50cykpLGI9eCooeTwwPy0xOjEpO2ZvcihzPTA7czxmOysrcykoaD12W2dbc109c109K3QocltzXSxzLHIpKT4wJiYoZCs9aCk7Zm9yKG51bGwhPWU/Zy5zb3J0KGZ1bmN0aW9uKHQscil7cmV0dXJuIGUodlt0XSx2W3JdKX0pOm51bGwhPW4mJmcuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiBuKHJbdF0scltlXSl9KSxzPTAsYz1kPyh5LWYqYikvZDowO3M8ZjsrK3MsbT11KWw9Z1tzXSx1PW0rKChoPXZbbF0pPjA/aCpjOjApK2IsdltsXT17ZGF0YTpyW2xdLGluZGV4OnMsdmFsdWU6aCxzdGFydEFuZ2xlOm0sZW5kQW5nbGU6dSxwYWRBbmdsZTp4fTtyZXR1cm4gdn1yZXR1cm4gcy52YWx1ZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOnIoK2UpLHMpOnR9LHMuc29ydFZhbHVlcz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10LG49bnVsbCxzKTplfSxzLnNvcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dCxlPW51bGwscyk6bn0scy5zdGFydEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cigrdCkscyk6YX0scy5lbmRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnIoK3QpLHMpOml9LHMucGFkQW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpyKCt0KSxzKTpvfSxzfSx0LmFyZWFSYWRpYWw9SSx0LnJhZGlhbEFyZWE9SSx0LmxpbmVSYWRpYWw9eix0LnJhZGlhbExpbmU9eix0LnBvaW50UmFkaWFsPUQsdC5saW5rSG9yaXpvbnRhbD1mdW5jdGlvbigpe3JldHVybiBOKGopfSx0LmxpbmtWZXJ0aWNhbD1mdW5jdGlvbigpe3JldHVybiBOKFYpfSx0LmxpbmtSYWRpYWw9ZnVuY3Rpb24oKXt2YXIgdD1OKFUpO3JldHVybiB0LmFuZ2xlPXQueCxkZWxldGUgdC54LHQucmFkaXVzPXQueSxkZWxldGUgdC55LHR9LHQuc3ltYm9sPWZ1bmN0aW9uKCl7dmFyIHQ9cihxKSxuPXIoNjQpLGE9bnVsbDtmdW5jdGlvbiBpKCl7dmFyIHI7aWYoYXx8KGE9cj1lLnBhdGgoKSksdC5hcHBseSh0aGlzLGFyZ3VtZW50cykuZHJhdyhhLCtuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSkscilyZXR1cm4gYT1udWxsLHIrIiJ8fG51bGx9cmV0dXJuIGkudHlwZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOnIoZSksaSk6dH0saS5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cigrdCksaSk6bn0saS5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPW51bGw9PXQ/bnVsbDp0LGkpOmF9LGl9LHQuc3ltYm9scz1vdCx0LnN5bWJvbENpcmNsZT1xLHQuc3ltYm9sQ3Jvc3M9SCx0LnN5bWJvbERpYW1vbmQ9Vyx0LnN5bWJvbFNxdWFyZT1RLHQuc3ltYm9sU3Rhcj1LLHQuc3ltYm9sVHJpYW5nbGU9dHQsdC5zeW1ib2xXeWU9aXQsdC5jdXJ2ZUJhc2lzQ2xvc2VkPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgdXQodCl9LHQuY3VydmVCYXNpc09wZW49ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBodCh0KX0sdC5jdXJ2ZUJhc2lzPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgY3QodCl9LHQuY3VydmVCdW5kbGU9cHQsdC5jdXJ2ZUNhcmRpbmFsQ2xvc2VkPXl0LHQuY3VydmVDYXJkaW5hbE9wZW49YnQsdC5jdXJ2ZUNhcmRpbmFsPXZ0LHQuY3VydmVDYXRtdWxsUm9tQ2xvc2VkPU10LHQuY3VydmVDYXRtdWxsUm9tT3Blbj1TdCx0LmN1cnZlQ2F0bXVsbFJvbT1rdCx0LmN1cnZlTGluZWFyQ2xvc2VkPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRXQodCl9LHQuY3VydmVMaW5lYXI9dyx0LmN1cnZlTW9ub3RvbmVYPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgenQodCl9LHQuY3VydmVNb25vdG9uZVk9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBJdCh0KX0sdC5jdXJ2ZU5hdHVyYWw9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBSdCh0KX0sdC5jdXJ2ZVN0ZXA9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBCdCh0LC41KX0sdC5jdXJ2ZVN0ZXBBZnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IEJ0KHQsMSl9LHQuY3VydmVTdGVwQmVmb3JlPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgQnQodCwwKX0sdC5zdGFjaz1mdW5jdGlvbigpe3ZhciB0PXIoW10pLGU9anQsbj1OdCxhPVZ0O2Z1bmN0aW9uIGkocil7dmFyIGksbyxzPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpLGw9ci5sZW5ndGgsYz1zLmxlbmd0aCx1PW5ldyBBcnJheShjKTtmb3IoaT0wO2k8YzsrK2kpe2Zvcih2YXIgaCxmPXNbaV0scD11W2ldPW5ldyBBcnJheShsKSxkPTA7ZDxsOysrZClwW2RdPWg9WzAsK2EocltkXSxmLGQscildLGguZGF0YT1yW2RdO3Aua2V5PWZ9Zm9yKGk9MCxvPWUodSk7aTxjOysraSl1W29baV1dLmluZGV4PWk7cmV0dXJuIG4odSxvKSx1fXJldHVybiBpLmtleXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpyKFIuY2FsbChlKSksaSk6dH0saS52YWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnIoK3QpLGkpOmF9LGkub3JkZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9bnVsbD09dD9qdDoiZnVuY3Rpb24iPT10eXBlb2YgdD90OnIoUi5jYWxsKHQpKSxpKTplfSxpLm9mZnNldD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1udWxsPT10P050OnQsaSk6bn0saX0sdC5zdGFja09mZnNldEV4cGFuZD1mdW5jdGlvbih0LGUpe2lmKChuPXQubGVuZ3RoKT4wKXtmb3IodmFyIHIsbixhLGk9MCxvPXRbMF0ubGVuZ3RoO2k8bzsrK2kpe2ZvcihhPXI9MDtyPG47KytyKWErPXRbcl1baV1bMV18fDA7aWYoYSlmb3Iocj0wO3I8bjsrK3IpdFtyXVtpXVsxXS89YX1OdCh0LGUpfX0sdC5zdGFja09mZnNldERpdmVyZ2luZz1mdW5jdGlvbih0LGUpe2lmKChzPXQubGVuZ3RoKT4xKWZvcih2YXIgcixuLGEsaSxvLHMsbD0wLGM9dFtlWzBdXS5sZW5ndGg7bDxjOysrbClmb3IoaT1vPTAscj0wO3I8czsrK3IpKGE9KG49dFtlW3JdXVtsXSlbMV0tblswXSk+PTA/KG5bMF09aSxuWzFdPWkrPWEpOmE8MD8oblsxXT1vLG5bMF09bys9YSk6blswXT1pfSx0LnN0YWNrT2Zmc2V0Tm9uZT1OdCx0LnN0YWNrT2Zmc2V0U2lsaG91ZXR0ZT1mdW5jdGlvbih0LGUpe2lmKChyPXQubGVuZ3RoKT4wKXtmb3IodmFyIHIsbj0wLGE9dFtlWzBdXSxpPWEubGVuZ3RoO248aTsrK24pe2Zvcih2YXIgbz0wLHM9MDtvPHI7KytvKXMrPXRbb11bbl1bMV18fDA7YVtuXVsxXSs9YVtuXVswXT0tcy8yfU50KHQsZSl9fSx0LnN0YWNrT2Zmc2V0V2lnZ2xlPWZ1bmN0aW9uKHQsZSl7aWYoKGE9dC5sZW5ndGgpPjAmJihuPShyPXRbZVswXV0pLmxlbmd0aCk+MCl7Zm9yKHZhciByLG4sYSxpPTAsbz0xO288bjsrK28pe2Zvcih2YXIgcz0wLGw9MCxjPTA7czxhOysrcyl7Zm9yKHZhciB1PXRbZVtzXV0saD11W29dWzFdfHwwLGY9KGgtKHVbby0xXVsxXXx8MCkpLzIscD0wO3A8czsrK3Ape3ZhciBkPXRbZVtwXV07Zis9KGRbb11bMV18fDApLShkW28tMV1bMV18fDApfWwrPWgsYys9ZipofXJbby0xXVsxXSs9cltvLTFdWzBdPWksbCYmKGktPWMvbCl9cltvLTFdWzFdKz1yW28tMV1bMF09aSxOdCh0LGUpfX0sdC5zdGFja09yZGVyQXBwZWFyYW5jZT1VdCx0LnN0YWNrT3JkZXJBc2NlbmRpbmc9SHQsdC5zdGFja09yZGVyRGVzY2VuZGluZz1mdW5jdGlvbih0KXtyZXR1cm4gSHQodCkucmV2ZXJzZSgpfSx0LnN0YWNrT3JkZXJJbnNpZGVPdXQ9ZnVuY3Rpb24odCl7dmFyIGUscixuPXQubGVuZ3RoLGE9dC5tYXAoR3QpLGk9VXQodCksbz0wLHM9MCxsPVtdLGM9W107Zm9yKGU9MDtlPG47KytlKXI9aVtlXSxvPHM/KG8rPWFbcl0sbC5wdXNoKHIpKToocys9YVtyXSxjLnB1c2gocikpO3JldHVybiBjLnJldmVyc2UoKS5jb25jYXQobCl9LHQuc3RhY2tPcmRlck5vbmU9anQsdC5zdGFja09yZGVyUmV2ZXJzZT1mdW5jdGlvbih0KXtyZXR1cm4ganQodCkucmV2ZXJzZSgpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LCJvYmplY3QiPT10eXBlb2YgciYmInVuZGVmaW5lZCIhPXR5cGVvZiBlP2Eocix0KCJkMy1wYXRoIikpOmEobi5kMz1uLmQzfHx7fSxuLmQzKX0seyJkMy1wYXRoIjoxNjF9XSwxNjQ6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbjtuPXRoaXMsZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiO3ZhciBlLHIsbj0wLGE9MCxpPTAsbz0xZTMscz0wLGw9MCxjPTAsdT0ib2JqZWN0Ij09dHlwZW9mIHBlcmZvcm1hbmNlJiZwZXJmb3JtYW5jZS5ub3c/cGVyZm9ybWFuY2U6RGF0ZSxoPSJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOmZ1bmN0aW9uKHQpe3NldFRpbWVvdXQodCwxNyl9O2Z1bmN0aW9uIGYoKXtyZXR1cm4gbHx8KGgocCksbD11Lm5vdygpK2MpfWZ1bmN0aW9uIHAoKXtsPTB9ZnVuY3Rpb24gZCgpe3RoaXMuX2NhbGw9dGhpcy5fdGltZT10aGlzLl9uZXh0PW51bGx9ZnVuY3Rpb24gZyh0LGUscil7dmFyIG49bmV3IGQ7cmV0dXJuIG4ucmVzdGFydCh0LGUsciksbn1mdW5jdGlvbiB2KCl7ZigpLCsrbjtmb3IodmFyIHQscj1lO3I7KSh0PWwtci5fdGltZSk+PTAmJnIuX2NhbGwuY2FsbChudWxsLHQpLHI9ci5fbmV4dDstLW59ZnVuY3Rpb24gbSgpe2w9KHM9dS5ub3coKSkrYyxuPWE9MDt0cnl7digpfWZpbmFsbHl7bj0wLGZ1bmN0aW9uKCl7dmFyIHQsbixhPWUsaT0xLzA7Zm9yKDthOylhLl9jYWxsPyhpPmEuX3RpbWUmJihpPWEuX3RpbWUpLHQ9YSxhPWEuX25leHQpOihuPWEuX25leHQsYS5fbmV4dD1udWxsLGE9dD90Ll9uZXh0PW46ZT1uKTtyPXQseChpKX0oKSxsPTB9fWZ1bmN0aW9uIHkoKXt2YXIgdD11Lm5vdygpLGU9dC1zO2U+byYmKGMtPWUscz10KX1mdW5jdGlvbiB4KHQpe258fChhJiYoYT1jbGVhclRpbWVvdXQoYSkpLHQtbD4yND8odDwxLzAmJihhPXNldFRpbWVvdXQobSx0LXUubm93KCktYykpLGkmJihpPWNsZWFySW50ZXJ2YWwoaSkpKTooaXx8KHM9dS5ub3coKSxpPXNldEludGVydmFsKHksbykpLG49MSxoKG0pKSl9ZC5wcm90b3R5cGU9Zy5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmQscmVzdGFydDpmdW5jdGlvbih0LG4sYSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiY2FsbGJhY2sgaXMgbm90IGEgZnVuY3Rpb24iKTthPShudWxsPT1hP2YoKTorYSkrKG51bGw9PW4/MDorbiksdGhpcy5fbmV4dHx8cj09PXRoaXN8fChyP3IuX25leHQ9dGhpczplPXRoaXMscj10aGlzKSx0aGlzLl9jYWxsPXQsdGhpcy5fdGltZT1hLHgoKX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuX2NhbGwmJih0aGlzLl9jYWxsPW51bGwsdGhpcy5fdGltZT0xLzAseCgpKX19LHQubm93PWYsdC50aW1lcj1nLHQudGltZXJGbHVzaD12LHQudGltZW91dD1mdW5jdGlvbih0LGUscil7dmFyIG49bmV3IGQ7cmV0dXJuIGU9bnVsbD09ZT8wOitlLG4ucmVzdGFydChmdW5jdGlvbihyKXtuLnN0b3AoKSx0KHIrZSl9LGUsciksbn0sdC5pbnRlcnZhbD1mdW5jdGlvbih0LGUscil7dmFyIG49bmV3IGQsYT1lO3JldHVybiBudWxsPT1lPyhuLnJlc3RhcnQodCxlLHIpLG4pOihlPStlLHI9bnVsbD09cj9mKCk6K3Isbi5yZXN0YXJ0KGZ1bmN0aW9uIGkobyl7bys9YSxuLnJlc3RhcnQoaSxhKz1lLHIpLHQobyl9LGUsciksbil9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0oIm9iamVjdCI9PXR5cGVvZiByJiYidW5kZWZpbmVkIiE9dHlwZW9mIGU/cjpuLmQzPW4uZDN8fHt9KX0se31dLDE2NTpbZnVuY3Rpb24odCxlLHIpeyFmdW5jdGlvbigpe3ZhciB0PXt2ZXJzaW9uOiIzLjUuMTcifSxyPVtdLnNsaWNlLG49ZnVuY3Rpb24odCl7cmV0dXJuIHIuY2FsbCh0KX0sYT10aGlzLmRvY3VtZW50O2Z1bmN0aW9uIGkodCl7cmV0dXJuIHQmJih0Lm93bmVyRG9jdW1lbnR8fHQuZG9jdW1lbnR8fHQpLmRvY3VtZW50RWxlbWVudH1mdW5jdGlvbiBvKHQpe3JldHVybiB0JiYodC5vd25lckRvY3VtZW50JiZ0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHQuZG9jdW1lbnQmJnR8fHQuZGVmYXVsdFZpZXcpfWlmKGEpdHJ5e24oYS5kb2N1bWVudEVsZW1lbnQuY2hpbGROb2RlcylbMF0ubm9kZVR5cGV9Y2F0Y2godCl7bj1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5sZW5ndGgscj1uZXcgQXJyYXkoZSk7ZS0tOylyW2VdPXRbZV07cmV0dXJuIHJ9fWlmKERhdGUubm93fHwoRGF0ZS5ub3c9ZnVuY3Rpb24oKXtyZXR1cm4rbmV3IERhdGV9KSxhKXRyeXthLmNyZWF0ZUVsZW1lbnQoIkRJViIpLnN0eWxlLnNldFByb3BlcnR5KCJvcGFjaXR5IiwwLCIiKX1jYXRjaCh0KXt2YXIgcz10aGlzLkVsZW1lbnQucHJvdG90eXBlLGw9cy5zZXRBdHRyaWJ1dGUsYz1zLnNldEF0dHJpYnV0ZU5TLHU9dGhpcy5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZSxoPXUuc2V0UHJvcGVydHk7cy5zZXRBdHRyaWJ1dGU9ZnVuY3Rpb24odCxlKXtsLmNhbGwodGhpcyx0LGUrIiIpfSxzLnNldEF0dHJpYnV0ZU5TPWZ1bmN0aW9uKHQsZSxyKXtjLmNhbGwodGhpcyx0LGUscisiIil9LHUuc2V0UHJvcGVydHk9ZnVuY3Rpb24odCxlLHIpe2guY2FsbCh0aGlzLHQsZSsiIixyKX19ZnVuY3Rpb24gZih0LGUpe3JldHVybiB0PGU/LTE6dD5lPzE6dD49ZT8wOk5hTn1mdW5jdGlvbiBwKHQpe3JldHVybiBudWxsPT09dD9OYU46K3R9ZnVuY3Rpb24gZCh0KXtyZXR1cm4haXNOYU4odCl9ZnVuY3Rpb24gZyh0KXtyZXR1cm57bGVmdDpmdW5jdGlvbihlLHIsbixhKXtmb3IoYXJndW1lbnRzLmxlbmd0aDwzJiYobj0wKSxhcmd1bWVudHMubGVuZ3RoPDQmJihhPWUubGVuZ3RoKTtuPGE7KXt2YXIgaT1uK2E+Pj4xO3QoZVtpXSxyKTwwP249aSsxOmE9aX1yZXR1cm4gbn0scmlnaHQ6ZnVuY3Rpb24oZSxyLG4sYSl7Zm9yKGFyZ3VtZW50cy5sZW5ndGg8MyYmKG49MCksYXJndW1lbnRzLmxlbmd0aDw0JiYoYT1lLmxlbmd0aCk7bjxhOyl7dmFyIGk9bithPj4+MTt0KGVbaV0scik+MD9hPWk6bj1pKzF9cmV0dXJuIG59fX10LmFzY2VuZGluZz1mLHQuZGVzY2VuZGluZz1mdW5jdGlvbih0LGUpe3JldHVybiBlPHQ/LTE6ZT50PzE6ZT49dD8wOk5hTn0sdC5taW49ZnVuY3Rpb24odCxlKXt2YXIgcixuLGE9LTEsaT10Lmxlbmd0aDtpZigxPT09YXJndW1lbnRzLmxlbmd0aCl7Zm9yKDsrK2E8aTspaWYobnVsbCE9KG49dFthXSkmJm4+PW4pe3I9bjticmVha31mb3IoOysrYTxpOyludWxsIT0obj10W2FdKSYmcj5uJiYocj1uKX1lbHNle2Zvcig7KythPGk7KWlmKG51bGwhPShuPWUuY2FsbCh0LHRbYV0sYSkpJiZuPj1uKXtyPW47YnJlYWt9Zm9yKDsrK2E8aTspbnVsbCE9KG49ZS5jYWxsKHQsdFthXSxhKSkmJnI+biYmKHI9bil9cmV0dXJuIHJ9LHQubWF4PWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixhPS0xLGk9dC5sZW5ndGg7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgpe2Zvcig7KythPGk7KWlmKG51bGwhPShuPXRbYV0pJiZuPj1uKXtyPW47YnJlYWt9Zm9yKDsrK2E8aTspbnVsbCE9KG49dFthXSkmJm4+ciYmKHI9bil9ZWxzZXtmb3IoOysrYTxpOylpZihudWxsIT0obj1lLmNhbGwodCx0W2FdLGEpKSYmbj49bil7cj1uO2JyZWFrfWZvcig7KythPGk7KW51bGwhPShuPWUuY2FsbCh0LHRbYV0sYSkpJiZuPnImJihyPW4pfXJldHVybiByfSx0LmV4dGVudD1mdW5jdGlvbih0LGUpe3ZhciByLG4sYSxpPS0xLG89dC5sZW5ndGg7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgpe2Zvcig7KytpPG87KWlmKG51bGwhPShuPXRbaV0pJiZuPj1uKXtyPWE9bjticmVha31mb3IoOysraTxvOyludWxsIT0obj10W2ldKSYmKHI+biYmKHI9biksYTxuJiYoYT1uKSl9ZWxzZXtmb3IoOysraTxvOylpZihudWxsIT0obj1lLmNhbGwodCx0W2ldLGkpKSYmbj49bil7cj1hPW47YnJlYWt9Zm9yKDsrK2k8bzspbnVsbCE9KG49ZS5jYWxsKHQsdFtpXSxpKSkmJihyPm4mJihyPW4pLGE8biYmKGE9bikpfXJldHVybltyLGFdfSx0LnN1bT1mdW5jdGlvbih0LGUpe3ZhciByLG49MCxhPXQubGVuZ3RoLGk9LTE7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgpZm9yKDsrK2k8YTspZChyPSt0W2ldKSYmKG4rPXIpO2Vsc2UgZm9yKDsrK2k8YTspZChyPStlLmNhbGwodCx0W2ldLGkpKSYmKG4rPXIpO3JldHVybiBufSx0Lm1lYW49ZnVuY3Rpb24odCxlKXt2YXIgcixuPTAsYT10Lmxlbmd0aCxpPS0xLG89YTtpZigxPT09YXJndW1lbnRzLmxlbmd0aClmb3IoOysraTxhOylkKHI9cCh0W2ldKSk/bis9cjotLW87ZWxzZSBmb3IoOysraTxhOylkKHI9cChlLmNhbGwodCx0W2ldLGkpKSk/bis9cjotLW87aWYobylyZXR1cm4gbi9vfSx0LnF1YW50aWxlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9KHQubGVuZ3RoLTEpKmUrMSxuPU1hdGguZmxvb3IociksYT0rdFtuLTFdLGk9ci1uO3JldHVybiBpP2EraSoodFtuXS1hKTphfSx0Lm1lZGlhbj1mdW5jdGlvbihlLHIpe3ZhciBuLGE9W10saT1lLmxlbmd0aCxvPS0xO2lmKDE9PT1hcmd1bWVudHMubGVuZ3RoKWZvcig7KytvPGk7KWQobj1wKGVbb10pKSYmYS5wdXNoKG4pO2Vsc2UgZm9yKDsrK288aTspZChuPXAoci5jYWxsKGUsZVtvXSxvKSkpJiZhLnB1c2gobik7aWYoYS5sZW5ndGgpcmV0dXJuIHQucXVhbnRpbGUoYS5zb3J0KGYpLC41KX0sdC52YXJpYW5jZT1mdW5jdGlvbih0LGUpe3ZhciByLG4sYT10Lmxlbmd0aCxpPTAsbz0wLHM9LTEsbD0wO2lmKDE9PT1hcmd1bWVudHMubGVuZ3RoKWZvcig7KytzPGE7KWQocj1wKHRbc10pKSYmKG8rPShuPXItaSkqKHItKGkrPW4vKytsKSkpO2Vsc2UgZm9yKDsrK3M8YTspZChyPXAoZS5jYWxsKHQsdFtzXSxzKSkpJiYobys9KG49ci1pKSooci0oaSs9bi8rK2wpKSk7aWYobD4xKXJldHVybiBvLyhsLTEpfSx0LmRldmlhdGlvbj1mdW5jdGlvbigpe3ZhciBlPXQudmFyaWFuY2UuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBlP01hdGguc3FydChlKTplfTt2YXIgdj1nKGYpO2Z1bmN0aW9uIG0odCl7cmV0dXJuIHQubGVuZ3RofXQuYmlzZWN0TGVmdD12LmxlZnQsdC5iaXNlY3Q9dC5iaXNlY3RSaWdodD12LnJpZ2h0LHQuYmlzZWN0b3I9ZnVuY3Rpb24odCl7cmV0dXJuIGcoMT09PXQubGVuZ3RoP2Z1bmN0aW9uKGUscil7cmV0dXJuIGYodChlKSxyKX06dCl9LHQuc2h1ZmZsZT1mdW5jdGlvbih0LGUscil7KGk9YXJndW1lbnRzLmxlbmd0aCk8MyYmKHI9dC5sZW5ndGgsaTwyJiYoZT0wKSk7Zm9yKHZhciBuLGEsaT1yLWU7aTspYT1NYXRoLnJhbmRvbSgpKmktLXwwLG49dFtpK2VdLHRbaStlXT10W2ErZV0sdFthK2VdPW47cmV0dXJuIHR9LHQucGVybXV0ZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1lLmxlbmd0aCxuPW5ldyBBcnJheShyKTtyLS07KW5bcl09dFtlW3JdXTtyZXR1cm4gbn0sdC5wYWlycz1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxyPXQubGVuZ3RoLTEsbj10WzBdLGE9bmV3IEFycmF5KHI8MD8wOnIpO2U8cjspYVtlXT1bbixuPXRbKytlXV07cmV0dXJuIGF9LHQudHJhbnNwb3NlPWZ1bmN0aW9uKGUpe2lmKCEoaT1lLmxlbmd0aCkpcmV0dXJuW107Zm9yKHZhciByPS0xLG49dC5taW4oZSxtKSxhPW5ldyBBcnJheShuKTsrK3I8bjspZm9yKHZhciBpLG89LTEscz1hW3JdPW5ldyBBcnJheShpKTsrK288aTspc1tvXT1lW29dW3JdO3JldHVybiBhfSx0LnppcD1mdW5jdGlvbigpe3JldHVybiB0LnRyYW5zcG9zZShhcmd1bWVudHMpfSx0LmtleXM9ZnVuY3Rpb24odCl7dmFyIGU9W107Zm9yKHZhciByIGluIHQpZS5wdXNoKHIpO3JldHVybiBlfSx0LnZhbHVlcz1mdW5jdGlvbih0KXt2YXIgZT1bXTtmb3IodmFyIHIgaW4gdCllLnB1c2godFtyXSk7cmV0dXJuIGV9LHQuZW50cmllcz1mdW5jdGlvbih0KXt2YXIgZT1bXTtmb3IodmFyIHIgaW4gdCllLnB1c2goe2tleTpyLHZhbHVlOnRbcl19KTtyZXR1cm4gZX0sdC5tZXJnZT1mdW5jdGlvbih0KXtmb3IodmFyIGUscixuLGE9dC5sZW5ndGgsaT0tMSxvPTA7KytpPGE7KW8rPXRbaV0ubGVuZ3RoO2ZvcihyPW5ldyBBcnJheShvKTstLWE+PTA7KWZvcihlPShuPXRbYV0pLmxlbmd0aDstLWU+PTA7KXJbLS1vXT1uW2VdO3JldHVybiByfTt2YXIgeT1NYXRoLmFicztmdW5jdGlvbiB4KHQsZSl7Zm9yKHZhciByIGluIGUpT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLHIse3ZhbHVlOmVbcl0sZW51bWVyYWJsZTohMX0pfWZ1bmN0aW9uIGIoKXt0aGlzLl89T2JqZWN0LmNyZWF0ZShudWxsKX10LnJhbmdlPWZ1bmN0aW9uKHQsZSxyKXtpZihhcmd1bWVudHMubGVuZ3RoPDMmJihyPTEsYXJndW1lbnRzLmxlbmd0aDwyJiYoZT10LHQ9MCkpLChlLXQpL3I9PTEvMCl0aHJvdyBuZXcgRXJyb3IoImluZmluaXRlIHJhbmdlIik7dmFyIG4sYT1bXSxpPWZ1bmN0aW9uKHQpe3ZhciBlPTE7Zm9yKDt0KmUlMTspZSo9MTA7cmV0dXJuIGV9KHkocikpLG89LTE7aWYodCo9aSxlKj1pLChyKj1pKTwwKWZvcig7KG49dCtyKisrbyk+ZTspYS5wdXNoKG4vaSk7ZWxzZSBmb3IoOyhuPXQrciorK28pPGU7KWEucHVzaChuL2kpO3JldHVybiBhfSx0Lm1hcD1mdW5jdGlvbih0LGUpe3ZhciByPW5ldyBiO2lmKHQgaW5zdGFuY2VvZiBiKXQuZm9yRWFjaChmdW5jdGlvbih0LGUpe3Iuc2V0KHQsZSl9KTtlbHNlIGlmKEFycmF5LmlzQXJyYXkodCkpe3ZhciBuLGE9LTEsaT10Lmxlbmd0aDtpZigxPT09YXJndW1lbnRzLmxlbmd0aClmb3IoOysrYTxpOylyLnNldChhLHRbYV0pO2Vsc2UgZm9yKDsrK2E8aTspci5zZXQoZS5jYWxsKHQsbj10W2FdLGEpLG4pfWVsc2UgZm9yKHZhciBvIGluIHQpci5zZXQobyx0W29dKTtyZXR1cm4gcn07dmFyIF89Il9fcHJvdG9fXyIsdz0iXDAiO2Z1bmN0aW9uIGsodCl7cmV0dXJuKHQrPSIiKT09PV98fHRbMF09PT13P3crdDp0fWZ1bmN0aW9uIFQodCl7cmV0dXJuKHQrPSIiKVswXT09PXc/dC5zbGljZSgxKTp0fWZ1bmN0aW9uIE0odCl7cmV0dXJuIGsodClpbiB0aGlzLl99ZnVuY3Rpb24gQSh0KXtyZXR1cm4odD1rKHQpKWluIHRoaXMuXyYmZGVsZXRlIHRoaXMuX1t0XX1mdW5jdGlvbiBTKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMuXyl0LnB1c2goVChlKSk7cmV0dXJuIHR9ZnVuY3Rpb24gRSgpe3ZhciB0PTA7Zm9yKHZhciBlIGluIHRoaXMuXykrK3Q7cmV0dXJuIHR9ZnVuY3Rpb24gTCgpe2Zvcih2YXIgdCBpbiB0aGlzLl8pcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gQygpe3RoaXMuXz1PYmplY3QuY3JlYXRlKG51bGwpfWZ1bmN0aW9uIFAodCl7cmV0dXJuIHR9ZnVuY3Rpb24gTyh0LGUscil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49ci5hcHBseShlLGFyZ3VtZW50cyk7cmV0dXJuIG49PT1lP3Q6bn19ZnVuY3Rpb24geih0LGUpe2lmKGUgaW4gdClyZXR1cm4gZTtlPWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKTtmb3IodmFyIHI9MCxuPUkubGVuZ3RoO3I8bjsrK3Ipe3ZhciBhPUlbcl0rZTtpZihhIGluIHQpcmV0dXJuIGF9fXgoYix7aGFzOk0sZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9bayh0KV19LHNldDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9bayh0KV09ZX0scmVtb3ZlOkEsa2V5czpTLHZhbHVlczpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzLl8pdC5wdXNoKHRoaXMuX1tlXSk7cmV0dXJuIHR9LGVudHJpZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtmb3IodmFyIGUgaW4gdGhpcy5fKXQucHVzaCh7a2V5OlQoZSksdmFsdWU6dGhpcy5fW2VdfSk7cmV0dXJuIHR9LHNpemU6RSxlbXB0eTpMLGZvckVhY2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIHRoaXMuXyl0LmNhbGwodGhpcyxUKGUpLHRoaXMuX1tlXSl9fSksdC5uZXN0PWZ1bmN0aW9uKCl7dmFyIGUscixuPXt9LGE9W10saT1bXTtmdW5jdGlvbiBvKHQsaSxzKXtpZihzPj1hLmxlbmd0aClyZXR1cm4gcj9yLmNhbGwobixpKTplP2kuc29ydChlKTppO2Zvcih2YXIgbCxjLHUsaCxmPS0xLHA9aS5sZW5ndGgsZD1hW3MrK10sZz1uZXcgYjsrK2Y8cDspKGg9Zy5nZXQobD1kKGM9aVtmXSkpKT9oLnB1c2goYyk6Zy5zZXQobCxbY10pO3JldHVybiB0PyhjPXQoKSx1PWZ1bmN0aW9uKGUscil7Yy5zZXQoZSxvKHQscixzKSl9KTooYz17fSx1PWZ1bmN0aW9uKGUscil7Y1tlXT1vKHQscixzKX0pLGcuZm9yRWFjaCh1KSxjfXJldHVybiBuLm1hcD1mdW5jdGlvbih0LGUpe3JldHVybiBvKGUsdCwwKX0sbi5lbnRyaWVzPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbiB0KGUscil7aWYocj49YS5sZW5ndGgpcmV0dXJuIGU7dmFyIG49W10sbz1pW3IrK107cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihlLGEpe24ucHVzaCh7a2V5OmUsdmFsdWVzOnQoYSxyKX0pfSksbz9uLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gbyh0LmtleSxlLmtleSl9KTpufShvKHQubWFwLGUsMCksMCl9LG4ua2V5PWZ1bmN0aW9uKHQpe3JldHVybiBhLnB1c2godCksbn0sbi5zb3J0S2V5cz1mdW5jdGlvbih0KXtyZXR1cm4gaVthLmxlbmd0aC0xXT10LG59LG4uc29ydFZhbHVlcz1mdW5jdGlvbih0KXtyZXR1cm4gZT10LG59LG4ucm9sbHVwPWZ1bmN0aW9uKHQpe3JldHVybiByPXQsbn0sbn0sdC5zZXQ9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IEM7aWYodClmb3IodmFyIHI9MCxuPXQubGVuZ3RoO3I8bjsrK3IpZS5hZGQodFtyXSk7cmV0dXJuIGV9LHgoQyx7aGFzOk0sYWRkOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9bayh0Kz0iIildPSEwLHR9LHJlbW92ZTpBLHZhbHVlczpTLHNpemU6RSxlbXB0eTpMLGZvckVhY2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIHRoaXMuXyl0LmNhbGwodGhpcyxUKGUpKX19KSx0LmJlaGF2aW9yPXt9LHQucmViaW5kPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByLG49MSxhPWFyZ3VtZW50cy5sZW5ndGg7KytuPGE7KXRbcj1hcmd1bWVudHNbbl1dPU8odCxlLGVbcl0pO3JldHVybiB0fTt2YXIgST1bIndlYmtpdCIsIm1zIiwibW96IiwiTW96IiwibyIsIk8iXTtmdW5jdGlvbiBEKCl7fWZ1bmN0aW9uIFIoKXt9ZnVuY3Rpb24gRih0KXt2YXIgZT1bXSxyPW5ldyBiO2Z1bmN0aW9uIG4oKXtmb3IodmFyIHIsbj1lLGE9LTEsaT1uLmxlbmd0aDsrK2E8aTspKHI9blthXS5vbikmJnIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiB0fXJldHVybiBuLm9uPWZ1bmN0aW9uKG4sYSl7dmFyIGksbz1yLmdldChuKTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP28mJm8ub246KG8mJihvLm9uPW51bGwsZT1lLnNsaWNlKDAsaT1lLmluZGV4T2YobykpLmNvbmNhdChlLnNsaWNlKGkrMSkpLHIucmVtb3ZlKG4pKSxhJiZlLnB1c2goci5zZXQobix7b246YX0pKSx0KX0sbn1mdW5jdGlvbiBCKCl7dC5ldmVudC5wcmV2ZW50RGVmYXVsdCgpfWZ1bmN0aW9uIE4oKXtmb3IodmFyIGUscj10LmV2ZW50O2U9ci5zb3VyY2VFdmVudDspcj1lO3JldHVybiByfWZ1bmN0aW9uIGooZSl7Zm9yKHZhciByPW5ldyBSLG49MCxhPWFyZ3VtZW50cy5sZW5ndGg7KytuPGE7KXJbYXJndW1lbnRzW25dXT1GKHIpO3JldHVybiByLm9mPWZ1bmN0aW9uKG4sYSl7cmV0dXJuIGZ1bmN0aW9uKGkpe3RyeXt2YXIgbz1pLnNvdXJjZUV2ZW50PXQuZXZlbnQ7aS50YXJnZXQ9ZSx0LmV2ZW50PWkscltpLnR5cGVdLmFwcGx5KG4sYSl9ZmluYWxseXt0LmV2ZW50PW99fX0scn10LmRpc3BhdGNoPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PW5ldyBSLGU9LTEscj1hcmd1bWVudHMubGVuZ3RoOysrZTxyOyl0W2FyZ3VtZW50c1tlXV09Rih0KTtyZXR1cm4gdH0sUi5wcm90b3R5cGUub249ZnVuY3Rpb24odCxlKXt2YXIgcj10LmluZGV4T2YoIi4iKSxuPSIiO2lmKHI+PTAmJihuPXQuc2xpY2UocisxKSx0PXQuc2xpY2UoMCxyKSksdClyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP3RoaXNbdF0ub24obik6dGhpc1t0XS5vbihuLGUpO2lmKDI9PT1hcmd1bWVudHMubGVuZ3RoKXtpZihudWxsPT1lKWZvcih0IGluIHRoaXMpdGhpcy5oYXNPd25Qcm9wZXJ0eSh0KSYmdGhpc1t0XS5vbihuLG51bGwpO3JldHVybiB0aGlzfX0sdC5ldmVudD1udWxsLHQucmVxdW90ZT1mdW5jdGlvbih0KXtyZXR1cm4gdC5yZXBsYWNlKFYsIlxcJCYiKX07dmFyIFY9L1tcXFxeXCRcKlwrXD9cfFxbXF1cKFwpXC5ce1x9XS9nLFU9e30uX19wcm90b19fP2Z1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX06ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIgaW4gZSl0W3JdPWVbcl19O2Z1bmN0aW9uIHEodCl7cmV0dXJuIFUodCxXKSx0fXZhciBIPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUucXVlcnlTZWxlY3Rvcih0KX0sRz1mdW5jdGlvbih0LGUpe3JldHVybiBlLnF1ZXJ5U2VsZWN0b3JBbGwodCl9LFk9ZnVuY3Rpb24odCxlKXt2YXIgcj10Lm1hdGNoZXN8fHRbeih0LCJtYXRjaGVzU2VsZWN0b3IiKV07cmV0dXJuKFk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gci5jYWxsKHQsZSl9KSh0LGUpfTsiZnVuY3Rpb24iPT10eXBlb2YgU2l6emxlJiYoSD1mdW5jdGlvbih0LGUpe3JldHVybiBTaXp6bGUodCxlKVswXXx8bnVsbH0sRz1TaXp6bGUsWT1TaXp6bGUubWF0Y2hlc1NlbGVjdG9yKSx0LnNlbGVjdGlvbj1mdW5jdGlvbigpe3JldHVybiB0LnNlbGVjdChhLmRvY3VtZW50RWxlbWVudCl9O3ZhciBXPXQuc2VsZWN0aW9uLnByb3RvdHlwZT1bXTtmdW5jdGlvbiBYKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6ZnVuY3Rpb24oKXtyZXR1cm4gSCh0LHRoaXMpfX1mdW5jdGlvbiBaKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6ZnVuY3Rpb24oKXtyZXR1cm4gRyh0LHRoaXMpfX1XLnNlbGVjdD1mdW5jdGlvbih0KXt2YXIgZSxyLG4sYSxpPVtdO3Q9WCh0KTtmb3IodmFyIG89LTEscz10aGlzLmxlbmd0aDsrK288czspe2kucHVzaChlPVtdKSxlLnBhcmVudE5vZGU9KG49dGhpc1tvXSkucGFyZW50Tm9kZTtmb3IodmFyIGw9LTEsYz1uLmxlbmd0aDsrK2w8YzspKGE9bltsXSk/KGUucHVzaChyPXQuY2FsbChhLGEuX19kYXRhX18sbCxvKSksciYmIl9fZGF0YV9fImluIGEmJihyLl9fZGF0YV9fPWEuX19kYXRhX18pKTplLnB1c2gobnVsbCl9cmV0dXJuIHEoaSl9LFcuc2VsZWN0QWxsPWZ1bmN0aW9uKHQpe3ZhciBlLHIsYT1bXTt0PVoodCk7Zm9yKHZhciBpPS0xLG89dGhpcy5sZW5ndGg7KytpPG87KWZvcih2YXIgcz10aGlzW2ldLGw9LTEsYz1zLmxlbmd0aDsrK2w8YzspKHI9c1tsXSkmJihhLnB1c2goZT1uKHQuY2FsbChyLHIuX19kYXRhX18sbCxpKSkpLGUucGFyZW50Tm9kZT1yKTtyZXR1cm4gcShhKX07dmFyIEo9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLEs9e3N2ZzoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhodG1sOkoseGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHhtbDoiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8ifTtmdW5jdGlvbiBRKGUscil7cmV0dXJuIGU9dC5ucy5xdWFsaWZ5KGUpLG51bGw9PXI/ZS5sb2NhbD9mdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlTlMoZS5zcGFjZSxlLmxvY2FsKX06ZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZShlKX06ImZ1bmN0aW9uIj09dHlwZW9mIHI/ZS5sb2NhbD9mdW5jdGlvbigpe3ZhciB0PXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PXQ/dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhlLnNwYWNlLGUubG9jYWwpOnRoaXMuc2V0QXR0cmlidXRlTlMoZS5zcGFjZSxlLmxvY2FsLHQpfTpmdW5jdGlvbigpe3ZhciB0PXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PXQ/dGhpcy5yZW1vdmVBdHRyaWJ1dGUoZSk6dGhpcy5zZXRBdHRyaWJ1dGUoZSx0KX06ZS5sb2NhbD9mdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlTlMoZS5zcGFjZSxlLmxvY2FsLHIpfTpmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlKGUscil9fWZ1bmN0aW9uICQodCl7cmV0dXJuIHQudHJpbSgpLnJlcGxhY2UoL1xzKy9nLCIgIil9ZnVuY3Rpb24gdHQoZSl7cmV0dXJuIG5ldyBSZWdFeHAoIig/Ol58XFxzKykiK3QucmVxdW90ZShlKSsiKD86XFxzK3wkKSIsImciKX1mdW5jdGlvbiBldCh0KXtyZXR1cm4odCsiIikudHJpbSgpLnNwbGl0KC9efFxzKy8pfWZ1bmN0aW9uIHJ0KHQsZSl7dmFyIHI9KHQ9ZXQodCkubWFwKG50KSkubGVuZ3RoO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlP2Z1bmN0aW9uKCl7Zm9yKHZhciBuPS0xLGE9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7KytuPHI7KXRbbl0odGhpcyxhKX06ZnVuY3Rpb24oKXtmb3IodmFyIG49LTE7KytuPHI7KXRbbl0odGhpcyxlKX19ZnVuY3Rpb24gbnQodCl7dmFyIGU9dHQodCk7cmV0dXJuIGZ1bmN0aW9uKHIsbil7aWYoYT1yLmNsYXNzTGlzdClyZXR1cm4gbj9hLmFkZCh0KTphLnJlbW92ZSh0KTt2YXIgYT1yLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiI7bj8oZS5sYXN0SW5kZXg9MCxlLnRlc3QoYSl8fHIuc2V0QXR0cmlidXRlKCJjbGFzcyIsJChhKyIgIit0KSkpOnIuc2V0QXR0cmlidXRlKCJjbGFzcyIsJChhLnJlcGxhY2UoZSwiICIpKSl9fWZ1bmN0aW9uIGF0KHQsZSxyKXtyZXR1cm4gbnVsbD09ZT9mdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCl9OiJmdW5jdGlvbiI9PXR5cGVvZiBlP2Z1bmN0aW9uKCl7dmFyIG49ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09bj90aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpOnRoaXMuc3R5bGUuc2V0UHJvcGVydHkodCxuLHIpfTpmdW5jdGlvbigpe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkodCxlLHIpfX1mdW5jdGlvbiBpdCh0LGUpe3JldHVybiBudWxsPT1lP2Z1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbdF19OiJmdW5jdGlvbiI9PXR5cGVvZiBlP2Z1bmN0aW9uKCl7dmFyIHI9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09cj9kZWxldGUgdGhpc1t0XTp0aGlzW3RdPXJ9OmZ1bmN0aW9uKCl7dGhpc1t0XT1lfX1mdW5jdGlvbiBvdChlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZT9lOihlPXQubnMucXVhbGlmeShlKSkubG9jYWw/ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhlLnNwYWNlLGUubG9jYWwpfTpmdW5jdGlvbigpe3ZhciB0PXRoaXMub3duZXJEb2N1bWVudCxyPXRoaXMubmFtZXNwYWNlVVJJO3JldHVybiByPT09SiYmdC5kb2N1bWVudEVsZW1lbnQubmFtZXNwYWNlVVJJPT09Sj90LmNyZWF0ZUVsZW1lbnQoZSk6dC5jcmVhdGVFbGVtZW50TlMocixlKX19ZnVuY3Rpb24gc3QoKXt2YXIgdD10aGlzLnBhcmVudE5vZGU7dCYmdC5yZW1vdmVDaGlsZCh0aGlzKX1mdW5jdGlvbiBsdCh0KXtyZXR1cm57X19kYXRhX186dH19ZnVuY3Rpb24gY3QodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyx0KX19ZnVuY3Rpb24gdXQodCxlKXtmb3IodmFyIHI9MCxuPXQubGVuZ3RoO3I8bjtyKyspZm9yKHZhciBhLGk9dFtyXSxvPTAscz1pLmxlbmd0aDtvPHM7bysrKShhPWlbb10pJiZlKGEsbyxyKTtyZXR1cm4gdH1mdW5jdGlvbiBodCh0KXtyZXR1cm4gVSh0LGZ0KSx0fXQubnM9e3ByZWZpeDpLLHF1YWxpZnk6ZnVuY3Rpb24odCl7dmFyIGU9dC5pbmRleE9mKCI6Iikscj10O3JldHVybiBlPj0wJiYieG1sbnMiIT09KHI9dC5zbGljZSgwLGUpKSYmKHQ9dC5zbGljZShlKzEpKSxLLmhhc093blByb3BlcnR5KHIpP3tzcGFjZTpLW3JdLGxvY2FsOnR9OnR9fSxXLmF0dHI9ZnVuY3Rpb24oZSxyKXtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2lmKCJzdHJpbmciPT10eXBlb2YgZSl7dmFyIG49dGhpcy5ub2RlKCk7cmV0dXJuKGU9dC5ucy5xdWFsaWZ5KGUpKS5sb2NhbD9uLmdldEF0dHJpYnV0ZU5TKGUuc3BhY2UsZS5sb2NhbCk6bi5nZXRBdHRyaWJ1dGUoZSl9Zm9yKHIgaW4gZSl0aGlzLmVhY2goUShyLGVbcl0pKTtyZXR1cm4gdGhpc31yZXR1cm4gdGhpcy5lYWNoKFEoZSxyKSl9LFcuY2xhc3NlZD1mdW5jdGlvbih0LGUpe2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7aWYoInN0cmluZyI9PXR5cGVvZiB0KXt2YXIgcj10aGlzLm5vZGUoKSxuPSh0PWV0KHQpKS5sZW5ndGgsYT0tMTtpZihlPXIuY2xhc3NMaXN0KXtmb3IoOysrYTxuOylpZighZS5jb250YWlucyh0W2FdKSlyZXR1cm4hMX1lbHNlIGZvcihlPXIuZ2V0QXR0cmlidXRlKCJjbGFzcyIpOysrYTxuOylpZighdHQodFthXSkudGVzdChlKSlyZXR1cm4hMTtyZXR1cm4hMH1mb3IoZSBpbiB0KXRoaXMuZWFjaChydChlLHRbZV0pKTtyZXR1cm4gdGhpc31yZXR1cm4gdGhpcy5lYWNoKHJ0KHQsZSkpfSxXLnN0eWxlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoO2lmKG48Myl7aWYoInN0cmluZyIhPXR5cGVvZiB0KXtmb3IociBpbiBuPDImJihlPSIiKSx0KXRoaXMuZWFjaChhdChyLHRbcl0sZSkpO3JldHVybiB0aGlzfWlmKG48Mil7dmFyIGE9dGhpcy5ub2RlKCk7cmV0dXJuIG8oYSkuZ2V0Q29tcHV0ZWRTdHlsZShhLG51bGwpLmdldFByb3BlcnR5VmFsdWUodCl9cj0iIn1yZXR1cm4gdGhpcy5lYWNoKGF0KHQsZSxyKSl9LFcucHJvcGVydHk9ZnVuY3Rpb24odCxlKXtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gdGhpcy5ub2RlKClbdF07Zm9yKGUgaW4gdCl0aGlzLmVhY2goaXQoZSx0W2VdKSk7cmV0dXJuIHRoaXN9cmV0dXJuIHRoaXMuZWFjaChpdCh0LGUpKX0sVy50ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgiZnVuY3Rpb24iPT10eXBlb2YgdD9mdW5jdGlvbigpe3ZhciBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMudGV4dENvbnRlbnQ9bnVsbD09ZT8iIjplfTpudWxsPT10P2Z1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD0iIn06ZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PXR9KTp0aGlzLm5vZGUoKS50ZXh0Q29udGVudH0sVy5odG1sPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgiZnVuY3Rpb24iPT10eXBlb2YgdD9mdW5jdGlvbigpe3ZhciBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMuaW5uZXJIVE1MPW51bGw9PWU/IiI6ZX06bnVsbD09dD9mdW5jdGlvbigpe3RoaXMuaW5uZXJIVE1MPSIifTpmdW5jdGlvbigpe3RoaXMuaW5uZXJIVE1MPXR9KTp0aGlzLm5vZGUoKS5pbm5lckhUTUx9LFcuYXBwZW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0PW90KHQpLHRoaXMuc2VsZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXBwZW5kQ2hpbGQodC5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSl9LFcuaW5zZXJ0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9b3QodCksZT1YKGUpLHRoaXMuc2VsZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zZXJ0QmVmb3JlKHQuYXBwbHkodGhpcyxhcmd1bWVudHMpLGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfHxudWxsKX0pfSxXLnJlbW92ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goc3QpfSxXLmRhdGE9ZnVuY3Rpb24odCxlKXt2YXIgcixuLGE9LTEsaT10aGlzLmxlbmd0aDtpZighYXJndW1lbnRzLmxlbmd0aCl7Zm9yKHQ9bmV3IEFycmF5KGk9KHI9dGhpc1swXSkubGVuZ3RoKTsrK2E8aTspKG49clthXSkmJih0W2FdPW4uX19kYXRhX18pO3JldHVybiB0fWZ1bmN0aW9uIG8odCxyKXt2YXIgbixhLGksbz10Lmxlbmd0aCx1PXIubGVuZ3RoLGg9TWF0aC5taW4obyx1KSxmPW5ldyBBcnJheSh1KSxwPW5ldyBBcnJheSh1KSxkPW5ldyBBcnJheShvKTtpZihlKXt2YXIgZyx2PW5ldyBiLG09bmV3IEFycmF5KG8pO2ZvcihuPS0xOysrbjxvOykoYT10W25dKSYmKHYuaGFzKGc9ZS5jYWxsKGEsYS5fX2RhdGFfXyxuKSk/ZFtuXT1hOnYuc2V0KGcsYSksbVtuXT1nKTtmb3Iobj0tMTsrK248dTspKGE9di5nZXQoZz1lLmNhbGwocixpPXJbbl0sbikpKT8hMCE9PWEmJihmW25dPWEsYS5fX2RhdGFfXz1pKTpwW25dPWx0KGkpLHYuc2V0KGcsITApO2ZvcihuPS0xOysrbjxvOyluIGluIG0mJiEwIT09di5nZXQobVtuXSkmJihkW25dPXRbbl0pfWVsc2V7Zm9yKG49LTE7KytuPGg7KWE9dFtuXSxpPXJbbl0sYT8oYS5fX2RhdGFfXz1pLGZbbl09YSk6cFtuXT1sdChpKTtmb3IoO248dTsrK24pcFtuXT1sdChyW25dKTtmb3IoO248bzsrK24pZFtuXT10W25dfXAudXBkYXRlPWYscC5wYXJlbnROb2RlPWYucGFyZW50Tm9kZT1kLnBhcmVudE5vZGU9dC5wYXJlbnROb2RlLHMucHVzaChwKSxsLnB1c2goZiksYy5wdXNoKGQpfXZhciBzPWh0KFtdKSxsPXEoW10pLGM9cShbXSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQpZm9yKDsrK2E8aTspbyhyPXRoaXNbYV0sdC5jYWxsKHIsci5wYXJlbnROb2RlLl9fZGF0YV9fLGEpKTtlbHNlIGZvcig7KythPGk7KW8ocj10aGlzW2FdLHQpO3JldHVybiBsLmVudGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHN9LGwuZXhpdD1mdW5jdGlvbigpe3JldHVybiBjfSxsfSxXLmRhdHVtPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMucHJvcGVydHkoIl9fZGF0YV9fIix0KTp0aGlzLnByb3BlcnR5KCJfX2RhdGFfXyIpfSxXLmZpbHRlcj1mdW5jdGlvbih0KXt2YXIgZSxyLG4sYT1bXTsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9Y3QodCkpO2Zvcih2YXIgaT0wLG89dGhpcy5sZW5ndGg7aTxvO2krKyl7YS5wdXNoKGU9W10pLGUucGFyZW50Tm9kZT0ocj10aGlzW2ldKS5wYXJlbnROb2RlO2Zvcih2YXIgcz0wLGw9ci5sZW5ndGg7czxsO3MrKykobj1yW3NdKSYmdC5jYWxsKG4sbi5fX2RhdGFfXyxzLGkpJiZlLnB1c2gobil9cmV0dXJuIHEoYSl9LFcub3JkZXI9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9LTEsZT10aGlzLmxlbmd0aDsrK3Q8ZTspZm9yKHZhciByLG49dGhpc1t0XSxhPW4ubGVuZ3RoLTEsaT1uW2FdOy0tYT49MDspKHI9blthXSkmJihpJiZpIT09ci5uZXh0U2libGluZyYmaS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShyLGkpLGk9cik7cmV0dXJuIHRoaXN9LFcuc29ydD1mdW5jdGlvbih0KXt0PWZ1bmN0aW9uKHQpe2FyZ3VtZW50cy5sZW5ndGh8fCh0PWYpO3JldHVybiBmdW5jdGlvbihlLHIpe3JldHVybiBlJiZyP3QoZS5fX2RhdGFfXyxyLl9fZGF0YV9fKTohZS0hcn19LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtmb3IodmFyIGU9LTEscj10aGlzLmxlbmd0aDsrK2U8cjspdGhpc1tlXS5zb3J0KHQpO3JldHVybiB0aGlzLm9yZGVyKCl9LFcuZWFjaD1mdW5jdGlvbih0KXtyZXR1cm4gdXQodGhpcyxmdW5jdGlvbihlLHIsbil7dC5jYWxsKGUsZS5fX2RhdGFfXyxyLG4pfSl9LFcuY2FsbD1mdW5jdGlvbih0KXt2YXIgZT1uKGFyZ3VtZW50cyk7cmV0dXJuIHQuYXBwbHkoZVswXT10aGlzLGUpLHRoaXN9LFcuZW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5ub2RlKCl9LFcubm9kZT1mdW5jdGlvbigpe2Zvcih2YXIgdD0wLGU9dGhpcy5sZW5ndGg7dDxlO3QrKylmb3IodmFyIHI9dGhpc1t0XSxuPTAsYT1yLmxlbmd0aDtuPGE7bisrKXt2YXIgaT1yW25dO2lmKGkpcmV0dXJuIGl9cmV0dXJuIG51bGx9LFcuc2l6ZT1mdW5jdGlvbigpe3ZhciB0PTA7cmV0dXJuIHV0KHRoaXMsZnVuY3Rpb24oKXsrK3R9KSx0fTt2YXIgZnQ9W107ZnVuY3Rpb24gcHQoZSxyLGEpe3ZhciBpPSJfX29uIitlLG89ZS5pbmRleE9mKCIuIikscz1ndDtvPjAmJihlPWUuc2xpY2UoMCxvKSk7dmFyIGw9ZHQuZ2V0KGUpO2Z1bmN0aW9uIGMoKXt2YXIgdD10aGlzW2ldO3QmJih0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoZSx0LHQuJCksZGVsZXRlIHRoaXNbaV0pfXJldHVybiBsJiYoZT1sLHM9dnQpLG8/cj9mdW5jdGlvbigpe3ZhciB0PXMocixuKGFyZ3VtZW50cykpO2MuY2FsbCh0aGlzKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoZSx0aGlzW2ldPXQsdC4kPWEpLHQuXz1yfTpjOnI/RDpmdW5jdGlvbigpe3ZhciByLG49bmV3IFJlZ0V4cCgiXl9fb24oW14uXSspIit0LnJlcXVvdGUoZSkrIiQiKTtmb3IodmFyIGEgaW4gdGhpcylpZihyPWEubWF0Y2gobikpe3ZhciBpPXRoaXNbYV07dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKHJbMV0saSxpLiQpLGRlbGV0ZSB0aGlzW2FdfX19dC5zZWxlY3Rpb24uZW50ZXI9aHQsdC5zZWxlY3Rpb24uZW50ZXIucHJvdG90eXBlPWZ0LGZ0LmFwcGVuZD1XLmFwcGVuZCxmdC5lbXB0eT1XLmVtcHR5LGZ0Lm5vZGU9Vy5ub2RlLGZ0LmNhbGw9Vy5jYWxsLGZ0LnNpemU9Vy5zaXplLGZ0LnNlbGVjdD1mdW5jdGlvbih0KXtmb3IodmFyIGUscixuLGEsaSxvPVtdLHM9LTEsbD10aGlzLmxlbmd0aDsrK3M8bDspe249KGE9dGhpc1tzXSkudXBkYXRlLG8ucHVzaChlPVtdKSxlLnBhcmVudE5vZGU9YS5wYXJlbnROb2RlO2Zvcih2YXIgYz0tMSx1PWEubGVuZ3RoOysrYzx1OykoaT1hW2NdKT8oZS5wdXNoKG5bY109cj10LmNhbGwoYS5wYXJlbnROb2RlLGkuX19kYXRhX18sYyxzKSksci5fX2RhdGFfXz1pLl9fZGF0YV9fKTplLnB1c2gobnVsbCl9cmV0dXJuIHEobyl9LGZ0Lmluc2VydD1mdW5jdGlvbih0LGUpe3ZhciByLG4sYTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyJiYocj10aGlzLGU9ZnVuY3Rpb24odCxlLGkpe3ZhciBvLHM9cltpXS51cGRhdGUsbD1zLmxlbmd0aDtmb3IoaSE9YSYmKGE9aSxuPTApLGU+PW4mJihuPWUrMSk7IShvPXNbbl0pJiYrK248bDspO3JldHVybiBvfSksVy5pbnNlcnQuY2FsbCh0aGlzLHQsZSl9LHQuc2VsZWN0PWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiJzdHJpbmciPT10eXBlb2YgdD8oZT1bSCh0LGEpXSkucGFyZW50Tm9kZT1hLmRvY3VtZW50RWxlbWVudDooZT1bdF0pLnBhcmVudE5vZGU9aSh0KSxxKFtlXSl9LHQuc2VsZWN0QWxsPWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiJzdHJpbmciPT10eXBlb2YgdD8oZT1uKEcodCxhKSkpLnBhcmVudE5vZGU9YS5kb2N1bWVudEVsZW1lbnQ6KGU9bih0KSkucGFyZW50Tm9kZT1udWxsLHEoW2VdKX0sVy5vbj1mdW5jdGlvbih0LGUscil7dmFyIG49YXJndW1lbnRzLmxlbmd0aDtpZihuPDMpe2lmKCJzdHJpbmciIT10eXBlb2YgdCl7Zm9yKHIgaW4gbjwyJiYoZT0hMSksdCl0aGlzLmVhY2gocHQocix0W3JdLGUpKTtyZXR1cm4gdGhpc31pZihuPDIpcmV0dXJuKG49dGhpcy5ub2RlKClbIl9fb24iK3RdKSYmbi5fO3I9ITF9cmV0dXJuIHRoaXMuZWFjaChwdCh0LGUscikpfTt2YXIgZHQ9dC5tYXAoe21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQifSk7ZnVuY3Rpb24gZ3QoZSxyKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGE9dC5ldmVudDt0LmV2ZW50PW4sclswXT10aGlzLl9fZGF0YV9fO3RyeXtlLmFwcGx5KHRoaXMscil9ZmluYWxseXt0LmV2ZW50PWF9fX1mdW5jdGlvbiB2dCh0LGUpe3ZhciByPWd0KHQsZSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBlPXQucmVsYXRlZFRhcmdldDtlJiYoZT09PXRoaXN8fDgmZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0aGlzKSl8fHIuY2FsbCh0aGlzLHQpfX1hJiZkdC5mb3JFYWNoKGZ1bmN0aW9uKHQpeyJvbiIrdCBpbiBhJiZkdC5yZW1vdmUodCl9KTt2YXIgbXQseXQ9MDtmdW5jdGlvbiB4dChlKXt2YXIgcj0iLmRyYWdzdXBwcmVzcy0iKyArK3l0LG49ImNsaWNrIityLGE9dC5zZWxlY3QobyhlKSkub24oInRvdWNobW92ZSIrcixCKS5vbigiZHJhZ3N0YXJ0IityLEIpLm9uKCJzZWxlY3RzdGFydCIrcixCKTtpZihudWxsPT1tdCYmKG10PSEoIm9uc2VsZWN0c3RhcnQiaW4gZSkmJnooZS5zdHlsZSwidXNlclNlbGVjdCIpKSxtdCl7dmFyIHM9aShlKS5zdHlsZSxsPXNbbXRdO3NbbXRdPSJub25lIn1yZXR1cm4gZnVuY3Rpb24odCl7aWYoYS5vbihyLG51bGwpLG10JiYoc1ttdF09bCksdCl7dmFyIGU9ZnVuY3Rpb24oKXthLm9uKG4sbnVsbCl9O2Eub24obixmdW5jdGlvbigpe0IoKSxlKCl9LCEwKSxzZXRUaW1lb3V0KGUsMCl9fX10Lm1vdXNlPWZ1bmN0aW9uKHQpe3JldHVybiBfdCh0LE4oKSl9O3ZhciBidD10aGlzLm5hdmlnYXRvciYmL1dlYktpdC8udGVzdCh0aGlzLm5hdmlnYXRvci51c2VyQWdlbnQpPy0xOjA7ZnVuY3Rpb24gX3QoZSxyKXtyLmNoYW5nZWRUb3VjaGVzJiYocj1yLmNoYW5nZWRUb3VjaGVzWzBdKTt2YXIgbj1lLm93bmVyU1ZHRWxlbWVudHx8ZTtpZihuLmNyZWF0ZVNWR1BvaW50KXt2YXIgYT1uLmNyZWF0ZVNWR1BvaW50KCk7aWYoYnQ8MCl7dmFyIGk9byhlKTtpZihpLnNjcm9sbFh8fGkuc2Nyb2xsWSl7dmFyIHM9KG49dC5zZWxlY3QoImJvZHkiKS5hcHBlbmQoInN2ZyIpLnN0eWxlKHtwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDowLGxlZnQ6MCxtYXJnaW46MCxwYWRkaW5nOjAsYm9yZGVyOiJub25lIn0sImltcG9ydGFudCIpKVswXVswXS5nZXRTY3JlZW5DVE0oKTtidD0hKHMuZnx8cy5lKSxuLnJlbW92ZSgpfX1yZXR1cm4gYnQ/KGEueD1yLnBhZ2VYLGEueT1yLnBhZ2VZKTooYS54PXIuY2xpZW50WCxhLnk9ci5jbGllbnRZKSxbKGE9YS5tYXRyaXhUcmFuc2Zvcm0oZS5nZXRTY3JlZW5DVE0oKS5pbnZlcnNlKCkpKS54LGEueV19dmFyIGw9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm5bci5jbGllbnRYLWwubGVmdC1lLmNsaWVudExlZnQsci5jbGllbnRZLWwudG9wLWUuY2xpZW50VG9wXX1mdW5jdGlvbiB3dCgpe3JldHVybiB0LmV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmlkZW50aWZpZXJ9dC50b3VjaD1mdW5jdGlvbih0LGUscil7aWYoYXJndW1lbnRzLmxlbmd0aDwzJiYocj1lLGU9TigpLmNoYW5nZWRUb3VjaGVzKSxlKWZvcih2YXIgbixhPTAsaT1lLmxlbmd0aDthPGk7KythKWlmKChuPWVbYV0pLmlkZW50aWZpZXI9PT1yKXJldHVybiBfdCh0LG4pfSx0LmJlaGF2aW9yLmRyYWc9ZnVuY3Rpb24oKXt2YXIgZT1qKGksImRyYWciLCJkcmFnc3RhcnQiLCJkcmFnZW5kIikscj1udWxsLG49cyhELHQubW91c2UsbywibW91c2Vtb3ZlIiwibW91c2V1cCIpLGE9cyh3dCx0LnRvdWNoLFAsInRvdWNobW92ZSIsInRvdWNoZW5kIik7ZnVuY3Rpb24gaSgpe3RoaXMub24oIm1vdXNlZG93bi5kcmFnIixuKS5vbigidG91Y2hzdGFydC5kcmFnIixhKX1mdW5jdGlvbiBzKG4sYSxpLG8scyl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGwsYz10LmV2ZW50LnRhcmdldC5jb3JyZXNwb25kaW5nRWxlbWVudHx8dC5ldmVudC50YXJnZXQsdT10aGlzLnBhcmVudE5vZGUsaD1lLm9mKHRoaXMsYXJndW1lbnRzKSxmPTAscD1uKCksZD0iLmRyYWciKyhudWxsPT1wPyIiOiItIitwKSxnPXQuc2VsZWN0KGkoYykpLm9uKG8rZCxmdW5jdGlvbigpe3ZhciB0LGUscj1hKHUscCk7aWYoIXIpcmV0dXJuO3Q9clswXS1tWzBdLGU9clsxXS1tWzFdLGZ8PXR8ZSxtPXIsaCh7dHlwZToiZHJhZyIseDpyWzBdK2xbMF0seTpyWzFdK2xbMV0sZHg6dCxkeTplfSl9KS5vbihzK2QsZnVuY3Rpb24oKXtpZighYSh1LHApKXJldHVybjtnLm9uKG8rZCxudWxsKS5vbihzK2QsbnVsbCksdihmKSxoKHt0eXBlOiJkcmFnZW5kIn0pfSksdj14dChjKSxtPWEodSxwKTtsPXI/WyhsPXIuYXBwbHkodGhpcyxhcmd1bWVudHMpKS54LW1bMF0sbC55LW1bMV1dOlswLDBdLGgoe3R5cGU6ImRyYWdzdGFydCJ9KX19cmV0dXJuIGkub3JpZ2luPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsaSk6cn0sdC5yZWJpbmQoaSxlLCJvbiIpfSx0LnRvdWNoZXM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyJiYoZT1OKCkudG91Y2hlcyksZT9uKGUpLm1hcChmdW5jdGlvbihlKXt2YXIgcj1fdCh0LGUpO3JldHVybiByLmlkZW50aWZpZXI9ZS5pZGVudGlmaWVyLHJ9KTpbXX07dmFyIGt0PTFlLTYsVHQ9a3Qqa3QsTXQ9TWF0aC5QSSxBdD0yKk10LFN0PUF0LWt0LEV0PU10LzIsTHQ9TXQvMTgwLEN0PTE4MC9NdDtmdW5jdGlvbiBQdCh0KXtyZXR1cm4gdD4wPzE6dDwwPy0xOjB9ZnVuY3Rpb24gT3QodCxlLHIpe3JldHVybihlWzBdLXRbMF0pKihyWzFdLXRbMV0pLShlWzFdLXRbMV0pKihyWzBdLXRbMF0pfWZ1bmN0aW9uIHp0KHQpe3JldHVybiB0PjE/MDp0PC0xP010Ok1hdGguYWNvcyh0KX1mdW5jdGlvbiBJdCh0KXtyZXR1cm4gdD4xP0V0OnQ8LTE/LUV0Ok1hdGguYXNpbih0KX1mdW5jdGlvbiBEdCh0KXtyZXR1cm4oKHQ9TWF0aC5leHAodCkpKzEvdCkvMn1mdW5jdGlvbiBSdCh0KXtyZXR1cm4odD1NYXRoLnNpbih0LzIpKSp0fXZhciBGdD1NYXRoLlNRUlQyO3QuaW50ZXJwb2xhdGVab29tPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixhPXRbMF0saT10WzFdLG89dFsyXSxzPWVbMF0sbD1lWzFdLGM9ZVsyXSx1PXMtYSxoPWwtaSxmPXUqdStoKmg7aWYoZjxUdCluPU1hdGgubG9nKGMvbykvRnQscj1mdW5jdGlvbih0KXtyZXR1cm5bYSt0KnUsaSt0KmgsbypNYXRoLmV4cChGdCp0Km4pXX07ZWxzZXt2YXIgcD1NYXRoLnNxcnQoZiksZD0oYypjLW8qbys0KmYpLygyKm8qMipwKSxnPShjKmMtbypvLTQqZikvKDIqYyoyKnApLHY9TWF0aC5sb2coTWF0aC5zcXJ0KGQqZCsxKS1kKSxtPU1hdGgubG9nKE1hdGguc3FydChnKmcrMSktZyk7bj0obS12KS9GdCxyPWZ1bmN0aW9uKHQpe3ZhciBlLHI9dCpuLHM9RHQodiksbD1vLygyKnApKihzKihlPUZ0KnIrdiwoKGU9TWF0aC5leHAoMiplKSktMSkvKGUrMSkpLWZ1bmN0aW9uKHQpe3JldHVybigodD1NYXRoLmV4cCh0KSktMS90KS8yfSh2KSk7cmV0dXJuW2ErbCp1LGkrbCpoLG8qcy9EdChGdCpyK3YpXX19cmV0dXJuIHIuZHVyYXRpb249MWUzKm4scn0sdC5iZWhhdmlvci56b29tPWZ1bmN0aW9uKCl7dmFyIGUscixuLGkscyxsLGMsdSxoLGY9e3g6MCx5OjAsazoxfSxwPVs5NjAsNTAwXSxkPWp0LGc9MjUwLHY9MCxtPSJtb3VzZWRvd24uem9vbSIseT0ibW91c2Vtb3ZlLnpvb20iLHg9Im1vdXNldXAuem9vbSIsYj0idG91Y2hzdGFydC56b29tIixfPWoodywiem9vbXN0YXJ0Iiwiem9vbSIsInpvb21lbmQiKTtmdW5jdGlvbiB3KHQpe3Qub24obSxQKS5vbihOdCsiLnpvb20iLHopLm9uKCJkYmxjbGljay56b29tIixJKS5vbihiLE8pfWZ1bmN0aW9uIGsodCl7cmV0dXJuWyh0WzBdLWYueCkvZi5rLCh0WzFdLWYueSkvZi5rXX1mdW5jdGlvbiBUKHQpe2Yuaz1NYXRoLm1heChkWzBdLE1hdGgubWluKGRbMV0sdCkpfWZ1bmN0aW9uIE0odCxlKXtlPWZ1bmN0aW9uKHQpe3JldHVyblt0WzBdKmYuaytmLngsdFsxXSpmLmsrZi55XX0oZSksZi54Kz10WzBdLWVbMF0sZi55Kz10WzFdLWVbMV19ZnVuY3Rpb24gQShlLG4sYSxpKXtlLl9fY2hhcnRfXz17eDpmLngseTpmLnksazpmLmt9LFQoTWF0aC5wb3coMixpKSksTShyPW4sYSksZT10LnNlbGVjdChlKSxnPjAmJihlPWUudHJhbnNpdGlvbigpLmR1cmF0aW9uKGcpKSxlLmNhbGwody5ldmVudCl9ZnVuY3Rpb24gUygpe2MmJmMuZG9tYWluKGwucmFuZ2UoKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuKHQtZi54KS9mLmt9KS5tYXAobC5pbnZlcnQpKSxoJiZoLmRvbWFpbih1LnJhbmdlKCkubWFwKGZ1bmN0aW9uKHQpe3JldHVybih0LWYueSkvZi5rfSkubWFwKHUuaW52ZXJ0KSl9ZnVuY3Rpb24gRSh0KXt2Kyt8fHQoe3R5cGU6Inpvb21zdGFydCJ9KX1mdW5jdGlvbiBMKHQpe1MoKSx0KHt0eXBlOiJ6b29tIixzY2FsZTpmLmssdHJhbnNsYXRlOltmLngsZi55XX0pfWZ1bmN0aW9uIEModCl7LS12fHwodCh7dHlwZToiem9vbWVuZCJ9KSxyPW51bGwpfWZ1bmN0aW9uIFAoKXt2YXIgZT10aGlzLHI9Xy5vZihlLGFyZ3VtZW50cyksbj0wLGE9dC5zZWxlY3QobyhlKSkub24oeSxmdW5jdGlvbigpe249MSxNKHQubW91c2UoZSksaSksTChyKX0pLm9uKHgsZnVuY3Rpb24oKXthLm9uKHksbnVsbCkub24oeCxudWxsKSxzKG4pLEMocil9KSxpPWsodC5tb3VzZShlKSkscz14dChlKTtwcy5jYWxsKGUpLEUocil9ZnVuY3Rpb24gTygpe3ZhciBlLHI9dGhpcyxuPV8ub2Yocixhcmd1bWVudHMpLGE9e30saT0wLG89Ii56b29tLSIrdC5ldmVudC5jaGFuZ2VkVG91Y2hlc1swXS5pZGVudGlmaWVyLGw9InRvdWNobW92ZSIrbyxjPSJ0b3VjaGVuZCIrbyx1PVtdLGg9dC5zZWxlY3QocikscD14dChyKTtmdW5jdGlvbiBkKCl7dmFyIG49dC50b3VjaGVzKHIpO3JldHVybiBlPWYuayxuLmZvckVhY2goZnVuY3Rpb24odCl7dC5pZGVudGlmaWVyIGluIGEmJihhW3QuaWRlbnRpZmllcl09ayh0KSl9KSxufWZ1bmN0aW9uIGcoKXt2YXIgZT10LmV2ZW50LnRhcmdldDt0LnNlbGVjdChlKS5vbihsLHYpLm9uKGMseSksdS5wdXNoKGUpO2Zvcih2YXIgbj10LmV2ZW50LmNoYW5nZWRUb3VjaGVzLG89MCxoPW4ubGVuZ3RoO288aDsrK28pYVtuW29dLmlkZW50aWZpZXJdPW51bGw7dmFyIHA9ZCgpLGc9RGF0ZS5ub3coKTtpZigxPT09cC5sZW5ndGgpe2lmKGctczw1MDApe3ZhciBtPXBbMF07QShyLG0sYVttLmlkZW50aWZpZXJdLE1hdGguZmxvb3IoTWF0aC5sb2coZi5rKS9NYXRoLkxOMikrMSksQigpfXM9Z31lbHNlIGlmKHAubGVuZ3RoPjEpe209cFswXTt2YXIgeD1wWzFdLGI9bVswXS14WzBdLF89bVsxXS14WzFdO2k9YipiK18qX319ZnVuY3Rpb24gdigpe3ZhciBvLGwsYyx1LGg9dC50b3VjaGVzKHIpO3BzLmNhbGwocik7Zm9yKHZhciBmPTAscD1oLmxlbmd0aDtmPHA7KytmLHU9bnVsbClpZihjPWhbZl0sdT1hW2MuaWRlbnRpZmllcl0pe2lmKGwpYnJlYWs7bz1jLGw9dX1pZih1KXt2YXIgZD0oZD1jWzBdLW9bMF0pKmQrKGQ9Y1sxXS1vWzFdKSpkLGc9aSYmTWF0aC5zcXJ0KGQvaSk7bz1bKG9bMF0rY1swXSkvMiwob1sxXStjWzFdKS8yXSxsPVsobFswXSt1WzBdKS8yLChsWzFdK3VbMV0pLzJdLFQoZyplKX1zPW51bGwsTShvLGwpLEwobil9ZnVuY3Rpb24geSgpe2lmKHQuZXZlbnQudG91Y2hlcy5sZW5ndGgpe2Zvcih2YXIgZT10LmV2ZW50LmNoYW5nZWRUb3VjaGVzLHI9MCxpPWUubGVuZ3RoO3I8aTsrK3IpZGVsZXRlIGFbZVtyXS5pZGVudGlmaWVyXTtmb3IodmFyIHMgaW4gYSlyZXR1cm4gdm9pZCBkKCl9dC5zZWxlY3RBbGwodSkub24obyxudWxsKSxoLm9uKG0sUCkub24oYixPKSxwKCksQyhuKX1nKCksRShuKSxoLm9uKG0sbnVsbCkub24oYixnKX1mdW5jdGlvbiB6KCl7dmFyIGE9Xy5vZih0aGlzLGFyZ3VtZW50cyk7aT9jbGVhclRpbWVvdXQoaSk6KHBzLmNhbGwodGhpcyksZT1rKHI9bnx8dC5tb3VzZSh0aGlzKSksRShhKSksaT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aT1udWxsLEMoYSl9LDUwKSxCKCksVChNYXRoLnBvdygyLC4wMDIqQnQoKSkqZi5rKSxNKHIsZSksTChhKX1mdW5jdGlvbiBJKCl7dmFyIGU9dC5tb3VzZSh0aGlzKSxyPU1hdGgubG9nKGYuaykvTWF0aC5MTjI7QSh0aGlzLGUsayhlKSx0LmV2ZW50LnNoaWZ0S2V5P01hdGguY2VpbChyKS0xOk1hdGguZmxvb3IocikrMSl9cmV0dXJuIE50fHwoTnQ9Im9ud2hlZWwiaW4gYT8oQnQ9ZnVuY3Rpb24oKXtyZXR1cm4tdC5ldmVudC5kZWx0YVkqKHQuZXZlbnQuZGVsdGFNb2RlPzEyMDoxKX0sIndoZWVsIik6Im9ubW91c2V3aGVlbCJpbiBhPyhCdD1mdW5jdGlvbigpe3JldHVybiB0LmV2ZW50LndoZWVsRGVsdGF9LCJtb3VzZXdoZWVsIik6KEJ0PWZ1bmN0aW9uKCl7cmV0dXJuLXQuZXZlbnQuZGV0YWlsfSwiTW96TW91c2VQaXhlbFNjcm9sbCIpKSx3LmV2ZW50PWZ1bmN0aW9uKGUpe2UuZWFjaChmdW5jdGlvbigpe3ZhciBlPV8ub2YodGhpcyxhcmd1bWVudHMpLG49Zjt2cz90LnNlbGVjdCh0aGlzKS50cmFuc2l0aW9uKCkuZWFjaCgic3RhcnQuem9vbSIsZnVuY3Rpb24oKXtmPXRoaXMuX19jaGFydF9ffHx7eDowLHk6MCxrOjF9LEUoZSl9KS50d2Vlbigiem9vbTp6b29tIixmdW5jdGlvbigpe3ZhciBhPXBbMF0saT1wWzFdLG89cj9yWzBdOmEvMixzPXI/clsxXTppLzIsbD10LmludGVycG9sYXRlWm9vbShbKG8tZi54KS9mLmssKHMtZi55KS9mLmssYS9mLmtdLFsoby1uLngpL24uaywocy1uLnkpL24uayxhL24ua10pO3JldHVybiBmdW5jdGlvbih0KXt2YXIgcj1sKHQpLG49YS9yWzJdO3RoaXMuX19jaGFydF9fPWY9e3g6by1yWzBdKm4seTpzLXJbMV0qbixrOm59LEwoZSl9fSkuZWFjaCgiaW50ZXJydXB0Lnpvb20iLGZ1bmN0aW9uKCl7QyhlKX0pLmVhY2goImVuZC56b29tIixmdW5jdGlvbigpe0MoZSl9KToodGhpcy5fX2NoYXJ0X189ZixFKGUpLEwoZSksQyhlKSl9KX0sdy50cmFuc2xhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9e3g6K3RbMF0seTordFsxXSxrOmYua30sUygpLHcpOltmLngsZi55XX0sdy5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj17eDpmLngseTpmLnksazpudWxsfSxUKCt0KSxTKCksdyk6Zi5rfSx3LnNjYWxlRXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhkPW51bGw9PXQ/anQ6Wyt0WzBdLCt0WzFdXSx3KTpkfSx3LmNlbnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10JiZbK3RbMF0sK3RbMV1dLHcpOm59LHcuc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocD10JiZbK3RbMF0sK3RbMV1dLHcpOnB9LHcuZHVyYXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGc9K3Qsdyk6Z30sdy54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPXQsbD10LmNvcHkoKSxmPXt4OjAseTowLGs6MX0sdyk6Y30sdy55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPXQsdT10LmNvcHkoKSxmPXt4OjAseTowLGs6MX0sdyk6aH0sdC5yZWJpbmQodyxfLCJvbiIpfTt2YXIgQnQsTnQsanQ9WzAsMS8wXTtmdW5jdGlvbiBWdCgpe31mdW5jdGlvbiBVdCh0LGUscil7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBVdD8odGhpcy5oPSt0LHRoaXMucz0rZSx2b2lkKHRoaXMubD0rcikpOmFyZ3VtZW50cy5sZW5ndGg8Mj90IGluc3RhbmNlb2YgVXQ/bmV3IFV0KHQuaCx0LnMsdC5sKTp1ZSgiIit0LGhlLFV0KTpuZXcgVXQodCxlLHIpfXQuY29sb3I9VnQsVnQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmdiKCkrIiJ9LHQuaHNsPVV0O3ZhciBxdD1VdC5wcm90b3R5cGU9bmV3IFZ0O2Z1bmN0aW9uIEh0KHQsZSxyKXt2YXIgbixhO2Z1bmN0aW9uIGkodCl7cmV0dXJuIE1hdGgucm91bmQoMjU1KmZ1bmN0aW9uKHQpe3JldHVybiB0PjM2MD90LT0zNjA6dDwwJiYodCs9MzYwKSx0PDYwP24rKGEtbikqdC82MDp0PDE4MD9hOnQ8MjQwP24rKGEtbikqKDI0MC10KS82MDpufSh0KSl9cmV0dXJuIHQ9aXNOYU4odCk/MDoodCU9MzYwKTwwP3QrMzYwOnQsZT1pc05hTihlKT8wOmU8MD8wOmU+MT8xOmUsbj0yKihyPXI8MD8wOnI+MT8xOnIpLShhPXI8PS41P3IqKDErZSk6citlLXIqZSksbmV3IGllKGkodCsxMjApLGkodCksaSh0LTEyMCkpfWZ1bmN0aW9uIEd0KGUscixuKXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIEd0Pyh0aGlzLmg9K2UsdGhpcy5jPStyLHZvaWQodGhpcy5sPStuKSk6YXJndW1lbnRzLmxlbmd0aDwyP2UgaW5zdGFuY2VvZiBHdD9uZXcgR3QoZS5oLGUuYyxlLmwpOmVlKGUgaW5zdGFuY2VvZiBYdD9lLmw6KGU9ZmUoKGU9dC5yZ2IoZSkpLnIsZS5nLGUuYikpLmwsZS5hLGUuYik6bmV3IEd0KGUscixuKX1xdC5icmlnaHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLnBvdyguNyxhcmd1bWVudHMubGVuZ3RoP3Q6MSksbmV3IFV0KHRoaXMuaCx0aGlzLnMsdGhpcy5sL3QpfSxxdC5kYXJrZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9TWF0aC5wb3coLjcsYXJndW1lbnRzLmxlbmd0aD90OjEpLG5ldyBVdCh0aGlzLmgsdGhpcy5zLHQqdGhpcy5sKX0scXQucmdiPWZ1bmN0aW9uKCl7cmV0dXJuIEh0KHRoaXMuaCx0aGlzLnMsdGhpcy5sKX0sdC5oY2w9R3Q7dmFyIFl0PUd0LnByb3RvdHlwZT1uZXcgVnQ7ZnVuY3Rpb24gV3QodCxlLHIpe3JldHVybiBpc05hTih0KSYmKHQ9MCksaXNOYU4oZSkmJihlPTApLG5ldyBYdChyLE1hdGguY29zKHQqPUx0KSplLE1hdGguc2luKHQpKmUpfWZ1bmN0aW9uIFh0KHQsZSxyKXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIFh0Pyh0aGlzLmw9K3QsdGhpcy5hPStlLHZvaWQodGhpcy5iPStyKSk6YXJndW1lbnRzLmxlbmd0aDwyP3QgaW5zdGFuY2VvZiBYdD9uZXcgWHQodC5sLHQuYSx0LmIpOnQgaW5zdGFuY2VvZiBHdD9XdCh0LmgsdC5jLHQubCk6ZmUoKHQ9aWUodCkpLnIsdC5nLHQuYik6bmV3IFh0KHQsZSxyKX1ZdC5icmlnaHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IEd0KHRoaXMuaCx0aGlzLmMsTWF0aC5taW4oMTAwLHRoaXMubCtadCooYXJndW1lbnRzLmxlbmd0aD90OjEpKSl9LFl0LmRhcmtlcj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IEd0KHRoaXMuaCx0aGlzLmMsTWF0aC5tYXgoMCx0aGlzLmwtWnQqKGFyZ3VtZW50cy5sZW5ndGg/dDoxKSkpfSxZdC5yZ2I9ZnVuY3Rpb24oKXtyZXR1cm4gV3QodGhpcy5oLHRoaXMuYyx0aGlzLmwpLnJnYigpfSx0LmxhYj1YdDt2YXIgWnQ9MTgsSnQ9Ljk1MDQ3LEt0PTEsUXQ9MS4wODg4MywkdD1YdC5wcm90b3R5cGU9bmV3IFZ0O2Z1bmN0aW9uIHRlKHQsZSxyKXt2YXIgbj0odCsxNikvMTE2LGE9bitlLzUwMCxpPW4tci8yMDA7cmV0dXJuIG5ldyBpZShhZSgzLjI0MDQ1NDIqKGE9cmUoYSkqSnQpLTEuNTM3MTM4NSoobj1yZShuKSpLdCktLjQ5ODUzMTQqKGk9cmUoaSkqUXQpKSxhZSgtLjk2OTI2NiphKzEuODc2MDEwOCpuKy4wNDE1NTYqaSksYWUoLjA1NTY0MzQqYS0uMjA0MDI1OSpuKzEuMDU3MjI1MippKSl9ZnVuY3Rpb24gZWUodCxlLHIpe3JldHVybiB0PjA/bmV3IEd0KE1hdGguYXRhbjIocixlKSpDdCxNYXRoLnNxcnQoZSplK3IqciksdCk6bmV3IEd0KE5hTixOYU4sdCl9ZnVuY3Rpb24gcmUodCl7cmV0dXJuIHQ+LjIwNjg5MzAzND90KnQqdDoodC00LzI5KS83Ljc4NzAzN31mdW5jdGlvbiBuZSh0KXtyZXR1cm4gdD4uMDA4ODU2P01hdGgucG93KHQsMS8zKTo3Ljc4NzAzNyp0KzQvMjl9ZnVuY3Rpb24gYWUodCl7cmV0dXJuIE1hdGgucm91bmQoMjU1Kih0PD0uMDAzMDQ/MTIuOTIqdDoxLjA1NSpNYXRoLnBvdyh0LDEvMi40KS0uMDU1KSl9ZnVuY3Rpb24gaWUodCxlLHIpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgaWU/KHRoaXMucj1+fnQsdGhpcy5nPX5+ZSx2b2lkKHRoaXMuYj1+fnIpKTphcmd1bWVudHMubGVuZ3RoPDI/dCBpbnN0YW5jZW9mIGllP25ldyBpZSh0LnIsdC5nLHQuYik6dWUoIiIrdCxpZSxIdCk6bmV3IGllKHQsZSxyKX1mdW5jdGlvbiBvZSh0KXtyZXR1cm4gbmV3IGllKHQ+PjE2LHQ+PjgmMjU1LDI1NSZ0KX1mdW5jdGlvbiBzZSh0KXtyZXR1cm4gb2UodCkrIiJ9JHQuYnJpZ2h0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBYdChNYXRoLm1pbigxMDAsdGhpcy5sK1p0Kihhcmd1bWVudHMubGVuZ3RoP3Q6MSkpLHRoaXMuYSx0aGlzLmIpfSwkdC5kYXJrZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBYdChNYXRoLm1heCgwLHRoaXMubC1adCooYXJndW1lbnRzLmxlbmd0aD90OjEpKSx0aGlzLmEsdGhpcy5iKX0sJHQucmdiPWZ1bmN0aW9uKCl7cmV0dXJuIHRlKHRoaXMubCx0aGlzLmEsdGhpcy5iKX0sdC5yZ2I9aWU7dmFyIGxlPWllLnByb3RvdHlwZT1uZXcgVnQ7ZnVuY3Rpb24gY2UodCl7cmV0dXJuIHQ8MTY/IjAiK01hdGgubWF4KDAsdCkudG9TdHJpbmcoMTYpOk1hdGgubWluKDI1NSx0KS50b1N0cmluZygxNil9ZnVuY3Rpb24gdWUodCxlLHIpe3ZhciBuLGEsaSxvPTAscz0wLGw9MDtpZihuPS8oW2Etel0rKVwoKC4qKVwpLy5leGVjKHQ9dC50b0xvd2VyQ2FzZSgpKSlzd2l0Y2goYT1uWzJdLnNwbGl0KCIsIiksblsxXSl7Y2FzZSJoc2wiOnJldHVybiByKHBhcnNlRmxvYXQoYVswXSkscGFyc2VGbG9hdChhWzFdKS8xMDAscGFyc2VGbG9hdChhWzJdKS8xMDApO2Nhc2UicmdiIjpyZXR1cm4gZShkZShhWzBdKSxkZShhWzFdKSxkZShhWzJdKSl9cmV0dXJuKGk9Z2UuZ2V0KHQpKT9lKGkucixpLmcsaS5iKToobnVsbD09dHx8IiMiIT09dC5jaGFyQXQoMCl8fGlzTmFOKGk9cGFyc2VJbnQodC5zbGljZSgxKSwxNikpfHwoND09PXQubGVuZ3RoPyhvPSgzODQwJmkpPj40LG98PW8+PjQscz0yNDAmaSxzfD1zPj40LGw9MTUmaSxsfD1sPDw0KTo3PT09dC5sZW5ndGgmJihvPSgxNjcxMTY4MCZpKT4+MTYscz0oNjUyODAmaSk+PjgsbD0yNTUmaSkpLGUobyxzLGwpKX1mdW5jdGlvbiBoZSh0LGUscil7dmFyIG4sYSxpPU1hdGgubWluKHQvPTI1NSxlLz0yNTUsci89MjU1KSxvPU1hdGgubWF4KHQsZSxyKSxzPW8taSxsPShvK2kpLzI7cmV0dXJuIHM/KGE9bDwuNT9zLyhvK2kpOnMvKDItby1pKSxuPXQ9PW8/KGUtcikvcysoZTxyPzY6MCk6ZT09bz8oci10KS9zKzI6KHQtZSkvcys0LG4qPTYwKToobj1OYU4sYT1sPjAmJmw8MT8wOm4pLG5ldyBVdChuLGEsbCl9ZnVuY3Rpb24gZmUodCxlLHIpe3ZhciBuPW5lKCguNDEyNDU2NCoodD1wZSh0KSkrLjM1NzU3NjEqKGU9cGUoZSkpKy4xODA0Mzc1KihyPXBlKHIpKSkvSnQpLGE9bmUoKC4yMTI2NzI5KnQrLjcxNTE1MjIqZSsuMDcyMTc1KnIpL0t0KTtyZXR1cm4gWHQoMTE2KmEtMTYsNTAwKihuLWEpLDIwMCooYS1uZSgoLjAxOTMzMzkqdCsuMTE5MTkyKmUrLjk1MDMwNDEqcikvUXQpKSl9ZnVuY3Rpb24gcGUodCl7cmV0dXJuKHQvPTI1NSk8PS4wNDA0NT90LzEyLjkyOk1hdGgucG93KCh0Ky4wNTUpLzEuMDU1LDIuNCl9ZnVuY3Rpb24gZGUodCl7dmFyIGU9cGFyc2VGbG9hdCh0KTtyZXR1cm4iJSI9PT10LmNoYXJBdCh0Lmxlbmd0aC0xKT9NYXRoLnJvdW5kKDIuNTUqZSk6ZX1sZS5icmlnaHRlcj1mdW5jdGlvbih0KXt0PU1hdGgucG93KC43LGFyZ3VtZW50cy5sZW5ndGg/dDoxKTt2YXIgZT10aGlzLnIscj10aGlzLmcsbj10aGlzLmIsYT0zMDtyZXR1cm4gZXx8cnx8bj8oZSYmZTxhJiYoZT1hKSxyJiZyPGEmJihyPWEpLG4mJm48YSYmKG49YSksbmV3IGllKE1hdGgubWluKDI1NSxlL3QpLE1hdGgubWluKDI1NSxyL3QpLE1hdGgubWluKDI1NSxuL3QpKSk6bmV3IGllKGEsYSxhKX0sbGUuZGFya2VyPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgaWUoKHQ9TWF0aC5wb3coLjcsYXJndW1lbnRzLmxlbmd0aD90OjEpKSp0aGlzLnIsdCp0aGlzLmcsdCp0aGlzLmIpfSxsZS5oc2w9ZnVuY3Rpb24oKXtyZXR1cm4gaGUodGhpcy5yLHRoaXMuZyx0aGlzLmIpfSxsZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiIjIitjZSh0aGlzLnIpK2NlKHRoaXMuZykrY2UodGhpcy5iKX07dmFyIGdlPXQubWFwKHthbGljZWJsdWU6MTU3OTIzODMsYW50aXF1ZXdoaXRlOjE2NDQ0Mzc1LGFxdWE6NjU1MzUsYXF1YW1hcmluZTo4Mzg4NTY0LGF6dXJlOjE1Nzk0MTc1LGJlaWdlOjE2MTE5MjYwLGJpc3F1ZToxNjc3MDI0NCxibGFjazowLGJsYW5jaGVkYWxtb25kOjE2NzcyMDQ1LGJsdWU6MjU1LGJsdWV2aW9sZXQ6OTA1NTIwMixicm93bjoxMDgyNDIzNCxidXJseXdvb2Q6MTQ1OTYyMzEsY2FkZXRibHVlOjYyNjY1MjgsY2hhcnRyZXVzZTo4Mzg4MzUyLGNob2NvbGF0ZToxMzc4OTQ3MCxjb3JhbDoxNjc0NDI3Mixjb3JuZmxvd2VyYmx1ZTo2NTkxOTgxLGNvcm5zaWxrOjE2Nzc1Mzg4LGNyaW1zb246MTQ0MjMxMDAsY3lhbjo2NTUzNSxkYXJrYmx1ZToxMzksZGFya2N5YW46MzU3MjMsZGFya2dvbGRlbnJvZDoxMjA5MjkzOSxkYXJrZ3JheToxMTExOTAxNyxkYXJrZ3JlZW46MjU2MDAsZGFya2dyZXk6MTExMTkwMTcsZGFya2toYWtpOjEyNDMzMjU5LGRhcmttYWdlbnRhOjkxMDk2NDMsZGFya29saXZlZ3JlZW46NTU5Nzk5OSxkYXJrb3JhbmdlOjE2NzQ3NTIwLGRhcmtvcmNoaWQ6MTAwNDAwMTIsZGFya3JlZDo5MTA5NTA0LGRhcmtzYWxtb246MTUzMDg0MTAsZGFya3NlYWdyZWVuOjk0MTk5MTksZGFya3NsYXRlYmx1ZTo0NzM0MzQ3LGRhcmtzbGF0ZWdyYXk6MzEwMDQ5NSxkYXJrc2xhdGVncmV5OjMxMDA0OTUsZGFya3R1cnF1b2lzZTo1Mjk0NSxkYXJrdmlvbGV0Ojk2OTk1MzksZGVlcHBpbms6MTY3MTY5NDcsZGVlcHNreWJsdWU6NDkxNTEsZGltZ3JheTo2OTA4MjY1LGRpbWdyZXk6NjkwODI2NSxkb2RnZXJibHVlOjIwMDMxOTksZmlyZWJyaWNrOjExNjc0MTQ2LGZsb3JhbHdoaXRlOjE2Nzc1OTIwLGZvcmVzdGdyZWVuOjIyNjM4NDIsZnVjaHNpYToxNjcxMTkzNSxnYWluc2Jvcm86MTQ0NzQ0NjAsZ2hvc3R3aGl0ZToxNjMxNjY3MSxnb2xkOjE2NzY2NzIwLGdvbGRlbnJvZDoxNDMyOTEyMCxncmF5Ojg0MjE1MDQsZ3JlZW46MzI3NjgsZ3JlZW55ZWxsb3c6MTE0MDMwNTUsZ3JleTo4NDIxNTA0LGhvbmV5ZGV3OjE1Nzk0MTYwLGhvdHBpbms6MTY3Mzg3NDAsaW5kaWFucmVkOjEzNDU4NTI0LGluZGlnbzo0OTE1MzMwLGl2b3J5OjE2Nzc3MjAwLGtoYWtpOjE1Nzg3NjYwLGxhdmVuZGVyOjE1MTMyNDEwLGxhdmVuZGVyYmx1c2g6MTY3NzMzNjUsbGF3bmdyZWVuOjgxOTA5NzYsbGVtb25jaGlmZm9uOjE2Nzc1ODg1LGxpZ2h0Ymx1ZToxMTM5MzI1NCxsaWdodGNvcmFsOjE1NzYxNTM2LGxpZ2h0Y3lhbjoxNDc0NTU5OSxsaWdodGdvbGRlbnJvZHllbGxvdzoxNjQ0ODIxMCxsaWdodGdyYXk6MTM4ODIzMjMsbGlnaHRncmVlbjo5NDk4MjU2LGxpZ2h0Z3JleToxMzg4MjMyMyxsaWdodHBpbms6MTY3NTg0NjUsbGlnaHRzYWxtb246MTY3NTI3NjIsbGlnaHRzZWFncmVlbjoyMTQyODkwLGxpZ2h0c2t5Ymx1ZTo4OTAwMzQ2LGxpZ2h0c2xhdGVncmF5Ojc4MzM3NTMsbGlnaHRzbGF0ZWdyZXk6NzgzMzc1MyxsaWdodHN0ZWVsYmx1ZToxMTU4NDczNCxsaWdodHllbGxvdzoxNjc3NzE4NCxsaW1lOjY1MjgwLGxpbWVncmVlbjozMzI5MzMwLGxpbmVuOjE2NDQ1NjcwLG1hZ2VudGE6MTY3MTE5MzUsbWFyb29uOjgzODg2MDgsbWVkaXVtYXF1YW1hcmluZTo2NzM3MzIyLG1lZGl1bWJsdWU6MjA1LG1lZGl1bW9yY2hpZDoxMjIxMTY2NyxtZWRpdW1wdXJwbGU6OTY2MjY4MyxtZWRpdW1zZWFncmVlbjozOTc4MDk3LG1lZGl1bXNsYXRlYmx1ZTo4MDg3NzkwLG1lZGl1bXNwcmluZ2dyZWVuOjY0MTU0LG1lZGl1bXR1cnF1b2lzZTo0NzcyMzAwLG1lZGl1bXZpb2xldHJlZDoxMzA0NzE3MyxtaWRuaWdodGJsdWU6MTY0NDkxMixtaW50Y3JlYW06MTYxMjE4NTAsbWlzdHlyb3NlOjE2NzcwMjczLG1vY2Nhc2luOjE2NzcwMjI5LG5hdmFqb3doaXRlOjE2NzY4Njg1LG5hdnk6MTI4LG9sZGxhY2U6MTY2NDM1NTgsb2xpdmU6ODQyMTM3NixvbGl2ZWRyYWI6NzA0ODczOSxvcmFuZ2U6MTY3NTM5MjAsb3JhbmdlcmVkOjE2NzI5MzQ0LG9yY2hpZDoxNDMxNTczNCxwYWxlZ29sZGVucm9kOjE1NjU3MTMwLHBhbGVncmVlbjoxMDAyNTg4MCxwYWxldHVycXVvaXNlOjExNTI5OTY2LHBhbGV2aW9sZXRyZWQ6MTQzODEyMDMscGFwYXlhd2hpcDoxNjc3MzA3NyxwZWFjaHB1ZmY6MTY3Njc2NzMscGVydToxMzQ2ODk5MSxwaW5rOjE2NzYxMDM1LHBsdW06MTQ1MjQ2MzcscG93ZGVyYmx1ZToxMTU5MTkxMCxwdXJwbGU6ODM4ODczNixyZWJlY2NhcHVycGxlOjY2OTc4ODEscmVkOjE2NzExNjgwLHJvc3licm93bjoxMjM1NzUxOSxyb3lhbGJsdWU6NDI4Njk0NSxzYWRkbGVicm93bjo5MTI3MTg3LHNhbG1vbjoxNjQxNjg4MixzYW5keWJyb3duOjE2MDMyODY0LHNlYWdyZWVuOjMwNTAzMjcsc2Vhc2hlbGw6MTY3NzQ2Mzgsc2llbm5hOjEwNTA2Nzk3LHNpbHZlcjoxMjYzMjI1Nixza3libHVlOjg5MDAzMzEsc2xhdGVibHVlOjY5NzAwNjEsc2xhdGVncmF5OjczNzI5NDQsc2xhdGVncmV5OjczNzI5NDQsc25vdzoxNjc3NTkzMCxzcHJpbmdncmVlbjo2NTQwNyxzdGVlbGJsdWU6NDYyMDk4MCx0YW46MTM4MDg3ODAsdGVhbDozMjg5Nix0aGlzdGxlOjE0MjA0ODg4LHRvbWF0bzoxNjczNzA5NSx0dXJxdW9pc2U6NDI1MTg1Nix2aW9sZXQ6MTU2MzEwODYsd2hlYXQ6MTYxMTMzMzEsd2hpdGU6MTY3NzcyMTUsd2hpdGVzbW9rZToxNjExOTI4NSx5ZWxsb3c6MTY3NzY5NjAseWVsbG93Z3JlZW46MTAxNDUwNzR9KTtmdW5jdGlvbiB2ZSh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD90OmZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIG1lKHQpe3JldHVybiBmdW5jdGlvbihlLHIsbil7cmV0dXJuIDI9PT1hcmd1bWVudHMubGVuZ3RoJiYiZnVuY3Rpb24iPT10eXBlb2YgciYmKG49cixyPW51bGwpLHllKGUscix0LG4pfX1mdW5jdGlvbiB5ZShlLHIsYSxpKXt2YXIgbz17fSxzPXQuZGlzcGF0Y2goImJlZm9yZXNlbmQiLCJwcm9ncmVzcyIsImxvYWQiLCJlcnJvciIpLGw9e30sYz1uZXcgWE1MSHR0cFJlcXVlc3QsdT1udWxsO2Z1bmN0aW9uIGgoKXt2YXIgdCxlPWMuc3RhdHVzO2lmKCFlJiZmdW5jdGlvbih0KXt2YXIgZT10LnJlc3BvbnNlVHlwZTtyZXR1cm4gZSYmInRleHQiIT09ZT90LnJlc3BvbnNlOnQucmVzcG9uc2VUZXh0fShjKXx8ZT49MjAwJiZlPDMwMHx8MzA0PT09ZSl7dHJ5e3Q9YS5jYWxsKG8sYyl9Y2F0Y2godCl7cmV0dXJuIHZvaWQgcy5lcnJvci5jYWxsKG8sdCl9cy5sb2FkLmNhbGwobyx0KX1lbHNlIHMuZXJyb3IuY2FsbChvLGMpfXJldHVybiF0aGlzLlhEb21haW5SZXF1ZXN0fHwid2l0aENyZWRlbnRpYWxzImluIGN8fCEvXihodHRwKHMpPzopP1wvXC8vLnRlc3QoZSl8fChjPW5ldyBYRG9tYWluUmVxdWVzdCksIm9ubG9hZCJpbiBjP2Mub25sb2FkPWMub25lcnJvcj1oOmMub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7Yy5yZWFkeVN0YXRlPjMmJmgoKX0sYy5vbnByb2dyZXNzPWZ1bmN0aW9uKGUpe3ZhciByPXQuZXZlbnQ7dC5ldmVudD1lO3RyeXtzLnByb2dyZXNzLmNhbGwobyxjKX1maW5hbGx5e3QuZXZlbnQ9cn19LG8uaGVhZGVyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9KHQrIiIpLnRvTG93ZXJDYXNlKCksYXJndW1lbnRzLmxlbmd0aDwyP2xbdF06KG51bGw9PWU/ZGVsZXRlIGxbdF06bFt0XT1lKyIiLG8pfSxvLm1pbWVUeXBlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPW51bGw9PXQ/bnVsbDp0KyIiLG8pOnJ9LG8ucmVzcG9uc2VUeXBlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PXQsbyk6dX0sby5yZXNwb25zZT1mdW5jdGlvbih0KXtyZXR1cm4gYT10LG99LFsiZ2V0IiwicG9zdCJdLmZvckVhY2goZnVuY3Rpb24odCl7b1t0XT1mdW5jdGlvbigpe3JldHVybiBvLnNlbmQuYXBwbHkobyxbdF0uY29uY2F0KG4oYXJndW1lbnRzKSkpfX0pLG8uc2VuZD1mdW5jdGlvbih0LG4sYSl7aWYoMj09PWFyZ3VtZW50cy5sZW5ndGgmJiJmdW5jdGlvbiI9PXR5cGVvZiBuJiYoYT1uLG49bnVsbCksYy5vcGVuKHQsZSwhMCksbnVsbD09cnx8ImFjY2VwdCJpbiBsfHwobC5hY2NlcHQ9cisiLCovKiIpLGMuc2V0UmVxdWVzdEhlYWRlcilmb3IodmFyIGkgaW4gbCljLnNldFJlcXVlc3RIZWFkZXIoaSxsW2ldKTtyZXR1cm4gbnVsbCE9ciYmYy5vdmVycmlkZU1pbWVUeXBlJiZjLm92ZXJyaWRlTWltZVR5cGUociksbnVsbCE9dSYmKGMucmVzcG9uc2VUeXBlPXUpLG51bGwhPWEmJm8ub24oImVycm9yIixhKS5vbigibG9hZCIsZnVuY3Rpb24odCl7YShudWxsLHQpfSkscy5iZWZvcmVzZW5kLmNhbGwobyxjKSxjLnNlbmQobnVsbD09bj9udWxsOm4pLG99LG8uYWJvcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gYy5hYm9ydCgpLG99LHQucmViaW5kKG8scywib24iKSxudWxsPT1pP286by5nZXQoZnVuY3Rpb24odCl7cmV0dXJuIDE9PT10Lmxlbmd0aD9mdW5jdGlvbihlLHIpe3QobnVsbD09ZT9yOm51bGwpfTp0fShpKSl9Z2UuZm9yRWFjaChmdW5jdGlvbih0LGUpe2dlLnNldCh0LG9lKGUpKX0pLHQuZnVuY3Rvcj12ZSx0Lnhocj1tZShQKSx0LmRzdj1mdW5jdGlvbih0LGUpe3ZhciByPW5ldyBSZWdFeHAoJ1siJyt0KyJcbl0iKSxuPXQuY2hhckNvZGVBdCgwKTtmdW5jdGlvbiBhKHQscixuKXthcmd1bWVudHMubGVuZ3RoPDMmJihuPXIscj1udWxsKTt2YXIgYT15ZSh0LGUsbnVsbD09cj9pOm8ociksbik7cmV0dXJuIGEucm93PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2EucmVzcG9uc2UobnVsbD09KHI9dCk/aTpvKHQpKTpyfSxhfWZ1bmN0aW9uIGkodCl7cmV0dXJuIGEucGFyc2UodC5yZXNwb25zZVRleHQpfWZ1bmN0aW9uIG8odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBhLnBhcnNlKGUucmVzcG9uc2VUZXh0LHQpfX1mdW5jdGlvbiBzKGUpe3JldHVybiBlLm1hcChsKS5qb2luKHQpfWZ1bmN0aW9uIGwodCl7cmV0dXJuIHIudGVzdCh0KT8nIicrdC5yZXBsYWNlKC9cIi9nLCciIicpKyciJzp0fXJldHVybiBhLnBhcnNlPWZ1bmN0aW9uKHQsZSl7dmFyIHI7cmV0dXJuIGEucGFyc2VSb3dzKHQsZnVuY3Rpb24odCxuKXtpZihyKXJldHVybiByKHQsbi0xKTt2YXIgYT1uZXcgRnVuY3Rpb24oImQiLCJyZXR1cm4geyIrdC5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCkrIjogZFsiK2UrIl0ifSkuam9pbigiLCIpKyJ9Iik7cj1lP2Z1bmN0aW9uKHQscil7cmV0dXJuIGUoYSh0KSxyKX06YX0pfSxhLnBhcnNlUm93cz1mdW5jdGlvbih0LGUpe3ZhciByLGEsaT17fSxvPXt9LHM9W10sbD10Lmxlbmd0aCxjPTAsdT0wO2Z1bmN0aW9uIGgoKXtpZihjPj1sKXJldHVybiBvO2lmKGEpcmV0dXJuIGE9ITEsaTt2YXIgZT1jO2lmKDM0PT09dC5jaGFyQ29kZUF0KGUpKXtmb3IodmFyIHI9ZTtyKys8bDspaWYoMzQ9PT10LmNoYXJDb2RlQXQocikpe2lmKDM0IT09dC5jaGFyQ29kZUF0KHIrMSkpYnJlYWs7KytyfXJldHVybiBjPXIrMiwxMz09PShzPXQuY2hhckNvZGVBdChyKzEpKT8oYT0hMCwxMD09PXQuY2hhckNvZGVBdChyKzIpJiYrK2MpOjEwPT09cyYmKGE9ITApLHQuc2xpY2UoZSsxLHIpLnJlcGxhY2UoLyIiL2csJyInKX1mb3IoO2M8bDspe3ZhciBzLHU9MTtpZigxMD09PShzPXQuY2hhckNvZGVBdChjKyspKSlhPSEwO2Vsc2UgaWYoMTM9PT1zKWE9ITAsMTA9PT10LmNoYXJDb2RlQXQoYykmJigrK2MsKyt1KTtlbHNlIGlmKHMhPT1uKWNvbnRpbnVlO3JldHVybiB0LnNsaWNlKGUsYy11KX1yZXR1cm4gdC5zbGljZShlKX1mb3IoOyhyPWgoKSkhPT1vOyl7Zm9yKHZhciBmPVtdO3IhPT1pJiZyIT09bzspZi5wdXNoKHIpLHI9aCgpO2UmJm51bGw9PShmPWUoZix1KyspKXx8cy5wdXNoKGYpfXJldHVybiBzfSxhLmZvcm1hdD1mdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGVbMF0pKXJldHVybiBhLmZvcm1hdFJvd3MoZSk7dmFyIHI9bmV3IEMsbj1bXTtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiB0KXIuaGFzKGUpfHxuLnB1c2goci5hZGQoZSkpfSksW24ubWFwKGwpLmpvaW4odCldLmNvbmNhdChlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbi5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGwoZVt0XSl9KS5qb2luKHQpfSkpLmpvaW4oIlxuIil9LGEuZm9ybWF0Um93cz1mdW5jdGlvbih0KXtyZXR1cm4gdC5tYXAocykuam9pbigiXG4iKX0sYX0sdC5jc3Y9dC5kc3YoIiwiLCJ0ZXh0L2NzdiIpLHQudHN2PXQuZHN2KCJcdCIsInRleHQvdGFiLXNlcGFyYXRlZC12YWx1ZXMiKTt2YXIgeGUsYmUsX2Usd2Usa2U9dGhpc1t6KHRoaXMsInJlcXVlc3RBbmltYXRpb25GcmFtZSIpXXx8ZnVuY3Rpb24odCl7c2V0VGltZW91dCh0LDE3KX07ZnVuY3Rpb24gVGUodCxlLHIpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg7bjwyJiYoZT0wKSxuPDMmJihyPURhdGUubm93KCkpO3ZhciBhPXtjOnQsdDpyK2UsbjpudWxsfTtyZXR1cm4gYmU/YmUubj1hOnhlPWEsYmU9YSxfZXx8KHdlPWNsZWFyVGltZW91dCh3ZSksX2U9MSxrZShNZSkpLGF9ZnVuY3Rpb24gTWUoKXt2YXIgdD1BZSgpLGU9U2UoKS10O2U+MjQ/KGlzRmluaXRlKGUpJiYoY2xlYXJUaW1lb3V0KHdlKSx3ZT1zZXRUaW1lb3V0KE1lLGUpKSxfZT0wKTooX2U9MSxrZShNZSkpfWZ1bmN0aW9uIEFlKCl7Zm9yKHZhciB0PURhdGUubm93KCksZT14ZTtlOyl0Pj1lLnQmJmUuYyh0LWUudCkmJihlLmM9bnVsbCksZT1lLm47cmV0dXJuIHR9ZnVuY3Rpb24gU2UoKXtmb3IodmFyIHQsZT14ZSxyPTEvMDtlOyllLmM/KGUudDxyJiYocj1lLnQpLGU9KHQ9ZSkubik6ZT10P3Qubj1lLm46eGU9ZS5uO3JldHVybiBiZT10LHJ9ZnVuY3Rpb24gRWUodCxlKXtyZXR1cm4gZS0odD9NYXRoLmNlaWwoTWF0aC5sb2codCkvTWF0aC5MTjEwKToxKX10LnRpbWVyPWZ1bmN0aW9uKCl7VGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSx0LnRpbWVyLmZsdXNoPWZ1bmN0aW9uKCl7QWUoKSxTZSgpfSx0LnJvdW5kPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU/TWF0aC5yb3VuZCh0KihlPU1hdGgucG93KDEwLGUpKSkvZTpNYXRoLnJvdW5kKHQpfTt2YXIgTGU9WyJ5IiwieiIsImEiLCJmIiwicCIsIm4iLCJceGI1IiwibSIsIiIsImsiLCJNIiwiRyIsIlQiLCJQIiwiRSIsIloiLCJZIl0ubWFwKGZ1bmN0aW9uKHQsZSl7dmFyIHI9TWF0aC5wb3coMTAsMyp5KDgtZSkpO3JldHVybntzY2FsZTplPjg/ZnVuY3Rpb24odCl7cmV0dXJuIHQvcn06ZnVuY3Rpb24odCl7cmV0dXJuIHQqcn0sc3ltYm9sOnR9fSk7ZnVuY3Rpb24gQ2UoZSl7dmFyIHI9ZS5kZWNpbWFsLG49ZS50aG91c2FuZHMsYT1lLmdyb3VwaW5nLGk9ZS5jdXJyZW5jeSxvPWEmJm4/ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5sZW5ndGgsaT1bXSxvPTAscz1hWzBdLGw9MDtyPjAmJnM+MCYmKGwrcysxPmUmJihzPU1hdGgubWF4KDEsZS1sKSksaS5wdXNoKHQuc3Vic3RyaW5nKHItPXMscitzKSksISgobCs9cysxKT5lKSk7KXM9YVtvPShvKzEpJWEubGVuZ3RoXTtyZXR1cm4gaS5yZXZlcnNlKCkuam9pbihuKX06UDtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49UGUuZXhlYyhlKSxhPW5bMV18fCIgIixzPW5bMl18fCI+IixsPW5bM118fCItIixjPW5bNF18fCIiLHU9bls1XSxoPStuWzZdLGY9bls3XSxwPW5bOF0sZD1uWzldLGc9MSx2PSIiLG09IiIseT0hMSx4PSEwO3N3aXRjaChwJiYocD0rcC5zdWJzdHJpbmcoMSkpLCh1fHwiMCI9PT1hJiYiPSI9PT1zKSYmKHU9YT0iMCIscz0iPSIpLGQpe2Nhc2UibiI6Zj0hMCxkPSJnIjticmVhaztjYXNlIiUiOmc9MTAwLG09IiUiLGQ9ImYiO2JyZWFrO2Nhc2UicCI6Zz0xMDAsbT0iJSIsZD0iciI7YnJlYWs7Y2FzZSJiIjpjYXNlIm8iOmNhc2UieCI6Y2FzZSJYIjoiIyI9PT1jJiYodj0iMCIrZC50b0xvd2VyQ2FzZSgpKTtjYXNlImMiOng9ITE7Y2FzZSJkIjp5PSEwLHA9MDticmVhaztjYXNlInMiOmc9LTEsZD0iciJ9IiQiPT09YyYmKHY9aVswXSxtPWlbMV0pLCJyIiE9ZHx8cHx8KGQ9ImciKSxudWxsIT1wJiYoImciPT1kP3A9TWF0aC5tYXgoMSxNYXRoLm1pbigyMSxwKSk6ImUiIT1kJiYiZiIhPWR8fChwPU1hdGgubWF4KDAsTWF0aC5taW4oMjAscCkpKSksZD1PZS5nZXQoZCl8fHplO3ZhciBiPXUmJmY7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBuPW07aWYoeSYmZSUxKXJldHVybiIiO3ZhciBpPWU8MHx8MD09PWUmJjEvZTwwPyhlPS1lLCItIik6Ii0iPT09bD8iIjpsO2lmKGc8MCl7dmFyIGM9dC5mb3JtYXRQcmVmaXgoZSxwKTtlPWMuc2NhbGUoZSksbj1jLnN5bWJvbCttfWVsc2UgZSo9Zzt2YXIgXyx3LGs9KGU9ZChlLHApKS5sYXN0SW5kZXhPZigiLiIpO2lmKGs8MCl7dmFyIFQ9eD9lLmxhc3RJbmRleE9mKCJlIik6LTE7VDwwPyhfPWUsdz0iIik6KF89ZS5zdWJzdHJpbmcoMCxUKSx3PWUuc3Vic3RyaW5nKFQpKX1lbHNlIF89ZS5zdWJzdHJpbmcoMCxrKSx3PXIrZS5zdWJzdHJpbmcoaysxKTshdSYmZiYmKF89byhfLDEvMCkpO3ZhciBNPXYubGVuZ3RoK18ubGVuZ3RoK3cubGVuZ3RoKyhiPzA6aS5sZW5ndGgpLEE9TTxoP25ldyBBcnJheShNPWgtTSsxKS5qb2luKGEpOiIiO3JldHVybiBiJiYoXz1vKEErXyxBLmxlbmd0aD9oLXcubGVuZ3RoOjEvMCkpLGkrPXYsZT1fK3csKCI8Ij09PXM/aStlK0E6Ij4iPT09cz9BK2krZToiXiI9PT1zP0Euc3Vic3RyaW5nKDAsTT4+PTEpK2krZStBLnN1YnN0cmluZyhNKTppKyhiP2U6QStlKSkrbn19fXQuZm9ybWF0UHJlZml4PWZ1bmN0aW9uKGUscil7dmFyIG49MDtyZXR1cm4oZT0rZSkmJihlPDAmJihlKj0tMSksciYmKGU9dC5yb3VuZChlLEVlKGUscikpKSxuPTErTWF0aC5mbG9vcigxZS0xMitNYXRoLmxvZyhlKS9NYXRoLkxOMTApLG49TWF0aC5tYXgoLTI0LE1hdGgubWluKDI0LDMqTWF0aC5mbG9vcigobi0xKS8zKSkpKSxMZVs4K24vM119O3ZhciBQZT0vKD86KFtee10pPyhbPD49Xl0pKT8oWytcLSBdKT8oWyQjXSk/KDApPyhcZCspPygsKT8oXC4tP1xkKyk/KFthLXolXSk/L2ksT2U9dC5tYXAoe2I6ZnVuY3Rpb24odCl7cmV0dXJuIHQudG9TdHJpbmcoMil9LGM6ZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUodCl9LG86ZnVuY3Rpb24odCl7cmV0dXJuIHQudG9TdHJpbmcoOCl9LHg6ZnVuY3Rpb24odCl7cmV0dXJuIHQudG9TdHJpbmcoMTYpfSxYOmZ1bmN0aW9uKHQpe3JldHVybiB0LnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfSxnOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQudG9QcmVjaXNpb24oZSl9LGU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC50b0V4cG9uZW50aWFsKGUpfSxmOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQudG9GaXhlZChlKX0scjpmdW5jdGlvbihlLHIpe3JldHVybihlPXQucm91bmQoZSxFZShlLHIpKSkudG9GaXhlZChNYXRoLm1heCgwLE1hdGgubWluKDIwLEVlKGUqKDErMWUtMTUpLHIpKSkpfX0pO2Z1bmN0aW9uIHplKHQpe3JldHVybiB0KyIifXZhciBJZT10LnRpbWU9e30sRGU9RGF0ZTtmdW5jdGlvbiBSZSgpe3RoaXMuXz1uZXcgRGF0ZShhcmd1bWVudHMubGVuZ3RoPjE/RGF0ZS5VVEMuYXBwbHkodGhpcyxhcmd1bWVudHMpOmFyZ3VtZW50c1swXSl9UmUucHJvdG90eXBlPXtnZXREYXRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXy5nZXRVVENEYXRlKCl9LGdldERheTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl8uZ2V0VVRDRGF5KCl9LGdldEZ1bGxZZWFyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXy5nZXRVVENGdWxsWWVhcigpfSxnZXRIb3VyczpmdW5jdGlvbigpe3JldHVybiB0aGlzLl8uZ2V0VVRDSG91cnMoKX0sZ2V0TWlsbGlzZWNvbmRzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXy5nZXRVVENNaWxsaXNlY29uZHMoKX0sZ2V0TWludXRlczpmdW5jdGlvbigpe3JldHVybiB0aGlzLl8uZ2V0VVRDTWludXRlcygpfSxnZXRNb250aDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl8uZ2V0VVRDTW9udGgoKX0sZ2V0U2Vjb25kczpmdW5jdGlvbigpe3JldHVybiB0aGlzLl8uZ2V0VVRDU2Vjb25kcygpfSxnZXRUaW1lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXy5nZXRUaW1lKCl9LGdldFRpbWV6b25lT2Zmc2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDB9LHZhbHVlT2Y6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fLnZhbHVlT2YoKX0sc2V0RGF0ZTpmdW5jdGlvbigpe0ZlLnNldFVUQ0RhdGUuYXBwbHkodGhpcy5fLGFyZ3VtZW50cyl9LHNldERheTpmdW5jdGlvbigpe0ZlLnNldFVUQ0RheS5hcHBseSh0aGlzLl8sYXJndW1lbnRzKX0sc2V0RnVsbFllYXI6ZnVuY3Rpb24oKXtGZS5zZXRVVENGdWxsWWVhci5hcHBseSh0aGlzLl8sYXJndW1lbnRzKX0sc2V0SG91cnM6ZnVuY3Rpb24oKXtGZS5zZXRVVENIb3Vycy5hcHBseSh0aGlzLl8sYXJndW1lbnRzKX0sc2V0TWlsbGlzZWNvbmRzOmZ1bmN0aW9uKCl7RmUuc2V0VVRDTWlsbGlzZWNvbmRzLmFwcGx5KHRoaXMuXyxhcmd1bWVudHMpfSxzZXRNaW51dGVzOmZ1bmN0aW9uKCl7RmUuc2V0VVRDTWludXRlcy5hcHBseSh0aGlzLl8sYXJndW1lbnRzKX0sc2V0TW9udGg6ZnVuY3Rpb24oKXtGZS5zZXRVVENNb250aC5hcHBseSh0aGlzLl8sYXJndW1lbnRzKX0sc2V0U2Vjb25kczpmdW5jdGlvbigpe0ZlLnNldFVUQ1NlY29uZHMuYXBwbHkodGhpcy5fLGFyZ3VtZW50cyl9LHNldFRpbWU6ZnVuY3Rpb24oKXtGZS5zZXRUaW1lLmFwcGx5KHRoaXMuXyxhcmd1bWVudHMpfX07dmFyIEZlPURhdGUucHJvdG90eXBlO2Z1bmN0aW9uIEJlKHQsZSxyKXtmdW5jdGlvbiBuKGUpe3ZhciByPXQoZSksbj1pKHIsMSk7cmV0dXJuIGUtcjxuLWU/cjpufWZ1bmN0aW9uIGEocil7cmV0dXJuIGUocj10KG5ldyBEZShyLTEpKSwxKSxyfWZ1bmN0aW9uIGkodCxyKXtyZXR1cm4gZSh0PW5ldyBEZSgrdCksciksdH1mdW5jdGlvbiBvKHQsbixpKXt2YXIgbz1hKHQpLHM9W107aWYoaT4xKWZvcig7bzxuOylyKG8pJWl8fHMucHVzaChuZXcgRGF0ZSgrbykpLGUobywxKTtlbHNlIGZvcig7bzxuOylzLnB1c2gobmV3IERhdGUoK28pKSxlKG8sMSk7cmV0dXJuIHN9dC5mbG9vcj10LHQucm91bmQ9bix0LmNlaWw9YSx0Lm9mZnNldD1pLHQucmFuZ2U9bzt2YXIgcz10LnV0Yz1OZSh0KTtyZXR1cm4gcy5mbG9vcj1zLHMucm91bmQ9TmUobikscy5jZWlsPU5lKGEpLHMub2Zmc2V0PU5lKGkpLHMucmFuZ2U9ZnVuY3Rpb24odCxlLHIpe3RyeXtEZT1SZTt2YXIgbj1uZXcgUmU7cmV0dXJuIG4uXz10LG8obixlLHIpfWZpbmFsbHl7RGU9RGF0ZX19LHR9ZnVuY3Rpb24gTmUodCl7cmV0dXJuIGZ1bmN0aW9uKGUscil7dHJ5e0RlPVJlO3ZhciBuPW5ldyBSZTtyZXR1cm4gbi5fPWUsdChuLHIpLl99ZmluYWxseXtEZT1EYXRlfX19ZnVuY3Rpb24gamUoZSl7dmFyIHI9ZS5kYXRlVGltZSxuPWUuZGF0ZSxhPWUudGltZSxpPWUucGVyaW9kcyxvPWUuZGF5cyxzPWUuc2hvcnREYXlzLGw9ZS5tb250aHMsYz1lLnNob3J0TW9udGhzO2Z1bmN0aW9uIHUodCl7dmFyIGU9dC5sZW5ndGg7ZnVuY3Rpb24gcihyKXtmb3IodmFyIG4sYSxpLG89W10scz0tMSxsPTA7KytzPGU7KTM3PT09dC5jaGFyQ29kZUF0KHMpJiYoby5wdXNoKHQuc2xpY2UobCxzKSksbnVsbCE9KGE9VmVbbj10LmNoYXJBdCgrK3MpXSkmJihuPXQuY2hhckF0KCsrcykpLChpPV9bbl0pJiYobj1pKHIsbnVsbD09YT8iZSI9PT1uPyIgIjoiMCI6YSkpLG8ucHVzaChuKSxsPXMrMSk7cmV0dXJuIG8ucHVzaCh0LnNsaWNlKGwscykpLG8uam9pbigiIil9cmV0dXJuIHIucGFyc2U9ZnVuY3Rpb24oZSl7dmFyIHI9e3k6MTkwMCxtOjAsZDoxLEg6MCxNOjAsUzowLEw6MCxaOm51bGx9O2lmKGgocix0LGUsMCkhPWUubGVuZ3RoKXJldHVybiBudWxsOyJwImluIHImJihyLkg9ci5IJTEyKzEyKnIucCk7dmFyIG49bnVsbCE9ci5aJiZEZSE9PVJlLGE9bmV3KG4/UmU6RGUpO3JldHVybiJqImluIHI/YS5zZXRGdWxsWWVhcihyLnksMCxyLmopOiJXImluIHJ8fCJVImluIHI/KCJ3ImluIHJ8fChyLnc9IlciaW4gcj8xOjApLGEuc2V0RnVsbFllYXIoci55LDAsMSksYS5zZXRGdWxsWWVhcihyLnksMCwiVyJpbiByPyhyLncrNiklNys3KnIuVy0oYS5nZXREYXkoKSs1KSU3OnIudys3KnIuVS0oYS5nZXREYXkoKSs2KSU3KSk6YS5zZXRGdWxsWWVhcihyLnksci5tLHIuZCksYS5zZXRIb3VycyhyLkgrKHIuWi8xMDB8MCksci5NK3IuWiUxMDAsci5TLHIuTCksbj9hLl86YX0sci50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxyfWZ1bmN0aW9uIGgodCxlLHIsbil7Zm9yKHZhciBhLGksbyxzPTAsbD1lLmxlbmd0aCxjPXIubGVuZ3RoO3M8bDspe2lmKG4+PWMpcmV0dXJuLTE7aWYoMzc9PT0oYT1lLmNoYXJDb2RlQXQocysrKSkpe2lmKG89ZS5jaGFyQXQocysrKSwhKGk9d1tvIGluIFZlP2UuY2hhckF0KHMrKyk6b10pfHwobj1pKHQscixuKSk8MClyZXR1cm4tMX1lbHNlIGlmKGEhPXIuY2hhckNvZGVBdChuKyspKXJldHVybi0xfXJldHVybiBufXUudXRjPWZ1bmN0aW9uKHQpe3ZhciBlPXUodCk7ZnVuY3Rpb24gcih0KXt0cnl7dmFyIHI9bmV3KERlPVJlKTtyZXR1cm4gci5fPXQsZShyKX1maW5hbGx5e0RlPURhdGV9fXJldHVybiByLnBhcnNlPWZ1bmN0aW9uKHQpe3RyeXtEZT1SZTt2YXIgcj1lLnBhcnNlKHQpO3JldHVybiByJiZyLl99ZmluYWxseXtEZT1EYXRlfX0sci50b1N0cmluZz1lLnRvU3RyaW5nLHJ9LHUubXVsdGk9dS51dGMubXVsdGk9bHI7dmFyIGY9dC5tYXAoKSxwPUdlKG8pLGQ9WWUobyksZz1HZShzKSx2PVllKHMpLG09R2UobCkseT1ZZShsKSx4PUdlKGMpLGI9WWUoYyk7aS5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7Zi5zZXQodC50b0xvd2VyQ2FzZSgpLGUpfSk7dmFyIF89e2E6ZnVuY3Rpb24odCl7cmV0dXJuIHNbdC5nZXREYXkoKV19LEE6ZnVuY3Rpb24odCl7cmV0dXJuIG9bdC5nZXREYXkoKV19LGI6ZnVuY3Rpb24odCl7cmV0dXJuIGNbdC5nZXRNb250aCgpXX0sQjpmdW5jdGlvbih0KXtyZXR1cm4gbFt0LmdldE1vbnRoKCldfSxjOnUociksZDpmdW5jdGlvbih0LGUpe3JldHVybiBIZSh0LmdldERhdGUoKSxlLDIpfSxlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIEhlKHQuZ2V0RGF0ZSgpLGUsMil9LEg6ZnVuY3Rpb24odCxlKXtyZXR1cm4gSGUodC5nZXRIb3VycygpLGUsMil9LEk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gSGUodC5nZXRIb3VycygpJTEyfHwxMixlLDIpfSxqOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIEhlKDErSWUuZGF5T2ZZZWFyKHQpLGUsMyl9LEw6ZnVuY3Rpb24odCxlKXtyZXR1cm4gSGUodC5nZXRNaWxsaXNlY29uZHMoKSxlLDMpfSxtOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIEhlKHQuZ2V0TW9udGgoKSsxLGUsMil9LE06ZnVuY3Rpb24odCxlKXtyZXR1cm4gSGUodC5nZXRNaW51dGVzKCksZSwyKX0scDpmdW5jdGlvbih0KXtyZXR1cm4gaVsrKHQuZ2V0SG91cnMoKT49MTIpXX0sUzpmdW5jdGlvbih0LGUpe3JldHVybiBIZSh0LmdldFNlY29uZHMoKSxlLDIpfSxVOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIEhlKEllLnN1bmRheU9mWWVhcih0KSxlLDIpfSx3OmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldERheSgpfSxXOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIEhlKEllLm1vbmRheU9mWWVhcih0KSxlLDIpfSx4OnUobiksWDp1KGEpLHk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gSGUodC5nZXRGdWxsWWVhcigpJTEwMCxlLDIpfSxZOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIEhlKHQuZ2V0RnVsbFllYXIoKSUxZTQsZSw0KX0sWjpvciwiJSI6ZnVuY3Rpb24oKXtyZXR1cm4iJSJ9fSx3PXthOmZ1bmN0aW9uKHQsZSxyKXtnLmxhc3RJbmRleD0wO3ZhciBuPWcuZXhlYyhlLnNsaWNlKHIpKTtyZXR1cm4gbj8odC53PXYuZ2V0KG5bMF0udG9Mb3dlckNhc2UoKSkscituWzBdLmxlbmd0aCk6LTF9LEE6ZnVuY3Rpb24odCxlLHIpe3AubGFzdEluZGV4PTA7dmFyIG49cC5leGVjKGUuc2xpY2UocikpO3JldHVybiBuPyh0Lnc9ZC5nZXQoblswXS50b0xvd2VyQ2FzZSgpKSxyK25bMF0ubGVuZ3RoKTotMX0sYjpmdW5jdGlvbih0LGUscil7eC5sYXN0SW5kZXg9MDt2YXIgbj14LmV4ZWMoZS5zbGljZShyKSk7cmV0dXJuIG4/KHQubT1iLmdldChuWzBdLnRvTG93ZXJDYXNlKCkpLHIrblswXS5sZW5ndGgpOi0xfSxCOmZ1bmN0aW9uKHQsZSxyKXttLmxhc3RJbmRleD0wO3ZhciBuPW0uZXhlYyhlLnNsaWNlKHIpKTtyZXR1cm4gbj8odC5tPXkuZ2V0KG5bMF0udG9Mb3dlckNhc2UoKSkscituWzBdLmxlbmd0aCk6LTF9LGM6ZnVuY3Rpb24odCxlLHIpe3JldHVybiBoKHQsXy5jLnRvU3RyaW5nKCksZSxyKX0sZDp0cixlOnRyLEg6cnIsSTpycixqOmVyLEw6aXIsbTokZSxNOm5yLHA6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWYuZ2V0KGUuc2xpY2UocixyKz0yKS50b0xvd2VyQ2FzZSgpKTtyZXR1cm4gbnVsbD09bj8tMToodC5wPW4scil9LFM6YXIsVTpYZSx3OldlLFc6WmUseDpmdW5jdGlvbih0LGUscil7cmV0dXJuIGgodCxfLngudG9TdHJpbmcoKSxlLHIpfSxYOmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gaCh0LF8uWC50b1N0cmluZygpLGUscil9LHk6S2UsWTpKZSxaOlFlLCIlIjpzcn07cmV0dXJuIHV9SWUueWVhcj1CZShmdW5jdGlvbih0KXtyZXR1cm4odD1JZS5kYXkodCkpLnNldE1vbnRoKDAsMSksdH0sZnVuY3Rpb24odCxlKXt0LnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKStlKX0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0RnVsbFllYXIoKX0pLEllLnllYXJzPUllLnllYXIucmFuZ2UsSWUueWVhcnMudXRjPUllLnllYXIudXRjLnJhbmdlLEllLmRheT1CZShmdW5jdGlvbih0KXt2YXIgZT1uZXcgRGUoMmUzLDApO3JldHVybiBlLnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKSx0LmdldE1vbnRoKCksdC5nZXREYXRlKCkpLGV9LGZ1bmN0aW9uKHQsZSl7dC5zZXREYXRlKHQuZ2V0RGF0ZSgpK2UpfSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXREYXRlKCktMX0pLEllLmRheXM9SWUuZGF5LnJhbmdlLEllLmRheXMudXRjPUllLmRheS51dGMucmFuZ2UsSWUuZGF5T2ZZZWFyPWZ1bmN0aW9uKHQpe3ZhciBlPUllLnllYXIodCk7cmV0dXJuIE1hdGguZmxvb3IoKHQtZS02ZTQqKHQuZ2V0VGltZXpvbmVPZmZzZXQoKS1lLmdldFRpbWV6b25lT2Zmc2V0KCkpKS84NjRlNSl9LFsic3VuZGF5IiwibW9uZGF5IiwidHVlc2RheSIsIndlZG5lc2RheSIsInRodXJzZGF5IiwiZnJpZGF5Iiwic2F0dXJkYXkiXS5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7ZT03LWU7dmFyIHI9SWVbdF09QmUoZnVuY3Rpb24odCl7cmV0dXJuKHQ9SWUuZGF5KHQpKS5zZXREYXRlKHQuZ2V0RGF0ZSgpLSh0LmdldERheSgpK2UpJTcpLHR9LGZ1bmN0aW9uKHQsZSl7dC5zZXREYXRlKHQuZ2V0RGF0ZSgpKzcqTWF0aC5mbG9vcihlKSl9LGZ1bmN0aW9uKHQpe3ZhciByPUllLnllYXIodCkuZ2V0RGF5KCk7cmV0dXJuIE1hdGguZmxvb3IoKEllLmRheU9mWWVhcih0KSsocitlKSU3KS83KS0ociE9PWUpfSk7SWVbdCsicyJdPXIucmFuZ2UsSWVbdCsicyJdLnV0Yz1yLnV0Yy5yYW5nZSxJZVt0KyJPZlllYXIiXT1mdW5jdGlvbih0KXt2YXIgcj1JZS55ZWFyKHQpLmdldERheSgpO3JldHVybiBNYXRoLmZsb29yKChJZS5kYXlPZlllYXIodCkrKHIrZSklNykvNyl9fSksSWUud2Vlaz1JZS5zdW5kYXksSWUud2Vla3M9SWUuc3VuZGF5LnJhbmdlLEllLndlZWtzLnV0Yz1JZS5zdW5kYXkudXRjLnJhbmdlLEllLndlZWtPZlllYXI9SWUuc3VuZGF5T2ZZZWFyO3ZhciBWZT17Ii0iOiIiLF86IiAiLDA6IjAifSxVZT0vXlxzKlxkKy8scWU9L14lLztmdW5jdGlvbiBIZSh0LGUscil7dmFyIG49dDwwPyItIjoiIixhPShuPy10OnQpKyIiLGk9YS5sZW5ndGg7cmV0dXJuIG4rKGk8cj9uZXcgQXJyYXkoci1pKzEpLmpvaW4oZSkrYTphKX1mdW5jdGlvbiBHZShlKXtyZXR1cm4gbmV3IFJlZ0V4cCgiXig/OiIrZS5tYXAodC5yZXF1b3RlKS5qb2luKCJ8IikrIikiLCJpIil9ZnVuY3Rpb24gWWUodCl7Zm9yKHZhciBlPW5ldyBiLHI9LTEsbj10Lmxlbmd0aDsrK3I8bjspZS5zZXQodFtyXS50b0xvd2VyQ2FzZSgpLHIpO3JldHVybiBlfWZ1bmN0aW9uIFdlKHQsZSxyKXtVZS5sYXN0SW5kZXg9MDt2YXIgbj1VZS5leGVjKGUuc2xpY2UocixyKzEpKTtyZXR1cm4gbj8odC53PStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFhlKHQsZSxyKXtVZS5sYXN0SW5kZXg9MDt2YXIgbj1VZS5leGVjKGUuc2xpY2UocikpO3JldHVybiBuPyh0LlU9K25bMF0scituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gWmUodCxlLHIpe1VlLmxhc3RJbmRleD0wO3ZhciBuPVVlLmV4ZWMoZS5zbGljZShyKSk7cmV0dXJuIG4/KHQuVz0rblswXSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBKZSh0LGUscil7VWUubGFzdEluZGV4PTA7dmFyIG49VWUuZXhlYyhlLnNsaWNlKHIscis0KSk7cmV0dXJuIG4/KHQueT0rblswXSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBLZSh0LGUscil7VWUubGFzdEluZGV4PTA7dmFyIG4sYT1VZS5leGVjKGUuc2xpY2UocixyKzIpKTtyZXR1cm4gYT8odC55PShuPSthWzBdKSsobj42OD8xOTAwOjJlMykscithWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gUWUodCxlLHIpe3JldHVybi9eWystXVxkezR9JC8udGVzdChlPWUuc2xpY2UocixyKzUpKT8odC5aPS1lLHIrNSk6LTF9ZnVuY3Rpb24gJGUodCxlLHIpe1VlLmxhc3RJbmRleD0wO3ZhciBuPVVlLmV4ZWMoZS5zbGljZShyLHIrMikpO3JldHVybiBuPyh0Lm09blswXS0xLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHRyKHQsZSxyKXtVZS5sYXN0SW5kZXg9MDt2YXIgbj1VZS5leGVjKGUuc2xpY2UocixyKzIpKTtyZXR1cm4gbj8odC5kPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGVyKHQsZSxyKXtVZS5sYXN0SW5kZXg9MDt2YXIgbj1VZS5leGVjKGUuc2xpY2UocixyKzMpKTtyZXR1cm4gbj8odC5qPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHJyKHQsZSxyKXtVZS5sYXN0SW5kZXg9MDt2YXIgbj1VZS5leGVjKGUuc2xpY2UocixyKzIpKTtyZXR1cm4gbj8odC5IPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIG5yKHQsZSxyKXtVZS5sYXN0SW5kZXg9MDt2YXIgbj1VZS5leGVjKGUuc2xpY2UocixyKzIpKTtyZXR1cm4gbj8odC5NPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGFyKHQsZSxyKXtVZS5sYXN0SW5kZXg9MDt2YXIgbj1VZS5leGVjKGUuc2xpY2UocixyKzIpKTtyZXR1cm4gbj8odC5TPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGlyKHQsZSxyKXtVZS5sYXN0SW5kZXg9MDt2YXIgbj1VZS5leGVjKGUuc2xpY2UocixyKzMpKTtyZXR1cm4gbj8odC5MPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIG9yKHQpe3ZhciBlPXQuZ2V0VGltZXpvbmVPZmZzZXQoKSxyPWU+MD8iLSI6IisiLG49eShlKS82MHwwLGE9eShlKSU2MDtyZXR1cm4gcitIZShuLCIwIiwyKStIZShhLCIwIiwyKX1mdW5jdGlvbiBzcih0LGUscil7cWUubGFzdEluZGV4PTA7dmFyIG49cWUuZXhlYyhlLnNsaWNlKHIscisxKSk7cmV0dXJuIG4/cituWzBdLmxlbmd0aDotMX1mdW5jdGlvbiBscih0KXtmb3IodmFyIGU9dC5sZW5ndGgscj0tMTsrK3I8ZTspdFtyXVswXT10aGlzKHRbcl1bMF0pO3JldHVybiBmdW5jdGlvbihlKXtmb3IodmFyIHI9MCxuPXRbcl07IW5bMV0oZSk7KW49dFsrK3JdO3JldHVybiBuWzBdKGUpfX10LmxvY2FsZT1mdW5jdGlvbih0KXtyZXR1cm57bnVtYmVyRm9ybWF0OkNlKHQpLHRpbWVGb3JtYXQ6amUodCl9fTt2YXIgY3I9dC5sb2NhbGUoe2RlY2ltYWw6Ii4iLHRob3VzYW5kczoiLCIsZ3JvdXBpbmc6WzNdLGN1cnJlbmN5OlsiJCIsIiJdLGRhdGVUaW1lOiIlYSAlYiAlZSAlWCAlWSIsZGF0ZToiJW0vJWQvJVkiLHRpbWU6IiVIOiVNOiVTIixwZXJpb2RzOlsiQU0iLCJQTSJdLGRheXM6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdLHNob3J0RGF5czpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLG1vbnRoczpbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0sc2hvcnRNb250aHM6WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXX0pO2Z1bmN0aW9uIHVyKCl7fXQuZm9ybWF0PWNyLm51bWJlckZvcm1hdCx0Lmdlbz17fSx1ci5wcm90b3R5cGU9e3M6MCx0OjAsYWRkOmZ1bmN0aW9uKHQpe2ZyKHQsdGhpcy50LGhyKSxmcihoci5zLHRoaXMucyx0aGlzKSx0aGlzLnM/dGhpcy50Kz1oci50OnRoaXMucz1oci50fSxyZXNldDpmdW5jdGlvbigpe3RoaXMucz10aGlzLnQ9MH0sdmFsdWVPZjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN9fTt2YXIgaHI9bmV3IHVyO2Z1bmN0aW9uIGZyKHQsZSxyKXt2YXIgbj1yLnM9dCtlLGE9bi10LGk9bi1hO3IudD10LWkrKGUtYSl9ZnVuY3Rpb24gcHIodCxlKXt0JiZnci5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpJiZnclt0LnR5cGVdKHQsZSl9dC5nZW8uc3RyZWFtPWZ1bmN0aW9uKHQsZSl7dCYmZHIuaGFzT3duUHJvcGVydHkodC50eXBlKT9kclt0LnR5cGVdKHQsZSk6cHIodCxlKX07dmFyIGRyPXtGZWF0dXJlOmZ1bmN0aW9uKHQsZSl7cHIodC5nZW9tZXRyeSxlKX0sRmVhdHVyZUNvbGxlY3Rpb246ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5mZWF0dXJlcyxuPS0xLGE9ci5sZW5ndGg7KytuPGE7KXByKHJbbl0uZ2VvbWV0cnksZSl9fSxncj17U3BoZXJlOmZ1bmN0aW9uKHQsZSl7ZS5zcGhlcmUoKX0sUG9pbnQ6ZnVuY3Rpb24odCxlKXt0PXQuY29vcmRpbmF0ZXMsZS5wb2ludCh0WzBdLHRbMV0sdFsyXSl9LE11bHRpUG9pbnQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5jb29yZGluYXRlcyxuPS0xLGE9ci5sZW5ndGg7KytuPGE7KXQ9cltuXSxlLnBvaW50KHRbMF0sdFsxXSx0WzJdKX0sTGluZVN0cmluZzpmdW5jdGlvbih0LGUpe3ZyKHQuY29vcmRpbmF0ZXMsZSwwKX0sTXVsdGlMaW5lU3RyaW5nOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQuY29vcmRpbmF0ZXMsbj0tMSxhPXIubGVuZ3RoOysrbjxhOyl2cihyW25dLGUsMCl9LFBvbHlnb246ZnVuY3Rpb24odCxlKXttcih0LmNvb3JkaW5hdGVzLGUpfSxNdWx0aVBvbHlnb246ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5jb29yZGluYXRlcyxuPS0xLGE9ci5sZW5ndGg7KytuPGE7KW1yKHJbbl0sZSl9LEdlb21ldHJ5Q29sbGVjdGlvbjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10Lmdlb21ldHJpZXMsbj0tMSxhPXIubGVuZ3RoOysrbjxhOylwcihyW25dLGUpfX07ZnVuY3Rpb24gdnIodCxlLHIpe3ZhciBuLGE9LTEsaT10Lmxlbmd0aC1yO2ZvcihlLmxpbmVTdGFydCgpOysrYTxpOyluPXRbYV0sZS5wb2ludChuWzBdLG5bMV0sblsyXSk7ZS5saW5lRW5kKCl9ZnVuY3Rpb24gbXIodCxlKXt2YXIgcj0tMSxuPXQubGVuZ3RoO2ZvcihlLnBvbHlnb25TdGFydCgpOysrcjxuOyl2cih0W3JdLGUsMSk7ZS5wb2x5Z29uRW5kKCl9dC5nZW8uYXJlYT1mdW5jdGlvbihlKXtyZXR1cm4geXI9MCx0Lmdlby5zdHJlYW0oZSxQcikseXJ9O3ZhciB5cix4cixicixfcix3cixrcixUcixNcixBcixTcixFcixMcixDcj1uZXcgdXIsUHI9e3NwaGVyZTpmdW5jdGlvbigpe3lyKz00Kk10fSxwb2ludDpELGxpbmVTdGFydDpELGxpbmVFbmQ6RCxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtDci5yZXNldCgpLFByLmxpbmVTdGFydD1Pcn0scG9seWdvbkVuZDpmdW5jdGlvbigpe3ZhciB0PTIqQ3I7eXIrPXQ8MD80Kk10K3Q6dCxQci5saW5lU3RhcnQ9UHIubGluZUVuZD1Qci5wb2ludD1EfX07ZnVuY3Rpb24gT3IoKXt2YXIgdCxlLHIsbixhO2Z1bmN0aW9uIGkodCxlKXtlPWUqTHQvMitNdC80O3ZhciBpPSh0Kj1MdCktcixvPWk+PTA/MTotMSxzPW8qaSxsPU1hdGguY29zKGUpLGM9TWF0aC5zaW4oZSksdT1hKmMsaD1uKmwrdSpNYXRoLmNvcyhzKSxmPXUqbypNYXRoLnNpbihzKTtDci5hZGQoTWF0aC5hdGFuMihmLGgpKSxyPXQsbj1sLGE9Y31Qci5wb2ludD1mdW5jdGlvbihvLHMpe1ByLnBvaW50PWkscj0odD1vKSpMdCxuPU1hdGguY29zKHM9KGU9cykqTHQvMitNdC80KSxhPU1hdGguc2luKHMpfSxQci5saW5lRW5kPWZ1bmN0aW9uKCl7aSh0LGUpfX1mdW5jdGlvbiB6cih0KXt2YXIgZT10WzBdLHI9dFsxXSxuPU1hdGguY29zKHIpO3JldHVybltuKk1hdGguY29zKGUpLG4qTWF0aC5zaW4oZSksTWF0aC5zaW4ocildfWZ1bmN0aW9uIElyKHQsZSl7cmV0dXJuIHRbMF0qZVswXSt0WzFdKmVbMV0rdFsyXSplWzJdfWZ1bmN0aW9uIERyKHQsZSl7cmV0dXJuW3RbMV0qZVsyXS10WzJdKmVbMV0sdFsyXSplWzBdLXRbMF0qZVsyXSx0WzBdKmVbMV0tdFsxXSplWzBdXX1mdW5jdGlvbiBScih0LGUpe3RbMF0rPWVbMF0sdFsxXSs9ZVsxXSx0WzJdKz1lWzJdfWZ1bmN0aW9uIEZyKHQsZSl7cmV0dXJuW3RbMF0qZSx0WzFdKmUsdFsyXSplXX1mdW5jdGlvbiBCcih0KXt2YXIgZT1NYXRoLnNxcnQodFswXSp0WzBdK3RbMV0qdFsxXSt0WzJdKnRbMl0pO3RbMF0vPWUsdFsxXS89ZSx0WzJdLz1lfWZ1bmN0aW9uIE5yKHQpe3JldHVybltNYXRoLmF0YW4yKHRbMV0sdFswXSksSXQodFsyXSldfWZ1bmN0aW9uIGpyKHQsZSl7cmV0dXJuIHkodFswXS1lWzBdKTxrdCYmeSh0WzFdLWVbMV0pPGt0fXQuZ2VvLmJvdW5kcz1mdW5jdGlvbigpe3ZhciBlLHIsbixhLGksbyxzLGwsYyx1LGgsZj17cG9pbnQ6cCxsaW5lU3RhcnQ6ZyxsaW5lRW5kOnYscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7Zi5wb2ludD1tLGYubGluZVN0YXJ0PXgsZi5saW5lRW5kPWIsYz0wLFByLnBvbHlnb25TdGFydCgpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7UHIucG9seWdvbkVuZCgpLGYucG9pbnQ9cCxmLmxpbmVTdGFydD1nLGYubGluZUVuZD12LENyPDA/KGU9LShuPTE4MCkscj0tKGE9OTApKTpjPmt0P2E9OTA6Yzwta3QmJihyPS05MCksaFswXT1lLGhbMV09bn19O2Z1bmN0aW9uIHAodCxpKXt1LnB1c2goaD1bZT10LG49dF0pLGk8ciYmKHI9aSksaT5hJiYoYT1pKX1mdW5jdGlvbiBkKHQsbyl7dmFyIHM9enIoW3QqTHQsbypMdF0pO2lmKGwpe3ZhciBjPURyKGwscyksdT1EcihbY1sxXSwtY1swXSwwXSxjKTtCcih1KSx1PU5yKHUpO3ZhciBoPXQtaSxmPWg+MD8xOi0xLGQ9dVswXSpDdCpmLGc9eShoKT4xODA7aWYoZ14oZippPGQmJmQ8Zip0KSkodj11WzFdKkN0KT5hJiYoYT12KTtlbHNlIGlmKGdeKGYqaTwoZD0oZCszNjApJTM2MC0xODApJiZkPGYqdCkpe3ZhciB2Oyh2PS11WzFdKkN0KTxyJiYocj12KX1lbHNlIG88ciYmKHI9byksbz5hJiYoYT1vKTtnP3Q8aT9fKGUsdCk+XyhlLG4pJiYobj10KTpfKHQsbik+XyhlLG4pJiYoZT10KTpuPj1lPyh0PGUmJihlPXQpLHQ+biYmKG49dCkpOnQ+aT9fKGUsdCk+XyhlLG4pJiYobj10KTpfKHQsbik+XyhlLG4pJiYoZT10KX1lbHNlIHAodCxvKTtsPXMsaT10fWZ1bmN0aW9uIGcoKXtmLnBvaW50PWR9ZnVuY3Rpb24gdigpe2hbMF09ZSxoWzFdPW4sZi5wb2ludD1wLGw9bnVsbH1mdW5jdGlvbiBtKHQsZSl7aWYobCl7dmFyIHI9dC1pO2MrPXkocik+MTgwP3IrKHI+MD8zNjA6LTM2MCk6cn1lbHNlIG89dCxzPWU7UHIucG9pbnQodCxlKSxkKHQsZSl9ZnVuY3Rpb24geCgpe1ByLmxpbmVTdGFydCgpfWZ1bmN0aW9uIGIoKXttKG8scyksUHIubGluZUVuZCgpLHkoYyk+a3QmJihlPS0obj0xODApKSxoWzBdPWUsaFsxXT1uLGw9bnVsbH1mdW5jdGlvbiBfKHQsZSl7cmV0dXJuKGUtPXQpPDA/ZSszNjA6ZX1mdW5jdGlvbiB3KHQsZSl7cmV0dXJuIHRbMF0tZVswXX1mdW5jdGlvbiBrKHQsZSl7cmV0dXJuIGVbMF08PWVbMV0/ZVswXTw9dCYmdDw9ZVsxXTp0PGVbMF18fGVbMV08dH1yZXR1cm4gZnVuY3Rpb24oaSl7aWYoYT1uPS0oZT1yPTEvMCksdT1bXSx0Lmdlby5zdHJlYW0oaSxmKSxjPXUubGVuZ3RoKXt1LnNvcnQodyk7Zm9yKHZhciBvPTEscz1bZz11WzBdXTtvPGM7KytvKWsoKHA9dVtvXSlbMF0sZyl8fGsocFsxXSxnKT8oXyhnWzBdLHBbMV0pPl8oZ1swXSxnWzFdKSYmKGdbMV09cFsxXSksXyhwWzBdLGdbMV0pPl8oZ1swXSxnWzFdKSYmKGdbMF09cFswXSkpOnMucHVzaChnPXApO2Zvcih2YXIgbCxjLHAsZD0tMS8wLGc9KG89MCxzW2M9cy5sZW5ndGgtMV0pO288PWM7Zz1wLCsrbylwPXNbb10sKGw9XyhnWzFdLHBbMF0pKT5kJiYoZD1sLGU9cFswXSxuPWdbMV0pfXJldHVybiB1PWg9bnVsbCxlPT09MS8wfHxyPT09MS8wP1tbTmFOLE5hTl0sW05hTixOYU5dXTpbW2Uscl0sW24sYV1dfX0oKSx0Lmdlby5jZW50cm9pZD1mdW5jdGlvbihlKXt4cj1icj1fcj13cj1rcj1Ucj1Ncj1Bcj1Tcj1Fcj1Mcj0wLHQuZ2VvLnN0cmVhbShlLFZyKTt2YXIgcj1TcixuPUVyLGE9THIsaT1yKnIrbipuK2EqYTtyZXR1cm4gaTxUdCYmKHI9VHIsbj1NcixhPUFyLGJyPGt0JiYocj1fcixuPXdyLGE9a3IpLChpPXIqcituKm4rYSphKTxUdCk/W05hTixOYU5dOltNYXRoLmF0YW4yKG4scikqQ3QsSXQoYS9NYXRoLnNxcnQoaSkpKkN0XX07dmFyIFZyPXtzcGhlcmU6RCxwb2ludDpVcixsaW5lU3RhcnQ6SHIsbGluZUVuZDpHcixwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtWci5saW5lU3RhcnQ9WXJ9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtWci5saW5lU3RhcnQ9SHJ9fTtmdW5jdGlvbiBVcih0LGUpe3QqPUx0O3ZhciByPU1hdGguY29zKGUqPUx0KTtxcihyKk1hdGguY29zKHQpLHIqTWF0aC5zaW4odCksTWF0aC5zaW4oZSkpfWZ1bmN0aW9uIHFyKHQsZSxyKXtfcis9KHQtX3IpLysreHIsd3IrPShlLXdyKS94cixrcis9KHIta3IpL3hyfWZ1bmN0aW9uIEhyKCl7dmFyIHQsZSxyO2Z1bmN0aW9uIG4obixhKXtuKj1MdDt2YXIgaT1NYXRoLmNvcyhhKj1MdCksbz1pKk1hdGguY29zKG4pLHM9aSpNYXRoLnNpbihuKSxsPU1hdGguc2luKGEpLGM9TWF0aC5hdGFuMihNYXRoLnNxcnQoKGM9ZSpsLXIqcykqYysoYz1yKm8tdCpsKSpjKyhjPXQqcy1lKm8pKmMpLHQqbytlKnMrcipsKTticis9YyxUcis9YyoodCsodD1vKSksTXIrPWMqKGUrKGU9cykpLEFyKz1jKihyKyhyPWwpKSxxcih0LGUscil9VnIucG9pbnQ9ZnVuY3Rpb24oYSxpKXthKj1MdDt2YXIgbz1NYXRoLmNvcyhpKj1MdCk7dD1vKk1hdGguY29zKGEpLGU9bypNYXRoLnNpbihhKSxyPU1hdGguc2luKGkpLFZyLnBvaW50PW4scXIodCxlLHIpfX1mdW5jdGlvbiBHcigpe1ZyLnBvaW50PVVyfWZ1bmN0aW9uIFlyKCl7dmFyIHQsZSxyLG4sYTtmdW5jdGlvbiBpKHQsZSl7dCo9THQ7dmFyIGk9TWF0aC5jb3MoZSo9THQpLG89aSpNYXRoLmNvcyh0KSxzPWkqTWF0aC5zaW4odCksbD1NYXRoLnNpbihlKSxjPW4qbC1hKnMsdT1hKm8tcipsLGg9cipzLW4qbyxmPU1hdGguc3FydChjKmMrdSp1K2gqaCkscD1yKm8rbipzK2EqbCxkPWYmJi16dChwKS9mLGc9TWF0aC5hdGFuMihmLHApO1NyKz1kKmMsRXIrPWQqdSxMcis9ZCpoLGJyKz1nLFRyKz1nKihyKyhyPW8pKSxNcis9Zyoobisobj1zKSksQXIrPWcqKGErKGE9bCkpLHFyKHIsbixhKX1Wci5wb2ludD1mdW5jdGlvbihvLHMpe3Q9byxlPXMsVnIucG9pbnQ9aSxvKj1MdDt2YXIgbD1NYXRoLmNvcyhzKj1MdCk7cj1sKk1hdGguY29zKG8pLG49bCpNYXRoLnNpbihvKSxhPU1hdGguc2luKHMpLHFyKHIsbixhKX0sVnIubGluZUVuZD1mdW5jdGlvbigpe2kodCxlKSxWci5saW5lRW5kPUdyLFZyLnBvaW50PVVyfX1mdW5jdGlvbiBXcih0LGUpe2Z1bmN0aW9uIHIocixuKXtyZXR1cm4gcj10KHIsbiksZShyWzBdLHJbMV0pfXJldHVybiB0LmludmVydCYmZS5pbnZlcnQmJihyLmludmVydD1mdW5jdGlvbihyLG4pe3JldHVybihyPWUuaW52ZXJ0KHIsbikpJiZ0LmludmVydChyWzBdLHJbMV0pfSkscn1mdW5jdGlvbiBYcigpe3JldHVybiEwfWZ1bmN0aW9uIFpyKHQsZSxyLG4sYSl7dmFyIGk9W10sbz1bXTtpZih0LmZvckVhY2goZnVuY3Rpb24odCl7aWYoISgoZT10Lmxlbmd0aC0xKTw9MCkpe3ZhciBlLHI9dFswXSxuPXRbZV07aWYoanIocixuKSl7YS5saW5lU3RhcnQoKTtmb3IodmFyIHM9MDtzPGU7KytzKWEucG9pbnQoKHI9dFtzXSlbMF0sclsxXSk7YS5saW5lRW5kKCl9ZWxzZXt2YXIgbD1uZXcgS3Iocix0LG51bGwsITApLGM9bmV3IEtyKHIsbnVsbCxsLCExKTtsLm89YyxpLnB1c2gobCksby5wdXNoKGMpLGw9bmV3IEtyKG4sdCxudWxsLCExKSxjPW5ldyBLcihuLG51bGwsbCwhMCksbC5vPWMsaS5wdXNoKGwpLG8ucHVzaChjKX19fSksby5zb3J0KGUpLEpyKGkpLEpyKG8pLGkubGVuZ3RoKXtmb3IodmFyIHM9MCxsPXIsYz1vLmxlbmd0aDtzPGM7KytzKW9bc10uZT1sPSFsO2Zvcih2YXIgdSxoLGY9aVswXTs7KXtmb3IodmFyIHA9ZixkPSEwO3AudjspaWYoKHA9cC5uKT09PWYpcmV0dXJuO3U9cC56LGEubGluZVN0YXJ0KCk7ZG97aWYocC52PXAuby52PSEwLHAuZSl7aWYoZClmb3Iocz0wLGM9dS5sZW5ndGg7czxjOysrcylhLnBvaW50KChoPXVbc10pWzBdLGhbMV0pO2Vsc2UgbihwLngscC5uLngsMSxhKTtwPXAubn1lbHNle2lmKGQpZm9yKHM9KHU9cC5wLnopLmxlbmd0aC0xO3M+PTA7LS1zKWEucG9pbnQoKGg9dVtzXSlbMF0saFsxXSk7ZWxzZSBuKHAueCxwLnAueCwtMSxhKTtwPXAucH11PShwPXAubykueixkPSFkfXdoaWxlKCFwLnYpO2EubGluZUVuZCgpfX19ZnVuY3Rpb24gSnIodCl7aWYoZT10Lmxlbmd0aCl7Zm9yKHZhciBlLHIsbj0wLGE9dFswXTsrK248ZTspYS5uPXI9dFtuXSxyLnA9YSxhPXI7YS5uPXI9dFswXSxyLnA9YX19ZnVuY3Rpb24gS3IodCxlLHIsbil7dGhpcy54PXQsdGhpcy56PWUsdGhpcy5vPXIsdGhpcy5lPW4sdGhpcy52PSExLHRoaXMubj10aGlzLnA9bnVsbH1mdW5jdGlvbiBRcihlLHIsbixhKXtyZXR1cm4gZnVuY3Rpb24oaSxvKXt2YXIgcyxsPXIobyksYz1pLmludmVydChhWzBdLGFbMV0pLHU9e3BvaW50OmgsbGluZVN0YXJ0OnAsbGluZUVuZDpkLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3UucG9pbnQ9Yix1LmxpbmVTdGFydD1fLHUubGluZUVuZD13LHM9W10sZz1bXX0scG9seWdvbkVuZDpmdW5jdGlvbigpe3UucG9pbnQ9aCx1LmxpbmVTdGFydD1wLHUubGluZUVuZD1kLHM9dC5tZXJnZShzKTt2YXIgZT1mdW5jdGlvbih0LGUpe3ZhciByPXRbMF0sbj10WzFdLGE9W01hdGguc2luKHIpLC1NYXRoLmNvcyhyKSwwXSxpPTAsbz0wO0NyLnJlc2V0KCk7Zm9yKHZhciBzPTAsbD1lLmxlbmd0aDtzPGw7KytzKXt2YXIgYz1lW3NdLHU9Yy5sZW5ndGg7aWYodSlmb3IodmFyIGg9Y1swXSxmPWhbMF0scD1oWzFdLzIrTXQvNCxkPU1hdGguc2luKHApLGc9TWF0aC5jb3MocCksdj0xOzspe3Y9PT11JiYodj0wKTt2YXIgbT0odD1jW3ZdKVswXSx5PXRbMV0vMitNdC80LHg9TWF0aC5zaW4oeSksYj1NYXRoLmNvcyh5KSxfPW0tZix3PV8+PTA/MTotMSxrPXcqXyxUPWs+TXQsTT1kKng7aWYoQ3IuYWRkKE1hdGguYXRhbjIoTSp3Kk1hdGguc2luKGspLGcqYitNKk1hdGguY29zKGspKSksaSs9VD9fK3cqQXQ6XyxUXmY+PXJebT49cil7dmFyIEE9RHIoenIoaCksenIodCkpO0JyKEEpO3ZhciBTPURyKGEsQSk7QnIoUyk7dmFyIEU9KFReXz49MD8tMToxKSpJdChTWzJdKTsobj5FfHxuPT09RSYmKEFbMF18fEFbMV0pKSYmKG8rPVReXz49MD8xOi0xKX1pZighdisrKWJyZWFrO2Y9bSxkPXgsZz1iLGg9dH19cmV0dXJuKGk8LWt0fHxpPGt0JiZDcjwta3QpXjEmb30oYyxnKTtzLmxlbmd0aD8oeHx8KG8ucG9seWdvblN0YXJ0KCkseD0hMCksWnIocyxlbixlLG4sbykpOmUmJih4fHwoby5wb2x5Z29uU3RhcnQoKSx4PSEwKSxvLmxpbmVTdGFydCgpLG4obnVsbCxudWxsLDEsbyksby5saW5lRW5kKCkpLHgmJihvLnBvbHlnb25FbmQoKSx4PSExKSxzPWc9bnVsbH0sc3BoZXJlOmZ1bmN0aW9uKCl7by5wb2x5Z29uU3RhcnQoKSxvLmxpbmVTdGFydCgpLG4obnVsbCxudWxsLDEsbyksby5saW5lRW5kKCksby5wb2x5Z29uRW5kKCl9fTtmdW5jdGlvbiBoKHQscil7dmFyIG49aSh0LHIpO2UodD1uWzBdLHI9blsxXSkmJm8ucG9pbnQodCxyKX1mdW5jdGlvbiBmKHQsZSl7dmFyIHI9aSh0LGUpO2wucG9pbnQoclswXSxyWzFdKX1mdW5jdGlvbiBwKCl7dS5wb2ludD1mLGwubGluZVN0YXJ0KCl9ZnVuY3Rpb24gZCgpe3UucG9pbnQ9aCxsLmxpbmVFbmQoKX12YXIgZyx2LG09dG4oKSx5PXIobSkseD0hMTtmdW5jdGlvbiBiKHQsZSl7di5wdXNoKFt0LGVdKTt2YXIgcj1pKHQsZSk7eS5wb2ludChyWzBdLHJbMV0pfWZ1bmN0aW9uIF8oKXt5LmxpbmVTdGFydCgpLHY9W119ZnVuY3Rpb24gdygpe2IodlswXVswXSx2WzBdWzFdKSx5LmxpbmVFbmQoKTt2YXIgdCxlPXkuY2xlYW4oKSxyPW0uYnVmZmVyKCksbj1yLmxlbmd0aDtpZih2LnBvcCgpLGcucHVzaCh2KSx2PW51bGwsbilpZigxJmUpe3ZhciBhLGk9LTE7aWYoKG49KHQ9clswXSkubGVuZ3RoLTEpPjApe2Zvcih4fHwoby5wb2x5Z29uU3RhcnQoKSx4PSEwKSxvLmxpbmVTdGFydCgpOysraTxuOylvLnBvaW50KChhPXRbaV0pWzBdLGFbMV0pO28ubGluZUVuZCgpfX1lbHNlIG4+MSYmMiZlJiZyLnB1c2goci5wb3AoKS5jb25jYXQoci5zaGlmdCgpKSkscy5wdXNoKHIuZmlsdGVyKCRyKSl9cmV0dXJuIHV9fWZ1bmN0aW9uICRyKHQpe3JldHVybiB0Lmxlbmd0aD4xfWZ1bmN0aW9uIHRuKCl7dmFyIHQsZT1bXTtyZXR1cm57bGluZVN0YXJ0OmZ1bmN0aW9uKCl7ZS5wdXNoKHQ9W10pfSxwb2ludDpmdW5jdGlvbihlLHIpe3QucHVzaChbZSxyXSl9LGxpbmVFbmQ6RCxidWZmZXI6ZnVuY3Rpb24oKXt2YXIgcj1lO3JldHVybiBlPVtdLHQ9bnVsbCxyfSxyZWpvaW46ZnVuY3Rpb24oKXtlLmxlbmd0aD4xJiZlLnB1c2goZS5wb3AoKS5jb25jYXQoZS5zaGlmdCgpKSl9fX1mdW5jdGlvbiBlbih0LGUpe3JldHVybigodD10LngpWzBdPDA/dFsxXS1FdC1rdDpFdC10WzFdKS0oKGU9ZS54KVswXTwwP2VbMV0tRXQta3Q6RXQtZVsxXSl9dmFyIHJuPVFyKFhyLGZ1bmN0aW9uKHQpe3ZhciBlLHI9TmFOLG49TmFOLGE9TmFOO3JldHVybntsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0LmxpbmVTdGFydCgpLGU9MX0scG9pbnQ6ZnVuY3Rpb24oaSxvKXt2YXIgcz1pPjA/TXQ6LU10LGw9eShpLXIpO3kobC1NdCk8a3Q/KHQucG9pbnQocixuPShuK28pLzI+MD9FdDotRXQpLHQucG9pbnQoYSxuKSx0LmxpbmVFbmQoKSx0LmxpbmVTdGFydCgpLHQucG9pbnQocyxuKSx0LnBvaW50KGksbiksZT0wKTphIT09cyYmbD49TXQmJih5KHItYSk8a3QmJihyLT1hKmt0KSx5KGktcyk8a3QmJihpLT1zKmt0KSxuPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhLGksbz1NYXRoLnNpbih0LXIpO3JldHVybiB5KG8pPmt0P01hdGguYXRhbigoTWF0aC5zaW4oZSkqKGk9TWF0aC5jb3MobikpKk1hdGguc2luKHIpLU1hdGguc2luKG4pKihhPU1hdGguY29zKGUpKSpNYXRoLnNpbih0KSkvKGEqaSpvKSk6KGUrbikvMn0ocixuLGksbyksdC5wb2ludChhLG4pLHQubGluZUVuZCgpLHQubGluZVN0YXJ0KCksdC5wb2ludChzLG4pLGU9MCksdC5wb2ludChyPWksbj1vKSxhPXN9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0LmxpbmVFbmQoKSxyPW49TmFOfSxjbGVhbjpmdW5jdGlvbigpe3JldHVybiAyLWV9fX0sZnVuY3Rpb24odCxlLHIsbil7dmFyIGE7aWYobnVsbD09dClhPXIqRXQsbi5wb2ludCgtTXQsYSksbi5wb2ludCgwLGEpLG4ucG9pbnQoTXQsYSksbi5wb2ludChNdCwwKSxuLnBvaW50KE10LC1hKSxuLnBvaW50KDAsLWEpLG4ucG9pbnQoLU10LC1hKSxuLnBvaW50KC1NdCwwKSxuLnBvaW50KC1NdCxhKTtlbHNlIGlmKHkodFswXS1lWzBdKT5rdCl7dmFyIGk9dFswXTxlWzBdP010Oi1NdDthPXIqaS8yLG4ucG9pbnQoLWksYSksbi5wb2ludCgwLGEpLG4ucG9pbnQoaSxhKX1lbHNlIG4ucG9pbnQoZVswXSxlWzFdKX0sWy1NdCwtTXQvMl0pO2Z1bmN0aW9uIG5uKHQsZSxyLG4pe3JldHVybiBmdW5jdGlvbihhKXt2YXIgaSxvPWEuYSxzPWEuYixsPW8ueCxjPW8ueSx1PTAsaD0xLGY9cy54LWwscD1zLnktYztpZihpPXQtbCxmfHwhKGk+MCkpe2lmKGkvPWYsZjwwKXtpZihpPHUpcmV0dXJuO2k8aCYmKGg9aSl9ZWxzZSBpZihmPjApe2lmKGk+aClyZXR1cm47aT51JiYodT1pKX1pZihpPXItbCxmfHwhKGk8MCkpe2lmKGkvPWYsZjwwKXtpZihpPmgpcmV0dXJuO2k+dSYmKHU9aSl9ZWxzZSBpZihmPjApe2lmKGk8dSlyZXR1cm47aTxoJiYoaD1pKX1pZihpPWUtYyxwfHwhKGk+MCkpe2lmKGkvPXAscDwwKXtpZihpPHUpcmV0dXJuO2k8aCYmKGg9aSl9ZWxzZSBpZihwPjApe2lmKGk+aClyZXR1cm47aT51JiYodT1pKX1pZihpPW4tYyxwfHwhKGk8MCkpe2lmKGkvPXAscDwwKXtpZihpPmgpcmV0dXJuO2k+dSYmKHU9aSl9ZWxzZSBpZihwPjApe2lmKGk8dSlyZXR1cm47aTxoJiYoaD1pKX1yZXR1cm4gdT4wJiYoYS5hPXt4OmwrdSpmLHk6Yyt1KnB9KSxoPDEmJihhLmI9e3g6bCtoKmYseTpjK2gqcH0pLGF9fX19fX12YXIgYW49MWU5O2Z1bmN0aW9uIG9uKGUscixuLGEpe3JldHVybiBmdW5jdGlvbihsKXt2YXIgYyx1LGgsZixwLGQsZyx2LG0seSx4LGI9bCxfPXRuKCksdz1ubihlLHIsbixhKSxrPXtwb2ludDpBLGxpbmVTdGFydDpmdW5jdGlvbigpe2sucG9pbnQ9Uyx1JiZ1LnB1c2goaD1bXSk7eT0hMCxtPSExLGc9dj1OYU59LGxpbmVFbmQ6ZnVuY3Rpb24oKXtjJiYoUyhmLHApLGQmJm0mJl8ucmVqb2luKCksYy5wdXNoKF8uYnVmZmVyKCkpKTtrLnBvaW50PUEsbSYmbC5saW5lRW5kKCl9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2w9XyxjPVtdLHU9W10seD0hMH0scG9seWdvbkVuZDpmdW5jdGlvbigpe2w9YixjPXQubWVyZ2UoYyk7dmFyIHI9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj11Lmxlbmd0aCxuPXRbMV0sYT0wO2E8cjsrK2EpZm9yKHZhciBpLG89MSxzPXVbYV0sbD1zLmxlbmd0aCxjPXNbMF07bzxsOysrbylpPXNbb10sY1sxXTw9bj9pWzFdPm4mJk90KGMsaSx0KT4wJiYrK2U6aVsxXTw9biYmT3QoYyxpLHQpPDAmJi0tZSxjPWk7cmV0dXJuIDAhPT1lfShbZSxhXSksbj14JiZyLGk9Yy5sZW5ndGg7KG58fGkpJiYobC5wb2x5Z29uU3RhcnQoKSxuJiYobC5saW5lU3RhcnQoKSxUKG51bGwsbnVsbCwxLGwpLGwubGluZUVuZCgpKSxpJiZacihjLG8scixULGwpLGwucG9seWdvbkVuZCgpKSxjPXU9aD1udWxsfX07ZnVuY3Rpb24gVCh0LG8sbCxjKXt2YXIgdT0wLGg9MDtpZihudWxsPT10fHwodT1pKHQsbCkpIT09KGg9aShvLGwpKXx8cyh0LG8pPDBebD4wKWRve2MucG9pbnQoMD09PXV8fDM9PT11P2U6bix1PjE/YTpyKX13aGlsZSgodT0odStsKzQpJTQpIT09aCk7ZWxzZSBjLnBvaW50KG9bMF0sb1sxXSl9ZnVuY3Rpb24gTSh0LGkpe3JldHVybiBlPD10JiZ0PD1uJiZyPD1pJiZpPD1hfWZ1bmN0aW9uIEEodCxlKXtNKHQsZSkmJmwucG9pbnQodCxlKX1mdW5jdGlvbiBTKHQsZSl7dmFyIHI9TSh0PU1hdGgubWF4KC1hbixNYXRoLm1pbihhbix0KSksZT1NYXRoLm1heCgtYW4sTWF0aC5taW4oYW4sZSkpKTtpZih1JiZoLnB1c2goW3QsZV0pLHkpZj10LHA9ZSxkPXIseT0hMSxyJiYobC5saW5lU3RhcnQoKSxsLnBvaW50KHQsZSkpO2Vsc2UgaWYociYmbSlsLnBvaW50KHQsZSk7ZWxzZXt2YXIgbj17YTp7eDpnLHk6dn0sYjp7eDp0LHk6ZX19O3cobik/KG18fChsLmxpbmVTdGFydCgpLGwucG9pbnQobi5hLngsbi5hLnkpKSxsLnBvaW50KG4uYi54LG4uYi55KSxyfHxsLmxpbmVFbmQoKSx4PSExKTpyJiYobC5saW5lU3RhcnQoKSxsLnBvaW50KHQsZSkseD0hMSl9Zz10LHY9ZSxtPXJ9cmV0dXJuIGt9O2Z1bmN0aW9uIGkodCxhKXtyZXR1cm4geSh0WzBdLWUpPGt0P2E+MD8wOjM6eSh0WzBdLW4pPGt0P2E+MD8yOjE6eSh0WzFdLXIpPGt0P2E+MD8xOjA6YT4wPzM6Mn1mdW5jdGlvbiBvKHQsZSl7cmV0dXJuIHModC54LGUueCl9ZnVuY3Rpb24gcyh0LGUpe3ZhciByPWkodCwxKSxuPWkoZSwxKTtyZXR1cm4gciE9PW4/ci1uOjA9PT1yP2VbMV0tdFsxXToxPT09cj90WzBdLWVbMF06Mj09PXI/dFsxXS1lWzFdOmVbMF0tdFswXX19ZnVuY3Rpb24gc24odCl7dmFyIGU9MCxyPU10LzMsbj1Qbih0KSxhPW4oZSxyKTtyZXR1cm4gYS5wYXJhbGxlbHM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/bihlPXRbMF0qTXQvMTgwLHI9dFsxXSpNdC8xODApOltlL010KjE4MCxyL010KjE4MF19LGF9ZnVuY3Rpb24gbG4odCxlKXt2YXIgcj1NYXRoLnNpbih0KSxuPShyK01hdGguc2luKGUpKS8yLGE9MStyKigyKm4tciksaT1NYXRoLnNxcnQoYSkvbjtmdW5jdGlvbiBvKHQsZSl7dmFyIHI9TWF0aC5zcXJ0KGEtMipuKk1hdGguc2luKGUpKS9uO3JldHVybltyKk1hdGguc2luKHQqPW4pLGktcipNYXRoLmNvcyh0KV19cmV0dXJuIG8uaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9aS1lO3JldHVybltNYXRoLmF0YW4yKHQscikvbixJdCgoYS0odCp0K3IqcikqbipuKS8oMipuKSldfSxvfXQuZ2VvLmNsaXBFeHRlbnQ9ZnVuY3Rpb24oKXt2YXIgdCxlLHIsbixhLGksbz17c3RyZWFtOmZ1bmN0aW9uKHQpe3JldHVybiBhJiYoYS52YWxpZD0hMSksKGE9aSh0KSkudmFsaWQ9ITAsYX0sZXh0ZW50OmZ1bmN0aW9uKHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW9uKHQ9K3NbMF1bMF0sZT0rc1swXVsxXSxyPStzWzFdWzBdLG49K3NbMV1bMV0pLGEmJihhLnZhbGlkPSExLGE9bnVsbCksbyk6W1t0LGVdLFtyLG5dXX19O3JldHVybiBvLmV4dGVudChbWzAsMF0sWzk2MCw1MDBdXSl9LCh0Lmdlby5jb25pY0VxdWFsQXJlYT1mdW5jdGlvbigpe3JldHVybiBzbihsbil9KS5yYXc9bG4sdC5nZW8uYWxiZXJzPWZ1bmN0aW9uKCl7cmV0dXJuIHQuZ2VvLmNvbmljRXF1YWxBcmVhKCkucm90YXRlKFs5NiwwXSkuY2VudGVyKFstLjYsMzguN10pLnBhcmFsbGVscyhbMjkuNSw0NS41XSkuc2NhbGUoMTA3MCl9LHQuZ2VvLmFsYmVyc1VzYT1mdW5jdGlvbigpe3ZhciBlLHIsbixhLGk9dC5nZW8uYWxiZXJzKCksbz10Lmdlby5jb25pY0VxdWFsQXJlYSgpLnJvdGF0ZShbMTU0LDBdKS5jZW50ZXIoWy0yLDU4LjVdKS5wYXJhbGxlbHMoWzU1LDY1XSkscz10Lmdlby5jb25pY0VxdWFsQXJlYSgpLnJvdGF0ZShbMTU3LDBdKS5jZW50ZXIoWy0zLDE5LjldKS5wYXJhbGxlbHMoWzgsMThdKSxsPXtwb2ludDpmdW5jdGlvbih0LHIpe2U9W3Qscl19fTtmdW5jdGlvbiBjKHQpe3ZhciBpPXRbMF0sbz10WzFdO3JldHVybiBlPW51bGwscihpLG8pLGV8fChuKGksbyksZSl8fGEoaSxvKSxlfXJldHVybiBjLmludmVydD1mdW5jdGlvbih0KXt2YXIgZT1pLnNjYWxlKCkscj1pLnRyYW5zbGF0ZSgpLG49KHRbMF0tclswXSkvZSxhPSh0WzFdLXJbMV0pL2U7cmV0dXJuKGE+PS4xMiYmYTwuMjM0JiZuPj0tLjQyNSYmbjwtLjIxND9vOmE+PS4xNjYmJmE8LjIzNCYmbj49LS4yMTQmJm48LS4xMTU/czppKS5pbnZlcnQodCl9LGMuc3RyZWFtPWZ1bmN0aW9uKHQpe3ZhciBlPWkuc3RyZWFtKHQpLHI9by5zdHJlYW0odCksbj1zLnN0cmVhbSh0KTtyZXR1cm57cG9pbnQ6ZnVuY3Rpb24odCxhKXtlLnBvaW50KHQsYSksci5wb2ludCh0LGEpLG4ucG9pbnQodCxhKX0sc3BoZXJlOmZ1bmN0aW9uKCl7ZS5zcGhlcmUoKSxyLnNwaGVyZSgpLG4uc3BoZXJlKCl9LGxpbmVTdGFydDpmdW5jdGlvbigpe2UubGluZVN0YXJ0KCksci5saW5lU3RhcnQoKSxuLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7ZS5saW5lRW5kKCksci5saW5lRW5kKCksbi5saW5lRW5kKCl9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2UucG9seWdvblN0YXJ0KCksci5wb2x5Z29uU3RhcnQoKSxuLnBvbHlnb25TdGFydCgpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7ZS5wb2x5Z29uRW5kKCksci5wb2x5Z29uRW5kKCksbi5wb2x5Z29uRW5kKCl9fX0sYy5wcmVjaXNpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGkucHJlY2lzaW9uKHQpLG8ucHJlY2lzaW9uKHQpLHMucHJlY2lzaW9uKHQpLGMpOmkucHJlY2lzaW9uKCl9LGMuc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGkuc2NhbGUodCksby5zY2FsZSguMzUqdCkscy5zY2FsZSh0KSxjLnRyYW5zbGF0ZShpLnRyYW5zbGF0ZSgpKSk6aS5zY2FsZSgpfSxjLnRyYW5zbGF0ZT1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gaS50cmFuc2xhdGUoKTt2YXIgZT1pLnNjYWxlKCksdT0rdFswXSxoPSt0WzFdO3JldHVybiByPWkudHJhbnNsYXRlKHQpLmNsaXBFeHRlbnQoW1t1LS40NTUqZSxoLS4yMzgqZV0sW3UrLjQ1NSplLGgrLjIzOCplXV0pLnN0cmVhbShsKS5wb2ludCxuPW8udHJhbnNsYXRlKFt1LS4zMDcqZSxoKy4yMDEqZV0pLmNsaXBFeHRlbnQoW1t1LS40MjUqZStrdCxoKy4xMiplK2t0XSxbdS0uMjE0KmUta3QsaCsuMjM0KmUta3RdXSkuc3RyZWFtKGwpLnBvaW50LGE9cy50cmFuc2xhdGUoW3UtLjIwNSplLGgrLjIxMiplXSkuY2xpcEV4dGVudChbW3UtLjIxNCplK2t0LGgrLjE2NiplK2t0XSxbdS0uMTE1KmUta3QsaCsuMjM0KmUta3RdXSkuc3RyZWFtKGwpLnBvaW50LGN9LGMuc2NhbGUoMTA3MCl9O3ZhciBjbix1bixobixmbixwbixkbixnbj17cG9pbnQ6RCxsaW5lU3RhcnQ6RCxsaW5lRW5kOkQscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dW49MCxnbi5saW5lU3RhcnQ9dm59LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtnbi5saW5lU3RhcnQ9Z24ubGluZUVuZD1nbi5wb2ludD1ELGNuKz15KHVuLzIpfX07ZnVuY3Rpb24gdm4oKXt2YXIgdCxlLHIsbjtmdW5jdGlvbiBhKHQsZSl7dW4rPW4qdC1yKmUscj10LG49ZX1nbi5wb2ludD1mdW5jdGlvbihpLG8pe2duLnBvaW50PWEsdD1yPWksZT1uPW99LGduLmxpbmVFbmQ9ZnVuY3Rpb24oKXthKHQsZSl9fXZhciBtbj17cG9pbnQ6ZnVuY3Rpb24odCxlKXt0PGhuJiYoaG49dCk7dD5wbiYmKHBuPXQpO2U8Zm4mJihmbj1lKTtlPmRuJiYoZG49ZSl9LGxpbmVTdGFydDpELGxpbmVFbmQ6RCxwb2x5Z29uU3RhcnQ6RCxwb2x5Z29uRW5kOkR9O2Z1bmN0aW9uIHluKCl7dmFyIHQ9eG4oNC41KSxlPVtdLHI9e3BvaW50Om4sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7ci5wb2ludD1hfSxsaW5lRW5kOm8scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7ci5saW5lRW5kPXN9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtyLmxpbmVFbmQ9byxyLnBvaW50PW59LHBvaW50UmFkaXVzOmZ1bmN0aW9uKGUpe3JldHVybiB0PXhuKGUpLHJ9LHJlc3VsdDpmdW5jdGlvbigpe2lmKGUubGVuZ3RoKXt2YXIgdD1lLmpvaW4oIiIpO3JldHVybiBlPVtdLHR9fX07ZnVuY3Rpb24gbihyLG4pe2UucHVzaCgiTSIsciwiLCIsbix0KX1mdW5jdGlvbiBhKHQsbil7ZS5wdXNoKCJNIix0LCIsIixuKSxyLnBvaW50PWl9ZnVuY3Rpb24gaSh0LHIpe2UucHVzaCgiTCIsdCwiLCIscil9ZnVuY3Rpb24gbygpe3IucG9pbnQ9bn1mdW5jdGlvbiBzKCl7ZS5wdXNoKCJaIil9cmV0dXJuIHJ9ZnVuY3Rpb24geG4odCl7cmV0dXJuIm0wLCIrdCsiYSIrdCsiLCIrdCsiIDAgMSwxIDAsIistMip0KyJhIit0KyIsIit0KyIgMCAxLDEgMCwiKzIqdCsieiJ9dmFyIGJuLF9uPXtwb2ludDp3bixsaW5lU3RhcnQ6a24sbGluZUVuZDpUbixwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtfbi5saW5lU3RhcnQ9TW59LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtfbi5wb2ludD13bixfbi5saW5lU3RhcnQ9a24sX24ubGluZUVuZD1Ubn19O2Z1bmN0aW9uIHduKHQsZSl7X3IrPXQsd3IrPWUsKytrcn1mdW5jdGlvbiBrbigpe3ZhciB0LGU7ZnVuY3Rpb24gcihyLG4pe3ZhciBhPXItdCxpPW4tZSxvPU1hdGguc3FydChhKmEraSppKTtUcis9byoodCtyKS8yLE1yKz1vKihlK24pLzIsQXIrPW8sd24odD1yLGU9bil9X24ucG9pbnQ9ZnVuY3Rpb24obixhKXtfbi5wb2ludD1yLHduKHQ9bixlPWEpfX1mdW5jdGlvbiBUbigpe19uLnBvaW50PXdufWZ1bmN0aW9uIE1uKCl7dmFyIHQsZSxyLG47ZnVuY3Rpb24gYSh0LGUpe3ZhciBhPXQtcixpPWUtbixvPU1hdGguc3FydChhKmEraSppKTtUcis9byoocit0KS8yLE1yKz1vKihuK2UpLzIsQXIrPW8sU3IrPShvPW4qdC1yKmUpKihyK3QpLEVyKz1vKihuK2UpLExyKz0zKm8sd24ocj10LG49ZSl9X24ucG9pbnQ9ZnVuY3Rpb24oaSxvKXtfbi5wb2ludD1hLHduKHQ9cj1pLGU9bj1vKX0sX24ubGluZUVuZD1mdW5jdGlvbigpe2EodCxlKX19ZnVuY3Rpb24gQW4odCl7dmFyIGU9NC41LHI9e3BvaW50Om4sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7ci5wb2ludD1hfSxsaW5lRW5kOm8scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7ci5saW5lRW5kPXN9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtyLmxpbmVFbmQ9byxyLnBvaW50PW59LHBvaW50UmFkaXVzOmZ1bmN0aW9uKHQpe3JldHVybiBlPXQscn0scmVzdWx0OkR9O2Z1bmN0aW9uIG4ocixuKXt0Lm1vdmVUbyhyK2UsbiksdC5hcmMocixuLGUsMCxBdCl9ZnVuY3Rpb24gYShlLG4pe3QubW92ZVRvKGUsbiksci5wb2ludD1pfWZ1bmN0aW9uIGkoZSxyKXt0LmxpbmVUbyhlLHIpfWZ1bmN0aW9uIG8oKXtyLnBvaW50PW59ZnVuY3Rpb24gcygpe3QuY2xvc2VQYXRoKCl9cmV0dXJuIHJ9ZnVuY3Rpb24gU24odCl7dmFyIGU9LjUscj1NYXRoLmNvcygzMCpMdCksbj0xNjtmdW5jdGlvbiBhKGUpe3JldHVybihuP2Z1bmN0aW9uKGUpe3ZhciByLGEsbyxzLGwsYyx1LGgsZixwLGQsZyx2PXtwb2ludDptLGxpbmVTdGFydDp5LGxpbmVFbmQ6Yixwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtlLnBvbHlnb25TdGFydCgpLHYubGluZVN0YXJ0PV99LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtlLnBvbHlnb25FbmQoKSx2LmxpbmVTdGFydD15fX07ZnVuY3Rpb24gbShyLG4pe3I9dChyLG4pLGUucG9pbnQoclswXSxyWzFdKX1mdW5jdGlvbiB5KCl7aD1OYU4sdi5wb2ludD14LGUubGluZVN0YXJ0KCl9ZnVuY3Rpb24geChyLGEpe3ZhciBvPXpyKFtyLGFdKSxzPXQocixhKTtpKGgsZix1LHAsZCxnLGg9c1swXSxmPXNbMV0sdT1yLHA9b1swXSxkPW9bMV0sZz1vWzJdLG4sZSksZS5wb2ludChoLGYpfWZ1bmN0aW9uIGIoKXt2LnBvaW50PW0sZS5saW5lRW5kKCl9ZnVuY3Rpb24gXygpe3koKSx2LnBvaW50PXcsdi5saW5lRW5kPWt9ZnVuY3Rpb24gdyh0LGUpe3gocj10LGUpLGE9aCxvPWYscz1wLGw9ZCxjPWcsdi5wb2ludD14fWZ1bmN0aW9uIGsoKXtpKGgsZix1LHAsZCxnLGEsbyxyLHMsbCxjLG4sZSksdi5saW5lRW5kPWIsYigpfXJldHVybiB2fTpmdW5jdGlvbihlKXtyZXR1cm4gTG4oZSxmdW5jdGlvbihyLG4pe3I9dChyLG4pLGUucG9pbnQoclswXSxyWzFdKX0pfSkoZSl9ZnVuY3Rpb24gaShuLGEsbyxzLGwsYyx1LGgsZixwLGQsZyx2LG0pe3ZhciB4PXUtbixiPWgtYSxfPXgqeCtiKmI7aWYoXz40KmUmJnYtLSl7dmFyIHc9cytwLGs9bCtkLFQ9YytnLE09TWF0aC5zcXJ0KHcqdytrKmsrVCpUKSxBPU1hdGguYXNpbihULz1NKSxTPXkoeShUKS0xKTxrdHx8eShvLWYpPGt0PyhvK2YpLzI6TWF0aC5hdGFuMihrLHcpLEU9dChTLEEpLEw9RVswXSxDPUVbMV0sUD1MLW4sTz1DLWEsej1iKlAteCpPOyh6KnovXz5lfHx5KCh4KlArYipPKS9fLS41KT4uM3x8cypwK2wqZCtjKmc8cikmJihpKG4sYSxvLHMsbCxjLEwsQyxTLHcvPU0say89TSxULHYsbSksbS5wb2ludChMLEMpLGkoTCxDLFMsdyxrLFQsdSxoLGYscCxkLGcsdixtKSl9fXJldHVybiBhLnByZWNpc2lvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0oZT10KnQpPjAmJjE2LGEpOk1hdGguc3FydChlKX0sYX1mdW5jdGlvbiBFbih0KXt0aGlzLnN0cmVhbT10fWZ1bmN0aW9uIExuKHQsZSl7cmV0dXJue3BvaW50OmUsc3BoZXJlOmZ1bmN0aW9uKCl7dC5zcGhlcmUoKX0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dC5saW5lU3RhcnQoKX0sbGluZUVuZDpmdW5jdGlvbigpe3QubGluZUVuZCgpfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXt0LnBvbHlnb25TdGFydCgpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dC5wb2x5Z29uRW5kKCl9fX1mdW5jdGlvbiBDbih0KXtyZXR1cm4gUG4oZnVuY3Rpb24oKXtyZXR1cm4gdH0pKCl9ZnVuY3Rpb24gUG4oZSl7dmFyIHIsbixhLGksbyxzLGw9U24oZnVuY3Rpb24odCxlKXtyZXR1cm5bKHQ9cih0LGUpKVswXSpjK2ksby10WzFdKmNdfSksYz0xNTAsdT00ODAsaD0yNTAsZj0wLHA9MCxkPTAsZz0wLHY9MCxtPXJuLHg9UCxiPW51bGwsXz1udWxsO2Z1bmN0aW9uIHcodCl7cmV0dXJuWyh0PWEodFswXSpMdCx0WzFdKkx0KSlbMF0qYytpLG8tdFsxXSpjXX1mdW5jdGlvbiBrKHQpe3JldHVybih0PWEuaW52ZXJ0KCh0WzBdLWkpL2MsKG8tdFsxXSkvYykpJiZbdFswXSpDdCx0WzFdKkN0XX1mdW5jdGlvbiBUKCl7YT1XcihuPURuKGQsZyx2KSxyKTt2YXIgdD1yKGYscCk7cmV0dXJuIGk9dS10WzBdKmMsbz1oK3RbMV0qYyxNKCl9ZnVuY3Rpb24gTSgpe3JldHVybiBzJiYocy52YWxpZD0hMSxzPW51bGwpLHd9cmV0dXJuIHcuc3RyZWFtPWZ1bmN0aW9uKHQpe3JldHVybiBzJiYocy52YWxpZD0hMSksKHM9T24obShuLGwoeCh0KSkpKSkudmFsaWQ9ITAsc30sdy5jbGlwQW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG09bnVsbD09dD8oYj10LHJuKTpmdW5jdGlvbih0KXt2YXIgZT1NYXRoLmNvcyh0KSxyPWU+MCxuPXkoZSk+a3Q7cmV0dXJuIFFyKGEsZnVuY3Rpb24odCl7dmFyIGUscyxsLGMsdTtyZXR1cm57bGluZVN0YXJ0OmZ1bmN0aW9uKCl7Yz1sPSExLHU9MX0scG9pbnQ6ZnVuY3Rpb24oaCxmKXt2YXIgcCxkPVtoLGZdLGc9YShoLGYpLHY9cj9nPzA6byhoLGYpOmc/byhoKyhoPDA/TXQ6LU10KSxmKTowO2lmKCFlJiYoYz1sPWcpJiZ0LmxpbmVTdGFydCgpLGchPT1sJiYocD1pKGUsZCksKGpyKGUscCl8fGpyKGQscCkpJiYoZFswXSs9a3QsZFsxXSs9a3QsZz1hKGRbMF0sZFsxXSkpKSxnIT09bCl1PTAsZz8odC5saW5lU3RhcnQoKSxwPWkoZCxlKSx0LnBvaW50KHBbMF0scFsxXSkpOihwPWkoZSxkKSx0LnBvaW50KHBbMF0scFsxXSksdC5saW5lRW5kKCkpLGU9cDtlbHNlIGlmKG4mJmUmJnJeZyl7dmFyIG07diZzfHwhKG09aShkLGUsITApKXx8KHU9MCxyPyh0LmxpbmVTdGFydCgpLHQucG9pbnQobVswXVswXSxtWzBdWzFdKSx0LnBvaW50KG1bMV1bMF0sbVsxXVsxXSksdC5saW5lRW5kKCkpOih0LnBvaW50KG1bMV1bMF0sbVsxXVsxXSksdC5saW5lRW5kKCksdC5saW5lU3RhcnQoKSx0LnBvaW50KG1bMF1bMF0sbVswXVsxXSkpKX0hZ3x8ZSYmanIoZSxkKXx8dC5wb2ludChkWzBdLGRbMV0pLGU9ZCxsPWcscz12fSxsaW5lRW5kOmZ1bmN0aW9uKCl7bCYmdC5saW5lRW5kKCksZT1udWxsfSxjbGVhbjpmdW5jdGlvbigpe3JldHVybiB1fChjJiZsKTw8MX19fSxObih0LDYqTHQpLHI/WzAsLXRdOlstTXQsdC1NdF0pO2Z1bmN0aW9uIGEodCxyKXtyZXR1cm4gTWF0aC5jb3ModCkqTWF0aC5jb3Mocik+ZX1mdW5jdGlvbiBpKHQscixuKXt2YXIgYT1bMSwwLDBdLGk9RHIoenIodCksenIocikpLG89SXIoaSxpKSxzPWlbMF0sbD1vLXMqcztpZighbClyZXR1cm4hbiYmdDt2YXIgYz1lKm8vbCx1PS1lKnMvbCxoPURyKGEsaSksZj1GcihhLGMpO1JyKGYsRnIoaSx1KSk7dmFyIHA9aCxkPUlyKGYscCksZz1JcihwLHApLHY9ZCpkLWcqKElyKGYsZiktMSk7aWYoISh2PDApKXt2YXIgbT1NYXRoLnNxcnQodikseD1GcihwLCgtZC1tKS9nKTtpZihScih4LGYpLHg9TnIoeCksIW4pcmV0dXJuIHg7dmFyIGIsXz10WzBdLHc9clswXSxrPXRbMV0sVD1yWzFdO3c8XyYmKGI9XyxfPXcsdz1iKTt2YXIgTT13LV8sQT15KE0tTXQpPGt0O2lmKCFBJiZUPGsmJihiPWssaz1ULFQ9YiksQXx8TTxrdD9BP2srVD4wXnhbMV08KHkoeFswXS1fKTxrdD9rOlQpOms8PXhbMV0mJnhbMV08PVQ6TT5NdF4oXzw9eFswXSYmeFswXTw9dykpe3ZhciBTPUZyKHAsKC1kK20pL2cpO3JldHVybiBScihTLGYpLFt4LE5yKFMpXX19fWZ1bmN0aW9uIG8oZSxuKXt2YXIgYT1yP3Q6TXQtdCxpPTA7cmV0dXJuIGU8LWE/aXw9MTplPmEmJihpfD0yKSxuPC1hP2l8PTQ6bj5hJiYoaXw9OCksaX19KChiPSt0KSpMdCksTSgpKTpifSx3LmNsaXBFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KF89dCx4PXQ/b24odFswXVswXSx0WzBdWzFdLHRbMV1bMF0sdFsxXVsxXSk6UCxNKCkpOl99LHcuc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9K3QsVCgpKTpjfSx3LnRyYW5zbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT0rdFswXSxoPSt0WzFdLFQoKSk6W3UsaF19LHcuY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPXRbMF0lMzYwKkx0LHA9dFsxXSUzNjAqTHQsVCgpKTpbZipDdCxwKkN0XX0sdy5yb3RhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGQ9dFswXSUzNjAqTHQsZz10WzFdJTM2MCpMdCx2PXQubGVuZ3RoPjI/dFsyXSUzNjAqTHQ6MCxUKCkpOltkKkN0LGcqQ3QsdipDdF19LHQucmViaW5kKHcsbCwicHJlY2lzaW9uIiksZnVuY3Rpb24oKXtyZXR1cm4gcj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx3LmludmVydD1yLmludmVydCYmayxUKCl9fWZ1bmN0aW9uIE9uKHQpe3JldHVybiBMbih0LGZ1bmN0aW9uKGUscil7dC5wb2ludChlKkx0LHIqTHQpfSl9ZnVuY3Rpb24gem4odCxlKXtyZXR1cm5bdCxlXX1mdW5jdGlvbiBJbih0LGUpe3JldHVyblt0Pk10P3QtQXQ6dDwtTXQ/dCtBdDp0LGVdfWZ1bmN0aW9uIERuKHQsZSxyKXtyZXR1cm4gdD9lfHxyP1dyKEZuKHQpLEJuKGUscikpOkZuKHQpOmV8fHI/Qm4oZSxyKTpJbn1mdW5jdGlvbiBSbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxyKXtyZXR1cm5bKGUrPXQpPk10P2UtQXQ6ZTwtTXQ/ZStBdDplLHJdfX1mdW5jdGlvbiBGbih0KXt2YXIgZT1Sbih0KTtyZXR1cm4gZS5pbnZlcnQ9Um4oLXQpLGV9ZnVuY3Rpb24gQm4odCxlKXt2YXIgcj1NYXRoLmNvcyh0KSxuPU1hdGguc2luKHQpLGE9TWF0aC5jb3MoZSksaT1NYXRoLnNpbihlKTtmdW5jdGlvbiBvKHQsZSl7dmFyIG89TWF0aC5jb3MoZSkscz1NYXRoLmNvcyh0KSpvLGw9TWF0aC5zaW4odCkqbyxjPU1hdGguc2luKGUpLHU9YypyK3MqbjtyZXR1cm5bTWF0aC5hdGFuMihsKmEtdSppLHMqci1jKm4pLEl0KHUqYStsKmkpXX1yZXR1cm4gby5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgbz1NYXRoLmNvcyhlKSxzPU1hdGguY29zKHQpKm8sbD1NYXRoLnNpbih0KSpvLGM9TWF0aC5zaW4oZSksdT1jKmEtbCppO3JldHVybltNYXRoLmF0YW4yKGwqYStjKmkscypyK3UqbiksSXQodSpyLXMqbildfSxvfWZ1bmN0aW9uIE5uKHQsZSl7dmFyIHI9TWF0aC5jb3ModCksbj1NYXRoLnNpbih0KTtyZXR1cm4gZnVuY3Rpb24oYSxpLG8scyl7dmFyIGw9byplO251bGwhPWE/KGE9am4ocixhKSxpPWpuKHIsaSksKG8+MD9hPGk6YT5pKSYmKGErPW8qQXQpKTooYT10K28qQXQsaT10LS41KmwpO2Zvcih2YXIgYyx1PWE7bz4wP3U+aTp1PGk7dS09bClzLnBvaW50KChjPU5yKFtyLC1uKk1hdGguY29zKHUpLC1uKk1hdGguc2luKHUpXSkpWzBdLGNbMV0pfX1mdW5jdGlvbiBqbih0LGUpe3ZhciByPXpyKGUpO3JbMF0tPXQsQnIocik7dmFyIG49enQoLXJbMV0pO3JldHVybigoLXJbMl08MD8tbjpuKSsyKk1hdGguUEkta3QpJSgyKk1hdGguUEkpfWZ1bmN0aW9uIFZuKGUscixuKXt2YXIgYT10LnJhbmdlKGUsci1rdCxuKS5jb25jYXQocik7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBhLm1hcChmdW5jdGlvbihlKXtyZXR1cm5bdCxlXX0pfX1mdW5jdGlvbiBVbihlLHIsbil7dmFyIGE9dC5yYW5nZShlLHIta3QsbikuY29uY2F0KHIpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gYS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuW2UsdF19KX19ZnVuY3Rpb24gcW4odCl7cmV0dXJuIHQuc291cmNlfWZ1bmN0aW9uIEhuKHQpe3JldHVybiB0LnRhcmdldH10Lmdlby5wYXRoPWZ1bmN0aW9uKCl7dmFyIGUscixuLGEsaSxvPTQuNTtmdW5jdGlvbiBzKGUpe3JldHVybiBlJiYoImZ1bmN0aW9uIj09dHlwZW9mIG8mJmEucG9pbnRSYWRpdXMoK28uYXBwbHkodGhpcyxhcmd1bWVudHMpKSxpJiZpLnZhbGlkfHwoaT1uKGEpKSx0Lmdlby5zdHJlYW0oZSxpKSksYS5yZXN1bHQoKX1mdW5jdGlvbiBsKCl7cmV0dXJuIGk9bnVsbCxzfXJldHVybiBzLmFyZWE9ZnVuY3Rpb24oZSl7cmV0dXJuIGNuPTAsdC5nZW8uc3RyZWFtKGUsbihnbikpLGNufSxzLmNlbnRyb2lkPWZ1bmN0aW9uKGUpe3JldHVybiBfcj13cj1rcj1Ucj1Ncj1Bcj1Tcj1Fcj1Mcj0wLHQuZ2VvLnN0cmVhbShlLG4oX24pKSxMcj9bU3IvTHIsRXIvTHJdOkFyP1tUci9BcixNci9Bcl06a3I/W19yL2tyLHdyL2tyXTpbTmFOLE5hTl19LHMuYm91bmRzPWZ1bmN0aW9uKGUpe3JldHVybiBwbj1kbj0tKGhuPWZuPTEvMCksdC5nZW8uc3RyZWFtKGUsbihtbikpLFtbaG4sZm5dLFtwbixkbl1dfSxzLnByb2plY3Rpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49KGU9dCk/dC5zdHJlYW18fChyPXQsYT1TbihmdW5jdGlvbih0LGUpe3JldHVybiByKFt0KkN0LGUqQ3RdKX0pLGZ1bmN0aW9uKHQpe3JldHVybiBPbihhKHQpKX0pOlAsbCgpKTplO3ZhciByLGF9LHMuY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1udWxsPT0ocj10KT9uZXcgeW46bmV3IEFuKHQpLCJmdW5jdGlvbiIhPXR5cGVvZiBvJiZhLnBvaW50UmFkaXVzKG8pLGwoKSk6cn0scy5wb2ludFJhZGl1cz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OihhLnBvaW50UmFkaXVzKCt0KSwrdCkscyk6b30scy5wcm9qZWN0aW9uKHQuZ2VvLmFsYmVyc1VzYSgpKS5jb250ZXh0KG51bGwpfSx0Lmdlby50cmFuc2Zvcm09ZnVuY3Rpb24odCl7cmV0dXJue3N0cmVhbTpmdW5jdGlvbihlKXt2YXIgcj1uZXcgRW4oZSk7Zm9yKHZhciBuIGluIHQpcltuXT10W25dO3JldHVybiByfX19LEVuLnByb3RvdHlwZT17cG9pbnQ6ZnVuY3Rpb24odCxlKXt0aGlzLnN0cmVhbS5wb2ludCh0LGUpfSxzcGhlcmU6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5zcGhlcmUoKX0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5saW5lRW5kKCl9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLnBvbHlnb25TdGFydCgpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ucG9seWdvbkVuZCgpfX0sdC5nZW8ucHJvamVjdGlvbj1Dbix0Lmdlby5wcm9qZWN0aW9uTXV0YXRvcj1QbiwodC5nZW8uZXF1aXJlY3Rhbmd1bGFyPWZ1bmN0aW9uKCl7cmV0dXJuIENuKHpuKX0pLnJhdz16bi5pbnZlcnQ9em4sdC5nZW8ucm90YXRpb249ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXtyZXR1cm4oZT10KGVbMF0qTHQsZVsxXSpMdCkpWzBdKj1DdCxlWzFdKj1DdCxlfXJldHVybiB0PURuKHRbMF0lMzYwKkx0LHRbMV0qTHQsdC5sZW5ndGg+Mj90WzJdKkx0OjApLGUuaW52ZXJ0PWZ1bmN0aW9uKGUpe3JldHVybihlPXQuaW52ZXJ0KGVbMF0qTHQsZVsxXSpMdCkpWzBdKj1DdCxlWzFdKj1DdCxlfSxlfSxJbi5pbnZlcnQ9em4sdC5nZW8uY2lyY2xlPWZ1bmN0aW9uKCl7dmFyIHQsZSxyPVswLDBdLG49NjtmdW5jdGlvbiBhKCl7dmFyIHQ9ImZ1bmN0aW9uIj09dHlwZW9mIHI/ci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6cixuPURuKC10WzBdKkx0LC10WzFdKkx0LDApLmludmVydCxhPVtdO3JldHVybiBlKG51bGwsbnVsbCwxLHtwb2ludDpmdW5jdGlvbih0LGUpe2EucHVzaCh0PW4odCxlKSksdFswXSo9Q3QsdFsxXSo9Q3R9fSkse3R5cGU6IlBvbHlnb24iLGNvb3JkaW5hdGVzOlthXX19cmV0dXJuIGEub3JpZ2luPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsYSk6cn0sYS5hbmdsZT1mdW5jdGlvbihyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1ObigodD0rcikqTHQsbipMdCksYSk6dH0sYS5wcmVjaXNpb249ZnVuY3Rpb24ocil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9Tm4odCpMdCwobj0rcikqTHQpLGEpOm59LGEuYW5nbGUoOTApfSx0Lmdlby5kaXN0YW5jZT1mdW5jdGlvbih0LGUpe3ZhciByLG49KGVbMF0tdFswXSkqTHQsYT10WzFdKkx0LGk9ZVsxXSpMdCxvPU1hdGguc2luKG4pLHM9TWF0aC5jb3MobiksbD1NYXRoLnNpbihhKSxjPU1hdGguY29zKGEpLHU9TWF0aC5zaW4oaSksaD1NYXRoLmNvcyhpKTtyZXR1cm4gTWF0aC5hdGFuMihNYXRoLnNxcnQoKHI9aCpvKSpyKyhyPWMqdS1sKmgqcykqciksbCp1K2MqaCpzKX0sdC5nZW8uZ3JhdGljdWxlPWZ1bmN0aW9uKCl7dmFyIGUscixuLGEsaSxvLHMsbCxjLHUsaCxmLHA9MTAsZD1wLGc9OTAsdj0zNjAsbT0yLjU7ZnVuY3Rpb24geCgpe3JldHVybnt0eXBlOiJNdWx0aUxpbmVTdHJpbmciLGNvb3JkaW5hdGVzOmIoKX19ZnVuY3Rpb24gYigpe3JldHVybiB0LnJhbmdlKE1hdGguY2VpbChhL2cpKmcsbixnKS5tYXAoaCkuY29uY2F0KHQucmFuZ2UoTWF0aC5jZWlsKGwvdikqdixzLHYpLm1hcChmKSkuY29uY2F0KHQucmFuZ2UoTWF0aC5jZWlsKHIvcCkqcCxlLHApLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4geSh0JWcpPmt0fSkubWFwKGMpKS5jb25jYXQodC5yYW5nZShNYXRoLmNlaWwoby9kKSpkLGksZCkuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB5KHQldik+a3R9KS5tYXAodSkpfXJldHVybiB4LmxpbmVzPWZ1bmN0aW9uKCl7cmV0dXJuIGIoKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJue3R5cGU6IkxpbmVTdHJpbmciLGNvb3JkaW5hdGVzOnR9fSl9LHgub3V0bGluZT1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJQb2x5Z29uIixjb29yZGluYXRlczpbaChhKS5jb25jYXQoZihzKS5zbGljZSgxKSxoKG4pLnJldmVyc2UoKS5zbGljZSgxKSxmKGwpLnJldmVyc2UoKS5zbGljZSgxKSldfX0seC5leHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/eC5tYWpvckV4dGVudCh0KS5taW5vckV4dGVudCh0KTp4Lm1pbm9yRXh0ZW50KCl9LHgubWFqb3JFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9K3RbMF1bMF0sbj0rdFsxXVswXSxsPSt0WzBdWzFdLHM9K3RbMV1bMV0sYT5uJiYodD1hLGE9bixuPXQpLGw+cyYmKHQ9bCxsPXMscz10KSx4LnByZWNpc2lvbihtKSk6W1thLGxdLFtuLHNdXX0seC5taW5vckV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0rdFswXVswXSxlPSt0WzFdWzBdLG89K3RbMF1bMV0saT0rdFsxXVsxXSxyPmUmJih0PXIscj1lLGU9dCksbz5pJiYodD1vLG89aSxpPXQpLHgucHJlY2lzaW9uKG0pKTpbW3Isb10sW2UsaV1dfSx4LnN0ZXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/eC5tYWpvclN0ZXAodCkubWlub3JTdGVwKHQpOngubWlub3JTdGVwKCl9LHgubWFqb3JTdGVwPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhnPSt0WzBdLHY9K3RbMV0seCk6W2csdl19LHgubWlub3JTdGVwPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhwPSt0WzBdLGQ9K3RbMV0seCk6W3AsZF19LHgucHJlY2lzaW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhtPSt0LGM9Vm4obyxpLDkwKSx1PVVuKHIsZSxtKSxoPVZuKGwscyw5MCksZj1VbihhLG4sbSkseCk6bX0seC5tYWpvckV4dGVudChbWy0xODAsLTkwK2t0XSxbMTgwLDkwLWt0XV0pLm1pbm9yRXh0ZW50KFtbLTE4MCwtODAta3RdLFsxODAsODAra3RdXSl9LHQuZ2VvLmdyZWF0QXJjPWZ1bmN0aW9uKCl7dmFyIGUscixuPXFuLGE9SG47ZnVuY3Rpb24gaSgpe3JldHVybnt0eXBlOiJMaW5lU3RyaW5nIixjb29yZGluYXRlczpbZXx8bi5hcHBseSh0aGlzLGFyZ3VtZW50cykscnx8YS5hcHBseSh0aGlzLGFyZ3VtZW50cyldfX1yZXR1cm4gaS5kaXN0YW5jZT1mdW5jdGlvbigpe3JldHVybiB0Lmdlby5kaXN0YW5jZShlfHxuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxyfHxhLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGkuc291cmNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXQsZT0iZnVuY3Rpb24iPT10eXBlb2YgdD9udWxsOnQsaSk6bn0saS50YXJnZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9dCxyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P251bGw6dCxpKTphfSxpLnByZWNpc2lvbj1mdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2k6MH0saX0sdC5nZW8uaW50ZXJwb2xhdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gcj10WzBdKkx0LG49dFsxXSpMdCxhPWVbMF0qTHQsaT1lWzFdKkx0LG89TWF0aC5jb3Mobikscz1NYXRoLnNpbihuKSxsPU1hdGguY29zKGkpLGM9TWF0aC5zaW4oaSksdT1vKk1hdGguY29zKHIpLGg9bypNYXRoLnNpbihyKSxmPWwqTWF0aC5jb3MoYSkscD1sKk1hdGguc2luKGEpLGQ9MipNYXRoLmFzaW4oTWF0aC5zcXJ0KFJ0KGktbikrbypsKlJ0KGEtcikpKSxnPTEvTWF0aC5zaW4oZCksKHY9ZD9mdW5jdGlvbih0KXt2YXIgZT1NYXRoLnNpbih0Kj1kKSpnLHI9TWF0aC5zaW4oZC10KSpnLG49cip1K2UqZixhPXIqaCtlKnAsaT1yKnMrZSpjO3JldHVybltNYXRoLmF0YW4yKGEsbikqQ3QsTWF0aC5hdGFuMihpLE1hdGguc3FydChuKm4rYSphKSkqQ3RdfTpmdW5jdGlvbigpe3JldHVybltyKkN0LG4qQ3RdfSkuZGlzdGFuY2U9ZCx2O3ZhciByLG4sYSxpLG8scyxsLGMsdSxoLGYscCxkLGcsdn0sdC5nZW8ubGVuZ3RoPWZ1bmN0aW9uKGUpe3JldHVybiBibj0wLHQuZ2VvLnN0cmVhbShlLEduKSxibn07dmFyIEduPXtzcGhlcmU6RCxwb2ludDpELGxpbmVTdGFydDpmdW5jdGlvbigpe3ZhciB0LGUscjtmdW5jdGlvbiBuKG4sYSl7dmFyIGk9TWF0aC5zaW4oYSo9THQpLG89TWF0aC5jb3MoYSkscz15KChuKj1MdCktdCksbD1NYXRoLmNvcyhzKTtibis9TWF0aC5hdGFuMihNYXRoLnNxcnQoKHM9bypNYXRoLnNpbihzKSkqcysocz1yKmktZSpvKmwpKnMpLGUqaStyKm8qbCksdD1uLGU9aSxyPW99R24ucG9pbnQ9ZnVuY3Rpb24oYSxpKXt0PWEqTHQsZT1NYXRoLnNpbihpKj1MdCkscj1NYXRoLmNvcyhpKSxHbi5wb2ludD1ufSxHbi5saW5lRW5kPWZ1bmN0aW9uKCl7R24ucG9pbnQ9R24ubGluZUVuZD1EfX0sbGluZUVuZDpELHBvbHlnb25TdGFydDpELHBvbHlnb25FbmQ6RH07ZnVuY3Rpb24gWW4odCxlKXtmdW5jdGlvbiByKGUscil7dmFyIG49TWF0aC5jb3MoZSksYT1NYXRoLmNvcyhyKSxpPXQobiphKTtyZXR1cm5baSphKk1hdGguc2luKGUpLGkqTWF0aC5zaW4ocildfXJldHVybiByLmludmVydD1mdW5jdGlvbih0LHIpe3ZhciBuPU1hdGguc3FydCh0KnQrcipyKSxhPWUobiksaT1NYXRoLnNpbihhKSxvPU1hdGguY29zKGEpO3JldHVybltNYXRoLmF0YW4yKHQqaSxuKm8pLE1hdGguYXNpbihuJiZyKmkvbildfSxyfXZhciBXbj1ZbihmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5zcXJ0KDIvKDErdCkpfSxmdW5jdGlvbih0KXtyZXR1cm4gMipNYXRoLmFzaW4odC8yKX0pOyh0Lmdlby5hemltdXRoYWxFcXVhbEFyZWE9ZnVuY3Rpb24oKXtyZXR1cm4gQ24oV24pfSkucmF3PVduO3ZhciBYbj1ZbihmdW5jdGlvbih0KXt2YXIgZT1NYXRoLmFjb3ModCk7cmV0dXJuIGUmJmUvTWF0aC5zaW4oZSl9LFApO2Z1bmN0aW9uIFpuKHQsZSl7dmFyIHI9TWF0aC5jb3ModCksbj1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC50YW4oTXQvNCt0LzIpfSxhPXQ9PT1lP01hdGguc2luKHQpOk1hdGgubG9nKHIvTWF0aC5jb3MoZSkpL01hdGgubG9nKG4oZSkvbih0KSksaT1yKk1hdGgucG93KG4odCksYSkvYTtpZighYSlyZXR1cm4gUW47ZnVuY3Rpb24gbyh0LGUpe2k+MD9lPC1FdCtrdCYmKGU9LUV0K2t0KTplPkV0LWt0JiYoZT1FdC1rdCk7dmFyIHI9aS9NYXRoLnBvdyhuKGUpLGEpO3JldHVybltyKk1hdGguc2luKGEqdCksaS1yKk1hdGguY29zKGEqdCldfXJldHVybiBvLmludmVydD1mdW5jdGlvbih0LGUpe3ZhciByPWktZSxuPVB0KGEpKk1hdGguc3FydCh0KnQrcipyKTtyZXR1cm5bTWF0aC5hdGFuMih0LHIpL2EsMipNYXRoLmF0YW4oTWF0aC5wb3coaS9uLDEvYSkpLUV0XX0sb31mdW5jdGlvbiBKbih0LGUpe3ZhciByPU1hdGguY29zKHQpLG49dD09PWU/TWF0aC5zaW4odCk6KHItTWF0aC5jb3MoZSkpLyhlLXQpLGE9ci9uK3Q7aWYoeShuKTxrdClyZXR1cm4gem47ZnVuY3Rpb24gaSh0LGUpe3ZhciByPWEtZTtyZXR1cm5bcipNYXRoLnNpbihuKnQpLGEtcipNYXRoLmNvcyhuKnQpXX1yZXR1cm4gaS5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1hLWU7cmV0dXJuW01hdGguYXRhbjIodCxyKS9uLGEtUHQobikqTWF0aC5zcXJ0KHQqdCtyKnIpXX0saX0odC5nZW8uYXppbXV0aGFsRXF1aWRpc3RhbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gQ24oWG4pfSkucmF3PVhuLCh0Lmdlby5jb25pY0NvbmZvcm1hbD1mdW5jdGlvbigpe3JldHVybiBzbihabil9KS5yYXc9Wm4sKHQuZ2VvLmNvbmljRXF1aWRpc3RhbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gc24oSm4pfSkucmF3PUpuO3ZhciBLbj1ZbihmdW5jdGlvbih0KXtyZXR1cm4gMS90fSxNYXRoLmF0YW4pO2Z1bmN0aW9uIFFuKHQsZSl7cmV0dXJuW3QsTWF0aC5sb2coTWF0aC50YW4oTXQvNCtlLzIpKV19ZnVuY3Rpb24gJG4odCl7dmFyIGUscj1Dbih0KSxuPXIuc2NhbGUsYT1yLnRyYW5zbGF0ZSxpPXIuY2xpcEV4dGVudDtyZXR1cm4gci5zY2FsZT1mdW5jdGlvbigpe3ZhciB0PW4uYXBwbHkocixhcmd1bWVudHMpO3JldHVybiB0PT09cj9lP3IuY2xpcEV4dGVudChudWxsKTpyOnR9LHIudHJhbnNsYXRlPWZ1bmN0aW9uKCl7dmFyIHQ9YS5hcHBseShyLGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT1yP2U/ci5jbGlwRXh0ZW50KG51bGwpOnI6dH0sci5jbGlwRXh0ZW50PWZ1bmN0aW9uKHQpe3ZhciBvPWkuYXBwbHkocixhcmd1bWVudHMpO2lmKG89PT1yKXtpZihlPW51bGw9PXQpe3ZhciBzPU10Km4oKSxsPWEoKTtpKFtbbFswXS1zLGxbMV0tc10sW2xbMF0rcyxsWzFdK3NdXSl9fWVsc2UgZSYmKG89bnVsbCk7cmV0dXJuIG99LHIuY2xpcEV4dGVudChudWxsKX0odC5nZW8uZ25vbW9uaWM9ZnVuY3Rpb24oKXtyZXR1cm4gQ24oS24pfSkucmF3PUtuLFFuLmludmVydD1mdW5jdGlvbih0LGUpe3JldHVyblt0LDIqTWF0aC5hdGFuKE1hdGguZXhwKGUpKS1FdF19LCh0Lmdlby5tZXJjYXRvcj1mdW5jdGlvbigpe3JldHVybiAkbihRbil9KS5yYXc9UW47dmFyIHRhPVluKGZ1bmN0aW9uKCl7cmV0dXJuIDF9LE1hdGguYXNpbik7KHQuZ2VvLm9ydGhvZ3JhcGhpYz1mdW5jdGlvbigpe3JldHVybiBDbih0YSl9KS5yYXc9dGE7dmFyIGVhPVluKGZ1bmN0aW9uKHQpe3JldHVybiAxLygxK3QpfSxmdW5jdGlvbih0KXtyZXR1cm4gMipNYXRoLmF0YW4odCl9KTtmdW5jdGlvbiByYSh0LGUpe3JldHVybltNYXRoLmxvZyhNYXRoLnRhbihNdC80K2UvMikpLC10XX1mdW5jdGlvbiBuYSh0KXtyZXR1cm4gdFswXX1mdW5jdGlvbiBhYSh0KXtyZXR1cm4gdFsxXX1mdW5jdGlvbiBpYSh0KXtmb3IodmFyIGU9dC5sZW5ndGgscj1bMCwxXSxuPTIsYT0yO2E8ZTthKyspe2Zvcig7bj4xJiZPdCh0W3Jbbi0yXV0sdFtyW24tMV1dLHRbYV0pPD0wOyktLW47cltuKytdPWF9cmV0dXJuIHIuc2xpY2UoMCxuKX1mdW5jdGlvbiBvYSh0LGUpe3JldHVybiB0WzBdLWVbMF18fHRbMV0tZVsxXX0odC5nZW8uc3RlcmVvZ3JhcGhpYz1mdW5jdGlvbigpe3JldHVybiBDbihlYSl9KS5yYXc9ZWEscmEuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuWy1lLDIqTWF0aC5hdGFuKE1hdGguZXhwKHQpKS1FdF19LCh0Lmdlby50cmFuc3ZlcnNlTWVyY2F0b3I9ZnVuY3Rpb24oKXt2YXIgdD0kbihyYSksZT10LmNlbnRlcixyPXQucm90YXRlO3JldHVybiB0LmNlbnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gdD9lKFstdFsxXSx0WzBdXSk6Wyh0PWUoKSlbMV0sLXRbMF1dfSx0LnJvdGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdD9yKFt0WzBdLHRbMV0sdC5sZW5ndGg+Mj90WzJdKzkwOjkwXSk6Wyh0PXIoKSlbMF0sdFsxXSx0WzJdLTkwXX0scihbMCwwLDkwXSl9KS5yYXc9cmEsdC5nZW9tPXt9LHQuZ2VvbS5odWxsPWZ1bmN0aW9uKHQpe3ZhciBlPW5hLHI9YWE7aWYoYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gbih0KTtmdW5jdGlvbiBuKHQpe2lmKHQubGVuZ3RoPDMpcmV0dXJuW107dmFyIG4sYT12ZShlKSxpPXZlKHIpLG89dC5sZW5ndGgscz1bXSxsPVtdO2ZvcihuPTA7bjxvO24rKylzLnB1c2goWythLmNhbGwodGhpcyx0W25dLG4pLCtpLmNhbGwodGhpcyx0W25dLG4pLG5dKTtmb3Iocy5zb3J0KG9hKSxuPTA7bjxvO24rKylsLnB1c2goW3Nbbl1bMF0sLXNbbl1bMV1dKTt2YXIgYz1pYShzKSx1PWlhKGwpLGg9dVswXT09PWNbMF0sZj11W3UubGVuZ3RoLTFdPT09Y1tjLmxlbmd0aC0xXSxwPVtdO2ZvcihuPWMubGVuZ3RoLTE7bj49MDstLW4pcC5wdXNoKHRbc1tjW25dXVsyXV0pO2ZvcihuPStoO248dS5sZW5ndGgtZjsrK24pcC5wdXNoKHRbc1t1W25dXVsyXV0pO3JldHVybiBwfXJldHVybiBuLng9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxuKTplfSxuLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dCxuKTpyfSxufSx0Lmdlb20ucG9seWdvbj1mdW5jdGlvbih0KXtyZXR1cm4gVSh0LHNhKSx0fTt2YXIgc2E9dC5nZW9tLnBvbHlnb24ucHJvdG90eXBlPVtdO2Z1bmN0aW9uIGxhKHQsZSxyKXtyZXR1cm4oclswXS1lWzBdKSoodFsxXS1lWzFdKTwoclsxXS1lWzFdKSoodFswXS1lWzBdKX1mdW5jdGlvbiBjYSh0LGUscixuKXt2YXIgYT10WzBdLGk9clswXSxvPWVbMF0tYSxzPW5bMF0taSxsPXRbMV0sYz1yWzFdLHU9ZVsxXS1sLGg9blsxXS1jLGY9KHMqKGwtYyktaCooYS1pKSkvKGgqby1zKnUpO3JldHVyblthK2YqbyxsK2YqdV19ZnVuY3Rpb24gdWEodCl7dmFyIGU9dFswXSxyPXRbdC5sZW5ndGgtMV07cmV0dXJuIShlWzBdLXJbMF18fGVbMV0tclsxXSl9c2EuYXJlYT1mdW5jdGlvbigpe2Zvcih2YXIgdCxlPS0xLHI9dGhpcy5sZW5ndGgsbj10aGlzW3ItMV0sYT0wOysrZTxyOyl0PW4sbj10aGlzW2VdLGErPXRbMV0qblswXS10WzBdKm5bMV07cmV0dXJuLjUqYX0sc2EuY2VudHJvaWQ9ZnVuY3Rpb24odCl7dmFyIGUscixuPS0xLGE9dGhpcy5sZW5ndGgsaT0wLG89MCxzPXRoaXNbYS0xXTtmb3IoYXJndW1lbnRzLmxlbmd0aHx8KHQ9LTEvKDYqdGhpcy5hcmVhKCkpKTsrK248YTspZT1zLHM9dGhpc1tuXSxyPWVbMF0qc1sxXS1zWzBdKmVbMV0saSs9KGVbMF0rc1swXSkqcixvKz0oZVsxXStzWzFdKSpyO3JldHVybltpKnQsbyp0XX0sc2EuY2xpcD1mdW5jdGlvbih0KXtmb3IodmFyIGUscixuLGEsaSxvLHM9dWEodCksbD0tMSxjPXRoaXMubGVuZ3RoLXVhKHRoaXMpLHU9dGhpc1tjLTFdOysrbDxjOyl7Zm9yKGU9dC5zbGljZSgpLHQubGVuZ3RoPTAsYT10aGlzW2xdLGk9ZVsobj1lLmxlbmd0aC1zKS0xXSxyPS0xOysrcjxuOylsYShvPWVbcl0sdSxhKT8obGEoaSx1LGEpfHx0LnB1c2goY2EoaSxvLHUsYSkpLHQucHVzaChvKSk6bGEoaSx1LGEpJiZ0LnB1c2goY2EoaSxvLHUsYSkpLGk9bztzJiZ0LnB1c2godFswXSksdT1hfXJldHVybiB0fTt2YXIgaGEsZmEscGEsZGEsZ2EsdmE9W10sbWE9W107ZnVuY3Rpb24geWEoKXtSYSh0aGlzKSx0aGlzLmVkZ2U9dGhpcy5zaXRlPXRoaXMuY2lyY2xlPW51bGx9ZnVuY3Rpb24geGEodCl7dmFyIGU9dmEucG9wKCl8fG5ldyB5YTtyZXR1cm4gZS5zaXRlPXQsZX1mdW5jdGlvbiBiYSh0KXtMYSh0KSxwYS5yZW1vdmUodCksdmEucHVzaCh0KSxSYSh0KX1mdW5jdGlvbiBfYSh0KXt2YXIgZT10LmNpcmNsZSxyPWUueCxuPWUuY3ksYT17eDpyLHk6bn0saT10LlAsbz10Lk4scz1bdF07YmEodCk7Zm9yKHZhciBsPWk7bC5jaXJjbGUmJnkoci1sLmNpcmNsZS54KTxrdCYmeShuLWwuY2lyY2xlLmN5KTxrdDspaT1sLlAscy51bnNoaWZ0KGwpLGJhKGwpLGw9aTtzLnVuc2hpZnQobCksTGEobCk7Zm9yKHZhciBjPW87Yy5jaXJjbGUmJnkoci1jLmNpcmNsZS54KTxrdCYmeShuLWMuY2lyY2xlLmN5KTxrdDspbz1jLk4scy5wdXNoKGMpLGJhKGMpLGM9bztzLnB1c2goYyksTGEoYyk7dmFyIHUsaD1zLmxlbmd0aDtmb3IodT0xO3U8aDsrK3UpYz1zW3VdLGw9c1t1LTFdLHphKGMuZWRnZSxsLnNpdGUsYy5zaXRlLGEpO2w9c1swXSwoYz1zW2gtMV0pLmVkZ2U9T2EobC5zaXRlLGMuc2l0ZSxudWxsLGEpLEVhKGwpLEVhKGMpfWZ1bmN0aW9uIHdhKHQpe2Zvcih2YXIgZSxyLG4sYSxpPXQueCxvPXQueSxzPXBhLl87czspaWYoKG49a2EocyxvKS1pKT5rdClzPXMuTDtlbHNle2lmKCEoKGE9aS1UYShzLG8pKT5rdCkpe24+LWt0PyhlPXMuUCxyPXMpOmE+LWt0PyhlPXMscj1zLk4pOmU9cj1zO2JyZWFrfWlmKCFzLlIpe2U9czticmVha31zPXMuUn12YXIgbD14YSh0KTtpZihwYS5pbnNlcnQoZSxsKSxlfHxyKXtpZihlPT09cilyZXR1cm4gTGEoZSkscj14YShlLnNpdGUpLHBhLmluc2VydChsLHIpLGwuZWRnZT1yLmVkZ2U9T2EoZS5zaXRlLGwuc2l0ZSksRWEoZSksdm9pZCBFYShyKTtpZihyKXtMYShlKSxMYShyKTt2YXIgYz1lLnNpdGUsdT1jLngsaD1jLnksZj10LngtdSxwPXQueS1oLGQ9ci5zaXRlLGc9ZC54LXUsdj1kLnktaCxtPTIqKGYqdi1wKmcpLHk9ZipmK3AqcCx4PWcqZyt2KnYsYj17eDoodip5LXAqeCkvbSt1LHk6KGYqeC1nKnkpL20raH07emEoci5lZGdlLGMsZCxiKSxsLmVkZ2U9T2EoYyx0LG51bGwsYiksci5lZGdlPU9hKHQsZCxudWxsLGIpLEVhKGUpLEVhKHIpfWVsc2UgbC5lZGdlPU9hKGUuc2l0ZSxsLnNpdGUpfX1mdW5jdGlvbiBrYSh0LGUpe3ZhciByPXQuc2l0ZSxuPXIueCxhPXIueSxpPWEtZTtpZighaSlyZXR1cm4gbjt2YXIgbz10LlA7aWYoIW8pcmV0dXJuLTEvMDt2YXIgcz0ocj1vLnNpdGUpLngsbD1yLnksYz1sLWU7aWYoIWMpcmV0dXJuIHM7dmFyIHU9cy1uLGg9MS9pLTEvYyxmPXUvYztyZXR1cm4gaD8oLWYrTWF0aC5zcXJ0KGYqZi0yKmgqKHUqdS8oLTIqYyktbCtjLzIrYS1pLzIpKSkvaCtuOihuK3MpLzJ9ZnVuY3Rpb24gVGEodCxlKXt2YXIgcj10Lk47aWYocilyZXR1cm4ga2EocixlKTt2YXIgbj10LnNpdGU7cmV0dXJuIG4ueT09PWU/bi54OjEvMH1mdW5jdGlvbiBNYSh0KXt0aGlzLnNpdGU9dCx0aGlzLmVkZ2VzPVtdfWZ1bmN0aW9uIEFhKHQsZSl7cmV0dXJuIGUuYW5nbGUtdC5hbmdsZX1mdW5jdGlvbiBTYSgpe1JhKHRoaXMpLHRoaXMueD10aGlzLnk9dGhpcy5hcmM9dGhpcy5zaXRlPXRoaXMuY3k9bnVsbH1mdW5jdGlvbiBFYSh0KXt2YXIgZT10LlAscj10Lk47aWYoZSYmcil7dmFyIG49ZS5zaXRlLGE9dC5zaXRlLGk9ci5zaXRlO2lmKG4hPT1pKXt2YXIgbz1hLngscz1hLnksbD1uLngtbyxjPW4ueS1zLHU9aS54LW8saD0yKihsKih2PWkueS1zKS1jKnUpO2lmKCEoaD49LVR0KSl7dmFyIGY9bCpsK2MqYyxwPXUqdSt2KnYsZD0odipmLWMqcCkvaCxnPShsKnAtdSpmKS9oLHY9ZytzLG09bWEucG9wKCl8fG5ldyBTYTttLmFyYz10LG0uc2l0ZT1hLG0ueD1kK28sbS55PXYrTWF0aC5zcXJ0KGQqZCtnKmcpLG0uY3k9dix0LmNpcmNsZT1tO2Zvcih2YXIgeT1udWxsLHg9Z2EuXzt4OylpZihtLnk8eC55fHxtLnk9PT14LnkmJm0ueDw9eC54KXtpZigheC5MKXt5PXguUDticmVha314PXguTH1lbHNle2lmKCF4LlIpe3k9eDticmVha314PXguUn1nYS5pbnNlcnQoeSxtKSx5fHwoZGE9bSl9fX19ZnVuY3Rpb24gTGEodCl7dmFyIGU9dC5jaXJjbGU7ZSYmKGUuUHx8KGRhPWUuTiksZ2EucmVtb3ZlKGUpLG1hLnB1c2goZSksUmEoZSksdC5jaXJjbGU9bnVsbCl9ZnVuY3Rpb24gQ2EodCxlKXt2YXIgcj10LmI7aWYocilyZXR1cm4hMDt2YXIgbixhLGk9dC5hLG89ZVswXVswXSxzPWVbMV1bMF0sbD1lWzBdWzFdLGM9ZVsxXVsxXSx1PXQubCxoPXQucixmPXUueCxwPXUueSxkPWgueCxnPWgueSx2PShmK2QpLzIsbT0ocCtnKS8yO2lmKGc9PT1wKXtpZih2PG98fHY+PXMpcmV0dXJuO2lmKGY+ZCl7aWYoaSl7aWYoaS55Pj1jKXJldHVybn1lbHNlIGk9e3g6dix5Omx9O3I9e3g6dix5OmN9fWVsc2V7aWYoaSl7aWYoaS55PGwpcmV0dXJufWVsc2UgaT17eDp2LHk6Y307cj17eDp2LHk6bH19fWVsc2UgaWYoYT1tLShuPShmLWQpLyhnLXApKSp2LG48LTF8fG4+MSlpZihmPmQpe2lmKGkpe2lmKGkueT49YylyZXR1cm59ZWxzZSBpPXt4OihsLWEpL24seTpsfTtyPXt4OihjLWEpL24seTpjfX1lbHNle2lmKGkpe2lmKGkueTxsKXJldHVybn1lbHNlIGk9e3g6KGMtYSkvbix5OmN9O3I9e3g6KGwtYSkvbix5Omx9fWVsc2UgaWYocDxnKXtpZihpKXtpZihpLng+PXMpcmV0dXJufWVsc2UgaT17eDpvLHk6bipvK2F9O3I9e3g6cyx5Om4qcythfX1lbHNle2lmKGkpe2lmKGkueDxvKXJldHVybn1lbHNlIGk9e3g6cyx5Om4qcythfTtyPXt4Om8seTpuKm8rYX19cmV0dXJuIHQuYT1pLHQuYj1yLCEwfWZ1bmN0aW9uIFBhKHQsZSl7dGhpcy5sPXQsdGhpcy5yPWUsdGhpcy5hPXRoaXMuYj1udWxsfWZ1bmN0aW9uIE9hKHQsZSxyLG4pe3ZhciBhPW5ldyBQYSh0LGUpO3JldHVybiBoYS5wdXNoKGEpLHImJnphKGEsdCxlLHIpLG4mJnphKGEsZSx0LG4pLGZhW3QuaV0uZWRnZXMucHVzaChuZXcgSWEoYSx0LGUpKSxmYVtlLmldLmVkZ2VzLnB1c2gobmV3IElhKGEsZSx0KSksYX1mdW5jdGlvbiB6YSh0LGUscixuKXt0LmF8fHQuYj90Lmw9PT1yP3QuYj1uOnQuYT1uOih0LmE9bix0Lmw9ZSx0LnI9cil9ZnVuY3Rpb24gSWEodCxlLHIpe3ZhciBuPXQuYSxhPXQuYjt0aGlzLmVkZ2U9dCx0aGlzLnNpdGU9ZSx0aGlzLmFuZ2xlPXI/TWF0aC5hdGFuMihyLnktZS55LHIueC1lLngpOnQubD09PWU/TWF0aC5hdGFuMihhLngtbi54LG4ueS1hLnkpOk1hdGguYXRhbjIobi54LWEueCxhLnktbi55KX1mdW5jdGlvbiBEYSgpe3RoaXMuXz1udWxsfWZ1bmN0aW9uIFJhKHQpe3QuVT10LkM9dC5MPXQuUj10LlA9dC5OPW51bGx9ZnVuY3Rpb24gRmEodCxlKXt2YXIgcj1lLG49ZS5SLGE9ci5VO2E/YS5MPT09cj9hLkw9bjphLlI9bjp0Ll89bixuLlU9YSxyLlU9bixyLlI9bi5MLHIuUiYmKHIuUi5VPXIpLG4uTD1yfWZ1bmN0aW9uIEJhKHQsZSl7dmFyIHI9ZSxuPWUuTCxhPXIuVTthP2EuTD09PXI/YS5MPW46YS5SPW46dC5fPW4sbi5VPWEsci5VPW4sci5MPW4uUixyLkwmJihyLkwuVT1yKSxuLlI9cn1mdW5jdGlvbiBOYSh0KXtmb3IoO3QuTDspdD10Lkw7cmV0dXJuIHR9ZnVuY3Rpb24gamEodCxlKXt2YXIgcixuLGEsaT10LnNvcnQoVmEpLnBvcCgpO2ZvcihoYT1bXSxmYT1uZXcgQXJyYXkodC5sZW5ndGgpLHBhPW5ldyBEYSxnYT1uZXcgRGE7OylpZihhPWRhLGkmJighYXx8aS55PGEueXx8aS55PT09YS55JiZpLng8YS54KSlpLng9PT1yJiZpLnk9PT1ufHwoZmFbaS5pXT1uZXcgTWEoaSksd2EoaSkscj1pLngsbj1pLnkpLGk9dC5wb3AoKTtlbHNle2lmKCFhKWJyZWFrO19hKGEuYXJjKX1lJiYoZnVuY3Rpb24odCl7Zm9yKHZhciBlLHI9aGEsbj1ubih0WzBdWzBdLHRbMF1bMV0sdFsxXVswXSx0WzFdWzFdKSxhPXIubGVuZ3RoO2EtLTspKCFDYShlPXJbYV0sdCl8fCFuKGUpfHx5KGUuYS54LWUuYi54KTxrdCYmeShlLmEueS1lLmIueSk8a3QpJiYoZS5hPWUuYj1udWxsLHIuc3BsaWNlKGEsMSkpfShlKSxmdW5jdGlvbih0KXtmb3IodmFyIGUscixuLGEsaSxvLHMsbCxjLHUsaD10WzBdWzBdLGY9dFsxXVswXSxwPXRbMF1bMV0sZD10WzFdWzFdLGc9ZmEsdj1nLmxlbmd0aDt2LS07KWlmKChpPWdbdl0pJiZpLnByZXBhcmUoKSlmb3IobD0ocz1pLmVkZ2VzKS5sZW5ndGgsbz0wO288bDspbj0odT1zW29dLmVuZCgpKS54LGE9dS55LGU9KGM9c1srK28lbF0uc3RhcnQoKSkueCxyPWMueSwoeShuLWUpPmt0fHx5KGEtcik+a3QpJiYocy5zcGxpY2UobywwLG5ldyBJYSgobT1pLnNpdGUseD11LGI9eShuLWgpPGt0JiZkLWE+a3Q/e3g6aCx5OnkoZS1oKTxrdD9yOmR9OnkoYS1kKTxrdCYmZi1uPmt0P3t4Onkoci1kKTxrdD9lOmYseTpkfTp5KG4tZik8a3QmJmEtcD5rdD97eDpmLHk6eShlLWYpPGt0P3I6cH06eShhLXApPGt0JiZuLWg+a3Q/e3g6eShyLXApPGt0P2U6aCx5OnB9Om51bGwsXz12b2lkIDAsXz1uZXcgUGEobSxudWxsKSxfLmE9eCxfLmI9YixoYS5wdXNoKF8pLF8pLGkuc2l0ZSxudWxsKSksKytsKTt2YXIgbSx4LGIsX30oZSkpO3ZhciBvPXtjZWxsczpmYSxlZGdlczpoYX07cmV0dXJuIHBhPWdhPWhhPWZhPW51bGwsb31mdW5jdGlvbiBWYSh0LGUpe3JldHVybiBlLnktdC55fHxlLngtdC54fU1hLnByb3RvdHlwZS5wcmVwYXJlPWZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9dGhpcy5lZGdlcyxyPWUubGVuZ3RoO3ItLTspKHQ9ZVtyXS5lZGdlKS5iJiZ0LmF8fGUuc3BsaWNlKHIsMSk7cmV0dXJuIGUuc29ydChBYSksZS5sZW5ndGh9LElhLnByb3RvdHlwZT17c3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGdlLmw9PT10aGlzLnNpdGU/dGhpcy5lZGdlLmE6dGhpcy5lZGdlLmJ9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZ2UubD09PXRoaXMuc2l0ZT90aGlzLmVkZ2UuYjp0aGlzLmVkZ2UuYX19LERhLnByb3RvdHlwZT17aW5zZXJ0OmZ1bmN0aW9uKHQsZSl7dmFyIHIsbixhO2lmKHQpe2lmKGUuUD10LGUuTj10Lk4sdC5OJiYodC5OLlA9ZSksdC5OPWUsdC5SKXtmb3IodD10LlI7dC5MOyl0PXQuTDt0Lkw9ZX1lbHNlIHQuUj1lO3I9dH1lbHNlIHRoaXMuXz8odD1OYSh0aGlzLl8pLGUuUD1udWxsLGUuTj10LHQuUD10Lkw9ZSxyPXQpOihlLlA9ZS5OPW51bGwsdGhpcy5fPWUscj1udWxsKTtmb3IoZS5MPWUuUj1udWxsLGUuVT1yLGUuQz0hMCx0PWU7ciYmci5DOylyPT09KG49ci5VKS5MPyhhPW4uUikmJmEuQz8oci5DPWEuQz0hMSxuLkM9ITAsdD1uKToodD09PXIuUiYmKEZhKHRoaXMscikscj0odD1yKS5VKSxyLkM9ITEsbi5DPSEwLEJhKHRoaXMsbikpOihhPW4uTCkmJmEuQz8oci5DPWEuQz0hMSxuLkM9ITAsdD1uKToodD09PXIuTCYmKEJhKHRoaXMscikscj0odD1yKS5VKSxyLkM9ITEsbi5DPSEwLEZhKHRoaXMsbikpLHI9dC5VO3RoaXMuXy5DPSExfSxyZW1vdmU6ZnVuY3Rpb24odCl7dC5OJiYodC5OLlA9dC5QKSx0LlAmJih0LlAuTj10Lk4pLHQuTj10LlA9bnVsbDt2YXIgZSxyLG4sYT10LlUsaT10Lkwsbz10LlI7aWYocj1pP28/TmEobyk6aTpvLGE/YS5MPT09dD9hLkw9cjphLlI9cjp0aGlzLl89cixpJiZvPyhuPXIuQyxyLkM9dC5DLHIuTD1pLGkuVT1yLHIhPT1vPyhhPXIuVSxyLlU9dC5VLHQ9ci5SLGEuTD10LHIuUj1vLG8uVT1yKTooci5VPWEsYT1yLHQ9ci5SKSk6KG49dC5DLHQ9ciksdCYmKHQuVT1hKSwhbilpZih0JiZ0LkMpdC5DPSExO2Vsc2V7ZG97aWYodD09PXRoaXMuXylicmVhaztpZih0PT09YS5MKXtpZigoZT1hLlIpLkMmJihlLkM9ITEsYS5DPSEwLEZhKHRoaXMsYSksZT1hLlIpLGUuTCYmZS5MLkN8fGUuUiYmZS5SLkMpe2UuUiYmZS5SLkN8fChlLkwuQz0hMSxlLkM9ITAsQmEodGhpcyxlKSxlPWEuUiksZS5DPWEuQyxhLkM9ZS5SLkM9ITEsRmEodGhpcyxhKSx0PXRoaXMuXzticmVha319ZWxzZSBpZigoZT1hLkwpLkMmJihlLkM9ITEsYS5DPSEwLEJhKHRoaXMsYSksZT1hLkwpLGUuTCYmZS5MLkN8fGUuUiYmZS5SLkMpe2UuTCYmZS5MLkN8fChlLlIuQz0hMSxlLkM9ITAsRmEodGhpcyxlKSxlPWEuTCksZS5DPWEuQyxhLkM9ZS5MLkM9ITEsQmEodGhpcyxhKSx0PXRoaXMuXzticmVha31lLkM9ITAsdD1hLGE9YS5VfXdoaWxlKCF0LkMpO3QmJih0LkM9ITEpfX19LHQuZ2VvbS52b3Jvbm9pPWZ1bmN0aW9uKHQpe3ZhciBlPW5hLHI9YWEsbj1lLGE9cixpPVVhO2lmKHQpcmV0dXJuIG8odCk7ZnVuY3Rpb24gbyh0KXt2YXIgZT1uZXcgQXJyYXkodC5sZW5ndGgpLHI9aVswXVswXSxuPWlbMF1bMV0sYT1pWzFdWzBdLG89aVsxXVsxXTtyZXR1cm4gamEocyh0KSxpKS5jZWxscy5mb3JFYWNoKGZ1bmN0aW9uKGkscyl7dmFyIGw9aS5lZGdlcyxjPWkuc2l0ZTsoZVtzXT1sLmxlbmd0aD9sLm1hcChmdW5jdGlvbih0KXt2YXIgZT10LnN0YXJ0KCk7cmV0dXJuW2UueCxlLnldfSk6Yy54Pj1yJiZjLng8PWEmJmMueT49biYmYy55PD1vP1tbcixvXSxbYSxvXSxbYSxuXSxbcixuXV06W10pLnBvaW50PXRbc119KSxlfWZ1bmN0aW9uIHModCl7cmV0dXJuIHQubWFwKGZ1bmN0aW9uKHQsZSl7cmV0dXJue3g6TWF0aC5yb3VuZChuKHQsZSkva3QpKmt0LHk6TWF0aC5yb3VuZChhKHQsZSkva3QpKmt0LGk6ZX19KX1yZXR1cm4gby5saW5rcz1mdW5jdGlvbih0KXtyZXR1cm4gamEocyh0KSkuZWRnZXMuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0LmwmJnQucn0pLm1hcChmdW5jdGlvbihlKXtyZXR1cm57c291cmNlOnRbZS5sLmldLHRhcmdldDp0W2Uuci5pXX19KX0sby50cmlhbmdsZXM9ZnVuY3Rpb24odCl7dmFyIGU9W107cmV0dXJuIGphKHModCkpLmNlbGxzLmZvckVhY2goZnVuY3Rpb24ocixuKXtmb3IodmFyIGEsaSxvLHMsbD1yLnNpdGUsYz1yLmVkZ2VzLnNvcnQoQWEpLHU9LTEsaD1jLmxlbmd0aCxmPWNbaC0xXS5lZGdlLHA9Zi5sPT09bD9mLnI6Zi5sOysrdTxoOylmLGE9cCxwPShmPWNbdV0uZWRnZSkubD09PWw/Zi5yOmYubCxuPGEuaSYmbjxwLmkmJihvPWEscz1wLCgoaT1sKS54LXMueCkqKG8ueS1pLnkpLShpLngtby54KSoocy55LWkueSk8MCkmJmUucHVzaChbdFtuXSx0W2EuaV0sdFtwLmldXSl9KSxlfSxvLng9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dmUoZT10KSxvKTplfSxvLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9dmUocj10KSxvKTpyfSxvLmNsaXBFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bnVsbD09dD9VYTp0LG8pOmk9PT1VYT9udWxsOml9LG8uc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9vLmNsaXBFeHRlbnQodCYmW1swLDBdLHRdKTppPT09VWE/bnVsbDppJiZpWzFdfSxvfTt2YXIgVWE9W1stMWU2LC0xZTZdLFsxZTYsMWU2XV07ZnVuY3Rpb24gcWEodCl7cmV0dXJuIHQueH1mdW5jdGlvbiBIYSh0KXtyZXR1cm4gdC55fWZ1bmN0aW9uIEdhKGUscil7ZT10LnJnYihlKSxyPXQucmdiKHIpO3ZhciBuPWUucixhPWUuZyxpPWUuYixvPXIuci1uLHM9ci5nLWEsbD1yLmItaTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIiMiK2NlKE1hdGgucm91bmQobitvKnQpKStjZShNYXRoLnJvdW5kKGErcyp0KSkrY2UoTWF0aC5yb3VuZChpK2wqdCkpfX1mdW5jdGlvbiBZYSh0LGUpe3ZhciByLG49e30sYT17fTtmb3IociBpbiB0KXIgaW4gZT9uW3JdPUthKHRbcl0sZVtyXSk6YVtyXT10W3JdO2ZvcihyIGluIGUpciBpbiB0fHwoYVtyXT1lW3JdKTtyZXR1cm4gZnVuY3Rpb24odCl7Zm9yKHIgaW4gbilhW3JdPW5bcl0odCk7cmV0dXJuIGF9fWZ1bmN0aW9uIFdhKHQsZSl7cmV0dXJuIHQ9K3QsZT0rZSxmdW5jdGlvbihyKXtyZXR1cm4gdCooMS1yKStlKnJ9fWZ1bmN0aW9uIFhhKHQsZSl7dmFyIHIsbixhLGk9WmEubGFzdEluZGV4PUphLmxhc3RJbmRleD0wLG89LTEscz1bXSxsPVtdO2Zvcih0Kz0iIixlKz0iIjsocj1aYS5leGVjKHQpKSYmKG49SmEuZXhlYyhlKSk7KShhPW4uaW5kZXgpPmkmJihhPWUuc2xpY2UoaSxhKSxzW29dP3Nbb10rPWE6c1srK29dPWEpLChyPXJbMF0pPT09KG49blswXSk/c1tvXT9zW29dKz1uOnNbKytvXT1uOihzWysrb109bnVsbCxsLnB1c2goe2k6byx4OldhKHIsbil9KSksaT1KYS5sYXN0SW5kZXg7cmV0dXJuIGk8ZS5sZW5ndGgmJihhPWUuc2xpY2UoaSksc1tvXT9zW29dKz1hOnNbKytvXT1hKSxzLmxlbmd0aDwyP2xbMF0/KGU9bFswXS54LGZ1bmN0aW9uKHQpe3JldHVybiBlKHQpKyIifSk6ZnVuY3Rpb24oKXtyZXR1cm4gZX06KGU9bC5sZW5ndGgsZnVuY3Rpb24odCl7Zm9yKHZhciByLG49MDtuPGU7KytuKXNbKHI9bFtuXSkuaV09ci54KHQpO3JldHVybiBzLmpvaW4oIiIpfSl9dC5nZW9tLmRlbGF1bmF5PWZ1bmN0aW9uKGUpe3JldHVybiB0Lmdlb20udm9yb25vaSgpLnRyaWFuZ2xlcyhlKX0sdC5nZW9tLnF1YWR0cmVlPWZ1bmN0aW9uKHQsZSxyLG4sYSl7dmFyIGksbz1uYSxzPWFhO2lmKGk9YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gbz1xYSxzPUhhLDM9PT1pJiYoYT1yLG49ZSxyPWU9MCksbCh0KTtmdW5jdGlvbiBsKHQpe3ZhciBsLGMsdSxoLGYscCxkLGcsdixtPXZlKG8pLHg9dmUocyk7aWYobnVsbCE9ZSlwPWUsZD1yLGc9bix2PWE7ZWxzZSBpZihnPXY9LShwPWQ9MS8wKSxjPVtdLHU9W10sZj10Lmxlbmd0aCxpKWZvcihoPTA7aDxmOysraCkobD10W2hdKS54PHAmJihwPWwueCksbC55PGQmJihkPWwueSksbC54PmcmJihnPWwueCksbC55PnYmJih2PWwueSksYy5wdXNoKGwueCksdS5wdXNoKGwueSk7ZWxzZSBmb3IoaD0wO2g8ZjsrK2gpe3ZhciBiPSttKGw9dFtoXSxoKSxfPSt4KGwsaCk7YjxwJiYocD1iKSxfPGQmJihkPV8pLGI+ZyYmKGc9YiksXz52JiYodj1fKSxjLnB1c2goYiksdS5wdXNoKF8pfXZhciB3PWctcCxrPXYtZDtmdW5jdGlvbiBUKHQsZSxyLG4sYSxpLG8scyl7aWYoIWlzTmFOKHIpJiYhaXNOYU4obikpaWYodC5sZWFmKXt2YXIgbD10LngsYz10Lnk7aWYobnVsbCE9bClpZih5KGwtcikreShjLW4pPC4wMSlNKHQsZSxyLG4sYSxpLG8scyk7ZWxzZXt2YXIgdT10LnBvaW50O3QueD10Lnk9dC5wb2ludD1udWxsLE0odCx1LGwsYyxhLGksbyxzKSxNKHQsZSxyLG4sYSxpLG8scyl9ZWxzZSB0Lng9cix0Lnk9bix0LnBvaW50PWV9ZWxzZSBNKHQsZSxyLG4sYSxpLG8scyl9ZnVuY3Rpb24gTSh0LGUscixuLGEsaSxvLHMpe3ZhciBsPS41KihhK28pLGM9LjUqKGkrcyksdT1yPj1sLGg9bj49YyxmPWg8PDF8dTt0LmxlYWY9ITEsdT9hPWw6bz1sLGg/aT1jOnM9YyxUKHQ9dC5ub2Rlc1tmXXx8KHQubm9kZXNbZl09e2xlYWY6ITAsbm9kZXM6W10scG9pbnQ6bnVsbCx4Om51bGwseTpudWxsfSksZSxyLG4sYSxpLG8scyl9dz5rP3Y9ZCt3Omc9cCtrO3ZhciBBPXtsZWFmOiEwLG5vZGVzOltdLHBvaW50Om51bGwseDpudWxsLHk6bnVsbCxhZGQ6ZnVuY3Rpb24odCl7VChBLHQsK20odCwrK2gpLCt4KHQsaCkscCxkLGcsdil9fTtpZihBLnZpc2l0PWZ1bmN0aW9uKHQpeyFmdW5jdGlvbiB0KGUscixuLGEsaSxvKXtpZighZShyLG4sYSxpLG8pKXt2YXIgcz0uNSoobitpKSxsPS41KihhK28pLGM9ci5ub2RlcztjWzBdJiZ0KGUsY1swXSxuLGEscyxsKSxjWzFdJiZ0KGUsY1sxXSxzLGEsaSxsKSxjWzJdJiZ0KGUsY1syXSxuLGwscyxvKSxjWzNdJiZ0KGUsY1szXSxzLGwsaSxvKX19KHQsQSxwLGQsZyx2KX0sQS5maW5kPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbih0LGUscixuLGEsaSxvKXt2YXIgcyxsPTEvMDtyZXR1cm4gZnVuY3Rpb24gdChjLHUsaCxmLHApe2lmKCEodT5pfHxoPm98fGY8bnx8cDxhKSl7aWYoZD1jLnBvaW50KXt2YXIgZCxnPWUtYy54LHY9ci1jLnksbT1nKmcrdip2O2lmKG08bCl7dmFyIHk9TWF0aC5zcXJ0KGw9bSk7bj1lLXksYT1yLXksaT1lK3ksbz1yK3kscz1kfX1mb3IodmFyIHg9Yy5ub2RlcyxiPS41Kih1K2YpLF89LjUqKGgrcCksdz0ocj49Xyk8PDF8ZT49YixrPXcrNDt3PGs7Kyt3KWlmKGM9eFszJnddKXN3aXRjaCgzJncpe2Nhc2UgMDp0KGMsdSxoLGIsXyk7YnJlYWs7Y2FzZSAxOnQoYyxiLGgsZixfKTticmVhaztjYXNlIDI6dChjLHUsXyxiLHApO2JyZWFrO2Nhc2UgMzp0KGMsYixfLGYscCl9fX0odCxuLGEsaSxvKSxzfShBLHRbMF0sdFsxXSxwLGQsZyx2KX0saD0tMSxudWxsPT1lKXtmb3IoOysraDxmOylUKEEsdFtoXSxjW2hdLHVbaF0scCxkLGcsdik7LS1ofWVsc2UgdC5mb3JFYWNoKEEuYWRkKTtyZXR1cm4gYz11PXQ9bD1udWxsLEF9cmV0dXJuIGwueD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz10LGwpOm99LGwueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz10LGwpOnN9LGwuZXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhudWxsPT10P2U9cj1uPWE9bnVsbDooZT0rdFswXVswXSxyPSt0WzBdWzFdLG49K3RbMV1bMF0sYT0rdFsxXVsxXSksbCk6bnVsbD09ZT9udWxsOltbZSxyXSxbbixhXV19LGwuc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09dD9lPXI9bj1hPW51bGw6KGU9cj0wLG49K3RbMF0sYT0rdFsxXSksbCk6bnVsbD09ZT9udWxsOltuLWUsYS1yXX0sbH0sdC5pbnRlcnBvbGF0ZVJnYj1HYSx0LmludGVycG9sYXRlT2JqZWN0PVlhLHQuaW50ZXJwb2xhdGVOdW1iZXI9V2EsdC5pbnRlcnBvbGF0ZVN0cmluZz1YYTt2YXIgWmE9L1stK10/KD86XGQrXC4/XGQqfFwuP1xkKykoPzpbZUVdWy0rXT9cZCspPy9nLEphPW5ldyBSZWdFeHAoWmEuc291cmNlLCJnIik7ZnVuY3Rpb24gS2EoZSxyKXtmb3IodmFyIG4sYT10LmludGVycG9sYXRvcnMubGVuZ3RoOy0tYT49MCYmIShuPXQuaW50ZXJwb2xhdG9yc1thXShlLHIpKTspO3JldHVybiBufWZ1bmN0aW9uIFFhKHQsZSl7dmFyIHIsbj1bXSxhPVtdLGk9dC5sZW5ndGgsbz1lLmxlbmd0aCxzPU1hdGgubWluKHQubGVuZ3RoLGUubGVuZ3RoKTtmb3Iocj0wO3I8czsrK3Ipbi5wdXNoKEthKHRbcl0sZVtyXSkpO2Zvcig7cjxpOysrcilhW3JdPXRbcl07Zm9yKDtyPG87KytyKWFbcl09ZVtyXTtyZXR1cm4gZnVuY3Rpb24odCl7Zm9yKHI9MDtyPHM7KytyKWFbcl09bltyXSh0KTtyZXR1cm4gYX19dC5pbnRlcnBvbGF0ZT1LYSx0LmludGVycG9sYXRvcnM9W2Z1bmN0aW9uKHQsZSl7dmFyIHI9dHlwZW9mIGU7cmV0dXJuKCJzdHJpbmciPT09cj9nZS5oYXMoZS50b0xvd2VyQ2FzZSgpKXx8L14oI3xyZ2JcKHxoc2xcKCkvaS50ZXN0KGUpP0dhOlhhOmUgaW5zdGFuY2VvZiBWdD9HYTpBcnJheS5pc0FycmF5KGUpP1FhOiJvYmplY3QiPT09ciYmaXNOYU4oZSk/WWE6V2EpKHQsZSl9XSx0LmludGVycG9sYXRlQXJyYXk9UWE7dmFyICRhPWZ1bmN0aW9uKCl7cmV0dXJuIFB9LHRpPXQubWFwKHtsaW5lYXI6JGEscG9seTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgucG93KGUsdCl9fSxxdWFkOmZ1bmN0aW9uKCl7cmV0dXJuIGFpfSxjdWJpYzpmdW5jdGlvbigpe3JldHVybiBpaX0sc2luOmZ1bmN0aW9uKCl7cmV0dXJuIHNpfSxleHA6ZnVuY3Rpb24oKXtyZXR1cm4gbGl9LGNpcmNsZTpmdW5jdGlvbigpe3JldHVybiBjaX0sZWxhc3RpYzpmdW5jdGlvbih0LGUpe3ZhciByO2FyZ3VtZW50cy5sZW5ndGg8MiYmKGU9LjQ1KTthcmd1bWVudHMubGVuZ3RoP3I9ZS9BdCpNYXRoLmFzaW4oMS90KToodD0xLHI9ZS80KTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIDErdCpNYXRoLnBvdygyLC0xMCpuKSpNYXRoLnNpbigobi1yKSpBdC9lKX19LGJhY2s6ZnVuY3Rpb24odCl7dHx8KHQ9MS43MDE1OCk7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlKmUqKCh0KzEpKmUtdCl9fSxib3VuY2U6ZnVuY3Rpb24oKXtyZXR1cm4gdWl9fSksZWk9dC5tYXAoe2luOlAsb3V0OnJpLCJpbi1vdXQiOm5pLCJvdXQtaW4iOmZ1bmN0aW9uKHQpe3JldHVybiBuaShyaSh0KSl9fSk7ZnVuY3Rpb24gcmkodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiAxLXQoMS1lKX19ZnVuY3Rpb24gbmkodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybi41KihlPC41P3QoMiplKToyLXQoMi0yKmUpKX19ZnVuY3Rpb24gYWkodCl7cmV0dXJuIHQqdH1mdW5jdGlvbiBpaSh0KXtyZXR1cm4gdCp0KnR9ZnVuY3Rpb24gb2kodCl7aWYodDw9MClyZXR1cm4gMDtpZih0Pj0xKXJldHVybiAxO3ZhciBlPXQqdCxyPWUqdDtyZXR1cm4gNCoodDwuNT9yOjMqKHQtZSkrci0uNzUpfWZ1bmN0aW9uIHNpKHQpe3JldHVybiAxLU1hdGguY29zKHQqRXQpfWZ1bmN0aW9uIGxpKHQpe3JldHVybiBNYXRoLnBvdygyLDEwKih0LTEpKX1mdW5jdGlvbiBjaSh0KXtyZXR1cm4gMS1NYXRoLnNxcnQoMS10KnQpfWZ1bmN0aW9uIHVpKHQpe3JldHVybiB0PDEvMi43NT83LjU2MjUqdCp0OnQ8Mi8yLjc1PzcuNTYyNSoodC09MS41LzIuNzUpKnQrLjc1OnQ8Mi41LzIuNzU/Ny41NjI1Kih0LT0yLjI1LzIuNzUpKnQrLjkzNzU6Ny41NjI1Kih0LT0yLjYyNS8yLjc1KSp0Ky45ODQzNzV9ZnVuY3Rpb24gaGkodCxlKXtyZXR1cm4gZS09dCxmdW5jdGlvbihyKXtyZXR1cm4gTWF0aC5yb3VuZCh0K2Uqcil9fWZ1bmN0aW9uIGZpKHQpe3ZhciBlLHIsbixhPVt0LmEsdC5iXSxpPVt0LmMsdC5kXSxvPWRpKGEpLHM9cGkoYSxpKSxsPWRpKCgoZT1pKVswXSs9KG49LXMpKihyPWEpWzBdLGVbMV0rPW4qclsxXSxlKSl8fDA7YVswXSppWzFdPGlbMF0qYVsxXSYmKGFbMF0qPS0xLGFbMV0qPS0xLG8qPS0xLHMqPS0xKSx0aGlzLnJvdGF0ZT0obz9NYXRoLmF0YW4yKGFbMV0sYVswXSk6TWF0aC5hdGFuMigtaVswXSxpWzFdKSkqQ3QsdGhpcy50cmFuc2xhdGU9W3QuZSx0LmZdLHRoaXMuc2NhbGU9W28sbF0sdGhpcy5za2V3PWw/TWF0aC5hdGFuMihzLGwpKkN0OjB9ZnVuY3Rpb24gcGkodCxlKXtyZXR1cm4gdFswXSplWzBdK3RbMV0qZVsxXX1mdW5jdGlvbiBkaSh0KXt2YXIgZT1NYXRoLnNxcnQocGkodCx0KSk7cmV0dXJuIGUmJih0WzBdLz1lLHRbMV0vPWUpLGV9dC5lYXNlPWZ1bmN0aW9uKHQpe3ZhciBlLG49dC5pbmRleE9mKCItIiksYT1uPj0wP3Quc2xpY2UoMCxuKTp0LGk9bj49MD90LnNsaWNlKG4rMSk6ImluIjtyZXR1cm4gYT10aS5nZXQoYSl8fCRhLGk9ZWkuZ2V0KGkpfHxQLGU9aShhLmFwcGx5KG51bGwsci5jYWxsKGFyZ3VtZW50cywxKSkpLGZ1bmN0aW9uKHQpe3JldHVybiB0PD0wPzA6dD49MT8xOmUodCl9fSx0LmludGVycG9sYXRlSGNsPWZ1bmN0aW9uKGUscil7ZT10LmhjbChlKSxyPXQuaGNsKHIpO3ZhciBuPWUuaCxhPWUuYyxpPWUubCxvPXIuaC1uLHM9ci5jLWEsbD1yLmwtaTtpc05hTihzKSYmKHM9MCxhPWlzTmFOKGEpP3IuYzphKTtpc05hTihvKT8obz0wLG49aXNOYU4obik/ci5oOm4pOm8+MTgwP28tPTM2MDpvPC0xODAmJihvKz0zNjApO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gV3QobitvKnQsYStzKnQsaStsKnQpKyIifX0sdC5pbnRlcnBvbGF0ZUhzbD1mdW5jdGlvbihlLHIpe2U9dC5oc2woZSkscj10LmhzbChyKTt2YXIgbj1lLmgsYT1lLnMsaT1lLmwsbz1yLmgtbixzPXIucy1hLGw9ci5sLWk7aXNOYU4ocykmJihzPTAsYT1pc05hTihhKT9yLnM6YSk7aXNOYU4obyk/KG89MCxuPWlzTmFOKG4pP3IuaDpuKTpvPjE4MD9vLT0zNjA6bzwtMTgwJiYobys9MzYwKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIEh0KG4rbyp0LGErcyp0LGkrbCp0KSsiIn19LHQuaW50ZXJwb2xhdGVMYWI9ZnVuY3Rpb24oZSxyKXtlPXQubGFiKGUpLHI9dC5sYWIocik7dmFyIG49ZS5sLGE9ZS5hLGk9ZS5iLG89ci5sLW4scz1yLmEtYSxsPXIuYi1pO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gdGUobitvKnQsYStzKnQsaStsKnQpKyIifX0sdC5pbnRlcnBvbGF0ZVJvdW5kPWhpLHQudHJhbnNmb3JtPWZ1bmN0aW9uKGUpe3ZhciByPWEuY3JlYXRlRWxlbWVudE5TKHQubnMucHJlZml4LnN2ZywiZyIpO3JldHVybih0LnRyYW5zZm9ybT1mdW5jdGlvbih0KXtpZihudWxsIT10KXtyLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIix0KTt2YXIgZT1yLnRyYW5zZm9ybS5iYXNlVmFsLmNvbnNvbGlkYXRlKCl9cmV0dXJuIG5ldyBmaShlP2UubWF0cml4OmdpKX0pKGUpfSxmaS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4idHJhbnNsYXRlKCIrdGhpcy50cmFuc2xhdGUrIilyb3RhdGUoIit0aGlzLnJvdGF0ZSsiKXNrZXdYKCIrdGhpcy5za2V3KyIpc2NhbGUoIit0aGlzLnNjYWxlKyIpIn07dmFyIGdpPXthOjEsYjowLGM6MCxkOjEsZTowLGY6MH07ZnVuY3Rpb24gdmkodCl7cmV0dXJuIHQubGVuZ3RoP3QucG9wKCkrIiwiOiIifWZ1bmN0aW9uIG1pKGUscil7dmFyIG49W10sYT1bXTtyZXR1cm4gZT10LnRyYW5zZm9ybShlKSxyPXQudHJhbnNmb3JtKHIpLGZ1bmN0aW9uKHQsZSxyLG4pe2lmKHRbMF0hPT1lWzBdfHx0WzFdIT09ZVsxXSl7dmFyIGE9ci5wdXNoKCJ0cmFuc2xhdGUoIixudWxsLCIsIixudWxsLCIpIik7bi5wdXNoKHtpOmEtNCx4OldhKHRbMF0sZVswXSl9LHtpOmEtMix4OldhKHRbMV0sZVsxXSl9KX1lbHNlKGVbMF18fGVbMV0pJiZyLnB1c2goInRyYW5zbGF0ZSgiK2UrIikiKX0oZS50cmFuc2xhdGUsci50cmFuc2xhdGUsbixhKSxmdW5jdGlvbih0LGUscixuKXt0IT09ZT8odC1lPjE4MD9lKz0zNjA6ZS10PjE4MCYmKHQrPTM2MCksbi5wdXNoKHtpOnIucHVzaCh2aShyKSsicm90YXRlKCIsbnVsbCwiKSIpLTIseDpXYSh0LGUpfSkpOmUmJnIucHVzaCh2aShyKSsicm90YXRlKCIrZSsiKSIpfShlLnJvdGF0ZSxyLnJvdGF0ZSxuLGEpLGZ1bmN0aW9uKHQsZSxyLG4pe3QhPT1lP24ucHVzaCh7aTpyLnB1c2godmkocikrInNrZXdYKCIsbnVsbCwiKSIpLTIseDpXYSh0LGUpfSk6ZSYmci5wdXNoKHZpKHIpKyJza2V3WCgiK2UrIikiKX0oZS5za2V3LHIuc2tldyxuLGEpLGZ1bmN0aW9uKHQsZSxyLG4pe2lmKHRbMF0hPT1lWzBdfHx0WzFdIT09ZVsxXSl7dmFyIGE9ci5wdXNoKHZpKHIpKyJzY2FsZSgiLG51bGwsIiwiLG51bGwsIikiKTtuLnB1c2goe2k6YS00LHg6V2EodFswXSxlWzBdKX0se2k6YS0yLHg6V2EodFsxXSxlWzFdKX0pfWVsc2UgMT09PWVbMF0mJjE9PT1lWzFdfHxyLnB1c2godmkocikrInNjYWxlKCIrZSsiKSIpfShlLnNjYWxlLHIuc2NhbGUsbixhKSxlPXI9bnVsbCxmdW5jdGlvbih0KXtmb3IodmFyIGUscj0tMSxpPWEubGVuZ3RoOysrcjxpOyluWyhlPWFbcl0pLmldPWUueCh0KTtyZXR1cm4gbi5qb2luKCIiKX19ZnVuY3Rpb24geWkodCxlKXtyZXR1cm4gZT0oZS09dD0rdCl8fDEvZSxmdW5jdGlvbihyKXtyZXR1cm4oci10KS9lfX1mdW5jdGlvbiB4aSh0LGUpe3JldHVybiBlPShlLT10PSt0KXx8MS9lLGZ1bmN0aW9uKHIpe3JldHVybiBNYXRoLm1heCgwLE1hdGgubWluKDEsKHItdCkvZSkpfX1mdW5jdGlvbiBiaSh0KXtmb3IodmFyIGU9dC5zb3VyY2Uscj10LnRhcmdldCxuPWZ1bmN0aW9uKHQsZSl7aWYodD09PWUpcmV0dXJuIHQ7dmFyIHI9X2kodCksbj1faShlKSxhPXIucG9wKCksaT1uLnBvcCgpLG89bnVsbDtmb3IoO2E9PT1pOylvPWEsYT1yLnBvcCgpLGk9bi5wb3AoKTtyZXR1cm4gb30oZSxyKSxhPVtlXTtlIT09bjspZT1lLnBhcmVudCxhLnB1c2goZSk7Zm9yKHZhciBpPWEubGVuZ3RoO3IhPT1uOylhLnNwbGljZShpLDAscikscj1yLnBhcmVudDtyZXR1cm4gYX1mdW5jdGlvbiBfaSh0KXtmb3IodmFyIGU9W10scj10LnBhcmVudDtudWxsIT1yOyllLnB1c2godCksdD1yLHI9ci5wYXJlbnQ7cmV0dXJuIGUucHVzaCh0KSxlfWZ1bmN0aW9uIHdpKHQpe3QuZml4ZWR8PTJ9ZnVuY3Rpb24ga2kodCl7dC5maXhlZCY9LTd9ZnVuY3Rpb24gVGkodCl7dC5maXhlZHw9NCx0LnB4PXQueCx0LnB5PXQueX1mdW5jdGlvbiBNaSh0KXt0LmZpeGVkJj0tNX10LmludGVycG9sYXRlVHJhbnNmb3JtPW1pLHQubGF5b3V0PXt9LHQubGF5b3V0LmJ1bmRsZT1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0KXtmb3IodmFyIGU9W10scj0tMSxuPXQubGVuZ3RoOysrcjxuOyllLnB1c2goYmkodFtyXSkpO3JldHVybiBlfX0sdC5sYXlvdXQuY2hvcmQ9ZnVuY3Rpb24oKXt2YXIgZSxyLG4sYSxpLG8scyxsPXt9LGM9MDtmdW5jdGlvbiB1KCl7dmFyIGwsdSxmLHAsZCxnPXt9LHY9W10sbT10LnJhbmdlKGEpLHk9W107Zm9yKGU9W10scj1bXSxsPTAscD0tMTsrK3A8YTspe2Zvcih1PTAsZD0tMTsrK2Q8YTspdSs9bltwXVtkXTt2LnB1c2godSkseS5wdXNoKHQucmFuZ2UoYSkpLGwrPXV9Zm9yKGkmJm0uc29ydChmdW5jdGlvbih0LGUpe3JldHVybiBpKHZbdF0sdltlXSl9KSxvJiZ5LmZvckVhY2goZnVuY3Rpb24odCxlKXt0LnNvcnQoZnVuY3Rpb24odCxyKXtyZXR1cm4gbyhuW2VdW3RdLG5bZV1bcl0pfSl9KSxsPShBdC1jKmEpL2wsdT0wLHA9LTE7KytwPGE7KXtmb3IoZj11LGQ9LTE7KytkPGE7KXt2YXIgeD1tW3BdLGI9eVt4XVtkXSxfPW5beF1bYl0sdz11LGs9dSs9XypsO2dbeCsiLSIrYl09e2luZGV4Ongsc3ViaW5kZXg6YixzdGFydEFuZ2xlOncsZW5kQW5nbGU6ayx2YWx1ZTpffX1yW3hdPXtpbmRleDp4LHN0YXJ0QW5nbGU6ZixlbmRBbmdsZTp1LHZhbHVlOnZbeF19LHUrPWN9Zm9yKHA9LTE7KytwPGE7KWZvcihkPXAtMTsrK2Q8YTspe3ZhciBUPWdbcCsiLSIrZF0sTT1nW2QrIi0iK3BdOyhULnZhbHVlfHxNLnZhbHVlKSYmZS5wdXNoKFQudmFsdWU8TS52YWx1ZT97c291cmNlOk0sdGFyZ2V0OlR9Ontzb3VyY2U6VCx0YXJnZXQ6TX0pfXMmJmgoKX1mdW5jdGlvbiBoKCl7ZS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHMoKHQuc291cmNlLnZhbHVlK3QudGFyZ2V0LnZhbHVlKS8yLChlLnNvdXJjZS52YWx1ZStlLnRhcmdldC52YWx1ZSkvMil9KX1yZXR1cm4gbC5tYXRyaXg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9KG49dCkmJm4ubGVuZ3RoLGU9cj1udWxsLGwpOm59LGwucGFkZGluZz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz10LGU9cj1udWxsLGwpOmN9LGwuc29ydEdyb3Vwcz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT10LGU9cj1udWxsLGwpOml9LGwuc29ydFN1Ymdyb3Vwcz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz10LGU9bnVsbCxsKTpvfSxsLnNvcnRDaG9yZHM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9dCxlJiZoKCksbCk6c30sbC5jaG9yZHM9ZnVuY3Rpb24oKXtyZXR1cm4gZXx8dSgpLGV9LGwuZ3JvdXBzPWZ1bmN0aW9uKCl7cmV0dXJuIHJ8fHUoKSxyfSxsfSx0LmxheW91dC5mb3JjZT1mdW5jdGlvbigpe3ZhciBlLHIsbixhLGksbyxzPXt9LGw9dC5kaXNwYXRjaCgic3RhcnQiLCJ0aWNrIiwiZW5kIiksYz1bMSwxXSx1PS45LGg9QWksZj1TaSxwPS0zMCxkPUVpLGc9LjEsdj0uNjQsbT1bXSx5PVtdO2Z1bmN0aW9uIHgodCl7cmV0dXJuIGZ1bmN0aW9uKGUscixuLGEpe2lmKGUucG9pbnQhPT10KXt2YXIgaT1lLmN4LXQueCxvPWUuY3ktdC55LHM9YS1yLGw9aSppK28qbztpZihzKnMvdjxsKXtpZihsPGQpe3ZhciBjPWUuY2hhcmdlL2w7dC5weC09aSpjLHQucHktPW8qY31yZXR1cm4hMH1pZihlLnBvaW50JiZsJiZsPGQpe2M9ZS5wb2ludENoYXJnZS9sO3QucHgtPWkqYyx0LnB5LT1vKmN9fXJldHVybiFlLmNoYXJnZX19ZnVuY3Rpb24gYihlKXtlLnB4PXQuZXZlbnQueCxlLnB5PXQuZXZlbnQueSxzLnJlc3VtZSgpfXJldHVybiBzLnRpY2s9ZnVuY3Rpb24oKXtpZigobio9Ljk5KTwuMDA1KXJldHVybiBlPW51bGwsbC5lbmQoe3R5cGU6ImVuZCIsYWxwaGE6bj0wfSksITA7dmFyIHIscyxoLGYsZCx2LGIsXyx3LGs9bS5sZW5ndGgsVD15Lmxlbmd0aDtmb3Iocz0wO3M8VDsrK3MpZj0oaD15W3NdKS5zb3VyY2UsKHY9KF89KGQ9aC50YXJnZXQpLngtZi54KSpfKyh3PWQueS1mLnkpKncpJiYoXyo9dj1uKmlbc10qKCh2PU1hdGguc3FydCh2KSktYVtzXSkvdix3Kj12LGQueC09XyooYj1mLndlaWdodCtkLndlaWdodD9mLndlaWdodC8oZi53ZWlnaHQrZC53ZWlnaHQpOi41KSxkLnktPXcqYixmLngrPV8qKGI9MS1iKSxmLnkrPXcqYik7aWYoKGI9bipnKSYmKF89Y1swXS8yLHc9Y1sxXS8yLHM9LTEsYikpZm9yKDsrK3M8azspKGg9bVtzXSkueCs9KF8taC54KSpiLGgueSs9KHctaC55KSpiO2lmKHApZm9yKCFmdW5jdGlvbiB0KGUscixuKXt2YXIgYT0wLGk9MDtlLmNoYXJnZT0wO2lmKCFlLmxlYWYpZm9yKHZhciBvLHM9ZS5ub2RlcyxsPXMubGVuZ3RoLGM9LTE7KytjPGw7KW51bGwhPShvPXNbY10pJiYodChvLHIsbiksZS5jaGFyZ2UrPW8uY2hhcmdlLGErPW8uY2hhcmdlKm8uY3gsaSs9by5jaGFyZ2Uqby5jeSk7aWYoZS5wb2ludCl7ZS5sZWFmfHwoZS5wb2ludC54Kz1NYXRoLnJhbmRvbSgpLS41LGUucG9pbnQueSs9TWF0aC5yYW5kb20oKS0uNSk7dmFyIHU9cipuW2UucG9pbnQuaW5kZXhdO2UuY2hhcmdlKz1lLnBvaW50Q2hhcmdlPXUsYSs9dSplLnBvaW50LngsaSs9dSplLnBvaW50Lnl9ZS5jeD1hL2UuY2hhcmdlO2UuY3k9aS9lLmNoYXJnZX0ocj10Lmdlb20ucXVhZHRyZWUobSksbixvKSxzPS0xOysrczxrOykoaD1tW3NdKS5maXhlZHx8ci52aXNpdCh4KGgpKTtmb3Iocz0tMTsrK3M8azspKGg9bVtzXSkuZml4ZWQ/KGgueD1oLnB4LGgueT1oLnB5KTooaC54LT0oaC5weC0oaC5weD1oLngpKSp1LGgueS09KGgucHktKGgucHk9aC55KSkqdSk7bC50aWNrKHt0eXBlOiJ0aWNrIixhbHBoYTpufSl9LHMubm9kZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG09dCxzKTptfSxzLmxpbmtzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh5PXQscyk6eX0scy5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPXQscyk6Y30scy5saW5rRGlzdGFuY2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDordCxzKTpofSxzLmRpc3RhbmNlPXMubGlua0Rpc3RhbmNlLHMubGlua1N0cmVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6K3Qscyk6Zn0scy5mcmljdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT0rdCxzKTp1fSxzLmNoYXJnZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocD0iZnVuY3Rpb24iPT10eXBlb2YgdD90Oit0LHMpOnB9LHMuY2hhcmdlRGlzdGFuY2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGQ9dCp0LHMpOk1hdGguc3FydChkKX0scy5ncmF2aXR5PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhnPSt0LHMpOmd9LHMudGhldGE9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHY9dCp0LHMpOk1hdGguc3FydCh2KX0scy5hbHBoYT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0rdCxuP3Q+MD9uPXQ6KGUuYz1udWxsLGUudD1OYU4sZT1udWxsLGwuZW5kKHt0eXBlOiJlbmQiLGFscGhhOm49MH0pKTp0PjAmJihsLnN0YXJ0KHt0eXBlOiJzdGFydCIsYWxwaGE6bj10fSksZT1UZShzLnRpY2spKSxzKTpufSxzLnN0YXJ0PWZ1bmN0aW9uKCl7dmFyIHQsZSxyLG49bS5sZW5ndGgsbD15Lmxlbmd0aCx1PWNbMF0sZD1jWzFdO2Zvcih0PTA7dDxuOysrdCkocj1tW3RdKS5pbmRleD10LHIud2VpZ2h0PTA7Zm9yKHQ9MDt0PGw7Kyt0KSJudW1iZXIiPT10eXBlb2Yocj15W3RdKS5zb3VyY2UmJihyLnNvdXJjZT1tW3Iuc291cmNlXSksIm51bWJlciI9PXR5cGVvZiByLnRhcmdldCYmKHIudGFyZ2V0PW1bci50YXJnZXRdKSwrK3Iuc291cmNlLndlaWdodCwrK3IudGFyZ2V0LndlaWdodDtmb3IodD0wO3Q8bjsrK3Qpcj1tW3RdLGlzTmFOKHIueCkmJihyLng9ZygieCIsdSkpLGlzTmFOKHIueSkmJihyLnk9ZygieSIsZCkpLGlzTmFOKHIucHgpJiYoci5weD1yLngpLGlzTmFOKHIucHkpJiYoci5weT1yLnkpO2lmKGE9W10sImZ1bmN0aW9uIj09dHlwZW9mIGgpZm9yKHQ9MDt0PGw7Kyt0KWFbdF09K2guY2FsbCh0aGlzLHlbdF0sdCk7ZWxzZSBmb3IodD0wO3Q8bDsrK3QpYVt0XT1oO2lmKGk9W10sImZ1bmN0aW9uIj09dHlwZW9mIGYpZm9yKHQ9MDt0PGw7Kyt0KWlbdF09K2YuY2FsbCh0aGlzLHlbdF0sdCk7ZWxzZSBmb3IodD0wO3Q8bDsrK3QpaVt0XT1mO2lmKG89W10sImZ1bmN0aW9uIj09dHlwZW9mIHApZm9yKHQ9MDt0PG47Kyt0KW9bdF09K3AuY2FsbCh0aGlzLG1bdF0sdCk7ZWxzZSBmb3IodD0wO3Q8bjsrK3Qpb1t0XT1wO2Z1bmN0aW9uIGcocixhKXtpZighZSl7Zm9yKGU9bmV3IEFycmF5KG4pLGM9MDtjPG47KytjKWVbY109W107Zm9yKGM9MDtjPGw7KytjKXt2YXIgaT15W2NdO2VbaS5zb3VyY2UuaW5kZXhdLnB1c2goaS50YXJnZXQpLGVbaS50YXJnZXQuaW5kZXhdLnB1c2goaS5zb3VyY2UpfX1mb3IodmFyIG8scz1lW3RdLGM9LTEsdT1zLmxlbmd0aDsrK2M8dTspaWYoIWlzTmFOKG89c1tjXVtyXSkpcmV0dXJuIG87cmV0dXJuIE1hdGgucmFuZG9tKCkqYX1yZXR1cm4gcy5yZXN1bWUoKX0scy5yZXN1bWU9ZnVuY3Rpb24oKXtyZXR1cm4gcy5hbHBoYSguMSl9LHMuc3RvcD1mdW5jdGlvbigpe3JldHVybiBzLmFscGhhKDApfSxzLmRyYWc9ZnVuY3Rpb24oKXtpZihyfHwocj10LmJlaGF2aW9yLmRyYWcoKS5vcmlnaW4oUCkub24oImRyYWdzdGFydC5mb3JjZSIsd2kpLm9uKCJkcmFnLmZvcmNlIixiKS5vbigiZHJhZ2VuZC5mb3JjZSIsa2kpKSwhYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gcjt0aGlzLm9uKCJtb3VzZW92ZXIuZm9yY2UiLFRpKS5vbigibW91c2VvdXQuZm9yY2UiLE1pKS5jYWxsKHIpfSx0LnJlYmluZChzLGwsIm9uIil9O3ZhciBBaT0yMCxTaT0xLEVpPTEvMDtmdW5jdGlvbiBMaShlLHIpe3JldHVybiB0LnJlYmluZChlLHIsInNvcnQiLCJjaGlsZHJlbiIsInZhbHVlIiksZS5ub2Rlcz1lLGUubGlua3M9RGksZX1mdW5jdGlvbiBDaSh0LGUpe2Zvcih2YXIgcj1bdF07bnVsbCE9KHQ9ci5wb3AoKSk7KWlmKGUodCksKGE9dC5jaGlsZHJlbikmJihuPWEubGVuZ3RoKSlmb3IodmFyIG4sYTstLW4+PTA7KXIucHVzaChhW25dKX1mdW5jdGlvbiBQaSh0LGUpe2Zvcih2YXIgcj1bdF0sbj1bXTtudWxsIT0odD1yLnBvcCgpKTspaWYobi5wdXNoKHQpLChpPXQuY2hpbGRyZW4pJiYoYT1pLmxlbmd0aCkpZm9yKHZhciBhLGksbz0tMTsrK288YTspci5wdXNoKGlbb10pO2Zvcig7bnVsbCE9KHQ9bi5wb3AoKSk7KWUodCl9ZnVuY3Rpb24gT2kodCl7cmV0dXJuIHQuY2hpbGRyZW59ZnVuY3Rpb24gemkodCl7cmV0dXJuIHQudmFsdWV9ZnVuY3Rpb24gSWkodCxlKXtyZXR1cm4gZS52YWx1ZS10LnZhbHVlfWZ1bmN0aW9uIERpKGUpe3JldHVybiB0Lm1lcmdlKGUubWFwKGZ1bmN0aW9uKHQpe3JldHVybih0LmNoaWxkcmVufHxbXSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybntzb3VyY2U6dCx0YXJnZXQ6ZX19KX0pKX10LmxheW91dC5oaWVyYXJjaHk9ZnVuY3Rpb24oKXt2YXIgdD1JaSxlPU9pLHI9emk7ZnVuY3Rpb24gbihhKXt2YXIgaSxvPVthXSxzPVtdO2ZvcihhLmRlcHRoPTA7bnVsbCE9KGk9by5wb3AoKSk7KWlmKHMucHVzaChpKSwoYz1lLmNhbGwobixpLGkuZGVwdGgpKSYmKGw9Yy5sZW5ndGgpKXtmb3IodmFyIGwsYyx1Oy0tbD49MDspby5wdXNoKHU9Y1tsXSksdS5wYXJlbnQ9aSx1LmRlcHRoPWkuZGVwdGgrMTtyJiYoaS52YWx1ZT0wKSxpLmNoaWxkcmVuPWN9ZWxzZSByJiYoaS52YWx1ZT0rci5jYWxsKG4saSxpLmRlcHRoKXx8MCksZGVsZXRlIGkuY2hpbGRyZW47cmV0dXJuIFBpKGEsZnVuY3Rpb24oZSl7dmFyIG4sYTt0JiYobj1lLmNoaWxkcmVuKSYmbi5zb3J0KHQpLHImJihhPWUucGFyZW50KSYmKGEudmFsdWUrPWUudmFsdWUpfSksc31yZXR1cm4gbi5zb3J0PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWUsbik6dH0sbi5jaGlsZHJlbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10LG4pOmV9LG4udmFsdWU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dCxuKTpyfSxuLnJldmFsdWU9ZnVuY3Rpb24odCl7cmV0dXJuIHImJihDaSh0LGZ1bmN0aW9uKHQpe3QuY2hpbGRyZW4mJih0LnZhbHVlPTApfSksUGkodCxmdW5jdGlvbih0KXt2YXIgZTt0LmNoaWxkcmVufHwodC52YWx1ZT0rci5jYWxsKG4sdCx0LmRlcHRoKXx8MCksKGU9dC5wYXJlbnQpJiYoZS52YWx1ZSs9dC52YWx1ZSl9KSksdH0sbn0sdC5sYXlvdXQucGFydGl0aW9uPWZ1bmN0aW9uKCl7dmFyIGU9dC5sYXlvdXQuaGllcmFyY2h5KCkscj1bMSwxXTtmdW5jdGlvbiBuKHQsbil7dmFyIGE9ZS5jYWxsKHRoaXMsdCxuKTtyZXR1cm4gZnVuY3Rpb24gdChlLHIsbixhKXt2YXIgaT1lLmNoaWxkcmVuO2lmKGUueD1yLGUueT1lLmRlcHRoKmEsZS5keD1uLGUuZHk9YSxpJiYobz1pLmxlbmd0aCkpe3ZhciBvLHMsbCxjPS0xO2ZvcihuPWUudmFsdWU/bi9lLnZhbHVlOjA7KytjPG87KXQocz1pW2NdLHIsbD1zLnZhbHVlKm4sYSkscis9bH19KGFbMF0sMCxyWzBdLHJbMV0vZnVuY3Rpb24gdChlKXt2YXIgcj1lLmNoaWxkcmVuLG49MDtpZihyJiYoYT1yLmxlbmd0aCkpZm9yKHZhciBhLGk9LTE7KytpPGE7KW49TWF0aC5tYXgobix0KHJbaV0pKTtyZXR1cm4gMStufShhWzBdKSksYX1yZXR1cm4gbi5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsbik6cn0sTGkobixlKX0sdC5sYXlvdXQucGllPWZ1bmN0aW9uKCl7dmFyIGU9TnVtYmVyLHI9Umksbj0wLGE9QXQsaT0wO2Z1bmN0aW9uIG8ocyl7dmFyIGwsYz1zLmxlbmd0aCx1PXMubWFwKGZ1bmN0aW9uKHQscil7cmV0dXJuK2UuY2FsbChvLHQscil9KSxoPSsoImZ1bmN0aW9uIj09dHlwZW9mIG4/bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk6biksZj0oImZ1bmN0aW9uIj09dHlwZW9mIGE/YS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6YSktaCxwPU1hdGgubWluKE1hdGguYWJzKGYpL2MsKygiZnVuY3Rpb24iPT10eXBlb2YgaT9pLmFwcGx5KHRoaXMsYXJndW1lbnRzKTppKSksZD1wKihmPDA/LTE6MSksZz10LnN1bSh1KSx2PWc/KGYtYypkKS9nOjAsbT10LnJhbmdlKGMpLHk9W107cmV0dXJuIG51bGwhPXImJm0uc29ydChyPT09Umk/ZnVuY3Rpb24odCxlKXtyZXR1cm4gdVtlXS11W3RdfTpmdW5jdGlvbih0LGUpe3JldHVybiByKHNbdF0sc1tlXSl9KSxtLmZvckVhY2goZnVuY3Rpb24odCl7eVt0XT17ZGF0YTpzW3RdLHZhbHVlOmw9dVt0XSxzdGFydEFuZ2xlOmgsZW5kQW5nbGU6aCs9bCp2K2QscGFkQW5nbGU6cH19KSx5fXJldHVybiBvLnZhbHVlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXQsbyk6ZX0sby5zb3J0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsbyk6cn0sby5zdGFydEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXQsbyk6bn0sby5lbmRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT10LG8pOmF9LG8ucGFkQW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9dCxvKTppfSxvfTt2YXIgUmk9e307ZnVuY3Rpb24gRmkodCl7cmV0dXJuIHQueH1mdW5jdGlvbiBCaSh0KXtyZXR1cm4gdC55fWZ1bmN0aW9uIE5pKHQsZSxyKXt0LnkwPWUsdC55PXJ9dC5sYXlvdXQuc3RhY2s9ZnVuY3Rpb24oKXt2YXIgZT1QLHI9VWksbj1xaSxhPU5pLGk9Rmksbz1CaTtmdW5jdGlvbiBzKGwsYyl7aWYoIShwPWwubGVuZ3RoKSlyZXR1cm4gbDt2YXIgdT1sLm1hcChmdW5jdGlvbih0LHIpe3JldHVybiBlLmNhbGwocyx0LHIpfSksaD11Lm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm5baS5jYWxsKHMsdCxlKSxvLmNhbGwocyx0LGUpXX0pfSksZj1yLmNhbGwocyxoLGMpO3U9dC5wZXJtdXRlKHUsZiksaD10LnBlcm11dGUoaCxmKTt2YXIgcCxkLGcsdixtPW4uY2FsbChzLGgsYykseT11WzBdLmxlbmd0aDtmb3IoZz0wO2c8eTsrK2cpZm9yKGEuY2FsbChzLHVbMF1bZ10sdj1tW2ddLGhbMF1bZ11bMV0pLGQ9MTtkPHA7KytkKWEuY2FsbChzLHVbZF1bZ10sdis9aFtkLTFdW2ddWzFdLGhbZF1bZ11bMV0pO3JldHVybiBsfXJldHVybiBzLnZhbHVlcz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10LHMpOmV9LHMub3JkZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpqaS5nZXQodCl8fFVpLHMpOnJ9LHMub2Zmc2V0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6VmkuZ2V0KHQpfHxxaSxzKTpufSxzLng9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9dCxzKTppfSxzLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89dCxzKTpvfSxzLm91dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT10LHMpOmF9LHN9O3ZhciBqaT10Lm1hcCh7Imluc2lkZS1vdXQiOmZ1bmN0aW9uKGUpe3ZhciByLG4sYT1lLmxlbmd0aCxpPWUubWFwKEhpKSxvPWUubWFwKEdpKSxzPXQucmFuZ2UoYSkuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiBpW3RdLWlbZV19KSxsPTAsYz0wLHU9W10saD1bXTtmb3Iocj0wO3I8YTsrK3Ipbj1zW3JdLGw8Yz8obCs9b1tuXSx1LnB1c2gobikpOihjKz1vW25dLGgucHVzaChuKSk7cmV0dXJuIGgucmV2ZXJzZSgpLmNvbmNhdCh1KX0scmV2ZXJzZTpmdW5jdGlvbihlKXtyZXR1cm4gdC5yYW5nZShlLmxlbmd0aCkucmV2ZXJzZSgpfSxkZWZhdWx0OlVpfSksVmk9dC5tYXAoe3NpbGhvdWV0dGU6ZnVuY3Rpb24odCl7dmFyIGUscixuLGE9dC5sZW5ndGgsaT10WzBdLmxlbmd0aCxvPVtdLHM9MCxsPVtdO2ZvcihyPTA7cjxpOysrcil7Zm9yKGU9MCxuPTA7ZTxhO2UrKyluKz10W2VdW3JdWzFdO24+cyYmKHM9biksby5wdXNoKG4pfWZvcihyPTA7cjxpOysrcilsW3JdPShzLW9bcl0pLzI7cmV0dXJuIGx9LHdpZ2dsZTpmdW5jdGlvbih0KXt2YXIgZSxyLG4sYSxpLG8scyxsLGMsdT10Lmxlbmd0aCxoPXRbMF0sZj1oLmxlbmd0aCxwPVtdO2ZvcihwWzBdPWw9Yz0wLHI9MTtyPGY7KytyKXtmb3IoZT0wLGE9MDtlPHU7KytlKWErPXRbZV1bcl1bMV07Zm9yKGU9MCxpPTAscz1oW3JdWzBdLWhbci0xXVswXTtlPHU7KytlKXtmb3Iobj0wLG89KHRbZV1bcl1bMV0tdFtlXVtyLTFdWzFdKS8oMipzKTtuPGU7KytuKW8rPSh0W25dW3JdWzFdLXRbbl1bci0xXVsxXSkvcztpKz1vKnRbZV1bcl1bMV19cFtyXT1sLT1hP2kvYSpzOjAsbDxjJiYoYz1sKX1mb3Iocj0wO3I8ZjsrK3IpcFtyXS09YztyZXR1cm4gcH0sZXhwYW5kOmZ1bmN0aW9uKHQpe3ZhciBlLHIsbixhPXQubGVuZ3RoLGk9dFswXS5sZW5ndGgsbz0xL2Escz1bXTtmb3Iocj0wO3I8aTsrK3Ipe2ZvcihlPTAsbj0wO2U8YTtlKyspbis9dFtlXVtyXVsxXTtpZihuKWZvcihlPTA7ZTxhO2UrKyl0W2VdW3JdWzFdLz1uO2Vsc2UgZm9yKGU9MDtlPGE7ZSsrKXRbZV1bcl1bMV09b31mb3Iocj0wO3I8aTsrK3Ipc1tyXT0wO3JldHVybiBzfSx6ZXJvOnFpfSk7ZnVuY3Rpb24gVWkoZSl7cmV0dXJuIHQucmFuZ2UoZS5sZW5ndGgpfWZ1bmN0aW9uIHFpKHQpe2Zvcih2YXIgZT0tMSxyPXRbMF0ubGVuZ3RoLG49W107KytlPHI7KW5bZV09MDtyZXR1cm4gbn1mdW5jdGlvbiBIaSh0KXtmb3IodmFyIGUscj0xLG49MCxhPXRbMF1bMV0saT10Lmxlbmd0aDtyPGk7KytyKShlPXRbcl1bMV0pPmEmJihuPXIsYT1lKTtyZXR1cm4gbn1mdW5jdGlvbiBHaSh0KXtyZXR1cm4gdC5yZWR1Y2UoWWksMCl9ZnVuY3Rpb24gWWkodCxlKXtyZXR1cm4gdCtlWzFdfWZ1bmN0aW9uIFdpKHQsZSl7cmV0dXJuIFhpKHQsTWF0aC5jZWlsKE1hdGgubG9nKGUubGVuZ3RoKS9NYXRoLkxOMisxKSl9ZnVuY3Rpb24gWGkodCxlKXtmb3IodmFyIHI9LTEsbj0rdFswXSxhPSh0WzFdLW4pL2UsaT1bXTsrK3I8PWU7KWlbcl09YSpyK247cmV0dXJuIGl9ZnVuY3Rpb24gWmkoZSl7cmV0dXJuW3QubWluKGUpLHQubWF4KGUpXX1mdW5jdGlvbiBKaSh0LGUpe3JldHVybiB0LnZhbHVlLWUudmFsdWV9ZnVuY3Rpb24gS2kodCxlKXt2YXIgcj10Ll9wYWNrX25leHQ7dC5fcGFja19uZXh0PWUsZS5fcGFja19wcmV2PXQsZS5fcGFja19uZXh0PXIsci5fcGFja19wcmV2PWV9ZnVuY3Rpb24gUWkodCxlKXt0Ll9wYWNrX25leHQ9ZSxlLl9wYWNrX3ByZXY9dH1mdW5jdGlvbiAkaSh0LGUpe3ZhciByPWUueC10Lngsbj1lLnktdC55LGE9dC5yK2UucjtyZXR1cm4uOTk5KmEqYT5yKnIrbipufWZ1bmN0aW9uIHRvKHQpe2lmKChlPXQuY2hpbGRyZW4pJiYobD1lLmxlbmd0aCkpe3ZhciBlLHIsbixhLGksbyxzLGwsYz0xLzAsdT0tMS8wLGg9MS8wLGY9LTEvMDtpZihlLmZvckVhY2goZW8pLChyPWVbMF0pLng9LXIucixyLnk9MCx4KHIpLGw+MSYmKChuPWVbMV0pLng9bi5yLG4ueT0wLHgobiksbD4yKSlmb3Iobm8ocixuLGE9ZVsyXSkseChhKSxLaShyLGEpLHIuX3BhY2tfcHJldj1hLEtpKGEsbiksbj1yLl9wYWNrX25leHQsaT0zO2k8bDtpKyspe25vKHIsbixhPWVbaV0pO3ZhciBwPTAsZD0xLGc9MTtmb3Iobz1uLl9wYWNrX25leHQ7byE9PW47bz1vLl9wYWNrX25leHQsZCsrKWlmKCRpKG8sYSkpe3A9MTticmVha31pZigxPT1wKWZvcihzPXIuX3BhY2tfcHJldjtzIT09by5fcGFja19wcmV2JiYhJGkocyxhKTtzPXMuX3BhY2tfcHJldixnKyspO3A/KGQ8Z3x8ZD09ZyYmbi5yPHIucj9RaShyLG49byk6UWkocj1zLG4pLGktLSk6KEtpKHIsYSksbj1hLHgoYSkpfXZhciB2PShjK3UpLzIsbT0oaCtmKS8yLHk9MDtmb3IoaT0wO2k8bDtpKyspKGE9ZVtpXSkueC09dixhLnktPW0seT1NYXRoLm1heCh5LGEucitNYXRoLnNxcnQoYS54KmEueCthLnkqYS55KSk7dC5yPXksZS5mb3JFYWNoKHJvKX1mdW5jdGlvbiB4KHQpe2M9TWF0aC5taW4odC54LXQucixjKSx1PU1hdGgubWF4KHQueCt0LnIsdSksaD1NYXRoLm1pbih0LnktdC5yLGgpLGY9TWF0aC5tYXgodC55K3QucixmKX19ZnVuY3Rpb24gZW8odCl7dC5fcGFja19uZXh0PXQuX3BhY2tfcHJldj10fWZ1bmN0aW9uIHJvKHQpe2RlbGV0ZSB0Ll9wYWNrX25leHQsZGVsZXRlIHQuX3BhY2tfcHJldn1mdW5jdGlvbiBubyh0LGUscil7dmFyIG49dC5yK3IucixhPWUueC10LngsaT1lLnktdC55O2lmKG4mJihhfHxpKSl7dmFyIG89ZS5yK3IucixzPWEqYStpKmksbD0uNSsoKG4qPW4pLShvKj1vKSkvKDIqcyksYz1NYXRoLnNxcnQoTWF0aC5tYXgoMCwyKm8qKG4rcyktKG4tPXMpKm4tbypvKSkvKDIqcyk7ci54PXQueCtsKmErYyppLHIueT10LnkrbCppLWMqYX1lbHNlIHIueD10LngrbixyLnk9dC55fWZ1bmN0aW9uIGFvKHQsZSl7cmV0dXJuIHQucGFyZW50PT1lLnBhcmVudD8xOjJ9ZnVuY3Rpb24gaW8odCl7dmFyIGU9dC5jaGlsZHJlbjtyZXR1cm4gZS5sZW5ndGg/ZVswXTp0LnR9ZnVuY3Rpb24gb28odCl7dmFyIGUscj10LmNoaWxkcmVuO3JldHVybihlPXIubGVuZ3RoKT9yW2UtMV06dC50fWZ1bmN0aW9uIHNvKHQsZSxyKXt2YXIgbj1yLyhlLmktdC5pKTtlLmMtPW4sZS5zKz1yLHQuYys9bixlLnorPXIsZS5tKz1yfWZ1bmN0aW9uIGxvKHQsZSxyKXtyZXR1cm4gdC5hLnBhcmVudD09PWUucGFyZW50P3QuYTpyfWZ1bmN0aW9uIGNvKHQpe3JldHVybnt4OnQueCx5OnQueSxkeDp0LmR4LGR5OnQuZHl9fWZ1bmN0aW9uIHVvKHQsZSl7dmFyIHI9dC54K2VbM10sbj10LnkrZVswXSxhPXQuZHgtZVsxXS1lWzNdLGk9dC5keS1lWzBdLWVbMl07cmV0dXJuIGE8MCYmKHIrPWEvMixhPTApLGk8MCYmKG4rPWkvMixpPTApLHt4OnIseTpuLGR4OmEsZHk6aX19ZnVuY3Rpb24gaG8odCl7dmFyIGU9dFswXSxyPXRbdC5sZW5ndGgtMV07cmV0dXJuIGU8cj9bZSxyXTpbcixlXX1mdW5jdGlvbiBmbyh0KXtyZXR1cm4gdC5yYW5nZUV4dGVudD90LnJhbmdlRXh0ZW50KCk6aG8odC5yYW5nZSgpKX1mdW5jdGlvbiBwbyh0LGUscixuKXt2YXIgYT1yKHRbMF0sdFsxXSksaT1uKGVbMF0sZVsxXSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBpKGEodCkpfX1mdW5jdGlvbiBnbyh0LGUpe3ZhciByLG49MCxhPXQubGVuZ3RoLTEsaT10W25dLG89dFthXTtyZXR1cm4gbzxpJiYocj1uLG49YSxhPXIscj1pLGk9byxvPXIpLHRbbl09ZS5mbG9vcihpKSx0W2FdPWUuY2VpbChvKSx0fWZ1bmN0aW9uIHZvKHQpe3JldHVybiB0P3tmbG9vcjpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5mbG9vcihlL3QpKnR9LGNlaWw6ZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGguY2VpbChlL3QpKnR9fTptb310LmxheW91dC5oaXN0b2dyYW09ZnVuY3Rpb24oKXt2YXIgZT0hMCxyPU51bWJlcixuPVppLGE9V2k7ZnVuY3Rpb24gaShpLG8pe2Zvcih2YXIgcyxsLGM9W10sdT1pLm1hcChyLHRoaXMpLGg9bi5jYWxsKHRoaXMsdSxvKSxmPWEuY2FsbCh0aGlzLGgsdSxvKSxwPShvPS0xLHUubGVuZ3RoKSxkPWYubGVuZ3RoLTEsZz1lPzE6MS9wOysrbzxkOykocz1jW29dPVtdKS5keD1mW28rMV0tKHMueD1mW29dKSxzLnk9MDtpZihkPjApZm9yKG89LTE7KytvPHA7KShsPXVbb10pPj1oWzBdJiZsPD1oWzFdJiYoKHM9Y1t0LmJpc2VjdChmLGwsMSxkKS0xXSkueSs9ZyxzLnB1c2goaVtvXSkpO3JldHVybiBjfXJldHVybiBpLnZhbHVlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsaSk6cn0saS5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj12ZSh0KSxpKTpufSxpLmJpbnM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9Im51bWJlciI9PXR5cGVvZiB0P2Z1bmN0aW9uKGUpe3JldHVybiBYaShlLHQpfTp2ZSh0KSxpKTphfSxpLmZyZXF1ZW5jeT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0hIXQsaSk6ZX0saX0sdC5sYXlvdXQucGFjaz1mdW5jdGlvbigpe3ZhciBlLHI9dC5sYXlvdXQuaGllcmFyY2h5KCkuc29ydChKaSksbj0wLGE9WzEsMV07ZnVuY3Rpb24gaSh0LGkpe3ZhciBvPXIuY2FsbCh0aGlzLHQsaSkscz1vWzBdLGw9YVswXSxjPWFbMV0sdT1udWxsPT1lP01hdGguc3FydDoiZnVuY3Rpb24iPT10eXBlb2YgZT9lOmZ1bmN0aW9uKCl7cmV0dXJuIGV9O2lmKHMueD1zLnk9MCxQaShzLGZ1bmN0aW9uKHQpe3Qucj0rdSh0LnZhbHVlKX0pLFBpKHMsdG8pLG4pe3ZhciBoPW4qKGU/MTpNYXRoLm1heCgyKnMuci9sLDIqcy5yL2MpKS8yO1BpKHMsZnVuY3Rpb24odCl7dC5yKz1ofSksUGkocyx0byksUGkocyxmdW5jdGlvbih0KXt0LnItPWh9KX1yZXR1cm4gZnVuY3Rpb24gdChlLHIsbixhKXt2YXIgaT1lLmNoaWxkcmVuO2UueD1yKz1hKmUueDtlLnk9bis9YSplLnk7ZS5yKj1hO2lmKGkpZm9yKHZhciBvPS0xLHM9aS5sZW5ndGg7KytvPHM7KXQoaVtvXSxyLG4sYSl9KHMsbC8yLGMvMixlPzE6MS9NYXRoLm1heCgyKnMuci9sLDIqcy5yL2MpKSxvfXJldHVybiBpLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9dCxpKTphfSxpLnJhZGl1cz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1udWxsPT10fHwiZnVuY3Rpb24iPT10eXBlb2YgdD90Oit0LGkpOmV9LGkucGFkZGluZz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0rdCxpKTpufSxMaShpLHIpfSx0LmxheW91dC50cmVlPWZ1bmN0aW9uKCl7dmFyIGU9dC5sYXlvdXQuaGllcmFyY2h5KCkuc29ydChudWxsKS52YWx1ZShudWxsKSxyPWFvLG49WzEsMV0sYT1udWxsO2Z1bmN0aW9uIGkodCxpKXt2YXIgYz1lLmNhbGwodGhpcyx0LGkpLHU9Y1swXSxoPWZ1bmN0aW9uKHQpe3ZhciBlLHI9e0E6bnVsbCxjaGlsZHJlbjpbdF19LG49W3JdO2Zvcig7bnVsbCE9KGU9bi5wb3AoKSk7KWZvcih2YXIgYSxpPWUuY2hpbGRyZW4sbz0wLHM9aS5sZW5ndGg7bzxzOysrbyluLnB1c2goKGlbb109YT17XzppW29dLHBhcmVudDplLGNoaWxkcmVuOihhPWlbb10uY2hpbGRyZW4pJiZhLnNsaWNlKCl8fFtdLEE6bnVsbCxhOm51bGwsejowLG06MCxjOjAsczowLHQ6bnVsbCxpOm99KS5hPWEpO3JldHVybiByLmNoaWxkcmVuWzBdfSh1KTtpZihQaShoLG8pLGgucGFyZW50Lm09LWgueixDaShoLHMpLGEpQ2kodSxsKTtlbHNle3ZhciBmPXUscD11LGQ9dTtDaSh1LGZ1bmN0aW9uKHQpe3QueDxmLngmJihmPXQpLHQueD5wLngmJihwPXQpLHQuZGVwdGg+ZC5kZXB0aCYmKGQ9dCl9KTt2YXIgZz1yKGYscCkvMi1mLngsdj1uWzBdLyhwLngrcihwLGYpLzIrZyksbT1uWzFdLyhkLmRlcHRofHwxKTtDaSh1LGZ1bmN0aW9uKHQpe3QueD0odC54K2cpKnYsdC55PXQuZGVwdGgqbX0pfXJldHVybiBjfWZ1bmN0aW9uIG8odCl7dmFyIGU9dC5jaGlsZHJlbixuPXQucGFyZW50LmNoaWxkcmVuLGE9dC5pP25bdC5pLTFdOm51bGw7aWYoZS5sZW5ndGgpeyFmdW5jdGlvbih0KXt2YXIgZSxyPTAsbj0wLGE9dC5jaGlsZHJlbixpPWEubGVuZ3RoO2Zvcig7LS1pPj0wOykoZT1hW2ldKS56Kz1yLGUubSs9cixyKz1lLnMrKG4rPWUuYyl9KHQpO3ZhciBpPShlWzBdLnorZVtlLmxlbmd0aC0xXS56KS8yO2E/KHQuej1hLnorcih0Ll8sYS5fKSx0Lm09dC56LWkpOnQuej1pfWVsc2UgYSYmKHQuej1hLnorcih0Ll8sYS5fKSk7dC5wYXJlbnQuQT1mdW5jdGlvbih0LGUsbil7aWYoZSl7Zm9yKHZhciBhLGk9dCxvPXQscz1lLGw9aS5wYXJlbnQuY2hpbGRyZW5bMF0sYz1pLm0sdT1vLm0saD1zLm0sZj1sLm07cz1vbyhzKSxpPWlvKGkpLHMmJmk7KWw9aW8obCksKG89b28obykpLmE9dCwoYT1zLnoraC1pLnotYytyKHMuXyxpLl8pKT4wJiYoc28obG8ocyx0LG4pLHQsYSksYys9YSx1Kz1hKSxoKz1zLm0sYys9aS5tLGYrPWwubSx1Kz1vLm07cyYmIW9vKG8pJiYoby50PXMsby5tKz1oLXUpLGkmJiFpbyhsKSYmKGwudD1pLGwubSs9Yy1mLG49dCl9cmV0dXJuIG59KHQsYSx0LnBhcmVudC5BfHxuWzBdKX1mdW5jdGlvbiBzKHQpe3QuXy54PXQueit0LnBhcmVudC5tLHQubSs9dC5wYXJlbnQubX1mdW5jdGlvbiBsKHQpe3QueCo9blswXSx0Lnk9dC5kZXB0aCpuWzFdfXJldHVybiBpLnNlcGFyYXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dCxpKTpyfSxpLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9bnVsbD09KG49dCk/bDpudWxsLGkpOmE/bnVsbDpufSxpLm5vZGVTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPW51bGw9PShuPXQpP251bGw6bCxpKTphP246bnVsbH0sTGkoaSxlKX0sdC5sYXlvdXQuY2x1c3Rlcj1mdW5jdGlvbigpe3ZhciBlPXQubGF5b3V0LmhpZXJhcmNoeSgpLnNvcnQobnVsbCkudmFsdWUobnVsbCkscj1hbyxuPVsxLDFdLGE9ITE7ZnVuY3Rpb24gaShpLG8pe3ZhciBzLGw9ZS5jYWxsKHRoaXMsaSxvKSxjPWxbMF0sdT0wO1BpKGMsZnVuY3Rpb24oZSl7dmFyIG49ZS5jaGlsZHJlbjtuJiZuLmxlbmd0aD8oZS54PWZ1bmN0aW9uKHQpe3JldHVybiB0LnJlZHVjZShmdW5jdGlvbih0LGUpe3JldHVybiB0K2UueH0sMCkvdC5sZW5ndGh9KG4pLGUueT1mdW5jdGlvbihlKXtyZXR1cm4gMSt0Lm1heChlLGZ1bmN0aW9uKHQpe3JldHVybiB0Lnl9KX0obikpOihlLng9cz91Kz1yKGUscyk6MCxlLnk9MCxzPWUpfSk7dmFyIGg9ZnVuY3Rpb24gdChlKXt2YXIgcj1lLmNoaWxkcmVuO3JldHVybiByJiZyLmxlbmd0aD90KHJbMF0pOmV9KGMpLGY9ZnVuY3Rpb24gdChlKXt2YXIgcixuPWUuY2hpbGRyZW47cmV0dXJuIG4mJihyPW4ubGVuZ3RoKT90KG5bci0xXSk6ZX0oYykscD1oLngtcihoLGYpLzIsZD1mLngrcihmLGgpLzI7cmV0dXJuIFBpKGMsYT9mdW5jdGlvbih0KXt0Lng9KHQueC1jLngpKm5bMF0sdC55PShjLnktdC55KSpuWzFdfTpmdW5jdGlvbih0KXt0Lng9KHQueC1wKS8oZC1wKSpuWzBdLHQueT0oMS0oYy55P3QueS9jLnk6MSkpKm5bMV19KSxsfXJldHVybiBpLnNlcGFyYXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dCxpKTpyfSxpLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9bnVsbD09KG49dCksaSk6YT9udWxsOm59LGkubm9kZVNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9bnVsbCE9KG49dCksaSk6YT9uOm51bGx9LExpKGksZSl9LHQubGF5b3V0LnRyZWVtYXA9ZnVuY3Rpb24oKXt2YXIgZSxyPXQubGF5b3V0LmhpZXJhcmNoeSgpLG49TWF0aC5yb3VuZCxhPVsxLDFdLGk9bnVsbCxvPWNvLHM9ITEsbD0ic3F1YXJpZnkiLGM9LjUqKDErTWF0aC5zcXJ0KDUpKTtmdW5jdGlvbiB1KHQsZSl7Zm9yKHZhciByLG4sYT0tMSxpPXQubGVuZ3RoOysrYTxpOyluPShyPXRbYV0pLnZhbHVlKihlPDA/MDplKSxyLmFyZWE9aXNOYU4obil8fG48PTA/MDpufWZ1bmN0aW9uIGgodCl7dmFyIGU9dC5jaGlsZHJlbjtpZihlJiZlLmxlbmd0aCl7dmFyIHIsbixhLGk9byh0KSxzPVtdLGM9ZS5zbGljZSgpLGY9MS8wLGc9InNsaWNlIj09PWw/aS5keDoiZGljZSI9PT1sP2kuZHk6InNsaWNlLWRpY2UiPT09bD8xJnQuZGVwdGg/aS5keTppLmR4Ok1hdGgubWluKGkuZHgsaS5keSk7Zm9yKHUoYyxpLmR4KmkuZHkvdC52YWx1ZSkscy5hcmVhPTA7KGE9Yy5sZW5ndGgpPjA7KXMucHVzaChyPWNbYS0xXSkscy5hcmVhKz1yLmFyZWEsInNxdWFyaWZ5IiE9PWx8fChuPXAocyxnKSk8PWY/KGMucG9wKCksZj1uKToocy5hcmVhLT1zLnBvcCgpLmFyZWEsZChzLGcsaSwhMSksZz1NYXRoLm1pbihpLmR4LGkuZHkpLHMubGVuZ3RoPXMuYXJlYT0wLGY9MS8wKTtzLmxlbmd0aCYmKGQocyxnLGksITApLHMubGVuZ3RoPXMuYXJlYT0wKSxlLmZvckVhY2goaCl9fWZ1bmN0aW9uIGYodCl7dmFyIGU9dC5jaGlsZHJlbjtpZihlJiZlLmxlbmd0aCl7dmFyIHIsbj1vKHQpLGE9ZS5zbGljZSgpLGk9W107Zm9yKHUoYSxuLmR4Km4uZHkvdC52YWx1ZSksaS5hcmVhPTA7cj1hLnBvcCgpOylpLnB1c2gociksaS5hcmVhKz1yLmFyZWEsbnVsbCE9ci56JiYoZChpLHIuej9uLmR4Om4uZHksbiwhYS5sZW5ndGgpLGkubGVuZ3RoPWkuYXJlYT0wKTtlLmZvckVhY2goZil9fWZ1bmN0aW9uIHAodCxlKXtmb3IodmFyIHIsbj10LmFyZWEsYT0wLGk9MS8wLG89LTEscz10Lmxlbmd0aDsrK288czspKHI9dFtvXS5hcmVhKSYmKHI8aSYmKGk9cikscj5hJiYoYT1yKSk7cmV0dXJuIGUqPWUsKG4qPW4pP01hdGgubWF4KGUqYSpjL24sbi8oZSppKmMpKToxLzB9ZnVuY3Rpb24gZCh0LGUscixhKXt2YXIgaSxvPS0xLHM9dC5sZW5ndGgsbD1yLngsYz1yLnksdT1lP24odC5hcmVhL2UpOjA7aWYoZT09ci5keCl7Zm9yKChhfHx1PnIuZHkpJiYodT1yLmR5KTsrK288czspKGk9dFtvXSkueD1sLGkueT1jLGkuZHk9dSxsKz1pLmR4PU1hdGgubWluKHIueCtyLmR4LWwsdT9uKGkuYXJlYS91KTowKTtpLno9ITAsaS5keCs9ci54K3IuZHgtbCxyLnkrPXUsci5keS09dX1lbHNle2ZvcigoYXx8dT5yLmR4KSYmKHU9ci5keCk7KytvPHM7KShpPXRbb10pLng9bCxpLnk9YyxpLmR4PXUsYys9aS5keT1NYXRoLm1pbihyLnkrci5keS1jLHU/bihpLmFyZWEvdSk6MCk7aS56PSExLGkuZHkrPXIueStyLmR5LWMsci54Kz11LHIuZHgtPXV9fWZ1bmN0aW9uIGcodCl7dmFyIG49ZXx8cih0KSxpPW5bMF07cmV0dXJuIGkueD1pLnk9MCxpLnZhbHVlPyhpLmR4PWFbMF0saS5keT1hWzFdKTppLmR4PWkuZHk9MCxlJiZyLnJldmFsdWUoaSksdShbaV0saS5keCppLmR5L2kudmFsdWUpLChlP2Y6aCkoaSkscyYmKGU9biksbn1yZXR1cm4gZy5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPXQsZyk6YX0sZy5wYWRkaW5nPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiBpO2Z1bmN0aW9uIGUoZSl7cmV0dXJuIHVvKGUsdCl9dmFyIHI7cmV0dXJuIG89bnVsbD09KGk9dCk/Y286ImZ1bmN0aW9uIj09KHI9dHlwZW9mIHQpP2Z1bmN0aW9uKGUpe3ZhciByPXQuY2FsbChnLGUsZS5kZXB0aCk7cmV0dXJuIG51bGw9PXI/Y28oZSk6dW8oZSwibnVtYmVyIj09dHlwZW9mIHI/W3IscixyLHJdOnIpfToibnVtYmVyIj09PXI/KHQ9W3QsdCx0LHRdLGUpOmUsZ30sZy5yb3VuZD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10P01hdGgucm91bmQ6TnVtYmVyLGcpOm4hPU51bWJlcn0sZy5zdGlja3k9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9dCxlPW51bGwsZyk6c30sZy5yYXRpbz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz10LGcpOmN9LGcubW9kZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD10KyIiLGcpOmx9LExpKGcscil9LHQucmFuZG9tPXtub3JtYWw6ZnVuY3Rpb24odCxlKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoO3JldHVybiByPDImJihlPTEpLHI8MSYmKHQ9MCksZnVuY3Rpb24oKXt2YXIgcixuLGE7ZG97YT0ocj0yKk1hdGgucmFuZG9tKCktMSkqcisobj0yKk1hdGgucmFuZG9tKCktMSkqbn13aGlsZSghYXx8YT4xKTtyZXR1cm4gdCtlKnIqTWF0aC5zcXJ0KC0yKk1hdGgubG9nKGEpL2EpfX0sbG9nTm9ybWFsOmZ1bmN0aW9uKCl7dmFyIGU9dC5yYW5kb20ubm9ybWFsLmFwcGx5KHQsYXJndW1lbnRzKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5leHAoZSgpKX19LGJhdGVzOmZ1bmN0aW9uKGUpe3ZhciByPXQucmFuZG9tLmlyd2luSGFsbChlKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gcigpL2V9fSxpcndpbkhhbGw6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTAscj0wO3I8dDtyKyspZSs9TWF0aC5yYW5kb20oKTtyZXR1cm4gZX19fSx0LnNjYWxlPXt9O3ZhciBtbz17Zmxvb3I6UCxjZWlsOlB9O2Z1bmN0aW9uIHlvKGUscixuLGEpe3ZhciBpPVtdLG89W10scz0wLGw9TWF0aC5taW4oZS5sZW5ndGgsci5sZW5ndGgpLTE7Zm9yKGVbbF08ZVswXSYmKGU9ZS5zbGljZSgpLnJldmVyc2UoKSxyPXIuc2xpY2UoKS5yZXZlcnNlKCkpOysrczw9bDspaS5wdXNoKG4oZVtzLTFdLGVbc10pKSxvLnB1c2goYShyW3MtMV0scltzXSkpO3JldHVybiBmdW5jdGlvbihyKXt2YXIgbj10LmJpc2VjdChlLHIsMSxsKS0xO3JldHVybiBvW25dKGlbbl0ocikpfX1mdW5jdGlvbiB4byhlLHIpe3JldHVybiB0LnJlYmluZChlLHIsInJhbmdlIiwicmFuZ2VSb3VuZCIsImludGVycG9sYXRlIiwiY2xhbXAiKX1mdW5jdGlvbiBibyh0LGUpe3JldHVybiBnbyh0LHZvKF9vKHQsZSlbMl0pKSxnbyh0LHZvKF9vKHQsZSlbMl0pKSx0fWZ1bmN0aW9uIF9vKHQsZSl7bnVsbD09ZSYmKGU9MTApO3ZhciByPWhvKHQpLG49clsxXS1yWzBdLGE9TWF0aC5wb3coMTAsTWF0aC5mbG9vcihNYXRoLmxvZyhuL2UpL01hdGguTE4xMCkpLGk9ZS9uKmE7cmV0dXJuIGk8PS4xNT9hKj0xMDppPD0uMzU/YSo9NTppPD0uNzUmJihhKj0yKSxyWzBdPU1hdGguY2VpbChyWzBdL2EpKmEsclsxXT1NYXRoLmZsb29yKHJbMV0vYSkqYSsuNSphLHJbMl09YSxyfWZ1bmN0aW9uIHdvKGUscil7cmV0dXJuIHQucmFuZ2UuYXBwbHkodCxfbyhlLHIpKX1mdW5jdGlvbiBrbyhlLHIsbil7dmFyIGE9X28oZSxyKTtpZihuKXt2YXIgaT1QZS5leGVjKG4pO2lmKGkuc2hpZnQoKSwicyI9PT1pWzhdKXt2YXIgbz10LmZvcm1hdFByZWZpeChNYXRoLm1heCh5KGFbMF0pLHkoYVsxXSkpKTtyZXR1cm4gaVs3XXx8KGlbN109Ii4iK01vKG8uc2NhbGUoYVsyXSkpKSxpWzhdPSJmIixuPXQuZm9ybWF0KGkuam9pbigiIikpLGZ1bmN0aW9uKHQpe3JldHVybiBuKG8uc2NhbGUodCkpK28uc3ltYm9sfX1pWzddfHwoaVs3XT0iLiIrZnVuY3Rpb24odCxlKXt2YXIgcj1NbyhlWzJdKTtyZXR1cm4gdCBpbiBUbz9NYXRoLmFicyhyLU1vKE1hdGgubWF4KHkoZVswXSkseShlWzFdKSkpKSsgKygiZSIhPT10KTpyLTIqKCIlIj09PXQpfShpWzhdLGEpKSxuPWkuam9pbigiIil9ZWxzZSBuPSIsLiIrTW8oYVsyXSkrImYiO3JldHVybiB0LmZvcm1hdChuKX10LnNjYWxlLmxpbmVhcj1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiB0KGUscixuLGEpe3ZhciBpLG87ZnVuY3Rpb24gcygpe3ZhciB0PU1hdGgubWluKGUubGVuZ3RoLHIubGVuZ3RoKT4yP3lvOnBvLHM9YT94aTp5aTtyZXR1cm4gaT10KGUscixzLG4pLG89dChyLGUscyxLYSksbH1mdW5jdGlvbiBsKHQpe3JldHVybiBpKHQpfWwuaW52ZXJ0PWZ1bmN0aW9uKHQpe3JldHVybiBvKHQpfTtsLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10Lm1hcChOdW1iZXIpLHMoKSk6ZX07bC5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10LHMoKSk6cn07bC5yYW5nZVJvdW5kPWZ1bmN0aW9uKHQpe3JldHVybiBsLnJhbmdlKHQpLmludGVycG9sYXRlKGhpKX07bC5jbGFtcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT10LHMoKSk6YX07bC5pbnRlcnBvbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10LHMoKSk6bn07bC50aWNrcz1mdW5jdGlvbih0KXtyZXR1cm4gd28oZSx0KX07bC50aWNrRm9ybWF0PWZ1bmN0aW9uKHQscil7cmV0dXJuIGtvKGUsdCxyKX07bC5uaWNlPWZ1bmN0aW9uKHQpe3JldHVybiBibyhlLHQpLHMoKX07bC5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHQoZSxyLG4sYSl9O3JldHVybiBzKCl9KFswLDFdLFswLDFdLEthLCExKX07dmFyIFRvPXtzOjEsZzoxLHA6MSxyOjEsZToxfTtmdW5jdGlvbiBNbyh0KXtyZXR1cm4tTWF0aC5mbG9vcihNYXRoLmxvZyh0KS9NYXRoLkxOMTArLjAxKX10LnNjYWxlLmxvZz1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBlKHIsbixhLGkpe2Z1bmN0aW9uIG8odCl7cmV0dXJuKGE/TWF0aC5sb2codDwwPzA6dCk6LU1hdGgubG9nKHQ+MD8wOi10KSkvTWF0aC5sb2cobil9ZnVuY3Rpb24gcyh0KXtyZXR1cm4gYT9NYXRoLnBvdyhuLHQpOi1NYXRoLnBvdyhuLC10KX1mdW5jdGlvbiBsKHQpe3JldHVybiByKG8odCkpfWwuaW52ZXJ0PWZ1bmN0aW9uKHQpe3JldHVybiBzKHIuaW52ZXJ0KHQpKX07bC5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9dFswXT49MCxyLmRvbWFpbigoaT10Lm1hcChOdW1iZXIpKS5tYXAobykpLGwpOml9O2wuYmFzZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0rdCxyLmRvbWFpbihpLm1hcChvKSksbCk6bn07bC5uaWNlPWZ1bmN0aW9uKCl7dmFyIHQ9Z28oaS5tYXAobyksYT9NYXRoOlNvKTtyZXR1cm4gci5kb21haW4odCksaT10Lm1hcChzKSxsfTtsLnRpY2tzPWZ1bmN0aW9uKCl7dmFyIHQ9aG8oaSksZT1bXSxyPXRbMF0sbD10WzFdLGM9TWF0aC5mbG9vcihvKHIpKSx1PU1hdGguY2VpbChvKGwpKSxoPW4lMT8yOm47aWYoaXNGaW5pdGUodS1jKSl7aWYoYSl7Zm9yKDtjPHU7YysrKWZvcih2YXIgZj0xO2Y8aDtmKyspZS5wdXNoKHMoYykqZik7ZS5wdXNoKHMoYykpfWVsc2UgZm9yKGUucHVzaChzKGMpKTtjKys8dTspZm9yKHZhciBmPWgtMTtmPjA7Zi0tKWUucHVzaChzKGMpKmYpO2ZvcihjPTA7ZVtjXTxyO2MrKyk7Zm9yKHU9ZS5sZW5ndGg7ZVt1LTFdPmw7dS0tKTtlPWUuc2xpY2UoYyx1KX1yZXR1cm4gZX07bC50aWNrRm9ybWF0PWZ1bmN0aW9uKGUscil7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIEFvO2FyZ3VtZW50cy5sZW5ndGg8Mj9yPUFvOiJmdW5jdGlvbiIhPXR5cGVvZiByJiYocj10LmZvcm1hdChyKSk7dmFyIGE9TWF0aC5tYXgoMSxuKmUvbC50aWNrcygpLmxlbmd0aCk7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBlPXQvcyhNYXRoLnJvdW5kKG8odCkpKTtyZXR1cm4gZSpuPG4tLjUmJihlKj1uKSxlPD1hP3IodCk6IiJ9fTtsLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gZShyLmNvcHkoKSxuLGEsaSl9O3JldHVybiB4byhsLHIpfSh0LnNjYWxlLmxpbmVhcigpLmRvbWFpbihbMCwxXSksMTAsITAsWzEsMTBdKX07dmFyIEFvPXQuZm9ybWF0KCIuMGUiKSxTbz17Zmxvb3I6ZnVuY3Rpb24odCl7cmV0dXJuLU1hdGguY2VpbCgtdCl9LGNlaWw6ZnVuY3Rpb24odCl7cmV0dXJuLU1hdGguZmxvb3IoLXQpfX07ZnVuY3Rpb24gRW8odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlPDA/LU1hdGgucG93KC1lLHQpOk1hdGgucG93KGUsdCl9fXQuc2NhbGUucG93PWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIHQoZSxyLG4pe3ZhciBhPUVvKHIpLGk9RW8oMS9yKTtmdW5jdGlvbiBvKHQpe3JldHVybiBlKGEodCkpfW8uaW52ZXJ0PWZ1bmN0aW9uKHQpe3JldHVybiBpKGUuaW52ZXJ0KHQpKX07by5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGUuZG9tYWluKChuPXQubWFwKE51bWJlcikpLm1hcChhKSksbyk6bn07by50aWNrcz1mdW5jdGlvbih0KXtyZXR1cm4gd28obix0KX07by50aWNrRm9ybWF0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGtvKG4sdCxlKX07by5uaWNlPWZ1bmN0aW9uKHQpe3JldHVybiBvLmRvbWFpbihibyhuLHQpKX07by5leHBvbmVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1FbyhyPXQpLGk9RW8oMS9yKSxlLmRvbWFpbihuLm1hcChhKSksbyk6cn07by5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHQoZS5jb3B5KCkscixuKX07cmV0dXJuIHhvKG8sZSl9KHQuc2NhbGUubGluZWFyKCksMSxbMCwxXSl9LHQuc2NhbGUuc3FydD1mdW5jdGlvbigpe3JldHVybiB0LnNjYWxlLnBvdygpLmV4cG9uZW50KC41KX0sdC5zY2FsZS5vcmRpbmFsPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGUocixuKXt2YXIgYSxpLG87ZnVuY3Rpb24gcyh0KXtyZXR1cm4gaVsoKGEuZ2V0KHQpfHwoInJhbmdlIj09PW4udD9hLnNldCh0LHIucHVzaCh0KSk6TmFOKSktMSklaS5sZW5ndGhdfWZ1bmN0aW9uIGwoZSxuKXtyZXR1cm4gdC5yYW5nZShyLmxlbmd0aCkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBlK24qdH0pfXMuZG9tYWluPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiByO3I9W10sYT1uZXcgYjtmb3IodmFyIGUsaT0tMSxvPXQubGVuZ3RoOysraTxvOylhLmhhcyhlPXRbaV0pfHxhLnNldChlLHIucHVzaChlKSk7cmV0dXJuIHNbbi50XS5hcHBseShzLG4uYSl9O3MucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9dCxvPTAsbj17dDoicmFuZ2UiLGE6YXJndW1lbnRzfSxzKTppfTtzLnJhbmdlUG9pbnRzPWZ1bmN0aW9uKHQsZSl7YXJndW1lbnRzLmxlbmd0aDwyJiYoZT0wKTt2YXIgYT10WzBdLGM9dFsxXSx1PXIubGVuZ3RoPDI/KGE9KGErYykvMiwwKTooYy1hKS8oci5sZW5ndGgtMStlKTtyZXR1cm4gaT1sKGErdSplLzIsdSksbz0wLG49e3Q6InJhbmdlUG9pbnRzIixhOmFyZ3VtZW50c30sc307cy5yYW5nZVJvdW5kUG9pbnRzPWZ1bmN0aW9uKHQsZSl7YXJndW1lbnRzLmxlbmd0aDwyJiYoZT0wKTt2YXIgYT10WzBdLGM9dFsxXSx1PXIubGVuZ3RoPDI/KGE9Yz1NYXRoLnJvdW5kKChhK2MpLzIpLDApOihjLWEpLyhyLmxlbmd0aC0xK2UpfDA7cmV0dXJuIGk9bChhK01hdGgucm91bmQodSplLzIrKGMtYS0oci5sZW5ndGgtMStlKSp1KS8yKSx1KSxvPTAsbj17dDoicmFuZ2VSb3VuZFBvaW50cyIsYTphcmd1bWVudHN9LHN9O3MucmFuZ2VCYW5kcz1mdW5jdGlvbih0LGUsYSl7YXJndW1lbnRzLmxlbmd0aDwyJiYoZT0wKSxhcmd1bWVudHMubGVuZ3RoPDMmJihhPWUpO3ZhciBjPXRbMV08dFswXSx1PXRbYy0wXSxoPXRbMS1jXSxmPShoLXUpLyhyLmxlbmd0aC1lKzIqYSk7cmV0dXJuIGk9bCh1K2YqYSxmKSxjJiZpLnJldmVyc2UoKSxvPWYqKDEtZSksbj17dDoicmFuZ2VCYW5kcyIsYTphcmd1bWVudHN9LHN9O3MucmFuZ2VSb3VuZEJhbmRzPWZ1bmN0aW9uKHQsZSxhKXthcmd1bWVudHMubGVuZ3RoPDImJihlPTApLGFyZ3VtZW50cy5sZW5ndGg8MyYmKGE9ZSk7dmFyIGM9dFsxXTx0WzBdLHU9dFtjLTBdLGg9dFsxLWNdLGY9TWF0aC5mbG9vcigoaC11KS8oci5sZW5ndGgtZSsyKmEpKTtyZXR1cm4gaT1sKHUrTWF0aC5yb3VuZCgoaC11LShyLmxlbmd0aC1lKSpmKS8yKSxmKSxjJiZpLnJldmVyc2UoKSxvPU1hdGgucm91bmQoZiooMS1lKSksbj17dDoicmFuZ2VSb3VuZEJhbmRzIixhOmFyZ3VtZW50c30sc307cy5yYW5nZUJhbmQ9ZnVuY3Rpb24oKXtyZXR1cm4gb307cy5yYW5nZUV4dGVudD1mdW5jdGlvbigpe3JldHVybiBobyhuLmFbMF0pfTtzLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gZShyLG4pfTtyZXR1cm4gcy5kb21haW4ocil9KFtdLHt0OiJyYW5nZSIsYTpbW11dfSl9LHQuc2NhbGUuY2F0ZWdvcnkxMD1mdW5jdGlvbigpe3JldHVybiB0LnNjYWxlLm9yZGluYWwoKS5yYW5nZShMbyl9LHQuc2NhbGUuY2F0ZWdvcnkyMD1mdW5jdGlvbigpe3JldHVybiB0LnNjYWxlLm9yZGluYWwoKS5yYW5nZShDbyl9LHQuc2NhbGUuY2F0ZWdvcnkyMGI9ZnVuY3Rpb24oKXtyZXR1cm4gdC5zY2FsZS5vcmRpbmFsKCkucmFuZ2UoUG8pfSx0LnNjYWxlLmNhdGVnb3J5MjBjPWZ1bmN0aW9uKCl7cmV0dXJuIHQuc2NhbGUub3JkaW5hbCgpLnJhbmdlKE9vKX07dmFyIExvPVsyMDYyMjYwLDE2NzQ0MjA2LDI5MjQ1ODgsMTQwMzQ3MjgsOTcyNTg4NSw5MTk3MTMxLDE0OTA3MzMwLDgzNTU3MTEsMTIzNjkxODYsMTU1NjE3NV0ubWFwKHNlKSxDbz1bMjA2MjI2MCwxMTQ1NDQ0MCwxNjc0NDIwNiwxNjc1OTY3MiwyOTI0NTg4LDEwMDE4Njk4LDE0MDM0NzI4LDE2NzUwNzQyLDk3MjU4ODUsMTI5NTU4NjEsOTE5NzEzMSwxMjg4NTE0MCwxNDkwNzMzMCwxNjIzNDE5NCw4MzU1NzExLDEzMDkyODA3LDEyMzY5MTg2LDE0NDA4NTg5LDE1NTYxNzUsMTA0MTA3MjVdLm1hcChzZSksUG89WzM3NTA3NzcsNTM5NTYxOSw3MDQwNzE5LDEwMjY0Mjg2LDY1MTkwOTcsOTIxNjU5NCwxMTkxNTExNSwxMzU1NjYzNiw5MjAyOTkzLDEyNDI2ODA5LDE1MTg2NTE0LDE1MTkwOTMyLDg2NjYxNjksMTEzNTY0OTAsMTQwNDk2NDMsMTUxNzczNzIsODA3NzY4MywxMDgzNDMyNCwxMzUyODUwOSwxNDU4OTY1NF0ubWFwKHNlKSxPbz1bMzI0NDczMyw3MDU3MTEwLDEwNDA2NjI1LDEzMDMyNDMxLDE1MDk1MDUzLDE2NjE2NzY0LDE2NjI1MjU5LDE2NjM0MDE4LDMyNTMwNzYsNzY1MjQ3MCwxMDYwNzAwMywxMzEwMTUwNCw3Njk1MjgxLDEwMzk0MzEyLDEyMzY5MzcyLDE0MzQyODkxLDY1MTM1MDcsOTg2ODk1MCwxMjQzNDg3NywxNDI3NzA4MV0ubWFwKHNlKTtmdW5jdGlvbiB6bygpe3JldHVybiAwfXQuc2NhbGUucXVhbnRpbGU9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gZShyLG4pe3ZhciBhO2Z1bmN0aW9uIGkoKXt2YXIgZT0wLGk9bi5sZW5ndGg7Zm9yKGE9W107KytlPGk7KWFbZS0xXT10LnF1YW50aWxlKHIsZS9pKTtyZXR1cm4gb31mdW5jdGlvbiBvKGUpe2lmKCFpc05hTihlPStlKSlyZXR1cm4gblt0LmJpc2VjdChhLGUpXX1vLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10Lm1hcChwKS5maWx0ZXIoZCkuc29ydChmKSxpKCkpOnJ9O28ucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dCxpKCkpOm59O28ucXVhbnRpbGVzPWZ1bmN0aW9uKCl7cmV0dXJuIGF9O28uaW52ZXJ0RXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybih0PW4uaW5kZXhPZih0KSk8MD9bTmFOLE5hTl06W3Q+MD9hW3QtMV06clswXSx0PGEubGVuZ3RoP2FbdF06cltyLmxlbmd0aC0xXV19O28uY29weT1mdW5jdGlvbigpe3JldHVybiBlKHIsbil9O3JldHVybiBpKCl9KFtdLFtdKX0sdC5zY2FsZS5xdWFudGl6ZT1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiB0KGUscixuKXt2YXIgYSxpO2Z1bmN0aW9uIG8odCl7cmV0dXJuIG5bTWF0aC5tYXgoMCxNYXRoLm1pbihpLE1hdGguZmxvb3IoYSoodC1lKSkpKV19ZnVuY3Rpb24gcygpe3JldHVybiBhPW4ubGVuZ3RoLyhyLWUpLGk9bi5sZW5ndGgtMSxvfW8uZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSt0WzBdLHI9K3RbdC5sZW5ndGgtMV0scygpKTpbZSxyXX07by5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10LHMoKSk6bn07by5pbnZlcnRFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuW3Q9KHQ9bi5pbmRleE9mKHQpKTwwP05hTjp0L2ErZSx0KzEvYV19O28uY29weT1mdW5jdGlvbigpe3JldHVybiB0KGUscixuKX07cmV0dXJuIHMoKX0oMCwxLFswLDFdKX0sdC5zY2FsZS50aHJlc2hvbGQ9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gZShyLG4pe2Z1bmN0aW9uIGEoZSl7aWYoZTw9ZSlyZXR1cm4gblt0LmJpc2VjdChyLGUpXX1hLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10LGEpOnJ9O2EucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dCxhKTpufTthLmludmVydEV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gdD1uLmluZGV4T2YodCksW3JbdC0xXSxyW3RdXX07YS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIGUocixuKX07cmV0dXJuIGF9KFsuNV0sWzAsMV0pfSx0LnNjYWxlLmlkZW50aXR5PWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4rdH1yLmludmVydD1yO3IuZG9tYWluPXIucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dC5tYXAocikscik6ZX07ci50aWNrcz1mdW5jdGlvbih0KXtyZXR1cm4gd28oZSx0KX07ci50aWNrRm9ybWF0PWZ1bmN0aW9uKHQscil7cmV0dXJuIGtvKGUsdCxyKX07ci5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHQoZSl9O3JldHVybiByfShbMCwxXSl9LHQuc3ZnPXt9LHQuc3ZnLmFyYz1mdW5jdGlvbigpe3ZhciB0PURvLGU9Um8scj16byxuPUlvLGE9Rm8saT1CbyxvPU5vO2Z1bmN0aW9uIHMoKXt2YXIgcz1NYXRoLm1heCgwLCt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKSksYz1NYXRoLm1heCgwLCtlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksdT1hLmFwcGx5KHRoaXMsYXJndW1lbnRzKS1FdCxoPWkuYXBwbHkodGhpcyxhcmd1bWVudHMpLUV0LGY9TWF0aC5hYnMoaC11KSxwPXU+aD8wOjE7aWYoYzxzJiYoZD1jLGM9cyxzPWQpLGY+PVN0KXJldHVybiBsKGMscCkrKHM/bChzLDEtcCk6IiIpKyJaIjt2YXIgZCxnLHYsbSx5LHgsYixfLHcsayxULE0sQT0wLFM9MCxFPVtdO2lmKChtPSgrby5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fDApLzIpJiYodj1uPT09SW8/TWF0aC5zcXJ0KHMqcytjKmMpOituLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxwfHwoUyo9LTEpLGMmJihTPUl0KHYvYypNYXRoLnNpbihtKSkpLHMmJihBPUl0KHYvcypNYXRoLnNpbihtKSkpKSxjKXt5PWMqTWF0aC5jb3ModStTKSx4PWMqTWF0aC5zaW4odStTKSxiPWMqTWF0aC5jb3MoaC1TKSxfPWMqTWF0aC5zaW4oaC1TKTt2YXIgTD1NYXRoLmFicyhoLXUtMipTKTw9TXQ/MDoxO2lmKFMmJmpvKHkseCxiLF8pPT09cF5MKXt2YXIgQz0odStoKS8yO3k9YypNYXRoLmNvcyhDKSx4PWMqTWF0aC5zaW4oQyksYj1fPW51bGx9fWVsc2UgeT14PTA7aWYocyl7dz1zKk1hdGguY29zKGgtQSksaz1zKk1hdGguc2luKGgtQSksVD1zKk1hdGguY29zKHUrQSksTT1zKk1hdGguc2luKHUrQSk7dmFyIFA9TWF0aC5hYnModS1oKzIqQSk8PU10PzA6MTtpZihBJiZqbyh3LGssVCxNKT09PTEtcF5QKXt2YXIgTz0odStoKS8yO3c9cypNYXRoLmNvcyhPKSxrPXMqTWF0aC5zaW4oTyksVD1NPW51bGx9fWVsc2Ugdz1rPTA7aWYoZj5rdCYmKGQ9TWF0aC5taW4oTWF0aC5hYnMoYy1zKS8yLCtyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSkpPi4wMDEpe2c9czxjXnA/MDoxO3ZhciB6PWQsST1kO2lmKGY8TXQpe3ZhciBEPW51bGw9PVQ/W3csa106bnVsbD09Yj9beSx4XTpjYShbeSx4XSxbVCxNXSxbYixfXSxbdyxrXSksUj15LURbMF0sRj14LURbMV0sQj1iLURbMF0sTj1fLURbMV0saj0xL01hdGguc2luKE1hdGguYWNvcygoUipCK0YqTikvKE1hdGguc3FydChSKlIrRipGKSpNYXRoLnNxcnQoQipCK04qTikpKS8yKSxWPU1hdGguc3FydChEWzBdKkRbMF0rRFsxXSpEWzFdKTtJPU1hdGgubWluKGQsKHMtVikvKGotMSkpLHo9TWF0aC5taW4oZCwoYy1WKS8oaisxKSl9aWYobnVsbCE9Yil7dmFyIFU9Vm8obnVsbD09VD9bdyxrXTpbVCxNXSxbeSx4XSxjLHoscCkscT1WbyhbYixfXSxbdyxrXSxjLHoscCk7ZD09PXo/RS5wdXNoKCJNIixVWzBdLCJBIix6LCIsIix6LCIgMCAwLCIsZywiICIsVVsxXSwiQSIsYywiLCIsYywiIDAgIiwxLXBeam8oVVsxXVswXSxVWzFdWzFdLHFbMV1bMF0scVsxXVsxXSksIiwiLHAsIiAiLHFbMV0sIkEiLHosIiwiLHosIiAwIDAsIixnLCIgIixxWzBdKTpFLnB1c2goIk0iLFVbMF0sIkEiLHosIiwiLHosIiAwIDEsIixnLCIgIixxWzBdKX1lbHNlIEUucHVzaCgiTSIseSwiLCIseCk7aWYobnVsbCE9VCl7dmFyIEg9Vm8oW3kseF0sW1QsTV0scywtSSxwKSxHPVZvKFt3LGtdLG51bGw9PWI/W3kseF06W2IsX10scywtSSxwKTtkPT09ST9FLnB1c2goIkwiLEdbMF0sIkEiLEksIiwiLEksIiAwIDAsIixnLCIgIixHWzFdLCJBIixzLCIsIixzLCIgMCAiLHBeam8oR1sxXVswXSxHWzFdWzFdLEhbMV1bMF0sSFsxXVsxXSksIiwiLDEtcCwiICIsSFsxXSwiQSIsSSwiLCIsSSwiIDAgMCwiLGcsIiAiLEhbMF0pOkUucHVzaCgiTCIsR1swXSwiQSIsSSwiLCIsSSwiIDAgMCwiLGcsIiAiLEhbMF0pfWVsc2UgRS5wdXNoKCJMIix3LCIsIixrKX1lbHNlIEUucHVzaCgiTSIseSwiLCIseCksbnVsbCE9YiYmRS5wdXNoKCJBIixjLCIsIixjLCIgMCAiLEwsIiwiLHAsIiAiLGIsIiwiLF8pLEUucHVzaCgiTCIsdywiLCIsayksbnVsbCE9VCYmRS5wdXNoKCJBIixzLCIsIixzLCIgMCAiLFAsIiwiLDEtcCwiICIsVCwiLCIsTSk7cmV0dXJuIEUucHVzaCgiWiIpLEUuam9pbigiIil9ZnVuY3Rpb24gbCh0LGUpe3JldHVybiJNMCwiK3QrIkEiK3QrIiwiK3QrIiAwIDEsIitlKyIgMCwiKy10KyJBIit0KyIsIit0KyIgMCAxLCIrZSsiIDAsIit0fXJldHVybiBzLmlubmVyUmFkaXVzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PXZlKGUpLHMpOnR9LHMub3V0ZXJSYWRpdXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dmUodCkscyk6ZX0scy5jb3JuZXJSYWRpdXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dmUodCkscyk6cn0scy5wYWRSYWRpdXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dD09SW8/SW86dmUodCkscyk6bn0scy5zdGFydEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPXZlKHQpLHMpOmF9LHMuZW5kQW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9dmUodCkscyk6aX0scy5wYWRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz12ZSh0KSxzKTpvfSxzLmNlbnRyb2lkPWZ1bmN0aW9uKCl7dmFyIHI9KCt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKSsgK2UuYXBwbHkodGhpcyxhcmd1bWVudHMpKS8yLG49KCthLmFwcGx5KHRoaXMsYXJndW1lbnRzKSsgK2kuYXBwbHkodGhpcyxhcmd1bWVudHMpKS8yLUV0O3JldHVybltNYXRoLmNvcyhuKSpyLE1hdGguc2luKG4pKnJdfSxzfTt2YXIgSW89ImF1dG8iO2Z1bmN0aW9uIERvKHQpe3JldHVybiB0LmlubmVyUmFkaXVzfWZ1bmN0aW9uIFJvKHQpe3JldHVybiB0Lm91dGVyUmFkaXVzfWZ1bmN0aW9uIEZvKHQpe3JldHVybiB0LnN0YXJ0QW5nbGV9ZnVuY3Rpb24gQm8odCl7cmV0dXJuIHQuZW5kQW5nbGV9ZnVuY3Rpb24gTm8odCl7cmV0dXJuIHQmJnQucGFkQW5nbGV9ZnVuY3Rpb24gam8odCxlLHIsbil7cmV0dXJuKHQtcikqZS0oZS1uKSp0PjA/MDoxfWZ1bmN0aW9uIFZvKHQsZSxyLG4sYSl7dmFyIGk9dFswXS1lWzBdLG89dFsxXS1lWzFdLHM9KGE/bjotbikvTWF0aC5zcXJ0KGkqaStvKm8pLGw9cypvLGM9LXMqaSx1PXRbMF0rbCxoPXRbMV0rYyxmPWVbMF0rbCxwPWVbMV0rYyxkPSh1K2YpLzIsZz0oaCtwKS8yLHY9Zi11LG09cC1oLHk9dip2K20qbSx4PXItbixiPXUqcC1mKmgsXz0obTwwPy0xOjEpKk1hdGguc3FydChNYXRoLm1heCgwLHgqeCp5LWIqYikpLHc9KGIqbS12Kl8pL3ksaz0oLWIqdi1tKl8pL3ksVD0oYiptK3YqXykveSxNPSgtYip2K20qXykveSxBPXctZCxTPWstZyxFPVQtZCxMPU0tZztyZXR1cm4gQSpBK1MqUz5FKkUrTCpMJiYodz1ULGs9TSksW1t3LWwsay1jXSxbdypyL3gsaypyL3hdXX1mdW5jdGlvbiBVbyh0KXt2YXIgZT1uYSxyPWFhLG49WHIsYT1IbyxpPWEua2V5LG89Ljc7ZnVuY3Rpb24gcyhpKXt2YXIgcyxsPVtdLGM9W10sdT0tMSxoPWkubGVuZ3RoLGY9dmUoZSkscD12ZShyKTtmdW5jdGlvbiBkKCl7bC5wdXNoKCJNIixhKHQoYyksbykpfWZvcig7Kyt1PGg7KW4uY2FsbCh0aGlzLHM9aVt1XSx1KT9jLnB1c2goWytmLmNhbGwodGhpcyxzLHUpLCtwLmNhbGwodGhpcyxzLHUpXSk6Yy5sZW5ndGgmJihkKCksYz1bXSk7cmV0dXJuIGMubGVuZ3RoJiZkKCksbC5sZW5ndGg/bC5qb2luKCIiKTpudWxsfXJldHVybiBzLng9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxzKTplfSxzLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dCxzKTpyfSxzLmRlZmluZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dCxzKTpufSxzLmludGVycG9sYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P2E9dDooYT1xby5nZXQodCl8fEhvKS5rZXkscyk6aX0scy50ZW5zaW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPXQscyk6b30sc310LnN2Zy5saW5lPWZ1bmN0aW9uKCl7cmV0dXJuIFVvKFApfTt2YXIgcW89dC5tYXAoe2xpbmVhcjpIbywibGluZWFyLWNsb3NlZCI6R28sc3RlcDpmdW5jdGlvbih0KXt2YXIgZT0wLHI9dC5sZW5ndGgsbj10WzBdLGE9W25bMF0sIiwiLG5bMV1dO2Zvcig7KytlPHI7KWEucHVzaCgiSCIsKG5bMF0rKG49dFtlXSlbMF0pLzIsIlYiLG5bMV0pO3I+MSYmYS5wdXNoKCJIIixuWzBdKTtyZXR1cm4gYS5qb2luKCIiKX0sInN0ZXAtYmVmb3JlIjpZbywic3RlcC1hZnRlciI6V28sYmFzaXM6Sm8sImJhc2lzLW9wZW4iOmZ1bmN0aW9uKHQpe2lmKHQubGVuZ3RoPDQpcmV0dXJuIEhvKHQpO3ZhciBlLHI9W10sbj0tMSxhPXQubGVuZ3RoLGk9WzBdLG89WzBdO2Zvcig7KytuPDM7KWU9dFtuXSxpLnB1c2goZVswXSksby5wdXNoKGVbMV0pO3IucHVzaChLbyh0cyxpKSsiLCIrS28odHMsbykpLC0tbjtmb3IoOysrbjxhOyllPXRbbl0saS5zaGlmdCgpLGkucHVzaChlWzBdKSxvLnNoaWZ0KCksby5wdXNoKGVbMV0pLGVzKHIsaSxvKTtyZXR1cm4gci5qb2luKCIiKX0sImJhc2lzLWNsb3NlZCI6ZnVuY3Rpb24odCl7dmFyIGUscixuPS0xLGE9dC5sZW5ndGgsaT1hKzQsbz1bXSxzPVtdO2Zvcig7KytuPDQ7KXI9dFtuJWFdLG8ucHVzaChyWzBdKSxzLnB1c2goclsxXSk7ZT1bS28odHMsbyksIiwiLEtvKHRzLHMpXSwtLW47Zm9yKDsrK248aTspcj10W24lYV0sby5zaGlmdCgpLG8ucHVzaChyWzBdKSxzLnNoaWZ0KCkscy5wdXNoKHJbMV0pLGVzKGUsbyxzKTtyZXR1cm4gZS5qb2luKCIiKX0sYnVuZGxlOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5sZW5ndGgtMTtpZihyKWZvcih2YXIgbixhLGk9dFswXVswXSxvPXRbMF1bMV0scz10W3JdWzBdLWksbD10W3JdWzFdLW8sYz0tMTsrK2M8PXI7KW49dFtjXSxhPWMvcixuWzBdPWUqblswXSsoMS1lKSooaSthKnMpLG5bMV09ZSpuWzFdKygxLWUpKihvK2EqbCk7cmV0dXJuIEpvKHQpfSxjYXJkaW5hbDpmdW5jdGlvbih0LGUpe3JldHVybiB0Lmxlbmd0aDwzP0hvKHQpOnRbMF0rWG8odCxabyh0LGUpKX0sImNhcmRpbmFsLW9wZW4iOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQubGVuZ3RoPDQ/SG8odCk6dFsxXStYbyh0LnNsaWNlKDEsLTEpLFpvKHQsZSkpfSwiY2FyZGluYWwtY2xvc2VkIjpmdW5jdGlvbih0LGUpe3JldHVybiB0Lmxlbmd0aDwzP0dvKHQpOnRbMF0rWG8oKHQucHVzaCh0WzBdKSx0KSxabyhbdFt0Lmxlbmd0aC0yXV0uY29uY2F0KHQsW3RbMV1dKSxlKSl9LG1vbm90b25lOmZ1bmN0aW9uKHQpe3JldHVybiB0Lmxlbmd0aDwzP0hvKHQpOnRbMF0rWG8odCxmdW5jdGlvbih0KXt2YXIgZSxyLG4sYSxpPVtdLG89ZnVuY3Rpb24odCl7dmFyIGU9MCxyPXQubGVuZ3RoLTEsbj1bXSxhPXRbMF0saT10WzFdLG89blswXT1ycyhhLGkpO2Zvcig7KytlPHI7KW5bZV09KG8rKG89cnMoYT1pLGk9dFtlKzFdKSkpLzI7cmV0dXJuIG5bZV09byxufSh0KSxzPS0xLGw9dC5sZW5ndGgtMTtmb3IoOysrczxsOyllPXJzKHRbc10sdFtzKzFdKSx5KGUpPGt0P29bc109b1tzKzFdPTA6KHI9b1tzXS9lLG49b1tzKzFdL2UsKGE9cipyK24qbik+OSYmKGE9MyplL01hdGguc3FydChhKSxvW3NdPWEqcixvW3MrMV09YSpuKSk7cz0tMTtmb3IoOysrczw9bDspYT0odFtNYXRoLm1pbihsLHMrMSldWzBdLXRbTWF0aC5tYXgoMCxzLTEpXVswXSkvKDYqKDErb1tzXSpvW3NdKSksaS5wdXNoKFthfHwwLG9bc10qYXx8MF0pO3JldHVybiBpfSh0KSl9fSk7ZnVuY3Rpb24gSG8odCl7cmV0dXJuIHQubGVuZ3RoPjE/dC5qb2luKCJMIik6dCsiWiJ9ZnVuY3Rpb24gR28odCl7cmV0dXJuIHQuam9pbigiTCIpKyJaIn1mdW5jdGlvbiBZbyh0KXtmb3IodmFyIGU9MCxyPXQubGVuZ3RoLG49dFswXSxhPVtuWzBdLCIsIixuWzFdXTsrK2U8cjspYS5wdXNoKCJWIiwobj10W2VdKVsxXSwiSCIsblswXSk7cmV0dXJuIGEuam9pbigiIil9ZnVuY3Rpb24gV28odCl7Zm9yKHZhciBlPTAscj10Lmxlbmd0aCxuPXRbMF0sYT1bblswXSwiLCIsblsxXV07KytlPHI7KWEucHVzaCgiSCIsKG49dFtlXSlbMF0sIlYiLG5bMV0pO3JldHVybiBhLmpvaW4oIiIpfWZ1bmN0aW9uIFhvKHQsZSl7aWYoZS5sZW5ndGg8MXx8dC5sZW5ndGghPWUubGVuZ3RoJiZ0Lmxlbmd0aCE9ZS5sZW5ndGgrMilyZXR1cm4gSG8odCk7dmFyIHI9dC5sZW5ndGghPWUubGVuZ3RoLG49IiIsYT10WzBdLGk9dFsxXSxvPWVbMF0scz1vLGw9MTtpZihyJiYobis9IlEiKyhpWzBdLTIqb1swXS8zKSsiLCIrKGlbMV0tMipvWzFdLzMpKyIsIitpWzBdKyIsIitpWzFdLGE9dFsxXSxsPTIpLGUubGVuZ3RoPjEpe3M9ZVsxXSxpPXRbbF0sbCsrLG4rPSJDIisoYVswXStvWzBdKSsiLCIrKGFbMV0rb1sxXSkrIiwiKyhpWzBdLXNbMF0pKyIsIisoaVsxXS1zWzFdKSsiLCIraVswXSsiLCIraVsxXTtmb3IodmFyIGM9MjtjPGUubGVuZ3RoO2MrKyxsKyspaT10W2xdLHM9ZVtjXSxuKz0iUyIrKGlbMF0tc1swXSkrIiwiKyhpWzFdLXNbMV0pKyIsIitpWzBdKyIsIitpWzFdfWlmKHIpe3ZhciB1PXRbbF07bis9IlEiKyhpWzBdKzIqc1swXS8zKSsiLCIrKGlbMV0rMipzWzFdLzMpKyIsIit1WzBdKyIsIit1WzFdfXJldHVybiBufWZ1bmN0aW9uIFpvKHQsZSl7Zm9yKHZhciByLG49W10sYT0oMS1lKS8yLGk9dFswXSxvPXRbMV0scz0xLGw9dC5sZW5ndGg7KytzPGw7KXI9aSxpPW8sbz10W3NdLG4ucHVzaChbYSoob1swXS1yWzBdKSxhKihvWzFdLXJbMV0pXSk7cmV0dXJuIG59ZnVuY3Rpb24gSm8odCl7aWYodC5sZW5ndGg8MylyZXR1cm4gSG8odCk7dmFyIGU9MSxyPXQubGVuZ3RoLG49dFswXSxhPW5bMF0saT1uWzFdLG89W2EsYSxhLChuPXRbMV0pWzBdXSxzPVtpLGksaSxuWzFdXSxsPVthLCIsIixpLCJMIixLbyh0cyxvKSwiLCIsS28odHMscyldO2Zvcih0LnB1c2godFtyLTFdKTsrK2U8PXI7KW49dFtlXSxvLnNoaWZ0KCksby5wdXNoKG5bMF0pLHMuc2hpZnQoKSxzLnB1c2goblsxXSksZXMobCxvLHMpO3JldHVybiB0LnBvcCgpLGwucHVzaCgiTCIsbiksbC5qb2luKCIiKX1mdW5jdGlvbiBLbyh0LGUpe3JldHVybiB0WzBdKmVbMF0rdFsxXSplWzFdK3RbMl0qZVsyXSt0WzNdKmVbM119cW8uZm9yRWFjaChmdW5jdGlvbih0LGUpe2Uua2V5PXQsZS5jbG9zZWQ9Ly1jbG9zZWQkLy50ZXN0KHQpfSk7dmFyIFFvPVswLDIvMywxLzMsMF0sJG89WzAsMS8zLDIvMywwXSx0cz1bMCwxLzYsMi8zLDEvNl07ZnVuY3Rpb24gZXModCxlLHIpe3QucHVzaCgiQyIsS28oUW8sZSksIiwiLEtvKFFvLHIpLCIsIixLbygkbyxlKSwiLCIsS28oJG8sciksIiwiLEtvKHRzLGUpLCIsIixLbyh0cyxyKSl9ZnVuY3Rpb24gcnModCxlKXtyZXR1cm4oZVsxXS10WzFdKS8oZVswXS10WzBdKX1mdW5jdGlvbiBucyh0KXtmb3IodmFyIGUscixuLGE9LTEsaT10Lmxlbmd0aDsrK2E8aTspcj0oZT10W2FdKVswXSxuPWVbMV0tRXQsZVswXT1yKk1hdGguY29zKG4pLGVbMV09cipNYXRoLnNpbihuKTtyZXR1cm4gdH1mdW5jdGlvbiBhcyh0KXt2YXIgZT1uYSxyPW5hLG49MCxhPWFhLGk9WHIsbz1IbyxzPW8ua2V5LGw9byxjPSJMIix1PS43O2Z1bmN0aW9uIGgocyl7dmFyIGgsZixwLGQ9W10sZz1bXSx2PVtdLG09LTEseT1zLmxlbmd0aCx4PXZlKGUpLGI9dmUobiksXz1lPT09cj9mdW5jdGlvbigpe3JldHVybiBmfTp2ZShyKSx3PW49PT1hP2Z1bmN0aW9uKCl7cmV0dXJuIHB9OnZlKGEpO2Z1bmN0aW9uIGsoKXtkLnB1c2goIk0iLG8odCh2KSx1KSxjLGwodChnLnJldmVyc2UoKSksdSksIloiKX1mb3IoOysrbTx5OylpLmNhbGwodGhpcyxoPXNbbV0sbSk/KGcucHVzaChbZj0reC5jYWxsKHRoaXMsaCxtKSxwPStiLmNhbGwodGhpcyxoLG0pXSksdi5wdXNoKFsrXy5jYWxsKHRoaXMsaCxtKSwrdy5jYWxsKHRoaXMsaCxtKV0pKTpnLmxlbmd0aCYmKGsoKSxnPVtdLHY9W10pO3JldHVybiBnLmxlbmd0aCYmaygpLGQubGVuZ3RoP2Quam9pbigiIik6bnVsbH1yZXR1cm4gaC54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXI9dCxoKTpyfSxoLngwPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXQsaCk6ZX0saC54MT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10LGgpOnJ9LGgueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1hPXQsaCk6YX0saC55MD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10LGgpOm59LGgueTE9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9dCxoKTphfSxoLmRlZmluZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9dCxoKTppfSxoLmludGVycG9sYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPSJmdW5jdGlvbiI9PXR5cGVvZiB0P289dDoobz1xby5nZXQodCl8fEhvKS5rZXksbD1vLnJldmVyc2V8fG8sYz1vLmNsb3NlZD8iTSI6IkwiLGgpOnN9LGgudGVuc2lvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT10LGgpOnV9LGh9ZnVuY3Rpb24gaXModCl7cmV0dXJuIHQucmFkaXVzfWZ1bmN0aW9uIG9zKHQpe3JldHVyblt0LngsdC55XX1mdW5jdGlvbiBzcygpe3JldHVybiA2NH1mdW5jdGlvbiBscygpe3JldHVybiJjaXJjbGUifWZ1bmN0aW9uIGNzKHQpe3ZhciBlPU1hdGguc3FydCh0L010KTtyZXR1cm4iTTAsIitlKyJBIitlKyIsIitlKyIgMCAxLDEgMCwiKy1lKyJBIitlKyIsIitlKyIgMCAxLDEgMCwiK2UrIloifXQuc3ZnLmxpbmUucmFkaWFsPWZ1bmN0aW9uKCl7dmFyIHQ9VW8obnMpO3JldHVybiB0LnJhZGl1cz10LngsZGVsZXRlIHQueCx0LmFuZ2xlPXQueSxkZWxldGUgdC55LHR9LFlvLnJldmVyc2U9V28sV28ucmV2ZXJzZT1Zbyx0LnN2Zy5hcmVhPWZ1bmN0aW9uKCl7cmV0dXJuIGFzKFApfSx0LnN2Zy5hcmVhLnJhZGlhbD1mdW5jdGlvbigpe3ZhciB0PWFzKG5zKTtyZXR1cm4gdC5yYWRpdXM9dC54LGRlbGV0ZSB0LngsdC5pbm5lclJhZGl1cz10LngwLGRlbGV0ZSB0LngwLHQub3V0ZXJSYWRpdXM9dC54MSxkZWxldGUgdC54MSx0LmFuZ2xlPXQueSxkZWxldGUgdC55LHQuc3RhcnRBbmdsZT10LnkwLGRlbGV0ZSB0LnkwLHQuZW5kQW5nbGU9dC55MSxkZWxldGUgdC55MSx0fSx0LnN2Zy5jaG9yZD1mdW5jdGlvbigpe3ZhciB0PXFuLGU9SG4scj1pcyxuPUZvLGE9Qm87ZnVuY3Rpb24gaShyLG4pe3ZhciBhLGksYz1vKHRoaXMsdCxyLG4pLHU9byh0aGlzLGUscixuKTtyZXR1cm4iTSIrYy5wMCtzKGMucixjLnAxLGMuYTEtYy5hMCkrKGk9dSwoYT1jKS5hMD09aS5hMCYmYS5hMT09aS5hMT9sKGMucixjLnAxLGMucixjLnAwKTpsKGMucixjLnAxLHUucix1LnAwKStzKHUucix1LnAxLHUuYTEtdS5hMCkrbCh1LnIsdS5wMSxjLnIsYy5wMCkpKyJaIn1mdW5jdGlvbiBvKHQsZSxpLG8pe3ZhciBzPWUuY2FsbCh0LGksbyksbD1yLmNhbGwodCxzLG8pLGM9bi5jYWxsKHQscyxvKS1FdCx1PWEuY2FsbCh0LHMsbyktRXQ7cmV0dXJue3I6bCxhMDpjLGExOnUscDA6W2wqTWF0aC5jb3MoYyksbCpNYXRoLnNpbihjKV0scDE6W2wqTWF0aC5jb3ModSksbCpNYXRoLnNpbih1KV19fWZ1bmN0aW9uIHModCxlLHIpe3JldHVybiJBIit0KyIsIit0KyIgMCAiKyArKHI+TXQpKyIsMSAiK2V9ZnVuY3Rpb24gbCh0LGUscixuKXtyZXR1cm4iUSAwLDAgIitufXJldHVybiBpLnJhZGl1cz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj12ZSh0KSxpKTpyfSxpLnNvdXJjZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD12ZShlKSxpKTp0fSxpLnRhcmdldD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT12ZSh0KSxpKTplfSxpLnN0YXJ0QW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dmUodCksaSk6bn0saS5lbmRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT12ZSh0KSxpKTphfSxpfSx0LnN2Zy5kaWFnb25hbD1mdW5jdGlvbigpe3ZhciB0PXFuLGU9SG4scj1vcztmdW5jdGlvbiBuKG4sYSl7dmFyIGk9dC5jYWxsKHRoaXMsbixhKSxvPWUuY2FsbCh0aGlzLG4sYSkscz0oaS55K28ueSkvMixsPVtpLHt4OmkueCx5OnN9LHt4Om8ueCx5OnN9LG9dO3JldHVybiJNIisobD1sLm1hcChyKSlbMF0rIkMiK2xbMV0rIiAiK2xbMl0rIiAiK2xbM119cmV0dXJuIG4uc291cmNlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PXZlKGUpLG4pOnR9LG4udGFyZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXZlKHQpLG4pOmV9LG4ucHJvamVjdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10LG4pOnJ9LG59LHQuc3ZnLmRpYWdvbmFsLnJhZGlhbD1mdW5jdGlvbigpe3ZhciBlPXQuc3ZnLmRpYWdvbmFsKCkscj1vcyxuPWUucHJvamVjdGlvbjtyZXR1cm4gZS5wcm9qZWN0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP24oZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dC5hcHBseSh0aGlzLGFyZ3VtZW50cykscj1lWzBdLG49ZVsxXS1FdDtyZXR1cm5bcipNYXRoLmNvcyhuKSxyKk1hdGguc2luKG4pXX19KHI9dCkpOnJ9LGV9LHQuc3ZnLnN5bWJvbD1mdW5jdGlvbigpe3ZhciB0PWxzLGU9c3M7ZnVuY3Rpb24gcihyLG4pe3JldHVybih1cy5nZXQodC5jYWxsKHRoaXMscixuKSl8fGNzKShlLmNhbGwodGhpcyxyLG4pKX1yZXR1cm4gci50eXBlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PXZlKGUpLHIpOnR9LHIuc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT12ZSh0KSxyKTplfSxyfTt2YXIgdXM9dC5tYXAoe2NpcmNsZTpjcyxjcm9zczpmdW5jdGlvbih0KXt2YXIgZT1NYXRoLnNxcnQodC81KS8yO3JldHVybiJNIistMyplKyIsIistZSsiSCIrLWUrIlYiKy0zKmUrIkgiK2UrIlYiKy1lKyJIIiszKmUrIlYiK2UrIkgiK2UrIlYiKzMqZSsiSCIrLWUrIlYiK2UrIkgiKy0zKmUrIloifSxkaWFtb25kOmZ1bmN0aW9uKHQpe3ZhciBlPU1hdGguc3FydCh0LygyKmZzKSkscj1lKmZzO3JldHVybiJNMCwiKy1lKyJMIityKyIsMCAwLCIrZSsiICIrLXIrIiwwWiJ9LHNxdWFyZTpmdW5jdGlvbih0KXt2YXIgZT1NYXRoLnNxcnQodCkvMjtyZXR1cm4iTSIrLWUrIiwiKy1lKyJMIitlKyIsIistZSsiICIrZSsiLCIrZSsiICIrLWUrIiwiK2UrIloifSwidHJpYW5nbGUtZG93biI6ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5zcXJ0KHQvaHMpLHI9ZSpocy8yO3JldHVybiJNMCwiK3IrIkwiK2UrIiwiKy1yKyIgIistZSsiLCIrLXIrIloifSwidHJpYW5nbGUtdXAiOmZ1bmN0aW9uKHQpe3ZhciBlPU1hdGguc3FydCh0L2hzKSxyPWUqaHMvMjtyZXR1cm4iTTAsIistcisiTCIrZSsiLCIrcisiICIrLWUrIiwiK3IrIloifX0pO3Quc3ZnLnN5bWJvbFR5cGVzPXVzLmtleXMoKTt2YXIgaHM9TWF0aC5zcXJ0KDMpLGZzPU1hdGgudGFuKDMwKkx0KTtXLnRyYW5zaXRpb249ZnVuY3Rpb24odCl7Zm9yKHZhciBlLHIsbj12c3x8Kyt4cyxhPXdzKHQpLGk9W10sbz1tc3x8e3RpbWU6RGF0ZS5ub3coKSxlYXNlOm9pLGRlbGF5OjAsZHVyYXRpb246MjUwfSxzPS0xLGw9dGhpcy5sZW5ndGg7KytzPGw7KXtpLnB1c2goZT1bXSk7Zm9yKHZhciBjPXRoaXNbc10sdT0tMSxoPWMubGVuZ3RoOysrdTxoOykocj1jW3VdKSYma3Mocix1LGEsbixvKSxlLnB1c2gocil9cmV0dXJuIGdzKGksYSxuKX0sVy5pbnRlcnJ1cHQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZWFjaChudWxsPT10P3BzOmRzKHdzKHQpKSl9O3ZhciBwcz1kcyh3cygpKTtmdW5jdGlvbiBkcyh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZSxyLG47KGU9dGhpc1t0XSkmJihuPWVbcj1lLmFjdGl2ZV0pJiYobi50aW1lci5jPW51bGwsbi50aW1lci50PU5hTiwtLWUuY291bnQ/ZGVsZXRlIGVbcl06ZGVsZXRlIHRoaXNbdF0sZS5hY3RpdmUrPS41LG4uZXZlbnQmJm4uZXZlbnQuaW50ZXJydXB0LmNhbGwodGhpcyx0aGlzLl9fZGF0YV9fLG4uaW5kZXgpKX19ZnVuY3Rpb24gZ3ModCxlLHIpe3JldHVybiBVKHQseXMpLHQubmFtZXNwYWNlPWUsdC5pZD1yLHR9dmFyIHZzLG1zLHlzPVtdLHhzPTA7ZnVuY3Rpb24gYnModCxlLHIsbil7dmFyIGE9dC5pZCxpPXQubmFtZXNwYWNlO3JldHVybiB1dCh0LCJmdW5jdGlvbiI9PXR5cGVvZiByP2Z1bmN0aW9uKHQsbyxzKXt0W2ldW2FdLnR3ZWVuLnNldChlLG4oci5jYWxsKHQsdC5fX2RhdGFfXyxvLHMpKSl9OihyPW4ociksZnVuY3Rpb24odCl7dFtpXVthXS50d2Vlbi5zZXQoZSxyKX0pKX1mdW5jdGlvbiBfcyh0KXtyZXR1cm4gbnVsbD09dCYmKHQ9IiIpLGZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD10fX1mdW5jdGlvbiB3cyh0KXtyZXR1cm4gbnVsbD09dD8iX190cmFuc2l0aW9uX18iOiJfX3RyYW5zaXRpb25fIit0KyJfXyJ9ZnVuY3Rpb24ga3ModCxlLHIsbixhKXt2YXIgaSxvLHMsbCxjLHU9dFtyXXx8KHRbcl09e2FjdGl2ZTowLGNvdW50OjB9KSxoPXVbbl07ZnVuY3Rpb24gZihyKXt2YXIgYT11LmFjdGl2ZSxmPXVbYV07Zm9yKHZhciBkIGluIGYmJihmLnRpbWVyLmM9bnVsbCxmLnRpbWVyLnQ9TmFOLC0tdS5jb3VudCxkZWxldGUgdVthXSxmLmV2ZW50JiZmLmV2ZW50LmludGVycnVwdC5jYWxsKHQsdC5fX2RhdGFfXyxmLmluZGV4KSksdSlpZigrZDxuKXt2YXIgZz11W2RdO2cudGltZXIuYz1udWxsLGcudGltZXIudD1OYU4sLS11LmNvdW50LGRlbGV0ZSB1W2RdfW8uYz1wLFRlKGZ1bmN0aW9uKCl7cmV0dXJuIG8uYyYmcChyfHwxKSYmKG8uYz1udWxsLG8udD1OYU4pLDF9LDAsaSksdS5hY3RpdmU9bixoLmV2ZW50JiZoLmV2ZW50LnN0YXJ0LmNhbGwodCx0Ll9fZGF0YV9fLGUpLGM9W10saC50d2Vlbi5mb3JFYWNoKGZ1bmN0aW9uKHIsbil7KG49bi5jYWxsKHQsdC5fX2RhdGFfXyxlKSkmJmMucHVzaChuKX0pLGw9aC5lYXNlLHM9aC5kdXJhdGlvbn1mdW5jdGlvbiBwKGEpe2Zvcih2YXIgaT1hL3Msbz1sKGkpLGY9Yy5sZW5ndGg7Zj4wOyljWy0tZl0uY2FsbCh0LG8pO2lmKGk+PTEpcmV0dXJuIGguZXZlbnQmJmguZXZlbnQuZW5kLmNhbGwodCx0Ll9fZGF0YV9fLGUpLC0tdS5jb3VudD9kZWxldGUgdVtuXTpkZWxldGUgdFtyXSwxfWh8fChpPWEudGltZSxvPVRlKGZ1bmN0aW9uKHQpe3ZhciBlPWguZGVsYXk7aWYoby50PWUraSxlPD10KXJldHVybiBmKHQtZSk7by5jPWZ9LDAsaSksaD11W25dPXt0d2VlbjpuZXcgYix0aW1lOmksdGltZXI6byxkZWxheTphLmRlbGF5LGR1cmF0aW9uOmEuZHVyYXRpb24sZWFzZTphLmVhc2UsaW5kZXg6ZX0sYT1udWxsLCsrdS5jb3VudCl9eXMuY2FsbD1XLmNhbGwseXMuZW1wdHk9Vy5lbXB0eSx5cy5ub2RlPVcubm9kZSx5cy5zaXplPVcuc2l6ZSx0LnRyYW5zaXRpb249ZnVuY3Rpb24oZSxyKXtyZXR1cm4gZSYmZS50cmFuc2l0aW9uP3ZzP2UudHJhbnNpdGlvbihyKTplOnQuc2VsZWN0aW9uKCkudHJhbnNpdGlvbihlKX0sdC50cmFuc2l0aW9uLnByb3RvdHlwZT15cyx5cy5zZWxlY3Q9ZnVuY3Rpb24odCl7dmFyIGUscixuLGE9dGhpcy5pZCxpPXRoaXMubmFtZXNwYWNlLG89W107dD1YKHQpO2Zvcih2YXIgcz0tMSxsPXRoaXMubGVuZ3RoOysrczxsOyl7by5wdXNoKGU9W10pO2Zvcih2YXIgYz10aGlzW3NdLHU9LTEsaD1jLmxlbmd0aDsrK3U8aDspKG49Y1t1XSkmJihyPXQuY2FsbChuLG4uX19kYXRhX18sdSxzKSk/KCJfX2RhdGFfXyJpbiBuJiYoci5fX2RhdGFfXz1uLl9fZGF0YV9fKSxrcyhyLHUsaSxhLG5baV1bYV0pLGUucHVzaChyKSk6ZS5wdXNoKG51bGwpfXJldHVybiBncyhvLGksYSl9LHlzLnNlbGVjdEFsbD1mdW5jdGlvbih0KXt2YXIgZSxyLG4sYSxpLG89dGhpcy5pZCxzPXRoaXMubmFtZXNwYWNlLGw9W107dD1aKHQpO2Zvcih2YXIgYz0tMSx1PXRoaXMubGVuZ3RoOysrYzx1Oylmb3IodmFyIGg9dGhpc1tjXSxmPS0xLHA9aC5sZW5ndGg7KytmPHA7KWlmKG49aFtmXSl7aT1uW3NdW29dLHI9dC5jYWxsKG4sbi5fX2RhdGFfXyxmLGMpLGwucHVzaChlPVtdKTtmb3IodmFyIGQ9LTEsZz1yLmxlbmd0aDsrK2Q8ZzspKGE9cltkXSkmJmtzKGEsZCxzLG8saSksZS5wdXNoKGEpfXJldHVybiBncyhsLHMsbyl9LHlzLmZpbHRlcj1mdW5jdGlvbih0KXt2YXIgZSxyLG49W107ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PWN0KHQpKTtmb3IodmFyIGE9MCxpPXRoaXMubGVuZ3RoO2E8aTthKyspe24ucHVzaChlPVtdKTtmb3IodmFyIG8scz0wLGw9KG89dGhpc1thXSkubGVuZ3RoO3M8bDtzKyspKHI9b1tzXSkmJnQuY2FsbChyLHIuX19kYXRhX18scyxhKSYmZS5wdXNoKHIpfXJldHVybiBncyhuLHRoaXMubmFtZXNwYWNlLHRoaXMuaWQpfSx5cy50d2Vlbj1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuaWQsbj10aGlzLm5hbWVzcGFjZTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP3RoaXMubm9kZSgpW25dW3JdLnR3ZWVuLmdldCh0KTp1dCh0aGlzLG51bGw9PWU/ZnVuY3Rpb24oZSl7ZVtuXVtyXS50d2Vlbi5yZW1vdmUodCl9OmZ1bmN0aW9uKGEpe2Fbbl1bcl0udHdlZW4uc2V0KHQsZSl9KX0seXMuYXR0cj1mdW5jdGlvbihlLHIpe2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKHIgaW4gZSl0aGlzLmF0dHIocixlW3JdKTtyZXR1cm4gdGhpc312YXIgbj0idHJhbnNmb3JtIj09ZT9taTpLYSxhPXQubnMucXVhbGlmeShlKTtmdW5jdGlvbiBpKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUoYSl9ZnVuY3Rpb24gbygpe3RoaXMucmVtb3ZlQXR0cmlidXRlTlMoYS5zcGFjZSxhLmxvY2FsKX1yZXR1cm4gYnModGhpcywiYXR0ci4iK2UscixhLmxvY2FsP2Z1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P286KHQrPSIiLGZ1bmN0aW9uKCl7dmFyIGUscj10aGlzLmdldEF0dHJpYnV0ZU5TKGEuc3BhY2UsYS5sb2NhbCk7cmV0dXJuIHIhPT10JiYoZT1uKHIsdCksZnVuY3Rpb24odCl7dGhpcy5zZXRBdHRyaWJ1dGVOUyhhLnNwYWNlLGEubG9jYWwsZSh0KSl9KX0pfTpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9pOih0Kz0iIixmdW5jdGlvbigpe3ZhciBlLHI9dGhpcy5nZXRBdHRyaWJ1dGUoYSk7cmV0dXJuIHIhPT10JiYoZT1uKHIsdCksZnVuY3Rpb24odCl7dGhpcy5zZXRBdHRyaWJ1dGUoYSxlKHQpKX0pfSl9KX0seXMuYXR0clR3ZWVuPWZ1bmN0aW9uKGUscil7dmFyIG49dC5ucy5xdWFsaWZ5KGUpO3JldHVybiB0aGlzLnR3ZWVuKCJhdHRyLiIrZSxuLmxvY2FsP2Z1bmN0aW9uKHQsZSl7dmFyIGE9ci5jYWxsKHRoaXMsdCxlLHRoaXMuZ2V0QXR0cmlidXRlTlMobi5zcGFjZSxuLmxvY2FsKSk7cmV0dXJuIGEmJmZ1bmN0aW9uKHQpe3RoaXMuc2V0QXR0cmlidXRlTlMobi5zcGFjZSxuLmxvY2FsLGEodCkpfX06ZnVuY3Rpb24odCxlKXt2YXIgYT1yLmNhbGwodGhpcyx0LGUsdGhpcy5nZXRBdHRyaWJ1dGUobikpO3JldHVybiBhJiZmdW5jdGlvbih0KXt0aGlzLnNldEF0dHJpYnV0ZShuLGEodCkpfX0pfSx5cy5zdHlsZT1mdW5jdGlvbih0LGUscil7dmFyIG49YXJndW1lbnRzLmxlbmd0aDtpZihuPDMpe2lmKCJzdHJpbmciIT10eXBlb2YgdCl7Zm9yKHIgaW4gbjwyJiYoZT0iIiksdCl0aGlzLnN0eWxlKHIsdFtyXSxlKTtyZXR1cm4gdGhpc31yPSIifWZ1bmN0aW9uIGEoKXt0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpfXJldHVybiBicyh0aGlzLCJzdHlsZS4iK3QsZSxmdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZT9hOihlKz0iIixmdW5jdGlvbigpe3ZhciBuLGE9byh0aGlzKS5nZXRDb21wdXRlZFN0eWxlKHRoaXMsbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSh0KTtyZXR1cm4gYSE9PWUmJihuPUthKGEsZSksZnVuY3Rpb24oZSl7dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LG4oZSkscil9KX0pfSl9LHlzLnN0eWxlVHdlZW49ZnVuY3Rpb24odCxlLHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDMmJihyPSIiKSx0aGlzLnR3ZWVuKCJzdHlsZS4iK3QsZnVuY3Rpb24obixhKXt2YXIgaT1lLmNhbGwodGhpcyxuLGEsbyh0aGlzKS5nZXRDb21wdXRlZFN0eWxlKHRoaXMsbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSh0KSk7cmV0dXJuIGkmJmZ1bmN0aW9uKGUpe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkodCxpKGUpLHIpfX0pfSx5cy50ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBicyh0aGlzLCJ0ZXh0Iix0LF9zKX0seXMucmVtb3ZlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5uYW1lc3BhY2U7cmV0dXJuIHRoaXMuZWFjaCgiZW5kLnRyYW5zaXRpb24iLGZ1bmN0aW9uKCl7dmFyIGU7dGhpc1t0XS5jb3VudDwyJiYoZT10aGlzLnBhcmVudE5vZGUpJiZlLnJlbW92ZUNoaWxkKHRoaXMpfSl9LHlzLmVhc2U9ZnVuY3Rpb24oZSl7dmFyIHI9dGhpcy5pZCxuPXRoaXMubmFtZXNwYWNlO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDE/dGhpcy5ub2RlKClbbl1bcl0uZWFzZTooImZ1bmN0aW9uIiE9dHlwZW9mIGUmJihlPXQuZWFzZS5hcHBseSh0LGFyZ3VtZW50cykpLHV0KHRoaXMsZnVuY3Rpb24odCl7dFtuXVtyXS5lYXNlPWV9KSl9LHlzLmRlbGF5PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaWQscj10aGlzLm5hbWVzcGFjZTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwxP3RoaXMubm9kZSgpW3JdW2VdLmRlbGF5OnV0KHRoaXMsImZ1bmN0aW9uIj09dHlwZW9mIHQ/ZnVuY3Rpb24obixhLGkpe25bcl1bZV0uZGVsYXk9K3QuY2FsbChuLG4uX19kYXRhX18sYSxpKX06KHQ9K3QsZnVuY3Rpb24obil7bltyXVtlXS5kZWxheT10fSkpfSx5cy5kdXJhdGlvbj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmlkLHI9dGhpcy5uYW1lc3BhY2U7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8MT90aGlzLm5vZGUoKVtyXVtlXS5kdXJhdGlvbjp1dCh0aGlzLCJmdW5jdGlvbiI9PXR5cGVvZiB0P2Z1bmN0aW9uKG4sYSxpKXtuW3JdW2VdLmR1cmF0aW9uPU1hdGgubWF4KDEsdC5jYWxsKG4sbi5fX2RhdGFfXyxhLGkpKX06KHQ9TWF0aC5tYXgoMSx0KSxmdW5jdGlvbihuKXtuW3JdW2VdLmR1cmF0aW9uPXR9KSl9LHlzLmVhY2g9ZnVuY3Rpb24oZSxyKXt2YXIgbj10aGlzLmlkLGE9dGhpcy5uYW1lc3BhY2U7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXt2YXIgaT1tcyxvPXZzO3RyeXt2cz1uLHV0KHRoaXMsZnVuY3Rpb24odCxyLGkpe21zPXRbYV1bbl0sZS5jYWxsKHQsdC5fX2RhdGFfXyxyLGkpfSl9ZmluYWxseXttcz1pLHZzPW99fWVsc2UgdXQodGhpcyxmdW5jdGlvbihpKXt2YXIgbz1pW2FdW25dOyhvLmV2ZW50fHwoby5ldmVudD10LmRpc3BhdGNoKCJzdGFydCIsImVuZCIsImludGVycnVwdCIpKSkub24oZSxyKX0pO3JldHVybiB0aGlzfSx5cy50cmFuc2l0aW9uPWZ1bmN0aW9uKCl7Zm9yKHZhciB0LGUscixuPXRoaXMuaWQsYT0rK3hzLGk9dGhpcy5uYW1lc3BhY2Usbz1bXSxzPTAsbD10aGlzLmxlbmd0aDtzPGw7cysrKXtvLnB1c2godD1bXSk7Zm9yKHZhciBjLHU9MCxoPShjPXRoaXNbc10pLmxlbmd0aDt1PGg7dSsrKShlPWNbdV0pJiZrcyhlLHUsaSxhLHt0aW1lOihyPWVbaV1bbl0pLnRpbWUsZWFzZTpyLmVhc2UsZGVsYXk6ci5kZWxheStyLmR1cmF0aW9uLGR1cmF0aW9uOnIuZHVyYXRpb259KSx0LnB1c2goZSl9cmV0dXJuIGdzKG8saSxhKX0sdC5zdmcuYXhpcz1mdW5jdGlvbigpe3ZhciBlLHI9dC5zY2FsZS5saW5lYXIoKSxhPVRzLGk9NixvPTYscz0zLGw9WzEwXSxjPW51bGw7ZnVuY3Rpb24gdShuKXtuLmVhY2goZnVuY3Rpb24oKXt2YXIgbix1PXQuc2VsZWN0KHRoaXMpLGg9dGhpcy5fX2NoYXJ0X198fHIsZj10aGlzLl9fY2hhcnRfXz1yLmNvcHkoKSxwPW51bGw9PWM/Zi50aWNrcz9mLnRpY2tzLmFwcGx5KGYsbCk6Zi5kb21haW4oKTpjLGQ9bnVsbD09ZT9mLnRpY2tGb3JtYXQ/Zi50aWNrRm9ybWF0LmFwcGx5KGYsbCk6UDplLGc9dS5zZWxlY3RBbGwoIi50aWNrIikuZGF0YShwLGYpLHY9Zy5lbnRlcigpLmluc2VydCgiZyIsIi5kb21haW4iKS5hdHRyKCJjbGFzcyIsInRpY2siKS5zdHlsZSgib3BhY2l0eSIsa3QpLG09dC50cmFuc2l0aW9uKGcuZXhpdCgpKS5zdHlsZSgib3BhY2l0eSIsa3QpLnJlbW92ZSgpLHk9dC50cmFuc2l0aW9uKGcub3JkZXIoKSkuc3R5bGUoIm9wYWNpdHkiLDEpLHg9TWF0aC5tYXgoaSwwKStzLGI9Zm8oZiksXz11LnNlbGVjdEFsbCgiLmRvbWFpbiIpLmRhdGEoWzBdKSx3PShfLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuYXR0cigiY2xhc3MiLCJkb21haW4iKSx0LnRyYW5zaXRpb24oXykpO3YuYXBwZW5kKCJsaW5lIiksdi5hcHBlbmQoInRleHQiKTt2YXIgayxULE0sQSxTPXYuc2VsZWN0KCJsaW5lIiksRT15LnNlbGVjdCgibGluZSIpLEw9Zy5zZWxlY3QoInRleHQiKS50ZXh0KGQpLEM9di5zZWxlY3QoInRleHQiKSxPPXkuc2VsZWN0KCJ0ZXh0Iiksej0idG9wIj09PWF8fCJsZWZ0Ij09PWE/LTE6MTtpZigiYm90dG9tIj09PWF8fCJ0b3AiPT09YT8obj1BcyxrPSJ4IixNPSJ5IixUPSJ4MiIsQT0ieTIiLEwuYXR0cigiZHkiLHo8MD8iMGVtIjoiLjcxZW0iKS5zdHlsZSgidGV4dC1hbmNob3IiLCJtaWRkbGUiKSx3LmF0dHIoImQiLCJNIitiWzBdKyIsIit6Km8rIlYwSCIrYlsxXSsiViIreipvKSk6KG49U3Msaz0ieSIsTT0ieCIsVD0ieTIiLEE9IngyIixMLmF0dHIoImR5IiwiLjMyZW0iKS5zdHlsZSgidGV4dC1hbmNob3IiLHo8MD8iZW5kIjoic3RhcnQiKSx3LmF0dHIoImQiLCJNIit6Km8rIiwiK2JbMF0rIkgwViIrYlsxXSsiSCIreipvKSksUy5hdHRyKEEseippKSxDLmF0dHIoTSx6KngpLEUuYXR0cihULDApLmF0dHIoQSx6KmkpLE8uYXR0cihrLDApLmF0dHIoTSx6KngpLGYucmFuZ2VCYW5kKXt2YXIgST1mLEQ9SS5yYW5nZUJhbmQoKS8yO2g9Zj1mdW5jdGlvbih0KXtyZXR1cm4gSSh0KStEfX1lbHNlIGgucmFuZ2VCYW5kP2g9ZjptLmNhbGwobixmLGgpO3YuY2FsbChuLGgsZikseS5jYWxsKG4sZixmKX0pfXJldHVybiB1LnNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsdSk6cn0sdS5vcmllbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9dCBpbiBNcz90KyIiOlRzLHUpOmF9LHUudGlja3M9ZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD1uKGFyZ3VtZW50cyksdSk6bH0sdS50aWNrVmFsdWVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPXQsdSk6Y30sdS50aWNrRm9ybWF0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXQsdSk6ZX0sdS50aWNrU2l6ZT1mdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoO3JldHVybiBlPyhpPSt0LG89K2FyZ3VtZW50c1tlLTFdLHUpOml9LHUuaW5uZXJUaWNrU2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0rdCx1KTppfSx1Lm91dGVyVGlja1NpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89K3QsdSk6b30sdS50aWNrUGFkZGluZz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz0rdCx1KTpzfSx1LnRpY2tTdWJkaXZpZGU9ZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aCYmdX0sdX07dmFyIFRzPSJib3R0b20iLE1zPXt0b3A6MSxyaWdodDoxLGJvdHRvbToxLGxlZnQ6MX07ZnVuY3Rpb24gQXModCxlLHIpe3QuYXR0cigidHJhbnNmb3JtIixmdW5jdGlvbih0KXt2YXIgbj1lKHQpO3JldHVybiJ0cmFuc2xhdGUoIisoaXNGaW5pdGUobik/bjpyKHQpKSsiLDApIn0pfWZ1bmN0aW9uIFNzKHQsZSxyKXt0LmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24odCl7dmFyIG49ZSh0KTtyZXR1cm4idHJhbnNsYXRlKDAsIisoaXNGaW5pdGUobik/bjpyKHQpKSsiKSJ9KX10LnN2Zy5icnVzaD1mdW5jdGlvbigpe3ZhciBlLHIsbj1qKGYsImJydXNoc3RhcnQiLCJicnVzaCIsImJydXNoZW5kIiksYT1udWxsLGk9bnVsbCxzPVswLDBdLGw9WzAsMF0sYz0hMCx1PSEwLGg9THNbMF07ZnVuY3Rpb24gZihlKXtlLmVhY2goZnVuY3Rpb24oKXt2YXIgZT10LnNlbGVjdCh0aGlzKS5zdHlsZSgicG9pbnRlci1ldmVudHMiLCJhbGwiKS5zdHlsZSgiLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yIiwicmdiYSgwLDAsMCwwKSIpLm9uKCJtb3VzZWRvd24uYnJ1c2giLHYpLm9uKCJ0b3VjaHN0YXJ0LmJydXNoIix2KSxyPWUuc2VsZWN0QWxsKCIuYmFja2dyb3VuZCIpLmRhdGEoWzBdKTtyLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuYXR0cigiY2xhc3MiLCJiYWNrZ3JvdW5kIikuc3R5bGUoInZpc2liaWxpdHkiLCJoaWRkZW4iKS5zdHlsZSgiY3Vyc29yIiwiY3Jvc3NoYWlyIiksZS5zZWxlY3RBbGwoIi5leHRlbnQiKS5kYXRhKFswXSkuZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5hdHRyKCJjbGFzcyIsImV4dGVudCIpLnN0eWxlKCJjdXJzb3IiLCJtb3ZlIik7dmFyIG49ZS5zZWxlY3RBbGwoIi5yZXNpemUiKS5kYXRhKGgsUCk7bi5leGl0KCkucmVtb3ZlKCksbi5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIixmdW5jdGlvbih0KXtyZXR1cm4icmVzaXplICIrdH0pLnN0eWxlKCJjdXJzb3IiLGZ1bmN0aW9uKHQpe3JldHVybiBFc1t0XX0pLmFwcGVuZCgicmVjdCIpLmF0dHIoIngiLGZ1bmN0aW9uKHQpe3JldHVybi9bZXddJC8udGVzdCh0KT8tMzpudWxsfSkuYXR0cigieSIsZnVuY3Rpb24odCl7cmV0dXJuL15bbnNdLy50ZXN0KHQpPy0zOm51bGx9KS5hdHRyKCJ3aWR0aCIsNikuYXR0cigiaGVpZ2h0Iiw2KS5zdHlsZSgidmlzaWJpbGl0eSIsImhpZGRlbiIpLG4uc3R5bGUoImRpc3BsYXkiLGYuZW1wdHkoKT8ibm9uZSI6bnVsbCk7dmFyIG8scz10LnRyYW5zaXRpb24oZSksbD10LnRyYW5zaXRpb24ocik7YSYmKG89Zm8oYSksbC5hdHRyKCJ4IixvWzBdKS5hdHRyKCJ3aWR0aCIsb1sxXS1vWzBdKSxkKHMpKSxpJiYobz1mbyhpKSxsLmF0dHIoInkiLG9bMF0pLmF0dHIoImhlaWdodCIsb1sxXS1vWzBdKSxnKHMpKSxwKHMpfSl9ZnVuY3Rpb24gcCh0KXt0LnNlbGVjdEFsbCgiLnJlc2l6ZSIpLmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24odCl7cmV0dXJuInRyYW5zbGF0ZSgiK3NbKy9lJC8udGVzdCh0KV0rIiwiK2xbKy9ecy8udGVzdCh0KV0rIikifSl9ZnVuY3Rpb24gZCh0KXt0LnNlbGVjdCgiLmV4dGVudCIpLmF0dHIoIngiLHNbMF0pLHQuc2VsZWN0QWxsKCIuZXh0ZW50LC5uPnJlY3QsLnM+cmVjdCIpLmF0dHIoIndpZHRoIixzWzFdLXNbMF0pfWZ1bmN0aW9uIGcodCl7dC5zZWxlY3QoIi5leHRlbnQiKS5hdHRyKCJ5IixsWzBdKSx0LnNlbGVjdEFsbCgiLmV4dGVudCwuZT5yZWN0LC53PnJlY3QiKS5hdHRyKCJoZWlnaHQiLGxbMV0tbFswXSl9ZnVuY3Rpb24gdigpe3ZhciBoLHYsbT10aGlzLHk9dC5zZWxlY3QodC5ldmVudC50YXJnZXQpLHg9bi5vZihtLGFyZ3VtZW50cyksYj10LnNlbGVjdChtKSxfPXkuZGF0dW0oKSx3PSEvXihufHMpJC8udGVzdChfKSYmYSxrPSEvXihlfHcpJC8udGVzdChfKSYmaSxUPXkuY2xhc3NlZCgiZXh0ZW50IiksTT14dChtKSxBPXQubW91c2UobSksUz10LnNlbGVjdChvKG0pKS5vbigia2V5ZG93bi5icnVzaCIsZnVuY3Rpb24oKXszMj09dC5ldmVudC5rZXlDb2RlJiYoVHx8KGg9bnVsbCxBWzBdLT1zWzFdLEFbMV0tPWxbMV0sVD0yKSxCKCkpfSkub24oImtleXVwLmJydXNoIixmdW5jdGlvbigpezMyPT10LmV2ZW50LmtleUNvZGUmJjI9PVQmJihBWzBdKz1zWzFdLEFbMV0rPWxbMV0sVD0wLEIoKSl9KTtpZih0LmV2ZW50LmNoYW5nZWRUb3VjaGVzP1Mub24oInRvdWNobW92ZS5icnVzaCIsQykub24oInRvdWNoZW5kLmJydXNoIixPKTpTLm9uKCJtb3VzZW1vdmUuYnJ1c2giLEMpLm9uKCJtb3VzZXVwLmJydXNoIixPKSxiLmludGVycnVwdCgpLnNlbGVjdEFsbCgiKiIpLmludGVycnVwdCgpLFQpQVswXT1zWzBdLUFbMF0sQVsxXT1sWzBdLUFbMV07ZWxzZSBpZihfKXt2YXIgRT0rL3ckLy50ZXN0KF8pLEw9Ky9ebi8udGVzdChfKTt2PVtzWzEtRV0tQVswXSxsWzEtTF0tQVsxXV0sQVswXT1zW0VdLEFbMV09bFtMXX1lbHNlIHQuZXZlbnQuYWx0S2V5JiYoaD1BLnNsaWNlKCkpO2Z1bmN0aW9uIEMoKXt2YXIgZT10Lm1vdXNlKG0pLHI9ITE7diYmKGVbMF0rPXZbMF0sZVsxXSs9dlsxXSksVHx8KHQuZXZlbnQuYWx0S2V5PyhofHwoaD1bKHNbMF0rc1sxXSkvMiwobFswXStsWzFdKS8yXSksQVswXT1zWysoZVswXTxoWzBdKV0sQVsxXT1sWysoZVsxXTxoWzFdKV0pOmg9bnVsbCksdyYmUChlLGEsMCkmJihkKGIpLHI9ITApLGsmJlAoZSxpLDEpJiYoZyhiKSxyPSEwKSxyJiYocChiKSx4KHt0eXBlOiJicnVzaCIsbW9kZTpUPyJtb3ZlIjoicmVzaXplIn0pKX1mdW5jdGlvbiBQKHQsbixhKXt2YXIgaSxvLGY9Zm8obikscD1mWzBdLGQ9ZlsxXSxnPUFbYV0sdj1hP2w6cyxtPXZbMV0tdlswXTtpZihUJiYocC09ZyxkLT1tK2cpLGk9KGE/dTpjKT9NYXRoLm1heChwLE1hdGgubWluKGQsdFthXSkpOnRbYV0sVD9vPShpKz1nKSttOihoJiYoZz1NYXRoLm1heChwLE1hdGgubWluKGQsMipoW2FdLWkpKSksZzxpPyhvPWksaT1nKTpvPWcpLHZbMF0hPWl8fHZbMV0hPW8pcmV0dXJuIGE/cj1udWxsOmU9bnVsbCx2WzBdPWksdlsxXT1vLCEwfWZ1bmN0aW9uIE8oKXtDKCksYi5zdHlsZSgicG9pbnRlci1ldmVudHMiLCJhbGwiKS5zZWxlY3RBbGwoIi5yZXNpemUiKS5zdHlsZSgiZGlzcGxheSIsZi5lbXB0eSgpPyJub25lIjpudWxsKSx0LnNlbGVjdCgiYm9keSIpLnN0eWxlKCJjdXJzb3IiLG51bGwpLFMub24oIm1vdXNlbW92ZS5icnVzaCIsbnVsbCkub24oIm1vdXNldXAuYnJ1c2giLG51bGwpLm9uKCJ0b3VjaG1vdmUuYnJ1c2giLG51bGwpLm9uKCJ0b3VjaGVuZC5icnVzaCIsbnVsbCkub24oImtleWRvd24uYnJ1c2giLG51bGwpLm9uKCJrZXl1cC5icnVzaCIsbnVsbCksTSgpLHgoe3R5cGU6ImJydXNoZW5kIn0pfWIuc3R5bGUoInBvaW50ZXItZXZlbnRzIiwibm9uZSIpLnNlbGVjdEFsbCgiLnJlc2l6ZSIpLnN0eWxlKCJkaXNwbGF5IixudWxsKSx0LnNlbGVjdCgiYm9keSIpLnN0eWxlKCJjdXJzb3IiLHkuc3R5bGUoImN1cnNvciIpKSx4KHt0eXBlOiJicnVzaHN0YXJ0In0pLEMoKX1yZXR1cm4gZi5ldmVudD1mdW5jdGlvbihhKXthLmVhY2goZnVuY3Rpb24oKXt2YXIgYT1uLm9mKHRoaXMsYXJndW1lbnRzKSxpPXt4OnMseTpsLGk6ZSxqOnJ9LG89dGhpcy5fX2NoYXJ0X198fGk7dGhpcy5fX2NoYXJ0X189aSx2cz90LnNlbGVjdCh0aGlzKS50cmFuc2l0aW9uKCkuZWFjaCgic3RhcnQuYnJ1c2giLGZ1bmN0aW9uKCl7ZT1vLmkscj1vLmoscz1vLngsbD1vLnksYSh7dHlwZToiYnJ1c2hzdGFydCJ9KX0pLnR3ZWVuKCJicnVzaDpicnVzaCIsZnVuY3Rpb24oKXt2YXIgdD1RYShzLGkueCksbj1RYShsLGkueSk7cmV0dXJuIGU9cj1udWxsLGZ1bmN0aW9uKGUpe3M9aS54PXQoZSksbD1pLnk9bihlKSxhKHt0eXBlOiJicnVzaCIsbW9kZToicmVzaXplIn0pfX0pLmVhY2goImVuZC5icnVzaCIsZnVuY3Rpb24oKXtlPWkuaSxyPWkuaixhKHt0eXBlOiJicnVzaCIsbW9kZToicmVzaXplIn0pLGEoe3R5cGU6ImJydXNoZW5kIn0pfSk6KGEoe3R5cGU6ImJydXNoc3RhcnQifSksYSh7dHlwZToiYnJ1c2giLG1vZGU6InJlc2l6ZSJ9KSxhKHt0eXBlOiJicnVzaGVuZCJ9KSl9KX0sZi54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPUxzWyEoYT10KTw8MXwhaV0sZik6YX0sZi55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPUxzWyFhPDwxfCEoaT10KV0sZik6aX0sZi5jbGFtcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYSYmaT8oYz0hIXRbMF0sdT0hIXRbMV0pOmE/Yz0hIXQ6aSYmKHU9ISF0KSxmKTphJiZpP1tjLHVdOmE/YzppP3U6bnVsbH0sZi5leHRlbnQ9ZnVuY3Rpb24odCl7dmFyIG4sbyxjLHUsaDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYSYmKG49dFswXSxvPXRbMV0saSYmKG49blswXSxvPW9bMF0pLGU9W24sb10sYS5pbnZlcnQmJihuPWEobiksbz1hKG8pKSxvPG4mJihoPW4sbj1vLG89aCksbj09c1swXSYmbz09c1sxXXx8KHM9W24sb10pKSxpJiYoYz10WzBdLHU9dFsxXSxhJiYoYz1jWzFdLHU9dVsxXSkscj1bYyx1XSxpLmludmVydCYmKGM9aShjKSx1PWkodSkpLHU8YyYmKGg9YyxjPXUsdT1oKSxjPT1sWzBdJiZ1PT1sWzFdfHwobD1bYyx1XSkpLGYpOihhJiYoZT8obj1lWzBdLG89ZVsxXSk6KG49c1swXSxvPXNbMV0sYS5pbnZlcnQmJihuPWEuaW52ZXJ0KG4pLG89YS5pbnZlcnQobykpLG88biYmKGg9bixuPW8sbz1oKSkpLGkmJihyPyhjPXJbMF0sdT1yWzFdKTooYz1sWzBdLHU9bFsxXSxpLmludmVydCYmKGM9aS5pbnZlcnQoYyksdT1pLmludmVydCh1KSksdTxjJiYoaD1jLGM9dSx1PWgpKSksYSYmaT9bW24sY10sW28sdV1dOmE/W24sb106aSYmW2MsdV0pfSxmLmNsZWFyPWZ1bmN0aW9uKCl7cmV0dXJuIGYuZW1wdHkoKXx8KHM9WzAsMF0sbD1bMCwwXSxlPXI9bnVsbCksZn0sZi5lbXB0eT1mdW5jdGlvbigpe3JldHVybiEhYSYmc1swXT09c1sxXXx8ISFpJiZsWzBdPT1sWzFdfSx0LnJlYmluZChmLG4sIm9uIil9O3ZhciBFcz17bjoibnMtcmVzaXplIixlOiJldy1yZXNpemUiLHM6Im5zLXJlc2l6ZSIsdzoiZXctcmVzaXplIixudzoibndzZS1yZXNpemUiLG5lOiJuZXN3LXJlc2l6ZSIsc2U6Im53c2UtcmVzaXplIixzdzoibmVzdy1yZXNpemUifSxMcz1bWyJuIiwiZSIsInMiLCJ3IiwibnciLCJuZSIsInNlIiwic3ciXSxbImUiLCJ3Il0sWyJuIiwicyJdLFtdXSxDcz1JZS5mb3JtYXQ9Y3IudGltZUZvcm1hdCxQcz1Dcy51dGMsT3M9UHMoIiVZLSVtLSVkVCVIOiVNOiVTLiVMWiIpO2Z1bmN0aW9uIHpzKHQpe3JldHVybiB0LnRvSVNPU3RyaW5nKCl9ZnVuY3Rpb24gSXMoZSxyLG4pe2Z1bmN0aW9uIGEodCl7cmV0dXJuIGUodCl9ZnVuY3Rpb24gaShlLG4pe3ZhciBhPShlWzFdLWVbMF0pL24saT10LmJpc2VjdChScyxhKTtyZXR1cm4gaT09UnMubGVuZ3RoP1tyLnllYXIsX28oZS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQvMzE1MzZlNn0pLG4pWzJdXTppP3JbYS9Sc1tpLTFdPFJzW2ldL2E/aS0xOmldOltOcyxfbyhlLG4pWzJdXX1yZXR1cm4gYS5pbnZlcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIERzKGUuaW52ZXJ0KHQpKX0sYS5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGUuZG9tYWluKHQpLGEpOmUuZG9tYWluKCkubWFwKERzKX0sYS5uaWNlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9YS5kb21haW4oKSxuPWhvKHIpLG89bnVsbD09dD9pKG4sMTApOiJudW1iZXIiPT10eXBlb2YgdCYmaShuLHQpO2Z1bmN0aW9uIHMocil7cmV0dXJuIWlzTmFOKHIpJiYhdC5yYW5nZShyLERzKCtyKzEpLGUpLmxlbmd0aH1yZXR1cm4gbyYmKHQ9b1swXSxlPW9bMV0pLGEuZG9tYWluKGdvKHIsZT4xP3tmbG9vcjpmdW5jdGlvbihlKXtmb3IoO3MoZT10LmZsb29yKGUpKTspZT1EcyhlLTEpO3JldHVybiBlfSxjZWlsOmZ1bmN0aW9uKGUpe2Zvcig7cyhlPXQuY2VpbChlKSk7KWU9RHMoK2UrMSk7cmV0dXJuIGV9fTp0KSl9LGEudGlja3M9ZnVuY3Rpb24odCxlKXt2YXIgcj1obyhhLmRvbWFpbigpKSxuPW51bGw9PXQ/aShyLDEwKToibnVtYmVyIj09dHlwZW9mIHQ/aShyLHQpOiF0LnJhbmdlJiZbe3JhbmdlOnR9LGVdO3JldHVybiBuJiYodD1uWzBdLGU9blsxXSksdC5yYW5nZShyWzBdLERzKCtyWzFdKzEpLGU8MT8xOmUpfSxhLnRpY2tGb3JtYXQ9ZnVuY3Rpb24oKXtyZXR1cm4gbn0sYS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIElzKGUuY29weSgpLHIsbil9LHhvKGEsZSl9ZnVuY3Rpb24gRHModCl7cmV0dXJuIG5ldyBEYXRlKHQpfUNzLmlzbz1EYXRlLnByb3RvdHlwZS50b0lTT1N0cmluZyYmK25ldyBEYXRlKCIyMDAwLTAxLTAxVDAwOjAwOjAwLjAwMFoiKT96czpPcyx6cy5wYXJzZT1mdW5jdGlvbih0KXt2YXIgZT1uZXcgRGF0ZSh0KTtyZXR1cm4gaXNOYU4oZSk/bnVsbDplfSx6cy50b1N0cmluZz1Pcy50b1N0cmluZyxJZS5zZWNvbmQ9QmUoZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBEZSgxZTMqTWF0aC5mbG9vcih0LzFlMykpfSxmdW5jdGlvbih0LGUpe3Quc2V0VGltZSh0LmdldFRpbWUoKSsxZTMqTWF0aC5mbG9vcihlKSl9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFNlY29uZHMoKX0pLEllLnNlY29uZHM9SWUuc2Vjb25kLnJhbmdlLEllLnNlY29uZHMudXRjPUllLnNlY29uZC51dGMucmFuZ2UsSWUubWludXRlPUJlKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRGUoNmU0Kk1hdGguZmxvb3IodC82ZTQpKX0sZnVuY3Rpb24odCxlKXt0LnNldFRpbWUodC5nZXRUaW1lKCkrNmU0Kk1hdGguZmxvb3IoZSkpfSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRNaW51dGVzKCl9KSxJZS5taW51dGVzPUllLm1pbnV0ZS5yYW5nZSxJZS5taW51dGVzLnV0Yz1JZS5taW51dGUudXRjLnJhbmdlLEllLmhvdXI9QmUoZnVuY3Rpb24odCl7dmFyIGU9dC5nZXRUaW1lem9uZU9mZnNldCgpLzYwO3JldHVybiBuZXcgRGUoMzZlNSooTWF0aC5mbG9vcih0LzM2ZTUtZSkrZSkpfSxmdW5jdGlvbih0LGUpe3Quc2V0VGltZSh0LmdldFRpbWUoKSszNmU1Kk1hdGguZmxvb3IoZSkpfSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRIb3VycygpfSksSWUuaG91cnM9SWUuaG91ci5yYW5nZSxJZS5ob3Vycy51dGM9SWUuaG91ci51dGMucmFuZ2UsSWUubW9udGg9QmUoZnVuY3Rpb24odCl7cmV0dXJuKHQ9SWUuZGF5KHQpKS5zZXREYXRlKDEpLHR9LGZ1bmN0aW9uKHQsZSl7dC5zZXRNb250aCh0LmdldE1vbnRoKCkrZSl9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1vbnRoKCl9KSxJZS5tb250aHM9SWUubW9udGgucmFuZ2UsSWUubW9udGhzLnV0Yz1JZS5tb250aC51dGMucmFuZ2U7dmFyIFJzPVsxZTMsNWUzLDE1ZTMsM2U0LDZlNCwzZTUsOWU1LDE4ZTUsMzZlNSwxMDhlNSwyMTZlNSw0MzJlNSw4NjRlNSwxNzI4ZTUsNjA0OGU1LDI1OTJlNiw3Nzc2ZTYsMzE1MzZlNl0sRnM9W1tJZS5zZWNvbmQsMV0sW0llLnNlY29uZCw1XSxbSWUuc2Vjb25kLDE1XSxbSWUuc2Vjb25kLDMwXSxbSWUubWludXRlLDFdLFtJZS5taW51dGUsNV0sW0llLm1pbnV0ZSwxNV0sW0llLm1pbnV0ZSwzMF0sW0llLmhvdXIsMV0sW0llLmhvdXIsM10sW0llLmhvdXIsNl0sW0llLmhvdXIsMTJdLFtJZS5kYXksMV0sW0llLmRheSwyXSxbSWUud2VlaywxXSxbSWUubW9udGgsMV0sW0llLm1vbnRoLDNdLFtJZS55ZWFyLDFdXSxCcz1Dcy5tdWx0aShbWyIuJUwiLGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1pbGxpc2Vjb25kcygpfV0sWyI6JVMiLGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFNlY29uZHMoKX1dLFsiJUk6JU0iLGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1pbnV0ZXMoKX1dLFsiJUkgJXAiLGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEhvdXJzKCl9XSxbIiVhICVkIixmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXREYXkoKSYmMSE9dC5nZXREYXRlKCl9XSxbIiViICVkIixmdW5jdGlvbih0KXtyZXR1cm4gMSE9dC5nZXREYXRlKCl9XSxbIiVCIixmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRNb250aCgpfV0sWyIlWSIsWHJdXSksTnM9e3JhbmdlOmZ1bmN0aW9uKGUscixuKXtyZXR1cm4gdC5yYW5nZShNYXRoLmNlaWwoZS9uKSpuLCtyLG4pLm1hcChEcyl9LGZsb29yOlAsY2VpbDpQfTtGcy55ZWFyPUllLnllYXIsSWUuc2NhbGU9ZnVuY3Rpb24oKXtyZXR1cm4gSXModC5zY2FsZS5saW5lYXIoKSxGcyxCcyl9O3ZhciBqcz1Gcy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuW3RbMF0udXRjLHRbMV1dfSksVnM9UHMubXVsdGkoW1siLiVMIixmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENNaWxsaXNlY29uZHMoKX1dLFsiOiVTIixmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENTZWNvbmRzKCl9XSxbIiVJOiVNIixmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENNaW51dGVzKCl9XSxbIiVJICVwIixmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENIb3VycygpfV0sWyIlYSAlZCIsZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDRGF5KCkmJjEhPXQuZ2V0VVRDRGF0ZSgpfV0sWyIlYiAlZCIsZnVuY3Rpb24odCl7cmV0dXJuIDEhPXQuZ2V0VVRDRGF0ZSgpfV0sWyIlQiIsZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDTW9udGgoKX1dLFsiJVkiLFhyXV0pO2Z1bmN0aW9uIFVzKHQpe3JldHVybiBKU09OLnBhcnNlKHQucmVzcG9uc2VUZXh0KX1mdW5jdGlvbiBxcyh0KXt2YXIgZT1hLmNyZWF0ZVJhbmdlKCk7cmV0dXJuIGUuc2VsZWN0Tm9kZShhLmJvZHkpLGUuY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KHQucmVzcG9uc2VUZXh0KX1qcy55ZWFyPUllLnllYXIudXRjLEllLnNjYWxlLnV0Yz1mdW5jdGlvbigpe3JldHVybiBJcyh0LnNjYWxlLmxpbmVhcigpLGpzLFZzKX0sdC50ZXh0PW1lKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlc3BvbnNlVGV4dH0pLHQuanNvbj1mdW5jdGlvbih0LGUpe3JldHVybiB5ZSh0LCJhcHBsaWNhdGlvbi9qc29uIixVcyxlKX0sdC5odG1sPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHllKHQsInRleHQvaHRtbCIscXMsZSl9LHQueG1sPW1lKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlc3BvbnNlWE1MfSksIm9iamVjdCI9PXR5cGVvZiBlJiZlLmV4cG9ydHM/ZS5leHBvcnRzPXQ6dGhpcy5kMz10fSgpfSx7fV0sMTY2OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKylpZih2b2lkIDAhPT1hcmd1bWVudHNbdF0pcmV0dXJuIGFyZ3VtZW50c1t0XX19LHt9XSwxNjc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiaW5jcmVtZW50YWwtY29udmV4LWh1bGwiKSxhPXQoInVuaXEiKTtmdW5jdGlvbiBpKHQsZSl7dGhpcy5wb2ludD10LHRoaXMuaW5kZXg9ZX1mdW5jdGlvbiBvKHQsZSl7Zm9yKHZhciByPXQucG9pbnQsbj1lLnBvaW50LGE9ci5sZW5ndGgsaT0wO2k8YTsrK2kpe3ZhciBvPW5baV0tcltpXTtpZihvKXJldHVybiBvfXJldHVybiAwfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQubGVuZ3RoO2lmKDA9PT1yKXJldHVybltdO3ZhciBzPXRbMF0ubGVuZ3RoO2lmKHM8MSlyZXR1cm5bXTtpZigxPT09cylyZXR1cm4gZnVuY3Rpb24odCxlLHIpe2lmKDE9PT10KXJldHVybiByP1tbLTEsMF1dOltdO3ZhciBuPWUubWFwKGZ1bmN0aW9uKHQsZSl7cmV0dXJuW3RbMF0sZV19KTtuLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXS1lWzBdfSk7Zm9yKHZhciBhPW5ldyBBcnJheSh0LTEpLGk9MTtpPHQ7KytpKXt2YXIgbz1uW2ktMV0scz1uW2ldO2FbaS0xXT1bb1sxXSxzWzFdXX1yJiZhLnB1c2goWy0xLGFbMF1bMV1dLFthW3QtMV1bMV0sLTFdKTtyZXR1cm4gYX0ocix0LGUpO2Zvcih2YXIgbD1uZXcgQXJyYXkociksYz0xLHU9MDt1PHI7Kyt1KXtmb3IodmFyIGg9dFt1XSxmPW5ldyBBcnJheShzKzEpLHA9MCxkPTA7ZDxzOysrZCl7dmFyIGc9aFtkXTtmW2RdPWcscCs9ZypnfWZbc109cCxsW3VdPW5ldyBpKGYsdSksYz1NYXRoLm1heChwLGMpfWEobCxvKSxyPWwubGVuZ3RoO2Zvcih2YXIgdj1uZXcgQXJyYXkocitzKzEpLG09bmV3IEFycmF5KHIrcysxKSx5PShzKzEpKihzKzEpKmMseD1uZXcgQXJyYXkocysxKSx1PTA7dTw9czsrK3UpeFt1XT0wO3hbc109eSx2WzBdPXguc2xpY2UoKSxtWzBdPS0xO2Zvcih2YXIgdT0wO3U8PXM7Kyt1KXt2YXIgZj14LnNsaWNlKCk7Zlt1XT0xLHZbdSsxXT1mLG1bdSsxXT0tMX1mb3IodmFyIHU9MDt1PHI7Kyt1KXt2YXIgYj1sW3VdO3ZbdStzKzFdPWIucG9pbnQsbVt1K3MrMV09Yi5pbmRleH12YXIgXz1uKHYsITEpO189ZT9fLmZpbHRlcihmdW5jdGlvbih0KXtmb3IodmFyIGU9MCxyPTA7cjw9czsrK3Ipe3ZhciBuPW1bdFtyXV07aWYobjwwJiYrK2U+PTIpcmV0dXJuITE7dFtyXT1ufXJldHVybiEwfSk6Xy5maWx0ZXIoZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTw9czsrK2Upe3ZhciByPW1bdFtlXV07aWYocjwwKXJldHVybiExO3RbZV09cn1yZXR1cm4hMH0pO2lmKDEmcylmb3IodmFyIHU9MDt1PF8ubGVuZ3RoOysrdSl7dmFyIGI9X1t1XSxmPWJbMF07YlswXT1iWzFdLGJbMV09Zn1yZXR1cm4gX319LHsiaW5jcmVtZW50YWwtY29udmV4LWh1bGwiOjQxNSx1bmlxOjU0Nn1dLDE2ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9aTt2YXIgbj0oaS5jYW52YXM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikpLmdldENvbnRleHQoIjJkIiksYT1vKFszMiwxMjZdKTtmdW5jdGlvbiBpKHQsZSl7QXJyYXkuaXNBcnJheSh0KSYmKHQ9dC5qb2luKCIsICIpKTt2YXIgcixpPXt9LHM9MTYsbD0uMDU7ZSYmKDI9PT1lLmxlbmd0aCYmIm51bWJlciI9PXR5cGVvZiBlWzBdP3I9byhlKTpBcnJheS5pc0FycmF5KGUpP3I9ZTooZS5vP3I9byhlLm8pOmUucGFpcnMmJihyPWUucGFpcnMpLGUuZm9udFNpemUmJihzPWUuZm9udFNpemUpLG51bGwhPWUudGhyZXNob2xkJiYobD1lLnRocmVzaG9sZCkpKSxyfHwocj1hKSxuLmZvbnQ9cysicHggIit0O2Zvcih2YXIgYz0wO2M8ci5sZW5ndGg7YysrKXt2YXIgdT1yW2NdLGg9bi5tZWFzdXJlVGV4dCh1WzBdKS53aWR0aCtuLm1lYXN1cmVUZXh0KHVbMV0pLndpZHRoLGY9bi5tZWFzdXJlVGV4dCh1KS53aWR0aDtpZihNYXRoLmFicyhoLWYpPnMqbCl7dmFyIHA9KGYtaCkvcztpW3VdPTFlMypwfX1yZXR1cm4gaX1mdW5jdGlvbiBvKHQpe2Zvcih2YXIgZT1bXSxyPXRbMF07cjw9dFsxXTtyKyspZm9yKHZhciBuPVN0cmluZy5mcm9tQ2hhckNvZGUociksYT10WzBdO2E8dFsxXTthKyspe3ZhciBpPW4rU3RyaW5nLmZyb21DaGFyQ29kZShhKTtlLnB1c2goaSl9cmV0dXJuIGV9aS5jcmVhdGVQYWlycz1vLGkuYXNjaWk9YX0se31dLDE2OTpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbih0KXt2YXIgcj0hMTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIEZsb2F0NjRBcnJheSl7dmFyIG49bmV3IEZsb2F0NjRBcnJheSgxKSxhPW5ldyBVaW50MzJBcnJheShuLmJ1ZmZlcik7aWYoblswXT0xLHI9ITAsMTA3MjY5MzI0OD09PWFbMV0pe2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gblswXT10LFthWzBdLGFbMV1dfSxlLmV4cG9ydHMucGFjaz1mdW5jdGlvbih0LGUpe3JldHVybiBhWzBdPXQsYVsxXT1lLG5bMF19LGUuZXhwb3J0cy5sbz1mdW5jdGlvbih0KXtyZXR1cm4gblswXT10LGFbMF19LGUuZXhwb3J0cy5oaT1mdW5jdGlvbih0KXtyZXR1cm4gblswXT10LGFbMV19fWVsc2UgaWYoMTA3MjY5MzI0OD09PWFbMF0pe2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gblswXT10LFthWzFdLGFbMF1dfSxlLmV4cG9ydHMucGFjaz1mdW5jdGlvbih0LGUpe3JldHVybiBhWzFdPXQsYVswXT1lLG5bMF19LGUuZXhwb3J0cy5sbz1mdW5jdGlvbih0KXtyZXR1cm4gblswXT10LGFbMV19LGUuZXhwb3J0cy5oaT1mdW5jdGlvbih0KXtyZXR1cm4gblswXT10LGFbMF19fWVsc2Ugcj0hMX1pZighcil7dmFyIGk9bmV3IHQoOCk7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBpLndyaXRlRG91YmxlTEUodCwwLCEwKSxbaS5yZWFkVUludDMyTEUoMCwhMCksaS5yZWFkVUludDMyTEUoNCwhMCldfSxlLmV4cG9ydHMucGFjaz1mdW5jdGlvbih0LGUpe3JldHVybiBpLndyaXRlVUludDMyTEUodCwwLCEwKSxpLndyaXRlVUludDMyTEUoZSw0LCEwKSxpLnJlYWREb3VibGVMRSgwLCEwKX0sZS5leHBvcnRzLmxvPWZ1bmN0aW9uKHQpe3JldHVybiBpLndyaXRlRG91YmxlTEUodCwwLCEwKSxpLnJlYWRVSW50MzJMRSgwLCEwKX0sZS5leHBvcnRzLmhpPWZ1bmN0aW9uKHQpe3JldHVybiBpLndyaXRlRG91YmxlTEUodCwwLCEwKSxpLnJlYWRVSW50MzJMRSg0LCEwKX19ZS5leHBvcnRzLnNpZ249ZnVuY3Rpb24odCl7cmV0dXJuIGUuZXhwb3J0cy5oaSh0KT4+PjMxfSxlLmV4cG9ydHMuZXhwb25lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuKGUuZXhwb3J0cy5oaSh0KTw8MT4+PjIxKS0xMDIzfSxlLmV4cG9ydHMuZnJhY3Rpb249ZnVuY3Rpb24odCl7dmFyIHI9ZS5leHBvcnRzLmxvKHQpLG49ZS5leHBvcnRzLmhpKHQpLGE9MTA0ODU3NSZuO3JldHVybiAyMTQ2NDM1MDcyJm4mJihhKz0xPDwyMCksW3IsYV19LGUuZXhwb3J0cy5kZW5vcm1hbGl6ZWQ9ZnVuY3Rpb24odCl7cmV0dXJuISgyMTQ2NDM1MDcyJmUuZXhwb3J0cy5oaSh0KSl9fSkuY2FsbCh0aGlzLHQoImJ1ZmZlciIpLkJ1ZmZlcil9LHtidWZmZXI6MTA3fV0sMTcwOltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiYWJzLXN2Zy1wYXRoIiksYT10KCJub3JtYWxpemUtc3ZnLXBhdGgiKSxpPXtNOiJtb3ZlVG8iLEM6ImJlemllckN1cnZlVG8ifTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt0LmJlZ2luUGF0aCgpLGEobihlKSkuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgcj1lWzBdLG49ZS5zbGljZSgxKTt0W2lbcl1dLmFwcGx5KHQsbil9KSx0LmNsb3NlUGF0aCgpfX0seyJhYnMtc3ZnLXBhdGgiOjYzLCJub3JtYWxpemUtc3ZnLXBhdGgiOjQ1NH1dLDE3MTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0KXtzd2l0Y2godCl7Y2FzZSJpbnQ4IjpyZXR1cm4gSW50OEFycmF5O2Nhc2UiaW50MTYiOnJldHVybiBJbnQxNkFycmF5O2Nhc2UiaW50MzIiOnJldHVybiBJbnQzMkFycmF5O2Nhc2UidWludDgiOnJldHVybiBVaW50OEFycmF5O2Nhc2UidWludDE2IjpyZXR1cm4gVWludDE2QXJyYXk7Y2FzZSJ1aW50MzIiOnJldHVybiBVaW50MzJBcnJheTtjYXNlImZsb2F0MzIiOnJldHVybiBGbG9hdDMyQXJyYXk7Y2FzZSJmbG9hdDY0IjpyZXR1cm4gRmxvYXQ2NEFycmF5O2Nhc2UiYXJyYXkiOnJldHVybiBBcnJheTtjYXNlInVpbnQ4X2NsYW1wZWQiOnJldHVybiBVaW50OENsYW1wZWRBcnJheX19fSx7fV0sMTcyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3N3aXRjaCgidW5kZWZpbmVkIj09dHlwZW9mIGUmJihlPTApLHR5cGVvZiB0KXtjYXNlIm51bWJlciI6aWYodD4wKXJldHVybiBmdW5jdGlvbih0LGUpe3ZhciByLG47Zm9yKHI9bmV3IEFycmF5KHQpLG49MDtuPHQ7KytuKXJbbl09ZTtyZXR1cm4gcn0oMHx0LGUpO2JyZWFrO2Nhc2Uib2JqZWN0IjppZigibnVtYmVyIj09dHlwZW9mIHQubGVuZ3RoKXJldHVybiBmdW5jdGlvbiB0KGUscixuKXt2YXIgYT0wfGVbbl07aWYoYTw9MClyZXR1cm5bXTt2YXIgaSxvPW5ldyBBcnJheShhKTtpZihuPT09ZS5sZW5ndGgtMSlmb3IoaT0wO2k8YTsrK2kpb1tpXT1yO2Vsc2UgZm9yKGk9MDtpPGE7KytpKW9baV09dChlLHIsbisxKTtyZXR1cm4gb30odCxlLDApfXJldHVybltdfX0se31dLDE3MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyKXtyPXJ8fDI7dmFyIG4scyxsLGMsdSxwLGQsdj1lJiZlLmxlbmd0aCxtPXY/ZVswXSpyOnQubGVuZ3RoLHk9YSh0LDAsbSxyLCEwKSx4PVtdO2lmKCF5fHx5Lm5leHQ9PT15LnByZXYpcmV0dXJuIHg7aWYodiYmKHk9ZnVuY3Rpb24odCxlLHIsbil7dmFyIG8scyxsLGMsdSxwPVtdO2ZvcihvPTAscz1lLmxlbmd0aDtvPHM7bysrKWw9ZVtvXSpuLGM9bzxzLTE/ZVtvKzFdKm46dC5sZW5ndGgsKHU9YSh0LGwsYyxuLCExKSk9PT11Lm5leHQmJih1LnN0ZWluZXI9ITApLHAucHVzaChnKHUpKTtmb3IocC5zb3J0KGgpLG89MDtvPHAubGVuZ3RoO28rKylmKHBbb10scikscj1pKHIsci5uZXh0KTtyZXR1cm4gcn0odCxlLHkscikpLHQubGVuZ3RoPjgwKnIpe249bD10WzBdLHM9Yz10WzFdO2Zvcih2YXIgYj1yO2I8bTtiKz1yKSh1PXRbYl0pPG4mJihuPXUpLChwPXRbYisxXSk8cyYmKHM9cCksdT5sJiYobD11KSxwPmMmJihjPXApO2Q9MCE9PShkPU1hdGgubWF4KGwtbixjLXMpKT8xL2Q6MH1yZXR1cm4gbyh5LHgscixuLHMsZCkseH1mdW5jdGlvbiBhKHQsZSxyLG4sYSl7dmFyIGksbztpZihhPT09RSh0LGUscixuKT4wKWZvcihpPWU7aTxyO2krPW4pbz1NKGksdFtpXSx0W2krMV0sbyk7ZWxzZSBmb3IoaT1yLW47aT49ZTtpLT1uKW89TShpLHRbaV0sdFtpKzFdLG8pO3JldHVybiBvJiZ4KG8sby5uZXh0KSYmKEEobyksbz1vLm5leHQpLG99ZnVuY3Rpb24gaSh0LGUpe2lmKCF0KXJldHVybiB0O2V8fChlPXQpO3ZhciByLG49dDtkb3tpZihyPSExLG4uc3RlaW5lcnx8IXgobixuLm5leHQpJiYwIT09eShuLnByZXYsbixuLm5leHQpKW49bi5uZXh0O2Vsc2V7aWYoQShuKSwobj1lPW4ucHJldik9PT1uLm5leHQpYnJlYWs7cj0hMH19d2hpbGUocnx8biE9PWUpO3JldHVybiBlfWZ1bmN0aW9uIG8odCxlLHIsbixhLGgsZil7aWYodCl7IWYmJmgmJmZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPXQ7ZG97bnVsbD09PWEueiYmKGEuej1kKGEueCxhLnksZSxyLG4pKSxhLnByZXZaPWEucHJldixhLm5leHRaPWEubmV4dCxhPWEubmV4dH13aGlsZShhIT09dCk7YS5wcmV2Wi5uZXh0Wj1udWxsLGEucHJldlo9bnVsbCxmdW5jdGlvbih0KXt2YXIgZSxyLG4sYSxpLG8scyxsLGM9MTtkb3tmb3Iocj10LHQ9bnVsbCxpPW51bGwsbz0wO3I7KXtmb3IobysrLG49cixzPTAsZT0wO2U8YyYmKHMrKyxuPW4ubmV4dFopO2UrKyk7Zm9yKGw9YztzPjB8fGw+MCYmbjspMCE9PXMmJigwPT09bHx8IW58fHIuejw9bi56KT8oYT1yLHI9ci5uZXh0WixzLS0pOihhPW4sbj1uLm5leHRaLGwtLSksaT9pLm5leHRaPWE6dD1hLGEucHJldlo9aSxpPWE7cj1ufWkubmV4dFo9bnVsbCxjKj0yfXdoaWxlKG8+MSl9KGEpfSh0LG4sYSxoKTtmb3IodmFyIHAsZyx2PXQ7dC5wcmV2IT09dC5uZXh0OylpZihwPXQucHJldixnPXQubmV4dCxoP2wodCxuLGEsaCk6cyh0KSllLnB1c2gocC5pL3IpLGUucHVzaCh0LmkvciksZS5wdXNoKGcuaS9yKSxBKHQpLHQ9Zy5uZXh0LHY9Zy5uZXh0O2Vsc2UgaWYoKHQ9Zyk9PT12KXtmPzE9PT1mP28odD1jKGkodCksZSxyKSxlLHIsbixhLGgsMik6Mj09PWYmJnUodCxlLHIsbixhLGgpOm8oaSh0KSxlLHIsbixhLGgsMSk7YnJlYWt9fX1mdW5jdGlvbiBzKHQpe3ZhciBlPXQucHJldixyPXQsbj10Lm5leHQ7aWYoeShlLHIsbik+PTApcmV0dXJuITE7Zm9yKHZhciBhPXQubmV4dC5uZXh0O2EhPT10LnByZXY7KXtpZih2KGUueCxlLnksci54LHIueSxuLngsbi55LGEueCxhLnkpJiZ5KGEucHJldixhLGEubmV4dCk+PTApcmV0dXJuITE7YT1hLm5leHR9cmV0dXJuITB9ZnVuY3Rpb24gbCh0LGUscixuKXt2YXIgYT10LnByZXYsaT10LG89dC5uZXh0O2lmKHkoYSxpLG8pPj0wKXJldHVybiExO2Zvcih2YXIgcz1hLng8aS54P2EueDxvLng/YS54Om8ueDppLng8by54P2kueDpvLngsbD1hLnk8aS55P2EueTxvLnk/YS55Om8ueTppLnk8by55P2kueTpvLnksYz1hLng+aS54P2EueD5vLng/YS54Om8ueDppLng+by54P2kueDpvLngsdT1hLnk+aS55P2EueT5vLnk/YS55Om8ueTppLnk+by55P2kueTpvLnksaD1kKHMsbCxlLHIsbiksZj1kKGMsdSxlLHIsbikscD10LnByZXZaLGc9dC5uZXh0WjtwJiZwLno+PWgmJmcmJmcuejw9Zjspe2lmKHAhPT10LnByZXYmJnAhPT10Lm5leHQmJnYoYS54LGEueSxpLngsaS55LG8ueCxvLnkscC54LHAueSkmJnkocC5wcmV2LHAscC5uZXh0KT49MClyZXR1cm4hMTtpZihwPXAucHJldlosZyE9PXQucHJldiYmZyE9PXQubmV4dCYmdihhLngsYS55LGkueCxpLnksby54LG8ueSxnLngsZy55KSYmeShnLnByZXYsZyxnLm5leHQpPj0wKXJldHVybiExO2c9Zy5uZXh0Wn1mb3IoO3AmJnAuej49aDspe2lmKHAhPT10LnByZXYmJnAhPT10Lm5leHQmJnYoYS54LGEueSxpLngsaS55LG8ueCxvLnkscC54LHAueSkmJnkocC5wcmV2LHAscC5uZXh0KT49MClyZXR1cm4hMTtwPXAucHJldlp9Zm9yKDtnJiZnLno8PWY7KXtpZihnIT09dC5wcmV2JiZnIT09dC5uZXh0JiZ2KGEueCxhLnksaS54LGkueSxvLngsby55LGcueCxnLnkpJiZ5KGcucHJldixnLGcubmV4dCk+PTApcmV0dXJuITE7Zz1nLm5leHRafXJldHVybiEwfWZ1bmN0aW9uIGModCxlLHIpe3ZhciBuPXQ7ZG97dmFyIGE9bi5wcmV2LG89bi5uZXh0Lm5leHQ7IXgoYSxvKSYmYihhLG4sbi5uZXh0LG8pJiZrKGEsbykmJmsobyxhKSYmKGUucHVzaChhLmkvciksZS5wdXNoKG4uaS9yKSxlLnB1c2goby5pL3IpLEEobiksQShuLm5leHQpLG49dD1vKSxuPW4ubmV4dH13aGlsZShuIT09dCk7cmV0dXJuIGkobil9ZnVuY3Rpb24gdSh0LGUscixuLGEscyl7dmFyIGw9dDtkb3tmb3IodmFyIGM9bC5uZXh0Lm5leHQ7YyE9PWwucHJldjspe2lmKGwuaSE9PWMuaSYmbShsLGMpKXt2YXIgdT1UKGwsYyk7cmV0dXJuIGw9aShsLGwubmV4dCksdT1pKHUsdS5uZXh0KSxvKGwsZSxyLG4sYSxzKSx2b2lkIG8odSxlLHIsbixhLHMpfWM9Yy5uZXh0fWw9bC5uZXh0fXdoaWxlKGwhPT10KX1mdW5jdGlvbiBoKHQsZSl7cmV0dXJuIHQueC1lLnh9ZnVuY3Rpb24gZih0LGUpe2lmKGU9ZnVuY3Rpb24odCxlKXt2YXIgcixuPWUsYT10LngsaT10Lnksbz0tMS8wO2Rve2lmKGk8PW4ueSYmaT49bi5uZXh0LnkmJm4ubmV4dC55IT09bi55KXt2YXIgcz1uLngrKGktbi55KSoobi5uZXh0Lngtbi54KS8obi5uZXh0Lnktbi55KTtpZihzPD1hJiZzPm8pe2lmKG89cyxzPT09YSl7aWYoaT09PW4ueSlyZXR1cm4gbjtpZihpPT09bi5uZXh0LnkpcmV0dXJuIG4ubmV4dH1yPW4ueDxuLm5leHQueD9uOm4ubmV4dH19bj1uLm5leHR9d2hpbGUobiE9PWUpO2lmKCFyKXJldHVybiBudWxsO2lmKGE9PT1vKXJldHVybiByO3ZhciBsLGM9cix1PXIueCxoPXIueSxmPTEvMDtuPXI7ZG97YT49bi54JiZuLng+PXUmJmEhPT1uLngmJnYoaTxoP2E6byxpLHUsaCxpPGg/bzphLGksbi54LG4ueSkmJihsPU1hdGguYWJzKGktbi55KS8oYS1uLngpLGsobix0KSYmKGw8Znx8bD09PWYmJihuLng+ci54fHxuLng9PT1yLngmJnAocixuKSkpJiYocj1uLGY9bCkpLG49bi5uZXh0fXdoaWxlKG4hPT1jKTtyZXR1cm4gcn0odCxlKSl7dmFyIHI9VChlLHQpO2kocixyLm5leHQpfX1mdW5jdGlvbiBwKHQsZSl7cmV0dXJuIHkodC5wcmV2LHQsZS5wcmV2KTwwJiZ5KGUubmV4dCx0LHQubmV4dCk8MH1mdW5jdGlvbiBkKHQsZSxyLG4sYSl7cmV0dXJuKHQ9MTQzMTY1NTc2NSYoKHQ9ODU4OTkzNDU5JigodD0yNTI2NDUxMzUmKCh0PTE2NzExOTM1JigodD0zMjc2NyoodC1yKSphKXx0PDw4KSl8dDw8NCkpfHQ8PDIpKXx0PDwxKSl8KGU9MTQzMTY1NTc2NSYoKGU9ODU4OTkzNDU5JigoZT0yNTI2NDUxMzUmKChlPTE2NzExOTM1JigoZT0zMjc2NyooZS1uKSphKXxlPDw4KSl8ZTw8NCkpfGU8PDIpKXxlPDwxKSk8PDF9ZnVuY3Rpb24gZyh0KXt2YXIgZT10LHI9dDtkb3soZS54PHIueHx8ZS54PT09ci54JiZlLnk8ci55KSYmKHI9ZSksZT1lLm5leHR9d2hpbGUoZSE9PXQpO3JldHVybiByfWZ1bmN0aW9uIHYodCxlLHIsbixhLGksbyxzKXtyZXR1cm4oYS1vKSooZS1zKS0odC1vKSooaS1zKT49MCYmKHQtbykqKG4tcyktKHItbykqKGUtcyk+PTAmJihyLW8pKihpLXMpLShhLW8pKihuLXMpPj0wfWZ1bmN0aW9uIG0odCxlKXtyZXR1cm4gdC5uZXh0LmkhPT1lLmkmJnQucHJldi5pIT09ZS5pJiYhZnVuY3Rpb24odCxlKXt2YXIgcj10O2Rve2lmKHIuaSE9PXQuaSYmci5uZXh0LmkhPT10LmkmJnIuaSE9PWUuaSYmci5uZXh0LmkhPT1lLmkmJmIocixyLm5leHQsdCxlKSlyZXR1cm4hMDtyPXIubmV4dH13aGlsZShyIT09dCk7cmV0dXJuITF9KHQsZSkmJihrKHQsZSkmJmsoZSx0KSYmZnVuY3Rpb24odCxlKXt2YXIgcj10LG49ITEsYT0odC54K2UueCkvMixpPSh0LnkrZS55KS8yO2Rve3IueT5pIT1yLm5leHQueT5pJiZyLm5leHQueSE9PXIueSYmYTwoci5uZXh0Lngtci54KSooaS1yLnkpLyhyLm5leHQueS1yLnkpK3IueCYmKG49IW4pLHI9ci5uZXh0fXdoaWxlKHIhPT10KTtyZXR1cm4gbn0odCxlKSYmKHkodC5wcmV2LHQsZS5wcmV2KXx8eSh0LGUucHJldixlKSl8fHgodCxlKSYmeSh0LnByZXYsdCx0Lm5leHQpPjAmJnkoZS5wcmV2LGUsZS5uZXh0KT4wKX1mdW5jdGlvbiB5KHQsZSxyKXtyZXR1cm4oZS55LXQueSkqKHIueC1lLngpLShlLngtdC54KSooci55LWUueSl9ZnVuY3Rpb24geCh0LGUpe3JldHVybiB0Lng9PT1lLngmJnQueT09PWUueX1mdW5jdGlvbiBiKHQsZSxyLG4pe3ZhciBhPXcoeSh0LGUscikpLGk9dyh5KHQsZSxuKSksbz13KHkocixuLHQpKSxzPXcoeShyLG4sZSkpO3JldHVybiBhIT09aSYmbyE9PXN8fCghKDAhPT1hfHwhXyh0LHIsZSkpfHwoISgwIT09aXx8IV8odCxuLGUpKXx8KCEoMCE9PW98fCFfKHIsdCxuKSl8fCEoMCE9PXN8fCFfKHIsZSxuKSkpKSl9ZnVuY3Rpb24gXyh0LGUscil7cmV0dXJuIGUueDw9TWF0aC5tYXgodC54LHIueCkmJmUueD49TWF0aC5taW4odC54LHIueCkmJmUueTw9TWF0aC5tYXgodC55LHIueSkmJmUueT49TWF0aC5taW4odC55LHIueSl9ZnVuY3Rpb24gdyh0KXtyZXR1cm4gdD4wPzE6dDwwPy0xOjB9ZnVuY3Rpb24gayh0LGUpe3JldHVybiB5KHQucHJldix0LHQubmV4dCk8MD95KHQsZSx0Lm5leHQpPj0wJiZ5KHQsdC5wcmV2LGUpPj0wOnkodCxlLHQucHJldik8MHx8eSh0LHQubmV4dCxlKTwwfWZ1bmN0aW9uIFQodCxlKXt2YXIgcj1uZXcgUyh0LmksdC54LHQueSksbj1uZXcgUyhlLmksZS54LGUueSksYT10Lm5leHQsaT1lLnByZXY7cmV0dXJuIHQubmV4dD1lLGUucHJldj10LHIubmV4dD1hLGEucHJldj1yLG4ubmV4dD1yLHIucHJldj1uLGkubmV4dD1uLG4ucHJldj1pLG59ZnVuY3Rpb24gTSh0LGUscixuKXt2YXIgYT1uZXcgUyh0LGUscik7cmV0dXJuIG4/KGEubmV4dD1uLm5leHQsYS5wcmV2PW4sbi5uZXh0LnByZXY9YSxuLm5leHQ9YSk6KGEucHJldj1hLGEubmV4dD1hKSxhfWZ1bmN0aW9uIEEodCl7dC5uZXh0LnByZXY9dC5wcmV2LHQucHJldi5uZXh0PXQubmV4dCx0LnByZXZaJiYodC5wcmV2Wi5uZXh0Wj10Lm5leHRaKSx0Lm5leHRaJiYodC5uZXh0Wi5wcmV2Wj10LnByZXZaKX1mdW5jdGlvbiBTKHQsZSxyKXt0aGlzLmk9dCx0aGlzLng9ZSx0aGlzLnk9cix0aGlzLnByZXY9bnVsbCx0aGlzLm5leHQ9bnVsbCx0aGlzLno9bnVsbCx0aGlzLnByZXZaPW51bGwsdGhpcy5uZXh0Wj1udWxsLHRoaXMuc3RlaW5lcj0hMX1mdW5jdGlvbiBFKHQsZSxyLG4pe2Zvcih2YXIgYT0wLGk9ZSxvPXItbjtpPHI7aSs9bilhKz0odFtvXS10W2ldKSoodFtpKzFdK3RbbysxXSksbz1pO3JldHVybiBhfWUuZXhwb3J0cz1uLGUuZXhwb3J0cy5kZWZhdWx0PW4sbi5kZXZpYXRpb249ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9ZSYmZS5sZW5ndGgsaT1hP2VbMF0qcjp0Lmxlbmd0aCxvPU1hdGguYWJzKEUodCwwLGkscikpO2lmKGEpZm9yKHZhciBzPTAsbD1lLmxlbmd0aDtzPGw7cysrKXt2YXIgYz1lW3NdKnIsdT1zPGwtMT9lW3MrMV0qcjp0Lmxlbmd0aDtvLT1NYXRoLmFicyhFKHQsYyx1LHIpKX12YXIgaD0wO2ZvcihzPTA7czxuLmxlbmd0aDtzKz0zKXt2YXIgZj1uW3NdKnIscD1uW3MrMV0qcixkPW5bcysyXSpyO2grPU1hdGguYWJzKCh0W2ZdLXRbZF0pKih0W3ArMV0tdFtmKzFdKS0odFtmXS10W3BdKSoodFtkKzFdLXRbZisxXSkpfXJldHVybiAwPT09byYmMD09PWg/MDpNYXRoLmFicygoaC1vKS9vKX0sbi5mbGF0dGVuPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10WzBdWzBdLmxlbmd0aCxyPXt2ZXJ0aWNlczpbXSxob2xlczpbXSxkaW1lbnNpb25zOmV9LG49MCxhPTA7YTx0Lmxlbmd0aDthKyspe2Zvcih2YXIgaT0wO2k8dFthXS5sZW5ndGg7aSsrKWZvcih2YXIgbz0wO288ZTtvKyspci52ZXJ0aWNlcy5wdXNoKHRbYV1baV1bb10pO2E+MCYmKG4rPXRbYS0xXS5sZW5ndGgsci5ob2xlcy5wdXNoKG4pKX1yZXR1cm4gcn19LHt9XSwxNzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5sZW5ndGg7aWYoIm51bWJlciIhPXR5cGVvZiBlKXtlPTA7Zm9yKHZhciBhPTA7YTxyOysrYSl7dmFyIGk9dFthXTtlPU1hdGgubWF4KGUsaVswXSxpWzFdKX1lPTErKDB8ZSl9ZXw9MDtmb3IodmFyIG89bmV3IEFycmF5KGUpLGE9MDthPGU7KythKW9bYV09W107Zm9yKHZhciBhPTA7YTxyOysrYSl7dmFyIGk9dFthXTtvW2lbMF1dLnB1c2goaVsxXSksb1tpWzFdXS5wdXNoKGlbMF0pfWZvcih2YXIgcz0wO3M8ZTsrK3MpbihvW3NdLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQtZX0pO3JldHVybiBvfTt2YXIgbj10KCJ1bmlxIil9LHt1bmlxOjU0Nn1dLDE3NTpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoInN0cm9uZ2x5LWNvbm5lY3RlZC1jb21wb25lbnRzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlLHI9W10sYT1bXSxpPVtdLG89e30scz1bXTtmdW5jdGlvbiBsKHQpe3ZhciByLG4sdT0hMTtmb3IoYS5wdXNoKHQpLGlbdF09ITAscj0wO3I8c1t0XS5sZW5ndGg7cisrKShuPXNbdF1bcl0pPT09ZT8oYyhlLGEpLHU9ITApOmlbbl18fCh1PWwobikpO2lmKHUpIWZ1bmN0aW9uIHQoZSl7aVtlXT0hMSxvLmhhc093blByb3BlcnR5KGUpJiZPYmplY3Qua2V5cyhvW2VdKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe2RlbGV0ZSBvW2VdW3JdLGlbcl0mJnQocil9KX0odCk7ZWxzZSBmb3Iocj0wO3I8c1t0XS5sZW5ndGg7cisrKXtuPXNbdF1bcl07dmFyIGg9b1tuXTtofHwoaD17fSxvW25dPWgpLGhbbl09ITB9cmV0dXJuIGEucG9wKCksdX1mdW5jdGlvbiBjKHQsZSl7dmFyIG49W10uY29uY2F0KGUpLmNvbmNhdCh0KTtyLnB1c2gobil9ZnVuY3Rpb24gdShlKXshZnVuY3Rpb24oZSl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspcjxlJiYodFtyXT1bXSksdFtyXT10W3JdLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdD49ZX0pfShlKTtmb3IodmFyIHIsYT1uKHQpLmNvbXBvbmVudHMuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmxlbmd0aD4xfSksaT0xLzAsbz0wO288YS5sZW5ndGg7bysrKWZvcih2YXIgcz0wO3M8YVtvXS5sZW5ndGg7cysrKWFbb11bc108aSYmKGk9YVtvXVtzXSxyPW8pO3ZhciBsPWFbcl07cmV0dXJuISFsJiZ7bGVhc3RWZXJ0ZXg6aSxhZGpMaXN0OnQubWFwKGZ1bmN0aW9uKHQsZSl7cmV0dXJuLTE9PT1sLmluZGV4T2YoZSk/W106dC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuLTEhPT1sLmluZGV4T2YodCl9KX0pfX1lPTA7Zm9yKHZhciBoPXQubGVuZ3RoO2U8aDspe3ZhciBmPXUoZSk7aWYoZT1mLmxlYXN0VmVydGV4LHM9Zi5hZGpMaXN0KXtmb3IodmFyIHA9MDtwPHMubGVuZ3RoO3ArKylmb3IodmFyIGQ9MDtkPHNbcF0ubGVuZ3RoO2QrKyl7dmFyIGc9c1twXVtkXTtpWytnXT0hMSxvW2ddPXt9fWwoZSksZSs9MX1lbHNlIGU9aH1yZXR1cm4gcn19LHsic3Ryb25nbHktY29ubmVjdGVkLWNvbXBvbmVudHMiOjUyOX1dLDE3NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9vYmplY3QvdmFsaWQtdmFsdWUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzKS5sZW5ndGg9MCx0aGlzfX0seyIuLi8uLi9vYmplY3QvdmFsaWQtdmFsdWUiOjIwOH1dLDE3NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi9pcy1pbXBsZW1lbnRlZCIpKCk/QXJyYXkuZnJvbTp0KCIuL3NoaW0iKX0seyIuL2lzLWltcGxlbWVudGVkIjoxNzgsIi4vc2hpbSI6MTc5fV0sMTc4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciB0LGUscj1BcnJheS5mcm9tO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiByJiYoZT1yKHQ9WyJyYXoiLCJkd2EiXSksQm9vbGVhbihlJiZlIT09dCYmImR3YSI9PT1lWzFdKSl9fSx7fV0sMTc5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImVzNi1zeW1ib2wiKS5pdGVyYXRvcixhPXQoIi4uLy4uL2Z1bmN0aW9uL2lzLWFyZ3VtZW50cyIpLGk9dCgiLi4vLi4vZnVuY3Rpb24vaXMtZnVuY3Rpb24iKSxvPXQoIi4uLy4uL251bWJlci90by1wb3MtaW50ZWdlciIpLHM9dCgiLi4vLi4vb2JqZWN0L3ZhbGlkLWNhbGxhYmxlIiksbD10KCIuLi8uLi9vYmplY3QvdmFsaWQtdmFsdWUiKSxjPXQoIi4uLy4uL29iamVjdC9pcy12YWx1ZSIpLHU9dCgiLi4vLi4vc3RyaW5nL2lzLXN0cmluZyIpLGg9QXJyYXkuaXNBcnJheSxmPUZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLHA9e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm51bGx9LGQ9T2JqZWN0LmRlZmluZVByb3BlcnR5O2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZSxyLGcsdixtLHkseCxiLF8sdyxrPWFyZ3VtZW50c1sxXSxUPWFyZ3VtZW50c1syXTtpZih0PU9iamVjdChsKHQpKSxjKGspJiZzKGspLHRoaXMmJnRoaXMhPT1BcnJheSYmaSh0aGlzKSllPXRoaXM7ZWxzZXtpZighayl7aWYoYSh0KSlyZXR1cm4gMSE9PShtPXQubGVuZ3RoKT9BcnJheS5hcHBseShudWxsLHQpOigodj1uZXcgQXJyYXkoMSkpWzBdPXRbMF0sdik7aWYoaCh0KSl7Zm9yKHY9bmV3IEFycmF5KG09dC5sZW5ndGgpLHI9MDtyPG07KytyKXZbcl09dFtyXTtyZXR1cm4gdn19dj1bXX1pZighaCh0KSlpZih2b2lkIDAhPT0oXz10W25dKSl7Zm9yKHg9cyhfKS5jYWxsKHQpLGUmJih2PW5ldyBlKSxiPXgubmV4dCgpLHI9MDshYi5kb25lOyl3PWs/Zi5jYWxsKGssVCxiLnZhbHVlLHIpOmIudmFsdWUsZT8ocC52YWx1ZT13LGQodixyLHApKTp2W3JdPXcsYj14Lm5leHQoKSwrK3I7bT1yfWVsc2UgaWYodSh0KSl7Zm9yKG09dC5sZW5ndGgsZSYmKHY9bmV3IGUpLHI9MCxnPTA7cjxtOysrcil3PXRbcl0scisxPG0mJih5PXcuY2hhckNvZGVBdCgwKSk+PTU1Mjk2JiZ5PD01NjMxOSYmKHcrPXRbKytyXSksdz1rP2YuY2FsbChrLFQsdyxnKTp3LGU/KHAudmFsdWU9dyxkKHYsZyxwKSk6dltnXT13LCsrZzttPWd9aWYodm9pZCAwPT09bSlmb3IobT1vKHQubGVuZ3RoKSxlJiYodj1uZXcgZShtKSkscj0wO3I8bTsrK3Ipdz1rP2YuY2FsbChrLFQsdFtyXSxyKTp0W3JdLGU/KHAudmFsdWU9dyxkKHYscixwKSk6dltyXT13O3JldHVybiBlJiYocC52YWx1ZT1udWxsLHYubGVuZ3RoPW0pLHZ9fSx7Ii4uLy4uL2Z1bmN0aW9uL2lzLWFyZ3VtZW50cyI6MTgwLCIuLi8uLi9mdW5jdGlvbi9pcy1mdW5jdGlvbiI6MTgxLCIuLi8uLi9udW1iZXIvdG8tcG9zLWludGVnZXIiOjE4NywiLi4vLi4vb2JqZWN0L2lzLXZhbHVlIjoxOTcsIi4uLy4uL29iamVjdC92YWxpZC1jYWxsYWJsZSI6MjA2LCIuLi8uLi9vYmplY3QvdmFsaWQtdmFsdWUiOjIwOCwiLi4vLi4vc3RyaW5nL2lzLXN0cmluZyI6MjEyLCJlczYtc3ltYm9sIjoyMjJ9XSwxODA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxhPW4uY2FsbChmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbi5jYWxsKHQpPT09YX19LHt9XSwxODE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxhPW4uY2FsbCh0KCIuL25vb3AiKSk7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0JiZuLmNhbGwodCk9PT1hfX0seyIuL25vb3AiOjE4Mn1dLDE4MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt9fSx7fV0sMTgzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuL2lzLWltcGxlbWVudGVkIikoKT9NYXRoLnNpZ246dCgiLi9zaGltIil9LHsiLi9pcy1pbXBsZW1lbnRlZCI6MTg0LCIuL3NoaW0iOjE4NX1dLDE4NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgdD1NYXRoLnNpZ247cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQmJigxPT09dCgxMCkmJi0xPT09dCgtMjApKX19LHt9XSwxODU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0PU51bWJlcih0KSxpc05hTih0KXx8MD09PXQ/dDp0PjA/MTotMX19LHt9XSwxODY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vbWF0aC9zaWduIiksYT1NYXRoLmFicyxpPU1hdGguZmxvb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBpc05hTih0KT8wOjAhPT0odD1OdW1iZXIodCkpJiZpc0Zpbml0ZSh0KT9uKHQpKmkoYSh0KSk6dH19LHsiLi4vbWF0aC9zaWduIjoxODN9XSwxODc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi90by1pbnRlZ2VyIiksYT1NYXRoLm1heDtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGEoMCxuKHQpKX19LHsiLi90by1pbnRlZ2VyIjoxODZ9XSwxODg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi92YWxpZC1jYWxsYWJsZSIpLGE9dCgiLi92YWxpZC12YWx1ZSIpLGk9RnVuY3Rpb24ucHJvdG90eXBlLmJpbmQsbz1GdW5jdGlvbi5wcm90b3R5cGUuY2FsbCxzPU9iamVjdC5rZXlzLGw9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24ocixjKXt2YXIgdSxoPWFyZ3VtZW50c1syXSxmPWFyZ3VtZW50c1szXTtyZXR1cm4gcj1PYmplY3QoYShyKSksbihjKSx1PXMociksZiYmdS5zb3J0KCJmdW5jdGlvbiI9PXR5cGVvZiBmP2kuY2FsbChmLHIpOnZvaWQgMCksImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PXVbdF0pLG8uY2FsbCh0LHUsZnVuY3Rpb24odCxuKXtyZXR1cm4gbC5jYWxsKHIsdCk/by5jYWxsKGMsaCxyW3RdLHQscixuKTplfSl9fX0seyIuL3ZhbGlkLWNhbGxhYmxlIjoyMDYsIi4vdmFsaWQtdmFsdWUiOjIwOH1dLDE4OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi9pcy1pbXBsZW1lbnRlZCIpKCk/T2JqZWN0LmFzc2lnbjp0KCIuL3NoaW0iKX0seyIuL2lzLWltcGxlbWVudGVkIjoxOTAsIi4vc2hpbSI6MTkxfV0sMTkwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciB0LGU9T2JqZWN0LmFzc2lnbjtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmKGUodD17Zm9vOiJyYXoifSx7YmFyOiJkd2EifSx7dHJ6eToidHJ6eSJ9KSx0LmZvbyt0LmJhcit0LnRyenk9PT0icmF6ZHdhdHJ6eSIpfX0se31dLDE5MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9rZXlzIiksYT10KCIuLi92YWxpZC12YWx1ZSIpLGk9TWF0aC5tYXg7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbyxzLGw9aShhcmd1bWVudHMubGVuZ3RoLDIpO2Zvcih0PU9iamVjdChhKHQpKSxzPWZ1bmN0aW9uKG4pe3RyeXt0W25dPWVbbl19Y2F0Y2godCl7cnx8KHI9dCl9fSxvPTE7bzxsOysrbyllPWFyZ3VtZW50c1tvXSxuKGUpLmZvckVhY2gocyk7aWYodm9pZCAwIT09cil0aHJvdyByO3JldHVybiB0fX0seyIuLi9rZXlzIjoxOTgsIi4uL3ZhbGlkLXZhbHVlIjoyMDh9XSwxOTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vYXJyYXkvZnJvbSIpLGE9dCgiLi9hc3NpZ24iKSxpPXQoIi4vdmFsaWQtdmFsdWUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9T2JqZWN0KGkodCkpLHI9YXJndW1lbnRzWzFdLG89T2JqZWN0KGFyZ3VtZW50c1syXSk7aWYoZSE9PXQmJiFyKXJldHVybiBlO3ZhciBzPXt9O3JldHVybiByP24ocixmdW5jdGlvbihlKXsoby5lbnN1cmV8fGUgaW4gdCkmJihzW2VdPXRbZV0pfSk6YShzLHQpLHN9fSx7Ii4uL2FycmF5L2Zyb20iOjE3NywiLi9hc3NpZ24iOjE4OSwiLi92YWxpZC12YWx1ZSI6MjA4fV0sMTkzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuLGEsaSxvLHM9T2JqZWN0LmNyZWF0ZTt0KCIuL3NldC1wcm90b3R5cGUtb2YvaXMtaW1wbGVtZW50ZWQiKSgpfHwobj10KCIuL3NldC1wcm90b3R5cGUtb2Yvc2hpbSIpKSxlLmV4cG9ydHM9bj8xIT09bi5sZXZlbD9zOihhPXt9LGk9e30sbz17Y29uZmlndXJhYmxlOiExLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsdmFsdWU6dm9pZCAwfSxPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhPYmplY3QucHJvdG90eXBlKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lbdF09Il9fcHJvdG9fXyIhPT10P286e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLHZhbHVlOnZvaWQgMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhhLGkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJudWxsUG9seWZpbGwiLHtjb25maWd1cmFibGU6ITEsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMSx2YWx1ZTphfSksZnVuY3Rpb24odCxlKXtyZXR1cm4gcyhudWxsPT09dD9hOnQsZSl9KTpzfSx7Ii4vc2V0LXByb3RvdHlwZS1vZi9pcy1pbXBsZW1lbnRlZCI6MjA0LCIuL3NldC1wcm90b3R5cGUtb2Yvc2hpbSI6MjA1fV0sMTk0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuL19pdGVyYXRlIikoImZvckVhY2giKX0seyIuL19pdGVyYXRlIjoxODh9XSwxOTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0fX0se31dLDE5NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2lzLXZhbHVlIiksYT17ZnVuY3Rpb246ITAsb2JqZWN0OiEwfTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG4odCkmJmFbdHlwZW9mIHRdfHwhMX19LHsiLi9pcy12YWx1ZSI6MTk3fV0sMTk3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2Z1bmN0aW9uL25vb3AiKSgpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gdCE9PW4mJm51bGwhPT10fX0seyIuLi9mdW5jdGlvbi9ub29wIjoxODJ9XSwxOTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4vaXMtaW1wbGVtZW50ZWQiKSgpP09iamVjdC5rZXlzOnQoIi4vc2hpbSIpfSx7Ii4vaXMtaW1wbGVtZW50ZWQiOjE5OSwiLi9zaGltIjoyMDB9XSwxOTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBPYmplY3Qua2V5cygicHJpbWl0aXZlIiksITB9Y2F0Y2godCl7cmV0dXJuITF9fX0se31dLDIwMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9pcy12YWx1ZSIpLGE9T2JqZWN0LmtleXM7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBhKG4odCk/T2JqZWN0KHQpOnQpfX0seyIuLi9pcy12YWx1ZSI6MTk3fV0sMjAxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vdmFsaWQtY2FsbGFibGUiKSxhPXQoIi4vZm9yLWVhY2giKSxpPUZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXt9LG89YXJndW1lbnRzWzJdO3JldHVybiBuKGUpLGEodCxmdW5jdGlvbih0LG4sYSxzKXtyW25dPWkuY2FsbChlLG8sdCxuLGEscyl9KSxyfX0seyIuL2Zvci1lYWNoIjoxOTQsIi4vdmFsaWQtY2FsbGFibGUiOjIwNn1dLDIwMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2lzLXZhbHVlIiksYT1BcnJheS5wcm90b3R5cGUuZm9yRWFjaCxpPU9iamVjdC5jcmVhdGU7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPWkobnVsbCk7cmV0dXJuIGEuY2FsbChhcmd1bWVudHMsZnVuY3Rpb24odCl7bih0KSYmZnVuY3Rpb24odCxlKXt2YXIgcjtmb3IociBpbiB0KWVbcl09dFtyXX0oT2JqZWN0KHQpLGUpfSksZX19LHsiLi9pcy12YWx1ZSI6MTk3fV0sMjAzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuL2lzLWltcGxlbWVudGVkIikoKT9PYmplY3Quc2V0UHJvdG90eXBlT2Y6dCgiLi9zaGltIil9LHsiLi9pcy1pbXBsZW1lbnRlZCI6MjA0LCIuL3NoaW0iOjIwNX1dLDIwNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1PYmplY3QuY3JlYXRlLGE9T2JqZWN0LmdldFByb3RvdHlwZU9mLGk9e307ZS5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIHQ9T2JqZWN0LnNldFByb3RvdHlwZU9mLGU9YXJndW1lbnRzWzBdfHxuO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0JiZhKHQoZShudWxsKSxpKSk9PT1pfX0se31dLDIwNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixhLGksbyxzPXQoIi4uL2lzLW9iamVjdCIpLGw9dCgiLi4vdmFsaWQtdmFsdWUiKSxjPU9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZix1PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxoPXtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCx2YWx1ZTp2b2lkIDB9O249ZnVuY3Rpb24odCxlKXtpZihsKHQpLG51bGw9PT1lfHxzKGUpKXJldHVybiB0O3Rocm93IG5ldyBUeXBlRXJyb3IoIlByb3RvdHlwZSBtdXN0IGJlIG51bGwgb3IgYW4gb2JqZWN0Iil9LGUuZXhwb3J0cz0oYT1mdW5jdGlvbigpe3ZhciB0LGU9T2JqZWN0LmNyZWF0ZShudWxsKSxyPXt9LG49T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QucHJvdG90eXBlLCJfX3Byb3RvX18iKTtpZihuKXt0cnl7KHQ9bi5zZXQpLmNhbGwoZSxyKX1jYXRjaCh0KXt9aWYoT2JqZWN0LmdldFByb3RvdHlwZU9mKGUpPT09cilyZXR1cm57c2V0OnQsbGV2ZWw6Mn19cmV0dXJuIGUuX19wcm90b19fPXIsT2JqZWN0LmdldFByb3RvdHlwZU9mKGUpPT09cj97bGV2ZWw6Mn06KChlPXt9KS5fX3Byb3RvX189cixPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk9PT1yJiZ7bGV2ZWw6MX0pfSgpKT8oMj09PWEubGV2ZWw/YS5zZXQ/KG89YS5zZXQsaT1mdW5jdGlvbih0LGUpe3JldHVybiBvLmNhbGwobih0LGUpLGUpLHR9KTppPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4odCxlKS5fX3Byb3RvX189ZSx0fTppPWZ1bmN0aW9uIHQoZSxyKXt2YXIgYTtyZXR1cm4gbihlLHIpLChhPWMuY2FsbCh0Lm51bGxQb2x5ZmlsbCxlKSkmJmRlbGV0ZSB0Lm51bGxQb2x5ZmlsbC5fX3Byb3RvX18sbnVsbD09PXImJihyPXQubnVsbFBvbHlmaWxsKSxlLl9fcHJvdG9fXz1yLGEmJnUodC5udWxsUG9seWZpbGwsIl9fcHJvdG9fXyIsaCksZX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGksImxldmVsIix7Y29uZmlndXJhYmxlOiExLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITEsdmFsdWU6YS5sZXZlbH0pKTpudWxsLHQoIi4uL2NyZWF0ZSIpfSx7Ii4uL2NyZWF0ZSI6MTkzLCIuLi9pcy1vYmplY3QiOjE5NiwiLi4vdmFsaWQtdmFsdWUiOjIwOH1dLDIwNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcih0KyIgaXMgbm90IGEgZnVuY3Rpb24iKTtyZXR1cm4gdH19LHt9XSwyMDc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9pcy1vYmplY3QiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoIW4odCkpdGhyb3cgbmV3IFR5cGVFcnJvcih0KyIgaXMgbm90IGFuIE9iamVjdCIpO3JldHVybiB0fX0seyIuL2lzLW9iamVjdCI6MTk2fV0sMjA4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vaXMtdmFsdWUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoIW4odCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHVzZSBudWxsIG9yIHVuZGVmaW5lZCIpO3JldHVybiB0fX0seyIuL2lzLXZhbHVlIjoxOTd9XSwyMDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4vaXMtaW1wbGVtZW50ZWQiKSgpP1N0cmluZy5wcm90b3R5cGUuY29udGFpbnM6dCgiLi9zaGltIil9LHsiLi9pcy1pbXBsZW1lbnRlZCI6MjEwLCIuL3NoaW0iOjIxMX1dLDIxMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj0icmF6ZHdhdHJ6eSI7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIG4uY29udGFpbnMmJighMD09PW4uY29udGFpbnMoImR3YSIpJiYhMT09PW4uY29udGFpbnMoImZvbyIpKX19LHt9XSwyMTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49U3RyaW5nLnByb3RvdHlwZS5pbmRleE9mO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbi5jYWxsKHRoaXMsdCxhcmd1bWVudHNbMV0pPi0xfX0se31dLDIxMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGE9bi5jYWxsKCIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0fHx0JiYib2JqZWN0Ij09dHlwZW9mIHQmJih0IGluc3RhbmNlb2YgU3RyaW5nfHxuLmNhbGwodCk9PT1hKXx8ITF9fSx7fV0sMjEzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPU9iamVjdC5jcmVhdGUobnVsbCksYT1NYXRoLnJhbmRvbTtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgdDtkb3t0PWEoKS50b1N0cmluZygzNikuc2xpY2UoMil9d2hpbGUoblt0XSk7cmV0dXJuIHR9fSx7fV0sMjE0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuLGE9dCgiZXM1LWV4dC9vYmplY3Qvc2V0LXByb3RvdHlwZS1vZiIpLGk9dCgiZXM1LWV4dC9zdHJpbmcvIy9jb250YWlucyIpLG89dCgiZCIpLHM9dCgiZXM2LXN5bWJvbCIpLGw9dCgiLi8iKSxjPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTtuPWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2lmKCEodGhpcyBpbnN0YW5jZW9mIG4pKXRocm93IG5ldyBUeXBlRXJyb3IoIkNvbnN0cnVjdG9yIHJlcXVpcmVzICduZXcnIik7bC5jYWxsKHRoaXMsdCksZT1lP2kuY2FsbChlLCJrZXkrdmFsdWUiKT8ia2V5K3ZhbHVlIjppLmNhbGwoZSwia2V5Iik/ImtleSI6InZhbHVlIjoidmFsdWUiLGModGhpcywiX19raW5kX18iLG8oIiIsZSkpfSxhJiZhKG4sbCksZGVsZXRlIG4ucHJvdG90eXBlLmNvbnN0cnVjdG9yLG4ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobC5wcm90b3R5cGUse19yZXNvbHZlOm8oZnVuY3Rpb24odCl7cmV0dXJuInZhbHVlIj09PXRoaXMuX19raW5kX18/dGhpcy5fX2xpc3RfX1t0XToia2V5K3ZhbHVlIj09PXRoaXMuX19raW5kX18/W3QsdGhpcy5fX2xpc3RfX1t0XV06dH0pfSksYyhuLnByb3RvdHlwZSxzLnRvU3RyaW5nVGFnLG8oImMiLCJBcnJheSBJdGVyYXRvciIpKX0seyIuLyI6MjE3LGQ6MTUzLCJlczUtZXh0L29iamVjdC9zZXQtcHJvdG90eXBlLW9mIjoyMDMsImVzNS1leHQvc3RyaW5nLyMvY29udGFpbnMiOjIwOSwiZXM2LXN5bWJvbCI6MjIyfV0sMjE1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImVzNS1leHQvZnVuY3Rpb24vaXMtYXJndW1lbnRzIiksYT10KCJlczUtZXh0L29iamVjdC92YWxpZC1jYWxsYWJsZSIpLGk9dCgiZXM1LWV4dC9zdHJpbmcvaXMtc3RyaW5nIiksbz10KCIuL2dldCIpLHM9QXJyYXkuaXNBcnJheSxsPUZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLGM9QXJyYXkucHJvdG90eXBlLnNvbWU7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsdSxoLGYscCxkLGcsdixtPWFyZ3VtZW50c1syXTtpZihzKHQpfHxuKHQpP3I9ImFycmF5IjppKHQpP3I9InN0cmluZyI6dD1vKHQpLGEoZSksaD1mdW5jdGlvbigpe2Y9ITB9LCJhcnJheSIhPT1yKWlmKCJzdHJpbmciIT09cilmb3IodT10Lm5leHQoKTshdS5kb25lOyl7aWYobC5jYWxsKGUsbSx1LnZhbHVlLGgpLGYpcmV0dXJuO3U9dC5uZXh0KCl9ZWxzZSBmb3IoZD10Lmxlbmd0aCxwPTA7cDxkJiYoZz10W3BdLHArMTxkJiYodj1nLmNoYXJDb2RlQXQoMCkpPj01NTI5NiYmdjw9NTYzMTkmJihnKz10WysrcF0pLGwuY2FsbChlLG0sZyxoKSwhZik7KytwKTtlbHNlIGMuY2FsbCh0LGZ1bmN0aW9uKHQpe3JldHVybiBsLmNhbGwoZSxtLHQsaCksZn0pfX0seyIuL2dldCI6MjE2LCJlczUtZXh0L2Z1bmN0aW9uL2lzLWFyZ3VtZW50cyI6MTgwLCJlczUtZXh0L29iamVjdC92YWxpZC1jYWxsYWJsZSI6MjA2LCJlczUtZXh0L3N0cmluZy9pcy1zdHJpbmciOjIxMn1dLDIxNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJlczUtZXh0L2Z1bmN0aW9uL2lzLWFyZ3VtZW50cyIpLGE9dCgiZXM1LWV4dC9zdHJpbmcvaXMtc3RyaW5nIiksaT10KCIuL2FycmF5Iiksbz10KCIuL3N0cmluZyIpLHM9dCgiLi92YWxpZC1pdGVyYWJsZSIpLGw9dCgiZXM2LXN5bWJvbCIpLml0ZXJhdG9yO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygcyh0KVtsXT90W2xdKCk6bih0KT9uZXcgaSh0KTphKHQpP25ldyBvKHQpOm5ldyBpKHQpfX0seyIuL2FycmF5IjoyMTQsIi4vc3RyaW5nIjoyMTksIi4vdmFsaWQtaXRlcmFibGUiOjIyMCwiZXM1LWV4dC9mdW5jdGlvbi9pcy1hcmd1bWVudHMiOjE4MCwiZXM1LWV4dC9zdHJpbmcvaXMtc3RyaW5nIjoyMTIsImVzNi1zeW1ib2wiOjIyMn1dLDIxNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixhPXQoImVzNS1leHQvYXJyYXkvIy9jbGVhciIpLGk9dCgiZXM1LWV4dC9vYmplY3QvYXNzaWduIiksbz10KCJlczUtZXh0L29iamVjdC92YWxpZC1jYWxsYWJsZSIpLHM9dCgiZXM1LWV4dC9vYmplY3QvdmFsaWQtdmFsdWUiKSxsPXQoImQiKSxjPXQoImQvYXV0by1iaW5kIiksdT10KCJlczYtc3ltYm9sIiksaD1PYmplY3QuZGVmaW5lUHJvcGVydHksZj1PYmplY3QuZGVmaW5lUHJvcGVydGllcztlLmV4cG9ydHM9bj1mdW5jdGlvbih0LGUpe2lmKCEodGhpcyBpbnN0YW5jZW9mIG4pKXRocm93IG5ldyBUeXBlRXJyb3IoIkNvbnN0cnVjdG9yIHJlcXVpcmVzICduZXcnIik7Zih0aGlzLHtfX2xpc3RfXzpsKCJ3IixzKHQpKSxfX2NvbnRleHRfXzpsKCJ3IixlKSxfX25leHRJbmRleF9fOmwoInciLDApfSksZSYmKG8oZS5vbiksZS5vbigiX2FkZCIsdGhpcy5fb25BZGQpLGUub24oIl9kZWxldGUiLHRoaXMuX29uRGVsZXRlKSxlLm9uKCJfY2xlYXIiLHRoaXMuX29uQ2xlYXIpKX0sZGVsZXRlIG4ucHJvdG90eXBlLmNvbnN0cnVjdG9yLGYobi5wcm90b3R5cGUsaSh7X25leHQ6bChmdW5jdGlvbigpe3ZhciB0O2lmKHRoaXMuX19saXN0X18pcmV0dXJuIHRoaXMuX19yZWRvX18mJnZvaWQgMCE9PSh0PXRoaXMuX19yZWRvX18uc2hpZnQoKSk/dDp0aGlzLl9fbmV4dEluZGV4X188dGhpcy5fX2xpc3RfXy5sZW5ndGg/dGhpcy5fX25leHRJbmRleF9fKys6dm9pZCB0aGlzLl91bkJpbmQoKX0pLG5leHQ6bChmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jcmVhdGVSZXN1bHQodGhpcy5fbmV4dCgpKX0pLF9jcmVhdGVSZXN1bHQ6bChmdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09dD97ZG9uZTohMCx2YWx1ZTp2b2lkIDB9Ontkb25lOiExLHZhbHVlOnRoaXMuX3Jlc29sdmUodCl9fSksX3Jlc29sdmU6bChmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fX2xpc3RfX1t0XX0pLF91bkJpbmQ6bChmdW5jdGlvbigpe3RoaXMuX19saXN0X189bnVsbCxkZWxldGUgdGhpcy5fX3JlZG9fXyx0aGlzLl9fY29udGV4dF9fJiYodGhpcy5fX2NvbnRleHRfXy5vZmYoIl9hZGQiLHRoaXMuX29uQWRkKSx0aGlzLl9fY29udGV4dF9fLm9mZigiX2RlbGV0ZSIsdGhpcy5fb25EZWxldGUpLHRoaXMuX19jb250ZXh0X18ub2ZmKCJfY2xlYXIiLHRoaXMuX29uQ2xlYXIpLHRoaXMuX19jb250ZXh0X189bnVsbCl9KSx0b1N0cmluZzpsKGZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgIisodGhpc1t1LnRvU3RyaW5nVGFnXXx8Ik9iamVjdCIpKyJdIn0pfSxjKHtfb25BZGQ6bChmdW5jdGlvbih0KXt0Pj10aGlzLl9fbmV4dEluZGV4X198fCgrK3RoaXMuX19uZXh0SW5kZXhfXyx0aGlzLl9fcmVkb19fPyh0aGlzLl9fcmVkb19fLmZvckVhY2goZnVuY3Rpb24oZSxyKXtlPj10JiYodGhpcy5fX3JlZG9fX1tyXT0rK2UpfSx0aGlzKSx0aGlzLl9fcmVkb19fLnB1c2godCkpOmgodGhpcywiX19yZWRvX18iLGwoImMiLFt0XSkpKX0pLF9vbkRlbGV0ZTpsKGZ1bmN0aW9uKHQpe3ZhciBlO3Q+PXRoaXMuX19uZXh0SW5kZXhfX3x8KC0tdGhpcy5fX25leHRJbmRleF9fLHRoaXMuX19yZWRvX18mJigtMSE9PShlPXRoaXMuX19yZWRvX18uaW5kZXhPZih0KSkmJnRoaXMuX19yZWRvX18uc3BsaWNlKGUsMSksdGhpcy5fX3JlZG9fXy5mb3JFYWNoKGZ1bmN0aW9uKGUscil7ZT50JiYodGhpcy5fX3JlZG9fX1tyXT0tLWUpfSx0aGlzKSkpfSksX29uQ2xlYXI6bChmdW5jdGlvbigpe3RoaXMuX19yZWRvX18mJmEuY2FsbCh0aGlzLl9fcmVkb19fKSx0aGlzLl9fbmV4dEluZGV4X189MH0pfSkpKSxoKG4ucHJvdG90eXBlLHUuaXRlcmF0b3IsbChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpfSx7ZDoxNTMsImQvYXV0by1iaW5kIjoxNTIsImVzNS1leHQvYXJyYXkvIy9jbGVhciI6MTc2LCJlczUtZXh0L29iamVjdC9hc3NpZ24iOjE4OSwiZXM1LWV4dC9vYmplY3QvdmFsaWQtY2FsbGFibGUiOjIwNiwiZXM1LWV4dC9vYmplY3QvdmFsaWQtdmFsdWUiOjIwOCwiZXM2LXN5bWJvbCI6MjIyfV0sMjE4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImVzNS1leHQvZnVuY3Rpb24vaXMtYXJndW1lbnRzIiksYT10KCJlczUtZXh0L29iamVjdC9pcy12YWx1ZSIpLGk9dCgiZXM1LWV4dC9zdHJpbmcvaXMtc3RyaW5nIiksbz10KCJlczYtc3ltYm9sIikuaXRlcmF0b3Iscz1BcnJheS5pc0FycmF5O2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4hIWEodCkmJighIXModCl8fCghIWkodCl8fCghIW4odCl8fCJmdW5jdGlvbiI9PXR5cGVvZiB0W29dKSkpfX0seyJlczUtZXh0L2Z1bmN0aW9uL2lzLWFyZ3VtZW50cyI6MTgwLCJlczUtZXh0L29iamVjdC9pcy12YWx1ZSI6MTk3LCJlczUtZXh0L3N0cmluZy9pcy1zdHJpbmciOjIxMiwiZXM2LXN5bWJvbCI6MjIyfV0sMjE5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuLGE9dCgiZXM1LWV4dC9vYmplY3Qvc2V0LXByb3RvdHlwZS1vZiIpLGk9dCgiZCIpLG89dCgiZXM2LXN5bWJvbCIpLHM9dCgiLi8iKSxsPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTtuPWUuZXhwb3J0cz1mdW5jdGlvbih0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBuKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDb25zdHJ1Y3RvciByZXF1aXJlcyAnbmV3JyIpO3Q9U3RyaW5nKHQpLHMuY2FsbCh0aGlzLHQpLGwodGhpcywiX19sZW5ndGhfXyIsaSgiIix0Lmxlbmd0aCkpfSxhJiZhKG4scyksZGVsZXRlIG4ucHJvdG90eXBlLmNvbnN0cnVjdG9yLG4ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUocy5wcm90b3R5cGUse19uZXh0OmkoZnVuY3Rpb24oKXtpZih0aGlzLl9fbGlzdF9fKXJldHVybiB0aGlzLl9fbmV4dEluZGV4X188dGhpcy5fX2xlbmd0aF9fP3RoaXMuX19uZXh0SW5kZXhfXysrOnZvaWQgdGhpcy5fdW5CaW5kKCl9KSxfcmVzb2x2ZTppKGZ1bmN0aW9uKHQpe3ZhciBlLHI9dGhpcy5fX2xpc3RfX1t0XTtyZXR1cm4gdGhpcy5fX25leHRJbmRleF9fPT09dGhpcy5fX2xlbmd0aF9fP3I6KGU9ci5jaGFyQ29kZUF0KDApKT49NTUyOTYmJmU8PTU2MzE5P3IrdGhpcy5fX2xpc3RfX1t0aGlzLl9fbmV4dEluZGV4X18rK106cn0pfSksbChuLnByb3RvdHlwZSxvLnRvU3RyaW5nVGFnLGkoImMiLCJTdHJpbmcgSXRlcmF0b3IiKSl9LHsiLi8iOjIxNyxkOjE1MywiZXM1LWV4dC9vYmplY3Qvc2V0LXByb3RvdHlwZS1vZiI6MjAzLCJlczYtc3ltYm9sIjoyMjJ9XSwyMjA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9pcy1pdGVyYWJsZSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtpZighbih0KSl0aHJvdyBuZXcgVHlwZUVycm9yKHQrIiBpcyBub3QgaXRlcmFibGUiKTtyZXR1cm4gdH19LHsiLi9pcy1pdGVyYWJsZSI6MjE4fV0sMjIxOltmdW5jdGlvbih0LGUscil7KGZ1bmN0aW9uKG4sYSl7IWZ1bmN0aW9uKHQsbil7Im9iamVjdCI9PXR5cGVvZiByJiYidW5kZWZpbmVkIiE9dHlwZW9mIGU/ZS5leHBvcnRzPW4oKTp0LkVTNlByb21pc2U9bigpfSh0aGlzLGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGUodCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHR9dmFyIHI9QXJyYXkuaXNBcnJheT9BcnJheS5pc0FycmF5OmZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IEFycmF5XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9LGk9MCxvPXZvaWQgMCxzPXZvaWQgMCxsPWZ1bmN0aW9uKHQsZSl7Z1tpXT10LGdbaSsxXT1lLDI9PT0oaSs9MikmJihzP3Modik6XygpKX07dmFyIGM9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OnZvaWQgMCx1PWN8fHt9LGg9dS5NdXRhdGlvbk9ic2VydmVyfHx1LldlYktpdE11dGF0aW9uT2JzZXJ2ZXIsZj0idW5kZWZpbmVkIj09dHlwZW9mIHNlbGYmJiJ1bmRlZmluZWQiIT10eXBlb2YgbiYmIltvYmplY3QgcHJvY2Vzc10iPT09e30udG9TdHJpbmcuY2FsbChuKSxwPSJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhDbGFtcGVkQXJyYXkmJiJ1bmRlZmluZWQiIT10eXBlb2YgaW1wb3J0U2NyaXB0cyYmInVuZGVmaW5lZCIhPXR5cGVvZiBNZXNzYWdlQ2hhbm5lbDtmdW5jdGlvbiBkKCl7dmFyIHQ9c2V0VGltZW91dDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdCh2LDEpfX12YXIgZz1uZXcgQXJyYXkoMWUzKTtmdW5jdGlvbiB2KCl7Zm9yKHZhciB0PTA7dDxpO3QrPTIpeygwLGdbdF0pKGdbdCsxXSksZ1t0XT12b2lkIDAsZ1t0KzFdPXZvaWQgMH1pPTB9dmFyIG0seSx4LGIsXz12b2lkIDA7ZnVuY3Rpb24gdyh0LGUpe3ZhciByPWFyZ3VtZW50cyxuPXRoaXMsYT1uZXcgdGhpcy5jb25zdHJ1Y3RvcihNKTt2b2lkIDA9PT1hW1RdJiZVKGEpO3ZhciBpLG89bi5fc3RhdGU7cmV0dXJuIG8/KGk9cltvLTFdLGwoZnVuY3Rpb24oKXtyZXR1cm4gaihvLGEsaSxuLl9yZXN1bHQpfSkpOlIobixhLHQsZSksYX1mdW5jdGlvbiBrKHQpe2lmKHQmJiJvYmplY3QiPT10eXBlb2YgdCYmdC5jb25zdHJ1Y3Rvcj09PXRoaXMpcmV0dXJuIHQ7dmFyIGU9bmV3IHRoaXMoTSk7cmV0dXJuIE8oZSx0KSxlfWY/Xz1mdW5jdGlvbigpe3JldHVybiBuLm5leHRUaWNrKHYpfTpoPyh5PTAseD1uZXcgaCh2KSxiPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIiKSx4Lm9ic2VydmUoYix7Y2hhcmFjdGVyRGF0YTohMH0pLF89ZnVuY3Rpb24oKXtiLmRhdGE9eT0rK3klMn0pOnA/KChtPW5ldyBNZXNzYWdlQ2hhbm5lbCkucG9ydDEub25tZXNzYWdlPXYsXz1mdW5jdGlvbigpe3JldHVybiBtLnBvcnQyLnBvc3RNZXNzYWdlKDApfSk6Xz12b2lkIDA9PT1jJiYiZnVuY3Rpb24iPT10eXBlb2YgdD9mdW5jdGlvbigpe3RyeXt2YXIgZT10KCJ2ZXJ0eCIpO3JldHVybiBvPWUucnVuT25Mb29wfHxlLnJ1bk9uQ29udGV4dCxmdW5jdGlvbigpe28odil9fWNhdGNoKHQpe3JldHVybiBkKCl9fSgpOmQoKTt2YXIgVD1NYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMTYpO2Z1bmN0aW9uIE0oKXt9dmFyIEE9dm9pZCAwLFM9MSxFPTIsTD1uZXcgQjtmdW5jdGlvbiBDKHQpe3RyeXtyZXR1cm4gdC50aGVufWNhdGNoKHQpe3JldHVybiBMLmVycm9yPXQsTH19ZnVuY3Rpb24gUCh0LHIsbil7ci5jb25zdHJ1Y3Rvcj09PXQuY29uc3RydWN0b3ImJm49PT13JiZyLmNvbnN0cnVjdG9yLnJlc29sdmU9PT1rP2Z1bmN0aW9uKHQsZSl7ZS5fc3RhdGU9PT1TP0kodCxlLl9yZXN1bHQpOmUuX3N0YXRlPT09RT9EKHQsZS5fcmVzdWx0KTpSKGUsdm9pZCAwLGZ1bmN0aW9uKGUpe3JldHVybiBPKHQsZSl9LGZ1bmN0aW9uKGUpe3JldHVybiBEKHQsZSl9KX0odCxyKTpuPT09TD9EKHQsTC5lcnJvcik6dm9pZCAwPT09bj9JKHQscik6ZShuKT9mdW5jdGlvbih0LGUscil7bChmdW5jdGlvbih0KXt2YXIgbj0hMSxhPWZ1bmN0aW9uKHQsZSxyLG4pe3RyeXt0LmNhbGwoZSxyLG4pfWNhdGNoKHQpe3JldHVybiB0fX0ocixlLGZ1bmN0aW9uKHIpe258fChuPSEwLGUhPT1yP08odCxyKTpJKHQscikpfSxmdW5jdGlvbihlKXtufHwobj0hMCxEKHQsZSkpfSx0Ll9sYWJlbCk7IW4mJmEmJihuPSEwLEQodCxhKSl9LHQpfSh0LHIsbik6SSh0LHIpfWZ1bmN0aW9uIE8odCxlKXt2YXIgcjt0PT09ZT9EKHQsbmV3IFR5cGVFcnJvcigiWW91IGNhbm5vdCByZXNvbHZlIGEgcHJvbWlzZSB3aXRoIGl0c2VsZiIpKToiZnVuY3Rpb24iPT10eXBlb2Yocj1lKXx8Im9iamVjdCI9PXR5cGVvZiByJiZudWxsIT09cj9QKHQsZSxDKGUpKTpJKHQsZSl9ZnVuY3Rpb24geih0KXt0Ll9vbmVycm9yJiZ0Ll9vbmVycm9yKHQuX3Jlc3VsdCksRih0KX1mdW5jdGlvbiBJKHQsZSl7dC5fc3RhdGU9PT1BJiYodC5fcmVzdWx0PWUsdC5fc3RhdGU9UywwIT09dC5fc3Vic2NyaWJlcnMubGVuZ3RoJiZsKEYsdCkpfWZ1bmN0aW9uIEQodCxlKXt0Ll9zdGF0ZT09PUEmJih0Ll9zdGF0ZT1FLHQuX3Jlc3VsdD1lLGwoeix0KSl9ZnVuY3Rpb24gUih0LGUscixuKXt2YXIgYT10Ll9zdWJzY3JpYmVycyxpPWEubGVuZ3RoO3QuX29uZXJyb3I9bnVsbCxhW2ldPWUsYVtpK1NdPXIsYVtpK0VdPW4sMD09PWkmJnQuX3N0YXRlJiZsKEYsdCl9ZnVuY3Rpb24gRih0KXt2YXIgZT10Ll9zdWJzY3JpYmVycyxyPXQuX3N0YXRlO2lmKDAhPT1lLmxlbmd0aCl7Zm9yKHZhciBuPXZvaWQgMCxhPXZvaWQgMCxpPXQuX3Jlc3VsdCxvPTA7bzxlLmxlbmd0aDtvKz0zKW49ZVtvXSxhPWVbbytyXSxuP2oocixuLGEsaSk6YShpKTt0Ll9zdWJzY3JpYmVycy5sZW5ndGg9MH19ZnVuY3Rpb24gQigpe3RoaXMuZXJyb3I9bnVsbH12YXIgTj1uZXcgQjtmdW5jdGlvbiBqKHQscixuLGEpe3ZhciBpPWUobiksbz12b2lkIDAscz12b2lkIDAsbD12b2lkIDAsYz12b2lkIDA7aWYoaSl7aWYoKG89ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHQoZSl9Y2F0Y2godCl7cmV0dXJuIE4uZXJyb3I9dCxOfX0obixhKSk9PT1OPyhjPSEwLHM9by5lcnJvcixvPW51bGwpOmw9ITAscj09PW8pcmV0dXJuIHZvaWQgRChyLG5ldyBUeXBlRXJyb3IoIkEgcHJvbWlzZXMgY2FsbGJhY2sgY2Fubm90IHJldHVybiB0aGF0IHNhbWUgcHJvbWlzZS4iKSl9ZWxzZSBvPWEsbD0hMDtyLl9zdGF0ZSE9PUF8fChpJiZsP08ocixvKTpjP0QocixzKTp0PT09Uz9JKHIsbyk6dD09PUUmJkQocixvKSl9dmFyIFY9MDtmdW5jdGlvbiBVKHQpe3RbVF09VisrLHQuX3N0YXRlPXZvaWQgMCx0Ll9yZXN1bHQ9dm9pZCAwLHQuX3N1YnNjcmliZXJzPVtdfWZ1bmN0aW9uIHEodCxlKXt0aGlzLl9pbnN0YW5jZUNvbnN0cnVjdG9yPXQsdGhpcy5wcm9taXNlPW5ldyB0KE0pLHRoaXMucHJvbWlzZVtUXXx8VSh0aGlzLnByb21pc2UpLHIoZSk/KHRoaXMuX2lucHV0PWUsdGhpcy5sZW5ndGg9ZS5sZW5ndGgsdGhpcy5fcmVtYWluaW5nPWUubGVuZ3RoLHRoaXMuX3Jlc3VsdD1uZXcgQXJyYXkodGhpcy5sZW5ndGgpLDA9PT10aGlzLmxlbmd0aD9JKHRoaXMucHJvbWlzZSx0aGlzLl9yZXN1bHQpOih0aGlzLmxlbmd0aD10aGlzLmxlbmd0aHx8MCx0aGlzLl9lbnVtZXJhdGUoKSwwPT09dGhpcy5fcmVtYWluaW5nJiZJKHRoaXMucHJvbWlzZSx0aGlzLl9yZXN1bHQpKSk6RCh0aGlzLnByb21pc2UsbmV3IEVycm9yKCJBcnJheSBNZXRob2RzIG11c3QgYmUgcHJvdmlkZWQgYW4gQXJyYXkiKSl9ZnVuY3Rpb24gSCh0KXt0aGlzW1RdPVYrKyx0aGlzLl9yZXN1bHQ9dGhpcy5fc3RhdGU9dm9pZCAwLHRoaXMuX3N1YnNjcmliZXJzPVtdLE0hPT10JiYoImZ1bmN0aW9uIiE9dHlwZW9mIHQmJmZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiWW91IG11c3QgcGFzcyBhIHJlc29sdmVyIGZ1bmN0aW9uIGFzIHRoZSBmaXJzdCBhcmd1bWVudCB0byB0aGUgcHJvbWlzZSBjb25zdHJ1Y3RvciIpfSgpLHRoaXMgaW5zdGFuY2VvZiBIP2Z1bmN0aW9uKHQsZSl7dHJ5e2UoZnVuY3Rpb24oZSl7Tyh0LGUpfSxmdW5jdGlvbihlKXtEKHQsZSl9KX1jYXRjaChlKXtEKHQsZSl9fSh0aGlzLHQpOmZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiRmFpbGVkIHRvIGNvbnN0cnVjdCAnUHJvbWlzZSc6IFBsZWFzZSB1c2UgdGhlICduZXcnIG9wZXJhdG9yLCB0aGlzIG9iamVjdCBjb25zdHJ1Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24uIil9KCkpfWZ1bmN0aW9uIEcoKXt2YXIgdD12b2lkIDA7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBhKXQ9YTtlbHNlIGlmKCJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZil0PXNlbGY7ZWxzZSB0cnl7dD1GdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpfWNhdGNoKHQpe3Rocm93IG5ldyBFcnJvcigicG9seWZpbGwgZmFpbGVkIGJlY2F1c2UgZ2xvYmFsIG9iamVjdCBpcyB1bmF2YWlsYWJsZSBpbiB0aGlzIGVudmlyb25tZW50Iil9dmFyIGU9dC5Qcm9taXNlO2lmKGUpe3ZhciByPW51bGw7dHJ5e3I9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUucmVzb2x2ZSgpKX1jYXRjaCh0KXt9aWYoIltvYmplY3QgUHJvbWlzZV0iPT09ciYmIWUuY2FzdClyZXR1cm59dC5Qcm9taXNlPUh9cmV0dXJuIHEucHJvdG90eXBlLl9lbnVtZXJhdGU9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5sZW5ndGgsZT10aGlzLl9pbnB1dCxyPTA7dGhpcy5fc3RhdGU9PT1BJiZyPHQ7cisrKXRoaXMuX2VhY2hFbnRyeShlW3JdLHIpfSxxLnByb3RvdHlwZS5fZWFjaEVudHJ5PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5faW5zdGFuY2VDb25zdHJ1Y3RvcixuPXIucmVzb2x2ZTtpZihuPT09ayl7dmFyIGE9Qyh0KTtpZihhPT09dyYmdC5fc3RhdGUhPT1BKXRoaXMuX3NldHRsZWRBdCh0Ll9zdGF0ZSxlLHQuX3Jlc3VsdCk7ZWxzZSBpZigiZnVuY3Rpb24iIT10eXBlb2YgYSl0aGlzLl9yZW1haW5pbmctLSx0aGlzLl9yZXN1bHRbZV09dDtlbHNlIGlmKHI9PT1IKXt2YXIgaT1uZXcgcihNKTtQKGksdCxhKSx0aGlzLl93aWxsU2V0dGxlQXQoaSxlKX1lbHNlIHRoaXMuX3dpbGxTZXR0bGVBdChuZXcgcihmdW5jdGlvbihlKXtyZXR1cm4gZSh0KX0pLGUpfWVsc2UgdGhpcy5fd2lsbFNldHRsZUF0KG4odCksZSl9LHEucHJvdG90eXBlLl9zZXR0bGVkQXQ9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMucHJvbWlzZTtuLl9zdGF0ZT09PUEmJih0aGlzLl9yZW1haW5pbmctLSx0PT09RT9EKG4scik6dGhpcy5fcmVzdWx0W2VdPXIpLDA9PT10aGlzLl9yZW1haW5pbmcmJkkobix0aGlzLl9yZXN1bHQpfSxxLnByb3RvdHlwZS5fd2lsbFNldHRsZUF0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcztSKHQsdm9pZCAwLGZ1bmN0aW9uKHQpe3JldHVybiByLl9zZXR0bGVkQXQoUyxlLHQpfSxmdW5jdGlvbih0KXtyZXR1cm4gci5fc2V0dGxlZEF0KEUsZSx0KX0pfSxILmFsbD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHEodGhpcyx0KS5wcm9taXNlfSxILnJhY2U9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gcih0KT9uZXcgZShmdW5jdGlvbihyLG4pe2Zvcih2YXIgYT10Lmxlbmd0aCxpPTA7aTxhO2krKyllLnJlc29sdmUodFtpXSkudGhlbihyLG4pfSk6bmV3IGUoZnVuY3Rpb24odCxlKXtyZXR1cm4gZShuZXcgVHlwZUVycm9yKCJZb3UgbXVzdCBwYXNzIGFuIGFycmF5IHRvIHJhY2UuIikpfSl9LEgucmVzb2x2ZT1rLEgucmVqZWN0PWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyB0aGlzKE0pO3JldHVybiBEKGUsdCksZX0sSC5fc2V0U2NoZWR1bGVyPWZ1bmN0aW9uKHQpe3M9dH0sSC5fc2V0QXNhcD1mdW5jdGlvbih0KXtsPXR9LEguX2FzYXA9bCxILnByb3RvdHlwZT17Y29uc3RydWN0b3I6SCx0aGVuOncsY2F0Y2g6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudGhlbihudWxsLHQpfX0sRygpLEgucG9seWZpbGw9RyxILlByb21pc2U9SCxIfSl9KS5jYWxsKHRoaXMsdCgiX3Byb2Nlc3MiKSwidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0se19wcm9jZXNzOjQ4NH1dLDIyMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi9pcy1pbXBsZW1lbnRlZCIpKCk/U3ltYm9sOnQoIi4vcG9seWZpbGwiKX0seyIuL2lzLWltcGxlbWVudGVkIjoyMjMsIi4vcG9seWZpbGwiOjIyNX1dLDIyMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj17b2JqZWN0OiEwLHN5bWJvbDohMH07ZS5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIHQ7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFN5bWJvbClyZXR1cm4hMTt0PVN5bWJvbCgidGVzdCBzeW1ib2wiKTt0cnl7U3RyaW5nKHQpfWNhdGNoKHQpe3JldHVybiExfXJldHVybiEhblt0eXBlb2YgU3ltYm9sLml0ZXJhdG9yXSYmKCEhblt0eXBlb2YgU3ltYm9sLnRvUHJpbWl0aXZlXSYmISFuW3R5cGVvZiBTeW1ib2wudG9TdHJpbmdUYWddKX19LHt9XSwyMjQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiEhdCYmKCJzeW1ib2wiPT10eXBlb2YgdHx8ISF0LmNvbnN0cnVjdG9yJiYoIlN5bWJvbCI9PT10LmNvbnN0cnVjdG9yLm5hbWUmJiJTeW1ib2wiPT09dFt0LmNvbnN0cnVjdG9yLnRvU3RyaW5nVGFnXSkpfX0se31dLDIyNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixhLGksbyxzPXQoImQiKSxsPXQoIi4vdmFsaWRhdGUtc3ltYm9sIiksYz1PYmplY3QuY3JlYXRlLHU9T2JqZWN0LmRlZmluZVByb3BlcnRpZXMsaD1PYmplY3QuZGVmaW5lUHJvcGVydHksZj1PYmplY3QucHJvdG90eXBlLHA9YyhudWxsKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sKXtuPVN5bWJvbDt0cnl7U3RyaW5nKG4oKSksbz0hMH1jYXRjaCh0KXt9fXZhciBkLGc9KGQ9YyhudWxsKSxmdW5jdGlvbih0KXtmb3IodmFyIGUscixuPTA7ZFt0KyhufHwiIildOykrK247cmV0dXJuIGRbdCs9bnx8IiJdPSEwLGgoZixlPSJAQCIrdCxzLmdzKG51bGwsZnVuY3Rpb24odCl7cnx8KHI9ITAsaCh0aGlzLGUscyh0KSkscj0hMSl9KSksZX0pO2k9ZnVuY3Rpb24odCl7aWYodGhpcyBpbnN0YW5jZW9mIGkpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yIik7cmV0dXJuIGEodCl9LGUuZXhwb3J0cz1hPWZ1bmN0aW9uIHQoZSl7dmFyIHI7aWYodGhpcyBpbnN0YW5jZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yIik7cmV0dXJuIG8/bihlKToocj1jKGkucHJvdG90eXBlKSxlPXZvaWQgMD09PWU/IiI6U3RyaW5nKGUpLHUocix7X19kZXNjcmlwdGlvbl9fOnMoIiIsZSksX19uYW1lX186cygiIixnKGUpKX0pKX0sdShhLHtmb3I6cyhmdW5jdGlvbih0KXtyZXR1cm4gcFt0XT9wW3RdOnBbdF09YShTdHJpbmcodCkpfSksa2V5Rm9yOnMoZnVuY3Rpb24odCl7dmFyIGU7Zm9yKGUgaW4gbCh0KSxwKWlmKHBbZV09PT10KXJldHVybiBlfSksaGFzSW5zdGFuY2U6cygiIixuJiZuLmhhc0luc3RhbmNlfHxhKCJoYXNJbnN0YW5jZSIpKSxpc0NvbmNhdFNwcmVhZGFibGU6cygiIixuJiZuLmlzQ29uY2F0U3ByZWFkYWJsZXx8YSgiaXNDb25jYXRTcHJlYWRhYmxlIikpLGl0ZXJhdG9yOnMoIiIsbiYmbi5pdGVyYXRvcnx8YSgiaXRlcmF0b3IiKSksbWF0Y2g6cygiIixuJiZuLm1hdGNofHxhKCJtYXRjaCIpKSxyZXBsYWNlOnMoIiIsbiYmbi5yZXBsYWNlfHxhKCJyZXBsYWNlIikpLHNlYXJjaDpzKCIiLG4mJm4uc2VhcmNofHxhKCJzZWFyY2giKSksc3BlY2llczpzKCIiLG4mJm4uc3BlY2llc3x8YSgic3BlY2llcyIpKSxzcGxpdDpzKCIiLG4mJm4uc3BsaXR8fGEoInNwbGl0IikpLHRvUHJpbWl0aXZlOnMoIiIsbiYmbi50b1ByaW1pdGl2ZXx8YSgidG9QcmltaXRpdmUiKSksdG9TdHJpbmdUYWc6cygiIixuJiZuLnRvU3RyaW5nVGFnfHxhKCJ0b1N0cmluZ1RhZyIpKSx1bnNjb3BhYmxlczpzKCIiLG4mJm4udW5zY29wYWJsZXN8fGEoInVuc2NvcGFibGVzIikpfSksdShpLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6cyhhKSx0b1N0cmluZzpzKCIiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX19uYW1lX199KX0pLHUoYS5wcm90b3R5cGUse3RvU3RyaW5nOnMoZnVuY3Rpb24oKXtyZXR1cm4iU3ltYm9sICgiK2wodGhpcykuX19kZXNjcmlwdGlvbl9fKyIpIn0pLHZhbHVlT2Y6cyhmdW5jdGlvbigpe3JldHVybiBsKHRoaXMpfSl9KSxoKGEucHJvdG90eXBlLGEudG9QcmltaXRpdmUscygiIixmdW5jdGlvbigpe3ZhciB0PWwodGhpcyk7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0P3Q6dC50b1N0cmluZygpfSkpLGgoYS5wcm90b3R5cGUsYS50b1N0cmluZ1RhZyxzKCJjIiwiU3ltYm9sIikpLGgoaS5wcm90b3R5cGUsYS50b1N0cmluZ1RhZyxzKCJjIixhLnByb3RvdHlwZVthLnRvU3RyaW5nVGFnXSkpLGgoaS5wcm90b3R5cGUsYS50b1ByaW1pdGl2ZSxzKCJjIixhLnByb3RvdHlwZVthLnRvUHJpbWl0aXZlXSkpfSx7Ii4vdmFsaWRhdGUtc3ltYm9sIjoyMjYsZDoxNTN9XSwyMjY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9pcy1zeW1ib2wiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoIW4odCkpdGhyb3cgbmV3IFR5cGVFcnJvcih0KyIgaXMgbm90IGEgc3ltYm9sIik7cmV0dXJuIHR9fSx7Ii4vaXMtc3ltYm9sIjoyMjR9XSwyMjc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lfHwwLGE9cnx8MTtyZXR1cm5bW3RbMTJdK3RbMF0sdFsxM10rdFsxXSx0WzE0XSt0WzJdLHRbMTVdK3RbM11dLFt0WzEyXS10WzBdLHRbMTNdLXRbMV0sdFsxNF0tdFsyXSx0WzE1XS10WzNdXSxbdFsxMl0rdFs0XSx0WzEzXSt0WzVdLHRbMTRdK3RbNl0sdFsxNV0rdFs3XV0sW3RbMTJdLXRbNF0sdFsxM10tdFs1XSx0WzE0XS10WzZdLHRbMTVdLXRbN11dLFtuKnRbMTJdK3RbOF0sbip0WzEzXSt0WzldLG4qdFsxNF0rdFsxMF0sbip0WzE1XSt0WzExXV0sW2EqdFsxMl0tdFs4XSxhKnRbMTNdLXRbOV0sYSp0WzE0XS10WzEwXSxhKnRbMTVdLXRbMTFdXV19fSx7fV0sMjI4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImlzLXN0cmluZy1ibGFuayIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10eXBlb2YgdDtpZigic3RyaW5nIj09PWUpe3ZhciByPXQ7aWYoMD09PSh0PSt0KSYmbihyKSlyZXR1cm4hMX1lbHNlIGlmKCJudW1iZXIiIT09ZSlyZXR1cm4hMTtyZXR1cm4gdC10PDF9fSx7ImlzLXN0cmluZy1ibGFuayI6NDI1fV0sMjI5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7c3dpdGNoKGFyZ3VtZW50cy5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gbmV3IG8oWzBdLFswXSwwKTtjYXNlIDE6aWYoIm51bWJlciI9PXR5cGVvZiB0KXt2YXIgbj1sKHQpO3JldHVybiBuZXcgbyhuLG4sMCl9cmV0dXJuIG5ldyBvKHQsbCh0Lmxlbmd0aCksMCk7Y2FzZSAyOmlmKCJudW1iZXIiPT10eXBlb2YgZSl7dmFyIG49bCh0Lmxlbmd0aCk7cmV0dXJuIG5ldyBvKHQsbiwrZSl9cj0wO2Nhc2UgMzppZih0Lmxlbmd0aCE9PWUubGVuZ3RoKXRocm93IG5ldyBFcnJvcigic3RhdGUgYW5kIHZlbG9jaXR5IGxlbmd0aHMgbXVzdCBtYXRjaCIpO3JldHVybiBuZXcgbyh0LGUscil9fTt2YXIgbj10KCJjdWJpYy1oZXJtaXRlIiksYT10KCJiaW5hcnktc2VhcmNoLWJvdW5kcyIpO2Z1bmN0aW9uIGkodCxlLHIpe3JldHVybiBNYXRoLm1pbihlLE1hdGgubWF4KHQscikpfWZ1bmN0aW9uIG8odCxlLHIpe3RoaXMuZGltZW5zaW9uPXQubGVuZ3RoLHRoaXMuYm91bmRzPVtuZXcgQXJyYXkodGhpcy5kaW1lbnNpb24pLG5ldyBBcnJheSh0aGlzLmRpbWVuc2lvbildO2Zvcih2YXIgbj0wO248dGhpcy5kaW1lbnNpb247KytuKXRoaXMuYm91bmRzWzBdW25dPS0xLzAsdGhpcy5ib3VuZHNbMV1bbl09MS8wO3RoaXMuX3N0YXRlPXQuc2xpY2UoKS5yZXZlcnNlKCksdGhpcy5fdmVsb2NpdHk9ZS5zbGljZSgpLnJldmVyc2UoKSx0aGlzLl90aW1lPVtyXSx0aGlzLl9zY3JhdGNoPVt0LnNsaWNlKCksdC5zbGljZSgpLHQuc2xpY2UoKSx0LnNsaWNlKCksdC5zbGljZSgpXX12YXIgcz1vLnByb3RvdHlwZTtmdW5jdGlvbiBsKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodCkscj0wO3I8dDsrK3IpZVtyXT0wO3JldHVybiBlfXMuZmx1c2g9ZnVuY3Rpb24odCl7dmFyIGU9YS5ndCh0aGlzLl90aW1lLHQpLTE7ZTw9MHx8KHRoaXMuX3RpbWUuc3BsaWNlKDAsZSksdGhpcy5fc3RhdGUuc3BsaWNlKDAsZSp0aGlzLmRpbWVuc2lvbiksdGhpcy5fdmVsb2NpdHkuc3BsaWNlKDAsZSp0aGlzLmRpbWVuc2lvbikpfSxzLmN1cnZlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3RpbWUscj1lLmxlbmd0aCxvPWEubGUoZSx0KSxzPXRoaXMuX3NjcmF0Y2hbMF0sbD10aGlzLl9zdGF0ZSxjPXRoaXMuX3ZlbG9jaXR5LHU9dGhpcy5kaW1lbnNpb24saD10aGlzLmJvdW5kcztpZihvPDApZm9yKHZhciBmPXUtMSxwPTA7cDx1OysrcCwtLWYpc1twXT1sW2ZdO2Vsc2UgaWYobz49ci0xKXtmPWwubGVuZ3RoLTE7dmFyIGQ9dC1lW3ItMV07Zm9yKHA9MDtwPHU7KytwLC0tZilzW3BdPWxbZl0rZCpjW2ZdfWVsc2V7Zj11KihvKzEpLTE7dmFyIGc9ZVtvXSx2PWVbbysxXS1nfHwxLG09dGhpcy5fc2NyYXRjaFsxXSx5PXRoaXMuX3NjcmF0Y2hbMl0seD10aGlzLl9zY3JhdGNoWzNdLGI9dGhpcy5fc2NyYXRjaFs0XSxfPSEwO2ZvcihwPTA7cDx1OysrcCwtLWYpbVtwXT1sW2ZdLHhbcF09Y1tmXSp2LHlbcF09bFtmK3VdLGJbcF09Y1tmK3VdKnYsXz1fJiZtW3BdPT09eVtwXSYmeFtwXT09PWJbcF0mJjA9PT14W3BdO2lmKF8pZm9yKHA9MDtwPHU7KytwKXNbcF09bVtwXTtlbHNlIG4obSx4LHksYiwodC1nKS92LHMpfXZhciB3PWhbMF0saz1oWzFdO2ZvcihwPTA7cDx1OysrcClzW3BdPWkod1twXSxrW3BdLHNbcF0pO3JldHVybiBzfSxzLmRjdXJ2ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl90aW1lLHI9ZS5sZW5ndGgsaT1hLmxlKGUsdCksbz10aGlzLl9zY3JhdGNoWzBdLHM9dGhpcy5fc3RhdGUsbD10aGlzLl92ZWxvY2l0eSxjPXRoaXMuZGltZW5zaW9uO2lmKGk+PXItMSlmb3IodmFyIHU9cy5sZW5ndGgtMSxoPShlW3ItMV0sMCk7aDxjOysraCwtLXUpb1toXT1sW3VdO2Vsc2V7dT1jKihpKzEpLTE7dmFyIGY9ZVtpXSxwPWVbaSsxXS1mfHwxLGQ9dGhpcy5fc2NyYXRjaFsxXSxnPXRoaXMuX3NjcmF0Y2hbMl0sdj10aGlzLl9zY3JhdGNoWzNdLG09dGhpcy5fc2NyYXRjaFs0XSx5PSEwO2ZvcihoPTA7aDxjOysraCwtLXUpZFtoXT1zW3VdLHZbaF09bFt1XSpwLGdbaF09c1t1K2NdLG1baF09bFt1K2NdKnAseT15JiZkW2hdPT09Z1toXSYmdltoXT09PW1baF0mJjA9PT12W2hdO2lmKHkpZm9yKGg9MDtoPGM7KytoKW9baF09MDtlbHNle24uZGVyaXZhdGl2ZShkLHYsZyxtLCh0LWYpL3Asbyk7Zm9yKGg9MDtoPGM7KytoKW9baF0vPXB9fXJldHVybiBvfSxzLmxhc3RUPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fdGltZTtyZXR1cm4gdFt0Lmxlbmd0aC0xXX0scy5zdGFibGU9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fdmVsb2NpdHksZT10Lmxlbmd0aCxyPXRoaXMuZGltZW5zaW9uLTE7cj49MDstLXIpaWYodFstLWVdKXJldHVybiExO3JldHVybiEwfSxzLmp1bXA9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5sYXN0VCgpLHI9dGhpcy5kaW1lbnNpb247aWYoISh0PGV8fGFyZ3VtZW50cy5sZW5ndGghPT1yKzEpKXt2YXIgbj10aGlzLl9zdGF0ZSxhPXRoaXMuX3ZlbG9jaXR5LG89bi5sZW5ndGgtdGhpcy5kaW1lbnNpb24scz10aGlzLmJvdW5kcyxsPXNbMF0sYz1zWzFdO3RoaXMuX3RpbWUucHVzaChlLHQpO2Zvcih2YXIgdT0wO3U8MjsrK3UpZm9yKHZhciBoPTA7aDxyOysraCluLnB1c2gobltvKytdKSxhLnB1c2goMCk7dGhpcy5fdGltZS5wdXNoKHQpO2ZvcihoPXI7aD4wOy0taCluLnB1c2goaShsW2gtMV0sY1toLTFdLGFyZ3VtZW50c1toXSkpLGEucHVzaCgwKX19LHMucHVzaD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmxhc3RUKCkscj10aGlzLmRpbWVuc2lvbjtpZighKHQ8ZXx8YXJndW1lbnRzLmxlbmd0aCE9PXIrMSkpe3ZhciBuPXRoaXMuX3N0YXRlLGE9dGhpcy5fdmVsb2NpdHksbz1uLmxlbmd0aC10aGlzLmRpbWVuc2lvbixzPXQtZSxsPXRoaXMuYm91bmRzLGM9bFswXSx1PWxbMV0saD1zPjFlLTY/MS9zOjA7dGhpcy5fdGltZS5wdXNoKHQpO2Zvcih2YXIgZj1yO2Y+MDstLWYpe3ZhciBwPWkoY1tmLTFdLHVbZi0xXSxhcmd1bWVudHNbZl0pO24ucHVzaChwKSxhLnB1c2goKHAtbltvKytdKSpoKX19fSxzLnNldD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmRpbWVuc2lvbjtpZighKHQ8dGhpcy5sYXN0VCgpfHxhcmd1bWVudHMubGVuZ3RoIT09ZSsxKSl7dmFyIHI9dGhpcy5fc3RhdGUsbj10aGlzLl92ZWxvY2l0eSxhPXRoaXMuYm91bmRzLG89YVswXSxzPWFbMV07dGhpcy5fdGltZS5wdXNoKHQpO2Zvcih2YXIgbD1lO2w+MDstLWwpci5wdXNoKGkob1tsLTFdLHNbbC0xXSxhcmd1bWVudHNbbF0pKSxuLnB1c2goMCl9fSxzLm1vdmU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5sYXN0VCgpLHI9dGhpcy5kaW1lbnNpb247aWYoISh0PD1lfHxhcmd1bWVudHMubGVuZ3RoIT09cisxKSl7dmFyIG49dGhpcy5fc3RhdGUsYT10aGlzLl92ZWxvY2l0eSxvPW4ubGVuZ3RoLXRoaXMuZGltZW5zaW9uLHM9dGhpcy5ib3VuZHMsbD1zWzBdLGM9c1sxXSx1PXQtZSxoPXU+MWUtNj8xL3U6MDt0aGlzLl90aW1lLnB1c2godCk7Zm9yKHZhciBmPXI7Zj4wOy0tZil7dmFyIHA9YXJndW1lbnRzW2ZdO24ucHVzaChpKGxbZi0xXSxjW2YtMV0sbltvKytdK3ApKSxhLnB1c2gocCpoKX19fSxzLmlkbGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5sYXN0VCgpO2lmKCEodDxlKSl7dmFyIHI9dGhpcy5kaW1lbnNpb24sbj10aGlzLl9zdGF0ZSxhPXRoaXMuX3ZlbG9jaXR5LG89bi5sZW5ndGgtcixzPXRoaXMuYm91bmRzLGw9c1swXSxjPXNbMV0sdT10LWU7dGhpcy5fdGltZS5wdXNoKHQpO2Zvcih2YXIgaD1yLTE7aD49MDstLWgpbi5wdXNoKGkobFtoXSxjW2hdLG5bb10rdSphW29dKSksYS5wdXNoKDApLG8rPTF9fX0seyJiaW5hcnktc2VhcmNoLWJvdW5kcyI6OTMsImN1YmljLWhlcm1pdGUiOjE0N31dLDIzMDpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoImR0eXBlIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtpZighdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJtdXN0IHNwZWNpZnkgZGF0YSBhcyBmaXJzdCBwYXJhbWV0ZXIiKTtpZihyPTB8KyhyfHwwKSxBcnJheS5pc0FycmF5KHQpJiZ0WzBdJiYibnVtYmVyIj09dHlwZW9mIHRbMF1bMF0pe3ZhciBhLGksbyxzLGw9dFswXS5sZW5ndGgsYz10Lmxlbmd0aCpsO2UmJiJzdHJpbmciIT10eXBlb2YgZXx8KGU9bmV3KG4oZXx8ImZsb2F0MzIiKSkoYytyKSk7dmFyIHU9ZS5sZW5ndGgtcjtpZihjIT09dSl0aHJvdyBuZXcgRXJyb3IoInNvdXJjZSBsZW5ndGggIitjKyIgKCIrbCsieCIrdC5sZW5ndGgrIikgZG9lcyBub3QgbWF0Y2ggZGVzdGluYXRpb24gbGVuZ3RoICIrdSk7Zm9yKGE9MCxvPXI7YTx0Lmxlbmd0aDthKyspZm9yKGk9MDtpPGw7aSsrKWVbbysrXT1udWxsPT09dFthXVtpXT9OYU46dFthXVtpXX1lbHNlIGlmKGUmJiJzdHJpbmciIT10eXBlb2YgZSllLnNldCh0LHIpO2Vsc2V7dmFyIGg9bihlfHwiZmxvYXQzMiIpO2lmKEFycmF5LmlzQXJyYXkodCl8fCJhcnJheSI9PT1lKWZvcihlPW5ldyBoKHQubGVuZ3RoK3IpLGE9MCxvPXIscz1lLmxlbmd0aDtvPHM7bysrLGErKyllW29dPW51bGw9PT10W2FdP05hTjp0W2FdO2Vsc2UgMD09PXI/ZT1uZXcgaCh0KTooZT1uZXcgaCh0Lmxlbmd0aCtyKSkuc2V0KHQscil9cmV0dXJuIGV9fSx7ZHR5cGU6MTcxfV0sMjMxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImNzcy1mb250L3N0cmluZ2lmeSIpLGE9WzMyLDEyNl07ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPSh0PXR8fHt9KS5zaGFwZT90LnNoYXBlOnQuY2FudmFzP1t0LmNhbnZhcy53aWR0aCx0LmNhbnZhcy5oZWlnaHRdOls1MTIsNTEyXSxyPXQuY2FudmFzfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxpPXQuZm9udCxvPSJudW1iZXIiPT10eXBlb2YgdC5zdGVwP1t0LnN0ZXAsdC5zdGVwXTp0LnN0ZXB8fFszMiwzMl0scz10LmNoYXJzfHxhO2kmJiJzdHJpbmciIT10eXBlb2YgaSYmKGk9bihpKSk7aWYoQXJyYXkuaXNBcnJheShzKSl7aWYoMj09PXMubGVuZ3RoJiYibnVtYmVyIj09dHlwZW9mIHNbMF0mJiJudW1iZXIiPT10eXBlb2Ygc1sxXSl7Zm9yKHZhciBsPVtdLGM9c1swXSx1PTA7Yzw9c1sxXTtjKyspbFt1KytdPVN0cmluZy5mcm9tQ2hhckNvZGUoYyk7cz1sfX1lbHNlIHM9U3RyaW5nKHMpLnNwbGl0KCIiKTtlPWUuc2xpY2UoKSxyLndpZHRoPWVbMF0sci5oZWlnaHQ9ZVsxXTt2YXIgaD1yLmdldENvbnRleHQoIjJkIik7aC5maWxsU3R5bGU9IiMwMDAiLGguZmlsbFJlY3QoMCwwLHIud2lkdGgsci5oZWlnaHQpLGguZm9udD1pLGgudGV4dEFsaWduPSJjZW50ZXIiLGgudGV4dEJhc2VsaW5lPSJtaWRkbGUiLGguZmlsbFN0eWxlPSIjZmZmIjtmb3IodmFyIGY9b1swXS8yLHA9b1sxXS8yLGM9MDtjPHMubGVuZ3RoO2MrKyloLmZpbGxUZXh0KHNbY10sZixwKSwoZis9b1swXSk+ZVswXS1vWzBdLzImJihmPW9bMF0vMixwKz1vWzFdKTtyZXR1cm4gcn19LHsiY3NzLWZvbnQvc3RyaW5naWZ5IjoxNDR9XSwyMzI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe2V8fChlPXt9KSwoInN0cmluZyI9PXR5cGVvZiB0fHxBcnJheS5pc0FycmF5KHQpKSYmKGUuZmFtaWx5PXQpO3ZhciByPUFycmF5LmlzQXJyYXkoZS5mYW1pbHkpP2UuZmFtaWx5LmpvaW4oIiwgIik6ZS5mYW1pbHk7aWYoIXIpdGhyb3cgRXJyb3IoImBmYW1pbHlgIG11c3QgYmUgZGVmaW5lZCIpO3ZhciBzPWUuc2l6ZXx8ZS5mb250U2l6ZXx8ZS5lbXx8NDgsbD1lLndlaWdodHx8ZS5mb250V2VpZ2h0fHwiIixjPSh0PVtlLnN0eWxlfHxlLmZvbnRTdHlsZXx8IiIsbCxzXS5qb2luKCIgIikrInB4ICIrcixlLm9yaWdpbnx8InRvcCIpO2lmKG4uY2FjaGVbcl0mJnM8PW4uY2FjaGVbcl0uZW0pcmV0dXJuIGEobi5jYWNoZVtyXSxjKTt2YXIgdT1lLmNhbnZhc3x8bi5jYW52YXMsaD11LmdldENvbnRleHQoIjJkIiksZj17dXBwZXI6dm9pZCAwIT09ZS51cHBlcj9lLnVwcGVyOiJIIixsb3dlcjp2b2lkIDAhPT1lLmxvd2VyP2UubG93ZXI6IngiLGRlc2NlbnQ6dm9pZCAwIT09ZS5kZXNjZW50P2UuZGVzY2VudDoicCIsYXNjZW50OnZvaWQgMCE9PWUuYXNjZW50P2UuYXNjZW50OiJoIix0aXR0bGU6dm9pZCAwIT09ZS50aXR0bGU/ZS50aXR0bGU6ImkiLG92ZXJzaG9vdDp2b2lkIDAhPT1lLm92ZXJzaG9vdD9lLm92ZXJzaG9vdDoiTyJ9LHA9TWF0aC5jZWlsKDEuNSpzKTt1LmhlaWdodD1wLHUud2lkdGg9LjUqcCxoLmZvbnQ9dDt2YXIgZD17dG9wOjB9O2guY2xlYXJSZWN0KDAsMCxwLHApLGgudGV4dEJhc2VsaW5lPSJ0b3AiLGguZmlsbFN0eWxlPSJibGFjayIsaC5maWxsVGV4dCgiSCIsMCwwKTt2YXIgZz1pKGguZ2V0SW1hZ2VEYXRhKDAsMCxwLHApKTtoLmNsZWFyUmVjdCgwLDAscCxwKSxoLnRleHRCYXNlbGluZT0iYm90dG9tIixoLmZpbGxUZXh0KCJIIiwwLHApO3ZhciB2PWkoaC5nZXRJbWFnZURhdGEoMCwwLHAscCkpO2QubGluZUhlaWdodD1kLmJvdHRvbT1wLXYrZyxoLmNsZWFyUmVjdCgwLDAscCxwKSxoLnRleHRCYXNlbGluZT0iYWxwaGFiZXRpYyIsaC5maWxsVGV4dCgiSCIsMCxwKTt2YXIgbT1wLWkoaC5nZXRJbWFnZURhdGEoMCwwLHAscCkpLTErZztkLmJhc2VsaW5lPWQuYWxwaGFiZXRpYz1tLGguY2xlYXJSZWN0KDAsMCxwLHApLGgudGV4dEJhc2VsaW5lPSJtaWRkbGUiLGguZmlsbFRleHQoIkgiLDAsLjUqcCk7dmFyIHk9aShoLmdldEltYWdlRGF0YSgwLDAscCxwKSk7ZC5tZWRpYW49ZC5taWRkbGU9cC15LTErZy0uNSpwLGguY2xlYXJSZWN0KDAsMCxwLHApLGgudGV4dEJhc2VsaW5lPSJoYW5naW5nIixoLmZpbGxUZXh0KCJIIiwwLC41KnApO3ZhciB4PWkoaC5nZXRJbWFnZURhdGEoMCwwLHAscCkpO2QuaGFuZ2luZz1wLXgtMStnLS41KnAsaC5jbGVhclJlY3QoMCwwLHAscCksaC50ZXh0QmFzZWxpbmU9ImlkZW9ncmFwaGljIixoLmZpbGxUZXh0KCJIIiwwLHApO3ZhciBiPWkoaC5nZXRJbWFnZURhdGEoMCwwLHAscCkpO2lmKGQuaWRlb2dyYXBoaWM9cC1iLTErZyxmLnVwcGVyJiYoaC5jbGVhclJlY3QoMCwwLHAscCksaC50ZXh0QmFzZWxpbmU9InRvcCIsaC5maWxsVGV4dChmLnVwcGVyLDAsMCksZC51cHBlcj1pKGguZ2V0SW1hZ2VEYXRhKDAsMCxwLHApKSxkLmNhcEhlaWdodD1kLmJhc2VsaW5lLWQudXBwZXIpLGYubG93ZXImJihoLmNsZWFyUmVjdCgwLDAscCxwKSxoLnRleHRCYXNlbGluZT0idG9wIixoLmZpbGxUZXh0KGYubG93ZXIsMCwwKSxkLmxvd2VyPWkoaC5nZXRJbWFnZURhdGEoMCwwLHAscCkpLGQueEhlaWdodD1kLmJhc2VsaW5lLWQubG93ZXIpLGYudGl0dGxlJiYoaC5jbGVhclJlY3QoMCwwLHAscCksaC50ZXh0QmFzZWxpbmU9InRvcCIsaC5maWxsVGV4dChmLnRpdHRsZSwwLDApLGQudGl0dGxlPWkoaC5nZXRJbWFnZURhdGEoMCwwLHAscCkpKSxmLmFzY2VudCYmKGguY2xlYXJSZWN0KDAsMCxwLHApLGgudGV4dEJhc2VsaW5lPSJ0b3AiLGguZmlsbFRleHQoZi5hc2NlbnQsMCwwKSxkLmFzY2VudD1pKGguZ2V0SW1hZ2VEYXRhKDAsMCxwLHApKSksZi5kZXNjZW50JiYoaC5jbGVhclJlY3QoMCwwLHAscCksaC50ZXh0QmFzZWxpbmU9InRvcCIsaC5maWxsVGV4dChmLmRlc2NlbnQsMCwwKSxkLmRlc2NlbnQ9byhoLmdldEltYWdlRGF0YSgwLDAscCxwKSkpLGYub3ZlcnNob290KXtoLmNsZWFyUmVjdCgwLDAscCxwKSxoLnRleHRCYXNlbGluZT0idG9wIixoLmZpbGxUZXh0KGYub3ZlcnNob290LDAsMCk7dmFyIF89byhoLmdldEltYWdlRGF0YSgwLDAscCxwKSk7ZC5vdmVyc2hvb3Q9Xy1tfWZvcih2YXIgdyBpbiBkKWRbd10vPXM7cmV0dXJuIGQuZW09cyxuLmNhY2hlW3JdPWQsYShkLGMpfWZ1bmN0aW9uIGEodCxlKXt2YXIgcj17fTtmb3IodmFyIG4gaW4ic3RyaW5nIj09dHlwZW9mIGUmJihlPXRbZV0pLHQpImVtIiE9PW4mJihyW25dPXRbbl0tZSk7cmV0dXJuIHJ9ZnVuY3Rpb24gaSh0KXtmb3IodmFyIGU9dC5oZWlnaHQscj10LmRhdGEsbj0zO248ci5sZW5ndGg7bis9NClpZigwIT09cltuXSlyZXR1cm4gTWF0aC5mbG9vciguMjUqKG4tMykvZSl9ZnVuY3Rpb24gbyh0KXtmb3IodmFyIGU9dC5oZWlnaHQscj10LmRhdGEsbj1yLmxlbmd0aC0xO24+MDtuLT00KWlmKDAhPT1yW25dKXJldHVybiBNYXRoLmZsb29yKC4yNSoobi0zKS9lKX1lLmV4cG9ydHM9bixuLmNhbnZhcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxuLmNhY2hlPXt9fSx7fV0sMjMzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGModHx8ZCxudWxsKX07dmFyIG49MCxhPTE7ZnVuY3Rpb24gaSh0LGUscixuLGEsaSl7dGhpcy5fY29sb3I9dCx0aGlzLmtleT1lLHRoaXMudmFsdWU9cix0aGlzLmxlZnQ9bix0aGlzLnJpZ2h0PWEsdGhpcy5fY291bnQ9aX1mdW5jdGlvbiBvKHQpe3JldHVybiBuZXcgaSh0Ll9jb2xvcix0LmtleSx0LnZhbHVlLHQubGVmdCx0LnJpZ2h0LHQuX2NvdW50KX1mdW5jdGlvbiBzKHQsZSl7cmV0dXJuIG5ldyBpKHQsZS5rZXksZS52YWx1ZSxlLmxlZnQsZS5yaWdodCxlLl9jb3VudCl9ZnVuY3Rpb24gbCh0KXt0Ll9jb3VudD0xKyh0LmxlZnQ/dC5sZWZ0Ll9jb3VudDowKSsodC5yaWdodD90LnJpZ2h0Ll9jb3VudDowKX1mdW5jdGlvbiBjKHQsZSl7dGhpcy5fY29tcGFyZT10LHRoaXMucm9vdD1lfXZhciB1PWMucHJvdG90eXBlO2Z1bmN0aW9uIGgodCxlKXt0aGlzLnRyZWU9dCx0aGlzLl9zdGFjaz1lfU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh1LCJrZXlzIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMuZm9yRWFjaChmdW5jdGlvbihlLHIpe3QucHVzaChlKX0pLHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHUsInZhbHVlcyIse2dldDpmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24oZSxyKXt0LnB1c2gocil9KSx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh1LCJsZW5ndGgiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yb290P3RoaXMucm9vdC5fY291bnQ6MH19KSx1Lmluc2VydD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10aGlzLl9jb21wYXJlLG89dGhpcy5yb290LHU9W10saD1bXTtvOyl7dmFyIGY9cih0LG8ua2V5KTt1LnB1c2gobyksaC5wdXNoKGYpLG89Zjw9MD9vLmxlZnQ6by5yaWdodH11LnB1c2gobmV3IGkobix0LGUsbnVsbCxudWxsLDEpKTtmb3IodmFyIHA9dS5sZW5ndGgtMjtwPj0wOy0tcCl7bz11W3BdO2hbcF08PTA/dVtwXT1uZXcgaShvLl9jb2xvcixvLmtleSxvLnZhbHVlLHVbcCsxXSxvLnJpZ2h0LG8uX2NvdW50KzEpOnVbcF09bmV3IGkoby5fY29sb3Isby5rZXksby52YWx1ZSxvLmxlZnQsdVtwKzFdLG8uX2NvdW50KzEpfWZvcihwPXUubGVuZ3RoLTE7cD4xOy0tcCl7dmFyIGQ9dVtwLTFdO289dVtwXTtpZihkLl9jb2xvcj09PWF8fG8uX2NvbG9yPT09YSlicmVhazt2YXIgZz11W3AtMl07aWYoZy5sZWZ0PT09ZClpZihkLmxlZnQ9PT1vKXtpZighKHY9Zy5yaWdodCl8fHYuX2NvbG9yIT09bil7aWYoZy5fY29sb3I9bixnLmxlZnQ9ZC5yaWdodCxkLl9jb2xvcj1hLGQucmlnaHQ9Zyx1W3AtMl09ZCx1W3AtMV09byxsKGcpLGwoZCkscD49MykobT11W3AtM10pLmxlZnQ9PT1nP20ubGVmdD1kOm0ucmlnaHQ9ZDticmVha31kLl9jb2xvcj1hLGcucmlnaHQ9cyhhLHYpLGcuX2NvbG9yPW4scC09MX1lbHNle2lmKCEodj1nLnJpZ2h0KXx8di5fY29sb3IhPT1uKXtpZihkLnJpZ2h0PW8ubGVmdCxnLl9jb2xvcj1uLGcubGVmdD1vLnJpZ2h0LG8uX2NvbG9yPWEsby5sZWZ0PWQsby5yaWdodD1nLHVbcC0yXT1vLHVbcC0xXT1kLGwoZyksbChkKSxsKG8pLHA+PTMpKG09dVtwLTNdKS5sZWZ0PT09Zz9tLmxlZnQ9bzptLnJpZ2h0PW87YnJlYWt9ZC5fY29sb3I9YSxnLnJpZ2h0PXMoYSx2KSxnLl9jb2xvcj1uLHAtPTF9ZWxzZSBpZihkLnJpZ2h0PT09byl7aWYoISh2PWcubGVmdCl8fHYuX2NvbG9yIT09bil7aWYoZy5fY29sb3I9bixnLnJpZ2h0PWQubGVmdCxkLl9jb2xvcj1hLGQubGVmdD1nLHVbcC0yXT1kLHVbcC0xXT1vLGwoZyksbChkKSxwPj0zKShtPXVbcC0zXSkucmlnaHQ9PT1nP20ucmlnaHQ9ZDptLmxlZnQ9ZDticmVha31kLl9jb2xvcj1hLGcubGVmdD1zKGEsdiksZy5fY29sb3I9bixwLT0xfWVsc2V7dmFyIHY7aWYoISh2PWcubGVmdCl8fHYuX2NvbG9yIT09bil7dmFyIG07aWYoZC5sZWZ0PW8ucmlnaHQsZy5fY29sb3I9bixnLnJpZ2h0PW8ubGVmdCxvLl9jb2xvcj1hLG8ucmlnaHQ9ZCxvLmxlZnQ9Zyx1W3AtMl09byx1W3AtMV09ZCxsKGcpLGwoZCksbChvKSxwPj0zKShtPXVbcC0zXSkucmlnaHQ9PT1nP20ucmlnaHQ9bzptLmxlZnQ9bzticmVha31kLl9jb2xvcj1hLGcubGVmdD1zKGEsdiksZy5fY29sb3I9bixwLT0xfX1yZXR1cm4gdVswXS5fY29sb3I9YSxuZXcgYyhyLHVbMF0pfSx1LmZvckVhY2g9ZnVuY3Rpb24odCxlLHIpe2lmKHRoaXMucm9vdClzd2l0Y2goYXJndW1lbnRzLmxlbmd0aCl7Y2FzZSAxOnJldHVybiBmdW5jdGlvbiB0KGUscil7dmFyIG47aWYoci5sZWZ0JiYobj10KGUsci5sZWZ0KSkpcmV0dXJuIG47cmV0dXJuKG49ZShyLmtleSxyLnZhbHVlKSl8fChyLnJpZ2h0P3QoZSxyLnJpZ2h0KTp2b2lkIDApfSh0LHRoaXMucm9vdCk7Y2FzZSAyOnJldHVybiBmdW5jdGlvbiB0KGUscixuLGEpe2lmKHIoZSxhLmtleSk8PTApe3ZhciBpO2lmKGEubGVmdCYmKGk9dChlLHIsbixhLmxlZnQpKSlyZXR1cm4gaTtpZihpPW4oYS5rZXksYS52YWx1ZSkpcmV0dXJuIGl9aWYoYS5yaWdodClyZXR1cm4gdChlLHIsbixhLnJpZ2h0KX0oZSx0aGlzLl9jb21wYXJlLHQsdGhpcy5yb290KTtjYXNlIDM6aWYodGhpcy5fY29tcGFyZShlLHIpPj0wKXJldHVybjtyZXR1cm4gZnVuY3Rpb24gdChlLHIsbixhLGkpe3ZhciBvLHM9bihlLGkua2V5KSxsPW4ocixpLmtleSk7aWYoczw9MCl7aWYoaS5sZWZ0JiYobz10KGUscixuLGEsaS5sZWZ0KSkpcmV0dXJuIG87aWYobD4wJiYobz1hKGkua2V5LGkudmFsdWUpKSlyZXR1cm4gb31pZihsPjAmJmkucmlnaHQpcmV0dXJuIHQoZSxyLG4sYSxpLnJpZ2h0KX0oZSxyLHRoaXMuX2NvbXBhcmUsdCx0aGlzLnJvb3QpfX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHUsImJlZ2luIix7Z2V0OmZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9dGhpcy5yb290O2U7KXQucHVzaChlKSxlPWUubGVmdDtyZXR1cm4gbmV3IGgodGhpcyx0KX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodSwiZW5kIix7Z2V0OmZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9dGhpcy5yb290O2U7KXQucHVzaChlKSxlPWUucmlnaHQ7cmV0dXJuIG5ldyBoKHRoaXMsdCl9fSksdS5hdD1mdW5jdGlvbih0KXtpZih0PDApcmV0dXJuIG5ldyBoKHRoaXMsW10pO2Zvcih2YXIgZT10aGlzLnJvb3Qscj1bXTs7KXtpZihyLnB1c2goZSksZS5sZWZ0KXtpZih0PGUubGVmdC5fY291bnQpe2U9ZS5sZWZ0O2NvbnRpbnVlfXQtPWUubGVmdC5fY291bnR9aWYoIXQpcmV0dXJuIG5ldyBoKHRoaXMscik7aWYodC09MSwhZS5yaWdodClicmVhaztpZih0Pj1lLnJpZ2h0Ll9jb3VudClicmVhaztlPWUucmlnaHR9cmV0dXJuIG5ldyBoKHRoaXMsW10pfSx1LmdlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLl9jb21wYXJlLHI9dGhpcy5yb290LG49W10sYT0wO3I7KXt2YXIgaT1lKHQsci5rZXkpO24ucHVzaChyKSxpPD0wJiYoYT1uLmxlbmd0aCkscj1pPD0wP3IubGVmdDpyLnJpZ2h0fXJldHVybiBuLmxlbmd0aD1hLG5ldyBoKHRoaXMsbil9LHUuZ3Q9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMuX2NvbXBhcmUscj10aGlzLnJvb3Qsbj1bXSxhPTA7cjspe3ZhciBpPWUodCxyLmtleSk7bi5wdXNoKHIpLGk8MCYmKGE9bi5sZW5ndGgpLHI9aTwwP3IubGVmdDpyLnJpZ2h0fXJldHVybiBuLmxlbmd0aD1hLG5ldyBoKHRoaXMsbil9LHUubHQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMuX2NvbXBhcmUscj10aGlzLnJvb3Qsbj1bXSxhPTA7cjspe3ZhciBpPWUodCxyLmtleSk7bi5wdXNoKHIpLGk+MCYmKGE9bi5sZW5ndGgpLHI9aTw9MD9yLmxlZnQ6ci5yaWdodH1yZXR1cm4gbi5sZW5ndGg9YSxuZXcgaCh0aGlzLG4pfSx1LmxlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLl9jb21wYXJlLHI9dGhpcy5yb290LG49W10sYT0wO3I7KXt2YXIgaT1lKHQsci5rZXkpO24ucHVzaChyKSxpPj0wJiYoYT1uLmxlbmd0aCkscj1pPDA/ci5sZWZ0OnIucmlnaHR9cmV0dXJuIG4ubGVuZ3RoPWEsbmV3IGgodGhpcyxuKX0sdS5maW5kPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLl9jb21wYXJlLHI9dGhpcy5yb290LG49W107cjspe3ZhciBhPWUodCxyLmtleSk7aWYobi5wdXNoKHIpLDA9PT1hKXJldHVybiBuZXcgaCh0aGlzLG4pO3I9YTw9MD9yLmxlZnQ6ci5yaWdodH1yZXR1cm4gbmV3IGgodGhpcyxbXSl9LHUucmVtb3ZlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZmluZCh0KTtyZXR1cm4gZT9lLnJlbW92ZSgpOnRoaXN9LHUuZ2V0PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLl9jb21wYXJlLHI9dGhpcy5yb290O3I7KXt2YXIgbj1lKHQsci5rZXkpO2lmKDA9PT1uKXJldHVybiByLnZhbHVlO3I9bjw9MD9yLmxlZnQ6ci5yaWdodH19O3ZhciBmPWgucHJvdG90eXBlO2Z1bmN0aW9uIHAodCxlKXt0LmtleT1lLmtleSx0LnZhbHVlPWUudmFsdWUsdC5sZWZ0PWUubGVmdCx0LnJpZ2h0PWUucmlnaHQsdC5fY29sb3I9ZS5fY29sb3IsdC5fY291bnQ9ZS5fY291bnR9ZnVuY3Rpb24gZCh0LGUpe3JldHVybiB0PGU/LTE6dD5lPzE6MH1PYmplY3QuZGVmaW5lUHJvcGVydHkoZiwidmFsaWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RhY2subGVuZ3RoPjB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGYsIm5vZGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RhY2subGVuZ3RoPjA/dGhpcy5fc3RhY2tbdGhpcy5fc3RhY2subGVuZ3RoLTFdOm51bGx9LGVudW1lcmFibGU6ITB9KSxmLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBoKHRoaXMudHJlZSx0aGlzLl9zdGFjay5zbGljZSgpKX0sZi5yZW1vdmU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9zdGFjaztpZigwPT09dC5sZW5ndGgpcmV0dXJuIHRoaXMudHJlZTt2YXIgZT1uZXcgQXJyYXkodC5sZW5ndGgpLHI9dFt0Lmxlbmd0aC0xXTtlW2UubGVuZ3RoLTFdPW5ldyBpKHIuX2NvbG9yLHIua2V5LHIudmFsdWUsci5sZWZ0LHIucmlnaHQsci5fY291bnQpO2Zvcih2YXIgdT10Lmxlbmd0aC0yO3U+PTA7LS11KXsocj10W3VdKS5sZWZ0PT09dFt1KzFdP2VbdV09bmV3IGkoci5fY29sb3Isci5rZXksci52YWx1ZSxlW3UrMV0sci5yaWdodCxyLl9jb3VudCk6ZVt1XT1uZXcgaShyLl9jb2xvcixyLmtleSxyLnZhbHVlLHIubGVmdCxlW3UrMV0sci5fY291bnQpfWlmKChyPWVbZS5sZW5ndGgtMV0pLmxlZnQmJnIucmlnaHQpe3ZhciBoPWUubGVuZ3RoO2ZvcihyPXIubGVmdDtyLnJpZ2h0OyllLnB1c2gocikscj1yLnJpZ2h0O3ZhciBmPWVbaC0xXTtlLnB1c2gobmV3IGkoci5fY29sb3IsZi5rZXksZi52YWx1ZSxyLmxlZnQsci5yaWdodCxyLl9jb3VudCkpLGVbaC0xXS5rZXk9ci5rZXksZVtoLTFdLnZhbHVlPXIudmFsdWU7Zm9yKHU9ZS5sZW5ndGgtMjt1Pj1oOy0tdSlyPWVbdV0sZVt1XT1uZXcgaShyLl9jb2xvcixyLmtleSxyLnZhbHVlLHIubGVmdCxlW3UrMV0sci5fY291bnQpO2VbaC0xXS5sZWZ0PWVbaF19aWYoKHI9ZVtlLmxlbmd0aC0xXSkuX2NvbG9yPT09bil7dmFyIGQ9ZVtlLmxlbmd0aC0yXTtkLmxlZnQ9PT1yP2QubGVmdD1udWxsOmQucmlnaHQ9PT1yJiYoZC5yaWdodD1udWxsKSxlLnBvcCgpO2Zvcih1PTA7dTxlLmxlbmd0aDsrK3UpZVt1XS5fY291bnQtLTtyZXR1cm4gbmV3IGModGhpcy50cmVlLl9jb21wYXJlLGVbMF0pfWlmKHIubGVmdHx8ci5yaWdodCl7ci5sZWZ0P3AocixyLmxlZnQpOnIucmlnaHQmJnAocixyLnJpZ2h0KSxyLl9jb2xvcj1hO2Zvcih1PTA7dTxlLmxlbmd0aC0xOysrdSllW3VdLl9jb3VudC0tO3JldHVybiBuZXcgYyh0aGlzLnRyZWUuX2NvbXBhcmUsZVswXSl9aWYoMT09PWUubGVuZ3RoKXJldHVybiBuZXcgYyh0aGlzLnRyZWUuX2NvbXBhcmUsbnVsbCk7Zm9yKHU9MDt1PGUubGVuZ3RoOysrdSllW3VdLl9jb3VudC0tO3ZhciBnPWVbZS5sZW5ndGgtMl07cmV0dXJuIGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyLGksYyx1PXQubGVuZ3RoLTE7dT49MDstLXUpe2lmKGU9dFt1XSwwPT09dSlyZXR1cm4gdm9pZChlLl9jb2xvcj1hKTtpZigocj10W3UtMV0pLmxlZnQ9PT1lKXtpZigoaT1yLnJpZ2h0KS5yaWdodCYmaS5yaWdodC5fY29sb3I9PT1uKXJldHVybiBjPShpPXIucmlnaHQ9byhpKSkucmlnaHQ9byhpLnJpZ2h0KSxyLnJpZ2h0PWkubGVmdCxpLmxlZnQ9cixpLnJpZ2h0PWMsaS5fY29sb3I9ci5fY29sb3IsZS5fY29sb3I9YSxyLl9jb2xvcj1hLGMuX2NvbG9yPWEsbChyKSxsKGkpLHU+MSYmKChoPXRbdS0yXSkubGVmdD09PXI/aC5sZWZ0PWk6aC5yaWdodD1pKSx2b2lkKHRbdS0xXT1pKTtpZihpLmxlZnQmJmkubGVmdC5fY29sb3I9PT1uKXJldHVybiBjPShpPXIucmlnaHQ9byhpKSkubGVmdD1vKGkubGVmdCksci5yaWdodD1jLmxlZnQsaS5sZWZ0PWMucmlnaHQsYy5sZWZ0PXIsYy5yaWdodD1pLGMuX2NvbG9yPXIuX2NvbG9yLHIuX2NvbG9yPWEsaS5fY29sb3I9YSxlLl9jb2xvcj1hLGwociksbChpKSxsKGMpLHU+MSYmKChoPXRbdS0yXSkubGVmdD09PXI/aC5sZWZ0PWM6aC5yaWdodD1jKSx2b2lkKHRbdS0xXT1jKTtpZihpLl9jb2xvcj09PWEpe2lmKHIuX2NvbG9yPT09bilyZXR1cm4gci5fY29sb3I9YSx2b2lkKHIucmlnaHQ9cyhuLGkpKTtyLnJpZ2h0PXMobixpKTtjb250aW51ZX1pPW8oaSksci5yaWdodD1pLmxlZnQsaS5sZWZ0PXIsaS5fY29sb3I9ci5fY29sb3Isci5fY29sb3I9bixsKHIpLGwoaSksdT4xJiYoKGg9dFt1LTJdKS5sZWZ0PT09cj9oLmxlZnQ9aTpoLnJpZ2h0PWkpLHRbdS0xXT1pLHRbdV09cix1KzE8dC5sZW5ndGg/dFt1KzFdPWU6dC5wdXNoKGUpLHUrPTJ9ZWxzZXtpZigoaT1yLmxlZnQpLmxlZnQmJmkubGVmdC5fY29sb3I9PT1uKXJldHVybiBjPShpPXIubGVmdD1vKGkpKS5sZWZ0PW8oaS5sZWZ0KSxyLmxlZnQ9aS5yaWdodCxpLnJpZ2h0PXIsaS5sZWZ0PWMsaS5fY29sb3I9ci5fY29sb3IsZS5fY29sb3I9YSxyLl9jb2xvcj1hLGMuX2NvbG9yPWEsbChyKSxsKGkpLHU+MSYmKChoPXRbdS0yXSkucmlnaHQ9PT1yP2gucmlnaHQ9aTpoLmxlZnQ9aSksdm9pZCh0W3UtMV09aSk7aWYoaS5yaWdodCYmaS5yaWdodC5fY29sb3I9PT1uKXJldHVybiBjPShpPXIubGVmdD1vKGkpKS5yaWdodD1vKGkucmlnaHQpLHIubGVmdD1jLnJpZ2h0LGkucmlnaHQ9Yy5sZWZ0LGMucmlnaHQ9cixjLmxlZnQ9aSxjLl9jb2xvcj1yLl9jb2xvcixyLl9jb2xvcj1hLGkuX2NvbG9yPWEsZS5fY29sb3I9YSxsKHIpLGwoaSksbChjKSx1PjEmJigoaD10W3UtMl0pLnJpZ2h0PT09cj9oLnJpZ2h0PWM6aC5sZWZ0PWMpLHZvaWQodFt1LTFdPWMpO2lmKGkuX2NvbG9yPT09YSl7aWYoci5fY29sb3I9PT1uKXJldHVybiByLl9jb2xvcj1hLHZvaWQoci5sZWZ0PXMobixpKSk7ci5sZWZ0PXMobixpKTtjb250aW51ZX12YXIgaDtpPW8oaSksci5sZWZ0PWkucmlnaHQsaS5yaWdodD1yLGkuX2NvbG9yPXIuX2NvbG9yLHIuX2NvbG9yPW4sbChyKSxsKGkpLHU+MSYmKChoPXRbdS0yXSkucmlnaHQ9PT1yP2gucmlnaHQ9aTpoLmxlZnQ9aSksdFt1LTFdPWksdFt1XT1yLHUrMTx0Lmxlbmd0aD90W3UrMV09ZTp0LnB1c2goZSksdSs9Mn19fShlKSxnLmxlZnQ9PT1yP2cubGVmdD1udWxsOmcucmlnaHQ9bnVsbCxuZXcgYyh0aGlzLnRyZWUuX2NvbXBhcmUsZVswXSl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmLCJrZXkiLHtnZXQ6ZnVuY3Rpb24oKXtpZih0aGlzLl9zdGFjay5sZW5ndGg+MClyZXR1cm4gdGhpcy5fc3RhY2tbdGhpcy5fc3RhY2subGVuZ3RoLTFdLmtleX0sZW51bWVyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmLCJ2YWx1ZSIse2dldDpmdW5jdGlvbigpe2lmKHRoaXMuX3N0YWNrLmxlbmd0aD4wKXJldHVybiB0aGlzLl9zdGFja1t0aGlzLl9zdGFjay5sZW5ndGgtMV0udmFsdWV9LGVudW1lcmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZiwiaW5kZXgiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD0wLGU9dGhpcy5fc3RhY2s7aWYoMD09PWUubGVuZ3RoKXt2YXIgcj10aGlzLnRyZWUucm9vdDtyZXR1cm4gcj9yLl9jb3VudDowfWVbZS5sZW5ndGgtMV0ubGVmdCYmKHQ9ZVtlLmxlbmd0aC0xXS5sZWZ0Ll9jb3VudCk7Zm9yKHZhciBuPWUubGVuZ3RoLTI7bj49MDstLW4pZVtuKzFdPT09ZVtuXS5yaWdodCYmKCsrdCxlW25dLmxlZnQmJih0Kz1lW25dLmxlZnQuX2NvdW50KSk7cmV0dXJuIHR9LGVudW1lcmFibGU6ITB9KSxmLm5leHQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9zdGFjaztpZigwIT09dC5sZW5ndGgpe3ZhciBlPXRbdC5sZW5ndGgtMV07aWYoZS5yaWdodClmb3IoZT1lLnJpZ2h0O2U7KXQucHVzaChlKSxlPWUubGVmdDtlbHNlIGZvcih0LnBvcCgpO3QubGVuZ3RoPjAmJnRbdC5sZW5ndGgtMV0ucmlnaHQ9PT1lOyllPXRbdC5sZW5ndGgtMV0sdC5wb3AoKX19LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmLCJoYXNOZXh0Iix7Z2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fc3RhY2s7aWYoMD09PXQubGVuZ3RoKXJldHVybiExO2lmKHRbdC5sZW5ndGgtMV0ucmlnaHQpcmV0dXJuITA7Zm9yKHZhciBlPXQubGVuZ3RoLTE7ZT4wOy0tZSlpZih0W2UtMV0ubGVmdD09PXRbZV0pcmV0dXJuITA7cmV0dXJuITF9fSksZi51cGRhdGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fc3RhY2s7aWYoMD09PWUubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiQ2FuJ3QgdXBkYXRlIGVtcHR5IG5vZGUhIik7dmFyIHI9bmV3IEFycmF5KGUubGVuZ3RoKSxuPWVbZS5sZW5ndGgtMV07cltyLmxlbmd0aC0xXT1uZXcgaShuLl9jb2xvcixuLmtleSx0LG4ubGVmdCxuLnJpZ2h0LG4uX2NvdW50KTtmb3IodmFyIGE9ZS5sZW5ndGgtMjthPj0wOy0tYSkobj1lW2FdKS5sZWZ0PT09ZVthKzFdP3JbYV09bmV3IGkobi5fY29sb3Isbi5rZXksbi52YWx1ZSxyW2ErMV0sbi5yaWdodCxuLl9jb3VudCk6clthXT1uZXcgaShuLl9jb2xvcixuLmtleSxuLnZhbHVlLG4ubGVmdCxyW2ErMV0sbi5fY291bnQpO3JldHVybiBuZXcgYyh0aGlzLnRyZWUuX2NvbXBhcmUsclswXSl9LGYucHJldj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX3N0YWNrO2lmKDAhPT10Lmxlbmd0aCl7dmFyIGU9dFt0Lmxlbmd0aC0xXTtpZihlLmxlZnQpZm9yKGU9ZS5sZWZ0O2U7KXQucHVzaChlKSxlPWUucmlnaHQ7ZWxzZSBmb3IodC5wb3AoKTt0Lmxlbmd0aD4wJiZ0W3QubGVuZ3RoLTFdLmxlZnQ9PT1lOyllPXRbdC5sZW5ndGgtMV0sdC5wb3AoKX19LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmLCJoYXNQcmV2Iix7Z2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fc3RhY2s7aWYoMD09PXQubGVuZ3RoKXJldHVybiExO2lmKHRbdC5sZW5ndGgtMV0ubGVmdClyZXR1cm4hMDtmb3IodmFyIGU9dC5sZW5ndGgtMTtlPjA7LS1lKWlmKHRbZS0xXS5yaWdodD09PXRbZV0pcmV0dXJuITA7cmV0dXJuITF9fSl9LHt9XSwyMzQ6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj1bLjk5OTk5OTk5OTk5OTgwOTksNjc2LjUyMDM2ODEyMTg4NTEsLTEyNTkuMTM5MjE2NzIyNDAyOCw3NzEuMzIzNDI4Nzc3NjUzMSwtMTc2LjYxNTAyOTE2MjE0MDYsMTIuNTA3MzQzMjc4Njg2OTA1LC0uMTM4NTcxMDk1MjY1NzIwMTIsOTk4NDM2OTU3ODAxOTU3MmUtMjEsMS41MDU2MzI3MzUxNDkzMTE2ZS03XSxhPTYwNy8xMjgsaT1bLjk5OTk5OTk5OTk5OTk5NzEsNTcuMTU2MjM1NjY1ODYyOTIsLTU5LjU5Nzk2MDM1NTQ3NTQ5LDE0LjEzNjA5Nzk3NDc0MTc0NiwtLjQ5MTkxMzgxNjA5NzYyMDIsMzM5OTQ2NDk5ODQ4MTE4OWUtMjAsNDY1MjM2Mjg5MjcwNDg1OGUtMjAsLTk4Mzc0NDc1MzA0ODc5NTZlLTIwLC4wMDAxNTgwODg3MDMyMjQ5MTI1LC0uMDAwMjEwMjY0NDQxNzI0MTA0ODgsLjAwMDIxNzQzOTYxODExNTIxMjY1LC0uMDAwMTY0MzE4MTA2NTM2NzYzOSw4NDQxODIyMzk4Mzg1Mjc1ZS0yMCwtMjYxOTA4Mzg0MDE1ODE0MDhlLTIxLDM2ODk5MTgyNjU5NTMxNjI1ZS0yMl07ZnVuY3Rpb24gbyh0KXtpZih0PDApcmV0dXJuIE51bWJlcigiMC8wIik7Zm9yKHZhciBlPWlbMF0scj1pLmxlbmd0aC0xO3I+MDstLXIpZSs9aVtyXS8odCtyKTt2YXIgbj10K2ErLjU7cmV0dXJuLjUqTWF0aC5sb2coMipNYXRoLlBJKSsodCsuNSkqTWF0aC5sb2cobiktbitNYXRoLmxvZyhlKS1NYXRoLmxvZyh0KX1lLmV4cG9ydHM9ZnVuY3Rpb24gdChlKXtpZihlPC41KXJldHVybiBNYXRoLlBJLyhNYXRoLnNpbihNYXRoLlBJKmUpKnQoMS1lKSk7aWYoZT4xMDApcmV0dXJuIE1hdGguZXhwKG8oZSkpO2UtPTE7Zm9yKHZhciByPW5bMF0sYT0xO2E8OTthKyspcis9blthXS8oZSthKTt2YXIgaT1lKzcrLjU7cmV0dXJuIE1hdGguc3FydCgyKk1hdGguUEkpKk1hdGgucG93KGksZSsuNSkqTWF0aC5leHAoLWkpKnJ9LGUuZXhwb3J0cy5sb2c9b30se31dLDIzNTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2lmKCJzdHJpbmciIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJtdXN0IHNwZWNpZnkgdHlwZSBzdHJpbmciKTtpZihlPWV8fHt9LCJ1bmRlZmluZWQiPT10eXBlb2YgZG9jdW1lbnQmJiFlLmNhbnZhcylyZXR1cm4gbnVsbDt2YXIgcj1lLmNhbnZhc3x8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7Im51bWJlciI9PXR5cGVvZiBlLndpZHRoJiYoci53aWR0aD1lLndpZHRoKTsibnVtYmVyIj09dHlwZW9mIGUuaGVpZ2h0JiYoci5oZWlnaHQ9ZS5oZWlnaHQpO3ZhciBuLGE9ZTt0cnl7dmFyIGk9W3RdOzA9PT10LmluZGV4T2YoIndlYmdsIikmJmkucHVzaCgiZXhwZXJpbWVudGFsLSIrdCk7Zm9yKHZhciBvPTA7bzxpLmxlbmd0aDtvKyspaWYobj1yLmdldENvbnRleHQoaVtvXSxhKSlyZXR1cm4gbn1jYXRjaCh0KXtuPW51bGx9cmV0dXJuIG58fG51bGx9fSx7fV0sMjM2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPW5ldyB1KHQpO3JldHVybiByLnVwZGF0ZShlKSxyfTt2YXIgbj10KCIuL2xpYi90ZXh0LmpzIiksYT10KCIuL2xpYi9saW5lcy5qcyIpLGk9dCgiLi9saWIvYmFja2dyb3VuZC5qcyIpLG89dCgiLi9saWIvY3ViZS5qcyIpLHM9dCgiLi9saWIvdGlja3MuanMiKSxsPW5ldyBGbG9hdDMyQXJyYXkoWzEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLDAsMCwwLDFdKTtmdW5jdGlvbiBjKHQsZSl7cmV0dXJuIHRbMF09ZVswXSx0WzFdPWVbMV0sdFsyXT1lWzJdLHR9ZnVuY3Rpb24gdSh0KXt0aGlzLmdsPXQsdGhpcy5waXhlbFJhdGlvPTEsdGhpcy5ib3VuZHM9W1stMTAsLTEwLC0xMF0sWzEwLDEwLDEwXV0sdGhpcy50aWNrcz1bW10sW10sW11dLHRoaXMuYXV0b1RpY2tzPSEwLHRoaXMudGlja1NwYWNpbmc9WzEsMSwxXSx0aGlzLnRpY2tFbmFibGU9WyEwLCEwLCEwXSx0aGlzLnRpY2tGb250PVsic2Fucy1zZXJpZiIsInNhbnMtc2VyaWYiLCJzYW5zLXNlcmlmIl0sdGhpcy50aWNrU2l6ZT1bMTIsMTIsMTJdLHRoaXMudGlja0FuZ2xlPVswLDAsMF0sdGhpcy50aWNrQWxpZ249WyJhdXRvIiwiYXV0byIsImF1dG8iXSx0aGlzLnRpY2tDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMudGlja1BhZD1bMTAsMTAsMTBdLHRoaXMubGFzdEN1YmVQcm9wcz17Y3ViZUVkZ2VzOlswLDAsMF0sYXhpczpbMCwwLDBdfSx0aGlzLmxhYmVscz1bIngiLCJ5IiwieiJdLHRoaXMubGFiZWxFbmFibGU9WyEwLCEwLCEwXSx0aGlzLmxhYmVsRm9udD0ic2Fucy1zZXJpZiIsdGhpcy5sYWJlbFNpemU9WzIwLDIwLDIwXSx0aGlzLmxhYmVsQW5nbGU9WzAsMCwwXSx0aGlzLmxhYmVsQWxpZ249WyJhdXRvIiwiYXV0byIsImF1dG8iXSx0aGlzLmxhYmVsQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLmxhYmVsUGFkPVsxMCwxMCwxMF0sdGhpcy5saW5lRW5hYmxlPVshMCwhMCwhMF0sdGhpcy5saW5lTWlycm9yPVshMSwhMSwhMV0sdGhpcy5saW5lV2lkdGg9WzEsMSwxXSx0aGlzLmxpbmVDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMubGluZVRpY2tFbmFibGU9WyEwLCEwLCEwXSx0aGlzLmxpbmVUaWNrTWlycm9yPVshMSwhMSwhMV0sdGhpcy5saW5lVGlja0xlbmd0aD1bMCwwLDBdLHRoaXMubGluZVRpY2tXaWR0aD1bMSwxLDFdLHRoaXMubGluZVRpY2tDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMuZ3JpZEVuYWJsZT1bITAsITAsITBdLHRoaXMuZ3JpZFdpZHRoPVsxLDEsMV0sdGhpcy5ncmlkQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLnplcm9FbmFibGU9WyEwLCEwLCEwXSx0aGlzLnplcm9MaW5lQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLnplcm9MaW5lV2lkdGg9WzIsMiwyXSx0aGlzLmJhY2tncm91bmRFbmFibGU9WyExLCExLCExXSx0aGlzLmJhY2tncm91bmRDb2xvcj1bWy44LC44LC44LC41XSxbLjgsLjgsLjgsLjVdLFsuOCwuOCwuOCwuNV1dLHRoaXMuX2ZpcnN0SW5pdD0hMCx0aGlzLl90ZXh0PW51bGwsdGhpcy5fbGluZXM9bnVsbCx0aGlzLl9iYWNrZ3JvdW5kPWkodCl9dmFyIGg9dS5wcm90b3R5cGU7ZnVuY3Rpb24gZigpe3RoaXMucHJpbWFsT2Zmc2V0PVswLDAsMF0sdGhpcy5wcmltYWxNaW5vcj1bMCwwLDBdLHRoaXMubWlycm9yT2Zmc2V0PVswLDAsMF0sdGhpcy5taXJyb3JNaW5vcj1bMCwwLDBdfWgudXBkYXRlPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSxyLG4pe2lmKG4gaW4gdCl7dmFyIGEsaT10W25dLG89dGhpc1tuXTsoZT9BcnJheS5pc0FycmF5KGkpJiZBcnJheS5pc0FycmF5KGlbMF0pOkFycmF5LmlzQXJyYXkoaSkpP3RoaXNbbl09YT1bcihpWzBdKSxyKGlbMV0pLHIoaVsyXSldOnRoaXNbbl09YT1bcihpKSxyKGkpLHIoaSldO2Zvcih2YXIgcz0wO3M8MzsrK3MpaWYoYVtzXSE9PW9bc10pcmV0dXJuITB9cmV0dXJuITF9dD10fHx7fTt2YXIgcixpPWUuYmluZCh0aGlzLCExLE51bWJlciksbz1lLmJpbmQodGhpcywhMSxCb29sZWFuKSxsPWUuYmluZCh0aGlzLCExLFN0cmluZyksYz1lLmJpbmQodGhpcywhMCxmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXtpZigzPT09dC5sZW5ndGgpcmV0dXJuWyt0WzBdLCt0WzFdLCt0WzJdLDFdO2lmKDQ9PT10Lmxlbmd0aClyZXR1cm5bK3RbMF0sK3RbMV0sK3RbMl0sK3RbM11dfXJldHVyblswLDAsMCwxXX0pLHU9ITEsaD0hMTtpZigiYm91bmRzImluIHQpZm9yKHZhciBmPXQuYm91bmRzLHA9MDtwPDI7KytwKWZvcih2YXIgZD0wO2Q8MzsrK2QpZltwXVtkXSE9PXRoaXMuYm91bmRzW3BdW2RdJiYoaD0hMCksdGhpcy5ib3VuZHNbcF1bZF09ZltwXVtkXTtpZigidGlja3MiaW4gdCl7cj10LnRpY2tzLHU9ITAsdGhpcy5hdXRvVGlja3M9ITE7Zm9yKHA9MDtwPDM7KytwKXRoaXMudGlja1NwYWNpbmdbcF09MH1lbHNlIGkoInRpY2tTcGFjaW5nIikmJih0aGlzLmF1dG9UaWNrcz0hMCxoPSEwKTtpZih0aGlzLl9maXJzdEluaXQmJigidGlja3MiaW4gdHx8InRpY2tTcGFjaW5nImluIHR8fCh0aGlzLmF1dG9UaWNrcz0hMCksaD0hMCx1PSEwLHRoaXMuX2ZpcnN0SW5pdD0hMSksaCYmdGhpcy5hdXRvVGlja3MmJihyPXMuY3JlYXRlKHRoaXMuYm91bmRzLHRoaXMudGlja1NwYWNpbmcpLHU9ITApLHUpe2ZvcihwPTA7cDwzOysrcClyW3BdLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC54LWUueH0pO3MuZXF1YWwocix0aGlzLnRpY2tzKT91PSExOnRoaXMudGlja3M9cn1vKCJ0aWNrRW5hYmxlIiksbCgidGlja0ZvbnQiKSYmKHU9ITApLGkoInRpY2tTaXplIiksaSgidGlja0FuZ2xlIiksaSgidGlja1BhZCIpLGMoInRpY2tDb2xvciIpO3ZhciBnPWwoImxhYmVscyIpO2woImxhYmVsRm9udCIpJiYoZz0hMCksbygibGFiZWxFbmFibGUiKSxpKCJsYWJlbFNpemUiKSxpKCJsYWJlbFBhZCIpLGMoImxhYmVsQ29sb3IiKSxvKCJsaW5lRW5hYmxlIiksbygibGluZU1pcnJvciIpLGkoImxpbmVXaWR0aCIpLGMoImxpbmVDb2xvciIpLG8oImxpbmVUaWNrRW5hYmxlIiksbygibGluZVRpY2tNaXJyb3IiKSxpKCJsaW5lVGlja0xlbmd0aCIpLGkoImxpbmVUaWNrV2lkdGgiKSxjKCJsaW5lVGlja0NvbG9yIiksbygiZ3JpZEVuYWJsZSIpLGkoImdyaWRXaWR0aCIpLGMoImdyaWRDb2xvciIpLG8oInplcm9FbmFibGUiKSxjKCJ6ZXJvTGluZUNvbG9yIiksaSgiemVyb0xpbmVXaWR0aCIpLG8oImJhY2tncm91bmRFbmFibGUiKSxjKCJiYWNrZ3JvdW5kQ29sb3IiKSx0aGlzLl90ZXh0P3RoaXMuX3RleHQmJihnfHx1KSYmdGhpcy5fdGV4dC51cGRhdGUodGhpcy5ib3VuZHMsdGhpcy5sYWJlbHMsdGhpcy5sYWJlbEZvbnQsdGhpcy50aWNrcyx0aGlzLnRpY2tGb250KTp0aGlzLl90ZXh0PW4odGhpcy5nbCx0aGlzLmJvdW5kcyx0aGlzLmxhYmVscyx0aGlzLmxhYmVsRm9udCx0aGlzLnRpY2tzLHRoaXMudGlja0ZvbnQpLHRoaXMuX2xpbmVzJiZ1JiYodGhpcy5fbGluZXMuZGlzcG9zZSgpLHRoaXMuX2xpbmVzPW51bGwpLHRoaXMuX2xpbmVzfHwodGhpcy5fbGluZXM9YSh0aGlzLmdsLHRoaXMuYm91bmRzLHRoaXMudGlja3MpKX07dmFyIHA9W25ldyBmLG5ldyBmLG5ldyBmXTtmdW5jdGlvbiBkKHQsZSxyLG4sYSl7Zm9yKHZhciBpPXQucHJpbWFsT2Zmc2V0LG89dC5wcmltYWxNaW5vcixzPXQubWlycm9yT2Zmc2V0LGw9dC5taXJyb3JNaW5vcixjPW5bZV0sdT0wO3U8MzsrK3UpaWYoZSE9PXUpe3ZhciBoPWksZj1zLHA9byxkPWw7YyYxPDx1JiYoaD1zLGY9aSxwPWwsZD1vKSxoW3VdPXJbMF1bdV0sZlt1XT1yWzFdW3VdLGFbdV0+MD8ocFt1XT0tMSxkW3VdPTApOihwW3VdPTAsZFt1XT0xKX19dmFyIGc9WzAsMCwwXSx2PXttb2RlbDpsLHZpZXc6bCxwcm9qZWN0aW9uOmwsX29ydGhvOiExfTtoLmlzT3BhcXVlPWZ1bmN0aW9uKCl7cmV0dXJuITB9LGguaXNUcmFuc3BhcmVudD1mdW5jdGlvbigpe3JldHVybiExfSxoLmRyYXdUcmFuc3BhcmVudD1mdW5jdGlvbih0KXt9O3ZhciBtPVswLDAsMF0seT1bMCwwLDBdLHg9WzAsMCwwXTtoLmRyYXc9ZnVuY3Rpb24odCl7dD10fHx2O2Zvcih2YXIgZT10aGlzLmdsLHI9dC5tb2RlbHx8bCxuPXQudmlld3x8bCxhPXQucHJvamVjdGlvbnx8bCxpPXRoaXMuYm91bmRzLHM9dC5fb3J0aG98fCExLHU9byhyLG4sYSxpLHMpLGg9dS5jdWJlRWRnZXMsZj11LmF4aXMsYj1uWzEyXSxfPW5bMTNdLHc9blsxNF0saz1uWzE1XSxUPShzPzI6MSkqdGhpcy5waXhlbFJhdGlvKihhWzNdKmIrYVs3XSpfK2FbMTFdKncrYVsxNV0qaykvZS5kcmF3aW5nQnVmZmVySGVpZ2h0LE09MDtNPDM7KytNKXRoaXMubGFzdEN1YmVQcm9wcy5jdWJlRWRnZXNbTV09aFtNXSx0aGlzLmxhc3RDdWJlUHJvcHMuYXhpc1tNXT1mW01dO3ZhciBBPXA7Zm9yKE09MDtNPDM7KytNKWQocFtNXSxNLHRoaXMuYm91bmRzLGgsZik7ZT10aGlzLmdsO3ZhciBTLEU9Zztmb3IoTT0wO008MzsrK00pdGhpcy5iYWNrZ3JvdW5kRW5hYmxlW01dP0VbTV09ZltNXTpFW01dPTA7dGhpcy5fYmFja2dyb3VuZC5kcmF3KHIsbixhLGksRSx0aGlzLmJhY2tncm91bmRDb2xvciksdGhpcy5fbGluZXMuYmluZChyLG4sYSx0aGlzKTtmb3IoTT0wO008MzsrK00pe3ZhciBMPVswLDAsMF07ZltNXT4wP0xbTV09aVsxXVtNXTpMW01dPWlbMF1bTV07Zm9yKHZhciBDPTA7QzwyOysrQyl7dmFyIFA9KE0rMStDKSUzLE89KE0rMSsoMV5DKSklMzt0aGlzLmdyaWRFbmFibGVbUF0mJnRoaXMuX2xpbmVzLmRyYXdHcmlkKFAsTyx0aGlzLmJvdW5kcyxMLHRoaXMuZ3JpZENvbG9yW1BdLHRoaXMuZ3JpZFdpZHRoW1BdKnRoaXMucGl4ZWxSYXRpbyl9Zm9yKEM9MDtDPDI7KytDKXtQPShNKzErQyklMyxPPShNKzErKDFeQykpJTM7dGhpcy56ZXJvRW5hYmxlW09dJiZNYXRoLm1pbihpWzBdW09dLGlbMV1bT10pPD0wJiZNYXRoLm1heChpWzBdW09dLGlbMV1bT10pPj0wJiZ0aGlzLl9saW5lcy5kcmF3WmVybyhQLE8sdGhpcy5ib3VuZHMsTCx0aGlzLnplcm9MaW5lQ29sb3JbT10sdGhpcy56ZXJvTGluZVdpZHRoW09dKnRoaXMucGl4ZWxSYXRpbyl9fWZvcihNPTA7TTwzOysrTSl7dGhpcy5saW5lRW5hYmxlW01dJiZ0aGlzLl9saW5lcy5kcmF3QXhpc0xpbmUoTSx0aGlzLmJvdW5kcyxBW01dLnByaW1hbE9mZnNldCx0aGlzLmxpbmVDb2xvcltNXSx0aGlzLmxpbmVXaWR0aFtNXSp0aGlzLnBpeGVsUmF0aW8pLHRoaXMubGluZU1pcnJvcltNXSYmdGhpcy5fbGluZXMuZHJhd0F4aXNMaW5lKE0sdGhpcy5ib3VuZHMsQVtNXS5taXJyb3JPZmZzZXQsdGhpcy5saW5lQ29sb3JbTV0sdGhpcy5saW5lV2lkdGhbTV0qdGhpcy5waXhlbFJhdGlvKTt2YXIgej1jKG0sQVtNXS5wcmltYWxNaW5vciksST1jKHksQVtNXS5taXJyb3JNaW5vciksRD10aGlzLmxpbmVUaWNrTGVuZ3RoO2ZvcihDPTA7QzwzOysrQyl7dmFyIFI9VC9yWzUqQ107eltDXSo9RFtDXSpSLElbQ10qPURbQ10qUn10aGlzLmxpbmVUaWNrRW5hYmxlW01dJiZ0aGlzLl9saW5lcy5kcmF3QXhpc1RpY2tzKE0sQVtNXS5wcmltYWxPZmZzZXQseix0aGlzLmxpbmVUaWNrQ29sb3JbTV0sdGhpcy5saW5lVGlja1dpZHRoW01dKnRoaXMucGl4ZWxSYXRpbyksdGhpcy5saW5lVGlja01pcnJvcltNXSYmdGhpcy5fbGluZXMuZHJhd0F4aXNUaWNrcyhNLEFbTV0ubWlycm9yT2Zmc2V0LEksdGhpcy5saW5lVGlja0NvbG9yW01dLHRoaXMubGluZVRpY2tXaWR0aFtNXSp0aGlzLnBpeGVsUmF0aW8pfXRoaXMuX2xpbmVzLnVuYmluZCgpLHRoaXMuX3RleHQuYmluZChyLG4sYSx0aGlzLnBpeGVsUmF0aW8pO3ZhciBGLEI7ZnVuY3Rpb24gTih0KXsoQj1bMCwwLDBdKVt0XT0xfWZ1bmN0aW9uIGoodCxlLHIpe3ZhciBuPSh0KzEpJTMsYT0odCsyKSUzLGk9ZVtuXSxvPWVbYV0scz1yW25dLGw9clthXTtpPjAmJmw+MD9OKG4pOmk+MCYmbDwwP04obik6aTwwJiZsPjA/TihuKTppPDAmJmw8MD9OKG4pOm8+MCYmcz4wP04oYSk6bz4wJiZzPDA/TihhKTpvPDAmJnM+MD9OKGEpOm88MCYmczwwJiZOKGEpfWZvcihNPTA7TTwzOysrTSl7dmFyIFY9QVtNXS5wcmltYWxNaW5vcixVPUFbTV0ubWlycm9yTWlub3IscT1jKHgsQVtNXS5wcmltYWxPZmZzZXQpO2ZvcihDPTA7QzwzOysrQyl0aGlzLmxpbmVUaWNrRW5hYmxlW01dJiYocVtDXSs9VCpWW0NdKk1hdGgubWF4KHRoaXMubGluZVRpY2tMZW5ndGhbQ10sMCkvcls1KkNdKTt2YXIgSD1bMCwwLDBdO2lmKEhbTV09MSx0aGlzLnRpY2tFbmFibGVbTV0pey0zNjAwPT09dGhpcy50aWNrQW5nbGVbTV0/KHRoaXMudGlja0FuZ2xlW01dPTAsdGhpcy50aWNrQWxpZ25bTV09ImF1dG8iKTp0aGlzLnRpY2tBbGlnbltNXT0tMSxGPTEsImF1dG8iPT09KFM9W3RoaXMudGlja0FsaWduW01dLC41LEZdKVswXT9TWzBdPTA6U1swXT1wYXJzZUludCgiIitTWzBdKSxCPVswLDAsMF0saihNLFYsVSk7Zm9yKEM9MDtDPDM7KytDKXFbQ10rPVQqVltDXSp0aGlzLnRpY2tQYWRbQ10vcls1KkNdO3RoaXMuX3RleHQuZHJhd1RpY2tzKE0sdGhpcy50aWNrU2l6ZVtNXSx0aGlzLnRpY2tBbmdsZVtNXSxxLHRoaXMudGlja0NvbG9yW01dLEgsQixTKX1pZih0aGlzLmxhYmVsRW5hYmxlW01dKXtGPTAsQj1bMCwwLDBdLHRoaXMubGFiZWxzW01dLmxlbmd0aD40JiYoTihNKSxGPTEpLCJhdXRvIj09PShTPVt0aGlzLmxhYmVsQWxpZ25bTV0sLjUsRl0pWzBdP1NbMF09MDpTWzBdPXBhcnNlSW50KCIiK1NbMF0pO2ZvcihDPTA7QzwzOysrQylxW0NdKz1UKlZbQ10qdGhpcy5sYWJlbFBhZFtDXS9yWzUqQ107cVtNXSs9LjUqKGlbMF1bTV0raVsxXVtNXSksdGhpcy5fdGV4dC5kcmF3TGFiZWwoTSx0aGlzLmxhYmVsU2l6ZVtNXSx0aGlzLmxhYmVsQW5nbGVbTV0scSx0aGlzLmxhYmVsQ29sb3JbTV0sWzAsMCwwXSxCLFMpfX10aGlzLl90ZXh0LnVuYmluZCgpfSxoLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLl90ZXh0LmRpc3Bvc2UoKSx0aGlzLl9saW5lcy5kaXNwb3NlKCksdGhpcy5fYmFja2dyb3VuZC5kaXNwb3NlKCksdGhpcy5fbGluZXM9bnVsbCx0aGlzLl90ZXh0PW51bGwsdGhpcy5fYmFja2dyb3VuZD1udWxsLHRoaXMuZ2w9bnVsbH19LHsiLi9saWIvYmFja2dyb3VuZC5qcyI6MjM3LCIuL2xpYi9jdWJlLmpzIjoyMzgsIi4vbGliL2xpbmVzLmpzIjoyMzksIi4vbGliL3RleHQuanMiOjI0MSwiLi9saWIvdGlja3MuanMiOjI0Mn1dLDIzNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLHI9W10scz0wLGw9MDtsPDM7KytsKWZvcih2YXIgYz0obCsxKSUzLHU9KGwrMiklMyxoPVswLDAsMF0sZj1bMCwwLDBdLHA9LTE7cDw9MTtwKz0yKXtyLnB1c2gocyxzKzIscysxLHMrMSxzKzIscyszKSxoW2xdPXAsZltsXT1wO2Zvcih2YXIgZD0tMTtkPD0xO2QrPTIpe2hbY109ZDtmb3IodmFyIGc9LTE7Zzw9MTtnKz0yKWhbdV09ZyxlLnB1c2goaFswXSxoWzFdLGhbMl0sZlswXSxmWzFdLGZbMl0pLHMrPTF9dmFyIHY9YztjPXUsdT12fXZhciBtPW4odCxuZXcgRmxvYXQzMkFycmF5KGUpKSx5PW4odCxuZXcgVWludDE2QXJyYXkociksdC5FTEVNRU5UX0FSUkFZX0JVRkZFUikseD1hKHQsW3tidWZmZXI6bSx0eXBlOnQuRkxPQVQsc2l6ZTozLG9mZnNldDowLHN0cmlkZToyNH0se2J1ZmZlcjptLHR5cGU6dC5GTE9BVCxzaXplOjMsb2Zmc2V0OjEyLHN0cmlkZToyNH1dLHkpLGI9aSh0KTtyZXR1cm4gYi5hdHRyaWJ1dGVzLnBvc2l0aW9uLmxvY2F0aW9uPTAsYi5hdHRyaWJ1dGVzLm5vcm1hbC5sb2NhdGlvbj0xLG5ldyBvKHQsbSx4LGIpfTt2YXIgbj10KCJnbC1idWZmZXIiKSxhPXQoImdsLXZhbyIpLGk9dCgiLi9zaGFkZXJzIikuYmc7ZnVuY3Rpb24gbyh0LGUscixuKXt0aGlzLmdsPXQsdGhpcy5idWZmZXI9ZSx0aGlzLnZhbz1yLHRoaXMuc2hhZGVyPW59dmFyIHM9by5wcm90b3R5cGU7cy5kcmF3PWZ1bmN0aW9uKHQsZSxyLG4sYSxpKXtmb3IodmFyIG89ITEscz0wO3M8MzsrK3Mpbz1vfHxhW3NdO2lmKG8pe3ZhciBsPXRoaXMuZ2w7bC5lbmFibGUobC5QT0xZR09OX09GRlNFVF9GSUxMKSxsLnBvbHlnb25PZmZzZXQoMSwyKSx0aGlzLnNoYWRlci5iaW5kKCksdGhpcy5zaGFkZXIudW5pZm9ybXM9e21vZGVsOnQsdmlldzplLHByb2plY3Rpb246cixib3VuZHM6bixlbmFibGU6YSxjb2xvcnM6aX0sdGhpcy52YW8uYmluZCgpLHRoaXMudmFvLmRyYXcodGhpcy5nbC5UUklBTkdMRVMsMzYpLHRoaXMudmFvLnVuYmluZCgpLGwuZGlzYWJsZShsLlBPTFlHT05fT0ZGU0VUX0ZJTEwpfX0scy5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy52YW8uZGlzcG9zZSgpLHRoaXMuYnVmZmVyLmRpc3Bvc2UoKSx0aGlzLnNoYWRlci5kaXNwb3NlKCl9fSx7Ii4vc2hhZGVycyI6MjQwLCJnbC1idWZmZXIiOjI0NCwiZ2wtdmFvIjozMjl9XSwyMzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGkscCl7YShzLGUsdCksYShzLHIscyk7Zm9yKHZhciB5PTAseD0wO3g8MjsrK3gpe3VbMl09aVt4XVsyXTtmb3IodmFyIGI9MDtiPDI7KytiKXt1WzFdPWlbYl1bMV07Zm9yKHZhciBfPTA7XzwyOysrXyl1WzBdPWlbX11bMF0sZihsW3ldLHUscykseSs9MX19Zm9yKHZhciB3PS0xLHg9MDt4PDg7Kyt4KXtmb3IodmFyIGs9bFt4XVszXSxUPTA7VDwzOysrVCljW3hdW1RdPWxbeF1bVF0vaztwJiYoY1t4XVsyXSo9LTEpLGs8MCYmKHc8MD93PXg6Y1t4XVsyXTxjW3ddWzJdJiYodz14KSl9aWYodzwwKXt3PTA7Zm9yKHZhciBNPTA7TTwzOysrTSl7Zm9yKHZhciBBPShNKzIpJTMsUz0oTSsxKSUzLEU9LTEsTD0tMSxDPTA7QzwyOysrQyl7dmFyIFA9Qzw8TSxPPVArKEM8PEEpKygxLUM8PFMpLHo9UCsoMS1DPDxBKSsoQzw8Uyk7byhjW1BdLGNbT10sY1t6XSxoKTwwfHwoQz9FPTE6TD0xKX1pZihFPDB8fEw8MClMPkUmJih3fD0xPDxNKTtlbHNle2Zvcih2YXIgQz0wO0M8MjsrK0Mpe3ZhciBQPUM8PE0sTz1QKyhDPDxBKSsoMS1DPDxTKSx6PVArKDEtQzw8QSkrKEM8PFMpLEk9ZChbbFtQXSxsW09dLGxbel0sbFtQKygxPDxBKSsoMTw8UyldXSk7Qz9FPUk6TD1JfUw+RSYmKHd8PTE8PE0pfX19Zm9yKHZhciBEPTdedyxSPS0xLHg9MDt4PDg7Kyt4KXghPT13JiZ4IT09RCYmKFI8MD9SPXg6Y1tSXVsxXT5jW3hdWzFdJiYoUj14KSk7Zm9yKHZhciBGPS0xLHg9MDt4PDM7Kyt4KXt2YXIgQj1SXjE8PHg7aWYoQiE9PXcmJkIhPT1EKXtGPDAmJihGPUIpO3ZhciBTPWNbQl07U1swXTxjW0ZdWzBdJiYoRj1CKX19Zm9yKHZhciBOPS0xLHg9MDt4PDM7Kyt4KXt2YXIgQj1SXjE8PHg7aWYoQiE9PXcmJkIhPT1EJiZCIT09Ril7TjwwJiYoTj1CKTt2YXIgUz1jW0JdO1NbMF0+Y1tOXVswXSYmKE49Qil9fXZhciBqPWc7alswXT1qWzFdPWpbMl09MCxqW24ubG9nMihGXlIpXT1SJkYsaltuLmxvZzIoUl5OKV09UiZOO3ZhciBWPTdeTjtWPT09d3x8Vj09PUQ/KFY9N15GLGpbbi5sb2cyKE5eVildPVYmTik6altuLmxvZzIoRl5WKV09ViZGO2Zvcih2YXIgVT12LHE9dyxNPTA7TTwzOysrTSlVW01dPXEmMTw8TT8tMToxO3JldHVybiBtfTt2YXIgbj10KCJiaXQtdHdpZGRsZSIpLGE9dCgiZ2wtbWF0NC9tdWx0aXBseSIpLGk9dCgic3BsaXQtcG9seWdvbiIpLG89dCgicm9idXN0LW9yaWVudGF0aW9uIikscz1uZXcgQXJyYXkoMTYpLGw9bmV3IEFycmF5KDgpLGM9bmV3IEFycmF5KDgpLHU9bmV3IEFycmF5KDMpLGg9WzAsMCwwXTtmdW5jdGlvbiBmKHQsZSxyKXtmb3IodmFyIG49MDtuPDQ7KytuKXt0W25dPXJbMTIrbl07Zm9yKHZhciBhPTA7YTwzOysrYSl0W25dKz1lW2FdKnJbNCphK25dfX0hZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PDg7Kyt0KWxbdF09WzEsMSwxLDFdLGNbdF09WzEsMSwxXX0oKTt2YXIgcD1bWzAsMCwxLDAsMF0sWzAsMCwtMSwxLDBdLFswLC0xLDAsMSwwXSxbMCwxLDAsMSwwXSxbLTEsMCwwLDEsMF0sWzEsMCwwLDEsMF1dO2Z1bmN0aW9uIGQodCl7Zm9yKHZhciBlPTA7ZTxwLmxlbmd0aDsrK2UpaWYoKHQ9aS5wb3NpdGl2ZSh0LHBbZV0pKS5sZW5ndGg8MylyZXR1cm4gMDt2YXIgcj10WzBdLG49clswXS9yWzNdLGE9clsxXS9yWzNdLG89MDtmb3IoZT0xO2UrMTx0Lmxlbmd0aDsrK2Upe3ZhciBzPXRbZV0sbD10W2UrMV0sYz1zWzBdL3NbM10tbix1PXNbMV0vc1szXS1hLGg9bFswXS9sWzNdLW4sZj1sWzFdL2xbM10tYTtvKz1NYXRoLmFicyhjKmYtdSpoKX1yZXR1cm4gb312YXIgZz1bMSwxLDFdLHY9WzAsMCwwXSxtPXtjdWJlRWRnZXM6ZyxheGlzOnZ9fSx7ImJpdC10d2lkZGxlIjo5NCwiZ2wtbWF0NC9tdWx0aXBseSI6MjcwLCJyb2J1c3Qtb3JpZW50YXRpb24iOjUwOSwic3BsaXQtcG9seWdvbiI6NTI2fV0sMjM5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG89W10scz1bMCwwLDBdLGw9WzAsMCwwXSxjPVswLDAsMF0sdT1bMCwwLDBdO28ucHVzaCgwLDAsMSwwLDEsMSwwLDAsLTEsMCwwLC0xLDAsMSwxLDAsMSwtMSk7Zm9yKHZhciBoPTA7aDwzOysraCl7Zm9yKHZhciBmPW8ubGVuZ3RoLzN8MCxkPTA7ZDxyW2hdLmxlbmd0aDsrK2Qpe3ZhciBnPStyW2hdW2RdLng7by5wdXNoKGcsMCwxLGcsMSwxLGcsMCwtMSxnLDAsLTEsZywxLDEsZywxLC0xKX12YXIgdj1vLmxlbmd0aC8zfDA7c1toXT1mLGxbaF09di1mO2Zvcih2YXIgZj1vLmxlbmd0aC8zfDAsbT0wO208cltoXS5sZW5ndGg7KyttKXt2YXIgZz0rcltoXVttXS54O28ucHVzaChnLDAsMSxnLDEsMSxnLDAsLTEsZywwLC0xLGcsMSwxLGcsMSwtMSl9dmFyIHY9by5sZW5ndGgvM3wwO2NbaF09Zix1W2hdPXYtZn12YXIgeT1uKHQsbmV3IEZsb2F0MzJBcnJheShvKSkseD1hKHQsW3tidWZmZXI6eSx0eXBlOnQuRkxPQVQsc2l6ZTozLHN0cmlkZTowLG9mZnNldDowfV0pLGI9aSh0KTtyZXR1cm4gYi5hdHRyaWJ1dGVzLnBvc2l0aW9uLmxvY2F0aW9uPTAsbmV3IHAodCx5LHgsYixsLHMsdSxjKX07dmFyIG49dCgiZ2wtYnVmZmVyIiksYT10KCJnbC12YW8iKSxpPXQoIi4vc2hhZGVycyIpLmxpbmUsbz1bMCwwLDBdLHM9WzAsMCwwXSxsPVswLDAsMF0sYz1bMCwwLDBdLHU9WzEsMV07ZnVuY3Rpb24gaCh0KXtyZXR1cm4gdFswXT10WzFdPXRbMl09MCx0fWZ1bmN0aW9uIGYodCxlKXtyZXR1cm4gdFswXT1lWzBdLHRbMV09ZVsxXSx0WzJdPWVbMl0sdH1mdW5jdGlvbiBwKHQsZSxyLG4sYSxpLG8scyl7dGhpcy5nbD10LHRoaXMudmVydEJ1ZmZlcj1lLHRoaXMudmFvPXIsdGhpcy5zaGFkZXI9bix0aGlzLnRpY2tDb3VudD1hLHRoaXMudGlja09mZnNldD1pLHRoaXMuZ3JpZENvdW50PW8sdGhpcy5ncmlkT2Zmc2V0PXN9dmFyIGQ9cC5wcm90b3R5cGU7ZC5iaW5kPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLnNoYWRlci5iaW5kKCksdGhpcy5zaGFkZXIudW5pZm9ybXMubW9kZWw9dCx0aGlzLnNoYWRlci51bmlmb3Jtcy52aWV3PWUsdGhpcy5zaGFkZXIudW5pZm9ybXMucHJvamVjdGlvbj1yLHVbMF09dGhpcy5nbC5kcmF3aW5nQnVmZmVyV2lkdGgsdVsxXT10aGlzLmdsLmRyYXdpbmdCdWZmZXJIZWlnaHQsdGhpcy5zaGFkZXIudW5pZm9ybXMuc2NyZWVuU2hhcGU9dSx0aGlzLnZhby5iaW5kKCl9LGQudW5iaW5kPWZ1bmN0aW9uKCl7dGhpcy52YW8udW5iaW5kKCl9LGQuZHJhd0F4aXNMaW5lPWZ1bmN0aW9uKHQsZSxyLG4sYSl7dmFyIGk9aChzKTt0aGlzLnNoYWRlci51bmlmb3Jtcy5tYWpvckF4aXM9cyxpW3RdPWVbMV1bdF0tZVswXVt0XSx0aGlzLnNoYWRlci51bmlmb3Jtcy5taW5vckF4aXM9aTt2YXIgbyx1PWYoYyxyKTt1W3RdKz1lWzBdW3RdLHRoaXMuc2hhZGVyLnVuaWZvcm1zLm9mZnNldD11LHRoaXMuc2hhZGVyLnVuaWZvcm1zLmxpbmVXaWR0aD1hLHRoaXMuc2hhZGVyLnVuaWZvcm1zLmNvbG9yPW4sKG89aChsKSlbKHQrMiklM109MSx0aGlzLnNoYWRlci51bmlmb3Jtcy5zY3JlZW5BeGlzPW8sdGhpcy52YW8uZHJhdyh0aGlzLmdsLlRSSUFOR0xFUyw2KSwobz1oKGwpKVsodCsxKSUzXT0xLHRoaXMuc2hhZGVyLnVuaWZvcm1zLnNjcmVlbkF4aXM9byx0aGlzLnZhby5kcmF3KHRoaXMuZ2wuVFJJQU5HTEVTLDYpfSxkLmRyYXdBeGlzVGlja3M9ZnVuY3Rpb24odCxlLHIsbixhKXtpZih0aGlzLnRpY2tDb3VudFt0XSl7dmFyIGk9aChvKTtpW3RdPTEsdGhpcy5zaGFkZXIudW5pZm9ybXMubWFqb3JBeGlzPWksdGhpcy5zaGFkZXIudW5pZm9ybXMub2Zmc2V0PWUsdGhpcy5zaGFkZXIudW5pZm9ybXMubWlub3JBeGlzPXIsdGhpcy5zaGFkZXIudW5pZm9ybXMuY29sb3I9bix0aGlzLnNoYWRlci51bmlmb3Jtcy5saW5lV2lkdGg9YTt2YXIgcz1oKGwpO3NbdF09MSx0aGlzLnNoYWRlci51bmlmb3Jtcy5zY3JlZW5BeGlzPXMsdGhpcy52YW8uZHJhdyh0aGlzLmdsLlRSSUFOR0xFUyx0aGlzLnRpY2tDb3VudFt0XSx0aGlzLnRpY2tPZmZzZXRbdF0pfX0sZC5kcmF3R3JpZD1mdW5jdGlvbih0LGUscixuLGEsaSl7aWYodGhpcy5ncmlkQ291bnRbdF0pe3ZhciB1PWgocyk7dVtlXT1yWzFdW2VdLXJbMF1bZV0sdGhpcy5zaGFkZXIudW5pZm9ybXMubWlub3JBeGlzPXU7dmFyIHA9ZihjLG4pO3BbZV0rPXJbMF1bZV0sdGhpcy5zaGFkZXIudW5pZm9ybXMub2Zmc2V0PXA7dmFyIGQ9aChvKTtkW3RdPTEsdGhpcy5zaGFkZXIudW5pZm9ybXMubWFqb3JBeGlzPWQ7dmFyIGc9aChsKTtnW3RdPTEsdGhpcy5zaGFkZXIudW5pZm9ybXMuc2NyZWVuQXhpcz1nLHRoaXMuc2hhZGVyLnVuaWZvcm1zLmxpbmVXaWR0aD1pLHRoaXMuc2hhZGVyLnVuaWZvcm1zLmNvbG9yPWEsdGhpcy52YW8uZHJhdyh0aGlzLmdsLlRSSUFOR0xFUyx0aGlzLmdyaWRDb3VudFt0XSx0aGlzLmdyaWRPZmZzZXRbdF0pfX0sZC5kcmF3WmVybz1mdW5jdGlvbih0LGUscixuLGEsaSl7dmFyIG89aChzKTt0aGlzLnNoYWRlci51bmlmb3Jtcy5tYWpvckF4aXM9byxvW3RdPXJbMV1bdF0tclswXVt0XSx0aGlzLnNoYWRlci51bmlmb3Jtcy5taW5vckF4aXM9bzt2YXIgdT1mKGMsbik7dVt0XSs9clswXVt0XSx0aGlzLnNoYWRlci51bmlmb3Jtcy5vZmZzZXQ9dTt2YXIgcD1oKGwpO3BbZV09MSx0aGlzLnNoYWRlci51bmlmb3Jtcy5zY3JlZW5BeGlzPXAsdGhpcy5zaGFkZXIudW5pZm9ybXMubGluZVdpZHRoPWksdGhpcy5zaGFkZXIudW5pZm9ybXMuY29sb3I9YSx0aGlzLnZhby5kcmF3KHRoaXMuZ2wuVFJJQU5HTEVTLDYpfSxkLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnZhby5kaXNwb3NlKCksdGhpcy52ZXJ0QnVmZmVyLmRpc3Bvc2UoKSx0aGlzLnNoYWRlci5kaXNwb3NlKCl9fSx7Ii4vc2hhZGVycyI6MjQwLCJnbC1idWZmZXIiOjI0NCwiZ2wtdmFvIjozMjl9XSwyNDA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZ2xzbGlmeSIpLGE9dCgiZ2wtc2hhZGVyIiksaT1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzMgcG9zaXRpb247XG5cbnVuaWZvcm0gbWF0NCBtb2RlbCwgdmlldywgcHJvamVjdGlvbjtcbnVuaWZvcm0gdmVjMyBvZmZzZXQsIG1ham9yQXhpcywgbWlub3JBeGlzLCBzY3JlZW5BeGlzO1xudW5pZm9ybSBmbG9hdCBsaW5lV2lkdGg7XG51bmlmb3JtIHZlYzIgc2NyZWVuU2hhcGU7XG5cbnZlYzMgcHJvamVjdCh2ZWMzIHApIHtcbiAgdmVjNCBwcCA9IHByb2plY3Rpb24gKiB2aWV3ICogbW9kZWwgKiB2ZWM0KHAsIDEuMCk7XG4gIHJldHVybiBwcC54eXogLyBtYXgocHAudywgMC4wMDAxKTtcbn1cblxudm9pZCBtYWluKCkge1xuICB2ZWMzIG1ham9yID0gcG9zaXRpb24ueCAqIG1ham9yQXhpcztcbiAgdmVjMyBtaW5vciA9IHBvc2l0aW9uLnkgKiBtaW5vckF4aXM7XG5cbiAgdmVjMyB2UG9zaXRpb24gPSBtYWpvciArIG1pbm9yICsgb2Zmc2V0O1xuICB2ZWMzIHBQb3NpdGlvbiA9IHByb2plY3QodlBvc2l0aW9uKTtcbiAgdmVjMyBvZmZzZXQgPSBwcm9qZWN0KHZQb3NpdGlvbiArIHNjcmVlbkF4aXMgKiBwb3NpdGlvbi56KTtcblxuICB2ZWMyIHNjcmVlbiA9IG5vcm1hbGl6ZSgob2Zmc2V0IC0gcFBvc2l0aW9uKS54eSAqIHNjcmVlblNoYXBlKSAvIHNjcmVlblNoYXBlO1xuXG4gIGdsX1Bvc2l0aW9uID0gdmVjNChwUG9zaXRpb24gKyB2ZWMzKDAuNSAqIHNjcmVlbiAqIGxpbmVXaWR0aCwgMCksIDEuMCk7XG59XG4iXSksbz1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudW5pZm9ybSB2ZWM0IGNvbG9yO1xudm9pZCBtYWluKCkge1xuICBnbF9GcmFnQ29sb3IgPSBjb2xvcjtcbn0iXSk7ci5saW5lPWZ1bmN0aW9uKHQpe3JldHVybiBhKHQsaSxvLG51bGwsW3tuYW1lOiJwb3NpdGlvbiIsdHlwZToidmVjMyJ9XSl9O3ZhciBzPW4oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjtcblxudW5pZm9ybSBtYXQ0IG1vZGVsLCB2aWV3LCBwcm9qZWN0aW9uO1xudW5pZm9ybSB2ZWMzIG9mZnNldCwgYXhpcywgYWxpZ25EaXIsIGFsaWduT3B0O1xudW5pZm9ybSBmbG9hdCBzY2FsZSwgYW5nbGUsIHBpeGVsU2NhbGU7XG51bmlmb3JtIHZlYzIgcmVzb2x1dGlvbjtcblxudmVjMyBwcm9qZWN0KHZlYzMgcCkge1xuICB2ZWM0IHBwID0gcHJvamVjdGlvbiAqIHZpZXcgKiBtb2RlbCAqIHZlYzQocCwgMS4wKTtcbiAgcmV0dXJuIHBwLnh5eiAvIG1heChwcC53LCAwLjAwMDEpO1xufVxuXG5mbG9hdCBjb21wdXRlVmlld0FuZ2xlKHZlYzMgYSwgdmVjMyBiKSB7XG4gIHZlYzMgQSA9IHByb2plY3QoYSk7XG4gIHZlYzMgQiA9IHByb2plY3QoYik7XG5cbiAgcmV0dXJuIGF0YW4oXG4gICAgKEIueSAtIEEueSkgKiByZXNvbHV0aW9uLnksXG4gICAgKEIueCAtIEEueCkgKiByZXNvbHV0aW9uLnhcbiAgKTtcbn1cblxuY29uc3QgZmxvYXQgUEkgPSAzLjE0MTU5MjtcbmNvbnN0IGZsb2F0IFRXT19QSSA9IDIuMCAqIFBJO1xuY29uc3QgZmxvYXQgSEFMRl9QSSA9IDAuNSAqIFBJO1xuY29uc3QgZmxvYXQgT05FX0FORF9IQUxGX1BJID0gMS41ICogUEk7XG5cbmludCBvcHRpb24gPSBpbnQoZmxvb3IoYWxpZ25PcHQueCArIDAuMDAxKSk7XG5mbG9hdCBodl9yYXRpbyA9ICAgICAgIGFsaWduT3B0Lnk7XG5ib29sIGVuYWJsZUFsaWduID0gICAgKGFsaWduT3B0LnogIT0gMC4wKTtcblxuZmxvYXQgbW9kX2FuZ2xlKGZsb2F0IGEpIHtcbiAgcmV0dXJuIG1vZChhLCBQSSk7XG59XG5cbmZsb2F0IHBvc2l0aXZlX2FuZ2xlKGZsb2F0IGEpIHtcbiAgcmV0dXJuIG1vZF9hbmdsZSgoYSA8IDAuMCkgP1xuICAgIGEgKyBUV09fUEkgOlxuICAgIGFcbiAgKTtcbn1cblxuZmxvYXQgbG9va191cHdhcmRzKGZsb2F0IGEpIHtcbiAgZmxvYXQgYiA9IHBvc2l0aXZlX2FuZ2xlKGEpO1xuICByZXR1cm4gKChiID4gSEFMRl9QSSkgJiYgKGIgPD0gT05FX0FORF9IQUxGX1BJKSkgP1xuICAgIGIgLSBQSSA6XG4gICAgYjtcbn1cblxuZmxvYXQgbG9va19ob3Jpem9udGFsX29yX3ZlcnRpY2FsKGZsb2F0IGEsIGZsb2F0IHJhdGlvKSB7XG4gIC8vIHJhdGlvIGNvbnRyb2xzIHRoZSByYXRpbyBiZXR3ZWVuIGJlaW5nIGhvcml6b250YWwgdG8gKHZlcnRpY2FsICsgaG9yaXpvbnRhbClcbiAgLy8gaWYgcmF0aW8gaXMgc2V0IHRvIDAuNSB0aGVuIGl0IGlzIDUwJSwgNTAlLlxuICAvLyB3aGVuIHVzaW5nIGEgaGlnaGVyIHJhdGlvIGUuZy4gMC43NSB0aGUgcmVzdWx0IHdvdWxkXG4gIC8vIGxpa2VseSBiZSBtb3JlIGhvcml6b250YWwgdGhhbiB2ZXJ0aWNhbC5cblxuICBmbG9hdCBiID0gcG9zaXRpdmVfYW5nbGUoYSk7XG5cbiAgcmV0dXJuXG4gICAgKGIgPCAoICAgICAgcmF0aW8pICogSEFMRl9QSSkgPyAwLjAgOlxuICAgIChiIDwgKDIuMCAtIHJhdGlvKSAqIEhBTEZfUEkpID8gLUhBTEZfUEkgOlxuICAgIChiIDwgKDIuMCArIHJhdGlvKSAqIEhBTEZfUEkpID8gMC4wIDpcbiAgICAoYiA8ICg0LjAgLSByYXRpbykgKiBIQUxGX1BJKSA/IEhBTEZfUEkgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4wO1xufVxuXG5mbG9hdCByb3VuZFRvKGZsb2F0IGEsIGZsb2F0IGIpIHtcbiAgcmV0dXJuIGZsb2F0KGIgKiBmbG9vcigoYSArIDAuNSAqIGIpIC8gYikpO1xufVxuXG5mbG9hdCBsb29rX3JvdW5kX25fZGlyZWN0aW9ucyhmbG9hdCBhLCBpbnQgbikge1xuICBmbG9hdCBiID0gcG9zaXRpdmVfYW5nbGUoYSk7XG4gIGZsb2F0IGRpdiA9IFRXT19QSSAvIGZsb2F0KG4pO1xuICBmbG9hdCBjID0gcm91bmRUbyhiLCBkaXYpO1xuICByZXR1cm4gbG9va191cHdhcmRzKGMpO1xufVxuXG5mbG9hdCBhcHBseUFsaWduT3B0aW9uKGZsb2F0IHJhd0FuZ2xlLCBmbG9hdCBkZWx0YSkge1xuICByZXR1cm5cbiAgICAob3B0aW9uID4gIDIpID8gbG9va19yb3VuZF9uX2RpcmVjdGlvbnMocmF3QW5nbGUgKyBkZWx0YSwgb3B0aW9uKSA6ICAgICAgIC8vIG9wdGlvbiAzLW46IHJvdW5kIHRvIG4gZGlyZWN0aW9uc1xuICAgIChvcHRpb24gPT0gMikgPyBsb29rX2hvcml6b250YWxfb3JfdmVydGljYWwocmF3QW5nbGUgKyBkZWx0YSwgaHZfcmF0aW8pIDogLy8gaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbFxuICAgIChvcHRpb24gPT0gMSkgPyByYXdBbmdsZSArIGRlbHRhIDogICAgICAgLy8gdXNlIGZyZWUgYW5nbGUsIGFuZCBmbGlwIHRvIGFsaWduIHdpdGggb25lIGRpcmVjdGlvbiBvZiB0aGUgYXhpc1xuICAgIChvcHRpb24gPT0gMCkgPyBsb29rX3Vwd2FyZHMocmF3QW5nbGUpIDogLy8gdXNlIGZyZWUgYW5nbGUsIGFuZCBzdGF5IHVwd2FyZHNcbiAgICAob3B0aW9uID09LTEpID8gMC4wIDogICAgICAgICAgICAgICAgICAgIC8vIHVzZWZ1bCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSwgYWxsIHRleHRzIHJlbWFpbnMgaG9yaXpvbnRhbFxuICAgICAgICAgICAgICAgICAgICByYXdBbmdsZTsgICAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIHJldHVybiBiYWNrIHJhdyBpbnB1dCBhbmdsZVxufVxuXG5ib29sIGlzQXhpc1RpdGxlID0gKGF4aXMueCA9PSAwLjApICYmXG4gICAgICAgICAgICAgICAgICAgKGF4aXMueSA9PSAwLjApICYmXG4gICAgICAgICAgICAgICAgICAgKGF4aXMueiA9PSAwLjApO1xuXG52b2lkIG1haW4oKSB7XG4gIC8vQ29tcHV0ZSB3b3JsZCBvZmZzZXRcbiAgZmxvYXQgYXhpc0Rpc3RhbmNlID0gcG9zaXRpb24uejtcbiAgdmVjMyBkYXRhUG9zaXRpb24gPSBheGlzRGlzdGFuY2UgKiBheGlzICsgb2Zmc2V0O1xuXG4gIGZsb2F0IGJldGEgPSBhbmdsZTsgLy8gaS5lLiB1c2VyIGRlZmluZWQgYXR0cmlidXRlcyBmb3IgZWFjaCB0aWNrXG5cbiAgZmxvYXQgYXhpc0FuZ2xlO1xuICBmbG9hdCBjbGlwQW5nbGU7XG4gIGZsb2F0IGZsaXA7XG5cbiAgaWYgKGVuYWJsZUFsaWduKSB7XG4gICAgYXhpc0FuZ2xlID0gKGlzQXhpc1RpdGxlKSA/IEhBTEZfUEkgOlxuICAgICAgICAgICAgICAgICAgICAgIGNvbXB1dGVWaWV3QW5nbGUoZGF0YVBvc2l0aW9uLCBkYXRhUG9zaXRpb24gKyBheGlzKTtcbiAgICBjbGlwQW5nbGUgPSBjb21wdXRlVmlld0FuZ2xlKGRhdGFQb3NpdGlvbiwgZGF0YVBvc2l0aW9uICsgYWxpZ25EaXIpO1xuXG4gICAgYXhpc0FuZ2xlICs9IChzaW4oYXhpc0FuZ2xlKSA8IDAuMCkgPyBQSSA6IDAuMDtcbiAgICBjbGlwQW5nbGUgKz0gKHNpbihjbGlwQW5nbGUpIDwgMC4wKSA/IFBJIDogMC4wO1xuXG4gICAgZmxpcCA9IChkb3QodmVjMihjb3MoYXhpc0FuZ2xlKSwgc2luKGF4aXNBbmdsZSkpLFxuICAgICAgICAgICAgICAgIHZlYzIoc2luKGNsaXBBbmdsZSksLWNvcyhjbGlwQW5nbGUpKSkgPiAwLjApID8gMS4wIDogMC4wO1xuXG4gICAgYmV0YSArPSBhcHBseUFsaWduT3B0aW9uKGNsaXBBbmdsZSwgZmxpcCAqIFBJKTtcbiAgfVxuXG4gIC8vQ29tcHV0ZSBwbGFuZSBvZmZzZXRcbiAgdmVjMiBwbGFuZUNvb3JkID0gcG9zaXRpb24ueHkgKiBwaXhlbFNjYWxlO1xuXG4gIG1hdDIgcGxhbmVYZm9ybSA9IHNjYWxlICogbWF0MihcbiAgICAgY29zKGJldGEpLCBzaW4oYmV0YSksXG4gICAgLXNpbihiZXRhKSwgY29zKGJldGEpXG4gICk7XG5cbiAgdmVjMiB2aWV3T2Zmc2V0ID0gMi4wICogcGxhbmVYZm9ybSAqIHBsYW5lQ29vcmQgLyByZXNvbHV0aW9uO1xuXG4gIC8vQ29tcHV0ZSBjbGlwIHBvc2l0aW9uXG4gIHZlYzMgY2xpcFBvc2l0aW9uID0gcHJvamVjdChkYXRhUG9zaXRpb24pO1xuXG4gIC8vQXBwbHkgdGV4dCBvZmZzZXQgaW4gY2xpcCBjb29yZGluYXRlc1xuICBjbGlwUG9zaXRpb24gKz0gdmVjMyh2aWV3T2Zmc2V0LCAwLjApO1xuXG4gIC8vRG9uZVxuICBnbF9Qb3NpdGlvbiA9IHZlYzQoY2xpcFBvc2l0aW9uLCAxLjApO1xufSJdKSxsPW4oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG51bmlmb3JtIHZlYzQgY29sb3I7XG52b2lkIG1haW4oKSB7XG4gIGdsX0ZyYWdDb2xvciA9IGNvbG9yO1xufSJdKTtyLnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGEodCxzLGwsbnVsbCxbe25hbWU6InBvc2l0aW9uIix0eXBlOiJ2ZWMzIn1dKX07dmFyIGM9bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uO1xuYXR0cmlidXRlIHZlYzMgbm9ybWFsO1xuXG51bmlmb3JtIG1hdDQgbW9kZWwsIHZpZXcsIHByb2plY3Rpb247XG51bmlmb3JtIHZlYzMgZW5hYmxlO1xudW5pZm9ybSB2ZWMzIGJvdW5kc1syXTtcblxudmFyeWluZyB2ZWMzIGNvbG9yQ2hhbm5lbDtcblxudm9pZCBtYWluKCkge1xuXG4gIHZlYzMgc2lnbkF4aXMgPSBzaWduKGJvdW5kc1sxXSAtIGJvdW5kc1swXSk7XG5cbiAgdmVjMyByZWFsTm9ybWFsID0gc2lnbkF4aXMgKiBub3JtYWw7XG5cbiAgaWYoZG90KHJlYWxOb3JtYWwsIGVuYWJsZSkgPiAwLjApIHtcbiAgICB2ZWMzIG1pblJhbmdlID0gbWluKGJvdW5kc1swXSwgYm91bmRzWzFdKTtcbiAgICB2ZWMzIG1heFJhbmdlID0gbWF4KGJvdW5kc1swXSwgYm91bmRzWzFdKTtcbiAgICB2ZWMzIG5Qb3NpdGlvbiA9IG1peChtaW5SYW5nZSwgbWF4UmFuZ2UsIDAuNSAqIChwb3NpdGlvbiArIDEuMCkpO1xuICAgIGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbiAqIHZpZXcgKiBtb2RlbCAqIHZlYzQoblBvc2l0aW9uLCAxLjApO1xuICB9IGVsc2Uge1xuICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgwLDAsMCwwKTtcbiAgfVxuXG4gIGNvbG9yQ2hhbm5lbCA9IGFicyhyZWFsTm9ybWFsKTtcbn0iXSksdT1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudW5pZm9ybSB2ZWM0IGNvbG9yc1szXTtcblxudmFyeWluZyB2ZWMzIGNvbG9yQ2hhbm5lbDtcblxudm9pZCBtYWluKCkge1xuICBnbF9GcmFnQ29sb3IgPSBjb2xvckNoYW5uZWwueCAqIGNvbG9yc1swXSArXG4gICAgICAgICAgICAgICAgIGNvbG9yQ2hhbm5lbC55ICogY29sb3JzWzFdICtcbiAgICAgICAgICAgICAgICAgY29sb3JDaGFubmVsLnogKiBjb2xvcnNbMl07XG59Il0pO3IuYmc9ZnVuY3Rpb24odCl7cmV0dXJuIGEodCxjLHUsbnVsbCxbe25hbWU6InBvc2l0aW9uIix0eXBlOiJ2ZWMzIn0se25hbWU6Im5vcm1hbCIsdHlwZToidmVjMyJ9XSl9fSx7ImdsLXNoYWRlciI6MzA0LGdsc2xpZnk6NDExfV0sMjQxOltmdW5jdGlvbih0LGUscil7KGZ1bmN0aW9uKHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaSxzLGwpe3ZhciB1PW4odCksaD1hKHQsW3tidWZmZXI6dSxzaXplOjN9XSksZj1vKHQpO2YuYXR0cmlidXRlcy5wb3NpdGlvbi5sb2NhdGlvbj0wO3ZhciBwPW5ldyBjKHQsZix1LGgpO3JldHVybiBwLnVwZGF0ZShlLHIsaSxzLGwpLHB9O3ZhciBuPXQoImdsLWJ1ZmZlciIpLGE9dCgiZ2wtdmFvIiksaT10KCJ2ZWN0b3JpemUtdGV4dCIpLG89dCgiLi9zaGFkZXJzIikudGV4dCxzPXdpbmRvd3x8ci5nbG9iYWx8fHt9LGw9cy5fX1RFWFRfQ0FDSEV8fHt9O3MuX19URVhUX0NBQ0hFPXt9O2Z1bmN0aW9uIGModCxlLHIsbil7dGhpcy5nbD10LHRoaXMuc2hhZGVyPWUsdGhpcy5idWZmZXI9cix0aGlzLnZhbz1uLHRoaXMudGlja09mZnNldD10aGlzLnRpY2tDb3VudD10aGlzLmxhYmVsT2Zmc2V0PXRoaXMubGFiZWxDb3VudD1udWxsfXZhciB1PWMucHJvdG90eXBlLGg9WzAsMF07dS5iaW5kPWZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMudmFvLmJpbmQoKSx0aGlzLnNoYWRlci5iaW5kKCk7dmFyIGE9dGhpcy5zaGFkZXIudW5pZm9ybXM7YS5tb2RlbD10LGEudmlldz1lLGEucHJvamVjdGlvbj1yLGEucGl4ZWxTY2FsZT1uLGhbMF09dGhpcy5nbC5kcmF3aW5nQnVmZmVyV2lkdGgsaFsxXT10aGlzLmdsLmRyYXdpbmdCdWZmZXJIZWlnaHQsdGhpcy5zaGFkZXIudW5pZm9ybXMucmVzb2x1dGlvbj1ofSx1LnVuYmluZD1mdW5jdGlvbigpe3RoaXMudmFvLnVuYmluZCgpfSx1LnVwZGF0ZT1mdW5jdGlvbih0LGUscixuLGEpe3ZhciBvPVtdO2Z1bmN0aW9uIHModCxlLHIsbixhLHMpe3ZhciBjPWxbcl07Y3x8KGM9bFtyXT17fSk7dmFyIHU9Y1tlXTt1fHwodT1jW2VdPWZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiBpKHQsZSl9Y2F0Y2goZSl7cmV0dXJuIGNvbnNvbGUud2FybignZXJyb3IgdmVjdG9yaXppbmcgdGV4dDoiJyt0KyciIGVycm9yOicsZSkse2NlbGxzOltdLHBvc2l0aW9uczpbXX19fShlLHt0cmlhbmdsZXM6ITAsZm9udDpyLHRleHRBbGlnbjoiY2VudGVyIix0ZXh0QmFzZWxpbmU6Im1pZGRsZSIsbGluZVNwYWNpbmc6YSxzdHlsZXRhZ3M6c30pKTtmb3IodmFyIGg9KG58fDEyKS8xMixmPXUucG9zaXRpb25zLHA9dS5jZWxscyxkPTAsZz1wLmxlbmd0aDtkPGc7KytkKWZvcih2YXIgdj1wW2RdLG09MjttPj0wOy0tbSl7dmFyIHk9Zlt2W21dXTtvLnB1c2goaCp5WzBdLC1oKnlbMV0sdCl9fWZvcih2YXIgYz1bMCwwLDBdLHU9WzAsMCwwXSxoPVswLDAsMF0sZj1bMCwwLDBdLHA9e2JyZWFrbGluZXM6ITAsYm9sZHM6ITAsaXRhbGljczohMCxzdWJzY3JpcHRzOiEwLHN1cGVyc2NyaXB0czohMH0sZD0wO2Q8MzsrK2Qpe2hbZF09by5sZW5ndGgvM3wwLHMoLjUqKHRbMF1bZF0rdFsxXVtkXSksZVtkXSxyW2RdLDEyLDEuMjUscCksZltkXT0oby5sZW5ndGgvM3wwKS1oW2RdLGNbZF09by5sZW5ndGgvM3wwO2Zvcih2YXIgZz0wO2c8bltkXS5sZW5ndGg7KytnKW5bZF1bZ10udGV4dCYmcyhuW2RdW2ddLngsbltkXVtnXS50ZXh0LG5bZF1bZ10uZm9udHx8YSxuW2RdW2ddLmZvbnRTaXplfHwxMiwxLjI1LHApO3VbZF09KG8ubGVuZ3RoLzN8MCktY1tkXX10aGlzLmJ1ZmZlci51cGRhdGUobyksdGhpcy50aWNrT2Zmc2V0PWMsdGhpcy50aWNrQ291bnQ9dSx0aGlzLmxhYmVsT2Zmc2V0PWgsdGhpcy5sYWJlbENvdW50PWZ9LHUuZHJhd1RpY2tzPWZ1bmN0aW9uKHQsZSxyLG4sYSxpLG8scyl7dGhpcy50aWNrQ291bnRbdF0mJih0aGlzLnNoYWRlci51bmlmb3Jtcy5heGlzPWksdGhpcy5zaGFkZXIudW5pZm9ybXMuY29sb3I9YSx0aGlzLnNoYWRlci51bmlmb3Jtcy5hbmdsZT1yLHRoaXMuc2hhZGVyLnVuaWZvcm1zLnNjYWxlPWUsdGhpcy5zaGFkZXIudW5pZm9ybXMub2Zmc2V0PW4sdGhpcy5zaGFkZXIudW5pZm9ybXMuYWxpZ25EaXI9byx0aGlzLnNoYWRlci51bmlmb3Jtcy5hbGlnbk9wdD1zLHRoaXMudmFvLmRyYXcodGhpcy5nbC5UUklBTkdMRVMsdGhpcy50aWNrQ291bnRbdF0sdGhpcy50aWNrT2Zmc2V0W3RdKSl9LHUuZHJhd0xhYmVsPWZ1bmN0aW9uKHQsZSxyLG4sYSxpLG8scyl7dGhpcy5sYWJlbENvdW50W3RdJiYodGhpcy5zaGFkZXIudW5pZm9ybXMuYXhpcz1pLHRoaXMuc2hhZGVyLnVuaWZvcm1zLmNvbG9yPWEsdGhpcy5zaGFkZXIudW5pZm9ybXMuYW5nbGU9cix0aGlzLnNoYWRlci51bmlmb3Jtcy5zY2FsZT1lLHRoaXMuc2hhZGVyLnVuaWZvcm1zLm9mZnNldD1uLHRoaXMuc2hhZGVyLnVuaWZvcm1zLmFsaWduRGlyPW8sdGhpcy5zaGFkZXIudW5pZm9ybXMuYWxpZ25PcHQ9cyx0aGlzLnZhby5kcmF3KHRoaXMuZ2wuVFJJQU5HTEVTLHRoaXMubGFiZWxDb3VudFt0XSx0aGlzLmxhYmVsT2Zmc2V0W3RdKSl9LHUuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuc2hhZGVyLmRpc3Bvc2UoKSx0aGlzLnZhby5kaXNwb3NlKCksdGhpcy5idWZmZXIuZGlzcG9zZSgpfX0pLmNhbGwodGhpcyx0KCJfcHJvY2VzcyIpKX0seyIuL3NoYWRlcnMiOjI0MCxfcHJvY2Vzczo0ODQsImdsLWJ1ZmZlciI6MjQ0LCJnbC12YW8iOjMyOSwidmVjdG9yaXplLXRleHQiOjU0OX1dLDI0MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7dmFyIHI9dCsiIixuPXIuaW5kZXhPZigiLiIpLGE9MDtuPj0wJiYoYT1yLmxlbmd0aC1uLTEpO3ZhciBpPU1hdGgucG93KDEwLGEpLG89TWF0aC5yb3VuZCh0KmUqaSkscz1vKyIiO2lmKHMuaW5kZXhPZigiZSIpPj0wKXJldHVybiBzO3ZhciBsPW8vaSxjPW8laTtvPDA/KGw9MHwtTWF0aC5jZWlsKGwpLGM9MHwtYyk6KGw9MHxNYXRoLmZsb29yKGwpLGN8PTApO3ZhciB1PSIiK2w7aWYobzwwJiYodT0iLSIrdSksYSl7Zm9yKHZhciBoPSIiK2M7aC5sZW5ndGg8YTspaD0iMCIraDtyZXR1cm4gdSsiLiIraH1yZXR1cm4gdX1yLmNyZWF0ZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1bXSxhPTA7YTwzOysrYSl7Zm9yKHZhciBpPVtdLG89KHRbMF1bYV0sdFsxXVthXSwwKTtvKmVbYV08PXRbMV1bYV07KytvKWkucHVzaCh7eDpvKmVbYV0sdGV4dDpuKGVbYV0sbyl9KTtmb3IodmFyIG89LTE7byplW2FdPj10WzBdW2FdOy0tbylpLnB1c2goe3g6byplW2FdLHRleHQ6bihlW2FdLG8pfSk7ci5wdXNoKGkpfXJldHVybiByfSxyLmVxdWFsPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTA7cjwzOysrcil7aWYodFtyXS5sZW5ndGghPT1lW3JdLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIG49MDtuPHRbcl0ubGVuZ3RoOysrbil7dmFyIGE9dFtyXVtuXSxpPWVbcl1bbl07aWYoYS54IT09aS54fHxhLnRleHQhPT1pLnRleHR8fGEuZm9udCE9PWkuZm9udHx8YS5mb250Q29sb3IhPT1pLmZvbnRDb2xvcnx8YS5mb250U2l6ZSE9PWkuZm9udFNpemV8fGEuZHghPT1pLmR4fHxhLmR5IT09aS5keSlyZXR1cm4hMX19cmV0dXJuITB9fSx7fV0sMjQzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixsLGgpe3ZhciBmPWUubW9kZWx8fGMscD1lLnZpZXd8fGMsbT1lLnByb2plY3Rpb258fGMseT1lLl9vcnRob3x8ITEseD10LmJvdW5kcyxiPShoPWh8fGkoZixwLG0seCx5KSkuYXhpcztvKHUscCxmKSxvKHUsbSx1KTtmb3IodmFyIF89Zyx3PTA7dzwzOysrdylfW3ddLmxvPTEvMCxfW3ddLmhpPS0xLzAsX1t3XS5waXhlbHNQZXJEYXRhVW5pdD0xLzA7dmFyIGs9bihzKHUsdSkpO3ModSx1KTtmb3IodmFyIFQ9MDtUPDM7KytUKXt2YXIgTT0oVCsxKSUzLEE9KFQrMiklMyxTPXY7dDpmb3IodmFyIHc9MDt3PDI7Kyt3KXt2YXIgRT1bXTtpZihiW1RdPDAhPSEhdyl7U1tUXT14W3ddW1RdO2Zvcih2YXIgTD0wO0w8MjsrK0wpe1NbTV09eFtMXnddW01dO2Zvcih2YXIgQz0wO0M8MjsrK0MpU1tBXT14W0NeTF53XVtBXSxFLnB1c2goUy5zbGljZSgpKX1mb3IodmFyIFA9eT81OjQsTD1QO0w9PT1QOysrTCl7aWYoMD09PUUubGVuZ3RoKWNvbnRpbnVlIHQ7RT1hLnBvc2l0aXZlKEUsa1tMXSl9Zm9yKHZhciBMPTA7TDxFLmxlbmd0aDsrK0wpZm9yKHZhciBBPUVbTF0sTz1kKHYsdSxBLHIsbCksQz0wO0M8MzsrK0MpX1tDXS5sbz1NYXRoLm1pbihfW0NdLmxvLEFbQ10pLF9bQ10uaGk9TWF0aC5tYXgoX1tDXS5oaSxBW0NdKSxDIT09VCYmKF9bQ10ucGl4ZWxzUGVyRGF0YVVuaXQ9TWF0aC5taW4oX1tDXS5waXhlbHNQZXJEYXRhVW5pdCxNYXRoLmFicyhPW0NdKSkpfX19cmV0dXJuIF99O3ZhciBuPXQoImV4dHJhY3QtZnJ1c3R1bS1wbGFuZXMiKSxhPXQoInNwbGl0LXBvbHlnb24iKSxpPXQoIi4vbGliL2N1YmUuanMiKSxvPXQoImdsLW1hdDQvbXVsdGlwbHkiKSxzPXQoImdsLW1hdDQvdHJhbnNwb3NlIiksbD10KCJnbC12ZWM0L3RyYW5zZm9ybU1hdDQiKSxjPW5ldyBGbG9hdDMyQXJyYXkoWzEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLDAsMCwwLDFdKSx1PW5ldyBGbG9hdDMyQXJyYXkoMTYpO2Z1bmN0aW9uIGgodCxlLHIpe3RoaXMubG89dCx0aGlzLmhpPWUsdGhpcy5waXhlbHNQZXJEYXRhVW5pdD1yfXZhciBmPVswLDAsMCwxXSxwPVswLDAsMCwxXTtmdW5jdGlvbiBkKHQsZSxyLG4sYSl7Zm9yKHZhciBpPTA7aTwzOysraSl7Zm9yKHZhciBvPWYscz1wLGM9MDtjPDM7KytjKXNbY109b1tjXT1yW2NdO3NbM109b1szXT0xLHNbaV0rPTEsbChzLHMsZSksc1szXTwwJiYodFtpXT0xLzApLG9baV0tPTEsbChvLG8sZSksb1szXTwwJiYodFtpXT0xLzApO3ZhciB1PShvWzBdL29bM10tc1swXS9zWzNdKSpuLGg9KG9bMV0vb1szXS1zWzFdL3NbM10pKmE7dFtpXT0uMjUqTWF0aC5zcXJ0KHUqdStoKmgpfXJldHVybiB0fXZhciBnPVtuZXcgaCgxLzAsLTEvMCwxLzApLG5ldyBoKDEvMCwtMS8wLDEvMCksbmV3IGgoMS8wLC0xLzAsMS8wKV0sdj1bMCwwLDBdfSx7Ii4vbGliL2N1YmUuanMiOjIzOCwiZXh0cmFjdC1mcnVzdHVtLXBsYW5lcyI6MjI3LCJnbC1tYXQ0L211bHRpcGx5IjoyNzAsImdsLW1hdDQvdHJhbnNwb3NlIjoyNzksImdsLXZlYzQvdHJhbnNmb3JtTWF0NCI6NDAwLCJzcGxpdC1wb2x5Z29uIjo1MjZ9XSwyNDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgidHlwZWRhcnJheS1wb29sIiksYT10KCJuZGFycmF5LW9wcyIpLGk9dCgibmRhcnJheSIpLG89WyJ1aW50OCIsInVpbnQ4X2NsYW1wZWQiLCJ1aW50MTYiLCJ1aW50MzIiLCJpbnQ4IiwiaW50MTYiLCJpbnQzMiIsImZsb2F0MzIiXTtmdW5jdGlvbiBzKHQsZSxyLG4sYSl7dGhpcy5nbD10LHRoaXMudHlwZT1lLHRoaXMuaGFuZGxlPXIsdGhpcy5sZW5ndGg9bix0aGlzLnVzYWdlPWF9dmFyIGw9cy5wcm90b3R5cGU7ZnVuY3Rpb24gYyh0LGUscixuLGEsaSl7dmFyIG89YS5sZW5ndGgqYS5CWVRFU19QRVJfRUxFTUVOVDtpZihpPDApcmV0dXJuIHQuYnVmZmVyRGF0YShlLGEsbiksbztpZihvK2k+cil0aHJvdyBuZXcgRXJyb3IoImdsLWJ1ZmZlcjogSWYgcmVzaXppbmcgYnVmZmVyLCBtdXN0IG5vdCBzcGVjaWZ5IG9mZnNldCIpO3JldHVybiB0LmJ1ZmZlclN1YkRhdGEoZSxpLGEpLHJ9ZnVuY3Rpb24gdSh0LGUpe2Zvcih2YXIgcj1uLm1hbGxvYyh0Lmxlbmd0aCxlKSxhPXQubGVuZ3RoLGk9MDtpPGE7KytpKXJbaV09dFtpXTtyZXR1cm4gcn1sLmJpbmQ9ZnVuY3Rpb24oKXt0aGlzLmdsLmJpbmRCdWZmZXIodGhpcy50eXBlLHRoaXMuaGFuZGxlKX0sbC51bmJpbmQ9ZnVuY3Rpb24oKXt0aGlzLmdsLmJpbmRCdWZmZXIodGhpcy50eXBlLG51bGwpfSxsLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLmdsLmRlbGV0ZUJ1ZmZlcih0aGlzLmhhbmRsZSl9LGwudXBkYXRlPWZ1bmN0aW9uKHQsZSl7aWYoIm51bWJlciIhPXR5cGVvZiBlJiYoZT0tMSksdGhpcy5iaW5kKCksIm9iamVjdCI9PXR5cGVvZiB0JiYidW5kZWZpbmVkIiE9dHlwZW9mIHQuc2hhcGUpe3ZhciByPXQuZHR5cGU7aWYoby5pbmRleE9mKHIpPDAmJihyPSJmbG9hdDMyIiksdGhpcy50eXBlPT09dGhpcy5nbC5FTEVNRU5UX0FSUkFZX0JVRkZFUilyPWdsLmdldEV4dGVuc2lvbigiT0VTX2VsZW1lbnRfaW5kZXhfdWludCIpJiYidWludDE2IiE9PXI/InVpbnQzMiI6InVpbnQxNiI7aWYocj09PXQuZHR5cGUmJmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTEsbj1lLmxlbmd0aC0xO24+PTA7LS1uKXtpZihlW25dIT09cilyZXR1cm4hMTtyKj10W25dfXJldHVybiEwfSh0LnNoYXBlLHQuc3RyaWRlKSkwPT09dC5vZmZzZXQmJnQuZGF0YS5sZW5ndGg9PT10LnNoYXBlWzBdP3RoaXMubGVuZ3RoPWModGhpcy5nbCx0aGlzLnR5cGUsdGhpcy5sZW5ndGgsdGhpcy51c2FnZSx0LmRhdGEsZSk6dGhpcy5sZW5ndGg9Yyh0aGlzLmdsLHRoaXMudHlwZSx0aGlzLmxlbmd0aCx0aGlzLnVzYWdlLHQuZGF0YS5zdWJhcnJheSh0Lm9mZnNldCx0LnNoYXBlWzBdKSxlKTtlbHNle3ZhciBzPW4ubWFsbG9jKHQuc2l6ZSxyKSxsPWkocyx0LnNoYXBlKTthLmFzc2lnbihsLHQpLHRoaXMubGVuZ3RoPWModGhpcy5nbCx0aGlzLnR5cGUsdGhpcy5sZW5ndGgsdGhpcy51c2FnZSxlPDA/czpzLnN1YmFycmF5KDAsdC5zaXplKSxlKSxuLmZyZWUocyl9fWVsc2UgaWYoQXJyYXkuaXNBcnJheSh0KSl7dmFyIGg7aD10aGlzLnR5cGU9PT10aGlzLmdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSP3UodCwidWludDE2Iik6dSh0LCJmbG9hdDMyIiksdGhpcy5sZW5ndGg9Yyh0aGlzLmdsLHRoaXMudHlwZSx0aGlzLmxlbmd0aCx0aGlzLnVzYWdlLGU8MD9oOmguc3ViYXJyYXkoMCx0Lmxlbmd0aCksZSksbi5mcmVlKGgpfWVsc2UgaWYoIm9iamVjdCI9PXR5cGVvZiB0JiYibnVtYmVyIj09dHlwZW9mIHQubGVuZ3RoKXRoaXMubGVuZ3RoPWModGhpcy5nbCx0aGlzLnR5cGUsdGhpcy5sZW5ndGgsdGhpcy51c2FnZSx0LGUpO2Vsc2V7aWYoIm51bWJlciIhPXR5cGVvZiB0JiZ2b2lkIDAhPT10KXRocm93IG5ldyBFcnJvcigiZ2wtYnVmZmVyOiBJbnZhbGlkIGRhdGEgdHlwZSIpO2lmKGU+PTApdGhyb3cgbmV3IEVycm9yKCJnbC1idWZmZXI6IENhbm5vdCBzcGVjaWZ5IG9mZnNldCB3aGVuIHJlc2l6aW5nIGJ1ZmZlciIpOyh0fD0wKTw9MCYmKHQ9MSksdGhpcy5nbC5idWZmZXJEYXRhKHRoaXMudHlwZSwwfHQsdGhpcy51c2FnZSksdGhpcy5sZW5ndGg9dH19LGUuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuKXtpZihyPXJ8fHQuQVJSQVlfQlVGRkVSLG49bnx8dC5EWU5BTUlDX0RSQVcsciE9PXQuQVJSQVlfQlVGRkVSJiZyIT09dC5FTEVNRU5UX0FSUkFZX0JVRkZFUil0aHJvdyBuZXcgRXJyb3IoImdsLWJ1ZmZlcjogSW52YWxpZCB0eXBlIGZvciB3ZWJnbCBidWZmZXIsIG11c3QgYmUgZWl0aGVyIGdsLkFSUkFZX0JVRkZFUiBvciBnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiIpO2lmKG4hPT10LkRZTkFNSUNfRFJBVyYmbiE9PXQuU1RBVElDX0RSQVcmJm4hPT10LlNUUkVBTV9EUkFXKXRocm93IG5ldyBFcnJvcigiZ2wtYnVmZmVyOiBJbnZhbGlkIHVzYWdlIGZvciBidWZmZXIsIG11c3QgYmUgZWl0aGVyIGdsLkRZTkFNSUNfRFJBVywgZ2wuU1RBVElDX0RSQVcgb3IgZ2wuU1RSRUFNX0RSQVciKTt2YXIgYT10LmNyZWF0ZUJ1ZmZlcigpLGk9bmV3IHModCxyLGEsMCxuKTtyZXR1cm4gaS51cGRhdGUoZSksaX19LHtuZGFycmF5OjQ1MiwibmRhcnJheS1vcHMiOjQ0NiwidHlwZWRhcnJheS1wb29sIjo1NDR9XSwyNDU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZ2wtdmVjMyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQucG9zaXRpb25zLGE9dC52ZWN0b3JzLGk9e3Bvc2l0aW9uczpbXSx2ZXJ0ZXhJbnRlbnNpdHk6W10sdmVydGV4SW50ZW5zaXR5Qm91bmRzOnQudmVydGV4SW50ZW5zaXR5Qm91bmRzLHZlY3RvcnM6W10sY2VsbHM6W10sY29uZU9mZnNldDp0LmNvbmVPZmZzZXQsY29sb3JtYXA6dC5jb2xvcm1hcH07aWYoMD09PXQucG9zaXRpb25zLmxlbmd0aClyZXR1cm4gZSYmKGVbMF09WzAsMCwwXSxlWzFdPVswLDAsMF0pLGk7Zm9yKHZhciBvPTAscz0xLzAsbD0tMS8wLGM9MS8wLHU9LTEvMCxoPTEvMCxmPS0xLzAscD1udWxsLGQ9bnVsbCxnPVtdLHY9MS8wLG09ITEseT0wO3k8ci5sZW5ndGg7eSsrKXt2YXIgeD1yW3ldO3M9TWF0aC5taW4oeFswXSxzKSxsPU1hdGgubWF4KHhbMF0sbCksYz1NYXRoLm1pbih4WzFdLGMpLHU9TWF0aC5tYXgoeFsxXSx1KSxoPU1hdGgubWluKHhbMl0saCksZj1NYXRoLm1heCh4WzJdLGYpO3ZhciBiPWFbeV07aWYobi5sZW5ndGgoYik+byYmKG89bi5sZW5ndGgoYikpLHkpe3ZhciBfPTIqbi5kaXN0YW5jZShwLHgpLyhuLmxlbmd0aChkKStuLmxlbmd0aChiKSk7Xz8odj1NYXRoLm1pbih2LF8pLG09ITEpOm09ITB9bXx8KHA9eCxkPWIpLGcucHVzaChiKX12YXIgdz1bcyxjLGhdLGs9W2wsdSxmXTtlJiYoZVswXT13LGVbMV09ayksMD09PW8mJihvPTEpO3ZhciBUPTEvbztpc0Zpbml0ZSh2KXx8KHY9MSksaS52ZWN0b3JTY2FsZT12O3ZhciBNPXQuY29uZVNpemV8fC41O3QuYWJzb2x1dGVDb25lU2l6ZSYmKE09dC5hYnNvbHV0ZUNvbmVTaXplKlQpLGkuY29uZVNjYWxlPU07eT0wO2Zvcih2YXIgQT0wO3k8ci5sZW5ndGg7eSsrKWZvcih2YXIgUz0oeD1yW3ldKVswXSxFPXhbMV0sTD14WzJdLEM9Z1t5XSxQPW4ubGVuZ3RoKEMpKlQsTz0wO088ODtPKyspe2kucG9zaXRpb25zLnB1c2goW1MsRSxMLEErK10pLGkucG9zaXRpb25zLnB1c2goW1MsRSxMLEErK10pLGkucG9zaXRpb25zLnB1c2goW1MsRSxMLEErK10pLGkucG9zaXRpb25zLnB1c2goW1MsRSxMLEErK10pLGkucG9zaXRpb25zLnB1c2goW1MsRSxMLEErK10pLGkucG9zaXRpb25zLnB1c2goW1MsRSxMLEErK10pLGkudmVjdG9ycy5wdXNoKEMpLGkudmVjdG9ycy5wdXNoKEMpLGkudmVjdG9ycy5wdXNoKEMpLGkudmVjdG9ycy5wdXNoKEMpLGkudmVjdG9ycy5wdXNoKEMpLGkudmVjdG9ycy5wdXNoKEMpLGkudmVydGV4SW50ZW5zaXR5LnB1c2goUCxQLFApLGkudmVydGV4SW50ZW5zaXR5LnB1c2goUCxQLFApO3ZhciB6PWkucG9zaXRpb25zLmxlbmd0aDtpLmNlbGxzLnB1c2goW3otNix6LTUsei00XSxbei0zLHotMix6LTFdKX1yZXR1cm4gaX07dmFyIGE9dCgiLi9saWIvc2hhZGVycyIpO2UuZXhwb3J0cy5jcmVhdGVNZXNoPXQoIi4vY3JlYXRlX21lc2giKSxlLmV4cG9ydHMuY3JlYXRlQ29uZU1lc2g9ZnVuY3Rpb24odCxyKXtyZXR1cm4gZS5leHBvcnRzLmNyZWF0ZU1lc2godCxyLHtzaGFkZXJzOmEsdHJhY2VUeXBlOiJjb25lIn0pfX0seyIuL2NyZWF0ZV9tZXNoIjoyNDYsIi4vbGliL3NoYWRlcnMiOjI0NywiZ2wtdmVjMyI6MzQ4fV0sMjQ2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImdsLXNoYWRlciIpLGE9dCgiZ2wtYnVmZmVyIiksaT10KCJnbC12YW8iKSxvPXQoImdsLXRleHR1cmUyZCIpLHM9dCgiZ2wtbWF0NC9tdWx0aXBseSIpLGw9dCgiZ2wtbWF0NC9pbnZlcnQiKSxjPXQoIm5kYXJyYXkiKSx1PXQoImNvbG9ybWFwIiksaD1bMSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMV07ZnVuY3Rpb24gZih0LGUscixuLGEsaSxvLHMsbCxjLHUpe3RoaXMuZ2w9dCx0aGlzLnBpeGVsUmF0aW89MSx0aGlzLmNlbGxzPVtdLHRoaXMucG9zaXRpb25zPVtdLHRoaXMuaW50ZW5zaXR5PVtdLHRoaXMudGV4dHVyZT1lLHRoaXMuZGlydHk9ITAsdGhpcy50cmlTaGFkZXI9cix0aGlzLnBpY2tTaGFkZXI9bix0aGlzLnRyaWFuZ2xlUG9zaXRpb25zPWEsdGhpcy50cmlhbmdsZVZlY3RvcnM9aSx0aGlzLnRyaWFuZ2xlQ29sb3JzPXMsdGhpcy50cmlhbmdsZVVWcz1sLHRoaXMudHJpYW5nbGVJZHM9byx0aGlzLnRyaWFuZ2xlVkFPPWMsdGhpcy50cmlhbmdsZUNvdW50PTAsdGhpcy5waWNrSWQ9MSx0aGlzLmJvdW5kcz1bWzEvMCwxLzAsMS8wXSxbLTEvMCwtMS8wLC0xLzBdXSx0aGlzLmNsaXBCb3VuZHM9W1stMS8wLC0xLzAsLTEvMF0sWzEvMCwxLzAsMS8wXV0sdGhpcy5saWdodFBvc2l0aW9uPVsxZTUsMWU1LDBdLHRoaXMuYW1iaWVudExpZ2h0PS44LHRoaXMuZGlmZnVzZUxpZ2h0PS44LHRoaXMuc3BlY3VsYXJMaWdodD0yLHRoaXMucm91Z2huZXNzPS41LHRoaXMuZnJlc25lbD0xLjUsdGhpcy5vcGFjaXR5PTEsdGhpcy50cmFjZVR5cGU9dSx0aGlzLnR1YmVTY2FsZT0xLHRoaXMuY29uZVNjYWxlPTIsdGhpcy52ZWN0b3JTY2FsZT0xLHRoaXMuY29uZU9mZnNldD0uMjUsdGhpcy5fbW9kZWw9aCx0aGlzLl92aWV3PWgsdGhpcy5fcHJvamVjdGlvbj1oLHRoaXMuX3Jlc29sdXRpb249WzEsMV19dmFyIHA9Zi5wcm90b3R5cGU7cC5pc09wYXF1ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm9wYWNpdHk+PTF9LHAuaXNUcmFuc3BhcmVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLm9wYWNpdHk8MX0scC5waWNrU2xvdHM9MSxwLnNldFBpY2tCYXNlPWZ1bmN0aW9uKHQpe3RoaXMucGlja0lkPXR9LHAudXBkYXRlPWZ1bmN0aW9uKHQpe3Q9dHx8e307dmFyIGU9dGhpcy5nbDt0aGlzLmRpcnR5PSEwLCJsaWdodFBvc2l0aW9uImluIHQmJih0aGlzLmxpZ2h0UG9zaXRpb249dC5saWdodFBvc2l0aW9uKSwib3BhY2l0eSJpbiB0JiYodGhpcy5vcGFjaXR5PXQub3BhY2l0eSksImFtYmllbnQiaW4gdCYmKHRoaXMuYW1iaWVudExpZ2h0PXQuYW1iaWVudCksImRpZmZ1c2UiaW4gdCYmKHRoaXMuZGlmZnVzZUxpZ2h0PXQuZGlmZnVzZSksInNwZWN1bGFyImluIHQmJih0aGlzLnNwZWN1bGFyTGlnaHQ9dC5zcGVjdWxhciksInJvdWdobmVzcyJpbiB0JiYodGhpcy5yb3VnaG5lc3M9dC5yb3VnaG5lc3MpLCJmcmVzbmVsImluIHQmJih0aGlzLmZyZXNuZWw9dC5mcmVzbmVsKSx2b2lkIDAhPT10LnR1YmVTY2FsZSYmKHRoaXMudHViZVNjYWxlPXQudHViZVNjYWxlKSx2b2lkIDAhPT10LnZlY3RvclNjYWxlJiYodGhpcy52ZWN0b3JTY2FsZT10LnZlY3RvclNjYWxlKSx2b2lkIDAhPT10LmNvbmVTY2FsZSYmKHRoaXMuY29uZVNjYWxlPXQuY29uZVNjYWxlKSx2b2lkIDAhPT10LmNvbmVPZmZzZXQmJih0aGlzLmNvbmVPZmZzZXQ9dC5jb25lT2Zmc2V0KSx0LmNvbG9ybWFwJiYodGhpcy50ZXh0dXJlLnNoYXBlPVsyNTYsMjU2XSx0aGlzLnRleHR1cmUubWluRmlsdGVyPWUuTElORUFSX01JUE1BUF9MSU5FQVIsdGhpcy50ZXh0dXJlLm1hZ0ZpbHRlcj1lLkxJTkVBUix0aGlzLnRleHR1cmUuc2V0UGl4ZWxzKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT11KHtjb2xvcm1hcDp0LG5zaGFkZXM6MjU2LGZvcm1hdDoicmdiYSJ9KSxyPW5ldyBVaW50OEFycmF5KDEwMjQpLG49MDtuPDI1NjsrK24pe2Zvcih2YXIgYT1lW25dLGk9MDtpPDM7KytpKXJbNCpuK2ldPWFbaV07cls0Km4rM109MjU1KmFbM119cmV0dXJuIGMocixbMjU2LDI1Niw0XSxbNCwwLDFdKX0odC5jb2xvcm1hcCkpLHRoaXMudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcCgpKTt2YXIgcj10LmNlbGxzLG49dC5wb3NpdGlvbnMsYT10LnZlY3RvcnM7aWYobiYmciYmYSl7dmFyIGk9W10sbz1bXSxzPVtdLGw9W10saD1bXTt0aGlzLmNlbGxzPXIsdGhpcy5wb3NpdGlvbnM9bix0aGlzLnZlY3RvcnM9YTt2YXIgZj10Lm1lc2hDb2xvcnx8WzEsMSwxLDFdLHA9dC52ZXJ0ZXhJbnRlbnNpdHksZD0xLzAsZz0tMS8wO2lmKHApaWYodC52ZXJ0ZXhJbnRlbnNpdHlCb3VuZHMpZD0rdC52ZXJ0ZXhJbnRlbnNpdHlCb3VuZHNbMF0sZz0rdC52ZXJ0ZXhJbnRlbnNpdHlCb3VuZHNbMV07ZWxzZSBmb3IodmFyIHY9MDt2PHAubGVuZ3RoOysrdil7dmFyIG09cFt2XTtkPU1hdGgubWluKGQsbSksZz1NYXRoLm1heChnLG0pfWVsc2UgZm9yKHY9MDt2PG4ubGVuZ3RoOysrdil7bT1uW3ZdWzJdO2Q9TWF0aC5taW4oZCxtKSxnPU1hdGgubWF4KGcsbSl9dGhpcy5pbnRlbnNpdHk9cHx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQubGVuZ3RoLHI9bmV3IEFycmF5KGUpLG49MDtuPGU7KytuKXJbbl09dFtuXVsyXTtyZXR1cm4gcn0obiksdGhpcy5ib3VuZHM9W1sxLzAsMS8wLDEvMF0sWy0xLzAsLTEvMCwtMS8wXV07Zm9yKHY9MDt2PG4ubGVuZ3RoOysrdilmb3IodmFyIHk9blt2XSx4PTA7eDwzOysreCkhaXNOYU4oeVt4XSkmJmlzRmluaXRlKHlbeF0pJiYodGhpcy5ib3VuZHNbMF1beF09TWF0aC5taW4odGhpcy5ib3VuZHNbMF1beF0seVt4XSksdGhpcy5ib3VuZHNbMV1beF09TWF0aC5tYXgodGhpcy5ib3VuZHNbMV1beF0seVt4XSkpO3ZhciBiPTA7dDpmb3Iodj0wO3Y8ci5sZW5ndGg7Kyt2KXt2YXIgXz1yW3ZdO3N3aXRjaChfLmxlbmd0aCl7Y2FzZSAzOmZvcih4PTA7eDwzOysreCl7eT1uW2s9X1t4XV07Zm9yKHZhciB3PTA7dzwzOysrdylpZihpc05hTih5W3ddKXx8IWlzRmluaXRlKHlbd10pKWNvbnRpbnVlIHR9Zm9yKHg9MDt4PDM7Kyt4KXt2YXIgazt5PW5baz1fWzIteF1dO2kucHVzaCh5WzBdLHlbMV0seVsyXSx5WzNdKTt2YXIgVD1hW2tdO28ucHVzaChUWzBdLFRbMV0sVFsyXSxUWzNdfHwwKTt2YXIgTSxBPWY7Mz09PUEubGVuZ3RoP3MucHVzaChBWzBdLEFbMV0sQVsyXSwxKTpzLnB1c2goQVswXSxBWzFdLEFbMl0sQVszXSksTT1wP1socFtrXS1kKS8oZy1kKSwwXTpbKHlbMl0tZCkvKGctZCksMF0sbC5wdXNoKE1bMF0sTVsxXSksaC5wdXNoKHYpfWIrPTF9fXRoaXMudHJpYW5nbGVDb3VudD1iLHRoaXMudHJpYW5nbGVQb3NpdGlvbnMudXBkYXRlKGkpLHRoaXMudHJpYW5nbGVWZWN0b3JzLnVwZGF0ZShvKSx0aGlzLnRyaWFuZ2xlQ29sb3JzLnVwZGF0ZShzKSx0aGlzLnRyaWFuZ2xlVVZzLnVwZGF0ZShsKSx0aGlzLnRyaWFuZ2xlSWRzLnVwZGF0ZShuZXcgVWludDMyQXJyYXkoaCkpfX0scC5kcmF3VHJhbnNwYXJlbnQ9cC5kcmF3PWZ1bmN0aW9uKHQpe3Q9dHx8e307Zm9yKHZhciBlPXRoaXMuZ2wscj10Lm1vZGVsfHxoLG49dC52aWV3fHxoLGE9dC5wcm9qZWN0aW9ufHxoLGk9W1stMWU2LC0xZTYsLTFlNl0sWzFlNiwxZTYsMWU2XV0sbz0wO288MzsrK28paVswXVtvXT1NYXRoLm1heChpWzBdW29dLHRoaXMuY2xpcEJvdW5kc1swXVtvXSksaVsxXVtvXT1NYXRoLm1pbihpWzFdW29dLHRoaXMuY2xpcEJvdW5kc1sxXVtvXSk7dmFyIGM9e21vZGVsOnIsdmlldzpuLHByb2plY3Rpb246YSxpbnZlcnNlTW9kZWw6aC5zbGljZSgpLGNsaXBCb3VuZHM6aSxrYW1iaWVudDp0aGlzLmFtYmllbnRMaWdodCxrZGlmZnVzZTp0aGlzLmRpZmZ1c2VMaWdodCxrc3BlY3VsYXI6dGhpcy5zcGVjdWxhckxpZ2h0LHJvdWdobmVzczp0aGlzLnJvdWdobmVzcyxmcmVzbmVsOnRoaXMuZnJlc25lbCxleWVQb3NpdGlvbjpbMCwwLDBdLGxpZ2h0UG9zaXRpb246WzAsMCwwXSxvcGFjaXR5OnRoaXMub3BhY2l0eSx0dWJlU2NhbGU6dGhpcy50dWJlU2NhbGUsdmVjdG9yU2NhbGU6dGhpcy52ZWN0b3JTY2FsZSxjb25lU2NhbGU6dGhpcy5jb25lU2NhbGUsY29uZU9mZnNldDp0aGlzLmNvbmVPZmZzZXQsdGV4dHVyZTowfTtjLmludmVyc2VNb2RlbD1sKGMuaW52ZXJzZU1vZGVsLGMubW9kZWwpLGUuZGlzYWJsZShlLkNVTExfRkFDRSksdGhpcy50ZXh0dXJlLmJpbmQoMCk7dmFyIHU9bmV3IEFycmF5KDE2KTtzKHUsYy52aWV3LGMubW9kZWwpLHModSxjLnByb2plY3Rpb24sdSksbCh1LHUpO2ZvcihvPTA7bzwzOysrbyljLmV5ZVBvc2l0aW9uW29dPXVbMTIrb10vdVsxNV07dmFyIGY9dVsxNV07Zm9yKG89MDtvPDM7KytvKWYrPXRoaXMubGlnaHRQb3NpdGlvbltvXSp1WzQqbyszXTtmb3Iobz0wO288MzsrK28pe2Zvcih2YXIgcD11WzEyK29dLGQ9MDtkPDM7KytkKXArPXVbNCpkK29dKnRoaXMubGlnaHRQb3NpdGlvbltkXTtjLmxpZ2h0UG9zaXRpb25bb109cC9mfWlmKHRoaXMudHJpYW5nbGVDb3VudD4wKXt2YXIgZz10aGlzLnRyaVNoYWRlcjtnLmJpbmQoKSxnLnVuaWZvcm1zPWMsdGhpcy50cmlhbmdsZVZBTy5iaW5kKCksZS5kcmF3QXJyYXlzKGUuVFJJQU5HTEVTLDAsMyp0aGlzLnRyaWFuZ2xlQ291bnQpLHRoaXMudHJpYW5nbGVWQU8udW5iaW5kKCl9fSxwLmRyYXdQaWNrPWZ1bmN0aW9uKHQpe3Q9dHx8e307Zm9yKHZhciBlPXRoaXMuZ2wscj10Lm1vZGVsfHxoLG49dC52aWV3fHxoLGE9dC5wcm9qZWN0aW9ufHxoLGk9W1stMWU2LC0xZTYsLTFlNl0sWzFlNiwxZTYsMWU2XV0sbz0wO288MzsrK28paVswXVtvXT1NYXRoLm1heChpWzBdW29dLHRoaXMuY2xpcEJvdW5kc1swXVtvXSksaVsxXVtvXT1NYXRoLm1pbihpWzFdW29dLHRoaXMuY2xpcEJvdW5kc1sxXVtvXSk7dGhpcy5fbW9kZWw9W10uc2xpY2UuY2FsbChyKSx0aGlzLl92aWV3PVtdLnNsaWNlLmNhbGwobiksdGhpcy5fcHJvamVjdGlvbj1bXS5zbGljZS5jYWxsKGEpLHRoaXMuX3Jlc29sdXRpb249W2UuZHJhd2luZ0J1ZmZlcldpZHRoLGUuZHJhd2luZ0J1ZmZlckhlaWdodF07dmFyIHM9e21vZGVsOnIsdmlldzpuLHByb2plY3Rpb246YSxjbGlwQm91bmRzOmksdHViZVNjYWxlOnRoaXMudHViZVNjYWxlLHZlY3RvclNjYWxlOnRoaXMudmVjdG9yU2NhbGUsY29uZVNjYWxlOnRoaXMuY29uZVNjYWxlLGNvbmVPZmZzZXQ6dGhpcy5jb25lT2Zmc2V0LHBpY2tJZDp0aGlzLnBpY2tJZC8yNTV9LGw9dGhpcy5waWNrU2hhZGVyO2wuYmluZCgpLGwudW5pZm9ybXM9cyx0aGlzLnRyaWFuZ2xlQ291bnQ+MCYmKHRoaXMudHJpYW5nbGVWQU8uYmluZCgpLGUuZHJhd0FycmF5cyhlLlRSSUFOR0xFUywwLDMqdGhpcy50cmlhbmdsZUNvdW50KSx0aGlzLnRyaWFuZ2xlVkFPLnVuYmluZCgpKX0scC5waWNrPWZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiBudWxsO2lmKHQuaWQhPT10aGlzLnBpY2tJZClyZXR1cm4gbnVsbDt2YXIgZT10LnZhbHVlWzBdKzI1Nip0LnZhbHVlWzFdKzY1NTM2KnQudmFsdWVbMl0scj10aGlzLmNlbGxzW2VdLG49dGhpcy5wb3NpdGlvbnNbclsxXV0uc2xpY2UoMCwzKSxhPXtwb3NpdGlvbjpuLGRhdGFDb29yZGluYXRlOm4saW5kZXg6TWF0aC5mbG9vcihyWzFdLzQ4KX07cmV0dXJuImNvbmUiPT09dGhpcy50cmFjZVR5cGU/YS5pbmRleD1NYXRoLmZsb29yKHJbMV0vNDgpOiJzdHJlYW10dWJlIj09PXRoaXMudHJhY2VUeXBlJiYoYS5pbnRlbnNpdHk9dGhpcy5pbnRlbnNpdHlbclsxXV0sYS52ZWxvY2l0eT10aGlzLnZlY3RvcnNbclsxXV0uc2xpY2UoMCwzKSxhLmRpdmVyZ2VuY2U9dGhpcy52ZWN0b3JzW3JbMV1dWzNdLGEuaW5kZXg9ZSksYX0scC5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy50ZXh0dXJlLmRpc3Bvc2UoKSx0aGlzLnRyaVNoYWRlci5kaXNwb3NlKCksdGhpcy5waWNrU2hhZGVyLmRpc3Bvc2UoKSx0aGlzLnRyaWFuZ2xlVkFPLmRpc3Bvc2UoKSx0aGlzLnRyaWFuZ2xlUG9zaXRpb25zLmRpc3Bvc2UoKSx0aGlzLnRyaWFuZ2xlVmVjdG9ycy5kaXNwb3NlKCksdGhpcy50cmlhbmdsZUNvbG9ycy5kaXNwb3NlKCksdGhpcy50cmlhbmdsZVVWcy5kaXNwb3NlKCksdGhpcy50cmlhbmdsZUlkcy5kaXNwb3NlKCl9LGUuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIHM9ci5zaGFkZXJzOzE9PT1hcmd1bWVudHMubGVuZ3RoJiYodD0oZT10KS5nbCk7dmFyIGw9ZnVuY3Rpb24odCxlKXt2YXIgcj1uKHQsZS5tZXNoU2hhZGVyLnZlcnRleCxlLm1lc2hTaGFkZXIuZnJhZ21lbnQsbnVsbCxlLm1lc2hTaGFkZXIuYXR0cmlidXRlcyk7cmV0dXJuIHIuYXR0cmlidXRlcy5wb3NpdGlvbi5sb2NhdGlvbj0wLHIuYXR0cmlidXRlcy5jb2xvci5sb2NhdGlvbj0yLHIuYXR0cmlidXRlcy51di5sb2NhdGlvbj0zLHIuYXR0cmlidXRlcy52ZWN0b3IubG9jYXRpb249NCxyfSh0LHMpLHU9ZnVuY3Rpb24odCxlKXt2YXIgcj1uKHQsZS5waWNrU2hhZGVyLnZlcnRleCxlLnBpY2tTaGFkZXIuZnJhZ21lbnQsbnVsbCxlLnBpY2tTaGFkZXIuYXR0cmlidXRlcyk7cmV0dXJuIHIuYXR0cmlidXRlcy5wb3NpdGlvbi5sb2NhdGlvbj0wLHIuYXR0cmlidXRlcy5pZC5sb2NhdGlvbj0xLHIuYXR0cmlidXRlcy52ZWN0b3IubG9jYXRpb249NCxyfSh0LHMpLGg9byh0LGMobmV3IFVpbnQ4QXJyYXkoWzI1NSwyNTUsMjU1LDI1NV0pLFsxLDEsNF0pKTtoLmdlbmVyYXRlTWlwbWFwKCksaC5taW5GaWx0ZXI9dC5MSU5FQVJfTUlQTUFQX0xJTkVBUixoLm1hZ0ZpbHRlcj10LkxJTkVBUjt2YXIgcD1hKHQpLGQ9YSh0KSxnPWEodCksdj1hKHQpLG09YSh0KSx5PW5ldyBmKHQsaCxsLHUscCxkLG0sZyx2LGkodCxbe2J1ZmZlcjpwLHR5cGU6dC5GTE9BVCxzaXplOjR9LHtidWZmZXI6bSx0eXBlOnQuVU5TSUdORURfQllURSxzaXplOjQsbm9ybWFsaXplZDohMH0se2J1ZmZlcjpnLHR5cGU6dC5GTE9BVCxzaXplOjR9LHtidWZmZXI6dix0eXBlOnQuRkxPQVQsc2l6ZToyfSx7YnVmZmVyOmQsdHlwZTp0LkZMT0FULHNpemU6NH1dKSxyLnRyYWNlVHlwZXx8ImNvbmUiKTtyZXR1cm4geS51cGRhdGUoZSkseX19LHtjb2xvcm1hcDoxMjgsImdsLWJ1ZmZlciI6MjQ0LCJnbC1tYXQ0L2ludmVydCI6MjY4LCJnbC1tYXQ0L211bHRpcGx5IjoyNzAsImdsLXNoYWRlciI6MzA0LCJnbC10ZXh0dXJlMmQiOjMyNCwiZ2wtdmFvIjozMjksbmRhcnJheTo0NTJ9XSwyNDc6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCJnbHNsaWZ5IiksYT1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuXG5wcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG52ZWMzIGdldE9ydGhvZ29uYWxWZWN0b3IodmVjMyB2KSB7XG4gIC8vIFJldHVybiB1cC12ZWN0b3IgZm9yIG9ubHkteiB2ZWN0b3IuXG4gIC8vIFJldHVybiBheCArIGJ5ICsgY3ogPSAwLCBhIHBvaW50IHRoYXQgbGllcyBvbiB0aGUgcGxhbmUgdGhhdCBoYXMgdiBhcyBhIG5vcm1hbCBhbmQgdGhhdCBpc24ndCAoMCwwLDApLlxuICAvLyBGcm9tIHRoZSBhYm92ZSBpZi1zdGF0ZW1lbnQgd2UgaGF2ZSB8fGF8fCA+IDAgIFUgIHx8Ynx8ID4gMC5cbiAgLy8gQXNzaWduIHogPSAwLCB4ID0gLWIsIHkgPSBhOlxuICAvLyBhKi1iICsgYiphICsgYyowID0gLWJhICsgYmEgKyAwID0gMFxuICBpZiAodi54KnYueCA+IHYueip2LnogfHwgdi55KnYueSA+IHYueip2LnopIHtcbiAgICByZXR1cm4gbm9ybWFsaXplKHZlYzMoLXYueSwgdi54LCAwLjApKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbm9ybWFsaXplKHZlYzMoMC4wLCB2LnosIC12LnkpKTtcbiAgfVxufVxuXG4vLyBDYWxjdWxhdGUgdGhlIGNvbmUgdmVydGV4IGFuZCBub3JtYWwgYXQgdGhlIGdpdmVuIGluZGV4LlxuLy9cbi8vIFRoZSByZXR1cm5lZCB2ZXJ0ZXggaXMgZm9yIGEgY29uZSB3aXRoIGl0cyB0b3AgYXQgb3JpZ2luIGFuZCBoZWlnaHQgb2YgMS4wLFxuLy8gcG9pbnRpbmcgaW4gdGhlIGRpcmVjdGlvbiBvZiB0aGUgdmVjdG9yIGF0dHJpYnV0ZS5cbi8vXG4vLyBFYWNoIGNvbmUgaXMgbWFkZSB1cCBvZiBhIHRvcCB2ZXJ0ZXgsIGEgY2VudGVyIGJhc2UgdmVydGV4IGFuZCBiYXNlIHBlcmltZXRlciB2ZXJ0aWNlcy5cbi8vIFRoZXNlIHZlcnRpY2VzIGFyZSB1c2VkIHRvIG1ha2UgdXAgdGhlIHRyaWFuZ2xlcyBvZiB0aGUgY29uZSBieSB0aGUgZm9sbG93aW5nOlxuLy8gICBzZWdtZW50ICsgMCB0b3AgdmVydGV4XG4vLyAgIHNlZ21lbnQgKyAxIHBlcmltZXRlciB2ZXJ0ZXggYSsxXG4vLyAgIHNlZ21lbnQgKyAyIHBlcmltZXRlciB2ZXJ0ZXggYVxuLy8gICBzZWdtZW50ICsgMyBjZW50ZXIgYmFzZSB2ZXJ0ZXhcbi8vICAgc2VnbWVudCArIDQgcGVyaW1ldGVyIHZlcnRleCBhXG4vLyAgIHNlZ21lbnQgKyA1IHBlcmltZXRlciB2ZXJ0ZXggYSsxXG4vLyBXaGVyZSBzZWdtZW50IGlzIHRoZSBudW1iZXIgb2YgdGhlIHJhZGlhbCBzZWdtZW50ICogNiBhbmQgYSBpcyB0aGUgYW5nbGUgYXQgdGhhdCByYWRpYWwgc2VnbWVudC5cbi8vIFRvIGdvIGZyb20gaW5kZXggdG8gc2VnbWVudCwgZmxvb3IoaW5kZXggLyA2KVxuLy8gVG8gZ28gZnJvbSBzZWdtZW50IHRvIGFuZ2xlLCAyKnBpICogKHNlZ21lbnQvc2VnbWVudENvdW50KVxuLy8gVG8gZ28gZnJvbSBpbmRleCB0byBzZWdtZW50IGluZGV4LCBpbmRleCAtIChzZWdtZW50KjYpXG4vL1xudmVjMyBnZXRDb25lUG9zaXRpb24odmVjMyBkLCBmbG9hdCByYXdJbmRleCwgZmxvYXQgY29uZU9mZnNldCwgb3V0IHZlYzMgbm9ybWFsKSB7XG5cbiAgY29uc3QgZmxvYXQgc2VnbWVudENvdW50ID0gOC4wO1xuXG4gIGZsb2F0IGluZGV4ID0gcmF3SW5kZXggLSBmbG9vcihyYXdJbmRleCAvXG4gICAgKHNlZ21lbnRDb3VudCAqIDYuMCkpICpcbiAgICAoc2VnbWVudENvdW50ICogNi4wKTtcblxuICBmbG9hdCBzZWdtZW50ID0gZmxvb3IoMC4wMDEgKyBpbmRleC82LjApO1xuICBmbG9hdCBzZWdtZW50SW5kZXggPSBpbmRleCAtIChzZWdtZW50KjYuMCk7XG5cbiAgbm9ybWFsID0gLW5vcm1hbGl6ZShkKTtcblxuICBpZiAoc2VnbWVudEluZGV4ID4gMi45OSAmJiBzZWdtZW50SW5kZXggPCAzLjAxKSB7XG4gICAgcmV0dXJuIG1peCh2ZWMzKDAuMCksIC1kLCBjb25lT2Zmc2V0KTtcbiAgfVxuXG4gIGZsb2F0IG5leHRBbmdsZSA9IChcbiAgICAoc2VnbWVudEluZGV4ID4gMC45OSAmJiAgc2VnbWVudEluZGV4IDwgMS4wMSkgfHxcbiAgICAoc2VnbWVudEluZGV4ID4gNC45OSAmJiAgc2VnbWVudEluZGV4IDwgNS4wMSlcbiAgKSA/IDEuMCA6IDAuMDtcbiAgZmxvYXQgYW5nbGUgPSAyLjAgKiAzLjE0MTU5ICogKChzZWdtZW50ICsgbmV4dEFuZ2xlKSAvIHNlZ21lbnRDb3VudCk7XG5cbiAgdmVjMyB2MSA9IG1peChkLCB2ZWMzKDAuMCksIGNvbmVPZmZzZXQpO1xuICB2ZWMzIHYyID0gdjEgLSBkO1xuXG4gIHZlYzMgdSA9IGdldE9ydGhvZ29uYWxWZWN0b3IoZCk7XG4gIHZlYzMgdiA9IG5vcm1hbGl6ZShjcm9zcyh1LCBkKSk7XG5cbiAgdmVjMyB4ID0gdSAqIGNvcyhhbmdsZSkgKiBsZW5ndGgoZCkqMC4yNTtcbiAgdmVjMyB5ID0gdiAqIHNpbihhbmdsZSkgKiBsZW5ndGgoZCkqMC4yNTtcbiAgdmVjMyB2MyA9IHYyICsgeCArIHk7XG4gIGlmIChzZWdtZW50SW5kZXggPCAzLjApIHtcbiAgICB2ZWMzIHR4ID0gdSAqIHNpbihhbmdsZSk7XG4gICAgdmVjMyB0eSA9IHYgKiAtY29zKGFuZ2xlKTtcbiAgICB2ZWMzIHRhbmdlbnQgPSB0eCArIHR5O1xuICAgIG5vcm1hbCA9IG5vcm1hbGl6ZShjcm9zcyh2MyAtIHYxLCB0YW5nZW50KSk7XG4gIH1cblxuICBpZiAoc2VnbWVudEluZGV4ID09IDAuMCkge1xuICAgIHJldHVybiBtaXgoZCwgdmVjMygwLjApLCBjb25lT2Zmc2V0KTtcbiAgfVxuICByZXR1cm4gdjM7XG59XG5cbmF0dHJpYnV0ZSB2ZWMzIHZlY3RvcjtcbmF0dHJpYnV0ZSB2ZWM0IGNvbG9yLCBwb3NpdGlvbjtcbmF0dHJpYnV0ZSB2ZWMyIHV2O1xuXG51bmlmb3JtIGZsb2F0IHZlY3RvclNjYWxlLCBjb25lU2NhbGUsIGNvbmVPZmZzZXQ7XG51bmlmb3JtIG1hdDQgbW9kZWwsIHZpZXcsIHByb2plY3Rpb24sIGludmVyc2VNb2RlbDtcbnVuaWZvcm0gdmVjMyBleWVQb3NpdGlvbiwgbGlnaHRQb3NpdGlvbjtcblxudmFyeWluZyB2ZWMzIGZfbm9ybWFsLCBmX2xpZ2h0RGlyZWN0aW9uLCBmX2V5ZURpcmVjdGlvbiwgZl9kYXRhLCBmX3Bvc2l0aW9uO1xudmFyeWluZyB2ZWM0IGZfY29sb3I7XG52YXJ5aW5nIHZlYzIgZl91djtcblxudm9pZCBtYWluKCkge1xuICAvLyBTY2FsZSB0aGUgdmVjdG9yIG1hZ25pdHVkZSB0byBzdGF5IGNvbnN0YW50IHdpdGhcbiAgLy8gbW9kZWwgJiB2aWV3IGNoYW5nZXMuXG4gIHZlYzMgbm9ybWFsO1xuICB2ZWMzIFhZWiA9IGdldENvbmVQb3NpdGlvbihtYXQzKG1vZGVsKSAqICgodmVjdG9yU2NhbGUgKiBjb25lU2NhbGUpICogdmVjdG9yKSwgcG9zaXRpb24udywgY29uZU9mZnNldCwgbm9ybWFsKTtcbiAgdmVjNCBjb25lUG9zaXRpb24gPSBtb2RlbCAqIHZlYzQocG9zaXRpb24ueHl6LCAxLjApICsgdmVjNChYWVosIDAuMCk7XG5cbiAgLy9MaWdodGluZyBnZW9tZXRyeSBwYXJhbWV0ZXJzXG4gIHZlYzQgY2FtZXJhQ29vcmRpbmF0ZSA9IHZpZXcgKiBjb25lUG9zaXRpb247XG4gIGNhbWVyYUNvb3JkaW5hdGUueHl6IC89IGNhbWVyYUNvb3JkaW5hdGUudztcbiAgZl9saWdodERpcmVjdGlvbiA9IGxpZ2h0UG9zaXRpb24gLSBjYW1lcmFDb29yZGluYXRlLnh5ejtcbiAgZl9leWVEaXJlY3Rpb24gICA9IGV5ZVBvc2l0aW9uIC0gY2FtZXJhQ29vcmRpbmF0ZS54eXo7XG4gIGZfbm9ybWFsID0gbm9ybWFsaXplKCh2ZWM0KG5vcm1hbCwgMC4wKSAqIGludmVyc2VNb2RlbCkueHl6KTtcblxuICAvLyB2ZWM0IG1fcG9zaXRpb24gID0gbW9kZWwgKiB2ZWM0KGNvbmVQb3NpdGlvbiwgMS4wKTtcbiAgdmVjNCB0X3Bvc2l0aW9uICA9IHZpZXcgKiBjb25lUG9zaXRpb247XG4gIGdsX1Bvc2l0aW9uICAgICAgPSBwcm9qZWN0aW9uICogdF9wb3NpdGlvbjtcblxuICBmX2NvbG9yICAgICAgICAgID0gY29sb3I7XG4gIGZfZGF0YSAgICAgICAgICAgPSBjb25lUG9zaXRpb24ueHl6O1xuICBmX3Bvc2l0aW9uICAgICAgID0gcG9zaXRpb24ueHl6O1xuICBmX3V2ICAgICAgICAgICAgID0gdXY7XG59XG4iXSksaT1uKFsiI2V4dGVuc2lvbiBHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMgOiBlbmFibGVcblxucHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuZmxvYXQgYmVja21hbm5EaXN0cmlidXRpb24oZmxvYXQgeCwgZmxvYXQgcm91Z2huZXNzKSB7XG4gIGZsb2F0IE5kb3RIID0gbWF4KHgsIDAuMDAwMSk7XG4gIGZsb2F0IGNvczJBbHBoYSA9IE5kb3RIICogTmRvdEg7XG4gIGZsb2F0IHRhbjJBbHBoYSA9IChjb3MyQWxwaGEgLSAxLjApIC8gY29zMkFscGhhO1xuICBmbG9hdCByb3VnaG5lc3MyID0gcm91Z2huZXNzICogcm91Z2huZXNzO1xuICBmbG9hdCBkZW5vbSA9IDMuMTQxNTkyNjUzNTg5NzkzICogcm91Z2huZXNzMiAqIGNvczJBbHBoYSAqIGNvczJBbHBoYTtcbiAgcmV0dXJuIGV4cCh0YW4yQWxwaGEgLyByb3VnaG5lc3MyKSAvIGRlbm9tO1xufVxuXG5mbG9hdCBjb29rVG9ycmFuY2VTcGVjdWxhcihcbiAgdmVjMyBsaWdodERpcmVjdGlvbixcbiAgdmVjMyB2aWV3RGlyZWN0aW9uLFxuICB2ZWMzIHN1cmZhY2VOb3JtYWwsXG4gIGZsb2F0IHJvdWdobmVzcyxcbiAgZmxvYXQgZnJlc25lbCkge1xuXG4gIGZsb2F0IFZkb3ROID0gbWF4KGRvdCh2aWV3RGlyZWN0aW9uLCBzdXJmYWNlTm9ybWFsKSwgMC4wKTtcbiAgZmxvYXQgTGRvdE4gPSBtYXgoZG90KGxpZ2h0RGlyZWN0aW9uLCBzdXJmYWNlTm9ybWFsKSwgMC4wKTtcblxuICAvL0hhbGYgYW5nbGUgdmVjdG9yXG4gIHZlYzMgSCA9IG5vcm1hbGl6ZShsaWdodERpcmVjdGlvbiArIHZpZXdEaXJlY3Rpb24pO1xuXG4gIC8vR2VvbWV0cmljIHRlcm1cbiAgZmxvYXQgTmRvdEggPSBtYXgoZG90KHN1cmZhY2VOb3JtYWwsIEgpLCAwLjApO1xuICBmbG9hdCBWZG90SCA9IG1heChkb3Qodmlld0RpcmVjdGlvbiwgSCksIDAuMDAwMDAxKTtcbiAgZmxvYXQgTGRvdEggPSBtYXgoZG90KGxpZ2h0RGlyZWN0aW9uLCBIKSwgMC4wMDAwMDEpO1xuICBmbG9hdCBHMSA9ICgyLjAgKiBOZG90SCAqIFZkb3ROKSAvIFZkb3RIO1xuICBmbG9hdCBHMiA9ICgyLjAgKiBOZG90SCAqIExkb3ROKSAvIExkb3RIO1xuICBmbG9hdCBHID0gbWluKDEuMCwgbWluKEcxLCBHMikpO1xuICBcbiAgLy9EaXN0cmlidXRpb24gdGVybVxuICBmbG9hdCBEID0gYmVja21hbm5EaXN0cmlidXRpb24oTmRvdEgsIHJvdWdobmVzcyk7XG5cbiAgLy9GcmVzbmVsIHRlcm1cbiAgZmxvYXQgRiA9IHBvdygxLjAgLSBWZG90TiwgZnJlc25lbCk7XG5cbiAgLy9NdWx0aXBseSB0ZXJtcyBhbmQgZG9uZVxuICByZXR1cm4gIEcgKiBGICogRCAvIG1heCgzLjE0MTU5MjY1ICogVmRvdE4sIDAuMDAwMDAxKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKGZsb2F0IGEsIGZsb2F0IGIsIGZsb2F0IHApIHtcbiAgcmV0dXJuICgocCA+IG1heChhLCBiKSkgfHwgXG4gICAgICAgICAgKHAgPCBtaW4oYSwgYikpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzIgYSwgdmVjMiBiLCB2ZWMyIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMzIGEsIHZlYzMgYiwgdmVjMyBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueiwgYi56LCBwLnopKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzQgYSwgdmVjNCBiLCB2ZWM0IHApIHtcbiAgcmV0dXJuIG91dE9mUmFuZ2UoYS54eXosIGIueHl6LCBwLnh5eik7XG59XG5cbnVuaWZvcm0gdmVjMyBjbGlwQm91bmRzWzJdO1xudW5pZm9ybSBmbG9hdCByb3VnaG5lc3MsIGZyZXNuZWwsIGthbWJpZW50LCBrZGlmZnVzZSwga3NwZWN1bGFyLCBvcGFjaXR5O1xudW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZTtcblxudmFyeWluZyB2ZWMzIGZfbm9ybWFsLCBmX2xpZ2h0RGlyZWN0aW9uLCBmX2V5ZURpcmVjdGlvbiwgZl9kYXRhLCBmX3Bvc2l0aW9uO1xudmFyeWluZyB2ZWM0IGZfY29sb3I7XG52YXJ5aW5nIHZlYzIgZl91djtcblxudm9pZCBtYWluKCkge1xuICBpZiAob3V0T2ZSYW5nZShjbGlwQm91bmRzWzBdLCBjbGlwQm91bmRzWzFdLCBmX3Bvc2l0aW9uKSkgZGlzY2FyZDtcbiAgdmVjMyBOID0gbm9ybWFsaXplKGZfbm9ybWFsKTtcbiAgdmVjMyBMID0gbm9ybWFsaXplKGZfbGlnaHREaXJlY3Rpb24pO1xuICB2ZWMzIFYgPSBub3JtYWxpemUoZl9leWVEaXJlY3Rpb24pO1xuXG4gIGlmKGdsX0Zyb250RmFjaW5nKSB7XG4gICAgTiA9IC1OO1xuICB9XG5cbiAgZmxvYXQgc3BlY3VsYXIgPSBtaW4oMS4wLCBtYXgoMC4wLCBjb29rVG9ycmFuY2VTcGVjdWxhcihMLCBWLCBOLCByb3VnaG5lc3MsIGZyZXNuZWwpKSk7XG4gIGZsb2F0IGRpZmZ1c2UgID0gbWluKGthbWJpZW50ICsga2RpZmZ1c2UgKiBtYXgoZG90KE4sIEwpLCAwLjApLCAxLjApO1xuXG4gIHZlYzQgc3VyZmFjZUNvbG9yID0gZl9jb2xvciAqIHRleHR1cmUyRCh0ZXh0dXJlLCBmX3V2KTtcbiAgdmVjNCBsaXRDb2xvciA9IHN1cmZhY2VDb2xvci5hICogdmVjNChkaWZmdXNlICogc3VyZmFjZUNvbG9yLnJnYiArIGtzcGVjdWxhciAqIHZlYzMoMSwxLDEpICogc3BlY3VsYXIsICAxLjApO1xuXG4gIGdsX0ZyYWdDb2xvciA9IGxpdENvbG9yICogb3BhY2l0eTtcbn1cbiJdKSxvPW4oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG5cbnByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbnZlYzMgZ2V0T3J0aG9nb25hbFZlY3Rvcih2ZWMzIHYpIHtcbiAgLy8gUmV0dXJuIHVwLXZlY3RvciBmb3Igb25seS16IHZlY3Rvci5cbiAgLy8gUmV0dXJuIGF4ICsgYnkgKyBjeiA9IDAsIGEgcG9pbnQgdGhhdCBsaWVzIG9uIHRoZSBwbGFuZSB0aGF0IGhhcyB2IGFzIGEgbm9ybWFsIGFuZCB0aGF0IGlzbid0ICgwLDAsMCkuXG4gIC8vIEZyb20gdGhlIGFib3ZlIGlmLXN0YXRlbWVudCB3ZSBoYXZlIHx8YXx8ID4gMCAgVSAgfHxifHwgPiAwLlxuICAvLyBBc3NpZ24geiA9IDAsIHggPSAtYiwgeSA9IGE6XG4gIC8vIGEqLWIgKyBiKmEgKyBjKjAgPSAtYmEgKyBiYSArIDAgPSAwXG4gIGlmICh2Lngqdi54ID4gdi56KnYueiB8fCB2Lnkqdi55ID4gdi56KnYueikge1xuICAgIHJldHVybiBub3JtYWxpemUodmVjMygtdi55LCB2LngsIDAuMCkpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBub3JtYWxpemUodmVjMygwLjAsIHYueiwgLXYueSkpO1xuICB9XG59XG5cbi8vIENhbGN1bGF0ZSB0aGUgY29uZSB2ZXJ0ZXggYW5kIG5vcm1hbCBhdCB0aGUgZ2l2ZW4gaW5kZXguXG4vL1xuLy8gVGhlIHJldHVybmVkIHZlcnRleCBpcyBmb3IgYSBjb25lIHdpdGggaXRzIHRvcCBhdCBvcmlnaW4gYW5kIGhlaWdodCBvZiAxLjAsXG4vLyBwb2ludGluZyBpbiB0aGUgZGlyZWN0aW9uIG9mIHRoZSB2ZWN0b3IgYXR0cmlidXRlLlxuLy9cbi8vIEVhY2ggY29uZSBpcyBtYWRlIHVwIG9mIGEgdG9wIHZlcnRleCwgYSBjZW50ZXIgYmFzZSB2ZXJ0ZXggYW5kIGJhc2UgcGVyaW1ldGVyIHZlcnRpY2VzLlxuLy8gVGhlc2UgdmVydGljZXMgYXJlIHVzZWQgdG8gbWFrZSB1cCB0aGUgdHJpYW5nbGVzIG9mIHRoZSBjb25lIGJ5IHRoZSBmb2xsb3dpbmc6XG4vLyAgIHNlZ21lbnQgKyAwIHRvcCB2ZXJ0ZXhcbi8vICAgc2VnbWVudCArIDEgcGVyaW1ldGVyIHZlcnRleCBhKzFcbi8vICAgc2VnbWVudCArIDIgcGVyaW1ldGVyIHZlcnRleCBhXG4vLyAgIHNlZ21lbnQgKyAzIGNlbnRlciBiYXNlIHZlcnRleFxuLy8gICBzZWdtZW50ICsgNCBwZXJpbWV0ZXIgdmVydGV4IGFcbi8vICAgc2VnbWVudCArIDUgcGVyaW1ldGVyIHZlcnRleCBhKzFcbi8vIFdoZXJlIHNlZ21lbnQgaXMgdGhlIG51bWJlciBvZiB0aGUgcmFkaWFsIHNlZ21lbnQgKiA2IGFuZCBhIGlzIHRoZSBhbmdsZSBhdCB0aGF0IHJhZGlhbCBzZWdtZW50LlxuLy8gVG8gZ28gZnJvbSBpbmRleCB0byBzZWdtZW50LCBmbG9vcihpbmRleCAvIDYpXG4vLyBUbyBnbyBmcm9tIHNlZ21lbnQgdG8gYW5nbGUsIDIqcGkgKiAoc2VnbWVudC9zZWdtZW50Q291bnQpXG4vLyBUbyBnbyBmcm9tIGluZGV4IHRvIHNlZ21lbnQgaW5kZXgsIGluZGV4IC0gKHNlZ21lbnQqNilcbi8vXG52ZWMzIGdldENvbmVQb3NpdGlvbih2ZWMzIGQsIGZsb2F0IHJhd0luZGV4LCBmbG9hdCBjb25lT2Zmc2V0LCBvdXQgdmVjMyBub3JtYWwpIHtcblxuICBjb25zdCBmbG9hdCBzZWdtZW50Q291bnQgPSA4LjA7XG5cbiAgZmxvYXQgaW5kZXggPSByYXdJbmRleCAtIGZsb29yKHJhd0luZGV4IC9cbiAgICAoc2VnbWVudENvdW50ICogNi4wKSkgKlxuICAgIChzZWdtZW50Q291bnQgKiA2LjApO1xuXG4gIGZsb2F0IHNlZ21lbnQgPSBmbG9vcigwLjAwMSArIGluZGV4LzYuMCk7XG4gIGZsb2F0IHNlZ21lbnRJbmRleCA9IGluZGV4IC0gKHNlZ21lbnQqNi4wKTtcblxuICBub3JtYWwgPSAtbm9ybWFsaXplKGQpO1xuXG4gIGlmIChzZWdtZW50SW5kZXggPiAyLjk5ICYmIHNlZ21lbnRJbmRleCA8IDMuMDEpIHtcbiAgICByZXR1cm4gbWl4KHZlYzMoMC4wKSwgLWQsIGNvbmVPZmZzZXQpO1xuICB9XG5cbiAgZmxvYXQgbmV4dEFuZ2xlID0gKFxuICAgIChzZWdtZW50SW5kZXggPiAwLjk5ICYmICBzZWdtZW50SW5kZXggPCAxLjAxKSB8fFxuICAgIChzZWdtZW50SW5kZXggPiA0Ljk5ICYmICBzZWdtZW50SW5kZXggPCA1LjAxKVxuICApID8gMS4wIDogMC4wO1xuICBmbG9hdCBhbmdsZSA9IDIuMCAqIDMuMTQxNTkgKiAoKHNlZ21lbnQgKyBuZXh0QW5nbGUpIC8gc2VnbWVudENvdW50KTtcblxuICB2ZWMzIHYxID0gbWl4KGQsIHZlYzMoMC4wKSwgY29uZU9mZnNldCk7XG4gIHZlYzMgdjIgPSB2MSAtIGQ7XG5cbiAgdmVjMyB1ID0gZ2V0T3J0aG9nb25hbFZlY3RvcihkKTtcbiAgdmVjMyB2ID0gbm9ybWFsaXplKGNyb3NzKHUsIGQpKTtcblxuICB2ZWMzIHggPSB1ICogY29zKGFuZ2xlKSAqIGxlbmd0aChkKSowLjI1O1xuICB2ZWMzIHkgPSB2ICogc2luKGFuZ2xlKSAqIGxlbmd0aChkKSowLjI1O1xuICB2ZWMzIHYzID0gdjIgKyB4ICsgeTtcbiAgaWYgKHNlZ21lbnRJbmRleCA8IDMuMCkge1xuICAgIHZlYzMgdHggPSB1ICogc2luKGFuZ2xlKTtcbiAgICB2ZWMzIHR5ID0gdiAqIC1jb3MoYW5nbGUpO1xuICAgIHZlYzMgdGFuZ2VudCA9IHR4ICsgdHk7XG4gICAgbm9ybWFsID0gbm9ybWFsaXplKGNyb3NzKHYzIC0gdjEsIHRhbmdlbnQpKTtcbiAgfVxuXG4gIGlmIChzZWdtZW50SW5kZXggPT0gMC4wKSB7XG4gICAgcmV0dXJuIG1peChkLCB2ZWMzKDAuMCksIGNvbmVPZmZzZXQpO1xuICB9XG4gIHJldHVybiB2Mztcbn1cblxuYXR0cmlidXRlIHZlYzQgdmVjdG9yO1xuYXR0cmlidXRlIHZlYzQgcG9zaXRpb247XG5hdHRyaWJ1dGUgdmVjNCBpZDtcblxudW5pZm9ybSBtYXQ0IG1vZGVsLCB2aWV3LCBwcm9qZWN0aW9uO1xudW5pZm9ybSBmbG9hdCB2ZWN0b3JTY2FsZSwgY29uZVNjYWxlLCBjb25lT2Zmc2V0O1xuXG52YXJ5aW5nIHZlYzMgZl9wb3NpdGlvbjtcbnZhcnlpbmcgdmVjNCBmX2lkO1xuXG52b2lkIG1haW4oKSB7XG4gIHZlYzMgbm9ybWFsO1xuICB2ZWMzIFhZWiA9IGdldENvbmVQb3NpdGlvbihtYXQzKG1vZGVsKSAqICgodmVjdG9yU2NhbGUgKiBjb25lU2NhbGUpICogdmVjdG9yLnh5eiksIHBvc2l0aW9uLncsIGNvbmVPZmZzZXQsIG5vcm1hbCk7XG4gIHZlYzQgY29uZVBvc2l0aW9uID0gbW9kZWwgKiB2ZWM0KHBvc2l0aW9uLnh5eiwgMS4wKSArIHZlYzQoWFlaLCAwLjApO1xuICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb24gKiB2aWV3ICogY29uZVBvc2l0aW9uO1xuICBmX2lkICAgICAgICA9IGlkO1xuICBmX3Bvc2l0aW9uICA9IHBvc2l0aW9uLnh5ejtcbn1cbiJdKSxzPW4oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5ib29sIG91dE9mUmFuZ2UoZmxvYXQgYSwgZmxvYXQgYiwgZmxvYXQgcCkge1xuICByZXR1cm4gKChwID4gbWF4KGEsIGIpKSB8fCBcbiAgICAgICAgICAocCA8IG1pbihhLCBiKSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMiBhLCB2ZWMyIGIsIHZlYzIgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzMgYSwgdmVjMyBiLCB2ZWMzIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS56LCBiLnosIHAueikpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjNCBhLCB2ZWM0IGIsIHZlYzQgcCkge1xuICByZXR1cm4gb3V0T2ZSYW5nZShhLnh5eiwgYi54eXosIHAueHl6KTtcbn1cblxudW5pZm9ybSB2ZWMzICBjbGlwQm91bmRzWzJdO1xudW5pZm9ybSBmbG9hdCBwaWNrSWQ7XG5cbnZhcnlpbmcgdmVjMyBmX3Bvc2l0aW9uO1xudmFyeWluZyB2ZWM0IGZfaWQ7XG5cbnZvaWQgbWFpbigpIHtcbiAgaWYgKG91dE9mUmFuZ2UoY2xpcEJvdW5kc1swXSwgY2xpcEJvdW5kc1sxXSwgZl9wb3NpdGlvbikpIGRpc2NhcmQ7XG5cbiAgZ2xfRnJhZ0NvbG9yID0gdmVjNChwaWNrSWQsIGZfaWQueHl6KTtcbn0iXSk7ci5tZXNoU2hhZGVyPXt2ZXJ0ZXg6YSxmcmFnbWVudDppLGF0dHJpYnV0ZXM6W3tuYW1lOiJwb3NpdGlvbiIsdHlwZToidmVjNCJ9LHtuYW1lOiJjb2xvciIsdHlwZToidmVjNCJ9LHtuYW1lOiJ1diIsdHlwZToidmVjMiJ9LHtuYW1lOiJ2ZWN0b3IiLHR5cGU6InZlYzMifV19LHIucGlja1NoYWRlcj17dmVydGV4Om8sZnJhZ21lbnQ6cyxhdHRyaWJ1dGVzOlt7bmFtZToicG9zaXRpb24iLHR5cGU6InZlYzQifSx7bmFtZToiaWQiLHR5cGU6InZlYzQifSx7bmFtZToidmVjdG9yIix0eXBlOiJ2ZWMzIn1dfX0se2dsc2xpZnk6NDExfV0sMjQ4OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXswOiJOT05FIiwxOiJPTkUiLDI6IkxJTkVfTE9PUCIsMzoiTElORV9TVFJJUCIsNDoiVFJJQU5HTEVTIiw1OiJUUklBTkdMRV9TVFJJUCIsNjoiVFJJQU5HTEVfRkFOIiwyNTY6IkRFUFRIX0JVRkZFUl9CSVQiLDUxMjoiTkVWRVIiLDUxMzoiTEVTUyIsNTE0OiJFUVVBTCIsNTE1OiJMRVFVQUwiLDUxNjoiR1JFQVRFUiIsNTE3OiJOT1RFUVVBTCIsNTE4OiJHRVFVQUwiLDUxOToiQUxXQVlTIiw3Njg6IlNSQ19DT0xPUiIsNzY5OiJPTkVfTUlOVVNfU1JDX0NPTE9SIiw3NzA6IlNSQ19BTFBIQSIsNzcxOiJPTkVfTUlOVVNfU1JDX0FMUEhBIiw3NzI6IkRTVF9BTFBIQSIsNzczOiJPTkVfTUlOVVNfRFNUX0FMUEhBIiw3NzQ6IkRTVF9DT0xPUiIsNzc1OiJPTkVfTUlOVVNfRFNUX0NPTE9SIiw3NzY6IlNSQ19BTFBIQV9TQVRVUkFURSIsMTAyNDoiU1RFTkNJTF9CVUZGRVJfQklUIiwxMDI4OiJGUk9OVCIsMTAyOToiQkFDSyIsMTAzMjoiRlJPTlRfQU5EX0JBQ0siLDEyODA6IklOVkFMSURfRU5VTSIsMTI4MToiSU5WQUxJRF9WQUxVRSIsMTI4MjoiSU5WQUxJRF9PUEVSQVRJT04iLDEyODU6Ik9VVF9PRl9NRU1PUlkiLDEyODY6IklOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIiwyMzA0OiJDVyIsMjMwNToiQ0NXIiwyODQ5OiJMSU5FX1dJRFRIIiwyODg0OiJDVUxMX0ZBQ0UiLDI4ODU6IkNVTExfRkFDRV9NT0RFIiwyODg2OiJGUk9OVF9GQUNFIiwyOTI4OiJERVBUSF9SQU5HRSIsMjkyOToiREVQVEhfVEVTVCIsMjkzMDoiREVQVEhfV1JJVEVNQVNLIiwyOTMxOiJERVBUSF9DTEVBUl9WQUxVRSIsMjkzMjoiREVQVEhfRlVOQyIsMjk2MDoiU1RFTkNJTF9URVNUIiwyOTYxOiJTVEVOQ0lMX0NMRUFSX1ZBTFVFIiwyOTYyOiJTVEVOQ0lMX0ZVTkMiLDI5NjM6IlNURU5DSUxfVkFMVUVfTUFTSyIsMjk2NDoiU1RFTkNJTF9GQUlMIiwyOTY1OiJTVEVOQ0lMX1BBU1NfREVQVEhfRkFJTCIsMjk2NjoiU1RFTkNJTF9QQVNTX0RFUFRIX1BBU1MiLDI5Njc6IlNURU5DSUxfUkVGIiwyOTY4OiJTVEVOQ0lMX1dSSVRFTUFTSyIsMjk3ODoiVklFV1BPUlQiLDMwMjQ6IkRJVEhFUiIsMzA0MjoiQkxFTkQiLDMwODg6IlNDSVNTT1JfQk9YIiwzMDg5OiJTQ0lTU09SX1RFU1QiLDMxMDY6IkNPTE9SX0NMRUFSX1ZBTFVFIiwzMTA3OiJDT0xPUl9XUklURU1BU0siLDMzMTc6IlVOUEFDS19BTElHTk1FTlQiLDMzMzM6IlBBQ0tfQUxJR05NRU5UIiwzMzc5OiJNQVhfVEVYVFVSRV9TSVpFIiwzMzg2OiJNQVhfVklFV1BPUlRfRElNUyIsMzQwODoiU1VCUElYRUxfQklUUyIsMzQxMDoiUkVEX0JJVFMiLDM0MTE6IkdSRUVOX0JJVFMiLDM0MTI6IkJMVUVfQklUUyIsMzQxMzoiQUxQSEFfQklUUyIsMzQxNDoiREVQVEhfQklUUyIsMzQxNToiU1RFTkNJTF9CSVRTIiwzNTUzOiJURVhUVVJFXzJEIiw0MzUyOiJET05UX0NBUkUiLDQzNTM6IkZBU1RFU1QiLDQzNTQ6Ik5JQ0VTVCIsNTEyMDoiQllURSIsNTEyMToiVU5TSUdORURfQllURSIsNTEyMjoiU0hPUlQiLDUxMjM6IlVOU0lHTkVEX1NIT1JUIiw1MTI0OiJJTlQiLDUxMjU6IlVOU0lHTkVEX0lOVCIsNTEyNjoiRkxPQVQiLDUzODY6IklOVkVSVCIsNTg5MDoiVEVYVFVSRSIsNjQwMToiU1RFTkNJTF9JTkRFWCIsNjQwMjoiREVQVEhfQ09NUE9ORU5UIiw2NDA2OiJBTFBIQSIsNjQwNzoiUkdCIiw2NDA4OiJSR0JBIiw2NDA5OiJMVU1JTkFOQ0UiLDY0MTA6IkxVTUlOQU5DRV9BTFBIQSIsNzY4MDoiS0VFUCIsNzY4MToiUkVQTEFDRSIsNzY4MjoiSU5DUiIsNzY4MzoiREVDUiIsNzkzNjoiVkVORE9SIiw3OTM3OiJSRU5ERVJFUiIsNzkzODoiVkVSU0lPTiIsOTcyODoiTkVBUkVTVCIsOTcyOToiTElORUFSIiw5OTg0OiJORUFSRVNUX01JUE1BUF9ORUFSRVNUIiw5OTg1OiJMSU5FQVJfTUlQTUFQX05FQVJFU1QiLDk5ODY6Ik5FQVJFU1RfTUlQTUFQX0xJTkVBUiIsOTk4NzoiTElORUFSX01JUE1BUF9MSU5FQVIiLDEwMjQwOiJURVhUVVJFX01BR19GSUxURVIiLDEwMjQxOiJURVhUVVJFX01JTl9GSUxURVIiLDEwMjQyOiJURVhUVVJFX1dSQVBfUyIsMTAyNDM6IlRFWFRVUkVfV1JBUF9UIiwxMDQ5NzoiUkVQRUFUIiwxMDc1MjoiUE9MWUdPTl9PRkZTRVRfVU5JVFMiLDE2Mzg0OiJDT0xPUl9CVUZGRVJfQklUIiwzMjc2OToiQ09OU1RBTlRfQ09MT1IiLDMyNzcwOiJPTkVfTUlOVVNfQ09OU1RBTlRfQ09MT1IiLDMyNzcxOiJDT05TVEFOVF9BTFBIQSIsMzI3NzI6Ik9ORV9NSU5VU19DT05TVEFOVF9BTFBIQSIsMzI3NzM6IkJMRU5EX0NPTE9SIiwzMjc3NDoiRlVOQ19BREQiLDMyNzc3OiJCTEVORF9FUVVBVElPTl9SR0IiLDMyNzc4OiJGVU5DX1NVQlRSQUNUIiwzMjc3OToiRlVOQ19SRVZFUlNFX1NVQlRSQUNUIiwzMjgxOToiVU5TSUdORURfU0hPUlRfNF80XzRfNCIsMzI4MjA6IlVOU0lHTkVEX1NIT1JUXzVfNV81XzEiLDMyODIzOiJQT0xZR09OX09GRlNFVF9GSUxMIiwzMjgyNDoiUE9MWUdPTl9PRkZTRVRfRkFDVE9SIiwzMjg1NDoiUkdCQTQiLDMyODU1OiJSR0I1X0ExIiwzMjg3MzoiVEVYVFVSRV9CSU5ESU5HXzJEIiwzMjkyNjoiU0FNUExFX0FMUEhBX1RPX0NPVkVSQUdFIiwzMjkyODoiU0FNUExFX0NPVkVSQUdFIiwzMjkzNjoiU0FNUExFX0JVRkZFUlMiLDMyOTM3OiJTQU1QTEVTIiwzMjkzODoiU0FNUExFX0NPVkVSQUdFX1ZBTFVFIiwzMjkzOToiU0FNUExFX0NPVkVSQUdFX0lOVkVSVCIsMzI5Njg6IkJMRU5EX0RTVF9SR0IiLDMyOTY5OiJCTEVORF9TUkNfUkdCIiwzMjk3MDoiQkxFTkRfRFNUX0FMUEhBIiwzMjk3MToiQkxFTkRfU1JDX0FMUEhBIiwzMzA3MToiQ0xBTVBfVE9fRURHRSIsMzMxNzA6IkdFTkVSQVRFX01JUE1BUF9ISU5UIiwzMzE4OToiREVQVEhfQ09NUE9ORU5UMTYiLDMzMzA2OiJERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQiLDMzNjM1OiJVTlNJR05FRF9TSE9SVF81XzZfNSIsMzM2NDg6Ik1JUlJPUkVEX1JFUEVBVCIsMzM5MDE6IkFMSUFTRURfUE9JTlRfU0laRV9SQU5HRSIsMzM5MDI6IkFMSUFTRURfTElORV9XSURUSF9SQU5HRSIsMzM5ODQ6IlRFWFRVUkUwIiwzMzk4NToiVEVYVFVSRTEiLDMzOTg2OiJURVhUVVJFMiIsMzM5ODc6IlRFWFRVUkUzIiwzMzk4ODoiVEVYVFVSRTQiLDMzOTg5OiJURVhUVVJFNSIsMzM5OTA6IlRFWFRVUkU2IiwzMzk5MToiVEVYVFVSRTciLDMzOTkyOiJURVhUVVJFOCIsMzM5OTM6IlRFWFRVUkU5IiwzMzk5NDoiVEVYVFVSRTEwIiwzMzk5NToiVEVYVFVSRTExIiwzMzk5NjoiVEVYVFVSRTEyIiwzMzk5NzoiVEVYVFVSRTEzIiwzMzk5ODoiVEVYVFVSRTE0IiwzMzk5OToiVEVYVFVSRTE1IiwzNDAwMDoiVEVYVFVSRTE2IiwzNDAwMToiVEVYVFVSRTE3IiwzNDAwMjoiVEVYVFVSRTE4IiwzNDAwMzoiVEVYVFVSRTE5IiwzNDAwNDoiVEVYVFVSRTIwIiwzNDAwNToiVEVYVFVSRTIxIiwzNDAwNjoiVEVYVFVSRTIyIiwzNDAwNzoiVEVYVFVSRTIzIiwzNDAwODoiVEVYVFVSRTI0IiwzNDAwOToiVEVYVFVSRTI1IiwzNDAxMDoiVEVYVFVSRTI2IiwzNDAxMToiVEVYVFVSRTI3IiwzNDAxMjoiVEVYVFVSRTI4IiwzNDAxMzoiVEVYVFVSRTI5IiwzNDAxNDoiVEVYVFVSRTMwIiwzNDAxNToiVEVYVFVSRTMxIiwzNDAxNjoiQUNUSVZFX1RFWFRVUkUiLDM0MDI0OiJNQVhfUkVOREVSQlVGRkVSX1NJWkUiLDM0MDQxOiJERVBUSF9TVEVOQ0lMIiwzNDA1NToiSU5DUl9XUkFQIiwzNDA1NjoiREVDUl9XUkFQIiwzNDA2NzoiVEVYVFVSRV9DVUJFX01BUCIsMzQwNjg6IlRFWFRVUkVfQklORElOR19DVUJFX01BUCIsMzQwNjk6IlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWCIsMzQwNzA6IlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWCIsMzQwNzE6IlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWSIsMzQwNzI6IlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWSIsMzQwNzM6IlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWiIsMzQwNzQ6IlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWiIsMzQwNzY6Ik1BWF9DVUJFX01BUF9URVhUVVJFX1NJWkUiLDM0MzM4OiJWRVJURVhfQVRUUklCX0FSUkFZX0VOQUJMRUQiLDM0MzM5OiJWRVJURVhfQVRUUklCX0FSUkFZX1NJWkUiLDM0MzQwOiJWRVJURVhfQVRUUklCX0FSUkFZX1NUUklERSIsMzQzNDE6IlZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRSIsMzQzNDI6IkNVUlJFTlRfVkVSVEVYX0FUVFJJQiIsMzQzNzM6IlZFUlRFWF9BVFRSSUJfQVJSQVlfUE9JTlRFUiIsMzQ0NjY6Ik5VTV9DT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUyIsMzQ0Njc6IkNPTVBSRVNTRURfVEVYVFVSRV9GT1JNQVRTIiwzNDY2MDoiQlVGRkVSX1NJWkUiLDM0NjYxOiJCVUZGRVJfVVNBR0UiLDM0ODE2OiJTVEVOQ0lMX0JBQ0tfRlVOQyIsMzQ4MTc6IlNURU5DSUxfQkFDS19GQUlMIiwzNDgxODoiU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfRkFJTCIsMzQ4MTk6IlNURU5DSUxfQkFDS19QQVNTX0RFUFRIX1BBU1MiLDM0ODc3OiJCTEVORF9FUVVBVElPTl9BTFBIQSIsMzQ5MjE6Ik1BWF9WRVJURVhfQVRUUklCUyIsMzQ5MjI6IlZFUlRFWF9BVFRSSUJfQVJSQVlfTk9STUFMSVpFRCIsMzQ5MzA6Ik1BWF9URVhUVVJFX0lNQUdFX1VOSVRTIiwzNDk2MjoiQVJSQVlfQlVGRkVSIiwzNDk2MzoiRUxFTUVOVF9BUlJBWV9CVUZGRVIiLDM0OTY0OiJBUlJBWV9CVUZGRVJfQklORElORyIsMzQ5NjU6IkVMRU1FTlRfQVJSQVlfQlVGRkVSX0JJTkRJTkciLDM0OTc1OiJWRVJURVhfQVRUUklCX0FSUkFZX0JVRkZFUl9CSU5ESU5HIiwzNTA0MDoiU1RSRUFNX0RSQVciLDM1MDQ0OiJTVEFUSUNfRFJBVyIsMzUwNDg6IkRZTkFNSUNfRFJBVyIsMzU2MzI6IkZSQUdNRU5UX1NIQURFUiIsMzU2MzM6IlZFUlRFWF9TSEFERVIiLDM1NjYwOiJNQVhfVkVSVEVYX1RFWFRVUkVfSU1BR0VfVU5JVFMiLDM1NjYxOiJNQVhfQ09NQklORURfVEVYVFVSRV9JTUFHRV9VTklUUyIsMzU2NjM6IlNIQURFUl9UWVBFIiwzNTY2NDoiRkxPQVRfVkVDMiIsMzU2NjU6IkZMT0FUX1ZFQzMiLDM1NjY2OiJGTE9BVF9WRUM0IiwzNTY2NzoiSU5UX1ZFQzIiLDM1NjY4OiJJTlRfVkVDMyIsMzU2Njk6IklOVF9WRUM0IiwzNTY3MDoiQk9PTCIsMzU2NzE6IkJPT0xfVkVDMiIsMzU2NzI6IkJPT0xfVkVDMyIsMzU2NzM6IkJPT0xfVkVDNCIsMzU2NzQ6IkZMT0FUX01BVDIiLDM1Njc1OiJGTE9BVF9NQVQzIiwzNTY3NjoiRkxPQVRfTUFUNCIsMzU2Nzg6IlNBTVBMRVJfMkQiLDM1NjgwOiJTQU1QTEVSX0NVQkUiLDM1NzEyOiJERUxFVEVfU1RBVFVTIiwzNTcxMzoiQ09NUElMRV9TVEFUVVMiLDM1NzE0OiJMSU5LX1NUQVRVUyIsMzU3MTU6IlZBTElEQVRFX1NUQVRVUyIsMzU3MTY6IklORk9fTE9HX0xFTkdUSCIsMzU3MTc6IkFUVEFDSEVEX1NIQURFUlMiLDM1NzE4OiJBQ1RJVkVfVU5JRk9STVMiLDM1NzE5OiJBQ1RJVkVfVU5JRk9STV9NQVhfTEVOR1RIIiwzNTcyMDoiU0hBREVSX1NPVVJDRV9MRU5HVEgiLDM1NzIxOiJBQ1RJVkVfQVRUUklCVVRFUyIsMzU3MjI6IkFDVElWRV9BVFRSSUJVVEVfTUFYX0xFTkdUSCIsMzU3MjQ6IlNIQURJTkdfTEFOR1VBR0VfVkVSU0lPTiIsMzU3MjU6IkNVUlJFTlRfUFJPR1JBTSIsMzYwMDM6IlNURU5DSUxfQkFDS19SRUYiLDM2MDA0OiJTVEVOQ0lMX0JBQ0tfVkFMVUVfTUFTSyIsMzYwMDU6IlNURU5DSUxfQkFDS19XUklURU1BU0siLDM2MDA2OiJGUkFNRUJVRkZFUl9CSU5ESU5HIiwzNjAwNzoiUkVOREVSQlVGRkVSX0JJTkRJTkciLDM2MDQ4OiJGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFIiwzNjA0OToiRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRSIsMzYwNTA6IkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9MRVZFTCIsMzYwNTE6IkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9DVUJFX01BUF9GQUNFIiwzNjA1MzoiRlJBTUVCVUZGRVJfQ09NUExFVEUiLDM2MDU0OiJGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1FTlQiLDM2MDU1OiJGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01JU1NJTkdfQVRUQUNITUVOVCIsMzYwNTc6IkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRElNRU5TSU9OUyIsMzYwNjE6IkZSQU1FQlVGRkVSX1VOU1VQUE9SVEVEIiwzNjA2NDoiQ09MT1JfQVRUQUNITUVOVDAiLDM2MDk2OiJERVBUSF9BVFRBQ0hNRU5UIiwzNjEyODoiU1RFTkNJTF9BVFRBQ0hNRU5UIiwzNjE2MDoiRlJBTUVCVUZGRVIiLDM2MTYxOiJSRU5ERVJCVUZGRVIiLDM2MTYyOiJSRU5ERVJCVUZGRVJfV0lEVEgiLDM2MTYzOiJSRU5ERVJCVUZGRVJfSEVJR0hUIiwzNjE2NDoiUkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVCIsMzYxNjg6IlNURU5DSUxfSU5ERVg4IiwzNjE3NjoiUkVOREVSQlVGRkVSX1JFRF9TSVpFIiwzNjE3NzoiUkVOREVSQlVGRkVSX0dSRUVOX1NJWkUiLDM2MTc4OiJSRU5ERVJCVUZGRVJfQkxVRV9TSVpFIiwzNjE3OToiUkVOREVSQlVGRkVSX0FMUEhBX1NJWkUiLDM2MTgwOiJSRU5ERVJCVUZGRVJfREVQVEhfU0laRSIsMzYxODE6IlJFTkRFUkJVRkZFUl9TVEVOQ0lMX1NJWkUiLDM2MTk0OiJSR0I1NjUiLDM2MzM2OiJMT1dfRkxPQVQiLDM2MzM3OiJNRURJVU1fRkxPQVQiLDM2MzM4OiJISUdIX0ZMT0FUIiwzNjMzOToiTE9XX0lOVCIsMzYzNDA6Ik1FRElVTV9JTlQiLDM2MzQxOiJISUdIX0lOVCIsMzYzNDY6IlNIQURFUl9DT01QSUxFUiIsMzYzNDc6Ik1BWF9WRVJURVhfVU5JRk9STV9WRUNUT1JTIiwzNjM0ODoiTUFYX1ZBUllJTkdfVkVDVE9SUyIsMzYzNDk6Ik1BWF9GUkFHTUVOVF9VTklGT1JNX1ZFQ1RPUlMiLDM3NDQwOiJVTlBBQ0tfRkxJUF9ZX1dFQkdMIiwzNzQ0MToiVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMIiwzNzQ0MjoiQ09OVEVYVF9MT1NUX1dFQkdMIiwzNzQ0MzoiVU5QQUNLX0NPTE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTCIsMzc0NDQ6IkJST1dTRVJfREVGQVVMVF9XRUJHTCJ9fSx7fV0sMjQ5OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi8xLjAvbnVtYmVycyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gblt0XX19LHsiLi8xLjAvbnVtYmVycyI6MjQ4fV0sMjUwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10LmdsLHI9bihlKSxvPWEoZSxbe2J1ZmZlcjpyLHR5cGU6ZS5GTE9BVCxzaXplOjMsb2Zmc2V0OjAsc3RyaWRlOjQwfSx7YnVmZmVyOnIsdHlwZTplLkZMT0FULHNpemU6NCxvZmZzZXQ6MTIsc3RyaWRlOjQwfSx7YnVmZmVyOnIsdHlwZTplLkZMT0FULHNpemU6MyxvZmZzZXQ6Mjgsc3RyaWRlOjQwfV0pLGw9aShlKTtsLmF0dHJpYnV0ZXMucG9zaXRpb24ubG9jYXRpb249MCxsLmF0dHJpYnV0ZXMuY29sb3IubG9jYXRpb249MSxsLmF0dHJpYnV0ZXMub2Zmc2V0LmxvY2F0aW9uPTI7dmFyIGM9bmV3IHMoZSxyLG8sbCk7cmV0dXJuIGMudXBkYXRlKHQpLGN9O3ZhciBuPXQoImdsLWJ1ZmZlciIpLGE9dCgiZ2wtdmFvIiksaT10KCIuL3NoYWRlcnMvaW5kZXgiKSxvPVsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwxXTtmdW5jdGlvbiBzKHQsZSxyLG4pe3RoaXMuZ2w9dCx0aGlzLnNoYWRlcj1uLHRoaXMuYnVmZmVyPWUsdGhpcy52YW89cix0aGlzLnBpeGVsUmF0aW89MSx0aGlzLmJvdW5kcz1bWzEvMCwxLzAsMS8wXSxbLTEvMCwtMS8wLC0xLzBdXSx0aGlzLmNsaXBCb3VuZHM9W1stMS8wLC0xLzAsLTEvMF0sWzEvMCwxLzAsMS8wXV0sdGhpcy5saW5lV2lkdGg9WzEsMSwxXSx0aGlzLmNhcFNpemU9WzEwLDEwLDEwXSx0aGlzLmxpbmVDb3VudD1bMCwwLDBdLHRoaXMubGluZU9mZnNldD1bMCwwLDBdLHRoaXMub3BhY2l0eT0xLHRoaXMuaGFzQWxwaGE9ITF9dmFyIGw9cy5wcm90b3R5cGU7ZnVuY3Rpb24gYyh0LGUpe2Zvcih2YXIgcj0wO3I8MzsrK3IpdFswXVtyXT1NYXRoLm1pbih0WzBdW3JdLGVbcl0pLHRbMV1bcl09TWF0aC5tYXgodFsxXVtyXSxlW3JdKX1sLmlzT3BhcXVlPWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaGFzQWxwaGF9LGwuaXNUcmFuc3BhcmVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmhhc0FscGhhfSxsLmRyYXdUcmFuc3BhcmVudD1sLmRyYXc9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5nbCxyPXRoaXMuc2hhZGVyLnVuaWZvcm1zO3RoaXMuc2hhZGVyLmJpbmQoKTt2YXIgbj1yLnZpZXc9dC52aWV3fHxvLGE9ci5wcm9qZWN0aW9uPXQucHJvamVjdGlvbnx8bztyLm1vZGVsPXQubW9kZWx8fG8sci5jbGlwQm91bmRzPXRoaXMuY2xpcEJvdW5kcyxyLm9wYWNpdHk9dGhpcy5vcGFjaXR5O3ZhciBpPW5bMTJdLHM9blsxM10sbD1uWzE0XSxjPW5bMTVdLHU9KHQuX29ydGhvfHwhMT8yOjEpKnRoaXMucGl4ZWxSYXRpbyooYVszXSppK2FbN10qcythWzExXSpsK2FbMTVdKmMpL2UuZHJhd2luZ0J1ZmZlckhlaWdodDt0aGlzLnZhby5iaW5kKCk7Zm9yKHZhciBoPTA7aDwzOysraCllLmxpbmVXaWR0aCh0aGlzLmxpbmVXaWR0aFtoXSp0aGlzLnBpeGVsUmF0aW8pLHIuY2FwU2l6ZT10aGlzLmNhcFNpemVbaF0qdSx0aGlzLmxpbmVDb3VudFtoXSYmZS5kcmF3QXJyYXlzKGUuTElORVMsdGhpcy5saW5lT2Zmc2V0W2hdLHRoaXMubGluZUNvdW50W2hdKTt0aGlzLnZhby51bmJpbmQoKX07dmFyIHU9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9bmV3IEFycmF5KDMpLGU9MDtlPDM7KytlKXtmb3IodmFyIHI9W10sbj0xO248PTI7KytuKWZvcih2YXIgYT0tMTthPD0xO2ErPTIpe3ZhciBpPVswLDAsMF07aVsobitlKSUzXT1hLHIucHVzaChpKX10W2VdPXJ9cmV0dXJuIHR9KCk7ZnVuY3Rpb24gaCh0LGUscixuKXtmb3IodmFyIGE9dVtuXSxpPTA7aTxhLmxlbmd0aDsrK2kpe3ZhciBvPWFbaV07dC5wdXNoKGVbMF0sZVsxXSxlWzJdLHJbMF0sclsxXSxyWzJdLHJbM10sb1swXSxvWzFdLG9bMl0pfXJldHVybiBhLmxlbmd0aH1sLnVwZGF0ZT1mdW5jdGlvbih0KXsibGluZVdpZHRoImluKHQ9dHx8e30pJiYodGhpcy5saW5lV2lkdGg9dC5saW5lV2lkdGgsQXJyYXkuaXNBcnJheSh0aGlzLmxpbmVXaWR0aCl8fCh0aGlzLmxpbmVXaWR0aD1bdGhpcy5saW5lV2lkdGgsdGhpcy5saW5lV2lkdGgsdGhpcy5saW5lV2lkdGhdKSksImNhcFNpemUiaW4gdCYmKHRoaXMuY2FwU2l6ZT10LmNhcFNpemUsQXJyYXkuaXNBcnJheSh0aGlzLmNhcFNpemUpfHwodGhpcy5jYXBTaXplPVt0aGlzLmNhcFNpemUsdGhpcy5jYXBTaXplLHRoaXMuY2FwU2l6ZV0pKSx0aGlzLmhhc0FscGhhPSExLCJvcGFjaXR5ImluIHQmJih0aGlzLm9wYWNpdHk9K3Qub3BhY2l0eSx0aGlzLm9wYWNpdHk8MSYmKHRoaXMuaGFzQWxwaGE9ITApKTt2YXIgZT10LmNvbG9yfHxbWzAsMCwwXSxbMCwwLDBdLFswLDAsMF1dLHI9dC5wb3NpdGlvbixuPXQuZXJyb3I7aWYoQXJyYXkuaXNBcnJheShlWzBdKXx8KGU9W2UsZSxlXSksciYmbil7dmFyIGE9W10saT1yLmxlbmd0aCxvPTA7dGhpcy5ib3VuZHM9W1sxLzAsMS8wLDEvMF0sWy0xLzAsLTEvMCwtMS8wXV0sdGhpcy5saW5lQ291bnQ9WzAsMCwwXTtmb3IodmFyIHM9MDtzPDM7KytzKXt0aGlzLmxpbmVPZmZzZXRbc109bzt0OmZvcih2YXIgbD0wO2w8aTsrK2wpe2Zvcih2YXIgdT1yW2xdLGY9MDtmPDM7KytmKWlmKGlzTmFOKHVbZl0pfHwhaXNGaW5pdGUodVtmXSkpY29udGludWUgdDt2YXIgcD1uW2xdLGQ9ZVtzXTtpZihBcnJheS5pc0FycmF5KGRbMF0pJiYoZD1lW2xdKSwzPT09ZC5sZW5ndGg/ZD1bZFswXSxkWzFdLGRbMl0sMV06ND09PWQubGVuZ3RoJiYoZD1bZFswXSxkWzFdLGRbMl0sZFszXV0sIXRoaXMuaGFzQWxwaGEmJmRbM108MSYmKHRoaXMuaGFzQWxwaGE9ITApKSwhaXNOYU4ocFswXVtzXSkmJiFpc05hTihwWzFdW3NdKSl7dmFyIGc7aWYocFswXVtzXTwwKShnPXUuc2xpY2UoKSlbc10rPXBbMF1bc10sYS5wdXNoKHVbMF0sdVsxXSx1WzJdLGRbMF0sZFsxXSxkWzJdLGRbM10sMCwwLDAsZ1swXSxnWzFdLGdbMl0sZFswXSxkWzFdLGRbMl0sZFszXSwwLDAsMCksYyh0aGlzLmJvdW5kcyxnKSxvKz0yK2goYSxnLGQscyk7aWYocFsxXVtzXT4wKShnPXUuc2xpY2UoKSlbc10rPXBbMV1bc10sYS5wdXNoKHVbMF0sdVsxXSx1WzJdLGRbMF0sZFsxXSxkWzJdLGRbM10sMCwwLDAsZ1swXSxnWzFdLGdbMl0sZFswXSxkWzFdLGRbMl0sZFszXSwwLDAsMCksYyh0aGlzLmJvdW5kcyxnKSxvKz0yK2goYSxnLGQscyl9fXRoaXMubGluZUNvdW50W3NdPW8tdGhpcy5saW5lT2Zmc2V0W3NdfXRoaXMuYnVmZmVyLnVwZGF0ZShhKX19LGwuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuc2hhZGVyLmRpc3Bvc2UoKSx0aGlzLmJ1ZmZlci5kaXNwb3NlKCksdGhpcy52YW8uZGlzcG9zZSgpfX0seyIuL3NoYWRlcnMvaW5kZXgiOjI1MSwiZ2wtYnVmZmVyIjoyNDQsImdsLXZhbyI6MzI5fV0sMjUxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImdsc2xpZnkiKSxhPXQoImdsLXNoYWRlciIpLGk9bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uLCBvZmZzZXQ7XG5hdHRyaWJ1dGUgdmVjNCBjb2xvcjtcbnVuaWZvcm0gbWF0NCBtb2RlbCwgdmlldywgcHJvamVjdGlvbjtcbnVuaWZvcm0gZmxvYXQgY2FwU2l6ZTtcbnZhcnlpbmcgdmVjNCBmcmFnQ29sb3I7XG52YXJ5aW5nIHZlYzMgZnJhZ1Bvc2l0aW9uO1xuXG52b2lkIG1haW4oKSB7XG4gIHZlYzQgd29ybGRQb3NpdGlvbiAgPSBtb2RlbCAqIHZlYzQocG9zaXRpb24sIDEuMCk7XG4gIHdvcmxkUG9zaXRpb24gICAgICAgPSAod29ybGRQb3NpdGlvbiAvIHdvcmxkUG9zaXRpb24udykgKyB2ZWM0KGNhcFNpemUgKiBvZmZzZXQsIDAuMCk7XG4gIGdsX1Bvc2l0aW9uICAgICAgICAgPSBwcm9qZWN0aW9uICogdmlldyAqIHdvcmxkUG9zaXRpb247XG4gIGZyYWdDb2xvciAgICAgICAgICAgPSBjb2xvcjtcbiAgZnJhZ1Bvc2l0aW9uICAgICAgICA9IHBvc2l0aW9uO1xufSJdKSxvPW4oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5ib29sIG91dE9mUmFuZ2UoZmxvYXQgYSwgZmxvYXQgYiwgZmxvYXQgcCkge1xuICByZXR1cm4gKChwID4gbWF4KGEsIGIpKSB8fCBcbiAgICAgICAgICAocCA8IG1pbihhLCBiKSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMiBhLCB2ZWMyIGIsIHZlYzIgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzMgYSwgdmVjMyBiLCB2ZWMzIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS56LCBiLnosIHAueikpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjNCBhLCB2ZWM0IGIsIHZlYzQgcCkge1xuICByZXR1cm4gb3V0T2ZSYW5nZShhLnh5eiwgYi54eXosIHAueHl6KTtcbn1cblxudW5pZm9ybSB2ZWMzIGNsaXBCb3VuZHNbMl07XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG52YXJ5aW5nIHZlYzMgZnJhZ1Bvc2l0aW9uO1xudmFyeWluZyB2ZWM0IGZyYWdDb2xvcjtcblxudm9pZCBtYWluKCkge1xuICBpZiAoXG4gICAgb3V0T2ZSYW5nZShjbGlwQm91bmRzWzBdLCBjbGlwQm91bmRzWzFdLCBmcmFnUG9zaXRpb24pIHx8XG4gICAgZnJhZ0NvbG9yLmEgKiBvcGFjaXR5ID09IDAuXG4gICkgZGlzY2FyZDtcblxuICBnbF9GcmFnQ29sb3IgPSBvcGFjaXR5ICogZnJhZ0NvbG9yO1xufSJdKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGEodCxpLG8sbnVsbCxbe25hbWU6InBvc2l0aW9uIix0eXBlOiJ2ZWMzIn0se25hbWU6ImNvbG9yIix0eXBlOiJ2ZWM0In0se25hbWU6Im9mZnNldCIsdHlwZToidmVjMyJ9XSl9fSx7ImdsLXNoYWRlciI6MzA0LGdsc2xpZnk6NDExfV0sMjUyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImdsLXRleHR1cmUyZCIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuKXthfHwoYT10LkZSQU1FQlVGRkVSX1VOU1VQUE9SVEVELGk9dC5GUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1FTlQsbz10LkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRElNRU5TSU9OUyxzPXQuRlJBTUVCVUZGRVJfSU5DT01QTEVURV9NSVNTSU5HX0FUVEFDSE1FTlQpO3ZhciBjPXQuZ2V0RXh0ZW5zaW9uKCJXRUJHTF9kcmF3X2J1ZmZlcnMiKTshbCYmYyYmZnVuY3Rpb24odCxlKXt2YXIgcj10LmdldFBhcmFtZXRlcihlLk1BWF9DT0xPUl9BVFRBQ0hNRU5UU19XRUJHTCk7bD1uZXcgQXJyYXkocisxKTtmb3IodmFyIG49MDtuPD1yOysrbil7Zm9yKHZhciBhPW5ldyBBcnJheShyKSxpPTA7aTxuOysraSlhW2ldPXQuQ09MT1JfQVRUQUNITUVOVDAraTtmb3IodmFyIGk9bjtpPHI7KytpKWFbaV09dC5OT05FO2xbbl09YX19KHQsYyk7QXJyYXkuaXNBcnJheShlKSYmKG49cixyPTB8ZVsxXSxlPTB8ZVswXSk7aWYoIm51bWJlciIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigiZ2wtZmJvOiBNaXNzaW5nIHNoYXBlIHBhcmFtZXRlciIpO3ZhciB1PXQuZ2V0UGFyYW1ldGVyKHQuTUFYX1JFTkRFUkJVRkZFUl9TSVpFKTtpZihlPDB8fGU+dXx8cjwwfHxyPnUpdGhyb3cgbmV3IEVycm9yKCJnbC1mYm86IFBhcmFtZXRlcnMgYXJlIHRvbyBsYXJnZSBmb3IgRkJPIik7dmFyIGg9MTtpZigiY29sb3IiaW4obj1ufHx7fSkpe2lmKChoPU1hdGgubWF4KDB8bi5jb2xvciwwKSk8MCl0aHJvdyBuZXcgRXJyb3IoImdsLWZibzogTXVzdCBzcGVjaWZ5IGEgbm9ubmVnYXRpdmUgbnVtYmVyIG9mIGNvbG9ycyIpO2lmKGg+MSl7aWYoIWMpdGhyb3cgbmV3IEVycm9yKCJnbC1mYm86IE11bHRpcGxlIGRyYXcgYnVmZmVyIGV4dGVuc2lvbiBub3Qgc3VwcG9ydGVkIik7aWYoaD50LmdldFBhcmFtZXRlcihjLk1BWF9DT0xPUl9BVFRBQ0hNRU5UU19XRUJHTCkpdGhyb3cgbmV3IEVycm9yKCJnbC1mYm86IENvbnRleHQgZG9lcyBub3Qgc3VwcG9ydCAiK2grIiBkcmF3IGJ1ZmZlcnMiKX19dmFyIGY9dC5VTlNJR05FRF9CWVRFLHA9dC5nZXRFeHRlbnNpb24oIk9FU190ZXh0dXJlX2Zsb2F0Iik7aWYobi5mbG9hdCYmaD4wKXtpZighcCl0aHJvdyBuZXcgRXJyb3IoImdsLWZibzogQ29udGV4dCBkb2VzIG5vdCBzdXBwb3J0IGZsb2F0aW5nIHBvaW50IHRleHR1cmVzIik7Zj10LkZMT0FUfWVsc2Ugbi5wcmVmZXJGbG9hdCYmaD4wJiZwJiYoZj10LkZMT0FUKTt2YXIgZz0hMDsiZGVwdGgiaW4gbiYmKGc9ISFuLmRlcHRoKTt2YXIgdj0hMTsic3RlbmNpbCJpbiBuJiYodj0hIW4uc3RlbmNpbCk7cmV0dXJuIG5ldyBkKHQsZSxyLGYsaCxnLHYsYyl9O3ZhciBhLGksbyxzLGw9bnVsbDtmdW5jdGlvbiBjKHQpe3JldHVyblt0LmdldFBhcmFtZXRlcih0LkZSQU1FQlVGRkVSX0JJTkRJTkcpLHQuZ2V0UGFyYW1ldGVyKHQuUkVOREVSQlVGRkVSX0JJTkRJTkcpLHQuZ2V0UGFyYW1ldGVyKHQuVEVYVFVSRV9CSU5ESU5HXzJEKV19ZnVuY3Rpb24gdSh0LGUpe3QuYmluZEZyYW1lYnVmZmVyKHQuRlJBTUVCVUZGRVIsZVswXSksdC5iaW5kUmVuZGVyYnVmZmVyKHQuUkVOREVSQlVGRkVSLGVbMV0pLHQuYmluZFRleHR1cmUodC5URVhUVVJFXzJELGVbMl0pfWZ1bmN0aW9uIGgodCl7c3dpdGNoKHQpe2Nhc2UgYTp0aHJvdyBuZXcgRXJyb3IoImdsLWZibzogRnJhbWVidWZmZXIgdW5zdXBwb3J0ZWQiKTtjYXNlIGk6dGhyb3cgbmV3IEVycm9yKCJnbC1mYm86IEZyYW1lYnVmZmVyIGluY29tcGxldGUgYXR0YWNobWVudCIpO2Nhc2Ugbzp0aHJvdyBuZXcgRXJyb3IoImdsLWZibzogRnJhbWVidWZmZXIgaW5jb21wbGV0ZSBkaW1lbnNpb25zIik7Y2FzZSBzOnRocm93IG5ldyBFcnJvcigiZ2wtZmJvOiBGcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIG1pc3NpbmcgYXR0YWNobWVudCIpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJnbC1mYm86IEZyYW1lYnVmZmVyIGZhaWxlZCBmb3IgdW5zcGVjaWZpZWQgcmVhc29uIil9fWZ1bmN0aW9uIGYodCxlLHIsYSxpLG8pe2lmKCFhKXJldHVybiBudWxsO3ZhciBzPW4odCxlLHIsaSxhKTtyZXR1cm4gcy5tYWdGaWx0ZXI9dC5ORUFSRVNULHMubWluRmlsdGVyPXQuTkVBUkVTVCxzLm1pcFNhbXBsZXM9MSxzLmJpbmQoKSx0LmZyYW1lYnVmZmVyVGV4dHVyZTJEKHQuRlJBTUVCVUZGRVIsbyx0LlRFWFRVUkVfMkQscy5oYW5kbGUsMCksc31mdW5jdGlvbiBwKHQsZSxyLG4sYSl7dmFyIGk9dC5jcmVhdGVSZW5kZXJidWZmZXIoKTtyZXR1cm4gdC5iaW5kUmVuZGVyYnVmZmVyKHQuUkVOREVSQlVGRkVSLGkpLHQucmVuZGVyYnVmZmVyU3RvcmFnZSh0LlJFTkRFUkJVRkZFUixuLGUsciksdC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcih0LkZSQU1FQlVGRkVSLGEsdC5SRU5ERVJCVUZGRVIsaSksaX1mdW5jdGlvbiBkKHQsZSxyLG4sYSxpLG8scyl7dGhpcy5nbD10LHRoaXMuX3NoYXBlPVswfGUsMHxyXSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fZXh0PXMsdGhpcy5jb2xvcj1uZXcgQXJyYXkoYSk7Zm9yKHZhciBkPTA7ZDxhOysrZCl0aGlzLmNvbG9yW2RdPW51bGw7dGhpcy5fY29sb3JfcmI9bnVsbCx0aGlzLmRlcHRoPW51bGwsdGhpcy5fZGVwdGhfcmI9bnVsbCx0aGlzLl9jb2xvclR5cGU9bix0aGlzLl91c2VEZXB0aD1pLHRoaXMuX3VzZVN0ZW5jaWw9bzt2YXIgZz10aGlzLHY9WzB8ZSwwfHJdO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHYsezA6e2dldDpmdW5jdGlvbigpe3JldHVybiBnLl9zaGFwZVswXX0sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiBnLndpZHRoPXR9fSwxOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZy5fc2hhcGVbMV19LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gZy5oZWlnaHQ9dH19fSksdGhpcy5fc2hhcGVWZWN0b3I9dixmdW5jdGlvbih0KXt2YXIgZT1jKHQuZ2wpLHI9dC5nbCxuPXQuaGFuZGxlPXIuY3JlYXRlRnJhbWVidWZmZXIoKSxhPXQuX3NoYXBlWzBdLGk9dC5fc2hhcGVbMV0sbz10LmNvbG9yLmxlbmd0aCxzPXQuX2V4dCxkPXQuX3VzZVN0ZW5jaWwsZz10Ll91c2VEZXB0aCx2PXQuX2NvbG9yVHlwZTtyLmJpbmRGcmFtZWJ1ZmZlcihyLkZSQU1FQlVGRkVSLG4pO2Zvcih2YXIgbT0wO208bzsrK20pdC5jb2xvclttXT1mKHIsYSxpLHYsci5SR0JBLHIuQ09MT1JfQVRUQUNITUVOVDArbSk7MD09PW8/KHQuX2NvbG9yX3JiPXAocixhLGksci5SR0JBNCxyLkNPTE9SX0FUVEFDSE1FTlQwKSxzJiZzLmRyYXdCdWZmZXJzV0VCR0wobFswXSkpOm8+MSYmcy5kcmF3QnVmZmVyc1dFQkdMKGxbb10pO3ZhciB5PXIuZ2V0RXh0ZW5zaW9uKCJXRUJHTF9kZXB0aF90ZXh0dXJlIik7eT9kP3QuZGVwdGg9ZihyLGEsaSx5LlVOU0lHTkVEX0lOVF8yNF84X1dFQkdMLHIuREVQVEhfU1RFTkNJTCxyLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCk6ZyYmKHQuZGVwdGg9ZihyLGEsaSxyLlVOU0lHTkVEX1NIT1JULHIuREVQVEhfQ09NUE9ORU5ULHIuREVQVEhfQVRUQUNITUVOVCkpOmcmJmQ/dC5fZGVwdGhfcmI9cChyLGEsaSxyLkRFUFRIX1NURU5DSUwsci5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQpOmc/dC5fZGVwdGhfcmI9cChyLGEsaSxyLkRFUFRIX0NPTVBPTkVOVDE2LHIuREVQVEhfQVRUQUNITUVOVCk6ZCYmKHQuX2RlcHRoX3JiPXAocixhLGksci5TVEVOQ0lMX0lOREVYLHIuU1RFTkNJTF9BVFRBQ0hNRU5UKSk7dmFyIHg9ci5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKHIuRlJBTUVCVUZGRVIpO2lmKHghPT1yLkZSQU1FQlVGRkVSX0NPTVBMRVRFKXtmb3IodC5fZGVzdHJveWVkPSEwLHIuYmluZEZyYW1lYnVmZmVyKHIuRlJBTUVCVUZGRVIsbnVsbCksci5kZWxldGVGcmFtZWJ1ZmZlcih0LmhhbmRsZSksdC5oYW5kbGU9bnVsbCx0LmRlcHRoJiYodC5kZXB0aC5kaXNwb3NlKCksdC5kZXB0aD1udWxsKSx0Ll9kZXB0aF9yYiYmKHIuZGVsZXRlUmVuZGVyYnVmZmVyKHQuX2RlcHRoX3JiKSx0Ll9kZXB0aF9yYj1udWxsKSxtPTA7bTx0LmNvbG9yLmxlbmd0aDsrK20pdC5jb2xvclttXS5kaXNwb3NlKCksdC5jb2xvclttXT1udWxsO3QuX2NvbG9yX3JiJiYoci5kZWxldGVSZW5kZXJidWZmZXIodC5fY29sb3JfcmIpLHQuX2NvbG9yX3JiPW51bGwpLHUocixlKSxoKHgpfXUocixlKX0odGhpcyl9dmFyIGc9ZC5wcm90b3R5cGU7ZnVuY3Rpb24gdih0LGUscil7aWYodC5fZGVzdHJveWVkKXRocm93IG5ldyBFcnJvcigiZ2wtZmJvOiBDYW4ndCByZXNpemUgZGVzdHJveWVkIEZCTyIpO2lmKHQuX3NoYXBlWzBdIT09ZXx8dC5fc2hhcGVbMV0hPT1yKXt2YXIgbj10LmdsLGE9bi5nZXRQYXJhbWV0ZXIobi5NQVhfUkVOREVSQlVGRkVSX1NJWkUpO2lmKGU8MHx8ZT5hfHxyPDB8fHI+YSl0aHJvdyBuZXcgRXJyb3IoImdsLWZibzogQ2FuJ3QgcmVzaXplIEZCTywgaW52YWxpZCBkaW1lbnNpb25zIik7dC5fc2hhcGVbMF09ZSx0Ll9zaGFwZVsxXT1yO2Zvcih2YXIgaT1jKG4pLG89MDtvPHQuY29sb3IubGVuZ3RoOysrbyl0LmNvbG9yW29dLnNoYXBlPXQuX3NoYXBlO3QuX2NvbG9yX3JiJiYobi5iaW5kUmVuZGVyYnVmZmVyKG4uUkVOREVSQlVGRkVSLHQuX2NvbG9yX3JiKSxuLnJlbmRlcmJ1ZmZlclN0b3JhZ2Uobi5SRU5ERVJCVUZGRVIsbi5SR0JBNCx0Ll9zaGFwZVswXSx0Ll9zaGFwZVsxXSkpLHQuZGVwdGgmJih0LmRlcHRoLnNoYXBlPXQuX3NoYXBlKSx0Ll9kZXB0aF9yYiYmKG4uYmluZFJlbmRlcmJ1ZmZlcihuLlJFTkRFUkJVRkZFUix0Ll9kZXB0aF9yYiksdC5fdXNlRGVwdGgmJnQuX3VzZVN0ZW5jaWw/bi5yZW5kZXJidWZmZXJTdG9yYWdlKG4uUkVOREVSQlVGRkVSLG4uREVQVEhfU1RFTkNJTCx0Ll9zaGFwZVswXSx0Ll9zaGFwZVsxXSk6dC5fdXNlRGVwdGg/bi5yZW5kZXJidWZmZXJTdG9yYWdlKG4uUkVOREVSQlVGRkVSLG4uREVQVEhfQ09NUE9ORU5UMTYsdC5fc2hhcGVbMF0sdC5fc2hhcGVbMV0pOnQuX3VzZVN0ZW5jaWwmJm4ucmVuZGVyYnVmZmVyU3RvcmFnZShuLlJFTkRFUkJVRkZFUixuLlNURU5DSUxfSU5ERVgsdC5fc2hhcGVbMF0sdC5fc2hhcGVbMV0pKSxuLmJpbmRGcmFtZWJ1ZmZlcihuLkZSQU1FQlVGRkVSLHQuaGFuZGxlKTt2YXIgcz1uLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMobi5GUkFNRUJVRkZFUik7cyE9PW4uRlJBTUVCVUZGRVJfQ09NUExFVEUmJih0LmRpc3Bvc2UoKSx1KG4saSksaChzKSksdShuLGkpfX1PYmplY3QuZGVmaW5lUHJvcGVydGllcyhnLHtzaGFwZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Rlc3Ryb3llZD9bMCwwXTp0aGlzLl9zaGFwZVZlY3Rvcn0sc2V0OmZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCl8fCh0PVswfHQsMHx0XSksMiE9PXQubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiZ2wtZmJvOiBTaGFwZSB2ZWN0b3IgbXVzdCBiZSBsZW5ndGggMiIpO3ZhciBlPTB8dFswXSxyPTB8dFsxXTtyZXR1cm4gdih0aGlzLGUsciksW2Uscl19LGVudW1lcmFibGU6ITF9LHdpZHRoOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVzdHJveWVkPzA6dGhpcy5fc2hhcGVbMF19LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gdih0aGlzLHR8PTAsdGhpcy5fc2hhcGVbMV0pLHR9LGVudW1lcmFibGU6ITF9LGhlaWdodDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Rlc3Ryb3llZD8wOnRoaXMuX3NoYXBlWzFdfSxzZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHR8PTAsdih0aGlzLHRoaXMuX3NoYXBlWzBdLHQpLHR9LGVudW1lcmFibGU6ITF9fSksZy5iaW5kPWZ1bmN0aW9uKCl7aWYoIXRoaXMuX2Rlc3Ryb3llZCl7dmFyIHQ9dGhpcy5nbDt0LmJpbmRGcmFtZWJ1ZmZlcih0LkZSQU1FQlVGRkVSLHRoaXMuaGFuZGxlKSx0LnZpZXdwb3J0KDAsMCx0aGlzLl9zaGFwZVswXSx0aGlzLl9zaGFwZVsxXSl9fSxnLmRpc3Bvc2U9ZnVuY3Rpb24oKXtpZighdGhpcy5fZGVzdHJveWVkKXt0aGlzLl9kZXN0cm95ZWQ9ITA7dmFyIHQ9dGhpcy5nbDt0LmRlbGV0ZUZyYW1lYnVmZmVyKHRoaXMuaGFuZGxlKSx0aGlzLmhhbmRsZT1udWxsLHRoaXMuZGVwdGgmJih0aGlzLmRlcHRoLmRpc3Bvc2UoKSx0aGlzLmRlcHRoPW51bGwpLHRoaXMuX2RlcHRoX3JiJiYodC5kZWxldGVSZW5kZXJidWZmZXIodGhpcy5fZGVwdGhfcmIpLHRoaXMuX2RlcHRoX3JiPW51bGwpO2Zvcih2YXIgZT0wO2U8dGhpcy5jb2xvci5sZW5ndGg7KytlKXRoaXMuY29sb3JbZV0uZGlzcG9zZSgpLHRoaXMuY29sb3JbZV09bnVsbDt0aGlzLl9jb2xvcl9yYiYmKHQuZGVsZXRlUmVuZGVyYnVmZmVyKHRoaXMuX2NvbG9yX3JiKSx0aGlzLl9jb2xvcl9yYj1udWxsKX19fSx7ImdsLXRleHR1cmUyZCI6MzI0fV0sMjUzOltmdW5jdGlvbih0LGUscil7dmFyIG49dCgic3ByaW50Zi1qcyIpLnNwcmludGYsYT10KCJnbC1jb25zdGFudHMvbG9va3VwIiksaT10KCJnbHNsLXNoYWRlci1uYW1lIiksbz10KCJhZGQtbGluZS1udW1iZXJzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIHM9aShlKXx8Im9mIHVua25vd24gbmFtZSAoc2VlIG5wbSBnbHNsLXNoYWRlci1uYW1lKSIsbD0idW5rbm93biB0eXBlIjt2b2lkIDAhPT1yJiYobD1yPT09YS5GUkFHTUVOVF9TSEFERVI/ImZyYWdtZW50IjoidmVydGV4Iik7Zm9yKHZhciBjPW4oIkVycm9yIGNvbXBpbGluZyAlcyBzaGFkZXIgJXM6XG4iLGwscyksdT1uKCIlcyVzIixjLHQpLGg9dC5zcGxpdCgiXG4iKSxmPXt9LHA9MDtwPGgubGVuZ3RoO3ArKyl7dmFyIGQ9aFtwXTtpZigiIiE9PWQmJiJcMCIhPT1kKXt2YXIgZz1wYXJzZUludChkLnNwbGl0KCI6IilbMl0pO2lmKGlzTmFOKGcpKXRocm93IG5ldyBFcnJvcihuKCJDb3VsZCBub3QgcGFyc2UgZXJyb3I6ICVzIixkKSk7ZltnXT1kfX1mb3IodmFyIHY9byhlKS5zcGxpdCgiXG4iKSxwPTA7cDx2Lmxlbmd0aDtwKyspaWYoZltwKzNdfHxmW3ArMl18fGZbcCsxXSl7dmFyIG09dltwXTtpZihjKz1tKyJcbiIsZltwKzFdKXt2YXIgeT1mW3ArMV07eT15LnN1YnN0cih5LnNwbGl0KCI6IiwzKS5qb2luKCI6IikubGVuZ3RoKzEpLnRyaW0oKSxjKz1uKCJeXl4gJXNcblxuIix5KX19cmV0dXJue2xvbmc6Yy50cmltKCksc2hvcnQ6dS50cmltKCl9fX0seyJhZGQtbGluZS1udW1iZXJzIjo2NCwiZ2wtY29uc3RhbnRzL2xvb2t1cCI6MjQ5LCJnbHNsLXNoYWRlci1uYW1lIjo0MDMsInNwcmludGYtanMiOjUyN31dLDI1NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10LmdsLG49byhyLGwudmVydGV4LGwuZnJhZ21lbnQpLGE9byhyLGwucGlja1ZlcnRleCxsLnBpY2tGcmFnbWVudCksaT1zKHIpLHU9cyhyKSxoPXMociksZj1zKHIpLHA9bmV3IGModCxuLGEsaSx1LGgsZik7cmV0dXJuIHAudXBkYXRlKGUpLHQuYWRkT2JqZWN0KHApLHB9O3ZhciBuPXQoImJpbmFyeS1zZWFyY2gtYm91bmRzIiksYT10KCJpb3RhLWFycmF5IiksaT10KCJ0eXBlZGFycmF5LXBvb2wiKSxvPXQoImdsLXNoYWRlciIpLHM9dCgiZ2wtYnVmZmVyIiksbD10KCIuL2xpYi9zaGFkZXJzIik7ZnVuY3Rpb24gYyh0LGUscixuLGEsaSxvKXt0aGlzLnBsb3Q9dCx0aGlzLnNoYWRlcj1lLHRoaXMucGlja1NoYWRlcj1yLHRoaXMucG9zaXRpb25CdWZmZXI9bix0aGlzLndlaWdodEJ1ZmZlcj1hLHRoaXMuY29sb3JCdWZmZXI9aSx0aGlzLmlkQnVmZmVyPW8sdGhpcy54RGF0YT1bXSx0aGlzLnlEYXRhPVtdLHRoaXMuc2hhcGU9WzAsMF0sdGhpcy5ib3VuZHM9WzEvMCwxLzAsLTEvMCwtMS8wXSx0aGlzLnBpY2tPZmZzZXQ9MH12YXIgdSxoPWMucHJvdG90eXBlLGY9WzAsMCwxLDAsMCwxLDEsMCwxLDEsMCwxXTtoLmRyYXc9KHU9WzEsMCwwLDAsMSwwLDAsMCwxXSxmdW5jdGlvbigpe3ZhciB0PXRoaXMucGxvdCxlPXRoaXMuc2hhZGVyLHI9dGhpcy5ib3VuZHMsbj10aGlzLm51bVZlcnRpY2VzO2lmKCEobjw9MCkpe3ZhciBhPXQuZ2wsaT10LmRhdGFCb3gsbz1yWzJdLXJbMF0scz1yWzNdLXJbMV0sbD1pWzJdLWlbMF0sYz1pWzNdLWlbMV07dVswXT0yKm8vbCx1WzRdPTIqcy9jLHVbNl09MiooclswXS1pWzBdKS9sLTEsdVs3XT0yKihyWzFdLWlbMV0pL2MtMSxlLmJpbmQoKTt2YXIgaD1lLnVuaWZvcm1zO2gudmlld1RyYW5zZm9ybT11LGguc2hhcGU9dGhpcy5zaGFwZTt2YXIgZj1lLmF0dHJpYnV0ZXM7dGhpcy5wb3NpdGlvbkJ1ZmZlci5iaW5kKCksZi5wb3NpdGlvbi5wb2ludGVyKCksdGhpcy53ZWlnaHRCdWZmZXIuYmluZCgpLGYud2VpZ2h0LnBvaW50ZXIoYS5VTlNJR05FRF9CWVRFLCExKSx0aGlzLmNvbG9yQnVmZmVyLmJpbmQoKSxmLmNvbG9yLnBvaW50ZXIoYS5VTlNJR05FRF9CWVRFLCEwKSxhLmRyYXdBcnJheXMoYS5UUklBTkdMRVMsMCxuKX19KSxoLmRyYXdQaWNrPWZ1bmN0aW9uKCl7dmFyIHQ9WzEsMCwwLDAsMSwwLDAsMCwxXSxlPVswLDAsMCwwXTtyZXR1cm4gZnVuY3Rpb24ocil7dmFyIG49dGhpcy5wbG90LGE9dGhpcy5waWNrU2hhZGVyLGk9dGhpcy5ib3VuZHMsbz10aGlzLm51bVZlcnRpY2VzO2lmKCEobzw9MCkpe3ZhciBzPW4uZ2wsbD1uLmRhdGFCb3gsYz1pWzJdLWlbMF0sdT1pWzNdLWlbMV0saD1sWzJdLWxbMF0sZj1sWzNdLWxbMV07dFswXT0yKmMvaCx0WzRdPTIqdS9mLHRbNl09MiooaVswXS1sWzBdKS9oLTEsdFs3XT0yKihpWzFdLWxbMV0pL2YtMTtmb3IodmFyIHA9MDtwPDQ7KytwKWVbcF09cj4+OCpwJjI1NTt0aGlzLnBpY2tPZmZzZXQ9cixhLmJpbmQoKTt2YXIgZD1hLnVuaWZvcm1zO2Qudmlld1RyYW5zZm9ybT10LGQucGlja09mZnNldD1lLGQuc2hhcGU9dGhpcy5zaGFwZTt2YXIgZz1hLmF0dHJpYnV0ZXM7cmV0dXJuIHRoaXMucG9zaXRpb25CdWZmZXIuYmluZCgpLGcucG9zaXRpb24ucG9pbnRlcigpLHRoaXMud2VpZ2h0QnVmZmVyLmJpbmQoKSxnLndlaWdodC5wb2ludGVyKHMuVU5TSUdORURfQllURSwhMSksdGhpcy5pZEJ1ZmZlci5iaW5kKCksZy5waWNrSWQucG9pbnRlcihzLlVOU0lHTkVEX0JZVEUsITEpLHMuZHJhd0FycmF5cyhzLlRSSUFOR0xFUywwLG8pLHIrdGhpcy5zaGFwZVswXSp0aGlzLnNoYXBlWzFdfX19KCksaC5waWNrPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLnBpY2tPZmZzZXQsYT10aGlzLnNoYXBlWzBdKnRoaXMuc2hhcGVbMV07aWYocjxufHxyPj1uK2EpcmV0dXJuIG51bGw7dmFyIGk9ci1uLG89dGhpcy54RGF0YSxzPXRoaXMueURhdGE7cmV0dXJue29iamVjdDp0aGlzLHBvaW50SWQ6aSxkYXRhQ29vcmQ6W29baSV0aGlzLnNoYXBlWzBdXSxzW2kvdGhpcy5zaGFwZVswXXwwXV19fSxoLnVwZGF0ZT1mdW5jdGlvbih0KXt2YXIgZT0odD10fHx7fSkuc2hhcGV8fFswLDBdLHI9dC54fHxhKGVbMF0pLG89dC55fHxhKGVbMV0pLHM9dC56fHxuZXcgRmxvYXQzMkFycmF5KGVbMF0qZVsxXSk7dGhpcy54RGF0YT1yLHRoaXMueURhdGE9bzt2YXIgbD10LmNvbG9yTGV2ZWxzfHxbMF0sYz10LmNvbG9yVmFsdWVzfHxbMCwwLDAsMV0sdT1sLmxlbmd0aCxoPXRoaXMuYm91bmRzLHA9aFswXT1yWzBdLGQ9aFsxXT1vWzBdLGc9MS8oKGhbMl09cltyLmxlbmd0aC0xXSktcCksdj0xLygoaFszXT1vW28ubGVuZ3RoLTFdKS1kKSxtPWVbMF0seT1lWzFdO3RoaXMuc2hhcGU9W20seV07dmFyIHg9KG0tMSkqKHktMSkqKGYubGVuZ3RoPj4+MSk7dGhpcy5udW1WZXJ0aWNlcz14O2Zvcih2YXIgYj1pLm1hbGxvY1VpbnQ4KDQqeCksXz1pLm1hbGxvY0Zsb2F0MzIoMip4KSx3PWkubWFsbG9jVWludDgoMip4KSxrPWkubWFsbG9jVWludDMyKHgpLFQ9MCxNPTA7TTx5LTE7KytNKWZvcih2YXIgQT12KihvW01dLWQpLFM9dioob1tNKzFdLWQpLEU9MDtFPG0tMTsrK0UpZm9yKHZhciBMPWcqKHJbRV0tcCksQz1nKihyW0UrMV0tcCksUD0wO1A8Zi5sZW5ndGg7UCs9Mil7dmFyIE8seixJLEQsUj1mW1BdLEY9ZltQKzFdLEI9c1soTStGKSptKyhFK1IpXSxOPW4ubGUobCxCKTtpZihOPDApTz1jWzBdLHo9Y1sxXSxJPWNbMl0sRD1jWzNdO2Vsc2UgaWYoTj09PXUtMSlPPWNbNCp1LTRdLHo9Y1s0KnUtM10sST1jWzQqdS0yXSxEPWNbNCp1LTFdO2Vsc2V7dmFyIGo9KEItbFtOXSkvKGxbTisxXS1sW05dKSxWPTEtaixVPTQqTixxPTQqKE4rMSk7Tz1WKmNbVV0raipjW3FdLHo9VipjW1UrMV0raipjW3ErMV0sST1WKmNbVSsyXStqKmNbcSsyXSxEPVYqY1tVKzNdK2oqY1txKzNdfWJbNCpUXT0yNTUqTyxiWzQqVCsxXT0yNTUqeixiWzQqVCsyXT0yNTUqSSxiWzQqVCszXT0yNTUqRCxfWzIqVF09LjUqTCsuNSpDLF9bMipUKzFdPS41KkErLjUqUyx3WzIqVF09Uix3WzIqVCsxXT1GLGtbVF09TSptK0UsVCs9MX10aGlzLnBvc2l0aW9uQnVmZmVyLnVwZGF0ZShfKSx0aGlzLndlaWdodEJ1ZmZlci51cGRhdGUodyksdGhpcy5jb2xvckJ1ZmZlci51cGRhdGUoYiksdGhpcy5pZEJ1ZmZlci51cGRhdGUoayksaS5mcmVlKF8pLGkuZnJlZShiKSxpLmZyZWUodyksaS5mcmVlKGspfSxoLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnNoYWRlci5kaXNwb3NlKCksdGhpcy5waWNrU2hhZGVyLmRpc3Bvc2UoKSx0aGlzLnBvc2l0aW9uQnVmZmVyLmRpc3Bvc2UoKSx0aGlzLndlaWdodEJ1ZmZlci5kaXNwb3NlKCksdGhpcy5jb2xvckJ1ZmZlci5kaXNwb3NlKCksdGhpcy5pZEJ1ZmZlci5kaXNwb3NlKCksdGhpcy5wbG90LnJlbW92ZU9iamVjdCh0aGlzKX19LHsiLi9saWIvc2hhZGVycyI6MjU1LCJiaW5hcnktc2VhcmNoLWJvdW5kcyI6MjU2LCJnbC1idWZmZXIiOjI0NCwiZ2wtc2hhZGVyIjozMDQsImlvdGEtYXJyYXkiOjQxOCwidHlwZWRhcnJheS1wb29sIjo1NDR9XSwyNTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZ2xzbGlmeSIpO2UuZXhwb3J0cz17ZnJhZ21lbnQ6bihbInByZWNpc2lvbiBsb3dwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcbnZhcnlpbmcgdmVjNCBmcmFnQ29sb3I7XG52b2lkIG1haW4oKSB7XG4gIGdsX0ZyYWdDb2xvciA9IHZlYzQoZnJhZ0NvbG9yLnJnYiAqIGZyYWdDb2xvci5hLCBmcmFnQ29sb3IuYSk7XG59XG4iXSksdmVydGV4Om4oWyJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMyIHBvc2l0aW9uO1xuYXR0cmlidXRlIHZlYzQgY29sb3I7XG5hdHRyaWJ1dGUgdmVjMiB3ZWlnaHQ7XG5cbnVuaWZvcm0gdmVjMiBzaGFwZTtcbnVuaWZvcm0gbWF0MyB2aWV3VHJhbnNmb3JtO1xuXG52YXJ5aW5nIHZlYzQgZnJhZ0NvbG9yO1xuXG52b2lkIG1haW4oKSB7XG4gIHZlYzMgdlBvc2l0aW9uID0gdmlld1RyYW5zZm9ybSAqIHZlYzMoIHBvc2l0aW9uICsgKHdlaWdodC0uNSkvKHNoYXBlLTEuKSAsIDEuMCk7XG4gIGZyYWdDb2xvciA9IGNvbG9yO1xuICBnbF9Qb3NpdGlvbiA9IHZlYzQodlBvc2l0aW9uLnh5LCAwLCB2UG9zaXRpb24ueik7XG59XG4iXSkscGlja0ZyYWdtZW50Om4oWyJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbnZhcnlpbmcgdmVjNCBmcmFnSWQ7XG52YXJ5aW5nIHZlYzIgdldlaWdodDtcblxudW5pZm9ybSB2ZWMyIHNoYXBlO1xudW5pZm9ybSB2ZWM0IHBpY2tPZmZzZXQ7XG5cbnZvaWQgbWFpbigpIHtcbiAgdmVjMiBkID0gc3RlcCguNSwgdldlaWdodCk7XG4gIHZlYzQgaWQgPSBmcmFnSWQgKyBwaWNrT2Zmc2V0O1xuICBpZC54ICs9IGQueCArIGQueSpzaGFwZS54O1xuXG4gIGlkLnkgKz0gZmxvb3IoaWQueCAvIDI1Ni4wKTtcbiAgaWQueCAtPSBmbG9vcihpZC54IC8gMjU2LjApICogMjU2LjA7XG5cbiAgaWQueiArPSBmbG9vcihpZC55IC8gMjU2LjApO1xuICBpZC55IC09IGZsb29yKGlkLnkgLyAyNTYuMCkgKiAyNTYuMDtcblxuICBpZC53ICs9IGZsb29yKGlkLnogLyAyNTYuMCk7XG4gIGlkLnogLT0gZmxvb3IoaWQueiAvIDI1Ni4wKSAqIDI1Ni4wO1xuXG4gIGdsX0ZyYWdDb2xvciA9IGlkLzI1NS47XG59XG4iXSkscGlja1ZlcnRleDpuKFsicHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMiBwb3NpdGlvbjtcbmF0dHJpYnV0ZSB2ZWM0IHBpY2tJZDtcbmF0dHJpYnV0ZSB2ZWMyIHdlaWdodDtcblxudW5pZm9ybSB2ZWMyIHNoYXBlO1xudW5pZm9ybSBtYXQzIHZpZXdUcmFuc2Zvcm07XG5cbnZhcnlpbmcgdmVjNCBmcmFnSWQ7XG52YXJ5aW5nIHZlYzIgdldlaWdodDtcblxudm9pZCBtYWluKCkge1xuICB2V2VpZ2h0ID0gd2VpZ2h0O1xuXG4gIGZyYWdJZCA9IHBpY2tJZDtcblxuICB2ZWMzIHZQb3NpdGlvbiA9IHZpZXdUcmFuc2Zvcm0gKiB2ZWMzKCBwb3NpdGlvbiArICh3ZWlnaHQtLjUpLyhzaGFwZS0xLikgLCAxLjApO1xuICBnbF9Qb3NpdGlvbiA9IHZlYzQodlBvc2l0aW9uLnh5LCAwLCB2UG9zaXRpb24ueik7XG59XG4iXSl9fSx7Z2xzbGlmeTo0MTF9XSwyNTY6W2Z1bmN0aW9uKHQsZSxyKXthcmd1bWVudHNbNF1bMTEzXVswXS5hcHBseShyLGFyZ3VtZW50cyl9LHtkdXA6MTEzfV0sMjU3OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiZ2xzbGlmeSIpLGE9dCgiZ2wtc2hhZGVyIiksaT1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzMgcG9zaXRpb24sIG5leHRQb3NpdGlvbjtcbmF0dHJpYnV0ZSBmbG9hdCBhcmNMZW5ndGgsIGxpbmVXaWR0aDtcbmF0dHJpYnV0ZSB2ZWM0IGNvbG9yO1xuXG51bmlmb3JtIHZlYzIgc2NyZWVuU2hhcGU7XG51bmlmb3JtIGZsb2F0IHBpeGVsUmF0aW87XG51bmlmb3JtIG1hdDQgbW9kZWwsIHZpZXcsIHByb2plY3Rpb247XG5cbnZhcnlpbmcgdmVjNCBmcmFnQ29sb3I7XG52YXJ5aW5nIHZlYzMgd29ybGRQb3NpdGlvbjtcbnZhcnlpbmcgZmxvYXQgcGl4ZWxBcmNMZW5ndGg7XG5cbnZlYzQgcHJvamVjdCh2ZWMzIHApIHtcbiAgcmV0dXJuIHByb2plY3Rpb24gKiB2aWV3ICogbW9kZWwgKiB2ZWM0KHAsIDEuMCk7XG59XG5cbnZvaWQgbWFpbigpIHtcbiAgdmVjNCBzdGFydFBvaW50ID0gcHJvamVjdChwb3NpdGlvbik7XG4gIHZlYzQgZW5kUG9pbnQgICA9IHByb2plY3QobmV4dFBvc2l0aW9uKTtcblxuICB2ZWMyIEEgPSBzdGFydFBvaW50Lnh5IC8gc3RhcnRQb2ludC53O1xuICB2ZWMyIEIgPSAgIGVuZFBvaW50Lnh5IC8gICBlbmRQb2ludC53O1xuXG4gIGZsb2F0IGNsaXBBbmdsZSA9IGF0YW4oXG4gICAgKEIueSAtIEEueSkgKiBzY3JlZW5TaGFwZS55LFxuICAgIChCLnggLSBBLngpICogc2NyZWVuU2hhcGUueFxuICApO1xuXG4gIHZlYzIgb2Zmc2V0ID0gMC41ICogcGl4ZWxSYXRpbyAqIGxpbmVXaWR0aCAqIHZlYzIoXG4gICAgc2luKGNsaXBBbmdsZSksXG4gICAgLWNvcyhjbGlwQW5nbGUpXG4gICkgLyBzY3JlZW5TaGFwZTtcblxuICBnbF9Qb3NpdGlvbiA9IHZlYzQoc3RhcnRQb2ludC54eSArIHN0YXJ0UG9pbnQudyAqIG9mZnNldCwgc3RhcnRQb2ludC56dyk7XG5cbiAgd29ybGRQb3NpdGlvbiA9IHBvc2l0aW9uO1xuICBwaXhlbEFyY0xlbmd0aCA9IGFyY0xlbmd0aDtcbiAgZnJhZ0NvbG9yID0gY29sb3I7XG59XG4iXSksbz1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYm9vbCBvdXRPZlJhbmdlKGZsb2F0IGEsIGZsb2F0IGIsIGZsb2F0IHApIHtcbiAgcmV0dXJuICgocCA+IG1heChhLCBiKSkgfHwgXG4gICAgICAgICAgKHAgPCBtaW4oYSwgYikpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzIgYSwgdmVjMiBiLCB2ZWMyIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMzIGEsIHZlYzMgYiwgdmVjMyBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueiwgYi56LCBwLnopKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzQgYSwgdmVjNCBiLCB2ZWM0IHApIHtcbiAgcmV0dXJuIG91dE9mUmFuZ2UoYS54eXosIGIueHl6LCBwLnh5eik7XG59XG5cbnVuaWZvcm0gdmVjMyAgICAgIGNsaXBCb3VuZHNbMl07XG51bmlmb3JtIHNhbXBsZXIyRCBkYXNoVGV4dHVyZTtcbnVuaWZvcm0gZmxvYXQgICAgIGRhc2hTY2FsZTtcbnVuaWZvcm0gZmxvYXQgICAgIG9wYWNpdHk7XG5cbnZhcnlpbmcgdmVjMyAgICB3b3JsZFBvc2l0aW9uO1xudmFyeWluZyBmbG9hdCAgIHBpeGVsQXJjTGVuZ3RoO1xudmFyeWluZyB2ZWM0ICAgIGZyYWdDb2xvcjtcblxudm9pZCBtYWluKCkge1xuICBpZiAoXG4gICAgb3V0T2ZSYW5nZShjbGlwQm91bmRzWzBdLCBjbGlwQm91bmRzWzFdLCB3b3JsZFBvc2l0aW9uKSB8fFxuICAgIGZyYWdDb2xvci5hICogb3BhY2l0eSA9PSAwLlxuICApIGRpc2NhcmQ7XG5cbiAgZmxvYXQgZGFzaFdlaWdodCA9IHRleHR1cmUyRChkYXNoVGV4dHVyZSwgdmVjMihkYXNoU2NhbGUgKiBwaXhlbEFyY0xlbmd0aCwgMCkpLnI7XG4gIGlmKGRhc2hXZWlnaHQgPCAwLjUpIHtcbiAgICBkaXNjYXJkO1xuICB9XG4gIGdsX0ZyYWdDb2xvciA9IGZyYWdDb2xvciAqIG9wYWNpdHk7XG59XG4iXSkscz1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuI2RlZmluZSBGTE9BVF9NQVggIDEuNzAxNDExODRlMzhcbiNkZWZpbmUgRkxPQVRfTUlOICAxLjE3NTQ5NDM1ZS0zOFxuXG5sb3dwIHZlYzQgZW5jb2RlX2Zsb2F0XzE1NDAyNTkxMzAoaGlnaHAgZmxvYXQgdikge1xuICBoaWdocCBmbG9hdCBhdiA9IGFicyh2KTtcblxuICAvL0hhbmRsZSBzcGVjaWFsIGNhc2VzXG4gIGlmKGF2IDwgRkxPQVRfTUlOKSB7XG4gICAgcmV0dXJuIHZlYzQoMC4wLCAwLjAsIDAuMCwgMC4wKTtcbiAgfSBlbHNlIGlmKHYgPiBGTE9BVF9NQVgpIHtcbiAgICByZXR1cm4gdmVjNCgxMjcuMCwgMTI4LjAsIDAuMCwgMC4wKSAvIDI1NS4wO1xuICB9IGVsc2UgaWYodiA8IC1GTE9BVF9NQVgpIHtcbiAgICByZXR1cm4gdmVjNCgyNTUuMCwgMTI4LjAsIDAuMCwgMC4wKSAvIDI1NS4wO1xuICB9XG5cbiAgaGlnaHAgdmVjNCBjID0gdmVjNCgwLDAsMCwwKTtcblxuICAvL0NvbXB1dGUgZXhwb25lbnQgYW5kIG1hbnRpc3NhXG4gIGhpZ2hwIGZsb2F0IGUgPSBmbG9vcihsb2cyKGF2KSk7XG4gIGhpZ2hwIGZsb2F0IG0gPSBhdiAqIHBvdygyLjAsIC1lKSAtIDEuMDtcbiAgXG4gIC8vVW5wYWNrIG1hbnRpc3NhXG4gIGNbMV0gPSBmbG9vcigxMjguMCAqIG0pO1xuICBtIC09IGNbMV0gLyAxMjguMDtcbiAgY1syXSA9IGZsb29yKDMyNzY4LjAgKiBtKTtcbiAgbSAtPSBjWzJdIC8gMzI3NjguMDtcbiAgY1szXSA9IGZsb29yKDgzODg2MDguMCAqIG0pO1xuICBcbiAgLy9VbnBhY2sgZXhwb25lbnRcbiAgaGlnaHAgZmxvYXQgZWJpYXMgPSBlICsgMTI3LjA7XG4gIGNbMF0gPSBmbG9vcihlYmlhcyAvIDIuMCk7XG4gIGViaWFzIC09IGNbMF0gKiAyLjA7XG4gIGNbMV0gKz0gZmxvb3IoZWJpYXMpICogMTI4LjA7IFxuXG4gIC8vVW5wYWNrIHNpZ24gYml0XG4gIGNbMF0gKz0gMTI4LjAgKiBzdGVwKDAuMCwgLXYpO1xuXG4gIC8vU2NhbGUgYmFjayB0byByYW5nZVxuICByZXR1cm4gYyAvIDI1NS4wO1xufVxuXG5ib29sIG91dE9mUmFuZ2UoZmxvYXQgYSwgZmxvYXQgYiwgZmxvYXQgcCkge1xuICByZXR1cm4gKChwID4gbWF4KGEsIGIpKSB8fCBcbiAgICAgICAgICAocCA8IG1pbihhLCBiKSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMiBhLCB2ZWMyIGIsIHZlYzIgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzMgYSwgdmVjMyBiLCB2ZWMzIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS56LCBiLnosIHAueikpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjNCBhLCB2ZWM0IGIsIHZlYzQgcCkge1xuICByZXR1cm4gb3V0T2ZSYW5nZShhLnh5eiwgYi54eXosIHAueHl6KTtcbn1cblxudW5pZm9ybSBmbG9hdCBwaWNrSWQ7XG51bmlmb3JtIHZlYzMgY2xpcEJvdW5kc1syXTtcblxudmFyeWluZyB2ZWMzIHdvcmxkUG9zaXRpb247XG52YXJ5aW5nIGZsb2F0IHBpeGVsQXJjTGVuZ3RoO1xudmFyeWluZyB2ZWM0IGZyYWdDb2xvcjtcblxudm9pZCBtYWluKCkge1xuICBpZiAob3V0T2ZSYW5nZShjbGlwQm91bmRzWzBdLCBjbGlwQm91bmRzWzFdLCB3b3JsZFBvc2l0aW9uKSkgZGlzY2FyZDtcblxuICBnbF9GcmFnQ29sb3IgPSB2ZWM0KHBpY2tJZC8yNTUuMCwgZW5jb2RlX2Zsb2F0XzE1NDAyNTkxMzAocGl4ZWxBcmNMZW5ndGgpLnh5eik7XG59Il0pLGw9W3tuYW1lOiJwb3NpdGlvbiIsdHlwZToidmVjMyJ9LHtuYW1lOiJuZXh0UG9zaXRpb24iLHR5cGU6InZlYzMifSx7bmFtZToiYXJjTGVuZ3RoIix0eXBlOiJmbG9hdCJ9LHtuYW1lOiJsaW5lV2lkdGgiLHR5cGU6ImZsb2F0In0se25hbWU6ImNvbG9yIix0eXBlOiJ2ZWM0In1dO3IuY3JlYXRlU2hhZGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhKHQsaSxvLG51bGwsbCl9LHIuY3JlYXRlUGlja1NoYWRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYSh0LGkscyxudWxsLGwpfX0seyJnbC1zaGFkZXIiOjMwNCxnbHNsaWZ5OjQxMX1dLDI1ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5nbHx8dC5zY2VuZSYmdC5zY2VuZS5nbCxyPXUoZSk7ci5hdHRyaWJ1dGVzLnBvc2l0aW9uLmxvY2F0aW9uPTAsci5hdHRyaWJ1dGVzLm5leHRQb3NpdGlvbi5sb2NhdGlvbj0xLHIuYXR0cmlidXRlcy5hcmNMZW5ndGgubG9jYXRpb249MixyLmF0dHJpYnV0ZXMubGluZVdpZHRoLmxvY2F0aW9uPTMsci5hdHRyaWJ1dGVzLmNvbG9yLmxvY2F0aW9uPTQ7dmFyIG89aChlKTtvLmF0dHJpYnV0ZXMucG9zaXRpb24ubG9jYXRpb249MCxvLmF0dHJpYnV0ZXMubmV4dFBvc2l0aW9uLmxvY2F0aW9uPTEsby5hdHRyaWJ1dGVzLmFyY0xlbmd0aC5sb2NhdGlvbj0yLG8uYXR0cmlidXRlcy5saW5lV2lkdGgubG9jYXRpb249MyxvLmF0dHJpYnV0ZXMuY29sb3IubG9jYXRpb249NDtmb3IodmFyIHM9bihlKSxjPWEoZSxbe2J1ZmZlcjpzLHNpemU6MyxvZmZzZXQ6MCxzdHJpZGU6NDh9LHtidWZmZXI6cyxzaXplOjMsb2Zmc2V0OjEyLHN0cmlkZTo0OH0se2J1ZmZlcjpzLHNpemU6MSxvZmZzZXQ6MjQsc3RyaWRlOjQ4fSx7YnVmZmVyOnMsc2l6ZToxLG9mZnNldDoyOCxzdHJpZGU6NDh9LHtidWZmZXI6cyxzaXplOjQsb2Zmc2V0OjMyLHN0cmlkZTo0OH1dKSxmPWwobmV3IEFycmF5KDEwMjQpLFsyNTYsMSw0XSkscD0wO3A8MTAyNDsrK3ApZi5kYXRhW3BdPTI1NTt2YXIgZD1pKGUsZik7ZC53cmFwPWUuUkVQRUFUO3ZhciBnPW5ldyB2KGUscixvLHMsYyxkKTtyZXR1cm4gZy51cGRhdGUodCksZ307dmFyIG49dCgiZ2wtYnVmZmVyIiksYT10KCJnbC12YW8iKSxpPXQoImdsLXRleHR1cmUyZCIpLG89dCgiZ2xzbC1yZWFkLWZsb2F0Iikscz10KCJiaW5hcnktc2VhcmNoLWJvdW5kcyIpLGw9dCgibmRhcnJheSIpLGM9dCgiLi9saWIvc2hhZGVycyIpLHU9Yy5jcmVhdGVTaGFkZXIsaD1jLmNyZWF0ZVBpY2tTaGFkZXIsZj1bMSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMV07ZnVuY3Rpb24gcCh0LGUpe2Zvcih2YXIgcj0wLG49MDtuPDM7KytuKXt2YXIgYT10W25dLWVbbl07cis9YSphfXJldHVybiBNYXRoLnNxcnQocil9ZnVuY3Rpb24gZCh0KXtmb3IodmFyIGU9W1stMWU2LC0xZTYsLTFlNl0sWzFlNiwxZTYsMWU2XV0scj0wO3I8MzsrK3IpZVswXVtyXT1NYXRoLm1heCh0WzBdW3JdLGVbMF1bcl0pLGVbMV1bcl09TWF0aC5taW4odFsxXVtyXSxlWzFdW3JdKTtyZXR1cm4gZX1mdW5jdGlvbiBnKHQsZSxyLG4pe3RoaXMuYXJjTGVuZ3RoPXQsdGhpcy5wb3NpdGlvbj1lLHRoaXMuaW5kZXg9cix0aGlzLmRhdGFDb29yZGluYXRlPW59ZnVuY3Rpb24gdih0LGUscixuLGEsaSl7dGhpcy5nbD10LHRoaXMuc2hhZGVyPWUsdGhpcy5waWNrU2hhZGVyPXIsdGhpcy5idWZmZXI9bix0aGlzLnZhbz1hLHRoaXMuY2xpcEJvdW5kcz1bWy0xLzAsLTEvMCwtMS8wXSxbMS8wLDEvMCwxLzBdXSx0aGlzLnBvaW50cz1bXSx0aGlzLmFyY0xlbmd0aD1bXSx0aGlzLnZlcnRleENvdW50PTAsdGhpcy5ib3VuZHM9W1swLDAsMF0sWzAsMCwwXV0sdGhpcy5waWNrSWQ9MCx0aGlzLmxpbmVXaWR0aD0xLHRoaXMudGV4dHVyZT1pLHRoaXMuZGFzaFNjYWxlPTEsdGhpcy5vcGFjaXR5PTEsdGhpcy5oYXNBbHBoYT0hMSx0aGlzLmRpcnR5PSEwLHRoaXMucGl4ZWxSYXRpbz0xfXZhciBtPXYucHJvdG90eXBlO20uaXNUcmFuc3BhcmVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmhhc0FscGhhfSxtLmlzT3BhcXVlPWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaGFzQWxwaGF9LG0ucGlja1Nsb3RzPTEsbS5zZXRQaWNrQmFzZT1mdW5jdGlvbih0KXt0aGlzLnBpY2tJZD10fSxtLmRyYXdUcmFuc3BhcmVudD1tLmRyYXc9ZnVuY3Rpb24odCl7aWYodGhpcy52ZXJ0ZXhDb3VudCl7dmFyIGU9dGhpcy5nbCxyPXRoaXMuc2hhZGVyLG49dGhpcy52YW87ci5iaW5kKCksci51bmlmb3Jtcz17bW9kZWw6dC5tb2RlbHx8Zix2aWV3OnQudmlld3x8Zixwcm9qZWN0aW9uOnQucHJvamVjdGlvbnx8ZixjbGlwQm91bmRzOmQodGhpcy5jbGlwQm91bmRzKSxkYXNoVGV4dHVyZTp0aGlzLnRleHR1cmUuYmluZCgpLGRhc2hTY2FsZTp0aGlzLmRhc2hTY2FsZS90aGlzLmFyY0xlbmd0aFt0aGlzLmFyY0xlbmd0aC5sZW5ndGgtMV0sb3BhY2l0eTp0aGlzLm9wYWNpdHksc2NyZWVuU2hhcGU6W2UuZHJhd2luZ0J1ZmZlcldpZHRoLGUuZHJhd2luZ0J1ZmZlckhlaWdodF0scGl4ZWxSYXRpbzp0aGlzLnBpeGVsUmF0aW99LG4uYmluZCgpLG4uZHJhdyhlLlRSSUFOR0xFX1NUUklQLHRoaXMudmVydGV4Q291bnQpLG4udW5iaW5kKCl9fSxtLmRyYXdQaWNrPWZ1bmN0aW9uKHQpe2lmKHRoaXMudmVydGV4Q291bnQpe3ZhciBlPXRoaXMuZ2wscj10aGlzLnBpY2tTaGFkZXIsbj10aGlzLnZhbztyLmJpbmQoKSxyLnVuaWZvcm1zPXttb2RlbDp0Lm1vZGVsfHxmLHZpZXc6dC52aWV3fHxmLHByb2plY3Rpb246dC5wcm9qZWN0aW9ufHxmLHBpY2tJZDp0aGlzLnBpY2tJZCxjbGlwQm91bmRzOmQodGhpcy5jbGlwQm91bmRzKSxzY3JlZW5TaGFwZTpbZS5kcmF3aW5nQnVmZmVyV2lkdGgsZS5kcmF3aW5nQnVmZmVySGVpZ2h0XSxwaXhlbFJhdGlvOnRoaXMucGl4ZWxSYXRpb30sbi5iaW5kKCksbi5kcmF3KGUuVFJJQU5HTEVfU1RSSVAsdGhpcy52ZXJ0ZXhDb3VudCksbi51bmJpbmQoKX19LG0udXBkYXRlPWZ1bmN0aW9uKHQpe3ZhciBlLHI7dGhpcy5kaXJ0eT0hMDt2YXIgbj0hIXQuY29ubmVjdEdhcHM7ImRhc2hTY2FsZSJpbiB0JiYodGhpcy5kYXNoU2NhbGU9dC5kYXNoU2NhbGUpLHRoaXMuaGFzQWxwaGE9ITEsIm9wYWNpdHkiaW4gdCYmKHRoaXMub3BhY2l0eT0rdC5vcGFjaXR5LHRoaXMub3BhY2l0eTwxJiYodGhpcy5oYXNBbHBoYT0hMCkpO3ZhciBhPVtdLGk9W10sbz1bXSxjPTAsdT0wLGg9W1sxLzAsMS8wLDEvMF0sWy0xLzAsLTEvMCwtMS8wXV0sZj10LnBvc2l0aW9ufHx0LnBvc2l0aW9ucztpZihmKXt2YXIgZD10LmNvbG9yfHx0LmNvbG9yc3x8WzAsMCwwLDFdLGc9dC5saW5lV2lkdGh8fDEsdj0hMTt0OmZvcihlPTE7ZTxmLmxlbmd0aDsrK2Upe3ZhciBtLHkseCxiPWZbZS0xXSxfPWZbZV07Zm9yKGkucHVzaChjKSxvLnB1c2goYi5zbGljZSgpKSxyPTA7cjwzOysrcil7aWYoaXNOYU4oYltyXSl8fGlzTmFOKF9bcl0pfHwhaXNGaW5pdGUoYltyXSl8fCFpc0Zpbml0ZShfW3JdKSl7aWYoIW4mJmEubGVuZ3RoPjApe2Zvcih2YXIgdz0wO3c8MjQ7Kyt3KWEucHVzaChhW2EubGVuZ3RoLTEyXSk7dSs9Mix2PSEwfWNvbnRpbnVlIHR9aFswXVtyXT1NYXRoLm1pbihoWzBdW3JdLGJbcl0sX1tyXSksaFsxXVtyXT1NYXRoLm1heChoWzFdW3JdLGJbcl0sX1tyXSl9QXJyYXkuaXNBcnJheShkWzBdKT8obT1kLmxlbmd0aD5lLTE/ZFtlLTFdOmQubGVuZ3RoPjA/ZFtkLmxlbmd0aC0xXTpbMCwwLDAsMV0seT1kLmxlbmd0aD5lP2RbZV06ZC5sZW5ndGg+MD9kW2QubGVuZ3RoLTFdOlswLDAsMCwxXSk6bT15PWQsMz09PW0ubGVuZ3RoJiYobT1bbVswXSxtWzFdLG1bMl0sMV0pLDM9PT15Lmxlbmd0aCYmKHk9W3lbMF0seVsxXSx5WzJdLDFdKSwhdGhpcy5oYXNBbHBoYSYmbVszXTwxJiYodGhpcy5oYXNBbHBoYT0hMCkseD1BcnJheS5pc0FycmF5KGcpP2cubGVuZ3RoPmUtMT9nW2UtMV06Zy5sZW5ndGg+MD9nW2cubGVuZ3RoLTFdOlswLDAsMCwxXTpnO3ZhciBrPWM7aWYoYys9cChiLF8pLHYpe2ZvcihyPTA7cjwyOysrcilhLnB1c2goYlswXSxiWzFdLGJbMl0sX1swXSxfWzFdLF9bMl0sayx4LG1bMF0sbVsxXSxtWzJdLG1bM10pO3UrPTIsdj0hMX1hLnB1c2goYlswXSxiWzFdLGJbMl0sX1swXSxfWzFdLF9bMl0sayx4LG1bMF0sbVsxXSxtWzJdLG1bM10sYlswXSxiWzFdLGJbMl0sX1swXSxfWzFdLF9bMl0saywteCxtWzBdLG1bMV0sbVsyXSxtWzNdLF9bMF0sX1sxXSxfWzJdLGJbMF0sYlsxXSxiWzJdLGMsLXgseVswXSx5WzFdLHlbMl0seVszXSxfWzBdLF9bMV0sX1syXSxiWzBdLGJbMV0sYlsyXSxjLHgseVswXSx5WzFdLHlbMl0seVszXSksdSs9NH19aWYodGhpcy5idWZmZXIudXBkYXRlKGEpLGkucHVzaChjKSxvLnB1c2goZltmLmxlbmd0aC0xXS5zbGljZSgpKSx0aGlzLmJvdW5kcz1oLHRoaXMudmVydGV4Q291bnQ9dSx0aGlzLnBvaW50cz1vLHRoaXMuYXJjTGVuZ3RoPWksImRhc2hlcyJpbiB0KXt2YXIgVD10LmRhc2hlcy5zbGljZSgpO2ZvcihULnVuc2hpZnQoMCksZT0xO2U8VC5sZW5ndGg7KytlKVRbZV09VFtlLTFdK1RbZV07dmFyIE09bChuZXcgQXJyYXkoMTAyNCksWzI1NiwxLDRdKTtmb3IoZT0wO2U8MjU2OysrZSl7Zm9yKHI9MDtyPDQ7KytyKU0uc2V0KGUsMCxyLDApOzEmcy5sZShULFRbVC5sZW5ndGgtMV0qZS8yNTUpP00uc2V0KGUsMCwwLDApOk0uc2V0KGUsMCwwLDI1NSl9dGhpcy50ZXh0dXJlLnNldFBpeGVscyhNKX19LG0uZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuc2hhZGVyLmRpc3Bvc2UoKSx0aGlzLnZhby5kaXNwb3NlKCksdGhpcy5idWZmZXIuZGlzcG9zZSgpfSxtLnBpY2s9ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuIG51bGw7aWYodC5pZCE9PXRoaXMucGlja0lkKXJldHVybiBudWxsO3ZhciBlPW8odC52YWx1ZVswXSx0LnZhbHVlWzFdLHQudmFsdWVbMl0sMCkscj1zLmxlKHRoaXMuYXJjTGVuZ3RoLGUpO2lmKHI8MClyZXR1cm4gbnVsbDtpZihyPT09dGhpcy5hcmNMZW5ndGgubGVuZ3RoLTEpcmV0dXJuIG5ldyBnKHRoaXMuYXJjTGVuZ3RoW3RoaXMuYXJjTGVuZ3RoLmxlbmd0aC0xXSx0aGlzLnBvaW50c1t0aGlzLnBvaW50cy5sZW5ndGgtMV0uc2xpY2UoKSxyKTtmb3IodmFyIG49dGhpcy5wb2ludHNbcl0sYT10aGlzLnBvaW50c1tNYXRoLm1pbihyKzEsdGhpcy5wb2ludHMubGVuZ3RoLTEpXSxpPShlLXRoaXMuYXJjTGVuZ3RoW3JdKS8odGhpcy5hcmNMZW5ndGhbcisxXS10aGlzLmFyY0xlbmd0aFtyXSksbD0xLWksYz1bMCwwLDBdLHU9MDt1PDM7Kyt1KWNbdV09bCpuW3VdK2kqYVt1XTt2YXIgaD1NYXRoLm1pbihpPC41P3I6cisxLHRoaXMucG9pbnRzLmxlbmd0aC0xKTtyZXR1cm4gbmV3IGcoZSxjLGgsdGhpcy5wb2ludHNbaF0pfX0seyIuL2xpYi9zaGFkZXJzIjoyNTcsImJpbmFyeS1zZWFyY2gtYm91bmRzIjoyNTksImdsLWJ1ZmZlciI6MjQ0LCJnbC10ZXh0dXJlMmQiOjMyNCwiZ2wtdmFvIjozMjksImdsc2wtcmVhZC1mbG9hdCI6NDAyLG5kYXJyYXk6NDUyfV0sMjU5OltmdW5jdGlvbih0LGUscil7YXJndW1lbnRzWzRdWzExM11bMF0uYXBwbHkocixhcmd1bWVudHMpfSx7ZHVwOjExM31dLDI2MDpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWVbMF0sbj1lWzFdLGE9ZVsyXSxpPWVbM10sbz1yKmktYSpuO3JldHVybiBvPyhvPTEvbyx0WzBdPWkqbyx0WzFdPS1uKm8sdFsyXT0tYSpvLHRbM109cipvLHQpOm51bGx9fSx7fV0sMjYxOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV0sYT1lWzJdLGk9ZVszXSxvPWVbNF0scz1lWzVdLGw9ZVs2XSxjPWVbN10sdT1lWzhdLGg9dSpvLXMqYyxmPS11KmkrcypsLHA9YyppLW8qbCxkPXIqaCtuKmYrYSpwO3JldHVybiBkPyhkPTEvZCx0WzBdPWgqZCx0WzFdPSgtdSpuK2EqYykqZCx0WzJdPShzKm4tYSpvKSpkLHRbM109ZipkLHRbNF09KHUqci1hKmwpKmQsdFs1XT0oLXMqcithKmkpKmQsdFs2XT1wKmQsdFs3XT0oLWMqcituKmwpKmQsdFs4XT0obypyLW4qaSkqZCx0KTpudWxsfX0se31dLDI2MjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1uZXcgRmxvYXQzMkFycmF5KDE2KTtyZXR1cm4gZVswXT10WzBdLGVbMV09dFsxXSxlWzJdPXRbMl0sZVszXT10WzNdLGVbNF09dFs0XSxlWzVdPXRbNV0sZVs2XT10WzZdLGVbN109dFs3XSxlWzhdPXRbOF0sZVs5XT10WzldLGVbMTBdPXRbMTBdLGVbMTFdPXRbMTFdLGVbMTJdPXRbMTJdLGVbMTNdPXRbMTNdLGVbMTRdPXRbMTRdLGVbMTVdPXRbMTVdLGV9fSx7fV0sMjYzOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IEZsb2F0MzJBcnJheSgxNik7cmV0dXJuIHRbMF09MSx0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTAsdFs1XT0xLHRbNl09MCx0WzddPTAsdFs4XT0wLHRbOV09MCx0WzEwXT0xLHRbMTFdPTAsdFsxMl09MCx0WzEzXT0wLHRbMTRdPTAsdFsxNV09MSx0fX0se31dLDI2NDpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10WzBdLHI9dFsxXSxuPXRbMl0sYT10WzNdLGk9dFs0XSxvPXRbNV0scz10WzZdLGw9dFs3XSxjPXRbOF0sdT10WzldLGg9dFsxMF0sZj10WzExXSxwPXRbMTJdLGQ9dFsxM10sZz10WzE0XSx2PXRbMTVdO3JldHVybihlKm8tcippKSooaCp2LWYqZyktKGUqcy1uKmkpKih1KnYtZipkKSsoZSpsLWEqaSkqKHUqZy1oKmQpKyhyKnMtbipvKSooYyp2LWYqcCktKHIqbC1hKm8pKihjKmctaCpwKSsobipsLWEqcykqKGMqZC11KnApfX0se31dLDI2NTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWVbMF0sbj1lWzFdLGE9ZVsyXSxpPWVbM10sbz1yK3Iscz1uK24sbD1hK2EsYz1yKm8sdT1uKm8saD1uKnMsZj1hKm8scD1hKnMsZD1hKmwsZz1pKm8sdj1pKnMsbT1pKmw7cmV0dXJuIHRbMF09MS1oLWQsdFsxXT11K20sdFsyXT1mLXYsdFszXT0wLHRbNF09dS1tLHRbNV09MS1jLWQsdFs2XT1wK2csdFs3XT0wLHRbOF09Zit2LHRbOV09cC1nLHRbMTBdPTEtYy1oLHRbMTFdPTAsdFsxMl09MCx0WzEzXT0wLHRbMTRdPTAsdFsxNV09MSx0fX0se31dLDI2NjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49ZVswXSxhPWVbMV0saT1lWzJdLG89ZVszXSxzPW4rbixsPWErYSxjPWkraSx1PW4qcyxoPW4qbCxmPW4qYyxwPWEqbCxkPWEqYyxnPWkqYyx2PW8qcyxtPW8qbCx5PW8qYztyZXR1cm4gdFswXT0xLShwK2cpLHRbMV09aCt5LHRbMl09Zi1tLHRbM109MCx0WzRdPWgteSx0WzVdPTEtKHUrZyksdFs2XT1kK3YsdFs3XT0wLHRbOF09ZittLHRbOV09ZC12LHRbMTBdPTEtKHUrcCksdFsxMV09MCx0WzEyXT1yWzBdLHRbMTNdPXJbMV0sdFsxNF09clsyXSx0WzE1XT0xLHR9fSx7fV0sMjY3OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0WzBdPTEsdFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0wLHRbNV09MSx0WzZdPTAsdFs3XT0wLHRbOF09MCx0WzldPTAsdFsxMF09MSx0WzExXT0wLHRbMTJdPTAsdFsxM109MCx0WzE0XT0wLHRbMTVdPTEsdH19LHt9XSwyNjg6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49ZVsxXSxhPWVbMl0saT1lWzNdLG89ZVs0XSxzPWVbNV0sbD1lWzZdLGM9ZVs3XSx1PWVbOF0saD1lWzldLGY9ZVsxMF0scD1lWzExXSxkPWVbMTJdLGc9ZVsxM10sdj1lWzE0XSxtPWVbMTVdLHk9cipzLW4qbyx4PXIqbC1hKm8sYj1yKmMtaSpvLF89bipsLWEqcyx3PW4qYy1pKnMsaz1hKmMtaSpsLFQ9dSpnLWgqZCxNPXUqdi1mKmQsQT11Km0tcCpkLFM9aCp2LWYqZyxFPWgqbS1wKmcsTD1mKm0tcCp2LEM9eSpMLXgqRStiKlMrXypBLXcqTStrKlQ7aWYoIUMpcmV0dXJuIG51bGw7cmV0dXJuIEM9MS9DLHRbMF09KHMqTC1sKkUrYypTKSpDLHRbMV09KGEqRS1uKkwtaSpTKSpDLHRbMl09KGcqay12KncrbSpfKSpDLHRbM109KGYqdy1oKmstcCpfKSpDLHRbNF09KGwqQS1vKkwtYypNKSpDLHRbNV09KHIqTC1hKkEraSpNKSpDLHRbNl09KHYqYi1kKmstbSp4KSpDLHRbN109KHUqay1mKmIrcCp4KSpDLHRbOF09KG8qRS1zKkErYypUKSpDLHRbOV09KG4qQS1yKkUtaSpUKSpDLHRbMTBdPShkKnctZypiK20qeSkqQyx0WzExXT0oaCpiLXUqdy1wKnkpKkMsdFsxMl09KHMqTS1vKlMtbCpUKSpDLHRbMTNdPShyKlMtbipNK2EqVCkqQyx0WzE0XT0oZyp4LWQqXy12KnkpKkMsdFsxNV09KHUqXy1oKngrZip5KSpDLHR9fSx7fV0sMjY5OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi9pZGVudGl0eSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhKXt2YXIgaSxvLHMsbCxjLHUsaCxmLHAsZCxnPWVbMF0sdj1lWzFdLG09ZVsyXSx5PWFbMF0seD1hWzFdLGI9YVsyXSxfPXJbMF0sdz1yWzFdLGs9clsyXTtpZihNYXRoLmFicyhnLV8pPDFlLTYmJk1hdGguYWJzKHYtdyk8MWUtNiYmTWF0aC5hYnMobS1rKTwxZS02KXJldHVybiBuKHQpO2g9Zy1fLGY9di13LHA9bS1rLGQ9MS9NYXRoLnNxcnQoaCpoK2YqZitwKnApLGk9eCoocCo9ZCktYiooZio9ZCksbz1iKihoKj1kKS15KnAscz15KmYteCpoLChkPU1hdGguc3FydChpKmkrbypvK3MqcykpPyhpKj1kPTEvZCxvKj1kLHMqPWQpOihpPTAsbz0wLHM9MCk7bD1mKnMtcCpvLGM9cCppLWgqcyx1PWgqby1mKmksKGQ9TWF0aC5zcXJ0KGwqbCtjKmMrdSp1KSk/KGwqPWQ9MS9kLGMqPWQsdSo9ZCk6KGw9MCxjPTAsdT0wKTtyZXR1cm4gdFswXT1pLHRbMV09bCx0WzJdPWgsdFszXT0wLHRbNF09byx0WzVdPWMsdFs2XT1mLHRbN109MCx0WzhdPXMsdFs5XT11LHRbMTBdPXAsdFsxMV09MCx0WzEyXT0tKGkqZytvKnYrcyptKSx0WzEzXT0tKGwqZytjKnYrdSptKSx0WzE0XT0tKGgqZytmKnYrcCptKSx0WzE1XT0xLHR9fSx7Ii4vaWRlbnRpdHkiOjI2N31dLDI3MDpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49ZVswXSxhPWVbMV0saT1lWzJdLG89ZVszXSxzPWVbNF0sbD1lWzVdLGM9ZVs2XSx1PWVbN10saD1lWzhdLGY9ZVs5XSxwPWVbMTBdLGQ9ZVsxMV0sZz1lWzEyXSx2PWVbMTNdLG09ZVsxNF0seT1lWzE1XSx4PXJbMF0sYj1yWzFdLF89clsyXSx3PXJbM107cmV0dXJuIHRbMF09eCpuK2IqcytfKmgrdypnLHRbMV09eCphK2IqbCtfKmYrdyp2LHRbMl09eCppK2IqYytfKnArdyptLHRbM109eCpvK2IqdStfKmQrdyp5LHg9cls0XSxiPXJbNV0sXz1yWzZdLHc9cls3XSx0WzRdPXgqbitiKnMrXypoK3cqZyx0WzVdPXgqYStiKmwrXypmK3cqdix0WzZdPXgqaStiKmMrXypwK3cqbSx0WzddPXgqbytiKnUrXypkK3cqeSx4PXJbOF0sYj1yWzldLF89clsxMF0sdz1yWzExXSx0WzhdPXgqbitiKnMrXypoK3cqZyx0WzldPXgqYStiKmwrXypmK3cqdix0WzEwXT14KmkrYipjK18qcCt3Km0sdFsxMV09eCpvK2IqdStfKmQrdyp5LHg9clsxMl0sYj1yWzEzXSxfPXJbMTRdLHc9clsxNV0sdFsxMl09eCpuK2IqcytfKmgrdypnLHRbMTNdPXgqYStiKmwrXypmK3cqdix0WzE0XT14KmkrYipjK18qcCt3Km0sdFsxNV09eCpvK2IqdStfKmQrdyp5LHR9fSx7fV0sMjcxOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4sYSxpLG8pe3ZhciBzPTEvKGUtciksbD0xLyhuLWEpLGM9MS8oaS1vKTtyZXR1cm4gdFswXT0tMipzLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPS0yKmwsdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTBdPTIqYyx0WzExXT0wLHRbMTJdPShlK3IpKnMsdFsxM109KGErbikqbCx0WzE0XT0obytpKSpjLHRbMTVdPTEsdH19LHt9XSwyNzI6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbixhKXt2YXIgaT0xL01hdGgudGFuKGUvMiksbz0xLyhuLWEpO3JldHVybiB0WzBdPWkvcix0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTAsdFs1XT1pLHRbNl09MCx0WzddPTAsdFs4XT0wLHRbOV09MCx0WzEwXT0oYStuKSpvLHRbMTFdPS0xLHRbMTJdPTAsdFsxM109MCx0WzE0XT0yKmEqbipvLHRbMTVdPTAsdH19LHt9XSwyNzM6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGEsaSxvLHMsbCxjLHUsaCxmLHAsZCxnLHYsbSx5LHgsYixfLHcsayxULE0sQSxTLEU9blswXSxMPW5bMV0sQz1uWzJdLFA9TWF0aC5zcXJ0KEUqRStMKkwrQypDKTtpZihNYXRoLmFicyhQKTwxZS02KXJldHVybiBudWxsO0UqPVA9MS9QLEwqPVAsQyo9UCxhPU1hdGguc2luKHIpLGk9TWF0aC5jb3Mociksbz0xLWkscz1lWzBdLGw9ZVsxXSxjPWVbMl0sdT1lWzNdLGg9ZVs0XSxmPWVbNV0scD1lWzZdLGQ9ZVs3XSxnPWVbOF0sdj1lWzldLG09ZVsxMF0seT1lWzExXSx4PUUqRSpvK2ksYj1MKkUqbytDKmEsXz1DKkUqby1MKmEsdz1FKkwqby1DKmEsaz1MKkwqbytpLFQ9QypMKm8rRSphLE09RSpDKm8rTCphLEE9TCpDKm8tRSphLFM9QypDKm8raSx0WzBdPXMqeCtoKmIrZypfLHRbMV09bCp4K2YqYit2Kl8sdFsyXT1jKngrcCpiK20qXyx0WzNdPXUqeCtkKmIreSpfLHRbNF09cyp3K2gqaytnKlQsdFs1XT1sKncrZiprK3YqVCx0WzZdPWMqdytwKmsrbSpULHRbN109dSp3K2Qqayt5KlQsdFs4XT1zKk0raCpBK2cqUyx0WzldPWwqTStmKkErdipTLHRbMTBdPWMqTStwKkErbSpTLHRbMTFdPXUqTStkKkEreSpTLGUhPT10JiYodFsxMl09ZVsxMl0sdFsxM109ZVsxM10sdFsxNF09ZVsxNF0sdFsxNV09ZVsxNV0pO3JldHVybiB0fX0se31dLDI3NDpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49TWF0aC5zaW4ociksYT1NYXRoLmNvcyhyKSxpPWVbNF0sbz1lWzVdLHM9ZVs2XSxsPWVbN10sYz1lWzhdLHU9ZVs5XSxoPWVbMTBdLGY9ZVsxMV07ZSE9PXQmJih0WzBdPWVbMF0sdFsxXT1lWzFdLHRbMl09ZVsyXSx0WzNdPWVbM10sdFsxMl09ZVsxMl0sdFsxM109ZVsxM10sdFsxNF09ZVsxNF0sdFsxNV09ZVsxNV0pO3JldHVybiB0WzRdPWkqYStjKm4sdFs1XT1vKmErdSpuLHRbNl09cyphK2gqbix0WzddPWwqYStmKm4sdFs4XT1jKmEtaSpuLHRbOV09dSphLW8qbix0WzEwXT1oKmEtcypuLHRbMTFdPWYqYS1sKm4sdH19LHt9XSwyNzU6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPU1hdGguc2luKHIpLGE9TWF0aC5jb3MociksaT1lWzBdLG89ZVsxXSxzPWVbMl0sbD1lWzNdLGM9ZVs4XSx1PWVbOV0saD1lWzEwXSxmPWVbMTFdO2UhPT10JiYodFs0XT1lWzRdLHRbNV09ZVs1XSx0WzZdPWVbNl0sdFs3XT1lWzddLHRbMTJdPWVbMTJdLHRbMTNdPWVbMTNdLHRbMTRdPWVbMTRdLHRbMTVdPWVbMTVdKTtyZXR1cm4gdFswXT1pKmEtYypuLHRbMV09byphLXUqbix0WzJdPXMqYS1oKm4sdFszXT1sKmEtZipuLHRbOF09aSpuK2MqYSx0WzldPW8qbit1KmEsdFsxMF09cypuK2gqYSx0WzExXT1sKm4rZiphLHR9fSx7fV0sMjc2OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1NYXRoLnNpbihyKSxhPU1hdGguY29zKHIpLGk9ZVswXSxvPWVbMV0scz1lWzJdLGw9ZVszXSxjPWVbNF0sdT1lWzVdLGg9ZVs2XSxmPWVbN107ZSE9PXQmJih0WzhdPWVbOF0sdFs5XT1lWzldLHRbMTBdPWVbMTBdLHRbMTFdPWVbMTFdLHRbMTJdPWVbMTJdLHRbMTNdPWVbMTNdLHRbMTRdPWVbMTRdLHRbMTVdPWVbMTVdKTtyZXR1cm4gdFswXT1pKmErYypuLHRbMV09byphK3Uqbix0WzJdPXMqYStoKm4sdFszXT1sKmErZipuLHRbNF09YyphLWkqbix0WzVdPXUqYS1vKm4sdFs2XT1oKmEtcypuLHRbN109ZiphLWwqbix0fX0se31dLDI3NzpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49clswXSxhPXJbMV0saT1yWzJdO3JldHVybiB0WzBdPWVbMF0qbix0WzFdPWVbMV0qbix0WzJdPWVbMl0qbix0WzNdPWVbM10qbix0WzRdPWVbNF0qYSx0WzVdPWVbNV0qYSx0WzZdPWVbNl0qYSx0WzddPWVbN10qYSx0WzhdPWVbOF0qaSx0WzldPWVbOV0qaSx0WzEwXT1lWzEwXSppLHRbMTFdPWVbMTFdKmksdFsxMl09ZVsxMl0sdFsxM109ZVsxM10sdFsxNF09ZVsxNF0sdFsxNV09ZVsxNV0sdH19LHt9XSwyNzg6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGEsaSxvLHMsbCxjLHUsaCxmLHAsZCxnPXJbMF0sdj1yWzFdLG09clsyXTtlPT09dD8odFsxMl09ZVswXSpnK2VbNF0qditlWzhdKm0rZVsxMl0sdFsxM109ZVsxXSpnK2VbNV0qditlWzldKm0rZVsxM10sdFsxNF09ZVsyXSpnK2VbNl0qditlWzEwXSptK2VbMTRdLHRbMTVdPWVbM10qZytlWzddKnYrZVsxMV0qbStlWzE1XSk6KG49ZVswXSxhPWVbMV0saT1lWzJdLG89ZVszXSxzPWVbNF0sbD1lWzVdLGM9ZVs2XSx1PWVbN10saD1lWzhdLGY9ZVs5XSxwPWVbMTBdLGQ9ZVsxMV0sdFswXT1uLHRbMV09YSx0WzJdPWksdFszXT1vLHRbNF09cyx0WzVdPWwsdFs2XT1jLHRbN109dSx0WzhdPWgsdFs5XT1mLHRbMTBdPXAsdFsxMV09ZCx0WzEyXT1uKmcrcyp2K2gqbStlWzEyXSx0WzEzXT1hKmcrbCp2K2YqbStlWzEzXSx0WzE0XT1pKmcrYyp2K3AqbStlWzE0XSx0WzE1XT1vKmcrdSp2K2QqbStlWzE1XSk7cmV0dXJuIHR9fSx7fV0sMjc5OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYodD09PWUpe3ZhciByPWVbMV0sbj1lWzJdLGE9ZVszXSxpPWVbNl0sbz1lWzddLHM9ZVsxMV07dFsxXT1lWzRdLHRbMl09ZVs4XSx0WzNdPWVbMTJdLHRbNF09cix0WzZdPWVbOV0sdFs3XT1lWzEzXSx0WzhdPW4sdFs5XT1pLHRbMTFdPWVbMTRdLHRbMTJdPWEsdFsxM109byx0WzE0XT1zfWVsc2UgdFswXT1lWzBdLHRbMV09ZVs0XSx0WzJdPWVbOF0sdFszXT1lWzEyXSx0WzRdPWVbMV0sdFs1XT1lWzVdLHRbNl09ZVs5XSx0WzddPWVbMTNdLHRbOF09ZVsyXSx0WzldPWVbNl0sdFsxMF09ZVsxMF0sdFsxMV09ZVsxNF0sdFsxMl09ZVszXSx0WzEzXT1lWzddLHRbMTRdPWVbMTFdLHRbMTVdPWVbMTVdO3JldHVybiB0fX0se31dLDI4MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtzd2l0Y2goZS5sZW5ndGgpe2Nhc2UgMDpicmVhaztjYXNlIDE6dFswXT0xL2VbMF07YnJlYWs7Y2FzZSA0Om4odCxlKTticmVhaztjYXNlIDk6YSh0LGUpO2JyZWFrO2Nhc2UgMTY6aSh0LGUpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJjdXJyZW50bHkgc3VwcG9ydHMgbWF0cmljZXMgdXAgdG8gNHg0Iil9cmV0dXJuIHR9O3ZhciBuPXQoImdsLW1hdDIvaW52ZXJ0IiksYT10KCJnbC1tYXQzL2ludmVydCIpLGk9dCgiZ2wtbWF0NC9pbnZlcnQiKX0seyJnbC1tYXQyL2ludmVydCI6MjYwLCJnbC1tYXQzL2ludmVydCI6MjYxLCJnbC1tYXQ0L2ludmVydCI6MjY4fV0sMjgxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImJhcnljZW50cmljIiksYT10KCJwb2x5dG9wZS1jbG9zZXN0LXBvaW50L2xpYi9jbG9zZXN0X3BvaW50XzJkLmpzIik7ZnVuY3Rpb24gaSh0LGUpe2Zvcih2YXIgcj1bMCwwLDAsMF0sbj0wO248NDsrK24pZm9yKHZhciBhPTA7YTw0OysrYSlyW2FdKz10WzQqbithXSplW25dO3JldHVybiByfWZ1bmN0aW9uIG8odCxlLHIsbixhKXtmb3IodmFyIG89aShuLGkocixpKGUsW3RbMF0sdFsxXSx0WzJdLDFdKSkpLHM9MDtzPDM7KytzKW9bc10vPW9bM107cmV0dXJuWy41KmFbMF0qKDErb1swXSksLjUqYVsxXSooMS1vWzFdKV19ZnVuY3Rpb24gcyh0LGUpe2Zvcih2YXIgcj1bMCwwLDBdLG49MDtuPHQubGVuZ3RoOysrbilmb3IodmFyIGE9dFtuXSxpPWVbbl0sbz0wO288MzsrK28pcltvXSs9aSphW29dO3JldHVybiByfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscixpLGwsYyl7aWYoMT09PXQubGVuZ3RoKXJldHVyblswLHRbMF0uc2xpY2UoKV07Zm9yKHZhciB1PW5ldyBBcnJheSh0Lmxlbmd0aCksaD0wO2g8dC5sZW5ndGg7KytoKXVbaF09byh0W2hdLHIsaSxsLGMpO2Zvcih2YXIgZj0wLHA9MS8wLGg9MDtoPHUubGVuZ3RoOysraCl7Zm9yKHZhciBkPTAsZz0wO2c8MjsrK2cpZCs9TWF0aC5wb3codVtoXVtnXS1lW2ddLDIpO2Q8cCYmKHA9ZCxmPWgpfWZvcih2YXIgdj1mdW5jdGlvbih0LGUpe2lmKDI9PT10Lmxlbmd0aCl7Zm9yKHZhciByPTAsaT0wLG89MDtvPDI7KytvKXIrPU1hdGgucG93KGVbb10tdFswXVtvXSwyKSxpKz1NYXRoLnBvdyhlW29dLXRbMV1bb10sMik7cmV0dXJuIHI9TWF0aC5zcXJ0KHIpLGk9TWF0aC5zcXJ0KGkpLHIraTwxZS02P1sxLDBdOltpLyhyK2kpLHIvKGkrcildfWlmKDM9PT10Lmxlbmd0aCl7dmFyIHM9WzAsMF07cmV0dXJuIGEodFswXSx0WzFdLHRbMl0sZSxzKSxuKHQscyl9cmV0dXJuW119KHUsZSksbT0wLGg9MDtoPDM7KytoKXtpZih2W2hdPC0uMDAxfHx2W2hdPjEuMDAwMSlyZXR1cm4gbnVsbDttKz12W2hdfWlmKE1hdGguYWJzKG0tMSk+LjAwMSlyZXR1cm4gbnVsbDtyZXR1cm5bZixzKHQsdiksdl19fSx7YmFyeWNlbnRyaWM6NzUsInBvbHl0b3BlLWNsb3Nlc3QtcG9pbnQvbGliL2Nsb3Nlc3RfcG9pbnRfMmQuanMiOjQ4M31dLDI4MjpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoImdsc2xpZnkiKSxhPW4oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbiwgbm9ybWFsO1xuYXR0cmlidXRlIHZlYzQgY29sb3I7XG5hdHRyaWJ1dGUgdmVjMiB1djtcblxudW5pZm9ybSBtYXQ0IG1vZGVsXG4gICAgICAgICAgICwgdmlld1xuICAgICAgICAgICAsIHByb2plY3Rpb25cbiAgICAgICAgICAgLCBpbnZlcnNlTW9kZWw7XG51bmlmb3JtIHZlYzMgZXllUG9zaXRpb25cbiAgICAgICAgICAgLCBsaWdodFBvc2l0aW9uO1xuXG52YXJ5aW5nIHZlYzMgZl9ub3JtYWxcbiAgICAgICAgICAgLCBmX2xpZ2h0RGlyZWN0aW9uXG4gICAgICAgICAgICwgZl9leWVEaXJlY3Rpb25cbiAgICAgICAgICAgLCBmX2RhdGE7XG52YXJ5aW5nIHZlYzQgZl9jb2xvcjtcbnZhcnlpbmcgdmVjMiBmX3V2O1xuXG52ZWM0IHByb2plY3QodmVjMyBwKSB7XG4gIHJldHVybiBwcm9qZWN0aW9uICogdmlldyAqIG1vZGVsICogdmVjNChwLCAxLjApO1xufVxuXG52b2lkIG1haW4oKSB7XG4gIGdsX1Bvc2l0aW9uICAgICAgPSBwcm9qZWN0KHBvc2l0aW9uKTtcblxuICAvL0xpZ2h0aW5nIGdlb21ldHJ5IHBhcmFtZXRlcnNcbiAgdmVjNCBjYW1lcmFDb29yZGluYXRlID0gdmlldyAqIHZlYzQocG9zaXRpb24gLCAxLjApO1xuICBjYW1lcmFDb29yZGluYXRlLnh5eiAvPSBjYW1lcmFDb29yZGluYXRlLnc7XG4gIGZfbGlnaHREaXJlY3Rpb24gPSBsaWdodFBvc2l0aW9uIC0gY2FtZXJhQ29vcmRpbmF0ZS54eXo7XG4gIGZfZXllRGlyZWN0aW9uICAgPSBleWVQb3NpdGlvbiAtIGNhbWVyYUNvb3JkaW5hdGUueHl6O1xuICBmX25vcm1hbCAgPSBub3JtYWxpemUoKHZlYzQobm9ybWFsLCAwLjApICogaW52ZXJzZU1vZGVsKS54eXopO1xuXG4gIGZfY29sb3IgICAgICAgICAgPSBjb2xvcjtcbiAgZl9kYXRhICAgICAgICAgICA9IHBvc2l0aW9uO1xuICBmX3V2ICAgICAgICAgICAgID0gdXY7XG59XG4iXSksaT1uKFsiI2V4dGVuc2lvbiBHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMgOiBlbmFibGVcblxucHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuZmxvYXQgYmVja21hbm5EaXN0cmlidXRpb24oZmxvYXQgeCwgZmxvYXQgcm91Z2huZXNzKSB7XG4gIGZsb2F0IE5kb3RIID0gbWF4KHgsIDAuMDAwMSk7XG4gIGZsb2F0IGNvczJBbHBoYSA9IE5kb3RIICogTmRvdEg7XG4gIGZsb2F0IHRhbjJBbHBoYSA9IChjb3MyQWxwaGEgLSAxLjApIC8gY29zMkFscGhhO1xuICBmbG9hdCByb3VnaG5lc3MyID0gcm91Z2huZXNzICogcm91Z2huZXNzO1xuICBmbG9hdCBkZW5vbSA9IDMuMTQxNTkyNjUzNTg5NzkzICogcm91Z2huZXNzMiAqIGNvczJBbHBoYSAqIGNvczJBbHBoYTtcbiAgcmV0dXJuIGV4cCh0YW4yQWxwaGEgLyByb3VnaG5lc3MyKSAvIGRlbm9tO1xufVxuXG5mbG9hdCBjb29rVG9ycmFuY2VTcGVjdWxhcihcbiAgdmVjMyBsaWdodERpcmVjdGlvbixcbiAgdmVjMyB2aWV3RGlyZWN0aW9uLFxuICB2ZWMzIHN1cmZhY2VOb3JtYWwsXG4gIGZsb2F0IHJvdWdobmVzcyxcbiAgZmxvYXQgZnJlc25lbCkge1xuXG4gIGZsb2F0IFZkb3ROID0gbWF4KGRvdCh2aWV3RGlyZWN0aW9uLCBzdXJmYWNlTm9ybWFsKSwgMC4wKTtcbiAgZmxvYXQgTGRvdE4gPSBtYXgoZG90KGxpZ2h0RGlyZWN0aW9uLCBzdXJmYWNlTm9ybWFsKSwgMC4wKTtcblxuICAvL0hhbGYgYW5nbGUgdmVjdG9yXG4gIHZlYzMgSCA9IG5vcm1hbGl6ZShsaWdodERpcmVjdGlvbiArIHZpZXdEaXJlY3Rpb24pO1xuXG4gIC8vR2VvbWV0cmljIHRlcm1cbiAgZmxvYXQgTmRvdEggPSBtYXgoZG90KHN1cmZhY2VOb3JtYWwsIEgpLCAwLjApO1xuICBmbG9hdCBWZG90SCA9IG1heChkb3Qodmlld0RpcmVjdGlvbiwgSCksIDAuMDAwMDAxKTtcbiAgZmxvYXQgTGRvdEggPSBtYXgoZG90KGxpZ2h0RGlyZWN0aW9uLCBIKSwgMC4wMDAwMDEpO1xuICBmbG9hdCBHMSA9ICgyLjAgKiBOZG90SCAqIFZkb3ROKSAvIFZkb3RIO1xuICBmbG9hdCBHMiA9ICgyLjAgKiBOZG90SCAqIExkb3ROKSAvIExkb3RIO1xuICBmbG9hdCBHID0gbWluKDEuMCwgbWluKEcxLCBHMikpO1xuICBcbiAgLy9EaXN0cmlidXRpb24gdGVybVxuICBmbG9hdCBEID0gYmVja21hbm5EaXN0cmlidXRpb24oTmRvdEgsIHJvdWdobmVzcyk7XG5cbiAgLy9GcmVzbmVsIHRlcm1cbiAgZmxvYXQgRiA9IHBvdygxLjAgLSBWZG90TiwgZnJlc25lbCk7XG5cbiAgLy9NdWx0aXBseSB0ZXJtcyBhbmQgZG9uZVxuICByZXR1cm4gIEcgKiBGICogRCAvIG1heCgzLjE0MTU5MjY1ICogVmRvdE4sIDAuMDAwMDAxKTtcbn1cblxuLy8jcHJhZ21hIGdsc2xpZnk6IGJlY2ttYW5uID0gcmVxdWlyZShnbHNsLXNwZWN1bGFyLWJlY2ttYW5uKSAvLyB1c2VkIGluIGdsLXN1cmZhY2UzZFxuXG5ib29sIG91dE9mUmFuZ2UoZmxvYXQgYSwgZmxvYXQgYiwgZmxvYXQgcCkge1xuICByZXR1cm4gKChwID4gbWF4KGEsIGIpKSB8fCBcbiAgICAgICAgICAocCA8IG1pbihhLCBiKSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMiBhLCB2ZWMyIGIsIHZlYzIgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzMgYSwgdmVjMyBiLCB2ZWMzIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS56LCBiLnosIHAueikpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjNCBhLCB2ZWM0IGIsIHZlYzQgcCkge1xuICByZXR1cm4gb3V0T2ZSYW5nZShhLnh5eiwgYi54eXosIHAueHl6KTtcbn1cblxudW5pZm9ybSB2ZWMzIGNsaXBCb3VuZHNbMl07XG51bmlmb3JtIGZsb2F0IHJvdWdobmVzc1xuICAgICAgICAgICAgLCBmcmVzbmVsXG4gICAgICAgICAgICAsIGthbWJpZW50XG4gICAgICAgICAgICAsIGtkaWZmdXNlXG4gICAgICAgICAgICAsIGtzcGVjdWxhcjtcbnVuaWZvcm0gc2FtcGxlcjJEIHRleHR1cmU7XG5cbnZhcnlpbmcgdmVjMyBmX25vcm1hbFxuICAgICAgICAgICAsIGZfbGlnaHREaXJlY3Rpb25cbiAgICAgICAgICAgLCBmX2V5ZURpcmVjdGlvblxuICAgICAgICAgICAsIGZfZGF0YTtcbnZhcnlpbmcgdmVjNCBmX2NvbG9yO1xudmFyeWluZyB2ZWMyIGZfdXY7XG5cbnZvaWQgbWFpbigpIHtcbiAgaWYgKGZfY29sb3IuYSA9PSAwLjAgfHxcbiAgICBvdXRPZlJhbmdlKGNsaXBCb3VuZHNbMF0sIGNsaXBCb3VuZHNbMV0sIGZfZGF0YSlcbiAgKSBkaXNjYXJkO1xuXG4gIHZlYzMgTiA9IG5vcm1hbGl6ZShmX25vcm1hbCk7XG4gIHZlYzMgTCA9IG5vcm1hbGl6ZShmX2xpZ2h0RGlyZWN0aW9uKTtcbiAgdmVjMyBWID0gbm9ybWFsaXplKGZfZXllRGlyZWN0aW9uKTtcblxuICBpZihnbF9Gcm9udEZhY2luZykge1xuICAgIE4gPSAtTjtcbiAgfVxuXG4gIGZsb2F0IHNwZWN1bGFyID0gbWluKDEuMCwgbWF4KDAuMCwgY29va1RvcnJhbmNlU3BlY3VsYXIoTCwgViwgTiwgcm91Z2huZXNzLCBmcmVzbmVsKSkpO1xuICAvL2Zsb2F0IHNwZWN1bGFyID0gbWF4KDAuMCwgYmVja21hbm4oTCwgViwgTiwgcm91Z2huZXNzKSk7IC8vIHVzZWQgaW4gZ2wtc3VyZmFjZTNkXG5cbiAgZmxvYXQgZGlmZnVzZSAgPSBtaW4oa2FtYmllbnQgKyBrZGlmZnVzZSAqIG1heChkb3QoTiwgTCksIDAuMCksIDEuMCk7XG5cbiAgdmVjNCBzdXJmYWNlQ29sb3IgPSB2ZWM0KGZfY29sb3IucmdiLCAxLjApICogdGV4dHVyZTJEKHRleHR1cmUsIGZfdXYpO1xuICB2ZWM0IGxpdENvbG9yID0gc3VyZmFjZUNvbG9yLmEgKiB2ZWM0KGRpZmZ1c2UgKiBzdXJmYWNlQ29sb3IucmdiICsga3NwZWN1bGFyICogdmVjMygxLDEsMSkgKiBzcGVjdWxhciwgIDEuMCk7XG5cbiAgZ2xfRnJhZ0NvbG9yID0gbGl0Q29sb3IgKiBmX2NvbG9yLmE7XG59XG4iXSksbz1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzMgcG9zaXRpb247XG5hdHRyaWJ1dGUgdmVjNCBjb2xvcjtcbmF0dHJpYnV0ZSB2ZWMyIHV2O1xuXG51bmlmb3JtIG1hdDQgbW9kZWwsIHZpZXcsIHByb2plY3Rpb247XG5cbnZhcnlpbmcgdmVjNCBmX2NvbG9yO1xudmFyeWluZyB2ZWMzIGZfZGF0YTtcbnZhcnlpbmcgdmVjMiBmX3V2O1xuXG52b2lkIG1haW4oKSB7XG4gIGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbiAqIHZpZXcgKiBtb2RlbCAqIHZlYzQocG9zaXRpb24sIDEuMCk7XG4gIGZfY29sb3IgPSBjb2xvcjtcbiAgZl9kYXRhICA9IHBvc2l0aW9uO1xuICBmX3V2ICAgID0gdXY7XG59Il0pLHM9bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmJvb2wgb3V0T2ZSYW5nZShmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBwKSB7XG4gIHJldHVybiAoKHAgPiBtYXgoYSwgYikpIHx8IFxuICAgICAgICAgIChwIDwgbWluKGEsIGIpKSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMyIGEsIHZlYzIgYiwgdmVjMiBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMyBhLCB2ZWMzIGIsIHZlYzMgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnosIGIueiwgcC56KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWM0IGEsIHZlYzQgYiwgdmVjNCBwKSB7XG4gIHJldHVybiBvdXRPZlJhbmdlKGEueHl6LCBiLnh5eiwgcC54eXopO1xufVxuXG51bmlmb3JtIHZlYzMgY2xpcEJvdW5kc1syXTtcbnVuaWZvcm0gc2FtcGxlcjJEIHRleHR1cmU7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG5cbnZhcnlpbmcgdmVjNCBmX2NvbG9yO1xudmFyeWluZyB2ZWMzIGZfZGF0YTtcbnZhcnlpbmcgdmVjMiBmX3V2O1xuXG52b2lkIG1haW4oKSB7XG4gIGlmIChvdXRPZlJhbmdlKGNsaXBCb3VuZHNbMF0sIGNsaXBCb3VuZHNbMV0sIGZfZGF0YSkpIGRpc2NhcmQ7XG5cbiAgZ2xfRnJhZ0NvbG9yID0gZl9jb2xvciAqIHRleHR1cmUyRCh0ZXh0dXJlLCBmX3V2KSAqIG9wYWNpdHk7XG59Il0pLGw9bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmJvb2wgb3V0T2ZSYW5nZShmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBwKSB7XG4gIHJldHVybiAoKHAgPiBtYXgoYSwgYikpIHx8IFxuICAgICAgICAgIChwIDwgbWluKGEsIGIpKSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMyIGEsIHZlYzIgYiwgdmVjMiBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMyBhLCB2ZWMzIGIsIHZlYzMgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnosIGIueiwgcC56KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWM0IGEsIHZlYzQgYiwgdmVjNCBwKSB7XG4gIHJldHVybiBvdXRPZlJhbmdlKGEueHl6LCBiLnh5eiwgcC54eXopO1xufVxuXG5hdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjtcbmF0dHJpYnV0ZSB2ZWM0IGNvbG9yO1xuYXR0cmlidXRlIHZlYzIgdXY7XG5hdHRyaWJ1dGUgZmxvYXQgcG9pbnRTaXplO1xuXG51bmlmb3JtIG1hdDQgbW9kZWwsIHZpZXcsIHByb2plY3Rpb247XG51bmlmb3JtIHZlYzMgY2xpcEJvdW5kc1syXTtcblxudmFyeWluZyB2ZWM0IGZfY29sb3I7XG52YXJ5aW5nIHZlYzIgZl91djtcblxudm9pZCBtYWluKCkge1xuICBpZiAob3V0T2ZSYW5nZShjbGlwQm91bmRzWzBdLCBjbGlwQm91bmRzWzFdLCBwb3NpdGlvbikpIHtcblxuICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgwLjAsIDAuMCAsMC4wICwwLjApO1xuICB9IGVsc2Uge1xuICAgIGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbiAqIHZpZXcgKiBtb2RlbCAqIHZlYzQocG9zaXRpb24sIDEuMCk7XG4gIH1cbiAgZ2xfUG9pbnRTaXplID0gcG9pbnRTaXplO1xuICBmX2NvbG9yID0gY29sb3I7XG4gIGZfdXYgPSB1djtcbn0iXSksYz1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZTtcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcblxudmFyeWluZyB2ZWM0IGZfY29sb3I7XG52YXJ5aW5nIHZlYzIgZl91djtcblxudm9pZCBtYWluKCkge1xuICB2ZWMyIHBvaW50UiA9IGdsX1BvaW50Q29vcmQueHkgLSB2ZWMyKDAuNSwgMC41KTtcbiAgaWYoZG90KHBvaW50UiwgcG9pbnRSKSA+IDAuMjUpIHtcbiAgICBkaXNjYXJkO1xuICB9XG4gIGdsX0ZyYWdDb2xvciA9IGZfY29sb3IgKiB0ZXh0dXJlMkQodGV4dHVyZSwgZl91dikgKiBvcGFjaXR5O1xufSJdKSx1PW4oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjtcbmF0dHJpYnV0ZSB2ZWM0IGlkO1xuXG51bmlmb3JtIG1hdDQgbW9kZWwsIHZpZXcsIHByb2plY3Rpb247XG5cbnZhcnlpbmcgdmVjMyBmX3Bvc2l0aW9uO1xudmFyeWluZyB2ZWM0IGZfaWQ7XG5cbnZvaWQgbWFpbigpIHtcbiAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uICogdmlldyAqIG1vZGVsICogdmVjNChwb3NpdGlvbiwgMS4wKTtcbiAgZl9pZCAgICAgICAgPSBpZDtcbiAgZl9wb3NpdGlvbiAgPSBwb3NpdGlvbjtcbn0iXSksaD1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYm9vbCBvdXRPZlJhbmdlKGZsb2F0IGEsIGZsb2F0IGIsIGZsb2F0IHApIHtcbiAgcmV0dXJuICgocCA+IG1heChhLCBiKSkgfHwgXG4gICAgICAgICAgKHAgPCBtaW4oYSwgYikpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzIgYSwgdmVjMiBiLCB2ZWMyIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMzIGEsIHZlYzMgYiwgdmVjMyBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueiwgYi56LCBwLnopKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzQgYSwgdmVjNCBiLCB2ZWM0IHApIHtcbiAgcmV0dXJuIG91dE9mUmFuZ2UoYS54eXosIGIueHl6LCBwLnh5eik7XG59XG5cbnVuaWZvcm0gdmVjMyAgY2xpcEJvdW5kc1syXTtcbnVuaWZvcm0gZmxvYXQgcGlja0lkO1xuXG52YXJ5aW5nIHZlYzMgZl9wb3NpdGlvbjtcbnZhcnlpbmcgdmVjNCBmX2lkO1xuXG52b2lkIG1haW4oKSB7XG4gIGlmIChvdXRPZlJhbmdlKGNsaXBCb3VuZHNbMF0sIGNsaXBCb3VuZHNbMV0sIGZfcG9zaXRpb24pKSBkaXNjYXJkO1xuXG4gIGdsX0ZyYWdDb2xvciA9IHZlYzQocGlja0lkLCBmX2lkLnh5eik7XG59Il0pLGY9bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmJvb2wgb3V0T2ZSYW5nZShmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBwKSB7XG4gIHJldHVybiAoKHAgPiBtYXgoYSwgYikpIHx8IFxuICAgICAgICAgIChwIDwgbWluKGEsIGIpKSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMyIGEsIHZlYzIgYiwgdmVjMiBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMyBhLCB2ZWMzIGIsIHZlYzMgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnosIGIueiwgcC56KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWM0IGEsIHZlYzQgYiwgdmVjNCBwKSB7XG4gIHJldHVybiBvdXRPZlJhbmdlKGEueHl6LCBiLnh5eiwgcC54eXopO1xufVxuXG5hdHRyaWJ1dGUgdmVjMyAgcG9zaXRpb247XG5hdHRyaWJ1dGUgZmxvYXQgcG9pbnRTaXplO1xuYXR0cmlidXRlIHZlYzQgIGlkO1xuXG51bmlmb3JtIG1hdDQgbW9kZWwsIHZpZXcsIHByb2plY3Rpb247XG51bmlmb3JtIHZlYzMgY2xpcEJvdW5kc1syXTtcblxudmFyeWluZyB2ZWMzIGZfcG9zaXRpb247XG52YXJ5aW5nIHZlYzQgZl9pZDtcblxudm9pZCBtYWluKCkge1xuICBpZiAob3V0T2ZSYW5nZShjbGlwQm91bmRzWzBdLCBjbGlwQm91bmRzWzFdLCBwb3NpdGlvbikpIHtcblxuICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgwLjAsIDAuMCwgMC4wLCAwLjApO1xuICB9IGVsc2Uge1xuICAgIGdsX1Bvc2l0aW9uICA9IHByb2plY3Rpb24gKiB2aWV3ICogbW9kZWwgKiB2ZWM0KHBvc2l0aW9uLCAxLjApO1xuICAgIGdsX1BvaW50U2l6ZSA9IHBvaW50U2l6ZTtcbiAgfVxuICBmX2lkICAgICAgICAgPSBpZDtcbiAgZl9wb3NpdGlvbiAgID0gcG9zaXRpb247XG59Il0pLHA9bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uO1xuXG51bmlmb3JtIG1hdDQgbW9kZWwsIHZpZXcsIHByb2plY3Rpb247XG5cbnZvaWQgbWFpbigpIHtcbiAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uICogdmlldyAqIG1vZGVsICogdmVjNChwb3NpdGlvbiwgMS4wKTtcbn0iXSksZD1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudW5pZm9ybSB2ZWMzIGNvbnRvdXJDb2xvcjtcblxudm9pZCBtYWluKCkge1xuICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGNvbnRvdXJDb2xvciwgMS4wKTtcbn1cbiJdKTtyLm1lc2hTaGFkZXI9e3ZlcnRleDphLGZyYWdtZW50OmksYXR0cmlidXRlczpbe25hbWU6InBvc2l0aW9uIix0eXBlOiJ2ZWMzIn0se25hbWU6Im5vcm1hbCIsdHlwZToidmVjMyJ9LHtuYW1lOiJjb2xvciIsdHlwZToidmVjNCJ9LHtuYW1lOiJ1diIsdHlwZToidmVjMiJ9XX0sci53aXJlU2hhZGVyPXt2ZXJ0ZXg6byxmcmFnbWVudDpzLGF0dHJpYnV0ZXM6W3tuYW1lOiJwb3NpdGlvbiIsdHlwZToidmVjMyJ9LHtuYW1lOiJjb2xvciIsdHlwZToidmVjNCJ9LHtuYW1lOiJ1diIsdHlwZToidmVjMiJ9XX0sci5wb2ludFNoYWRlcj17dmVydGV4OmwsZnJhZ21lbnQ6YyxhdHRyaWJ1dGVzOlt7bmFtZToicG9zaXRpb24iLHR5cGU6InZlYzMifSx7bmFtZToiY29sb3IiLHR5cGU6InZlYzQifSx7bmFtZToidXYiLHR5cGU6InZlYzIifSx7bmFtZToicG9pbnRTaXplIix0eXBlOiJmbG9hdCJ9XX0sci5waWNrU2hhZGVyPXt2ZXJ0ZXg6dSxmcmFnbWVudDpoLGF0dHJpYnV0ZXM6W3tuYW1lOiJwb3NpdGlvbiIsdHlwZToidmVjMyJ9LHtuYW1lOiJpZCIsdHlwZToidmVjNCJ9XX0sci5wb2ludFBpY2tTaGFkZXI9e3ZlcnRleDpmLGZyYWdtZW50OmgsYXR0cmlidXRlczpbe25hbWU6InBvc2l0aW9uIix0eXBlOiJ2ZWMzIn0se25hbWU6InBvaW50U2l6ZSIsdHlwZToiZmxvYXQifSx7bmFtZToiaWQiLHR5cGU6InZlYzQifV19LHIuY29udG91clNoYWRlcj17dmVydGV4OnAsZnJhZ21lbnQ6ZCxhdHRyaWJ1dGVzOlt7bmFtZToicG9zaXRpb24iLHR5cGU6InZlYzMifV19fSx7Z2xzbGlmeTo0MTF9XSwyODM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZ2wtc2hhZGVyIiksYT10KCJnbC1idWZmZXIiKSxpPXQoImdsLXZhbyIpLG89dCgiZ2wtdGV4dHVyZTJkIikscz10KCJub3JtYWxzIiksbD10KCJnbC1tYXQ0L211bHRpcGx5IiksYz10KCJnbC1tYXQ0L2ludmVydCIpLHU9dCgibmRhcnJheSIpLGg9dCgiY29sb3JtYXAiKSxmPXQoInNpbXBsaWNpYWwtY29tcGxleC1jb250b3VyIikscD10KCJ0eXBlZGFycmF5LXBvb2wiKSxkPXQoIi4vbGliL3NoYWRlcnMiKSxnPXQoIi4vbGliL2Nsb3Nlc3QtcG9pbnQiKSx2PWQubWVzaFNoYWRlcixtPWQud2lyZVNoYWRlcix5PWQucG9pbnRTaGFkZXIseD1kLnBpY2tTaGFkZXIsYj1kLnBvaW50UGlja1NoYWRlcixfPWQuY29udG91clNoYWRlcix3PVsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwxXTtmdW5jdGlvbiBrKHQsZSxyLG4sYSxpLG8scyxsLGMsdSxoLGYscCxkLGcsdixtLHkseCxiLF8sayxULE0sQSxTKXt0aGlzLmdsPXQsdGhpcy5waXhlbFJhdGlvPTEsdGhpcy5jZWxscz1bXSx0aGlzLnBvc2l0aW9ucz1bXSx0aGlzLmludGVuc2l0eT1bXSx0aGlzLnRleHR1cmU9ZSx0aGlzLmRpcnR5PSEwLHRoaXMudHJpU2hhZGVyPXIsdGhpcy5saW5lU2hhZGVyPW4sdGhpcy5wb2ludFNoYWRlcj1hLHRoaXMucGlja1NoYWRlcj1pLHRoaXMucG9pbnRQaWNrU2hhZGVyPW8sdGhpcy5jb250b3VyU2hhZGVyPXMsdGhpcy50cmlhbmdsZVBvc2l0aW9ucz1sLHRoaXMudHJpYW5nbGVDb2xvcnM9dSx0aGlzLnRyaWFuZ2xlTm9ybWFscz1mLHRoaXMudHJpYW5nbGVVVnM9aCx0aGlzLnRyaWFuZ2xlSWRzPWMsdGhpcy50cmlhbmdsZVZBTz1wLHRoaXMudHJpYW5nbGVDb3VudD0wLHRoaXMubGluZVdpZHRoPTEsdGhpcy5lZGdlUG9zaXRpb25zPWQsdGhpcy5lZGdlQ29sb3JzPXYsdGhpcy5lZGdlVVZzPW0sdGhpcy5lZGdlSWRzPWcsdGhpcy5lZGdlVkFPPXksdGhpcy5lZGdlQ291bnQ9MCx0aGlzLnBvaW50UG9zaXRpb25zPXgsdGhpcy5wb2ludENvbG9ycz1fLHRoaXMucG9pbnRVVnM9ayx0aGlzLnBvaW50U2l6ZXM9VCx0aGlzLnBvaW50SWRzPWIsdGhpcy5wb2ludFZBTz1NLHRoaXMucG9pbnRDb3VudD0wLHRoaXMuY29udG91ckxpbmVXaWR0aD0xLHRoaXMuY29udG91clBvc2l0aW9ucz1BLHRoaXMuY29udG91clZBTz1TLHRoaXMuY29udG91ckNvdW50PTAsdGhpcy5jb250b3VyQ29sb3I9WzAsMCwwXSx0aGlzLmNvbnRvdXJFbmFibGU9ITAsdGhpcy5waWNrVmVydGV4PSEwLHRoaXMucGlja0lkPTEsdGhpcy5ib3VuZHM9W1sxLzAsMS8wLDEvMF0sWy0xLzAsLTEvMCwtMS8wXV0sdGhpcy5jbGlwQm91bmRzPVtbLTEvMCwtMS8wLC0xLzBdLFsxLzAsMS8wLDEvMF1dLHRoaXMubGlnaHRQb3NpdGlvbj1bMWU1LDFlNSwwXSx0aGlzLmFtYmllbnRMaWdodD0uOCx0aGlzLmRpZmZ1c2VMaWdodD0uOCx0aGlzLnNwZWN1bGFyTGlnaHQ9Mix0aGlzLnJvdWdobmVzcz0uNSx0aGlzLmZyZXNuZWw9MS41LHRoaXMub3BhY2l0eT0xLHRoaXMuaGFzQWxwaGE9ITEsdGhpcy5vcGFjaXR5c2NhbGU9ITEsdGhpcy5fbW9kZWw9dyx0aGlzLl92aWV3PXcsdGhpcy5fcHJvamVjdGlvbj13LHRoaXMuX3Jlc29sdXRpb249WzEsMV19dmFyIFQ9ay5wcm90b3R5cGU7ZnVuY3Rpb24gTSh0LGUpe2lmKCFlKXJldHVybiAxO2lmKCFlLmxlbmd0aClyZXR1cm4gMTtmb3IodmFyIHI9MDtyPGUubGVuZ3RoOysrcil7aWYoZS5sZW5ndGg8MilyZXR1cm4gMTtpZihlW3JdWzBdPT09dClyZXR1cm4gZVtyXVsxXTtpZihlW3JdWzBdPnQmJnI+MCl7dmFyIG49KGVbcl1bMF0tdCkvKGVbcl1bMF0tZVtyLTFdWzBdKTtyZXR1cm4gZVtyXVsxXSooMS1uKStuKmVbci0xXVsxXX19cmV0dXJuIDF9ZnVuY3Rpb24gQSh0KXt2YXIgZT1uKHQseS52ZXJ0ZXgseS5mcmFnbWVudCk7cmV0dXJuIGUuYXR0cmlidXRlcy5wb3NpdGlvbi5sb2NhdGlvbj0wLGUuYXR0cmlidXRlcy5jb2xvci5sb2NhdGlvbj0yLGUuYXR0cmlidXRlcy51di5sb2NhdGlvbj0zLGUuYXR0cmlidXRlcy5wb2ludFNpemUubG9jYXRpb249NCxlfWZ1bmN0aW9uIFModCl7dmFyIGU9bih0LHgudmVydGV4LHguZnJhZ21lbnQpO3JldHVybiBlLmF0dHJpYnV0ZXMucG9zaXRpb24ubG9jYXRpb249MCxlLmF0dHJpYnV0ZXMuaWQubG9jYXRpb249MSxlfWZ1bmN0aW9uIEUodCl7dmFyIGU9bih0LGIudmVydGV4LGIuZnJhZ21lbnQpO3JldHVybiBlLmF0dHJpYnV0ZXMucG9zaXRpb24ubG9jYXRpb249MCxlLmF0dHJpYnV0ZXMuaWQubG9jYXRpb249MSxlLmF0dHJpYnV0ZXMucG9pbnRTaXplLmxvY2F0aW9uPTQsZX1mdW5jdGlvbiBMKHQpe3ZhciBlPW4odCxfLnZlcnRleCxfLmZyYWdtZW50KTtyZXR1cm4gZS5hdHRyaWJ1dGVzLnBvc2l0aW9uLmxvY2F0aW9uPTAsZX1ULmlzT3BhcXVlPWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaGFzQWxwaGF9LFQuaXNUcmFuc3BhcmVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmhhc0FscGhhfSxULnBpY2tTbG90cz0xLFQuc2V0UGlja0Jhc2U9ZnVuY3Rpb24odCl7dGhpcy5waWNrSWQ9dH0sVC5oaWdobGlnaHQ9ZnVuY3Rpb24odCl7aWYodCYmdGhpcy5jb250b3VyRW5hYmxlKXtmb3IodmFyIGU9Zih0aGlzLmNlbGxzLHRoaXMuaW50ZW5zaXR5LHQuaW50ZW5zaXR5KSxyPWUuY2VsbHMsbj1lLnZlcnRleElkcyxhPWUudmVydGV4V2VpZ2h0cyxpPXIubGVuZ3RoLG89cC5tYWxsb2NGbG9hdDMyKDYqaSkscz0wLGw9MDtsPGk7KytsKWZvcih2YXIgYz1yW2xdLHU9MDt1PDI7Kyt1KXt2YXIgaD1jWzBdOzI9PT1jLmxlbmd0aCYmKGg9Y1t1XSk7Zm9yKHZhciBkPW5baF1bMF0sZz1uW2hdWzFdLHY9YVtoXSxtPTEtdix5PXRoaXMucG9zaXRpb25zW2RdLHg9dGhpcy5wb3NpdGlvbnNbZ10sYj0wO2I8MzsrK2Ipb1tzKytdPXYqeVtiXSttKnhbYl19dGhpcy5jb250b3VyQ291bnQ9cy8zfDAsdGhpcy5jb250b3VyUG9zaXRpb25zLnVwZGF0ZShvLnN1YmFycmF5KDAscykpLHAuZnJlZShvKX1lbHNlIHRoaXMuY29udG91ckNvdW50PTB9LFQudXBkYXRlPWZ1bmN0aW9uKHQpe3Q9dHx8e307dmFyIGU9dGhpcy5nbDt0aGlzLmRpcnR5PSEwLCJjb250b3VyRW5hYmxlImluIHQmJih0aGlzLmNvbnRvdXJFbmFibGU9dC5jb250b3VyRW5hYmxlKSwiY29udG91ckNvbG9yImluIHQmJih0aGlzLmNvbnRvdXJDb2xvcj10LmNvbnRvdXJDb2xvciksImxpbmVXaWR0aCJpbiB0JiYodGhpcy5saW5lV2lkdGg9dC5saW5lV2lkdGgpLCJsaWdodFBvc2l0aW9uImluIHQmJih0aGlzLmxpZ2h0UG9zaXRpb249dC5saWdodFBvc2l0aW9uKSx0aGlzLmhhc0FscGhhPSExLCJvcGFjaXR5ImluIHQmJih0aGlzLm9wYWNpdHk9dC5vcGFjaXR5LHRoaXMub3BhY2l0eTwxJiYodGhpcy5oYXNBbHBoYT0hMCkpLCJvcGFjaXR5c2NhbGUiaW4gdCYmKHRoaXMub3BhY2l0eXNjYWxlPXQub3BhY2l0eXNjYWxlLHRoaXMuaGFzQWxwaGE9ITApLCJhbWJpZW50ImluIHQmJih0aGlzLmFtYmllbnRMaWdodD10LmFtYmllbnQpLCJkaWZmdXNlImluIHQmJih0aGlzLmRpZmZ1c2VMaWdodD10LmRpZmZ1c2UpLCJzcGVjdWxhciJpbiB0JiYodGhpcy5zcGVjdWxhckxpZ2h0PXQuc3BlY3VsYXIpLCJyb3VnaG5lc3MiaW4gdCYmKHRoaXMucm91Z2huZXNzPXQucm91Z2huZXNzKSwiZnJlc25lbCJpbiB0JiYodGhpcy5mcmVzbmVsPXQuZnJlc25lbCksdC50ZXh0dXJlPyh0aGlzLnRleHR1cmUuZGlzcG9zZSgpLHRoaXMudGV4dHVyZT1vKGUsdC50ZXh0dXJlKSk6dC5jb2xvcm1hcCYmKHRoaXMudGV4dHVyZS5zaGFwZT1bMjU2LDI1Nl0sdGhpcy50ZXh0dXJlLm1pbkZpbHRlcj1lLkxJTkVBUl9NSVBNQVBfTElORUFSLHRoaXMudGV4dHVyZS5tYWdGaWx0ZXI9ZS5MSU5FQVIsdGhpcy50ZXh0dXJlLnNldFBpeGVscyhmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1oKHtjb2xvcm1hcDp0LG5zaGFkZXM6MjU2LGZvcm1hdDoicmdiYSJ9KSxuPW5ldyBVaW50OEFycmF5KDEwMjQpLGE9MDthPDI1NjsrK2Epe2Zvcih2YXIgaT1yW2FdLG89MDtvPDM7KytvKW5bNCphK29dPWlbb107bls0KmErM109ZT8yNTUqTShhLzI1NSxlKToyNTUqaVszXX1yZXR1cm4gdShuLFsyNTYsMjU2LDRdLFs0LDAsMV0pfSh0LmNvbG9ybWFwLHRoaXMub3BhY2l0eXNjYWxlKSksdGhpcy50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwKCkpO3ZhciByPXQuY2VsbHMsbj10LnBvc2l0aW9ucztpZihuJiZyKXt2YXIgYT1bXSxpPVtdLGw9W10sYz1bXSxmPVtdLHA9W10sZD1bXSxnPVtdLHY9W10sbT1bXSx5PVtdLHg9W10sYj1bXSxfPVtdO3RoaXMuY2VsbHM9cix0aGlzLnBvc2l0aW9ucz1uO3ZhciB3PXQudmVydGV4Tm9ybWFscyxrPXQuY2VsbE5vcm1hbHMsVD12b2lkIDA9PT10LnZlcnRleE5vcm1hbHNFcHNpbG9uPzFlLTY6dC52ZXJ0ZXhOb3JtYWxzRXBzaWxvbixBPXZvaWQgMD09PXQuZmFjZU5vcm1hbHNFcHNpbG9uPzFlLTY6dC5mYWNlTm9ybWFsc0Vwc2lsb247dC51c2VGYWNldE5vcm1hbHMmJiFrJiYoaz1zLmZhY2VOb3JtYWxzKHIsbixBKSksa3x8d3x8KHc9cy52ZXJ0ZXhOb3JtYWxzKHIsbixUKSk7dmFyIFM9dC52ZXJ0ZXhDb2xvcnMsRT10LmNlbGxDb2xvcnMsTD10Lm1lc2hDb2xvcnx8WzEsMSwxLDFdLEM9dC52ZXJ0ZXhVVnMsUD10LnZlcnRleEludGVuc2l0eSxPPXQuY2VsbFVWcyx6PXQuY2VsbEludGVuc2l0eSxJPTEvMCxEPS0xLzA7aWYoIUMmJiFPKWlmKFApaWYodC52ZXJ0ZXhJbnRlbnNpdHlCb3VuZHMpST0rdC52ZXJ0ZXhJbnRlbnNpdHlCb3VuZHNbMF0sRD0rdC52ZXJ0ZXhJbnRlbnNpdHlCb3VuZHNbMV07ZWxzZSBmb3IodmFyIFI9MDtSPFAubGVuZ3RoOysrUil7dmFyIEY9UFtSXTtJPU1hdGgubWluKEksRiksRD1NYXRoLm1heChELEYpfWVsc2UgaWYoeilpZih0LmNlbGxJbnRlbnNpdHlCb3VuZHMpST0rdC5jZWxsSW50ZW5zaXR5Qm91bmRzWzBdLEQ9K3QuY2VsbEludGVuc2l0eUJvdW5kc1sxXTtlbHNlIGZvcihSPTA7Ujx6Lmxlbmd0aDsrK1Ipe0Y9eltSXTtJPU1hdGgubWluKEksRiksRD1NYXRoLm1heChELEYpfWVsc2UgZm9yKFI9MDtSPG4ubGVuZ3RoOysrUil7Rj1uW1JdWzJdO0k9TWF0aC5taW4oSSxGKSxEPU1hdGgubWF4KEQsRil9dGhpcy5pbnRlbnNpdHk9UHx8KHp8fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Lmxlbmd0aCxyPW5ldyBBcnJheShlKSxuPTA7bjxlOysrbilyW25dPXRbbl1bMl07cmV0dXJuIHJ9KG4pKSx0aGlzLnBpY2tWZXJ0ZXg9ISh6fHxFKTt2YXIgQj10LnBvaW50U2l6ZXMsTj10LnBvaW50U2l6ZXx8MTt0aGlzLmJvdW5kcz1bWzEvMCwxLzAsMS8wXSxbLTEvMCwtMS8wLC0xLzBdXTtmb3IoUj0wO1I8bi5sZW5ndGg7KytSKWZvcih2YXIgaj1uW1JdLFY9MDtWPDM7KytWKSFpc05hTihqW1ZdKSYmaXNGaW5pdGUoaltWXSkmJih0aGlzLmJvdW5kc1swXVtWXT1NYXRoLm1pbih0aGlzLmJvdW5kc1swXVtWXSxqW1ZdKSx0aGlzLmJvdW5kc1sxXVtWXT1NYXRoLm1heCh0aGlzLmJvdW5kc1sxXVtWXSxqW1ZdKSk7dmFyIFU9MCxxPTAsSD0wO3Q6Zm9yKFI9MDtSPHIubGVuZ3RoOysrUil7dmFyIEc9cltSXTtzd2l0Y2goRy5sZW5ndGgpe2Nhc2UgMTpmb3Ioaj1uW1c9R1swXV0sVj0wO1Y8MzsrK1YpaWYoaXNOYU4oaltWXSl8fCFpc0Zpbml0ZShqW1ZdKSljb250aW51ZSB0O20ucHVzaChqWzBdLGpbMV0salsyXSksWD1TP1NbV106RT9FW1JdOkwsdGhpcy5vcGFjaXR5c2NhbGUmJlA/aS5wdXNoKFhbMF0sWFsxXSxYWzJdLHRoaXMub3BhY2l0eSpNKChQW1ddLUkpLyhELUkpLHRoaXMub3BhY2l0eXNjYWxlKSk6Mz09PVgubGVuZ3RoP3kucHVzaChYWzBdLFhbMV0sWFsyXSx0aGlzLm9wYWNpdHkpOih5LnB1c2goWFswXSxYWzFdLFhbMl0sWFszXSp0aGlzLm9wYWNpdHkpLFhbM108MSYmKHRoaXMuaGFzQWxwaGE9ITApKSxaPUM/Q1tXXTpQP1soUFtXXS1JKS8oRC1JKSwwXTpPP09bUl06ej9bKHpbUl0tSSkvKEQtSSksMF06WyhqWzJdLUkpLyhELUkpLDBdLHgucHVzaChaWzBdLFpbMV0pLEI/Yi5wdXNoKEJbV10pOmIucHVzaChOKSxfLnB1c2goUiksSCs9MTticmVhaztjYXNlIDI6Zm9yKFY9MDtWPDI7KytWKXtqPW5bVz1HW1ZdXTtmb3IodmFyIFk9MDtZPDM7KytZKWlmKGlzTmFOKGpbWV0pfHwhaXNGaW5pdGUoaltZXSkpY29udGludWUgdH1mb3IoVj0wO1Y8MjsrK1Ype2o9bltXPUdbVl1dO3AucHVzaChqWzBdLGpbMV0salsyXSksWD1TP1NbV106RT9FW1JdOkwsdGhpcy5vcGFjaXR5c2NhbGUmJlA/aS5wdXNoKFhbMF0sWFsxXSxYWzJdLHRoaXMub3BhY2l0eSpNKChQW1ddLUkpLyhELUkpLHRoaXMub3BhY2l0eXNjYWxlKSk6Mz09PVgubGVuZ3RoP2QucHVzaChYWzBdLFhbMV0sWFsyXSx0aGlzLm9wYWNpdHkpOihkLnB1c2goWFswXSxYWzFdLFhbMl0sWFszXSp0aGlzLm9wYWNpdHkpLFhbM108MSYmKHRoaXMuaGFzQWxwaGE9ITApKSxaPUM/Q1tXXTpQP1soUFtXXS1JKS8oRC1JKSwwXTpPP09bUl06ej9bKHpbUl0tSSkvKEQtSSksMF06WyhqWzJdLUkpLyhELUkpLDBdLGcucHVzaChaWzBdLFpbMV0pLHYucHVzaChSKX1xKz0xO2JyZWFrO2Nhc2UgMzpmb3IoVj0wO1Y8MzsrK1YpZm9yKGo9bltXPUdbVl1dLFk9MDtZPDM7KytZKWlmKGlzTmFOKGpbWV0pfHwhaXNGaW5pdGUoaltZXSkpY29udGludWUgdDtmb3IoVj0wO1Y8MzsrK1Ype3ZhciBXLFgsWixKO2o9bltXPUdbMi1WXV07YS5wdXNoKGpbMF0salsxXSxqWzJdKSwoWD1TP1NbV106RT9FW1JdOkwpP3RoaXMub3BhY2l0eXNjYWxlJiZQP2kucHVzaChYWzBdLFhbMV0sWFsyXSx0aGlzLm9wYWNpdHkqTSgoUFtXXS1JKS8oRC1JKSx0aGlzLm9wYWNpdHlzY2FsZSkpOjM9PT1YLmxlbmd0aD9pLnB1c2goWFswXSxYWzFdLFhbMl0sdGhpcy5vcGFjaXR5KTooaS5wdXNoKFhbMF0sWFsxXSxYWzJdLFhbM10qdGhpcy5vcGFjaXR5KSxYWzNdPDEmJih0aGlzLmhhc0FscGhhPSEwKSk6aS5wdXNoKC41LC41LC41LDEpLFo9Qz9DW1ddOlA/WyhQW1ddLUkpLyhELUkpLDBdOk8/T1tSXTp6P1soeltSXS1JKS8oRC1JKSwwXTpbKGpbMl0tSSkvKEQtSSksMF0sYy5wdXNoKFpbMF0sWlsxXSksSj13P3dbV106a1tSXSxsLnB1c2goSlswXSxKWzFdLEpbMl0pLGYucHVzaChSKX1VKz0xfX10aGlzLnBvaW50Q291bnQ9SCx0aGlzLmVkZ2VDb3VudD1xLHRoaXMudHJpYW5nbGVDb3VudD1VLHRoaXMucG9pbnRQb3NpdGlvbnMudXBkYXRlKG0pLHRoaXMucG9pbnRDb2xvcnMudXBkYXRlKHkpLHRoaXMucG9pbnRVVnMudXBkYXRlKHgpLHRoaXMucG9pbnRTaXplcy51cGRhdGUoYiksdGhpcy5wb2ludElkcy51cGRhdGUobmV3IFVpbnQzMkFycmF5KF8pKSx0aGlzLmVkZ2VQb3NpdGlvbnMudXBkYXRlKHApLHRoaXMuZWRnZUNvbG9ycy51cGRhdGUoZCksdGhpcy5lZGdlVVZzLnVwZGF0ZShnKSx0aGlzLmVkZ2VJZHMudXBkYXRlKG5ldyBVaW50MzJBcnJheSh2KSksdGhpcy50cmlhbmdsZVBvc2l0aW9ucy51cGRhdGUoYSksdGhpcy50cmlhbmdsZUNvbG9ycy51cGRhdGUoaSksdGhpcy50cmlhbmdsZVVWcy51cGRhdGUoYyksdGhpcy50cmlhbmdsZU5vcm1hbHMudXBkYXRlKGwpLHRoaXMudHJpYW5nbGVJZHMudXBkYXRlKG5ldyBVaW50MzJBcnJheShmKSl9fSxULmRyYXdUcmFuc3BhcmVudD1ULmRyYXc9ZnVuY3Rpb24odCl7dD10fHx7fTtmb3IodmFyIGU9dGhpcy5nbCxyPXQubW9kZWx8fHcsbj10LnZpZXd8fHcsYT10LnByb2plY3Rpb258fHcsaT1bWy0xZTYsLTFlNiwtMWU2XSxbMWU2LDFlNiwxZTZdXSxvPTA7bzwzOysrbylpWzBdW29dPU1hdGgubWF4KGlbMF1bb10sdGhpcy5jbGlwQm91bmRzWzBdW29dKSxpWzFdW29dPU1hdGgubWluKGlbMV1bb10sdGhpcy5jbGlwQm91bmRzWzFdW29dKTt2YXIgcz17bW9kZWw6cix2aWV3Om4scHJvamVjdGlvbjphLGludmVyc2VNb2RlbDp3LnNsaWNlKCksY2xpcEJvdW5kczppLGthbWJpZW50OnRoaXMuYW1iaWVudExpZ2h0LGtkaWZmdXNlOnRoaXMuZGlmZnVzZUxpZ2h0LGtzcGVjdWxhcjp0aGlzLnNwZWN1bGFyTGlnaHQscm91Z2huZXNzOnRoaXMucm91Z2huZXNzLGZyZXNuZWw6dGhpcy5mcmVzbmVsLGV5ZVBvc2l0aW9uOlswLDAsMF0sbGlnaHRQb3NpdGlvbjpbMCwwLDBdLGNvbnRvdXJDb2xvcjp0aGlzLmNvbnRvdXJDb2xvcix0ZXh0dXJlOjB9O3MuaW52ZXJzZU1vZGVsPWMocy5pbnZlcnNlTW9kZWwscy5tb2RlbCksZS5kaXNhYmxlKGUuQ1VMTF9GQUNFKSx0aGlzLnRleHR1cmUuYmluZCgwKTt2YXIgdT1uZXcgQXJyYXkoMTYpO2wodSxzLnZpZXcscy5tb2RlbCksbCh1LHMucHJvamVjdGlvbix1KSxjKHUsdSk7Zm9yKG89MDtvPDM7KytvKXMuZXllUG9zaXRpb25bb109dVsxMitvXS91WzE1XTt2YXIgaCxmPXVbMTVdO2ZvcihvPTA7bzwzOysrbylmKz10aGlzLmxpZ2h0UG9zaXRpb25bb10qdVs0Km8rM107Zm9yKG89MDtvPDM7KytvKXtmb3IodmFyIHA9dVsxMitvXSxkPTA7ZDwzOysrZClwKz11WzQqZCtvXSp0aGlzLmxpZ2h0UG9zaXRpb25bZF07cy5saWdodFBvc2l0aW9uW29dPXAvZn10aGlzLnRyaWFuZ2xlQ291bnQ+MCYmKChoPXRoaXMudHJpU2hhZGVyKS5iaW5kKCksaC51bmlmb3Jtcz1zLHRoaXMudHJpYW5nbGVWQU8uYmluZCgpLGUuZHJhd0FycmF5cyhlLlRSSUFOR0xFUywwLDMqdGhpcy50cmlhbmdsZUNvdW50KSx0aGlzLnRyaWFuZ2xlVkFPLnVuYmluZCgpKTt0aGlzLmVkZ2VDb3VudD4wJiZ0aGlzLmxpbmVXaWR0aD4wJiYoKGg9dGhpcy5saW5lU2hhZGVyKS5iaW5kKCksaC51bmlmb3Jtcz1zLHRoaXMuZWRnZVZBTy5iaW5kKCksZS5saW5lV2lkdGgodGhpcy5saW5lV2lkdGgqdGhpcy5waXhlbFJhdGlvKSxlLmRyYXdBcnJheXMoZS5MSU5FUywwLDIqdGhpcy5lZGdlQ291bnQpLHRoaXMuZWRnZVZBTy51bmJpbmQoKSk7dGhpcy5wb2ludENvdW50PjAmJigoaD10aGlzLnBvaW50U2hhZGVyKS5iaW5kKCksaC51bmlmb3Jtcz1zLHRoaXMucG9pbnRWQU8uYmluZCgpLGUuZHJhd0FycmF5cyhlLlBPSU5UUywwLHRoaXMucG9pbnRDb3VudCksdGhpcy5wb2ludFZBTy51bmJpbmQoKSk7dGhpcy5jb250b3VyRW5hYmxlJiZ0aGlzLmNvbnRvdXJDb3VudD4wJiZ0aGlzLmNvbnRvdXJMaW5lV2lkdGg+MCYmKChoPXRoaXMuY29udG91clNoYWRlcikuYmluZCgpLGgudW5pZm9ybXM9cyx0aGlzLmNvbnRvdXJWQU8uYmluZCgpLGUuZHJhd0FycmF5cyhlLkxJTkVTLDAsdGhpcy5jb250b3VyQ291bnQpLHRoaXMuY29udG91clZBTy51bmJpbmQoKSl9LFQuZHJhd1BpY2s9ZnVuY3Rpb24odCl7dD10fHx7fTtmb3IodmFyIGU9dGhpcy5nbCxyPXQubW9kZWx8fHcsbj10LnZpZXd8fHcsYT10LnByb2plY3Rpb258fHcsaT1bWy0xZTYsLTFlNiwtMWU2XSxbMWU2LDFlNiwxZTZdXSxvPTA7bzwzOysrbylpWzBdW29dPU1hdGgubWF4KGlbMF1bb10sdGhpcy5jbGlwQm91bmRzWzBdW29dKSxpWzFdW29dPU1hdGgubWluKGlbMV1bb10sdGhpcy5jbGlwQm91bmRzWzFdW29dKTt0aGlzLl9tb2RlbD1bXS5zbGljZS5jYWxsKHIpLHRoaXMuX3ZpZXc9W10uc2xpY2UuY2FsbChuKSx0aGlzLl9wcm9qZWN0aW9uPVtdLnNsaWNlLmNhbGwoYSksdGhpcy5fcmVzb2x1dGlvbj1bZS5kcmF3aW5nQnVmZmVyV2lkdGgsZS5kcmF3aW5nQnVmZmVySGVpZ2h0XTt2YXIgcyxsPXttb2RlbDpyLHZpZXc6bixwcm9qZWN0aW9uOmEsY2xpcEJvdW5kczppLHBpY2tJZDp0aGlzLnBpY2tJZC8yNTV9Oygocz10aGlzLnBpY2tTaGFkZXIpLmJpbmQoKSxzLnVuaWZvcm1zPWwsdGhpcy50cmlhbmdsZUNvdW50PjAmJih0aGlzLnRyaWFuZ2xlVkFPLmJpbmQoKSxlLmRyYXdBcnJheXMoZS5UUklBTkdMRVMsMCwzKnRoaXMudHJpYW5nbGVDb3VudCksdGhpcy50cmlhbmdsZVZBTy51bmJpbmQoKSksdGhpcy5lZGdlQ291bnQ+MCYmKHRoaXMuZWRnZVZBTy5iaW5kKCksZS5saW5lV2lkdGgodGhpcy5saW5lV2lkdGgqdGhpcy5waXhlbFJhdGlvKSxlLmRyYXdBcnJheXMoZS5MSU5FUywwLDIqdGhpcy5lZGdlQ291bnQpLHRoaXMuZWRnZVZBTy51bmJpbmQoKSksdGhpcy5wb2ludENvdW50PjApJiYoKHM9dGhpcy5wb2ludFBpY2tTaGFkZXIpLmJpbmQoKSxzLnVuaWZvcm1zPWwsdGhpcy5wb2ludFZBTy5iaW5kKCksZS5kcmF3QXJyYXlzKGUuUE9JTlRTLDAsdGhpcy5wb2ludENvdW50KSx0aGlzLnBvaW50VkFPLnVuYmluZCgpKX0sVC5waWNrPWZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiBudWxsO2lmKHQuaWQhPT10aGlzLnBpY2tJZClyZXR1cm4gbnVsbDtmb3IodmFyIGU9dC52YWx1ZVswXSsyNTYqdC52YWx1ZVsxXSs2NTUzNip0LnZhbHVlWzJdLHI9dGhpcy5jZWxsc1tlXSxuPXRoaXMucG9zaXRpb25zLGE9bmV3IEFycmF5KHIubGVuZ3RoKSxpPTA7aTxyLmxlbmd0aDsrK2kpYVtpXT1uW3JbaV1dO3ZhciBvPXQuY29vcmRbMF0scz10LmNvb3JkWzFdO2lmKCF0aGlzLnBpY2tWZXJ0ZXgpe3ZhciBsPXRoaXMucG9zaXRpb25zW3JbMF1dLGM9dGhpcy5wb3NpdGlvbnNbclsxXV0sdT10aGlzLnBvc2l0aW9uc1tyWzJdXSxoPVsobFswXStjWzBdK3VbMF0pLzMsKGxbMV0rY1sxXSt1WzFdKS8zLChsWzJdK2NbMl0rdVsyXSkvM107cmV0dXJue19jZWxsQ2VudGVyOiEwLHBvc2l0aW9uOltvLHNdLGluZGV4OmUsY2VsbDpyLGNlbGxJZDplLGludGVuc2l0eTp0aGlzLmludGVuc2l0eVtlXSxkYXRhQ29vcmRpbmF0ZTpofX12YXIgZj1nKGEsW28qdGhpcy5waXhlbFJhdGlvLHRoaXMuX3Jlc29sdXRpb25bMV0tcyp0aGlzLnBpeGVsUmF0aW9dLHRoaXMuX21vZGVsLHRoaXMuX3ZpZXcsdGhpcy5fcHJvamVjdGlvbix0aGlzLl9yZXNvbHV0aW9uKTtpZighZilyZXR1cm4gbnVsbDt2YXIgcD1mWzJdLGQ9MDtmb3IoaT0wO2k8ci5sZW5ndGg7KytpKWQrPXBbaV0qdGhpcy5pbnRlbnNpdHlbcltpXV07cmV0dXJue3Bvc2l0aW9uOmZbMV0saW5kZXg6cltmWzBdXSxjZWxsOnIsY2VsbElkOmUsaW50ZW5zaXR5OmQsZGF0YUNvb3JkaW5hdGU6dGhpcy5wb3NpdGlvbnNbcltmWzBdXV19fSxULmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnRleHR1cmUuZGlzcG9zZSgpLHRoaXMudHJpU2hhZGVyLmRpc3Bvc2UoKSx0aGlzLmxpbmVTaGFkZXIuZGlzcG9zZSgpLHRoaXMucG9pbnRTaGFkZXIuZGlzcG9zZSgpLHRoaXMucGlja1NoYWRlci5kaXNwb3NlKCksdGhpcy5wb2ludFBpY2tTaGFkZXIuZGlzcG9zZSgpLHRoaXMudHJpYW5nbGVWQU8uZGlzcG9zZSgpLHRoaXMudHJpYW5nbGVQb3NpdGlvbnMuZGlzcG9zZSgpLHRoaXMudHJpYW5nbGVDb2xvcnMuZGlzcG9zZSgpLHRoaXMudHJpYW5nbGVVVnMuZGlzcG9zZSgpLHRoaXMudHJpYW5nbGVOb3JtYWxzLmRpc3Bvc2UoKSx0aGlzLnRyaWFuZ2xlSWRzLmRpc3Bvc2UoKSx0aGlzLmVkZ2VWQU8uZGlzcG9zZSgpLHRoaXMuZWRnZVBvc2l0aW9ucy5kaXNwb3NlKCksdGhpcy5lZGdlQ29sb3JzLmRpc3Bvc2UoKSx0aGlzLmVkZ2VVVnMuZGlzcG9zZSgpLHRoaXMuZWRnZUlkcy5kaXNwb3NlKCksdGhpcy5wb2ludFZBTy5kaXNwb3NlKCksdGhpcy5wb2ludFBvc2l0aW9ucy5kaXNwb3NlKCksdGhpcy5wb2ludENvbG9ycy5kaXNwb3NlKCksdGhpcy5wb2ludFVWcy5kaXNwb3NlKCksdGhpcy5wb2ludFNpemVzLmRpc3Bvc2UoKSx0aGlzLnBvaW50SWRzLmRpc3Bvc2UoKSx0aGlzLmNvbnRvdXJWQU8uZGlzcG9zZSgpLHRoaXMuY29udG91clBvc2l0aW9ucy5kaXNwb3NlKCksdGhpcy5jb250b3VyU2hhZGVyLmRpc3Bvc2UoKX0sZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgmJih0PShlPXQpLmdsKSwhKHQuZ2V0RXh0ZW5zaW9uKCJPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKXx8dC5nZXRFeHRlbnNpb24oIk1PWl9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKXx8dC5nZXRFeHRlbnNpb24oIldFQktJVF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKSkpdGhyb3cgbmV3IEVycm9yKCJkZXJpdmF0aXZlcyBub3Qgc3VwcG9ydGVkIik7dmFyIHI9ZnVuY3Rpb24odCl7dmFyIGU9bih0LHYudmVydGV4LHYuZnJhZ21lbnQpO3JldHVybiBlLmF0dHJpYnV0ZXMucG9zaXRpb24ubG9jYXRpb249MCxlLmF0dHJpYnV0ZXMuY29sb3IubG9jYXRpb249MixlLmF0dHJpYnV0ZXMudXYubG9jYXRpb249MyxlLmF0dHJpYnV0ZXMubm9ybWFsLmxvY2F0aW9uPTQsZX0odCkscz1mdW5jdGlvbih0KXt2YXIgZT1uKHQsbS52ZXJ0ZXgsbS5mcmFnbWVudCk7cmV0dXJuIGUuYXR0cmlidXRlcy5wb3NpdGlvbi5sb2NhdGlvbj0wLGUuYXR0cmlidXRlcy5jb2xvci5sb2NhdGlvbj0yLGUuYXR0cmlidXRlcy51di5sb2NhdGlvbj0zLGV9KHQpLGw9QSh0KSxjPVModCksaD1FKHQpLGY9TCh0KSxwPW8odCx1KG5ldyBVaW50OEFycmF5KFsyNTUsMjU1LDI1NSwyNTVdKSxbMSwxLDRdKSk7cC5nZW5lcmF0ZU1pcG1hcCgpLHAubWluRmlsdGVyPXQuTElORUFSX01JUE1BUF9MSU5FQVIscC5tYWdGaWx0ZXI9dC5MSU5FQVI7dmFyIGQ9YSh0KSxnPWEodCkseT1hKHQpLHg9YSh0KSxiPWEodCksXz1pKHQsW3tidWZmZXI6ZCx0eXBlOnQuRkxPQVQsc2l6ZTozfSx7YnVmZmVyOmIsdHlwZTp0LlVOU0lHTkVEX0JZVEUsc2l6ZTo0LG5vcm1hbGl6ZWQ6ITB9LHtidWZmZXI6Zyx0eXBlOnQuRkxPQVQsc2l6ZTo0fSx7YnVmZmVyOnksdHlwZTp0LkZMT0FULHNpemU6Mn0se2J1ZmZlcjp4LHR5cGU6dC5GTE9BVCxzaXplOjN9XSksdz1hKHQpLFQ9YSh0KSxNPWEodCksQz1hKHQpLFA9aSh0LFt7YnVmZmVyOncsdHlwZTp0LkZMT0FULHNpemU6M30se2J1ZmZlcjpDLHR5cGU6dC5VTlNJR05FRF9CWVRFLHNpemU6NCxub3JtYWxpemVkOiEwfSx7YnVmZmVyOlQsdHlwZTp0LkZMT0FULHNpemU6NH0se2J1ZmZlcjpNLHR5cGU6dC5GTE9BVCxzaXplOjJ9XSksTz1hKHQpLHo9YSh0KSxJPWEodCksRD1hKHQpLFI9YSh0KSxGPWkodCxbe2J1ZmZlcjpPLHR5cGU6dC5GTE9BVCxzaXplOjN9LHtidWZmZXI6Uix0eXBlOnQuVU5TSUdORURfQllURSxzaXplOjQsbm9ybWFsaXplZDohMH0se2J1ZmZlcjp6LHR5cGU6dC5GTE9BVCxzaXplOjR9LHtidWZmZXI6SSx0eXBlOnQuRkxPQVQsc2l6ZToyfSx7YnVmZmVyOkQsdHlwZTp0LkZMT0FULHNpemU6MX1dKSxCPWEodCksTj1uZXcgayh0LHAscixzLGwsYyxoLGYsZCxiLGcseSx4LF8sdyxDLFQsTSxQLE8sUix6LEksRCxGLEIsaSh0LFt7YnVmZmVyOkIsdHlwZTp0LkZMT0FULHNpemU6M31dKSk7cmV0dXJuIE4udXBkYXRlKGUpLE59fSx7Ii4vbGliL2Nsb3Nlc3QtcG9pbnQiOjI4MSwiLi9saWIvc2hhZGVycyI6MjgyLGNvbG9ybWFwOjEyOCwiZ2wtYnVmZmVyIjoyNDQsImdsLW1hdDQvaW52ZXJ0IjoyNjgsImdsLW1hdDQvbXVsdGlwbHkiOjI3MCwiZ2wtc2hhZGVyIjozMDQsImdsLXRleHR1cmUyZCI6MzI0LCJnbC12YW8iOjMyOSxuZGFycmF5OjQ1Mixub3JtYWxzOjQ1NSwic2ltcGxpY2lhbC1jb21wbGV4LWNvbnRvdXIiOjUxNywidHlwZWRhcnJheS1wb29sIjo1NDR9XSwyODQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuZ2wscj1uKGUsWzAsMCwwLDEsMSwwLDEsMV0pLHM9YShlLGkuYm94VmVydCxpLmxpbmVGcmFnKTtyZXR1cm4gbmV3IG8odCxyLHMpfTt2YXIgbj10KCJnbC1idWZmZXIiKSxhPXQoImdsLXNoYWRlciIpLGk9dCgiLi9zaGFkZXJzIik7ZnVuY3Rpb24gbyh0LGUscil7dGhpcy5wbG90PXQsdGhpcy52Ym89ZSx0aGlzLnNoYWRlcj1yfXZhciBzLGwsYz1vLnByb3RvdHlwZTtjLmJpbmQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnNoYWRlcjt0aGlzLnZiby5iaW5kKCksdGhpcy5zaGFkZXIuYmluZCgpLHQuYXR0cmlidXRlcy5jb29yZC5wb2ludGVyKCksdC51bmlmb3Jtcy5zY3JlZW5Cb3g9dGhpcy5wbG90LnNjcmVlbkJveH0sYy5kcmF3Qm94PShzPVswLDBdLGw9WzAsMF0sZnVuY3Rpb24odCxlLHIsbixhKXt2YXIgaT10aGlzLnBsb3Qsbz10aGlzLnNoYWRlcixjPWkuZ2w7c1swXT10LHNbMV09ZSxsWzBdPXIsbFsxXT1uLG8udW5pZm9ybXMubG89cyxvLnVuaWZvcm1zLmhpPWwsby51bmlmb3Jtcy5jb2xvcj1hLGMuZHJhd0FycmF5cyhjLlRSSUFOR0xFX1NUUklQLDAsNCl9KSxjLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnZiby5kaXNwb3NlKCksdGhpcy5zaGFkZXIuZGlzcG9zZSgpfX0seyIuL3NoYWRlcnMiOjI4NywiZ2wtYnVmZmVyIjoyNDQsImdsLXNoYWRlciI6MzA0fV0sMjg1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10LmdsLHI9bihlKSxpPWEoZSxvLmdyaWRWZXJ0LG8uZ3JpZEZyYWcpLGw9YShlLG8udGlja1ZlcnQsby5ncmlkRnJhZyk7cmV0dXJuIG5ldyBzKHQscixpLGwpfTt2YXIgbj10KCJnbC1idWZmZXIiKSxhPXQoImdsLXNoYWRlciIpLGk9dCgiYmluYXJ5LXNlYXJjaC1ib3VuZHMiKSxvPXQoIi4vc2hhZGVycyIpO2Z1bmN0aW9uIHModCxlLHIsbil7dGhpcy5wbG90PXQsdGhpcy52Ym89ZSx0aGlzLnNoYWRlcj1yLHRoaXMudGlja1NoYWRlcj1uLHRoaXMudGlja3M9W1tdLFtdXX1mdW5jdGlvbiBsKHQsZSl7cmV0dXJuIHQtZX12YXIgYyx1LGgsZixwLGQ9cy5wcm90b3R5cGU7ZC5kcmF3PShjPVswLDBdLHU9WzAsMF0saD1bMCwwXSxmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLnBsb3QsZT10aGlzLnZibyxyPXRoaXMuc2hhZGVyLG49dGhpcy50aWNrcyxhPXQuZ2wsaT10Ll90aWNrQm91bmRzLG89dC5kYXRhQm94LHM9dC52aWV3Qm94LGw9dC5ncmlkTGluZVdpZHRoLGY9dC5ncmlkTGluZUNvbG9yLHA9dC5ncmlkTGluZUVuYWJsZSxkPXQucGl4ZWxSYXRpbyxnPTA7ZzwyOysrZyl7dmFyIHY9aVtnXSxtPWlbZysyXS12LHk9LjUqKG9bZysyXStvW2ddKSx4PW9bZysyXS1vW2ddO3VbZ109MiptL3gsY1tnXT0yKih2LXkpL3h9ci5iaW5kKCksZS5iaW5kKCksci5hdHRyaWJ1dGVzLmRhdGFDb29yZC5wb2ludGVyKCksci51bmlmb3Jtcy5kYXRhU2hpZnQ9YyxyLnVuaWZvcm1zLmRhdGFTY2FsZT11O3ZhciBiPTA7Zm9yKGc9MDtnPDI7KytnKXtoWzBdPWhbMV09MCxoW2ddPTEsci51bmlmb3Jtcy5kYXRhQXhpcz1oLHIudW5pZm9ybXMubGluZVdpZHRoPWxbZ10vKHNbZysyXS1zW2ddKSpkLHIudW5pZm9ybXMuY29sb3I9ZltnXTt2YXIgXz02Km5bZ10ubGVuZ3RoO3BbZ10mJl8mJmEuZHJhd0FycmF5cyhhLlRSSUFOR0xFUyxiLF8pLGIrPV99fSksZC5kcmF3VGlja01hcmtzPWZ1bmN0aW9uKCl7dmFyIHQ9WzAsMF0sZT1bMCwwXSxyPVsxLDBdLG49WzAsMV0sYT1bMCwwXSxvPVswLDBdO3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgcz10aGlzLnBsb3QsYz10aGlzLnZibyx1PXRoaXMudGlja1NoYWRlcixoPXRoaXMudGlja3MsZj1zLmdsLHA9cy5fdGlja0JvdW5kcyxkPXMuZGF0YUJveCxnPXMudmlld0JveCx2PXMucGl4ZWxSYXRpbyxtPXMuc2NyZWVuQm94LHk9bVsyXS1tWzBdLHg9bVszXS1tWzFdLGI9Z1syXS1nWzBdLF89Z1szXS1nWzFdLHc9MDt3PDI7Kyt3KXt2YXIgaz1wW3ddLFQ9cFt3KzJdLWssTT0uNSooZFt3KzJdK2Rbd10pLEE9ZFt3KzJdLWRbd107ZVt3XT0yKlQvQSx0W3ddPTIqKGstTSkvQX1lWzBdKj1iL3ksdFswXSo9Yi95LGVbMV0qPV8veCx0WzFdKj1fL3gsdS5iaW5kKCksYy5iaW5kKCksdS5hdHRyaWJ1dGVzLmRhdGFDb29yZC5wb2ludGVyKCk7dmFyIFM9dS51bmlmb3JtcztTLmRhdGFTaGlmdD10LFMuZGF0YVNjYWxlPWU7dmFyIEU9cy50aWNrTWFya0xlbmd0aCxMPXMudGlja01hcmtXaWR0aCxDPXMudGlja01hcmtDb2xvcixQPTYqaFswXS5sZW5ndGgsTz1NYXRoLm1pbihpLmdlKGhbMF0sKGRbMF0tcFswXSkvKHBbMl0tcFswXSksbCksaFswXS5sZW5ndGgpLHo9TWF0aC5taW4oaS5ndChoWzBdLChkWzJdLXBbMF0pLyhwWzJdLXBbMF0pLGwpLGhbMF0ubGVuZ3RoKSxJPTArNipPLEQ9NipNYXRoLm1heCgwLHotTyksUj1NYXRoLm1pbihpLmdlKGhbMV0sKGRbMV0tcFsxXSkvKHBbM10tcFsxXSksbCksaFsxXS5sZW5ndGgpLEY9TWF0aC5taW4oaS5ndChoWzFdLChkWzNdLXBbMV0pLyhwWzNdLXBbMV0pLGwpLGhbMV0ubGVuZ3RoKSxCPVArNipSLE49NipNYXRoLm1heCgwLEYtUik7YVswXT0yKihnWzBdLUVbMV0pL3ktMSxhWzFdPShnWzNdK2dbMV0pL3gtMSxvWzBdPUVbMV0qdi95LG9bMV09TFsxXSp2L3gsTiYmKFMuY29sb3I9Q1sxXSxTLnRpY2tTY2FsZT1vLFMuZGF0YUF4aXM9bixTLnNjcmVlbk9mZnNldD1hLGYuZHJhd0FycmF5cyhmLlRSSUFOR0xFUyxCLE4pKSxhWzBdPShnWzJdK2dbMF0pL3ktMSxhWzFdPTIqKGdbMV0tRVswXSkveC0xLG9bMF09TFswXSp2L3ksb1sxXT1FWzBdKnYveCxEJiYoUy5jb2xvcj1DWzBdLFMudGlja1NjYWxlPW8sUy5kYXRhQXhpcz1yLFMuc2NyZWVuT2Zmc2V0PWEsZi5kcmF3QXJyYXlzKGYuVFJJQU5HTEVTLEksRCkpLGFbMF09MiooZ1syXStFWzNdKS95LTEsYVsxXT0oZ1szXStnWzFdKS94LTEsb1swXT1FWzNdKnYveSxvWzFdPUxbM10qdi94LE4mJihTLmNvbG9yPUNbM10sUy50aWNrU2NhbGU9byxTLmRhdGFBeGlzPW4sUy5zY3JlZW5PZmZzZXQ9YSxmLmRyYXdBcnJheXMoZi5UUklBTkdMRVMsQixOKSksYVswXT0oZ1syXStnWzBdKS95LTEsYVsxXT0yKihnWzNdK0VbMl0pL3gtMSxvWzBdPUxbMl0qdi95LG9bMV09RVsyXSp2L3gsRCYmKFMuY29sb3I9Q1syXSxTLnRpY2tTY2FsZT1vLFMuZGF0YUF4aXM9cixTLnNjcmVlbk9mZnNldD1hLGYuZHJhd0FycmF5cyhmLlRSSUFOR0xFUyxJLEQpKX19KCksZC51cGRhdGU9KGY9WzEsMSwtMSwtMSwxLC0xXSxwPVsxLC0xLDEsMSwtMSwtMV0sZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQudGlja3Mscj10LmJvdW5kcyxuPW5ldyBGbG9hdDMyQXJyYXkoMTgqKGVbMF0ubGVuZ3RoK2VbMV0ubGVuZ3RoKSksYT0odGhpcy5wbG90Lnplcm9MaW5lRW5hYmxlLDApLGk9W1tdLFtdXSxvPTA7bzwyOysrbylmb3IodmFyIHM9aVtvXSxsPWVbb10sYz1yW29dLHU9cltvKzJdLGg9MDtoPGwubGVuZ3RoOysraCl7dmFyIGQ9KGxbaF0ueC1jKS8odS1jKTtzLnB1c2goZCk7Zm9yKHZhciBnPTA7Zzw2OysrZyluW2ErK109ZCxuW2ErK109ZltnXSxuW2ErK109cFtnXX10aGlzLnRpY2tzPWksdGhpcy52Ym8udXBkYXRlKG4pfSksZC5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy52Ym8uZGlzcG9zZSgpLHRoaXMuc2hhZGVyLmRpc3Bvc2UoKSx0aGlzLnRpY2tTaGFkZXIuZGlzcG9zZSgpfX0seyIuL3NoYWRlcnMiOjI4NywiYmluYXJ5LXNlYXJjaC1ib3VuZHMiOjI4OSwiZ2wtYnVmZmVyIjoyNDQsImdsLXNoYWRlciI6MzA0fV0sMjg2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10LmdsLHI9bihlLFstMSwtMSwtMSwxLDEsLTEsMSwxXSkscz1hKGUsaS5saW5lVmVydCxpLmxpbmVGcmFnKTtyZXR1cm4gbmV3IG8odCxyLHMpfTt2YXIgbj10KCJnbC1idWZmZXIiKSxhPXQoImdsLXNoYWRlciIpLGk9dCgiLi9zaGFkZXJzIik7ZnVuY3Rpb24gbyh0LGUscil7dGhpcy5wbG90PXQsdGhpcy52Ym89ZSx0aGlzLnNoYWRlcj1yfXZhciBzLGwsYz1vLnByb3RvdHlwZTtjLmJpbmQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnNoYWRlcjt0aGlzLnZiby5iaW5kKCksdGhpcy5zaGFkZXIuYmluZCgpLHQuYXR0cmlidXRlcy5jb29yZC5wb2ludGVyKCksdC51bmlmb3Jtcy5zY3JlZW5Cb3g9dGhpcy5wbG90LnNjcmVlbkJveH0sYy5kcmF3TGluZT0ocz1bMCwwXSxsPVswLDBdLGZ1bmN0aW9uKHQsZSxyLG4sYSxpKXt2YXIgbz10aGlzLnBsb3QsYz10aGlzLnNoYWRlcix1PW8uZ2w7c1swXT10LHNbMV09ZSxsWzBdPXIsbFsxXT1uLGMudW5pZm9ybXMuc3RhcnQ9cyxjLnVuaWZvcm1zLmVuZD1sLGMudW5pZm9ybXMud2lkdGg9YSpvLnBpeGVsUmF0aW8sYy51bmlmb3Jtcy5jb2xvcj1pLHUuZHJhd0FycmF5cyh1LlRSSUFOR0xFX1NUUklQLDAsNCl9KSxjLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnZiby5kaXNwb3NlKCksdGhpcy5zaGFkZXIuZGlzcG9zZSgpfX0seyIuL3NoYWRlcnMiOjI4NywiZ2wtYnVmZmVyIjoyNDQsImdsLXNoYWRlciI6MzA0fV0sMjg3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImdsc2xpZnkiKSxhPW4oWyJwcmVjaXNpb24gbG93cCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG51bmlmb3JtIHZlYzQgY29sb3I7XG52b2lkIG1haW4oKSB7XG4gIGdsX0ZyYWdDb2xvciA9IHZlYzQoY29sb3IueHl6ICogY29sb3IudywgY29sb3Iudyk7XG59XG4iXSk7ZS5leHBvcnRzPXtsaW5lVmVydDpuKFsicHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMiBjb29yZDtcblxudW5pZm9ybSB2ZWM0IHNjcmVlbkJveDtcbnVuaWZvcm0gdmVjMiBzdGFydCwgZW5kO1xudW5pZm9ybSBmbG9hdCB3aWR0aDtcblxudmVjMiBwZXJwKHZlYzIgdikge1xuICByZXR1cm4gdmVjMih2LnksIC12LngpO1xufVxuXG52ZWMyIHNjcmVlbih2ZWMyIHYpIHtcbiAgcmV0dXJuIDIuMCAqICh2IC0gc2NyZWVuQm94Lnh5KSAvIChzY3JlZW5Cb3guencgLSBzY3JlZW5Cb3gueHkpIC0gMS4wO1xufVxuXG52b2lkIG1haW4oKSB7XG4gIHZlYzIgZGVsdGEgPSBub3JtYWxpemUocGVycChzdGFydCAtIGVuZCkpO1xuICB2ZWMyIG9mZnNldCA9IG1peChzdGFydCwgZW5kLCAwLjUgKiAoY29vcmQueSsxLjApKTtcbiAgZ2xfUG9zaXRpb24gPSB2ZWM0KHNjcmVlbihvZmZzZXQgKyAwLjUgKiB3aWR0aCAqIGRlbHRhICogY29vcmQueCksIDAsIDEpO1xufVxuIl0pLGxpbmVGcmFnOmEsdGV4dFZlcnQ6bihbIiNkZWZpbmUgR0xTTElGWSAxXG5hdHRyaWJ1dGUgdmVjMyB0ZXh0Q29vcmRpbmF0ZTtcblxudW5pZm9ybSB2ZWMyIGRhdGFTY2FsZSwgZGF0YVNoaWZ0LCBkYXRhQXhpcywgc2NyZWVuT2Zmc2V0LCB0ZXh0U2NhbGU7XG51bmlmb3JtIGZsb2F0IGFuZ2xlO1xuXG52b2lkIG1haW4oKSB7XG4gIGZsb2F0IGRhdGFPZmZzZXQgID0gdGV4dENvb3JkaW5hdGUuejtcbiAgdmVjMiBnbHlwaE9mZnNldCAgPSB0ZXh0Q29vcmRpbmF0ZS54eTtcbiAgbWF0MiBnbHlwaE1hdHJpeCA9IG1hdDIoY29zKGFuZ2xlKSwgc2luKGFuZ2xlKSwgLXNpbihhbmdsZSksIGNvcyhhbmdsZSkpO1xuICB2ZWMyIHNjcmVlbkNvb3JkaW5hdGUgPSBkYXRhQXhpcyAqIChkYXRhU2NhbGUgKiBkYXRhT2Zmc2V0ICsgZGF0YVNoaWZ0KSArXG4gICAgZ2x5cGhNYXRyaXggKiBnbHlwaE9mZnNldCAqIHRleHRTY2FsZSArIHNjcmVlbk9mZnNldDtcbiAgZ2xfUG9zaXRpb24gPSB2ZWM0KHNjcmVlbkNvb3JkaW5hdGUsIDAsIDEpO1xufVxuIl0pLHRleHRGcmFnOmEsZ3JpZFZlcnQ6bihbInByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzMgZGF0YUNvb3JkO1xuXG51bmlmb3JtIHZlYzIgZGF0YUF4aXMsIGRhdGFTaGlmdCwgZGF0YVNjYWxlO1xudW5pZm9ybSBmbG9hdCBsaW5lV2lkdGg7XG5cbnZvaWQgbWFpbigpIHtcbiAgdmVjMiBwb3MgPSBkYXRhQXhpcyAqIChkYXRhU2NhbGUgKiBkYXRhQ29vcmQueCArIGRhdGFTaGlmdCk7XG4gIHBvcyArPSAxMC4wICogZGF0YUNvb3JkLnkgKiB2ZWMyKGRhdGFBeGlzLnksIC1kYXRhQXhpcy54KSArIGRhdGFDb29yZC56ICogbGluZVdpZHRoO1xuICBnbF9Qb3NpdGlvbiA9IHZlYzQocG9zLCAwLCAxKTtcbn1cbiJdKSxncmlkRnJhZzphLGJveFZlcnQ6bihbInByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzIgY29vcmQ7XG5cbnVuaWZvcm0gdmVjNCBzY3JlZW5Cb3g7XG51bmlmb3JtIHZlYzIgbG8sIGhpO1xuXG52ZWMyIHNjcmVlbih2ZWMyIHYpIHtcbiAgcmV0dXJuIDIuMCAqICh2IC0gc2NyZWVuQm94Lnh5KSAvIChzY3JlZW5Cb3guencgLSBzY3JlZW5Cb3gueHkpIC0gMS4wO1xufVxuXG52b2lkIG1haW4oKSB7XG4gIGdsX1Bvc2l0aW9uID0gdmVjNChzY3JlZW4obWl4KGxvLCBoaSwgY29vcmQpKSwgMCwgMSk7XG59XG4iXSksdGlja1ZlcnQ6bihbInByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzMgZGF0YUNvb3JkO1xuXG51bmlmb3JtIHZlYzIgZGF0YUF4aXMsIGRhdGFTaGlmdCwgZGF0YVNjYWxlLCBzY3JlZW5PZmZzZXQsIHRpY2tTY2FsZTtcblxudm9pZCBtYWluKCkge1xuICB2ZWMyIHBvcyA9IGRhdGFBeGlzICogKGRhdGFTY2FsZSAqIGRhdGFDb29yZC54ICsgZGF0YVNoaWZ0KTtcbiAgZ2xfUG9zaXRpb24gPSB2ZWM0KHBvcyArIHRpY2tTY2FsZSpkYXRhQ29vcmQueXogKyBzY3JlZW5PZmZzZXQsIDAsIDEpO1xufVxuIl0pfX0se2dsc2xpZnk6NDExfV0sMjg4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10LmdsLHI9bihlKSxpPWEoZSxzLnRleHRWZXJ0LHMudGV4dEZyYWcpO3JldHVybiBuZXcgbCh0LHIsaSl9O3ZhciBuPXQoImdsLWJ1ZmZlciIpLGE9dCgiZ2wtc2hhZGVyIiksaT10KCJ0ZXh0LWNhY2hlIiksbz10KCJiaW5hcnktc2VhcmNoLWJvdW5kcyIpLHM9dCgiLi9zaGFkZXJzIik7ZnVuY3Rpb24gbCh0LGUscil7dGhpcy5wbG90PXQsdGhpcy52Ym89ZSx0aGlzLnNoYWRlcj1yLHRoaXMudGlja09mZnNldD1bW10sW11dLHRoaXMudGlja1g9W1tdLFtdXSx0aGlzLmxhYmVsT2Zmc2V0PVswLDBdLHRoaXMubGFiZWxDb3VudD1bMCwwXX12YXIgYyx1LGgsZixwLGQsZz1sLnByb3RvdHlwZTtnLmRyYXdUaWNrcz0oYz1bMCwwXSx1PVswLDBdLGg9WzAsMF0sZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5wbG90LHI9dGhpcy5zaGFkZXIsbj10aGlzLnRpY2tYW3RdLGE9dGhpcy50aWNrT2Zmc2V0W3RdLGk9ZS5nbCxzPWUudmlld0JveCxsPWUuZGF0YUJveCxmPWUuc2NyZWVuQm94LHA9ZS5waXhlbFJhdGlvLGQ9ZS50aWNrRW5hYmxlLGc9ZS50aWNrUGFkLHY9ZS50aWNrQ29sb3IsbT1lLnRpY2tBbmdsZSx5PWUubGFiZWxFbmFibGUseD1lLmxhYmVsUGFkLGI9ZS5sYWJlbENvbG9yLF89ZS5sYWJlbEFuZ2xlLHc9dGhpcy5sYWJlbE9mZnNldFt0XSxrPXRoaXMubGFiZWxDb3VudFt0XSxUPW8ubHQobixsW3RdKSxNPW8ubGUobixsW3QrMl0pO2NbMF09Y1sxXT0wLGNbdF09MSx1W3RdPShzWzIrdF0rc1t0XSkvKGZbMit0XS1mW3RdKS0xO3ZhciBBPTIvZlsyKygxXnQpXS1mWzFedF07dVsxXnRdPUEqc1sxXnRdLTEsZFt0XSYmKHVbMV50XS09QSpwKmdbdF0sVDxNJiZhW01dPmFbVF0mJihyLnVuaWZvcm1zLmRhdGFBeGlzPWMsci51bmlmb3Jtcy5zY3JlZW5PZmZzZXQ9dSxyLnVuaWZvcm1zLmNvbG9yPXZbdF0sci51bmlmb3Jtcy5hbmdsZT1tW3RdLGkuZHJhd0FycmF5cyhpLlRSSUFOR0xFUyxhW1RdLGFbTV0tYVtUXSkpKSx5W3RdJiZrJiYodVsxXnRdLT1BKnAqeFt0XSxyLnVuaWZvcm1zLmRhdGFBeGlzPWgsci51bmlmb3Jtcy5zY3JlZW5PZmZzZXQ9dSxyLnVuaWZvcm1zLmNvbG9yPWJbdF0sci51bmlmb3Jtcy5hbmdsZT1fW3RdLGkuZHJhd0FycmF5cyhpLlRSSUFOR0xFUyx3LGspKSx1WzFedF09QSpzWzIrKDFedCldLTEsZFt0KzJdJiYodVsxXnRdKz1BKnAqZ1t0KzJdLFQ8TSYmYVtNXT5hW1RdJiYoci51bmlmb3Jtcy5kYXRhQXhpcz1jLHIudW5pZm9ybXMuc2NyZWVuT2Zmc2V0PXUsci51bmlmb3Jtcy5jb2xvcj12W3QrMl0sci51bmlmb3Jtcy5hbmdsZT1tW3QrMl0saS5kcmF3QXJyYXlzKGkuVFJJQU5HTEVTLGFbVF0sYVtNXS1hW1RdKSkpLHlbdCsyXSYmayYmKHVbMV50XSs9QSpwKnhbdCsyXSxyLnVuaWZvcm1zLmRhdGFBeGlzPWgsci51bmlmb3Jtcy5zY3JlZW5PZmZzZXQ9dSxyLnVuaWZvcm1zLmNvbG9yPWJbdCsyXSxyLnVuaWZvcm1zLmFuZ2xlPV9bdCsyXSxpLmRyYXdBcnJheXMoaS5UUklBTkdMRVMsdyxrKSl9KSxnLmRyYXdUaXRsZT1mdW5jdGlvbigpe3ZhciB0PVswLDBdLGU9WzAsMF07cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHI9dGhpcy5wbG90LG49dGhpcy5zaGFkZXIsYT1yLmdsLGk9ci5zY3JlZW5Cb3gsbz1yLnRpdGxlQ2VudGVyLHM9ci50aXRsZUFuZ2xlLGw9ci50aXRsZUNvbG9yLGM9ci5waXhlbFJhdGlvO2lmKHRoaXMudGl0bGVDb3VudCl7Zm9yKHZhciB1PTA7dTwyOysrdSllW3VdPTIqKG9bdV0qYy1pW3VdKS8oaVsyK3VdLWlbdV0pLTE7bi5iaW5kKCksbi51bmlmb3Jtcy5kYXRhQXhpcz10LG4udW5pZm9ybXMuc2NyZWVuT2Zmc2V0PWUsbi51bmlmb3Jtcy5hbmdsZT1zLG4udW5pZm9ybXMuY29sb3I9bCxhLmRyYXdBcnJheXMoYS5UUklBTkdMRVMsdGhpcy50aXRsZU9mZnNldCx0aGlzLnRpdGxlQ291bnQpfX19KCksZy5iaW5kPShmPVswLDBdLHA9WzAsMF0sZD1bMCwwXSxmdW5jdGlvbigpe3ZhciB0PXRoaXMucGxvdCxlPXRoaXMuc2hhZGVyLHI9dC5fdGlja0JvdW5kcyxuPXQuZGF0YUJveCxhPXQuc2NyZWVuQm94LGk9dC52aWV3Qm94O2UuYmluZCgpO2Zvcih2YXIgbz0wO288MjsrK28pe3ZhciBzPXJbb10sbD1yW28rMl0tcyxjPS41KihuW28rMl0rbltvXSksdT1uW28rMl0tbltvXSxoPWlbb10sZz1pW28rMl0taCx2PWFbb10sbT1hW28rMl0tdjtwW29dPTIqbC91KmcvbSxmW29dPTIqKHMtYykvdSpnL219ZFsxXT0yKnQucGl4ZWxSYXRpby8oYVszXS1hWzFdKSxkWzBdPWRbMV0qKGFbM10tYVsxXSkvKGFbMl0tYVswXSksZS51bmlmb3Jtcy5kYXRhU2NhbGU9cCxlLnVuaWZvcm1zLmRhdGFTaGlmdD1mLGUudW5pZm9ybXMudGV4dFNjYWxlPWQsdGhpcy52Ym8uYmluZCgpLGUuYXR0cmlidXRlcy50ZXh0Q29vcmRpbmF0ZS5wb2ludGVyKCl9KSxnLnVwZGF0ZT1mdW5jdGlvbih0KXt2YXIgZSxyLG4sYSxvLHM9W10sbD10LnRpY2tzLGM9dC5ib3VuZHM7Zm9yKG89MDtvPDI7KytvKXt2YXIgdT1bTWF0aC5mbG9vcihzLmxlbmd0aC8zKV0saD1bLTEvMF0sZj1sW29dO2ZvcihlPTA7ZTxmLmxlbmd0aDsrK2Upe3ZhciBwPWZbZV0sZD1wLngsZz1wLnRleHQsdj1wLmZvbnR8fCJzYW5zLXNlcmlmIjthPXAuZm9udFNpemV8fDEyO2Zvcih2YXIgbT0xLyhjW28rMl0tY1tvXSkseT1jW29dLHg9Zy5zcGxpdCgiXG4iKSxiPTA7Yjx4Lmxlbmd0aDtiKyspZm9yKG49aSh2LHhbYl0pLmRhdGEscj0wO3I8bi5sZW5ndGg7cis9MilzLnB1c2gobltyXSphLC1uW3IrMV0qYS1iKmEqMS4yLChkLXkpKm0pO3UucHVzaChNYXRoLmZsb29yKHMubGVuZ3RoLzMpKSxoLnB1c2goZCl9dGhpcy50aWNrT2Zmc2V0W29dPXUsdGhpcy50aWNrWFtvXT1ofWZvcihvPTA7bzwyOysrbyl7Zm9yKHRoaXMubGFiZWxPZmZzZXRbb109TWF0aC5mbG9vcihzLmxlbmd0aC8zKSxuPWkodC5sYWJlbEZvbnRbb10sdC5sYWJlbHNbb10se3RleHRBbGlnbjoiY2VudGVyIn0pLmRhdGEsYT10LmxhYmVsU2l6ZVtvXSxlPTA7ZTxuLmxlbmd0aDtlKz0yKXMucHVzaChuW2VdKmEsLW5bZSsxXSphLDApO3RoaXMubGFiZWxDb3VudFtvXT1NYXRoLmZsb29yKHMubGVuZ3RoLzMpLXRoaXMubGFiZWxPZmZzZXRbb119Zm9yKHRoaXMudGl0bGVPZmZzZXQ9TWF0aC5mbG9vcihzLmxlbmd0aC8zKSxuPWkodC50aXRsZUZvbnQsdC50aXRsZSkuZGF0YSxhPXQudGl0bGVTaXplLGU9MDtlPG4ubGVuZ3RoO2UrPTIpcy5wdXNoKG5bZV0qYSwtbltlKzFdKmEsMCk7dGhpcy50aXRsZUNvdW50PU1hdGguZmxvb3Iocy5sZW5ndGgvMyktdGhpcy50aXRsZU9mZnNldCx0aGlzLnZiby51cGRhdGUocyl9LGcuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMudmJvLmRpc3Bvc2UoKSx0aGlzLnNoYWRlci5kaXNwb3NlKCl9fSx7Ii4vc2hhZGVycyI6Mjg3LCJiaW5hcnktc2VhcmNoLWJvdW5kcyI6Mjg5LCJnbC1idWZmZXIiOjI0NCwiZ2wtc2hhZGVyIjozMDQsInRleHQtY2FjaGUiOjUzNX1dLDI4OTpbZnVuY3Rpb24odCxlLHIpe2FyZ3VtZW50c1s0XVsxMTNdWzBdLmFwcGx5KHIsYXJndW1lbnRzKX0se2R1cDoxMTN9XSwyOTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuZ2wscj1uKGUsW2UuZHJhd2luZ0J1ZmZlcldpZHRoLGUuZHJhd2luZ0J1ZmZlckhlaWdodF0pLGM9bmV3IGwoZSxyKTtyZXR1cm4gYy5ncmlkPWEoYyksYy50ZXh0PWkoYyksYy5saW5lPW8oYyksYy5ib3g9cyhjKSxjLnVwZGF0ZSh0KSxjfTt2YXIgbj10KCJnbC1zZWxlY3Qtc3RhdGljIiksYT10KCIuL2xpYi9ncmlkIiksaT10KCIuL2xpYi90ZXh0Iiksbz10KCIuL2xpYi9saW5lIikscz10KCIuL2xpYi9ib3giKTtmdW5jdGlvbiBsKHQsZSl7dGhpcy5nbD10LHRoaXMucGlja0J1ZmZlcj1lLHRoaXMuc2NyZWVuQm94PVswLDAsdC5kcmF3aW5nQnVmZmVyV2lkdGgsdC5kcmF3aW5nQnVmZmVySGVpZ2h0XSx0aGlzLnZpZXdCb3g9WzAsMCwwLDBdLHRoaXMuZGF0YUJveD1bLTEwLC0xMCwxMCwxMF0sdGhpcy5ncmlkTGluZUVuYWJsZT1bITAsITBdLHRoaXMuZ3JpZExpbmVXaWR0aD1bMSwxXSx0aGlzLmdyaWRMaW5lQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMucGl4ZWxSYXRpbz0xLHRoaXMudGlja01hcmtMZW5ndGg9WzAsMCwwLDBdLHRoaXMudGlja01hcmtXaWR0aD1bMCwwLDAsMF0sdGhpcy50aWNrTWFya0NvbG9yPVtbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMudGlja1BhZD1bMTUsMTUsMTUsMTVdLHRoaXMudGlja0FuZ2xlPVswLDAsMCwwXSx0aGlzLnRpY2tFbmFibGU9WyEwLCEwLCEwLCEwXSx0aGlzLnRpY2tDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLmxhYmVsUGFkPVsxNSwxNSwxNSwxNV0sdGhpcy5sYWJlbEFuZ2xlPVswLE1hdGguUEkvMiwwLDMqTWF0aC5QSS8yXSx0aGlzLmxhYmVsRW5hYmxlPVshMCwhMCwhMCwhMF0sdGhpcy5sYWJlbENvbG9yPVtbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMudGl0bGVDZW50ZXI9WzAsMF0sdGhpcy50aXRsZUVuYWJsZT0hMCx0aGlzLnRpdGxlQW5nbGU9MCx0aGlzLnRpdGxlQ29sb3I9WzAsMCwwLDFdLHRoaXMuYm9yZGVyQ29sb3I9WzAsMCwwLDBdLHRoaXMuYmFja2dyb3VuZENvbG9yPVswLDAsMCwwXSx0aGlzLnplcm9MaW5lRW5hYmxlPVshMCwhMF0sdGhpcy56ZXJvTGluZVdpZHRoPVs0LDRdLHRoaXMuemVyb0xpbmVDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXV0sdGhpcy5ib3JkZXJMaW5lRW5hYmxlPVshMCwhMCwhMCwhMF0sdGhpcy5ib3JkZXJMaW5lV2lkdGg9WzIsMiwyLDJdLHRoaXMuYm9yZGVyTGluZUNvbG9yPVtbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMuZ3JpZD1udWxsLHRoaXMudGV4dD1udWxsLHRoaXMubGluZT1udWxsLHRoaXMuYm94PW51bGwsdGhpcy5vYmplY3RzPVtdLHRoaXMub3ZlcmxheXM9W10sdGhpcy5fdGlja0JvdW5kcz1bMS8wLDEvMCwtMS8wLC0xLzBdLHRoaXMuc3RhdGljPSExLHRoaXMuZGlydHk9ITEsdGhpcy5waWNrRGlydHk9ITEsdGhpcy5waWNrRGVsYXk9MTIwLHRoaXMucGlja1JhZGl1cz0xMCx0aGlzLl9waWNrVGltZW91dD1udWxsLHRoaXMuX2RyYXdQaWNrPXRoaXMuZHJhd1BpY2suYmluZCh0aGlzKSx0aGlzLl9kZXB0aENvdW50ZXI9MH12YXIgYz1sLnByb3RvdHlwZTtmdW5jdGlvbiB1KHQpe2Zvcih2YXIgZT10LnNsaWNlKCkscj0wO3I8ZS5sZW5ndGg7KytyKWVbcl09ZVtyXS5zbGljZSgpO3JldHVybiBlfWZ1bmN0aW9uIGgodCxlKXtyZXR1cm4gdC54LWUueH1jLnNldERpcnR5PWZ1bmN0aW9uKCl7dGhpcy5kaXJ0eT10aGlzLnBpY2tEaXJ0eT0hMH0sYy5zZXRPdmVybGF5RGlydHk9ZnVuY3Rpb24oKXt0aGlzLmRpcnR5PSEwfSxjLm5leHREZXB0aFZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RlcHRoQ291bnRlcisrLzY1NTM2fSxjLmRyYXc9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmdsLGU9dGhpcy5zY3JlZW5Cb3gscj10aGlzLnZpZXdCb3gsbj10aGlzLmRhdGFCb3gsYT10aGlzLnBpeGVsUmF0aW8saT10aGlzLmdyaWQsbz10aGlzLmxpbmUscz10aGlzLnRleHQsbD10aGlzLm9iamVjdHM7aWYodGhpcy5fZGVwdGhDb3VudGVyPTAsdGhpcy5waWNrRGlydHkmJih0aGlzLl9waWNrVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuX3BpY2tUaW1lb3V0KSx0aGlzLnBpY2tEaXJ0eT0hMSx0aGlzLl9waWNrVGltZW91dD1zZXRUaW1lb3V0KHRoaXMuX2RyYXdQaWNrLHRoaXMucGlja0RlbGF5KSksdGhpcy5kaXJ0eSl7aWYodGhpcy5kaXJ0eT0hMSx0LmJpbmRGcmFtZWJ1ZmZlcih0LkZSQU1FQlVGRkVSLG51bGwpLHQuZW5hYmxlKHQuU0NJU1NPUl9URVNUKSx0LmRpc2FibGUodC5ERVBUSF9URVNUKSx0LmRlcHRoRnVuYyh0LkxFU1MpLHQuZGVwdGhNYXNrKCExKSx0LmVuYWJsZSh0LkJMRU5EKSx0LmJsZW5kRXF1YXRpb24odC5GVU5DX0FERCx0LkZVTkNfQUREKSx0LmJsZW5kRnVuYyh0Lk9ORSx0Lk9ORV9NSU5VU19TUkNfQUxQSEEpLHRoaXMuYm9yZGVyQ29sb3Ipe3Quc2Npc3NvcihlWzBdLGVbMV0sZVsyXS1lWzBdLGVbM10tZVsxXSk7dmFyIGM9dGhpcy5ib3JkZXJDb2xvcjt0LmNsZWFyQ29sb3IoY1swXSpjWzNdLGNbMV0qY1szXSxjWzJdKmNbM10sY1szXSksdC5jbGVhcih0LkNPTE9SX0JVRkZFUl9CSVR8dC5ERVBUSF9CVUZGRVJfQklUKX10LnNjaXNzb3IoclswXSxyWzFdLHJbMl0tclswXSxyWzNdLXJbMV0pLHQudmlld3BvcnQoclswXSxyWzFdLHJbMl0tclswXSxyWzNdLXJbMV0pO3ZhciB1PXRoaXMuYmFja2dyb3VuZENvbG9yO3QuY2xlYXJDb2xvcih1WzBdKnVbM10sdVsxXSp1WzNdLHVbMl0qdVszXSx1WzNdKSx0LmNsZWFyKHQuQ09MT1JfQlVGRkVSX0JJVCksaS5kcmF3KCk7dmFyIGg9dGhpcy56ZXJvTGluZUVuYWJsZSxmPXRoaXMuemVyb0xpbmVDb2xvcixwPXRoaXMuemVyb0xpbmVXaWR0aDtpZihoWzBdfHxoWzFdKXtvLmJpbmQoKTtmb3IodmFyIGQ9MDtkPDI7KytkKWlmKGhbZF0mJm5bZF08PTAmJm5bZCsyXT49MCl7dmFyIGc9ZVtkXS1uW2RdKihlW2QrMl0tZVtkXSkvKG5bZCsyXS1uW2RdKTswPT09ZD9vLmRyYXdMaW5lKGcsZVsxXSxnLGVbM10scFtkXSxmW2RdKTpvLmRyYXdMaW5lKGVbMF0sZyxlWzJdLGcscFtkXSxmW2RdKX19Zm9yKGQ9MDtkPGwubGVuZ3RoOysrZClsW2RdLmRyYXcoKTt0LnZpZXdwb3J0KGVbMF0sZVsxXSxlWzJdLWVbMF0sZVszXS1lWzFdKSx0LnNjaXNzb3IoZVswXSxlWzFdLGVbMl0tZVswXSxlWzNdLWVbMV0pLHRoaXMuZ3JpZC5kcmF3VGlja01hcmtzKCksby5iaW5kKCk7dmFyIHY9dGhpcy5ib3JkZXJMaW5lRW5hYmxlLG09dGhpcy5ib3JkZXJMaW5lV2lkdGgseT10aGlzLmJvcmRlckxpbmVDb2xvcjtmb3IodlsxXSYmby5kcmF3TGluZShyWzBdLHJbMV0tLjUqbVsxXSphLHJbMF0sclszXSsuNSptWzNdKmEsbVsxXSx5WzFdKSx2WzBdJiZvLmRyYXdMaW5lKHJbMF0tLjUqbVswXSphLHJbMV0sclsyXSsuNSptWzJdKmEsclsxXSxtWzBdLHlbMF0pLHZbM10mJm8uZHJhd0xpbmUoclsyXSxyWzFdLS41Km1bMV0qYSxyWzJdLHJbM10rLjUqbVszXSphLG1bM10seVszXSksdlsyXSYmby5kcmF3TGluZShyWzBdLS41Km1bMF0qYSxyWzNdLHJbMl0rLjUqbVsyXSphLHJbM10sbVsyXSx5WzJdKSxzLmJpbmQoKSxkPTA7ZDwyOysrZClzLmRyYXdUaWNrcyhkKTt0aGlzLnRpdGxlRW5hYmxlJiZzLmRyYXdUaXRsZSgpO3ZhciB4PXRoaXMub3ZlcmxheXM7Zm9yKGQ9MDtkPHgubGVuZ3RoOysrZCl4W2RdLmRyYXcoKTt0LmRpc2FibGUodC5TQ0lTU09SX1RFU1QpLHQuZGlzYWJsZSh0LkJMRU5EKSx0LmRlcHRoTWFzayghMCl9fSxjLmRyYXdQaWNrPWZ1bmN0aW9uKCl7aWYoIXRoaXMuc3RhdGljKXt2YXIgdD10aGlzLnBpY2tCdWZmZXI7dGhpcy5nbCx0aGlzLl9waWNrVGltZW91dD1udWxsLHQuYmVnaW4oKTtmb3IodmFyIGU9MSxyPXRoaXMub2JqZWN0cyxuPTA7bjxyLmxlbmd0aDsrK24pZT1yW25dLmRyYXdQaWNrKGUpO3QuZW5kKCl9fSxjLnBpY2s9ZnVuY3Rpb24odCxlKXtpZighdGhpcy5zdGF0aWMpe3ZhciByPXRoaXMucGl4ZWxSYXRpbyxuPXRoaXMucGlja1BpeGVsUmF0aW8sYT10aGlzLnZpZXdCb3gsaT0wfE1hdGgucm91bmQoKHQtYVswXS9yKSpuKSxvPTB8TWF0aC5yb3VuZCgoZS1hWzFdL3IpKm4pLHM9dGhpcy5waWNrQnVmZmVyLnF1ZXJ5KGksbyx0aGlzLnBpY2tSYWRpdXMpO2lmKCFzKXJldHVybiBudWxsO2Zvcih2YXIgbD1zLmlkKyhzLnZhbHVlWzBdPDw4KSsocy52YWx1ZVsxXTw8MTYpKyhzLnZhbHVlWzJdPDwyNCksYz10aGlzLm9iamVjdHMsdT0wO3U8Yy5sZW5ndGg7Kyt1KXt2YXIgaD1jW3VdLnBpY2soaSxvLGwpO2lmKGgpcmV0dXJuIGh9cmV0dXJuIG51bGx9fSxjLnNldFNjcmVlbkJveD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnNjcmVlbkJveCxyPXRoaXMucGl4ZWxSYXRpbztlWzBdPTB8TWF0aC5yb3VuZCh0WzBdKnIpLGVbMV09MHxNYXRoLnJvdW5kKHRbMV0qciksZVsyXT0wfE1hdGgucm91bmQodFsyXSpyKSxlWzNdPTB8TWF0aC5yb3VuZCh0WzNdKnIpLHRoaXMuc2V0RGlydHkoKX0sYy5zZXREYXRhQm94PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZGF0YUJveDsoZVswXSE9PXRbMF18fGVbMV0hPT10WzFdfHxlWzJdIT09dFsyXXx8ZVszXSE9PXRbM10pJiYoZVswXT10WzBdLGVbMV09dFsxXSxlWzJdPXRbMl0sZVszXT10WzNdLHRoaXMuc2V0RGlydHkoKSl9LGMuc2V0Vmlld0JveD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnBpeGVsUmF0aW8scj10aGlzLnZpZXdCb3g7clswXT0wfE1hdGgucm91bmQodFswXSplKSxyWzFdPTB8TWF0aC5yb3VuZCh0WzFdKmUpLHJbMl09MHxNYXRoLnJvdW5kKHRbMl0qZSksclszXT0wfE1hdGgucm91bmQodFszXSplKTt2YXIgbj10aGlzLnBpY2tQaXhlbFJhdGlvO3RoaXMucGlja0J1ZmZlci5zaGFwZT1bMHxNYXRoLnJvdW5kKCh0WzJdLXRbMF0pKm4pLDB8TWF0aC5yb3VuZCgodFszXS10WzFdKSpuKV0sdGhpcy5zZXREaXJ0eSgpfSxjLnVwZGF0ZT1mdW5jdGlvbih0KXt0PXR8fHt9O3ZhciBlPXRoaXMuZ2w7dGhpcy5waXhlbFJhdGlvPXQucGl4ZWxSYXRpb3x8MTt2YXIgcj10aGlzLnBpeGVsUmF0aW87dGhpcy5waWNrUGl4ZWxSYXRpbz1NYXRoLm1heChyLDEpLHRoaXMuc2V0U2NyZWVuQm94KHQuc2NyZWVuQm94fHxbMCwwLGUuZHJhd2luZ0J1ZmZlcldpZHRoL3IsZS5kcmF3aW5nQnVmZmVySGVpZ2h0L3JdKTt0aGlzLnNjcmVlbkJveDt0aGlzLnNldFZpZXdCb3godC52aWV3Qm94fHxbLjEyNSoodGhpcy5zY3JlZW5Cb3hbMl0tdGhpcy5zY3JlZW5Cb3hbMF0pL3IsLjEyNSoodGhpcy5zY3JlZW5Cb3hbM10tdGhpcy5zY3JlZW5Cb3hbMV0pL3IsLjg3NSoodGhpcy5zY3JlZW5Cb3hbMl0tdGhpcy5zY3JlZW5Cb3hbMF0pL3IsLjg3NSoodGhpcy5zY3JlZW5Cb3hbM10tdGhpcy5zY3JlZW5Cb3hbMV0pL3JdKTt2YXIgbj10aGlzLnZpZXdCb3gsYT0oblsyXS1uWzBdKS8oblszXS1uWzFdKTt0aGlzLnNldERhdGFCb3godC5kYXRhQm94fHxbLTEwLC0xMC9hLDEwLDEwL2FdKSx0aGlzLmJvcmRlckNvbG9yPSExIT09dC5ib3JkZXJDb2xvciYmKHQuYm9yZGVyQ29sb3J8fFswLDAsMCwwXSkuc2xpY2UoKSx0aGlzLmJhY2tncm91bmRDb2xvcj0odC5iYWNrZ3JvdW5kQ29sb3J8fFswLDAsMCwwXSkuc2xpY2UoKSx0aGlzLmdyaWRMaW5lRW5hYmxlPSh0LmdyaWRMaW5lRW5hYmxlfHxbITAsITBdKS5zbGljZSgpLHRoaXMuZ3JpZExpbmVXaWR0aD0odC5ncmlkTGluZVdpZHRofHxbMSwxXSkuc2xpY2UoKSx0aGlzLmdyaWRMaW5lQ29sb3I9dSh0LmdyaWRMaW5lQ29sb3J8fFtbLjUsLjUsLjUsMV0sWy41LC41LC41LDFdXSksdGhpcy56ZXJvTGluZUVuYWJsZT0odC56ZXJvTGluZUVuYWJsZXx8WyEwLCEwXSkuc2xpY2UoKSx0aGlzLnplcm9MaW5lV2lkdGg9KHQuemVyb0xpbmVXaWR0aHx8WzQsNF0pLnNsaWNlKCksdGhpcy56ZXJvTGluZUNvbG9yPXUodC56ZXJvTGluZUNvbG9yfHxbWzAsMCwwLDFdLFswLDAsMCwxXV0pLHRoaXMudGlja01hcmtMZW5ndGg9KHQudGlja01hcmtMZW5ndGh8fFswLDAsMCwwXSkuc2xpY2UoKSx0aGlzLnRpY2tNYXJrV2lkdGg9KHQudGlja01hcmtXaWR0aHx8WzAsMCwwLDBdKS5zbGljZSgpLHRoaXMudGlja01hcmtDb2xvcj11KHQudGlja01hcmtDb2xvcnx8W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0pLHRoaXMudGl0bGVDZW50ZXI9KHQudGl0bGVDZW50ZXJ8fFsuNSooblswXStuWzJdKS9yLChuWzNdKzEyMCkvcl0pLnNsaWNlKCksdGhpcy50aXRsZUVuYWJsZT0hKCJ0aXRsZUVuYWJsZSJpbiB0JiYhdC50aXRsZUVuYWJsZSksdGhpcy50aXRsZUFuZ2xlPXQudGl0bGVBbmdsZXx8MCx0aGlzLnRpdGxlQ29sb3I9KHQudGl0bGVDb2xvcnx8WzAsMCwwLDFdKS5zbGljZSgpLHRoaXMubGFiZWxQYWQ9KHQubGFiZWxQYWR8fFsxNSwxNSwxNSwxNV0pLnNsaWNlKCksdGhpcy5sYWJlbEFuZ2xlPSh0LmxhYmVsQW5nbGV8fFswLE1hdGguUEkvMiwwLDMqTWF0aC5QSS8yXSkuc2xpY2UoKSx0aGlzLmxhYmVsRW5hYmxlPSh0LmxhYmVsRW5hYmxlfHxbITAsITAsITAsITBdKS5zbGljZSgpLHRoaXMubGFiZWxDb2xvcj11KHQubGFiZWxDb2xvcnx8W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0pLHRoaXMudGlja1BhZD0odC50aWNrUGFkfHxbMTUsMTUsMTUsMTVdKS5zbGljZSgpLHRoaXMudGlja0FuZ2xlPSh0LnRpY2tBbmdsZXx8WzAsMCwwLDBdKS5zbGljZSgpLHRoaXMudGlja0VuYWJsZT0odC50aWNrRW5hYmxlfHxbITAsITAsITAsITBdKS5zbGljZSgpLHRoaXMudGlja0NvbG9yPXUodC50aWNrQ29sb3J8fFtbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dKSx0aGlzLmJvcmRlckxpbmVFbmFibGU9KHQuYm9yZGVyTGluZUVuYWJsZXx8WyEwLCEwLCEwLCEwXSkuc2xpY2UoKSx0aGlzLmJvcmRlckxpbmVXaWR0aD0odC5ib3JkZXJMaW5lV2lkdGh8fFsyLDIsMiwyXSkuc2xpY2UoKSx0aGlzLmJvcmRlckxpbmVDb2xvcj11KHQuYm9yZGVyTGluZUNvbG9yfHxbWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSk7dmFyIGk9dC50aWNrc3x8W1tdLFtdXSxvPXRoaXMuX3RpY2tCb3VuZHM7b1swXT1vWzFdPTEvMCxvWzJdPW9bM109LTEvMDtmb3IodmFyIHM9MDtzPDI7KytzKXt2YXIgbD1pW3NdLnNsaWNlKDApOzAhPT1sLmxlbmd0aCYmKGwuc29ydChoKSxvW3NdPU1hdGgubWluKG9bc10sbFswXS54KSxvW3MrMl09TWF0aC5tYXgob1tzKzJdLGxbbC5sZW5ndGgtMV0ueCkpfXRoaXMuZ3JpZC51cGRhdGUoe2JvdW5kczpvLHRpY2tzOml9KSx0aGlzLnRleHQudXBkYXRlKHtib3VuZHM6byx0aWNrczppLGxhYmVsczp0LmxhYmVsc3x8WyJ4IiwieSJdLGxhYmVsU2l6ZTp0LmxhYmVsU2l6ZXx8WzEyLDEyXSxsYWJlbEZvbnQ6dC5sYWJlbEZvbnR8fFsic2Fucy1zZXJpZiIsInNhbnMtc2VyaWYiXSx0aXRsZTp0LnRpdGxlfHwiIix0aXRsZVNpemU6dC50aXRsZVNpemV8fDE4LHRpdGxlRm9udDp0LnRpdGxlRm9udHx8InNhbnMtc2VyaWYifSksdGhpcy5zdGF0aWM9ISF0LnN0YXRpYyx0aGlzLnNldERpcnR5KCl9LGMuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuYm94LmRpc3Bvc2UoKSx0aGlzLmdyaWQuZGlzcG9zZSgpLHRoaXMudGV4dC5kaXNwb3NlKCksdGhpcy5saW5lLmRpc3Bvc2UoKTtmb3IodmFyIHQ9dGhpcy5vYmplY3RzLmxlbmd0aC0xO3Q+PTA7LS10KXRoaXMub2JqZWN0c1t0XS5kaXNwb3NlKCk7dGhpcy5vYmplY3RzLmxlbmd0aD0wO2Zvcih0PXRoaXMub3ZlcmxheXMubGVuZ3RoLTE7dD49MDstLXQpdGhpcy5vdmVybGF5c1t0XS5kaXNwb3NlKCk7dGhpcy5vdmVybGF5cy5sZW5ndGg9MCx0aGlzLmdsPW51bGx9LGMuYWRkT2JqZWN0PWZ1bmN0aW9uKHQpe3RoaXMub2JqZWN0cy5pbmRleE9mKHQpPDAmJih0aGlzLm9iamVjdHMucHVzaCh0KSx0aGlzLnNldERpcnR5KCkpfSxjLnJlbW92ZU9iamVjdD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5vYmplY3RzLHI9MDtyPGUubGVuZ3RoOysrcilpZihlW3JdPT09dCl7ZS5zcGxpY2UociwxKSx0aGlzLnNldERpcnR5KCk7YnJlYWt9fSxjLmFkZE92ZXJsYXk9ZnVuY3Rpb24odCl7dGhpcy5vdmVybGF5cy5pbmRleE9mKHQpPDAmJih0aGlzLm92ZXJsYXlzLnB1c2godCksdGhpcy5zZXRPdmVybGF5RGlydHkoKSl9LGMucmVtb3ZlT3ZlcmxheT1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5vdmVybGF5cyxyPTA7cjxlLmxlbmd0aDsrK3IpaWYoZVtyXT09PXQpe2Uuc3BsaWNlKHIsMSksdGhpcy5zZXRPdmVybGF5RGlydHkoKTticmVha319fSx7Ii4vbGliL2JveCI6Mjg0LCIuL2xpYi9ncmlkIjoyODUsIi4vbGliL2xpbmUiOjI4NiwiLi9saWIvdGV4dCI6Mjg4LCJnbC1zZWxlY3Qtc3RhdGljIjozMDN9XSwyOTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dD10fHxkb2N1bWVudC5ib2R5LGU9ZXx8e307dmFyIHI9Wy4wMSwxLzBdOyJkaXN0YW5jZUxpbWl0cyJpbiBlJiYoclswXT1lLmRpc3RhbmNlTGltaXRzWzBdLHJbMV09ZS5kaXN0YW5jZUxpbWl0c1sxXSk7Inpvb21NaW4iaW4gZSYmKHJbMF09ZS56b29tTWluKTsiem9vbU1heCJpbiBlJiYoclsxXT1lLnpvb21NYXgpO3ZhciBjPWEoe2NlbnRlcjplLmNlbnRlcnx8WzAsMCwwXSx1cDplLnVwfHxbMCwxLDBdLGV5ZTplLmV5ZXx8WzAsMCwxMF0sbW9kZTplLm1vZGV8fCJvcmJpdCIsZGlzdGFuY2VMaW1pdHM6cn0pLHU9WzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDBdLGg9MCxmPXQuY2xpZW50V2lkdGgscD10LmNsaWVudEhlaWdodCxkPXtrZXlCaW5kaW5nTW9kZToicm90YXRlIixlbmFibGVXaGVlbDohMCx2aWV3OmMsZWxlbWVudDp0LGRlbGF5OmUuZGVsYXl8fDE2LHJvdGF0ZVNwZWVkOmUucm90YXRlU3BlZWR8fDEsem9vbVNwZWVkOmUuem9vbVNwZWVkfHwxLHRyYW5zbGF0ZVNwZWVkOmUudHJhbnNsYXRlU3BlZWR8fDEsZmxpcFg6ISFlLmZsaXBYLGZsaXBZOiEhZS5mbGlwWSxtb2RlczpjLm1vZGVzLF9vcnRobzplLl9vcnRob3x8ZS5wcm9qZWN0aW9uJiYib3J0aG9ncmFwaGljIj09PWUucHJvamVjdGlvbi50eXBlfHwhMSx0aWNrOmZ1bmN0aW9uKCl7dmFyIGU9bigpLHI9dGhpcy5kZWxheSxhPWUtMipyO2MuaWRsZShlLXIpLGMucmVjYWxjTWF0cml4KGEpLGMuZmx1c2goZS0oMTAwKzIqcikpO2Zvcih2YXIgaT0hMCxvPWMuY29tcHV0ZWRNYXRyaXgscz0wO3M8MTY7KytzKWk9aSYmdVtzXT09PW9bc10sdVtzXT1vW3NdO3ZhciBsPXQuY2xpZW50V2lkdGg9PT1mJiZ0LmNsaWVudEhlaWdodD09PXA7cmV0dXJuIGY9dC5jbGllbnRXaWR0aCxwPXQuY2xpZW50SGVpZ2h0LGk/IWw6KGg9TWF0aC5leHAoYy5jb21wdXRlZFJhZGl1c1swXSksITApfSxsb29rQXQ6ZnVuY3Rpb24odCxlLHIpe2MubG9va0F0KGMubGFzdFQoKSx0LGUscil9LHJvdGF0ZTpmdW5jdGlvbih0LGUscil7Yy5yb3RhdGUoYy5sYXN0VCgpLHQsZSxyKX0scGFuOmZ1bmN0aW9uKHQsZSxyKXtjLnBhbihjLmxhc3RUKCksdCxlLHIpfSx0cmFuc2xhdGU6ZnVuY3Rpb24odCxlLHIpe2MudHJhbnNsYXRlKGMubGFzdFQoKSx0LGUscil9fTtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCx7bWF0cml4OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYy5jb21wdXRlZE1hdHJpeH0sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiBjLnNldE1hdHJpeChjLmxhc3RUKCksdCksYy5jb21wdXRlZE1hdHJpeH0sZW51bWVyYWJsZTohMH0sbW9kZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGMuZ2V0TW9kZSgpfSxzZXQ6ZnVuY3Rpb24odCl7dmFyIGU9Yy5jb21wdXRlZFVwLnNsaWNlKCkscj1jLmNvbXB1dGVkRXllLnNsaWNlKCksYT1jLmNvbXB1dGVkQ2VudGVyLnNsaWNlKCk7aWYoYy5zZXRNb2RlKHQpLCJ0dXJudGFibGUiPT09dCl7dmFyIGk9bigpO2MuX2FjdGl2ZS5sb29rQXQoaSxyLGEsZSksYy5fYWN0aXZlLmxvb2tBdChpKzUwMCxyLGEsWzAsMCwxXSksYy5fYWN0aXZlLmZsdXNoKGkpfXJldHVybiBjLmdldE1vZGUoKX0sZW51bWVyYWJsZTohMH0sY2VudGVyOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYy5jb21wdXRlZENlbnRlcn0sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiBjLmxvb2tBdChjLmxhc3RUKCksbnVsbCx0KSxjLmNvbXB1dGVkQ2VudGVyfSxlbnVtZXJhYmxlOiEwfSxleWU6e2dldDpmdW5jdGlvbigpe3JldHVybiBjLmNvbXB1dGVkRXllfSxzZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGMubG9va0F0KGMubGFzdFQoKSx0KSxjLmNvbXB1dGVkRXllfSxlbnVtZXJhYmxlOiEwfSx1cDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGMuY29tcHV0ZWRVcH0sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiBjLmxvb2tBdChjLmxhc3RUKCksbnVsbCxudWxsLHQpLGMuY29tcHV0ZWRVcH0sZW51bWVyYWJsZTohMH0sZGlzdGFuY2U6e2dldDpmdW5jdGlvbigpe3JldHVybiBofSxzZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGMuc2V0RGlzdGFuY2UoYy5sYXN0VCgpLHQpLHR9LGVudW1lcmFibGU6ITB9LGRpc3RhbmNlTGltaXRzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYy5nZXREaXN0YW5jZUxpbWl0cyhyKX0sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiBjLnNldERpc3RhbmNlTGltaXRzKHQpLHR9LGVudW1lcmFibGU6ITB9fSksdC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsZnVuY3Rpb24odCl7cmV0dXJuIHQucHJldmVudERlZmF1bHQoKSwhMX0pLGQuX2xhc3RYPS0xLGQuX2xhc3RZPS0xLGQuX2xhc3RNb2RzPXtzaGlmdDohMSxjb250cm9sOiExLGFsdDohMSxtZXRhOiExfSxkLmVuYWJsZU1vdXNlTGlzdGVuZXJzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHIsYSxpKXt2YXIgbz1kLmtleUJpbmRpbmdNb2RlO2lmKCExIT09byl7dmFyIHM9InJvdGF0ZSI9PT1vLGw9InBhbiI9PT1vLHU9Inpvb20iPT09byxmPSEhaS5jb250cm9sLHA9ISFpLmFsdCxnPSEhaS5zaGlmdCx2PSEhKDEmZSksbT0hISgyJmUpLHk9ISEoNCZlKSx4PTEvdC5jbGllbnRIZWlnaHQsYj14KihyLWQuX2xhc3RYKSxfPXgqKGEtZC5fbGFzdFkpLHc9ZC5mbGlwWD8xOi0xLGs9ZC5mbGlwWT8xOi0xLFQ9TWF0aC5QSSpkLnJvdGF0ZVNwZWVkLE09bigpO2lmKC0xIT09ZC5fbGFzdFgmJi0xIT09ZC5fbGFzdFkmJigocyYmdiYmIWYmJiFwJiYhZ3x8diYmIWYmJiFwJiZnKSYmYy5yb3RhdGUoTSx3KlQqYiwtaypUKl8sMCksKGwmJnYmJiFmJiYhcCYmIWd8fG18fHYmJmYmJiFwJiYhZykmJmMucGFuKE0sLWQudHJhbnNsYXRlU3BlZWQqYipoLGQudHJhbnNsYXRlU3BlZWQqXypoLDApLHUmJnYmJiFmJiYhcCYmIWd8fHl8fHYmJiFmJiZwJiYhZykpe3ZhciBBPS1kLnpvb21TcGVlZCpfL3dpbmRvdy5pbm5lckhlaWdodCooTS1jLmxhc3RUKCkpKjEwMDtjLnBhbihNLDAsMCxoKihNYXRoLmV4cChBKS0xKSl9cmV0dXJuIGQuX2xhc3RYPXIsZC5fbGFzdFk9YSxkLl9sYXN0TW9kcz1pLCEwfX1kLm1vdXNlTGlzdGVuZXI9aSh0LGUpLHQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsZnVuY3Rpb24ocil7dmFyIG49cyhyLmNoYW5nZWRUb3VjaGVzWzBdLHQpO2UoMCxuWzBdLG5bMV0sZC5fbGFzdE1vZHMpLGUoMSxuWzBdLG5bMV0sZC5fbGFzdE1vZHMpLHIucHJldmVudERlZmF1bHQoKX0sISFsJiZ7cGFzc2l2ZTohMX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixmdW5jdGlvbihyKXt2YXIgbj1zKHIuY2hhbmdlZFRvdWNoZXNbMF0sdCk7ZSgxLG5bMF0sblsxXSxkLl9sYXN0TW9kcyksci5wcmV2ZW50RGVmYXVsdCgpfSwhIWwmJntwYXNzaXZlOiExfSksdC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsZnVuY3Rpb24odCl7ZSgwLGQuX2xhc3RYLGQuX2xhc3RZLGQuX2xhc3RNb2RzKSx0LnByZXZlbnREZWZhdWx0KCl9LCEhbCYme3Bhc3NpdmU6ITF9KSxkLndoZWVsTGlzdGVuZXI9byh0LGZ1bmN0aW9uKHQsZSl7aWYoITEhPT1kLmtleUJpbmRpbmdNb2RlJiZkLmVuYWJsZVdoZWVsKXt2YXIgcj1kLmZsaXBYPzE6LTEsYT1kLmZsaXBZPzE6LTEsaT1uKCk7aWYoTWF0aC5hYnModCk+TWF0aC5hYnMoZSkpYy5yb3RhdGUoaSwwLDAsLXQqcipNYXRoLlBJKmQucm90YXRlU3BlZWQvd2luZG93LmlubmVyV2lkdGgpO2Vsc2UgaWYoIWQuX29ydGhvKXt2YXIgbz0tZC56b29tU3BlZWQqYSplL3dpbmRvdy5pbm5lckhlaWdodCooaS1jLmxhc3RUKCkpLzIwO2MucGFuKGksMCwwLGgqKE1hdGguZXhwKG8pLTEpKX19fSwhMCl9LGQuZW5hYmxlTW91c2VMaXN0ZW5lcnMoKSxkfTt2YXIgbj10KCJyaWdodC1ub3ciKSxhPXQoIjNkLXZpZXciKSxpPXQoIm1vdXNlLWNoYW5nZSIpLG89dCgibW91c2Utd2hlZWwiKSxzPXQoIm1vdXNlLWV2ZW50LW9mZnNldCIpLGw9dCgiaGFzLXBhc3NpdmUtZXZlbnRzIil9LHsiM2QtdmlldyI6NTQsImhhcy1wYXNzaXZlLWV2ZW50cyI6NDEzLCJtb3VzZS1jaGFuZ2UiOjQzNywibW91c2UtZXZlbnQtb2Zmc2V0Ijo0MzgsIm1vdXNlLXdoZWVsIjo0NDAsInJpZ2h0LW5vdyI6NTAzfV0sMjkyOltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiZ2xzbGlmeSIpLGE9dCgiZ2wtc2hhZGVyIiksaT1uKFsicHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuYXR0cmlidXRlIHZlYzIgcG9zaXRpb247XG52YXJ5aW5nIHZlYzIgdXY7XG52b2lkIG1haW4oKSB7XG4gIHV2ID0gcG9zaXRpb247XG4gIGdsX1Bvc2l0aW9uID0gdmVjNChwb3NpdGlvbiwgMCwgMSk7XG59Il0pLG89bihbInByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudW5pZm9ybSBzYW1wbGVyMkQgYWNjdW1CdWZmZXI7XG52YXJ5aW5nIHZlYzIgdXY7XG5cbnZvaWQgbWFpbigpIHtcbiAgdmVjNCBhY2N1bSA9IHRleHR1cmUyRChhY2N1bUJ1ZmZlciwgMC41ICogKHV2ICsgMS4wKSk7XG4gIGdsX0ZyYWdDb2xvciA9IG1pbih2ZWM0KDEsMSwxLDEpLCBhY2N1bSk7XG59Il0pO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gYSh0LGksbyxudWxsLFt7bmFtZToicG9zaXRpb24iLHR5cGU6InZlYzIifV0pfX0seyJnbC1zaGFkZXIiOjMwNCxnbHNsaWZ5OjQxMX1dLDI5MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2NhbWVyYS5qcyIpLGE9dCgiZ2wtYXhlczNkIiksaT10KCJnbC1heGVzM2QvcHJvcGVydGllcyIpLG89dCgiZ2wtc3Bpa2VzM2QiKSxzPXQoImdsLXNlbGVjdC1zdGF0aWMiKSxsPXQoImdsLWZibyIpLGM9dCgiYS1iaWctdHJpYW5nbGUiKSx1PXQoIm1vdXNlLWNoYW5nZSIpLGg9dCgiZ2wtbWF0NC9wZXJzcGVjdGl2ZSIpLGY9dCgiZ2wtbWF0NC9vcnRobyIpLHA9dCgiLi9saWIvc2hhZGVyIiksZD10KCJpcy1tb2JpbGUiKSh7dGFibGV0OiEwfSk7ZnVuY3Rpb24gZygpe3RoaXMubW91c2U9Wy0xLC0xXSx0aGlzLnNjcmVlbj1udWxsLHRoaXMuZGlzdGFuY2U9MS8wLHRoaXMuaW5kZXg9bnVsbCx0aGlzLmRhdGFDb29yZGluYXRlPW51bGwsdGhpcy5kYXRhUG9zaXRpb249bnVsbCx0aGlzLm9iamVjdD1udWxsLHRoaXMuZGF0YT1udWxsfWZ1bmN0aW9uIHYodCl7dmFyIGU9TWF0aC5yb3VuZChNYXRoLmxvZyhNYXRoLmFicyh0KSkvTWF0aC5sb2coMTApKTtpZihlPDApe3ZhciByPU1hdGgucm91bmQoTWF0aC5wb3coMTAsLWUpKTtyZXR1cm4gTWF0aC5jZWlsKHQqcikvcn1pZihlPjApe3I9TWF0aC5yb3VuZChNYXRoLnBvdygxMCxlKSk7cmV0dXJuIE1hdGguY2VpbCh0L3IpKnJ9cmV0dXJuIE1hdGguY2VpbCh0KX1mdW5jdGlvbiBtKHQpe3JldHVybiJib29sZWFuIiE9dHlwZW9mIHR8fHR9ZS5leHBvcnRzPXtjcmVhdGVTY2VuZTpmdW5jdGlvbih0KXsodD10fHx7fSkuY2FtZXJhPXQuY2FtZXJhfHx7fTt2YXIgZT10LmNhbnZhcztpZighZSlpZihlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLHQuY29udGFpbmVyKXt2YXIgcj10LmNvbnRhaW5lcjtyLmFwcGVuZENoaWxkKGUpfWVsc2UgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKTt2YXIgeT10LmdsO3l8fCh0LmdsT3B0aW9ucyYmKGQ9ISF0LmdsT3B0aW9ucy5wcmVzZXJ2ZURyYXdpbmdCdWZmZXIpLHk9ZnVuY3Rpb24odCxlKXt2YXIgcj1udWxsO3RyeXsocj10LmdldENvbnRleHQoIndlYmdsIixlKSl8fChyPXQuZ2V0Q29udGV4dCgiZXhwZXJpbWVudGFsLXdlYmdsIixlKSl9Y2F0Y2godCl7cmV0dXJuIG51bGx9cmV0dXJuIHJ9KGUsdC5nbE9wdGlvbnN8fHtwcmVtdWx0aXBsaWVkQWxwaGE6ITAsYW50aWFsaWFzOiEwLHByZXNlcnZlRHJhd2luZ0J1ZmZlcjpkfSkpO2lmKCF5KXRocm93IG5ldyBFcnJvcigid2ViZ2wgbm90IHN1cHBvcnRlZCIpO3ZhciB4PXQuYm91bmRzfHxbWy0xMCwtMTAsLTEwXSxbMTAsMTAsMTBdXSxiPW5ldyBnLF89bCh5LHkuZHJhd2luZ0J1ZmZlcldpZHRoLHkuZHJhd2luZ0J1ZmZlckhlaWdodCx7cHJlZmVyRmxvYXQ6IWR9KSx3PXAoeSksaz10LmNhbWVyYU9iamVjdCYmITA9PT10LmNhbWVyYU9iamVjdC5fb3J0aG98fHQuY2FtZXJhLnByb2plY3Rpb24mJiJvcnRob2dyYXBoaWMiPT09dC5jYW1lcmEucHJvamVjdGlvbi50eXBlfHwhMSxUPXtleWU6dC5jYW1lcmEuZXllfHxbMiwwLDBdLGNlbnRlcjp0LmNhbWVyYS5jZW50ZXJ8fFswLDAsMF0sdXA6dC5jYW1lcmEudXB8fFswLDEsMF0sem9vbU1pbjp0LmNhbWVyYS56b29tTWF4fHwuMSx6b29tTWF4OnQuY2FtZXJhLnpvb21NaW58fDEwMCxtb2RlOnQuY2FtZXJhLm1vZGV8fCJ0dXJudGFibGUiLF9vcnRobzprfSxNPXQuYXhlc3x8e30sQT1hKHksTSk7QS5lbmFibGU9IU0uZGlzYWJsZTt2YXIgUz10LnNwaWtlc3x8e30sRT1vKHksUyksTD1bXSxDPVtdLFA9W10sTz1bXSx6PSEwLEk9ITAsRD1uZXcgQXJyYXkoMTYpLFI9bmV3IEFycmF5KDE2KSxGPXt2aWV3Om51bGwscHJvamVjdGlvbjpELG1vZGVsOlIsX29ydGhvOiExfSxJPSEwLEI9W3kuZHJhd2luZ0J1ZmZlcldpZHRoLHkuZHJhd2luZ0J1ZmZlckhlaWdodF0sTj10LmNhbWVyYU9iamVjdHx8bihlLFQpLGo9e2dsOnksY29udGV4dExvc3Q6ITEscGl4ZWxSYXRpbzp0LnBpeGVsUmF0aW98fDEsY2FudmFzOmUsc2VsZWN0aW9uOmIsY2FtZXJhOk4sYXhlczpBLGF4ZXNQaXhlbHM6bnVsbCxzcGlrZXM6RSxib3VuZHM6eCxvYmplY3RzOkwsc2hhcGU6Qixhc3BlY3Q6dC5hc3BlY3RSYXRpb3x8WzEsMSwxXSxwaWNrUmFkaXVzOnQucGlja1JhZGl1c3x8MTAsek5lYXI6dC56TmVhcnx8LjAxLHpGYXI6dC56RmFyfHwxZTMsZm92eTp0LmZvdnl8fE1hdGguUEkvNCxjbGVhckNvbG9yOnQuY2xlYXJDb2xvcnx8WzAsMCwwLDBdLGF1dG9SZXNpemU6bSh0LmF1dG9SZXNpemUpLGF1dG9Cb3VuZHM6bSh0LmF1dG9Cb3VuZHMpLGF1dG9TY2FsZTohIXQuYXV0b1NjYWxlLGF1dG9DZW50ZXI6bSh0LmF1dG9DZW50ZXIpLGNsaXBUb0JvdW5kczptKHQuY2xpcFRvQm91bmRzKSxzbmFwVG9EYXRhOiEhdC5zbmFwVG9EYXRhLG9uc2VsZWN0OnQub25zZWxlY3R8fG51bGwsb25yZW5kZXI6dC5vbnJlbmRlcnx8bnVsbCxvbmNsaWNrOnQub25jbGlja3x8bnVsbCxjYW1lcmFQYXJhbXM6RixvbmNvbnRleHRsb3NzOm51bGwsbW91c2VMaXN0ZW5lcjpudWxsLF9zdG9wcGVkOiExLGdldEFzcGVjdHJhdGlvOmZ1bmN0aW9uKCl7cmV0dXJue3g6dGhpcy5hc3BlY3RbMF0seTp0aGlzLmFzcGVjdFsxXSx6OnRoaXMuYXNwZWN0WzJdfX0sc2V0QXNwZWN0cmF0aW86ZnVuY3Rpb24odCl7dGhpcy5hc3BlY3RbMF09dC54LHRoaXMuYXNwZWN0WzFdPXQueSx0aGlzLmFzcGVjdFsyXT10Lnp9LHNldEJvdW5kczpmdW5jdGlvbih0LGUpe3RoaXMuYm91bmRzWzBdW3RdPWUubWluLHRoaXMuYm91bmRzWzFdW3RdPWUubWF4fSxzZXRDbGVhckNvbG9yOmZ1bmN0aW9uKHQpe3RoaXMuY2xlYXJDb2xvcj10fSxjbGVhclJHQkE6ZnVuY3Rpb24oKXt0aGlzLmdsLmNsZWFyQ29sb3IodGhpcy5jbGVhckNvbG9yWzBdLHRoaXMuY2xlYXJDb2xvclsxXSx0aGlzLmNsZWFyQ29sb3JbMl0sdGhpcy5jbGVhckNvbG9yWzNdKSx0aGlzLmdsLmNsZWFyKHRoaXMuZ2wuQ09MT1JfQlVGRkVSX0JJVHx0aGlzLmdsLkRFUFRIX0JVRkZFUl9CSVQpfX0sVj1beS5kcmF3aW5nQnVmZmVyV2lkdGgvai5waXhlbFJhdGlvfDAseS5kcmF3aW5nQnVmZmVySGVpZ2h0L2oucGl4ZWxSYXRpb3wwXTtmdW5jdGlvbiBVKCl7aWYoIWouX3N0b3BwZWQmJmouYXV0b1Jlc2l6ZSl7dmFyIHQ9ZS5wYXJlbnROb2RlLHI9MSxuPTE7dCYmdCE9PWRvY3VtZW50LmJvZHk/KHI9dC5jbGllbnRXaWR0aCxuPXQuY2xpZW50SGVpZ2h0KToocj13aW5kb3cuaW5uZXJXaWR0aCxuPXdpbmRvdy5pbm5lckhlaWdodCk7dmFyIGE9MHxNYXRoLmNlaWwocipqLnBpeGVsUmF0aW8pLGk9MHxNYXRoLmNlaWwobipqLnBpeGVsUmF0aW8pO2lmKGEhPT1lLndpZHRofHxpIT09ZS5oZWlnaHQpe2Uud2lkdGg9YSxlLmhlaWdodD1pO3ZhciBvPWUuc3R5bGU7by5wb3NpdGlvbj1vLnBvc2l0aW9ufHwiYWJzb2x1dGUiLG8ubGVmdD0iMHB4IixvLnRvcD0iMHB4IixvLndpZHRoPXIrInB4IixvLmhlaWdodD1uKyJweCIsej0hMH19fWouYXV0b1Jlc2l6ZSYmVSgpO2Z1bmN0aW9uIHEoKXtmb3IodmFyIHQ9TC5sZW5ndGgsZT1PLmxlbmd0aCxyPTA7cjxlOysrcilQW3JdPTA7dDpmb3IodmFyIHI9MDtyPHQ7KytyKXt2YXIgbj1MW3JdLGE9bi5waWNrU2xvdHM7aWYoYSl7Zm9yKHZhciBpPTA7aTxlOysraSlpZihQW2ldK2E8MjU1KXtDW3JdPWksbi5zZXRQaWNrQmFzZShQW2ldKzEpLFBbaV0rPWE7Y29udGludWUgdH12YXIgbz1zKHksQik7Q1tyXT1lLE8ucHVzaChvKSxQLnB1c2goYSksbi5zZXRQaWNrQmFzZSgxKSxlKz0xfWVsc2UgQ1tyXT0tMX1mb3IoO2U+MCYmMD09PVBbZS0xXTspUC5wb3AoKSxPLnBvcCgpLmRpc3Bvc2UoKX1mdW5jdGlvbiBIKCl7aWYoai5jb250ZXh0TG9zdClyZXR1cm4hMDt5LmlzQ29udGV4dExvc3QoKSYmKGouY29udGV4dExvc3Q9ITAsai5tb3VzZUxpc3RlbmVyLmVuYWJsZWQ9ITEsai5zZWxlY3Rpb24ub2JqZWN0PW51bGwsai5vbmNvbnRleHRsb3NzJiZqLm9uY29udGV4dGxvc3MoKSl9d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsVSksai51cGRhdGU9ZnVuY3Rpb24odCl7ai5fc3RvcHBlZHx8KHQ9dHx8e30sej0hMCxJPSEwKX0sai5hZGQ9ZnVuY3Rpb24odCl7ai5fc3RvcHBlZHx8KHQuYXhlcz1BLEwucHVzaCh0KSxDLnB1c2goLTEpLHo9ITAsST0hMCxxKCkpfSxqLnJlbW92ZT1mdW5jdGlvbih0KXtpZighai5fc3RvcHBlZCl7dmFyIGU9TC5pbmRleE9mKHQpO2U8MHx8KEwuc3BsaWNlKGUsMSksQy5wb3AoKSx6PSEwLEk9ITAscSgpKX19LGouZGlzcG9zZT1mdW5jdGlvbigpe2lmKCFqLl9zdG9wcGVkJiYoai5fc3RvcHBlZD0hMCx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIixVKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dGxvc3QiLEgpLGoubW91c2VMaXN0ZW5lci5lbmFibGVkPSExLCFqLmNvbnRleHRMb3N0KSl7QS5kaXNwb3NlKCksRS5kaXNwb3NlKCk7Zm9yKHZhciB0PTA7dDxMLmxlbmd0aDsrK3QpTFt0XS5kaXNwb3NlKCk7Xy5kaXNwb3NlKCk7Zm9yKHZhciB0PTA7dDxPLmxlbmd0aDsrK3QpT1t0XS5kaXNwb3NlKCk7dy5kaXNwb3NlKCkseT1udWxsLEE9bnVsbCxFPW51bGwsTD1bXX19LGouX21vdXNlUm90YXRpbmc9ITEsai5fcHJldkJ1dHRvbnM9MCxqLmVuYWJsZU1vdXNlTGlzdGVuZXJzPWZ1bmN0aW9uKCl7ai5tb3VzZUxpc3RlbmVyPXUoZSxmdW5jdGlvbih0LGUscil7aWYoIWouX3N0b3BwZWQpe3ZhciBuPU8ubGVuZ3RoLGE9TC5sZW5ndGgsaT1iLm9iamVjdDtiLmRpc3RhbmNlPTEvMCxiLm1vdXNlWzBdPWUsYi5tb3VzZVsxXT1yLGIub2JqZWN0PW51bGwsYi5zY3JlZW49bnVsbCxiLmRhdGFDb29yZGluYXRlPWIuZGF0YVBvc2l0aW9uPW51bGw7dmFyIG89ITE7aWYodCYmai5fcHJldkJ1dHRvbnMpai5fbW91c2VSb3RhdGluZz0hMDtlbHNle2ouX21vdXNlUm90YXRpbmcmJihJPSEwKSxqLl9tb3VzZVJvdGF0aW5nPSExO2Zvcih2YXIgcz0wO3M8bjsrK3Mpe3ZhciBsPU9bc10ucXVlcnkoZSxWWzFdLXItMSxqLnBpY2tSYWRpdXMpO2lmKGwpe2lmKGwuZGlzdGFuY2U+Yi5kaXN0YW5jZSljb250aW51ZTtmb3IodmFyIGM9MDtjPGE7KytjKXt2YXIgdT1MW2NdO2lmKENbY109PT1zKXt2YXIgaD11LnBpY2sobCk7aCYmKGIuYnV0dG9ucz10LGIuc2NyZWVuPWwuY29vcmQsYi5kaXN0YW5jZT1sLmRpc3RhbmNlLGIub2JqZWN0PXUsYi5pbmRleD1oLmRpc3RhbmNlLGIuZGF0YVBvc2l0aW9uPWgucG9zaXRpb24sYi5kYXRhQ29vcmRpbmF0ZT1oLmRhdGFDb29yZGluYXRlLGIuZGF0YT1oLG89ITApfX19fX1pJiZpIT09Yi5vYmplY3QmJihpLmhpZ2hsaWdodCYmaS5oaWdobGlnaHQobnVsbCksej0hMCksYi5vYmplY3QmJihiLm9iamVjdC5oaWdobGlnaHQmJmIub2JqZWN0LmhpZ2hsaWdodChiLmRhdGEpLHo9ITApLChvPW98fGIub2JqZWN0IT09aSkmJmoub25zZWxlY3QmJmoub25zZWxlY3QoYiksMSZ0JiYhKDEmai5fcHJldkJ1dHRvbnMpJiZqLm9uY2xpY2smJmoub25jbGljayhiKSxqLl9wcmV2QnV0dG9ucz10fX0pfSxlLmFkZEV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dGxvc3QiLEgpO3ZhciBHPVtbMS8wLDEvMCwxLzBdLFstMS8wLC0xLzAsLTEvMF1dLFk9W0dbMF0uc2xpY2UoKSxHWzFdLnNsaWNlKCldO2Z1bmN0aW9uIFcoKXtpZighSCgpKXtVKCk7dmFyIHQ9ai5jYW1lcmEudGljaygpO0Yudmlldz1qLmNhbWVyYS5tYXRyaXgsej16fHx0LEk9SXx8dCxBLnBpeGVsUmF0aW89ai5waXhlbFJhdGlvLEUucGl4ZWxSYXRpbz1qLnBpeGVsUmF0aW87dmFyIGU9TC5sZW5ndGgscj1HWzBdLG49R1sxXTtyWzBdPXJbMV09clsyXT0xLzAsblswXT1uWzFdPW5bMl09LTEvMDtmb3IodmFyIGE9MDthPGU7KythKXt2YXIgbz1MW2FdO28ucGl4ZWxSYXRpbz1qLnBpeGVsUmF0aW8sby5heGVzPWouYXhlcyx6PXp8fCEhby5kaXJ0eSxJPUl8fCEhby5kaXJ0eTt2YXIgcz1vLmJvdW5kcztpZihzKWZvcih2YXIgbD1zWzBdLHU9c1sxXSxwPTA7cDwzOysrcClyW3BdPU1hdGgubWluKHJbcF0sbFtwXSksbltwXT1NYXRoLm1heChuW3BdLHVbcF0pfXZhciBkPWouYm91bmRzO2lmKGouYXV0b0JvdW5kcylmb3IodmFyIHA9MDtwPDM7KytwKXtpZihuW3BdPHJbcF0pcltwXT0tMSxuW3BdPTE7ZWxzZXtyW3BdPT09bltwXSYmKHJbcF0tPTEsbltwXSs9MSk7dmFyIGc9LjA1KihuW3BdLXJbcF0pO3JbcF09cltwXS1nLG5bcF09bltwXStnfWRbMF1bcF09cltwXSxkWzFdW3BdPW5bcF19Zm9yKHZhciBtPSExLHA9MDtwPDM7KytwKW09bXx8WVswXVtwXSE9PWRbMF1bcF18fFlbMV1bcF0hPT1kWzFdW3BdLFlbMF1bcF09ZFswXVtwXSxZWzFdW3BdPWRbMV1bcF07aWYoST1JfHxtLHo9enx8bSl7aWYobSl7Zm9yKHZhciB4PVswLDAsMF0sYT0wO2E8MzsrK2EpeFthXT12KChkWzFdW2FdLWRbMF1bYV0pLzEwKTtBLmF1dG9UaWNrcz9BLnVwZGF0ZSh7Ym91bmRzOmQsdGlja1NwYWNpbmc6eH0pOkEudXBkYXRlKHtib3VuZHM6ZH0pfXZhciBUPXkuZHJhd2luZ0J1ZmZlcldpZHRoLE09eS5kcmF3aW5nQnVmZmVySGVpZ2h0O0JbMF09VCxCWzFdPU0sVlswXT0wfE1hdGgubWF4KFQvai5waXhlbFJhdGlvLDEpLFZbMV09MHxNYXRoLm1heChNL2oucGl4ZWxSYXRpbywxKSxmdW5jdGlvbih0LGUpe3ZhciByPXQuYm91bmRzLG49dC5jYW1lcmFQYXJhbXMsYT1uLnByb2plY3Rpb24saT1uLm1vZGVsLG89dC5nbC5kcmF3aW5nQnVmZmVyV2lkdGgscz10LmdsLmRyYXdpbmdCdWZmZXJIZWlnaHQsbD10LnpOZWFyLGM9dC56RmFyLHU9dC5mb3Z5LHA9by9zO2U/KGYoYSwtcCxwLC0xLDEsbCxjKSxuLl9vcnRobz0hMCk6KGgoYSx1LHAsbCxjKSxuLl9vcnRobz0hMSk7Zm9yKHZhciBkPTA7ZDwxNjsrK2QpaVtkXT0wO2lbMTVdPTE7Zm9yKHZhciBnPTAsZD0wO2Q8MzsrK2QpZz1NYXRoLm1heChnLHJbMV1bZF0tclswXVtkXSk7Zm9yKHZhciBkPTA7ZDwzOysrZCl0LmF1dG9TY2FsZT9pWzUqZF09dC5hc3BlY3RbZF0vKHJbMV1bZF0tclswXVtkXSk6aVs1KmRdPTEvZyx0LmF1dG9DZW50ZXImJihpWzEyK2RdPS41Ki1pWzUqZF0qKHJbMF1bZF0rclsxXVtkXSkpfShqLGspO2Zvcih2YXIgYT0wO2E8ZTsrK2Epe3ZhciBvPUxbYV07by5heGVzQm91bmRzPWQsai5jbGlwVG9Cb3VuZHMmJihvLmNsaXBCb3VuZHM9ZCl9Yi5vYmplY3QmJihqLnNuYXBUb0RhdGE/RS5wb3NpdGlvbj1iLmRhdGFDb29yZGluYXRlOkUucG9zaXRpb249Yi5kYXRhUG9zaXRpb24sRS5ib3VuZHM9ZCksSSYmKEk9ITEsZnVuY3Rpb24oKXtpZihIKCkpcmV0dXJuO3kuY29sb3JNYXNrKCEwLCEwLCEwLCEwKSx5LmRlcHRoTWFzayghMCkseS5kaXNhYmxlKHkuQkxFTkQpLHkuZW5hYmxlKHkuREVQVEhfVEVTVCkseS5kZXB0aEZ1bmMoeS5MRVFVQUwpO2Zvcih2YXIgdD1MLmxlbmd0aCxlPU8ubGVuZ3RoLHI9MDtyPGU7KytyKXt2YXIgbj1PW3JdO24uc2hhcGU9VixuLmJlZ2luKCk7Zm9yKHZhciBhPTA7YTx0OysrYSlpZihDW2FdPT09cil7dmFyIGk9TFthXTtpLmRyYXdQaWNrJiYoaS5waXhlbFJhdGlvPTEsaS5kcmF3UGljayhGKSl9bi5lbmQoKX19KCkpLGouYXhlc1BpeGVscz1pKGouYXhlcyxGLFQsTSksai5vbnJlbmRlciYmai5vbnJlbmRlcigpLHkuYmluZEZyYW1lYnVmZmVyKHkuRlJBTUVCVUZGRVIsbnVsbCkseS52aWV3cG9ydCgwLDAsVCxNKSxqLmNsZWFyUkdCQSgpLHkuZGVwdGhNYXNrKCEwKSx5LmNvbG9yTWFzayghMCwhMCwhMCwhMCkseS5lbmFibGUoeS5ERVBUSF9URVNUKSx5LmRlcHRoRnVuYyh5LkxFUVVBTCkseS5kaXNhYmxlKHkuQkxFTkQpLHkuZGlzYWJsZSh5LkNVTExfRkFDRSk7dmFyIFM9ITE7QS5lbmFibGUmJihTPVN8fEEuaXNUcmFuc3BhcmVudCgpLEEuZHJhdyhGKSksRS5heGVzPUEsYi5vYmplY3QmJkUuZHJhdyhGKSx5LmRpc2FibGUoeS5DVUxMX0ZBQ0UpO2Zvcih2YXIgYT0wO2E8ZTsrK2Epe3ZhciBvPUxbYV07by5heGVzPUEsby5waXhlbFJhdGlvPWoucGl4ZWxSYXRpbyxvLmlzT3BhcXVlJiZvLmlzT3BhcXVlKCkmJm8uZHJhdyhGKSxvLmlzVHJhbnNwYXJlbnQmJm8uaXNUcmFuc3BhcmVudCgpJiYoUz0hMCl9aWYoUyl7Xy5zaGFwZT1CLF8uYmluZCgpLHkuY2xlYXIoeS5ERVBUSF9CVUZGRVJfQklUKSx5LmNvbG9yTWFzayghMSwhMSwhMSwhMSkseS5kZXB0aE1hc2soITApLHkuZGVwdGhGdW5jKHkuTEVTUyksQS5lbmFibGUmJkEuaXNUcmFuc3BhcmVudCgpJiZBLmRyYXdUcmFuc3BhcmVudChGKTtmb3IodmFyIGE9MDthPGU7KythKXt2YXIgbz1MW2FdO28uaXNPcGFxdWUmJm8uaXNPcGFxdWUoKSYmby5kcmF3KEYpfXkuZW5hYmxlKHkuQkxFTkQpLHkuYmxlbmRFcXVhdGlvbih5LkZVTkNfQUREKSx5LmJsZW5kRnVuYyh5Lk9ORSx5Lk9ORV9NSU5VU19TUkNfQUxQSEEpLHkuY29sb3JNYXNrKCEwLCEwLCEwLCEwKSx5LmRlcHRoTWFzayghMSkseS5jbGVhckNvbG9yKDAsMCwwLDApLHkuY2xlYXIoeS5DT0xPUl9CVUZGRVJfQklUKSxBLmlzVHJhbnNwYXJlbnQoKSYmQS5kcmF3VHJhbnNwYXJlbnQoRik7Zm9yKHZhciBhPTA7YTxlOysrYSl7dmFyIG89TFthXTtvLmlzVHJhbnNwYXJlbnQmJm8uaXNUcmFuc3BhcmVudCgpJiZvLmRyYXdUcmFuc3BhcmVudChGKX15LmJpbmRGcmFtZWJ1ZmZlcih5LkZSQU1FQlVGRkVSLG51bGwpLHkuYmxlbmRGdW5jKHkuT05FLHkuT05FX01JTlVTX1NSQ19BTFBIQSkseS5kaXNhYmxlKHkuREVQVEhfVEVTVCksdy5iaW5kKCksXy5jb2xvclswXS5iaW5kKDApLHcudW5pZm9ybXMuYWNjdW1CdWZmZXI9MCxjKHkpLHkuZGlzYWJsZSh5LkJMRU5EKX16PSExO2Zvcih2YXIgYT0wO2E8ZTsrK2EpTFthXS5kaXJ0eT0hMX19fXJldHVybiBqLmVuYWJsZU1vdXNlTGlzdGVuZXJzKCksZnVuY3Rpb24gdCgpe2ouX3N0b3BwZWR8fGouY29udGV4dExvc3R8fChXKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKHQpKX0oKSxqLnJlZHJhdz1mdW5jdGlvbigpe2ouX3N0b3BwZWR8fCh6PSEwLFcoKSl9LGp9LGNyZWF0ZUNhbWVyYTpufX0seyIuL2NhbWVyYS5qcyI6MjkxLCIuL2xpYi9zaGFkZXIiOjI5MiwiYS1iaWctdHJpYW5nbGUiOjYyLCJnbC1heGVzM2QiOjIzNiwiZ2wtYXhlczNkL3Byb3BlcnRpZXMiOjI0MywiZ2wtZmJvIjoyNTIsImdsLW1hdDQvb3J0aG8iOjI3MSwiZ2wtbWF0NC9wZXJzcGVjdGl2ZSI6MjcyLCJnbC1zZWxlY3Qtc3RhdGljIjozMDMsImdsLXNwaWtlczNkIjozMTMsImlzLW1vYmlsZSI6NDIyLCJtb3VzZS1jaGFuZ2UiOjQzN31dLDI5NDpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoImdsc2xpZnkiKTtyLnBvaW50VmVydGV4PW4oWyJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMyIHBvc2l0aW9uO1xuXG51bmlmb3JtIG1hdDMgbWF0cml4O1xudW5pZm9ybSBmbG9hdCBwb2ludFNpemU7XG51bmlmb3JtIGZsb2F0IHBvaW50Q2xvdWQ7XG5cbmhpZ2hwIGZsb2F0IHJhbmQodmVjMiBjbykge1xuICBoaWdocCBmbG9hdCBhID0gMTIuOTg5ODtcbiAgaGlnaHAgZmxvYXQgYiA9IDc4LjIzMztcbiAgaGlnaHAgZmxvYXQgYyA9IDQzNzU4LjU0NTM7XG4gIGhpZ2hwIGZsb2F0IGQgPSBkb3QoY28ueHksIHZlYzIoYSwgYikpO1xuICBoaWdocCBmbG9hdCBlID0gbW9kKGQsIDMuMTQpO1xuICByZXR1cm4gZnJhY3Qoc2luKGUpICogYyk7XG59XG5cbnZvaWQgbWFpbigpIHtcbiAgdmVjMyBoZ1Bvc2l0aW9uID0gbWF0cml4ICogdmVjMyhwb3NpdGlvbiwgMSk7XG4gIGdsX1Bvc2l0aW9uICA9IHZlYzQoaGdQb3NpdGlvbi54eSwgMCwgaGdQb3NpdGlvbi56KTtcbiAgICAvLyBpZiB3ZSBkb24ndCBqaXR0ZXIgdGhlIHBvaW50IHNpemUgYSBiaXQsIG92ZXJhbGwgcG9pbnQgY2xvdWRcbiAgICAvLyBzYXR1cmF0aW9uICdqdW1wcycgb24gem9vbWluZywgd2hpY2ggaXMgZGlzdHVyYmluZyBhbmQgY29uZnVzaW5nXG4gIGdsX1BvaW50U2l6ZSA9IHBvaW50U2l6ZSAqICgoMTkuNSArIHJhbmQocG9zaXRpb24pKSAvIDIwLjApO1xuICBpZihwb2ludENsb3VkICE9IDAuMCkgeyAvLyBwb2ludENsb3VkIGlzIHRydXRoeVxuICAgIC8vIGdldCB0aGUgc2FtZSBzcXVhcmUgc3VyZmFjZSBhcyBjaXJjbGUgd291bGQgYmVcbiAgICBnbF9Qb2ludFNpemUgKj0gMC44ODY7XG4gIH1cbn0iXSksci5wb2ludEZyYWdtZW50PW4oWyJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbnVuaWZvcm0gdmVjNCBjb2xvciwgYm9yZGVyQ29sb3I7XG51bmlmb3JtIGZsb2F0IGNlbnRlckZyYWN0aW9uO1xudW5pZm9ybSBmbG9hdCBwb2ludENsb3VkO1xuXG52b2lkIG1haW4oKSB7XG4gIGZsb2F0IHJhZGl1cztcbiAgdmVjNCBiYXNlQ29sb3I7XG4gIGlmKHBvaW50Q2xvdWQgIT0gMC4wKSB7IC8vIHBvaW50Q2xvdWQgaXMgdHJ1dGh5XG4gICAgaWYoY2VudGVyRnJhY3Rpb24gPT0gMS4wKSB7XG4gICAgICBnbF9GcmFnQ29sb3IgPSBjb2xvcjtcbiAgICB9IGVsc2Uge1xuICAgICAgZ2xfRnJhZ0NvbG9yID0gbWl4KGJvcmRlckNvbG9yLCBjb2xvciwgY2VudGVyRnJhY3Rpb24pO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByYWRpdXMgPSBsZW5ndGgoMi4wICogZ2xfUG9pbnRDb29yZC54eSAtIDEuMCk7XG4gICAgaWYocmFkaXVzID4gMS4wKSB7XG4gICAgICBkaXNjYXJkO1xuICAgIH1cbiAgICBiYXNlQ29sb3IgPSBtaXgoYm9yZGVyQ29sb3IsIGNvbG9yLCBzdGVwKHJhZGl1cywgY2VudGVyRnJhY3Rpb24pKTtcbiAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGJhc2VDb2xvci5yZ2IgKiBiYXNlQ29sb3IuYSwgYmFzZUNvbG9yLmEpO1xuICB9XG59XG4iXSksci5waWNrVmVydGV4PW4oWyJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMyIHBvc2l0aW9uO1xuYXR0cmlidXRlIHZlYzQgcGlja0lkO1xuXG51bmlmb3JtIG1hdDMgbWF0cml4O1xudW5pZm9ybSBmbG9hdCBwb2ludFNpemU7XG51bmlmb3JtIHZlYzQgcGlja09mZnNldDtcblxudmFyeWluZyB2ZWM0IGZyYWdJZDtcblxudm9pZCBtYWluKCkge1xuICB2ZWMzIGhnUG9zaXRpb24gPSBtYXRyaXggKiB2ZWMzKHBvc2l0aW9uLCAxKTtcbiAgZ2xfUG9zaXRpb24gID0gdmVjNChoZ1Bvc2l0aW9uLnh5LCAwLCBoZ1Bvc2l0aW9uLnopO1xuICBnbF9Qb2ludFNpemUgPSBwb2ludFNpemU7XG5cbiAgdmVjNCBpZCA9IHBpY2tJZCArIHBpY2tPZmZzZXQ7XG4gIGlkLnkgKz0gZmxvb3IoaWQueCAvIDI1Ni4wKTtcbiAgaWQueCAtPSBmbG9vcihpZC54IC8gMjU2LjApICogMjU2LjA7XG5cbiAgaWQueiArPSBmbG9vcihpZC55IC8gMjU2LjApO1xuICBpZC55IC09IGZsb29yKGlkLnkgLyAyNTYuMCkgKiAyNTYuMDtcblxuICBpZC53ICs9IGZsb29yKGlkLnogLyAyNTYuMCk7XG4gIGlkLnogLT0gZmxvb3IoaWQueiAvIDI1Ni4wKSAqIDI1Ni4wO1xuXG4gIGZyYWdJZCA9IGlkO1xufVxuIl0pLHIucGlja0ZyYWdtZW50PW4oWyJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbnZhcnlpbmcgdmVjNCBmcmFnSWQ7XG5cbnZvaWQgbWFpbigpIHtcbiAgZmxvYXQgcmFkaXVzID0gbGVuZ3RoKDIuMCAqIGdsX1BvaW50Q29vcmQueHkgLSAxLjApO1xuICBpZihyYWRpdXMgPiAxLjApIHtcbiAgICBkaXNjYXJkO1xuICB9XG4gIGdsX0ZyYWdDb2xvciA9IGZyYWdJZCAvIDI1NS4wO1xufVxuIl0pfSx7Z2xzbGlmeTo0MTF9XSwyOTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZ2wtc2hhZGVyIiksYT10KCJnbC1idWZmZXIiKSxpPXQoInR5cGVkYXJyYXktcG9vbCIpLG89dCgiLi9saWIvc2hhZGVyIik7ZnVuY3Rpb24gcyh0LGUscixuLGEpe3RoaXMucGxvdD10LHRoaXMub2Zmc2V0QnVmZmVyPWUsdGhpcy5waWNrQnVmZmVyPXIsdGhpcy5zaGFkZXI9bix0aGlzLnBpY2tTaGFkZXI9YSx0aGlzLnNpemVNaW49LjUsdGhpcy5zaXplTWluQ2FwPTIsdGhpcy5zaXplTWF4PTIwLHRoaXMuYXJlYVJhdGlvPTEsdGhpcy5wb2ludENvdW50PTAsdGhpcy5jb2xvcj1bMSwwLDAsMV0sdGhpcy5ib3JkZXJDb2xvcj1bMCwwLDAsMV0sdGhpcy5ibGVuZD0hMSx0aGlzLnBpY2tPZmZzZXQ9MCx0aGlzLnBvaW50cz1udWxsfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQuZ2wsaT1hKHIpLGw9YShyKSxjPW4ocixvLnBvaW50VmVydGV4LG8ucG9pbnRGcmFnbWVudCksdT1uKHIsby5waWNrVmVydGV4LG8ucGlja0ZyYWdtZW50KSxoPW5ldyBzKHQsaSxsLGMsdSk7cmV0dXJuIGgudXBkYXRlKGUpLHQuYWRkT2JqZWN0KGgpLGh9O3ZhciBsLGMsdT1zLnByb3RvdHlwZTt1LmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnNoYWRlci5kaXNwb3NlKCksdGhpcy5waWNrU2hhZGVyLmRpc3Bvc2UoKSx0aGlzLm9mZnNldEJ1ZmZlci5kaXNwb3NlKCksdGhpcy5waWNrQnVmZmVyLmRpc3Bvc2UoKSx0aGlzLnBsb3QucmVtb3ZlT2JqZWN0KHRoaXMpfSx1LnVwZGF0ZT1mdW5jdGlvbih0KXt2YXIgZTtmdW5jdGlvbiByKGUscil7cmV0dXJuIGUgaW4gdD90W2VdOnJ9dD10fHx7fSx0aGlzLnNpemVNaW49cigic2l6ZU1pbiIsLjUpLHRoaXMuc2l6ZU1heD1yKCJzaXplTWF4IiwyMCksdGhpcy5jb2xvcj1yKCJjb2xvciIsWzEsMCwwLDFdKS5zbGljZSgpLHRoaXMuYXJlYVJhdGlvPXIoImFyZWFSYXRpbyIsMSksdGhpcy5ib3JkZXJDb2xvcj1yKCJib3JkZXJDb2xvciIsWzAsMCwwLDFdKS5zbGljZSgpLHRoaXMuYmxlbmQ9cigiYmxlbmQiLCExKTt2YXIgbj10LnBvc2l0aW9ucy5sZW5ndGg+Pj4xLGE9dC5wb3NpdGlvbnMgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXksbz10LmlkVG9JbmRleCBpbnN0YW5jZW9mIEludDMyQXJyYXkmJnQuaWRUb0luZGV4Lmxlbmd0aD49bixzPXQucG9zaXRpb25zLGw9YT9zOmkubWFsbG9jRmxvYXQzMihzLmxlbmd0aCksYz1vP3QuaWRUb0luZGV4OmkubWFsbG9jSW50MzIobik7aWYoYXx8bC5zZXQocyksIW8pZm9yKGwuc2V0KHMpLGU9MDtlPG47ZSsrKWNbZV09ZTt0aGlzLnBvaW50cz1zLHRoaXMub2Zmc2V0QnVmZmVyLnVwZGF0ZShsKSx0aGlzLnBpY2tCdWZmZXIudXBkYXRlKGMpLGF8fGkuZnJlZShsKSxvfHxpLmZyZWUoYyksdGhpcy5wb2ludENvdW50PW4sdGhpcy5waWNrT2Zmc2V0PTB9LHUudW5pZmllZERyYXc9KGw9WzEsMCwwLDAsMSwwLDAsMCwxXSxjPVswLDAsMCwwXSxmdW5jdGlvbih0KXt2YXIgZT12b2lkIDAhPT10LHI9ZT90aGlzLnBpY2tTaGFkZXI6dGhpcy5zaGFkZXIsbj10aGlzLnBsb3QuZ2wsYT10aGlzLnBsb3QuZGF0YUJveDtpZigwPT09dGhpcy5wb2ludENvdW50KXJldHVybiB0O3ZhciBpPWFbMl0tYVswXSxvPWFbM10tYVsxXSxzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbj0wLGE9dC5sZW5ndGg+Pj4xO2ZvcihyPTA7cjxhO3IrKyl7dmFyIGk9dFsyKnJdLG89dFsyKnIrMV07aT49ZVswXSYmaTw9ZVsyXSYmbz49ZVsxXSYmbzw9ZVszXSYmbisrfXJldHVybiBufSh0aGlzLnBvaW50cyxhKSx1PXRoaXMucGxvdC5waWNrUGl4ZWxSYXRpbypNYXRoLm1heChNYXRoLm1pbih0aGlzLnNpemVNaW5DYXAsdGhpcy5zaXplTWluKSxNYXRoLm1pbih0aGlzLnNpemVNYXgsdGhpcy5zaXplTWF4L01hdGgucG93KHMsLjMzMzMzKSkpO2xbMF09Mi9pLGxbNF09Mi9vLGxbNl09LTIqYVswXS9pLTEsbFs3XT0tMiphWzFdL28tMSx0aGlzLm9mZnNldEJ1ZmZlci5iaW5kKCksci5iaW5kKCksci5hdHRyaWJ1dGVzLnBvc2l0aW9uLnBvaW50ZXIoKSxyLnVuaWZvcm1zLm1hdHJpeD1sLHIudW5pZm9ybXMuY29sb3I9dGhpcy5jb2xvcixyLnVuaWZvcm1zLmJvcmRlckNvbG9yPXRoaXMuYm9yZGVyQ29sb3Isci51bmlmb3Jtcy5wb2ludENsb3VkPXU8NSxyLnVuaWZvcm1zLnBvaW50U2l6ZT11LHIudW5pZm9ybXMuY2VudGVyRnJhY3Rpb249TWF0aC5taW4oMSxNYXRoLm1heCgwLE1hdGguc3FydCgxLXRoaXMuYXJlYVJhdGlvKSkpLGUmJihjWzBdPTI1NSZ0LGNbMV09dD4+OCYyNTUsY1syXT10Pj4xNiYyNTUsY1szXT10Pj4yNCYyNTUsdGhpcy5waWNrQnVmZmVyLmJpbmQoKSxyLmF0dHJpYnV0ZXMucGlja0lkLnBvaW50ZXIobi5VTlNJR05FRF9CWVRFKSxyLnVuaWZvcm1zLnBpY2tPZmZzZXQ9Yyx0aGlzLnBpY2tPZmZzZXQ9dCk7dmFyIGg9bi5nZXRQYXJhbWV0ZXIobi5CTEVORCksZj1uLmdldFBhcmFtZXRlcihuLkRJVEhFUik7cmV0dXJuIGgmJiF0aGlzLmJsZW5kJiZuLmRpc2FibGUobi5CTEVORCksZiYmbi5kaXNhYmxlKG4uRElUSEVSKSxuLmRyYXdBcnJheXMobi5QT0lOVFMsMCx0aGlzLnBvaW50Q291bnQpLGgmJiF0aGlzLmJsZW5kJiZuLmVuYWJsZShuLkJMRU5EKSxmJiZuLmVuYWJsZShuLkRJVEhFUiksdCt0aGlzLnBvaW50Q291bnR9KSx1LmRyYXc9dS51bmlmaWVkRHJhdyx1LmRyYXdQaWNrPXUudW5pZmllZERyYXcsdS5waWNrPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLnBpY2tPZmZzZXQsYT10aGlzLnBvaW50Q291bnQ7aWYocjxufHxyPj1uK2EpcmV0dXJuIG51bGw7dmFyIGk9ci1uLG89dGhpcy5wb2ludHM7cmV0dXJue29iamVjdDp0aGlzLHBvaW50SWQ6aSxkYXRhQ29vcmQ6W29bMippXSxvWzIqaSsxXV19fX0seyIuL2xpYi9zaGFkZXIiOjI5NCwiZ2wtYnVmZmVyIjoyNDQsImdsLXNoYWRlciI6MzA0LCJ0eXBlZGFycmF5LXBvb2wiOjU0NH1dLDI5NjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuKXt2YXIgYSxpLG8scyxsLGM9ZVswXSx1PWVbMV0saD1lWzJdLGY9ZVszXSxwPXJbMF0sZD1yWzFdLGc9clsyXSx2PXJbM107KGk9YypwK3UqZCtoKmcrZip2KTwwJiYoaT0taSxwPS1wLGQ9LWQsZz0tZyx2PS12KTsxLWk+MWUtNj8oYT1NYXRoLmFjb3MoaSksbz1NYXRoLnNpbihhKSxzPU1hdGguc2luKCgxLW4pKmEpL28sbD1NYXRoLnNpbihuKmEpL28pOihzPTEtbixsPW4pO3JldHVybiB0WzBdPXMqYytsKnAsdFsxXT1zKnUrbCpkLHRbMl09cypoK2wqZyx0WzNdPXMqZitsKnYsdH19LHt9XSwyOTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0fHwwPT09dD90LnRvU3RyaW5nKCk6IiJ9fSx7fV0sMjk4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInZlY3Rvcml6ZS10ZXh0Iik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT1hW2VdO2l8fChpPWFbZV09e30pO2lmKHQgaW4gaSlyZXR1cm4gaVt0XTt2YXIgbz17dGV4dEFsaWduOiJjZW50ZXIiLHRleHRCYXNlbGluZToibWlkZGxlIixsaW5lSGVpZ2h0OjEsZm9udDplLGxpbmVTcGFjaW5nOjEuMjUsc3R5bGV0YWdzOnticmVha2xpbmVzOiEwLGJvbGRzOiEwLGl0YWxpY3M6ITAsc3Vic2NyaXB0czohMCxzdXBlcnNjcmlwdHM6ITB9LHRyaWFuZ2xlczohMH0scz1uKHQsbyk7by50cmlhbmdsZXM9ITE7dmFyIGwsYyx1PW4odCxvKTtpZihyJiYxIT09cil7Zm9yKGw9MDtsPHMucG9zaXRpb25zLmxlbmd0aDsrK2wpZm9yKGM9MDtjPHMucG9zaXRpb25zW2xdLmxlbmd0aDsrK2Mpcy5wb3NpdGlvbnNbbF1bY10vPXI7Zm9yKGw9MDtsPHUucG9zaXRpb25zLmxlbmd0aDsrK2wpZm9yKGM9MDtjPHUucG9zaXRpb25zW2xdLmxlbmd0aDsrK2MpdS5wb3NpdGlvbnNbbF1bY10vPXJ9dmFyIGg9W1sxLzAsMS8wXSxbLTEvMCwtMS8wXV0sZj11LnBvc2l0aW9ucy5sZW5ndGg7Zm9yKGw9MDtsPGY7KytsKXt2YXIgcD11LnBvc2l0aW9uc1tsXTtmb3IoYz0wO2M8MjsrK2MpaFswXVtjXT1NYXRoLm1pbihoWzBdW2NdLHBbY10pLGhbMV1bY109TWF0aC5tYXgoaFsxXVtjXSxwW2NdKX1yZXR1cm4gaVt0XT1bcyx1LGhdfTt2YXIgYT17fX0seyJ2ZWN0b3JpemUtdGV4dCI6NTQ5fV0sMjk5OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiZ2wtc2hhZGVyIiksYT10KCJnbHNsaWZ5IiksaT1hKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYm9vbCBvdXRPZlJhbmdlKGZsb2F0IGEsIGZsb2F0IGIsIGZsb2F0IHApIHtcbiAgcmV0dXJuICgocCA+IG1heChhLCBiKSkgfHwgXG4gICAgICAgICAgKHAgPCBtaW4oYSwgYikpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzIgYSwgdmVjMiBiLCB2ZWMyIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMzIGEsIHZlYzMgYiwgdmVjMyBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueiwgYi56LCBwLnopKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzQgYSwgdmVjNCBiLCB2ZWM0IHApIHtcbiAgcmV0dXJuIG91dE9mUmFuZ2UoYS54eXosIGIueHl6LCBwLnh5eik7XG59XG5cbmF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uO1xuYXR0cmlidXRlIHZlYzQgY29sb3I7XG5hdHRyaWJ1dGUgdmVjMiBnbHlwaDtcbmF0dHJpYnV0ZSB2ZWM0IGlkO1xuXG51bmlmb3JtIHZlYzQgaGlnaGxpZ2h0SWQ7XG51bmlmb3JtIGZsb2F0IGhpZ2hsaWdodFNjYWxlO1xudW5pZm9ybSBtYXQ0IG1vZGVsLCB2aWV3LCBwcm9qZWN0aW9uO1xudW5pZm9ybSB2ZWMzIGNsaXBCb3VuZHNbMl07XG5cbnZhcnlpbmcgdmVjNCBpbnRlcnBDb2xvcjtcbnZhcnlpbmcgdmVjNCBwaWNrSWQ7XG52YXJ5aW5nIHZlYzMgZGF0YUNvb3JkaW5hdGU7XG5cbnZvaWQgbWFpbigpIHtcbiAgaWYgKG91dE9mUmFuZ2UoY2xpcEJvdW5kc1swXSwgY2xpcEJvdW5kc1sxXSwgcG9zaXRpb24pKSB7XG5cbiAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMCwwLDAsMCk7XG4gIH0gZWxzZSB7XG4gICAgZmxvYXQgc2NhbGUgPSAxLjA7XG4gICAgaWYoZGlzdGFuY2UoaGlnaGxpZ2h0SWQsIGlkKSA8IDAuMDAwMSkge1xuICAgICAgc2NhbGUgPSBoaWdobGlnaHRTY2FsZTtcbiAgICB9XG5cbiAgICB2ZWM0IHdvcmxkUG9zaXRpb24gPSBtb2RlbCAqIHZlYzQocG9zaXRpb24sIDEpO1xuICAgIHZlYzQgdmlld1Bvc2l0aW9uID0gdmlldyAqIHdvcmxkUG9zaXRpb247XG4gICAgdmlld1Bvc2l0aW9uID0gdmlld1Bvc2l0aW9uIC8gdmlld1Bvc2l0aW9uLnc7XG4gICAgdmVjNCBjbGlwUG9zaXRpb24gPSBwcm9qZWN0aW9uICogKHZpZXdQb3NpdGlvbiArIHNjYWxlICogdmVjNChnbHlwaC54LCAtZ2x5cGgueSwgMCwgMCkpO1xuXG4gICAgZ2xfUG9zaXRpb24gPSBjbGlwUG9zaXRpb247XG4gICAgaW50ZXJwQ29sb3IgPSBjb2xvcjtcbiAgICBwaWNrSWQgPSBpZDtcbiAgICBkYXRhQ29vcmRpbmF0ZSA9IHBvc2l0aW9uO1xuICB9XG59Il0pLG89YShbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmJvb2wgb3V0T2ZSYW5nZShmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBwKSB7XG4gIHJldHVybiAoKHAgPiBtYXgoYSwgYikpIHx8IFxuICAgICAgICAgIChwIDwgbWluKGEsIGIpKSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMyIGEsIHZlYzIgYiwgdmVjMiBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMyBhLCB2ZWMzIGIsIHZlYzMgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnosIGIueiwgcC56KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWM0IGEsIHZlYzQgYiwgdmVjNCBwKSB7XG4gIHJldHVybiBvdXRPZlJhbmdlKGEueHl6LCBiLnh5eiwgcC54eXopO1xufVxuXG5hdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjtcbmF0dHJpYnV0ZSB2ZWM0IGNvbG9yO1xuYXR0cmlidXRlIHZlYzIgZ2x5cGg7XG5hdHRyaWJ1dGUgdmVjNCBpZDtcblxudW5pZm9ybSBtYXQ0IG1vZGVsLCB2aWV3LCBwcm9qZWN0aW9uO1xudW5pZm9ybSB2ZWMyIHNjcmVlblNpemU7XG51bmlmb3JtIHZlYzMgY2xpcEJvdW5kc1syXTtcbnVuaWZvcm0gZmxvYXQgaGlnaGxpZ2h0U2NhbGUsIHBpeGVsUmF0aW87XG51bmlmb3JtIHZlYzQgaGlnaGxpZ2h0SWQ7XG5cbnZhcnlpbmcgdmVjNCBpbnRlcnBDb2xvcjtcbnZhcnlpbmcgdmVjNCBwaWNrSWQ7XG52YXJ5aW5nIHZlYzMgZGF0YUNvb3JkaW5hdGU7XG5cbnZvaWQgbWFpbigpIHtcbiAgaWYgKG91dE9mUmFuZ2UoY2xpcEJvdW5kc1swXSwgY2xpcEJvdW5kc1sxXSwgcG9zaXRpb24pKSB7XG5cbiAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMCwwLDAsMCk7XG4gIH0gZWxzZSB7XG4gICAgZmxvYXQgc2NhbGUgPSBwaXhlbFJhdGlvO1xuICAgIGlmKGRpc3RhbmNlKGhpZ2hsaWdodElkLmJnciwgaWQuYmdyKSA8IDAuMDAxKSB7XG4gICAgICBzY2FsZSAqPSBoaWdobGlnaHRTY2FsZTtcbiAgICB9XG5cbiAgICB2ZWM0IHdvcmxkUG9zaXRpb24gPSBtb2RlbCAqIHZlYzQocG9zaXRpb24sIDEuMCk7XG4gICAgdmVjNCB2aWV3UG9zaXRpb24gPSB2aWV3ICogd29ybGRQb3NpdGlvbjtcbiAgICB2ZWM0IGNsaXBQb3NpdGlvbiA9IHByb2plY3Rpb24gKiB2aWV3UG9zaXRpb247XG4gICAgY2xpcFBvc2l0aW9uIC89IGNsaXBQb3NpdGlvbi53O1xuXG4gICAgZ2xfUG9zaXRpb24gPSBjbGlwUG9zaXRpb24gKyB2ZWM0KHNjcmVlblNpemUgKiBzY2FsZSAqIHZlYzIoZ2x5cGgueCwgLWdseXBoLnkpLCAwLjAsIDAuMCk7XG4gICAgaW50ZXJwQ29sb3IgPSBjb2xvcjtcbiAgICBwaWNrSWQgPSBpZDtcbiAgICBkYXRhQ29vcmRpbmF0ZSA9IHBvc2l0aW9uO1xuICB9XG59Il0pLHM9YShbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmJvb2wgb3V0T2ZSYW5nZShmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBwKSB7XG4gIHJldHVybiAoKHAgPiBtYXgoYSwgYikpIHx8IFxuICAgICAgICAgIChwIDwgbWluKGEsIGIpKSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMyIGEsIHZlYzIgYiwgdmVjMiBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMyBhLCB2ZWMzIGIsIHZlYzMgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnosIGIueiwgcC56KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWM0IGEsIHZlYzQgYiwgdmVjNCBwKSB7XG4gIHJldHVybiBvdXRPZlJhbmdlKGEueHl6LCBiLnh5eiwgcC54eXopO1xufVxuXG5hdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjtcbmF0dHJpYnV0ZSB2ZWM0IGNvbG9yO1xuYXR0cmlidXRlIHZlYzIgZ2x5cGg7XG5hdHRyaWJ1dGUgdmVjNCBpZDtcblxudW5pZm9ybSBmbG9hdCBoaWdobGlnaHRTY2FsZTtcbnVuaWZvcm0gdmVjNCBoaWdobGlnaHRJZDtcbnVuaWZvcm0gdmVjMyBheGVzWzJdO1xudW5pZm9ybSBtYXQ0IG1vZGVsLCB2aWV3LCBwcm9qZWN0aW9uO1xudW5pZm9ybSB2ZWMyIHNjcmVlblNpemU7XG51bmlmb3JtIHZlYzMgY2xpcEJvdW5kc1syXTtcbnVuaWZvcm0gZmxvYXQgc2NhbGUsIHBpeGVsUmF0aW87XG5cbnZhcnlpbmcgdmVjNCBpbnRlcnBDb2xvcjtcbnZhcnlpbmcgdmVjNCBwaWNrSWQ7XG52YXJ5aW5nIHZlYzMgZGF0YUNvb3JkaW5hdGU7XG5cbnZvaWQgbWFpbigpIHtcbiAgaWYgKG91dE9mUmFuZ2UoY2xpcEJvdW5kc1swXSwgY2xpcEJvdW5kc1sxXSwgcG9zaXRpb24pKSB7XG5cbiAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMCwwLDAsMCk7XG4gIH0gZWxzZSB7XG4gICAgZmxvYXQgbHNjYWxlID0gcGl4ZWxSYXRpbyAqIHNjYWxlO1xuICAgIGlmKGRpc3RhbmNlKGhpZ2hsaWdodElkLCBpZCkgPCAwLjAwMDEpIHtcbiAgICAgIGxzY2FsZSAqPSBoaWdobGlnaHRTY2FsZTtcbiAgICB9XG5cbiAgICB2ZWM0IGNsaXBDZW50ZXIgICA9IHByb2plY3Rpb24gKiB2aWV3ICogbW9kZWwgKiB2ZWM0KHBvc2l0aW9uLCAxKTtcbiAgICB2ZWMzIGRhdGFQb3NpdGlvbiA9IHBvc2l0aW9uICsgMC41KmxzY2FsZSooYXhlc1swXSAqIGdseXBoLnggKyBheGVzWzFdICogZ2x5cGgueSkgKiBjbGlwQ2VudGVyLncgKiBzY3JlZW5TaXplLnk7XG4gICAgdmVjNCBjbGlwUG9zaXRpb24gPSBwcm9qZWN0aW9uICogdmlldyAqIG1vZGVsICogdmVjNChkYXRhUG9zaXRpb24sIDEpO1xuXG4gICAgZ2xfUG9zaXRpb24gPSBjbGlwUG9zaXRpb247XG4gICAgaW50ZXJwQ29sb3IgPSBjb2xvcjtcbiAgICBwaWNrSWQgPSBpZDtcbiAgICBkYXRhQ29vcmRpbmF0ZSA9IGRhdGFQb3NpdGlvbjtcbiAgfVxufVxuIl0pLGw9YShbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmJvb2wgb3V0T2ZSYW5nZShmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBwKSB7XG4gIHJldHVybiAoKHAgPiBtYXgoYSwgYikpIHx8IFxuICAgICAgICAgIChwIDwgbWluKGEsIGIpKSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMyIGEsIHZlYzIgYiwgdmVjMiBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMyBhLCB2ZWMzIGIsIHZlYzMgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnosIGIueiwgcC56KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWM0IGEsIHZlYzQgYiwgdmVjNCBwKSB7XG4gIHJldHVybiBvdXRPZlJhbmdlKGEueHl6LCBiLnh5eiwgcC54eXopO1xufVxuXG51bmlmb3JtIHZlYzMgZnJhZ0NsaXBCb3VuZHNbMl07XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG5cbnZhcnlpbmcgdmVjNCBpbnRlcnBDb2xvcjtcbnZhcnlpbmcgdmVjMyBkYXRhQ29vcmRpbmF0ZTtcblxudm9pZCBtYWluKCkge1xuICBpZiAoXG4gICAgb3V0T2ZSYW5nZShmcmFnQ2xpcEJvdW5kc1swXSwgZnJhZ0NsaXBCb3VuZHNbMV0sIGRhdGFDb29yZGluYXRlKSB8fFxuICAgIGludGVycENvbG9yLmEgKiBvcGFjaXR5ID09IDAuXG4gICkgZGlzY2FyZDtcbiAgZ2xfRnJhZ0NvbG9yID0gaW50ZXJwQ29sb3IgKiBvcGFjaXR5O1xufVxuIl0pLGM9YShbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmJvb2wgb3V0T2ZSYW5nZShmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBwKSB7XG4gIHJldHVybiAoKHAgPiBtYXgoYSwgYikpIHx8IFxuICAgICAgICAgIChwIDwgbWluKGEsIGIpKSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMyIGEsIHZlYzIgYiwgdmVjMiBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMyBhLCB2ZWMzIGIsIHZlYzMgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnosIGIueiwgcC56KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWM0IGEsIHZlYzQgYiwgdmVjNCBwKSB7XG4gIHJldHVybiBvdXRPZlJhbmdlKGEueHl6LCBiLnh5eiwgcC54eXopO1xufVxuXG51bmlmb3JtIHZlYzMgZnJhZ0NsaXBCb3VuZHNbMl07XG51bmlmb3JtIGZsb2F0IHBpY2tHcm91cDtcblxudmFyeWluZyB2ZWM0IHBpY2tJZDtcbnZhcnlpbmcgdmVjMyBkYXRhQ29vcmRpbmF0ZTtcblxudm9pZCBtYWluKCkge1xuICBpZiAob3V0T2ZSYW5nZShmcmFnQ2xpcEJvdW5kc1swXSwgZnJhZ0NsaXBCb3VuZHNbMV0sIGRhdGFDb29yZGluYXRlKSkgZGlzY2FyZDtcblxuICBnbF9GcmFnQ29sb3IgPSB2ZWM0KHBpY2tHcm91cCwgcGlja0lkLmJncik7XG59Il0pLHU9W3tuYW1lOiJwb3NpdGlvbiIsdHlwZToidmVjMyJ9LHtuYW1lOiJjb2xvciIsdHlwZToidmVjNCJ9LHtuYW1lOiJnbHlwaCIsdHlwZToidmVjMiJ9LHtuYW1lOiJpZCIsdHlwZToidmVjNCJ9XSxoPXt2ZXJ0ZXg6aSxmcmFnbWVudDpsLGF0dHJpYnV0ZXM6dX0sZj17dmVydGV4Om8sZnJhZ21lbnQ6bCxhdHRyaWJ1dGVzOnV9LHA9e3ZlcnRleDpzLGZyYWdtZW50OmwsYXR0cmlidXRlczp1fSxkPXt2ZXJ0ZXg6aSxmcmFnbWVudDpjLGF0dHJpYnV0ZXM6dX0sZz17dmVydGV4Om8sZnJhZ21lbnQ6YyxhdHRyaWJ1dGVzOnV9LHY9e3ZlcnRleDpzLGZyYWdtZW50OmMsYXR0cmlidXRlczp1fTtmdW5jdGlvbiBtKHQsZSl7dmFyIHI9bih0LGUpLGE9ci5hdHRyaWJ1dGVzO3JldHVybiBhLnBvc2l0aW9uLmxvY2F0aW9uPTAsYS5jb2xvci5sb2NhdGlvbj0xLGEuZ2x5cGgubG9jYXRpb249MixhLmlkLmxvY2F0aW9uPTMscn1yLmNyZWF0ZVBlcnNwZWN0aXZlPWZ1bmN0aW9uKHQpe3JldHVybiBtKHQsaCl9LHIuY3JlYXRlT3J0aG89ZnVuY3Rpb24odCl7cmV0dXJuIG0odCxmKX0sci5jcmVhdGVQcm9qZWN0PWZ1bmN0aW9uKHQpe3JldHVybiBtKHQscCl9LHIuY3JlYXRlUGlja1BlcnNwZWN0aXZlPWZ1bmN0aW9uKHQpe3JldHVybiBtKHQsZCl9LHIuY3JlYXRlUGlja09ydGhvPWZ1bmN0aW9uKHQpe3JldHVybiBtKHQsZyl9LHIuY3JlYXRlUGlja1Byb2plY3Q9ZnVuY3Rpb24odCl7cmV0dXJuIG0odCx2KX19LHsiZ2wtc2hhZGVyIjozMDQsZ2xzbGlmeTo0MTF9XSwzMDA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiaXMtc3RyaW5nLWJsYW5rIiksYT10KCJnbC1idWZmZXIiKSxpPXQoImdsLXZhbyIpLG89dCgidHlwZWRhcnJheS1wb29sIikscz10KCJnbC1tYXQ0L211bHRpcGx5IiksbD10KCIuL2xpYi9zaGFkZXJzIiksYz10KCIuL2xpYi9nbHlwaHMiKSx1PXQoIi4vbGliL2dldC1zaW1wbGUtc3RyaW5nIiksaD1bMSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMV07ZnVuY3Rpb24gZih0LGUpe3ZhciByPXRbMF0sbj10WzFdLGE9dFsyXSxpPXRbM107cmV0dXJuIHRbMF09ZVswXSpyK2VbNF0qbitlWzhdKmErZVsxMl0qaSx0WzFdPWVbMV0qcitlWzVdKm4rZVs5XSphK2VbMTNdKmksdFsyXT1lWzJdKnIrZVs2XSpuK2VbMTBdKmErZVsxNF0qaSx0WzNdPWVbM10qcitlWzddKm4rZVsxMV0qYStlWzE1XSppLHR9ZnVuY3Rpb24gcCh0LGUscixuKXtyZXR1cm4gZihuLG4pLGYobixuKSxmKG4sbil9ZnVuY3Rpb24gZCh0LGUpe3RoaXMuaW5kZXg9dCx0aGlzLmRhdGFDb29yZGluYXRlPXRoaXMucG9zaXRpb249ZX1mdW5jdGlvbiBnKHQpe3JldHVybiEwPT09dD8xOnQ+MT8xOnR9ZnVuY3Rpb24gdih0LGUscixuLGEsaSxvLHMsbCxjLHUsaCl7dGhpcy5nbD10LHRoaXMucGl4ZWxSYXRpbz0xLHRoaXMuc2hhZGVyPWUsdGhpcy5vcnRob1NoYWRlcj1yLHRoaXMucHJvamVjdFNoYWRlcj1uLHRoaXMucG9pbnRCdWZmZXI9YSx0aGlzLmNvbG9yQnVmZmVyPWksdGhpcy5nbHlwaEJ1ZmZlcj1vLHRoaXMuaWRCdWZmZXI9cyx0aGlzLnZhbz1sLHRoaXMudmVydGV4Q291bnQ9MCx0aGlzLmxpbmVWZXJ0ZXhDb3VudD0wLHRoaXMub3BhY2l0eT0xLHRoaXMuaGFzQWxwaGE9ITEsdGhpcy5saW5lV2lkdGg9MCx0aGlzLnByb2plY3RTY2FsZT1bMi8zLDIvMywyLzNdLHRoaXMucHJvamVjdE9wYWNpdHk9WzEsMSwxXSx0aGlzLnByb2plY3RIYXNBbHBoYT0hMSx0aGlzLnBpY2tJZD0wLHRoaXMucGlja1BlcnNwZWN0aXZlU2hhZGVyPWMsdGhpcy5waWNrT3J0aG9TaGFkZXI9dSx0aGlzLnBpY2tQcm9qZWN0U2hhZGVyPWgsdGhpcy5wb2ludHM9W10sdGhpcy5fc2VsZWN0UmVzdWx0PW5ldyBkKDAsWzAsMCwwXSksdGhpcy51c2VPcnRobz0hMCx0aGlzLmJvdW5kcz1bWzEvMCwxLzAsMS8wXSxbLTEvMCwtMS8wLC0xLzBdXSx0aGlzLmF4ZXNQcm9qZWN0PVshMCwhMCwhMF0sdGhpcy5heGVzQm91bmRzPVtbLTEvMCwtMS8wLC0xLzBdLFsxLzAsMS8wLDEvMF1dLHRoaXMuaGlnaGxpZ2h0SWQ9WzEsMSwxLDFdLHRoaXMuaGlnaGxpZ2h0U2NhbGU9Mix0aGlzLmNsaXBCb3VuZHM9W1stMS8wLC0xLzAsLTEvMF0sWzEvMCwxLzAsMS8wXV0sdGhpcy5kaXJ0eT0hMH1lLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5nbCxyPWwuY3JlYXRlUGVyc3BlY3RpdmUoZSksbj1sLmNyZWF0ZU9ydGhvKGUpLG89bC5jcmVhdGVQcm9qZWN0KGUpLHM9bC5jcmVhdGVQaWNrUGVyc3BlY3RpdmUoZSksYz1sLmNyZWF0ZVBpY2tPcnRobyhlKSx1PWwuY3JlYXRlUGlja1Byb2plY3QoZSksaD1hKGUpLGY9YShlKSxwPWEoZSksZD1hKGUpLGc9aShlLFt7YnVmZmVyOmgsc2l6ZTozLHR5cGU6ZS5GTE9BVH0se2J1ZmZlcjpmLHNpemU6NCx0eXBlOmUuRkxPQVR9LHtidWZmZXI6cCxzaXplOjIsdHlwZTplLkZMT0FUfSx7YnVmZmVyOmQsc2l6ZTo0LHR5cGU6ZS5VTlNJR05FRF9CWVRFLG5vcm1hbGl6ZWQ6ITB9XSksbT1uZXcgdihlLHIsbixvLGgsZixwLGQsZyxzLGMsdSk7cmV0dXJuIG0udXBkYXRlKHQpLG19O3ZhciBtPXYucHJvdG90eXBlO20ucGlja1Nsb3RzPTEsbS5zZXRQaWNrQmFzZT1mdW5jdGlvbih0KXt0aGlzLnBpY2tJZD10fSxtLmlzVHJhbnNwYXJlbnQ9ZnVuY3Rpb24oKXtpZih0aGlzLmhhc0FscGhhKXJldHVybiEwO2Zvcih2YXIgdD0wO3Q8MzsrK3QpaWYodGhpcy5heGVzUHJvamVjdFt0XSYmdGhpcy5wcm9qZWN0SGFzQWxwaGEpcmV0dXJuITA7cmV0dXJuITF9LG0uaXNPcGFxdWU9ZnVuY3Rpb24oKXtpZighdGhpcy5oYXNBbHBoYSlyZXR1cm4hMDtmb3IodmFyIHQ9MDt0PDM7Kyt0KWlmKHRoaXMuYXhlc1Byb2plY3RbdF0mJiF0aGlzLnByb2plY3RIYXNBbHBoYSlyZXR1cm4hMDtyZXR1cm4hMX07dmFyIHk9WzAsMF0seD1bMCwwLDBdLGI9WzAsMCwwXSxfPVswLDAsMCwxXSx3PVswLDAsMCwxXSxrPWguc2xpY2UoKSxUPVswLDAsMF0sTT1bWzAsMCwwXSxbMCwwLDBdXTtmdW5jdGlvbiBBKHQpe3JldHVybiB0WzBdPXRbMV09dFsyXT0wLHR9ZnVuY3Rpb24gUyh0LGUpe3JldHVybiB0WzBdPWVbMF0sdFsxXT1lWzFdLHRbMl09ZVsyXSx0WzNdPTEsdH1mdW5jdGlvbiBFKHQsZSxyLG4pe3JldHVybiB0WzBdPWVbMF0sdFsxXT1lWzFdLHRbMl09ZVsyXSx0W3JdPW4sdH1mdW5jdGlvbiBMKHQsZSxyLG4pe3ZhciBhLGk9ZS5heGVzUHJvamVjdCxvPWUuZ2wsbD10LnVuaWZvcm1zLGM9ci5tb2RlbHx8aCx1PXIudmlld3x8aCxmPXIucHJvamVjdGlvbnx8aCxkPWUuYXhlc0JvdW5kcyxnPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1NLHI9MDtyPDI7KytyKWZvcih2YXIgbj0wO248MzsrK24pZVtyXVtuXT1NYXRoLm1heChNYXRoLm1pbih0W3JdW25dLDFlOCksLTFlOCk7cmV0dXJuIGV9KGUuY2xpcEJvdW5kcyk7YT1lLmF4ZXMmJmUuYXhlcy5sYXN0Q3ViZVByb3BzP2UuYXhlcy5sYXN0Q3ViZVByb3BzLmF4aXM6WzEsMSwxXSx5WzBdPTIvby5kcmF3aW5nQnVmZmVyV2lkdGgseVsxXT0yL28uZHJhd2luZ0J1ZmZlckhlaWdodCx0LmJpbmQoKSxsLnZpZXc9dSxsLnByb2plY3Rpb249ZixsLnNjcmVlblNpemU9eSxsLmhpZ2hsaWdodElkPWUuaGlnaGxpZ2h0SWQsbC5oaWdobGlnaHRTY2FsZT1lLmhpZ2hsaWdodFNjYWxlLGwuY2xpcEJvdW5kcz1nLGwucGlja0dyb3VwPWUucGlja0lkLzI1NSxsLnBpeGVsUmF0aW89bjtmb3IodmFyIHY9MDt2PDM7Kyt2KWlmKGlbdl0pe2wuc2NhbGU9ZS5wcm9qZWN0U2NhbGVbdl0sbC5vcGFjaXR5PWUucHJvamVjdE9wYWNpdHlbdl07Zm9yKHZhciBtPWssTD0wO0w8MTY7KytMKW1bTF09MDtmb3IoTD0wO0w8NDsrK0wpbVs1KkxdPTE7bVs1KnZdPTAsYVt2XTwwP21bMTIrdl09ZFswXVt2XTptWzEyK3ZdPWRbMV1bdl0scyhtLGMsbSksbC5tb2RlbD1tO3ZhciBDPSh2KzEpJTMsUD0odisyKSUzLE89QSh4KSx6PUEoYik7T1tDXT0xLHpbUF09MTt2YXIgST1wKDAsMCwwLFMoXyxPKSksRD1wKDAsMCwwLFModyx6KSk7aWYoTWF0aC5hYnMoSVsxXSk+TWF0aC5hYnMoRFsxXSkpe3ZhciBSPUk7ST1ELEQ9UixSPU8sTz16LHo9Ujt2YXIgRj1DO0M9UCxQPUZ9SVswXTwwJiYoT1tDXT0tMSksRFsxXT4wJiYoeltQXT0tMSk7dmFyIEI9MCxOPTA7Zm9yKEw9MDtMPDQ7KytMKUIrPU1hdGgucG93KGNbNCpDK0xdLDIpLE4rPU1hdGgucG93KGNbNCpQK0xdLDIpO09bQ10vPU1hdGguc3FydChCKSx6W1BdLz1NYXRoLnNxcnQoTiksbC5heGVzWzBdPU8sbC5heGVzWzFdPXosbC5mcmFnQ2xpcEJvdW5kc1swXT1FKFQsZ1swXSx2LC0xZTgpLGwuZnJhZ0NsaXBCb3VuZHNbMV09RShULGdbMV0sdiwxZTgpLGUudmFvLmJpbmQoKSxlLnZhby5kcmF3KG8uVFJJQU5HTEVTLGUudmVydGV4Q291bnQpLGUubGluZVdpZHRoPjAmJihvLmxpbmVXaWR0aChlLmxpbmVXaWR0aCpuKSxlLnZhby5kcmF3KG8uTElORVMsZS5saW5lVmVydGV4Q291bnQsZS52ZXJ0ZXhDb3VudCkpLGUudmFvLnVuYmluZCgpfX12YXIgQz1bWy0xZTgsLTFlOCwtMWU4XSxbMWU4LDFlOCwxZThdXTtmdW5jdGlvbiBQKHQsZSxyLG4sYSxpLG8pe3ZhciBzPXIuZ2w7aWYoKGk9PT1yLnByb2plY3RIYXNBbHBoYXx8bykmJkwoZSxyLG4sYSksaT09PXIuaGFzQWxwaGF8fG8pe3QuYmluZCgpO3ZhciBsPXQudW5pZm9ybXM7bC5tb2RlbD1uLm1vZGVsfHxoLGwudmlldz1uLnZpZXd8fGgsbC5wcm9qZWN0aW9uPW4ucHJvamVjdGlvbnx8aCx5WzBdPTIvcy5kcmF3aW5nQnVmZmVyV2lkdGgseVsxXT0yL3MuZHJhd2luZ0J1ZmZlckhlaWdodCxsLnNjcmVlblNpemU9eSxsLmhpZ2hsaWdodElkPXIuaGlnaGxpZ2h0SWQsbC5oaWdobGlnaHRTY2FsZT1yLmhpZ2hsaWdodFNjYWxlLGwuZnJhZ0NsaXBCb3VuZHM9QyxsLmNsaXBCb3VuZHM9ci5heGVzLmJvdW5kcyxsLm9wYWNpdHk9ci5vcGFjaXR5LGwucGlja0dyb3VwPXIucGlja0lkLzI1NSxsLnBpeGVsUmF0aW89YSxyLnZhby5iaW5kKCksci52YW8uZHJhdyhzLlRSSUFOR0xFUyxyLnZlcnRleENvdW50KSxyLmxpbmVXaWR0aD4wJiYocy5saW5lV2lkdGgoci5saW5lV2lkdGgqYSksci52YW8uZHJhdyhzLkxJTkVTLHIubGluZVZlcnRleENvdW50LHIudmVydGV4Q291bnQpKSxyLnZhby51bmJpbmQoKX19ZnVuY3Rpb24gTyh0LGUscixhKXt2YXIgaTtpPUFycmF5LmlzQXJyYXkodCk/ZTx0Lmxlbmd0aD90W2VdOnZvaWQgMDp0LGk9dShpKTt2YXIgbz0hMDtuKGkpJiYoaT0iXHUyNWJjIixvPSExKTt2YXIgcz1jKGkscixhKTtyZXR1cm57bWVzaDpzWzBdLGxpbmVzOnNbMV0sYm91bmRzOnNbMl0sdmlzaWJsZTpvfX1tLmRyYXc9ZnVuY3Rpb24odCl7UCh0aGlzLnVzZU9ydGhvP3RoaXMub3J0aG9TaGFkZXI6dGhpcy5zaGFkZXIsdGhpcy5wcm9qZWN0U2hhZGVyLHRoaXMsdCx0aGlzLnBpeGVsUmF0aW8sITEsITEpfSxtLmRyYXdUcmFuc3BhcmVudD1mdW5jdGlvbih0KXtQKHRoaXMudXNlT3J0aG8/dGhpcy5vcnRob1NoYWRlcjp0aGlzLnNoYWRlcix0aGlzLnByb2plY3RTaGFkZXIsdGhpcyx0LHRoaXMucGl4ZWxSYXRpbywhMCwhMSl9LG0uZHJhd1BpY2s9ZnVuY3Rpb24odCl7UCh0aGlzLnVzZU9ydGhvP3RoaXMucGlja09ydGhvU2hhZGVyOnRoaXMucGlja1BlcnNwZWN0aXZlU2hhZGVyLHRoaXMucGlja1Byb2plY3RTaGFkZXIsdGhpcyx0LDEsITAsITApfSxtLnBpY2s9ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuIG51bGw7aWYodC5pZCE9PXRoaXMucGlja0lkKXJldHVybiBudWxsO3ZhciBlPXQudmFsdWVbMl0rKHQudmFsdWVbMV08PDgpKyh0LnZhbHVlWzBdPDwxNik7aWYoZT49dGhpcy5wb2ludENvdW50fHxlPDApcmV0dXJuIG51bGw7dmFyIHI9dGhpcy5wb2ludHNbZV0sbj10aGlzLl9zZWxlY3RSZXN1bHQ7bi5pbmRleD1lO2Zvcih2YXIgYT0wO2E8MzsrK2Epbi5wb3NpdGlvblthXT1uLmRhdGFDb29yZGluYXRlW2FdPXJbYV07cmV0dXJuIG59LG0uaGlnaGxpZ2h0PWZ1bmN0aW9uKHQpe2lmKHQpe3ZhciBlPXQuaW5kZXgscj0yNTUmZSxuPWU+PjgmMjU1LGE9ZT4+MTYmMjU1O3RoaXMuaGlnaGxpZ2h0SWQ9W3IvMjU1LG4vMjU1LGEvMjU1LDBdfWVsc2UgdGhpcy5oaWdobGlnaHRJZD1bMSwxLDEsMV19LG0udXBkYXRlPWZ1bmN0aW9uKHQpe2lmKCJwZXJzcGVjdGl2ZSJpbih0PXR8fHt9KSYmKHRoaXMudXNlT3J0aG89IXQucGVyc3BlY3RpdmUpLCJvcnRob2dyYXBoaWMiaW4gdCYmKHRoaXMudXNlT3J0aG89ISF0Lm9ydGhvZ3JhcGhpYyksImxpbmVXaWR0aCJpbiB0JiYodGhpcy5saW5lV2lkdGg9dC5saW5lV2lkdGgpLCJwcm9qZWN0ImluIHQpaWYoQXJyYXkuaXNBcnJheSh0LnByb2plY3QpKXRoaXMuYXhlc1Byb2plY3Q9dC5wcm9qZWN0O2Vsc2V7dmFyIGU9ISF0LnByb2plY3Q7dGhpcy5heGVzUHJvamVjdD1bZSxlLGVdfWlmKCJwcm9qZWN0U2NhbGUiaW4gdClpZihBcnJheS5pc0FycmF5KHQucHJvamVjdFNjYWxlKSl0aGlzLnByb2plY3RTY2FsZT10LnByb2plY3RTY2FsZS5zbGljZSgpO2Vsc2V7dmFyIHI9K3QucHJvamVjdFNjYWxlO3RoaXMucHJvamVjdFNjYWxlPVtyLHIscl19aWYodGhpcy5wcm9qZWN0SGFzQWxwaGE9ITEsInByb2plY3RPcGFjaXR5ImluIHQpe2lmKEFycmF5LmlzQXJyYXkodC5wcm9qZWN0T3BhY2l0eSkpdGhpcy5wcm9qZWN0T3BhY2l0eT10LnByb2plY3RPcGFjaXR5LnNsaWNlKCk7ZWxzZXtyPSt0LnByb2plY3RPcGFjaXR5O3RoaXMucHJvamVjdE9wYWNpdHk9W3IscixyXX1mb3IodmFyIG49MDtuPDM7KytuKXRoaXMucHJvamVjdE9wYWNpdHlbbl09Zyh0aGlzLnByb2plY3RPcGFjaXR5W25dKSx0aGlzLnByb2plY3RPcGFjaXR5W25dPDEmJih0aGlzLnByb2plY3RIYXNBbHBoYT0hMCl9dGhpcy5oYXNBbHBoYT0hMSwib3BhY2l0eSJpbiB0JiYodGhpcy5vcGFjaXR5PWcodC5vcGFjaXR5KSx0aGlzLm9wYWNpdHk8MSYmKHRoaXMuaGFzQWxwaGE9ITApKSx0aGlzLmRpcnR5PSEwO3ZhciBhLGkscz10LnBvc2l0aW9uLGw9dC5mb250fHwibm9ybWFsIixjPXQuYWxpZ25tZW50fHxbMCwwXTtpZigyPT09Yy5sZW5ndGgpYT1jWzBdLGk9Y1sxXTtlbHNle2E9W10saT1bXTtmb3Iobj0wO248Yy5sZW5ndGg7KytuKWFbbl09Y1tuXVswXSxpW25dPWNbbl1bMV19dmFyIHU9WzEvMCwxLzAsMS8wXSxoPVstMS8wLC0xLzAsLTEvMF0sZj10LmdseXBoLHA9dC5jb2xvcixkPXQuc2l6ZSx2PXQuYW5nbGUsbT10LmxpbmVDb2xvcix5PS0xLHg9MCxiPTAsXz0wO2lmKHMubGVuZ3RoKXtfPXMubGVuZ3RoO3Q6Zm9yKG49MDtuPF87KytuKXtmb3IodmFyIHc9c1tuXSxrPTA7azwzOysraylpZihpc05hTih3W2tdKXx8IWlzRmluaXRlKHdba10pKWNvbnRpbnVlIHQ7dmFyIFQ9KE49TyhmLG4sbCx0aGlzLnBpeGVsUmF0aW8pKS5tZXNoLE09Ti5saW5lcyxBPU4uYm91bmRzO3grPTMqVC5jZWxscy5sZW5ndGgsYis9MipNLmVkZ2VzLmxlbmd0aH19dmFyIFM9eCtiLEU9by5tYWxsb2NGbG9hdCgzKlMpLEw9by5tYWxsb2NGbG9hdCg0KlMpLEM9by5tYWxsb2NGbG9hdCgyKlMpLFA9by5tYWxsb2NVaW50MzIoUyk7aWYoUz4wKXt2YXIgej0wLEk9eCxEPVswLDAsMCwxXSxSPVswLDAsMCwxXSxGPUFycmF5LmlzQXJyYXkocCkmJkFycmF5LmlzQXJyYXkocFswXSksQj1BcnJheS5pc0FycmF5KG0pJiZBcnJheS5pc0FycmF5KG1bMF0pO3Q6Zm9yKG49MDtuPF87KytuKXt5Kz0xO2Zvcih3PXNbbl0saz0wO2s8MzsrK2spe2lmKGlzTmFOKHdba10pfHwhaXNGaW5pdGUod1trXSkpY29udGludWUgdDtoW2tdPU1hdGgubWF4KGhba10sd1trXSksdVtrXT1NYXRoLm1pbih1W2tdLHdba10pfVQ9KE49TyhmLG4sbCx0aGlzLnBpeGVsUmF0aW8pKS5tZXNoLE09Ti5saW5lcyxBPU4uYm91bmRzO3ZhciBOLGo9Ti52aXNpYmxlO2lmKGopaWYoQXJyYXkuaXNBcnJheShwKSl7aWYoMz09PShWPUY/bjxwLmxlbmd0aD9wW25dOlswLDAsMCwwXTpwKS5sZW5ndGgpe2ZvcihrPTA7azwzOysraylEW2tdPVZba107RFszXT0xfWVsc2UgaWYoND09PVYubGVuZ3RoKXtmb3Ioaz0wO2s8NDsrK2spRFtrXT1WW2tdOyF0aGlzLmhhc0FscGhhJiZWWzNdPDEmJih0aGlzLmhhc0FscGhhPSEwKX19ZWxzZSBEWzBdPURbMV09RFsyXT0wLERbM109MTtlbHNlIEQ9WzEsMSwxLDBdO2lmKGopaWYoQXJyYXkuaXNBcnJheShtKSl7dmFyIFY7aWYoMz09PShWPUI/bjxtLmxlbmd0aD9tW25dOlswLDAsMCwwXTptKS5sZW5ndGgpe2ZvcihrPTA7azwzOysraylSW2tdPVZba107UltrXT0xfWVsc2UgaWYoND09PVYubGVuZ3RoKXtmb3Ioaz0wO2s8NDsrK2spUltrXT1WW2tdOyF0aGlzLmhhc0FscGhhJiZWWzNdPDEmJih0aGlzLmhhc0FscGhhPSEwKX19ZWxzZSBSWzBdPVJbMV09UlsyXT0wLFJbM109MTtlbHNlIFI9WzEsMSwxLDBdO3ZhciBVPS41O2o/QXJyYXkuaXNBcnJheShkKT9VPW48ZC5sZW5ndGg/K2Rbbl06MTI6ZD9VPStkOnRoaXMudXNlT3J0aG8mJihVPTEyKTpVPTA7dmFyIHE9MDtBcnJheS5pc0FycmF5KHYpP3E9bjx2Lmxlbmd0aD8rdltuXTowOnYmJihxPSt2KTt2YXIgSD1NYXRoLmNvcyhxKSxHPU1hdGguc2luKHEpO2Zvcih3PXNbbl0saz0wO2s8MzsrK2spaFtrXT1NYXRoLm1heChoW2tdLHdba10pLHVba109TWF0aC5taW4odVtrXSx3W2tdKTt2YXIgWT1hLFc9aTtZPTA7QXJyYXkuaXNBcnJheShhKT9ZPW48YS5sZW5ndGg/YVtuXTowOmEmJihZPWEpO1c9MDtBcnJheS5pc0FycmF5KGkpP1c9bjxpLmxlbmd0aD9pW25dOjA6aSYmKFc9aSk7dmFyIFg9W1kqPVk+MD8xLUFbMF1bMF06WTwwPzErQVsxXVswXToxLFcqPVc+MD8xLUFbMF1bMV06VzwwPzErQVsxXVsxXToxXSxaPVQuY2VsbHN8fFtdLEo9VC5wb3NpdGlvbnN8fFtdO2ZvcihrPTA7azxaLmxlbmd0aDsrK2spZm9yKHZhciBLPVpba10sUT0wO1E8MzsrK1Epe2Zvcih2YXIgJD0wOyQ8MzsrKyQpRVszKnorJF09d1skXTtmb3IoJD0wOyQ8NDsrKyQpTFs0KnorJF09RFskXTtQW3pdPXk7dmFyIHR0PUpbS1tRXV07Q1syKnpdPVUqKEgqdHRbMF0tRyp0dFsxXStYWzBdKSxDWzIqeisxXT1VKihHKnR0WzBdK0gqdHRbMV0rWFsxXSkseis9MX1mb3IoWj1NLmVkZ2VzLEo9TS5wb3NpdGlvbnMsaz0wO2s8Wi5sZW5ndGg7KytrKWZvcihLPVpba10sUT0wO1E8MjsrK1Epe2ZvcigkPTA7JDwzOysrJClFWzMqSSskXT13WyRdO2ZvcigkPTA7JDw0OysrJClMWzQqSSskXT1SWyRdO1BbSV09eTt0dD1KW0tbUV1dO0NbMipJXT1VKihIKnR0WzBdLUcqdHRbMV0rWFswXSksQ1syKkkrMV09VSooRyp0dFswXStIKnR0WzFdK1hbMV0pLEkrPTF9fX10aGlzLmJvdW5kcz1bdSxoXSx0aGlzLnBvaW50cz1zLHRoaXMucG9pbnRDb3VudD1zLmxlbmd0aCx0aGlzLnZlcnRleENvdW50PXgsdGhpcy5saW5lVmVydGV4Q291bnQ9Yix0aGlzLnBvaW50QnVmZmVyLnVwZGF0ZShFKSx0aGlzLmNvbG9yQnVmZmVyLnVwZGF0ZShMKSx0aGlzLmdseXBoQnVmZmVyLnVwZGF0ZShDKSx0aGlzLmlkQnVmZmVyLnVwZGF0ZShQKSxvLmZyZWUoRSksby5mcmVlKEwpLG8uZnJlZShDKSxvLmZyZWUoUCl9LG0uZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuc2hhZGVyLmRpc3Bvc2UoKSx0aGlzLm9ydGhvU2hhZGVyLmRpc3Bvc2UoKSx0aGlzLnBpY2tQZXJzcGVjdGl2ZVNoYWRlci5kaXNwb3NlKCksdGhpcy5waWNrT3J0aG9TaGFkZXIuZGlzcG9zZSgpLHRoaXMudmFvLmRpc3Bvc2UoKSx0aGlzLnBvaW50QnVmZmVyLmRpc3Bvc2UoKSx0aGlzLmNvbG9yQnVmZmVyLmRpc3Bvc2UoKSx0aGlzLmdseXBoQnVmZmVyLmRpc3Bvc2UoKSx0aGlzLmlkQnVmZmVyLmRpc3Bvc2UoKX19LHsiLi9saWIvZ2V0LXNpbXBsZS1zdHJpbmciOjI5NywiLi9saWIvZ2x5cGhzIjoyOTgsIi4vbGliL3NoYWRlcnMiOjI5OSwiZ2wtYnVmZmVyIjoyNDQsImdsLW1hdDQvbXVsdGlwbHkiOjI3MCwiZ2wtdmFvIjozMjksImlzLXN0cmluZy1ibGFuayI6NDI1LCJ0eXBlZGFycmF5LXBvb2wiOjU0NH1dLDMwMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJnbHNsaWZ5Iik7ci5ib3hWZXJ0ZXg9bihbInByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzIgdmVydGV4O1xuXG51bmlmb3JtIHZlYzIgY29ybmVyQSwgY29ybmVyQjtcblxudm9pZCBtYWluKCkge1xuICBnbF9Qb3NpdGlvbiA9IHZlYzQobWl4KGNvcm5lckEsIGNvcm5lckIsIHZlcnRleCksIDAsIDEpO1xufVxuIl0pLHIuYm94RnJhZ21lbnQ9bihbInByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudW5pZm9ybSB2ZWM0IGNvbG9yO1xuXG52b2lkIG1haW4oKSB7XG4gIGdsX0ZyYWdDb2xvciA9IGNvbG9yO1xufVxuIl0pfSx7Z2xzbGlmeTo0MTF9XSwzMDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZ2wtc2hhZGVyIiksYT10KCJnbC1idWZmZXIiKSxpPXQoIi4vbGliL3NoYWRlcnMiKTtmdW5jdGlvbiBvKHQsZSxyKXt0aGlzLnBsb3Q9dCx0aGlzLmJveEJ1ZmZlcj1lLHRoaXMuYm94U2hhZGVyPXIsdGhpcy5lbmFibGVkPSEwLHRoaXMuc2VsZWN0Qm94PVsxLzAsMS8wLC0xLzAsLTEvMF0sdGhpcy5ib3JkZXJDb2xvcj1bMCwwLDAsMV0sdGhpcy5pbm5lckZpbGw9ITEsdGhpcy5pbm5lckNvbG9yPVswLDAsMCwuMjVdLHRoaXMub3V0ZXJGaWxsPSEwLHRoaXMub3V0ZXJDb2xvcj1bMCwwLDAsLjVdLHRoaXMuYm9yZGVyV2lkdGg9MTB9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5nbCxzPWEocixbMCwwLDAsMSwxLDAsMSwxXSksbD1uKHIsaS5ib3hWZXJ0ZXgsaS5ib3hGcmFnbWVudCksYz1uZXcgbyh0LHMsbCk7cmV0dXJuIGMudXBkYXRlKGUpLHQuYWRkT3ZlcmxheShjKSxjfTt2YXIgcz1vLnByb3RvdHlwZTtzLmRyYXc9ZnVuY3Rpb24oKXtpZih0aGlzLmVuYWJsZWQpe3ZhciB0PXRoaXMucGxvdCxlPXRoaXMuc2VsZWN0Qm94LHI9dGhpcy5ib3JkZXJXaWR0aCxuPSh0aGlzLmlubmVyRmlsbCx0aGlzLmlubmVyQ29sb3IpLGE9KHRoaXMub3V0ZXJGaWxsLHRoaXMub3V0ZXJDb2xvciksaT10aGlzLmJvcmRlckNvbG9yLG89dC5ib3gscz10LnNjcmVlbkJveCxsPXQuZGF0YUJveCxjPXQudmlld0JveCx1PXQucGl4ZWxSYXRpbyxoPShlWzBdLWxbMF0pKihjWzJdLWNbMF0pLyhsWzJdLWxbMF0pK2NbMF0sZj0oZVsxXS1sWzFdKSooY1szXS1jWzFdKS8obFszXS1sWzFdKStjWzFdLHA9KGVbMl0tbFswXSkqKGNbMl0tY1swXSkvKGxbMl0tbFswXSkrY1swXSxkPShlWzNdLWxbMV0pKihjWzNdLWNbMV0pLyhsWzNdLWxbMV0pK2NbMV07aWYoaD1NYXRoLm1heChoLGNbMF0pLGY9TWF0aC5tYXgoZixjWzFdKSxwPU1hdGgubWluKHAsY1syXSksZD1NYXRoLm1pbihkLGNbM10pLCEocDxofHxkPGYpKXtvLmJpbmQoKTt2YXIgZz1zWzJdLXNbMF0sdj1zWzNdLXNbMV07aWYodGhpcy5vdXRlckZpbGwmJihvLmRyYXdCb3goMCwwLGcsZixhKSxvLmRyYXdCb3goMCxmLGgsZCxhKSxvLmRyYXdCb3goMCxkLGcsdixhKSxvLmRyYXdCb3gocCxmLGcsZCxhKSksdGhpcy5pbm5lckZpbGwmJm8uZHJhd0JveChoLGYscCxkLG4pLHI+MCl7dmFyIG09cip1O28uZHJhd0JveChoLW0sZi1tLHArbSxmK20saSksby5kcmF3Qm94KGgtbSxkLW0scCttLGQrbSxpKSxvLmRyYXdCb3goaC1tLGYtbSxoK20sZCttLGkpLG8uZHJhd0JveChwLW0sZi1tLHArbSxkK20saSl9fX19LHMudXBkYXRlPWZ1bmN0aW9uKHQpe3Q9dHx8e30sdGhpcy5pbm5lckZpbGw9ISF0LmlubmVyRmlsbCx0aGlzLm91dGVyRmlsbD0hIXQub3V0ZXJGaWxsLHRoaXMuaW5uZXJDb2xvcj0odC5pbm5lckNvbG9yfHxbMCwwLDAsLjVdKS5zbGljZSgpLHRoaXMub3V0ZXJDb2xvcj0odC5vdXRlckNvbG9yfHxbMCwwLDAsLjVdKS5zbGljZSgpLHRoaXMuYm9yZGVyQ29sb3I9KHQuYm9yZGVyQ29sb3J8fFswLDAsMCwxXSkuc2xpY2UoKSx0aGlzLmJvcmRlcldpZHRoPXQuYm9yZGVyV2lkdGh8fDAsdGhpcy5zZWxlY3RCb3g9KHQuc2VsZWN0Qm94fHx0aGlzLnNlbGVjdEJveCkuc2xpY2UoKX0scy5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5ib3hCdWZmZXIuZGlzcG9zZSgpLHRoaXMuYm94U2hhZGVyLmRpc3Bvc2UoKSx0aGlzLnBsb3QucmVtb3ZlT3ZlcmxheSh0aGlzKX19LHsiLi9saWIvc2hhZGVycyI6MzAxLCJnbC1idWZmZXIiOjI0NCwiZ2wtc2hhZGVyIjozMDR9XSwzMDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxpPWVbMV0sbz1uKHQscixpLHt9KSxzPWEubWFsbG9jVWludDgocippKjQpO3JldHVybiBuZXcgYyh0LG8scyl9O3ZhciBuPXQoImdsLWZibyIpLGE9dCgidHlwZWRhcnJheS1wb29sIiksaT10KCJuZGFycmF5Iiksbz10KCJiaXQtdHdpZGRsZSIpLm5leHRQb3cyLHM9dCgiY3dpc2UvbGliL3dyYXBwZXIiKSh7YXJnczpbImFycmF5Iix7b2Zmc2V0OlswLDAsMV0sYXJyYXk6MH0se29mZnNldDpbMCwwLDJdLGFycmF5OjB9LHtvZmZzZXQ6WzAsMCwzXSxhcnJheTowfSwic2NhbGFyIiwic2NhbGFyIiwiaW5kZXgiXSxwcmU6e2JvZHk6Int0aGlzX2Nsb3Nlc3REMj0xZTgsdGhpc19jbG9zZXN0WD0tMSx0aGlzX2Nsb3Nlc3RZPS0xfSIsYXJnczpbXSx0aGlzVmFyczpbInRoaXNfY2xvc2VzdEQyIiwidGhpc19jbG9zZXN0WCIsInRoaXNfY2xvc2VzdFkiXSxsb2NhbFZhcnM6W119LGJvZHk6e2JvZHk6IntpZihfaW5saW5lXzE2X2FyZzBfPDI1NXx8X2lubGluZV8xNl9hcmcxXzwyNTV8fF9pbmxpbmVfMTZfYXJnMl88MjU1fHxfaW5saW5lXzE2X2FyZzNfPDI1NSl7dmFyIF9pbmxpbmVfMTZfbD1faW5saW5lXzE2X2FyZzRfLV9pbmxpbmVfMTZfYXJnNl9bMF0sX2lubGluZV8xNl9hPV9pbmxpbmVfMTZfYXJnNV8tX2lubGluZV8xNl9hcmc2X1sxXSxfaW5saW5lXzE2X2Y9X2lubGluZV8xNl9sKl9pbmxpbmVfMTZfbCtfaW5saW5lXzE2X2EqX2lubGluZV8xNl9hO19pbmxpbmVfMTZfZjx0aGlzX2Nsb3Nlc3REMiYmKHRoaXNfY2xvc2VzdEQyPV9pbmxpbmVfMTZfZix0aGlzX2Nsb3Nlc3RYPV9pbmxpbmVfMTZfYXJnNl9bMF0sdGhpc19jbG9zZXN0WT1faW5saW5lXzE2X2FyZzZfWzFdKX19IixhcmdzOlt7bmFtZToiX2lubGluZV8xNl9hcmcwXyIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoxfSx7bmFtZToiX2lubGluZV8xNl9hcmcxXyIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoxfSx7bmFtZToiX2lubGluZV8xNl9hcmcyXyIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoxfSx7bmFtZToiX2lubGluZV8xNl9hcmczXyIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoxfSx7bmFtZToiX2lubGluZV8xNl9hcmc0XyIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoxfSx7bmFtZToiX2lubGluZV8xNl9hcmc1XyIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoxfSx7bmFtZToiX2lubGluZV8xNl9hcmc2XyIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDo0fV0sdGhpc1ZhcnM6WyJ0aGlzX2Nsb3Nlc3REMiIsInRoaXNfY2xvc2VzdFgiLCJ0aGlzX2Nsb3Nlc3RZIl0sbG9jYWxWYXJzOlsiX2lubGluZV8xNl9hIiwiX2lubGluZV8xNl9mIiwiX2lubGluZV8xNl9sIl19LHBvc3Q6e2JvZHk6IntyZXR1cm5bdGhpc19jbG9zZXN0WCx0aGlzX2Nsb3Nlc3RZLHRoaXNfY2xvc2VzdEQyXX0iLGFyZ3M6W10sdGhpc1ZhcnM6WyJ0aGlzX2Nsb3Nlc3REMiIsInRoaXNfY2xvc2VzdFgiLCJ0aGlzX2Nsb3Nlc3RZIl0sbG9jYWxWYXJzOltdfSxkZWJ1ZzohMSxmdW5jTmFtZToiY3dpc2UiLGJsb2NrU2l6ZTo2NH0pO2Z1bmN0aW9uIGwodCxlLHIsbixhKXt0aGlzLmNvb3JkPVt0LGVdLHRoaXMuaWQ9cix0aGlzLnZhbHVlPW4sdGhpcy5kaXN0YW5jZT1hfWZ1bmN0aW9uIGModCxlLHIpe3RoaXMuZ2w9dCx0aGlzLmZibz1lLHRoaXMuYnVmZmVyPXIsdGhpcy5fcmVhZFRpbWVvdXQ9bnVsbDt2YXIgbj10aGlzO3RoaXMuX3JlYWRDYWxsYmFjaz1mdW5jdGlvbigpe24uZ2wmJihlLmJpbmQoKSx0LnJlYWRQaXhlbHMoMCwwLGUuc2hhcGVbMF0sZS5zaGFwZVsxXSx0LlJHQkEsdC5VTlNJR05FRF9CWVRFLG4uYnVmZmVyKSxuLl9yZWFkVGltZW91dD1udWxsKX19dmFyIHU9Yy5wcm90b3R5cGU7T2JqZWN0LmRlZmluZVByb3BlcnR5KHUsInNoYXBlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2w/dGhpcy5mYm8uc2hhcGUuc2xpY2UoKTpbMCwwXX0sc2V0OmZ1bmN0aW9uKHQpe2lmKHRoaXMuZ2wpe3RoaXMuZmJvLnNoYXBlPXQ7dmFyIGU9dGhpcy5mYm8uc2hhcGVbMF0scj10aGlzLmZiby5zaGFwZVsxXTtpZihyKmUqND50aGlzLmJ1ZmZlci5sZW5ndGgpe2EuZnJlZSh0aGlzLmJ1ZmZlcik7Zm9yKHZhciBuPXRoaXMuYnVmZmVyPWEubWFsbG9jVWludDgobyhyKmUqNCkpLGk9MDtpPHIqZSo0OysraSluW2ldPTI1NX1yZXR1cm4gdH19fSksdS5iZWdpbj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZ2w7dGhpcy5zaGFwZTt0JiYodGhpcy5mYm8uYmluZCgpLHQuY2xlYXJDb2xvcigxLDEsMSwxKSx0LmNsZWFyKHQuQ09MT1JfQlVGRkVSX0JJVHx0LkRFUFRIX0JVRkZFUl9CSVQpKX0sdS5lbmQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmdsO3QmJih0LmJpbmRGcmFtZWJ1ZmZlcih0LkZSQU1FQlVGRkVSLG51bGwpLHRoaXMuX3JlYWRUaW1lb3V0fHxjbGVhclRpbWVvdXQodGhpcy5fcmVhZFRpbWVvdXQpLHRoaXMuX3JlYWRUaW1lb3V0PXNldFRpbWVvdXQodGhpcy5fcmVhZENhbGxiYWNrLDEpKX0sdS5xdWVyeT1mdW5jdGlvbih0LGUscil7aWYoIXRoaXMuZ2wpcmV0dXJuIG51bGw7dmFyIG49dGhpcy5mYm8uc2hhcGUuc2xpY2UoKTt0fD0wLGV8PTAsIm51bWJlciIhPXR5cGVvZiByJiYocj0xKTt2YXIgYT0wfE1hdGgubWluKE1hdGgubWF4KHQtciwwKSxuWzBdKSxvPTB8TWF0aC5taW4oTWF0aC5tYXgodCtyLDApLG5bMF0pLGM9MHxNYXRoLm1pbihNYXRoLm1heChlLXIsMCksblsxXSksdT0wfE1hdGgubWluKE1hdGgubWF4KGUrciwwKSxuWzFdKTtpZihvPD1hfHx1PD1jKXJldHVybiBudWxsO3ZhciBoPVtvLWEsdS1jXSxmPWkodGhpcy5idWZmZXIsW2hbMF0saFsxXSw0XSxbNCw0Km5bMF0sMV0sNCooYStuWzBdKmMpKSxwPXMoZi5oaShoWzBdLGhbMV0sMSkscixyKSxkPXBbMF0sZz1wWzFdO3JldHVybiBkPDB8fE1hdGgucG93KHRoaXMucmFkaXVzLDIpPHBbMl0/bnVsbDpuZXcgbChkK2F8MCxnK2N8MCxmLmdldChkLGcsMCksW2YuZ2V0KGQsZywxKSxmLmdldChkLGcsMiksZi5nZXQoZCxnLDMpXSxNYXRoLnNxcnQocFsyXSkpfSx1LmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLmdsJiYodGhpcy5mYm8uZGlzcG9zZSgpLGEuZnJlZSh0aGlzLmJ1ZmZlciksdGhpcy5nbD1udWxsLHRoaXMuX3JlYWRUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5fcmVhZFRpbWVvdXQpKX19LHsiYml0LXR3aWRkbGUiOjk0LCJjd2lzZS9saWIvd3JhcHBlciI6MTUxLCJnbC1mYm8iOjI1MixuZGFycmF5OjQ1MiwidHlwZWRhcnJheS1wb29sIjo1NDR9XSwzMDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9saWIvY3JlYXRlLXVuaWZvcm1zIiksYT10KCIuL2xpYi9jcmVhdGUtYXR0cmlidXRlcyIpLGk9dCgiLi9saWIvcmVmbGVjdCIpLG89dCgiLi9saWIvc2hhZGVyLWNhY2hlIikscz10KCIuL2xpYi9ydW50aW1lLXJlZmxlY3QiKSxsPXQoIi4vbGliL0dMRXJyb3IiKTtmdW5jdGlvbiBjKHQpe3RoaXMuZ2w9dCx0aGlzLmdsLmxhc3RBdHRyaWJDb3VudD0wLHRoaXMuX3ZyZWY9dGhpcy5fZnJlZj10aGlzLl9yZWxpbms9dGhpcy52ZXJ0U2hhZGVyPXRoaXMuZnJhZ1NoYWRlcj10aGlzLnByb2dyYW09dGhpcy5hdHRyaWJ1dGVzPXRoaXMudW5pZm9ybXM9dGhpcy50eXBlcz1udWxsfXZhciB1PWMucHJvdG90eXBlO2Z1bmN0aW9uIGgodCxlKXtyZXR1cm4gdC5uYW1lPGUubmFtZT8tMToxfXUuYmluZD1mdW5jdGlvbigpe3ZhciB0O3RoaXMucHJvZ3JhbXx8dGhpcy5fcmVsaW5rKCk7dmFyIGU9dGhpcy5nbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHRoaXMucHJvZ3JhbSx0aGlzLmdsLkFDVElWRV9BVFRSSUJVVEVTKSxyPXRoaXMuZ2wubGFzdEF0dHJpYkNvdW50O2lmKGU+cilmb3IodD1yO3Q8ZTt0KyspdGhpcy5nbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSh0KTtlbHNlIGlmKHI+ZSlmb3IodD1lO3Q8cjt0KyspdGhpcy5nbC5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkodCk7dGhpcy5nbC5sYXN0QXR0cmliQ291bnQ9ZSx0aGlzLmdsLnVzZVByb2dyYW0odGhpcy5wcm9ncmFtKX0sdS5kaXNwb3NlPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuZ2wubGFzdEF0dHJpYkNvdW50LGU9MDtlPHQ7ZSsrKXRoaXMuZ2wuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KGUpO3RoaXMuZ2wubGFzdEF0dHJpYkNvdW50PTAsdGhpcy5fZnJlZiYmdGhpcy5fZnJlZi5kaXNwb3NlKCksdGhpcy5fdnJlZiYmdGhpcy5fdnJlZi5kaXNwb3NlKCksdGhpcy5hdHRyaWJ1dGVzPXRoaXMudHlwZXM9dGhpcy52ZXJ0U2hhZGVyPXRoaXMuZnJhZ1NoYWRlcj10aGlzLnByb2dyYW09dGhpcy5fcmVsaW5rPXRoaXMuX2ZyZWY9dGhpcy5fdnJlZj1udWxsfSx1LnVwZGF0ZT1mdW5jdGlvbih0LGUscixjKXtpZighZXx8MT09PWFyZ3VtZW50cy5sZW5ndGgpe3ZhciB1PXQ7dD11LnZlcnRleCxlPXUuZnJhZ21lbnQscj11LnVuaWZvcm1zLGM9dS5hdHRyaWJ1dGVzfXZhciBmPXRoaXMscD1mLmdsLGQ9Zi5fdnJlZjtmLl92cmVmPW8uc2hhZGVyKHAscC5WRVJURVhfU0hBREVSLHQpLGQmJmQuZGlzcG9zZSgpLGYudmVydFNoYWRlcj1mLl92cmVmLnNoYWRlcjt2YXIgZz10aGlzLl9mcmVmO2lmKGYuX2ZyZWY9by5zaGFkZXIocCxwLkZSQUdNRU5UX1NIQURFUixlKSxnJiZnLmRpc3Bvc2UoKSxmLmZyYWdTaGFkZXI9Zi5fZnJlZi5zaGFkZXIsIXJ8fCFjKXt2YXIgdj1wLmNyZWF0ZVByb2dyYW0oKTtpZihwLmF0dGFjaFNoYWRlcih2LGYuZnJhZ1NoYWRlcikscC5hdHRhY2hTaGFkZXIodixmLnZlcnRTaGFkZXIpLHAubGlua1Byb2dyYW0odiksIXAuZ2V0UHJvZ3JhbVBhcmFtZXRlcih2LHAuTElOS19TVEFUVVMpKXt2YXIgbT1wLmdldFByb2dyYW1JbmZvTG9nKHYpO3Rocm93IG5ldyBsKG0sIkVycm9yIGxpbmtpbmcgcHJvZ3JhbToiK20pfXI9cnx8cy51bmlmb3JtcyhwLHYpLGM9Y3x8cy5hdHRyaWJ1dGVzKHAsdikscC5kZWxldGVQcm9ncmFtKHYpfShjPWMuc2xpY2UoKSkuc29ydChoKTt2YXIgeSx4PVtdLGI9W10sXz1bXTtmb3IoeT0wO3k8Yy5sZW5ndGg7Kyt5KXt2YXIgdz1jW3ldO2lmKHcudHlwZS5pbmRleE9mKCJtYXQiKT49MCl7Zm9yKHZhciBrPTB8dy50eXBlLmNoYXJBdCh3LnR5cGUubGVuZ3RoLTEpLFQ9bmV3IEFycmF5KGspLE09MDtNPGs7KytNKVRbTV09Xy5sZW5ndGgsYi5wdXNoKHcubmFtZSsiWyIrTSsiXSIpLCJudW1iZXIiPT10eXBlb2Ygdy5sb2NhdGlvbj9fLnB1c2gody5sb2NhdGlvbitNKTpBcnJheS5pc0FycmF5KHcubG9jYXRpb24pJiZ3LmxvY2F0aW9uLmxlbmd0aD09PWsmJiJudW1iZXIiPT10eXBlb2Ygdy5sb2NhdGlvbltNXT9fLnB1c2goMHx3LmxvY2F0aW9uW01dKTpfLnB1c2goLTEpO3gucHVzaCh7bmFtZTp3Lm5hbWUsdHlwZTp3LnR5cGUsbG9jYXRpb25zOlR9KX1lbHNlIHgucHVzaCh7bmFtZTp3Lm5hbWUsdHlwZTp3LnR5cGUsbG9jYXRpb25zOltfLmxlbmd0aF19KSxiLnB1c2gody5uYW1lKSwibnVtYmVyIj09dHlwZW9mIHcubG9jYXRpb24/Xy5wdXNoKDB8dy5sb2NhdGlvbik6Xy5wdXNoKC0xKX12YXIgQT0wO2Zvcih5PTA7eTxfLmxlbmd0aDsrK3kpaWYoX1t5XTwwKXtmb3IoO18uaW5kZXhPZihBKT49MDspQSs9MTtfW3ldPUF9dmFyIFM9bmV3IEFycmF5KHIubGVuZ3RoKTtmdW5jdGlvbiBFKCl7Zi5wcm9ncmFtPW8ucHJvZ3JhbShwLGYuX3ZyZWYsZi5fZnJlZixiLF8pO2Zvcih2YXIgdD0wO3Q8ci5sZW5ndGg7Kyt0KVNbdF09cC5nZXRVbmlmb3JtTG9jYXRpb24oZi5wcm9ncmFtLHJbdF0ubmFtZSl9RSgpLGYuX3JlbGluaz1FLGYudHlwZXM9e3VuaWZvcm1zOmkociksYXR0cmlidXRlczppKGMpfSxmLmF0dHJpYnV0ZXM9YShwLGYseCxfKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZiwidW5pZm9ybXMiLG4ocCxmLHIsUykpfSxlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbixhKXt2YXIgaT1uZXcgYyh0KTtyZXR1cm4gaS51cGRhdGUoZSxyLG4sYSksaX19LHsiLi9saWIvR0xFcnJvciI6MzA1LCIuL2xpYi9jcmVhdGUtYXR0cmlidXRlcyI6MzA2LCIuL2xpYi9jcmVhdGUtdW5pZm9ybXMiOjMwNywiLi9saWIvcmVmbGVjdCI6MzA4LCIuL2xpYi9ydW50aW1lLXJlZmxlY3QiOjMwOSwiLi9saWIvc2hhZGVyLWNhY2hlIjozMTB9XSwzMDU6W2Z1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHQsZSxyKXt0aGlzLnNob3J0TWVzc2FnZT1lfHwiIix0aGlzLmxvbmdNZXNzYWdlPXJ8fCIiLHRoaXMucmF3RXJyb3I9dHx8IiIsdGhpcy5tZXNzYWdlPSJnbC1zaGFkZXI6ICIrKGV8fHR8fCIiKSsocj8iXG4iK3I6IiIpLHRoaXMuc3RhY2s9KG5ldyBFcnJvcikuc3RhY2t9bi5wcm90b3R5cGU9bmV3IEVycm9yLG4ucHJvdG90eXBlLm5hbWU9IkdMRXJyb3IiLG4ucHJvdG90eXBlLmNvbnN0cnVjdG9yPW4sZS5leHBvcnRzPW59LHt9XSwzMDY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEpe2Zvcih2YXIgaT17fSxsPTAsYz1yLmxlbmd0aDtsPGM7KytsKXt2YXIgdT1yW2xdLGg9dS5uYW1lLGY9dS50eXBlLHA9dS5sb2NhdGlvbnM7c3dpdGNoKGYpe2Nhc2UiYm9vbCI6Y2FzZSJpbnQiOmNhc2UiZmxvYXQiOm8odCxlLHBbMF0sYSwxLGksaCk7YnJlYWs7ZGVmYXVsdDppZihmLmluZGV4T2YoInZlYyIpPj0wKXt2YXIgZD1mLmNoYXJDb2RlQXQoZi5sZW5ndGgtMSktNDg7aWYoZDwyfHxkPjQpdGhyb3cgbmV3IG4oIiIsIkludmFsaWQgZGF0YSB0eXBlIGZvciBhdHRyaWJ1dGUgIitoKyI6ICIrZik7byh0LGUscFswXSxhLGQsaSxoKX1lbHNle2lmKCEoZi5pbmRleE9mKCJtYXQiKT49MCkpdGhyb3cgbmV3IG4oIiIsIlVua25vd24gZGF0YSB0eXBlIGZvciBhdHRyaWJ1dGUgIitoKyI6ICIrZik7dmFyIGQ9Zi5jaGFyQ29kZUF0KGYubGVuZ3RoLTEpLTQ4O2lmKGQ8Mnx8ZD40KXRocm93IG5ldyBuKCIiLCJJbnZhbGlkIGRhdGEgdHlwZSBmb3IgYXR0cmlidXRlICIraCsiOiAiK2YpO3ModCxlLHAsYSxkLGksaCl9fX1yZXR1cm4gaX07dmFyIG49dCgiLi9HTEVycm9yIik7ZnVuY3Rpb24gYSh0LGUscixuLGEsaSl7dGhpcy5fZ2w9dCx0aGlzLl93cmFwcGVyPWUsdGhpcy5faW5kZXg9cix0aGlzLl9sb2NhdGlvbnM9bix0aGlzLl9kaW1lbnNpb249YSx0aGlzLl9jb25zdEZ1bmM9aX12YXIgaT1hLnByb3RvdHlwZTtmdW5jdGlvbiBvKHQsZSxyLG4saSxvLHMpe2Zvcih2YXIgbD1bImdsIiwidiJdLGM9W10sdT0wO3U8aTsrK3UpbC5wdXNoKCJ4Iit1KSxjLnB1c2goIngiK3UpO2wucHVzaCgiaWYoeDAubGVuZ3RoPT09dm9pZCAwKXtyZXR1cm4gZ2wudmVydGV4QXR0cmliIitpKyJmKHYsIitjLmpvaW4oKSsiKX1lbHNle3JldHVybiBnbC52ZXJ0ZXhBdHRyaWIiK2krImZ2KHYseDApfSIpO3ZhciBoPUZ1bmN0aW9uLmFwcGx5KG51bGwsbCksZj1uZXcgYSh0LGUscixuLGksaCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KG8scyx7c2V0OmZ1bmN0aW9uKGUpe3JldHVybiB0LmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShuW3JdKSxoKHQsbltyXSxlKSxlfSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZn0sZW51bWVyYWJsZTohMH0pfWZ1bmN0aW9uIHModCxlLHIsbixhLGkscyl7Zm9yKHZhciBsPW5ldyBBcnJheShhKSxjPW5ldyBBcnJheShhKSx1PTA7dTxhOysrdSlvKHQsZSxyW3VdLG4sYSxsLHUpLGNbdV09bFt1XTtPYmplY3QuZGVmaW5lUHJvcGVydHkobCwibG9jYXRpb24iLHtzZXQ6ZnVuY3Rpb24odCl7aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IodmFyIGU9MDtlPGE7KytlKWNbZV0ubG9jYXRpb249dFtlXTtlbHNlIGZvcihlPTA7ZTxhOysrZSljW2VdLmxvY2F0aW9uPXQrZTtyZXR1cm4gdH0sZ2V0OmZ1bmN0aW9uKCl7Zm9yKHZhciB0PW5ldyBBcnJheShhKSxlPTA7ZTxhOysrZSl0W2VdPW5bcltlXV07cmV0dXJuIHR9LGVudW1lcmFibGU6ITB9KSxsLnBvaW50ZXI9ZnVuY3Rpb24oZSxpLG8scyl7ZT1lfHx0LkZMT0FULGk9ISFpLG89b3x8YSphLHM9c3x8MDtmb3IodmFyIGw9MDtsPGE7KytsKXt2YXIgYz1uW3JbbF1dO3QudmVydGV4QXR0cmliUG9pbnRlcihjLGEsZSxpLG8scytsKmEpLHQuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoYyl9fTt2YXIgaD1uZXcgQXJyYXkoYSksZj10WyJ2ZXJ0ZXhBdHRyaWIiK2ErImZ2Il07T2JqZWN0LmRlZmluZVByb3BlcnR5KGkscyx7c2V0OmZ1bmN0aW9uKGUpe2Zvcih2YXIgaT0wO2k8YTsrK2kpe3ZhciBvPW5bcltpXV07aWYodC5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkobyksQXJyYXkuaXNBcnJheShlWzBdKSlmLmNhbGwodCxvLGVbaV0pO2Vsc2V7Zm9yKHZhciBzPTA7czxhOysrcyloW3NdPWVbYSppK3NdO2YuY2FsbCh0LG8saCl9fXJldHVybiBlfSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbH0sZW51bWVyYWJsZTohMH0pfWkucG9pbnRlcj1mdW5jdGlvbih0LGUscixuKXt2YXIgYT10aGlzLl9nbCxpPXRoaXMuX2xvY2F0aW9uc1t0aGlzLl9pbmRleF07YS52ZXJ0ZXhBdHRyaWJQb2ludGVyKGksdGhpcy5fZGltZW5zaW9uLHR8fGEuRkxPQVQsISFlLHJ8fDAsbnx8MCksYS5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShpKX0saS5zZXQ9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIHRoaXMuX2NvbnN0RnVuYyh0aGlzLl9sb2NhdGlvbnNbdGhpcy5faW5kZXhdLHQsZSxyLG4pfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoaSwibG9jYXRpb24iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbG9jYXRpb25zW3RoaXMuX2luZGV4XX0sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiB0IT09dGhpcy5fbG9jYXRpb25zW3RoaXMuX2luZGV4XSYmKHRoaXMuX2xvY2F0aW9uc1t0aGlzLl9pbmRleF09MHx0LHRoaXMuX3dyYXBwZXIucHJvZ3JhbT1udWxsKSwwfHR9fSl9LHsiLi9HTEVycm9yIjozMDV9XSwzMDc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9yZWZsZWN0IiksYT10KCIuL0dMRXJyb3IiKTtmdW5jdGlvbiBpKHQpe3JldHVybiBuZXcgRnVuY3Rpb24oInkiLCJyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4geX0iKSh0KX1mdW5jdGlvbiBvKHQsZSl7Zm9yKHZhciByPW5ldyBBcnJheSh0KSxuPTA7bjx0OysrbilyW25dPWU7cmV0dXJuIHJ9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMpe2Z1bmN0aW9uIGwodCxlLHIpe3N3aXRjaChyKXtjYXNlImJvb2wiOmNhc2UiaW50IjpjYXNlInNhbXBsZXIyRCI6Y2FzZSJzYW1wbGVyQ3ViZSI6cmV0dXJuImdsLnVuaWZvcm0xaShsb2NhdGlvbnNbIitlKyJdLG9iaiIrdCsiKSI7Y2FzZSJmbG9hdCI6cmV0dXJuImdsLnVuaWZvcm0xZihsb2NhdGlvbnNbIitlKyJdLG9iaiIrdCsiKSI7ZGVmYXVsdDp2YXIgbj1yLmluZGV4T2YoInZlYyIpO2lmKCEoMDw9biYmbjw9MSYmci5sZW5ndGg9PT00K24pKXtpZigwPT09ci5pbmRleE9mKCJtYXQiKSYmND09PXIubGVuZ3RoKXt2YXIgaT1yLmNoYXJDb2RlQXQoci5sZW5ndGgtMSktNDg7aWYoaTwyfHxpPjQpdGhyb3cgbmV3IGEoIiIsIkludmFsaWQgdW5pZm9ybSBkaW1lbnNpb24gdHlwZSBmb3IgbWF0cml4ICIrbmFtZSsiOiAiK3IpO3JldHVybiJnbC51bmlmb3JtTWF0cml4IitpKyJmdihsb2NhdGlvbnNbIitlKyJdLGZhbHNlLG9iaiIrdCsiKSJ9dGhyb3cgbmV3IGEoIiIsIlVua25vd24gdW5pZm9ybSBkYXRhIHR5cGUgZm9yICIrbmFtZSsiOiAiK3IpfXZhciBpPXIuY2hhckNvZGVBdChyLmxlbmd0aC0xKS00ODtpZihpPDJ8fGk+NCl0aHJvdyBuZXcgYSgiIiwiSW52YWxpZCBkYXRhIHR5cGUiKTtzd2l0Y2goci5jaGFyQXQoMCkpe2Nhc2UiYiI6Y2FzZSJpIjpyZXR1cm4iZ2wudW5pZm9ybSIraSsiaXYobG9jYXRpb25zWyIrZSsiXSxvYmoiK3QrIikiO2Nhc2UidiI6cmV0dXJuImdsLnVuaWZvcm0iK2krImZ2KGxvY2F0aW9uc1siK2UrIl0sb2JqIit0KyIpIjtkZWZhdWx0OnRocm93IG5ldyBhKCIiLCJVbnJlY29nbml6ZWQgZGF0YSB0eXBlIGZvciB2ZWN0b3IgIituYW1lKyI6ICIrcil9fX1mdW5jdGlvbiBjKGUpe2Zvcih2YXIgbj1bInJldHVybiBmdW5jdGlvbiB1cGRhdGVQcm9wZXJ0eShvYmopeyJdLGE9ZnVuY3Rpb24gdChlLHIpe2lmKCJvYmplY3QiIT10eXBlb2YgcilyZXR1cm5bW2Uscl1dO3ZhciBuPVtdO2Zvcih2YXIgYSBpbiByKXt2YXIgaT1yW2FdLG89ZTtwYXJzZUludChhKSsiIj09PWE/bys9IlsiK2ErIl0iOm8rPSIuIithLCJvYmplY3QiPT10eXBlb2YgaT9uLnB1c2guYXBwbHkobix0KG8saSkpOm4ucHVzaChbbyxpXSl9cmV0dXJuIG59KCIiLGUpLGk9MDtpPGEubGVuZ3RoOysraSl7dmFyIG89YVtpXSxjPW9bMF0sdT1vWzFdO3NbdV0mJm4ucHVzaChsKGMsdSxyW3VdLnR5cGUpKX1uLnB1c2goInJldHVybiBvYmp9Iik7dmFyIGg9bmV3IEZ1bmN0aW9uKCJnbCIsImxvY2F0aW9ucyIsbi5qb2luKCJcbiIpKTtyZXR1cm4gaCh0LHMpfWZ1bmN0aW9uIHUobixsLHUpe2lmKCJvYmplY3QiPT10eXBlb2YgdSl7dmFyIGY9aCh1KTtPYmplY3QuZGVmaW5lUHJvcGVydHkobixsLHtnZXQ6aShmKSxzZXQ6Yyh1KSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMX0pfWVsc2Ugc1t1XT9PYmplY3QuZGVmaW5lUHJvcGVydHkobixsLHtnZXQ6KHA9dSxkPW5ldyBGdW5jdGlvbigiZ2wiLCJ3cmFwcGVyIiwibG9jYXRpb25zIiwicmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGdsLmdldFVuaWZvcm0od3JhcHBlci5wcm9ncmFtLGxvY2F0aW9uc1siK3ArIl0pfSIpLGQodCxlLHMpKSxzZXQ6Yyh1KSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMX0pOm5bbF09ZnVuY3Rpb24odCl7c3dpdGNoKHQpe2Nhc2UiYm9vbCI6cmV0dXJuITE7Y2FzZSJpbnQiOmNhc2Uic2FtcGxlcjJEIjpjYXNlInNhbXBsZXJDdWJlIjpjYXNlImZsb2F0IjpyZXR1cm4gMDtkZWZhdWx0OnZhciBlPXQuaW5kZXhPZigidmVjIik7aWYoMDw9ZSYmZTw9MSYmdC5sZW5ndGg9PT00K2Upe3ZhciByPXQuY2hhckNvZGVBdCh0Lmxlbmd0aC0xKS00ODtpZihyPDJ8fHI+NCl0aHJvdyBuZXcgYSgiIiwiSW52YWxpZCBkYXRhIHR5cGUiKTtyZXR1cm4iYiI9PT10LmNoYXJBdCgwKT9vKHIsITEpOm8ociwwKX1pZigwPT09dC5pbmRleE9mKCJtYXQiKSYmND09PXQubGVuZ3RoKXt2YXIgcj10LmNoYXJDb2RlQXQodC5sZW5ndGgtMSktNDg7aWYocjwyfHxyPjQpdGhyb3cgbmV3IGEoIiIsIkludmFsaWQgdW5pZm9ybSBkaW1lbnNpb24gdHlwZSBmb3IgbWF0cml4ICIrbmFtZSsiOiAiK3QpO3JldHVybiBvKHIqciwwKX10aHJvdyBuZXcgYSgiIiwiVW5rbm93biB1bmlmb3JtIGRhdGEgdHlwZSBmb3IgIituYW1lKyI6ICIrdCl9fShyW3VdLnR5cGUpO3ZhciBwLGR9ZnVuY3Rpb24gaCh0KXt2YXIgZTtpZihBcnJheS5pc0FycmF5KHQpKXtlPW5ldyBBcnJheSh0Lmxlbmd0aCk7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDsrK3IpdShlLHIsdFtyXSl9ZWxzZSBmb3IodmFyIG4gaW4gZT17fSx0KXUoZSxuLHRbbl0pO3JldHVybiBlfXZhciBmPW4ociwhMCk7cmV0dXJue2dldDppKGgoZikpLHNldDpjKGYpLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfX19LHsiLi9HTEVycm9yIjozMDUsIi4vcmVmbGVjdCI6MzA4fV0sMzA4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj17fSxuPTA7bjx0Lmxlbmd0aDsrK24pZm9yKHZhciBhPXRbbl0ubmFtZSxpPWEuc3BsaXQoIi4iKSxvPXIscz0wO3M8aS5sZW5ndGg7KytzKXt2YXIgbD1pW3NdLnNwbGl0KCJbIik7aWYobC5sZW5ndGg+MSl7bFswXWluIG98fChvW2xbMF1dPVtdKSxvPW9bbFswXV07Zm9yKHZhciBjPTE7YzxsLmxlbmd0aDsrK2Mpe3ZhciB1PXBhcnNlSW50KGxbY10pO2M8bC5sZW5ndGgtMXx8czxpLmxlbmd0aC0xPyh1IGluIG98fChjPGwubGVuZ3RoLTE/b1t1XT1bXTpvW3VdPXt9KSxvPW9bdV0pOm9bdV09ZT9uOnRbbl0udHlwZX19ZWxzZSBzPGkubGVuZ3RoLTE/KGxbMF1pbiBvfHwob1tsWzBdXT17fSksbz1vW2xbMF1dKTpvW2xbMF1dPWU/bjp0W25dLnR5cGV9cmV0dXJuIHJ9fSx7fV0sMzA5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3IudW5pZm9ybXM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5nZXRQcm9ncmFtUGFyYW1ldGVyKGUsdC5BQ1RJVkVfVU5JRk9STVMpLG49W10sYT0wO2E8cjsrK2Epe3ZhciBvPXQuZ2V0QWN0aXZlVW5pZm9ybShlLGEpO2lmKG8pe3ZhciBzPWkodCxvLnR5cGUpO2lmKG8uc2l6ZT4xKWZvcih2YXIgbD0wO2w8by5zaXplOysrbCluLnB1c2goe25hbWU6by5uYW1lLnJlcGxhY2UoIlswXSIsIlsiK2wrIl0iKSx0eXBlOnN9KTtlbHNlIG4ucHVzaCh7bmFtZTpvLm5hbWUsdHlwZTpzfSl9fXJldHVybiBufSxyLmF0dHJpYnV0ZXM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5nZXRQcm9ncmFtUGFyYW1ldGVyKGUsdC5BQ1RJVkVfQVRUUklCVVRFUyksbj1bXSxhPTA7YTxyOysrYSl7dmFyIG89dC5nZXRBY3RpdmVBdHRyaWIoZSxhKTtvJiZuLnB1c2goe25hbWU6by5uYW1lLHR5cGU6aSh0LG8udHlwZSl9KX1yZXR1cm4gbn07dmFyIG49e0ZMT0FUOiJmbG9hdCIsRkxPQVRfVkVDMjoidmVjMiIsRkxPQVRfVkVDMzoidmVjMyIsRkxPQVRfVkVDNDoidmVjNCIsSU5UOiJpbnQiLElOVF9WRUMyOiJpdmVjMiIsSU5UX1ZFQzM6Iml2ZWMzIixJTlRfVkVDNDoiaXZlYzQiLEJPT0w6ImJvb2wiLEJPT0xfVkVDMjoiYnZlYzIiLEJPT0xfVkVDMzoiYnZlYzMiLEJPT0xfVkVDNDoiYnZlYzQiLEZMT0FUX01BVDI6Im1hdDIiLEZMT0FUX01BVDM6Im1hdDMiLEZMT0FUX01BVDQ6Im1hdDQiLFNBTVBMRVJfMkQ6InNhbXBsZXIyRCIsU0FNUExFUl9DVUJFOiJzYW1wbGVyQ3ViZSJ9LGE9bnVsbDtmdW5jdGlvbiBpKHQsZSl7aWYoIWEpe3ZhciByPU9iamVjdC5rZXlzKG4pO2E9e307Zm9yKHZhciBpPTA7aTxyLmxlbmd0aDsrK2kpe3ZhciBvPXJbaV07YVt0W29dXT1uW29dfX1yZXR1cm4gYVtlXX19LHt9XSwzMTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ci5zaGFkZXI9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB1KHQpLmdldFNoYWRlclJlZmVyZW5jZShlLHIpfSxyLnByb2dyYW09ZnVuY3Rpb24odCxlLHIsbixhKXtyZXR1cm4gdSh0KS5nZXRQcm9ncmFtKGUscixuLGEpfTt2YXIgbj10KCIuL0dMRXJyb3IiKSxhPXQoImdsLWZvcm1hdC1jb21waWxlci1lcnJvciIpLGk9bmV3KCJ1bmRlZmluZWQiPT10eXBlb2YgV2Vha01hcD90KCJ3ZWFrbWFwLXNoaW0iKTpXZWFrTWFwKSxvPTA7ZnVuY3Rpb24gcyh0LGUscixuLGEsaSxvKXt0aGlzLmlkPXQsdGhpcy5zcmM9ZSx0aGlzLnR5cGU9cix0aGlzLnNoYWRlcj1uLHRoaXMuY291bnQ9aSx0aGlzLnByb2dyYW1zPVtdLHRoaXMuY2FjaGU9b31mdW5jdGlvbiBsKHQpe3RoaXMuZ2w9dCx0aGlzLnNoYWRlcnM9W3t9LHt9XSx0aGlzLnByb2dyYW1zPXt9fXMucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXtpZigwPT0tLXRoaXMuY291bnQpe2Zvcih2YXIgdD10aGlzLmNhY2hlLGU9dC5nbCxyPXRoaXMucHJvZ3JhbXMsbj0wLGE9ci5sZW5ndGg7bjxhOysrbil7dmFyIGk9dC5wcm9ncmFtc1tyW25dXTtpJiYoZGVsZXRlIHQucHJvZ3JhbXNbbl0sZS5kZWxldGVQcm9ncmFtKGkpKX1lLmRlbGV0ZVNoYWRlcih0aGlzLnNoYWRlciksZGVsZXRlIHQuc2hhZGVyc1t0aGlzLnR5cGU9PT1lLkZSQUdNRU5UX1NIQURFUnwwXVt0aGlzLnNyY119fTt2YXIgYz1sLnByb3RvdHlwZTtmdW5jdGlvbiB1KHQpe3ZhciBlPWkuZ2V0KHQpO3JldHVybiBlfHwoZT1uZXcgbCh0KSxpLnNldCh0LGUpKSxlfWMuZ2V0U2hhZGVyUmVmZXJlbmNlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5nbCxpPXRoaXMuc2hhZGVyc1t0PT09ci5GUkFHTUVOVF9TSEFERVJ8MF0sbD1pW2VdO2lmKGwmJnIuaXNTaGFkZXIobC5zaGFkZXIpKWwuY291bnQrPTE7ZWxzZXt2YXIgYz1mdW5jdGlvbih0LGUscil7dmFyIGk9dC5jcmVhdGVTaGFkZXIoZSk7aWYodC5zaGFkZXJTb3VyY2UoaSxyKSx0LmNvbXBpbGVTaGFkZXIoaSksIXQuZ2V0U2hhZGVyUGFyYW1ldGVyKGksdC5DT01QSUxFX1NUQVRVUykpe3ZhciBvPXQuZ2V0U2hhZGVySW5mb0xvZyhpKTt0cnl7dmFyIHM9YShvLHIsZSl9Y2F0Y2godCl7dGhyb3cgY29uc29sZS53YXJuKCJGYWlsZWQgdG8gZm9ybWF0IGNvbXBpbGVyIGVycm9yOiAiK3QpLG5ldyBuKG8sIkVycm9yIGNvbXBpbGluZyBzaGFkZXI6XG4iK28pfXRocm93IG5ldyBuKG8scy5zaG9ydCxzLmxvbmcpfXJldHVybiBpfShyLHQsZSk7bD1pW2VdPW5ldyBzKG8rKyxlLHQsYyxbXSwxLHRoaXMpfXJldHVybiBsfSxjLmdldFByb2dyYW09ZnVuY3Rpb24odCxlLHIsYSl7dmFyIGk9W3QuaWQsZS5pZCxyLmpvaW4oIjoiKSxhLmpvaW4oIjoiKV0uam9pbigiQCIpLG89dGhpcy5wcm9ncmFtc1tpXTtyZXR1cm4gbyYmdGhpcy5nbC5pc1Byb2dyYW0obyl8fCh0aGlzLnByb2dyYW1zW2ldPW89ZnVuY3Rpb24odCxlLHIsYSxpKXt2YXIgbz10LmNyZWF0ZVByb2dyYW0oKTt0LmF0dGFjaFNoYWRlcihvLGUpLHQuYXR0YWNoU2hhZGVyKG8scik7Zm9yKHZhciBzPTA7czxhLmxlbmd0aDsrK3MpdC5iaW5kQXR0cmliTG9jYXRpb24obyxpW3NdLGFbc10pO2lmKHQubGlua1Byb2dyYW0obyksIXQuZ2V0UHJvZ3JhbVBhcmFtZXRlcihvLHQuTElOS19TVEFUVVMpKXt2YXIgbD10LmdldFByb2dyYW1JbmZvTG9nKG8pO3Rocm93IG5ldyBuKGwsIkVycm9yIGxpbmtpbmcgcHJvZ3JhbTogIitsKX1yZXR1cm4gb30odGhpcy5nbCx0LnNoYWRlcixlLnNoYWRlcixyLGEpLHQucHJvZ3JhbXMucHVzaChpKSxlLnByb2dyYW1zLnB1c2goaSkpLG99fSx7Ii4vR0xFcnJvciI6MzA1LCJnbC1mb3JtYXQtY29tcGlsZXItZXJyb3IiOjI1Mywid2Vha21hcC1zaGltIjo1NTR9XSwzMTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXt0aGlzLnBsb3Q9dCx0aGlzLmVuYWJsZT1bITAsITAsITEsITFdLHRoaXMud2lkdGg9WzEsMSwxLDFdLHRoaXMuY29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0sdGhpcy5jZW50ZXI9WzEvMCwxLzBdfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPW5ldyBuKHQpO3JldHVybiByLnVwZGF0ZShlKSx0LmFkZE92ZXJsYXkocikscn07dmFyIGE9bi5wcm90b3R5cGU7YS51cGRhdGU9ZnVuY3Rpb24odCl7dD10fHx7fSx0aGlzLmVuYWJsZT0odC5lbmFibGV8fFshMCwhMCwhMSwhMV0pLnNsaWNlKCksdGhpcy53aWR0aD0odC53aWR0aHx8WzEsMSwxLDFdKS5zbGljZSgpLHRoaXMuY29sb3I9KHQuY29sb3J8fFtbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuc2xpY2UoKX0pLHRoaXMuY2VudGVyPSh0LmNlbnRlcnx8WzEvMCwxLzBdKS5zbGljZSgpLHRoaXMucGxvdC5zZXRPdmVybGF5RGlydHkoKX0sYS5kcmF3PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbmFibGUsZT10aGlzLndpZHRoLHI9dGhpcy5jb2xvcixuPXRoaXMuY2VudGVyLGE9dGhpcy5wbG90LGk9YS5saW5lLG89YS5kYXRhQm94LHM9YS52aWV3Qm94O2lmKGkuYmluZCgpLG9bMF08PW5bMF0mJm5bMF08PW9bMl0mJm9bMV08PW5bMV0mJm5bMV08PW9bM10pe3ZhciBsPXNbMF0rKG5bMF0tb1swXSkvKG9bMl0tb1swXSkqKHNbMl0tc1swXSksYz1zWzFdKyhuWzFdLW9bMV0pLyhvWzNdLW9bMV0pKihzWzNdLXNbMV0pO3RbMF0mJmkuZHJhd0xpbmUobCxjLHNbMF0sYyxlWzBdLHJbMF0pLHRbMV0mJmkuZHJhd0xpbmUobCxjLGwsc1sxXSxlWzFdLHJbMV0pLHRbMl0mJmkuZHJhd0xpbmUobCxjLHNbMl0sYyxlWzJdLHJbMl0pLHRbM10mJmkuZHJhd0xpbmUobCxjLGwsc1szXSxlWzNdLHJbM10pfX0sYS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5wbG90LnJlbW92ZU92ZXJsYXkodGhpcyl9fSx7fV0sMzEyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImdsc2xpZnkiKSxhPXQoImdsLXNoYWRlciIpLGk9bihbInByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzMgcG9zaXRpb24sIGNvbG9yO1xuYXR0cmlidXRlIGZsb2F0IHdlaWdodDtcblxudW5pZm9ybSBtYXQ0IG1vZGVsLCB2aWV3LCBwcm9qZWN0aW9uO1xudW5pZm9ybSB2ZWMzIGNvb3JkaW5hdGVzWzNdO1xudW5pZm9ybSB2ZWM0IGNvbG9yc1szXTtcbnVuaWZvcm0gdmVjMiBzY3JlZW5TaGFwZTtcbnVuaWZvcm0gZmxvYXQgbGluZVdpZHRoO1xuXG52YXJ5aW5nIHZlYzQgZnJhZ0NvbG9yO1xuXG52b2lkIG1haW4oKSB7XG4gIHZlYzMgdmVydGV4UG9zaXRpb24gPSBtaXgoY29vcmRpbmF0ZXNbMF0sXG4gICAgbWl4KGNvb3JkaW5hdGVzWzJdLCBjb29yZGluYXRlc1sxXSwgMC41ICogKHBvc2l0aW9uICsgMS4wKSksIGFicyhwb3NpdGlvbikpO1xuXG4gIHZlYzQgY2xpcFBvcyA9IHByb2plY3Rpb24gKiB2aWV3ICogbW9kZWwgKiB2ZWM0KHZlcnRleFBvc2l0aW9uLCAxLjApO1xuICB2ZWMyIGNsaXBPZmZzZXQgPSAocHJvamVjdGlvbiAqIHZpZXcgKiBtb2RlbCAqIHZlYzQoY29sb3IsIDAuMCkpLnh5O1xuICB2ZWMyIGRlbHRhID0gd2VpZ2h0ICogY2xpcE9mZnNldCAqIHNjcmVlblNoYXBlO1xuICB2ZWMyIGxpbmVPZmZzZXQgPSBub3JtYWxpemUodmVjMihkZWx0YS55LCAtZGVsdGEueCkpIC8gc2NyZWVuU2hhcGU7XG5cbiAgZ2xfUG9zaXRpb24gICA9IHZlYzQoY2xpcFBvcy54eSArIGNsaXBQb3MudyAqIDAuNSAqIGxpbmVXaWR0aCAqIGxpbmVPZmZzZXQsIGNsaXBQb3MueiwgY2xpcFBvcy53KTtcbiAgZnJhZ0NvbG9yICAgICA9IGNvbG9yLnggKiBjb2xvcnNbMF0gKyBjb2xvci55ICogY29sb3JzWzFdICsgY29sb3IueiAqIGNvbG9yc1syXTtcbn1cbiJdKSxvPW4oWyJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbnZhcnlpbmcgdmVjNCBmcmFnQ29sb3I7XG5cbnZvaWQgbWFpbigpIHtcbiAgZ2xfRnJhZ0NvbG9yID0gZnJhZ0NvbG9yO1xufSJdKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGEodCxpLG8sbnVsbCxbe25hbWU6InBvc2l0aW9uIix0eXBlOiJ2ZWMzIn0se25hbWU6ImNvbG9yIix0eXBlOiJ2ZWMzIn0se25hbWU6IndlaWdodCIsdHlwZToiZmxvYXQifV0pfX0seyJnbC1zaGFkZXIiOjMwNCxnbHNsaWZ5OjQxMX1dLDMxMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJnbC1idWZmZXIiKSxhPXQoImdsLXZhbyIpLGk9dCgiLi9zaGFkZXJzL2luZGV4Iik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9W107ZnVuY3Rpb24gbyh0LGUsbixhLGksbyl7dmFyIHM9W3QsZSxuLDAsMCwwLDFdO3NbYSszXT0xLHNbYV09aSxyLnB1c2guYXBwbHkocixzKSxzWzZdPS0xLHIucHVzaC5hcHBseShyLHMpLHNbYV09byxyLnB1c2guYXBwbHkocixzKSxyLnB1c2guYXBwbHkocixzKSxzWzZdPTEsci5wdXNoLmFwcGx5KHIscyksc1thXT1pLHIucHVzaC5hcHBseShyLHMpfW8oMCwwLDAsMCwwLDEpLG8oMCwwLDAsMSwwLDEpLG8oMCwwLDAsMiwwLDEpLG8oMSwwLDAsMSwtMSwxKSxvKDEsMCwwLDIsLTEsMSksbygwLDEsMCwwLC0xLDEpLG8oMCwxLDAsMiwtMSwxKSxvKDAsMCwxLDAsLTEsMSksbygwLDAsMSwxLC0xLDEpO3ZhciBsPW4odCxyKSxjPWEodCxbe3R5cGU6dC5GTE9BVCxidWZmZXI6bCxzaXplOjMsb2Zmc2V0OjAsc3RyaWRlOjI4fSx7dHlwZTp0LkZMT0FULGJ1ZmZlcjpsLHNpemU6MyxvZmZzZXQ6MTIsc3RyaWRlOjI4fSx7dHlwZTp0LkZMT0FULGJ1ZmZlcjpsLHNpemU6MSxvZmZzZXQ6MjQsc3RyaWRlOjI4fV0pLHU9aSh0KTt1LmF0dHJpYnV0ZXMucG9zaXRpb24ubG9jYXRpb249MCx1LmF0dHJpYnV0ZXMuY29sb3IubG9jYXRpb249MSx1LmF0dHJpYnV0ZXMud2VpZ2h0LmxvY2F0aW9uPTI7dmFyIGg9bmV3IHModCxsLGMsdSk7cmV0dXJuIGgudXBkYXRlKGUpLGh9O3ZhciBvPVsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwxXTtmdW5jdGlvbiBzKHQsZSxyLG4pe3RoaXMuZ2w9dCx0aGlzLmJ1ZmZlcj1lLHRoaXMudmFvPXIsdGhpcy5zaGFkZXI9bix0aGlzLnBpeGVsUmF0aW89MSx0aGlzLmJvdW5kcz1bWy0xZTMsLTFlMywtMWUzXSxbMWUzLDFlMywxZTNdXSx0aGlzLnBvc2l0aW9uPVswLDAsMF0sdGhpcy5saW5lV2lkdGg9WzIsMiwyXSx0aGlzLmNvbG9ycz1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMuZW5hYmxlZD1bITAsITAsITBdLHRoaXMuZHJhd1NpZGVzPVshMCwhMCwhMF0sdGhpcy5heGVzPW51bGx9dmFyIGw9cy5wcm90b3R5cGUsYz1bMCwwLDBdLHU9WzAsMCwwXSxoPVswLDBdO2wuaXNUcmFuc3BhcmVudD1mdW5jdGlvbigpe3JldHVybiExfSxsLmRyYXdUcmFuc3BhcmVudD1mdW5jdGlvbih0KXt9LGwuZHJhdz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmdsLHI9dGhpcy52YW8sbj10aGlzLnNoYWRlcjtyLmJpbmQoKSxuLmJpbmQoKTt2YXIgYSxpPXQubW9kZWx8fG8scz10LnZpZXd8fG8sbD10LnByb2plY3Rpb258fG87dGhpcy5heGVzJiYoYT10aGlzLmF4ZXMubGFzdEN1YmVQcm9wcy5heGlzKTtmb3IodmFyIGY9YyxwPXUsZD0wO2Q8MzsrK2QpYSYmYVtkXTwwPyhmW2RdPXRoaXMuYm91bmRzWzBdW2RdLHBbZF09dGhpcy5ib3VuZHNbMV1bZF0pOihmW2RdPXRoaXMuYm91bmRzWzFdW2RdLHBbZF09dGhpcy5ib3VuZHNbMF1bZF0pO2hbMF09ZS5kcmF3aW5nQnVmZmVyV2lkdGgsaFsxXT1lLmRyYXdpbmdCdWZmZXJIZWlnaHQsbi51bmlmb3Jtcy5tb2RlbD1pLG4udW5pZm9ybXMudmlldz1zLG4udW5pZm9ybXMucHJvamVjdGlvbj1sLG4udW5pZm9ybXMuY29vcmRpbmF0ZXM9W3RoaXMucG9zaXRpb24sZixwXSxuLnVuaWZvcm1zLmNvbG9ycz10aGlzLmNvbG9ycyxuLnVuaWZvcm1zLnNjcmVlblNoYXBlPWg7Zm9yKGQ9MDtkPDM7KytkKW4udW5pZm9ybXMubGluZVdpZHRoPXRoaXMubGluZVdpZHRoW2RdKnRoaXMucGl4ZWxSYXRpbyx0aGlzLmVuYWJsZWRbZF0mJihyLmRyYXcoZS5UUklBTkdMRVMsNiw2KmQpLHRoaXMuZHJhd1NpZGVzW2RdJiZyLmRyYXcoZS5UUklBTkdMRVMsMTIsMTgrMTIqZCkpO3IudW5iaW5kKCl9LGwudXBkYXRlPWZ1bmN0aW9uKHQpe3QmJigiYm91bmRzImluIHQmJih0aGlzLmJvdW5kcz10LmJvdW5kcyksInBvc2l0aW9uImluIHQmJih0aGlzLnBvc2l0aW9uPXQucG9zaXRpb24pLCJsaW5lV2lkdGgiaW4gdCYmKHRoaXMubGluZVdpZHRoPXQubGluZVdpZHRoKSwiY29sb3JzImluIHQmJih0aGlzLmNvbG9ycz10LmNvbG9ycyksImVuYWJsZWQiaW4gdCYmKHRoaXMuZW5hYmxlZD10LmVuYWJsZWQpLCJkcmF3U2lkZXMiaW4gdCYmKHRoaXMuZHJhd1NpZGVzPXQuZHJhd1NpZGVzKSl9LGwuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMudmFvLmRpc3Bvc2UoKSx0aGlzLmJ1ZmZlci5kaXNwb3NlKCksdGhpcy5zaGFkZXIuZGlzcG9zZSgpfX0seyIuL3NoYWRlcnMvaW5kZXgiOjMxMiwiZ2wtYnVmZmVyIjoyNDQsImdsLXZhbyI6MzI5fV0sMzE0OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiZ2xzbGlmeSIpLGE9bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcblxucHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudmVjMyBnZXRPcnRob2dvbmFsVmVjdG9yKHZlYzMgdikge1xuICAvLyBSZXR1cm4gdXAtdmVjdG9yIGZvciBvbmx5LXogdmVjdG9yLlxuICAvLyBSZXR1cm4gYXggKyBieSArIGN6ID0gMCwgYSBwb2ludCB0aGF0IGxpZXMgb24gdGhlIHBsYW5lIHRoYXQgaGFzIHYgYXMgYSBub3JtYWwgYW5kIHRoYXQgaXNuJ3QgKDAsMCwwKS5cbiAgLy8gRnJvbSB0aGUgYWJvdmUgaWYtc3RhdGVtZW50IHdlIGhhdmUgfHxhfHwgPiAwICBVICB8fGJ8fCA+IDAuXG4gIC8vIEFzc2lnbiB6ID0gMCwgeCA9IC1iLCB5ID0gYTpcbiAgLy8gYSotYiArIGIqYSArIGMqMCA9IC1iYSArIGJhICsgMCA9IDBcbiAgaWYgKHYueCp2LnggPiB2Lnoqdi56IHx8IHYueSp2LnkgPiB2Lnoqdi56KSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZSh2ZWMzKC12LnksIHYueCwgMC4wKSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZSh2ZWMzKDAuMCwgdi56LCAtdi55KSk7XG4gIH1cbn1cblxuLy8gQ2FsY3VsYXRlIHRoZSB0dWJlIHZlcnRleCBhbmQgbm9ybWFsIGF0IHRoZSBnaXZlbiBpbmRleC5cbi8vXG4vLyBUaGUgcmV0dXJuZWQgdmVydGV4IGlzIGZvciBhIHR1YmUgcmluZyB3aXRoIGl0cyBjZW50ZXIgYXQgb3JpZ2luLCByYWRpdXMgb2YgbGVuZ3RoKGQpLCBwb2ludGluZyBpbiB0aGUgZGlyZWN0aW9uIG9mIGQuXG4vL1xuLy8gRWFjaCB0dWJlIHNlZ21lbnQgaXMgbWFkZSB1cCBvZiBhIHJpbmcgb2YgdmVydGljZXMuXG4vLyBUaGVzZSB2ZXJ0aWNlcyBhcmUgdXNlZCB0byBtYWtlIHVwIHRoZSB0cmlhbmdsZXMgb2YgdGhlIHR1YmUgYnkgY29ubmVjdGluZyB0aGVtIHRvZ2V0aGVyIGluIHRoZSB2ZXJ0ZXggYXJyYXkuXG4vLyBUaGUgaW5kZXhlcyBvZiB0dWJlIHNlZ21lbnRzIHJ1biBmcm9tIDAgdG8gOC5cbi8vXG52ZWMzIGdldFR1YmVQb3NpdGlvbih2ZWMzIGQsIGZsb2F0IGluZGV4LCBvdXQgdmVjMyBub3JtYWwpIHtcbiAgZmxvYXQgc2VnbWVudENvdW50ID0gOC4wO1xuXG4gIGZsb2F0IGFuZ2xlID0gMi4wICogMy4xNDE1OSAqIChpbmRleCAvIHNlZ21lbnRDb3VudCk7XG5cbiAgdmVjMyB1ID0gZ2V0T3J0aG9nb25hbFZlY3RvcihkKTtcbiAgdmVjMyB2ID0gbm9ybWFsaXplKGNyb3NzKHUsIGQpKTtcblxuICB2ZWMzIHggPSB1ICogY29zKGFuZ2xlKSAqIGxlbmd0aChkKTtcbiAgdmVjMyB5ID0gdiAqIHNpbihhbmdsZSkgKiBsZW5ndGgoZCk7XG4gIHZlYzMgdjMgPSB4ICsgeTtcblxuICBub3JtYWwgPSBub3JtYWxpemUodjMpO1xuXG4gIHJldHVybiB2Mztcbn1cblxuYXR0cmlidXRlIHZlYzQgdmVjdG9yO1xuYXR0cmlidXRlIHZlYzQgY29sb3IsIHBvc2l0aW9uO1xuYXR0cmlidXRlIHZlYzIgdXY7XG5cbnVuaWZvcm0gZmxvYXQgdmVjdG9yU2NhbGUsIHR1YmVTY2FsZTtcbnVuaWZvcm0gbWF0NCBtb2RlbCwgdmlldywgcHJvamVjdGlvbiwgaW52ZXJzZU1vZGVsO1xudW5pZm9ybSB2ZWMzIGV5ZVBvc2l0aW9uLCBsaWdodFBvc2l0aW9uO1xuXG52YXJ5aW5nIHZlYzMgZl9ub3JtYWwsIGZfbGlnaHREaXJlY3Rpb24sIGZfZXllRGlyZWN0aW9uLCBmX2RhdGEsIGZfcG9zaXRpb247XG52YXJ5aW5nIHZlYzQgZl9jb2xvcjtcbnZhcnlpbmcgdmVjMiBmX3V2O1xuXG52b2lkIG1haW4oKSB7XG4gIC8vIFNjYWxlIHRoZSB2ZWN0b3IgbWFnbml0dWRlIHRvIHN0YXkgY29uc3RhbnQgd2l0aFxuICAvLyBtb2RlbCAmIHZpZXcgY2hhbmdlcy5cbiAgdmVjMyBub3JtYWw7XG4gIHZlYzMgWFlaID0gZ2V0VHViZVBvc2l0aW9uKG1hdDMobW9kZWwpICogKHR1YmVTY2FsZSAqIHZlY3Rvci53ICogbm9ybWFsaXplKHZlY3Rvci54eXopKSwgcG9zaXRpb24udywgbm9ybWFsKTtcbiAgdmVjNCB0dWJlUG9zaXRpb24gPSBtb2RlbCAqIHZlYzQocG9zaXRpb24ueHl6LCAxLjApICsgdmVjNChYWVosIDAuMCk7XG5cbiAgLy9MaWdodGluZyBnZW9tZXRyeSBwYXJhbWV0ZXJzXG4gIHZlYzQgY2FtZXJhQ29vcmRpbmF0ZSA9IHZpZXcgKiB0dWJlUG9zaXRpb247XG4gIGNhbWVyYUNvb3JkaW5hdGUueHl6IC89IGNhbWVyYUNvb3JkaW5hdGUudztcbiAgZl9saWdodERpcmVjdGlvbiA9IGxpZ2h0UG9zaXRpb24gLSBjYW1lcmFDb29yZGluYXRlLnh5ejtcbiAgZl9leWVEaXJlY3Rpb24gICA9IGV5ZVBvc2l0aW9uIC0gY2FtZXJhQ29vcmRpbmF0ZS54eXo7XG4gIGZfbm9ybWFsID0gbm9ybWFsaXplKCh2ZWM0KG5vcm1hbCwgMC4wKSAqIGludmVyc2VNb2RlbCkueHl6KTtcblxuICAvLyB2ZWM0IG1fcG9zaXRpb24gID0gbW9kZWwgKiB2ZWM0KHR1YmVQb3NpdGlvbiwgMS4wKTtcbiAgdmVjNCB0X3Bvc2l0aW9uICA9IHZpZXcgKiB0dWJlUG9zaXRpb247XG4gIGdsX1Bvc2l0aW9uICAgICAgPSBwcm9qZWN0aW9uICogdF9wb3NpdGlvbjtcblxuICBmX2NvbG9yICAgICAgICAgID0gY29sb3I7XG4gIGZfZGF0YSAgICAgICAgICAgPSB0dWJlUG9zaXRpb24ueHl6O1xuICBmX3Bvc2l0aW9uICAgICAgID0gcG9zaXRpb24ueHl6O1xuICBmX3V2ICAgICAgICAgICAgID0gdXY7XG59XG4iXSksaT1uKFsiI2V4dGVuc2lvbiBHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMgOiBlbmFibGVcblxucHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuZmxvYXQgYmVja21hbm5EaXN0cmlidXRpb24oZmxvYXQgeCwgZmxvYXQgcm91Z2huZXNzKSB7XG4gIGZsb2F0IE5kb3RIID0gbWF4KHgsIDAuMDAwMSk7XG4gIGZsb2F0IGNvczJBbHBoYSA9IE5kb3RIICogTmRvdEg7XG4gIGZsb2F0IHRhbjJBbHBoYSA9IChjb3MyQWxwaGEgLSAxLjApIC8gY29zMkFscGhhO1xuICBmbG9hdCByb3VnaG5lc3MyID0gcm91Z2huZXNzICogcm91Z2huZXNzO1xuICBmbG9hdCBkZW5vbSA9IDMuMTQxNTkyNjUzNTg5NzkzICogcm91Z2huZXNzMiAqIGNvczJBbHBoYSAqIGNvczJBbHBoYTtcbiAgcmV0dXJuIGV4cCh0YW4yQWxwaGEgLyByb3VnaG5lc3MyKSAvIGRlbm9tO1xufVxuXG5mbG9hdCBjb29rVG9ycmFuY2VTcGVjdWxhcihcbiAgdmVjMyBsaWdodERpcmVjdGlvbixcbiAgdmVjMyB2aWV3RGlyZWN0aW9uLFxuICB2ZWMzIHN1cmZhY2VOb3JtYWwsXG4gIGZsb2F0IHJvdWdobmVzcyxcbiAgZmxvYXQgZnJlc25lbCkge1xuXG4gIGZsb2F0IFZkb3ROID0gbWF4KGRvdCh2aWV3RGlyZWN0aW9uLCBzdXJmYWNlTm9ybWFsKSwgMC4wKTtcbiAgZmxvYXQgTGRvdE4gPSBtYXgoZG90KGxpZ2h0RGlyZWN0aW9uLCBzdXJmYWNlTm9ybWFsKSwgMC4wKTtcblxuICAvL0hhbGYgYW5nbGUgdmVjdG9yXG4gIHZlYzMgSCA9IG5vcm1hbGl6ZShsaWdodERpcmVjdGlvbiArIHZpZXdEaXJlY3Rpb24pO1xuXG4gIC8vR2VvbWV0cmljIHRlcm1cbiAgZmxvYXQgTmRvdEggPSBtYXgoZG90KHN1cmZhY2VOb3JtYWwsIEgpLCAwLjApO1xuICBmbG9hdCBWZG90SCA9IG1heChkb3Qodmlld0RpcmVjdGlvbiwgSCksIDAuMDAwMDAxKTtcbiAgZmxvYXQgTGRvdEggPSBtYXgoZG90KGxpZ2h0RGlyZWN0aW9uLCBIKSwgMC4wMDAwMDEpO1xuICBmbG9hdCBHMSA9ICgyLjAgKiBOZG90SCAqIFZkb3ROKSAvIFZkb3RIO1xuICBmbG9hdCBHMiA9ICgyLjAgKiBOZG90SCAqIExkb3ROKSAvIExkb3RIO1xuICBmbG9hdCBHID0gbWluKDEuMCwgbWluKEcxLCBHMikpO1xuICBcbiAgLy9EaXN0cmlidXRpb24gdGVybVxuICBmbG9hdCBEID0gYmVja21hbm5EaXN0cmlidXRpb24oTmRvdEgsIHJvdWdobmVzcyk7XG5cbiAgLy9GcmVzbmVsIHRlcm1cbiAgZmxvYXQgRiA9IHBvdygxLjAgLSBWZG90TiwgZnJlc25lbCk7XG5cbiAgLy9NdWx0aXBseSB0ZXJtcyBhbmQgZG9uZVxuICByZXR1cm4gIEcgKiBGICogRCAvIG1heCgzLjE0MTU5MjY1ICogVmRvdE4sIDAuMDAwMDAxKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKGZsb2F0IGEsIGZsb2F0IGIsIGZsb2F0IHApIHtcbiAgcmV0dXJuICgocCA+IG1heChhLCBiKSkgfHwgXG4gICAgICAgICAgKHAgPCBtaW4oYSwgYikpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzIgYSwgdmVjMiBiLCB2ZWMyIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMzIGEsIHZlYzMgYiwgdmVjMyBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueiwgYi56LCBwLnopKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzQgYSwgdmVjNCBiLCB2ZWM0IHApIHtcbiAgcmV0dXJuIG91dE9mUmFuZ2UoYS54eXosIGIueHl6LCBwLnh5eik7XG59XG5cbnVuaWZvcm0gdmVjMyBjbGlwQm91bmRzWzJdO1xudW5pZm9ybSBmbG9hdCByb3VnaG5lc3MsIGZyZXNuZWwsIGthbWJpZW50LCBrZGlmZnVzZSwga3NwZWN1bGFyLCBvcGFjaXR5O1xudW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZTtcblxudmFyeWluZyB2ZWMzIGZfbm9ybWFsLCBmX2xpZ2h0RGlyZWN0aW9uLCBmX2V5ZURpcmVjdGlvbiwgZl9kYXRhLCBmX3Bvc2l0aW9uO1xudmFyeWluZyB2ZWM0IGZfY29sb3I7XG52YXJ5aW5nIHZlYzIgZl91djtcblxudm9pZCBtYWluKCkge1xuICBpZiAob3V0T2ZSYW5nZShjbGlwQm91bmRzWzBdLCBjbGlwQm91bmRzWzFdLCBmX3Bvc2l0aW9uKSkgZGlzY2FyZDtcbiAgdmVjMyBOID0gbm9ybWFsaXplKGZfbm9ybWFsKTtcbiAgdmVjMyBMID0gbm9ybWFsaXplKGZfbGlnaHREaXJlY3Rpb24pO1xuICB2ZWMzIFYgPSBub3JtYWxpemUoZl9leWVEaXJlY3Rpb24pO1xuXG4gIGlmKGdsX0Zyb250RmFjaW5nKSB7XG4gICAgTiA9IC1OO1xuICB9XG5cbiAgZmxvYXQgc3BlY3VsYXIgPSBtaW4oMS4wLCBtYXgoMC4wLCBjb29rVG9ycmFuY2VTcGVjdWxhcihMLCBWLCBOLCByb3VnaG5lc3MsIGZyZXNuZWwpKSk7XG4gIGZsb2F0IGRpZmZ1c2UgID0gbWluKGthbWJpZW50ICsga2RpZmZ1c2UgKiBtYXgoZG90KE4sIEwpLCAwLjApLCAxLjApO1xuXG4gIHZlYzQgc3VyZmFjZUNvbG9yID0gZl9jb2xvciAqIHRleHR1cmUyRCh0ZXh0dXJlLCBmX3V2KTtcbiAgdmVjNCBsaXRDb2xvciA9IHN1cmZhY2VDb2xvci5hICogdmVjNChkaWZmdXNlICogc3VyZmFjZUNvbG9yLnJnYiArIGtzcGVjdWxhciAqIHZlYzMoMSwxLDEpICogc3BlY3VsYXIsICAxLjApO1xuXG4gIGdsX0ZyYWdDb2xvciA9IGxpdENvbG9yICogb3BhY2l0eTtcbn1cbiJdKSxvPW4oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG5cbnByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbnZlYzMgZ2V0T3J0aG9nb25hbFZlY3Rvcih2ZWMzIHYpIHtcbiAgLy8gUmV0dXJuIHVwLXZlY3RvciBmb3Igb25seS16IHZlY3Rvci5cbiAgLy8gUmV0dXJuIGF4ICsgYnkgKyBjeiA9IDAsIGEgcG9pbnQgdGhhdCBsaWVzIG9uIHRoZSBwbGFuZSB0aGF0IGhhcyB2IGFzIGEgbm9ybWFsIGFuZCB0aGF0IGlzbid0ICgwLDAsMCkuXG4gIC8vIEZyb20gdGhlIGFib3ZlIGlmLXN0YXRlbWVudCB3ZSBoYXZlIHx8YXx8ID4gMCAgVSAgfHxifHwgPiAwLlxuICAvLyBBc3NpZ24geiA9IDAsIHggPSAtYiwgeSA9IGE6XG4gIC8vIGEqLWIgKyBiKmEgKyBjKjAgPSAtYmEgKyBiYSArIDAgPSAwXG4gIGlmICh2Lngqdi54ID4gdi56KnYueiB8fCB2Lnkqdi55ID4gdi56KnYueikge1xuICAgIHJldHVybiBub3JtYWxpemUodmVjMygtdi55LCB2LngsIDAuMCkpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBub3JtYWxpemUodmVjMygwLjAsIHYueiwgLXYueSkpO1xuICB9XG59XG5cbi8vIENhbGN1bGF0ZSB0aGUgdHViZSB2ZXJ0ZXggYW5kIG5vcm1hbCBhdCB0aGUgZ2l2ZW4gaW5kZXguXG4vL1xuLy8gVGhlIHJldHVybmVkIHZlcnRleCBpcyBmb3IgYSB0dWJlIHJpbmcgd2l0aCBpdHMgY2VudGVyIGF0IG9yaWdpbiwgcmFkaXVzIG9mIGxlbmd0aChkKSwgcG9pbnRpbmcgaW4gdGhlIGRpcmVjdGlvbiBvZiBkLlxuLy9cbi8vIEVhY2ggdHViZSBzZWdtZW50IGlzIG1hZGUgdXAgb2YgYSByaW5nIG9mIHZlcnRpY2VzLlxuLy8gVGhlc2UgdmVydGljZXMgYXJlIHVzZWQgdG8gbWFrZSB1cCB0aGUgdHJpYW5nbGVzIG9mIHRoZSB0dWJlIGJ5IGNvbm5lY3RpbmcgdGhlbSB0b2dldGhlciBpbiB0aGUgdmVydGV4IGFycmF5LlxuLy8gVGhlIGluZGV4ZXMgb2YgdHViZSBzZWdtZW50cyBydW4gZnJvbSAwIHRvIDguXG4vL1xudmVjMyBnZXRUdWJlUG9zaXRpb24odmVjMyBkLCBmbG9hdCBpbmRleCwgb3V0IHZlYzMgbm9ybWFsKSB7XG4gIGZsb2F0IHNlZ21lbnRDb3VudCA9IDguMDtcblxuICBmbG9hdCBhbmdsZSA9IDIuMCAqIDMuMTQxNTkgKiAoaW5kZXggLyBzZWdtZW50Q291bnQpO1xuXG4gIHZlYzMgdSA9IGdldE9ydGhvZ29uYWxWZWN0b3IoZCk7XG4gIHZlYzMgdiA9IG5vcm1hbGl6ZShjcm9zcyh1LCBkKSk7XG5cbiAgdmVjMyB4ID0gdSAqIGNvcyhhbmdsZSkgKiBsZW5ndGgoZCk7XG4gIHZlYzMgeSA9IHYgKiBzaW4oYW5nbGUpICogbGVuZ3RoKGQpO1xuICB2ZWMzIHYzID0geCArIHk7XG5cbiAgbm9ybWFsID0gbm9ybWFsaXplKHYzKTtcblxuICByZXR1cm4gdjM7XG59XG5cbmF0dHJpYnV0ZSB2ZWM0IHZlY3RvcjtcbmF0dHJpYnV0ZSB2ZWM0IHBvc2l0aW9uO1xuYXR0cmlidXRlIHZlYzQgaWQ7XG5cbnVuaWZvcm0gbWF0NCBtb2RlbCwgdmlldywgcHJvamVjdGlvbjtcbnVuaWZvcm0gZmxvYXQgdHViZVNjYWxlO1xuXG52YXJ5aW5nIHZlYzMgZl9wb3NpdGlvbjtcbnZhcnlpbmcgdmVjNCBmX2lkO1xuXG52b2lkIG1haW4oKSB7XG4gIHZlYzMgbm9ybWFsO1xuICB2ZWMzIFhZWiA9IGdldFR1YmVQb3NpdGlvbihtYXQzKG1vZGVsKSAqICh0dWJlU2NhbGUgKiB2ZWN0b3IudyAqIG5vcm1hbGl6ZSh2ZWN0b3IueHl6KSksIHBvc2l0aW9uLncsIG5vcm1hbCk7XG4gIHZlYzQgdHViZVBvc2l0aW9uID0gbW9kZWwgKiB2ZWM0KHBvc2l0aW9uLnh5eiwgMS4wKSArIHZlYzQoWFlaLCAwLjApO1xuXG4gIGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbiAqIHZpZXcgKiB0dWJlUG9zaXRpb247XG4gIGZfaWQgICAgICAgID0gaWQ7XG4gIGZfcG9zaXRpb24gID0gcG9zaXRpb24ueHl6O1xufVxuIl0pLHM9bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmJvb2wgb3V0T2ZSYW5nZShmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBwKSB7XG4gIHJldHVybiAoKHAgPiBtYXgoYSwgYikpIHx8IFxuICAgICAgICAgIChwIDwgbWluKGEsIGIpKSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMyIGEsIHZlYzIgYiwgdmVjMiBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMyBhLCB2ZWMzIGIsIHZlYzMgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnosIGIueiwgcC56KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWM0IGEsIHZlYzQgYiwgdmVjNCBwKSB7XG4gIHJldHVybiBvdXRPZlJhbmdlKGEueHl6LCBiLnh5eiwgcC54eXopO1xufVxuXG51bmlmb3JtIHZlYzMgIGNsaXBCb3VuZHNbMl07XG51bmlmb3JtIGZsb2F0IHBpY2tJZDtcblxudmFyeWluZyB2ZWMzIGZfcG9zaXRpb247XG52YXJ5aW5nIHZlYzQgZl9pZDtcblxudm9pZCBtYWluKCkge1xuICBpZiAob3V0T2ZSYW5nZShjbGlwQm91bmRzWzBdLCBjbGlwQm91bmRzWzFdLCBmX3Bvc2l0aW9uKSkgZGlzY2FyZDtcblxuICBnbF9GcmFnQ29sb3IgPSB2ZWM0KHBpY2tJZCwgZl9pZC54eXopO1xufSJdKTtyLm1lc2hTaGFkZXI9e3ZlcnRleDphLGZyYWdtZW50OmksYXR0cmlidXRlczpbe25hbWU6InBvc2l0aW9uIix0eXBlOiJ2ZWM0In0se25hbWU6ImNvbG9yIix0eXBlOiJ2ZWM0In0se25hbWU6InV2Iix0eXBlOiJ2ZWMyIn0se25hbWU6InZlY3RvciIsdHlwZToidmVjNCJ9XX0sci5waWNrU2hhZGVyPXt2ZXJ0ZXg6byxmcmFnbWVudDpzLGF0dHJpYnV0ZXM6W3tuYW1lOiJwb3NpdGlvbiIsdHlwZToidmVjNCJ9LHtuYW1lOiJpZCIsdHlwZToidmVjNCJ9LHtuYW1lOiJ2ZWN0b3IiLHR5cGU6InZlYzQifV19fSx7Z2xzbGlmeTo0MTF9XSwzMTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZ2wtdmVjMyIpLGE9dCgiZ2wtdmVjNCIpLGk9WyJ4eXoiLCJ4enkiLCJ5eHoiLCJ5engiLCJ6eHkiLCJ6eXgiXSxvPWZ1bmN0aW9uKHQsZSxyLGkpe2Zvcih2YXIgbz0wLHM9MDtzPHQubGVuZ3RoO3MrKylmb3IodmFyIGw9dFtzXS52ZWxvY2l0aWVzLGM9MDtjPGwubGVuZ3RoO2MrKylvPU1hdGgubWF4KG8sbi5sZW5ndGgobFtjXSkpO3ZhciB1PXQubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbih0LGUscixpKXtmb3IodmFyIG89dC5wb2ludHMscz10LnZlbG9jaXRpZXMsbD10LmRpdmVyZ2VuY2VzLGM9W10sdT1bXSxoPVtdLGY9W10scD1bXSxkPVtdLGc9MCx2PTAsbT1hLmNyZWF0ZSgpLHk9YS5jcmVhdGUoKSx4PTA7eDxvLmxlbmd0aDt4Kyspe3ZhciBiPW9beF0sXz1zW3hdLHc9bFt4XTswPT09ZSYmKHc9LjA1KnIpLHY9bi5sZW5ndGgoXykvaSxtPWEuY3JlYXRlKCksbi5jb3B5KG0sXyksbVszXT13O2Zvcih2YXIgaz0wO2s8ODtrKyspcFtrXT1bYlswXSxiWzFdLGJbMl0sa107aWYoZi5sZW5ndGg+MClmb3Ioaz0wO2s8ODtrKyspe3ZhciBUPShrKzEpJTg7Yy5wdXNoKGZba10scFtrXSxwW1RdLHBbVF0sZltUXSxmW2tdKSxoLnB1c2goeSxtLG0sbSx5LHkpLGQucHVzaChnLHYsdix2LGcsZyk7dmFyIE09Yy5sZW5ndGg7dS5wdXNoKFtNLTYsTS01LE0tNF0sW00tMyxNLTIsTS0xXSl9dmFyIEE9ZjtmPXAscD1BO3ZhciBTPXk7eT1tLG09Uzt2YXIgRT1nO2c9dix2PUV9cmV0dXJue3Bvc2l0aW9uczpjLGNlbGxzOnUsdmVjdG9yczpoLHZlcnRleEludGVuc2l0eTpkfX0odCxyLGksbyl9KSxoPVtdLGY9W10scD1bXSxkPVtdO2ZvcihzPTA7czx1Lmxlbmd0aDtzKyspe3ZhciBnPXVbc10sdj1oLmxlbmd0aDtoPWguY29uY2F0KGcucG9zaXRpb25zKSxwPXAuY29uY2F0KGcudmVjdG9ycyksZD1kLmNvbmNhdChnLnZlcnRleEludGVuc2l0eSk7Zm9yKGM9MDtjPGcuY2VsbHMubGVuZ3RoO2MrKyl7dmFyIG09Zy5jZWxsc1tjXSx5PVtdO2YucHVzaCh5KTtmb3IodmFyIHg9MDt4PG0ubGVuZ3RoO3grKyl5LnB1c2gobVt4XSt2KX19cmV0dXJue3Bvc2l0aW9uczpoLGNlbGxzOmYsdmVjdG9yczpwLHZlcnRleEludGVuc2l0eTpkLGNvbG9ybWFwOmV9fSxzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbj10Lmxlbmd0aDtmb3Iocj0wO3I8bjtyKyspe3ZhciBhPXRbcl07aWYoYT09PWUpcmV0dXJuIHI7aWYoYT5lKXJldHVybiByLTF9cmV0dXJuIHJ9LGw9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PGU/ZTp0PnI/cjp0fSxjPWZ1bmN0aW9uKHQpe3ZhciBlPTEvMDt0LnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC1lfSk7Zm9yKHZhciByPXQubGVuZ3RoLG49MTtuPHI7bisrKXt2YXIgYT1NYXRoLmFicyh0W25dLXRbbi0xXSk7YTxlJiYoZT1hKX1yZXR1cm4gZX07ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5zdGFydGluZ1Bvc2l0aW9ucyxhPXQubWF4TGVuZ3RofHwxZTMsdT10LnR1YmVTaXplfHwxLGg9dC5hYnNvbHV0ZVR1YmVTaXplLGY9dC5ncmlkRmlsbHx8Iit4K3kreiIscD17fTstMSE9PWYuaW5kZXhPZigiLXgiKSYmKHAucmV2ZXJzZWRYPSEwKSwtMSE9PWYuaW5kZXhPZigiLXkiKSYmKHAucmV2ZXJzZWRZPSEwKSwtMSE9PWYuaW5kZXhPZigiLXoiKSYmKHAucmV2ZXJzZWRaPSEwKSxwLmZpbGxlZD1pLmluZGV4T2YoZi5yZXBsYWNlKC8tL2csIiIpLnJlcGxhY2UoL1wrL2csIiIpKTt2YXIgZD10LmdldFZlbG9jaXR5fHxmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxlLHIpe3ZhciBhPWUudmVjdG9ycyxpPWUubWVzaGdyaWQsbz10WzBdLGM9dFsxXSx1PXRbMl0saD1pWzBdLmxlbmd0aCxmPWlbMV0ubGVuZ3RoLHA9aVsyXS5sZW5ndGgsZD1zKGlbMF0sbyksZz1zKGlbMV0sYyksdj1zKGlbMl0sdSksbT1kKzEseT1nKzEseD12KzE7aWYoZD1sKGQsMCxoLTEpLG09bChtLDAsaC0xKSxnPWwoZywwLGYtMSkseT1sKHksMCxmLTEpLHY9bCh2LDAscC0xKSx4PWwoeCwwLHAtMSksZDwwfHxnPDB8fHY8MHx8bT5oLTF8fHk+Zi0xfHx4PnAtMSlyZXR1cm4gbi5jcmVhdGUoKTt2YXIgYixfLHcsayxULE0sQT1pWzBdW2RdLFM9aVswXVttXSxFPWlbMV1bZ10sTD1pWzFdW3ldLEM9aVsyXVt2XSxQPShvLUEpLyhTLUEpLE89KGMtRSkvKEwtRSksej0odS1DKS8oaVsyXVt4XS1DKTtzd2l0Y2goaXNGaW5pdGUoUCl8fChQPS41KSxpc0Zpbml0ZShPKXx8KE89LjUpLGlzRmluaXRlKHopfHwoej0uNSksci5yZXZlcnNlZFgmJihkPWgtMS1kLG09aC0xLW0pLHIucmV2ZXJzZWRZJiYoZz1mLTEtZyx5PWYtMS15KSxyLnJldmVyc2VkWiYmKHY9cC0xLXYseD1wLTEteCksci5maWxsZWQpe2Nhc2UgNTpUPXYsTT14LHc9ZypwLGs9eSpwLGI9ZCpwKmYsXz1tKnAqZjticmVhaztjYXNlIDQ6VD12LE09eCxiPWQqcCxfPW0qcCx3PWcqcCpoLGs9eSpwKmg7YnJlYWs7Y2FzZSAzOnc9ZyxrPXksVD12KmYsTT14KmYsYj1kKmYqcCxfPW0qZipwO2JyZWFrO2Nhc2UgMjp3PWcsaz15LGI9ZCpmLF89bSpmLFQ9dipmKmgsTT14KmYqaDticmVhaztjYXNlIDE6Yj1kLF89bSxUPXYqaCxNPXgqaCx3PWcqaCpwLGs9eSpoKnA7YnJlYWs7ZGVmYXVsdDpiPWQsXz1tLHc9ZypoLGs9eSpoLFQ9dipoKmYsTT14KmgqZn12YXIgST1hW2IrdytUXSxEPWFbYit3K01dLFI9YVtiK2srVF0sRj1hW2IraytNXSxCPWFbXyt3K1RdLE49YVtfK3crTV0saj1hW18raytUXSxWPWFbXytrK01dLFU9bi5jcmVhdGUoKSxxPW4uY3JlYXRlKCksSD1uLmNyZWF0ZSgpLEc9bi5jcmVhdGUoKTtuLmxlcnAoVSxJLEIsUCksbi5sZXJwKHEsRCxOLFApLG4ubGVycChILFIsaixQKSxuLmxlcnAoRyxGLFYsUCk7dmFyIFk9bi5jcmVhdGUoKSxXPW4uY3JlYXRlKCk7bi5sZXJwKFksVSxILE8pLG4ubGVycChXLHEsRyxPKTt2YXIgWD1uLmNyZWF0ZSgpO3JldHVybiBuLmxlcnAoWCxZLFcseiksWH0oZSx0LHApfSxnPXQuZ2V0RGl2ZXJnZW5jZXx8ZnVuY3Rpb24odCxlKXt2YXIgcj1uLmNyZWF0ZSgpLGE9MWUtNDtuLmFkZChyLHQsW2EsMCwwXSk7dmFyIGk9ZChyKTtuLnN1YnRyYWN0KGksaSxlKSxuLnNjYWxlKGksaSwxZTQpLG4uYWRkKHIsdCxbMCxhLDBdKTt2YXIgbz1kKHIpO24uc3VidHJhY3QobyxvLGUpLG4uc2NhbGUobyxvLDFlNCksbi5hZGQocix0LFswLDAsYV0pO3ZhciBzPWQocik7cmV0dXJuIG4uc3VidHJhY3QocyxzLGUpLG4uc2NhbGUocyxzLDFlNCksbi5hZGQocixpLG8pLG4uYWRkKHIscixzKSxyfSx2PVtdLG09ZVswXVswXSx5PWVbMF1bMV0seD1lWzBdWzJdLGI9ZVsxXVswXSxfPWVbMV1bMV0sdz1lWzFdWzJdLGs9ZnVuY3Rpb24odCl7dmFyIGU9dFswXSxyPXRbMV0sbj10WzJdO3JldHVybiEoZTxtfHxlPmJ8fHI8eXx8cj5ffHxuPHh8fG4+dyl9LFQ9MTAqbi5kaXN0YW5jZShlWzBdLGVbMV0pL2EsTT1UKlQsQT0xLFM9MCxFPXIubGVuZ3RoO0U+MSYmKEE9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLHI9W10sbj1bXSxhPXt9LGk9e30sbz17fSxzPXQubGVuZ3RoLGw9MDtsPHM7bCsrKXt2YXIgdT10W2xdLGg9dVswXSxmPXVbMV0scD11WzJdO2FbaF18fChlLnB1c2goaCksYVtoXT0hMCksaVtmXXx8KHIucHVzaChmKSxpW2ZdPSEwKSxvW3BdfHwobi5wdXNoKHApLG9bcF09ITApfXZhciBkPWMoZSksZz1jKHIpLHY9YyhuKSxtPU1hdGgubWluKGQsZyx2KTtyZXR1cm4gaXNGaW5pdGUobSk/bToxfShyKSk7Zm9yKHZhciBMPTA7TDxFO0wrKyl7dmFyIEM9bi5jcmVhdGUoKTtuLmNvcHkoQyxyW0xdKTt2YXIgUD1bQ10sTz1bXSx6PWQoQyksST1DO08ucHVzaCh6KTt2YXIgRD1bXSxSPWcoQyx6KSxGPW4ubGVuZ3RoKFIpO2lzRmluaXRlKEYpJiZGPlMmJihTPUYpLEQucHVzaChGKSx2LnB1c2goe3BvaW50czpQLHZlbG9jaXRpZXM6TyxkaXZlcmdlbmNlczpEfSk7Zm9yKHZhciBCPTA7QjwxMDAqYSYmUC5sZW5ndGg8YSYmayhDKTspe0IrKzt2YXIgTj1uLmNsb25lKHopLGo9bi5zcXVhcmVkTGVuZ3RoKE4pO2lmKDA9PT1qKWJyZWFrO2lmKGo+TSYmbi5zY2FsZShOLE4sVC9NYXRoLnNxcnQoaikpLG4uYWRkKE4sTixDKSx6PWQoTiksbi5zcXVhcmVkRGlzdGFuY2UoSSxOKS1NPi0xZS00Kk0pe1AucHVzaChOKSxJPU4sTy5wdXNoKHopO1I9ZyhOLHopLEY9bi5sZW5ndGgoUik7aXNGaW5pdGUoRikmJkY+UyYmKFM9RiksRC5wdXNoKEYpfUM9Tn19dmFyIFY9byh2LHQuY29sb3JtYXAsUyxBKTtyZXR1cm4gaD9WLnR1YmVTY2FsZT1oOigwPT09UyYmKFM9MSksVi50dWJlU2NhbGU9LjUqdSpBL1MpLFZ9O3ZhciB1PXQoIi4vbGliL3NoYWRlcnMiKSxoPXQoImdsLWNvbmUzZCIpLmNyZWF0ZU1lc2g7ZS5leHBvcnRzLmNyZWF0ZVR1YmVNZXNoPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGgodCxlLHtzaGFkZXJzOnUsdHJhY2VUeXBlOiJzdHJlYW10dWJlIn0pfX0seyIuL2xpYi9zaGFkZXJzIjozMTQsImdsLWNvbmUzZCI6MjQ1LCJnbC12ZWMzIjozNDgsImdsLXZlYzQiOjM4NH1dLDMxNjpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoImdsLXNoYWRlciIpLGE9dCgiZ2xzbGlmeSIpLGk9YShbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWM0IHV2O1xuYXR0cmlidXRlIHZlYzMgZjtcbmF0dHJpYnV0ZSB2ZWMzIG5vcm1hbDtcblxudW5pZm9ybSB2ZWMzIG9iamVjdE9mZnNldDtcbnVuaWZvcm0gbWF0NCBtb2RlbCwgdmlldywgcHJvamVjdGlvbiwgaW52ZXJzZU1vZGVsO1xudW5pZm9ybSB2ZWMzIGxpZ2h0UG9zaXRpb24sIGV5ZVBvc2l0aW9uO1xudW5pZm9ybSBzYW1wbGVyMkQgY29sb3JtYXA7XG5cbnZhcnlpbmcgZmxvYXQgdmFsdWUsIGtpbGw7XG52YXJ5aW5nIHZlYzMgd29ybGRDb29yZGluYXRlO1xudmFyeWluZyB2ZWMyIHBsYW5lQ29vcmRpbmF0ZTtcbnZhcnlpbmcgdmVjMyBsaWdodERpcmVjdGlvbiwgZXllRGlyZWN0aW9uLCBzdXJmYWNlTm9ybWFsO1xudmFyeWluZyB2ZWM0IHZDb2xvcjtcblxudm9pZCBtYWluKCkge1xuICB2ZWMzIGxvY2FsQ29vcmRpbmF0ZSA9IHZlYzModXYuencsIGYueCk7XG4gIHdvcmxkQ29vcmRpbmF0ZSA9IG9iamVjdE9mZnNldCArIGxvY2FsQ29vcmRpbmF0ZTtcbiAgdmVjNCB3b3JsZFBvc2l0aW9uID0gbW9kZWwgKiB2ZWM0KHdvcmxkQ29vcmRpbmF0ZSwgMS4wKTtcbiAgdmVjNCBjbGlwUG9zaXRpb24gPSBwcm9qZWN0aW9uICogdmlldyAqIHdvcmxkUG9zaXRpb247XG4gIGdsX1Bvc2l0aW9uID0gY2xpcFBvc2l0aW9uO1xuICBraWxsID0gZi55O1xuICB2YWx1ZSA9IGYuejtcbiAgcGxhbmVDb29yZGluYXRlID0gdXYueHk7XG5cbiAgdkNvbG9yID0gdGV4dHVyZTJEKGNvbG9ybWFwLCB2ZWMyKHZhbHVlLCB2YWx1ZSkpO1xuXG4gIC8vTGlnaHRpbmcgZ2VvbWV0cnkgcGFyYW1ldGVyc1xuICB2ZWM0IGNhbWVyYUNvb3JkaW5hdGUgPSB2aWV3ICogd29ybGRQb3NpdGlvbjtcbiAgY2FtZXJhQ29vcmRpbmF0ZS54eXogLz0gY2FtZXJhQ29vcmRpbmF0ZS53O1xuICBsaWdodERpcmVjdGlvbiA9IGxpZ2h0UG9zaXRpb24gLSBjYW1lcmFDb29yZGluYXRlLnh5ejtcbiAgZXllRGlyZWN0aW9uICAgPSBleWVQb3NpdGlvbiAtIGNhbWVyYUNvb3JkaW5hdGUueHl6O1xuICBzdXJmYWNlTm9ybWFsICA9IG5vcm1hbGl6ZSgodmVjNChub3JtYWwsMCkgKiBpbnZlcnNlTW9kZWwpLnh5eik7XG59XG4iXSksbz1hKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuZmxvYXQgYmVja21hbm5EaXN0cmlidXRpb24oZmxvYXQgeCwgZmxvYXQgcm91Z2huZXNzKSB7XG4gIGZsb2F0IE5kb3RIID0gbWF4KHgsIDAuMDAwMSk7XG4gIGZsb2F0IGNvczJBbHBoYSA9IE5kb3RIICogTmRvdEg7XG4gIGZsb2F0IHRhbjJBbHBoYSA9IChjb3MyQWxwaGEgLSAxLjApIC8gY29zMkFscGhhO1xuICBmbG9hdCByb3VnaG5lc3MyID0gcm91Z2huZXNzICogcm91Z2huZXNzO1xuICBmbG9hdCBkZW5vbSA9IDMuMTQxNTkyNjUzNTg5NzkzICogcm91Z2huZXNzMiAqIGNvczJBbHBoYSAqIGNvczJBbHBoYTtcbiAgcmV0dXJuIGV4cCh0YW4yQWxwaGEgLyByb3VnaG5lc3MyKSAvIGRlbm9tO1xufVxuXG5mbG9hdCBiZWNrbWFublNwZWN1bGFyKFxuICB2ZWMzIGxpZ2h0RGlyZWN0aW9uLFxuICB2ZWMzIHZpZXdEaXJlY3Rpb24sXG4gIHZlYzMgc3VyZmFjZU5vcm1hbCxcbiAgZmxvYXQgcm91Z2huZXNzKSB7XG4gIHJldHVybiBiZWNrbWFubkRpc3RyaWJ1dGlvbihkb3Qoc3VyZmFjZU5vcm1hbCwgbm9ybWFsaXplKGxpZ2h0RGlyZWN0aW9uICsgdmlld0RpcmVjdGlvbikpLCByb3VnaG5lc3MpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UoZmxvYXQgYSwgZmxvYXQgYiwgZmxvYXQgcCkge1xuICByZXR1cm4gKChwID4gbWF4KGEsIGIpKSB8fCBcbiAgICAgICAgICAocCA8IG1pbihhLCBiKSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMiBhLCB2ZWMyIGIsIHZlYzIgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzMgYSwgdmVjMyBiLCB2ZWMzIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS56LCBiLnosIHAueikpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjNCBhLCB2ZWM0IGIsIHZlYzQgcCkge1xuICByZXR1cm4gb3V0T2ZSYW5nZShhLnh5eiwgYi54eXosIHAueHl6KTtcbn1cblxudW5pZm9ybSB2ZWMzIGxvd2VyQm91bmQsIHVwcGVyQm91bmQ7XG51bmlmb3JtIGZsb2F0IGNvbnRvdXJUaW50O1xudW5pZm9ybSB2ZWM0IGNvbnRvdXJDb2xvcjtcbnVuaWZvcm0gc2FtcGxlcjJEIGNvbG9ybWFwO1xudW5pZm9ybSB2ZWMzIGNsaXBCb3VuZHNbMl07XG51bmlmb3JtIGZsb2F0IHJvdWdobmVzcywgZnJlc25lbCwga2FtYmllbnQsIGtkaWZmdXNlLCBrc3BlY3VsYXIsIG9wYWNpdHk7XG51bmlmb3JtIGZsb2F0IHZlcnRleENvbG9yO1xuXG52YXJ5aW5nIGZsb2F0IHZhbHVlLCBraWxsO1xudmFyeWluZyB2ZWMzIHdvcmxkQ29vcmRpbmF0ZTtcbnZhcnlpbmcgdmVjMyBsaWdodERpcmVjdGlvbiwgZXllRGlyZWN0aW9uLCBzdXJmYWNlTm9ybWFsO1xudmFyeWluZyB2ZWM0IHZDb2xvcjtcblxudm9pZCBtYWluKCkge1xuICBpZiAoKGtpbGwgPiAwLjApIHx8XG4gICAgICAob3V0T2ZSYW5nZShjbGlwQm91bmRzWzBdLCBjbGlwQm91bmRzWzFdLCB3b3JsZENvb3JkaW5hdGUpKSkgZGlzY2FyZDtcblxuICB2ZWMzIE4gPSBub3JtYWxpemUoc3VyZmFjZU5vcm1hbCk7XG4gIHZlYzMgViA9IG5vcm1hbGl6ZShleWVEaXJlY3Rpb24pO1xuICB2ZWMzIEwgPSBub3JtYWxpemUobGlnaHREaXJlY3Rpb24pO1xuXG4gIGlmKGdsX0Zyb250RmFjaW5nKSB7XG4gICAgTiA9IC1OO1xuICB9XG5cbiAgZmxvYXQgc3BlY3VsYXIgPSBtYXgoYmVja21hbm5TcGVjdWxhcihMLCBWLCBOLCByb3VnaG5lc3MpLCAwLik7XG4gIGZsb2F0IGRpZmZ1c2UgID0gbWluKGthbWJpZW50ICsga2RpZmZ1c2UgKiBtYXgoZG90KE4sIEwpLCAwLjApLCAxLjApO1xuXG4gIC8vZGVjaWRlIGhvdyB0byBpbnRlcnBvbGF0ZSBjb2xvciBcdTIwMTQgaW4gdmVydGV4IG9yIGluIGZyYWdtZW50XG4gIHZlYzQgc3VyZmFjZUNvbG9yID1cbiAgICBzdGVwKHZlcnRleENvbG9yLCAuNSkgKiB0ZXh0dXJlMkQoY29sb3JtYXAsIHZlYzIodmFsdWUsIHZhbHVlKSkgK1xuICAgIHN0ZXAoLjUsIHZlcnRleENvbG9yKSAqIHZDb2xvcjtcblxuICB2ZWM0IGxpdENvbG9yID0gc3VyZmFjZUNvbG9yLmEgKiB2ZWM0KGRpZmZ1c2UgKiBzdXJmYWNlQ29sb3IucmdiICsga3NwZWN1bGFyICogdmVjMygxLDEsMSkgKiBzcGVjdWxhciwgIDEuMCk7XG5cbiAgZ2xfRnJhZ0NvbG9yID0gbWl4KGxpdENvbG9yLCBjb250b3VyQ29sb3IsIGNvbnRvdXJUaW50KSAqIG9wYWNpdHk7XG59XG4iXSkscz1hKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzQgdXY7XG5hdHRyaWJ1dGUgZmxvYXQgZjtcblxudW5pZm9ybSB2ZWMzIG9iamVjdE9mZnNldDtcbnVuaWZvcm0gbWF0MyBwZXJtdXRhdGlvbjtcbnVuaWZvcm0gbWF0NCBtb2RlbCwgdmlldywgcHJvamVjdGlvbjtcbnVuaWZvcm0gZmxvYXQgaGVpZ2h0LCB6T2Zmc2V0O1xudW5pZm9ybSBzYW1wbGVyMkQgY29sb3JtYXA7XG5cbnZhcnlpbmcgZmxvYXQgdmFsdWUsIGtpbGw7XG52YXJ5aW5nIHZlYzMgd29ybGRDb29yZGluYXRlO1xudmFyeWluZyB2ZWMyIHBsYW5lQ29vcmRpbmF0ZTtcbnZhcnlpbmcgdmVjMyBsaWdodERpcmVjdGlvbiwgZXllRGlyZWN0aW9uLCBzdXJmYWNlTm9ybWFsO1xudmFyeWluZyB2ZWM0IHZDb2xvcjtcblxudm9pZCBtYWluKCkge1xuICB2ZWMzIGRhdGFDb29yZGluYXRlID0gcGVybXV0YXRpb24gKiB2ZWMzKHV2Lnh5LCBoZWlnaHQpO1xuICB3b3JsZENvb3JkaW5hdGUgPSBvYmplY3RPZmZzZXQgKyBkYXRhQ29vcmRpbmF0ZTtcbiAgdmVjNCB3b3JsZFBvc2l0aW9uID0gbW9kZWwgKiB2ZWM0KHdvcmxkQ29vcmRpbmF0ZSwgMS4wKTtcblxuICB2ZWM0IGNsaXBQb3NpdGlvbiA9IHByb2plY3Rpb24gKiB2aWV3ICogd29ybGRQb3NpdGlvbjtcbiAgY2xpcFBvc2l0aW9uLnogKz0gek9mZnNldDtcblxuICBnbF9Qb3NpdGlvbiA9IGNsaXBQb3NpdGlvbjtcbiAgdmFsdWUgPSBmICsgb2JqZWN0T2Zmc2V0Lno7XG4gIGtpbGwgPSAtMS4wO1xuICBwbGFuZUNvb3JkaW5hdGUgPSB1di56dztcblxuICB2Q29sb3IgPSB0ZXh0dXJlMkQoY29sb3JtYXAsIHZlYzIodmFsdWUsIHZhbHVlKSk7XG5cbiAgLy9Eb24ndCBkbyBsaWdodGluZyBmb3IgY29udG91cnNcbiAgc3VyZmFjZU5vcm1hbCAgID0gdmVjMygxLDAsMCk7XG4gIGV5ZURpcmVjdGlvbiAgICA9IHZlYzMoMCwxLDApO1xuICBsaWdodERpcmVjdGlvbiAgPSB2ZWMzKDAsMCwxKTtcbn1cbiJdKSxsPWEoWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5ib29sIG91dE9mUmFuZ2UoZmxvYXQgYSwgZmxvYXQgYiwgZmxvYXQgcCkge1xuICByZXR1cm4gKChwID4gbWF4KGEsIGIpKSB8fCBcbiAgICAgICAgICAocCA8IG1pbihhLCBiKSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMiBhLCB2ZWMyIGIsIHZlYzIgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzMgYSwgdmVjMyBiLCB2ZWMzIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS56LCBiLnosIHAueikpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjNCBhLCB2ZWM0IGIsIHZlYzQgcCkge1xuICByZXR1cm4gb3V0T2ZSYW5nZShhLnh5eiwgYi54eXosIHAueHl6KTtcbn1cblxudW5pZm9ybSB2ZWMyIHNoYXBlO1xudW5pZm9ybSB2ZWMzIGNsaXBCb3VuZHNbMl07XG51bmlmb3JtIGZsb2F0IHBpY2tJZDtcblxudmFyeWluZyBmbG9hdCB2YWx1ZSwga2lsbDtcbnZhcnlpbmcgdmVjMyB3b3JsZENvb3JkaW5hdGU7XG52YXJ5aW5nIHZlYzIgcGxhbmVDb29yZGluYXRlO1xudmFyeWluZyB2ZWMzIHN1cmZhY2VOb3JtYWw7XG5cbnZlYzIgc3BsaXRGbG9hdChmbG9hdCB2KSB7XG4gIGZsb2F0IHZoID0gMjU1LjAgKiB2O1xuICBmbG9hdCB1cHBlciA9IGZsb29yKHZoKTtcbiAgZmxvYXQgbG93ZXIgPSBmcmFjdCh2aCk7XG4gIHJldHVybiB2ZWMyKHVwcGVyIC8gMjU1LjAsIGZsb29yKGxvd2VyICogMTYuMCkgLyAxNi4wKTtcbn1cblxudm9pZCBtYWluKCkge1xuICBpZiAoKGtpbGwgPiAwLjApIHx8XG4gICAgICAob3V0T2ZSYW5nZShjbGlwQm91bmRzWzBdLCBjbGlwQm91bmRzWzFdLCB3b3JsZENvb3JkaW5hdGUpKSkgZGlzY2FyZDtcblxuICB2ZWMyIHV4ID0gc3BsaXRGbG9hdChwbGFuZUNvb3JkaW5hdGUueCAvIHNoYXBlLngpO1xuICB2ZWMyIHV5ID0gc3BsaXRGbG9hdChwbGFuZUNvb3JkaW5hdGUueSAvIHNoYXBlLnkpO1xuICBnbF9GcmFnQ29sb3IgPSB2ZWM0KHBpY2tJZCwgdXgueCwgdXkueCwgdXgueSArICh1eS55LzE2LjApKTtcbn1cbiJdKTtyLmNyZWF0ZVNoYWRlcj1mdW5jdGlvbih0KXt2YXIgZT1uKHQsaSxvLG51bGwsW3tuYW1lOiJ1diIsdHlwZToidmVjNCJ9LHtuYW1lOiJmIix0eXBlOiJ2ZWMzIn0se25hbWU6Im5vcm1hbCIsdHlwZToidmVjMyJ9XSk7cmV0dXJuIGUuYXR0cmlidXRlcy51di5sb2NhdGlvbj0wLGUuYXR0cmlidXRlcy5mLmxvY2F0aW9uPTEsZS5hdHRyaWJ1dGVzLm5vcm1hbC5sb2NhdGlvbj0yLGV9LHIuY3JlYXRlUGlja1NoYWRlcj1mdW5jdGlvbih0KXt2YXIgZT1uKHQsaSxsLG51bGwsW3tuYW1lOiJ1diIsdHlwZToidmVjNCJ9LHtuYW1lOiJmIix0eXBlOiJ2ZWMzIn0se25hbWU6Im5vcm1hbCIsdHlwZToidmVjMyJ9XSk7cmV0dXJuIGUuYXR0cmlidXRlcy51di5sb2NhdGlvbj0wLGUuYXR0cmlidXRlcy5mLmxvY2F0aW9uPTEsZS5hdHRyaWJ1dGVzLm5vcm1hbC5sb2NhdGlvbj0yLGV9LHIuY3JlYXRlQ29udG91clNoYWRlcj1mdW5jdGlvbih0KXt2YXIgZT1uKHQscyxvLG51bGwsW3tuYW1lOiJ1diIsdHlwZToidmVjNCJ9LHtuYW1lOiJmIix0eXBlOiJmbG9hdCJ9XSk7cmV0dXJuIGUuYXR0cmlidXRlcy51di5sb2NhdGlvbj0wLGUuYXR0cmlidXRlcy5mLmxvY2F0aW9uPTEsZX0sci5jcmVhdGVQaWNrQ29udG91clNoYWRlcj1mdW5jdGlvbih0KXt2YXIgZT1uKHQscyxsLG51bGwsW3tuYW1lOiJ1diIsdHlwZToidmVjNCJ9LHtuYW1lOiJmIix0eXBlOiJmbG9hdCJ9XSk7cmV0dXJuIGUuYXR0cmlidXRlcy51di5sb2NhdGlvbj0wLGUuYXR0cmlidXRlcy5mLmxvY2F0aW9uPTEsZX19LHsiZ2wtc2hhZGVyIjozMDQsZ2xzbGlmeTo0MTF9XSwzMTc6W2Z1bmN0aW9uKHQsZSxyKXthcmd1bWVudHNbNF1bMTEzXVswXS5hcHBseShyLGFyZ3VtZW50cyl9LHtkdXA6MTEzfV0sMzE4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10LmdsLHI9eShlKSxuPWIoZSkscz14KGUpLGw9XyhlKSxjPWEoZSksdT1pKGUsW3tidWZmZXI6YyxzaXplOjQsc3RyaWRlOncsb2Zmc2V0OjB9LHtidWZmZXI6YyxzaXplOjMsc3RyaWRlOncsb2Zmc2V0OjE2fSx7YnVmZmVyOmMsc2l6ZTozLHN0cmlkZTp3LG9mZnNldDoyOH1dKSxoPWEoZSksZj1pKGUsW3tidWZmZXI6aCxzaXplOjQsc3RyaWRlOjIwLG9mZnNldDowfSx7YnVmZmVyOmgsc2l6ZToxLHN0cmlkZToyMCxvZmZzZXQ6MTZ9XSkscD1hKGUpLGQ9aShlLFt7YnVmZmVyOnAsc2l6ZToyLHR5cGU6ZS5GTE9BVH1dKSxnPW8oZSwxLFMsZS5SR0JBLGUuVU5TSUdORURfQllURSk7Zy5taW5GaWx0ZXI9ZS5MSU5FQVIsZy5tYWdGaWx0ZXI9ZS5MSU5FQVI7dmFyIHY9bmV3IEUoZSxbMCwwXSxbWzAsMCwwXSxbMCwwLDBdXSxyLG4sYyx1LGcscyxsLGgsZixwLGQsWzAsMCwwXSksbT17bGV2ZWxzOltbXSxbXSxbXV19O2Zvcih2YXIgayBpbiB0KW1ba109dFtrXTtyZXR1cm4gbS5jb2xvcm1hcD1tLmNvbG9ybWFwfHwiamV0Iix2LnVwZGF0ZShtKSx2fTt2YXIgbj10KCJiaXQtdHdpZGRsZSIpLGE9dCgiZ2wtYnVmZmVyIiksaT10KCJnbC12YW8iKSxvPXQoImdsLXRleHR1cmUyZCIpLHM9dCgidHlwZWRhcnJheS1wb29sIiksbD10KCJjb2xvcm1hcCIpLGM9dCgibmRhcnJheS1vcHMiKSx1PXQoIm5kYXJyYXktcGFjayIpLGg9dCgibmRhcnJheSIpLGY9dCgic3VyZmFjZS1uZXRzIikscD10KCJnbC1tYXQ0L211bHRpcGx5IiksZD10KCJnbC1tYXQ0L2ludmVydCIpLGc9dCgiYmluYXJ5LXNlYXJjaC1ib3VuZHMiKSx2PXQoIm5kYXJyYXktZ3JhZGllbnQiKSxtPXQoIi4vbGliL3NoYWRlcnMiKSx5PW0uY3JlYXRlU2hhZGVyLHg9bS5jcmVhdGVDb250b3VyU2hhZGVyLGI9bS5jcmVhdGVQaWNrU2hhZGVyLF89bS5jcmVhdGVQaWNrQ29udG91clNoYWRlcix3PTQwLGs9WzEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLDAsMCwwLDFdLFQ9W1swLDBdLFswLDFdLFsxLDBdLFsxLDFdLFsxLDBdLFswLDFdXSxNPVtbMCwwLDAsMCwwLDAsMCwwLDBdLFswLDAsMCwwLDAsMCwwLDAsMF0sWzAsMCwwLDAsMCwwLDAsMCwwXV07ZnVuY3Rpb24gQSh0LGUscixuLGEpe3RoaXMucG9zaXRpb249dCx0aGlzLmluZGV4PWUsdGhpcy51dj1yLHRoaXMubGV2ZWw9bix0aGlzLmRhdGFDb29yZGluYXRlPWF9IWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDwzOysrdCl7dmFyIGU9TVt0XSxyPSh0KzIpJTM7ZVsodCsxKSUzKzBdPTEsZVtyKzNdPTEsZVt0KzZdPTF9fSgpO3ZhciBTPTI1NjtmdW5jdGlvbiBFKHQsZSxyLG4sYSxpLG8sbCxjLHUsZixwLGQsZyx2KXt0aGlzLmdsPXQsdGhpcy5zaGFwZT1lLHRoaXMuYm91bmRzPXIsdGhpcy5vYmplY3RPZmZzZXQ9dix0aGlzLmludGVuc2l0eUJvdW5kcz1bXSx0aGlzLl9zaGFkZXI9bix0aGlzLl9waWNrU2hhZGVyPWEsdGhpcy5fY29vcmRpbmF0ZUJ1ZmZlcj1pLHRoaXMuX3Zhbz1vLHRoaXMuX2NvbG9yTWFwPWwsdGhpcy5fY29udG91clNoYWRlcj1jLHRoaXMuX2NvbnRvdXJQaWNrU2hhZGVyPXUsdGhpcy5fY29udG91ckJ1ZmZlcj1mLHRoaXMuX2NvbnRvdXJWQU89cCx0aGlzLl9jb250b3VyT2Zmc2V0cz1bW10sW10sW11dLHRoaXMuX2NvbnRvdXJDb3VudHM9W1tdLFtdLFtdXSx0aGlzLl92ZXJ0ZXhDb3VudD0wLHRoaXMuX3BpY2tSZXN1bHQ9bmV3IEEoWzAsMCwwXSxbMCwwXSxbMCwwXSxbMCwwLDBdLFswLDAsMF0pLHRoaXMuX2R5bmFtaWNCdWZmZXI9ZCx0aGlzLl9keW5hbWljVkFPPWcsdGhpcy5fZHluYW1pY09mZnNldHM9WzAsMCwwXSx0aGlzLl9keW5hbWljQ291bnRzPVswLDAsMF0sdGhpcy5jb250b3VyV2lkdGg9WzEsMSwxXSx0aGlzLmNvbnRvdXJMZXZlbHM9W1sxXSxbMV0sWzFdXSx0aGlzLmNvbnRvdXJUaW50PVswLDAsMF0sdGhpcy5jb250b3VyQ29sb3I9W1suNSwuNSwuNSwxXSxbLjUsLjUsLjUsMV0sWy41LC41LC41LDFdXSx0aGlzLnNob3dDb250b3VyPSEwLHRoaXMuc2hvd1N1cmZhY2U9ITAsdGhpcy5lbmFibGVIaWdobGlnaHQ9WyEwLCEwLCEwXSx0aGlzLmhpZ2hsaWdodENvbG9yPVtbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0sdGhpcy5oaWdobGlnaHRUaW50PVsxLDEsMV0sdGhpcy5oaWdobGlnaHRMZXZlbD1bLTEsLTEsLTFdLHRoaXMuZW5hYmxlRHluYW1pYz1bITAsITAsITBdLHRoaXMuZHluYW1pY0xldmVsPVtOYU4sTmFOLE5hTl0sdGhpcy5keW5hbWljQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLmR5bmFtaWNUaW50PVsxLDEsMV0sdGhpcy5keW5hbWljV2lkdGg9WzEsMSwxXSx0aGlzLmF4ZXNCb3VuZHM9W1sxLzAsMS8wLDEvMF0sWy0xLzAsLTEvMCwtMS8wXV0sdGhpcy5zdXJmYWNlUHJvamVjdD1bITEsITEsITFdLHRoaXMuY29udG91clByb2plY3Q9W1shMSwhMSwhMV0sWyExLCExLCExXSxbITEsITEsITFdXSx0aGlzLmNvbG9yQm91bmRzPVshMSwhMV0sdGhpcy5fZmllbGQ9W2gocy5tYWxsb2NGbG9hdCgxMDI0KSxbMCwwXSksaChzLm1hbGxvY0Zsb2F0KDEwMjQpLFswLDBdKSxoKHMubWFsbG9jRmxvYXQoMTAyNCksWzAsMF0pXSx0aGlzLnBpY2tJZD0xLHRoaXMuY2xpcEJvdW5kcz1bWy0xLzAsLTEvMCwtMS8wXSxbMS8wLDEvMCwxLzBdXSx0aGlzLnNuYXBUb0RhdGE9ITEsdGhpcy5waXhlbFJhdGlvPTEsdGhpcy5vcGFjaXR5PTEsdGhpcy5saWdodFBvc2l0aW9uPVsxMCwxZTQsMF0sdGhpcy5hbWJpZW50TGlnaHQ9LjgsdGhpcy5kaWZmdXNlTGlnaHQ9LjgsdGhpcy5zcGVjdWxhckxpZ2h0PTIsdGhpcy5yb3VnaG5lc3M9LjUsdGhpcy5mcmVzbmVsPTEuNSx0aGlzLnZlcnRleENvbG9yPTAsdGhpcy5kaXJ0eT0hMH12YXIgTD1FLnByb3RvdHlwZTtMLmlzVHJhbnNwYXJlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vcGFjaXR5PDF9LEwuaXNPcGFxdWU9ZnVuY3Rpb24oKXtpZih0aGlzLm9wYWNpdHk+PTEpcmV0dXJuITA7Zm9yKHZhciB0PTA7dDwzOysrdClpZih0aGlzLl9jb250b3VyQ291bnRzW3RdLmxlbmd0aD4wfHx0aGlzLl9keW5hbWljQ291bnRzW3RdPjApcmV0dXJuITA7cmV0dXJuITF9LEwucGlja1Nsb3RzPTEsTC5zZXRQaWNrQmFzZT1mdW5jdGlvbih0KXt0aGlzLnBpY2tJZD10fTt2YXIgQz1bMCwwLDBdLFA9e3Nob3dTdXJmYWNlOiExLHNob3dDb250b3VyOiExLHByb2plY3Rpb25zOltrLnNsaWNlKCksay5zbGljZSgpLGsuc2xpY2UoKV0sY2xpcEJvdW5kczpbW1swLDAsMF0sWzAsMCwwXV0sW1swLDAsMF0sWzAsMCwwXV0sW1swLDAsMF0sWzAsMCwwXV1dfTtmdW5jdGlvbiBPKHQsZSl7dmFyIHIsbixhLGk9ZS5heGVzJiZlLmF4ZXMubGFzdEN1YmVQcm9wcy5heGlzfHxDLG89ZS5zaG93U3VyZmFjZSxzPWUuc2hvd0NvbnRvdXI7Zm9yKHI9MDtyPDM7KytyKWZvcihvPW98fGUuc3VyZmFjZVByb2plY3Rbcl0sbj0wO248MzsrK24pcz1zfHxlLmNvbnRvdXJQcm9qZWN0W3JdW25dO2ZvcihyPTA7cjwzOysrcil7dmFyIGw9UC5wcm9qZWN0aW9uc1tyXTtmb3Iobj0wO248MTY7KytuKWxbbl09MDtmb3Iobj0wO248NDsrK24pbFs1Km5dPTE7bFs1KnJdPTAsbFsxMityXT1lLmF4ZXNCb3VuZHNbKyhpW3JdPjApXVtyXSxwKGwsdC5tb2RlbCxsKTt2YXIgYz1QLmNsaXBCb3VuZHNbcl07Zm9yKGE9MDthPDI7KythKWZvcihuPTA7bjwzOysrbiljW2FdW25dPXQuY2xpcEJvdW5kc1thXVtuXTtjWzBdW3JdPS0xZTgsY1sxXVtyXT0xZTh9cmV0dXJuIFAuc2hvd1N1cmZhY2U9byxQLnNob3dDb250b3VyPXMsUH12YXIgej17bW9kZWw6ayx2aWV3OmsscHJvamVjdGlvbjprLGludmVyc2VNb2RlbDprLnNsaWNlKCksbG93ZXJCb3VuZDpbMCwwLDBdLHVwcGVyQm91bmQ6WzAsMCwwXSxjb2xvck1hcDowLGNsaXBCb3VuZHM6W1swLDAsMF0sWzAsMCwwXV0saGVpZ2h0OjAsY29udG91clRpbnQ6MCxjb250b3VyQ29sb3I6WzAsMCwwLDFdLHBlcm11dGF0aW9uOlsxLDAsMCwwLDEsMCwwLDAsMV0sek9mZnNldDotMWUtNCxvYmplY3RPZmZzZXQ6WzAsMCwwXSxrYW1iaWVudDoxLGtkaWZmdXNlOjEsa3NwZWN1bGFyOjEsbGlnaHRQb3NpdGlvbjpbMWUzLDFlMywxZTNdLGV5ZVBvc2l0aW9uOlswLDAsMF0scm91Z2huZXNzOjEsZnJlc25lbDoxLG9wYWNpdHk6MSx2ZXJ0ZXhDb2xvcjowfSxJPWsuc2xpY2UoKSxEPVsxLDAsMCwwLDEsMCwwLDAsMV07ZnVuY3Rpb24gUih0LGUpe3Q9dHx8e307dmFyIHI9dGhpcy5nbDtyLmRpc2FibGUoci5DVUxMX0ZBQ0UpLHRoaXMuX2NvbG9yTWFwLmJpbmQoMCk7dmFyIG49ejtuLm1vZGVsPXQubW9kZWx8fGssbi52aWV3PXQudmlld3x8ayxuLnByb2plY3Rpb249dC5wcm9qZWN0aW9ufHxrLG4ubG93ZXJCb3VuZD1bdGhpcy5ib3VuZHNbMF1bMF0sdGhpcy5ib3VuZHNbMF1bMV0sdGhpcy5jb2xvckJvdW5kc1swXXx8dGhpcy5ib3VuZHNbMF1bMl1dLG4udXBwZXJCb3VuZD1bdGhpcy5ib3VuZHNbMV1bMF0sdGhpcy5ib3VuZHNbMV1bMV0sdGhpcy5jb2xvckJvdW5kc1sxXXx8dGhpcy5ib3VuZHNbMV1bMl1dLG4ub2JqZWN0T2Zmc2V0PXRoaXMub2JqZWN0T2Zmc2V0LG4uY29udG91ckNvbG9yPXRoaXMuY29udG91ckNvbG9yWzBdLG4uaW52ZXJzZU1vZGVsPWQobi5pbnZlcnNlTW9kZWwsbi5tb2RlbCk7Zm9yKHZhciBhPTA7YTwyOysrYSlmb3IodmFyIGk9bi5jbGlwQm91bmRzW2FdLG89MDtvPDM7KytvKWlbb109TWF0aC5taW4oTWF0aC5tYXgodGhpcy5jbGlwQm91bmRzW2FdW29dLC0xZTgpLDFlOCk7bi5rYW1iaWVudD10aGlzLmFtYmllbnRMaWdodCxuLmtkaWZmdXNlPXRoaXMuZGlmZnVzZUxpZ2h0LG4ua3NwZWN1bGFyPXRoaXMuc3BlY3VsYXJMaWdodCxuLnJvdWdobmVzcz10aGlzLnJvdWdobmVzcyxuLmZyZXNuZWw9dGhpcy5mcmVzbmVsLG4ub3BhY2l0eT10aGlzLm9wYWNpdHksbi5oZWlnaHQ9MCxuLnBlcm11dGF0aW9uPUQsbi52ZXJ0ZXhDb2xvcj10aGlzLnZlcnRleENvbG9yO3ZhciBzPUk7Zm9yKHAocyxuLnZpZXcsbi5tb2RlbCkscChzLG4ucHJvamVjdGlvbixzKSxkKHMscyksYT0wO2E8MzsrK2Epbi5leWVQb3NpdGlvblthXT1zWzEyK2FdL3NbMTVdO3ZhciBsPXNbMTVdO2ZvcihhPTA7YTwzOysrYSlsKz10aGlzLmxpZ2h0UG9zaXRpb25bYV0qc1s0KmErM107Zm9yKGE9MDthPDM7KythKXt2YXIgYz1zWzEyK2FdO2ZvcihvPTA7bzwzOysrbyljKz1zWzQqbythXSp0aGlzLmxpZ2h0UG9zaXRpb25bb107bi5saWdodFBvc2l0aW9uW2FdPWMvbH12YXIgdT1PKG4sdGhpcyk7aWYodS5zaG93U3VyZmFjZSYmZT09PXRoaXMub3BhY2l0eTwxKXtmb3IodGhpcy5fc2hhZGVyLmJpbmQoKSx0aGlzLl9zaGFkZXIudW5pZm9ybXM9bix0aGlzLl92YW8uYmluZCgpLHRoaXMuc2hvd1N1cmZhY2UmJnRoaXMuX3ZlcnRleENvdW50JiZ0aGlzLl92YW8uZHJhdyhyLlRSSUFOR0xFUyx0aGlzLl92ZXJ0ZXhDb3VudCksYT0wO2E8MzsrK2EpdGhpcy5zdXJmYWNlUHJvamVjdFthXSYmdGhpcy52ZXJ0ZXhDb3VudCYmKHRoaXMuX3NoYWRlci51bmlmb3Jtcy5tb2RlbD11LnByb2plY3Rpb25zW2FdLHRoaXMuX3NoYWRlci51bmlmb3Jtcy5jbGlwQm91bmRzPXUuY2xpcEJvdW5kc1thXSx0aGlzLl92YW8uZHJhdyhyLlRSSUFOR0xFUyx0aGlzLl92ZXJ0ZXhDb3VudCkpO3RoaXMuX3Zhby51bmJpbmQoKX1pZih1LnNob3dDb250b3VyJiYhZSl7dmFyIGg9dGhpcy5fY29udG91clNoYWRlcjtuLmthbWJpZW50PTEsbi5rZGlmZnVzZT0wLG4ua3NwZWN1bGFyPTAsbi5vcGFjaXR5PTEsaC5iaW5kKCksaC51bmlmb3Jtcz1uO3ZhciBmPXRoaXMuX2NvbnRvdXJWQU87Zm9yKGYuYmluZCgpLGE9MDthPDM7KythKWZvcihoLnVuaWZvcm1zLnBlcm11dGF0aW9uPU1bYV0sci5saW5lV2lkdGgodGhpcy5jb250b3VyV2lkdGhbYV0qdGhpcy5waXhlbFJhdGlvKSxvPTA7bzx0aGlzLmNvbnRvdXJMZXZlbHNbYV0ubGVuZ3RoOysrbylvPT09dGhpcy5oaWdobGlnaHRMZXZlbFthXT8oaC51bmlmb3Jtcy5jb250b3VyQ29sb3I9dGhpcy5oaWdobGlnaHRDb2xvclthXSxoLnVuaWZvcm1zLmNvbnRvdXJUaW50PXRoaXMuaGlnaGxpZ2h0VGludFthXSk6MCE9PW8mJm8tMSE9PXRoaXMuaGlnaGxpZ2h0TGV2ZWxbYV18fChoLnVuaWZvcm1zLmNvbnRvdXJDb2xvcj10aGlzLmNvbnRvdXJDb2xvclthXSxoLnVuaWZvcm1zLmNvbnRvdXJUaW50PXRoaXMuY29udG91clRpbnRbYV0pLHRoaXMuX2NvbnRvdXJDb3VudHNbYV1bb10mJihoLnVuaWZvcm1zLmhlaWdodD10aGlzLmNvbnRvdXJMZXZlbHNbYV1bb10sZi5kcmF3KHIuTElORVMsdGhpcy5fY29udG91ckNvdW50c1thXVtvXSx0aGlzLl9jb250b3VyT2Zmc2V0c1thXVtvXSkpO2ZvcihhPTA7YTwzOysrYSlmb3IoaC51bmlmb3Jtcy5tb2RlbD11LnByb2plY3Rpb25zW2FdLGgudW5pZm9ybXMuY2xpcEJvdW5kcz11LmNsaXBCb3VuZHNbYV0sbz0wO288MzsrK28paWYodGhpcy5jb250b3VyUHJvamVjdFthXVtvXSl7aC51bmlmb3Jtcy5wZXJtdXRhdGlvbj1NW29dLHIubGluZVdpZHRoKHRoaXMuY29udG91cldpZHRoW29dKnRoaXMucGl4ZWxSYXRpbyk7Zm9yKHZhciBnPTA7Zzx0aGlzLmNvbnRvdXJMZXZlbHNbb10ubGVuZ3RoOysrZylnPT09dGhpcy5oaWdobGlnaHRMZXZlbFtvXT8oaC51bmlmb3Jtcy5jb250b3VyQ29sb3I9dGhpcy5oaWdobGlnaHRDb2xvcltvXSxoLnVuaWZvcm1zLmNvbnRvdXJUaW50PXRoaXMuaGlnaGxpZ2h0VGludFtvXSk6MCE9PWcmJmctMSE9PXRoaXMuaGlnaGxpZ2h0TGV2ZWxbb118fChoLnVuaWZvcm1zLmNvbnRvdXJDb2xvcj10aGlzLmNvbnRvdXJDb2xvcltvXSxoLnVuaWZvcm1zLmNvbnRvdXJUaW50PXRoaXMuY29udG91clRpbnRbb10pLHRoaXMuX2NvbnRvdXJDb3VudHNbb11bZ10mJihoLnVuaWZvcm1zLmhlaWdodD10aGlzLmNvbnRvdXJMZXZlbHNbb11bZ10sZi5kcmF3KHIuTElORVMsdGhpcy5fY29udG91ckNvdW50c1tvXVtnXSx0aGlzLl9jb250b3VyT2Zmc2V0c1tvXVtnXSkpfWZvcihmLnVuYmluZCgpLChmPXRoaXMuX2R5bmFtaWNWQU8pLmJpbmQoKSxhPTA7YTwzOysrYSlpZigwIT09dGhpcy5fZHluYW1pY0NvdW50c1thXSlmb3IoaC51bmlmb3Jtcy5tb2RlbD1uLm1vZGVsLGgudW5pZm9ybXMuY2xpcEJvdW5kcz1uLmNsaXBCb3VuZHMsaC51bmlmb3Jtcy5wZXJtdXRhdGlvbj1NW2FdLHIubGluZVdpZHRoKHRoaXMuZHluYW1pY1dpZHRoW2FdKnRoaXMucGl4ZWxSYXRpbyksaC51bmlmb3Jtcy5jb250b3VyQ29sb3I9dGhpcy5keW5hbWljQ29sb3JbYV0saC51bmlmb3Jtcy5jb250b3VyVGludD10aGlzLmR5bmFtaWNUaW50W2FdLGgudW5pZm9ybXMuaGVpZ2h0PXRoaXMuZHluYW1pY0xldmVsW2FdLGYuZHJhdyhyLkxJTkVTLHRoaXMuX2R5bmFtaWNDb3VudHNbYV0sdGhpcy5fZHluYW1pY09mZnNldHNbYV0pLG89MDtvPDM7KytvKXRoaXMuY29udG91clByb2plY3Rbb11bYV0mJihoLnVuaWZvcm1zLm1vZGVsPXUucHJvamVjdGlvbnNbb10saC51bmlmb3Jtcy5jbGlwQm91bmRzPXUuY2xpcEJvdW5kc1tvXSxmLmRyYXcoci5MSU5FUyx0aGlzLl9keW5hbWljQ291bnRzW2FdLHRoaXMuX2R5bmFtaWNPZmZzZXRzW2FdKSk7Zi51bmJpbmQoKX19TC5kcmF3PWZ1bmN0aW9uKHQpe3JldHVybiBSLmNhbGwodGhpcyx0LCExKX0sTC5kcmF3VHJhbnNwYXJlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIFIuY2FsbCh0aGlzLHQsITApfTt2YXIgRj17bW9kZWw6ayx2aWV3OmsscHJvamVjdGlvbjprLGludmVyc2VNb2RlbDprLGNsaXBCb3VuZHM6W1swLDAsMF0sWzAsMCwwXV0saGVpZ2h0OjAsc2hhcGU6WzAsMF0scGlja0lkOjAsbG93ZXJCb3VuZDpbMCwwLDBdLHVwcGVyQm91bmQ6WzAsMCwwXSx6T2Zmc2V0OjAsb2JqZWN0T2Zmc2V0OlswLDAsMF0scGVybXV0YXRpb246WzEsMCwwLDAsMSwwLDAsMCwxXSxsaWdodFBvc2l0aW9uOlswLDAsMF0sZXllUG9zaXRpb246WzAsMCwwXX07ZnVuY3Rpb24gQih0LGUpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP1tlKHRbMF0pLGUodFsxXSksZSh0WzJdKV06W2UodCksZSh0KSxlKHQpXX1mdW5jdGlvbiBOKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpPzM9PT10Lmxlbmd0aD9bdFswXSx0WzFdLHRbMl0sMV06W3RbMF0sdFsxXSx0WzJdLHRbM11dOlswLDAsMCwxXX1mdW5jdGlvbiBqKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuW04odFswXSksTih0WzFdKSxOKHRbMl0pXTt2YXIgZT1OKHQpO3JldHVybltlLnNsaWNlKCksZS5zbGljZSgpLGUuc2xpY2UoKV19fUwuZHJhd1BpY2s9ZnVuY3Rpb24odCl7dD10fHx7fTt2YXIgZT10aGlzLmdsO2UuZGlzYWJsZShlLkNVTExfRkFDRSk7dmFyIHI9RjtyLm1vZGVsPXQubW9kZWx8fGssci52aWV3PXQudmlld3x8ayxyLnByb2plY3Rpb249dC5wcm9qZWN0aW9ufHxrLHIuc2hhcGU9dGhpcy5fZmllbGRbMl0uc2hhcGUsci5waWNrSWQ9dGhpcy5waWNrSWQvMjU1LHIubG93ZXJCb3VuZD10aGlzLmJvdW5kc1swXSxyLnVwcGVyQm91bmQ9dGhpcy5ib3VuZHNbMV0sci5vYmplY3RPZmZzZXQ9dGhpcy5vYmplY3RPZmZzZXQsci5wZXJtdXRhdGlvbj1EO2Zvcih2YXIgbj0wO248MjsrK24pZm9yKHZhciBhPXIuY2xpcEJvdW5kc1tuXSxpPTA7aTwzOysraSlhW2ldPU1hdGgubWluKE1hdGgubWF4KHRoaXMuY2xpcEJvdW5kc1tuXVtpXSwtMWU4KSwxZTgpO3ZhciBvPU8ocix0aGlzKTtpZihvLnNob3dTdXJmYWNlKXtmb3IodGhpcy5fcGlja1NoYWRlci5iaW5kKCksdGhpcy5fcGlja1NoYWRlci51bmlmb3Jtcz1yLHRoaXMuX3Zhby5iaW5kKCksdGhpcy5fdmFvLmRyYXcoZS5UUklBTkdMRVMsdGhpcy5fdmVydGV4Q291bnQpLG49MDtuPDM7KytuKXRoaXMuc3VyZmFjZVByb2plY3Rbbl0mJih0aGlzLl9waWNrU2hhZGVyLnVuaWZvcm1zLm1vZGVsPW8ucHJvamVjdGlvbnNbbl0sdGhpcy5fcGlja1NoYWRlci51bmlmb3Jtcy5jbGlwQm91bmRzPW8uY2xpcEJvdW5kc1tuXSx0aGlzLl92YW8uZHJhdyhlLlRSSUFOR0xFUyx0aGlzLl92ZXJ0ZXhDb3VudCkpO3RoaXMuX3Zhby51bmJpbmQoKX1pZihvLnNob3dDb250b3VyKXt2YXIgcz10aGlzLl9jb250b3VyUGlja1NoYWRlcjtzLmJpbmQoKSxzLnVuaWZvcm1zPXI7dmFyIGw9dGhpcy5fY29udG91clZBTztmb3IobC5iaW5kKCksaT0wO2k8MzsrK2kpZm9yKGUubGluZVdpZHRoKHRoaXMuY29udG91cldpZHRoW2ldKnRoaXMucGl4ZWxSYXRpbykscy51bmlmb3Jtcy5wZXJtdXRhdGlvbj1NW2ldLG49MDtuPHRoaXMuY29udG91ckxldmVsc1tpXS5sZW5ndGg7KytuKXRoaXMuX2NvbnRvdXJDb3VudHNbaV1bbl0mJihzLnVuaWZvcm1zLmhlaWdodD10aGlzLmNvbnRvdXJMZXZlbHNbaV1bbl0sbC5kcmF3KGUuTElORVMsdGhpcy5fY29udG91ckNvdW50c1tpXVtuXSx0aGlzLl9jb250b3VyT2Zmc2V0c1tpXVtuXSkpO2ZvcihuPTA7bjwzOysrbilmb3Iocy51bmlmb3Jtcy5tb2RlbD1vLnByb2plY3Rpb25zW25dLHMudW5pZm9ybXMuY2xpcEJvdW5kcz1vLmNsaXBCb3VuZHNbbl0saT0wO2k8MzsrK2kpaWYodGhpcy5jb250b3VyUHJvamVjdFtuXVtpXSl7cy51bmlmb3Jtcy5wZXJtdXRhdGlvbj1NW2ldLGUubGluZVdpZHRoKHRoaXMuY29udG91cldpZHRoW2ldKnRoaXMucGl4ZWxSYXRpbyk7Zm9yKHZhciBjPTA7Yzx0aGlzLmNvbnRvdXJMZXZlbHNbaV0ubGVuZ3RoOysrYyl0aGlzLl9jb250b3VyQ291bnRzW2ldW2NdJiYocy51bmlmb3Jtcy5oZWlnaHQ9dGhpcy5jb250b3VyTGV2ZWxzW2ldW2NdLGwuZHJhdyhlLkxJTkVTLHRoaXMuX2NvbnRvdXJDb3VudHNbaV1bY10sdGhpcy5fY29udG91ck9mZnNldHNbaV1bY10pKX1sLnVuYmluZCgpfX0sTC5waWNrPWZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiBudWxsO2lmKHQuaWQhPT10aGlzLnBpY2tJZClyZXR1cm4gbnVsbDt2YXIgZT10aGlzLl9maWVsZFsyXS5zaGFwZSxyPXRoaXMuX3BpY2tSZXN1bHQsbj1lWzBdKih0LnZhbHVlWzBdKyh0LnZhbHVlWzJdPj40KS8xNikvMjU1LGE9TWF0aC5mbG9vcihuKSxpPW4tYSxvPWVbMV0qKHQudmFsdWVbMV0rKDE1JnQudmFsdWVbMl0pLzE2KS8yNTUscz1NYXRoLmZsb29yKG8pLGw9by1zO2ErPTEscys9MTt2YXIgYz1yLnBvc2l0aW9uO2NbMF09Y1sxXT1jWzJdPTA7Zm9yKHZhciB1PTA7dTwyOysrdSlmb3IodmFyIGg9dT9pOjEtaSxmPTA7ZjwyOysrZilmb3IodmFyIHA9YSt1LGQ9cytmLHY9aCooZj9sOjEtbCksbT0wO208MzsrK20pY1ttXSs9dGhpcy5fZmllbGRbbV0uZ2V0KHAsZCkqdjtmb3IodmFyIHk9dGhpcy5fcGlja1Jlc3VsdC5sZXZlbCx4PTA7eDwzOysreClpZih5W3hdPWcubGUodGhpcy5jb250b3VyTGV2ZWxzW3hdLGNbeF0pLHlbeF08MCl0aGlzLmNvbnRvdXJMZXZlbHNbeF0ubGVuZ3RoPjAmJih5W3hdPTApO2Vsc2UgaWYoeVt4XTx0aGlzLmNvbnRvdXJMZXZlbHNbeF0ubGVuZ3RoLTEpe3ZhciBiPXRoaXMuY29udG91ckxldmVsc1t4XVt5W3hdXSxfPXRoaXMuY29udG91ckxldmVsc1t4XVt5W3hdKzFdO01hdGguYWJzKGItY1t4XSk+TWF0aC5hYnMoXy1jW3hdKSYmKHlbeF0rPTEpfWZvcihyLmluZGV4WzBdPWk8LjU/YTphKzEsci5pbmRleFsxXT1sPC41P3M6cysxLHIudXZbMF09bi9lWzBdLHIudXZbMV09by9lWzFdLG09MDttPDM7KyttKXIuZGF0YUNvb3JkaW5hdGVbbV09dGhpcy5fZmllbGRbbV0uZ2V0KHIuaW5kZXhbMF0sci5pbmRleFsxXSk7cmV0dXJuIHJ9LEwucGFkRmllbGQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1lLnNoYXBlLnNsaWNlKCksbj10LnNoYXBlLnNsaWNlKCk7Yy5hc3NpZ24odC5sbygxLDEpLmhpKHJbMF0sclsxXSksZSksYy5hc3NpZ24odC5sbygxKS5oaShyWzBdLDEpLGUuaGkoclswXSwxKSksYy5hc3NpZ24odC5sbygxLG5bMV0tMSkuaGkoclswXSwxKSxlLmxvKDAsclsxXS0xKS5oaShyWzBdLDEpKSxjLmFzc2lnbih0LmxvKDAsMSkuaGkoMSxyWzFdKSxlLmhpKDEpKSxjLmFzc2lnbih0LmxvKG5bMF0tMSwxKS5oaSgxLHJbMV0pLGUubG8oclswXS0xKSksdC5zZXQoMCwwLGUuZ2V0KDAsMCkpLHQuc2V0KDAsblsxXS0xLGUuZ2V0KDAsclsxXS0xKSksdC5zZXQoblswXS0xLDAsZS5nZXQoclswXS0xLDApKSx0LnNldChuWzBdLTEsblsxXS0xLGUuZ2V0KHJbMF0tMSxyWzFdLTEpKX0sTC51cGRhdGU9ZnVuY3Rpb24odCl7dD10fHx7fSx0aGlzLm9iamVjdE9mZnNldD10Lm9iamVjdE9mZnNldHx8dGhpcy5vYmplY3RPZmZzZXQsdGhpcy5kaXJ0eT0hMCwiY29udG91cldpZHRoImluIHQmJih0aGlzLmNvbnRvdXJXaWR0aD1CKHQuY29udG91cldpZHRoLE51bWJlcikpLCJzaG93Q29udG91ciJpbiB0JiYodGhpcy5zaG93Q29udG91cj1CKHQuc2hvd0NvbnRvdXIsQm9vbGVhbikpLCJzaG93U3VyZmFjZSJpbiB0JiYodGhpcy5zaG93U3VyZmFjZT0hIXQuc2hvd1N1cmZhY2UpLCJjb250b3VyVGludCJpbiB0JiYodGhpcy5jb250b3VyVGludD1CKHQuY29udG91clRpbnQsQm9vbGVhbikpLCJjb250b3VyQ29sb3IiaW4gdCYmKHRoaXMuY29udG91ckNvbG9yPWoodC5jb250b3VyQ29sb3IpKSwiY29udG91clByb2plY3QiaW4gdCYmKHRoaXMuY29udG91clByb2plY3Q9Qih0LmNvbnRvdXJQcm9qZWN0LGZ1bmN0aW9uKHQpe3JldHVybiBCKHQsQm9vbGVhbil9KSksInN1cmZhY2VQcm9qZWN0ImluIHQmJih0aGlzLnN1cmZhY2VQcm9qZWN0PXQuc3VyZmFjZVByb2plY3QpLCJkeW5hbWljQ29sb3IiaW4gdCYmKHRoaXMuZHluYW1pY0NvbG9yPWoodC5keW5hbWljQ29sb3IpKSwiZHluYW1pY1RpbnQiaW4gdCYmKHRoaXMuZHluYW1pY1RpbnQ9Qih0LmR5bmFtaWNUaW50LE51bWJlcikpLCJkeW5hbWljV2lkdGgiaW4gdCYmKHRoaXMuZHluYW1pY1dpZHRoPUIodC5keW5hbWljV2lkdGgsTnVtYmVyKSksIm9wYWNpdHkiaW4gdCYmKHRoaXMub3BhY2l0eT10Lm9wYWNpdHkpLCJjb2xvckJvdW5kcyJpbiB0JiYodGhpcy5jb2xvckJvdW5kcz10LmNvbG9yQm91bmRzKSwidmVydGV4Q29sb3IiaW4gdCYmKHRoaXMudmVydGV4Q29sb3I9dC52ZXJ0ZXhDb2xvcj8xOjApO3ZhciBlPXQuZmllbGR8fHQuY29vcmRzJiZ0LmNvb3Jkc1syXXx8bnVsbCxyPSExO2lmKGV8fChlPXRoaXMuX2ZpZWxkWzJdLnNoYXBlWzBdfHx0aGlzLl9maWVsZFsyXS5zaGFwZVsyXT90aGlzLl9maWVsZFsyXS5sbygxLDEpLmhpKHRoaXMuX2ZpZWxkWzJdLnNoYXBlWzBdLTIsdGhpcy5fZmllbGRbMl0uc2hhcGVbMV0tMik6dGhpcy5fZmllbGRbMl0uaGkoMCwwKSksImZpZWxkImluIHR8fCJjb29yZHMiaW4gdCl7dmFyIGE9KGUuc2hhcGVbMF0rMikqKGUuc2hhcGVbMV0rMik7YT50aGlzLl9maWVsZFsyXS5kYXRhLmxlbmd0aCYmKHMuZnJlZUZsb2F0KHRoaXMuX2ZpZWxkWzJdLmRhdGEpLHRoaXMuX2ZpZWxkWzJdLmRhdGE9cy5tYWxsb2NGbG9hdChuLm5leHRQb3cyKGEpKSksdGhpcy5fZmllbGRbMl09aCh0aGlzLl9maWVsZFsyXS5kYXRhLFtlLnNoYXBlWzBdKzIsZS5zaGFwZVsxXSsyXSksdGhpcy5wYWRGaWVsZCh0aGlzLl9maWVsZFsyXSxlKSx0aGlzLnNoYXBlPWUuc2hhcGUuc2xpY2UoKTtmb3IodmFyIGk9dGhpcy5zaGFwZSxvPTA7bzwyOysrbyl0aGlzLl9maWVsZFsyXS5zaXplPnRoaXMuX2ZpZWxkW29dLmRhdGEubGVuZ3RoJiYocy5mcmVlRmxvYXQodGhpcy5fZmllbGRbb10uZGF0YSksdGhpcy5fZmllbGRbb10uZGF0YT1zLm1hbGxvY0Zsb2F0KHRoaXMuX2ZpZWxkWzJdLnNpemUpKSx0aGlzLl9maWVsZFtvXT1oKHRoaXMuX2ZpZWxkW29dLmRhdGEsW2lbMF0rMixpWzFdKzJdKTtpZih0LmNvb3Jkcyl7dmFyIHA9dC5jb29yZHM7aWYoIUFycmF5LmlzQXJyYXkocCl8fDMhPT1wLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImdsLXN1cmZhY2U6IGludmFsaWQgY29vcmRpbmF0ZXMgZm9yIHgveSIpO2ZvcihvPTA7bzwyOysrbyl7dmFyIGQ9cFtvXTtmb3IoYj0wO2I8MjsrK2IpaWYoZC5zaGFwZVtiXSE9PWlbYl0pdGhyb3cgbmV3IEVycm9yKCJnbC1zdXJmYWNlOiBjb29yZHMgaGF2ZSBpbmNvcnJlY3Qgc2hhcGUiKTt0aGlzLnBhZEZpZWxkKHRoaXMuX2ZpZWxkW29dLGQpfX1lbHNlIGlmKHQudGlja3Mpe3ZhciBnPXQudGlja3M7aWYoIUFycmF5LmlzQXJyYXkoZyl8fDIhPT1nLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImdsLXN1cmZhY2U6IGludmFsaWQgdGlja3MiKTtmb3Iobz0wO288MjsrK28pe3ZhciBtPWdbb107aWYoKEFycmF5LmlzQXJyYXkobSl8fG0ubGVuZ3RoKSYmKG09aChtKSksbS5zaGFwZVswXSE9PWlbb10pdGhyb3cgbmV3IEVycm9yKCJnbC1zdXJmYWNlOiBpbnZhbGlkIHRpY2sgbGVuZ3RoIik7dmFyIHk9aChtLmRhdGEsaSk7eS5zdHJpZGVbb109bS5zdHJpZGVbMF0seS5zdHJpZGVbMV5vXT0wLHRoaXMucGFkRmllbGQodGhpcy5fZmllbGRbb10seSl9fWVsc2V7Zm9yKG89MDtvPDI7KytvKXt2YXIgeD1bMCwwXTt4W29dPTEsdGhpcy5fZmllbGRbb109aCh0aGlzLl9maWVsZFtvXS5kYXRhLFtpWzBdKzIsaVsxXSsyXSx4LDApfXRoaXMuX2ZpZWxkWzBdLnNldCgwLDAsMCk7Zm9yKHZhciBiPTA7YjxpWzBdOysrYil0aGlzLl9maWVsZFswXS5zZXQoYisxLDAsYik7Zm9yKHRoaXMuX2ZpZWxkWzBdLnNldChpWzBdKzEsMCxpWzBdLTEpLHRoaXMuX2ZpZWxkWzFdLnNldCgwLDAsMCksYj0wO2I8aVsxXTsrK2IpdGhpcy5fZmllbGRbMV0uc2V0KDAsYisxLGIpO3RoaXMuX2ZpZWxkWzFdLnNldCgwLGlbMV0rMSxpWzFdLTEpfXZhciBfPXRoaXMuX2ZpZWxkLHc9aChzLm1hbGxvY0Zsb2F0KDMqX1syXS5zaXplKjIpLFszLGlbMF0rMixpWzFdKzIsMl0pO2ZvcihvPTA7bzwzOysrbyl2KHcucGljayhvKSxfW29dLCJtaXJyb3IiKTt2YXIgaz1oKHMubWFsbG9jRmxvYXQoMypfWzJdLnNpemUpLFtpWzBdKzIsaVsxXSsyLDNdKTtmb3Iobz0wO288aVswXSsyOysrbylmb3IoYj0wO2I8aVsxXSsyOysrYil7dmFyIE09dy5nZXQoMCxvLGIsMCksQT13LmdldCgwLG8sYiwxKSxFPXcuZ2V0KDEsbyxiLDApLEw9dy5nZXQoMSxvLGIsMSksQz13LmdldCgyLG8sYiwwKSxQPXcuZ2V0KDIsbyxiLDEpLE89RSpQLUwqQyx6PUMqQS1QKk0sST1NKkwtQSpFLEQ9TWF0aC5zcXJ0KE8qTyt6KnorSSpJKTtEPDFlLTg/KEQ9TWF0aC5tYXgoTWF0aC5hYnMoTyksTWF0aC5hYnMoeiksTWF0aC5hYnMoSSkpKTwxZS04PyhJPTEsej1PPTAsRD0xKTpEPTEvRDpEPTEvTWF0aC5zcXJ0KEQpLGsuc2V0KG8sYiwwLE8qRCksay5zZXQobyxiLDEseipEKSxrLnNldChvLGIsMixJKkQpfXMuZnJlZSh3LmRhdGEpO3ZhciBSPVsxLzAsMS8wLDEvMF0sRj1bLTEvMCwtMS8wLC0xLzBdLE49MS8wLFY9LTEvMCxVPShpWzBdLTEpKihpWzFdLTEpKjYscT1zLm1hbGxvY0Zsb2F0KG4ubmV4dFBvdzIoMTAqVSkpLEg9MCxHPTA7Zm9yKG89MDtvPGlbMF0tMTsrK28pdDpmb3IoYj0wO2I8aVsxXS0xOysrYil7Zm9yKHZhciBZPTA7WTwyOysrWSlmb3IodmFyIFc9MDtXPDI7KytXKWZvcih2YXIgWD0wO1g8MzsrK1gpe3ZhciBaPXRoaXMuX2ZpZWxkW1hdLmdldCgxK28rWSwxK2IrVyk7aWYoaXNOYU4oWil8fCFpc0Zpbml0ZShaKSljb250aW51ZSB0fWZvcihYPTA7WDw2OysrWCl7dmFyIEo9bytUW1hdWzBdLEs9YitUW1hdWzFdLFE9dGhpcy5fZmllbGRbMF0uZ2V0KEorMSxLKzEpLCQ9dGhpcy5fZmllbGRbMV0uZ2V0KEorMSxLKzEpO1o9dGhpcy5fZmllbGRbMl0uZ2V0KEorMSxLKzEpLE89ay5nZXQoSisxLEsrMSwwKSx6PWsuZ2V0KEorMSxLKzEsMSksST1rLmdldChKKzEsSysxLDIpLHQuaW50ZW5zaXR5JiYodHQ9dC5pbnRlbnNpdHkuZ2V0KEosSykpO3ZhciB0dD10LmludGVuc2l0eT90LmludGVuc2l0eS5nZXQoSixLKTpaK3RoaXMub2JqZWN0T2Zmc2V0WzJdO3FbSCsrXT1KLHFbSCsrXT1LLHFbSCsrXT1RLHFbSCsrXT0kLHFbSCsrXT1aLHFbSCsrXT0wLHFbSCsrXT10dCxxW0grK109TyxxW0grK109eixxW0grK109SSxSWzBdPU1hdGgubWluKFJbMF0sUSt0aGlzLm9iamVjdE9mZnNldFswXSksUlsxXT1NYXRoLm1pbihSWzFdLCQrdGhpcy5vYmplY3RPZmZzZXRbMV0pLFJbMl09TWF0aC5taW4oUlsyXSxaK3RoaXMub2JqZWN0T2Zmc2V0WzJdKSxOPU1hdGgubWluKE4sdHQpLEZbMF09TWF0aC5tYXgoRlswXSxRK3RoaXMub2JqZWN0T2Zmc2V0WzBdKSxGWzFdPU1hdGgubWF4KEZbMV0sJCt0aGlzLm9iamVjdE9mZnNldFsxXSksRlsyXT1NYXRoLm1heChGWzJdLFordGhpcy5vYmplY3RPZmZzZXRbMl0pLFY9TWF0aC5tYXgoVix0dCksRys9MX19Zm9yKHQuaW50ZW5zaXR5Qm91bmRzJiYoTj0rdC5pbnRlbnNpdHlCb3VuZHNbMF0sVj0rdC5pbnRlbnNpdHlCb3VuZHNbMV0pLG89NjtvPEg7bys9MTApcVtvXT0ocVtvXS1OKS8oVi1OKTt0aGlzLl92ZXJ0ZXhDb3VudD1HLHRoaXMuX2Nvb3JkaW5hdGVCdWZmZXIudXBkYXRlKHEuc3ViYXJyYXkoMCxIKSkscy5mcmVlRmxvYXQocSkscy5mcmVlKGsuZGF0YSksdGhpcy5ib3VuZHM9W1IsRl0sdGhpcy5pbnRlbnNpdHk9dC5pbnRlbnNpdHl8fHRoaXMuX2ZpZWxkWzJdLHRoaXMuaW50ZW5zaXR5Qm91bmRzWzBdPT09TiYmdGhpcy5pbnRlbnNpdHlCb3VuZHNbMV09PT1WfHwocj0hMCksdGhpcy5pbnRlbnNpdHlCb3VuZHM9W04sVl19aWYoImxldmVscyJpbiB0KXt2YXIgZXQ9dC5sZXZlbHM7Zm9yKGV0PUFycmF5LmlzQXJyYXkoZXRbMF0pP2V0LnNsaWNlKCk6W1tdLFtdLGV0XSxvPTA7bzwzOysrbylldFtvXT1ldFtvXS5zbGljZSgpLGV0W29dLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC1lfSk7Zm9yKG89MDtvPDM7KytvKWZvcihiPTA7YjxldFtvXS5sZW5ndGg7KytiKWV0W29dW2JdLT10aGlzLm9iamVjdE9mZnNldFtvXTt0OmZvcihvPTA7bzwzOysrbyl7aWYoZXRbb10ubGVuZ3RoIT09dGhpcy5jb250b3VyTGV2ZWxzW29dLmxlbmd0aCl7cj0hMDticmVha31mb3IoYj0wO2I8ZXRbb10ubGVuZ3RoOysrYilpZihldFtvXVtiXSE9PXRoaXMuY29udG91ckxldmVsc1tvXVtiXSl7cj0hMDticmVhayB0fX10aGlzLmNvbnRvdXJMZXZlbHM9ZXR9aWYocil7Xz10aGlzLl9maWVsZCxpPXRoaXMuc2hhcGU7Zm9yKHZhciBydD1bXSxudD0wO250PDM7KytudCl7dmFyIGF0PXRoaXMuY29udG91ckxldmVsc1tudF0saXQ9W10sb3Q9W10sc3Q9WzAsMCwwXTtmb3Iobz0wO288YXQubGVuZ3RoOysrbyl7dmFyIGx0PWYodGhpcy5fZmllbGRbbnRdLGF0W29dKTtpdC5wdXNoKHJ0Lmxlbmd0aC81fDApLEc9MDt0OmZvcihiPTA7YjxsdC5jZWxscy5sZW5ndGg7KytiKXt2YXIgY3Q9bHQuY2VsbHNbYl07Zm9yKFg9MDtYPDI7KytYKXt2YXIgdXQ9bHQucG9zaXRpb25zW2N0W1hdXSxodD11dFswXSxmdD0wfE1hdGguZmxvb3IoaHQpLHB0PWh0LWZ0LGR0PXV0WzFdLGd0PTB8TWF0aC5mbG9vcihkdCksdnQ9ZHQtZ3QsbXQ9ITE7ZTpmb3IodmFyIHl0PTA7eXQ8MzsrK3l0KXtzdFt5dF09MDt2YXIgeHQ9KG50K3l0KzEpJTM7Zm9yKFk9MDtZPDI7KytZKXt2YXIgYnQ9WT9wdDoxLXB0O2ZvcihKPTB8TWF0aC5taW4oTWF0aC5tYXgoZnQrWSwwKSxpWzBdKSxXPTA7VzwyOysrVyl7dmFyIF90PVc/dnQ6MS12dDtpZihLPTB8TWF0aC5taW4oTWF0aC5tYXgoZ3QrVywwKSxpWzFdKSxaPXl0PDI/dGhpcy5fZmllbGRbeHRdLmdldChKLEspOih0aGlzLmludGVuc2l0eS5nZXQoSixLKS10aGlzLmludGVuc2l0eUJvdW5kc1swXSkvKHRoaXMuaW50ZW5zaXR5Qm91bmRzWzFdLXRoaXMuaW50ZW5zaXR5Qm91bmRzWzBdKSwhaXNGaW5pdGUoWil8fGlzTmFOKFopKXttdD0hMDticmVhayBlfXZhciB3dD1idCpfdDtzdFt5dF0rPXd0Klp9fX1pZihtdCl7aWYoWD4wKXtmb3IodmFyIGt0PTA7a3Q8NTsrK2t0KXJ0LnBvcCgpO0ctPTF9Y29udGludWUgdH1ydC5wdXNoKHN0WzBdLHN0WzFdLHV0WzBdLHV0WzFdLHN0WzJdKSxHKz0xfX1vdC5wdXNoKEcpfXRoaXMuX2NvbnRvdXJPZmZzZXRzW250XT1pdCx0aGlzLl9jb250b3VyQ291bnRzW250XT1vdH12YXIgVHQ9cy5tYWxsb2NGbG9hdChydC5sZW5ndGgpO2ZvcihvPTA7bzxydC5sZW5ndGg7KytvKVR0W29dPXJ0W29dO3RoaXMuX2NvbnRvdXJCdWZmZXIudXBkYXRlKFR0KSxzLmZyZWVGbG9hdChUdCl9dC5jb2xvcm1hcCYmdGhpcy5fY29sb3JNYXAuc2V0UGl4ZWxzKGZ1bmN0aW9uKHQpe3ZhciBlPXUoW2woe2NvbG9ybWFwOnQsbnNoYWRlczpTLGZvcm1hdDoicmdiYSJ9KS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuW3RbMF0sdFsxXSx0WzJdLDI1NSp0WzNdXX0pXSk7cmV0dXJuIGMuZGl2c2VxKGUsMjU1KSxlfSh0LmNvbG9ybWFwKSl9LEwuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuX3NoYWRlci5kaXNwb3NlKCksdGhpcy5fdmFvLmRpc3Bvc2UoKSx0aGlzLl9jb29yZGluYXRlQnVmZmVyLmRpc3Bvc2UoKSx0aGlzLl9jb2xvck1hcC5kaXNwb3NlKCksdGhpcy5fY29udG91ckJ1ZmZlci5kaXNwb3NlKCksdGhpcy5fY29udG91clZBTy5kaXNwb3NlKCksdGhpcy5fY29udG91clNoYWRlci5kaXNwb3NlKCksdGhpcy5fY29udG91clBpY2tTaGFkZXIuZGlzcG9zZSgpLHRoaXMuX2R5bmFtaWNCdWZmZXIuZGlzcG9zZSgpLHRoaXMuX2R5bmFtaWNWQU8uZGlzcG9zZSgpO2Zvcih2YXIgdD0wO3Q8MzsrK3Qpcy5mcmVlRmxvYXQodGhpcy5fZmllbGRbdF0uZGF0YSl9LEwuaGlnaGxpZ2h0PWZ1bmN0aW9uKHQpe3ZhciBlLHI7aWYoIXQpcmV0dXJuIHRoaXMuX2R5bmFtaWNDb3VudHM9WzAsMCwwXSx0aGlzLmR5YW5hbWljTGV2ZWw9W05hTixOYU4sTmFOXSx2b2lkKHRoaXMuaGlnaGxpZ2h0TGV2ZWw9Wy0xLC0xLC0xXSk7Zm9yKGU9MDtlPDM7KytlKXRoaXMuZW5hYmxlSGlnaGxpZ2h0W2VdP3RoaXMuaGlnaGxpZ2h0TGV2ZWxbZV09dC5sZXZlbFtlXTp0aGlzLmhpZ2hsaWdodExldmVsW2VdPS0xO2ZvcihyPXRoaXMuc25hcFRvRGF0YT90LmRhdGFDb29yZGluYXRlOnQucG9zaXRpb24sZT0wO2U8MzsrK2UpcltlXS09dGhpcy5vYmplY3RPZmZzZXRbZV07aWYodGhpcy5lbmFibGVEeW5hbWljWzBdJiZyWzBdIT09dGhpcy5keW5hbWljTGV2ZWxbMF18fHRoaXMuZW5hYmxlRHluYW1pY1sxXSYmclsxXSE9PXRoaXMuZHluYW1pY0xldmVsWzFdfHx0aGlzLmVuYWJsZUR5bmFtaWNbMl0mJnJbMl0hPT10aGlzLmR5bmFtaWNMZXZlbFsyXSl7Zm9yKHZhciBuPTAsYT10aGlzLnNoYXBlLGk9cy5tYWxsb2NGbG9hdCgxMiphWzBdKmFbMV0pLG89MDtvPDM7KytvKWlmKHRoaXMuZW5hYmxlRHluYW1pY1tvXSl7dGhpcy5keW5hbWljTGV2ZWxbb109cltvXTt2YXIgbD0obysxKSUzLGM9KG8rMiklMyx1PXRoaXMuX2ZpZWxkW29dLGg9dGhpcy5fZmllbGRbbF0scD10aGlzLl9maWVsZFtjXSxkPWYodSxyW29dKSxnPWQuY2VsbHMsdj1kLnBvc2l0aW9ucztmb3IodGhpcy5fZHluYW1pY09mZnNldHNbb109bixlPTA7ZTxnLmxlbmd0aDsrK2UpZm9yKHZhciBtPWdbZV0seT0wO3k8MjsrK3kpe3ZhciB4PXZbbVt5XV0sYj0reFswXSxfPTB8Yix3PTB8TWF0aC5taW4oXysxLGFbMF0pLGs9Yi1fLFQ9MS1rLE09K3hbMV0sQT0wfE0sUz0wfE1hdGgubWluKEErMSxhWzFdKSxFPU0tQSxMPTEtRSxDPVQqTCxQPVQqRSxPPWsqTCx6PWsqRSxJPUMqaC5nZXQoXyxBKStQKmguZ2V0KF8sUykrTypoLmdldCh3LEEpK3oqaC5nZXQodyxTKSxEPUMqcC5nZXQoXyxBKStQKnAuZ2V0KF8sUykrTypwLmdldCh3LEEpK3oqcC5nZXQodyxTKTtpZihpc05hTihJKXx8aXNOYU4oRCkpe3kmJihuLT0xKTticmVha31pWzIqbiswXT1JLGlbMipuKzFdPUQsbis9MX10aGlzLl9keW5hbWljQ291bnRzW29dPW4tdGhpcy5fZHluYW1pY09mZnNldHNbb119ZWxzZSB0aGlzLmR5bmFtaWNMZXZlbFtvXT1OYU4sdGhpcy5fZHluYW1pY0NvdW50c1tvXT0wO3RoaXMuX2R5bmFtaWNCdWZmZXIudXBkYXRlKGkuc3ViYXJyYXkoMCwyKm4pKSxzLmZyZWVGbG9hdChpKX19fSx7Ii4vbGliL3NoYWRlcnMiOjMxNiwiYmluYXJ5LXNlYXJjaC1ib3VuZHMiOjMxNywiYml0LXR3aWRkbGUiOjk0LGNvbG9ybWFwOjEyOCwiZ2wtYnVmZmVyIjoyNDQsImdsLW1hdDQvaW52ZXJ0IjoyNjgsImdsLW1hdDQvbXVsdGlwbHkiOjI3MCwiZ2wtdGV4dHVyZTJkIjozMjQsImdsLXZhbyI6MzI5LG5kYXJyYXk6NDUyLCJuZGFycmF5LWdyYWRpZW50Ijo0NDMsIm5kYXJyYXktb3BzIjo0NDYsIm5kYXJyYXktcGFjayI6NDQ3LCJzdXJmYWNlLW5ldHMiOjUzMCwidHlwZWRhcnJheS1wb29sIjo1NDR9XSwzMTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiY3NzLWZvbnQiKSxhPXQoInBpY2stYnktYWxpYXMiKSxpPXQoInJlZ2wiKSxvPXQoImdsLXV0aWwvY29udGV4dCIpLHM9dCgiZXM2LXdlYWstbWFwIiksbD10KCJjb2xvci1ub3JtYWxpemUiKSxjPXQoImZvbnQtYXRsYXMiKSx1PXQoInR5cGVkYXJyYXktcG9vbCIpLGg9dCgicGFyc2UtcmVjdCIpLGY9dCgiaXMtcGxhaW4tb2JqIikscD10KCJwYXJzZS11bml0IiksZD10KCJ0by1weCIpLGc9dCgiZGV0ZWN0LWtlcm5pbmciKSx2PXQoIm9iamVjdC1hc3NpZ24iKSxtPXQoImZvbnQtbWVhc3VyZSIpLHk9dCgiZmxhdHRlbi12ZXJ0ZXgtZGF0YSIpLHg9dCgiYml0LXR3aWRkbGUiKS5uZXh0UG93MixiPW5ldyBzLF89ITE7aWYoZG9jdW1lbnQuYm9keSl7dmFyIHc9ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7dy5zdHlsZS5mb250PSJpdGFsaWMgc21hbGwtY2FwcyBib2xkIGNvbmRlbnNlZCAxNnB4LzIgY3Vyc2l2ZSIsZ2V0Q29tcHV0ZWRTdHlsZSh3KS5mb250U3RyZXRjaCYmKF89ITApLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodyl9dmFyIGs9ZnVuY3Rpb24odCl7IWZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0Ll9nbCYmdC5wcm9wJiZ0LnRleHR1cmUmJnQuYnVmZmVyfSh0KT90aGlzLmdsPW8odCk6KHQ9e3JlZ2w6dH0sdGhpcy5nbD10LnJlZ2wuX2dsKSx0aGlzLnNoYWRlcj1iLmdldCh0aGlzLmdsKSx0aGlzLnNoYWRlcj90aGlzLnJlZ2w9dGhpcy5zaGFkZXIucmVnbDp0aGlzLnJlZ2w9dC5yZWdsfHxpKHtnbDp0aGlzLmdsfSksdGhpcy5jaGFyQnVmZmVyPXRoaXMucmVnbC5idWZmZXIoe3R5cGU6InVpbnQ4Iix1c2FnZToic3RyZWFtIn0pLHRoaXMuc2l6ZUJ1ZmZlcj10aGlzLnJlZ2wuYnVmZmVyKHt0eXBlOiJmbG9hdCIsdXNhZ2U6InN0cmVhbSJ9KSx0aGlzLnNoYWRlcnx8KHRoaXMuc2hhZGVyPXRoaXMuY3JlYXRlU2hhZGVyKCksYi5zZXQodGhpcy5nbCx0aGlzLnNoYWRlcikpLHRoaXMuYmF0Y2g9W10sdGhpcy5mb250U2l6ZT1bXSx0aGlzLmZvbnQ9W10sdGhpcy5mb250QXRsYXM9W10sdGhpcy5kcmF3PXRoaXMuc2hhZGVyLmRyYXcuYmluZCh0aGlzKSx0aGlzLnJlbmRlcj1mdW5jdGlvbigpe3RoaXMucmVnbC5fcmVmcmVzaCgpLHRoaXMuZHJhdyh0aGlzLmJhdGNoKX0sdGhpcy5jYW52YXM9dGhpcy5nbC5jYW52YXMsdGhpcy51cGRhdGUoZih0KT90Ont9KX07ay5wcm90b3R5cGUuY3JlYXRlU2hhZGVyPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5yZWdsLGU9dCh7YmxlbmQ6e2VuYWJsZTohMCxjb2xvcjpbMCwwLDAsMV0sZnVuYzp7c3JjUkdCOiJzcmMgYWxwaGEiLGRzdFJHQjoib25lIG1pbnVzIHNyYyBhbHBoYSIsc3JjQWxwaGE6Im9uZSBtaW51cyBkc3QgYWxwaGEiLGRzdEFscGhhOiJvbmUifX0sc3RlbmNpbDp7ZW5hYmxlOiExfSxkZXB0aDp7ZW5hYmxlOiExfSxjb3VudDp0LnByb3AoImNvdW50Iiksb2Zmc2V0OnQucHJvcCgib2Zmc2V0IiksYXR0cmlidXRlczp7Y2hhck9mZnNldDp7b2Zmc2V0OjQsc3RyaWRlOjgsYnVmZmVyOnQudGhpcygic2l6ZUJ1ZmZlciIpfSx3aWR0aDp7b2Zmc2V0OjAsc3RyaWRlOjgsYnVmZmVyOnQudGhpcygic2l6ZUJ1ZmZlciIpfSxjaGFyOnQudGhpcygiY2hhckJ1ZmZlciIpLHBvc2l0aW9uOnQudGhpcygicG9zaXRpb24iKX0sdW5pZm9ybXM6e2F0bGFzU2l6ZTpmdW5jdGlvbih0LGUpe3JldHVybltlLmF0bGFzLndpZHRoLGUuYXRsYXMuaGVpZ2h0XX0sYXRsYXNEaW06ZnVuY3Rpb24odCxlKXtyZXR1cm5bZS5hdGxhcy5jb2xzLGUuYXRsYXMucm93c119LGF0bGFzOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuYXRsYXMudGV4dHVyZX0sY2hhclN0ZXA6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5hdGxhcy5zdGVwfSxlbTpmdW5jdGlvbih0LGUpe3JldHVybiBlLmF0bGFzLmVtfSxjb2xvcjp0LnByb3AoImNvbG9yIiksb3BhY2l0eTp0LnByb3AoIm9wYWNpdHkiKSx2aWV3cG9ydDp0LnRoaXMoInZpZXdwb3J0QXJyYXkiKSxzY2FsZTp0LnRoaXMoInNjYWxlIiksYWxpZ246dC5wcm9wKCJhbGlnbiIpLGJhc2VsaW5lOnQucHJvcCgiYmFzZWxpbmUiKSx0cmFuc2xhdGU6dC50aGlzKCJ0cmFuc2xhdGUiKSxwb3NpdGlvbk9mZnNldDp0LnByb3AoInBvc2l0aW9uT2Zmc2V0Iil9LHByaW1pdGl2ZToicG9pbnRzIix2aWV3cG9ydDp0LnRoaXMoInZpZXdwb3J0IiksdmVydDoiXG5cdFx0XHRwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG5cdFx0XHRhdHRyaWJ1dGUgZmxvYXQgd2lkdGgsIGNoYXJPZmZzZXQsIGNoYXI7XG5cdFx0XHRhdHRyaWJ1dGUgdmVjMiBwb3NpdGlvbjtcblx0XHRcdHVuaWZvcm0gZmxvYXQgZm9udFNpemUsIGNoYXJTdGVwLCBlbSwgYWxpZ24sIGJhc2VsaW5lO1xuXHRcdFx0dW5pZm9ybSB2ZWM0IHZpZXdwb3J0O1xuXHRcdFx0dW5pZm9ybSB2ZWM0IGNvbG9yO1xuXHRcdFx0dW5pZm9ybSB2ZWMyIGF0bGFzU2l6ZSwgYXRsYXNEaW0sIHNjYWxlLCB0cmFuc2xhdGUsIHBvc2l0aW9uT2Zmc2V0O1xuXHRcdFx0dmFyeWluZyB2ZWMyIGNoYXJDb29yZCwgY2hhcklkO1xuXHRcdFx0dmFyeWluZyBmbG9hdCBjaGFyV2lkdGg7XG5cdFx0XHR2YXJ5aW5nIHZlYzQgZm9udENvbG9yO1xuXHRcdFx0dm9pZCBtYWluICgpIHtcblx0XHRcdFx0Iisoay5ub3JtYWxWaWV3cG9ydD8iIjoidmVjMiBwb3NpdGlvbk9mZnNldCA9IHZlYzIocG9zaXRpb25PZmZzZXQueCwtIHBvc2l0aW9uT2Zmc2V0LnkpOyIpKyJcblxuXHRcdFx0XHR2ZWMyIG9mZnNldCA9IGZsb29yKGVtICogKHZlYzIoYWxpZ24gKyBjaGFyT2Zmc2V0LCBiYXNlbGluZSlcblx0XHRcdFx0XHQrIHBvc2l0aW9uT2Zmc2V0KSlcblx0XHRcdFx0XHQvICh2aWV3cG9ydC56dyAqIHNjYWxlLnh5KTtcblxuXHRcdFx0XHR2ZWMyIHBvc2l0aW9uID0gKHBvc2l0aW9uICsgdHJhbnNsYXRlKSAqIHNjYWxlO1xuXHRcdFx0XHRwb3NpdGlvbiArPSBvZmZzZXQgKiBzY2FsZTtcblxuXHRcdFx0XHQiKyhrLm5vcm1hbFZpZXdwb3J0PyJwb3NpdGlvbi55ID0gMS4gLSBwb3NpdGlvbi55OyI6IiIpKyJcblxuXHRcdFx0XHRjaGFyQ29vcmQgPSBwb3NpdGlvbiAqIHZpZXdwb3J0Lnp3ICsgdmlld3BvcnQueHk7XG5cblx0XHRcdFx0Z2xfUG9zaXRpb24gPSB2ZWM0KHBvc2l0aW9uICogMi4gLSAxLiwgMCwgMSk7XG5cblx0XHRcdFx0Z2xfUG9pbnRTaXplID0gY2hhclN0ZXA7XG5cblx0XHRcdFx0Y2hhcklkLnggPSBtb2QoY2hhciwgYXRsYXNEaW0ueCk7XG5cdFx0XHRcdGNoYXJJZC55ID0gZmxvb3IoY2hhciAvIGF0bGFzRGltLngpO1xuXG5cdFx0XHRcdGNoYXJXaWR0aCA9IHdpZHRoICogZW07XG5cblx0XHRcdFx0Zm9udENvbG9yID0gY29sb3IgLyAyNTUuO1xuXHRcdFx0fSIsZnJhZzoiXG5cdFx0XHRwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG5cdFx0XHR1bmlmb3JtIHNhbXBsZXIyRCBhdGxhcztcblx0XHRcdHVuaWZvcm0gZmxvYXQgZm9udFNpemUsIGNoYXJTdGVwLCBvcGFjaXR5O1xuXHRcdFx0dW5pZm9ybSB2ZWMyIGF0bGFzU2l6ZTtcblx0XHRcdHVuaWZvcm0gdmVjNCB2aWV3cG9ydDtcblx0XHRcdHZhcnlpbmcgdmVjNCBmb250Q29sb3I7XG5cdFx0XHR2YXJ5aW5nIHZlYzIgY2hhckNvb3JkLCBjaGFySWQ7XG5cdFx0XHR2YXJ5aW5nIGZsb2F0IGNoYXJXaWR0aDtcblxuXHRcdFx0ZmxvYXQgbGlnaHRuZXNzKHZlYzQgY29sb3IpIHtcblx0XHRcdFx0cmV0dXJuIGNvbG9yLnIgKiAwLjI5OSArIGNvbG9yLmcgKiAwLjU4NyArIGNvbG9yLmIgKiAwLjExNDtcblx0XHRcdH1cblxuXHRcdFx0dm9pZCBtYWluICgpIHtcblx0XHRcdFx0dmVjMiB1diA9IGdsX0ZyYWdDb29yZC54eSAtIGNoYXJDb29yZCArIGNoYXJTdGVwICogLjU7XG5cdFx0XHRcdGZsb2F0IGhhbGZDaGFyU3RlcCA9IGZsb29yKGNoYXJTdGVwICogLjUgKyAuNSk7XG5cblx0XHRcdFx0Ly8gaW52ZXJ0IHkgYW5kIHNoaWZ0IGJ5IDFweCAoRkYgZXhwZWNpYWxseSBuZWVkcyB0aGF0KVxuXHRcdFx0XHR1di55ID0gY2hhclN0ZXAgLSB1di55O1xuXG5cdFx0XHRcdC8vIGlnbm9yZSBwb2ludHMgb3V0c2lkZSBvZiBjaGFyYWN0ZXIgYm91bmRpbmcgYm94XG5cdFx0XHRcdGZsb2F0IGhhbGZDaGFyV2lkdGggPSBjZWlsKGNoYXJXaWR0aCAqIC41KTtcblx0XHRcdFx0aWYgKGZsb29yKHV2LngpID4gaGFsZkNoYXJTdGVwICsgaGFsZkNoYXJXaWR0aCB8fFxuXHRcdFx0XHRcdGZsb29yKHV2LngpIDwgaGFsZkNoYXJTdGVwIC0gaGFsZkNoYXJXaWR0aCkgcmV0dXJuO1xuXG5cdFx0XHRcdHV2ICs9IGNoYXJJZCAqIGNoYXJTdGVwO1xuXHRcdFx0XHR1diA9IHV2IC8gYXRsYXNTaXplO1xuXG5cdFx0XHRcdHZlYzQgY29sb3IgPSBmb250Q29sb3I7XG5cdFx0XHRcdHZlYzQgbWFzayA9IHRleHR1cmUyRChhdGxhcywgdXYpO1xuXG5cdFx0XHRcdGZsb2F0IG1hc2tZID0gbGlnaHRuZXNzKG1hc2spO1xuXHRcdFx0XHQvLyBmbG9hdCBjb2xvclkgPSBsaWdodG5lc3MoY29sb3IpO1xuXHRcdFx0XHRjb2xvci5hICo9IG1hc2tZO1xuXHRcdFx0XHRjb2xvci5hICo9IG9wYWNpdHk7XG5cblx0XHRcdFx0Ly8gY29sb3IuYSArPSAuMTtcblxuXHRcdFx0XHQvLyBhbnRpYWxpYXNpbmcsIHNlZSB5aXEgY29sb3Igc3BhY2UgeS1jaGFubmVsIGZvcm11bGFcblx0XHRcdFx0Ly8gY29sb3IucmdiICs9ICgxLiAtIGNvbG9yLnJnYikgKiAoMS4gLSBtYXNrLnJnYik7XG5cblx0XHRcdFx0Z2xfRnJhZ0NvbG9yID0gY29sb3I7XG5cdFx0XHR9In0pO3JldHVybntyZWdsOnQsZHJhdzplLGF0bGFzOnt9fX0say5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYoInN0cmluZyI9PXR5cGVvZiB0KXQ9e3RleHQ6dH07ZWxzZSBpZighdClyZXR1cm47bnVsbCE9KHQ9YSh0LHtwb3NpdGlvbjoicG9zaXRpb24gcG9zaXRpb25zIGNvb3JkIGNvb3JkcyBjb29yZGluYXRlcyIsZm9udDoiZm9udCBmb250RmFjZSBmb250ZmFjZSB0eXBlZmFjZSBjc3NGb250IGNzcy1mb250IGZhbWlseSBmb250RmFtaWx5Iixmb250U2l6ZToiZm9udFNpemUgZm9udHNpemUgc2l6ZSBmb250LXNpemUiLHRleHQ6InRleHQgdGV4dHMgY2hhcnMgY2hhcmFjdGVycyB2YWx1ZSB2YWx1ZXMgc3ltYm9scyIsYWxpZ246ImFsaWduIGFsaWdubWVudCB0ZXh0QWxpZ24gdGV4dGJhc2VsaW5lIixiYXNlbGluZToiYmFzZWxpbmUgdGV4dEJhc2VsaW5lIHRleHRiYXNlbGluZSIsZGlyZWN0aW9uOiJkaXIgZGlyZWN0aW9uIHRleHREaXJlY3Rpb24iLGNvbG9yOiJjb2xvciBjb2xvdXIgZmlsbCBmaWxsLWNvbG9yIGZpbGxDb2xvciB0ZXh0Q29sb3IgdGV4dGNvbG9yIixrZXJuaW5nOiJrZXJuaW5nIGtlcm4iLHJhbmdlOiJyYW5nZSBkYXRhQm94Iix2aWV3cG9ydDoidnAgdmlld3BvcnQgdmlld0JveCB2aWV3Ym94IHZpZXdQb3J0IixvcGFjaXR5OiJvcGFjaXR5IGFscGhhIHRyYW5zcGFyZW5jeSB2aXNpYmxlIHZpc2liaWxpdHkgb3BhcXVlIixvZmZzZXQ6Im9mZnNldCBwb3NpdGlvbk9mZnNldCBwYWRkaW5nIHNoaWZ0IGluZGVudCBpbmRlbnRhdGlvbiJ9LCEwKSkub3BhY2l0eSYmKEFycmF5LmlzQXJyYXkodC5vcGFjaXR5KT90aGlzLm9wYWNpdHk9dC5vcGFjaXR5Lm1hcChmdW5jdGlvbih0KXtyZXR1cm4gcGFyc2VGbG9hdCh0KX0pOnRoaXMub3BhY2l0eT1wYXJzZUZsb2F0KHQub3BhY2l0eSkpLG51bGwhPXQudmlld3BvcnQmJih0aGlzLnZpZXdwb3J0PWgodC52aWV3cG9ydCksay5ub3JtYWxWaWV3cG9ydCYmKHRoaXMudmlld3BvcnQueT10aGlzLmNhbnZhcy5oZWlnaHQtdGhpcy52aWV3cG9ydC55LXRoaXMudmlld3BvcnQuaGVpZ2h0KSx0aGlzLnZpZXdwb3J0QXJyYXk9W3RoaXMudmlld3BvcnQueCx0aGlzLnZpZXdwb3J0LnksdGhpcy52aWV3cG9ydC53aWR0aCx0aGlzLnZpZXdwb3J0LmhlaWdodF0pLG51bGw9PXRoaXMudmlld3BvcnQmJih0aGlzLnZpZXdwb3J0PXt4OjAseTowLHdpZHRoOnRoaXMuZ2wuZHJhd2luZ0J1ZmZlcldpZHRoLGhlaWdodDp0aGlzLmdsLmRyYXdpbmdCdWZmZXJIZWlnaHR9LHRoaXMudmlld3BvcnRBcnJheT1bdGhpcy52aWV3cG9ydC54LHRoaXMudmlld3BvcnQueSx0aGlzLnZpZXdwb3J0LndpZHRoLHRoaXMudmlld3BvcnQuaGVpZ2h0XSksbnVsbCE9dC5rZXJuaW5nJiYodGhpcy5rZXJuaW5nPXQua2VybmluZyksbnVsbCE9dC5vZmZzZXQmJigibnVtYmVyIj09dHlwZW9mIHQub2Zmc2V0JiYodC5vZmZzZXQ9W3Qub2Zmc2V0LDBdKSx0aGlzLnBvc2l0aW9uT2Zmc2V0PXkodC5vZmZzZXQpKSx0LmRpcmVjdGlvbiYmKHRoaXMuZGlyZWN0aW9uPXQuZGlyZWN0aW9uKSx0LnJhbmdlJiYodGhpcy5yYW5nZT10LnJhbmdlLHRoaXMuc2NhbGU9WzEvKHQucmFuZ2VbMl0tdC5yYW5nZVswXSksMS8odC5yYW5nZVszXS10LnJhbmdlWzFdKV0sdGhpcy50cmFuc2xhdGU9Wy10LnJhbmdlWzBdLC10LnJhbmdlWzFdXSksdC5zY2FsZSYmKHRoaXMuc2NhbGU9dC5zY2FsZSksdC50cmFuc2xhdGUmJih0aGlzLnRyYW5zbGF0ZT10LnRyYW5zbGF0ZSksdGhpcy5zY2FsZXx8KHRoaXMuc2NhbGU9WzEvdGhpcy52aWV3cG9ydC53aWR0aCwxL3RoaXMudmlld3BvcnQuaGVpZ2h0XSksdGhpcy50cmFuc2xhdGV8fCh0aGlzLnRyYW5zbGF0ZT1bMCwwXSksdGhpcy5mb250Lmxlbmd0aHx8dC5mb250fHwodC5mb250PWsuYmFzZUZvbnRTaXplKyJweCBzYW5zLXNlcmlmIik7dmFyIHIsaT0hMSxvPSExO2lmKHQuZm9udCYmKEFycmF5LmlzQXJyYXkodC5mb250KT90LmZvbnQ6W3QuZm9udF0pLmZvckVhY2goZnVuY3Rpb24odCxyKXtpZigic3RyaW5nIj09dHlwZW9mIHQpdHJ5e3Q9bi5wYXJzZSh0KX1jYXRjaChlKXt0PW4ucGFyc2Uoay5iYXNlRm9udFNpemUrInB4ICIrdCl9ZWxzZSB0PW4ucGFyc2Uobi5zdHJpbmdpZnkodCkpO3ZhciBhPW4uc3RyaW5naWZ5KHtzaXplOmsuYmFzZUZvbnRTaXplLGZhbWlseTp0LmZhbWlseSxzdHJldGNoOl8/dC5zdHJldGNoOnZvaWQgMCx2YXJpYW50OnQudmFyaWFudCx3ZWlnaHQ6dC53ZWlnaHQsc3R5bGU6dC5zdHlsZX0pLHM9cCh0LnNpemUpLGw9TWF0aC5yb3VuZChzWzBdKmQoc1sxXSkpO2lmKGwhPT1lLmZvbnRTaXplW3JdJiYobz0hMCxlLmZvbnRTaXplW3JdPWwpLCEoZS5mb250W3JdJiZhPT1lLmZvbnRbcl0uYmFzZVN0cmluZ3x8KGk9ITAsZS5mb250W3JdPWsuZm9udHNbYV0sZS5mb250W3JdKSkpe3ZhciBjPXQuZmFtaWx5LmpvaW4oIiwgIiksdT1bdC5zdHlsZV07dC5zdHlsZSE9dC52YXJpYW50JiZ1LnB1c2godC52YXJpYW50KSx0LnZhcmlhbnQhPXQud2VpZ2h0JiZ1LnB1c2godC53ZWlnaHQpLF8mJnQud2VpZ2h0IT10LnN0cmV0Y2gmJnUucHVzaCh0LnN0cmV0Y2gpLGUuZm9udFtyXT17YmFzZVN0cmluZzphLGZhbWlseTpjLHdlaWdodDp0LndlaWdodCxzdHJldGNoOnQuc3RyZXRjaCxzdHlsZTp0LnN0eWxlLHZhcmlhbnQ6dC52YXJpYW50LHdpZHRoOnt9LGtlcm5pbmc6e30sbWV0cmljczptKGMse29yaWdpbjoidG9wIixmb250U2l6ZTprLmJhc2VGb250U2l6ZSxmb250U3R5bGU6dS5qb2luKCIgIil9KX0say5mb250c1thXT1lLmZvbnRbcl19fSksKGl8fG8pJiZ0aGlzLmZvbnQuZm9yRWFjaChmdW5jdGlvbihyLGEpe3ZhciBpPW4uc3RyaW5naWZ5KHtzaXplOmUuZm9udFNpemVbYV0sZmFtaWx5OnIuZmFtaWx5LHN0cmV0Y2g6Xz9yLnN0cmV0Y2g6dm9pZCAwLHZhcmlhbnQ6ci52YXJpYW50LHdlaWdodDpyLndlaWdodCxzdHlsZTpyLnN0eWxlfSk7aWYoZS5mb250QXRsYXNbYV09ZS5zaGFkZXIuYXRsYXNbaV0sIWUuZm9udEF0bGFzW2FdKXt2YXIgbz1yLm1ldHJpY3M7ZS5zaGFkZXIuYXRsYXNbaV09ZS5mb250QXRsYXNbYV09e2ZvbnRTdHJpbmc6aSxzdGVwOjIqTWF0aC5jZWlsKGUuZm9udFNpemVbYV0qby5ib3R0b20qLjUpLGVtOmUuZm9udFNpemVbYV0sY29sczowLHJvd3M6MCxoZWlnaHQ6MCx3aWR0aDowLGNoYXJzOltdLGlkczp7fSx0ZXh0dXJlOmUucmVnbC50ZXh0dXJlKCl9fW51bGw9PXQudGV4dCYmKHQudGV4dD1lLnRleHQpfSksInN0cmluZyI9PXR5cGVvZiB0LnRleHQmJnQucG9zaXRpb24mJnQucG9zaXRpb24ubGVuZ3RoPjIpe2Zvcih2YXIgcz1BcnJheSguNSp0LnBvc2l0aW9uLmxlbmd0aCksZj0wO2Y8cy5sZW5ndGg7ZisrKXNbZl09dC50ZXh0O3QudGV4dD1zfWlmKG51bGwhPXQudGV4dHx8aSl7aWYodGhpcy50ZXh0T2Zmc2V0cz1bMF0sQXJyYXkuaXNBcnJheSh0LnRleHQpKXt0aGlzLmNvdW50PXQudGV4dFswXS5sZW5ndGgsdGhpcy5jb3VudHM9W3RoaXMuY291bnRdO2Zvcih2YXIgYj0xO2I8dC50ZXh0Lmxlbmd0aDtiKyspdGhpcy50ZXh0T2Zmc2V0c1tiXT10aGlzLnRleHRPZmZzZXRzW2ItMV0rdC50ZXh0W2ItMV0ubGVuZ3RoLHRoaXMuY291bnQrPXQudGV4dFtiXS5sZW5ndGgsdGhpcy5jb3VudHMucHVzaCh0LnRleHRbYl0ubGVuZ3RoKTt0aGlzLnRleHQ9dC50ZXh0LmpvaW4oIiIpfWVsc2UgdGhpcy50ZXh0PXQudGV4dCx0aGlzLmNvdW50PXRoaXMudGV4dC5sZW5ndGgsdGhpcy5jb3VudHM9W3RoaXMuY291bnRdO3I9W10sdGhpcy5mb250LmZvckVhY2goZnVuY3Rpb24odCxuKXtrLmF0bGFzQ29udGV4dC5mb250PXQuYmFzZVN0cmluZztmb3IodmFyIGE9ZS5mb250QXRsYXNbbl0saT0wO2k8ZS50ZXh0Lmxlbmd0aDtpKyspe3ZhciBvPWUudGV4dC5jaGFyQXQoaSk7aWYobnVsbD09YS5pZHNbb10mJihhLmlkc1tvXT1hLmNoYXJzLmxlbmd0aCxhLmNoYXJzLnB1c2gobyksci5wdXNoKG8pKSxudWxsPT10LndpZHRoW29dJiYodC53aWR0aFtvXT1rLmF0bGFzQ29udGV4dC5tZWFzdXJlVGV4dChvKS53aWR0aC9rLmJhc2VGb250U2l6ZSxlLmtlcm5pbmcpKXt2YXIgcz1bXTtmb3IodmFyIGwgaW4gdC53aWR0aClzLnB1c2gobCtvLG8rbCk7dih0Lmtlcm5pbmcsZyh0LmZhbWlseSx7cGFpcnM6c30pKX19fSl9aWYodC5wb3NpdGlvbilpZih0LnBvc2l0aW9uLmxlbmd0aD4yKXtmb3IodmFyIHc9IXQucG9zaXRpb25bMF0ubGVuZ3RoLFQ9dS5tYWxsb2NGbG9hdCgyKnRoaXMuY291bnQpLE09MCxBPTA7TTx0aGlzLmNvdW50cy5sZW5ndGg7TSsrKXt2YXIgUz10aGlzLmNvdW50c1tNXTtpZih3KWZvcih2YXIgRT0wO0U8UztFKyspVFtBKytdPXQucG9zaXRpb25bMipNXSxUW0ErK109dC5wb3NpdGlvblsyKk0rMV07ZWxzZSBmb3IodmFyIEw9MDtMPFM7TCsrKVRbQSsrXT10LnBvc2l0aW9uW01dWzBdLFRbQSsrXT10LnBvc2l0aW9uW01dWzFdfXRoaXMucG9zaXRpb24uY2FsbD90aGlzLnBvc2l0aW9uKHt0eXBlOiJmbG9hdCIsZGF0YTpUfSk6dGhpcy5wb3NpdGlvbj10aGlzLnJlZ2wuYnVmZmVyKHt0eXBlOiJmbG9hdCIsZGF0YTpUfSksdS5mcmVlRmxvYXQoVCl9ZWxzZSB0aGlzLnBvc2l0aW9uLmRlc3Ryb3kmJnRoaXMucG9zaXRpb24uZGVzdHJveSgpLHRoaXMucG9zaXRpb249e2NvbnN0YW50OnQucG9zaXRpb259O2lmKHQudGV4dHx8aSl7dmFyIEM9dS5tYWxsb2NVaW50OCh0aGlzLmNvdW50KSxQPXUubWFsbG9jRmxvYXQoMip0aGlzLmNvdW50KTt0aGlzLnRleHRXaWR0aD1bXTtmb3IodmFyIE89MCx6PTA7Tzx0aGlzLmNvdW50cy5sZW5ndGg7TysrKXtmb3IodmFyIEk9dGhpcy5jb3VudHNbT10sRD10aGlzLmZvbnRbT118fHRoaXMuZm9udFswXSxSPXRoaXMuZm9udEF0bGFzW09dfHx0aGlzLmZvbnRBdGxhc1swXSxGPTA7RjxJO0YrKyl7dmFyIEI9dGhpcy50ZXh0LmNoYXJBdCh6KSxOPXRoaXMudGV4dC5jaGFyQXQoei0xKTtpZihDW3pdPVIuaWRzW0JdLFBbMip6XT1ELndpZHRoW0JdLEYpe3ZhciBqPVBbMip6LTJdLFY9UFsyKnpdLFU9UFsyKnotMV0rLjUqaisuNSpWO2lmKHRoaXMua2VybmluZyl7dmFyIHE9RC5rZXJuaW5nW04rQl07cSYmKFUrPS4wMDEqcSl9UFsyKnorMV09VX1lbHNlIFBbMip6KzFdPS41KlBbMip6XTt6Kyt9dGhpcy50ZXh0V2lkdGgucHVzaChQLmxlbmd0aD8uNSpQWzIqei0yXStQWzIqei0xXTowKX10LmFsaWdufHwodC5hbGlnbj10aGlzLmFsaWduKSx0aGlzLmNoYXJCdWZmZXIoe2RhdGE6Qyx0eXBlOiJ1aW50OCIsdXNhZ2U6InN0cmVhbSJ9KSx0aGlzLnNpemVCdWZmZXIoe2RhdGE6UCx0eXBlOiJmbG9hdCIsdXNhZ2U6InN0cmVhbSJ9KSx1LmZyZWVVaW50OChDKSx1LmZyZWVGbG9hdChQKSxyLmxlbmd0aCYmdGhpcy5mb250LmZvckVhY2goZnVuY3Rpb24odCxyKXt2YXIgbj1lLmZvbnRBdGxhc1tyXSxhPW4uc3RlcCxpPU1hdGguZmxvb3Ioay5tYXhBdGxhc1NpemUvYSksbz1NYXRoLm1pbihpLG4uY2hhcnMubGVuZ3RoKSxzPU1hdGguY2VpbChuLmNoYXJzLmxlbmd0aC9vKSxsPXgobyphKSx1PXgocyphKTtuLndpZHRoPWwsbi5oZWlnaHQ9dSxuLnJvd3M9cyxuLmNvbHM9byxuLmVtJiZuLnRleHR1cmUoe2RhdGE6Yyh7Y2FudmFzOmsuYXRsYXNDYW52YXMsZm9udDpuLmZvbnRTdHJpbmcsY2hhcnM6bi5jaGFycyxzaGFwZTpbbCx1XSxzdGVwOlthLGFdfSl9KX0pfWlmKHQuYWxpZ24mJih0aGlzLmFsaWduPXQuYWxpZ24sdGhpcy5hbGlnbk9mZnNldD10aGlzLnRleHRXaWR0aC5tYXAoZnVuY3Rpb24odCxyKXt2YXIgbj1BcnJheS5pc0FycmF5KGUuYWxpZ24pP2UuYWxpZ24ubGVuZ3RoPjE/ZS5hbGlnbltyXTplLmFsaWduWzBdOmUuYWxpZ247aWYoIm51bWJlciI9PXR5cGVvZiBuKXJldHVybiBuO3N3aXRjaChuKXtjYXNlInJpZ2h0IjpjYXNlImVuZCI6cmV0dXJuLXQ7Y2FzZSJjZW50ZXIiOmNhc2UiY2VudHJlIjpjYXNlIm1pZGRsZSI6cmV0dXJuLjUqLXR9cmV0dXJuIDB9KSksbnVsbD09dGhpcy5iYXNlbGluZSYmbnVsbD09dC5iYXNlbGluZSYmKHQuYmFzZWxpbmU9MCksbnVsbCE9dC5iYXNlbGluZSYmKHRoaXMuYmFzZWxpbmU9dC5iYXNlbGluZSxBcnJheS5pc0FycmF5KHRoaXMuYmFzZWxpbmUpfHwodGhpcy5iYXNlbGluZT1bdGhpcy5iYXNlbGluZV0pLHRoaXMuYmFzZWxpbmVPZmZzZXQ9dGhpcy5iYXNlbGluZS5tYXAoZnVuY3Rpb24odCxyKXt2YXIgbj0oZS5mb250W3JdfHxlLmZvbnRbMF0pLm1ldHJpY3MsYT0wO3JldHVybiBhKz0uNSpuLmJvdHRvbSxhKz0ibnVtYmVyIj09dHlwZW9mIHQ/dC1uLmJhc2VsaW5lOi1uW3RdLGsubm9ybWFsVmlld3BvcnR8fChhKj0tMSksYX0pKSxudWxsIT10LmNvbG9yKWlmKHQuY29sb3J8fCh0LmNvbG9yPSJ0cmFuc3BhcmVudCIpLCJzdHJpbmciIT10eXBlb2YgdC5jb2xvciYmaXNOYU4odC5jb2xvcikpe3ZhciBIO2lmKCJudW1iZXIiPT10eXBlb2YgdC5jb2xvclswXSYmdC5jb2xvci5sZW5ndGg+dGhpcy5jb3VudHMubGVuZ3RoKXt2YXIgRz10LmNvbG9yLmxlbmd0aDtIPXUubWFsbG9jVWludDgoRyk7Zm9yKHZhciBZPSh0LmNvbG9yLnN1YmFycmF5fHx0LmNvbG9yLnNsaWNlKS5iaW5kKHQuY29sb3IpLFc9MDtXPEc7Vys9NClILnNldChsKFkoVyxXKzQpLCJ1aW50OCIpLFcpfWVsc2V7dmFyIFg9dC5jb2xvci5sZW5ndGg7SD11Lm1hbGxvY1VpbnQ4KDQqWCk7Zm9yKHZhciBaPTA7WjxYO1orKylILnNldChsKHQuY29sb3JbWl18fDAsInVpbnQ4IiksNCpaKX10aGlzLmNvbG9yPUh9ZWxzZSB0aGlzLmNvbG9yPWwodC5jb2xvciwidWludDgiKTtpZih0LnBvc2l0aW9ufHx0LnRleHR8fHQuY29sb3J8fHQuYmFzZWxpbmV8fHQuYWxpZ258fHQuZm9udHx8dC5vZmZzZXR8fHQub3BhY2l0eSlpZih0aGlzLmNvbG9yLmxlbmd0aD40fHx0aGlzLmJhc2VsaW5lT2Zmc2V0Lmxlbmd0aD4xfHx0aGlzLmFsaWduJiZ0aGlzLmFsaWduLmxlbmd0aD4xfHx0aGlzLmZvbnRBdGxhcy5sZW5ndGg+MXx8dGhpcy5wb3NpdGlvbk9mZnNldC5sZW5ndGg+Mil7dmFyIEo9TWF0aC5tYXgoLjUqdGhpcy5wb3NpdGlvbi5sZW5ndGh8fDAsLjI1KnRoaXMuY29sb3IubGVuZ3RofHwwLHRoaXMuYmFzZWxpbmVPZmZzZXQubGVuZ3RofHwwLHRoaXMuYWxpZ25PZmZzZXQubGVuZ3RofHwwLHRoaXMuZm9udC5sZW5ndGh8fDAsdGhpcy5vcGFjaXR5Lmxlbmd0aHx8MCwuNSp0aGlzLnBvc2l0aW9uT2Zmc2V0Lmxlbmd0aHx8MCk7dGhpcy5iYXRjaD1BcnJheShKKTtmb3IodmFyIEs9MDtLPHRoaXMuYmF0Y2gubGVuZ3RoO0srKyl0aGlzLmJhdGNoW0tdPXtjb3VudDp0aGlzLmNvdW50cy5sZW5ndGg+MT90aGlzLmNvdW50c1tLXTp0aGlzLmNvdW50c1swXSxvZmZzZXQ6dGhpcy50ZXh0T2Zmc2V0cy5sZW5ndGg+MT90aGlzLnRleHRPZmZzZXRzW0tdOnRoaXMudGV4dE9mZnNldHNbMF0sY29sb3I6dGhpcy5jb2xvcj90aGlzLmNvbG9yLmxlbmd0aDw9ND90aGlzLmNvbG9yOnRoaXMuY29sb3Iuc3ViYXJyYXkoNCpLLDQqSys0KTpbMCwwLDAsMjU1XSxvcGFjaXR5OkFycmF5LmlzQXJyYXkodGhpcy5vcGFjaXR5KT90aGlzLm9wYWNpdHlbS106dGhpcy5vcGFjaXR5LGJhc2VsaW5lOm51bGwhPXRoaXMuYmFzZWxpbmVPZmZzZXRbS10/dGhpcy5iYXNlbGluZU9mZnNldFtLXTp0aGlzLmJhc2VsaW5lT2Zmc2V0WzBdLGFsaWduOnRoaXMuYWxpZ24/bnVsbCE9dGhpcy5hbGlnbk9mZnNldFtLXT90aGlzLmFsaWduT2Zmc2V0W0tdOnRoaXMuYWxpZ25PZmZzZXRbMF06MCxhdGxhczp0aGlzLmZvbnRBdGxhc1tLXXx8dGhpcy5mb250QXRsYXNbMF0scG9zaXRpb25PZmZzZXQ6dGhpcy5wb3NpdGlvbk9mZnNldC5sZW5ndGg+Mj90aGlzLnBvc2l0aW9uT2Zmc2V0LnN1YmFycmF5KDIqSywyKksrMik6dGhpcy5wb3NpdGlvbk9mZnNldH19ZWxzZSB0aGlzLmNvdW50P3RoaXMuYmF0Y2g9W3tjb3VudDp0aGlzLmNvdW50LG9mZnNldDowLGNvbG9yOnRoaXMuY29sb3J8fFswLDAsMCwyNTVdLG9wYWNpdHk6QXJyYXkuaXNBcnJheSh0aGlzLm9wYWNpdHkpP3RoaXMub3BhY2l0eVswXTp0aGlzLm9wYWNpdHksYmFzZWxpbmU6dGhpcy5iYXNlbGluZU9mZnNldFswXSxhbGlnbjp0aGlzLmFsaWduT2Zmc2V0P3RoaXMuYWxpZ25PZmZzZXRbMF06MCxhdGxhczp0aGlzLmZvbnRBdGxhc1swXSxwb3NpdGlvbk9mZnNldDp0aGlzLnBvc2l0aW9uT2Zmc2V0fV06dGhpcy5iYXRjaD1bXX0say5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe30say5wcm90b3R5cGUua2VybmluZz0hMCxrLnByb3RvdHlwZS5wb3NpdGlvbj17Y29uc3RhbnQ6bmV3IEZsb2F0MzJBcnJheSgyKX0say5wcm90b3R5cGUudHJhbnNsYXRlPW51bGwsay5wcm90b3R5cGUuc2NhbGU9bnVsbCxrLnByb3RvdHlwZS5mb250PW51bGwsay5wcm90b3R5cGUudGV4dD0iIixrLnByb3RvdHlwZS5wb3NpdGlvbk9mZnNldD1bMCwwXSxrLnByb3RvdHlwZS5vcGFjaXR5PTEsay5wcm90b3R5cGUuY29sb3I9bmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDI1NV0pLGsucHJvdG90eXBlLmFsaWduT2Zmc2V0PVswLDBdLGsubm9ybWFsVmlld3BvcnQ9ITEsay5tYXhBdGxhc1NpemU9MTAyNCxrLmF0bGFzQ2FudmFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLGsuYXRsYXNDb250ZXh0PWsuYXRsYXNDYW52YXMuZ2V0Q29udGV4dCgiMmQiLHthbHBoYTohMX0pLGsuYmFzZUZvbnRTaXplPTY0LGsuZm9udHM9e30sZS5leHBvcnRzPWt9LHsiYml0LXR3aWRkbGUiOjk0LCJjb2xvci1ub3JtYWxpemUiOjEyMiwiY3NzLWZvbnQiOjE0MSwiZGV0ZWN0LWtlcm5pbmciOjE2OCwiZXM2LXdlYWstbWFwIjozMjAsImZsYXR0ZW4tdmVydGV4LWRhdGEiOjIzMCwiZm9udC1hdGxhcyI6MjMxLCJmb250LW1lYXN1cmUiOjIzMiwiZ2wtdXRpbC9jb250ZXh0IjozMjUsImlzLXBsYWluLW9iaiI6NDI0LCJvYmplY3QtYXNzaWduIjo0NTYsInBhcnNlLXJlY3QiOjQ2MSwicGFyc2UtdW5pdCI6NDYzLCJwaWNrLWJ5LWFsaWFzIjo0NjcscmVnbDo1MDEsInRvLXB4Ijo1MzgsInR5cGVkYXJyYXktcG9vbCI6NTQ0fV0sMzIwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuL2lzLWltcGxlbWVudGVkIikoKT9XZWFrTWFwOnQoIi4vcG9seWZpbGwiKX0seyIuL2lzLWltcGxlbWVudGVkIjozMjEsIi4vcG9seWZpbGwiOjMyM31dLDMyMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgdCxlO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBXZWFrTWFwKXJldHVybiExO3RyeXt0PW5ldyBXZWFrTWFwKFtbZT17fSwib25lIl0sW3t9LCJ0d28iXSxbe30sInRocmVlIl1dKX1jYXRjaCh0KXtyZXR1cm4hMX1yZXR1cm4iW29iamVjdCBXZWFrTWFwXSI9PT1TdHJpbmcodCkmJigiZnVuY3Rpb24iPT10eXBlb2YgdC5zZXQmJih0LnNldCh7fSwxKT09PXQmJigiZnVuY3Rpb24iPT10eXBlb2YgdC5kZWxldGUmJigiZnVuY3Rpb24iPT10eXBlb2YgdC5oYXMmJiJvbmUiPT09dC5nZXQoZSkpKSkpfX0se31dLDMyMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ImZ1bmN0aW9uIj09dHlwZW9mIFdlYWtNYXAmJiJbb2JqZWN0IFdlYWtNYXBdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChuZXcgV2Vha01hcCl9LHt9XSwzMjM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG4sYT10KCJlczUtZXh0L29iamVjdC9pcy12YWx1ZSIpLGk9dCgiZXM1LWV4dC9vYmplY3Qvc2V0LXByb3RvdHlwZS1vZiIpLG89dCgiZXM1LWV4dC9vYmplY3QvdmFsaWQtb2JqZWN0Iikscz10KCJlczUtZXh0L29iamVjdC92YWxpZC12YWx1ZSIpLGw9dCgiZXM1LWV4dC9zdHJpbmcvcmFuZG9tLXVuaXEiKSxjPXQoImQiKSx1PXQoImVzNi1pdGVyYXRvci9nZXQiKSxoPXQoImVzNi1pdGVyYXRvci9mb3Itb2YiKSxmPXQoImVzNi1zeW1ib2wiKS50b1N0cmluZ1RhZyxwPXQoIi4vaXMtbmF0aXZlLWltcGxlbWVudGVkIiksZD1BcnJheS5pc0FycmF5LGc9T2JqZWN0LmRlZmluZVByb3BlcnR5LHY9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxtPU9iamVjdC5nZXRQcm90b3R5cGVPZjtlLmV4cG9ydHM9bj1mdW5jdGlvbigpe3ZhciB0LGU9YXJndW1lbnRzWzBdO2lmKCEodGhpcyBpbnN0YW5jZW9mIG4pKXRocm93IG5ldyBUeXBlRXJyb3IoIkNvbnN0cnVjdG9yIHJlcXVpcmVzICduZXcnIik7cmV0dXJuIHQ9cCYmaSYmV2Vha01hcCE9PW4/aShuZXcgV2Vha01hcCxtKHRoaXMpKTp0aGlzLGEoZSkmJihkKGUpfHwoZT11KGUpKSksZyh0LCJfX3dlYWtNYXBEYXRhX18iLGMoImMiLCIkd2Vha01hcCQiK2woKSkpLGU/KGgoZSxmdW5jdGlvbihlKXtzKGUpLHQuc2V0KGVbMF0sZVsxXSl9KSx0KTp0fSxwJiYoaSYmaShuLFdlYWtNYXApLG4ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoV2Vha01hcC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOmMobil9KSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMobi5wcm90b3R5cGUse2RlbGV0ZTpjKGZ1bmN0aW9uKHQpe3JldHVybiEhdi5jYWxsKG8odCksdGhpcy5fX3dlYWtNYXBEYXRhX18pJiYoZGVsZXRlIHRbdGhpcy5fX3dlYWtNYXBEYXRhX19dLCEwKX0pLGdldDpjKGZ1bmN0aW9uKHQpe2lmKHYuY2FsbChvKHQpLHRoaXMuX193ZWFrTWFwRGF0YV9fKSlyZXR1cm4gdFt0aGlzLl9fd2Vha01hcERhdGFfX119KSxoYXM6YyhmdW5jdGlvbih0KXtyZXR1cm4gdi5jYWxsKG8odCksdGhpcy5fX3dlYWtNYXBEYXRhX18pfSksc2V0OmMoZnVuY3Rpb24odCxlKXtyZXR1cm4gZyhvKHQpLHRoaXMuX193ZWFrTWFwRGF0YV9fLGMoImMiLGUpKSx0aGlzfSksdG9TdHJpbmc6YyhmdW5jdGlvbigpe3JldHVybiJbb2JqZWN0IFdlYWtNYXBdIn0pfSksZyhuLnByb3RvdHlwZSxmLGMoImMiLCJXZWFrTWFwIikpfSx7Ii4vaXMtbmF0aXZlLWltcGxlbWVudGVkIjozMjIsZDoxNTMsImVzNS1leHQvb2JqZWN0L2lzLXZhbHVlIjoxOTcsImVzNS1leHQvb2JqZWN0L3NldC1wcm90b3R5cGUtb2YiOjIwMywiZXM1LWV4dC9vYmplY3QvdmFsaWQtb2JqZWN0IjoyMDcsImVzNS1leHQvb2JqZWN0L3ZhbGlkLXZhbHVlIjoyMDgsImVzNS1leHQvc3RyaW5nL3JhbmRvbS11bmlxIjoyMTMsImVzNi1pdGVyYXRvci9mb3Itb2YiOjIxNSwiZXM2LWl0ZXJhdG9yL2dldCI6MjE2LCJlczYtc3ltYm9sIjoyMjJ9XSwzMjQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgibmRhcnJheSIpLGE9dCgibmRhcnJheS1vcHMiKSxpPXQoInR5cGVkYXJyYXktcG9vbCIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtpZihhcmd1bWVudHMubGVuZ3RoPD0xKXRocm93IG5ldyBFcnJvcigiZ2wtdGV4dHVyZTJkOiBNaXNzaW5nIGFyZ3VtZW50cyBmb3IgdGV4dHVyZTJkIGNvbnN0cnVjdG9yIik7b3x8ZnVuY3Rpb24odCl7bz1bdC5MSU5FQVIsdC5ORUFSRVNUX01JUE1BUF9MSU5FQVIsdC5MSU5FQVJfTUlQTUFQX05FQVJFU1QsdC5MSU5FQVJfTUlQTUFQX05FQVJFU1RdLHM9W3QuTkVBUkVTVCx0LkxJTkVBUix0Lk5FQVJFU1RfTUlQTUFQX05FQVJFU1QsdC5ORUFSRVNUX01JUE1BUF9MSU5FQVIsdC5MSU5FQVJfTUlQTUFQX05FQVJFU1QsdC5MSU5FQVJfTUlQTUFQX0xJTkVBUl0sbD1bdC5SRVBFQVQsdC5DTEFNUF9UT19FREdFLHQuTUlSUk9SRURfUkVQRUFUXX0odCk7aWYoIm51bWJlciI9PXR5cGVvZiBhcmd1bWVudHNbMV0pcmV0dXJuIHYodCxhcmd1bWVudHNbMV0sYXJndW1lbnRzWzJdLGFyZ3VtZW50c1szXXx8dC5SR0JBLGFyZ3VtZW50c1s0XXx8dC5VTlNJR05FRF9CWVRFKTtpZihBcnJheS5pc0FycmF5KGFyZ3VtZW50c1sxXSkpcmV0dXJuIHYodCwwfGFyZ3VtZW50c1sxXVswXSwwfGFyZ3VtZW50c1sxXVsxXSxhcmd1bWVudHNbMl18fHQuUkdCQSxhcmd1bWVudHNbM118fHQuVU5TSUdORURfQllURSk7aWYoIm9iamVjdCI9PXR5cGVvZiBhcmd1bWVudHNbMV0pe3ZhciBlPWFyZ3VtZW50c1sxXSxyPWMoZSk/ZTplLnJhdztpZihyKXJldHVybiBmdW5jdGlvbih0LGUscixuLGEsaSl7dmFyIG89Zyh0KTtyZXR1cm4gdC50ZXhJbWFnZTJEKHQuVEVYVFVSRV8yRCwwLGEsYSxpLGUpLG5ldyBmKHQsbyxyLG4sYSxpKX0odCxyLDB8ZS53aWR0aCwwfGUuaGVpZ2h0LGFyZ3VtZW50c1syXXx8dC5SR0JBLGFyZ3VtZW50c1szXXx8dC5VTlNJR05FRF9CWVRFKTtpZihlLnNoYXBlJiZlLmRhdGEmJmUuc3RyaWRlKXJldHVybiBmdW5jdGlvbih0LGUpe3ZhciByPWUuZHR5cGUsbz1lLnNoYXBlLnNsaWNlKCkscz10LmdldFBhcmFtZXRlcih0Lk1BWF9URVhUVVJFX1NJWkUpO2lmKG9bMF08MHx8b1swXT5zfHxvWzFdPDB8fG9bMV0+cyl0aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogSW52YWxpZCB0ZXh0dXJlIHNpemUiKTt2YXIgbD1kKG8sZS5zdHJpZGUuc2xpY2UoKSksYz0wOyJmbG9hdDMyIj09PXI/Yz10LkZMT0FUOiJmbG9hdDY0Ij09PXI/KGM9dC5GTE9BVCxsPSExLHI9ImZsb2F0MzIiKToidWludDgiPT09cj9jPXQuVU5TSUdORURfQllURTooYz10LlVOU0lHTkVEX0JZVEUsbD0hMSxyPSJ1aW50OCIpO3ZhciBoLHAsdj0wO2lmKDI9PT1vLmxlbmd0aCl2PXQuTFVNSU5BTkNFLG89W29bMF0sb1sxXSwxXSxlPW4oZS5kYXRhLG8sW2Uuc3RyaWRlWzBdLGUuc3RyaWRlWzFdLDFdLGUub2Zmc2V0KTtlbHNle2lmKDMhPT1vLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogSW52YWxpZCBzaGFwZSBmb3IgdGV4dHVyZSIpO2lmKDE9PT1vWzJdKXY9dC5BTFBIQTtlbHNlIGlmKDI9PT1vWzJdKXY9dC5MVU1JTkFOQ0VfQUxQSEE7ZWxzZSBpZigzPT09b1syXSl2PXQuUkdCO2Vsc2V7aWYoNCE9PW9bMl0pdGhyb3cgbmV3IEVycm9yKCJnbC10ZXh0dXJlMmQ6IEludmFsaWQgc2hhcGUgZm9yIHBpeGVsIGNvb3JkcyIpO3Y9dC5SR0JBfX1jIT09dC5GTE9BVHx8dC5nZXRFeHRlbnNpb24oIk9FU190ZXh0dXJlX2Zsb2F0Iil8fChjPXQuVU5TSUdORURfQllURSxsPSExKTt2YXIgbT1lLnNpemU7aWYobCloPTA9PT1lLm9mZnNldCYmZS5kYXRhLmxlbmd0aD09PW0/ZS5kYXRhOmUuZGF0YS5zdWJhcnJheShlLm9mZnNldCxlLm9mZnNldCttKTtlbHNle3ZhciB5PVtvWzJdLG9bMl0qb1swXSwxXTtwPWkubWFsbG9jKG0scik7dmFyIHg9bihwLG8seSwwKTsiZmxvYXQzMiIhPT1yJiYiZmxvYXQ2NCIhPT1yfHxjIT09dC5VTlNJR05FRF9CWVRFP2EuYXNzaWduKHgsZSk6dSh4LGUpLGg9cC5zdWJhcnJheSgwLG0pfXZhciBiPWcodCk7dC50ZXhJbWFnZTJEKHQuVEVYVFVSRV8yRCwwLHYsb1swXSxvWzFdLDAsdixjLGgpLGx8fGkuZnJlZShwKTtyZXR1cm4gbmV3IGYodCxiLG9bMF0sb1sxXSx2LGMpfSh0LGUpfXRocm93IG5ldyBFcnJvcigiZ2wtdGV4dHVyZTJkOiBJbnZhbGlkIGFyZ3VtZW50cyBmb3IgdGV4dHVyZTJkIGNvbnN0cnVjdG9yIil9O3ZhciBvPW51bGwscz1udWxsLGw9bnVsbDtmdW5jdGlvbiBjKHQpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgSFRNTENhbnZhc0VsZW1lbnQmJnQgaW5zdGFuY2VvZiBIVE1MQ2FudmFzRWxlbWVudHx8InVuZGVmaW5lZCIhPXR5cGVvZiBIVE1MSW1hZ2VFbGVtZW50JiZ0IGluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudHx8InVuZGVmaW5lZCIhPXR5cGVvZiBIVE1MVmlkZW9FbGVtZW50JiZ0IGluc3RhbmNlb2YgSFRNTFZpZGVvRWxlbWVudHx8InVuZGVmaW5lZCIhPXR5cGVvZiBJbWFnZURhdGEmJnQgaW5zdGFuY2VvZiBJbWFnZURhdGF9dmFyIHU9ZnVuY3Rpb24odCxlKXthLm11bHModCxlLDI1NSl9O2Z1bmN0aW9uIGgodCxlLHIpe3ZhciBuPXQuZ2wsYT1uLmdldFBhcmFtZXRlcihuLk1BWF9URVhUVVJFX1NJWkUpO2lmKGU8MHx8ZT5hfHxyPDB8fHI+YSl0aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogSW52YWxpZCB0ZXh0dXJlIHNpemUiKTtyZXR1cm4gdC5fc2hhcGU9W2Uscl0sdC5iaW5kKCksbi50ZXhJbWFnZTJEKG4uVEVYVFVSRV8yRCwwLHQuZm9ybWF0LGUsciwwLHQuZm9ybWF0LHQudHlwZSxudWxsKSx0Ll9taXBMZXZlbHM9WzBdLHR9ZnVuY3Rpb24gZih0LGUscixuLGEsaSl7dGhpcy5nbD10LHRoaXMuaGFuZGxlPWUsdGhpcy5mb3JtYXQ9YSx0aGlzLnR5cGU9aSx0aGlzLl9zaGFwZT1bcixuXSx0aGlzLl9taXBMZXZlbHM9WzBdLHRoaXMuX21hZ0ZpbHRlcj10Lk5FQVJFU1QsdGhpcy5fbWluRmlsdGVyPXQuTkVBUkVTVCx0aGlzLl93cmFwUz10LkNMQU1QX1RPX0VER0UsdGhpcy5fd3JhcFQ9dC5DTEFNUF9UT19FREdFLHRoaXMuX2FuaXNvU2FtcGxlcz0xO3ZhciBvPXRoaXMscz1bdGhpcy5fd3JhcFMsdGhpcy5fd3JhcFRdO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHMsW3tnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gby5fd3JhcFN9LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gby53cmFwUz10fX0se2dldDpmdW5jdGlvbigpe3JldHVybiBvLl93cmFwVH0sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiBvLndyYXBUPXR9fV0pLHRoaXMuX3dyYXBWZWN0b3I9czt2YXIgbD1bdGhpcy5fc2hhcGVbMF0sdGhpcy5fc2hhcGVbMV1dO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGwsW3tnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gby5fc2hhcGVbMF19LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gby53aWR0aD10fX0se2dldDpmdW5jdGlvbigpe3JldHVybiBvLl9zaGFwZVsxXX0sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiBvLmhlaWdodD10fX1dKSx0aGlzLl9zaGFwZVZlY3Rvcj1sfXZhciBwPWYucHJvdG90eXBlO2Z1bmN0aW9uIGQodCxlKXtyZXR1cm4gMz09PXQubGVuZ3RoPzE9PT1lWzJdJiZlWzFdPT09dFswXSp0WzJdJiZlWzBdPT09dFsyXToxPT09ZVswXSYmZVsxXT09PXRbMF19ZnVuY3Rpb24gZyh0KXt2YXIgZT10LmNyZWF0ZVRleHR1cmUoKTtyZXR1cm4gdC5iaW5kVGV4dHVyZSh0LlRFWFRVUkVfMkQsZSksdC50ZXhQYXJhbWV0ZXJpKHQuVEVYVFVSRV8yRCx0LlRFWFRVUkVfTUlOX0ZJTFRFUix0Lk5FQVJFU1QpLHQudGV4UGFyYW1ldGVyaSh0LlRFWFRVUkVfMkQsdC5URVhUVVJFX01BR19GSUxURVIsdC5ORUFSRVNUKSx0LnRleFBhcmFtZXRlcmkodC5URVhUVVJFXzJELHQuVEVYVFVSRV9XUkFQX1MsdC5DTEFNUF9UT19FREdFKSx0LnRleFBhcmFtZXRlcmkodC5URVhUVVJFXzJELHQuVEVYVFVSRV9XUkFQX1QsdC5DTEFNUF9UT19FREdFKSxlfWZ1bmN0aW9uIHYodCxlLHIsbixhKXt2YXIgaT10LmdldFBhcmFtZXRlcih0Lk1BWF9URVhUVVJFX1NJWkUpO2lmKGU8MHx8ZT5pfHxyPDB8fHI+aSl0aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogSW52YWxpZCB0ZXh0dXJlIHNoYXBlIik7aWYoYT09PXQuRkxPQVQmJiF0LmdldEV4dGVuc2lvbigiT0VTX3RleHR1cmVfZmxvYXQiKSl0aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogRmxvYXRpbmcgcG9pbnQgdGV4dHVyZXMgbm90IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtIik7dmFyIG89Zyh0KTtyZXR1cm4gdC50ZXhJbWFnZTJEKHQuVEVYVFVSRV8yRCwwLG4sZSxyLDAsbixhLG51bGwpLG5ldyBmKHQsbyxlLHIsbixhKX1PYmplY3QuZGVmaW5lUHJvcGVydGllcyhwLHttaW5GaWx0ZXI6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9taW5GaWx0ZXJ9LHNldDpmdW5jdGlvbih0KXt0aGlzLmJpbmQoKTt2YXIgZT10aGlzLmdsO2lmKHRoaXMudHlwZT09PWUuRkxPQVQmJm8uaW5kZXhPZih0KT49MCYmKGUuZ2V0RXh0ZW5zaW9uKCJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKXx8KHQ9ZS5ORUFSRVNUKSkscy5pbmRleE9mKHQpPDApdGhyb3cgbmV3IEVycm9yKCJnbC10ZXh0dXJlMmQ6IFVua25vd24gZmlsdGVyIG1vZGUgIit0KTtyZXR1cm4gZS50ZXhQYXJhbWV0ZXJpKGUuVEVYVFVSRV8yRCxlLlRFWFRVUkVfTUlOX0ZJTFRFUix0KSx0aGlzLl9taW5GaWx0ZXI9dH19LG1hZ0ZpbHRlcjp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21hZ0ZpbHRlcn0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuYmluZCgpO3ZhciBlPXRoaXMuZ2w7aWYodGhpcy50eXBlPT09ZS5GTE9BVCYmby5pbmRleE9mKHQpPj0wJiYoZS5nZXRFeHRlbnNpb24oIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpfHwodD1lLk5FQVJFU1QpKSxzLmluZGV4T2YodCk8MCl0aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogVW5rbm93biBmaWx0ZXIgbW9kZSAiK3QpO3JldHVybiBlLnRleFBhcmFtZXRlcmkoZS5URVhUVVJFXzJELGUuVEVYVFVSRV9NQUdfRklMVEVSLHQpLHRoaXMuX21hZ0ZpbHRlcj10fX0sbWlwU2FtcGxlczp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FuaXNvU2FtcGxlc30sc2V0OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2FuaXNvU2FtcGxlcztpZih0aGlzLl9hbmlzb1NhbXBsZXM9MHxNYXRoLm1heCh0LDEpLGUhPT10aGlzLl9hbmlzb1NhbXBsZXMpe3ZhciByPXRoaXMuZ2wuZ2V0RXh0ZW5zaW9uKCJFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKTtyJiZ0aGlzLmdsLnRleFBhcmFtZXRlcmYodGhpcy5nbC5URVhUVVJFXzJELHIuVEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQsdGhpcy5fYW5pc29TYW1wbGVzKX1yZXR1cm4gdGhpcy5fYW5pc29TYW1wbGVzfX0sd3JhcFM6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93cmFwU30sc2V0OmZ1bmN0aW9uKHQpe2lmKHRoaXMuYmluZCgpLGwuaW5kZXhPZih0KTwwKXRocm93IG5ldyBFcnJvcigiZ2wtdGV4dHVyZTJkOiBVbmtub3duIHdyYXAgbW9kZSAiK3QpO3JldHVybiB0aGlzLmdsLnRleFBhcmFtZXRlcmkodGhpcy5nbC5URVhUVVJFXzJELHRoaXMuZ2wuVEVYVFVSRV9XUkFQX1MsdCksdGhpcy5fd3JhcFM9dH19LHdyYXBUOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JhcFR9LHNldDpmdW5jdGlvbih0KXtpZih0aGlzLmJpbmQoKSxsLmluZGV4T2YodCk8MCl0aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogVW5rbm93biB3cmFwIG1vZGUgIit0KTtyZXR1cm4gdGhpcy5nbC50ZXhQYXJhbWV0ZXJpKHRoaXMuZ2wuVEVYVFVSRV8yRCx0aGlzLmdsLlRFWFRVUkVfV1JBUF9ULHQpLHRoaXMuX3dyYXBUPXR9fSx3cmFwOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JhcFZlY3Rvcn0sc2V0OmZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCl8fCh0PVt0LHRdKSwyIT09dC5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJnbC10ZXh0dXJlMmQ6IE11c3Qgc3BlY2lmeSB3cmFwIG1vZGUgZm9yIHJvd3MgYW5kIGNvbHVtbnMiKTtmb3IodmFyIGU9MDtlPDI7KytlKWlmKGwuaW5kZXhPZih0W2VdKTwwKXRocm93IG5ldyBFcnJvcigiZ2wtdGV4dHVyZTJkOiBVbmtub3duIHdyYXAgbW9kZSAiK3QpO3RoaXMuX3dyYXBTPXRbMF0sdGhpcy5fd3JhcFQ9dFsxXTt2YXIgcj10aGlzLmdsO3JldHVybiB0aGlzLmJpbmQoKSxyLnRleFBhcmFtZXRlcmkoci5URVhUVVJFXzJELHIuVEVYVFVSRV9XUkFQX1MsdGhpcy5fd3JhcFMpLHIudGV4UGFyYW1ldGVyaShyLlRFWFRVUkVfMkQsci5URVhUVVJFX1dSQVBfVCx0aGlzLl93cmFwVCksdH19LHNoYXBlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2hhcGVWZWN0b3J9LHNldDpmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXtpZigyIT09dC5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJnbC10ZXh0dXJlMmQ6IEludmFsaWQgdGV4dHVyZSBzaGFwZSIpfWVsc2UgdD1bMHx0LDB8dF07cmV0dXJuIGgodGhpcywwfHRbMF0sMHx0WzFdKSxbMHx0WzBdLDB8dFsxXV19fSx3aWR0aDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NoYXBlWzBdfSxzZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGgodGhpcyx0fD0wLHRoaXMuX3NoYXBlWzFdKSx0fX0saGVpZ2h0OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2hhcGVbMV19LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gdHw9MCxoKHRoaXMsdGhpcy5fc2hhcGVbMF0sdCksdH19fSkscC5iaW5kPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZ2w7cmV0dXJuIHZvaWQgMCE9PXQmJmUuYWN0aXZlVGV4dHVyZShlLlRFWFRVUkUwKygwfHQpKSxlLmJpbmRUZXh0dXJlKGUuVEVYVFVSRV8yRCx0aGlzLmhhbmRsZSksdm9pZCAwIT09dD8wfHQ6ZS5nZXRQYXJhbWV0ZXIoZS5BQ1RJVkVfVEVYVFVSRSktZS5URVhUVVJFMH0scC5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5nbC5kZWxldGVUZXh0dXJlKHRoaXMuaGFuZGxlKX0scC5nZW5lcmF0ZU1pcG1hcD1mdW5jdGlvbigpe3RoaXMuYmluZCgpLHRoaXMuZ2wuZ2VuZXJhdGVNaXBtYXAodGhpcy5nbC5URVhUVVJFXzJEKTtmb3IodmFyIHQ9TWF0aC5taW4odGhpcy5fc2hhcGVbMF0sdGhpcy5fc2hhcGVbMV0pLGU9MDt0PjA7KytlLHQ+Pj49MSl0aGlzLl9taXBMZXZlbHMuaW5kZXhPZihlKTwwJiZ0aGlzLl9taXBMZXZlbHMucHVzaChlKX0scC5zZXRQaXhlbHM9ZnVuY3Rpb24odCxlLHIsbyl7dmFyIHM9dGhpcy5nbDt0aGlzLmJpbmQoKSxBcnJheS5pc0FycmF5KGUpPyhvPXIscj0wfGVbMV0sZT0wfGVbMF0pOihlPWV8fDAscj1yfHwwKSxvPW98fDA7dmFyIGw9Yyh0KT90OnQucmF3O2lmKGwpe3RoaXMuX21pcExldmVscy5pbmRleE9mKG8pPDA/KHMudGV4SW1hZ2UyRChzLlRFWFRVUkVfMkQsMCx0aGlzLmZvcm1hdCx0aGlzLmZvcm1hdCx0aGlzLnR5cGUsbCksdGhpcy5fbWlwTGV2ZWxzLnB1c2gobykpOnMudGV4U3ViSW1hZ2UyRChzLlRFWFRVUkVfMkQsbyxlLHIsdGhpcy5mb3JtYXQsdGhpcy50eXBlLGwpfWVsc2V7aWYoISh0LnNoYXBlJiZ0LnN0cmlkZSYmdC5kYXRhKSl0aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogVW5zdXBwb3J0ZWQgZGF0YSB0eXBlIik7aWYodC5zaGFwZS5sZW5ndGg8Mnx8ZSt0LnNoYXBlWzFdPnRoaXMuX3NoYXBlWzFdPj4+b3x8cit0LnNoYXBlWzBdPnRoaXMuX3NoYXBlWzBdPj4+b3x8ZTwwfHxyPDApdGhyb3cgbmV3IEVycm9yKCJnbC10ZXh0dXJlMmQ6IFRleHR1cmUgZGltZW5zaW9ucyBhcmUgb3V0IG9mIGJvdW5kcyIpOyFmdW5jdGlvbih0LGUscixvLHMsbCxjLGgpe3ZhciBmPWguZHR5cGUscD1oLnNoYXBlLnNsaWNlKCk7aWYocC5sZW5ndGg8Mnx8cC5sZW5ndGg+Myl0aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogSW52YWxpZCBuZGFycmF5LCBtdXN0IGJlIDJkIG9yIDNkIik7dmFyIGc9MCx2PTAsbT1kKHAsaC5zdHJpZGUuc2xpY2UoKSk7ImZsb2F0MzIiPT09Zj9nPXQuRkxPQVQ6ImZsb2F0NjQiPT09Zj8oZz10LkZMT0FULG09ITEsZj0iZmxvYXQzMiIpOiJ1aW50OCI9PT1mP2c9dC5VTlNJR05FRF9CWVRFOihnPXQuVU5TSUdORURfQllURSxtPSExLGY9InVpbnQ4Iik7aWYoMj09PXAubGVuZ3RoKXY9dC5MVU1JTkFOQ0UscD1bcFswXSxwWzFdLDFdLGg9bihoLmRhdGEscCxbaC5zdHJpZGVbMF0saC5zdHJpZGVbMV0sMV0saC5vZmZzZXQpO2Vsc2V7aWYoMyE9PXAubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiZ2wtdGV4dHVyZTJkOiBJbnZhbGlkIHNoYXBlIGZvciB0ZXh0dXJlIik7aWYoMT09PXBbMl0pdj10LkFMUEhBO2Vsc2UgaWYoMj09PXBbMl0pdj10LkxVTUlOQU5DRV9BTFBIQTtlbHNlIGlmKDM9PT1wWzJdKXY9dC5SR0I7ZWxzZXtpZig0IT09cFsyXSl0aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogSW52YWxpZCBzaGFwZSBmb3IgcGl4ZWwgY29vcmRzIik7dj10LlJHQkF9cFsyXX12IT09dC5MVU1JTkFOQ0UmJnYhPT10LkFMUEhBfHxzIT09dC5MVU1JTkFOQ0UmJnMhPT10LkFMUEhBfHwodj1zKTtpZih2IT09cyl0aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogSW5jb21wYXRpYmxlIHRleHR1cmUgZm9ybWF0IGZvciBzZXRQaXhlbHMiKTt2YXIgeT1oLnNpemUseD1jLmluZGV4T2Yobyk8MDt4JiZjLnB1c2gobyk7aWYoZz09PWwmJm0pMD09PWgub2Zmc2V0JiZoLmRhdGEubGVuZ3RoPT09eT94P3QudGV4SW1hZ2UyRCh0LlRFWFRVUkVfMkQsbyxzLHBbMF0scFsxXSwwLHMsbCxoLmRhdGEpOnQudGV4U3ViSW1hZ2UyRCh0LlRFWFRVUkVfMkQsbyxlLHIscFswXSxwWzFdLHMsbCxoLmRhdGEpOng/dC50ZXhJbWFnZTJEKHQuVEVYVFVSRV8yRCxvLHMscFswXSxwWzFdLDAscyxsLGguZGF0YS5zdWJhcnJheShoLm9mZnNldCxoLm9mZnNldCt5KSk6dC50ZXhTdWJJbWFnZTJEKHQuVEVYVFVSRV8yRCxvLGUscixwWzBdLHBbMV0scyxsLGguZGF0YS5zdWJhcnJheShoLm9mZnNldCxoLm9mZnNldCt5KSk7ZWxzZXt2YXIgYjtiPWw9PT10LkZMT0FUP2kubWFsbG9jRmxvYXQzMih5KTppLm1hbGxvY1VpbnQ4KHkpO3ZhciBfPW4oYixwLFtwWzJdLHBbMl0qcFswXSwxXSk7Zz09PXQuRkxPQVQmJmw9PT10LlVOU0lHTkVEX0JZVEU/dShfLGgpOmEuYXNzaWduKF8saCkseD90LnRleEltYWdlMkQodC5URVhUVVJFXzJELG8scyxwWzBdLHBbMV0sMCxzLGwsYi5zdWJhcnJheSgwLHkpKTp0LnRleFN1YkltYWdlMkQodC5URVhUVVJFXzJELG8sZSxyLHBbMF0scFsxXSxzLGwsYi5zdWJhcnJheSgwLHkpKSxsPT09dC5GTE9BVD9pLmZyZWVGbG9hdDMyKGIpOmkuZnJlZVVpbnQ4KGIpfX0ocyxlLHIsbyx0aGlzLmZvcm1hdCx0aGlzLnR5cGUsdGhpcy5fbWlwTGV2ZWxzLHQpfX19LHtuZGFycmF5OjQ1MiwibmRhcnJheS1vcHMiOjQ0NiwidHlwZWRhcnJheS1wb29sIjo1NDR9XSwzMjU6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24ocil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInBpY2stYnktYWxpYXMiKTtmdW5jdGlvbiBhKHQpe2lmKHQuY29udGFpbmVyKWlmKHQuY29udGFpbmVyPT1kb2N1bWVudC5ib2R5KWRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGh8fCh0LmNhbnZhcy53aWR0aD10LndpZHRofHx0LnBpeGVsUmF0aW8qci5pbm5lcldpZHRoKSxkb2N1bWVudC5ib2R5LnN0eWxlLmhlaWdodHx8KHQuY2FudmFzLmhlaWdodD10LmhlaWdodHx8dC5waXhlbFJhdGlvKnIuaW5uZXJIZWlnaHQpO2Vsc2V7dmFyIGU9dC5jb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dC5jYW52YXMud2lkdGg9dC53aWR0aHx8ZS5yaWdodC1lLmxlZnQsdC5jYW52YXMuaGVpZ2h0PXQuaGVpZ2h0fHxlLmJvdHRvbS1lLnRvcH19ZnVuY3Rpb24gaSh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdC5nZXRDb250ZXh0JiYid2lkdGgiaW4gdCYmImhlaWdodCJpbiB0fWZ1bmN0aW9uIG8oKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtyZXR1cm4gdC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHQuc3R5bGUudG9wPTAsdC5zdHlsZS5sZWZ0PTAsdH1lLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU7aWYodD8ic3RyaW5nIj09dHlwZW9mIHQmJih0PXtjb250YWluZXI6dH0pOnQ9e30saSh0KT90PXtjb250YWluZXI6dH06dD0ic3RyaW5nIj09dHlwZW9mKGU9dCkubm9kZU5hbWUmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLmFwcGVuZENoaWxkJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5nZXRCb3VuZGluZ0NsaWVudFJlY3Q/e2NvbnRhaW5lcjp0fTpmdW5jdGlvbih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdC5kcmF3QXJyYXlzfHwiZnVuY3Rpb24iPT10eXBlb2YgdC5kcmF3RWxlbWVudHN9KHQpP3tnbDp0fTpuKHQse2NvbnRhaW5lcjoiY29udGFpbmVyIHRhcmdldCBlbGVtZW50IGVsIGNhbnZhcyBob2xkZXIgcGFyZW50IHBhcmVudE5vZGUgd3JhcHBlciB1c2UgcmVmIHJvb3Qgbm9kZSIsZ2w6ImdsIGNvbnRleHQgd2ViZ2wgZ2xDb250ZXh0IixhdHRyczoiYXR0cmlidXRlcyBhdHRycyBjb250ZXh0QXR0cmlidXRlcyIscGl4ZWxSYXRpbzoicGl4ZWxSYXRpbyBweFJhdGlvIHB4IHJhdGlvIHB4cmF0aW8gcGl4ZWxyYXRpbyIsd2lkdGg6Incgd2lkdGgiLGhlaWdodDoiaCBoZWlnaHQifSwhMCksdC5waXhlbFJhdGlvfHwodC5waXhlbFJhdGlvPXIucGl4ZWxSYXRpb3x8MSksdC5nbClyZXR1cm4gdC5nbDtpZih0LmNhbnZhcyYmKHQuY29udGFpbmVyPXQuY2FudmFzLnBhcmVudE5vZGUpLHQuY29udGFpbmVyKXtpZigic3RyaW5nIj09dHlwZW9mIHQuY29udGFpbmVyKXt2YXIgcz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHQuY29udGFpbmVyKTtpZighcyl0aHJvdyBFcnJvcigiRWxlbWVudCAiK3QuY29udGFpbmVyKyIgaXMgbm90IGZvdW5kIik7dC5jb250YWluZXI9c31pKHQuY29udGFpbmVyKT8odC5jYW52YXM9dC5jb250YWluZXIsdC5jb250YWluZXI9dC5jYW52YXMucGFyZW50Tm9kZSk6dC5jYW52YXN8fCh0LmNhbnZhcz1vKCksdC5jb250YWluZXIuYXBwZW5kQ2hpbGQodC5jYW52YXMpLGEodCkpfWVsc2UgaWYoIXQuY2FudmFzKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGRvY3VtZW50KXRocm93IEVycm9yKCJOb3QgRE9NIGVudmlyb25tZW50LiBVc2UgaGVhZGxlc3MtZ2wuIik7dC5jb250YWluZXI9ZG9jdW1lbnQuYm9keXx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHQuY2FudmFzPW8oKSx0LmNvbnRhaW5lci5hcHBlbmRDaGlsZCh0LmNhbnZhcyksYSh0KX1pZighdC5nbCl0cnl7dC5nbD10LmNhbnZhcy5nZXRDb250ZXh0KCJ3ZWJnbCIsdC5hdHRycyl9Y2F0Y2goZSl7dHJ5e3QuZ2w9dC5jYW52YXMuZ2V0Q29udGV4dCgiZXhwZXJpbWVudGFsLXdlYmdsIix0LmF0dHJzKX1jYXRjaChlKXt0LmdsPXQuY2FudmFzLmdldENvbnRleHQoIndlYmdsLWV4cGVyaW1lbnRhbCIsdC5hdHRycyl9fXJldHVybiB0LmdsfX0pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0seyJwaWNrLWJ5LWFsaWFzIjo0Njd9XSwzMjY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtlP2UuYmluZCgpOnQuYmluZEJ1ZmZlcih0LkVMRU1FTlRfQVJSQVlfQlVGRkVSLG51bGwpO3ZhciBuPTB8dC5nZXRQYXJhbWV0ZXIodC5NQVhfVkVSVEVYX0FUVFJJQlMpO2lmKHIpe2lmKHIubGVuZ3RoPm4pdGhyb3cgbmV3IEVycm9yKCJnbC12YW86IFRvbyBtYW55IHZlcnRleCBhdHRyaWJ1dGVzIik7Zm9yKHZhciBhPTA7YTxyLmxlbmd0aDsrK2Epe3ZhciBpPXJbYV07aWYoaS5idWZmZXIpe3ZhciBvPWkuYnVmZmVyLHM9aS5zaXplfHw0LGw9aS50eXBlfHx0LkZMT0FULGM9ISFpLm5vcm1hbGl6ZWQsdT1pLnN0cmlkZXx8MCxoPWkub2Zmc2V0fHwwO28uYmluZCgpLHQuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoYSksdC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGEscyxsLGMsdSxoKX1lbHNle2lmKCJudW1iZXIiPT10eXBlb2YgaSl0LnZlcnRleEF0dHJpYjFmKGEsaSk7ZWxzZSBpZigxPT09aS5sZW5ndGgpdC52ZXJ0ZXhBdHRyaWIxZihhLGlbMF0pO2Vsc2UgaWYoMj09PWkubGVuZ3RoKXQudmVydGV4QXR0cmliMmYoYSxpWzBdLGlbMV0pO2Vsc2UgaWYoMz09PWkubGVuZ3RoKXQudmVydGV4QXR0cmliM2YoYSxpWzBdLGlbMV0saVsyXSk7ZWxzZXtpZig0IT09aS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJnbC12YW86IEludmFsaWQgdmVydGV4IGF0dHJpYnV0ZSIpO3QudmVydGV4QXR0cmliNGYoYSxpWzBdLGlbMV0saVsyXSxpWzNdKX10LmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShhKX19Zm9yKDthPG47KythKXQuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KGEpfWVsc2UgZm9yKHQuYmluZEJ1ZmZlcih0LkFSUkFZX0JVRkZFUixudWxsKSxhPTA7YTxuOysrYSl0LmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShhKX19LHt9XSwzMjc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9kby1iaW5kLmpzIik7ZnVuY3Rpb24gYSh0KXt0aGlzLmdsPXQsdGhpcy5fZWxlbWVudHM9bnVsbCx0aGlzLl9hdHRyaWJ1dGVzPW51bGwsdGhpcy5fZWxlbWVudHNUeXBlPXQuVU5TSUdORURfU0hPUlR9YS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbigpe24odGhpcy5nbCx0aGlzLl9lbGVtZW50cyx0aGlzLl9hdHRyaWJ1dGVzKX0sYS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLl9lbGVtZW50cz1lLHRoaXMuX2F0dHJpYnV0ZXM9dCx0aGlzLl9lbGVtZW50c1R5cGU9cnx8dGhpcy5nbC5VTlNJR05FRF9TSE9SVH0sYS5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe30sYS5wcm90b3R5cGUudW5iaW5kPWZ1bmN0aW9uKCl7fSxhLnByb3RvdHlwZS5kcmF3PWZ1bmN0aW9uKHQsZSxyKXtyPXJ8fDA7dmFyIG49dGhpcy5nbDt0aGlzLl9lbGVtZW50cz9uLmRyYXdFbGVtZW50cyh0LGUsdGhpcy5fZWxlbWVudHNUeXBlLHIpOm4uZHJhd0FycmF5cyh0LHIsZSl9LGUuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGEodCl9fSx7Ii4vZG8tYmluZC5qcyI6MzI2fV0sMzI4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vZG8tYmluZC5qcyIpO2Z1bmN0aW9uIGEodCxlLHIsbixhLGkpe3RoaXMubG9jYXRpb249dCx0aGlzLmRpbWVuc2lvbj1lLHRoaXMuYT1yLHRoaXMuYj1uLHRoaXMuYz1hLHRoaXMuZD1pfWZ1bmN0aW9uIGkodCxlLHIpe3RoaXMuZ2w9dCx0aGlzLl9leHQ9ZSx0aGlzLmhhbmRsZT1yLHRoaXMuX2F0dHJpYnM9W10sdGhpcy5fdXNlRWxlbWVudHM9ITEsdGhpcy5fZWxlbWVudHNUeXBlPXQuVU5TSUdORURfU0hPUlR9YS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbih0KXtzd2l0Y2godGhpcy5kaW1lbnNpb24pe2Nhc2UgMTp0LnZlcnRleEF0dHJpYjFmKHRoaXMubG9jYXRpb24sdGhpcy5hKTticmVhaztjYXNlIDI6dC52ZXJ0ZXhBdHRyaWIyZih0aGlzLmxvY2F0aW9uLHRoaXMuYSx0aGlzLmIpO2JyZWFrO2Nhc2UgMzp0LnZlcnRleEF0dHJpYjNmKHRoaXMubG9jYXRpb24sdGhpcy5hLHRoaXMuYix0aGlzLmMpO2JyZWFrO2Nhc2UgNDp0LnZlcnRleEF0dHJpYjRmKHRoaXMubG9jYXRpb24sdGhpcy5hLHRoaXMuYix0aGlzLmMsdGhpcy5kKX19LGkucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt0aGlzLl9leHQuYmluZFZlcnRleEFycmF5T0VTKHRoaXMuaGFuZGxlKTtmb3IodmFyIHQ9MDt0PHRoaXMuX2F0dHJpYnMubGVuZ3RoOysrdCl0aGlzLl9hdHRyaWJzW3RdLmJpbmQodGhpcy5nbCl9LGkucHJvdG90eXBlLnVuYmluZD1mdW5jdGlvbigpe3RoaXMuX2V4dC5iaW5kVmVydGV4QXJyYXlPRVMobnVsbCl9LGkucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLl9leHQuZGVsZXRlVmVydGV4QXJyYXlPRVModGhpcy5oYW5kbGUpfSxpLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlLHIpe2lmKHRoaXMuYmluZCgpLG4odGhpcy5nbCxlLHQpLHRoaXMudW5iaW5kKCksdGhpcy5fYXR0cmlicy5sZW5ndGg9MCx0KWZvcih2YXIgaT0wO2k8dC5sZW5ndGg7KytpKXt2YXIgbz10W2ldOyJudW1iZXIiPT10eXBlb2Ygbz90aGlzLl9hdHRyaWJzLnB1c2gobmV3IGEoaSwxLG8pKTpBcnJheS5pc0FycmF5KG8pJiZ0aGlzLl9hdHRyaWJzLnB1c2gobmV3IGEoaSxvLmxlbmd0aCxvWzBdLG9bMV0sb1syXSxvWzNdKSl9dGhpcy5fdXNlRWxlbWVudHM9ISFlLHRoaXMuX2VsZW1lbnRzVHlwZT1yfHx0aGlzLmdsLlVOU0lHTkVEX1NIT1JUfSxpLnByb3RvdHlwZS5kcmF3PWZ1bmN0aW9uKHQsZSxyKXtyPXJ8fDA7dmFyIG49dGhpcy5nbDt0aGlzLl91c2VFbGVtZW50cz9uLmRyYXdFbGVtZW50cyh0LGUsdGhpcy5fZWxlbWVudHNUeXBlLHIpOm4uZHJhd0FycmF5cyh0LHIsZSl9LGUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgaSh0LGUsZS5jcmVhdGVWZXJ0ZXhBcnJheU9FUygpKX19LHsiLi9kby1iaW5kLmpzIjozMjZ9XSwzMjk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9saWIvdmFvLW5hdGl2ZS5qcyIpLGE9dCgiLi9saWIvdmFvLWVtdWxhdGVkLmpzIik7ZnVuY3Rpb24gaSh0KXt0aGlzLmJpbmRWZXJ0ZXhBcnJheU9FUz10LmJpbmRWZXJ0ZXhBcnJheS5iaW5kKHQpLHRoaXMuY3JlYXRlVmVydGV4QXJyYXlPRVM9dC5jcmVhdGVWZXJ0ZXhBcnJheS5iaW5kKHQpLHRoaXMuZGVsZXRlVmVydGV4QXJyYXlPRVM9dC5kZWxldGVWZXJ0ZXhBcnJheS5iaW5kKHQpfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscixvKXt2YXIgcyxsPXQuY3JlYXRlVmVydGV4QXJyYXk/bmV3IGkodCk6dC5nZXRFeHRlbnNpb24oIk9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0Iik7cmV0dXJuKHM9bD9uKHQsbCk6YSh0KSkudXBkYXRlKGUscixvKSxzfX0seyIuL2xpYi92YW8tZW11bGF0ZWQuanMiOjMyNywiLi9saWIvdmFvLW5hdGl2ZS5qcyI6MzI4fV0sMzMwOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFswXT1lWzBdK3JbMF0sdFsxXT1lWzFdK3JbMV0sdFsyXT1lWzJdK3JbMl0sdH19LHt9XSwzMzE6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1uKHRbMF0sdFsxXSx0WzJdKSxvPW4oZVswXSxlWzFdLGVbMl0pO2EocixyKSxhKG8sbyk7dmFyIHM9aShyLG8pO3JldHVybiBzPjE/MDpNYXRoLmFjb3Mocyl9O3ZhciBuPXQoIi4vZnJvbVZhbHVlcyIpLGE9dCgiLi9ub3JtYWxpemUiKSxpPXQoIi4vZG90Iil9LHsiLi9kb3QiOjM0MSwiLi9mcm9tVmFsdWVzIjozNDcsIi4vbm9ybWFsaXplIjozNTh9XSwzMzI6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT1NYXRoLmNlaWwoZVswXSksdFsxXT1NYXRoLmNlaWwoZVsxXSksdFsyXT1NYXRoLmNlaWwoZVsyXSksdH19LHt9XSwzMzM6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IEZsb2F0MzJBcnJheSgzKTtyZXR1cm4gZVswXT10WzBdLGVbMV09dFsxXSxlWzJdPXRbMl0sZX19LHt9XSwzMzQ6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT1lWzBdLHRbMV09ZVsxXSx0WzJdPWVbMl0sdH19LHt9XSwzMzU6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgRmxvYXQzMkFycmF5KDMpO3JldHVybiB0WzBdPTAsdFsxXT0wLHRbMl09MCx0fX0se31dLDMzNjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49ZVswXSxhPWVbMV0saT1lWzJdLG89clswXSxzPXJbMV0sbD1yWzJdO3JldHVybiB0WzBdPWEqbC1pKnMsdFsxXT1pKm8tbipsLHRbMl09bipzLWEqbyx0fX0se31dLDMzNzpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz10KCIuL2Rpc3RhbmNlIil9LHsiLi9kaXN0YW5jZSI6MzM4fV0sMzM4OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXS10WzBdLG49ZVsxXS10WzFdLGE9ZVsyXS10WzJdO3JldHVybiBNYXRoLnNxcnQocipyK24qbithKmEpfX0se31dLDMzOTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz10KCIuL2RpdmlkZSIpfSx7Ii4vZGl2aWRlIjozNDB9XSwzNDA6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPWVbMF0vclswXSx0WzFdPWVbMV0vclsxXSx0WzJdPWVbMl0vclsyXSx0fX0se31dLDM0MTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiB0WzBdKmVbMF0rdFsxXSplWzFdK3RbMl0qZVsyXX19LHt9XSwzNDI6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9MWUtNn0se31dLDM0MzpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXRbMF0sYT10WzFdLGk9dFsyXSxvPWVbMF0scz1lWzFdLGw9ZVsyXTtyZXR1cm4gTWF0aC5hYnMoci1vKTw9bipNYXRoLm1heCgxLE1hdGguYWJzKHIpLE1hdGguYWJzKG8pKSYmTWF0aC5hYnMoYS1zKTw9bipNYXRoLm1heCgxLE1hdGguYWJzKGEpLE1hdGguYWJzKHMpKSYmTWF0aC5hYnMoaS1sKTw9bipNYXRoLm1heCgxLE1hdGguYWJzKGkpLE1hdGguYWJzKGwpKX07dmFyIG49dCgiLi9lcHNpbG9uIil9LHsiLi9lcHNpbG9uIjozNDJ9XSwzNDQ6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT09PWVbMF0mJnRbMV09PT1lWzFdJiZ0WzJdPT09ZVsyXX19LHt9XSwzNDU6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT1NYXRoLmZsb29yKGVbMF0pLHRbMV09TWF0aC5mbG9vcihlWzFdKSx0WzJdPU1hdGguZmxvb3IoZVsyXSksdH19LHt9XSwzNDY6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSxpLG8pe3ZhciBzLGw7ZXx8KGU9Myk7cnx8KHI9MCk7bD1hP01hdGgubWluKGEqZStyLHQubGVuZ3RoKTp0Lmxlbmd0aDtmb3Iocz1yO3M8bDtzKz1lKW5bMF09dFtzXSxuWzFdPXRbcysxXSxuWzJdPXRbcysyXSxpKG4sbixvKSx0W3NdPW5bMF0sdFtzKzFdPW5bMV0sdFtzKzJdPW5bMl07cmV0dXJuIHR9O3ZhciBuPXQoIi4vY3JlYXRlIikoKX0seyIuL2NyZWF0ZSI6MzM1fV0sMzQ3OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1uZXcgRmxvYXQzMkFycmF5KDMpO3JldHVybiBuWzBdPXQsblsxXT1lLG5bMl09cixufX0se31dLDM0ODpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz17RVBTSUxPTjp0KCIuL2Vwc2lsb24iKSxjcmVhdGU6dCgiLi9jcmVhdGUiKSxjbG9uZTp0KCIuL2Nsb25lIiksYW5nbGU6dCgiLi9hbmdsZSIpLGZyb21WYWx1ZXM6dCgiLi9mcm9tVmFsdWVzIiksY29weTp0KCIuL2NvcHkiKSxzZXQ6dCgiLi9zZXQiKSxlcXVhbHM6dCgiLi9lcXVhbHMiKSxleGFjdEVxdWFsczp0KCIuL2V4YWN0RXF1YWxzIiksYWRkOnQoIi4vYWRkIiksc3VidHJhY3Q6dCgiLi9zdWJ0cmFjdCIpLHN1Yjp0KCIuL3N1YiIpLG11bHRpcGx5OnQoIi4vbXVsdGlwbHkiKSxtdWw6dCgiLi9tdWwiKSxkaXZpZGU6dCgiLi9kaXZpZGUiKSxkaXY6dCgiLi9kaXYiKSxtaW46dCgiLi9taW4iKSxtYXg6dCgiLi9tYXgiKSxmbG9vcjp0KCIuL2Zsb29yIiksY2VpbDp0KCIuL2NlaWwiKSxyb3VuZDp0KCIuL3JvdW5kIiksc2NhbGU6dCgiLi9zY2FsZSIpLHNjYWxlQW5kQWRkOnQoIi4vc2NhbGVBbmRBZGQiKSxkaXN0YW5jZTp0KCIuL2Rpc3RhbmNlIiksZGlzdDp0KCIuL2Rpc3QiKSxzcXVhcmVkRGlzdGFuY2U6dCgiLi9zcXVhcmVkRGlzdGFuY2UiKSxzcXJEaXN0OnQoIi4vc3FyRGlzdCIpLGxlbmd0aDp0KCIuL2xlbmd0aCIpLGxlbjp0KCIuL2xlbiIpLHNxdWFyZWRMZW5ndGg6dCgiLi9zcXVhcmVkTGVuZ3RoIiksc3FyTGVuOnQoIi4vc3FyTGVuIiksbmVnYXRlOnQoIi4vbmVnYXRlIiksaW52ZXJzZTp0KCIuL2ludmVyc2UiKSxub3JtYWxpemU6dCgiLi9ub3JtYWxpemUiKSxkb3Q6dCgiLi9kb3QiKSxjcm9zczp0KCIuL2Nyb3NzIiksbGVycDp0KCIuL2xlcnAiKSxyYW5kb206dCgiLi9yYW5kb20iKSx0cmFuc2Zvcm1NYXQ0OnQoIi4vdHJhbnNmb3JtTWF0NCIpLHRyYW5zZm9ybU1hdDM6dCgiLi90cmFuc2Zvcm1NYXQzIiksdHJhbnNmb3JtUXVhdDp0KCIuL3RyYW5zZm9ybVF1YXQiKSxyb3RhdGVYOnQoIi4vcm90YXRlWCIpLHJvdGF0ZVk6dCgiLi9yb3RhdGVZIikscm90YXRlWjp0KCIuL3JvdGF0ZVoiKSxmb3JFYWNoOnQoIi4vZm9yRWFjaCIpfX0seyIuL2FkZCI6MzMwLCIuL2FuZ2xlIjozMzEsIi4vY2VpbCI6MzMyLCIuL2Nsb25lIjozMzMsIi4vY29weSI6MzM0LCIuL2NyZWF0ZSI6MzM1LCIuL2Nyb3NzIjozMzYsIi4vZGlzdCI6MzM3LCIuL2Rpc3RhbmNlIjozMzgsIi4vZGl2IjozMzksIi4vZGl2aWRlIjozNDAsIi4vZG90IjozNDEsIi4vZXBzaWxvbiI6MzQyLCIuL2VxdWFscyI6MzQzLCIuL2V4YWN0RXF1YWxzIjozNDQsIi4vZmxvb3IiOjM0NSwiLi9mb3JFYWNoIjozNDYsIi4vZnJvbVZhbHVlcyI6MzQ3LCIuL2ludmVyc2UiOjM0OSwiLi9sZW4iOjM1MCwiLi9sZW5ndGgiOjM1MSwiLi9sZXJwIjozNTIsIi4vbWF4IjozNTMsIi4vbWluIjozNTQsIi4vbXVsIjozNTUsIi4vbXVsdGlwbHkiOjM1NiwiLi9uZWdhdGUiOjM1NywiLi9ub3JtYWxpemUiOjM1OCwiLi9yYW5kb20iOjM1OSwiLi9yb3RhdGVYIjozNjAsIi4vcm90YXRlWSI6MzYxLCIuL3JvdGF0ZVoiOjM2MiwiLi9yb3VuZCI6MzYzLCIuL3NjYWxlIjozNjQsIi4vc2NhbGVBbmRBZGQiOjM2NSwiLi9zZXQiOjM2NiwiLi9zcXJEaXN0IjozNjcsIi4vc3FyTGVuIjozNjgsIi4vc3F1YXJlZERpc3RhbmNlIjozNjksIi4vc3F1YXJlZExlbmd0aCI6MzcwLCIuL3N1YiI6MzcxLCIuL3N1YnRyYWN0IjozNzIsIi4vdHJhbnNmb3JtTWF0MyI6MzczLCIuL3RyYW5zZm9ybU1hdDQiOjM3NCwiLi90cmFuc2Zvcm1RdWF0IjozNzV9XSwzNDk6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT0xL2VbMF0sdFsxXT0xL2VbMV0sdFsyXT0xL2VbMl0sdH19LHt9XSwzNTA6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9dCgiLi9sZW5ndGgiKX0seyIuL2xlbmd0aCI6MzUxfV0sMzUxOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0scj10WzFdLG49dFsyXTtyZXR1cm4gTWF0aC5zcXJ0KGUqZStyKnIrbipuKX19LHt9XSwzNTI6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9ZVswXSxpPWVbMV0sbz1lWzJdO3JldHVybiB0WzBdPWErbiooclswXS1hKSx0WzFdPWkrbiooclsxXS1pKSx0WzJdPW8rbiooclsyXS1vKSx0fX0se31dLDM1MzpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRbMF09TWF0aC5tYXgoZVswXSxyWzBdKSx0WzFdPU1hdGgubWF4KGVbMV0sclsxXSksdFsyXT1NYXRoLm1heChlWzJdLHJbMl0pLHR9fSx7fV0sMzU0OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFswXT1NYXRoLm1pbihlWzBdLHJbMF0pLHRbMV09TWF0aC5taW4oZVsxXSxyWzFdKSx0WzJdPU1hdGgubWluKGVbMl0sclsyXSksdH19LHt9XSwzNTU6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9dCgiLi9tdWx0aXBseSIpfSx7Ii4vbXVsdGlwbHkiOjM1Nn1dLDM1NjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRbMF09ZVswXSpyWzBdLHRbMV09ZVsxXSpyWzFdLHRbMl09ZVsyXSpyWzJdLHR9fSx7fV0sMzU3OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF09LWVbMF0sdFsxXT0tZVsxXSx0WzJdPS1lWzJdLHR9fSx7fV0sMzU4OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV0sYT1lWzJdLGk9cipyK24qbithKmE7aT4wJiYoaT0xL01hdGguc3FydChpKSx0WzBdPWVbMF0qaSx0WzFdPWVbMV0qaSx0WzJdPWVbMl0qaSk7cmV0dXJuIHR9fSx7fV0sMzU5OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZT1lfHwxO3ZhciByPTIqTWF0aC5yYW5kb20oKSpNYXRoLlBJLG49MipNYXRoLnJhbmRvbSgpLTEsYT1NYXRoLnNxcnQoMS1uKm4pKmU7cmV0dXJuIHRbMF09TWF0aC5jb3MocikqYSx0WzFdPU1hdGguc2luKHIpKmEsdFsyXT1uKmUsdH19LHt9XSwzNjA6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9clsxXSxpPXJbMl0sbz1lWzFdLWEscz1lWzJdLWksbD1NYXRoLnNpbihuKSxjPU1hdGguY29zKG4pO3JldHVybiB0WzBdPWVbMF0sdFsxXT1hK28qYy1zKmwsdFsyXT1pK28qbCtzKmMsdH19LHt9XSwzNjE6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9clswXSxpPXJbMl0sbz1lWzBdLWEscz1lWzJdLWksbD1NYXRoLnNpbihuKSxjPU1hdGguY29zKG4pO3JldHVybiB0WzBdPWErcypsK28qYyx0WzFdPWVbMV0sdFsyXT1pK3MqYy1vKmwsdH19LHt9XSwzNjI6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9clswXSxpPXJbMV0sbz1lWzBdLWEscz1lWzFdLWksbD1NYXRoLnNpbihuKSxjPU1hdGguY29zKG4pO3JldHVybiB0WzBdPWErbypjLXMqbCx0WzFdPWkrbypsK3MqYyx0WzJdPWVbMl0sdH19LHt9XSwzNjM6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT1NYXRoLnJvdW5kKGVbMF0pLHRbMV09TWF0aC5yb3VuZChlWzFdKSx0WzJdPU1hdGgucm91bmQoZVsyXSksdH19LHt9XSwzNjQ6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPWVbMF0qcix0WzFdPWVbMV0qcix0WzJdPWVbMl0qcix0fX0se31dLDM2NTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuKXtyZXR1cm4gdFswXT1lWzBdK3JbMF0qbix0WzFdPWVbMV0rclsxXSpuLHRbMl09ZVsyXStyWzJdKm4sdH19LHt9XSwzNjY6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIHRbMF09ZSx0WzFdPXIsdFsyXT1uLHR9fSx7fV0sMzY3OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXQoIi4vc3F1YXJlZERpc3RhbmNlIil9LHsiLi9zcXVhcmVkRGlzdGFuY2UiOjM2OX1dLDM2ODpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz10KCIuL3NxdWFyZWRMZW5ndGgiKX0seyIuL3NxdWFyZWRMZW5ndGgiOjM3MH1dLDM2OTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWVbMF0tdFswXSxuPWVbMV0tdFsxXSxhPWVbMl0tdFsyXTtyZXR1cm4gcipyK24qbithKmF9fSx7fV0sMzcwOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0scj10WzFdLG49dFsyXTtyZXR1cm4gZSplK3IqcituKm59fSx7fV0sMzcxOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXQoIi4vc3VidHJhY3QiKX0seyIuL3N1YnRyYWN0IjozNzJ9XSwzNzI6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPWVbMF0tclswXSx0WzFdPWVbMV0tclsxXSx0WzJdPWVbMl0tclsyXSx0fX0se31dLDM3MzpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49ZVswXSxhPWVbMV0saT1lWzJdO3JldHVybiB0WzBdPW4qclswXSthKnJbM10raSpyWzZdLHRbMV09bipyWzFdK2Eqcls0XStpKnJbN10sdFsyXT1uKnJbMl0rYSpyWzVdK2kqcls4XSx0fX0se31dLDM3NDpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49ZVswXSxhPWVbMV0saT1lWzJdLG89clszXSpuK3JbN10qYStyWzExXSppK3JbMTVdO3JldHVybiBvPW98fDEsdFswXT0oclswXSpuK3JbNF0qYStyWzhdKmkrclsxMl0pL28sdFsxXT0oclsxXSpuK3JbNV0qYStyWzldKmkrclsxM10pL28sdFsyXT0oclsyXSpuK3JbNl0qYStyWzEwXSppK3JbMTRdKS9vLHR9fSx7fV0sMzc1OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lWzBdLGE9ZVsxXSxpPWVbMl0sbz1yWzBdLHM9clsxXSxsPXJbMl0sYz1yWzNdLHU9YypuK3MqaS1sKmEsaD1jKmErbCpuLW8qaSxmPWMqaStvKmEtcypuLHA9LW8qbi1zKmEtbCppO3JldHVybiB0WzBdPXUqYytwKi1vK2gqLWwtZiotcyx0WzFdPWgqYytwKi1zK2YqLW8tdSotbCx0WzJdPWYqYytwKi1sK3UqLXMtaCotbyx0fX0se31dLDM3NjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRbMF09ZVswXStyWzBdLHRbMV09ZVsxXStyWzFdLHRbMl09ZVsyXStyWzJdLHRbM109ZVszXStyWzNdLHR9fSx7fV0sMzc3OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBGbG9hdDMyQXJyYXkoNCk7cmV0dXJuIGVbMF09dFswXSxlWzFdPXRbMV0sZVsyXT10WzJdLGVbM109dFszXSxlfX0se31dLDM3ODpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiB0WzBdPWVbMF0sdFsxXT1lWzFdLHRbMl09ZVsyXSx0WzNdPWVbM10sdH19LHt9XSwzNzk6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgRmxvYXQzMkFycmF5KDQpO3JldHVybiB0WzBdPTAsdFsxXT0wLHRbMl09MCx0WzNdPTAsdH19LHt9XSwzODA6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLXRbMF0sbj1lWzFdLXRbMV0sYT1lWzJdLXRbMl0saT1lWzNdLXRbM107cmV0dXJuIE1hdGguc3FydChyKnIrbipuK2EqYStpKmkpfX0se31dLDM4MTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRbMF09ZVswXS9yWzBdLHRbMV09ZVsxXS9yWzFdLHRbMl09ZVsyXS9yWzJdLHRbM109ZVszXS9yWzNdLHR9fSx7fV0sMzgyOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF0qZVswXSt0WzFdKmVbMV0rdFsyXSplWzJdK3RbM10qZVszXX19LHt9XSwzODM6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9bmV3IEZsb2F0MzJBcnJheSg0KTtyZXR1cm4gYVswXT10LGFbMV09ZSxhWzJdPXIsYVszXT1uLGF9fSx7fV0sMzg0OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXtjcmVhdGU6dCgiLi9jcmVhdGUiKSxjbG9uZTp0KCIuL2Nsb25lIiksZnJvbVZhbHVlczp0KCIuL2Zyb21WYWx1ZXMiKSxjb3B5OnQoIi4vY29weSIpLHNldDp0KCIuL3NldCIpLGFkZDp0KCIuL2FkZCIpLHN1YnRyYWN0OnQoIi4vc3VidHJhY3QiKSxtdWx0aXBseTp0KCIuL211bHRpcGx5IiksZGl2aWRlOnQoIi4vZGl2aWRlIiksbWluOnQoIi4vbWluIiksbWF4OnQoIi4vbWF4Iiksc2NhbGU6dCgiLi9zY2FsZSIpLHNjYWxlQW5kQWRkOnQoIi4vc2NhbGVBbmRBZGQiKSxkaXN0YW5jZTp0KCIuL2Rpc3RhbmNlIiksc3F1YXJlZERpc3RhbmNlOnQoIi4vc3F1YXJlZERpc3RhbmNlIiksbGVuZ3RoOnQoIi4vbGVuZ3RoIiksc3F1YXJlZExlbmd0aDp0KCIuL3NxdWFyZWRMZW5ndGgiKSxuZWdhdGU6dCgiLi9uZWdhdGUiKSxpbnZlcnNlOnQoIi4vaW52ZXJzZSIpLG5vcm1hbGl6ZTp0KCIuL25vcm1hbGl6ZSIpLGRvdDp0KCIuL2RvdCIpLGxlcnA6dCgiLi9sZXJwIikscmFuZG9tOnQoIi4vcmFuZG9tIiksdHJhbnNmb3JtTWF0NDp0KCIuL3RyYW5zZm9ybU1hdDQiKSx0cmFuc2Zvcm1RdWF0OnQoIi4vdHJhbnNmb3JtUXVhdCIpfX0seyIuL2FkZCI6Mzc2LCIuL2Nsb25lIjozNzcsIi4vY29weSI6Mzc4LCIuL2NyZWF0ZSI6Mzc5LCIuL2Rpc3RhbmNlIjozODAsIi4vZGl2aWRlIjozODEsIi4vZG90IjozODIsIi4vZnJvbVZhbHVlcyI6MzgzLCIuL2ludmVyc2UiOjM4NSwiLi9sZW5ndGgiOjM4NiwiLi9sZXJwIjozODcsIi4vbWF4IjozODgsIi4vbWluIjozODksIi4vbXVsdGlwbHkiOjM5MCwiLi9uZWdhdGUiOjM5MSwiLi9ub3JtYWxpemUiOjM5MiwiLi9yYW5kb20iOjM5MywiLi9zY2FsZSI6Mzk0LCIuL3NjYWxlQW5kQWRkIjozOTUsIi4vc2V0IjozOTYsIi4vc3F1YXJlZERpc3RhbmNlIjozOTcsIi4vc3F1YXJlZExlbmd0aCI6Mzk4LCIuL3N1YnRyYWN0IjozOTksIi4vdHJhbnNmb3JtTWF0NCI6NDAwLCIuL3RyYW5zZm9ybVF1YXQiOjQwMX1dLDM4NTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiB0WzBdPTEvZVswXSx0WzFdPTEvZVsxXSx0WzJdPTEvZVsyXSx0WzNdPTEvZVszXSx0fX0se31dLDM4NjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10WzBdLHI9dFsxXSxuPXRbMl0sYT10WzNdO3JldHVybiBNYXRoLnNxcnQoZSplK3IqcituKm4rYSphKX19LHt9XSwzODc6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9ZVswXSxpPWVbMV0sbz1lWzJdLHM9ZVszXTtyZXR1cm4gdFswXT1hK24qKHJbMF0tYSksdFsxXT1pK24qKHJbMV0taSksdFsyXT1vK24qKHJbMl0tbyksdFszXT1zK24qKHJbM10tcyksdH19LHt9XSwzODg6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPU1hdGgubWF4KGVbMF0sclswXSksdFsxXT1NYXRoLm1heChlWzFdLHJbMV0pLHRbMl09TWF0aC5tYXgoZVsyXSxyWzJdKSx0WzNdPU1hdGgubWF4KGVbM10sclszXSksdH19LHt9XSwzODk6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPU1hdGgubWluKGVbMF0sclswXSksdFsxXT1NYXRoLm1pbihlWzFdLHJbMV0pLHRbMl09TWF0aC5taW4oZVsyXSxyWzJdKSx0WzNdPU1hdGgubWluKGVbM10sclszXSksdH19LHt9XSwzOTA6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPWVbMF0qclswXSx0WzFdPWVbMV0qclsxXSx0WzJdPWVbMl0qclsyXSx0WzNdPWVbM10qclszXSx0fX0se31dLDM5MTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiB0WzBdPS1lWzBdLHRbMV09LWVbMV0sdFsyXT0tZVsyXSx0WzNdPS1lWzNdLHR9fSx7fV0sMzkyOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV0sYT1lWzJdLGk9ZVszXSxvPXIqcituKm4rYSphK2kqaTtvPjAmJihvPTEvTWF0aC5zcXJ0KG8pLHRbMF09cipvLHRbMV09bipvLHRbMl09YSpvLHRbM109aSpvKTtyZXR1cm4gdH19LHt9XSwzOTM6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCIuL25vcm1hbGl6ZSIpLGE9dCgiLi9zY2FsZSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBlPWV8fDEsdFswXT1NYXRoLnJhbmRvbSgpLHRbMV09TWF0aC5yYW5kb20oKSx0WzJdPU1hdGgucmFuZG9tKCksdFszXT1NYXRoLnJhbmRvbSgpLG4odCx0KSxhKHQsdCxlKSx0fX0seyIuL25vcm1hbGl6ZSI6MzkyLCIuL3NjYWxlIjozOTR9XSwzOTQ6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPWVbMF0qcix0WzFdPWVbMV0qcix0WzJdPWVbMl0qcix0WzNdPWVbM10qcix0fX0se31dLDM5NTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuKXtyZXR1cm4gdFswXT1lWzBdK3JbMF0qbix0WzFdPWVbMV0rclsxXSpuLHRbMl09ZVsyXStyWzJdKm4sdFszXT1lWzNdK3JbM10qbix0fX0se31dLDM5NjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuLGEpe3JldHVybiB0WzBdPWUsdFsxXT1yLHRbMl09bix0WzNdPWEsdH19LHt9XSwzOTc6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLXRbMF0sbj1lWzFdLXRbMV0sYT1lWzJdLXRbMl0saT1lWzNdLXRbM107cmV0dXJuIHIqcituKm4rYSphK2kqaX19LHt9XSwzOTg6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dFswXSxyPXRbMV0sbj10WzJdLGE9dFszXTtyZXR1cm4gZSplK3IqcituKm4rYSphfX0se31dLDM5OTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRbMF09ZVswXS1yWzBdLHRbMV09ZVsxXS1yWzFdLHRbMl09ZVsyXS1yWzJdLHRbM109ZVszXS1yWzNdLHR9fSx7fV0sNDAwOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lWzBdLGE9ZVsxXSxpPWVbMl0sbz1lWzNdO3JldHVybiB0WzBdPXJbMF0qbityWzRdKmErcls4XSppK3JbMTJdKm8sdFsxXT1yWzFdKm4rcls1XSphK3JbOV0qaStyWzEzXSpvLHRbMl09clsyXSpuK3JbNl0qYStyWzEwXSppK3JbMTRdKm8sdFszXT1yWzNdKm4rcls3XSphK3JbMTFdKmkrclsxNV0qbyx0fX0se31dLDQwMTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49ZVswXSxhPWVbMV0saT1lWzJdLG89clswXSxzPXJbMV0sbD1yWzJdLGM9clszXSx1PWMqbitzKmktbCphLGg9YyphK2wqbi1vKmksZj1jKmkrbyphLXMqbixwPS1vKm4tcyphLWwqaTtyZXR1cm4gdFswXT11KmMrcCotbytoKi1sLWYqLXMsdFsxXT1oKmMrcCotcytmKi1vLXUqLWwsdFsyXT1mKmMrcCotbCt1Ki1zLWgqLW8sdFszXT1lWzNdLHR9fSx7fV0sNDAyOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGkpe3JldHVybiBuWzBdPWksblsxXT1yLG5bMl09ZSxuWzNdPXQsYVswXX07dmFyIG49bmV3IFVpbnQ4QXJyYXkoNCksYT1uZXcgRmxvYXQzMkFycmF5KG4uYnVmZmVyKX0se31dLDQwMzpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoImdsc2wtdG9rZW5pemVyIiksYT10KCJhdG9iLWxpdGUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPUFycmF5LmlzQXJyYXkodCk/dDpuKHQpLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIGk9ZVtyXTtpZigicHJlcHJvY2Vzc29yIj09PWkudHlwZSl7dmFyIG89aS5kYXRhLm1hdGNoKC9cI2RlZmluZVxzK1NIQURFUl9OQU1FKF9CNjQpP1xzKyguKykkLyk7aWYobyYmb1syXSl7dmFyIHM9b1sxXSxsPW9bMl07cmV0dXJuKHM/YShsKTpsKS50cmltKCl9fX19fSx7ImF0b2ItbGl0ZSI6NzQsImdsc2wtdG9rZW5pemVyIjo0MTB9XSw0MDQ6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGUscixrLFQ9MCxNPTAsQT1sLFM9W10sRT1bXSxMPTEsQz0wLFA9MCxPPSExLHo9ITEsST0iIixEPWksUj1uOyIzMDAgZXMiPT09KHQ9dHx8e30pLnZlcnNpb24mJihEPXMsUj1vKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIEU9W10sbnVsbCE9PXQ/ZnVuY3Rpb24odCl7dmFyIHI7VD0wLGs9KEkrPXQpLmxlbmd0aDtmb3IoO2U9SVtUXSxUPGs7KXtzd2l0Y2gocj1ULEEpe2Nhc2UgdTpUPVYoKTticmVhaztjYXNlIGg6Y2FzZSBmOlQ9aigpO2JyZWFrO2Nhc2UgcDpUPVUoKTticmVhaztjYXNlIGQ6VD1HKCk7YnJlYWs7Y2FzZSBfOlQ9SCgpO2JyZWFrO2Nhc2UgZzpUPVkoKTticmVhaztjYXNlIGM6VD1XKCk7YnJlYWs7Y2FzZSB4OlQ9TigpO2JyZWFrO2Nhc2UgbDpUPUIoKX1pZihyIT09VClzd2l0Y2goSVtyXSl7Y2FzZSJcbiI6Qz0wLCsrTDticmVhaztkZWZhdWx0OisrQ319cmV0dXJuIE0rPVQsST1JLnNsaWNlKFQpLEV9KHQucmVwbGFjZT90LnJlcGxhY2UoL1xyXG4vZywiXG4iKTp0KTpmdW5jdGlvbih0KXtTLmxlbmd0aCYmRihTLmpvaW4oIiIpKTtyZXR1cm4gQT1iLEYoIihlb2YpIiksRX0oKX07ZnVuY3Rpb24gRih0KXt0Lmxlbmd0aCYmRS5wdXNoKHt0eXBlOndbQV0sZGF0YTp0LHBvc2l0aW9uOlAsbGluZTpMLGNvbHVtbjpDfSl9ZnVuY3Rpb24gQigpe3JldHVybiBTPVMubGVuZ3RoP1tdOlMsIi8iPT09ciYmIioiPT09ZT8oUD1NK1QtMSxBPXUscj1lLFQrMSk6Ii8iPT09ciYmIi8iPT09ZT8oUD1NK1QtMSxBPWgscj1lLFQrMSk6IiMiPT09ZT8oQT1mLFA9TStULFQpOi9ccy8udGVzdChlKT8oQT14LFA9TStULFQpOihPPS9cZC8udGVzdChlKSx6PS9bXlx3X10vLnRlc3QoZSksUD1NK1QsQT1PP2Q6ej9wOmMsVCl9ZnVuY3Rpb24gTigpe3JldHVybi9bXlxzXS9nLnRlc3QoZSk/KEYoUy5qb2luKCIiKSksQT1sLFQpOihTLnB1c2goZSkscj1lLFQrMSl9ZnVuY3Rpb24gaigpe3JldHVybiJcciIhPT1lJiYiXG4iIT09ZXx8IlxcIj09PXI/KFMucHVzaChlKSxyPWUsVCsxKTooRihTLmpvaW4oIiIpKSxBPWwsVCl9ZnVuY3Rpb24gVigpe3JldHVybiIvIj09PWUmJiIqIj09PXI/KFMucHVzaChlKSxGKFMuam9pbigiIikpLEE9bCxUKzEpOihTLnB1c2goZSkscj1lLFQrMSl9ZnVuY3Rpb24gVSgpe2lmKCIuIj09PXImJi9cZC8udGVzdChlKSlyZXR1cm4gQT1nLFQ7aWYoIi8iPT09ciYmIioiPT09ZSlyZXR1cm4gQT11LFQ7aWYoIi8iPT09ciYmIi8iPT09ZSlyZXR1cm4gQT1oLFQ7aWYoIi4iPT09ZSYmUy5sZW5ndGgpe2Zvcig7cShTKTspO3JldHVybiBBPWcsVH1pZigiOyI9PT1lfHwiKSI9PT1lfHwiKCI9PT1lKXtpZihTLmxlbmd0aClmb3IoO3EoUyk7KTtyZXR1cm4gRihlKSxBPWwsVCsxfXZhciB0PTI9PT1TLmxlbmd0aCYmIj0iIT09ZTtpZigvW1x3X1xkXHNdLy50ZXN0KGUpfHx0KXtmb3IoO3EoUyk7KTtyZXR1cm4gQT1sLFR9cmV0dXJuIFMucHVzaChlKSxyPWUsVCsxfWZ1bmN0aW9uIHEodCl7Zm9yKHZhciBlLHIsbj0wOzspe2lmKGU9YS5pbmRleE9mKHQuc2xpY2UoMCx0Lmxlbmd0aCtuKS5qb2luKCIiKSkscj1hW2VdLC0xPT09ZSl7aWYobi0tK3QubGVuZ3RoPjApY29udGludWU7cj10LnNsaWNlKDAsMSkuam9pbigiIil9cmV0dXJuIEYociksUCs9ci5sZW5ndGgsKFM9Uy5zbGljZShyLmxlbmd0aCkpLmxlbmd0aH19ZnVuY3Rpb24gSCgpe3JldHVybi9bXmEtZkEtRjAtOV0vLnRlc3QoZSk/KEYoUy5qb2luKCIiKSksQT1sLFQpOihTLnB1c2goZSkscj1lLFQrMSl9ZnVuY3Rpb24gRygpe3JldHVybiIuIj09PWU/KFMucHVzaChlKSxBPWcscj1lLFQrMSk6L1tlRV0vLnRlc3QoZSk/KFMucHVzaChlKSxBPWcscj1lLFQrMSk6IngiPT09ZSYmMT09PVMubGVuZ3RoJiYiMCI9PT1TWzBdPyhBPV8sUy5wdXNoKGUpLHI9ZSxUKzEpOi9bXlxkXS8udGVzdChlKT8oRihTLmpvaW4oIiIpKSxBPWwsVCk6KFMucHVzaChlKSxyPWUsVCsxKX1mdW5jdGlvbiBZKCl7cmV0dXJuImYiPT09ZSYmKFMucHVzaChlKSxyPWUsVCs9MSksL1tlRV0vLnRlc3QoZSk/KFMucHVzaChlKSxyPWUsVCsxKToiLSI9PT1lJiYvW2VFXS8udGVzdChyKT8oUy5wdXNoKGUpLHI9ZSxUKzEpOi9bXlxkXS8udGVzdChlKT8oRihTLmpvaW4oIiIpKSxBPWwsVCk6KFMucHVzaChlKSxyPWUsVCsxKX1mdW5jdGlvbiBXKCl7aWYoL1teXGRcd19dLy50ZXN0KGUpKXt2YXIgdD1TLmpvaW4oIiIpO3JldHVybiBBPVIuaW5kZXhPZih0KT4tMT95OkQuaW5kZXhPZih0KT4tMT9tOnYsRihTLmpvaW4oIiIpKSxBPWwsVH1yZXR1cm4gUy5wdXNoKGUpLHI9ZSxUKzF9fTt2YXIgbj10KCIuL2xpYi9saXRlcmFscyIpLGE9dCgiLi9saWIvb3BlcmF0b3JzIiksaT10KCIuL2xpYi9idWlsdGlucyIpLG89dCgiLi9saWIvbGl0ZXJhbHMtMzAwZXMiKSxzPXQoIi4vbGliL2J1aWx0aW5zLTMwMGVzIiksbD05OTksYz05OTk5LHU9MCxoPTEsZj0yLHA9MyxkPTQsZz01LHY9NixtPTcseT04LHg9OSxiPTEwLF89MTEsdz1bImJsb2NrLWNvbW1lbnQiLCJsaW5lLWNvbW1lbnQiLCJwcmVwcm9jZXNzb3IiLCJvcGVyYXRvciIsImludGVnZXIiLCJmbG9hdCIsImlkZW50IiwiYnVpbHRpbiIsImtleXdvcmQiLCJ3aGl0ZXNwYWNlIiwiZW9mIiwiaW50ZWdlciJdfSx7Ii4vbGliL2J1aWx0aW5zIjo0MDYsIi4vbGliL2J1aWx0aW5zLTMwMGVzIjo0MDUsIi4vbGliL2xpdGVyYWxzIjo0MDgsIi4vbGliL2xpdGVyYWxzLTMwMGVzIjo0MDcsIi4vbGliL29wZXJhdG9ycyI6NDA5fV0sNDA1OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi9idWlsdGlucyIpO249bi5zbGljZSgpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4hL14oZ2xcX3x0ZXh0dXJlKS8udGVzdCh0KX0pLGUuZXhwb3J0cz1uLmNvbmNhdChbImdsX1ZlcnRleElEIiwiZ2xfSW5zdGFuY2VJRCIsImdsX1Bvc2l0aW9uIiwiZ2xfUG9pbnRTaXplIiwiZ2xfRnJhZ0Nvb3JkIiwiZ2xfRnJvbnRGYWNpbmciLCJnbF9GcmFnRGVwdGgiLCJnbF9Qb2ludENvb3JkIiwiZ2xfTWF4VmVydGV4QXR0cmlicyIsImdsX01heFZlcnRleFVuaWZvcm1WZWN0b3JzIiwiZ2xfTWF4VmVydGV4T3V0cHV0VmVjdG9ycyIsImdsX01heEZyYWdtZW50SW5wdXRWZWN0b3JzIiwiZ2xfTWF4VmVydGV4VGV4dHVyZUltYWdlVW5pdHMiLCJnbF9NYXhDb21iaW5lZFRleHR1cmVJbWFnZVVuaXRzIiwiZ2xfTWF4VGV4dHVyZUltYWdlVW5pdHMiLCJnbF9NYXhGcmFnbWVudFVuaWZvcm1WZWN0b3JzIiwiZ2xfTWF4RHJhd0J1ZmZlcnMiLCJnbF9NaW5Qcm9ncmFtVGV4ZWxPZmZzZXQiLCJnbF9NYXhQcm9ncmFtVGV4ZWxPZmZzZXQiLCJnbF9EZXB0aFJhbmdlUGFyYW1ldGVycyIsImdsX0RlcHRoUmFuZ2UiLCJ0cnVuYyIsInJvdW5kIiwicm91bmRFdmVuIiwiaXNuYW4iLCJpc2luZiIsImZsb2F0Qml0c1RvSW50IiwiZmxvYXRCaXRzVG9VaW50IiwiaW50Qml0c1RvRmxvYXQiLCJ1aW50Qml0c1RvRmxvYXQiLCJwYWNrU25vcm0yeDE2IiwidW5wYWNrU25vcm0yeDE2IiwicGFja1Vub3JtMngxNiIsInVucGFja1Vub3JtMngxNiIsInBhY2tIYWxmMngxNiIsInVucGFja0hhbGYyeDE2Iiwib3V0ZXJQcm9kdWN0IiwidHJhbnNwb3NlIiwiZGV0ZXJtaW5hbnQiLCJpbnZlcnNlIiwidGV4dHVyZSIsInRleHR1cmVTaXplIiwidGV4dHVyZVByb2oiLCJ0ZXh0dXJlTG9kIiwidGV4dHVyZU9mZnNldCIsInRleGVsRmV0Y2giLCJ0ZXhlbEZldGNoT2Zmc2V0IiwidGV4dHVyZVByb2pPZmZzZXQiLCJ0ZXh0dXJlTG9kT2Zmc2V0IiwidGV4dHVyZVByb2pMb2QiLCJ0ZXh0dXJlUHJvakxvZE9mZnNldCIsInRleHR1cmVHcmFkIiwidGV4dHVyZUdyYWRPZmZzZXQiLCJ0ZXh0dXJlUHJvakdyYWQiLCJ0ZXh0dXJlUHJvakdyYWRPZmZzZXQiXSl9LHsiLi9idWlsdGlucyI6NDA2fV0sNDA2OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPVsiYWJzIiwiYWNvcyIsImFsbCIsImFueSIsImFzaW4iLCJhdGFuIiwiY2VpbCIsImNsYW1wIiwiY29zIiwiY3Jvc3MiLCJkRmR4IiwiZEZkeSIsImRlZ3JlZXMiLCJkaXN0YW5jZSIsImRvdCIsImVxdWFsIiwiZXhwIiwiZXhwMiIsImZhY2Vmb3J3YXJkIiwiZmxvb3IiLCJmcmFjdCIsImdsX0JhY2tDb2xvciIsImdsX0JhY2tMaWdodE1vZGVsUHJvZHVjdCIsImdsX0JhY2tMaWdodFByb2R1Y3QiLCJnbF9CYWNrTWF0ZXJpYWwiLCJnbF9CYWNrU2Vjb25kYXJ5Q29sb3IiLCJnbF9DbGlwUGxhbmUiLCJnbF9DbGlwVmVydGV4IiwiZ2xfQ29sb3IiLCJnbF9EZXB0aFJhbmdlIiwiZ2xfRGVwdGhSYW5nZVBhcmFtZXRlcnMiLCJnbF9FeWVQbGFuZVEiLCJnbF9FeWVQbGFuZVIiLCJnbF9FeWVQbGFuZVMiLCJnbF9FeWVQbGFuZVQiLCJnbF9Gb2ciLCJnbF9Gb2dDb29yZCIsImdsX0ZvZ0ZyYWdDb29yZCIsImdsX0ZvZ1BhcmFtZXRlcnMiLCJnbF9GcmFnQ29sb3IiLCJnbF9GcmFnQ29vcmQiLCJnbF9GcmFnRGF0YSIsImdsX0ZyYWdEZXB0aCIsImdsX0ZyYWdEZXB0aEVYVCIsImdsX0Zyb250Q29sb3IiLCJnbF9Gcm9udEZhY2luZyIsImdsX0Zyb250TGlnaHRNb2RlbFByb2R1Y3QiLCJnbF9Gcm9udExpZ2h0UHJvZHVjdCIsImdsX0Zyb250TWF0ZXJpYWwiLCJnbF9Gcm9udFNlY29uZGFyeUNvbG9yIiwiZ2xfTGlnaHRNb2RlbCIsImdsX0xpZ2h0TW9kZWxQYXJhbWV0ZXJzIiwiZ2xfTGlnaHRNb2RlbFByb2R1Y3RzIiwiZ2xfTGlnaHRQcm9kdWN0cyIsImdsX0xpZ2h0U291cmNlIiwiZ2xfTGlnaHRTb3VyY2VQYXJhbWV0ZXJzIiwiZ2xfTWF0ZXJpYWxQYXJhbWV0ZXJzIiwiZ2xfTWF4Q2xpcFBsYW5lcyIsImdsX01heENvbWJpbmVkVGV4dHVyZUltYWdlVW5pdHMiLCJnbF9NYXhEcmF3QnVmZmVycyIsImdsX01heEZyYWdtZW50VW5pZm9ybUNvbXBvbmVudHMiLCJnbF9NYXhMaWdodHMiLCJnbF9NYXhUZXh0dXJlQ29vcmRzIiwiZ2xfTWF4VGV4dHVyZUltYWdlVW5pdHMiLCJnbF9NYXhUZXh0dXJlVW5pdHMiLCJnbF9NYXhWYXJ5aW5nRmxvYXRzIiwiZ2xfTWF4VmVydGV4QXR0cmlicyIsImdsX01heFZlcnRleFRleHR1cmVJbWFnZVVuaXRzIiwiZ2xfTWF4VmVydGV4VW5pZm9ybUNvbXBvbmVudHMiLCJnbF9Nb2RlbFZpZXdNYXRyaXgiLCJnbF9Nb2RlbFZpZXdNYXRyaXhJbnZlcnNlIiwiZ2xfTW9kZWxWaWV3TWF0cml4SW52ZXJzZVRyYW5zcG9zZSIsImdsX01vZGVsVmlld01hdHJpeFRyYW5zcG9zZSIsImdsX01vZGVsVmlld1Byb2plY3Rpb25NYXRyaXgiLCJnbF9Nb2RlbFZpZXdQcm9qZWN0aW9uTWF0cml4SW52ZXJzZSIsImdsX01vZGVsVmlld1Byb2plY3Rpb25NYXRyaXhJbnZlcnNlVHJhbnNwb3NlIiwiZ2xfTW9kZWxWaWV3UHJvamVjdGlvbk1hdHJpeFRyYW5zcG9zZSIsImdsX011bHRpVGV4Q29vcmQwIiwiZ2xfTXVsdGlUZXhDb29yZDEiLCJnbF9NdWx0aVRleENvb3JkMiIsImdsX011bHRpVGV4Q29vcmQzIiwiZ2xfTXVsdGlUZXhDb29yZDQiLCJnbF9NdWx0aVRleENvb3JkNSIsImdsX011bHRpVGV4Q29vcmQ2IiwiZ2xfTXVsdGlUZXhDb29yZDciLCJnbF9Ob3JtYWwiLCJnbF9Ob3JtYWxNYXRyaXgiLCJnbF9Ob3JtYWxTY2FsZSIsImdsX09iamVjdFBsYW5lUSIsImdsX09iamVjdFBsYW5lUiIsImdsX09iamVjdFBsYW5lUyIsImdsX09iamVjdFBsYW5lVCIsImdsX1BvaW50IiwiZ2xfUG9pbnRDb29yZCIsImdsX1BvaW50UGFyYW1ldGVycyIsImdsX1BvaW50U2l6ZSIsImdsX1Bvc2l0aW9uIiwiZ2xfUHJvamVjdGlvbk1hdHJpeCIsImdsX1Byb2plY3Rpb25NYXRyaXhJbnZlcnNlIiwiZ2xfUHJvamVjdGlvbk1hdHJpeEludmVyc2VUcmFuc3Bvc2UiLCJnbF9Qcm9qZWN0aW9uTWF0cml4VHJhbnNwb3NlIiwiZ2xfU2Vjb25kYXJ5Q29sb3IiLCJnbF9UZXhDb29yZCIsImdsX1RleHR1cmVFbnZDb2xvciIsImdsX1RleHR1cmVNYXRyaXgiLCJnbF9UZXh0dXJlTWF0cml4SW52ZXJzZSIsImdsX1RleHR1cmVNYXRyaXhJbnZlcnNlVHJhbnNwb3NlIiwiZ2xfVGV4dHVyZU1hdHJpeFRyYW5zcG9zZSIsImdsX1ZlcnRleCIsImdyZWF0ZXJUaGFuIiwiZ3JlYXRlclRoYW5FcXVhbCIsImludmVyc2VzcXJ0IiwibGVuZ3RoIiwibGVzc1RoYW4iLCJsZXNzVGhhbkVxdWFsIiwibG9nIiwibG9nMiIsIm1hdHJpeENvbXBNdWx0IiwibWF4IiwibWluIiwibWl4IiwibW9kIiwibm9ybWFsaXplIiwibm90Iiwibm90RXF1YWwiLCJwb3ciLCJyYWRpYW5zIiwicmVmbGVjdCIsInJlZnJhY3QiLCJzaWduIiwic2luIiwic21vb3Roc3RlcCIsInNxcnQiLCJzdGVwIiwidGFuIiwidGV4dHVyZTJEIiwidGV4dHVyZTJETG9kIiwidGV4dHVyZTJEUHJvaiIsInRleHR1cmUyRFByb2pMb2QiLCJ0ZXh0dXJlQ3ViZSIsInRleHR1cmVDdWJlTG9kIiwidGV4dHVyZTJETG9kRVhUIiwidGV4dHVyZTJEUHJvakxvZEVYVCIsInRleHR1cmVDdWJlTG9kRVhUIiwidGV4dHVyZTJER3JhZEVYVCIsInRleHR1cmUyRFByb2pHcmFkRVhUIiwidGV4dHVyZUN1YmVHcmFkRVhUIl19LHt9XSw0MDc6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCIuL2xpdGVyYWxzIik7ZS5leHBvcnRzPW4uc2xpY2UoKS5jb25jYXQoWyJsYXlvdXQiLCJjZW50cm9pZCIsInNtb290aCIsImNhc2UiLCJtYXQyeDIiLCJtYXQyeDMiLCJtYXQyeDQiLCJtYXQzeDIiLCJtYXQzeDMiLCJtYXQzeDQiLCJtYXQ0eDIiLCJtYXQ0eDMiLCJtYXQ0eDQiLCJ1aW50IiwidXZlYzIiLCJ1dmVjMyIsInV2ZWM0Iiwic2FtcGxlckN1YmVTaGFkb3ciLCJzYW1wbGVyMkRBcnJheSIsInNhbXBsZXIyREFycmF5U2hhZG93IiwiaXNhbXBsZXIyRCIsImlzYW1wbGVyM0QiLCJpc2FtcGxlckN1YmUiLCJpc2FtcGxlcjJEQXJyYXkiLCJ1c2FtcGxlcjJEIiwidXNhbXBsZXIzRCIsInVzYW1wbGVyQ3ViZSIsInVzYW1wbGVyMkRBcnJheSIsImNvaGVyZW50IiwicmVzdHJpY3QiLCJyZWFkb25seSIsIndyaXRlb25seSIsInJlc291cmNlIiwiYXRvbWljX3VpbnQiLCJub3BlcnNwZWN0aXZlIiwicGF0Y2giLCJzYW1wbGUiLCJzdWJyb3V0aW5lIiwiY29tbW9uIiwicGFydGl0aW9uIiwiYWN0aXZlIiwiZmlsdGVyIiwiaW1hZ2UxRCIsImltYWdlMkQiLCJpbWFnZTNEIiwiaW1hZ2VDdWJlIiwiaWltYWdlMUQiLCJpaW1hZ2UyRCIsImlpbWFnZTNEIiwiaWltYWdlQ3ViZSIsInVpbWFnZTFEIiwidWltYWdlMkQiLCJ1aW1hZ2UzRCIsInVpbWFnZUN1YmUiLCJpbWFnZTFEQXJyYXkiLCJpbWFnZTJEQXJyYXkiLCJpaW1hZ2UxREFycmF5IiwiaWltYWdlMkRBcnJheSIsInVpbWFnZTFEQXJyYXkiLCJ1aW1hZ2UyREFycmF5IiwiaW1hZ2UxRFNoYWRvdyIsImltYWdlMkRTaGFkb3ciLCJpbWFnZTFEQXJyYXlTaGFkb3ciLCJpbWFnZTJEQXJyYXlTaGFkb3ciLCJpbWFnZUJ1ZmZlciIsImlpbWFnZUJ1ZmZlciIsInVpbWFnZUJ1ZmZlciIsInNhbXBsZXIxREFycmF5Iiwic2FtcGxlcjFEQXJyYXlTaGFkb3ciLCJpc2FtcGxlcjFEIiwiaXNhbXBsZXIxREFycmF5IiwidXNhbXBsZXIxRCIsInVzYW1wbGVyMURBcnJheSIsImlzYW1wbGVyMkRSZWN0IiwidXNhbXBsZXIyRFJlY3QiLCJzYW1wbGVyQnVmZmVyIiwiaXNhbXBsZXJCdWZmZXIiLCJ1c2FtcGxlckJ1ZmZlciIsInNhbXBsZXIyRE1TIiwiaXNhbXBsZXIyRE1TIiwidXNhbXBsZXIyRE1TIiwic2FtcGxlcjJETVNBcnJheSIsImlzYW1wbGVyMkRNU0FycmF5IiwidXNhbXBsZXIyRE1TQXJyYXkiXSl9LHsiLi9saXRlcmFscyI6NDA4fV0sNDA4OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPVsicHJlY2lzaW9uIiwiaGlnaHAiLCJtZWRpdW1wIiwibG93cCIsImF0dHJpYnV0ZSIsImNvbnN0IiwidW5pZm9ybSIsInZhcnlpbmciLCJicmVhayIsImNvbnRpbnVlIiwiZG8iLCJmb3IiLCJ3aGlsZSIsImlmIiwiZWxzZSIsImluIiwib3V0IiwiaW5vdXQiLCJmbG9hdCIsImludCIsInZvaWQiLCJib29sIiwidHJ1ZSIsImZhbHNlIiwiZGlzY2FyZCIsInJldHVybiIsIm1hdDIiLCJtYXQzIiwibWF0NCIsInZlYzIiLCJ2ZWMzIiwidmVjNCIsIml2ZWMyIiwiaXZlYzMiLCJpdmVjNCIsImJ2ZWMyIiwiYnZlYzMiLCJidmVjNCIsInNhbXBsZXIxRCIsInNhbXBsZXIyRCIsInNhbXBsZXIzRCIsInNhbXBsZXJDdWJlIiwic2FtcGxlcjFEU2hhZG93Iiwic2FtcGxlcjJEU2hhZG93Iiwic3RydWN0IiwiYXNtIiwiY2xhc3MiLCJ1bmlvbiIsImVudW0iLCJ0eXBlZGVmIiwidGVtcGxhdGUiLCJ0aGlzIiwicGFja2VkIiwiZ290byIsInN3aXRjaCIsImRlZmF1bHQiLCJpbmxpbmUiLCJub2lubGluZSIsInZvbGF0aWxlIiwicHVibGljIiwic3RhdGljIiwiZXh0ZXJuIiwiZXh0ZXJuYWwiLCJpbnRlcmZhY2UiLCJsb25nIiwic2hvcnQiLCJkb3VibGUiLCJoYWxmIiwiZml4ZWQiLCJ1bnNpZ25lZCIsImlucHV0Iiwib3V0cHV0IiwiaHZlYzIiLCJodmVjMyIsImh2ZWM0IiwiZHZlYzIiLCJkdmVjMyIsImR2ZWM0IiwiZnZlYzIiLCJmdmVjMyIsImZ2ZWM0Iiwic2FtcGxlcjJEUmVjdCIsInNhbXBsZXIzRFJlY3QiLCJzYW1wbGVyMkRSZWN0U2hhZG93Iiwic2l6ZW9mIiwiY2FzdCIsIm5hbWVzcGFjZSIsInVzaW5nIl19LHt9XSw0MDk6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9WyI8PD0iLCI+Pj0iLCIrKyIsIi0tIiwiPDwiLCI+PiIsIjw9IiwiPj0iLCI9PSIsIiE9IiwiJiYiLCJ8fCIsIis9IiwiLT0iLCIqPSIsIi89IiwiJT0iLCImPSIsIl5eIiwiXj0iLCJ8PSIsIigiLCIpIiwiWyIsIl0iLCIuIiwiISIsIn4iLCIqIiwiLyIsIiUiLCIrIiwiLSIsIjwiLCI+IiwiJiIsIl4iLCJ8IiwiPyIsIjoiLCI9IiwiLCIsIjsiLCJ7IiwifSJdfSx7fV0sNDEwOltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi9pbmRleCIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPW4oZSksYT1bXTtyZXR1cm4gYT0oYT1hLmNvbmNhdChyKHQpKSkuY29uY2F0KHIobnVsbCkpfX0seyIuL2luZGV4Ijo0MDR9XSw0MTE6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7InN0cmluZyI9PXR5cGVvZiB0JiYodD1bdF0pO2Zvcih2YXIgZT1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSxyPVtdLG49MDtuPHQubGVuZ3RoLTE7bisrKXIucHVzaCh0W25dLGVbbl18fCIiKTtyZXR1cm4gci5wdXNoKHRbbl0pLHIuam9pbigiIil9fSx7fV0sNDEyOltmdW5jdGlvbih0LGUscil7KGZ1bmN0aW9uKHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixhPXQoImlzLWJyb3dzZXIiKTtuPSJmdW5jdGlvbiI9PXR5cGVvZiByLm1hdGNoTWVkaWE/IXIubWF0Y2hNZWRpYSgiKGhvdmVyOiBub25lKSIpLm1hdGNoZXM6YSxlLmV4cG9ydHM9bn0pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0seyJpcy1icm93c2VyIjo0MTl9XSw0MTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiaXMtYnJvd3NlciIpO2UuZXhwb3J0cz1uJiZmdW5jdGlvbigpe3ZhciB0PSExO3RyeXt2YXIgZT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXt0PSEwfX0pO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IixudWxsLGUpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0IixudWxsLGUpfWNhdGNoKGUpe3Q9ITF9cmV0dXJuIHR9KCl9LHsiaXMtYnJvd3NlciI6NDE5fV0sNDE0OltmdW5jdGlvbih0LGUscil7ci5yZWFkPWZ1bmN0aW9uKHQsZSxyLG4sYSl7dmFyIGksbyxzPTgqYS1uLTEsbD0oMTw8cyktMSxjPWw+PjEsdT0tNyxoPXI/YS0xOjAsZj1yPy0xOjEscD10W2UraF07Zm9yKGgrPWYsaT1wJigxPDwtdSktMSxwPj49LXUsdSs9czt1PjA7aT0yNTYqaSt0W2UraF0saCs9Zix1LT04KTtmb3Iobz1pJigxPDwtdSktMSxpPj49LXUsdSs9bjt1PjA7bz0yNTYqbyt0W2UraF0saCs9Zix1LT04KTtpZigwPT09aSlpPTEtYztlbHNle2lmKGk9PT1sKXJldHVybiBvP05hTjoxLzAqKHA/LTE6MSk7bys9TWF0aC5wb3coMixuKSxpLT1jfXJldHVybihwPy0xOjEpKm8qTWF0aC5wb3coMixpLW4pfSxyLndyaXRlPWZ1bmN0aW9uKHQsZSxyLG4sYSxpKXt2YXIgbyxzLGwsYz04KmktYS0xLHU9KDE8PGMpLTEsaD11Pj4xLGY9MjM9PT1hP01hdGgucG93KDIsLTI0KS1NYXRoLnBvdygyLC03Nyk6MCxwPW4/MDppLTEsZD1uPzE6LTEsZz1lPDB8fDA9PT1lJiYxL2U8MD8xOjA7Zm9yKGU9TWF0aC5hYnMoZSksaXNOYU4oZSl8fGU9PT0xLzA/KHM9aXNOYU4oZSk/MTowLG89dSk6KG89TWF0aC5mbG9vcihNYXRoLmxvZyhlKS9NYXRoLkxOMiksZSoobD1NYXRoLnBvdygyLC1vKSk8MSYmKG8tLSxsKj0yKSwoZSs9bytoPj0xP2YvbDpmKk1hdGgucG93KDIsMS1oKSkqbD49MiYmKG8rKyxsLz0yKSxvK2g+PXU/KHM9MCxvPXUpOm8raD49MT8ocz0oZSpsLTEpKk1hdGgucG93KDIsYSksbys9aCk6KHM9ZSpNYXRoLnBvdygyLGgtMSkqTWF0aC5wb3coMixhKSxvPTApKTthPj04O3RbcitwXT0yNTUmcyxwKz1kLHMvPTI1NixhLT04KTtmb3Iobz1vPDxhfHMsYys9YTtjPjA7dFtyK3BdPTI1NSZvLHArPWQsby89MjU2LGMtPTgpO3RbcitwLWRdfD0xMjgqZ319LHt9XSw0MTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5sZW5ndGg7aWYoMD09PXIpdGhyb3cgbmV3IEVycm9yKCJNdXN0IGhhdmUgYXQgbGVhc3QgZCsxIHBvaW50cyIpO3ZhciBhPXRbMF0ubGVuZ3RoO2lmKHI8PWEpdGhyb3cgbmV3IEVycm9yKCJNdXN0IGlucHV0IGF0IGxlYXN0IGQrMSBwb2ludHMiKTt2YXIgbz10LnNsaWNlKDAsYSsxKSxzPW4uYXBwbHkodm9pZCAwLG8pO2lmKDA9PT1zKXRocm93IG5ldyBFcnJvcigiSW5wdXQgbm90IGluIGdlbmVyYWwgcG9zaXRpb24iKTtmb3IodmFyIGw9bmV3IEFycmF5KGErMSksdT0wO3U8PWE7Kyt1KWxbdV09dTtzPDAmJihsWzBdPTEsbFsxXT0wKTtmb3IodmFyIGg9bmV3IGkobCxuZXcgQXJyYXkoYSsxKSwhMSksZj1oLmFkamFjZW50LHA9bmV3IEFycmF5KGErMiksdT0wO3U8PWE7Kyt1KXtmb3IodmFyIGQ9bC5zbGljZSgpLGc9MDtnPD1hOysrZylnPT09dSYmKGRbZ109LTEpO3ZhciB2PWRbMF07ZFswXT1kWzFdLGRbMV09djt2YXIgbT1uZXcgaShkLG5ldyBBcnJheShhKzEpLCEwKTtmW3VdPW0scFt1XT1tfXBbYSsxXT1oO2Zvcih2YXIgdT0wO3U8PWE7Kyt1KWZvcih2YXIgZD1mW3VdLnZlcnRpY2VzLHk9Zlt1XS5hZGphY2VudCxnPTA7Zzw9YTsrK2cpe3ZhciB4PWRbZ107aWYoeDwwKXlbZ109aDtlbHNlIGZvcih2YXIgYj0wO2I8PWE7KytiKWZbYl0udmVydGljZXMuaW5kZXhPZih4KTwwJiYoeVtnXT1mW2JdKX1mb3IodmFyIF89bmV3IGMoYSxvLHApLHc9ISFlLHU9YSsxO3U8cjsrK3UpXy5pbnNlcnQodFt1XSx3KTtyZXR1cm4gXy5ib3VuZGFyeSgpfTt2YXIgbj10KCJyb2J1c3Qtb3JpZW50YXRpb24iKSxhPXQoInNpbXBsaWNpYWwtY29tcGxleCIpLmNvbXBhcmVDZWxscztmdW5jdGlvbiBpKHQsZSxyKXt0aGlzLnZlcnRpY2VzPXQsdGhpcy5hZGphY2VudD1lLHRoaXMuYm91bmRhcnk9cix0aGlzLmxhc3RWaXNpdGVkPS0xfWZ1bmN0aW9uIG8odCxlLHIpe3RoaXMudmVydGljZXM9dCx0aGlzLmNlbGw9ZSx0aGlzLmluZGV4PXJ9ZnVuY3Rpb24gcyh0LGUpe3JldHVybiBhKHQudmVydGljZXMsZS52ZXJ0aWNlcyl9aS5wcm90b3R5cGUuZmxpcD1mdW5jdGlvbigpe3ZhciB0PXRoaXMudmVydGljZXNbMF07dGhpcy52ZXJ0aWNlc1swXT10aGlzLnZlcnRpY2VzWzFdLHRoaXMudmVydGljZXNbMV09dDt2YXIgZT10aGlzLmFkamFjZW50WzBdO3RoaXMuYWRqYWNlbnRbMF09dGhpcy5hZGphY2VudFsxXSx0aGlzLmFkamFjZW50WzFdPWV9O3ZhciBsPVtdO2Z1bmN0aW9uIGModCxlLHIpe3RoaXMuZGltZW5zaW9uPXQsdGhpcy52ZXJ0aWNlcz1lLHRoaXMuc2ltcGxpY2VzPXIsdGhpcy5pbnRlcmlvcj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4hdC5ib3VuZGFyeX0pLHRoaXMudHVwbGU9bmV3IEFycmF5KHQrMSk7Zm9yKHZhciBhPTA7YTw9dDsrK2EpdGhpcy50dXBsZVthXT10aGlzLnZlcnRpY2VzW2FdO3ZhciBpPWxbdF07aXx8KGk9bFt0XT1mdW5jdGlvbih0KXtmb3IodmFyIGU9WyJmdW5jdGlvbiBvcmllbnQoKXt2YXIgdHVwbGU9dGhpcy50dXBsZTtyZXR1cm4gdGVzdCgiXSxyPTA7cjw9dDsrK3Ipcj4wJiZlLnB1c2goIiwiKSxlLnB1c2goInR1cGxlWyIsciwiXSIpO2UucHVzaCgiKX1yZXR1cm4gb3JpZW50Iik7dmFyIGE9bmV3IEZ1bmN0aW9uKCJ0ZXN0IixlLmpvaW4oIiIpKSxpPW5bdCsxXTtyZXR1cm4gaXx8KGk9biksYShpKX0odCkpLHRoaXMub3JpZW50PWl9dmFyIHU9Yy5wcm90b3R5cGU7dS5oYW5kbGVCb3VuZGFyeURlZ2VuZXJhY3k9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmRpbWVuc2lvbixuPXRoaXMudmVydGljZXMubGVuZ3RoLTEsYT10aGlzLnR1cGxlLGk9dGhpcy52ZXJ0aWNlcyxvPVt0XTtmb3IodC5sYXN0VmlzaXRlZD0tbjtvLmxlbmd0aD4wOyl7KHQ9by5wb3AoKSkudmVydGljZXM7Zm9yKHZhciBzPXQuYWRqYWNlbnQsbD0wO2w8PXI7KytsKXt2YXIgYz1zW2xdO2lmKGMuYm91bmRhcnkmJiEoYy5sYXN0VmlzaXRlZDw9LW4pKXtmb3IodmFyIHU9Yy52ZXJ0aWNlcyxoPTA7aDw9cjsrK2gpe3ZhciBmPXVbaF07YVtoXT1mPDA/ZTppW2ZdfXZhciBwPXRoaXMub3JpZW50KCk7aWYocD4wKXJldHVybiBjO2MubGFzdFZpc2l0ZWQ9LW4sMD09PXAmJm8ucHVzaChjKX19fXJldHVybiBudWxsfSx1LndhbGs9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLnZlcnRpY2VzLmxlbmd0aC0xLG49dGhpcy5kaW1lbnNpb24sYT10aGlzLnZlcnRpY2VzLGk9dGhpcy50dXBsZSxvPWU/dGhpcy5pbnRlcmlvci5sZW5ndGgqTWF0aC5yYW5kb20oKXwwOnRoaXMuaW50ZXJpb3IubGVuZ3RoLTEscz10aGlzLmludGVyaW9yW29dO3Q6Zm9yKDshcy5ib3VuZGFyeTspe2Zvcih2YXIgbD1zLnZlcnRpY2VzLGM9cy5hZGphY2VudCx1PTA7dTw9bjsrK3UpaVt1XT1hW2xbdV1dO3MubGFzdFZpc2l0ZWQ9cjtmb3IodT0wO3U8PW47Kyt1KXt2YXIgaD1jW3VdO2lmKCEoaC5sYXN0VmlzaXRlZD49cikpe3ZhciBmPWlbdV07aVt1XT10O3ZhciBwPXRoaXMub3JpZW50KCk7aWYoaVt1XT1mLHA8MCl7cz1oO2NvbnRpbnVlIHR9aC5ib3VuZGFyeT9oLmxhc3RWaXNpdGVkPS1yOmgubGFzdFZpc2l0ZWQ9cn19cmV0dXJufXJldHVybiBzfSx1LmFkZFBlYWtzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy52ZXJ0aWNlcy5sZW5ndGgtMSxuPXRoaXMuZGltZW5zaW9uLGE9dGhpcy52ZXJ0aWNlcyxsPXRoaXMudHVwbGUsYz10aGlzLmludGVyaW9yLHU9dGhpcy5zaW1wbGljZXMsaD1bZV07ZS5sYXN0VmlzaXRlZD1yLGUudmVydGljZXNbZS52ZXJ0aWNlcy5pbmRleE9mKC0xKV09cixlLmJvdW5kYXJ5PSExLGMucHVzaChlKTtmb3IodmFyIGY9W107aC5sZW5ndGg+MDspe3ZhciBwPShlPWgucG9wKCkpLnZlcnRpY2VzLGQ9ZS5hZGphY2VudCxnPXAuaW5kZXhPZihyKTtpZighKGc8MCkpZm9yKHZhciB2PTA7djw9bjsrK3YpaWYodiE9PWcpe3ZhciBtPWRbdl07aWYobS5ib3VuZGFyeSYmIShtLmxhc3RWaXNpdGVkPj1yKSl7dmFyIHk9bS52ZXJ0aWNlcztpZihtLmxhc3RWaXNpdGVkIT09LXIpe2Zvcih2YXIgeD0wLGI9MDtiPD1uOysrYil5W2JdPDA/KHg9YixsW2JdPXQpOmxbYl09YVt5W2JdXTtpZih0aGlzLm9yaWVudCgpPjApe3lbeF09cixtLmJvdW5kYXJ5PSExLGMucHVzaChtKSxoLnB1c2gobSksbS5sYXN0VmlzaXRlZD1yO2NvbnRpbnVlfW0ubGFzdFZpc2l0ZWQ9LXJ9dmFyIF89bS5hZGphY2VudCx3PXAuc2xpY2UoKSxrPWQuc2xpY2UoKSxUPW5ldyBpKHcsaywhMCk7dS5wdXNoKFQpO3ZhciBNPV8uaW5kZXhPZihlKTtpZighKE08MCkpe19bTV09VCxrW2ddPW0sd1t2XT0tMSxrW3ZdPWUsZFt2XT1ULFQuZmxpcCgpO2ZvcihiPTA7Yjw9bjsrK2Ipe3ZhciBBPXdbYl07aWYoIShBPDB8fEE9PT1yKSl7Zm9yKHZhciBTPW5ldyBBcnJheShuLTEpLEU9MCxMPTA7TDw9bjsrK0wpe3ZhciBDPXdbTF07QzwwfHxMPT09Ynx8KFNbRSsrXT1DKX1mLnB1c2gobmV3IG8oUyxULGIpKX19fX19fWYuc29ydChzKTtmb3Iodj0wO3YrMTxmLmxlbmd0aDt2Kz0yKXt2YXIgUD1mW3ZdLE89Zlt2KzFdLHo9UC5pbmRleCxJPU8uaW5kZXg7ejwwfHxJPDB8fChQLmNlbGwuYWRqYWNlbnRbUC5pbmRleF09Ty5jZWxsLE8uY2VsbC5hZGphY2VudFtPLmluZGV4XT1QLmNlbGwpfX0sdS5pbnNlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLnZlcnRpY2VzO3IucHVzaCh0KTt2YXIgbj10aGlzLndhbGsodCxlKTtpZihuKXtmb3IodmFyIGE9dGhpcy5kaW1lbnNpb24saT10aGlzLnR1cGxlLG89MDtvPD1hOysrbyl7dmFyIHM9bi52ZXJ0aWNlc1tvXTtpW29dPXM8MD90OnJbc119dmFyIGw9dGhpcy5vcmllbnQoaSk7bDwwfHwoMCE9PWx8fChuPXRoaXMuaGFuZGxlQm91bmRhcnlEZWdlbmVyYWN5KG4sdCkpKSYmdGhpcy5hZGRQZWFrcyh0LG4pfX0sdS5ib3VuZGFyeT1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLmRpbWVuc2lvbixlPVtdLHI9dGhpcy5zaW1wbGljZXMsbj1yLmxlbmd0aCxhPTA7YTxuOysrYSl7dmFyIGk9clthXTtpZihpLmJvdW5kYXJ5KXtmb3IodmFyIG89bmV3IEFycmF5KHQpLHM9aS52ZXJ0aWNlcyxsPTAsYz0wLHU9MDt1PD10OysrdSlzW3VdPj0wP29bbCsrXT1zW3VdOmM9MSZ1O2lmKGM9PT0oMSZ0KSl7dmFyIGg9b1swXTtvWzBdPW9bMV0sb1sxXT1ofWUucHVzaChvKX19cmV0dXJuIGV9fSx7InJvYnVzdC1vcmllbnRhdGlvbiI6NTA5LCJzaW1wbGljaWFsLWNvbXBsZXgiOjUxOX1dLDQxNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJiaW5hcnktc2VhcmNoLWJvdW5kcyIpLGE9MCxpPTE7ZnVuY3Rpb24gbyh0LGUscixuLGEpe3RoaXMubWlkPXQsdGhpcy5sZWZ0PWUsdGhpcy5yaWdodD1yLHRoaXMubGVmdFBvaW50cz1uLHRoaXMucmlnaHRQb2ludHM9YSx0aGlzLmNvdW50PShlP2UuY291bnQ6MCkrKHI/ci5jb3VudDowKStuLmxlbmd0aH1lLmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoIXR8fDA9PT10Lmxlbmd0aClyZXR1cm4gbmV3IHgobnVsbCk7cmV0dXJuIG5ldyB4KHkodCkpfTt2YXIgcz1vLnByb3RvdHlwZTtmdW5jdGlvbiBsKHQsZSl7dC5taWQ9ZS5taWQsdC5sZWZ0PWUubGVmdCx0LnJpZ2h0PWUucmlnaHQsdC5sZWZ0UG9pbnRzPWUubGVmdFBvaW50cyx0LnJpZ2h0UG9pbnRzPWUucmlnaHRQb2ludHMsdC5jb3VudD1lLmNvdW50fWZ1bmN0aW9uIGModCxlKXt2YXIgcj15KGUpO3QubWlkPXIubWlkLHQubGVmdD1yLmxlZnQsdC5yaWdodD1yLnJpZ2h0LHQubGVmdFBvaW50cz1yLmxlZnRQb2ludHMsdC5yaWdodFBvaW50cz1yLnJpZ2h0UG9pbnRzLHQuY291bnQ9ci5jb3VudH1mdW5jdGlvbiB1KHQsZSl7dmFyIHI9dC5pbnRlcnZhbHMoW10pO3IucHVzaChlKSxjKHQscil9ZnVuY3Rpb24gaCh0LGUpe3ZhciByPXQuaW50ZXJ2YWxzKFtdKSxuPXIuaW5kZXhPZihlKTtyZXR1cm4gbjwwP2E6KHIuc3BsaWNlKG4sMSksYyh0LHIpLGkpfWZ1bmN0aW9uIGYodCxlLHIpe2Zvcih2YXIgbj0wO248dC5sZW5ndGgmJnRbbl1bMF08PWU7KytuKXt2YXIgYT1yKHRbbl0pO2lmKGEpcmV0dXJuIGF9fWZ1bmN0aW9uIHAodCxlLHIpe2Zvcih2YXIgbj10Lmxlbmd0aC0xO24+PTAmJnRbbl1bMV0+PWU7LS1uKXt2YXIgYT1yKHRbbl0pO2lmKGEpcmV0dXJuIGF9fWZ1bmN0aW9uIGQodCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoOysrcil7dmFyIG49ZSh0W3JdKTtpZihuKXJldHVybiBufX1mdW5jdGlvbiBnKHQsZSl7cmV0dXJuIHQtZX1mdW5jdGlvbiB2KHQsZSl7dmFyIHI9dFswXS1lWzBdO3JldHVybiByfHx0WzFdLWVbMV19ZnVuY3Rpb24gbSh0LGUpe3ZhciByPXRbMV0tZVsxXTtyZXR1cm4gcnx8dFswXS1lWzBdfWZ1bmN0aW9uIHkodCl7aWYoMD09PXQubGVuZ3RoKXJldHVybiBudWxsO2Zvcih2YXIgZT1bXSxyPTA7cjx0Lmxlbmd0aDsrK3IpZS5wdXNoKHRbcl1bMF0sdFtyXVsxXSk7ZS5zb3J0KGcpO3ZhciBuPWVbZS5sZW5ndGg+PjFdLGE9W10saT1bXSxzPVtdO2ZvcihyPTA7cjx0Lmxlbmd0aDsrK3Ipe3ZhciBsPXRbcl07bFsxXTxuP2EucHVzaChsKTpuPGxbMF0/aS5wdXNoKGwpOnMucHVzaChsKX12YXIgYz1zLHU9cy5zbGljZSgpO3JldHVybiBjLnNvcnQodiksdS5zb3J0KG0pLG5ldyBvKG4seShhKSx5KGkpLGMsdSl9ZnVuY3Rpb24geCh0KXt0aGlzLnJvb3Q9dH1zLmludGVydmFscz1mdW5jdGlvbih0KXtyZXR1cm4gdC5wdXNoLmFwcGx5KHQsdGhpcy5sZWZ0UG9pbnRzKSx0aGlzLmxlZnQmJnRoaXMubGVmdC5pbnRlcnZhbHModCksdGhpcy5yaWdodCYmdGhpcy5yaWdodC5pbnRlcnZhbHModCksdH0scy5pbnNlcnQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jb3VudC10aGlzLmxlZnRQb2ludHMubGVuZ3RoO2lmKHRoaXMuY291bnQrPTEsdFsxXTx0aGlzLm1pZCl0aGlzLmxlZnQ/NCoodGhpcy5sZWZ0LmNvdW50KzEpPjMqKGUrMSk/dSh0aGlzLHQpOnRoaXMubGVmdC5pbnNlcnQodCk6dGhpcy5sZWZ0PXkoW3RdKTtlbHNlIGlmKHRbMF0+dGhpcy5taWQpdGhpcy5yaWdodD80Kih0aGlzLnJpZ2h0LmNvdW50KzEpPjMqKGUrMSk/dSh0aGlzLHQpOnRoaXMucmlnaHQuaW5zZXJ0KHQpOnRoaXMucmlnaHQ9eShbdF0pO2Vsc2V7dmFyIHI9bi5nZSh0aGlzLmxlZnRQb2ludHMsdCx2KSxhPW4uZ2UodGhpcy5yaWdodFBvaW50cyx0LG0pO3RoaXMubGVmdFBvaW50cy5zcGxpY2UociwwLHQpLHRoaXMucmlnaHRQb2ludHMuc3BsaWNlKGEsMCx0KX19LHMucmVtb3ZlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY291bnQtdGhpcy5sZWZ0UG9pbnRzO2lmKHRbMV08dGhpcy5taWQpcmV0dXJuIHRoaXMubGVmdD80Kih0aGlzLnJpZ2h0P3RoaXMucmlnaHQuY291bnQ6MCk+MyooZS0xKT9oKHRoaXMsdCk6Mj09PShjPXRoaXMubGVmdC5yZW1vdmUodCkpPyh0aGlzLmxlZnQ9bnVsbCx0aGlzLmNvdW50LT0xLGkpOihjPT09aSYmKHRoaXMuY291bnQtPTEpLGMpOmE7aWYodFswXT50aGlzLm1pZClyZXR1cm4gdGhpcy5yaWdodD80Kih0aGlzLmxlZnQ/dGhpcy5sZWZ0LmNvdW50OjApPjMqKGUtMSk/aCh0aGlzLHQpOjI9PT0oYz10aGlzLnJpZ2h0LnJlbW92ZSh0KSk/KHRoaXMucmlnaHQ9bnVsbCx0aGlzLmNvdW50LT0xLGkpOihjPT09aSYmKHRoaXMuY291bnQtPTEpLGMpOmE7aWYoMT09PXRoaXMuY291bnQpcmV0dXJuIHRoaXMubGVmdFBvaW50c1swXT09PXQ/MjphO2lmKDE9PT10aGlzLmxlZnRQb2ludHMubGVuZ3RoJiZ0aGlzLmxlZnRQb2ludHNbMF09PT10KXtpZih0aGlzLmxlZnQmJnRoaXMucmlnaHQpe2Zvcih2YXIgcj10aGlzLG89dGhpcy5sZWZ0O28ucmlnaHQ7KXI9byxvPW8ucmlnaHQ7aWYocj09PXRoaXMpby5yaWdodD10aGlzLnJpZ2h0O2Vsc2V7dmFyIHM9dGhpcy5sZWZ0LGM9dGhpcy5yaWdodDtyLmNvdW50LT1vLmNvdW50LHIucmlnaHQ9by5sZWZ0LG8ubGVmdD1zLG8ucmlnaHQ9Y31sKHRoaXMsbyksdGhpcy5jb3VudD0odGhpcy5sZWZ0P3RoaXMubGVmdC5jb3VudDowKSsodGhpcy5yaWdodD90aGlzLnJpZ2h0LmNvdW50OjApK3RoaXMubGVmdFBvaW50cy5sZW5ndGh9ZWxzZSB0aGlzLmxlZnQ/bCh0aGlzLHRoaXMubGVmdCk6bCh0aGlzLHRoaXMucmlnaHQpO3JldHVybiBpfWZvcihzPW4uZ2UodGhpcy5sZWZ0UG9pbnRzLHQsdik7czx0aGlzLmxlZnRQb2ludHMubGVuZ3RoJiZ0aGlzLmxlZnRQb2ludHNbc11bMF09PT10WzBdOysrcylpZih0aGlzLmxlZnRQb2ludHNbc109PT10KXt0aGlzLmNvdW50LT0xLHRoaXMubGVmdFBvaW50cy5zcGxpY2UocywxKTtmb3IoYz1uLmdlKHRoaXMucmlnaHRQb2ludHMsdCxtKTtjPHRoaXMucmlnaHRQb2ludHMubGVuZ3RoJiZ0aGlzLnJpZ2h0UG9pbnRzW2NdWzFdPT09dFsxXTsrK2MpaWYodGhpcy5yaWdodFBvaW50c1tjXT09PXQpcmV0dXJuIHRoaXMucmlnaHRQb2ludHMuc3BsaWNlKGMsMSksaX1yZXR1cm4gYX0scy5xdWVyeVBvaW50PWZ1bmN0aW9uKHQsZSl7aWYodDx0aGlzLm1pZCl7aWYodGhpcy5sZWZ0KWlmKHI9dGhpcy5sZWZ0LnF1ZXJ5UG9pbnQodCxlKSlyZXR1cm4gcjtyZXR1cm4gZih0aGlzLmxlZnRQb2ludHMsdCxlKX1pZih0PnRoaXMubWlkKXt2YXIgcjtpZih0aGlzLnJpZ2h0KWlmKHI9dGhpcy5yaWdodC5xdWVyeVBvaW50KHQsZSkpcmV0dXJuIHI7cmV0dXJuIHAodGhpcy5yaWdodFBvaW50cyx0LGUpfXJldHVybiBkKHRoaXMubGVmdFBvaW50cyxlKX0scy5xdWVyeUludGVydmFsPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbjtpZih0PHRoaXMubWlkJiZ0aGlzLmxlZnQmJihuPXRoaXMubGVmdC5xdWVyeUludGVydmFsKHQsZSxyKSkpcmV0dXJuIG47aWYoZT50aGlzLm1pZCYmdGhpcy5yaWdodCYmKG49dGhpcy5yaWdodC5xdWVyeUludGVydmFsKHQsZSxyKSkpcmV0dXJuIG47cmV0dXJuIGU8dGhpcy5taWQ/Zih0aGlzLmxlZnRQb2ludHMsZSxyKTp0PnRoaXMubWlkP3AodGhpcy5yaWdodFBvaW50cyx0LHIpOmQodGhpcy5sZWZ0UG9pbnRzLHIpfTt2YXIgYj14LnByb3RvdHlwZTtiLmluc2VydD1mdW5jdGlvbih0KXt0aGlzLnJvb3Q/dGhpcy5yb290Lmluc2VydCh0KTp0aGlzLnJvb3Q9bmV3IG8odFswXSxudWxsLG51bGwsW3RdLFt0XSl9LGIucmVtb3ZlPWZ1bmN0aW9uKHQpe2lmKHRoaXMucm9vdCl7dmFyIGU9dGhpcy5yb290LnJlbW92ZSh0KTtyZXR1cm4gMj09PWUmJih0aGlzLnJvb3Q9bnVsbCksZSE9PWF9cmV0dXJuITF9LGIucXVlcnlQb2ludD1mdW5jdGlvbih0LGUpe2lmKHRoaXMucm9vdClyZXR1cm4gdGhpcy5yb290LnF1ZXJ5UG9pbnQodCxlKX0sYi5xdWVyeUludGVydmFsPWZ1bmN0aW9uKHQsZSxyKXtpZih0PD1lJiZ0aGlzLnJvb3QpcmV0dXJuIHRoaXMucm9vdC5xdWVyeUludGVydmFsKHQsZSxyKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGIsImNvdW50Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucm9vdD90aGlzLnJvb3QuY291bnQ6MH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYiwiaW50ZXJ2YWxzIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucm9vdD90aGlzLnJvb3QuaW50ZXJ2YWxzKFtdKTpbXX19KX0seyJiaW5hcnktc2VhcmNoLWJvdW5kcyI6OTN9XSw0MTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZT1lfHxuZXcgQXJyYXkodC5sZW5ndGgpO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7KytyKWVbdFtyXV09cjtyZXR1cm4gZX19LHt9XSw0MTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodCkscj0wO3I8dDsrK3IpZVtyXT1yO3JldHVybiBlfX0se31dLDQxOTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz0hMH0se31dLDQyMDpbZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCl7cmV0dXJuISF0LmNvbnN0cnVjdG9yJiYiZnVuY3Rpb24iPT10eXBlb2YgdC5jb25zdHJ1Y3Rvci5pc0J1ZmZlciYmdC5jb25zdHJ1Y3Rvci5pc0J1ZmZlcih0KX1lLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPXQmJihuKHQpfHxmdW5jdGlvbih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdC5yZWFkRmxvYXRMRSYmImZ1bmN0aW9uIj09dHlwZW9mIHQuc2xpY2UmJm4odC5zbGljZSgwLDApKX0odCl8fCEhdC5faXNCdWZmZXIpfX0se31dLDQyMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9InVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3ImJigvTVNJRS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KXx8L1RyaWRlbnRcLy8udGVzdChuYXZpZ2F0b3IuYXBwVmVyc2lvbikpfSx7fV0sNDIyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1pLGUuZXhwb3J0cy5pc01vYmlsZT1pLGUuZXhwb3J0cy5kZWZhdWx0PWk7dmFyIG49LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcmlzfGtpbmRsZXxsZ2UgfG1hZW1vfG1pZHB8bW1wfG1vYmlsZS4rZmlyZWZveHxuZXRmcm9udHxvcGVyYSBtKG9ifGluKWl8cGFsbSggb3MpP3xwaG9uZXxwKGl4aXxyZSlcL3xwbHVja2VyfHBvY2tldHxwc3B8c2VyaWVzWzQ2XTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pLGE9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcmlzfGtpbmRsZXxsZ2UgfG1hZW1vfG1pZHB8bW1wfG1vYmlsZS4rZmlyZWZveHxuZXRmcm9udHxvcGVyYSBtKG9ifGluKWl8cGFsbSggb3MpP3xwaG9uZXxwKGl4aXxyZSlcL3xwbHVja2VyfHBvY2tldHxwc3B8c2VyaWVzWzQ2XTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWlub3xhbmRyb2lkfGlwYWR8cGxheWJvb2t8c2lsay9pO2Z1bmN0aW9uIGkodCl7dHx8KHQ9e30pO3ZhciBlPXQudWE7cmV0dXJuIGV8fCJ1bmRlZmluZWQiPT10eXBlb2YgbmF2aWdhdG9yfHwoZT1uYXZpZ2F0b3IudXNlckFnZW50KSxlJiZlLmhlYWRlcnMmJiJzdHJpbmciPT10eXBlb2YgZS5oZWFkZXJzWyJ1c2VyLWFnZW50Il0mJihlPWUuaGVhZGVyc1sidXNlci1hZ2VudCJdKSwic3RyaW5nIj09dHlwZW9mIGUmJih0LnRhYmxldD9hLnRlc3QoZSk6bi50ZXN0KGUpKX19LHt9XSw0MjM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXR5cGVvZiB0O3JldHVybiBudWxsIT09dCYmKCJvYmplY3QiPT09ZXx8ImZ1bmN0aW9uIj09PWUpfX0se31dLDQyNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4iW29iamVjdCBPYmplY3RdIj09PW4uY2FsbCh0KSYmKG51bGw9PT0oZT1PYmplY3QuZ2V0UHJvdG90eXBlT2YodCkpfHxlPT09T2JqZWN0LmdldFByb3RvdHlwZU9mKHt9KSl9fSx7fV0sNDI1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGUscj10Lmxlbmd0aCxuPTA7bjxyO24rKylpZigoKGU9dC5jaGFyQ29kZUF0KG4pKTw5fHxlPjEzKSYmMzIhPT1lJiYxMzMhPT1lJiYxNjAhPT1lJiY1NzYwIT09ZSYmNjE1OCE9PWUmJihlPDgxOTJ8fGU+ODIwNSkmJjgyMzIhPT1lJiY4MjMzIT09ZSYmODIzOSE9PWUmJjgyODchPT1lJiY4Mjg4IT09ZSYmMTIyODghPT1lJiY2NTI3OSE9PWUpcmV0dXJuITE7cmV0dXJuITB9fSx7fV0sNDI2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJih0PXQudHJpbSgpLCEhKC9eW216bGh2Y3NxdGFdXHMqWy0rLjAtOV1bXm1saHZ6Y3NxdGFdKy9pLnRlc3QodCkmJi9bXGR6XSQvaS50ZXN0KHQpJiZ0Lmxlbmd0aD40KSl9fSx7fV0sNDI3OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdCooMS1yKStlKnJ9fSx7fV0sNDI4OltmdW5jdGlvbih0LGUscil7dmFyIG4sYTtuPXRoaXMsYT1mdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgdCxlLHI7ZnVuY3Rpb24gbihuLGEpe2lmKHQpaWYoZSl7dmFyIGk9InZhciBzaGFyZWRDaHVuayA9IHt9OyAoIit0KyIpKHNoYXJlZENodW5rKTsgKCIrZSsiKShzaGFyZWRDaHVuayk7IixvPXt9O3QobyksKHI9YShvKSkud29ya2VyVXJsPXdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKFtpXSx7dHlwZToidGV4dC9qYXZhc2NyaXB0In0pKX1lbHNlIGU9YTtlbHNlIHQ9YX1yZXR1cm4gbigwLGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUodCxlKXtyZXR1cm4gdChlPXtleHBvcnRzOnt9fSxlLmV4cG9ydHMpLGUuZXhwb3J0c312YXIgcj1uO2Z1bmN0aW9uIG4odCxlLHIsbil7dGhpcy5jeD0zKnQsdGhpcy5ieD0zKihyLXQpLXRoaXMuY3gsdGhpcy5heD0xLXRoaXMuY3gtdGhpcy5ieCx0aGlzLmN5PTMqZSx0aGlzLmJ5PTMqKG4tZSktdGhpcy5jeSx0aGlzLmF5PTEtdGhpcy5jeS10aGlzLmJ5LHRoaXMucDF4PXQsdGhpcy5wMXk9bix0aGlzLnAyeD1yLHRoaXMucDJ5PW59bi5wcm90b3R5cGUuc2FtcGxlQ3VydmVYPWZ1bmN0aW9uKHQpe3JldHVybigodGhpcy5heCp0K3RoaXMuYngpKnQrdGhpcy5jeCkqdH0sbi5wcm90b3R5cGUuc2FtcGxlQ3VydmVZPWZ1bmN0aW9uKHQpe3JldHVybigodGhpcy5heSp0K3RoaXMuYnkpKnQrdGhpcy5jeSkqdH0sbi5wcm90b3R5cGUuc2FtcGxlQ3VydmVEZXJpdmF0aXZlWD1mdW5jdGlvbih0KXtyZXR1cm4oMyp0aGlzLmF4KnQrMip0aGlzLmJ4KSp0K3RoaXMuY3h9LG4ucHJvdG90eXBlLnNvbHZlQ3VydmVYPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixhLGksbztmb3Iodm9pZCAwPT09ZSYmKGU9MWUtNiksYT10LG89MDtvPDg7bysrKXtpZihpPXRoaXMuc2FtcGxlQ3VydmVYKGEpLXQsTWF0aC5hYnMoaSk8ZSlyZXR1cm4gYTt2YXIgcz10aGlzLnNhbXBsZUN1cnZlRGVyaXZhdGl2ZVgoYSk7aWYoTWF0aC5hYnMocyk8MWUtNilicmVhazthLT1pL3N9aWYoKGE9dCk8KHI9MCkpcmV0dXJuIHI7aWYoYT4obj0xKSlyZXR1cm4gbjtmb3IoO3I8bjspe2lmKGk9dGhpcy5zYW1wbGVDdXJ2ZVgoYSksTWF0aC5hYnMoaS10KTxlKXJldHVybiBhO3Q+aT9yPWE6bj1hLGE9LjUqKG4tcikrcn1yZXR1cm4gYX0sbi5wcm90b3R5cGUuc29sdmU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5zYW1wbGVDdXJ2ZVkodGhpcy5zb2x2ZUN1cnZlWCh0LGUpKX07dmFyIGE9aTtmdW5jdGlvbiBpKHQsZSl7dGhpcy54PXQsdGhpcy55PWV9ZnVuY3Rpb24gbyh0LGUpe2lmKEFycmF5LmlzQXJyYXkodCkpe2lmKCFBcnJheS5pc0FycmF5KGUpfHx0Lmxlbmd0aCE9PWUubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKWlmKCFvKHRbcl0sZVtyXSkpcmV0dXJuITE7cmV0dXJuITB9aWYoIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT09dCYmbnVsbCE9PWUpe2lmKCJvYmplY3QiIT10eXBlb2YgZSlyZXR1cm4hMTtpZihPYmplY3Qua2V5cyh0KS5sZW5ndGghPT1PYmplY3Qua2V5cyhlKS5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBuIGluIHQpaWYoIW8odFtuXSxlW25dKSlyZXR1cm4hMTtyZXR1cm4hMH1yZXR1cm4gdD09PWV9ZnVuY3Rpb24gcyh0LGUsbixhKXt2YXIgaT1uZXcgcih0LGUsbixhKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGkuc29sdmUodCl9fWkucHJvdG90eXBlPXtjbG9uZTpmdW5jdGlvbigpe3JldHVybiBuZXcgaSh0aGlzLngsdGhpcy55KX0sYWRkOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuX2FkZCh0KX0sc3ViOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuX3N1Yih0KX0sbXVsdEJ5UG9pbnQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5fbXVsdEJ5UG9pbnQodCl9LGRpdkJ5UG9pbnQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5fZGl2QnlQb2ludCh0KX0sbXVsdDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLl9tdWx0KHQpfSxkaXY6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5fZGl2KHQpfSxyb3RhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5fcm90YXRlKHQpfSxyb3RhdGVBcm91bmQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLl9yb3RhdGVBcm91bmQodCxlKX0sbWF0TXVsdDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLl9tYXRNdWx0KHQpfSx1bml0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5fdW5pdCgpfSxwZXJwOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5fcGVycCgpfSxyb3VuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuX3JvdW5kKCl9LG1hZzpmdW5jdGlvbigpe3JldHVybiBNYXRoLnNxcnQodGhpcy54KnRoaXMueCt0aGlzLnkqdGhpcy55KX0sZXF1YWxzOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLng9PT10LngmJnRoaXMueT09PXQueX0sZGlzdDpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5zcXJ0KHRoaXMuZGlzdFNxcih0KSl9LGRpc3RTcXI6ZnVuY3Rpb24odCl7dmFyIGU9dC54LXRoaXMueCxyPXQueS10aGlzLnk7cmV0dXJuIGUqZStyKnJ9LGFuZ2xlOmZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguYXRhbjIodGhpcy55LHRoaXMueCl9LGFuZ2xlVG86ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguYXRhbjIodGhpcy55LXQueSx0aGlzLngtdC54KX0sYW5nbGVXaXRoOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmFuZ2xlV2l0aFNlcCh0LngsdC55KX0sYW5nbGVXaXRoU2VwOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1hdGguYXRhbjIodGhpcy54KmUtdGhpcy55KnQsdGhpcy54KnQrdGhpcy55KmUpfSxfbWF0TXVsdDpmdW5jdGlvbih0KXt2YXIgZT10WzBdKnRoaXMueCt0WzFdKnRoaXMueSxyPXRbMl0qdGhpcy54K3RbM10qdGhpcy55O3JldHVybiB0aGlzLng9ZSx0aGlzLnk9cix0aGlzfSxfYWRkOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLngrPXQueCx0aGlzLnkrPXQueSx0aGlzfSxfc3ViOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLngtPXQueCx0aGlzLnktPXQueSx0aGlzfSxfbXVsdDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy54Kj10LHRoaXMueSo9dCx0aGlzfSxfZGl2OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLngvPXQsdGhpcy55Lz10LHRoaXN9LF9tdWx0QnlQb2ludDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy54Kj10LngsdGhpcy55Kj10LnksdGhpc30sX2RpdkJ5UG9pbnQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueC89dC54LHRoaXMueS89dC55LHRoaXN9LF91bml0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Rpdih0aGlzLm1hZygpKSx0aGlzfSxfcGVycDpmdW5jdGlvbigpe3ZhciB0PXRoaXMueTtyZXR1cm4gdGhpcy55PXRoaXMueCx0aGlzLng9LXQsdGhpc30sX3JvdGF0ZTpmdW5jdGlvbih0KXt2YXIgZT1NYXRoLmNvcyh0KSxyPU1hdGguc2luKHQpLG49ZSp0aGlzLngtcip0aGlzLnksYT1yKnRoaXMueCtlKnRoaXMueTtyZXR1cm4gdGhpcy54PW4sdGhpcy55PWEsdGhpc30sX3JvdGF0ZUFyb3VuZDpmdW5jdGlvbih0LGUpe3ZhciByPU1hdGguY29zKHQpLG49TWF0aC5zaW4odCksYT1lLngrcioodGhpcy54LWUueCktbioodGhpcy55LWUueSksaT1lLnkrbioodGhpcy54LWUueCkrcioodGhpcy55LWUueSk7cmV0dXJuIHRoaXMueD1hLHRoaXMueT1pLHRoaXN9LF9yb3VuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLng9TWF0aC5yb3VuZCh0aGlzLngpLHRoaXMueT1NYXRoLnJvdW5kKHRoaXMueSksdGhpc319LGkuY29udmVydD1mdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIGk/dDpBcnJheS5pc0FycmF5KHQpP25ldyBpKHRbMF0sdFsxXSk6dH07dmFyIGw9cyguMjUsLjEsLjI1LDEpO2Z1bmN0aW9uIGModCxlLHIpe3JldHVybiBNYXRoLm1pbihyLE1hdGgubWF4KGUsdCkpfWZ1bmN0aW9uIHUodCxlLHIpe3ZhciBuPXItZSxhPSgodC1lKSVuK24pJW4rZTtyZXR1cm4gYT09PWU/cjphfWZ1bmN0aW9uIGgodCl7Zm9yKHZhciBlPVtdLHI9YXJndW1lbnRzLmxlbmd0aC0xO3ItLSA+MDspZVtyXT1hcmd1bWVudHNbcisxXTtmb3IodmFyIG49MCxhPWU7bjxhLmxlbmd0aDtuKz0xKXt2YXIgaT1hW25dO2Zvcih2YXIgbyBpbiBpKXRbb109aVtvXX1yZXR1cm4gdH12YXIgZj0xO2Z1bmN0aW9uIHAoKXtyZXR1cm4gZisrfWZ1bmN0aW9uIGQoKXtyZXR1cm4gZnVuY3Rpb24gdChlKXtyZXR1cm4gZT8oZV4xNipNYXRoLnJhbmRvbSgpPj5lLzQpLnRvU3RyaW5nKDE2KTooWzFlN10rLVsxZTNdKy00ZTMrLThlMystMWUxMSkucmVwbGFjZSgvWzAxOF0vZyx0KX0oKX1mdW5jdGlvbiBnKHQpe3JldHVybiEhdCYmL15bMC05YS1mXXs4fS1bMC05YS1mXXs0fS1bNF1bMC05YS1mXXszfS1bODlhYl1bMC05YS1mXXszfS1bMC05YS1mXXsxMn0kL2kudGVzdCh0KX1mdW5jdGlvbiB2KHQsZSl7dC5mb3JFYWNoKGZ1bmN0aW9uKHQpe2VbdF0mJihlW3RdPWVbdF0uYmluZChlKSl9KX1mdW5jdGlvbiBtKHQsZSl7cmV0dXJuLTEhPT10LmluZGV4T2YoZSx0Lmxlbmd0aC1lLmxlbmd0aCl9ZnVuY3Rpb24geSh0LGUscil7dmFyIG49e307Zm9yKHZhciBhIGluIHQpblthXT1lLmNhbGwocnx8dGhpcyx0W2FdLGEsdCk7cmV0dXJuIG59ZnVuY3Rpb24geCh0LGUscil7dmFyIG49e307Zm9yKHZhciBhIGluIHQpZS5jYWxsKHJ8fHRoaXMsdFthXSxhLHQpJiYoblthXT10W2FdKTtyZXR1cm4gbn1mdW5jdGlvbiBiKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP3QubWFwKGIpOiJvYmplY3QiPT10eXBlb2YgdCYmdD95KHQsYik6dH12YXIgXz17fTtmdW5jdGlvbiB3KHQpe19bdF18fCgidW5kZWZpbmVkIiE9dHlwZW9mIGNvbnNvbGUmJmNvbnNvbGUud2Fybih0KSxfW3RdPSEwKX1mdW5jdGlvbiBrKHQsZSxyKXtyZXR1cm4oci55LXQueSkqKGUueC10LngpPihlLnktdC55KSooci54LXQueCl9ZnVuY3Rpb24gVCh0KXtmb3IodmFyIGU9MCxyPTAsbj10Lmxlbmd0aCxhPW4tMSxpPXZvaWQgMCxvPXZvaWQgMDtyPG47YT1yKyspaT10W3JdLGUrPSgobz10W2FdKS54LWkueCkqKGkueStvLnkpO3JldHVybiBlfWZ1bmN0aW9uIE0odCl7dmFyIGU9e307aWYodC5yZXBsYWNlKC8oPzpefCg/OlxzKlwsXHMqKSkoW15ceDAwLVx4MjBcKFwpPD5AXCw7XDpcXCJcL1xbXF1cP1w9XHtcfVx4N0ZdKykoPzpcPSg/OihbXlx4MDAtXHgyMFwoXCk8PkBcLDtcOlxcIlwvXFtcXVw/XD1ce1x9XHg3Rl0rKXwoPzpcIigoPzpbXiJcXF18XFwuKSopXCIpKSk/L2csZnVuY3Rpb24odCxyLG4sYSl7dmFyIGk9bnx8YTtyZXR1cm4gZVtyXT0haXx8aS50b0xvd2VyQ2FzZSgpLCIifSksZVsibWF4LWFnZSJdKXt2YXIgcj1wYXJzZUludChlWyJtYXgtYWdlIl0sMTApO2lzTmFOKHIpP2RlbGV0ZSBlWyJtYXgtYWdlIl06ZVsibWF4LWFnZSJdPXJ9cmV0dXJuIGV9ZnVuY3Rpb24gQSh0KXt0cnl7dmFyIGU9c2VsZlt0XTtyZXR1cm4gZS5zZXRJdGVtKCJfbWFwYm94X3Rlc3RfIiwxKSxlLnJlbW92ZUl0ZW0oIl9tYXBib3hfdGVzdF8iKSwhMH1jYXRjaCh0KXtyZXR1cm4hMX19dmFyIFMsRSxMLEMsUD1zZWxmLnBlcmZvcm1hbmNlJiZzZWxmLnBlcmZvcm1hbmNlLm5vdz9zZWxmLnBlcmZvcm1hbmNlLm5vdy5iaW5kKHNlbGYucGVyZm9ybWFuY2UpOkRhdGUubm93LmJpbmQoRGF0ZSksTz1zZWxmLnJlcXVlc3RBbmltYXRpb25GcmFtZXx8c2VsZi5tb3pSZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fHNlbGYud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxzZWxmLm1zUmVxdWVzdEFuaW1hdGlvbkZyYW1lLHo9c2VsZi5jYW5jZWxBbmltYXRpb25GcmFtZXx8c2VsZi5tb3pDYW5jZWxBbmltYXRpb25GcmFtZXx8c2VsZi53ZWJraXRDYW5jZWxBbmltYXRpb25GcmFtZXx8c2VsZi5tc0NhbmNlbEFuaW1hdGlvbkZyYW1lLEk9e25vdzpQLGZyYW1lOmZ1bmN0aW9uKHQpe3ZhciBlPU8odCk7cmV0dXJue2NhbmNlbDpmdW5jdGlvbigpe3JldHVybiB6KGUpfX19LGdldEltYWdlRGF0YTpmdW5jdGlvbih0KXt2YXIgZT1zZWxmLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLHI9ZS5nZXRDb250ZXh0KCIyZCIpO2lmKCFyKXRocm93IG5ldyBFcnJvcigiZmFpbGVkIHRvIGNyZWF0ZSBjYW52YXMgMmQgY29udGV4dCIpO3JldHVybiBlLndpZHRoPXQud2lkdGgsZS5oZWlnaHQ9dC5oZWlnaHQsci5kcmF3SW1hZ2UodCwwLDAsdC53aWR0aCx0LmhlaWdodCksci5nZXRJbWFnZURhdGEoMCwwLHQud2lkdGgsdC5oZWlnaHQpfSxyZXNvbHZlVVJMOmZ1bmN0aW9uKHQpe3JldHVybiBTfHwoUz1zZWxmLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSksUy5ocmVmPXQsUy5ocmVmfSxoYXJkd2FyZUNvbmN1cnJlbmN5OnNlbGYubmF2aWdhdG9yLmhhcmR3YXJlQ29uY3VycmVuY3l8fDQsZ2V0IGRldmljZVBpeGVsUmF0aW8oKXtyZXR1cm4gc2VsZi5kZXZpY2VQaXhlbFJhdGlvfSxnZXQgcHJlZmVyc1JlZHVjZWRNb3Rpb24oKXtyZXR1cm4hIXNlbGYubWF0Y2hNZWRpYSYmKG51bGw9PUUmJihFPXNlbGYubWF0Y2hNZWRpYSgiKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkiKSksRS5tYXRjaGVzKX19LEQ9e0FQSV9VUkw6Imh0dHBzOi8vYXBpLm1hcGJveC5jb20iLGdldCBFVkVOVFNfVVJMKCl7cmV0dXJuIHRoaXMuQVBJX1VSTD8wPT09dGhpcy5BUElfVVJMLmluZGV4T2YoImh0dHBzOi8vYXBpLm1hcGJveC5jbiIpPyJodHRwczovL2V2ZW50cy5tYXBib3guY24vZXZlbnRzL3YyIjowPT09dGhpcy5BUElfVVJMLmluZGV4T2YoImh0dHBzOi8vYXBpLm1hcGJveC5jb20iKT8iaHR0cHM6Ly9ldmVudHMubWFwYm94LmNvbS9ldmVudHMvdjIiOm51bGw6bnVsbH0sRkVFREJBQ0tfVVJMOiJodHRwczovL2FwcHMubWFwYm94LmNvbS9mZWVkYmFjayIsUkVRVUlSRV9BQ0NFU1NfVE9LRU46ITAsQUNDRVNTX1RPS0VOOm51bGwsTUFYX1BBUkFMTEVMX0lNQUdFX1JFUVVFU1RTOjE2fSxSPXtzdXBwb3J0ZWQ6ITEsdGVzdFN1cHBvcnQ6ZnVuY3Rpb24odCl7IUYmJkMmJihCP04odCk6TD10KX19LEY9ITEsQj0hMTtmdW5jdGlvbiBOKHQpe3ZhciBlPXQuY3JlYXRlVGV4dHVyZSgpO3QuYmluZFRleHR1cmUodC5URVhUVVJFXzJELGUpO3RyeXtpZih0LnRleEltYWdlMkQodC5URVhUVVJFXzJELDAsdC5SR0JBLHQuUkdCQSx0LlVOU0lHTkVEX0JZVEUsQyksdC5pc0NvbnRleHRMb3N0KCkpcmV0dXJuO1Iuc3VwcG9ydGVkPSEwfWNhdGNoKHQpe310LmRlbGV0ZVRleHR1cmUoZSksRj0hMH1zZWxmLmRvY3VtZW50JiYoKEM9c2VsZi5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSkub25sb2FkPWZ1bmN0aW9uKCl7TCYmTihMKSxMPW51bGwsQj0hMH0sQy5vbmVycm9yPWZ1bmN0aW9uKCl7Rj0hMCxMPW51bGx9LEMuc3JjPSJkYXRhOmltYWdlL3dlYnA7YmFzZTY0LFVrbEdSaDRBQUFCWFJVSlFWbEE0VEJFQUFBQXZBUUFBQUFmUS8vNzN2LytCaU9oL0FBQT0iKTt2YXIgaj0iMDEiLFY9ZnVuY3Rpb24odCxlKXt0aGlzLl90cmFuc2Zvcm1SZXF1ZXN0Rm49dCx0aGlzLl9jdXN0b21BY2Nlc3NUb2tlbj1lLHRoaXMuX2NyZWF0ZVNrdVRva2VuKCl9O2Z1bmN0aW9uIFUodCl7cmV0dXJuIDA9PT10LmluZGV4T2YoIm1hcGJveDoiKX1WLnByb3RvdHlwZS5fY3JlYXRlU2t1VG9rZW49ZnVuY3Rpb24oKXt2YXIgdD1mdW5jdGlvbigpe2Zvcih2YXIgdD0iIixlPTA7ZTwxMDtlKyspdCs9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIltNYXRoLmZsb29yKDYyKk1hdGgucmFuZG9tKCkpXTtyZXR1cm57dG9rZW46WyIxIixqLHRdLmpvaW4oIiIpLHRva2VuRXhwaXJlc0F0OkRhdGUubm93KCkrNDMyZTV9fSgpO3RoaXMuX3NrdVRva2VuPXQudG9rZW4sdGhpcy5fc2t1VG9rZW5FeHBpcmVzQXQ9dC50b2tlbkV4cGlyZXNBdH0sVi5wcm90b3R5cGUuX2lzU2t1VG9rZW5FeHBpcmVkPWZ1bmN0aW9uKCl7cmV0dXJuIERhdGUubm93KCk+dGhpcy5fc2t1VG9rZW5FeHBpcmVzQXR9LFYucHJvdG90eXBlLnRyYW5zZm9ybVJlcXVlc3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fdHJhbnNmb3JtUmVxdWVzdEZuJiZ0aGlzLl90cmFuc2Zvcm1SZXF1ZXN0Rm4odCxlKXx8e3VybDp0fX0sVi5wcm90b3R5cGUubm9ybWFsaXplU3R5bGVVUkw9ZnVuY3Rpb24odCxlKXtpZighVSh0KSlyZXR1cm4gdDt2YXIgcj1ZKHQpO3JldHVybiByLnBhdGg9Ii9zdHlsZXMvdjEiK3IucGF0aCx0aGlzLl9tYWtlQVBJVVJMKHIsdGhpcy5fY3VzdG9tQWNjZXNzVG9rZW58fGUpfSxWLnByb3RvdHlwZS5ub3JtYWxpemVHbHlwaHNVUkw9ZnVuY3Rpb24odCxlKXtpZighVSh0KSlyZXR1cm4gdDt2YXIgcj1ZKHQpO3JldHVybiByLnBhdGg9Ii9mb250cy92MSIrci5wYXRoLHRoaXMuX21ha2VBUElVUkwocix0aGlzLl9jdXN0b21BY2Nlc3NUb2tlbnx8ZSl9LFYucHJvdG90eXBlLm5vcm1hbGl6ZVNvdXJjZVVSTD1mdW5jdGlvbih0LGUpe2lmKCFVKHQpKXJldHVybiB0O3ZhciByPVkodCk7cmV0dXJuIHIucGF0aD0iL3Y0LyIrci5hdXRob3JpdHkrIi5qc29uIixyLnBhcmFtcy5wdXNoKCJzZWN1cmUiKSx0aGlzLl9tYWtlQVBJVVJMKHIsdGhpcy5fY3VzdG9tQWNjZXNzVG9rZW58fGUpfSxWLnByb3RvdHlwZS5ub3JtYWxpemVTcHJpdGVVUkw9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9WSh0KTtyZXR1cm4gVSh0KT8oYS5wYXRoPSIvc3R5bGVzL3YxIithLnBhdGgrIi9zcHJpdGUiK2Urcix0aGlzLl9tYWtlQVBJVVJMKGEsdGhpcy5fY3VzdG9tQWNjZXNzVG9rZW58fG4pKTooYS5wYXRoKz0iIitlK3IsVyhhKSl9LFYucHJvdG90eXBlLm5vcm1hbGl6ZVRpbGVVUkw9ZnVuY3Rpb24odCxlLHIpe2lmKHRoaXMuX2lzU2t1VG9rZW5FeHBpcmVkKCkmJnRoaXMuX2NyZWF0ZVNrdVRva2VuKCksIWV8fCFVKGUpKXJldHVybiB0O3ZhciBuPVkodCksYT1JLmRldmljZVBpeGVsUmF0aW8+PTJ8fDUxMj09PXI/IkAyeCI6IiIsaT1SLnN1cHBvcnRlZD8iLndlYnAiOiIkMSI7cmV0dXJuIG4ucGF0aD1uLnBhdGgucmVwbGFjZSgvKFwuKHBuZ3xqcGcpXGQqKSg/PSQpLywiIithK2kpLG4ucGF0aD1uLnBhdGgucmVwbGFjZSgvXi4rXC92NFwvLywiLyIpLG4ucGF0aD0iL3Y0IituLnBhdGgsRC5SRVFVSVJFX0FDQ0VTU19UT0tFTiYmKEQuQUNDRVNTX1RPS0VOfHx0aGlzLl9jdXN0b21BY2Nlc3NUb2tlbikmJnRoaXMuX3NrdVRva2VuJiZuLnBhcmFtcy5wdXNoKCJza3U9Iit0aGlzLl9za3VUb2tlbiksdGhpcy5fbWFrZUFQSVVSTChuLHRoaXMuX2N1c3RvbUFjY2Vzc1Rva2VuKX0sVi5wcm90b3R5cGUuY2Fub25pY2FsaXplVGlsZVVSTD1mdW5jdGlvbih0KXt2YXIgZT1ZKHQpO2lmKCFlLnBhdGgubWF0Y2goLyheXC92NFwvKS8pfHwhZS5wYXRoLm1hdGNoKC9cLltcd10rJC8pKXJldHVybiB0O3ZhciByPSJtYXBib3g6Ly90aWxlcy8iO3IrPWUucGF0aC5yZXBsYWNlKCIvdjQvIiwiIik7dmFyIG49ZS5wYXJhbXMuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiF0Lm1hdGNoKC9eYWNjZXNzX3Rva2VuPS8pfSk7cmV0dXJuIG4ubGVuZ3RoJiYocis9Ij8iK24uam9pbigiJiIpKSxyfSxWLnByb3RvdHlwZS5jYW5vbmljYWxpemVUaWxlc2V0PWZ1bmN0aW9uKHQsZSl7aWYoIVUoZSkpcmV0dXJuIHQudGlsZXN8fFtdO2Zvcih2YXIgcj1bXSxuPTAsYT10LnRpbGVzO248YS5sZW5ndGg7bis9MSl7dmFyIGk9YVtuXSxvPXRoaXMuY2Fub25pY2FsaXplVGlsZVVSTChpKTtyLnB1c2gobyl9cmV0dXJuIHJ9LFYucHJvdG90eXBlLl9tYWtlQVBJVVJMPWZ1bmN0aW9uKHQsZSl7dmFyIHI9IlNlZSBodHRwczovL3d3dy5tYXBib3guY29tL2FwaS1kb2N1bWVudGF0aW9uLyNhY2Nlc3MtdG9rZW5zLWFuZC10b2tlbi1zY29wZXMiLG49WShELkFQSV9VUkwpO2lmKHQucHJvdG9jb2w9bi5wcm90b2NvbCx0LmF1dGhvcml0eT1uLmF1dGhvcml0eSwiLyIhPT1uLnBhdGgmJih0LnBhdGg9IiIrbi5wYXRoK3QucGF0aCksIUQuUkVRVUlSRV9BQ0NFU1NfVE9LRU4pcmV0dXJuIFcodCk7aWYoIShlPWV8fEQuQUNDRVNTX1RPS0VOKSl0aHJvdyBuZXcgRXJyb3IoIkFuIEFQSSBhY2Nlc3MgdG9rZW4gaXMgcmVxdWlyZWQgdG8gdXNlIE1hcGJveCBHTC4gIityKTtpZigicyI9PT1lWzBdKXRocm93IG5ldyBFcnJvcigiVXNlIGEgcHVibGljIGFjY2VzcyB0b2tlbiAocGsuKikgd2l0aCBNYXBib3ggR0wsIG5vdCBhIHNlY3JldCBhY2Nlc3MgdG9rZW4gKHNrLiopLiAiK3IpO3JldHVybiB0LnBhcmFtcz10LnBhcmFtcy5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuLTE9PT10LmluZGV4T2YoImFjY2Vzc190b2tlbiIpfSksdC5wYXJhbXMucHVzaCgiYWNjZXNzX3Rva2VuPSIrZSksVyh0KX07dmFyIHE9L14oKGh0dHBzPzopP1wvXC8pPyhbXlwvXStcLik/bWFwYm94XC5jKG58b20pKFwvfFw/fCQpL2k7ZnVuY3Rpb24gSCh0KXtyZXR1cm4gcS50ZXN0KHQpfXZhciBHPS9eKFx3Kyk6XC9cLyhbXlwvP10qKShcL1teP10rKT9cPz8oLispPy87ZnVuY3Rpb24gWSh0KXt2YXIgZT10Lm1hdGNoKEcpO2lmKCFlKXRocm93IG5ldyBFcnJvcigiVW5hYmxlIHRvIHBhcnNlIFVSTCBvYmplY3QiKTtyZXR1cm57cHJvdG9jb2w6ZVsxXSxhdXRob3JpdHk6ZVsyXSxwYXRoOmVbM118fCIvIixwYXJhbXM6ZVs0XT9lWzRdLnNwbGl0KCImIik6W119fWZ1bmN0aW9uIFcodCl7dmFyIGU9dC5wYXJhbXMubGVuZ3RoPyI/Iit0LnBhcmFtcy5qb2luKCImIik6IiI7cmV0dXJuIHQucHJvdG9jb2wrIjovLyIrdC5hdXRob3JpdHkrdC5wYXRoK2V9ZnVuY3Rpb24gWCh0KXtpZighdClyZXR1cm4gbnVsbDt2YXIgZSxyPXQuc3BsaXQoIi4iKTtpZighcnx8MyE9PXIubGVuZ3RoKXJldHVybiBudWxsO3RyeXtyZXR1cm4gSlNPTi5wYXJzZSgoZT1yWzFdLGRlY29kZVVSSUNvbXBvbmVudChzZWxmLmF0b2IoZSkuc3BsaXQoIiIpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4iJSIrKCIwMCIrdC5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpfSkuam9pbigiIikpKSl9Y2F0Y2godCl7cmV0dXJuIG51bGx9fXZhciBaPWZ1bmN0aW9uKHQpe3RoaXMudHlwZT10LHRoaXMuYW5vbklkPW51bGwsdGhpcy5ldmVudERhdGE9e30sdGhpcy5xdWV1ZT1bXSx0aGlzLnBlbmRpbmdSZXF1ZXN0PW51bGx9O1oucHJvdG90eXBlLmdldFN0b3JhZ2VLZXk9ZnVuY3Rpb24odCl7dmFyIGUscj1YKEQuQUNDRVNTX1RPS0VOKSxuPSIiO3JldHVybiByJiZyLnU/KGU9ci51LG49c2VsZi5idG9hKGVuY29kZVVSSUNvbXBvbmVudChlKS5yZXBsYWNlKC8lKFswLTlBLUZdezJ9KS9nLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoTnVtYmVyKCIweCIrZSkpfSkpKTpuPUQuQUNDRVNTX1RPS0VOfHwiIix0PyJtYXBib3guZXZlbnREYXRhLiIrdCsiOiIrbjoibWFwYm94LmV2ZW50RGF0YToiK259LFoucHJvdG90eXBlLmZldGNoRXZlbnREYXRhPWZ1bmN0aW9uKCl7dmFyIHQ9QSgibG9jYWxTdG9yYWdlIiksZT10aGlzLmdldFN0b3JhZ2VLZXkoKSxyPXRoaXMuZ2V0U3RvcmFnZUtleSgidXVpZCIpO2lmKHQpdHJ5e3ZhciBuPXNlbGYubG9jYWxTdG9yYWdlLmdldEl0ZW0oZSk7biYmKHRoaXMuZXZlbnREYXRhPUpTT04ucGFyc2UobikpO3ZhciBhPXNlbGYubG9jYWxTdG9yYWdlLmdldEl0ZW0ocik7YSYmKHRoaXMuYW5vbklkPWEpfWNhdGNoKHQpe3coIlVuYWJsZSB0byByZWFkIGZyb20gTG9jYWxTdG9yYWdlIil9fSxaLnByb3RvdHlwZS5zYXZlRXZlbnREYXRhPWZ1bmN0aW9uKCl7dmFyIHQ9QSgibG9jYWxTdG9yYWdlIiksZT10aGlzLmdldFN0b3JhZ2VLZXkoKSxyPXRoaXMuZ2V0U3RvcmFnZUtleSgidXVpZCIpO2lmKHQpdHJ5e3NlbGYubG9jYWxTdG9yYWdlLnNldEl0ZW0ocix0aGlzLmFub25JZCksT2JqZWN0LmtleXModGhpcy5ldmVudERhdGEpLmxlbmd0aD49MSYmc2VsZi5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShlLEpTT04uc3RyaW5naWZ5KHRoaXMuZXZlbnREYXRhKSl9Y2F0Y2godCl7dygiVW5hYmxlIHRvIHdyaXRlIHRvIExvY2FsU3RvcmFnZSIpfX0sWi5wcm90b3R5cGUucHJvY2Vzc1JlcXVlc3RzPWZ1bmN0aW9uKHQpe30sWi5wcm90b3R5cGUucG9zdEV2ZW50PWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPXRoaXM7aWYoRC5FVkVOVFNfVVJMKXt2YXIgaT1ZKEQuRVZFTlRTX1VSTCk7aS5wYXJhbXMucHVzaCgiYWNjZXNzX3Rva2VuPSIrKG58fEQuQUNDRVNTX1RPS0VOfHwiIikpO3ZhciBvPXtldmVudDp0aGlzLnR5cGUsY3JlYXRlZDpuZXcgRGF0ZSh0KS50b0lTT1N0cmluZygpLHNka0lkZW50aWZpZXI6Im1hcGJveC1nbC1qcyIsc2RrVmVyc2lvbjoiMS4zLjIiLHNrdUlkOmosdXNlcklkOnRoaXMuYW5vbklkfSxzPWU/aChvLGUpOm8sbD17dXJsOlcoaSksaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6InRleHQvcGxhaW4ifSxib2R5OkpTT04uc3RyaW5naWZ5KFtzXSl9O3RoaXMucGVuZGluZ1JlcXVlc3Q9bXQobCxmdW5jdGlvbih0KXthLnBlbmRpbmdSZXF1ZXN0PW51bGwscih0KSxhLnNhdmVFdmVudERhdGEoKSxhLnByb2Nlc3NSZXF1ZXN0cyhuKX0pfX0sWi5wcm90b3R5cGUucXVldWVSZXF1ZXN0PWZ1bmN0aW9uKHQsZSl7dGhpcy5xdWV1ZS5wdXNoKHQpLHRoaXMucHJvY2Vzc1JlcXVlc3RzKGUpfTt2YXIgSixLPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmNhbGwodGhpcywibWFwLmxvYWQiKSx0aGlzLnN1Y2Nlc3M9e30sdGhpcy5za3VUb2tlbj0iIn1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUucG9zdE1hcExvYWRFdmVudD1mdW5jdGlvbih0LGUscixuKXt0aGlzLnNrdVRva2VuPXIsKEQuRVZFTlRTX1VSTCYmbnx8RC5BQ0NFU1NfVE9LRU4mJkFycmF5LmlzQXJyYXkodCkmJnQuc29tZShmdW5jdGlvbih0KXtyZXR1cm4gVSh0KXx8SCh0KX0pKSYmdGhpcy5xdWV1ZVJlcXVlc3Qoe2lkOmUsdGltZXN0YW1wOkRhdGUubm93KCl9LG4pfSxlLnByb3RvdHlwZS5wcm9jZXNzUmVxdWVzdHM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZighdGhpcy5wZW5kaW5nUmVxdWVzdCYmMCE9PXRoaXMucXVldWUubGVuZ3RoKXt2YXIgcj10aGlzLnF1ZXVlLnNoaWZ0KCksbj1yLmlkLGE9ci50aW1lc3RhbXA7biYmdGhpcy5zdWNjZXNzW25dfHwodGhpcy5hbm9uSWR8fHRoaXMuZmV0Y2hFdmVudERhdGEoKSxnKHRoaXMuYW5vbklkKXx8KHRoaXMuYW5vbklkPWQoKSksdGhpcy5wb3N0RXZlbnQoYSx7c2t1VG9rZW46dGhpcy5za3VUb2tlbn0sZnVuY3Rpb24odCl7dHx8biYmKGUuc3VjY2Vzc1tuXT0hMCl9LHQpKX19LGV9KFopLFE9bmV3KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dC5jYWxsKHRoaXMsImFwcFVzZXJUdXJuc3RpbGUiKSx0aGlzLl9jdXN0b21BY2Nlc3NUb2tlbj1lfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5wb3N0VHVybnN0aWxlRXZlbnQ9ZnVuY3Rpb24odCxlKXtELkVWRU5UU19VUkwmJkQuQUNDRVNTX1RPS0VOJiZBcnJheS5pc0FycmF5KHQpJiZ0LnNvbWUoZnVuY3Rpb24odCl7cmV0dXJuIFUodCl8fEgodCl9KSYmdGhpcy5xdWV1ZVJlcXVlc3QoRGF0ZS5ub3coKSxlKX0sZS5wcm90b3R5cGUucHJvY2Vzc1JlcXVlc3RzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYoIXRoaXMucGVuZGluZ1JlcXVlc3QmJjAhPT10aGlzLnF1ZXVlLmxlbmd0aCl7dGhpcy5hbm9uSWQmJnRoaXMuZXZlbnREYXRhLmxhc3RTdWNjZXNzJiZ0aGlzLmV2ZW50RGF0YS50b2tlblV8fHRoaXMuZmV0Y2hFdmVudERhdGEoKTt2YXIgcj1YKEQuQUNDRVNTX1RPS0VOKSxuPXI/ci51OkQuQUNDRVNTX1RPS0VOLGE9biE9PXRoaXMuZXZlbnREYXRhLnRva2VuVTtnKHRoaXMuYW5vbklkKXx8KHRoaXMuYW5vbklkPWQoKSxhPSEwKTt2YXIgaT10aGlzLnF1ZXVlLnNoaWZ0KCk7aWYodGhpcy5ldmVudERhdGEubGFzdFN1Y2Nlc3Mpe3ZhciBvPW5ldyBEYXRlKHRoaXMuZXZlbnREYXRhLmxhc3RTdWNjZXNzKSxzPW5ldyBEYXRlKGkpLGw9KGktdGhpcy5ldmVudERhdGEubGFzdFN1Y2Nlc3MpLzg2NGU1O2E9YXx8bD49MXx8bDwtMXx8by5nZXREYXRlKCkhPT1zLmdldERhdGUoKX1lbHNlIGE9ITA7aWYoIWEpcmV0dXJuIHRoaXMucHJvY2Vzc1JlcXVlc3RzKCk7dGhpcy5wb3N0RXZlbnQoaSx7ImVuYWJsZWQudGVsZW1ldHJ5IjohMX0sZnVuY3Rpb24odCl7dHx8KGUuZXZlbnREYXRhLmxhc3RTdWNjZXNzPWksZS5ldmVudERhdGEudG9rZW5VPW4pfSx0KX19LGV9KFopKSwkPVEucG9zdFR1cm5zdGlsZUV2ZW50LmJpbmQoUSksdHQ9bmV3IEssZXQ9dHQucG9zdE1hcExvYWRFdmVudC5iaW5kKHR0KSxydD0ibWFwYm94LXRpbGVzIixudD01MDAsYXQ9NTAsaXQ9NDJlNDtmdW5jdGlvbiBvdCh0KXt2YXIgZT10LmluZGV4T2YoIj8iKTtyZXR1cm4gZTwwP3Q6dC5zbGljZSgwLGUpfXZhciBzdD0xLzAsbHQ9e1Vua25vd246IlVua25vd24iLFN0eWxlOiJTdHlsZSIsU291cmNlOiJTb3VyY2UiLFRpbGU6IlRpbGUiLEdseXBoczoiR2x5cGhzIixTcHJpdGVJbWFnZToiU3ByaXRlSW1hZ2UiLFNwcml0ZUpTT046IlNwcml0ZUpTT04iLEltYWdlOiJJbWFnZSJ9OyJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZnJlZXplJiZPYmplY3QuZnJlZXplKGx0KTt2YXIgY3Q9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLHIsbil7NDAxPT09ciYmSChuKSYmKGUrPSI6IHlvdSBtYXkgaGF2ZSBwcm92aWRlZCBhbiBpbnZhbGlkIE1hcGJveCBhY2Nlc3MgdG9rZW4uIFNlZSBodHRwczovL3d3dy5tYXBib3guY29tL2FwaS1kb2N1bWVudGF0aW9uLyNhY2Nlc3MtdG9rZW5zLWFuZC10b2tlbi1zY29wZXMiKSx0LmNhbGwodGhpcyxlKSx0aGlzLnN0YXR1cz1yLHRoaXMudXJsPW4sdGhpcy5uYW1lPXRoaXMuY29uc3RydWN0b3IubmFtZSx0aGlzLm1lc3NhZ2U9ZX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uYW1lKyI6ICIrdGhpcy5tZXNzYWdlKyIgKCIrdGhpcy5zdGF0dXMrIik6ICIrdGhpcy51cmx9LGV9KEVycm9yKTtmdW5jdGlvbiB1dCgpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGUmJiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlfXZhciBodD11dCgpP2Z1bmN0aW9uKCl7cmV0dXJuIHNlbGYud29ya2VyJiZzZWxmLndvcmtlci5yZWZlcnJlcn06ZnVuY3Rpb24oKXtyZXR1cm4oImJsb2I6Ij09PXNlbGYubG9jYXRpb24ucHJvdG9jb2w/c2VsZi5wYXJlbnQ6c2VsZikubG9jYXRpb24uaHJlZn07ZnVuY3Rpb24gZnQodCxlKXt2YXIgcixuPW5ldyBzZWxmLkFib3J0Q29udHJvbGxlcixhPW5ldyBzZWxmLlJlcXVlc3QodC51cmwse21ldGhvZDp0Lm1ldGhvZHx8IkdFVCIsYm9keTp0LmJvZHksY3JlZGVudGlhbHM6dC5jcmVkZW50aWFscyxoZWFkZXJzOnQuaGVhZGVycyxyZWZlcnJlcjpodCgpLHNpZ25hbDpuLnNpZ25hbH0pLGk9ITEsbz0hMSxzPShyPWEudXJsKS5pbmRleE9mKCJza3U9Iik+MCYmSChyKTsianNvbiI9PT10LnR5cGUmJmEuaGVhZGVycy5zZXQoIkFjY2VwdCIsImFwcGxpY2F0aW9uL2pzb24iKTt2YXIgbD1mdW5jdGlvbihyLG4saSl7aWYoIW8pe2lmKHImJiJTZWN1cml0eUVycm9yIiE9PXIubWVzc2FnZSYmdyhyKSxuJiZpKXJldHVybiBjKG4pO3ZhciBsPURhdGUubm93KCk7c2VsZi5mZXRjaChhKS50aGVuKGZ1bmN0aW9uKHIpe2lmKHIub2spe3ZhciBuPXM/ci5jbG9uZSgpOm51bGw7cmV0dXJuIGMocixuLGwpfXJldHVybiBlKG5ldyBjdChyLnN0YXR1c1RleHQsci5zdGF0dXMsdC51cmwpKX0pLmNhdGNoKGZ1bmN0aW9uKHQpezIwIT09dC5jb2RlJiZlKG5ldyBFcnJvcih0Lm1lc3NhZ2UpKX0pfX0sYz1mdW5jdGlvbihyLG4scyl7KCJhcnJheUJ1ZmZlciI9PT10LnR5cGU/ci5hcnJheUJ1ZmZlcigpOiJqc29uIj09PXQudHlwZT9yLmpzb24oKTpyLnRleHQoKSkudGhlbihmdW5jdGlvbih0KXtvfHwobiYmcyYmZnVuY3Rpb24odCxlLHIpe2lmKHNlbGYuY2FjaGVzKXt2YXIgbj17c3RhdHVzOmUuc3RhdHVzLHN0YXR1c1RleHQ6ZS5zdGF0dXNUZXh0LGhlYWRlcnM6bmV3IHNlbGYuSGVhZGVyc307ZS5oZWFkZXJzLmZvckVhY2goZnVuY3Rpb24odCxlKXtyZXR1cm4gbi5oZWFkZXJzLnNldChlLHQpfSk7dmFyIGE9TShlLmhlYWRlcnMuZ2V0KCJDYWNoZS1Db250cm9sIil8fCIiKTthWyJuby1zdG9yZSJdfHwoYVsibWF4LWFnZSJdJiZuLmhlYWRlcnMuc2V0KCJFeHBpcmVzIixuZXcgRGF0ZShyKzFlMyphWyJtYXgtYWdlIl0pLnRvVVRDU3RyaW5nKCkpLG5ldyBEYXRlKG4uaGVhZGVycy5nZXQoIkV4cGlyZXMiKSkuZ2V0VGltZSgpLXI8aXR8fGZ1bmN0aW9uKHQsZSl7aWYodm9pZCAwPT09Sil0cnl7bmV3IFJlc3BvbnNlKG5ldyBSZWFkYWJsZVN0cmVhbSksSj0hMH1jYXRjaCh0KXtKPSExfUo/ZSh0LmJvZHkpOnQuYmxvYigpLnRoZW4oZSl9KGUsZnVuY3Rpb24oZSl7dmFyIHI9bmV3IHNlbGYuUmVzcG9uc2UoZSxuKTtzZWxmLmNhY2hlcy5vcGVuKHJ0KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLnB1dChvdCh0LnVybCkscil9KS5jYXRjaChmdW5jdGlvbih0KXtyZXR1cm4gdyh0Lm1lc3NhZ2UpfSl9KSl9fShhLG4scyksaT0hMCxlKG51bGwsdCxyLmhlYWRlcnMuZ2V0KCJDYWNoZS1Db250cm9sIiksci5oZWFkZXJzLmdldCgiRXhwaXJlcyIpKSl9KS5jYXRjaChmdW5jdGlvbih0KXtyZXR1cm4gZShuZXcgRXJyb3IodC5tZXNzYWdlKSl9KX07cmV0dXJuIHM/ZnVuY3Rpb24odCxlKXtpZighc2VsZi5jYWNoZXMpcmV0dXJuIGUobnVsbCk7dmFyIHI9b3QodC51cmwpO3NlbGYuY2FjaGVzLm9wZW4ocnQpLnRoZW4oZnVuY3Rpb24odCl7dC5tYXRjaChyKS50aGVuKGZ1bmN0aW9uKG4pe3ZhciBhPWZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiExO3ZhciBlPW5ldyBEYXRlKHQuaGVhZGVycy5nZXQoIkV4cGlyZXMiKSkscj1NKHQuaGVhZGVycy5nZXQoIkNhY2hlLUNvbnRyb2wiKXx8IiIpO3JldHVybiBlPkRhdGUubm93KCkmJiFyWyJuby1jYWNoZSJdfShuKTt0LmRlbGV0ZShyKSxhJiZ0LnB1dChyLG4uY2xvbmUoKSksZShudWxsLG4sYSl9KS5jYXRjaChlKX0pLmNhdGNoKGUpfShhLGwpOmwobnVsbCxudWxsKSx7Y2FuY2VsOmZ1bmN0aW9uKCl7bz0hMCxpfHxuLmFib3J0KCl9fX12YXIgcHQsZHQsZ3Q9ZnVuY3Rpb24odCxlKXtpZihyPXQudXJsLCEoL15maWxlOi8udGVzdChyKXx8L15maWxlOi8udGVzdChodCgpKSYmIS9eXHcrOi8udGVzdChyKSkpe2lmKHNlbGYuZmV0Y2gmJnNlbGYuUmVxdWVzdCYmc2VsZi5BYm9ydENvbnRyb2xsZXImJnNlbGYuUmVxdWVzdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoInNpZ25hbCIpKXJldHVybiBmdCh0LGUpO2lmKHV0KCkmJnNlbGYud29ya2VyJiZzZWxmLndvcmtlci5hY3RvcilyZXR1cm4gc2VsZi53b3JrZXIuYWN0b3Iuc2VuZCgiZ2V0UmVzb3VyY2UiLHQsZSl9dmFyIHI7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7dmFyIHI9bmV3IHNlbGYuWE1MSHR0cFJlcXVlc3Q7Zm9yKHZhciBuIGluIHIub3Blbih0Lm1ldGhvZHx8IkdFVCIsdC51cmwsITApLCJhcnJheUJ1ZmZlciI9PT10LnR5cGUmJihyLnJlc3BvbnNlVHlwZT0iYXJyYXlidWZmZXIiKSx0LmhlYWRlcnMpci5zZXRSZXF1ZXN0SGVhZGVyKG4sdC5oZWFkZXJzW25dKTtyZXR1cm4ianNvbiI9PT10LnR5cGUmJihyLnJlc3BvbnNlVHlwZT0idGV4dCIsci5zZXRSZXF1ZXN0SGVhZGVyKCJBY2NlcHQiLCJhcHBsaWNhdGlvbi9qc29uIikpLHIud2l0aENyZWRlbnRpYWxzPSJpbmNsdWRlIj09PXQuY3JlZGVudGlhbHMsci5vbmVycm9yPWZ1bmN0aW9uKCl7ZShuZXcgRXJyb3Ioci5zdGF0dXNUZXh0KSl9LHIub25sb2FkPWZ1bmN0aW9uKCl7aWYoKHIuc3RhdHVzPj0yMDAmJnIuc3RhdHVzPDMwMHx8MD09PXIuc3RhdHVzKSYmbnVsbCE9PXIucmVzcG9uc2Upe3ZhciBuPXIucmVzcG9uc2U7aWYoImpzb24iPT09dC50eXBlKXRyeXtuPUpTT04ucGFyc2Uoci5yZXNwb25zZSl9Y2F0Y2godCl7cmV0dXJuIGUodCl9ZShudWxsLG4sci5nZXRSZXNwb25zZUhlYWRlcigiQ2FjaGUtQ29udHJvbCIpLHIuZ2V0UmVzcG9uc2VIZWFkZXIoIkV4cGlyZXMiKSl9ZWxzZSBlKG5ldyBjdChyLnN0YXR1c1RleHQsci5zdGF0dXMsdC51cmwpKX0sci5zZW5kKHQuYm9keSkse2NhbmNlbDpmdW5jdGlvbigpe3JldHVybiByLmFib3J0KCl9fX0odCxlKX0sdnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3QoaCh0LHt0eXBlOiJhcnJheUJ1ZmZlciJ9KSxlKX0sbXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3QoaCh0LHttZXRob2Q6IlBPU1QifSksZSl9O3B0PVtdLGR0PTA7dmFyIHl0PWZ1bmN0aW9uKHQsZSl7aWYoZHQ+PUQuTUFYX1BBUkFMTEVMX0lNQUdFX1JFUVVFU1RTKXt2YXIgcj17cmVxdWVzdFBhcmFtZXRlcnM6dCxjYWxsYmFjazplLGNhbmNlbGxlZDohMSxjYW5jZWw6ZnVuY3Rpb24oKXt0aGlzLmNhbmNlbGxlZD0hMH19O3JldHVybiBwdC5wdXNoKHIpLHJ9ZHQrKzt2YXIgbj0hMSxhPWZ1bmN0aW9uKCl7aWYoIW4pZm9yKG49ITAsZHQtLTtwdC5sZW5ndGgmJmR0PEQuTUFYX1BBUkFMTEVMX0lNQUdFX1JFUVVFU1RTOyl7dmFyIHQ9cHQuc2hpZnQoKSxlPXQucmVxdWVzdFBhcmFtZXRlcnMscj10LmNhbGxiYWNrO3QuY2FuY2VsbGVkfHwodC5jYW5jZWw9eXQoZSxyKS5jYW5jZWwpfX0saT12dCh0LGZ1bmN0aW9uKHQscixuLGkpe2lmKGEoKSx0KWUodCk7ZWxzZSBpZihyKXt2YXIgbz1uZXcgc2VsZi5JbWFnZSxzPXNlbGYuVVJMfHxzZWxmLndlYmtpdFVSTDtvLm9ubG9hZD1mdW5jdGlvbigpe2UobnVsbCxvKSxzLnJldm9rZU9iamVjdFVSTChvLnNyYyl9LG8ub25lcnJvcj1mdW5jdGlvbigpe3JldHVybiBlKG5ldyBFcnJvcigiQ291bGQgbm90IGxvYWQgaW1hZ2UuIFBsZWFzZSBtYWtlIHN1cmUgdG8gdXNlIGEgc3VwcG9ydGVkIGltYWdlIHR5cGUgc3VjaCBhcyBQTkcgb3IgSlBFRy4gTm90ZSB0aGF0IFNWR3MgYXJlIG5vdCBzdXBwb3J0ZWQuIikpfTt2YXIgbD1uZXcgc2VsZi5CbG9iKFtuZXcgVWludDhBcnJheShyKV0se3R5cGU6ImltYWdlL3BuZyJ9KTtvLmNhY2hlQ29udHJvbD1uLG8uZXhwaXJlcz1pLG8uc3JjPXIuYnl0ZUxlbmd0aD9zLmNyZWF0ZU9iamVjdFVSTChsKToiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBRUFBQUFCQ0FZQUFBQWZGY1NKQUFBQUMwbEVRVlFZVjJOZ0FBSUFBQVVBQWFyVnlGRUFBQUFBU1VWT1JLNUNZSUk9In19KTtyZXR1cm57Y2FuY2VsOmZ1bmN0aW9uKCl7aS5jYW5jZWwoKSxhKCl9fX07ZnVuY3Rpb24geHQodCxlLHIpe3JbdF0mJi0xIT09clt0XS5pbmRleE9mKGUpfHwoclt0XT1yW3RdfHxbXSxyW3RdLnB1c2goZSkpfWZ1bmN0aW9uIGJ0KHQsZSxyKXtpZihyJiZyW3RdKXt2YXIgbj1yW3RdLmluZGV4T2YoZSk7LTEhPT1uJiZyW3RdLnNwbGljZShuLDEpfX12YXIgX3Q9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSksaCh0aGlzLGUpLHRoaXMudHlwZT10fSx3dD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUscil7dm9pZCAwPT09ciYmKHI9e30pLHQuY2FsbCh0aGlzLCJlcnJvciIsaCh7ZXJyb3I6ZX0scikpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlfShfdCksa3Q9ZnVuY3Rpb24oKXt9O2t0LnByb3RvdHlwZS5vbj1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9saXN0ZW5lcnM9dGhpcy5fbGlzdGVuZXJzfHx7fSx4dCh0LGUsdGhpcy5fbGlzdGVuZXJzKSx0aGlzfSxrdC5wcm90b3R5cGUub2ZmPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGJ0KHQsZSx0aGlzLl9saXN0ZW5lcnMpLGJ0KHQsZSx0aGlzLl9vbmVUaW1lTGlzdGVuZXJzKSx0aGlzfSxrdC5wcm90b3R5cGUub25jZT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9vbmVUaW1lTGlzdGVuZXJzPXRoaXMuX29uZVRpbWVMaXN0ZW5lcnN8fHt9LHh0KHQsZSx0aGlzLl9vbmVUaW1lTGlzdGVuZXJzKSx0aGlzfSxrdC5wcm90b3R5cGUuZmlyZT1mdW5jdGlvbih0LGUpeyJzdHJpbmciPT10eXBlb2YgdCYmKHQ9bmV3IF90KHQsZXx8e30pKTt2YXIgcj10LnR5cGU7aWYodGhpcy5saXN0ZW5zKHIpKXt0LnRhcmdldD10aGlzO2Zvcih2YXIgbj0wLGE9dGhpcy5fbGlzdGVuZXJzJiZ0aGlzLl9saXN0ZW5lcnNbcl0/dGhpcy5fbGlzdGVuZXJzW3JdLnNsaWNlKCk6W107bjxhLmxlbmd0aDtuKz0xKWFbbl0uY2FsbCh0aGlzLHQpO2Zvcih2YXIgaT0wLG89dGhpcy5fb25lVGltZUxpc3RlbmVycyYmdGhpcy5fb25lVGltZUxpc3RlbmVyc1tyXT90aGlzLl9vbmVUaW1lTGlzdGVuZXJzW3JdLnNsaWNlKCk6W107aTxvLmxlbmd0aDtpKz0xKXt2YXIgcz1vW2ldO2J0KHIscyx0aGlzLl9vbmVUaW1lTGlzdGVuZXJzKSxzLmNhbGwodGhpcyx0KX12YXIgbD10aGlzLl9ldmVudGVkUGFyZW50O2wmJihoKHQsImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMuX2V2ZW50ZWRQYXJlbnREYXRhP3RoaXMuX2V2ZW50ZWRQYXJlbnREYXRhKCk6dGhpcy5fZXZlbnRlZFBhcmVudERhdGEpLGwuZmlyZSh0KSl9ZWxzZSB0IGluc3RhbmNlb2Ygd3QmJmNvbnNvbGUuZXJyb3IodC5lcnJvcik7cmV0dXJuIHRoaXN9LGt0LnByb3RvdHlwZS5saXN0ZW5zPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9saXN0ZW5lcnMmJnRoaXMuX2xpc3RlbmVyc1t0XSYmdGhpcy5fbGlzdGVuZXJzW3RdLmxlbmd0aD4wfHx0aGlzLl9vbmVUaW1lTGlzdGVuZXJzJiZ0aGlzLl9vbmVUaW1lTGlzdGVuZXJzW3RdJiZ0aGlzLl9vbmVUaW1lTGlzdGVuZXJzW3RdLmxlbmd0aD4wfHx0aGlzLl9ldmVudGVkUGFyZW50JiZ0aGlzLl9ldmVudGVkUGFyZW50Lmxpc3RlbnModCl9LGt0LnByb3RvdHlwZS5zZXRFdmVudGVkUGFyZW50PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX2V2ZW50ZWRQYXJlbnQ9dCx0aGlzLl9ldmVudGVkUGFyZW50RGF0YT1lLHRoaXN9O3ZhciBUdD17JHZlcnNpb246OCwkcm9vdDp7dmVyc2lvbjp7cmVxdWlyZWQ6ITAsdHlwZToiZW51bSIsdmFsdWVzOls4XX0sbmFtZTp7dHlwZToic3RyaW5nIn0sbWV0YWRhdGE6e3R5cGU6IioifSxjZW50ZXI6e3R5cGU6ImFycmF5Iix2YWx1ZToibnVtYmVyIn0sem9vbTp7dHlwZToibnVtYmVyIn0sYmVhcmluZzp7dHlwZToibnVtYmVyIixkZWZhdWx0OjAscGVyaW9kOjM2MCx1bml0czoiZGVncmVlcyJ9LHBpdGNoOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MCx1bml0czoiZGVncmVlcyJ9LGxpZ2h0Ont0eXBlOiJsaWdodCJ9LHNvdXJjZXM6e3JlcXVpcmVkOiEwLHR5cGU6InNvdXJjZXMifSxzcHJpdGU6e3R5cGU6InN0cmluZyJ9LGdseXBoczp7dHlwZToic3RyaW5nIn0sdHJhbnNpdGlvbjp7dHlwZToidHJhbnNpdGlvbiJ9LGxheWVyczp7cmVxdWlyZWQ6ITAsdHlwZToiYXJyYXkiLHZhbHVlOiJsYXllciJ9fSxzb3VyY2VzOnsiKiI6e3R5cGU6InNvdXJjZSJ9fSxzb3VyY2U6WyJzb3VyY2VfdmVjdG9yIiwic291cmNlX3Jhc3RlciIsInNvdXJjZV9yYXN0ZXJfZGVtIiwic291cmNlX2dlb2pzb24iLCJzb3VyY2VfdmlkZW8iLCJzb3VyY2VfaW1hZ2UiXSxzb3VyY2VfdmVjdG9yOnt0eXBlOntyZXF1aXJlZDohMCx0eXBlOiJlbnVtIix2YWx1ZXM6e3ZlY3Rvcjp7fX19LHVybDp7dHlwZToic3RyaW5nIn0sdGlsZXM6e3R5cGU6ImFycmF5Iix2YWx1ZToic3RyaW5nIn0sYm91bmRzOnt0eXBlOiJhcnJheSIsdmFsdWU6Im51bWJlciIsbGVuZ3RoOjQsZGVmYXVsdDpbLTE4MCwtODUuMDUxMTI5LDE4MCw4NS4wNTExMjldfSxzY2hlbWU6e3R5cGU6ImVudW0iLHZhbHVlczp7eHl6Ont9LHRtczp7fX0sZGVmYXVsdDoieHl6In0sbWluem9vbTp7dHlwZToibnVtYmVyIixkZWZhdWx0OjB9LG1heHpvb206e3R5cGU6Im51bWJlciIsZGVmYXVsdDoyMn0sYXR0cmlidXRpb246e3R5cGU6InN0cmluZyJ9LCIqIjp7dHlwZToiKiJ9fSxzb3VyY2VfcmFzdGVyOnt0eXBlOntyZXF1aXJlZDohMCx0eXBlOiJlbnVtIix2YWx1ZXM6e3Jhc3Rlcjp7fX19LHVybDp7dHlwZToic3RyaW5nIn0sdGlsZXM6e3R5cGU6ImFycmF5Iix2YWx1ZToic3RyaW5nIn0sYm91bmRzOnt0eXBlOiJhcnJheSIsdmFsdWU6Im51bWJlciIsbGVuZ3RoOjQsZGVmYXVsdDpbLTE4MCwtODUuMDUxMTI5LDE4MCw4NS4wNTExMjldfSxtaW56b29tOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MH0sbWF4em9vbTp7dHlwZToibnVtYmVyIixkZWZhdWx0OjIyfSx0aWxlU2l6ZTp7dHlwZToibnVtYmVyIixkZWZhdWx0OjUxMix1bml0czoicGl4ZWxzIn0sc2NoZW1lOnt0eXBlOiJlbnVtIix2YWx1ZXM6e3h5ejp7fSx0bXM6e319LGRlZmF1bHQ6Inh5eiJ9LGF0dHJpYnV0aW9uOnt0eXBlOiJzdHJpbmcifSwiKiI6e3R5cGU6IioifX0sc291cmNlX3Jhc3Rlcl9kZW06e3R5cGU6e3JlcXVpcmVkOiEwLHR5cGU6ImVudW0iLHZhbHVlczp7InJhc3Rlci1kZW0iOnt9fX0sdXJsOnt0eXBlOiJzdHJpbmcifSx0aWxlczp7dHlwZToiYXJyYXkiLHZhbHVlOiJzdHJpbmcifSxib3VuZHM6e3R5cGU6ImFycmF5Iix2YWx1ZToibnVtYmVyIixsZW5ndGg6NCxkZWZhdWx0OlstMTgwLC04NS4wNTExMjksMTgwLDg1LjA1MTEyOV19LG1pbnpvb206e3R5cGU6Im51bWJlciIsZGVmYXVsdDowfSxtYXh6b29tOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MjJ9LHRpbGVTaXplOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6NTEyLHVuaXRzOiJwaXhlbHMifSxhdHRyaWJ1dGlvbjp7dHlwZToic3RyaW5nIn0sZW5jb2Rpbmc6e3R5cGU6ImVudW0iLHZhbHVlczp7dGVycmFyaXVtOnt9LG1hcGJveDp7fX0sZGVmYXVsdDoibWFwYm94In0sIioiOnt0eXBlOiIqIn19LHNvdXJjZV9nZW9qc29uOnt0eXBlOntyZXF1aXJlZDohMCx0eXBlOiJlbnVtIix2YWx1ZXM6e2dlb2pzb246e319fSxkYXRhOnt0eXBlOiIqIn0sbWF4em9vbTp7dHlwZToibnVtYmVyIixkZWZhdWx0OjE4fSxhdHRyaWJ1dGlvbjp7dHlwZToic3RyaW5nIn0sYnVmZmVyOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MTI4LG1heGltdW06NTEyLG1pbmltdW06MH0sdG9sZXJhbmNlOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6LjM3NX0sY2x1c3Rlcjp7dHlwZToiYm9vbGVhbiIsZGVmYXVsdDohMX0sY2x1c3RlclJhZGl1czp7dHlwZToibnVtYmVyIixkZWZhdWx0OjUwLG1pbmltdW06MH0sY2x1c3Rlck1heFpvb206e3R5cGU6Im51bWJlciJ9LGNsdXN0ZXJQcm9wZXJ0aWVzOnt0eXBlOiIqIn0sbGluZU1ldHJpY3M6e3R5cGU6ImJvb2xlYW4iLGRlZmF1bHQ6ITF9LGdlbmVyYXRlSWQ6e3R5cGU6ImJvb2xlYW4iLGRlZmF1bHQ6ITF9fSxzb3VyY2VfdmlkZW86e3R5cGU6e3JlcXVpcmVkOiEwLHR5cGU6ImVudW0iLHZhbHVlczp7dmlkZW86e319fSx1cmxzOntyZXF1aXJlZDohMCx0eXBlOiJhcnJheSIsdmFsdWU6InN0cmluZyJ9LGNvb3JkaW5hdGVzOntyZXF1aXJlZDohMCx0eXBlOiJhcnJheSIsbGVuZ3RoOjQsdmFsdWU6e3R5cGU6ImFycmF5IixsZW5ndGg6Mix2YWx1ZToibnVtYmVyIn19fSxzb3VyY2VfaW1hZ2U6e3R5cGU6e3JlcXVpcmVkOiEwLHR5cGU6ImVudW0iLHZhbHVlczp7aW1hZ2U6e319fSx1cmw6e3JlcXVpcmVkOiEwLHR5cGU6InN0cmluZyJ9LGNvb3JkaW5hdGVzOntyZXF1aXJlZDohMCx0eXBlOiJhcnJheSIsbGVuZ3RoOjQsdmFsdWU6e3R5cGU6ImFycmF5IixsZW5ndGg6Mix2YWx1ZToibnVtYmVyIn19fSxsYXllcjp7aWQ6e3R5cGU6InN0cmluZyIscmVxdWlyZWQ6ITB9LHR5cGU6e3R5cGU6ImVudW0iLHZhbHVlczp7ZmlsbDp7fSxsaW5lOnt9LHN5bWJvbDp7fSxjaXJjbGU6e30saGVhdG1hcDp7fSwiZmlsbC1leHRydXNpb24iOnt9LHJhc3Rlcjp7fSxoaWxsc2hhZGU6e30sYmFja2dyb3VuZDp7fX0scmVxdWlyZWQ6ITB9LG1ldGFkYXRhOnt0eXBlOiIqIn0sc291cmNlOnt0eXBlOiJzdHJpbmcifSwic291cmNlLWxheWVyIjp7dHlwZToic3RyaW5nIn0sbWluem9vbTp7dHlwZToibnVtYmVyIixtaW5pbXVtOjAsbWF4aW11bToyNH0sbWF4em9vbTp7dHlwZToibnVtYmVyIixtaW5pbXVtOjAsbWF4aW11bToyNH0sZmlsdGVyOnt0eXBlOiJmaWx0ZXIifSxsYXlvdXQ6e3R5cGU6ImxheW91dCJ9LHBhaW50Ont0eXBlOiJwYWludCJ9fSxsYXlvdXQ6WyJsYXlvdXRfZmlsbCIsImxheW91dF9saW5lIiwibGF5b3V0X2NpcmNsZSIsImxheW91dF9oZWF0bWFwIiwibGF5b3V0X2ZpbGwtZXh0cnVzaW9uIiwibGF5b3V0X3N5bWJvbCIsImxheW91dF9yYXN0ZXIiLCJsYXlvdXRfaGlsbHNoYWRlIiwibGF5b3V0X2JhY2tncm91bmQiXSxsYXlvdXRfYmFja2dyb3VuZDp7dmlzaWJpbGl0eTp7dHlwZToiZW51bSIsdmFsdWVzOnt2aXNpYmxlOnt9LG5vbmU6e319LGRlZmF1bHQ6InZpc2libGUiLCJwcm9wZXJ0eS10eXBlIjoiY29uc3RhbnQifX0sbGF5b3V0X2ZpbGw6eyJmaWxsLXNvcnQta2V5Ijp7dHlwZToibnVtYmVyIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSx2aXNpYmlsaXR5Ont0eXBlOiJlbnVtIix2YWx1ZXM6e3Zpc2libGU6e30sbm9uZTp7fX0sZGVmYXVsdDoidmlzaWJsZSIsInByb3BlcnR5LXR5cGUiOiJjb25zdGFudCJ9fSxsYXlvdXRfY2lyY2xlOnsiY2lyY2xlLXNvcnQta2V5Ijp7dHlwZToibnVtYmVyIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSx2aXNpYmlsaXR5Ont0eXBlOiJlbnVtIix2YWx1ZXM6e3Zpc2libGU6e30sbm9uZTp7fX0sZGVmYXVsdDoidmlzaWJsZSIsInByb3BlcnR5LXR5cGUiOiJjb25zdGFudCJ9fSxsYXlvdXRfaGVhdG1hcDp7dmlzaWJpbGl0eTp7dHlwZToiZW51bSIsdmFsdWVzOnt2aXNpYmxlOnt9LG5vbmU6e319LGRlZmF1bHQ6InZpc2libGUiLCJwcm9wZXJ0eS10eXBlIjoiY29uc3RhbnQifX0sImxheW91dF9maWxsLWV4dHJ1c2lvbiI6e3Zpc2liaWxpdHk6e3R5cGU6ImVudW0iLHZhbHVlczp7dmlzaWJsZTp7fSxub25lOnt9fSxkZWZhdWx0OiJ2aXNpYmxlIiwicHJvcGVydHktdHlwZSI6ImNvbnN0YW50In19LGxheW91dF9saW5lOnsibGluZS1jYXAiOnt0eXBlOiJlbnVtIix2YWx1ZXM6e2J1dHQ6e30scm91bmQ6e30sc3F1YXJlOnt9fSxkZWZhdWx0OiJidXR0IixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImxpbmUtam9pbiI6e3R5cGU6ImVudW0iLHZhbHVlczp7YmV2ZWw6e30scm91bmQ6e30sbWl0ZXI6e319LGRlZmF1bHQ6Im1pdGVyIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwibGluZS1taXRlci1saW1pdCI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDoyLHJlcXVpcmVzOlt7ImxpbmUtam9pbiI6Im1pdGVyIn1dLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwibGluZS1yb3VuZC1saW1pdCI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDoxLjA1LHJlcXVpcmVzOlt7ImxpbmUtam9pbiI6InJvdW5kIn1dLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwibGluZS1zb3J0LWtleSI6e3R5cGU6Im51bWJlciIsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sdmlzaWJpbGl0eTp7dHlwZToiZW51bSIsdmFsdWVzOnt2aXNpYmxlOnt9LG5vbmU6e319LGRlZmF1bHQ6InZpc2libGUiLCJwcm9wZXJ0eS10eXBlIjoiY29uc3RhbnQifX0sbGF5b3V0X3N5bWJvbDp7InN5bWJvbC1wbGFjZW1lbnQiOnt0eXBlOiJlbnVtIix2YWx1ZXM6e3BvaW50Ont9LGxpbmU6e30sImxpbmUtY2VudGVyIjp7fX0sZGVmYXVsdDoicG9pbnQiLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwic3ltYm9sLXNwYWNpbmciOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MjUwLG1pbmltdW06MSx1bml0czoicGl4ZWxzIixyZXF1aXJlczpbeyJzeW1ib2wtcGxhY2VtZW50IjoibGluZSJ9XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInN5bWJvbC1hdm9pZC1lZGdlcyI6e3R5cGU6ImJvb2xlYW4iLGRlZmF1bHQ6ITEsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJzeW1ib2wtc29ydC1rZXkiOnt0eXBlOiJudW1iZXIiLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJzeW1ib2wtei1vcmRlciI6e3R5cGU6ImVudW0iLHZhbHVlczp7YXV0bzp7fSwidmlld3BvcnQteSI6e30sc291cmNlOnt9fSxkZWZhdWx0OiJhdXRvIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImljb24tYWxsb3ctb3ZlcmxhcCI6e3R5cGU6ImJvb2xlYW4iLGRlZmF1bHQ6ITEscmVxdWlyZXM6WyJpY29uLWltYWdlIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJpY29uLWlnbm9yZS1wbGFjZW1lbnQiOnt0eXBlOiJib29sZWFuIixkZWZhdWx0OiExLHJlcXVpcmVzOlsiaWNvbi1pbWFnZSJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwiaWNvbi1vcHRpb25hbCI6e3R5cGU6ImJvb2xlYW4iLGRlZmF1bHQ6ITEscmVxdWlyZXM6WyJpY29uLWltYWdlIiwidGV4dC1maWVsZCJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwiaWNvbi1yb3RhdGlvbi1hbGlnbm1lbnQiOnt0eXBlOiJlbnVtIix2YWx1ZXM6e21hcDp7fSx2aWV3cG9ydDp7fSxhdXRvOnt9fSxkZWZhdWx0OiJhdXRvIixyZXF1aXJlczpbImljb24taW1hZ2UiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImljb24tc2l6ZSI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDoxLG1pbmltdW06MCx1bml0czoiZmFjdG9yIG9mIHRoZSBvcmlnaW5hbCBpY29uIHNpemUiLHJlcXVpcmVzOlsiaWNvbi1pbWFnZSJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJpY29uLXRleHQtZml0Ijp7dHlwZToiZW51bSIsdmFsdWVzOntub25lOnt9LHdpZHRoOnt9LGhlaWdodDp7fSxib3RoOnt9fSxkZWZhdWx0OiJub25lIixyZXF1aXJlczpbImljb24taW1hZ2UiLCJ0ZXh0LWZpZWxkIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJpY29uLXRleHQtZml0LXBhZGRpbmciOnt0eXBlOiJhcnJheSIsdmFsdWU6Im51bWJlciIsbGVuZ3RoOjQsZGVmYXVsdDpbMCwwLDAsMF0sdW5pdHM6InBpeGVscyIscmVxdWlyZXM6WyJpY29uLWltYWdlIiwidGV4dC1maWVsZCIseyJpY29uLXRleHQtZml0IjpbImJvdGgiLCJ3aWR0aCIsImhlaWdodCJdfV0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJpY29uLWltYWdlIjp7dHlwZToic3RyaW5nIix0b2tlbnM6ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImljb24tcm90YXRlIjp7dHlwZToibnVtYmVyIixkZWZhdWx0OjAscGVyaW9kOjM2MCx1bml0czoiZGVncmVlcyIscmVxdWlyZXM6WyJpY29uLWltYWdlIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImljb24tcGFkZGluZyI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDoyLG1pbmltdW06MCx1bml0czoicGl4ZWxzIixyZXF1aXJlczpbImljb24taW1hZ2UiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImljb24ta2VlcC11cHJpZ2h0Ijp7dHlwZToiYm9vbGVhbiIsZGVmYXVsdDohMSxyZXF1aXJlczpbImljb24taW1hZ2UiLHsiaWNvbi1yb3RhdGlvbi1hbGlnbm1lbnQiOiJtYXAifSx7InN5bWJvbC1wbGFjZW1lbnQiOlsibGluZSIsImxpbmUtY2VudGVyIl19XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImljb24tb2Zmc2V0Ijp7dHlwZToiYXJyYXkiLHZhbHVlOiJudW1iZXIiLGxlbmd0aDoyLGRlZmF1bHQ6WzAsMF0scmVxdWlyZXM6WyJpY29uLWltYWdlIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImljb24tYW5jaG9yIjp7dHlwZToiZW51bSIsdmFsdWVzOntjZW50ZXI6e30sbGVmdDp7fSxyaWdodDp7fSx0b3A6e30sYm90dG9tOnt9LCJ0b3AtbGVmdCI6e30sInRvcC1yaWdodCI6e30sImJvdHRvbS1sZWZ0Ijp7fSwiYm90dG9tLXJpZ2h0Ijp7fX0sZGVmYXVsdDoiY2VudGVyIixyZXF1aXJlczpbImljb24taW1hZ2UiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwiaWNvbi1waXRjaC1hbGlnbm1lbnQiOnt0eXBlOiJlbnVtIix2YWx1ZXM6e21hcDp7fSx2aWV3cG9ydDp7fSxhdXRvOnt9fSxkZWZhdWx0OiJhdXRvIixyZXF1aXJlczpbImljb24taW1hZ2UiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInRleHQtcGl0Y2gtYWxpZ25tZW50Ijp7dHlwZToiZW51bSIsdmFsdWVzOnttYXA6e30sdmlld3BvcnQ6e30sYXV0bzp7fX0sZGVmYXVsdDoiYXV0byIscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJ0ZXh0LXJvdGF0aW9uLWFsaWdubWVudCI6e3R5cGU6ImVudW0iLHZhbHVlczp7bWFwOnt9LHZpZXdwb3J0Ont9LGF1dG86e319LGRlZmF1bHQ6ImF1dG8iLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwidGV4dC1maWVsZCI6e3R5cGU6ImZvcm1hdHRlZCIsZGVmYXVsdDoiIix0b2tlbnM6ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sInRleHQtZm9udCI6e3R5cGU6ImFycmF5Iix2YWx1ZToic3RyaW5nIixkZWZhdWx0OlsiT3BlbiBTYW5zIFJlZ3VsYXIiLCJBcmlhbCBVbmljb2RlIE1TIFJlZ3VsYXIiXSxyZXF1aXJlczpbInRleHQtZmllbGQiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwidGV4dC1zaXplIjp7dHlwZToibnVtYmVyIixkZWZhdWx0OjE2LG1pbmltdW06MCx1bml0czoicGl4ZWxzIixyZXF1aXJlczpbInRleHQtZmllbGQiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwidGV4dC1tYXgtd2lkdGgiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MTAsbWluaW11bTowLHVuaXRzOiJlbXMiLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJ0ZXh0LWxpbmUtaGVpZ2h0Ijp7dHlwZToibnVtYmVyIixkZWZhdWx0OjEuMix1bml0czoiZW1zIixyZXF1aXJlczpbInRleHQtZmllbGQiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInRleHQtbGV0dGVyLXNwYWNpbmciOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MCx1bml0czoiZW1zIixyZXF1aXJlczpbInRleHQtZmllbGQiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwidGV4dC1qdXN0aWZ5Ijp7dHlwZToiZW51bSIsdmFsdWVzOnthdXRvOnt9LGxlZnQ6e30sY2VudGVyOnt9LHJpZ2h0Ont9fSxkZWZhdWx0OiJjZW50ZXIiLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJ0ZXh0LXJhZGlhbC1vZmZzZXQiOnt0eXBlOiJudW1iZXIiLHVuaXRzOiJlbXMiLGRlZmF1bHQ6MCxyZXF1aXJlczpbInRleHQtZmllbGQiXSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIl19fSwidGV4dC12YXJpYWJsZS1hbmNob3IiOnt0eXBlOiJhcnJheSIsdmFsdWU6ImVudW0iLHZhbHVlczp7Y2VudGVyOnt9LGxlZnQ6e30scmlnaHQ6e30sdG9wOnt9LGJvdHRvbTp7fSwidG9wLWxlZnQiOnt9LCJ0b3AtcmlnaHQiOnt9LCJib3R0b20tbGVmdCI6e30sImJvdHRvbS1yaWdodCI6e319LHJlcXVpcmVzOlsidGV4dC1maWVsZCIseyJzeW1ib2wtcGxhY2VtZW50IjpbInBvaW50Il19XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInRleHQtYW5jaG9yIjp7dHlwZToiZW51bSIsdmFsdWVzOntjZW50ZXI6e30sbGVmdDp7fSxyaWdodDp7fSx0b3A6e30sYm90dG9tOnt9LCJ0b3AtbGVmdCI6e30sInRvcC1yaWdodCI6e30sImJvdHRvbS1sZWZ0Ijp7fSwiYm90dG9tLXJpZ2h0Ijp7fX0sZGVmYXVsdDoiY2VudGVyIixyZXF1aXJlczpbInRleHQtZmllbGQiLHsiISI6InRleHQtdmFyaWFibGUtYW5jaG9yIn1dLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJ0ZXh0LW1heC1hbmdsZSI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDo0NSx1bml0czoiZGVncmVlcyIscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIix7InN5bWJvbC1wbGFjZW1lbnQiOlsibGluZSIsImxpbmUtY2VudGVyIl19XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInRleHQtd3JpdGluZy1tb2RlIjp7dHlwZToiYXJyYXkiLHZhbHVlOiJlbnVtIix2YWx1ZXM6e2hvcml6b250YWw6e30sdmVydGljYWw6e319LHJlcXVpcmVzOlsidGV4dC1maWVsZCIseyJzeW1ib2wtcGxhY2VtZW50IjpbInBvaW50Il19XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInRleHQtcm90YXRlIjp7dHlwZToibnVtYmVyIixkZWZhdWx0OjAscGVyaW9kOjM2MCx1bml0czoiZGVncmVlcyIscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sInRleHQtcGFkZGluZyI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDoyLG1pbmltdW06MCx1bml0czoicGl4ZWxzIixyZXF1aXJlczpbInRleHQtZmllbGQiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInRleHQta2VlcC11cHJpZ2h0Ijp7dHlwZToiYm9vbGVhbiIsZGVmYXVsdDohMCxyZXF1aXJlczpbInRleHQtZmllbGQiLHsidGV4dC1yb3RhdGlvbi1hbGlnbm1lbnQiOiJtYXAifSx7InN5bWJvbC1wbGFjZW1lbnQiOlsibGluZSIsImxpbmUtY2VudGVyIl19XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInRleHQtdHJhbnNmb3JtIjp7dHlwZToiZW51bSIsdmFsdWVzOntub25lOnt9LHVwcGVyY2FzZTp7fSxsb3dlcmNhc2U6e319LGRlZmF1bHQ6Im5vbmUiLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJ0ZXh0LW9mZnNldCI6e3R5cGU6ImFycmF5Iix2YWx1ZToibnVtYmVyIix1bml0czoiZW1zIixsZW5ndGg6MixkZWZhdWx0OlswLDBdLHJlcXVpcmVzOlsidGV4dC1maWVsZCIseyIhIjoidGV4dC1yYWRpYWwtb2Zmc2V0In0seyIhIjoidGV4dC12YXJpYWJsZS1hbmNob3IifV0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sInRleHQtYWxsb3ctb3ZlcmxhcCI6e3R5cGU6ImJvb2xlYW4iLGRlZmF1bHQ6ITEscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJ0ZXh0LWlnbm9yZS1wbGFjZW1lbnQiOnt0eXBlOiJib29sZWFuIixkZWZhdWx0OiExLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwidGV4dC1vcHRpb25hbCI6e3R5cGU6ImJvb2xlYW4iLGRlZmF1bHQ6ITEscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIiwiaWNvbi1pbWFnZSJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSx2aXNpYmlsaXR5Ont0eXBlOiJlbnVtIix2YWx1ZXM6e3Zpc2libGU6e30sbm9uZTp7fX0sZGVmYXVsdDoidmlzaWJsZSIsInByb3BlcnR5LXR5cGUiOiJjb25zdGFudCJ9fSxsYXlvdXRfcmFzdGVyOnt2aXNpYmlsaXR5Ont0eXBlOiJlbnVtIix2YWx1ZXM6e3Zpc2libGU6e30sbm9uZTp7fX0sZGVmYXVsdDoidmlzaWJsZSIsInByb3BlcnR5LXR5cGUiOiJjb25zdGFudCJ9fSxsYXlvdXRfaGlsbHNoYWRlOnt2aXNpYmlsaXR5Ont0eXBlOiJlbnVtIix2YWx1ZXM6e3Zpc2libGU6e30sbm9uZTp7fX0sZGVmYXVsdDoidmlzaWJsZSIsInByb3BlcnR5LXR5cGUiOiJjb25zdGFudCJ9fSxmaWx0ZXI6e3R5cGU6ImFycmF5Iix2YWx1ZToiKiJ9LGZpbHRlcl9vcGVyYXRvcjp7dHlwZToiZW51bSIsdmFsdWVzOnsiPT0iOnt9LCIhPSI6e30sIj4iOnt9LCI+PSI6e30sIjwiOnt9LCI8PSI6e30saW46e30sIiFpbiI6e30sYWxsOnt9LGFueTp7fSxub25lOnt9LGhhczp7fSwiIWhhcyI6e319fSxnZW9tZXRyeV90eXBlOnt0eXBlOiJlbnVtIix2YWx1ZXM6e1BvaW50Ont9LExpbmVTdHJpbmc6e30sUG9seWdvbjp7fX19LGZ1bmN0aW9uOntleHByZXNzaW9uOnt0eXBlOiJleHByZXNzaW9uIn0sc3RvcHM6e3R5cGU6ImFycmF5Iix2YWx1ZToiZnVuY3Rpb25fc3RvcCJ9LGJhc2U6e3R5cGU6Im51bWJlciIsZGVmYXVsdDoxLG1pbmltdW06MH0scHJvcGVydHk6e3R5cGU6InN0cmluZyIsZGVmYXVsdDoiJHpvb20ifSx0eXBlOnt0eXBlOiJlbnVtIix2YWx1ZXM6e2lkZW50aXR5Ont9LGV4cG9uZW50aWFsOnt9LGludGVydmFsOnt9LGNhdGVnb3JpY2FsOnt9fSxkZWZhdWx0OiJleHBvbmVudGlhbCJ9LGNvbG9yU3BhY2U6e3R5cGU6ImVudW0iLHZhbHVlczp7cmdiOnt9LGxhYjp7fSxoY2w6e319LGRlZmF1bHQ6InJnYiJ9LGRlZmF1bHQ6e3R5cGU6IioiLHJlcXVpcmVkOiExfX0sZnVuY3Rpb25fc3RvcDp7dHlwZToiYXJyYXkiLG1pbmltdW06MCxtYXhpbXVtOjIyLHZhbHVlOlsibnVtYmVyIiwiY29sb3IiXSxsZW5ndGg6Mn0sZXhwcmVzc2lvbjp7dHlwZToiYXJyYXkiLHZhbHVlOiIqIixtaW5pbXVtOjF9LGV4cHJlc3Npb25fbmFtZTp7dHlwZToiZW51bSIsdmFsdWVzOntsZXQ6e2dyb3VwOiJWYXJpYWJsZSBiaW5kaW5nIn0sdmFyOntncm91cDoiVmFyaWFibGUgYmluZGluZyJ9LGxpdGVyYWw6e2dyb3VwOiJUeXBlcyJ9LGFycmF5Ontncm91cDoiVHlwZXMifSxhdDp7Z3JvdXA6Ikxvb2t1cCJ9LGNhc2U6e2dyb3VwOiJEZWNpc2lvbiJ9LG1hdGNoOntncm91cDoiRGVjaXNpb24ifSxjb2FsZXNjZTp7Z3JvdXA6IkRlY2lzaW9uIn0sc3RlcDp7Z3JvdXA6IlJhbXBzLCBzY2FsZXMsIGN1cnZlcyJ9LGludGVycG9sYXRlOntncm91cDoiUmFtcHMsIHNjYWxlcywgY3VydmVzIn0sImludGVycG9sYXRlLWhjbCI6e2dyb3VwOiJSYW1wcywgc2NhbGVzLCBjdXJ2ZXMifSwiaW50ZXJwb2xhdGUtbGFiIjp7Z3JvdXA6IlJhbXBzLCBzY2FsZXMsIGN1cnZlcyJ9LGxuMjp7Z3JvdXA6Ik1hdGgifSxwaTp7Z3JvdXA6Ik1hdGgifSxlOntncm91cDoiTWF0aCJ9LHR5cGVvZjp7Z3JvdXA6IlR5cGVzIn0sc3RyaW5nOntncm91cDoiVHlwZXMifSxudW1iZXI6e2dyb3VwOiJUeXBlcyJ9LGJvb2xlYW46e2dyb3VwOiJUeXBlcyJ9LG9iamVjdDp7Z3JvdXA6IlR5cGVzIn0sY29sbGF0b3I6e2dyb3VwOiJUeXBlcyJ9LGZvcm1hdDp7Z3JvdXA6IlR5cGVzIn0sIm51bWJlci1mb3JtYXQiOntncm91cDoiVHlwZXMifSwidG8tc3RyaW5nIjp7Z3JvdXA6IlR5cGVzIn0sInRvLW51bWJlciI6e2dyb3VwOiJUeXBlcyJ9LCJ0by1ib29sZWFuIjp7Z3JvdXA6IlR5cGVzIn0sInRvLXJnYmEiOntncm91cDoiQ29sb3IifSwidG8tY29sb3IiOntncm91cDoiVHlwZXMifSxyZ2I6e2dyb3VwOiJDb2xvciJ9LHJnYmE6e2dyb3VwOiJDb2xvciJ9LGdldDp7Z3JvdXA6Ikxvb2t1cCJ9LGhhczp7Z3JvdXA6Ikxvb2t1cCJ9LGxlbmd0aDp7Z3JvdXA6Ikxvb2t1cCJ9LHByb3BlcnRpZXM6e2dyb3VwOiJGZWF0dXJlIGRhdGEifSwiZmVhdHVyZS1zdGF0ZSI6e2dyb3VwOiJGZWF0dXJlIGRhdGEifSwiZ2VvbWV0cnktdHlwZSI6e2dyb3VwOiJGZWF0dXJlIGRhdGEifSxpZDp7Z3JvdXA6IkZlYXR1cmUgZGF0YSJ9LHpvb206e2dyb3VwOiJab29tIn0sImhlYXRtYXAtZGVuc2l0eSI6e2dyb3VwOiJIZWF0bWFwIn0sImxpbmUtcHJvZ3Jlc3MiOntncm91cDoiRmVhdHVyZSBkYXRhIn0sYWNjdW11bGF0ZWQ6e2dyb3VwOiJGZWF0dXJlIGRhdGEifSwiKyI6e2dyb3VwOiJNYXRoIn0sIioiOntncm91cDoiTWF0aCJ9LCItIjp7Z3JvdXA6Ik1hdGgifSwiLyI6e2dyb3VwOiJNYXRoIn0sIiUiOntncm91cDoiTWF0aCJ9LCJeIjp7Z3JvdXA6Ik1hdGgifSxzcXJ0Ontncm91cDoiTWF0aCJ9LGxvZzEwOntncm91cDoiTWF0aCJ9LGxuOntncm91cDoiTWF0aCJ9LGxvZzI6e2dyb3VwOiJNYXRoIn0sc2luOntncm91cDoiTWF0aCJ9LGNvczp7Z3JvdXA6Ik1hdGgifSx0YW46e2dyb3VwOiJNYXRoIn0sYXNpbjp7Z3JvdXA6Ik1hdGgifSxhY29zOntncm91cDoiTWF0aCJ9LGF0YW46e2dyb3VwOiJNYXRoIn0sbWluOntncm91cDoiTWF0aCJ9LG1heDp7Z3JvdXA6Ik1hdGgifSxyb3VuZDp7Z3JvdXA6Ik1hdGgifSxhYnM6e2dyb3VwOiJNYXRoIn0sY2VpbDp7Z3JvdXA6Ik1hdGgifSxmbG9vcjp7Z3JvdXA6Ik1hdGgifSwiPT0iOntncm91cDoiRGVjaXNpb24ifSwiIT0iOntncm91cDoiRGVjaXNpb24ifSwiPiI6e2dyb3VwOiJEZWNpc2lvbiJ9LCI8Ijp7Z3JvdXA6IkRlY2lzaW9uIn0sIj49Ijp7Z3JvdXA6IkRlY2lzaW9uIn0sIjw9Ijp7Z3JvdXA6IkRlY2lzaW9uIn0sYWxsOntncm91cDoiRGVjaXNpb24ifSxhbnk6e2dyb3VwOiJEZWNpc2lvbiJ9LCIhIjp7Z3JvdXA6IkRlY2lzaW9uIn0sImlzLXN1cHBvcnRlZC1zY3JpcHQiOntncm91cDoiU3RyaW5nIn0sdXBjYXNlOntncm91cDoiU3RyaW5nIn0sZG93bmNhc2U6e2dyb3VwOiJTdHJpbmcifSxjb25jYXQ6e2dyb3VwOiJTdHJpbmcifSwicmVzb2x2ZWQtbG9jYWxlIjp7Z3JvdXA6IlN0cmluZyJ9fX0sbGlnaHQ6e2FuY2hvcjp7dHlwZToiZW51bSIsZGVmYXVsdDoidmlld3BvcnQiLHZhbHVlczp7bWFwOnt9LHZpZXdwb3J0Ont9fSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQiLHRyYW5zaXRpb246ITEsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19fSxwb3NpdGlvbjp7dHlwZToiYXJyYXkiLGRlZmF1bHQ6WzEuMTUsMjEwLDMwXSxsZW5ndGg6Myx2YWx1ZToibnVtYmVyIiwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQiLHRyYW5zaXRpb246ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIl19fSxjb2xvcjp7dHlwZToiY29sb3IiLCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCIsZGVmYXVsdDoiI2ZmZmZmZiIsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIl19LHRyYW5zaXRpb246ITB9LGludGVuc2l0eTp7dHlwZToibnVtYmVyIiwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQiLGRlZmF1bHQ6LjUsbWluaW11bTowLG1heGltdW06MSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sdHJhbnNpdGlvbjohMH19LHBhaW50OlsicGFpbnRfZmlsbCIsInBhaW50X2xpbmUiLCJwYWludF9jaXJjbGUiLCJwYWludF9oZWF0bWFwIiwicGFpbnRfZmlsbC1leHRydXNpb24iLCJwYWludF9zeW1ib2wiLCJwYWludF9yYXN0ZXIiLCJwYWludF9oaWxsc2hhZGUiLCJwYWludF9iYWNrZ3JvdW5kIl0scGFpbnRfZmlsbDp7ImZpbGwtYW50aWFsaWFzIjp7dHlwZToiYm9vbGVhbiIsZGVmYXVsdDohMCxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImZpbGwtb3BhY2l0eSI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDoxLG1pbmltdW06MCxtYXhpbXVtOjEsdHJhbnNpdGlvbjohMCxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImZpbGwtY29sb3IiOnt0eXBlOiJjb2xvciIsZGVmYXVsdDoiIzAwMDAwMCIsdHJhbnNpdGlvbjohMCxyZXF1aXJlczpbeyIhIjoiZmlsbC1wYXR0ZXJuIn1dLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwiZmlsbC1vdXRsaW5lLWNvbG9yIjp7dHlwZToiY29sb3IiLHRyYW5zaXRpb246ITAscmVxdWlyZXM6W3siISI6ImZpbGwtcGF0dGVybiJ9LHsiZmlsbC1hbnRpYWxpYXMiOiEwfV0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJmaWxsLXRyYW5zbGF0ZSI6e3R5cGU6ImFycmF5Iix2YWx1ZToibnVtYmVyIixsZW5ndGg6MixkZWZhdWx0OlswLDBdLHRyYW5zaXRpb246ITAsdW5pdHM6InBpeGVscyIsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJmaWxsLXRyYW5zbGF0ZS1hbmNob3IiOnt0eXBlOiJlbnVtIix2YWx1ZXM6e21hcDp7fSx2aWV3cG9ydDp7fX0sZGVmYXVsdDoibWFwIixyZXF1aXJlczpbImZpbGwtdHJhbnNsYXRlIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJmaWxsLXBhdHRlcm4iOnt0eXBlOiJzdHJpbmciLHRyYW5zaXRpb246ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSJdfSwicHJvcGVydHktdHlwZSI6ImNyb3NzLWZhZGVkLWRhdGEtZHJpdmVuIn19LCJwYWludF9maWxsLWV4dHJ1c2lvbiI6eyJmaWxsLWV4dHJ1c2lvbi1vcGFjaXR5Ijp7dHlwZToibnVtYmVyIixkZWZhdWx0OjEsbWluaW11bTowLG1heGltdW06MSx0cmFuc2l0aW9uOiEwLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwiZmlsbC1leHRydXNpb24tY29sb3IiOnt0eXBlOiJjb2xvciIsZGVmYXVsdDoiIzAwMDAwMCIsdHJhbnNpdGlvbjohMCxyZXF1aXJlczpbeyIhIjoiZmlsbC1leHRydXNpb24tcGF0dGVybiJ9XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImZpbGwtZXh0cnVzaW9uLXRyYW5zbGF0ZSI6e3R5cGU6ImFycmF5Iix2YWx1ZToibnVtYmVyIixsZW5ndGg6MixkZWZhdWx0OlswLDBdLHRyYW5zaXRpb246ITAsdW5pdHM6InBpeGVscyIsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJmaWxsLWV4dHJ1c2lvbi10cmFuc2xhdGUtYW5jaG9yIjp7dHlwZToiZW51bSIsdmFsdWVzOnttYXA6e30sdmlld3BvcnQ6e319LGRlZmF1bHQ6Im1hcCIscmVxdWlyZXM6WyJmaWxsLWV4dHJ1c2lvbi10cmFuc2xhdGUiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImZpbGwtZXh0cnVzaW9uLXBhdHRlcm4iOnt0eXBlOiJzdHJpbmciLHRyYW5zaXRpb246ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSJdfSwicHJvcGVydHktdHlwZSI6ImNyb3NzLWZhZGVkLWRhdGEtZHJpdmVuIn0sImZpbGwtZXh0cnVzaW9uLWhlaWdodCI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDowLG1pbmltdW06MCx1bml0czoibWV0ZXJzIix0cmFuc2l0aW9uOiEwLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwiZmlsbC1leHRydXNpb24tYmFzZSI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDowLG1pbmltdW06MCx1bml0czoibWV0ZXJzIix0cmFuc2l0aW9uOiEwLHJlcXVpcmVzOlsiZmlsbC1leHRydXNpb24taGVpZ2h0Il0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJmaWxsLWV4dHJ1c2lvbi12ZXJ0aWNhbC1ncmFkaWVudCI6e3R5cGU6ImJvb2xlYW4iLGRlZmF1bHQ6ITAsdHJhbnNpdGlvbjohMSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In19LHBhaW50X2xpbmU6eyJsaW5lLW9wYWNpdHkiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MSxtaW5pbXVtOjAsbWF4aW11bToxLHRyYW5zaXRpb246ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJsaW5lLWNvbG9yIjp7dHlwZToiY29sb3IiLGRlZmF1bHQ6IiMwMDAwMDAiLHRyYW5zaXRpb246ITAscmVxdWlyZXM6W3siISI6ImxpbmUtcGF0dGVybiJ9XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImxpbmUtdHJhbnNsYXRlIjp7dHlwZToiYXJyYXkiLHZhbHVlOiJudW1iZXIiLGxlbmd0aDoyLGRlZmF1bHQ6WzAsMF0sdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImxpbmUtdHJhbnNsYXRlLWFuY2hvciI6e3R5cGU6ImVudW0iLHZhbHVlczp7bWFwOnt9LHZpZXdwb3J0Ont9fSxkZWZhdWx0OiJtYXAiLHJlcXVpcmVzOlsibGluZS10cmFuc2xhdGUiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImxpbmUtd2lkdGgiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MSxtaW5pbXVtOjAsdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImxpbmUtZ2FwLXdpZHRoIjp7dHlwZToibnVtYmVyIixkZWZhdWx0OjAsbWluaW11bTowLHRyYW5zaXRpb246ITAsdW5pdHM6InBpeGVscyIsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJsaW5lLW9mZnNldCI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDowLHRyYW5zaXRpb246ITAsdW5pdHM6InBpeGVscyIsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJsaW5lLWJsdXIiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MCxtaW5pbXVtOjAsdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImxpbmUtZGFzaGFycmF5Ijp7dHlwZToiYXJyYXkiLHZhbHVlOiJudW1iZXIiLG1pbmltdW06MCx0cmFuc2l0aW9uOiEwLHVuaXRzOiJsaW5lIHdpZHRocyIscmVxdWlyZXM6W3siISI6ImxpbmUtcGF0dGVybiJ9XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJjcm9zcy1mYWRlZCJ9LCJsaW5lLXBhdHRlcm4iOnt0eXBlOiJzdHJpbmciLHRyYW5zaXRpb246ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSJdfSwicHJvcGVydHktdHlwZSI6ImNyb3NzLWZhZGVkLWRhdGEtZHJpdmVuIn0sImxpbmUtZ3JhZGllbnQiOnt0eXBlOiJjb2xvciIsdHJhbnNpdGlvbjohMSxyZXF1aXJlczpbeyIhIjoibGluZS1kYXNoYXJyYXkifSx7IiEiOiJsaW5lLXBhdHRlcm4ifSx7c291cmNlOiJnZW9qc29uIixoYXM6e2xpbmVNZXRyaWNzOiEwfX1dLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsibGluZS1wcm9ncmVzcyJdfSwicHJvcGVydHktdHlwZSI6ImNvbG9yLXJhbXAifX0scGFpbnRfY2lyY2xlOnsiY2lyY2xlLXJhZGl1cyI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDo1LG1pbmltdW06MCx0cmFuc2l0aW9uOiEwLHVuaXRzOiJwaXhlbHMiLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwiY2lyY2xlLWNvbG9yIjp7dHlwZToiY29sb3IiLGRlZmF1bHQ6IiMwMDAwMDAiLHRyYW5zaXRpb246ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJjaXJjbGUtYmx1ciI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDowLHRyYW5zaXRpb246ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJjaXJjbGUtb3BhY2l0eSI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDoxLG1pbmltdW06MCxtYXhpbXVtOjEsdHJhbnNpdGlvbjohMCxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImNpcmNsZS10cmFuc2xhdGUiOnt0eXBlOiJhcnJheSIsdmFsdWU6Im51bWJlciIsbGVuZ3RoOjIsZGVmYXVsdDpbMCwwXSx0cmFuc2l0aW9uOiEwLHVuaXRzOiJwaXhlbHMiLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwiY2lyY2xlLXRyYW5zbGF0ZS1hbmNob3IiOnt0eXBlOiJlbnVtIix2YWx1ZXM6e21hcDp7fSx2aWV3cG9ydDp7fX0sZGVmYXVsdDoibWFwIixyZXF1aXJlczpbImNpcmNsZS10cmFuc2xhdGUiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImNpcmNsZS1waXRjaC1zY2FsZSI6e3R5cGU6ImVudW0iLHZhbHVlczp7bWFwOnt9LHZpZXdwb3J0Ont9fSxkZWZhdWx0OiJtYXAiLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwiY2lyY2xlLXBpdGNoLWFsaWdubWVudCI6e3R5cGU6ImVudW0iLHZhbHVlczp7bWFwOnt9LHZpZXdwb3J0Ont9fSxkZWZhdWx0OiJ2aWV3cG9ydCIsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJjaXJjbGUtc3Ryb2tlLXdpZHRoIjp7dHlwZToibnVtYmVyIixkZWZhdWx0OjAsbWluaW11bTowLHRyYW5zaXRpb246ITAsdW5pdHM6InBpeGVscyIsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJjaXJjbGUtc3Ryb2tlLWNvbG9yIjp7dHlwZToiY29sb3IiLGRlZmF1bHQ6IiMwMDAwMDAiLHRyYW5zaXRpb246ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJjaXJjbGUtc3Ryb2tlLW9wYWNpdHkiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MSxtaW5pbXVtOjAsbWF4aW11bToxLHRyYW5zaXRpb246ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9fSxwYWludF9oZWF0bWFwOnsiaGVhdG1hcC1yYWRpdXMiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MzAsbWluaW11bToxLHRyYW5zaXRpb246ITAsdW5pdHM6InBpeGVscyIsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJoZWF0bWFwLXdlaWdodCI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDoxLG1pbmltdW06MCx0cmFuc2l0aW9uOiExLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwiaGVhdG1hcC1pbnRlbnNpdHkiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MSxtaW5pbXVtOjAsdHJhbnNpdGlvbjohMCxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImhlYXRtYXAtY29sb3IiOnt0eXBlOiJjb2xvciIsZGVmYXVsdDpbImludGVycG9sYXRlIixbImxpbmVhciJdLFsiaGVhdG1hcC1kZW5zaXR5Il0sMCwicmdiYSgwLCAwLCAyNTUsIDApIiwuMSwicm95YWxibHVlIiwuMywiY3lhbiIsLjUsImxpbWUiLC43LCJ5ZWxsb3ciLDEsInJlZCJdLHRyYW5zaXRpb246ITEsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJoZWF0bWFwLWRlbnNpdHkiXX0sInByb3BlcnR5LXR5cGUiOiJjb2xvci1yYW1wIn0sImhlYXRtYXAtb3BhY2l0eSI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDoxLG1pbmltdW06MCxtYXhpbXVtOjEsdHJhbnNpdGlvbjohMCxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In19LHBhaW50X3N5bWJvbDp7Imljb24tb3BhY2l0eSI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDoxLG1pbmltdW06MCxtYXhpbXVtOjEsdHJhbnNpdGlvbjohMCxyZXF1aXJlczpbImljb24taW1hZ2UiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImljb24tY29sb3IiOnt0eXBlOiJjb2xvciIsZGVmYXVsdDoiIzAwMDAwMCIsdHJhbnNpdGlvbjohMCxyZXF1aXJlczpbImljb24taW1hZ2UiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImljb24taGFsby1jb2xvciI6e3R5cGU6ImNvbG9yIixkZWZhdWx0OiJyZ2JhKDAsIDAsIDAsIDApIix0cmFuc2l0aW9uOiEwLHJlcXVpcmVzOlsiaWNvbi1pbWFnZSJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwiaWNvbi1oYWxvLXdpZHRoIjp7dHlwZToibnVtYmVyIixkZWZhdWx0OjAsbWluaW11bTowLHRyYW5zaXRpb246ITAsdW5pdHM6InBpeGVscyIscmVxdWlyZXM6WyJpY29uLWltYWdlIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJpY29uLWhhbG8tYmx1ciI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDowLG1pbmltdW06MCx0cmFuc2l0aW9uOiEwLHVuaXRzOiJwaXhlbHMiLHJlcXVpcmVzOlsiaWNvbi1pbWFnZSJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwiaWNvbi10cmFuc2xhdGUiOnt0eXBlOiJhcnJheSIsdmFsdWU6Im51bWJlciIsbGVuZ3RoOjIsZGVmYXVsdDpbMCwwXSx0cmFuc2l0aW9uOiEwLHVuaXRzOiJwaXhlbHMiLHJlcXVpcmVzOlsiaWNvbi1pbWFnZSJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwiaWNvbi10cmFuc2xhdGUtYW5jaG9yIjp7dHlwZToiZW51bSIsdmFsdWVzOnttYXA6e30sdmlld3BvcnQ6e319LGRlZmF1bHQ6Im1hcCIscmVxdWlyZXM6WyJpY29uLWltYWdlIiwiaWNvbi10cmFuc2xhdGUiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInRleHQtb3BhY2l0eSI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDoxLG1pbmltdW06MCxtYXhpbXVtOjEsdHJhbnNpdGlvbjohMCxyZXF1aXJlczpbInRleHQtZmllbGQiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sInRleHQtY29sb3IiOnt0eXBlOiJjb2xvciIsZGVmYXVsdDoiIzAwMDAwMCIsdHJhbnNpdGlvbjohMCxvdmVycmlkYWJsZTohMCxyZXF1aXJlczpbInRleHQtZmllbGQiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sInRleHQtaGFsby1jb2xvciI6e3R5cGU6ImNvbG9yIixkZWZhdWx0OiJyZ2JhKDAsIDAsIDAsIDApIix0cmFuc2l0aW9uOiEwLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwidGV4dC1oYWxvLXdpZHRoIjp7dHlwZToibnVtYmVyIixkZWZhdWx0OjAsbWluaW11bTowLHRyYW5zaXRpb246ITAsdW5pdHM6InBpeGVscyIscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJ0ZXh0LWhhbG8tYmx1ciI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDowLG1pbmltdW06MCx0cmFuc2l0aW9uOiEwLHVuaXRzOiJwaXhlbHMiLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwidGV4dC10cmFuc2xhdGUiOnt0eXBlOiJhcnJheSIsdmFsdWU6Im51bWJlciIsbGVuZ3RoOjIsZGVmYXVsdDpbMCwwXSx0cmFuc2l0aW9uOiEwLHVuaXRzOiJwaXhlbHMiLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwidGV4dC10cmFuc2xhdGUtYW5jaG9yIjp7dHlwZToiZW51bSIsdmFsdWVzOnttYXA6e30sdmlld3BvcnQ6e319LGRlZmF1bHQ6Im1hcCIscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIiwidGV4dC10cmFuc2xhdGUiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In19LHBhaW50X3Jhc3Rlcjp7InJhc3Rlci1vcGFjaXR5Ijp7dHlwZToibnVtYmVyIixkZWZhdWx0OjEsbWluaW11bTowLG1heGltdW06MSx0cmFuc2l0aW9uOiEwLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwicmFzdGVyLWh1ZS1yb3RhdGUiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MCxwZXJpb2Q6MzYwLHRyYW5zaXRpb246ITAsdW5pdHM6ImRlZ3JlZXMiLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwicmFzdGVyLWJyaWdodG5lc3MtbWluIjp7dHlwZToibnVtYmVyIixkZWZhdWx0OjAsbWluaW11bTowLG1heGltdW06MSx0cmFuc2l0aW9uOiEwLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwicmFzdGVyLWJyaWdodG5lc3MtbWF4Ijp7dHlwZToibnVtYmVyIixkZWZhdWx0OjEsbWluaW11bTowLG1heGltdW06MSx0cmFuc2l0aW9uOiEwLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwicmFzdGVyLXNhdHVyYXRpb24iOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MCxtaW5pbXVtOi0xLG1heGltdW06MSx0cmFuc2l0aW9uOiEwLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwicmFzdGVyLWNvbnRyYXN0Ijp7dHlwZToibnVtYmVyIixkZWZhdWx0OjAsbWluaW11bTotMSxtYXhpbXVtOjEsdHJhbnNpdGlvbjohMCxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInJhc3Rlci1yZXNhbXBsaW5nIjp7dHlwZToiZW51bSIsdmFsdWVzOntsaW5lYXI6e30sbmVhcmVzdDp7fX0sZGVmYXVsdDoibGluZWFyIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInJhc3Rlci1mYWRlLWR1cmF0aW9uIjp7dHlwZToibnVtYmVyIixkZWZhdWx0OjMwMCxtaW5pbXVtOjAsdHJhbnNpdGlvbjohMSx1bml0czoibWlsbGlzZWNvbmRzIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In19LHBhaW50X2hpbGxzaGFkZTp7ImhpbGxzaGFkZS1pbGx1bWluYXRpb24tZGlyZWN0aW9uIjp7dHlwZToibnVtYmVyIixkZWZhdWx0OjMzNSxtaW5pbXVtOjAsbWF4aW11bTozNTksdHJhbnNpdGlvbjohMSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImhpbGxzaGFkZS1pbGx1bWluYXRpb24tYW5jaG9yIjp7dHlwZToiZW51bSIsdmFsdWVzOnttYXA6e30sdmlld3BvcnQ6e319LGRlZmF1bHQ6InZpZXdwb3J0IixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImhpbGxzaGFkZS1leGFnZ2VyYXRpb24iOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6LjUsbWluaW11bTowLG1heGltdW06MSx0cmFuc2l0aW9uOiEwLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwiaGlsbHNoYWRlLXNoYWRvdy1jb2xvciI6e3R5cGU6ImNvbG9yIixkZWZhdWx0OiIjMDAwMDAwIix0cmFuc2l0aW9uOiEwLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwiaGlsbHNoYWRlLWhpZ2hsaWdodC1jb2xvciI6e3R5cGU6ImNvbG9yIixkZWZhdWx0OiIjRkZGRkZGIix0cmFuc2l0aW9uOiEwLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwiaGlsbHNoYWRlLWFjY2VudC1jb2xvciI6e3R5cGU6ImNvbG9yIixkZWZhdWx0OiIjMDAwMDAwIix0cmFuc2l0aW9uOiEwLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifX0scGFpbnRfYmFja2dyb3VuZDp7ImJhY2tncm91bmQtY29sb3IiOnt0eXBlOiJjb2xvciIsZGVmYXVsdDoiIzAwMDAwMCIsdHJhbnNpdGlvbjohMCxyZXF1aXJlczpbeyIhIjoiYmFja2dyb3VuZC1wYXR0ZXJuIn1dLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwiYmFja2dyb3VuZC1wYXR0ZXJuIjp7dHlwZToic3RyaW5nIix0cmFuc2l0aW9uOiEwLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImNyb3NzLWZhZGVkIn0sImJhY2tncm91bmQtb3BhY2l0eSI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDoxLG1pbmltdW06MCxtYXhpbXVtOjEsdHJhbnNpdGlvbjohMCxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In19LHRyYW5zaXRpb246e2R1cmF0aW9uOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MzAwLG1pbmltdW06MCx1bml0czoibWlsbGlzZWNvbmRzIn0sZGVsYXk6e3R5cGU6Im51bWJlciIsZGVmYXVsdDowLG1pbmltdW06MCx1bml0czoibWlsbGlzZWNvbmRzIn19LCJwcm9wZXJ0eS10eXBlIjp7ImRhdGEtZHJpdmVuIjp7dHlwZToicHJvcGVydHktdHlwZSJ9LCJjcm9zcy1mYWRlZCI6e3R5cGU6InByb3BlcnR5LXR5cGUifSwiY3Jvc3MtZmFkZWQtZGF0YS1kcml2ZW4iOnt0eXBlOiJwcm9wZXJ0eS10eXBlIn0sImNvbG9yLXJhbXAiOnt0eXBlOiJwcm9wZXJ0eS10eXBlIn0sImRhdGEtY29uc3RhbnQiOnt0eXBlOiJwcm9wZXJ0eS10eXBlIn0sY29uc3RhbnQ6e3R5cGU6InByb3BlcnR5LXR5cGUifX19LE10PWZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMubWVzc2FnZT0odD90KyI6ICI6IiIpK3IsbiYmKHRoaXMuaWRlbnRpZmllcj1uKSxudWxsIT1lJiZlLl9fbGluZV9fJiYodGhpcy5saW5lPWUuX19saW5lX18pfTtmdW5jdGlvbiBBdCh0KXt2YXIgZT10LmtleSxyPXQudmFsdWU7cmV0dXJuIHI/W25ldyBNdChlLHIsImNvbnN0YW50cyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhcyBvZiB2OCIpXTpbXX1mdW5jdGlvbiBTdCh0KXtmb3IodmFyIGU9W10scj1hcmd1bWVudHMubGVuZ3RoLTE7ci0tID4wOyllW3JdPWFyZ3VtZW50c1tyKzFdO2Zvcih2YXIgbj0wLGE9ZTtuPGEubGVuZ3RoO24rPTEpe3ZhciBpPWFbbl07Zm9yKHZhciBvIGluIGkpdFtvXT1pW29dfXJldHVybiB0fWZ1bmN0aW9uIEV0KHQpe3JldHVybiB0IGluc3RhbmNlb2YgTnVtYmVyfHx0IGluc3RhbmNlb2YgU3RyaW5nfHx0IGluc3RhbmNlb2YgQm9vbGVhbn1mdW5jdGlvbiBMdCh0KXtyZXR1cm4gRXQodCk/dC52YWx1ZU9mKCk6dH1mdW5jdGlvbiBDdCh0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB0Lm1hcChDdCk7aWYodCBpbnN0YW5jZW9mIE9iamVjdCYmIUV0KHQpKXt2YXIgZT17fTtmb3IodmFyIHIgaW4gdCllW3JdPUN0KHRbcl0pO3JldHVybiBlfXJldHVybiBMdCh0KX12YXIgUHQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLHIpe3QuY2FsbCh0aGlzLHIpLHRoaXMubWVzc2FnZT1yLHRoaXMua2V5PWV9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGV9KEVycm9yKSxPdD1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPVtdKSx0aGlzLnBhcmVudD10LHRoaXMuYmluZGluZ3M9e307Zm9yKHZhciByPTAsbj1lO3I8bi5sZW5ndGg7cis9MSl7dmFyIGE9bltyXSxpPWFbMF0sbz1hWzFdO3RoaXMuYmluZGluZ3NbaV09b319O090LnByb3RvdHlwZS5jb25jYXQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBPdCh0aGlzLHQpfSxPdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe2lmKHRoaXMuYmluZGluZ3NbdF0pcmV0dXJuIHRoaXMuYmluZGluZ3NbdF07aWYodGhpcy5wYXJlbnQpcmV0dXJuIHRoaXMucGFyZW50LmdldCh0KTt0aHJvdyBuZXcgRXJyb3IodCsiIG5vdCBmb3VuZCBpbiBzY29wZS4iKX0sT3QucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4hIXRoaXMuYmluZGluZ3NbdF18fCEhdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50Lmhhcyh0KX07dmFyIHp0PXtraW5kOiJudWxsIn0sSXQ9e2tpbmQ6Im51bWJlciJ9LER0PXtraW5kOiJzdHJpbmcifSxSdD17a2luZDoiYm9vbGVhbiJ9LEZ0PXtraW5kOiJjb2xvciJ9LEJ0PXtraW5kOiJvYmplY3QifSxOdD17a2luZDoidmFsdWUifSxqdD17a2luZDoiY29sbGF0b3IifSxWdD17a2luZDoiZm9ybWF0dGVkIn07ZnVuY3Rpb24gVXQodCxlKXtyZXR1cm57a2luZDoiYXJyYXkiLGl0ZW1UeXBlOnQsTjplfX1mdW5jdGlvbiBxdCh0KXtpZigiYXJyYXkiPT09dC5raW5kKXt2YXIgZT1xdCh0Lml0ZW1UeXBlKTtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQuTj8iYXJyYXk8IitlKyIsICIrdC5OKyI+IjoidmFsdWUiPT09dC5pdGVtVHlwZS5raW5kPyJhcnJheSI6ImFycmF5PCIrZSsiPiJ9cmV0dXJuIHQua2luZH12YXIgSHQ9W3p0LEl0LER0LFJ0LEZ0LFZ0LEJ0LFV0KE50KV07ZnVuY3Rpb24gR3QodCxlKXtpZigiZXJyb3IiPT09ZS5raW5kKXJldHVybiBudWxsO2lmKCJhcnJheSI9PT10LmtpbmQpe2lmKCJhcnJheSI9PT1lLmtpbmQmJigwPT09ZS5OJiYidmFsdWUiPT09ZS5pdGVtVHlwZS5raW5kfHwhR3QodC5pdGVtVHlwZSxlLml0ZW1UeXBlKSkmJigibnVtYmVyIiE9dHlwZW9mIHQuTnx8dC5OPT09ZS5OKSlyZXR1cm4gbnVsbH1lbHNle2lmKHQua2luZD09PWUua2luZClyZXR1cm4gbnVsbDtpZigidmFsdWUiPT09dC5raW5kKWZvcih2YXIgcj0wLG49SHQ7cjxuLmxlbmd0aDtyKz0xKWlmKCFHdChuW3JdLGUpKXJldHVybiBudWxsfXJldHVybiJFeHBlY3RlZCAiK3F0KHQpKyIgYnV0IGZvdW5kICIrcXQoZSkrIiBpbnN0ZWFkLiJ9dmFyIFl0PWUoZnVuY3Rpb24odCxlKXt2YXIgcj17dHJhbnNwYXJlbnQ6WzAsMCwwLDBdLGFsaWNlYmx1ZTpbMjQwLDI0OCwyNTUsMV0sYW50aXF1ZXdoaXRlOlsyNTAsMjM1LDIxNSwxXSxhcXVhOlswLDI1NSwyNTUsMV0sYXF1YW1hcmluZTpbMTI3LDI1NSwyMTIsMV0sYXp1cmU6WzI0MCwyNTUsMjU1LDFdLGJlaWdlOlsyNDUsMjQ1LDIyMCwxXSxiaXNxdWU6WzI1NSwyMjgsMTk2LDFdLGJsYWNrOlswLDAsMCwxXSxibGFuY2hlZGFsbW9uZDpbMjU1LDIzNSwyMDUsMV0sYmx1ZTpbMCwwLDI1NSwxXSxibHVldmlvbGV0OlsxMzgsNDMsMjI2LDFdLGJyb3duOlsxNjUsNDIsNDIsMV0sYnVybHl3b29kOlsyMjIsMTg0LDEzNSwxXSxjYWRldGJsdWU6Wzk1LDE1OCwxNjAsMV0sY2hhcnRyZXVzZTpbMTI3LDI1NSwwLDFdLGNob2NvbGF0ZTpbMjEwLDEwNSwzMCwxXSxjb3JhbDpbMjU1LDEyNyw4MCwxXSxjb3JuZmxvd2VyYmx1ZTpbMTAwLDE0OSwyMzcsMV0sY29ybnNpbGs6WzI1NSwyNDgsMjIwLDFdLGNyaW1zb246WzIyMCwyMCw2MCwxXSxjeWFuOlswLDI1NSwyNTUsMV0sZGFya2JsdWU6WzAsMCwxMzksMV0sZGFya2N5YW46WzAsMTM5LDEzOSwxXSxkYXJrZ29sZGVucm9kOlsxODQsMTM0LDExLDFdLGRhcmtncmF5OlsxNjksMTY5LDE2OSwxXSxkYXJrZ3JlZW46WzAsMTAwLDAsMV0sZGFya2dyZXk6WzE2OSwxNjksMTY5LDFdLGRhcmtraGFraTpbMTg5LDE4MywxMDcsMV0sZGFya21hZ2VudGE6WzEzOSwwLDEzOSwxXSxkYXJrb2xpdmVncmVlbjpbODUsMTA3LDQ3LDFdLGRhcmtvcmFuZ2U6WzI1NSwxNDAsMCwxXSxkYXJrb3JjaGlkOlsxNTMsNTAsMjA0LDFdLGRhcmtyZWQ6WzEzOSwwLDAsMV0sZGFya3NhbG1vbjpbMjMzLDE1MCwxMjIsMV0sZGFya3NlYWdyZWVuOlsxNDMsMTg4LDE0MywxXSxkYXJrc2xhdGVibHVlOls3Miw2MSwxMzksMV0sZGFya3NsYXRlZ3JheTpbNDcsNzksNzksMV0sZGFya3NsYXRlZ3JleTpbNDcsNzksNzksMV0sZGFya3R1cnF1b2lzZTpbMCwyMDYsMjA5LDFdLGRhcmt2aW9sZXQ6WzE0OCwwLDIxMSwxXSxkZWVwcGluazpbMjU1LDIwLDE0NywxXSxkZWVwc2t5Ymx1ZTpbMCwxOTEsMjU1LDFdLGRpbWdyYXk6WzEwNSwxMDUsMTA1LDFdLGRpbWdyZXk6WzEwNSwxMDUsMTA1LDFdLGRvZGdlcmJsdWU6WzMwLDE0NCwyNTUsMV0sZmlyZWJyaWNrOlsxNzgsMzQsMzQsMV0sZmxvcmFsd2hpdGU6WzI1NSwyNTAsMjQwLDFdLGZvcmVzdGdyZWVuOlszNCwxMzksMzQsMV0sZnVjaHNpYTpbMjU1LDAsMjU1LDFdLGdhaW5zYm9ybzpbMjIwLDIyMCwyMjAsMV0sZ2hvc3R3aGl0ZTpbMjQ4LDI0OCwyNTUsMV0sZ29sZDpbMjU1LDIxNSwwLDFdLGdvbGRlbnJvZDpbMjE4LDE2NSwzMiwxXSxncmF5OlsxMjgsMTI4LDEyOCwxXSxncmVlbjpbMCwxMjgsMCwxXSxncmVlbnllbGxvdzpbMTczLDI1NSw0NywxXSxncmV5OlsxMjgsMTI4LDEyOCwxXSxob25leWRldzpbMjQwLDI1NSwyNDAsMV0saG90cGluazpbMjU1LDEwNSwxODAsMV0saW5kaWFucmVkOlsyMDUsOTIsOTIsMV0saW5kaWdvOls3NSwwLDEzMCwxXSxpdm9yeTpbMjU1LDI1NSwyNDAsMV0sa2hha2k6WzI0MCwyMzAsMTQwLDFdLGxhdmVuZGVyOlsyMzAsMjMwLDI1MCwxXSxsYXZlbmRlcmJsdXNoOlsyNTUsMjQwLDI0NSwxXSxsYXduZ3JlZW46WzEyNCwyNTIsMCwxXSxsZW1vbmNoaWZmb246WzI1NSwyNTAsMjA1LDFdLGxpZ2h0Ymx1ZTpbMTczLDIxNiwyMzAsMV0sbGlnaHRjb3JhbDpbMjQwLDEyOCwxMjgsMV0sbGlnaHRjeWFuOlsyMjQsMjU1LDI1NSwxXSxsaWdodGdvbGRlbnJvZHllbGxvdzpbMjUwLDI1MCwyMTAsMV0sbGlnaHRncmF5OlsyMTEsMjExLDIxMSwxXSxsaWdodGdyZWVuOlsxNDQsMjM4LDE0NCwxXSxsaWdodGdyZXk6WzIxMSwyMTEsMjExLDFdLGxpZ2h0cGluazpbMjU1LDE4MiwxOTMsMV0sbGlnaHRzYWxtb246WzI1NSwxNjAsMTIyLDFdLGxpZ2h0c2VhZ3JlZW46WzMyLDE3OCwxNzAsMV0sbGlnaHRza3libHVlOlsxMzUsMjA2LDI1MCwxXSxsaWdodHNsYXRlZ3JheTpbMTE5LDEzNiwxNTMsMV0sbGlnaHRzbGF0ZWdyZXk6WzExOSwxMzYsMTUzLDFdLGxpZ2h0c3RlZWxibHVlOlsxNzYsMTk2LDIyMiwxXSxsaWdodHllbGxvdzpbMjU1LDI1NSwyMjQsMV0sbGltZTpbMCwyNTUsMCwxXSxsaW1lZ3JlZW46WzUwLDIwNSw1MCwxXSxsaW5lbjpbMjUwLDI0MCwyMzAsMV0sbWFnZW50YTpbMjU1LDAsMjU1LDFdLG1hcm9vbjpbMTI4LDAsMCwxXSxtZWRpdW1hcXVhbWFyaW5lOlsxMDIsMjA1LDE3MCwxXSxtZWRpdW1ibHVlOlswLDAsMjA1LDFdLG1lZGl1bW9yY2hpZDpbMTg2LDg1LDIxMSwxXSxtZWRpdW1wdXJwbGU6WzE0NywxMTIsMjE5LDFdLG1lZGl1bXNlYWdyZWVuOls2MCwxNzksMTEzLDFdLG1lZGl1bXNsYXRlYmx1ZTpbMTIzLDEwNCwyMzgsMV0sbWVkaXVtc3ByaW5nZ3JlZW46WzAsMjUwLDE1NCwxXSxtZWRpdW10dXJxdW9pc2U6WzcyLDIwOSwyMDQsMV0sbWVkaXVtdmlvbGV0cmVkOlsxOTksMjEsMTMzLDFdLG1pZG5pZ2h0Ymx1ZTpbMjUsMjUsMTEyLDFdLG1pbnRjcmVhbTpbMjQ1LDI1NSwyNTAsMV0sbWlzdHlyb3NlOlsyNTUsMjI4LDIyNSwxXSxtb2NjYXNpbjpbMjU1LDIyOCwxODEsMV0sbmF2YWpvd2hpdGU6WzI1NSwyMjIsMTczLDFdLG5hdnk6WzAsMCwxMjgsMV0sb2xkbGFjZTpbMjUzLDI0NSwyMzAsMV0sb2xpdmU6WzEyOCwxMjgsMCwxXSxvbGl2ZWRyYWI6WzEwNywxNDIsMzUsMV0sb3JhbmdlOlsyNTUsMTY1LDAsMV0sb3JhbmdlcmVkOlsyNTUsNjksMCwxXSxvcmNoaWQ6WzIxOCwxMTIsMjE0LDFdLHBhbGVnb2xkZW5yb2Q6WzIzOCwyMzIsMTcwLDFdLHBhbGVncmVlbjpbMTUyLDI1MSwxNTIsMV0scGFsZXR1cnF1b2lzZTpbMTc1LDIzOCwyMzgsMV0scGFsZXZpb2xldHJlZDpbMjE5LDExMiwxNDcsMV0scGFwYXlhd2hpcDpbMjU1LDIzOSwyMTMsMV0scGVhY2hwdWZmOlsyNTUsMjE4LDE4NSwxXSxwZXJ1OlsyMDUsMTMzLDYzLDFdLHBpbms6WzI1NSwxOTIsMjAzLDFdLHBsdW06WzIyMSwxNjAsMjIxLDFdLHBvd2RlcmJsdWU6WzE3NiwyMjQsMjMwLDFdLHB1cnBsZTpbMTI4LDAsMTI4LDFdLHJlYmVjY2FwdXJwbGU6WzEwMiw1MSwxNTMsMV0scmVkOlsyNTUsMCwwLDFdLHJvc3licm93bjpbMTg4LDE0MywxNDMsMV0scm95YWxibHVlOls2NSwxMDUsMjI1LDFdLHNhZGRsZWJyb3duOlsxMzksNjksMTksMV0sc2FsbW9uOlsyNTAsMTI4LDExNCwxXSxzYW5keWJyb3duOlsyNDQsMTY0LDk2LDFdLHNlYWdyZWVuOls0NiwxMzksODcsMV0sc2Vhc2hlbGw6WzI1NSwyNDUsMjM4LDFdLHNpZW5uYTpbMTYwLDgyLDQ1LDFdLHNpbHZlcjpbMTkyLDE5MiwxOTIsMV0sc2t5Ymx1ZTpbMTM1LDIwNiwyMzUsMV0sc2xhdGVibHVlOlsxMDYsOTAsMjA1LDFdLHNsYXRlZ3JheTpbMTEyLDEyOCwxNDQsMV0sc2xhdGVncmV5OlsxMTIsMTI4LDE0NCwxXSxzbm93OlsyNTUsMjUwLDI1MCwxXSxzcHJpbmdncmVlbjpbMCwyNTUsMTI3LDFdLHN0ZWVsYmx1ZTpbNzAsMTMwLDE4MCwxXSx0YW46WzIxMCwxODAsMTQwLDFdLHRlYWw6WzAsMTI4LDEyOCwxXSx0aGlzdGxlOlsyMTYsMTkxLDIxNiwxXSx0b21hdG86WzI1NSw5OSw3MSwxXSx0dXJxdW9pc2U6WzY0LDIyNCwyMDgsMV0sdmlvbGV0OlsyMzgsMTMwLDIzOCwxXSx3aGVhdDpbMjQ1LDIyMiwxNzksMV0sd2hpdGU6WzI1NSwyNTUsMjU1LDFdLHdoaXRlc21va2U6WzI0NSwyNDUsMjQ1LDFdLHllbGxvdzpbMjU1LDI1NSwwLDFdLHllbGxvd2dyZWVuOlsxNTQsMjA1LDUwLDFdfTtmdW5jdGlvbiBuKHQpe3JldHVybih0PU1hdGgucm91bmQodCkpPDA/MDp0PjI1NT8yNTU6dH1mdW5jdGlvbiBhKHQpe3JldHVybiB0PDA/MDp0PjE/MTp0fWZ1bmN0aW9uIGkodCl7cmV0dXJuIiUiPT09dFt0Lmxlbmd0aC0xXT9uKHBhcnNlRmxvYXQodCkvMTAwKjI1NSk6bihwYXJzZUludCh0KSl9ZnVuY3Rpb24gbyh0KXtyZXR1cm4iJSI9PT10W3QubGVuZ3RoLTFdP2EocGFyc2VGbG9hdCh0KS8xMDApOmEocGFyc2VGbG9hdCh0KSl9ZnVuY3Rpb24gcyh0LGUscil7cmV0dXJuIHI8MD9yKz0xOnI+MSYmKHItPTEpLDYqcjwxP3QrKGUtdCkqcio2OjIqcjwxP2U6MypyPDI/dCsoZS10KSooMi8zLXIpKjY6dH10cnl7ZS5wYXJzZUNTU0NvbG9yPWZ1bmN0aW9uKHQpe3ZhciBlLGE9dC5yZXBsYWNlKC8gL2csIiIpLnRvTG93ZXJDYXNlKCk7aWYoYSBpbiByKXJldHVybiByW2FdLnNsaWNlKCk7aWYoIiMiPT09YVswXSlyZXR1cm4gND09PWEubGVuZ3RoPyhlPXBhcnNlSW50KGEuc3Vic3RyKDEpLDE2KSk+PTAmJmU8PTQwOTU/WygzODQwJmUpPj40fCgzODQwJmUpPj44LDI0MCZlfCgyNDAmZSk+PjQsMTUmZXwoMTUmZSk8PDQsMV06bnVsbDo3PT09YS5sZW5ndGgmJihlPXBhcnNlSW50KGEuc3Vic3RyKDEpLDE2KSk+PTAmJmU8PTE2Nzc3MjE1P1soMTY3MTE2ODAmZSk+PjE2LCg2NTI4MCZlKT4+OCwyNTUmZSwxXTpudWxsO3ZhciBsPWEuaW5kZXhPZigiKCIpLGM9YS5pbmRleE9mKCIpIik7aWYoLTEhPT1sJiZjKzE9PT1hLmxlbmd0aCl7dmFyIHU9YS5zdWJzdHIoMCxsKSxoPWEuc3Vic3RyKGwrMSxjLShsKzEpKS5zcGxpdCgiLCIpLGY9MTtzd2l0Y2godSl7Y2FzZSJyZ2JhIjppZig0IT09aC5sZW5ndGgpcmV0dXJuIG51bGw7Zj1vKGgucG9wKCkpO2Nhc2UicmdiIjpyZXR1cm4gMyE9PWgubGVuZ3RoP251bGw6W2koaFswXSksaShoWzFdKSxpKGhbMl0pLGZdO2Nhc2UiaHNsYSI6aWYoNCE9PWgubGVuZ3RoKXJldHVybiBudWxsO2Y9byhoLnBvcCgpKTtjYXNlImhzbCI6aWYoMyE9PWgubGVuZ3RoKXJldHVybiBudWxsO3ZhciBwPShwYXJzZUZsb2F0KGhbMF0pJTM2MCszNjApJTM2MC8zNjAsZD1vKGhbMV0pLGc9byhoWzJdKSx2PWc8PS41P2cqKGQrMSk6ZytkLWcqZCxtPTIqZy12O3JldHVybltuKDI1NSpzKG0sdixwKzEvMykpLG4oMjU1KnMobSx2LHApKSxuKDI1NSpzKG0sdixwLTEvMykpLGZdO2RlZmF1bHQ6cmV0dXJuIG51bGx9fXJldHVybiBudWxsfX1jYXRjaCh0KXt9fSkucGFyc2VDU1NDb2xvcixXdD1mdW5jdGlvbih0LGUscixuKXt2b2lkIDA9PT1uJiYobj0xKSx0aGlzLnI9dCx0aGlzLmc9ZSx0aGlzLmI9cix0aGlzLmE9bn07V3QucGFyc2U9ZnVuY3Rpb24odCl7aWYodCl7aWYodCBpbnN0YW5jZW9mIFd0KXJldHVybiB0O2lmKCJzdHJpbmciPT10eXBlb2YgdCl7dmFyIGU9WXQodCk7aWYoZSlyZXR1cm4gbmV3IFd0KGVbMF0vMjU1KmVbM10sZVsxXS8yNTUqZVszXSxlWzJdLzI1NSplWzNdLGVbM10pfX19LFd0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3ZhciB0PXRoaXMudG9BcnJheSgpLGU9dFswXSxyPXRbMV0sbj10WzJdLGE9dFszXTtyZXR1cm4icmdiYSgiK01hdGgucm91bmQoZSkrIiwiK01hdGgucm91bmQocikrIiwiK01hdGgucm91bmQobikrIiwiK2ErIikifSxXdC5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbigpe3ZhciB0PXRoaXMucixlPXRoaXMuZyxyPXRoaXMuYixuPXRoaXMuYTtyZXR1cm4gMD09PW4/WzAsMCwwLDBdOlsyNTUqdC9uLDI1NSplL24sMjU1KnIvbixuXX0sV3QuYmxhY2s9bmV3IFd0KDAsMCwwLDEpLFd0LndoaXRlPW5ldyBXdCgxLDEsMSwxKSxXdC50cmFuc3BhcmVudD1uZXcgV3QoMCwwLDAsMCksV3QucmVkPW5ldyBXdCgxLDAsMCwxKTt2YXIgWHQ9ZnVuY3Rpb24odCxlLHIpe3RoaXMuc2Vuc2l0aXZpdHk9dD9lPyJ2YXJpYW50IjoiY2FzZSI6ZT8iYWNjZW50IjoiYmFzZSIsdGhpcy5sb2NhbGU9cix0aGlzLmNvbGxhdG9yPW5ldyBJbnRsLkNvbGxhdG9yKHRoaXMubG9jYWxlP3RoaXMubG9jYWxlOltdLHtzZW5zaXRpdml0eTp0aGlzLnNlbnNpdGl2aXR5LHVzYWdlOiJzZWFyY2gifSl9O1h0LnByb3RvdHlwZS5jb21wYXJlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuY29sbGF0b3IuY29tcGFyZSh0LGUpfSxYdC5wcm90b3R5cGUucmVzb2x2ZWRMb2NhbGU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEludGwuQ29sbGF0b3IodGhpcy5sb2NhbGU/dGhpcy5sb2NhbGU6W10pLnJlc29sdmVkT3B0aW9ucygpLmxvY2FsZX07dmFyIFp0PWZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMudGV4dD10LHRoaXMuc2NhbGU9ZSx0aGlzLmZvbnRTdGFjaz1yLHRoaXMudGV4dENvbG9yPW59LEp0PWZ1bmN0aW9uKHQpe3RoaXMuc2VjdGlvbnM9dH07ZnVuY3Rpb24gS3QodCxlLHIsbil7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZ0Pj0wJiZ0PD0yNTUmJiJudW1iZXIiPT10eXBlb2YgZSYmZT49MCYmZTw9MjU1JiYibnVtYmVyIj09dHlwZW9mIHImJnI+PTAmJnI8PTI1NT92b2lkIDA9PT1ufHwibnVtYmVyIj09dHlwZW9mIG4mJm4+PTAmJm48PTE/bnVsbDoiSW52YWxpZCByZ2JhIHZhbHVlIFsiK1t0LGUscixuXS5qb2luKCIsICIpKyJdOiAnYScgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDEuIjoiSW52YWxpZCByZ2JhIHZhbHVlIFsiKygibnVtYmVyIj09dHlwZW9mIG4/W3QsZSxyLG5dOlt0LGUscl0pLmpvaW4oIiwgIikrIl06ICdyJywgJ2cnLCBhbmQgJ2InIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyNTUuIn1mdW5jdGlvbiBRdCh0KXtpZihudWxsPT09dClyZXR1cm4genQ7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiBEdDtpZigiYm9vbGVhbiI9PXR5cGVvZiB0KXJldHVybiBSdDtpZigibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuIEl0O2lmKHQgaW5zdGFuY2VvZiBXdClyZXR1cm4gRnQ7aWYodCBpbnN0YW5jZW9mIFh0KXJldHVybiBqdDtpZih0IGluc3RhbmNlb2YgSnQpcmV0dXJuIFZ0O2lmKEFycmF5LmlzQXJyYXkodCkpe2Zvcih2YXIgZSxyPXQubGVuZ3RoLG49MCxhPXQ7bjxhLmxlbmd0aDtuKz0xKXt2YXIgaT1RdChhW25dKTtpZihlKXtpZihlPT09aSljb250aW51ZTtlPU50O2JyZWFrfWU9aX1yZXR1cm4gVXQoZXx8TnQscil9cmV0dXJuIEJ0fWZ1bmN0aW9uICR0KHQpe3ZhciBlPXR5cGVvZiB0O3JldHVybiBudWxsPT09dD8iIjoic3RyaW5nIj09PWV8fCJudW1iZXIiPT09ZXx8ImJvb2xlYW4iPT09ZT9TdHJpbmcodCk6dCBpbnN0YW5jZW9mIFd0fHx0IGluc3RhbmNlb2YgSnQ/dC50b1N0cmluZygpOkpTT04uc3RyaW5naWZ5KHQpfUp0LmZyb21TdHJpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBKdChbbmV3IFp0KHQsbnVsbCxudWxsLG51bGwpXSl9LEp0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNlY3Rpb25zLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC50ZXh0fSkuam9pbigiIil9LEp0LnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9WyJmb3JtYXQiXSxlPTAscj10aGlzLnNlY3Rpb25zO2U8ci5sZW5ndGg7ZSs9MSl7dmFyIG49cltlXTt0LnB1c2gobi50ZXh0KTt2YXIgYT17fTtuLmZvbnRTdGFjayYmKGFbInRleHQtZm9udCJdPVsibGl0ZXJhbCIsbi5mb250U3RhY2suc3BsaXQoIiwiKV0pLG4uc2NhbGUmJihhWyJmb250LXNjYWxlIl09bi5zY2FsZSksbi50ZXh0Q29sb3ImJihhWyJ0ZXh0LWNvbG9yIl09WyJyZ2JhIl0uY29uY2F0KG4udGV4dENvbG9yLnRvQXJyYXkoKSkpLHQucHVzaChhKX1yZXR1cm4gdH07dmFyIHRlPWZ1bmN0aW9uKHQsZSl7dGhpcy50eXBlPXQsdGhpcy52YWx1ZT1lfTt0ZS5wYXJzZT1mdW5jdGlvbih0LGUpe2lmKDIhPT10Lmxlbmd0aClyZXR1cm4gZS5lcnJvcigiJ2xpdGVyYWwnIGV4cHJlc3Npb24gcmVxdWlyZXMgZXhhY3RseSBvbmUgYXJndW1lbnQsIGJ1dCBmb3VuZCAiKyh0Lmxlbmd0aC0xKSsiIGluc3RlYWQuIik7aWYoIWZ1bmN0aW9uIHQoZSl7aWYobnVsbD09PWUpcmV0dXJuITA7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiEwO2lmKCJib29sZWFuIj09dHlwZW9mIGUpcmV0dXJuITA7aWYoIm51bWJlciI9PXR5cGVvZiBlKXJldHVybiEwO2lmKGUgaW5zdGFuY2VvZiBXdClyZXR1cm4hMDtpZihlIGluc3RhbmNlb2YgWHQpcmV0dXJuITA7aWYoZSBpbnN0YW5jZW9mIEp0KXJldHVybiEwO2lmKEFycmF5LmlzQXJyYXkoZSkpe2Zvcih2YXIgcj0wLG49ZTtyPG4ubGVuZ3RoO3IrPTEpaWYoIXQobltyXSkpcmV0dXJuITE7cmV0dXJuITB9aWYoIm9iamVjdCI9PXR5cGVvZiBlKXtmb3IodmFyIGEgaW4gZSlpZighdChlW2FdKSlyZXR1cm4hMTtyZXR1cm4hMH1yZXR1cm4hMX0odFsxXSkpcmV0dXJuIGUuZXJyb3IoImludmFsaWQgdmFsdWUiKTt2YXIgcj10WzFdLG49UXQociksYT1lLmV4cGVjdGVkVHlwZTtyZXR1cm4iYXJyYXkiIT09bi5raW5kfHwwIT09bi5OfHwhYXx8ImFycmF5IiE9PWEua2luZHx8Im51bWJlciI9PXR5cGVvZiBhLk4mJjAhPT1hLk58fChuPWEpLG5ldyB0ZShuLHIpfSx0ZS5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX0sdGUucHJvdG90eXBlLmVhY2hDaGlsZD1mdW5jdGlvbigpe30sdGUucHJvdG90eXBlLnBvc3NpYmxlT3V0cHV0cz1mdW5jdGlvbigpe3JldHVyblt0aGlzLnZhbHVlXX0sdGUucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe3JldHVybiJhcnJheSI9PT10aGlzLnR5cGUua2luZHx8Im9iamVjdCI9PT10aGlzLnR5cGUua2luZD9bImxpdGVyYWwiLHRoaXMudmFsdWVdOnRoaXMudmFsdWUgaW5zdGFuY2VvZiBXdD9bInJnYmEiXS5jb25jYXQodGhpcy52YWx1ZS50b0FycmF5KCkpOnRoaXMudmFsdWUgaW5zdGFuY2VvZiBKdD90aGlzLnZhbHVlLnNlcmlhbGl6ZSgpOnRoaXMudmFsdWV9O3ZhciBlZT1mdW5jdGlvbih0KXt0aGlzLm5hbWU9IkV4cHJlc3Npb25FdmFsdWF0aW9uRXJyb3IiLHRoaXMubWVzc2FnZT10fTtlZS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWVzc2FnZX07dmFyIHJlPXtzdHJpbmc6RHQsbnVtYmVyOkl0LGJvb2xlYW46UnQsb2JqZWN0OkJ0fSxuZT1mdW5jdGlvbih0LGUpe3RoaXMudHlwZT10LHRoaXMuYXJncz1lfTtuZS5wYXJzZT1mdW5jdGlvbih0LGUpe2lmKHQubGVuZ3RoPDIpcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIGF0IGxlYXN0IG9uZSBhcmd1bWVudC4iKTt2YXIgcixuPTEsYT10WzBdO2lmKCJhcnJheSI9PT1hKXt2YXIgaSxvO2lmKHQubGVuZ3RoPjIpe3ZhciBzPXRbMV07aWYoInN0cmluZyIhPXR5cGVvZiBzfHwhKHMgaW4gcmUpfHwib2JqZWN0Ij09PXMpcmV0dXJuIGUuZXJyb3IoJ1RoZSBpdGVtIHR5cGUgYXJndW1lbnQgb2YgImFycmF5IiBtdXN0IGJlIG9uZSBvZiBzdHJpbmcsIG51bWJlciwgYm9vbGVhbicsMSk7aT1yZVtzXSxuKyt9ZWxzZSBpPU50O2lmKHQubGVuZ3RoPjMpe2lmKG51bGwhPT10WzJdJiYoIm51bWJlciIhPXR5cGVvZiB0WzJdfHx0WzJdPDB8fHRbMl0hPT1NYXRoLmZsb29yKHRbMl0pKSlyZXR1cm4gZS5lcnJvcignVGhlIGxlbmd0aCBhcmd1bWVudCB0byAiYXJyYXkiIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyIGxpdGVyYWwnLDIpO289dFsyXSxuKyt9cj1VdChpLG8pfWVsc2Ugcj1yZVthXTtmb3IodmFyIGw9W107bjx0Lmxlbmd0aDtuKyspe3ZhciBjPWUucGFyc2UodFtuXSxuLE50KTtpZighYylyZXR1cm4gbnVsbDtsLnB1c2goYyl9cmV0dXJuIG5ldyBuZShyLGwpfSxuZS5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTx0aGlzLmFyZ3MubGVuZ3RoO2UrKyl7dmFyIHI9dGhpcy5hcmdzW2VdLmV2YWx1YXRlKHQpO2lmKCFHdCh0aGlzLnR5cGUsUXQocikpKXJldHVybiByO2lmKGU9PT10aGlzLmFyZ3MubGVuZ3RoLTEpdGhyb3cgbmV3IGVlKCJFeHBlY3RlZCB2YWx1ZSB0byBiZSBvZiB0eXBlICIrcXQodGhpcy50eXBlKSsiLCBidXQgZm91bmQgIitxdChRdChyKSkrIiBpbnN0ZWFkLiIpfXJldHVybiBudWxsfSxuZS5wcm90b3R5cGUuZWFjaENoaWxkPWZ1bmN0aW9uKHQpe3RoaXMuYXJncy5mb3JFYWNoKHQpfSxuZS5wcm90b3R5cGUucG9zc2libGVPdXRwdXRzPWZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuKHQ9W10pLmNvbmNhdC5hcHBseSh0LHRoaXMuYXJncy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQucG9zc2libGVPdXRwdXRzKCl9KSl9LG5lLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnR5cGUsZT1bdC5raW5kXTtpZigiYXJyYXkiPT09dC5raW5kKXt2YXIgcj10Lml0ZW1UeXBlO2lmKCJzdHJpbmciPT09ci5raW5kfHwibnVtYmVyIj09PXIua2luZHx8ImJvb2xlYW4iPT09ci5raW5kKXtlLnB1c2goci5raW5kKTt2YXIgbj10Lk47KCJudW1iZXIiPT10eXBlb2Ygbnx8dGhpcy5hcmdzLmxlbmd0aD4xKSYmZS5wdXNoKG4pfX1yZXR1cm4gZS5jb25jYXQodGhpcy5hcmdzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5zZXJpYWxpemUoKX0pKX07dmFyIGFlPWZ1bmN0aW9uKHQpe3RoaXMudHlwZT1WdCx0aGlzLnNlY3Rpb25zPXR9O2FlLnBhcnNlPWZ1bmN0aW9uKHQsZSl7aWYodC5sZW5ndGg8MylyZXR1cm4gZS5lcnJvcigiRXhwZWN0ZWQgYXQgbGVhc3QgdHdvIGFyZ3VtZW50cy4iKTtpZigodC5sZW5ndGgtMSklMiE9MClyZXR1cm4gZS5lcnJvcigiRXhwZWN0ZWQgYW4gZXZlbiBudW1iZXIgb2YgYXJndW1lbnRzLiIpO2Zvcih2YXIgcj1bXSxuPTE7bjx0Lmxlbmd0aC0xO24rPTIpe3ZhciBhPWUucGFyc2UodFtuXSwxLE50KTtpZighYSlyZXR1cm4gbnVsbDt2YXIgaT1hLnR5cGUua2luZDtpZigic3RyaW5nIiE9PWkmJiJ2YWx1ZSIhPT1pJiYibnVsbCIhPT1pKXJldHVybiBlLmVycm9yKCJGb3JtYXR0ZWQgdGV4dCB0eXBlIG11c3QgYmUgJ3N0cmluZycsICd2YWx1ZScsIG9yICdudWxsJy4iKTt2YXIgbz10W24rMV07aWYoIm9iamVjdCIhPXR5cGVvZiBvfHxBcnJheS5pc0FycmF5KG8pKXJldHVybiBlLmVycm9yKCJGb3JtYXQgb3B0aW9ucyBhcmd1bWVudCBtdXN0IGJlIGFuIG9iamVjdC4iKTt2YXIgcz1udWxsO2lmKG9bImZvbnQtc2NhbGUiXSYmIShzPWUucGFyc2Uob1siZm9udC1zY2FsZSJdLDEsSXQpKSlyZXR1cm4gbnVsbDt2YXIgbD1udWxsO2lmKG9bInRleHQtZm9udCJdJiYhKGw9ZS5wYXJzZShvWyJ0ZXh0LWZvbnQiXSwxLFV0KER0KSkpKXJldHVybiBudWxsO3ZhciBjPW51bGw7aWYob1sidGV4dC1jb2xvciJdJiYhKGM9ZS5wYXJzZShvWyJ0ZXh0LWNvbG9yIl0sMSxGdCkpKXJldHVybiBudWxsO3IucHVzaCh7dGV4dDphLHNjYWxlOnMsZm9udDpsLHRleHRDb2xvcjpjfSl9cmV0dXJuIG5ldyBhZShyKX0sYWUucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgSnQodGhpcy5zZWN0aW9ucy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBadCgkdChlLnRleHQuZXZhbHVhdGUodCkpLGUuc2NhbGU/ZS5zY2FsZS5ldmFsdWF0ZSh0KTpudWxsLGUuZm9udD9lLmZvbnQuZXZhbHVhdGUodCkuam9pbigiLCIpOm51bGwsZS50ZXh0Q29sb3I/ZS50ZXh0Q29sb3IuZXZhbHVhdGUodCk6bnVsbCl9KSl9LGFlLnByb3RvdHlwZS5lYWNoQ2hpbGQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj10aGlzLnNlY3Rpb25zO2U8ci5sZW5ndGg7ZSs9MSl7dmFyIG49cltlXTt0KG4udGV4dCksbi5zY2FsZSYmdChuLnNjYWxlKSxuLmZvbnQmJnQobi5mb250KSxuLnRleHRDb2xvciYmdChuLnRleHRDb2xvcil9fSxhZS5wcm90b3R5cGUucG9zc2libGVPdXRwdXRzPWZ1bmN0aW9uKCl7cmV0dXJuW3ZvaWQgMF19LGFlLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9WyJmb3JtYXQiXSxlPTAscj10aGlzLnNlY3Rpb25zO2U8ci5sZW5ndGg7ZSs9MSl7dmFyIG49cltlXTt0LnB1c2gobi50ZXh0LnNlcmlhbGl6ZSgpKTt2YXIgYT17fTtuLnNjYWxlJiYoYVsiZm9udC1zY2FsZSJdPW4uc2NhbGUuc2VyaWFsaXplKCkpLG4uZm9udCYmKGFbInRleHQtZm9udCJdPW4uZm9udC5zZXJpYWxpemUoKSksbi50ZXh0Q29sb3ImJihhWyJ0ZXh0LWNvbG9yIl09bi50ZXh0Q29sb3Iuc2VyaWFsaXplKCkpLHQucHVzaChhKX1yZXR1cm4gdH07dmFyIGllPXsidG8tYm9vbGVhbiI6UnQsInRvLWNvbG9yIjpGdCwidG8tbnVtYmVyIjpJdCwidG8tc3RyaW5nIjpEdH0sb2U9ZnVuY3Rpb24odCxlKXt0aGlzLnR5cGU9dCx0aGlzLmFyZ3M9ZX07b2UucGFyc2U9ZnVuY3Rpb24odCxlKXtpZih0Lmxlbmd0aDwyKXJldHVybiBlLmVycm9yKCJFeHBlY3RlZCBhdCBsZWFzdCBvbmUgYXJndW1lbnQuIik7dmFyIHI9dFswXTtpZigoInRvLWJvb2xlYW4iPT09cnx8InRvLXN0cmluZyI9PT1yKSYmMiE9PXQubGVuZ3RoKXJldHVybiBlLmVycm9yKCJFeHBlY3RlZCBvbmUgYXJndW1lbnQuIik7Zm9yKHZhciBuPWllW3JdLGE9W10saT0xO2k8dC5sZW5ndGg7aSsrKXt2YXIgbz1lLnBhcnNlKHRbaV0saSxOdCk7aWYoIW8pcmV0dXJuIG51bGw7YS5wdXNoKG8pfXJldHVybiBuZXcgb2UobixhKX0sb2UucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQpe2lmKCJib29sZWFuIj09PXRoaXMudHlwZS5raW5kKXJldHVybiBCb29sZWFuKHRoaXMuYXJnc1swXS5ldmFsdWF0ZSh0KSk7aWYoImNvbG9yIj09PXRoaXMudHlwZS5raW5kKXtmb3IodmFyIGUscixuPTAsYT10aGlzLmFyZ3M7bjxhLmxlbmd0aDtuKz0xKXtpZihyPW51bGwsKGU9YVtuXS5ldmFsdWF0ZSh0KSlpbnN0YW5jZW9mIFd0KXJldHVybiBlO2lmKCJzdHJpbmciPT10eXBlb2YgZSl7dmFyIGk9dC5wYXJzZUNvbG9yKGUpO2lmKGkpcmV0dXJuIGl9ZWxzZSBpZihBcnJheS5pc0FycmF5KGUpJiYhKHI9ZS5sZW5ndGg8M3x8ZS5sZW5ndGg+ND8iSW52YWxpZCByYmdhIHZhbHVlICIrSlNPTi5zdHJpbmdpZnkoZSkrIjogZXhwZWN0ZWQgYW4gYXJyYXkgY29udGFpbmluZyBlaXRoZXIgdGhyZWUgb3IgZm91ciBudW1lcmljIHZhbHVlcy4iOkt0KGVbMF0sZVsxXSxlWzJdLGVbM10pKSlyZXR1cm4gbmV3IFd0KGVbMF0vMjU1LGVbMV0vMjU1LGVbMl0vMjU1LGVbM10pfXRocm93IG5ldyBlZShyfHwiQ291bGQgbm90IHBhcnNlIGNvbG9yIGZyb20gdmFsdWUgJyIrKCJzdHJpbmciPT10eXBlb2YgZT9lOlN0cmluZyhKU09OLnN0cmluZ2lmeShlKSkpKyInIil9aWYoIm51bWJlciI9PT10aGlzLnR5cGUua2luZCl7Zm9yKHZhciBvPW51bGwscz0wLGw9dGhpcy5hcmdzO3M8bC5sZW5ndGg7cys9MSl7aWYobnVsbD09PShvPWxbc10uZXZhbHVhdGUodCkpKXJldHVybiAwO3ZhciBjPU51bWJlcihvKTtpZighaXNOYU4oYykpcmV0dXJuIGN9dGhyb3cgbmV3IGVlKCJDb3VsZCBub3QgY29udmVydCAiK0pTT04uc3RyaW5naWZ5KG8pKyIgdG8gbnVtYmVyLiIpfXJldHVybiJmb3JtYXR0ZWQiPT09dGhpcy50eXBlLmtpbmQ/SnQuZnJvbVN0cmluZygkdCh0aGlzLmFyZ3NbMF0uZXZhbHVhdGUodCkpKTokdCh0aGlzLmFyZ3NbMF0uZXZhbHVhdGUodCkpfSxvZS5wcm90b3R5cGUuZWFjaENoaWxkPWZ1bmN0aW9uKHQpe3RoaXMuYXJncy5mb3JFYWNoKHQpfSxvZS5wcm90b3R5cGUucG9zc2libGVPdXRwdXRzPWZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuKHQ9W10pLmNvbmNhdC5hcHBseSh0LHRoaXMuYXJncy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQucG9zc2libGVPdXRwdXRzKCl9KSl9LG9lLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtpZigiZm9ybWF0dGVkIj09PXRoaXMudHlwZS5raW5kKXJldHVybiBuZXcgYWUoW3t0ZXh0OnRoaXMuYXJnc1swXSxzY2FsZTpudWxsLGZvbnQ6bnVsbCx0ZXh0Q29sb3I6bnVsbH1dKS5zZXJpYWxpemUoKTt2YXIgdD1bInRvLSIrdGhpcy50eXBlLmtpbmRdO3JldHVybiB0aGlzLmVhY2hDaGlsZChmdW5jdGlvbihlKXt0LnB1c2goZS5zZXJpYWxpemUoKSl9KSx0fTt2YXIgc2U9WyJVbmtub3duIiwiUG9pbnQiLCJMaW5lU3RyaW5nIiwiUG9seWdvbiJdLGxlPWZ1bmN0aW9uKCl7dGhpcy5nbG9iYWxzPW51bGwsdGhpcy5mZWF0dXJlPW51bGwsdGhpcy5mZWF0dXJlU3RhdGU9bnVsbCx0aGlzLmZvcm1hdHRlZFNlY3Rpb249bnVsbCx0aGlzLl9wYXJzZUNvbG9yQ2FjaGU9e319O2xlLnByb3RvdHlwZS5pZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZlYXR1cmUmJiJpZCJpbiB0aGlzLmZlYXR1cmU/dGhpcy5mZWF0dXJlLmlkOm51bGx9LGxlLnByb3RvdHlwZS5nZW9tZXRyeVR5cGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mZWF0dXJlPyJudW1iZXIiPT10eXBlb2YgdGhpcy5mZWF0dXJlLnR5cGU/c2VbdGhpcy5mZWF0dXJlLnR5cGVdOnRoaXMuZmVhdHVyZS50eXBlOm51bGx9LGxlLnByb3RvdHlwZS5wcm9wZXJ0aWVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmVhdHVyZSYmdGhpcy5mZWF0dXJlLnByb3BlcnRpZXN8fHt9fSxsZS5wcm90b3R5cGUucGFyc2VDb2xvcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9wYXJzZUNvbG9yQ2FjaGVbdF07cmV0dXJuIGV8fChlPXRoaXMuX3BhcnNlQ29sb3JDYWNoZVt0XT1XdC5wYXJzZSh0KSksZX07dmFyIGNlPWZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMubmFtZT10LHRoaXMudHlwZT1lLHRoaXMuX2V2YWx1YXRlPXIsdGhpcy5hcmdzPW59O2NlLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZXZhbHVhdGUodCx0aGlzLmFyZ3MpfSxjZS5wcm90b3R5cGUuZWFjaENoaWxkPWZ1bmN0aW9uKHQpe3RoaXMuYXJncy5mb3JFYWNoKHQpfSxjZS5wcm90b3R5cGUucG9zc2libGVPdXRwdXRzPWZ1bmN0aW9uKCl7cmV0dXJuW3ZvaWQgMF19LGNlLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy5uYW1lXS5jb25jYXQodGhpcy5hcmdzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5zZXJpYWxpemUoKX0pKX0sY2UucGFyc2U9ZnVuY3Rpb24odCxlKXt2YXIgcixuPXRbMF0sYT1jZS5kZWZpbml0aW9uc1tuXTtpZighYSlyZXR1cm4gZS5lcnJvcignVW5rbm93biBleHByZXNzaW9uICInK24rJyIuIElmIHlvdSB3YW50ZWQgYSBsaXRlcmFsIGFycmF5LCB1c2UgWyJsaXRlcmFsIiwgWy4uLl1dLicsMCk7Zm9yKHZhciBpPUFycmF5LmlzQXJyYXkoYSk/YVswXTphLnR5cGUsbz1BcnJheS5pc0FycmF5KGEpP1tbYVsxXSxhWzJdXV06YS5vdmVybG9hZHMscz1vLmZpbHRlcihmdW5jdGlvbihlKXt2YXIgcj1lWzBdO3JldHVybiFBcnJheS5pc0FycmF5KHIpfHxyLmxlbmd0aD09PXQubGVuZ3RoLTF9KSxsPW51bGwsYz0wLHU9cztjPHUubGVuZ3RoO2MrPTEpe3ZhciBoPXVbY10sZj1oWzBdLHA9aFsxXTtsPW5ldyBnZShlLnJlZ2lzdHJ5LGUucGF0aCxudWxsLGUuc2NvcGUpO2Zvcih2YXIgZD1bXSxnPSExLHY9MTt2PHQubGVuZ3RoO3YrKyl7dmFyIG09dFt2XSx5PUFycmF5LmlzQXJyYXkoZik/Zlt2LTFdOmYudHlwZSx4PWwucGFyc2UobSwxK2QubGVuZ3RoLHkpO2lmKCF4KXtnPSEwO2JyZWFrfWQucHVzaCh4KX1pZighZylpZihBcnJheS5pc0FycmF5KGYpJiZmLmxlbmd0aCE9PWQubGVuZ3RoKWwuZXJyb3IoIkV4cGVjdGVkICIrZi5sZW5ndGgrIiBhcmd1bWVudHMsIGJ1dCBmb3VuZCAiK2QubGVuZ3RoKyIgaW5zdGVhZC4iKTtlbHNle2Zvcih2YXIgYj0wO2I8ZC5sZW5ndGg7YisrKXt2YXIgXz1BcnJheS5pc0FycmF5KGYpP2ZbYl06Zi50eXBlLHc9ZFtiXTtsLmNvbmNhdChiKzEpLmNoZWNrU3VidHlwZShfLHcudHlwZSl9aWYoMD09PWwuZXJyb3JzLmxlbmd0aClyZXR1cm4gbmV3IGNlKG4saSxwLGQpfX1pZigxPT09cy5sZW5ndGgpKHI9ZS5lcnJvcnMpLnB1c2guYXBwbHkocixsLmVycm9ycyk7ZWxzZXtmb3IodmFyIGs9KHMubGVuZ3RoP3M6bykubWFwKGZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiBlPXRbMF0sQXJyYXkuaXNBcnJheShlKT8iKCIrZS5tYXAocXQpLmpvaW4oIiwgIikrIikiOiIoIitxdChlLnR5cGUpKyIuLi4pIn0pLmpvaW4oIiB8ICIpLFQ9W10sTT0xO008dC5sZW5ndGg7TSsrKXt2YXIgQT1lLnBhcnNlKHRbTV0sMStULmxlbmd0aCk7aWYoIUEpcmV0dXJuIG51bGw7VC5wdXNoKHF0KEEudHlwZSkpfWUuZXJyb3IoIkV4cGVjdGVkIGFyZ3VtZW50cyBvZiB0eXBlICIraysiLCBidXQgZm91bmQgKCIrVC5qb2luKCIsICIpKyIpIGluc3RlYWQuIil9cmV0dXJuIG51bGx9LGNlLnJlZ2lzdGVyPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByIGluIGNlLmRlZmluaXRpb25zPWUsZSl0W3JdPWNlfTt2YXIgdWU9ZnVuY3Rpb24odCxlLHIpe3RoaXMudHlwZT1qdCx0aGlzLmxvY2FsZT1yLHRoaXMuY2FzZVNlbnNpdGl2ZT10LHRoaXMuZGlhY3JpdGljU2Vuc2l0aXZlPWV9O2Z1bmN0aW9uIGhlKHQpe2lmKHQgaW5zdGFuY2VvZiBjZSl7aWYoImdldCI9PT10Lm5hbWUmJjE9PT10LmFyZ3MubGVuZ3RoKXJldHVybiExO2lmKCJmZWF0dXJlLXN0YXRlIj09PXQubmFtZSlyZXR1cm4hMTtpZigiaGFzIj09PXQubmFtZSYmMT09PXQuYXJncy5sZW5ndGgpcmV0dXJuITE7aWYoInByb3BlcnRpZXMiPT09dC5uYW1lfHwiZ2VvbWV0cnktdHlwZSI9PT10Lm5hbWV8fCJpZCI9PT10Lm5hbWUpcmV0dXJuITE7aWYoL15maWx0ZXItLy50ZXN0KHQubmFtZSkpcmV0dXJuITF9dmFyIGU9ITA7cmV0dXJuIHQuZWFjaENoaWxkKGZ1bmN0aW9uKHQpe2UmJiFoZSh0KSYmKGU9ITEpfSksZX1mdW5jdGlvbiBmZSh0KXtpZih0IGluc3RhbmNlb2YgY2UmJiJmZWF0dXJlLXN0YXRlIj09PXQubmFtZSlyZXR1cm4hMTt2YXIgZT0hMDtyZXR1cm4gdC5lYWNoQ2hpbGQoZnVuY3Rpb24odCl7ZSYmIWZlKHQpJiYoZT0hMSl9KSxlfWZ1bmN0aW9uIHBlKHQsZSl7aWYodCBpbnN0YW5jZW9mIGNlJiZlLmluZGV4T2YodC5uYW1lKT49MClyZXR1cm4hMTt2YXIgcj0hMDtyZXR1cm4gdC5lYWNoQ2hpbGQoZnVuY3Rpb24odCl7ciYmIXBlKHQsZSkmJihyPSExKX0pLHJ9dWUucGFyc2U9ZnVuY3Rpb24odCxlKXtpZigyIT09dC5sZW5ndGgpcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIG9uZSBhcmd1bWVudC4iKTt2YXIgcj10WzFdO2lmKCJvYmplY3QiIT10eXBlb2Ygcnx8QXJyYXkuaXNBcnJheShyKSlyZXR1cm4gZS5lcnJvcigiQ29sbGF0b3Igb3B0aW9ucyBhcmd1bWVudCBtdXN0IGJlIGFuIG9iamVjdC4iKTt2YXIgbj1lLnBhcnNlKHZvaWQgMCE9PXJbImNhc2Utc2Vuc2l0aXZlIl0mJnJbImNhc2Utc2Vuc2l0aXZlIl0sMSxSdCk7aWYoIW4pcmV0dXJuIG51bGw7dmFyIGE9ZS5wYXJzZSh2b2lkIDAhPT1yWyJkaWFjcml0aWMtc2Vuc2l0aXZlIl0mJnJbImRpYWNyaXRpYy1zZW5zaXRpdmUiXSwxLFJ0KTtpZighYSlyZXR1cm4gbnVsbDt2YXIgaT1udWxsO3JldHVybiByLmxvY2FsZSYmIShpPWUucGFyc2Uoci5sb2NhbGUsMSxEdCkpP251bGw6bmV3IHVlKG4sYSxpKX0sdWUucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgWHQodGhpcy5jYXNlU2Vuc2l0aXZlLmV2YWx1YXRlKHQpLHRoaXMuZGlhY3JpdGljU2Vuc2l0aXZlLmV2YWx1YXRlKHQpLHRoaXMubG9jYWxlP3RoaXMubG9jYWxlLmV2YWx1YXRlKHQpOm51bGwpfSx1ZS5wcm90b3R5cGUuZWFjaENoaWxkPWZ1bmN0aW9uKHQpe3QodGhpcy5jYXNlU2Vuc2l0aXZlKSx0KHRoaXMuZGlhY3JpdGljU2Vuc2l0aXZlKSx0aGlzLmxvY2FsZSYmdCh0aGlzLmxvY2FsZSl9LHVlLnByb3RvdHlwZS5wb3NzaWJsZU91dHB1dHM9ZnVuY3Rpb24oKXtyZXR1cm5bdm9pZCAwXX0sdWUucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe3ZhciB0PXt9O3JldHVybiB0WyJjYXNlLXNlbnNpdGl2ZSJdPXRoaXMuY2FzZVNlbnNpdGl2ZS5zZXJpYWxpemUoKSx0WyJkaWFjcml0aWMtc2Vuc2l0aXZlIl09dGhpcy5kaWFjcml0aWNTZW5zaXRpdmUuc2VyaWFsaXplKCksdGhpcy5sb2NhbGUmJih0LmxvY2FsZT10aGlzLmxvY2FsZS5zZXJpYWxpemUoKSksWyJjb2xsYXRvciIsdF19O3ZhciBkZT1mdW5jdGlvbih0LGUpe3RoaXMudHlwZT1lLnR5cGUsdGhpcy5uYW1lPXQsdGhpcy5ib3VuZEV4cHJlc3Npb249ZX07ZGUucGFyc2U9ZnVuY3Rpb24odCxlKXtpZigyIT09dC5sZW5ndGh8fCJzdHJpbmciIT10eXBlb2YgdFsxXSlyZXR1cm4gZS5lcnJvcigiJ3ZhcicgZXhwcmVzc2lvbiByZXF1aXJlcyBleGFjdGx5IG9uZSBzdHJpbmcgbGl0ZXJhbCBhcmd1bWVudC4iKTt2YXIgcj10WzFdO3JldHVybiBlLnNjb3BlLmhhcyhyKT9uZXcgZGUocixlLnNjb3BlLmdldChyKSk6ZS5lcnJvcignVW5rbm93biB2YXJpYWJsZSAiJytyKyciLiBNYWtlIHN1cmUgIicrcisnIiBoYXMgYmVlbiBib3VuZCBpbiBhbiBlbmNsb3NpbmcgImxldCIgZXhwcmVzc2lvbiBiZWZvcmUgdXNpbmcgaXQuJywxKX0sZGUucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmJvdW5kRXhwcmVzc2lvbi5ldmFsdWF0ZSh0KX0sZGUucHJvdG90eXBlLmVhY2hDaGlsZD1mdW5jdGlvbigpe30sZGUucHJvdG90eXBlLnBvc3NpYmxlT3V0cHV0cz1mdW5jdGlvbigpe3JldHVyblt2b2lkIDBdfSxkZS5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7cmV0dXJuWyJ2YXIiLHRoaXMubmFtZV19O3ZhciBnZT1mdW5jdGlvbih0LGUscixuLGEpe3ZvaWQgMD09PWUmJihlPVtdKSx2b2lkIDA9PT1uJiYobj1uZXcgT3QpLHZvaWQgMD09PWEmJihhPVtdKSx0aGlzLnJlZ2lzdHJ5PXQsdGhpcy5wYXRoPWUsdGhpcy5rZXk9ZS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIlsiK3QrIl0ifSkuam9pbigiIiksdGhpcy5zY29wZT1uLHRoaXMuZXJyb3JzPWEsdGhpcy5leHBlY3RlZFR5cGU9cn07ZnVuY3Rpb24gdmUodCxlKXtmb3IodmFyIHIsbixhPXQubGVuZ3RoLTEsaT0wLG89YSxzPTA7aTw9bzspaWYocj10W3M9TWF0aC5mbG9vcigoaStvKS8yKV0sbj10W3MrMV0scjw9ZSl7aWYocz09PWF8fGU8bilyZXR1cm4gcztpPXMrMX1lbHNle2lmKCEocj5lKSl0aHJvdyBuZXcgZWUoIklucHV0IGlzIG5vdCBhIG51bWJlci4iKTtvPXMtMX1yZXR1cm4gMH1nZS5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24odCxlLHIsbixhKXtyZXR1cm4gdm9pZCAwPT09YSYmKGE9e30pLGU/dGhpcy5jb25jYXQoZSxyLG4pLl9wYXJzZSh0LGEpOnRoaXMuX3BhcnNlKHQsYSl9LGdlLnByb3RvdHlwZS5fcGFyc2U9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKHQsZSxyKXtyZXR1cm4iYXNzZXJ0Ij09PXI/bmV3IG5lKGUsW3RdKToiY29lcmNlIj09PXI/bmV3IG9lKGUsW3RdKTp0fWlmKG51bGwhPT10JiYic3RyaW5nIiE9dHlwZW9mIHQmJiJib29sZWFuIiE9dHlwZW9mIHQmJiJudW1iZXIiIT10eXBlb2YgdHx8KHQ9WyJsaXRlcmFsIix0XSksQXJyYXkuaXNBcnJheSh0KSl7aWYoMD09PXQubGVuZ3RoKXJldHVybiB0aGlzLmVycm9yKCdFeHBlY3RlZCBhbiBhcnJheSB3aXRoIGF0IGxlYXN0IG9uZSBlbGVtZW50LiBJZiB5b3Ugd2FudGVkIGEgbGl0ZXJhbCBhcnJheSwgdXNlIFsibGl0ZXJhbCIsIFtdXS4nKTt2YXIgbj10WzBdO2lmKCJzdHJpbmciIT10eXBlb2YgbilyZXR1cm4gdGhpcy5lcnJvcigiRXhwcmVzc2lvbiBuYW1lIG11c3QgYmUgYSBzdHJpbmcsIGJ1dCBmb3VuZCAiK3R5cGVvZiBuKycgaW5zdGVhZC4gSWYgeW91IHdhbnRlZCBhIGxpdGVyYWwgYXJyYXksIHVzZSBbImxpdGVyYWwiLCBbLi4uXV0uJywwKSxudWxsO3ZhciBhPXRoaXMucmVnaXN0cnlbbl07aWYoYSl7dmFyIGk9YS5wYXJzZSh0LHRoaXMpO2lmKCFpKXJldHVybiBudWxsO2lmKHRoaXMuZXhwZWN0ZWRUeXBlKXt2YXIgbz10aGlzLmV4cGVjdGVkVHlwZSxzPWkudHlwZTtpZigic3RyaW5nIiE9PW8ua2luZCYmIm51bWJlciIhPT1vLmtpbmQmJiJib29sZWFuIiE9PW8ua2luZCYmIm9iamVjdCIhPT1vLmtpbmQmJiJhcnJheSIhPT1vLmtpbmR8fCJ2YWx1ZSIhPT1zLmtpbmQpaWYoImNvbG9yIiE9PW8ua2luZCYmImZvcm1hdHRlZCIhPT1vLmtpbmR8fCJ2YWx1ZSIhPT1zLmtpbmQmJiJzdHJpbmciIT09cy5raW5kKXtpZih0aGlzLmNoZWNrU3VidHlwZShvLHMpKXJldHVybiBudWxsfWVsc2UgaT1yKGksbyxlLnR5cGVBbm5vdGF0aW9ufHwiY29lcmNlIik7ZWxzZSBpPXIoaSxvLGUudHlwZUFubm90YXRpb258fCJhc3NlcnQiKX1pZighKGkgaW5zdGFuY2VvZiB0ZSkmJmZ1bmN0aW9uIHQoZSl7aWYoZSBpbnN0YW5jZW9mIGRlKXJldHVybiB0KGUuYm91bmRFeHByZXNzaW9uKTtpZihlIGluc3RhbmNlb2YgY2UmJiJlcnJvciI9PT1lLm5hbWUpcmV0dXJuITE7aWYoZSBpbnN0YW5jZW9mIHVlKXJldHVybiExO3ZhciByPWUgaW5zdGFuY2VvZiBvZXx8ZSBpbnN0YW5jZW9mIG5lLG49ITA7cmV0dXJuIGUuZWFjaENoaWxkKGZ1bmN0aW9uKGUpe249cj9uJiZ0KGUpOm4mJmUgaW5zdGFuY2VvZiB0ZX0pLCEhbiYmKGhlKGUpJiZwZShlLFsiem9vbSIsImhlYXRtYXAtZGVuc2l0eSIsImxpbmUtcHJvZ3Jlc3MiLCJhY2N1bXVsYXRlZCIsImlzLXN1cHBvcnRlZC1zY3JpcHQiXSkpfShpKSl7dmFyIGw9bmV3IGxlO3RyeXtpPW5ldyB0ZShpLnR5cGUsaS5ldmFsdWF0ZShsKSl9Y2F0Y2godCl7cmV0dXJuIHRoaXMuZXJyb3IodC5tZXNzYWdlKSxudWxsfX1yZXR1cm4gaX1yZXR1cm4gdGhpcy5lcnJvcignVW5rbm93biBleHByZXNzaW9uICInK24rJyIuIElmIHlvdSB3YW50ZWQgYSBsaXRlcmFsIGFycmF5LCB1c2UgWyJsaXRlcmFsIiwgWy4uLl1dLicsMCl9cmV0dXJuIHZvaWQgMD09PXQ/dGhpcy5lcnJvcigiJ3VuZGVmaW5lZCcgdmFsdWUgaW52YWxpZC4gVXNlIG51bGwgaW5zdGVhZC4iKToib2JqZWN0Ij09dHlwZW9mIHQ/dGhpcy5lcnJvcignQmFyZSBvYmplY3RzIGludmFsaWQuIFVzZSBbImxpdGVyYWwiLCB7Li4ufV0gaW5zdGVhZC4nKTp0aGlzLmVycm9yKCJFeHBlY3RlZCBhbiBhcnJheSwgYnV0IGZvdW5kICIrdHlwZW9mIHQrIiBpbnN0ZWFkLiIpfSxnZS5wcm90b3R5cGUuY29uY2F0PWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj0ibnVtYmVyIj09dHlwZW9mIHQ/dGhpcy5wYXRoLmNvbmNhdCh0KTp0aGlzLnBhdGgsYT1yP3RoaXMuc2NvcGUuY29uY2F0KHIpOnRoaXMuc2NvcGU7cmV0dXJuIG5ldyBnZSh0aGlzLnJlZ2lzdHJ5LG4sZXx8bnVsbCxhLHRoaXMuZXJyb3JzKX0sZ2UucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxyPWFyZ3VtZW50cy5sZW5ndGgtMTtyLS0gPjA7KWVbcl09YXJndW1lbnRzW3IrMV07dmFyIG49IiIrdGhpcy5rZXkrZS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIlsiK3QrIl0ifSkuam9pbigiIik7dGhpcy5lcnJvcnMucHVzaChuZXcgUHQobix0KSl9LGdlLnByb3RvdHlwZS5jaGVja1N1YnR5cGU9ZnVuY3Rpb24odCxlKXt2YXIgcj1HdCh0LGUpO3JldHVybiByJiZ0aGlzLmVycm9yKHIpLHJ9O3ZhciBtZT1mdW5jdGlvbih0LGUscil7dGhpcy50eXBlPXQsdGhpcy5pbnB1dD1lLHRoaXMubGFiZWxzPVtdLHRoaXMub3V0cHV0cz1bXTtmb3IodmFyIG49MCxhPXI7bjxhLmxlbmd0aDtuKz0xKXt2YXIgaT1hW25dLG89aVswXSxzPWlbMV07dGhpcy5sYWJlbHMucHVzaChvKSx0aGlzLm91dHB1dHMucHVzaChzKX19O2Z1bmN0aW9uIHllKHQsZSxyKXtyZXR1cm4gdCooMS1yKStlKnJ9bWUucGFyc2U9ZnVuY3Rpb24odCxlKXtpZih0Lmxlbmd0aC0xPDQpcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIGF0IGxlYXN0IDQgYXJndW1lbnRzLCBidXQgZm91bmQgb25seSAiKyh0Lmxlbmd0aC0xKSsiLiIpO2lmKCh0Lmxlbmd0aC0xKSUyIT0wKXJldHVybiBlLmVycm9yKCJFeHBlY3RlZCBhbiBldmVuIG51bWJlciBvZiBhcmd1bWVudHMuIik7dmFyIHI9ZS5wYXJzZSh0WzFdLDEsSXQpO2lmKCFyKXJldHVybiBudWxsO3ZhciBuPVtdLGE9bnVsbDtlLmV4cGVjdGVkVHlwZSYmInZhbHVlIiE9PWUuZXhwZWN0ZWRUeXBlLmtpbmQmJihhPWUuZXhwZWN0ZWRUeXBlKTtmb3IodmFyIGk9MTtpPHQubGVuZ3RoO2krPTIpe3ZhciBvPTE9PT1pPy0xLzA6dFtpXSxzPXRbaSsxXSxsPWksYz1pKzE7aWYoIm51bWJlciIhPXR5cGVvZiBvKXJldHVybiBlLmVycm9yKCdJbnB1dC9vdXRwdXQgcGFpcnMgZm9yICJzdGVwIiBleHByZXNzaW9ucyBtdXN0IGJlIGRlZmluZWQgdXNpbmcgbGl0ZXJhbCBudW1lcmljIHZhbHVlcyAobm90IGNvbXB1dGVkIGV4cHJlc3Npb25zKSBmb3IgdGhlIGlucHV0IHZhbHVlcy4nLGwpO2lmKG4ubGVuZ3RoJiZuW24ubGVuZ3RoLTFdWzBdPj1vKXJldHVybiBlLmVycm9yKCdJbnB1dC9vdXRwdXQgcGFpcnMgZm9yICJzdGVwIiBleHByZXNzaW9ucyBtdXN0IGJlIGFycmFuZ2VkIHdpdGggaW5wdXQgdmFsdWVzIGluIHN0cmljdGx5IGFzY2VuZGluZyBvcmRlci4nLGwpO3ZhciB1PWUucGFyc2UocyxjLGEpO2lmKCF1KXJldHVybiBudWxsO2E9YXx8dS50eXBlLG4ucHVzaChbbyx1XSl9cmV0dXJuIG5ldyBtZShhLHIsbil9LG1lLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmxhYmVscyxyPXRoaXMub3V0cHV0cztpZigxPT09ZS5sZW5ndGgpcmV0dXJuIHJbMF0uZXZhbHVhdGUodCk7dmFyIG49dGhpcy5pbnB1dC5ldmFsdWF0ZSh0KTtpZihuPD1lWzBdKXJldHVybiByWzBdLmV2YWx1YXRlKHQpO3ZhciBhPWUubGVuZ3RoO3JldHVybiBuPj1lW2EtMV0/clthLTFdLmV2YWx1YXRlKHQpOnJbdmUoZSxuKV0uZXZhbHVhdGUodCl9LG1lLnByb3RvdHlwZS5lYWNoQ2hpbGQ9ZnVuY3Rpb24odCl7dCh0aGlzLmlucHV0KTtmb3IodmFyIGU9MCxyPXRoaXMub3V0cHV0cztlPHIubGVuZ3RoO2UrPTEpdChyW2VdKX0sbWUucHJvdG90eXBlLnBvc3NpYmxlT3V0cHV0cz1mdW5jdGlvbigpe3ZhciB0O3JldHVybih0PVtdKS5jb25jYXQuYXBwbHkodCx0aGlzLm91dHB1dHMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnBvc3NpYmxlT3V0cHV0cygpfSkpfSxtZS5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVsic3RlcCIsdGhpcy5pbnB1dC5zZXJpYWxpemUoKV0sZT0wO2U8dGhpcy5sYWJlbHMubGVuZ3RoO2UrKyllPjAmJnQucHVzaCh0aGlzLmxhYmVsc1tlXSksdC5wdXNoKHRoaXMub3V0cHV0c1tlXS5zZXJpYWxpemUoKSk7cmV0dXJuIHR9O3ZhciB4ZT1PYmplY3QuZnJlZXplKHtudW1iZXI6eWUsY29sb3I6ZnVuY3Rpb24odCxlLHIpe3JldHVybiBuZXcgV3QoeWUodC5yLGUucixyKSx5ZSh0LmcsZS5nLHIpLHllKHQuYixlLmIscikseWUodC5hLGUuYSxyKSl9LGFycmF5OmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdC5tYXAoZnVuY3Rpb24odCxuKXtyZXR1cm4geWUodCxlW25dLHIpfSl9fSksYmU9Ljk1MDQ3LF9lPTEsd2U9MS4wODg4MyxrZT00LzI5LFRlPTYvMjksTWU9MypUZSpUZSxBZT1UZSpUZSpUZSxTZT1NYXRoLlBJLzE4MCxFZT0xODAvTWF0aC5QSTtmdW5jdGlvbiBMZSh0KXtyZXR1cm4gdD5BZT9NYXRoLnBvdyh0LDEvMyk6dC9NZStrZX1mdW5jdGlvbiBDZSh0KXtyZXR1cm4gdD5UZT90KnQqdDpNZSoodC1rZSl9ZnVuY3Rpb24gUGUodCl7cmV0dXJuIDI1NSoodDw9LjAwMzEzMDg/MTIuOTIqdDoxLjA1NSpNYXRoLnBvdyh0LDEvMi40KS0uMDU1KX1mdW5jdGlvbiBPZSh0KXtyZXR1cm4odC89MjU1KTw9LjA0MDQ1P3QvMTIuOTI6TWF0aC5wb3coKHQrLjA1NSkvMS4wNTUsMi40KX1mdW5jdGlvbiB6ZSh0KXt2YXIgZT1PZSh0LnIpLHI9T2UodC5nKSxuPU9lKHQuYiksYT1MZSgoLjQxMjQ1NjQqZSsuMzU3NTc2MSpyKy4xODA0Mzc1Km4pL2JlKSxpPUxlKCguMjEyNjcyOSplKy43MTUxNTIyKnIrLjA3MjE3NSpuKS9fZSk7cmV0dXJue2w6MTE2KmktMTYsYTo1MDAqKGEtaSksYjoyMDAqKGktTGUoKC4wMTkzMzM5KmUrLjExOTE5MipyKy45NTAzMDQxKm4pL3dlKSksYWxwaGE6dC5hfX1mdW5jdGlvbiBJZSh0KXt2YXIgZT0odC5sKzE2KS8xMTYscj1pc05hTih0LmEpP2U6ZSt0LmEvNTAwLG49aXNOYU4odC5iKT9lOmUtdC5iLzIwMDtyZXR1cm4gZT1fZSpDZShlKSxyPWJlKkNlKHIpLG49d2UqQ2UobiksbmV3IFd0KFBlKDMuMjQwNDU0MipyLTEuNTM3MTM4NSplLS40OTg1MzE0Km4pLFBlKC0uOTY5MjY2KnIrMS44NzYwMTA4KmUrLjA0MTU1NipuKSxQZSguMDU1NjQzNCpyLS4yMDQwMjU5KmUrMS4wNTcyMjUyKm4pLHQuYWxwaGEpfWZ1bmN0aW9uIERlKHQsZSxyKXt2YXIgbj1lLXQ7cmV0dXJuIHQrcioobj4xODB8fG48LTE4MD9uLTM2MCpNYXRoLnJvdW5kKG4vMzYwKTpuKX12YXIgUmU9e2ZvcndhcmQ6emUscmV2ZXJzZTpJZSxpbnRlcnBvbGF0ZTpmdW5jdGlvbih0LGUscil7cmV0dXJue2w6eWUodC5sLGUubCxyKSxhOnllKHQuYSxlLmEsciksYjp5ZSh0LmIsZS5iLHIpLGFscGhhOnllKHQuYWxwaGEsZS5hbHBoYSxyKX19fSxGZT17Zm9yd2FyZDpmdW5jdGlvbih0KXt2YXIgZT16ZSh0KSxyPWUubCxuPWUuYSxhPWUuYixpPU1hdGguYXRhbjIoYSxuKSpFZTtyZXR1cm57aDppPDA/aSszNjA6aSxjOk1hdGguc3FydChuKm4rYSphKSxsOnIsYWxwaGE6dC5hfX0scmV2ZXJzZTpmdW5jdGlvbih0KXt2YXIgZT10LmgqU2Uscj10LmM7cmV0dXJuIEllKHtsOnQubCxhOk1hdGguY29zKGUpKnIsYjpNYXRoLnNpbihlKSpyLGFscGhhOnQuYWxwaGF9KX0saW50ZXJwb2xhdGU6ZnVuY3Rpb24odCxlLHIpe3JldHVybntoOkRlKHQuaCxlLmgsciksYzp5ZSh0LmMsZS5jLHIpLGw6eWUodC5sLGUubCxyKSxhbHBoYTp5ZSh0LmFscGhhLGUuYWxwaGEscil9fX0sQmU9T2JqZWN0LmZyZWV6ZSh7bGFiOlJlLGhjbDpGZX0pLE5lPWZ1bmN0aW9uKHQsZSxyLG4sYSl7dGhpcy50eXBlPXQsdGhpcy5vcGVyYXRvcj1lLHRoaXMuaW50ZXJwb2xhdGlvbj1yLHRoaXMuaW5wdXQ9bix0aGlzLmxhYmVscz1bXSx0aGlzLm91dHB1dHM9W107Zm9yKHZhciBpPTAsbz1hO2k8by5sZW5ndGg7aSs9MSl7dmFyIHM9b1tpXSxsPXNbMF0sYz1zWzFdO3RoaXMubGFiZWxzLnB1c2gobCksdGhpcy5vdXRwdXRzLnB1c2goYyl9fTtmdW5jdGlvbiBqZSh0LGUscixuKXt2YXIgYT1uLXIsaT10LXI7cmV0dXJuIDA9PT1hPzA6MT09PWU/aS9hOihNYXRoLnBvdyhlLGkpLTEpLyhNYXRoLnBvdyhlLGEpLTEpfU5lLmludGVycG9sYXRpb25GYWN0b3I9ZnVuY3Rpb24odCxlLG4sYSl7dmFyIGk9MDtpZigiZXhwb25lbnRpYWwiPT09dC5uYW1lKWk9amUoZSx0LmJhc2UsbixhKTtlbHNlIGlmKCJsaW5lYXIiPT09dC5uYW1lKWk9amUoZSwxLG4sYSk7ZWxzZSBpZigiY3ViaWMtYmV6aWVyIj09PXQubmFtZSl7dmFyIG89dC5jb250cm9sUG9pbnRzO2k9bmV3IHIob1swXSxvWzFdLG9bMl0sb1szXSkuc29sdmUoamUoZSwxLG4sYSkpfXJldHVybiBpfSxOZS5wYXJzZT1mdW5jdGlvbih0LGUpe3ZhciByPXRbMF0sbj10WzFdLGE9dFsyXSxpPXQuc2xpY2UoMyk7aWYoIUFycmF5LmlzQXJyYXkobil8fDA9PT1uLmxlbmd0aClyZXR1cm4gZS5lcnJvcigiRXhwZWN0ZWQgYW4gaW50ZXJwb2xhdGlvbiB0eXBlIGV4cHJlc3Npb24uIiwxKTtpZigibGluZWFyIj09PW5bMF0pbj17bmFtZToibGluZWFyIn07ZWxzZSBpZigiZXhwb25lbnRpYWwiPT09blswXSl7dmFyIG89blsxXTtpZigibnVtYmVyIiE9dHlwZW9mIG8pcmV0dXJuIGUuZXJyb3IoIkV4cG9uZW50aWFsIGludGVycG9sYXRpb24gcmVxdWlyZXMgYSBudW1lcmljIGJhc2UuIiwxLDEpO249e25hbWU6ImV4cG9uZW50aWFsIixiYXNlOm99fWVsc2V7aWYoImN1YmljLWJlemllciIhPT1uWzBdKXJldHVybiBlLmVycm9yKCJVbmtub3duIGludGVycG9sYXRpb24gdHlwZSAiK1N0cmluZyhuWzBdKSwxLDApO3ZhciBzPW4uc2xpY2UoMSk7aWYoNCE9PXMubGVuZ3RofHxzLnNvbWUoZnVuY3Rpb24odCl7cmV0dXJuIm51bWJlciIhPXR5cGVvZiB0fHx0PDB8fHQ+MX0pKXJldHVybiBlLmVycm9yKCJDdWJpYyBiZXppZXIgaW50ZXJwb2xhdGlvbiByZXF1aXJlcyBmb3VyIG51bWVyaWMgYXJndW1lbnRzIHdpdGggdmFsdWVzIGJldHdlZW4gMCBhbmQgMS4iLDEpO249e25hbWU6ImN1YmljLWJlemllciIsY29udHJvbFBvaW50czpzfX1pZih0Lmxlbmd0aC0xPDQpcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIGF0IGxlYXN0IDQgYXJndW1lbnRzLCBidXQgZm91bmQgb25seSAiKyh0Lmxlbmd0aC0xKSsiLiIpO2lmKCh0Lmxlbmd0aC0xKSUyIT0wKXJldHVybiBlLmVycm9yKCJFeHBlY3RlZCBhbiBldmVuIG51bWJlciBvZiBhcmd1bWVudHMuIik7aWYoIShhPWUucGFyc2UoYSwyLEl0KSkpcmV0dXJuIG51bGw7dmFyIGw9W10sYz1udWxsOyJpbnRlcnBvbGF0ZS1oY2wiPT09cnx8ImludGVycG9sYXRlLWxhYiI9PT1yP2M9RnQ6ZS5leHBlY3RlZFR5cGUmJiJ2YWx1ZSIhPT1lLmV4cGVjdGVkVHlwZS5raW5kJiYoYz1lLmV4cGVjdGVkVHlwZSk7Zm9yKHZhciB1PTA7dTxpLmxlbmd0aDt1Kz0yKXt2YXIgaD1pW3VdLGY9aVt1KzFdLHA9dSszLGQ9dSs0O2lmKCJudW1iZXIiIT10eXBlb2YgaClyZXR1cm4gZS5lcnJvcignSW5wdXQvb3V0cHV0IHBhaXJzIGZvciAiaW50ZXJwb2xhdGUiIGV4cHJlc3Npb25zIG11c3QgYmUgZGVmaW5lZCB1c2luZyBsaXRlcmFsIG51bWVyaWMgdmFsdWVzIChub3QgY29tcHV0ZWQgZXhwcmVzc2lvbnMpIGZvciB0aGUgaW5wdXQgdmFsdWVzLicscCk7aWYobC5sZW5ndGgmJmxbbC5sZW5ndGgtMV1bMF0+PWgpcmV0dXJuIGUuZXJyb3IoJ0lucHV0L291dHB1dCBwYWlycyBmb3IgImludGVycG9sYXRlIiBleHByZXNzaW9ucyBtdXN0IGJlIGFycmFuZ2VkIHdpdGggaW5wdXQgdmFsdWVzIGluIHN0cmljdGx5IGFzY2VuZGluZyBvcmRlci4nLHApO3ZhciBnPWUucGFyc2UoZixkLGMpO2lmKCFnKXJldHVybiBudWxsO2M9Y3x8Zy50eXBlLGwucHVzaChbaCxnXSl9cmV0dXJuIm51bWJlciI9PT1jLmtpbmR8fCJjb2xvciI9PT1jLmtpbmR8fCJhcnJheSI9PT1jLmtpbmQmJiJudW1iZXIiPT09Yy5pdGVtVHlwZS5raW5kJiYibnVtYmVyIj09dHlwZW9mIGMuTj9uZXcgTmUoYyxyLG4sYSxsKTplLmVycm9yKCJUeXBlICIrcXQoYykrIiBpcyBub3QgaW50ZXJwb2xhdGFibGUuIil9LE5lLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmxhYmVscyxyPXRoaXMub3V0cHV0cztpZigxPT09ZS5sZW5ndGgpcmV0dXJuIHJbMF0uZXZhbHVhdGUodCk7dmFyIG49dGhpcy5pbnB1dC5ldmFsdWF0ZSh0KTtpZihuPD1lWzBdKXJldHVybiByWzBdLmV2YWx1YXRlKHQpO3ZhciBhPWUubGVuZ3RoO2lmKG4+PWVbYS0xXSlyZXR1cm4gclthLTFdLmV2YWx1YXRlKHQpO3ZhciBpPXZlKGUsbiksbz1lW2ldLHM9ZVtpKzFdLGw9TmUuaW50ZXJwb2xhdGlvbkZhY3Rvcih0aGlzLmludGVycG9sYXRpb24sbixvLHMpLGM9cltpXS5ldmFsdWF0ZSh0KSx1PXJbaSsxXS5ldmFsdWF0ZSh0KTtyZXR1cm4iaW50ZXJwb2xhdGUiPT09dGhpcy5vcGVyYXRvcj94ZVt0aGlzLnR5cGUua2luZC50b0xvd2VyQ2FzZSgpXShjLHUsbCk6ImludGVycG9sYXRlLWhjbCI9PT10aGlzLm9wZXJhdG9yP0ZlLnJldmVyc2UoRmUuaW50ZXJwb2xhdGUoRmUuZm9yd2FyZChjKSxGZS5mb3J3YXJkKHUpLGwpKTpSZS5yZXZlcnNlKFJlLmludGVycG9sYXRlKFJlLmZvcndhcmQoYyksUmUuZm9yd2FyZCh1KSxsKSl9LE5lLnByb3RvdHlwZS5lYWNoQ2hpbGQ9ZnVuY3Rpb24odCl7dCh0aGlzLmlucHV0KTtmb3IodmFyIGU9MCxyPXRoaXMub3V0cHV0cztlPHIubGVuZ3RoO2UrPTEpdChyW2VdKX0sTmUucHJvdG90eXBlLnBvc3NpYmxlT3V0cHV0cz1mdW5jdGlvbigpe3ZhciB0O3JldHVybih0PVtdKS5jb25jYXQuYXBwbHkodCx0aGlzLm91dHB1dHMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnBvc3NpYmxlT3V0cHV0cygpfSkpfSxOZS5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7dmFyIHQ7dD0ibGluZWFyIj09PXRoaXMuaW50ZXJwb2xhdGlvbi5uYW1lP1sibGluZWFyIl06ImV4cG9uZW50aWFsIj09PXRoaXMuaW50ZXJwb2xhdGlvbi5uYW1lPzE9PT10aGlzLmludGVycG9sYXRpb24uYmFzZT9bImxpbmVhciJdOlsiZXhwb25lbnRpYWwiLHRoaXMuaW50ZXJwb2xhdGlvbi5iYXNlXTpbImN1YmljLWJlemllciJdLmNvbmNhdCh0aGlzLmludGVycG9sYXRpb24uY29udHJvbFBvaW50cyk7Zm9yKHZhciBlPVt0aGlzLm9wZXJhdG9yLHQsdGhpcy5pbnB1dC5zZXJpYWxpemUoKV0scj0wO3I8dGhpcy5sYWJlbHMubGVuZ3RoO3IrKyllLnB1c2godGhpcy5sYWJlbHNbcl0sdGhpcy5vdXRwdXRzW3JdLnNlcmlhbGl6ZSgpKTtyZXR1cm4gZX07dmFyIFZlPWZ1bmN0aW9uKHQsZSl7dGhpcy50eXBlPXQsdGhpcy5hcmdzPWV9O1ZlLnBhcnNlPWZ1bmN0aW9uKHQsZSl7aWYodC5sZW5ndGg8MilyZXR1cm4gZS5lcnJvcigiRXhwZWN0ZWN0ZWQgYXQgbGVhc3Qgb25lIGFyZ3VtZW50LiIpO3ZhciByPW51bGwsbj1lLmV4cGVjdGVkVHlwZTtuJiYidmFsdWUiIT09bi5raW5kJiYocj1uKTtmb3IodmFyIGE9W10saT0wLG89dC5zbGljZSgxKTtpPG8ubGVuZ3RoO2krPTEpe3ZhciBzPW9baV0sbD1lLnBhcnNlKHMsMSthLmxlbmd0aCxyLHZvaWQgMCx7dHlwZUFubm90YXRpb246Im9taXQifSk7aWYoIWwpcmV0dXJuIG51bGw7cj1yfHxsLnR5cGUsYS5wdXNoKGwpfXZhciBjPW4mJmEuc29tZShmdW5jdGlvbih0KXtyZXR1cm4gR3Qobix0LnR5cGUpfSk7cmV0dXJuIG5ldyBWZShjP050OnIsYSl9LFZlLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9bnVsbCxyPTAsbj10aGlzLmFyZ3M7cjxuLmxlbmd0aCYmbnVsbD09PShlPW5bcl0uZXZhbHVhdGUodCkpO3IrPTEpO3JldHVybiBlfSxWZS5wcm90b3R5cGUuZWFjaENoaWxkPWZ1bmN0aW9uKHQpe3RoaXMuYXJncy5mb3JFYWNoKHQpfSxWZS5wcm90b3R5cGUucG9zc2libGVPdXRwdXRzPWZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuKHQ9W10pLmNvbmNhdC5hcHBseSh0LHRoaXMuYXJncy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQucG9zc2libGVPdXRwdXRzKCl9KSl9LFZlLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXt2YXIgdD1bImNvYWxlc2NlIl07cmV0dXJuIHRoaXMuZWFjaENoaWxkKGZ1bmN0aW9uKGUpe3QucHVzaChlLnNlcmlhbGl6ZSgpKX0pLHR9O3ZhciBVZT1mdW5jdGlvbih0LGUpe3RoaXMudHlwZT1lLnR5cGUsdGhpcy5iaW5kaW5ncz1bXS5jb25jYXQodCksdGhpcy5yZXN1bHQ9ZX07VWUucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJlc3VsdC5ldmFsdWF0ZSh0KX0sVWUucHJvdG90eXBlLmVhY2hDaGlsZD1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxyPXRoaXMuYmluZGluZ3M7ZTxyLmxlbmd0aDtlKz0xKXQocltlXVsxXSk7dCh0aGlzLnJlc3VsdCl9LFVlLnBhcnNlPWZ1bmN0aW9uKHQsZSl7aWYodC5sZW5ndGg8NClyZXR1cm4gZS5lcnJvcigiRXhwZWN0ZWQgYXQgbGVhc3QgMyBhcmd1bWVudHMsIGJ1dCBmb3VuZCAiKyh0Lmxlbmd0aC0xKSsiIGluc3RlYWQuIik7Zm9yKHZhciByPVtdLG49MTtuPHQubGVuZ3RoLTE7bis9Mil7dmFyIGE9dFtuXTtpZigic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIHN0cmluZywgYnV0IGZvdW5kICIrdHlwZW9mIGErIiBpbnN0ZWFkLiIsbik7aWYoL1teYS16QS1aMC05X10vLnRlc3QoYSkpcmV0dXJuIGUuZXJyb3IoIlZhcmlhYmxlIG5hbWVzIG11c3QgY29udGFpbiBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIG9yICdfJy4iLG4pO3ZhciBpPWUucGFyc2UodFtuKzFdLG4rMSk7aWYoIWkpcmV0dXJuIG51bGw7ci5wdXNoKFthLGldKX12YXIgbz1lLnBhcnNlKHRbdC5sZW5ndGgtMV0sdC5sZW5ndGgtMSxlLmV4cGVjdGVkVHlwZSxyKTtyZXR1cm4gbz9uZXcgVWUocixvKTpudWxsfSxVZS5wcm90b3R5cGUucG9zc2libGVPdXRwdXRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVzdWx0LnBvc3NpYmxlT3V0cHV0cygpfSxVZS5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVsibGV0Il0sZT0wLHI9dGhpcy5iaW5kaW5ncztlPHIubGVuZ3RoO2UrPTEpe3ZhciBuPXJbZV0sYT1uWzBdLGk9blsxXTt0LnB1c2goYSxpLnNlcmlhbGl6ZSgpKX1yZXR1cm4gdC5wdXNoKHRoaXMucmVzdWx0LnNlcmlhbGl6ZSgpKSx0fTt2YXIgcWU9ZnVuY3Rpb24odCxlLHIpe3RoaXMudHlwZT10LHRoaXMuaW5kZXg9ZSx0aGlzLmlucHV0PXJ9O3FlLnBhcnNlPWZ1bmN0aW9uKHQsZSl7aWYoMyE9PXQubGVuZ3RoKXJldHVybiBlLmVycm9yKCJFeHBlY3RlZCAyIGFyZ3VtZW50cywgYnV0IGZvdW5kICIrKHQubGVuZ3RoLTEpKyIgaW5zdGVhZC4iKTt2YXIgcj1lLnBhcnNlKHRbMV0sMSxJdCksbj1lLnBhcnNlKHRbMl0sMixVdChlLmV4cGVjdGVkVHlwZXx8TnQpKTtpZighcnx8IW4pcmV0dXJuIG51bGw7dmFyIGE9bi50eXBlO3JldHVybiBuZXcgcWUoYS5pdGVtVHlwZSxyLG4pfSxxZS5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5pbmRleC5ldmFsdWF0ZSh0KSxyPXRoaXMuaW5wdXQuZXZhbHVhdGUodCk7aWYoZTwwKXRocm93IG5ldyBlZSgiQXJyYXkgaW5kZXggb3V0IG9mIGJvdW5kczogIitlKyIgPCAwLiIpO2lmKGU+PXIubGVuZ3RoKXRocm93IG5ldyBlZSgiQXJyYXkgaW5kZXggb3V0IG9mIGJvdW5kczogIitlKyIgPiAiKyhyLmxlbmd0aC0xKSsiLiIpO2lmKGUhPT1NYXRoLmZsb29yKGUpKXRocm93IG5ldyBlZSgiQXJyYXkgaW5kZXggbXVzdCBiZSBhbiBpbnRlZ2VyLCBidXQgZm91bmQgIitlKyIgaW5zdGVhZC4iKTtyZXR1cm4gcltlXX0scWUucHJvdG90eXBlLmVhY2hDaGlsZD1mdW5jdGlvbih0KXt0KHRoaXMuaW5kZXgpLHQodGhpcy5pbnB1dCl9LHFlLnByb3RvdHlwZS5wb3NzaWJsZU91dHB1dHM9ZnVuY3Rpb24oKXtyZXR1cm5bdm9pZCAwXX0scWUucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe3JldHVyblsiYXQiLHRoaXMuaW5kZXguc2VyaWFsaXplKCksdGhpcy5pbnB1dC5zZXJpYWxpemUoKV19O3ZhciBIZT1mdW5jdGlvbih0LGUscixuLGEsaSl7dGhpcy5pbnB1dFR5cGU9dCx0aGlzLnR5cGU9ZSx0aGlzLmlucHV0PXIsdGhpcy5jYXNlcz1uLHRoaXMub3V0cHV0cz1hLHRoaXMub3RoZXJ3aXNlPWl9O0hlLnBhcnNlPWZ1bmN0aW9uKHQsZSl7aWYodC5sZW5ndGg8NSlyZXR1cm4gZS5lcnJvcigiRXhwZWN0ZWQgYXQgbGVhc3QgNCBhcmd1bWVudHMsIGJ1dCBmb3VuZCBvbmx5ICIrKHQubGVuZ3RoLTEpKyIuIik7aWYodC5sZW5ndGglMiE9MSlyZXR1cm4gZS5lcnJvcigiRXhwZWN0ZWQgYW4gZXZlbiBudW1iZXIgb2YgYXJndW1lbnRzLiIpO3ZhciByLG47ZS5leHBlY3RlZFR5cGUmJiJ2YWx1ZSIhPT1lLmV4cGVjdGVkVHlwZS5raW5kJiYobj1lLmV4cGVjdGVkVHlwZSk7Zm9yKHZhciBhPXt9LGk9W10sbz0yO288dC5sZW5ndGgtMTtvKz0yKXt2YXIgcz10W29dLGw9dFtvKzFdO0FycmF5LmlzQXJyYXkocyl8fChzPVtzXSk7dmFyIGM9ZS5jb25jYXQobyk7aWYoMD09PXMubGVuZ3RoKXJldHVybiBjLmVycm9yKCJFeHBlY3RlZCBhdCBsZWFzdCBvbmUgYnJhbmNoIGxhYmVsLiIpO2Zvcih2YXIgdT0wLGg9czt1PGgubGVuZ3RoO3UrPTEpe3ZhciBmPWhbdV07aWYoIm51bWJlciIhPXR5cGVvZiBmJiYic3RyaW5nIiE9dHlwZW9mIGYpcmV0dXJuIGMuZXJyb3IoIkJyYW5jaCBsYWJlbHMgbXVzdCBiZSBudW1iZXJzIG9yIHN0cmluZ3MuIik7aWYoIm51bWJlciI9PXR5cGVvZiBmJiZNYXRoLmFicyhmKT5OdW1iZXIuTUFYX1NBRkVfSU5URUdFUilyZXR1cm4gYy5lcnJvcigiQnJhbmNoIGxhYmVscyBtdXN0IGJlIGludGVnZXJzIG5vIGxhcmdlciB0aGFuICIrTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIrIi4iKTtpZigibnVtYmVyIj09dHlwZW9mIGYmJk1hdGguZmxvb3IoZikhPT1mKXJldHVybiBjLmVycm9yKCJOdW1lcmljIGJyYW5jaCBsYWJlbHMgbXVzdCBiZSBpbnRlZ2VyIHZhbHVlcy4iKTtpZihyKXtpZihjLmNoZWNrU3VidHlwZShyLFF0KGYpKSlyZXR1cm4gbnVsbH1lbHNlIHI9UXQoZik7aWYodm9pZCAwIT09YVtTdHJpbmcoZildKXJldHVybiBjLmVycm9yKCJCcmFuY2ggbGFiZWxzIG11c3QgYmUgdW5pcXVlLiIpO2FbU3RyaW5nKGYpXT1pLmxlbmd0aH12YXIgcD1lLnBhcnNlKGwsbyxuKTtpZighcClyZXR1cm4gbnVsbDtuPW58fHAudHlwZSxpLnB1c2gocCl9dmFyIGQ9ZS5wYXJzZSh0WzFdLDEsTnQpO2lmKCFkKXJldHVybiBudWxsO3ZhciBnPWUucGFyc2UodFt0Lmxlbmd0aC0xXSx0Lmxlbmd0aC0xLG4pO3JldHVybiBnPyJ2YWx1ZSIhPT1kLnR5cGUua2luZCYmZS5jb25jYXQoMSkuY2hlY2tTdWJ0eXBlKHIsZC50eXBlKT9udWxsOm5ldyBIZShyLG4sZCxhLGksZyk6bnVsbH0sSGUucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaW5wdXQuZXZhbHVhdGUodCk7cmV0dXJuKFF0KGUpPT09dGhpcy5pbnB1dFR5cGUmJnRoaXMub3V0cHV0c1t0aGlzLmNhc2VzW2VdXXx8dGhpcy5vdGhlcndpc2UpLmV2YWx1YXRlKHQpfSxIZS5wcm90b3R5cGUuZWFjaENoaWxkPWZ1bmN0aW9uKHQpe3QodGhpcy5pbnB1dCksdGhpcy5vdXRwdXRzLmZvckVhY2godCksdCh0aGlzLm90aGVyd2lzZSl9LEhlLnByb3RvdHlwZS5wb3NzaWJsZU91dHB1dHM9ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4odD1bXSkuY29uY2F0LmFwcGx5KHQsdGhpcy5vdXRwdXRzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5wb3NzaWJsZU91dHB1dHMoKX0pKS5jb25jYXQodGhpcy5vdGhlcndpc2UucG9zc2libGVPdXRwdXRzKCkpfSxIZS5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMsZT1bIm1hdGNoIix0aGlzLmlucHV0LnNlcmlhbGl6ZSgpXSxyPVtdLG49e30sYT0wLGk9T2JqZWN0LmtleXModGhpcy5jYXNlcykuc29ydCgpO2E8aS5sZW5ndGg7YSs9MSl7dmFyIG89aVthXTt2b2lkIDA9PT0oaD1uW3RoaXMuY2FzZXNbb11dKT8oblt0aGlzLmNhc2VzW29dXT1yLmxlbmd0aCxyLnB1c2goW3RoaXMuY2FzZXNbb10sW29dXSkpOnJbaF1bMV0ucHVzaChvKX1mb3IodmFyIHM9ZnVuY3Rpb24oZSl7cmV0dXJuIm51bWJlciI9PT10LmlucHV0VHlwZS5raW5kP051bWJlcihlKTplfSxsPTAsYz1yO2w8Yy5sZW5ndGg7bCs9MSl7dmFyIHU9Y1tsXSxoPXVbMF0sZj11WzFdOzE9PT1mLmxlbmd0aD9lLnB1c2gocyhmWzBdKSk6ZS5wdXNoKGYubWFwKHMpKSxlLnB1c2godGhpcy5vdXRwdXRzW291dHB1dEluZGV4JDFdLnNlcmlhbGl6ZSgpKX1yZXR1cm4gZS5wdXNoKHRoaXMub3RoZXJ3aXNlLnNlcmlhbGl6ZSgpKSxlfTt2YXIgR2U9ZnVuY3Rpb24odCxlLHIpe3RoaXMudHlwZT10LHRoaXMuYnJhbmNoZXM9ZSx0aGlzLm90aGVyd2lzZT1yfTtmdW5jdGlvbiBZZSh0LGUpe3JldHVybiI9PSI9PT10fHwiIT0iPT09dD8iYm9vbGVhbiI9PT1lLmtpbmR8fCJzdHJpbmciPT09ZS5raW5kfHwibnVtYmVyIj09PWUua2luZHx8Im51bGwiPT09ZS5raW5kfHwidmFsdWUiPT09ZS5raW5kOiJzdHJpbmciPT09ZS5raW5kfHwibnVtYmVyIj09PWUua2luZHx8InZhbHVlIj09PWUua2luZH1mdW5jdGlvbiBXZSh0LGUscixuKXtyZXR1cm4gMD09PW4uY29tcGFyZShlLHIpfWZ1bmN0aW9uIFhlKHQsZSxyKXt2YXIgbj0iPT0iIT09dCYmIiE9IiE9PXQ7cmV0dXJuIGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSh0LGUscil7dGhpcy50eXBlPVJ0LHRoaXMubGhzPXQsdGhpcy5yaHM9ZSx0aGlzLmNvbGxhdG9yPXIsdGhpcy5oYXNVbnR5cGVkQXJndW1lbnQ9InZhbHVlIj09PXQudHlwZS5raW5kfHwidmFsdWUiPT09ZS50eXBlLmtpbmR9cmV0dXJuIGEucGFyc2U9ZnVuY3Rpb24odCxlKXtpZigzIT09dC5sZW5ndGgmJjQhPT10Lmxlbmd0aClyZXR1cm4gZS5lcnJvcigiRXhwZWN0ZWQgdHdvIG9yIHRocmVlIGFyZ3VtZW50cy4iKTt2YXIgcj10WzBdLGk9ZS5wYXJzZSh0WzFdLDEsTnQpO2lmKCFpKXJldHVybiBudWxsO2lmKCFZZShyLGkudHlwZSkpcmV0dXJuIGUuY29uY2F0KDEpLmVycm9yKCciJytyKyJcIiBjb21wYXJpc29ucyBhcmUgbm90IHN1cHBvcnRlZCBmb3IgdHlwZSAnIitxdChpLnR5cGUpKyInLiIpO3ZhciBvPWUucGFyc2UodFsyXSwyLE50KTtpZighbylyZXR1cm4gbnVsbDtpZighWWUocixvLnR5cGUpKXJldHVybiBlLmNvbmNhdCgyKS5lcnJvcignIicrcisiXCIgY29tcGFyaXNvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgZm9yIHR5cGUgJyIrcXQoby50eXBlKSsiJy4iKTtpZihpLnR5cGUua2luZCE9PW8udHlwZS5raW5kJiYidmFsdWUiIT09aS50eXBlLmtpbmQmJiJ2YWx1ZSIhPT1vLnR5cGUua2luZClyZXR1cm4gZS5lcnJvcigiQ2Fubm90IGNvbXBhcmUgdHlwZXMgJyIrcXQoaS50eXBlKSsiJyBhbmQgJyIrcXQoby50eXBlKSsiJy4iKTtuJiYoInZhbHVlIj09PWkudHlwZS5raW5kJiYidmFsdWUiIT09by50eXBlLmtpbmQ/aT1uZXcgbmUoby50eXBlLFtpXSk6InZhbHVlIiE9PWkudHlwZS5raW5kJiYidmFsdWUiPT09by50eXBlLmtpbmQmJihvPW5ldyBuZShpLnR5cGUsW29dKSkpO3ZhciBzPW51bGw7aWYoND09PXQubGVuZ3RoKXtpZigic3RyaW5nIiE9PWkudHlwZS5raW5kJiYic3RyaW5nIiE9PW8udHlwZS5raW5kJiYidmFsdWUiIT09aS50eXBlLmtpbmQmJiJ2YWx1ZSIhPT1vLnR5cGUua2luZClyZXR1cm4gZS5lcnJvcigiQ2Fubm90IHVzZSBjb2xsYXRvciB0byBjb21wYXJlIG5vbi1zdHJpbmcgdHlwZXMuIik7aWYoIShzPWUucGFyc2UodFszXSwzLGp0KSkpcmV0dXJuIG51bGx9cmV0dXJuIG5ldyBhKGksbyxzKX0sYS5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oYSl7dmFyIGk9dGhpcy5saHMuZXZhbHVhdGUoYSksbz10aGlzLnJocy5ldmFsdWF0ZShhKTtpZihuJiZ0aGlzLmhhc1VudHlwZWRBcmd1bWVudCl7dmFyIHM9UXQoaSksbD1RdChvKTtpZihzLmtpbmQhPT1sLmtpbmR8fCJzdHJpbmciIT09cy5raW5kJiYibnVtYmVyIiE9PXMua2luZCl0aHJvdyBuZXcgZWUoJ0V4cGVjdGVkIGFyZ3VtZW50cyBmb3IgIicrdCsnIiB0byBiZSAoc3RyaW5nLCBzdHJpbmcpIG9yIChudW1iZXIsIG51bWJlciksIGJ1dCBmb3VuZCAoJytzLmtpbmQrIiwgIitsLmtpbmQrIikgaW5zdGVhZC4iKX1pZih0aGlzLmNvbGxhdG9yJiYhbiYmdGhpcy5oYXNVbnR5cGVkQXJndW1lbnQpe3ZhciBjPVF0KGkpLHU9UXQobyk7aWYoInN0cmluZyIhPT1jLmtpbmR8fCJzdHJpbmciIT09dS5raW5kKXJldHVybiBlKGEsaSxvKX1yZXR1cm4gdGhpcy5jb2xsYXRvcj9yKGEsaSxvLHRoaXMuY29sbGF0b3IuZXZhbHVhdGUoYSkpOmUoYSxpLG8pfSxhLnByb3RvdHlwZS5lYWNoQ2hpbGQ9ZnVuY3Rpb24odCl7dCh0aGlzLmxocyksdCh0aGlzLnJocyksdGhpcy5jb2xsYXRvciYmdCh0aGlzLmNvbGxhdG9yKX0sYS5wcm90b3R5cGUucG9zc2libGVPdXRwdXRzPWZ1bmN0aW9uKCl7cmV0dXJuWyEwLCExXX0sYS5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7dmFyIGU9W3RdO3JldHVybiB0aGlzLmVhY2hDaGlsZChmdW5jdGlvbih0KXtlLnB1c2godC5zZXJpYWxpemUoKSl9KSxlfSxhfSgpfUdlLnBhcnNlPWZ1bmN0aW9uKHQsZSl7aWYodC5sZW5ndGg8NClyZXR1cm4gZS5lcnJvcigiRXhwZWN0ZWQgYXQgbGVhc3QgMyBhcmd1bWVudHMsIGJ1dCBmb3VuZCBvbmx5ICIrKHQubGVuZ3RoLTEpKyIuIik7aWYodC5sZW5ndGglMiE9MClyZXR1cm4gZS5lcnJvcigiRXhwZWN0ZWQgYW4gb2RkIG51bWJlciBvZiBhcmd1bWVudHMuIik7dmFyIHI7ZS5leHBlY3RlZFR5cGUmJiJ2YWx1ZSIhPT1lLmV4cGVjdGVkVHlwZS5raW5kJiYocj1lLmV4cGVjdGVkVHlwZSk7Zm9yKHZhciBuPVtdLGE9MTthPHQubGVuZ3RoLTE7YSs9Mil7dmFyIGk9ZS5wYXJzZSh0W2FdLGEsUnQpO2lmKCFpKXJldHVybiBudWxsO3ZhciBvPWUucGFyc2UodFthKzFdLGErMSxyKTtpZighbylyZXR1cm4gbnVsbDtuLnB1c2goW2ksb10pLHI9cnx8by50eXBlfXZhciBzPWUucGFyc2UodFt0Lmxlbmd0aC0xXSx0Lmxlbmd0aC0xLHIpO3JldHVybiBzP25ldyBHZShyLG4scyk6bnVsbH0sR2UucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLHI9dGhpcy5icmFuY2hlcztlPHIubGVuZ3RoO2UrPTEpe3ZhciBuPXJbZV0sYT1uWzBdLGk9blsxXTtpZihhLmV2YWx1YXRlKHQpKXJldHVybiBpLmV2YWx1YXRlKHQpfXJldHVybiB0aGlzLm90aGVyd2lzZS5ldmFsdWF0ZSh0KX0sR2UucHJvdG90eXBlLmVhY2hDaGlsZD1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxyPXRoaXMuYnJhbmNoZXM7ZTxyLmxlbmd0aDtlKz0xKXt2YXIgbj1yW2VdLGE9blswXSxpPW5bMV07dChhKSx0KGkpfXQodGhpcy5vdGhlcndpc2UpfSxHZS5wcm90b3R5cGUucG9zc2libGVPdXRwdXRzPWZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuKHQ9W10pLmNvbmNhdC5hcHBseSh0LHRoaXMuYnJhbmNoZXMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdLHRbMV0ucG9zc2libGVPdXRwdXRzKCl9KSkuY29uY2F0KHRoaXMub3RoZXJ3aXNlLnBvc3NpYmxlT3V0cHV0cygpKX0sR2UucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe3ZhciB0PVsiY2FzZSJdO3JldHVybiB0aGlzLmVhY2hDaGlsZChmdW5jdGlvbihlKXt0LnB1c2goZS5zZXJpYWxpemUoKSl9KSx0fTt2YXIgWmU9WGUoIj09IixmdW5jdGlvbih0LGUscil7cmV0dXJuIGU9PT1yfSxXZSksSmU9WGUoIiE9IixmdW5jdGlvbih0LGUscil7cmV0dXJuIGUhPT1yfSxmdW5jdGlvbih0LGUscixuKXtyZXR1cm4hV2UoMCxlLHIsbil9KSxLZT1YZSgiPCIsZnVuY3Rpb24odCxlLHIpe3JldHVybiBlPHJ9LGZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiBuLmNvbXBhcmUoZSxyKTwwfSksUWU9WGUoIj4iLGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZT5yfSxmdW5jdGlvbih0LGUscixuKXtyZXR1cm4gbi5jb21wYXJlKGUscik+MH0pLCRlPVhlKCI8PSIsZnVuY3Rpb24odCxlLHIpe3JldHVybiBlPD1yfSxmdW5jdGlvbih0LGUscixuKXtyZXR1cm4gbi5jb21wYXJlKGUscik8PTB9KSx0cj1YZSgiPj0iLGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZT49cn0sZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIG4uY29tcGFyZShlLHIpPj0wfSksZXI9ZnVuY3Rpb24odCxlLHIsbixhKXt0aGlzLnR5cGU9RHQsdGhpcy5udW1iZXI9dCx0aGlzLmxvY2FsZT1lLHRoaXMuY3VycmVuY3k9cix0aGlzLm1pbkZyYWN0aW9uRGlnaXRzPW4sdGhpcy5tYXhGcmFjdGlvbkRpZ2l0cz1hfTtlci5wYXJzZT1mdW5jdGlvbih0LGUpe2lmKDMhPT10Lmxlbmd0aClyZXR1cm4gZS5lcnJvcigiRXhwZWN0ZWQgdHdvIGFyZ3VtZW50cy4iKTt2YXIgcj1lLnBhcnNlKHRbMV0sMSxJdCk7aWYoIXIpcmV0dXJuIG51bGw7dmFyIG49dFsyXTtpZigib2JqZWN0IiE9dHlwZW9mIG58fEFycmF5LmlzQXJyYXkobikpcmV0dXJuIGUuZXJyb3IoIk51bWJlckZvcm1hdCBvcHRpb25zIGFyZ3VtZW50IG11c3QgYmUgYW4gb2JqZWN0LiIpO3ZhciBhPW51bGw7aWYobi5sb2NhbGUmJiEoYT1lLnBhcnNlKG4ubG9jYWxlLDEsRHQpKSlyZXR1cm4gbnVsbDt2YXIgaT1udWxsO2lmKG4uY3VycmVuY3kmJiEoaT1lLnBhcnNlKG4uY3VycmVuY3ksMSxEdCkpKXJldHVybiBudWxsO3ZhciBvPW51bGw7aWYoblsibWluLWZyYWN0aW9uLWRpZ2l0cyJdJiYhKG89ZS5wYXJzZShuWyJtaW4tZnJhY3Rpb24tZGlnaXRzIl0sMSxJdCkpKXJldHVybiBudWxsO3ZhciBzPW51bGw7cmV0dXJuIG5bIm1heC1mcmFjdGlvbi1kaWdpdHMiXSYmIShzPWUucGFyc2UoblsibWF4LWZyYWN0aW9uLWRpZ2l0cyJdLDEsSXQpKT9udWxsOm5ldyBlcihyLGEsaSxvLHMpfSxlci5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBJbnRsLk51bWJlckZvcm1hdCh0aGlzLmxvY2FsZT90aGlzLmxvY2FsZS5ldmFsdWF0ZSh0KTpbXSx7c3R5bGU6dGhpcy5jdXJyZW5jeT8iY3VycmVuY3kiOiJkZWNpbWFsIixjdXJyZW5jeTp0aGlzLmN1cnJlbmN5P3RoaXMuY3VycmVuY3kuZXZhbHVhdGUodCk6dm9pZCAwLG1pbmltdW1GcmFjdGlvbkRpZ2l0czp0aGlzLm1pbkZyYWN0aW9uRGlnaXRzP3RoaXMubWluRnJhY3Rpb25EaWdpdHMuZXZhbHVhdGUodCk6dm9pZCAwLG1heGltdW1GcmFjdGlvbkRpZ2l0czp0aGlzLm1heEZyYWN0aW9uRGlnaXRzP3RoaXMubWF4RnJhY3Rpb25EaWdpdHMuZXZhbHVhdGUodCk6dm9pZCAwfSkuZm9ybWF0KHRoaXMubnVtYmVyLmV2YWx1YXRlKHQpKX0sZXIucHJvdG90eXBlLmVhY2hDaGlsZD1mdW5jdGlvbih0KXt0KHRoaXMubnVtYmVyKSx0aGlzLmxvY2FsZSYmdCh0aGlzLmxvY2FsZSksdGhpcy5jdXJyZW5jeSYmdCh0aGlzLmN1cnJlbmN5KSx0aGlzLm1pbkZyYWN0aW9uRGlnaXRzJiZ0KHRoaXMubWluRnJhY3Rpb25EaWdpdHMpLHRoaXMubWF4RnJhY3Rpb25EaWdpdHMmJnQodGhpcy5tYXhGcmFjdGlvbkRpZ2l0cyl9LGVyLnByb3RvdHlwZS5wb3NzaWJsZU91dHB1dHM9ZnVuY3Rpb24oKXtyZXR1cm5bdm9pZCAwXX0sZXIucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe3ZhciB0PXt9O3JldHVybiB0aGlzLmxvY2FsZSYmKHQubG9jYWxlPXRoaXMubG9jYWxlLnNlcmlhbGl6ZSgpKSx0aGlzLmN1cnJlbmN5JiYodC5jdXJyZW5jeT10aGlzLmN1cnJlbmN5LnNlcmlhbGl6ZSgpKSx0aGlzLm1pbkZyYWN0aW9uRGlnaXRzJiYodFsibWluLWZyYWN0aW9uLWRpZ2l0cyJdPXRoaXMubWluRnJhY3Rpb25EaWdpdHMuc2VyaWFsaXplKCkpLHRoaXMubWF4RnJhY3Rpb25EaWdpdHMmJih0WyJtYXgtZnJhY3Rpb24tZGlnaXRzIl09dGhpcy5tYXhGcmFjdGlvbkRpZ2l0cy5zZXJpYWxpemUoKSksWyJudW1iZXItZm9ybWF0Iix0aGlzLm51bWJlci5zZXJpYWxpemUoKSx0XX07dmFyIHJyPWZ1bmN0aW9uKHQpe3RoaXMudHlwZT1JdCx0aGlzLmlucHV0PXR9O3JyLnBhcnNlPWZ1bmN0aW9uKHQsZSl7aWYoMiE9PXQubGVuZ3RoKXJldHVybiBlLmVycm9yKCJFeHBlY3RlZCAxIGFyZ3VtZW50LCBidXQgZm91bmQgIisodC5sZW5ndGgtMSkrIiBpbnN0ZWFkLiIpO3ZhciByPWUucGFyc2UodFsxXSwxKTtyZXR1cm4gcj8iYXJyYXkiIT09ci50eXBlLmtpbmQmJiJzdHJpbmciIT09ci50eXBlLmtpbmQmJiJ2YWx1ZSIhPT1yLnR5cGUua2luZD9lLmVycm9yKCJFeHBlY3RlZCBhcmd1bWVudCBvZiB0eXBlIHN0cmluZyBvciBhcnJheSwgYnV0IGZvdW5kICIrcXQoci50eXBlKSsiIGluc3RlYWQuIik6bmV3IHJyKHIpOm51bGx9LHJyLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmlucHV0LmV2YWx1YXRlKHQpO2lmKCJzdHJpbmciPT10eXBlb2YgZSlyZXR1cm4gZS5sZW5ndGg7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZS5sZW5ndGg7dGhyb3cgbmV3IGVlKCJFeHBlY3RlZCB2YWx1ZSB0byBiZSBvZiB0eXBlIHN0cmluZyBvciBhcnJheSwgYnV0IGZvdW5kICIrcXQoUXQoZSkpKyIgaW5zdGVhZC4iKX0scnIucHJvdG90eXBlLmVhY2hDaGlsZD1mdW5jdGlvbih0KXt0KHRoaXMuaW5wdXQpfSxyci5wcm90b3R5cGUucG9zc2libGVPdXRwdXRzPWZ1bmN0aW9uKCl7cmV0dXJuW3ZvaWQgMF19LHJyLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXt2YXIgdD1bImxlbmd0aCJdO3JldHVybiB0aGlzLmVhY2hDaGlsZChmdW5jdGlvbihlKXt0LnB1c2goZS5zZXJpYWxpemUoKSl9KSx0fTt2YXIgbnI9eyI9PSI6WmUsIiE9IjpKZSwiPiI6UWUsIjwiOktlLCI+PSI6dHIsIjw9IjokZSxhcnJheTpuZSxhdDpxZSxib29sZWFuOm5lLGNhc2U6R2UsY29hbGVzY2U6VmUsY29sbGF0b3I6dWUsZm9ybWF0OmFlLGludGVycG9sYXRlOk5lLCJpbnRlcnBvbGF0ZS1oY2wiOk5lLCJpbnRlcnBvbGF0ZS1sYWIiOk5lLGxlbmd0aDpycixsZXQ6VWUsbGl0ZXJhbDp0ZSxtYXRjaDpIZSxudW1iZXI6bmUsIm51bWJlci1mb3JtYXQiOmVyLG9iamVjdDpuZSxzdGVwOm1lLHN0cmluZzpuZSwidG8tYm9vbGVhbiI6b2UsInRvLWNvbG9yIjpvZSwidG8tbnVtYmVyIjpvZSwidG8tc3RyaW5nIjpvZSx2YXI6ZGV9O2Z1bmN0aW9uIGFyKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV0sYT1lWzJdLGk9ZVszXTtyPXIuZXZhbHVhdGUodCksbj1uLmV2YWx1YXRlKHQpLGE9YS5ldmFsdWF0ZSh0KTt2YXIgbz1pP2kuZXZhbHVhdGUodCk6MSxzPUt0KHIsbixhLG8pO2lmKHMpdGhyb3cgbmV3IGVlKHMpO3JldHVybiBuZXcgV3Qoci8yNTUqbyxuLzI1NSpvLGEvMjU1Km8sbyl9ZnVuY3Rpb24gaXIodCxlKXtyZXR1cm4gdCBpbiBlfWZ1bmN0aW9uIG9yKHQsZSl7dmFyIHI9ZVt0XTtyZXR1cm4gdm9pZCAwPT09cj9udWxsOnJ9ZnVuY3Rpb24gc3IodCl7cmV0dXJue3R5cGU6dH19ZnVuY3Rpb24gbHIodCl7cmV0dXJue3Jlc3VsdDoic3VjY2VzcyIsdmFsdWU6dH19ZnVuY3Rpb24gY3IodCl7cmV0dXJue3Jlc3VsdDoiZXJyb3IiLHZhbHVlOnR9fWZ1bmN0aW9uIHVyKHQpe3JldHVybiJkYXRhLWRyaXZlbiI9PT10WyJwcm9wZXJ0eS10eXBlIl18fCJjcm9zcy1mYWRlZC1kYXRhLWRyaXZlbiI9PT10WyJwcm9wZXJ0eS10eXBlIl19ZnVuY3Rpb24gaHIodCl7cmV0dXJuISF0LmV4cHJlc3Npb24mJnQuZXhwcmVzc2lvbi5wYXJhbWV0ZXJzLmluZGV4T2YoInpvb20iKT4tMX1mdW5jdGlvbiBmcih0KXtyZXR1cm4hIXQuZXhwcmVzc2lvbiYmdC5leHByZXNzaW9uLmludGVycG9sYXRlZH1mdW5jdGlvbiBwcih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIE51bWJlcj8ibnVtYmVyIjp0IGluc3RhbmNlb2YgU3RyaW5nPyJzdHJpbmciOnQgaW5zdGFuY2VvZiBCb29sZWFuPyJib29sZWFuIjpBcnJheS5pc0FycmF5KHQpPyJhcnJheSI6bnVsbD09PXQ/Im51bGwiOnR5cGVvZiB0fWZ1bmN0aW9uIGRyKHQpe3JldHVybiJvYmplY3QiPT10eXBlb2YgdCYmbnVsbCE9PXQmJiFBcnJheS5pc0FycmF5KHQpfWZ1bmN0aW9uIGdyKHQpe3JldHVybiB0fWZ1bmN0aW9uIHZyKHQsZSxyKXtyZXR1cm4gdm9pZCAwIT09dD90OnZvaWQgMCE9PWU/ZTp2b2lkIDAhPT1yP3I6dm9pZCAwfWZ1bmN0aW9uIG1yKHQsZSxyLG4sYSl7cmV0dXJuIHZyKHR5cGVvZiByPT09YT9uW3JdOnZvaWQgMCx0LmRlZmF1bHQsZS5kZWZhdWx0KX1mdW5jdGlvbiB5cih0LGUscil7aWYoIm51bWJlciIhPT1wcihyKSlyZXR1cm4gdnIodC5kZWZhdWx0LGUuZGVmYXVsdCk7dmFyIG49dC5zdG9wcy5sZW5ndGg7aWYoMT09PW4pcmV0dXJuIHQuc3RvcHNbMF1bMV07aWYocjw9dC5zdG9wc1swXVswXSlyZXR1cm4gdC5zdG9wc1swXVsxXTtpZihyPj10LnN0b3BzW24tMV1bMF0pcmV0dXJuIHQuc3RvcHNbbi0xXVsxXTt2YXIgYT12ZSh0LnN0b3BzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdFswXX0pLHIpO3JldHVybiB0LnN0b3BzW2FdWzFdfWZ1bmN0aW9uIHhyKHQsZSxyKXt2YXIgbj12b2lkIDAhPT10LmJhc2U/dC5iYXNlOjE7aWYoIm51bWJlciIhPT1wcihyKSlyZXR1cm4gdnIodC5kZWZhdWx0LGUuZGVmYXVsdCk7dmFyIGE9dC5zdG9wcy5sZW5ndGg7aWYoMT09PWEpcmV0dXJuIHQuc3RvcHNbMF1bMV07aWYocjw9dC5zdG9wc1swXVswXSlyZXR1cm4gdC5zdG9wc1swXVsxXTtpZihyPj10LnN0b3BzW2EtMV1bMF0pcmV0dXJuIHQuc3RvcHNbYS0xXVsxXTt2YXIgaT12ZSh0LnN0b3BzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdFswXX0pLHIpLG89ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9bi1yLGk9dC1yO3JldHVybiAwPT09YT8wOjE9PT1lP2kvYTooTWF0aC5wb3coZSxpKS0xKS8oTWF0aC5wb3coZSxhKS0xKX0ocixuLHQuc3RvcHNbaV1bMF0sdC5zdG9wc1tpKzFdWzBdKSxzPXQuc3RvcHNbaV1bMV0sbD10LnN0b3BzW2krMV1bMV0sYz14ZVtlLnR5cGVdfHxncjtpZih0LmNvbG9yU3BhY2UmJiJyZ2IiIT09dC5jb2xvclNwYWNlKXt2YXIgdT1CZVt0LmNvbG9yU3BhY2VdO2M9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdS5yZXZlcnNlKHUuaW50ZXJwb2xhdGUodS5mb3J3YXJkKHQpLHUuZm9yd2FyZChlKSxvKSl9fXJldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBzLmV2YWx1YXRlP3tldmFsdWF0ZTpmdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPWFyZ3VtZW50cy5sZW5ndGg7ZS0tOyl0W2VdPWFyZ3VtZW50c1tlXTt2YXIgcj1zLmV2YWx1YXRlLmFwcGx5KHZvaWQgMCx0KSxuPWwuZXZhbHVhdGUuYXBwbHkodm9pZCAwLHQpO2lmKHZvaWQgMCE9PXImJnZvaWQgMCE9PW4pcmV0dXJuIGMocixuLG8pfX06YyhzLGwsbyl9ZnVuY3Rpb24gYnIodCxlLHIpe3JldHVybiJjb2xvciI9PT1lLnR5cGU/cj1XdC5wYXJzZShyKToiZm9ybWF0dGVkIj09PWUudHlwZT9yPUp0LmZyb21TdHJpbmcoci50b1N0cmluZygpKTpwcihyKT09PWUudHlwZXx8ImVudW0iPT09ZS50eXBlJiZlLnZhbHVlc1tyXXx8KHI9dm9pZCAwKSx2cihyLHQuZGVmYXVsdCxlLmRlZmF1bHQpfWNlLnJlZ2lzdGVyKG5yLHtlcnJvcjpbe2tpbmQ6ImVycm9yIn0sW0R0XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF07dGhyb3cgbmV3IGVlKHIuZXZhbHVhdGUodCkpfV0sdHlwZW9mOltEdCxbTnRdLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHF0KFF0KGVbMF0uZXZhbHVhdGUodCkpKX1dLCJ0by1yZ2JhIjpbVXQoSXQsNCksW0Z0XSxmdW5jdGlvbih0LGUpe3JldHVybiBlWzBdLmV2YWx1YXRlKHQpLnRvQXJyYXkoKX1dLHJnYjpbRnQsW0l0LEl0LEl0XSxhcl0scmdiYTpbRnQsW0l0LEl0LEl0LEl0XSxhcl0saGFzOnt0eXBlOlJ0LG92ZXJsb2FkczpbW1tEdF0sZnVuY3Rpb24odCxlKXtyZXR1cm4gaXIoZVswXS5ldmFsdWF0ZSh0KSx0LnByb3BlcnRpZXMoKSl9XSxbW0R0LEJ0XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF0sbj1lWzFdO3JldHVybiBpcihyLmV2YWx1YXRlKHQpLG4uZXZhbHVhdGUodCkpfV1dfSxnZXQ6e3R5cGU6TnQsb3ZlcmxvYWRzOltbW0R0XSxmdW5jdGlvbih0LGUpe3JldHVybiBvcihlWzBdLmV2YWx1YXRlKHQpLHQucHJvcGVydGllcygpKX1dLFtbRHQsQnRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV07cmV0dXJuIG9yKHIuZXZhbHVhdGUodCksbi5ldmFsdWF0ZSh0KSl9XV19LCJmZWF0dXJlLXN0YXRlIjpbTnQsW0R0XSxmdW5jdGlvbih0LGUpe3JldHVybiBvcihlWzBdLmV2YWx1YXRlKHQpLHQuZmVhdHVyZVN0YXRlfHx7fSl9XSxwcm9wZXJ0aWVzOltCdCxbXSxmdW5jdGlvbih0KXtyZXR1cm4gdC5wcm9wZXJ0aWVzKCl9XSwiZ2VvbWV0cnktdHlwZSI6W0R0LFtdLGZ1bmN0aW9uKHQpe3JldHVybiB0Lmdlb21ldHJ5VHlwZSgpfV0saWQ6W050LFtdLGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkKCl9XSx6b29tOltJdCxbXSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nbG9iYWxzLnpvb219XSwiaGVhdG1hcC1kZW5zaXR5IjpbSXQsW10sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2xvYmFscy5oZWF0bWFwRGVuc2l0eXx8MH1dLCJsaW5lLXByb2dyZXNzIjpbSXQsW10sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2xvYmFscy5saW5lUHJvZ3Jlc3N8fDB9XSxhY2N1bXVsYXRlZDpbTnQsW10sZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQuZ2xvYmFscy5hY2N1bXVsYXRlZD9udWxsOnQuZ2xvYmFscy5hY2N1bXVsYXRlZH1dLCIrIjpbSXQsc3IoSXQpLGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTAsbj0wLGE9ZTtuPGEubGVuZ3RoO24rPTEpcis9YVtuXS5ldmFsdWF0ZSh0KTtyZXR1cm4gcn1dLCIqIjpbSXQsc3IoSXQpLGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTEsbj0wLGE9ZTtuPGEubGVuZ3RoO24rPTEpcio9YVtuXS5ldmFsdWF0ZSh0KTtyZXR1cm4gcn1dLCItIjp7dHlwZTpJdCxvdmVybG9hZHM6W1tbSXQsSXRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV07cmV0dXJuIHIuZXZhbHVhdGUodCktbi5ldmFsdWF0ZSh0KX1dLFtbSXRdLGZ1bmN0aW9uKHQsZSl7cmV0dXJuLWVbMF0uZXZhbHVhdGUodCl9XV19LCIvIjpbSXQsW0l0LEl0XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF0sbj1lWzFdO3JldHVybiByLmV2YWx1YXRlKHQpL24uZXZhbHVhdGUodCl9XSwiJSI6W0l0LFtJdCxJdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49ZVsxXTtyZXR1cm4gci5ldmFsdWF0ZSh0KSVuLmV2YWx1YXRlKHQpfV0sbG4yOltJdCxbXSxmdW5jdGlvbigpe3JldHVybiBNYXRoLkxOMn1dLHBpOltJdCxbXSxmdW5jdGlvbigpe3JldHVybiBNYXRoLlBJfV0sZTpbSXQsW10sZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5FfV0sIl4iOltJdCxbSXQsSXRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV07cmV0dXJuIE1hdGgucG93KHIuZXZhbHVhdGUodCksbi5ldmFsdWF0ZSh0KSl9XSxzcXJ0OltJdCxbSXRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXTtyZXR1cm4gTWF0aC5zcXJ0KHIuZXZhbHVhdGUodCkpfV0sbG9nMTA6W0l0LFtJdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdO3JldHVybiBNYXRoLmxvZyhyLmV2YWx1YXRlKHQpKS9NYXRoLkxOMTB9XSxsbjpbSXQsW0l0XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF07cmV0dXJuIE1hdGgubG9nKHIuZXZhbHVhdGUodCkpfV0sbG9nMjpbSXQsW0l0XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF07cmV0dXJuIE1hdGgubG9nKHIuZXZhbHVhdGUodCkpL01hdGguTE4yfV0sc2luOltJdCxbSXRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXTtyZXR1cm4gTWF0aC5zaW4oci5ldmFsdWF0ZSh0KSl9XSxjb3M6W0l0LFtJdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdO3JldHVybiBNYXRoLmNvcyhyLmV2YWx1YXRlKHQpKX1dLHRhbjpbSXQsW0l0XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF07cmV0dXJuIE1hdGgudGFuKHIuZXZhbHVhdGUodCkpfV0sYXNpbjpbSXQsW0l0XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF07cmV0dXJuIE1hdGguYXNpbihyLmV2YWx1YXRlKHQpKX1dLGFjb3M6W0l0LFtJdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdO3JldHVybiBNYXRoLmFjb3Moci5ldmFsdWF0ZSh0KSl9XSxhdGFuOltJdCxbSXRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXTtyZXR1cm4gTWF0aC5hdGFuKHIuZXZhbHVhdGUodCkpfV0sbWluOltJdCxzcihJdCksZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5taW4uYXBwbHkoTWF0aCxlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS5ldmFsdWF0ZSh0KX0pKX1dLG1heDpbSXQsc3IoSXQpLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1hdGgubWF4LmFwcGx5KE1hdGgsZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZXZhbHVhdGUodCl9KSl9XSxhYnM6W0l0LFtJdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdO3JldHVybiBNYXRoLmFicyhyLmV2YWx1YXRlKHQpKX1dLHJvdW5kOltJdCxbSXRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXS5ldmFsdWF0ZSh0KTtyZXR1cm4gcjwwPy1NYXRoLnJvdW5kKC1yKTpNYXRoLnJvdW5kKHIpfV0sZmxvb3I6W0l0LFtJdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdO3JldHVybiBNYXRoLmZsb29yKHIuZXZhbHVhdGUodCkpfV0sY2VpbDpbSXQsW0l0XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF07cmV0dXJuIE1hdGguY2VpbChyLmV2YWx1YXRlKHQpKX1dLCJmaWx0ZXItPT0iOltSdCxbRHQsTnRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV07cmV0dXJuIHQucHJvcGVydGllcygpW3IudmFsdWVdPT09bi52YWx1ZX1dLCJmaWx0ZXItaWQtPT0iOltSdCxbTnRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXTtyZXR1cm4gdC5pZCgpPT09ci52YWx1ZX1dLCJmaWx0ZXItdHlwZS09PSI6W1J0LFtEdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdO3JldHVybiB0Lmdlb21ldHJ5VHlwZSgpPT09ci52YWx1ZX1dLCJmaWx0ZXItPCI6W1J0LFtEdCxOdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49ZVsxXSxhPXQucHJvcGVydGllcygpW3IudmFsdWVdLGk9bi52YWx1ZTtyZXR1cm4gdHlwZW9mIGE9PXR5cGVvZiBpJiZhPGl9XSwiZmlsdGVyLWlkLTwiOltSdCxbTnRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPXQuaWQoKSxhPXIudmFsdWU7cmV0dXJuIHR5cGVvZiBuPT10eXBlb2YgYSYmbjxhfV0sImZpbHRlci0+IjpbUnQsW0R0LE50XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF0sbj1lWzFdLGE9dC5wcm9wZXJ0aWVzKClbci52YWx1ZV0saT1uLnZhbHVlO3JldHVybiB0eXBlb2YgYT09dHlwZW9mIGkmJmE+aX1dLCJmaWx0ZXItaWQtPiI6W1J0LFtOdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49dC5pZCgpLGE9ci52YWx1ZTtyZXR1cm4gdHlwZW9mIG49PXR5cGVvZiBhJiZuPmF9XSwiZmlsdGVyLTw9IjpbUnQsW0R0LE50XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF0sbj1lWzFdLGE9dC5wcm9wZXJ0aWVzKClbci52YWx1ZV0saT1uLnZhbHVlO3JldHVybiB0eXBlb2YgYT09dHlwZW9mIGkmJmE8PWl9XSwiZmlsdGVyLWlkLTw9IjpbUnQsW050XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF0sbj10LmlkKCksYT1yLnZhbHVlO3JldHVybiB0eXBlb2Ygbj09dHlwZW9mIGEmJm48PWF9XSwiZmlsdGVyLT49IjpbUnQsW0R0LE50XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF0sbj1lWzFdLGE9dC5wcm9wZXJ0aWVzKClbci52YWx1ZV0saT1uLnZhbHVlO3JldHVybiB0eXBlb2YgYT09dHlwZW9mIGkmJmE+PWl9XSwiZmlsdGVyLWlkLT49IjpbUnQsW050XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF0sbj10LmlkKCksYT1yLnZhbHVlO3JldHVybiB0eXBlb2Ygbj09dHlwZW9mIGEmJm4+PWF9XSwiZmlsdGVyLWhhcyI6W1J0LFtOdF0sZnVuY3Rpb24odCxlKXtyZXR1cm4gZVswXS52YWx1ZSBpbiB0LnByb3BlcnRpZXMoKX1dLCJmaWx0ZXItaGFzLWlkIjpbUnQsW10sZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPT10LmlkKCl9XSwiZmlsdGVyLXR5cGUtaW4iOltSdCxbVXQoRHQpXSxmdW5jdGlvbih0LGUpe3JldHVybiBlWzBdLnZhbHVlLmluZGV4T2YodC5nZW9tZXRyeVR5cGUoKSk+PTB9XSwiZmlsdGVyLWlkLWluIjpbUnQsW1V0KE50KV0sZnVuY3Rpb24odCxlKXtyZXR1cm4gZVswXS52YWx1ZS5pbmRleE9mKHQuaWQoKSk+PTB9XSwiZmlsdGVyLWluLXNtYWxsIjpbUnQsW0R0LFV0KE50KV0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdO3JldHVybiBlWzFdLnZhbHVlLmluZGV4T2YodC5wcm9wZXJ0aWVzKClbci52YWx1ZV0pPj0wfV0sImZpbHRlci1pbi1sYXJnZSI6W1J0LFtEdCxVdChOdCldLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV07cmV0dXJuIGZ1bmN0aW9uKHQsZSxyLG4pe2Zvcig7cjw9bjspe3ZhciBhPXIrbj4+MTtpZihlW2FdPT09dClyZXR1cm4hMDtlW2FdPnQ/bj1hLTE6cj1hKzF9cmV0dXJuITF9KHQucHJvcGVydGllcygpW3IudmFsdWVdLG4udmFsdWUsMCxuLnZhbHVlLmxlbmd0aC0xKX1dLGFsbDp7dHlwZTpSdCxvdmVybG9hZHM6W1tbUnQsUnRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV07cmV0dXJuIHIuZXZhbHVhdGUodCkmJm4uZXZhbHVhdGUodCl9XSxbc3IoUnQpLGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTAsbj1lO3I8bi5sZW5ndGg7cis9MSlpZighbltyXS5ldmFsdWF0ZSh0KSlyZXR1cm4hMTtyZXR1cm4hMH1dXX0sYW55Ont0eXBlOlJ0LG92ZXJsb2FkczpbW1tSdCxSdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49ZVsxXTtyZXR1cm4gci5ldmFsdWF0ZSh0KXx8bi5ldmFsdWF0ZSh0KX1dLFtzcihSdCksZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MCxuPWU7cjxuLmxlbmd0aDtyKz0xKWlmKG5bcl0uZXZhbHVhdGUodCkpcmV0dXJuITA7cmV0dXJuITF9XV19LCIhIjpbUnQsW1J0XSxmdW5jdGlvbih0LGUpe3JldHVybiFlWzBdLmV2YWx1YXRlKHQpfV0sImlzLXN1cHBvcnRlZC1zY3JpcHQiOltSdCxbRHRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPXQuZ2xvYmFscyYmdC5nbG9iYWxzLmlzU3VwcG9ydGVkU2NyaXB0O3JldHVybiFufHxuKHIuZXZhbHVhdGUodCkpfV0sdXBjYXNlOltEdCxbRHRdLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGVbMF0uZXZhbHVhdGUodCkudG9VcHBlckNhc2UoKX1dLGRvd25jYXNlOltEdCxbRHRdLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGVbMF0uZXZhbHVhdGUodCkudG9Mb3dlckNhc2UoKX1dLGNvbmNhdDpbRHQsc3IoTnQpLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUubWFwKGZ1bmN0aW9uKGUpe3JldHVybiAkdChlLmV2YWx1YXRlKHQpKX0pLmpvaW4oIiIpfV0sInJlc29sdmVkLWxvY2FsZSI6W0R0LFtqdF0sZnVuY3Rpb24odCxlKXtyZXR1cm4gZVswXS5ldmFsdWF0ZSh0KS5yZXNvbHZlZExvY2FsZSgpfV19KTt2YXIgX3I9ZnVuY3Rpb24odCxlKXt0aGlzLmV4cHJlc3Npb249dCx0aGlzLl93YXJuaW5nSGlzdG9yeT17fSx0aGlzLl9ldmFsdWF0b3I9bmV3IGxlLHRoaXMuX2RlZmF1bHRWYWx1ZT1lP2Z1bmN0aW9uKHQpe3JldHVybiJjb2xvciI9PT10LnR5cGUmJmRyKHQuZGVmYXVsdCk/bmV3IFd0KDAsMCwwLDApOiJjb2xvciI9PT10LnR5cGU/V3QucGFyc2UodC5kZWZhdWx0KXx8bnVsbDp2b2lkIDA9PT10LmRlZmF1bHQ/bnVsbDp0LmRlZmF1bHR9KGUpOm51bGwsdGhpcy5fZW51bVZhbHVlcz1lJiYiZW51bSI9PT1lLnR5cGU/ZS52YWx1ZXM6bnVsbH07ZnVuY3Rpb24gd3IodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCkmJnQubGVuZ3RoPjAmJiJzdHJpbmciPT10eXBlb2YgdFswXSYmdFswXWluIG5yfWZ1bmN0aW9uIGtyKHQsZSl7dmFyIHI9bmV3IGdlKG5yLFtdLGU/ZnVuY3Rpb24odCl7dmFyIGU9e2NvbG9yOkZ0LHN0cmluZzpEdCxudW1iZXI6SXQsZW51bTpEdCxib29sZWFuOlJ0LGZvcm1hdHRlZDpWdH07cmV0dXJuImFycmF5Ij09PXQudHlwZT9VdChlW3QudmFsdWVdfHxOdCx0Lmxlbmd0aCk6ZVt0LnR5cGVdfShlKTp2b2lkIDApLG49ci5wYXJzZSh0LHZvaWQgMCx2b2lkIDAsdm9pZCAwLGUmJiJzdHJpbmciPT09ZS50eXBlP3t0eXBlQW5ub3RhdGlvbjoiY29lcmNlIn06dm9pZCAwKTtyZXR1cm4gbj9scihuZXcgX3IobixlKSk6Y3Ioci5lcnJvcnMpfV9yLnByb3RvdHlwZS5ldmFsdWF0ZVdpdGhvdXRFcnJvckhhbmRsaW5nPWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiB0aGlzLl9ldmFsdWF0b3IuZ2xvYmFscz10LHRoaXMuX2V2YWx1YXRvci5mZWF0dXJlPWUsdGhpcy5fZXZhbHVhdG9yLmZlYXR1cmVTdGF0ZT1yLHRoaXMuX2V2YWx1YXRvci5mb3JtYXR0ZWRTZWN0aW9uPW4sdGhpcy5leHByZXNzaW9uLmV2YWx1YXRlKHRoaXMuX2V2YWx1YXRvcil9LF9yLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbih0LGUscixuKXt0aGlzLl9ldmFsdWF0b3IuZ2xvYmFscz10LHRoaXMuX2V2YWx1YXRvci5mZWF0dXJlPWV8fG51bGwsdGhpcy5fZXZhbHVhdG9yLmZlYXR1cmVTdGF0ZT1yfHxudWxsLHRoaXMuX2V2YWx1YXRvci5mb3JtYXR0ZWRTZWN0aW9uPW58fG51bGw7dHJ5e3ZhciBhPXRoaXMuZXhwcmVzc2lvbi5ldmFsdWF0ZSh0aGlzLl9ldmFsdWF0b3IpO2lmKG51bGw9PWEpcmV0dXJuIHRoaXMuX2RlZmF1bHRWYWx1ZTtpZih0aGlzLl9lbnVtVmFsdWVzJiYhKGEgaW4gdGhpcy5fZW51bVZhbHVlcykpdGhyb3cgbmV3IGVlKCJFeHBlY3RlZCB2YWx1ZSB0byBiZSBvbmUgb2YgIitPYmplY3Qua2V5cyh0aGlzLl9lbnVtVmFsdWVzKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHQpfSkuam9pbigiLCAiKSsiLCBidXQgZm91bmQgIitKU09OLnN0cmluZ2lmeShhKSsiIGluc3RlYWQuIik7cmV0dXJuIGF9Y2F0Y2godCl7cmV0dXJuIHRoaXMuX3dhcm5pbmdIaXN0b3J5W3QubWVzc2FnZV18fCh0aGlzLl93YXJuaW5nSGlzdG9yeVt0Lm1lc3NhZ2VdPSEwLCJ1bmRlZmluZWQiIT10eXBlb2YgY29uc29sZSYmY29uc29sZS53YXJuKHQubWVzc2FnZSkpLHRoaXMuX2RlZmF1bHRWYWx1ZX19O3ZhciBUcj1mdW5jdGlvbih0LGUpe3RoaXMua2luZD10LHRoaXMuX3N0eWxlRXhwcmVzc2lvbj1lLHRoaXMuaXNTdGF0ZURlcGVuZGVudD0iY29uc3RhbnQiIT09dCYmIWZlKGUuZXhwcmVzc2lvbil9O1RyLnByb3RvdHlwZS5ldmFsdWF0ZVdpdGhvdXRFcnJvckhhbmRsaW5nPWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiB0aGlzLl9zdHlsZUV4cHJlc3Npb24uZXZhbHVhdGVXaXRob3V0RXJyb3JIYW5kbGluZyh0LGUscixuKX0sVHIucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiB0aGlzLl9zdHlsZUV4cHJlc3Npb24uZXZhbHVhdGUodCxlLHIsbil9O3ZhciBNcj1mdW5jdGlvbih0LGUscixuKXt0aGlzLmtpbmQ9dCx0aGlzLnpvb21TdG9wcz1yLHRoaXMuX3N0eWxlRXhwcmVzc2lvbj1lLHRoaXMuaXNTdGF0ZURlcGVuZGVudD0iY2FtZXJhIiE9PXQmJiFmZShlLmV4cHJlc3Npb24pLHRoaXMuaW50ZXJwb2xhdGlvblR5cGU9bn07ZnVuY3Rpb24gQXIodCxlKXtpZigiZXJyb3IiPT09KHQ9a3IodCxlKSkucmVzdWx0KXJldHVybiB0O3ZhciByPXQudmFsdWUuZXhwcmVzc2lvbixuPWhlKHIpO2lmKCFuJiYhdXIoZSkpcmV0dXJuIGNyKFtuZXcgUHQoIiIsImRhdGEgZXhwcmVzc2lvbnMgbm90IHN1cHBvcnRlZCIpXSk7dmFyIGE9cGUocixbInpvb20iXSk7aWYoIWEmJiFocihlKSlyZXR1cm4gY3IoW25ldyBQdCgiIiwiem9vbSBleHByZXNzaW9ucyBub3Qgc3VwcG9ydGVkIildKTt2YXIgaT1mdW5jdGlvbiB0KGUpe3ZhciByPW51bGw7aWYoZSBpbnN0YW5jZW9mIFVlKXI9dChlLnJlc3VsdCk7ZWxzZSBpZihlIGluc3RhbmNlb2YgVmUpZm9yKHZhciBuPTAsYT1lLmFyZ3M7bjxhLmxlbmd0aDtuKz0xKXt2YXIgaT1hW25dO2lmKHI9dChpKSlicmVha31lbHNlKGUgaW5zdGFuY2VvZiBtZXx8ZSBpbnN0YW5jZW9mIE5lKSYmZS5pbnB1dCBpbnN0YW5jZW9mIGNlJiYiem9vbSI9PT1lLmlucHV0Lm5hbWUmJihyPWUpO3JldHVybiByIGluc3RhbmNlb2YgUHQ/cjooZS5lYWNoQ2hpbGQoZnVuY3Rpb24oZSl7dmFyIG49dChlKTtuIGluc3RhbmNlb2YgUHQ/cj1uOiFyJiZuP3I9bmV3IFB0KCIiLCciem9vbSIgZXhwcmVzc2lvbiBtYXkgb25seSBiZSB1c2VkIGFzIGlucHV0IHRvIGEgdG9wLWxldmVsICJzdGVwIiBvciAiaW50ZXJwb2xhdGUiIGV4cHJlc3Npb24uJyk6ciYmbiYmciE9PW4mJihyPW5ldyBQdCgiIiwnT25seSBvbmUgem9vbS1iYXNlZCAic3RlcCIgb3IgImludGVycG9sYXRlIiBzdWJleHByZXNzaW9uIG1heSBiZSB1c2VkIGluIGFuIGV4cHJlc3Npb24uJykpfSkscil9KHIpO2lmKCFpJiYhYSlyZXR1cm4gY3IoW25ldyBQdCgiIiwnInpvb20iIGV4cHJlc3Npb24gbWF5IG9ubHkgYmUgdXNlZCBhcyBpbnB1dCB0byBhIHRvcC1sZXZlbCAic3RlcCIgb3IgImludGVycG9sYXRlIiBleHByZXNzaW9uLicpXSk7aWYoaSBpbnN0YW5jZW9mIFB0KXJldHVybiBjcihbaV0pO2lmKGkgaW5zdGFuY2VvZiBOZSYmIWZyKGUpKXJldHVybiBjcihbbmV3IFB0KCIiLCciaW50ZXJwb2xhdGUiIGV4cHJlc3Npb25zIGNhbm5vdCBiZSB1c2VkIHdpdGggdGhpcyBwcm9wZXJ0eScpXSk7aWYoIWkpcmV0dXJuIGxyKG5ldyBUcihuPyJjb25zdGFudCI6InNvdXJjZSIsdC52YWx1ZSkpO3ZhciBvPWkgaW5zdGFuY2VvZiBOZT9pLmludGVycG9sYXRpb246dm9pZCAwO3JldHVybiBscihuZXcgTXIobj8iY2FtZXJhIjoiY29tcG9zaXRlIix0LnZhbHVlLGkubGFiZWxzLG8pKX1Nci5wcm90b3R5cGUuZXZhbHVhdGVXaXRob3V0RXJyb3JIYW5kbGluZz1mdW5jdGlvbih0LGUscixuKXtyZXR1cm4gdGhpcy5fc3R5bGVFeHByZXNzaW9uLmV2YWx1YXRlV2l0aG91dEVycm9ySGFuZGxpbmcodCxlLHIsbil9LE1yLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbih0LGUscixuKXtyZXR1cm4gdGhpcy5fc3R5bGVFeHByZXNzaW9uLmV2YWx1YXRlKHQsZSxyLG4pfSxNci5wcm90b3R5cGUuaW50ZXJwb2xhdGlvbkZhY3Rvcj1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRoaXMuaW50ZXJwb2xhdGlvblR5cGU/TmUuaW50ZXJwb2xhdGlvbkZhY3Rvcih0aGlzLmludGVycG9sYXRpb25UeXBlLHQsZSxyKTowfTt2YXIgU3I9ZnVuY3Rpb24odCxlKXt0aGlzLl9wYXJhbWV0ZXJzPXQsdGhpcy5fc3BlY2lmaWNhdGlvbj1lLFN0KHRoaXMsZnVuY3Rpb24gdChlLHIpe3ZhciBuLGEsaSxvPSJjb2xvciI9PT1yLnR5cGUscz1lLnN0b3BzJiYib2JqZWN0Ij09dHlwZW9mIGUuc3RvcHNbMF1bMF0sbD1zfHx2b2lkIDAhPT1lLnByb3BlcnR5LGM9c3x8IWwsdT1lLnR5cGV8fChmcihyKT8iZXhwb25lbnRpYWwiOiJpbnRlcnZhbCIpO2lmKG8mJigoZT1TdCh7fSxlKSkuc3RvcHMmJihlLnN0b3BzPWUuc3RvcHMubWFwKGZ1bmN0aW9uKHQpe3JldHVyblt0WzBdLFd0LnBhcnNlKHRbMV0pXX0pKSxlLmRlZmF1bHQ/ZS5kZWZhdWx0PVd0LnBhcnNlKGUuZGVmYXVsdCk6ZS5kZWZhdWx0PVd0LnBhcnNlKHIuZGVmYXVsdCkpLGUuY29sb3JTcGFjZSYmInJnYiIhPT1lLmNvbG9yU3BhY2UmJiFCZVtlLmNvbG9yU3BhY2VdKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBjb2xvciBzcGFjZTogIitlLmNvbG9yU3BhY2UpO2lmKCJleHBvbmVudGlhbCI9PT11KW49eHI7ZWxzZSBpZigiaW50ZXJ2YWwiPT09dSluPXlyO2Vsc2UgaWYoImNhdGVnb3JpY2FsIj09PXUpe249bXIsYT1PYmplY3QuY3JlYXRlKG51bGwpO2Zvcih2YXIgaD0wLGY9ZS5zdG9wcztoPGYubGVuZ3RoO2grPTEpe3ZhciBwPWZbaF07YVtwWzBdXT1wWzFdfWk9dHlwZW9mIGUuc3RvcHNbMF1bMF19ZWxzZXtpZigiaWRlbnRpdHkiIT09dSl0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gZnVuY3Rpb24gdHlwZSAiJyt1KyciJyk7bj1icn1pZihzKXtmb3IodmFyIGQ9e30sZz1bXSx2PTA7djxlLnN0b3BzLmxlbmd0aDt2Kyspe3ZhciBtPWUuc3RvcHNbdl0seT1tWzBdLnpvb207dm9pZCAwPT09ZFt5XSYmKGRbeV09e3pvb206eSx0eXBlOmUudHlwZSxwcm9wZXJ0eTplLnByb3BlcnR5LGRlZmF1bHQ6ZS5kZWZhdWx0LHN0b3BzOltdfSxnLnB1c2goeSkpLGRbeV0uc3RvcHMucHVzaChbbVswXS52YWx1ZSxtWzFdXSl9Zm9yKHZhciB4PVtdLGI9MCxfPWc7YjxfLmxlbmd0aDtiKz0xKXt2YXIgdz1fW2JdO3gucHVzaChbZFt3XS56b29tLHQoZFt3XSxyKV0pfXZhciBrPXtuYW1lOiJsaW5lYXIifTtyZXR1cm57a2luZDoiY29tcG9zaXRlIixpbnRlcnBvbGF0aW9uVHlwZTprLGludGVycG9sYXRpb25GYWN0b3I6TmUuaW50ZXJwb2xhdGlvbkZhY3Rvci5iaW5kKHZvaWQgMCxrKSx6b29tU3RvcHM6eC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHRbMF19KSxldmFsdWF0ZTpmdW5jdGlvbih0LG4pe3ZhciBhPXQuem9vbTtyZXR1cm4geHIoe3N0b3BzOngsYmFzZTplLmJhc2V9LHIsYSkuZXZhbHVhdGUoYSxuKX19fWlmKGMpe3ZhciBUPSJleHBvbmVudGlhbCI9PT11P3tuYW1lOiJleHBvbmVudGlhbCIsYmFzZTp2b2lkIDAhPT1lLmJhc2U/ZS5iYXNlOjF9Om51bGw7cmV0dXJue2tpbmQ6ImNhbWVyYSIsaW50ZXJwb2xhdGlvblR5cGU6VCxpbnRlcnBvbGF0aW9uRmFjdG9yOk5lLmludGVycG9sYXRpb25GYWN0b3IuYmluZCh2b2lkIDAsVCksem9vbVN0b3BzOmUuc3RvcHMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdfSksZXZhbHVhdGU6ZnVuY3Rpb24odCl7dmFyIG89dC56b29tO3JldHVybiBuKGUscixvLGEsaSl9fX1yZXR1cm57a2luZDoic291cmNlIixldmFsdWF0ZTpmdW5jdGlvbih0LG8pe3ZhciBzPW8mJm8ucHJvcGVydGllcz9vLnByb3BlcnRpZXNbZS5wcm9wZXJ0eV06dm9pZCAwO3JldHVybiB2b2lkIDA9PT1zP3ZyKGUuZGVmYXVsdCxyLmRlZmF1bHQpOm4oZSxyLHMsYSxpKX19fSh0aGlzLl9wYXJhbWV0ZXJzLHRoaXMuX3NwZWNpZmljYXRpb24pKX07ZnVuY3Rpb24gRXIodCl7dmFyIGU9dC5rZXkscj10LnZhbHVlLG49dC52YWx1ZVNwZWN8fHt9LGE9dC5vYmplY3RFbGVtZW50VmFsaWRhdG9yc3x8e30saT10LnN0eWxlLG89dC5zdHlsZVNwZWMscz1bXSxsPXByKHIpO2lmKCJvYmplY3QiIT09bClyZXR1cm5bbmV3IE10KGUsciwib2JqZWN0IGV4cGVjdGVkLCAiK2wrIiBmb3VuZCIpXTtmb3IodmFyIGMgaW4gcil7dmFyIHU9Yy5zcGxpdCgiLiIpWzBdLGg9blt1XXx8blsiKiJdLGY9dm9pZCAwO2lmKGFbdV0pZj1hW3VdO2Vsc2UgaWYoblt1XSlmPVFyO2Vsc2UgaWYoYVsiKiJdKWY9YVsiKiJdO2Vsc2V7aWYoIW5bIioiXSl7cy5wdXNoKG5ldyBNdChlLHJbY10sJ3Vua25vd24gcHJvcGVydHkgIicrYysnIicpKTtjb250aW51ZX1mPVFyfXM9cy5jb25jYXQoZih7a2V5OihlP2UrIi4iOmUpK2MsdmFsdWU6cltjXSx2YWx1ZVNwZWM6aCxzdHlsZTppLHN0eWxlU3BlYzpvLG9iamVjdDpyLG9iamVjdEtleTpjfSxyKSl9Zm9yKHZhciBwIGluIG4pYVtwXXx8bltwXS5yZXF1aXJlZCYmdm9pZCAwPT09bltwXS5kZWZhdWx0JiZ2b2lkIDA9PT1yW3BdJiZzLnB1c2gobmV3IE10KGUsciwnbWlzc2luZyByZXF1aXJlZCBwcm9wZXJ0eSAiJytwKyciJykpO3JldHVybiBzfWZ1bmN0aW9uIExyKHQpe3ZhciBlPXQudmFsdWUscj10LnZhbHVlU3BlYyxuPXQuc3R5bGUsYT10LnN0eWxlU3BlYyxpPXQua2V5LG89dC5hcnJheUVsZW1lbnRWYWxpZGF0b3J8fFFyO2lmKCJhcnJheSIhPT1wcihlKSlyZXR1cm5bbmV3IE10KGksZSwiYXJyYXkgZXhwZWN0ZWQsICIrcHIoZSkrIiBmb3VuZCIpXTtpZihyLmxlbmd0aCYmZS5sZW5ndGghPT1yLmxlbmd0aClyZXR1cm5bbmV3IE10KGksZSwiYXJyYXkgbGVuZ3RoICIrci5sZW5ndGgrIiBleHBlY3RlZCwgbGVuZ3RoICIrZS5sZW5ndGgrIiBmb3VuZCIpXTtpZihyWyJtaW4tbGVuZ3RoIl0mJmUubGVuZ3RoPHJbIm1pbi1sZW5ndGgiXSlyZXR1cm5bbmV3IE10KGksZSwiYXJyYXkgbGVuZ3RoIGF0IGxlYXN0ICIrclsibWluLWxlbmd0aCJdKyIgZXhwZWN0ZWQsIGxlbmd0aCAiK2UubGVuZ3RoKyIgZm91bmQiKV07dmFyIHM9e3R5cGU6ci52YWx1ZSx2YWx1ZXM6ci52YWx1ZXN9O2EuJHZlcnNpb248NyYmKHMuZnVuY3Rpb249ci5mdW5jdGlvbiksIm9iamVjdCI9PT1wcihyLnZhbHVlKSYmKHM9ci52YWx1ZSk7Zm9yKHZhciBsPVtdLGM9MDtjPGUubGVuZ3RoO2MrKylsPWwuY29uY2F0KG8oe2FycmF5OmUsYXJyYXlJbmRleDpjLHZhbHVlOmVbY10sdmFsdWVTcGVjOnMsc3R5bGU6bixzdHlsZVNwZWM6YSxrZXk6aSsiWyIrYysiXSJ9KSk7cmV0dXJuIGx9ZnVuY3Rpb24gQ3IodCl7dmFyIGU9dC5rZXkscj10LnZhbHVlLG49dC52YWx1ZVNwZWMsYT1wcihyKTtyZXR1cm4ibnVtYmVyIiE9PWE/W25ldyBNdChlLHIsIm51bWJlciBleHBlY3RlZCwgIithKyIgZm91bmQiKV06Im1pbmltdW0iaW4gbiYmcjxuLm1pbmltdW0/W25ldyBNdChlLHIscisiIGlzIGxlc3MgdGhhbiB0aGUgbWluaW11bSB2YWx1ZSAiK24ubWluaW11bSldOiJtYXhpbXVtImluIG4mJnI+bi5tYXhpbXVtP1tuZXcgTXQoZSxyLHIrIiBpcyBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0gdmFsdWUgIituLm1heGltdW0pXTpbXX1mdW5jdGlvbiBQcih0KXt2YXIgZSxyLG4sYT10LnZhbHVlU3BlYyxpPUx0KHQudmFsdWUudHlwZSksbz17fSxzPSJjYXRlZ29yaWNhbCIhPT1pJiZ2b2lkIDA9PT10LnZhbHVlLnByb3BlcnR5LGw9IXMsYz0iYXJyYXkiPT09cHIodC52YWx1ZS5zdG9wcykmJiJhcnJheSI9PT1wcih0LnZhbHVlLnN0b3BzWzBdKSYmIm9iamVjdCI9PT1wcih0LnZhbHVlLnN0b3BzWzBdWzBdKSx1PUVyKHtrZXk6dC5rZXksdmFsdWU6dC52YWx1ZSx2YWx1ZVNwZWM6dC5zdHlsZVNwZWMuZnVuY3Rpb24sc3R5bGU6dC5zdHlsZSxzdHlsZVNwZWM6dC5zdHlsZVNwZWMsb2JqZWN0RWxlbWVudFZhbGlkYXRvcnM6e3N0b3BzOmZ1bmN0aW9uKHQpe2lmKCJpZGVudGl0eSI9PT1pKXJldHVybltuZXcgTXQodC5rZXksdC52YWx1ZSwnaWRlbnRpdHkgZnVuY3Rpb24gbWF5IG5vdCBoYXZlIGEgInN0b3BzIiBwcm9wZXJ0eScpXTt2YXIgZT1bXSxyPXQudmFsdWU7cmV0dXJuIGU9ZS5jb25jYXQoTHIoe2tleTp0LmtleSx2YWx1ZTpyLHZhbHVlU3BlYzp0LnZhbHVlU3BlYyxzdHlsZTp0LnN0eWxlLHN0eWxlU3BlYzp0LnN0eWxlU3BlYyxhcnJheUVsZW1lbnRWYWxpZGF0b3I6aH0pKSwiYXJyYXkiPT09cHIocikmJjA9PT1yLmxlbmd0aCYmZS5wdXNoKG5ldyBNdCh0LmtleSxyLCJhcnJheSBtdXN0IGhhdmUgYXQgbGVhc3Qgb25lIHN0b3AiKSksZX0sZGVmYXVsdDpmdW5jdGlvbih0KXtyZXR1cm4gUXIoe2tleTp0LmtleSx2YWx1ZTp0LnZhbHVlLHZhbHVlU3BlYzphLHN0eWxlOnQuc3R5bGUsc3R5bGVTcGVjOnQuc3R5bGVTcGVjfSl9fX0pO3JldHVybiJpZGVudGl0eSI9PT1pJiZzJiZ1LnB1c2gobmV3IE10KHQua2V5LHQudmFsdWUsJ21pc3NpbmcgcmVxdWlyZWQgcHJvcGVydHkgInByb3BlcnR5IicpKSwiaWRlbnRpdHkiPT09aXx8dC52YWx1ZS5zdG9wc3x8dS5wdXNoKG5ldyBNdCh0LmtleSx0LnZhbHVlLCdtaXNzaW5nIHJlcXVpcmVkIHByb3BlcnR5ICJzdG9wcyInKSksImV4cG9uZW50aWFsIj09PWkmJnQudmFsdWVTcGVjLmV4cHJlc3Npb24mJiFmcih0LnZhbHVlU3BlYykmJnUucHVzaChuZXcgTXQodC5rZXksdC52YWx1ZSwiZXhwb25lbnRpYWwgZnVuY3Rpb25zIG5vdCBzdXBwb3J0ZWQiKSksdC5zdHlsZVNwZWMuJHZlcnNpb24+PTgmJihsJiYhdXIodC52YWx1ZVNwZWMpP3UucHVzaChuZXcgTXQodC5rZXksdC52YWx1ZSwicHJvcGVydHkgZnVuY3Rpb25zIG5vdCBzdXBwb3J0ZWQiKSk6cyYmIWhyKHQudmFsdWVTcGVjKSYmdS5wdXNoKG5ldyBNdCh0LmtleSx0LnZhbHVlLCJ6b29tIGZ1bmN0aW9ucyBub3Qgc3VwcG9ydGVkIikpKSwiY2F0ZWdvcmljYWwiIT09aSYmIWN8fHZvaWQgMCE9PXQudmFsdWUucHJvcGVydHl8fHUucHVzaChuZXcgTXQodC5rZXksdC52YWx1ZSwnInByb3BlcnR5IiBwcm9wZXJ0eSBpcyByZXF1aXJlZCcpKSx1O2Z1bmN0aW9uIGgodCl7dmFyIGU9W10saT10LnZhbHVlLHM9dC5rZXk7aWYoImFycmF5IiE9PXByKGkpKXJldHVybltuZXcgTXQocyxpLCJhcnJheSBleHBlY3RlZCwgIitwcihpKSsiIGZvdW5kIildO2lmKDIhPT1pLmxlbmd0aClyZXR1cm5bbmV3IE10KHMsaSwiYXJyYXkgbGVuZ3RoIDIgZXhwZWN0ZWQsIGxlbmd0aCAiK2kubGVuZ3RoKyIgZm91bmQiKV07aWYoYyl7aWYoIm9iamVjdCIhPT1wcihpWzBdKSlyZXR1cm5bbmV3IE10KHMsaSwib2JqZWN0IGV4cGVjdGVkLCAiK3ByKGlbMF0pKyIgZm91bmQiKV07aWYodm9pZCAwPT09aVswXS56b29tKXJldHVybltuZXcgTXQocyxpLCJvYmplY3Qgc3RvcCBrZXkgbXVzdCBoYXZlIHpvb20iKV07aWYodm9pZCAwPT09aVswXS52YWx1ZSlyZXR1cm5bbmV3IE10KHMsaSwib2JqZWN0IHN0b3Aga2V5IG11c3QgaGF2ZSB2YWx1ZSIpXTtpZihuJiZuPkx0KGlbMF0uem9vbSkpcmV0dXJuW25ldyBNdChzLGlbMF0uem9vbSwic3RvcCB6b29tIHZhbHVlcyBtdXN0IGFwcGVhciBpbiBhc2NlbmRpbmcgb3JkZXIiKV07THQoaVswXS56b29tKSE9PW4mJihuPUx0KGlbMF0uem9vbSkscj12b2lkIDAsbz17fSksZT1lLmNvbmNhdChFcih7a2V5OnMrIlswXSIsdmFsdWU6aVswXSx2YWx1ZVNwZWM6e3pvb206e319LHN0eWxlOnQuc3R5bGUsc3R5bGVTcGVjOnQuc3R5bGVTcGVjLG9iamVjdEVsZW1lbnRWYWxpZGF0b3JzOnt6b29tOkNyLHZhbHVlOmZ9fSkpfWVsc2UgZT1lLmNvbmNhdChmKHtrZXk6cysiWzBdIix2YWx1ZTppWzBdLHZhbHVlU3BlYzp7fSxzdHlsZTp0LnN0eWxlLHN0eWxlU3BlYzp0LnN0eWxlU3BlY30saSkpO3JldHVybiB3cihDdChpWzFdKSk/ZS5jb25jYXQoW25ldyBNdChzKyJbMV0iLGlbMV0sImV4cHJlc3Npb25zIGFyZSBub3QgYWxsb3dlZCBpbiBmdW5jdGlvbiBzdG9wcy4iKV0pOmUuY29uY2F0KFFyKHtrZXk6cysiWzFdIix2YWx1ZTppWzFdLHZhbHVlU3BlYzphLHN0eWxlOnQuc3R5bGUsc3R5bGVTcGVjOnQuc3R5bGVTcGVjfSkpfWZ1bmN0aW9uIGYodCxuKXt2YXIgcz1wcih0LnZhbHVlKSxsPUx0KHQudmFsdWUpLGM9bnVsbCE9PXQudmFsdWU/dC52YWx1ZTpuO2lmKGUpe2lmKHMhPT1lKXJldHVybltuZXcgTXQodC5rZXksYyxzKyIgc3RvcCBkb21haW4gdHlwZSBtdXN0IG1hdGNoIHByZXZpb3VzIHN0b3AgZG9tYWluIHR5cGUgIitlKV19ZWxzZSBlPXM7aWYoIm51bWJlciIhPT1zJiYic3RyaW5nIiE9PXMmJiJib29sZWFuIiE9PXMpcmV0dXJuW25ldyBNdCh0LmtleSxjLCJzdG9wIGRvbWFpbiB2YWx1ZSBtdXN0IGJlIGEgbnVtYmVyLCBzdHJpbmcsIG9yIGJvb2xlYW4iKV07aWYoIm51bWJlciIhPT1zJiYiY2F0ZWdvcmljYWwiIT09aSl7dmFyIHU9Im51bWJlciBleHBlY3RlZCwgIitzKyIgZm91bmQiO3JldHVybiB1cihhKSYmdm9pZCAwPT09aSYmKHUrPSdcbklmIHlvdSBpbnRlbmRlZCB0byB1c2UgYSBjYXRlZ29yaWNhbCBmdW5jdGlvbiwgc3BlY2lmeSBgInR5cGUiOiAiY2F0ZWdvcmljYWwiYC4nKSxbbmV3IE10KHQua2V5LGMsdSldfXJldHVybiJjYXRlZ29yaWNhbCIhPT1pfHwibnVtYmVyIiE9PXN8fGlzRmluaXRlKGwpJiZNYXRoLmZsb29yKGwpPT09bD8iY2F0ZWdvcmljYWwiIT09aSYmIm51bWJlciI9PT1zJiZ2b2lkIDAhPT1yJiZsPHI/W25ldyBNdCh0LmtleSxjLCJzdG9wIGRvbWFpbiB2YWx1ZXMgbXVzdCBhcHBlYXIgaW4gYXNjZW5kaW5nIG9yZGVyIildOihyPWwsImNhdGVnb3JpY2FsIj09PWkmJmwgaW4gbz9bbmV3IE10KHQua2V5LGMsInN0b3AgZG9tYWluIHZhbHVlcyBtdXN0IGJlIHVuaXF1ZSIpXToob1tsXT0hMCxbXSkpOltuZXcgTXQodC5rZXksYywiaW50ZWdlciBleHBlY3RlZCwgZm91bmQgIitsKV19fWZ1bmN0aW9uIE9yKHQpe3ZhciBlPSgicHJvcGVydHkiPT09dC5leHByZXNzaW9uQ29udGV4dD9BcjprcikoQ3QodC52YWx1ZSksdC52YWx1ZVNwZWMpO2lmKCJlcnJvciI9PT1lLnJlc3VsdClyZXR1cm4gZS52YWx1ZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBNdCgiIit0LmtleStlLmtleSx0LnZhbHVlLGUubWVzc2FnZSl9KTt2YXIgcj1lLnZhbHVlLmV4cHJlc3Npb258fGUudmFsdWUuX3N0eWxlRXhwcmVzc2lvbi5leHByZXNzaW9uO2lmKCJwcm9wZXJ0eSI9PT10LmV4cHJlc3Npb25Db250ZXh0JiYidGV4dC1mb250Ij09PXQucHJvcGVydHlLZXkmJi0xIT09ci5wb3NzaWJsZU91dHB1dHMoKS5pbmRleE9mKHZvaWQgMCkpcmV0dXJuW25ldyBNdCh0LmtleSx0LnZhbHVlLCdJbnZhbGlkIGRhdGEgZXhwcmVzc2lvbiBmb3IgIicrdC5wcm9wZXJ0eUtleSsnIi4gT3V0cHV0IHZhbHVlcyBtdXN0IGJlIGNvbnRhaW5lZCBhcyBsaXRlcmFscyB3aXRoaW4gdGhlIGV4cHJlc3Npb24uJyldO2lmKCJwcm9wZXJ0eSI9PT10LmV4cHJlc3Npb25Db250ZXh0JiYibGF5b3V0Ij09PXQucHJvcGVydHlUeXBlJiYhZmUocikpcmV0dXJuW25ldyBNdCh0LmtleSx0LnZhbHVlLCciZmVhdHVyZS1zdGF0ZSIgZGF0YSBleHByZXNzaW9ucyBhcmUgbm90IHN1cHBvcnRlZCB3aXRoIGxheW91dCBwcm9wZXJ0aWVzLicpXTtpZigiZmlsdGVyIj09PXQuZXhwcmVzc2lvbkNvbnRleHQmJiFmZShyKSlyZXR1cm5bbmV3IE10KHQua2V5LHQudmFsdWUsJyJmZWF0dXJlLXN0YXRlIiBkYXRhIGV4cHJlc3Npb25zIGFyZSBub3Qgc3VwcG9ydGVkIHdpdGggZmlsdGVycy4nKV07aWYodC5leHByZXNzaW9uQ29udGV4dCYmMD09PXQuZXhwcmVzc2lvbkNvbnRleHQuaW5kZXhPZigiY2x1c3RlciIpKXtpZighcGUocixbInpvb20iLCJmZWF0dXJlLXN0YXRlIl0pKXJldHVybltuZXcgTXQodC5rZXksdC52YWx1ZSwnInpvb20iIGFuZCAiZmVhdHVyZS1zdGF0ZSIgZXhwcmVzc2lvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgd2l0aCBjbHVzdGVyIHByb3BlcnRpZXMuJyldO2lmKCJjbHVzdGVyLWluaXRpYWwiPT09dC5leHByZXNzaW9uQ29udGV4dCYmIWhlKHIpKXJldHVybltuZXcgTXQodC5rZXksdC52YWx1ZSwiRmVhdHVyZSBkYXRhIGV4cHJlc3Npb25zIGFyZSBub3Qgc3VwcG9ydGVkIHdpdGggaW5pdGlhbCBleHByZXNzaW9uIHBhcnQgb2YgY2x1c3RlciBwcm9wZXJ0aWVzLiIpXX1yZXR1cm5bXX1mdW5jdGlvbiB6cih0KXt2YXIgZT10LmtleSxyPXQudmFsdWUsbj10LnZhbHVlU3BlYyxhPVtdO3JldHVybiBBcnJheS5pc0FycmF5KG4udmFsdWVzKT8tMT09PW4udmFsdWVzLmluZGV4T2YoTHQocikpJiZhLnB1c2gobmV3IE10KGUsciwiZXhwZWN0ZWQgb25lIG9mIFsiK24udmFsdWVzLmpvaW4oIiwgIikrIl0sICIrSlNPTi5zdHJpbmdpZnkocikrIiBmb3VuZCIpKTotMT09PU9iamVjdC5rZXlzKG4udmFsdWVzKS5pbmRleE9mKEx0KHIpKSYmYS5wdXNoKG5ldyBNdChlLHIsImV4cGVjdGVkIG9uZSBvZiBbIitPYmplY3Qua2V5cyhuLnZhbHVlcykuam9pbigiLCAiKSsiXSwgIitKU09OLnN0cmluZ2lmeShyKSsiIGZvdW5kIikpLGF9ZnVuY3Rpb24gSXIodCl7aWYoITA9PT10fHwhMT09PXQpcmV0dXJuITA7aWYoIUFycmF5LmlzQXJyYXkodCl8fDA9PT10Lmxlbmd0aClyZXR1cm4hMTtzd2l0Y2godFswXSl7Y2FzZSJoYXMiOnJldHVybiB0Lmxlbmd0aD49MiYmIiRpZCIhPT10WzFdJiYiJHR5cGUiIT09dFsxXTtjYXNlImluIjpjYXNlIiFpbiI6Y2FzZSIhaGFzIjpjYXNlIm5vbmUiOnJldHVybiExO2Nhc2UiPT0iOmNhc2UiIT0iOmNhc2UiPiI6Y2FzZSI+PSI6Y2FzZSI8IjpjYXNlIjw9IjpyZXR1cm4gMyE9PXQubGVuZ3RofHxBcnJheS5pc0FycmF5KHRbMV0pfHxBcnJheS5pc0FycmF5KHRbMl0pO2Nhc2UiYW55IjpjYXNlImFsbCI6Zm9yKHZhciBlPTAscj10LnNsaWNlKDEpO2U8ci5sZW5ndGg7ZSs9MSl7dmFyIG49cltlXTtpZighSXIobikmJiJib29sZWFuIiE9dHlwZW9mIG4pcmV0dXJuITF9cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMH19U3IuZGVzZXJpYWxpemU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBTcih0Ll9wYXJhbWV0ZXJzLHQuX3NwZWNpZmljYXRpb24pfSxTci5zZXJpYWxpemU9ZnVuY3Rpb24odCl7cmV0dXJue19wYXJhbWV0ZXJzOnQuX3BhcmFtZXRlcnMsX3NwZWNpZmljYXRpb246dC5fc3BlY2lmaWNhdGlvbn19O3ZhciBEcj17dHlwZToiYm9vbGVhbiIsZGVmYXVsdDohMSx0cmFuc2l0aW9uOiExLCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4iLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiXX19O2Z1bmN0aW9uIFJyKHQpe2lmKG51bGw9PXQpcmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuITB9O0lyKHQpfHwodD1Ccih0KSk7dmFyIGU9a3IodCxEcik7aWYoImVycm9yIj09PWUucmVzdWx0KXRocm93IG5ldyBFcnJvcihlLnZhbHVlLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5rZXkrIjogIit0Lm1lc3NhZ2V9KS5qb2luKCIsICIpKTtyZXR1cm4gZnVuY3Rpb24odCxyKXtyZXR1cm4gZS52YWx1ZS5ldmFsdWF0ZSh0LHIpfX1mdW5jdGlvbiBGcih0LGUpe3JldHVybiB0PGU/LTE6dD5lPzE6MH1mdW5jdGlvbiBCcih0KXtpZighdClyZXR1cm4hMDt2YXIgZSxyPXRbMF07cmV0dXJuIHQubGVuZ3RoPD0xPyJhbnkiIT09cjoiPT0iPT09cj9Ocih0WzFdLHRbMl0sIj09Iik6IiE9Ij09PXI/VXIoTnIodFsxXSx0WzJdLCI9PSIpKToiPCI9PT1yfHwiPiI9PT1yfHwiPD0iPT09cnx8Ij49Ij09PXI/TnIodFsxXSx0WzJdLHIpOiJhbnkiPT09cj8oZT10LnNsaWNlKDEpLFsiYW55Il0uY29uY2F0KGUubWFwKEJyKSkpOiJhbGwiPT09cj9bImFsbCJdLmNvbmNhdCh0LnNsaWNlKDEpLm1hcChCcikpOiJub25lIj09PXI/WyJhbGwiXS5jb25jYXQodC5zbGljZSgxKS5tYXAoQnIpLm1hcChVcikpOiJpbiI9PT1yP2pyKHRbMV0sdC5zbGljZSgyKSk6IiFpbiI9PT1yP1VyKGpyKHRbMV0sdC5zbGljZSgyKSkpOiJoYXMiPT09cj9Wcih0WzFdKToiIWhhcyIhPT1yfHxVcihWcih0WzFdKSl9ZnVuY3Rpb24gTnIodCxlLHIpe3N3aXRjaCh0KXtjYXNlIiR0eXBlIjpyZXR1cm5bImZpbHRlci10eXBlLSIrcixlXTtjYXNlIiRpZCI6cmV0dXJuWyJmaWx0ZXItaWQtIityLGVdO2RlZmF1bHQ6cmV0dXJuWyJmaWx0ZXItIityLHQsZV19fWZ1bmN0aW9uIGpyKHQsZSl7aWYoMD09PWUubGVuZ3RoKXJldHVybiExO3N3aXRjaCh0KXtjYXNlIiR0eXBlIjpyZXR1cm5bImZpbHRlci10eXBlLWluIixbImxpdGVyYWwiLGVdXTtjYXNlIiRpZCI6cmV0dXJuWyJmaWx0ZXItaWQtaW4iLFsibGl0ZXJhbCIsZV1dO2RlZmF1bHQ6cmV0dXJuIGUubGVuZ3RoPjIwMCYmIWUuc29tZShmdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHQhPXR5cGVvZiBlWzBdfSk/WyJmaWx0ZXItaW4tbGFyZ2UiLHQsWyJsaXRlcmFsIixlLnNvcnQoRnIpXV06WyJmaWx0ZXItaW4tc21hbGwiLHQsWyJsaXRlcmFsIixlXV19fWZ1bmN0aW9uIFZyKHQpe3N3aXRjaCh0KXtjYXNlIiR0eXBlIjpyZXR1cm4hMDtjYXNlIiRpZCI6cmV0dXJuWyJmaWx0ZXItaGFzLWlkIl07ZGVmYXVsdDpyZXR1cm5bImZpbHRlci1oYXMiLHRdfX1mdW5jdGlvbiBVcih0KXtyZXR1cm5bIiEiLHRdfWZ1bmN0aW9uIHFyKHQpe3JldHVybiBJcihDdCh0LnZhbHVlKSk/T3IoU3Qoe30sdCx7ZXhwcmVzc2lvbkNvbnRleHQ6ImZpbHRlciIsdmFsdWVTcGVjOnt2YWx1ZToiYm9vbGVhbiJ9fSkpOmZ1bmN0aW9uIHQoZSl7dmFyIHI9ZS52YWx1ZSxuPWUua2V5O2lmKCJhcnJheSIhPT1wcihyKSlyZXR1cm5bbmV3IE10KG4sciwiYXJyYXkgZXhwZWN0ZWQsICIrcHIocikrIiBmb3VuZCIpXTt2YXIgYSxpPWUuc3R5bGVTcGVjLG89W107aWYoci5sZW5ndGg8MSlyZXR1cm5bbmV3IE10KG4sciwiZmlsdGVyIGFycmF5IG11c3QgaGF2ZSBhdCBsZWFzdCAxIGVsZW1lbnQiKV07c3dpdGNoKG89by5jb25jYXQoenIoe2tleTpuKyJbMF0iLHZhbHVlOnJbMF0sdmFsdWVTcGVjOmkuZmlsdGVyX29wZXJhdG9yLHN0eWxlOmUuc3R5bGUsc3R5bGVTcGVjOmUuc3R5bGVTcGVjfSkpLEx0KHJbMF0pKXtjYXNlIjwiOmNhc2UiPD0iOmNhc2UiPiI6Y2FzZSI+PSI6ci5sZW5ndGg+PTImJiIkdHlwZSI9PT1MdChyWzFdKSYmby5wdXNoKG5ldyBNdChuLHIsJyIkdHlwZSIgY2Fubm90IGJlIHVzZSB3aXRoIG9wZXJhdG9yICInK3JbMF0rJyInKSk7Y2FzZSI9PSI6Y2FzZSIhPSI6MyE9PXIubGVuZ3RoJiZvLnB1c2gobmV3IE10KG4sciwnZmlsdGVyIGFycmF5IGZvciBvcGVyYXRvciAiJytyWzBdKyciIG11c3QgaGF2ZSAzIGVsZW1lbnRzJykpO2Nhc2UiaW4iOmNhc2UiIWluIjpyLmxlbmd0aD49MiYmInN0cmluZyIhPT0oYT1wcihyWzFdKSkmJm8ucHVzaChuZXcgTXQobisiWzFdIixyWzFdLCJzdHJpbmcgZXhwZWN0ZWQsICIrYSsiIGZvdW5kIikpO2Zvcih2YXIgcz0yO3M8ci5sZW5ndGg7cysrKWE9cHIocltzXSksIiR0eXBlIj09PUx0KHJbMV0pP289by5jb25jYXQoenIoe2tleTpuKyJbIitzKyJdIix2YWx1ZTpyW3NdLHZhbHVlU3BlYzppLmdlb21ldHJ5X3R5cGUsc3R5bGU6ZS5zdHlsZSxzdHlsZVNwZWM6ZS5zdHlsZVNwZWN9KSk6InN0cmluZyIhPT1hJiYibnVtYmVyIiE9PWEmJiJib29sZWFuIiE9PWEmJm8ucHVzaChuZXcgTXQobisiWyIrcysiXSIscltzXSwic3RyaW5nLCBudW1iZXIsIG9yIGJvb2xlYW4gZXhwZWN0ZWQsICIrYSsiIGZvdW5kIikpO2JyZWFrO2Nhc2UiYW55IjpjYXNlImFsbCI6Y2FzZSJub25lIjpmb3IodmFyIGw9MTtsPHIubGVuZ3RoO2wrKylvPW8uY29uY2F0KHQoe2tleTpuKyJbIitsKyJdIix2YWx1ZTpyW2xdLHN0eWxlOmUuc3R5bGUsc3R5bGVTcGVjOmUuc3R5bGVTcGVjfSkpO2JyZWFrO2Nhc2UiaGFzIjpjYXNlIiFoYXMiOmE9cHIoclsxXSksMiE9PXIubGVuZ3RoP28ucHVzaChuZXcgTXQobixyLCdmaWx0ZXIgYXJyYXkgZm9yICInK3JbMF0rJyIgb3BlcmF0b3IgbXVzdCBoYXZlIDIgZWxlbWVudHMnKSk6InN0cmluZyIhPT1hJiZvLnB1c2gobmV3IE10KG4rIlsxXSIsclsxXSwic3RyaW5nIGV4cGVjdGVkLCAiK2ErIiBmb3VuZCIpKX1yZXR1cm4gb30odCl9ZnVuY3Rpb24gSHIodCxlKXt2YXIgcj10LmtleSxuPXQuc3R5bGUsYT10LnN0eWxlU3BlYyxpPXQudmFsdWUsbz10Lm9iamVjdEtleSxzPWFbZSsiXyIrdC5sYXllclR5cGVdO2lmKCFzKXJldHVybltdO3ZhciBsPW8ubWF0Y2goL14oLiopLXRyYW5zaXRpb24kLyk7aWYoInBhaW50Ij09PWUmJmwmJnNbbFsxXV0mJnNbbFsxXV0udHJhbnNpdGlvbilyZXR1cm4gUXIoe2tleTpyLHZhbHVlOmksdmFsdWVTcGVjOmEudHJhbnNpdGlvbixzdHlsZTpuLHN0eWxlU3BlYzphfSk7dmFyIGMsdT10LnZhbHVlU3BlY3x8c1tvXTtpZighdSlyZXR1cm5bbmV3IE10KHIsaSwndW5rbm93biBwcm9wZXJ0eSAiJytvKyciJyldO2lmKCJzdHJpbmciPT09cHIoaSkmJnVyKHUpJiYhdS50b2tlbnMmJihjPS9eeyhbXn1dKyl9JC8uZXhlYyhpKSkpcmV0dXJuW25ldyBNdChyLGksJyInK28rJyIgZG9lcyBub3Qgc3VwcG9ydCBpbnRlcnBvbGF0aW9uIHN5bnRheFxuVXNlIGFuIGlkZW50aXR5IHByb3BlcnR5IGZ1bmN0aW9uIGluc3RlYWQ6IGB7ICJ0eXBlIjogImlkZW50aXR5IiwgInByb3BlcnR5IjogJytKU09OLnN0cmluZ2lmeShjWzFdKSsiIH1gLiIpXTt2YXIgaD1bXTtyZXR1cm4ic3ltYm9sIj09PXQubGF5ZXJUeXBlJiYoInRleHQtZmllbGQiPT09byYmbiYmIW4uZ2x5cGhzJiZoLnB1c2gobmV3IE10KHIsaSwndXNlIG9mICJ0ZXh0LWZpZWxkIiByZXF1aXJlcyBhIHN0eWxlICJnbHlwaHMiIHByb3BlcnR5JykpLCJ0ZXh0LWZvbnQiPT09byYmZHIoQ3QoaSkpJiYiaWRlbnRpdHkiPT09THQoaS50eXBlKSYmaC5wdXNoKG5ldyBNdChyLGksJyJ0ZXh0LWZvbnQiIGRvZXMgbm90IHN1cHBvcnQgaWRlbnRpdHkgZnVuY3Rpb25zJykpKSxoLmNvbmNhdChRcih7a2V5OnQua2V5LHZhbHVlOmksdmFsdWVTcGVjOnUsc3R5bGU6bixzdHlsZVNwZWM6YSxleHByZXNzaW9uQ29udGV4dDoicHJvcGVydHkiLHByb3BlcnR5VHlwZTplLHByb3BlcnR5S2V5Om99KSl9ZnVuY3Rpb24gR3IodCl7cmV0dXJuIEhyKHQsInBhaW50Iil9ZnVuY3Rpb24gWXIodCl7cmV0dXJuIEhyKHQsImxheW91dCIpfWZ1bmN0aW9uIFdyKHQpe3ZhciBlPVtdLHI9dC52YWx1ZSxuPXQua2V5LGE9dC5zdHlsZSxpPXQuc3R5bGVTcGVjO3IudHlwZXx8ci5yZWZ8fGUucHVzaChuZXcgTXQobixyLCdlaXRoZXIgInR5cGUiIG9yICJyZWYiIGlzIHJlcXVpcmVkJykpO3ZhciBvLHM9THQoci50eXBlKSxsPUx0KHIucmVmKTtpZihyLmlkKWZvcih2YXIgYz1MdChyLmlkKSx1PTA7dTx0LmFycmF5SW5kZXg7dSsrKXt2YXIgaD1hLmxheWVyc1t1XTtMdChoLmlkKT09PWMmJmUucHVzaChuZXcgTXQobixyLmlkLCdkdXBsaWNhdGUgbGF5ZXIgaWQgIicrci5pZCsnIiwgcHJldmlvdXNseSB1c2VkIGF0IGxpbmUgJytoLmlkLl9fbGluZV9fKSl9aWYoInJlZiJpbiByKVsidHlwZSIsInNvdXJjZSIsInNvdXJjZS1sYXllciIsImZpbHRlciIsImxheW91dCJdLmZvckVhY2goZnVuY3Rpb24odCl7dCBpbiByJiZlLnB1c2gobmV3IE10KG4sclt0XSwnIicrdCsnIiBpcyBwcm9oaWJpdGVkIGZvciByZWYgbGF5ZXJzJykpfSksYS5sYXllcnMuZm9yRWFjaChmdW5jdGlvbih0KXtMdCh0LmlkKT09PWwmJihvPXQpfSksbz9vLnJlZj9lLnB1c2gobmV3IE10KG4sci5yZWYsInJlZiBjYW5ub3QgcmVmZXJlbmNlIGFub3RoZXIgcmVmIGxheWVyIikpOnM9THQoby50eXBlKTplLnB1c2gobmV3IE10KG4sci5yZWYsJ3JlZiBsYXllciAiJytsKyciIG5vdCBmb3VuZCcpKTtlbHNlIGlmKCJiYWNrZ3JvdW5kIiE9PXMpaWYoci5zb3VyY2Upe3ZhciBmPWEuc291cmNlcyYmYS5zb3VyY2VzW3Iuc291cmNlXSxwPWYmJkx0KGYudHlwZSk7Zj8idmVjdG9yIj09PXAmJiJyYXN0ZXIiPT09cz9lLnB1c2gobmV3IE10KG4sci5zb3VyY2UsJ2xheWVyICInK3IuaWQrJyIgcmVxdWlyZXMgYSByYXN0ZXIgc291cmNlJykpOiJyYXN0ZXIiPT09cCYmInJhc3RlciIhPT1zP2UucHVzaChuZXcgTXQobixyLnNvdXJjZSwnbGF5ZXIgIicrci5pZCsnIiByZXF1aXJlcyBhIHZlY3RvciBzb3VyY2UnKSk6InZlY3RvciIhPT1wfHxyWyJzb3VyY2UtbGF5ZXIiXT8icmFzdGVyLWRlbSI9PT1wJiYiaGlsbHNoYWRlIiE9PXM/ZS5wdXNoKG5ldyBNdChuLHIuc291cmNlLCJyYXN0ZXItZGVtIHNvdXJjZSBjYW4gb25seSBiZSB1c2VkIHdpdGggbGF5ZXIgdHlwZSAnaGlsbHNoYWRlJy4iKSk6ImxpbmUiIT09c3x8IXIucGFpbnR8fCFyLnBhaW50WyJsaW5lLWdyYWRpZW50Il18fCJnZW9qc29uIj09PXAmJmYubGluZU1ldHJpY3N8fGUucHVzaChuZXcgTXQobixyLCdsYXllciAiJytyLmlkKyciIHNwZWNpZmllcyBhIGxpbmUtZ3JhZGllbnQsIHdoaWNoIHJlcXVpcmVzIGEgR2VvSlNPTiBzb3VyY2Ugd2l0aCBgbGluZU1ldHJpY3NgIGVuYWJsZWQuJykpOmUucHVzaChuZXcgTXQobixyLCdsYXllciAiJytyLmlkKyciIG11c3Qgc3BlY2lmeSBhICJzb3VyY2UtbGF5ZXIiJykpOmUucHVzaChuZXcgTXQobixyLnNvdXJjZSwnc291cmNlICInK3Iuc291cmNlKyciIG5vdCBmb3VuZCcpKX1lbHNlIGUucHVzaChuZXcgTXQobixyLCdtaXNzaW5nIHJlcXVpcmVkIHByb3BlcnR5ICJzb3VyY2UiJykpO3JldHVybiBlPWUuY29uY2F0KEVyKHtrZXk6bix2YWx1ZTpyLHZhbHVlU3BlYzppLmxheWVyLHN0eWxlOnQuc3R5bGUsc3R5bGVTcGVjOnQuc3R5bGVTcGVjLG9iamVjdEVsZW1lbnRWYWxpZGF0b3JzOnsiKiI6ZnVuY3Rpb24oKXtyZXR1cm5bXX0sdHlwZTpmdW5jdGlvbigpe3JldHVybiBRcih7a2V5Om4rIi50eXBlIix2YWx1ZTpyLnR5cGUsdmFsdWVTcGVjOmkubGF5ZXIudHlwZSxzdHlsZTp0LnN0eWxlLHN0eWxlU3BlYzp0LnN0eWxlU3BlYyxvYmplY3Q6cixvYmplY3RLZXk6InR5cGUifSl9LGZpbHRlcjpxcixsYXlvdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIEVyKHtsYXllcjpyLGtleTp0LmtleSx2YWx1ZTp0LnZhbHVlLHN0eWxlOnQuc3R5bGUsc3R5bGVTcGVjOnQuc3R5bGVTcGVjLG9iamVjdEVsZW1lbnRWYWxpZGF0b3JzOnsiKiI6ZnVuY3Rpb24odCl7cmV0dXJuIFlyKFN0KHtsYXllclR5cGU6c30sdCkpfX19KX0scGFpbnQ6ZnVuY3Rpb24odCl7cmV0dXJuIEVyKHtsYXllcjpyLGtleTp0LmtleSx2YWx1ZTp0LnZhbHVlLHN0eWxlOnQuc3R5bGUsc3R5bGVTcGVjOnQuc3R5bGVTcGVjLG9iamVjdEVsZW1lbnRWYWxpZGF0b3JzOnsiKiI6ZnVuY3Rpb24odCl7cmV0dXJuIEdyKFN0KHtsYXllclR5cGU6c30sdCkpfX19KX19fSkpfWZ1bmN0aW9uIFhyKHQpe3ZhciBlPXQudmFsdWUscj10LmtleSxuPXQuc3R5bGVTcGVjLGE9dC5zdHlsZTtpZighZS50eXBlKXJldHVybltuZXcgTXQocixlLCcidHlwZSIgaXMgcmVxdWlyZWQnKV07dmFyIGksbz1MdChlLnR5cGUpO3N3aXRjaChvKXtjYXNlInZlY3RvciI6Y2FzZSJyYXN0ZXIiOmNhc2UicmFzdGVyLWRlbSI6cmV0dXJuIEVyKHtrZXk6cix2YWx1ZTplLHZhbHVlU3BlYzpuWyJzb3VyY2VfIitvLnJlcGxhY2UoIi0iLCJfIildLHN0eWxlOnQuc3R5bGUsc3R5bGVTcGVjOm59KTtjYXNlImdlb2pzb24iOmlmKGk9RXIoe2tleTpyLHZhbHVlOmUsdmFsdWVTcGVjOm4uc291cmNlX2dlb2pzb24sc3R5bGU6YSxzdHlsZVNwZWM6bn0pLGUuY2x1c3Rlcilmb3IodmFyIHMgaW4gZS5jbHVzdGVyUHJvcGVydGllcyl7dmFyIGw9ZS5jbHVzdGVyUHJvcGVydGllc1tzXSxjPWxbMF0sdT1sWzFdLGg9InN0cmluZyI9PXR5cGVvZiBjP1tjLFsiYWNjdW11bGF0ZWQiXSxbImdldCIsc11dOmM7aS5wdXNoLmFwcGx5KGksT3Ioe2tleTpyKyIuIitzKyIubWFwIix2YWx1ZTp1LGV4cHJlc3Npb25Db250ZXh0OiJjbHVzdGVyLW1hcCJ9KSksaS5wdXNoLmFwcGx5KGksT3Ioe2tleTpyKyIuIitzKyIucmVkdWNlIix2YWx1ZTpoLGV4cHJlc3Npb25Db250ZXh0OiJjbHVzdGVyLXJlZHVjZSJ9KSl9cmV0dXJuIGk7Y2FzZSJ2aWRlbyI6cmV0dXJuIEVyKHtrZXk6cix2YWx1ZTplLHZhbHVlU3BlYzpuLnNvdXJjZV92aWRlbyxzdHlsZTphLHN0eWxlU3BlYzpufSk7Y2FzZSJpbWFnZSI6cmV0dXJuIEVyKHtrZXk6cix2YWx1ZTplLHZhbHVlU3BlYzpuLnNvdXJjZV9pbWFnZSxzdHlsZTphLHN0eWxlU3BlYzpufSk7Y2FzZSJjYW52YXMiOnJldHVybltuZXcgTXQocixudWxsLCJQbGVhc2UgdXNlIHJ1bnRpbWUgQVBJcyB0byBhZGQgY2FudmFzIHNvdXJjZXMsIHJhdGhlciB0aGFuIGluY2x1ZGluZyB0aGVtIGluIHN0eWxlc2hlZXRzLiIsInNvdXJjZS5jYW52YXMiKV07ZGVmYXVsdDpyZXR1cm4genIoe2tleTpyKyIudHlwZSIsdmFsdWU6ZS50eXBlLHZhbHVlU3BlYzp7dmFsdWVzOlsidmVjdG9yIiwicmFzdGVyIiwicmFzdGVyLWRlbSIsImdlb2pzb24iLCJ2aWRlbyIsImltYWdlIl19LHN0eWxlOmEsc3R5bGVTcGVjOm59KX19ZnVuY3Rpb24gWnIodCl7dmFyIGU9dC52YWx1ZSxyPXQuc3R5bGVTcGVjLG49ci5saWdodCxhPXQuc3R5bGUsaT1bXSxvPXByKGUpO2lmKHZvaWQgMD09PWUpcmV0dXJuIGk7aWYoIm9iamVjdCIhPT1vKXJldHVybiBpLmNvbmNhdChbbmV3IE10KCJsaWdodCIsZSwib2JqZWN0IGV4cGVjdGVkLCAiK28rIiBmb3VuZCIpXSk7Zm9yKHZhciBzIGluIGUpe3ZhciBsPXMubWF0Y2goL14oLiopLXRyYW5zaXRpb24kLyk7aT1sJiZuW2xbMV1dJiZuW2xbMV1dLnRyYW5zaXRpb24/aS5jb25jYXQoUXIoe2tleTpzLHZhbHVlOmVbc10sdmFsdWVTcGVjOnIudHJhbnNpdGlvbixzdHlsZTphLHN0eWxlU3BlYzpyfSkpOm5bc10/aS5jb25jYXQoUXIoe2tleTpzLHZhbHVlOmVbc10sdmFsdWVTcGVjOm5bc10sc3R5bGU6YSxzdHlsZVNwZWM6cn0pKTppLmNvbmNhdChbbmV3IE10KHMsZVtzXSwndW5rbm93biBwcm9wZXJ0eSAiJytzKyciJyldKX1yZXR1cm4gaX1mdW5jdGlvbiBKcih0KXt2YXIgZT10LnZhbHVlLHI9dC5rZXksbj1wcihlKTtyZXR1cm4ic3RyaW5nIiE9PW4/W25ldyBNdChyLGUsInN0cmluZyBleHBlY3RlZCwgIituKyIgZm91bmQiKV06W119dmFyIEtyPXsiKiI6ZnVuY3Rpb24oKXtyZXR1cm5bXX0sYXJyYXk6THIsYm9vbGVhbjpmdW5jdGlvbih0KXt2YXIgZT10LnZhbHVlLHI9dC5rZXksbj1wcihlKTtyZXR1cm4iYm9vbGVhbiIhPT1uP1tuZXcgTXQocixlLCJib29sZWFuIGV4cGVjdGVkLCAiK24rIiBmb3VuZCIpXTpbXX0sbnVtYmVyOkNyLGNvbG9yOmZ1bmN0aW9uKHQpe3ZhciBlPXQua2V5LHI9dC52YWx1ZSxuPXByKHIpO3JldHVybiJzdHJpbmciIT09bj9bbmV3IE10KGUsciwiY29sb3IgZXhwZWN0ZWQsICIrbisiIGZvdW5kIildOm51bGw9PT1ZdChyKT9bbmV3IE10KGUsciwnY29sb3IgZXhwZWN0ZWQsICInK3IrJyIgZm91bmQnKV06W119LGNvbnN0YW50czpBdCxlbnVtOnpyLGZpbHRlcjpxcixmdW5jdGlvbjpQcixsYXllcjpXcixvYmplY3Q6RXIsc291cmNlOlhyLGxpZ2h0OlpyLHN0cmluZzpKcixmb3JtYXR0ZWQ6ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT1Kcih0KS5sZW5ndGg/W106T3IodCl9fTtmdW5jdGlvbiBRcih0KXt2YXIgZT10LnZhbHVlLHI9dC52YWx1ZVNwZWMsbj10LnN0eWxlU3BlYztyZXR1cm4gci5leHByZXNzaW9uJiZkcihMdChlKSk/UHIodCk6ci5leHByZXNzaW9uJiZ3cihDdChlKSk/T3IodCk6ci50eXBlJiZLcltyLnR5cGVdP0tyW3IudHlwZV0odCk6RXIoU3Qoe30sdCx7dmFsdWVTcGVjOnIudHlwZT9uW3IudHlwZV06cn0pKX1mdW5jdGlvbiAkcih0KXt2YXIgZT10LnZhbHVlLHI9dC5rZXksbj1Kcih0KTtyZXR1cm4gbi5sZW5ndGg/bjooLTE9PT1lLmluZGV4T2YoIntmb250c3RhY2t9IikmJm4ucHVzaChuZXcgTXQocixlLCciZ2x5cGhzIiB1cmwgbXVzdCBpbmNsdWRlIGEgIntmb250c3RhY2t9IiB0b2tlbicpKSwtMT09PWUuaW5kZXhPZigie3JhbmdlfSIpJiZuLnB1c2gobmV3IE10KHIsZSwnImdseXBocyIgdXJsIG11c3QgaW5jbHVkZSBhICJ7cmFuZ2V9IiB0b2tlbicpKSxuKX1mdW5jdGlvbiB0bih0LGUpe2U9ZXx8VHQ7dmFyIHI9W107cmV0dXJuIHI9ci5jb25jYXQoUXIoe2tleToiIix2YWx1ZTp0LHZhbHVlU3BlYzplLiRyb290LHN0eWxlU3BlYzplLHN0eWxlOnQsb2JqZWN0RWxlbWVudFZhbGlkYXRvcnM6e2dseXBoczokciwiKiI6ZnVuY3Rpb24oKXtyZXR1cm5bXX19fSkpLHQuY29uc3RhbnRzJiYocj1yLmNvbmNhdChBdCh7a2V5OiJjb25zdGFudHMiLHZhbHVlOnQuY29uc3RhbnRzLHN0eWxlOnQsc3R5bGVTcGVjOmV9KSkpLGVuKHIpfWZ1bmN0aW9uIGVuKHQpe3JldHVybltdLmNvbmNhdCh0KS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQubGluZS1lLmxpbmV9KX1mdW5jdGlvbiBybih0KXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIGU9W10scj1hcmd1bWVudHMubGVuZ3RoO3ItLTspZVtyXT1hcmd1bWVudHNbcl07cmV0dXJuIGVuKHQuYXBwbHkodGhpcyxlKSl9fXRuLnNvdXJjZT1ybihYciksdG4ubGlnaHQ9cm4oWnIpLHRuLmxheWVyPXJuKFdyKSx0bi5maWx0ZXI9cm4ocXIpLHRuLnBhaW50UHJvcGVydHk9cm4oR3IpLHRuLmxheW91dFByb3BlcnR5PXJuKFlyKTt2YXIgbm49dG4sYW49bm4ubGlnaHQsb249bm4ucGFpbnRQcm9wZXJ0eSxzbj1ubi5sYXlvdXRQcm9wZXJ0eTtmdW5jdGlvbiBsbih0LGUpe3ZhciByPSExO2lmKGUmJmUubGVuZ3RoKWZvcih2YXIgbj0wLGE9ZTtuPGEubGVuZ3RoO24rPTEpe3ZhciBpPWFbbl07dC5maXJlKG5ldyB3dChuZXcgRXJyb3IoaS5tZXNzYWdlKSkpLHI9ITB9cmV0dXJuIHJ9dmFyIGNuPWhuLHVuPTM7ZnVuY3Rpb24gaG4odCxlLHIpe3ZhciBuPXRoaXMuY2VsbHM9W107aWYodCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKXt0aGlzLmFycmF5QnVmZmVyPXQ7dmFyIGE9bmV3IEludDMyQXJyYXkodGhpcy5hcnJheUJ1ZmZlcik7dD1hWzBdLGU9YVsxXSxyPWFbMl0sdGhpcy5kPWUrMipyO2Zvcih2YXIgaT0wO2k8dGhpcy5kKnRoaXMuZDtpKyspe3ZhciBvPWFbdW4raV0scz1hW3VuK2krMV07bi5wdXNoKG89PT1zP251bGw6YS5zdWJhcnJheShvLHMpKX12YXIgbD1hW3VuK24ubGVuZ3RoXSxjPWFbdW4rbi5sZW5ndGgrMV07dGhpcy5rZXlzPWEuc3ViYXJyYXkobCxjKSx0aGlzLmJib3hlcz1hLnN1YmFycmF5KGMpLHRoaXMuaW5zZXJ0PXRoaXMuX2luc2VydFJlYWRvbmx5fWVsc2V7dGhpcy5kPWUrMipyO2Zvcih2YXIgdT0wO3U8dGhpcy5kKnRoaXMuZDt1Kyspbi5wdXNoKFtdKTt0aGlzLmtleXM9W10sdGhpcy5iYm94ZXM9W119dGhpcy5uPWUsdGhpcy5leHRlbnQ9dCx0aGlzLnBhZGRpbmc9cix0aGlzLnNjYWxlPWUvdCx0aGlzLnVpZD0wO3ZhciBoPXIvZSp0O3RoaXMubWluPS1oLHRoaXMubWF4PXQraH1obi5wcm90b3R5cGUuaW5zZXJ0PWZ1bmN0aW9uKHQsZSxyLG4sYSl7dGhpcy5fZm9yRWFjaENlbGwoZSxyLG4sYSx0aGlzLl9pbnNlcnRDZWxsLHRoaXMudWlkKyspLHRoaXMua2V5cy5wdXNoKHQpLHRoaXMuYmJveGVzLnB1c2goZSksdGhpcy5iYm94ZXMucHVzaChyKSx0aGlzLmJib3hlcy5wdXNoKG4pLHRoaXMuYmJveGVzLnB1c2goYSl9LGhuLnByb3RvdHlwZS5faW5zZXJ0UmVhZG9ubHk9ZnVuY3Rpb24oKXt0aHJvdyJDYW5ub3QgaW5zZXJ0IGludG8gYSBHcmlkSW5kZXggY3JlYXRlZCBmcm9tIGFuIEFycmF5QnVmZmVyLiJ9LGhuLnByb3RvdHlwZS5faW5zZXJ0Q2VsbD1mdW5jdGlvbih0LGUscixuLGEsaSl7dGhpcy5jZWxsc1thXS5wdXNoKGkpfSxobi5wcm90b3R5cGUucXVlcnk9ZnVuY3Rpb24odCxlLHIsbixhKXt2YXIgaT10aGlzLm1pbixvPXRoaXMubWF4O2lmKHQ8PWkmJmU8PWkmJm88PXImJm88PW4mJiFhKXJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLmtleXMpO3ZhciBzPVtdO3JldHVybiB0aGlzLl9mb3JFYWNoQ2VsbCh0LGUscixuLHRoaXMuX3F1ZXJ5Q2VsbCxzLHt9LGEpLHN9LGhuLnByb3RvdHlwZS5fcXVlcnlDZWxsPWZ1bmN0aW9uKHQsZSxyLG4sYSxpLG8scyl7dmFyIGw9dGhpcy5jZWxsc1thXTtpZihudWxsIT09bClmb3IodmFyIGM9dGhpcy5rZXlzLHU9dGhpcy5iYm94ZXMsaD0wO2g8bC5sZW5ndGg7aCsrKXt2YXIgZj1sW2hdO2lmKHZvaWQgMD09PW9bZl0pe3ZhciBwPTQqZjsocz9zKHVbcCswXSx1W3ArMV0sdVtwKzJdLHVbcCszXSk6dDw9dVtwKzJdJiZlPD11W3ArM10mJnI+PXVbcCswXSYmbj49dVtwKzFdKT8ob1tmXT0hMCxpLnB1c2goY1tmXSkpOm9bZl09ITF9fX0saG4ucHJvdG90eXBlLl9mb3JFYWNoQ2VsbD1mdW5jdGlvbih0LGUscixuLGEsaSxvLHMpe2Zvcih2YXIgbD10aGlzLl9jb252ZXJ0VG9DZWxsQ29vcmQodCksYz10aGlzLl9jb252ZXJ0VG9DZWxsQ29vcmQoZSksdT10aGlzLl9jb252ZXJ0VG9DZWxsQ29vcmQociksaD10aGlzLl9jb252ZXJ0VG9DZWxsQ29vcmQobiksZj1sO2Y8PXU7ZisrKWZvcih2YXIgcD1jO3A8PWg7cCsrKXt2YXIgZD10aGlzLmQqcCtmO2lmKCghc3x8cyh0aGlzLl9jb252ZXJ0RnJvbUNlbGxDb29yZChmKSx0aGlzLl9jb252ZXJ0RnJvbUNlbGxDb29yZChwKSx0aGlzLl9jb252ZXJ0RnJvbUNlbGxDb29yZChmKzEpLHRoaXMuX2NvbnZlcnRGcm9tQ2VsbENvb3JkKHArMSkpKSYmYS5jYWxsKHRoaXMsdCxlLHIsbixkLGksbyxzKSlyZXR1cm59fSxobi5wcm90b3R5cGUuX2NvbnZlcnRGcm9tQ2VsbENvb3JkPWZ1bmN0aW9uKHQpe3JldHVybih0LXRoaXMucGFkZGluZykvdGhpcy5zY2FsZX0saG4ucHJvdG90eXBlLl9jb252ZXJ0VG9DZWxsQ29vcmQ9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5taW4odGhpcy5kLTEsTWF0aC5mbG9vcih0KnRoaXMuc2NhbGUpK3RoaXMucGFkZGluZykpfSxobi5wcm90b3R5cGUudG9BcnJheUJ1ZmZlcj1mdW5jdGlvbigpe2lmKHRoaXMuYXJyYXlCdWZmZXIpcmV0dXJuIHRoaXMuYXJyYXlCdWZmZXI7Zm9yKHZhciB0PXRoaXMuY2VsbHMsZT11bit0aGlzLmNlbGxzLmxlbmd0aCsxKzEscj0wLG49MDtuPHRoaXMuY2VsbHMubGVuZ3RoO24rKylyKz10aGlzLmNlbGxzW25dLmxlbmd0aDt2YXIgYT1uZXcgSW50MzJBcnJheShlK3IrdGhpcy5rZXlzLmxlbmd0aCt0aGlzLmJib3hlcy5sZW5ndGgpO2FbMF09dGhpcy5leHRlbnQsYVsxXT10aGlzLm4sYVsyXT10aGlzLnBhZGRpbmc7Zm9yKHZhciBpPWUsbz0wO288dC5sZW5ndGg7bysrKXt2YXIgcz10W29dO2FbdW4rb109aSxhLnNldChzLGkpLGkrPXMubGVuZ3RofXJldHVybiBhW3VuK3QubGVuZ3RoXT1pLGEuc2V0KHRoaXMua2V5cyxpKSxpKz10aGlzLmtleXMubGVuZ3RoLGFbdW4rdC5sZW5ndGgrMV09aSxhLnNldCh0aGlzLmJib3hlcyxpKSxpKz10aGlzLmJib3hlcy5sZW5ndGgsYS5idWZmZXJ9O3ZhciBmbj1zZWxmLkltYWdlRGF0YSxwbj17fTtmdW5jdGlvbiBkbih0LGUscil7dm9pZCAwPT09ciYmKHI9e30pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfY2xhc3NSZWdpc3RyeUtleSIse3ZhbHVlOnQsd3JpdGVhYmxlOiExfSkscG5bdF09e2tsYXNzOmUsb21pdDpyLm9taXR8fFtdLHNoYWxsb3c6ci5zaGFsbG93fHxbXX19Zm9yKHZhciBnbiBpbiBkbigiT2JqZWN0IixPYmplY3QpLGNuLnNlcmlhbGl6ZT1mdW5jdGlvbih0LGUpe3ZhciByPXQudG9BcnJheUJ1ZmZlcigpO3JldHVybiBlJiZlLnB1c2gocikse2J1ZmZlcjpyfX0sY24uZGVzZXJpYWxpemU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBjbih0LmJ1ZmZlcil9LGRuKCJHcmlkIixjbiksZG4oIkNvbG9yIixXdCksZG4oIkVycm9yIixFcnJvciksZG4oIlN0eWxlUHJvcGVydHlGdW5jdGlvbiIsU3IpLGRuKCJTdHlsZUV4cHJlc3Npb24iLF9yLHtvbWl0OlsiX2V2YWx1YXRvciJdfSksZG4oIlpvb21EZXBlbmRlbnRFeHByZXNzaW9uIixNciksZG4oIlpvb21Db25zdGFudEV4cHJlc3Npb24iLFRyKSxkbigiQ29tcG91bmRFeHByZXNzaW9uIixjZSx7b21pdDpbIl9ldmFsdWF0ZSJdfSksbnIpbnJbZ25dLl9jbGFzc1JlZ2lzdHJ5S2V5fHxkbigiRXhwcmVzc2lvbl8iK2duLG5yW2duXSk7ZnVuY3Rpb24gdm4odCxlKXtpZihudWxsPT10fHwiYm9vbGVhbiI9PXR5cGVvZiB0fHwibnVtYmVyIj09dHlwZW9mIHR8fCJzdHJpbmciPT10eXBlb2YgdHx8dCBpbnN0YW5jZW9mIEJvb2xlYW58fHQgaW5zdGFuY2VvZiBOdW1iZXJ8fHQgaW5zdGFuY2VvZiBTdHJpbmd8fHQgaW5zdGFuY2VvZiBEYXRlfHx0IGluc3RhbmNlb2YgUmVnRXhwKXJldHVybiB0O2lmKHQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcilyZXR1cm4gZSYmZS5wdXNoKHQpLHQ7aWYoQXJyYXlCdWZmZXIuaXNWaWV3KHQpKXt2YXIgcj10O3JldHVybiBlJiZlLnB1c2goci5idWZmZXIpLHJ9aWYodCBpbnN0YW5jZW9mIGZuKXJldHVybiBlJiZlLnB1c2godC5kYXRhLmJ1ZmZlciksdDtpZihBcnJheS5pc0FycmF5KHQpKXtmb3IodmFyIG49W10sYT0wLGk9dDthPGkubGVuZ3RoO2ErPTEpe3ZhciBvPWlbYV07bi5wdXNoKHZuKG8sZSkpfXJldHVybiBufWlmKCJvYmplY3QiPT10eXBlb2YgdCl7dmFyIHM9dC5jb25zdHJ1Y3RvcixsPXMuX2NsYXNzUmVnaXN0cnlLZXk7aWYoIWwpdGhyb3cgbmV3IEVycm9yKCJjYW4ndCBzZXJpYWxpemUgb2JqZWN0IG9mIHVucmVnaXN0ZXJlZCBjbGFzcyIpO3ZhciBjPXMuc2VyaWFsaXplP3Muc2VyaWFsaXplKHQsZSk6e307aWYoIXMuc2VyaWFsaXplKXtmb3IodmFyIHUgaW4gdClpZih0Lmhhc093blByb3BlcnR5KHUpJiYhKHBuW2xdLm9taXQuaW5kZXhPZih1KT49MCkpe3ZhciBoPXRbdV07Y1t1XT1wbltsXS5zaGFsbG93LmluZGV4T2YodSk+PTA/aDp2bihoLGUpfXQgaW5zdGFuY2VvZiBFcnJvciYmKGMubWVzc2FnZT10Lm1lc3NhZ2UpfWlmKGMuJG5hbWUpdGhyb3cgbmV3IEVycm9yKCIkbmFtZSBwcm9wZXJ0eSBpcyByZXNlcnZlZCBmb3Igd29ya2VyIHNlcmlhbGl6YXRpb24gbG9naWMuIik7cmV0dXJuIk9iamVjdCIhPT1sJiYoYy4kbmFtZT1sKSxjfXRocm93IG5ldyBFcnJvcigiY2FuJ3Qgc2VyaWFsaXplIG9iamVjdCBvZiB0eXBlICIrdHlwZW9mIHQpfWZ1bmN0aW9uIG1uKHQpe2lmKG51bGw9PXR8fCJib29sZWFuIj09dHlwZW9mIHR8fCJudW1iZXIiPT10eXBlb2YgdHx8InN0cmluZyI9PXR5cGVvZiB0fHx0IGluc3RhbmNlb2YgQm9vbGVhbnx8dCBpbnN0YW5jZW9mIE51bWJlcnx8dCBpbnN0YW5jZW9mIFN0cmluZ3x8dCBpbnN0YW5jZW9mIERhdGV8fHQgaW5zdGFuY2VvZiBSZWdFeHB8fHQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcnx8QXJyYXlCdWZmZXIuaXNWaWV3KHQpfHx0IGluc3RhbmNlb2YgZm4pcmV0dXJuIHQ7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdC5tYXAobW4pO2lmKCJvYmplY3QiPT10eXBlb2YgdCl7dmFyIGU9dC4kbmFtZXx8Ik9iamVjdCIscj1wbltlXS5rbGFzcztpZighcil0aHJvdyBuZXcgRXJyb3IoImNhbid0IGRlc2VyaWFsaXplIHVucmVnaXN0ZXJlZCBjbGFzcyAiK2UpO2lmKHIuZGVzZXJpYWxpemUpcmV0dXJuIHIuZGVzZXJpYWxpemUodCk7Zm9yKHZhciBuPU9iamVjdC5jcmVhdGUoci5wcm90b3R5cGUpLGE9MCxpPU9iamVjdC5rZXlzKHQpO2E8aS5sZW5ndGg7YSs9MSl7dmFyIG89aVthXTtpZigiJG5hbWUiIT09byl7dmFyIHM9dFtvXTtuW29dPXBuW2VdLnNoYWxsb3cuaW5kZXhPZihvKT49MD9zOm1uKHMpfX1yZXR1cm4gbn10aHJvdyBuZXcgRXJyb3IoImNhbid0IGRlc2VyaWFsaXplIG9iamVjdCBvZiB0eXBlICIrdHlwZW9mIHQpfXZhciB5bj1mdW5jdGlvbigpe3RoaXMuZmlyc3Q9ITB9O3luLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlKXt2YXIgcj1NYXRoLmZsb29yKHQpO3JldHVybiB0aGlzLmZpcnN0Pyh0aGlzLmZpcnN0PSExLHRoaXMubGFzdEludGVnZXJab29tPXIsdGhpcy5sYXN0SW50ZWdlclpvb21UaW1lPTAsdGhpcy5sYXN0Wm9vbT10LHRoaXMubGFzdEZsb29yWm9vbT1yLCEwKToodGhpcy5sYXN0Rmxvb3Jab29tPnI/KHRoaXMubGFzdEludGVnZXJab29tPXIrMSx0aGlzLmxhc3RJbnRlZ2VyWm9vbVRpbWU9ZSk6dGhpcy5sYXN0Rmxvb3Jab29tPHImJih0aGlzLmxhc3RJbnRlZ2VyWm9vbT1yLHRoaXMubGFzdEludGVnZXJab29tVGltZT1lKSx0IT09dGhpcy5sYXN0Wm9vbSYmKHRoaXMubGFzdFpvb209dCx0aGlzLmxhc3RGbG9vclpvb209ciwhMCkpfTt2YXIgeG49eyJMYXRpbi0xIFN1cHBsZW1lbnQiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xMjgmJnQ8PTI1NX0sQXJhYmljOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xNTM2JiZ0PD0xNzkxfSwiQXJhYmljIFN1cHBsZW1lbnQiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xODcyJiZ0PD0xOTE5fSwiQXJhYmljIEV4dGVuZGVkLUEiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0yMjA4JiZ0PD0yMzAzfSwiSGFuZ3VsIEphbW8iOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj00MzUyJiZ0PD00NjA3fSwiVW5pZmllZCBDYW5hZGlhbiBBYm9yaWdpbmFsIFN5bGxhYmljcyI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTUxMjAmJnQ8PTU3NTl9LEtobWVyOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj02MDE2JiZ0PD02MTQzfSwiVW5pZmllZCBDYW5hZGlhbiBBYm9yaWdpbmFsIFN5bGxhYmljcyBFeHRlbmRlZCI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTYzMjAmJnQ8PTYzOTl9LCJHZW5lcmFsIFB1bmN0dWF0aW9uIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49ODE5MiYmdDw9ODMwM30sIkxldHRlcmxpa2UgU3ltYm9scyI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTg0NDgmJnQ8PTg1Mjd9LCJOdW1iZXIgRm9ybXMiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj04NTI4JiZ0PD04NTkxfSwiTWlzY2VsbGFuZW91cyBUZWNobmljYWwiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj04OTYwJiZ0PD05MjE1fSwiQ29udHJvbCBQaWN0dXJlcyI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTkyMTYmJnQ8PTkyNzl9LCJPcHRpY2FsIENoYXJhY3RlciBSZWNvZ25pdGlvbiI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTkyODAmJnQ8PTkzMTF9LCJFbmNsb3NlZCBBbHBoYW51bWVyaWNzIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49OTMxMiYmdDw9OTQ3MX0sIkdlb21ldHJpYyBTaGFwZXMiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj05NjMyJiZ0PD05NzI3fSwiTWlzY2VsbGFuZW91cyBTeW1ib2xzIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49OTcyOCYmdDw9OTk4M30sIk1pc2NlbGxhbmVvdXMgU3ltYm9scyBhbmQgQXJyb3dzIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49MTEwMDgmJnQ8PTExMjYzfSwiQ0pLIFJhZGljYWxzIFN1cHBsZW1lbnQiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xMTkwNCYmdDw9MTIwMzF9LCJLYW5neGkgUmFkaWNhbHMiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xMjAzMiYmdDw9MTIyNTV9LCJJZGVvZ3JhcGhpYyBEZXNjcmlwdGlvbiBDaGFyYWN0ZXJzIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49MTIyNzImJnQ8PTEyMjg3fSwiQ0pLIFN5bWJvbHMgYW5kIFB1bmN0dWF0aW9uIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49MTIyODgmJnQ8PTEyMzUxfSxIaXJhZ2FuYTpmdW5jdGlvbih0KXtyZXR1cm4gdD49MTIzNTImJnQ8PTEyNDQ3fSxLYXRha2FuYTpmdW5jdGlvbih0KXtyZXR1cm4gdD49MTI0NDgmJnQ8PTEyNTQzfSxCb3BvbW9mbzpmdW5jdGlvbih0KXtyZXR1cm4gdD49MTI1NDQmJnQ8PTEyNTkxfSwiSGFuZ3VsIENvbXBhdGliaWxpdHkgSmFtbyI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTEyNTkyJiZ0PD0xMjY4N30sS2FuYnVuOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xMjY4OCYmdDw9MTI3MDN9LCJCb3BvbW9mbyBFeHRlbmRlZCI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTEyNzA0JiZ0PD0xMjczNX0sIkNKSyBTdHJva2VzIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49MTI3MzYmJnQ8PTEyNzgzfSwiS2F0YWthbmEgUGhvbmV0aWMgRXh0ZW5zaW9ucyI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTEyNzg0JiZ0PD0xMjc5OX0sIkVuY2xvc2VkIENKSyBMZXR0ZXJzIGFuZCBNb250aHMiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xMjgwMCYmdDw9MTMwNTV9LCJDSksgQ29tcGF0aWJpbGl0eSI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTEzMDU2JiZ0PD0xMzMxMX0sIkNKSyBVbmlmaWVkIElkZW9ncmFwaHMgRXh0ZW5zaW9uIEEiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xMzMxMiYmdDw9MTk5MDN9LCJZaWppbmcgSGV4YWdyYW0gU3ltYm9scyI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTE5OTA0JiZ0PD0xOTk2N30sIkNKSyBVbmlmaWVkIElkZW9ncmFwaHMiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xOTk2OCYmdDw9NDA5NTl9LCJZaSBTeWxsYWJsZXMiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj00MDk2MCYmdDw9NDIxMjd9LCJZaSBSYWRpY2FscyI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTQyMTI4JiZ0PD00MjE5MX0sIkhhbmd1bCBKYW1vIEV4dGVuZGVkLUEiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj00MzM2MCYmdDw9NDMzOTF9LCJIYW5ndWwgU3lsbGFibGVzIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49NDQwMzImJnQ8PTU1MjE1fSwiSGFuZ3VsIEphbW8gRXh0ZW5kZWQtQiI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTU1MjE2JiZ0PD01NTI5NX0sIlByaXZhdGUgVXNlIEFyZWEiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj01NzM0NCYmdDw9NjM3NDN9LCJDSksgQ29tcGF0aWJpbGl0eSBJZGVvZ3JhcGhzIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49NjM3NDQmJnQ8PTY0MjU1fSwiQXJhYmljIFByZXNlbnRhdGlvbiBGb3Jtcy1BIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49NjQzMzYmJnQ8PTY1MDIzfSwiVmVydGljYWwgRm9ybXMiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj02NTA0MCYmdDw9NjUwNTV9LCJDSksgQ29tcGF0aWJpbGl0eSBGb3JtcyI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTY1MDcyJiZ0PD02NTEwM30sIlNtYWxsIEZvcm0gVmFyaWFudHMiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj02NTEwNCYmdDw9NjUxMzV9LCJBcmFiaWMgUHJlc2VudGF0aW9uIEZvcm1zLUIiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj02NTEzNiYmdDw9NjUyNzl9LCJIYWxmd2lkdGggYW5kIEZ1bGx3aWR0aCBGb3JtcyI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTY1MjgwJiZ0PD02NTUxOX19O2Z1bmN0aW9uIGJuKHQpe2Zvcih2YXIgZT0wLHI9dDtlPHIubGVuZ3RoO2UrPTEpaWYod24ocltlXS5jaGFyQ29kZUF0KDApKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBfbih0KXtyZXR1cm4hKHhuLkFyYWJpYyh0KXx8eG5bIkFyYWJpYyBTdXBwbGVtZW50Il0odCl8fHhuWyJBcmFiaWMgRXh0ZW5kZWQtQSJdKHQpfHx4blsiQXJhYmljIFByZXNlbnRhdGlvbiBGb3Jtcy1BIl0odCl8fHhuWyJBcmFiaWMgUHJlc2VudGF0aW9uIEZvcm1zLUIiXSh0KSl9ZnVuY3Rpb24gd24odCl7cmV0dXJuISEoNzQ2PT09dHx8NzQ3PT09dHx8ISh0PDQzNTIpJiYoeG5bIkJvcG9tb2ZvIEV4dGVuZGVkIl0odCl8fHhuLkJvcG9tb2ZvKHQpfHx4blsiQ0pLIENvbXBhdGliaWxpdHkgRm9ybXMiXSh0KSYmISh0Pj02NTA5NyYmdDw9NjUxMDMpfHx4blsiQ0pLIENvbXBhdGliaWxpdHkgSWRlb2dyYXBocyJdKHQpfHx4blsiQ0pLIENvbXBhdGliaWxpdHkiXSh0KXx8eG5bIkNKSyBSYWRpY2FscyBTdXBwbGVtZW50Il0odCl8fHhuWyJDSksgU3Ryb2tlcyJdKHQpfHwhKCF4blsiQ0pLIFN5bWJvbHMgYW5kIFB1bmN0dWF0aW9uIl0odCl8fHQ+PTEyMjk2JiZ0PD0xMjMwNXx8dD49MTIzMDgmJnQ8PTEyMzE5fHwxMjMzNj09PXQpfHx4blsiQ0pLIFVuaWZpZWQgSWRlb2dyYXBocyBFeHRlbnNpb24gQSJdKHQpfHx4blsiQ0pLIFVuaWZpZWQgSWRlb2dyYXBocyJdKHQpfHx4blsiRW5jbG9zZWQgQ0pLIExldHRlcnMgYW5kIE1vbnRocyJdKHQpfHx4blsiSGFuZ3VsIENvbXBhdGliaWxpdHkgSmFtbyJdKHQpfHx4blsiSGFuZ3VsIEphbW8gRXh0ZW5kZWQtQSJdKHQpfHx4blsiSGFuZ3VsIEphbW8gRXh0ZW5kZWQtQiJdKHQpfHx4blsiSGFuZ3VsIEphbW8iXSh0KXx8eG5bIkhhbmd1bCBTeWxsYWJsZXMiXSh0KXx8eG4uSGlyYWdhbmEodCl8fHhuWyJJZGVvZ3JhcGhpYyBEZXNjcmlwdGlvbiBDaGFyYWN0ZXJzIl0odCl8fHhuLkthbmJ1bih0KXx8eG5bIkthbmd4aSBSYWRpY2FscyJdKHQpfHx4blsiS2F0YWthbmEgUGhvbmV0aWMgRXh0ZW5zaW9ucyJdKHQpfHx4bi5LYXRha2FuYSh0KSYmMTI1NDAhPT10fHwhKCF4blsiSGFsZndpZHRoIGFuZCBGdWxsd2lkdGggRm9ybXMiXSh0KXx8NjUyODg9PT10fHw2NTI4OT09PXR8fDY1MjkzPT09dHx8dD49NjUzMDYmJnQ8PTY1MzEwfHw2NTMzOT09PXR8fDY1MzQxPT09dHx8NjUzNDM9PT10fHx0Pj02NTM3MSYmdDw9NjU1MDN8fDY1NTA3PT09dHx8dD49NjU1MTImJnQ8PTY1NTE5KXx8ISgheG5bIlNtYWxsIEZvcm0gVmFyaWFudHMiXSh0KXx8dD49NjUxMTImJnQ8PTY1MTE4fHx0Pj02NTEyMyYmdDw9NjUxMjYpfHx4blsiVW5pZmllZCBDYW5hZGlhbiBBYm9yaWdpbmFsIFN5bGxhYmljcyJdKHQpfHx4blsiVW5pZmllZCBDYW5hZGlhbiBBYm9yaWdpbmFsIFN5bGxhYmljcyBFeHRlbmRlZCJdKHQpfHx4blsiVmVydGljYWwgRm9ybXMiXSh0KXx8eG5bIllpamluZyBIZXhhZ3JhbSBTeW1ib2xzIl0odCl8fHhuWyJZaSBTeWxsYWJsZXMiXSh0KXx8eG5bIllpIFJhZGljYWxzIl0odCkpKX1mdW5jdGlvbiBrbih0KXtyZXR1cm4hKHduKHQpfHxmdW5jdGlvbih0KXtyZXR1cm4hISh4blsiTGF0aW4tMSBTdXBwbGVtZW50Il0odCkmJigxNjc9PT10fHwxNjk9PT10fHwxNzQ9PT10fHwxNzc9PT10fHwxODg9PT10fHwxODk9PT10fHwxOTA9PT10fHwyMTU9PT10fHwyNDc9PT10KXx8eG5bIkdlbmVyYWwgUHVuY3R1YXRpb24iXSh0KSYmKDgyMTQ9PT10fHw4MjI0PT09dHx8ODIyNT09PXR8fDgyNDA9PT10fHw4MjQxPT09dHx8ODI1MT09PXR8fDgyNTI9PT10fHw4MjU4PT09dHx8ODI2Mz09PXR8fDgyNjQ9PT10fHw4MjY1PT09dHx8ODI3Mz09PXQpfHx4blsiTGV0dGVybGlrZSBTeW1ib2xzIl0odCl8fHhuWyJOdW1iZXIgRm9ybXMiXSh0KXx8eG5bIk1pc2NlbGxhbmVvdXMgVGVjaG5pY2FsIl0odCkmJih0Pj04OTYwJiZ0PD04OTY3fHx0Pj04OTcyJiZ0PD04OTkxfHx0Pj04OTk2JiZ0PD05ZTN8fDkwMDM9PT10fHx0Pj05MDg1JiZ0PD05MTE0fHx0Pj05MTUwJiZ0PD05MTY1fHw5MTY3PT09dHx8dD49OTE2OSYmdDw9OTE3OXx8dD49OTE4NiYmdDw9OTIxNSl8fHhuWyJDb250cm9sIFBpY3R1cmVzIl0odCkmJjkyNTEhPT10fHx4blsiT3B0aWNhbCBDaGFyYWN0ZXIgUmVjb2duaXRpb24iXSh0KXx8eG5bIkVuY2xvc2VkIEFscGhhbnVtZXJpY3MiXSh0KXx8eG5bIkdlb21ldHJpYyBTaGFwZXMiXSh0KXx8eG5bIk1pc2NlbGxhbmVvdXMgU3ltYm9scyJdKHQpJiYhKHQ+PTk3NTQmJnQ8PTk3NTkpfHx4blsiTWlzY2VsbGFuZW91cyBTeW1ib2xzIGFuZCBBcnJvd3MiXSh0KSYmKHQ+PTExMDI2JiZ0PD0xMTA1NXx8dD49MTEwODgmJnQ8PTExMDk3fHx0Pj0xMTE5MiYmdDw9MTEyNDMpfHx4blsiQ0pLIFN5bWJvbHMgYW5kIFB1bmN0dWF0aW9uIl0odCl8fHhuLkthdGFrYW5hKHQpfHx4blsiUHJpdmF0ZSBVc2UgQXJlYSJdKHQpfHx4blsiQ0pLIENvbXBhdGliaWxpdHkgRm9ybXMiXSh0KXx8eG5bIlNtYWxsIEZvcm0gVmFyaWFudHMiXSh0KXx8eG5bIkhhbGZ3aWR0aCBhbmQgRnVsbHdpZHRoIEZvcm1zIl0odCl8fDg3MzQ9PT10fHw4NzU2PT09dHx8ODc1Nz09PXR8fHQ+PTk5ODQmJnQ8PTEwMDg3fHx0Pj0xMDEwMiYmdDw9MTAxMzF8fDY1NTMyPT09dHx8NjU1MzM9PT10KX0odCkpfWZ1bmN0aW9uIFRuKHQsZSl7cmV0dXJuISghZSYmKHQ+PTE0MjQmJnQ8PTIzMDN8fHhuWyJBcmFiaWMgUHJlc2VudGF0aW9uIEZvcm1zLUEiXSh0KXx8eG5bIkFyYWJpYyBQcmVzZW50YXRpb24gRm9ybXMtQiJdKHQpKXx8dD49MjMwNCYmdDw9MzU4M3x8dD49Mzg0MCYmdDw9NDI1NXx8eG4uS2htZXIodCkpfXZhciBNbixBbj0hMSxTbj1udWxsLEVuPSExLExuPW5ldyBrdCxDbj17YXBwbHlBcmFiaWNTaGFwaW5nOm51bGwscHJvY2Vzc0JpZGlyZWN0aW9uYWxUZXh0Om51bGwscHJvY2Vzc1N0eWxlZEJpZGlyZWN0aW9uYWxUZXh0Om51bGwsaXNMb2FkZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gRW58fG51bGwhPUNuLmFwcGx5QXJhYmljU2hhcGluZ319LFBuPWZ1bmN0aW9uKHQsZSl7dGhpcy56b29tPXQsZT8odGhpcy5ub3c9ZS5ub3csdGhpcy5mYWRlRHVyYXRpb249ZS5mYWRlRHVyYXRpb24sdGhpcy56b29tSGlzdG9yeT1lLnpvb21IaXN0b3J5LHRoaXMudHJhbnNpdGlvbj1lLnRyYW5zaXRpb24pOih0aGlzLm5vdz0wLHRoaXMuZmFkZUR1cmF0aW9uPTAsdGhpcy56b29tSGlzdG9yeT1uZXcgeW4sdGhpcy50cmFuc2l0aW9uPXt9KX07UG4ucHJvdG90eXBlLmlzU3VwcG9ydGVkU2NyaXB0PWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wLG49dDtyPG4ubGVuZ3RoO3IrPTEpaWYoIVRuKG5bcl0uY2hhckNvZGVBdCgwKSxlKSlyZXR1cm4hMTtyZXR1cm4hMH0odCxDbi5pc0xvYWRlZCgpKX0sUG4ucHJvdG90eXBlLmNyb3NzRmFkaW5nRmFjdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLmZhZGVEdXJhdGlvbj8xOk1hdGgubWluKCh0aGlzLm5vdy10aGlzLnpvb21IaXN0b3J5Lmxhc3RJbnRlZ2VyWm9vbVRpbWUpL3RoaXMuZmFkZUR1cmF0aW9uLDEpfSxQbi5wcm90b3R5cGUuZ2V0Q3Jvc3NmYWRlUGFyYW1ldGVycz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuem9vbSxlPXQtTWF0aC5mbG9vcih0KSxyPXRoaXMuY3Jvc3NGYWRpbmdGYWN0b3IoKTtyZXR1cm4gdD50aGlzLnpvb21IaXN0b3J5Lmxhc3RJbnRlZ2VyWm9vbT97ZnJvbVNjYWxlOjIsdG9TY2FsZToxLHQ6ZSsoMS1lKSpyfTp7ZnJvbVNjYWxlOi41LHRvU2NhbGU6MSx0OjEtKDEtcikqZX19O3ZhciBPbj1mdW5jdGlvbih0LGUpe3RoaXMucHJvcGVydHk9dCx0aGlzLnZhbHVlPWUsdGhpcy5leHByZXNzaW9uPWZ1bmN0aW9uKHQsZSl7aWYoZHIodCkpcmV0dXJuIG5ldyBTcih0LGUpO2lmKHdyKHQpKXt2YXIgcj1Bcih0LGUpO2lmKCJlcnJvciI9PT1yLnJlc3VsdCl0aHJvdyBuZXcgRXJyb3Ioci52YWx1ZS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQua2V5KyI6ICIrdC5tZXNzYWdlfSkuam9pbigiLCAiKSk7cmV0dXJuIHIudmFsdWV9dmFyIG49dDtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJiJjb2xvciI9PT1lLnR5cGUmJihuPVd0LnBhcnNlKHQpKSx7a2luZDoiY29uc3RhbnQiLGV2YWx1YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIG59fX0odm9pZCAwPT09ZT90LnNwZWNpZmljYXRpb24uZGVmYXVsdDplLHQuc3BlY2lmaWNhdGlvbil9O09uLnByb3RvdHlwZS5pc0RhdGFEcml2ZW49ZnVuY3Rpb24oKXtyZXR1cm4ic291cmNlIj09PXRoaXMuZXhwcmVzc2lvbi5raW5kfHwiY29tcG9zaXRlIj09PXRoaXMuZXhwcmVzc2lvbi5raW5kfSxPbi5wcm90b3R5cGUucG9zc2libHlFdmFsdWF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5wcm9wZXJ0eS5wb3NzaWJseUV2YWx1YXRlKHRoaXMsdCl9O3ZhciB6bj1mdW5jdGlvbih0KXt0aGlzLnByb3BlcnR5PXQsdGhpcy52YWx1ZT1uZXcgT24odCx2b2lkIDApfTt6bi5wcm90b3R5cGUudHJhbnNpdGlvbmVkPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBEbih0aGlzLnByb3BlcnR5LHRoaXMudmFsdWUsZSxoKHt9LHQudHJhbnNpdGlvbix0aGlzLnRyYW5zaXRpb24pLHQubm93KX0sem4ucHJvdG90eXBlLnVudHJhbnNpdGlvbmVkPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBEbih0aGlzLnByb3BlcnR5LHRoaXMudmFsdWUsbnVsbCx7fSwwKX07dmFyIEluPWZ1bmN0aW9uKHQpe3RoaXMuX3Byb3BlcnRpZXM9dCx0aGlzLl92YWx1ZXM9T2JqZWN0LmNyZWF0ZSh0LmRlZmF1bHRUcmFuc2l0aW9uYWJsZVByb3BlcnR5VmFsdWVzKX07SW4ucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKHQpe3JldHVybiBiKHRoaXMuX3ZhbHVlc1t0XS52YWx1ZS52YWx1ZSl9LEluLnByb3RvdHlwZS5zZXRWYWx1ZT1mdW5jdGlvbih0LGUpe3RoaXMuX3ZhbHVlcy5oYXNPd25Qcm9wZXJ0eSh0KXx8KHRoaXMuX3ZhbHVlc1t0XT1uZXcgem4odGhpcy5fdmFsdWVzW3RdLnByb3BlcnR5KSksdGhpcy5fdmFsdWVzW3RdLnZhbHVlPW5ldyBPbih0aGlzLl92YWx1ZXNbdF0ucHJvcGVydHksbnVsbD09PWU/dm9pZCAwOmIoZSkpfSxJbi5wcm90b3R5cGUuZ2V0VHJhbnNpdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gYih0aGlzLl92YWx1ZXNbdF0udHJhbnNpdGlvbil9LEluLnByb3RvdHlwZS5zZXRUcmFuc2l0aW9uPWZ1bmN0aW9uKHQsZSl7dGhpcy5fdmFsdWVzLmhhc093blByb3BlcnR5KHQpfHwodGhpcy5fdmFsdWVzW3RdPW5ldyB6bih0aGlzLl92YWx1ZXNbdF0ucHJvcGVydHkpKSx0aGlzLl92YWx1ZXNbdF0udHJhbnNpdGlvbj1iKGUpfHx2b2lkIDB9LEluLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9e30sZT0wLHI9T2JqZWN0LmtleXModGhpcy5fdmFsdWVzKTtlPHIubGVuZ3RoO2UrPTEpe3ZhciBuPXJbZV0sYT10aGlzLmdldFZhbHVlKG4pO3ZvaWQgMCE9PWEmJih0W25dPWEpO3ZhciBpPXRoaXMuZ2V0VHJhbnNpdGlvbihuKTt2b2lkIDAhPT1pJiYodFtuKyItdHJhbnNpdGlvbiJdPWkpfXJldHVybiB0fSxJbi5wcm90b3R5cGUudHJhbnNpdGlvbmVkPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPW5ldyBSbih0aGlzLl9wcm9wZXJ0aWVzKSxuPTAsYT1PYmplY3Qua2V5cyh0aGlzLl92YWx1ZXMpO248YS5sZW5ndGg7bis9MSl7dmFyIGk9YVtuXTtyLl92YWx1ZXNbaV09dGhpcy5fdmFsdWVzW2ldLnRyYW5zaXRpb25lZCh0LGUuX3ZhbHVlc1tpXSl9cmV0dXJuIHJ9LEluLnByb3RvdHlwZS51bnRyYW5zaXRpb25lZD1mdW5jdGlvbigpe2Zvcih2YXIgdD1uZXcgUm4odGhpcy5fcHJvcGVydGllcyksZT0wLHI9T2JqZWN0LmtleXModGhpcy5fdmFsdWVzKTtlPHIubGVuZ3RoO2UrPTEpe3ZhciBuPXJbZV07dC5fdmFsdWVzW25dPXRoaXMuX3ZhbHVlc1tuXS51bnRyYW5zaXRpb25lZCgpfXJldHVybiB0fTt2YXIgRG49ZnVuY3Rpb24odCxlLHIsbixhKXt0aGlzLnByb3BlcnR5PXQsdGhpcy52YWx1ZT1lLHRoaXMuYmVnaW49YStuLmRlbGF5fHwwLHRoaXMuZW5kPXRoaXMuYmVnaW4rbi5kdXJhdGlvbnx8MCx0LnNwZWNpZmljYXRpb24udHJhbnNpdGlvbiYmKG4uZGVsYXl8fG4uZHVyYXRpb24pJiYodGhpcy5wcmlvcj1yKX07RG4ucHJvdG90eXBlLnBvc3NpYmx5RXZhbHVhdGU9ZnVuY3Rpb24odCl7dmFyIGU9dC5ub3d8fDAscj10aGlzLnZhbHVlLnBvc3NpYmx5RXZhbHVhdGUodCksbj10aGlzLnByaW9yO2lmKG4pe2lmKGU+dGhpcy5lbmQpcmV0dXJuIHRoaXMucHJpb3I9bnVsbCxyO2lmKHRoaXMudmFsdWUuaXNEYXRhRHJpdmVuKCkpcmV0dXJuIHRoaXMucHJpb3I9bnVsbCxyO2lmKGU8dGhpcy5iZWdpbilyZXR1cm4gbi5wb3NzaWJseUV2YWx1YXRlKHQpO3ZhciBhPShlLXRoaXMuYmVnaW4pLyh0aGlzLmVuZC10aGlzLmJlZ2luKTtyZXR1cm4gdGhpcy5wcm9wZXJ0eS5pbnRlcnBvbGF0ZShuLnBvc3NpYmx5RXZhbHVhdGUodCkscixmdW5jdGlvbih0KXtpZihhPD0wKXJldHVybiAwO2lmKGE+PTEpcmV0dXJuIDE7dmFyIGU9YSphLHI9ZSphO3JldHVybiA0KihhPC41P3I6MyooYS1lKStyLS43NSl9KCkpfXJldHVybiByfTt2YXIgUm49ZnVuY3Rpb24odCl7dGhpcy5fcHJvcGVydGllcz10LHRoaXMuX3ZhbHVlcz1PYmplY3QuY3JlYXRlKHQuZGVmYXVsdFRyYW5zaXRpb25pbmdQcm9wZXJ0eVZhbHVlcyl9O1JuLnByb3RvdHlwZS5wb3NzaWJseUV2YWx1YXRlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgTm4odGhpcy5fcHJvcGVydGllcykscj0wLG49T2JqZWN0LmtleXModGhpcy5fdmFsdWVzKTtyPG4ubGVuZ3RoO3IrPTEpe3ZhciBhPW5bcl07ZS5fdmFsdWVzW2FdPXRoaXMuX3ZhbHVlc1thXS5wb3NzaWJseUV2YWx1YXRlKHQpfXJldHVybiBlfSxSbi5wcm90b3R5cGUuaGFzVHJhbnNpdGlvbj1mdW5jdGlvbigpe2Zvcih2YXIgdD0wLGU9T2JqZWN0LmtleXModGhpcy5fdmFsdWVzKTt0PGUubGVuZ3RoO3QrPTEpe3ZhciByPWVbdF07aWYodGhpcy5fdmFsdWVzW3JdLnByaW9yKXJldHVybiEwfXJldHVybiExfTt2YXIgRm49ZnVuY3Rpb24odCl7dGhpcy5fcHJvcGVydGllcz10LHRoaXMuX3ZhbHVlcz1PYmplY3QuY3JlYXRlKHQuZGVmYXVsdFByb3BlcnR5VmFsdWVzKX07Rm4ucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKHQpe3JldHVybiBiKHRoaXMuX3ZhbHVlc1t0XS52YWx1ZSl9LEZuLnByb3RvdHlwZS5zZXRWYWx1ZT1mdW5jdGlvbih0LGUpe3RoaXMuX3ZhbHVlc1t0XT1uZXcgT24odGhpcy5fdmFsdWVzW3RdLnByb3BlcnR5LG51bGw9PT1lP3ZvaWQgMDpiKGUpKX0sRm4ucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe2Zvcih2YXIgdD17fSxlPTAscj1PYmplY3Qua2V5cyh0aGlzLl92YWx1ZXMpO2U8ci5sZW5ndGg7ZSs9MSl7dmFyIG49cltlXSxhPXRoaXMuZ2V0VmFsdWUobik7dm9pZCAwIT09YSYmKHRbbl09YSl9cmV0dXJuIHR9LEZuLnByb3RvdHlwZS5wb3NzaWJseUV2YWx1YXRlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgTm4odGhpcy5fcHJvcGVydGllcykscj0wLG49T2JqZWN0LmtleXModGhpcy5fdmFsdWVzKTtyPG4ubGVuZ3RoO3IrPTEpe3ZhciBhPW5bcl07ZS5fdmFsdWVzW2FdPXRoaXMuX3ZhbHVlc1thXS5wb3NzaWJseUV2YWx1YXRlKHQpfXJldHVybiBlfTt2YXIgQm49ZnVuY3Rpb24odCxlLHIpe3RoaXMucHJvcGVydHk9dCx0aGlzLnZhbHVlPWUsdGhpcy5wYXJhbWV0ZXJzPXJ9O0JuLnByb3RvdHlwZS5pc0NvbnN0YW50PWZ1bmN0aW9uKCl7cmV0dXJuImNvbnN0YW50Ij09PXRoaXMudmFsdWUua2luZH0sQm4ucHJvdG90eXBlLmNvbnN0YW50T3I9ZnVuY3Rpb24odCl7cmV0dXJuImNvbnN0YW50Ij09PXRoaXMudmFsdWUua2luZD90aGlzLnZhbHVlLnZhbHVlOnR9LEJuLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnByb3BlcnR5LmV2YWx1YXRlKHRoaXMudmFsdWUsdGhpcy5wYXJhbWV0ZXJzLHQsZSl9O3ZhciBObj1mdW5jdGlvbih0KXt0aGlzLl9wcm9wZXJ0aWVzPXQsdGhpcy5fdmFsdWVzPU9iamVjdC5jcmVhdGUodC5kZWZhdWx0UG9zc2libHlFdmFsdWF0ZWRWYWx1ZXMpfTtObi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl92YWx1ZXNbdF19O3ZhciBqbj1mdW5jdGlvbih0KXt0aGlzLnNwZWNpZmljYXRpb249dH07am4ucHJvdG90eXBlLnBvc3NpYmx5RXZhbHVhdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5leHByZXNzaW9uLmV2YWx1YXRlKGUpfSxqbi5wcm90b3R5cGUuaW50ZXJwb2xhdGU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXhlW3RoaXMuc3BlY2lmaWNhdGlvbi50eXBlXTtyZXR1cm4gbj9uKHQsZSxyKTp0fTt2YXIgVm49ZnVuY3Rpb24odCxlKXt0aGlzLnNwZWNpZmljYXRpb249dCx0aGlzLm92ZXJyaWRlcz1lfTtWbi5wcm90b3R5cGUucG9zc2libHlFdmFsdWF0ZT1mdW5jdGlvbih0LGUpe3JldHVybiJjb25zdGFudCI9PT10LmV4cHJlc3Npb24ua2luZHx8ImNhbWVyYSI9PT10LmV4cHJlc3Npb24ua2luZD9uZXcgQm4odGhpcyx7a2luZDoiY29uc3RhbnQiLHZhbHVlOnQuZXhwcmVzc2lvbi5ldmFsdWF0ZShlKX0sZSk6bmV3IEJuKHRoaXMsdC5leHByZXNzaW9uLGUpfSxWbi5wcm90b3R5cGUuaW50ZXJwb2xhdGU9ZnVuY3Rpb24odCxlLHIpe2lmKCJjb25zdGFudCIhPT10LnZhbHVlLmtpbmR8fCJjb25zdGFudCIhPT1lLnZhbHVlLmtpbmQpcmV0dXJuIHQ7aWYodm9pZCAwPT09dC52YWx1ZS52YWx1ZXx8dm9pZCAwPT09ZS52YWx1ZS52YWx1ZSlyZXR1cm4gbmV3IEJuKHRoaXMse2tpbmQ6ImNvbnN0YW50Iix2YWx1ZTp2b2lkIDB9LHQucGFyYW1ldGVycyk7dmFyIG49eGVbdGhpcy5zcGVjaWZpY2F0aW9uLnR5cGVdO3JldHVybiBuP25ldyBCbih0aGlzLHtraW5kOiJjb25zdGFudCIsdmFsdWU6bih0LnZhbHVlLnZhbHVlLGUudmFsdWUudmFsdWUscil9LHQucGFyYW1ldGVycyk6dH0sVm4ucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiJjb25zdGFudCI9PT10LmtpbmQ/dC52YWx1ZTp0LmV2YWx1YXRlKGUscixuKX07dmFyIFVuPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUucG9zc2libHlFdmFsdWF0ZT1mdW5jdGlvbih0LGUpe2lmKHZvaWQgMD09PXQudmFsdWUpcmV0dXJuIG5ldyBCbih0aGlzLHtraW5kOiJjb25zdGFudCIsdmFsdWU6dm9pZCAwfSxlKTtpZigiY29uc3RhbnQiPT09dC5leHByZXNzaW9uLmtpbmQpe3ZhciByPXQuZXhwcmVzc2lvbi5ldmFsdWF0ZShlKSxuPXRoaXMuX2NhbGN1bGF0ZShyLHIscixlKTtyZXR1cm4gbmV3IEJuKHRoaXMse2tpbmQ6ImNvbnN0YW50Iix2YWx1ZTpufSxlKX1pZigiY2FtZXJhIj09PXQuZXhwcmVzc2lvbi5raW5kKXt2YXIgYT10aGlzLl9jYWxjdWxhdGUodC5leHByZXNzaW9uLmV2YWx1YXRlKHt6b29tOmUuem9vbS0xfSksdC5leHByZXNzaW9uLmV2YWx1YXRlKHt6b29tOmUuem9vbX0pLHQuZXhwcmVzc2lvbi5ldmFsdWF0ZSh7em9vbTplLnpvb20rMX0pLGUpO3JldHVybiBuZXcgQm4odGhpcyx7a2luZDoiY29uc3RhbnQiLHZhbHVlOmF9LGUpfXJldHVybiBuZXcgQm4odGhpcyx0LmV4cHJlc3Npb24sZSl9LGUucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQsZSxyLG4pe2lmKCJzb3VyY2UiPT09dC5raW5kKXt2YXIgYT10LmV2YWx1YXRlKGUscixuKTtyZXR1cm4gdGhpcy5fY2FsY3VsYXRlKGEsYSxhLGUpfXJldHVybiJjb21wb3NpdGUiPT09dC5raW5kP3RoaXMuX2NhbGN1bGF0ZSh0LmV2YWx1YXRlKHt6b29tOk1hdGguZmxvb3IoZS56b29tKS0xfSxyLG4pLHQuZXZhbHVhdGUoe3pvb206TWF0aC5mbG9vcihlLnpvb20pfSxyLG4pLHQuZXZhbHVhdGUoe3pvb206TWF0aC5mbG9vcihlLnpvb20pKzF9LHIsbiksZSk6dC52YWx1ZX0sZS5wcm90b3R5cGUuX2NhbGN1bGF0ZT1mdW5jdGlvbih0LGUscixuKXtyZXR1cm4gbi56b29tPm4uem9vbUhpc3RvcnkubGFzdEludGVnZXJab29tP3tmcm9tOnQsdG86ZX06e2Zyb206cix0bzplfX0sZS5wcm90b3R5cGUuaW50ZXJwb2xhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHR9LGV9KFZuKSxxbj1mdW5jdGlvbih0KXt0aGlzLnNwZWNpZmljYXRpb249dH07cW4ucHJvdG90eXBlLnBvc3NpYmx5RXZhbHVhdGU9ZnVuY3Rpb24odCxlKXtpZih2b2lkIDAhPT10LnZhbHVlKXtpZigiY29uc3RhbnQiPT09dC5leHByZXNzaW9uLmtpbmQpe3ZhciByPXQuZXhwcmVzc2lvbi5ldmFsdWF0ZShlKTtyZXR1cm4gdGhpcy5fY2FsY3VsYXRlKHIscixyLGUpfXJldHVybiB0aGlzLl9jYWxjdWxhdGUodC5leHByZXNzaW9uLmV2YWx1YXRlKG5ldyBQbihNYXRoLmZsb29yKGUuem9vbS0xKSxlKSksdC5leHByZXNzaW9uLmV2YWx1YXRlKG5ldyBQbihNYXRoLmZsb29yKGUuem9vbSksZSkpLHQuZXhwcmVzc2lvbi5ldmFsdWF0ZShuZXcgUG4oTWF0aC5mbG9vcihlLnpvb20rMSksZSkpLGUpfX0scW4ucHJvdG90eXBlLl9jYWxjdWxhdGU9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIG4uem9vbT5uLnpvb21IaXN0b3J5Lmxhc3RJbnRlZ2VyWm9vbT97ZnJvbTp0LHRvOmV9Ontmcm9tOnIsdG86ZX19LHFuLnByb3RvdHlwZS5pbnRlcnBvbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdH07dmFyIEhuPWZ1bmN0aW9uKHQpe3RoaXMuc3BlY2lmaWNhdGlvbj10fTtIbi5wcm90b3R5cGUucG9zc2libHlFdmFsdWF0ZT1mdW5jdGlvbih0LGUpe3JldHVybiEhdC5leHByZXNzaW9uLmV2YWx1YXRlKGUpfSxIbi5wcm90b3R5cGUuaW50ZXJwb2xhdGU9ZnVuY3Rpb24oKXtyZXR1cm4hMX07dmFyIEduPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiB0aGlzLnByb3BlcnRpZXM9dCx0aGlzLmRlZmF1bHRQcm9wZXJ0eVZhbHVlcz17fSx0aGlzLmRlZmF1bHRUcmFuc2l0aW9uYWJsZVByb3BlcnR5VmFsdWVzPXt9LHRoaXMuZGVmYXVsdFRyYW5zaXRpb25pbmdQcm9wZXJ0eVZhbHVlcz17fSx0aGlzLmRlZmF1bHRQb3NzaWJseUV2YWx1YXRlZFZhbHVlcz17fSx0aGlzLm92ZXJyaWRhYmxlUHJvcGVydGllcz1bXSx0KXt2YXIgcj10W2VdO3Iuc3BlY2lmaWNhdGlvbi5vdmVycmlkYWJsZSYmdGhpcy5vdmVycmlkYWJsZVByb3BlcnRpZXMucHVzaChlKTt2YXIgbj10aGlzLmRlZmF1bHRQcm9wZXJ0eVZhbHVlc1tlXT1uZXcgT24ocix2b2lkIDApLGE9dGhpcy5kZWZhdWx0VHJhbnNpdGlvbmFibGVQcm9wZXJ0eVZhbHVlc1tlXT1uZXcgem4ocik7dGhpcy5kZWZhdWx0VHJhbnNpdGlvbmluZ1Byb3BlcnR5VmFsdWVzW2VdPWEudW50cmFuc2l0aW9uZWQoKSx0aGlzLmRlZmF1bHRQb3NzaWJseUV2YWx1YXRlZFZhbHVlc1tlXT1uLnBvc3NpYmx5RXZhbHVhdGUoe30pfX07ZG4oIkRhdGFEcml2ZW5Qcm9wZXJ0eSIsVm4pLGRuKCJEYXRhQ29uc3RhbnRQcm9wZXJ0eSIsam4pLGRuKCJDcm9zc0ZhZGVkRGF0YURyaXZlblByb3BlcnR5IixVbiksZG4oIkNyb3NzRmFkZWRQcm9wZXJ0eSIscW4pLGRuKCJDb2xvclJhbXBQcm9wZXJ0eSIsSG4pO3ZhciBZbj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUscil7aWYodC5jYWxsKHRoaXMpLHRoaXMuaWQ9ZS5pZCx0aGlzLnR5cGU9ZS50eXBlLHRoaXMuX2ZlYXR1cmVGaWx0ZXI9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sImN1c3RvbSIhPT1lLnR5cGUmJihlPWUsdGhpcy5tZXRhZGF0YT1lLm1ldGFkYXRhLHRoaXMubWluem9vbT1lLm1pbnpvb20sdGhpcy5tYXh6b29tPWUubWF4em9vbSwiYmFja2dyb3VuZCIhPT1lLnR5cGUmJih0aGlzLnNvdXJjZT1lLnNvdXJjZSx0aGlzLnNvdXJjZUxheWVyPWVbInNvdXJjZS1sYXllciJdLHRoaXMuZmlsdGVyPWUuZmlsdGVyKSxyLmxheW91dCYmKHRoaXMuX3VuZXZhbHVhdGVkTGF5b3V0PW5ldyBGbihyLmxheW91dCkpLHIucGFpbnQpKXtmb3IodmFyIG4gaW4gdGhpcy5fdHJhbnNpdGlvbmFibGVQYWludD1uZXcgSW4oci5wYWludCksZS5wYWludCl0aGlzLnNldFBhaW50UHJvcGVydHkobixlLnBhaW50W25dLHt2YWxpZGF0ZTohMX0pO2Zvcih2YXIgYSBpbiBlLmxheW91dCl0aGlzLnNldExheW91dFByb3BlcnR5KGEsZS5sYXlvdXRbYV0se3ZhbGlkYXRlOiExfSk7dGhpcy5fdHJhbnNpdGlvbmluZ1BhaW50PXRoaXMuX3RyYW5zaXRpb25hYmxlUGFpbnQudW50cmFuc2l0aW9uZWQoKX19cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldENyb3NzZmFkZVBhcmFtZXRlcnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3Jvc3NmYWRlUGFyYW1ldGVyc30sZS5wcm90b3R5cGUuZ2V0TGF5b3V0UHJvcGVydHk9ZnVuY3Rpb24odCl7cmV0dXJuInZpc2liaWxpdHkiPT09dD90aGlzLnZpc2liaWxpdHk6dGhpcy5fdW5ldmFsdWF0ZWRMYXlvdXQuZ2V0VmFsdWUodCl9LGUucHJvdG90eXBlLnNldExheW91dFByb3BlcnR5PWZ1bmN0aW9uKHQsZSxyKXtpZih2b2lkIDA9PT1yJiYocj17fSksbnVsbCE9ZSl7dmFyIG49ImxheWVycy4iK3RoaXMuaWQrIi5sYXlvdXQuIit0O2lmKHRoaXMuX3ZhbGlkYXRlKHNuLG4sdCxlLHIpKXJldHVybn0idmlzaWJpbGl0eSIhPT10P3RoaXMuX3VuZXZhbHVhdGVkTGF5b3V0LnNldFZhbHVlKHQsZSk6dGhpcy52aXNpYmlsaXR5PWV9LGUucHJvdG90eXBlLmdldFBhaW50UHJvcGVydHk9ZnVuY3Rpb24odCl7cmV0dXJuIG0odCwiLXRyYW5zaXRpb24iKT90aGlzLl90cmFuc2l0aW9uYWJsZVBhaW50LmdldFRyYW5zaXRpb24odC5zbGljZSgwLC0iLXRyYW5zaXRpb24iLmxlbmd0aCkpOnRoaXMuX3RyYW5zaXRpb25hYmxlUGFpbnQuZ2V0VmFsdWUodCl9LGUucHJvdG90eXBlLnNldFBhaW50UHJvcGVydHk9ZnVuY3Rpb24odCxlLHIpe2lmKHZvaWQgMD09PXImJihyPXt9KSxudWxsIT1lKXt2YXIgbj0ibGF5ZXJzLiIrdGhpcy5pZCsiLnBhaW50LiIrdDtpZih0aGlzLl92YWxpZGF0ZShvbixuLHQsZSxyKSlyZXR1cm4hMX1pZihtKHQsIi10cmFuc2l0aW9uIikpcmV0dXJuIHRoaXMuX3RyYW5zaXRpb25hYmxlUGFpbnQuc2V0VHJhbnNpdGlvbih0LnNsaWNlKDAsLSItdHJhbnNpdGlvbiIubGVuZ3RoKSxlfHx2b2lkIDApLCExO3ZhciBhPXRoaXMuX3RyYW5zaXRpb25hYmxlUGFpbnQuX3ZhbHVlc1t0XSxpPSJjcm9zcy1mYWRlZC1kYXRhLWRyaXZlbiI9PT1hLnByb3BlcnR5LnNwZWNpZmljYXRpb25bInByb3BlcnR5LXR5cGUiXSxvPWEudmFsdWUuaXNEYXRhRHJpdmVuKCkscz1hLnZhbHVlO3RoaXMuX3RyYW5zaXRpb25hYmxlUGFpbnQuc2V0VmFsdWUodCxlKSx0aGlzLl9oYW5kbGVTcGVjaWFsUGFpbnRQcm9wZXJ0eVVwZGF0ZSh0KTt2YXIgbD10aGlzLl90cmFuc2l0aW9uYWJsZVBhaW50Ll92YWx1ZXNbdF0udmFsdWU7cmV0dXJuIGwuaXNEYXRhRHJpdmVuKCl8fG98fGl8fHRoaXMuX2hhbmRsZU92ZXJyaWRhYmxlUGFpbnRQcm9wZXJ0eVVwZGF0ZSh0LHMsbCl9LGUucHJvdG90eXBlLl9oYW5kbGVTcGVjaWFsUGFpbnRQcm9wZXJ0eVVwZGF0ZT1mdW5jdGlvbih0KXt9LGUucHJvdG90eXBlLl9oYW5kbGVPdmVycmlkYWJsZVBhaW50UHJvcGVydHlVcGRhdGU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiExfSxlLnByb3RvdHlwZS5pc0hpZGRlbj1mdW5jdGlvbih0KXtyZXR1cm4hISh0aGlzLm1pbnpvb20mJnQ8dGhpcy5taW56b29tKXx8ISEodGhpcy5tYXh6b29tJiZ0Pj10aGlzLm1heHpvb20pfHwibm9uZSI9PT10aGlzLnZpc2liaWxpdHl9LGUucHJvdG90eXBlLnVwZGF0ZVRyYW5zaXRpb25zPWZ1bmN0aW9uKHQpe3RoaXMuX3RyYW5zaXRpb25pbmdQYWludD10aGlzLl90cmFuc2l0aW9uYWJsZVBhaW50LnRyYW5zaXRpb25lZCh0LHRoaXMuX3RyYW5zaXRpb25pbmdQYWludCl9LGUucHJvdG90eXBlLmhhc1RyYW5zaXRpb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdHJhbnNpdGlvbmluZ1BhaW50Lmhhc1RyYW5zaXRpb24oKX0sZS5wcm90b3R5cGUucmVjYWxjdWxhdGU9ZnVuY3Rpb24odCl7dC5nZXRDcm9zc2ZhZGVQYXJhbWV0ZXJzJiYodGhpcy5fY3Jvc3NmYWRlUGFyYW1ldGVycz10LmdldENyb3NzZmFkZVBhcmFtZXRlcnMoKSksdGhpcy5fdW5ldmFsdWF0ZWRMYXlvdXQmJih0aGlzLmxheW91dD10aGlzLl91bmV2YWx1YXRlZExheW91dC5wb3NzaWJseUV2YWx1YXRlKHQpKSx0aGlzLnBhaW50PXRoaXMuX3RyYW5zaXRpb25pbmdQYWludC5wb3NzaWJseUV2YWx1YXRlKHQpfSxlLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXt2YXIgdD17aWQ6dGhpcy5pZCx0eXBlOnRoaXMudHlwZSxzb3VyY2U6dGhpcy5zb3VyY2UsInNvdXJjZS1sYXllciI6dGhpcy5zb3VyY2VMYXllcixtZXRhZGF0YTp0aGlzLm1ldGFkYXRhLG1pbnpvb206dGhpcy5taW56b29tLG1heHpvb206dGhpcy5tYXh6b29tLGZpbHRlcjp0aGlzLmZpbHRlcixsYXlvdXQ6dGhpcy5fdW5ldmFsdWF0ZWRMYXlvdXQmJnRoaXMuX3VuZXZhbHVhdGVkTGF5b3V0LnNlcmlhbGl6ZSgpLHBhaW50OnRoaXMuX3RyYW5zaXRpb25hYmxlUGFpbnQmJnRoaXMuX3RyYW5zaXRpb25hYmxlUGFpbnQuc2VyaWFsaXplKCl9O3JldHVybiB0aGlzLnZpc2liaWxpdHkmJih0LmxheW91dD10LmxheW91dHx8e30sdC5sYXlvdXQudmlzaWJpbGl0eT10aGlzLnZpc2liaWxpdHkpLHgodCxmdW5jdGlvbih0LGUpe3JldHVybiEodm9pZCAwPT09dHx8ImxheW91dCI9PT1lJiYhT2JqZWN0LmtleXModCkubGVuZ3RofHwicGFpbnQiPT09ZSYmIU9iamVjdC5rZXlzKHQpLmxlbmd0aCl9KX0sZS5wcm90b3R5cGUuX3ZhbGlkYXRlPWZ1bmN0aW9uKHQsZSxyLG4sYSl7cmV0dXJuIHZvaWQgMD09PWEmJihhPXt9KSwoIWF8fCExIT09YS52YWxpZGF0ZSkmJmxuKHRoaXMsdC5jYWxsKG5uLHtrZXk6ZSxsYXllclR5cGU6dGhpcy50eXBlLG9iamVjdEtleTpyLHZhbHVlOm4sc3R5bGVTcGVjOlR0LHN0eWxlOntnbHlwaHM6ITAsc3ByaXRlOiEwfX0pKX0sZS5wcm90b3R5cGUuaXMzRD1mdW5jdGlvbigpe3JldHVybiExfSxlLnByb3RvdHlwZS5pc1RpbGVDbGlwcGVkPWZ1bmN0aW9uKCl7cmV0dXJuITF9LGUucHJvdG90eXBlLmhhc09mZnNjcmVlblBhc3M9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZS5wcm90b3R5cGUucmVzaXplPWZ1bmN0aW9uKCl7fSxlLnByb3RvdHlwZS5pc1N0YXRlRGVwZW5kZW50PWZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMucGFpbnQuX3ZhbHVlcyl7dmFyIGU9dGhpcy5wYWludC5nZXQodCk7aWYoZSBpbnN0YW5jZW9mIEJuJiZ1cihlLnByb3BlcnR5LnNwZWNpZmljYXRpb24pJiYoInNvdXJjZSI9PT1lLnZhbHVlLmtpbmR8fCJjb21wb3NpdGUiPT09ZS52YWx1ZS5raW5kKSYmZS52YWx1ZS5pc1N0YXRlRGVwZW5kZW50KXJldHVybiEwfXJldHVybiExfSxlfShrdCksV249e0ludDg6SW50OEFycmF5LFVpbnQ4OlVpbnQ4QXJyYXksSW50MTY6SW50MTZBcnJheSxVaW50MTY6VWludDE2QXJyYXksSW50MzI6SW50MzJBcnJheSxVaW50MzI6VWludDMyQXJyYXksRmxvYXQzMjpGbG9hdDMyQXJyYXl9LFhuPWZ1bmN0aW9uKHQsZSl7dGhpcy5fc3RydWN0QXJyYXk9dCx0aGlzLl9wb3MxPWUqdGhpcy5zaXplLHRoaXMuX3BvczI9dGhpcy5fcG9zMS8yLHRoaXMuX3BvczQ9dGhpcy5fcG9zMS80LHRoaXMuX3Bvczg9dGhpcy5fcG9zMS84fSxabj1mdW5jdGlvbigpe3RoaXMuaXNUcmFuc2ZlcnJlZD0hMSx0aGlzLmNhcGFjaXR5PS0xLHRoaXMucmVzaXplKDApfTtmdW5jdGlvbiBKbih0LGUpe3ZvaWQgMD09PWUmJihlPTEpO3ZhciByPTAsbj0wO3JldHVybnttZW1iZXJzOnQubWFwKGZ1bmN0aW9uKHQpe3ZhciBhLGk9KGE9dC50eXBlLFduW2FdLkJZVEVTX1BFUl9FTEVNRU5UKSxvPXI9S24ocixNYXRoLm1heChlLGkpKSxzPXQuY29tcG9uZW50c3x8MTtyZXR1cm4gbj1NYXRoLm1heChuLGkpLHIrPWkqcyx7bmFtZTp0Lm5hbWUsdHlwZTp0LnR5cGUsY29tcG9uZW50czpzLG9mZnNldDpvfX0pLHNpemU6S24ocixNYXRoLm1heChuLGUpKSxhbGlnbm1lbnQ6ZX19ZnVuY3Rpb24gS24odCxlKXtyZXR1cm4gTWF0aC5jZWlsKHQvZSkqZX1abi5zZXJpYWxpemU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5fdHJpbSgpLGUmJih0LmlzVHJhbnNmZXJyZWQ9ITAsZS5wdXNoKHQuYXJyYXlCdWZmZXIpKSx7bGVuZ3RoOnQubGVuZ3RoLGFycmF5QnVmZmVyOnQuYXJyYXlCdWZmZXJ9fSxabi5kZXNlcmlhbGl6ZT1mdW5jdGlvbih0KXt2YXIgZT1PYmplY3QuY3JlYXRlKHRoaXMucHJvdG90eXBlKTtyZXR1cm4gZS5hcnJheUJ1ZmZlcj10LmFycmF5QnVmZmVyLGUubGVuZ3RoPXQubGVuZ3RoLGUuY2FwYWNpdHk9dC5hcnJheUJ1ZmZlci5ieXRlTGVuZ3RoL2UuYnl0ZXNQZXJFbGVtZW50LGUuX3JlZnJlc2hWaWV3cygpLGV9LFpuLnByb3RvdHlwZS5fdHJpbT1mdW5jdGlvbigpe3RoaXMubGVuZ3RoIT09dGhpcy5jYXBhY2l0eSYmKHRoaXMuY2FwYWNpdHk9dGhpcy5sZW5ndGgsdGhpcy5hcnJheUJ1ZmZlcj10aGlzLmFycmF5QnVmZmVyLnNsaWNlKDAsdGhpcy5sZW5ndGgqdGhpcy5ieXRlc1BlckVsZW1lbnQpLHRoaXMuX3JlZnJlc2hWaWV3cygpKX0sWm4ucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5sZW5ndGg9MH0sWm4ucHJvdG90eXBlLnJlc2l6ZT1mdW5jdGlvbih0KXt0aGlzLnJlc2VydmUodCksdGhpcy5sZW5ndGg9dH0sWm4ucHJvdG90eXBlLnJlc2VydmU9ZnVuY3Rpb24odCl7aWYodD50aGlzLmNhcGFjaXR5KXt0aGlzLmNhcGFjaXR5PU1hdGgubWF4KHQsTWF0aC5mbG9vcig1KnRoaXMuY2FwYWNpdHkpLDEyOCksdGhpcy5hcnJheUJ1ZmZlcj1uZXcgQXJyYXlCdWZmZXIodGhpcy5jYXBhY2l0eSp0aGlzLmJ5dGVzUGVyRWxlbWVudCk7dmFyIGU9dGhpcy51aW50ODt0aGlzLl9yZWZyZXNoVmlld3MoKSxlJiZ0aGlzLnVpbnQ4LnNldChlKX19LFpuLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJfcmVmcmVzaFZpZXdzKCkgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBlYWNoIGNvbmNyZXRlIFN0cnVjdEFycmF5IGxheW91dCIpfTt2YXIgUW49ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLmludDE2PW5ldyBJbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMubGVuZ3RoO3JldHVybiB0aGlzLnJlc2l6ZShyKzEpLHRoaXMuZW1wbGFjZShyLHQsZSl9LGUucHJvdG90eXBlLmVtcGxhY2U9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPTIqdDtyZXR1cm4gdGhpcy5pbnQxNltuKzBdPWUsdGhpcy5pbnQxNltuKzFdPXIsdH0sZX0oWm4pO1FuLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9NCxkbigiU3RydWN0QXJyYXlMYXlvdXQyaTQiLFFuKTt2YXIgJG49ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLmludDE2PW5ldyBJbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUscixuKXt2YXIgYT10aGlzLmxlbmd0aDtyZXR1cm4gdGhpcy5yZXNpemUoYSsxKSx0aGlzLmVtcGxhY2UoYSx0LGUscixuKX0sZS5wcm90b3R5cGUuZW1wbGFjZT1mdW5jdGlvbih0LGUscixuLGEpe3ZhciBpPTQqdDtyZXR1cm4gdGhpcy5pbnQxNltpKzBdPWUsdGhpcy5pbnQxNltpKzFdPXIsdGhpcy5pbnQxNltpKzJdPW4sdGhpcy5pbnQxNltpKzNdPWEsdH0sZX0oWm4pOyRuLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9OCxkbigiU3RydWN0QXJyYXlMYXlvdXQ0aTgiLCRuKTt2YXIgdGE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLmludDE2PW5ldyBJbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUscixuLGEsaSl7dmFyIG89dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKG8rMSksdGhpcy5lbXBsYWNlKG8sdCxlLHIsbixhLGkpfSxlLnByb3RvdHlwZS5lbXBsYWNlPWZ1bmN0aW9uKHQsZSxyLG4sYSxpLG8pe3ZhciBzPTYqdDtyZXR1cm4gdGhpcy5pbnQxNltzKzBdPWUsdGhpcy5pbnQxNltzKzFdPXIsdGhpcy5pbnQxNltzKzJdPW4sdGhpcy5pbnQxNltzKzNdPWEsdGhpcy5pbnQxNltzKzRdPWksdGhpcy5pbnQxNltzKzVdPW8sdH0sZX0oWm4pO3RhLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9MTIsZG4oIlN0cnVjdEFycmF5TGF5b3V0Mmk0aTEyIix0YSk7dmFyIGVhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuX3JlZnJlc2hWaWV3cz1mdW5jdGlvbigpe3RoaXMudWludDg9bmV3IFVpbnQ4QXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy5pbnQxNj1uZXcgSW50MTZBcnJheSh0aGlzLmFycmF5QnVmZmVyKX0sZS5wcm90b3R5cGUuZW1wbGFjZUJhY2s9ZnVuY3Rpb24odCxlLHIsbixhLGkpe3ZhciBvPXRoaXMubGVuZ3RoO3JldHVybiB0aGlzLnJlc2l6ZShvKzEpLHRoaXMuZW1wbGFjZShvLHQsZSxyLG4sYSxpKX0sZS5wcm90b3R5cGUuZW1wbGFjZT1mdW5jdGlvbih0LGUscixuLGEsaSxvKXt2YXIgcz00KnQsbD04KnQ7cmV0dXJuIHRoaXMuaW50MTZbcyswXT1lLHRoaXMuaW50MTZbcysxXT1yLHRoaXMudWludDhbbCs0XT1uLHRoaXMudWludDhbbCs1XT1hLHRoaXMudWludDhbbCs2XT1pLHRoaXMudWludDhbbCs3XT1vLHR9LGV9KFpuKTtlYS5wcm90b3R5cGUuYnl0ZXNQZXJFbGVtZW50PTgsZG4oIlN0cnVjdEFycmF5TGF5b3V0Mmk0dWI4IixlYSk7dmFyIHJhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuX3JlZnJlc2hWaWV3cz1mdW5jdGlvbigpe3RoaXMudWludDg9bmV3IFVpbnQ4QXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy51aW50MTY9bmV3IFVpbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUscixuLGEsaSxvLHMpe3ZhciBsPXRoaXMubGVuZ3RoO3JldHVybiB0aGlzLnJlc2l6ZShsKzEpLHRoaXMuZW1wbGFjZShsLHQsZSxyLG4sYSxpLG8scyl9LGUucHJvdG90eXBlLmVtcGxhY2U9ZnVuY3Rpb24odCxlLHIsbixhLGksbyxzLGwpe3ZhciBjPTgqdDtyZXR1cm4gdGhpcy51aW50MTZbYyswXT1lLHRoaXMudWludDE2W2MrMV09cix0aGlzLnVpbnQxNltjKzJdPW4sdGhpcy51aW50MTZbYyszXT1hLHRoaXMudWludDE2W2MrNF09aSx0aGlzLnVpbnQxNltjKzVdPW8sdGhpcy51aW50MTZbYys2XT1zLHRoaXMudWludDE2W2MrN109bCx0fSxlfShabik7cmEucHJvdG90eXBlLmJ5dGVzUGVyRWxlbWVudD0xNixkbigiU3RydWN0QXJyYXlMYXlvdXQ4dWkxNiIscmEpO3ZhciBuYT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLl9yZWZyZXNoVmlld3M9ZnVuY3Rpb24oKXt0aGlzLnVpbnQ4PW5ldyBVaW50OEFycmF5KHRoaXMuYXJyYXlCdWZmZXIpLHRoaXMuaW50MTY9bmV3IEludDE2QXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy51aW50MTY9bmV3IFVpbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUscixuLGEsaSxvLHMpe3ZhciBsPXRoaXMubGVuZ3RoO3JldHVybiB0aGlzLnJlc2l6ZShsKzEpLHRoaXMuZW1wbGFjZShsLHQsZSxyLG4sYSxpLG8scyl9LGUucHJvdG90eXBlLmVtcGxhY2U9ZnVuY3Rpb24odCxlLHIsbixhLGksbyxzLGwpe3ZhciBjPTgqdDtyZXR1cm4gdGhpcy5pbnQxNltjKzBdPWUsdGhpcy5pbnQxNltjKzFdPXIsdGhpcy5pbnQxNltjKzJdPW4sdGhpcy5pbnQxNltjKzNdPWEsdGhpcy51aW50MTZbYys0XT1pLHRoaXMudWludDE2W2MrNV09byx0aGlzLnVpbnQxNltjKzZdPXMsdGhpcy51aW50MTZbYys3XT1sLHR9LGV9KFpuKTtuYS5wcm90b3R5cGUuYnl0ZXNQZXJFbGVtZW50PTE2LGRuKCJTdHJ1Y3RBcnJheUxheW91dDRpNHVpMTYiLG5hKTt2YXIgYWE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLmZsb2F0MzI9bmV3IEZsb2F0MzJBcnJheSh0aGlzLmFycmF5QnVmZmVyKX0sZS5wcm90b3R5cGUuZW1wbGFjZUJhY2s9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMubGVuZ3RoO3JldHVybiB0aGlzLnJlc2l6ZShuKzEpLHRoaXMuZW1wbGFjZShuLHQsZSxyKX0sZS5wcm90b3R5cGUuZW1wbGFjZT1mdW5jdGlvbih0LGUscixuKXt2YXIgYT0zKnQ7cmV0dXJuIHRoaXMuZmxvYXQzMlthKzBdPWUsdGhpcy5mbG9hdDMyW2ErMV09cix0aGlzLmZsb2F0MzJbYSsyXT1uLHR9LGV9KFpuKTthYS5wcm90b3R5cGUuYnl0ZXNQZXJFbGVtZW50PTEyLGRuKCJTdHJ1Y3RBcnJheUxheW91dDNmMTIiLGFhKTt2YXIgaWE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLnVpbnQzMj1uZXcgVWludDMyQXJyYXkodGhpcy5hcnJheUJ1ZmZlcil9LGUucHJvdG90eXBlLmVtcGxhY2VCYWNrPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubGVuZ3RoO3JldHVybiB0aGlzLnJlc2l6ZShlKzEpLHRoaXMuZW1wbGFjZShlLHQpfSxlLnByb3RvdHlwZS5lbXBsYWNlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9MSp0O3JldHVybiB0aGlzLnVpbnQzMltyKzBdPWUsdH0sZX0oWm4pO2lhLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9NCxkbigiU3RydWN0QXJyYXlMYXlvdXQxdWw0IixpYSk7dmFyIG9hPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuX3JlZnJlc2hWaWV3cz1mdW5jdGlvbigpe3RoaXMudWludDg9bmV3IFVpbnQ4QXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy5pbnQxNj1uZXcgSW50MTZBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLnVpbnQzMj1uZXcgVWludDMyQXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy51aW50MTY9bmV3IFVpbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUscixuLGEsaSxvLHMsbCxjLHUpe3ZhciBoPXRoaXMubGVuZ3RoO3JldHVybiB0aGlzLnJlc2l6ZShoKzEpLHRoaXMuZW1wbGFjZShoLHQsZSxyLG4sYSxpLG8scyxsLGMsdSl9LGUucHJvdG90eXBlLmVtcGxhY2U9ZnVuY3Rpb24odCxlLHIsbixhLGksbyxzLGwsYyx1LGgpe3ZhciBmPTEyKnQscD02KnQ7cmV0dXJuIHRoaXMuaW50MTZbZiswXT1lLHRoaXMuaW50MTZbZisxXT1yLHRoaXMuaW50MTZbZisyXT1uLHRoaXMuaW50MTZbZiszXT1hLHRoaXMuaW50MTZbZis0XT1pLHRoaXMuaW50MTZbZis1XT1vLHRoaXMudWludDMyW3ArM109cyx0aGlzLnVpbnQxNltmKzhdPWwsdGhpcy51aW50MTZbZis5XT1jLHRoaXMuaW50MTZbZisxMF09dSx0aGlzLmludDE2W2YrMTFdPWgsdH0sZX0oWm4pO29hLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9MjQsZG4oIlN0cnVjdEFycmF5TGF5b3V0NmkxdWwydWkyaTI0IixvYSk7dmFyIHNhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuX3JlZnJlc2hWaWV3cz1mdW5jdGlvbigpe3RoaXMudWludDg9bmV3IFVpbnQ4QXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy5pbnQxNj1uZXcgSW50MTZBcnJheSh0aGlzLmFycmF5QnVmZmVyKX0sZS5wcm90b3R5cGUuZW1wbGFjZUJhY2s9ZnVuY3Rpb24odCxlLHIsbixhLGkpe3ZhciBvPXRoaXMubGVuZ3RoO3JldHVybiB0aGlzLnJlc2l6ZShvKzEpLHRoaXMuZW1wbGFjZShvLHQsZSxyLG4sYSxpKX0sZS5wcm90b3R5cGUuZW1wbGFjZT1mdW5jdGlvbih0LGUscixuLGEsaSxvKXt2YXIgcz02KnQ7cmV0dXJuIHRoaXMuaW50MTZbcyswXT1lLHRoaXMuaW50MTZbcysxXT1yLHRoaXMuaW50MTZbcysyXT1uLHRoaXMuaW50MTZbcyszXT1hLHRoaXMuaW50MTZbcys0XT1pLHRoaXMuaW50MTZbcys1XT1vLHR9LGV9KFpuKTtzYS5wcm90b3R5cGUuYnl0ZXNQZXJFbGVtZW50PTEyLGRuKCJTdHJ1Y3RBcnJheUxheW91dDJpMmkyaTEyIixzYSk7dmFyIGxhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuX3JlZnJlc2hWaWV3cz1mdW5jdGlvbigpe3RoaXMudWludDg9bmV3IFVpbnQ4QXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy5mbG9hdDMyPW5ldyBGbG9hdDMyQXJyYXkodGhpcy5hcnJheUJ1ZmZlcil9LGUucHJvdG90eXBlLmVtcGxhY2VCYWNrPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPXRoaXMubGVuZ3RoO3JldHVybiB0aGlzLnJlc2l6ZShhKzEpLHRoaXMuZW1wbGFjZShhLHQsZSxyLG4pfSxlLnByb3RvdHlwZS5lbXBsYWNlPWZ1bmN0aW9uKHQsZSxyLG4sYSl7dmFyIGk9MTIqdCxvPTMqdDtyZXR1cm4gdGhpcy51aW50OFtpKzBdPWUsdGhpcy51aW50OFtpKzFdPXIsdGhpcy5mbG9hdDMyW28rMV09bix0aGlzLmZsb2F0MzJbbysyXT1hLHR9LGV9KFpuKTtsYS5wcm90b3R5cGUuYnl0ZXNQZXJFbGVtZW50PTEyLGRuKCJTdHJ1Y3RBcnJheUxheW91dDJ1YjJmMTIiLGxhKTt2YXIgY2E9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLmludDE2PW5ldyBJbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpLHRoaXMudWludDE2PW5ldyBVaW50MTZBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLnVpbnQzMj1uZXcgVWludDMyQXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy5mbG9hdDMyPW5ldyBGbG9hdDMyQXJyYXkodGhpcy5hcnJheUJ1ZmZlcil9LGUucHJvdG90eXBlLmVtcGxhY2VCYWNrPWZ1bmN0aW9uKHQsZSxyLG4sYSxpLG8scyxsLGMsdSxoLGYscCxkLGcpe3ZhciB2PXRoaXMubGVuZ3RoO3JldHVybiB0aGlzLnJlc2l6ZSh2KzEpLHRoaXMuZW1wbGFjZSh2LHQsZSxyLG4sYSxpLG8scyxsLGMsdSxoLGYscCxkLGcpfSxlLnByb3RvdHlwZS5lbXBsYWNlPWZ1bmN0aW9uKHQsZSxyLG4sYSxpLG8scyxsLGMsdSxoLGYscCxkLGcsdil7dmFyIG09MjIqdCx5PTExKnQseD00NCp0O3JldHVybiB0aGlzLmludDE2W20rMF09ZSx0aGlzLmludDE2W20rMV09cix0aGlzLnVpbnQxNlttKzJdPW4sdGhpcy51aW50MTZbbSszXT1hLHRoaXMudWludDMyW3krMl09aSx0aGlzLnVpbnQzMlt5KzNdPW8sdGhpcy51aW50MzJbeSs0XT1zLHRoaXMudWludDE2W20rMTBdPWwsdGhpcy51aW50MTZbbSsxMV09Yyx0aGlzLnVpbnQxNlttKzEyXT11LHRoaXMuZmxvYXQzMlt5KzddPWgsdGhpcy5mbG9hdDMyW3krOF09Zix0aGlzLnVpbnQ4W3grMzZdPXAsdGhpcy51aW50OFt4KzM3XT1kLHRoaXMudWludDhbeCszOF09Zyx0aGlzLnVpbnQzMlt5KzEwXT12LHR9LGV9KFpuKTtjYS5wcm90b3R5cGUuYnl0ZXNQZXJFbGVtZW50PTQ0LGRuKCJTdHJ1Y3RBcnJheUxheW91dDJpMnVpM3VsM3VpMmYzdWIxdWw0NCIsY2EpO3ZhciB1YT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLl9yZWZyZXNoVmlld3M9ZnVuY3Rpb24oKXt0aGlzLnVpbnQ4PW5ldyBVaW50OEFycmF5KHRoaXMuYXJyYXlCdWZmZXIpLHRoaXMuaW50MTY9bmV3IEludDE2QXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy51aW50MTY9bmV3IFVpbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpLHRoaXMudWludDMyPW5ldyBVaW50MzJBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLmZsb2F0MzI9bmV3IEZsb2F0MzJBcnJheSh0aGlzLmFycmF5QnVmZmVyKX0sZS5wcm90b3R5cGUuZW1wbGFjZUJhY2s9ZnVuY3Rpb24odCxlLHIsbixhLGksbyxzLGwsYyx1LGgsZixwLGQsZyx2LG0seSx4KXt2YXIgYj10aGlzLmxlbmd0aDtyZXR1cm4gdGhpcy5yZXNpemUoYisxKSx0aGlzLmVtcGxhY2UoYix0LGUscixuLGEsaSxvLHMsbCxjLHUsaCxmLHAsZCxnLHYsbSx5LHgpfSxlLnByb3RvdHlwZS5lbXBsYWNlPWZ1bmN0aW9uKHQsZSxyLG4sYSxpLG8scyxsLGMsdSxoLGYscCxkLGcsdixtLHkseCxiKXt2YXIgXz0yNCp0LHc9MTIqdDtyZXR1cm4gdGhpcy5pbnQxNltfKzBdPWUsdGhpcy5pbnQxNltfKzFdPXIsdGhpcy5pbnQxNltfKzJdPW4sdGhpcy5pbnQxNltfKzNdPWEsdGhpcy5pbnQxNltfKzRdPWksdGhpcy5pbnQxNltfKzVdPW8sdGhpcy51aW50MTZbXys2XT1zLHRoaXMudWludDE2W18rN109bCx0aGlzLnVpbnQxNltfKzhdPWMsdGhpcy51aW50MTZbXys5XT11LHRoaXMudWludDE2W18rMTBdPWgsdGhpcy51aW50MTZbXysxMV09Zix0aGlzLnVpbnQxNltfKzEyXT1wLHRoaXMudWludDE2W18rMTNdPWQsdGhpcy51aW50MTZbXysxNF09Zyx0aGlzLnVpbnQxNltfKzE1XT12LHRoaXMudWludDE2W18rMTZdPW0sdGhpcy51aW50MzJbdys5XT15LHRoaXMuZmxvYXQzMlt3KzEwXT14LHRoaXMuZmxvYXQzMlt3KzExXT1iLHR9LGV9KFpuKTt1YS5wcm90b3R5cGUuYnl0ZXNQZXJFbGVtZW50PTQ4LGRuKCJTdHJ1Y3RBcnJheUxheW91dDZpMTF1aTF1bDJmNDgiLHVhKTt2YXIgaGE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLmZsb2F0MzI9bmV3IEZsb2F0MzJBcnJheSh0aGlzLmFycmF5QnVmZmVyKX0sZS5wcm90b3R5cGUuZW1wbGFjZUJhY2s9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKGUrMSksdGhpcy5lbXBsYWNlKGUsdCl9LGUucHJvdG90eXBlLmVtcGxhY2U9ZnVuY3Rpb24odCxlKXt2YXIgcj0xKnQ7cmV0dXJuIHRoaXMuZmxvYXQzMltyKzBdPWUsdH0sZX0oWm4pO2hhLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9NCxkbigiU3RydWN0QXJyYXlMYXlvdXQxZjQiLGhhKTt2YXIgZmE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLmludDE2PW5ldyBJbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKG4rMSksdGhpcy5lbXBsYWNlKG4sdCxlLHIpfSxlLnByb3RvdHlwZS5lbXBsYWNlPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPTMqdDtyZXR1cm4gdGhpcy5pbnQxNlthKzBdPWUsdGhpcy5pbnQxNlthKzFdPXIsdGhpcy5pbnQxNlthKzJdPW4sdH0sZX0oWm4pO2ZhLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9NixkbigiU3RydWN0QXJyYXlMYXlvdXQzaTYiLGZhKTt2YXIgcGE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLnVpbnQzMj1uZXcgVWludDMyQXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy51aW50MTY9bmV3IFVpbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKG4rMSksdGhpcy5lbXBsYWNlKG4sdCxlLHIpfSxlLnByb3RvdHlwZS5lbXBsYWNlPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPTIqdCxpPTQqdDtyZXR1cm4gdGhpcy51aW50MzJbYSswXT1lLHRoaXMudWludDE2W2krMl09cix0aGlzLnVpbnQxNltpKzNdPW4sdH0sZX0oWm4pO3BhLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9OCxkbigiU3RydWN0QXJyYXlMYXlvdXQxdWwydWk4IixwYSk7dmFyIGRhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuX3JlZnJlc2hWaWV3cz1mdW5jdGlvbigpe3RoaXMudWludDg9bmV3IFVpbnQ4QXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy51aW50MTY9bmV3IFVpbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKG4rMSksdGhpcy5lbXBsYWNlKG4sdCxlLHIpfSxlLnByb3RvdHlwZS5lbXBsYWNlPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPTMqdDtyZXR1cm4gdGhpcy51aW50MTZbYSswXT1lLHRoaXMudWludDE2W2ErMV09cix0aGlzLnVpbnQxNlthKzJdPW4sdH0sZX0oWm4pO2RhLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9NixkbigiU3RydWN0QXJyYXlMYXlvdXQzdWk2IixkYSk7dmFyIGdhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuX3JlZnJlc2hWaWV3cz1mdW5jdGlvbigpe3RoaXMudWludDg9bmV3IFVpbnQ4QXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy51aW50MTY9bmV3IFVpbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMubGVuZ3RoO3JldHVybiB0aGlzLnJlc2l6ZShyKzEpLHRoaXMuZW1wbGFjZShyLHQsZSl9LGUucHJvdG90eXBlLmVtcGxhY2U9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPTIqdDtyZXR1cm4gdGhpcy51aW50MTZbbiswXT1lLHRoaXMudWludDE2W24rMV09cix0fSxlfShabik7Z2EucHJvdG90eXBlLmJ5dGVzUGVyRWxlbWVudD00LGRuKCJTdHJ1Y3RBcnJheUxheW91dDJ1aTQiLGdhKTt2YXIgdmE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLnVpbnQxNj1uZXcgVWludDE2QXJyYXkodGhpcy5hcnJheUJ1ZmZlcil9LGUucHJvdG90eXBlLmVtcGxhY2VCYWNrPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubGVuZ3RoO3JldHVybiB0aGlzLnJlc2l6ZShlKzEpLHRoaXMuZW1wbGFjZShlLHQpfSxlLnByb3RvdHlwZS5lbXBsYWNlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9MSp0O3JldHVybiB0aGlzLnVpbnQxNltyKzBdPWUsdH0sZX0oWm4pO3ZhLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9MixkbigiU3RydWN0QXJyYXlMYXlvdXQxdWkyIix2YSk7dmFyIG1hPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuX3JlZnJlc2hWaWV3cz1mdW5jdGlvbigpe3RoaXMudWludDg9bmV3IFVpbnQ4QXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy5mbG9hdDMyPW5ldyBGbG9hdDMyQXJyYXkodGhpcy5hcnJheUJ1ZmZlcil9LGUucHJvdG90eXBlLmVtcGxhY2VCYWNrPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKHIrMSksdGhpcy5lbXBsYWNlKHIsdCxlKX0sZS5wcm90b3R5cGUuZW1wbGFjZT1mdW5jdGlvbih0LGUscil7dmFyIG49Mip0O3JldHVybiB0aGlzLmZsb2F0MzJbbiswXT1lLHRoaXMuZmxvYXQzMltuKzFdPXIsdH0sZX0oWm4pO21hLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9OCxkbigiU3RydWN0QXJyYXlMYXlvdXQyZjgiLG1hKTt2YXIgeWE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLmZsb2F0MzI9bmV3IEZsb2F0MzJBcnJheSh0aGlzLmFycmF5QnVmZmVyKX0sZS5wcm90b3R5cGUuZW1wbGFjZUJhY2s9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKGErMSksdGhpcy5lbXBsYWNlKGEsdCxlLHIsbil9LGUucHJvdG90eXBlLmVtcGxhY2U9ZnVuY3Rpb24odCxlLHIsbixhKXt2YXIgaT00KnQ7cmV0dXJuIHRoaXMuZmxvYXQzMltpKzBdPWUsdGhpcy5mbG9hdDMyW2krMV09cix0aGlzLmZsb2F0MzJbaSsyXT1uLHRoaXMuZmxvYXQzMltpKzNdPWEsdH0sZX0oWm4pO3lhLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9MTYsZG4oIlN0cnVjdEFycmF5TGF5b3V0NGYxNiIseWEpO3ZhciB4YT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWU7dmFyIHI9e2FuY2hvclBvaW50WDp7Y29uZmlndXJhYmxlOiEwfSxhbmNob3JQb2ludFk6e2NvbmZpZ3VyYWJsZTohMH0seDE6e2NvbmZpZ3VyYWJsZTohMH0seTE6e2NvbmZpZ3VyYWJsZTohMH0seDI6e2NvbmZpZ3VyYWJsZTohMH0seTI6e2NvbmZpZ3VyYWJsZTohMH0sZmVhdHVyZUluZGV4Ontjb25maWd1cmFibGU6ITB9LHNvdXJjZUxheWVySW5kZXg6e2NvbmZpZ3VyYWJsZTohMH0sYnVja2V0SW5kZXg6e2NvbmZpZ3VyYWJsZTohMH0scmFkaXVzOntjb25maWd1cmFibGU6ITB9LHNpZ25lZERpc3RhbmNlRnJvbUFuY2hvcjp7Y29uZmlndXJhYmxlOiEwfSxhbmNob3JQb2ludDp7Y29uZmlndXJhYmxlOiEwfX07cmV0dXJuIHIuYW5jaG9yUG9pbnRYLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS5pbnQxNlt0aGlzLl9wb3MyKzBdfSxyLmFuY2hvclBvaW50WC5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fc3RydWN0QXJyYXkuaW50MTZbdGhpcy5fcG9zMiswXT10fSxyLmFuY2hvclBvaW50WS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkuaW50MTZbdGhpcy5fcG9zMisxXX0sci5hbmNob3JQb2ludFkuc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrMV09dH0sci54MS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkuaW50MTZbdGhpcy5fcG9zMisyXX0sci54MS5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fc3RydWN0QXJyYXkuaW50MTZbdGhpcy5fcG9zMisyXT10fSxyLnkxLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS5pbnQxNlt0aGlzLl9wb3MyKzNdfSxyLnkxLnNldD1mdW5jdGlvbih0KXt0aGlzLl9zdHJ1Y3RBcnJheS5pbnQxNlt0aGlzLl9wb3MyKzNdPXR9LHIueDIuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrNF19LHIueDIuc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrNF09dH0sci55Mi5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkuaW50MTZbdGhpcy5fcG9zMis1XX0sci55Mi5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fc3RydWN0QXJyYXkuaW50MTZbdGhpcy5fcG9zMis1XT10fSxyLmZlYXR1cmVJbmRleC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDMyW3RoaXMuX3BvczQrM119LHIuZmVhdHVyZUluZGV4LnNldD1mdW5jdGlvbih0KXt0aGlzLl9zdHJ1Y3RBcnJheS51aW50MzJbdGhpcy5fcG9zNCszXT10fSxyLnNvdXJjZUxheWVySW5kZXguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQxNlt0aGlzLl9wb3MyKzhdfSxyLnNvdXJjZUxheWVySW5kZXguc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3N0cnVjdEFycmF5LnVpbnQxNlt0aGlzLl9wb3MyKzhdPXR9LHIuYnVja2V0SW5kZXguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQxNlt0aGlzLl9wb3MyKzldfSxyLmJ1Y2tldEluZGV4LnNldD1mdW5jdGlvbih0KXt0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMis5XT10fSxyLnJhZGl1cy5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkuaW50MTZbdGhpcy5fcG9zMisxMF19LHIucmFkaXVzLnNldD1mdW5jdGlvbih0KXt0aGlzLl9zdHJ1Y3RBcnJheS5pbnQxNlt0aGlzLl9wb3MyKzEwXT10fSxyLnNpZ25lZERpc3RhbmNlRnJvbUFuY2hvci5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkuaW50MTZbdGhpcy5fcG9zMisxMV19LHIuc2lnbmVkRGlzdGFuY2VGcm9tQW5jaG9yLnNldD1mdW5jdGlvbih0KXt0aGlzLl9zdHJ1Y3RBcnJheS5pbnQxNlt0aGlzLl9wb3MyKzExXT10fSxyLmFuY2hvclBvaW50LmdldD1mdW5jdGlvbigpe3JldHVybiBuZXcgYSh0aGlzLmFuY2hvclBvaW50WCx0aGlzLmFuY2hvclBvaW50WSl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUucHJvdG90eXBlLHIpLGV9KFhuKTt4YS5wcm90b3R5cGUuc2l6ZT0yNDt2YXIgYmE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyB4YSh0aGlzLHQpfSxlfShvYSk7ZG4oIkNvbGxpc2lvbkJveEFycmF5IixiYSk7dmFyIF9hPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX10JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZTt2YXIgcj17YW5jaG9yWDp7Y29uZmlndXJhYmxlOiEwfSxhbmNob3JZOntjb25maWd1cmFibGU6ITB9LGdseXBoU3RhcnRJbmRleDp7Y29uZmlndXJhYmxlOiEwfSxudW1HbHlwaHM6e2NvbmZpZ3VyYWJsZTohMH0sdmVydGV4U3RhcnRJbmRleDp7Y29uZmlndXJhYmxlOiEwfSxsaW5lU3RhcnRJbmRleDp7Y29uZmlndXJhYmxlOiEwfSxsaW5lTGVuZ3RoOntjb25maWd1cmFibGU6ITB9LHNlZ21lbnQ6e2NvbmZpZ3VyYWJsZTohMH0sbG93ZXJTaXplOntjb25maWd1cmFibGU6ITB9LHVwcGVyU2l6ZTp7Y29uZmlndXJhYmxlOiEwfSxsaW5lT2Zmc2V0WDp7Y29uZmlndXJhYmxlOiEwfSxsaW5lT2Zmc2V0WTp7Y29uZmlndXJhYmxlOiEwfSx3cml0aW5nTW9kZTp7Y29uZmlndXJhYmxlOiEwfSxwbGFjZWRPcmllbnRhdGlvbjp7Y29uZmlndXJhYmxlOiEwfSxoaWRkZW46e2NvbmZpZ3VyYWJsZTohMH0sY3Jvc3NUaWxlSUQ6e2NvbmZpZ3VyYWJsZTohMH19O3JldHVybiByLmFuY2hvclguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrMF19LHIuYW5jaG9yWC5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fc3RydWN0QXJyYXkuaW50MTZbdGhpcy5fcG9zMiswXT10fSxyLmFuY2hvclkuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrMV19LHIuYW5jaG9yWS5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fc3RydWN0QXJyYXkuaW50MTZbdGhpcy5fcG9zMisxXT10fSxyLmdseXBoU3RhcnRJbmRleC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrMl19LHIuZ2x5cGhTdGFydEluZGV4LnNldD1mdW5jdGlvbih0KXt0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMisyXT10fSxyLm51bUdseXBocy5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrM119LHIubnVtR2x5cGhzLnNldD1mdW5jdGlvbih0KXt0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMiszXT10fSxyLnZlcnRleFN0YXJ0SW5kZXguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQzMlt0aGlzLl9wb3M0KzJdfSxyLnZlcnRleFN0YXJ0SW5kZXguc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3N0cnVjdEFycmF5LnVpbnQzMlt0aGlzLl9wb3M0KzJdPXR9LHIubGluZVN0YXJ0SW5kZXguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQzMlt0aGlzLl9wb3M0KzNdfSxyLmxpbmVTdGFydEluZGV4LnNldD1mdW5jdGlvbih0KXt0aGlzLl9zdHJ1Y3RBcnJheS51aW50MzJbdGhpcy5fcG9zNCszXT10fSxyLmxpbmVMZW5ndGguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQzMlt0aGlzLl9wb3M0KzRdfSxyLmxpbmVMZW5ndGguc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3N0cnVjdEFycmF5LnVpbnQzMlt0aGlzLl9wb3M0KzRdPXR9LHIuc2VnbWVudC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrMTBdfSxyLnNlZ21lbnQuc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3N0cnVjdEFycmF5LnVpbnQxNlt0aGlzLl9wb3MyKzEwXT10fSxyLmxvd2VyU2l6ZS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrMTFdfSxyLmxvd2VyU2l6ZS5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrMTFdPXR9LHIudXBwZXJTaXplLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMisxMl19LHIudXBwZXJTaXplLnNldD1mdW5jdGlvbih0KXt0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMisxMl09dH0sci5saW5lT2Zmc2V0WC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkuZmxvYXQzMlt0aGlzLl9wb3M0KzddfSxyLmxpbmVPZmZzZXRYLnNldD1mdW5jdGlvbih0KXt0aGlzLl9zdHJ1Y3RBcnJheS5mbG9hdDMyW3RoaXMuX3BvczQrN109dH0sci5saW5lT2Zmc2V0WS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkuZmxvYXQzMlt0aGlzLl9wb3M0KzhdfSxyLmxpbmVPZmZzZXRZLnNldD1mdW5jdGlvbih0KXt0aGlzLl9zdHJ1Y3RBcnJheS5mbG9hdDMyW3RoaXMuX3BvczQrOF09dH0sci53cml0aW5nTW9kZS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDhbdGhpcy5fcG9zMSszNl19LHIud3JpdGluZ01vZGUuc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3N0cnVjdEFycmF5LnVpbnQ4W3RoaXMuX3BvczErMzZdPXR9LHIucGxhY2VkT3JpZW50YXRpb24uZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQ4W3RoaXMuX3BvczErMzddfSxyLnBsYWNlZE9yaWVudGF0aW9uLnNldD1mdW5jdGlvbih0KXt0aGlzLl9zdHJ1Y3RBcnJheS51aW50OFt0aGlzLl9wb3MxKzM3XT10fSxyLmhpZGRlbi5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDhbdGhpcy5fcG9zMSszOF19LHIuaGlkZGVuLnNldD1mdW5jdGlvbih0KXt0aGlzLl9zdHJ1Y3RBcnJheS51aW50OFt0aGlzLl9wb3MxKzM4XT10fSxyLmNyb3NzVGlsZUlELmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MzJbdGhpcy5fcG9zNCsxMF19LHIuY3Jvc3NUaWxlSUQuc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3N0cnVjdEFycmF5LnVpbnQzMlt0aGlzLl9wb3M0KzEwXT10fSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLnByb3RvdHlwZSxyKSxlfShYbik7X2EucHJvdG90eXBlLnNpemU9NDQ7dmFyIHdhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgX2EodGhpcyx0KX0sZX0oY2EpO2RuKCJQbGFjZWRTeW1ib2xBcnJheSIsd2EpO3ZhciBrYT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWU7dmFyIHI9e2FuY2hvclg6e2NvbmZpZ3VyYWJsZTohMH0sYW5jaG9yWTp7Y29uZmlndXJhYmxlOiEwfSxyaWdodEp1c3RpZmllZFRleHRTeW1ib2xJbmRleDp7Y29uZmlndXJhYmxlOiEwfSxjZW50ZXJKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXg6e2NvbmZpZ3VyYWJsZTohMH0sbGVmdEp1c3RpZmllZFRleHRTeW1ib2xJbmRleDp7Y29uZmlndXJhYmxlOiEwfSx2ZXJ0aWNhbFBsYWNlZFRleHRTeW1ib2xJbmRleDp7Y29uZmlndXJhYmxlOiEwfSxrZXk6e2NvbmZpZ3VyYWJsZTohMH0sdGV4dEJveFN0YXJ0SW5kZXg6e2NvbmZpZ3VyYWJsZTohMH0sdGV4dEJveEVuZEluZGV4Ontjb25maWd1cmFibGU6ITB9LHZlcnRpY2FsVGV4dEJveFN0YXJ0SW5kZXg6e2NvbmZpZ3VyYWJsZTohMH0sdmVydGljYWxUZXh0Qm94RW5kSW5kZXg6e2NvbmZpZ3VyYWJsZTohMH0saWNvbkJveFN0YXJ0SW5kZXg6e2NvbmZpZ3VyYWJsZTohMH0saWNvbkJveEVuZEluZGV4Ontjb25maWd1cmFibGU6ITB9LGZlYXR1cmVJbmRleDp7Y29uZmlndXJhYmxlOiEwfSxudW1Ib3Jpem9udGFsR2x5cGhWZXJ0aWNlczp7Y29uZmlndXJhYmxlOiEwfSxudW1WZXJ0aWNhbEdseXBoVmVydGljZXM6e2NvbmZpZ3VyYWJsZTohMH0sbnVtSWNvblZlcnRpY2VzOntjb25maWd1cmFibGU6ITB9LGNyb3NzVGlsZUlEOntjb25maWd1cmFibGU6ITB9LHRleHRCb3hTY2FsZTp7Y29uZmlndXJhYmxlOiEwfSxyYWRpYWxUZXh0T2Zmc2V0Ontjb25maWd1cmFibGU6ITB9fTtyZXR1cm4gci5hbmNob3JYLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS5pbnQxNlt0aGlzLl9wb3MyKzBdfSxyLmFuY2hvclguc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrMF09dH0sci5hbmNob3JZLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS5pbnQxNlt0aGlzLl9wb3MyKzFdfSxyLmFuY2hvclkuc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrMV09dH0sci5yaWdodEp1c3RpZmllZFRleHRTeW1ib2xJbmRleC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkuaW50MTZbdGhpcy5fcG9zMisyXX0sci5yaWdodEp1c3RpZmllZFRleHRTeW1ib2xJbmRleC5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fc3RydWN0QXJyYXkuaW50MTZbdGhpcy5fcG9zMisyXT10fSxyLmNlbnRlckp1c3RpZmllZFRleHRTeW1ib2xJbmRleC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkuaW50MTZbdGhpcy5fcG9zMiszXX0sci5jZW50ZXJKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXguc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrM109dH0sci5sZWZ0SnVzdGlmaWVkVGV4dFN5bWJvbEluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS5pbnQxNlt0aGlzLl9wb3MyKzRdfSxyLmxlZnRKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXguc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrNF09dH0sci52ZXJ0aWNhbFBsYWNlZFRleHRTeW1ib2xJbmRleC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkuaW50MTZbdGhpcy5fcG9zMis1XX0sci52ZXJ0aWNhbFBsYWNlZFRleHRTeW1ib2xJbmRleC5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fc3RydWN0QXJyYXkuaW50MTZbdGhpcy5fcG9zMis1XT10fSxyLmtleS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrNl19LHIua2V5LnNldD1mdW5jdGlvbih0KXt0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMis2XT10fSxyLnRleHRCb3hTdGFydEluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMis3XX0sci50ZXh0Qm94U3RhcnRJbmRleC5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrN109dH0sci50ZXh0Qm94RW5kSW5kZXguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQxNlt0aGlzLl9wb3MyKzhdfSxyLnRleHRCb3hFbmRJbmRleC5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrOF09dH0sci52ZXJ0aWNhbFRleHRCb3hTdGFydEluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMis5XX0sci52ZXJ0aWNhbFRleHRCb3hTdGFydEluZGV4LnNldD1mdW5jdGlvbih0KXt0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMis5XT10fSxyLnZlcnRpY2FsVGV4dEJveEVuZEluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMisxMF19LHIudmVydGljYWxUZXh0Qm94RW5kSW5kZXguc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3N0cnVjdEFycmF5LnVpbnQxNlt0aGlzLl9wb3MyKzEwXT10fSxyLmljb25Cb3hTdGFydEluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMisxMV19LHIuaWNvbkJveFN0YXJ0SW5kZXguc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3N0cnVjdEFycmF5LnVpbnQxNlt0aGlzLl9wb3MyKzExXT10fSxyLmljb25Cb3hFbmRJbmRleC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrMTJdfSxyLmljb25Cb3hFbmRJbmRleC5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrMTJdPXR9LHIuZmVhdHVyZUluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMisxM119LHIuZmVhdHVyZUluZGV4LnNldD1mdW5jdGlvbih0KXt0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMisxM109dH0sci5udW1Ib3Jpem9udGFsR2x5cGhWZXJ0aWNlcy5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrMTRdfSxyLm51bUhvcml6b250YWxHbHlwaFZlcnRpY2VzLnNldD1mdW5jdGlvbih0KXt0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMisxNF09dH0sci5udW1WZXJ0aWNhbEdseXBoVmVydGljZXMuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQxNlt0aGlzLl9wb3MyKzE1XX0sci5udW1WZXJ0aWNhbEdseXBoVmVydGljZXMuc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3N0cnVjdEFycmF5LnVpbnQxNlt0aGlzLl9wb3MyKzE1XT10fSxyLm51bUljb25WZXJ0aWNlcy5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrMTZdfSxyLm51bUljb25WZXJ0aWNlcy5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrMTZdPXR9LHIuY3Jvc3NUaWxlSUQuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQzMlt0aGlzLl9wb3M0KzldfSxyLmNyb3NzVGlsZUlELnNldD1mdW5jdGlvbih0KXt0aGlzLl9zdHJ1Y3RBcnJheS51aW50MzJbdGhpcy5fcG9zNCs5XT10fSxyLnRleHRCb3hTY2FsZS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkuZmxvYXQzMlt0aGlzLl9wb3M0KzEwXX0sci50ZXh0Qm94U2NhbGUuc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3N0cnVjdEFycmF5LmZsb2F0MzJbdGhpcy5fcG9zNCsxMF09dH0sci5yYWRpYWxUZXh0T2Zmc2V0LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS5mbG9hdDMyW3RoaXMuX3BvczQrMTFdfSxyLnJhZGlhbFRleHRPZmZzZXQuc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3N0cnVjdEFycmF5LmZsb2F0MzJbdGhpcy5fcG9zNCsxMV09dH0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZS5wcm90b3R5cGUsciksZX0oWG4pO2thLnByb3RvdHlwZS5zaXplPTQ4O3ZhciBUYT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGthKHRoaXMsdCl9LGV9KHVhKTtkbigiU3ltYm9sSW5zdGFuY2VBcnJheSIsVGEpO3ZhciBNYT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWU7dmFyIHI9e29mZnNldFg6e2NvbmZpZ3VyYWJsZTohMH19O3JldHVybiByLm9mZnNldFguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LmZsb2F0MzJbdGhpcy5fcG9zNCswXX0sci5vZmZzZXRYLnNldD1mdW5jdGlvbih0KXt0aGlzLl9zdHJ1Y3RBcnJheS5mbG9hdDMyW3RoaXMuX3BvczQrMF09dH0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZS5wcm90b3R5cGUsciksZX0oWG4pO01hLnByb3RvdHlwZS5zaXplPTQ7dmFyIEFhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0b2Zmc2V0WD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5mbG9hdDMyWzEqdCswXX0sZS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgTWEodGhpcyx0KX0sZX0oaGEpO2RuKCJHbHlwaE9mZnNldEFycmF5IixBYSk7dmFyIFNhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX10JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZTt2YXIgcj17eDp7Y29uZmlndXJhYmxlOiEwfSx5Ontjb25maWd1cmFibGU6ITB9LHRpbGVVbml0RGlzdGFuY2VGcm9tQW5jaG9yOntjb25maWd1cmFibGU6ITB9fTtyZXR1cm4gci54LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS5pbnQxNlt0aGlzLl9wb3MyKzBdfSxyLnguc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrMF09dH0sci55LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS5pbnQxNlt0aGlzLl9wb3MyKzFdfSxyLnkuc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrMV09dH0sci50aWxlVW5pdERpc3RhbmNlRnJvbUFuY2hvci5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkuaW50MTZbdGhpcy5fcG9zMisyXX0sci50aWxlVW5pdERpc3RhbmNlRnJvbUFuY2hvci5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fc3RydWN0QXJyYXkuaW50MTZbdGhpcy5fcG9zMisyXT10fSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLnByb3RvdHlwZSxyKSxlfShYbik7U2EucHJvdG90eXBlLnNpemU9Njt2YXIgRWE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXR4PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmludDE2WzMqdCswXX0sZS5wcm90b3R5cGUuZ2V0eT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbnQxNlszKnQrMV19LGUucHJvdG90eXBlLmdldHRpbGVVbml0RGlzdGFuY2VGcm9tQW5jaG9yPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmludDE2WzMqdCsyXX0sZS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgU2EodGhpcyx0KX0sZX0oZmEpO2RuKCJTeW1ib2xMaW5lVmVydGV4QXJyYXkiLEVhKTt2YXIgTGE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lO3ZhciByPXtmZWF0dXJlSW5kZXg6e2NvbmZpZ3VyYWJsZTohMH0sc291cmNlTGF5ZXJJbmRleDp7Y29uZmlndXJhYmxlOiEwfSxidWNrZXRJbmRleDp7Y29uZmlndXJhYmxlOiEwfX07cmV0dXJuIHIuZmVhdHVyZUluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MzJbdGhpcy5fcG9zNCswXX0sci5mZWF0dXJlSW5kZXguc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3N0cnVjdEFycmF5LnVpbnQzMlt0aGlzLl9wb3M0KzBdPXR9LHIuc291cmNlTGF5ZXJJbmRleC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrMl19LHIuc291cmNlTGF5ZXJJbmRleC5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrMl09dH0sci5idWNrZXRJbmRleC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrM119LHIuYnVja2V0SW5kZXguc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3N0cnVjdEFycmF5LnVpbnQxNlt0aGlzLl9wb3MyKzNdPXR9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUucHJvdG90eXBlLHIpLGV9KFhuKTtMYS5wcm90b3R5cGUuc2l6ZT04O3ZhciBDYT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IExhKHRoaXMsdCl9LGV9KHBhKTtkbigiRmVhdHVyZUluZGV4QXJyYXkiLENhKTt2YXIgUGE9Sm4oW3tuYW1lOiJhX3BvcyIsY29tcG9uZW50czoyLHR5cGU6IkludDE2In1dLDQpLm1lbWJlcnMsT2E9ZnVuY3Rpb24odCl7dm9pZCAwPT09dCYmKHQ9W10pLHRoaXMuc2VnbWVudHM9dH07ZnVuY3Rpb24gemEodCxlKXtyZXR1cm4gMjU2Kih0PWMoTWF0aC5mbG9vcih0KSwwLDI1NSkpK2MoTWF0aC5mbG9vcihlKSwwLDI1NSl9T2EucHJvdG90eXBlLnByZXBhcmVTZWdtZW50PWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPXRoaXMuc2VnbWVudHNbdGhpcy5zZWdtZW50cy5sZW5ndGgtMV07cmV0dXJuIHQ+T2EuTUFYX1ZFUlRFWF9BUlJBWV9MRU5HVEgmJncoIk1heCB2ZXJ0aWNlcyBwZXIgc2VnbWVudCBpcyAiK09hLk1BWF9WRVJURVhfQVJSQVlfTEVOR1RIKyI6IGJ1Y2tldCByZXF1ZXN0ZWQgIit0KSwoIWF8fGEudmVydGV4TGVuZ3RoK3Q+T2EuTUFYX1ZFUlRFWF9BUlJBWV9MRU5HVEh8fGEuc29ydEtleSE9PW4pJiYoYT17dmVydGV4T2Zmc2V0OmUubGVuZ3RoLHByaW1pdGl2ZU9mZnNldDpyLmxlbmd0aCx2ZXJ0ZXhMZW5ndGg6MCxwcmltaXRpdmVMZW5ndGg6MH0sdm9pZCAwIT09biYmKGEuc29ydEtleT1uKSx0aGlzLnNlZ21lbnRzLnB1c2goYSkpLGF9LE9hLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWdtZW50c30sT2EucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MCxlPXRoaXMuc2VnbWVudHM7dDxlLmxlbmd0aDt0Kz0xKXt2YXIgcj1lW3RdO2Zvcih2YXIgbiBpbiByLnZhb3Mpci52YW9zW25dLmRlc3Ryb3koKX19LE9hLnNpbXBsZVNlZ21lbnQ9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIG5ldyBPYShbe3ZlcnRleE9mZnNldDp0LHByaW1pdGl2ZU9mZnNldDplLHZlcnRleExlbmd0aDpyLHByaW1pdGl2ZUxlbmd0aDpuLHZhb3M6e30sc29ydEtleTowfV0pfSxPYS5NQVhfVkVSVEVYX0FSUkFZX0xFTkdUSD1NYXRoLnBvdygyLDE2KS0xLGRuKCJTZWdtZW50VmVjdG9yIixPYSk7dmFyIElhPWZ1bmN0aW9uKCl7dGhpcy5pZHM9W10sdGhpcy5wb3NpdGlvbnM9W10sdGhpcy5pbmRleGVkPSExfTtmdW5jdGlvbiBEYSh0LGUscil7dmFyIG49dFtlXTt0W2VdPXRbcl0sdFtyXT1ufUlhLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCxlLHIsbil7dGhpcy5pZHMucHVzaCh0KSx0aGlzLnBvc2l0aW9ucy5wdXNoKGUscixuKX0sSWEucHJvdG90eXBlLmdldFBvc2l0aW9ucz1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxyPXRoaXMuaWRzLmxlbmd0aC0xO2U8cjspe3ZhciBuPWUrcj4+MTt0aGlzLmlkc1tuXT49dD9yPW46ZT1uKzF9Zm9yKHZhciBhPVtdO3RoaXMuaWRzW2VdPT09dDspe3ZhciBpPXRoaXMucG9zaXRpb25zWzMqZV0sbz10aGlzLnBvc2l0aW9uc1szKmUrMV0scz10aGlzLnBvc2l0aW9uc1szKmUrMl07YS5wdXNoKHtpbmRleDppLHN0YXJ0Om8sZW5kOnN9KSxlKyt9cmV0dXJuIGF9LElhLnNlcmlhbGl6ZT1mdW5jdGlvbih0LGUpe3ZhciByPW5ldyBGbG9hdDY0QXJyYXkodC5pZHMpLG49bmV3IFVpbnQzMkFycmF5KHQucG9zaXRpb25zKTtyZXR1cm4gZnVuY3Rpb24gdChlLHIsbixhKXtpZighKG4+PWEpKXtmb3IodmFyIGk9ZVtuK2E+PjFdLG89bi0xLHM9YSsxOzspe2Rve28rK313aGlsZShlW29dPGkpO2Rve3MtLX13aGlsZShlW3NdPmkpO2lmKG8+PXMpYnJlYWs7RGEoZSxvLHMpLERhKHIsMypvLDMqcyksRGEociwzKm8rMSwzKnMrMSksRGEociwzKm8rMiwzKnMrMil9dChlLHIsbixzKSx0KGUscixzKzEsYSl9fShyLG4sMCxyLmxlbmd0aC0xKSxlLnB1c2goci5idWZmZXIsbi5idWZmZXIpLHtpZHM6cixwb3NpdGlvbnM6bn19LElhLmRlc2VyaWFsaXplPWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBJYTtyZXR1cm4gZS5pZHM9dC5pZHMsZS5wb3NpdGlvbnM9dC5wb3NpdGlvbnMsZS5pbmRleGVkPSEwLGV9LGRuKCJGZWF0dXJlUG9zaXRpb25NYXAiLElhKTt2YXIgUmE9ZnVuY3Rpb24odCxlKXt0aGlzLmdsPXQuZ2wsdGhpcy5sb2NhdGlvbj1lfSxGYT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUscil7dC5jYWxsKHRoaXMsZSxyKSx0aGlzLmN1cnJlbnQ9MH1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe3RoaXMuY3VycmVudCE9PXQmJih0aGlzLmN1cnJlbnQ9dCx0aGlzLmdsLnVuaWZvcm0xaSh0aGlzLmxvY2F0aW9uLHQpKX0sZX0oUmEpLEJhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSxyKXt0LmNhbGwodGhpcyxlLHIpLHRoaXMuY3VycmVudD0wfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5jdXJyZW50IT09dCYmKHRoaXMuY3VycmVudD10LHRoaXMuZ2wudW5pZm9ybTFmKHRoaXMubG9jYXRpb24sdCkpfSxlfShSYSksTmE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLHIpe3QuY2FsbCh0aGlzLGUsciksdGhpcy5jdXJyZW50PVswLDBdfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7dFswXT09PXRoaXMuY3VycmVudFswXSYmdFsxXT09PXRoaXMuY3VycmVudFsxXXx8KHRoaXMuY3VycmVudD10LHRoaXMuZ2wudW5pZm9ybTJmKHRoaXMubG9jYXRpb24sdFswXSx0WzFdKSl9LGV9KFJhKSxqYT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUscil7dC5jYWxsKHRoaXMsZSxyKSx0aGlzLmN1cnJlbnQ9WzAsMCwwXX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe3RbMF09PT10aGlzLmN1cnJlbnRbMF0mJnRbMV09PT10aGlzLmN1cnJlbnRbMV0mJnRbMl09PT10aGlzLmN1cnJlbnRbMl18fCh0aGlzLmN1cnJlbnQ9dCx0aGlzLmdsLnVuaWZvcm0zZih0aGlzLmxvY2F0aW9uLHRbMF0sdFsxXSx0WzJdKSl9LGV9KFJhKSxWYT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUscil7dC5jYWxsKHRoaXMsZSxyKSx0aGlzLmN1cnJlbnQ9WzAsMCwwLDBdfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7dFswXT09PXRoaXMuY3VycmVudFswXSYmdFsxXT09PXRoaXMuY3VycmVudFsxXSYmdFsyXT09PXRoaXMuY3VycmVudFsyXSYmdFszXT09PXRoaXMuY3VycmVudFszXXx8KHRoaXMuY3VycmVudD10LHRoaXMuZ2wudW5pZm9ybTRmKHRoaXMubG9jYXRpb24sdFswXSx0WzFdLHRbMl0sdFszXSkpfSxlfShSYSksVWE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLHIpe3QuY2FsbCh0aGlzLGUsciksdGhpcy5jdXJyZW50PVd0LnRyYW5zcGFyZW50fXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7dC5yPT09dGhpcy5jdXJyZW50LnImJnQuZz09PXRoaXMuY3VycmVudC5nJiZ0LmI9PT10aGlzLmN1cnJlbnQuYiYmdC5hPT09dGhpcy5jdXJyZW50LmF8fCh0aGlzLmN1cnJlbnQ9dCx0aGlzLmdsLnVuaWZvcm00Zih0aGlzLmxvY2F0aW9uLHQucix0LmcsdC5iLHQuYSkpfSxlfShSYSkscWE9bmV3IEZsb2F0MzJBcnJheSgxNiksSGE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLHIpe3QuY2FsbCh0aGlzLGUsciksdGhpcy5jdXJyZW50PXFhfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7aWYodFsxMl0hPT10aGlzLmN1cnJlbnRbMTJdfHx0WzBdIT09dGhpcy5jdXJyZW50WzBdKXJldHVybiB0aGlzLmN1cnJlbnQ9dCx2b2lkIHRoaXMuZ2wudW5pZm9ybU1hdHJpeDRmdih0aGlzLmxvY2F0aW9uLCExLHQpO2Zvcih2YXIgZT0xO2U8MTY7ZSsrKWlmKHRbZV0hPT10aGlzLmN1cnJlbnRbZV0pe3RoaXMuY3VycmVudD10LHRoaXMuZ2wudW5pZm9ybU1hdHJpeDRmdih0aGlzLmxvY2F0aW9uLCExLHQpO2JyZWFrfX0sZX0oUmEpO2Z1bmN0aW9uIEdhKHQpe3JldHVyblt6YSgyNTUqdC5yLDI1NSp0LmcpLHphKDI1NSp0LmIsMjU1KnQuYSldfXZhciBZYT1mdW5jdGlvbih0LGUscil7dGhpcy52YWx1ZT10LHRoaXMubmFtZXM9ZSx0aGlzLnVuaWZvcm1OYW1lcz10aGlzLm5hbWVzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4idV8iK3R9KSx0aGlzLnR5cGU9cix0aGlzLm1heFZhbHVlPS0xLzB9O1lhLnByb3RvdHlwZS5kZWZpbmVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZXMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiIjZGVmaW5lIEhBU19VTklGT1JNX3VfIit0fSl9LFlhLnByb3RvdHlwZS5zZXRDb25zdGFudFBhdHRlcm5Qb3NpdGlvbnM9ZnVuY3Rpb24oKXt9LFlhLnByb3RvdHlwZS5wb3B1bGF0ZVBhaW50QXJyYXk9ZnVuY3Rpb24oKXt9LFlhLnByb3RvdHlwZS51cGRhdGVQYWludEFycmF5PWZ1bmN0aW9uKCl7fSxZYS5wcm90b3R5cGUudXBsb2FkPWZ1bmN0aW9uKCl7fSxZYS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe30sWWEucHJvdG90eXBlLnNldFVuaWZvcm1zPWZ1bmN0aW9uKHQsZSxyLG4pe2Uuc2V0KG4uY29uc3RhbnRPcih0aGlzLnZhbHVlKSl9LFlhLnByb3RvdHlwZS5nZXRCaW5kaW5nPWZ1bmN0aW9uKHQsZSl7cmV0dXJuImNvbG9yIj09PXRoaXMudHlwZT9uZXcgVWEodCxlKTpuZXcgQmEodCxlKX0sWWEuc2VyaWFsaXplPWZ1bmN0aW9uKHQpe3ZhciBlPXQudmFsdWUscj10Lm5hbWVzLG49dC50eXBlO3JldHVybnt2YWx1ZTp2bihlKSxuYW1lczpyLHR5cGU6bn19LFlhLmRlc2VyaWFsaXplPWZ1bmN0aW9uKHQpe3ZhciBlPXQudmFsdWUscj10Lm5hbWVzLG49dC50eXBlO3JldHVybiBuZXcgWWEobW4oZSkscixuKX07dmFyIFdhPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLnZhbHVlPXQsdGhpcy5uYW1lcz1lLHRoaXMudW5pZm9ybU5hbWVzPXRoaXMubmFtZXMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiJ1XyIrdH0pLHRoaXMudHlwZT1yLHRoaXMubWF4VmFsdWU9LTEvMCx0aGlzLnBhdHRlcm5Qb3NpdGlvbnM9e3BhdHRlcm5UbzpudWxsLHBhdHRlcm5Gcm9tOm51bGx9fTtXYS5wcm90b3R5cGUuZGVmaW5lcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5hbWVzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4iI2RlZmluZSBIQVNfVU5JRk9STV91XyIrdH0pfSxXYS5wcm90b3R5cGUucG9wdWxhdGVQYWludEFycmF5PWZ1bmN0aW9uKCl7fSxXYS5wcm90b3R5cGUudXBkYXRlUGFpbnRBcnJheT1mdW5jdGlvbigpe30sV2EucHJvdG90eXBlLnVwbG9hZD1mdW5jdGlvbigpe30sV2EucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt9LFdhLnByb3RvdHlwZS5zZXRDb25zdGFudFBhdHRlcm5Qb3NpdGlvbnM9ZnVuY3Rpb24odCxlKXt0aGlzLnBhdHRlcm5Qb3NpdGlvbnMucGF0dGVyblRvPXQudGxicix0aGlzLnBhdHRlcm5Qb3NpdGlvbnMucGF0dGVybkZyb209ZS50bGJyfSxXYS5wcm90b3R5cGUuc2V0VW5pZm9ybXM9ZnVuY3Rpb24odCxlLHIsbixhKXt2YXIgaT10aGlzLnBhdHRlcm5Qb3NpdGlvbnM7InVfcGF0dGVybl90byI9PT1hJiZpLnBhdHRlcm5UbyYmZS5zZXQoaS5wYXR0ZXJuVG8pLCJ1X3BhdHRlcm5fZnJvbSI9PT1hJiZpLnBhdHRlcm5Gcm9tJiZlLnNldChpLnBhdHRlcm5Gcm9tKX0sV2EucHJvdG90eXBlLmdldEJpbmRpbmc9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFZhKHQsZSl9O3ZhciBYYT1mdW5jdGlvbih0LGUscixuKXt0aGlzLmV4cHJlc3Npb249dCx0aGlzLm5hbWVzPWUsdGhpcy50eXBlPXIsdGhpcy51bmlmb3JtTmFtZXM9dGhpcy5uYW1lcy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuImFfIit0fSksdGhpcy5tYXhWYWx1ZT0tMS8wLHRoaXMucGFpbnRWZXJ0ZXhBdHRyaWJ1dGVzPWUubWFwKGZ1bmN0aW9uKHQpe3JldHVybntuYW1lOiJhXyIrdCx0eXBlOiJGbG9hdDMyIixjb21wb25lbnRzOiJjb2xvciI9PT1yPzI6MSxvZmZzZXQ6MH19KSx0aGlzLnBhaW50VmVydGV4QXJyYXk9bmV3IG59O1hhLnByb3RvdHlwZS5kZWZpbmVzPWZ1bmN0aW9uKCl7cmV0dXJuW119LFhhLnByb3RvdHlwZS5zZXRDb25zdGFudFBhdHRlcm5Qb3NpdGlvbnM9ZnVuY3Rpb24oKXt9LFhhLnByb3RvdHlwZS5wb3B1bGF0ZVBhaW50QXJyYXk9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9dGhpcy5wYWludFZlcnRleEFycmF5LGk9YS5sZW5ndGg7YS5yZXNlcnZlKHQpO3ZhciBvPXRoaXMuZXhwcmVzc2lvbi5ldmFsdWF0ZShuZXcgUG4oMCksZSx7fSxuKTtpZigiY29sb3IiPT09dGhpcy50eXBlKWZvcih2YXIgcz1HYShvKSxsPWk7bDx0O2wrKylhLmVtcGxhY2VCYWNrKHNbMF0sc1sxXSk7ZWxzZXtmb3IodmFyIGM9aTtjPHQ7YysrKWEuZW1wbGFjZUJhY2sobyk7dGhpcy5tYXhWYWx1ZT1NYXRoLm1heCh0aGlzLm1heFZhbHVlLG8pfX0sWGEucHJvdG90eXBlLnVwZGF0ZVBhaW50QXJyYXk9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9dGhpcy5wYWludFZlcnRleEFycmF5LGk9dGhpcy5leHByZXNzaW9uLmV2YWx1YXRlKHt6b29tOjB9LHIsbik7aWYoImNvbG9yIj09PXRoaXMudHlwZSlmb3IodmFyIG89R2EoaSkscz10O3M8ZTtzKyspYS5lbXBsYWNlKHMsb1swXSxvWzFdKTtlbHNle2Zvcih2YXIgbD10O2w8ZTtsKyspYS5lbXBsYWNlKGwsaSk7dGhpcy5tYXhWYWx1ZT1NYXRoLm1heCh0aGlzLm1heFZhbHVlLGkpfX0sWGEucHJvdG90eXBlLnVwbG9hZD1mdW5jdGlvbih0KXt0aGlzLnBhaW50VmVydGV4QXJyYXkmJnRoaXMucGFpbnRWZXJ0ZXhBcnJheS5hcnJheUJ1ZmZlciYmKHRoaXMucGFpbnRWZXJ0ZXhCdWZmZXImJnRoaXMucGFpbnRWZXJ0ZXhCdWZmZXIuYnVmZmVyP3RoaXMucGFpbnRWZXJ0ZXhCdWZmZXIudXBkYXRlRGF0YSh0aGlzLnBhaW50VmVydGV4QXJyYXkpOnRoaXMucGFpbnRWZXJ0ZXhCdWZmZXI9dC5jcmVhdGVWZXJ0ZXhCdWZmZXIodGhpcy5wYWludFZlcnRleEFycmF5LHRoaXMucGFpbnRWZXJ0ZXhBdHRyaWJ1dGVzLHRoaXMuZXhwcmVzc2lvbi5pc1N0YXRlRGVwZW5kZW50KSl9LFhhLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5wYWludFZlcnRleEJ1ZmZlciYmdGhpcy5wYWludFZlcnRleEJ1ZmZlci5kZXN0cm95KCl9LFhhLnByb3RvdHlwZS5zZXRVbmlmb3Jtcz1mdW5jdGlvbih0LGUpe2Uuc2V0KDApfSxYYS5wcm90b3R5cGUuZ2V0QmluZGluZz1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgQmEodCxlKX07dmFyIFphPWZ1bmN0aW9uKHQsZSxyLG4sYSxpKXt0aGlzLmV4cHJlc3Npb249dCx0aGlzLm5hbWVzPWUsdGhpcy51bmlmb3JtTmFtZXM9dGhpcy5uYW1lcy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuInVfIit0KyJfdCJ9KSx0aGlzLnR5cGU9cix0aGlzLnVzZUludGVnZXJab29tPW4sdGhpcy56b29tPWEsdGhpcy5tYXhWYWx1ZT0tMS8wO3ZhciBvPWk7dGhpcy5wYWludFZlcnRleEF0dHJpYnV0ZXM9ZS5tYXAoZnVuY3Rpb24odCl7cmV0dXJue25hbWU6ImFfIit0LHR5cGU6IkZsb2F0MzIiLGNvbXBvbmVudHM6ImNvbG9yIj09PXI/NDoyLG9mZnNldDowfX0pLHRoaXMucGFpbnRWZXJ0ZXhBcnJheT1uZXcgb307WmEucHJvdG90eXBlLmRlZmluZXM9ZnVuY3Rpb24oKXtyZXR1cm5bXX0sWmEucHJvdG90eXBlLnNldENvbnN0YW50UGF0dGVyblBvc2l0aW9ucz1mdW5jdGlvbigpe30sWmEucHJvdG90eXBlLnBvcHVsYXRlUGFpbnRBcnJheT1mdW5jdGlvbih0LGUscixuKXt2YXIgYT10aGlzLnBhaW50VmVydGV4QXJyYXksaT1hLmxlbmd0aDthLnJlc2VydmUodCk7dmFyIG89dGhpcy5leHByZXNzaW9uLmV2YWx1YXRlKG5ldyBQbih0aGlzLnpvb20pLGUse30sbikscz10aGlzLmV4cHJlc3Npb24uZXZhbHVhdGUobmV3IFBuKHRoaXMuem9vbSsxKSxlLHt9LG4pO2lmKCJjb2xvciI9PT10aGlzLnR5cGUpZm9yKHZhciBsPUdhKG8pLGM9R2EocyksdT1pO3U8dDt1KyspYS5lbXBsYWNlQmFjayhsWzBdLGxbMV0sY1swXSxjWzFdKTtlbHNle2Zvcih2YXIgaD1pO2g8dDtoKyspYS5lbXBsYWNlQmFjayhvLHMpO3RoaXMubWF4VmFsdWU9TWF0aC5tYXgodGhpcy5tYXhWYWx1ZSxvLHMpfX0sWmEucHJvdG90eXBlLnVwZGF0ZVBhaW50QXJyYXk9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9dGhpcy5wYWludFZlcnRleEFycmF5LGk9dGhpcy5leHByZXNzaW9uLmV2YWx1YXRlKHt6b29tOnRoaXMuem9vbX0scixuKSxvPXRoaXMuZXhwcmVzc2lvbi5ldmFsdWF0ZSh7em9vbTp0aGlzLnpvb20rMX0scixuKTtpZigiY29sb3IiPT09dGhpcy50eXBlKWZvcih2YXIgcz1HYShpKSxsPUdhKG8pLGM9dDtjPGU7YysrKWEuZW1wbGFjZShjLHNbMF0sc1sxXSxsWzBdLGxbMV0pO2Vsc2V7Zm9yKHZhciB1PXQ7dTxlO3UrKylhLmVtcGxhY2UodSxpLG8pO3RoaXMubWF4VmFsdWU9TWF0aC5tYXgodGhpcy5tYXhWYWx1ZSxpLG8pfX0sWmEucHJvdG90eXBlLnVwbG9hZD1mdW5jdGlvbih0KXt0aGlzLnBhaW50VmVydGV4QXJyYXkmJnRoaXMucGFpbnRWZXJ0ZXhBcnJheS5hcnJheUJ1ZmZlciYmKHRoaXMucGFpbnRWZXJ0ZXhCdWZmZXImJnRoaXMucGFpbnRWZXJ0ZXhCdWZmZXIuYnVmZmVyP3RoaXMucGFpbnRWZXJ0ZXhCdWZmZXIudXBkYXRlRGF0YSh0aGlzLnBhaW50VmVydGV4QXJyYXkpOnRoaXMucGFpbnRWZXJ0ZXhCdWZmZXI9dC5jcmVhdGVWZXJ0ZXhCdWZmZXIodGhpcy5wYWludFZlcnRleEFycmF5LHRoaXMucGFpbnRWZXJ0ZXhBdHRyaWJ1dGVzLHRoaXMuZXhwcmVzc2lvbi5pc1N0YXRlRGVwZW5kZW50KSl9LFphLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5wYWludFZlcnRleEJ1ZmZlciYmdGhpcy5wYWludFZlcnRleEJ1ZmZlci5kZXN0cm95KCl9LFphLnByb3RvdHlwZS5pbnRlcnBvbGF0aW9uRmFjdG9yPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnVzZUludGVnZXJab29tP3RoaXMuZXhwcmVzc2lvbi5pbnRlcnBvbGF0aW9uRmFjdG9yKE1hdGguZmxvb3IodCksdGhpcy56b29tLHRoaXMuem9vbSsxKTp0aGlzLmV4cHJlc3Npb24uaW50ZXJwb2xhdGlvbkZhY3Rvcih0LHRoaXMuem9vbSx0aGlzLnpvb20rMSl9LFphLnByb3RvdHlwZS5zZXRVbmlmb3Jtcz1mdW5jdGlvbih0LGUscil7ZS5zZXQodGhpcy5pbnRlcnBvbGF0aW9uRmFjdG9yKHIuem9vbSkpfSxaYS5wcm90b3R5cGUuZ2V0QmluZGluZz1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgQmEodCxlKX07dmFyIEphPWZ1bmN0aW9uKHQsZSxyLG4sYSxpLG8pe3RoaXMuZXhwcmVzc2lvbj10LHRoaXMubmFtZXM9ZSx0aGlzLnR5cGU9cix0aGlzLnVuaWZvcm1OYW1lcz10aGlzLm5hbWVzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4idV8iK3QrIl90In0pLHRoaXMudXNlSW50ZWdlclpvb209bix0aGlzLnpvb209YSx0aGlzLm1heFZhbHVlPS0xLzAsdGhpcy5sYXllcklkPW8sdGhpcy5wYWludFZlcnRleEF0dHJpYnV0ZXM9ZS5tYXAoZnVuY3Rpb24odCl7cmV0dXJue25hbWU6ImFfIit0LHR5cGU6IlVpbnQxNiIsY29tcG9uZW50czo0LG9mZnNldDowfX0pLHRoaXMuem9vbUluUGFpbnRWZXJ0ZXhBcnJheT1uZXcgaSx0aGlzLnpvb21PdXRQYWludFZlcnRleEFycmF5PW5ldyBpfTtKYS5wcm90b3R5cGUuZGVmaW5lcz1mdW5jdGlvbigpe3JldHVybltdfSxKYS5wcm90b3R5cGUuc2V0Q29uc3RhbnRQYXR0ZXJuUG9zaXRpb25zPWZ1bmN0aW9uKCl7fSxKYS5wcm90b3R5cGUucG9wdWxhdGVQYWludEFycmF5PWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLnpvb21JblBhaW50VmVydGV4QXJyYXksYT10aGlzLnpvb21PdXRQYWludFZlcnRleEFycmF5LGk9dGhpcy5sYXllcklkLG89bi5sZW5ndGg7aWYobi5yZXNlcnZlKHQpLGEucmVzZXJ2ZSh0KSxyJiZlLnBhdHRlcm5zJiZlLnBhdHRlcm5zW2ldKXt2YXIgcz1lLnBhdHRlcm5zW2ldLGw9cy5taW4sYz1zLm1pZCx1PXMubWF4LGg9cltsXSxmPXJbY10scD1yW3VdO2lmKCFofHwhZnx8IXApcmV0dXJuO2Zvcih2YXIgZD1vO2Q8dDtkKyspbi5lbXBsYWNlQmFjayhmLnRsWzBdLGYudGxbMV0sZi5iclswXSxmLmJyWzFdLGgudGxbMF0saC50bFsxXSxoLmJyWzBdLGguYnJbMV0pLGEuZW1wbGFjZUJhY2soZi50bFswXSxmLnRsWzFdLGYuYnJbMF0sZi5iclsxXSxwLnRsWzBdLHAudGxbMV0scC5iclswXSxwLmJyWzFdKX19LEphLnByb3RvdHlwZS51cGRhdGVQYWludEFycmF5PWZ1bmN0aW9uKHQsZSxyLG4sYSl7dmFyIGk9dGhpcy56b29tSW5QYWludFZlcnRleEFycmF5LG89dGhpcy56b29tT3V0UGFpbnRWZXJ0ZXhBcnJheSxzPXRoaXMubGF5ZXJJZDtpZihhJiZyLnBhdHRlcm5zJiZyLnBhdHRlcm5zW3NdKXt2YXIgbD1yLnBhdHRlcm5zW3NdLGM9bC5taW4sdT1sLm1pZCxoPWwubWF4LGY9YVtjXSxwPWFbdV0sZD1hW2hdO2lmKCFmfHwhcHx8IWQpcmV0dXJuO2Zvcih2YXIgZz10O2c8ZTtnKyspaS5lbXBsYWNlKGcscC50bFswXSxwLnRsWzFdLHAuYnJbMF0scC5iclsxXSxmLnRsWzBdLGYudGxbMV0sZi5iclswXSxmLmJyWzFdKSxvLmVtcGxhY2UoZyxwLnRsWzBdLHAudGxbMV0scC5iclswXSxwLmJyWzFdLGQudGxbMF0sZC50bFsxXSxkLmJyWzBdLGQuYnJbMV0pfX0sSmEucHJvdG90eXBlLnVwbG9hZD1mdW5jdGlvbih0KXt0aGlzLnpvb21JblBhaW50VmVydGV4QXJyYXkmJnRoaXMuem9vbUluUGFpbnRWZXJ0ZXhBcnJheS5hcnJheUJ1ZmZlciYmdGhpcy56b29tT3V0UGFpbnRWZXJ0ZXhBcnJheSYmdGhpcy56b29tT3V0UGFpbnRWZXJ0ZXhBcnJheS5hcnJheUJ1ZmZlciYmKHRoaXMuem9vbUluUGFpbnRWZXJ0ZXhCdWZmZXI9dC5jcmVhdGVWZXJ0ZXhCdWZmZXIodGhpcy56b29tSW5QYWludFZlcnRleEFycmF5LHRoaXMucGFpbnRWZXJ0ZXhBdHRyaWJ1dGVzLHRoaXMuZXhwcmVzc2lvbi5pc1N0YXRlRGVwZW5kZW50KSx0aGlzLnpvb21PdXRQYWludFZlcnRleEJ1ZmZlcj10LmNyZWF0ZVZlcnRleEJ1ZmZlcih0aGlzLnpvb21PdXRQYWludFZlcnRleEFycmF5LHRoaXMucGFpbnRWZXJ0ZXhBdHRyaWJ1dGVzLHRoaXMuZXhwcmVzc2lvbi5pc1N0YXRlRGVwZW5kZW50KSl9LEphLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy56b29tT3V0UGFpbnRWZXJ0ZXhCdWZmZXImJnRoaXMuem9vbU91dFBhaW50VmVydGV4QnVmZmVyLmRlc3Ryb3koKSx0aGlzLnpvb21JblBhaW50VmVydGV4QnVmZmVyJiZ0aGlzLnpvb21JblBhaW50VmVydGV4QnVmZmVyLmRlc3Ryb3koKX0sSmEucHJvdG90eXBlLnNldFVuaWZvcm1zPWZ1bmN0aW9uKHQsZSl7ZS5zZXQoMCl9LEphLnByb3RvdHlwZS5nZXRCaW5kaW5nPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBCYSh0LGUpfTt2YXIgS2E9ZnVuY3Rpb24oKXt0aGlzLmJpbmRlcnM9e30sdGhpcy5jYWNoZUtleT0iIix0aGlzLl9idWZmZXJzPVtdLHRoaXMuX2ZlYXR1cmVNYXA9bmV3IElhLHRoaXMuX2J1ZmZlck9mZnNldD0wfTtLYS5jcmVhdGVEeW5hbWljPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1uZXcgS2EsYT1bXTtmb3IodmFyIGkgaW4gdC5wYWludC5fdmFsdWVzKWlmKHIoaSkpe3ZhciBvPXQucGFpbnQuZ2V0KGkpO2lmKG8gaW5zdGFuY2VvZiBCbiYmdXIoby5wcm9wZXJ0eS5zcGVjaWZpY2F0aW9uKSl7dmFyIHM9JGEoaSx0LnR5cGUpLGw9by5wcm9wZXJ0eS5zcGVjaWZpY2F0aW9uLnR5cGUsYz1vLnByb3BlcnR5LnVzZUludGVnZXJab29tO2lmKCJjcm9zcy1mYWRlZCI9PT1vLnByb3BlcnR5LnNwZWNpZmljYXRpb25bInByb3BlcnR5LXR5cGUiXXx8ImNyb3NzLWZhZGVkLWRhdGEtZHJpdmVuIj09PW8ucHJvcGVydHkuc3BlY2lmaWNhdGlvblsicHJvcGVydHktdHlwZSJdKWlmKCJjb25zdGFudCI9PT1vLnZhbHVlLmtpbmQpbi5iaW5kZXJzW2ldPW5ldyBXYShvLnZhbHVlLnZhbHVlLHMsbCksYS5wdXNoKCIvdV8iK2kpO2Vsc2V7dmFyIHU9dGkoaSxsLCJzb3VyY2UiKTtuLmJpbmRlcnNbaV09bmV3IEphKG8udmFsdWUscyxsLGMsZSx1LHQuaWQpLGEucHVzaCgiL2FfIitpKX1lbHNlIGlmKCJjb25zdGFudCI9PT1vLnZhbHVlLmtpbmQpbi5iaW5kZXJzW2ldPW5ldyBZYShvLnZhbHVlLnZhbHVlLHMsbCksYS5wdXNoKCIvdV8iK2kpO2Vsc2UgaWYoInNvdXJjZSI9PT1vLnZhbHVlLmtpbmQpe3ZhciBoPXRpKGksbCwic291cmNlIik7bi5iaW5kZXJzW2ldPW5ldyBYYShvLnZhbHVlLHMsbCxoKSxhLnB1c2goIi9hXyIraSl9ZWxzZXt2YXIgZj10aShpLGwsImNvbXBvc2l0ZSIpO24uYmluZGVyc1tpXT1uZXcgWmEoby52YWx1ZSxzLGwsYyxlLGYpLGEucHVzaCgiL3pfIitpKX19fXJldHVybiBuLmNhY2hlS2V5PWEuc29ydCgpLmpvaW4oIiIpLG59LEthLnByb3RvdHlwZS5wb3B1bGF0ZVBhaW50QXJyYXlzPWZ1bmN0aW9uKHQsZSxyLG4sYSl7Zm9yKHZhciBpIGluIHRoaXMuYmluZGVycyl0aGlzLmJpbmRlcnNbaV0ucG9wdWxhdGVQYWludEFycmF5KHQsZSxuLGEpO3ZvaWQgMCE9PWUuaWQmJnRoaXMuX2ZlYXR1cmVNYXAuYWRkKCtlLmlkLHIsdGhpcy5fYnVmZmVyT2Zmc2V0LHQpLHRoaXMuX2J1ZmZlck9mZnNldD10fSxLYS5wcm90b3R5cGUuc2V0Q29uc3RhbnRQYXR0ZXJuUG9zaXRpb25zPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByIGluIHRoaXMuYmluZGVycyl0aGlzLmJpbmRlcnNbcl0uc2V0Q29uc3RhbnRQYXR0ZXJuUG9zaXRpb25zKHQsZSl9LEthLnByb3RvdHlwZS51cGRhdGVQYWludEFycmF5cz1mdW5jdGlvbih0LGUscixuKXt2YXIgYT0hMTtmb3IodmFyIGkgaW4gdClmb3IodmFyIG89MCxzPXRoaXMuX2ZlYXR1cmVNYXAuZ2V0UG9zaXRpb25zKCtpKTtvPHMubGVuZ3RoO28rPTEpe3ZhciBsPXNbb10sYz1lLmZlYXR1cmUobC5pbmRleCk7Zm9yKHZhciB1IGluIHRoaXMuYmluZGVycyl7dmFyIGg9dGhpcy5iaW5kZXJzW3VdO2lmKCEoaCBpbnN0YW5jZW9mIFlhfHxoIGluc3RhbmNlb2YgV2EpJiYhMD09PWguZXhwcmVzc2lvbi5pc1N0YXRlRGVwZW5kZW50KXt2YXIgZj1yLnBhaW50LmdldCh1KTtoLmV4cHJlc3Npb249Zi52YWx1ZSxoLnVwZGF0ZVBhaW50QXJyYXkobC5zdGFydCxsLmVuZCxjLHRbaV0sbiksYT0hMH19fXJldHVybiBhfSxLYS5wcm90b3R5cGUuZGVmaW5lcz1mdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzLmJpbmRlcnMpdC5wdXNoLmFwcGx5KHQsdGhpcy5iaW5kZXJzW2VdLmRlZmluZXMoKSk7cmV0dXJuIHR9LEthLnByb3RvdHlwZS5nZXRQYWludFZlcnRleEJ1ZmZlcnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYnVmZmVyc30sS2EucHJvdG90eXBlLmdldFVuaWZvcm1zPWZ1bmN0aW9uKHQsZSl7dmFyIHI9W107Zm9yKHZhciBuIGluIHRoaXMuYmluZGVycylmb3IodmFyIGE9dGhpcy5iaW5kZXJzW25dLGk9MCxvPWEudW5pZm9ybU5hbWVzO2k8by5sZW5ndGg7aSs9MSl7dmFyIHM9b1tpXTtpZihlW3NdKXt2YXIgbD1hLmdldEJpbmRpbmcodCxlW3NdKTtyLnB1c2goe25hbWU6cyxwcm9wZXJ0eTpuLGJpbmRpbmc6bH0pfX1yZXR1cm4gcn0sS2EucHJvdG90eXBlLnNldFVuaWZvcm1zPWZ1bmN0aW9uKHQsZSxyLG4pe2Zvcih2YXIgYT0wLGk9ZTthPGkubGVuZ3RoO2ErPTEpe3ZhciBvPWlbYV0scz1vLm5hbWUsbD1vLnByb3BlcnR5LGM9by5iaW5kaW5nO3RoaXMuYmluZGVyc1tsXS5zZXRVbmlmb3Jtcyh0LGMsbixyLmdldChsKSxzKX19LEthLnByb3RvdHlwZS51cGRhdGVQYXR0ZXJuUGFpbnRCdWZmZXJzPWZ1bmN0aW9uKHQpe3ZhciBlPVtdO2Zvcih2YXIgciBpbiB0aGlzLmJpbmRlcnMpe3ZhciBuPXRoaXMuYmluZGVyc1tyXTtpZihuIGluc3RhbmNlb2YgSmEpe3ZhciBhPTI9PT10LmZyb21TY2FsZT9uLnpvb21JblBhaW50VmVydGV4QnVmZmVyOm4uem9vbU91dFBhaW50VmVydGV4QnVmZmVyO2EmJmUucHVzaChhKX1lbHNlKG4gaW5zdGFuY2VvZiBYYXx8biBpbnN0YW5jZW9mIFphKSYmbi5wYWludFZlcnRleEJ1ZmZlciYmZS5wdXNoKG4ucGFpbnRWZXJ0ZXhCdWZmZXIpfXRoaXMuX2J1ZmZlcnM9ZX0sS2EucHJvdG90eXBlLnVwbG9hZD1mdW5jdGlvbih0KXtmb3IodmFyIGUgaW4gdGhpcy5iaW5kZXJzKXRoaXMuYmluZGVyc1tlXS51cGxvYWQodCk7dmFyIHI9W107Zm9yKHZhciBuIGluIHRoaXMuYmluZGVycyl7dmFyIGE9dGhpcy5iaW5kZXJzW25dOyhhIGluc3RhbmNlb2YgWGF8fGEgaW5zdGFuY2VvZiBaYSkmJmEucGFpbnRWZXJ0ZXhCdWZmZXImJnIucHVzaChhLnBhaW50VmVydGV4QnVmZmVyKX10aGlzLl9idWZmZXJzPXJ9LEthLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMuYmluZGVycyl0aGlzLmJpbmRlcnNbdF0uZGVzdHJveSgpfTt2YXIgUWE9ZnVuY3Rpb24odCxlLHIsbil7dm9pZCAwPT09biYmKG49ZnVuY3Rpb24oKXtyZXR1cm4hMH0pLHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zPXt9O2Zvcih2YXIgYT0wLGk9ZTthPGkubGVuZ3RoO2ErPTEpe3ZhciBvPWlbYV07dGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnNbby5pZF09S2EuY3JlYXRlRHluYW1pYyhvLHIsbiksdGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnNbby5pZF0ubGF5b3V0QXR0cmlidXRlcz10fXRoaXMubmVlZHNVcGxvYWQ9ITF9O2Z1bmN0aW9uICRhKHQsZSl7cmV0dXJueyJ0ZXh0LW9wYWNpdHkiOlsib3BhY2l0eSJdLCJpY29uLW9wYWNpdHkiOlsib3BhY2l0eSJdLCJ0ZXh0LWNvbG9yIjpbImZpbGxfY29sb3IiXSwiaWNvbi1jb2xvciI6WyJmaWxsX2NvbG9yIl0sInRleHQtaGFsby1jb2xvciI6WyJoYWxvX2NvbG9yIl0sImljb24taGFsby1jb2xvciI6WyJoYWxvX2NvbG9yIl0sInRleHQtaGFsby1ibHVyIjpbImhhbG9fYmx1ciJdLCJpY29uLWhhbG8tYmx1ciI6WyJoYWxvX2JsdXIiXSwidGV4dC1oYWxvLXdpZHRoIjpbImhhbG9fd2lkdGgiXSwiaWNvbi1oYWxvLXdpZHRoIjpbImhhbG9fd2lkdGgiXSwibGluZS1nYXAtd2lkdGgiOlsiZ2Fwd2lkdGgiXSwibGluZS1wYXR0ZXJuIjpbInBhdHRlcm5fdG8iLCJwYXR0ZXJuX2Zyb20iXSwiZmlsbC1wYXR0ZXJuIjpbInBhdHRlcm5fdG8iLCJwYXR0ZXJuX2Zyb20iXSwiZmlsbC1leHRydXNpb24tcGF0dGVybiI6WyJwYXR0ZXJuX3RvIiwicGF0dGVybl9mcm9tIl19W3RdfHxbdC5yZXBsYWNlKGUrIi0iLCIiKS5yZXBsYWNlKC8tL2csIl8iKV19ZnVuY3Rpb24gdGkodCxlLHIpe3ZhciBuPXtjb2xvcjp7c291cmNlOm1hLGNvbXBvc2l0ZTp5YX0sbnVtYmVyOntzb3VyY2U6aGEsY29tcG9zaXRlOm1hfX0sYT1mdW5jdGlvbih0KXtyZXR1cm57ImxpbmUtcGF0dGVybiI6e3NvdXJjZTpyYSxjb21wb3NpdGU6cmF9LCJmaWxsLXBhdHRlcm4iOntzb3VyY2U6cmEsY29tcG9zaXRlOnJhfSwiZmlsbC1leHRydXNpb24tcGF0dGVybiI6e3NvdXJjZTpyYSxjb21wb3NpdGU6cmF9fVt0XX0odCk7cmV0dXJuIGEmJmFbcl18fG5bZV1bcl19UWEucHJvdG90eXBlLnBvcHVsYXRlUGFpbnRBcnJheXM9ZnVuY3Rpb24odCxlLHIsbixhKXtmb3IodmFyIGkgaW4gdGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnMpdGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnNbaV0ucG9wdWxhdGVQYWludEFycmF5cyh0LGUscixuLGEpO3RoaXMubmVlZHNVcGxvYWQ9ITB9LFFhLnByb3RvdHlwZS51cGRhdGVQYWludEFycmF5cz1mdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGE9MCxpPXI7YTxpLmxlbmd0aDthKz0xKXt2YXIgbz1pW2FdO3RoaXMubmVlZHNVcGxvYWQ9dGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnNbby5pZF0udXBkYXRlUGFpbnRBcnJheXModCxlLG8sbil8fHRoaXMubmVlZHNVcGxvYWR9fSxRYS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnByb2dyYW1Db25maWd1cmF0aW9uc1t0XX0sUWEucHJvdG90eXBlLnVwbG9hZD1mdW5jdGlvbih0KXtpZih0aGlzLm5lZWRzVXBsb2FkKXtmb3IodmFyIGUgaW4gdGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnMpdGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnNbZV0udXBsb2FkKHQpO3RoaXMubmVlZHNVcGxvYWQ9ITF9fSxRYS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe2Zvcih2YXIgdCBpbiB0aGlzLnByb2dyYW1Db25maWd1cmF0aW9ucyl0aGlzLnByb2dyYW1Db25maWd1cmF0aW9uc1t0XS5kZXN0cm95KCl9LGRuKCJDb25zdGFudEJpbmRlciIsWWEpLGRuKCJDcm9zc0ZhZGVkQ29uc3RhbnRCaW5kZXIiLFdhKSxkbigiU291cmNlRXhwcmVzc2lvbkJpbmRlciIsWGEpLGRuKCJDcm9zc0ZhZGVkQ29tcG9zaXRlQmluZGVyIixKYSksZG4oIkNvbXBvc2l0ZUV4cHJlc3Npb25CaW5kZXIiLFphKSxkbigiUHJvZ3JhbUNvbmZpZ3VyYXRpb24iLEthLHtvbWl0OlsiX2J1ZmZlcnMiXX0pLGRuKCJQcm9ncmFtQ29uZmlndXJhdGlvblNldCIsUWEpO3ZhciBlaT04MTkyLHJpPSgxNSx7bWluOi0xKk1hdGgucG93KDIsMTQpLG1heDpNYXRoLnBvdygyLDE0KS0xfSk7ZnVuY3Rpb24gbmkodCl7Zm9yKHZhciBlPWVpL3QuZXh0ZW50LHI9dC5sb2FkR2VvbWV0cnkoKSxuPTA7bjxyLmxlbmd0aDtuKyspZm9yKHZhciBhPXJbbl0saT0wO2k8YS5sZW5ndGg7aSsrKXt2YXIgbz1hW2ldO28ueD1NYXRoLnJvdW5kKG8ueCplKSxvLnk9TWF0aC5yb3VuZChvLnkqZSksKG8ueDxyaS5taW58fG8ueD5yaS5tYXh8fG8ueTxyaS5taW58fG8ueT5yaS5tYXgpJiYodygiR2VvbWV0cnkgZXhjZWVkcyBhbGxvd2VkIGV4dGVudCwgcmVkdWNlIHlvdXIgdmVjdG9yIHRpbGUgYnVmZmVyIHNpemUiKSxvLng9YyhvLngscmkubWluLHJpLm1heCksby55PWMoby55LHJpLm1pbixyaS5tYXgpKX1yZXR1cm4gcn1mdW5jdGlvbiBhaSh0LGUscixuLGEpe3QuZW1wbGFjZUJhY2soMiplKyhuKzEpLzIsMipyKyhhKzEpLzIpfXZhciBpaT1mdW5jdGlvbih0KXt0aGlzLnpvb209dC56b29tLHRoaXMub3ZlcnNjYWxpbmc9dC5vdmVyc2NhbGluZyx0aGlzLmxheWVycz10LmxheWVycyx0aGlzLmxheWVySWRzPXRoaXMubGF5ZXJzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZH0pLHRoaXMuaW5kZXg9dC5pbmRleCx0aGlzLmhhc1BhdHRlcm49ITEsdGhpcy5sYXlvdXRWZXJ0ZXhBcnJheT1uZXcgUW4sdGhpcy5pbmRleEFycmF5PW5ldyBkYSx0aGlzLnNlZ21lbnRzPW5ldyBPYSx0aGlzLnByb2dyYW1Db25maWd1cmF0aW9ucz1uZXcgUWEoUGEsdC5sYXllcnMsdC56b29tKSx0aGlzLnN0YXRlRGVwZW5kZW50TGF5ZXJJZHM9dGhpcy5sYXllcnMuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlzU3RhdGVEZXBlbmRlbnQoKX0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZH0pfTtmdW5jdGlvbiBvaSh0LGUpe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKWlmKGdpKGUsdFtyXSkpcmV0dXJuITA7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspaWYoZ2kodCxlW25dKSlyZXR1cm4hMDtyZXR1cm4hIXVpKHQsZSl9ZnVuY3Rpb24gc2kodCxlLHIpe3JldHVybiEhZ2kodCxlKXx8ISFmaShlLHQscil9ZnVuY3Rpb24gbGkodCxlKXtpZigxPT09dC5sZW5ndGgpcmV0dXJuIGRpKGUsdFswXSk7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspZm9yKHZhciBuPWVbcl0sYT0wO2E8bi5sZW5ndGg7YSsrKWlmKGdpKHQsblthXSkpcmV0dXJuITA7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspaWYoZGkoZSx0W2ldKSlyZXR1cm4hMDtmb3IodmFyIG89MDtvPGUubGVuZ3RoO28rKylpZih1aSh0LGVbb10pKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIGNpKHQsZSxyKXtpZih0Lmxlbmd0aD4xKXtpZih1aSh0LGUpKXJldHVybiEwO2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKWlmKGZpKGVbbl0sdCxyKSlyZXR1cm4hMH1mb3IodmFyIGE9MDthPHQubGVuZ3RoO2ErKylpZihmaSh0W2FdLGUscikpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gdWkodCxlKXtpZigwPT09dC5sZW5ndGh8fDA9PT1lLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIHI9MDtyPHQubGVuZ3RoLTE7cisrKWZvcih2YXIgbj10W3JdLGE9dFtyKzFdLGk9MDtpPGUubGVuZ3RoLTE7aSsrKWlmKGhpKG4sYSxlW2ldLGVbaSsxXSkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gaGkodCxlLHIsbil7cmV0dXJuIGsodCxyLG4pIT09ayhlLHIsbikmJmsodCxlLHIpIT09ayh0LGUsbil9ZnVuY3Rpb24gZmkodCxlLHIpe3ZhciBuPXIqcjtpZigxPT09ZS5sZW5ndGgpcmV0dXJuIHQuZGlzdFNxcihlWzBdKTxuO2Zvcih2YXIgYT0xO2E8ZS5sZW5ndGg7YSsrKWlmKHBpKHQsZVthLTFdLGVbYV0pPG4pcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gcGkodCxlLHIpe3ZhciBuPWUuZGlzdFNxcihyKTtpZigwPT09bilyZXR1cm4gdC5kaXN0U3FyKGUpO3ZhciBhPSgodC54LWUueCkqKHIueC1lLngpKyh0LnktZS55KSooci55LWUueSkpL247cmV0dXJuIGE8MD90LmRpc3RTcXIoZSk6YT4xP3QuZGlzdFNxcihyKTp0LmRpc3RTcXIoci5zdWIoZSkuX211bHQoYSkuX2FkZChlKSl9ZnVuY3Rpb24gZGkodCxlKXtmb3IodmFyIHIsbixhLGk9ITEsbz0wO288dC5sZW5ndGg7bysrKWZvcih2YXIgcz0wLGw9KHI9dFtvXSkubGVuZ3RoLTE7czxyLmxlbmd0aDtsPXMrKyluPXJbc10sYT1yW2xdLG4ueT5lLnkhPWEueT5lLnkmJmUueDwoYS54LW4ueCkqKGUueS1uLnkpLyhhLnktbi55KStuLngmJihpPSFpKTtyZXR1cm4gaX1mdW5jdGlvbiBnaSh0LGUpe2Zvcih2YXIgcj0hMSxuPTAsYT10Lmxlbmd0aC0xO248dC5sZW5ndGg7YT1uKyspe3ZhciBpPXRbbl0sbz10W2FdO2kueT5lLnkhPW8ueT5lLnkmJmUueDwoby54LWkueCkqKGUueS1pLnkpLyhvLnktaS55KStpLngmJihyPSFyKX1yZXR1cm4gcn1mdW5jdGlvbiB2aSh0LGUscil7dmFyIG49clswXSxhPXJbMl07aWYodC54PG4ueCYmZS54PG4ueHx8dC54PmEueCYmZS54PmEueHx8dC55PG4ueSYmZS55PG4ueXx8dC55PmEueSYmZS55PmEueSlyZXR1cm4hMTt2YXIgaT1rKHQsZSxyWzBdKTtyZXR1cm4gaSE9PWsodCxlLHJbMV0pfHxpIT09ayh0LGUsclsyXSl8fGkhPT1rKHQsZSxyWzNdKX1mdW5jdGlvbiBtaSh0LGUscil7dmFyIG49ZS5wYWludC5nZXQodCkudmFsdWU7cmV0dXJuImNvbnN0YW50Ij09PW4ua2luZD9uLnZhbHVlOnIucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLmdldChlLmlkKS5iaW5kZXJzW3RdLm1heFZhbHVlfWZ1bmN0aW9uIHlpKHQpe3JldHVybiBNYXRoLnNxcnQodFswXSp0WzBdK3RbMV0qdFsxXSl9ZnVuY3Rpb24geGkodCxlLHIsbixpKXtpZighZVswXSYmIWVbMV0pcmV0dXJuIHQ7dmFyIG89YS5jb252ZXJ0KGUpLl9tdWx0KGkpOyJ2aWV3cG9ydCI9PT1yJiZvLl9yb3RhdGUoLW4pO2Zvcih2YXIgcz1bXSxsPTA7bDx0Lmxlbmd0aDtsKyspe3ZhciBjPXRbbF07cy5wdXNoKGMuc3ViKG8pKX1yZXR1cm4gc31paS5wcm90b3R5cGUucG9wdWxhdGU9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmxheWVyc1swXSxuPVtdLGE9bnVsbDsiY2lyY2xlIj09PXIudHlwZSYmKGE9ci5sYXlvdXQuZ2V0KCJjaXJjbGUtc29ydC1rZXkiKSk7Zm9yKHZhciBpPTAsbz10O2k8by5sZW5ndGg7aSs9MSl7dmFyIHM9b1tpXSxsPXMuZmVhdHVyZSxjPXMuaW5kZXgsdT1zLnNvdXJjZUxheWVySW5kZXg7aWYodGhpcy5sYXllcnNbMF0uX2ZlYXR1cmVGaWx0ZXIobmV3IFBuKHRoaXMuem9vbSksbCkpe3ZhciBoPW5pKGwpLGY9YT9hLmV2YWx1YXRlKGwse30pOnZvaWQgMCxwPXtpZDpsLmlkLHByb3BlcnRpZXM6bC5wcm9wZXJ0aWVzLHR5cGU6bC50eXBlLHNvdXJjZUxheWVySW5kZXg6dSxpbmRleDpjLGdlb21ldHJ5OmgscGF0dGVybnM6e30sc29ydEtleTpmfTtuLnB1c2gocCl9fWEmJm4uc29ydChmdW5jdGlvbih0LGUpe3JldHVybiB0LnNvcnRLZXktZS5zb3J0S2V5fSk7Zm9yKHZhciBkPTAsZz1uO2Q8Zy5sZW5ndGg7ZCs9MSl7dmFyIHY9Z1tkXSxtPXYseT1tLmdlb21ldHJ5LHg9bS5pbmRleCxiPW0uc291cmNlTGF5ZXJJbmRleCxfPXRbeF0uZmVhdHVyZTt0aGlzLmFkZEZlYXR1cmUodix5LHgpLGUuZmVhdHVyZUluZGV4Lmluc2VydChfLHkseCxiLHRoaXMuaW5kZXgpfX0saWkucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbih0LGUscil7dGhpcy5zdGF0ZURlcGVuZGVudExheWVycy5sZW5ndGgmJnRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLnVwZGF0ZVBhaW50QXJyYXlzKHQsZSx0aGlzLnN0YXRlRGVwZW5kZW50TGF5ZXJzLHIpfSxpaS5wcm90b3R5cGUuaXNFbXB0eT1mdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5sYXlvdXRWZXJ0ZXhBcnJheS5sZW5ndGh9LGlpLnByb3RvdHlwZS51cGxvYWRQZW5kaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMudXBsb2FkZWR8fHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLm5lZWRzVXBsb2FkfSxpaS5wcm90b3R5cGUudXBsb2FkPWZ1bmN0aW9uKHQpe3RoaXMudXBsb2FkZWR8fCh0aGlzLmxheW91dFZlcnRleEJ1ZmZlcj10LmNyZWF0ZVZlcnRleEJ1ZmZlcih0aGlzLmxheW91dFZlcnRleEFycmF5LFBhKSx0aGlzLmluZGV4QnVmZmVyPXQuY3JlYXRlSW5kZXhCdWZmZXIodGhpcy5pbmRleEFycmF5KSksdGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnMudXBsb2FkKHQpLHRoaXMudXBsb2FkZWQ9ITB9LGlpLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5sYXlvdXRWZXJ0ZXhCdWZmZXImJih0aGlzLmxheW91dFZlcnRleEJ1ZmZlci5kZXN0cm95KCksdGhpcy5pbmRleEJ1ZmZlci5kZXN0cm95KCksdGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnMuZGVzdHJveSgpLHRoaXMuc2VnbWVudHMuZGVzdHJveSgpKX0saWkucHJvdG90eXBlLmFkZEZlYXR1cmU9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj0wLGE9ZTtuPGEubGVuZ3RoO24rPTEpZm9yKHZhciBpPTAsbz1hW25dO2k8by5sZW5ndGg7aSs9MSl7dmFyIHM9b1tpXSxsPXMueCxjPXMueTtpZighKGw8MHx8bD49ZWl8fGM8MHx8Yz49ZWkpKXt2YXIgdT10aGlzLnNlZ21lbnRzLnByZXBhcmVTZWdtZW50KDQsdGhpcy5sYXlvdXRWZXJ0ZXhBcnJheSx0aGlzLmluZGV4QXJyYXksdC5zb3J0S2V5KSxoPXUudmVydGV4TGVuZ3RoO2FpKHRoaXMubGF5b3V0VmVydGV4QXJyYXksbCxjLC0xLC0xKSxhaSh0aGlzLmxheW91dFZlcnRleEFycmF5LGwsYywxLC0xKSxhaSh0aGlzLmxheW91dFZlcnRleEFycmF5LGwsYywxLDEpLGFpKHRoaXMubGF5b3V0VmVydGV4QXJyYXksbCxjLC0xLDEpLHRoaXMuaW5kZXhBcnJheS5lbXBsYWNlQmFjayhoLGgrMSxoKzIpLHRoaXMuaW5kZXhBcnJheS5lbXBsYWNlQmFjayhoLGgrMyxoKzIpLHUudmVydGV4TGVuZ3RoKz00LHUucHJpbWl0aXZlTGVuZ3RoKz0yfX10aGlzLnByb2dyYW1Db25maWd1cmF0aW9ucy5wb3B1bGF0ZVBhaW50QXJyYXlzKHRoaXMubGF5b3V0VmVydGV4QXJyYXkubGVuZ3RoLHQscix7fSl9LGRuKCJDaXJjbGVCdWNrZXQiLGlpLHtvbWl0OlsibGF5ZXJzIl19KTt2YXIgYmksX2k9bmV3IEduKHsiY2lyY2xlLXNvcnQta2V5IjpuZXcgVm4oVHQubGF5b3V0X2NpcmNsZVsiY2lyY2xlLXNvcnQta2V5Il0pfSksd2k9e3BhaW50Om5ldyBHbih7ImNpcmNsZS1yYWRpdXMiOm5ldyBWbihUdC5wYWludF9jaXJjbGVbImNpcmNsZS1yYWRpdXMiXSksImNpcmNsZS1jb2xvciI6bmV3IFZuKFR0LnBhaW50X2NpcmNsZVsiY2lyY2xlLWNvbG9yIl0pLCJjaXJjbGUtYmx1ciI6bmV3IFZuKFR0LnBhaW50X2NpcmNsZVsiY2lyY2xlLWJsdXIiXSksImNpcmNsZS1vcGFjaXR5IjpuZXcgVm4oVHQucGFpbnRfY2lyY2xlWyJjaXJjbGUtb3BhY2l0eSJdKSwiY2lyY2xlLXRyYW5zbGF0ZSI6bmV3IGpuKFR0LnBhaW50X2NpcmNsZVsiY2lyY2xlLXRyYW5zbGF0ZSJdKSwiY2lyY2xlLXRyYW5zbGF0ZS1hbmNob3IiOm5ldyBqbihUdC5wYWludF9jaXJjbGVbImNpcmNsZS10cmFuc2xhdGUtYW5jaG9yIl0pLCJjaXJjbGUtcGl0Y2gtc2NhbGUiOm5ldyBqbihUdC5wYWludF9jaXJjbGVbImNpcmNsZS1waXRjaC1zY2FsZSJdKSwiY2lyY2xlLXBpdGNoLWFsaWdubWVudCI6bmV3IGpuKFR0LnBhaW50X2NpcmNsZVsiY2lyY2xlLXBpdGNoLWFsaWdubWVudCJdKSwiY2lyY2xlLXN0cm9rZS13aWR0aCI6bmV3IFZuKFR0LnBhaW50X2NpcmNsZVsiY2lyY2xlLXN0cm9rZS13aWR0aCJdKSwiY2lyY2xlLXN0cm9rZS1jb2xvciI6bmV3IFZuKFR0LnBhaW50X2NpcmNsZVsiY2lyY2xlLXN0cm9rZS1jb2xvciJdKSwiY2lyY2xlLXN0cm9rZS1vcGFjaXR5IjpuZXcgVm4oVHQucGFpbnRfY2lyY2xlWyJjaXJjbGUtc3Ryb2tlLW9wYWNpdHkiXSl9KSxsYXlvdXQ6X2l9LGtpPSJ1bmRlZmluZWQiIT10eXBlb2YgRmxvYXQzMkFycmF5P0Zsb2F0MzJBcnJheTpBcnJheTtmdW5jdGlvbiBUaSh0LGUscil7dmFyIG49ZVswXSxhPWVbMV0saT1lWzJdLG89ZVszXTtyZXR1cm4gdFswXT1yWzBdKm4rcls0XSphK3JbOF0qaStyWzEyXSpvLHRbMV09clsxXSpuK3JbNV0qYStyWzldKmkrclsxM10qbyx0WzJdPXJbMl0qbityWzZdKmErclsxMF0qaStyWzE0XSpvLHRbM109clszXSpuK3JbN10qYStyWzExXSppK3JbMTVdKm8sdH1NYXRoLmh5cG90fHwoTWF0aC5oeXBvdD1mdW5jdGlvbigpe2Zvcih2YXIgdD1hcmd1bWVudHMsZT0wLHI9YXJndW1lbnRzLmxlbmd0aDtyLS07KWUrPXRbcl0qdFtyXTtyZXR1cm4gTWF0aC5zcXJ0KGUpfSksYmk9bmV3IGtpKDMpLGtpIT1GbG9hdDMyQXJyYXkmJihiaVswXT0wLGJpWzFdPTAsYmlbMl09MCksZnVuY3Rpb24oKXt2YXIgdD1uZXcga2koNCk7a2khPUZsb2F0MzJBcnJheSYmKHRbMF09MCx0WzFdPTAsdFsyXT0wLHRbM109MCl9KCk7dmFyIE1pPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dC5jYWxsKHRoaXMsZSx3aSl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmNyZWF0ZUJ1Y2tldD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGlpKHQpfSxlLnByb3RvdHlwZS5xdWVyeVJhZGl1cz1mdW5jdGlvbih0KXt2YXIgZT10O3JldHVybiBtaSgiY2lyY2xlLXJhZGl1cyIsdGhpcyxlKSttaSgiY2lyY2xlLXN0cm9rZS13aWR0aCIsdGhpcyxlKSt5aSh0aGlzLnBhaW50LmdldCgiY2lyY2xlLXRyYW5zbGF0ZSIpKX0sZS5wcm90b3R5cGUucXVlcnlJbnRlcnNlY3RzRmVhdHVyZT1mdW5jdGlvbih0LGUscixuLGEsaSxvLHMpe2Zvcih2YXIgbD14aSh0LHRoaXMucGFpbnQuZ2V0KCJjaXJjbGUtdHJhbnNsYXRlIiksdGhpcy5wYWludC5nZXQoImNpcmNsZS10cmFuc2xhdGUtYW5jaG9yIiksaS5hbmdsZSxvKSxjPXRoaXMucGFpbnQuZ2V0KCJjaXJjbGUtcmFkaXVzIikuZXZhbHVhdGUoZSxyKSt0aGlzLnBhaW50LmdldCgiY2lyY2xlLXN0cm9rZS13aWR0aCIpLmV2YWx1YXRlKGUsciksdT0ibWFwIj09PXRoaXMucGFpbnQuZ2V0KCJjaXJjbGUtcGl0Y2gtYWxpZ25tZW50IiksaD11P2w6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIEFpKHQsZSl9KX0oMCxzKSxmPXU/YypvOmMscD0wLGQ9bjtwPGQubGVuZ3RoO3ArPTEpZm9yKHZhciBnPTAsdj1kW3BdO2c8di5sZW5ndGg7Zys9MSl7dmFyIG09dltnXSx5PXU/bTpBaShtLHMpLHg9ZixiPVRpKFtdLFttLngsbS55LDAsMV0scyk7aWYoInZpZXdwb3J0Ij09PXRoaXMucGFpbnQuZ2V0KCJjaXJjbGUtcGl0Y2gtc2NhbGUiKSYmIm1hcCI9PT10aGlzLnBhaW50LmdldCgiY2lyY2xlLXBpdGNoLWFsaWdubWVudCIpP3gqPWJbM10vaS5jYW1lcmFUb0NlbnRlckRpc3RhbmNlOiJtYXAiPT09dGhpcy5wYWludC5nZXQoImNpcmNsZS1waXRjaC1zY2FsZSIpJiYidmlld3BvcnQiPT09dGhpcy5wYWludC5nZXQoImNpcmNsZS1waXRjaC1hbGlnbm1lbnQiKSYmKHgqPWkuY2FtZXJhVG9DZW50ZXJEaXN0YW5jZS9iWzNdKSxzaShoLHkseCkpcmV0dXJuITB9cmV0dXJuITF9LGV9KFluKTtmdW5jdGlvbiBBaSh0LGUpe3ZhciByPVRpKFtdLFt0LngsdC55LDAsMV0sZSk7cmV0dXJuIG5ldyBhKHJbMF0vclszXSxyWzFdL3JbM10pfXZhciBTaT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGV9KGlpKTtmdW5jdGlvbiBFaSh0LGUscixuKXt2YXIgYT1lLndpZHRoLGk9ZS5oZWlnaHQ7aWYobil7aWYobiBpbnN0YW5jZW9mIFVpbnQ4Q2xhbXBlZEFycmF5KW49bmV3IFVpbnQ4QXJyYXkobi5idWZmZXIpO2Vsc2UgaWYobi5sZW5ndGghPT1hKmkqcil0aHJvdyBuZXcgUmFuZ2VFcnJvcigibWlzbWF0Y2hlZCBpbWFnZSBzaXplIil9ZWxzZSBuPW5ldyBVaW50OEFycmF5KGEqaSpyKTtyZXR1cm4gdC53aWR0aD1hLHQuaGVpZ2h0PWksdC5kYXRhPW4sdH1mdW5jdGlvbiBMaSh0LGUscil7dmFyIG49ZS53aWR0aCxhPWUuaGVpZ2h0O2lmKG4hPT10LndpZHRofHxhIT09dC5oZWlnaHQpe3ZhciBpPUVpKHt9LHt3aWR0aDpuLGhlaWdodDphfSxyKTtDaSh0LGkse3g6MCx5OjB9LHt4OjAseTowfSx7d2lkdGg6TWF0aC5taW4odC53aWR0aCxuKSxoZWlnaHQ6TWF0aC5taW4odC5oZWlnaHQsYSl9LHIpLHQud2lkdGg9bix0LmhlaWdodD1hLHQuZGF0YT1pLmRhdGF9fWZ1bmN0aW9uIENpKHQsZSxyLG4sYSxpKXtpZigwPT09YS53aWR0aHx8MD09PWEuaGVpZ2h0KXJldHVybiBlO2lmKGEud2lkdGg+dC53aWR0aHx8YS5oZWlnaHQ+dC5oZWlnaHR8fHIueD50LndpZHRoLWEud2lkdGh8fHIueT50LmhlaWdodC1hLmhlaWdodCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib3V0IG9mIHJhbmdlIHNvdXJjZSBjb29yZGluYXRlcyBmb3IgaW1hZ2UgY29weSIpO2lmKGEud2lkdGg+ZS53aWR0aHx8YS5oZWlnaHQ+ZS5oZWlnaHR8fG4ueD5lLndpZHRoLWEud2lkdGh8fG4ueT5lLmhlaWdodC1hLmhlaWdodCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib3V0IG9mIHJhbmdlIGRlc3RpbmF0aW9uIGNvb3JkaW5hdGVzIGZvciBpbWFnZSBjb3B5Iik7Zm9yKHZhciBvPXQuZGF0YSxzPWUuZGF0YSxsPTA7bDxhLmhlaWdodDtsKyspZm9yKHZhciBjPSgoci55K2wpKnQud2lkdGgrci54KSppLHU9KChuLnkrbCkqZS53aWR0aCtuLngpKmksaD0wO2g8YS53aWR0aCppO2grKylzW3UraF09b1tjK2hdO3JldHVybiBlfWRuKCJIZWF0bWFwQnVja2V0IixTaSx7b21pdDpbImxheWVycyJdfSk7dmFyIFBpPWZ1bmN0aW9uKHQsZSl7RWkodGhpcyx0LDEsZSl9O1BpLnByb3RvdHlwZS5yZXNpemU9ZnVuY3Rpb24odCl7TGkodGhpcyx0LDEpfSxQaS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFBpKHt3aWR0aDp0aGlzLndpZHRoLGhlaWdodDp0aGlzLmhlaWdodH0sbmV3IFVpbnQ4QXJyYXkodGhpcy5kYXRhKSl9LFBpLmNvcHk9ZnVuY3Rpb24odCxlLHIsbixhKXtDaSh0LGUscixuLGEsMSl9O3ZhciBPaT1mdW5jdGlvbih0LGUpe0VpKHRoaXMsdCw0LGUpfTtPaS5wcm90b3R5cGUucmVzaXplPWZ1bmN0aW9uKHQpe0xpKHRoaXMsdCw0KX0sT2kucHJvdG90eXBlLnJlcGxhY2U9ZnVuY3Rpb24odCxlKXtlP3RoaXMuZGF0YS5zZXQodCk6dCBpbnN0YW5jZW9mIFVpbnQ4Q2xhbXBlZEFycmF5P3RoaXMuZGF0YT1uZXcgVWludDhBcnJheSh0LmJ1ZmZlcik6dGhpcy5kYXRhPXR9LE9pLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgT2koe3dpZHRoOnRoaXMud2lkdGgsaGVpZ2h0OnRoaXMuaGVpZ2h0fSxuZXcgVWludDhBcnJheSh0aGlzLmRhdGEpKX0sT2kuY29weT1mdW5jdGlvbih0LGUscixuLGEpe0NpKHQsZSxyLG4sYSw0KX0sZG4oIkFscGhhSW1hZ2UiLFBpKSxkbigiUkdCQUltYWdlIixPaSk7dmFyIHppPXtwYWludDpuZXcgR24oeyJoZWF0bWFwLXJhZGl1cyI6bmV3IFZuKFR0LnBhaW50X2hlYXRtYXBbImhlYXRtYXAtcmFkaXVzIl0pLCJoZWF0bWFwLXdlaWdodCI6bmV3IFZuKFR0LnBhaW50X2hlYXRtYXBbImhlYXRtYXAtd2VpZ2h0Il0pLCJoZWF0bWFwLWludGVuc2l0eSI6bmV3IGpuKFR0LnBhaW50X2hlYXRtYXBbImhlYXRtYXAtaW50ZW5zaXR5Il0pLCJoZWF0bWFwLWNvbG9yIjpuZXcgSG4oVHQucGFpbnRfaGVhdG1hcFsiaGVhdG1hcC1jb2xvciJdKSwiaGVhdG1hcC1vcGFjaXR5IjpuZXcgam4oVHQucGFpbnRfaGVhdG1hcFsiaGVhdG1hcC1vcGFjaXR5Il0pfSl9O2Z1bmN0aW9uIElpKHQsZSl7Zm9yKHZhciByPW5ldyBVaW50OEFycmF5KDEwMjQpLG49e30sYT0wLGk9MDthPDI1NjthKyssaSs9NCl7bltlXT1hLzI1NTt2YXIgbz10LmV2YWx1YXRlKG4pO3JbaSswXT1NYXRoLmZsb29yKDI1NSpvLnIvby5hKSxyW2krMV09TWF0aC5mbG9vcigyNTUqby5nL28uYSkscltpKzJdPU1hdGguZmxvb3IoMjU1Km8uYi9vLmEpLHJbaSszXT1NYXRoLmZsb29yKDI1NSpvLmEpfXJldHVybiBuZXcgT2koe3dpZHRoOjI1NixoZWlnaHQ6MX0scil9dmFyIERpPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dC5jYWxsKHRoaXMsZSx6aSksdGhpcy5fdXBkYXRlQ29sb3JSYW1wKCl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmNyZWF0ZUJ1Y2tldD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IFNpKHQpfSxlLnByb3RvdHlwZS5faGFuZGxlU3BlY2lhbFBhaW50UHJvcGVydHlVcGRhdGU9ZnVuY3Rpb24odCl7ImhlYXRtYXAtY29sb3IiPT09dCYmdGhpcy5fdXBkYXRlQ29sb3JSYW1wKCl9LGUucHJvdG90eXBlLl91cGRhdGVDb2xvclJhbXA9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl90cmFuc2l0aW9uYWJsZVBhaW50Ll92YWx1ZXNbImhlYXRtYXAtY29sb3IiXS52YWx1ZS5leHByZXNzaW9uO3RoaXMuY29sb3JSYW1wPUlpKHQsImhlYXRtYXBEZW5zaXR5IiksdGhpcy5jb2xvclJhbXBUZXh0dXJlPW51bGx9LGUucHJvdG90eXBlLnJlc2l6ZT1mdW5jdGlvbigpe3RoaXMuaGVhdG1hcEZibyYmKHRoaXMuaGVhdG1hcEZiby5kZXN0cm95KCksdGhpcy5oZWF0bWFwRmJvPW51bGwpfSxlLnByb3RvdHlwZS5xdWVyeVJhZGl1cz1mdW5jdGlvbigpe3JldHVybiAwfSxlLnByb3RvdHlwZS5xdWVyeUludGVyc2VjdHNGZWF0dXJlPWZ1bmN0aW9uKCl7cmV0dXJuITF9LGUucHJvdG90eXBlLmhhc09mZnNjcmVlblBhc3M9ZnVuY3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMucGFpbnQuZ2V0KCJoZWF0bWFwLW9wYWNpdHkiKSYmIm5vbmUiIT09dGhpcy52aXNpYmlsaXR5fSxlfShZbiksUmk9e3BhaW50Om5ldyBHbih7ImhpbGxzaGFkZS1pbGx1bWluYXRpb24tZGlyZWN0aW9uIjpuZXcgam4oVHQucGFpbnRfaGlsbHNoYWRlWyJoaWxsc2hhZGUtaWxsdW1pbmF0aW9uLWRpcmVjdGlvbiJdKSwiaGlsbHNoYWRlLWlsbHVtaW5hdGlvbi1hbmNob3IiOm5ldyBqbihUdC5wYWludF9oaWxsc2hhZGVbImhpbGxzaGFkZS1pbGx1bWluYXRpb24tYW5jaG9yIl0pLCJoaWxsc2hhZGUtZXhhZ2dlcmF0aW9uIjpuZXcgam4oVHQucGFpbnRfaGlsbHNoYWRlWyJoaWxsc2hhZGUtZXhhZ2dlcmF0aW9uIl0pLCJoaWxsc2hhZGUtc2hhZG93LWNvbG9yIjpuZXcgam4oVHQucGFpbnRfaGlsbHNoYWRlWyJoaWxsc2hhZGUtc2hhZG93LWNvbG9yIl0pLCJoaWxsc2hhZGUtaGlnaGxpZ2h0LWNvbG9yIjpuZXcgam4oVHQucGFpbnRfaGlsbHNoYWRlWyJoaWxsc2hhZGUtaGlnaGxpZ2h0LWNvbG9yIl0pLCJoaWxsc2hhZGUtYWNjZW50LWNvbG9yIjpuZXcgam4oVHQucGFpbnRfaGlsbHNoYWRlWyJoaWxsc2hhZGUtYWNjZW50LWNvbG9yIl0pfSl9LEZpPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dC5jYWxsKHRoaXMsZSxSaSl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmhhc09mZnNjcmVlblBhc3M9ZnVuY3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMucGFpbnQuZ2V0KCJoaWxsc2hhZGUtZXhhZ2dlcmF0aW9uIikmJiJub25lIiE9PXRoaXMudmlzaWJpbGl0eX0sZX0oWW4pLEJpPUpuKFt7bmFtZToiYV9wb3MiLGNvbXBvbmVudHM6Mix0eXBlOiJJbnQxNiJ9XSw0KS5tZW1iZXJzLE5pPVZpLGppPVZpO2Z1bmN0aW9uIFZpKHQsZSxyKXtyPXJ8fDI7dmFyIG4sYSxpLG8scyxsLGMsdT1lJiZlLmxlbmd0aCxoPXU/ZVswXSpyOnQubGVuZ3RoLGY9VWkodCwwLGgsciwhMCkscD1bXTtpZighZnx8Zi5uZXh0PT09Zi5wcmV2KXJldHVybiBwO2lmKHUmJihmPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhLGksbyxzPVtdO2ZvcihhPTAsaT1lLmxlbmd0aDthPGk7YSsrKShvPVVpKHQsZVthXSpuLGE8aS0xP2VbYSsxXSpuOnQubGVuZ3RoLG4sITEpKT09PW8ubmV4dCYmKG8uc3RlaW5lcj0hMCkscy5wdXNoKCRpKG8pKTtmb3Iocy5zb3J0KFppKSxhPTA7YTxzLmxlbmd0aDthKyspSmkoc1thXSxyKSxyPXFpKHIsci5uZXh0KTtyZXR1cm4gcn0odCxlLGYscikpLHQubGVuZ3RoPjgwKnIpe249aT10WzBdLGE9bz10WzFdO2Zvcih2YXIgZD1yO2Q8aDtkKz1yKShzPXRbZF0pPG4mJihuPXMpLChsPXRbZCsxXSk8YSYmKGE9bCkscz5pJiYoaT1zKSxsPm8mJihvPWwpO2M9MCE9PShjPU1hdGgubWF4KGktbixvLWEpKT8xL2M6MH1yZXR1cm4gSGkoZixwLHIsbixhLGMpLHB9ZnVuY3Rpb24gVWkodCxlLHIsbixhKXt2YXIgaSxvO2lmKGE9PT1mbyh0LGUscixuKT4wKWZvcihpPWU7aTxyO2krPW4pbz1jbyhpLHRbaV0sdFtpKzFdLG8pO2Vsc2UgZm9yKGk9ci1uO2k+PWU7aS09bilvPWNvKGksdFtpXSx0W2krMV0sbyk7cmV0dXJuIG8mJm5vKG8sby5uZXh0KSYmKHVvKG8pLG89by5uZXh0KSxvfWZ1bmN0aW9uIHFpKHQsZSl7aWYoIXQpcmV0dXJuIHQ7ZXx8KGU9dCk7dmFyIHIsbj10O2Rve2lmKHI9ITEsbi5zdGVpbmVyfHwhbm8obixuLm5leHQpJiYwIT09cm8obi5wcmV2LG4sbi5uZXh0KSluPW4ubmV4dDtlbHNle2lmKHVvKG4pLChuPWU9bi5wcmV2KT09PW4ubmV4dClicmVhaztyPSEwfX13aGlsZShyfHxuIT09ZSk7cmV0dXJuIGV9ZnVuY3Rpb24gSGkodCxlLHIsbixhLGksbyl7aWYodCl7IW8mJmkmJmZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPXQ7ZG97bnVsbD09PWEueiYmKGEuej1RaShhLngsYS55LGUscixuKSksYS5wcmV2Wj1hLnByZXYsYS5uZXh0Wj1hLm5leHQsYT1hLm5leHR9d2hpbGUoYSE9PXQpO2EucHJldloubmV4dFo9bnVsbCxhLnByZXZaPW51bGwsZnVuY3Rpb24odCl7dmFyIGUscixuLGEsaSxvLHMsbCxjPTE7ZG97Zm9yKHI9dCx0PW51bGwsaT1udWxsLG89MDtyOyl7Zm9yKG8rKyxuPXIscz0wLGU9MDtlPGMmJihzKyssbj1uLm5leHRaKTtlKyspO2ZvcihsPWM7cz4wfHxsPjAmJm47KTAhPT1zJiYoMD09PWx8fCFufHxyLno8PW4ueik/KGE9cixyPXIubmV4dFoscy0tKTooYT1uLG49bi5uZXh0WixsLS0pLGk/aS5uZXh0Wj1hOnQ9YSxhLnByZXZaPWksaT1hO3I9bn1pLm5leHRaPW51bGwsYyo9Mn13aGlsZShvPjEpfShhKX0odCxuLGEsaSk7Zm9yKHZhciBzLGwsYz10O3QucHJldiE9PXQubmV4dDspaWYocz10LnByZXYsbD10Lm5leHQsaT9ZaSh0LG4sYSxpKTpHaSh0KSllLnB1c2gocy5pL3IpLGUucHVzaCh0LmkvciksZS5wdXNoKGwuaS9yKSx1byh0KSx0PWwubmV4dCxjPWwubmV4dDtlbHNlIGlmKCh0PWwpPT09Yyl7bz8xPT09bz9IaSh0PVdpKHFpKHQpLGUsciksZSxyLG4sYSxpLDIpOjI9PT1vJiZYaSh0LGUscixuLGEsaSk6SGkocWkodCksZSxyLG4sYSxpLDEpO2JyZWFrfX19ZnVuY3Rpb24gR2kodCl7dmFyIGU9dC5wcmV2LHI9dCxuPXQubmV4dDtpZihybyhlLHIsbik+PTApcmV0dXJuITE7Zm9yKHZhciBhPXQubmV4dC5uZXh0O2EhPT10LnByZXY7KXtpZih0byhlLngsZS55LHIueCxyLnksbi54LG4ueSxhLngsYS55KSYmcm8oYS5wcmV2LGEsYS5uZXh0KT49MClyZXR1cm4hMTthPWEubmV4dH1yZXR1cm4hMH1mdW5jdGlvbiBZaSh0LGUscixuKXt2YXIgYT10LnByZXYsaT10LG89dC5uZXh0O2lmKHJvKGEsaSxvKT49MClyZXR1cm4hMTtmb3IodmFyIHM9YS54PGkueD9hLng8by54P2EueDpvLng6aS54PG8ueD9pLng6by54LGw9YS55PGkueT9hLnk8by55P2EueTpvLnk6aS55PG8ueT9pLnk6by55LGM9YS54PmkueD9hLng+by54P2EueDpvLng6aS54Pm8ueD9pLng6by54LHU9YS55PmkueT9hLnk+by55P2EueTpvLnk6aS55Pm8ueT9pLnk6by55LGg9UWkocyxsLGUscixuKSxmPVFpKGMsdSxlLHIsbikscD10LnByZXZaLGQ9dC5uZXh0WjtwJiZwLno+PWgmJmQmJmQuejw9Zjspe2lmKHAhPT10LnByZXYmJnAhPT10Lm5leHQmJnRvKGEueCxhLnksaS54LGkueSxvLngsby55LHAueCxwLnkpJiZybyhwLnByZXYscCxwLm5leHQpPj0wKXJldHVybiExO2lmKHA9cC5wcmV2WixkIT09dC5wcmV2JiZkIT09dC5uZXh0JiZ0byhhLngsYS55LGkueCxpLnksby54LG8ueSxkLngsZC55KSYmcm8oZC5wcmV2LGQsZC5uZXh0KT49MClyZXR1cm4hMTtkPWQubmV4dFp9Zm9yKDtwJiZwLno+PWg7KXtpZihwIT09dC5wcmV2JiZwIT09dC5uZXh0JiZ0byhhLngsYS55LGkueCxpLnksby54LG8ueSxwLngscC55KSYmcm8ocC5wcmV2LHAscC5uZXh0KT49MClyZXR1cm4hMTtwPXAucHJldlp9Zm9yKDtkJiZkLno8PWY7KXtpZihkIT09dC5wcmV2JiZkIT09dC5uZXh0JiZ0byhhLngsYS55LGkueCxpLnksby54LG8ueSxkLngsZC55KSYmcm8oZC5wcmV2LGQsZC5uZXh0KT49MClyZXR1cm4hMTtkPWQubmV4dFp9cmV0dXJuITB9ZnVuY3Rpb24gV2kodCxlLHIpe3ZhciBuPXQ7ZG97dmFyIGE9bi5wcmV2LGk9bi5uZXh0Lm5leHQ7IW5vKGEsaSkmJmFvKGEsbixuLm5leHQsaSkmJnNvKGEsaSkmJnNvKGksYSkmJihlLnB1c2goYS5pL3IpLGUucHVzaChuLmkvciksZS5wdXNoKGkuaS9yKSx1byhuKSx1byhuLm5leHQpLG49dD1pKSxuPW4ubmV4dH13aGlsZShuIT09dCk7cmV0dXJuIHFpKG4pfWZ1bmN0aW9uIFhpKHQsZSxyLG4sYSxpKXt2YXIgbz10O2Rve2Zvcih2YXIgcz1vLm5leHQubmV4dDtzIT09by5wcmV2Oyl7aWYoby5pIT09cy5pJiZlbyhvLHMpKXt2YXIgbD1sbyhvLHMpO3JldHVybiBvPXFpKG8sby5uZXh0KSxsPXFpKGwsbC5uZXh0KSxIaShvLGUscixuLGEsaSksdm9pZCBIaShsLGUscixuLGEsaSl9cz1zLm5leHR9bz1vLm5leHR9d2hpbGUobyE9PXQpfWZ1bmN0aW9uIFppKHQsZSl7cmV0dXJuIHQueC1lLnh9ZnVuY3Rpb24gSmkodCxlKXtpZihlPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbj1lLGE9dC54LGk9dC55LG89LTEvMDtkb3tpZihpPD1uLnkmJmk+PW4ubmV4dC55JiZuLm5leHQueSE9PW4ueSl7dmFyIHM9bi54KyhpLW4ueSkqKG4ubmV4dC54LW4ueCkvKG4ubmV4dC55LW4ueSk7aWYoczw9YSYmcz5vKXtpZihvPXMscz09PWEpe2lmKGk9PT1uLnkpcmV0dXJuIG47aWYoaT09PW4ubmV4dC55KXJldHVybiBuLm5leHR9cj1uLng8bi5uZXh0Lng/bjpuLm5leHR9fW49bi5uZXh0fXdoaWxlKG4hPT1lKTtpZighcilyZXR1cm4gbnVsbDtpZihhPT09bylyZXR1cm4gcjt2YXIgbCxjPXIsdT1yLngsaD1yLnksZj0xLzA7bj1yO2Rve2E+PW4ueCYmbi54Pj11JiZhIT09bi54JiZ0byhpPGg/YTpvLGksdSxoLGk8aD9vOmEsaSxuLngsbi55KSYmKGw9TWF0aC5hYnMoaS1uLnkpLyhhLW4ueCksc28obix0KSYmKGw8Znx8bD09PWYmJihuLng+ci54fHxuLng9PT1yLngmJktpKHIsbikpKSYmKHI9bixmPWwpKSxuPW4ubmV4dH13aGlsZShuIT09Yyk7cmV0dXJuIHJ9KHQsZSkpe3ZhciByPWxvKGUsdCk7cWkocixyLm5leHQpfX1mdW5jdGlvbiBLaSh0LGUpe3JldHVybiBybyh0LnByZXYsdCxlLnByZXYpPDAmJnJvKGUubmV4dCx0LHQubmV4dCk8MH1mdW5jdGlvbiBRaSh0LGUscixuLGEpe3JldHVybih0PTE0MzE2NTU3NjUmKCh0PTg1ODk5MzQ1OSYoKHQ9MjUyNjQ1MTM1JigodD0xNjcxMTkzNSYoKHQ9MzI3NjcqKHQtcikqYSl8dDw8OCkpfHQ8PDQpKXx0PDwyKSl8dDw8MSkpfChlPTE0MzE2NTU3NjUmKChlPTg1ODk5MzQ1OSYoKGU9MjUyNjQ1MTM1JigoZT0xNjcxMTkzNSYoKGU9MzI3NjcqKGUtbikqYSl8ZTw8OCkpfGU8PDQpKXxlPDwyKSl8ZTw8MSkpPDwxfWZ1bmN0aW9uICRpKHQpe3ZhciBlPXQscj10O2RveyhlLng8ci54fHxlLng9PT1yLngmJmUueTxyLnkpJiYocj1lKSxlPWUubmV4dH13aGlsZShlIT09dCk7cmV0dXJuIHJ9ZnVuY3Rpb24gdG8odCxlLHIsbixhLGksbyxzKXtyZXR1cm4oYS1vKSooZS1zKS0odC1vKSooaS1zKT49MCYmKHQtbykqKG4tcyktKHItbykqKGUtcyk+PTAmJihyLW8pKihpLXMpLShhLW8pKihuLXMpPj0wfWZ1bmN0aW9uIGVvKHQsZSl7cmV0dXJuIHQubmV4dC5pIT09ZS5pJiZ0LnByZXYuaSE9PWUuaSYmIWZ1bmN0aW9uKHQsZSl7dmFyIHI9dDtkb3tpZihyLmkhPT10LmkmJnIubmV4dC5pIT09dC5pJiZyLmkhPT1lLmkmJnIubmV4dC5pIT09ZS5pJiZhbyhyLHIubmV4dCx0LGUpKXJldHVybiEwO3I9ci5uZXh0fXdoaWxlKHIhPT10KTtyZXR1cm4hMX0odCxlKSYmKHNvKHQsZSkmJnNvKGUsdCkmJmZ1bmN0aW9uKHQsZSl7dmFyIHI9dCxuPSExLGE9KHQueCtlLngpLzIsaT0odC55K2UueSkvMjtkb3tyLnk+aSE9ci5uZXh0Lnk+aSYmci5uZXh0LnkhPT1yLnkmJmE8KHIubmV4dC54LXIueCkqKGktci55KS8oci5uZXh0Lnktci55KStyLngmJihuPSFuKSxyPXIubmV4dH13aGlsZShyIT09dCk7cmV0dXJuIG59KHQsZSkmJihybyh0LnByZXYsdCxlLnByZXYpfHxybyh0LGUucHJldixlKSl8fG5vKHQsZSkmJnJvKHQucHJldix0LHQubmV4dCk+MCYmcm8oZS5wcmV2LGUsZS5uZXh0KT4wKX1mdW5jdGlvbiBybyh0LGUscil7cmV0dXJuKGUueS10LnkpKihyLngtZS54KS0oZS54LXQueCkqKHIueS1lLnkpfWZ1bmN0aW9uIG5vKHQsZSl7cmV0dXJuIHQueD09PWUueCYmdC55PT09ZS55fWZ1bmN0aW9uIGFvKHQsZSxyLG4pe3ZhciBhPW9vKHJvKHQsZSxyKSksaT1vbyhybyh0LGUsbikpLG89b28ocm8ocixuLHQpKSxzPW9vKHJvKHIsbixlKSk7cmV0dXJuIGEhPT1pJiZvIT09c3x8ISgwIT09YXx8IWlvKHQscixlKSl8fCEoMCE9PWl8fCFpbyh0LG4sZSkpfHwhKDAhPT1vfHwhaW8ocix0LG4pKXx8ISgwIT09c3x8IWlvKHIsZSxuKSl9ZnVuY3Rpb24gaW8odCxlLHIpe3JldHVybiBlLng8PU1hdGgubWF4KHQueCxyLngpJiZlLng+PU1hdGgubWluKHQueCxyLngpJiZlLnk8PU1hdGgubWF4KHQueSxyLnkpJiZlLnk+PU1hdGgubWluKHQueSxyLnkpfWZ1bmN0aW9uIG9vKHQpe3JldHVybiB0PjA/MTp0PDA/LTE6MH1mdW5jdGlvbiBzbyh0LGUpe3JldHVybiBybyh0LnByZXYsdCx0Lm5leHQpPDA/cm8odCxlLHQubmV4dCk+PTAmJnJvKHQsdC5wcmV2LGUpPj0wOnJvKHQsZSx0LnByZXYpPDB8fHJvKHQsdC5uZXh0LGUpPDB9ZnVuY3Rpb24gbG8odCxlKXt2YXIgcj1uZXcgaG8odC5pLHQueCx0LnkpLG49bmV3IGhvKGUuaSxlLngsZS55KSxhPXQubmV4dCxpPWUucHJldjtyZXR1cm4gdC5uZXh0PWUsZS5wcmV2PXQsci5uZXh0PWEsYS5wcmV2PXIsbi5uZXh0PXIsci5wcmV2PW4saS5uZXh0PW4sbi5wcmV2PWksbn1mdW5jdGlvbiBjbyh0LGUscixuKXt2YXIgYT1uZXcgaG8odCxlLHIpO3JldHVybiBuPyhhLm5leHQ9bi5uZXh0LGEucHJldj1uLG4ubmV4dC5wcmV2PWEsbi5uZXh0PWEpOihhLnByZXY9YSxhLm5leHQ9YSksYX1mdW5jdGlvbiB1byh0KXt0Lm5leHQucHJldj10LnByZXYsdC5wcmV2Lm5leHQ9dC5uZXh0LHQucHJldlomJih0LnByZXZaLm5leHRaPXQubmV4dFopLHQubmV4dFomJih0Lm5leHRaLnByZXZaPXQucHJldlopfWZ1bmN0aW9uIGhvKHQsZSxyKXt0aGlzLmk9dCx0aGlzLng9ZSx0aGlzLnk9cix0aGlzLnByZXY9bnVsbCx0aGlzLm5leHQ9bnVsbCx0aGlzLno9bnVsbCx0aGlzLnByZXZaPW51bGwsdGhpcy5uZXh0Wj1udWxsLHRoaXMuc3RlaW5lcj0hMX1mdW5jdGlvbiBmbyh0LGUscixuKXtmb3IodmFyIGE9MCxpPWUsbz1yLW47aTxyO2krPW4pYSs9KHRbb10tdFtpXSkqKHRbaSsxXSt0W28rMV0pLG89aTtyZXR1cm4gYX1mdW5jdGlvbiBwbyh0LGUscixuLGEpeyFmdW5jdGlvbiB0KGUscixuLGEsaSl7Zm9yKDthPm47KXtpZihhLW4+NjAwKXt2YXIgbz1hLW4rMSxzPXItbisxLGw9TWF0aC5sb2cobyksYz0uNSpNYXRoLmV4cCgyKmwvMyksdT0uNSpNYXRoLnNxcnQobCpjKihvLWMpL28pKihzLW8vMjwwPy0xOjEpO3QoZSxyLE1hdGgubWF4KG4sTWF0aC5mbG9vcihyLXMqYy9vK3UpKSxNYXRoLm1pbihhLE1hdGguZmxvb3Iocisoby1zKSpjL28rdSkpLGkpfXZhciBoPWVbcl0sZj1uLHA9YTtmb3IoZ28oZSxuLHIpLGkoZVthXSxoKT4wJiZnbyhlLG4sYSk7ZjxwOyl7Zm9yKGdvKGUsZixwKSxmKysscC0tO2koZVtmXSxoKTwwOylmKys7Zm9yKDtpKGVbcF0saCk+MDspcC0tfTA9PT1pKGVbbl0saCk/Z28oZSxuLHApOmdvKGUsKytwLGEpLHA8PXImJihuPXArMSkscjw9cCYmKGE9cC0xKX19KHQsZSxyfHwwLG58fHQubGVuZ3RoLTEsYXx8dm8pfWZ1bmN0aW9uIGdvKHQsZSxyKXt2YXIgbj10W2VdO3RbZV09dFtyXSx0W3JdPW59ZnVuY3Rpb24gdm8odCxlKXtyZXR1cm4gdDxlPy0xOnQ+ZT8xOjB9ZnVuY3Rpb24gbW8odCxlKXt2YXIgcj10Lmxlbmd0aDtpZihyPD0xKXJldHVyblt0XTtmb3IodmFyIG4sYSxpPVtdLG89MDtvPHI7bysrKXt2YXIgcz1UKHRbb10pOzAhPT1zJiYodFtvXS5hcmVhPU1hdGguYWJzKHMpLHZvaWQgMD09PWEmJihhPXM8MCksYT09PXM8MD8obiYmaS5wdXNoKG4pLG49W3Rbb11dKTpuLnB1c2godFtvXSkpfWlmKG4mJmkucHVzaChuKSxlPjEpZm9yKHZhciBsPTA7bDxpLmxlbmd0aDtsKyspaVtsXS5sZW5ndGg8PWV8fChwbyhpW2xdLGUsMSxpW2xdLmxlbmd0aC0xLHlvKSxpW2xdPWlbbF0uc2xpY2UoMCxlKSk7cmV0dXJuIGl9ZnVuY3Rpb24geW8odCxlKXtyZXR1cm4gZS5hcmVhLXQuYXJlYX1mdW5jdGlvbiB4byh0LGUscil7Zm9yKHZhciBuPXIucGF0dGVybkRlcGVuZGVuY2llcyxhPSExLGk9MCxvPWU7aTxvLmxlbmd0aDtpKz0xKXt2YXIgcz1vW2ldLnBhaW50LmdldCh0KyItcGF0dGVybiIpO3MuaXNDb25zdGFudCgpfHwoYT0hMCk7dmFyIGw9cy5jb25zdGFudE9yKG51bGwpO2wmJihhPSEwLG5bbC50b109ITAsbltsLmZyb21dPSEwKX1yZXR1cm4gYX1mdW5jdGlvbiBibyh0LGUscixuLGEpe2Zvcih2YXIgaT1hLnBhdHRlcm5EZXBlbmRlbmNpZXMsbz0wLHM9ZTtvPHMubGVuZ3RoO28rPTEpe3ZhciBsPXNbb10sYz1sLnBhaW50LmdldCh0KyItcGF0dGVybiIpLnZhbHVlO2lmKCJjb25zdGFudCIhPT1jLmtpbmQpe3ZhciB1PWMuZXZhbHVhdGUoe3pvb206bi0xfSxyLHt9KSxoPWMuZXZhbHVhdGUoe3pvb206bn0scix7fSksZj1jLmV2YWx1YXRlKHt6b29tOm4rMX0scix7fSk7aVt1XT0hMCxpW2hdPSEwLGlbZl09ITAsci5wYXR0ZXJuc1tsLmlkXT17bWluOnUsbWlkOmgsbWF4OmZ9fX1yZXR1cm4gcn1WaS5kZXZpYXRpb249ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9ZSYmZS5sZW5ndGgsaT1hP2VbMF0qcjp0Lmxlbmd0aCxvPU1hdGguYWJzKGZvKHQsMCxpLHIpKTtpZihhKWZvcih2YXIgcz0wLGw9ZS5sZW5ndGg7czxsO3MrKyl7dmFyIGM9ZVtzXSpyLHU9czxsLTE/ZVtzKzFdKnI6dC5sZW5ndGg7by09TWF0aC5hYnMoZm8odCxjLHUscikpfXZhciBoPTA7Zm9yKHM9MDtzPG4ubGVuZ3RoO3MrPTMpe3ZhciBmPW5bc10qcixwPW5bcysxXSpyLGQ9bltzKzJdKnI7aCs9TWF0aC5hYnMoKHRbZl0tdFtkXSkqKHRbcCsxXS10W2YrMV0pLSh0W2ZdLXRbcF0pKih0W2QrMV0tdFtmKzFdKSl9cmV0dXJuIDA9PT1vJiYwPT09aD8wOk1hdGguYWJzKChoLW8pL28pfSxWaS5mbGF0dGVuPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10WzBdWzBdLmxlbmd0aCxyPXt2ZXJ0aWNlczpbXSxob2xlczpbXSxkaW1lbnNpb25zOmV9LG49MCxhPTA7YTx0Lmxlbmd0aDthKyspe2Zvcih2YXIgaT0wO2k8dFthXS5sZW5ndGg7aSsrKWZvcih2YXIgbz0wO288ZTtvKyspci52ZXJ0aWNlcy5wdXNoKHRbYV1baV1bb10pO2E+MCYmKG4rPXRbYS0xXS5sZW5ndGgsci5ob2xlcy5wdXNoKG4pKX1yZXR1cm4gcn0sTmkuZGVmYXVsdD1qaTt2YXIgX289ZnVuY3Rpb24odCl7dGhpcy56b29tPXQuem9vbSx0aGlzLm92ZXJzY2FsaW5nPXQub3ZlcnNjYWxpbmcsdGhpcy5sYXllcnM9dC5sYXllcnMsdGhpcy5sYXllcklkcz10aGlzLmxheWVycy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWR9KSx0aGlzLmluZGV4PXQuaW5kZXgsdGhpcy5oYXNQYXR0ZXJuPSExLHRoaXMucGF0dGVybkZlYXR1cmVzPVtdLHRoaXMubGF5b3V0VmVydGV4QXJyYXk9bmV3IFFuLHRoaXMuaW5kZXhBcnJheT1uZXcgZGEsdGhpcy5pbmRleEFycmF5Mj1uZXcgZ2EsdGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnM9bmV3IFFhKEJpLHQubGF5ZXJzLHQuem9vbSksdGhpcy5zZWdtZW50cz1uZXcgT2EsdGhpcy5zZWdtZW50czI9bmV3IE9hLHRoaXMuc3RhdGVEZXBlbmRlbnRMYXllcklkcz10aGlzLmxheWVycy5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQuaXNTdGF0ZURlcGVuZGVudCgpfSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkfSl9O19vLnByb3RvdHlwZS5wb3B1bGF0ZT1mdW5jdGlvbih0LGUpe3RoaXMuaGFzUGF0dGVybj14bygiZmlsbCIsdGhpcy5sYXllcnMsZSk7Zm9yKHZhciByPXRoaXMubGF5ZXJzWzBdLmxheW91dC5nZXQoImZpbGwtc29ydC1rZXkiKSxuPVtdLGE9MCxpPXQ7YTxpLmxlbmd0aDthKz0xKXt2YXIgbz1pW2FdLHM9by5mZWF0dXJlLGw9by5pbmRleCxjPW8uc291cmNlTGF5ZXJJbmRleDtpZih0aGlzLmxheWVyc1swXS5fZmVhdHVyZUZpbHRlcihuZXcgUG4odGhpcy56b29tKSxzKSl7dmFyIHU9bmkocyksaD1yP3IuZXZhbHVhdGUocyx7fSk6dm9pZCAwLGY9e2lkOnMuaWQscHJvcGVydGllczpzLnByb3BlcnRpZXMsdHlwZTpzLnR5cGUsc291cmNlTGF5ZXJJbmRleDpjLGluZGV4OmwsZ2VvbWV0cnk6dSxwYXR0ZXJuczp7fSxzb3J0S2V5Omh9O24ucHVzaChmKX19ciYmbi5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuc29ydEtleS1lLnNvcnRLZXl9KTtmb3IodmFyIHA9MCxkPW47cDxkLmxlbmd0aDtwKz0xKXt2YXIgZz1kW3BdLHY9ZyxtPXYuZ2VvbWV0cnkseT12LmluZGV4LHg9di5zb3VyY2VMYXllckluZGV4O2lmKHRoaXMuaGFzUGF0dGVybil7dmFyIGI9Ym8oImZpbGwiLHRoaXMubGF5ZXJzLGcsdGhpcy56b29tLGUpO3RoaXMucGF0dGVybkZlYXR1cmVzLnB1c2goYil9ZWxzZSB0aGlzLmFkZEZlYXR1cmUoZyxtLHkse30pO3ZhciBfPXRbeV0uZmVhdHVyZTtlLmZlYXR1cmVJbmRleC5pbnNlcnQoXyxtLHkseCx0aGlzLmluZGV4KX19LF9vLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlLHIpe3RoaXMuc3RhdGVEZXBlbmRlbnRMYXllcnMubGVuZ3RoJiZ0aGlzLnByb2dyYW1Db25maWd1cmF0aW9ucy51cGRhdGVQYWludEFycmF5cyh0LGUsdGhpcy5zdGF0ZURlcGVuZGVudExheWVycyxyKX0sX28ucHJvdG90eXBlLmFkZEZlYXR1cmVzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTAsbj10aGlzLnBhdHRlcm5GZWF0dXJlcztyPG4ubGVuZ3RoO3IrPTEpe3ZhciBhPW5bcl07dGhpcy5hZGRGZWF0dXJlKGEsYS5nZW9tZXRyeSxhLmluZGV4LGUpfX0sX28ucHJvdG90eXBlLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMubGF5b3V0VmVydGV4QXJyYXkubGVuZ3RofSxfby5wcm90b3R5cGUudXBsb2FkUGVuZGluZz1mdW5jdGlvbigpe3JldHVybiF0aGlzLnVwbG9hZGVkfHx0aGlzLnByb2dyYW1Db25maWd1cmF0aW9ucy5uZWVkc1VwbG9hZH0sX28ucHJvdG90eXBlLnVwbG9hZD1mdW5jdGlvbih0KXt0aGlzLnVwbG9hZGVkfHwodGhpcy5sYXlvdXRWZXJ0ZXhCdWZmZXI9dC5jcmVhdGVWZXJ0ZXhCdWZmZXIodGhpcy5sYXlvdXRWZXJ0ZXhBcnJheSxCaSksdGhpcy5pbmRleEJ1ZmZlcj10LmNyZWF0ZUluZGV4QnVmZmVyKHRoaXMuaW5kZXhBcnJheSksdGhpcy5pbmRleEJ1ZmZlcjI9dC5jcmVhdGVJbmRleEJ1ZmZlcih0aGlzLmluZGV4QXJyYXkyKSksdGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnMudXBsb2FkKHQpLHRoaXMudXBsb2FkZWQ9ITB9LF9vLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5sYXlvdXRWZXJ0ZXhCdWZmZXImJih0aGlzLmxheW91dFZlcnRleEJ1ZmZlci5kZXN0cm95KCksdGhpcy5pbmRleEJ1ZmZlci5kZXN0cm95KCksdGhpcy5pbmRleEJ1ZmZlcjIuZGVzdHJveSgpLHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLmRlc3Ryb3koKSx0aGlzLnNlZ21lbnRzLmRlc3Ryb3koKSx0aGlzLnNlZ21lbnRzMi5kZXN0cm95KCkpfSxfby5wcm90b3R5cGUuYWRkRmVhdHVyZT1mdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGE9MCxpPW1vKGUsNTAwKTthPGkubGVuZ3RoO2ErPTEpe2Zvcih2YXIgbz1pW2FdLHM9MCxsPTAsYz1vO2w8Yy5sZW5ndGg7bCs9MSlzKz1jW2xdLmxlbmd0aDtmb3IodmFyIHU9dGhpcy5zZWdtZW50cy5wcmVwYXJlU2VnbWVudChzLHRoaXMubGF5b3V0VmVydGV4QXJyYXksdGhpcy5pbmRleEFycmF5KSxoPXUudmVydGV4TGVuZ3RoLGY9W10scD1bXSxkPTAsZz1vO2Q8Zy5sZW5ndGg7ZCs9MSl7dmFyIHY9Z1tkXTtpZigwIT09di5sZW5ndGgpe3YhPT1vWzBdJiZwLnB1c2goZi5sZW5ndGgvMik7dmFyIG09dGhpcy5zZWdtZW50czIucHJlcGFyZVNlZ21lbnQodi5sZW5ndGgsdGhpcy5sYXlvdXRWZXJ0ZXhBcnJheSx0aGlzLmluZGV4QXJyYXkyKSx5PW0udmVydGV4TGVuZ3RoO3RoaXMubGF5b3V0VmVydGV4QXJyYXkuZW1wbGFjZUJhY2sodlswXS54LHZbMF0ueSksdGhpcy5pbmRleEFycmF5Mi5lbXBsYWNlQmFjayh5K3YubGVuZ3RoLTEseSksZi5wdXNoKHZbMF0ueCksZi5wdXNoKHZbMF0ueSk7Zm9yKHZhciB4PTE7eDx2Lmxlbmd0aDt4KyspdGhpcy5sYXlvdXRWZXJ0ZXhBcnJheS5lbXBsYWNlQmFjayh2W3hdLngsdlt4XS55KSx0aGlzLmluZGV4QXJyYXkyLmVtcGxhY2VCYWNrKHkreC0xLHkreCksZi5wdXNoKHZbeF0ueCksZi5wdXNoKHZbeF0ueSk7bS52ZXJ0ZXhMZW5ndGgrPXYubGVuZ3RoLG0ucHJpbWl0aXZlTGVuZ3RoKz12Lmxlbmd0aH19Zm9yKHZhciBiPU5pKGYscCksXz0wO188Yi5sZW5ndGg7Xys9Myl0aGlzLmluZGV4QXJyYXkuZW1wbGFjZUJhY2soaCtiW19dLGgrYltfKzFdLGgrYltfKzJdKTt1LnZlcnRleExlbmd0aCs9cyx1LnByaW1pdGl2ZUxlbmd0aCs9Yi5sZW5ndGgvM310aGlzLnByb2dyYW1Db25maWd1cmF0aW9ucy5wb3B1bGF0ZVBhaW50QXJyYXlzKHRoaXMubGF5b3V0VmVydGV4QXJyYXkubGVuZ3RoLHQscixuKX0sZG4oIkZpbGxCdWNrZXQiLF9vLHtvbWl0OlsibGF5ZXJzIiwicGF0dGVybkZlYXR1cmVzIl19KTt2YXIgd289bmV3IEduKHsiZmlsbC1zb3J0LWtleSI6bmV3IFZuKFR0LmxheW91dF9maWxsWyJmaWxsLXNvcnQta2V5Il0pfSksa289e3BhaW50Om5ldyBHbih7ImZpbGwtYW50aWFsaWFzIjpuZXcgam4oVHQucGFpbnRfZmlsbFsiZmlsbC1hbnRpYWxpYXMiXSksImZpbGwtb3BhY2l0eSI6bmV3IFZuKFR0LnBhaW50X2ZpbGxbImZpbGwtb3BhY2l0eSJdKSwiZmlsbC1jb2xvciI6bmV3IFZuKFR0LnBhaW50X2ZpbGxbImZpbGwtY29sb3IiXSksImZpbGwtb3V0bGluZS1jb2xvciI6bmV3IFZuKFR0LnBhaW50X2ZpbGxbImZpbGwtb3V0bGluZS1jb2xvciJdKSwiZmlsbC10cmFuc2xhdGUiOm5ldyBqbihUdC5wYWludF9maWxsWyJmaWxsLXRyYW5zbGF0ZSJdKSwiZmlsbC10cmFuc2xhdGUtYW5jaG9yIjpuZXcgam4oVHQucGFpbnRfZmlsbFsiZmlsbC10cmFuc2xhdGUtYW5jaG9yIl0pLCJmaWxsLXBhdHRlcm4iOm5ldyBVbihUdC5wYWludF9maWxsWyJmaWxsLXBhdHRlcm4iXSl9KSxsYXlvdXQ6d299LFRvPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dC5jYWxsKHRoaXMsZSxrbyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLnJlY2FsY3VsYXRlPWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLnJlY2FsY3VsYXRlLmNhbGwodGhpcyxlKTt2YXIgcj10aGlzLnBhaW50Ll92YWx1ZXNbImZpbGwtb3V0bGluZS1jb2xvciJdOyJjb25zdGFudCI9PT1yLnZhbHVlLmtpbmQmJnZvaWQgMD09PXIudmFsdWUudmFsdWUmJih0aGlzLnBhaW50Ll92YWx1ZXNbImZpbGwtb3V0bGluZS1jb2xvciJdPXRoaXMucGFpbnQuX3ZhbHVlc1siZmlsbC1jb2xvciJdKX0sZS5wcm90b3R5cGUuY3JlYXRlQnVja2V0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgX28odCl9LGUucHJvdG90eXBlLnF1ZXJ5UmFkaXVzPWZ1bmN0aW9uKCl7cmV0dXJuIHlpKHRoaXMucGFpbnQuZ2V0KCJmaWxsLXRyYW5zbGF0ZSIpKX0sZS5wcm90b3R5cGUucXVlcnlJbnRlcnNlY3RzRmVhdHVyZT1mdW5jdGlvbih0LGUscixuLGEsaSxvKXtyZXR1cm4gbGkoeGkodCx0aGlzLnBhaW50LmdldCgiZmlsbC10cmFuc2xhdGUiKSx0aGlzLnBhaW50LmdldCgiZmlsbC10cmFuc2xhdGUtYW5jaG9yIiksaS5hbmdsZSxvKSxuKX0sZS5wcm90b3R5cGUuaXNUaWxlQ2xpcHBlZD1mdW5jdGlvbigpe3JldHVybiEwfSxlfShZbiksTW89Sm4oW3tuYW1lOiJhX3BvcyIsY29tcG9uZW50czoyLHR5cGU6IkludDE2In0se25hbWU6ImFfbm9ybWFsX2VkIixjb21wb25lbnRzOjQsdHlwZToiSW50MTYifV0sNCkubWVtYmVycyxBbz1TbztmdW5jdGlvbiBTbyh0LGUscixuLGEpe3RoaXMucHJvcGVydGllcz17fSx0aGlzLmV4dGVudD1yLHRoaXMudHlwZT0wLHRoaXMuX3BiZj10LHRoaXMuX2dlb21ldHJ5PS0xLHRoaXMuX2tleXM9bix0aGlzLl92YWx1ZXM9YSx0LnJlYWRGaWVsZHMoRW8sdGhpcyxlKX1mdW5jdGlvbiBFbyh0LGUscil7MT09dD9lLmlkPXIucmVhZFZhcmludCgpOjI9PXQ/ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5yZWFkVmFyaW50KCkrdC5wb3M7dC5wb3M8cjspe3ZhciBuPWUuX2tleXNbdC5yZWFkVmFyaW50KCldLGE9ZS5fdmFsdWVzW3QucmVhZFZhcmludCgpXTtlLnByb3BlcnRpZXNbbl09YX19KHIsZSk6Mz09dD9lLnR5cGU9ci5yZWFkVmFyaW50KCk6ND09dCYmKGUuX2dlb21ldHJ5PXIucG9zKX1mdW5jdGlvbiBMbyh0KXtmb3IodmFyIGUscixuPTAsYT0wLGk9dC5sZW5ndGgsbz1pLTE7YTxpO289YSsrKWU9dFthXSxuKz0oKHI9dFtvXSkueC1lLngpKihlLnkrci55KTtyZXR1cm4gbn1Tby50eXBlcz1bIlVua25vd24iLCJQb2ludCIsIkxpbmVTdHJpbmciLCJQb2x5Z29uIl0sU28ucHJvdG90eXBlLmxvYWRHZW9tZXRyeT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX3BiZjt0LnBvcz10aGlzLl9nZW9tZXRyeTtmb3IodmFyIGUscj10LnJlYWRWYXJpbnQoKSt0LnBvcyxuPTEsaT0wLG89MCxzPTAsbD1bXTt0LnBvczxyOyl7aWYoaTw9MCl7dmFyIGM9dC5yZWFkVmFyaW50KCk7bj03JmMsaT1jPj4zfWlmKGktLSwxPT09bnx8Mj09PW4pbys9dC5yZWFkU1ZhcmludCgpLHMrPXQucmVhZFNWYXJpbnQoKSwxPT09biYmKGUmJmwucHVzaChlKSxlPVtdKSxlLnB1c2gobmV3IGEobyxzKSk7ZWxzZXtpZig3IT09bil0aHJvdyBuZXcgRXJyb3IoInVua25vd24gY29tbWFuZCAiK24pO2UmJmUucHVzaChlWzBdLmNsb25lKCkpfX1yZXR1cm4gZSYmbC5wdXNoKGUpLGx9LFNvLnByb3RvdHlwZS5iYm94PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fcGJmO3QucG9zPXRoaXMuX2dlb21ldHJ5O2Zvcih2YXIgZT10LnJlYWRWYXJpbnQoKSt0LnBvcyxyPTEsbj0wLGE9MCxpPTAsbz0xLzAscz0tMS8wLGw9MS8wLGM9LTEvMDt0LnBvczxlOyl7aWYobjw9MCl7dmFyIHU9dC5yZWFkVmFyaW50KCk7cj03JnUsbj11Pj4zfWlmKG4tLSwxPT09cnx8Mj09PXIpKGErPXQucmVhZFNWYXJpbnQoKSk8byYmKG89YSksYT5zJiYocz1hKSwoaSs9dC5yZWFkU1ZhcmludCgpKTxsJiYobD1pKSxpPmMmJihjPWkpO2Vsc2UgaWYoNyE9PXIpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGNvbW1hbmQgIityKX1yZXR1cm5bbyxsLHMsY119LFNvLnByb3RvdHlwZS50b0dlb0pTT049ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGEsaT10aGlzLmV4dGVudCpNYXRoLnBvdygyLHIpLG89dGhpcy5leHRlbnQqdCxzPXRoaXMuZXh0ZW50KmUsbD10aGlzLmxvYWRHZW9tZXRyeSgpLGM9U28udHlwZXNbdGhpcy50eXBlXTtmdW5jdGlvbiB1KHQpe2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXt2YXIgcj10W2VdLG49MTgwLTM2MCooci55K3MpL2k7dFtlXT1bMzYwKihyLngrbykvaS0xODAsMzYwL01hdGguUEkqTWF0aC5hdGFuKE1hdGguZXhwKG4qTWF0aC5QSS8xODApKS05MF19fXN3aXRjaCh0aGlzLnR5cGUpe2Nhc2UgMTp2YXIgaD1bXTtmb3Iobj0wO248bC5sZW5ndGg7bisrKWhbbl09bFtuXVswXTt1KGw9aCk7YnJlYWs7Y2FzZSAyOmZvcihuPTA7bjxsLmxlbmd0aDtuKyspdShsW25dKTticmVhaztjYXNlIDM6Zm9yKGw9ZnVuY3Rpb24odCl7dmFyIGU9dC5sZW5ndGg7aWYoZTw9MSlyZXR1cm5bdF07Zm9yKHZhciByLG4sYT1bXSxpPTA7aTxlO2krKyl7dmFyIG89TG8odFtpXSk7MCE9PW8mJih2b2lkIDA9PT1uJiYobj1vPDApLG49PT1vPDA/KHImJmEucHVzaChyKSxyPVt0W2ldXSk6ci5wdXNoKHRbaV0pKX1yZXR1cm4gciYmYS5wdXNoKHIpLGF9KGwpLG49MDtuPGwubGVuZ3RoO24rKylmb3IoYT0wO2E8bFtuXS5sZW5ndGg7YSsrKXUobFtuXVthXSl9MT09PWwubGVuZ3RoP2w9bFswXTpjPSJNdWx0aSIrYzt2YXIgZj17dHlwZToiRmVhdHVyZSIsZ2VvbWV0cnk6e3R5cGU6Yyxjb29yZGluYXRlczpsfSxwcm9wZXJ0aWVzOnRoaXMucHJvcGVydGllc307cmV0dXJuImlkImluIHRoaXMmJihmLmlkPXRoaXMuaWQpLGZ9O3ZhciBDbz1QbztmdW5jdGlvbiBQbyh0LGUpe3RoaXMudmVyc2lvbj0xLHRoaXMubmFtZT1udWxsLHRoaXMuZXh0ZW50PTQwOTYsdGhpcy5sZW5ndGg9MCx0aGlzLl9wYmY9dCx0aGlzLl9rZXlzPVtdLHRoaXMuX3ZhbHVlcz1bXSx0aGlzLl9mZWF0dXJlcz1bXSx0LnJlYWRGaWVsZHMoT28sdGhpcyxlKSx0aGlzLmxlbmd0aD10aGlzLl9mZWF0dXJlcy5sZW5ndGh9ZnVuY3Rpb24gT28odCxlLHIpezE1PT09dD9lLnZlcnNpb249ci5yZWFkVmFyaW50KCk6MT09PXQ/ZS5uYW1lPXIucmVhZFN0cmluZygpOjU9PT10P2UuZXh0ZW50PXIucmVhZFZhcmludCgpOjI9PT10P2UuX2ZlYXR1cmVzLnB1c2goci5wb3MpOjM9PT10P2UuX2tleXMucHVzaChyLnJlYWRTdHJpbmcoKSk6ND09PXQmJmUuX3ZhbHVlcy5wdXNoKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1udWxsLHI9dC5yZWFkVmFyaW50KCkrdC5wb3M7dC5wb3M8cjspe3ZhciBuPXQucmVhZFZhcmludCgpPj4zO2U9MT09PW4/dC5yZWFkU3RyaW5nKCk6Mj09PW4/dC5yZWFkRmxvYXQoKTozPT09bj90LnJlYWREb3VibGUoKTo0PT09bj90LnJlYWRWYXJpbnQ2NCgpOjU9PT1uP3QucmVhZFZhcmludCgpOjY9PT1uP3QucmVhZFNWYXJpbnQoKTo3PT09bj90LnJlYWRCb29sZWFuKCk6bnVsbH1yZXR1cm4gZX0ocikpfWZ1bmN0aW9uIHpvKHQsZSxyKXtpZigzPT09dCl7dmFyIG49bmV3IENvKHIsci5yZWFkVmFyaW50KCkrci5wb3MpO24ubGVuZ3RoJiYoZVtuLm5hbWVdPW4pfX1Qby5wcm90b3R5cGUuZmVhdHVyZT1mdW5jdGlvbih0KXtpZih0PDB8fHQ+PXRoaXMuX2ZlYXR1cmVzLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImZlYXR1cmUgaW5kZXggb3V0IG9mIGJvdW5kcyIpO3RoaXMuX3BiZi5wb3M9dGhpcy5fZmVhdHVyZXNbdF07dmFyIGU9dGhpcy5fcGJmLnJlYWRWYXJpbnQoKSt0aGlzLl9wYmYucG9zO3JldHVybiBuZXcgQW8odGhpcy5fcGJmLGUsdGhpcy5leHRlbnQsdGhpcy5fa2V5cyx0aGlzLl92YWx1ZXMpfTt2YXIgSW89e1ZlY3RvclRpbGU6ZnVuY3Rpb24odCxlKXt0aGlzLmxheWVycz10LnJlYWRGaWVsZHMoem8se30sZSl9LFZlY3RvclRpbGVGZWF0dXJlOkFvLFZlY3RvclRpbGVMYXllcjpDb30sRG89SW8uVmVjdG9yVGlsZUZlYXR1cmUudHlwZXMsUm89TWF0aC5wb3coMiwxMyk7ZnVuY3Rpb24gRm8odCxlLHIsbixhLGksbyxzKXt0LmVtcGxhY2VCYWNrKGUsciwyKk1hdGguZmxvb3IobipSbykrbyxhKlJvKjIsaSpSbyoyLE1hdGgucm91bmQocykpfXZhciBCbz1mdW5jdGlvbih0KXt0aGlzLnpvb209dC56b29tLHRoaXMub3ZlcnNjYWxpbmc9dC5vdmVyc2NhbGluZyx0aGlzLmxheWVycz10LmxheWVycyx0aGlzLmxheWVySWRzPXRoaXMubGF5ZXJzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZH0pLHRoaXMuaW5kZXg9dC5pbmRleCx0aGlzLmhhc1BhdHRlcm49ITEsdGhpcy5sYXlvdXRWZXJ0ZXhBcnJheT1uZXcgdGEsdGhpcy5pbmRleEFycmF5PW5ldyBkYSx0aGlzLnByb2dyYW1Db25maWd1cmF0aW9ucz1uZXcgUWEoTW8sdC5sYXllcnMsdC56b29tKSx0aGlzLnNlZ21lbnRzPW5ldyBPYSx0aGlzLnN0YXRlRGVwZW5kZW50TGF5ZXJJZHM9dGhpcy5sYXllcnMuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlzU3RhdGVEZXBlbmRlbnQoKX0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZH0pfTtmdW5jdGlvbiBObyh0LGUpe3JldHVybiB0Lng9PT1lLngmJih0Lng8MHx8dC54PmVpKXx8dC55PT09ZS55JiYodC55PDB8fHQueT5laSl9ZnVuY3Rpb24gam8odCl7cmV0dXJuIHQuZXZlcnkoZnVuY3Rpb24odCl7cmV0dXJuIHQueDwwfSl8fHQuZXZlcnkoZnVuY3Rpb24odCl7cmV0dXJuIHQueD5laX0pfHx0LmV2ZXJ5KGZ1bmN0aW9uKHQpe3JldHVybiB0Lnk8MH0pfHx0LmV2ZXJ5KGZ1bmN0aW9uKHQpe3JldHVybiB0Lnk+ZWl9KX1Cby5wcm90b3R5cGUucG9wdWxhdGU9ZnVuY3Rpb24odCxlKXt0aGlzLmZlYXR1cmVzPVtdLHRoaXMuaGFzUGF0dGVybj14bygiZmlsbC1leHRydXNpb24iLHRoaXMubGF5ZXJzLGUpO2Zvcih2YXIgcj0wLG49dDtyPG4ubGVuZ3RoO3IrPTEpe3ZhciBhPW5bcl0saT1hLmZlYXR1cmUsbz1hLmluZGV4LHM9YS5zb3VyY2VMYXllckluZGV4O2lmKHRoaXMubGF5ZXJzWzBdLl9mZWF0dXJlRmlsdGVyKG5ldyBQbih0aGlzLnpvb20pLGkpKXt2YXIgbD1uaShpKSxjPXtzb3VyY2VMYXllckluZGV4OnMsaW5kZXg6byxnZW9tZXRyeTpsLHByb3BlcnRpZXM6aS5wcm9wZXJ0aWVzLHR5cGU6aS50eXBlLHBhdHRlcm5zOnt9fTt2b2lkIDAhPT1pLmlkJiYoYy5pZD1pLmlkKSx0aGlzLmhhc1BhdHRlcm4/dGhpcy5mZWF0dXJlcy5wdXNoKGJvKCJmaWxsLWV4dHJ1c2lvbiIsdGhpcy5sYXllcnMsYyx0aGlzLnpvb20sZSkpOnRoaXMuYWRkRmVhdHVyZShjLGwsbyx7fSksZS5mZWF0dXJlSW5kZXguaW5zZXJ0KGksbCxvLHMsdGhpcy5pbmRleCwhMCl9fX0sQm8ucHJvdG90eXBlLmFkZEZlYXR1cmVzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTAsbj10aGlzLmZlYXR1cmVzO3I8bi5sZW5ndGg7cis9MSl7dmFyIGE9bltyXSxpPWEuZ2VvbWV0cnk7dGhpcy5hZGRGZWF0dXJlKGEsaSxhLmluZGV4LGUpfX0sQm8ucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbih0LGUscil7dGhpcy5zdGF0ZURlcGVuZGVudExheWVycy5sZW5ndGgmJnRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLnVwZGF0ZVBhaW50QXJyYXlzKHQsZSx0aGlzLnN0YXRlRGVwZW5kZW50TGF5ZXJzLHIpfSxCby5wcm90b3R5cGUuaXNFbXB0eT1mdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5sYXlvdXRWZXJ0ZXhBcnJheS5sZW5ndGh9LEJvLnByb3RvdHlwZS51cGxvYWRQZW5kaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMudXBsb2FkZWR8fHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLm5lZWRzVXBsb2FkfSxCby5wcm90b3R5cGUudXBsb2FkPWZ1bmN0aW9uKHQpe3RoaXMudXBsb2FkZWR8fCh0aGlzLmxheW91dFZlcnRleEJ1ZmZlcj10LmNyZWF0ZVZlcnRleEJ1ZmZlcih0aGlzLmxheW91dFZlcnRleEFycmF5LE1vKSx0aGlzLmluZGV4QnVmZmVyPXQuY3JlYXRlSW5kZXhCdWZmZXIodGhpcy5pbmRleEFycmF5KSksdGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnMudXBsb2FkKHQpLHRoaXMudXBsb2FkZWQ9ITB9LEJvLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5sYXlvdXRWZXJ0ZXhCdWZmZXImJih0aGlzLmxheW91dFZlcnRleEJ1ZmZlci5kZXN0cm95KCksdGhpcy5pbmRleEJ1ZmZlci5kZXN0cm95KCksdGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnMuZGVzdHJveSgpLHRoaXMuc2VnbWVudHMuZGVzdHJveSgpKX0sQm8ucHJvdG90eXBlLmFkZEZlYXR1cmU9ZnVuY3Rpb24odCxlLHIsbil7Zm9yKHZhciBhPTAsaT1tbyhlLDUwMCk7YTxpLmxlbmd0aDthKz0xKXtmb3IodmFyIG89aVthXSxzPTAsbD0wLGM9bztsPGMubGVuZ3RoO2wrPTEpcys9Y1tsXS5sZW5ndGg7Zm9yKHZhciB1PXRoaXMuc2VnbWVudHMucHJlcGFyZVNlZ21lbnQoNCx0aGlzLmxheW91dFZlcnRleEFycmF5LHRoaXMuaW5kZXhBcnJheSksaD0wLGY9bztoPGYubGVuZ3RoO2grPTEpe3ZhciBwPWZbaF07aWYoMCE9PXAubGVuZ3RoJiYham8ocCkpZm9yKHZhciBkPTAsZz0wO2c8cC5sZW5ndGg7ZysrKXt2YXIgdj1wW2ddO2lmKGc+PTEpe3ZhciBtPXBbZy0xXTtpZighTm8odixtKSl7dS52ZXJ0ZXhMZW5ndGgrND5PYS5NQVhfVkVSVEVYX0FSUkFZX0xFTkdUSCYmKHU9dGhpcy5zZWdtZW50cy5wcmVwYXJlU2VnbWVudCg0LHRoaXMubGF5b3V0VmVydGV4QXJyYXksdGhpcy5pbmRleEFycmF5KSk7dmFyIHk9di5zdWIobSkuX3BlcnAoKS5fdW5pdCgpLHg9bS5kaXN0KHYpO2QreD4zMjc2OCYmKGQ9MCksRm8odGhpcy5sYXlvdXRWZXJ0ZXhBcnJheSx2Lngsdi55LHkueCx5LnksMCwwLGQpLEZvKHRoaXMubGF5b3V0VmVydGV4QXJyYXksdi54LHYueSx5LngseS55LDAsMSxkKSxkKz14LEZvKHRoaXMubGF5b3V0VmVydGV4QXJyYXksbS54LG0ueSx5LngseS55LDAsMCxkKSxGbyh0aGlzLmxheW91dFZlcnRleEFycmF5LG0ueCxtLnkseS54LHkueSwwLDEsZCk7dmFyIGI9dS52ZXJ0ZXhMZW5ndGg7dGhpcy5pbmRleEFycmF5LmVtcGxhY2VCYWNrKGIsYisyLGIrMSksdGhpcy5pbmRleEFycmF5LmVtcGxhY2VCYWNrKGIrMSxiKzIsYiszKSx1LnZlcnRleExlbmd0aCs9NCx1LnByaW1pdGl2ZUxlbmd0aCs9Mn19fX1pZih1LnZlcnRleExlbmd0aCtzPk9hLk1BWF9WRVJURVhfQVJSQVlfTEVOR1RIJiYodT10aGlzLnNlZ21lbnRzLnByZXBhcmVTZWdtZW50KHMsdGhpcy5sYXlvdXRWZXJ0ZXhBcnJheSx0aGlzLmluZGV4QXJyYXkpKSwiUG9seWdvbiI9PT1Eb1t0LnR5cGVdKXtmb3IodmFyIF89W10sdz1bXSxrPXUudmVydGV4TGVuZ3RoLFQ9MCxNPW87VDxNLmxlbmd0aDtUKz0xKXt2YXIgQT1NW1RdO2lmKDAhPT1BLmxlbmd0aCl7QSE9PW9bMF0mJncucHVzaChfLmxlbmd0aC8yKTtmb3IodmFyIFM9MDtTPEEubGVuZ3RoO1MrKyl7dmFyIEU9QVtTXTtGbyh0aGlzLmxheW91dFZlcnRleEFycmF5LEUueCxFLnksMCwwLDEsMSwwKSxfLnB1c2goRS54KSxfLnB1c2goRS55KX19fWZvcih2YXIgTD1OaShfLHcpLEM9MDtDPEwubGVuZ3RoO0MrPTMpdGhpcy5pbmRleEFycmF5LmVtcGxhY2VCYWNrKGsrTFtDXSxrK0xbQysyXSxrK0xbQysxXSk7dS5wcmltaXRpdmVMZW5ndGgrPUwubGVuZ3RoLzMsdS52ZXJ0ZXhMZW5ndGgrPXN9fXRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLnBvcHVsYXRlUGFpbnRBcnJheXModGhpcy5sYXlvdXRWZXJ0ZXhBcnJheS5sZW5ndGgsdCxyLG4pfSxkbigiRmlsbEV4dHJ1c2lvbkJ1Y2tldCIsQm8se29taXQ6WyJsYXllcnMiLCJmZWF0dXJlcyJdfSk7dmFyIFZvPXtwYWludDpuZXcgR24oeyJmaWxsLWV4dHJ1c2lvbi1vcGFjaXR5IjpuZXcgam4oVHRbInBhaW50X2ZpbGwtZXh0cnVzaW9uIl1bImZpbGwtZXh0cnVzaW9uLW9wYWNpdHkiXSksImZpbGwtZXh0cnVzaW9uLWNvbG9yIjpuZXcgVm4oVHRbInBhaW50X2ZpbGwtZXh0cnVzaW9uIl1bImZpbGwtZXh0cnVzaW9uLWNvbG9yIl0pLCJmaWxsLWV4dHJ1c2lvbi10cmFuc2xhdGUiOm5ldyBqbihUdFsicGFpbnRfZmlsbC1leHRydXNpb24iXVsiZmlsbC1leHRydXNpb24tdHJhbnNsYXRlIl0pLCJmaWxsLWV4dHJ1c2lvbi10cmFuc2xhdGUtYW5jaG9yIjpuZXcgam4oVHRbInBhaW50X2ZpbGwtZXh0cnVzaW9uIl1bImZpbGwtZXh0cnVzaW9uLXRyYW5zbGF0ZS1hbmNob3IiXSksImZpbGwtZXh0cnVzaW9uLXBhdHRlcm4iOm5ldyBVbihUdFsicGFpbnRfZmlsbC1leHRydXNpb24iXVsiZmlsbC1leHRydXNpb24tcGF0dGVybiJdKSwiZmlsbC1leHRydXNpb24taGVpZ2h0IjpuZXcgVm4oVHRbInBhaW50X2ZpbGwtZXh0cnVzaW9uIl1bImZpbGwtZXh0cnVzaW9uLWhlaWdodCJdKSwiZmlsbC1leHRydXNpb24tYmFzZSI6bmV3IFZuKFR0WyJwYWludF9maWxsLWV4dHJ1c2lvbiJdWyJmaWxsLWV4dHJ1c2lvbi1iYXNlIl0pLCJmaWxsLWV4dHJ1c2lvbi12ZXJ0aWNhbC1ncmFkaWVudCI6bmV3IGpuKFR0WyJwYWludF9maWxsLWV4dHJ1c2lvbiJdWyJmaWxsLWV4dHJ1c2lvbi12ZXJ0aWNhbC1ncmFkaWVudCJdKX0pfSxVbz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3QuY2FsbCh0aGlzLGUsVm8pfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5jcmVhdGVCdWNrZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBCbyh0KX0sZS5wcm90b3R5cGUucXVlcnlSYWRpdXM9ZnVuY3Rpb24oKXtyZXR1cm4geWkodGhpcy5wYWludC5nZXQoImZpbGwtZXh0cnVzaW9uLXRyYW5zbGF0ZSIpKX0sZS5wcm90b3R5cGUuaXMzRD1mdW5jdGlvbigpe3JldHVybiEwfSxlLnByb3RvdHlwZS5xdWVyeUludGVyc2VjdHNGZWF0dXJlPWZ1bmN0aW9uKHQsZSxyLG4saSxvLHMsbCl7dmFyIGM9eGkodCx0aGlzLnBhaW50LmdldCgiZmlsbC1leHRydXNpb24tdHJhbnNsYXRlIiksdGhpcy5wYWludC5nZXQoImZpbGwtZXh0cnVzaW9uLXRyYW5zbGF0ZS1hbmNob3IiKSxvLmFuZ2xlLHMpLHU9dGhpcy5wYWludC5nZXQoImZpbGwtZXh0cnVzaW9uLWhlaWdodCIpLmV2YWx1YXRlKGUsciksaD10aGlzLnBhaW50LmdldCgiZmlsbC1leHRydXNpb24tYmFzZSIpLmV2YWx1YXRlKGUsciksZj1mdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGk9W10sbz0wLHM9dDtvPHMubGVuZ3RoO28rPTEpe3ZhciBsPXNbb10sYz1bbC54LGwueSwwLDFdO1RpKGMsYyxlKSxpLnB1c2gobmV3IGEoY1swXS9jWzNdLGNbMV0vY1szXSkpfXJldHVybiBpfShjLGwpLHA9ZnVuY3Rpb24odCxlLHIsbil7Zm9yKHZhciBpPVtdLG89W10scz1uWzhdKmUsbD1uWzldKmUsYz1uWzEwXSplLHU9blsxMV0qZSxoPW5bOF0qcixmPW5bOV0qcixwPW5bMTBdKnIsZD1uWzExXSpyLGc9MCx2PXQ7Zzx2Lmxlbmd0aDtnKz0xKXtmb3IodmFyIG09W10seT1bXSx4PTAsYj12W2ddO3g8Yi5sZW5ndGg7eCs9MSl7dmFyIF89Ylt4XSx3PV8ueCxrPV8ueSxUPW5bMF0qdytuWzRdKmsrblsxMl0sTT1uWzFdKncrbls1XSprK25bMTNdLEE9blsyXSp3K25bNl0qaytuWzE0XSxTPW5bM10qdytuWzddKmsrblsxNV0sRT1BK2MsTD1TK3UsQz1UK2gsUD1NK2YsTz1BK3Asej1TK2QsST1uZXcgYSgoVCtzKS9MLChNK2wpL0wpO0kuej1FL0wsbS5wdXNoKEkpO3ZhciBEPW5ldyBhKEMveixQL3opO0Quej1PL3oseS5wdXNoKEQpfWkucHVzaChtKSxvLnB1c2goeSl9cmV0dXJuW2ksb119KG4saCx1LGwpO3JldHVybiBmdW5jdGlvbih0LGUscil7dmFyIG49MS8wO2xpKHIsZSkmJihuPUhvKHIsZVswXSkpO2Zvcih2YXIgYT0wO2E8ZS5sZW5ndGg7YSsrKWZvcih2YXIgaT1lW2FdLG89dFthXSxzPTA7czxpLmxlbmd0aC0xO3MrKyl7dmFyIGw9aVtzXSxjPWlbcysxXSx1PW9bc10saD1bbCxjLG9bcysxXSx1LGxdO29pKHIsaCkmJihuPU1hdGgubWluKG4sSG8ocixoKSkpfXJldHVybiBuIT09MS8wJiZufShwWzBdLHBbMV0sZil9LGV9KFluKTtmdW5jdGlvbiBxbyh0LGUpe3JldHVybiB0LngqZS54K3QueSplLnl9ZnVuY3Rpb24gSG8odCxlKXtpZigxPT09dC5sZW5ndGgpe3ZhciByPWVbMF0sbj1lWzFdLGE9ZVszXSxpPXRbMF0sbz1uLnN1YihyKSxzPWEuc3ViKHIpLGw9aS5zdWIociksYz1xbyhvLG8pLHU9cW8obyxzKSxoPXFvKHMscyksZj1xbyhsLG8pLHA9cW8obCxzKSxkPWMqaC11KnUsZz0oaCpmLXUqcCkvZCx2PShjKnAtdSpmKS9kLG09MS1nLXY7cmV0dXJuIHIueiptK24ueipnK2Eueip2fWZvcih2YXIgeT0xLzAseD0wLGI9ZTt4PGIubGVuZ3RoO3grPTEpe3ZhciBfPWJbeF07eT1NYXRoLm1pbih5LF8ueil9cmV0dXJuIHl9dmFyIEdvPUpuKFt7bmFtZToiYV9wb3Nfbm9ybWFsIixjb21wb25lbnRzOjIsdHlwZToiSW50MTYifSx7bmFtZToiYV9kYXRhIixjb21wb25lbnRzOjQsdHlwZToiVWludDgifV0sNCkubWVtYmVycyxZbz1Jby5WZWN0b3JUaWxlRmVhdHVyZS50eXBlcyxXbz1NYXRoLmNvcyhNYXRoLlBJLzE4MCozNy41KSxYbz1NYXRoLnBvdygyLDE0KS8uNSxabz1mdW5jdGlvbih0KXt0aGlzLnpvb209dC56b29tLHRoaXMub3ZlcnNjYWxpbmc9dC5vdmVyc2NhbGluZyx0aGlzLmxheWVycz10LmxheWVycyx0aGlzLmxheWVySWRzPXRoaXMubGF5ZXJzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZH0pLHRoaXMuaW5kZXg9dC5pbmRleCx0aGlzLmhhc1BhdHRlcm49ITEsdGhpcy5wYXR0ZXJuRmVhdHVyZXM9W10sdGhpcy5sYXlvdXRWZXJ0ZXhBcnJheT1uZXcgZWEsdGhpcy5pbmRleEFycmF5PW5ldyBkYSx0aGlzLnByb2dyYW1Db25maWd1cmF0aW9ucz1uZXcgUWEoR28sdC5sYXllcnMsdC56b29tKSx0aGlzLnNlZ21lbnRzPW5ldyBPYSx0aGlzLnN0YXRlRGVwZW5kZW50TGF5ZXJJZHM9dGhpcy5sYXllcnMuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlzU3RhdGVEZXBlbmRlbnQoKX0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZH0pfTtaby5wcm90b3R5cGUucG9wdWxhdGU9ZnVuY3Rpb24odCxlKXt0aGlzLmhhc1BhdHRlcm49eG8oImxpbmUiLHRoaXMubGF5ZXJzLGUpO2Zvcih2YXIgcj10aGlzLmxheWVyc1swXS5sYXlvdXQuZ2V0KCJsaW5lLXNvcnQta2V5Iiksbj1bXSxhPTAsaT10O2E8aS5sZW5ndGg7YSs9MSl7dmFyIG89aVthXSxzPW8uZmVhdHVyZSxsPW8uaW5kZXgsYz1vLnNvdXJjZUxheWVySW5kZXg7aWYodGhpcy5sYXllcnNbMF0uX2ZlYXR1cmVGaWx0ZXIobmV3IFBuKHRoaXMuem9vbSkscykpe3ZhciB1PW5pKHMpLGg9cj9yLmV2YWx1YXRlKHMse30pOnZvaWQgMCxmPXtpZDpzLmlkLHByb3BlcnRpZXM6cy5wcm9wZXJ0aWVzLHR5cGU6cy50eXBlLHNvdXJjZUxheWVySW5kZXg6YyxpbmRleDpsLGdlb21ldHJ5OnUscGF0dGVybnM6e30sc29ydEtleTpofTtuLnB1c2goZil9fXImJm4uc29ydChmdW5jdGlvbih0LGUpe3JldHVybiB0LnNvcnRLZXktZS5zb3J0S2V5fSk7Zm9yKHZhciBwPTAsZD1uO3A8ZC5sZW5ndGg7cCs9MSl7dmFyIGc9ZFtwXSx2PWcsbT12Lmdlb21ldHJ5LHk9di5pbmRleCx4PXYuc291cmNlTGF5ZXJJbmRleDtpZih0aGlzLmhhc1BhdHRlcm4pe3ZhciBiPWJvKCJsaW5lIix0aGlzLmxheWVycyxnLHRoaXMuem9vbSxlKTt0aGlzLnBhdHRlcm5GZWF0dXJlcy5wdXNoKGIpfWVsc2UgdGhpcy5hZGRGZWF0dXJlKGcsbSx5LHt9KTt2YXIgXz10W3ldLmZlYXR1cmU7ZS5mZWF0dXJlSW5kZXguaW5zZXJ0KF8sbSx5LHgsdGhpcy5pbmRleCl9fSxaby5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLnN0YXRlRGVwZW5kZW50TGF5ZXJzLmxlbmd0aCYmdGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnMudXBkYXRlUGFpbnRBcnJheXModCxlLHRoaXMuc3RhdGVEZXBlbmRlbnRMYXllcnMscil9LFpvLnByb3RvdHlwZS5hZGRGZWF0dXJlcz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wLG49dGhpcy5wYXR0ZXJuRmVhdHVyZXM7cjxuLmxlbmd0aDtyKz0xKXt2YXIgYT1uW3JdO3RoaXMuYWRkRmVhdHVyZShhLGEuZ2VvbWV0cnksYS5pbmRleCxlKX19LFpvLnByb3RvdHlwZS5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLmxheW91dFZlcnRleEFycmF5Lmxlbmd0aH0sWm8ucHJvdG90eXBlLnVwbG9hZFBlbmRpbmc9ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy51cGxvYWRlZHx8dGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnMubmVlZHNVcGxvYWR9LFpvLnByb3RvdHlwZS51cGxvYWQ9ZnVuY3Rpb24odCl7dGhpcy51cGxvYWRlZHx8KHRoaXMubGF5b3V0VmVydGV4QnVmZmVyPXQuY3JlYXRlVmVydGV4QnVmZmVyKHRoaXMubGF5b3V0VmVydGV4QXJyYXksR28pLHRoaXMuaW5kZXhCdWZmZXI9dC5jcmVhdGVJbmRleEJ1ZmZlcih0aGlzLmluZGV4QXJyYXkpKSx0aGlzLnByb2dyYW1Db25maWd1cmF0aW9ucy51cGxvYWQodCksdGhpcy51cGxvYWRlZD0hMH0sWm8ucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLmxheW91dFZlcnRleEJ1ZmZlciYmKHRoaXMubGF5b3V0VmVydGV4QnVmZmVyLmRlc3Ryb3koKSx0aGlzLmluZGV4QnVmZmVyLmRlc3Ryb3koKSx0aGlzLnByb2dyYW1Db25maWd1cmF0aW9ucy5kZXN0cm95KCksdGhpcy5zZWdtZW50cy5kZXN0cm95KCkpfSxaby5wcm90b3R5cGUuYWRkRmVhdHVyZT1mdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGE9dGhpcy5sYXllcnNbMF0ubGF5b3V0LGk9YS5nZXQoImxpbmUtam9pbiIpLmV2YWx1YXRlKHQse30pLG89YS5nZXQoImxpbmUtY2FwIikscz1hLmdldCgibGluZS1taXRlci1saW1pdCIpLGw9YS5nZXQoImxpbmUtcm91bmQtbGltaXQiKSxjPTAsdT1lO2M8dS5sZW5ndGg7Yys9MSl7dmFyIGg9dVtjXTt0aGlzLmFkZExpbmUoaCx0LGksbyxzLGwscixuKX19LFpvLnByb3RvdHlwZS5hZGRMaW5lPWZ1bmN0aW9uKHQsZSxyLG4sYSxpLG8scyl7aWYodGhpcy5kaXN0YW5jZT0wLHRoaXMuc2NhbGVkRGlzdGFuY2U9MCx0aGlzLnRvdGFsRGlzdGFuY2U9MCxlLnByb3BlcnRpZXMmJmUucHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eSgibWFwYm94X2NsaXBfc3RhcnQiKSYmZS5wcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KCJtYXBib3hfY2xpcF9lbmQiKSl7dGhpcy5jbGlwU3RhcnQ9K2UucHJvcGVydGllcy5tYXBib3hfY2xpcF9zdGFydCx0aGlzLmNsaXBFbmQ9K2UucHJvcGVydGllcy5tYXBib3hfY2xpcF9lbmQ7Zm9yKHZhciBsPTA7bDx0Lmxlbmd0aC0xO2wrKyl0aGlzLnRvdGFsRGlzdGFuY2UrPXRbbF0uZGlzdCh0W2wrMV0pfWZvcih2YXIgYz0iUG9seWdvbiI9PT1Zb1tlLnR5cGVdLHU9dC5sZW5ndGg7dT49MiYmdFt1LTFdLmVxdWFscyh0W3UtMl0pOyl1LS07Zm9yKHZhciBoPTA7aDx1LTEmJnRbaF0uZXF1YWxzKHRbaCsxXSk7KWgrKztpZighKHU8KGM/MzoyKSkpeyJiZXZlbCI9PT1yJiYoYT0xLjA1KTt2YXIgZixwPWVpLyg1MTIqdGhpcy5vdmVyc2NhbGluZykqMTUsZD10aGlzLnNlZ21lbnRzLnByZXBhcmVTZWdtZW50KDEwKnUsdGhpcy5sYXlvdXRWZXJ0ZXhBcnJheSx0aGlzLmluZGV4QXJyYXkpLGc9dm9pZCAwLHY9dm9pZCAwLG09dm9pZCAwLHk9dm9pZCAwO3RoaXMuZTE9dGhpcy5lMj0tMSxjJiYoZj10W3UtMl0seT10W2hdLnN1YihmKS5fdW5pdCgpLl9wZXJwKCkpO2Zvcih2YXIgeD1oO3g8dTt4KyspaWYoISh2PWMmJng9PT11LTE/dFtoKzFdOnRbeCsxXSl8fCF0W3hdLmVxdWFscyh2KSl7eSYmKG09eSksZiYmKGc9ZiksZj10W3hdLHk9dj92LnN1YihmKS5fdW5pdCgpLl9wZXJwKCk6bTt2YXIgYj0obT1tfHx5KS5hZGQoeSk7MD09PWIueCYmMD09PWIueXx8Yi5fdW5pdCgpO3ZhciBfPW0ueCp5LngrbS55KnkueSx3PWIueCp5LngrYi55KnkueSxrPTAhPT13PzEvdzoxLzAsVD0yKk1hdGguc3FydCgyLTIqdyksTT13PFdvJiZnJiZ2LEE9bS54KnkueS1tLnkqeS54PjA7aWYoTSYmeD5oKXt2YXIgUz1mLmRpc3QoZyk7aWYoUz4yKnApe3ZhciBFPWYuc3ViKGYuc3ViKGcpLl9tdWx0KHAvUykuX3JvdW5kKCkpO3RoaXMudXBkYXRlRGlzdGFuY2UoZyxFKSx0aGlzLmFkZEN1cnJlbnRWZXJ0ZXgoRSxtLDAsMCxkKSxnPUV9fXZhciBMPWcmJnYsQz1MP3I6Yz8iYnV0dCI6bjtpZihMJiYicm91bmQiPT09QyYmKGs8aT9DPSJtaXRlciI6azw9MiYmKEM9ImZha2Vyb3VuZCIpKSwibWl0ZXIiPT09QyYmaz5hJiYoQz0iYmV2ZWwiKSwiYmV2ZWwiPT09QyYmKGs+MiYmKEM9ImZsaXBiZXZlbCIpLGs8YSYmKEM9Im1pdGVyIikpLGcmJnRoaXMudXBkYXRlRGlzdGFuY2UoZyxmKSwibWl0ZXIiPT09QyliLl9tdWx0KGspLHRoaXMuYWRkQ3VycmVudFZlcnRleChmLGIsMCwwLGQpO2Vsc2UgaWYoImZsaXBiZXZlbCI9PT1DKXtpZihrPjEwMCliPXkubXVsdCgtMSk7ZWxzZXt2YXIgUD1rKm0uYWRkKHkpLm1hZygpL20uc3ViKHkpLm1hZygpO2IuX3BlcnAoKS5fbXVsdChQKihBPy0xOjEpKX10aGlzLmFkZEN1cnJlbnRWZXJ0ZXgoZixiLDAsMCxkKSx0aGlzLmFkZEN1cnJlbnRWZXJ0ZXgoZixiLm11bHQoLTEpLDAsMCxkKX1lbHNlIGlmKCJiZXZlbCI9PT1DfHwiZmFrZXJvdW5kIj09PUMpe3ZhciBPPS1NYXRoLnNxcnQoayprLTEpLHo9QT9POjAsST1BPzA6TztpZihnJiZ0aGlzLmFkZEN1cnJlbnRWZXJ0ZXgoZixtLHosSSxkKSwiZmFrZXJvdW5kIj09PUMpZm9yKHZhciBEPU1hdGgucm91bmQoMTgwKlQvTWF0aC5QSS8yMCksUj0xO1I8RDtSKyspe3ZhciBGPVIvRDtpZiguNSE9PUYpe3ZhciBCPUYtLjU7Ris9RipCKihGLTEpKigoMS4wOTA0K18qKF8qKDMuNTU2NDUtMS40MzUxOSpfKS0zLjI0NTIpKSpCKkIrKC44NDgwMTMrXyooLjIxNTYzOCpfLTEuMDYwMjEpKSl9dmFyIE49eS5zdWIobSkuX211bHQoRikuX2FkZChtKS5fdW5pdCgpLl9tdWx0KEE/LTE6MSk7dGhpcy5hZGRIYWxmVmVydGV4KGYsTi54LE4ueSwhMSxBLDAsZCl9diYmdGhpcy5hZGRDdXJyZW50VmVydGV4KGYseSwteiwtSSxkKX1lbHNlIGlmKCJidXR0Ij09PUMpdGhpcy5hZGRDdXJyZW50VmVydGV4KGYsYiwwLDAsZCk7ZWxzZSBpZigic3F1YXJlIj09PUMpe3ZhciBqPWc/MTotMTt0aGlzLmFkZEN1cnJlbnRWZXJ0ZXgoZixiLGosaixkKX1lbHNlInJvdW5kIj09PUMmJihnJiYodGhpcy5hZGRDdXJyZW50VmVydGV4KGYsbSwwLDAsZCksdGhpcy5hZGRDdXJyZW50VmVydGV4KGYsbSwxLDEsZCwhMCkpLHYmJih0aGlzLmFkZEN1cnJlbnRWZXJ0ZXgoZix5LC0xLC0xLGQsITApLHRoaXMuYWRkQ3VycmVudFZlcnRleChmLHksMCwwLGQpKSk7aWYoTSYmeDx1LTEpe3ZhciBWPWYuZGlzdCh2KTtpZihWPjIqcCl7dmFyIFU9Zi5hZGQodi5zdWIoZikuX211bHQocC9WKS5fcm91bmQoKSk7dGhpcy51cGRhdGVEaXN0YW5jZShmLFUpLHRoaXMuYWRkQ3VycmVudFZlcnRleChVLHksMCwwLGQpLGY9VX19fXRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLnBvcHVsYXRlUGFpbnRBcnJheXModGhpcy5sYXlvdXRWZXJ0ZXhBcnJheS5sZW5ndGgsZSxvLHMpfX0sWm8ucHJvdG90eXBlLmFkZEN1cnJlbnRWZXJ0ZXg9ZnVuY3Rpb24odCxlLHIsbixhLGkpe3ZvaWQgMD09PWkmJihpPSExKTt2YXIgbz1lLngrZS55KnIscz1lLnktZS54KnIsbD0tZS54K2UueSpuLGM9LWUueS1lLngqbjt0aGlzLmFkZEhhbGZWZXJ0ZXgodCxvLHMsaSwhMSxyLGEpLHRoaXMuYWRkSGFsZlZlcnRleCh0LGwsYyxpLCEwLC1uLGEpLHRoaXMuZGlzdGFuY2U+WG8vMiYmMD09PXRoaXMudG90YWxEaXN0YW5jZSYmKHRoaXMuZGlzdGFuY2U9MCx0aGlzLmFkZEN1cnJlbnRWZXJ0ZXgodCxlLHIsbixhLGkpKX0sWm8ucHJvdG90eXBlLmFkZEhhbGZWZXJ0ZXg9ZnVuY3Rpb24odCxlLHIsbixhLGksbyl7dmFyIHM9dC54LGw9dC55LGM9LjUqdGhpcy5zY2FsZWREaXN0YW5jZTt0aGlzLmxheW91dFZlcnRleEFycmF5LmVtcGxhY2VCYWNrKChzPDwxKSsobj8xOjApLChsPDwxKSsoYT8xOjApLE1hdGgucm91bmQoNjMqZSkrMTI4LE1hdGgucm91bmQoNjMqcikrMTI4LDErKDA9PT1pPzA6aTwwPy0xOjEpfCg2MyZjKTw8MixjPj42KTt2YXIgdT1vLnZlcnRleExlbmd0aCsrO3RoaXMuZTE+PTAmJnRoaXMuZTI+PTAmJih0aGlzLmluZGV4QXJyYXkuZW1wbGFjZUJhY2sodGhpcy5lMSx0aGlzLmUyLHUpLG8ucHJpbWl0aXZlTGVuZ3RoKyspLGE/dGhpcy5lMj11OnRoaXMuZTE9dX0sWm8ucHJvdG90eXBlLnVwZGF0ZURpc3RhbmNlPWZ1bmN0aW9uKHQsZSl7dGhpcy5kaXN0YW5jZSs9dC5kaXN0KGUpLHRoaXMuc2NhbGVkRGlzdGFuY2U9dGhpcy50b3RhbERpc3RhbmNlPjA/KHRoaXMuY2xpcFN0YXJ0Kyh0aGlzLmNsaXBFbmQtdGhpcy5jbGlwU3RhcnQpKnRoaXMuZGlzdGFuY2UvdGhpcy50b3RhbERpc3RhbmNlKSooWG8tMSk6dGhpcy5kaXN0YW5jZX0sZG4oIkxpbmVCdWNrZXQiLFpvLHtvbWl0OlsibGF5ZXJzIiwicGF0dGVybkZlYXR1cmVzIl19KTt2YXIgSm89bmV3IEduKHsibGluZS1jYXAiOm5ldyBqbihUdC5sYXlvdXRfbGluZVsibGluZS1jYXAiXSksImxpbmUtam9pbiI6bmV3IFZuKFR0LmxheW91dF9saW5lWyJsaW5lLWpvaW4iXSksImxpbmUtbWl0ZXItbGltaXQiOm5ldyBqbihUdC5sYXlvdXRfbGluZVsibGluZS1taXRlci1saW1pdCJdKSwibGluZS1yb3VuZC1saW1pdCI6bmV3IGpuKFR0LmxheW91dF9saW5lWyJsaW5lLXJvdW5kLWxpbWl0Il0pLCJsaW5lLXNvcnQta2V5IjpuZXcgVm4oVHQubGF5b3V0X2xpbmVbImxpbmUtc29ydC1rZXkiXSl9KSxLbz17cGFpbnQ6bmV3IEduKHsibGluZS1vcGFjaXR5IjpuZXcgVm4oVHQucGFpbnRfbGluZVsibGluZS1vcGFjaXR5Il0pLCJsaW5lLWNvbG9yIjpuZXcgVm4oVHQucGFpbnRfbGluZVsibGluZS1jb2xvciJdKSwibGluZS10cmFuc2xhdGUiOm5ldyBqbihUdC5wYWludF9saW5lWyJsaW5lLXRyYW5zbGF0ZSJdKSwibGluZS10cmFuc2xhdGUtYW5jaG9yIjpuZXcgam4oVHQucGFpbnRfbGluZVsibGluZS10cmFuc2xhdGUtYW5jaG9yIl0pLCJsaW5lLXdpZHRoIjpuZXcgVm4oVHQucGFpbnRfbGluZVsibGluZS13aWR0aCJdKSwibGluZS1nYXAtd2lkdGgiOm5ldyBWbihUdC5wYWludF9saW5lWyJsaW5lLWdhcC13aWR0aCJdKSwibGluZS1vZmZzZXQiOm5ldyBWbihUdC5wYWludF9saW5lWyJsaW5lLW9mZnNldCJdKSwibGluZS1ibHVyIjpuZXcgVm4oVHQucGFpbnRfbGluZVsibGluZS1ibHVyIl0pLCJsaW5lLWRhc2hhcnJheSI6bmV3IHFuKFR0LnBhaW50X2xpbmVbImxpbmUtZGFzaGFycmF5Il0pLCJsaW5lLXBhdHRlcm4iOm5ldyBVbihUdC5wYWludF9saW5lWyJsaW5lLXBhdHRlcm4iXSksImxpbmUtZ3JhZGllbnQiOm5ldyBIbihUdC5wYWludF9saW5lWyJsaW5lLWdyYWRpZW50Il0pfSksbGF5b3V0OkpvfSxRbz1uZXcoZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5wb3NzaWJseUV2YWx1YXRlPWZ1bmN0aW9uKGUscil7cmV0dXJuIHI9bmV3IFBuKE1hdGguZmxvb3Ioci56b29tKSx7bm93OnIubm93LGZhZGVEdXJhdGlvbjpyLmZhZGVEdXJhdGlvbix6b29tSGlzdG9yeTpyLnpvb21IaXN0b3J5LHRyYW5zaXRpb246ci50cmFuc2l0aW9ufSksdC5wcm90b3R5cGUucG9zc2libHlFdmFsdWF0ZS5jYWxsKHRoaXMsZSxyKX0sZS5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oZSxyLG4sYSl7cmV0dXJuIHI9aCh7fSxyLHt6b29tOk1hdGguZmxvb3Ioci56b29tKX0pLHQucHJvdG90eXBlLmV2YWx1YXRlLmNhbGwodGhpcyxlLHIsbixhKX0sZX0oVm4pKShLby5wYWludC5wcm9wZXJ0aWVzWyJsaW5lLXdpZHRoIl0uc3BlY2lmaWNhdGlvbik7UW8udXNlSW50ZWdlclpvb209ITA7dmFyICRvPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dC5jYWxsKHRoaXMsZSxLbyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLl9oYW5kbGVTcGVjaWFsUGFpbnRQcm9wZXJ0eVVwZGF0ZT1mdW5jdGlvbih0KXsibGluZS1ncmFkaWVudCI9PT10JiZ0aGlzLl91cGRhdGVHcmFkaWVudCgpfSxlLnByb3RvdHlwZS5fdXBkYXRlR3JhZGllbnQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl90cmFuc2l0aW9uYWJsZVBhaW50Ll92YWx1ZXNbImxpbmUtZ3JhZGllbnQiXS52YWx1ZS5leHByZXNzaW9uO3RoaXMuZ3JhZGllbnQ9SWkodCwibGluZVByb2dyZXNzIiksdGhpcy5ncmFkaWVudFRleHR1cmU9bnVsbH0sZS5wcm90b3R5cGUucmVjYWxjdWxhdGU9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUucmVjYWxjdWxhdGUuY2FsbCh0aGlzLGUpLHRoaXMucGFpbnQuX3ZhbHVlc1sibGluZS1mbG9vcndpZHRoIl09UW8ucG9zc2libHlFdmFsdWF0ZSh0aGlzLl90cmFuc2l0aW9uaW5nUGFpbnQuX3ZhbHVlc1sibGluZS13aWR0aCJdLnZhbHVlLGUpfSxlLnByb3RvdHlwZS5jcmVhdGVCdWNrZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBabyh0KX0sZS5wcm90b3R5cGUucXVlcnlSYWRpdXM9ZnVuY3Rpb24odCl7dmFyIGU9dCxyPXRzKG1pKCJsaW5lLXdpZHRoIix0aGlzLGUpLG1pKCJsaW5lLWdhcC13aWR0aCIsdGhpcyxlKSksbj1taSgibGluZS1vZmZzZXQiLHRoaXMsZSk7cmV0dXJuIHIvMitNYXRoLmFicyhuKSt5aSh0aGlzLnBhaW50LmdldCgibGluZS10cmFuc2xhdGUiKSl9LGUucHJvdG90eXBlLnF1ZXJ5SW50ZXJzZWN0c0ZlYXR1cmU9ZnVuY3Rpb24odCxlLHIsbixpLG8scyl7dmFyIGw9eGkodCx0aGlzLnBhaW50LmdldCgibGluZS10cmFuc2xhdGUiKSx0aGlzLnBhaW50LmdldCgibGluZS10cmFuc2xhdGUtYW5jaG9yIiksby5hbmdsZSxzKSxjPXMvMip0cyh0aGlzLnBhaW50LmdldCgibGluZS13aWR0aCIpLmV2YWx1YXRlKGUsciksdGhpcy5wYWludC5nZXQoImxpbmUtZ2FwLXdpZHRoIikuZXZhbHVhdGUoZSxyKSksdT10aGlzLnBhaW50LmdldCgibGluZS1vZmZzZXQiKS5ldmFsdWF0ZShlLHIpO3JldHVybiB1JiYobj1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1bXSxuPW5ldyBhKDAsMCksaT0wO2k8dC5sZW5ndGg7aSsrKXtmb3IodmFyIG89dFtpXSxzPVtdLGw9MDtsPG8ubGVuZ3RoO2wrKyl7dmFyIGM9b1tsLTFdLHU9b1tsXSxoPW9bbCsxXSxmPTA9PT1sP246dS5zdWIoYykuX3VuaXQoKS5fcGVycCgpLHA9bD09PW8ubGVuZ3RoLTE/bjpoLnN1Yih1KS5fdW5pdCgpLl9wZXJwKCksZD1mLl9hZGQocCkuX3VuaXQoKSxnPWQueCpwLngrZC55KnAueTtkLl9tdWx0KDEvZykscy5wdXNoKGQuX211bHQoZSkuX2FkZCh1KSl9ci5wdXNoKHMpfXJldHVybiByfShuLHUqcykpLGZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGE9ZVtuXTtpZih0Lmxlbmd0aD49Mylmb3IodmFyIGk9MDtpPGEubGVuZ3RoO2krKylpZihnaSh0LGFbaV0pKXJldHVybiEwO2lmKGNpKHQsYSxyKSlyZXR1cm4hMH1yZXR1cm4hMX0obCxuLGMpfSxlLnByb3RvdHlwZS5pc1RpbGVDbGlwcGVkPWZ1bmN0aW9uKCl7cmV0dXJuITB9LGV9KFluKTtmdW5jdGlvbiB0cyh0LGUpe3JldHVybiBlPjA/ZSsyKnQ6dH12YXIgZXM9Sm4oW3tuYW1lOiJhX3Bvc19vZmZzZXQiLGNvbXBvbmVudHM6NCx0eXBlOiJJbnQxNiJ9LHtuYW1lOiJhX2RhdGEiLGNvbXBvbmVudHM6NCx0eXBlOiJVaW50MTYifV0pLHJzPUpuKFt7bmFtZToiYV9wcm9qZWN0ZWRfcG9zIixjb21wb25lbnRzOjMsdHlwZToiRmxvYXQzMiJ9XSw0KSxucz0oSm4oW3tuYW1lOiJhX2ZhZGVfb3BhY2l0eSIsY29tcG9uZW50czoxLHR5cGU6IlVpbnQzMiJ9XSw0KSxKbihbe25hbWU6ImFfcGxhY2VkIixjb21wb25lbnRzOjIsdHlwZToiVWludDgifSx7bmFtZToiYV9zaGlmdCIsY29tcG9uZW50czoyLHR5cGU6IkZsb2F0MzIifV0pKSxhcz0oSm4oW3t0eXBlOiJJbnQxNiIsbmFtZToiYW5jaG9yUG9pbnRYIn0se3R5cGU6IkludDE2IixuYW1lOiJhbmNob3JQb2ludFkifSx7dHlwZToiSW50MTYiLG5hbWU6IngxIn0se3R5cGU6IkludDE2IixuYW1lOiJ5MSJ9LHt0eXBlOiJJbnQxNiIsbmFtZToieDIifSx7dHlwZToiSW50MTYiLG5hbWU6InkyIn0se3R5cGU6IlVpbnQzMiIsbmFtZToiZmVhdHVyZUluZGV4In0se3R5cGU6IlVpbnQxNiIsbmFtZToic291cmNlTGF5ZXJJbmRleCJ9LHt0eXBlOiJVaW50MTYiLG5hbWU6ImJ1Y2tldEluZGV4In0se3R5cGU6IkludDE2IixuYW1lOiJyYWRpdXMifSx7dHlwZToiSW50MTYiLG5hbWU6InNpZ25lZERpc3RhbmNlRnJvbUFuY2hvciJ9XSksSm4oW3tuYW1lOiJhX3BvcyIsY29tcG9uZW50czoyLHR5cGU6IkludDE2In0se25hbWU6ImFfYW5jaG9yX3BvcyIsY29tcG9uZW50czoyLHR5cGU6IkludDE2In0se25hbWU6ImFfZXh0cnVkZSIsY29tcG9uZW50czoyLHR5cGU6IkludDE2In1dLDQpKSxpcz1Kbihbe25hbWU6ImFfcG9zIixjb21wb25lbnRzOjIsdHlwZToiSW50MTYifSx7bmFtZToiYV9hbmNob3JfcG9zIixjb21wb25lbnRzOjIsdHlwZToiSW50MTYifSx7bmFtZToiYV9leHRydWRlIixjb21wb25lbnRzOjIsdHlwZToiSW50MTYifV0sNCk7ZnVuY3Rpb24gb3ModCxlLHIpe3JldHVybiB0LnNlY3Rpb25zLmZvckVhY2goZnVuY3Rpb24odCl7dC50ZXh0PWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lLmxheW91dC5nZXQoInRleHQtdHJhbnNmb3JtIikuZXZhbHVhdGUocix7fSk7cmV0dXJuInVwcGVyY2FzZSI9PT1uP3Q9dC50b0xvY2FsZVVwcGVyQ2FzZSgpOiJsb3dlcmNhc2UiPT09biYmKHQ9dC50b0xvY2FsZUxvd2VyQ2FzZSgpKSxDbi5hcHBseUFyYWJpY1NoYXBpbmcmJih0PUNuLmFwcGx5QXJhYmljU2hhcGluZyh0KSksdH0odC50ZXh0LGUscil9KSx0fUpuKFt7dHlwZToiSW50MTYiLG5hbWU6ImFuY2hvclgifSx7dHlwZToiSW50MTYiLG5hbWU6ImFuY2hvclkifSx7dHlwZToiVWludDE2IixuYW1lOiJnbHlwaFN0YXJ0SW5kZXgifSx7dHlwZToiVWludDE2IixuYW1lOiJudW1HbHlwaHMifSx7dHlwZToiVWludDMyIixuYW1lOiJ2ZXJ0ZXhTdGFydEluZGV4In0se3R5cGU6IlVpbnQzMiIsbmFtZToibGluZVN0YXJ0SW5kZXgifSx7dHlwZToiVWludDMyIixuYW1lOiJsaW5lTGVuZ3RoIn0se3R5cGU6IlVpbnQxNiIsbmFtZToic2VnbWVudCJ9LHt0eXBlOiJVaW50MTYiLG5hbWU6Imxvd2VyU2l6ZSJ9LHt0eXBlOiJVaW50MTYiLG5hbWU6InVwcGVyU2l6ZSJ9LHt0eXBlOiJGbG9hdDMyIixuYW1lOiJsaW5lT2Zmc2V0WCJ9LHt0eXBlOiJGbG9hdDMyIixuYW1lOiJsaW5lT2Zmc2V0WSJ9LHt0eXBlOiJVaW50OCIsbmFtZToid3JpdGluZ01vZGUifSx7dHlwZToiVWludDgiLG5hbWU6InBsYWNlZE9yaWVudGF0aW9uIn0se3R5cGU6IlVpbnQ4IixuYW1lOiJoaWRkZW4ifSx7dHlwZToiVWludDMyIixuYW1lOiJjcm9zc1RpbGVJRCJ9XSksSm4oW3t0eXBlOiJJbnQxNiIsbmFtZToiYW5jaG9yWCJ9LHt0eXBlOiJJbnQxNiIsbmFtZToiYW5jaG9yWSJ9LHt0eXBlOiJJbnQxNiIsbmFtZToicmlnaHRKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXgifSx7dHlwZToiSW50MTYiLG5hbWU6ImNlbnRlckp1c3RpZmllZFRleHRTeW1ib2xJbmRleCJ9LHt0eXBlOiJJbnQxNiIsbmFtZToibGVmdEp1c3RpZmllZFRleHRTeW1ib2xJbmRleCJ9LHt0eXBlOiJJbnQxNiIsbmFtZToidmVydGljYWxQbGFjZWRUZXh0U3ltYm9sSW5kZXgifSx7dHlwZToiVWludDE2IixuYW1lOiJrZXkifSx7dHlwZToiVWludDE2IixuYW1lOiJ0ZXh0Qm94U3RhcnRJbmRleCJ9LHt0eXBlOiJVaW50MTYiLG5hbWU6InRleHRCb3hFbmRJbmRleCJ9LHt0eXBlOiJVaW50MTYiLG5hbWU6InZlcnRpY2FsVGV4dEJveFN0YXJ0SW5kZXgifSx7dHlwZToiVWludDE2IixuYW1lOiJ2ZXJ0aWNhbFRleHRCb3hFbmRJbmRleCJ9LHt0eXBlOiJVaW50MTYiLG5hbWU6Imljb25Cb3hTdGFydEluZGV4In0se3R5cGU6IlVpbnQxNiIsbmFtZToiaWNvbkJveEVuZEluZGV4In0se3R5cGU6IlVpbnQxNiIsbmFtZToiZmVhdHVyZUluZGV4In0se3R5cGU6IlVpbnQxNiIsbmFtZToibnVtSG9yaXpvbnRhbEdseXBoVmVydGljZXMifSx7dHlwZToiVWludDE2IixuYW1lOiJudW1WZXJ0aWNhbEdseXBoVmVydGljZXMifSx7dHlwZToiVWludDE2IixuYW1lOiJudW1JY29uVmVydGljZXMifSx7dHlwZToiVWludDMyIixuYW1lOiJjcm9zc1RpbGVJRCJ9LHt0eXBlOiJGbG9hdDMyIixuYW1lOiJ0ZXh0Qm94U2NhbGUifSx7dHlwZToiRmxvYXQzMiIsbmFtZToicmFkaWFsVGV4dE9mZnNldCJ9XSksSm4oW3t0eXBlOiJGbG9hdDMyIixuYW1lOiJvZmZzZXRYIn1dKSxKbihbe3R5cGU6IkludDE2IixuYW1lOiJ4In0se3R5cGU6IkludDE2IixuYW1lOiJ5In0se3R5cGU6IkludDE2IixuYW1lOiJ0aWxlVW5pdERpc3RhbmNlRnJvbUFuY2hvciJ9XSk7dmFyIHNzPXsiISI6Ilx1ZmUxNSIsIiMiOiJcdWZmMDMiLCQ6Ilx1ZmYwNCIsIiUiOiJcdWZmMDUiLCImIjoiXHVmZjA2IiwiKCI6Ilx1ZmUzNSIsIikiOiJcdWZlMzYiLCIqIjoiXHVmZjBhIiwiKyI6Ilx1ZmYwYiIsIiwiOiJcdWZlMTAiLCItIjoiXHVmZTMyIiwiLiI6Ilx1MzBmYiIsIi8iOiJcdWZmMGYiLCI6IjoiXHVmZTEzIiwiOyI6Ilx1ZmUxNCIsIjwiOiJcdWZlM2YiLCI9IjoiXHVmZjFkIiwiPiI6Ilx1ZmU0MCIsIj8iOiJcdWZlMTYiLCJAIjoiXHVmZjIwIiwiWyI6Ilx1ZmU0NyIsIlxcIjoiXHVmZjNjIiwiXSI6Ilx1ZmU0OCIsIl4iOiJcdWZmM2UiLF86Ilx1ZmUzMyIsImAiOiJcdWZmNDAiLCJ7IjoiXHVmZTM3IiwifCI6Ilx1MjAxNSIsIn0iOiJcdWZlMzgiLCJ+IjoiXHVmZjVlIiwiXHhhMiI6Ilx1ZmZlMCIsIlx4YTMiOiJcdWZmZTEiLCJceGE1IjoiXHVmZmU1IiwiXHhhNiI6Ilx1ZmZlNCIsIlx4YWMiOiJcdWZmZTIiLCJceGFmIjoiXHVmZmUzIiwiXHUyMDEzIjoiXHVmZTMyIiwiXHUyMDE0IjoiXHVmZTMxIiwiXHUyMDE4IjoiXHVmZTQzIiwiXHUyMDE5IjoiXHVmZTQ0IiwiXHUyMDFjIjoiXHVmZTQxIiwiXHUyMDFkIjoiXHVmZTQyIiwiXHUyMDI2IjoiXHVmZTE5IiwiXHUyMDI3IjoiXHUzMGZiIiwiXHUyMGE5IjoiXHVmZmU2IiwiXHUzMDAxIjoiXHVmZTExIiwiXHUzMDAyIjoiXHVmZTEyIiwiXHUzMDA4IjoiXHVmZTNmIiwiXHUzMDA5IjoiXHVmZTQwIiwiXHUzMDBhIjoiXHVmZTNkIiwiXHUzMDBiIjoiXHVmZTNlIiwiXHUzMDBjIjoiXHVmZTQxIiwiXHUzMDBkIjoiXHVmZTQyIiwiXHUzMDBlIjoiXHVmZTQzIiwiXHUzMDBmIjoiXHVmZTQ0IiwiXHUzMDEwIjoiXHVmZTNiIiwiXHUzMDExIjoiXHVmZTNjIiwiXHUzMDE0IjoiXHVmZTM5IiwiXHUzMDE1IjoiXHVmZTNhIiwiXHUzMDE2IjoiXHVmZTE3IiwiXHUzMDE3IjoiXHVmZTE4IiwiXHVmZjAxIjoiXHVmZTE1IiwiXHVmZjA4IjoiXHVmZTM1IiwiXHVmZjA5IjoiXHVmZTM2IiwiXHVmZjBjIjoiXHVmZTEwIiwiXHVmZjBkIjoiXHVmZTMyIiwiXHVmZjBlIjoiXHUzMGZiIiwiXHVmZjFhIjoiXHVmZTEzIiwiXHVmZjFiIjoiXHVmZTE0IiwiXHVmZjFjIjoiXHVmZTNmIiwiXHVmZjFlIjoiXHVmZTQwIiwiXHVmZjFmIjoiXHVmZTE2IiwiXHVmZjNiIjoiXHVmZTQ3IiwiXHVmZjNkIjoiXHVmZTQ4IiwiXHVmZjNmIjoiXHVmZTMzIiwiXHVmZjViIjoiXHVmZTM3IiwiXHVmZjVjIjoiXHUyMDE1IiwiXHVmZjVkIjoiXHVmZTM4IiwiXHVmZjVmIjoiXHVmZTM1IiwiXHVmZjYwIjoiXHVmZTM2IiwiXHVmZjYxIjoiXHVmZTEyIiwiXHVmZjYyIjoiXHVmZTQxIiwiXHVmZjYzIjoiXHVmZTQyIn0sbHM9MjQsY3M9e2hvcml6b250YWw6MSx2ZXJ0aWNhbDoyLGhvcml6b250YWxPbmx5OjN9LHVzPWZ1bmN0aW9uKCl7dGhpcy50ZXh0PSIiLHRoaXMuc2VjdGlvbkluZGV4PVtdLHRoaXMuc2VjdGlvbnM9W119O2Z1bmN0aW9uIGhzKHQsZSxyLG4sYSxpLG8scyxsLGMsdSl7dmFyIGgsZj11cy5mcm9tRmVhdHVyZSh0LHIpO2M9PT1jcy52ZXJ0aWNhbCYmZi52ZXJ0aWNhbGl6ZVB1bmN0dWF0aW9uKCk7dmFyIHA9Q24ucHJvY2Vzc0JpZGlyZWN0aW9uYWxUZXh0LGQ9Q24ucHJvY2Vzc1N0eWxlZEJpZGlyZWN0aW9uYWxUZXh0O2lmKHAmJjE9PT1mLnNlY3Rpb25zLmxlbmd0aCl7aD1bXTtmb3IodmFyIGc9MCx2PXAoZi50b1N0cmluZygpLG1zKGYscyxuLGUpKTtnPHYubGVuZ3RoO2crPTEpe3ZhciBtPXZbZ10seT1uZXcgdXM7eS50ZXh0PW0seS5zZWN0aW9ucz1mLnNlY3Rpb25zO2Zvcih2YXIgeD0wO3g8bS5sZW5ndGg7eCsrKXkuc2VjdGlvbkluZGV4LnB1c2goMCk7aC5wdXNoKHkpfX1lbHNlIGlmKGQpe2g9W107Zm9yKHZhciBiPTAsXz1kKGYudGV4dCxmLnNlY3Rpb25JbmRleCxtcyhmLHMsbixlKSk7YjxfLmxlbmd0aDtiKz0xKXt2YXIgdz1fW2JdLGs9bmV3IHVzO2sudGV4dD13WzBdLGsuc2VjdGlvbkluZGV4PXdbMV0say5zZWN0aW9ucz1mLnNlY3Rpb25zLGgucHVzaChrKX19ZWxzZSBoPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVtdLG49dC50ZXh0LGE9MCxpPTAsbz1lO2k8by5sZW5ndGg7aSs9MSl7dmFyIHM9b1tpXTtyLnB1c2godC5zdWJzdHJpbmcoYSxzKSksYT1zfXJldHVybiBhPG4ubGVuZ3RoJiZyLnB1c2godC5zdWJzdHJpbmcoYSxuLmxlbmd0aCkpLHJ9KGYsbXMoZixzLG4sZSkpO3ZhciBUPVtdLE09e3Bvc2l0aW9uZWRHbHlwaHM6VCx0ZXh0OmYudG9TdHJpbmcoKSx0b3A6bFsxXSxib3R0b206bFsxXSxsZWZ0OmxbMF0scmlnaHQ6bFswXSx3cml0aW5nTW9kZTpjLGxpbmVDb3VudDpoLmxlbmd0aCx5T2Zmc2V0Oi0xN307cmV0dXJuIGZ1bmN0aW9uKHQsZSxyLG4sYSxpLG8scyxsKXtmb3IodmFyIGM9MCx1PXQueU9mZnNldCxoPTAsZj10LnBvc2l0aW9uZWRHbHlwaHMscD0icmlnaHQiPT09aT8xOiJsZWZ0Ij09PWk/MDouNSxkPTAsZz1yO2Q8Zy5sZW5ndGg7ZCs9MSl7dmFyIHY9Z1tkXTt2LnRyaW0oKTt2YXIgbT12LmdldE1heFNjYWxlKCk7aWYodi5sZW5ndGgoKSl7Zm9yKHZhciB5PWYubGVuZ3RoLHg9MDt4PHYubGVuZ3RoKCk7eCsrKXt2YXIgYj12LmdldFNlY3Rpb24oeCksXz12LmdldFNlY3Rpb25JbmRleCh4KSx3PXYuZ2V0Q2hhckNvZGUoeCksaz0yNCoobS1iLnNjYWxlKSxUPWVbYi5mb250U3RhY2tdLE09VCYmVFt3XTtNJiYobz09PWNzLmhvcml6b250YWx8fCFsJiYhd24odyl8fGwmJihmc1t3XXx8KFM9dyx4bi5BcmFiaWMoUyl8fHhuWyJBcmFiaWMgU3VwcGxlbWVudCJdKFMpfHx4blsiQXJhYmljIEV4dGVuZGVkLUEiXShTKXx8eG5bIkFyYWJpYyBQcmVzZW50YXRpb24gRm9ybXMtQSJdKFMpfHx4blsiQXJhYmljIFByZXNlbnRhdGlvbiBGb3Jtcy1CIl0oUykpKT8oZi5wdXNoKHtnbHlwaDp3LHg6Yyx5OnUrayx2ZXJ0aWNhbDohMSxzY2FsZTpiLnNjYWxlLGZvbnRTdGFjazpiLmZvbnRTdGFjayxzZWN0aW9uSW5kZXg6X30pLGMrPU0ubWV0cmljcy5hZHZhbmNlKmIuc2NhbGUrcyk6KGYucHVzaCh7Z2x5cGg6dyx4OmMseTp1K2ssdmVydGljYWw6ITAsc2NhbGU6Yi5zY2FsZSxmb250U3RhY2s6Yi5mb250U3RhY2ssc2VjdGlvbkluZGV4Ol99KSxjKz1scypiLnNjYWxlK3MpKX1pZihmLmxlbmd0aCE9PXkpe3ZhciBBPWMtcztoPU1hdGgubWF4KEEsaCkseHMoZixlLHksZi5sZW5ndGgtMSxwKX1jPTAsdSs9biptfWVsc2UgdSs9bn12YXIgUyxFPXlzKGEpLEw9RS5ob3Jpem9udGFsQWxpZ24sQz1FLnZlcnRpY2FsQWxpZ247IWZ1bmN0aW9uKHQsZSxyLG4sYSxpLG8pe2Zvcih2YXIgcz0oZS1yKSphLGw9KC1uKm8rLjUpKmksYz0wO2M8dC5sZW5ndGg7YysrKXRbY10ueCs9cyx0W2NdLnkrPWx9KGYscCxMLEMsaCxuLHIubGVuZ3RoKTt2YXIgUD11LXQueU9mZnNldDt0LnRvcCs9LUMqUCx0LmJvdHRvbT10LnRvcCtQLHQubGVmdCs9LUwqaCx0LnJpZ2h0PXQubGVmdCtofShNLGUsaCxhLGksbyxjLHMsdSksISFULmxlbmd0aCYmTX11cy5mcm9tRmVhdHVyZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1uZXcgdXMsbj0wO248dC5zZWN0aW9ucy5sZW5ndGg7bisrKXt2YXIgYT10LnNlY3Rpb25zW25dO3Iuc2VjdGlvbnMucHVzaCh7c2NhbGU6YS5zY2FsZXx8MSxmb250U3RhY2s6YS5mb250U3RhY2t8fGV9KSxyLnRleHQrPWEudGV4dDtmb3IodmFyIGk9MDtpPGEudGV4dC5sZW5ndGg7aSsrKXIuc2VjdGlvbkluZGV4LnB1c2gobil9cmV0dXJuIHJ9LHVzLnByb3RvdHlwZS5sZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50ZXh0Lmxlbmd0aH0sdXMucHJvdG90eXBlLmdldFNlY3Rpb249ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc2VjdGlvbnNbdGhpcy5zZWN0aW9uSW5kZXhbdF1dfSx1cy5wcm90b3R5cGUuZ2V0U2VjdGlvbkluZGV4PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNlY3Rpb25JbmRleFt0XX0sdXMucHJvdG90eXBlLmdldENoYXJDb2RlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnRleHQuY2hhckNvZGVBdCh0KX0sdXMucHJvdG90eXBlLnZlcnRpY2FsaXplUHVuY3R1YXRpb249ZnVuY3Rpb24oKXt0aGlzLnRleHQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPSIiLHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG49dC5jaGFyQ29kZUF0KHIrMSl8fG51bGwsYT10LmNoYXJDb2RlQXQoci0xKXx8bnVsbDtuJiZrbihuKSYmIXNzW3RbcisxXV18fGEmJmtuKGEpJiYhc3NbdFtyLTFdXXx8IXNzW3Rbcl1dP2UrPXRbcl06ZSs9c3NbdFtyXV19cmV0dXJuIGV9KHRoaXMudGV4dCl9LHVzLnByb3RvdHlwZS50cmltPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTAsZT0wO2U8dGhpcy50ZXh0Lmxlbmd0aCYmZnNbdGhpcy50ZXh0LmNoYXJDb2RlQXQoZSldO2UrKyl0Kys7Zm9yKHZhciByPXRoaXMudGV4dC5sZW5ndGgsbj10aGlzLnRleHQubGVuZ3RoLTE7bj49MCYmbj49dCYmZnNbdGhpcy50ZXh0LmNoYXJDb2RlQXQobildO24tLSlyLS07dGhpcy50ZXh0PXRoaXMudGV4dC5zdWJzdHJpbmcodCxyKSx0aGlzLnNlY3Rpb25JbmRleD10aGlzLnNlY3Rpb25JbmRleC5zbGljZSh0LHIpfSx1cy5wcm90b3R5cGUuc3Vic3RyaW5nPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bmV3IHVzO3JldHVybiByLnRleHQ9dGhpcy50ZXh0LnN1YnN0cmluZyh0LGUpLHIuc2VjdGlvbkluZGV4PXRoaXMuc2VjdGlvbkluZGV4LnNsaWNlKHQsZSksci5zZWN0aW9ucz10aGlzLnNlY3Rpb25zLHJ9LHVzLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRleHR9LHVzLnByb3RvdHlwZS5nZXRNYXhTY2FsZT1mdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuc2VjdGlvbkluZGV4LnJlZHVjZShmdW5jdGlvbihlLHIpe3JldHVybiBNYXRoLm1heChlLHQuc2VjdGlvbnNbcl0uc2NhbGUpfSwwKX07dmFyIGZzPXs5OiEwLDEwOiEwLDExOiEwLDEyOiEwLDEzOiEwLDMyOiEwfSxwcz17fTtmdW5jdGlvbiBkcyh0LGUscixuKXt2YXIgYT1NYXRoLnBvdyh0LWUsMik7cmV0dXJuIG4/dDxlP2EvMjoyKmE6YStNYXRoLmFicyhyKSpyfWZ1bmN0aW9uIGdzKHQsZSxyKXt2YXIgbj0wO3JldHVybiAxMD09PXQmJihuLT0xZTQpLHImJihuKz0xNTApLDQwIT09dCYmNjUyODghPT10fHwobis9NTApLDQxIT09ZSYmNjUyODkhPT1lfHwobis9NTApLG59ZnVuY3Rpb24gdnModCxlLHIsbixhLGkpe2Zvcih2YXIgbz1udWxsLHM9ZHMoZSxyLGEsaSksbD0wLGM9bjtsPGMubGVuZ3RoO2wrPTEpe3ZhciB1PWNbbF0saD1kcyhlLXUueCxyLGEsaSkrdS5iYWRuZXNzO2g8PXMmJihvPXUscz1oKX1yZXR1cm57aW5kZXg6dCx4OmUscHJpb3JCcmVhazpvLGJhZG5lc3M6c319ZnVuY3Rpb24gbXModCxlLHIsbil7aWYoIXIpcmV0dXJuW107aWYoIXQpcmV0dXJuW107Zm9yKHZhciBhLGk9W10sbz1mdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGE9MCxpPTA7aTx0Lmxlbmd0aCgpO2krKyl7dmFyIG89dC5nZXRTZWN0aW9uKGkpLHM9bltvLmZvbnRTdGFja10sbD1zJiZzW3QuZ2V0Q2hhckNvZGUoaSldO2wmJihhKz1sLm1ldHJpY3MuYWR2YW5jZSpvLnNjYWxlK2UpfXJldHVybiBhL01hdGgubWF4KDEsTWF0aC5jZWlsKGEvcikpfSh0LGUscixuKSxzPXQudGV4dC5pbmRleE9mKCJcdTIwMGIiKT49MCxsPTAsYz0wO2M8dC5sZW5ndGgoKTtjKyspe3ZhciB1PXQuZ2V0U2VjdGlvbihjKSxoPXQuZ2V0Q2hhckNvZGUoYyksZj1uW3UuZm9udFN0YWNrXSxwPWYmJmZbaF07aWYocCYmIWZzW2hdJiYobCs9cC5tZXRyaWNzLmFkdmFuY2UqdS5zY2FsZStlKSxjPHQubGVuZ3RoKCktMSl7dmFyIGQ9ISgoYT1oKTwxMTkwNHx8ISh4blsiQm9wb21vZm8gRXh0ZW5kZWQiXShhKXx8eG4uQm9wb21vZm8oYSl8fHhuWyJDSksgQ29tcGF0aWJpbGl0eSBGb3JtcyJdKGEpfHx4blsiQ0pLIENvbXBhdGliaWxpdHkgSWRlb2dyYXBocyJdKGEpfHx4blsiQ0pLIENvbXBhdGliaWxpdHkiXShhKXx8eG5bIkNKSyBSYWRpY2FscyBTdXBwbGVtZW50Il0oYSl8fHhuWyJDSksgU3Ryb2tlcyJdKGEpfHx4blsiQ0pLIFN5bWJvbHMgYW5kIFB1bmN0dWF0aW9uIl0oYSl8fHhuWyJDSksgVW5pZmllZCBJZGVvZ3JhcGhzIEV4dGVuc2lvbiBBIl0oYSl8fHhuWyJDSksgVW5pZmllZCBJZGVvZ3JhcGhzIl0oYSl8fHhuWyJFbmNsb3NlZCBDSksgTGV0dGVycyBhbmQgTW9udGhzIl0oYSl8fHhuWyJIYWxmd2lkdGggYW5kIEZ1bGx3aWR0aCBGb3JtcyJdKGEpfHx4bi5IaXJhZ2FuYShhKXx8eG5bIklkZW9ncmFwaGljIERlc2NyaXB0aW9uIENoYXJhY3RlcnMiXShhKXx8eG5bIkthbmd4aSBSYWRpY2FscyJdKGEpfHx4blsiS2F0YWthbmEgUGhvbmV0aWMgRXh0ZW5zaW9ucyJdKGEpfHx4bi5LYXRha2FuYShhKXx8eG5bIlZlcnRpY2FsIEZvcm1zIl0oYSl8fHhuWyJZaSBSYWRpY2FscyJdKGEpfHx4blsiWWkgU3lsbGFibGVzIl0oYSkpKTsocHNbaF18fGQpJiZpLnB1c2godnMoYysxLGwsbyxpLGdzKGgsdC5nZXRDaGFyQ29kZShjKzEpLGQmJnMpLCExKSl9fXJldHVybiBmdW5jdGlvbiB0KGUpe3JldHVybiBlP3QoZS5wcmlvckJyZWFrKS5jb25jYXQoZS5pbmRleCk6W119KHZzKHQubGVuZ3RoKCksbCxvLGksMCwhMCkpfWZ1bmN0aW9uIHlzKHQpe3ZhciBlPS41LHI9LjU7c3dpdGNoKHQpe2Nhc2UicmlnaHQiOmNhc2UidG9wLXJpZ2h0IjpjYXNlImJvdHRvbS1yaWdodCI6ZT0xO2JyZWFrO2Nhc2UibGVmdCI6Y2FzZSJ0b3AtbGVmdCI6Y2FzZSJib3R0b20tbGVmdCI6ZT0wfXN3aXRjaCh0KXtjYXNlImJvdHRvbSI6Y2FzZSJib3R0b20tcmlnaHQiOmNhc2UiYm90dG9tLWxlZnQiOnI9MTticmVhaztjYXNlInRvcCI6Y2FzZSJ0b3AtcmlnaHQiOmNhc2UidG9wLWxlZnQiOnI9MH1yZXR1cm57aG9yaXpvbnRhbEFsaWduOmUsdmVydGljYWxBbGlnbjpyfX1mdW5jdGlvbiB4cyh0LGUscixuLGEpe2lmKGEpe3ZhciBpPXRbbl0sbz1lW2kuZm9udFN0YWNrXSxzPW8mJm9baS5nbHlwaF07aWYocylmb3IodmFyIGw9cy5tZXRyaWNzLmFkdmFuY2UqaS5zY2FsZSxjPSh0W25dLngrbCkqYSx1PXI7dTw9bjt1KyspdFt1XS54LT1jfX1wc1sxMF09ITAscHNbMzJdPSEwLHBzWzM4XT0hMCxwc1s0MF09ITAscHNbNDFdPSEwLHBzWzQzXT0hMCxwc1s0NV09ITAscHNbNDddPSEwLHBzWzE3M109ITAscHNbMTgzXT0hMCxwc1s4MjAzXT0hMCxwc1s4MjA4XT0hMCxwc1s4MjExXT0hMCxwc1s4MjMxXT0hMDt2YXIgYnM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLHIsbixhKXt0LmNhbGwodGhpcyxlLHIpLHRoaXMuYW5nbGU9bix2b2lkIDAhPT1hJiYodGhpcy5zZWdtZW50PWEpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgZSh0aGlzLngsdGhpcy55LHRoaXMuYW5nbGUsdGhpcy5zZWdtZW50KX0sZX0oYSk7ZG4oIkFuY2hvciIsYnMpO3ZhciBfcz0yNTY7ZnVuY3Rpb24gd3ModCxlKXt2YXIgcj1lLmV4cHJlc3Npb247aWYoImNvbnN0YW50Ij09PXIua2luZClyZXR1cm57a2luZDoiY29uc3RhbnQiLGxheW91dFNpemU6ci5ldmFsdWF0ZShuZXcgUG4odCsxKSl9O2lmKCJzb3VyY2UiPT09ci5raW5kKXJldHVybntraW5kOiJzb3VyY2UifTtmb3IodmFyIG49ci56b29tU3RvcHMsYT1yLmludGVycG9sYXRpb25UeXBlLGk9MDtpPG4ubGVuZ3RoJiZuW2ldPD10OylpKys7Zm9yKHZhciBvPWk9TWF0aC5tYXgoMCxpLTEpO288bi5sZW5ndGgmJm5bb108dCsxOylvKys7bz1NYXRoLm1pbihuLmxlbmd0aC0xLG8pO3ZhciBzPW5baV0sbD1uW29dO3JldHVybiJjb21wb3NpdGUiPT09ci5raW5kP3traW5kOiJjb21wb3NpdGUiLG1pblpvb206cyxtYXhab29tOmwsaW50ZXJwb2xhdGlvblR5cGU6YX06e2tpbmQ6ImNhbWVyYSIsbWluWm9vbTpzLG1heFpvb206bCxtaW5TaXplOnIuZXZhbHVhdGUobmV3IFBuKHMpKSxtYXhTaXplOnIuZXZhbHVhdGUobmV3IFBuKGwpKSxpbnRlcnBvbGF0aW9uVHlwZTphfX1mdW5jdGlvbiBrcyh0LGUscil7dmFyIG49ZS51U2l6ZSxhPWUudVNpemVULGk9ci5sb3dlclNpemUsbz1yLnVwcGVyU2l6ZTtyZXR1cm4ic291cmNlIj09PXQua2luZD9pL19zOiJjb21wb3NpdGUiPT09dC5raW5kP3llKGkvX3Msby9fcyxhKTpufWZ1bmN0aW9uIFRzKHQsZSl7dmFyIHI9MCxuPTA7aWYoImNvbnN0YW50Ij09PXQua2luZCluPXQubGF5b3V0U2l6ZTtlbHNlIGlmKCJzb3VyY2UiIT09dC5raW5kKXt2YXIgYT10LmludGVycG9sYXRpb25UeXBlLGk9dC5taW5ab29tLG89dC5tYXhab29tLHM9YT9jKE5lLmludGVycG9sYXRpb25GYWN0b3IoYSxlLGksbyksMCwxKTowOyJjYW1lcmEiPT09dC5raW5kP249eWUodC5taW5TaXplLHQubWF4U2l6ZSxzKTpyPXN9cmV0dXJue3VTaXplVDpyLHVTaXplOm59fXZhciBNcz1PYmplY3QuZnJlZXplKHtnZXRTaXplRGF0YTp3cyxldmFsdWF0ZVNpemVGb3JGZWF0dXJlOmtzLGV2YWx1YXRlU2l6ZUZvclpvb206VHMsU0laRV9QQUNLX0ZBQ1RPUjpfc30pLEFzPUlvLlZlY3RvclRpbGVGZWF0dXJlLnR5cGVzLFNzPVt7bmFtZToiYV9mYWRlX29wYWNpdHkiLGNvbXBvbmVudHM6MSx0eXBlOiJVaW50OCIsb2Zmc2V0OjB9XTtmdW5jdGlvbiBFcyh0LGUscixuLGEsaSxvLHMpe3QuZW1wbGFjZUJhY2soZSxyLE1hdGgucm91bmQoMzIqbiksTWF0aC5yb3VuZCgzMiphKSxpLG8scz9zWzBdOjAscz9zWzFdOjApfWZ1bmN0aW9uIExzKHQsZSxyKXt0LmVtcGxhY2VCYWNrKGUueCxlLnksciksdC5lbXBsYWNlQmFjayhlLngsZS55LHIpLHQuZW1wbGFjZUJhY2soZS54LGUueSxyKSx0LmVtcGxhY2VCYWNrKGUueCxlLnkscil9dmFyIENzPWZ1bmN0aW9uKHQpe3RoaXMubGF5b3V0VmVydGV4QXJyYXk9bmV3IG5hLHRoaXMuaW5kZXhBcnJheT1uZXcgZGEsdGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnM9dCx0aGlzLnNlZ21lbnRzPW5ldyBPYSx0aGlzLmR5bmFtaWNMYXlvdXRWZXJ0ZXhBcnJheT1uZXcgYWEsdGhpcy5vcGFjaXR5VmVydGV4QXJyYXk9bmV3IGlhLHRoaXMucGxhY2VkU3ltYm9sQXJyYXk9bmV3IHdhfTtDcy5wcm90b3R5cGUudXBsb2FkPWZ1bmN0aW9uKHQsZSxyLG4pe3ImJih0aGlzLmxheW91dFZlcnRleEJ1ZmZlcj10LmNyZWF0ZVZlcnRleEJ1ZmZlcih0aGlzLmxheW91dFZlcnRleEFycmF5LGVzLm1lbWJlcnMpLHRoaXMuaW5kZXhCdWZmZXI9dC5jcmVhdGVJbmRleEJ1ZmZlcih0aGlzLmluZGV4QXJyYXksZSksdGhpcy5keW5hbWljTGF5b3V0VmVydGV4QnVmZmVyPXQuY3JlYXRlVmVydGV4QnVmZmVyKHRoaXMuZHluYW1pY0xheW91dFZlcnRleEFycmF5LHJzLm1lbWJlcnMsITApLHRoaXMub3BhY2l0eVZlcnRleEJ1ZmZlcj10LmNyZWF0ZVZlcnRleEJ1ZmZlcih0aGlzLm9wYWNpdHlWZXJ0ZXhBcnJheSxTcywhMCksdGhpcy5vcGFjaXR5VmVydGV4QnVmZmVyLml0ZW1TaXplPTEpLChyfHxuKSYmdGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnMudXBsb2FkKHQpfSxDcy5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMubGF5b3V0VmVydGV4QnVmZmVyJiYodGhpcy5sYXlvdXRWZXJ0ZXhCdWZmZXIuZGVzdHJveSgpLHRoaXMuaW5kZXhCdWZmZXIuZGVzdHJveSgpLHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLmRlc3Ryb3koKSx0aGlzLnNlZ21lbnRzLmRlc3Ryb3koKSx0aGlzLmR5bmFtaWNMYXlvdXRWZXJ0ZXhCdWZmZXIuZGVzdHJveSgpLHRoaXMub3BhY2l0eVZlcnRleEJ1ZmZlci5kZXN0cm95KCkpfSxkbigiU3ltYm9sQnVmZmVycyIsQ3MpO3ZhciBQcz1mdW5jdGlvbih0LGUscil7dGhpcy5sYXlvdXRWZXJ0ZXhBcnJheT1uZXcgdCx0aGlzLmxheW91dEF0dHJpYnV0ZXM9ZSx0aGlzLmluZGV4QXJyYXk9bmV3IHIsdGhpcy5zZWdtZW50cz1uZXcgT2EsdGhpcy5jb2xsaXNpb25WZXJ0ZXhBcnJheT1uZXcgbGF9O1BzLnByb3RvdHlwZS51cGxvYWQ9ZnVuY3Rpb24odCl7dGhpcy5sYXlvdXRWZXJ0ZXhCdWZmZXI9dC5jcmVhdGVWZXJ0ZXhCdWZmZXIodGhpcy5sYXlvdXRWZXJ0ZXhBcnJheSx0aGlzLmxheW91dEF0dHJpYnV0ZXMpLHRoaXMuaW5kZXhCdWZmZXI9dC5jcmVhdGVJbmRleEJ1ZmZlcih0aGlzLmluZGV4QXJyYXkpLHRoaXMuY29sbGlzaW9uVmVydGV4QnVmZmVyPXQuY3JlYXRlVmVydGV4QnVmZmVyKHRoaXMuY29sbGlzaW9uVmVydGV4QXJyYXksbnMubWVtYmVycywhMCl9LFBzLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5sYXlvdXRWZXJ0ZXhCdWZmZXImJih0aGlzLmxheW91dFZlcnRleEJ1ZmZlci5kZXN0cm95KCksdGhpcy5pbmRleEJ1ZmZlci5kZXN0cm95KCksdGhpcy5zZWdtZW50cy5kZXN0cm95KCksdGhpcy5jb2xsaXNpb25WZXJ0ZXhCdWZmZXIuZGVzdHJveSgpKX0sZG4oIkNvbGxpc2lvbkJ1ZmZlcnMiLFBzKTt2YXIgT3M9ZnVuY3Rpb24odCl7dGhpcy5jb2xsaXNpb25Cb3hBcnJheT10LmNvbGxpc2lvbkJveEFycmF5LHRoaXMuem9vbT10Lnpvb20sdGhpcy5vdmVyc2NhbGluZz10Lm92ZXJzY2FsaW5nLHRoaXMubGF5ZXJzPXQubGF5ZXJzLHRoaXMubGF5ZXJJZHM9dGhpcy5sYXllcnMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkfSksdGhpcy5pbmRleD10LmluZGV4LHRoaXMucGl4ZWxSYXRpbz10LnBpeGVsUmF0aW8sdGhpcy5zb3VyY2VMYXllckluZGV4PXQuc291cmNlTGF5ZXJJbmRleCx0aGlzLmhhc1BhdHRlcm49ITEsdGhpcy5oYXNQYWludE92ZXJyaWRlcz0hMTt2YXIgZT10aGlzLmxheWVyc1swXS5fdW5ldmFsdWF0ZWRMYXlvdXQuX3ZhbHVlczt0aGlzLnRleHRTaXplRGF0YT13cyh0aGlzLnpvb20sZVsidGV4dC1zaXplIl0pLHRoaXMuaWNvblNpemVEYXRhPXdzKHRoaXMuem9vbSxlWyJpY29uLXNpemUiXSk7dmFyIHI9dGhpcy5sYXllcnNbMF0ubGF5b3V0LG49ci5nZXQoInN5bWJvbC1zb3J0LWtleSIpLGE9ci5nZXQoInN5bWJvbC16LW9yZGVyIik7dGhpcy5zb3J0RmVhdHVyZXNCeUtleT0idmlld3BvcnQteSIhPT1hJiZ2b2lkIDAhPT1uLmNvbnN0YW50T3IoMSk7dmFyIGk9InZpZXdwb3J0LXkiPT09YXx8ImF1dG8iPT09YSYmIXRoaXMuc29ydEZlYXR1cmVzQnlLZXk7dGhpcy5zb3J0RmVhdHVyZXNCeVk9aSYmKHIuZ2V0KCJ0ZXh0LWFsbG93LW92ZXJsYXAiKXx8ci5nZXQoImljb24tYWxsb3ctb3ZlcmxhcCIpfHxyLmdldCgidGV4dC1pZ25vcmUtcGxhY2VtZW50Iil8fHIuZ2V0KCJpY29uLWlnbm9yZS1wbGFjZW1lbnQiKSksInBvaW50Ij09PXIuZ2V0KCJzeW1ib2wtcGxhY2VtZW50IikmJih0aGlzLndyaXRpbmdNb2Rlcz1yLmdldCgidGV4dC13cml0aW5nLW1vZGUiKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGNzW3RdfSkpLHRoaXMuc3RhdGVEZXBlbmRlbnRMYXllcklkcz10aGlzLmxheWVycy5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQuaXNTdGF0ZURlcGVuZGVudCgpfSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkfSksdGhpcy5zb3VyY2VJRD10LnNvdXJjZUlEfTtPcy5wcm90b3R5cGUuY3JlYXRlQXJyYXlzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5sYXllcnNbMF0ubGF5b3V0O3RoaXMuaGFzUGFpbnRPdmVycmlkZXM9UnMuaGFzUGFpbnRPdmVycmlkZXModCksdGhpcy50ZXh0PW5ldyBDcyhuZXcgUWEoZXMubWVtYmVycyx0aGlzLmxheWVycyx0aGlzLnpvb20sZnVuY3Rpb24odCl7cmV0dXJuL150ZXh0Ly50ZXN0KHQpfSkpLHRoaXMuaWNvbj1uZXcgQ3MobmV3IFFhKGVzLm1lbWJlcnMsdGhpcy5sYXllcnMsdGhpcy56b29tLGZ1bmN0aW9uKHQpe3JldHVybi9eaWNvbi8udGVzdCh0KX0pKSx0aGlzLmNvbGxpc2lvbkJveD1uZXcgUHMoc2EsYXMubWVtYmVycyxnYSksdGhpcy5jb2xsaXNpb25DaXJjbGU9bmV3IFBzKHNhLGlzLm1lbWJlcnMsZGEpLHRoaXMuZ2x5cGhPZmZzZXRBcnJheT1uZXcgQWEsdGhpcy5saW5lVmVydGV4QXJyYXk9bmV3IEVhLHRoaXMuc3ltYm9sSW5zdGFuY2VzPW5ldyBUYX0sT3MucHJvdG90eXBlLmNhbGN1bGF0ZUdseXBoRGVwZW5kZW5jaWVzPWZ1bmN0aW9uKHQsZSxyLG4sYSl7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspaWYoZVt0LmNoYXJDb2RlQXQoaSldPSEwLChyfHxuKSYmYSl7dmFyIG89c3NbdC5jaGFyQXQoaSldO28mJihlW28uY2hhckNvZGVBdCgwKV09ITApfX0sT3MucHJvdG90eXBlLnBvcHVsYXRlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5sYXllcnNbMF0sbj1yLmxheW91dCxhPW4uZ2V0KCJ0ZXh0LWZvbnQiKSxpPW4uZ2V0KCJ0ZXh0LWZpZWxkIiksbz1uLmdldCgiaWNvbi1pbWFnZSIpLHM9KCJjb25zdGFudCIhPT1pLnZhbHVlLmtpbmR8fGkudmFsdWUudmFsdWUudG9TdHJpbmcoKS5sZW5ndGg+MCkmJigiY29uc3RhbnQiIT09YS52YWx1ZS5raW5kfHxhLnZhbHVlLnZhbHVlLmxlbmd0aD4wKSxsPSJjb25zdGFudCIhPT1vLnZhbHVlLmtpbmR8fG8udmFsdWUudmFsdWUmJm8udmFsdWUudmFsdWUubGVuZ3RoPjAsYz1uLmdldCgic3ltYm9sLXNvcnQta2V5Iik7aWYodGhpcy5mZWF0dXJlcz1bXSxzfHxsKXtmb3IodmFyIHU9ZS5pY29uRGVwZW5kZW5jaWVzLGg9ZS5nbHlwaERlcGVuZGVuY2llcyxmPW5ldyBQbih0aGlzLnpvb20pLHA9MCxkPXQ7cDxkLmxlbmd0aDtwKz0xKXt2YXIgZz1kW3BdLHY9Zy5mZWF0dXJlLG09Zy5pbmRleCx5PWcuc291cmNlTGF5ZXJJbmRleDtpZihyLl9mZWF0dXJlRmlsdGVyKGYsdikpe3ZhciB4PXZvaWQgMDtpZihzKXt2YXIgYj1yLmdldFZhbHVlQW5kUmVzb2x2ZVRva2VucygidGV4dC1maWVsZCIsdik7eD1vcyhiIGluc3RhbmNlb2YgSnQ/YjpKdC5mcm9tU3RyaW5nKGIpLHIsdil9dmFyIF89dm9pZCAwO2lmKGwmJihfPXIuZ2V0VmFsdWVBbmRSZXNvbHZlVG9rZW5zKCJpY29uLWltYWdlIix2KSkseHx8Xyl7dmFyIHc9dGhpcy5zb3J0RmVhdHVyZXNCeUtleT9jLmV2YWx1YXRlKHYse30pOnZvaWQgMCxrPXt0ZXh0OngsaWNvbjpfLGluZGV4Om0sc291cmNlTGF5ZXJJbmRleDp5LGdlb21ldHJ5Om5pKHYpLHByb3BlcnRpZXM6di5wcm9wZXJ0aWVzLHR5cGU6QXNbdi50eXBlXSxzb3J0S2V5Ond9O2lmKHZvaWQgMCE9PXYuaWQmJihrLmlkPXYuaWQpLHRoaXMuZmVhdHVyZXMucHVzaChrKSxfJiYodVtfXT0hMCkseCl7dmFyIFQ9YS5ldmFsdWF0ZSh2LHt9KS5qb2luKCIsIiksTT0ibWFwIj09PW4uZ2V0KCJ0ZXh0LXJvdGF0aW9uLWFsaWdubWVudCIpJiYicG9pbnQiIT09bi5nZXQoInN5bWJvbC1wbGFjZW1lbnQiKTt0aGlzLmFsbG93VmVydGljYWxQbGFjZW1lbnQ9dGhpcy53cml0aW5nTW9kZXMmJnRoaXMud3JpdGluZ01vZGVzLmluZGV4T2YoY3MudmVydGljYWwpPj0wO2Zvcih2YXIgQT0wLFM9eC5zZWN0aW9ucztBPFMubGVuZ3RoO0ErPTEpe3ZhciBFPVNbQV0sTD1ibih4LnRvU3RyaW5nKCkpLEM9RS5mb250U3RhY2t8fFQsUD1oW0NdPWhbQ118fHt9O3RoaXMuY2FsY3VsYXRlR2x5cGhEZXBlbmRlbmNpZXMoRS50ZXh0LFAsTSx0aGlzLmFsbG93VmVydGljYWxQbGFjZW1lbnQsTCl9fX19fSJsaW5lIj09PW4uZ2V0KCJzeW1ib2wtcGxhY2VtZW50IikmJih0aGlzLmZlYXR1cmVzPWZ1bmN0aW9uKHQpe3ZhciBlPXt9LHI9e30sbj1bXSxhPTA7ZnVuY3Rpb24gaShlKXtuLnB1c2godFtlXSksYSsrfWZ1bmN0aW9uIG8odCxlLGEpe3ZhciBpPXJbdF07cmV0dXJuIGRlbGV0ZSByW3RdLHJbZV09aSxuW2ldLmdlb21ldHJ5WzBdLnBvcCgpLG5baV0uZ2VvbWV0cnlbMF09bltpXS5nZW9tZXRyeVswXS5jb25jYXQoYVswXSksaX1mdW5jdGlvbiBzKHQscixhKXt2YXIgaT1lW3JdO3JldHVybiBkZWxldGUgZVtyXSxlW3RdPWksbltpXS5nZW9tZXRyeVswXS5zaGlmdCgpLG5baV0uZ2VvbWV0cnlbMF09YVswXS5jb25jYXQobltpXS5nZW9tZXRyeVswXSksaX1mdW5jdGlvbiBsKHQsZSxyKXt2YXIgbj1yP2VbMF1bZVswXS5sZW5ndGgtMV06ZVswXVswXTtyZXR1cm4gdCsiOiIrbi54KyI6IituLnl9Zm9yKHZhciBjPTA7Yzx0Lmxlbmd0aDtjKyspe3ZhciB1PXRbY10saD11Lmdlb21ldHJ5LGY9dS50ZXh0P3UudGV4dC50b1N0cmluZygpOm51bGw7aWYoZil7dmFyIHA9bChmLGgpLGQ9bChmLGgsITApO2lmKHAgaW4gciYmZCBpbiBlJiZyW3BdIT09ZVtkXSl7dmFyIGc9cyhwLGQsaCksdj1vKHAsZCxuW2ddLmdlb21ldHJ5KTtkZWxldGUgZVtwXSxkZWxldGUgcltkXSxyW2woZixuW3ZdLmdlb21ldHJ5LCEwKV09dixuW2ddLmdlb21ldHJ5PW51bGx9ZWxzZSBwIGluIHI/byhwLGQsaCk6ZCBpbiBlP3MocCxkLGgpOihpKGMpLGVbcF09YS0xLHJbZF09YS0xKX1lbHNlIGkoYyl9cmV0dXJuIG4uZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmdlb21ldHJ5fSl9KHRoaXMuZmVhdHVyZXMpKSx0aGlzLnNvcnRGZWF0dXJlc0J5S2V5JiZ0aGlzLmZlYXR1cmVzLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5zb3J0S2V5LWUuc29ydEtleX0pfX0sT3MucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbih0LGUscil7dGhpcy5zdGF0ZURlcGVuZGVudExheWVycy5sZW5ndGgmJih0aGlzLnRleHQucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLnVwZGF0ZVBhaW50QXJyYXlzKHQsZSx0aGlzLmxheWVycyxyKSx0aGlzLmljb24ucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLnVwZGF0ZVBhaW50QXJyYXlzKHQsZSx0aGlzLmxheWVycyxyKSl9LE9zLnByb3RvdHlwZS5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLnN5bWJvbEluc3RhbmNlcy5sZW5ndGh9LE9zLnByb3RvdHlwZS51cGxvYWRQZW5kaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMudXBsb2FkZWR8fHRoaXMudGV4dC5wcm9ncmFtQ29uZmlndXJhdGlvbnMubmVlZHNVcGxvYWR8fHRoaXMuaWNvbi5wcm9ncmFtQ29uZmlndXJhdGlvbnMubmVlZHNVcGxvYWR9LE9zLnByb3RvdHlwZS51cGxvYWQ9ZnVuY3Rpb24odCl7dGhpcy51cGxvYWRlZHx8KHRoaXMuY29sbGlzaW9uQm94LnVwbG9hZCh0KSx0aGlzLmNvbGxpc2lvbkNpcmNsZS51cGxvYWQodCkpLHRoaXMudGV4dC51cGxvYWQodCx0aGlzLnNvcnRGZWF0dXJlc0J5WSwhdGhpcy51cGxvYWRlZCx0aGlzLnRleHQucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLm5lZWRzVXBsb2FkKSx0aGlzLmljb24udXBsb2FkKHQsdGhpcy5zb3J0RmVhdHVyZXNCeVksIXRoaXMudXBsb2FkZWQsdGhpcy5pY29uLnByb2dyYW1Db25maWd1cmF0aW9ucy5uZWVkc1VwbG9hZCksdGhpcy51cGxvYWRlZD0hMH0sT3MucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLnRleHQuZGVzdHJveSgpLHRoaXMuaWNvbi5kZXN0cm95KCksdGhpcy5jb2xsaXNpb25Cb3guZGVzdHJveSgpLHRoaXMuY29sbGlzaW9uQ2lyY2xlLmRlc3Ryb3koKX0sT3MucHJvdG90eXBlLmFkZFRvTGluZVZlcnRleEFycmF5PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5saW5lVmVydGV4QXJyYXkubGVuZ3RoO2lmKHZvaWQgMCE9PXQuc2VnbWVudCl7Zm9yKHZhciBuPXQuZGlzdChlW3Quc2VnbWVudCsxXSksYT10LmRpc3QoZVt0LnNlZ21lbnRdKSxpPXt9LG89dC5zZWdtZW50KzE7bzxlLmxlbmd0aDtvKyspaVtvXT17eDplW29dLngseTplW29dLnksdGlsZVVuaXREaXN0YW5jZUZyb21BbmNob3I6bn0sbzxlLmxlbmd0aC0xJiYobis9ZVtvKzFdLmRpc3QoZVtvXSkpO2Zvcih2YXIgcz10LnNlZ21lbnR8fDA7cz49MDtzLS0paVtzXT17eDplW3NdLngseTplW3NdLnksdGlsZVVuaXREaXN0YW5jZUZyb21BbmNob3I6YX0scz4wJiYoYSs9ZVtzLTFdLmRpc3QoZVtzXSkpO2Zvcih2YXIgbD0wO2w8ZS5sZW5ndGg7bCsrKXt2YXIgYz1pW2xdO3RoaXMubGluZVZlcnRleEFycmF5LmVtcGxhY2VCYWNrKGMueCxjLnksYy50aWxlVW5pdERpc3RhbmNlRnJvbUFuY2hvcil9fXJldHVybntsaW5lU3RhcnRJbmRleDpyLGxpbmVMZW5ndGg6dGhpcy5saW5lVmVydGV4QXJyYXkubGVuZ3RoLXJ9fSxPcy5wcm90b3R5cGUuYWRkU3ltYm9scz1mdW5jdGlvbih0LGUscixuLGEsaSxvLHMsbCxjKXt2YXIgdT10aGlzLGg9dC5pbmRleEFycmF5LGY9dC5sYXlvdXRWZXJ0ZXhBcnJheSxwPXQuZHluYW1pY0xheW91dFZlcnRleEFycmF5LGQ9dC5zZWdtZW50cy5wcmVwYXJlU2VnbWVudCg0KmUubGVuZ3RoLHQubGF5b3V0VmVydGV4QXJyYXksdC5pbmRleEFycmF5LGkuc29ydEtleSksZz10aGlzLmdseXBoT2Zmc2V0QXJyYXkubGVuZ3RoLHY9ZC52ZXJ0ZXhMZW5ndGgsbT10aGlzLmFsbG93VmVydGljYWxQbGFjZW1lbnQmJm89PT1jcy52ZXJ0aWNhbD9NYXRoLlBJLzI6MCx5PWZ1bmN0aW9uKHQpe3ZhciBlPXQudGwsbj10LnRyLGE9dC5ibCxpPXQuYnIsbz10LnRleCxsPWQudmVydGV4TGVuZ3RoLGM9dC5nbHlwaE9mZnNldFsxXTtFcyhmLHMueCxzLnksZS54LGMrZS55LG8ueCxvLnksciksRXMoZixzLngscy55LG4ueCxjK24ueSxvLngrby53LG8ueSxyKSxFcyhmLHMueCxzLnksYS54LGMrYS55LG8ueCxvLnkrby5oLHIpLEVzKGYscy54LHMueSxpLngsYytpLnksby54K28udyxvLnkrby5oLHIpLExzKHAscyxtKSxoLmVtcGxhY2VCYWNrKGwsbCsxLGwrMiksaC5lbXBsYWNlQmFjayhsKzEsbCsyLGwrMyksZC52ZXJ0ZXhMZW5ndGgrPTQsZC5wcmltaXRpdmVMZW5ndGgrPTIsdS5nbHlwaE9mZnNldEFycmF5LmVtcGxhY2VCYWNrKHQuZ2x5cGhPZmZzZXRbMF0pfTtpZihpLnRleHQmJmkudGV4dC5zZWN0aW9ucyl7dmFyIHg9aS50ZXh0LnNlY3Rpb25zO2lmKHRoaXMuaGFzUGFpbnRPdmVycmlkZXMpe2Zvcih2YXIgYixfPWZ1bmN0aW9uKGUscil7dm9pZCAwPT09Ynx8Yj09PWUmJiFyfHx0LnByb2dyYW1Db25maWd1cmF0aW9ucy5wb3B1bGF0ZVBhaW50QXJyYXlzKHQubGF5b3V0VmVydGV4QXJyYXkubGVuZ3RoLGksaS5pbmRleCx7fSx4W2JdKSxiPWV9LHc9MCxrPWU7dzxrLmxlbmd0aDt3Kz0xKXt2YXIgVD1rW3ddO18oVC5zZWN0aW9uSW5kZXgsITEpLHkoVCl9XyhiLCEwKX1lbHNle2Zvcih2YXIgTT0wLEE9ZTtNPEEubGVuZ3RoO00rPTEpeShBW01dKTt0LnByb2dyYW1Db25maWd1cmF0aW9ucy5wb3B1bGF0ZVBhaW50QXJyYXlzKHQubGF5b3V0VmVydGV4QXJyYXkubGVuZ3RoLGksaS5pbmRleCx7fSx4WzBdKX19ZWxzZXtmb3IodmFyIFM9MCxFPWU7UzxFLmxlbmd0aDtTKz0xKXkoRVtTXSk7dC5wcm9ncmFtQ29uZmlndXJhdGlvbnMucG9wdWxhdGVQYWludEFycmF5cyh0LmxheW91dFZlcnRleEFycmF5Lmxlbmd0aCxpLGkuaW5kZXgse30pfXQucGxhY2VkU3ltYm9sQXJyYXkuZW1wbGFjZUJhY2socy54LHMueSxnLHRoaXMuZ2x5cGhPZmZzZXRBcnJheS5sZW5ndGgtZyx2LGwsYyxzLnNlZ21lbnQscj9yWzBdOjAscj9yWzFdOjAsblswXSxuWzFdLG8sMCwhMSwwKX0sT3MucHJvdG90eXBlLl9hZGRDb2xsaXNpb25EZWJ1Z1ZlcnRleD1mdW5jdGlvbih0LGUscixuLGEsaSl7cmV0dXJuIGUuZW1wbGFjZUJhY2soMCwwKSx0LmVtcGxhY2VCYWNrKHIueCxyLnksbixhLE1hdGgucm91bmQoaS54KSxNYXRoLnJvdW5kKGkueSkpfSxPcy5wcm90b3R5cGUuYWRkQ29sbGlzaW9uRGVidWdWZXJ0aWNlcz1mdW5jdGlvbih0LGUscixuLGksbyxzLGwpe3ZhciBjPWkuc2VnbWVudHMucHJlcGFyZVNlZ21lbnQoNCxpLmxheW91dFZlcnRleEFycmF5LGkuaW5kZXhBcnJheSksdT1jLnZlcnRleExlbmd0aCxoPWkubGF5b3V0VmVydGV4QXJyYXksZj1pLmNvbGxpc2lvblZlcnRleEFycmF5LHA9cy5hbmNob3JYLGQ9cy5hbmNob3JZO2lmKHRoaXMuX2FkZENvbGxpc2lvbkRlYnVnVmVydGV4KGgsZixvLHAsZCxuZXcgYSh0LGUpKSx0aGlzLl9hZGRDb2xsaXNpb25EZWJ1Z1ZlcnRleChoLGYsbyxwLGQsbmV3IGEocixlKSksdGhpcy5fYWRkQ29sbGlzaW9uRGVidWdWZXJ0ZXgoaCxmLG8scCxkLG5ldyBhKHIsbikpLHRoaXMuX2FkZENvbGxpc2lvbkRlYnVnVmVydGV4KGgsZixvLHAsZCxuZXcgYSh0LG4pKSxjLnZlcnRleExlbmd0aCs9NCxsKXt2YXIgZz1pLmluZGV4QXJyYXk7Zy5lbXBsYWNlQmFjayh1LHUrMSx1KzIpLGcuZW1wbGFjZUJhY2sodSx1KzIsdSszKSxjLnByaW1pdGl2ZUxlbmd0aCs9Mn1lbHNle3ZhciB2PWkuaW5kZXhBcnJheTt2LmVtcGxhY2VCYWNrKHUsdSsxKSx2LmVtcGxhY2VCYWNrKHUrMSx1KzIpLHYuZW1wbGFjZUJhY2sodSsyLHUrMyksdi5lbXBsYWNlQmFjayh1KzMsdSksYy5wcmltaXRpdmVMZW5ndGgrPTR9fSxPcy5wcm90b3R5cGUuYWRkRGVidWdDb2xsaXNpb25Cb3hlcz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPXQ7bjxlO24rKyl7dmFyIGE9dGhpcy5jb2xsaXNpb25Cb3hBcnJheS5nZXQobiksaT1hLngxLG89YS55MSxzPWEueDIsbD1hLnkyLGM9YS5yYWRpdXM+MDt0aGlzLmFkZENvbGxpc2lvbkRlYnVnVmVydGljZXMoaSxvLHMsbCxjP3RoaXMuY29sbGlzaW9uQ2lyY2xlOnRoaXMuY29sbGlzaW9uQm94LGEuYW5jaG9yUG9pbnQscixjKX19LE9zLnByb3RvdHlwZS5nZW5lcmF0ZUNvbGxpc2lvbkRlYnVnQnVmZmVycz1mdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy5zeW1ib2xJbnN0YW5jZXMubGVuZ3RoO3QrKyl7dmFyIGU9dGhpcy5zeW1ib2xJbnN0YW5jZXMuZ2V0KHQpO3RoaXMuYWRkRGVidWdDb2xsaXNpb25Cb3hlcyhlLnRleHRCb3hTdGFydEluZGV4LGUudGV4dEJveEVuZEluZGV4LGUpLHRoaXMuYWRkRGVidWdDb2xsaXNpb25Cb3hlcyhlLnZlcnRpY2FsVGV4dEJveFN0YXJ0SW5kZXgsZS52ZXJ0aWNhbFRleHRCb3hFbmRJbmRleCxlKSx0aGlzLmFkZERlYnVnQ29sbGlzaW9uQm94ZXMoZS5pY29uQm94U3RhcnRJbmRleCxlLmljb25Cb3hFbmRJbmRleCxlKX19LE9zLnByb3RvdHlwZS5fZGVzZXJpYWxpemVDb2xsaXNpb25Cb3hlc0ZvclN5bWJvbD1mdW5jdGlvbih0LGUscixuLGEsaSxvKXtmb3IodmFyIHM9e30sbD1lO2w8cjtsKyspe3ZhciBjPXQuZ2V0KGwpO2lmKDA9PT1jLnJhZGl1cyl7cy50ZXh0Qm94PXt4MTpjLngxLHkxOmMueTEseDI6Yy54Mix5MjpjLnkyLGFuY2hvclBvaW50WDpjLmFuY2hvclBvaW50WCxhbmNob3JQb2ludFk6Yy5hbmNob3JQb2ludFl9LHMudGV4dEZlYXR1cmVJbmRleD1jLmZlYXR1cmVJbmRleDticmVha31zLnRleHRDaXJjbGVzfHwocy50ZXh0Q2lyY2xlcz1bXSxzLnRleHRGZWF0dXJlSW5kZXg9Yy5mZWF0dXJlSW5kZXgpLHMudGV4dENpcmNsZXMucHVzaChjLmFuY2hvclBvaW50WCxjLmFuY2hvclBvaW50WSxjLnJhZGl1cyxjLnNpZ25lZERpc3RhbmNlRnJvbUFuY2hvciwxKX1mb3IodmFyIHU9bjt1PGE7dSsrKXt2YXIgaD10LmdldCh1KTtpZigwPT09aC5yYWRpdXMpe3MudmVydGljYWxUZXh0Qm94PXt4MTpoLngxLHkxOmgueTEseDI6aC54Mix5MjpoLnkyLGFuY2hvclBvaW50WDpoLmFuY2hvclBvaW50WCxhbmNob3JQb2ludFk6aC5hbmNob3JQb2ludFl9LHMudmVydGljYWxUZXh0RmVhdHVyZUluZGV4PWguZmVhdHVyZUluZGV4O2JyZWFrfX1mb3IodmFyIGY9aTtmPG87ZisrKXt2YXIgcD10LmdldChmKTtpZigwPT09cC5yYWRpdXMpe3MuaWNvbkJveD17eDE6cC54MSx5MTpwLnkxLHgyOnAueDIseTI6cC55MixhbmNob3JQb2ludFg6cC5hbmNob3JQb2ludFgsYW5jaG9yUG9pbnRZOnAuYW5jaG9yUG9pbnRZfSxzLmljb25GZWF0dXJlSW5kZXg9cC5mZWF0dXJlSW5kZXg7YnJlYWt9fXJldHVybiBzfSxPcy5wcm90b3R5cGUuZGVzZXJpYWxpemVDb2xsaXNpb25Cb3hlcz1mdW5jdGlvbih0KXt0aGlzLmNvbGxpc2lvbkFycmF5cz1bXTtmb3IodmFyIGU9MDtlPHRoaXMuc3ltYm9sSW5zdGFuY2VzLmxlbmd0aDtlKyspe3ZhciByPXRoaXMuc3ltYm9sSW5zdGFuY2VzLmdldChlKTt0aGlzLmNvbGxpc2lvbkFycmF5cy5wdXNoKHRoaXMuX2Rlc2VyaWFsaXplQ29sbGlzaW9uQm94ZXNGb3JTeW1ib2wodCxyLnRleHRCb3hTdGFydEluZGV4LHIudGV4dEJveEVuZEluZGV4LHIudmVydGljYWxUZXh0Qm94U3RhcnRJbmRleCxyLnZlcnRpY2FsVGV4dEJveEVuZEluZGV4LHIuaWNvbkJveFN0YXJ0SW5kZXgsci5pY29uQm94RW5kSW5kZXgpKX19LE9zLnByb3RvdHlwZS5oYXNUZXh0RGF0YT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRleHQuc2VnbWVudHMuZ2V0KCkubGVuZ3RoPjB9LE9zLnByb3RvdHlwZS5oYXNJY29uRGF0YT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmljb24uc2VnbWVudHMuZ2V0KCkubGVuZ3RoPjB9LE9zLnByb3RvdHlwZS5oYXNDb2xsaXNpb25Cb3hEYXRhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29sbGlzaW9uQm94LnNlZ21lbnRzLmdldCgpLmxlbmd0aD4wfSxPcy5wcm90b3R5cGUuaGFzQ29sbGlzaW9uQ2lyY2xlRGF0YT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbGxpc2lvbkNpcmNsZS5zZWdtZW50cy5nZXQoKS5sZW5ndGg+MH0sT3MucHJvdG90eXBlLmFkZEluZGljZXNGb3JQbGFjZWRUZXh0U3ltYm9sPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRleHQucGxhY2VkU3ltYm9sQXJyYXkuZ2V0KHQpLHI9ZS52ZXJ0ZXhTdGFydEluZGV4KzQqZS5udW1HbHlwaHMsbj1lLnZlcnRleFN0YXJ0SW5kZXg7bjxyO24rPTQpdGhpcy50ZXh0LmluZGV4QXJyYXkuZW1wbGFjZUJhY2sobixuKzEsbisyKSx0aGlzLnRleHQuaW5kZXhBcnJheS5lbXBsYWNlQmFjayhuKzEsbisyLG4rMyl9LE9zLnByb3RvdHlwZS5nZXRTb3J0ZWRTeW1ib2xJbmRleGVzPWZ1bmN0aW9uKHQpe2lmKHRoaXMuc29ydGVkQW5nbGU9PT10JiZ2b2lkIDAhPT10aGlzLnN5bWJvbEluc3RhbmNlSW5kZXhlcylyZXR1cm4gdGhpcy5zeW1ib2xJbnN0YW5jZUluZGV4ZXM7Zm9yKHZhciBlPU1hdGguc2luKHQpLHI9TWF0aC5jb3ModCksbj1bXSxhPVtdLGk9W10sbz0wO288dGhpcy5zeW1ib2xJbnN0YW5jZXMubGVuZ3RoOysrbyl7aS5wdXNoKG8pO3ZhciBzPXRoaXMuc3ltYm9sSW5zdGFuY2VzLmdldChvKTtuLnB1c2goMHxNYXRoLnJvdW5kKGUqcy5hbmNob3JYK3Iqcy5hbmNob3JZKSksYS5wdXNoKHMuZmVhdHVyZUluZGV4KX1yZXR1cm4gaS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5bdF0tbltlXXx8YVtlXS1hW3RdfSksaX0sT3MucHJvdG90eXBlLnNvcnRGZWF0dXJlcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKHRoaXMuc29ydEZlYXR1cmVzQnlZJiZ0aGlzLnNvcnRlZEFuZ2xlIT09dCYmISh0aGlzLnRleHQuc2VnbWVudHMuZ2V0KCkubGVuZ3RoPjF8fHRoaXMuaWNvbi5zZWdtZW50cy5nZXQoKS5sZW5ndGg+MSkpe3RoaXMuc3ltYm9sSW5zdGFuY2VJbmRleGVzPXRoaXMuZ2V0U29ydGVkU3ltYm9sSW5kZXhlcyh0KSx0aGlzLnNvcnRlZEFuZ2xlPXQsdGhpcy50ZXh0LmluZGV4QXJyYXkuY2xlYXIoKSx0aGlzLmljb24uaW5kZXhBcnJheS5jbGVhcigpLHRoaXMuZmVhdHVyZVNvcnRPcmRlcj1bXTtmb3IodmFyIHI9MCxuPXRoaXMuc3ltYm9sSW5zdGFuY2VJbmRleGVzO3I8bi5sZW5ndGg7cis9MSl7dmFyIGE9bltyXSxpPXRoaXMuc3ltYm9sSW5zdGFuY2VzLmdldChhKTt0aGlzLmZlYXR1cmVTb3J0T3JkZXIucHVzaChpLmZlYXR1cmVJbmRleCksW2kucmlnaHRKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXgsaS5jZW50ZXJKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXgsaS5sZWZ0SnVzdGlmaWVkVGV4dFN5bWJvbEluZGV4XS5mb3JFYWNoKGZ1bmN0aW9uKHQscixuKXt0Pj0wJiZuLmluZGV4T2YodCk9PT1yJiZlLmFkZEluZGljZXNGb3JQbGFjZWRUZXh0U3ltYm9sKHQpfSksaS52ZXJ0aWNhbFBsYWNlZFRleHRTeW1ib2xJbmRleD49MCYmdGhpcy5hZGRJbmRpY2VzRm9yUGxhY2VkVGV4dFN5bWJvbChpLnZlcnRpY2FsUGxhY2VkVGV4dFN5bWJvbEluZGV4KTt2YXIgbz10aGlzLmljb24ucGxhY2VkU3ltYm9sQXJyYXkuZ2V0KGEpO2lmKG8ubnVtR2x5cGhzKXt2YXIgcz1vLnZlcnRleFN0YXJ0SW5kZXg7dGhpcy5pY29uLmluZGV4QXJyYXkuZW1wbGFjZUJhY2socyxzKzEscysyKSx0aGlzLmljb24uaW5kZXhBcnJheS5lbXBsYWNlQmFjayhzKzEscysyLHMrMyl9fXRoaXMudGV4dC5pbmRleEJ1ZmZlciYmdGhpcy50ZXh0LmluZGV4QnVmZmVyLnVwZGF0ZURhdGEodGhpcy50ZXh0LmluZGV4QXJyYXkpLHRoaXMuaWNvbi5pbmRleEJ1ZmZlciYmdGhpcy5pY29uLmluZGV4QnVmZmVyLnVwZGF0ZURhdGEodGhpcy5pY29uLmluZGV4QXJyYXkpfX0sZG4oIlN5bWJvbEJ1Y2tldCIsT3Mse29taXQ6WyJsYXllcnMiLCJjb2xsaXNpb25Cb3hBcnJheSIsImZlYXR1cmVzIiwiY29tcGFyZVRleHQiXX0pLE9zLk1BWF9HTFlQSFM9NjU1MzUsT3MuYWRkRHluYW1pY0F0dHJpYnV0ZXM9THM7dmFyIHpzPW5ldyBHbih7InN5bWJvbC1wbGFjZW1lbnQiOm5ldyBqbihUdC5sYXlvdXRfc3ltYm9sWyJzeW1ib2wtcGxhY2VtZW50Il0pLCJzeW1ib2wtc3BhY2luZyI6bmV3IGpuKFR0LmxheW91dF9zeW1ib2xbInN5bWJvbC1zcGFjaW5nIl0pLCJzeW1ib2wtYXZvaWQtZWRnZXMiOm5ldyBqbihUdC5sYXlvdXRfc3ltYm9sWyJzeW1ib2wtYXZvaWQtZWRnZXMiXSksInN5bWJvbC1zb3J0LWtleSI6bmV3IFZuKFR0LmxheW91dF9zeW1ib2xbInN5bWJvbC1zb3J0LWtleSJdKSwic3ltYm9sLXotb3JkZXIiOm5ldyBqbihUdC5sYXlvdXRfc3ltYm9sWyJzeW1ib2wtei1vcmRlciJdKSwiaWNvbi1hbGxvdy1vdmVybGFwIjpuZXcgam4oVHQubGF5b3V0X3N5bWJvbFsiaWNvbi1hbGxvdy1vdmVybGFwIl0pLCJpY29uLWlnbm9yZS1wbGFjZW1lbnQiOm5ldyBqbihUdC5sYXlvdXRfc3ltYm9sWyJpY29uLWlnbm9yZS1wbGFjZW1lbnQiXSksImljb24tb3B0aW9uYWwiOm5ldyBqbihUdC5sYXlvdXRfc3ltYm9sWyJpY29uLW9wdGlvbmFsIl0pLCJpY29uLXJvdGF0aW9uLWFsaWdubWVudCI6bmV3IGpuKFR0LmxheW91dF9zeW1ib2xbImljb24tcm90YXRpb24tYWxpZ25tZW50Il0pLCJpY29uLXNpemUiOm5ldyBWbihUdC5sYXlvdXRfc3ltYm9sWyJpY29uLXNpemUiXSksImljb24tdGV4dC1maXQiOm5ldyBqbihUdC5sYXlvdXRfc3ltYm9sWyJpY29uLXRleHQtZml0Il0pLCJpY29uLXRleHQtZml0LXBhZGRpbmciOm5ldyBqbihUdC5sYXlvdXRfc3ltYm9sWyJpY29uLXRleHQtZml0LXBhZGRpbmciXSksImljb24taW1hZ2UiOm5ldyBWbihUdC5sYXlvdXRfc3ltYm9sWyJpY29uLWltYWdlIl0pLCJpY29uLXJvdGF0ZSI6bmV3IFZuKFR0LmxheW91dF9zeW1ib2xbImljb24tcm90YXRlIl0pLCJpY29uLXBhZGRpbmciOm5ldyBqbihUdC5sYXlvdXRfc3ltYm9sWyJpY29uLXBhZGRpbmciXSksImljb24ta2VlcC11cHJpZ2h0IjpuZXcgam4oVHQubGF5b3V0X3N5bWJvbFsiaWNvbi1rZWVwLXVwcmlnaHQiXSksImljb24tb2Zmc2V0IjpuZXcgVm4oVHQubGF5b3V0X3N5bWJvbFsiaWNvbi1vZmZzZXQiXSksImljb24tYW5jaG9yIjpuZXcgVm4oVHQubGF5b3V0X3N5bWJvbFsiaWNvbi1hbmNob3IiXSksImljb24tcGl0Y2gtYWxpZ25tZW50IjpuZXcgam4oVHQubGF5b3V0X3N5bWJvbFsiaWNvbi1waXRjaC1hbGlnbm1lbnQiXSksInRleHQtcGl0Y2gtYWxpZ25tZW50IjpuZXcgam4oVHQubGF5b3V0X3N5bWJvbFsidGV4dC1waXRjaC1hbGlnbm1lbnQiXSksInRleHQtcm90YXRpb24tYWxpZ25tZW50IjpuZXcgam4oVHQubGF5b3V0X3N5bWJvbFsidGV4dC1yb3RhdGlvbi1hbGlnbm1lbnQiXSksInRleHQtZmllbGQiOm5ldyBWbihUdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LWZpZWxkIl0pLCJ0ZXh0LWZvbnQiOm5ldyBWbihUdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LWZvbnQiXSksInRleHQtc2l6ZSI6bmV3IFZuKFR0LmxheW91dF9zeW1ib2xbInRleHQtc2l6ZSJdKSwidGV4dC1tYXgtd2lkdGgiOm5ldyBWbihUdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LW1heC13aWR0aCJdKSwidGV4dC1saW5lLWhlaWdodCI6bmV3IGpuKFR0LmxheW91dF9zeW1ib2xbInRleHQtbGluZS1oZWlnaHQiXSksInRleHQtbGV0dGVyLXNwYWNpbmciOm5ldyBWbihUdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LWxldHRlci1zcGFjaW5nIl0pLCJ0ZXh0LWp1c3RpZnkiOm5ldyBWbihUdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LWp1c3RpZnkiXSksInRleHQtcmFkaWFsLW9mZnNldCI6bmV3IFZuKFR0LmxheW91dF9zeW1ib2xbInRleHQtcmFkaWFsLW9mZnNldCJdKSwidGV4dC12YXJpYWJsZS1hbmNob3IiOm5ldyBqbihUdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LXZhcmlhYmxlLWFuY2hvciJdKSwidGV4dC1hbmNob3IiOm5ldyBWbihUdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LWFuY2hvciJdKSwidGV4dC1tYXgtYW5nbGUiOm5ldyBqbihUdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LW1heC1hbmdsZSJdKSwidGV4dC13cml0aW5nLW1vZGUiOm5ldyBqbihUdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LXdyaXRpbmctbW9kZSJdKSwidGV4dC1yb3RhdGUiOm5ldyBWbihUdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LXJvdGF0ZSJdKSwidGV4dC1wYWRkaW5nIjpuZXcgam4oVHQubGF5b3V0X3N5bWJvbFsidGV4dC1wYWRkaW5nIl0pLCJ0ZXh0LWtlZXAtdXByaWdodCI6bmV3IGpuKFR0LmxheW91dF9zeW1ib2xbInRleHQta2VlcC11cHJpZ2h0Il0pLCJ0ZXh0LXRyYW5zZm9ybSI6bmV3IFZuKFR0LmxheW91dF9zeW1ib2xbInRleHQtdHJhbnNmb3JtIl0pLCJ0ZXh0LW9mZnNldCI6bmV3IFZuKFR0LmxheW91dF9zeW1ib2xbInRleHQtb2Zmc2V0Il0pLCJ0ZXh0LWFsbG93LW92ZXJsYXAiOm5ldyBqbihUdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LWFsbG93LW92ZXJsYXAiXSksInRleHQtaWdub3JlLXBsYWNlbWVudCI6bmV3IGpuKFR0LmxheW91dF9zeW1ib2xbInRleHQtaWdub3JlLXBsYWNlbWVudCJdKSwidGV4dC1vcHRpb25hbCI6bmV3IGpuKFR0LmxheW91dF9zeW1ib2xbInRleHQtb3B0aW9uYWwiXSl9KSxJcz17cGFpbnQ6bmV3IEduKHsiaWNvbi1vcGFjaXR5IjpuZXcgVm4oVHQucGFpbnRfc3ltYm9sWyJpY29uLW9wYWNpdHkiXSksImljb24tY29sb3IiOm5ldyBWbihUdC5wYWludF9zeW1ib2xbImljb24tY29sb3IiXSksImljb24taGFsby1jb2xvciI6bmV3IFZuKFR0LnBhaW50X3N5bWJvbFsiaWNvbi1oYWxvLWNvbG9yIl0pLCJpY29uLWhhbG8td2lkdGgiOm5ldyBWbihUdC5wYWludF9zeW1ib2xbImljb24taGFsby13aWR0aCJdKSwiaWNvbi1oYWxvLWJsdXIiOm5ldyBWbihUdC5wYWludF9zeW1ib2xbImljb24taGFsby1ibHVyIl0pLCJpY29uLXRyYW5zbGF0ZSI6bmV3IGpuKFR0LnBhaW50X3N5bWJvbFsiaWNvbi10cmFuc2xhdGUiXSksImljb24tdHJhbnNsYXRlLWFuY2hvciI6bmV3IGpuKFR0LnBhaW50X3N5bWJvbFsiaWNvbi10cmFuc2xhdGUtYW5jaG9yIl0pLCJ0ZXh0LW9wYWNpdHkiOm5ldyBWbihUdC5wYWludF9zeW1ib2xbInRleHQtb3BhY2l0eSJdKSwidGV4dC1jb2xvciI6bmV3IFZuKFR0LnBhaW50X3N5bWJvbFsidGV4dC1jb2xvciJdLHtydW50aW1lVHlwZTpGdCxnZXRPdmVycmlkZTpmdW5jdGlvbih0KXtyZXR1cm4gdC50ZXh0Q29sb3J9LGhhc092ZXJyaWRlOmZ1bmN0aW9uKHQpe3JldHVybiEhdC50ZXh0Q29sb3J9fSksInRleHQtaGFsby1jb2xvciI6bmV3IFZuKFR0LnBhaW50X3N5bWJvbFsidGV4dC1oYWxvLWNvbG9yIl0pLCJ0ZXh0LWhhbG8td2lkdGgiOm5ldyBWbihUdC5wYWludF9zeW1ib2xbInRleHQtaGFsby13aWR0aCJdKSwidGV4dC1oYWxvLWJsdXIiOm5ldyBWbihUdC5wYWludF9zeW1ib2xbInRleHQtaGFsby1ibHVyIl0pLCJ0ZXh0LXRyYW5zbGF0ZSI6bmV3IGpuKFR0LnBhaW50X3N5bWJvbFsidGV4dC10cmFuc2xhdGUiXSksInRleHQtdHJhbnNsYXRlLWFuY2hvciI6bmV3IGpuKFR0LnBhaW50X3N5bWJvbFsidGV4dC10cmFuc2xhdGUtYW5jaG9yIl0pfSksbGF5b3V0OnpzfSxEcz1mdW5jdGlvbih0KXt0aGlzLnR5cGU9dC5wcm9wZXJ0eS5vdmVycmlkZXM/dC5wcm9wZXJ0eS5vdmVycmlkZXMucnVudGltZVR5cGU6enQsdGhpcy5kZWZhdWx0VmFsdWU9dH07RHMucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQpe2lmKHQuZm9ybWF0dGVkU2VjdGlvbil7dmFyIGU9dGhpcy5kZWZhdWx0VmFsdWUucHJvcGVydHkub3ZlcnJpZGVzO2lmKGUmJmUuaGFzT3ZlcnJpZGUodC5mb3JtYXR0ZWRTZWN0aW9uKSlyZXR1cm4gZS5nZXRPdmVycmlkZSh0LmZvcm1hdHRlZFNlY3Rpb24pfXJldHVybiB0LmZlYXR1cmUmJnQuZmVhdHVyZVN0YXRlP3RoaXMuZGVmYXVsdFZhbHVlLmV2YWx1YXRlKHQuZmVhdHVyZSx0LmZlYXR1cmVTdGF0ZSk6dGhpcy5kZWZhdWx0VmFsdWUucHJvcGVydHkuc3BlY2lmaWNhdGlvbi5kZWZhdWx0fSxEcy5wcm90b3R5cGUuZWFjaENoaWxkPWZ1bmN0aW9uKHQpe3RoaXMuZGVmYXVsdFZhbHVlLmlzQ29uc3RhbnQoKXx8dCh0aGlzLmRlZmF1bHRWYWx1ZS52YWx1ZS5fc3R5bGVFeHByZXNzaW9uLmV4cHJlc3Npb24pfSxEcy5wcm90b3R5cGUucG9zc2libGVPdXRwdXRzPWZ1bmN0aW9uKCl7cmV0dXJuW3ZvaWQgMF19LERzLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0sZG4oIkZvcm1hdFNlY3Rpb25PdmVycmlkZSIsRHMse29taXQ6WyJkZWZhdWx0VmFsdWUiXX0pO3ZhciBScz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3QuY2FsbCh0aGlzLGUsSXMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5yZWNhbGN1bGF0ZT1mdW5jdGlvbihlKXtpZih0LnByb3RvdHlwZS5yZWNhbGN1bGF0ZS5jYWxsKHRoaXMsZSksImF1dG8iPT09dGhpcy5sYXlvdXQuZ2V0KCJpY29uLXJvdGF0aW9uLWFsaWdubWVudCIpJiYoInBvaW50IiE9PXRoaXMubGF5b3V0LmdldCgic3ltYm9sLXBsYWNlbWVudCIpP3RoaXMubGF5b3V0Ll92YWx1ZXNbImljb24tcm90YXRpb24tYWxpZ25tZW50Il09Im1hcCI6dGhpcy5sYXlvdXQuX3ZhbHVlc1siaWNvbi1yb3RhdGlvbi1hbGlnbm1lbnQiXT0idmlld3BvcnQiKSwiYXV0byI9PT10aGlzLmxheW91dC5nZXQoInRleHQtcm90YXRpb24tYWxpZ25tZW50IikmJigicG9pbnQiIT09dGhpcy5sYXlvdXQuZ2V0KCJzeW1ib2wtcGxhY2VtZW50Iik/dGhpcy5sYXlvdXQuX3ZhbHVlc1sidGV4dC1yb3RhdGlvbi1hbGlnbm1lbnQiXT0ibWFwIjp0aGlzLmxheW91dC5fdmFsdWVzWyJ0ZXh0LXJvdGF0aW9uLWFsaWdubWVudCJdPSJ2aWV3cG9ydCIpLCJhdXRvIj09PXRoaXMubGF5b3V0LmdldCgidGV4dC1waXRjaC1hbGlnbm1lbnQiKSYmKHRoaXMubGF5b3V0Ll92YWx1ZXNbInRleHQtcGl0Y2gtYWxpZ25tZW50Il09dGhpcy5sYXlvdXQuZ2V0KCJ0ZXh0LXJvdGF0aW9uLWFsaWdubWVudCIpKSwiYXV0byI9PT10aGlzLmxheW91dC5nZXQoImljb24tcGl0Y2gtYWxpZ25tZW50IikmJih0aGlzLmxheW91dC5fdmFsdWVzWyJpY29uLXBpdGNoLWFsaWdubWVudCJdPXRoaXMubGF5b3V0LmdldCgiaWNvbi1yb3RhdGlvbi1hbGlnbm1lbnQiKSksInBvaW50Ij09PXRoaXMubGF5b3V0LmdldCgic3ltYm9sLXBsYWNlbWVudCIpKXt2YXIgcj10aGlzLmxheW91dC5nZXQoInRleHQtd3JpdGluZy1tb2RlIik7aWYocil7Zm9yKHZhciBuPVtdLGE9MCxpPXI7YTxpLmxlbmd0aDthKz0xKXt2YXIgbz1pW2FdO24uaW5kZXhPZihvKTwwJiZuLnB1c2gobyl9dGhpcy5sYXlvdXQuX3ZhbHVlc1sidGV4dC13cml0aW5nLW1vZGUiXT1ufWVsc2UgdGhpcy5sYXlvdXQuX3ZhbHVlc1sidGV4dC13cml0aW5nLW1vZGUiXT1bImhvcml6b250YWwiXX10aGlzLl9zZXRQYWludE92ZXJyaWRlcygpfSxlLnByb3RvdHlwZS5nZXRWYWx1ZUFuZFJlc29sdmVUb2tlbnM9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmxheW91dC5nZXQodCkuZXZhbHVhdGUoZSx7fSksbj10aGlzLl91bmV2YWx1YXRlZExheW91dC5fdmFsdWVzW3RdO3JldHVybiBuLmlzRGF0YURyaXZlbigpfHx3cihuLnZhbHVlKT9yOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIucmVwbGFjZSgveyhbXnt9XSspfS9nLGZ1bmN0aW9uKGUscil7cmV0dXJuIHIgaW4gdD9TdHJpbmcodFtyXSk6IiJ9KX0oZS5wcm9wZXJ0aWVzKX0sZS5wcm90b3R5cGUuY3JlYXRlQnVja2V0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgT3ModCl9LGUucHJvdG90eXBlLnF1ZXJ5UmFkaXVzPWZ1bmN0aW9uKCl7cmV0dXJuIDB9LGUucHJvdG90eXBlLnF1ZXJ5SW50ZXJzZWN0c0ZlYXR1cmU9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZS5wcm90b3R5cGUuX3NldFBhaW50T3ZlcnJpZGVzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTAscj1Jcy5wYWludC5vdmVycmlkYWJsZVByb3BlcnRpZXM7dDxyLmxlbmd0aDt0Kz0xKXt2YXIgbj1yW3RdO2lmKGUuaGFzUGFpbnRPdmVycmlkZSh0aGlzLmxheW91dCxuKSl7dmFyIGEsaT10aGlzLnBhaW50LmdldChuKSxvPW5ldyBEcyhpKSxzPW5ldyBfcihvLGkucHJvcGVydHkuc3BlY2lmaWNhdGlvbik7YT0iY29uc3RhbnQiPT09aS52YWx1ZS5raW5kfHwic291cmNlIj09PWkudmFsdWUua2luZD9uZXcgVHIoInNvdXJjZSIscyk6bmV3IE1yKCJjb21wb3NpdGUiLHMsaS52YWx1ZS56b29tU3RvcHMsaS52YWx1ZS5faW50ZXJwb2xhdGlvblR5cGUpLHRoaXMucGFpbnQuX3ZhbHVlc1tuXT1uZXcgQm4oaS5wcm9wZXJ0eSxhLGkucGFyYW1ldGVycyl9fX0sZS5wcm90b3R5cGUuX2hhbmRsZU92ZXJyaWRhYmxlUGFpbnRQcm9wZXJ0eVVwZGF0ZT1mdW5jdGlvbih0LHIsbil7cmV0dXJuISghdGhpcy5sYXlvdXR8fHIuaXNEYXRhRHJpdmVuKCl8fG4uaXNEYXRhRHJpdmVuKCkpJiZlLmhhc1BhaW50T3ZlcnJpZGUodGhpcy5sYXlvdXQsdCl9LGUuaGFzUGFpbnRPdmVycmlkZT1mdW5jdGlvbih0LGUpe3ZhciByPXQuZ2V0KCJ0ZXh0LWZpZWxkIiksbj1Jcy5wYWludC5wcm9wZXJ0aWVzW2VdLGE9ITEsaT1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxyPXQ7ZTxyLmxlbmd0aDtlKz0xKXt2YXIgaT1yW2VdO2lmKG4ub3ZlcnJpZGVzJiZuLm92ZXJyaWRlcy5oYXNPdmVycmlkZShpKSlyZXR1cm4gdm9pZChhPSEwKX19O2lmKCJjb25zdGFudCI9PT1yLnZhbHVlLmtpbmQmJnIudmFsdWUudmFsdWUgaW5zdGFuY2VvZiBKdClpKHIudmFsdWUudmFsdWUuc2VjdGlvbnMpO2Vsc2UgaWYoInNvdXJjZSI9PT1yLnZhbHVlLmtpbmQpe3ZhciBvPWZ1bmN0aW9uKHQpe2lmKCFhKWlmKHQgaW5zdGFuY2VvZiB0ZSYmUXQodC52YWx1ZSk9PT1WdCl7dmFyIGU9dC52YWx1ZTtpKGUuc2VjdGlvbnMpfWVsc2UgdCBpbnN0YW5jZW9mIGFlP2kodC5zZWN0aW9ucyk6dC5lYWNoQ2hpbGQobyl9LHM9ci52YWx1ZTtzLl9zdHlsZUV4cHJlc3Npb24mJm8ocy5fc3R5bGVFeHByZXNzaW9uLmV4cHJlc3Npb24pfXJldHVybiBhfSxlLmhhc1BhaW50T3ZlcnJpZGVzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgcj0wLG49SXMucGFpbnQub3ZlcnJpZGFibGVQcm9wZXJ0aWVzO3I8bi5sZW5ndGg7cis9MSl7dmFyIGE9bltyXTtpZihlLmhhc1BhaW50T3ZlcnJpZGUodCxhKSlyZXR1cm4hMH1yZXR1cm4hMX0sZX0oWW4pLEZzPXtwYWludDpuZXcgR24oeyJiYWNrZ3JvdW5kLWNvbG9yIjpuZXcgam4oVHQucGFpbnRfYmFja2dyb3VuZFsiYmFja2dyb3VuZC1jb2xvciJdKSwiYmFja2dyb3VuZC1wYXR0ZXJuIjpuZXcgcW4oVHQucGFpbnRfYmFja2dyb3VuZFsiYmFja2dyb3VuZC1wYXR0ZXJuIl0pLCJiYWNrZ3JvdW5kLW9wYWNpdHkiOm5ldyBqbihUdC5wYWludF9iYWNrZ3JvdW5kWyJiYWNrZ3JvdW5kLW9wYWNpdHkiXSl9KX0sQnM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt0LmNhbGwodGhpcyxlLEZzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZX0oWW4pLE5zPXtwYWludDpuZXcgR24oeyJyYXN0ZXItb3BhY2l0eSI6bmV3IGpuKFR0LnBhaW50X3Jhc3RlclsicmFzdGVyLW9wYWNpdHkiXSksInJhc3Rlci1odWUtcm90YXRlIjpuZXcgam4oVHQucGFpbnRfcmFzdGVyWyJyYXN0ZXItaHVlLXJvdGF0ZSJdKSwicmFzdGVyLWJyaWdodG5lc3MtbWluIjpuZXcgam4oVHQucGFpbnRfcmFzdGVyWyJyYXN0ZXItYnJpZ2h0bmVzcy1taW4iXSksInJhc3Rlci1icmlnaHRuZXNzLW1heCI6bmV3IGpuKFR0LnBhaW50X3Jhc3RlclsicmFzdGVyLWJyaWdodG5lc3MtbWF4Il0pLCJyYXN0ZXItc2F0dXJhdGlvbiI6bmV3IGpuKFR0LnBhaW50X3Jhc3RlclsicmFzdGVyLXNhdHVyYXRpb24iXSksInJhc3Rlci1jb250cmFzdCI6bmV3IGpuKFR0LnBhaW50X3Jhc3RlclsicmFzdGVyLWNvbnRyYXN0Il0pLCJyYXN0ZXItcmVzYW1wbGluZyI6bmV3IGpuKFR0LnBhaW50X3Jhc3RlclsicmFzdGVyLXJlc2FtcGxpbmciXSksInJhc3Rlci1mYWRlLWR1cmF0aW9uIjpuZXcgam4oVHQucGFpbnRfcmFzdGVyWyJyYXN0ZXItZmFkZS1kdXJhdGlvbiJdKX0pfSxqcz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3QuY2FsbCh0aGlzLGUsTnMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlfShZbiksVnM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt0LmNhbGwodGhpcyxlLHt9KSx0aGlzLmltcGxlbWVudGF0aW9uPWV9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmlzM0Q9ZnVuY3Rpb24oKXtyZXR1cm4iM2QiPT09dGhpcy5pbXBsZW1lbnRhdGlvbi5yZW5kZXJpbmdNb2RlfSxlLnByb3RvdHlwZS5oYXNPZmZzY3JlZW5QYXNzPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuaW1wbGVtZW50YXRpb24ucHJlcmVuZGVyfSxlLnByb3RvdHlwZS5yZWNhbGN1bGF0ZT1mdW5jdGlvbigpe30sZS5wcm90b3R5cGUudXBkYXRlVHJhbnNpdGlvbnM9ZnVuY3Rpb24oKXt9LGUucHJvdG90eXBlLmhhc1RyYW5zaXRpb249ZnVuY3Rpb24oKXt9LGUucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe30sZS5wcm90b3R5cGUub25BZGQ9ZnVuY3Rpb24odCl7dGhpcy5pbXBsZW1lbnRhdGlvbi5vbkFkZCYmdGhpcy5pbXBsZW1lbnRhdGlvbi5vbkFkZCh0LHQucGFpbnRlci5jb250ZXh0LmdsKX0sZS5wcm90b3R5cGUub25SZW1vdmU9ZnVuY3Rpb24odCl7dGhpcy5pbXBsZW1lbnRhdGlvbi5vblJlbW92ZSYmdGhpcy5pbXBsZW1lbnRhdGlvbi5vblJlbW92ZSh0LHQucGFpbnRlci5jb250ZXh0LmdsKX0sZX0oWW4pLFVzPXtjaXJjbGU6TWksaGVhdG1hcDpEaSxoaWxsc2hhZGU6RmksZmlsbDpUbywiZmlsbC1leHRydXNpb24iOlVvLGxpbmU6JG8sc3ltYm9sOlJzLGJhY2tncm91bmQ6QnMscmFzdGVyOmpzfTtmdW5jdGlvbiBxcyh0KXtmb3IodmFyIGU9MCxyPTAsbj0wLGE9dDtuPGEubGVuZ3RoO24rPTEpe3ZhciBpPWFbbl07ZSs9aS53KmkuaCxyPU1hdGgubWF4KHIsaS53KX10LnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5oLXQuaH0pO2Zvcih2YXIgbz1be3g6MCx5OjAsdzpNYXRoLm1heChNYXRoLmNlaWwoTWF0aC5zcXJ0KGUvLjk1KSksciksaDoxLzB9XSxzPTAsbD0wLGM9MCx1PXQ7Yzx1Lmxlbmd0aDtjKz0xKWZvcih2YXIgaD11W2NdLGY9by5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHA9b1tmXTtpZighKGgudz5wLnd8fGguaD5wLmgpKXtpZihoLng9cC54LGgueT1wLnksbD1NYXRoLm1heChsLGgueStoLmgpLHM9TWF0aC5tYXgocyxoLngraC53KSxoLnc9PT1wLncmJmguaD09PXAuaCl7dmFyIGQ9by5wb3AoKTtmPG8ubGVuZ3RoJiYob1tmXT1kKX1lbHNlIGguaD09PXAuaD8ocC54Kz1oLncscC53LT1oLncpOmgudz09PXAudz8ocC55Kz1oLmgscC5oLT1oLmgpOihvLnB1c2goe3g6cC54K2gudyx5OnAueSx3OnAudy1oLncsaDpoLmh9KSxwLnkrPWguaCxwLmgtPWguaCk7YnJlYWt9fXJldHVybnt3OnMsaDpsLGZpbGw6ZS8ocypsKXx8MH19dmFyIEhzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5waXhlbFJhdGlvLG49ZS52ZXJzaW9uO3RoaXMucGFkZGVkUmVjdD10LHRoaXMucGl4ZWxSYXRpbz1yLHRoaXMudmVyc2lvbj1ufSxHcz17dGw6e2NvbmZpZ3VyYWJsZTohMH0sYnI6e2NvbmZpZ3VyYWJsZTohMH0sdGxicjp7Y29uZmlndXJhYmxlOiEwfSxkaXNwbGF5U2l6ZTp7Y29uZmlndXJhYmxlOiEwfX07R3MudGwuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuW3RoaXMucGFkZGVkUmVjdC54KzEsdGhpcy5wYWRkZWRSZWN0LnkrMV19LEdzLmJyLmdldD1mdW5jdGlvbigpe3JldHVyblt0aGlzLnBhZGRlZFJlY3QueCt0aGlzLnBhZGRlZFJlY3Qudy0xLHRoaXMucGFkZGVkUmVjdC55K3RoaXMucGFkZGVkUmVjdC5oLTFdfSxHcy50bGJyLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRsLmNvbmNhdCh0aGlzLmJyKX0sR3MuZGlzcGxheVNpemUuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuWyh0aGlzLnBhZGRlZFJlY3Qudy0yKS90aGlzLnBpeGVsUmF0aW8sKHRoaXMucGFkZGVkUmVjdC5oLTIpL3RoaXMucGl4ZWxSYXRpb119LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEhzLnByb3RvdHlwZSxHcyk7dmFyIFlzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9e30sbj17fTt0aGlzLmhhdmVSZW5kZXJDYWxsYmFja3M9W107dmFyIGE9W107dGhpcy5hZGRJbWFnZXModCxyLGEpLHRoaXMuYWRkSW1hZ2VzKGUsbixhKTt2YXIgaT1xcyhhKSxvPWkudyxzPWkuaCxsPW5ldyBPaSh7d2lkdGg6b3x8MSxoZWlnaHQ6c3x8MX0pO2Zvcih2YXIgYyBpbiB0KXt2YXIgdT10W2NdLGg9cltjXS5wYWRkZWRSZWN0O09pLmNvcHkodS5kYXRhLGwse3g6MCx5OjB9LHt4OmgueCsxLHk6aC55KzF9LHUuZGF0YSl9Zm9yKHZhciBmIGluIGUpe3ZhciBwPWVbZl0sZD1uW2ZdLnBhZGRlZFJlY3QsZz1kLngrMSx2PWQueSsxLG09cC5kYXRhLndpZHRoLHk9cC5kYXRhLmhlaWdodDtPaS5jb3B5KHAuZGF0YSxsLHt4OjAseTowfSx7eDpnLHk6dn0scC5kYXRhKSxPaS5jb3B5KHAuZGF0YSxsLHt4OjAseTp5LTF9LHt4OmcseTp2LTF9LHt3aWR0aDptLGhlaWdodDoxfSksT2kuY29weShwLmRhdGEsbCx7eDowLHk6MH0se3g6Zyx5OnYreX0se3dpZHRoOm0saGVpZ2h0OjF9KSxPaS5jb3B5KHAuZGF0YSxsLHt4Om0tMSx5OjB9LHt4OmctMSx5OnZ9LHt3aWR0aDoxLGhlaWdodDp5fSksT2kuY29weShwLmRhdGEsbCx7eDowLHk6MH0se3g6ZyttLHk6dn0se3dpZHRoOjEsaGVpZ2h0Onl9KX10aGlzLmltYWdlPWwsdGhpcy5pY29uUG9zaXRpb25zPXIsdGhpcy5wYXR0ZXJuUG9zaXRpb25zPW59O1lzLnByb3RvdHlwZS5hZGRJbWFnZXM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbiBpbiB0KXt2YXIgYT10W25dLGk9e3g6MCx5OjAsdzphLmRhdGEud2lkdGgrMixoOmEuZGF0YS5oZWlnaHQrMn07ci5wdXNoKGkpLGVbbl09bmV3IEhzKGksYSksYS5oYXNSZW5kZXJDYWxsYmFjayYmdGhpcy5oYXZlUmVuZGVyQ2FsbGJhY2tzLnB1c2gobil9fSxZcy5wcm90b3R5cGUucGF0Y2hVcGRhdGVkSW1hZ2VzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByIGluIHQuZGlzcGF0Y2hSZW5kZXJDYWxsYmFja3ModGhpcy5oYXZlUmVuZGVyQ2FsbGJhY2tzKSx0LnVwZGF0ZWRJbWFnZXMpdGhpcy5wYXRjaFVwZGF0ZWRJbWFnZSh0aGlzLmljb25Qb3NpdGlvbnNbcl0sdC5nZXRJbWFnZShyKSxlKSx0aGlzLnBhdGNoVXBkYXRlZEltYWdlKHRoaXMucGF0dGVyblBvc2l0aW9uc1tyXSx0LmdldEltYWdlKHIpLGUpfSxZcy5wcm90b3R5cGUucGF0Y2hVcGRhdGVkSW1hZ2U9ZnVuY3Rpb24odCxlLHIpe2lmKHQmJmUmJnQudmVyc2lvbiE9PWUudmVyc2lvbil7dC52ZXJzaW9uPWUudmVyc2lvbjt2YXIgbj10LnRsLGE9blswXSxpPW5bMV07ci51cGRhdGUoZS5kYXRhLHZvaWQgMCx7eDphLHk6aX0pfX0sZG4oIkltYWdlUG9zaXRpb24iLEhzKSxkbigiSW1hZ2VBdGxhcyIsWXMpO3ZhciBXcz1zZWxmLkhUTUxJbWFnZUVsZW1lbnQsWHM9c2VsZi5IVE1MQ2FudmFzRWxlbWVudCxacz1zZWxmLkhUTUxWaWRlb0VsZW1lbnQsSnM9c2VsZi5JbWFnZURhdGEsS3M9ZnVuY3Rpb24odCxlLHIsbil7dGhpcy5jb250ZXh0PXQsdGhpcy5mb3JtYXQ9cix0aGlzLnRleHR1cmU9dC5nbC5jcmVhdGVUZXh0dXJlKCksdGhpcy51cGRhdGUoZSxuKX07S3MucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbih0LGUscil7dmFyIG49dC53aWR0aCxhPXQuaGVpZ2h0LGk9ISh0aGlzLnNpemUmJnRoaXMuc2l6ZVswXT09PW4mJnRoaXMuc2l6ZVsxXT09PWF8fHIpLG89dGhpcy5jb250ZXh0LHM9by5nbDtpZih0aGlzLnVzZU1pcG1hcD1Cb29sZWFuKGUmJmUudXNlTWlwbWFwKSxzLmJpbmRUZXh0dXJlKHMuVEVYVFVSRV8yRCx0aGlzLnRleHR1cmUpLG8ucGl4ZWxTdG9yZVVucGFja0ZsaXBZLnNldCghMSksby5waXhlbFN0b3JlVW5wYWNrLnNldCgxKSxvLnBpeGVsU3RvcmVVbnBhY2tQcmVtdWx0aXBseUFscGhhLnNldCh0aGlzLmZvcm1hdD09PXMuUkdCQSYmKCFlfHwhMSE9PWUucHJlbXVsdGlwbHkpKSxpKXRoaXMuc2l6ZT1bbixhXSx0IGluc3RhbmNlb2YgV3N8fHQgaW5zdGFuY2VvZiBYc3x8dCBpbnN0YW5jZW9mIFpzfHx0IGluc3RhbmNlb2YgSnM/cy50ZXhJbWFnZTJEKHMuVEVYVFVSRV8yRCwwLHRoaXMuZm9ybWF0LHRoaXMuZm9ybWF0LHMuVU5TSUdORURfQllURSx0KTpzLnRleEltYWdlMkQocy5URVhUVVJFXzJELDAsdGhpcy5mb3JtYXQsbixhLDAsdGhpcy5mb3JtYXQscy5VTlNJR05FRF9CWVRFLHQuZGF0YSk7ZWxzZXt2YXIgbD1yfHx7eDowLHk6MH0sYz1sLngsdT1sLnk7dCBpbnN0YW5jZW9mIFdzfHx0IGluc3RhbmNlb2YgWHN8fHQgaW5zdGFuY2VvZiBac3x8dCBpbnN0YW5jZW9mIEpzP3MudGV4U3ViSW1hZ2UyRChzLlRFWFRVUkVfMkQsMCxjLHUscy5SR0JBLHMuVU5TSUdORURfQllURSx0KTpzLnRleFN1YkltYWdlMkQocy5URVhUVVJFXzJELDAsYyx1LG4sYSxzLlJHQkEscy5VTlNJR05FRF9CWVRFLHQuZGF0YSl9dGhpcy51c2VNaXBtYXAmJnRoaXMuaXNTaXplUG93ZXJPZlR3bygpJiZzLmdlbmVyYXRlTWlwbWFwKHMuVEVYVFVSRV8yRCl9LEtzLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLmNvbnRleHQuZ2w7bi5iaW5kVGV4dHVyZShuLlRFWFRVUkVfMkQsdGhpcy50ZXh0dXJlKSxyIT09bi5MSU5FQVJfTUlQTUFQX05FQVJFU1R8fHRoaXMuaXNTaXplUG93ZXJPZlR3bygpfHwocj1uLkxJTkVBUiksdCE9PXRoaXMuZmlsdGVyJiYobi50ZXhQYXJhbWV0ZXJpKG4uVEVYVFVSRV8yRCxuLlRFWFRVUkVfTUFHX0ZJTFRFUix0KSxuLnRleFBhcmFtZXRlcmkobi5URVhUVVJFXzJELG4uVEVYVFVSRV9NSU5fRklMVEVSLHJ8fHQpLHRoaXMuZmlsdGVyPXQpLGUhPT10aGlzLndyYXAmJihuLnRleFBhcmFtZXRlcmkobi5URVhUVVJFXzJELG4uVEVYVFVSRV9XUkFQX1MsZSksbi50ZXhQYXJhbWV0ZXJpKG4uVEVYVFVSRV8yRCxuLlRFWFRVUkVfV1JBUF9ULGUpLHRoaXMud3JhcD1lKX0sS3MucHJvdG90eXBlLmlzU2l6ZVBvd2VyT2ZUd289ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaXplWzBdPT09dGhpcy5zaXplWzFdJiZNYXRoLmxvZyh0aGlzLnNpemVbMF0pL01hdGguTE4yJTE9PTB9LEtzLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5jb250ZXh0LmdsLmRlbGV0ZVRleHR1cmUodGhpcy50ZXh0dXJlKSx0aGlzLnRleHR1cmU9bnVsbH07dmFyIFFzPWZ1bmN0aW9uKHQsZSxyLG4sYSl7dmFyIGksbyxzPTgqYS1uLTEsbD0oMTw8cyktMSxjPWw+PjEsdT0tNyxoPXI/YS0xOjAsZj1yPy0xOjEscD10W2UraF07Zm9yKGgrPWYsaT1wJigxPDwtdSktMSxwPj49LXUsdSs9czt1PjA7aT0yNTYqaSt0W2UraF0saCs9Zix1LT04KTtmb3Iobz1pJigxPDwtdSktMSxpPj49LXUsdSs9bjt1PjA7bz0yNTYqbyt0W2UraF0saCs9Zix1LT04KTtpZigwPT09aSlpPTEtYztlbHNle2lmKGk9PT1sKXJldHVybiBvP05hTjoxLzAqKHA/LTE6MSk7bys9TWF0aC5wb3coMixuKSxpLT1jfXJldHVybihwPy0xOjEpKm8qTWF0aC5wb3coMixpLW4pfSwkcz1mdW5jdGlvbih0LGUscixuLGEsaSl7dmFyIG8scyxsLGM9OCppLWEtMSx1PSgxPDxjKS0xLGg9dT4+MSxmPTIzPT09YT9NYXRoLnBvdygyLC0yNCktTWF0aC5wb3coMiwtNzcpOjAscD1uPzA6aS0xLGQ9bj8xOi0xLGc9ZTwwfHwwPT09ZSYmMS9lPDA/MTowO2ZvcihlPU1hdGguYWJzKGUpLGlzTmFOKGUpfHxlPT09MS8wPyhzPWlzTmFOKGUpPzE6MCxvPXUpOihvPU1hdGguZmxvb3IoTWF0aC5sb2coZSkvTWF0aC5MTjIpLGUqKGw9TWF0aC5wb3coMiwtbykpPDEmJihvLS0sbCo9MiksKGUrPW8raD49MT9mL2w6ZipNYXRoLnBvdygyLDEtaCkpKmw+PTImJihvKyssbC89MiksbytoPj11PyhzPTAsbz11KTpvK2g+PTE/KHM9KGUqbC0xKSpNYXRoLnBvdygyLGEpLG8rPWgpOihzPWUqTWF0aC5wb3coMixoLTEpKk1hdGgucG93KDIsYSksbz0wKSk7YT49ODt0W3IrcF09MjU1JnMscCs9ZCxzLz0yNTYsYS09OCk7Zm9yKG89bzw8YXxzLGMrPWE7Yz4wO3RbcitwXT0yNTUmbyxwKz1kLG8vPTI1NixjLT04KTt0W3IrcC1kXXw9MTI4Kmd9LHRsPWVsO2Z1bmN0aW9uIGVsKHQpe3RoaXMuYnVmPUFycmF5QnVmZmVyLmlzVmlldyYmQXJyYXlCdWZmZXIuaXNWaWV3KHQpP3Q6bmV3IFVpbnQ4QXJyYXkodHx8MCksdGhpcy5wb3M9MCx0aGlzLnR5cGU9MCx0aGlzLmxlbmd0aD10aGlzLmJ1Zi5sZW5ndGh9ZnVuY3Rpb24gcmwodCl7cmV0dXJuIHQudHlwZT09PWVsLkJ5dGVzP3QucmVhZFZhcmludCgpK3QucG9zOnQucG9zKzF9ZnVuY3Rpb24gbmwodCxlLHIpe3JldHVybiByPzQyOTQ5NjcyOTYqZSsodD4+PjApOjQyOTQ5NjcyOTYqKGU+Pj4wKSsodD4+PjApfWZ1bmN0aW9uIGFsKHQsZSxyKXt2YXIgbj1lPD0xNjM4Mz8xOmU8PTIwOTcxNTE/MjplPD0yNjg0MzU0NTU/MzpNYXRoLmZsb29yKE1hdGgubG9nKGUpLyg3Kk1hdGguTE4yKSk7ci5yZWFsbG9jKG4pO2Zvcih2YXIgYT1yLnBvcy0xO2E+PXQ7YS0tKXIuYnVmW2Erbl09ci5idWZbYV19ZnVuY3Rpb24gaWwodCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyllLndyaXRlVmFyaW50KHRbcl0pfWZ1bmN0aW9uIG9sKHQsZSl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspZS53cml0ZVNWYXJpbnQodFtyXSl9ZnVuY3Rpb24gc2wodCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyllLndyaXRlRmxvYXQodFtyXSl9ZnVuY3Rpb24gbGwodCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyllLndyaXRlRG91YmxlKHRbcl0pfWZ1bmN0aW9uIGNsKHQsZSl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspZS53cml0ZUJvb2xlYW4odFtyXSl9ZnVuY3Rpb24gdWwodCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyllLndyaXRlRml4ZWQzMih0W3JdKX1mdW5jdGlvbiBobCh0LGUpe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKWUud3JpdGVTRml4ZWQzMih0W3JdKX1mdW5jdGlvbiBmbCh0LGUpe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKWUud3JpdGVGaXhlZDY0KHRbcl0pfWZ1bmN0aW9uIHBsKHQsZSl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspZS53cml0ZVNGaXhlZDY0KHRbcl0pfWZ1bmN0aW9uIGRsKHQsZSl7cmV0dXJuKHRbZV18dFtlKzFdPDw4fHRbZSsyXTw8MTYpKzE2Nzc3MjE2KnRbZSszXX1mdW5jdGlvbiBnbCh0LGUscil7dFtyXT1lLHRbcisxXT1lPj4+OCx0W3IrMl09ZT4+PjE2LHRbciszXT1lPj4+MjR9ZnVuY3Rpb24gdmwodCxlKXtyZXR1cm4odFtlXXx0W2UrMV08PDh8dFtlKzJdPDwxNikrKHRbZSszXTw8MjQpfWVsLlZhcmludD0wLGVsLkZpeGVkNjQ9MSxlbC5CeXRlcz0yLGVsLkZpeGVkMzI9NSxlbC5wcm90b3R5cGU9e2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmJ1Zj1udWxsfSxyZWFkRmllbGRzOmZ1bmN0aW9uKHQsZSxyKXtmb3Iocj1yfHx0aGlzLmxlbmd0aDt0aGlzLnBvczxyOyl7dmFyIG49dGhpcy5yZWFkVmFyaW50KCksYT1uPj4zLGk9dGhpcy5wb3M7dGhpcy50eXBlPTcmbix0KGEsZSx0aGlzKSx0aGlzLnBvcz09PWkmJnRoaXMuc2tpcChuKX1yZXR1cm4gZX0scmVhZE1lc3NhZ2U6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5yZWFkRmllbGRzKHQsZSx0aGlzLnJlYWRWYXJpbnQoKSt0aGlzLnBvcyl9LHJlYWRGaXhlZDMyOmZ1bmN0aW9uKCl7dmFyIHQ9ZGwodGhpcy5idWYsdGhpcy5wb3MpO3JldHVybiB0aGlzLnBvcys9NCx0fSxyZWFkU0ZpeGVkMzI6ZnVuY3Rpb24oKXt2YXIgdD12bCh0aGlzLmJ1Zix0aGlzLnBvcyk7cmV0dXJuIHRoaXMucG9zKz00LHR9LHJlYWRGaXhlZDY0OmZ1bmN0aW9uKCl7dmFyIHQ9ZGwodGhpcy5idWYsdGhpcy5wb3MpKzQyOTQ5NjcyOTYqZGwodGhpcy5idWYsdGhpcy5wb3MrNCk7cmV0dXJuIHRoaXMucG9zKz04LHR9LHJlYWRTRml4ZWQ2NDpmdW5jdGlvbigpe3ZhciB0PWRsKHRoaXMuYnVmLHRoaXMucG9zKSs0Mjk0OTY3Mjk2KnZsKHRoaXMuYnVmLHRoaXMucG9zKzQpO3JldHVybiB0aGlzLnBvcys9OCx0fSxyZWFkRmxvYXQ6ZnVuY3Rpb24oKXt2YXIgdD1Rcyh0aGlzLmJ1Zix0aGlzLnBvcywhMCwyMyw0KTtyZXR1cm4gdGhpcy5wb3MrPTQsdH0scmVhZERvdWJsZTpmdW5jdGlvbigpe3ZhciB0PVFzKHRoaXMuYnVmLHRoaXMucG9zLCEwLDUyLDgpO3JldHVybiB0aGlzLnBvcys9OCx0fSxyZWFkVmFyaW50OmZ1bmN0aW9uKHQpe3ZhciBlLHIsbj10aGlzLmJ1ZjtyZXR1cm4gZT0xMjcmKHI9blt0aGlzLnBvcysrXSkscjwxMjg/ZTooZXw9KDEyNyYocj1uW3RoaXMucG9zKytdKSk8PDcscjwxMjg/ZTooZXw9KDEyNyYocj1uW3RoaXMucG9zKytdKSk8PDE0LHI8MTI4P2U6KGV8PSgxMjcmKHI9blt0aGlzLnBvcysrXSkpPDwyMSxyPDEyOD9lOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbixhLGk9ci5idWY7aWYobj0oMTEyJihhPWlbci5wb3MrK10pKT4+NCxhPDEyOClyZXR1cm4gbmwodCxuLGUpO2lmKG58PSgxMjcmKGE9aVtyLnBvcysrXSkpPDwzLGE8MTI4KXJldHVybiBubCh0LG4sZSk7aWYobnw9KDEyNyYoYT1pW3IucG9zKytdKSk8PDEwLGE8MTI4KXJldHVybiBubCh0LG4sZSk7aWYobnw9KDEyNyYoYT1pW3IucG9zKytdKSk8PDE3LGE8MTI4KXJldHVybiBubCh0LG4sZSk7aWYobnw9KDEyNyYoYT1pW3IucG9zKytdKSk8PDI0LGE8MTI4KXJldHVybiBubCh0LG4sZSk7aWYobnw9KDEmKGE9aVtyLnBvcysrXSkpPDwzMSxhPDEyOClyZXR1cm4gbmwodCxuLGUpO3Rocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgdmFyaW50IG5vdCBtb3JlIHRoYW4gMTAgYnl0ZXMiKX0oZXw9KDE1JihyPW5bdGhpcy5wb3NdKSk8PDI4LHQsdGhpcykpKSl9LHJlYWRWYXJpbnQ2NDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRWYXJpbnQoITApfSxyZWFkU1ZhcmludDpmdW5jdGlvbigpe3ZhciB0PXRoaXMucmVhZFZhcmludCgpO3JldHVybiB0JTI9PTE/KHQrMSkvLTI6dC8yfSxyZWFkQm9vbGVhbjpmdW5jdGlvbigpe3JldHVybiBCb29sZWFuKHRoaXMucmVhZFZhcmludCgpKX0scmVhZFN0cmluZzpmdW5jdGlvbigpe3ZhciB0PXRoaXMucmVhZFZhcmludCgpK3RoaXMucG9zLGU9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj0iIixhPWU7YTxyOyl7dmFyIGksbyxzLGw9dFthXSxjPW51bGwsdT1sPjIzOT80Omw+MjIzPzM6bD4xOTE/MjoxO2lmKGErdT5yKWJyZWFrOzE9PT11P2w8MTI4JiYoYz1sKToyPT09dT8xMjg9PSgxOTImKGk9dFthKzFdKSkmJihjPSgzMSZsKTw8Nnw2MyZpKTw9MTI3JiYoYz1udWxsKTozPT09dT8oaT10W2ErMV0sbz10W2ErMl0sMTI4PT0oMTkyJmkpJiYxMjg9PSgxOTImbykmJigoYz0oMTUmbCk8PDEyfCg2MyZpKTw8Nnw2MyZvKTw9MjA0N3x8Yz49NTUyOTYmJmM8PTU3MzQzKSYmKGM9bnVsbCkpOjQ9PT11JiYoaT10W2ErMV0sbz10W2ErMl0scz10W2ErM10sMTI4PT0oMTkyJmkpJiYxMjg9PSgxOTImbykmJjEyOD09KDE5MiZzKSYmKChjPSgxNSZsKTw8MTh8KDYzJmkpPDwxMnwoNjMmbyk8PDZ8NjMmcyk8PTY1NTM1fHxjPj0xMTE0MTEyKSYmKGM9bnVsbCkpLG51bGw9PT1jPyhjPTY1NTMzLHU9MSk6Yz42NTUzNSYmKGMtPTY1NTM2LG4rPVN0cmluZy5mcm9tQ2hhckNvZGUoYz4+PjEwJjEwMjN8NTUyOTYpLGM9NTYzMjB8MTAyMyZjKSxuKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGMpLGErPXV9cmV0dXJuIG59KHRoaXMuYnVmLHRoaXMucG9zLHQpO3JldHVybiB0aGlzLnBvcz10LGV9LHJlYWRCeXRlczpmdW5jdGlvbigpe3ZhciB0PXRoaXMucmVhZFZhcmludCgpK3RoaXMucG9zLGU9dGhpcy5idWYuc3ViYXJyYXkodGhpcy5wb3MsdCk7cmV0dXJuIHRoaXMucG9zPXQsZX0scmVhZFBhY2tlZFZhcmludDpmdW5jdGlvbih0LGUpe2lmKHRoaXMudHlwZSE9PWVsLkJ5dGVzKXJldHVybiB0LnB1c2godGhpcy5yZWFkVmFyaW50KGUpKTt2YXIgcj1ybCh0aGlzKTtmb3IodD10fHxbXTt0aGlzLnBvczxyOyl0LnB1c2godGhpcy5yZWFkVmFyaW50KGUpKTtyZXR1cm4gdH0scmVhZFBhY2tlZFNWYXJpbnQ6ZnVuY3Rpb24odCl7aWYodGhpcy50eXBlIT09ZWwuQnl0ZXMpcmV0dXJuIHQucHVzaCh0aGlzLnJlYWRTVmFyaW50KCkpO3ZhciBlPXJsKHRoaXMpO2Zvcih0PXR8fFtdO3RoaXMucG9zPGU7KXQucHVzaCh0aGlzLnJlYWRTVmFyaW50KCkpO3JldHVybiB0fSxyZWFkUGFja2VkQm9vbGVhbjpmdW5jdGlvbih0KXtpZih0aGlzLnR5cGUhPT1lbC5CeXRlcylyZXR1cm4gdC5wdXNoKHRoaXMucmVhZEJvb2xlYW4oKSk7dmFyIGU9cmwodGhpcyk7Zm9yKHQ9dHx8W107dGhpcy5wb3M8ZTspdC5wdXNoKHRoaXMucmVhZEJvb2xlYW4oKSk7cmV0dXJuIHR9LHJlYWRQYWNrZWRGbG9hdDpmdW5jdGlvbih0KXtpZih0aGlzLnR5cGUhPT1lbC5CeXRlcylyZXR1cm4gdC5wdXNoKHRoaXMucmVhZEZsb2F0KCkpO3ZhciBlPXJsKHRoaXMpO2Zvcih0PXR8fFtdO3RoaXMucG9zPGU7KXQucHVzaCh0aGlzLnJlYWRGbG9hdCgpKTtyZXR1cm4gdH0scmVhZFBhY2tlZERvdWJsZTpmdW5jdGlvbih0KXtpZih0aGlzLnR5cGUhPT1lbC5CeXRlcylyZXR1cm4gdC5wdXNoKHRoaXMucmVhZERvdWJsZSgpKTt2YXIgZT1ybCh0aGlzKTtmb3IodD10fHxbXTt0aGlzLnBvczxlOyl0LnB1c2godGhpcy5yZWFkRG91YmxlKCkpO3JldHVybiB0fSxyZWFkUGFja2VkRml4ZWQzMjpmdW5jdGlvbih0KXtpZih0aGlzLnR5cGUhPT1lbC5CeXRlcylyZXR1cm4gdC5wdXNoKHRoaXMucmVhZEZpeGVkMzIoKSk7dmFyIGU9cmwodGhpcyk7Zm9yKHQ9dHx8W107dGhpcy5wb3M8ZTspdC5wdXNoKHRoaXMucmVhZEZpeGVkMzIoKSk7cmV0dXJuIHR9LHJlYWRQYWNrZWRTRml4ZWQzMjpmdW5jdGlvbih0KXtpZih0aGlzLnR5cGUhPT1lbC5CeXRlcylyZXR1cm4gdC5wdXNoKHRoaXMucmVhZFNGaXhlZDMyKCkpO3ZhciBlPXJsKHRoaXMpO2Zvcih0PXR8fFtdO3RoaXMucG9zPGU7KXQucHVzaCh0aGlzLnJlYWRTRml4ZWQzMigpKTtyZXR1cm4gdH0scmVhZFBhY2tlZEZpeGVkNjQ6ZnVuY3Rpb24odCl7aWYodGhpcy50eXBlIT09ZWwuQnl0ZXMpcmV0dXJuIHQucHVzaCh0aGlzLnJlYWRGaXhlZDY0KCkpO3ZhciBlPXJsKHRoaXMpO2Zvcih0PXR8fFtdO3RoaXMucG9zPGU7KXQucHVzaCh0aGlzLnJlYWRGaXhlZDY0KCkpO3JldHVybiB0fSxyZWFkUGFja2VkU0ZpeGVkNjQ6ZnVuY3Rpb24odCl7aWYodGhpcy50eXBlIT09ZWwuQnl0ZXMpcmV0dXJuIHQucHVzaCh0aGlzLnJlYWRTRml4ZWQ2NCgpKTt2YXIgZT1ybCh0aGlzKTtmb3IodD10fHxbXTt0aGlzLnBvczxlOyl0LnB1c2godGhpcy5yZWFkU0ZpeGVkNjQoKSk7cmV0dXJuIHR9LHNraXA6ZnVuY3Rpb24odCl7dmFyIGU9NyZ0O2lmKGU9PT1lbC5WYXJpbnQpZm9yKDt0aGlzLmJ1Zlt0aGlzLnBvcysrXT4xMjc7KTtlbHNlIGlmKGU9PT1lbC5CeXRlcyl0aGlzLnBvcz10aGlzLnJlYWRWYXJpbnQoKSt0aGlzLnBvcztlbHNlIGlmKGU9PT1lbC5GaXhlZDMyKXRoaXMucG9zKz00O2Vsc2V7aWYoZSE9PWVsLkZpeGVkNjQpdGhyb3cgbmV3IEVycm9yKCJVbmltcGxlbWVudGVkIHR5cGU6ICIrZSk7dGhpcy5wb3MrPTh9fSx3cml0ZVRhZzpmdW5jdGlvbih0LGUpe3RoaXMud3JpdGVWYXJpbnQodDw8M3xlKX0scmVhbGxvYzpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5sZW5ndGh8fDE2O2U8dGhpcy5wb3MrdDspZSo9MjtpZihlIT09dGhpcy5sZW5ndGgpe3ZhciByPW5ldyBVaW50OEFycmF5KGUpO3Iuc2V0KHRoaXMuYnVmKSx0aGlzLmJ1Zj1yLHRoaXMubGVuZ3RoPWV9fSxmaW5pc2g6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZW5ndGg9dGhpcy5wb3MsdGhpcy5wb3M9MCx0aGlzLmJ1Zi5zdWJhcnJheSgwLHRoaXMubGVuZ3RoKX0sd3JpdGVGaXhlZDMyOmZ1bmN0aW9uKHQpe3RoaXMucmVhbGxvYyg0KSxnbCh0aGlzLmJ1Zix0LHRoaXMucG9zKSx0aGlzLnBvcys9NH0sd3JpdGVTRml4ZWQzMjpmdW5jdGlvbih0KXt0aGlzLnJlYWxsb2MoNCksZ2wodGhpcy5idWYsdCx0aGlzLnBvcyksdGhpcy5wb3MrPTR9LHdyaXRlRml4ZWQ2NDpmdW5jdGlvbih0KXt0aGlzLnJlYWxsb2MoOCksZ2wodGhpcy5idWYsLTEmdCx0aGlzLnBvcyksZ2wodGhpcy5idWYsTWF0aC5mbG9vcih0KigxLzQyOTQ5NjcyOTYpKSx0aGlzLnBvcys0KSx0aGlzLnBvcys9OH0sd3JpdGVTRml4ZWQ2NDpmdW5jdGlvbih0KXt0aGlzLnJlYWxsb2MoOCksZ2wodGhpcy5idWYsLTEmdCx0aGlzLnBvcyksZ2wodGhpcy5idWYsTWF0aC5mbG9vcih0KigxLzQyOTQ5NjcyOTYpKSx0aGlzLnBvcys0KSx0aGlzLnBvcys9OH0sd3JpdGVWYXJpbnQ6ZnVuY3Rpb24odCl7KHQ9K3R8fDApPjI2ODQzNTQ1NXx8dDwwP2Z1bmN0aW9uKHQsZSl7dmFyIHIsbjtpZih0Pj0wPyhyPXQlNDI5NDk2NzI5NnwwLG49dC80Mjk0OTY3Mjk2fDApOihuPX4oLXQvNDI5NDk2NzI5NiksNDI5NDk2NzI5NV4ocj1+KC10JTQyOTQ5NjcyOTYpKT9yPXIrMXwwOihyPTAsbj1uKzF8MCkpLHQ+PTB4MTAwMDAwMDAwMDAwMDAwMDB8fHQ8LTB4MTAwMDAwMDAwMDAwMDAwMDApdGhyb3cgbmV3IEVycm9yKCJHaXZlbiB2YXJpbnQgZG9lc24ndCBmaXQgaW50byAxMCBieXRlcyIpO2UucmVhbGxvYygxMCksZnVuY3Rpb24odCxlLHIpe3IuYnVmW3IucG9zKytdPTEyNyZ0fDEyOCx0Pj4+PTcsci5idWZbci5wb3MrK109MTI3JnR8MTI4LHQ+Pj49NyxyLmJ1ZltyLnBvcysrXT0xMjcmdHwxMjgsdD4+Pj03LHIuYnVmW3IucG9zKytdPTEyNyZ0fDEyOCx0Pj4+PTcsci5idWZbci5wb3NdPTEyNyZ0fShyLDAsZSksZnVuY3Rpb24odCxlKXt2YXIgcj0oNyZ0KTw8NDtlLmJ1ZltlLnBvcysrXXw9cnwoKHQ+Pj49Myk/MTI4OjApLHQmJihlLmJ1ZltlLnBvcysrXT0xMjcmdHwoKHQ+Pj49Nyk/MTI4OjApLHQmJihlLmJ1ZltlLnBvcysrXT0xMjcmdHwoKHQ+Pj49Nyk/MTI4OjApLHQmJihlLmJ1ZltlLnBvcysrXT0xMjcmdHwoKHQ+Pj49Nyk/MTI4OjApLHQmJihlLmJ1ZltlLnBvcysrXT0xMjcmdHwoKHQ+Pj49Nyk/MTI4OjApLHQmJihlLmJ1ZltlLnBvcysrXT0xMjcmdCkpKSkpfShuLGUpfSh0LHRoaXMpOih0aGlzLnJlYWxsb2MoNCksdGhpcy5idWZbdGhpcy5wb3MrK109MTI3JnR8KHQ+MTI3PzEyODowKSx0PD0xMjd8fCh0aGlzLmJ1Zlt0aGlzLnBvcysrXT0xMjcmKHQ+Pj49Nyl8KHQ+MTI3PzEyODowKSx0PD0xMjd8fCh0aGlzLmJ1Zlt0aGlzLnBvcysrXT0xMjcmKHQ+Pj49Nyl8KHQ+MTI3PzEyODowKSx0PD0xMjd8fCh0aGlzLmJ1Zlt0aGlzLnBvcysrXT10Pj4+NyYxMjcpKSkpfSx3cml0ZVNWYXJpbnQ6ZnVuY3Rpb24odCl7dGhpcy53cml0ZVZhcmludCh0PDA/MiotdC0xOjIqdCl9LHdyaXRlQm9vbGVhbjpmdW5jdGlvbih0KXt0aGlzLndyaXRlVmFyaW50KEJvb2xlYW4odCkpfSx3cml0ZVN0cmluZzpmdW5jdGlvbih0KXt0PVN0cmluZyh0KSx0aGlzLnJlYWxsb2MoNCp0Lmxlbmd0aCksdGhpcy5wb3MrKzt2YXIgZT10aGlzLnBvczt0aGlzLnBvcz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuLGEsaT0wO2k8ZS5sZW5ndGg7aSsrKXtpZigobj1lLmNoYXJDb2RlQXQoaSkpPjU1Mjk1JiZuPDU3MzQ0KXtpZighYSl7bj41NjMxOXx8aSsxPT09ZS5sZW5ndGg/KHRbcisrXT0yMzksdFtyKytdPTE5MSx0W3IrK109MTg5KTphPW47Y29udGludWV9aWYobjw1NjMyMCl7dFtyKytdPTIzOSx0W3IrK109MTkxLHRbcisrXT0xODksYT1uO2NvbnRpbnVlfW49YS01NTI5Njw8MTB8bi01NjMyMHw2NTUzNixhPW51bGx9ZWxzZSBhJiYodFtyKytdPTIzOSx0W3IrK109MTkxLHRbcisrXT0xODksYT1udWxsKTtuPDEyOD90W3IrK109bjoobjwyMDQ4P3RbcisrXT1uPj42fDE5Mjoobjw2NTUzNj90W3IrK109bj4+MTJ8MjI0Oih0W3IrK109bj4+MTh8MjQwLHRbcisrXT1uPj4xMiY2M3wxMjgpLHRbcisrXT1uPj42JjYzfDEyOCksdFtyKytdPTYzJm58MTI4KX1yZXR1cm4gcn0odGhpcy5idWYsdCx0aGlzLnBvcyk7dmFyIHI9dGhpcy5wb3MtZTtyPj0xMjgmJmFsKGUscix0aGlzKSx0aGlzLnBvcz1lLTEsdGhpcy53cml0ZVZhcmludChyKSx0aGlzLnBvcys9cn0sd3JpdGVGbG9hdDpmdW5jdGlvbih0KXt0aGlzLnJlYWxsb2MoNCksJHModGhpcy5idWYsdCx0aGlzLnBvcywhMCwyMyw0KSx0aGlzLnBvcys9NH0sd3JpdGVEb3VibGU6ZnVuY3Rpb24odCl7dGhpcy5yZWFsbG9jKDgpLCRzKHRoaXMuYnVmLHQsdGhpcy5wb3MsITAsNTIsOCksdGhpcy5wb3MrPTh9LHdyaXRlQnl0ZXM6ZnVuY3Rpb24odCl7dmFyIGU9dC5sZW5ndGg7dGhpcy53cml0ZVZhcmludChlKSx0aGlzLnJlYWxsb2MoZSk7Zm9yKHZhciByPTA7cjxlO3IrKyl0aGlzLmJ1Zlt0aGlzLnBvcysrXT10W3JdfSx3cml0ZVJhd01lc3NhZ2U6ZnVuY3Rpb24odCxlKXt0aGlzLnBvcysrO3ZhciByPXRoaXMucG9zO3QoZSx0aGlzKTt2YXIgbj10aGlzLnBvcy1yO24+PTEyOCYmYWwocixuLHRoaXMpLHRoaXMucG9zPXItMSx0aGlzLndyaXRlVmFyaW50KG4pLHRoaXMucG9zKz1ufSx3cml0ZU1lc3NhZ2U6ZnVuY3Rpb24odCxlLHIpe3RoaXMud3JpdGVUYWcodCxlbC5CeXRlcyksdGhpcy53cml0ZVJhd01lc3NhZ2UoZSxyKX0sd3JpdGVQYWNrZWRWYXJpbnQ6ZnVuY3Rpb24odCxlKXtlLmxlbmd0aCYmdGhpcy53cml0ZU1lc3NhZ2UodCxpbCxlKX0sd3JpdGVQYWNrZWRTVmFyaW50OmZ1bmN0aW9uKHQsZSl7ZS5sZW5ndGgmJnRoaXMud3JpdGVNZXNzYWdlKHQsb2wsZSl9LHdyaXRlUGFja2VkQm9vbGVhbjpmdW5jdGlvbih0LGUpe2UubGVuZ3RoJiZ0aGlzLndyaXRlTWVzc2FnZSh0LGNsLGUpfSx3cml0ZVBhY2tlZEZsb2F0OmZ1bmN0aW9uKHQsZSl7ZS5sZW5ndGgmJnRoaXMud3JpdGVNZXNzYWdlKHQsc2wsZSl9LHdyaXRlUGFja2VkRG91YmxlOmZ1bmN0aW9uKHQsZSl7ZS5sZW5ndGgmJnRoaXMud3JpdGVNZXNzYWdlKHQsbGwsZSl9LHdyaXRlUGFja2VkRml4ZWQzMjpmdW5jdGlvbih0LGUpe2UubGVuZ3RoJiZ0aGlzLndyaXRlTWVzc2FnZSh0LHVsLGUpfSx3cml0ZVBhY2tlZFNGaXhlZDMyOmZ1bmN0aW9uKHQsZSl7ZS5sZW5ndGgmJnRoaXMud3JpdGVNZXNzYWdlKHQsaGwsZSl9LHdyaXRlUGFja2VkRml4ZWQ2NDpmdW5jdGlvbih0LGUpe2UubGVuZ3RoJiZ0aGlzLndyaXRlTWVzc2FnZSh0LGZsLGUpfSx3cml0ZVBhY2tlZFNGaXhlZDY0OmZ1bmN0aW9uKHQsZSl7ZS5sZW5ndGgmJnRoaXMud3JpdGVNZXNzYWdlKHQscGwsZSl9LHdyaXRlQnl0ZXNGaWVsZDpmdW5jdGlvbih0LGUpe3RoaXMud3JpdGVUYWcodCxlbC5CeXRlcyksdGhpcy53cml0ZUJ5dGVzKGUpfSx3cml0ZUZpeGVkMzJGaWVsZDpmdW5jdGlvbih0LGUpe3RoaXMud3JpdGVUYWcodCxlbC5GaXhlZDMyKSx0aGlzLndyaXRlRml4ZWQzMihlKX0sd3JpdGVTRml4ZWQzMkZpZWxkOmZ1bmN0aW9uKHQsZSl7dGhpcy53cml0ZVRhZyh0LGVsLkZpeGVkMzIpLHRoaXMud3JpdGVTRml4ZWQzMihlKX0sd3JpdGVGaXhlZDY0RmllbGQ6ZnVuY3Rpb24odCxlKXt0aGlzLndyaXRlVGFnKHQsZWwuRml4ZWQ2NCksdGhpcy53cml0ZUZpeGVkNjQoZSl9LHdyaXRlU0ZpeGVkNjRGaWVsZDpmdW5jdGlvbih0LGUpe3RoaXMud3JpdGVUYWcodCxlbC5GaXhlZDY0KSx0aGlzLndyaXRlU0ZpeGVkNjQoZSl9LHdyaXRlVmFyaW50RmllbGQ6ZnVuY3Rpb24odCxlKXt0aGlzLndyaXRlVGFnKHQsZWwuVmFyaW50KSx0aGlzLndyaXRlVmFyaW50KGUpfSx3cml0ZVNWYXJpbnRGaWVsZDpmdW5jdGlvbih0LGUpe3RoaXMud3JpdGVUYWcodCxlbC5WYXJpbnQpLHRoaXMud3JpdGVTVmFyaW50KGUpfSx3cml0ZVN0cmluZ0ZpZWxkOmZ1bmN0aW9uKHQsZSl7dGhpcy53cml0ZVRhZyh0LGVsLkJ5dGVzKSx0aGlzLndyaXRlU3RyaW5nKGUpfSx3cml0ZUZsb2F0RmllbGQ6ZnVuY3Rpb24odCxlKXt0aGlzLndyaXRlVGFnKHQsZWwuRml4ZWQzMiksdGhpcy53cml0ZUZsb2F0KGUpfSx3cml0ZURvdWJsZUZpZWxkOmZ1bmN0aW9uKHQsZSl7dGhpcy53cml0ZVRhZyh0LGVsLkZpeGVkNjQpLHRoaXMud3JpdGVEb3VibGUoZSl9LHdyaXRlQm9vbGVhbkZpZWxkOmZ1bmN0aW9uKHQsZSl7dGhpcy53cml0ZVZhcmludEZpZWxkKHQsQm9vbGVhbihlKSl9fTt2YXIgbWw9MztmdW5jdGlvbiB5bCh0LGUscil7MT09PXQmJnIucmVhZE1lc3NhZ2UoeGwsZSl9ZnVuY3Rpb24geGwodCxlLHIpe2lmKDM9PT10KXt2YXIgbj1yLnJlYWRNZXNzYWdlKGJsLHt9KSxhPW4uaWQsaT1uLmJpdG1hcCxvPW4ud2lkdGgscz1uLmhlaWdodCxsPW4ubGVmdCxjPW4udG9wLHU9bi5hZHZhbmNlO2UucHVzaCh7aWQ6YSxiaXRtYXA6bmV3IFBpKHt3aWR0aDpvKzIqbWwsaGVpZ2h0OnMrMiptbH0saSksbWV0cmljczp7d2lkdGg6byxoZWlnaHQ6cyxsZWZ0OmwsdG9wOmMsYWR2YW5jZTp1fX0pfX1mdW5jdGlvbiBibCh0LGUscil7MT09PXQ/ZS5pZD1yLnJlYWRWYXJpbnQoKToyPT09dD9lLmJpdG1hcD1yLnJlYWRCeXRlcygpOjM9PT10P2Uud2lkdGg9ci5yZWFkVmFyaW50KCk6ND09PXQ/ZS5oZWlnaHQ9ci5yZWFkVmFyaW50KCk6NT09PXQ/ZS5sZWZ0PXIucmVhZFNWYXJpbnQoKTo2PT09dD9lLnRvcD1yLnJlYWRTVmFyaW50KCk6Nz09PXQmJihlLmFkdmFuY2U9ci5yZWFkVmFyaW50KCkpfXZhciBfbD1tbCx3bD1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuX2NhbGxiYWNrPXQsdGhpcy5fdHJpZ2dlcmVkPSExLCJ1bmRlZmluZWQiIT10eXBlb2YgTWVzc2FnZUNoYW5uZWwmJih0aGlzLl9jaGFubmVsPW5ldyBNZXNzYWdlQ2hhbm5lbCx0aGlzLl9jaGFubmVsLnBvcnQyLm9ubWVzc2FnZT1mdW5jdGlvbigpe2UuX3RyaWdnZXJlZD0hMSxlLl9jYWxsYmFjaygpfSl9O3dsLnByb3RvdHlwZS50cmlnZ2VyPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLl90cmlnZ2VyZWR8fCh0aGlzLl90cmlnZ2VyZWQ9ITAsdGhpcy5fY2hhbm5lbD90aGlzLl9jaGFubmVsLnBvcnQxLnBvc3RNZXNzYWdlKCEwKTpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5fdHJpZ2dlcmVkPSExLHQuX2NhbGxiYWNrKCl9LDApKX07dmFyIGtsPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLnRhcmdldD10LHRoaXMucGFyZW50PWUsdGhpcy5tYXBJZD1yLHRoaXMuY2FsbGJhY2tzPXt9LHRoaXMudGFza3M9e30sdGhpcy50YXNrUXVldWU9W10sdGhpcy5jYW5jZWxDYWxsYmFja3M9e30sdihbInJlY2VpdmUiLCJwcm9jZXNzIl0sdGhpcyksdGhpcy5pbnZva2VyPW5ldyB3bCh0aGlzLnByb2Nlc3MpLHRoaXMudGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHRoaXMucmVjZWl2ZSwhMSl9O2Z1bmN0aW9uIFRsKHQsZSxyKXt2YXIgbj0yKk1hdGguUEkqNjM3ODEzNy8yNTYvTWF0aC5wb3coMixyKTtyZXR1cm5bdCpuLTIqTWF0aC5QSSo2Mzc4MTM3LzIsZSpuLTIqTWF0aC5QSSo2Mzc4MTM3LzJdfWtsLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPXRoaXMsaT1NYXRoLnJvdW5kKDFlMTgqTWF0aC5yYW5kb20oKSkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygwLDEwKTtyJiYodGhpcy5jYWxsYmFja3NbaV09cik7dmFyIG89W107cmV0dXJuIHRoaXMudGFyZ2V0LnBvc3RNZXNzYWdlKHtpZDppLHR5cGU6dCxoYXNDYWxsYmFjazohIXIsdGFyZ2V0TWFwSWQ6bixzb3VyY2VNYXBJZDp0aGlzLm1hcElkLGRhdGE6dm4oZSxvKX0sbykse2NhbmNlbDpmdW5jdGlvbigpe3ImJmRlbGV0ZSBhLmNhbGxiYWNrc1tpXSxhLnRhcmdldC5wb3N0TWVzc2FnZSh7aWQ6aSx0eXBlOiI8Y2FuY2VsPiIsdGFyZ2V0TWFwSWQ6bixzb3VyY2VNYXBJZDphLm1hcElkfSl9fX0sa2wucHJvdG90eXBlLnJlY2VpdmU9ZnVuY3Rpb24odCl7dmFyIGU9dC5kYXRhLHI9ZS5pZDtpZihyJiYoIWUudGFyZ2V0TWFwSWR8fHRoaXMubWFwSWQ9PT1lLnRhcmdldE1hcElkKSlpZigiPGNhbmNlbD4iPT09ZS50eXBlKXtkZWxldGUgdGhpcy50YXNrc1tyXTt2YXIgbj10aGlzLmNhbmNlbENhbGxiYWNrc1tyXTtkZWxldGUgdGhpcy5jYW5jZWxDYWxsYmFja3Nbcl0sbiYmbigpfWVsc2UgdGhpcy50YXNrc1tyXT1lLHRoaXMudGFza1F1ZXVlLnB1c2gociksdGhpcy5pbnZva2VyLnRyaWdnZXIoKX0sa2wucHJvdG90eXBlLnByb2Nlc3M9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKHRoaXMudGFza1F1ZXVlLmxlbmd0aCl7dmFyIGU9dGhpcy50YXNrUXVldWUuc2hpZnQoKSxyPXRoaXMudGFza3NbZV07aWYoZGVsZXRlIHRoaXMudGFza3NbZV0sdGhpcy50YXNrUXVldWUubGVuZ3RoJiZ0aGlzLmludm9rZXIudHJpZ2dlcigpLHIpaWYoIjxyZXNwb25zZT4iPT09ci50eXBlKXt2YXIgbj10aGlzLmNhbGxiYWNrc1tlXTtkZWxldGUgdGhpcy5jYWxsYmFja3NbZV0sbiYmKHIuZXJyb3I/bihtbihyLmVycm9yKSk6bihudWxsLG1uKHIuZGF0YSkpKX1lbHNle3ZhciBhPSExLGk9ci5oYXNDYWxsYmFjaz9mdW5jdGlvbihyLG4pe2E9ITAsZGVsZXRlIHQuY2FuY2VsQ2FsbGJhY2tzW2VdO3ZhciBpPVtdO3QudGFyZ2V0LnBvc3RNZXNzYWdlKHtpZDplLHR5cGU6IjxyZXNwb25zZT4iLHNvdXJjZU1hcElkOnQubWFwSWQsZXJyb3I6cj92bihyKTpudWxsLGRhdGE6dm4obixpKX0saSl9OmZ1bmN0aW9uKHQpe2E9ITB9LG89bnVsbCxzPW1uKHIuZGF0YSk7aWYodGhpcy5wYXJlbnRbci50eXBlXSlvPXRoaXMucGFyZW50W3IudHlwZV0oci5zb3VyY2VNYXBJZCxzLGkpO2Vsc2UgaWYodGhpcy5wYXJlbnQuZ2V0V29ya2VyU291cmNlKXt2YXIgbD1yLnR5cGUuc3BsaXQoIi4iKTtvPXRoaXMucGFyZW50LmdldFdvcmtlclNvdXJjZShyLnNvdXJjZU1hcElkLGxbMF0scy5zb3VyY2UpW2xbMV1dKHMsaSl9ZWxzZSBpKG5ldyBFcnJvcigiQ291bGQgbm90IGZpbmQgZnVuY3Rpb24gIityLnR5cGUpKTshYSYmbyYmby5jYW5jZWwmJih0aGlzLmNhbmNlbENhbGxiYWNrc1tlXT1vLmNhbmNlbCl9fX0sa2wucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbigpe3RoaXMudGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHRoaXMucmVjZWl2ZSwhMSl9O3ZhciBNbD1mdW5jdGlvbih0LGUpe3QmJihlP3RoaXMuc2V0U291dGhXZXN0KHQpLnNldE5vcnRoRWFzdChlKTo0PT09dC5sZW5ndGg/dGhpcy5zZXRTb3V0aFdlc3QoW3RbMF0sdFsxXV0pLnNldE5vcnRoRWFzdChbdFsyXSx0WzNdXSk6dGhpcy5zZXRTb3V0aFdlc3QodFswXSkuc2V0Tm9ydGhFYXN0KHRbMV0pKX07TWwucHJvdG90eXBlLnNldE5vcnRoRWFzdD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbmU9dCBpbnN0YW5jZW9mIEFsP25ldyBBbCh0LmxuZyx0LmxhdCk6QWwuY29udmVydCh0KSx0aGlzfSxNbC5wcm90b3R5cGUuc2V0U291dGhXZXN0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9zdz10IGluc3RhbmNlb2YgQWw/bmV3IEFsKHQubG5nLHQubGF0KTpBbC5jb252ZXJ0KHQpLHRoaXN9LE1sLnByb3RvdHlwZS5leHRlbmQ9ZnVuY3Rpb24odCl7dmFyIGUscixuPXRoaXMuX3N3LGE9dGhpcy5fbmU7aWYodCBpbnN0YW5jZW9mIEFsKWU9dCxyPXQ7ZWxzZXtpZighKHQgaW5zdGFuY2VvZiBNbCkpcmV0dXJuIEFycmF5LmlzQXJyYXkodCk/dC5ldmVyeShBcnJheS5pc0FycmF5KT90aGlzLmV4dGVuZChNbC5jb252ZXJ0KHQpKTp0aGlzLmV4dGVuZChBbC5jb252ZXJ0KHQpKTp0aGlzO2lmKGU9dC5fc3cscj10Ll9uZSwhZXx8IXIpcmV0dXJuIHRoaXN9cmV0dXJuIG58fGE/KG4ubG5nPU1hdGgubWluKGUubG5nLG4ubG5nKSxuLmxhdD1NYXRoLm1pbihlLmxhdCxuLmxhdCksYS5sbmc9TWF0aC5tYXgoci5sbmcsYS5sbmcpLGEubGF0PU1hdGgubWF4KHIubGF0LGEubGF0KSk6KHRoaXMuX3N3PW5ldyBBbChlLmxuZyxlLmxhdCksdGhpcy5fbmU9bmV3IEFsKHIubG5nLHIubGF0KSksdGhpc30sTWwucHJvdG90eXBlLmdldENlbnRlcj1mdW5jdGlvbigpe3JldHVybiBuZXcgQWwoKHRoaXMuX3N3LmxuZyt0aGlzLl9uZS5sbmcpLzIsKHRoaXMuX3N3LmxhdCt0aGlzLl9uZS5sYXQpLzIpfSxNbC5wcm90b3R5cGUuZ2V0U291dGhXZXN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N3fSxNbC5wcm90b3R5cGUuZ2V0Tm9ydGhFYXN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25lfSxNbC5wcm90b3R5cGUuZ2V0Tm9ydGhXZXN0PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBBbCh0aGlzLmdldFdlc3QoKSx0aGlzLmdldE5vcnRoKCkpfSxNbC5wcm90b3R5cGUuZ2V0U291dGhFYXN0PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBBbCh0aGlzLmdldEVhc3QoKSx0aGlzLmdldFNvdXRoKCkpfSxNbC5wcm90b3R5cGUuZ2V0V2VzdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdy5sbmd9LE1sLnByb3RvdHlwZS5nZXRTb3V0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdy5sYXR9LE1sLnByb3RvdHlwZS5nZXRFYXN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25lLmxuZ30sTWwucHJvdG90eXBlLmdldE5vcnRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25lLmxhdH0sTWwucHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy5fc3cudG9BcnJheSgpLHRoaXMuX25lLnRvQXJyYXkoKV19LE1sLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJMbmdMYXRCb3VuZHMoIit0aGlzLl9zdy50b1N0cmluZygpKyIsICIrdGhpcy5fbmUudG9TdHJpbmcoKSsiKSJ9LE1sLnByb3RvdHlwZS5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuISh0aGlzLl9zdyYmdGhpcy5fbmUpfSxNbC5jb252ZXJ0PWZ1bmN0aW9uKHQpe3JldHVybiF0fHx0IGluc3RhbmNlb2YgTWw/dDpuZXcgTWwodCl9O3ZhciBBbD1mdW5jdGlvbih0LGUpe2lmKGlzTmFOKHQpfHxpc05hTihlKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgTG5nTGF0IG9iamVjdDogKCIrdCsiLCAiK2UrIikiKTtpZih0aGlzLmxuZz0rdCx0aGlzLmxhdD0rZSx0aGlzLmxhdD45MHx8dGhpcy5sYXQ8LTkwKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBMbmdMYXQgbGF0aXR1ZGUgdmFsdWU6IG11c3QgYmUgYmV0d2VlbiAtOTAgYW5kIDkwIil9O0FsLnByb3RvdHlwZS53cmFwPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBBbCh1KHRoaXMubG5nLC0xODAsMTgwKSx0aGlzLmxhdCl9LEFsLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKCl7cmV0dXJuW3RoaXMubG5nLHRoaXMubGF0XX0sQWwucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIkxuZ0xhdCgiK3RoaXMubG5nKyIsICIrdGhpcy5sYXQrIikifSxBbC5wcm90b3R5cGUudG9Cb3VuZHM9ZnVuY3Rpb24odCl7dm9pZCAwPT09dCYmKHQ9MCk7dmFyIGU9MzYwKnQvNDAwNzUwMTcscj1lL01hdGguY29zKE1hdGguUEkvMTgwKnRoaXMubGF0KTtyZXR1cm4gbmV3IE1sKG5ldyBBbCh0aGlzLmxuZy1yLHRoaXMubGF0LWUpLG5ldyBBbCh0aGlzLmxuZytyLHRoaXMubGF0K2UpKX0sQWwuY29udmVydD1mdW5jdGlvbih0KXtpZih0IGluc3RhbmNlb2YgQWwpcmV0dXJuIHQ7aWYoQXJyYXkuaXNBcnJheSh0KSYmKDI9PT10Lmxlbmd0aHx8Mz09PXQubGVuZ3RoKSlyZXR1cm4gbmV3IEFsKE51bWJlcih0WzBdKSxOdW1iZXIodFsxXSkpO2lmKCFBcnJheS5pc0FycmF5KHQpJiYib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPT10KXJldHVybiBuZXcgQWwoTnVtYmVyKCJsbmciaW4gdD90LmxuZzp0LmxvbiksTnVtYmVyKHQubGF0KSk7dGhyb3cgbmV3IEVycm9yKCJgTG5nTGF0TGlrZWAgYXJndW1lbnQgbXVzdCBiZSBzcGVjaWZpZWQgYXMgYSBMbmdMYXQgaW5zdGFuY2UsIGFuIG9iamVjdCB7bG5nOiA8bG5nPiwgbGF0OiA8bGF0Pn0sIGFuIG9iamVjdCB7bG9uOiA8bG5nPiwgbGF0OiA8bGF0Pn0sIG9yIGFuIGFycmF5IG9mIFs8bG5nPiwgPGxhdD5dIil9O3ZhciBTbD0yKk1hdGguUEkqNjM3ODEzNztmdW5jdGlvbiBFbCh0KXtyZXR1cm4gU2wqTWF0aC5jb3ModCpNYXRoLlBJLzE4MCl9ZnVuY3Rpb24gTGwodCl7cmV0dXJuKDE4MCt0KS8zNjB9ZnVuY3Rpb24gQ2wodCl7cmV0dXJuKDE4MC0xODAvTWF0aC5QSSpNYXRoLmxvZyhNYXRoLnRhbihNYXRoLlBJLzQrdCpNYXRoLlBJLzM2MCkpKS8zNjB9ZnVuY3Rpb24gUGwodCxlKXtyZXR1cm4gdC9FbChlKX1mdW5jdGlvbiBPbCh0KXt2YXIgZT0xODAtMzYwKnQ7cmV0dXJuIDM2MC9NYXRoLlBJKk1hdGguYXRhbihNYXRoLmV4cChlKk1hdGguUEkvMTgwKSktOTB9dmFyIHpsPWZ1bmN0aW9uKHQsZSxyKXt2b2lkIDA9PT1yJiYocj0wKSx0aGlzLng9K3QsdGhpcy55PStlLHRoaXMuej0rcn07emwuZnJvbUxuZ0xhdD1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPTApO3ZhciByPUFsLmNvbnZlcnQodCk7cmV0dXJuIG5ldyB6bChMbChyLmxuZyksQ2woci5sYXQpLFBsKGUsci5sYXQpKX0semwucHJvdG90eXBlLnRvTG5nTGF0PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBBbCgzNjAqdGhpcy54LTE4MCxPbCh0aGlzLnkpKX0semwucHJvdG90eXBlLnRvQWx0aXR1ZGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy56KkVsKE9sKHRoaXMueSkpfSx6bC5wcm90b3R5cGUubWV0ZXJJbk1lcmNhdG9yQ29vcmRpbmF0ZVVuaXRzPWZ1bmN0aW9uKCl7cmV0dXJuIDEvU2wqKHQ9T2wodGhpcy55KSwxL01hdGguY29zKHQqTWF0aC5QSS8xODApKTt2YXIgdH07dmFyIElsPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLno9dCx0aGlzLng9ZSx0aGlzLnk9cix0aGlzLmtleT1GbCgwLHQsZSxyKX07SWwucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy56PT09dC56JiZ0aGlzLng9PT10LngmJnRoaXMueT09PXQueX0sSWwucHJvdG90eXBlLnVybD1mdW5jdGlvbih0LGUpe3ZhciByLG4sYSxpLG8scz0ocj10aGlzLngsbj10aGlzLnksYT10aGlzLnosaT1UbCgyNTYqciwyNTYqKG49TWF0aC5wb3coMixhKS1uLTEpLGEpLG89VGwoMjU2KihyKzEpLDI1NioobisxKSxhKSxpWzBdKyIsIitpWzFdKyIsIitvWzBdKyIsIitvWzFdKSxsPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG4sYT0iIixpPXQ7aT4wO2ktLSlhKz0oZSYobj0xPDxpLTEpPzE6MCkrKHImbj8yOjApO3JldHVybiBhfSh0aGlzLnosdGhpcy54LHRoaXMueSk7cmV0dXJuIHRbKHRoaXMueCt0aGlzLnkpJXQubGVuZ3RoXS5yZXBsYWNlKCJ7cHJlZml4fSIsKHRoaXMueCUxNikudG9TdHJpbmcoMTYpKyh0aGlzLnklMTYpLnRvU3RyaW5nKDE2KSkucmVwbGFjZSgie3p9IixTdHJpbmcodGhpcy56KSkucmVwbGFjZSgie3h9IixTdHJpbmcodGhpcy54KSkucmVwbGFjZSgie3l9IixTdHJpbmcoInRtcyI9PT1lP01hdGgucG93KDIsdGhpcy56KS10aGlzLnktMTp0aGlzLnkpKS5yZXBsYWNlKCJ7cXVhZGtleX0iLGwpLnJlcGxhY2UoIntiYm94LWVwc2ctMzg1N30iLHMpfSxJbC5wcm90b3R5cGUuZ2V0VGlsZVBvaW50PWZ1bmN0aW9uKHQpe3ZhciBlPU1hdGgucG93KDIsdGhpcy56KTtyZXR1cm4gbmV3IGEoKHQueCplLXRoaXMueCkqZWksKHQueSplLXRoaXMueSkqZWkpfTt2YXIgRGw9ZnVuY3Rpb24odCxlKXt0aGlzLndyYXA9dCx0aGlzLmNhbm9uaWNhbD1lLHRoaXMua2V5PUZsKHQsZS56LGUueCxlLnkpfSxSbD1mdW5jdGlvbih0LGUscixuLGEpe3RoaXMub3ZlcnNjYWxlZFo9dCx0aGlzLndyYXA9ZSx0aGlzLmNhbm9uaWNhbD1uZXcgSWwociwrbiwrYSksdGhpcy5rZXk9RmwoZSx0LG4sYSl9O2Z1bmN0aW9uIEZsKHQsZSxyLG4peyh0Kj0yKTwwJiYodD0tMSp0LTEpO3ZhciBhPTE8PGU7cmV0dXJuIDMyKihhKmEqdCthKm4rcikrZX1SbC5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm92ZXJzY2FsZWRaPT09dC5vdmVyc2NhbGVkWiYmdGhpcy53cmFwPT09dC53cmFwJiZ0aGlzLmNhbm9uaWNhbC5lcXVhbHModC5jYW5vbmljYWwpfSxSbC5wcm90b3R5cGUuc2NhbGVkVG89ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jYW5vbmljYWwuei10O3JldHVybiB0PnRoaXMuY2Fub25pY2FsLno/bmV3IFJsKHQsdGhpcy53cmFwLHRoaXMuY2Fub25pY2FsLnosdGhpcy5jYW5vbmljYWwueCx0aGlzLmNhbm9uaWNhbC55KTpuZXcgUmwodCx0aGlzLndyYXAsdCx0aGlzLmNhbm9uaWNhbC54Pj5lLHRoaXMuY2Fub25pY2FsLnk+PmUpfSxSbC5wcm90b3R5cGUuaXNDaGlsZE9mPWZ1bmN0aW9uKHQpe2lmKHQud3JhcCE9PXRoaXMud3JhcClyZXR1cm4hMTt2YXIgZT10aGlzLmNhbm9uaWNhbC56LXQuY2Fub25pY2FsLno7cmV0dXJuIDA9PT10Lm92ZXJzY2FsZWRafHx0Lm92ZXJzY2FsZWRaPHRoaXMub3ZlcnNjYWxlZFomJnQuY2Fub25pY2FsLng9PT10aGlzLmNhbm9uaWNhbC54Pj5lJiZ0LmNhbm9uaWNhbC55PT09dGhpcy5jYW5vbmljYWwueT4+ZX0sUmwucHJvdG90eXBlLmNoaWxkcmVuPWZ1bmN0aW9uKHQpe2lmKHRoaXMub3ZlcnNjYWxlZFo+PXQpcmV0dXJuW25ldyBSbCh0aGlzLm92ZXJzY2FsZWRaKzEsdGhpcy53cmFwLHRoaXMuY2Fub25pY2FsLnosdGhpcy5jYW5vbmljYWwueCx0aGlzLmNhbm9uaWNhbC55KV07dmFyIGU9dGhpcy5jYW5vbmljYWwueisxLHI9Mip0aGlzLmNhbm9uaWNhbC54LG49Mip0aGlzLmNhbm9uaWNhbC55O3JldHVybltuZXcgUmwoZSx0aGlzLndyYXAsZSxyLG4pLG5ldyBSbChlLHRoaXMud3JhcCxlLHIrMSxuKSxuZXcgUmwoZSx0aGlzLndyYXAsZSxyLG4rMSksbmV3IFJsKGUsdGhpcy53cmFwLGUscisxLG4rMSldfSxSbC5wcm90b3R5cGUuaXNMZXNzVGhhbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy53cmFwPHQud3JhcHx8ISh0aGlzLndyYXA+dC53cmFwKSYmKHRoaXMub3ZlcnNjYWxlZFo8dC5vdmVyc2NhbGVkWnx8ISh0aGlzLm92ZXJzY2FsZWRaPnQub3ZlcnNjYWxlZFopJiYodGhpcy5jYW5vbmljYWwueDx0LmNhbm9uaWNhbC54fHwhKHRoaXMuY2Fub25pY2FsLng+dC5jYW5vbmljYWwueCkmJnRoaXMuY2Fub25pY2FsLnk8dC5jYW5vbmljYWwueSkpfSxSbC5wcm90b3R5cGUud3JhcHBlZD1mdW5jdGlvbigpe3JldHVybiBuZXcgUmwodGhpcy5vdmVyc2NhbGVkWiwwLHRoaXMuY2Fub25pY2FsLnosdGhpcy5jYW5vbmljYWwueCx0aGlzLmNhbm9uaWNhbC55KX0sUmwucHJvdG90eXBlLnVud3JhcFRvPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgUmwodGhpcy5vdmVyc2NhbGVkWix0LHRoaXMuY2Fub25pY2FsLnosdGhpcy5jYW5vbmljYWwueCx0aGlzLmNhbm9uaWNhbC55KX0sUmwucHJvdG90eXBlLm92ZXJzY2FsZUZhY3Rvcj1mdW5jdGlvbigpe3JldHVybiBNYXRoLnBvdygyLHRoaXMub3ZlcnNjYWxlZFotdGhpcy5jYW5vbmljYWwueil9LFJsLnByb3RvdHlwZS50b1Vud3JhcHBlZD1mdW5jdGlvbigpe3JldHVybiBuZXcgRGwodGhpcy53cmFwLHRoaXMuY2Fub25pY2FsKX0sUmwucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3ZlcnNjYWxlZForIi8iK3RoaXMuY2Fub25pY2FsLngrIi8iK3RoaXMuY2Fub25pY2FsLnl9LFJsLnByb3RvdHlwZS5nZXRUaWxlUG9pbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2Fub25pY2FsLmdldFRpbGVQb2ludChuZXcgemwodC54LXRoaXMud3JhcCx0LnkpKX0sZG4oIkNhbm9uaWNhbFRpbGVJRCIsSWwpLGRuKCJPdmVyc2NhbGVkVGlsZUlEIixSbCx7b21pdDpbInBvc01hdHJpeCJdfSk7dmFyIEJsPWZ1bmN0aW9uKHQsZSxyKXtpZih0aGlzLnVpZD10LGUuaGVpZ2h0IT09ZS53aWR0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiREVNIHRpbGVzIG11c3QgYmUgc3F1YXJlIik7aWYociYmIm1hcGJveCIhPT1yJiYidGVycmFyaXVtIiE9PXIpcmV0dXJuIHcoJyInK3IrJyIgaXMgbm90IGEgdmFsaWQgZW5jb2RpbmcgdHlwZS4gVmFsaWQgdHlwZXMgaW5jbHVkZSAibWFwYm94IiBhbmQgInRlcnJhcml1bSIuJyk7dmFyIG49dGhpcy5kaW09ZS5oZWlnaHQ7dGhpcy5zdHJpZGU9dGhpcy5kaW0rMix0aGlzLmRhdGE9bmV3IEludDMyQXJyYXkodGhpcy5zdHJpZGUqdGhpcy5zdHJpZGUpO2Zvcih2YXIgYT1lLmRhdGEsaT0idGVycmFyaXVtIj09PXI/dGhpcy5fdW5wYWNrVGVycmFyaXVtOnRoaXMuX3VucGFja01hcGJveCxvPTA7bzxuO28rKylmb3IodmFyIHM9MDtzPG47cysrKXt2YXIgbD00KihvKm4rcyk7dGhpcy5zZXQocyxvLGkoYVtsXSxhW2wrMV0sYVtsKzJdKSl9Zm9yKHZhciBjPTA7YzxuO2MrKyl0aGlzLnNldCgtMSxjLHRoaXMuZ2V0KDAsYykpLHRoaXMuc2V0KG4sYyx0aGlzLmdldChuLTEsYykpLHRoaXMuc2V0KGMsLTEsdGhpcy5nZXQoYywwKSksdGhpcy5zZXQoYyxuLHRoaXMuZ2V0KGMsbi0xKSk7dGhpcy5zZXQoLTEsLTEsdGhpcy5nZXQoMCwwKSksdGhpcy5zZXQobiwtMSx0aGlzLmdldChuLTEsMCkpLHRoaXMuc2V0KC0xLG4sdGhpcy5nZXQoMCxuLTEpKSx0aGlzLnNldChuLG4sdGhpcy5nZXQobi0xLG4tMSkpfTtCbC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSxyKXt0aGlzLmRhdGFbdGhpcy5faWR4KHQsZSldPXIrNjU1MzZ9LEJsLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5kYXRhW3RoaXMuX2lkeCh0LGUpXS02NTUzNn0sQmwucHJvdG90eXBlLl9pZHg9ZnVuY3Rpb24odCxlKXtpZih0PC0xfHx0Pj10aGlzLmRpbSsxfHxlPC0xfHxlPj10aGlzLmRpbSsxKXRocm93IG5ldyBSYW5nZUVycm9yKCJvdXQgb2YgcmFuZ2Ugc291cmNlIGNvb3JkaW5hdGVzIGZvciBERU0gZGF0YSIpO3JldHVybihlKzEpKnRoaXMuc3RyaWRlKyh0KzEpfSxCbC5wcm90b3R5cGUuX3VucGFja01hcGJveD1mdW5jdGlvbih0LGUscil7cmV0dXJuKDI1Nip0KjI1NisyNTYqZStyKS8xMC0xZTR9LEJsLnByb3RvdHlwZS5fdW5wYWNrVGVycmFyaXVtPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gMjU2KnQrZStyLzI1Ni0zMjc2OH0sQmwucHJvdG90eXBlLmdldFBpeGVscz1mdW5jdGlvbigpe3JldHVybiBuZXcgT2koe3dpZHRoOnRoaXMuc3RyaWRlLGhlaWdodDp0aGlzLnN0cmlkZX0sbmV3IFVpbnQ4QXJyYXkodGhpcy5kYXRhLmJ1ZmZlcikpfSxCbC5wcm90b3R5cGUuYmFja2ZpbGxCb3JkZXI9ZnVuY3Rpb24odCxlLHIpe2lmKHRoaXMuZGltIT09dC5kaW0pdGhyb3cgbmV3IEVycm9yKCJkZW0gZGltZW5zaW9uIG1pc21hdGNoIik7dmFyIG49ZSp0aGlzLmRpbSxhPWUqdGhpcy5kaW0rdGhpcy5kaW0saT1yKnRoaXMuZGltLG89cip0aGlzLmRpbSt0aGlzLmRpbTtzd2l0Y2goZSl7Y2FzZS0xOm49YS0xO2JyZWFrO2Nhc2UgMTphPW4rMX1zd2l0Y2gocil7Y2FzZS0xOmk9by0xO2JyZWFrO2Nhc2UgMTpvPWkrMX1mb3IodmFyIHM9LWUqdGhpcy5kaW0sbD0tcip0aGlzLmRpbSxjPWk7YzxvO2MrKylmb3IodmFyIHU9bjt1PGE7dSsrKXRoaXMuc2V0KHUsYyx0LmdldCh1K3MsYytsKSl9LGRuKCJERU1EYXRhIixCbCk7dmFyIE5sPUpuKFt7bmFtZToiYV9wb3MiLHR5cGU6IkludDE2Iixjb21wb25lbnRzOjJ9LHtuYW1lOiJhX3RleHR1cmVfcG9zIix0eXBlOiJJbnQxNiIsY29tcG9uZW50czoyfV0pLGpsPWZ1bmN0aW9uKHQpe3RoaXMuX3N0cmluZ1RvTnVtYmVyPXt9LHRoaXMuX251bWJlclRvU3RyaW5nPVtdO2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXt2YXIgcj10W2VdO3RoaXMuX3N0cmluZ1RvTnVtYmVyW3JdPWUsdGhpcy5fbnVtYmVyVG9TdHJpbmdbZV09cn19O2psLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3N0cmluZ1RvTnVtYmVyW3RdfSxqbC5wcm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9udW1iZXJUb1N0cmluZ1t0XX07dmFyIFZsPWZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMudHlwZT0iRmVhdHVyZSIsdGhpcy5fdmVjdG9yVGlsZUZlYXR1cmU9dCx0Ll96PWUsdC5feD1yLHQuX3k9bix0aGlzLnByb3BlcnRpZXM9dC5wcm9wZXJ0aWVzLG51bGwhPXQuaWQmJih0aGlzLmlkPXQuaWQpfSxVbD17Z2VvbWV0cnk6e2NvbmZpZ3VyYWJsZTohMH19O1VsLmdlb21ldHJ5LmdldD1mdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT10aGlzLl9nZW9tZXRyeSYmKHRoaXMuX2dlb21ldHJ5PXRoaXMuX3ZlY3RvclRpbGVGZWF0dXJlLnRvR2VvSlNPTih0aGlzLl92ZWN0b3JUaWxlRmVhdHVyZS5feCx0aGlzLl92ZWN0b3JUaWxlRmVhdHVyZS5feSx0aGlzLl92ZWN0b3JUaWxlRmVhdHVyZS5feikuZ2VvbWV0cnkpLHRoaXMuX2dlb21ldHJ5fSxVbC5nZW9tZXRyeS5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fZ2VvbWV0cnk9dH0sVmwucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3ZhciB0PXtnZW9tZXRyeTp0aGlzLmdlb21ldHJ5fTtmb3IodmFyIGUgaW4gdGhpcykiX2dlb21ldHJ5IiE9PWUmJiJfdmVjdG9yVGlsZUZlYXR1cmUiIT09ZSYmKHRbZV09dGhpc1tlXSk7cmV0dXJuIHR9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFZsLnByb3RvdHlwZSxVbCk7dmFyIHFsPWZ1bmN0aW9uKCl7dGhpcy5zdGF0ZT17fSx0aGlzLnN0YXRlQ2hhbmdlcz17fSx0aGlzLmRlbGV0ZWRTdGF0ZXM9e319O3FsLnByb3RvdHlwZS51cGRhdGVTdGF0ZT1mdW5jdGlvbih0LGUscil7dmFyIG49U3RyaW5nKGUpO2lmKHRoaXMuc3RhdGVDaGFuZ2VzW3RdPXRoaXMuc3RhdGVDaGFuZ2VzW3RdfHx7fSx0aGlzLnN0YXRlQ2hhbmdlc1t0XVtuXT10aGlzLnN0YXRlQ2hhbmdlc1t0XVtuXXx8e30saCh0aGlzLnN0YXRlQ2hhbmdlc1t0XVtuXSxyKSxudWxsPT09dGhpcy5kZWxldGVkU3RhdGVzW3RdKWZvcih2YXIgYSBpbiB0aGlzLmRlbGV0ZWRTdGF0ZXNbdF09e30sdGhpcy5zdGF0ZVt0XSlhIT09biYmKHRoaXMuZGVsZXRlZFN0YXRlc1t0XVthXT1udWxsKTtlbHNlIGlmKHRoaXMuZGVsZXRlZFN0YXRlc1t0XSYmbnVsbD09PXRoaXMuZGVsZXRlZFN0YXRlc1t0XVtuXSlmb3IodmFyIGkgaW4gdGhpcy5kZWxldGVkU3RhdGVzW3RdW25dPXt9LHRoaXMuc3RhdGVbdF1bbl0pcltpXXx8KHRoaXMuZGVsZXRlZFN0YXRlc1t0XVtuXVtpXT1udWxsKTtlbHNlIGZvcih2YXIgbyBpbiByKXRoaXMuZGVsZXRlZFN0YXRlc1t0XSYmdGhpcy5kZWxldGVkU3RhdGVzW3RdW25dJiZudWxsPT09dGhpcy5kZWxldGVkU3RhdGVzW3RdW25dW29dJiZkZWxldGUgdGhpcy5kZWxldGVkU3RhdGVzW3RdW25dW29dfSxxbC5wcm90b3R5cGUucmVtb3ZlRmVhdHVyZVN0YXRlPWZ1bmN0aW9uKHQsZSxyKXtpZihudWxsIT09dGhpcy5kZWxldGVkU3RhdGVzW3RdKXt2YXIgbj1TdHJpbmcoZSk7aWYodGhpcy5kZWxldGVkU3RhdGVzW3RdPXRoaXMuZGVsZXRlZFN0YXRlc1t0XXx8e30sciYmdm9pZCAwIT09ZSYmZT49MCludWxsIT09dGhpcy5kZWxldGVkU3RhdGVzW3RdW25dJiYodGhpcy5kZWxldGVkU3RhdGVzW3RdW25dPXRoaXMuZGVsZXRlZFN0YXRlc1t0XVtuXXx8e30sdGhpcy5kZWxldGVkU3RhdGVzW3RdW25dW3JdPW51bGwpO2Vsc2UgaWYodm9pZCAwIT09ZSYmZT49MClpZih0aGlzLnN0YXRlQ2hhbmdlc1t0XSYmdGhpcy5zdGF0ZUNoYW5nZXNbdF1bbl0pZm9yKHIgaW4gdGhpcy5kZWxldGVkU3RhdGVzW3RdW25dPXt9LHRoaXMuc3RhdGVDaGFuZ2VzW3RdW25dKXRoaXMuZGVsZXRlZFN0YXRlc1t0XVtuXVtyXT1udWxsO2Vsc2UgdGhpcy5kZWxldGVkU3RhdGVzW3RdW25dPW51bGw7ZWxzZSB0aGlzLmRlbGV0ZWRTdGF0ZXNbdF09bnVsbH19LHFsLnByb3RvdHlwZS5nZXRTdGF0ZT1mdW5jdGlvbih0LGUpe3ZhciByPVN0cmluZyhlKSxuPXRoaXMuc3RhdGVbdF18fHt9LGE9dGhpcy5zdGF0ZUNoYW5nZXNbdF18fHt9LGk9aCh7fSxuW3JdLGFbcl0pO2lmKG51bGw9PT10aGlzLmRlbGV0ZWRTdGF0ZXNbdF0pcmV0dXJue307aWYodGhpcy5kZWxldGVkU3RhdGVzW3RdKXt2YXIgbz10aGlzLmRlbGV0ZWRTdGF0ZXNbdF1bZV07aWYobnVsbD09PW8pcmV0dXJue307Zm9yKHZhciBzIGluIG8pZGVsZXRlIGlbc119cmV0dXJuIGl9LHFsLnByb3RvdHlwZS5pbml0aWFsaXplVGlsZVN0YXRlPWZ1bmN0aW9uKHQsZSl7dC5zZXRGZWF0dXJlU3RhdGUodGhpcy5zdGF0ZSxlKX0scWwucHJvdG90eXBlLmNvYWxlc2NlQ2hhbmdlcz1mdW5jdGlvbih0LGUpe3ZhciByPXt9O2Zvcih2YXIgbiBpbiB0aGlzLnN0YXRlQ2hhbmdlcyl7dGhpcy5zdGF0ZVtuXT10aGlzLnN0YXRlW25dfHx7fTt2YXIgYT17fTtmb3IodmFyIGkgaW4gdGhpcy5zdGF0ZUNoYW5nZXNbbl0pdGhpcy5zdGF0ZVtuXVtpXXx8KHRoaXMuc3RhdGVbbl1baV09e30pLGgodGhpcy5zdGF0ZVtuXVtpXSx0aGlzLnN0YXRlQ2hhbmdlc1tuXVtpXSksYVtpXT10aGlzLnN0YXRlW25dW2ldO3Jbbl09YX1mb3IodmFyIG8gaW4gdGhpcy5kZWxldGVkU3RhdGVzKXt0aGlzLnN0YXRlW29dPXRoaXMuc3RhdGVbb118fHt9O3ZhciBzPXt9O2lmKG51bGw9PT10aGlzLmRlbGV0ZWRTdGF0ZXNbb10pZm9yKHZhciBsIGluIHRoaXMuc3RhdGVbb10pc1tsXT17fSx0aGlzLnN0YXRlW29dW2xdPXt9O2Vsc2UgZm9yKHZhciBjIGluIHRoaXMuZGVsZXRlZFN0YXRlc1tvXSl7aWYobnVsbD09PXRoaXMuZGVsZXRlZFN0YXRlc1tvXVtjXSl0aGlzLnN0YXRlW29dW2NdPXt9O2Vsc2UgZm9yKHZhciB1PTAsZj1PYmplY3Qua2V5cyh0aGlzLmRlbGV0ZWRTdGF0ZXNbb11bY10pO3U8Zi5sZW5ndGg7dSs9MSl7dmFyIHA9Zlt1XTtkZWxldGUgdGhpcy5zdGF0ZVtvXVtjXVtwXX1zW2NdPXRoaXMuc3RhdGVbb11bY119cltvXT1yW29dfHx7fSxoKHJbb10scyl9aWYodGhpcy5zdGF0ZUNoYW5nZXM9e30sdGhpcy5kZWxldGVkU3RhdGVzPXt9LDAhPT1PYmplY3Qua2V5cyhyKS5sZW5ndGgpZm9yKHZhciBkIGluIHQpdFtkXS5zZXRGZWF0dXJlU3RhdGUocixlKX07dmFyIEhsPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLnRpbGVJRD10LHRoaXMueD10LmNhbm9uaWNhbC54LHRoaXMueT10LmNhbm9uaWNhbC55LHRoaXMuej10LmNhbm9uaWNhbC56LHRoaXMuZ3JpZD1lfHxuZXcgY24oZWksMTYsMCksdGhpcy5ncmlkM0Q9bmV3IGNuKGVpLDE2LDApLHRoaXMuZmVhdHVyZUluZGV4QXJyYXk9cnx8bmV3IENhfTtmdW5jdGlvbiBHbCh0KXtmb3IodmFyIGU9MS8wLHI9MS8wLG49LTEvMCxhPS0xLzAsaT0wLG89dDtpPG8ubGVuZ3RoO2krPTEpe3ZhciBzPW9baV07ZT1NYXRoLm1pbihlLHMueCkscj1NYXRoLm1pbihyLHMueSksbj1NYXRoLm1heChuLHMueCksYT1NYXRoLm1heChhLHMueSl9cmV0dXJue21pblg6ZSxtaW5ZOnIsbWF4WDpuLG1heFk6YX19ZnVuY3Rpb24gWWwodCxlKXtyZXR1cm4gZS10fUhsLnByb3RvdHlwZS5pbnNlcnQ9ZnVuY3Rpb24odCxlLHIsbixhLGkpe3ZhciBvPXRoaXMuZmVhdHVyZUluZGV4QXJyYXkubGVuZ3RoO3RoaXMuZmVhdHVyZUluZGV4QXJyYXkuZW1wbGFjZUJhY2socixuLGEpO2Zvcih2YXIgcz1pP3RoaXMuZ3JpZDNEOnRoaXMuZ3JpZCxsPTA7bDxlLmxlbmd0aDtsKyspe2Zvcih2YXIgYz1lW2xdLHU9WzEvMCwxLzAsLTEvMCwtMS8wXSxoPTA7aDxjLmxlbmd0aDtoKyspe3ZhciBmPWNbaF07dVswXT1NYXRoLm1pbih1WzBdLGYueCksdVsxXT1NYXRoLm1pbih1WzFdLGYueSksdVsyXT1NYXRoLm1heCh1WzJdLGYueCksdVszXT1NYXRoLm1heCh1WzNdLGYueSl9dVswXTxlaSYmdVsxXTxlaSYmdVsyXT49MCYmdVszXT49MCYmcy5pbnNlcnQobyx1WzBdLHVbMV0sdVsyXSx1WzNdKX19LEhsLnByb3RvdHlwZS5sb2FkVlRMYXllcnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52dExheWVyc3x8KHRoaXMudnRMYXllcnM9bmV3IElvLlZlY3RvclRpbGUobmV3IHRsKHRoaXMucmF3VGlsZURhdGEpKS5sYXllcnMsdGhpcy5zb3VyY2VMYXllckNvZGVyPW5ldyBqbCh0aGlzLnZ0TGF5ZXJzP09iamVjdC5rZXlzKHRoaXMudnRMYXllcnMpLnNvcnQoKTpbIl9nZW9qc29uVGlsZUxheWVyIl0pKSx0aGlzLnZ0TGF5ZXJzfSxIbC5wcm90b3R5cGUucXVlcnk9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXM7dGhpcy5sb2FkVlRMYXllcnMoKTtmb3IodmFyIGk9dC5wYXJhbXN8fHt9LG89ZWkvdC50aWxlU2l6ZS90LnNjYWxlLHM9UnIoaS5maWx0ZXIpLGw9dC5xdWVyeUdlb21ldHJ5LGM9dC5xdWVyeVBhZGRpbmcqbyx1PUdsKGwpLGg9dGhpcy5ncmlkLnF1ZXJ5KHUubWluWC1jLHUubWluWS1jLHUubWF4WCtjLHUubWF4WStjKSxmPUdsKHQuY2FtZXJhUXVlcnlHZW9tZXRyeSkscD0wLGQ9dGhpcy5ncmlkM0QucXVlcnkoZi5taW5YLWMsZi5taW5ZLWMsZi5tYXhYK2MsZi5tYXhZK2MsZnVuY3Rpb24oZSxyLG4saSl7cmV0dXJuIGZ1bmN0aW9uKHQsZSxyLG4saSl7Zm9yKHZhciBvPTAscz10O288cy5sZW5ndGg7bys9MSl7dmFyIGw9c1tvXTtpZihlPD1sLngmJnI8PWwueSYmbj49bC54JiZpPj1sLnkpcmV0dXJuITB9dmFyIGM9W25ldyBhKGUsciksbmV3IGEoZSxpKSxuZXcgYShuLGkpLG5ldyBhKG4scildO2lmKHQubGVuZ3RoPjIpZm9yKHZhciB1PTAsaD1jO3U8aC5sZW5ndGg7dSs9MSlpZihnaSh0LGhbdV0pKXJldHVybiEwO2Zvcih2YXIgZj0wO2Y8dC5sZW5ndGgtMTtmKyspaWYodmkodFtmXSx0W2YrMV0sYykpcmV0dXJuITA7cmV0dXJuITF9KHQuY2FtZXJhUXVlcnlHZW9tZXRyeSxlLWMsci1jLG4rYyxpK2MpfSk7cDxkLmxlbmd0aDtwKz0xKXt2YXIgZz1kW3BdO2gucHVzaChnKX1oLnNvcnQoWWwpO2Zvcih2YXIgdixtPXt9LHk9ZnVuY3Rpb24oYSl7dmFyIGM9aFthXTtpZihjIT09dil7dj1jO3ZhciB1PW4uZmVhdHVyZUluZGV4QXJyYXkuZ2V0KGMpLGY9bnVsbDtuLmxvYWRNYXRjaGluZ0ZlYXR1cmUobSx1LmJ1Y2tldEluZGV4LHUuc291cmNlTGF5ZXJJbmRleCx1LmZlYXR1cmVJbmRleCxzLGkubGF5ZXJzLGUsZnVuY3Rpb24oZSxhKXtmfHwoZj1uaShlKSk7dmFyIGk9e307cmV0dXJuIGUuaWQmJihpPXIuZ2V0U3RhdGUoYS5zb3VyY2VMYXllcnx8Il9nZW9qc29uVGlsZUxheWVyIixlLmlkKSksYS5xdWVyeUludGVyc2VjdHNGZWF0dXJlKGwsZSxpLGYsbi56LHQudHJhbnNmb3JtLG8sdC5waXhlbFBvc01hdHJpeCl9KX19LHg9MDt4PGgubGVuZ3RoO3grKyl5KHgpO3JldHVybiBtfSxIbC5wcm90b3R5cGUubG9hZE1hdGNoaW5nRmVhdHVyZT1mdW5jdGlvbih0LGUscixuLGEsaSxvLHMpe3ZhciBsPXRoaXMuYnVja2V0TGF5ZXJJRHNbZV07aWYoIWl8fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspaWYoZS5pbmRleE9mKHRbcl0pPj0wKXJldHVybiEwO3JldHVybiExfShpLGwpKXt2YXIgYz10aGlzLnNvdXJjZUxheWVyQ29kZXIuZGVjb2RlKHIpLHU9dGhpcy52dExheWVyc1tjXS5mZWF0dXJlKG4pO2lmKGEobmV3IFBuKHRoaXMudGlsZUlELm92ZXJzY2FsZWRaKSx1KSlmb3IodmFyIGg9MDtoPGwubGVuZ3RoO2grKyl7dmFyIGY9bFtoXTtpZighKGkmJmkuaW5kZXhPZihmKTwwKSl7dmFyIHA9b1tmXTtpZihwKXt2YXIgZD0hc3x8cyh1LHApO2lmKGQpe3ZhciBnPW5ldyBWbCh1LHRoaXMueix0aGlzLngsdGhpcy55KTtnLmxheWVyPXAuc2VyaWFsaXplKCk7dmFyIHY9dFtmXTt2b2lkIDA9PT12JiYodj10W2ZdPVtdKSx2LnB1c2goe2ZlYXR1cmVJbmRleDpuLGZlYXR1cmU6ZyxpbnRlcnNlY3Rpb25aOmR9KX19fX19fSxIbC5wcm90b3R5cGUubG9va3VwU3ltYm9sRmVhdHVyZXM9ZnVuY3Rpb24odCxlLHIsbixhLGkpe3ZhciBvPXt9O3RoaXMubG9hZFZUTGF5ZXJzKCk7Zm9yKHZhciBzPVJyKG4pLGw9MCxjPXQ7bDxjLmxlbmd0aDtsKz0xKXt2YXIgdT1jW2xdO3RoaXMubG9hZE1hdGNoaW5nRmVhdHVyZShvLGUscix1LHMsYSxpKX1yZXR1cm4gb30sSGwucHJvdG90eXBlLmhhc0xheWVyPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLHI9dGhpcy5idWNrZXRMYXllcklEcztlPHIubGVuZ3RoO2UrPTEpZm9yKHZhciBuPTAsYT1yW2VdO248YS5sZW5ndGg7bis9MSlpZih0PT09YVtuXSlyZXR1cm4hMDtyZXR1cm4hMX0sZG4oIkZlYXR1cmVJbmRleCIsSGwse29taXQ6WyJyYXdUaWxlRGF0YSIsInNvdXJjZUxheWVyQ29kZXIiXX0pO3ZhciBXbD1mdW5jdGlvbih0LGUpe3RoaXMudGlsZUlEPXQsdGhpcy51aWQ9cCgpLHRoaXMudXNlcz0wLHRoaXMudGlsZVNpemU9ZSx0aGlzLmJ1Y2tldHM9e30sdGhpcy5leHBpcmF0aW9uVGltZT1udWxsLHRoaXMucXVlcnlQYWRkaW5nPTAsdGhpcy5oYXNTeW1ib2xCdWNrZXRzPSExLHRoaXMuZXhwaXJlZFJlcXVlc3RDb3VudD0wLHRoaXMuc3RhdGU9ImxvYWRpbmcifTtmdW5jdGlvbiBYbCh0LGUscixuLGEpe2lmKHZvaWQgMD09PWUuc2VnbWVudClyZXR1cm4hMDtmb3IodmFyIGk9ZSxvPWUuc2VnbWVudCsxLHM9MDtzPi1yLzI7KXtpZigtLW88MClyZXR1cm4hMTtzLT10W29dLmRpc3QoaSksaT10W29dfXMrPXRbb10uZGlzdCh0W28rMV0pLG8rKztmb3IodmFyIGw9W10sYz0wO3M8ci8yOyl7dmFyIHU9dFtvLTFdLGg9dFtvXSxmPXRbbysxXTtpZighZilyZXR1cm4hMTt2YXIgcD11LmFuZ2xlVG8oaCktaC5hbmdsZVRvKGYpO2ZvcihwPU1hdGguYWJzKChwKzMqTWF0aC5QSSklKDIqTWF0aC5QSSktTWF0aC5QSSksbC5wdXNoKHtkaXN0YW5jZTpzLGFuZ2xlRGVsdGE6cH0pLGMrPXA7cy1sWzBdLmRpc3RhbmNlPm47KWMtPWwuc2hpZnQoKS5hbmdsZURlbHRhO2lmKGM+YSlyZXR1cm4hMTtvKysscys9aC5kaXN0KGYpfXJldHVybiEwfWZ1bmN0aW9uIFpsKHQpe2Zvcih2YXIgZT0wLHI9MDtyPHQubGVuZ3RoLTE7cisrKWUrPXRbcl0uZGlzdCh0W3IrMV0pO3JldHVybiBlfWZ1bmN0aW9uIEpsKHQsZSxyKXtyZXR1cm4gdD8uNiplKnI6MH1mdW5jdGlvbiBLbCh0LGUpe3JldHVybiBNYXRoLm1heCh0P3QucmlnaHQtdC5sZWZ0OjAsZT9lLnJpZ2h0LWUubGVmdDowKX1mdW5jdGlvbiBRbCh0LGUscixuLGEsaSl7Zm9yKHZhciBvPUpsKHIsYSxpKSxzPUtsKHIsbikqaSxsPTAsYz1abCh0KS8yLHU9MDt1PHQubGVuZ3RoLTE7dSsrKXt2YXIgaD10W3VdLGY9dFt1KzFdLHA9aC5kaXN0KGYpO2lmKGwrcD5jKXt2YXIgZD0oYy1sKS9wLGc9eWUoaC54LGYueCxkKSx2PXllKGgueSxmLnksZCksbT1uZXcgYnMoZyx2LGYuYW5nbGVUbyhoKSx1KTtyZXR1cm4gbS5fcm91bmQoKSwhb3x8WGwodCxtLHMsbyxlKT9tOnZvaWQgMH1sKz1wfX1mdW5jdGlvbiAkbCh0LGUscixuLGEsaSxvLHMsbCl7dmFyIGM9SmwobixpLG8pLHU9S2wobixhKSxoPXUqbyxmPTA9PT10WzBdLnh8fHRbMF0ueD09PWx8fDA9PT10WzBdLnl8fHRbMF0ueT09PWw7cmV0dXJuIGUtaDxlLzQmJihlPWgrZS80KSxmdW5jdGlvbiB0KGUscixuLGEsaSxvLHMsbCxjKXtmb3IodmFyIHU9by8yLGg9WmwoZSksZj0wLHA9ci1uLGQ9W10sZz0wO2c8ZS5sZW5ndGgtMTtnKyspe2Zvcih2YXIgdj1lW2ddLG09ZVtnKzFdLHk9di5kaXN0KG0pLHg9bS5hbmdsZVRvKHYpO3ArbjxmK3k7KXt2YXIgYj0oKHArPW4pLWYpL3ksXz15ZSh2LngsbS54LGIpLHc9eWUodi55LG0ueSxiKTtpZihfPj0wJiZfPGMmJnc+PTAmJnc8YyYmcC11Pj0wJiZwK3U8PWgpe3ZhciBrPW5ldyBicyhfLHcseCxnKTtrLl9yb3VuZCgpLGEmJiFYbChlLGssbyxhLGkpfHxkLnB1c2goayl9fWYrPXl9cmV0dXJuIGx8fGQubGVuZ3RofHxzfHwoZD10KGUsZi8yLG4sYSxpLG8scywhMCxjKSksZH0odCxmP2UvMipzJWU6KHUvMisyKmkpKm8qcyVlLGUsYyxyLGgsZiwhMSxsKX1XbC5wcm90b3R5cGUucmVnaXN0ZXJGYWRlRHVyYXRpb249ZnVuY3Rpb24odCl7dmFyIGU9dCt0aGlzLnRpbWVBZGRlZDtlPEkubm93KCl8fHRoaXMuZmFkZUVuZFRpbWUmJmU8dGhpcy5mYWRlRW5kVGltZXx8KHRoaXMuZmFkZUVuZFRpbWU9ZSl9LFdsLnByb3RvdHlwZS53YXNSZXF1ZXN0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4iZXJyb3JlZCI9PT10aGlzLnN0YXRlfHwibG9hZGVkIj09PXRoaXMuc3RhdGV8fCJyZWxvYWRpbmciPT09dGhpcy5zdGF0ZX0sV2wucHJvdG90eXBlLmxvYWRWZWN0b3JEYXRhPWZ1bmN0aW9uKHQsZSxyKXtpZih0aGlzLmhhc0RhdGEoKSYmdGhpcy51bmxvYWRWZWN0b3JEYXRhKCksdGhpcy5zdGF0ZT0ibG9hZGVkIix0KXtmb3IodmFyIG4gaW4gdC5mZWF0dXJlSW5kZXgmJih0aGlzLmxhdGVzdEZlYXR1cmVJbmRleD10LmZlYXR1cmVJbmRleCx0LnJhd1RpbGVEYXRhPyh0aGlzLmxhdGVzdFJhd1RpbGVEYXRhPXQucmF3VGlsZURhdGEsdGhpcy5sYXRlc3RGZWF0dXJlSW5kZXgucmF3VGlsZURhdGE9dC5yYXdUaWxlRGF0YSk6dGhpcy5sYXRlc3RSYXdUaWxlRGF0YSYmKHRoaXMubGF0ZXN0RmVhdHVyZUluZGV4LnJhd1RpbGVEYXRhPXRoaXMubGF0ZXN0UmF3VGlsZURhdGEpKSx0aGlzLmNvbGxpc2lvbkJveEFycmF5PXQuY29sbGlzaW9uQm94QXJyYXksdGhpcy5idWNrZXRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9e307aWYoIWUpcmV0dXJuIHI7Zm9yKHZhciBuPWZ1bmN0aW9uKCl7dmFyIHQ9aVthXSxuPXQubGF5ZXJJZHMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBlLmdldExheWVyKHQpfSkuZmlsdGVyKEJvb2xlYW4pO2lmKDAhPT1uLmxlbmd0aCl7dC5sYXllcnM9bix0LnN0YXRlRGVwZW5kZW50TGF5ZXJJZHMmJih0LnN0YXRlRGVwZW5kZW50TGF5ZXJzPXQuc3RhdGVEZXBlbmRlbnRMYXllcklkcy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIG4uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkPT09dH0pWzBdfSkpO2Zvcih2YXIgbz0wLHM9bjtvPHMubGVuZ3RoO28rPTEpe3ZhciBsPXNbb107cltsLmlkXT10fX19LGE9MCxpPXQ7YTxpLmxlbmd0aDthKz0xKW4oKTtyZXR1cm4gcn0odC5idWNrZXRzLGUuc3R5bGUpLHRoaXMuaGFzU3ltYm9sQnVja2V0cz0hMSx0aGlzLmJ1Y2tldHMpe3ZhciBhPXRoaXMuYnVja2V0c1tuXTtpZihhIGluc3RhbmNlb2YgT3Mpe2lmKHRoaXMuaGFzU3ltYm9sQnVja2V0cz0hMCwhcilicmVhazthLmp1c3RSZWxvYWRlZD0hMH19Zm9yKHZhciBpIGluIHRoaXMucXVlcnlQYWRkaW5nPTAsdGhpcy5idWNrZXRzKXt2YXIgbz10aGlzLmJ1Y2tldHNbaV07dGhpcy5xdWVyeVBhZGRpbmc9TWF0aC5tYXgodGhpcy5xdWVyeVBhZGRpbmcsZS5zdHlsZS5nZXRMYXllcihpKS5xdWVyeVJhZGl1cyhvKSl9dC5pbWFnZUF0bGFzJiYodGhpcy5pbWFnZUF0bGFzPXQuaW1hZ2VBdGxhcyksdC5nbHlwaEF0bGFzSW1hZ2UmJih0aGlzLmdseXBoQXRsYXNJbWFnZT10LmdseXBoQXRsYXNJbWFnZSl9ZWxzZSB0aGlzLmNvbGxpc2lvbkJveEFycmF5PW5ldyBiYX0sV2wucHJvdG90eXBlLnVubG9hZFZlY3RvckRhdGE9ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcy5idWNrZXRzKXRoaXMuYnVja2V0c1t0XS5kZXN0cm95KCk7dGhpcy5idWNrZXRzPXt9LHRoaXMuaW1hZ2VBdGxhc1RleHR1cmUmJnRoaXMuaW1hZ2VBdGxhc1RleHR1cmUuZGVzdHJveSgpLHRoaXMuaW1hZ2VBdGxhcyYmKHRoaXMuaW1hZ2VBdGxhcz1udWxsKSx0aGlzLmdseXBoQXRsYXNUZXh0dXJlJiZ0aGlzLmdseXBoQXRsYXNUZXh0dXJlLmRlc3Ryb3koKSx0aGlzLmxhdGVzdEZlYXR1cmVJbmRleD1udWxsLHRoaXMuc3RhdGU9InVubG9hZGVkIn0sV2wucHJvdG90eXBlLnVubG9hZERFTURhdGE9ZnVuY3Rpb24oKXt0aGlzLmRlbT1udWxsLHRoaXMubmVpZ2hib3JpbmdUaWxlcz1udWxsLHRoaXMuc3RhdGU9InVubG9hZGVkIn0sV2wucHJvdG90eXBlLmdldEJ1Y2tldD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5idWNrZXRzW3QuaWRdfSxXbC5wcm90b3R5cGUudXBsb2FkPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiB0aGlzLmJ1Y2tldHMpe3ZhciByPXRoaXMuYnVja2V0c1tlXTtyLnVwbG9hZFBlbmRpbmcoKSYmci51cGxvYWQodCl9dmFyIG49dC5nbDt0aGlzLmltYWdlQXRsYXMmJiF0aGlzLmltYWdlQXRsYXMudXBsb2FkZWQmJih0aGlzLmltYWdlQXRsYXNUZXh0dXJlPW5ldyBLcyh0LHRoaXMuaW1hZ2VBdGxhcy5pbWFnZSxuLlJHQkEpLHRoaXMuaW1hZ2VBdGxhcy51cGxvYWRlZD0hMCksdGhpcy5nbHlwaEF0bGFzSW1hZ2UmJih0aGlzLmdseXBoQXRsYXNUZXh0dXJlPW5ldyBLcyh0LHRoaXMuZ2x5cGhBdGxhc0ltYWdlLG4uQUxQSEEpLHRoaXMuZ2x5cGhBdGxhc0ltYWdlPW51bGwpfSxXbC5wcm90b3R5cGUucHJlcGFyZT1mdW5jdGlvbih0KXt0aGlzLmltYWdlQXRsYXMmJnRoaXMuaW1hZ2VBdGxhcy5wYXRjaFVwZGF0ZWRJbWFnZXModCx0aGlzLmltYWdlQXRsYXNUZXh0dXJlKX0sV2wucHJvdG90eXBlLnF1ZXJ5UmVuZGVyZWRGZWF0dXJlcz1mdW5jdGlvbih0LGUscixuLGEsaSxvLHMsbCl7cmV0dXJuIHRoaXMubGF0ZXN0RmVhdHVyZUluZGV4JiZ0aGlzLmxhdGVzdEZlYXR1cmVJbmRleC5yYXdUaWxlRGF0YT90aGlzLmxhdGVzdEZlYXR1cmVJbmRleC5xdWVyeSh7cXVlcnlHZW9tZXRyeTpyLGNhbWVyYVF1ZXJ5R2VvbWV0cnk6bixzY2FsZTphLHRpbGVTaXplOnRoaXMudGlsZVNpemUscGl4ZWxQb3NNYXRyaXg6bCx0cmFuc2Zvcm06byxwYXJhbXM6aSxxdWVyeVBhZGRpbmc6dGhpcy5xdWVyeVBhZGRpbmcqc30sdCxlKTp7fX0sV2wucHJvdG90eXBlLnF1ZXJ5U291cmNlRmVhdHVyZXM9ZnVuY3Rpb24odCxlKXtpZih0aGlzLmxhdGVzdEZlYXR1cmVJbmRleCYmdGhpcy5sYXRlc3RGZWF0dXJlSW5kZXgucmF3VGlsZURhdGEpe3ZhciByPXRoaXMubGF0ZXN0RmVhdHVyZUluZGV4LmxvYWRWVExheWVycygpLG49ZT9lLnNvdXJjZUxheWVyOiIiLGE9ci5fZ2VvanNvblRpbGVMYXllcnx8cltuXTtpZihhKWZvcih2YXIgaT1ScihlJiZlLmZpbHRlciksbz10aGlzLnRpbGVJRC5jYW5vbmljYWwscz1vLnosbD1vLngsYz1vLnksdT17ejpzLHg6bCx5OmN9LGg9MDtoPGEubGVuZ3RoO2grKyl7dmFyIGY9YS5mZWF0dXJlKGgpO2lmKGkobmV3IFBuKHRoaXMudGlsZUlELm92ZXJzY2FsZWRaKSxmKSl7dmFyIHA9bmV3IFZsKGYscyxsLGMpO3AudGlsZT11LHQucHVzaChwKX19fX0sV2wucHJvdG90eXBlLmNsZWFyTWFzaz1mdW5jdGlvbigpe3RoaXMuc2VnbWVudHMmJih0aGlzLnNlZ21lbnRzLmRlc3Ryb3koKSxkZWxldGUgdGhpcy5zZWdtZW50cyksdGhpcy5tYXNrZWRCb3VuZHNCdWZmZXImJih0aGlzLm1hc2tlZEJvdW5kc0J1ZmZlci5kZXN0cm95KCksZGVsZXRlIHRoaXMubWFza2VkQm91bmRzQnVmZmVyKSx0aGlzLm1hc2tlZEluZGV4QnVmZmVyJiYodGhpcy5tYXNrZWRJbmRleEJ1ZmZlci5kZXN0cm95KCksZGVsZXRlIHRoaXMubWFza2VkSW5kZXhCdWZmZXIpfSxXbC5wcm90b3R5cGUuc2V0TWFzaz1mdW5jdGlvbih0LGUpe2lmKCFvKHRoaXMubWFzayx0KSYmKHRoaXMubWFzaz10LHRoaXMuY2xlYXJNYXNrKCksIW8odCx7MDohMH0pKSl7dmFyIHI9bmV3ICRuLG49bmV3IGRhO3RoaXMuc2VnbWVudHM9bmV3IE9hLHRoaXMuc2VnbWVudHMucHJlcGFyZVNlZ21lbnQoMCxyLG4pO2Zvcih2YXIgaT1PYmplY3Qua2V5cyh0KSxzPTA7czxpLmxlbmd0aDtzKyspe3ZhciBsPXRbK2lbc11dLGM9ZWk+Pmwueix1PW5ldyBhKGwueCpjLGwueSpjKSxoPW5ldyBhKHUueCtjLHUueStjKSxmPXRoaXMuc2VnbWVudHMucHJlcGFyZVNlZ21lbnQoNCxyLG4pO3IuZW1wbGFjZUJhY2sodS54LHUueSx1LngsdS55KSxyLmVtcGxhY2VCYWNrKGgueCx1LnksaC54LHUueSksci5lbXBsYWNlQmFjayh1LngsaC55LHUueCxoLnkpLHIuZW1wbGFjZUJhY2soaC54LGgueSxoLngsaC55KTt2YXIgcD1mLnZlcnRleExlbmd0aDtuLmVtcGxhY2VCYWNrKHAscCsxLHArMiksbi5lbXBsYWNlQmFjayhwKzEscCsyLHArMyksZi52ZXJ0ZXhMZW5ndGgrPTQsZi5wcmltaXRpdmVMZW5ndGgrPTJ9dGhpcy5tYXNrZWRCb3VuZHNCdWZmZXI9ZS5jcmVhdGVWZXJ0ZXhCdWZmZXIocixObC5tZW1iZXJzKSx0aGlzLm1hc2tlZEluZGV4QnVmZmVyPWUuY3JlYXRlSW5kZXhCdWZmZXIobil9fSxXbC5wcm90b3R5cGUuaGFzRGF0YT1mdW5jdGlvbigpe3JldHVybiJsb2FkZWQiPT09dGhpcy5zdGF0ZXx8InJlbG9hZGluZyI9PT10aGlzLnN0YXRlfHwiZXhwaXJlZCI9PT10aGlzLnN0YXRlfSxXbC5wcm90b3R5cGUucGF0dGVybnNMb2FkZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbWFnZUF0bGFzJiYhIU9iamVjdC5rZXlzKHRoaXMuaW1hZ2VBdGxhcy5wYXR0ZXJuUG9zaXRpb25zKS5sZW5ndGh9LFdsLnByb3RvdHlwZS5zZXRFeHBpcnlEYXRhPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZXhwaXJhdGlvblRpbWU7aWYodC5jYWNoZUNvbnRyb2wpe3ZhciByPU0odC5jYWNoZUNvbnRyb2wpO3JbIm1heC1hZ2UiXSYmKHRoaXMuZXhwaXJhdGlvblRpbWU9RGF0ZS5ub3coKSsxZTMqclsibWF4LWFnZSJdKX1lbHNlIHQuZXhwaXJlcyYmKHRoaXMuZXhwaXJhdGlvblRpbWU9bmV3IERhdGUodC5leHBpcmVzKS5nZXRUaW1lKCkpO2lmKHRoaXMuZXhwaXJhdGlvblRpbWUpe3ZhciBuPURhdGUubm93KCksYT0hMTtpZih0aGlzLmV4cGlyYXRpb25UaW1lPm4pYT0hMTtlbHNlIGlmKGUpaWYodGhpcy5leHBpcmF0aW9uVGltZTxlKWE9ITA7ZWxzZXt2YXIgaT10aGlzLmV4cGlyYXRpb25UaW1lLWU7aT90aGlzLmV4cGlyYXRpb25UaW1lPW4rTWF0aC5tYXgoaSwzZTQpOmE9ITB9ZWxzZSBhPSEwO2E/KHRoaXMuZXhwaXJlZFJlcXVlc3RDb3VudCsrLHRoaXMuc3RhdGU9ImV4cGlyZWQiKTp0aGlzLmV4cGlyZWRSZXF1ZXN0Q291bnQ9MH19LFdsLnByb3RvdHlwZS5nZXRFeHBpcnlUaW1lb3V0PWZ1bmN0aW9uKCl7aWYodGhpcy5leHBpcmF0aW9uVGltZSlyZXR1cm4gdGhpcy5leHBpcmVkUmVxdWVzdENvdW50PzFlMyooMTw8TWF0aC5taW4odGhpcy5leHBpcmVkUmVxdWVzdENvdW50LTEsMzEpKTpNYXRoLm1pbih0aGlzLmV4cGlyYXRpb25UaW1lLShuZXcgRGF0ZSkuZ2V0VGltZSgpLE1hdGgucG93KDIsMzEpLTEpfSxXbC5wcm90b3R5cGUuc2V0RmVhdHVyZVN0YXRlPWZ1bmN0aW9uKHQsZSl7aWYodGhpcy5sYXRlc3RGZWF0dXJlSW5kZXgmJnRoaXMubGF0ZXN0RmVhdHVyZUluZGV4LnJhd1RpbGVEYXRhJiYwIT09T2JqZWN0LmtleXModCkubGVuZ3RoKXt2YXIgcj10aGlzLmxhdGVzdEZlYXR1cmVJbmRleC5sb2FkVlRMYXllcnMoKTtmb3IodmFyIG4gaW4gdGhpcy5idWNrZXRzKXt2YXIgYT10aGlzLmJ1Y2tldHNbbl0saT1hLmxheWVyc1swXS5zb3VyY2VMYXllcnx8Il9nZW9qc29uVGlsZUxheWVyIixvPXJbaV0scz10W2ldO28mJnMmJjAhPT1PYmplY3Qua2V5cyhzKS5sZW5ndGgmJihhLnVwZGF0ZShzLG8sdGhpcy5pbWFnZUF0bGFzJiZ0aGlzLmltYWdlQXRsYXMucGF0dGVyblBvc2l0aW9uc3x8e30pLGUmJmUuc3R5bGUmJih0aGlzLnF1ZXJ5UGFkZGluZz1NYXRoLm1heCh0aGlzLnF1ZXJ5UGFkZGluZyxlLnN0eWxlLmdldExheWVyKG4pLnF1ZXJ5UmFkaXVzKGEpKSkpfX19LFdsLnByb3RvdHlwZS5ob2xkaW5nRm9yRmFkZT1mdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLnN5bWJvbEZhZGVIb2xkVW50aWx9LFdsLnByb3RvdHlwZS5zeW1ib2xGYWRlRmluaXNoZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5zeW1ib2xGYWRlSG9sZFVudGlsfHx0aGlzLnN5bWJvbEZhZGVIb2xkVW50aWw8SS5ub3coKX0sV2wucHJvdG90eXBlLmNsZWFyRmFkZUhvbGQ9ZnVuY3Rpb24oKXt0aGlzLnN5bWJvbEZhZGVIb2xkVW50aWw9dm9pZCAwfSxXbC5wcm90b3R5cGUuc2V0SG9sZER1cmF0aW9uPWZ1bmN0aW9uKHQpe3RoaXMuc3ltYm9sRmFkZUhvbGRVbnRpbD1JLm5vdygpK3R9O3ZhciB0Yz1mdW5jdGlvbih0LGUscixuLGksbyxzLGwsYyx1LGgsZil7dmFyIHA9cy50b3AqbC1jLGQ9cy5ib3R0b20qbCtjLGc9cy5sZWZ0KmwtYyx2PXMucmlnaHQqbCtjO2lmKHRoaXMuYm94U3RhcnRJbmRleD10Lmxlbmd0aCx1KXt2YXIgbT1kLXAseT12LWc7bT4wJiYobT1NYXRoLm1heCgxMCpsLG0pLHRoaXMuX2FkZExpbmVDb2xsaXNpb25DaXJjbGVzKHQsZSxyLHIuc2VnbWVudCx5LG0sbixpLG8saCkpfWVsc2V7aWYoZil7dmFyIHg9bmV3IGEoZyxwKSxiPW5ldyBhKHYscCksXz1uZXcgYShnLGQpLHc9bmV3IGEodixkKSxrPWYqTWF0aC5QSS8xODA7eC5fcm90YXRlKGspLGIuX3JvdGF0ZShrKSxfLl9yb3RhdGUoayksdy5fcm90YXRlKGspLGc9TWF0aC5taW4oeC54LGIueCxfLngsdy54KSx2PU1hdGgubWF4KHgueCxiLngsXy54LHcueCkscD1NYXRoLm1pbih4LnksYi55LF8ueSx3LnkpLGQ9TWF0aC5tYXgoeC55LGIueSxfLnksdy55KX10LmVtcGxhY2VCYWNrKHIueCxyLnksZyxwLHYsZCxuLGksbywwLDApfXRoaXMuYm94RW5kSW5kZXg9dC5sZW5ndGh9O3RjLnByb3RvdHlwZS5fYWRkTGluZUNvbGxpc2lvbkNpcmNsZXM9ZnVuY3Rpb24odCxlLHIsbixhLGksbyxzLGwsYyl7dmFyIHU9aS8yLGg9TWF0aC5mbG9vcihhL3UpfHwxLGY9MSsuNCpNYXRoLmxvZyhjKS9NYXRoLkxOMixwPU1hdGguZmxvb3IoaCpmLzIpLGQ9LWkvMixnPXIsdj1uKzEsbT1kLHk9LWEvMix4PXktYS80O2Rve2lmKC0tdjwwKXtpZihtPnkpcmV0dXJuO3Y9MDticmVha31tLT1lW3ZdLmRpc3QoZyksZz1lW3ZdfXdoaWxlKG0+eCk7Zm9yKHZhciBiPWVbdl0uZGlzdChlW3YrMV0pLF89LXA7XzxoK3A7XysrKXt2YXIgdz1fKnUsaz15K3c7aWYodzwwJiYoays9dyksdz5hJiYoays9dy1hKSwhKGs8bSkpe2Zvcig7bStiPGs7KXtpZihtKz1iLCsrdisxPj1lLmxlbmd0aClyZXR1cm47Yj1lW3ZdLmRpc3QoZVt2KzFdKX12YXIgVD1rLW0sTT1lW3ZdLEE9ZVt2KzFdLnN1YihNKS5fdW5pdCgpLl9tdWx0KFQpLl9hZGQoTSkuX3JvdW5kKCksUz1NYXRoLmFicyhrLWQpPHU/MDouOCooay1kKTt0LmVtcGxhY2VCYWNrKEEueCxBLnksLWkvMiwtaS8yLGkvMixpLzIsbyxzLGwsaS8yLFMpfX19O3ZhciBlYz1mdW5jdGlvbih0LGUpe2lmKHZvaWQgMD09PXQmJih0PVtdKSx2b2lkIDA9PT1lJiYoZT1yYyksdGhpcy5kYXRhPXQsdGhpcy5sZW5ndGg9dGhpcy5kYXRhLmxlbmd0aCx0aGlzLmNvbXBhcmU9ZSx0aGlzLmxlbmd0aD4wKWZvcih2YXIgcj0odGhpcy5sZW5ndGg+PjEpLTE7cj49MDtyLS0pdGhpcy5fZG93bihyKX07ZnVuY3Rpb24gcmModCxlKXtyZXR1cm4gdDxlPy0xOnQ+ZT8xOjB9ZnVuY3Rpb24gbmModCxlLHIpe3ZvaWQgMD09PWUmJihlPTEpLHZvaWQgMD09PXImJihyPSExKTtmb3IodmFyIG49MS8wLGk9MS8wLG89LTEvMCxzPS0xLzAsbD10WzBdLGM9MDtjPGwubGVuZ3RoO2MrKyl7dmFyIHU9bFtjXTsoIWN8fHUueDxuKSYmKG49dS54KSwoIWN8fHUueTxpKSYmKGk9dS55KSwoIWN8fHUueD5vKSYmKG89dS54KSwoIWN8fHUueT5zKSYmKHM9dS55KX12YXIgaD1vLW4sZj1zLWkscD1NYXRoLm1pbihoLGYpLGQ9cC8yLGc9bmV3IGVjKFtdLGFjKTtpZigwPT09cClyZXR1cm4gbmV3IGEobixpKTtmb3IodmFyIHY9bjt2PG87dis9cClmb3IodmFyIG09aTttPHM7bSs9cClnLnB1c2gobmV3IGljKHYrZCxtK2QsZCx0KSk7Zm9yKHZhciB5PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLHI9MCxuPTAsYT10WzBdLGk9MCxvPWEubGVuZ3RoLHM9by0xO2k8bztzPWkrKyl7dmFyIGw9YVtpXSxjPWFbc10sdT1sLngqYy55LWMueCpsLnk7cis9KGwueCtjLngpKnUsbis9KGwueStjLnkpKnUsZSs9Myp1fXJldHVybiBuZXcgaWMoci9lLG4vZSwwLHQpfSh0KSx4PWcubGVuZ3RoO2cubGVuZ3RoOyl7dmFyIGI9Zy5wb3AoKTsoYi5kPnkuZHx8IXkuZCkmJih5PWIsciYmY29uc29sZS5sb2coImZvdW5kIGJlc3QgJWQgYWZ0ZXIgJWQgcHJvYmVzIixNYXRoLnJvdW5kKDFlNCpiLmQpLzFlNCx4KSksYi5tYXgteS5kPD1lfHwoZD1iLmgvMixnLnB1c2gobmV3IGljKGIucC54LWQsYi5wLnktZCxkLHQpKSxnLnB1c2gobmV3IGljKGIucC54K2QsYi5wLnktZCxkLHQpKSxnLnB1c2gobmV3IGljKGIucC54LWQsYi5wLnkrZCxkLHQpKSxnLnB1c2gobmV3IGljKGIucC54K2QsYi5wLnkrZCxkLHQpKSx4Kz00KX1yZXR1cm4gciYmKGNvbnNvbGUubG9nKCJudW0gcHJvYmVzOiAiK3gpLGNvbnNvbGUubG9nKCJiZXN0IGRpc3RhbmNlOiAiK3kuZCkpLHkucH1mdW5jdGlvbiBhYyh0LGUpe3JldHVybiBlLm1heC10Lm1heH1mdW5jdGlvbiBpYyh0LGUscixuKXt0aGlzLnA9bmV3IGEodCxlKSx0aGlzLmg9cix0aGlzLmQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9ITEsbj0xLzAsYT0wO2E8ZS5sZW5ndGg7YSsrKWZvcih2YXIgaT1lW2FdLG89MCxzPWkubGVuZ3RoLGw9cy0xO288cztsPW8rKyl7dmFyIGM9aVtvXSx1PWlbbF07Yy55PnQueSE9dS55PnQueSYmdC54PCh1LngtYy54KSoodC55LWMueSkvKHUueS1jLnkpK2MueCYmKHI9IXIpLG49TWF0aC5taW4obixwaSh0LGMsdSkpfXJldHVybihyPzE6LTEpKk1hdGguc3FydChuKX0odGhpcy5wLG4pLHRoaXMubWF4PXRoaXMuZCt0aGlzLmgqTWF0aC5TUVJUMn1lYy5wcm90b3R5cGUucHVzaD1mdW5jdGlvbih0KXt0aGlzLmRhdGEucHVzaCh0KSx0aGlzLmxlbmd0aCsrLHRoaXMuX3VwKHRoaXMubGVuZ3RoLTEpfSxlYy5wcm90b3R5cGUucG9wPWZ1bmN0aW9uKCl7aWYoMCE9PXRoaXMubGVuZ3RoKXt2YXIgdD10aGlzLmRhdGFbMF0sZT10aGlzLmRhdGEucG9wKCk7cmV0dXJuIHRoaXMubGVuZ3RoLS0sdGhpcy5sZW5ndGg+MCYmKHRoaXMuZGF0YVswXT1lLHRoaXMuX2Rvd24oMCkpLHR9fSxlYy5wcm90b3R5cGUucGVlaz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGFbMF19LGVjLnByb3RvdHlwZS5fdXA9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMuZGF0YSxyPXRoaXMuY29tcGFyZSxuPWVbdF07dD4wOyl7dmFyIGE9dC0xPj4xLGk9ZVthXTtpZihyKG4saSk+PTApYnJlYWs7ZVt0XT1pLHQ9YX1lW3RdPW59LGVjLnByb3RvdHlwZS5fZG93bj1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5kYXRhLHI9dGhpcy5jb21wYXJlLG49dGhpcy5sZW5ndGg+PjEsYT1lW3RdO3Q8bjspe3ZhciBpPTErKHQ8PDEpLG89ZVtpXSxzPWkrMTtpZihzPHRoaXMubGVuZ3RoJiZyKGVbc10sbyk8MCYmKGk9cyxvPWVbc10pLHIobyxhKT49MClicmVhaztlW3RdPW8sdD1pfWVbdF09YX07dmFyIG9jPWUoZnVuY3Rpb24odCl7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixhLGksbyxzLGwsYztmb3Iocj0zJnQubGVuZ3RoLG49dC5sZW5ndGgtcixhPWUsbz0zNDMyOTE4MzUzLHM9NDYxODQ1OTA3LGM9MDtjPG47KWw9MjU1JnQuY2hhckNvZGVBdChjKXwoMjU1JnQuY2hhckNvZGVBdCgrK2MpKTw8OHwoMjU1JnQuY2hhckNvZGVBdCgrK2MpKTw8MTZ8KDI1NSZ0LmNoYXJDb2RlQXQoKytjKSk8PDI0LCsrYyxhPTI3NDkyKyg2NTUzNSYoaT01Kig2NTUzNSYoYT0oYV49bD0oNjU1MzUmKGw9KGw9KDY1NTM1JmwpKm8rKCgobD4+PjE2KSpvJjY1NTM1KTw8MTYpJjQyOTQ5NjcyOTUpPDwxNXxsPj4+MTcpKSpzKygoKGw+Pj4xNikqcyY2NTUzNSk8PDE2KSY0Mjk0OTY3Mjk1KTw8MTN8YT4+PjE5KSkrKCg1KihhPj4+MTYpJjY1NTM1KTw8MTYpJjQyOTQ5NjcyOTUpKSsoKDU4OTY0KyhpPj4+MTYpJjY1NTM1KTw8MTYpO3N3aXRjaChsPTAscil7Y2FzZSAzOmxePSgyNTUmdC5jaGFyQ29kZUF0KGMrMikpPDwxNjtjYXNlIDI6bF49KDI1NSZ0LmNoYXJDb2RlQXQoYysxKSk8PDg7Y2FzZSAxOmFePWw9KDY1NTM1JihsPShsPSg2NTUzNSYobF49MjU1JnQuY2hhckNvZGVBdChjKSkpKm8rKCgobD4+PjE2KSpvJjY1NTM1KTw8MTYpJjQyOTQ5NjcyOTUpPDwxNXxsPj4+MTcpKSpzKygoKGw+Pj4xNikqcyY2NTUzNSk8PDE2KSY0Mjk0OTY3Mjk1fXJldHVybiBhXj10Lmxlbmd0aCxhPTIyNDY4MjI1MDcqKDY1NTM1JihhXj1hPj4+MTYpKSsoKDIyNDY4MjI1MDcqKGE+Pj4xNikmNjU1MzUpPDwxNikmNDI5NDk2NzI5NSxhPTMyNjY0ODk5MDkqKDY1NTM1JihhXj1hPj4+MTMpKSsoKDMyNjY0ODk5MDkqKGE+Pj4xNikmNjU1MzUpPDwxNikmNDI5NDk2NzI5NSwoYV49YT4+PjE2KT4+PjB9fSksc2M9ZShmdW5jdGlvbih0KXt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIsbj10Lmxlbmd0aCxhPWVebixpPTA7bj49NDspcj0xNTQwNDgzNDc3Kig2NTUzNSYocj0yNTUmdC5jaGFyQ29kZUF0KGkpfCgyNTUmdC5jaGFyQ29kZUF0KCsraSkpPDw4fCgyNTUmdC5jaGFyQ29kZUF0KCsraSkpPDwxNnwoMjU1JnQuY2hhckNvZGVBdCgrK2kpKTw8MjQpKSsoKDE1NDA0ODM0NzcqKHI+Pj4xNikmNjU1MzUpPDwxNiksYT0xNTQwNDgzNDc3Kig2NTUzNSZhKSsoKDE1NDA0ODM0NzcqKGE+Pj4xNikmNjU1MzUpPDwxNileKHI9MTU0MDQ4MzQ3NyooNjU1MzUmKHJePXI+Pj4yNCkpKygoMTU0MDQ4MzQ3Nyoocj4+PjE2KSY2NTUzNSk8PDE2KSksbi09NCwrK2k7c3dpdGNoKG4pe2Nhc2UgMzphXj0oMjU1JnQuY2hhckNvZGVBdChpKzIpKTw8MTY7Y2FzZSAyOmFePSgyNTUmdC5jaGFyQ29kZUF0KGkrMSkpPDw4O2Nhc2UgMTphPTE1NDA0ODM0NzcqKDY1NTM1JihhXj0yNTUmdC5jaGFyQ29kZUF0KGkpKSkrKCgxNTQwNDgzNDc3KihhPj4+MTYpJjY1NTM1KTw8MTYpfXJldHVybiBhPTE1NDA0ODM0NzcqKDY1NTM1JihhXj1hPj4+MTMpKSsoKDE1NDA0ODM0NzcqKGE+Pj4xNikmNjU1MzUpPDwxNiksKGFePWE+Pj4xNSk+Pj4wfX0pLGxjPW9jLGNjPW9jLHVjPXNjO2xjLm11cm11cjM9Y2MsbGMubXVybXVyMj11Yzt2YXIgaGM9NztmdW5jdGlvbiBmYyh0LGUpe3ZhciByPTAsbj0wLGE9ZS9NYXRoLnNxcnQoMik7c3dpdGNoKHQpe2Nhc2UidG9wLXJpZ2h0IjpjYXNlInRvcC1sZWZ0IjpuPWEtaGM7YnJlYWs7Y2FzZSJib3R0b20tcmlnaHQiOmNhc2UiYm90dG9tLWxlZnQiOm49LWEraGM7YnJlYWs7Y2FzZSJib3R0b20iOm49LWUraGM7YnJlYWs7Y2FzZSJ0b3AiOm49ZS1oY31zd2l0Y2godCl7Y2FzZSJ0b3AtcmlnaHQiOmNhc2UiYm90dG9tLXJpZ2h0IjpyPS1hO2JyZWFrO2Nhc2UidG9wLWxlZnQiOmNhc2UiYm90dG9tLWxlZnQiOnI9YTticmVhaztjYXNlImxlZnQiOnI9ZTticmVhaztjYXNlInJpZ2h0IjpyPS1lfXJldHVybltyLG5dfWZ1bmN0aW9uIHBjKHQpe3N3aXRjaCh0KXtjYXNlInJpZ2h0IjpjYXNlInRvcC1yaWdodCI6Y2FzZSJib3R0b20tcmlnaHQiOnJldHVybiJyaWdodCI7Y2FzZSJsZWZ0IjpjYXNlInRvcC1sZWZ0IjpjYXNlImJvdHRvbS1sZWZ0IjpyZXR1cm4ibGVmdCJ9cmV0dXJuImNlbnRlciJ9dmFyIGRjPTY1NTM1O2Z1bmN0aW9uIGdjKHQsZSxyLG4saSxvLHMsbCxjLHUsaCxmLHApe3ZhciBkPWZ1bmN0aW9uKHQsZSxyLG4saSxvLHMsbCl7Zm9yKHZhciBjPW4ubGF5b3V0LmdldCgidGV4dC1yb3RhdGUiKS5ldmFsdWF0ZShvLHt9KSpNYXRoLlBJLzE4MCx1PWUucG9zaXRpb25lZEdseXBocyxoPVtdLGY9MDtmPHUubGVuZ3RoO2YrKyl7dmFyIHA9dVtmXSxkPXNbcC5mb250U3RhY2tdLGc9ZCYmZFtwLmdseXBoXTtpZihnKXt2YXIgdj1nLnJlY3Q7aWYodil7dmFyIG09X2wrMSx5PWcubWV0cmljcy5hZHZhbmNlKnAuc2NhbGUvMix4PWk/W3AueCt5LHAueV06WzAsMF0sYj1pP1swLDBdOltwLngreStyWzBdLHAueStyWzFdXSxfPShpfHxsKSYmcC52ZXJ0aWNhbCx3PVswLDBdO18mJih3PWIsYj1bMCwwXSk7dmFyIGs9KGcubWV0cmljcy5sZWZ0LW0pKnAuc2NhbGUteStiWzBdLFQ9KC1nLm1ldHJpY3MudG9wLW0pKnAuc2NhbGUrYlsxXSxNPWsrdi53KnAuc2NhbGUsQT1UK3YuaCpwLnNjYWxlLFM9bmV3IGEoayxUKSxFPW5ldyBhKE0sVCksTD1uZXcgYShrLEEpLEM9bmV3IGEoTSxBKTtpZihfKXt2YXIgUD1uZXcgYSgteSx5LWUueU9mZnNldCksTz0tTWF0aC5QSS8yLHo9bHMvMi15LEk9bmV3IGEoNS1lLnlPZmZzZXQteiwwKSxEPW5ldyhGdW5jdGlvbi5wcm90b3R5cGUuYmluZC5hcHBseShhLFtudWxsXS5jb25jYXQodykpKTtTLl9yb3RhdGVBcm91bmQoTyxQKS5fYWRkKEkpLl9hZGQoRCksRS5fcm90YXRlQXJvdW5kKE8sUCkuX2FkZChJKS5fYWRkKEQpLEwuX3JvdGF0ZUFyb3VuZChPLFApLl9hZGQoSSkuX2FkZChEKSxDLl9yb3RhdGVBcm91bmQoTyxQKS5fYWRkKEkpLl9hZGQoRCl9aWYoYyl7dmFyIFI9TWF0aC5zaW4oYyksRj1NYXRoLmNvcyhjKSxCPVtGLC1SLFIsRl07Uy5fbWF0TXVsdChCKSxFLl9tYXRNdWx0KEIpLEwuX21hdE11bHQoQiksQy5fbWF0TXVsdChCKX1oLnB1c2goe3RsOlMsdHI6RSxibDpMLGJyOkMsdGV4OnYsd3JpdGluZ01vZGU6ZS53cml0aW5nTW9kZSxnbHlwaE9mZnNldDp4LHNlY3Rpb25JbmRleDpwLnNlY3Rpb25JbmRleH0pfX19cmV0dXJuIGh9KDAscixzLG4saSxvLGYsdC5hbGxvd1ZlcnRpY2FsUGxhY2VtZW50KSxnPXQudGV4dFNpemVEYXRhLHY9bnVsbDsic291cmNlIj09PWcua2luZD8odj1bX3Mqbi5sYXlvdXQuZ2V0KCJ0ZXh0LXNpemUiKS5ldmFsdWF0ZShvLHt9KV0pWzBdPmRjJiZ3KHQubGF5ZXJJZHNbMF0rJzogVmFsdWUgZm9yICJ0ZXh0LXNpemUiIGlzID49IDI1Ni4gUmVkdWNlIHlvdXIgInRleHQtc2l6ZSIuJyk6ImNvbXBvc2l0ZSI9PT1nLmtpbmQmJigodj1bX3MqcC5jb21wb3NpdGVUZXh0U2l6ZXNbMF0uZXZhbHVhdGUobyx7fSksX3MqcC5jb21wb3NpdGVUZXh0U2l6ZXNbMV0uZXZhbHVhdGUobyx7fSldKVswXT5kY3x8dlsxXT5kYykmJncodC5sYXllcklkc1swXSsnOiBWYWx1ZSBmb3IgInRleHQtc2l6ZSIgaXMgPj0gMjU2LiBSZWR1Y2UgeW91ciAidGV4dC1zaXplIi4nKSx0LmFkZFN5bWJvbHModC50ZXh0LGQsdixzLGksbyxjLGUsbC5saW5lU3RhcnRJbmRleCxsLmxpbmVMZW5ndGgpO2Zvcih2YXIgbT0wLHk9dTttPHkubGVuZ3RoO20rPTEpaFt5W21dXT10LnRleHQucGxhY2VkU3ltYm9sQXJyYXkubGVuZ3RoLTE7cmV0dXJuIDQqZC5sZW5ndGh9ZnVuY3Rpb24gdmModCl7Zm9yKHZhciBlIGluIHQpcmV0dXJuIHRbZV07cmV0dXJuIG51bGx9ZnVuY3Rpb24gbWModCxlLHIsbil7dmFyIGE9dC5jb21wYXJlVGV4dDtpZihlIGluIGEpe2Zvcih2YXIgaT1hW2VdLG89aS5sZW5ndGgtMTtvPj0wO28tLSlpZihuLmRpc3QoaVtvXSk8cilyZXR1cm4hMH1lbHNlIGFbZV09W107cmV0dXJuIGFbZV0ucHVzaChuKSwhMX10LkFjdG9yPWtsLHQuQWxwaGFJbWFnZT1QaSx0LkNhbm9uaWNhbFRpbGVJRD1JbCx0LkNvbGxpc2lvbkJveEFycmF5PWJhLHQuQ29sb3I9V3QsdC5ERU1EYXRhPUJsLHQuRGF0YUNvbnN0YW50UHJvcGVydHk9am4sdC5EaWN0aW9uYXJ5Q29kZXI9amwsdC5FWFRFTlQ9ZWksdC5FcnJvckV2ZW50PXd0LHQuRXZhbHVhdGlvblBhcmFtZXRlcnM9UG4sdC5FdmVudD1fdCx0LkV2ZW50ZWQ9a3QsdC5GZWF0dXJlSW5kZXg9SGwsdC5GaWxsQnVja2V0PV9vLHQuRmlsbEV4dHJ1c2lvbkJ1Y2tldD1Cbyx0LkltYWdlQXRsYXM9WXMsdC5JbWFnZVBvc2l0aW9uPUhzLHQuTGluZUJ1Y2tldD1abyx0LkxuZ0xhdD1BbCx0LkxuZ0xhdEJvdW5kcz1NbCx0Lk1lcmNhdG9yQ29vcmRpbmF0ZT16bCx0Lk9ORV9FTT1scyx0Lk92ZXJzY2FsZWRUaWxlSUQ9UmwsdC5Qb2ludD1hLHQuUG9pbnQkMT1hLHQuUHJvZ3JhbUNvbmZpZ3VyYXRpb249S2EsdC5Qcm9wZXJ0aWVzPUduLHQuUHJvdG9idWY9dGwsdC5SR0JBSW1hZ2U9T2ksdC5SZXF1ZXN0TWFuYWdlcj1WLHQuUmVzb3VyY2VUeXBlPWx0LHQuU2VnbWVudFZlY3Rvcj1PYSx0LlNvdXJjZUZlYXR1cmVTdGF0ZT1xbCx0LlN0cnVjdEFycmF5TGF5b3V0MXVpMj12YSx0LlN0cnVjdEFycmF5TGF5b3V0Mmk0PVFuLHQuU3RydWN0QXJyYXlMYXlvdXQydWk0PWdhLHQuU3RydWN0QXJyYXlMYXlvdXQzdWk2PWRhLHQuU3RydWN0QXJyYXlMYXlvdXQ0aTg9JG4sdC5TeW1ib2xCdWNrZXQ9T3MsdC5UZXh0dXJlPUtzLHQuVGlsZT1XbCx0LlRyYW5zaXRpb25hYmxlPUluLHQuVW5pZm9ybTFmPUJhLHQuVW5pZm9ybTFpPUZhLHQuVW5pZm9ybTJmPU5hLHQuVW5pZm9ybTNmPWphLHQuVW5pZm9ybTRmPVZhLHQuVW5pZm9ybUNvbG9yPVVhLHQuVW5pZm9ybU1hdHJpeDRmPUhhLHQuVW53cmFwcGVkVGlsZUlEPURsLHQuVmFsaWRhdGlvbkVycm9yPU10LHQuV3JpdGluZ01vZGU9Y3MsdC5ab29tSGlzdG9yeT15bix0LmFkZER5bmFtaWNBdHRyaWJ1dGVzPUxzLHQuYXN5bmNBbGw9ZnVuY3Rpb24odCxlLHIpe2lmKCF0Lmxlbmd0aClyZXR1cm4gcihudWxsLFtdKTt2YXIgbj10Lmxlbmd0aCxhPW5ldyBBcnJheSh0Lmxlbmd0aCksaT1udWxsO3QuZm9yRWFjaChmdW5jdGlvbih0LG8pe2UodCxmdW5jdGlvbih0LGUpe3QmJihpPXQpLGFbb109ZSwwPT0tLW4mJnIoaSxhKX0pfSl9LHQuYmV6aWVyPXMsdC5iaW5kQWxsPXYsdC5icm93c2VyPUksdC5jYWNoZUVudHJ5UG9zc2libHlBZGRlZD1mdW5jdGlvbih0KXsrK3N0PmF0JiYodC5nZXRBY3RvcigpLnNlbmQoImVuZm9yY2VDYWNoZVNpemVMaW1pdCIsbnQpLHN0PTApfSx0LmNsYW1wPWMsdC5jbGVhclRpbGVDYWNoZT1mdW5jdGlvbih0KXt2YXIgZT1zZWxmLmNhY2hlcy5kZWxldGUocnQpO3QmJmUuY2F0Y2godCkudGhlbihmdW5jdGlvbigpe3JldHVybiB0KCl9KX0sdC5jbG9uZT1mdW5jdGlvbih0KXt2YXIgZT1uZXcga2koMTYpO3JldHVybiBlWzBdPXRbMF0sZVsxXT10WzFdLGVbMl09dFsyXSxlWzNdPXRbM10sZVs0XT10WzRdLGVbNV09dFs1XSxlWzZdPXRbNl0sZVs3XT10WzddLGVbOF09dFs4XSxlWzldPXRbOV0sZVsxMF09dFsxMF0sZVsxMV09dFsxMV0sZVsxMl09dFsxMl0sZVsxM109dFsxM10sZVsxNF09dFsxNF0sZVsxNV09dFsxNV0sZX0sdC5jbG9uZSQxPWIsdC5jb25maWc9RCx0LmNyZWF0ZT1mdW5jdGlvbigpe3ZhciB0PW5ldyBraSgxNik7cmV0dXJuIGtpIT1GbG9hdDMyQXJyYXkmJih0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTAsdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTFdPTAsdFsxMl09MCx0WzEzXT0wLHRbMTRdPTApLHRbMF09MSx0WzVdPTEsdFsxMF09MSx0WzE1XT0xLHR9LHQuY3JlYXRlJDE9ZnVuY3Rpb24oKXt2YXIgdD1uZXcga2koOSk7cmV0dXJuIGtpIT1GbG9hdDMyQXJyYXkmJih0WzFdPTAsdFsyXT0wLHRbM109MCx0WzVdPTAsdFs2XT0wLHRbN109MCksdFswXT0xLHRbNF09MSx0WzhdPTEsdH0sdC5jcmVhdGUkMj1mdW5jdGlvbigpe3ZhciB0PW5ldyBraSg0KTtyZXR1cm4ga2khPUZsb2F0MzJBcnJheSYmKHRbMV09MCx0WzJdPTApLHRbMF09MSx0WzNdPTEsdH0sdC5jcmVhdGVDb21tb25qc01vZHVsZT1lLHQuY3JlYXRlRXhwcmVzc2lvbj1rcix0LmNyZWF0ZUxheW91dD1Kbix0LmNyZWF0ZVN0eWxlTGF5ZXI9ZnVuY3Rpb24odCl7cmV0dXJuImN1c3RvbSI9PT10LnR5cGU/bmV3IFZzKHQpOm5ldyBVc1t0LnR5cGVdKHQpfSx0LmRlZXBFcXVhbD1vLHQuZWFzZT1sLHQuZW1pdFZhbGlkYXRpb25FcnJvcnM9bG4sdC5lbmRzV2l0aD1tLHQuZW5mb3JjZUNhY2hlU2l6ZUxpbWl0PWZ1bmN0aW9uKHQpe3NlbGYuY2FjaGVzJiZzZWxmLmNhY2hlcy5vcGVuKHJ0KS50aGVuKGZ1bmN0aW9uKGUpe2Uua2V5cygpLnRoZW4oZnVuY3Rpb24ocil7Zm9yKHZhciBuPTA7bjxyLmxlbmd0aC10O24rKyllLmRlbGV0ZShyW25dKX0pfSl9LHQuZXZhbHVhdGVSYWRpYWxPZmZzZXQ9ZmMsdC5ldmFsdWF0ZVNpemVGb3JGZWF0dXJlPWtzLHQuZXZhbHVhdGVTaXplRm9yWm9vbT1Ucyx0LmV2ZW50ZWQ9TG4sdC5leHRlbmQ9aCx0LmZlYXR1cmVGaWx0ZXI9UnIsdC5maWx0ZXJPYmplY3Q9eCx0LmZyb21Sb3RhdGlvbj1mdW5jdGlvbih0LGUpe3ZhciByPU1hdGguc2luKGUpLG49TWF0aC5jb3MoZSk7cmV0dXJuIHRbMF09bix0WzFdPXIsdFsyXT0wLHRbM109LXIsdFs0XT1uLHRbNV09MCx0WzZdPTAsdFs3XT0wLHRbOF09MSx0fSx0LmdldEFuY2hvckFsaWdubWVudD15cyx0LmdldEFuY2hvckp1c3RpZmljYXRpb249cGMsdC5nZXRBcnJheUJ1ZmZlcj12dCx0LmdldEltYWdlPXl0LHQuZ2V0SlNPTj1mdW5jdGlvbih0LGUpe3JldHVybiBndChoKHQse3R5cGU6Impzb24ifSksZSl9LHQuZ2V0UmVmZXJyZXI9aHQsdC5nZXRWaWRlbz1mdW5jdGlvbih0LGUpe3ZhciByLG4sYT1zZWxmLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInZpZGVvIik7YS5tdXRlZD0hMCxhLm9ubG9hZHN0YXJ0PWZ1bmN0aW9uKCl7ZShudWxsLGEpfTtmb3IodmFyIGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIG89c2VsZi5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzb3VyY2UiKTtyPXRbaV0sbj12b2lkIDAsKG49c2VsZi5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIikpLmhyZWY9ciwobi5wcm90b2NvbCE9PXNlbGYuZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2x8fG4uaG9zdCE9PXNlbGYuZG9jdW1lbnQubG9jYXRpb24uaG9zdCkmJihhLmNyb3NzT3JpZ2luPSJBbm9ueW1vdXMiKSxvLnNyYz10W2ldLGEuYXBwZW5kQ2hpbGQobyl9cmV0dXJue2NhbmNlbDpmdW5jdGlvbigpe319fSx0LmlkZW50aXR5PWZ1bmN0aW9uKHQpe3JldHVybiB0WzBdPTEsdFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0wLHRbNV09MSx0WzZdPTAsdFs3XT0wLHRbOF09MCx0WzldPTAsdFsxMF09MSx0WzExXT0wLHRbMTJdPTAsdFsxM109MCx0WzE0XT0wLHRbMTVdPTEsdH0sdC5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49ZVsxXSxhPWVbMl0saT1lWzNdLG89ZVs0XSxzPWVbNV0sbD1lWzZdLGM9ZVs3XSx1PWVbOF0saD1lWzldLGY9ZVsxMF0scD1lWzExXSxkPWVbMTJdLGc9ZVsxM10sdj1lWzE0XSxtPWVbMTVdLHk9cipzLW4qbyx4PXIqbC1hKm8sYj1yKmMtaSpvLF89bipsLWEqcyx3PW4qYy1pKnMsaz1hKmMtaSpsLFQ9dSpnLWgqZCxNPXUqdi1mKmQsQT11Km0tcCpkLFM9aCp2LWYqZyxFPWgqbS1wKmcsTD1mKm0tcCp2LEM9eSpMLXgqRStiKlMrXypBLXcqTStrKlQ7cmV0dXJuIEM/KEM9MS9DLHRbMF09KHMqTC1sKkUrYypTKSpDLHRbMV09KGEqRS1uKkwtaSpTKSpDLHRbMl09KGcqay12KncrbSpfKSpDLHRbM109KGYqdy1oKmstcCpfKSpDLHRbNF09KGwqQS1vKkwtYypNKSpDLHRbNV09KHIqTC1hKkEraSpNKSpDLHRbNl09KHYqYi1kKmstbSp4KSpDLHRbN109KHUqay1mKmIrcCp4KSpDLHRbOF09KG8qRS1zKkErYypUKSpDLHRbOV09KG4qQS1yKkUtaSpUKSpDLHRbMTBdPShkKnctZypiK20qeSkqQyx0WzExXT0oaCpiLXUqdy1wKnkpKkMsdFsxMl09KHMqTS1vKlMtbCpUKSpDLHRbMTNdPShyKlMtbipNK2EqVCkqQyx0WzE0XT0oZyp4LWQqXy12KnkpKkMsdFsxNV09KHUqXy1oKngrZip5KSpDLHQpOm51bGx9LHQuaXNDaGFyPXhuLHQuaXNNYXBib3hVUkw9VSx0LmtleXNEaWZmZXJlbmNlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9W107Zm9yKHZhciBuIGluIHQpbiBpbiBlfHxyLnB1c2gobik7cmV0dXJuIHJ9LHQubWFrZVJlcXVlc3Q9Z3QsdC5tYXBPYmplY3Q9eSx0Lm1lcmNhdG9yWGZyb21Mbmc9TGwsdC5tZXJjYXRvcllmcm9tTGF0PUNsLHQubWVyY2F0b3JaZnJvbUFsdGl0dWRlPVBsLHQubXVsdGlwbHk9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWVbMF0sYT1lWzFdLGk9ZVsyXSxvPWVbM10scz1lWzRdLGw9ZVs1XSxjPWVbNl0sdT1lWzddLGg9ZVs4XSxmPWVbOV0scD1lWzEwXSxkPWVbMTFdLGc9ZVsxMl0sdj1lWzEzXSxtPWVbMTRdLHk9ZVsxNV0seD1yWzBdLGI9clsxXSxfPXJbMl0sdz1yWzNdO3JldHVybiB0WzBdPXgqbitiKnMrXypoK3cqZyx0WzFdPXgqYStiKmwrXypmK3cqdix0WzJdPXgqaStiKmMrXypwK3cqbSx0WzNdPXgqbytiKnUrXypkK3cqeSx4PXJbNF0sYj1yWzVdLF89cls2XSx3PXJbN10sdFs0XT14Km4rYipzK18qaCt3KmcsdFs1XT14KmErYipsK18qZit3KnYsdFs2XT14KmkrYipjK18qcCt3Km0sdFs3XT14Km8rYip1K18qZCt3KnkseD1yWzhdLGI9cls5XSxfPXJbMTBdLHc9clsxMV0sdFs4XT14Km4rYipzK18qaCt3KmcsdFs5XT14KmErYipsK18qZit3KnYsdFsxMF09eCppK2IqYytfKnArdyptLHRbMTFdPXgqbytiKnUrXypkK3cqeSx4PXJbMTJdLGI9clsxM10sXz1yWzE0XSx3PXJbMTVdLHRbMTJdPXgqbitiKnMrXypoK3cqZyx0WzEzXT14KmErYipsK18qZit3KnYsdFsxNF09eCppK2IqYytfKnArdyptLHRbMTVdPXgqbytiKnUrXypkK3cqeSx0fSx0Lm12dD1Jbyx0Lm51bWJlcj15ZSx0Lm9ydGhvPWZ1bmN0aW9uKHQsZSxyLG4sYSxpLG8pe3ZhciBzPTEvKGUtciksbD0xLyhuLWEpLGM9MS8oaS1vKTtyZXR1cm4gdFswXT0tMipzLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPS0yKmwsdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTBdPTIqYyx0WzExXT0wLHRbMTJdPShlK3IpKnMsdFsxM109KGErbikqbCx0WzE0XT0obytpKSpjLHRbMTVdPTEsdH0sdC5wYXJzZUdseXBoUEJGPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgdGwodCkucmVhZEZpZWxkcyh5bCxbXSl9LHQucGJmPXRsLHQucGVyZm9ybVN5bWJvbExheW91dD1mdW5jdGlvbih0LGUscixuLGksbyl7dC5jcmVhdGVBcnJheXMoKTt2YXIgcz01MTIqdC5vdmVyc2NhbGluZzt0LnRpbGVQaXhlbFJhdGlvPWVpL3MsdC5jb21wYXJlVGV4dD17fSx0Lmljb25zTmVlZExpbmVhcj0hMTt2YXIgbD10LmxheWVyc1swXS5sYXlvdXQsYz10LmxheWVyc1swXS5fdW5ldmFsdWF0ZWRMYXlvdXQuX3ZhbHVlcyx1PXt9O2lmKCJjb21wb3NpdGUiPT09dC50ZXh0U2l6ZURhdGEua2luZCl7dmFyIGg9dC50ZXh0U2l6ZURhdGEsZj1oLm1pblpvb20scD1oLm1heFpvb207dS5jb21wb3NpdGVUZXh0U2l6ZXM9W2NbInRleHQtc2l6ZSJdLnBvc3NpYmx5RXZhbHVhdGUobmV3IFBuKGYpKSxjWyJ0ZXh0LXNpemUiXS5wb3NzaWJseUV2YWx1YXRlKG5ldyBQbihwKSldfWlmKCJjb21wb3NpdGUiPT09dC5pY29uU2l6ZURhdGEua2luZCl7dmFyIGQ9dC5pY29uU2l6ZURhdGEsZz1kLm1pblpvb20sdj1kLm1heFpvb207dS5jb21wb3NpdGVJY29uU2l6ZXM9W2NbImljb24tc2l6ZSJdLnBvc3NpYmx5RXZhbHVhdGUobmV3IFBuKGcpKSxjWyJpY29uLXNpemUiXS5wb3NzaWJseUV2YWx1YXRlKG5ldyBQbih2KSldfXUubGF5b3V0VGV4dFNpemU9Y1sidGV4dC1zaXplIl0ucG9zc2libHlFdmFsdWF0ZShuZXcgUG4odC56b29tKzEpKSx1LmxheW91dEljb25TaXplPWNbImljb24tc2l6ZSJdLnBvc3NpYmx5RXZhbHVhdGUobmV3IFBuKHQuem9vbSsxKSksdS50ZXh0TWF4U2l6ZT1jWyJ0ZXh0LXNpemUiXS5wb3NzaWJseUV2YWx1YXRlKG5ldyBQbigxOCkpO2Zvcih2YXIgbT1sLmdldCgidGV4dC1saW5lLWhlaWdodCIpKmxzLHk9Im1hcCI9PT1sLmdldCgidGV4dC1yb3RhdGlvbi1hbGlnbm1lbnQiKSYmInBvaW50IiE9PWwuZ2V0KCJzeW1ib2wtcGxhY2VtZW50IikseD1sLmdldCgidGV4dC1rZWVwLXVwcmlnaHQiKSxiPWZ1bmN0aW9uKCl7dmFyIG89a1tfXSxzPWwuZ2V0KCJ0ZXh0LWZvbnQiKS5ldmFsdWF0ZShvLHt9KS5qb2luKCIsIiksYz1yLGg9e2hvcml6b250YWw6e30sdmVydGljYWw6dm9pZCAwfSxmPW8udGV4dCxwPVswLDBdO2lmKGYpe3ZhciBkPWYudG9TdHJpbmcoKSxnPWwuZ2V0KCJ0ZXh0LWxldHRlci1zcGFjaW5nIikuZXZhbHVhdGUobyx7fSkqbHMsdj1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxyPWQ7ZTxyLmxlbmd0aDtlKz0xKWlmKCFfbihyW2VdLmNoYXJDb2RlQXQoMCkpKXJldHVybiExO3JldHVybiEwfSgpP2c6MCxiPWwuZ2V0KCJ0ZXh0LWFuY2hvciIpLmV2YWx1YXRlKG8se30pLFQ9bC5nZXQoInRleHQtdmFyaWFibGUtYW5jaG9yIiksTT1sLmdldCgidGV4dC1yYWRpYWwtb2Zmc2V0IikuZXZhbHVhdGUobyx7fSk7VHx8KHA9TT9mYyhiLE0qbHMpOmwuZ2V0KCJ0ZXh0LW9mZnNldCIpLmV2YWx1YXRlKG8se30pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdCpsc30pKTt2YXIgQT15PyJjZW50ZXIiOmwuZ2V0KCJ0ZXh0LWp1c3RpZnkiKS5ldmFsdWF0ZShvLHt9KSxTPSJwb2ludCI9PT1sLmdldCgic3ltYm9sLXBsYWNlbWVudCIpP2wuZ2V0KCJ0ZXh0LW1heC13aWR0aCIpLmV2YWx1YXRlKG8se30pKmxzOjAsRT1mdW5jdGlvbigpe3QuYWxsb3dWZXJ0aWNhbFBsYWNlbWVudCYmYm4oZCkmJihoLnZlcnRpY2FsPWhzKGYsZSxzLFMsbSxiLCJsZWZ0Iix2LHAsY3MudmVydGljYWwsITApKX07aWYoIXkmJlQpe2Zvcih2YXIgTD0iYXV0byI9PT1BP1QubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBwYyh0KX0pOltBXSxDPSExLFA9MDtQPEwubGVuZ3RoO1ArKyl7dmFyIE89TFtQXTtpZighaC5ob3Jpem9udGFsW09dKWlmKEMpaC5ob3Jpem9udGFsW09dPWguaG9yaXpvbnRhbFswXTtlbHNle3ZhciB6PWhzKGYsZSxzLFMsbSwiY2VudGVyIixPLHYscCxjcy5ob3Jpem9udGFsLCExKTt6JiYoaC5ob3Jpem9udGFsW09dPXosQz0xPT09ei5saW5lQ291bnQpfX1FKCl9ZWxzZXsiYXV0byI9PT1BJiYoQT1wYyhiKSk7dmFyIEk9aHMoZixlLHMsUyxtLGIsQSx2LHAsY3MuaG9yaXpvbnRhbCwhMSk7SSYmKGguaG9yaXpvbnRhbFtBXT1JKSxFKCksYm4oZCkmJnkmJngmJihoLnZlcnRpY2FsPWhzKGYsZSxzLFMsbSxiLEEsdixwLGNzLnZlcnRpY2FsLCExKSl9fXZhciBEPXZvaWQgMDtpZihvLmljb24pe3ZhciBSPW5bby5pY29uXTtSJiYoRD1mdW5jdGlvbih0LGUscil7dmFyIG49eXMociksYT1uLmhvcml6b250YWxBbGlnbixpPW4udmVydGljYWxBbGlnbixvPWVbMF0scz1lWzFdLGw9by10LmRpc3BsYXlTaXplWzBdKmEsYz1sK3QuZGlzcGxheVNpemVbMF0sdT1zLXQuZGlzcGxheVNpemVbMV0qaTtyZXR1cm57aW1hZ2U6dCx0b3A6dSxib3R0b206dSt0LmRpc3BsYXlTaXplWzFdLGxlZnQ6bCxyaWdodDpjfX0oaVtvLmljb25dLGwuZ2V0KCJpY29uLW9mZnNldCIpLmV2YWx1YXRlKG8se30pLGwuZ2V0KCJpY29uLWFuY2hvciIpLmV2YWx1YXRlKG8se30pKSx2b2lkIDA9PT10LnNkZkljb25zP3Quc2RmSWNvbnM9Ui5zZGY6dC5zZGZJY29ucyE9PVIuc2RmJiZ3KCJTdHlsZSBzaGVldCB3YXJuaW5nOiBDYW5ub3QgbWl4IFNERiBhbmQgbm9uLVNERiBpY29ucyBpbiBvbmUgYnVmZmVyIiksUi5waXhlbFJhdGlvIT09dC5waXhlbFJhdGlvP3QuaWNvbnNOZWVkTGluZWFyPSEwOjAhPT1sLmdldCgiaWNvbi1yb3RhdGUiKS5jb25zdGFudE9yKDEpJiYodC5pY29uc05lZWRMaW5lYXI9ITApKX0oT2JqZWN0LmtleXMoaC5ob3Jpem9udGFsKS5sZW5ndGh8fEQpJiZmdW5jdGlvbih0LGUscixuLGksbyxzKXt2YXIgbD1vLmxheW91dFRleHRTaXplLmV2YWx1YXRlKGUse30pLGM9by5sYXlvdXRJY29uU2l6ZS5ldmFsdWF0ZShlLHt9KSx1PW8udGV4dE1heFNpemUuZXZhbHVhdGUoZSx7fSk7dm9pZCAwPT09dSYmKHU9bCk7dmFyIGg9dC5sYXllcnNbMF0ubGF5b3V0LGY9aC5nZXQoImljb24tb2Zmc2V0IikuZXZhbHVhdGUoZSx7fSkscD12YyhyLmhvcml6b250YWwpLGQ9bC8yNCxnPXQudGlsZVBpeGVsUmF0aW8qZCx2PXQudGlsZVBpeGVsUmF0aW8qdS8yNCxtPXQudGlsZVBpeGVsUmF0aW8qYyx5PXQudGlsZVBpeGVsUmF0aW8qaC5nZXQoInN5bWJvbC1zcGFjaW5nIikseD1oLmdldCgidGV4dC1wYWRkaW5nIikqdC50aWxlUGl4ZWxSYXRpbyxiPWguZ2V0KCJpY29uLXBhZGRpbmciKSp0LnRpbGVQaXhlbFJhdGlvLF89aC5nZXQoInRleHQtbWF4LWFuZ2xlIikvMTgwKk1hdGguUEksaz0ibWFwIj09PWguZ2V0KCJ0ZXh0LXJvdGF0aW9uLWFsaWdubWVudCIpJiYicG9pbnQiIT09aC5nZXQoInN5bWJvbC1wbGFjZW1lbnQiKSxUPSJtYXAiPT09aC5nZXQoImljb24tcm90YXRpb24tYWxpZ25tZW50IikmJiJwb2ludCIhPT1oLmdldCgic3ltYm9sLXBsYWNlbWVudCIpLE09aC5nZXQoInN5bWJvbC1wbGFjZW1lbnQiKSxBPXkvMixTPWZ1bmN0aW9uKGwsYyl7Yy54PDB8fGMueD49ZWl8fGMueTwwfHxjLnk+PWVpfHxmdW5jdGlvbih0LGUscixuLGksbyxzLGwsYyx1LGgsZixwLGQsZyx2LG0seSx4LGIsXyl7dmFyIGssVCxNLEE9dC5hZGRUb0xpbmVWZXJ0ZXhBcnJheShlLHIpLFM9MCxFPTAsTD0wLEM9e30sUD1sYygiIiksTz0oby5sYXlvdXQuZ2V0KCJ0ZXh0LXJhZGlhbC1vZmZzZXQiKS5ldmFsdWF0ZSh4LHt9KXx8MCkqbHM7aWYodC5hbGxvd1ZlcnRpY2FsUGxhY2VtZW50JiZuLnZlcnRpY2FsKXt2YXIgej1vLmxheW91dC5nZXQoInRleHQtcm90YXRlIikuZXZhbHVhdGUoeCx7fSkrOTAsST1uLnZlcnRpY2FsO009bmV3IHRjKHMscixlLGwsYyx1LEksaCxmLHAsdC5vdmVyc2NhbGluZyx6KX1mb3IodmFyIEQgaW4gbi5ob3Jpem9udGFsKXt2YXIgUj1uLmhvcml6b250YWxbRF07aWYoIWspe1A9bGMoUi50ZXh0KTt2YXIgRj1vLmxheW91dC5nZXQoInRleHQtcm90YXRlIikuZXZhbHVhdGUoeCx7fSk7az1uZXcgdGMocyxyLGUsbCxjLHUsUixoLGYscCx0Lm92ZXJzY2FsaW5nLEYpfXZhciBCPTE9PT1SLmxpbmVDb3VudDtpZihFKz1nYyh0LGUsUixvLHAseCxkLEEsbi52ZXJ0aWNhbD9jcy5ob3Jpem9udGFsOmNzLmhvcml6b250YWxPbmx5LEI/T2JqZWN0LmtleXMobi5ob3Jpem9udGFsKTpbRF0sQyxiLF8pLEIpYnJlYWt9bi52ZXJ0aWNhbCYmKEwrPWdjKHQsZSxuLnZlcnRpY2FsLG8scCx4LGQsQSxjcy52ZXJ0aWNhbCxbInZlcnRpY2FsIl0sQyxiLF8pKTt2YXIgTj1rP2suYm94U3RhcnRJbmRleDp0LmNvbGxpc2lvbkJveEFycmF5Lmxlbmd0aCxqPWs/ay5ib3hFbmRJbmRleDp0LmNvbGxpc2lvbkJveEFycmF5Lmxlbmd0aCxWPU0/TS5ib3hTdGFydEluZGV4OnQuY29sbGlzaW9uQm94QXJyYXkubGVuZ3RoLFU9TT9NLmJveEVuZEluZGV4OnQuY29sbGlzaW9uQm94QXJyYXkubGVuZ3RoO2lmKGkpe3ZhciBxPWZ1bmN0aW9uKHQsZSxyLG4saSxvKXt2YXIgcyxsLGMsdSxoPWUuaW1hZ2UsZj1yLmxheW91dCxwPWUudG9wLTEvaC5waXhlbFJhdGlvLGQ9ZS5sZWZ0LTEvaC5waXhlbFJhdGlvLGc9ZS5ib3R0b20rMS9oLnBpeGVsUmF0aW8sdj1lLnJpZ2h0KzEvaC5waXhlbFJhdGlvO2lmKCJub25lIiE9PWYuZ2V0KCJpY29uLXRleHQtZml0IikmJmkpe3ZhciBtPXYtZCx5PWctcCx4PWYuZ2V0KCJ0ZXh0LXNpemUiKS5ldmFsdWF0ZShvLHt9KS8yNCxiPWkubGVmdCp4LF89aS5yaWdodCp4LHc9aS50b3AqeCxrPV8tYixUPWkuYm90dG9tKngtdyxNPWYuZ2V0KCJpY29uLXRleHQtZml0LXBhZGRpbmciKVswXSxBPWYuZ2V0KCJpY29uLXRleHQtZml0LXBhZGRpbmciKVsxXSxTPWYuZ2V0KCJpY29uLXRleHQtZml0LXBhZGRpbmciKVsyXSxFPWYuZ2V0KCJpY29uLXRleHQtZml0LXBhZGRpbmciKVszXSxMPSJ3aWR0aCI9PT1mLmdldCgiaWNvbi10ZXh0LWZpdCIpPy41KihULXkpOjAsQz0iaGVpZ2h0Ij09PWYuZ2V0KCJpY29uLXRleHQtZml0Iik/LjUqKGstbSk6MCxQPSJ3aWR0aCI9PT1mLmdldCgiaWNvbi10ZXh0LWZpdCIpfHwiYm90aCI9PT1mLmdldCgiaWNvbi10ZXh0LWZpdCIpP2s6bSxPPSJoZWlnaHQiPT09Zi5nZXQoImljb24tdGV4dC1maXQiKXx8ImJvdGgiPT09Zi5nZXQoImljb24tdGV4dC1maXQiKT9UOnk7cz1uZXcgYShiK0MtRSx3K0wtTSksbD1uZXcgYShiK0MrQStQLHcrTC1NKSxjPW5ldyBhKGIrQytBK1AsdytMK1MrTyksdT1uZXcgYShiK0MtRSx3K0wrUytPKX1lbHNlIHM9bmV3IGEoZCxwKSxsPW5ldyBhKHYscCksYz1uZXcgYSh2LGcpLHU9bmV3IGEoZCxnKTt2YXIgej1yLmxheW91dC5nZXQoImljb24tcm90YXRlIikuZXZhbHVhdGUobyx7fSkqTWF0aC5QSS8xODA7aWYoeil7dmFyIEk9TWF0aC5zaW4oeiksRD1NYXRoLmNvcyh6KSxSPVtELC1JLEksRF07cy5fbWF0TXVsdChSKSxsLl9tYXRNdWx0KFIpLHUuX21hdE11bHQoUiksYy5fbWF0TXVsdChSKX1yZXR1cm5be3RsOnMsdHI6bCxibDp1LGJyOmMsdGV4OmgucGFkZGVkUmVjdCx3cml0aW5nTW9kZTp2b2lkIDAsZ2x5cGhPZmZzZXQ6WzAsMF0sc2VjdGlvbkluZGV4OjB9XX0oMCxpLG8sMCx2YyhuLmhvcml6b250YWwpLHgpLEg9by5sYXlvdXQuZ2V0KCJpY29uLXJvdGF0ZSIpLmV2YWx1YXRlKHgse30pO1Q9bmV3IHRjKHMscixlLGwsYyx1LGksZyx2LCExLHQub3ZlcnNjYWxpbmcsSCksUz00KnEubGVuZ3RoO3ZhciBHPXQuaWNvblNpemVEYXRhLFk9bnVsbDsic291cmNlIj09PUcua2luZD8oWT1bX3Mqby5sYXlvdXQuZ2V0KCJpY29uLXNpemUiKS5ldmFsdWF0ZSh4LHt9KV0pWzBdPmRjJiZ3KHQubGF5ZXJJZHNbMF0rJzogVmFsdWUgZm9yICJpY29uLXNpemUiIGlzID49IDI1Ni4gUmVkdWNlIHlvdXIgImljb24tc2l6ZSIuJyk6ImNvbXBvc2l0ZSI9PT1HLmtpbmQmJigoWT1bX3MqXy5jb21wb3NpdGVJY29uU2l6ZXNbMF0uZXZhbHVhdGUoeCx7fSksX3MqXy5jb21wb3NpdGVJY29uU2l6ZXNbMV0uZXZhbHVhdGUoeCx7fSldKVswXT5kY3x8WVsxXT5kYykmJncodC5sYXllcklkc1swXSsnOiBWYWx1ZSBmb3IgImljb24tc2l6ZSIgaXMgPj0gMjU2LiBSZWR1Y2UgeW91ciAiaWNvbi1zaXplIi4nKSx0LmFkZFN5bWJvbHModC5pY29uLHEsWSx5LG0seCwhMSxlLEEubGluZVN0YXJ0SW5kZXgsQS5saW5lTGVuZ3RoKX12YXIgVz1UP1QuYm94U3RhcnRJbmRleDp0LmNvbGxpc2lvbkJveEFycmF5Lmxlbmd0aCxYPVQ/VC5ib3hFbmRJbmRleDp0LmNvbGxpc2lvbkJveEFycmF5Lmxlbmd0aDt0LmdseXBoT2Zmc2V0QXJyYXkubGVuZ3RoPj1Pcy5NQVhfR0xZUEhTJiZ3KCJUb28gbWFueSBnbHlwaHMgYmVpbmcgcmVuZGVyZWQgaW4gYSB0aWxlLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL21hcGJveC9tYXBib3gtZ2wtanMvaXNzdWVzLzI5MDciKSx0LnN5bWJvbEluc3RhbmNlcy5lbXBsYWNlQmFjayhlLngsZS55LEMucmlnaHQ+PTA/Qy5yaWdodDotMSxDLmNlbnRlcj49MD9DLmNlbnRlcjotMSxDLmxlZnQ+PTA/Qy5sZWZ0Oi0xLEMudmVydGljYWx8fC0xLFAsTixqLFYsVSxXLFgsbCxFLEwsUywwLGgsTyl9KHQsYyxsLHIsbix0LmxheWVyc1swXSx0LmNvbGxpc2lvbkJveEFycmF5LGUuaW5kZXgsZS5zb3VyY2VMYXllckluZGV4LHQuaW5kZXgsZyx4LGsscyxtLGIsVCxmLGUsaSxvKX07aWYoImxpbmUiPT09TSlmb3IodmFyIEU9MCxMPWZ1bmN0aW9uKHQsZSxyLG4saSl7Zm9yKHZhciBvPVtdLHM9MDtzPHQubGVuZ3RoO3MrKylmb3IodmFyIGw9dFtzXSxjPXZvaWQgMCx1PTA7dTxsLmxlbmd0aC0xO3UrKyl7dmFyIGg9bFt1XSxmPWxbdSsxXTtoLng8MCYmZi54PDB8fChoLng8MD9oPW5ldyBhKDAsaC55KyhmLnktaC55KSooKDAtaC54KS8oZi54LWgueCkpKS5fcm91bmQoKTpmLng8MCYmKGY9bmV3IGEoMCxoLnkrKGYueS1oLnkpKigoMC1oLngpLyhmLngtaC54KSkpLl9yb3VuZCgpKSxoLnk8MCYmZi55PDB8fChoLnk8MD9oPW5ldyBhKGgueCsoZi54LWgueCkqKCgwLWgueSkvKGYueS1oLnkpKSwwKS5fcm91bmQoKTpmLnk8MCYmKGY9bmV3IGEoaC54KyhmLngtaC54KSooKDAtaC55KS8oZi55LWgueSkpLDApLl9yb3VuZCgpKSxoLng+PW4mJmYueD49bnx8KGgueD49bj9oPW5ldyBhKG4saC55KyhmLnktaC55KSooKG4taC54KS8oZi54LWgueCkpKS5fcm91bmQoKTpmLng+PW4mJihmPW5ldyBhKG4saC55KyhmLnktaC55KSooKG4taC54KS8oZi54LWgueCkpKS5fcm91bmQoKSksaC55Pj1pJiZmLnk+PWl8fChoLnk+PWk/aD1uZXcgYShoLngrKGYueC1oLngpKigoaS1oLnkpLyhmLnktaC55KSksaSkuX3JvdW5kKCk6Zi55Pj1pJiYoZj1uZXcgYShoLngrKGYueC1oLngpKigoaS1oLnkpLyhmLnktaC55KSksaSkuX3JvdW5kKCkpLGMmJmguZXF1YWxzKGNbYy5sZW5ndGgtMV0pfHwoYz1baF0sby5wdXNoKGMpKSxjLnB1c2goZikpKSkpfXJldHVybiBvfShlLmdlb21ldHJ5LDAsMCxlaSxlaSk7RTxMLmxlbmd0aDtFKz0xKWZvcih2YXIgQz1MW0VdLFA9MCxPPSRsKEMseSxfLHIudmVydGljYWx8fHAsbiwyNCx2LHQub3ZlcnNjYWxpbmcsZWkpO1A8Ty5sZW5ndGg7UCs9MSl7dmFyIHo9T1tQXTtwJiZtYyh0LHAudGV4dCxBLHopfHxTKEMseil9ZWxzZSBpZigibGluZS1jZW50ZXIiPT09TSlmb3IodmFyIEk9MCxEPWUuZ2VvbWV0cnk7STxELmxlbmd0aDtJKz0xKXt2YXIgUj1EW0ldO2lmKFIubGVuZ3RoPjEpe3ZhciBGPVFsKFIsXyxyLnZlcnRpY2FsfHxwLG4sMjQsdik7RiYmUyhSLEYpfX1lbHNlIGlmKCJQb2x5Z29uIj09PWUudHlwZSlmb3IodmFyIEI9MCxOPW1vKGUuZ2VvbWV0cnksMCk7QjxOLmxlbmd0aDtCKz0xKXt2YXIgaj1OW0JdLFY9bmMoaiwxNik7UyhqWzBdLG5ldyBicyhWLngsVi55LDApKX1lbHNlIGlmKCJMaW5lU3RyaW5nIj09PWUudHlwZSlmb3IodmFyIFU9MCxxPWUuZ2VvbWV0cnk7VTxxLmxlbmd0aDtVKz0xKXt2YXIgSD1xW1VdO1MoSCxuZXcgYnMoSFswXS54LEhbMF0ueSwwKSl9ZWxzZSBpZigiUG9pbnQiPT09ZS50eXBlKWZvcih2YXIgRz0wLFk9ZS5nZW9tZXRyeTtHPFkubGVuZ3RoO0crPTEpZm9yKHZhciBXPTAsWD1ZW0ddO1c8WC5sZW5ndGg7Vys9MSl7dmFyIFo9WFtXXTtTKFtaXSxuZXcgYnMoWi54LFoueSwwKSl9fSh0LG8saCxELGMsdSxwKX0sXz0wLGs9dC5mZWF0dXJlcztfPGsubGVuZ3RoO18rPTEpYigpO28mJnQuZ2VuZXJhdGVDb2xsaXNpb25EZWJ1Z0J1ZmZlcnMoKX0sdC5wZXJzcGVjdGl2ZT1mdW5jdGlvbih0LGUscixuLGEpe3ZhciBpLG89MS9NYXRoLnRhbihlLzIpO3JldHVybiB0WzBdPW8vcix0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTAsdFs1XT1vLHRbNl09MCx0WzddPTAsdFs4XT0wLHRbOV09MCx0WzExXT0tMSx0WzEyXT0wLHRbMTNdPTAsdFsxNV09MCxudWxsIT1hJiZhIT09MS8wPyhpPTEvKG4tYSksdFsxMF09KGErbikqaSx0WzE0XT0yKmEqbippKToodFsxMF09LTEsdFsxNF09LTIqbiksdH0sdC5waWNrPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXt9LG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGE9ZVtuXTthIGluIHQmJihyW2FdPXRbYV0pfXJldHVybiByfSx0LnBsdWdpbj1Dbix0LnBvbHlnb25JbnRlcnNlY3RzUG9seWdvbj1vaSx0LnBvc3RNYXBMb2FkRXZlbnQ9ZXQsdC5wb3N0VHVybnN0aWxlRXZlbnQ9JCx0LnBvdHBhY2s9cXMsdC5yYXN0ZXJCb3VuZHNBdHRyaWJ1dGVzPU5sLHQucmVmUHJvcGVydGllcz1bInR5cGUiLCJzb3VyY2UiLCJzb3VyY2UtbGF5ZXIiLCJtaW56b29tIiwibWF4em9vbSIsImZpbHRlciIsImxheW91dCJdLHQucmVnaXN0ZXI9ZG4sdC5yZWdpc3RlckZvclBsdWdpbkF2YWlsYWJpbGl0eT1mdW5jdGlvbih0KXtyZXR1cm4gU24/dCh7cGx1Z2luVVJMOlNuLGNvbXBsZXRpb25DYWxsYmFjazpNbn0pOkxuLm9uY2UoInBsdWdpbkF2YWlsYWJsZSIsdCksdH0sdC5yb3RhdGU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWVbMF0sYT1lWzFdLGk9ZVsyXSxvPWVbM10scz1NYXRoLnNpbihyKSxsPU1hdGguY29zKHIpO3JldHVybiB0WzBdPW4qbCtpKnMsdFsxXT1hKmwrbypzLHRbMl09biotcytpKmwsdFszXT1hKi1zK28qbCx0fSx0LnJvdGF0ZVg9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPU1hdGguc2luKHIpLGE9TWF0aC5jb3MociksaT1lWzRdLG89ZVs1XSxzPWVbNl0sbD1lWzddLGM9ZVs4XSx1PWVbOV0saD1lWzEwXSxmPWVbMTFdO3JldHVybiBlIT09dCYmKHRbMF09ZVswXSx0WzFdPWVbMV0sdFsyXT1lWzJdLHRbM109ZVszXSx0WzEyXT1lWzEyXSx0WzEzXT1lWzEzXSx0WzE0XT1lWzE0XSx0WzE1XT1lWzE1XSksdFs0XT1pKmErYypuLHRbNV09byphK3Uqbix0WzZdPXMqYStoKm4sdFs3XT1sKmErZipuLHRbOF09YyphLWkqbix0WzldPXUqYS1vKm4sdFsxMF09aCphLXMqbix0WzExXT1mKmEtbCpuLHR9LHQucm90YXRlWj1mdW5jdGlvbih0LGUscil7dmFyIG49TWF0aC5zaW4ociksYT1NYXRoLmNvcyhyKSxpPWVbMF0sbz1lWzFdLHM9ZVsyXSxsPWVbM10sYz1lWzRdLHU9ZVs1XSxoPWVbNl0sZj1lWzddO3JldHVybiBlIT09dCYmKHRbOF09ZVs4XSx0WzldPWVbOV0sdFsxMF09ZVsxMF0sdFsxMV09ZVsxMV0sdFsxMl09ZVsxMl0sdFsxM109ZVsxM10sdFsxNF09ZVsxNF0sdFsxNV09ZVsxNV0pLHRbMF09aSphK2Mqbix0WzFdPW8qYSt1Km4sdFsyXT1zKmEraCpuLHRbM109bCphK2Yqbix0WzRdPWMqYS1pKm4sdFs1XT11KmEtbypuLHRbNl09aCphLXMqbix0WzddPWYqYS1sKm4sdH0sdC5zY2FsZT1mdW5jdGlvbih0LGUscil7dmFyIG49clswXSxhPXJbMV0saT1yWzJdO3JldHVybiB0WzBdPWVbMF0qbix0WzFdPWVbMV0qbix0WzJdPWVbMl0qbix0WzNdPWVbM10qbix0WzRdPWVbNF0qYSx0WzVdPWVbNV0qYSx0WzZdPWVbNl0qYSx0WzddPWVbN10qYSx0WzhdPWVbOF0qaSx0WzldPWVbOV0qaSx0WzEwXT1lWzEwXSppLHRbMTFdPWVbMTFdKmksdFsxMl09ZVsxMl0sdFsxM109ZVsxM10sdFsxNF09ZVsxNF0sdFsxNV09ZVsxNV0sdH0sdC5zZXRDYWNoZUxpbWl0cz1mdW5jdGlvbih0LGUpe250PXQsYXQ9ZX0sdC5zZXRSVExUZXh0UGx1Z2luPWZ1bmN0aW9uKHQsZSl7aWYoQW4pdGhyb3cgbmV3IEVycm9yKCJzZXRSVExUZXh0UGx1Z2luIGNhbm5vdCBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMuIik7QW49ITAsU249SS5yZXNvbHZlVVJMKHQpLE1uPWZ1bmN0aW9uKHQpe3Q/KEFuPSExLFNuPW51bGwsZSYmZSh0KSk6RW49ITB9LExuLmZpcmUobmV3IF90KCJwbHVnaW5BdmFpbGFibGUiLHtwbHVnaW5VUkw6U24sY29tcGxldGlvbkNhbGxiYWNrOk1ufSkpfSx0LnNwaGVyaWNhbFRvQ2FydGVzaWFuPWZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0scj10WzFdLG49dFsyXTtyZXR1cm4gcis9OTAscio9TWF0aC5QSS8xODAsbio9TWF0aC5QSS8xODAse3g6ZSpNYXRoLmNvcyhyKSpNYXRoLnNpbihuKSx5OmUqTWF0aC5zaW4ocikqTWF0aC5zaW4obiksejplKk1hdGguY29zKG4pfX0sdC5zdHlsZVNwZWM9VHQsdC5zeW1ib2xTaXplPU1zLHQudHJhbnNmb3JtTWF0Mz1mdW5jdGlvbih0LGUscil7dmFyIG49ZVswXSxhPWVbMV0saT1lWzJdO3JldHVybiB0WzBdPW4qclswXSthKnJbM10raSpyWzZdLHRbMV09bipyWzFdK2Eqcls0XStpKnJbN10sdFsyXT1uKnJbMl0rYSpyWzVdK2kqcls4XSx0fSx0LnRyYW5zZm9ybU1hdDQ9VGksdC50cmFuc2xhdGU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGEsaSxvLHMsbCxjLHUsaCxmLHAsZCxnPXJbMF0sdj1yWzFdLG09clsyXTtyZXR1cm4gZT09PXQ/KHRbMTJdPWVbMF0qZytlWzRdKnYrZVs4XSptK2VbMTJdLHRbMTNdPWVbMV0qZytlWzVdKnYrZVs5XSptK2VbMTNdLHRbMTRdPWVbMl0qZytlWzZdKnYrZVsxMF0qbStlWzE0XSx0WzE1XT1lWzNdKmcrZVs3XSp2K2VbMTFdKm0rZVsxNV0pOihuPWVbMF0sYT1lWzFdLGk9ZVsyXSxvPWVbM10scz1lWzRdLGw9ZVs1XSxjPWVbNl0sdT1lWzddLGg9ZVs4XSxmPWVbOV0scD1lWzEwXSxkPWVbMTFdLHRbMF09bix0WzFdPWEsdFsyXT1pLHRbM109byx0WzRdPXMsdFs1XT1sLHRbNl09Yyx0WzddPXUsdFs4XT1oLHRbOV09Zix0WzEwXT1wLHRbMTFdPWQsdFsxMl09bipnK3MqditoKm0rZVsxMl0sdFsxM109YSpnK2wqditmKm0rZVsxM10sdFsxNF09aSpnK2MqditwKm0rZVsxNF0sdFsxNV09bypnK3UqditkKm0rZVsxNV0pLHR9LHQudW5pcXVlSWQ9cCx0LnZhbGlkYXRlQ3VzdG9tU3R5bGVMYXllcj1mdW5jdGlvbih0KXt2YXIgZT1bXSxyPXQuaWQ7cmV0dXJuIHZvaWQgMD09PXImJmUucHVzaCh7bWVzc2FnZToibGF5ZXJzLiIrcisnOiBtaXNzaW5nIHJlcXVpcmVkIHByb3BlcnR5ICJpZCInfSksdm9pZCAwPT09dC5yZW5kZXImJmUucHVzaCh7bWVzc2FnZToibGF5ZXJzLiIrcisnOiBtaXNzaW5nIHJlcXVpcmVkIG1ldGhvZCAicmVuZGVyIid9KSx0LnJlbmRlcmluZ01vZGUmJiIyZCIhPT10LnJlbmRlcmluZ01vZGUmJiIzZCIhPT10LnJlbmRlcmluZ01vZGUmJmUucHVzaCh7bWVzc2FnZToibGF5ZXJzLiIrcisnOiBwcm9wZXJ0eSAicmVuZGVyaW5nTW9kZSIgbXVzdCBiZSBlaXRoZXIgIjJkIiBvciAiM2QiJ30pLGV9LHQudmFsaWRhdGVMaWdodD1hbix0LnZhbGlkYXRlU3R5bGU9bm4sdC52YWx1ZXM9ZnVuY3Rpb24odCl7dmFyIGU9W107Zm9yKHZhciByIGluIHQpZS5wdXNoKHRbcl0pO3JldHVybiBlfSx0LnZlY3RvclRpbGU9SW8sdC52ZXJzaW9uPSIxLjMuMiIsdC53YXJuT25jZT13LHQud2VicFN1cHBvcnRlZD1SLHQud2luZG93PXNlbGYsdC53cmFwPXV9KSxuKDAsZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXt2YXIgcj10eXBlb2YgdDtpZigibnVtYmVyIj09PXJ8fCJib29sZWFuIj09PXJ8fCJzdHJpbmciPT09cnx8bnVsbD09dClyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCk7aWYoQXJyYXkuaXNBcnJheSh0KSl7Zm9yKHZhciBuPSJbIixhPTAsaT10O2E8aS5sZW5ndGg7YSs9MSluKz1lKGlbYV0pKyIsIjtyZXR1cm4gbisiXSJ9Zm9yKHZhciBvPU9iamVjdC5rZXlzKHQpLnNvcnQoKSxzPSJ7IixsPTA7bDxvLmxlbmd0aDtsKyspcys9SlNPTi5zdHJpbmdpZnkob1tsXSkrIjoiK2UodFtvW2xdXSkrIiwiO3JldHVybiBzKyJ9In1mdW5jdGlvbiByKHIpe2Zvcih2YXIgbj0iIixhPTAsaT10LnJlZlByb3BlcnRpZXM7YTxpLmxlbmd0aDthKz0xKW4rPSIvIitlKHJbaVthXV0pO3JldHVybiBufXZhciBuPWZ1bmN0aW9uKHQpe3RoaXMua2V5Q2FjaGU9e30sdCYmdGhpcy5yZXBsYWNlKHQpfTtuLnByb3RvdHlwZS5yZXBsYWNlPWZ1bmN0aW9uKHQpe3RoaXMuX2xheWVyQ29uZmlncz17fSx0aGlzLl9sYXllcnM9e30sdGhpcy51cGRhdGUodCxbXSl9LG4ucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihlLG4pe2Zvcih2YXIgYT10aGlzLGk9MCxvPWU7aTxvLmxlbmd0aDtpKz0xKXt2YXIgcz1vW2ldO3RoaXMuX2xheWVyQ29uZmlnc1tzLmlkXT1zO3ZhciBsPXRoaXMuX2xheWVyc1tzLmlkXT10LmNyZWF0ZVN0eWxlTGF5ZXIocyk7bC5fZmVhdHVyZUZpbHRlcj10LmZlYXR1cmVGaWx0ZXIobC5maWx0ZXIpLHRoaXMua2V5Q2FjaGVbcy5pZF0mJmRlbGV0ZSB0aGlzLmtleUNhY2hlW3MuaWRdfWZvcih2YXIgYz0wLHU9bjtjPHUubGVuZ3RoO2MrPTEpe3ZhciBoPXVbY107ZGVsZXRlIHRoaXMua2V5Q2FjaGVbaF0sZGVsZXRlIHRoaXMuX2xheWVyQ29uZmlnc1toXSxkZWxldGUgdGhpcy5fbGF5ZXJzW2hdfXRoaXMuZmFtaWxpZXNCeVNvdXJjZT17fTtmb3IodmFyIGY9MCxwPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXt9LGE9MDthPHQubGVuZ3RoO2ErKyl7dmFyIGk9ZSYmZVt0W2FdLmlkXXx8cih0W2FdKTtlJiYoZVt0W2FdLmlkXT1pKTt2YXIgbz1uW2ldO298fChvPW5baV09W10pLG8ucHVzaCh0W2FdKX12YXIgcz1bXTtmb3IodmFyIGwgaW4gbilzLnB1c2gobltsXSk7cmV0dXJuIHN9KHQudmFsdWVzKHRoaXMuX2xheWVyQ29uZmlncyksdGhpcy5rZXlDYWNoZSk7ZjxwLmxlbmd0aDtmKz0xKXt2YXIgZD1wW2ZdLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gYS5fbGF5ZXJzW3QuaWRdfSksZz1kWzBdO2lmKCJub25lIiE9PWcudmlzaWJpbGl0eSl7dmFyIHY9Zy5zb3VyY2V8fCIiLG09dGhpcy5mYW1pbGllc0J5U291cmNlW3ZdO218fChtPXRoaXMuZmFtaWxpZXNCeVNvdXJjZVt2XT17fSk7dmFyIHk9Zy5zb3VyY2VMYXllcnx8Il9nZW9qc29uVGlsZUxheWVyIix4PW1beV07eHx8KHg9bVt5XT1bXSkseC5wdXNoKGQpfX19O3ZhciBhPWZ1bmN0aW9uKGUpe3ZhciByPXt9LG49W107Zm9yKHZhciBhIGluIGUpe3ZhciBpPWVbYV0sbz1yW2FdPXt9O2Zvcih2YXIgcyBpbiBpKXt2YXIgbD1pWytzXTtpZihsJiYwIT09bC5iaXRtYXAud2lkdGgmJjAhPT1sLmJpdG1hcC5oZWlnaHQpe3ZhciBjPXt4OjAseTowLHc6bC5iaXRtYXAud2lkdGgrMixoOmwuYml0bWFwLmhlaWdodCsyfTtuLnB1c2goYyksb1tzXT17cmVjdDpjLG1ldHJpY3M6bC5tZXRyaWNzfX19fXZhciB1PXQucG90cGFjayhuKSxoPXUudyxmPXUuaCxwPW5ldyB0LkFscGhhSW1hZ2Uoe3dpZHRoOmh8fDEsaGVpZ2h0OmZ8fDF9KTtmb3IodmFyIGQgaW4gZSl7dmFyIGc9ZVtkXTtmb3IodmFyIHYgaW4gZyl7dmFyIG09Z1srdl07aWYobSYmMCE9PW0uYml0bWFwLndpZHRoJiYwIT09bS5iaXRtYXAuaGVpZ2h0KXt2YXIgeT1yW2RdW3ZdLnJlY3Q7dC5BbHBoYUltYWdlLmNvcHkobS5iaXRtYXAscCx7eDowLHk6MH0se3g6eS54KzEseTp5LnkrMX0sbS5iaXRtYXApfX19dGhpcy5pbWFnZT1wLHRoaXMucG9zaXRpb25zPXJ9O3QucmVnaXN0ZXIoIkdseXBoQXRsYXMiLGEpO3ZhciBpPWZ1bmN0aW9uKGUpe3RoaXMudGlsZUlEPW5ldyB0Lk92ZXJzY2FsZWRUaWxlSUQoZS50aWxlSUQub3ZlcnNjYWxlZFosZS50aWxlSUQud3JhcCxlLnRpbGVJRC5jYW5vbmljYWwueixlLnRpbGVJRC5jYW5vbmljYWwueCxlLnRpbGVJRC5jYW5vbmljYWwueSksdGhpcy51aWQ9ZS51aWQsdGhpcy56b29tPWUuem9vbSx0aGlzLnBpeGVsUmF0aW89ZS5waXhlbFJhdGlvLHRoaXMudGlsZVNpemU9ZS50aWxlU2l6ZSx0aGlzLnNvdXJjZT1lLnNvdXJjZSx0aGlzLm92ZXJzY2FsaW5nPXRoaXMudGlsZUlELm92ZXJzY2FsZUZhY3RvcigpLHRoaXMuc2hvd0NvbGxpc2lvbkJveGVzPWUuc2hvd0NvbGxpc2lvbkJveGVzLHRoaXMuY29sbGVjdFJlc291cmNlVGltaW5nPSEhZS5jb2xsZWN0UmVzb3VyY2VUaW1pbmcsdGhpcy5yZXR1cm5EZXBlbmRlbmNpZXM9ISFlLnJldHVybkRlcGVuZGVuY2llc307ZnVuY3Rpb24gbyhlLHIpe2Zvcih2YXIgbj1uZXcgdC5FdmFsdWF0aW9uUGFyYW1ldGVycyhyKSxhPTAsaT1lO2E8aS5sZW5ndGg7YSs9MSlpW2FdLnJlY2FsY3VsYXRlKG4pfWkucHJvdG90eXBlLnBhcnNlPWZ1bmN0aW9uKGUscixuLGkpe3ZhciBzPXRoaXM7dGhpcy5zdGF0dXM9InBhcnNpbmciLHRoaXMuZGF0YT1lLHRoaXMuY29sbGlzaW9uQm94QXJyYXk9bmV3IHQuQ29sbGlzaW9uQm94QXJyYXk7dmFyIGw9bmV3IHQuRGljdGlvbmFyeUNvZGVyKE9iamVjdC5rZXlzKGUubGF5ZXJzKS5zb3J0KCkpLGM9bmV3IHQuRmVhdHVyZUluZGV4KHRoaXMudGlsZUlEKTtjLmJ1Y2tldExheWVySURzPVtdO3ZhciB1LGgsZixwLGQ9e30sZz17ZmVhdHVyZUluZGV4OmMsaWNvbkRlcGVuZGVuY2llczp7fSxwYXR0ZXJuRGVwZW5kZW5jaWVzOnt9LGdseXBoRGVwZW5kZW5jaWVzOnt9fSx2PXIuZmFtaWxpZXNCeVNvdXJjZVt0aGlzLnNvdXJjZV07Zm9yKHZhciBtIGluIHYpe3ZhciB5PWUubGF5ZXJzW21dO2lmKHkpezE9PT15LnZlcnNpb24mJnQud2Fybk9uY2UoJ1ZlY3RvciB0aWxlIHNvdXJjZSAiJyt0aGlzLnNvdXJjZSsnIiBsYXllciAiJyttKyciIGRvZXMgbm90IHVzZSB2ZWN0b3IgdGlsZSBzcGVjIHYyIGFuZCB0aGVyZWZvcmUgbWF5IGhhdmUgc29tZSByZW5kZXJpbmcgZXJyb3JzLicpO2Zvcih2YXIgeD1sLmVuY29kZShtKSxiPVtdLF89MDtfPHkubGVuZ3RoO18rKyl7dmFyIHc9eS5mZWF0dXJlKF8pO2IucHVzaCh7ZmVhdHVyZTp3LGluZGV4Ol8sc291cmNlTGF5ZXJJbmRleDp4fSl9Zm9yKHZhciBrPTAsVD12W21dO2s8VC5sZW5ndGg7ays9MSl7dmFyIE09VFtrXSxBPU1bMF07QS5taW56b29tJiZ0aGlzLnpvb208TWF0aC5mbG9vcihBLm1pbnpvb20pfHxBLm1heHpvb20mJnRoaXMuem9vbT49QS5tYXh6b29tfHwibm9uZSIhPT1BLnZpc2liaWxpdHkmJihvKE0sdGhpcy56b29tKSwoZFtBLmlkXT1BLmNyZWF0ZUJ1Y2tldCh7aW5kZXg6Yy5idWNrZXRMYXllcklEcy5sZW5ndGgsbGF5ZXJzOk0sem9vbTp0aGlzLnpvb20scGl4ZWxSYXRpbzp0aGlzLnBpeGVsUmF0aW8sb3ZlcnNjYWxpbmc6dGhpcy5vdmVyc2NhbGluZyxjb2xsaXNpb25Cb3hBcnJheTp0aGlzLmNvbGxpc2lvbkJveEFycmF5LHNvdXJjZUxheWVySW5kZXg6eCxzb3VyY2VJRDp0aGlzLnNvdXJjZX0pKS5wb3B1bGF0ZShiLGcpLGMuYnVja2V0TGF5ZXJJRHMucHVzaChNLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZH0pKSl9fX12YXIgUz10Lm1hcE9iamVjdChnLmdseXBoRGVwZW5kZW5jaWVzLGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3Qua2V5cyh0KS5tYXAoTnVtYmVyKX0pO09iamVjdC5rZXlzKFMpLmxlbmd0aD9uLnNlbmQoImdldEdseXBocyIse3VpZDp0aGlzLnVpZCxzdGFja3M6U30sZnVuY3Rpb24odCxlKXt1fHwodT10LGg9ZSxDLmNhbGwocykpfSk6aD17fTt2YXIgRT1PYmplY3Qua2V5cyhnLmljb25EZXBlbmRlbmNpZXMpO0UubGVuZ3RoP24uc2VuZCgiZ2V0SW1hZ2VzIix7aWNvbnM6RX0sZnVuY3Rpb24odCxlKXt1fHwodT10LGY9ZSxDLmNhbGwocykpfSk6Zj17fTt2YXIgTD1PYmplY3Qua2V5cyhnLnBhdHRlcm5EZXBlbmRlbmNpZXMpO2Z1bmN0aW9uIEMoKXtpZih1KXJldHVybiBpKHUpO2lmKGgmJmYmJnApe3ZhciBlPW5ldyBhKGgpLHI9bmV3IHQuSW1hZ2VBdGxhcyhmLHApO2Zvcih2YXIgbiBpbiBkKXt2YXIgcz1kW25dO3MgaW5zdGFuY2VvZiB0LlN5bWJvbEJ1Y2tldD8obyhzLmxheWVycyx0aGlzLnpvb20pLHQucGVyZm9ybVN5bWJvbExheW91dChzLGgsZS5wb3NpdGlvbnMsZixyLmljb25Qb3NpdGlvbnMsdGhpcy5zaG93Q29sbGlzaW9uQm94ZXMpKTpzLmhhc1BhdHRlcm4mJihzIGluc3RhbmNlb2YgdC5MaW5lQnVja2V0fHxzIGluc3RhbmNlb2YgdC5GaWxsQnVja2V0fHxzIGluc3RhbmNlb2YgdC5GaWxsRXh0cnVzaW9uQnVja2V0KSYmKG8ocy5sYXllcnMsdGhpcy56b29tKSxzLmFkZEZlYXR1cmVzKGcsci5wYXR0ZXJuUG9zaXRpb25zKSl9dGhpcy5zdGF0dXM9ImRvbmUiLGkobnVsbCx7YnVja2V0czp0LnZhbHVlcyhkKS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIXQuaXNFbXB0eSgpfSksZmVhdHVyZUluZGV4OmMsY29sbGlzaW9uQm94QXJyYXk6dGhpcy5jb2xsaXNpb25Cb3hBcnJheSxnbHlwaEF0bGFzSW1hZ2U6ZS5pbWFnZSxpbWFnZUF0bGFzOnIsZ2x5cGhNYXA6dGhpcy5yZXR1cm5EZXBlbmRlbmNpZXM/aDpudWxsLGljb25NYXA6dGhpcy5yZXR1cm5EZXBlbmRlbmNpZXM/ZjpudWxsLGdseXBoUG9zaXRpb25zOnRoaXMucmV0dXJuRGVwZW5kZW5jaWVzP2UucG9zaXRpb25zOm51bGx9KX19TC5sZW5ndGg/bi5zZW5kKCJnZXRJbWFnZXMiLHtpY29uczpMfSxmdW5jdGlvbih0LGUpe3V8fCh1PXQscD1lLEMuY2FsbChzKSl9KTpwPXt9LEMuY2FsbCh0aGlzKX07dmFyIHM9InVuZGVmaW5lZCIhPXR5cGVvZiBwZXJmb3JtYW5jZSxsPXtnZXRFbnRyaWVzQnlOYW1lOmZ1bmN0aW9uKHQpe3JldHVybiEhKHMmJnBlcmZvcm1hbmNlJiZwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lKSYmcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZSh0KX0sbWFyazpmdW5jdGlvbih0KXtyZXR1cm4hIShzJiZwZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2UubWFyaykmJnBlcmZvcm1hbmNlLm1hcmsodCl9LG1lYXN1cmU6ZnVuY3Rpb24odCxlLHIpe3JldHVybiEhKHMmJnBlcmZvcm1hbmNlJiZwZXJmb3JtYW5jZS5tZWFzdXJlKSYmcGVyZm9ybWFuY2UubWVhc3VyZSh0LGUscil9LGNsZWFyTWFya3M6ZnVuY3Rpb24odCl7cmV0dXJuISEocyYmcGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLmNsZWFyTWFya3MpJiZwZXJmb3JtYW5jZS5jbGVhck1hcmtzKHQpfSxjbGVhck1lYXN1cmVzOmZ1bmN0aW9uKHQpe3JldHVybiEhKHMmJnBlcmZvcm1hbmNlJiZwZXJmb3JtYW5jZS5jbGVhck1lYXN1cmVzKSYmcGVyZm9ybWFuY2UuY2xlYXJNZWFzdXJlcyh0KX19LGM9ZnVuY3Rpb24odCl7dGhpcy5fbWFya3M9e3N0YXJ0Olt0LnVybCwic3RhcnQiXS5qb2luKCIjIiksZW5kOlt0LnVybCwiZW5kIl0uam9pbigiIyIpLG1lYXN1cmU6dC51cmwudG9TdHJpbmcoKX0sbC5tYXJrKHRoaXMuX21hcmtzLnN0YXJ0KX07ZnVuY3Rpb24gdShlLHIpe3ZhciBuPXQuZ2V0QXJyYXlCdWZmZXIoZS5yZXF1ZXN0LGZ1bmN0aW9uKGUsbixhLGkpe2U/cihlKTpuJiZyKG51bGwse3ZlY3RvclRpbGU6bmV3IHQudmVjdG9yVGlsZS5WZWN0b3JUaWxlKG5ldyB0LnBiZihuKSkscmF3RGF0YTpuLGNhY2hlQ29udHJvbDphLGV4cGlyZXM6aX0pfSk7cmV0dXJuIGZ1bmN0aW9uKCl7bi5jYW5jZWwoKSxyKCl9fWMucHJvdG90eXBlLmZpbmlzaD1mdW5jdGlvbigpe2wubWFyayh0aGlzLl9tYXJrcy5lbmQpO3ZhciB0PWwuZ2V0RW50cmllc0J5TmFtZSh0aGlzLl9tYXJrcy5tZWFzdXJlKTtyZXR1cm4gMD09PXQubGVuZ3RoJiYobC5tZWFzdXJlKHRoaXMuX21hcmtzLm1lYXN1cmUsdGhpcy5fbWFya3Muc3RhcnQsdGhpcy5fbWFya3MuZW5kKSx0PWwuZ2V0RW50cmllc0J5TmFtZSh0aGlzLl9tYXJrcy5tZWFzdXJlKSxsLmNsZWFyTWFya3ModGhpcy5fbWFya3Muc3RhcnQpLGwuY2xlYXJNYXJrcyh0aGlzLl9tYXJrcy5lbmQpLGwuY2xlYXJNZWFzdXJlcyh0aGlzLl9tYXJrcy5tZWFzdXJlKSksdH0sbC5QZXJmb3JtYW5jZT1jO3ZhciBoPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLmFjdG9yPXQsdGhpcy5sYXllckluZGV4PWUsdGhpcy5sb2FkVmVjdG9yRGF0YT1yfHx1LHRoaXMubG9hZGluZz17fSx0aGlzLmxvYWRlZD17fX07aC5wcm90b3R5cGUubG9hZFRpbGU9ZnVuY3Rpb24oZSxyKXt2YXIgbj10aGlzLGE9ZS51aWQ7dGhpcy5sb2FkaW5nfHwodGhpcy5sb2FkaW5nPXt9KTt2YXIgbz0hIShlJiZlLnJlcXVlc3QmJmUucmVxdWVzdC5jb2xsZWN0UmVzb3VyY2VUaW1pbmcpJiZuZXcgbC5QZXJmb3JtYW5jZShlLnJlcXVlc3QpLHM9dGhpcy5sb2FkaW5nW2FdPW5ldyBpKGUpO3MuYWJvcnQ9dGhpcy5sb2FkVmVjdG9yRGF0YShlLGZ1bmN0aW9uKGUsaSl7aWYoZGVsZXRlIG4ubG9hZGluZ1thXSxlfHwhaSlyZXR1cm4gcy5zdGF0dXM9ImRvbmUiLG4ubG9hZGVkW2FdPXMscihlKTt2YXIgbD1pLnJhd0RhdGEsYz17fTtpLmV4cGlyZXMmJihjLmV4cGlyZXM9aS5leHBpcmVzKSxpLmNhY2hlQ29udHJvbCYmKGMuY2FjaGVDb250cm9sPWkuY2FjaGVDb250cm9sKTt2YXIgdT17fTtpZihvKXt2YXIgaD1vLmZpbmlzaCgpO2gmJih1LnJlc291cmNlVGltaW5nPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoaCkpKX1zLnZlY3RvclRpbGU9aS52ZWN0b3JUaWxlLHMucGFyc2UoaS52ZWN0b3JUaWxlLG4ubGF5ZXJJbmRleCxuLmFjdG9yLGZ1bmN0aW9uKGUsbil7aWYoZXx8IW4pcmV0dXJuIHIoZSk7cihudWxsLHQuZXh0ZW5kKHtyYXdUaWxlRGF0YTpsLnNsaWNlKDApfSxuLGMsdSkpfSksbi5sb2FkZWQ9bi5sb2FkZWR8fHt9LG4ubG9hZGVkW2FdPXN9KX0saC5wcm90b3R5cGUucmVsb2FkVGlsZT1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMubG9hZGVkLG49dC51aWQsYT10aGlzO2lmKHImJnJbbl0pe3ZhciBpPXJbbl07aS5zaG93Q29sbGlzaW9uQm94ZXM9dC5zaG93Q29sbGlzaW9uQm94ZXM7dmFyIG89ZnVuY3Rpb24odCxyKXt2YXIgbj1pLnJlbG9hZENhbGxiYWNrO24mJihkZWxldGUgaS5yZWxvYWRDYWxsYmFjayxpLnBhcnNlKGkudmVjdG9yVGlsZSxhLmxheWVySW5kZXgsYS5hY3RvcixuKSksZSh0LHIpfTsicGFyc2luZyI9PT1pLnN0YXR1cz9pLnJlbG9hZENhbGxiYWNrPW86ImRvbmUiPT09aS5zdGF0dXMmJihpLnZlY3RvclRpbGU/aS5wYXJzZShpLnZlY3RvclRpbGUsdGhpcy5sYXllckluZGV4LHRoaXMuYWN0b3Isbyk6bygpKX19LGgucHJvdG90eXBlLmFib3J0VGlsZT1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMubG9hZGluZyxuPXQudWlkO3ImJnJbbl0mJnJbbl0uYWJvcnQmJihyW25dLmFib3J0KCksZGVsZXRlIHJbbl0pLGUoKX0saC5wcm90b3R5cGUucmVtb3ZlVGlsZT1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMubG9hZGVkLG49dC51aWQ7ciYmcltuXSYmZGVsZXRlIHJbbl0sZSgpfTt2YXIgZj1mdW5jdGlvbigpe3RoaXMubG9hZGVkPXt9fTtmLnByb3RvdHlwZS5sb2FkVGlsZT1mdW5jdGlvbihlLHIpe3ZhciBuPWUudWlkLGE9ZS5lbmNvZGluZyxpPWUucmF3SW1hZ2VEYXRhLG89bmV3IHQuREVNRGF0YShuLGksYSk7dGhpcy5sb2FkZWQ9dGhpcy5sb2FkZWR8fHt9LHRoaXMubG9hZGVkW25dPW8scihudWxsLG8pfSxmLnByb3RvdHlwZS5yZW1vdmVUaWxlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubG9hZGVkLHI9dC51aWQ7ZSYmZVtyXSYmZGVsZXRlIGVbcl19O3ZhciBwPXtSQURJVVM6NjM3ODEzNyxGTEFUVEVOSU5HOjEvMjk4LjI1NzIyMzU2MyxQT0xBUl9SQURJVVM6NjM1Njc1Mi4zMTQyfTtmdW5jdGlvbiBkKHQpe3ZhciBlPTA7aWYodCYmdC5sZW5ndGg+MCl7ZSs9TWF0aC5hYnMoZyh0WzBdKSk7Zm9yKHZhciByPTE7cjx0Lmxlbmd0aDtyKyspZS09TWF0aC5hYnMoZyh0W3JdKSl9cmV0dXJuIGV9ZnVuY3Rpb24gZyh0KXt2YXIgZSxyLG4sYSxpLG8scz0wLGw9dC5sZW5ndGg7aWYobD4yKXtmb3Iobz0wO288bDtvKyspbz09PWwtMj8obj1sLTIsYT1sLTEsaT0wKTpvPT09bC0xPyhuPWwtMSxhPTAsaT0xKToobj1vLGE9bysxLGk9bysyKSxlPXRbbl0scj10W2FdLHMrPSh2KHRbaV1bMF0pLXYoZVswXSkpKk1hdGguc2luKHYoclsxXSkpO3M9cypwLlJBRElVUypwLlJBRElVUy8yfXJldHVybiBzfWZ1bmN0aW9uIHYodCl7cmV0dXJuIHQqTWF0aC5QSS8xODB9dmFyIG09e2dlb21ldHJ5OmZ1bmN0aW9uIHQoZSl7dmFyIHIsbj0wO3N3aXRjaChlLnR5cGUpe2Nhc2UiUG9seWdvbiI6cmV0dXJuIGQoZS5jb29yZGluYXRlcyk7Y2FzZSJNdWx0aVBvbHlnb24iOmZvcihyPTA7cjxlLmNvb3JkaW5hdGVzLmxlbmd0aDtyKyspbis9ZChlLmNvb3JkaW5hdGVzW3JdKTtyZXR1cm4gbjtjYXNlIlBvaW50IjpjYXNlIk11bHRpUG9pbnQiOmNhc2UiTGluZVN0cmluZyI6Y2FzZSJNdWx0aUxpbmVTdHJpbmciOnJldHVybiAwO2Nhc2UiR2VvbWV0cnlDb2xsZWN0aW9uIjpmb3Iocj0wO3I8ZS5nZW9tZXRyaWVzLmxlbmd0aDtyKyspbis9dChlLmdlb21ldHJpZXNbcl0pO3JldHVybiBufX0scmluZzpnfTtmdW5jdGlvbiB5KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiB0KHIsZSl9fWZ1bmN0aW9uIHgodCxlKXtlPSEhZSx0WzBdPWIodFswXSxlKTtmb3IodmFyIHI9MTtyPHQubGVuZ3RoO3IrKyl0W3JdPWIodFtyXSwhZSk7cmV0dXJuIHR9ZnVuY3Rpb24gYih0LGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gbS5yaW5nKHQpPj0wfSh0KT09PWU/dDp0LnJldmVyc2UoKX12YXIgXz10LnZlY3RvclRpbGUuVmVjdG9yVGlsZUZlYXR1cmUucHJvdG90eXBlLnRvR2VvSlNPTix3PWZ1bmN0aW9uKGUpe3RoaXMuX2ZlYXR1cmU9ZSx0aGlzLmV4dGVudD10LkVYVEVOVCx0aGlzLnR5cGU9ZS50eXBlLHRoaXMucHJvcGVydGllcz1lLnRhZ3MsImlkImluIGUmJiFpc05hTihlLmlkKSYmKHRoaXMuaWQ9cGFyc2VJbnQoZS5pZCwxMCkpfTt3LnByb3RvdHlwZS5sb2FkR2VvbWV0cnk9ZnVuY3Rpb24oKXtpZigxPT09dGhpcy5fZmVhdHVyZS50eXBlKXtmb3IodmFyIGU9W10scj0wLG49dGhpcy5fZmVhdHVyZS5nZW9tZXRyeTtyPG4ubGVuZ3RoO3IrPTEpe3ZhciBhPW5bcl07ZS5wdXNoKFtuZXcgdC5Qb2ludCQxKGFbMF0sYVsxXSldKX1yZXR1cm4gZX1mb3IodmFyIGk9W10sbz0wLHM9dGhpcy5fZmVhdHVyZS5nZW9tZXRyeTtvPHMubGVuZ3RoO28rPTEpe2Zvcih2YXIgbD1bXSxjPTAsdT1zW29dO2M8dS5sZW5ndGg7Yys9MSl7dmFyIGg9dVtjXTtsLnB1c2gobmV3IHQuUG9pbnQkMShoWzBdLGhbMV0pKX1pLnB1c2gobCl9cmV0dXJuIGl9LHcucHJvdG90eXBlLnRvR2VvSlNPTj1mdW5jdGlvbih0LGUscil7cmV0dXJuIF8uY2FsbCh0aGlzLHQsZSxyKX07dmFyIGs9ZnVuY3Rpb24oZSl7dGhpcy5sYXllcnM9e19nZW9qc29uVGlsZUxheWVyOnRoaXN9LHRoaXMubmFtZT0iX2dlb2pzb25UaWxlTGF5ZXIiLHRoaXMuZXh0ZW50PXQuRVhURU5ULHRoaXMubGVuZ3RoPWUubGVuZ3RoLHRoaXMuX2ZlYXR1cmVzPWV9O2sucHJvdG90eXBlLmZlYXR1cmU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyB3KHRoaXMuX2ZlYXR1cmVzW3RdKX07dmFyIFQ9dC52ZWN0b3JUaWxlLlZlY3RvclRpbGVGZWF0dXJlLE09QTtmdW5jdGlvbiBBKHQsZSl7dGhpcy5vcHRpb25zPWV8fHt9LHRoaXMuZmVhdHVyZXM9dCx0aGlzLmxlbmd0aD10Lmxlbmd0aH1mdW5jdGlvbiBTKHQsZSl7dGhpcy5pZD0ibnVtYmVyIj09dHlwZW9mIHQuaWQ/dC5pZDp2b2lkIDAsdGhpcy50eXBlPXQudHlwZSx0aGlzLnJhd0dlb21ldHJ5PTE9PT10LnR5cGU/W3QuZ2VvbWV0cnldOnQuZ2VvbWV0cnksdGhpcy5wcm9wZXJ0aWVzPXQudGFncyx0aGlzLmV4dGVudD1lfHw0MDk2fUEucHJvdG90eXBlLmZlYXR1cmU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBTKHRoaXMuZmVhdHVyZXNbdF0sdGhpcy5vcHRpb25zLmV4dGVudCl9LFMucHJvdG90eXBlLmxvYWRHZW9tZXRyeT1mdW5jdGlvbigpe3ZhciBlPXRoaXMucmF3R2VvbWV0cnk7dGhpcy5nZW9tZXRyeT1bXTtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7Zm9yKHZhciBuPWVbcl0sYT1bXSxpPTA7aTxuLmxlbmd0aDtpKyspYS5wdXNoKG5ldyB0LlBvaW50JDEobltpXVswXSxuW2ldWzFdKSk7dGhpcy5nZW9tZXRyeS5wdXNoKGEpfXJldHVybiB0aGlzLmdlb21ldHJ5fSxTLnByb3RvdHlwZS5iYm94PWZ1bmN0aW9uKCl7dGhpcy5nZW9tZXRyeXx8dGhpcy5sb2FkR2VvbWV0cnkoKTtmb3IodmFyIHQ9dGhpcy5nZW9tZXRyeSxlPTEvMCxyPS0xLzAsbj0xLzAsYT0tMS8wLGk9MDtpPHQubGVuZ3RoO2krKylmb3IodmFyIG89dFtpXSxzPTA7czxvLmxlbmd0aDtzKyspe3ZhciBsPW9bc107ZT1NYXRoLm1pbihlLGwueCkscj1NYXRoLm1heChyLGwueCksbj1NYXRoLm1pbihuLGwueSksYT1NYXRoLm1heChhLGwueSl9cmV0dXJuW2UsbixyLGFdfSxTLnByb3RvdHlwZS50b0dlb0pTT049VC5wcm90b3R5cGUudG9HZW9KU09OO3ZhciBFPVAsTD1QLEM9TTtmdW5jdGlvbiBQKGUpe3ZhciByPW5ldyB0LnBiZjtyZXR1cm4gZnVuY3Rpb24odCxlKXtmb3IodmFyIHIgaW4gdC5sYXllcnMpZS53cml0ZU1lc3NhZ2UoMyxPLHQubGF5ZXJzW3JdKX0oZSxyKSxyLmZpbmlzaCgpfWZ1bmN0aW9uIE8odCxlKXt2YXIgcjtlLndyaXRlVmFyaW50RmllbGQoMTUsdC52ZXJzaW9ufHwxKSxlLndyaXRlU3RyaW5nRmllbGQoMSx0Lm5hbWV8fCIiKSxlLndyaXRlVmFyaW50RmllbGQoNSx0LmV4dGVudHx8NDA5Nik7dmFyIG49e2tleXM6W10sdmFsdWVzOltdLGtleWNhY2hlOnt9LHZhbHVlY2FjaGU6e319O2ZvcihyPTA7cjx0Lmxlbmd0aDtyKyspbi5mZWF0dXJlPXQuZmVhdHVyZShyKSxlLndyaXRlTWVzc2FnZSgyLHosbik7dmFyIGE9bi5rZXlzO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspZS53cml0ZVN0cmluZ0ZpZWxkKDMsYVtyXSk7dmFyIGk9bi52YWx1ZXM7Zm9yKHI9MDtyPGkubGVuZ3RoO3IrKyllLndyaXRlTWVzc2FnZSg0LEIsaVtyXSl9ZnVuY3Rpb24geih0LGUpe3ZhciByPXQuZmVhdHVyZTt2b2lkIDAhPT1yLmlkJiZlLndyaXRlVmFyaW50RmllbGQoMSxyLmlkKSxlLndyaXRlTWVzc2FnZSgyLEksdCksZS53cml0ZVZhcmludEZpZWxkKDMsci50eXBlKSxlLndyaXRlTWVzc2FnZSg0LEYscil9ZnVuY3Rpb24gSSh0LGUpe3ZhciByPXQuZmVhdHVyZSxuPXQua2V5cyxhPXQudmFsdWVzLGk9dC5rZXljYWNoZSxvPXQudmFsdWVjYWNoZTtmb3IodmFyIHMgaW4gci5wcm9wZXJ0aWVzKXt2YXIgbD1pW3NdO3ZvaWQgMD09PWwmJihuLnB1c2gocyksbD1uLmxlbmd0aC0xLGlbc109bCksZS53cml0ZVZhcmludChsKTt2YXIgYz1yLnByb3BlcnRpZXNbc10sdT10eXBlb2YgYzsic3RyaW5nIiE9PXUmJiJib29sZWFuIiE9PXUmJiJudW1iZXIiIT09dSYmKGM9SlNPTi5zdHJpbmdpZnkoYykpO3ZhciBoPXUrIjoiK2MsZj1vW2hdO3ZvaWQgMD09PWYmJihhLnB1c2goYyksZj1hLmxlbmd0aC0xLG9baF09ZiksZS53cml0ZVZhcmludChmKX19ZnVuY3Rpb24gRCh0LGUpe3JldHVybihlPDwzKSsoNyZ0KX1mdW5jdGlvbiBSKHQpe3JldHVybiB0PDwxXnQ+PjMxfWZ1bmN0aW9uIEYodCxlKXtmb3IodmFyIHI9dC5sb2FkR2VvbWV0cnkoKSxuPXQudHlwZSxhPTAsaT0wLG89ci5sZW5ndGgscz0wO3M8bztzKyspe3ZhciBsPXJbc10sYz0xOzE9PT1uJiYoYz1sLmxlbmd0aCksZS53cml0ZVZhcmludChEKDEsYykpO2Zvcih2YXIgdT0zPT09bj9sLmxlbmd0aC0xOmwubGVuZ3RoLGg9MDtoPHU7aCsrKXsxPT09aCYmMSE9PW4mJmUud3JpdGVWYXJpbnQoRCgyLHUtMSkpO3ZhciBmPWxbaF0ueC1hLHA9bFtoXS55LWk7ZS53cml0ZVZhcmludChSKGYpKSxlLndyaXRlVmFyaW50KFIocCkpLGErPWYsaSs9cH0zPT09biYmZS53cml0ZVZhcmludChEKDcsMSkpfX1mdW5jdGlvbiBCKHQsZSl7dmFyIHI9dHlwZW9mIHQ7InN0cmluZyI9PT1yP2Uud3JpdGVTdHJpbmdGaWVsZCgxLHQpOiJib29sZWFuIj09PXI/ZS53cml0ZUJvb2xlYW5GaWVsZCg3LHQpOiJudW1iZXIiPT09ciYmKHQlMSE9MD9lLndyaXRlRG91YmxlRmllbGQoMyx0KTp0PDA/ZS53cml0ZVNWYXJpbnRGaWVsZCg2LHQpOmUud3JpdGVWYXJpbnRGaWVsZCg1LHQpKX1mdW5jdGlvbiBOKHQsZSxyLG4pe2oodCxyLG4pLGooZSwyKnIsMipuKSxqKGUsMipyKzEsMipuKzEpfWZ1bmN0aW9uIGoodCxlLHIpe3ZhciBuPXRbZV07dFtlXT10W3JdLHRbcl09bn1mdW5jdGlvbiBWKHQsZSxyLG4pe3ZhciBhPXQtcixpPWUtbjtyZXR1cm4gYSphK2kqaX1FLmZyb21WZWN0b3JUaWxlSnM9TCxFLmZyb21HZW9qc29uVnQ9ZnVuY3Rpb24odCxlKXtlPWV8fHt9O3ZhciByPXt9O2Zvcih2YXIgbiBpbiB0KXJbbl09bmV3IE0odFtuXS5mZWF0dXJlcyxlKSxyW25dLm5hbWU9bixyW25dLnZlcnNpb249ZS52ZXJzaW9uLHJbbl0uZXh0ZW50PWUuZXh0ZW50O3JldHVybiBQKHtsYXllcnM6cn0pfSxFLkdlb0pTT05XcmFwcGVyPUM7dmFyIFU9ZnVuY3Rpb24odCl7cmV0dXJuIHRbMF19LHE9ZnVuY3Rpb24odCl7cmV0dXJuIHRbMV19LEg9ZnVuY3Rpb24odCxlLHIsbixhKXt2b2lkIDA9PT1lJiYoZT1VKSx2b2lkIDA9PT1yJiYocj1xKSx2b2lkIDA9PT1uJiYobj02NCksdm9pZCAwPT09YSYmKGE9RmxvYXQ2NEFycmF5KSx0aGlzLm5vZGVTaXplPW4sdGhpcy5wb2ludHM9dDtmb3IodmFyIGk9dC5sZW5ndGg8NjU1MzY/VWludDE2QXJyYXk6VWludDMyQXJyYXksbz10aGlzLmlkcz1uZXcgaSh0Lmxlbmd0aCkscz10aGlzLmNvb3Jkcz1uZXcgYSgyKnQubGVuZ3RoKSxsPTA7bDx0Lmxlbmd0aDtsKyspb1tsXT1sLHNbMipsXT1lKHRbbF0pLHNbMipsKzFdPXIodFtsXSk7IWZ1bmN0aW9uIHQoZSxyLG4sYSxpLG8pe2lmKCEoaS1hPD1uKSl7dmFyIHM9YStpPj4xOyFmdW5jdGlvbiB0KGUscixuLGEsaSxvKXtmb3IoO2k+YTspe2lmKGktYT42MDApe3ZhciBzPWktYSsxLGw9bi1hKzEsYz1NYXRoLmxvZyhzKSx1PS41Kk1hdGguZXhwKDIqYy8zKSxoPS41Kk1hdGguc3FydChjKnUqKHMtdSkvcykqKGwtcy8yPDA/LTE6MSk7dChlLHIsbixNYXRoLm1heChhLE1hdGguZmxvb3Iobi1sKnUvcytoKSksTWF0aC5taW4oaSxNYXRoLmZsb29yKG4rKHMtbCkqdS9zK2gpKSxvKX12YXIgZj1yWzIqbitvXSxwPWEsZD1pO2ZvcihOKGUscixhLG4pLHJbMippK29dPmYmJk4oZSxyLGEsaSk7cDxkOyl7Zm9yKE4oZSxyLHAsZCkscCsrLGQtLTtyWzIqcCtvXTxmOylwKys7Zm9yKDtyWzIqZCtvXT5mOylkLS19clsyKmErb109PT1mP04oZSxyLGEsZCk6TihlLHIsKytkLGkpLGQ8PW4mJihhPWQrMSksbjw9ZCYmKGk9ZC0xKX19KGUscixzLGEsaSxvJTIpLHQoZSxyLG4sYSxzLTEsbysxKSx0KGUscixuLHMrMSxpLG8rMSl9fShvLHMsbiwwLG8ubGVuZ3RoLTEsMCl9O0gucHJvdG90eXBlLnJhbmdlPWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiBmdW5jdGlvbih0LGUscixuLGEsaSxvKXtmb3IodmFyIHMsbCxjPVswLHQubGVuZ3RoLTEsMF0sdT1bXTtjLmxlbmd0aDspe3ZhciBoPWMucG9wKCksZj1jLnBvcCgpLHA9Yy5wb3AoKTtpZihmLXA8PW8pZm9yKHZhciBkPXA7ZDw9ZjtkKyspcz1lWzIqZF0sbD1lWzIqZCsxXSxzPj1yJiZzPD1hJiZsPj1uJiZsPD1pJiZ1LnB1c2godFtkXSk7ZWxzZXt2YXIgZz1NYXRoLmZsb29yKChwK2YpLzIpO3M9ZVsyKmddLGw9ZVsyKmcrMV0scz49ciYmczw9YSYmbD49biYmbDw9aSYmdS5wdXNoKHRbZ10pO3ZhciB2PShoKzEpJTI7KDA9PT1oP3I8PXM6bjw9bCkmJihjLnB1c2gocCksYy5wdXNoKGctMSksYy5wdXNoKHYpKSwoMD09PWg/YT49czppPj1sKSYmKGMucHVzaChnKzEpLGMucHVzaChmKSxjLnB1c2godikpfX1yZXR1cm4gdX0odGhpcy5pZHMsdGhpcy5jb29yZHMsdCxlLHIsbix0aGlzLm5vZGVTaXplKX0sSC5wcm90b3R5cGUud2l0aGluPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZnVuY3Rpb24odCxlLHIsbixhLGkpe2Zvcih2YXIgbz1bMCx0Lmxlbmd0aC0xLDBdLHM9W10sbD1hKmE7by5sZW5ndGg7KXt2YXIgYz1vLnBvcCgpLHU9by5wb3AoKSxoPW8ucG9wKCk7aWYodS1oPD1pKWZvcih2YXIgZj1oO2Y8PXU7ZisrKVYoZVsyKmZdLGVbMipmKzFdLHIsbik8PWwmJnMucHVzaCh0W2ZdKTtlbHNle3ZhciBwPU1hdGguZmxvb3IoKGgrdSkvMiksZD1lWzIqcF0sZz1lWzIqcCsxXTtWKGQsZyxyLG4pPD1sJiZzLnB1c2godFtwXSk7dmFyIHY9KGMrMSklMjsoMD09PWM/ci1hPD1kOm4tYTw9ZykmJihvLnB1c2goaCksby5wdXNoKHAtMSksby5wdXNoKHYpKSwoMD09PWM/cithPj1kOm4rYT49ZykmJihvLnB1c2gocCsxKSxvLnB1c2godSksby5wdXNoKHYpKX19cmV0dXJuIHN9KHRoaXMuaWRzLHRoaXMuY29vcmRzLHQsZSxyLHRoaXMubm9kZVNpemUpfTt2YXIgRz17bWluWm9vbTowLG1heFpvb206MTYscmFkaXVzOjQwLGV4dGVudDo1MTIsbm9kZVNpemU6NjQsbG9nOiExLHJlZHVjZTpudWxsLG1hcDpmdW5jdGlvbih0KXtyZXR1cm4gdH19LFk9ZnVuY3Rpb24odCl7dGhpcy5vcHRpb25zPSQoT2JqZWN0LmNyZWF0ZShHKSx0KSx0aGlzLnRyZWVzPW5ldyBBcnJheSh0aGlzLm9wdGlvbnMubWF4Wm9vbSsxKX07ZnVuY3Rpb24gVyh0LGUscixuLGEpe3JldHVybnt4OnQseTplLHpvb206MS8wLGlkOnIscGFyZW50SWQ6LTEsbnVtUG9pbnRzOm4scHJvcGVydGllczphfX1mdW5jdGlvbiBYKHQsZSl7dmFyIHI9dC5nZW9tZXRyeS5jb29yZGluYXRlcyxuPXJbMF0sYT1yWzFdO3JldHVybnt4OksobikseTpRKGEpLHpvb206MS8wLGluZGV4OmUscGFyZW50SWQ6LTF9fWZ1bmN0aW9uIFoodCl7cmV0dXJue3R5cGU6IkZlYXR1cmUiLGlkOnQuaWQscHJvcGVydGllczpKKHQpLGdlb21ldHJ5Ont0eXBlOiJQb2ludCIsY29vcmRpbmF0ZXM6WyhuPXQueCwzNjAqKG4tLjUpKSwoZT10Lnkscj0oMTgwLTM2MCplKSpNYXRoLlBJLzE4MCwzNjAqTWF0aC5hdGFuKE1hdGguZXhwKHIpKS9NYXRoLlBJLTkwKV19fTt2YXIgZSxyLG59ZnVuY3Rpb24gSih0KXt2YXIgZT10Lm51bVBvaW50cyxyPWU+PTFlND9NYXRoLnJvdW5kKGUvMWUzKSsiayI6ZT49MWUzP01hdGgucm91bmQoZS8xMDApLzEwKyJrIjplO3JldHVybiAkKCQoe30sdC5wcm9wZXJ0aWVzKSx7Y2x1c3RlcjohMCxjbHVzdGVyX2lkOnQuaWQscG9pbnRfY291bnQ6ZSxwb2ludF9jb3VudF9hYmJyZXZpYXRlZDpyfSl9ZnVuY3Rpb24gSyh0KXtyZXR1cm4gdC8zNjArLjV9ZnVuY3Rpb24gUSh0KXt2YXIgZT1NYXRoLnNpbih0Kk1hdGguUEkvMTgwKSxyPS41LS4yNSpNYXRoLmxvZygoMStlKS8oMS1lKSkvTWF0aC5QSTtyZXR1cm4gcjwwPzA6cj4xPzE6cn1mdW5jdGlvbiAkKHQsZSl7Zm9yKHZhciByIGluIGUpdFtyXT1lW3JdO3JldHVybiB0fWZ1bmN0aW9uIHR0KHQpe3JldHVybiB0Lnh9ZnVuY3Rpb24gZXQodCl7cmV0dXJuIHQueX1mdW5jdGlvbiBydCh0LGUscixuLGEsaSl7dmFyIG89YS1yLHM9aS1uO2lmKDAhPT1vfHwwIT09cyl7dmFyIGw9KCh0LXIpKm8rKGUtbikqcykvKG8qbytzKnMpO2w+MT8ocj1hLG49aSk6bD4wJiYocis9bypsLG4rPXMqbCl9cmV0dXJuKG89dC1yKSpvKyhzPWUtbikqc31mdW5jdGlvbiBudCh0LGUscixuKXt2YXIgYT17aWQ6dm9pZCAwPT09dD9udWxsOnQsdHlwZTplLGdlb21ldHJ5OnIsdGFnczpuLG1pblg6MS8wLG1pblk6MS8wLG1heFg6LTEvMCxtYXhZOi0xLzB9O3JldHVybiBmdW5jdGlvbih0KXt2YXIgZT10Lmdlb21ldHJ5LHI9dC50eXBlO2lmKCJQb2ludCI9PT1yfHwiTXVsdGlQb2ludCI9PT1yfHwiTGluZVN0cmluZyI9PT1yKWF0KHQsZSk7ZWxzZSBpZigiUG9seWdvbiI9PT1yfHwiTXVsdGlMaW5lU3RyaW5nIj09PXIpZm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspYXQodCxlW25dKTtlbHNlIGlmKCJNdWx0aVBvbHlnb24iPT09cilmb3Iobj0wO248ZS5sZW5ndGg7bisrKWZvcih2YXIgYT0wO2E8ZVtuXS5sZW5ndGg7YSsrKWF0KHQsZVtuXVthXSl9KGEpLGF9ZnVuY3Rpb24gYXQodCxlKXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrPTMpdC5taW5YPU1hdGgubWluKHQubWluWCxlW3JdKSx0Lm1pblk9TWF0aC5taW4odC5taW5ZLGVbcisxXSksdC5tYXhYPU1hdGgubWF4KHQubWF4WCxlW3JdKSx0Lm1heFk9TWF0aC5tYXgodC5tYXhZLGVbcisxXSl9ZnVuY3Rpb24gaXQodCxlLHIsbil7aWYoZS5nZW9tZXRyeSl7dmFyIGE9ZS5nZW9tZXRyeS5jb29yZGluYXRlcyxpPWUuZ2VvbWV0cnkudHlwZSxvPU1hdGgucG93KHIudG9sZXJhbmNlLygoMTw8ci5tYXhab29tKSpyLmV4dGVudCksMikscz1bXSxsPWUuaWQ7aWYoci5wcm9tb3RlSWQ/bD1lLnByb3BlcnRpZXNbci5wcm9tb3RlSWRdOnIuZ2VuZXJhdGVJZCYmKGw9bnx8MCksIlBvaW50Ij09PWkpb3QoYSxzKTtlbHNlIGlmKCJNdWx0aVBvaW50Ij09PWkpZm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspb3QoYVtjXSxzKTtlbHNlIGlmKCJMaW5lU3RyaW5nIj09PWkpc3QoYSxzLG8sITEpO2Vsc2UgaWYoIk11bHRpTGluZVN0cmluZyI9PT1pKXtpZihyLmxpbmVNZXRyaWNzKXtmb3IoYz0wO2M8YS5sZW5ndGg7YysrKXM9W10sc3QoYVtjXSxzLG8sITEpLHQucHVzaChudChsLCJMaW5lU3RyaW5nIixzLGUucHJvcGVydGllcykpO3JldHVybn1sdChhLHMsbywhMSl9ZWxzZSBpZigiUG9seWdvbiI9PT1pKWx0KGEscyxvLCEwKTtlbHNle2lmKCJNdWx0aVBvbHlnb24iIT09aSl7aWYoIkdlb21ldHJ5Q29sbGVjdGlvbiI9PT1pKXtmb3IoYz0wO2M8ZS5nZW9tZXRyeS5nZW9tZXRyaWVzLmxlbmd0aDtjKyspaXQodCx7aWQ6bCxnZW9tZXRyeTplLmdlb21ldHJ5Lmdlb21ldHJpZXNbY10scHJvcGVydGllczplLnByb3BlcnRpZXN9LHIsbik7cmV0dXJufXRocm93IG5ldyBFcnJvcigiSW5wdXQgZGF0YSBpcyBub3QgYSB2YWxpZCBHZW9KU09OIG9iamVjdC4iKX1mb3IoYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgdT1bXTtsdChhW2NdLHUsbywhMCkscy5wdXNoKHUpfX10LnB1c2gobnQobCxpLHMsZS5wcm9wZXJ0aWVzKSl9fWZ1bmN0aW9uIG90KHQsZSl7ZS5wdXNoKGN0KHRbMF0pKSxlLnB1c2godXQodFsxXSkpLGUucHVzaCgwKX1mdW5jdGlvbiBzdCh0LGUscixuKXtmb3IodmFyIGEsaSxvPTAscz0wO3M8dC5sZW5ndGg7cysrKXt2YXIgbD1jdCh0W3NdWzBdKSxjPXV0KHRbc11bMV0pO2UucHVzaChsKSxlLnB1c2goYyksZS5wdXNoKDApLHM+MCYmKG8rPW4/KGEqYy1sKmkpLzI6TWF0aC5zcXJ0KE1hdGgucG93KGwtYSwyKStNYXRoLnBvdyhjLWksMikpKSxhPWwsaT1jfXZhciB1PWUubGVuZ3RoLTM7ZVsyXT0xLGZ1bmN0aW9uIHQoZSxyLG4sYSl7Zm9yKHZhciBpLG89YSxzPW4tcj4+MSxsPW4tcixjPWVbcl0sdT1lW3IrMV0saD1lW25dLGY9ZVtuKzFdLHA9ciszO3A8bjtwKz0zKXt2YXIgZD1ydChlW3BdLGVbcCsxXSxjLHUsaCxmKTtpZihkPm8paT1wLG89ZDtlbHNlIGlmKGQ9PT1vKXt2YXIgZz1NYXRoLmFicyhwLXMpO2c8bCYmKGk9cCxsPWcpfX1vPmEmJihpLXI+MyYmdChlLHIsaSxhKSxlW2krMl09byxuLWk+MyYmdChlLGksbixhKSl9KGUsMCx1LHIpLGVbdSsyXT0xLGUuc2l6ZT1NYXRoLmFicyhvKSxlLnN0YXJ0PTAsZS5lbmQ9ZS5zaXplfWZ1bmN0aW9uIGx0KHQsZSxyLG4pe2Zvcih2YXIgYT0wO2E8dC5sZW5ndGg7YSsrKXt2YXIgaT1bXTtzdCh0W2FdLGkscixuKSxlLnB1c2goaSl9fWZ1bmN0aW9uIGN0KHQpe3JldHVybiB0LzM2MCsuNX1mdW5jdGlvbiB1dCh0KXt2YXIgZT1NYXRoLnNpbih0Kk1hdGguUEkvMTgwKSxyPS41LS4yNSpNYXRoLmxvZygoMStlKS8oMS1lKSkvTWF0aC5QSTtyZXR1cm4gcjwwPzA6cj4xPzE6cn1mdW5jdGlvbiBodCh0LGUscixuLGEsaSxvLHMpe2lmKG4vPWUsaT49KHIvPWUpJiZvPG4pcmV0dXJuIHQ7aWYobzxyfHxpPj1uKXJldHVybiBudWxsO2Zvcih2YXIgbD1bXSxjPTA7Yzx0Lmxlbmd0aDtjKyspe3ZhciB1PXRbY10saD11Lmdlb21ldHJ5LGY9dS50eXBlLHA9MD09PWE/dS5taW5YOnUubWluWSxkPTA9PT1hP3UubWF4WDp1Lm1heFk7aWYocD49ciYmZDxuKWwucHVzaCh1KTtlbHNlIGlmKCEoZDxyfHxwPj1uKSl7dmFyIGc9W107aWYoIlBvaW50Ij09PWZ8fCJNdWx0aVBvaW50Ij09PWYpZnQoaCxnLHIsbixhKTtlbHNlIGlmKCJMaW5lU3RyaW5nIj09PWYpcHQoaCxnLHIsbixhLCExLHMubGluZU1ldHJpY3MpO2Vsc2UgaWYoIk11bHRpTGluZVN0cmluZyI9PT1mKWd0KGgsZyxyLG4sYSwhMSk7ZWxzZSBpZigiUG9seWdvbiI9PT1mKWd0KGgsZyxyLG4sYSwhMCk7ZWxzZSBpZigiTXVsdGlQb2x5Z29uIj09PWYpZm9yKHZhciB2PTA7djxoLmxlbmd0aDt2Kyspe3ZhciBtPVtdO2d0KGhbdl0sbSxyLG4sYSwhMCksbS5sZW5ndGgmJmcucHVzaChtKX1pZihnLmxlbmd0aCl7aWYocy5saW5lTWV0cmljcyYmIkxpbmVTdHJpbmciPT09Zil7Zm9yKHY9MDt2PGcubGVuZ3RoO3YrKylsLnB1c2gobnQodS5pZCxmLGdbdl0sdS50YWdzKSk7Y29udGludWV9IkxpbmVTdHJpbmciIT09ZiYmIk11bHRpTGluZVN0cmluZyIhPT1mfHwoMT09PWcubGVuZ3RoPyhmPSJMaW5lU3RyaW5nIixnPWdbMF0pOmY9Ik11bHRpTGluZVN0cmluZyIpLCJQb2ludCIhPT1mJiYiTXVsdGlQb2ludCIhPT1mfHwoZj0zPT09Zy5sZW5ndGg/IlBvaW50IjoiTXVsdGlQb2ludCIpLGwucHVzaChudCh1LmlkLGYsZyx1LnRhZ3MpKX19fXJldHVybiBsLmxlbmd0aD9sOm51bGx9ZnVuY3Rpb24gZnQodCxlLHIsbixhKXtmb3IodmFyIGk9MDtpPHQubGVuZ3RoO2krPTMpe3ZhciBvPXRbaSthXTtvPj1yJiZvPD1uJiYoZS5wdXNoKHRbaV0pLGUucHVzaCh0W2krMV0pLGUucHVzaCh0W2krMl0pKX19ZnVuY3Rpb24gcHQodCxlLHIsbixhLGksbyl7Zm9yKHZhciBzLGwsYz1kdCh0KSx1PTA9PT1hP210Onl0LGg9dC5zdGFydCxmPTA7Zjx0Lmxlbmd0aC0zO2YrPTMpe3ZhciBwPXRbZl0sZD10W2YrMV0sZz10W2YrMl0sdj10W2YrM10sbT10W2YrNF0seT0wPT09YT9wOmQseD0wPT09YT92Om0sYj0hMTtvJiYocz1NYXRoLnNxcnQoTWF0aC5wb3cocC12LDIpK01hdGgucG93KGQtbSwyKSkpLHk8cj94PnImJihsPXUoYyxwLGQsdixtLHIpLG8mJihjLnN0YXJ0PWgrcypsKSk6eT5uP3g8biYmKGw9dShjLHAsZCx2LG0sbiksbyYmKGMuc3RhcnQ9aCtzKmwpKTp2dChjLHAsZCxnKSx4PHImJnk+PXImJihsPXUoYyxwLGQsdixtLHIpLGI9ITApLHg+biYmeTw9biYmKGw9dShjLHAsZCx2LG0sbiksYj0hMCksIWkmJmImJihvJiYoYy5lbmQ9aCtzKmwpLGUucHVzaChjKSxjPWR0KHQpKSxvJiYoaCs9cyl9dmFyIF89dC5sZW5ndGgtMztwPXRbX10sZD10W18rMV0sZz10W18rMl0sKHk9MD09PWE/cDpkKT49ciYmeTw9biYmdnQoYyxwLGQsZyksXz1jLmxlbmd0aC0zLGkmJl8+PTMmJihjW19dIT09Y1swXXx8Y1tfKzFdIT09Y1sxXSkmJnZ0KGMsY1swXSxjWzFdLGNbMl0pLGMubGVuZ3RoJiZlLnB1c2goYyl9ZnVuY3Rpb24gZHQodCl7dmFyIGU9W107cmV0dXJuIGUuc2l6ZT10LnNpemUsZS5zdGFydD10LnN0YXJ0LGUuZW5kPXQuZW5kLGV9ZnVuY3Rpb24gZ3QodCxlLHIsbixhLGkpe2Zvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXB0KHRbb10sZSxyLG4sYSxpLCExKX1mdW5jdGlvbiB2dCh0LGUscixuKXt0LnB1c2goZSksdC5wdXNoKHIpLHQucHVzaChuKX1mdW5jdGlvbiBtdCh0LGUscixuLGEsaSl7dmFyIG89KGktZSkvKG4tZSk7cmV0dXJuIHQucHVzaChpKSx0LnB1c2gocisoYS1yKSpvKSx0LnB1c2goMSksb31mdW5jdGlvbiB5dCh0LGUscixuLGEsaSl7dmFyIG89KGktcikvKGEtcik7cmV0dXJuIHQucHVzaChlKyhuLWUpKm8pLHQucHVzaChpKSx0LnB1c2goMSksb31mdW5jdGlvbiB4dCh0LGUpe2Zvcih2YXIgcj1bXSxuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBhLGk9dFtuXSxvPWkudHlwZTtpZigiUG9pbnQiPT09b3x8Ik11bHRpUG9pbnQiPT09b3x8IkxpbmVTdHJpbmciPT09bylhPWJ0KGkuZ2VvbWV0cnksZSk7ZWxzZSBpZigiTXVsdGlMaW5lU3RyaW5nIj09PW98fCJQb2x5Z29uIj09PW8pe2E9W107Zm9yKHZhciBzPTA7czxpLmdlb21ldHJ5Lmxlbmd0aDtzKyspYS5wdXNoKGJ0KGkuZ2VvbWV0cnlbc10sZSkpfWVsc2UgaWYoIk11bHRpUG9seWdvbiI9PT1vKWZvcihhPVtdLHM9MDtzPGkuZ2VvbWV0cnkubGVuZ3RoO3MrKyl7Zm9yKHZhciBsPVtdLGM9MDtjPGkuZ2VvbWV0cnlbc10ubGVuZ3RoO2MrKylsLnB1c2goYnQoaS5nZW9tZXRyeVtzXVtjXSxlKSk7YS5wdXNoKGwpfXIucHVzaChudChpLmlkLG8sYSxpLnRhZ3MpKX1yZXR1cm4gcn1mdW5jdGlvbiBidCh0LGUpe3ZhciByPVtdO3Iuc2l6ZT10LnNpemUsdm9pZCAwIT09dC5zdGFydCYmKHIuc3RhcnQ9dC5zdGFydCxyLmVuZD10LmVuZCk7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKz0zKXIucHVzaCh0W25dK2UsdFtuKzFdLHRbbisyXSk7cmV0dXJuIHJ9ZnVuY3Rpb24gX3QodCxlKXtpZih0LnRyYW5zZm9ybWVkKXJldHVybiB0O3ZhciByLG4sYSxpPTE8PHQueixvPXQueCxzPXQueTtmb3Iocj0wO3I8dC5mZWF0dXJlcy5sZW5ndGg7cisrKXt2YXIgbD10LmZlYXR1cmVzW3JdLGM9bC5nZW9tZXRyeSx1PWwudHlwZTtpZihsLmdlb21ldHJ5PVtdLDE9PT11KWZvcihuPTA7bjxjLmxlbmd0aDtuKz0yKWwuZ2VvbWV0cnkucHVzaCh3dChjW25dLGNbbisxXSxlLGksbyxzKSk7ZWxzZSBmb3Iobj0wO248Yy5sZW5ndGg7bisrKXt2YXIgaD1bXTtmb3IoYT0wO2E8Y1tuXS5sZW5ndGg7YSs9MiloLnB1c2god3QoY1tuXVthXSxjW25dW2ErMV0sZSxpLG8scykpO2wuZ2VvbWV0cnkucHVzaChoKX19cmV0dXJuIHQudHJhbnNmb3JtZWQ9ITAsdH1mdW5jdGlvbiB3dCh0LGUscixuLGEsaSl7cmV0dXJuW01hdGgucm91bmQocioodCpuLWEpKSxNYXRoLnJvdW5kKHIqKGUqbi1pKSldfWZ1bmN0aW9uIGt0KHQsZSxyLG4sYSl7Zm9yKHZhciBpPWU9PT1hLm1heFpvb20/MDphLnRvbGVyYW5jZS8oKDE8PGUpKmEuZXh0ZW50KSxvPXtmZWF0dXJlczpbXSxudW1Qb2ludHM6MCxudW1TaW1wbGlmaWVkOjAsbnVtRmVhdHVyZXM6MCxzb3VyY2U6bnVsbCx4OnIseTpuLHo6ZSx0cmFuc2Zvcm1lZDohMSxtaW5YOjIsbWluWToxLG1heFg6LTEsbWF4WTowfSxzPTA7czx0Lmxlbmd0aDtzKyspe28ubnVtRmVhdHVyZXMrKyxUdChvLHRbc10saSxhKTt2YXIgbD10W3NdLm1pblgsYz10W3NdLm1pblksdT10W3NdLm1heFgsaD10W3NdLm1heFk7bDxvLm1pblgmJihvLm1pblg9bCksYzxvLm1pblkmJihvLm1pblk9YyksdT5vLm1heFgmJihvLm1heFg9dSksaD5vLm1heFkmJihvLm1heFk9aCl9cmV0dXJuIG99ZnVuY3Rpb24gVHQodCxlLHIsbil7dmFyIGE9ZS5nZW9tZXRyeSxpPWUudHlwZSxvPVtdO2lmKCJQb2ludCI9PT1pfHwiTXVsdGlQb2ludCI9PT1pKWZvcih2YXIgcz0wO3M8YS5sZW5ndGg7cys9MylvLnB1c2goYVtzXSksby5wdXNoKGFbcysxXSksdC5udW1Qb2ludHMrKyx0Lm51bVNpbXBsaWZpZWQrKztlbHNlIGlmKCJMaW5lU3RyaW5nIj09PWkpTXQobyxhLHQsciwhMSwhMSk7ZWxzZSBpZigiTXVsdGlMaW5lU3RyaW5nIj09PWl8fCJQb2x5Z29uIj09PWkpZm9yKHM9MDtzPGEubGVuZ3RoO3MrKylNdChvLGFbc10sdCxyLCJQb2x5Z29uIj09PWksMD09PXMpO2Vsc2UgaWYoIk11bHRpUG9seWdvbiI9PT1pKWZvcih2YXIgbD0wO2w8YS5sZW5ndGg7bCsrKXt2YXIgYz1hW2xdO2ZvcihzPTA7czxjLmxlbmd0aDtzKyspTXQobyxjW3NdLHQsciwhMCwwPT09cyl9aWYoby5sZW5ndGgpe3ZhciB1PWUudGFnc3x8bnVsbDtpZigiTGluZVN0cmluZyI9PT1pJiZuLmxpbmVNZXRyaWNzKXtmb3IodmFyIGggaW4gdT17fSxlLnRhZ3MpdVtoXT1lLnRhZ3NbaF07dS5tYXBib3hfY2xpcF9zdGFydD1hLnN0YXJ0L2Euc2l6ZSx1Lm1hcGJveF9jbGlwX2VuZD1hLmVuZC9hLnNpemV9dmFyIGY9e2dlb21ldHJ5Om8sdHlwZToiUG9seWdvbiI9PT1pfHwiTXVsdGlQb2x5Z29uIj09PWk/MzoiTGluZVN0cmluZyI9PT1pfHwiTXVsdGlMaW5lU3RyaW5nIj09PWk/MjoxLHRhZ3M6dX07bnVsbCE9PWUuaWQmJihmLmlkPWUuaWQpLHQuZmVhdHVyZXMucHVzaChmKX19ZnVuY3Rpb24gTXQodCxlLHIsbixhLGkpe3ZhciBvPW4qbjtpZihuPjAmJmUuc2l6ZTwoYT9vOm4pKXIubnVtUG9pbnRzKz1lLmxlbmd0aC8zO2Vsc2V7Zm9yKHZhciBzPVtdLGw9MDtsPGUubGVuZ3RoO2wrPTMpKDA9PT1ufHxlW2wrMl0+bykmJihyLm51bVNpbXBsaWZpZWQrKyxzLnB1c2goZVtsXSkscy5wdXNoKGVbbCsxXSkpLHIubnVtUG9pbnRzKys7YSYmZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MCxuPTAsYT10Lmxlbmd0aCxpPWEtMjtuPGE7aT1uLG4rPTIpcis9KHRbbl0tdFtpXSkqKHRbbisxXSt0W2krMV0pO2lmKHI+MD09PWUpZm9yKG49MCxhPXQubGVuZ3RoO248YS8yO24rPTIpe3ZhciBvPXRbbl0scz10W24rMV07dFtuXT10W2EtMi1uXSx0W24rMV09dFthLTEtbl0sdFthLTItbl09byx0W2EtMS1uXT1zfX0ocyxpKSx0LnB1c2gocyl9fWZ1bmN0aW9uIEF0KHQsZSl7dmFyIHI9KGU9dGhpcy5vcHRpb25zPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByIGluIGUpdFtyXT1lW3JdO3JldHVybiB0fShPYmplY3QuY3JlYXRlKHRoaXMub3B0aW9ucyksZSkpLmRlYnVnO2lmKHImJmNvbnNvbGUudGltZSgicHJlcHJvY2VzcyBkYXRhIiksZS5tYXhab29tPDB8fGUubWF4Wm9vbT4yNCl0aHJvdyBuZXcgRXJyb3IoIm1heFpvb20gc2hvdWxkIGJlIGluIHRoZSAwLTI0IHJhbmdlIik7aWYoZS5wcm9tb3RlSWQmJmUuZ2VuZXJhdGVJZCl0aHJvdyBuZXcgRXJyb3IoInByb21vdGVJZCBhbmQgZ2VuZXJhdGVJZCBjYW5ub3QgYmUgdXNlZCB0b2dldGhlci4iKTt2YXIgbj1mdW5jdGlvbih0LGUpe3ZhciByPVtdO2lmKCJGZWF0dXJlQ29sbGVjdGlvbiI9PT10LnR5cGUpZm9yKHZhciBuPTA7bjx0LmZlYXR1cmVzLmxlbmd0aDtuKyspaXQocix0LmZlYXR1cmVzW25dLGUsbik7ZWxzZSJGZWF0dXJlIj09PXQudHlwZT9pdChyLHQsZSk6aXQocix7Z2VvbWV0cnk6dH0sZSk7cmV0dXJuIHJ9KHQsZSk7dGhpcy50aWxlcz17fSx0aGlzLnRpbGVDb29yZHM9W10sciYmKGNvbnNvbGUudGltZUVuZCgicHJlcHJvY2VzcyBkYXRhIiksY29uc29sZS5sb2coImluZGV4OiBtYXhab29tOiAlZCwgbWF4UG9pbnRzOiAlZCIsZS5pbmRleE1heFpvb20sZS5pbmRleE1heFBvaW50cyksY29uc29sZS50aW1lKCJnZW5lcmF0ZSB0aWxlcyIpLHRoaXMuc3RhdHM9e30sdGhpcy50b3RhbD0wKSwobj1mdW5jdGlvbih0LGUpe3ZhciByPWUuYnVmZmVyL2UuZXh0ZW50LG49dCxhPWh0KHQsMSwtMS1yLHIsMCwtMSwyLGUpLGk9aHQodCwxLDEtciwyK3IsMCwtMSwyLGUpO3JldHVybihhfHxpKSYmKG49aHQodCwxLC1yLDErciwwLC0xLDIsZSl8fFtdLGEmJihuPXh0KGEsMSkuY29uY2F0KG4pKSxpJiYobj1uLmNvbmNhdCh4dChpLC0xKSkpKSxufShuLGUpKS5sZW5ndGgmJnRoaXMuc3BsaXRUaWxlKG4sMCwwLDApLHImJihuLmxlbmd0aCYmY29uc29sZS5sb2coImZlYXR1cmVzOiAlZCwgcG9pbnRzOiAlZCIsdGhpcy50aWxlc1swXS5udW1GZWF0dXJlcyx0aGlzLnRpbGVzWzBdLm51bVBvaW50cyksY29uc29sZS50aW1lRW5kKCJnZW5lcmF0ZSB0aWxlcyIpLGNvbnNvbGUubG9nKCJ0aWxlcyBnZW5lcmF0ZWQ6Iix0aGlzLnRvdGFsLEpTT04uc3RyaW5naWZ5KHRoaXMuc3RhdHMpKSl9ZnVuY3Rpb24gU3QodCxlLHIpe3JldHVybiAzMiooKDE8PHQpKnIrZSkrdH1mdW5jdGlvbiBFdCh0LGUpe3ZhciByPXQudGlsZUlELmNhbm9uaWNhbDtpZighdGhpcy5fZ2VvSlNPTkluZGV4KXJldHVybiBlKG51bGwsbnVsbCk7dmFyIG49dGhpcy5fZ2VvSlNPTkluZGV4LmdldFRpbGUoci56LHIueCxyLnkpO2lmKCFuKXJldHVybiBlKG51bGwsbnVsbCk7dmFyIGE9bmV3IGsobi5mZWF0dXJlcyksaT1FKGEpOzA9PT1pLmJ5dGVPZmZzZXQmJmkuYnl0ZUxlbmd0aD09PWkuYnVmZmVyLmJ5dGVMZW5ndGh8fChpPW5ldyBVaW50OEFycmF5KGkpKSxlKG51bGwse3ZlY3RvclRpbGU6YSxyYXdEYXRhOmkuYnVmZmVyfSl9WS5wcm90b3R5cGUubG9hZD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLm9wdGlvbnMscj1lLmxvZyxuPWUubWluWm9vbSxhPWUubWF4Wm9vbSxpPWUubm9kZVNpemU7ciYmY29uc29sZS50aW1lKCJ0b3RhbCB0aW1lIik7dmFyIG89InByZXBhcmUgIit0Lmxlbmd0aCsiIHBvaW50cyI7ciYmY29uc29sZS50aW1lKG8pLHRoaXMucG9pbnRzPXQ7Zm9yKHZhciBzPVtdLGw9MDtsPHQubGVuZ3RoO2wrKyl0W2xdLmdlb21ldHJ5JiZzLnB1c2goWCh0W2xdLGwpKTt0aGlzLnRyZWVzW2ErMV09bmV3IEgocyx0dCxldCxpLEZsb2F0MzJBcnJheSksciYmY29uc29sZS50aW1lRW5kKG8pO2Zvcih2YXIgYz1hO2M+PW47Yy0tKXt2YXIgdT0rRGF0ZS5ub3coKTtzPXRoaXMuX2NsdXN0ZXIocyxjKSx0aGlzLnRyZWVzW2NdPW5ldyBIKHMsdHQsZXQsaSxGbG9hdDMyQXJyYXkpLHImJmNvbnNvbGUubG9nKCJ6JWQ6ICVkIGNsdXN0ZXJzIGluICVkbXMiLGMscy5sZW5ndGgsK0RhdGUubm93KCktdSl9cmV0dXJuIHImJmNvbnNvbGUudGltZUVuZCgidG90YWwgdGltZSIpLHRoaXN9LFkucHJvdG90eXBlLmdldENsdXN0ZXJzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9KCh0WzBdKzE4MCklMzYwKzM2MCklMzYwLTE4MCxuPU1hdGgubWF4KC05MCxNYXRoLm1pbig5MCx0WzFdKSksYT0xODA9PT10WzJdPzE4MDooKHRbMl0rMTgwKSUzNjArMzYwKSUzNjAtMTgwLGk9TWF0aC5tYXgoLTkwLE1hdGgubWluKDkwLHRbM10pKTtpZih0WzJdLXRbMF0+PTM2MClyPS0xODAsYT0xODA7ZWxzZSBpZihyPmEpe3ZhciBvPXRoaXMuZ2V0Q2x1c3RlcnMoW3IsbiwxODAsaV0sZSkscz10aGlzLmdldENsdXN0ZXJzKFstMTgwLG4sYSxpXSxlKTtyZXR1cm4gby5jb25jYXQocyl9Zm9yKHZhciBsPXRoaXMudHJlZXNbdGhpcy5fbGltaXRab29tKGUpXSxjPVtdLHU9MCxoPWwucmFuZ2UoSyhyKSxRKGkpLEsoYSksUShuKSk7dTxoLmxlbmd0aDt1Kz0xKXt2YXIgZj1oW3VdLHA9bC5wb2ludHNbZl07Yy5wdXNoKHAubnVtUG9pbnRzP1oocCk6dGhpcy5wb2ludHNbcC5pbmRleF0pfXJldHVybiBjfSxZLnByb3RvdHlwZS5nZXRDaGlsZHJlbj1mdW5jdGlvbih0KXt2YXIgZT10Pj41LHI9dCUzMixuPSJObyBjbHVzdGVyIHdpdGggdGhlIHNwZWNpZmllZCBpZC4iLGE9dGhpcy50cmVlc1tyXTtpZighYSl0aHJvdyBuZXcgRXJyb3Iobik7dmFyIGk9YS5wb2ludHNbZV07aWYoIWkpdGhyb3cgbmV3IEVycm9yKG4pO2Zvcih2YXIgbz10aGlzLm9wdGlvbnMucmFkaXVzLyh0aGlzLm9wdGlvbnMuZXh0ZW50Kk1hdGgucG93KDIsci0xKSkscz1bXSxsPTAsYz1hLndpdGhpbihpLngsaS55LG8pO2w8Yy5sZW5ndGg7bCs9MSl7dmFyIHU9Y1tsXSxoPWEucG9pbnRzW3VdO2gucGFyZW50SWQ9PT10JiZzLnB1c2goaC5udW1Qb2ludHM/WihoKTp0aGlzLnBvaW50c1toLmluZGV4XSl9aWYoMD09PXMubGVuZ3RoKXRocm93IG5ldyBFcnJvcihuKTtyZXR1cm4gc30sWS5wcm90b3R5cGUuZ2V0TGVhdmVzPWZ1bmN0aW9uKHQsZSxyKXtlPWV8fDEwLHI9cnx8MDt2YXIgbj1bXTtyZXR1cm4gdGhpcy5fYXBwZW5kTGVhdmVzKG4sdCxlLHIsMCksbn0sWS5wcm90b3R5cGUuZ2V0VGlsZT1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy50cmVlc1t0aGlzLl9saW1pdFpvb20odCldLGE9TWF0aC5wb3coMix0KSxpPXRoaXMub3B0aW9ucyxvPWkuZXh0ZW50LHM9aS5yYWRpdXMvbyxsPShyLXMpL2EsYz0ocisxK3MpL2EsdT17ZmVhdHVyZXM6W119O3JldHVybiB0aGlzLl9hZGRUaWxlRmVhdHVyZXMobi5yYW5nZSgoZS1zKS9hLGwsKGUrMStzKS9hLGMpLG4ucG9pbnRzLGUscixhLHUpLDA9PT1lJiZ0aGlzLl9hZGRUaWxlRmVhdHVyZXMobi5yYW5nZSgxLXMvYSxsLDEsYyksbi5wb2ludHMsYSxyLGEsdSksZT09PWEtMSYmdGhpcy5fYWRkVGlsZUZlYXR1cmVzKG4ucmFuZ2UoMCxsLHMvYSxjKSxuLnBvaW50cywtMSxyLGEsdSksdS5mZWF0dXJlcy5sZW5ndGg/dTpudWxsfSxZLnByb3RvdHlwZS5nZXRDbHVzdGVyRXhwYW5zaW9uWm9vbT1mdW5jdGlvbih0KXtmb3IodmFyIGU9dCUzMi0xO2U8PXRoaXMub3B0aW9ucy5tYXhab29tOyl7dmFyIHI9dGhpcy5nZXRDaGlsZHJlbih0KTtpZihlKyssMSE9PXIubGVuZ3RoKWJyZWFrO3Q9clswXS5wcm9wZXJ0aWVzLmNsdXN0ZXJfaWR9cmV0dXJuIGV9LFkucHJvdG90eXBlLl9hcHBlbmRMZWF2ZXM9ZnVuY3Rpb24odCxlLHIsbixhKXtmb3IodmFyIGk9MCxvPXRoaXMuZ2V0Q2hpbGRyZW4oZSk7aTxvLmxlbmd0aDtpKz0xKXt2YXIgcz1vW2ldLGw9cy5wcm9wZXJ0aWVzO2lmKGwmJmwuY2x1c3Rlcj9hK2wucG9pbnRfY291bnQ8PW4/YSs9bC5wb2ludF9jb3VudDphPXRoaXMuX2FwcGVuZExlYXZlcyh0LGwuY2x1c3Rlcl9pZCxyLG4sYSk6YTxuP2ErKzp0LnB1c2gocyksdC5sZW5ndGg9PT1yKWJyZWFrfXJldHVybiBhfSxZLnByb3RvdHlwZS5fYWRkVGlsZUZlYXR1cmVzPWZ1bmN0aW9uKHQsZSxyLG4sYSxpKXtmb3IodmFyIG89MCxzPXQ7bzxzLmxlbmd0aDtvKz0xKXt2YXIgbD1lW3Nbb11dLGM9e3R5cGU6MSxnZW9tZXRyeTpbW01hdGgucm91bmQodGhpcy5vcHRpb25zLmV4dGVudCoobC54KmEtcikpLE1hdGgucm91bmQodGhpcy5vcHRpb25zLmV4dGVudCoobC55KmEtbikpXV0sdGFnczpsLm51bVBvaW50cz9KKGwpOnRoaXMucG9pbnRzW2wuaW5kZXhdLnByb3BlcnRpZXN9LHU9bC5udW1Qb2ludHM/bC5pZDp0aGlzLnBvaW50c1tsLmluZGV4XS5pZDt2b2lkIDAhPT11JiYoYy5pZD11KSxpLmZlYXR1cmVzLnB1c2goYyl9fSxZLnByb3RvdHlwZS5fbGltaXRab29tPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1heCh0aGlzLm9wdGlvbnMubWluWm9vbSxNYXRoLm1pbih0LHRoaXMub3B0aW9ucy5tYXhab29tKzEpKX0sWS5wcm90b3R5cGUuX2NsdXN0ZXI9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9W10sbj10aGlzLm9wdGlvbnMsYT1uLnJhZGl1cyxpPW4uZXh0ZW50LG89bi5yZWR1Y2Uscz1hLyhpKk1hdGgucG93KDIsZSkpLGw9MDtsPHQubGVuZ3RoO2wrKyl7dmFyIGM9dFtsXTtpZighKGMuem9vbTw9ZSkpe2Muem9vbT1lO2Zvcih2YXIgdT10aGlzLnRyZWVzW2UrMV0saD11LndpdGhpbihjLngsYy55LHMpLGY9Yy5udW1Qb2ludHN8fDEscD1jLngqZixkPWMueSpmLGc9byYmZj4xP3RoaXMuX21hcChjLCEwKTpudWxsLHY9KGw8PDUpKyhlKzEpLG09MCx5PWg7bTx5Lmxlbmd0aDttKz0xKXt2YXIgeD15W21dLGI9dS5wb2ludHNbeF07aWYoIShiLnpvb208PWUpKXtiLnpvb209ZTt2YXIgXz1iLm51bVBvaW50c3x8MTtwKz1iLngqXyxkKz1iLnkqXyxmKz1fLGIucGFyZW50SWQ9dixvJiYoZ3x8KGc9dGhpcy5fbWFwKGMsITApKSxvKGcsdGhpcy5fbWFwKGIpKSl9fTE9PT1mP3IucHVzaChjKTooYy5wYXJlbnRJZD12LHIucHVzaChXKHAvZixkL2YsdixmLGcpKSl9fXJldHVybiByfSxZLnByb3RvdHlwZS5fbWFwPWZ1bmN0aW9uKHQsZSl7aWYodC5udW1Qb2ludHMpcmV0dXJuIGU/JCh7fSx0LnByb3BlcnRpZXMpOnQucHJvcGVydGllczt2YXIgcj10aGlzLnBvaW50c1t0LmluZGV4XS5wcm9wZXJ0aWVzLG49dGhpcy5vcHRpb25zLm1hcChyKTtyZXR1cm4gZSYmbj09PXI/JCh7fSxuKTpufSxBdC5wcm90b3R5cGUub3B0aW9ucz17bWF4Wm9vbToxNCxpbmRleE1heFpvb206NSxpbmRleE1heFBvaW50czoxZTUsdG9sZXJhbmNlOjMsZXh0ZW50OjQwOTYsYnVmZmVyOjY0LGxpbmVNZXRyaWNzOiExLHByb21vdGVJZDpudWxsLGdlbmVyYXRlSWQ6ITEsZGVidWc6MH0sQXQucHJvdG90eXBlLnNwbGl0VGlsZT1mdW5jdGlvbih0LGUscixuLGEsaSxvKXtmb3IodmFyIHM9W3QsZSxyLG5dLGw9dGhpcy5vcHRpb25zLGM9bC5kZWJ1ZztzLmxlbmd0aDspe249cy5wb3AoKSxyPXMucG9wKCksZT1zLnBvcCgpLHQ9cy5wb3AoKTt2YXIgdT0xPDxlLGg9U3QoZSxyLG4pLGY9dGhpcy50aWxlc1toXTtpZighZiYmKGM+MSYmY29uc29sZS50aW1lKCJjcmVhdGlvbiIpLGY9dGhpcy50aWxlc1toXT1rdCh0LGUscixuLGwpLHRoaXMudGlsZUNvb3Jkcy5wdXNoKHt6OmUseDpyLHk6bn0pLGMpKXtjPjEmJihjb25zb2xlLmxvZygidGlsZSB6JWQtJWQtJWQgKGZlYXR1cmVzOiAlZCwgcG9pbnRzOiAlZCwgc2ltcGxpZmllZDogJWQpIixlLHIsbixmLm51bUZlYXR1cmVzLGYubnVtUG9pbnRzLGYubnVtU2ltcGxpZmllZCksY29uc29sZS50aW1lRW5kKCJjcmVhdGlvbiIpKTt2YXIgcD0ieiIrZTt0aGlzLnN0YXRzW3BdPSh0aGlzLnN0YXRzW3BdfHwwKSsxLHRoaXMudG90YWwrK31pZihmLnNvdXJjZT10LGEpe2lmKGU9PT1sLm1heFpvb218fGU9PT1hKWNvbnRpbnVlO3ZhciBkPTE8PGEtZTtpZihyIT09TWF0aC5mbG9vcihpL2QpfHxuIT09TWF0aC5mbG9vcihvL2QpKWNvbnRpbnVlfWVsc2UgaWYoZT09PWwuaW5kZXhNYXhab29tfHxmLm51bVBvaW50czw9bC5pbmRleE1heFBvaW50cyljb250aW51ZTtpZihmLnNvdXJjZT1udWxsLDAhPT10Lmxlbmd0aCl7Yz4xJiZjb25zb2xlLnRpbWUoImNsaXBwaW5nIik7dmFyIGcsdixtLHkseCxiLF89LjUqbC5idWZmZXIvbC5leHRlbnQsdz0uNS1fLGs9LjUrXyxUPTErXztnPXY9bT15PW51bGwseD1odCh0LHUsci1fLHIraywwLGYubWluWCxmLm1heFgsbCksYj1odCh0LHUscit3LHIrVCwwLGYubWluWCxmLm1heFgsbCksdD1udWxsLHgmJihnPWh0KHgsdSxuLV8sbitrLDEsZi5taW5ZLGYubWF4WSxsKSx2PWh0KHgsdSxuK3csbitULDEsZi5taW5ZLGYubWF4WSxsKSx4PW51bGwpLGImJihtPWh0KGIsdSxuLV8sbitrLDEsZi5taW5ZLGYubWF4WSxsKSx5PWh0KGIsdSxuK3csbitULDEsZi5taW5ZLGYubWF4WSxsKSxiPW51bGwpLGM+MSYmY29uc29sZS50aW1lRW5kKCJjbGlwcGluZyIpLHMucHVzaChnfHxbXSxlKzEsMipyLDIqbikscy5wdXNoKHZ8fFtdLGUrMSwyKnIsMipuKzEpLHMucHVzaChtfHxbXSxlKzEsMipyKzEsMipuKSxzLnB1c2goeXx8W10sZSsxLDIqcisxLDIqbisxKX19fSxBdC5wcm90b3R5cGUuZ2V0VGlsZT1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5vcHRpb25zLGE9bi5leHRlbnQsaT1uLmRlYnVnO2lmKHQ8MHx8dD4yNClyZXR1cm4gbnVsbDt2YXIgbz0xPDx0LHM9U3QodCxlPShlJW8rbyklbyxyKTtpZih0aGlzLnRpbGVzW3NdKXJldHVybiBfdCh0aGlzLnRpbGVzW3NdLGEpO2k+MSYmY29uc29sZS5sb2coImRyaWxsaW5nIGRvd24gdG8geiVkLSVkLSVkIix0LGUscik7Zm9yKHZhciBsLGM9dCx1PWUsaD1yOyFsJiZjPjA7KWMtLSx1PU1hdGguZmxvb3IodS8yKSxoPU1hdGguZmxvb3IoaC8yKSxsPXRoaXMudGlsZXNbU3QoYyx1LGgpXTtyZXR1cm4gbCYmbC5zb3VyY2U/KGk+MSYmY29uc29sZS5sb2coImZvdW5kIHBhcmVudCB0aWxlIHolZC0lZC0lZCIsYyx1LGgpLGk+MSYmY29uc29sZS50aW1lKCJkcmlsbGluZyBkb3duIiksdGhpcy5zcGxpdFRpbGUobC5zb3VyY2UsYyx1LGgsdCxlLHIpLGk+MSYmY29uc29sZS50aW1lRW5kKCJkcmlsbGluZyBkb3duIiksdGhpcy50aWxlc1tzXT9fdCh0aGlzLnRpbGVzW3NdLGEpOm51bGwpOm51bGx9O3ZhciBMdD1mdW5jdGlvbihlKXtmdW5jdGlvbiByKHQscixuKXtlLmNhbGwodGhpcyx0LHIsRXQpLG4mJih0aGlzLmxvYWRHZW9KU09OPW4pfXJldHVybiBlJiYoci5fX3Byb3RvX189ZSksci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixyLnByb3RvdHlwZS5sb2FkRGF0YT1mdW5jdGlvbih0LGUpe3RoaXMuX3BlbmRpbmdDYWxsYmFjayYmdGhpcy5fcGVuZGluZ0NhbGxiYWNrKG51bGwse2FiYW5kb25lZDohMH0pLHRoaXMuX3BlbmRpbmdDYWxsYmFjaz1lLHRoaXMuX3BlbmRpbmdMb2FkRGF0YVBhcmFtcz10LHRoaXMuX3N0YXRlJiYiSWRsZSIhPT10aGlzLl9zdGF0ZT90aGlzLl9zdGF0ZT0iTmVlZHNMb2FkRGF0YSI6KHRoaXMuX3N0YXRlPSJDb2FsZXNjaW5nIix0aGlzLl9sb2FkRGF0YSgpKX0sci5wcm90b3R5cGUuX2xvYWREYXRhPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztpZih0aGlzLl9wZW5kaW5nQ2FsbGJhY2smJnRoaXMuX3BlbmRpbmdMb2FkRGF0YVBhcmFtcyl7dmFyIHI9dGhpcy5fcGVuZGluZ0NhbGxiYWNrLG49dGhpcy5fcGVuZGluZ0xvYWREYXRhUGFyYW1zO2RlbGV0ZSB0aGlzLl9wZW5kaW5nQ2FsbGJhY2ssZGVsZXRlIHRoaXMuX3BlbmRpbmdMb2FkRGF0YVBhcmFtczt2YXIgYT0hIShuJiZuLnJlcXVlc3QmJm4ucmVxdWVzdC5jb2xsZWN0UmVzb3VyY2VUaW1pbmcpJiZuZXcgbC5QZXJmb3JtYW5jZShuLnJlcXVlc3QpO3RoaXMubG9hZEdlb0pTT04obixmdW5jdGlvbihpLG8pe2lmKGl8fCFvKXJldHVybiByKGkpO2lmKCJvYmplY3QiIT10eXBlb2YgbylyZXR1cm4gcihuZXcgRXJyb3IoIklucHV0IGRhdGEgZ2l2ZW4gdG8gJyIrbi5zb3VyY2UrIicgaXMgbm90IGEgdmFsaWQgR2VvSlNPTiBvYmplY3QuIikpOyFmdW5jdGlvbiB0KGUscil7c3dpdGNoKGUmJmUudHlwZXx8bnVsbCl7Y2FzZSJGZWF0dXJlQ29sbGVjdGlvbiI6cmV0dXJuIGUuZmVhdHVyZXM9ZS5mZWF0dXJlcy5tYXAoeSh0LHIpKSxlO2Nhc2UiR2VvbWV0cnlDb2xsZWN0aW9uIjpyZXR1cm4gZS5nZW9tZXRyaWVzPWUuZ2VvbWV0cmllcy5tYXAoeSh0LHIpKSxlO2Nhc2UiRmVhdHVyZSI6cmV0dXJuIGUuZ2VvbWV0cnk9dChlLmdlb21ldHJ5LHIpLGU7Y2FzZSJQb2x5Z29uIjpjYXNlIk11bHRpUG9seWdvbiI6cmV0dXJuIGZ1bmN0aW9uKHQsZSl7cmV0dXJuIlBvbHlnb24iPT09dC50eXBlP3QuY29vcmRpbmF0ZXM9eCh0LmNvb3JkaW5hdGVzLGUpOiJNdWx0aVBvbHlnb24iPT09dC50eXBlJiYodC5jb29yZGluYXRlcz10LmNvb3JkaW5hdGVzLm1hcCh5KHgsZSkpKSx0fShlLHIpO2RlZmF1bHQ6cmV0dXJuIGV9fShvLCEwKTt0cnl7ZS5fZ2VvSlNPTkluZGV4PW4uY2x1c3Rlcj9uZXcgWShmdW5jdGlvbihlKXt2YXIgcj1lLnN1cGVyY2x1c3Rlck9wdGlvbnMsbj1lLmNsdXN0ZXJQcm9wZXJ0aWVzO2lmKCFufHwhcilyZXR1cm4gcjtmb3IodmFyIGE9e30saT17fSxvPXthY2N1bXVsYXRlZDpudWxsLHpvb206MH0scz17cHJvcGVydGllczpudWxsfSxsPU9iamVjdC5rZXlzKG4pLGM9MCx1PWw7Yzx1Lmxlbmd0aDtjKz0xKXt2YXIgaD11W2NdLGY9bltoXSxwPWZbMF0sZD1mWzFdLGc9dC5jcmVhdGVFeHByZXNzaW9uKGQpLHY9dC5jcmVhdGVFeHByZXNzaW9uKCJzdHJpbmciPT10eXBlb2YgcD9bcCxbImFjY3VtdWxhdGVkIl0sWyJnZXQiLGhdXTpwKTthW2hdPWcudmFsdWUsaVtoXT12LnZhbHVlfXJldHVybiByLm1hcD1mdW5jdGlvbih0KXtzLnByb3BlcnRpZXM9dDtmb3IodmFyIGU9e30scj0wLG49bDtyPG4ubGVuZ3RoO3IrPTEpe3ZhciBpPW5bcl07ZVtpXT1hW2ldLmV2YWx1YXRlKG8scyl9cmV0dXJuIGV9LHIucmVkdWNlPWZ1bmN0aW9uKHQsZSl7cy5wcm9wZXJ0aWVzPWU7Zm9yKHZhciByPTAsbj1sO3I8bi5sZW5ndGg7cis9MSl7dmFyIGE9bltyXTtvLmFjY3VtdWxhdGVkPXRbYV0sdFthXT1pW2FdLmV2YWx1YXRlKG8scyl9fSxyfShuKSkubG9hZChvLmZlYXR1cmVzKTpuZXcgQXQobyxuLmdlb2pzb25WdE9wdGlvbnMpfWNhdGNoKGkpe3JldHVybiByKGkpfWUubG9hZGVkPXt9O3ZhciBzPXt9O2lmKGEpe3ZhciBsPWEuZmluaXNoKCk7bCYmKHMucmVzb3VyY2VUaW1pbmc9e30scy5yZXNvdXJjZVRpbWluZ1tuLnNvdXJjZV09SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShsKSkpfXIobnVsbCxzKX0pfX0sci5wcm90b3R5cGUuY29hbGVzY2U9ZnVuY3Rpb24oKXsiQ29hbGVzY2luZyI9PT10aGlzLl9zdGF0ZT90aGlzLl9zdGF0ZT0iSWRsZSI6Ik5lZWRzTG9hZERhdGEiPT09dGhpcy5fc3RhdGUmJih0aGlzLl9zdGF0ZT0iQ29hbGVzY2luZyIsdGhpcy5fbG9hZERhdGEoKSl9LHIucHJvdG90eXBlLnJlbG9hZFRpbGU9ZnVuY3Rpb24odCxyKXt2YXIgbj10aGlzLmxvYWRlZCxhPXQudWlkO3JldHVybiBuJiZuW2FdP2UucHJvdG90eXBlLnJlbG9hZFRpbGUuY2FsbCh0aGlzLHQscik6dGhpcy5sb2FkVGlsZSh0LHIpfSxyLnByb3RvdHlwZS5sb2FkR2VvSlNPTj1mdW5jdGlvbihlLHIpe2lmKGUucmVxdWVzdCl0LmdldEpTT04oZS5yZXF1ZXN0LHIpO2Vsc2V7aWYoInN0cmluZyIhPXR5cGVvZiBlLmRhdGEpcmV0dXJuIHIobmV3IEVycm9yKCJJbnB1dCBkYXRhIGdpdmVuIHRvICciK2Uuc291cmNlKyInIGlzIG5vdCBhIHZhbGlkIEdlb0pTT04gb2JqZWN0LiIpKTt0cnl7cmV0dXJuIHIobnVsbCxKU09OLnBhcnNlKGUuZGF0YSkpfWNhdGNoKHQpe3JldHVybiByKG5ldyBFcnJvcigiSW5wdXQgZGF0YSBnaXZlbiB0byAnIitlLnNvdXJjZSsiJyBpcyBub3QgYSB2YWxpZCBHZW9KU09OIG9iamVjdC4iKSl9fX0sci5wcm90b3R5cGUucmVtb3ZlU291cmNlPWZ1bmN0aW9uKHQsZSl7dGhpcy5fcGVuZGluZ0NhbGxiYWNrJiZ0aGlzLl9wZW5kaW5nQ2FsbGJhY2sobnVsbCx7YWJhbmRvbmVkOiEwfSksZSgpfSxyLnByb3RvdHlwZS5nZXRDbHVzdGVyRXhwYW5zaW9uWm9vbT1mdW5jdGlvbih0LGUpe2UobnVsbCx0aGlzLl9nZW9KU09OSW5kZXguZ2V0Q2x1c3RlckV4cGFuc2lvblpvb20odC5jbHVzdGVySWQpKX0sci5wcm90b3R5cGUuZ2V0Q2x1c3RlckNoaWxkcmVuPWZ1bmN0aW9uKHQsZSl7ZShudWxsLHRoaXMuX2dlb0pTT05JbmRleC5nZXRDaGlsZHJlbih0LmNsdXN0ZXJJZCkpfSxyLnByb3RvdHlwZS5nZXRDbHVzdGVyTGVhdmVzPWZ1bmN0aW9uKHQsZSl7ZShudWxsLHRoaXMuX2dlb0pTT05JbmRleC5nZXRMZWF2ZXModC5jbHVzdGVySWQsdC5saW1pdCx0Lm9mZnNldCkpfSxyfShoKSxDdD1mdW5jdGlvbihlKXt2YXIgcj10aGlzO3RoaXMuc2VsZj1lLHRoaXMuYWN0b3I9bmV3IHQuQWN0b3IoZSx0aGlzKSx0aGlzLmxheWVySW5kZXhlcz17fSx0aGlzLndvcmtlclNvdXJjZVR5cGVzPXt2ZWN0b3I6aCxnZW9qc29uOkx0fSx0aGlzLndvcmtlclNvdXJjZXM9e30sdGhpcy5kZW1Xb3JrZXJTb3VyY2VzPXt9LHRoaXMuc2VsZi5yZWdpc3RlcldvcmtlclNvdXJjZT1mdW5jdGlvbih0LGUpe2lmKHIud29ya2VyU291cmNlVHlwZXNbdF0pdGhyb3cgbmV3IEVycm9yKCdXb3JrZXIgc291cmNlIHdpdGggbmFtZSAiJyt0KyciIGFscmVhZHkgcmVnaXN0ZXJlZC4nKTtyLndvcmtlclNvdXJjZVR5cGVzW3RdPWV9LHRoaXMuc2VsZi5yZWdpc3RlclJUTFRleHRQbHVnaW49ZnVuY3Rpb24oZSl7aWYodC5wbHVnaW4uaXNMb2FkZWQoKSl0aHJvdyBuZXcgRXJyb3IoIlJUTCB0ZXh0IHBsdWdpbiBhbHJlYWR5IHJlZ2lzdGVyZWQuIik7dC5wbHVnaW4uYXBwbHlBcmFiaWNTaGFwaW5nPWUuYXBwbHlBcmFiaWNTaGFwaW5nLHQucGx1Z2luLnByb2Nlc3NCaWRpcmVjdGlvbmFsVGV4dD1lLnByb2Nlc3NCaWRpcmVjdGlvbmFsVGV4dCx0LnBsdWdpbi5wcm9jZXNzU3R5bGVkQmlkaXJlY3Rpb25hbFRleHQ9ZS5wcm9jZXNzU3R5bGVkQmlkaXJlY3Rpb25hbFRleHR9fTtyZXR1cm4gQ3QucHJvdG90eXBlLnNldFJlZmVycmVyPWZ1bmN0aW9uKHQsZSl7dGhpcy5yZWZlcnJlcj1lfSxDdC5wcm90b3R5cGUuc2V0TGF5ZXJzPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLmdldExheWVySW5kZXgodCkucmVwbGFjZShlKSxyKCl9LEN0LnByb3RvdHlwZS51cGRhdGVMYXllcnM9ZnVuY3Rpb24odCxlLHIpe3RoaXMuZ2V0TGF5ZXJJbmRleCh0KS51cGRhdGUoZS5sYXllcnMsZS5yZW1vdmVkSWRzKSxyKCl9LEN0LnByb3RvdHlwZS5sb2FkVGlsZT1mdW5jdGlvbih0LGUscil7dGhpcy5nZXRXb3JrZXJTb3VyY2UodCxlLnR5cGUsZS5zb3VyY2UpLmxvYWRUaWxlKGUscil9LEN0LnByb3RvdHlwZS5sb2FkREVNVGlsZT1mdW5jdGlvbih0LGUscil7dGhpcy5nZXRERU1Xb3JrZXJTb3VyY2UodCxlLnNvdXJjZSkubG9hZFRpbGUoZSxyKX0sQ3QucHJvdG90eXBlLnJlbG9hZFRpbGU9ZnVuY3Rpb24odCxlLHIpe3RoaXMuZ2V0V29ya2VyU291cmNlKHQsZS50eXBlLGUuc291cmNlKS5yZWxvYWRUaWxlKGUscil9LEN0LnByb3RvdHlwZS5hYm9ydFRpbGU9ZnVuY3Rpb24odCxlLHIpe3RoaXMuZ2V0V29ya2VyU291cmNlKHQsZS50eXBlLGUuc291cmNlKS5hYm9ydFRpbGUoZSxyKX0sQ3QucHJvdG90eXBlLnJlbW92ZVRpbGU9ZnVuY3Rpb24odCxlLHIpe3RoaXMuZ2V0V29ya2VyU291cmNlKHQsZS50eXBlLGUuc291cmNlKS5yZW1vdmVUaWxlKGUscil9LEN0LnByb3RvdHlwZS5yZW1vdmVERU1UaWxlPWZ1bmN0aW9uKHQsZSl7dGhpcy5nZXRERU1Xb3JrZXJTb3VyY2UodCxlLnNvdXJjZSkucmVtb3ZlVGlsZShlKX0sQ3QucHJvdG90eXBlLnJlbW92ZVNvdXJjZT1mdW5jdGlvbih0LGUscil7aWYodGhpcy53b3JrZXJTb3VyY2VzW3RdJiZ0aGlzLndvcmtlclNvdXJjZXNbdF1bZS50eXBlXSYmdGhpcy53b3JrZXJTb3VyY2VzW3RdW2UudHlwZV1bZS5zb3VyY2VdKXt2YXIgbj10aGlzLndvcmtlclNvdXJjZXNbdF1bZS50eXBlXVtlLnNvdXJjZV07ZGVsZXRlIHRoaXMud29ya2VyU291cmNlc1t0XVtlLnR5cGVdW2Uuc291cmNlXSx2b2lkIDAhPT1uLnJlbW92ZVNvdXJjZT9uLnJlbW92ZVNvdXJjZShlLHIpOnIoKX19LEN0LnByb3RvdHlwZS5sb2FkV29ya2VyU291cmNlPWZ1bmN0aW9uKHQsZSxyKXt0cnl7dGhpcy5zZWxmLmltcG9ydFNjcmlwdHMoZS51cmwpLHIoKX1jYXRjaCh0KXtyKHQudG9TdHJpbmcoKSl9fSxDdC5wcm90b3R5cGUubG9hZFJUTFRleHRQbHVnaW49ZnVuY3Rpb24oZSxyLG4pe3RyeXt0LnBsdWdpbi5pc0xvYWRlZCgpfHwodGhpcy5zZWxmLmltcG9ydFNjcmlwdHMociksbih0LnBsdWdpbi5pc0xvYWRlZCgpP251bGw6bmV3IEVycm9yKCJSVEwgVGV4dCBQbHVnaW4gZmFpbGVkIHRvIGltcG9ydCBzY3JpcHRzIGZyb20gIityKSkpfWNhdGNoKHQpe24odC50b1N0cmluZygpKX19LEN0LnByb3RvdHlwZS5nZXRMYXllckluZGV4PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubGF5ZXJJbmRleGVzW3RdO3JldHVybiBlfHwoZT10aGlzLmxheWVySW5kZXhlc1t0XT1uZXcgbiksZX0sQ3QucHJvdG90eXBlLmdldFdvcmtlclNvdXJjZT1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcztpZih0aGlzLndvcmtlclNvdXJjZXNbdF18fCh0aGlzLndvcmtlclNvdXJjZXNbdF09e30pLHRoaXMud29ya2VyU291cmNlc1t0XVtlXXx8KHRoaXMud29ya2VyU291cmNlc1t0XVtlXT17fSksIXRoaXMud29ya2VyU291cmNlc1t0XVtlXVtyXSl7dmFyIGE9e3NlbmQ6ZnVuY3Rpb24oZSxyLGEpe24uYWN0b3Iuc2VuZChlLHIsYSx0KX19O3RoaXMud29ya2VyU291cmNlc1t0XVtlXVtyXT1uZXcgdGhpcy53b3JrZXJTb3VyY2VUeXBlc1tlXShhLHRoaXMuZ2V0TGF5ZXJJbmRleCh0KSl9cmV0dXJuIHRoaXMud29ya2VyU291cmNlc1t0XVtlXVtyXX0sQ3QucHJvdG90eXBlLmdldERFTVdvcmtlclNvdXJjZT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmRlbVdvcmtlclNvdXJjZXNbdF18fCh0aGlzLmRlbVdvcmtlclNvdXJjZXNbdF09e30pLHRoaXMuZGVtV29ya2VyU291cmNlc1t0XVtlXXx8KHRoaXMuZGVtV29ya2VyU291cmNlc1t0XVtlXT1uZXcgZiksdGhpcy5kZW1Xb3JrZXJTb3VyY2VzW3RdW2VdfSxDdC5wcm90b3R5cGUuZW5mb3JjZUNhY2hlU2l6ZUxpbWl0PWZ1bmN0aW9uKGUscil7dC5lbmZvcmNlQ2FjaGVTaXplTGltaXQocil9LCJ1bmRlZmluZWQiIT10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnZvaWQgMCE9PXQud2luZG93JiZ0LndpbmRvdyBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlJiYodC53aW5kb3cud29ya2VyPW5ldyBDdCh0LndpbmRvdykpLEN0fSksbigwLGZ1bmN0aW9uKHQpe3ZhciBlPXQuY3JlYXRlQ29tbW9uanNNb2R1bGUoZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXtyZXR1cm4hISgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmInVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudCYmQXJyYXkucHJvdG90eXBlJiZBcnJheS5wcm90b3R5cGUuZXZlcnkmJkFycmF5LnByb3RvdHlwZS5maWx0ZXImJkFycmF5LnByb3RvdHlwZS5mb3JFYWNoJiZBcnJheS5wcm90b3R5cGUuaW5kZXhPZiYmQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mJiZBcnJheS5wcm90b3R5cGUubWFwJiZBcnJheS5wcm90b3R5cGUuc29tZSYmQXJyYXkucHJvdG90eXBlLnJlZHVjZSYmQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0JiZBcnJheS5pc0FycmF5JiZGdW5jdGlvbi5wcm90b3R5cGUmJkZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kJiZPYmplY3Qua2V5cyYmT2JqZWN0LmNyZWF0ZSYmT2JqZWN0LmdldFByb3RvdHlwZU9mJiZPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyYmT2JqZWN0LmlzU2VhbGVkJiZPYmplY3QuaXNGcm96ZW4mJk9iamVjdC5pc0V4dGVuc2libGUmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3ImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmRlZmluZVByb3BlcnRpZXMmJk9iamVjdC5zZWFsJiZPYmplY3QuZnJlZXplJiZPYmplY3QucHJldmVudEV4dGVuc2lvbnMmJiJKU09OImluIHdpbmRvdyYmInBhcnNlImluIEpTT04mJiJzdHJpbmdpZnkiaW4gSlNPTiYmZnVuY3Rpb24oKXtpZighKCJXb3JrZXIiaW4gd2luZG93JiYiQmxvYiJpbiB3aW5kb3cmJiJVUkwiaW4gd2luZG93KSlyZXR1cm4hMTt2YXIgdCxlLHI9bmV3IEJsb2IoWyIiXSx7dHlwZToidGV4dC9qYXZhc2NyaXB0In0pLG49VVJMLmNyZWF0ZU9iamVjdFVSTChyKTt0cnl7ZT1uZXcgV29ya2VyKG4pLHQ9ITB9Y2F0Y2goZSl7dD0hMX1yZXR1cm4gZSYmZS50ZXJtaW5hdGUoKSxVUkwucmV2b2tlT2JqZWN0VVJMKG4pLHR9KCkmJiJVaW50OENsYW1wZWRBcnJheSJpbiB3aW5kb3cmJkFycmF5QnVmZmVyLmlzVmlldyYmZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXJbdF0mJihyW3RdPWZ1bmN0aW9uKHQpe3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLG49T2JqZWN0LmNyZWF0ZShlLndlYkdMQ29udGV4dEF0dHJpYnV0ZXMpO3JldHVybiBuLmZhaWxJZk1ham9yUGVyZm9ybWFuY2VDYXZlYXQ9dCxyLnByb2JhYmx5U3VwcG9ydHNDb250ZXh0P3IucHJvYmFibHlTdXBwb3J0c0NvbnRleHQoIndlYmdsIixuKXx8ci5wcm9iYWJseVN1cHBvcnRzQ29udGV4dCgiZXhwZXJpbWVudGFsLXdlYmdsIixuKTpyLnN1cHBvcnRzQ29udGV4dD9yLnN1cHBvcnRzQ29udGV4dCgid2ViZ2wiLG4pfHxyLnN1cHBvcnRzQ29udGV4dCgiZXhwZXJpbWVudGFsLXdlYmdsIixuKTpyLmdldENvbnRleHQoIndlYmdsIixuKXx8ci5nZXRDb250ZXh0KCJleHBlcmltZW50YWwtd2ViZ2wiLG4pfSh0KSksclt0XX0odCYmdC5mYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0KSl9dC5leHBvcnRzP3QuZXhwb3J0cz1lOndpbmRvdyYmKHdpbmRvdy5tYXBib3hnbD13aW5kb3cubWFwYm94Z2x8fHt9LHdpbmRvdy5tYXBib3hnbC5zdXBwb3J0ZWQ9ZSk7dmFyIHI9e307ZS53ZWJHTENvbnRleHRBdHRyaWJ1dGVzPXthbnRpYWxpYXM6ITEsYWxwaGE6ITAsc3RlbmNpbDohMCxkZXB0aDohMH19KSxyPXtjcmVhdGU6ZnVuY3Rpb24oZSxyLG4pe3ZhciBhPXQud2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZSk7cmV0dXJuIHZvaWQgMCE9PXImJihhLmNsYXNzTmFtZT1yKSxuJiZuLmFwcGVuZENoaWxkKGEpLGF9LGNyZWF0ZU5TOmZ1bmN0aW9uKGUscil7cmV0dXJuIHQud2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhlLHIpfX0sbj10LndpbmRvdy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGU7ZnVuY3Rpb24gYSh0KXtpZighbilyZXR1cm4gdFswXTtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKylpZih0W2VdaW4gbilyZXR1cm4gdFtlXTtyZXR1cm4gdFswXX12YXIgaSxvPWEoWyJ1c2VyU2VsZWN0IiwiTW96VXNlclNlbGVjdCIsIldlYmtpdFVzZXJTZWxlY3QiLCJtc1VzZXJTZWxlY3QiXSk7ci5kaXNhYmxlRHJhZz1mdW5jdGlvbigpe24mJm8mJihpPW5bb10sbltvXT0ibm9uZSIpfSxyLmVuYWJsZURyYWc9ZnVuY3Rpb24oKXtuJiZvJiYobltvXT1pKX07dmFyIHM9YShbInRyYW5zZm9ybSIsIldlYmtpdFRyYW5zZm9ybSJdKTtyLnNldFRyYW5zZm9ybT1mdW5jdGlvbih0LGUpe3Quc3R5bGVbc109ZX07dmFyIGw9ITE7dHJ5e3ZhciBjPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwicGFzc2l2ZSIse2dldDpmdW5jdGlvbigpe2w9ITB9fSk7dC53aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsYyxjKSx0LndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0IixjLGMpfWNhdGNoKHQpe2w9ITF9ci5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKHQsZSxyLG4pe3ZvaWQgMD09PW4mJihuPXt9KSwicGFzc2l2ZSJpbiBuJiZsP3QuYWRkRXZlbnRMaXN0ZW5lcihlLHIsbik6dC5hZGRFdmVudExpc3RlbmVyKGUscixuLmNhcHR1cmUpfSxyLnJlbW92ZUV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24odCxlLHIsbil7dm9pZCAwPT09biYmKG49e30pLCJwYXNzaXZlImluIG4mJmw/dC5yZW1vdmVFdmVudExpc3RlbmVyKGUscixuKTp0LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSxyLG4uY2FwdHVyZSl9O3ZhciB1PWZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLHQud2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix1LCEwKX07ZnVuY3Rpb24gaCh0KXt2YXIgZT10LnVzZXJJbWFnZTtyZXR1cm4hIShlJiZlLnJlbmRlciYmZS5yZW5kZXIoKSkmJih0LmRhdGEucmVwbGFjZShuZXcgVWludDhBcnJheShlLmRhdGEuYnVmZmVyKSksITApfXIuc3VwcHJlc3NDbGljaz1mdW5jdGlvbigpe3Qud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix1LCEwKSx0LndpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC53aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHUsITApfSwwKX0sci5tb3VzZVBvcz1mdW5jdGlvbihlLHIpe3ZhciBuPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYT10LndpbmRvdy5Ub3VjaEV2ZW50JiZyIGluc3RhbmNlb2YgdC53aW5kb3cuVG91Y2hFdmVudD9yLnRvdWNoZXNbMF06cjtyZXR1cm4gbmV3IHQuUG9pbnQoYS5jbGllbnRYLW4ubGVmdC1lLmNsaWVudExlZnQsYS5jbGllbnRZLW4udG9wLWUuY2xpZW50VG9wKX0sci50b3VjaFBvcz1mdW5jdGlvbihlLHIpe2Zvcih2YXIgbj1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGE9W10saT0idG91Y2hlbmQiPT09ci50eXBlP3IuY2hhbmdlZFRvdWNoZXM6ci50b3VjaGVzLG89MDtvPGkubGVuZ3RoO28rKylhLnB1c2gobmV3IHQuUG9pbnQoaVtvXS5jbGllbnRYLW4ubGVmdC1lLmNsaWVudExlZnQsaVtvXS5jbGllbnRZLW4udG9wLWUuY2xpZW50VG9wKSk7cmV0dXJuIGF9LHIubW91c2VCdXR0b249ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMCE9PXQud2luZG93Lkluc3RhbGxUcmlnZ2VyJiYyPT09ZS5idXR0b24mJmUuY3RybEtleSYmdC53aW5kb3cubmF2aWdhdG9yLnBsYXRmb3JtLnRvVXBwZXJDYXNlKCkuaW5kZXhPZigiTUFDIik+PTA/MDplLmJ1dHRvbn0sci5yZW1vdmU9ZnVuY3Rpb24odCl7dC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCl9O3ZhciBmPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHIoKXtlLmNhbGwodGhpcyksdGhpcy5pbWFnZXM9e30sdGhpcy51cGRhdGVkSW1hZ2VzPXt9LHRoaXMuY2FsbGJhY2tEaXNwYXRjaGVkVGhpc0ZyYW1lPXt9LHRoaXMubG9hZGVkPSExLHRoaXMucmVxdWVzdG9ycz1bXSx0aGlzLnBhdHRlcm5zPXt9LHRoaXMuYXRsYXNJbWFnZT1uZXcgdC5SR0JBSW1hZ2Uoe3dpZHRoOjEsaGVpZ2h0OjF9KSx0aGlzLmRpcnR5PSEwfXJldHVybiBlJiYoci5fX3Byb3RvX189ZSksci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixyLnByb3RvdHlwZS5pc0xvYWRlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxvYWRlZH0sci5wcm90b3R5cGUuc2V0TG9hZGVkPWZ1bmN0aW9uKHQpe2lmKHRoaXMubG9hZGVkIT09dCYmKHRoaXMubG9hZGVkPXQsdCkpe2Zvcih2YXIgZT0wLHI9dGhpcy5yZXF1ZXN0b3JzO2U8ci5sZW5ndGg7ZSs9MSl7dmFyIG49cltlXSxhPW4uaWRzLGk9bi5jYWxsYmFjazt0aGlzLl9ub3RpZnkoYSxpKX10aGlzLnJlcXVlc3RvcnM9W119fSxyLnByb3RvdHlwZS5nZXRJbWFnZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbWFnZXNbdF19LHIucHJvdG90eXBlLmFkZEltYWdlPWZ1bmN0aW9uKHQsZSl7dGhpcy5pbWFnZXNbdF09ZX0sci5wcm90b3R5cGUudXBkYXRlSW1hZ2U9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmltYWdlc1t0XTtlLnZlcnNpb249ci52ZXJzaW9uKzEsdGhpcy5pbWFnZXNbdF09ZSx0aGlzLnVwZGF0ZWRJbWFnZXNbdF09ITB9LHIucHJvdG90eXBlLnJlbW92ZUltYWdlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaW1hZ2VzW3RdO2RlbGV0ZSB0aGlzLmltYWdlc1t0XSxkZWxldGUgdGhpcy5wYXR0ZXJuc1t0XSxlLnVzZXJJbWFnZSYmZS51c2VySW1hZ2Uub25SZW1vdmUmJmUudXNlckltYWdlLm9uUmVtb3ZlKCl9LHIucHJvdG90eXBlLmxpc3RJbWFnZXM9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXModGhpcy5pbWFnZXMpfSxyLnByb3RvdHlwZS5nZXRJbWFnZXM9ZnVuY3Rpb24odCxlKXt2YXIgcj0hMDtpZighdGhpcy5pc0xvYWRlZCgpKWZvcih2YXIgbj0wLGE9dDtuPGEubGVuZ3RoO24rPTEpe3ZhciBpPWFbbl07dGhpcy5pbWFnZXNbaV18fChyPSExKX10aGlzLmlzTG9hZGVkKCl8fHI/dGhpcy5fbm90aWZ5KHQsZSk6dGhpcy5yZXF1ZXN0b3JzLnB1c2goe2lkczp0LGNhbGxiYWNrOmV9KX0sci5wcm90b3R5cGUuX25vdGlmeT1mdW5jdGlvbihlLHIpe2Zvcih2YXIgbj17fSxhPTAsaT1lO2E8aS5sZW5ndGg7YSs9MSl7dmFyIG89aVthXTt0aGlzLmltYWdlc1tvXXx8dGhpcy5maXJlKG5ldyB0LkV2ZW50KCJzdHlsZWltYWdlbWlzc2luZyIse2lkOm99KSk7dmFyIHM9dGhpcy5pbWFnZXNbb107cz9uW29dPXtkYXRhOnMuZGF0YS5jbG9uZSgpLHBpeGVsUmF0aW86cy5waXhlbFJhdGlvLHNkZjpzLnNkZix2ZXJzaW9uOnMudmVyc2lvbixoYXNSZW5kZXJDYWxsYmFjazpCb29sZWFuKHMudXNlckltYWdlJiZzLnVzZXJJbWFnZS5yZW5kZXIpfTp0Lndhcm5PbmNlKCdJbWFnZSAiJytvKyciIGNvdWxkIG5vdCBiZSBsb2FkZWQuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGhhdmUgYWRkZWQgdGhlIGltYWdlIHdpdGggbWFwLmFkZEltYWdlKCkgb3IgYSAic3ByaXRlIiBwcm9wZXJ0eSBpbiB5b3VyIHN0eWxlLiBZb3UgY2FuIHByb3ZpZGUgbWlzc2luZyBpbWFnZXMgYnkgbGlzdGVuaW5nIGZvciB0aGUgInN0eWxlaW1hZ2VtaXNzaW5nIiBtYXAgZXZlbnQuJyl9cihudWxsLG4pfSxyLnByb3RvdHlwZS5nZXRQaXhlbFNpemU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmF0bGFzSW1hZ2U7cmV0dXJue3dpZHRoOnQud2lkdGgsaGVpZ2h0OnQuaGVpZ2h0fX0sci5wcm90b3R5cGUuZ2V0UGF0dGVybj1mdW5jdGlvbihlKXt2YXIgcj10aGlzLnBhdHRlcm5zW2VdLG49dGhpcy5nZXRJbWFnZShlKTtpZighbilyZXR1cm4gbnVsbDtpZihyJiZyLnBvc2l0aW9uLnZlcnNpb249PT1uLnZlcnNpb24pcmV0dXJuIHIucG9zaXRpb247aWYocilyLnBvc2l0aW9uLnZlcnNpb249bi52ZXJzaW9uO2Vsc2V7dmFyIGE9e3c6bi5kYXRhLndpZHRoKzIsaDpuLmRhdGEuaGVpZ2h0KzIseDowLHk6MH0saT1uZXcgdC5JbWFnZVBvc2l0aW9uKGEsbik7dGhpcy5wYXR0ZXJuc1tlXT17YmluOmEscG9zaXRpb246aX19cmV0dXJuIHRoaXMuX3VwZGF0ZVBhdHRlcm5BdGxhcygpLHRoaXMucGF0dGVybnNbZV0ucG9zaXRpb259LHIucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oZSl7dmFyIHI9ZS5nbDt0aGlzLmF0bGFzVGV4dHVyZT90aGlzLmRpcnR5JiYodGhpcy5hdGxhc1RleHR1cmUudXBkYXRlKHRoaXMuYXRsYXNJbWFnZSksdGhpcy5kaXJ0eT0hMSk6dGhpcy5hdGxhc1RleHR1cmU9bmV3IHQuVGV4dHVyZShlLHRoaXMuYXRsYXNJbWFnZSxyLlJHQkEpLHRoaXMuYXRsYXNUZXh0dXJlLmJpbmQoci5MSU5FQVIsci5DTEFNUF9UT19FREdFKX0sci5wcm90b3R5cGUuX3VwZGF0ZVBhdHRlcm5BdGxhcz1mdW5jdGlvbigpe3ZhciBlPVtdO2Zvcih2YXIgciBpbiB0aGlzLnBhdHRlcm5zKWUucHVzaCh0aGlzLnBhdHRlcm5zW3JdLmJpbik7dmFyIG49dC5wb3RwYWNrKGUpLGE9bi53LGk9bi5oLG89dGhpcy5hdGxhc0ltYWdlO2Zvcih2YXIgcyBpbiBvLnJlc2l6ZSh7d2lkdGg6YXx8MSxoZWlnaHQ6aXx8MX0pLHRoaXMucGF0dGVybnMpe3ZhciBsPXRoaXMucGF0dGVybnNbc10uYmluLGM9bC54KzEsdT1sLnkrMSxoPXRoaXMuaW1hZ2VzW3NdLmRhdGEsZj1oLndpZHRoLHA9aC5oZWlnaHQ7dC5SR0JBSW1hZ2UuY29weShoLG8se3g6MCx5OjB9LHt4OmMseTp1fSx7d2lkdGg6ZixoZWlnaHQ6cH0pLHQuUkdCQUltYWdlLmNvcHkoaCxvLHt4OjAseTpwLTF9LHt4OmMseTp1LTF9LHt3aWR0aDpmLGhlaWdodDoxfSksdC5SR0JBSW1hZ2UuY29weShoLG8se3g6MCx5OjB9LHt4OmMseTp1K3B9LHt3aWR0aDpmLGhlaWdodDoxfSksdC5SR0JBSW1hZ2UuY29weShoLG8se3g6Zi0xLHk6MH0se3g6Yy0xLHk6dX0se3dpZHRoOjEsaGVpZ2h0OnB9KSx0LlJHQkFJbWFnZS5jb3B5KGgsbyx7eDowLHk6MH0se3g6YytmLHk6dX0se3dpZHRoOjEsaGVpZ2h0OnB9KX10aGlzLmRpcnR5PSEwfSxyLnByb3RvdHlwZS5iZWdpbkZyYW1lPWZ1bmN0aW9uKCl7dGhpcy5jYWxsYmFja0Rpc3BhdGNoZWRUaGlzRnJhbWU9e319LHIucHJvdG90eXBlLmRpc3BhdGNoUmVuZGVyQ2FsbGJhY2tzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLHI9dDtlPHIubGVuZ3RoO2UrPTEpe3ZhciBuPXJbZV07aWYoIXRoaXMuY2FsbGJhY2tEaXNwYXRjaGVkVGhpc0ZyYW1lW25dKXt0aGlzLmNhbGxiYWNrRGlzcGF0Y2hlZFRoaXNGcmFtZVtuXT0hMDt2YXIgYT10aGlzLmltYWdlc1tuXTtoKGEpJiZ0aGlzLnVwZGF0ZUltYWdlKG4sYSl9fX0scn0odC5FdmVudGVkKSxwPXYsZD12LGc9MWUyMDtmdW5jdGlvbiB2KHQsZSxyLG4sYSxpKXt0aGlzLmZvbnRTaXplPXR8fDI0LHRoaXMuYnVmZmVyPXZvaWQgMD09PWU/MzplLHRoaXMuY3V0b2ZmPW58fC4yNSx0aGlzLmZvbnRGYW1pbHk9YXx8InNhbnMtc2VyaWYiLHRoaXMuZm9udFdlaWdodD1pfHwibm9ybWFsIix0aGlzLnJhZGl1cz1yfHw4O3ZhciBvPXRoaXMuc2l6ZT10aGlzLmZvbnRTaXplKzIqdGhpcy5idWZmZXI7dGhpcy5jYW52YXM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksdGhpcy5jYW52YXMud2lkdGg9dGhpcy5jYW52YXMuaGVpZ2h0PW8sdGhpcy5jdHg9dGhpcy5jYW52YXMuZ2V0Q29udGV4dCgiMmQiKSx0aGlzLmN0eC5mb250PXRoaXMuZm9udFdlaWdodCsiICIrdGhpcy5mb250U2l6ZSsicHggIit0aGlzLmZvbnRGYW1pbHksdGhpcy5jdHgudGV4dEJhc2VsaW5lPSJtaWRkbGUiLHRoaXMuY3R4LmZpbGxTdHlsZT0iYmxhY2siLHRoaXMuZ3JpZE91dGVyPW5ldyBGbG9hdDY0QXJyYXkobypvKSx0aGlzLmdyaWRJbm5lcj1uZXcgRmxvYXQ2NEFycmF5KG8qbyksdGhpcy5mPW5ldyBGbG9hdDY0QXJyYXkobyksdGhpcy5kPW5ldyBGbG9hdDY0QXJyYXkobyksdGhpcy56PW5ldyBGbG9hdDY0QXJyYXkobysxKSx0aGlzLnY9bmV3IEludDE2QXJyYXkobyksdGhpcy5taWRkbGU9TWF0aC5yb3VuZChvLzIqKG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiR2Vja28vIik+PTA/MS4yOjEpKX1mdW5jdGlvbiBtKHQsZSxyLG4sYSxpLG8pe2Zvcih2YXIgcz0wO3M8ZTtzKyspe2Zvcih2YXIgbD0wO2w8cjtsKyspbltsXT10W2wqZStzXTtmb3IoeShuLGEsaSxvLHIpLGw9MDtsPHI7bCsrKXRbbCplK3NdPWFbbF19Zm9yKGw9MDtsPHI7bCsrKXtmb3Iocz0wO3M8ZTtzKyspbltzXT10W2wqZStzXTtmb3IoeShuLGEsaSxvLGUpLHM9MDtzPGU7cysrKXRbbCplK3NdPU1hdGguc3FydChhW3NdKX19ZnVuY3Rpb24geSh0LGUscixuLGEpe3JbMF09MCxuWzBdPS1nLG5bMV09K2c7Zm9yKHZhciBpPTEsbz0wO2k8YTtpKyspe2Zvcih2YXIgcz0odFtpXStpKmktKHRbcltvXV0rcltvXSpyW29dKSkvKDIqaS0yKnJbb10pO3M8PW5bb107KW8tLSxzPSh0W2ldK2kqaS0odFtyW29dXStyW29dKnJbb10pKS8oMippLTIqcltvXSk7clsrK29dPWksbltvXT1zLG5bbysxXT0rZ31mb3IoaT0wLG89MDtpPGE7aSsrKXtmb3IoO25bbysxXTxpOylvKys7ZVtpXT0oaS1yW29dKSooaS1yW29dKSt0W3Jbb11dfX12LnByb3RvdHlwZS5kcmF3PWZ1bmN0aW9uKHQpe3RoaXMuY3R4LmNsZWFyUmVjdCgwLDAsdGhpcy5zaXplLHRoaXMuc2l6ZSksdGhpcy5jdHguZmlsbFRleHQodCx0aGlzLmJ1ZmZlcix0aGlzLm1pZGRsZSk7Zm9yKHZhciBlPXRoaXMuY3R4LmdldEltYWdlRGF0YSgwLDAsdGhpcy5zaXplLHRoaXMuc2l6ZSkscj1uZXcgVWludDhDbGFtcGVkQXJyYXkodGhpcy5zaXplKnRoaXMuc2l6ZSksbj0wO248dGhpcy5zaXplKnRoaXMuc2l6ZTtuKyspe3ZhciBhPWUuZGF0YVs0Km4rM10vMjU1O3RoaXMuZ3JpZE91dGVyW25dPTE9PT1hPzA6MD09PWE/ZzpNYXRoLnBvdyhNYXRoLm1heCgwLC41LWEpLDIpLHRoaXMuZ3JpZElubmVyW25dPTE9PT1hP2c6MD09PWE/MDpNYXRoLnBvdyhNYXRoLm1heCgwLGEtLjUpLDIpfWZvcihtKHRoaXMuZ3JpZE91dGVyLHRoaXMuc2l6ZSx0aGlzLnNpemUsdGhpcy5mLHRoaXMuZCx0aGlzLnYsdGhpcy56KSxtKHRoaXMuZ3JpZElubmVyLHRoaXMuc2l6ZSx0aGlzLnNpemUsdGhpcy5mLHRoaXMuZCx0aGlzLnYsdGhpcy56KSxuPTA7bjx0aGlzLnNpemUqdGhpcy5zaXplO24rKyl7dmFyIGk9dGhpcy5ncmlkT3V0ZXJbbl0tdGhpcy5ncmlkSW5uZXJbbl07cltuXT1NYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKDI1NS0yNTUqKGkvdGhpcy5yYWRpdXMrdGhpcy5jdXRvZmYpKSkpfXJldHVybiByfSxwLmRlZmF1bHQ9ZDt2YXIgeD1mdW5jdGlvbih0LGUpe3RoaXMucmVxdWVzdE1hbmFnZXI9dCx0aGlzLmxvY2FsSWRlb2dyYXBoRm9udEZhbWlseT1lLHRoaXMuZW50cmllcz17fX07eC5wcm90b3R5cGUuc2V0VVJMPWZ1bmN0aW9uKHQpe3RoaXMudXJsPXR9LHgucHJvdG90eXBlLmdldEdseXBocz1mdW5jdGlvbihlLHIpe3ZhciBuPXRoaXMsYT1bXTtmb3IodmFyIGkgaW4gZSlmb3IodmFyIG89MCxzPWVbaV07bzxzLmxlbmd0aDtvKz0xKXt2YXIgbD1zW29dO2EucHVzaCh7c3RhY2s6aSxpZDpsfSl9dC5hc3luY0FsbChhLGZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5zdGFjayxhPXQuaWQsaT1uLmVudHJpZXNbcl07aXx8KGk9bi5lbnRyaWVzW3JdPXtnbHlwaHM6e30scmVxdWVzdHM6e319KTt2YXIgbz1pLmdseXBoc1thXTtpZih2b2lkIDA9PT1vKXtpZihvPW4uX3RpbnlTREYoaSxyLGEpKXJldHVybiBpLmdseXBoc1thXT1vLHZvaWQgZShudWxsLHtzdGFjazpyLGlkOmEsZ2x5cGg6b30pO3ZhciBzPU1hdGguZmxvb3IoYS8yNTYpO2lmKDI1NipzPjY1NTM1KWUobmV3IEVycm9yKCJnbHlwaHMgPiA2NTUzNSBub3Qgc3VwcG9ydGVkIikpO2Vsc2V7dmFyIGw9aS5yZXF1ZXN0c1tzXTtsfHwobD1pLnJlcXVlc3RzW3NdPVtdLHgubG9hZEdseXBoUmFuZ2UocixzLG4udXJsLG4ucmVxdWVzdE1hbmFnZXIsZnVuY3Rpb24odCxlKXtpZihlKWZvcih2YXIgciBpbiBlKW4uX2RvZXNDaGFyU3VwcG9ydExvY2FsR2x5cGgoK3IpfHwoaS5nbHlwaHNbK3JdPWVbK3JdKTtmb3IodmFyIGE9MCxvPWw7YTxvLmxlbmd0aDthKz0xKSgwLG9bYV0pKHQsZSk7ZGVsZXRlIGkucmVxdWVzdHNbc119KSksbC5wdXNoKGZ1bmN0aW9uKHQsbil7dD9lKHQpOm4mJmUobnVsbCx7c3RhY2s6cixpZDphLGdseXBoOm5bYV18fG51bGx9KX0pfX1lbHNlIGUobnVsbCx7c3RhY2s6cixpZDphLGdseXBoOm99KX0sZnVuY3Rpb24odCxlKXtpZih0KXIodCk7ZWxzZSBpZihlKXtmb3IodmFyIG49e30sYT0wLGk9ZTthPGkubGVuZ3RoO2ErPTEpe3ZhciBvPWlbYV0scz1vLnN0YWNrLGw9by5pZCxjPW8uZ2x5cGg7KG5bc118fChuW3NdPXt9KSlbbF09YyYme2lkOmMuaWQsYml0bWFwOmMuYml0bWFwLmNsb25lKCksbWV0cmljczpjLm1ldHJpY3N9fXIobnVsbCxuKX19KX0seC5wcm90b3R5cGUuX2RvZXNDaGFyU3VwcG9ydExvY2FsR2x5cGg9ZnVuY3Rpb24oZSl7cmV0dXJuISF0aGlzLmxvY2FsSWRlb2dyYXBoRm9udEZhbWlseSYmKHQuaXNDaGFyWyJDSksgVW5pZmllZCBJZGVvZ3JhcGhzIl0oZSl8fHQuaXNDaGFyWyJIYW5ndWwgU3lsbGFibGVzIl0oZSl8fHQuaXNDaGFyLkhpcmFnYW5hKGUpfHx0LmlzQ2hhci5LYXRha2FuYShlKSl9LHgucHJvdG90eXBlLl90aW55U0RGPWZ1bmN0aW9uKGUscixuKXt2YXIgYT10aGlzLmxvY2FsSWRlb2dyYXBoRm9udEZhbWlseTtpZihhJiZ0aGlzLl9kb2VzQ2hhclN1cHBvcnRMb2NhbEdseXBoKG4pKXt2YXIgaT1lLnRpbnlTREY7aWYoIWkpe3ZhciBvPSI0MDAiOy9ib2xkL2kudGVzdChyKT9vPSI5MDAiOi9tZWRpdW0vaS50ZXN0KHIpP289IjUwMCI6L2xpZ2h0L2kudGVzdChyKSYmKG89IjIwMCIpLGk9ZS50aW55U0RGPW5ldyB4LlRpbnlTREYoMjQsMyw4LC4yNSxhLG8pfXJldHVybntpZDpuLGJpdG1hcDpuZXcgdC5BbHBoYUltYWdlKHt3aWR0aDozMCxoZWlnaHQ6MzB9LGkuZHJhdyhTdHJpbmcuZnJvbUNoYXJDb2RlKG4pKSksbWV0cmljczp7d2lkdGg6MjQsaGVpZ2h0OjI0LGxlZnQ6MCx0b3A6LTgsYWR2YW5jZToyNH19fX0seC5sb2FkR2x5cGhSYW5nZT1mdW5jdGlvbihlLHIsbixhLGkpe3ZhciBvPTI1NipyLHM9bysyNTUsbD1hLnRyYW5zZm9ybVJlcXVlc3QoYS5ub3JtYWxpemVHbHlwaHNVUkwobikucmVwbGFjZSgie2ZvbnRzdGFja30iLGUpLnJlcGxhY2UoIntyYW5nZX0iLG8rIi0iK3MpLHQuUmVzb3VyY2VUeXBlLkdseXBocyk7dC5nZXRBcnJheUJ1ZmZlcihsLGZ1bmN0aW9uKGUscil7aWYoZSlpKGUpO2Vsc2UgaWYocil7Zm9yKHZhciBuPXt9LGE9MCxvPXQucGFyc2VHbHlwaFBCRihyKTthPG8ubGVuZ3RoO2ErPTEpe3ZhciBzPW9bYV07bltzLmlkXT1zfWkobnVsbCxuKX19KX0seC5UaW55U0RGPXA7dmFyIGI9ZnVuY3Rpb24oKXt0aGlzLnNwZWNpZmljYXRpb249dC5zdHlsZVNwZWMubGlnaHQucG9zaXRpb259O2IucHJvdG90eXBlLnBvc3NpYmx5RXZhbHVhdGU9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gdC5zcGhlcmljYWxUb0NhcnRlc2lhbihlLmV4cHJlc3Npb24uZXZhbHVhdGUocikpfSxiLnByb3RvdHlwZS5pbnRlcnBvbGF0ZT1mdW5jdGlvbihlLHIsbil7cmV0dXJue3g6dC5udW1iZXIoZS54LHIueCxuKSx5OnQubnVtYmVyKGUueSxyLnksbiksejp0Lm51bWJlcihlLnosci56LG4pfX07dmFyIF89bmV3IHQuUHJvcGVydGllcyh7YW5jaG9yOm5ldyB0LkRhdGFDb25zdGFudFByb3BlcnR5KHQuc3R5bGVTcGVjLmxpZ2h0LmFuY2hvcikscG9zaXRpb246bmV3IGIsY29sb3I6bmV3IHQuRGF0YUNvbnN0YW50UHJvcGVydHkodC5zdHlsZVNwZWMubGlnaHQuY29sb3IpLGludGVuc2l0eTpuZXcgdC5EYXRhQ29uc3RhbnRQcm9wZXJ0eSh0LnN0eWxlU3BlYy5saWdodC5pbnRlbnNpdHkpfSksdz1mdW5jdGlvbihlKXtmdW5jdGlvbiByKHIpe2UuY2FsbCh0aGlzKSx0aGlzLl90cmFuc2l0aW9uYWJsZT1uZXcgdC5UcmFuc2l0aW9uYWJsZShfKSx0aGlzLnNldExpZ2h0KHIpLHRoaXMuX3RyYW5zaXRpb25pbmc9dGhpcy5fdHJhbnNpdGlvbmFibGUudW50cmFuc2l0aW9uZWQoKX1yZXR1cm4gZSYmKHIuX19wcm90b19fPWUpLHIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIsci5wcm90b3R5cGUuZ2V0TGlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdHJhbnNpdGlvbmFibGUuc2VyaWFsaXplKCl9LHIucHJvdG90eXBlLnNldExpZ2h0PWZ1bmN0aW9uKGUscil7aWYodm9pZCAwPT09ciYmKHI9e30pLCF0aGlzLl92YWxpZGF0ZSh0LnZhbGlkYXRlTGlnaHQsZSxyKSlmb3IodmFyIG4gaW4gZSl7dmFyIGE9ZVtuXTt0LmVuZHNXaXRoKG4sIi10cmFuc2l0aW9uIik/dGhpcy5fdHJhbnNpdGlvbmFibGUuc2V0VHJhbnNpdGlvbihuLnNsaWNlKDAsLSItdHJhbnNpdGlvbiIubGVuZ3RoKSxhKTp0aGlzLl90cmFuc2l0aW9uYWJsZS5zZXRWYWx1ZShuLGEpfX0sci5wcm90b3R5cGUudXBkYXRlVHJhbnNpdGlvbnM9ZnVuY3Rpb24odCl7dGhpcy5fdHJhbnNpdGlvbmluZz10aGlzLl90cmFuc2l0aW9uYWJsZS50cmFuc2l0aW9uZWQodCx0aGlzLl90cmFuc2l0aW9uaW5nKX0sci5wcm90b3R5cGUuaGFzVHJhbnNpdGlvbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl90cmFuc2l0aW9uaW5nLmhhc1RyYW5zaXRpb24oKX0sci5wcm90b3R5cGUucmVjYWxjdWxhdGU9ZnVuY3Rpb24odCl7dGhpcy5wcm9wZXJ0aWVzPXRoaXMuX3RyYW5zaXRpb25pbmcucG9zc2libHlFdmFsdWF0ZSh0KX0sci5wcm90b3R5cGUuX3ZhbGlkYXRlPWZ1bmN0aW9uKGUscixuKXtyZXR1cm4oIW58fCExIT09bi52YWxpZGF0ZSkmJnQuZW1pdFZhbGlkYXRpb25FcnJvcnModGhpcyxlLmNhbGwodC52YWxpZGF0ZVN0eWxlLHQuZXh0ZW5kKHt2YWx1ZTpyLHN0eWxlOntnbHlwaHM6ITAsc3ByaXRlOiEwfSxzdHlsZVNwZWM6dC5zdHlsZVNwZWN9KSkpfSxyfSh0LkV2ZW50ZWQpLGs9ZnVuY3Rpb24odCxlKXt0aGlzLndpZHRoPXQsdGhpcy5oZWlnaHQ9ZSx0aGlzLm5leHRSb3c9MCx0aGlzLmJ5dGVzPTQsdGhpcy5kYXRhPW5ldyBVaW50OEFycmF5KHRoaXMud2lkdGgqdGhpcy5oZWlnaHQqdGhpcy5ieXRlcyksdGhpcy5wb3NpdGlvbnM9e319O2sucHJvdG90eXBlLmdldERhc2g9ZnVuY3Rpb24odCxlKXt2YXIgcj10LmpvaW4oIiwiKStTdHJpbmcoZSk7cmV0dXJuIHRoaXMucG9zaXRpb25zW3JdfHwodGhpcy5wb3NpdGlvbnNbcl09dGhpcy5hZGREYXNoKHQsZSkpLHRoaXMucG9zaXRpb25zW3JdfSxrLnByb3RvdHlwZS5hZGREYXNoPWZ1bmN0aW9uKGUscil7dmFyIG49cj83OjAsYT0yKm4rMTtpZih0aGlzLm5leHRSb3crYT50aGlzLmhlaWdodClyZXR1cm4gdC53YXJuT25jZSgiTGluZUF0bGFzIG91dCBvZiBzcGFjZSIpLG51bGw7Zm9yKHZhciBpPTAsbz0wO288ZS5sZW5ndGg7bysrKWkrPWVbb107Zm9yKHZhciBzPXRoaXMud2lkdGgvaSxsPXMvMixjPWUubGVuZ3RoJTI9PTEsdT0tbjt1PD1uO3UrKylmb3IodmFyIGg9dGhpcy5uZXh0Um93K24rdSxmPXRoaXMud2lkdGgqaCxwPWM/LWVbZS5sZW5ndGgtMV06MCxkPWVbMF0sZz0xLHY9MDt2PHRoaXMud2lkdGg7disrKXtmb3IoO2Q8di9zOylwPWQsZCs9ZVtnXSxjJiZnPT09ZS5sZW5ndGgtMSYmKGQrPWVbMF0pLGcrKzt2YXIgbT1NYXRoLmFicyh2LXAqcykseT1NYXRoLmFicyh2LWQqcykseD1NYXRoLm1pbihtLHkpLGI9ZyUyPT0xLF89dm9pZCAwO2lmKHIpe3ZhciB3PW4/dS9uKihsKzEpOjA7aWYoYil7dmFyIGs9bC1NYXRoLmFicyh3KTtfPU1hdGguc3FydCh4KngrayprKX1lbHNlIF89bC1NYXRoLnNxcnQoeCp4K3cqdyl9ZWxzZSBfPShiPzE6LTEpKng7dGhpcy5kYXRhWzMrNCooZit2KV09TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsXysxMjgpKX12YXIgVD17eToodGhpcy5uZXh0Um93K24rLjUpL3RoaXMuaGVpZ2h0LGhlaWdodDoyKm4vdGhpcy5oZWlnaHQsd2lkdGg6aX07cmV0dXJuIHRoaXMubmV4dFJvdys9YSx0aGlzLmRpcnR5PSEwLFR9LGsucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24odCl7dmFyIGU9dC5nbDt0aGlzLnRleHR1cmU/KGUuYmluZFRleHR1cmUoZS5URVhUVVJFXzJELHRoaXMudGV4dHVyZSksdGhpcy5kaXJ0eSYmKHRoaXMuZGlydHk9ITEsZS50ZXhTdWJJbWFnZTJEKGUuVEVYVFVSRV8yRCwwLDAsMCx0aGlzLndpZHRoLHRoaXMuaGVpZ2h0LGUuUkdCQSxlLlVOU0lHTkVEX0JZVEUsdGhpcy5kYXRhKSkpOih0aGlzLnRleHR1cmU9ZS5jcmVhdGVUZXh0dXJlKCksZS5iaW5kVGV4dHVyZShlLlRFWFRVUkVfMkQsdGhpcy50ZXh0dXJlKSxlLnRleFBhcmFtZXRlcmkoZS5URVhUVVJFXzJELGUuVEVYVFVSRV9XUkFQX1MsZS5SRVBFQVQpLGUudGV4UGFyYW1ldGVyaShlLlRFWFRVUkVfMkQsZS5URVhUVVJFX1dSQVBfVCxlLlJFUEVBVCksZS50ZXhQYXJhbWV0ZXJpKGUuVEVYVFVSRV8yRCxlLlRFWFRVUkVfTUlOX0ZJTFRFUixlLkxJTkVBUiksZS50ZXhQYXJhbWV0ZXJpKGUuVEVYVFVSRV8yRCxlLlRFWFRVUkVfTUFHX0ZJTFRFUixlLkxJTkVBUiksZS50ZXhJbWFnZTJEKGUuVEVYVFVSRV8yRCwwLGUuUkdCQSx0aGlzLndpZHRoLHRoaXMuaGVpZ2h0LDAsZS5SR0JBLGUuVU5TSUdORURfQllURSx0aGlzLmRhdGEpKX07dmFyIFQ9ZnVuY3Rpb24gZShyLG4pe3RoaXMud29ya2VyUG9vbD1yLHRoaXMuYWN0b3JzPVtdLHRoaXMuY3VycmVudEFjdG9yPTAsdGhpcy5pZD10LnVuaXF1ZUlkKCk7Zm9yKHZhciBhPXRoaXMud29ya2VyUG9vbC5hY3F1aXJlKHRoaXMuaWQpLGk9MDtpPGEubGVuZ3RoO2krKyl7dmFyIG89YVtpXSxzPW5ldyBlLkFjdG9yKG8sbix0aGlzLmlkKTtzLm5hbWU9IldvcmtlciAiK2ksdGhpcy5hY3RvcnMucHVzaChzKX19O2Z1bmN0aW9uIE0oZSxyLG4pe3ZhciBhPWZ1bmN0aW9uKGEsaSl7aWYoYSlyZXR1cm4gbihhKTtpZihpKXt2YXIgbz10LnBpY2sodC5leHRlbmQoaSxlKSxbInRpbGVzIiwibWluem9vbSIsIm1heHpvb20iLCJhdHRyaWJ1dGlvbiIsIm1hcGJveF9sb2dvIiwiYm91bmRzIiwic2NoZW1lIiwidGlsZVNpemUiLCJlbmNvZGluZyJdKTtpLnZlY3Rvcl9sYXllcnMmJihvLnZlY3RvckxheWVycz1pLnZlY3Rvcl9sYXllcnMsby52ZWN0b3JMYXllcklkcz1vLnZlY3RvckxheWVycy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWR9KSksZS51cmwmJihvLnRpbGVzPXIuY2Fub25pY2FsaXplVGlsZXNldChvLGUudXJsKSksbihudWxsLG8pfX07cmV0dXJuIGUudXJsP3QuZ2V0SlNPTihyLnRyYW5zZm9ybVJlcXVlc3Qoci5ub3JtYWxpemVTb3VyY2VVUkwoZS51cmwpLHQuUmVzb3VyY2VUeXBlLlNvdXJjZSksYSk6dC5icm93c2VyLmZyYW1lKGZ1bmN0aW9uKCl7cmV0dXJuIGEobnVsbCxlKX0pfVQucHJvdG90eXBlLmJyb2FkY2FzdD1mdW5jdGlvbihlLHIsbil7bj1ufHxmdW5jdGlvbigpe30sdC5hc3luY0FsbCh0aGlzLmFjdG9ycyxmdW5jdGlvbih0LG4pe3Quc2VuZChlLHIsbil9LG4pfSxULnByb3RvdHlwZS5nZXRBY3Rvcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRBY3Rvcj0odGhpcy5jdXJyZW50QWN0b3IrMSkldGhpcy5hY3RvcnMubGVuZ3RoLHRoaXMuYWN0b3JzW3RoaXMuY3VycmVudEFjdG9yXX0sVC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKCl7dGhpcy5hY3RvcnMuZm9yRWFjaChmdW5jdGlvbih0KXt0LnJlbW92ZSgpfSksdGhpcy5hY3RvcnM9W10sdGhpcy53b3JrZXJQb29sLnJlbGVhc2UodGhpcy5pZCl9LFQuQWN0b3I9dC5BY3Rvcjt2YXIgQT1mdW5jdGlvbihlLHIsbil7dGhpcy5ib3VuZHM9dC5MbmdMYXRCb3VuZHMuY29udmVydCh0aGlzLnZhbGlkYXRlQm91bmRzKGUpKSx0aGlzLm1pbnpvb209cnx8MCx0aGlzLm1heHpvb209bnx8MjR9O0EucHJvdG90eXBlLnZhbGlkYXRlQm91bmRzPWZ1bmN0aW9uKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpJiY0PT09dC5sZW5ndGg/W01hdGgubWF4KC0xODAsdFswXSksTWF0aC5tYXgoLTkwLHRbMV0pLE1hdGgubWluKDE4MCx0WzJdKSxNYXRoLm1pbig5MCx0WzNdKV06Wy0xODAsLTkwLDE4MCw5MF19LEEucHJvdG90eXBlLmNvbnRhaW5zPWZ1bmN0aW9uKGUpe3ZhciByPU1hdGgucG93KDIsZS56KSxuPU1hdGguZmxvb3IodC5tZXJjYXRvclhmcm9tTG5nKHRoaXMuYm91bmRzLmdldFdlc3QoKSkqciksYT1NYXRoLmZsb29yKHQubWVyY2F0b3JZZnJvbUxhdCh0aGlzLmJvdW5kcy5nZXROb3J0aCgpKSpyKSxpPU1hdGguY2VpbCh0Lm1lcmNhdG9yWGZyb21MbmcodGhpcy5ib3VuZHMuZ2V0RWFzdCgpKSpyKSxvPU1hdGguY2VpbCh0Lm1lcmNhdG9yWWZyb21MYXQodGhpcy5ib3VuZHMuZ2V0U291dGgoKSkqcik7cmV0dXJuIGUueD49biYmZS54PGkmJmUueT49YSYmZS55PG99O3ZhciBTPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHIocixuLGEsaSl7aWYoZS5jYWxsKHRoaXMpLHRoaXMuaWQ9cix0aGlzLmRpc3BhdGNoZXI9YSx0aGlzLnR5cGU9InZlY3RvciIsdGhpcy5taW56b29tPTAsdGhpcy5tYXh6b29tPTIyLHRoaXMuc2NoZW1lPSJ4eXoiLHRoaXMudGlsZVNpemU9NTEyLHRoaXMucmVwYXJzZU92ZXJzY2FsZWQ9ITAsdGhpcy5pc1RpbGVDbGlwcGVkPSEwLHRoaXMuX2xvYWRlZD0hMSx0LmV4dGVuZCh0aGlzLHQucGljayhuLFsidXJsIiwic2NoZW1lIiwidGlsZVNpemUiXSkpLHRoaXMuX29wdGlvbnM9dC5leHRlbmQoe3R5cGU6InZlY3RvciJ9LG4pLHRoaXMuX2NvbGxlY3RSZXNvdXJjZVRpbWluZz1uLmNvbGxlY3RSZXNvdXJjZVRpbWluZyw1MTIhPT10aGlzLnRpbGVTaXplKXRocm93IG5ldyBFcnJvcigidmVjdG9yIHRpbGUgc291cmNlcyBtdXN0IGhhdmUgYSB0aWxlU2l6ZSBvZiA1MTIiKTt0aGlzLnNldEV2ZW50ZWRQYXJlbnQoaSl9cmV0dXJuIGUmJihyLl9fcHJvdG9fXz1lKSxyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlKSxyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yLHIucHJvdG90eXBlLmxvYWQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuX2xvYWRlZD0hMSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoImRhdGFsb2FkaW5nIix7ZGF0YVR5cGU6InNvdXJjZSJ9KSksdGhpcy5fdGlsZUpTT05SZXF1ZXN0PU0odGhpcy5fb3B0aW9ucyx0aGlzLm1hcC5fcmVxdWVzdE1hbmFnZXIsZnVuY3Rpb24ocixuKXtlLl90aWxlSlNPTlJlcXVlc3Q9bnVsbCxlLl9sb2FkZWQ9ITAscj9lLmZpcmUobmV3IHQuRXJyb3JFdmVudChyKSk6biYmKHQuZXh0ZW5kKGUsbiksbi5ib3VuZHMmJihlLnRpbGVCb3VuZHM9bmV3IEEobi5ib3VuZHMsZS5taW56b29tLGUubWF4em9vbSkpLHQucG9zdFR1cm5zdGlsZUV2ZW50KG4udGlsZXMsZS5tYXAuX3JlcXVlc3RNYW5hZ2VyLl9jdXN0b21BY2Nlc3NUb2tlbiksdC5wb3N0TWFwTG9hZEV2ZW50KG4udGlsZXMsZS5tYXAuX2dldE1hcElkKCksZS5tYXAuX3JlcXVlc3RNYW5hZ2VyLl9za3VUb2tlbixlLm1hcC5fcmVxdWVzdE1hbmFnZXIuX2N1c3RvbUFjY2Vzc1Rva2VuKSxlLmZpcmUobmV3IHQuRXZlbnQoImRhdGEiLHtkYXRhVHlwZToic291cmNlIixzb3VyY2VEYXRhVHlwZToibWV0YWRhdGEifSkpLGUuZmlyZShuZXcgdC5FdmVudCgiZGF0YSIse2RhdGFUeXBlOiJzb3VyY2UiLHNvdXJjZURhdGFUeXBlOiJjb250ZW50In0pKSl9KX0sci5wcm90b3R5cGUubG9hZGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xvYWRlZH0sci5wcm90b3R5cGUuaGFzVGlsZT1mdW5jdGlvbih0KXtyZXR1cm4hdGhpcy50aWxlQm91bmRzfHx0aGlzLnRpbGVCb3VuZHMuY29udGFpbnModC5jYW5vbmljYWwpfSxyLnByb3RvdHlwZS5vbkFkZD1mdW5jdGlvbih0KXt0aGlzLm1hcD10LHRoaXMubG9hZCgpfSxyLnByb3RvdHlwZS5vblJlbW92ZT1mdW5jdGlvbigpe3RoaXMuX3RpbGVKU09OUmVxdWVzdCYmKHRoaXMuX3RpbGVKU09OUmVxdWVzdC5jYW5jZWwoKSx0aGlzLl90aWxlSlNPTlJlcXVlc3Q9bnVsbCl9LHIucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe3JldHVybiB0LmV4dGVuZCh7fSx0aGlzLl9vcHRpb25zKX0sci5wcm90b3R5cGUubG9hZFRpbGU9ZnVuY3Rpb24oZSxyKXt2YXIgbj10aGlzLm1hcC5fcmVxdWVzdE1hbmFnZXIubm9ybWFsaXplVGlsZVVSTChlLnRpbGVJRC5jYW5vbmljYWwudXJsKHRoaXMudGlsZXMsdGhpcy5zY2hlbWUpLHRoaXMudXJsLG51bGwpLGE9e3JlcXVlc3Q6dGhpcy5tYXAuX3JlcXVlc3RNYW5hZ2VyLnRyYW5zZm9ybVJlcXVlc3Qobix0LlJlc291cmNlVHlwZS5UaWxlKSx1aWQ6ZS51aWQsdGlsZUlEOmUudGlsZUlELHpvb206ZS50aWxlSUQub3ZlcnNjYWxlZFosdGlsZVNpemU6dGhpcy50aWxlU2l6ZSplLnRpbGVJRC5vdmVyc2NhbGVGYWN0b3IoKSx0eXBlOnRoaXMudHlwZSxzb3VyY2U6dGhpcy5pZCxwaXhlbFJhdGlvOnQuYnJvd3Nlci5kZXZpY2VQaXhlbFJhdGlvLHNob3dDb2xsaXNpb25Cb3hlczp0aGlzLm1hcC5zaG93Q29sbGlzaW9uQm94ZXN9O2Z1bmN0aW9uIGkobixhKXtyZXR1cm4gZGVsZXRlIGUucmVxdWVzdCxlLmFib3J0ZWQ/cihudWxsKTpuJiY0MDQhPT1uLnN0YXR1cz9yKG4pOihhJiZhLnJlc291cmNlVGltaW5nJiYoZS5yZXNvdXJjZVRpbWluZz1hLnJlc291cmNlVGltaW5nKSx0aGlzLm1hcC5fcmVmcmVzaEV4cGlyZWRUaWxlcyYmYSYmZS5zZXRFeHBpcnlEYXRhKGEpLGUubG9hZFZlY3RvckRhdGEoYSx0aGlzLm1hcC5wYWludGVyKSx0LmNhY2hlRW50cnlQb3NzaWJseUFkZGVkKHRoaXMuZGlzcGF0Y2hlcikscihudWxsKSx2b2lkKGUucmVsb2FkQ2FsbGJhY2smJih0aGlzLmxvYWRUaWxlKGUsZS5yZWxvYWRDYWxsYmFjayksZS5yZWxvYWRDYWxsYmFjaz1udWxsKSkpfWEucmVxdWVzdC5jb2xsZWN0UmVzb3VyY2VUaW1pbmc9dGhpcy5fY29sbGVjdFJlc291cmNlVGltaW5nLGUuYWN0b3ImJiJleHBpcmVkIiE9PWUuc3RhdGU/ImxvYWRpbmciPT09ZS5zdGF0ZT9lLnJlbG9hZENhbGxiYWNrPXI6ZS5yZXF1ZXN0PWUuYWN0b3Iuc2VuZCgicmVsb2FkVGlsZSIsYSxpLmJpbmQodGhpcykpOihlLmFjdG9yPXRoaXMuZGlzcGF0Y2hlci5nZXRBY3RvcigpLGUucmVxdWVzdD1lLmFjdG9yLnNlbmQoImxvYWRUaWxlIixhLGkuYmluZCh0aGlzKSkpfSxyLnByb3RvdHlwZS5hYm9ydFRpbGU9ZnVuY3Rpb24odCl7dC5yZXF1ZXN0JiYodC5yZXF1ZXN0LmNhbmNlbCgpLGRlbGV0ZSB0LnJlcXVlc3QpLHQuYWN0b3ImJnQuYWN0b3Iuc2VuZCgiYWJvcnRUaWxlIix7dWlkOnQudWlkLHR5cGU6dGhpcy50eXBlLHNvdXJjZTp0aGlzLmlkfSx2b2lkIDApfSxyLnByb3RvdHlwZS51bmxvYWRUaWxlPWZ1bmN0aW9uKHQpe3QudW5sb2FkVmVjdG9yRGF0YSgpLHQuYWN0b3ImJnQuYWN0b3Iuc2VuZCgicmVtb3ZlVGlsZSIse3VpZDp0LnVpZCx0eXBlOnRoaXMudHlwZSxzb3VyY2U6dGhpcy5pZH0sdm9pZCAwKX0sci5wcm90b3R5cGUuaGFzVHJhbnNpdGlvbj1mdW5jdGlvbigpe3JldHVybiExfSxyfSh0LkV2ZW50ZWQpLEU9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gcihyLG4sYSxpKXtlLmNhbGwodGhpcyksdGhpcy5pZD1yLHRoaXMuZGlzcGF0Y2hlcj1hLHRoaXMuc2V0RXZlbnRlZFBhcmVudChpKSx0aGlzLnR5cGU9InJhc3RlciIsdGhpcy5taW56b29tPTAsdGhpcy5tYXh6b29tPTIyLHRoaXMucm91bmRab29tPSEwLHRoaXMuc2NoZW1lPSJ4eXoiLHRoaXMudGlsZVNpemU9NTEyLHRoaXMuX2xvYWRlZD0hMSx0aGlzLl9vcHRpb25zPXQuZXh0ZW5kKHt0eXBlOiJyYXN0ZXIifSxuKSx0LmV4dGVuZCh0aGlzLHQucGljayhuLFsidXJsIiwic2NoZW1lIiwidGlsZVNpemUiXSkpfXJldHVybiBlJiYoci5fX3Byb3RvX189ZSksci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixyLnByb3RvdHlwZS5sb2FkPWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLl9sb2FkZWQ9ITEsdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJkYXRhbG9hZGluZyIse2RhdGFUeXBlOiJzb3VyY2UifSkpLHRoaXMuX3RpbGVKU09OUmVxdWVzdD1NKHRoaXMuX29wdGlvbnMsdGhpcy5tYXAuX3JlcXVlc3RNYW5hZ2VyLGZ1bmN0aW9uKHIsbil7ZS5fdGlsZUpTT05SZXF1ZXN0PW51bGwsZS5fbG9hZGVkPSEwLHI/ZS5maXJlKG5ldyB0LkVycm9yRXZlbnQocikpOm4mJih0LmV4dGVuZChlLG4pLG4uYm91bmRzJiYoZS50aWxlQm91bmRzPW5ldyBBKG4uYm91bmRzLGUubWluem9vbSxlLm1heHpvb20pKSx0LnBvc3RUdXJuc3RpbGVFdmVudChuLnRpbGVzKSx0LnBvc3RNYXBMb2FkRXZlbnQobi50aWxlcyxlLm1hcC5fZ2V0TWFwSWQoKSxlLm1hcC5fcmVxdWVzdE1hbmFnZXIuX3NrdVRva2VuKSxlLmZpcmUobmV3IHQuRXZlbnQoImRhdGEiLHtkYXRhVHlwZToic291cmNlIixzb3VyY2VEYXRhVHlwZToibWV0YWRhdGEifSkpLGUuZmlyZShuZXcgdC5FdmVudCgiZGF0YSIse2RhdGFUeXBlOiJzb3VyY2UiLHNvdXJjZURhdGFUeXBlOiJjb250ZW50In0pKSl9KX0sci5wcm90b3R5cGUubG9hZGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xvYWRlZH0sci5wcm90b3R5cGUub25BZGQ9ZnVuY3Rpb24odCl7dGhpcy5tYXA9dCx0aGlzLmxvYWQoKX0sci5wcm90b3R5cGUub25SZW1vdmU9ZnVuY3Rpb24oKXt0aGlzLl90aWxlSlNPTlJlcXVlc3QmJih0aGlzLl90aWxlSlNPTlJlcXVlc3QuY2FuY2VsKCksdGhpcy5fdGlsZUpTT05SZXF1ZXN0PW51bGwpfSxyLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm4gdC5leHRlbmQoe30sdGhpcy5fb3B0aW9ucyl9LHIucHJvdG90eXBlLmhhc1RpbGU9ZnVuY3Rpb24odCl7cmV0dXJuIXRoaXMudGlsZUJvdW5kc3x8dGhpcy50aWxlQm91bmRzLmNvbnRhaW5zKHQuY2Fub25pY2FsKX0sci5wcm90b3R5cGUubG9hZFRpbGU9ZnVuY3Rpb24oZSxyKXt2YXIgbj10aGlzLGE9dGhpcy5tYXAuX3JlcXVlc3RNYW5hZ2VyLm5vcm1hbGl6ZVRpbGVVUkwoZS50aWxlSUQuY2Fub25pY2FsLnVybCh0aGlzLnRpbGVzLHRoaXMuc2NoZW1lKSx0aGlzLnVybCx0aGlzLnRpbGVTaXplKTtlLnJlcXVlc3Q9dC5nZXRJbWFnZSh0aGlzLm1hcC5fcmVxdWVzdE1hbmFnZXIudHJhbnNmb3JtUmVxdWVzdChhLHQuUmVzb3VyY2VUeXBlLlRpbGUpLGZ1bmN0aW9uKGEsaSl7aWYoZGVsZXRlIGUucmVxdWVzdCxlLmFib3J0ZWQpZS5zdGF0ZT0idW5sb2FkZWQiLHIobnVsbCk7ZWxzZSBpZihhKWUuc3RhdGU9ImVycm9yZWQiLHIoYSk7ZWxzZSBpZihpKXtuLm1hcC5fcmVmcmVzaEV4cGlyZWRUaWxlcyYmZS5zZXRFeHBpcnlEYXRhKGkpLGRlbGV0ZSBpLmNhY2hlQ29udHJvbCxkZWxldGUgaS5leHBpcmVzO3ZhciBvPW4ubWFwLnBhaW50ZXIuY29udGV4dCxzPW8uZ2w7ZS50ZXh0dXJlPW4ubWFwLnBhaW50ZXIuZ2V0VGlsZVRleHR1cmUoaS53aWR0aCksZS50ZXh0dXJlP2UudGV4dHVyZS51cGRhdGUoaSx7dXNlTWlwbWFwOiEwfSk6KGUudGV4dHVyZT1uZXcgdC5UZXh0dXJlKG8saSxzLlJHQkEse3VzZU1pcG1hcDohMH0pLGUudGV4dHVyZS5iaW5kKHMuTElORUFSLHMuQ0xBTVBfVE9fRURHRSxzLkxJTkVBUl9NSVBNQVBfTkVBUkVTVCksby5leHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMmJnMudGV4UGFyYW1ldGVyZihzLlRFWFRVUkVfMkQsby5leHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuVEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQsby5leHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWNNYXgpKSxlLnN0YXRlPSJsb2FkZWQiLHQuY2FjaGVFbnRyeVBvc3NpYmx5QWRkZWQobi5kaXNwYXRjaGVyKSxyKG51bGwpfX0pfSxyLnByb3RvdHlwZS5hYm9ydFRpbGU9ZnVuY3Rpb24odCxlKXt0LnJlcXVlc3QmJih0LnJlcXVlc3QuY2FuY2VsKCksZGVsZXRlIHQucmVxdWVzdCksZSgpfSxyLnByb3RvdHlwZS51bmxvYWRUaWxlPWZ1bmN0aW9uKHQsZSl7dC50ZXh0dXJlJiZ0aGlzLm1hcC5wYWludGVyLnNhdmVUaWxlVGV4dHVyZSh0LnRleHR1cmUpLGUoKX0sci5wcm90b3R5cGUuaGFzVHJhbnNpdGlvbj1mdW5jdGlvbigpe3JldHVybiExfSxyfSh0LkV2ZW50ZWQpLEw9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gcihyLG4sYSxpKXtlLmNhbGwodGhpcyxyLG4sYSxpKSx0aGlzLnR5cGU9InJhc3Rlci1kZW0iLHRoaXMubWF4em9vbT0yMix0aGlzLl9vcHRpb25zPXQuZXh0ZW5kKHt0eXBlOiJyYXN0ZXItZGVtIn0sbiksdGhpcy5lbmNvZGluZz1uLmVuY29kaW5nfHwibWFwYm94In1yZXR1cm4gZSYmKHIuX19wcm90b19fPWUpLHIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIsci5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6InJhc3Rlci1kZW0iLHVybDp0aGlzLnVybCx0aWxlU2l6ZTp0aGlzLnRpbGVTaXplLHRpbGVzOnRoaXMudGlsZXMsYm91bmRzOnRoaXMuYm91bmRzLGVuY29kaW5nOnRoaXMuZW5jb2Rpbmd9fSxyLnByb3RvdHlwZS5sb2FkVGlsZT1mdW5jdGlvbihlLHIpe3ZhciBuPXRoaXMubWFwLl9yZXF1ZXN0TWFuYWdlci5ub3JtYWxpemVUaWxlVVJMKGUudGlsZUlELmNhbm9uaWNhbC51cmwodGhpcy50aWxlcyx0aGlzLnNjaGVtZSksdGhpcy51cmwsdGhpcy50aWxlU2l6ZSk7ZS5yZXF1ZXN0PXQuZ2V0SW1hZ2UodGhpcy5tYXAuX3JlcXVlc3RNYW5hZ2VyLnRyYW5zZm9ybVJlcXVlc3Qobix0LlJlc291cmNlVHlwZS5UaWxlKSxmdW5jdGlvbihuLGEpe2lmKGRlbGV0ZSBlLnJlcXVlc3QsZS5hYm9ydGVkKWUuc3RhdGU9InVubG9hZGVkIixyKG51bGwpO2Vsc2UgaWYobillLnN0YXRlPSJlcnJvcmVkIixyKG4pO2Vsc2UgaWYoYSl7dGhpcy5tYXAuX3JlZnJlc2hFeHBpcmVkVGlsZXMmJmUuc2V0RXhwaXJ5RGF0YShhKSxkZWxldGUgYS5jYWNoZUNvbnRyb2wsZGVsZXRlIGEuZXhwaXJlczt2YXIgaT10LmJyb3dzZXIuZ2V0SW1hZ2VEYXRhKGEpLG89e3VpZDplLnVpZCxjb29yZDplLnRpbGVJRCxzb3VyY2U6dGhpcy5pZCxyYXdJbWFnZURhdGE6aSxlbmNvZGluZzp0aGlzLmVuY29kaW5nfTtlLmFjdG9yJiYiZXhwaXJlZCIhPT1lLnN0YXRlfHwoZS5hY3Rvcj10aGlzLmRpc3BhdGNoZXIuZ2V0QWN0b3IoKSxlLmFjdG9yLnNlbmQoImxvYWRERU1UaWxlIixvLGZ1bmN0aW9uKHQsbil7dCYmKGUuc3RhdGU9ImVycm9yZWQiLHIodCkpLG4mJihlLmRlbT1uLGUubmVlZHNIaWxsc2hhZGVQcmVwYXJlPSEwLGUuc3RhdGU9ImxvYWRlZCIscihudWxsKSl9LmJpbmQodGhpcykpKX19LmJpbmQodGhpcykpLGUubmVpZ2hib3JpbmdUaWxlcz10aGlzLl9nZXROZWlnaGJvcmluZ1RpbGVzKGUudGlsZUlEKX0sci5wcm90b3R5cGUuX2dldE5laWdoYm9yaW5nVGlsZXM9ZnVuY3Rpb24oZSl7dmFyIHI9ZS5jYW5vbmljYWwsbj1NYXRoLnBvdygyLHIueiksYT0oci54LTErbiklbixpPTA9PT1yLng/ZS53cmFwLTE6ZS53cmFwLG89KHIueCsxK24pJW4scz1yLngrMT09PW4/ZS53cmFwKzE6ZS53cmFwLGw9e307cmV0dXJuIGxbbmV3IHQuT3ZlcnNjYWxlZFRpbGVJRChlLm92ZXJzY2FsZWRaLGksci56LGEsci55KS5rZXldPXtiYWNrZmlsbGVkOiExfSxsW25ldyB0Lk92ZXJzY2FsZWRUaWxlSUQoZS5vdmVyc2NhbGVkWixzLHIueixvLHIueSkua2V5XT17YmFja2ZpbGxlZDohMX0sci55PjAmJihsW25ldyB0Lk92ZXJzY2FsZWRUaWxlSUQoZS5vdmVyc2NhbGVkWixpLHIueixhLHIueS0xKS5rZXldPXtiYWNrZmlsbGVkOiExfSxsW25ldyB0Lk92ZXJzY2FsZWRUaWxlSUQoZS5vdmVyc2NhbGVkWixlLndyYXAsci56LHIueCxyLnktMSkua2V5XT17YmFja2ZpbGxlZDohMX0sbFtuZXcgdC5PdmVyc2NhbGVkVGlsZUlEKGUub3ZlcnNjYWxlZFoscyxyLnosbyxyLnktMSkua2V5XT17YmFja2ZpbGxlZDohMX0pLHIueSsxPG4mJihsW25ldyB0Lk92ZXJzY2FsZWRUaWxlSUQoZS5vdmVyc2NhbGVkWixpLHIueixhLHIueSsxKS5rZXldPXtiYWNrZmlsbGVkOiExfSxsW25ldyB0Lk92ZXJzY2FsZWRUaWxlSUQoZS5vdmVyc2NhbGVkWixlLndyYXAsci56LHIueCxyLnkrMSkua2V5XT17YmFja2ZpbGxlZDohMX0sbFtuZXcgdC5PdmVyc2NhbGVkVGlsZUlEKGUub3ZlcnNjYWxlZFoscyxyLnosbyxyLnkrMSkua2V5XT17YmFja2ZpbGxlZDohMX0pLGx9LHIucHJvdG90eXBlLnVubG9hZFRpbGU9ZnVuY3Rpb24odCl7dC5kZW1UZXh0dXJlJiZ0aGlzLm1hcC5wYWludGVyLnNhdmVUaWxlVGV4dHVyZSh0LmRlbVRleHR1cmUpLHQuZmJvJiYodC5mYm8uZGVzdHJveSgpLGRlbGV0ZSB0LmZibyksdC5kZW0mJmRlbGV0ZSB0LmRlbSxkZWxldGUgdC5uZWlnaGJvcmluZ1RpbGVzLHQuc3RhdGU9InVubG9hZGVkIix0LmFjdG9yJiZ0LmFjdG9yLnNlbmQoInJlbW92ZURFTVRpbGUiLHt1aWQ6dC51aWQsc291cmNlOnRoaXMuaWR9KX0scn0oRSksQz1mdW5jdGlvbihlKXtmdW5jdGlvbiByKHIsbixhLGkpe2UuY2FsbCh0aGlzKSx0aGlzLmlkPXIsdGhpcy50eXBlPSJnZW9qc29uIix0aGlzLm1pbnpvb209MCx0aGlzLm1heHpvb209MTgsdGhpcy50aWxlU2l6ZT01MTIsdGhpcy5pc1RpbGVDbGlwcGVkPSEwLHRoaXMucmVwYXJzZU92ZXJzY2FsZWQ9ITAsdGhpcy5fcmVtb3ZlZD0hMSx0aGlzLl9sb2FkZWQ9ITEsdGhpcy5hY3Rvcj1hLmdldEFjdG9yKCksdGhpcy5zZXRFdmVudGVkUGFyZW50KGkpLHRoaXMuX2RhdGE9bi5kYXRhLHRoaXMuX29wdGlvbnM9dC5leHRlbmQoe30sbiksdGhpcy5fY29sbGVjdFJlc291cmNlVGltaW5nPW4uY29sbGVjdFJlc291cmNlVGltaW5nLHRoaXMuX3Jlc291cmNlVGltaW5nPVtdLHZvaWQgMCE9PW4ubWF4em9vbSYmKHRoaXMubWF4em9vbT1uLm1heHpvb20pLG4udHlwZSYmKHRoaXMudHlwZT1uLnR5cGUpLG4uYXR0cmlidXRpb24mJih0aGlzLmF0dHJpYnV0aW9uPW4uYXR0cmlidXRpb24pO3ZhciBvPXQuRVhURU5UL3RoaXMudGlsZVNpemU7dGhpcy53b3JrZXJPcHRpb25zPXQuZXh0ZW5kKHtzb3VyY2U6dGhpcy5pZCxjbHVzdGVyOm4uY2x1c3Rlcnx8ITEsZ2VvanNvblZ0T3B0aW9uczp7YnVmZmVyOih2b2lkIDAhPT1uLmJ1ZmZlcj9uLmJ1ZmZlcjoxMjgpKm8sdG9sZXJhbmNlOih2b2lkIDAhPT1uLnRvbGVyYW5jZT9uLnRvbGVyYW5jZTouMzc1KSpvLGV4dGVudDp0LkVYVEVOVCxtYXhab29tOnRoaXMubWF4em9vbSxsaW5lTWV0cmljczpuLmxpbmVNZXRyaWNzfHwhMSxnZW5lcmF0ZUlkOm4uZ2VuZXJhdGVJZHx8ITF9LHN1cGVyY2x1c3Rlck9wdGlvbnM6e21heFpvb206dm9pZCAwIT09bi5jbHVzdGVyTWF4Wm9vbT9NYXRoLm1pbihuLmNsdXN0ZXJNYXhab29tLHRoaXMubWF4em9vbS0xKTp0aGlzLm1heHpvb20tMSxleHRlbnQ6dC5FWFRFTlQscmFkaXVzOihuLmNsdXN0ZXJSYWRpdXN8fDUwKSpvLGxvZzohMX0sY2x1c3RlclByb3BlcnRpZXM6bi5jbHVzdGVyUHJvcGVydGllc30sbi53b3JrZXJPcHRpb25zKX1yZXR1cm4gZSYmKHIuX19wcm90b19fPWUpLHIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIsci5wcm90b3R5cGUubG9hZD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5maXJlKG5ldyB0LkV2ZW50KCJkYXRhbG9hZGluZyIse2RhdGFUeXBlOiJzb3VyY2UifSkpLHRoaXMuX3VwZGF0ZVdvcmtlckRhdGEoZnVuY3Rpb24ocil7aWYocillLmZpcmUobmV3IHQuRXJyb3JFdmVudChyKSk7ZWxzZXt2YXIgbj17ZGF0YVR5cGU6InNvdXJjZSIsc291cmNlRGF0YVR5cGU6Im1ldGFkYXRhIn07ZS5fY29sbGVjdFJlc291cmNlVGltaW5nJiZlLl9yZXNvdXJjZVRpbWluZyYmZS5fcmVzb3VyY2VUaW1pbmcubGVuZ3RoPjAmJihuLnJlc291cmNlVGltaW5nPWUuX3Jlc291cmNlVGltaW5nLGUuX3Jlc291cmNlVGltaW5nPVtdKSxlLmZpcmUobmV3IHQuRXZlbnQoImRhdGEiLG4pKX19KX0sci5wcm90b3R5cGUub25BZGQ9ZnVuY3Rpb24odCl7dGhpcy5tYXA9dCx0aGlzLmxvYWQoKX0sci5wcm90b3R5cGUuc2V0RGF0YT1mdW5jdGlvbihlKXt2YXIgcj10aGlzO3JldHVybiB0aGlzLl9kYXRhPWUsdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJkYXRhbG9hZGluZyIse2RhdGFUeXBlOiJzb3VyY2UifSkpLHRoaXMuX3VwZGF0ZVdvcmtlckRhdGEoZnVuY3Rpb24oZSl7aWYoZSlyLmZpcmUobmV3IHQuRXJyb3JFdmVudChlKSk7ZWxzZXt2YXIgbj17ZGF0YVR5cGU6InNvdXJjZSIsc291cmNlRGF0YVR5cGU6ImNvbnRlbnQifTtyLl9jb2xsZWN0UmVzb3VyY2VUaW1pbmcmJnIuX3Jlc291cmNlVGltaW5nJiZyLl9yZXNvdXJjZVRpbWluZy5sZW5ndGg+MCYmKG4ucmVzb3VyY2VUaW1pbmc9ci5fcmVzb3VyY2VUaW1pbmcsci5fcmVzb3VyY2VUaW1pbmc9W10pLHIuZmlyZShuZXcgdC5FdmVudCgiZGF0YSIsbikpfX0pLHRoaXN9LHIucHJvdG90eXBlLmdldENsdXN0ZXJFeHBhbnNpb25ab29tPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuYWN0b3Iuc2VuZCgiZ2VvanNvbi5nZXRDbHVzdGVyRXhwYW5zaW9uWm9vbSIse2NsdXN0ZXJJZDp0LHNvdXJjZTp0aGlzLmlkfSxlKSx0aGlzfSxyLnByb3RvdHlwZS5nZXRDbHVzdGVyQ2hpbGRyZW49ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5hY3Rvci5zZW5kKCJnZW9qc29uLmdldENsdXN0ZXJDaGlsZHJlbiIse2NsdXN0ZXJJZDp0LHNvdXJjZTp0aGlzLmlkfSxlKSx0aGlzfSxyLnByb3RvdHlwZS5nZXRDbHVzdGVyTGVhdmVzPWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiB0aGlzLmFjdG9yLnNlbmQoImdlb2pzb24uZ2V0Q2x1c3RlckxlYXZlcyIse3NvdXJjZTp0aGlzLmlkLGNsdXN0ZXJJZDp0LGxpbWl0OmUsb2Zmc2V0OnJ9LG4pLHRoaXN9LHIucHJvdG90eXBlLl91cGRhdGVXb3JrZXJEYXRhPWZ1bmN0aW9uKGUpe3ZhciByPXRoaXM7dGhpcy5fbG9hZGVkPSExO3ZhciBuPXQuZXh0ZW5kKHt9LHRoaXMud29ya2VyT3B0aW9ucyksYT10aGlzLl9kYXRhOyJzdHJpbmciPT10eXBlb2YgYT8obi5yZXF1ZXN0PXRoaXMubWFwLl9yZXF1ZXN0TWFuYWdlci50cmFuc2Zvcm1SZXF1ZXN0KHQuYnJvd3Nlci5yZXNvbHZlVVJMKGEpLHQuUmVzb3VyY2VUeXBlLlNvdXJjZSksbi5yZXF1ZXN0LmNvbGxlY3RSZXNvdXJjZVRpbWluZz10aGlzLl9jb2xsZWN0UmVzb3VyY2VUaW1pbmcpOm4uZGF0YT1KU09OLnN0cmluZ2lmeShhKSx0aGlzLmFjdG9yLnNlbmQodGhpcy50eXBlKyIubG9hZERhdGEiLG4sZnVuY3Rpb24odCxhKXtyLl9yZW1vdmVkfHxhJiZhLmFiYW5kb25lZHx8KHIuX2xvYWRlZD0hMCxhJiZhLnJlc291cmNlVGltaW5nJiZhLnJlc291cmNlVGltaW5nW3IuaWRdJiYoci5fcmVzb3VyY2VUaW1pbmc9YS5yZXNvdXJjZVRpbWluZ1tyLmlkXS5zbGljZSgwKSksci5hY3Rvci5zZW5kKHIudHlwZSsiLmNvYWxlc2NlIix7c291cmNlOm4uc291cmNlfSxudWxsKSxlKHQpKX0pfSxyLnByb3RvdHlwZS5sb2FkZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbG9hZGVkfSxyLnByb3RvdHlwZS5sb2FkVGlsZT1mdW5jdGlvbihlLHIpe3ZhciBuPXRoaXMsYT1lLmFjdG9yPyJyZWxvYWRUaWxlIjoibG9hZFRpbGUiO2UuYWN0b3I9dGhpcy5hY3Rvcjt2YXIgaT17dHlwZTp0aGlzLnR5cGUsdWlkOmUudWlkLHRpbGVJRDplLnRpbGVJRCx6b29tOmUudGlsZUlELm92ZXJzY2FsZWRaLG1heFpvb206dGhpcy5tYXh6b29tLHRpbGVTaXplOnRoaXMudGlsZVNpemUsc291cmNlOnRoaXMuaWQscGl4ZWxSYXRpbzp0LmJyb3dzZXIuZGV2aWNlUGl4ZWxSYXRpbyxzaG93Q29sbGlzaW9uQm94ZXM6dGhpcy5tYXAuc2hvd0NvbGxpc2lvbkJveGVzfTtlLnJlcXVlc3Q9dGhpcy5hY3Rvci5zZW5kKGEsaSxmdW5jdGlvbih0LGkpe3JldHVybiBkZWxldGUgZS5yZXF1ZXN0LGUudW5sb2FkVmVjdG9yRGF0YSgpLGUuYWJvcnRlZD9yKG51bGwpOnQ/cih0KTooZS5sb2FkVmVjdG9yRGF0YShpLG4ubWFwLnBhaW50ZXIsInJlbG9hZFRpbGUiPT09YSkscihudWxsKSl9KX0sci5wcm90b3R5cGUuYWJvcnRUaWxlPWZ1bmN0aW9uKHQpe3QucmVxdWVzdCYmKHQucmVxdWVzdC5jYW5jZWwoKSxkZWxldGUgdC5yZXF1ZXN0KSx0LmFib3J0ZWQ9ITB9LHIucHJvdG90eXBlLnVubG9hZFRpbGU9ZnVuY3Rpb24odCl7dC51bmxvYWRWZWN0b3JEYXRhKCksdGhpcy5hY3Rvci5zZW5kKCJyZW1vdmVUaWxlIix7dWlkOnQudWlkLHR5cGU6dGhpcy50eXBlLHNvdXJjZTp0aGlzLmlkfSl9LHIucHJvdG90eXBlLm9uUmVtb3ZlPWZ1bmN0aW9uKCl7dGhpcy5fcmVtb3ZlZD0hMCx0aGlzLmFjdG9yLnNlbmQoInJlbW92ZVNvdXJjZSIse3R5cGU6dGhpcy50eXBlLHNvdXJjZTp0aGlzLmlkfSl9LHIucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe3JldHVybiB0LmV4dGVuZCh7fSx0aGlzLl9vcHRpb25zLHt0eXBlOnRoaXMudHlwZSxkYXRhOnRoaXMuX2RhdGF9KX0sci5wcm90b3R5cGUuaGFzVHJhbnNpdGlvbj1mdW5jdGlvbigpe3JldHVybiExfSxyfSh0LkV2ZW50ZWQpLFA9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gcih0LHIsbixhKXtlLmNhbGwodGhpcyksdGhpcy5pZD10LHRoaXMuZGlzcGF0Y2hlcj1uLHRoaXMuY29vcmRpbmF0ZXM9ci5jb29yZGluYXRlcyx0aGlzLnR5cGU9ImltYWdlIix0aGlzLm1pbnpvb209MCx0aGlzLm1heHpvb209MjIsdGhpcy50aWxlU2l6ZT01MTIsdGhpcy50aWxlcz17fSx0aGlzLl9sb2FkZWQ9ITEsdGhpcy5zZXRFdmVudGVkUGFyZW50KGEpLHRoaXMub3B0aW9ucz1yfXJldHVybiBlJiYoci5fX3Byb3RvX189ZSksci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixyLnByb3RvdHlwZS5sb2FkPWZ1bmN0aW9uKGUscil7dmFyIG49dGhpczt0aGlzLl9sb2FkZWQ9ITEsdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJkYXRhbG9hZGluZyIse2RhdGFUeXBlOiJzb3VyY2UifSkpLHRoaXMudXJsPXRoaXMub3B0aW9ucy51cmwsdC5nZXRJbWFnZSh0aGlzLm1hcC5fcmVxdWVzdE1hbmFnZXIudHJhbnNmb3JtUmVxdWVzdCh0aGlzLnVybCx0LlJlc291cmNlVHlwZS5JbWFnZSksZnVuY3Rpb24oYSxpKXtuLl9sb2FkZWQ9ITAsYT9uLmZpcmUobmV3IHQuRXJyb3JFdmVudChhKSk6aSYmKG4uaW1hZ2U9aSxlJiYobi5jb29yZGluYXRlcz1lKSxyJiZyKCksbi5fZmluaXNoTG9hZGluZygpKX0pfSxyLnByb3RvdHlwZS5sb2FkZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbG9hZGVkfSxyLnByb3RvdHlwZS51cGRhdGVJbWFnZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0aGlzLmltYWdlJiZ0LnVybD8odGhpcy5vcHRpb25zLnVybD10LnVybCx0aGlzLmxvYWQodC5jb29yZGluYXRlcyxmdW5jdGlvbigpe2UudGV4dHVyZT1udWxsfSksdGhpcyk6dGhpc30sci5wcm90b3R5cGUuX2ZpbmlzaExvYWRpbmc9ZnVuY3Rpb24oKXt0aGlzLm1hcCYmKHRoaXMuc2V0Q29vcmRpbmF0ZXModGhpcy5jb29yZGluYXRlcyksdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJkYXRhIix7ZGF0YVR5cGU6InNvdXJjZSIsc291cmNlRGF0YVR5cGU6Im1ldGFkYXRhIn0pKSl9LHIucHJvdG90eXBlLm9uQWRkPWZ1bmN0aW9uKHQpe3RoaXMubWFwPXQsdGhpcy5sb2FkKCl9LHIucHJvdG90eXBlLnNldENvb3JkaW5hdGVzPWZ1bmN0aW9uKGUpe3ZhciByPXRoaXM7dGhpcy5jb29yZGluYXRlcz1lO3ZhciBuPWUubWFwKHQuTWVyY2F0b3JDb29yZGluYXRlLmZyb21MbmdMYXQpO3RoaXMudGlsZUlEPWZ1bmN0aW9uKGUpe2Zvcih2YXIgcj0xLzAsbj0xLzAsYT0tMS8wLGk9LTEvMCxvPTAscz1lO288cy5sZW5ndGg7bys9MSl7dmFyIGw9c1tvXTtyPU1hdGgubWluKHIsbC54KSxuPU1hdGgubWluKG4sbC55KSxhPU1hdGgubWF4KGEsbC54KSxpPU1hdGgubWF4KGksbC55KX12YXIgYz1hLXIsdT1pLW4saD1NYXRoLm1heChjLHUpLGY9TWF0aC5tYXgoMCxNYXRoLmZsb29yKC1NYXRoLmxvZyhoKS9NYXRoLkxOMikpLHA9TWF0aC5wb3coMixmKTtyZXR1cm4gbmV3IHQuQ2Fub25pY2FsVGlsZUlEKGYsTWF0aC5mbG9vcigocithKS8yKnApLE1hdGguZmxvb3IoKG4raSkvMipwKSl9KG4pLHRoaXMubWluem9vbT10aGlzLm1heHpvb209dGhpcy50aWxlSUQuejt2YXIgYT1uLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gci50aWxlSUQuZ2V0VGlsZVBvaW50KHQpLl9yb3VuZCgpfSk7cmV0dXJuIHRoaXMuX2JvdW5kc0FycmF5PW5ldyB0LlN0cnVjdEFycmF5TGF5b3V0NGk4LHRoaXMuX2JvdW5kc0FycmF5LmVtcGxhY2VCYWNrKGFbMF0ueCxhWzBdLnksMCwwKSx0aGlzLl9ib3VuZHNBcnJheS5lbXBsYWNlQmFjayhhWzFdLngsYVsxXS55LHQuRVhURU5ULDApLHRoaXMuX2JvdW5kc0FycmF5LmVtcGxhY2VCYWNrKGFbM10ueCxhWzNdLnksMCx0LkVYVEVOVCksdGhpcy5fYm91bmRzQXJyYXkuZW1wbGFjZUJhY2soYVsyXS54LGFbMl0ueSx0LkVYVEVOVCx0LkVYVEVOVCksdGhpcy5ib3VuZHNCdWZmZXImJih0aGlzLmJvdW5kc0J1ZmZlci5kZXN0cm95KCksZGVsZXRlIHRoaXMuYm91bmRzQnVmZmVyKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoImRhdGEiLHtkYXRhVHlwZToic291cmNlIixzb3VyY2VEYXRhVHlwZToiY29udGVudCJ9KSksdGhpc30sci5wcm90b3R5cGUucHJlcGFyZT1mdW5jdGlvbigpe2lmKDAhPT1PYmplY3Qua2V5cyh0aGlzLnRpbGVzKS5sZW5ndGgmJnRoaXMuaW1hZ2Upe3ZhciBlPXRoaXMubWFwLnBhaW50ZXIuY29udGV4dCxyPWUuZ2w7Zm9yKHZhciBuIGluIHRoaXMuYm91bmRzQnVmZmVyfHwodGhpcy5ib3VuZHNCdWZmZXI9ZS5jcmVhdGVWZXJ0ZXhCdWZmZXIodGhpcy5fYm91bmRzQXJyYXksdC5yYXN0ZXJCb3VuZHNBdHRyaWJ1dGVzLm1lbWJlcnMpKSx0aGlzLmJvdW5kc1NlZ21lbnRzfHwodGhpcy5ib3VuZHNTZWdtZW50cz10LlNlZ21lbnRWZWN0b3Iuc2ltcGxlU2VnbWVudCgwLDAsNCwyKSksdGhpcy50ZXh0dXJlfHwodGhpcy50ZXh0dXJlPW5ldyB0LlRleHR1cmUoZSx0aGlzLmltYWdlLHIuUkdCQSksdGhpcy50ZXh0dXJlLmJpbmQoci5MSU5FQVIsci5DTEFNUF9UT19FREdFKSksdGhpcy50aWxlcyl7dmFyIGE9dGhpcy50aWxlc1tuXTsibG9hZGVkIiE9PWEuc3RhdGUmJihhLnN0YXRlPSJsb2FkZWQiLGEudGV4dHVyZT10aGlzLnRleHR1cmUpfX19LHIucHJvdG90eXBlLmxvYWRUaWxlPWZ1bmN0aW9uKHQsZSl7dGhpcy50aWxlSUQmJnRoaXMudGlsZUlELmVxdWFscyh0LnRpbGVJRC5jYW5vbmljYWwpPyh0aGlzLnRpbGVzW1N0cmluZyh0LnRpbGVJRC53cmFwKV09dCx0LmJ1Y2tldHM9e30sZShudWxsKSk6KHQuc3RhdGU9ImVycm9yZWQiLGUobnVsbCkpfSxyLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToiaW1hZ2UiLHVybDp0aGlzLm9wdGlvbnMudXJsLGNvb3JkaW5hdGVzOnRoaXMuY29vcmRpbmF0ZXN9fSxyLnByb3RvdHlwZS5oYXNUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuITF9LHJ9KHQuRXZlbnRlZCksTz1mdW5jdGlvbihlKXtmdW5jdGlvbiByKHQscixuLGEpe2UuY2FsbCh0aGlzLHQscixuLGEpLHRoaXMucm91bmRab29tPSEwLHRoaXMudHlwZT0idmlkZW8iLHRoaXMub3B0aW9ucz1yfXJldHVybiBlJiYoci5fX3Byb3RvX189ZSksci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixyLnByb3RvdHlwZS5sb2FkPWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLl9sb2FkZWQ9ITE7dmFyIHI9dGhpcy5vcHRpb25zO3RoaXMudXJscz1bXTtmb3IodmFyIG49MCxhPXIudXJscztuPGEubGVuZ3RoO24rPTEpe3ZhciBpPWFbbl07dGhpcy51cmxzLnB1c2godGhpcy5tYXAuX3JlcXVlc3RNYW5hZ2VyLnRyYW5zZm9ybVJlcXVlc3QoaSx0LlJlc291cmNlVHlwZS5Tb3VyY2UpLnVybCl9dC5nZXRWaWRlbyh0aGlzLnVybHMsZnVuY3Rpb24ocixuKXtlLl9sb2FkZWQ9ITAscj9lLmZpcmUobmV3IHQuRXJyb3JFdmVudChyKSk6biYmKGUudmlkZW89bixlLnZpZGVvLmxvb3A9ITAsZS52aWRlby5hZGRFdmVudExpc3RlbmVyKCJwbGF5aW5nIixmdW5jdGlvbigpe2UubWFwLnRyaWdnZXJSZXBhaW50KCl9KSxlLm1hcCYmZS52aWRlby5wbGF5KCksZS5fZmluaXNoTG9hZGluZygpKX0pfSxyLnByb3RvdHlwZS5wYXVzZT1mdW5jdGlvbigpe3RoaXMudmlkZW8mJnRoaXMudmlkZW8ucGF1c2UoKX0sci5wcm90b3R5cGUucGxheT1mdW5jdGlvbigpe3RoaXMudmlkZW8mJnRoaXMudmlkZW8ucGxheSgpfSxyLnByb3RvdHlwZS5zZWVrPWZ1bmN0aW9uKGUpe2lmKHRoaXMudmlkZW8pe3ZhciByPXRoaXMudmlkZW8uc2Vla2FibGU7ZTxyLnN0YXJ0KDApfHxlPnIuZW5kKDApP3RoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyB0LlZhbGlkYXRpb25FcnJvcigiUGxheWJhY2sgZm9yIHRoaXMgdmlkZW8gY2FuIGJlIHNldCBvbmx5IGJldHdlZW4gdGhlICIrci5zdGFydCgwKSsiIGFuZCAiK3IuZW5kKDApKyItc2Vjb25kIG1hcmsuIikpKTp0aGlzLnZpZGVvLmN1cnJlbnRUaW1lPWV9fSxyLnByb3RvdHlwZS5nZXRWaWRlbz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZpZGVvfSxyLnByb3RvdHlwZS5vbkFkZD1mdW5jdGlvbih0KXt0aGlzLm1hcHx8KHRoaXMubWFwPXQsdGhpcy5sb2FkKCksdGhpcy52aWRlbyYmKHRoaXMudmlkZW8ucGxheSgpLHRoaXMuc2V0Q29vcmRpbmF0ZXModGhpcy5jb29yZGluYXRlcykpKX0sci5wcm90b3R5cGUucHJlcGFyZT1mdW5jdGlvbigpe2lmKCEoMD09PU9iamVjdC5rZXlzKHRoaXMudGlsZXMpLmxlbmd0aHx8dGhpcy52aWRlby5yZWFkeVN0YXRlPDIpKXt2YXIgZT10aGlzLm1hcC5wYWludGVyLmNvbnRleHQscj1lLmdsO2Zvcih2YXIgbiBpbiB0aGlzLmJvdW5kc0J1ZmZlcnx8KHRoaXMuYm91bmRzQnVmZmVyPWUuY3JlYXRlVmVydGV4QnVmZmVyKHRoaXMuX2JvdW5kc0FycmF5LHQucmFzdGVyQm91bmRzQXR0cmlidXRlcy5tZW1iZXJzKSksdGhpcy5ib3VuZHNTZWdtZW50c3x8KHRoaXMuYm91bmRzU2VnbWVudHM9dC5TZWdtZW50VmVjdG9yLnNpbXBsZVNlZ21lbnQoMCwwLDQsMikpLHRoaXMudGV4dHVyZT90aGlzLnZpZGVvLnBhdXNlZHx8KHRoaXMudGV4dHVyZS5iaW5kKHIuTElORUFSLHIuQ0xBTVBfVE9fRURHRSksci50ZXhTdWJJbWFnZTJEKHIuVEVYVFVSRV8yRCwwLDAsMCxyLlJHQkEsci5VTlNJR05FRF9CWVRFLHRoaXMudmlkZW8pKToodGhpcy50ZXh0dXJlPW5ldyB0LlRleHR1cmUoZSx0aGlzLnZpZGVvLHIuUkdCQSksdGhpcy50ZXh0dXJlLmJpbmQoci5MSU5FQVIsci5DTEFNUF9UT19FREdFKSksdGhpcy50aWxlcyl7dmFyIGE9dGhpcy50aWxlc1tuXTsibG9hZGVkIiE9PWEuc3RhdGUmJihhLnN0YXRlPSJsb2FkZWQiLGEudGV4dHVyZT10aGlzLnRleHR1cmUpfX19LHIucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJ2aWRlbyIsdXJsczp0aGlzLnVybHMsY29vcmRpbmF0ZXM6dGhpcy5jb29yZGluYXRlc319LHIucHJvdG90eXBlLmhhc1RyYW5zaXRpb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52aWRlbyYmIXRoaXMudmlkZW8ucGF1c2VkfSxyfShQKSx6PWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHIocixuLGEsaSl7ZS5jYWxsKHRoaXMscixuLGEsaSksbi5jb29yZGluYXRlcz9BcnJheS5pc0FycmF5KG4uY29vcmRpbmF0ZXMpJiY0PT09bi5jb29yZGluYXRlcy5sZW5ndGgmJiFuLmNvb3JkaW5hdGVzLnNvbWUoZnVuY3Rpb24odCl7cmV0dXJuIUFycmF5LmlzQXJyYXkodCl8fDIhPT10Lmxlbmd0aHx8dC5zb21lKGZ1bmN0aW9uKHQpe3JldHVybiJudW1iZXIiIT10eXBlb2YgdH0pfSl8fHRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyB0LlZhbGlkYXRpb25FcnJvcigic291cmNlcy4iK3IsbnVsbCwnImNvb3JkaW5hdGVzIiBwcm9wZXJ0eSBtdXN0IGJlIGFuIGFycmF5IG9mIDQgbG9uZ2l0dWRlL2xhdGl0dWRlIGFycmF5IHBhaXJzJykpKTp0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgdC5WYWxpZGF0aW9uRXJyb3IoInNvdXJjZXMuIityLG51bGwsJ21pc3NpbmcgcmVxdWlyZWQgcHJvcGVydHkgImNvb3JkaW5hdGVzIicpKSksbi5hbmltYXRlJiYiYm9vbGVhbiIhPXR5cGVvZiBuLmFuaW1hdGUmJnRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyB0LlZhbGlkYXRpb25FcnJvcigic291cmNlcy4iK3IsbnVsbCwnb3B0aW9uYWwgImFuaW1hdGUiIHByb3BlcnR5IG11c3QgYmUgYSBib29sZWFuIHZhbHVlJykpKSxuLmNhbnZhcz8ic3RyaW5nIj09dHlwZW9mIG4uY2FudmFzfHxuLmNhbnZhcyBpbnN0YW5jZW9mIHQud2luZG93LkhUTUxDYW52YXNFbGVtZW50fHx0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgdC5WYWxpZGF0aW9uRXJyb3IoInNvdXJjZXMuIityLG51bGwsJyJjYW52YXMiIG11c3QgYmUgZWl0aGVyIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgSUQgb2YgdGhlIGNhbnZhcyBlbGVtZW50IGZyb20gd2hpY2ggdG8gcmVhZCwgb3IgYW4gSFRNTENhbnZhc0VsZW1lbnQgaW5zdGFuY2UnKSkpOnRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyB0LlZhbGlkYXRpb25FcnJvcigic291cmNlcy4iK3IsbnVsbCwnbWlzc2luZyByZXF1aXJlZCBwcm9wZXJ0eSAiY2FudmFzIicpKSksdGhpcy5vcHRpb25zPW4sdGhpcy5hbmltYXRlPXZvaWQgMD09PW4uYW5pbWF0ZXx8bi5hbmltYXRlfXJldHVybiBlJiYoci5fX3Byb3RvX189ZSksci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixyLnByb3RvdHlwZS5sb2FkPWZ1bmN0aW9uKCl7dGhpcy5fbG9hZGVkPSEwLHRoaXMuY2FudmFzfHwodGhpcy5jYW52YXM9dGhpcy5vcHRpb25zLmNhbnZhcyBpbnN0YW5jZW9mIHQud2luZG93LkhUTUxDYW52YXNFbGVtZW50P3RoaXMub3B0aW9ucy5jYW52YXM6dC53aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5vcHRpb25zLmNhbnZhcykpLHRoaXMud2lkdGg9dGhpcy5jYW52YXMud2lkdGgsdGhpcy5oZWlnaHQ9dGhpcy5jYW52YXMuaGVpZ2h0LHRoaXMuX2hhc0ludmFsaWREaW1lbnNpb25zKCk/dGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCJDYW52YXMgZGltZW5zaW9ucyBjYW5ub3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHplcm8uIikpKToodGhpcy5wbGF5PWZ1bmN0aW9uKCl7dGhpcy5fcGxheWluZz0hMCx0aGlzLm1hcC50cmlnZ2VyUmVwYWludCgpfSx0aGlzLnBhdXNlPWZ1bmN0aW9uKCl7dGhpcy5fcGxheWluZyYmKHRoaXMucHJlcGFyZSgpLHRoaXMuX3BsYXlpbmc9ITEpfSx0aGlzLl9maW5pc2hMb2FkaW5nKCkpfSxyLnByb3RvdHlwZS5nZXRDYW52YXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jYW52YXN9LHIucHJvdG90eXBlLm9uQWRkPWZ1bmN0aW9uKHQpe3RoaXMubWFwPXQsdGhpcy5sb2FkKCksdGhpcy5jYW52YXMmJnRoaXMuYW5pbWF0ZSYmdGhpcy5wbGF5KCl9LHIucHJvdG90eXBlLm9uUmVtb3ZlPWZ1bmN0aW9uKCl7dGhpcy5wYXVzZSgpfSxyLnByb3RvdHlwZS5wcmVwYXJlPWZ1bmN0aW9uKCl7dmFyIGU9ITE7aWYodGhpcy5jYW52YXMud2lkdGghPT10aGlzLndpZHRoJiYodGhpcy53aWR0aD10aGlzLmNhbnZhcy53aWR0aCxlPSEwKSx0aGlzLmNhbnZhcy5oZWlnaHQhPT10aGlzLmhlaWdodCYmKHRoaXMuaGVpZ2h0PXRoaXMuY2FudmFzLmhlaWdodCxlPSEwKSwhdGhpcy5faGFzSW52YWxpZERpbWVuc2lvbnMoKSYmMCE9PU9iamVjdC5rZXlzKHRoaXMudGlsZXMpLmxlbmd0aCl7dmFyIHI9dGhpcy5tYXAucGFpbnRlci5jb250ZXh0LG49ci5nbDtmb3IodmFyIGEgaW4gdGhpcy5ib3VuZHNCdWZmZXJ8fCh0aGlzLmJvdW5kc0J1ZmZlcj1yLmNyZWF0ZVZlcnRleEJ1ZmZlcih0aGlzLl9ib3VuZHNBcnJheSx0LnJhc3RlckJvdW5kc0F0dHJpYnV0ZXMubWVtYmVycykpLHRoaXMuYm91bmRzU2VnbWVudHN8fCh0aGlzLmJvdW5kc1NlZ21lbnRzPXQuU2VnbWVudFZlY3Rvci5zaW1wbGVTZWdtZW50KDAsMCw0LDIpKSx0aGlzLnRleHR1cmU/KGV8fHRoaXMuX3BsYXlpbmcpJiZ0aGlzLnRleHR1cmUudXBkYXRlKHRoaXMuY2FudmFzLHtwcmVtdWx0aXBseTohMH0pOnRoaXMudGV4dHVyZT1uZXcgdC5UZXh0dXJlKHIsdGhpcy5jYW52YXMsbi5SR0JBLHtwcmVtdWx0aXBseTohMH0pLHRoaXMudGlsZXMpe3ZhciBpPXRoaXMudGlsZXNbYV07ImxvYWRlZCIhPT1pLnN0YXRlJiYoaS5zdGF0ZT0ibG9hZGVkIixpLnRleHR1cmU9dGhpcy50ZXh0dXJlKX19fSxyLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToiY2FudmFzIixjb29yZGluYXRlczp0aGlzLmNvb3JkaW5hdGVzfX0sci5wcm90b3R5cGUuaGFzVHJhbnNpdGlvbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9wbGF5aW5nfSxyLnByb3RvdHlwZS5faGFzSW52YWxpZERpbWVuc2lvbnM9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MCxlPVt0aGlzLmNhbnZhcy53aWR0aCx0aGlzLmNhbnZhcy5oZWlnaHRdO3Q8ZS5sZW5ndGg7dCs9MSl7dmFyIHI9ZVt0XTtpZihpc05hTihyKXx8cjw9MClyZXR1cm4hMH1yZXR1cm4hMX0scn0oUCksST17dmVjdG9yOlMscmFzdGVyOkUsInJhc3Rlci1kZW0iOkwsZ2VvanNvbjpDLHZpZGVvOk8saW1hZ2U6UCxjYW52YXM6en0sRD1mdW5jdGlvbihlLHIsbixhKXt2YXIgaT1uZXcgSVtyLnR5cGVdKGUscixuLGEpO2lmKGkuaWQhPT1lKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgU291cmNlIGlkIHRvIGJlICIrZSsiIGluc3RlYWQgb2YgIitpLmlkKTtyZXR1cm4gdC5iaW5kQWxsKFsibG9hZCIsImFib3J0IiwidW5sb2FkIiwic2VyaWFsaXplIiwicHJlcGFyZSJdLGkpLGl9O2Z1bmN0aW9uIFIoZSxyKXt2YXIgbj10LmlkZW50aXR5KFtdKTtyZXR1cm4gdC50cmFuc2xhdGUobixuLFsxLDEsMF0pLHQuc2NhbGUobixuLFsuNSplLndpZHRoLC41KmUuaGVpZ2h0LDFdKSx0Lm11bHRpcGx5KG4sbixlLmNhbGN1bGF0ZVBvc01hdHJpeChyLnRvVW53cmFwcGVkKCkpKX1mdW5jdGlvbiBGKHQsZSxyLG4sYSl7dmFyIGk9ZnVuY3Rpb24odCxlLHIpe2lmKHQpZm9yKHZhciBuPTAsYT10O248YS5sZW5ndGg7bis9MSl7dmFyIGk9ZVthW25dXTtpZihpJiZpLnNvdXJjZT09PXImJiJmaWxsLWV4dHJ1c2lvbiI9PT1pLnR5cGUpcmV0dXJuITB9ZWxzZSBmb3IodmFyIG8gaW4gZSl7dmFyIHM9ZVtvXTtpZihzLnNvdXJjZT09PXImJiJmaWxsLWV4dHJ1c2lvbiI9PT1zLnR5cGUpcmV0dXJuITB9cmV0dXJuITF9KG4mJm4ubGF5ZXJzLGUsdC5pZCksbz1hLm1heFBpdGNoU2NhbGVGYWN0b3IoKSxzPXQudGlsZXNJbihyLG8saSk7cy5zb3J0KEIpO2Zvcih2YXIgbD1bXSxjPTAsdT1zO2M8dS5sZW5ndGg7Yys9MSl7dmFyIGg9dVtjXTtsLnB1c2goe3dyYXBwZWRUaWxlSUQ6aC50aWxlSUQud3JhcHBlZCgpLmtleSxxdWVyeVJlc3VsdHM6aC50aWxlLnF1ZXJ5UmVuZGVyZWRGZWF0dXJlcyhlLHQuX3N0YXRlLGgucXVlcnlHZW9tZXRyeSxoLmNhbWVyYVF1ZXJ5R2VvbWV0cnksaC5zY2FsZSxuLGEsbyxSKHQudHJhbnNmb3JtLGgudGlsZUlEKSl9KX12YXIgZj1mdW5jdGlvbih0KXtmb3IodmFyIGU9e30scj17fSxuPTAsYT10O248YS5sZW5ndGg7bis9MSl7dmFyIGk9YVtuXSxvPWkucXVlcnlSZXN1bHRzLHM9aS53cmFwcGVkVGlsZUlELGw9cltzXT1yW3NdfHx7fTtmb3IodmFyIGMgaW4gbylmb3IodmFyIHU9b1tjXSxoPWxbY109bFtjXXx8e30sZj1lW2NdPWVbY118fFtdLHA9MCxkPXU7cDxkLmxlbmd0aDtwKz0xKXt2YXIgZz1kW3BdO2hbZy5mZWF0dXJlSW5kZXhdfHwoaFtnLmZlYXR1cmVJbmRleF09ITAsZi5wdXNoKGcpKX19cmV0dXJuIGV9KGwpO2Zvcih2YXIgcCBpbiBmKWZbcF0uZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgcj1lLmZlYXR1cmUsbj10LmdldEZlYXR1cmVTdGF0ZShyLmxheWVyWyJzb3VyY2UtbGF5ZXIiXSxyLmlkKTtyLnNvdXJjZT1yLmxheWVyLnNvdXJjZSxyLmxheWVyWyJzb3VyY2UtbGF5ZXIiXSYmKHIuc291cmNlTGF5ZXI9ci5sYXllclsic291cmNlLWxheWVyIl0pLHIuc3RhdGU9bn0pO3JldHVybiBmfWZ1bmN0aW9uIEIodCxlKXt2YXIgcj10LnRpbGVJRCxuPWUudGlsZUlEO3JldHVybiByLm92ZXJzY2FsZWRaLW4ub3ZlcnNjYWxlZFp8fHIuY2Fub25pY2FsLnktbi5jYW5vbmljYWwueXx8ci53cmFwLW4ud3JhcHx8ci5jYW5vbmljYWwueC1uLmNhbm9uaWNhbC54fXZhciBOPWZ1bmN0aW9uKHQsZSl7dGhpcy5tYXg9dCx0aGlzLm9uUmVtb3ZlPWUsdGhpcy5yZXNldCgpfTtOLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe2Zvcih2YXIgdCBpbiB0aGlzLmRhdGEpZm9yKHZhciBlPTAscj10aGlzLmRhdGFbdF07ZTxyLmxlbmd0aDtlKz0xKXt2YXIgbj1yW2VdO24udGltZW91dCYmY2xlYXJUaW1lb3V0KG4udGltZW91dCksdGhpcy5vblJlbW92ZShuLnZhbHVlKX1yZXR1cm4gdGhpcy5kYXRhPXt9LHRoaXMub3JkZXI9W10sdGhpc30sTi5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLGE9dC53cmFwcGVkKCkua2V5O3ZvaWQgMD09PXRoaXMuZGF0YVthXSYmKHRoaXMuZGF0YVthXT1bXSk7dmFyIGk9e3ZhbHVlOmUsdGltZW91dDp2b2lkIDB9O2lmKHZvaWQgMCE9PXImJihpLnRpbWVvdXQ9c2V0VGltZW91dChmdW5jdGlvbigpe24ucmVtb3ZlKHQsaSl9LHIpKSx0aGlzLmRhdGFbYV0ucHVzaChpKSx0aGlzLm9yZGVyLnB1c2goYSksdGhpcy5vcmRlci5sZW5ndGg+dGhpcy5tYXgpe3ZhciBvPXRoaXMuX2dldEFuZFJlbW92ZUJ5S2V5KHRoaXMub3JkZXJbMF0pO28mJnRoaXMub25SZW1vdmUobyl9cmV0dXJuIHRoaXN9LE4ucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gdC53cmFwcGVkKCkua2V5IGluIHRoaXMuZGF0YX0sTi5wcm90b3R5cGUuZ2V0QW5kUmVtb3ZlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmhhcyh0KT90aGlzLl9nZXRBbmRSZW1vdmVCeUtleSh0LndyYXBwZWQoKS5rZXkpOm51bGx9LE4ucHJvdG90eXBlLl9nZXRBbmRSZW1vdmVCeUtleT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmRhdGFbdF0uc2hpZnQoKTtyZXR1cm4gZS50aW1lb3V0JiZjbGVhclRpbWVvdXQoZS50aW1lb3V0KSwwPT09dGhpcy5kYXRhW3RdLmxlbmd0aCYmZGVsZXRlIHRoaXMuZGF0YVt0XSx0aGlzLm9yZGVyLnNwbGljZSh0aGlzLm9yZGVyLmluZGV4T2YodCksMSksZS52YWx1ZX0sTi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmhhcyh0KT90aGlzLmRhdGFbdC53cmFwcGVkKCkua2V5XVswXS52YWx1ZTpudWxsfSxOLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24odCxlKXtpZighdGhpcy5oYXModCkpcmV0dXJuIHRoaXM7dmFyIHI9dC53cmFwcGVkKCkua2V5LG49dm9pZCAwPT09ZT8wOnRoaXMuZGF0YVtyXS5pbmRleE9mKGUpLGE9dGhpcy5kYXRhW3JdW25dO3JldHVybiB0aGlzLmRhdGFbcl0uc3BsaWNlKG4sMSksYS50aW1lb3V0JiZjbGVhclRpbWVvdXQoYS50aW1lb3V0KSwwPT09dGhpcy5kYXRhW3JdLmxlbmd0aCYmZGVsZXRlIHRoaXMuZGF0YVtyXSx0aGlzLm9uUmVtb3ZlKGEudmFsdWUpLHRoaXMub3JkZXIuc3BsaWNlKHRoaXMub3JkZXIuaW5kZXhPZihyKSwxKSx0aGlzfSxOLnByb3RvdHlwZS5zZXRNYXhTaXplPWZ1bmN0aW9uKHQpe2Zvcih0aGlzLm1heD10O3RoaXMub3JkZXIubGVuZ3RoPnRoaXMubWF4Oyl7dmFyIGU9dGhpcy5fZ2V0QW5kUmVtb3ZlQnlLZXkodGhpcy5vcmRlclswXSk7ZSYmdGhpcy5vblJlbW92ZShlKX1yZXR1cm4gdGhpc307dmFyIGo9ZnVuY3Rpb24odCxlLHIpe3RoaXMuY29udGV4dD10O3ZhciBuPXQuZ2w7dGhpcy5idWZmZXI9bi5jcmVhdGVCdWZmZXIoKSx0aGlzLmR5bmFtaWNEcmF3PUJvb2xlYW4ociksdGhpcy5jb250ZXh0LnVuYmluZFZBTygpLHQuYmluZEVsZW1lbnRCdWZmZXIuc2V0KHRoaXMuYnVmZmVyKSxuLmJ1ZmZlckRhdGEobi5FTEVNRU5UX0FSUkFZX0JVRkZFUixlLmFycmF5QnVmZmVyLHRoaXMuZHluYW1pY0RyYXc/bi5EWU5BTUlDX0RSQVc6bi5TVEFUSUNfRFJBVyksdGhpcy5keW5hbWljRHJhd3x8ZGVsZXRlIGUuYXJyYXlCdWZmZXJ9O2oucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt0aGlzLmNvbnRleHQuYmluZEVsZW1lbnRCdWZmZXIuc2V0KHRoaXMuYnVmZmVyKX0sai5wcm90b3R5cGUudXBkYXRlRGF0YT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmNvbnRleHQuZ2w7dGhpcy5jb250ZXh0LnVuYmluZFZBTygpLHRoaXMuYmluZCgpLGUuYnVmZmVyU3ViRGF0YShlLkVMRU1FTlRfQVJSQVlfQlVGRkVSLDAsdC5hcnJheUJ1ZmZlcil9LGoucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNvbnRleHQuZ2w7dGhpcy5idWZmZXImJih0LmRlbGV0ZUJ1ZmZlcih0aGlzLmJ1ZmZlciksZGVsZXRlIHRoaXMuYnVmZmVyKX07dmFyIFY9e0ludDg6IkJZVEUiLFVpbnQ4OiJVTlNJR05FRF9CWVRFIixJbnQxNjoiU0hPUlQiLFVpbnQxNjoiVU5TSUdORURfU0hPUlQiLEludDMyOiJJTlQiLFVpbnQzMjoiVU5TSUdORURfSU5UIixGbG9hdDMyOiJGTE9BVCJ9LFU9ZnVuY3Rpb24odCxlLHIsbil7dGhpcy5sZW5ndGg9ZS5sZW5ndGgsdGhpcy5hdHRyaWJ1dGVzPXIsdGhpcy5pdGVtU2l6ZT1lLmJ5dGVzUGVyRWxlbWVudCx0aGlzLmR5bmFtaWNEcmF3PW4sdGhpcy5jb250ZXh0PXQ7dmFyIGE9dC5nbDt0aGlzLmJ1ZmZlcj1hLmNyZWF0ZUJ1ZmZlcigpLHQuYmluZFZlcnRleEJ1ZmZlci5zZXQodGhpcy5idWZmZXIpLGEuYnVmZmVyRGF0YShhLkFSUkFZX0JVRkZFUixlLmFycmF5QnVmZmVyLHRoaXMuZHluYW1pY0RyYXc/YS5EWU5BTUlDX0RSQVc6YS5TVEFUSUNfRFJBVyksdGhpcy5keW5hbWljRHJhd3x8ZGVsZXRlIGUuYXJyYXlCdWZmZXJ9O1UucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt0aGlzLmNvbnRleHQuYmluZFZlcnRleEJ1ZmZlci5zZXQodGhpcy5idWZmZXIpfSxVLnByb3RvdHlwZS51cGRhdGVEYXRhPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY29udGV4dC5nbDt0aGlzLmJpbmQoKSxlLmJ1ZmZlclN1YkRhdGEoZS5BUlJBWV9CVUZGRVIsMCx0LmFycmF5QnVmZmVyKX0sVS5wcm90b3R5cGUuZW5hYmxlQXR0cmlidXRlcz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wO3I8dGhpcy5hdHRyaWJ1dGVzLmxlbmd0aDtyKyspe3ZhciBuPXRoaXMuYXR0cmlidXRlc1tyXSxhPWUuYXR0cmlidXRlc1tuLm5hbWVdO3ZvaWQgMCE9PWEmJnQuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoYSl9fSxVLnByb3RvdHlwZS5zZXRWZXJ0ZXhBdHRyaWJQb2ludGVycz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPTA7bjx0aGlzLmF0dHJpYnV0ZXMubGVuZ3RoO24rKyl7dmFyIGE9dGhpcy5hdHRyaWJ1dGVzW25dLGk9ZS5hdHRyaWJ1dGVzW2EubmFtZV07dm9pZCAwIT09aSYmdC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGksYS5jb21wb25lbnRzLHRbVlthLnR5cGVdXSwhMSx0aGlzLml0ZW1TaXplLGEub2Zmc2V0K3RoaXMuaXRlbVNpemUqKHJ8fDApKX19LFUucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNvbnRleHQuZ2w7dGhpcy5idWZmZXImJih0LmRlbGV0ZUJ1ZmZlcih0aGlzLmJ1ZmZlciksZGVsZXRlIHRoaXMuYnVmZmVyKX07dmFyIHE9ZnVuY3Rpb24odCl7dGhpcy5nbD10LmdsLHRoaXMuZGVmYXVsdD10aGlzLmdldERlZmF1bHQoKSx0aGlzLmN1cnJlbnQ9dGhpcy5kZWZhdWx0LHRoaXMuZGlydHk9ITF9O3EucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnR9LHEucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXt9LHEucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kZWZhdWx0fSxxLnByb3RvdHlwZS5zZXREZWZhdWx0PWZ1bmN0aW9uKCl7dGhpcy5zZXQodGhpcy5kZWZhdWx0KX07dmFyIEg9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gcigpe2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBlJiYoci5fX3Byb3RvX189ZSksci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixyLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuIHQuQ29sb3IudHJhbnNwYXJlbnR9LHIucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmN1cnJlbnQ7KHQuciE9PWUucnx8dC5nIT09ZS5nfHx0LmIhPT1lLmJ8fHQuYSE9PWUuYXx8dGhpcy5kaXJ0eSkmJih0aGlzLmdsLmNsZWFyQ29sb3IodC5yLHQuZyx0LmIsdC5hKSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExKX0scn0ocSksRz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXtyZXR1cm4gMX0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpeyh0IT09dGhpcy5jdXJyZW50fHx0aGlzLmRpcnR5KSYmKHRoaXMuZ2wuY2xlYXJEZXB0aCh0KSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExKX0sZX0ocSksWT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXtyZXR1cm4gMH0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpeyh0IT09dGhpcy5jdXJyZW50fHx0aGlzLmRpcnR5KSYmKHRoaXMuZ2wuY2xlYXJTdGVuY2lsKHQpLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITEpfSxlfShxKSxXPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVyblshMCwhMCwhMCwhMF19LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmN1cnJlbnQ7KHRbMF0hPT1lWzBdfHx0WzFdIT09ZVsxXXx8dFsyXSE9PWVbMl18fHRbM10hPT1lWzNdfHx0aGlzLmRpcnR5KSYmKHRoaXMuZ2wuY29sb3JNYXNrKHRbMF0sdFsxXSx0WzJdLHRbM10pLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITEpfSxlfShxKSxYPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiEwfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7KHQhPT10aGlzLmN1cnJlbnR8fHRoaXMuZGlydHkpJiYodGhpcy5nbC5kZXB0aE1hc2sodCksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMSl9LGV9KHEpLFo9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuIDI1NX0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpeyh0IT09dGhpcy5jdXJyZW50fHx0aGlzLmRpcnR5KSYmKHRoaXMuZ2wuc3RlbmNpbE1hc2sodCksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMSl9LGV9KHEpLEo9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJue2Z1bmM6dGhpcy5nbC5BTFdBWVMscmVmOjAsbWFzazoyNTV9fSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jdXJyZW50Oyh0LmZ1bmMhPT1lLmZ1bmN8fHQucmVmIT09ZS5yZWZ8fHQubWFzayE9PWUubWFza3x8dGhpcy5kaXJ0eSkmJih0aGlzLmdsLnN0ZW5jaWxGdW5jKHQuZnVuYyx0LnJlZix0Lm1hc2spLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITEpfSxlfShxKSxLPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZ2w7cmV0dXJuW3QuS0VFUCx0LktFRVAsdC5LRUVQXX0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY3VycmVudDsodFswXSE9PWVbMF18fHRbMV0hPT1lWzFdfHx0WzJdIT09ZVsyXXx8dGhpcy5kaXJ0eSkmJih0aGlzLmdsLnN0ZW5jaWxPcCh0WzBdLHRbMV0sdFsyXSksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMSl9LGV9KHEpLFE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuITF9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXtpZih0IT09dGhpcy5jdXJyZW50fHx0aGlzLmRpcnR5KXt2YXIgZT10aGlzLmdsO3Q/ZS5lbmFibGUoZS5TVEVOQ0lMX1RFU1QpOmUuZGlzYWJsZShlLlNURU5DSUxfVEVTVCksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMX19LGV9KHEpLCQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuWzAsMV19LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmN1cnJlbnQ7KHRbMF0hPT1lWzBdfHx0WzFdIT09ZVsxXXx8dGhpcy5kaXJ0eSkmJih0aGlzLmdsLmRlcHRoUmFuZ2UodFswXSx0WzFdKSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExKX0sZX0ocSksdHQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuITF9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXtpZih0IT09dGhpcy5jdXJyZW50fHx0aGlzLmRpcnR5KXt2YXIgZT10aGlzLmdsO3Q/ZS5lbmFibGUoZS5ERVBUSF9URVNUKTplLmRpc2FibGUoZS5ERVBUSF9URVNUKSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExfX0sZX0ocSksZXQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2wuTEVTU30sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpeyh0IT09dGhpcy5jdXJyZW50fHx0aGlzLmRpcnR5KSYmKHRoaXMuZ2wuZGVwdGhGdW5jKHQpLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITEpfSxlfShxKSxydD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe2lmKHQhPT10aGlzLmN1cnJlbnR8fHRoaXMuZGlydHkpe3ZhciBlPXRoaXMuZ2w7dD9lLmVuYWJsZShlLkJMRU5EKTplLmRpc2FibGUoZS5CTEVORCksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMX19LGV9KHEpLG50PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZ2w7cmV0dXJuW3QuT05FLHQuWkVST119LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmN1cnJlbnQ7KHRbMF0hPT1lWzBdfHx0WzFdIT09ZVsxXXx8dGhpcy5kaXJ0eSkmJih0aGlzLmdsLmJsZW5kRnVuYyh0WzBdLHRbMV0pLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITEpfSxlfShxKSxhdD1mdW5jdGlvbihlKXtmdW5jdGlvbiByKCl7ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGUmJihyLl9fcHJvdG9fXz1lKSxyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlKSxyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yLHIucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdC5Db2xvci50cmFuc3BhcmVudH0sci5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY3VycmVudDsodC5yIT09ZS5yfHx0LmchPT1lLmd8fHQuYiE9PWUuYnx8dC5hIT09ZS5hfHx0aGlzLmRpcnR5KSYmKHRoaXMuZ2wuYmxlbmRDb2xvcih0LnIsdC5nLHQuYix0LmEpLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITEpfSxyfShxKSxpdD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nbC5GVU5DX0FERH0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpeyh0IT09dGhpcy5jdXJyZW50fHx0aGlzLmRpcnR5KSYmKHRoaXMuZ2wuYmxlbmRFcXVhdGlvbih0KSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExKX0sZX0ocSksb3Q9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuITF9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXtpZih0IT09dGhpcy5jdXJyZW50fHx0aGlzLmRpcnR5KXt2YXIgZT10aGlzLmdsO3Q/ZS5lbmFibGUoZS5DVUxMX0ZBQ0UpOmUuZGlzYWJsZShlLkNVTExfRkFDRSksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMX19LGV9KHEpLHN0PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdsLkJBQ0t9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXsodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSkmJih0aGlzLmdsLmN1bGxGYWNlKHQpLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITEpfSxlfShxKSxsdD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nbC5DQ1d9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXsodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSkmJih0aGlzLmdsLmZyb250RmFjZSh0KSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExKX0sZX0ocSksY3Q9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXsodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSkmJih0aGlzLmdsLnVzZVByb2dyYW0odCksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMSl9LGV9KHEpLHV0PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdsLlRFWFRVUkUwfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7KHQhPT10aGlzLmN1cnJlbnR8fHRoaXMuZGlydHkpJiYodGhpcy5nbC5hY3RpdmVUZXh0dXJlKHQpLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITEpfSxlfShxKSxodD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmdsO3JldHVyblswLDAsdC5kcmF3aW5nQnVmZmVyV2lkdGgsdC5kcmF3aW5nQnVmZmVySGVpZ2h0XX0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY3VycmVudDsodFswXSE9PWVbMF18fHRbMV0hPT1lWzFdfHx0WzJdIT09ZVsyXXx8dFszXSE9PWVbM118fHRoaXMuZGlydHkpJiYodGhpcy5nbC52aWV3cG9ydCh0WzBdLHRbMV0sdFsyXSx0WzNdKSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExKX0sZX0ocSksZnQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXtpZih0IT09dGhpcy5jdXJyZW50fHx0aGlzLmRpcnR5KXt2YXIgZT10aGlzLmdsO2UuYmluZEZyYW1lYnVmZmVyKGUuRlJBTUVCVUZGRVIsdCksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMX19LGV9KHEpLHB0PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiBudWxsfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7aWYodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSl7dmFyIGU9dGhpcy5nbDtlLmJpbmRSZW5kZXJidWZmZXIoZS5SRU5ERVJCVUZGRVIsdCksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMX19LGV9KHEpLGR0PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiBudWxsfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7aWYodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSl7dmFyIGU9dGhpcy5nbDtlLmJpbmRUZXh0dXJlKGUuVEVYVFVSRV8yRCx0KSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExfX0sZX0ocSksZ3Q9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXtpZih0IT09dGhpcy5jdXJyZW50fHx0aGlzLmRpcnR5KXt2YXIgZT10aGlzLmdsO2UuYmluZEJ1ZmZlcihlLkFSUkFZX0JVRkZFUix0KSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExfX0sZX0ocSksdnQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmdsO2UuYmluZEJ1ZmZlcihlLkVMRU1FTlRfQVJSQVlfQlVGRkVSLHQpLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITF9LGV9KHEpLG10PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dC5jYWxsKHRoaXMsZSksdGhpcy52YW89ZS5leHRWZXJ0ZXhBcnJheU9iamVjdH1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiBudWxsfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7dGhpcy52YW8mJih0IT09dGhpcy5jdXJyZW50fHx0aGlzLmRpcnR5KSYmKHRoaXMudmFvLmJpbmRWZXJ0ZXhBcnJheU9FUyh0KSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExKX0sZX0ocSkseXQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuIDR9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXtpZih0IT09dGhpcy5jdXJyZW50fHx0aGlzLmRpcnR5KXt2YXIgZT10aGlzLmdsO2UucGl4ZWxTdG9yZWkoZS5VTlBBQ0tfQUxJR05NRU5ULHQpLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITF9fSxlfShxKSx4dD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe2lmKHQhPT10aGlzLmN1cnJlbnR8fHRoaXMuZGlydHkpe3ZhciBlPXRoaXMuZ2w7ZS5waXhlbFN0b3JlaShlLlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCx0KSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExfX0sZX0ocSksYnQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuITF9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXtpZih0IT09dGhpcy5jdXJyZW50fHx0aGlzLmRpcnR5KXt2YXIgZT10aGlzLmdsO2UucGl4ZWxTdG9yZWkoZS5VTlBBQ0tfRkxJUF9ZX1dFQkdMLHQpLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITF9fSxlfShxKSxfdD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUscil7dC5jYWxsKHRoaXMsZSksdGhpcy5jb250ZXh0PWUsdGhpcy5wYXJlbnQ9cn1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiBudWxsfSxlfShxKSx3dD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLnNldERpcnR5PWZ1bmN0aW9uKCl7dGhpcy5kaXJ0eT0hMH0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe2lmKHQhPT10aGlzLmN1cnJlbnR8fHRoaXMuZGlydHkpe3RoaXMuY29udGV4dC5iaW5kRnJhbWVidWZmZXIuc2V0KHRoaXMucGFyZW50KTt2YXIgZT10aGlzLmdsO2UuZnJhbWVidWZmZXJUZXh0dXJlMkQoZS5GUkFNRUJVRkZFUixlLkNPTE9SX0FUVEFDSE1FTlQwLGUuVEVYVFVSRV8yRCx0LDApLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITF9fSxlfShfdCksa3Q9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7aWYodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSl7dGhpcy5jb250ZXh0LmJpbmRGcmFtZWJ1ZmZlci5zZXQodGhpcy5wYXJlbnQpO3ZhciBlPXRoaXMuZ2w7ZS5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihlLkZSQU1FQlVGRkVSLGUuREVQVEhfQVRUQUNITUVOVCxlLlJFTkRFUkJVRkZFUix0KSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExfX0sZX0oX3QpLFR0PWZ1bmN0aW9uKHQsZSxyKXt0aGlzLmNvbnRleHQ9dCx0aGlzLndpZHRoPWUsdGhpcy5oZWlnaHQ9cjt2YXIgbj10LmdsLGE9dGhpcy5mcmFtZWJ1ZmZlcj1uLmNyZWF0ZUZyYW1lYnVmZmVyKCk7dGhpcy5jb2xvckF0dGFjaG1lbnQ9bmV3IHd0KHQsYSksdGhpcy5kZXB0aEF0dGFjaG1lbnQ9bmV3IGt0KHQsYSl9O1R0LnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb250ZXh0LmdsLGU9dGhpcy5jb2xvckF0dGFjaG1lbnQuZ2V0KCk7ZSYmdC5kZWxldGVUZXh0dXJlKGUpO3ZhciByPXRoaXMuZGVwdGhBdHRhY2htZW50LmdldCgpO3ImJnQuZGVsZXRlUmVuZGVyYnVmZmVyKHIpLHQuZGVsZXRlRnJhbWVidWZmZXIodGhpcy5mcmFtZWJ1ZmZlcil9O3ZhciBNdD1mdW5jdGlvbih0LGUscil7dGhpcy5mdW5jPXQsdGhpcy5tYXNrPWUsdGhpcy5yYW5nZT1yfTtNdC5SZWFkT25seT0hMSxNdC5SZWFkV3JpdGU9ITAsTXQuZGlzYWJsZWQ9bmV3IE10KDUxOSxNdC5SZWFkT25seSxbMCwxXSk7dmFyIEF0PWZ1bmN0aW9uKHQsZSxyLG4sYSxpKXt0aGlzLnRlc3Q9dCx0aGlzLnJlZj1lLHRoaXMubWFzaz1yLHRoaXMuZmFpbD1uLHRoaXMuZGVwdGhGYWlsPWEsdGhpcy5wYXNzPWl9O0F0LmRpc2FibGVkPW5ldyBBdCh7ZnVuYzo1MTksbWFzazowfSwwLDAsNzY4MCw3NjgwLDc2ODApO3ZhciBTdD1mdW5jdGlvbih0LGUscil7dGhpcy5ibGVuZEZ1bmN0aW9uPXQsdGhpcy5ibGVuZENvbG9yPWUsdGhpcy5tYXNrPXJ9O1N0LmRpc2FibGVkPW5ldyBTdChTdC5SZXBsYWNlPVsxLDBdLHQuQ29sb3IudHJhbnNwYXJlbnQsWyExLCExLCExLCExXSksU3QudW5ibGVuZGVkPW5ldyBTdChTdC5SZXBsYWNlLHQuQ29sb3IudHJhbnNwYXJlbnQsWyEwLCEwLCEwLCEwXSksU3QuYWxwaGFCbGVuZGVkPW5ldyBTdChbMSw3NzFdLHQuQ29sb3IudHJhbnNwYXJlbnQsWyEwLCEwLCEwLCEwXSk7dmFyIEV0PWZ1bmN0aW9uKHQsZSxyKXt0aGlzLmVuYWJsZT10LHRoaXMubW9kZT1lLHRoaXMuZnJvbnRGYWNlPXJ9O0V0LmRpc2FibGVkPW5ldyBFdCghMSwxMDI5LDIzMDUpLEV0LmJhY2tDQ1c9bmV3IEV0KCEwLDEwMjksMjMwNSk7dmFyIEx0PWZ1bmN0aW9uKHQpe3RoaXMuZ2w9dCx0aGlzLmV4dFZlcnRleEFycmF5T2JqZWN0PXRoaXMuZ2wuZ2V0RXh0ZW5zaW9uKCJPRVNfdmVydGV4X2FycmF5X29iamVjdCIpLHRoaXMuY2xlYXJDb2xvcj1uZXcgSCh0aGlzKSx0aGlzLmNsZWFyRGVwdGg9bmV3IEcodGhpcyksdGhpcy5jbGVhclN0ZW5jaWw9bmV3IFkodGhpcyksdGhpcy5jb2xvck1hc2s9bmV3IFcodGhpcyksdGhpcy5kZXB0aE1hc2s9bmV3IFgodGhpcyksdGhpcy5zdGVuY2lsTWFzaz1uZXcgWih0aGlzKSx0aGlzLnN0ZW5jaWxGdW5jPW5ldyBKKHRoaXMpLHRoaXMuc3RlbmNpbE9wPW5ldyBLKHRoaXMpLHRoaXMuc3RlbmNpbFRlc3Q9bmV3IFEodGhpcyksdGhpcy5kZXB0aFJhbmdlPW5ldyAkKHRoaXMpLHRoaXMuZGVwdGhUZXN0PW5ldyB0dCh0aGlzKSx0aGlzLmRlcHRoRnVuYz1uZXcgZXQodGhpcyksdGhpcy5ibGVuZD1uZXcgcnQodGhpcyksdGhpcy5ibGVuZEZ1bmM9bmV3IG50KHRoaXMpLHRoaXMuYmxlbmRDb2xvcj1uZXcgYXQodGhpcyksdGhpcy5ibGVuZEVxdWF0aW9uPW5ldyBpdCh0aGlzKSx0aGlzLmN1bGxGYWNlPW5ldyBvdCh0aGlzKSx0aGlzLmN1bGxGYWNlU2lkZT1uZXcgc3QodGhpcyksdGhpcy5mcm9udEZhY2U9bmV3IGx0KHRoaXMpLHRoaXMucHJvZ3JhbT1uZXcgY3QodGhpcyksdGhpcy5hY3RpdmVUZXh0dXJlPW5ldyB1dCh0aGlzKSx0aGlzLnZpZXdwb3J0PW5ldyBodCh0aGlzKSx0aGlzLmJpbmRGcmFtZWJ1ZmZlcj1uZXcgZnQodGhpcyksdGhpcy5iaW5kUmVuZGVyYnVmZmVyPW5ldyBwdCh0aGlzKSx0aGlzLmJpbmRUZXh0dXJlPW5ldyBkdCh0aGlzKSx0aGlzLmJpbmRWZXJ0ZXhCdWZmZXI9bmV3IGd0KHRoaXMpLHRoaXMuYmluZEVsZW1lbnRCdWZmZXI9bmV3IHZ0KHRoaXMpLHRoaXMuYmluZFZlcnRleEFycmF5T0VTPXRoaXMuZXh0VmVydGV4QXJyYXlPYmplY3QmJm5ldyBtdCh0aGlzKSx0aGlzLnBpeGVsU3RvcmVVbnBhY2s9bmV3IHl0KHRoaXMpLHRoaXMucGl4ZWxTdG9yZVVucGFja1ByZW11bHRpcGx5QWxwaGE9bmV3IHh0KHRoaXMpLHRoaXMucGl4ZWxTdG9yZVVucGFja0ZsaXBZPW5ldyBidCh0aGlzKSx0aGlzLmV4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYz10LmdldEV4dGVuc2lvbigiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIil8fHQuZ2V0RXh0ZW5zaW9uKCJNT1pfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIil8fHQuZ2V0RXh0ZW5zaW9uKCJXRUJLSVRfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIiksdGhpcy5leHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMmJih0aGlzLmV4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpY01heD10LmdldFBhcmFtZXRlcih0aGlzLmV4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5NQVhfVEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQpKSx0aGlzLmV4dFRleHR1cmVIYWxmRmxvYXQ9dC5nZXRFeHRlbnNpb24oIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKSx0aGlzLmV4dFRleHR1cmVIYWxmRmxvYXQmJnQuZ2V0RXh0ZW5zaW9uKCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpfTtMdC5wcm90b3R5cGUuc2V0RGVmYXVsdD1mdW5jdGlvbigpe3RoaXMudW5iaW5kVkFPKCksdGhpcy5jbGVhckNvbG9yLnNldERlZmF1bHQoKSx0aGlzLmNsZWFyRGVwdGguc2V0RGVmYXVsdCgpLHRoaXMuY2xlYXJTdGVuY2lsLnNldERlZmF1bHQoKSx0aGlzLmNvbG9yTWFzay5zZXREZWZhdWx0KCksdGhpcy5kZXB0aE1hc2suc2V0RGVmYXVsdCgpLHRoaXMuc3RlbmNpbE1hc2suc2V0RGVmYXVsdCgpLHRoaXMuc3RlbmNpbEZ1bmMuc2V0RGVmYXVsdCgpLHRoaXMuc3RlbmNpbE9wLnNldERlZmF1bHQoKSx0aGlzLnN0ZW5jaWxUZXN0LnNldERlZmF1bHQoKSx0aGlzLmRlcHRoUmFuZ2Uuc2V0RGVmYXVsdCgpLHRoaXMuZGVwdGhUZXN0LnNldERlZmF1bHQoKSx0aGlzLmRlcHRoRnVuYy5zZXREZWZhdWx0KCksdGhpcy5ibGVuZC5zZXREZWZhdWx0KCksdGhpcy5ibGVuZEZ1bmMuc2V0RGVmYXVsdCgpLHRoaXMuYmxlbmRDb2xvci5zZXREZWZhdWx0KCksdGhpcy5ibGVuZEVxdWF0aW9uLnNldERlZmF1bHQoKSx0aGlzLmN1bGxGYWNlLnNldERlZmF1bHQoKSx0aGlzLmN1bGxGYWNlU2lkZS5zZXREZWZhdWx0KCksdGhpcy5mcm9udEZhY2Uuc2V0RGVmYXVsdCgpLHRoaXMucHJvZ3JhbS5zZXREZWZhdWx0KCksdGhpcy5hY3RpdmVUZXh0dXJlLnNldERlZmF1bHQoKSx0aGlzLmJpbmRGcmFtZWJ1ZmZlci5zZXREZWZhdWx0KCksdGhpcy5waXhlbFN0b3JlVW5wYWNrLnNldERlZmF1bHQoKSx0aGlzLnBpeGVsU3RvcmVVbnBhY2tQcmVtdWx0aXBseUFscGhhLnNldERlZmF1bHQoKSx0aGlzLnBpeGVsU3RvcmVVbnBhY2tGbGlwWS5zZXREZWZhdWx0KCl9LEx0LnByb3RvdHlwZS5zZXREaXJ0eT1mdW5jdGlvbigpe3RoaXMuY2xlYXJDb2xvci5kaXJ0eT0hMCx0aGlzLmNsZWFyRGVwdGguZGlydHk9ITAsdGhpcy5jbGVhclN0ZW5jaWwuZGlydHk9ITAsdGhpcy5jb2xvck1hc2suZGlydHk9ITAsdGhpcy5kZXB0aE1hc2suZGlydHk9ITAsdGhpcy5zdGVuY2lsTWFzay5kaXJ0eT0hMCx0aGlzLnN0ZW5jaWxGdW5jLmRpcnR5PSEwLHRoaXMuc3RlbmNpbE9wLmRpcnR5PSEwLHRoaXMuc3RlbmNpbFRlc3QuZGlydHk9ITAsdGhpcy5kZXB0aFJhbmdlLmRpcnR5PSEwLHRoaXMuZGVwdGhUZXN0LmRpcnR5PSEwLHRoaXMuZGVwdGhGdW5jLmRpcnR5PSEwLHRoaXMuYmxlbmQuZGlydHk9ITAsdGhpcy5ibGVuZEZ1bmMuZGlydHk9ITAsdGhpcy5ibGVuZENvbG9yLmRpcnR5PSEwLHRoaXMuYmxlbmRFcXVhdGlvbi5kaXJ0eT0hMCx0aGlzLmN1bGxGYWNlLmRpcnR5PSEwLHRoaXMuY3VsbEZhY2VTaWRlLmRpcnR5PSEwLHRoaXMuZnJvbnRGYWNlLmRpcnR5PSEwLHRoaXMucHJvZ3JhbS5kaXJ0eT0hMCx0aGlzLmFjdGl2ZVRleHR1cmUuZGlydHk9ITAsdGhpcy52aWV3cG9ydC5kaXJ0eT0hMCx0aGlzLmJpbmRGcmFtZWJ1ZmZlci5kaXJ0eT0hMCx0aGlzLmJpbmRSZW5kZXJidWZmZXIuZGlydHk9ITAsdGhpcy5iaW5kVGV4dHVyZS5kaXJ0eT0hMCx0aGlzLmJpbmRWZXJ0ZXhCdWZmZXIuZGlydHk9ITAsdGhpcy5iaW5kRWxlbWVudEJ1ZmZlci5kaXJ0eT0hMCx0aGlzLmV4dFZlcnRleEFycmF5T2JqZWN0JiYodGhpcy5iaW5kVmVydGV4QXJyYXlPRVMuZGlydHk9ITApLHRoaXMucGl4ZWxTdG9yZVVucGFjay5kaXJ0eT0hMCx0aGlzLnBpeGVsU3RvcmVVbnBhY2tQcmVtdWx0aXBseUFscGhhLmRpcnR5PSEwLHRoaXMucGl4ZWxTdG9yZVVucGFja0ZsaXBZLmRpcnR5PSEwfSxMdC5wcm90b3R5cGUuY3JlYXRlSW5kZXhCdWZmZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGoodGhpcyx0LGUpfSxMdC5wcm90b3R5cGUuY3JlYXRlVmVydGV4QnVmZmVyPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gbmV3IFUodGhpcyx0LGUscil9LEx0LnByb3RvdHlwZS5jcmVhdGVSZW5kZXJidWZmZXI9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMuZ2wsYT1uLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpO3JldHVybiB0aGlzLmJpbmRSZW5kZXJidWZmZXIuc2V0KGEpLG4ucmVuZGVyYnVmZmVyU3RvcmFnZShuLlJFTkRFUkJVRkZFUix0LGUsciksdGhpcy5iaW5kUmVuZGVyYnVmZmVyLnNldChudWxsKSxhfSxMdC5wcm90b3R5cGUuY3JlYXRlRnJhbWVidWZmZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFR0KHRoaXMsdCxlKX0sTHQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKHQpe3ZhciBlPXQuY29sb3Iscj10LmRlcHRoLG49dGhpcy5nbCxhPTA7ZSYmKGF8PW4uQ09MT1JfQlVGRkVSX0JJVCx0aGlzLmNsZWFyQ29sb3Iuc2V0KGUpLHRoaXMuY29sb3JNYXNrLnNldChbITAsITAsITAsITBdKSksdm9pZCAwIT09ciYmKGF8PW4uREVQVEhfQlVGRkVSX0JJVCx0aGlzLmRlcHRoUmFuZ2Uuc2V0KFswLDFdKSx0aGlzLmNsZWFyRGVwdGguc2V0KHIpLHRoaXMuZGVwdGhNYXNrLnNldCghMCkpLG4uY2xlYXIoYSl9LEx0LnByb3RvdHlwZS5zZXRDdWxsRmFjZT1mdW5jdGlvbih0KXshMT09PXQuZW5hYmxlP3RoaXMuY3VsbEZhY2Uuc2V0KCExKToodGhpcy5jdWxsRmFjZS5zZXQoITApLHRoaXMuY3VsbEZhY2VTaWRlLnNldCh0Lm1vZGUpLHRoaXMuZnJvbnRGYWNlLnNldCh0LmZyb250RmFjZSkpfSxMdC5wcm90b3R5cGUuc2V0RGVwdGhNb2RlPWZ1bmN0aW9uKHQpe3QuZnVuYyE9PXRoaXMuZ2wuQUxXQVlTfHx0Lm1hc2s/KHRoaXMuZGVwdGhUZXN0LnNldCghMCksdGhpcy5kZXB0aEZ1bmMuc2V0KHQuZnVuYyksdGhpcy5kZXB0aE1hc2suc2V0KHQubWFzayksdGhpcy5kZXB0aFJhbmdlLnNldCh0LnJhbmdlKSk6dGhpcy5kZXB0aFRlc3Quc2V0KCExKX0sTHQucHJvdG90eXBlLnNldFN0ZW5jaWxNb2RlPWZ1bmN0aW9uKHQpe3QudGVzdC5mdW5jIT09dGhpcy5nbC5BTFdBWVN8fHQubWFzaz8odGhpcy5zdGVuY2lsVGVzdC5zZXQoITApLHRoaXMuc3RlbmNpbE1hc2suc2V0KHQubWFzayksdGhpcy5zdGVuY2lsT3Auc2V0KFt0LmZhaWwsdC5kZXB0aEZhaWwsdC5wYXNzXSksdGhpcy5zdGVuY2lsRnVuYy5zZXQoe2Z1bmM6dC50ZXN0LmZ1bmMscmVmOnQucmVmLG1hc2s6dC50ZXN0Lm1hc2t9KSk6dGhpcy5zdGVuY2lsVGVzdC5zZXQoITEpfSxMdC5wcm90b3R5cGUuc2V0Q29sb3JNb2RlPWZ1bmN0aW9uKGUpe3QuZGVlcEVxdWFsKGUuYmxlbmRGdW5jdGlvbixTdC5SZXBsYWNlKT90aGlzLmJsZW5kLnNldCghMSk6KHRoaXMuYmxlbmQuc2V0KCEwKSx0aGlzLmJsZW5kRnVuYy5zZXQoZS5ibGVuZEZ1bmN0aW9uKSx0aGlzLmJsZW5kQ29sb3Iuc2V0KGUuYmxlbmRDb2xvcikpLHRoaXMuY29sb3JNYXNrLnNldChlLm1hc2spfSxMdC5wcm90b3R5cGUudW5iaW5kVkFPPWZ1bmN0aW9uKCl7dGhpcy5leHRWZXJ0ZXhBcnJheU9iamVjdCYmdGhpcy5iaW5kVmVydGV4QXJyYXlPRVMuc2V0KG51bGwpfTt2YXIgQ3Q9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gcihyLG4sYSl7dmFyIGk9dGhpcztlLmNhbGwodGhpcyksdGhpcy5pZD1yLHRoaXMuZGlzcGF0Y2hlcj1hLHRoaXMub24oImRhdGEiLGZ1bmN0aW9uKHQpeyJzb3VyY2UiPT09dC5kYXRhVHlwZSYmIm1ldGFkYXRhIj09PXQuc291cmNlRGF0YVR5cGUmJihpLl9zb3VyY2VMb2FkZWQ9ITApLGkuX3NvdXJjZUxvYWRlZCYmIWkuX3BhdXNlZCYmInNvdXJjZSI9PT10LmRhdGFUeXBlJiYiY29udGVudCI9PT10LnNvdXJjZURhdGFUeXBlJiYoaS5yZWxvYWQoKSxpLnRyYW5zZm9ybSYmaS51cGRhdGUoaS50cmFuc2Zvcm0pKX0pLHRoaXMub24oImVycm9yIixmdW5jdGlvbigpe2kuX3NvdXJjZUVycm9yZWQ9ITB9KSx0aGlzLl9zb3VyY2U9RChyLG4sYSx0aGlzKSx0aGlzLl90aWxlcz17fSx0aGlzLl9jYWNoZT1uZXcgTigwLHRoaXMuX3VubG9hZFRpbGUuYmluZCh0aGlzKSksdGhpcy5fdGltZXJzPXt9LHRoaXMuX2NhY2hlVGltZXJzPXt9LHRoaXMuX21heFRpbGVDYWNoZVNpemU9bnVsbCx0aGlzLl9jb3ZlcmVkVGlsZXM9e30sdGhpcy5fc3RhdGU9bmV3IHQuU291cmNlRmVhdHVyZVN0YXRlfXJldHVybiBlJiYoci5fX3Byb3RvX189ZSksci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixyLnByb3RvdHlwZS5vbkFkZD1mdW5jdGlvbih0KXt0aGlzLm1hcD10LHRoaXMuX21heFRpbGVDYWNoZVNpemU9dD90Ll9tYXhUaWxlQ2FjaGVTaXplOm51bGwsdGhpcy5fc291cmNlJiZ0aGlzLl9zb3VyY2Uub25BZGQmJnRoaXMuX3NvdXJjZS5vbkFkZCh0KX0sci5wcm90b3R5cGUub25SZW1vdmU9ZnVuY3Rpb24odCl7dGhpcy5fc291cmNlJiZ0aGlzLl9zb3VyY2Uub25SZW1vdmUmJnRoaXMuX3NvdXJjZS5vblJlbW92ZSh0KX0sci5wcm90b3R5cGUubG9hZGVkPWZ1bmN0aW9uKCl7aWYodGhpcy5fc291cmNlRXJyb3JlZClyZXR1cm4hMDtpZighdGhpcy5fc291cmNlTG9hZGVkKXJldHVybiExO2lmKCF0aGlzLl9zb3VyY2UubG9hZGVkKCkpcmV0dXJuITE7Zm9yKHZhciB0IGluIHRoaXMuX3RpbGVzKXt2YXIgZT10aGlzLl90aWxlc1t0XTtpZigibG9hZGVkIiE9PWUuc3RhdGUmJiJlcnJvcmVkIiE9PWUuc3RhdGUpcmV0dXJuITF9cmV0dXJuITB9LHIucHJvdG90eXBlLmdldFNvdXJjZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zb3VyY2V9LHIucHJvdG90eXBlLnBhdXNlPWZ1bmN0aW9uKCl7dGhpcy5fcGF1c2VkPSEwfSxyLnByb3RvdHlwZS5yZXN1bWU9ZnVuY3Rpb24oKXtpZih0aGlzLl9wYXVzZWQpe3ZhciB0PXRoaXMuX3Nob3VsZFJlbG9hZE9uUmVzdW1lO3RoaXMuX3BhdXNlZD0hMSx0aGlzLl9zaG91bGRSZWxvYWRPblJlc3VtZT0hMSx0JiZ0aGlzLnJlbG9hZCgpLHRoaXMudHJhbnNmb3JtJiZ0aGlzLnVwZGF0ZSh0aGlzLnRyYW5zZm9ybSl9fSxyLnByb3RvdHlwZS5fbG9hZFRpbGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fc291cmNlLmxvYWRUaWxlKHQsZSl9LHIucHJvdG90eXBlLl91bmxvYWRUaWxlPWZ1bmN0aW9uKHQpe2lmKHRoaXMuX3NvdXJjZS51bmxvYWRUaWxlKXJldHVybiB0aGlzLl9zb3VyY2UudW5sb2FkVGlsZSh0LGZ1bmN0aW9uKCl7fSl9LHIucHJvdG90eXBlLl9hYm9ydFRpbGU9ZnVuY3Rpb24odCl7aWYodGhpcy5fc291cmNlLmFib3J0VGlsZSlyZXR1cm4gdGhpcy5fc291cmNlLmFib3J0VGlsZSh0LGZ1bmN0aW9uKCl7fSl9LHIucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zb3VyY2Uuc2VyaWFsaXplKCl9LHIucHJvdG90eXBlLnByZXBhcmU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIHRoaXMuX3NvdXJjZS5wcmVwYXJlJiZ0aGlzLl9zb3VyY2UucHJlcGFyZSgpLHRoaXMuX3N0YXRlLmNvYWxlc2NlQ2hhbmdlcyh0aGlzLl90aWxlcyx0aGlzLm1hcD90aGlzLm1hcC5wYWludGVyOm51bGwpLHRoaXMuX3RpbGVzKXt2YXIgcj10aGlzLl90aWxlc1tlXTtyLnVwbG9hZCh0KSxyLnByZXBhcmUodGhpcy5tYXAuc3R5bGUuaW1hZ2VNYW5hZ2VyKX19LHIucHJvdG90eXBlLmdldElkcz1mdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLl90aWxlcykubWFwKE51bWJlcikuc29ydChQdCl9LHIucHJvdG90eXBlLmdldFJlbmRlcmFibGVJZHM9ZnVuY3Rpb24oZSl7dmFyIHI9dGhpcyxuPVtdO2Zvcih2YXIgYSBpbiB0aGlzLl90aWxlcyl0aGlzLl9pc0lkUmVuZGVyYWJsZSgrYSxlKSYmbi5wdXNoKCthKTtyZXR1cm4gZT9uLnNvcnQoZnVuY3Rpb24oZSxuKXt2YXIgYT1yLl90aWxlc1tlXS50aWxlSUQsaT1yLl90aWxlc1tuXS50aWxlSUQsbz1uZXcgdC5Qb2ludChhLmNhbm9uaWNhbC54LGEuY2Fub25pY2FsLnkpLl9yb3RhdGUoci50cmFuc2Zvcm0uYW5nbGUpLHM9bmV3IHQuUG9pbnQoaS5jYW5vbmljYWwueCxpLmNhbm9uaWNhbC55KS5fcm90YXRlKHIudHJhbnNmb3JtLmFuZ2xlKTtyZXR1cm4gYS5vdmVyc2NhbGVkWi1pLm92ZXJzY2FsZWRafHxzLnktby55fHxzLngtby54fSk6bi5zb3J0KFB0KX0sci5wcm90b3R5cGUuaGFzUmVuZGVyYWJsZVBhcmVudD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmZpbmRMb2FkZWRQYXJlbnQodCwwKTtyZXR1cm4hIWUmJnRoaXMuX2lzSWRSZW5kZXJhYmxlKGUudGlsZUlELmtleSl9LHIucHJvdG90eXBlLl9pc0lkUmVuZGVyYWJsZT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl90aWxlc1t0XSYmdGhpcy5fdGlsZXNbdF0uaGFzRGF0YSgpJiYhdGhpcy5fY292ZXJlZFRpbGVzW3RdJiYoZXx8IXRoaXMuX3RpbGVzW3RdLmhvbGRpbmdGb3JGYWRlKCkpfSxyLnByb3RvdHlwZS5yZWxvYWQ9ZnVuY3Rpb24oKXtpZih0aGlzLl9wYXVzZWQpdGhpcy5fc2hvdWxkUmVsb2FkT25SZXN1bWU9ITA7ZWxzZSBmb3IodmFyIHQgaW4gdGhpcy5fY2FjaGUucmVzZXQoKSx0aGlzLl90aWxlcykiZXJyb3JlZCIhPT10aGlzLl90aWxlc1t0XS5zdGF0ZSYmdGhpcy5fcmVsb2FkVGlsZSh0LCJyZWxvYWRpbmciKX0sci5wcm90b3R5cGUuX3JlbG9hZFRpbGU9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLl90aWxlc1t0XTtyJiYoImxvYWRpbmciIT09ci5zdGF0ZSYmKHIuc3RhdGU9ZSksdGhpcy5fbG9hZFRpbGUocix0aGlzLl90aWxlTG9hZGVkLmJpbmQodGhpcyxyLHQsZSkpKX0sci5wcm90b3R5cGUuX3RpbGVMb2FkZWQ9ZnVuY3Rpb24oZSxyLG4sYSl7aWYoYSlyZXR1cm4gZS5zdGF0ZT0iZXJyb3JlZCIsdm9pZCg0MDQhPT1hLnN0YXR1cz90aGlzLl9zb3VyY2UuZmlyZShuZXcgdC5FcnJvckV2ZW50KGEse3RpbGU6ZX0pKTp0aGlzLnVwZGF0ZSh0aGlzLnRyYW5zZm9ybSkpO2UudGltZUFkZGVkPXQuYnJvd3Nlci5ub3coKSwiZXhwaXJlZCI9PT1uJiYoZS5yZWZyZXNoZWRVcG9uRXhwaXJhdGlvbj0hMCksdGhpcy5fc2V0VGlsZVJlbG9hZFRpbWVyKHIsZSksInJhc3Rlci1kZW0iPT09dGhpcy5nZXRTb3VyY2UoKS50eXBlJiZlLmRlbSYmdGhpcy5fYmFja2ZpbGxERU0oZSksdGhpcy5fc3RhdGUuaW5pdGlhbGl6ZVRpbGVTdGF0ZShlLHRoaXMubWFwP3RoaXMubWFwLnBhaW50ZXI6bnVsbCksdGhpcy5fc291cmNlLmZpcmUobmV3IHQuRXZlbnQoImRhdGEiLHtkYXRhVHlwZToic291cmNlIix0aWxlOmUsY29vcmQ6ZS50aWxlSUR9KSl9LHIucHJvdG90eXBlLl9iYWNrZmlsbERFTT1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5nZXRSZW5kZXJhYmxlSWRzKCkscj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lW3JdO2lmKHQubmVpZ2hib3JpbmdUaWxlcyYmdC5uZWlnaGJvcmluZ1RpbGVzW25dKXt2YXIgYT10aGlzLmdldFRpbGVCeUlEKG4pO2kodCxhKSxpKGEsdCl9fWZ1bmN0aW9uIGkodCxlKXt0Lm5lZWRzSGlsbHNoYWRlUHJlcGFyZT0hMDt2YXIgcj1lLnRpbGVJRC5jYW5vbmljYWwueC10LnRpbGVJRC5jYW5vbmljYWwueCxuPWUudGlsZUlELmNhbm9uaWNhbC55LXQudGlsZUlELmNhbm9uaWNhbC55LGE9TWF0aC5wb3coMix0LnRpbGVJRC5jYW5vbmljYWwueiksaT1lLnRpbGVJRC5rZXk7MD09PXImJjA9PT1ufHxNYXRoLmFicyhuKT4xfHwoTWF0aC5hYnMocik+MSYmKDE9PT1NYXRoLmFicyhyK2EpP3IrPWE6MT09PU1hdGguYWJzKHItYSkmJihyLT1hKSksZS5kZW0mJnQuZGVtJiYodC5kZW0uYmFja2ZpbGxCb3JkZXIoZS5kZW0scixuKSx0Lm5laWdoYm9yaW5nVGlsZXMmJnQubmVpZ2hib3JpbmdUaWxlc1tpXSYmKHQubmVpZ2hib3JpbmdUaWxlc1tpXS5iYWNrZmlsbGVkPSEwKSkpfX0sci5wcm90b3R5cGUuZ2V0VGlsZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5nZXRUaWxlQnlJRCh0LmtleSl9LHIucHJvdG90eXBlLmdldFRpbGVCeUlEPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl90aWxlc1t0XX0sci5wcm90b3R5cGUuZ2V0Wm9vbT1mdW5jdGlvbih0KXtyZXR1cm4gdC56b29tK3Quc2NhbGVab29tKHQudGlsZVNpemUvdGhpcy5fc291cmNlLnRpbGVTaXplKX0sci5wcm90b3R5cGUuX3JldGFpbkxvYWRlZENoaWxkcmVuPWZ1bmN0aW9uKHQsZSxyLG4pe2Zvcih2YXIgYSBpbiB0aGlzLl90aWxlcyl7dmFyIGk9dGhpcy5fdGlsZXNbYV07aWYoIShuW2FdfHwhaS5oYXNEYXRhKCl8fGkudGlsZUlELm92ZXJzY2FsZWRaPD1lfHxpLnRpbGVJRC5vdmVyc2NhbGVkWj5yKSl7Zm9yKHZhciBvPWkudGlsZUlEO2kmJmkudGlsZUlELm92ZXJzY2FsZWRaPmUrMTspe3ZhciBzPWkudGlsZUlELnNjYWxlZFRvKGkudGlsZUlELm92ZXJzY2FsZWRaLTEpOyhpPXRoaXMuX3RpbGVzW3Mua2V5XSkmJmkuaGFzRGF0YSgpJiYobz1zKX1mb3IodmFyIGw9bztsLm92ZXJzY2FsZWRaPmU7KWlmKHRbKGw9bC5zY2FsZWRUbyhsLm92ZXJzY2FsZWRaLTEpKS5rZXldKXtuW28ua2V5XT1vO2JyZWFrfX19fSxyLnByb3RvdHlwZS5maW5kTG9hZGVkUGFyZW50PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQub3ZlcnNjYWxlZFotMTtyPj1lO3ItLSl7dmFyIG49dC5zY2FsZWRUbyhyKTtpZighbilyZXR1cm47dmFyIGE9U3RyaW5nKG4ua2V5KSxpPXRoaXMuX3RpbGVzW2FdO2lmKGkmJmkuaGFzRGF0YSgpKXJldHVybiBpO2lmKHRoaXMuX2NhY2hlLmhhcyhuKSlyZXR1cm4gdGhpcy5fY2FjaGUuZ2V0KG4pfX0sci5wcm90b3R5cGUudXBkYXRlQ2FjaGVTaXplPWZ1bmN0aW9uKHQpe3ZhciBlPShNYXRoLmNlaWwodC53aWR0aC90aGlzLl9zb3VyY2UudGlsZVNpemUpKzEpKihNYXRoLmNlaWwodC5oZWlnaHQvdGhpcy5fc291cmNlLnRpbGVTaXplKSsxKSxyPU1hdGguZmxvb3IoNSplKSxuPSJudW1iZXIiPT10eXBlb2YgdGhpcy5fbWF4VGlsZUNhY2hlU2l6ZT9NYXRoLm1pbih0aGlzLl9tYXhUaWxlQ2FjaGVTaXplLHIpOnI7dGhpcy5fY2FjaGUuc2V0TWF4U2l6ZShuKX0sci5wcm90b3R5cGUuaGFuZGxlV3JhcEp1bXA9ZnVuY3Rpb24odCl7dmFyIGU9KHQtKHZvaWQgMD09PXRoaXMuX3ByZXZMbmc/dDp0aGlzLl9wcmV2TG5nKSkvMzYwLHI9TWF0aC5yb3VuZChlKTtpZih0aGlzLl9wcmV2TG5nPXQscil7dmFyIG49e307Zm9yKHZhciBhIGluIHRoaXMuX3RpbGVzKXt2YXIgaT10aGlzLl90aWxlc1thXTtpLnRpbGVJRD1pLnRpbGVJRC51bndyYXBUbyhpLnRpbGVJRC53cmFwK3IpLG5baS50aWxlSUQua2V5XT1pfWZvcih2YXIgbyBpbiB0aGlzLl90aWxlcz1uLHRoaXMuX3RpbWVycyljbGVhclRpbWVvdXQodGhpcy5fdGltZXJzW29dKSxkZWxldGUgdGhpcy5fdGltZXJzW29dO2Zvcih2YXIgcyBpbiB0aGlzLl90aWxlcyl7dmFyIGw9dGhpcy5fdGlsZXNbc107dGhpcy5fc2V0VGlsZVJlbG9hZFRpbWVyKHMsbCl9fX0sci5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7aWYodGhpcy50cmFuc2Zvcm09ZSx0aGlzLl9zb3VyY2VMb2FkZWQmJiF0aGlzLl9wYXVzZWQpe3ZhciBhO3RoaXMudXBkYXRlQ2FjaGVTaXplKGUpLHRoaXMuaGFuZGxlV3JhcEp1bXAodGhpcy50cmFuc2Zvcm0uY2VudGVyLmxuZyksdGhpcy5fY292ZXJlZFRpbGVzPXt9LHRoaXMudXNlZD90aGlzLl9zb3VyY2UudGlsZUlEP2E9ZS5nZXRWaXNpYmxlVW53cmFwcGVkQ29vcmRpbmF0ZXModGhpcy5fc291cmNlLnRpbGVJRCkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBuZXcgdC5PdmVyc2NhbGVkVGlsZUlEKGUuY2Fub25pY2FsLnosZS53cmFwLGUuY2Fub25pY2FsLnosZS5jYW5vbmljYWwueCxlLmNhbm9uaWNhbC55KX0pOihhPWUuY292ZXJpbmdUaWxlcyh7dGlsZVNpemU6dGhpcy5fc291cmNlLnRpbGVTaXplLG1pbnpvb206dGhpcy5fc291cmNlLm1pbnpvb20sbWF4em9vbTp0aGlzLl9zb3VyY2UubWF4em9vbSxyb3VuZFpvb206dGhpcy5fc291cmNlLnJvdW5kWm9vbSxyZXBhcnNlT3ZlcnNjYWxlZDp0aGlzLl9zb3VyY2UucmVwYXJzZU92ZXJzY2FsZWR9KSx0aGlzLl9zb3VyY2UuaGFzVGlsZSYmKGE9YS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIG4uX3NvdXJjZS5oYXNUaWxlKHQpfSkpKTphPVtdO3ZhciBpPSh0aGlzLl9zb3VyY2Uucm91bmRab29tP01hdGgucm91bmQ6TWF0aC5mbG9vcikodGhpcy5nZXRab29tKGUpKSxvPU1hdGgubWF4KGktci5tYXhPdmVyem9vbWluZyx0aGlzLl9zb3VyY2UubWluem9vbSkscz1NYXRoLm1heChpK3IubWF4VW5kZXJ6b29taW5nLHRoaXMuX3NvdXJjZS5taW56b29tKSxsPXRoaXMuX3VwZGF0ZVJldGFpbmVkVGlsZXMoYSxpKTtpZihPdCh0aGlzLl9zb3VyY2UudHlwZSkpe2Zvcih2YXIgYz17fSx1PXt9LGg9MCxmPU9iamVjdC5rZXlzKGwpO2g8Zi5sZW5ndGg7aCs9MSl7dmFyIHA9ZltoXSxkPWxbcF0sZz10aGlzLl90aWxlc1twXTtpZihnJiYhKGcuZmFkZUVuZFRpbWUmJmcuZmFkZUVuZFRpbWU8PXQuYnJvd3Nlci5ub3coKSkpe3ZhciB2PXRoaXMuZmluZExvYWRlZFBhcmVudChkLG8pO3YmJih0aGlzLl9hZGRUaWxlKHYudGlsZUlEKSxjW3YudGlsZUlELmtleV09di50aWxlSUQpLHVbcF09ZH19Zm9yKHZhciBtIGluIHRoaXMuX3JldGFpbkxvYWRlZENoaWxkcmVuKHUsaSxzLGwpLGMpbFttXXx8KHRoaXMuX2NvdmVyZWRUaWxlc1ttXT0hMCxsW21dPWNbbV0pfWZvcih2YXIgeSBpbiBsKXRoaXMuX3RpbGVzW3ldLmNsZWFyRmFkZUhvbGQoKTtmb3IodmFyIHg9MCxiPXQua2V5c0RpZmZlcmVuY2UodGhpcy5fdGlsZXMsbCk7eDxiLmxlbmd0aDt4Kz0xKXt2YXIgXz1iW3hdLHc9dGhpcy5fdGlsZXNbX107dy5oYXNTeW1ib2xCdWNrZXRzJiYhdy5ob2xkaW5nRm9yRmFkZSgpP3cuc2V0SG9sZER1cmF0aW9uKHRoaXMubWFwLl9mYWRlRHVyYXRpb24pOncuaGFzU3ltYm9sQnVja2V0cyYmIXcuc3ltYm9sRmFkZUZpbmlzaGVkKCl8fHRoaXMuX3JlbW92ZVRpbGUoXyl9fX0sci5wcm90b3R5cGUucmVsZWFzZVN5bWJvbEZhZGVUaWxlcz1mdW5jdGlvbigpe2Zvcih2YXIgdCBpbiB0aGlzLl90aWxlcyl0aGlzLl90aWxlc1t0XS5ob2xkaW5nRm9yRmFkZSgpJiZ0aGlzLl9yZW1vdmVUaWxlKHQpfSxyLnByb3RvdHlwZS5fdXBkYXRlUmV0YWluZWRUaWxlcz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj17fSxhPXt9LGk9TWF0aC5tYXgoZS1yLm1heE92ZXJ6b29taW5nLHRoaXMuX3NvdXJjZS5taW56b29tKSxvPU1hdGgubWF4KGUrci5tYXhVbmRlcnpvb21pbmcsdGhpcy5fc291cmNlLm1pbnpvb20pLHM9e30sbD0wLGM9dDtsPGMubGVuZ3RoO2wrPTEpe3ZhciB1PWNbbF0saD10aGlzLl9hZGRUaWxlKHUpO25bdS5rZXldPXUsaC5oYXNEYXRhKCl8fGU8dGhpcy5fc291cmNlLm1heHpvb20mJihzW3Uua2V5XT11KX10aGlzLl9yZXRhaW5Mb2FkZWRDaGlsZHJlbihzLGUsbyxuKTtmb3IodmFyIGY9MCxwPXQ7ZjxwLmxlbmd0aDtmKz0xKXt2YXIgZD1wW2ZdLGc9dGhpcy5fdGlsZXNbZC5rZXldO2lmKCFnLmhhc0RhdGEoKSl7aWYoZSsxPnRoaXMuX3NvdXJjZS5tYXh6b29tKXt2YXIgdj1kLmNoaWxkcmVuKHRoaXMuX3NvdXJjZS5tYXh6b29tKVswXSxtPXRoaXMuZ2V0VGlsZSh2KTtpZihtJiZtLmhhc0RhdGEoKSl7blt2LmtleV09djtjb250aW51ZX19ZWxzZXt2YXIgeT1kLmNoaWxkcmVuKHRoaXMuX3NvdXJjZS5tYXh6b29tKTtpZihuW3lbMF0ua2V5XSYmblt5WzFdLmtleV0mJm5beVsyXS5rZXldJiZuW3lbM10ua2V5XSljb250aW51ZX1mb3IodmFyIHg9Zy53YXNSZXF1ZXN0ZWQoKSxiPWQub3ZlcnNjYWxlZFotMTtiPj1pOy0tYil7dmFyIF89ZC5zY2FsZWRUbyhiKTtpZihhW18ua2V5XSlicmVhaztpZihhW18ua2V5XT0hMCwhKGc9dGhpcy5nZXRUaWxlKF8pKSYmeCYmKGc9dGhpcy5fYWRkVGlsZShfKSksZyYmKG5bXy5rZXldPV8seD1nLndhc1JlcXVlc3RlZCgpLGcuaGFzRGF0YSgpKSlicmVha319fXJldHVybiBufSxyLnByb3RvdHlwZS5fYWRkVGlsZT1mdW5jdGlvbihlKXt2YXIgcj10aGlzLl90aWxlc1tlLmtleV07aWYocilyZXR1cm4gcjsocj10aGlzLl9jYWNoZS5nZXRBbmRSZW1vdmUoZSkpJiYodGhpcy5fc2V0VGlsZVJlbG9hZFRpbWVyKGUua2V5LHIpLHIudGlsZUlEPWUsdGhpcy5fc3RhdGUuaW5pdGlhbGl6ZVRpbGVTdGF0ZShyLHRoaXMubWFwP3RoaXMubWFwLnBhaW50ZXI6bnVsbCksdGhpcy5fY2FjaGVUaW1lcnNbZS5rZXldJiYoY2xlYXJUaW1lb3V0KHRoaXMuX2NhY2hlVGltZXJzW2Uua2V5XSksZGVsZXRlIHRoaXMuX2NhY2hlVGltZXJzW2Uua2V5XSx0aGlzLl9zZXRUaWxlUmVsb2FkVGltZXIoZS5rZXkscikpKTt2YXIgbj1Cb29sZWFuKHIpO3JldHVybiBufHwocj1uZXcgdC5UaWxlKGUsdGhpcy5fc291cmNlLnRpbGVTaXplKmUub3ZlcnNjYWxlRmFjdG9yKCkpLHRoaXMuX2xvYWRUaWxlKHIsdGhpcy5fdGlsZUxvYWRlZC5iaW5kKHRoaXMscixlLmtleSxyLnN0YXRlKSkpLHI/KHIudXNlcysrLHRoaXMuX3RpbGVzW2Uua2V5XT1yLG58fHRoaXMuX3NvdXJjZS5maXJlKG5ldyB0LkV2ZW50KCJkYXRhbG9hZGluZyIse3RpbGU6cixjb29yZDpyLnRpbGVJRCxkYXRhVHlwZToic291cmNlIn0pKSxyKTpudWxsfSxyLnByb3RvdHlwZS5fc2V0VGlsZVJlbG9hZFRpbWVyPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpczt0IGluIHRoaXMuX3RpbWVycyYmKGNsZWFyVGltZW91dCh0aGlzLl90aW1lcnNbdF0pLGRlbGV0ZSB0aGlzLl90aW1lcnNbdF0pO3ZhciBuPWUuZ2V0RXhwaXJ5VGltZW91dCgpO24mJih0aGlzLl90aW1lcnNbdF09c2V0VGltZW91dChmdW5jdGlvbigpe3IuX3JlbG9hZFRpbGUodCwiZXhwaXJlZCIpLGRlbGV0ZSByLl90aW1lcnNbdF19LG4pKX0sci5wcm90b3R5cGUuX3JlbW92ZVRpbGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdGlsZXNbdF07ZSYmKGUudXNlcy0tLGRlbGV0ZSB0aGlzLl90aWxlc1t0XSx0aGlzLl90aW1lcnNbdF0mJihjbGVhclRpbWVvdXQodGhpcy5fdGltZXJzW3RdKSxkZWxldGUgdGhpcy5fdGltZXJzW3RdKSxlLnVzZXM+MHx8KGUuaGFzRGF0YSgpJiYicmVsb2FkaW5nIiE9PWUuc3RhdGU/dGhpcy5fY2FjaGUuYWRkKGUudGlsZUlELGUsZS5nZXRFeHBpcnlUaW1lb3V0KCkpOihlLmFib3J0ZWQ9ITAsdGhpcy5fYWJvcnRUaWxlKGUpLHRoaXMuX3VubG9hZFRpbGUoZSkpKSl9LHIucHJvdG90eXBlLmNsZWFyVGlsZXM9ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcy5fc2hvdWxkUmVsb2FkT25SZXN1bWU9ITEsdGhpcy5fcGF1c2VkPSExLHRoaXMuX3RpbGVzKXRoaXMuX3JlbW92ZVRpbGUodCk7dGhpcy5fY2FjaGUucmVzZXQoKX0sci5wcm90b3R5cGUudGlsZXNJbj1mdW5jdGlvbihlLHIsbil7dmFyIGE9dGhpcyxpPVtdLG89dGhpcy50cmFuc2Zvcm07aWYoIW8pcmV0dXJuIGk7Zm9yKHZhciBzPW4/by5nZXRDYW1lcmFRdWVyeUdlb21ldHJ5KGUpOmUsbD1lLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gby5wb2ludENvb3JkaW5hdGUodCl9KSxjPXMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBvLnBvaW50Q29vcmRpbmF0ZSh0KX0pLHU9dGhpcy5nZXRJZHMoKSxoPTEvMCxmPTEvMCxwPS0xLzAsZD0tMS8wLGc9MCx2PWM7Zzx2Lmxlbmd0aDtnKz0xKXt2YXIgbT12W2ddO2g9TWF0aC5taW4oaCxtLngpLGY9TWF0aC5taW4oZixtLnkpLHA9TWF0aC5tYXgocCxtLngpLGQ9TWF0aC5tYXgoZCxtLnkpfWZvcih2YXIgeT1mdW5jdGlvbihlKXt2YXIgbj1hLl90aWxlc1t1W2VdXTtpZighbi5ob2xkaW5nRm9yRmFkZSgpKXt2YXIgcz1uLnRpbGVJRCxnPU1hdGgucG93KDIsby56b29tLW4udGlsZUlELm92ZXJzY2FsZWRaKSx2PXIqbi5xdWVyeVBhZGRpbmcqdC5FWFRFTlQvbi50aWxlU2l6ZS9nLG09W3MuZ2V0VGlsZVBvaW50KG5ldyB0Lk1lcmNhdG9yQ29vcmRpbmF0ZShoLGYpKSxzLmdldFRpbGVQb2ludChuZXcgdC5NZXJjYXRvckNvb3JkaW5hdGUocCxkKSldO2lmKG1bMF0ueC12PHQuRVhURU5UJiZtWzBdLnktdjx0LkVYVEVOVCYmbVsxXS54K3Y+PTAmJm1bMV0ueSt2Pj0wKXt2YXIgeT1sLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gcy5nZXRUaWxlUG9pbnQodCl9KSx4PWMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBzLmdldFRpbGVQb2ludCh0KX0pO2kucHVzaCh7dGlsZTpuLHRpbGVJRDpzLHF1ZXJ5R2VvbWV0cnk6eSxjYW1lcmFRdWVyeUdlb21ldHJ5Ongsc2NhbGU6Z30pfX19LHg9MDt4PHUubGVuZ3RoO3grKyl5KHgpO3JldHVybiBpfSxyLnByb3RvdHlwZS5nZXRWaXNpYmxlQ29vcmRpbmF0ZXM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMscj10aGlzLmdldFJlbmRlcmFibGVJZHModCkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBlLl90aWxlc1t0XS50aWxlSUR9KSxuPTAsYT1yO248YS5sZW5ndGg7bis9MSl7dmFyIGk9YVtuXTtpLnBvc01hdHJpeD10aGlzLnRyYW5zZm9ybS5jYWxjdWxhdGVQb3NNYXRyaXgoaS50b1Vud3JhcHBlZCgpKX1yZXR1cm4gcn0sci5wcm90b3R5cGUuaGFzVHJhbnNpdGlvbj1mdW5jdGlvbigpe2lmKHRoaXMuX3NvdXJjZS5oYXNUcmFuc2l0aW9uKCkpcmV0dXJuITA7aWYoT3QodGhpcy5fc291cmNlLnR5cGUpKWZvcih2YXIgZSBpbiB0aGlzLl90aWxlcyl7dmFyIHI9dGhpcy5fdGlsZXNbZV07aWYodm9pZCAwIT09ci5mYWRlRW5kVGltZSYmci5mYWRlRW5kVGltZT49dC5icm93c2VyLm5vdygpKXJldHVybiEwfXJldHVybiExfSxyLnByb3RvdHlwZS5zZXRGZWF0dXJlU3RhdGU9ZnVuY3Rpb24odCxlLHIpe3Q9dHx8Il9nZW9qc29uVGlsZUxheWVyIix0aGlzLl9zdGF0ZS51cGRhdGVTdGF0ZSh0LGUscil9LHIucHJvdG90eXBlLnJlbW92ZUZlYXR1cmVTdGF0ZT1mdW5jdGlvbih0LGUscil7dD10fHwiX2dlb2pzb25UaWxlTGF5ZXIiLHRoaXMuX3N0YXRlLnJlbW92ZUZlYXR1cmVTdGF0ZSh0LGUscil9LHIucHJvdG90eXBlLmdldEZlYXR1cmVTdGF0ZT1mdW5jdGlvbih0LGUpe3JldHVybiB0PXR8fCJfZ2VvanNvblRpbGVMYXllciIsdGhpcy5fc3RhdGUuZ2V0U3RhdGUodCxlKX0scn0odC5FdmVudGVkKTtmdW5jdGlvbiBQdCh0LGUpe3JldHVybiB0JTMyLWUlMzJ8fGUtdH1mdW5jdGlvbiBPdCh0KXtyZXR1cm4icmFzdGVyIj09PXR8fCJpbWFnZSI9PT10fHwidmlkZW8iPT09dH1mdW5jdGlvbiB6dCgpe3JldHVybiBuZXcgdC53aW5kb3cuV29ya2VyKCRuLndvcmtlclVybCl9Q3QubWF4T3Zlcnpvb21pbmc9MTAsQ3QubWF4VW5kZXJ6b29taW5nPTM7dmFyIEl0PWZ1bmN0aW9uKCl7dGhpcy5hY3RpdmU9e319O0l0LnByb3RvdHlwZS5hY3F1aXJlPWZ1bmN0aW9uKHQpe2lmKCF0aGlzLndvcmtlcnMpZm9yKHRoaXMud29ya2Vycz1bXTt0aGlzLndvcmtlcnMubGVuZ3RoPEl0LndvcmtlckNvdW50Oyl0aGlzLndvcmtlcnMucHVzaChuZXcgenQpO3JldHVybiB0aGlzLmFjdGl2ZVt0XT0hMCx0aGlzLndvcmtlcnMuc2xpY2UoKX0sSXQucHJvdG90eXBlLnJlbGVhc2U9ZnVuY3Rpb24odCl7ZGVsZXRlIHRoaXMuYWN0aXZlW3RdLDA9PT1PYmplY3Qua2V5cyh0aGlzLmFjdGl2ZSkubGVuZ3RoJiYodGhpcy53b3JrZXJzLmZvckVhY2goZnVuY3Rpb24odCl7dC50ZXJtaW5hdGUoKX0pLHRoaXMud29ya2Vycz1udWxsKX07dmFyIER0LFJ0PU1hdGguZmxvb3IodC5icm93c2VyLmhhcmR3YXJlQ29uY3VycmVuY3kvMik7ZnVuY3Rpb24gRnQoZSxyKXt2YXIgbj17fTtmb3IodmFyIGEgaW4gZSkicmVmIiE9PWEmJihuW2FdPWVbYV0pO3JldHVybiB0LnJlZlByb3BlcnRpZXMuZm9yRWFjaChmdW5jdGlvbih0KXt0IGluIHImJihuW3RdPXJbdF0pfSksbn1mdW5jdGlvbiBCdCh0KXt0PXQuc2xpY2UoKTtmb3IodmFyIGU9T2JqZWN0LmNyZWF0ZShudWxsKSxyPTA7cjx0Lmxlbmd0aDtyKyspZVt0W3JdLmlkXT10W3JdO2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKSJyZWYiaW4gdFtuXSYmKHRbbl09RnQodFtuXSxlW3Rbbl0ucmVmXSkpO3JldHVybiB0fUl0LndvcmtlckNvdW50PU1hdGgubWF4KE1hdGgubWluKFJ0LDYpLDEpO3ZhciBOdD17c2V0U3R5bGU6InNldFN0eWxlIixhZGRMYXllcjoiYWRkTGF5ZXIiLHJlbW92ZUxheWVyOiJyZW1vdmVMYXllciIsc2V0UGFpbnRQcm9wZXJ0eToic2V0UGFpbnRQcm9wZXJ0eSIsc2V0TGF5b3V0UHJvcGVydHk6InNldExheW91dFByb3BlcnR5IixzZXRGaWx0ZXI6InNldEZpbHRlciIsYWRkU291cmNlOiJhZGRTb3VyY2UiLHJlbW92ZVNvdXJjZToicmVtb3ZlU291cmNlIixzZXRHZW9KU09OU291cmNlRGF0YToic2V0R2VvSlNPTlNvdXJjZURhdGEiLHNldExheWVyWm9vbVJhbmdlOiJzZXRMYXllclpvb21SYW5nZSIsc2V0TGF5ZXJQcm9wZXJ0eToic2V0TGF5ZXJQcm9wZXJ0eSIsc2V0Q2VudGVyOiJzZXRDZW50ZXIiLHNldFpvb206InNldFpvb20iLHNldEJlYXJpbmc6InNldEJlYXJpbmciLHNldFBpdGNoOiJzZXRQaXRjaCIsc2V0U3ByaXRlOiJzZXRTcHJpdGUiLHNldEdseXBoczoic2V0R2x5cGhzIixzZXRUcmFuc2l0aW9uOiJzZXRUcmFuc2l0aW9uIixzZXRMaWdodDoic2V0TGlnaHQifTtmdW5jdGlvbiBqdCh0LGUscil7ci5wdXNoKHtjb21tYW5kOk50LmFkZFNvdXJjZSxhcmdzOlt0LGVbdF1dfSl9ZnVuY3Rpb24gVnQodCxlLHIpe2UucHVzaCh7Y29tbWFuZDpOdC5yZW1vdmVTb3VyY2UsYXJnczpbdF19KSxyW3RdPSEwfWZ1bmN0aW9uIFV0KHQsZSxyLG4pe1Z0KHQscixuKSxqdCh0LGUscil9ZnVuY3Rpb24gcXQoZSxyLG4pe3ZhciBhO2ZvcihhIGluIGVbbl0paWYoZVtuXS5oYXNPd25Qcm9wZXJ0eShhKSYmImRhdGEiIT09YSYmIXQuZGVlcEVxdWFsKGVbbl1bYV0scltuXVthXSkpcmV0dXJuITE7Zm9yKGEgaW4gcltuXSlpZihyW25dLmhhc093blByb3BlcnR5KGEpJiYiZGF0YSIhPT1hJiYhdC5kZWVwRXF1YWwoZVtuXVthXSxyW25dW2FdKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBIdChlLHIsbixhLGksbyl7dmFyIHM7Zm9yKHMgaW4gcj1yfHx7fSxlPWV8fHt9KWUuaGFzT3duUHJvcGVydHkocykmJih0LmRlZXBFcXVhbChlW3NdLHJbc10pfHxuLnB1c2goe2NvbW1hbmQ6byxhcmdzOlthLHMscltzXSxpXX0pKTtmb3IocyBpbiByKXIuaGFzT3duUHJvcGVydHkocykmJiFlLmhhc093blByb3BlcnR5KHMpJiYodC5kZWVwRXF1YWwoZVtzXSxyW3NdKXx8bi5wdXNoKHtjb21tYW5kOm8sYXJnczpbYSxzLHJbc10saV19KSl9ZnVuY3Rpb24gR3QodCl7cmV0dXJuIHQuaWR9ZnVuY3Rpb24gWXQodCxlKXtyZXR1cm4gdFtlLmlkXT1lLHR9dmFyIFd0PWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLmJveENlbGxzPVtdLGE9dGhpcy5jaXJjbGVDZWxscz1bXTt0aGlzLnhDZWxsQ291bnQ9TWF0aC5jZWlsKHQvciksdGhpcy55Q2VsbENvdW50PU1hdGguY2VpbChlL3IpO2Zvcih2YXIgaT0wO2k8dGhpcy54Q2VsbENvdW50KnRoaXMueUNlbGxDb3VudDtpKyspbi5wdXNoKFtdKSxhLnB1c2goW10pO3RoaXMuY2lyY2xlS2V5cz1bXSx0aGlzLmJveEtleXM9W10sdGhpcy5iYm94ZXM9W10sdGhpcy5jaXJjbGVzPVtdLHRoaXMud2lkdGg9dCx0aGlzLmhlaWdodD1lLHRoaXMueFNjYWxlPXRoaXMueENlbGxDb3VudC90LHRoaXMueVNjYWxlPXRoaXMueUNlbGxDb3VudC9lLHRoaXMuYm94VWlkPTAsdGhpcy5jaXJjbGVVaWQ9MH07ZnVuY3Rpb24gWHQoZSxyLG4sYSxpKXt2YXIgbz10LmNyZWF0ZSgpO3JldHVybiByPyh0LnNjYWxlKG8sbyxbMS9pLDEvaSwxXSksbnx8dC5yb3RhdGVaKG8sbyxhLmFuZ2xlKSk6dC5tdWx0aXBseShvLGEubGFiZWxQbGFuZU1hdHJpeCxlKSxvfWZ1bmN0aW9uIFp0KGUscixuLGEsaSl7aWYocil7dmFyIG89dC5jbG9uZShlKTtyZXR1cm4gdC5zY2FsZShvLG8sW2ksaSwxXSksbnx8dC5yb3RhdGVaKG8sbywtYS5hbmdsZSksb31yZXR1cm4gYS5nbENvb3JkTWF0cml4fWZ1bmN0aW9uIEp0KGUscil7dmFyIG49W2UueCxlLnksMCwxXTtvZShuLG4scik7dmFyIGE9blszXTtyZXR1cm57cG9pbnQ6bmV3IHQuUG9pbnQoblswXS9hLG5bMV0vYSksc2lnbmVkRGlzdGFuY2VGcm9tQ2FtZXJhOmF9fWZ1bmN0aW9uIEt0KHQsZSl7dmFyIHI9dFswXS90WzNdLG49dFsxXS90WzNdO3JldHVybiByPj0tZVswXSYmcjw9ZVswXSYmbj49LWVbMV0mJm48PWVbMV19ZnVuY3Rpb24gUXQoZSxyLG4sYSxpLG8scyxsKXt2YXIgYz1hP2UudGV4dFNpemVEYXRhOmUuaWNvblNpemVEYXRhLHU9dC5ldmFsdWF0ZVNpemVGb3Jab29tKGMsbi50cmFuc2Zvcm0uem9vbSksaD1bMjU2L24ud2lkdGgqMisxLDI1Ni9uLmhlaWdodCoyKzFdLGY9YT9lLnRleHQuZHluYW1pY0xheW91dFZlcnRleEFycmF5OmUuaWNvbi5keW5hbWljTGF5b3V0VmVydGV4QXJyYXk7Zi5jbGVhcigpO2Zvcih2YXIgcD1lLmxpbmVWZXJ0ZXhBcnJheSxkPWE/ZS50ZXh0LnBsYWNlZFN5bWJvbEFycmF5OmUuaWNvbi5wbGFjZWRTeW1ib2xBcnJheSxnPW4udHJhbnNmb3JtLndpZHRoL24udHJhbnNmb3JtLmhlaWdodCx2PSExLG09MDttPGQubGVuZ3RoO20rKyl7dmFyIHk9ZC5nZXQobSk7aWYoeS5oaWRkZW58fHkud3JpdGluZ01vZGU9PT10LldyaXRpbmdNb2RlLnZlcnRpY2FsJiYhdilpZSh5Lm51bUdseXBocyxmKTtlbHNle3Y9ITE7dmFyIHg9W3kuYW5jaG9yWCx5LmFuY2hvclksMCwxXTtpZih0LnRyYW5zZm9ybU1hdDQoeCx4LHIpLEt0KHgsaCkpe3ZhciBiPS41K3hbM10vbi50cmFuc2Zvcm0uY2FtZXJhVG9DZW50ZXJEaXN0YW5jZSouNSxfPXQuZXZhbHVhdGVTaXplRm9yRmVhdHVyZShjLHUseSksdz1zP18qYjpfL2Isaz1uZXcgdC5Qb2ludCh5LmFuY2hvclgseS5hbmNob3JZKSxUPUp0KGssaSkucG9pbnQsTT17fSxBPWVlKHksdywhMSxsLHIsaSxvLGUuZ2x5cGhPZmZzZXRBcnJheSxwLGYsVCxrLE0sZyk7dj1BLnVzZVZlcnRpY2FsLChBLm5vdEVub3VnaFJvb218fHZ8fEEubmVlZHNGbGlwcGluZyYmZWUoeSx3LCEwLGwscixpLG8sZS5nbHlwaE9mZnNldEFycmF5LHAsZixULGssTSxnKS5ub3RFbm91Z2hSb29tKSYmaWUoeS5udW1HbHlwaHMsZil9ZWxzZSBpZSh5Lm51bUdseXBocyxmKX19YT9lLnRleHQuZHluYW1pY0xheW91dFZlcnRleEJ1ZmZlci51cGRhdGVEYXRhKGYpOmUuaWNvbi5keW5hbWljTGF5b3V0VmVydGV4QnVmZmVyLnVwZGF0ZURhdGEoZil9ZnVuY3Rpb24gJHQodCxlLHIsbixhLGksbyxzLGwsYyx1LGgpe3ZhciBmPXMuZ2x5cGhTdGFydEluZGV4K3MubnVtR2x5cGhzLHA9cy5saW5lU3RhcnRJbmRleCxkPXMubGluZVN0YXJ0SW5kZXgrcy5saW5lTGVuZ3RoLGc9ZS5nZXRvZmZzZXRYKHMuZ2x5cGhTdGFydEluZGV4KSx2PWUuZ2V0b2Zmc2V0WChmLTEpLG09bmUodCpnLHIsbixhLGksbyxzLnNlZ21lbnQscCxkLGwsYyx1LGgpO2lmKCFtKXJldHVybiBudWxsO3ZhciB5PW5lKHQqdixyLG4sYSxpLG8scy5zZWdtZW50LHAsZCxsLGMsdSxoKTtyZXR1cm4geT97Zmlyc3Q6bSxsYXN0Onl9Om51bGx9ZnVuY3Rpb24gdGUoZSxyLG4sYSl7cmV0dXJuIGU9PT10LldyaXRpbmdNb2RlLmhvcml6b250YWwmJk1hdGguYWJzKG4ueS1yLnkpPk1hdGguYWJzKG4ueC1yLngpKmE/e3VzZVZlcnRpY2FsOiEwfTooZT09PXQuV3JpdGluZ01vZGUudmVydGljYWw/ci55PG4ueTpyLng+bi54KT97bmVlZHNGbGlwcGluZzohMH06bnVsbH1mdW5jdGlvbiBlZShlLHIsbixhLGksbyxzLGwsYyx1LGgsZixwLGQpe3ZhciBnLHY9ci8yNCxtPWUubGluZU9mZnNldFgqdix5PWUubGluZU9mZnNldFkqdjtpZihlLm51bUdseXBocz4xKXt2YXIgeD1lLmdseXBoU3RhcnRJbmRleCtlLm51bUdseXBocyxiPWUubGluZVN0YXJ0SW5kZXgsXz1lLmxpbmVTdGFydEluZGV4K2UubGluZUxlbmd0aCx3PSR0KHYsbCxtLHksbixoLGYsZSxjLG8scCwhMSk7aWYoIXcpcmV0dXJue25vdEVub3VnaFJvb206ITB9O3ZhciBrPUp0KHcuZmlyc3QucG9pbnQscykucG9pbnQsVD1KdCh3Lmxhc3QucG9pbnQscykucG9pbnQ7aWYoYSYmIW4pe3ZhciBNPXRlKGUud3JpdGluZ01vZGUsayxULGQpO2lmKE0pcmV0dXJuIE19Zz1bdy5maXJzdF07Zm9yKHZhciBBPWUuZ2x5cGhTdGFydEluZGV4KzE7QTx4LTE7QSsrKWcucHVzaChuZSh2KmwuZ2V0b2Zmc2V0WChBKSxtLHksbixoLGYsZS5zZWdtZW50LGIsXyxjLG8scCwhMSkpO2cucHVzaCh3Lmxhc3QpfWVsc2V7aWYoYSYmIW4pe3ZhciBTPUp0KGYsaSkucG9pbnQsRT1lLmxpbmVTdGFydEluZGV4K2Uuc2VnbWVudCsxLEw9bmV3IHQuUG9pbnQoYy5nZXR4KEUpLGMuZ2V0eShFKSksQz1KdChMLGkpLFA9Qy5zaWduZWREaXN0YW5jZUZyb21DYW1lcmE+MD9DLnBvaW50OnJlKGYsTCxTLDEsaSksTz10ZShlLndyaXRpbmdNb2RlLFMsUCxkKTtpZihPKXJldHVybiBPfXZhciB6PW5lKHYqbC5nZXRvZmZzZXRYKGUuZ2x5cGhTdGFydEluZGV4KSxtLHksbixoLGYsZS5zZWdtZW50LGUubGluZVN0YXJ0SW5kZXgsZS5saW5lU3RhcnRJbmRleCtlLmxpbmVMZW5ndGgsYyxvLHAsITEpO2lmKCF6KXJldHVybntub3RFbm91Z2hSb29tOiEwfTtnPVt6XX1mb3IodmFyIEk9MCxEPWc7STxELmxlbmd0aDtJKz0xKXt2YXIgUj1EW0ldO3QuYWRkRHluYW1pY0F0dHJpYnV0ZXModSxSLnBvaW50LFIuYW5nbGUpfXJldHVybnt9fWZ1bmN0aW9uIHJlKHQsZSxyLG4sYSl7dmFyIGk9SnQodC5hZGQodC5zdWIoZSkuX3VuaXQoKSksYSkucG9pbnQsbz1yLnN1YihpKTtyZXR1cm4gci5hZGQoby5fbXVsdChuL28ubWFnKCkpKX1mdW5jdGlvbiBuZShlLHIsbixhLGksbyxzLGwsYyx1LGgsZixwKXt2YXIgZD1hP2UtcjplK3IsZz1kPjA/MTotMSx2PTA7YSYmKGcqPS0xLHY9TWF0aC5QSSksZzwwJiYodis9TWF0aC5QSSk7Zm9yKHZhciBtPWc+MD9sK3M6bCtzKzEseT1tLHg9aSxiPWksXz0wLHc9MCxrPU1hdGguYWJzKGQpO18rdzw9azspe2lmKChtKz1nKTxsfHxtPj1jKXJldHVybiBudWxsO2lmKGI9eCx2b2lkIDA9PT0oeD1mW21dKSl7dmFyIFQ9bmV3IHQuUG9pbnQodS5nZXR4KG0pLHUuZ2V0eShtKSksTT1KdChULGgpO2lmKE0uc2lnbmVkRGlzdGFuY2VGcm9tQ2FtZXJhPjApeD1mW21dPU0ucG9pbnQ7ZWxzZXt2YXIgQT1tLWc7eD1yZSgwPT09Xz9vOm5ldyB0LlBvaW50KHUuZ2V0eChBKSx1LmdldHkoQSkpLFQsYixrLV8rMSxoKX19Xys9dyx3PWIuZGlzdCh4KX12YXIgUz0oay1fKS93LEU9eC5zdWIoYiksTD1FLm11bHQoUykuX2FkZChiKTtyZXR1cm4gTC5fYWRkKEUuX3VuaXQoKS5fcGVycCgpLl9tdWx0KG4qZykpLHtwb2ludDpMLGFuZ2xlOnYrTWF0aC5hdGFuMih4LnktYi55LHgueC1iLngpLHRpbGVEaXN0YW5jZTpwP3twcmV2VGlsZURpc3RhbmNlOm0tZz09PXk/MDp1LmdldHRpbGVVbml0RGlzdGFuY2VGcm9tQW5jaG9yKG0tZyksbGFzdFNlZ21lbnRWaWV3cG9ydERpc3RhbmNlOmstX306bnVsbH19V3QucHJvdG90eXBlLmtleXNMZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ib3hLZXlzLmxlbmd0aCt0aGlzLmNpcmNsZUtleXMubGVuZ3RofSxXdC5wcm90b3R5cGUuaW5zZXJ0PWZ1bmN0aW9uKHQsZSxyLG4sYSl7dGhpcy5fZm9yRWFjaENlbGwoZSxyLG4sYSx0aGlzLl9pbnNlcnRCb3hDZWxsLHRoaXMuYm94VWlkKyspLHRoaXMuYm94S2V5cy5wdXNoKHQpLHRoaXMuYmJveGVzLnB1c2goZSksdGhpcy5iYm94ZXMucHVzaChyKSx0aGlzLmJib3hlcy5wdXNoKG4pLHRoaXMuYmJveGVzLnB1c2goYSl9LFd0LnByb3RvdHlwZS5pbnNlcnRDaXJjbGU9ZnVuY3Rpb24odCxlLHIsbil7dGhpcy5fZm9yRWFjaENlbGwoZS1uLHItbixlK24scituLHRoaXMuX2luc2VydENpcmNsZUNlbGwsdGhpcy5jaXJjbGVVaWQrKyksdGhpcy5jaXJjbGVLZXlzLnB1c2godCksdGhpcy5jaXJjbGVzLnB1c2goZSksdGhpcy5jaXJjbGVzLnB1c2gociksdGhpcy5jaXJjbGVzLnB1c2gobil9LFd0LnByb3RvdHlwZS5faW5zZXJ0Qm94Q2VsbD1mdW5jdGlvbih0LGUscixuLGEsaSl7dGhpcy5ib3hDZWxsc1thXS5wdXNoKGkpfSxXdC5wcm90b3R5cGUuX2luc2VydENpcmNsZUNlbGw9ZnVuY3Rpb24odCxlLHIsbixhLGkpe3RoaXMuY2lyY2xlQ2VsbHNbYV0ucHVzaChpKX0sV3QucHJvdG90eXBlLl9xdWVyeT1mdW5jdGlvbih0LGUscixuLGEsaSl7aWYocjwwfHx0PnRoaXMud2lkdGh8fG48MHx8ZT50aGlzLmhlaWdodClyZXR1cm4hYSYmW107dmFyIG89W107aWYodDw9MCYmZTw9MCYmdGhpcy53aWR0aDw9ciYmdGhpcy5oZWlnaHQ8PW4pe2lmKGEpcmV0dXJuITA7Zm9yKHZhciBzPTA7czx0aGlzLmJveEtleXMubGVuZ3RoO3MrKylvLnB1c2goe2tleTp0aGlzLmJveEtleXNbc10seDE6dGhpcy5iYm94ZXNbNCpzXSx5MTp0aGlzLmJib3hlc1s0KnMrMV0seDI6dGhpcy5iYm94ZXNbNCpzKzJdLHkyOnRoaXMuYmJveGVzWzQqcyszXX0pO2Zvcih2YXIgbD0wO2w8dGhpcy5jaXJjbGVLZXlzLmxlbmd0aDtsKyspe3ZhciBjPXRoaXMuY2lyY2xlc1szKmxdLHU9dGhpcy5jaXJjbGVzWzMqbCsxXSxoPXRoaXMuY2lyY2xlc1szKmwrMl07by5wdXNoKHtrZXk6dGhpcy5jaXJjbGVLZXlzW2xdLHgxOmMtaCx5MTp1LWgseDI6YytoLHkyOnUraH0pfXJldHVybiBpP28uZmlsdGVyKGkpOm99dmFyIGY9e2hpdFRlc3Q6YSxzZWVuVWlkczp7Ym94Ont9LGNpcmNsZTp7fX19O3JldHVybiB0aGlzLl9mb3JFYWNoQ2VsbCh0LGUscixuLHRoaXMuX3F1ZXJ5Q2VsbCxvLGYsaSksYT9vLmxlbmd0aD4wOm99LFd0LnByb3RvdHlwZS5fcXVlcnlDaXJjbGU9ZnVuY3Rpb24odCxlLHIsbixhKXt2YXIgaT10LXIsbz10K3Iscz1lLXIsbD1lK3I7aWYobzwwfHxpPnRoaXMud2lkdGh8fGw8MHx8cz50aGlzLmhlaWdodClyZXR1cm4hbiYmW107dmFyIGM9W10sdT17aGl0VGVzdDpuLGNpcmNsZTp7eDp0LHk6ZSxyYWRpdXM6cn0sc2VlblVpZHM6e2JveDp7fSxjaXJjbGU6e319fTtyZXR1cm4gdGhpcy5fZm9yRWFjaENlbGwoaSxzLG8sbCx0aGlzLl9xdWVyeUNlbGxDaXJjbGUsYyx1LGEpLG4/Yy5sZW5ndGg+MDpjfSxXdC5wcm90b3R5cGUucXVlcnk9ZnVuY3Rpb24odCxlLHIsbixhKXtyZXR1cm4gdGhpcy5fcXVlcnkodCxlLHIsbiwhMSxhKX0sV3QucHJvdG90eXBlLmhpdFRlc3Q9ZnVuY3Rpb24odCxlLHIsbixhKXtyZXR1cm4gdGhpcy5fcXVlcnkodCxlLHIsbiwhMCxhKX0sV3QucHJvdG90eXBlLmhpdFRlc3RDaXJjbGU9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIHRoaXMuX3F1ZXJ5Q2lyY2xlKHQsZSxyLCEwLG4pfSxXdC5wcm90b3R5cGUuX3F1ZXJ5Q2VsbD1mdW5jdGlvbih0LGUscixuLGEsaSxvLHMpe3ZhciBsPW8uc2VlblVpZHMsYz10aGlzLmJveENlbGxzW2FdO2lmKG51bGwhPT1jKWZvcih2YXIgdT10aGlzLmJib3hlcyxoPTAsZj1jO2g8Zi5sZW5ndGg7aCs9MSl7dmFyIHA9ZltoXTtpZighbC5ib3hbcF0pe2wuYm94W3BdPSEwO3ZhciBkPTQqcDtpZih0PD11W2QrMl0mJmU8PXVbZCszXSYmcj49dVtkKzBdJiZuPj11W2QrMV0mJighc3x8cyh0aGlzLmJveEtleXNbcF0pKSl7aWYoby5oaXRUZXN0KXJldHVybiBpLnB1c2goITApLCEwO2kucHVzaCh7a2V5OnRoaXMuYm94S2V5c1twXSx4MTp1W2RdLHkxOnVbZCsxXSx4Mjp1W2QrMl0seTI6dVtkKzNdfSl9fX12YXIgZz10aGlzLmNpcmNsZUNlbGxzW2FdO2lmKG51bGwhPT1nKWZvcih2YXIgdj10aGlzLmNpcmNsZXMsbT0wLHk9ZzttPHkubGVuZ3RoO20rPTEpe3ZhciB4PXlbbV07aWYoIWwuY2lyY2xlW3hdKXtsLmNpcmNsZVt4XT0hMDt2YXIgYj0zKng7aWYodGhpcy5fY2lyY2xlQW5kUmVjdENvbGxpZGUodltiXSx2W2IrMV0sdltiKzJdLHQsZSxyLG4pJiYoIXN8fHModGhpcy5jaXJjbGVLZXlzW3hdKSkpe2lmKG8uaGl0VGVzdClyZXR1cm4gaS5wdXNoKCEwKSwhMDt2YXIgXz12W2JdLHc9dltiKzFdLGs9dltiKzJdO2kucHVzaCh7a2V5OnRoaXMuY2lyY2xlS2V5c1t4XSx4MTpfLWsseTE6dy1rLHgyOl8rayx5Mjp3K2t9KX19fX0sV3QucHJvdG90eXBlLl9xdWVyeUNlbGxDaXJjbGU9ZnVuY3Rpb24odCxlLHIsbixhLGksbyxzKXt2YXIgbD1vLmNpcmNsZSxjPW8uc2VlblVpZHMsdT10aGlzLmJveENlbGxzW2FdO2lmKG51bGwhPT11KWZvcih2YXIgaD10aGlzLmJib3hlcyxmPTAscD11O2Y8cC5sZW5ndGg7Zis9MSl7dmFyIGQ9cFtmXTtpZighYy5ib3hbZF0pe2MuYm94W2RdPSEwO3ZhciBnPTQqZDtpZih0aGlzLl9jaXJjbGVBbmRSZWN0Q29sbGlkZShsLngsbC55LGwucmFkaXVzLGhbZyswXSxoW2crMV0saFtnKzJdLGhbZyszXSkmJighc3x8cyh0aGlzLmJveEtleXNbZF0pKSlyZXR1cm4gaS5wdXNoKCEwKSwhMH19dmFyIHY9dGhpcy5jaXJjbGVDZWxsc1thXTtpZihudWxsIT09dilmb3IodmFyIG09dGhpcy5jaXJjbGVzLHk9MCx4PXY7eTx4Lmxlbmd0aDt5Kz0xKXt2YXIgYj14W3ldO2lmKCFjLmNpcmNsZVtiXSl7Yy5jaXJjbGVbYl09ITA7dmFyIF89MypiO2lmKHRoaXMuX2NpcmNsZXNDb2xsaWRlKG1bX10sbVtfKzFdLG1bXysyXSxsLngsbC55LGwucmFkaXVzKSYmKCFzfHxzKHRoaXMuY2lyY2xlS2V5c1tiXSkpKXJldHVybiBpLnB1c2goITApLCEwfX19LFd0LnByb3RvdHlwZS5fZm9yRWFjaENlbGw9ZnVuY3Rpb24odCxlLHIsbixhLGksbyxzKXtmb3IodmFyIGw9dGhpcy5fY29udmVydFRvWENlbGxDb29yZCh0KSxjPXRoaXMuX2NvbnZlcnRUb1lDZWxsQ29vcmQoZSksdT10aGlzLl9jb252ZXJ0VG9YQ2VsbENvb3JkKHIpLGg9dGhpcy5fY29udmVydFRvWUNlbGxDb29yZChuKSxmPWw7Zjw9dTtmKyspZm9yKHZhciBwPWM7cDw9aDtwKyspe3ZhciBkPXRoaXMueENlbGxDb3VudCpwK2Y7aWYoYS5jYWxsKHRoaXMsdCxlLHIsbixkLGksbyxzKSlyZXR1cm59fSxXdC5wcm90b3R5cGUuX2NvbnZlcnRUb1hDZWxsQ29vcmQ9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5taW4odGhpcy54Q2VsbENvdW50LTEsTWF0aC5mbG9vcih0KnRoaXMueFNjYWxlKSkpfSxXdC5wcm90b3R5cGUuX2NvbnZlcnRUb1lDZWxsQ29vcmQ9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5taW4odGhpcy55Q2VsbENvdW50LTEsTWF0aC5mbG9vcih0KnRoaXMueVNjYWxlKSkpfSxXdC5wcm90b3R5cGUuX2NpcmNsZXNDb2xsaWRlPWZ1bmN0aW9uKHQsZSxyLG4sYSxpKXt2YXIgbz1uLXQscz1hLWUsbD1yK2k7cmV0dXJuIGwqbD5vKm8rcypzfSxXdC5wcm90b3R5cGUuX2NpcmNsZUFuZFJlY3RDb2xsaWRlPWZ1bmN0aW9uKHQsZSxyLG4sYSxpLG8pe3ZhciBzPShpLW4pLzIsbD1NYXRoLmFicyh0LShuK3MpKTtpZihsPnMrcilyZXR1cm4hMTt2YXIgYz0oby1hKS8yLHU9TWF0aC5hYnMoZS0oYStjKSk7aWYodT5jK3IpcmV0dXJuITE7aWYobDw9c3x8dTw9YylyZXR1cm4hMDt2YXIgaD1sLXMsZj11LWM7cmV0dXJuIGgqaCtmKmY8PXIqcn07dmFyIGFlPW5ldyBGbG9hdDMyQXJyYXkoWy0xLzAsLTEvMCwwLC0xLzAsLTEvMCwwLC0xLzAsLTEvMCwwLC0xLzAsLTEvMCwwXSk7ZnVuY3Rpb24gaWUodCxlKXtmb3IodmFyIHI9MDtyPHQ7cisrKXt2YXIgbj1lLmxlbmd0aDtlLnJlc2l6ZShuKzQpLGUuZmxvYXQzMi5zZXQoYWUsMypuKX19ZnVuY3Rpb24gb2UodCxlLHIpe3ZhciBuPWVbMF0sYT1lWzFdO3JldHVybiB0WzBdPXJbMF0qbityWzRdKmErclsxMl0sdFsxXT1yWzFdKm4rcls1XSphK3JbMTNdLHRbM109clszXSpuK3JbN10qYStyWzE1XSx0fXZhciBzZT1mdW5jdGlvbih0LGUscil7dm9pZCAwPT09ZSYmKGU9bmV3IFd0KHQud2lkdGgrMjAwLHQuaGVpZ2h0KzIwMCwyNSkpLHZvaWQgMD09PXImJihyPW5ldyBXdCh0LndpZHRoKzIwMCx0LmhlaWdodCsyMDAsMjUpKSx0aGlzLnRyYW5zZm9ybT10LHRoaXMuZ3JpZD1lLHRoaXMuaWdub3JlZEdyaWQ9cix0aGlzLnBpdGNoZmFjdG9yPU1hdGguY29zKHQuX3BpdGNoKSp0LmNhbWVyYVRvQ2VudGVyRGlzdGFuY2UsdGhpcy5zY3JlZW5SaWdodEJvdW5kYXJ5PXQud2lkdGgrMTAwLHRoaXMuc2NyZWVuQm90dG9tQm91bmRhcnk9dC5oZWlnaHQrMTAwLHRoaXMuZ3JpZFJpZ2h0Qm91bmRhcnk9dC53aWR0aCsyMDAsdGhpcy5ncmlkQm90dG9tQm91bmRhcnk9dC5oZWlnaHQrMjAwfTtmdW5jdGlvbiBsZSh0LGUscil7dFtlKzRdPXI/MTowfWZ1bmN0aW9uIGNlKGUscixuKXtyZXR1cm4gcioodC5FWFRFTlQvKGUudGlsZVNpemUqTWF0aC5wb3coMixuLWUudGlsZUlELm92ZXJzY2FsZWRaKSkpfXNlLnByb3RvdHlwZS5wbGFjZUNvbGxpc2lvbkJveD1mdW5jdGlvbih0LGUscixuLGEpe3ZhciBpPXRoaXMucHJvamVjdEFuZEdldFBlcnNwZWN0aXZlUmF0aW8obix0LmFuY2hvclBvaW50WCx0LmFuY2hvclBvaW50WSksbz1yKmkucGVyc3BlY3RpdmVSYXRpbyxzPXQueDEqbytpLnBvaW50LngsbD10LnkxKm8raS5wb2ludC55LGM9dC54MipvK2kucG9pbnQueCx1PXQueTIqbytpLnBvaW50Lnk7cmV0dXJuIXRoaXMuaXNJbnNpZGVHcmlkKHMsbCxjLHUpfHwhZSYmdGhpcy5ncmlkLmhpdFRlc3QocyxsLGMsdSxhKT97Ym94OltdLG9mZnNjcmVlbjohMX06e2JveDpbcyxsLGMsdV0sb2Zmc2NyZWVuOnRoaXMuaXNPZmZzY3JlZW4ocyxsLGMsdSl9fSxzZS5wcm90b3R5cGUuYXBwcm94aW1hdGVUaWxlRGlzdGFuY2U9ZnVuY3Rpb24odCxlLHIsbixhKXt2YXIgaT1hPzE6bi90aGlzLnBpdGNoZmFjdG9yLG89dC5sYXN0U2VnbWVudFZpZXdwb3J0RGlzdGFuY2UqcjtyZXR1cm4gdC5wcmV2VGlsZURpc3RhbmNlK28rKGktMSkqbypNYXRoLmFicyhNYXRoLnNpbihlKSl9LHNlLnByb3RvdHlwZS5wbGFjZUNvbGxpc2lvbkNpcmNsZXM9ZnVuY3Rpb24oZSxyLG4sYSxpLG8scyxsLGMsdSxoLGYscCl7dmFyIGQ9W10sZz10aGlzLnByb2plY3RBbmNob3IoYyxpLmFuY2hvclgsaS5hbmNob3JZKSx2PWwvMjQsbT1pLmxpbmVPZmZzZXRYKmwseT1pLmxpbmVPZmZzZXRZKmwseD1uZXcgdC5Qb2ludChpLmFuY2hvclgsaS5hbmNob3JZKSxiPSR0KHYscyxtLHksITEsSnQoeCx1KS5wb2ludCx4LGksbyx1LHt9LCEwKSxfPSExLHc9ITEsaz0hMCxUPWcucGVyc3BlY3RpdmVSYXRpbyphLE09MS8oYSpuKSxBPTAsUz0wO2ImJihBPXRoaXMuYXBwcm94aW1hdGVUaWxlRGlzdGFuY2UoYi5maXJzdC50aWxlRGlzdGFuY2UsYi5maXJzdC5hbmdsZSxNLGcuY2FtZXJhRGlzdGFuY2UsZiksUz10aGlzLmFwcHJveGltYXRlVGlsZURpc3RhbmNlKGIubGFzdC50aWxlRGlzdGFuY2UsYi5sYXN0LmFuZ2xlLE0sZy5jYW1lcmFEaXN0YW5jZSxmKSk7Zm9yKHZhciBFPTA7RTxlLmxlbmd0aDtFKz01KXt2YXIgTD1lW0VdLEM9ZVtFKzFdLFA9ZVtFKzJdLE89ZVtFKzNdO2lmKCFifHxPPC1BfHxPPlMpbGUoZSxFLCExKTtlbHNle3ZhciB6PXRoaXMucHJvamVjdFBvaW50KGMsTCxDKSxJPVAqVDtpZihkLmxlbmd0aD4wKXt2YXIgRD16LngtZFtkLmxlbmd0aC00XSxSPXoueS1kW2QubGVuZ3RoLTNdO2lmKEkqSSoyPkQqRCtSKlImJkUrODxlLmxlbmd0aCl7dmFyIEY9ZVtFKzhdO2lmKEY+LUEmJkY8Uyl7bGUoZSxFLCExKTtjb250aW51ZX19fXZhciBCPUUvNTtkLnB1c2goei54LHoueSxJLEIpLGxlKGUsRSwhMCk7dmFyIE49ei54LUksaj16LnktSSxWPXoueCtJLFU9ei55K0k7aWYoaz1rJiZ0aGlzLmlzT2Zmc2NyZWVuKE4saixWLFUpLHc9d3x8dGhpcy5pc0luc2lkZUdyaWQoTixqLFYsVSksIXImJnRoaXMuZ3JpZC5oaXRUZXN0Q2lyY2xlKHoueCx6LnksSSxwKSl7aWYoIWgpcmV0dXJue2NpcmNsZXM6W10sb2Zmc2NyZWVuOiExfTtfPSEwfX19cmV0dXJue2NpcmNsZXM6X3x8IXc/W106ZCxvZmZzY3JlZW46a319LHNlLnByb3RvdHlwZS5xdWVyeVJlbmRlcmVkU3ltYm9scz1mdW5jdGlvbihlKXtpZigwPT09ZS5sZW5ndGh8fDA9PT10aGlzLmdyaWQua2V5c0xlbmd0aCgpJiYwPT09dGhpcy5pZ25vcmVkR3JpZC5rZXlzTGVuZ3RoKCkpcmV0dXJue307Zm9yKHZhciByPVtdLG49MS8wLGE9MS8wLGk9LTEvMCxvPS0xLzAscz0wLGw9ZTtzPGwubGVuZ3RoO3MrPTEpe3ZhciBjPWxbc10sdT1uZXcgdC5Qb2ludChjLngrMTAwLGMueSsxMDApO249TWF0aC5taW4obix1LngpLGE9TWF0aC5taW4oYSx1LnkpLGk9TWF0aC5tYXgoaSx1LngpLG89TWF0aC5tYXgobyx1LnkpLHIucHVzaCh1KX1mb3IodmFyIGg9e30sZj17fSxwPTAsZD10aGlzLmdyaWQucXVlcnkobixhLGksbykuY29uY2F0KHRoaXMuaWdub3JlZEdyaWQucXVlcnkobixhLGksbykpO3A8ZC5sZW5ndGg7cCs9MSl7dmFyIGc9ZFtwXSx2PWcua2V5O2lmKHZvaWQgMD09PWhbdi5idWNrZXRJbnN0YW5jZUlkXSYmKGhbdi5idWNrZXRJbnN0YW5jZUlkXT17fSksIWhbdi5idWNrZXRJbnN0YW5jZUlkXVt2LmZlYXR1cmVJbmRleF0pe3ZhciBtPVtuZXcgdC5Qb2ludChnLngxLGcueTEpLG5ldyB0LlBvaW50KGcueDIsZy55MSksbmV3IHQuUG9pbnQoZy54MixnLnkyKSxuZXcgdC5Qb2ludChnLngxLGcueTIpXTt0LnBvbHlnb25JbnRlcnNlY3RzUG9seWdvbihyLG0pJiYoaFt2LmJ1Y2tldEluc3RhbmNlSWRdW3YuZmVhdHVyZUluZGV4XT0hMCx2b2lkIDA9PT1mW3YuYnVja2V0SW5zdGFuY2VJZF0mJihmW3YuYnVja2V0SW5zdGFuY2VJZF09W10pLGZbdi5idWNrZXRJbnN0YW5jZUlkXS5wdXNoKHYuZmVhdHVyZUluZGV4KSl9fXJldHVybiBmfSxzZS5wcm90b3R5cGUuaW5zZXJ0Q29sbGlzaW9uQm94PWZ1bmN0aW9uKHQsZSxyLG4sYSl7dmFyIGk9e2J1Y2tldEluc3RhbmNlSWQ6cixmZWF0dXJlSW5kZXg6bixjb2xsaXNpb25Hcm91cElEOmF9OyhlP3RoaXMuaWdub3JlZEdyaWQ6dGhpcy5ncmlkKS5pbnNlcnQoaSx0WzBdLHRbMV0sdFsyXSx0WzNdKX0sc2UucHJvdG90eXBlLmluc2VydENvbGxpc2lvbkNpcmNsZXM9ZnVuY3Rpb24odCxlLHIsbixhKXtmb3IodmFyIGk9ZT90aGlzLmlnbm9yZWRHcmlkOnRoaXMuZ3JpZCxvPXtidWNrZXRJbnN0YW5jZUlkOnIsZmVhdHVyZUluZGV4Om4sY29sbGlzaW9uR3JvdXBJRDphfSxzPTA7czx0Lmxlbmd0aDtzKz00KWkuaW5zZXJ0Q2lyY2xlKG8sdFtzXSx0W3MrMV0sdFtzKzJdKX0sc2UucHJvdG90eXBlLnByb2plY3RBbmNob3I9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPVtlLHIsMCwxXTtyZXR1cm4gb2UobixuLHQpLHtwZXJzcGVjdGl2ZVJhdGlvOi41K3RoaXMudHJhbnNmb3JtLmNhbWVyYVRvQ2VudGVyRGlzdGFuY2UvblszXSouNSxjYW1lcmFEaXN0YW5jZTpuWzNdfX0sc2UucHJvdG90eXBlLnByb2plY3RQb2ludD1mdW5jdGlvbihlLHIsbil7dmFyIGE9W3IsbiwwLDFdO3JldHVybiBvZShhLGEsZSksbmV3IHQuUG9pbnQoKGFbMF0vYVszXSsxKS8yKnRoaXMudHJhbnNmb3JtLndpZHRoKzEwMCwoLWFbMV0vYVszXSsxKS8yKnRoaXMudHJhbnNmb3JtLmhlaWdodCsxMDApfSxzZS5wcm90b3R5cGUucHJvamVjdEFuZEdldFBlcnNwZWN0aXZlUmF0aW89ZnVuY3Rpb24oZSxyLG4pe3ZhciBhPVtyLG4sMCwxXTtyZXR1cm4gb2UoYSxhLGUpLHtwb2ludDpuZXcgdC5Qb2ludCgoYVswXS9hWzNdKzEpLzIqdGhpcy50cmFuc2Zvcm0ud2lkdGgrMTAwLCgtYVsxXS9hWzNdKzEpLzIqdGhpcy50cmFuc2Zvcm0uaGVpZ2h0KzEwMCkscGVyc3BlY3RpdmVSYXRpbzouNSt0aGlzLnRyYW5zZm9ybS5jYW1lcmFUb0NlbnRlckRpc3RhbmNlL2FbM10qLjV9fSxzZS5wcm90b3R5cGUuaXNPZmZzY3JlZW49ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIHI8MTAwfHx0Pj10aGlzLnNjcmVlblJpZ2h0Qm91bmRhcnl8fG48MTAwfHxlPnRoaXMuc2NyZWVuQm90dG9tQm91bmRhcnl9LHNlLnByb3RvdHlwZS5pc0luc2lkZUdyaWQ9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIHI+PTAmJnQ8dGhpcy5ncmlkUmlnaHRCb3VuZGFyeSYmbj49MCYmZTx0aGlzLmdyaWRCb3R0b21Cb3VuZGFyeX07dmFyIHVlPWZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMub3BhY2l0eT10P01hdGgubWF4KDAsTWF0aC5taW4oMSx0Lm9wYWNpdHkrKHQucGxhY2VkP2U6LWUpKSk6biYmcj8xOjAsdGhpcy5wbGFjZWQ9cn07dWUucHJvdG90eXBlLmlzSGlkZGVuPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLm9wYWNpdHkmJiF0aGlzLnBsYWNlZH07dmFyIGhlPWZ1bmN0aW9uKHQsZSxyLG4sYSl7dGhpcy50ZXh0PW5ldyB1ZSh0P3QudGV4dDpudWxsLGUscixhKSx0aGlzLmljb249bmV3IHVlKHQ/dC5pY29uOm51bGwsZSxuLGEpfTtoZS5wcm90b3R5cGUuaXNIaWRkZW49ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50ZXh0LmlzSGlkZGVuKCkmJnRoaXMuaWNvbi5pc0hpZGRlbigpfTt2YXIgZmU9ZnVuY3Rpb24odCxlLHIpe3RoaXMudGV4dD10LHRoaXMuaWNvbj1lLHRoaXMuc2tpcEZhZGU9cn0scGU9ZnVuY3Rpb24odCxlLHIsbixhKXt0aGlzLmJ1Y2tldEluc3RhbmNlSWQ9dCx0aGlzLmZlYXR1cmVJbmRleD1lLHRoaXMuc291cmNlTGF5ZXJJbmRleD1yLHRoaXMuYnVja2V0SW5kZXg9bix0aGlzLnRpbGVJRD1hfSxkZT1mdW5jdGlvbih0KXt0aGlzLmNyb3NzU291cmNlQ29sbGlzaW9ucz10LHRoaXMubWF4R3JvdXBJRD0wLHRoaXMuY29sbGlzaW9uR3JvdXBzPXt9fTtmdW5jdGlvbiBnZShlLHIsbixhLGkpe3ZhciBvPXQuZ2V0QW5jaG9yQWxpZ25tZW50KGUpLHM9LShvLmhvcml6b250YWxBbGlnbi0uNSkqcixsPS0oby52ZXJ0aWNhbEFsaWduLS41KSpuLGM9dC5ldmFsdWF0ZVJhZGlhbE9mZnNldChlLGEpO3JldHVybiBuZXcgdC5Qb2ludChzK2NbMF0qaSxsK2NbMV0qaSl9ZGUucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtpZih0aGlzLmNyb3NzU291cmNlQ29sbGlzaW9ucylyZXR1cm57SUQ6MCxwcmVkaWNhdGU6bnVsbH07aWYoIXRoaXMuY29sbGlzaW9uR3JvdXBzW3RdKXt2YXIgZT0rK3RoaXMubWF4R3JvdXBJRDt0aGlzLmNvbGxpc2lvbkdyb3Vwc1t0XT17SUQ6ZSxwcmVkaWNhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIHQuY29sbGlzaW9uR3JvdXBJRD09PWV9fX1yZXR1cm4gdGhpcy5jb2xsaXNpb25Hcm91cHNbdF19O3ZhciB2ZT1mdW5jdGlvbih0LGUscixuKXt0aGlzLnRyYW5zZm9ybT10LmNsb25lKCksdGhpcy5jb2xsaXNpb25JbmRleD1uZXcgc2UodGhpcy50cmFuc2Zvcm0pLHRoaXMucGxhY2VtZW50cz17fSx0aGlzLm9wYWNpdGllcz17fSx0aGlzLnZhcmlhYmxlT2Zmc2V0cz17fSx0aGlzLnN0YWxlPSExLHRoaXMuY29tbWl0VGltZT0wLHRoaXMuZmFkZUR1cmF0aW9uPWUsdGhpcy5yZXRhaW5lZFF1ZXJ5RGF0YT17fSx0aGlzLmNvbGxpc2lvbkdyb3Vwcz1uZXcgZGUociksdGhpcy5wcmV2UGxhY2VtZW50PW4sbiYmKG4ucHJldlBsYWNlbWVudD12b2lkIDApLHRoaXMucGxhY2VkT3JpZW50YXRpb25zPXt9fTtmdW5jdGlvbiBtZSh0LGUscixuLGEpe3QuZW1wbGFjZUJhY2soZT8xOjAscj8xOjAsbnx8MCxhfHwwKSx0LmVtcGxhY2VCYWNrKGU/MTowLHI/MTowLG58fDAsYXx8MCksdC5lbXBsYWNlQmFjayhlPzE6MCxyPzE6MCxufHwwLGF8fDApLHQuZW1wbGFjZUJhY2soZT8xOjAscj8xOjAsbnx8MCxhfHwwKX12ZS5wcm90b3R5cGUucGxhY2VMYXllclRpbGU9ZnVuY3Rpb24oZSxyLG4sYSl7dmFyIGk9ci5nZXRCdWNrZXQoZSksbz1yLmxhdGVzdEZlYXR1cmVJbmRleDtpZihpJiZvJiZlLmlkPT09aS5sYXllcklkc1swXSl7dmFyIHM9ci5jb2xsaXNpb25Cb3hBcnJheSxsPWkubGF5ZXJzWzBdLmxheW91dCxjPU1hdGgucG93KDIsdGhpcy50cmFuc2Zvcm0uem9vbS1yLnRpbGVJRC5vdmVyc2NhbGVkWiksdT1yLnRpbGVTaXplL3QuRVhURU5ULGg9dGhpcy50cmFuc2Zvcm0uY2FsY3VsYXRlUG9zTWF0cml4KHIudGlsZUlELnRvVW53cmFwcGVkKCkpLGY9WHQoaCwibWFwIj09PWwuZ2V0KCJ0ZXh0LXBpdGNoLWFsaWdubWVudCIpLCJtYXAiPT09bC5nZXQoInRleHQtcm90YXRpb24tYWxpZ25tZW50IiksdGhpcy50cmFuc2Zvcm0sY2UociwxLHRoaXMudHJhbnNmb3JtLnpvb20pKSxwPVh0KGgsIm1hcCI9PT1sLmdldCgiaWNvbi1waXRjaC1hbGlnbm1lbnQiKSwibWFwIj09PWwuZ2V0KCJpY29uLXJvdGF0aW9uLWFsaWdubWVudCIpLHRoaXMudHJhbnNmb3JtLGNlKHIsMSx0aGlzLnRyYW5zZm9ybS56b29tKSk7dGhpcy5yZXRhaW5lZFF1ZXJ5RGF0YVtpLmJ1Y2tldEluc3RhbmNlSWRdPW5ldyBwZShpLmJ1Y2tldEluc3RhbmNlSWQsbyxpLnNvdXJjZUxheWVySW5kZXgsaS5pbmRleCxyLnRpbGVJRCksdGhpcy5wbGFjZUxheWVyQnVja2V0KGksaCxmLHAsYyx1LG4sci5ob2xkaW5nRm9yRmFkZSgpLGEscyl9fSx2ZS5wcm90b3R5cGUuYXR0ZW1wdEFuY2hvclBsYWNlbWVudD1mdW5jdGlvbihlLHIsbixhLGksbyxzLGwsYyx1LGgsZixwLGQsZyl7dmFyIHYsbT1nZShlLG4sYSxpLG8pLHk9dGhpcy5jb2xsaXNpb25JbmRleC5wbGFjZUNvbGxpc2lvbkJveChmdW5jdGlvbihlLHIsbixhLGksbyl7dmFyIHM9ZS54MSxsPWUueDIsYz1lLnkxLHU9ZS55MixoPWUuYW5jaG9yUG9pbnRYLGY9ZS5hbmNob3JQb2ludFkscD1uZXcgdC5Qb2ludChyLG4pO3JldHVybiBhJiZwLl9yb3RhdGUoaT9vOi1vKSx7eDE6cytwLngseTE6YytwLnkseDI6bCtwLngseTI6dStwLnksYW5jaG9yUG9pbnRYOmgsYW5jaG9yUG9pbnRZOmZ9fShyLG0ueCxtLnkscyxsLHRoaXMudHJhbnNmb3JtLmFuZ2xlKSxmLGMsdSxoLnByZWRpY2F0ZSk7aWYoeS5ib3gubGVuZ3RoPjApcmV0dXJuIHRoaXMucHJldlBsYWNlbWVudCYmdGhpcy5wcmV2UGxhY2VtZW50LnZhcmlhYmxlT2Zmc2V0c1twLmNyb3NzVGlsZUlEXSYmdGhpcy5wcmV2UGxhY2VtZW50LnBsYWNlbWVudHNbcC5jcm9zc1RpbGVJRF0mJnRoaXMucHJldlBsYWNlbWVudC5wbGFjZW1lbnRzW3AuY3Jvc3NUaWxlSURdLnRleHQmJih2PXRoaXMucHJldlBsYWNlbWVudC52YXJpYWJsZU9mZnNldHNbcC5jcm9zc1RpbGVJRF0uYW5jaG9yKSx0aGlzLnZhcmlhYmxlT2Zmc2V0c1twLmNyb3NzVGlsZUlEXT17cmFkaWFsT2Zmc2V0Omksd2lkdGg6bixoZWlnaHQ6YSxhbmNob3I6ZSx0ZXh0Qm94U2NhbGU6byxwcmV2QW5jaG9yOnZ9LHRoaXMubWFya1VzZWRKdXN0aWZpY2F0aW9uKGQsZSxwLGcpLGQuYWxsb3dWZXJ0aWNhbFBsYWNlbWVudCYmKHRoaXMubWFya1VzZWRPcmllbnRhdGlvbihkLGcscCksdGhpcy5wbGFjZWRPcmllbnRhdGlvbnNbcC5jcm9zc1RpbGVJRF09ZykseX0sdmUucHJvdG90eXBlLnBsYWNlTGF5ZXJCdWNrZXQ9ZnVuY3Rpb24oZSxyLG4sYSxpLG8scyxsLGMsdSl7dmFyIGg9dGhpcyxmPWUubGF5ZXJzWzBdLmxheW91dCxwPXQuZXZhbHVhdGVTaXplRm9yWm9vbShlLnRleHRTaXplRGF0YSx0aGlzLnRyYW5zZm9ybS56b29tKSxkPWYuZ2V0KCJ0ZXh0LW9wdGlvbmFsIiksZz1mLmdldCgiaWNvbi1vcHRpb25hbCIpLHY9Zi5nZXQoInRleHQtYWxsb3ctb3ZlcmxhcCIpLG09Zi5nZXQoImljb24tYWxsb3ctb3ZlcmxhcCIpLHk9diYmKG18fCFlLmhhc0ljb25EYXRhKCl8fGcpLHg9bSYmKHZ8fCFlLmhhc1RleHREYXRhKCl8fGQpLGI9dGhpcy5jb2xsaXNpb25Hcm91cHMuZ2V0KGUuc291cmNlSUQpLF89Im1hcCI9PT1mLmdldCgidGV4dC1yb3RhdGlvbi1hbGlnbm1lbnQiKSx3PSJtYXAiPT09Zi5nZXQoInRleHQtcGl0Y2gtYWxpZ25tZW50Iiksaz0idmlld3BvcnQteSI9PT1mLmdldCgic3ltYm9sLXotb3JkZXIiKTshZS5jb2xsaXNpb25BcnJheXMmJnUmJmUuZGVzZXJpYWxpemVDb2xsaXNpb25Cb3hlcyh1KTt2YXIgVD1mdW5jdGlvbihhLHUpe2lmKCFjW2EuY3Jvc3NUaWxlSURdKWlmKGwpaC5wbGFjZW1lbnRzW2EuY3Jvc3NUaWxlSURdPW5ldyBmZSghMSwhMSwhMSk7ZWxzZXt2YXIgbSxrPSExLFQ9ITEsTT0hMCxBPXtib3g6bnVsbCxvZmZzY3JlZW46bnVsbH0sUz17Ym94Om51bGwsb2Zmc2NyZWVuOm51bGx9LEU9bnVsbCxMPW51bGwsQz0wLFA9MCxPPTA7dS50ZXh0RmVhdHVyZUluZGV4JiYoQz11LnRleHRGZWF0dXJlSW5kZXgpLHUudmVydGljYWxUZXh0RmVhdHVyZUluZGV4JiYoUD11LnZlcnRpY2FsVGV4dEZlYXR1cmVJbmRleCk7dmFyIHo9dS50ZXh0Qm94O2lmKHope3ZhciBJPWZ1bmN0aW9uKHIpe3ZhciBuPXQuV3JpdGluZ01vZGUuaG9yaXpvbnRhbDtpZihlLmFsbG93VmVydGljYWxQbGFjZW1lbnQmJiFyJiZoLnByZXZQbGFjZW1lbnQpe3ZhciBpPWgucHJldlBsYWNlbWVudC5wbGFjZWRPcmllbnRhdGlvbnNbYS5jcm9zc1RpbGVJRF07aSYmKGgucGxhY2VkT3JpZW50YXRpb25zW2EuY3Jvc3NUaWxlSURdPWksbj1pLGgubWFya1VzZWRPcmllbnRhdGlvbihlLG4sYSkpfXJldHVybiBufSxEPWZ1bmN0aW9uKHIsbil7aWYoZS5hbGxvd1ZlcnRpY2FsUGxhY2VtZW50JiZhLm51bVZlcnRpY2FsR2x5cGhWZXJ0aWNlcz4wJiZ1LnZlcnRpY2FsVGV4dEJveClmb3IodmFyIGk9MCxvPWUud3JpdGluZ01vZGVzO2k8by5sZW5ndGgmJihvW2ldPT09dC5Xcml0aW5nTW9kZS52ZXJ0aWNhbD8oQT1uKCksUz1BKTpBPXIoKSwhKEEmJkEuYm94JiZBLmJveC5sZW5ndGgpKTtpKz0xKTtlbHNlIEE9cigpfTtpZihmLmdldCgidGV4dC12YXJpYWJsZS1hbmNob3IiKSl7dmFyIFI9Zi5nZXQoInRleHQtdmFyaWFibGUtYW5jaG9yIik7aWYoaC5wcmV2UGxhY2VtZW50JiZoLnByZXZQbGFjZW1lbnQudmFyaWFibGVPZmZzZXRzW2EuY3Jvc3NUaWxlSURdKXt2YXIgRj1oLnByZXZQbGFjZW1lbnQudmFyaWFibGVPZmZzZXRzW2EuY3Jvc3NUaWxlSURdO1IuaW5kZXhPZihGLmFuY2hvcik+MCYmKFI9Ui5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQhPT1GLmFuY2hvcn0pKS51bnNoaWZ0KEYuYW5jaG9yKX12YXIgQj1mdW5jdGlvbih0LG4pe2Zvcih2YXIgaT10LngyLXQueDEscz10LnkyLXQueTEsbD1hLnRleHRCb3hTY2FsZSxjPXtib3g6W10sb2Zmc2NyZWVuOiExfSx1PXY/MipSLmxlbmd0aDpSLmxlbmd0aCxmPTA7Zjx1OysrZil7dmFyIHA9UltmJVIubGVuZ3RoXSxkPWY+PVIubGVuZ3RoO2lmKChjPWguYXR0ZW1wdEFuY2hvclBsYWNlbWVudChwLHQsaSxzLGEucmFkaWFsVGV4dE9mZnNldCxsLF8sdyxvLHIsYixkLGEsZSxuKSkmJmMuYm94JiZjLmJveC5sZW5ndGgpe2s9ITA7YnJlYWt9fXJldHVybiBjfTtEKGZ1bmN0aW9uKCl7cmV0dXJuIEIoeix0LldyaXRpbmdNb2RlLmhvcml6b250YWwpfSxmdW5jdGlvbigpe3ZhciByPXUudmVydGljYWxUZXh0Qm94LG49QSYmQS5ib3gmJkEuYm94Lmxlbmd0aDtyZXR1cm4gZS5hbGxvd1ZlcnRpY2FsUGxhY2VtZW50JiYhbiYmYS5udW1WZXJ0aWNhbEdseXBoVmVydGljZXM+MCYmcj9CKHIsdC5Xcml0aW5nTW9kZS52ZXJ0aWNhbCk6e2JveDpudWxsLG9mZnNjcmVlbjpudWxsfX0pLEEmJihrPUEuYm94LE09QS5vZmZzY3JlZW4pO3ZhciBOPUkoQSYmQS5ib3gpO2lmKCFrJiZoLnByZXZQbGFjZW1lbnQpe3ZhciBqPWgucHJldlBsYWNlbWVudC52YXJpYWJsZU9mZnNldHNbYS5jcm9zc1RpbGVJRF07aiYmKGgudmFyaWFibGVPZmZzZXRzW2EuY3Jvc3NUaWxlSURdPWosaC5tYXJrVXNlZEp1c3RpZmljYXRpb24oZSxqLmFuY2hvcixhLE4pKX19ZWxzZXt2YXIgVj1mdW5jdGlvbih0LG4pe3ZhciBpPWguY29sbGlzaW9uSW5kZXgucGxhY2VDb2xsaXNpb25Cb3godCxmLmdldCgidGV4dC1hbGxvdy1vdmVybGFwIiksbyxyLGIucHJlZGljYXRlKTtyZXR1cm4gaSYmaS5ib3gmJmkuYm94Lmxlbmd0aCYmKGgubWFya1VzZWRPcmllbnRhdGlvbihlLG4sYSksaC5wbGFjZWRPcmllbnRhdGlvbnNbYS5jcm9zc1RpbGVJRF09biksaX07RChmdW5jdGlvbigpe3JldHVybiBWKHosdC5Xcml0aW5nTW9kZS5ob3Jpem9udGFsKX0sZnVuY3Rpb24oKXt2YXIgcj11LnZlcnRpY2FsVGV4dEJveDtyZXR1cm4gZS5hbGxvd1ZlcnRpY2FsUGxhY2VtZW50JiZhLm51bVZlcnRpY2FsR2x5cGhWZXJ0aWNlcz4wJiZyP1Yocix0LldyaXRpbmdNb2RlLnZlcnRpY2FsKTp7Ym94Om51bGwsb2Zmc2NyZWVuOm51bGx9fSksSShBJiZBLmJveCYmQS5ib3gubGVuZ3RoKX19az0obT1BKSYmbS5ib3gmJm0uYm94Lmxlbmd0aD4wLE09bSYmbS5vZmZzY3JlZW47dmFyIFU9dS50ZXh0Q2lyY2xlcztpZihVKXt2YXIgcT1lLnRleHQucGxhY2VkU3ltYm9sQXJyYXkuZ2V0KGEuY2VudGVySnVzdGlmaWVkVGV4dFN5bWJvbEluZGV4KSxIPXQuZXZhbHVhdGVTaXplRm9yRmVhdHVyZShlLnRleHRTaXplRGF0YSxwLHEpO0U9aC5jb2xsaXNpb25JbmRleC5wbGFjZUNvbGxpc2lvbkNpcmNsZXMoVSxmLmdldCgidGV4dC1hbGxvdy1vdmVybGFwIiksaSxvLHEsZS5saW5lVmVydGV4QXJyYXksZS5nbHlwaE9mZnNldEFycmF5LEgscixuLHMsdyxiLnByZWRpY2F0ZSksaz1mLmdldCgidGV4dC1hbGxvdy1vdmVybGFwIil8fEUuY2lyY2xlcy5sZW5ndGg+MCxNPU0mJkUub2Zmc2NyZWVufXUuaWNvbkZlYXR1cmVJbmRleCYmKE89dS5pY29uRmVhdHVyZUluZGV4KSx1Lmljb25Cb3gmJihUPShMPWguY29sbGlzaW9uSW5kZXgucGxhY2VDb2xsaXNpb25Cb3godS5pY29uQm94LGYuZ2V0KCJpY29uLWFsbG93LW92ZXJsYXAiKSxvLHIsYi5wcmVkaWNhdGUpKS5ib3gubGVuZ3RoPjAsTT1NJiZMLm9mZnNjcmVlbik7dmFyIEc9ZHx8MD09PWEubnVtSG9yaXpvbnRhbEdseXBoVmVydGljZXMmJjA9PT1hLm51bVZlcnRpY2FsR2x5cGhWZXJ0aWNlcyxZPWd8fDA9PT1hLm51bUljb25WZXJ0aWNlcztHfHxZP1k/R3x8KFQ9VCYmayk6az1UJiZrOlQ9az1UJiZrLGsmJm0mJm0uYm94JiYoUyYmUy5ib3gmJlA/aC5jb2xsaXNpb25JbmRleC5pbnNlcnRDb2xsaXNpb25Cb3gobS5ib3gsZi5nZXQoInRleHQtaWdub3JlLXBsYWNlbWVudCIpLGUuYnVja2V0SW5zdGFuY2VJZCxQLGIuSUQpOmguY29sbGlzaW9uSW5kZXguaW5zZXJ0Q29sbGlzaW9uQm94KG0uYm94LGYuZ2V0KCJ0ZXh0LWlnbm9yZS1wbGFjZW1lbnQiKSxlLmJ1Y2tldEluc3RhbmNlSWQsQyxiLklEKSksVCYmTCYmaC5jb2xsaXNpb25JbmRleC5pbnNlcnRDb2xsaXNpb25Cb3goTC5ib3gsZi5nZXQoImljb24taWdub3JlLXBsYWNlbWVudCIpLGUuYnVja2V0SW5zdGFuY2VJZCxPLGIuSUQpLGsmJkUmJmguY29sbGlzaW9uSW5kZXguaW5zZXJ0Q29sbGlzaW9uQ2lyY2xlcyhFLmNpcmNsZXMsZi5nZXQoInRleHQtaWdub3JlLXBsYWNlbWVudCIpLGUuYnVja2V0SW5zdGFuY2VJZCxDLGIuSUQpLGgucGxhY2VtZW50c1thLmNyb3NzVGlsZUlEXT1uZXcgZmUoa3x8eSxUfHx4LE18fGUuanVzdFJlbG9hZGVkKSxjW2EuY3Jvc3NUaWxlSURdPSEwfX07aWYoaylmb3IodmFyIE09ZS5nZXRTb3J0ZWRTeW1ib2xJbmRleGVzKHRoaXMudHJhbnNmb3JtLmFuZ2xlKSxBPU0ubGVuZ3RoLTE7QT49MDstLUEpe3ZhciBTPU1bQV07VChlLnN5bWJvbEluc3RhbmNlcy5nZXQoUyksZS5jb2xsaXNpb25BcnJheXNbU10pfWVsc2UgZm9yKHZhciBFPTA7RTxlLnN5bWJvbEluc3RhbmNlcy5sZW5ndGg7KytFKVQoZS5zeW1ib2xJbnN0YW5jZXMuZ2V0KEUpLGUuY29sbGlzaW9uQXJyYXlzW0VdKTtlLmp1c3RSZWxvYWRlZD0hMX0sdmUucHJvdG90eXBlLm1hcmtVc2VkSnVzdGlmaWNhdGlvbj1mdW5jdGlvbihlLHIsbixhKXt2YXIgaSxvPXtsZWZ0Om4ubGVmdEp1c3RpZmllZFRleHRTeW1ib2xJbmRleCxjZW50ZXI6bi5jZW50ZXJKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXgscmlnaHQ6bi5yaWdodEp1c3RpZmllZFRleHRTeW1ib2xJbmRleH07aT1hPT09dC5Xcml0aW5nTW9kZS52ZXJ0aWNhbD9uLnZlcnRpY2FsUGxhY2VkVGV4dFN5bWJvbEluZGV4Om9bdC5nZXRBbmNob3JKdXN0aWZpY2F0aW9uKHIpXTtmb3IodmFyIHM9MCxsPVtuLmxlZnRKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXgsbi5jZW50ZXJKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXgsbi5yaWdodEp1c3RpZmllZFRleHRTeW1ib2xJbmRleCxuLnZlcnRpY2FsUGxhY2VkVGV4dFN5bWJvbEluZGV4XTtzPGwubGVuZ3RoO3MrPTEpe3ZhciBjPWxbc107Yz49MCYmKGUudGV4dC5wbGFjZWRTeW1ib2xBcnJheS5nZXQoYykuY3Jvc3NUaWxlSUQ9aT49MCYmYyE9PWk/MDpuLmNyb3NzVGlsZUlEKX19LHZlLnByb3RvdHlwZS5tYXJrVXNlZE9yaWVudGF0aW9uPWZ1bmN0aW9uKGUscixuKXtmb3IodmFyIGE9cj09PXQuV3JpdGluZ01vZGUuaG9yaXpvbnRhbHx8cj09PXQuV3JpdGluZ01vZGUuaG9yaXpvbnRhbE9ubHk/cjowLGk9cj09PXQuV3JpdGluZ01vZGUudmVydGljYWw/cjowLG89MCxzPVtuLmxlZnRKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXgsbi5jZW50ZXJKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXgsbi5yaWdodEp1c3RpZmllZFRleHRTeW1ib2xJbmRleF07bzxzLmxlbmd0aDtvKz0xKXt2YXIgbD1zW29dO2UudGV4dC5wbGFjZWRTeW1ib2xBcnJheS5nZXQobCkucGxhY2VkT3JpZW50YXRpb249YX1uLnZlcnRpY2FsUGxhY2VkVGV4dFN5bWJvbEluZGV4JiYoZS50ZXh0LnBsYWNlZFN5bWJvbEFycmF5LmdldChuLnZlcnRpY2FsUGxhY2VkVGV4dFN5bWJvbEluZGV4KS5wbGFjZWRPcmllbnRhdGlvbj1pKX0sdmUucHJvdG90eXBlLmNvbW1pdD1mdW5jdGlvbih0KXt0aGlzLmNvbW1pdFRpbWU9dDt2YXIgZT10aGlzLnByZXZQbGFjZW1lbnQscj0hMSxuPWUmJjAhPT10aGlzLmZhZGVEdXJhdGlvbj8odGhpcy5jb21taXRUaW1lLWUuY29tbWl0VGltZSkvdGhpcy5mYWRlRHVyYXRpb246MSxhPWU/ZS5vcGFjaXRpZXM6e30saT1lP2UudmFyaWFibGVPZmZzZXRzOnt9LG89ZT9lLnBsYWNlZE9yaWVudGF0aW9uczp7fTtmb3IodmFyIHMgaW4gdGhpcy5wbGFjZW1lbnRzKXt2YXIgbD10aGlzLnBsYWNlbWVudHNbc10sYz1hW3NdO2M/KHRoaXMub3BhY2l0aWVzW3NdPW5ldyBoZShjLG4sbC50ZXh0LGwuaWNvbikscj1yfHxsLnRleHQhPT1jLnRleHQucGxhY2VkfHxsLmljb24hPT1jLmljb24ucGxhY2VkKToodGhpcy5vcGFjaXRpZXNbc109bmV3IGhlKG51bGwsbixsLnRleHQsbC5pY29uLGwuc2tpcEZhZGUpLHI9cnx8bC50ZXh0fHxsLmljb24pfWZvcih2YXIgdSBpbiBhKXt2YXIgaD1hW3VdO2lmKCF0aGlzLm9wYWNpdGllc1t1XSl7dmFyIGY9bmV3IGhlKGgsbiwhMSwhMSk7Zi5pc0hpZGRlbigpfHwodGhpcy5vcGFjaXRpZXNbdV09ZixyPXJ8fGgudGV4dC5wbGFjZWR8fGguaWNvbi5wbGFjZWQpfX1mb3IodmFyIHAgaW4gaSl0aGlzLnZhcmlhYmxlT2Zmc2V0c1twXXx8IXRoaXMub3BhY2l0aWVzW3BdfHx0aGlzLm9wYWNpdGllc1twXS5pc0hpZGRlbigpfHwodGhpcy52YXJpYWJsZU9mZnNldHNbcF09aVtwXSk7Zm9yKHZhciBkIGluIG8pdGhpcy5wbGFjZWRPcmllbnRhdGlvbnNbZF18fCF0aGlzLm9wYWNpdGllc1tkXXx8dGhpcy5vcGFjaXRpZXNbZF0uaXNIaWRkZW4oKXx8KHRoaXMucGxhY2VkT3JpZW50YXRpb25zW2RdPW9bZF0pO3I/dGhpcy5sYXN0UGxhY2VtZW50Q2hhbmdlVGltZT10OiJudW1iZXIiIT10eXBlb2YgdGhpcy5sYXN0UGxhY2VtZW50Q2hhbmdlVGltZSYmKHRoaXMubGFzdFBsYWNlbWVudENoYW5nZVRpbWU9ZT9lLmxhc3RQbGFjZW1lbnRDaGFuZ2VUaW1lOnQpfSx2ZS5wcm90b3R5cGUudXBkYXRlTGF5ZXJPcGFjaXRpZXM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9e30sbj0wLGE9ZTtuPGEubGVuZ3RoO24rPTEpe3ZhciBpPWFbbl0sbz1pLmdldEJ1Y2tldCh0KTtvJiZpLmxhdGVzdEZlYXR1cmVJbmRleCYmdC5pZD09PW8ubGF5ZXJJZHNbMF0mJnRoaXMudXBkYXRlQnVja2V0T3BhY2l0aWVzKG8scixpLmNvbGxpc2lvbkJveEFycmF5KX19LHZlLnByb3RvdHlwZS51cGRhdGVCdWNrZXRPcGFjaXRpZXM9ZnVuY3Rpb24oZSxyLG4pe2UuaGFzVGV4dERhdGEoKSYmZS50ZXh0Lm9wYWNpdHlWZXJ0ZXhBcnJheS5jbGVhcigpLGUuaGFzSWNvbkRhdGEoKSYmZS5pY29uLm9wYWNpdHlWZXJ0ZXhBcnJheS5jbGVhcigpLGUuaGFzQ29sbGlzaW9uQm94RGF0YSgpJiZlLmNvbGxpc2lvbkJveC5jb2xsaXNpb25WZXJ0ZXhBcnJheS5jbGVhcigpLGUuaGFzQ29sbGlzaW9uQ2lyY2xlRGF0YSgpJiZlLmNvbGxpc2lvbkNpcmNsZS5jb2xsaXNpb25WZXJ0ZXhBcnJheS5jbGVhcigpO3ZhciBhPWUubGF5ZXJzWzBdLmxheW91dCxpPW5ldyBoZShudWxsLDAsITEsITEsITApLG89YS5nZXQoInRleHQtYWxsb3ctb3ZlcmxhcCIpLHM9YS5nZXQoImljb24tYWxsb3ctb3ZlcmxhcCIpLGw9YS5nZXQoInRleHQtdmFyaWFibGUtYW5jaG9yIiksYz0ibWFwIj09PWEuZ2V0KCJ0ZXh0LXJvdGF0aW9uLWFsaWdubWVudCIpLHU9Im1hcCI9PT1hLmdldCgidGV4dC1waXRjaC1hbGlnbm1lbnQiKSxoPW5ldyBoZShudWxsLDAsbyYmKHN8fCFlLmhhc0ljb25EYXRhKCl8fGEuZ2V0KCJpY29uLW9wdGlvbmFsIikpLHMmJihvfHwhZS5oYXNUZXh0RGF0YSgpfHxhLmdldCgidGV4dC1vcHRpb25hbCIpKSwhMCk7IWUuY29sbGlzaW9uQXJyYXlzJiZuJiYoZS5oYXNDb2xsaXNpb25Cb3hEYXRhKCl8fGUuaGFzQ29sbGlzaW9uQ2lyY2xlRGF0YSgpKSYmZS5kZXNlcmlhbGl6ZUNvbGxpc2lvbkJveGVzKG4pO2Zvcih2YXIgZj0wO2Y8ZS5zeW1ib2xJbnN0YW5jZXMubGVuZ3RoO2YrKyl7dmFyIHA9ZS5zeW1ib2xJbnN0YW5jZXMuZ2V0KGYpLGQ9cC5udW1Ib3Jpem9udGFsR2x5cGhWZXJ0aWNlcyxnPXAubnVtVmVydGljYWxHbHlwaFZlcnRpY2VzLHY9cC5jcm9zc1RpbGVJRCxtPXJbdl0seT10aGlzLm9wYWNpdGllc1t2XTttP3k9aTp5fHwoeT1oLHRoaXMub3BhY2l0aWVzW3ZdPXkpLHJbdl09ITA7dmFyIHg9ZD4wfHxnPjAsYj1wLm51bUljb25WZXJ0aWNlcz4wO2lmKHgpe2Zvcih2YXIgXz1NZSh5LnRleHQpLHc9KGQrZykvNCxrPTA7azx3O2srKyllLnRleHQub3BhY2l0eVZlcnRleEFycmF5LmVtcGxhY2VCYWNrKF8pO3ZhciBUPXkudGV4dC5pc0hpZGRlbigpPzE6MCxNPXRoaXMucGxhY2VkT3JpZW50YXRpb25zW3AuY3Jvc3NUaWxlSURdLEE9TT09PXQuV3JpdGluZ01vZGUuaG9yaXpvbnRhbHx8TT09PXQuV3JpdGluZ01vZGUuaG9yaXpvbnRhbE9ubHk/MTowLFM9TT09PXQuV3JpdGluZ01vZGUudmVydGljYWw/MTowO1twLnJpZ2h0SnVzdGlmaWVkVGV4dFN5bWJvbEluZGV4LHAuY2VudGVySnVzdGlmaWVkVGV4dFN5bWJvbEluZGV4LHAubGVmdEp1c3RpZmllZFRleHRTeW1ib2xJbmRleF0uZm9yRWFjaChmdW5jdGlvbih0KXt0Pj0wJiYoZS50ZXh0LnBsYWNlZFN5bWJvbEFycmF5LmdldCh0KS5oaWRkZW49VHx8Uyl9KSxwLnZlcnRpY2FsUGxhY2VkVGV4dFN5bWJvbEluZGV4Pj0wJiYoZS50ZXh0LnBsYWNlZFN5bWJvbEFycmF5LmdldChwLnZlcnRpY2FsUGxhY2VkVGV4dFN5bWJvbEluZGV4KS5oaWRkZW49VHx8QSk7dmFyIEU9dGhpcy52YXJpYWJsZU9mZnNldHNbcC5jcm9zc1RpbGVJRF07RSYmdGhpcy5tYXJrVXNlZEp1c3RpZmljYXRpb24oZSxFLmFuY2hvcixwLE0pO3ZhciBMPXRoaXMucGxhY2VkT3JpZW50YXRpb25zW3AuY3Jvc3NUaWxlSURdO0wmJih0aGlzLm1hcmtVc2VkSnVzdGlmaWNhdGlvbihlLCJsZWZ0IixwLEwpLHRoaXMubWFya1VzZWRPcmllbnRhdGlvbihlLEwscCkpfWlmKGIpe2Zvcih2YXIgQz1NZSh5Lmljb24pLFA9MDtQPHAubnVtSWNvblZlcnRpY2VzLzQ7UCsrKWUuaWNvbi5vcGFjaXR5VmVydGV4QXJyYXkuZW1wbGFjZUJhY2soQyk7ZS5pY29uLnBsYWNlZFN5bWJvbEFycmF5LmdldChmKS5oaWRkZW49eS5pY29uLmlzSGlkZGVuKCl9aWYoZS5oYXNDb2xsaXNpb25Cb3hEYXRhKCl8fGUuaGFzQ29sbGlzaW9uQ2lyY2xlRGF0YSgpKXt2YXIgTz1lLmNvbGxpc2lvbkFycmF5c1tmXTtpZihPKXtpZihPLnRleHRCb3gpe3ZhciB6PW5ldyB0LlBvaW50KDAsMCksST0hMDtpZihsKXt2YXIgRD10aGlzLnZhcmlhYmxlT2Zmc2V0c1t2XTtEPyh6PWdlKEQuYW5jaG9yLEQud2lkdGgsRC5oZWlnaHQsRC5yYWRpYWxPZmZzZXQsRC50ZXh0Qm94U2NhbGUpLGMmJnouX3JvdGF0ZSh1P3RoaXMudHJhbnNmb3JtLmFuZ2xlOi10aGlzLnRyYW5zZm9ybS5hbmdsZSkpOkk9ITF9bWUoZS5jb2xsaXNpb25Cb3guY29sbGlzaW9uVmVydGV4QXJyYXkseS50ZXh0LnBsYWNlZCwhSSx6Lngsei55KX1PLmljb25Cb3gmJm1lKGUuY29sbGlzaW9uQm94LmNvbGxpc2lvblZlcnRleEFycmF5LHkuaWNvbi5wbGFjZWQsITEpO3ZhciBSPU8udGV4dENpcmNsZXM7aWYoUiYmZS5oYXNDb2xsaXNpb25DaXJjbGVEYXRhKCkpZm9yKHZhciBGPTA7RjxSLmxlbmd0aDtGKz01KXt2YXIgQj1tfHwwPT09UltGKzRdO21lKGUuY29sbGlzaW9uQ2lyY2xlLmNvbGxpc2lvblZlcnRleEFycmF5LHkudGV4dC5wbGFjZWQsQil9fX19ZS5zb3J0RmVhdHVyZXModGhpcy50cmFuc2Zvcm0uYW5nbGUpLHRoaXMucmV0YWluZWRRdWVyeURhdGFbZS5idWNrZXRJbnN0YW5jZUlkXSYmKHRoaXMucmV0YWluZWRRdWVyeURhdGFbZS5idWNrZXRJbnN0YW5jZUlkXS5mZWF0dXJlU29ydE9yZGVyPWUuZmVhdHVyZVNvcnRPcmRlciksZS5oYXNUZXh0RGF0YSgpJiZlLnRleHQub3BhY2l0eVZlcnRleEJ1ZmZlciYmZS50ZXh0Lm9wYWNpdHlWZXJ0ZXhCdWZmZXIudXBkYXRlRGF0YShlLnRleHQub3BhY2l0eVZlcnRleEFycmF5KSxlLmhhc0ljb25EYXRhKCkmJmUuaWNvbi5vcGFjaXR5VmVydGV4QnVmZmVyJiZlLmljb24ub3BhY2l0eVZlcnRleEJ1ZmZlci51cGRhdGVEYXRhKGUuaWNvbi5vcGFjaXR5VmVydGV4QXJyYXkpLGUuaGFzQ29sbGlzaW9uQm94RGF0YSgpJiZlLmNvbGxpc2lvbkJveC5jb2xsaXNpb25WZXJ0ZXhCdWZmZXImJmUuY29sbGlzaW9uQm94LmNvbGxpc2lvblZlcnRleEJ1ZmZlci51cGRhdGVEYXRhKGUuY29sbGlzaW9uQm94LmNvbGxpc2lvblZlcnRleEFycmF5KSxlLmhhc0NvbGxpc2lvbkNpcmNsZURhdGEoKSYmZS5jb2xsaXNpb25DaXJjbGUuY29sbGlzaW9uVmVydGV4QnVmZmVyJiZlLmNvbGxpc2lvbkNpcmNsZS5jb2xsaXNpb25WZXJ0ZXhCdWZmZXIudXBkYXRlRGF0YShlLmNvbGxpc2lvbkNpcmNsZS5jb2xsaXNpb25WZXJ0ZXhBcnJheSl9LHZlLnByb3RvdHlwZS5zeW1ib2xGYWRlQ2hhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiAwPT09dGhpcy5mYWRlRHVyYXRpb24/MToodC10aGlzLmNvbW1pdFRpbWUpL3RoaXMuZmFkZUR1cmF0aW9ufSx2ZS5wcm90b3R5cGUuaGFzVHJhbnNpdGlvbnM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc3RhbGV8fHQtdGhpcy5sYXN0UGxhY2VtZW50Q2hhbmdlVGltZTx0aGlzLmZhZGVEdXJhdGlvbn0sdmUucHJvdG90eXBlLnN0aWxsUmVjZW50PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNvbW1pdFRpbWUrdGhpcy5mYWRlRHVyYXRpb24+dH0sdmUucHJvdG90eXBlLnNldFN0YWxlPWZ1bmN0aW9uKCl7dGhpcy5zdGFsZT0hMH07dmFyIHllPU1hdGgucG93KDIsMjUpLHhlPU1hdGgucG93KDIsMjQpLGJlPU1hdGgucG93KDIsMTcpLF9lPU1hdGgucG93KDIsMTYpLHdlPU1hdGgucG93KDIsOSksa2U9TWF0aC5wb3coMiw4KSxUZT1NYXRoLnBvdygyLDEpO2Z1bmN0aW9uIE1lKHQpe2lmKDA9PT10Lm9wYWNpdHkmJiF0LnBsYWNlZClyZXR1cm4gMDtpZigxPT09dC5vcGFjaXR5JiZ0LnBsYWNlZClyZXR1cm4gNDI5NDk2NzI5NTt2YXIgZT10LnBsYWNlZD8xOjAscj1NYXRoLmZsb29yKDEyNyp0Lm9wYWNpdHkpO3JldHVybiByKnllK2UqeGUrcipiZStlKl9lK3Iqd2UrZSprZStyKlRlK2V9dmFyIEFlPWZ1bmN0aW9uKCl7dGhpcy5fY3VycmVudFRpbGVJbmRleD0wLHRoaXMuX3NlZW5Dcm9zc1RpbGVJRHM9e319O0FlLnByb3RvdHlwZS5jb250aW51ZVBsYWNlbWVudD1mdW5jdGlvbih0LGUscixuLGEpe2Zvcig7dGhpcy5fY3VycmVudFRpbGVJbmRleDx0Lmxlbmd0aDspe3ZhciBpPXRbdGhpcy5fY3VycmVudFRpbGVJbmRleF07aWYoZS5wbGFjZUxheWVyVGlsZShuLGkscix0aGlzLl9zZWVuQ3Jvc3NUaWxlSURzKSx0aGlzLl9jdXJyZW50VGlsZUluZGV4KyssYSgpKXJldHVybiEwfX07dmFyIFNlPWZ1bmN0aW9uKHQsZSxyLG4sYSxpLG8pe3RoaXMucGxhY2VtZW50PW5ldyB2ZSh0LGEsaSxvKSx0aGlzLl9jdXJyZW50UGxhY2VtZW50SW5kZXg9ZS5sZW5ndGgtMSx0aGlzLl9mb3JjZUZ1bGxQbGFjZW1lbnQ9cix0aGlzLl9zaG93Q29sbGlzaW9uQm94ZXM9bix0aGlzLl9kb25lPSExfTtTZS5wcm90b3R5cGUuaXNEb25lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RvbmV9LFNlLnByb3RvdHlwZS5jb250aW51ZVBsYWNlbWVudD1mdW5jdGlvbihlLHIsbil7Zm9yKHZhciBhPXRoaXMsaT10LmJyb3dzZXIubm93KCksbz1mdW5jdGlvbigpe3ZhciBlPXQuYnJvd3Nlci5ub3coKS1pO3JldHVybiFhLl9mb3JjZUZ1bGxQbGFjZW1lbnQmJmU+Mn07dGhpcy5fY3VycmVudFBsYWNlbWVudEluZGV4Pj0wOyl7dmFyIHM9cltlW3RoaXMuX2N1cnJlbnRQbGFjZW1lbnRJbmRleF1dLGw9dGhpcy5wbGFjZW1lbnQuY29sbGlzaW9uSW5kZXgudHJhbnNmb3JtLnpvb207aWYoInN5bWJvbCI9PT1zLnR5cGUmJighcy5taW56b29tfHxzLm1pbnpvb208PWwpJiYoIXMubWF4em9vbXx8cy5tYXh6b29tPmwpKXtpZih0aGlzLl9pblByb2dyZXNzTGF5ZXJ8fCh0aGlzLl9pblByb2dyZXNzTGF5ZXI9bmV3IEFlKSx0aGlzLl9pblByb2dyZXNzTGF5ZXIuY29udGludWVQbGFjZW1lbnQobltzLnNvdXJjZV0sdGhpcy5wbGFjZW1lbnQsdGhpcy5fc2hvd0NvbGxpc2lvbkJveGVzLHMsbykpcmV0dXJuO2RlbGV0ZSB0aGlzLl9pblByb2dyZXNzTGF5ZXJ9dGhpcy5fY3VycmVudFBsYWNlbWVudEluZGV4LS19dGhpcy5fZG9uZT0hMH0sU2UucHJvdG90eXBlLmNvbW1pdD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5wbGFjZW1lbnQuY29tbWl0KHQpLHRoaXMucGxhY2VtZW50fTt2YXIgRWU9NTEyL3QuRVhURU5ULzIsTGU9ZnVuY3Rpb24odCxlLHIpe3RoaXMudGlsZUlEPXQsdGhpcy5pbmRleGVkU3ltYm9sSW5zdGFuY2VzPXt9LHRoaXMuYnVja2V0SW5zdGFuY2VJZD1yO2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgYT1lLmdldChuKSxpPWEua2V5O3RoaXMuaW5kZXhlZFN5bWJvbEluc3RhbmNlc1tpXXx8KHRoaXMuaW5kZXhlZFN5bWJvbEluc3RhbmNlc1tpXT1bXSksdGhpcy5pbmRleGVkU3ltYm9sSW5zdGFuY2VzW2ldLnB1c2goe2Nyb3NzVGlsZUlEOmEuY3Jvc3NUaWxlSUQsY29vcmQ6dGhpcy5nZXRTY2FsZWRDb29yZGluYXRlcyhhLHQpfSl9fTtMZS5wcm90b3R5cGUuZ2V0U2NhbGVkQ29vcmRpbmF0ZXM9ZnVuY3Rpb24oZSxyKXt2YXIgbj1yLmNhbm9uaWNhbC56LXRoaXMudGlsZUlELmNhbm9uaWNhbC56LGE9RWUvTWF0aC5wb3coMixuKTtyZXR1cm57eDpNYXRoLmZsb29yKChyLmNhbm9uaWNhbC54KnQuRVhURU5UK2UuYW5jaG9yWCkqYSkseTpNYXRoLmZsb29yKChyLmNhbm9uaWNhbC55KnQuRVhURU5UK2UuYW5jaG9yWSkqYSl9fSxMZS5wcm90b3R5cGUuZmluZE1hdGNoZXM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj10aGlzLnRpbGVJRC5jYW5vbmljYWwuejxlLmNhbm9uaWNhbC56PzE6TWF0aC5wb3coMix0aGlzLnRpbGVJRC5jYW5vbmljYWwuei1lLmNhbm9uaWNhbC56KSxhPTA7YTx0Lmxlbmd0aDthKyspe3ZhciBpPXQuZ2V0KGEpO2lmKCFpLmNyb3NzVGlsZUlEKXt2YXIgbz10aGlzLmluZGV4ZWRTeW1ib2xJbnN0YW5jZXNbaS5rZXldO2lmKG8pZm9yKHZhciBzPXRoaXMuZ2V0U2NhbGVkQ29vcmRpbmF0ZXMoaSxlKSxsPTAsYz1vO2w8Yy5sZW5ndGg7bCs9MSl7dmFyIHU9Y1tsXTtpZihNYXRoLmFicyh1LmNvb3JkLngtcy54KTw9biYmTWF0aC5hYnModS5jb29yZC55LXMueSk8PW4mJiFyW3UuY3Jvc3NUaWxlSURdKXtyW3UuY3Jvc3NUaWxlSURdPSEwLGkuY3Jvc3NUaWxlSUQ9dS5jcm9zc1RpbGVJRDticmVha319fX19O3ZhciBDZT1mdW5jdGlvbigpe3RoaXMubWF4Q3Jvc3NUaWxlSUQ9MH07Q2UucHJvdG90eXBlLmdlbmVyYXRlPWZ1bmN0aW9uKCl7cmV0dXJuKyt0aGlzLm1heENyb3NzVGlsZUlEfTt2YXIgUGU9ZnVuY3Rpb24oKXt0aGlzLmluZGV4ZXM9e30sdGhpcy51c2VkQ3Jvc3NUaWxlSURzPXt9LHRoaXMubG5nPTB9O1BlLnByb3RvdHlwZS5oYW5kbGVXcmFwSnVtcD1mdW5jdGlvbih0KXt2YXIgZT1NYXRoLnJvdW5kKCh0LXRoaXMubG5nKS8zNjApO2lmKDAhPT1lKWZvcih2YXIgciBpbiB0aGlzLmluZGV4ZXMpe3ZhciBuPXRoaXMuaW5kZXhlc1tyXSxhPXt9O2Zvcih2YXIgaSBpbiBuKXt2YXIgbz1uW2ldO28udGlsZUlEPW8udGlsZUlELnVud3JhcFRvKG8udGlsZUlELndyYXArZSksYVtvLnRpbGVJRC5rZXldPW99dGhpcy5pbmRleGVzW3JdPWF9dGhpcy5sbmc9dH0sUGUucHJvdG90eXBlLmFkZEJ1Y2tldD1mdW5jdGlvbih0LGUscil7aWYodGhpcy5pbmRleGVzW3Qub3ZlcnNjYWxlZFpdJiZ0aGlzLmluZGV4ZXNbdC5vdmVyc2NhbGVkWl1bdC5rZXldKXtpZih0aGlzLmluZGV4ZXNbdC5vdmVyc2NhbGVkWl1bdC5rZXldLmJ1Y2tldEluc3RhbmNlSWQ9PT1lLmJ1Y2tldEluc3RhbmNlSWQpcmV0dXJuITE7dGhpcy5yZW1vdmVCdWNrZXRDcm9zc1RpbGVJRHModC5vdmVyc2NhbGVkWix0aGlzLmluZGV4ZXNbdC5vdmVyc2NhbGVkWl1bdC5rZXldKX1mb3IodmFyIG49MDtuPGUuc3ltYm9sSW5zdGFuY2VzLmxlbmd0aDtuKyspZS5zeW1ib2xJbnN0YW5jZXMuZ2V0KG4pLmNyb3NzVGlsZUlEPTA7dGhpcy51c2VkQ3Jvc3NUaWxlSURzW3Qub3ZlcnNjYWxlZFpdfHwodGhpcy51c2VkQ3Jvc3NUaWxlSURzW3Qub3ZlcnNjYWxlZFpdPXt9KTt2YXIgYT10aGlzLnVzZWRDcm9zc1RpbGVJRHNbdC5vdmVyc2NhbGVkWl07Zm9yKHZhciBpIGluIHRoaXMuaW5kZXhlcyl7dmFyIG89dGhpcy5pbmRleGVzW2ldO2lmKE51bWJlcihpKT50Lm92ZXJzY2FsZWRaKWZvcih2YXIgcyBpbiBvKXt2YXIgbD1vW3NdO2wudGlsZUlELmlzQ2hpbGRPZih0KSYmbC5maW5kTWF0Y2hlcyhlLnN5bWJvbEluc3RhbmNlcyx0LGEpfWVsc2V7dmFyIGM9b1t0LnNjYWxlZFRvKE51bWJlcihpKSkua2V5XTtjJiZjLmZpbmRNYXRjaGVzKGUuc3ltYm9sSW5zdGFuY2VzLHQsYSl9fWZvcih2YXIgdT0wO3U8ZS5zeW1ib2xJbnN0YW5jZXMubGVuZ3RoO3UrKyl7dmFyIGg9ZS5zeW1ib2xJbnN0YW5jZXMuZ2V0KHUpO2guY3Jvc3NUaWxlSUR8fChoLmNyb3NzVGlsZUlEPXIuZ2VuZXJhdGUoKSxhW2guY3Jvc3NUaWxlSURdPSEwKX1yZXR1cm4gdm9pZCAwPT09dGhpcy5pbmRleGVzW3Qub3ZlcnNjYWxlZFpdJiYodGhpcy5pbmRleGVzW3Qub3ZlcnNjYWxlZFpdPXt9KSx0aGlzLmluZGV4ZXNbdC5vdmVyc2NhbGVkWl1bdC5rZXldPW5ldyBMZSh0LGUuc3ltYm9sSW5zdGFuY2VzLGUuYnVja2V0SW5zdGFuY2VJZCksITB9LFBlLnByb3RvdHlwZS5yZW1vdmVCdWNrZXRDcm9zc1RpbGVJRHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIgaW4gZS5pbmRleGVkU3ltYm9sSW5zdGFuY2VzKWZvcih2YXIgbj0wLGE9ZS5pbmRleGVkU3ltYm9sSW5zdGFuY2VzW3JdO248YS5sZW5ndGg7bis9MSl7dmFyIGk9YVtuXTtkZWxldGUgdGhpcy51c2VkQ3Jvc3NUaWxlSURzW3RdW2kuY3Jvc3NUaWxlSURdfX0sUGUucHJvdG90eXBlLnJlbW92ZVN0YWxlQnVja2V0cz1mdW5jdGlvbih0KXt2YXIgZT0hMTtmb3IodmFyIHIgaW4gdGhpcy5pbmRleGVzKXt2YXIgbj10aGlzLmluZGV4ZXNbcl07Zm9yKHZhciBhIGluIG4pdFtuW2FdLmJ1Y2tldEluc3RhbmNlSWRdfHwodGhpcy5yZW1vdmVCdWNrZXRDcm9zc1RpbGVJRHMocixuW2FdKSxkZWxldGUgblthXSxlPSEwKX1yZXR1cm4gZX07dmFyIE9lPWZ1bmN0aW9uKCl7dGhpcy5sYXllckluZGV4ZXM9e30sdGhpcy5jcm9zc1RpbGVJRHM9bmV3IENlLHRoaXMubWF4QnVja2V0SW5zdGFuY2VJZD0wLHRoaXMuYnVja2V0c0luQ3VycmVudFBsYWNlbWVudD17fX07T2UucHJvdG90eXBlLmFkZExheWVyPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLmxheWVySW5kZXhlc1t0LmlkXTt2b2lkIDA9PT1uJiYobj10aGlzLmxheWVySW5kZXhlc1t0LmlkXT1uZXcgUGUpO3ZhciBhPSExLGk9e307bi5oYW5kbGVXcmFwSnVtcChyKTtmb3IodmFyIG89MCxzPWU7bzxzLmxlbmd0aDtvKz0xKXt2YXIgbD1zW29dLGM9bC5nZXRCdWNrZXQodCk7YyYmdC5pZD09PWMubGF5ZXJJZHNbMF0mJihjLmJ1Y2tldEluc3RhbmNlSWR8fChjLmJ1Y2tldEluc3RhbmNlSWQ9Kyt0aGlzLm1heEJ1Y2tldEluc3RhbmNlSWQpLG4uYWRkQnVja2V0KGwudGlsZUlELGMsdGhpcy5jcm9zc1RpbGVJRHMpJiYoYT0hMCksaVtjLmJ1Y2tldEluc3RhbmNlSWRdPSEwKX1yZXR1cm4gbi5yZW1vdmVTdGFsZUJ1Y2tldHMoaSkmJihhPSEwKSxhfSxPZS5wcm90b3R5cGUucHJ1bmVVbnVzZWRMYXllcnM9ZnVuY3Rpb24odCl7dmFyIGU9e307Zm9yKHZhciByIGluIHQuZm9yRWFjaChmdW5jdGlvbih0KXtlW3RdPSEwfSksdGhpcy5sYXllckluZGV4ZXMpZVtyXXx8ZGVsZXRlIHRoaXMubGF5ZXJJbmRleGVzW3JdfTt2YXIgemU9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gdC5lbWl0VmFsaWRhdGlvbkVycm9ycyhlLHImJnIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiJzb3VyY2UuY2FudmFzIiE9PXQuaWRlbnRpZmllcn0pKX0sSWU9dC5waWNrKE50LFsiYWRkTGF5ZXIiLCJyZW1vdmVMYXllciIsInNldFBhaW50UHJvcGVydHkiLCJzZXRMYXlvdXRQcm9wZXJ0eSIsInNldEZpbHRlciIsImFkZFNvdXJjZSIsInJlbW92ZVNvdXJjZSIsInNldExheWVyWm9vbVJhbmdlIiwic2V0TGlnaHQiLCJzZXRUcmFuc2l0aW9uIiwic2V0R2VvSlNPTlNvdXJjZURhdGEiXSksRGU9dC5waWNrKE50LFsic2V0Q2VudGVyIiwic2V0Wm9vbSIsInNldEJlYXJpbmciLCJzZXRQaXRjaCJdKSxSZT1mdW5jdGlvbihlKXtmdW5jdGlvbiByKG4sYSl7dmFyIGk9dGhpczt2b2lkIDA9PT1hJiYoYT17fSksZS5jYWxsKHRoaXMpLHRoaXMubWFwPW4sdGhpcy5kaXNwYXRjaGVyPW5ldyBUKChEdHx8KER0PW5ldyBJdCksRHQpLHRoaXMpLHRoaXMuaW1hZ2VNYW5hZ2VyPW5ldyBmLHRoaXMuaW1hZ2VNYW5hZ2VyLnNldEV2ZW50ZWRQYXJlbnQodGhpcyksdGhpcy5nbHlwaE1hbmFnZXI9bmV3IHgobi5fcmVxdWVzdE1hbmFnZXIsYS5sb2NhbElkZW9ncmFwaEZvbnRGYW1pbHkpLHRoaXMubGluZUF0bGFzPW5ldyBrKDI1Niw1MTIpLHRoaXMuY3Jvc3NUaWxlU3ltYm9sSW5kZXg9bmV3IE9lLHRoaXMuX2xheWVycz17fSx0aGlzLl9vcmRlcj1bXSx0aGlzLnNvdXJjZUNhY2hlcz17fSx0aGlzLnpvb21IaXN0b3J5PW5ldyB0Llpvb21IaXN0b3J5LHRoaXMuX2xvYWRlZD0hMSx0aGlzLl9yZXNldFVwZGF0ZXMoKSx0aGlzLmRpc3BhdGNoZXIuYnJvYWRjYXN0KCJzZXRSZWZlcnJlciIsdC5nZXRSZWZlcnJlcigpKTt2YXIgbz10aGlzO3RoaXMuX3J0bFRleHRQbHVnaW5DYWxsYmFjaz1yLnJlZ2lzdGVyRm9yUGx1Z2luQXZhaWxhYmlsaXR5KGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiBvLmRpc3BhdGNoZXIuYnJvYWRjYXN0KCJsb2FkUlRMVGV4dFBsdWdpbiIsdC5wbHVnaW5VUkwsdC5jb21wbGV0aW9uQ2FsbGJhY2spLG8uc291cmNlQ2FjaGVzKW8uc291cmNlQ2FjaGVzW2VdLnJlbG9hZCgpfSksdGhpcy5vbigiZGF0YSIsZnVuY3Rpb24odCl7aWYoInNvdXJjZSI9PT10LmRhdGFUeXBlJiYibWV0YWRhdGEiPT09dC5zb3VyY2VEYXRhVHlwZSl7dmFyIGU9aS5zb3VyY2VDYWNoZXNbdC5zb3VyY2VJZF07aWYoZSl7dmFyIHI9ZS5nZXRTb3VyY2UoKTtpZihyJiZyLnZlY3RvckxheWVySWRzKWZvcih2YXIgbiBpbiBpLl9sYXllcnMpe3ZhciBhPWkuX2xheWVyc1tuXTthLnNvdXJjZT09PXIuaWQmJmkuX3ZhbGlkYXRlTGF5ZXIoYSl9fX19KX1yZXR1cm4gZSYmKHIuX19wcm90b19fPWUpLHIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIsci5wcm90b3R5cGUubG9hZFVSTD1mdW5jdGlvbihlLHIpe3ZhciBuPXRoaXM7dm9pZCAwPT09ciYmKHI9e30pLHRoaXMuZmlyZShuZXcgdC5FdmVudCgiZGF0YWxvYWRpbmciLHtkYXRhVHlwZToic3R5bGUifSkpO3ZhciBhPSJib29sZWFuIj09dHlwZW9mIHIudmFsaWRhdGU/ci52YWxpZGF0ZTohdC5pc01hcGJveFVSTChlKTtlPXRoaXMubWFwLl9yZXF1ZXN0TWFuYWdlci5ub3JtYWxpemVTdHlsZVVSTChlLHIuYWNjZXNzVG9rZW4pO3ZhciBpPXRoaXMubWFwLl9yZXF1ZXN0TWFuYWdlci50cmFuc2Zvcm1SZXF1ZXN0KGUsdC5SZXNvdXJjZVR5cGUuU3R5bGUpO3RoaXMuX3JlcXVlc3Q9dC5nZXRKU09OKGksZnVuY3Rpb24oZSxyKXtuLl9yZXF1ZXN0PW51bGwsZT9uLmZpcmUobmV3IHQuRXJyb3JFdmVudChlKSk6ciYmbi5fbG9hZChyLGEpfSl9LHIucHJvdG90eXBlLmxvYWRKU09OPWZ1bmN0aW9uKGUscil7dmFyIG49dGhpczt2b2lkIDA9PT1yJiYocj17fSksdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJkYXRhbG9hZGluZyIse2RhdGFUeXBlOiJzdHlsZSJ9KSksdGhpcy5fcmVxdWVzdD10LmJyb3dzZXIuZnJhbWUoZnVuY3Rpb24oKXtuLl9yZXF1ZXN0PW51bGwsbi5fbG9hZChlLCExIT09ci52YWxpZGF0ZSl9KX0sci5wcm90b3R5cGUuX2xvYWQ9ZnVuY3Rpb24oZSxyKXt2YXIgbj10aGlzO2lmKCFyfHwhemUodGhpcyx0LnZhbGlkYXRlU3R5bGUoZSkpKXtmb3IodmFyIGEgaW4gdGhpcy5fbG9hZGVkPSEwLHRoaXMuc3R5bGVzaGVldD1lLGUuc291cmNlcyl0aGlzLmFkZFNvdXJjZShhLGUuc291cmNlc1thXSx7dmFsaWRhdGU6ITF9KTtlLnNwcml0ZT90aGlzLl9zcHJpdGVSZXF1ZXN0PWZ1bmN0aW9uKGUscixuKXt2YXIgYSxpLG8scz10LmJyb3dzZXIuZGV2aWNlUGl4ZWxSYXRpbz4xPyJAMngiOiIiLGw9dC5nZXRKU09OKHIudHJhbnNmb3JtUmVxdWVzdChyLm5vcm1hbGl6ZVNwcml0ZVVSTChlLHMsIi5qc29uIiksdC5SZXNvdXJjZVR5cGUuU3ByaXRlSlNPTiksZnVuY3Rpb24odCxlKXtsPW51bGwsb3x8KG89dCxhPWUsdSgpKX0pLGM9dC5nZXRJbWFnZShyLnRyYW5zZm9ybVJlcXVlc3Qoci5ub3JtYWxpemVTcHJpdGVVUkwoZSxzLCIucG5nIiksdC5SZXNvdXJjZVR5cGUuU3ByaXRlSW1hZ2UpLGZ1bmN0aW9uKHQsZSl7Yz1udWxsLG98fChvPXQsaT1lLHUoKSl9KTtmdW5jdGlvbiB1KCl7aWYobyluKG8pO2Vsc2UgaWYoYSYmaSl7dmFyIGU9dC5icm93c2VyLmdldEltYWdlRGF0YShpKSxyPXt9O2Zvcih2YXIgcyBpbiBhKXt2YXIgbD1hW3NdLGM9bC53aWR0aCx1PWwuaGVpZ2h0LGg9bC54LGY9bC55LHA9bC5zZGYsZD1sLnBpeGVsUmF0aW8sZz1uZXcgdC5SR0JBSW1hZ2Uoe3dpZHRoOmMsaGVpZ2h0OnV9KTt0LlJHQkFJbWFnZS5jb3B5KGUsZyx7eDpoLHk6Zn0se3g6MCx5OjB9LHt3aWR0aDpjLGhlaWdodDp1fSkscltzXT17ZGF0YTpnLHBpeGVsUmF0aW86ZCxzZGY6cH19bihudWxsLHIpfX1yZXR1cm57Y2FuY2VsOmZ1bmN0aW9uKCl7bCYmKGwuY2FuY2VsKCksbD1udWxsKSxjJiYoYy5jYW5jZWwoKSxjPW51bGwpfX19KGUuc3ByaXRlLHRoaXMubWFwLl9yZXF1ZXN0TWFuYWdlcixmdW5jdGlvbihlLHIpe2lmKG4uX3Nwcml0ZVJlcXVlc3Q9bnVsbCxlKW4uZmlyZShuZXcgdC5FcnJvckV2ZW50KGUpKTtlbHNlIGlmKHIpZm9yKHZhciBhIGluIHIpbi5pbWFnZU1hbmFnZXIuYWRkSW1hZ2UoYSxyW2FdKTtuLmltYWdlTWFuYWdlci5zZXRMb2FkZWQoITApLG4uZmlyZShuZXcgdC5FdmVudCgiZGF0YSIse2RhdGFUeXBlOiJzdHlsZSJ9KSl9KTp0aGlzLmltYWdlTWFuYWdlci5zZXRMb2FkZWQoITApLHRoaXMuZ2x5cGhNYW5hZ2VyLnNldFVSTChlLmdseXBocyk7dmFyIGk9QnQodGhpcy5zdHlsZXNoZWV0LmxheWVycyk7dGhpcy5fb3JkZXI9aS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWR9KSx0aGlzLl9sYXllcnM9e307Zm9yKHZhciBvPTAscz1pO288cy5sZW5ndGg7bys9MSl7dmFyIGw9c1tvXTsobD10LmNyZWF0ZVN0eWxlTGF5ZXIobCkpLnNldEV2ZW50ZWRQYXJlbnQodGhpcyx7bGF5ZXI6e2lkOmwuaWR9fSksdGhpcy5fbGF5ZXJzW2wuaWRdPWx9dGhpcy5kaXNwYXRjaGVyLmJyb2FkY2FzdCgic2V0TGF5ZXJzIix0aGlzLl9zZXJpYWxpemVMYXllcnModGhpcy5fb3JkZXIpKSx0aGlzLmxpZ2h0PW5ldyB3KHRoaXMuc3R5bGVzaGVldC5saWdodCksdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJkYXRhIix7ZGF0YVR5cGU6InN0eWxlIn0pKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoInN0eWxlLmxvYWQiKSl9fSxyLnByb3RvdHlwZS5fdmFsaWRhdGVMYXllcj1mdW5jdGlvbihlKXt2YXIgcj10aGlzLnNvdXJjZUNhY2hlc1tlLnNvdXJjZV07aWYocil7dmFyIG49ZS5zb3VyY2VMYXllcjtpZihuKXt2YXIgYT1yLmdldFNvdXJjZSgpOygiZ2VvanNvbiI9PT1hLnR5cGV8fGEudmVjdG9yTGF5ZXJJZHMmJi0xPT09YS52ZWN0b3JMYXllcklkcy5pbmRleE9mKG4pKSYmdGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCdTb3VyY2UgbGF5ZXIgIicrbisnIiBkb2VzIG5vdCBleGlzdCBvbiBzb3VyY2UgIicrYS5pZCsnIiBhcyBzcGVjaWZpZWQgYnkgc3R5bGUgbGF5ZXIgIicrZS5pZCsnIicpKSl9fX0sci5wcm90b3R5cGUubG9hZGVkPWZ1bmN0aW9uKCl7aWYoIXRoaXMuX2xvYWRlZClyZXR1cm4hMTtpZihPYmplY3Qua2V5cyh0aGlzLl91cGRhdGVkU291cmNlcykubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgdCBpbiB0aGlzLnNvdXJjZUNhY2hlcylpZighdGhpcy5zb3VyY2VDYWNoZXNbdF0ubG9hZGVkKCkpcmV0dXJuITE7cmV0dXJuISF0aGlzLmltYWdlTWFuYWdlci5pc0xvYWRlZCgpfSxyLnByb3RvdHlwZS5fc2VyaWFsaXplTGF5ZXJzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxyPTAsbj10O3I8bi5sZW5ndGg7cis9MSl7dmFyIGE9bltyXSxpPXRoaXMuX2xheWVyc1thXTsiY3VzdG9tIiE9PWkudHlwZSYmZS5wdXNoKGkuc2VyaWFsaXplKCkpfXJldHVybiBlfSxyLnByb3RvdHlwZS5oYXNUcmFuc2l0aW9ucz1mdW5jdGlvbigpe2lmKHRoaXMubGlnaHQmJnRoaXMubGlnaHQuaGFzVHJhbnNpdGlvbigpKXJldHVybiEwO2Zvcih2YXIgdCBpbiB0aGlzLnNvdXJjZUNhY2hlcylpZih0aGlzLnNvdXJjZUNhY2hlc1t0XS5oYXNUcmFuc2l0aW9uKCkpcmV0dXJuITA7Zm9yKHZhciBlIGluIHRoaXMuX2xheWVycylpZih0aGlzLl9sYXllcnNbZV0uaGFzVHJhbnNpdGlvbigpKXJldHVybiEwO3JldHVybiExfSxyLnByb3RvdHlwZS5fY2hlY2tMb2FkZWQ9ZnVuY3Rpb24oKXtpZighdGhpcy5fbG9hZGVkKXRocm93IG5ldyBFcnJvcigiU3R5bGUgaXMgbm90IGRvbmUgbG9hZGluZyIpfSxyLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSl7aWYodGhpcy5fbG9hZGVkKXt2YXIgcj10aGlzLl9jaGFuZ2VkO2lmKHRoaXMuX2NoYW5nZWQpe3ZhciBuPU9iamVjdC5rZXlzKHRoaXMuX3VwZGF0ZWRMYXllcnMpLGE9T2JqZWN0LmtleXModGhpcy5fcmVtb3ZlZExheWVycyk7Zm9yKHZhciBpIGluKG4ubGVuZ3RofHxhLmxlbmd0aCkmJnRoaXMuX3VwZGF0ZVdvcmtlckxheWVycyhuLGEpLHRoaXMuX3VwZGF0ZWRTb3VyY2VzKXt2YXIgbz10aGlzLl91cGRhdGVkU291cmNlc1tpXTsicmVsb2FkIj09PW8/dGhpcy5fcmVsb2FkU291cmNlKGkpOiJjbGVhciI9PT1vJiZ0aGlzLl9jbGVhclNvdXJjZShpKX1mb3IodmFyIHMgaW4gdGhpcy5fdXBkYXRlZFBhaW50UHJvcHMpdGhpcy5fbGF5ZXJzW3NdLnVwZGF0ZVRyYW5zaXRpb25zKGUpO3RoaXMubGlnaHQudXBkYXRlVHJhbnNpdGlvbnMoZSksdGhpcy5fcmVzZXRVcGRhdGVzKCl9Zm9yKHZhciBsIGluIHRoaXMuc291cmNlQ2FjaGVzKXRoaXMuc291cmNlQ2FjaGVzW2xdLnVzZWQ9ITE7Zm9yKHZhciBjPTAsdT10aGlzLl9vcmRlcjtjPHUubGVuZ3RoO2MrPTEpe3ZhciBoPXVbY10sZj10aGlzLl9sYXllcnNbaF07Zi5yZWNhbGN1bGF0ZShlKSwhZi5pc0hpZGRlbihlLnpvb20pJiZmLnNvdXJjZSYmKHRoaXMuc291cmNlQ2FjaGVzW2Yuc291cmNlXS51c2VkPSEwKX10aGlzLmxpZ2h0LnJlY2FsY3VsYXRlKGUpLHRoaXMuej1lLnpvb20sciYmdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJkYXRhIix7ZGF0YVR5cGU6InN0eWxlIn0pKX19LHIucHJvdG90eXBlLl91cGRhdGVXb3JrZXJMYXllcnM9ZnVuY3Rpb24odCxlKXt0aGlzLmRpc3BhdGNoZXIuYnJvYWRjYXN0KCJ1cGRhdGVMYXllcnMiLHtsYXllcnM6dGhpcy5fc2VyaWFsaXplTGF5ZXJzKHQpLHJlbW92ZWRJZHM6ZX0pfSxyLnByb3RvdHlwZS5fcmVzZXRVcGRhdGVzPWZ1bmN0aW9uKCl7dGhpcy5fY2hhbmdlZD0hMSx0aGlzLl91cGRhdGVkTGF5ZXJzPXt9LHRoaXMuX3JlbW92ZWRMYXllcnM9e30sdGhpcy5fdXBkYXRlZFNvdXJjZXM9e30sdGhpcy5fdXBkYXRlZFBhaW50UHJvcHM9e319LHIucHJvdG90eXBlLnNldFN0YXRlPWZ1bmN0aW9uKGUpe3ZhciByPXRoaXM7aWYodGhpcy5fY2hlY2tMb2FkZWQoKSx6ZSh0aGlzLHQudmFsaWRhdGVTdHlsZShlKSkpcmV0dXJuITE7KGU9dC5jbG9uZSQxKGUpKS5sYXllcnM9QnQoZS5sYXllcnMpO3ZhciBuPWZ1bmN0aW9uKGUscil7aWYoIWUpcmV0dXJuW3tjb21tYW5kOk50LnNldFN0eWxlLGFyZ3M6W3JdfV07dmFyIG49W107dHJ5e2lmKCF0LmRlZXBFcXVhbChlLnZlcnNpb24sci52ZXJzaW9uKSlyZXR1cm5be2NvbW1hbmQ6TnQuc2V0U3R5bGUsYXJnczpbcl19XTt0LmRlZXBFcXVhbChlLmNlbnRlcixyLmNlbnRlcil8fG4ucHVzaCh7Y29tbWFuZDpOdC5zZXRDZW50ZXIsYXJnczpbci5jZW50ZXJdfSksdC5kZWVwRXF1YWwoZS56b29tLHIuem9vbSl8fG4ucHVzaCh7Y29tbWFuZDpOdC5zZXRab29tLGFyZ3M6W3Iuem9vbV19KSx0LmRlZXBFcXVhbChlLmJlYXJpbmcsci5iZWFyaW5nKXx8bi5wdXNoKHtjb21tYW5kOk50LnNldEJlYXJpbmcsYXJnczpbci5iZWFyaW5nXX0pLHQuZGVlcEVxdWFsKGUucGl0Y2gsci5waXRjaCl8fG4ucHVzaCh7Y29tbWFuZDpOdC5zZXRQaXRjaCxhcmdzOltyLnBpdGNoXX0pLHQuZGVlcEVxdWFsKGUuc3ByaXRlLHIuc3ByaXRlKXx8bi5wdXNoKHtjb21tYW5kOk50LnNldFNwcml0ZSxhcmdzOltyLnNwcml0ZV19KSx0LmRlZXBFcXVhbChlLmdseXBocyxyLmdseXBocyl8fG4ucHVzaCh7Y29tbWFuZDpOdC5zZXRHbHlwaHMsYXJnczpbci5nbHlwaHNdfSksdC5kZWVwRXF1YWwoZS50cmFuc2l0aW9uLHIudHJhbnNpdGlvbil8fG4ucHVzaCh7Y29tbWFuZDpOdC5zZXRUcmFuc2l0aW9uLGFyZ3M6W3IudHJhbnNpdGlvbl19KSx0LmRlZXBFcXVhbChlLmxpZ2h0LHIubGlnaHQpfHxuLnB1c2goe2NvbW1hbmQ6TnQuc2V0TGlnaHQsYXJnczpbci5saWdodF19KTt2YXIgYT17fSxpPVtdOyFmdW5jdGlvbihlLHIsbixhKXt2YXIgaTtmb3IoaSBpbiByPXJ8fHt9LGU9ZXx8e30pZS5oYXNPd25Qcm9wZXJ0eShpKSYmKHIuaGFzT3duUHJvcGVydHkoaSl8fFZ0KGksbixhKSk7Zm9yKGkgaW4gcilyLmhhc093blByb3BlcnR5KGkpJiYoZS5oYXNPd25Qcm9wZXJ0eShpKT90LmRlZXBFcXVhbChlW2ldLHJbaV0pfHwoImdlb2pzb24iPT09ZVtpXS50eXBlJiYiZ2VvanNvbiI9PT1yW2ldLnR5cGUmJnF0KGUscixpKT9uLnB1c2goe2NvbW1hbmQ6TnQuc2V0R2VvSlNPTlNvdXJjZURhdGEsYXJnczpbaSxyW2ldLmRhdGFdfSk6VXQoaSxyLG4sYSkpOmp0KGkscixuKSl9KGUuc291cmNlcyxyLnNvdXJjZXMsaSxhKTt2YXIgbz1bXTtlLmxheWVycyYmZS5sYXllcnMuZm9yRWFjaChmdW5jdGlvbih0KXthW3Quc291cmNlXT9uLnB1c2goe2NvbW1hbmQ6TnQucmVtb3ZlTGF5ZXIsYXJnczpbdC5pZF19KTpvLnB1c2godCl9KSxuPW4uY29uY2F0KGkpLGZ1bmN0aW9uKGUscixuKXtyPXJ8fFtdO3ZhciBhLGksbyxzLGwsYyx1LGg9KGU9ZXx8W10pLm1hcChHdCksZj1yLm1hcChHdCkscD1lLnJlZHVjZShZdCx7fSksZD1yLnJlZHVjZShZdCx7fSksZz1oLnNsaWNlKCksdj1PYmplY3QuY3JlYXRlKG51bGwpO2ZvcihhPTAsaT0wO2E8aC5sZW5ndGg7YSsrKW89aFthXSxkLmhhc093blByb3BlcnR5KG8pP2krKzoobi5wdXNoKHtjb21tYW5kOk50LnJlbW92ZUxheWVyLGFyZ3M6W29dfSksZy5zcGxpY2UoZy5pbmRleE9mKG8saSksMSkpO2ZvcihhPTAsaT0wO2E8Zi5sZW5ndGg7YSsrKW89ZltmLmxlbmd0aC0xLWFdLGdbZy5sZW5ndGgtMS1hXSE9PW8mJihwLmhhc093blByb3BlcnR5KG8pPyhuLnB1c2goe2NvbW1hbmQ6TnQucmVtb3ZlTGF5ZXIsYXJnczpbb119KSxnLnNwbGljZShnLmxhc3RJbmRleE9mKG8sZy5sZW5ndGgtaSksMSkpOmkrKyxjPWdbZy5sZW5ndGgtYV0sbi5wdXNoKHtjb21tYW5kOk50LmFkZExheWVyLGFyZ3M6W2Rbb10sY119KSxnLnNwbGljZShnLmxlbmd0aC1hLDAsbyksdltvXT0hMCk7Zm9yKGE9MDthPGYubGVuZ3RoO2ErKylpZihzPXBbbz1mW2FdXSxsPWRbb10sIXZbb10mJiF0LmRlZXBFcXVhbChzLGwpKWlmKHQuZGVlcEVxdWFsKHMuc291cmNlLGwuc291cmNlKSYmdC5kZWVwRXF1YWwoc1sic291cmNlLWxheWVyIl0sbFsic291cmNlLWxheWVyIl0pJiZ0LmRlZXBFcXVhbChzLnR5cGUsbC50eXBlKSl7Zm9yKHUgaW4gSHQocy5sYXlvdXQsbC5sYXlvdXQsbixvLG51bGwsTnQuc2V0TGF5b3V0UHJvcGVydHkpLEh0KHMucGFpbnQsbC5wYWludCxuLG8sbnVsbCxOdC5zZXRQYWludFByb3BlcnR5KSx0LmRlZXBFcXVhbChzLmZpbHRlcixsLmZpbHRlcil8fG4ucHVzaCh7Y29tbWFuZDpOdC5zZXRGaWx0ZXIsYXJnczpbbyxsLmZpbHRlcl19KSx0LmRlZXBFcXVhbChzLm1pbnpvb20sbC5taW56b29tKSYmdC5kZWVwRXF1YWwocy5tYXh6b29tLGwubWF4em9vbSl8fG4ucHVzaCh7Y29tbWFuZDpOdC5zZXRMYXllclpvb21SYW5nZSxhcmdzOltvLGwubWluem9vbSxsLm1heHpvb21dfSkscylzLmhhc093blByb3BlcnR5KHUpJiYibGF5b3V0IiE9PXUmJiJwYWludCIhPT11JiYiZmlsdGVyIiE9PXUmJiJtZXRhZGF0YSIhPT11JiYibWluem9vbSIhPT11JiYibWF4em9vbSIhPT11JiYoMD09PXUuaW5kZXhPZigicGFpbnQuIik/SHQoc1t1XSxsW3VdLG4sbyx1LnNsaWNlKDYpLE50LnNldFBhaW50UHJvcGVydHkpOnQuZGVlcEVxdWFsKHNbdV0sbFt1XSl8fG4ucHVzaCh7Y29tbWFuZDpOdC5zZXRMYXllclByb3BlcnR5LGFyZ3M6W28sdSxsW3VdXX0pKTtmb3IodSBpbiBsKWwuaGFzT3duUHJvcGVydHkodSkmJiFzLmhhc093blByb3BlcnR5KHUpJiYibGF5b3V0IiE9PXUmJiJwYWludCIhPT11JiYiZmlsdGVyIiE9PXUmJiJtZXRhZGF0YSIhPT11JiYibWluem9vbSIhPT11JiYibWF4em9vbSIhPT11JiYoMD09PXUuaW5kZXhPZigicGFpbnQuIik/SHQoc1t1XSxsW3VdLG4sbyx1LnNsaWNlKDYpLE50LnNldFBhaW50UHJvcGVydHkpOnQuZGVlcEVxdWFsKHNbdV0sbFt1XSl8fG4ucHVzaCh7Y29tbWFuZDpOdC5zZXRMYXllclByb3BlcnR5LGFyZ3M6W28sdSxsW3VdXX0pKX1lbHNlIG4ucHVzaCh7Y29tbWFuZDpOdC5yZW1vdmVMYXllcixhcmdzOltvXX0pLGM9Z1tnLmxhc3RJbmRleE9mKG8pKzFdLG4ucHVzaCh7Y29tbWFuZDpOdC5hZGRMYXllcixhcmdzOltsLGNdfSl9KG8sci5sYXllcnMsbil9Y2F0Y2godCl7Y29uc29sZS53YXJuKCJVbmFibGUgdG8gY29tcHV0ZSBzdHlsZSBkaWZmOiIsdCksbj1be2NvbW1hbmQ6TnQuc2V0U3R5bGUsYXJnczpbcl19XX1yZXR1cm4gbn0odGhpcy5zZXJpYWxpemUoKSxlKS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuISh0LmNvbW1hbmQgaW4gRGUpfSk7aWYoMD09PW4ubGVuZ3RoKXJldHVybiExO3ZhciBhPW4uZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiEodC5jb21tYW5kIGluIEllKX0pO2lmKGEubGVuZ3RoPjApdGhyb3cgbmV3IEVycm9yKCJVbmltcGxlbWVudGVkOiAiK2EubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNvbW1hbmR9KS5qb2luKCIsICIpKyIuIik7cmV0dXJuIG4uZm9yRWFjaChmdW5jdGlvbih0KXsic2V0VHJhbnNpdGlvbiIhPT10LmNvbW1hbmQmJnJbdC5jb21tYW5kXS5hcHBseShyLHQuYXJncyl9KSx0aGlzLnN0eWxlc2hlZXQ9ZSwhMH0sci5wcm90b3R5cGUuYWRkSW1hZ2U9ZnVuY3Rpb24oZSxyKXtpZih0aGlzLmdldEltYWdlKGUpKXJldHVybiB0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIkFuIGltYWdlIHdpdGggdGhpcyBuYW1lIGFscmVhZHkgZXhpc3RzLiIpKSk7dGhpcy5pbWFnZU1hbmFnZXIuYWRkSW1hZ2UoZSxyKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoImRhdGEiLHtkYXRhVHlwZToic3R5bGUifSkpfSxyLnByb3RvdHlwZS51cGRhdGVJbWFnZT1mdW5jdGlvbih0LGUpe3RoaXMuaW1hZ2VNYW5hZ2VyLnVwZGF0ZUltYWdlKHQsZSl9LHIucHJvdG90eXBlLmdldEltYWdlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmltYWdlTWFuYWdlci5nZXRJbWFnZSh0KX0sci5wcm90b3R5cGUucmVtb3ZlSW1hZ2U9ZnVuY3Rpb24oZSl7aWYoIXRoaXMuZ2V0SW1hZ2UoZSkpcmV0dXJuIHRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiTm8gaW1hZ2Ugd2l0aCB0aGlzIG5hbWUgZXhpc3RzLiIpKSk7dGhpcy5pbWFnZU1hbmFnZXIucmVtb3ZlSW1hZ2UoZSksdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJkYXRhIix7ZGF0YVR5cGU6InN0eWxlIn0pKX0sci5wcm90b3R5cGUubGlzdEltYWdlcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jaGVja0xvYWRlZCgpLHRoaXMuaW1hZ2VNYW5hZ2VyLmxpc3RJbWFnZXMoKX0sci5wcm90b3R5cGUuYWRkU291cmNlPWZ1bmN0aW9uKGUscixuKXt2YXIgYT10aGlzO2lmKHZvaWQgMD09PW4mJihuPXt9KSx0aGlzLl9jaGVja0xvYWRlZCgpLHZvaWQgMCE9PXRoaXMuc291cmNlQ2FjaGVzW2VdKXRocm93IG5ldyBFcnJvcigiVGhlcmUgaXMgYWxyZWFkeSBhIHNvdXJjZSB3aXRoIHRoaXMgSUQiKTtpZighci50eXBlKXRocm93IG5ldyBFcnJvcigiVGhlIHR5cGUgcHJvcGVydHkgbXVzdCBiZSBkZWZpbmVkLCBidXQgdGhlIG9ubHkgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIHdlcmUgZ2l2ZW46ICIrT2JqZWN0LmtleXMocikuam9pbigiLCAiKSsiLiIpO2lmKCEoWyJ2ZWN0b3IiLCJyYXN0ZXIiLCJnZW9qc29uIiwidmlkZW8iLCJpbWFnZSJdLmluZGV4T2Yoci50eXBlKT49MCYmdGhpcy5fdmFsaWRhdGUodC52YWxpZGF0ZVN0eWxlLnNvdXJjZSwic291cmNlcy4iK2UscixudWxsLG4pKSl7dGhpcy5tYXAmJnRoaXMubWFwLl9jb2xsZWN0UmVzb3VyY2VUaW1pbmcmJihyLmNvbGxlY3RSZXNvdXJjZVRpbWluZz0hMCk7dmFyIGk9dGhpcy5zb3VyY2VDYWNoZXNbZV09bmV3IEN0KGUscix0aGlzLmRpc3BhdGNoZXIpO2kuc3R5bGU9dGhpcyxpLnNldEV2ZW50ZWRQYXJlbnQodGhpcyxmdW5jdGlvbigpe3JldHVybntpc1NvdXJjZUxvYWRlZDphLmxvYWRlZCgpLHNvdXJjZTppLnNlcmlhbGl6ZSgpLHNvdXJjZUlkOmV9fSksaS5vbkFkZCh0aGlzLm1hcCksdGhpcy5fY2hhbmdlZD0hMH19LHIucHJvdG90eXBlLnJlbW92ZVNvdXJjZT1mdW5jdGlvbihlKXtpZih0aGlzLl9jaGVja0xvYWRlZCgpLHZvaWQgMD09PXRoaXMuc291cmNlQ2FjaGVzW2VdKXRocm93IG5ldyBFcnJvcigiVGhlcmUgaXMgbm8gc291cmNlIHdpdGggdGhpcyBJRCIpO2Zvcih2YXIgciBpbiB0aGlzLl9sYXllcnMpaWYodGhpcy5fbGF5ZXJzW3JdLnNvdXJjZT09PWUpcmV0dXJuIHRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcignU291cmNlICInK2UrJyIgY2Fubm90IGJlIHJlbW92ZWQgd2hpbGUgbGF5ZXIgIicrcisnIiBpcyB1c2luZyBpdC4nKSkpO3ZhciBuPXRoaXMuc291cmNlQ2FjaGVzW2VdO2RlbGV0ZSB0aGlzLnNvdXJjZUNhY2hlc1tlXSxkZWxldGUgdGhpcy5fdXBkYXRlZFNvdXJjZXNbZV0sbi5maXJlKG5ldyB0LkV2ZW50KCJkYXRhIix7c291cmNlRGF0YVR5cGU6Im1ldGFkYXRhIixkYXRhVHlwZToic291cmNlIixzb3VyY2VJZDplfSkpLG4uc2V0RXZlbnRlZFBhcmVudChudWxsKSxuLmNsZWFyVGlsZXMoKSxuLm9uUmVtb3ZlJiZuLm9uUmVtb3ZlKHRoaXMubWFwKSx0aGlzLl9jaGFuZ2VkPSEwfSxyLnByb3RvdHlwZS5zZXRHZW9KU09OU291cmNlRGF0YT1mdW5jdGlvbih0LGUpe3RoaXMuX2NoZWNrTG9hZGVkKCksdGhpcy5zb3VyY2VDYWNoZXNbdF0uZ2V0U291cmNlKCkuc2V0RGF0YShlKSx0aGlzLl9jaGFuZ2VkPSEwfSxyLnByb3RvdHlwZS5nZXRTb3VyY2U9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc291cmNlQ2FjaGVzW3RdJiZ0aGlzLnNvdXJjZUNhY2hlc1t0XS5nZXRTb3VyY2UoKX0sci5wcm90b3R5cGUuYWRkTGF5ZXI9ZnVuY3Rpb24oZSxyLG4pe3ZvaWQgMD09PW4mJihuPXt9KSx0aGlzLl9jaGVja0xvYWRlZCgpO3ZhciBhPWUuaWQ7aWYodGhpcy5nZXRMYXllcihhKSl0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoJ0xheWVyIHdpdGggaWQgIicrYSsnIiBhbHJlYWR5IGV4aXN0cyBvbiB0aGlzIG1hcCcpKSk7ZWxzZXt2YXIgaTtpZigiY3VzdG9tIj09PWUudHlwZSl7aWYoemUodGhpcyx0LnZhbGlkYXRlQ3VzdG9tU3R5bGVMYXllcihlKSkpcmV0dXJuO2k9dC5jcmVhdGVTdHlsZUxheWVyKGUpfWVsc2V7aWYoIm9iamVjdCI9PXR5cGVvZiBlLnNvdXJjZSYmKHRoaXMuYWRkU291cmNlKGEsZS5zb3VyY2UpLGU9dC5jbG9uZSQxKGUpLGU9dC5leHRlbmQoZSx7c291cmNlOmF9KSksdGhpcy5fdmFsaWRhdGUodC52YWxpZGF0ZVN0eWxlLmxheWVyLCJsYXllcnMuIithLGUse2FycmF5SW5kZXg6LTF9LG4pKXJldHVybjtpPXQuY3JlYXRlU3R5bGVMYXllcihlKSx0aGlzLl92YWxpZGF0ZUxheWVyKGkpLGkuc2V0RXZlbnRlZFBhcmVudCh0aGlzLHtsYXllcjp7aWQ6YX19KX12YXIgbz1yP3RoaXMuX29yZGVyLmluZGV4T2Yocik6dGhpcy5fb3JkZXIubGVuZ3RoO2lmKHImJi0xPT09byl0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoJ0xheWVyIHdpdGggaWQgIicrcisnIiBkb2VzIG5vdCBleGlzdCBvbiB0aGlzIG1hcC4nKSkpO2Vsc2V7aWYodGhpcy5fb3JkZXIuc3BsaWNlKG8sMCxhKSx0aGlzLl9sYXllck9yZGVyQ2hhbmdlZD0hMCx0aGlzLl9sYXllcnNbYV09aSx0aGlzLl9yZW1vdmVkTGF5ZXJzW2FdJiZpLnNvdXJjZSYmImN1c3RvbSIhPT1pLnR5cGUpe3ZhciBzPXRoaXMuX3JlbW92ZWRMYXllcnNbYV07ZGVsZXRlIHRoaXMuX3JlbW92ZWRMYXllcnNbYV0scy50eXBlIT09aS50eXBlP3RoaXMuX3VwZGF0ZWRTb3VyY2VzW2kuc291cmNlXT0iY2xlYXIiOih0aGlzLl91cGRhdGVkU291cmNlc1tpLnNvdXJjZV09InJlbG9hZCIsdGhpcy5zb3VyY2VDYWNoZXNbaS5zb3VyY2VdLnBhdXNlKCkpfXRoaXMuX3VwZGF0ZUxheWVyKGkpLGkub25BZGQmJmkub25BZGQodGhpcy5tYXApfX19LHIucHJvdG90eXBlLm1vdmVMYXllcj1mdW5jdGlvbihlLHIpe2lmKHRoaXMuX2NoZWNrTG9hZGVkKCksdGhpcy5fY2hhbmdlZD0hMCx0aGlzLl9sYXllcnNbZV0pe2lmKGUhPT1yKXt2YXIgbj10aGlzLl9vcmRlci5pbmRleE9mKGUpO3RoaXMuX29yZGVyLnNwbGljZShuLDEpO3ZhciBhPXI/dGhpcy5fb3JkZXIuaW5kZXhPZihyKTp0aGlzLl9vcmRlci5sZW5ndGg7ciYmLTE9PT1hP3RoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcignTGF5ZXIgd2l0aCBpZCAiJytyKyciIGRvZXMgbm90IGV4aXN0IG9uIHRoaXMgbWFwLicpKSk6KHRoaXMuX29yZGVyLnNwbGljZShhLDAsZSksdGhpcy5fbGF5ZXJPcmRlckNoYW5nZWQ9ITApfX1lbHNlIHRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiVGhlIGxheWVyICciK2UrIicgZG9lcyBub3QgZXhpc3QgaW4gdGhlIG1hcCdzIHN0eWxlIGFuZCBjYW5ub3QgYmUgbW92ZWQuIikpKX0sci5wcm90b3R5cGUucmVtb3ZlTGF5ZXI9ZnVuY3Rpb24oZSl7dGhpcy5fY2hlY2tMb2FkZWQoKTt2YXIgcj10aGlzLl9sYXllcnNbZV07aWYocil7ci5zZXRFdmVudGVkUGFyZW50KG51bGwpO3ZhciBuPXRoaXMuX29yZGVyLmluZGV4T2YoZSk7dGhpcy5fb3JkZXIuc3BsaWNlKG4sMSksdGhpcy5fbGF5ZXJPcmRlckNoYW5nZWQ9ITAsdGhpcy5fY2hhbmdlZD0hMCx0aGlzLl9yZW1vdmVkTGF5ZXJzW2VdPXIsZGVsZXRlIHRoaXMuX2xheWVyc1tlXSxkZWxldGUgdGhpcy5fdXBkYXRlZExheWVyc1tlXSxkZWxldGUgdGhpcy5fdXBkYXRlZFBhaW50UHJvcHNbZV0sci5vblJlbW92ZSYmci5vblJlbW92ZSh0aGlzLm1hcCl9ZWxzZSB0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIlRoZSBsYXllciAnIitlKyInIGRvZXMgbm90IGV4aXN0IGluIHRoZSBtYXAncyBzdHlsZSBhbmQgY2Fubm90IGJlIHJlbW92ZWQuIikpKX0sci5wcm90b3R5cGUuZ2V0TGF5ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2xheWVyc1t0XX0sci5wcm90b3R5cGUuc2V0TGF5ZXJab29tUmFuZ2U9ZnVuY3Rpb24oZSxyLG4pe3RoaXMuX2NoZWNrTG9hZGVkKCk7dmFyIGE9dGhpcy5nZXRMYXllcihlKTthP2EubWluem9vbT09PXImJmEubWF4em9vbT09PW58fChudWxsIT1yJiYoYS5taW56b29tPXIpLG51bGwhPW4mJihhLm1heHpvb209biksdGhpcy5fdXBkYXRlTGF5ZXIoYSkpOnRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiVGhlIGxheWVyICciK2UrIicgZG9lcyBub3QgZXhpc3QgaW4gdGhlIG1hcCdzIHN0eWxlIGFuZCBjYW5ub3QgaGF2ZSB6b29tIGV4dGVudC4iKSkpfSxyLnByb3RvdHlwZS5zZXRGaWx0ZXI9ZnVuY3Rpb24oZSxyLG4pe3ZvaWQgMD09PW4mJihuPXt9KSx0aGlzLl9jaGVja0xvYWRlZCgpO3ZhciBhPXRoaXMuZ2V0TGF5ZXIoZSk7aWYoYSl7aWYoIXQuZGVlcEVxdWFsKGEuZmlsdGVyLHIpKXJldHVybiBudWxsPT1yPyhhLmZpbHRlcj12b2lkIDAsdm9pZCB0aGlzLl91cGRhdGVMYXllcihhKSk6dm9pZCh0aGlzLl92YWxpZGF0ZSh0LnZhbGlkYXRlU3R5bGUuZmlsdGVyLCJsYXllcnMuIithLmlkKyIuZmlsdGVyIixyLG51bGwsbil8fChhLmZpbHRlcj10LmNsb25lJDEociksdGhpcy5fdXBkYXRlTGF5ZXIoYSkpKX1lbHNlIHRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiVGhlIGxheWVyICciK2UrIicgZG9lcyBub3QgZXhpc3QgaW4gdGhlIG1hcCdzIHN0eWxlIGFuZCBjYW5ub3QgYmUgZmlsdGVyZWQuIikpKX0sci5wcm90b3R5cGUuZ2V0RmlsdGVyPWZ1bmN0aW9uKGUpe3JldHVybiB0LmNsb25lJDEodGhpcy5nZXRMYXllcihlKS5maWx0ZXIpfSxyLnByb3RvdHlwZS5zZXRMYXlvdXRQcm9wZXJ0eT1mdW5jdGlvbihlLHIsbixhKXt2b2lkIDA9PT1hJiYoYT17fSksdGhpcy5fY2hlY2tMb2FkZWQoKTt2YXIgaT10aGlzLmdldExheWVyKGUpO2k/dC5kZWVwRXF1YWwoaS5nZXRMYXlvdXRQcm9wZXJ0eShyKSxuKXx8KGkuc2V0TGF5b3V0UHJvcGVydHkocixuLGEpLHRoaXMuX3VwZGF0ZUxheWVyKGkpKTp0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIlRoZSBsYXllciAnIitlKyInIGRvZXMgbm90IGV4aXN0IGluIHRoZSBtYXAncyBzdHlsZSBhbmQgY2Fubm90IGJlIHN0eWxlZC4iKSkpfSxyLnByb3RvdHlwZS5nZXRMYXlvdXRQcm9wZXJ0eT1mdW5jdGlvbihlLHIpe3ZhciBuPXRoaXMuZ2V0TGF5ZXIoZSk7aWYobilyZXR1cm4gbi5nZXRMYXlvdXRQcm9wZXJ0eShyKTt0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIlRoZSBsYXllciAnIitlKyInIGRvZXMgbm90IGV4aXN0IGluIHRoZSBtYXAncyBzdHlsZS4iKSkpfSxyLnByb3RvdHlwZS5zZXRQYWludFByb3BlcnR5PWZ1bmN0aW9uKGUscixuLGEpe3ZvaWQgMD09PWEmJihhPXt9KSx0aGlzLl9jaGVja0xvYWRlZCgpO3ZhciBpPXRoaXMuZ2V0TGF5ZXIoZSk7aT90LmRlZXBFcXVhbChpLmdldFBhaW50UHJvcGVydHkociksbil8fChpLnNldFBhaW50UHJvcGVydHkocixuLGEpJiZ0aGlzLl91cGRhdGVMYXllcihpKSx0aGlzLl9jaGFuZ2VkPSEwLHRoaXMuX3VwZGF0ZWRQYWludFByb3BzW2VdPSEwKTp0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIlRoZSBsYXllciAnIitlKyInIGRvZXMgbm90IGV4aXN0IGluIHRoZSBtYXAncyBzdHlsZSBhbmQgY2Fubm90IGJlIHN0eWxlZC4iKSkpfSxyLnByb3RvdHlwZS5nZXRQYWludFByb3BlcnR5PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuZ2V0TGF5ZXIodCkuZ2V0UGFpbnRQcm9wZXJ0eShlKX0sci5wcm90b3R5cGUuc2V0RmVhdHVyZVN0YXRlPWZ1bmN0aW9uKGUscil7dGhpcy5fY2hlY2tMb2FkZWQoKTt2YXIgbj1lLnNvdXJjZSxhPWUuc291cmNlTGF5ZXIsaT10aGlzLnNvdXJjZUNhY2hlc1tuXSxvPXBhcnNlSW50KGUuaWQsMTApO2lmKHZvaWQgMCE9PWkpe3ZhciBzPWkuZ2V0U291cmNlKCkudHlwZTsiZ2VvanNvbiI9PT1zJiZhP3RoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiR2VvSlNPTiBzb3VyY2VzIGNhbm5vdCBoYXZlIGEgc291cmNlTGF5ZXIgcGFyYW1ldGVyLiIpKSk6InZlY3RvciIhPT1zfHxhP2lzTmFOKG8pfHxvPDA/dGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCJUaGUgZmVhdHVyZSBpZCBwYXJhbWV0ZXIgbXVzdCBiZSBwcm92aWRlZCBhbmQgbm9uLW5lZ2F0aXZlLiIpKSk6aS5zZXRGZWF0dXJlU3RhdGUoYSxvLHIpOnRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiVGhlIHNvdXJjZUxheWVyIHBhcmFtZXRlciBtdXN0IGJlIHByb3ZpZGVkIGZvciB2ZWN0b3Igc291cmNlIHR5cGVzLiIpKSl9ZWxzZSB0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIlRoZSBzb3VyY2UgJyIrbisiJyBkb2VzIG5vdCBleGlzdCBpbiB0aGUgbWFwJ3Mgc3R5bGUuIikpKX0sci5wcm90b3R5cGUucmVtb3ZlRmVhdHVyZVN0YXRlPWZ1bmN0aW9uKGUscil7dGhpcy5fY2hlY2tMb2FkZWQoKTt2YXIgbj1lLnNvdXJjZSxhPXRoaXMuc291cmNlQ2FjaGVzW25dO2lmKHZvaWQgMCE9PWEpe3ZhciBpPWEuZ2V0U291cmNlKCkudHlwZSxvPSJ2ZWN0b3IiPT09aT9lLnNvdXJjZUxheWVyOnZvaWQgMCxzPXBhcnNlSW50KGUuaWQsMTApOyJ2ZWN0b3IiIT09aXx8bz92b2lkIDAhPT1lLmlkJiZpc05hTihzKXx8czwwP3RoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiVGhlIGZlYXR1cmUgaWQgcGFyYW1ldGVyIG11c3QgYmUgbm9uLW5lZ2F0aXZlLiIpKSk6ciYmInN0cmluZyIhPXR5cGVvZiBlLmlkJiYibnVtYmVyIiE9dHlwZW9mIGUuaWQ/dGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCJBIGZlYXR1cmUgaWQgaXMgcmVxdXJlZCB0byByZW1vdmUgaXRzIHNwZWNpZmljIHN0YXRlIHByb3BlcnR5LiIpKSk6YS5yZW1vdmVGZWF0dXJlU3RhdGUobyxzLHIpOnRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiVGhlIHNvdXJjZUxheWVyIHBhcmFtZXRlciBtdXN0IGJlIHByb3ZpZGVkIGZvciB2ZWN0b3Igc291cmNlIHR5cGVzLiIpKSl9ZWxzZSB0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIlRoZSBzb3VyY2UgJyIrbisiJyBkb2VzIG5vdCBleGlzdCBpbiB0aGUgbWFwJ3Mgc3R5bGUuIikpKX0sci5wcm90b3R5cGUuZ2V0RmVhdHVyZVN0YXRlPWZ1bmN0aW9uKGUpe3RoaXMuX2NoZWNrTG9hZGVkKCk7dmFyIHI9ZS5zb3VyY2Usbj1lLnNvdXJjZUxheWVyLGE9dGhpcy5zb3VyY2VDYWNoZXNbcl0saT1wYXJzZUludChlLmlkLDEwKTtpZih2b2lkIDAhPT1hKWlmKCJ2ZWN0b3IiIT09YS5nZXRTb3VyY2UoKS50eXBlfHxuKXtpZighKGlzTmFOKGkpfHxpPDApKXJldHVybiBhLmdldEZlYXR1cmVTdGF0ZShuLGkpO3RoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiVGhlIGZlYXR1cmUgaWQgcGFyYW1ldGVyIG11c3QgYmUgcHJvdmlkZWQgYW5kIG5vbi1uZWdhdGl2ZS4iKSkpfWVsc2UgdGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCJUaGUgc291cmNlTGF5ZXIgcGFyYW1ldGVyIG11c3QgYmUgcHJvdmlkZWQgZm9yIHZlY3RvciBzb3VyY2UgdHlwZXMuIikpKTtlbHNlIHRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiVGhlIHNvdXJjZSAnIityKyInIGRvZXMgbm90IGV4aXN0IGluIHRoZSBtYXAncyBzdHlsZS4iKSkpfSxyLnByb3RvdHlwZS5nZXRUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIHQuZXh0ZW5kKHtkdXJhdGlvbjozMDAsZGVsYXk6MH0sdGhpcy5zdHlsZXNoZWV0JiZ0aGlzLnN0eWxlc2hlZXQudHJhbnNpdGlvbil9LHIucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe3JldHVybiB0LmZpbHRlck9iamVjdCh7dmVyc2lvbjp0aGlzLnN0eWxlc2hlZXQudmVyc2lvbixuYW1lOnRoaXMuc3R5bGVzaGVldC5uYW1lLG1ldGFkYXRhOnRoaXMuc3R5bGVzaGVldC5tZXRhZGF0YSxsaWdodDp0aGlzLnN0eWxlc2hlZXQubGlnaHQsY2VudGVyOnRoaXMuc3R5bGVzaGVldC5jZW50ZXIsem9vbTp0aGlzLnN0eWxlc2hlZXQuem9vbSxiZWFyaW5nOnRoaXMuc3R5bGVzaGVldC5iZWFyaW5nLHBpdGNoOnRoaXMuc3R5bGVzaGVldC5waXRjaCxzcHJpdGU6dGhpcy5zdHlsZXNoZWV0LnNwcml0ZSxnbHlwaHM6dGhpcy5zdHlsZXNoZWV0LmdseXBocyx0cmFuc2l0aW9uOnRoaXMuc3R5bGVzaGVldC50cmFuc2l0aW9uLHNvdXJjZXM6dC5tYXBPYmplY3QodGhpcy5zb3VyY2VDYWNoZXMsZnVuY3Rpb24odCl7cmV0dXJuIHQuc2VyaWFsaXplKCl9KSxsYXllcnM6dGhpcy5fc2VyaWFsaXplTGF5ZXJzKHRoaXMuX29yZGVyKX0sZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMCE9PXR9KX0sci5wcm90b3R5cGUuX3VwZGF0ZUxheWVyPWZ1bmN0aW9uKHQpe3RoaXMuX3VwZGF0ZWRMYXllcnNbdC5pZF09ITAsdC5zb3VyY2UmJiF0aGlzLl91cGRhdGVkU291cmNlc1t0LnNvdXJjZV0mJih0aGlzLl91cGRhdGVkU291cmNlc1t0LnNvdXJjZV09InJlbG9hZCIsdGhpcy5zb3VyY2VDYWNoZXNbdC5zb3VyY2VdLnBhdXNlKCkpLHRoaXMuX2NoYW5nZWQ9ITB9LHIucHJvdG90eXBlLl9mbGF0dGVuQW5kU29ydFJlbmRlcmVkRmVhdHVyZXM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMscj1mdW5jdGlvbih0KXtyZXR1cm4iZmlsbC1leHRydXNpb24iPT09ZS5fbGF5ZXJzW3RdLnR5cGV9LG49e30sYT1bXSxpPXRoaXMuX29yZGVyLmxlbmd0aC0xO2k+PTA7aS0tKXt2YXIgbz10aGlzLl9vcmRlcltpXTtpZihyKG8pKXtuW29dPWk7Zm9yKHZhciBzPTAsbD10O3M8bC5sZW5ndGg7cys9MSl7dmFyIGM9bFtzXVtvXTtpZihjKWZvcih2YXIgdT0wLGg9Yzt1PGgubGVuZ3RoO3UrPTEpe3ZhciBmPWhbdV07YS5wdXNoKGYpfX19fWEuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiBlLmludGVyc2VjdGlvblotdC5pbnRlcnNlY3Rpb25afSk7Zm9yKHZhciBwPVtdLGQ9dGhpcy5fb3JkZXIubGVuZ3RoLTE7ZD49MDtkLS0pe3ZhciBnPXRoaXMuX29yZGVyW2RdO2lmKHIoZykpZm9yKHZhciB2PWEubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciBtPWFbdl0uZmVhdHVyZTtpZihuW20ubGF5ZXIuaWRdPGQpYnJlYWs7cC5wdXNoKG0pLGEucG9wKCl9ZWxzZSBmb3IodmFyIHk9MCx4PXQ7eTx4Lmxlbmd0aDt5Kz0xKXt2YXIgYj14W3ldW2ddO2lmKGIpZm9yKHZhciBfPTAsdz1iO188dy5sZW5ndGg7Xys9MSl7dmFyIGs9d1tfXTtwLnB1c2goay5mZWF0dXJlKX19fXJldHVybiBwfSxyLnByb3RvdHlwZS5xdWVyeVJlbmRlcmVkRmVhdHVyZXM9ZnVuY3Rpb24oZSxyLG4pe3ImJnIuZmlsdGVyJiZ0aGlzLl92YWxpZGF0ZSh0LnZhbGlkYXRlU3R5bGUuZmlsdGVyLCJxdWVyeVJlbmRlcmVkRmVhdHVyZXMuZmlsdGVyIixyLmZpbHRlcixudWxsLHIpO3ZhciBhPXt9O2lmKHImJnIubGF5ZXJzKXtpZighQXJyYXkuaXNBcnJheShyLmxheWVycykpcmV0dXJuIHRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigicGFyYW1ldGVycy5sYXllcnMgbXVzdCBiZSBhbiBBcnJheS4iKSkpLFtdO2Zvcih2YXIgaT0wLG89ci5sYXllcnM7aTxvLmxlbmd0aDtpKz0xKXt2YXIgcz1vW2ldLGw9dGhpcy5fbGF5ZXJzW3NdO2lmKCFsKXJldHVybiB0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIlRoZSBsYXllciAnIitzKyInIGRvZXMgbm90IGV4aXN0IGluIHRoZSBtYXAncyBzdHlsZSBhbmQgY2Fubm90IGJlIHF1ZXJpZWQgZm9yIGZlYXR1cmVzLiIpKSksW107YVtsLnNvdXJjZV09ITB9fXZhciBjPVtdO2Zvcih2YXIgdSBpbiB0aGlzLnNvdXJjZUNhY2hlcylyLmxheWVycyYmIWFbdV18fGMucHVzaChGKHRoaXMuc291cmNlQ2FjaGVzW3VdLHRoaXMuX2xheWVycyxlLHIsbikpO3JldHVybiB0aGlzLnBsYWNlbWVudCYmYy5wdXNoKGZ1bmN0aW9uKHQsZSxyLG4sYSxpKXtmb3IodmFyIG89e30scz1hLnF1ZXJ5UmVuZGVyZWRTeW1ib2xzKHIpLGw9W10sYz0wLHU9T2JqZWN0LmtleXMocykubWFwKE51bWJlcik7Yzx1Lmxlbmd0aDtjKz0xKXt2YXIgaD11W2NdO2wucHVzaChpW2hdKX1sLnNvcnQoQik7Zm9yKHZhciBmPWZ1bmN0aW9uKCl7dmFyIGU9ZFtwXSxyPWUuZmVhdHVyZUluZGV4Lmxvb2t1cFN5bWJvbEZlYXR1cmVzKHNbZS5idWNrZXRJbnN0YW5jZUlkXSxlLmJ1Y2tldEluZGV4LGUuc291cmNlTGF5ZXJJbmRleCxuLmZpbHRlcixuLmxheWVycyx0KTtmb3IodmFyIGEgaW4gcil7dmFyIGk9b1thXT1vW2FdfHxbXSxsPXJbYV07bC5zb3J0KGZ1bmN0aW9uKHQscil7dmFyIG49ZS5mZWF0dXJlU29ydE9yZGVyO2lmKG4pe3ZhciBhPW4uaW5kZXhPZih0LmZlYXR1cmVJbmRleCk7cmV0dXJuIG4uaW5kZXhPZihyLmZlYXR1cmVJbmRleCktYX1yZXR1cm4gci5mZWF0dXJlSW5kZXgtdC5mZWF0dXJlSW5kZXh9KTtmb3IodmFyIGM9MCx1PWw7Yzx1Lmxlbmd0aDtjKz0xKXt2YXIgaD11W2NdO2kucHVzaChoKX19fSxwPTAsZD1sO3A8ZC5sZW5ndGg7cCs9MSlmKCk7dmFyIGc9ZnVuY3Rpb24ocil7b1tyXS5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciBhPW4uZmVhdHVyZSxpPXRbcl0sbz1lW2kuc291cmNlXS5nZXRGZWF0dXJlU3RhdGUoYS5sYXllclsic291cmNlLWxheWVyIl0sYS5pZCk7YS5zb3VyY2U9YS5sYXllci5zb3VyY2UsYS5sYXllclsic291cmNlLWxheWVyIl0mJihhLnNvdXJjZUxheWVyPWEubGF5ZXJbInNvdXJjZS1sYXllciJdKSxhLnN0YXRlPW99KX07Zm9yKHZhciB2IGluIG8pZyh2KTtyZXR1cm4gb30odGhpcy5fbGF5ZXJzLHRoaXMuc291cmNlQ2FjaGVzLGUscix0aGlzLnBsYWNlbWVudC5jb2xsaXNpb25JbmRleCx0aGlzLnBsYWNlbWVudC5yZXRhaW5lZFF1ZXJ5RGF0YSkpLHRoaXMuX2ZsYXR0ZW5BbmRTb3J0UmVuZGVyZWRGZWF0dXJlcyhjKX0sci5wcm90b3R5cGUucXVlcnlTb3VyY2VGZWF0dXJlcz1mdW5jdGlvbihlLHIpe3ImJnIuZmlsdGVyJiZ0aGlzLl92YWxpZGF0ZSh0LnZhbGlkYXRlU3R5bGUuZmlsdGVyLCJxdWVyeVNvdXJjZUZlYXR1cmVzLmZpbHRlciIsci5maWx0ZXIsbnVsbCxyKTt2YXIgbj10aGlzLnNvdXJjZUNhY2hlc1tlXTtyZXR1cm4gbj9mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10LmdldFJlbmRlcmFibGVJZHMoKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHQuZ2V0VGlsZUJ5SUQoZSl9KSxuPVtdLGE9e30saT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgbz1yW2ldLHM9by50aWxlSUQuY2Fub25pY2FsLmtleTthW3NdfHwoYVtzXT0hMCxvLnF1ZXJ5U291cmNlRmVhdHVyZXMobixlKSl9cmV0dXJuIG59KG4scik6W119LHIucHJvdG90eXBlLmFkZFNvdXJjZVR5cGU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiByLmdldFNvdXJjZVR5cGUodCk/bihuZXcgRXJyb3IoJ0Egc291cmNlIHR5cGUgY2FsbGVkICInK3QrJyIgYWxyZWFkeSBleGlzdHMuJykpOihyLnNldFNvdXJjZVR5cGUodCxlKSxlLndvcmtlclNvdXJjZVVSTD92b2lkIHRoaXMuZGlzcGF0Y2hlci5icm9hZGNhc3QoImxvYWRXb3JrZXJTb3VyY2UiLHtuYW1lOnQsdXJsOmUud29ya2VyU291cmNlVVJMfSxuKTpuKG51bGwsbnVsbCkpfSxyLnByb3RvdHlwZS5nZXRMaWdodD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxpZ2h0LmdldExpZ2h0KCl9LHIucHJvdG90eXBlLnNldExpZ2h0PWZ1bmN0aW9uKGUscil7dm9pZCAwPT09ciYmKHI9e30pLHRoaXMuX2NoZWNrTG9hZGVkKCk7dmFyIG49dGhpcy5saWdodC5nZXRMaWdodCgpLGE9ITE7Zm9yKHZhciBpIGluIGUpaWYoIXQuZGVlcEVxdWFsKGVbaV0sbltpXSkpe2E9ITA7YnJlYWt9aWYoYSl7dmFyIG89e25vdzp0LmJyb3dzZXIubm93KCksdHJhbnNpdGlvbjp0LmV4dGVuZCh7ZHVyYXRpb246MzAwLGRlbGF5OjB9LHRoaXMuc3R5bGVzaGVldC50cmFuc2l0aW9uKX07dGhpcy5saWdodC5zZXRMaWdodChlLHIpLHRoaXMubGlnaHQudXBkYXRlVHJhbnNpdGlvbnMobyl9fSxyLnByb3RvdHlwZS5fdmFsaWRhdGU9ZnVuY3Rpb24oZSxyLG4sYSxpKXtyZXR1cm4gdm9pZCAwPT09aSYmKGk9e30pLCghaXx8ITEhPT1pLnZhbGlkYXRlKSYmemUodGhpcyxlLmNhbGwodC52YWxpZGF0ZVN0eWxlLHQuZXh0ZW5kKHtrZXk6cixzdHlsZTp0aGlzLnNlcmlhbGl6ZSgpLHZhbHVlOm4sc3R5bGVTcGVjOnQuc3R5bGVTcGVjfSxhKSkpfSxyLnByb3RvdHlwZS5fcmVtb3ZlPWZ1bmN0aW9uKCl7Zm9yKHZhciBlIGluIHRoaXMuX3JlcXVlc3QmJih0aGlzLl9yZXF1ZXN0LmNhbmNlbCgpLHRoaXMuX3JlcXVlc3Q9bnVsbCksdGhpcy5fc3ByaXRlUmVxdWVzdCYmKHRoaXMuX3Nwcml0ZVJlcXVlc3QuY2FuY2VsKCksdGhpcy5fc3ByaXRlUmVxdWVzdD1udWxsKSx0LmV2ZW50ZWQub2ZmKCJwbHVnaW5BdmFpbGFibGUiLHRoaXMuX3J0bFRleHRQbHVnaW5DYWxsYmFjayksdGhpcy5zb3VyY2VDYWNoZXMpdGhpcy5zb3VyY2VDYWNoZXNbZV0uY2xlYXJUaWxlcygpO3RoaXMuZGlzcGF0Y2hlci5yZW1vdmUoKX0sci5wcm90b3R5cGUuX2NsZWFyU291cmNlPWZ1bmN0aW9uKHQpe3RoaXMuc291cmNlQ2FjaGVzW3RdLmNsZWFyVGlsZXMoKX0sci5wcm90b3R5cGUuX3JlbG9hZFNvdXJjZT1mdW5jdGlvbih0KXt0aGlzLnNvdXJjZUNhY2hlc1t0XS5yZXN1bWUoKSx0aGlzLnNvdXJjZUNhY2hlc1t0XS5yZWxvYWQoKX0sci5wcm90b3R5cGUuX3VwZGF0ZVNvdXJjZXM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIHRoaXMuc291cmNlQ2FjaGVzKXRoaXMuc291cmNlQ2FjaGVzW2VdLnVwZGF0ZSh0KX0sci5wcm90b3R5cGUuX2dlbmVyYXRlQ29sbGlzaW9uQm94ZXM9ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcy5zb3VyY2VDYWNoZXMpdGhpcy5fcmVsb2FkU291cmNlKHQpfSxyLnByb3RvdHlwZS5fdXBkYXRlUGxhY2VtZW50PWZ1bmN0aW9uKGUscixuLGEpe2Zvcih2YXIgaT0hMSxvPSExLHM9e30sbD0wLGM9dGhpcy5fb3JkZXI7bDxjLmxlbmd0aDtsKz0xKXt2YXIgdT1jW2xdLGg9dGhpcy5fbGF5ZXJzW3VdO2lmKCJzeW1ib2wiPT09aC50eXBlKXtpZighc1toLnNvdXJjZV0pe3ZhciBmPXRoaXMuc291cmNlQ2FjaGVzW2guc291cmNlXTtzW2guc291cmNlXT1mLmdldFJlbmRlcmFibGVJZHMoITApLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gZi5nZXRUaWxlQnlJRCh0KX0pLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS50aWxlSUQub3ZlcnNjYWxlZFotdC50aWxlSUQub3ZlcnNjYWxlZFp8fCh0LnRpbGVJRC5pc0xlc3NUaGFuKGUudGlsZUlEKT8tMToxKX0pfXZhciBwPXRoaXMuY3Jvc3NUaWxlU3ltYm9sSW5kZXguYWRkTGF5ZXIoaCxzW2guc291cmNlXSxlLmNlbnRlci5sbmcpO2k9aXx8cH19dGhpcy5jcm9zc1RpbGVTeW1ib2xJbmRleC5wcnVuZVVudXNlZExheWVycyh0aGlzLl9vcmRlcik7dmFyIGQ9dGhpcy5fbGF5ZXJPcmRlckNoYW5nZWR8fDA9PT1uO2lmKChkfHwhdGhpcy5wYXVzZWFibGVQbGFjZW1lbnR8fHRoaXMucGF1c2VhYmxlUGxhY2VtZW50LmlzRG9uZSgpJiYhdGhpcy5wbGFjZW1lbnQuc3RpbGxSZWNlbnQodC5icm93c2VyLm5vdygpKSkmJih0aGlzLnBhdXNlYWJsZVBsYWNlbWVudD1uZXcgU2UoZSx0aGlzLl9vcmRlcixkLHIsbixhLHRoaXMucGxhY2VtZW50KSx0aGlzLl9sYXllck9yZGVyQ2hhbmdlZD0hMSksdGhpcy5wYXVzZWFibGVQbGFjZW1lbnQuaXNEb25lKCk/dGhpcy5wbGFjZW1lbnQuc2V0U3RhbGUoKToodGhpcy5wYXVzZWFibGVQbGFjZW1lbnQuY29udGludWVQbGFjZW1lbnQodGhpcy5fb3JkZXIsdGhpcy5fbGF5ZXJzLHMpLHRoaXMucGF1c2VhYmxlUGxhY2VtZW50LmlzRG9uZSgpJiYodGhpcy5wbGFjZW1lbnQ9dGhpcy5wYXVzZWFibGVQbGFjZW1lbnQuY29tbWl0KHQuYnJvd3Nlci5ub3coKSksbz0hMCksaSYmdGhpcy5wYXVzZWFibGVQbGFjZW1lbnQucGxhY2VtZW50LnNldFN0YWxlKCkpLG98fGkpZm9yKHZhciBnPTAsdj10aGlzLl9vcmRlcjtnPHYubGVuZ3RoO2crPTEpe3ZhciBtPXZbZ10seT10aGlzLl9sYXllcnNbbV07InN5bWJvbCI9PT15LnR5cGUmJnRoaXMucGxhY2VtZW50LnVwZGF0ZUxheWVyT3BhY2l0aWVzKHksc1t5LnNvdXJjZV0pfXJldHVybiF0aGlzLnBhdXNlYWJsZVBsYWNlbWVudC5pc0RvbmUoKXx8dGhpcy5wbGFjZW1lbnQuaGFzVHJhbnNpdGlvbnModC5icm93c2VyLm5vdygpKX0sci5wcm90b3R5cGUuX3JlbGVhc2VTeW1ib2xGYWRlVGlsZXM9ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcy5zb3VyY2VDYWNoZXMpdGhpcy5zb3VyY2VDYWNoZXNbdF0ucmVsZWFzZVN5bWJvbEZhZGVUaWxlcygpfSxyLnByb3RvdHlwZS5nZXRJbWFnZXM9ZnVuY3Rpb24odCxlLHIpe3RoaXMuaW1hZ2VNYW5hZ2VyLmdldEltYWdlcyhlLmljb25zLHIpfSxyLnByb3RvdHlwZS5nZXRHbHlwaHM9ZnVuY3Rpb24odCxlLHIpe3RoaXMuZ2x5cGhNYW5hZ2VyLmdldEdseXBocyhlLnN0YWNrcyxyKX0sci5wcm90b3R5cGUuZ2V0UmVzb3VyY2U9ZnVuY3Rpb24oZSxyLG4pe3JldHVybiB0Lm1ha2VSZXF1ZXN0KHIsbil9LHJ9KHQuRXZlbnRlZCk7UmUuZ2V0U291cmNlVHlwZT1mdW5jdGlvbih0KXtyZXR1cm4gSVt0XX0sUmUuc2V0U291cmNlVHlwZT1mdW5jdGlvbih0LGUpe0lbdF09ZX0sUmUucmVnaXN0ZXJGb3JQbHVnaW5BdmFpbGFiaWxpdHk9dC5yZWdpc3RlckZvclBsdWdpbkF2YWlsYWJpbGl0eTt2YXIgRmU9dC5jcmVhdGVMYXlvdXQoW3tuYW1lOiJhX3BvcyIsdHlwZToiSW50MTYiLGNvbXBvbmVudHM6Mn1dKSxCZT1jcigiI2lmZGVmIEdMX0VTXG5wcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNlbHNlXG4jaWYgIWRlZmluZWQobG93cClcbiNkZWZpbmUgbG93cFxuI2VuZGlmXG4jaWYgIWRlZmluZWQobWVkaXVtcClcbiNkZWZpbmUgbWVkaXVtcFxuI2VuZGlmXG4jaWYgIWRlZmluZWQoaGlnaHApXG4jZGVmaW5lIGhpZ2hwXG4jZW5kaWZcbiNlbmRpZiIsIiNpZmRlZiBHTF9FU1xucHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2Vsc2VcbiNpZiAhZGVmaW5lZChsb3dwKVxuI2RlZmluZSBsb3dwXG4jZW5kaWZcbiNpZiAhZGVmaW5lZChtZWRpdW1wKVxuI2RlZmluZSBtZWRpdW1wXG4jZW5kaWZcbiNpZiAhZGVmaW5lZChoaWdocClcbiNkZWZpbmUgaGlnaHBcbiNlbmRpZlxuI2VuZGlmXG52ZWMyIHVucGFja19mbG9hdChjb25zdCBmbG9hdCBwYWNrZWRWYWx1ZSkge2ludCBwYWNrZWRJbnRWYWx1ZT1pbnQocGFja2VkVmFsdWUpO2ludCB2MD1wYWNrZWRJbnRWYWx1ZS8yNTY7cmV0dXJuIHZlYzIodjAscGFja2VkSW50VmFsdWUtdjAqMjU2KTt9dmVjMiB1bnBhY2tfb3BhY2l0eShjb25zdCBmbG9hdCBwYWNrZWRPcGFjaXR5KSB7aW50IGludE9wYWNpdHk9aW50KHBhY2tlZE9wYWNpdHkpLzI7cmV0dXJuIHZlYzIoZmxvYXQoaW50T3BhY2l0eSkvMTI3LjAsbW9kKHBhY2tlZE9wYWNpdHksMi4wKSk7fXZlYzQgZGVjb2RlX2NvbG9yKGNvbnN0IHZlYzIgZW5jb2RlZENvbG9yKSB7cmV0dXJuIHZlYzQodW5wYWNrX2Zsb2F0KGVuY29kZWRDb2xvclswXSkvMjU1LjAsdW5wYWNrX2Zsb2F0KGVuY29kZWRDb2xvclsxXSkvMjU1LjBcbik7fWZsb2F0IHVucGFja19taXhfdmVjMihjb25zdCB2ZWMyIHBhY2tlZFZhbHVlLGNvbnN0IGZsb2F0IHQpIHtyZXR1cm4gbWl4KHBhY2tlZFZhbHVlWzBdLHBhY2tlZFZhbHVlWzFdLHQpO312ZWM0IHVucGFja19taXhfY29sb3IoY29uc3QgdmVjNCBwYWNrZWRDb2xvcnMsY29uc3QgZmxvYXQgdCkge3ZlYzQgbWluQ29sb3I9ZGVjb2RlX2NvbG9yKHZlYzIocGFja2VkQ29sb3JzWzBdLHBhY2tlZENvbG9yc1sxXSkpO3ZlYzQgbWF4Q29sb3I9ZGVjb2RlX2NvbG9yKHZlYzIocGFja2VkQ29sb3JzWzJdLHBhY2tlZENvbG9yc1szXSkpO3JldHVybiBtaXgobWluQ29sb3IsbWF4Q29sb3IsdCk7fXZlYzIgZ2V0X3BhdHRlcm5fcG9zKGNvbnN0IHZlYzIgcGl4ZWxfY29vcmRfdXBwZXIsY29uc3QgdmVjMiBwaXhlbF9jb29yZF9sb3dlcixjb25zdCB2ZWMyIHBhdHRlcm5fc2l6ZSxjb25zdCBmbG9hdCB0aWxlX3VuaXRzX3RvX3BpeGVscyxjb25zdCB2ZWMyIHBvcykge3ZlYzIgb2Zmc2V0PW1vZChtb2QobW9kKHBpeGVsX2Nvb3JkX3VwcGVyLHBhdHRlcm5fc2l6ZSkqMjU2LjAscGF0dGVybl9zaXplKSoyNTYuMCtwaXhlbF9jb29yZF9sb3dlcixwYXR0ZXJuX3NpemUpO3JldHVybiAodGlsZV91bml0c190b19waXhlbHMqcG9zK29mZnNldCkvcGF0dGVybl9zaXplO30iKSxOZT1jcigidW5pZm9ybSB2ZWM0IHVfY29sb3I7dW5pZm9ybSBmbG9hdCB1X29wYWNpdHk7dm9pZCBtYWluKCkge2dsX0ZyYWdDb2xvcj11X2NvbG9yKnVfb3BhY2l0eTtcbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbmdsX0ZyYWdDb2xvcj12ZWM0KDEuMCk7XG4jZW5kaWZcbn0iLCJhdHRyaWJ1dGUgdmVjMiBhX3Bvczt1bmlmb3JtIG1hdDQgdV9tYXRyaXg7dm9pZCBtYWluKCkge2dsX1Bvc2l0aW9uPXVfbWF0cml4KnZlYzQoYV9wb3MsMCwxKTt9IiksamU9Y3IoInVuaWZvcm0gdmVjMiB1X3BhdHRlcm5fdGxfYTt1bmlmb3JtIHZlYzIgdV9wYXR0ZXJuX2JyX2E7dW5pZm9ybSB2ZWMyIHVfcGF0dGVybl90bF9iO3VuaWZvcm0gdmVjMiB1X3BhdHRlcm5fYnJfYjt1bmlmb3JtIHZlYzIgdV90ZXhzaXplO3VuaWZvcm0gZmxvYXQgdV9taXg7dW5pZm9ybSBmbG9hdCB1X29wYWNpdHk7dW5pZm9ybSBzYW1wbGVyMkQgdV9pbWFnZTt2YXJ5aW5nIHZlYzIgdl9wb3NfYTt2YXJ5aW5nIHZlYzIgdl9wb3NfYjt2b2lkIG1haW4oKSB7dmVjMiBpbWFnZWNvb3JkPW1vZCh2X3Bvc19hLDEuMCk7dmVjMiBwb3M9bWl4KHVfcGF0dGVybl90bF9hL3VfdGV4c2l6ZSx1X3BhdHRlcm5fYnJfYS91X3RleHNpemUsaW1hZ2Vjb29yZCk7dmVjNCBjb2xvcjE9dGV4dHVyZTJEKHVfaW1hZ2UscG9zKTt2ZWMyIGltYWdlY29vcmRfYj1tb2Qodl9wb3NfYiwxLjApO3ZlYzIgcG9zMj1taXgodV9wYXR0ZXJuX3RsX2IvdV90ZXhzaXplLHVfcGF0dGVybl9icl9iL3VfdGV4c2l6ZSxpbWFnZWNvb3JkX2IpO3ZlYzQgY29sb3IyPXRleHR1cmUyRCh1X2ltYWdlLHBvczIpO2dsX0ZyYWdDb2xvcj1taXgoY29sb3IxLGNvbG9yMix1X21peCkqdV9vcGFjaXR5O1xuI2lmZGVmIE9WRVJEUkFXX0lOU1BFQ1RPUlxuZ2xfRnJhZ0NvbG9yPXZlYzQoMS4wKTtcbiNlbmRpZlxufSIsInVuaWZvcm0gbWF0NCB1X21hdHJpeDt1bmlmb3JtIHZlYzIgdV9wYXR0ZXJuX3NpemVfYTt1bmlmb3JtIHZlYzIgdV9wYXR0ZXJuX3NpemVfYjt1bmlmb3JtIHZlYzIgdV9waXhlbF9jb29yZF91cHBlcjt1bmlmb3JtIHZlYzIgdV9waXhlbF9jb29yZF9sb3dlcjt1bmlmb3JtIGZsb2F0IHVfc2NhbGVfYTt1bmlmb3JtIGZsb2F0IHVfc2NhbGVfYjt1bmlmb3JtIGZsb2F0IHVfdGlsZV91bml0c190b19waXhlbHM7YXR0cmlidXRlIHZlYzIgYV9wb3M7dmFyeWluZyB2ZWMyIHZfcG9zX2E7dmFyeWluZyB2ZWMyIHZfcG9zX2I7dm9pZCBtYWluKCkge2dsX1Bvc2l0aW9uPXVfbWF0cml4KnZlYzQoYV9wb3MsMCwxKTt2X3Bvc19hPWdldF9wYXR0ZXJuX3Bvcyh1X3BpeGVsX2Nvb3JkX3VwcGVyLHVfcGl4ZWxfY29vcmRfbG93ZXIsdV9zY2FsZV9hKnVfcGF0dGVybl9zaXplX2EsdV90aWxlX3VuaXRzX3RvX3BpeGVscyxhX3Bvcyk7dl9wb3NfYj1nZXRfcGF0dGVybl9wb3ModV9waXhlbF9jb29yZF91cHBlcix1X3BpeGVsX2Nvb3JkX2xvd2VyLHVfc2NhbGVfYip1X3BhdHRlcm5fc2l6ZV9iLHVfdGlsZV91bml0c190b19waXhlbHMsYV9wb3MpO30iKSxWZT1jcigidmFyeWluZyB2ZWMzIHZfZGF0YTtcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgaGlnaHAgdmVjNCBjb2xvclxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBtZWRpdW1wIGZsb2F0IHJhZGl1c1xuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IGJsdXJcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBvcGFjaXR5XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGhpZ2hwIHZlYzQgc3Ryb2tlX2NvbG9yXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIG1lZGl1bXAgZmxvYXQgc3Ryb2tlX3dpZHRoXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgc3Ryb2tlX29wYWNpdHlcbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIHZlYzQgY29sb3JcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgZmxvYXQgcmFkaXVzXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IGJsdXJcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgaGlnaHAgdmVjNCBzdHJva2VfY29sb3JcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgZmxvYXQgc3Ryb2tlX3dpZHRoXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IHN0cm9rZV9vcGFjaXR5XG52ZWMyIGV4dHJ1ZGU9dl9kYXRhLnh5O2Zsb2F0IGV4dHJ1ZGVfbGVuZ3RoPWxlbmd0aChleHRydWRlKTtsb3dwIGZsb2F0IGFudGlhbGlhc2JsdXI9dl9kYXRhLno7ZmxvYXQgYW50aWFsaWFzZWRfYmx1cj0tbWF4KGJsdXIsYW50aWFsaWFzYmx1cik7ZmxvYXQgb3BhY2l0eV90PXNtb290aHN0ZXAoMC4wLGFudGlhbGlhc2VkX2JsdXIsZXh0cnVkZV9sZW5ndGgtMS4wKTtmbG9hdCBjb2xvcl90PXN0cm9rZV93aWR0aCA8IDAuMDEgPyAwLjAgOiBzbW9vdGhzdGVwKGFudGlhbGlhc2VkX2JsdXIsMC4wLGV4dHJ1ZGVfbGVuZ3RoLXJhZGl1cy8ocmFkaXVzK3N0cm9rZV93aWR0aCkpO2dsX0ZyYWdDb2xvcj1vcGFjaXR5X3QqbWl4KGNvbG9yKm9wYWNpdHksc3Ryb2tlX2NvbG9yKnN0cm9rZV9vcGFjaXR5LGNvbG9yX3QpO1xuI2lmZGVmIE9WRVJEUkFXX0lOU1BFQ1RPUlxuZ2xfRnJhZ0NvbG9yPXZlYzQoMS4wKTtcbiNlbmRpZlxufSIsInVuaWZvcm0gbWF0NCB1X21hdHJpeDt1bmlmb3JtIGJvb2wgdV9zY2FsZV93aXRoX21hcDt1bmlmb3JtIGJvb2wgdV9waXRjaF93aXRoX21hcDt1bmlmb3JtIHZlYzIgdV9leHRydWRlX3NjYWxlO3VuaWZvcm0gbG93cCBmbG9hdCB1X2RldmljZV9waXhlbF9yYXRpbzt1bmlmb3JtIGhpZ2hwIGZsb2F0IHVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZTthdHRyaWJ1dGUgdmVjMiBhX3Bvczt2YXJ5aW5nIHZlYzMgdl9kYXRhO1xuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBoaWdocCB2ZWM0IGNvbG9yXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIG1lZGl1bXAgZmxvYXQgcmFkaXVzXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgYmx1clxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgaGlnaHAgdmVjNCBzdHJva2VfY29sb3JcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbWVkaXVtcCBmbG9hdCBzdHJva2Vfd2lkdGhcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBzdHJva2Vfb3BhY2l0eVxudm9pZCBtYWluKHZvaWQpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIHZlYzQgY29sb3JcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgZmxvYXQgcmFkaXVzXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IGJsdXJcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgaGlnaHAgdmVjNCBzdHJva2VfY29sb3JcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgZmxvYXQgc3Ryb2tlX3dpZHRoXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IHN0cm9rZV9vcGFjaXR5XG52ZWMyIGV4dHJ1ZGU9dmVjMihtb2QoYV9wb3MsMi4wKSoyLjAtMS4wKTt2ZWMyIGNpcmNsZV9jZW50ZXI9Zmxvb3IoYV9wb3MqMC41KTtpZiAodV9waXRjaF93aXRoX21hcCkge3ZlYzIgY29ybmVyX3Bvc2l0aW9uPWNpcmNsZV9jZW50ZXI7aWYgKHVfc2NhbGVfd2l0aF9tYXApIHtjb3JuZXJfcG9zaXRpb24rPWV4dHJ1ZGUqKHJhZGl1cytzdHJva2Vfd2lkdGgpKnVfZXh0cnVkZV9zY2FsZTt9IGVsc2Uge3ZlYzQgcHJvamVjdGVkX2NlbnRlcj11X21hdHJpeCp2ZWM0KGNpcmNsZV9jZW50ZXIsMCwxKTtjb3JuZXJfcG9zaXRpb24rPWV4dHJ1ZGUqKHJhZGl1cytzdHJva2Vfd2lkdGgpKnVfZXh0cnVkZV9zY2FsZSoocHJvamVjdGVkX2NlbnRlci53L3VfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZSk7fWdsX1Bvc2l0aW9uPXVfbWF0cml4KnZlYzQoY29ybmVyX3Bvc2l0aW9uLDAsMSk7fSBlbHNlIHtnbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KGNpcmNsZV9jZW50ZXIsMCwxKTtpZiAodV9zY2FsZV93aXRoX21hcCkge2dsX1Bvc2l0aW9uLnh5Kz1leHRydWRlKihyYWRpdXMrc3Ryb2tlX3dpZHRoKSp1X2V4dHJ1ZGVfc2NhbGUqdV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlO30gZWxzZSB7Z2xfUG9zaXRpb24ueHkrPWV4dHJ1ZGUqKHJhZGl1cytzdHJva2Vfd2lkdGgpKnVfZXh0cnVkZV9zY2FsZSpnbF9Qb3NpdGlvbi53O319bG93cCBmbG9hdCBhbnRpYWxpYXNibHVyPTEuMC91X2RldmljZV9waXhlbF9yYXRpby8ocmFkaXVzK3N0cm9rZV93aWR0aCk7dl9kYXRhPXZlYzMoZXh0cnVkZS54LGV4dHJ1ZGUueSxhbnRpYWxpYXNibHVyKTt9IiksVWU9Y3IoInZvaWQgbWFpbigpIHtnbF9GcmFnQ29sb3I9dmVjNCgxLjApO30iLCJhdHRyaWJ1dGUgdmVjMiBhX3Bvczt1bmlmb3JtIG1hdDQgdV9tYXRyaXg7dm9pZCBtYWluKCkge2dsX1Bvc2l0aW9uPXVfbWF0cml4KnZlYzQoYV9wb3MsMCwxKTt9IikscWU9Y3IoInVuaWZvcm0gaGlnaHAgZmxvYXQgdV9pbnRlbnNpdHk7dmFyeWluZyB2ZWMyIHZfZXh0cnVkZTtcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgaGlnaHAgZmxvYXQgd2VpZ2h0XG4jZGVmaW5lIEdBVVNTX0NPRUYgMC4zOTg5NDIyODA0MDE0MzI3XG52b2lkIG1haW4oKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBoaWdocCBmbG9hdCB3ZWlnaHRcbmZsb2F0IGQ9LTAuNSozLjAqMy4wKmRvdCh2X2V4dHJ1ZGUsdl9leHRydWRlKTtmbG9hdCB2YWw9d2VpZ2h0KnVfaW50ZW5zaXR5KkdBVVNTX0NPRUYqZXhwKGQpO2dsX0ZyYWdDb2xvcj12ZWM0KHZhbCwxLjAsMS4wLDEuMCk7XG4jaWZkZWYgT1ZFUkRSQVdfSU5TUEVDVE9SXG5nbF9GcmFnQ29sb3I9dmVjNCgxLjApO1xuI2VuZGlmXG59IiwidW5pZm9ybSBtYXQ0IHVfbWF0cml4O3VuaWZvcm0gZmxvYXQgdV9leHRydWRlX3NjYWxlO3VuaWZvcm0gZmxvYXQgdV9vcGFjaXR5O3VuaWZvcm0gZmxvYXQgdV9pbnRlbnNpdHk7YXR0cmlidXRlIHZlYzIgYV9wb3M7dmFyeWluZyB2ZWMyIHZfZXh0cnVkZTtcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgaGlnaHAgZmxvYXQgd2VpZ2h0XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIG1lZGl1bXAgZmxvYXQgcmFkaXVzXG5jb25zdCBoaWdocCBmbG9hdCBaRVJPPTEuMC8yNTUuMC8xNi4wO1xuI2RlZmluZSBHQVVTU19DT0VGIDAuMzk4OTQyMjgwNDAxNDMyN1xudm9pZCBtYWluKHZvaWQpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIGZsb2F0IHdlaWdodFxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCBmbG9hdCByYWRpdXNcbnZlYzIgdW5zY2FsZWRfZXh0cnVkZT12ZWMyKG1vZChhX3BvcywyLjApKjIuMC0xLjApO2Zsb2F0IFM9c3FydCgtMi4wKmxvZyhaRVJPL3dlaWdodC91X2ludGVuc2l0eS9HQVVTU19DT0VGKSkvMy4wO3ZfZXh0cnVkZT1TKnVuc2NhbGVkX2V4dHJ1ZGU7dmVjMiBleHRydWRlPXZfZXh0cnVkZSpyYWRpdXMqdV9leHRydWRlX3NjYWxlO3ZlYzQgcG9zPXZlYzQoZmxvb3IoYV9wb3MqMC41KStleHRydWRlLDAsMSk7Z2xfUG9zaXRpb249dV9tYXRyaXgqcG9zO30iKSxIZT1jcigidW5pZm9ybSBzYW1wbGVyMkQgdV9pbWFnZTt1bmlmb3JtIHNhbXBsZXIyRCB1X2NvbG9yX3JhbXA7dW5pZm9ybSBmbG9hdCB1X29wYWNpdHk7dmFyeWluZyB2ZWMyIHZfcG9zO3ZvaWQgbWFpbigpIHtmbG9hdCB0PXRleHR1cmUyRCh1X2ltYWdlLHZfcG9zKS5yO3ZlYzQgY29sb3I9dGV4dHVyZTJEKHVfY29sb3JfcmFtcCx2ZWMyKHQsMC41KSk7Z2xfRnJhZ0NvbG9yPWNvbG9yKnVfb3BhY2l0eTtcbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbmdsX0ZyYWdDb2xvcj12ZWM0KDAuMCk7XG4jZW5kaWZcbn0iLCJ1bmlmb3JtIG1hdDQgdV9tYXRyaXg7dW5pZm9ybSB2ZWMyIHVfd29ybGQ7YXR0cmlidXRlIHZlYzIgYV9wb3M7dmFyeWluZyB2ZWMyIHZfcG9zO3ZvaWQgbWFpbigpIHtnbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KGFfcG9zKnVfd29ybGQsMCwxKTt2X3Bvcy54PWFfcG9zLng7dl9wb3MueT0xLjAtYV9wb3MueTt9IiksR2U9Y3IoInZhcnlpbmcgZmxvYXQgdl9wbGFjZWQ7dmFyeWluZyBmbG9hdCB2X25vdFVzZWQ7dm9pZCBtYWluKCkge2Zsb2F0IGFscGhhPTAuNTtnbF9GcmFnQ29sb3I9dmVjNCgxLjAsMC4wLDAuMCwxLjApKmFscGhhO2lmICh2X3BsYWNlZCA+IDAuNSkge2dsX0ZyYWdDb2xvcj12ZWM0KDAuMCwwLjAsMS4wLDAuNSkqYWxwaGE7fWlmICh2X25vdFVzZWQgPiAwLjUpIHtnbF9GcmFnQ29sb3IqPS4xO319IiwiYXR0cmlidXRlIHZlYzIgYV9wb3M7YXR0cmlidXRlIHZlYzIgYV9hbmNob3JfcG9zO2F0dHJpYnV0ZSB2ZWMyIGFfZXh0cnVkZTthdHRyaWJ1dGUgdmVjMiBhX3BsYWNlZDthdHRyaWJ1dGUgdmVjMiBhX3NoaWZ0O3VuaWZvcm0gbWF0NCB1X21hdHJpeDt1bmlmb3JtIHZlYzIgdV9leHRydWRlX3NjYWxlO3VuaWZvcm0gZmxvYXQgdV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlO3ZhcnlpbmcgZmxvYXQgdl9wbGFjZWQ7dmFyeWluZyBmbG9hdCB2X25vdFVzZWQ7dm9pZCBtYWluKCkge3ZlYzQgcHJvamVjdGVkUG9pbnQ9dV9tYXRyaXgqdmVjNChhX2FuY2hvcl9wb3MsMCwxKTtoaWdocCBmbG9hdCBjYW1lcmFfdG9fYW5jaG9yX2Rpc3RhbmNlPXByb2plY3RlZFBvaW50Lnc7aGlnaHAgZmxvYXQgY29sbGlzaW9uX3BlcnNwZWN0aXZlX3JhdGlvPWNsYW1wKDAuNSswLjUqKHVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZS9jYW1lcmFfdG9fYW5jaG9yX2Rpc3RhbmNlKSwwLjAsNC4wKTtnbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KGFfcG9zLDAuMCwxLjApO2dsX1Bvc2l0aW9uLnh5Kz0oYV9leHRydWRlK2Ffc2hpZnQpKnVfZXh0cnVkZV9zY2FsZSpnbF9Qb3NpdGlvbi53KmNvbGxpc2lvbl9wZXJzcGVjdGl2ZV9yYXRpbzt2X3BsYWNlZD1hX3BsYWNlZC54O3Zfbm90VXNlZD1hX3BsYWNlZC55O30iKSxZZT1jcigidW5pZm9ybSBmbG9hdCB1X292ZXJzY2FsZV9mYWN0b3I7dmFyeWluZyBmbG9hdCB2X3BsYWNlZDt2YXJ5aW5nIGZsb2F0IHZfbm90VXNlZDt2YXJ5aW5nIGZsb2F0IHZfcmFkaXVzO3ZhcnlpbmcgdmVjMiB2X2V4dHJ1ZGU7dmFyeWluZyB2ZWMyIHZfZXh0cnVkZV9zY2FsZTt2b2lkIG1haW4oKSB7ZmxvYXQgYWxwaGE9MC41O3ZlYzQgY29sb3I9dmVjNCgxLjAsMC4wLDAuMCwxLjApKmFscGhhO2lmICh2X3BsYWNlZCA+IDAuNSkge2NvbG9yPXZlYzQoMC4wLDAuMCwxLjAsMC41KSphbHBoYTt9aWYgKHZfbm90VXNlZCA+IDAuNSkge2NvbG9yKj0uMjt9ZmxvYXQgZXh0cnVkZV9zY2FsZV9sZW5ndGg9bGVuZ3RoKHZfZXh0cnVkZV9zY2FsZSk7ZmxvYXQgZXh0cnVkZV9sZW5ndGg9bGVuZ3RoKHZfZXh0cnVkZSkqZXh0cnVkZV9zY2FsZV9sZW5ndGg7ZmxvYXQgc3Ryb2tlX3dpZHRoPTE1LjAqZXh0cnVkZV9zY2FsZV9sZW5ndGgvdV9vdmVyc2NhbGVfZmFjdG9yO2Zsb2F0IHJhZGl1cz12X3JhZGl1cypleHRydWRlX3NjYWxlX2xlbmd0aDtmbG9hdCBkaXN0YW5jZV90b19lZGdlPWFicyhleHRydWRlX2xlbmd0aC1yYWRpdXMpO2Zsb2F0IG9wYWNpdHlfdD1zbW9vdGhzdGVwKC1zdHJva2Vfd2lkdGgsMC4wLC1kaXN0YW5jZV90b19lZGdlKTtnbF9GcmFnQ29sb3I9b3BhY2l0eV90KmNvbG9yO30iLCJhdHRyaWJ1dGUgdmVjMiBhX3BvczthdHRyaWJ1dGUgdmVjMiBhX2FuY2hvcl9wb3M7YXR0cmlidXRlIHZlYzIgYV9leHRydWRlO2F0dHJpYnV0ZSB2ZWMyIGFfcGxhY2VkO3VuaWZvcm0gbWF0NCB1X21hdHJpeDt1bmlmb3JtIHZlYzIgdV9leHRydWRlX3NjYWxlO3VuaWZvcm0gZmxvYXQgdV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlO3ZhcnlpbmcgZmxvYXQgdl9wbGFjZWQ7dmFyeWluZyBmbG9hdCB2X25vdFVzZWQ7dmFyeWluZyBmbG9hdCB2X3JhZGl1czt2YXJ5aW5nIHZlYzIgdl9leHRydWRlO3ZhcnlpbmcgdmVjMiB2X2V4dHJ1ZGVfc2NhbGU7dm9pZCBtYWluKCkge3ZlYzQgcHJvamVjdGVkUG9pbnQ9dV9tYXRyaXgqdmVjNChhX2FuY2hvcl9wb3MsMCwxKTtoaWdocCBmbG9hdCBjYW1lcmFfdG9fYW5jaG9yX2Rpc3RhbmNlPXByb2plY3RlZFBvaW50Lnc7aGlnaHAgZmxvYXQgY29sbGlzaW9uX3BlcnNwZWN0aXZlX3JhdGlvPWNsYW1wKDAuNSswLjUqKHVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZS9jYW1lcmFfdG9fYW5jaG9yX2Rpc3RhbmNlKSwwLjAsNC4wKTtnbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KGFfcG9zLDAuMCwxLjApO2hpZ2hwIGZsb2F0IHBhZGRpbmdfZmFjdG9yPTEuMjtnbF9Qb3NpdGlvbi54eSs9YV9leHRydWRlKnVfZXh0cnVkZV9zY2FsZSpwYWRkaW5nX2ZhY3RvcipnbF9Qb3NpdGlvbi53KmNvbGxpc2lvbl9wZXJzcGVjdGl2ZV9yYXRpbzt2X3BsYWNlZD1hX3BsYWNlZC54O3Zfbm90VXNlZD1hX3BsYWNlZC55O3ZfcmFkaXVzPWFicyhhX2V4dHJ1ZGUueSk7dl9leHRydWRlPWFfZXh0cnVkZSpwYWRkaW5nX2ZhY3Rvcjt2X2V4dHJ1ZGVfc2NhbGU9dV9leHRydWRlX3NjYWxlKnVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZSpjb2xsaXNpb25fcGVyc3BlY3RpdmVfcmF0aW87fSIpLFdlPWNyKCJ1bmlmb3JtIGhpZ2hwIHZlYzQgdV9jb2xvcjt2b2lkIG1haW4oKSB7Z2xfRnJhZ0NvbG9yPXVfY29sb3I7fSIsImF0dHJpYnV0ZSB2ZWMyIGFfcG9zO3VuaWZvcm0gbWF0NCB1X21hdHJpeDt2b2lkIG1haW4oKSB7Z2xfUG9zaXRpb249dV9tYXRyaXgqdmVjNChhX3BvcywwLDEpO30iKSxYZT1jcigiI3ByYWdtYSBtYXBib3g6IGRlZmluZSBoaWdocCB2ZWM0IGNvbG9yXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb3BhY2l0eVxudm9pZCBtYWluKCkge1xuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgaGlnaHAgdmVjNCBjb2xvclxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvcGFjaXR5XG5nbF9GcmFnQ29sb3I9Y29sb3Iqb3BhY2l0eTtcbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbmdsX0ZyYWdDb2xvcj12ZWM0KDEuMCk7XG4jZW5kaWZcbn0iLCJhdHRyaWJ1dGUgdmVjMiBhX3Bvczt1bmlmb3JtIG1hdDQgdV9tYXRyaXg7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGhpZ2hwIHZlYzQgY29sb3JcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBvcGFjaXR5XG52b2lkIG1haW4oKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBoaWdocCB2ZWM0IGNvbG9yXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcbmdsX1Bvc2l0aW9uPXVfbWF0cml4KnZlYzQoYV9wb3MsMCwxKTt9IiksWmU9Y3IoInZhcnlpbmcgdmVjMiB2X3BvcztcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgaGlnaHAgdmVjNCBvdXRsaW5lX2NvbG9yXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb3BhY2l0eVxudm9pZCBtYWluKCkge1xuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgaGlnaHAgdmVjNCBvdXRsaW5lX2NvbG9yXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcbmZsb2F0IGRpc3Q9bGVuZ3RoKHZfcG9zLWdsX0ZyYWdDb29yZC54eSk7ZmxvYXQgYWxwaGE9MS4wLXNtb290aHN0ZXAoMC4wLDEuMCxkaXN0KTtnbF9GcmFnQ29sb3I9b3V0bGluZV9jb2xvciooYWxwaGEqb3BhY2l0eSk7XG4jaWZkZWYgT1ZFUkRSQVdfSU5TUEVDVE9SXG5nbF9GcmFnQ29sb3I9dmVjNCgxLjApO1xuI2VuZGlmXG59IiwiYXR0cmlidXRlIHZlYzIgYV9wb3M7dW5pZm9ybSBtYXQ0IHVfbWF0cml4O3VuaWZvcm0gdmVjMiB1X3dvcmxkO3ZhcnlpbmcgdmVjMiB2X3BvcztcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgaGlnaHAgdmVjNCBvdXRsaW5lX2NvbG9yXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb3BhY2l0eVxudm9pZCBtYWluKCkge1xuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgaGlnaHAgdmVjNCBvdXRsaW5lX2NvbG9yXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcbmdsX1Bvc2l0aW9uPXVfbWF0cml4KnZlYzQoYV9wb3MsMCwxKTt2X3Bvcz0oZ2xfUG9zaXRpb24ueHkvZ2xfUG9zaXRpb24udysxLjApLzIuMCp1X3dvcmxkO30iKSxKZT1jcigidW5pZm9ybSB2ZWMyIHVfdGV4c2l6ZTt1bmlmb3JtIHNhbXBsZXIyRCB1X2ltYWdlO3VuaWZvcm0gZmxvYXQgdV9mYWRlO3ZhcnlpbmcgdmVjMiB2X3Bvc19hO3ZhcnlpbmcgdmVjMiB2X3Bvc19iO3ZhcnlpbmcgdmVjMiB2X3BvcztcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBvcGFjaXR5XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgdmVjNCBwYXR0ZXJuX2Zyb21cbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCB2ZWM0IHBhdHRlcm5fdG9cbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCB2ZWM0IHBhdHRlcm5fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCB2ZWM0IHBhdHRlcm5fdG9cbnZlYzIgcGF0dGVybl90bF9hPXBhdHRlcm5fZnJvbS54eTt2ZWMyIHBhdHRlcm5fYnJfYT1wYXR0ZXJuX2Zyb20uenc7dmVjMiBwYXR0ZXJuX3RsX2I9cGF0dGVybl90by54eTt2ZWMyIHBhdHRlcm5fYnJfYj1wYXR0ZXJuX3RvLnp3O3ZlYzIgaW1hZ2Vjb29yZD1tb2Qodl9wb3NfYSwxLjApO3ZlYzIgcG9zPW1peChwYXR0ZXJuX3RsX2EvdV90ZXhzaXplLHBhdHRlcm5fYnJfYS91X3RleHNpemUsaW1hZ2Vjb29yZCk7dmVjNCBjb2xvcjE9dGV4dHVyZTJEKHVfaW1hZ2UscG9zKTt2ZWMyIGltYWdlY29vcmRfYj1tb2Qodl9wb3NfYiwxLjApO3ZlYzIgcG9zMj1taXgocGF0dGVybl90bF9iL3VfdGV4c2l6ZSxwYXR0ZXJuX2JyX2IvdV90ZXhzaXplLGltYWdlY29vcmRfYik7dmVjNCBjb2xvcjI9dGV4dHVyZTJEKHVfaW1hZ2UscG9zMik7ZmxvYXQgZGlzdD1sZW5ndGgodl9wb3MtZ2xfRnJhZ0Nvb3JkLnh5KTtmbG9hdCBhbHBoYT0xLjAtc21vb3Roc3RlcCgwLjAsMS4wLGRpc3QpO2dsX0ZyYWdDb2xvcj1taXgoY29sb3IxLGNvbG9yMix1X2ZhZGUpKmFscGhhKm9wYWNpdHk7XG4jaWZkZWYgT1ZFUkRSQVdfSU5TUEVDVE9SXG5nbF9GcmFnQ29sb3I9dmVjNCgxLjApO1xuI2VuZGlmXG59IiwidW5pZm9ybSBtYXQ0IHVfbWF0cml4O3VuaWZvcm0gdmVjMiB1X3dvcmxkO3VuaWZvcm0gdmVjMiB1X3BpeGVsX2Nvb3JkX3VwcGVyO3VuaWZvcm0gdmVjMiB1X3BpeGVsX2Nvb3JkX2xvd2VyO3VuaWZvcm0gdmVjNCB1X3NjYWxlO2F0dHJpYnV0ZSB2ZWMyIGFfcG9zO3ZhcnlpbmcgdmVjMiB2X3Bvc19hO3ZhcnlpbmcgdmVjMiB2X3Bvc19iO3ZhcnlpbmcgdmVjMiB2X3BvcztcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBvcGFjaXR5XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgdmVjNCBwYXR0ZXJuX2Zyb21cbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCB2ZWM0IHBhdHRlcm5fdG9cbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCB2ZWM0IHBhdHRlcm5fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCB2ZWM0IHBhdHRlcm5fdG9cbnZlYzIgcGF0dGVybl90bF9hPXBhdHRlcm5fZnJvbS54eTt2ZWMyIHBhdHRlcm5fYnJfYT1wYXR0ZXJuX2Zyb20uenc7dmVjMiBwYXR0ZXJuX3RsX2I9cGF0dGVybl90by54eTt2ZWMyIHBhdHRlcm5fYnJfYj1wYXR0ZXJuX3RvLnp3O2Zsb2F0IHBpeGVsUmF0aW89dV9zY2FsZS54O2Zsb2F0IHRpbGVSYXRpbz11X3NjYWxlLnk7ZmxvYXQgZnJvbVNjYWxlPXVfc2NhbGUuejtmbG9hdCB0b1NjYWxlPXVfc2NhbGUudztnbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KGFfcG9zLDAsMSk7dmVjMiBkaXNwbGF5X3NpemVfYT12ZWMyKChwYXR0ZXJuX2JyX2EueC1wYXR0ZXJuX3RsX2EueCkvcGl4ZWxSYXRpbywocGF0dGVybl9icl9hLnktcGF0dGVybl90bF9hLnkpL3BpeGVsUmF0aW8pO3ZlYzIgZGlzcGxheV9zaXplX2I9dmVjMigocGF0dGVybl9icl9iLngtcGF0dGVybl90bF9iLngpL3BpeGVsUmF0aW8sKHBhdHRlcm5fYnJfYi55LXBhdHRlcm5fdGxfYi55KS9waXhlbFJhdGlvKTt2X3Bvc19hPWdldF9wYXR0ZXJuX3Bvcyh1X3BpeGVsX2Nvb3JkX3VwcGVyLHVfcGl4ZWxfY29vcmRfbG93ZXIsZnJvbVNjYWxlKmRpc3BsYXlfc2l6ZV9hLHRpbGVSYXRpbyxhX3Bvcyk7dl9wb3NfYj1nZXRfcGF0dGVybl9wb3ModV9waXhlbF9jb29yZF91cHBlcix1X3BpeGVsX2Nvb3JkX2xvd2VyLHRvU2NhbGUqZGlzcGxheV9zaXplX2IsdGlsZVJhdGlvLGFfcG9zKTt2X3Bvcz0oZ2xfUG9zaXRpb24ueHkvZ2xfUG9zaXRpb24udysxLjApLzIuMCp1X3dvcmxkO30iKSxLZT1jcigidW5pZm9ybSB2ZWMyIHVfdGV4c2l6ZTt1bmlmb3JtIGZsb2F0IHVfZmFkZTt1bmlmb3JtIHNhbXBsZXIyRCB1X2ltYWdlO3ZhcnlpbmcgdmVjMiB2X3Bvc19hO3ZhcnlpbmcgdmVjMiB2X3Bvc19iO1xuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCB2ZWM0IHBhdHRlcm5fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIHZlYzQgcGF0dGVybl90b1xudm9pZCBtYWluKCkge1xuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvcGFjaXR5XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIHZlYzQgcGF0dGVybl9mcm9tXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIHZlYzQgcGF0dGVybl90b1xudmVjMiBwYXR0ZXJuX3RsX2E9cGF0dGVybl9mcm9tLnh5O3ZlYzIgcGF0dGVybl9icl9hPXBhdHRlcm5fZnJvbS56dzt2ZWMyIHBhdHRlcm5fdGxfYj1wYXR0ZXJuX3RvLnh5O3ZlYzIgcGF0dGVybl9icl9iPXBhdHRlcm5fdG8uenc7dmVjMiBpbWFnZWNvb3JkPW1vZCh2X3Bvc19hLDEuMCk7dmVjMiBwb3M9bWl4KHBhdHRlcm5fdGxfYS91X3RleHNpemUscGF0dGVybl9icl9hL3VfdGV4c2l6ZSxpbWFnZWNvb3JkKTt2ZWM0IGNvbG9yMT10ZXh0dXJlMkQodV9pbWFnZSxwb3MpO3ZlYzIgaW1hZ2Vjb29yZF9iPW1vZCh2X3Bvc19iLDEuMCk7dmVjMiBwb3MyPW1peChwYXR0ZXJuX3RsX2IvdV90ZXhzaXplLHBhdHRlcm5fYnJfYi91X3RleHNpemUsaW1hZ2Vjb29yZF9iKTt2ZWM0IGNvbG9yMj10ZXh0dXJlMkQodV9pbWFnZSxwb3MyKTtnbF9GcmFnQ29sb3I9bWl4KGNvbG9yMSxjb2xvcjIsdV9mYWRlKSpvcGFjaXR5O1xuI2lmZGVmIE9WRVJEUkFXX0lOU1BFQ1RPUlxuZ2xfRnJhZ0NvbG9yPXZlYzQoMS4wKTtcbiNlbmRpZlxufSIsInVuaWZvcm0gbWF0NCB1X21hdHJpeDt1bmlmb3JtIHZlYzIgdV9waXhlbF9jb29yZF91cHBlcjt1bmlmb3JtIHZlYzIgdV9waXhlbF9jb29yZF9sb3dlcjt1bmlmb3JtIHZlYzQgdV9zY2FsZTthdHRyaWJ1dGUgdmVjMiBhX3Bvczt2YXJ5aW5nIHZlYzIgdl9wb3NfYTt2YXJ5aW5nIHZlYzIgdl9wb3NfYjtcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBvcGFjaXR5XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgdmVjNCBwYXR0ZXJuX2Zyb21cbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCB2ZWM0IHBhdHRlcm5fdG9cbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCB2ZWM0IHBhdHRlcm5fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCB2ZWM0IHBhdHRlcm5fdG9cbnZlYzIgcGF0dGVybl90bF9hPXBhdHRlcm5fZnJvbS54eTt2ZWMyIHBhdHRlcm5fYnJfYT1wYXR0ZXJuX2Zyb20uenc7dmVjMiBwYXR0ZXJuX3RsX2I9cGF0dGVybl90by54eTt2ZWMyIHBhdHRlcm5fYnJfYj1wYXR0ZXJuX3RvLnp3O2Zsb2F0IHBpeGVsUmF0aW89dV9zY2FsZS54O2Zsb2F0IHRpbGVab29tUmF0aW89dV9zY2FsZS55O2Zsb2F0IGZyb21TY2FsZT11X3NjYWxlLno7ZmxvYXQgdG9TY2FsZT11X3NjYWxlLnc7dmVjMiBkaXNwbGF5X3NpemVfYT12ZWMyKChwYXR0ZXJuX2JyX2EueC1wYXR0ZXJuX3RsX2EueCkvcGl4ZWxSYXRpbywocGF0dGVybl9icl9hLnktcGF0dGVybl90bF9hLnkpL3BpeGVsUmF0aW8pO3ZlYzIgZGlzcGxheV9zaXplX2I9dmVjMigocGF0dGVybl9icl9iLngtcGF0dGVybl90bF9iLngpL3BpeGVsUmF0aW8sKHBhdHRlcm5fYnJfYi55LXBhdHRlcm5fdGxfYi55KS9waXhlbFJhdGlvKTtnbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KGFfcG9zLDAsMSk7dl9wb3NfYT1nZXRfcGF0dGVybl9wb3ModV9waXhlbF9jb29yZF91cHBlcix1X3BpeGVsX2Nvb3JkX2xvd2VyLGZyb21TY2FsZSpkaXNwbGF5X3NpemVfYSx0aWxlWm9vbVJhdGlvLGFfcG9zKTt2X3Bvc19iPWdldF9wYXR0ZXJuX3Bvcyh1X3BpeGVsX2Nvb3JkX3VwcGVyLHVfcGl4ZWxfY29vcmRfbG93ZXIsdG9TY2FsZSpkaXNwbGF5X3NpemVfYix0aWxlWm9vbVJhdGlvLGFfcG9zKTt9IiksUWU9Y3IoInZhcnlpbmcgdmVjNCB2X2NvbG9yO3ZvaWQgbWFpbigpIHtnbF9GcmFnQ29sb3I9dl9jb2xvcjtcbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbmdsX0ZyYWdDb2xvcj12ZWM0KDEuMCk7XG4jZW5kaWZcbn0iLCJ1bmlmb3JtIG1hdDQgdV9tYXRyaXg7dW5pZm9ybSB2ZWMzIHVfbGlnaHRjb2xvcjt1bmlmb3JtIGxvd3AgdmVjMyB1X2xpZ2h0cG9zO3VuaWZvcm0gbG93cCBmbG9hdCB1X2xpZ2h0aW50ZW5zaXR5O3VuaWZvcm0gZmxvYXQgdV92ZXJ0aWNhbF9ncmFkaWVudDt1bmlmb3JtIGxvd3AgZmxvYXQgdV9vcGFjaXR5O2F0dHJpYnV0ZSB2ZWMyIGFfcG9zO2F0dHJpYnV0ZSB2ZWM0IGFfbm9ybWFsX2VkO3ZhcnlpbmcgdmVjNCB2X2NvbG9yO1xuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBoaWdocCBmbG9hdCBiYXNlXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGhpZ2hwIGZsb2F0IGhlaWdodFxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBoaWdocCB2ZWM0IGNvbG9yXG52b2lkIG1haW4oKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBoaWdocCBmbG9hdCBiYXNlXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBoaWdocCBmbG9hdCBoZWlnaHRcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIHZlYzQgY29sb3JcbnZlYzMgbm9ybWFsPWFfbm9ybWFsX2VkLnh5ejtiYXNlPW1heCgwLjAsYmFzZSk7aGVpZ2h0PW1heCgwLjAsaGVpZ2h0KTtmbG9hdCB0PW1vZChub3JtYWwueCwyLjApO2dsX1Bvc2l0aW9uPXVfbWF0cml4KnZlYzQoYV9wb3MsdCA+IDAuMCA/IGhlaWdodCA6IGJhc2UsMSk7ZmxvYXQgY29sb3J2YWx1ZT1jb2xvci5yKjAuMjEyNitjb2xvci5nKjAuNzE1Mitjb2xvci5iKjAuMDcyMjt2X2NvbG9yPXZlYzQoMC4wLDAuMCwwLjAsMS4wKTt2ZWM0IGFtYmllbnRsaWdodD12ZWM0KDAuMDMsMC4wMywwLjAzLDEuMCk7Y29sb3IrPWFtYmllbnRsaWdodDtmbG9hdCBkaXJlY3Rpb25hbD1jbGFtcChkb3Qobm9ybWFsLzE2Mzg0LjAsdV9saWdodHBvcyksMC4wLDEuMCk7ZGlyZWN0aW9uYWw9bWl4KCgxLjAtdV9saWdodGludGVuc2l0eSksbWF4KCgxLjAtY29sb3J2YWx1ZSt1X2xpZ2h0aW50ZW5zaXR5KSwxLjApLGRpcmVjdGlvbmFsKTtpZiAobm9ybWFsLnkgIT0wLjApIHtkaXJlY3Rpb25hbCo9KCgxLjAtdV92ZXJ0aWNhbF9ncmFkaWVudCkrKHVfdmVydGljYWxfZ3JhZGllbnQqY2xhbXAoKHQrYmFzZSkqcG93KGhlaWdodC8xNTAuMCwwLjUpLG1peCgwLjcsMC45OCwxLjAtdV9saWdodGludGVuc2l0eSksMS4wKSkpO312X2NvbG9yLnIrPWNsYW1wKGNvbG9yLnIqZGlyZWN0aW9uYWwqdV9saWdodGNvbG9yLnIsbWl4KDAuMCwwLjMsMS4wLXVfbGlnaHRjb2xvci5yKSwxLjApO3ZfY29sb3IuZys9Y2xhbXAoY29sb3IuZypkaXJlY3Rpb25hbCp1X2xpZ2h0Y29sb3IuZyxtaXgoMC4wLDAuMywxLjAtdV9saWdodGNvbG9yLmcpLDEuMCk7dl9jb2xvci5iKz1jbGFtcChjb2xvci5iKmRpcmVjdGlvbmFsKnVfbGlnaHRjb2xvci5iLG1peCgwLjAsMC4zLDEuMC11X2xpZ2h0Y29sb3IuYiksMS4wKTt2X2NvbG9yKj11X29wYWNpdHk7fSIpLCRlPWNyKCJ1bmlmb3JtIHZlYzIgdV90ZXhzaXplO3VuaWZvcm0gZmxvYXQgdV9mYWRlO3VuaWZvcm0gc2FtcGxlcjJEIHVfaW1hZ2U7dmFyeWluZyB2ZWMyIHZfcG9zX2E7dmFyeWluZyB2ZWMyIHZfcG9zX2I7dmFyeWluZyB2ZWM0IHZfbGlnaHRpbmc7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgYmFzZVxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IGhlaWdodFxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIHZlYzQgcGF0dGVybl9mcm9tXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgdmVjNCBwYXR0ZXJuX3RvXG52b2lkIG1haW4oKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IGJhc2VcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgaGVpZ2h0XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIHZlYzQgcGF0dGVybl9mcm9tXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIHZlYzQgcGF0dGVybl90b1xudmVjMiBwYXR0ZXJuX3RsX2E9cGF0dGVybl9mcm9tLnh5O3ZlYzIgcGF0dGVybl9icl9hPXBhdHRlcm5fZnJvbS56dzt2ZWMyIHBhdHRlcm5fdGxfYj1wYXR0ZXJuX3RvLnh5O3ZlYzIgcGF0dGVybl9icl9iPXBhdHRlcm5fdG8uenc7dmVjMiBpbWFnZWNvb3JkPW1vZCh2X3Bvc19hLDEuMCk7dmVjMiBwb3M9bWl4KHBhdHRlcm5fdGxfYS91X3RleHNpemUscGF0dGVybl9icl9hL3VfdGV4c2l6ZSxpbWFnZWNvb3JkKTt2ZWM0IGNvbG9yMT10ZXh0dXJlMkQodV9pbWFnZSxwb3MpO3ZlYzIgaW1hZ2Vjb29yZF9iPW1vZCh2X3Bvc19iLDEuMCk7dmVjMiBwb3MyPW1peChwYXR0ZXJuX3RsX2IvdV90ZXhzaXplLHBhdHRlcm5fYnJfYi91X3RleHNpemUsaW1hZ2Vjb29yZF9iKTt2ZWM0IGNvbG9yMj10ZXh0dXJlMkQodV9pbWFnZSxwb3MyKTt2ZWM0IG1peGVkQ29sb3I9bWl4KGNvbG9yMSxjb2xvcjIsdV9mYWRlKTtnbF9GcmFnQ29sb3I9bWl4ZWRDb2xvcip2X2xpZ2h0aW5nO1xuI2lmZGVmIE9WRVJEUkFXX0lOU1BFQ1RPUlxuZ2xfRnJhZ0NvbG9yPXZlYzQoMS4wKTtcbiNlbmRpZlxufSIsInVuaWZvcm0gbWF0NCB1X21hdHJpeDt1bmlmb3JtIHZlYzIgdV9waXhlbF9jb29yZF91cHBlcjt1bmlmb3JtIHZlYzIgdV9waXhlbF9jb29yZF9sb3dlcjt1bmlmb3JtIGZsb2F0IHVfaGVpZ2h0X2ZhY3Rvcjt1bmlmb3JtIHZlYzQgdV9zY2FsZTt1bmlmb3JtIGZsb2F0IHVfdmVydGljYWxfZ3JhZGllbnQ7dW5pZm9ybSBsb3dwIGZsb2F0IHVfb3BhY2l0eTt1bmlmb3JtIHZlYzMgdV9saWdodGNvbG9yO3VuaWZvcm0gbG93cCB2ZWMzIHVfbGlnaHRwb3M7dW5pZm9ybSBsb3dwIGZsb2F0IHVfbGlnaHRpbnRlbnNpdHk7YXR0cmlidXRlIHZlYzIgYV9wb3M7YXR0cmlidXRlIHZlYzQgYV9ub3JtYWxfZWQ7dmFyeWluZyB2ZWMyIHZfcG9zX2E7dmFyeWluZyB2ZWMyIHZfcG9zX2I7dmFyeWluZyB2ZWM0IHZfbGlnaHRpbmc7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgYmFzZVxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IGhlaWdodFxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIHZlYzQgcGF0dGVybl9mcm9tXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgdmVjNCBwYXR0ZXJuX3RvXG52b2lkIG1haW4oKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IGJhc2VcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgaGVpZ2h0XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIHZlYzQgcGF0dGVybl9mcm9tXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIHZlYzQgcGF0dGVybl90b1xudmVjMiBwYXR0ZXJuX3RsX2E9cGF0dGVybl9mcm9tLnh5O3ZlYzIgcGF0dGVybl9icl9hPXBhdHRlcm5fZnJvbS56dzt2ZWMyIHBhdHRlcm5fdGxfYj1wYXR0ZXJuX3RvLnh5O3ZlYzIgcGF0dGVybl9icl9iPXBhdHRlcm5fdG8uenc7ZmxvYXQgcGl4ZWxSYXRpbz11X3NjYWxlLng7ZmxvYXQgdGlsZVJhdGlvPXVfc2NhbGUueTtmbG9hdCBmcm9tU2NhbGU9dV9zY2FsZS56O2Zsb2F0IHRvU2NhbGU9dV9zY2FsZS53O3ZlYzMgbm9ybWFsPWFfbm9ybWFsX2VkLnh5ejtmbG9hdCBlZGdlZGlzdGFuY2U9YV9ub3JtYWxfZWQudzt2ZWMyIGRpc3BsYXlfc2l6ZV9hPXZlYzIoKHBhdHRlcm5fYnJfYS54LXBhdHRlcm5fdGxfYS54KS9waXhlbFJhdGlvLChwYXR0ZXJuX2JyX2EueS1wYXR0ZXJuX3RsX2EueSkvcGl4ZWxSYXRpbyk7dmVjMiBkaXNwbGF5X3NpemVfYj12ZWMyKChwYXR0ZXJuX2JyX2IueC1wYXR0ZXJuX3RsX2IueCkvcGl4ZWxSYXRpbywocGF0dGVybl9icl9iLnktcGF0dGVybl90bF9iLnkpL3BpeGVsUmF0aW8pO2Jhc2U9bWF4KDAuMCxiYXNlKTtoZWlnaHQ9bWF4KDAuMCxoZWlnaHQpO2Zsb2F0IHQ9bW9kKG5vcm1hbC54LDIuMCk7ZmxvYXQgej10ID4gMC4wID8gaGVpZ2h0IDogYmFzZTtnbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KGFfcG9zLHosMSk7dmVjMiBwb3M9bm9ybWFsLng9PTEuMCAmJiBub3JtYWwueT09MC4wICYmIG5vcm1hbC56PT0xNjM4NC4wXG4/IGFfcG9zXG46IHZlYzIoZWRnZWRpc3RhbmNlLHoqdV9oZWlnaHRfZmFjdG9yKTt2X3Bvc19hPWdldF9wYXR0ZXJuX3Bvcyh1X3BpeGVsX2Nvb3JkX3VwcGVyLHVfcGl4ZWxfY29vcmRfbG93ZXIsZnJvbVNjYWxlKmRpc3BsYXlfc2l6ZV9hLHRpbGVSYXRpbyxwb3MpO3ZfcG9zX2I9Z2V0X3BhdHRlcm5fcG9zKHVfcGl4ZWxfY29vcmRfdXBwZXIsdV9waXhlbF9jb29yZF9sb3dlcix0b1NjYWxlKmRpc3BsYXlfc2l6ZV9iLHRpbGVSYXRpbyxwb3MpO3ZfbGlnaHRpbmc9dmVjNCgwLjAsMC4wLDAuMCwxLjApO2Zsb2F0IGRpcmVjdGlvbmFsPWNsYW1wKGRvdChub3JtYWwvMTYzODMuMCx1X2xpZ2h0cG9zKSwwLjAsMS4wKTtkaXJlY3Rpb25hbD1taXgoKDEuMC11X2xpZ2h0aW50ZW5zaXR5KSxtYXgoKDAuNSt1X2xpZ2h0aW50ZW5zaXR5KSwxLjApLGRpcmVjdGlvbmFsKTtpZiAobm9ybWFsLnkgIT0wLjApIHtkaXJlY3Rpb25hbCo9KCgxLjAtdV92ZXJ0aWNhbF9ncmFkaWVudCkrKHVfdmVydGljYWxfZ3JhZGllbnQqY2xhbXAoKHQrYmFzZSkqcG93KGhlaWdodC8xNTAuMCwwLjUpLG1peCgwLjcsMC45OCwxLjAtdV9saWdodGludGVuc2l0eSksMS4wKSkpO312X2xpZ2h0aW5nLnJnYis9Y2xhbXAoZGlyZWN0aW9uYWwqdV9saWdodGNvbG9yLG1peCh2ZWMzKDAuMCksdmVjMygwLjMpLDEuMC11X2xpZ2h0Y29sb3IpLHZlYzMoMS4wKSk7dl9saWdodGluZyo9dV9vcGFjaXR5O30iKSx0cj1jcigiI2lmZGVmIEdMX0VTXG5wcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZW5kaWZcbnVuaWZvcm0gc2FtcGxlcjJEIHVfaW1hZ2U7dmFyeWluZyB2ZWMyIHZfcG9zO3VuaWZvcm0gdmVjMiB1X2RpbWVuc2lvbjt1bmlmb3JtIGZsb2F0IHVfem9vbTt1bmlmb3JtIGZsb2F0IHVfbWF4em9vbTtmbG9hdCBnZXRFbGV2YXRpb24odmVjMiBjb29yZCxmbG9hdCBiaWFzKSB7dmVjNCBkYXRhPXRleHR1cmUyRCh1X2ltYWdlLGNvb3JkKSoyNTUuMDtyZXR1cm4gKGRhdGEucitkYXRhLmcqMjU2LjArZGF0YS5iKjI1Ni4wKjI1Ni4wKS80LjA7fXZvaWQgbWFpbigpIHt2ZWMyIGVwc2lsb249MS4wL3VfZGltZW5zaW9uO2Zsb2F0IGE9Z2V0RWxldmF0aW9uKHZfcG9zK3ZlYzIoLWVwc2lsb24ueCwtZXBzaWxvbi55KSwwLjApO2Zsb2F0IGI9Z2V0RWxldmF0aW9uKHZfcG9zK3ZlYzIoMCwtZXBzaWxvbi55KSwwLjApO2Zsb2F0IGM9Z2V0RWxldmF0aW9uKHZfcG9zK3ZlYzIoZXBzaWxvbi54LC1lcHNpbG9uLnkpLDAuMCk7ZmxvYXQgZD1nZXRFbGV2YXRpb24odl9wb3MrdmVjMigtZXBzaWxvbi54LDApLDAuMCk7ZmxvYXQgZT1nZXRFbGV2YXRpb24odl9wb3MsMC4wKTtmbG9hdCBmPWdldEVsZXZhdGlvbih2X3Bvcyt2ZWMyKGVwc2lsb24ueCwwKSwwLjApO2Zsb2F0IGc9Z2V0RWxldmF0aW9uKHZfcG9zK3ZlYzIoLWVwc2lsb24ueCxlcHNpbG9uLnkpLDAuMCk7ZmxvYXQgaD1nZXRFbGV2YXRpb24odl9wb3MrdmVjMigwLGVwc2lsb24ueSksMC4wKTtmbG9hdCBpPWdldEVsZXZhdGlvbih2X3Bvcyt2ZWMyKGVwc2lsb24ueCxlcHNpbG9uLnkpLDAuMCk7ZmxvYXQgZXhhZ2dlcmF0aW9uPXVfem9vbSA8IDIuMCA/IDAuNCA6IHVfem9vbSA8IDQuNSA/IDAuMzUgOiAwLjM7dmVjMiBkZXJpdj12ZWMyKChjK2YrZitpKS0oYStkK2QrZyksKGcraCtoK2kpLShhK2IrYitjKSkvIHBvdygyLjAsKHVfem9vbS11X21heHpvb20pKmV4YWdnZXJhdGlvbisxOS4yNTYyLXVfem9vbSk7Z2xfRnJhZ0NvbG9yPWNsYW1wKHZlYzQoZGVyaXYueC8yLjArMC41LGRlcml2LnkvMi4wKzAuNSwxLjAsMS4wKSwwLjAsMS4wKTtcbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbmdsX0ZyYWdDb2xvcj12ZWM0KDEuMCk7XG4jZW5kaWZcbn0iLCJ1bmlmb3JtIG1hdDQgdV9tYXRyaXg7dW5pZm9ybSB2ZWMyIHVfZGltZW5zaW9uO2F0dHJpYnV0ZSB2ZWMyIGFfcG9zO2F0dHJpYnV0ZSB2ZWMyIGFfdGV4dHVyZV9wb3M7dmFyeWluZyB2ZWMyIHZfcG9zO3ZvaWQgbWFpbigpIHtnbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KGFfcG9zLDAsMSk7aGlnaHAgdmVjMiBlcHNpbG9uPTEuMC91X2RpbWVuc2lvbjtmbG9hdCBzY2FsZT0odV9kaW1lbnNpb24ueC0yLjApL3VfZGltZW5zaW9uLng7dl9wb3M9KGFfdGV4dHVyZV9wb3MvODE5Mi4wKSpzY2FsZStlcHNpbG9uO30iKSxlcj1jcigidW5pZm9ybSBzYW1wbGVyMkQgdV9pbWFnZTt2YXJ5aW5nIHZlYzIgdl9wb3M7dW5pZm9ybSB2ZWMyIHVfbGF0cmFuZ2U7dW5pZm9ybSB2ZWMyIHVfbGlnaHQ7dW5pZm9ybSB2ZWM0IHVfc2hhZG93O3VuaWZvcm0gdmVjNCB1X2hpZ2hsaWdodDt1bmlmb3JtIHZlYzQgdV9hY2NlbnQ7XG4jZGVmaW5lIFBJIDMuMTQxNTkyNjUzNTg5NzkzXG52b2lkIG1haW4oKSB7dmVjNCBwaXhlbD10ZXh0dXJlMkQodV9pbWFnZSx2X3Bvcyk7dmVjMiBkZXJpdj0oKHBpeGVsLnJnKjIuMCktMS4wKTtmbG9hdCBzY2FsZUZhY3Rvcj1jb3MocmFkaWFucygodV9sYXRyYW5nZVswXS11X2xhdHJhbmdlWzFdKSooMS4wLXZfcG9zLnkpK3VfbGF0cmFuZ2VbMV0pKTtmbG9hdCBzbG9wZT1hdGFuKDEuMjUqbGVuZ3RoKGRlcml2KS9zY2FsZUZhY3Rvcik7ZmxvYXQgYXNwZWN0PWRlcml2LnggIT0wLjAgPyBhdGFuKGRlcml2LnksLWRlcml2LngpIDogUEkvMi4wKihkZXJpdi55ID4gMC4wID8gMS4wIDotMS4wKTtmbG9hdCBpbnRlbnNpdHk9dV9saWdodC54O2Zsb2F0IGF6aW11dGg9dV9saWdodC55K1BJO2Zsb2F0IGJhc2U9MS44NzUtaW50ZW5zaXR5KjEuNzU7ZmxvYXQgbWF4VmFsdWU9MC41KlBJO2Zsb2F0IHNjYWxlZFNsb3BlPWludGVuc2l0eSAhPTAuNSA/ICgocG93KGJhc2Usc2xvcGUpLTEuMCkvKHBvdyhiYXNlLG1heFZhbHVlKS0xLjApKSptYXhWYWx1ZSA6IHNsb3BlO2Zsb2F0IGFjY2VudD1jb3Moc2NhbGVkU2xvcGUpO3ZlYzQgYWNjZW50X2NvbG9yPSgxLjAtYWNjZW50KSp1X2FjY2VudCpjbGFtcChpbnRlbnNpdHkqMi4wLDAuMCwxLjApO2Zsb2F0IHNoYWRlPWFicyhtb2QoKGFzcGVjdCthemltdXRoKS9QSSswLjUsMi4wKS0xLjApO3ZlYzQgc2hhZGVfY29sb3I9bWl4KHVfc2hhZG93LHVfaGlnaGxpZ2h0LHNoYWRlKSpzaW4oc2NhbGVkU2xvcGUpKmNsYW1wKGludGVuc2l0eSoyLjAsMC4wLDEuMCk7Z2xfRnJhZ0NvbG9yPWFjY2VudF9jb2xvciooMS4wLXNoYWRlX2NvbG9yLmEpK3NoYWRlX2NvbG9yO1xuI2lmZGVmIE9WRVJEUkFXX0lOU1BFQ1RPUlxuZ2xfRnJhZ0NvbG9yPXZlYzQoMS4wKTtcbiNlbmRpZlxufSIsInVuaWZvcm0gbWF0NCB1X21hdHJpeDthdHRyaWJ1dGUgdmVjMiBhX3BvczthdHRyaWJ1dGUgdmVjMiBhX3RleHR1cmVfcG9zO3ZhcnlpbmcgdmVjMiB2X3Bvczt2b2lkIG1haW4oKSB7Z2xfUG9zaXRpb249dV9tYXRyaXgqdmVjNChhX3BvcywwLDEpO3ZfcG9zPWFfdGV4dHVyZV9wb3MvODE5Mi4wO30iKSxycj1jcigidW5pZm9ybSBsb3dwIGZsb2F0IHVfZGV2aWNlX3BpeGVsX3JhdGlvO3ZhcnlpbmcgdmVjMiB2X3dpZHRoMjt2YXJ5aW5nIHZlYzIgdl9ub3JtYWw7dmFyeWluZyBmbG9hdCB2X2dhbW1hX3NjYWxlO1xuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBoaWdocCB2ZWM0IGNvbG9yXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgYmx1clxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIHZlYzQgY29sb3JcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgYmx1clxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvcGFjaXR5XG5mbG9hdCBkaXN0PWxlbmd0aCh2X25vcm1hbCkqdl93aWR0aDIucztmbG9hdCBibHVyMj0oYmx1cisxLjAvdV9kZXZpY2VfcGl4ZWxfcmF0aW8pKnZfZ2FtbWFfc2NhbGU7ZmxvYXQgYWxwaGE9Y2xhbXAobWluKGRpc3QtKHZfd2lkdGgyLnQtYmx1cjIpLHZfd2lkdGgyLnMtZGlzdCkvYmx1cjIsMC4wLDEuMCk7Z2xfRnJhZ0NvbG9yPWNvbG9yKihhbHBoYSpvcGFjaXR5KTtcbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbmdsX0ZyYWdDb2xvcj12ZWM0KDEuMCk7XG4jZW5kaWZcbn0iLCJcbiNkZWZpbmUgc2NhbGUgMC4wMTU4NzMwMTZcbmF0dHJpYnV0ZSB2ZWMyIGFfcG9zX25vcm1hbDthdHRyaWJ1dGUgdmVjNCBhX2RhdGE7dW5pZm9ybSBtYXQ0IHVfbWF0cml4O3VuaWZvcm0gbWVkaXVtcCBmbG9hdCB1X3JhdGlvO3VuaWZvcm0gdmVjMiB1X3VuaXRzX3RvX3BpeGVsczt1bmlmb3JtIGxvd3AgZmxvYXQgdV9kZXZpY2VfcGl4ZWxfcmF0aW87dmFyeWluZyB2ZWMyIHZfbm9ybWFsO3ZhcnlpbmcgdmVjMiB2X3dpZHRoMjt2YXJ5aW5nIGZsb2F0IHZfZ2FtbWFfc2NhbGU7dmFyeWluZyBoaWdocCBmbG9hdCB2X2xpbmVzb2ZhcjtcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgaGlnaHAgdmVjNCBjb2xvclxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IGJsdXJcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBvcGFjaXR5XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIG1lZGl1bXAgZmxvYXQgZ2Fwd2lkdGhcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBvZmZzZXRcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbWVkaXVtcCBmbG9hdCB3aWR0aFxudm9pZCBtYWluKCkge1xuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgaGlnaHAgdmVjNCBjb2xvclxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBibHVyXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgZmxvYXQgZ2Fwd2lkdGhcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgb2Zmc2V0XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIGZsb2F0IHdpZHRoXG5mbG9hdCBBTlRJQUxJQVNJTkc9MS4wL3VfZGV2aWNlX3BpeGVsX3JhdGlvLzIuMDt2ZWMyIGFfZXh0cnVkZT1hX2RhdGEueHktMTI4LjA7ZmxvYXQgYV9kaXJlY3Rpb249bW9kKGFfZGF0YS56LDQuMCktMS4wO3ZfbGluZXNvZmFyPShmbG9vcihhX2RhdGEuei80LjApK2FfZGF0YS53KjY0LjApKjIuMDt2ZWMyIHBvcz1mbG9vcihhX3Bvc19ub3JtYWwqMC41KTttZWRpdW1wIHZlYzIgbm9ybWFsPWFfcG9zX25vcm1hbC0yLjAqcG9zO25vcm1hbC55PW5vcm1hbC55KjIuMC0xLjA7dl9ub3JtYWw9bm9ybWFsO2dhcHdpZHRoPWdhcHdpZHRoLzIuMDtmbG9hdCBoYWxmd2lkdGg9d2lkdGgvMi4wO29mZnNldD0tMS4wKm9mZnNldDtmbG9hdCBpbnNldD1nYXB3aWR0aCsoZ2Fwd2lkdGggPiAwLjAgPyBBTlRJQUxJQVNJTkcgOiAwLjApO2Zsb2F0IG91dHNldD1nYXB3aWR0aCtoYWxmd2lkdGgqKGdhcHdpZHRoID4gMC4wID8gMi4wIDogMS4wKSsoaGFsZndpZHRoPT0wLjAgPyAwLjAgOiBBTlRJQUxJQVNJTkcpO21lZGl1bXAgdmVjMiBkaXN0PW91dHNldCphX2V4dHJ1ZGUqc2NhbGU7bWVkaXVtcCBmbG9hdCB1PTAuNSphX2RpcmVjdGlvbjttZWRpdW1wIGZsb2F0IHQ9MS4wLWFicyh1KTttZWRpdW1wIHZlYzIgb2Zmc2V0Mj1vZmZzZXQqYV9leHRydWRlKnNjYWxlKm5vcm1hbC55Km1hdDIodCwtdSx1LHQpO3ZlYzQgcHJvamVjdGVkX2V4dHJ1ZGU9dV9tYXRyaXgqdmVjNChkaXN0L3VfcmF0aW8sMC4wLDAuMCk7Z2xfUG9zaXRpb249dV9tYXRyaXgqdmVjNChwb3Mrb2Zmc2V0Mi91X3JhdGlvLDAuMCwxLjApK3Byb2plY3RlZF9leHRydWRlO2Zsb2F0IGV4dHJ1ZGVfbGVuZ3RoX3dpdGhvdXRfcGVyc3BlY3RpdmU9bGVuZ3RoKGRpc3QpO2Zsb2F0IGV4dHJ1ZGVfbGVuZ3RoX3dpdGhfcGVyc3BlY3RpdmU9bGVuZ3RoKHByb2plY3RlZF9leHRydWRlLnh5L2dsX1Bvc2l0aW9uLncqdV91bml0c190b19waXhlbHMpO3ZfZ2FtbWFfc2NhbGU9ZXh0cnVkZV9sZW5ndGhfd2l0aG91dF9wZXJzcGVjdGl2ZS9leHRydWRlX2xlbmd0aF93aXRoX3BlcnNwZWN0aXZlO3Zfd2lkdGgyPXZlYzIob3V0c2V0LGluc2V0KTt9IiksbnI9Y3IoInVuaWZvcm0gbG93cCBmbG9hdCB1X2RldmljZV9waXhlbF9yYXRpbzt1bmlmb3JtIHNhbXBsZXIyRCB1X2ltYWdlO3ZhcnlpbmcgdmVjMiB2X3dpZHRoMjt2YXJ5aW5nIHZlYzIgdl9ub3JtYWw7dmFyeWluZyBmbG9hdCB2X2dhbW1hX3NjYWxlO3ZhcnlpbmcgaGlnaHAgZmxvYXQgdl9saW5lcHJvZ3Jlc3M7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgYmx1clxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgYmx1clxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvcGFjaXR5XG5mbG9hdCBkaXN0PWxlbmd0aCh2X25vcm1hbCkqdl93aWR0aDIucztmbG9hdCBibHVyMj0oYmx1cisxLjAvdV9kZXZpY2VfcGl4ZWxfcmF0aW8pKnZfZ2FtbWFfc2NhbGU7ZmxvYXQgYWxwaGE9Y2xhbXAobWluKGRpc3QtKHZfd2lkdGgyLnQtYmx1cjIpLHZfd2lkdGgyLnMtZGlzdCkvYmx1cjIsMC4wLDEuMCk7dmVjNCBjb2xvcj10ZXh0dXJlMkQodV9pbWFnZSx2ZWMyKHZfbGluZXByb2dyZXNzLDAuNSkpO2dsX0ZyYWdDb2xvcj1jb2xvciooYWxwaGEqb3BhY2l0eSk7XG4jaWZkZWYgT1ZFUkRSQVdfSU5TUEVDVE9SXG5nbF9GcmFnQ29sb3I9dmVjNCgxLjApO1xuI2VuZGlmXG59IiwiXG4jZGVmaW5lIE1BWF9MSU5FX0RJU1RBTkNFIDMyNzY3LjBcbiNkZWZpbmUgc2NhbGUgMC4wMTU4NzMwMTZcbmF0dHJpYnV0ZSB2ZWMyIGFfcG9zX25vcm1hbDthdHRyaWJ1dGUgdmVjNCBhX2RhdGE7dW5pZm9ybSBtYXQ0IHVfbWF0cml4O3VuaWZvcm0gbWVkaXVtcCBmbG9hdCB1X3JhdGlvO3VuaWZvcm0gbG93cCBmbG9hdCB1X2RldmljZV9waXhlbF9yYXRpbzt1bmlmb3JtIHZlYzIgdV91bml0c190b19waXhlbHM7dmFyeWluZyB2ZWMyIHZfbm9ybWFsO3ZhcnlpbmcgdmVjMiB2X3dpZHRoMjt2YXJ5aW5nIGZsb2F0IHZfZ2FtbWFfc2NhbGU7dmFyeWluZyBoaWdocCBmbG9hdCB2X2xpbmVwcm9ncmVzcztcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBibHVyXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBtZWRpdW1wIGZsb2F0IGdhcHdpZHRoXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb2Zmc2V0XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIG1lZGl1bXAgZmxvYXQgd2lkdGhcbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgYmx1clxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvcGFjaXR5XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIGZsb2F0IGdhcHdpZHRoXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9mZnNldFxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCBmbG9hdCB3aWR0aFxuZmxvYXQgQU5USUFMSUFTSU5HPTEuMC91X2RldmljZV9waXhlbF9yYXRpby8yLjA7dmVjMiBhX2V4dHJ1ZGU9YV9kYXRhLnh5LTEyOC4wO2Zsb2F0IGFfZGlyZWN0aW9uPW1vZChhX2RhdGEueiw0LjApLTEuMDt2X2xpbmVwcm9ncmVzcz0oZmxvb3IoYV9kYXRhLnovNC4wKSthX2RhdGEudyo2NC4wKSoyLjAvTUFYX0xJTkVfRElTVEFOQ0U7dmVjMiBwb3M9Zmxvb3IoYV9wb3Nfbm9ybWFsKjAuNSk7bWVkaXVtcCB2ZWMyIG5vcm1hbD1hX3Bvc19ub3JtYWwtMi4wKnBvcztub3JtYWwueT1ub3JtYWwueSoyLjAtMS4wO3Zfbm9ybWFsPW5vcm1hbDtnYXB3aWR0aD1nYXB3aWR0aC8yLjA7ZmxvYXQgaGFsZndpZHRoPXdpZHRoLzIuMDtvZmZzZXQ9LTEuMCpvZmZzZXQ7ZmxvYXQgaW5zZXQ9Z2Fwd2lkdGgrKGdhcHdpZHRoID4gMC4wID8gQU5USUFMSUFTSU5HIDogMC4wKTtmbG9hdCBvdXRzZXQ9Z2Fwd2lkdGgraGFsZndpZHRoKihnYXB3aWR0aCA+IDAuMCA/IDIuMCA6IDEuMCkrKGhhbGZ3aWR0aD09MC4wID8gMC4wIDogQU5USUFMSUFTSU5HKTttZWRpdW1wIHZlYzIgZGlzdD1vdXRzZXQqYV9leHRydWRlKnNjYWxlO21lZGl1bXAgZmxvYXQgdT0wLjUqYV9kaXJlY3Rpb247bWVkaXVtcCBmbG9hdCB0PTEuMC1hYnModSk7bWVkaXVtcCB2ZWMyIG9mZnNldDI9b2Zmc2V0KmFfZXh0cnVkZSpzY2FsZSpub3JtYWwueSptYXQyKHQsLXUsdSx0KTt2ZWM0IHByb2plY3RlZF9leHRydWRlPXVfbWF0cml4KnZlYzQoZGlzdC91X3JhdGlvLDAuMCwwLjApO2dsX1Bvc2l0aW9uPXVfbWF0cml4KnZlYzQocG9zK29mZnNldDIvdV9yYXRpbywwLjAsMS4wKStwcm9qZWN0ZWRfZXh0cnVkZTtmbG9hdCBleHRydWRlX2xlbmd0aF93aXRob3V0X3BlcnNwZWN0aXZlPWxlbmd0aChkaXN0KTtmbG9hdCBleHRydWRlX2xlbmd0aF93aXRoX3BlcnNwZWN0aXZlPWxlbmd0aChwcm9qZWN0ZWRfZXh0cnVkZS54eS9nbF9Qb3NpdGlvbi53KnVfdW5pdHNfdG9fcGl4ZWxzKTt2X2dhbW1hX3NjYWxlPWV4dHJ1ZGVfbGVuZ3RoX3dpdGhvdXRfcGVyc3BlY3RpdmUvZXh0cnVkZV9sZW5ndGhfd2l0aF9wZXJzcGVjdGl2ZTt2X3dpZHRoMj12ZWMyKG91dHNldCxpbnNldCk7fSIpLGFyPWNyKCJ1bmlmb3JtIGxvd3AgZmxvYXQgdV9kZXZpY2VfcGl4ZWxfcmF0aW87dW5pZm9ybSB2ZWMyIHVfdGV4c2l6ZTt1bmlmb3JtIGZsb2F0IHVfZmFkZTt1bmlmb3JtIG1lZGl1bXAgdmVjNCB1X3NjYWxlO3VuaWZvcm0gc2FtcGxlcjJEIHVfaW1hZ2U7dmFyeWluZyB2ZWMyIHZfbm9ybWFsO3ZhcnlpbmcgdmVjMiB2X3dpZHRoMjt2YXJ5aW5nIGZsb2F0IHZfbGluZXNvZmFyO3ZhcnlpbmcgZmxvYXQgdl9nYW1tYV9zY2FsZTtcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCB2ZWM0IHBhdHRlcm5fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIHZlYzQgcGF0dGVybl90b1xuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IGJsdXJcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBvcGFjaXR5XG52b2lkIG1haW4oKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIHZlYzQgcGF0dGVybl9mcm9tXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIHZlYzQgcGF0dGVybl90b1xuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBibHVyXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcbnZlYzIgcGF0dGVybl90bF9hPXBhdHRlcm5fZnJvbS54eTt2ZWMyIHBhdHRlcm5fYnJfYT1wYXR0ZXJuX2Zyb20uenc7dmVjMiBwYXR0ZXJuX3RsX2I9cGF0dGVybl90by54eTt2ZWMyIHBhdHRlcm5fYnJfYj1wYXR0ZXJuX3RvLnp3O2Zsb2F0IHBpeGVsUmF0aW89dV9zY2FsZS54O2Zsb2F0IHRpbGVab29tUmF0aW89dV9zY2FsZS55O2Zsb2F0IGZyb21TY2FsZT11X3NjYWxlLno7ZmxvYXQgdG9TY2FsZT11X3NjYWxlLnc7dmVjMiBkaXNwbGF5X3NpemVfYT12ZWMyKChwYXR0ZXJuX2JyX2EueC1wYXR0ZXJuX3RsX2EueCkvcGl4ZWxSYXRpbywocGF0dGVybl9icl9hLnktcGF0dGVybl90bF9hLnkpL3BpeGVsUmF0aW8pO3ZlYzIgZGlzcGxheV9zaXplX2I9dmVjMigocGF0dGVybl9icl9iLngtcGF0dGVybl90bF9iLngpL3BpeGVsUmF0aW8sKHBhdHRlcm5fYnJfYi55LXBhdHRlcm5fdGxfYi55KS9waXhlbFJhdGlvKTt2ZWMyIHBhdHRlcm5fc2l6ZV9hPXZlYzIoZGlzcGxheV9zaXplX2EueCpmcm9tU2NhbGUvdGlsZVpvb21SYXRpbyxkaXNwbGF5X3NpemVfYS55KTt2ZWMyIHBhdHRlcm5fc2l6ZV9iPXZlYzIoZGlzcGxheV9zaXplX2IueCp0b1NjYWxlL3RpbGVab29tUmF0aW8sZGlzcGxheV9zaXplX2IueSk7ZmxvYXQgZGlzdD1sZW5ndGgodl9ub3JtYWwpKnZfd2lkdGgyLnM7ZmxvYXQgYmx1cjI9KGJsdXIrMS4wL3VfZGV2aWNlX3BpeGVsX3JhdGlvKSp2X2dhbW1hX3NjYWxlO2Zsb2F0IGFscGhhPWNsYW1wKG1pbihkaXN0LSh2X3dpZHRoMi50LWJsdXIyKSx2X3dpZHRoMi5zLWRpc3QpL2JsdXIyLDAuMCwxLjApO2Zsb2F0IHhfYT1tb2Qodl9saW5lc29mYXIvcGF0dGVybl9zaXplX2EueCwxLjApO2Zsb2F0IHhfYj1tb2Qodl9saW5lc29mYXIvcGF0dGVybl9zaXplX2IueCwxLjApO2Zsb2F0IHlfYT0wLjUrKHZfbm9ybWFsLnkqY2xhbXAodl93aWR0aDIucywwLjAsKHBhdHRlcm5fc2l6ZV9hLnkrMi4wKS8yLjApL3BhdHRlcm5fc2l6ZV9hLnkpO2Zsb2F0IHlfYj0wLjUrKHZfbm9ybWFsLnkqY2xhbXAodl93aWR0aDIucywwLjAsKHBhdHRlcm5fc2l6ZV9iLnkrMi4wKS8yLjApL3BhdHRlcm5fc2l6ZV9iLnkpO3ZlYzIgcG9zX2E9bWl4KHBhdHRlcm5fdGxfYS91X3RleHNpemUscGF0dGVybl9icl9hL3VfdGV4c2l6ZSx2ZWMyKHhfYSx5X2EpKTt2ZWMyIHBvc19iPW1peChwYXR0ZXJuX3RsX2IvdV90ZXhzaXplLHBhdHRlcm5fYnJfYi91X3RleHNpemUsdmVjMih4X2IseV9iKSk7dmVjNCBjb2xvcj1taXgodGV4dHVyZTJEKHVfaW1hZ2UscG9zX2EpLHRleHR1cmUyRCh1X2ltYWdlLHBvc19iKSx1X2ZhZGUpO2dsX0ZyYWdDb2xvcj1jb2xvciphbHBoYSpvcGFjaXR5O1xuI2lmZGVmIE9WRVJEUkFXX0lOU1BFQ1RPUlxuZ2xfRnJhZ0NvbG9yPXZlYzQoMS4wKTtcbiNlbmRpZlxufSIsIlxuI2RlZmluZSBzY2FsZSAwLjAxNTg3MzAxNlxuI2RlZmluZSBMSU5FX0RJU1RBTkNFX1NDQUxFIDIuMFxuYXR0cmlidXRlIHZlYzIgYV9wb3Nfbm9ybWFsO2F0dHJpYnV0ZSB2ZWM0IGFfZGF0YTt1bmlmb3JtIG1hdDQgdV9tYXRyaXg7dW5pZm9ybSB2ZWMyIHVfdW5pdHNfdG9fcGl4ZWxzO3VuaWZvcm0gbWVkaXVtcCBmbG9hdCB1X3JhdGlvO3VuaWZvcm0gbG93cCBmbG9hdCB1X2RldmljZV9waXhlbF9yYXRpbzt2YXJ5aW5nIHZlYzIgdl9ub3JtYWw7dmFyeWluZyB2ZWMyIHZfd2lkdGgyO3ZhcnlpbmcgZmxvYXQgdl9saW5lc29mYXI7dmFyeWluZyBmbG9hdCB2X2dhbW1hX3NjYWxlO1xuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IGJsdXJcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBvcGFjaXR5XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb2Zmc2V0XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIG1lZGl1bXAgZmxvYXQgZ2Fwd2lkdGhcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbWVkaXVtcCBmbG9hdCB3aWR0aFxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIHZlYzQgcGF0dGVybl9mcm9tXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgdmVjNCBwYXR0ZXJuX3RvXG52b2lkIG1haW4oKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IGJsdXJcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvZmZzZXRcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgZmxvYXQgZ2Fwd2lkdGhcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgZmxvYXQgd2lkdGhcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgdmVjNCBwYXR0ZXJuX2Zyb21cbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgdmVjNCBwYXR0ZXJuX3RvXG5mbG9hdCBBTlRJQUxJQVNJTkc9MS4wL3VfZGV2aWNlX3BpeGVsX3JhdGlvLzIuMDt2ZWMyIGFfZXh0cnVkZT1hX2RhdGEueHktMTI4LjA7ZmxvYXQgYV9kaXJlY3Rpb249bW9kKGFfZGF0YS56LDQuMCktMS4wO2Zsb2F0IGFfbGluZXNvZmFyPShmbG9vcihhX2RhdGEuei80LjApK2FfZGF0YS53KjY0LjApKkxJTkVfRElTVEFOQ0VfU0NBTEU7dmVjMiBwb3M9Zmxvb3IoYV9wb3Nfbm9ybWFsKjAuNSk7bWVkaXVtcCB2ZWMyIG5vcm1hbD1hX3Bvc19ub3JtYWwtMi4wKnBvcztub3JtYWwueT1ub3JtYWwueSoyLjAtMS4wO3Zfbm9ybWFsPW5vcm1hbDtnYXB3aWR0aD1nYXB3aWR0aC8yLjA7ZmxvYXQgaGFsZndpZHRoPXdpZHRoLzIuMDtvZmZzZXQ9LTEuMCpvZmZzZXQ7ZmxvYXQgaW5zZXQ9Z2Fwd2lkdGgrKGdhcHdpZHRoID4gMC4wID8gQU5USUFMSUFTSU5HIDogMC4wKTtmbG9hdCBvdXRzZXQ9Z2Fwd2lkdGgraGFsZndpZHRoKihnYXB3aWR0aCA+IDAuMCA/IDIuMCA6IDEuMCkrKGhhbGZ3aWR0aD09MC4wID8gMC4wIDogQU5USUFMSUFTSU5HKTttZWRpdW1wIHZlYzIgZGlzdD1vdXRzZXQqYV9leHRydWRlKnNjYWxlO21lZGl1bXAgZmxvYXQgdT0wLjUqYV9kaXJlY3Rpb247bWVkaXVtcCBmbG9hdCB0PTEuMC1hYnModSk7bWVkaXVtcCB2ZWMyIG9mZnNldDI9b2Zmc2V0KmFfZXh0cnVkZSpzY2FsZSpub3JtYWwueSptYXQyKHQsLXUsdSx0KTt2ZWM0IHByb2plY3RlZF9leHRydWRlPXVfbWF0cml4KnZlYzQoZGlzdC91X3JhdGlvLDAuMCwwLjApO2dsX1Bvc2l0aW9uPXVfbWF0cml4KnZlYzQocG9zK29mZnNldDIvdV9yYXRpbywwLjAsMS4wKStwcm9qZWN0ZWRfZXh0cnVkZTtmbG9hdCBleHRydWRlX2xlbmd0aF93aXRob3V0X3BlcnNwZWN0aXZlPWxlbmd0aChkaXN0KTtmbG9hdCBleHRydWRlX2xlbmd0aF93aXRoX3BlcnNwZWN0aXZlPWxlbmd0aChwcm9qZWN0ZWRfZXh0cnVkZS54eS9nbF9Qb3NpdGlvbi53KnVfdW5pdHNfdG9fcGl4ZWxzKTt2X2dhbW1hX3NjYWxlPWV4dHJ1ZGVfbGVuZ3RoX3dpdGhvdXRfcGVyc3BlY3RpdmUvZXh0cnVkZV9sZW5ndGhfd2l0aF9wZXJzcGVjdGl2ZTt2X2xpbmVzb2Zhcj1hX2xpbmVzb2Zhcjt2X3dpZHRoMj12ZWMyKG91dHNldCxpbnNldCk7fSIpLGlyPWNyKCJ1bmlmb3JtIGxvd3AgZmxvYXQgdV9kZXZpY2VfcGl4ZWxfcmF0aW87dW5pZm9ybSBzYW1wbGVyMkQgdV9pbWFnZTt1bmlmb3JtIGZsb2F0IHVfc2RmZ2FtbWE7dW5pZm9ybSBmbG9hdCB1X21peDt2YXJ5aW5nIHZlYzIgdl9ub3JtYWw7dmFyeWluZyB2ZWMyIHZfd2lkdGgyO3ZhcnlpbmcgdmVjMiB2X3RleF9hO3ZhcnlpbmcgdmVjMiB2X3RleF9iO3ZhcnlpbmcgZmxvYXQgdl9nYW1tYV9zY2FsZTtcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgaGlnaHAgdmVjNCBjb2xvclxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IGJsdXJcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBvcGFjaXR5XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIG1lZGl1bXAgZmxvYXQgd2lkdGhcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBmbG9vcndpZHRoXG52b2lkIG1haW4oKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBoaWdocCB2ZWM0IGNvbG9yXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IGJsdXJcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCBmbG9hdCB3aWR0aFxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBmbG9vcndpZHRoXG5mbG9hdCBkaXN0PWxlbmd0aCh2X25vcm1hbCkqdl93aWR0aDIucztmbG9hdCBibHVyMj0oYmx1cisxLjAvdV9kZXZpY2VfcGl4ZWxfcmF0aW8pKnZfZ2FtbWFfc2NhbGU7ZmxvYXQgYWxwaGE9Y2xhbXAobWluKGRpc3QtKHZfd2lkdGgyLnQtYmx1cjIpLHZfd2lkdGgyLnMtZGlzdCkvYmx1cjIsMC4wLDEuMCk7ZmxvYXQgc2RmZGlzdF9hPXRleHR1cmUyRCh1X2ltYWdlLHZfdGV4X2EpLmE7ZmxvYXQgc2RmZGlzdF9iPXRleHR1cmUyRCh1X2ltYWdlLHZfdGV4X2IpLmE7ZmxvYXQgc2RmZGlzdD1taXgoc2RmZGlzdF9hLHNkZmRpc3RfYix1X21peCk7YWxwaGEqPXNtb290aHN0ZXAoMC41LXVfc2RmZ2FtbWEvZmxvb3J3aWR0aCwwLjUrdV9zZGZnYW1tYS9mbG9vcndpZHRoLHNkZmRpc3QpO2dsX0ZyYWdDb2xvcj1jb2xvciooYWxwaGEqb3BhY2l0eSk7XG4jaWZkZWYgT1ZFUkRSQVdfSU5TUEVDVE9SXG5nbF9GcmFnQ29sb3I9dmVjNCgxLjApO1xuI2VuZGlmXG59IiwiXG4jZGVmaW5lIHNjYWxlIDAuMDE1ODczMDE2XG4jZGVmaW5lIExJTkVfRElTVEFOQ0VfU0NBTEUgMi4wXG5hdHRyaWJ1dGUgdmVjMiBhX3Bvc19ub3JtYWw7YXR0cmlidXRlIHZlYzQgYV9kYXRhO3VuaWZvcm0gbWF0NCB1X21hdHJpeDt1bmlmb3JtIG1lZGl1bXAgZmxvYXQgdV9yYXRpbzt1bmlmb3JtIGxvd3AgZmxvYXQgdV9kZXZpY2VfcGl4ZWxfcmF0aW87dW5pZm9ybSB2ZWMyIHVfcGF0dGVybnNjYWxlX2E7dW5pZm9ybSBmbG9hdCB1X3RleF95X2E7dW5pZm9ybSB2ZWMyIHVfcGF0dGVybnNjYWxlX2I7dW5pZm9ybSBmbG9hdCB1X3RleF95X2I7dW5pZm9ybSB2ZWMyIHVfdW5pdHNfdG9fcGl4ZWxzO3ZhcnlpbmcgdmVjMiB2X25vcm1hbDt2YXJ5aW5nIHZlYzIgdl93aWR0aDI7dmFyeWluZyB2ZWMyIHZfdGV4X2E7dmFyeWluZyB2ZWMyIHZfdGV4X2I7dmFyeWluZyBmbG9hdCB2X2dhbW1hX3NjYWxlO1xuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBoaWdocCB2ZWM0IGNvbG9yXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgYmx1clxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbWVkaXVtcCBmbG9hdCBnYXB3aWR0aFxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9mZnNldFxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBtZWRpdW1wIGZsb2F0IHdpZHRoXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgZmxvb3J3aWR0aFxudm9pZCBtYWluKCkge1xuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgaGlnaHAgdmVjNCBjb2xvclxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBibHVyXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgZmxvYXQgZ2Fwd2lkdGhcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgb2Zmc2V0XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIGZsb2F0IHdpZHRoXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IGZsb29yd2lkdGhcbmZsb2F0IEFOVElBTElBU0lORz0xLjAvdV9kZXZpY2VfcGl4ZWxfcmF0aW8vMi4wO3ZlYzIgYV9leHRydWRlPWFfZGF0YS54eS0xMjguMDtmbG9hdCBhX2RpcmVjdGlvbj1tb2QoYV9kYXRhLnosNC4wKS0xLjA7ZmxvYXQgYV9saW5lc29mYXI9KGZsb29yKGFfZGF0YS56LzQuMCkrYV9kYXRhLncqNjQuMCkqTElORV9ESVNUQU5DRV9TQ0FMRTt2ZWMyIHBvcz1mbG9vcihhX3Bvc19ub3JtYWwqMC41KTttZWRpdW1wIHZlYzIgbm9ybWFsPWFfcG9zX25vcm1hbC0yLjAqcG9zO25vcm1hbC55PW5vcm1hbC55KjIuMC0xLjA7dl9ub3JtYWw9bm9ybWFsO2dhcHdpZHRoPWdhcHdpZHRoLzIuMDtmbG9hdCBoYWxmd2lkdGg9d2lkdGgvMi4wO29mZnNldD0tMS4wKm9mZnNldDtmbG9hdCBpbnNldD1nYXB3aWR0aCsoZ2Fwd2lkdGggPiAwLjAgPyBBTlRJQUxJQVNJTkcgOiAwLjApO2Zsb2F0IG91dHNldD1nYXB3aWR0aCtoYWxmd2lkdGgqKGdhcHdpZHRoID4gMC4wID8gMi4wIDogMS4wKSsoaGFsZndpZHRoPT0wLjAgPyAwLjAgOiBBTlRJQUxJQVNJTkcpO21lZGl1bXAgdmVjMiBkaXN0PW91dHNldCphX2V4dHJ1ZGUqc2NhbGU7bWVkaXVtcCBmbG9hdCB1PTAuNSphX2RpcmVjdGlvbjttZWRpdW1wIGZsb2F0IHQ9MS4wLWFicyh1KTttZWRpdW1wIHZlYzIgb2Zmc2V0Mj1vZmZzZXQqYV9leHRydWRlKnNjYWxlKm5vcm1hbC55Km1hdDIodCwtdSx1LHQpO3ZlYzQgcHJvamVjdGVkX2V4dHJ1ZGU9dV9tYXRyaXgqdmVjNChkaXN0L3VfcmF0aW8sMC4wLDAuMCk7Z2xfUG9zaXRpb249dV9tYXRyaXgqdmVjNChwb3Mrb2Zmc2V0Mi91X3JhdGlvLDAuMCwxLjApK3Byb2plY3RlZF9leHRydWRlO2Zsb2F0IGV4dHJ1ZGVfbGVuZ3RoX3dpdGhvdXRfcGVyc3BlY3RpdmU9bGVuZ3RoKGRpc3QpO2Zsb2F0IGV4dHJ1ZGVfbGVuZ3RoX3dpdGhfcGVyc3BlY3RpdmU9bGVuZ3RoKHByb2plY3RlZF9leHRydWRlLnh5L2dsX1Bvc2l0aW9uLncqdV91bml0c190b19waXhlbHMpO3ZfZ2FtbWFfc2NhbGU9ZXh0cnVkZV9sZW5ndGhfd2l0aG91dF9wZXJzcGVjdGl2ZS9leHRydWRlX2xlbmd0aF93aXRoX3BlcnNwZWN0aXZlO3ZfdGV4X2E9dmVjMihhX2xpbmVzb2Zhcip1X3BhdHRlcm5zY2FsZV9hLngvZmxvb3J3aWR0aCxub3JtYWwueSp1X3BhdHRlcm5zY2FsZV9hLnkrdV90ZXhfeV9hKTt2X3RleF9iPXZlYzIoYV9saW5lc29mYXIqdV9wYXR0ZXJuc2NhbGVfYi54L2Zsb29yd2lkdGgsbm9ybWFsLnkqdV9wYXR0ZXJuc2NhbGVfYi55K3VfdGV4X3lfYik7dl93aWR0aDI9dmVjMihvdXRzZXQsaW5zZXQpO30iKSxvcj1jcigidW5pZm9ybSBmbG9hdCB1X2ZhZGVfdDt1bmlmb3JtIGZsb2F0IHVfb3BhY2l0eTt1bmlmb3JtIHNhbXBsZXIyRCB1X2ltYWdlMDt1bmlmb3JtIHNhbXBsZXIyRCB1X2ltYWdlMTt2YXJ5aW5nIHZlYzIgdl9wb3MwO3ZhcnlpbmcgdmVjMiB2X3BvczE7dW5pZm9ybSBmbG9hdCB1X2JyaWdodG5lc3NfbG93O3VuaWZvcm0gZmxvYXQgdV9icmlnaHRuZXNzX2hpZ2g7dW5pZm9ybSBmbG9hdCB1X3NhdHVyYXRpb25fZmFjdG9yO3VuaWZvcm0gZmxvYXQgdV9jb250cmFzdF9mYWN0b3I7dW5pZm9ybSB2ZWMzIHVfc3Bpbl93ZWlnaHRzO3ZvaWQgbWFpbigpIHt2ZWM0IGNvbG9yMD10ZXh0dXJlMkQodV9pbWFnZTAsdl9wb3MwKTt2ZWM0IGNvbG9yMT10ZXh0dXJlMkQodV9pbWFnZTEsdl9wb3MxKTtpZiAoY29sb3IwLmEgPiAwLjApIHtjb2xvcjAucmdiPWNvbG9yMC5yZ2IvY29sb3IwLmE7fWlmIChjb2xvcjEuYSA+IDAuMCkge2NvbG9yMS5yZ2I9Y29sb3IxLnJnYi9jb2xvcjEuYTt9dmVjNCBjb2xvcj1taXgoY29sb3IwLGNvbG9yMSx1X2ZhZGVfdCk7Y29sb3IuYSo9dV9vcGFjaXR5O3ZlYzMgcmdiPWNvbG9yLnJnYjtyZ2I9dmVjMyhkb3QocmdiLHVfc3Bpbl93ZWlnaHRzLnh5eiksZG90KHJnYix1X3NwaW5fd2VpZ2h0cy56eHkpLGRvdChyZ2IsdV9zcGluX3dlaWdodHMueXp4KSk7ZmxvYXQgYXZlcmFnZT0oY29sb3Iucitjb2xvci5nK2NvbG9yLmIpLzMuMDtyZ2IrPShhdmVyYWdlLXJnYikqdV9zYXR1cmF0aW9uX2ZhY3RvcjtyZ2I9KHJnYi0wLjUpKnVfY29udHJhc3RfZmFjdG9yKzAuNTt2ZWMzIHVfaGlnaF92ZWM9dmVjMyh1X2JyaWdodG5lc3NfbG93LHVfYnJpZ2h0bmVzc19sb3csdV9icmlnaHRuZXNzX2xvdyk7dmVjMyB1X2xvd192ZWM9dmVjMyh1X2JyaWdodG5lc3NfaGlnaCx1X2JyaWdodG5lc3NfaGlnaCx1X2JyaWdodG5lc3NfaGlnaCk7Z2xfRnJhZ0NvbG9yPXZlYzQobWl4KHVfaGlnaF92ZWMsdV9sb3dfdmVjLHJnYikqY29sb3IuYSxjb2xvci5hKTtcbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbmdsX0ZyYWdDb2xvcj12ZWM0KDEuMCk7XG4jZW5kaWZcbn0iLCJ1bmlmb3JtIG1hdDQgdV9tYXRyaXg7dW5pZm9ybSB2ZWMyIHVfdGxfcGFyZW50O3VuaWZvcm0gZmxvYXQgdV9zY2FsZV9wYXJlbnQ7dW5pZm9ybSBmbG9hdCB1X2J1ZmZlcl9zY2FsZTthdHRyaWJ1dGUgdmVjMiBhX3BvczthdHRyaWJ1dGUgdmVjMiBhX3RleHR1cmVfcG9zO3ZhcnlpbmcgdmVjMiB2X3BvczA7dmFyeWluZyB2ZWMyIHZfcG9zMTt2b2lkIG1haW4oKSB7Z2xfUG9zaXRpb249dV9tYXRyaXgqdmVjNChhX3BvcywwLDEpO3ZfcG9zMD0oKChhX3RleHR1cmVfcG9zLzgxOTIuMCktMC41KS91X2J1ZmZlcl9zY2FsZSApKzAuNTt2X3BvczE9KHZfcG9zMCp1X3NjYWxlX3BhcmVudCkrdV90bF9wYXJlbnQ7fSIpLHNyPWNyKCJ1bmlmb3JtIHNhbXBsZXIyRCB1X3RleHR1cmU7dmFyeWluZyB2ZWMyIHZfdGV4O3ZhcnlpbmcgZmxvYXQgdl9mYWRlX29wYWNpdHk7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb3BhY2l0eVxudm9pZCBtYWluKCkge1xuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvcGFjaXR5XG5sb3dwIGZsb2F0IGFscGhhPW9wYWNpdHkqdl9mYWRlX29wYWNpdHk7Z2xfRnJhZ0NvbG9yPXRleHR1cmUyRCh1X3RleHR1cmUsdl90ZXgpKmFscGhhO1xuI2lmZGVmIE9WRVJEUkFXX0lOU1BFQ1RPUlxuZ2xfRnJhZ0NvbG9yPXZlYzQoMS4wKTtcbiNlbmRpZlxufSIsImNvbnN0IGZsb2F0IFBJPTMuMTQxNTkyNjUzNTg5NzkzO2F0dHJpYnV0ZSB2ZWM0IGFfcG9zX29mZnNldDthdHRyaWJ1dGUgdmVjNCBhX2RhdGE7YXR0cmlidXRlIHZlYzMgYV9wcm9qZWN0ZWRfcG9zO2F0dHJpYnV0ZSBmbG9hdCBhX2ZhZGVfb3BhY2l0eTt1bmlmb3JtIGJvb2wgdV9pc19zaXplX3pvb21fY29uc3RhbnQ7dW5pZm9ybSBib29sIHVfaXNfc2l6ZV9mZWF0dXJlX2NvbnN0YW50O3VuaWZvcm0gaGlnaHAgZmxvYXQgdV9zaXplX3Q7dW5pZm9ybSBoaWdocCBmbG9hdCB1X3NpemU7dW5pZm9ybSBoaWdocCBmbG9hdCB1X2NhbWVyYV90b19jZW50ZXJfZGlzdGFuY2U7dW5pZm9ybSBoaWdocCBmbG9hdCB1X3BpdGNoO3VuaWZvcm0gYm9vbCB1X3JvdGF0ZV9zeW1ib2w7dW5pZm9ybSBoaWdocCBmbG9hdCB1X2FzcGVjdF9yYXRpbzt1bmlmb3JtIGZsb2F0IHVfZmFkZV9jaGFuZ2U7dW5pZm9ybSBtYXQ0IHVfbWF0cml4O3VuaWZvcm0gbWF0NCB1X2xhYmVsX3BsYW5lX21hdHJpeDt1bmlmb3JtIG1hdDQgdV9jb29yZF9tYXRyaXg7dW5pZm9ybSBib29sIHVfaXNfdGV4dDt1bmlmb3JtIGJvb2wgdV9waXRjaF93aXRoX21hcDt1bmlmb3JtIHZlYzIgdV90ZXhzaXplO3ZhcnlpbmcgdmVjMiB2X3RleDt2YXJ5aW5nIGZsb2F0IHZfZmFkZV9vcGFjaXR5O1xuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgb3BhY2l0eVxudmVjMiBhX3Bvcz1hX3Bvc19vZmZzZXQueHk7dmVjMiBhX29mZnNldD1hX3Bvc19vZmZzZXQuenc7dmVjMiBhX3RleD1hX2RhdGEueHk7dmVjMiBhX3NpemU9YV9kYXRhLnp3O2hpZ2hwIGZsb2F0IHNlZ21lbnRfYW5nbGU9LWFfcHJvamVjdGVkX3Bvc1syXTtmbG9hdCBzaXplO2lmICghdV9pc19zaXplX3pvb21fY29uc3RhbnQgJiYgIXVfaXNfc2l6ZV9mZWF0dXJlX2NvbnN0YW50KSB7c2l6ZT1taXgoYV9zaXplWzBdLGFfc2l6ZVsxXSx1X3NpemVfdCkvMjU2LjA7fSBlbHNlIGlmICh1X2lzX3NpemVfem9vbV9jb25zdGFudCAmJiAhdV9pc19zaXplX2ZlYXR1cmVfY29uc3RhbnQpIHtzaXplPWFfc2l6ZVswXS8yNTYuMDt9IGVsc2UgaWYgKCF1X2lzX3NpemVfem9vbV9jb25zdGFudCAmJiB1X2lzX3NpemVfZmVhdHVyZV9jb25zdGFudCkge3NpemU9dV9zaXplO30gZWxzZSB7c2l6ZT11X3NpemU7fXZlYzQgcHJvamVjdGVkUG9pbnQ9dV9tYXRyaXgqdmVjNChhX3BvcywwLDEpO2hpZ2hwIGZsb2F0IGNhbWVyYV90b19hbmNob3JfZGlzdGFuY2U9cHJvamVjdGVkUG9pbnQudztoaWdocCBmbG9hdCBkaXN0YW5jZV9yYXRpbz11X3BpdGNoX3dpdGhfbWFwID9cbmNhbWVyYV90b19hbmNob3JfZGlzdGFuY2UvdV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlIDpcbnVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZS9jYW1lcmFfdG9fYW5jaG9yX2Rpc3RhbmNlO2hpZ2hwIGZsb2F0IHBlcnNwZWN0aXZlX3JhdGlvPWNsYW1wKDAuNSswLjUqZGlzdGFuY2VfcmF0aW8sMC4wLDQuMCk7c2l6ZSo9cGVyc3BlY3RpdmVfcmF0aW87ZmxvYXQgZm9udFNjYWxlPXVfaXNfdGV4dCA/IHNpemUvMjQuMCA6IHNpemU7aGlnaHAgZmxvYXQgc3ltYm9sX3JvdGF0aW9uPTAuMDtpZiAodV9yb3RhdGVfc3ltYm9sKSB7dmVjNCBvZmZzZXRQcm9qZWN0ZWRQb2ludD11X21hdHJpeCp2ZWM0KGFfcG9zK3ZlYzIoMSwwKSwwLDEpO3ZlYzIgYT1wcm9qZWN0ZWRQb2ludC54eS9wcm9qZWN0ZWRQb2ludC53O3ZlYzIgYj1vZmZzZXRQcm9qZWN0ZWRQb2ludC54eS9vZmZzZXRQcm9qZWN0ZWRQb2ludC53O3N5bWJvbF9yb3RhdGlvbj1hdGFuKChiLnktYS55KS91X2FzcGVjdF9yYXRpbyxiLngtYS54KTt9aGlnaHAgZmxvYXQgYW5nbGVfc2luPXNpbihzZWdtZW50X2FuZ2xlK3N5bWJvbF9yb3RhdGlvbik7aGlnaHAgZmxvYXQgYW5nbGVfY29zPWNvcyhzZWdtZW50X2FuZ2xlK3N5bWJvbF9yb3RhdGlvbik7bWF0MiByb3RhdGlvbl9tYXRyaXg9bWF0MihhbmdsZV9jb3MsLTEuMCphbmdsZV9zaW4sYW5nbGVfc2luLGFuZ2xlX2Nvcyk7dmVjNCBwcm9qZWN0ZWRfcG9zPXVfbGFiZWxfcGxhbmVfbWF0cml4KnZlYzQoYV9wcm9qZWN0ZWRfcG9zLnh5LDAuMCwxLjApO2dsX1Bvc2l0aW9uPXVfY29vcmRfbWF0cml4KnZlYzQocHJvamVjdGVkX3Bvcy54eS9wcm9qZWN0ZWRfcG9zLncrcm90YXRpb25fbWF0cml4KihhX29mZnNldC8zMi4wKmZvbnRTY2FsZSksMC4wLDEuMCk7dl90ZXg9YV90ZXgvdV90ZXhzaXplO3ZlYzIgZmFkZV9vcGFjaXR5PXVucGFja19vcGFjaXR5KGFfZmFkZV9vcGFjaXR5KTtmbG9hdCBmYWRlX2NoYW5nZT1mYWRlX29wYWNpdHlbMV0gPiAwLjUgPyB1X2ZhZGVfY2hhbmdlIDotdV9mYWRlX2NoYW5nZTt2X2ZhZGVfb3BhY2l0eT1tYXgoMC4wLG1pbigxLjAsZmFkZV9vcGFjaXR5WzBdK2ZhZGVfY2hhbmdlKSk7fSIpLGxyPWNyKCIjZGVmaW5lIFNERl9QWCA4LjBcbnVuaWZvcm0gYm9vbCB1X2lzX2hhbG87dW5pZm9ybSBzYW1wbGVyMkQgdV90ZXh0dXJlO3VuaWZvcm0gaGlnaHAgZmxvYXQgdV9nYW1tYV9zY2FsZTt1bmlmb3JtIGxvd3AgZmxvYXQgdV9kZXZpY2VfcGl4ZWxfcmF0aW87dW5pZm9ybSBib29sIHVfaXNfdGV4dDt2YXJ5aW5nIHZlYzIgdl9kYXRhMDt2YXJ5aW5nIHZlYzMgdl9kYXRhMTtcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgaGlnaHAgdmVjNCBmaWxsX2NvbG9yXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGhpZ2hwIHZlYzQgaGFsb19jb2xvclxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBoYWxvX3dpZHRoXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgaGFsb19ibHVyXG52b2lkIG1haW4oKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBoaWdocCB2ZWM0IGZpbGxfY29sb3JcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIHZlYzQgaGFsb19jb2xvclxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvcGFjaXR5XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IGhhbG9fd2lkdGhcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgaGFsb19ibHVyXG5mbG9hdCBFREdFX0dBTU1BPTAuMTA1L3VfZGV2aWNlX3BpeGVsX3JhdGlvO3ZlYzIgdGV4PXZfZGF0YTAueHk7ZmxvYXQgZ2FtbWFfc2NhbGU9dl9kYXRhMS54O2Zsb2F0IHNpemU9dl9kYXRhMS55O2Zsb2F0IGZhZGVfb3BhY2l0eT12X2RhdGExWzJdO2Zsb2F0IGZvbnRTY2FsZT11X2lzX3RleHQgPyBzaXplLzI0LjAgOiBzaXplO2xvd3AgdmVjNCBjb2xvcj1maWxsX2NvbG9yO2hpZ2hwIGZsb2F0IGdhbW1hPUVER0VfR0FNTUEvKGZvbnRTY2FsZSp1X2dhbW1hX3NjYWxlKTtsb3dwIGZsb2F0IGJ1ZmY9KDI1Ni4wLTY0LjApLzI1Ni4wO2lmICh1X2lzX2hhbG8pIHtjb2xvcj1oYWxvX2NvbG9yO2dhbW1hPShoYWxvX2JsdXIqMS4xOS9TREZfUFgrRURHRV9HQU1NQSkvKGZvbnRTY2FsZSp1X2dhbW1hX3NjYWxlKTtidWZmPSg2LjAtaGFsb193aWR0aC9mb250U2NhbGUpL1NERl9QWDt9bG93cCBmbG9hdCBkaXN0PXRleHR1cmUyRCh1X3RleHR1cmUsdGV4KS5hO2hpZ2hwIGZsb2F0IGdhbW1hX3NjYWxlZD1nYW1tYSpnYW1tYV9zY2FsZTtoaWdocCBmbG9hdCBhbHBoYT1zbW9vdGhzdGVwKGJ1ZmYtZ2FtbWFfc2NhbGVkLGJ1ZmYrZ2FtbWFfc2NhbGVkLGRpc3QpO2dsX0ZyYWdDb2xvcj1jb2xvciooYWxwaGEqb3BhY2l0eSpmYWRlX29wYWNpdHkpO1xuI2lmZGVmIE9WRVJEUkFXX0lOU1BFQ1RPUlxuZ2xfRnJhZ0NvbG9yPXZlYzQoMS4wKTtcbiNlbmRpZlxufSIsImNvbnN0IGZsb2F0IFBJPTMuMTQxNTkyNjUzNTg5NzkzO2F0dHJpYnV0ZSB2ZWM0IGFfcG9zX29mZnNldDthdHRyaWJ1dGUgdmVjNCBhX2RhdGE7YXR0cmlidXRlIHZlYzMgYV9wcm9qZWN0ZWRfcG9zO2F0dHJpYnV0ZSBmbG9hdCBhX2ZhZGVfb3BhY2l0eTt1bmlmb3JtIGJvb2wgdV9pc19zaXplX3pvb21fY29uc3RhbnQ7dW5pZm9ybSBib29sIHVfaXNfc2l6ZV9mZWF0dXJlX2NvbnN0YW50O3VuaWZvcm0gaGlnaHAgZmxvYXQgdV9zaXplX3Q7dW5pZm9ybSBoaWdocCBmbG9hdCB1X3NpemU7dW5pZm9ybSBtYXQ0IHVfbWF0cml4O3VuaWZvcm0gbWF0NCB1X2xhYmVsX3BsYW5lX21hdHJpeDt1bmlmb3JtIG1hdDQgdV9jb29yZF9tYXRyaXg7dW5pZm9ybSBib29sIHVfaXNfdGV4dDt1bmlmb3JtIGJvb2wgdV9waXRjaF93aXRoX21hcDt1bmlmb3JtIGhpZ2hwIGZsb2F0IHVfcGl0Y2g7dW5pZm9ybSBib29sIHVfcm90YXRlX3N5bWJvbDt1bmlmb3JtIGhpZ2hwIGZsb2F0IHVfYXNwZWN0X3JhdGlvO3VuaWZvcm0gaGlnaHAgZmxvYXQgdV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlO3VuaWZvcm0gZmxvYXQgdV9mYWRlX2NoYW5nZTt1bmlmb3JtIHZlYzIgdV90ZXhzaXplO3ZhcnlpbmcgdmVjMiB2X2RhdGEwO3ZhcnlpbmcgdmVjMyB2X2RhdGExO1xuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBoaWdocCB2ZWM0IGZpbGxfY29sb3JcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgaGlnaHAgdmVjNCBoYWxvX2NvbG9yXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IGhhbG9fd2lkdGhcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBoYWxvX2JsdXJcbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIHZlYzQgZmlsbF9jb2xvclxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgaGlnaHAgdmVjNCBoYWxvX2NvbG9yXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgaGFsb193aWR0aFxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBoYWxvX2JsdXJcbnZlYzIgYV9wb3M9YV9wb3Nfb2Zmc2V0Lnh5O3ZlYzIgYV9vZmZzZXQ9YV9wb3Nfb2Zmc2V0Lnp3O3ZlYzIgYV90ZXg9YV9kYXRhLnh5O3ZlYzIgYV9zaXplPWFfZGF0YS56dztoaWdocCBmbG9hdCBzZWdtZW50X2FuZ2xlPS1hX3Byb2plY3RlZF9wb3NbMl07ZmxvYXQgc2l6ZTtpZiAoIXVfaXNfc2l6ZV96b29tX2NvbnN0YW50ICYmICF1X2lzX3NpemVfZmVhdHVyZV9jb25zdGFudCkge3NpemU9bWl4KGFfc2l6ZVswXSxhX3NpemVbMV0sdV9zaXplX3QpLzI1Ni4wO30gZWxzZSBpZiAodV9pc19zaXplX3pvb21fY29uc3RhbnQgJiYgIXVfaXNfc2l6ZV9mZWF0dXJlX2NvbnN0YW50KSB7c2l6ZT1hX3NpemVbMF0vMjU2LjA7fSBlbHNlIGlmICghdV9pc19zaXplX3pvb21fY29uc3RhbnQgJiYgdV9pc19zaXplX2ZlYXR1cmVfY29uc3RhbnQpIHtzaXplPXVfc2l6ZTt9IGVsc2Uge3NpemU9dV9zaXplO312ZWM0IHByb2plY3RlZFBvaW50PXVfbWF0cml4KnZlYzQoYV9wb3MsMCwxKTtoaWdocCBmbG9hdCBjYW1lcmFfdG9fYW5jaG9yX2Rpc3RhbmNlPXByb2plY3RlZFBvaW50Lnc7aGlnaHAgZmxvYXQgZGlzdGFuY2VfcmF0aW89dV9waXRjaF93aXRoX21hcCA/XG5jYW1lcmFfdG9fYW5jaG9yX2Rpc3RhbmNlL3VfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZSA6XG51X2NhbWVyYV90b19jZW50ZXJfZGlzdGFuY2UvY2FtZXJhX3RvX2FuY2hvcl9kaXN0YW5jZTtoaWdocCBmbG9hdCBwZXJzcGVjdGl2ZV9yYXRpbz1jbGFtcCgwLjUrMC41KmRpc3RhbmNlX3JhdGlvLDAuMCw0LjApO3NpemUqPXBlcnNwZWN0aXZlX3JhdGlvO2Zsb2F0IGZvbnRTY2FsZT11X2lzX3RleHQgPyBzaXplLzI0LjAgOiBzaXplO2hpZ2hwIGZsb2F0IHN5bWJvbF9yb3RhdGlvbj0wLjA7aWYgKHVfcm90YXRlX3N5bWJvbCkge3ZlYzQgb2Zmc2V0UHJvamVjdGVkUG9pbnQ9dV9tYXRyaXgqdmVjNChhX3Bvcyt2ZWMyKDEsMCksMCwxKTt2ZWMyIGE9cHJvamVjdGVkUG9pbnQueHkvcHJvamVjdGVkUG9pbnQudzt2ZWMyIGI9b2Zmc2V0UHJvamVjdGVkUG9pbnQueHkvb2Zmc2V0UHJvamVjdGVkUG9pbnQudztzeW1ib2xfcm90YXRpb249YXRhbigoYi55LWEueSkvdV9hc3BlY3RfcmF0aW8sYi54LWEueCk7fWhpZ2hwIGZsb2F0IGFuZ2xlX3Npbj1zaW4oc2VnbWVudF9hbmdsZStzeW1ib2xfcm90YXRpb24pO2hpZ2hwIGZsb2F0IGFuZ2xlX2Nvcz1jb3Moc2VnbWVudF9hbmdsZStzeW1ib2xfcm90YXRpb24pO21hdDIgcm90YXRpb25fbWF0cml4PW1hdDIoYW5nbGVfY29zLC0xLjAqYW5nbGVfc2luLGFuZ2xlX3NpbixhbmdsZV9jb3MpO3ZlYzQgcHJvamVjdGVkX3Bvcz11X2xhYmVsX3BsYW5lX21hdHJpeCp2ZWM0KGFfcHJvamVjdGVkX3Bvcy54eSwwLjAsMS4wKTtnbF9Qb3NpdGlvbj11X2Nvb3JkX21hdHJpeCp2ZWM0KHByb2plY3RlZF9wb3MueHkvcHJvamVjdGVkX3Bvcy53K3JvdGF0aW9uX21hdHJpeCooYV9vZmZzZXQvMzIuMCpmb250U2NhbGUpLDAuMCwxLjApO2Zsb2F0IGdhbW1hX3NjYWxlPWdsX1Bvc2l0aW9uLnc7dmVjMiB0ZXg9YV90ZXgvdV90ZXhzaXplO3ZlYzIgZmFkZV9vcGFjaXR5PXVucGFja19vcGFjaXR5KGFfZmFkZV9vcGFjaXR5KTtmbG9hdCBmYWRlX2NoYW5nZT1mYWRlX29wYWNpdHlbMV0gPiAwLjUgPyB1X2ZhZGVfY2hhbmdlIDotdV9mYWRlX2NoYW5nZTtmbG9hdCBpbnRlcnBvbGF0ZWRfZmFkZV9vcGFjaXR5PW1heCgwLjAsbWluKDEuMCxmYWRlX29wYWNpdHlbMF0rZmFkZV9jaGFuZ2UpKTt2X2RhdGEwPXZlYzIodGV4LngsdGV4LnkpO3ZfZGF0YTE9dmVjMyhnYW1tYV9zY2FsZSxzaXplLGludGVycG9sYXRlZF9mYWRlX29wYWNpdHkpO30iKTtmdW5jdGlvbiBjcih0LGUpe3ZhciByPS8jcHJhZ21hIG1hcGJveDogKFtcd10rKSAoW1x3XSspIChbXHddKykgKFtcd10rKS9nLG49e307cmV0dXJue2ZyYWdtZW50U291cmNlOnQ9dC5yZXBsYWNlKHIsZnVuY3Rpb24odCxlLHIsYSxpKXtyZXR1cm4gbltpXT0hMCwiZGVmaW5lIj09PWU/IlxuI2lmbmRlZiBIQVNfVU5JRk9STV91XyIraSsiXG52YXJ5aW5nICIrcisiICIrYSsiICIraSsiO1xuI2Vsc2VcbnVuaWZvcm0gIityKyIgIithKyIgdV8iK2krIjtcbiNlbmRpZlxuIjoiXG4jaWZkZWYgSEFTX1VOSUZPUk1fdV8iK2krIlxuICAgICIrcisiICIrYSsiICIraSsiID0gdV8iK2krIjtcbiNlbmRpZlxuIn0pLHZlcnRleFNvdXJjZTplPWUucmVwbGFjZShyLGZ1bmN0aW9uKHQsZSxyLGEsaSl7dmFyIG89ImZsb2F0Ij09PWE/InZlYzIiOiJ2ZWM0IixzPWkubWF0Y2goL2NvbG9yLyk/ImNvbG9yIjpvO3JldHVybiBuW2ldPyJkZWZpbmUiPT09ZT8iXG4jaWZuZGVmIEhBU19VTklGT1JNX3VfIitpKyJcbnVuaWZvcm0gbG93cCBmbG9hdCB1XyIraSsiX3Q7XG5hdHRyaWJ1dGUgIityKyIgIitvKyIgYV8iK2krIjtcbnZhcnlpbmcgIityKyIgIithKyIgIitpKyI7XG4jZWxzZVxudW5pZm9ybSAiK3IrIiAiK2ErIiB1XyIraSsiO1xuI2VuZGlmXG4iOiJ2ZWM0Ij09PXM/IlxuI2lmbmRlZiBIQVNfVU5JRk9STV91XyIraSsiXG4gICAgIitpKyIgPSBhXyIraSsiO1xuI2Vsc2VcbiAgICAiK3IrIiAiK2ErIiAiK2krIiA9IHVfIitpKyI7XG4jZW5kaWZcbiI6IlxuI2lmbmRlZiBIQVNfVU5JRk9STV91XyIraSsiXG4gICAgIitpKyIgPSB1bnBhY2tfbWl4XyIrcysiKGFfIitpKyIsIHVfIitpKyJfdCk7XG4jZWxzZVxuICAgICIrcisiICIrYSsiICIraSsiID0gdV8iK2krIjtcbiNlbmRpZlxuIjoiZGVmaW5lIj09PWU/IlxuI2lmbmRlZiBIQVNfVU5JRk9STV91XyIraSsiXG51bmlmb3JtIGxvd3AgZmxvYXQgdV8iK2krIl90O1xuYXR0cmlidXRlICIrcisiICIrbysiIGFfIitpKyI7XG4jZWxzZVxudW5pZm9ybSAiK3IrIiAiK2ErIiB1XyIraSsiO1xuI2VuZGlmXG4iOiJ2ZWM0Ij09PXM/IlxuI2lmbmRlZiBIQVNfVU5JRk9STV91XyIraSsiXG4gICAgIityKyIgIithKyIgIitpKyIgPSBhXyIraSsiO1xuI2Vsc2VcbiAgICAiK3IrIiAiK2ErIiAiK2krIiA9IHVfIitpKyI7XG4jZW5kaWZcbiI6IlxuI2lmbmRlZiBIQVNfVU5JRk9STV91XyIraSsiXG4gICAgIityKyIgIithKyIgIitpKyIgPSB1bnBhY2tfbWl4XyIrcysiKGFfIitpKyIsIHVfIitpKyJfdCk7XG4jZWxzZVxuICAgICIrcisiICIrYSsiICIraSsiID0gdV8iK2krIjtcbiNlbmRpZlxuIn0pfX12YXIgdXI9T2JqZWN0LmZyZWV6ZSh7cHJlbHVkZTpCZSxiYWNrZ3JvdW5kOk5lLGJhY2tncm91bmRQYXR0ZXJuOmplLGNpcmNsZTpWZSxjbGlwcGluZ01hc2s6VWUsaGVhdG1hcDpxZSxoZWF0bWFwVGV4dHVyZTpIZSxjb2xsaXNpb25Cb3g6R2UsY29sbGlzaW9uQ2lyY2xlOlllLGRlYnVnOldlLGZpbGw6WGUsZmlsbE91dGxpbmU6WmUsZmlsbE91dGxpbmVQYXR0ZXJuOkplLGZpbGxQYXR0ZXJuOktlLGZpbGxFeHRydXNpb246UWUsZmlsbEV4dHJ1c2lvblBhdHRlcm46JGUsaGlsbHNoYWRlUHJlcGFyZTp0cixoaWxsc2hhZGU6ZXIsbGluZTpycixsaW5lR3JhZGllbnQ6bnIsbGluZVBhdHRlcm46YXIsbGluZVNERjppcixyYXN0ZXI6b3Isc3ltYm9sSWNvbjpzcixzeW1ib2xTREY6bHJ9KSxocj1mdW5jdGlvbigpe3RoaXMuYm91bmRQcm9ncmFtPW51bGwsdGhpcy5ib3VuZExheW91dFZlcnRleEJ1ZmZlcj1udWxsLHRoaXMuYm91bmRQYWludFZlcnRleEJ1ZmZlcnM9W10sdGhpcy5ib3VuZEluZGV4QnVmZmVyPW51bGwsdGhpcy5ib3VuZFZlcnRleE9mZnNldD1udWxsLHRoaXMuYm91bmREeW5hbWljVmVydGV4QnVmZmVyPW51bGwsdGhpcy52YW89bnVsbH07aHIucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24odCxlLHIsbixhLGksbyxzKXt0aGlzLmNvbnRleHQ9dDtmb3IodmFyIGw9dGhpcy5ib3VuZFBhaW50VmVydGV4QnVmZmVycy5sZW5ndGghPT1uLmxlbmd0aCxjPTA7IWwmJmM8bi5sZW5ndGg7YysrKXRoaXMuYm91bmRQYWludFZlcnRleEJ1ZmZlcnNbY10hPT1uW2NdJiYobD0hMCk7dmFyIHU9IXRoaXMudmFvfHx0aGlzLmJvdW5kUHJvZ3JhbSE9PWV8fHRoaXMuYm91bmRMYXlvdXRWZXJ0ZXhCdWZmZXIhPT1yfHxsfHx0aGlzLmJvdW5kSW5kZXhCdWZmZXIhPT1hfHx0aGlzLmJvdW5kVmVydGV4T2Zmc2V0IT09aXx8dGhpcy5ib3VuZER5bmFtaWNWZXJ0ZXhCdWZmZXIhPT1vfHx0aGlzLmJvdW5kRHluYW1pY1ZlcnRleEJ1ZmZlcjIhPT1zOyF0LmV4dFZlcnRleEFycmF5T2JqZWN0fHx1P3RoaXMuZnJlc2hCaW5kKGUscixuLGEsaSxvLHMpOih0LmJpbmRWZXJ0ZXhBcnJheU9FUy5zZXQodGhpcy52YW8pLG8mJm8uYmluZCgpLGEmJmEuZHluYW1pY0RyYXcmJmEuYmluZCgpLHMmJnMuYmluZCgpKX0saHIucHJvdG90eXBlLmZyZXNoQmluZD1mdW5jdGlvbih0LGUscixuLGEsaSxvKXt2YXIgcyxsPXQubnVtQXR0cmlidXRlcyxjPXRoaXMuY29udGV4dCx1PWMuZ2w7aWYoYy5leHRWZXJ0ZXhBcnJheU9iamVjdCl0aGlzLnZhbyYmdGhpcy5kZXN0cm95KCksdGhpcy52YW89Yy5leHRWZXJ0ZXhBcnJheU9iamVjdC5jcmVhdGVWZXJ0ZXhBcnJheU9FUygpLGMuYmluZFZlcnRleEFycmF5T0VTLnNldCh0aGlzLnZhbykscz0wLHRoaXMuYm91bmRQcm9ncmFtPXQsdGhpcy5ib3VuZExheW91dFZlcnRleEJ1ZmZlcj1lLHRoaXMuYm91bmRQYWludFZlcnRleEJ1ZmZlcnM9cix0aGlzLmJvdW5kSW5kZXhCdWZmZXI9bix0aGlzLmJvdW5kVmVydGV4T2Zmc2V0PWEsdGhpcy5ib3VuZER5bmFtaWNWZXJ0ZXhCdWZmZXI9aSx0aGlzLmJvdW5kRHluYW1pY1ZlcnRleEJ1ZmZlcjI9bztlbHNle3M9Yy5jdXJyZW50TnVtQXR0cmlidXRlc3x8MDtmb3IodmFyIGg9bDtoPHM7aCsrKXUuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KGgpfWUuZW5hYmxlQXR0cmlidXRlcyh1LHQpO2Zvcih2YXIgZj0wLHA9cjtmPHAubGVuZ3RoO2YrPTEpcFtmXS5lbmFibGVBdHRyaWJ1dGVzKHUsdCk7aSYmaS5lbmFibGVBdHRyaWJ1dGVzKHUsdCksbyYmby5lbmFibGVBdHRyaWJ1dGVzKHUsdCksZS5iaW5kKCksZS5zZXRWZXJ0ZXhBdHRyaWJQb2ludGVycyh1LHQsYSk7Zm9yKHZhciBkPTAsZz1yO2Q8Zy5sZW5ndGg7ZCs9MSl7dmFyIHY9Z1tkXTt2LmJpbmQoKSx2LnNldFZlcnRleEF0dHJpYlBvaW50ZXJzKHUsdCxhKX1pJiYoaS5iaW5kKCksaS5zZXRWZXJ0ZXhBdHRyaWJQb2ludGVycyh1LHQsYSkpLG4mJm4uYmluZCgpLG8mJihvLmJpbmQoKSxvLnNldFZlcnRleEF0dHJpYlBvaW50ZXJzKHUsdCxhKSksYy5jdXJyZW50TnVtQXR0cmlidXRlcz1sfSxoci5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMudmFvJiYodGhpcy5jb250ZXh0LmV4dFZlcnRleEFycmF5T2JqZWN0LmRlbGV0ZVZlcnRleEFycmF5T0VTKHRoaXMudmFvKSx0aGlzLnZhbz1udWxsKX07dmFyIGZyPWZ1bmN0aW9uKHQsZSxyLG4sYSl7dmFyIGk9dC5nbDt0aGlzLnByb2dyYW09aS5jcmVhdGVQcm9ncmFtKCk7dmFyIG89ci5kZWZpbmVzKCk7YSYmby5wdXNoKCIjZGVmaW5lIE9WRVJEUkFXX0lOU1BFQ1RPUjsiKTt2YXIgcz1vLmNvbmNhdChCZS5mcmFnbWVudFNvdXJjZSxlLmZyYWdtZW50U291cmNlKS5qb2luKCJcbiIpLGw9by5jb25jYXQoQmUudmVydGV4U291cmNlLGUudmVydGV4U291cmNlKS5qb2luKCJcbiIpLGM9aS5jcmVhdGVTaGFkZXIoaS5GUkFHTUVOVF9TSEFERVIpO2kuc2hhZGVyU291cmNlKGMscyksaS5jb21waWxlU2hhZGVyKGMpLGkuYXR0YWNoU2hhZGVyKHRoaXMucHJvZ3JhbSxjKTt2YXIgdT1pLmNyZWF0ZVNoYWRlcihpLlZFUlRFWF9TSEFERVIpO2kuc2hhZGVyU291cmNlKHUsbCksaS5jb21waWxlU2hhZGVyKHUpLGkuYXR0YWNoU2hhZGVyKHRoaXMucHJvZ3JhbSx1KTtmb3IodmFyIGg9ci5sYXlvdXRBdHRyaWJ1dGVzfHxbXSxmPTA7ZjxoLmxlbmd0aDtmKyspaS5iaW5kQXR0cmliTG9jYXRpb24odGhpcy5wcm9ncmFtLGYsaFtmXS5uYW1lKTtpLmxpbmtQcm9ncmFtKHRoaXMucHJvZ3JhbSksdGhpcy5udW1BdHRyaWJ1dGVzPWkuZ2V0UHJvZ3JhbVBhcmFtZXRlcih0aGlzLnByb2dyYW0saS5BQ1RJVkVfQVRUUklCVVRFUyksdGhpcy5hdHRyaWJ1dGVzPXt9O2Zvcih2YXIgcD17fSxkPTA7ZDx0aGlzLm51bUF0dHJpYnV0ZXM7ZCsrKXt2YXIgZz1pLmdldEFjdGl2ZUF0dHJpYih0aGlzLnByb2dyYW0sZCk7ZyYmKHRoaXMuYXR0cmlidXRlc1tnLm5hbWVdPWkuZ2V0QXR0cmliTG9jYXRpb24odGhpcy5wcm9ncmFtLGcubmFtZSkpfWZvcih2YXIgdj1pLmdldFByb2dyYW1QYXJhbWV0ZXIodGhpcy5wcm9ncmFtLGkuQUNUSVZFX1VOSUZPUk1TKSxtPTA7bTx2O20rKyl7dmFyIHk9aS5nZXRBY3RpdmVVbmlmb3JtKHRoaXMucHJvZ3JhbSxtKTt5JiYocFt5Lm5hbWVdPWkuZ2V0VW5pZm9ybUxvY2F0aW9uKHRoaXMucHJvZ3JhbSx5Lm5hbWUpKX10aGlzLmZpeGVkVW5pZm9ybXM9bih0LHApLHRoaXMuYmluZGVyVW5pZm9ybXM9ci5nZXRVbmlmb3Jtcyh0LHApfTtmdW5jdGlvbiBwcihlLHIsbil7dmFyIGE9MS9jZShuLDEsci50cmFuc2Zvcm0udGlsZVpvb20pLGk9TWF0aC5wb3coMixuLnRpbGVJRC5vdmVyc2NhbGVkWiksbz1uLnRpbGVTaXplKk1hdGgucG93KDIsci50cmFuc2Zvcm0udGlsZVpvb20pL2kscz1vKihuLnRpbGVJRC5jYW5vbmljYWwueCtuLnRpbGVJRC53cmFwKmkpLGw9bypuLnRpbGVJRC5jYW5vbmljYWwueTtyZXR1cm57dV9pbWFnZTowLHVfdGV4c2l6ZTpuLmltYWdlQXRsYXNUZXh0dXJlLnNpemUsdV9zY2FsZTpbdC5icm93c2VyLmRldmljZVBpeGVsUmF0aW8sYSxlLmZyb21TY2FsZSxlLnRvU2NhbGVdLHVfZmFkZTplLnQsdV9waXhlbF9jb29yZF91cHBlcjpbcz4+MTYsbD4+MTZdLHVfcGl4ZWxfY29vcmRfbG93ZXI6WzY1NTM1JnMsNjU1MzUmbF19fWZyLnByb3RvdHlwZS5kcmF3PWZ1bmN0aW9uKHQsZSxyLG4sYSxpLG8scyxsLGMsdSxoLGYscCxkLGcpe3ZhciB2LG09dC5nbDtmb3IodmFyIHkgaW4gdC5wcm9ncmFtLnNldCh0aGlzLnByb2dyYW0pLHQuc2V0RGVwdGhNb2RlKHIpLHQuc2V0U3RlbmNpbE1vZGUobiksdC5zZXRDb2xvck1vZGUoYSksdC5zZXRDdWxsRmFjZShpKSx0aGlzLmZpeGVkVW5pZm9ybXMpdGhpcy5maXhlZFVuaWZvcm1zW3ldLnNldChvW3ldKTtwJiZwLnNldFVuaWZvcm1zKHQsdGhpcy5iaW5kZXJVbmlmb3JtcyxoLHt6b29tOmZ9KTtmb3IodmFyIHg9KHY9e30sdlttLkxJTkVTXT0yLHZbbS5UUklBTkdMRVNdPTMsdlttLkxJTkVfU1RSSVBdPTEsdilbZV0sYj0wLF89dS5nZXQoKTtiPF8ubGVuZ3RoO2IrPTEpe3ZhciB3PV9bYl0saz13LnZhb3N8fCh3LnZhb3M9e30pOyhrW3NdfHwoa1tzXT1uZXcgaHIpKS5iaW5kKHQsdGhpcyxsLHA/cC5nZXRQYWludFZlcnRleEJ1ZmZlcnMoKTpbXSxjLHcudmVydGV4T2Zmc2V0LGQsZyksbS5kcmF3RWxlbWVudHMoZSx3LnByaW1pdGl2ZUxlbmd0aCp4LG0uVU5TSUdORURfU0hPUlQsdy5wcmltaXRpdmVPZmZzZXQqeCoyKX19O3ZhciBkcj1mdW5jdGlvbihlLHIsbixhKXt2YXIgaT1yLnN0eWxlLmxpZ2h0LG89aS5wcm9wZXJ0aWVzLmdldCgicG9zaXRpb24iKSxzPVtvLngsby55LG8uel0sbD10LmNyZWF0ZSQxKCk7InZpZXdwb3J0Ij09PWkucHJvcGVydGllcy5nZXQoImFuY2hvciIpJiZ0LmZyb21Sb3RhdGlvbihsLC1yLnRyYW5zZm9ybS5hbmdsZSksdC50cmFuc2Zvcm1NYXQzKHMscyxsKTt2YXIgYz1pLnByb3BlcnRpZXMuZ2V0KCJjb2xvciIpO3JldHVybnt1X21hdHJpeDplLHVfbGlnaHRwb3M6cyx1X2xpZ2h0aW50ZW5zaXR5OmkucHJvcGVydGllcy5nZXQoImludGVuc2l0eSIpLHVfbGlnaHRjb2xvcjpbYy5yLGMuZyxjLmJdLHVfdmVydGljYWxfZ3JhZGllbnQ6K24sdV9vcGFjaXR5OmF9fSxncj1mdW5jdGlvbihlLHIsbixhLGksbyxzKXtyZXR1cm4gdC5leHRlbmQoZHIoZSxyLG4sYSkscHIobyxyLHMpLHt1X2hlaWdodF9mYWN0b3I6LU1hdGgucG93KDIsaS5vdmVyc2NhbGVkWikvcy50aWxlU2l6ZS84fSl9LHZyPWZ1bmN0aW9uKHQpe3JldHVybnt1X21hdHJpeDp0fX0sbXI9ZnVuY3Rpb24oZSxyLG4sYSl7cmV0dXJuIHQuZXh0ZW5kKHZyKGUpLHByKG4scixhKSl9LHlyPWZ1bmN0aW9uKHQsZSl7cmV0dXJue3VfbWF0cml4OnQsdV93b3JsZDplfX0seHI9ZnVuY3Rpb24oZSxyLG4sYSxpKXtyZXR1cm4gdC5leHRlbmQobXIoZSxyLG4sYSkse3Vfd29ybGQ6aX0pfSxicj1mdW5jdGlvbihlLHIsbixhKXt2YXIgaSxvLHM9ZS50cmFuc2Zvcm07aWYoIm1hcCI9PT1hLnBhaW50LmdldCgiY2lyY2xlLXBpdGNoLWFsaWdubWVudCIpKXt2YXIgbD1jZShuLDEscy56b29tKTtpPSEwLG89W2wsbF19ZWxzZSBpPSExLG89cy5waXhlbHNUb0dMVW5pdHM7cmV0dXJue3VfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZTpzLmNhbWVyYVRvQ2VudGVyRGlzdGFuY2UsdV9zY2FsZV93aXRoX21hcDorKCJtYXAiPT09YS5wYWludC5nZXQoImNpcmNsZS1waXRjaC1zY2FsZSIpKSx1X21hdHJpeDplLnRyYW5zbGF0ZVBvc01hdHJpeChyLnBvc01hdHJpeCxuLGEucGFpbnQuZ2V0KCJjaXJjbGUtdHJhbnNsYXRlIiksYS5wYWludC5nZXQoImNpcmNsZS10cmFuc2xhdGUtYW5jaG9yIikpLHVfcGl0Y2hfd2l0aF9tYXA6K2ksdV9kZXZpY2VfcGl4ZWxfcmF0aW86dC5icm93c2VyLmRldmljZVBpeGVsUmF0aW8sdV9leHRydWRlX3NjYWxlOm99fSxfcj1mdW5jdGlvbihlLHIpe3JldHVybnt1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KSx1X2NhbWVyYV90b19jZW50ZXJfZGlzdGFuY2U6bmV3IHQuVW5pZm9ybTFmKGUsci51X2NhbWVyYV90b19jZW50ZXJfZGlzdGFuY2UpLHVfcGl4ZWxzX3RvX3RpbGVfdW5pdHM6bmV3IHQuVW5pZm9ybTFmKGUsci51X3BpeGVsc190b190aWxlX3VuaXRzKSx1X2V4dHJ1ZGVfc2NhbGU6bmV3IHQuVW5pZm9ybTJmKGUsci51X2V4dHJ1ZGVfc2NhbGUpLHVfb3ZlcnNjYWxlX2ZhY3RvcjpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfb3ZlcnNjYWxlX2ZhY3Rvcil9fSx3cj1mdW5jdGlvbih0LGUscil7dmFyIG49Y2UociwxLGUuem9vbSksYT1NYXRoLnBvdygyLGUuem9vbS1yLnRpbGVJRC5vdmVyc2NhbGVkWiksaT1yLnRpbGVJRC5vdmVyc2NhbGVGYWN0b3IoKTtyZXR1cm57dV9tYXRyaXg6dCx1X2NhbWVyYV90b19jZW50ZXJfZGlzdGFuY2U6ZS5jYW1lcmFUb0NlbnRlckRpc3RhbmNlLHVfcGl4ZWxzX3RvX3RpbGVfdW5pdHM6bix1X2V4dHJ1ZGVfc2NhbGU6W2UucGl4ZWxzVG9HTFVuaXRzWzBdLyhuKmEpLGUucGl4ZWxzVG9HTFVuaXRzWzFdLyhuKmEpXSx1X292ZXJzY2FsZV9mYWN0b3I6aX19LGtyPWZ1bmN0aW9uKHQsZSl7cmV0dXJue3VfbWF0cml4OnQsdV9jb2xvcjplfX0sVHI9ZnVuY3Rpb24odCl7cmV0dXJue3VfbWF0cml4OnR9fSxNcj1mdW5jdGlvbih0LGUscixuKXtyZXR1cm57dV9tYXRyaXg6dCx1X2V4dHJ1ZGVfc2NhbGU6Y2UoZSwxLHIpLHVfaW50ZW5zaXR5Om59fSxBcj1mdW5jdGlvbih0LGUscil7dmFyIG49ci5wYWludC5nZXQoImhpbGxzaGFkZS1zaGFkb3ctY29sb3IiKSxhPXIucGFpbnQuZ2V0KCJoaWxsc2hhZGUtaGlnaGxpZ2h0LWNvbG9yIiksaT1yLnBhaW50LmdldCgiaGlsbHNoYWRlLWFjY2VudC1jb2xvciIpLG89ci5wYWludC5nZXQoImhpbGxzaGFkZS1pbGx1bWluYXRpb24tZGlyZWN0aW9uIikqKE1hdGguUEkvMTgwKTsidmlld3BvcnQiPT09ci5wYWludC5nZXQoImhpbGxzaGFkZS1pbGx1bWluYXRpb24tYW5jaG9yIikmJihvLT10LnRyYW5zZm9ybS5hbmdsZSk7dmFyIHM9IXQub3B0aW9ucy5tb3Zpbmc7cmV0dXJue3VfbWF0cml4OnQudHJhbnNmb3JtLmNhbGN1bGF0ZVBvc01hdHJpeChlLnRpbGVJRC50b1Vud3JhcHBlZCgpLHMpLHVfaW1hZ2U6MCx1X2xhdHJhbmdlOkVyKHQsZS50aWxlSUQpLHVfbGlnaHQ6W3IucGFpbnQuZ2V0KCJoaWxsc2hhZGUtZXhhZ2dlcmF0aW9uIiksb10sdV9zaGFkb3c6bix1X2hpZ2hsaWdodDphLHVfYWNjZW50Oml9fSxTcj1mdW5jdGlvbihlLHIpe3ZhciBuPWUuZGVtLnN0cmlkZSxhPXQuY3JlYXRlKCk7cmV0dXJuIHQub3J0aG8oYSwwLHQuRVhURU5ULC10LkVYVEVOVCwwLDAsMSksdC50cmFuc2xhdGUoYSxhLFswLC10LkVYVEVOVCwwXSkse3VfbWF0cml4OmEsdV9pbWFnZToxLHVfZGltZW5zaW9uOltuLG5dLHVfem9vbTplLnRpbGVJRC5vdmVyc2NhbGVkWix1X21heHpvb206cn19O2Z1bmN0aW9uIEVyKGUscil7dmFyIG49TWF0aC5wb3coMixyLmNhbm9uaWNhbC56KSxhPXIuY2Fub25pY2FsLnk7cmV0dXJuW25ldyB0Lk1lcmNhdG9yQ29vcmRpbmF0ZSgwLGEvbikudG9MbmdMYXQoKS5sYXQsbmV3IHQuTWVyY2F0b3JDb29yZGluYXRlKDAsKGErMSkvbikudG9MbmdMYXQoKS5sYXRdfXZhciBMcj1mdW5jdGlvbihlLHIsbil7dmFyIGE9ZS50cmFuc2Zvcm07cmV0dXJue3VfbWF0cml4OklyKGUscixuKSx1X3JhdGlvOjEvY2UociwxLGEuem9vbSksdV9kZXZpY2VfcGl4ZWxfcmF0aW86dC5icm93c2VyLmRldmljZVBpeGVsUmF0aW8sdV91bml0c190b19waXhlbHM6WzEvYS5waXhlbHNUb0dMVW5pdHNbMF0sMS9hLnBpeGVsc1RvR0xVbml0c1sxXV19fSxDcj1mdW5jdGlvbihlLHIsbil7cmV0dXJuIHQuZXh0ZW5kKExyKGUscixuKSx7dV9pbWFnZTowfSl9LFByPWZ1bmN0aW9uKGUscixuLGEpe3ZhciBpPWUudHJhbnNmb3JtLG89enIocixpKTtyZXR1cm57dV9tYXRyaXg6SXIoZSxyLG4pLHVfdGV4c2l6ZTpyLmltYWdlQXRsYXNUZXh0dXJlLnNpemUsdV9yYXRpbzoxL2NlKHIsMSxpLnpvb20pLHVfZGV2aWNlX3BpeGVsX3JhdGlvOnQuYnJvd3Nlci5kZXZpY2VQaXhlbFJhdGlvLHVfaW1hZ2U6MCx1X3NjYWxlOlt0LmJyb3dzZXIuZGV2aWNlUGl4ZWxSYXRpbyxvLGEuZnJvbVNjYWxlLGEudG9TY2FsZV0sdV9mYWRlOmEudCx1X3VuaXRzX3RvX3BpeGVsczpbMS9pLnBpeGVsc1RvR0xVbml0c1swXSwxL2kucGl4ZWxzVG9HTFVuaXRzWzFdXX19LE9yPWZ1bmN0aW9uKGUscixuLGEsaSl7dmFyIG89ZS50cmFuc2Zvcm0scz1lLmxpbmVBdGxhcyxsPXpyKHIsbyksYz0icm91bmQiPT09bi5sYXlvdXQuZ2V0KCJsaW5lLWNhcCIpLHU9cy5nZXREYXNoKGEuZnJvbSxjKSxoPXMuZ2V0RGFzaChhLnRvLGMpLGY9dS53aWR0aCppLmZyb21TY2FsZSxwPWgud2lkdGgqaS50b1NjYWxlO3JldHVybiB0LmV4dGVuZChMcihlLHIsbikse3VfcGF0dGVybnNjYWxlX2E6W2wvZiwtdS5oZWlnaHQvMl0sdV9wYXR0ZXJuc2NhbGVfYjpbbC9wLC1oLmhlaWdodC8yXSx1X3NkZmdhbW1hOnMud2lkdGgvKDI1NipNYXRoLm1pbihmLHApKnQuYnJvd3Nlci5kZXZpY2VQaXhlbFJhdGlvKS8yLHVfaW1hZ2U6MCx1X3RleF95X2E6dS55LHVfdGV4X3lfYjpoLnksdV9taXg6aS50fSl9O2Z1bmN0aW9uIHpyKHQsZSl7cmV0dXJuIDEvY2UodCwxLGUudGlsZVpvb20pfWZ1bmN0aW9uIElyKHQsZSxyKXtyZXR1cm4gdC50cmFuc2xhdGVQb3NNYXRyaXgoZS50aWxlSUQucG9zTWF0cml4LGUsci5wYWludC5nZXQoImxpbmUtdHJhbnNsYXRlIiksci5wYWludC5nZXQoImxpbmUtdHJhbnNsYXRlLWFuY2hvciIpKX12YXIgRHI9ZnVuY3Rpb24odCxlLHIsbixhKXtyZXR1cm57dV9tYXRyaXg6dCx1X3RsX3BhcmVudDplLHVfc2NhbGVfcGFyZW50OnIsdV9idWZmZXJfc2NhbGU6MSx1X2ZhZGVfdDpuLm1peCx1X29wYWNpdHk6bi5vcGFjaXR5KmEucGFpbnQuZ2V0KCJyYXN0ZXItb3BhY2l0eSIpLHVfaW1hZ2UwOjAsdV9pbWFnZTE6MSx1X2JyaWdodG5lc3NfbG93OmEucGFpbnQuZ2V0KCJyYXN0ZXItYnJpZ2h0bmVzcy1taW4iKSx1X2JyaWdodG5lc3NfaGlnaDphLnBhaW50LmdldCgicmFzdGVyLWJyaWdodG5lc3MtbWF4IiksdV9zYXR1cmF0aW9uX2ZhY3Rvcjoobz1hLnBhaW50LmdldCgicmFzdGVyLXNhdHVyYXRpb24iKSxvPjA/MS0xLygxLjAwMS1vKTotbyksdV9jb250cmFzdF9mYWN0b3I6KGk9YS5wYWludC5nZXQoInJhc3Rlci1jb250cmFzdCIpLGk+MD8xLygxLWkpOjEraSksdV9zcGluX3dlaWdodHM6UnIoYS5wYWludC5nZXQoInJhc3Rlci1odWUtcm90YXRlIikpfTt2YXIgaSxvfTtmdW5jdGlvbiBScih0KXt0Kj1NYXRoLlBJLzE4MDt2YXIgZT1NYXRoLnNpbih0KSxyPU1hdGguY29zKHQpO3JldHVyblsoMipyKzEpLzMsKC1NYXRoLnNxcnQoMykqZS1yKzEpLzMsKE1hdGguc3FydCgzKSplLXIrMSkvM119dmFyIEZyPWZ1bmN0aW9uKHQsZSxyLG4sYSxpLG8scyxsLGMpe3ZhciB1PWEudHJhbnNmb3JtO3JldHVybnt1X2lzX3NpemVfem9vbV9jb25zdGFudDorKCJjb25zdGFudCI9PT10fHwic291cmNlIj09PXQpLHVfaXNfc2l6ZV9mZWF0dXJlX2NvbnN0YW50OisoImNvbnN0YW50Ij09PXR8fCJjYW1lcmEiPT09dCksdV9zaXplX3Q6ZT9lLnVTaXplVDowLHVfc2l6ZTplP2UudVNpemU6MCx1X2NhbWVyYV90b19jZW50ZXJfZGlzdGFuY2U6dS5jYW1lcmFUb0NlbnRlckRpc3RhbmNlLHVfcGl0Y2g6dS5waXRjaC8zNjAqMipNYXRoLlBJLHVfcm90YXRlX3N5bWJvbDorcix1X2FzcGVjdF9yYXRpbzp1LndpZHRoL3UuaGVpZ2h0LHVfZmFkZV9jaGFuZ2U6YS5vcHRpb25zLmZhZGVEdXJhdGlvbj9hLnN5bWJvbEZhZGVDaGFuZ2U6MSx1X21hdHJpeDppLHVfbGFiZWxfcGxhbmVfbWF0cml4Om8sdV9jb29yZF9tYXRyaXg6cyx1X2lzX3RleHQ6K2wsdV9waXRjaF93aXRoX21hcDorbix1X3RleHNpemU6Yyx1X3RleHR1cmU6MH19LEJyPWZ1bmN0aW9uKGUscixuLGEsaSxvLHMsbCxjLHUsaCl7dmFyIGY9aS50cmFuc2Zvcm07cmV0dXJuIHQuZXh0ZW5kKEZyKGUscixuLGEsaSxvLHMsbCxjLHUpLHt1X2dhbW1hX3NjYWxlOmE/TWF0aC5jb3MoZi5fcGl0Y2gpKmYuY2FtZXJhVG9DZW50ZXJEaXN0YW5jZToxLHVfZGV2aWNlX3BpeGVsX3JhdGlvOnQuYnJvd3Nlci5kZXZpY2VQaXhlbFJhdGlvLHVfaXNfaGFsbzoraH0pfSxOcj1mdW5jdGlvbih0LGUscil7cmV0dXJue3VfbWF0cml4OnQsdV9vcGFjaXR5OmUsdV9jb2xvcjpyfX0sanI9ZnVuY3Rpb24oZSxyLG4sYSxpLG8pe3JldHVybiB0LmV4dGVuZChmdW5jdGlvbih0LGUscixuKXt2YXIgYT1yLmltYWdlTWFuYWdlci5nZXRQYXR0ZXJuKHQuZnJvbSksaT1yLmltYWdlTWFuYWdlci5nZXRQYXR0ZXJuKHQudG8pLG89ci5pbWFnZU1hbmFnZXIuZ2V0UGl4ZWxTaXplKCkscz1vLndpZHRoLGw9by5oZWlnaHQsYz1NYXRoLnBvdygyLG4udGlsZUlELm92ZXJzY2FsZWRaKSx1PW4udGlsZVNpemUqTWF0aC5wb3coMixyLnRyYW5zZm9ybS50aWxlWm9vbSkvYyxoPXUqKG4udGlsZUlELmNhbm9uaWNhbC54K24udGlsZUlELndyYXAqYyksZj11Km4udGlsZUlELmNhbm9uaWNhbC55O3JldHVybnt1X2ltYWdlOjAsdV9wYXR0ZXJuX3RsX2E6YS50bCx1X3BhdHRlcm5fYnJfYTphLmJyLHVfcGF0dGVybl90bF9iOmkudGwsdV9wYXR0ZXJuX2JyX2I6aS5icix1X3RleHNpemU6W3MsbF0sdV9taXg6ZS50LHVfcGF0dGVybl9zaXplX2E6YS5kaXNwbGF5U2l6ZSx1X3BhdHRlcm5fc2l6ZV9iOmkuZGlzcGxheVNpemUsdV9zY2FsZV9hOmUuZnJvbVNjYWxlLHVfc2NhbGVfYjplLnRvU2NhbGUsdV90aWxlX3VuaXRzX3RvX3BpeGVsczoxL2NlKG4sMSxyLnRyYW5zZm9ybS50aWxlWm9vbSksdV9waXhlbF9jb29yZF91cHBlcjpbaD4+MTYsZj4+MTZdLHVfcGl4ZWxfY29vcmRfbG93ZXI6WzY1NTM1JmgsNjU1MzUmZl19fShhLG8sbixpKSx7dV9tYXRyaXg6ZSx1X29wYWNpdHk6cn0pfSxWcj17ZmlsbEV4dHJ1c2lvbjpmdW5jdGlvbihlLHIpe3JldHVybnt1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KSx1X2xpZ2h0cG9zOm5ldyB0LlVuaWZvcm0zZihlLHIudV9saWdodHBvcyksdV9saWdodGludGVuc2l0eTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfbGlnaHRpbnRlbnNpdHkpLHVfbGlnaHRjb2xvcjpuZXcgdC5Vbmlmb3JtM2YoZSxyLnVfbGlnaHRjb2xvciksdV92ZXJ0aWNhbF9ncmFkaWVudDpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfdmVydGljYWxfZ3JhZGllbnQpLHVfb3BhY2l0eTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfb3BhY2l0eSl9fSxmaWxsRXh0cnVzaW9uUGF0dGVybjpmdW5jdGlvbihlLHIpe3JldHVybnt1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KSx1X2xpZ2h0cG9zOm5ldyB0LlVuaWZvcm0zZihlLHIudV9saWdodHBvcyksdV9saWdodGludGVuc2l0eTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfbGlnaHRpbnRlbnNpdHkpLHVfbGlnaHRjb2xvcjpuZXcgdC5Vbmlmb3JtM2YoZSxyLnVfbGlnaHRjb2xvciksdV92ZXJ0aWNhbF9ncmFkaWVudDpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfdmVydGljYWxfZ3JhZGllbnQpLHVfaGVpZ2h0X2ZhY3RvcjpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfaGVpZ2h0X2ZhY3RvciksdV9pbWFnZTpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfaW1hZ2UpLHVfdGV4c2l6ZTpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfdGV4c2l6ZSksdV9waXhlbF9jb29yZF91cHBlcjpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfcGl4ZWxfY29vcmRfdXBwZXIpLHVfcGl4ZWxfY29vcmRfbG93ZXI6bmV3IHQuVW5pZm9ybTJmKGUsci51X3BpeGVsX2Nvb3JkX2xvd2VyKSx1X3NjYWxlOm5ldyB0LlVuaWZvcm00ZihlLHIudV9zY2FsZSksdV9mYWRlOm5ldyB0LlVuaWZvcm0xZihlLHIudV9mYWRlKSx1X29wYWNpdHk6bmV3IHQuVW5pZm9ybTFmKGUsci51X29wYWNpdHkpfX0sZmlsbDpmdW5jdGlvbihlLHIpe3JldHVybnt1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KX19LGZpbGxQYXR0ZXJuOmZ1bmN0aW9uKGUscil7cmV0dXJue3VfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9tYXRyaXgpLHVfaW1hZ2U6bmV3IHQuVW5pZm9ybTFpKGUsci51X2ltYWdlKSx1X3RleHNpemU6bmV3IHQuVW5pZm9ybTJmKGUsci51X3RleHNpemUpLHVfcGl4ZWxfY29vcmRfdXBwZXI6bmV3IHQuVW5pZm9ybTJmKGUsci51X3BpeGVsX2Nvb3JkX3VwcGVyKSx1X3BpeGVsX2Nvb3JkX2xvd2VyOm5ldyB0LlVuaWZvcm0yZihlLHIudV9waXhlbF9jb29yZF9sb3dlciksdV9zY2FsZTpuZXcgdC5Vbmlmb3JtNGYoZSxyLnVfc2NhbGUpLHVfZmFkZTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfZmFkZSl9fSxmaWxsT3V0bGluZTpmdW5jdGlvbihlLHIpe3JldHVybnt1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KSx1X3dvcmxkOm5ldyB0LlVuaWZvcm0yZihlLHIudV93b3JsZCl9fSxmaWxsT3V0bGluZVBhdHRlcm46ZnVuY3Rpb24oZSxyKXtyZXR1cm57dV9tYXRyaXg6bmV3IHQuVW5pZm9ybU1hdHJpeDRmKGUsci51X21hdHJpeCksdV93b3JsZDpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfd29ybGQpLHVfaW1hZ2U6bmV3IHQuVW5pZm9ybTFpKGUsci51X2ltYWdlKSx1X3RleHNpemU6bmV3IHQuVW5pZm9ybTJmKGUsci51X3RleHNpemUpLHVfcGl4ZWxfY29vcmRfdXBwZXI6bmV3IHQuVW5pZm9ybTJmKGUsci51X3BpeGVsX2Nvb3JkX3VwcGVyKSx1X3BpeGVsX2Nvb3JkX2xvd2VyOm5ldyB0LlVuaWZvcm0yZihlLHIudV9waXhlbF9jb29yZF9sb3dlciksdV9zY2FsZTpuZXcgdC5Vbmlmb3JtNGYoZSxyLnVfc2NhbGUpLHVfZmFkZTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfZmFkZSl9fSxjaXJjbGU6ZnVuY3Rpb24oZSxyKXtyZXR1cm57dV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlOm5ldyB0LlVuaWZvcm0xZihlLHIudV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlKSx1X3NjYWxlX3dpdGhfbWFwOm5ldyB0LlVuaWZvcm0xaShlLHIudV9zY2FsZV93aXRoX21hcCksdV9waXRjaF93aXRoX21hcDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfcGl0Y2hfd2l0aF9tYXApLHVfZXh0cnVkZV9zY2FsZTpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfZXh0cnVkZV9zY2FsZSksdV9kZXZpY2VfcGl4ZWxfcmF0aW86bmV3IHQuVW5pZm9ybTFmKGUsci51X2RldmljZV9waXhlbF9yYXRpbyksdV9tYXRyaXg6bmV3IHQuVW5pZm9ybU1hdHJpeDRmKGUsci51X21hdHJpeCl9fSxjb2xsaXNpb25Cb3g6X3IsY29sbGlzaW9uQ2lyY2xlOl9yLGRlYnVnOmZ1bmN0aW9uKGUscil7cmV0dXJue3VfY29sb3I6bmV3IHQuVW5pZm9ybUNvbG9yKGUsci51X2NvbG9yKSx1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KX19LGNsaXBwaW5nTWFzazpmdW5jdGlvbihlLHIpe3JldHVybnt1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KX19LGhlYXRtYXA6ZnVuY3Rpb24oZSxyKXtyZXR1cm57dV9leHRydWRlX3NjYWxlOm5ldyB0LlVuaWZvcm0xZihlLHIudV9leHRydWRlX3NjYWxlKSx1X2ludGVuc2l0eTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfaW50ZW5zaXR5KSx1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KX19LGhlYXRtYXBUZXh0dXJlOmZ1bmN0aW9uKGUscil7cmV0dXJue3VfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9tYXRyaXgpLHVfd29ybGQ6bmV3IHQuVW5pZm9ybTJmKGUsci51X3dvcmxkKSx1X2ltYWdlOm5ldyB0LlVuaWZvcm0xaShlLHIudV9pbWFnZSksdV9jb2xvcl9yYW1wOm5ldyB0LlVuaWZvcm0xaShlLHIudV9jb2xvcl9yYW1wKSx1X29wYWNpdHk6bmV3IHQuVW5pZm9ybTFmKGUsci51X29wYWNpdHkpfX0saGlsbHNoYWRlOmZ1bmN0aW9uKGUscil7cmV0dXJue3VfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9tYXRyaXgpLHVfaW1hZ2U6bmV3IHQuVW5pZm9ybTFpKGUsci51X2ltYWdlKSx1X2xhdHJhbmdlOm5ldyB0LlVuaWZvcm0yZihlLHIudV9sYXRyYW5nZSksdV9saWdodDpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfbGlnaHQpLHVfc2hhZG93Om5ldyB0LlVuaWZvcm1Db2xvcihlLHIudV9zaGFkb3cpLHVfaGlnaGxpZ2h0Om5ldyB0LlVuaWZvcm1Db2xvcihlLHIudV9oaWdobGlnaHQpLHVfYWNjZW50Om5ldyB0LlVuaWZvcm1Db2xvcihlLHIudV9hY2NlbnQpfX0saGlsbHNoYWRlUHJlcGFyZTpmdW5jdGlvbihlLHIpe3JldHVybnt1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KSx1X2ltYWdlOm5ldyB0LlVuaWZvcm0xaShlLHIudV9pbWFnZSksdV9kaW1lbnNpb246bmV3IHQuVW5pZm9ybTJmKGUsci51X2RpbWVuc2lvbiksdV96b29tOm5ldyB0LlVuaWZvcm0xZihlLHIudV96b29tKSx1X21heHpvb206bmV3IHQuVW5pZm9ybTFmKGUsci51X21heHpvb20pfX0sbGluZTpmdW5jdGlvbihlLHIpe3JldHVybnt1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KSx1X3JhdGlvOm5ldyB0LlVuaWZvcm0xZihlLHIudV9yYXRpbyksdV9kZXZpY2VfcGl4ZWxfcmF0aW86bmV3IHQuVW5pZm9ybTFmKGUsci51X2RldmljZV9waXhlbF9yYXRpbyksdV91bml0c190b19waXhlbHM6bmV3IHQuVW5pZm9ybTJmKGUsci51X3VuaXRzX3RvX3BpeGVscyl9fSxsaW5lR3JhZGllbnQ6ZnVuY3Rpb24oZSxyKXtyZXR1cm57dV9tYXRyaXg6bmV3IHQuVW5pZm9ybU1hdHJpeDRmKGUsci51X21hdHJpeCksdV9yYXRpbzpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfcmF0aW8pLHVfZGV2aWNlX3BpeGVsX3JhdGlvOm5ldyB0LlVuaWZvcm0xZihlLHIudV9kZXZpY2VfcGl4ZWxfcmF0aW8pLHVfdW5pdHNfdG9fcGl4ZWxzOm5ldyB0LlVuaWZvcm0yZihlLHIudV91bml0c190b19waXhlbHMpLHVfaW1hZ2U6bmV3IHQuVW5pZm9ybTFpKGUsci51X2ltYWdlKX19LGxpbmVQYXR0ZXJuOmZ1bmN0aW9uKGUscil7cmV0dXJue3VfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9tYXRyaXgpLHVfdGV4c2l6ZTpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfdGV4c2l6ZSksdV9yYXRpbzpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfcmF0aW8pLHVfZGV2aWNlX3BpeGVsX3JhdGlvOm5ldyB0LlVuaWZvcm0xZihlLHIudV9kZXZpY2VfcGl4ZWxfcmF0aW8pLHVfaW1hZ2U6bmV3IHQuVW5pZm9ybTFpKGUsci51X2ltYWdlKSx1X3VuaXRzX3RvX3BpeGVsczpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfdW5pdHNfdG9fcGl4ZWxzKSx1X3NjYWxlOm5ldyB0LlVuaWZvcm00ZihlLHIudV9zY2FsZSksdV9mYWRlOm5ldyB0LlVuaWZvcm0xZihlLHIudV9mYWRlKX19LGxpbmVTREY6ZnVuY3Rpb24oZSxyKXtyZXR1cm57dV9tYXRyaXg6bmV3IHQuVW5pZm9ybU1hdHJpeDRmKGUsci51X21hdHJpeCksdV9yYXRpbzpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfcmF0aW8pLHVfZGV2aWNlX3BpeGVsX3JhdGlvOm5ldyB0LlVuaWZvcm0xZihlLHIudV9kZXZpY2VfcGl4ZWxfcmF0aW8pLHVfdW5pdHNfdG9fcGl4ZWxzOm5ldyB0LlVuaWZvcm0yZihlLHIudV91bml0c190b19waXhlbHMpLHVfcGF0dGVybnNjYWxlX2E6bmV3IHQuVW5pZm9ybTJmKGUsci51X3BhdHRlcm5zY2FsZV9hKSx1X3BhdHRlcm5zY2FsZV9iOm5ldyB0LlVuaWZvcm0yZihlLHIudV9wYXR0ZXJuc2NhbGVfYiksdV9zZGZnYW1tYTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfc2RmZ2FtbWEpLHVfaW1hZ2U6bmV3IHQuVW5pZm9ybTFpKGUsci51X2ltYWdlKSx1X3RleF95X2E6bmV3IHQuVW5pZm9ybTFmKGUsci51X3RleF95X2EpLHVfdGV4X3lfYjpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfdGV4X3lfYiksdV9taXg6bmV3IHQuVW5pZm9ybTFmKGUsci51X21peCl9fSxyYXN0ZXI6ZnVuY3Rpb24oZSxyKXtyZXR1cm57dV9tYXRyaXg6bmV3IHQuVW5pZm9ybU1hdHJpeDRmKGUsci51X21hdHJpeCksdV90bF9wYXJlbnQ6bmV3IHQuVW5pZm9ybTJmKGUsci51X3RsX3BhcmVudCksdV9zY2FsZV9wYXJlbnQ6bmV3IHQuVW5pZm9ybTFmKGUsci51X3NjYWxlX3BhcmVudCksdV9idWZmZXJfc2NhbGU6bmV3IHQuVW5pZm9ybTFmKGUsci51X2J1ZmZlcl9zY2FsZSksdV9mYWRlX3Q6bmV3IHQuVW5pZm9ybTFmKGUsci51X2ZhZGVfdCksdV9vcGFjaXR5Om5ldyB0LlVuaWZvcm0xZihlLHIudV9vcGFjaXR5KSx1X2ltYWdlMDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfaW1hZ2UwKSx1X2ltYWdlMTpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfaW1hZ2UxKSx1X2JyaWdodG5lc3NfbG93Om5ldyB0LlVuaWZvcm0xZihlLHIudV9icmlnaHRuZXNzX2xvdyksdV9icmlnaHRuZXNzX2hpZ2g6bmV3IHQuVW5pZm9ybTFmKGUsci51X2JyaWdodG5lc3NfaGlnaCksdV9zYXR1cmF0aW9uX2ZhY3RvcjpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfc2F0dXJhdGlvbl9mYWN0b3IpLHVfY29udHJhc3RfZmFjdG9yOm5ldyB0LlVuaWZvcm0xZihlLHIudV9jb250cmFzdF9mYWN0b3IpLHVfc3Bpbl93ZWlnaHRzOm5ldyB0LlVuaWZvcm0zZihlLHIudV9zcGluX3dlaWdodHMpfX0sc3ltYm9sSWNvbjpmdW5jdGlvbihlLHIpe3JldHVybnt1X2lzX3NpemVfem9vbV9jb25zdGFudDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfaXNfc2l6ZV96b29tX2NvbnN0YW50KSx1X2lzX3NpemVfZmVhdHVyZV9jb25zdGFudDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfaXNfc2l6ZV9mZWF0dXJlX2NvbnN0YW50KSx1X3NpemVfdDpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfc2l6ZV90KSx1X3NpemU6bmV3IHQuVW5pZm9ybTFmKGUsci51X3NpemUpLHVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZSksdV9waXRjaDpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfcGl0Y2gpLHVfcm90YXRlX3N5bWJvbDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfcm90YXRlX3N5bWJvbCksdV9hc3BlY3RfcmF0aW86bmV3IHQuVW5pZm9ybTFmKGUsci51X2FzcGVjdF9yYXRpbyksdV9mYWRlX2NoYW5nZTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfZmFkZV9jaGFuZ2UpLHVfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9tYXRyaXgpLHVfbGFiZWxfcGxhbmVfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9sYWJlbF9wbGFuZV9tYXRyaXgpLHVfY29vcmRfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9jb29yZF9tYXRyaXgpLHVfaXNfdGV4dDpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfaXNfdGV4dCksdV9waXRjaF93aXRoX21hcDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfcGl0Y2hfd2l0aF9tYXApLHVfdGV4c2l6ZTpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfdGV4c2l6ZSksdV90ZXh0dXJlOm5ldyB0LlVuaWZvcm0xaShlLHIudV90ZXh0dXJlKX19LHN5bWJvbFNERjpmdW5jdGlvbihlLHIpe3JldHVybnt1X2lzX3NpemVfem9vbV9jb25zdGFudDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfaXNfc2l6ZV96b29tX2NvbnN0YW50KSx1X2lzX3NpemVfZmVhdHVyZV9jb25zdGFudDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfaXNfc2l6ZV9mZWF0dXJlX2NvbnN0YW50KSx1X3NpemVfdDpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfc2l6ZV90KSx1X3NpemU6bmV3IHQuVW5pZm9ybTFmKGUsci51X3NpemUpLHVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZSksdV9waXRjaDpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfcGl0Y2gpLHVfcm90YXRlX3N5bWJvbDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfcm90YXRlX3N5bWJvbCksdV9hc3BlY3RfcmF0aW86bmV3IHQuVW5pZm9ybTFmKGUsci51X2FzcGVjdF9yYXRpbyksdV9mYWRlX2NoYW5nZTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfZmFkZV9jaGFuZ2UpLHVfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9tYXRyaXgpLHVfbGFiZWxfcGxhbmVfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9sYWJlbF9wbGFuZV9tYXRyaXgpLHVfY29vcmRfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9jb29yZF9tYXRyaXgpLHVfaXNfdGV4dDpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfaXNfdGV4dCksdV9waXRjaF93aXRoX21hcDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfcGl0Y2hfd2l0aF9tYXApLHVfdGV4c2l6ZTpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfdGV4c2l6ZSksdV90ZXh0dXJlOm5ldyB0LlVuaWZvcm0xaShlLHIudV90ZXh0dXJlKSx1X2dhbW1hX3NjYWxlOm5ldyB0LlVuaWZvcm0xZihlLHIudV9nYW1tYV9zY2FsZSksdV9kZXZpY2VfcGl4ZWxfcmF0aW86bmV3IHQuVW5pZm9ybTFmKGUsci51X2RldmljZV9waXhlbF9yYXRpbyksdV9pc19oYWxvOm5ldyB0LlVuaWZvcm0xZihlLHIudV9pc19oYWxvKX19LGJhY2tncm91bmQ6ZnVuY3Rpb24oZSxyKXtyZXR1cm57dV9tYXRyaXg6bmV3IHQuVW5pZm9ybU1hdHJpeDRmKGUsci51X21hdHJpeCksdV9vcGFjaXR5Om5ldyB0LlVuaWZvcm0xZihlLHIudV9vcGFjaXR5KSx1X2NvbG9yOm5ldyB0LlVuaWZvcm1Db2xvcihlLHIudV9jb2xvcil9fSxiYWNrZ3JvdW5kUGF0dGVybjpmdW5jdGlvbihlLHIpe3JldHVybnt1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KSx1X29wYWNpdHk6bmV3IHQuVW5pZm9ybTFmKGUsci51X29wYWNpdHkpLHVfaW1hZ2U6bmV3IHQuVW5pZm9ybTFpKGUsci51X2ltYWdlKSx1X3BhdHRlcm5fdGxfYTpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfcGF0dGVybl90bF9hKSx1X3BhdHRlcm5fYnJfYTpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfcGF0dGVybl9icl9hKSx1X3BhdHRlcm5fdGxfYjpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfcGF0dGVybl90bF9iKSx1X3BhdHRlcm5fYnJfYjpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfcGF0dGVybl9icl9iKSx1X3RleHNpemU6bmV3IHQuVW5pZm9ybTJmKGUsci51X3RleHNpemUpLHVfbWl4Om5ldyB0LlVuaWZvcm0xZihlLHIudV9taXgpLHVfcGF0dGVybl9zaXplX2E6bmV3IHQuVW5pZm9ybTJmKGUsci51X3BhdHRlcm5fc2l6ZV9hKSx1X3BhdHRlcm5fc2l6ZV9iOm5ldyB0LlVuaWZvcm0yZihlLHIudV9wYXR0ZXJuX3NpemVfYiksdV9zY2FsZV9hOm5ldyB0LlVuaWZvcm0xZihlLHIudV9zY2FsZV9hKSx1X3NjYWxlX2I6bmV3IHQuVW5pZm9ybTFmKGUsci51X3NjYWxlX2IpLHVfcGl4ZWxfY29vcmRfdXBwZXI6bmV3IHQuVW5pZm9ybTJmKGUsci51X3BpeGVsX2Nvb3JkX3VwcGVyKSx1X3BpeGVsX2Nvb3JkX2xvd2VyOm5ldyB0LlVuaWZvcm0yZihlLHIudV9waXhlbF9jb29yZF9sb3dlciksdV90aWxlX3VuaXRzX3RvX3BpeGVsczpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfdGlsZV91bml0c190b19waXhlbHMpfX19O2Z1bmN0aW9uIFVyKGUscil7Zm9yKHZhciBuPWUuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiB0LnRpbGVJRC5pc0xlc3NUaGFuKGUudGlsZUlEKT8tMTplLnRpbGVJRC5pc0xlc3NUaGFuKHQudGlsZUlEKT8xOjB9KSxhPTA7YTxuLmxlbmd0aDthKyspe3ZhciBpPXt9LG89blthXSxzPW4uc2xpY2UoYSsxKTtxcihvLnRpbGVJRC53cmFwcGVkKCksby50aWxlSUQscyxuZXcgdC5PdmVyc2NhbGVkVGlsZUlEKDAsby50aWxlSUQud3JhcCsxLDAsMCwwKSxpKSxvLnNldE1hc2soaSxyKX19ZnVuY3Rpb24gcXIoZSxyLG4sYSxpKXtmb3IodmFyIG89MDtvPG4ubGVuZ3RoO28rKyl7dmFyIHM9bltvXTtpZihhLmlzTGVzc1RoYW4ocy50aWxlSUQpKWJyZWFrO2lmKHIua2V5PT09cy50aWxlSUQua2V5KXJldHVybjtpZihzLnRpbGVJRC5pc0NoaWxkT2Yocikpe2Zvcih2YXIgbD1yLmNoaWxkcmVuKDEvMCksYz0wO2M8bC5sZW5ndGg7YysrKXFyKGUsbFtjXSxuLnNsaWNlKG8pLGEsaSk7cmV0dXJufX12YXIgdT1yLm92ZXJzY2FsZWRaLWUub3ZlcnNjYWxlZFosaD1uZXcgdC5DYW5vbmljYWxUaWxlSUQodSxyLmNhbm9uaWNhbC54LShlLmNhbm9uaWNhbC54PDx1KSxyLmNhbm9uaWNhbC55LShlLmNhbm9uaWNhbC55PDx1KSk7aVtoLmtleV09aVtoLmtleV18fGh9ZnVuY3Rpb24gSHIodCxlLHIsbixhKXtmb3IodmFyIGk9dC5jb250ZXh0LG89aS5nbCxzPWE/dC51c2VQcm9ncmFtKCJjb2xsaXNpb25DaXJjbGUiKTp0LnVzZVByb2dyYW0oImNvbGxpc2lvbkJveCIpLGw9MDtsPG4ubGVuZ3RoO2wrKyl7dmFyIGM9bltsXSx1PWUuZ2V0VGlsZShjKSxoPXUuZ2V0QnVja2V0KHIpO2lmKGgpe3ZhciBmPWE/aC5jb2xsaXNpb25DaXJjbGU6aC5jb2xsaXNpb25Cb3g7ZiYmcy5kcmF3KGksYT9vLlRSSUFOR0xFUzpvLkxJTkVTLE10LmRpc2FibGVkLEF0LmRpc2FibGVkLHQuY29sb3JNb2RlRm9yUmVuZGVyUGFzcygpLEV0LmRpc2FibGVkLHdyKGMucG9zTWF0cml4LHQudHJhbnNmb3JtLHUpLHIuaWQsZi5sYXlvdXRWZXJ0ZXhCdWZmZXIsZi5pbmRleEJ1ZmZlcixmLnNlZ21lbnRzLG51bGwsdC50cmFuc2Zvcm0uem9vbSxudWxsLG51bGwsZi5jb2xsaXNpb25WZXJ0ZXhCdWZmZXIpfX19dmFyIEdyPXQuaWRlbnRpdHkobmV3IEZsb2F0MzJBcnJheSgxNikpO2Z1bmN0aW9uIFlyKGUscixuLGEsaSxvKXt2YXIgcz10LmdldEFuY2hvckFsaWdubWVudChlKSxsPS0ocy5ob3Jpem9udGFsQWxpZ24tLjUpKnIsYz0tKHMudmVydGljYWxBbGlnbi0uNSkqbix1PXQuZXZhbHVhdGVSYWRpYWxPZmZzZXQoZSxhKTtyZXR1cm4gbmV3IHQuUG9pbnQoKGwvaSt1WzBdKSpvLChjL2krdVsxXSkqbyl9ZnVuY3Rpb24gV3IoZSxyLG4sYSxpLG8scyxsLGMsdSl7dmFyIGg9ZS50ZXh0LnBsYWNlZFN5bWJvbEFycmF5LGY9ZS50ZXh0LmR5bmFtaWNMYXlvdXRWZXJ0ZXhBcnJheTtmLmNsZWFyKCk7Zm9yKHZhciBwPTA7cDxoLmxlbmd0aDtwKyspe3ZhciBkPWguZ2V0KHApLGc9ZS5hbGxvd1ZlcnRpY2FsUGxhY2VtZW50JiYhZC5wbGFjZWRPcmllbnRhdGlvbix2PWQuaGlkZGVufHwhZC5jcm9zc1RpbGVJRHx8Zz9udWxsOmFbZC5jcm9zc1RpbGVJRF07aWYodil7dmFyIG09bmV3IHQuUG9pbnQoZC5hbmNob3JYLGQuYW5jaG9yWSkseT1KdChtLG4/bDpzKSx4PS41K28uY2FtZXJhVG9DZW50ZXJEaXN0YW5jZS95LnNpZ25lZERpc3RhbmNlRnJvbUNhbWVyYSouNSxiPWkuZXZhbHVhdGVTaXplRm9yRmVhdHVyZShlLnRleHRTaXplRGF0YSx1LGQpKngvdC5PTkVfRU07biYmKGIqPWUudGlsZVBpeGVsUmF0aW8vYyk7Zm9yKHZhciBfPXYud2lkdGgsdz12LmhlaWdodCxrPXYucmFkaWFsT2Zmc2V0LFQ9di50ZXh0Qm94U2NhbGUsTT1Zcih2LmFuY2hvcixfLHcsayxULGIpLEE9bj9KdChtLmFkZChNKSxzKS5wb2ludDp5LnBvaW50LmFkZChyP00ucm90YXRlKC1vLmFuZ2xlKTpNKSxTPWUuYWxsb3dWZXJ0aWNhbFBsYWNlbWVudCYmZC5wbGFjZWRPcmllbnRhdGlvbj09PXQuV3JpdGluZ01vZGUudmVydGljYWw/TWF0aC5QSS8yOjAsRT0wO0U8ZC5udW1HbHlwaHM7RSsrKXQuYWRkRHluYW1pY0F0dHJpYnV0ZXMoZixBLFMpfWVsc2UgaWUoZC5udW1HbHlwaHMsZil9ZS50ZXh0LmR5bmFtaWNMYXlvdXRWZXJ0ZXhCdWZmZXIudXBkYXRlRGF0YShmKX1mdW5jdGlvbiBYcihlKXt2YXIgcj1lLnRleHQucGxhY2VkU3ltYm9sQXJyYXksbj1lLnRleHQuZHluYW1pY0xheW91dFZlcnRleEFycmF5O24uY2xlYXIoKTtmb3IodmFyIGE9MDthPHIubGVuZ3RoO2ErKyl7dmFyIGk9ci5nZXQoYSk7aWYoaS5oaWRkZW58fCFpLnBsYWNlZE9yaWVudGF0aW9uKWllKGkubnVtR2x5cGhzLG4pO2Vsc2UgZm9yKHZhciBvPW5ldyB0LlBvaW50KGkuYW5jaG9yWCxpLmFuY2hvclkpLHM9ZS5hbGxvd1ZlcnRpY2FsUGxhY2VtZW50JiZpLnBsYWNlZE9yaWVudGF0aW9uPT09dC5Xcml0aW5nTW9kZS52ZXJ0aWNhbD9NYXRoLlBJLzI6MCxsPTA7bDxpLm51bUdseXBocztsKyspdC5hZGREeW5hbWljQXR0cmlidXRlcyhuLG8scyl9ZS50ZXh0LmR5bmFtaWNMYXlvdXRWZXJ0ZXhCdWZmZXIudXBkYXRlRGF0YShuKX1mdW5jdGlvbiBacihlLHIsbixhLGksbyxzLGwsYyx1LGgsZixwKXtmb3IodmFyIGQsZyx2PWUuY29udGV4dCxtPXYuZ2wseT1lLnRyYW5zZm9ybSx4PSJtYXAiPT09bCxiPSJtYXAiPT09YyxfPXgmJiJwb2ludCIhPT1uLmxheW91dC5nZXQoInN5bWJvbC1wbGFjZW1lbnQiKSx3PXgmJiFiJiYhXyxrPXZvaWQgMCE9PW4ubGF5b3V0LmdldCgic3ltYm9sLXNvcnQta2V5IikuY29uc3RhbnRPcigxKSxUPWUuZGVwdGhNb2RlRm9yU3VibGF5ZXIoMCxNdC5SZWFkT25seSksTT1uLmxheW91dC5nZXQoInRleHQtdmFyaWFibGUtYW5jaG9yIiksQT1bXSxTPTAsRT1hO1M8RS5sZW5ndGg7Uys9MSl7dmFyIEw9RVtTXSxDPXIuZ2V0VGlsZShMKSxQPUMuZ2V0QnVja2V0KG4pO2lmKFApe3ZhciBPPWk/UC50ZXh0OlAuaWNvbjtpZihPJiZPLnNlZ21lbnRzLmdldCgpLmxlbmd0aCl7dmFyIHo9Ty5wcm9ncmFtQ29uZmlndXJhdGlvbnMuZ2V0KG4uaWQpLEk9aXx8UC5zZGZJY29ucyxEPWk/UC50ZXh0U2l6ZURhdGE6UC5pY29uU2l6ZURhdGE7ZHx8KGQ9ZS51c2VQcm9ncmFtKEk/InN5bWJvbFNERiI6InN5bWJvbEljb24iLHopLGc9dC5ldmFsdWF0ZVNpemVGb3Jab29tKEQseS56b29tKSksdi5hY3RpdmVUZXh0dXJlLnNldChtLlRFWFRVUkUwKTt2YXIgUj12b2lkIDAsRj12b2lkIDAsQj12b2lkIDA7aWYoaSlGPUMuZ2x5cGhBdGxhc1RleHR1cmUsQj1tLkxJTkVBUixSPUMuZ2x5cGhBdGxhc1RleHR1cmUuc2l6ZTtlbHNle3ZhciBOPTEhPT1uLmxheW91dC5nZXQoImljb24tc2l6ZSIpLmNvbnN0YW50T3IoMCl8fFAuaWNvbnNOZWVkTGluZWFyLGo9Ynx8MCE9PXkucGl0Y2g7Rj1DLmltYWdlQXRsYXNUZXh0dXJlLEI9SXx8ZS5vcHRpb25zLnJvdGF0aW5nfHxlLm9wdGlvbnMuem9vbWluZ3x8Tnx8aj9tLkxJTkVBUjptLk5FQVJFU1QsUj1DLmltYWdlQXRsYXNUZXh0dXJlLnNpemV9dmFyIFY9Y2UoQywxLGUudHJhbnNmb3JtLnpvb20pLFU9WHQoTC5wb3NNYXRyaXgsYix4LGUudHJhbnNmb3JtLFYpLHE9WnQoTC5wb3NNYXRyaXgsYix4LGUudHJhbnNmb3JtLFYpO2lmKF8pUXQoUCxMLnBvc01hdHJpeCxlLGksVSxxLGIsdSk7ZWxzZSBpZihpJiZnJiZNKXt2YXIgSD1NYXRoLnBvdygyLHkuem9vbS1DLnRpbGVJRC5vdmVyc2NhbGVkWik7V3IoUCx4LGIscCx0LnN5bWJvbFNpemUseSxVLEwucG9zTWF0cml4LEgsZyl9ZWxzZSBpJiZnJiZQLmFsbG93VmVydGljYWxQbGFjZW1lbnQmJlhyKFApO3ZhciBHPWUudHJhbnNsYXRlUG9zTWF0cml4KEwucG9zTWF0cml4LEMsbyxzKSxZPV98fGkmJk0/R3I6VSxXPWUudHJhbnNsYXRlUG9zTWF0cml4KHEsQyxvLHMsITApLFg9SSYmMCE9PW4ucGFpbnQuZ2V0KGk/InRleHQtaGFsby13aWR0aCI6Imljb24taGFsby13aWR0aCIpLmNvbnN0YW50T3IoMSksWj17cHJvZ3JhbTpkLGJ1ZmZlcnM6Tyx1bmlmb3JtVmFsdWVzOkk/QnIoRC5raW5kLGcsdyxiLGUsRyxZLFcsaSxSLCEwKTpGcihELmtpbmQsZyx3LGIsZSxHLFksVyxpLFIpLGF0bGFzVGV4dHVyZTpGLGF0bGFzSW50ZXJwb2xhdGlvbjpCLGlzU0RGOkksaGFzSGFsbzpYfTtpZihrKWZvcih2YXIgSj0wLEs9Ty5zZWdtZW50cy5nZXQoKTtKPEsubGVuZ3RoO0orPTEpe3ZhciBRPUtbSl07QS5wdXNoKHtzZWdtZW50czpuZXcgdC5TZWdtZW50VmVjdG9yKFtRXSksc29ydEtleTpRLnNvcnRLZXksc3RhdGU6Wn0pfWVsc2UgQS5wdXNoKHtzZWdtZW50czpPLnNlZ21lbnRzLHNvcnRLZXk6MCxzdGF0ZTpafSl9fX1rJiZBLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5zb3J0S2V5LWUuc29ydEtleX0pO2Zvcih2YXIgJD0wLHR0PUE7JDx0dC5sZW5ndGg7JCs9MSl7dmFyIGV0PXR0WyRdLHJ0PWV0LnN0YXRlO2lmKHJ0LmF0bGFzVGV4dHVyZS5iaW5kKHJ0LmF0bGFzSW50ZXJwb2xhdGlvbixtLkNMQU1QX1RPX0VER0UpLHJ0LmlzU0RGKXt2YXIgbnQ9cnQudW5pZm9ybVZhbHVlcztydC5oYXNIYWxvJiYobnQudV9pc19oYWxvPTEsSnIocnQuYnVmZmVycyxldC5zZWdtZW50cyxuLGUscnQucHJvZ3JhbSxULGgsZixudCkpLG50LnVfaXNfaGFsbz0wfUpyKHJ0LmJ1ZmZlcnMsZXQuc2VnbWVudHMsbixlLHJ0LnByb2dyYW0sVCxoLGYscnQudW5pZm9ybVZhbHVlcyl9fWZ1bmN0aW9uIEpyKHQsZSxyLG4sYSxpLG8scyxsKXt2YXIgYz1uLmNvbnRleHQsdT1jLmdsO2EuZHJhdyhjLHUuVFJJQU5HTEVTLGksbyxzLEV0LmRpc2FibGVkLGwsci5pZCx0LmxheW91dFZlcnRleEJ1ZmZlcix0LmluZGV4QnVmZmVyLGUsci5wYWludCxuLnRyYW5zZm9ybS56b29tLHQucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLmdldChyLmlkKSx0LmR5bmFtaWNMYXlvdXRWZXJ0ZXhCdWZmZXIsdC5vcGFjaXR5VmVydGV4QnVmZmVyKX1mdW5jdGlvbiBLcih0LGUscixuLGEsaSxvKXt2YXIgcyxsLGMsdSxoLGY9dC5jb250ZXh0LmdsLHA9ci5wYWludC5nZXQoImZpbGwtcGF0dGVybiIpLGQ9cCYmcC5jb25zdGFudE9yKDEpLGc9ci5nZXRDcm9zc2ZhZGVQYXJhbWV0ZXJzKCk7bz8obD1kJiYhci5nZXRQYWludFByb3BlcnR5KCJmaWxsLW91dGxpbmUtY29sb3IiKT8iZmlsbE91dGxpbmVQYXR0ZXJuIjoiZmlsbE91dGxpbmUiLHM9Zi5MSU5FUyk6KGw9ZD8iZmlsbFBhdHRlcm4iOiJmaWxsIixzPWYuVFJJQU5HTEVTKTtmb3IodmFyIHY9MCxtPW47djxtLmxlbmd0aDt2Kz0xKXt2YXIgeT1tW3ZdLHg9ZS5nZXRUaWxlKHkpO2lmKCFkfHx4LnBhdHRlcm5zTG9hZGVkKCkpe3ZhciBiPXguZ2V0QnVja2V0KHIpO2lmKGIpe3ZhciBfPWIucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLmdldChyLmlkKSx3PXQudXNlUHJvZ3JhbShsLF8pO2QmJih0LmNvbnRleHQuYWN0aXZlVGV4dHVyZS5zZXQoZi5URVhUVVJFMCkseC5pbWFnZUF0bGFzVGV4dHVyZS5iaW5kKGYuTElORUFSLGYuQ0xBTVBfVE9fRURHRSksXy51cGRhdGVQYXR0ZXJuUGFpbnRCdWZmZXJzKGcpKTt2YXIgaz1wLmNvbnN0YW50T3IobnVsbCk7aWYoayYmeC5pbWFnZUF0bGFzKXt2YXIgVD14LmltYWdlQXRsYXMucGF0dGVyblBvc2l0aW9uc1trLnRvXSxNPXguaW1hZ2VBdGxhcy5wYXR0ZXJuUG9zaXRpb25zW2suZnJvbV07VCYmTSYmXy5zZXRDb25zdGFudFBhdHRlcm5Qb3NpdGlvbnMoVCxNKX12YXIgQT10LnRyYW5zbGF0ZVBvc01hdHJpeCh5LnBvc01hdHJpeCx4LHIucGFpbnQuZ2V0KCJmaWxsLXRyYW5zbGF0ZSIpLHIucGFpbnQuZ2V0KCJmaWxsLXRyYW5zbGF0ZS1hbmNob3IiKSk7aWYobyl7dT1iLmluZGV4QnVmZmVyMixoPWIuc2VnbWVudHMyO3ZhciBTPVtmLmRyYXdpbmdCdWZmZXJXaWR0aCxmLmRyYXdpbmdCdWZmZXJIZWlnaHRdO2M9ImZpbGxPdXRsaW5lUGF0dGVybiI9PT1sJiZkP3hyKEEsdCxnLHgsUyk6eXIoQSxTKX1lbHNlIHU9Yi5pbmRleEJ1ZmZlcixoPWIuc2VnbWVudHMsYz1kP21yKEEsdCxnLHgpOnZyKEEpO3cuZHJhdyh0LmNvbnRleHQscyxhLHQuc3RlbmNpbE1vZGVGb3JDbGlwcGluZyh5KSxpLEV0LmRpc2FibGVkLGMsci5pZCxiLmxheW91dFZlcnRleEJ1ZmZlcix1LGgsci5wYWludCx0LnRyYW5zZm9ybS56b29tLF8pfX19fWZ1bmN0aW9uIFFyKHQsZSxyLG4sYSxpLG8pe2Zvcih2YXIgcz10LmNvbnRleHQsbD1zLmdsLGM9ci5wYWludC5nZXQoImZpbGwtZXh0cnVzaW9uLXBhdHRlcm4iKSx1PWMuY29uc3RhbnRPcigxKSxoPXIuZ2V0Q3Jvc3NmYWRlUGFyYW1ldGVycygpLGY9ci5wYWludC5nZXQoImZpbGwtZXh0cnVzaW9uLW9wYWNpdHkiKSxwPTAsZD1uO3A8ZC5sZW5ndGg7cCs9MSl7dmFyIGc9ZFtwXSx2PWUuZ2V0VGlsZShnKSxtPXYuZ2V0QnVja2V0KHIpO2lmKG0pe3ZhciB5PW0ucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLmdldChyLmlkKSx4PXQudXNlUHJvZ3JhbSh1PyJmaWxsRXh0cnVzaW9uUGF0dGVybiI6ImZpbGxFeHRydXNpb24iLHkpO3UmJih0LmNvbnRleHQuYWN0aXZlVGV4dHVyZS5zZXQobC5URVhUVVJFMCksdi5pbWFnZUF0bGFzVGV4dHVyZS5iaW5kKGwuTElORUFSLGwuQ0xBTVBfVE9fRURHRSkseS51cGRhdGVQYXR0ZXJuUGFpbnRCdWZmZXJzKGgpKTt2YXIgYj1jLmNvbnN0YW50T3IobnVsbCk7aWYoYiYmdi5pbWFnZUF0bGFzKXt2YXIgXz12LmltYWdlQXRsYXMucGF0dGVyblBvc2l0aW9uc1tiLnRvXSx3PXYuaW1hZ2VBdGxhcy5wYXR0ZXJuUG9zaXRpb25zW2IuZnJvbV07XyYmdyYmeS5zZXRDb25zdGFudFBhdHRlcm5Qb3NpdGlvbnMoXyx3KX12YXIgaz10LnRyYW5zbGF0ZVBvc01hdHJpeChnLnBvc01hdHJpeCx2LHIucGFpbnQuZ2V0KCJmaWxsLWV4dHJ1c2lvbi10cmFuc2xhdGUiKSxyLnBhaW50LmdldCgiZmlsbC1leHRydXNpb24tdHJhbnNsYXRlLWFuY2hvciIpKSxUPXIucGFpbnQuZ2V0KCJmaWxsLWV4dHJ1c2lvbi12ZXJ0aWNhbC1ncmFkaWVudCIpLE09dT9ncihrLHQsVCxmLGcsaCx2KTpkcihrLHQsVCxmKTt4LmRyYXcocyxzLmdsLlRSSUFOR0xFUyxhLGksbyxFdC5iYWNrQ0NXLE0sci5pZCxtLmxheW91dFZlcnRleEJ1ZmZlcixtLmluZGV4QnVmZmVyLG0uc2VnbWVudHMsci5wYWludCx0LnRyYW5zZm9ybS56b29tLHkpfX19ZnVuY3Rpb24gJHIodCxlLHIsbixhLGkpe3ZhciBvPXQuY29udGV4dCxzPW8uZ2wsbD1lLmZibztpZihsKXt2YXIgYz10LnVzZVByb2dyYW0oImhpbGxzaGFkZSIpO28uYWN0aXZlVGV4dHVyZS5zZXQocy5URVhUVVJFMCkscy5iaW5kVGV4dHVyZShzLlRFWFRVUkVfMkQsbC5jb2xvckF0dGFjaG1lbnQuZ2V0KCkpO3ZhciB1PUFyKHQsZSxyKTtlLm1hc2tlZEJvdW5kc0J1ZmZlciYmZS5tYXNrZWRJbmRleEJ1ZmZlciYmZS5zZWdtZW50cz9jLmRyYXcobyxzLlRSSUFOR0xFUyxuLGEsaSxFdC5kaXNhYmxlZCx1LHIuaWQsZS5tYXNrZWRCb3VuZHNCdWZmZXIsZS5tYXNrZWRJbmRleEJ1ZmZlcixlLnNlZ21lbnRzKTpjLmRyYXcobyxzLlRSSUFOR0xFUyxuLGEsaSxFdC5kaXNhYmxlZCx1LHIuaWQsdC5yYXN0ZXJCb3VuZHNCdWZmZXIsdC5xdWFkVHJpYW5nbGVJbmRleEJ1ZmZlcix0LnJhc3RlckJvdW5kc1NlZ21lbnRzKX19ZnVuY3Rpb24gdG4oZSxyLG4sYSxpLG8scyl7dmFyIGw9ZS5jb250ZXh0LGM9bC5nbDtpZihyLmRlbSYmci5kZW0uZGF0YSl7dmFyIHU9ci5kZW0uZGltLGg9ci5kZW0uc3RyaWRlLGY9ci5kZW0uZ2V0UGl4ZWxzKCk7aWYobC5hY3RpdmVUZXh0dXJlLnNldChjLlRFWFRVUkUxKSxsLnBpeGVsU3RvcmVVbnBhY2tQcmVtdWx0aXBseUFscGhhLnNldCghMSksci5kZW1UZXh0dXJlPXIuZGVtVGV4dHVyZXx8ZS5nZXRUaWxlVGV4dHVyZShoKSxyLmRlbVRleHR1cmUpe3ZhciBwPXIuZGVtVGV4dHVyZTtwLnVwZGF0ZShmLHtwcmVtdWx0aXBseTohMX0pLHAuYmluZChjLk5FQVJFU1QsYy5DTEFNUF9UT19FREdFKX1lbHNlIHIuZGVtVGV4dHVyZT1uZXcgdC5UZXh0dXJlKGwsZixjLlJHQkEse3ByZW11bHRpcGx5OiExfSksci5kZW1UZXh0dXJlLmJpbmQoYy5ORUFSRVNULGMuQ0xBTVBfVE9fRURHRSk7bC5hY3RpdmVUZXh0dXJlLnNldChjLlRFWFRVUkUwKTt2YXIgZD1yLmZibztpZighZCl7dmFyIGc9bmV3IHQuVGV4dHVyZShsLHt3aWR0aDp1LGhlaWdodDp1LGRhdGE6bnVsbH0sYy5SR0JBKTtnLmJpbmQoYy5MSU5FQVIsYy5DTEFNUF9UT19FREdFKSwoZD1yLmZibz1sLmNyZWF0ZUZyYW1lYnVmZmVyKHUsdSkpLmNvbG9yQXR0YWNobWVudC5zZXQoZy50ZXh0dXJlKX1sLmJpbmRGcmFtZWJ1ZmZlci5zZXQoZC5mcmFtZWJ1ZmZlciksbC52aWV3cG9ydC5zZXQoWzAsMCx1LHVdKSxlLnVzZVByb2dyYW0oImhpbGxzaGFkZVByZXBhcmUiKS5kcmF3KGwsYy5UUklBTkdMRVMsaSxvLHMsRXQuZGlzYWJsZWQsU3IocixhKSxuLmlkLGUucmFzdGVyQm91bmRzQnVmZmVyLGUucXVhZFRyaWFuZ2xlSW5kZXhCdWZmZXIsZS5yYXN0ZXJCb3VuZHNTZWdtZW50cyksci5uZWVkc0hpbGxzaGFkZVByZXBhcmU9ITF9fWZ1bmN0aW9uIGVuKGUscixuLGEsaSl7dmFyIG89YS5wYWludC5nZXQoInJhc3Rlci1mYWRlLWR1cmF0aW9uIik7aWYobz4wKXt2YXIgcz10LmJyb3dzZXIubm93KCksbD0ocy1lLnRpbWVBZGRlZCkvbyxjPXI/KHMtci50aW1lQWRkZWQpL286LTEsdT1uLmdldFNvdXJjZSgpLGg9aS5jb3ZlcmluZ1pvb21MZXZlbCh7dGlsZVNpemU6dS50aWxlU2l6ZSxyb3VuZFpvb206dS5yb3VuZFpvb219KSxmPSFyfHxNYXRoLmFicyhyLnRpbGVJRC5vdmVyc2NhbGVkWi1oKT5NYXRoLmFicyhlLnRpbGVJRC5vdmVyc2NhbGVkWi1oKSxwPWYmJmUucmVmcmVzaGVkVXBvbkV4cGlyYXRpb24/MTp0LmNsYW1wKGY/bDoxLWMsMCwxKTtyZXR1cm4gZS5yZWZyZXNoZWRVcG9uRXhwaXJhdGlvbiYmbD49MSYmKGUucmVmcmVzaGVkVXBvbkV4cGlyYXRpb249ITEpLHI/e29wYWNpdHk6MSxtaXg6MS1wfTp7b3BhY2l0eTpwLG1peDowfX1yZXR1cm57b3BhY2l0eToxLG1peDowfX1mdW5jdGlvbiBybihlLHIsbil7dmFyIGE9ZS5jb250ZXh0LGk9YS5nbCxvPW4ucG9zTWF0cml4LHM9ZS51c2VQcm9ncmFtKCJkZWJ1ZyIpLGw9TXQuZGlzYWJsZWQsYz1BdC5kaXNhYmxlZCx1PWUuY29sb3JNb2RlRm9yUmVuZGVyUGFzcygpLGg9IiRkZWJ1ZyI7cy5kcmF3KGEsaS5MSU5FX1NUUklQLGwsYyx1LEV0LmRpc2FibGVkLGtyKG8sdC5Db2xvci5yZWQpLGgsZS5kZWJ1Z0J1ZmZlcixlLnRpbGVCb3JkZXJJbmRleEJ1ZmZlcixlLmRlYnVnU2VnbWVudHMpO2Zvcih2YXIgZj1yLmdldFRpbGVCeUlEKG4ua2V5KS5sYXRlc3RSYXdUaWxlRGF0YSxwPWYmJmYuYnl0ZUxlbmd0aHx8MCxkPU1hdGguZmxvb3IocC8xMDI0KSxnPXIuZ2V0VGlsZShuKS50aWxlU2l6ZSx2PTUxMi9NYXRoLm1pbihnLDUxMiksbT1mdW5jdGlvbih0LGUscixuKXtuPW58fDE7dmFyIGEsaSxvLHMsbCxjLHUsaCxmPVtdO2ZvcihhPTAsaT10Lmxlbmd0aDthPGk7YSsrKWlmKGw9bm5bdFthXV0pe2ZvcihoPW51bGwsbz0wLHM9bFsxXS5sZW5ndGg7bzxzO28rPTIpLTE9PT1sWzFdW29dJiYtMT09PWxbMV1bbysxXT9oPW51bGw6KGM9ZStsWzFdW29dKm4sdT1yLWxbMV1bbysxXSpuLGgmJmYucHVzaChoLngsaC55LGMsdSksaD17eDpjLHk6dX0pO2UrPWxbMF0qbn1yZXR1cm4gZn0obi50b1N0cmluZygpKyIgIitkKyJrYiIsNTAsMjAwKnYsNSp2KSx5PW5ldyB0LlN0cnVjdEFycmF5TGF5b3V0Mmk0LHg9bmV3IHQuU3RydWN0QXJyYXlMYXlvdXQydWk0LGI9MDtiPG0ubGVuZ3RoO2IrPTIpeS5lbXBsYWNlQmFjayhtW2JdLG1bYisxXSkseC5lbXBsYWNlQmFjayhiLGIrMSk7Zm9yKHZhciBfPWEuY3JlYXRlVmVydGV4QnVmZmVyKHksRmUubWVtYmVycyksdz1hLmNyZWF0ZUluZGV4QnVmZmVyKHgpLGs9dC5TZWdtZW50VmVjdG9yLnNpbXBsZVNlZ21lbnQoMCwwLHkubGVuZ3RoLzIseS5sZW5ndGgvMiksVD10LkVYVEVOVC8oTWF0aC5wb3coMixlLnRyYW5zZm9ybS56b29tLW4ub3ZlcnNjYWxlZFopKmcqdiksTT1bXSxBPS0xO0E8PTE7QSsrKWZvcih2YXIgUz0tMTtTPD0xJiYoMCE9PUF8fDAhPT1TKTtTKyspTS5wdXNoKFtBLFNdKTtmb3IodmFyIEU9MDtFPE0ubGVuZ3RoO0UrKyl7dmFyIEw9TVtFXTtzLmRyYXcoYSxpLkxJTkVTLGwsYyx1LEV0LmRpc2FibGVkLGtyKHQudHJhbnNsYXRlKFtdLG8sW1QqTFswXSxUKkxbMV0sMF0pLHQuQ29sb3Iud2hpdGUpLGgsXyx3LGspfXMuZHJhdyhhLGkuTElORVMsbCxjLHUsRXQuZGlzYWJsZWQsa3Iobyx0LkNvbG9yLmJsYWNrKSxoLF8sdyxrKX12YXIgbm49eyIgIjpbMTYsW11dLCIhIjpbMTAsWzUsMjEsNSw3LC0xLC0xLDUsMiw0LDEsNSwwLDYsMSw1LDJdXSwnIic6WzE2LFs0LDIxLDQsMTQsLTEsLTEsMTIsMjEsMTIsMTRdXSwiIyI6WzIxLFsxMSwyNSw0LC03LC0xLC0xLDE3LDI1LDEwLC03LC0xLC0xLDQsMTIsMTgsMTIsLTEsLTEsMyw2LDE3LDZdXSwkOlsyMCxbOCwyNSw4LC00LC0xLC0xLDEyLDI1LDEyLC00LC0xLC0xLDE3LDE4LDE1LDIwLDEyLDIxLDgsMjEsNSwyMCwzLDE4LDMsMTYsNCwxNCw1LDEzLDcsMTIsMTMsMTAsMTUsOSwxNiw4LDE3LDYsMTcsMywxNSwxLDEyLDAsOCwwLDUsMSwzLDNdXSwiJSI6WzI0LFsyMSwyMSwzLDAsLTEsLTEsOCwyMSwxMCwxOSwxMCwxNyw5LDE1LDcsMTQsNSwxNCwzLDE2LDMsMTgsNCwyMCw2LDIxLDgsMjEsMTAsMjAsMTMsMTksMTYsMTksMTksMjAsMjEsMjEsLTEsLTEsMTcsNywxNSw2LDE0LDQsMTQsMiwxNiwwLDE4LDAsMjAsMSwyMSwzLDIxLDUsMTksNywxNyw3XV0sIiYiOlsyNixbMjMsMTIsMjMsMTMsMjIsMTQsMjEsMTQsMjAsMTMsMTksMTEsMTcsNiwxNSwzLDEzLDEsMTEsMCw3LDAsNSwxLDQsMiwzLDQsMyw2LDQsOCw1LDksMTIsMTMsMTMsMTQsMTQsMTYsMTQsMTgsMTMsMjAsMTEsMjEsOSwyMCw4LDE4LDgsMTYsOSwxMywxMSwxMCwxNiwzLDE4LDEsMjAsMCwyMiwwLDIzLDEsMjMsMl1dLCInIjpbMTAsWzUsMTksNCwyMCw1LDIxLDYsMjAsNiwxOCw1LDE2LDQsMTVdXSwiKCI6WzE0LFsxMSwyNSw5LDIzLDcsMjAsNSwxNiw0LDExLDQsNyw1LDIsNywtMiw5LC01LDExLC03XV0sIikiOlsxNCxbMywyNSw1LDIzLDcsMjAsOSwxNiwxMCwxMSwxMCw3LDksMiw3LC0yLDUsLTUsMywtN11dLCIqIjpbMTYsWzgsMjEsOCw5LC0xLC0xLDMsMTgsMTMsMTIsLTEsLTEsMTMsMTgsMywxMl1dLCIrIjpbMjYsWzEzLDE4LDEzLDAsLTEsLTEsNCw5LDIyLDldXSwiLCI6WzEwLFs2LDEsNSwwLDQsMSw1LDIsNiwxLDYsLTEsNSwtMyw0LC00XV0sIi0iOlsyNixbNCw5LDIyLDldXSwiLiI6WzEwLFs1LDIsNCwxLDUsMCw2LDEsNSwyXV0sIi8iOlsyMixbMjAsMjUsMiwtN11dLDA6WzIwLFs5LDIxLDYsMjAsNCwxNywzLDEyLDMsOSw0LDQsNiwxLDksMCwxMSwwLDE0LDEsMTYsNCwxNyw5LDE3LDEyLDE2LDE3LDE0LDIwLDExLDIxLDksMjFdXSwxOlsyMCxbNiwxNyw4LDE4LDExLDIxLDExLDBdXSwyOlsyMCxbNCwxNiw0LDE3LDUsMTksNiwyMCw4LDIxLDEyLDIxLDE0LDIwLDE1LDE5LDE2LDE3LDE2LDE1LDE1LDEzLDEzLDEwLDMsMCwxNywwXV0sMzpbMjAsWzUsMjEsMTYsMjEsMTAsMTMsMTMsMTMsMTUsMTIsMTYsMTEsMTcsOCwxNyw2LDE2LDMsMTQsMSwxMSwwLDgsMCw1LDEsNCwyLDMsNF1dLDQ6WzIwLFsxMywyMSwzLDcsMTgsNywtMSwtMSwxMywyMSwxMywwXV0sNTpbMjAsWzE1LDIxLDUsMjEsNCwxMiw1LDEzLDgsMTQsMTEsMTQsMTQsMTMsMTYsMTEsMTcsOCwxNyw2LDE2LDMsMTQsMSwxMSwwLDgsMCw1LDEsNCwyLDMsNF1dLDY6WzIwLFsxNiwxOCwxNSwyMCwxMiwyMSwxMCwyMSw3LDIwLDUsMTcsNCwxMiw0LDcsNSwzLDcsMSwxMCwwLDExLDAsMTQsMSwxNiwzLDE3LDYsMTcsNywxNiwxMCwxNCwxMiwxMSwxMywxMCwxMyw3LDEyLDUsMTAsNCw3XV0sNzpbMjAsWzE3LDIxLDcsMCwtMSwtMSwzLDIxLDE3LDIxXV0sODpbMjAsWzgsMjEsNSwyMCw0LDE4LDQsMTYsNSwxNCw3LDEzLDExLDEyLDE0LDExLDE2LDksMTcsNywxNyw0LDE2LDIsMTUsMSwxMiwwLDgsMCw1LDEsNCwyLDMsNCwzLDcsNCw5LDYsMTEsOSwxMiwxMywxMywxNSwxNCwxNiwxNiwxNiwxOCwxNSwyMCwxMiwyMSw4LDIxXV0sOTpbMjAsWzE2LDE0LDE1LDExLDEzLDksMTAsOCw5LDgsNiw5LDQsMTEsMywxNCwzLDE1LDQsMTgsNiwyMCw5LDIxLDEwLDIxLDEzLDIwLDE1LDE4LDE2LDE0LDE2LDksMTUsNCwxMywxLDEwLDAsOCwwLDUsMSw0LDNdXSwiOiI6WzEwLFs1LDE0LDQsMTMsNSwxMiw2LDEzLDUsMTQsLTEsLTEsNSwyLDQsMSw1LDAsNiwxLDUsMl1dLCI7IjpbMTAsWzUsMTQsNCwxMyw1LDEyLDYsMTMsNSwxNCwtMSwtMSw2LDEsNSwwLDQsMSw1LDIsNiwxLDYsLTEsNSwtMyw0LC00XV0sIjwiOlsyNCxbMjAsMTgsNCw5LDIwLDBdXSwiPSI6WzI2LFs0LDEyLDIyLDEyLC0xLC0xLDQsNiwyMiw2XV0sIj4iOlsyNCxbNCwxOCwyMCw5LDQsMF1dLCI/IjpbMTgsWzMsMTYsMywxNyw0LDE5LDUsMjAsNywyMSwxMSwyMSwxMywyMCwxNCwxOSwxNSwxNywxNSwxNSwxNCwxMywxMywxMiw5LDEwLDksNywtMSwtMSw5LDIsOCwxLDksMCwxMCwxLDksMl1dLCJAIjpbMjcsWzE4LDEzLDE3LDE1LDE1LDE2LDEyLDE2LDEwLDE1LDksMTQsOCwxMSw4LDgsOSw2LDExLDUsMTQsNSwxNiw2LDE3LDgsLTEsLTEsMTIsMTYsMTAsMTQsOSwxMSw5LDgsMTAsNiwxMSw1LC0xLC0xLDE4LDE2LDE3LDgsMTcsNiwxOSw1LDIxLDUsMjMsNywyNCwxMCwyNCwxMiwyMywxNSwyMiwxNywyMCwxOSwxOCwyMCwxNSwyMSwxMiwyMSw5LDIwLDcsMTksNSwxNyw0LDE1LDMsMTIsMyw5LDQsNiw1LDQsNywyLDksMSwxMiwwLDE1LDAsMTgsMSwyMCwyLDIxLDMsLTEsLTEsMTksMTYsMTgsOCwxOCw2LDE5LDVdXSxBOlsxOCxbOSwyMSwxLDAsLTEsLTEsOSwyMSwxNywwLC0xLC0xLDQsNywxNCw3XV0sQjpbMjEsWzQsMjEsNCwwLC0xLC0xLDQsMjEsMTMsMjEsMTYsMjAsMTcsMTksMTgsMTcsMTgsMTUsMTcsMTMsMTYsMTIsMTMsMTEsLTEsLTEsNCwxMSwxMywxMSwxNiwxMCwxNyw5LDE4LDcsMTgsNCwxNywyLDE2LDEsMTMsMCw0LDBdXSxDOlsyMSxbMTgsMTYsMTcsMTgsMTUsMjAsMTMsMjEsOSwyMSw3LDIwLDUsMTgsNCwxNiwzLDEzLDMsOCw0LDUsNSwzLDcsMSw5LDAsMTMsMCwxNSwxLDE3LDMsMTgsNV1dLEQ6WzIxLFs0LDIxLDQsMCwtMSwtMSw0LDIxLDExLDIxLDE0LDIwLDE2LDE4LDE3LDE2LDE4LDEzLDE4LDgsMTcsNSwxNiwzLDE0LDEsMTEsMCw0LDBdXSxFOlsxOSxbNCwyMSw0LDAsLTEsLTEsNCwyMSwxNywyMSwtMSwtMSw0LDExLDEyLDExLC0xLC0xLDQsMCwxNywwXV0sRjpbMTgsWzQsMjEsNCwwLC0xLC0xLDQsMjEsMTcsMjEsLTEsLTEsNCwxMSwxMiwxMV1dLEc6WzIxLFsxOCwxNiwxNywxOCwxNSwyMCwxMywyMSw5LDIxLDcsMjAsNSwxOCw0LDE2LDMsMTMsMyw4LDQsNSw1LDMsNywxLDksMCwxMywwLDE1LDEsMTcsMywxOCw1LDE4LDgsLTEsLTEsMTMsOCwxOCw4XV0sSDpbMjIsWzQsMjEsNCwwLC0xLC0xLDE4LDIxLDE4LDAsLTEsLTEsNCwxMSwxOCwxMV1dLEk6WzgsWzQsMjEsNCwwXV0sSjpbMTYsWzEyLDIxLDEyLDUsMTEsMiwxMCwxLDgsMCw2LDAsNCwxLDMsMiwyLDUsMiw3XV0sSzpbMjEsWzQsMjEsNCwwLC0xLC0xLDE4LDIxLDQsNywtMSwtMSw5LDEyLDE4LDBdXSxMOlsxNyxbNCwyMSw0LDAsLTEsLTEsNCwwLDE2LDBdXSxNOlsyNCxbNCwyMSw0LDAsLTEsLTEsNCwyMSwxMiwwLC0xLC0xLDIwLDIxLDEyLDAsLTEsLTEsMjAsMjEsMjAsMF1dLE46WzIyLFs0LDIxLDQsMCwtMSwtMSw0LDIxLDE4LDAsLTEsLTEsMTgsMjEsMTgsMF1dLE86WzIyLFs5LDIxLDcsMjAsNSwxOCw0LDE2LDMsMTMsMyw4LDQsNSw1LDMsNywxLDksMCwxMywwLDE1LDEsMTcsMywxOCw1LDE5LDgsMTksMTMsMTgsMTYsMTcsMTgsMTUsMjAsMTMsMjEsOSwyMV1dLFA6WzIxLFs0LDIxLDQsMCwtMSwtMSw0LDIxLDEzLDIxLDE2LDIwLDE3LDE5LDE4LDE3LDE4LDE0LDE3LDEyLDE2LDExLDEzLDEwLDQsMTBdXSxROlsyMixbOSwyMSw3LDIwLDUsMTgsNCwxNiwzLDEzLDMsOCw0LDUsNSwzLDcsMSw5LDAsMTMsMCwxNSwxLDE3LDMsMTgsNSwxOSw4LDE5LDEzLDE4LDE2LDE3LDE4LDE1LDIwLDEzLDIxLDksMjEsLTEsLTEsMTIsNCwxOCwtMl1dLFI6WzIxLFs0LDIxLDQsMCwtMSwtMSw0LDIxLDEzLDIxLDE2LDIwLDE3LDE5LDE4LDE3LDE4LDE1LDE3LDEzLDE2LDEyLDEzLDExLDQsMTEsLTEsLTEsMTEsMTEsMTgsMF1dLFM6WzIwLFsxNywxOCwxNSwyMCwxMiwyMSw4LDIxLDUsMjAsMywxOCwzLDE2LDQsMTQsNSwxMyw3LDEyLDEzLDEwLDE1LDksMTYsOCwxNyw2LDE3LDMsMTUsMSwxMiwwLDgsMCw1LDEsMywzXV0sVDpbMTYsWzgsMjEsOCwwLC0xLC0xLDEsMjEsMTUsMjFdXSxVOlsyMixbNCwyMSw0LDYsNSwzLDcsMSwxMCwwLDEyLDAsMTUsMSwxNywzLDE4LDYsMTgsMjFdXSxWOlsxOCxbMSwyMSw5LDAsLTEsLTEsMTcsMjEsOSwwXV0sVzpbMjQsWzIsMjEsNywwLC0xLC0xLDEyLDIxLDcsMCwtMSwtMSwxMiwyMSwxNywwLC0xLC0xLDIyLDIxLDE3LDBdXSxYOlsyMCxbMywyMSwxNywwLC0xLC0xLDE3LDIxLDMsMF1dLFk6WzE4LFsxLDIxLDksMTEsOSwwLC0xLC0xLDE3LDIxLDksMTFdXSxaOlsyMCxbMTcsMjEsMywwLC0xLC0xLDMsMjEsMTcsMjEsLTEsLTEsMywwLDE3LDBdXSwiWyI6WzE0LFs0LDI1LDQsLTcsLTEsLTEsNSwyNSw1LC03LC0xLC0xLDQsMjUsMTEsMjUsLTEsLTEsNCwtNywxMSwtN11dLCJcXCI6WzE0LFswLDIxLDE0LC0zXV0sIl0iOlsxNCxbOSwyNSw5LC03LC0xLC0xLDEwLDI1LDEwLC03LC0xLC0xLDMsMjUsMTAsMjUsLTEsLTEsMywtNywxMCwtN11dLCJeIjpbMTYsWzYsMTUsOCwxOCwxMCwxNSwtMSwtMSwzLDEyLDgsMTcsMTMsMTIsLTEsLTEsOCwxNyw4LDBdXSxfOlsxNixbMCwtMiwxNiwtMl1dLCJgIjpbMTAsWzYsMjEsNSwyMCw0LDE4LDQsMTYsNSwxNSw2LDE2LDUsMTddXSxhOlsxOSxbMTUsMTQsMTUsMCwtMSwtMSwxNSwxMSwxMywxMywxMSwxNCw4LDE0LDYsMTMsNCwxMSwzLDgsMyw2LDQsMyw2LDEsOCwwLDExLDAsMTMsMSwxNSwzXV0sYjpbMTksWzQsMjEsNCwwLC0xLC0xLDQsMTEsNiwxMyw4LDE0LDExLDE0LDEzLDEzLDE1LDExLDE2LDgsMTYsNiwxNSwzLDEzLDEsMTEsMCw4LDAsNiwxLDQsM11dLGM6WzE4LFsxNSwxMSwxMywxMywxMSwxNCw4LDE0LDYsMTMsNCwxMSwzLDgsMyw2LDQsMyw2LDEsOCwwLDExLDAsMTMsMSwxNSwzXV0sZDpbMTksWzE1LDIxLDE1LDAsLTEsLTEsMTUsMTEsMTMsMTMsMTEsMTQsOCwxNCw2LDEzLDQsMTEsMyw4LDMsNiw0LDMsNiwxLDgsMCwxMSwwLDEzLDEsMTUsM11dLGU6WzE4LFszLDgsMTUsOCwxNSwxMCwxNCwxMiwxMywxMywxMSwxNCw4LDE0LDYsMTMsNCwxMSwzLDgsMyw2LDQsMyw2LDEsOCwwLDExLDAsMTMsMSwxNSwzXV0sZjpbMTIsWzEwLDIxLDgsMjEsNiwyMCw1LDE3LDUsMCwtMSwtMSwyLDE0LDksMTRdXSxnOlsxOSxbMTUsMTQsMTUsLTIsMTQsLTUsMTMsLTYsMTEsLTcsOCwtNyw2LC02LC0xLC0xLDE1LDExLDEzLDEzLDExLDE0LDgsMTQsNiwxMyw0LDExLDMsOCwzLDYsNCwzLDYsMSw4LDAsMTEsMCwxMywxLDE1LDNdXSxoOlsxOSxbNCwyMSw0LDAsLTEsLTEsNCwxMCw3LDEzLDksMTQsMTIsMTQsMTQsMTMsMTUsMTAsMTUsMF1dLGk6WzgsWzMsMjEsNCwyMCw1LDIxLDQsMjIsMywyMSwtMSwtMSw0LDE0LDQsMF1dLGo6WzEwLFs1LDIxLDYsMjAsNywyMSw2LDIyLDUsMjEsLTEsLTEsNiwxNCw2LC0zLDUsLTYsMywtNywxLC03XV0sazpbMTcsWzQsMjEsNCwwLC0xLC0xLDE0LDE0LDQsNCwtMSwtMSw4LDgsMTUsMF1dLGw6WzgsWzQsMjEsNCwwXV0sbTpbMzAsWzQsMTQsNCwwLC0xLC0xLDQsMTAsNywxMyw5LDE0LDEyLDE0LDE0LDEzLDE1LDEwLDE1LDAsLTEsLTEsMTUsMTAsMTgsMTMsMjAsMTQsMjMsMTQsMjUsMTMsMjYsMTAsMjYsMF1dLG46WzE5LFs0LDE0LDQsMCwtMSwtMSw0LDEwLDcsMTMsOSwxNCwxMiwxNCwxNCwxMywxNSwxMCwxNSwwXV0sbzpbMTksWzgsMTQsNiwxMyw0LDExLDMsOCwzLDYsNCwzLDYsMSw4LDAsMTEsMCwxMywxLDE1LDMsMTYsNiwxNiw4LDE1LDExLDEzLDEzLDExLDE0LDgsMTRdXSxwOlsxOSxbNCwxNCw0LC03LC0xLC0xLDQsMTEsNiwxMyw4LDE0LDExLDE0LDEzLDEzLDE1LDExLDE2LDgsMTYsNiwxNSwzLDEzLDEsMTEsMCw4LDAsNiwxLDQsM11dLHE6WzE5LFsxNSwxNCwxNSwtNywtMSwtMSwxNSwxMSwxMywxMywxMSwxNCw4LDE0LDYsMTMsNCwxMSwzLDgsMyw2LDQsMyw2LDEsOCwwLDExLDAsMTMsMSwxNSwzXV0scjpbMTMsWzQsMTQsNCwwLC0xLC0xLDQsOCw1LDExLDcsMTMsOSwxNCwxMiwxNF1dLHM6WzE3LFsxNCwxMSwxMywxMywxMCwxNCw3LDE0LDQsMTMsMywxMSw0LDksNiw4LDExLDcsMTMsNiwxNCw0LDE0LDMsMTMsMSwxMCwwLDcsMCw0LDEsMywzXV0sdDpbMTIsWzUsMjEsNSw0LDYsMSw4LDAsMTAsMCwtMSwtMSwyLDE0LDksMTRdXSx1OlsxOSxbNCwxNCw0LDQsNSwxLDcsMCwxMCwwLDEyLDEsMTUsNCwtMSwtMSwxNSwxNCwxNSwwXV0sdjpbMTYsWzIsMTQsOCwwLC0xLC0xLDE0LDE0LDgsMF1dLHc6WzIyLFszLDE0LDcsMCwtMSwtMSwxMSwxNCw3LDAsLTEsLTEsMTEsMTQsMTUsMCwtMSwtMSwxOSwxNCwxNSwwXV0seDpbMTcsWzMsMTQsMTQsMCwtMSwtMSwxNCwxNCwzLDBdXSx5OlsxNixbMiwxNCw4LDAsLTEsLTEsMTQsMTQsOCwwLDYsLTQsNCwtNiwyLC03LDEsLTddXSx6OlsxNyxbMTQsMTQsMywwLC0xLC0xLDMsMTQsMTQsMTQsLTEsLTEsMywwLDE0LDBdXSwieyI6WzE0LFs5LDI1LDcsMjQsNiwyMyw1LDIxLDUsMTksNiwxNyw3LDE2LDgsMTQsOCwxMiw2LDEwLC0xLC0xLDcsMjQsNiwyMiw2LDIwLDcsMTgsOCwxNyw5LDE1LDksMTMsOCwxMSw0LDksOCw3LDksNSw5LDMsOCwxLDcsMCw2LC0yLDYsLTQsNywtNiwtMSwtMSw2LDgsOCw2LDgsNCw3LDIsNiwxLDUsLTEsNSwtMyw2LC01LDcsLTYsOSwtN11dLCJ8IjpbOCxbNCwyNSw0LC03XV0sIn0iOlsxNCxbNSwyNSw3LDI0LDgsMjMsOSwyMSw5LDE5LDgsMTcsNywxNiw2LDE0LDYsMTIsOCwxMCwtMSwtMSw3LDI0LDgsMjIsOCwyMCw3LDE4LDYsMTcsNSwxNSw1LDEzLDYsMTEsMTAsOSw2LDcsNSw1LDUsMyw2LDEsNywwLDgsLTIsOCwtNCw3LC02LC0xLC0xLDgsOCw2LDYsNiw0LDcsMiw4LDEsOSwtMSw5LC0zLDgsLTUsNywtNiw1LC03XV0sIn4iOlsyNCxbMyw2LDMsOCw0LDExLDYsMTIsOCwxMiwxMCwxMSwxNCw4LDE2LDcsMTgsNywyMCw4LDIxLDEwLC0xLC0xLDMsOCw0LDEwLDYsMTEsOCwxMSwxMCwxMCwxNCw3LDE2LDYsMTgsNiwyMCw3LDIxLDEwLDIxLDEyXV19LGFuPXtzeW1ib2w6ZnVuY3Rpb24odCxlLHIsbixhKXtpZigidHJhbnNsdWNlbnQiPT09dC5yZW5kZXJQYXNzKXt2YXIgaT1BdC5kaXNhYmxlZCxvPXQuY29sb3JNb2RlRm9yUmVuZGVyUGFzcygpOzAhPT1yLnBhaW50LmdldCgiaWNvbi1vcGFjaXR5IikuY29uc3RhbnRPcigxKSYmWnIodCxlLHIsbiwhMSxyLnBhaW50LmdldCgiaWNvbi10cmFuc2xhdGUiKSxyLnBhaW50LmdldCgiaWNvbi10cmFuc2xhdGUtYW5jaG9yIiksci5sYXlvdXQuZ2V0KCJpY29uLXJvdGF0aW9uLWFsaWdubWVudCIpLHIubGF5b3V0LmdldCgiaWNvbi1waXRjaC1hbGlnbm1lbnQiKSxyLmxheW91dC5nZXQoImljb24ta2VlcC11cHJpZ2h0IiksaSxvLGEpLDAhPT1yLnBhaW50LmdldCgidGV4dC1vcGFjaXR5IikuY29uc3RhbnRPcigxKSYmWnIodCxlLHIsbiwhMCxyLnBhaW50LmdldCgidGV4dC10cmFuc2xhdGUiKSxyLnBhaW50LmdldCgidGV4dC10cmFuc2xhdGUtYW5jaG9yIiksci5sYXlvdXQuZ2V0KCJ0ZXh0LXJvdGF0aW9uLWFsaWdubWVudCIpLHIubGF5b3V0LmdldCgidGV4dC1waXRjaC1hbGlnbm1lbnQiKSxyLmxheW91dC5nZXQoInRleHQta2VlcC11cHJpZ2h0IiksaSxvLGEpLGUubWFwLnNob3dDb2xsaXNpb25Cb3hlcyYmZnVuY3Rpb24odCxlLHIsbil7SHIodCxlLHIsbiwhMSksSHIodCxlLHIsbiwhMCl9KHQsZSxyLG4pfX0sY2lyY2xlOmZ1bmN0aW9uKGUscixuLGEpe2lmKCJ0cmFuc2x1Y2VudCI9PT1lLnJlbmRlclBhc3Mpe3ZhciBpPW4ucGFpbnQuZ2V0KCJjaXJjbGUtb3BhY2l0eSIpLG89bi5wYWludC5nZXQoImNpcmNsZS1zdHJva2Utd2lkdGgiKSxzPW4ucGFpbnQuZ2V0KCJjaXJjbGUtc3Ryb2tlLW9wYWNpdHkiKSxsPXZvaWQgMCE9PW4ubGF5b3V0LmdldCgiY2lyY2xlLXNvcnQta2V5IikuY29uc3RhbnRPcigxKTtpZigwIT09aS5jb25zdGFudE9yKDEpfHwwIT09by5jb25zdGFudE9yKDEpJiYwIT09cy5jb25zdGFudE9yKDEpKXtmb3IodmFyIGM9ZS5jb250ZXh0LHU9Yy5nbCxoPWUuZGVwdGhNb2RlRm9yU3VibGF5ZXIoMCxNdC5SZWFkT25seSksZj1BdC5kaXNhYmxlZCxwPWUuY29sb3JNb2RlRm9yUmVuZGVyUGFzcygpLGQ9W10sZz0wO2c8YS5sZW5ndGg7ZysrKXt2YXIgdj1hW2ddLG09ci5nZXRUaWxlKHYpLHk9bS5nZXRCdWNrZXQobik7aWYoeSl7dmFyIHg9eS5wcm9ncmFtQ29uZmlndXJhdGlvbnMuZ2V0KG4uaWQpLGI9e3Byb2dyYW1Db25maWd1cmF0aW9uOngscHJvZ3JhbTplLnVzZVByb2dyYW0oImNpcmNsZSIseCksbGF5b3V0VmVydGV4QnVmZmVyOnkubGF5b3V0VmVydGV4QnVmZmVyLGluZGV4QnVmZmVyOnkuaW5kZXhCdWZmZXIsdW5pZm9ybVZhbHVlczpicihlLHYsbSxuKX07aWYobClmb3IodmFyIF89MCx3PXkuc2VnbWVudHMuZ2V0KCk7Xzx3Lmxlbmd0aDtfKz0xKXt2YXIgaz13W19dO2QucHVzaCh7c2VnbWVudHM6bmV3IHQuU2VnbWVudFZlY3Rvcihba10pLHNvcnRLZXk6ay5zb3J0S2V5LHN0YXRlOmJ9KX1lbHNlIGQucHVzaCh7c2VnbWVudHM6eS5zZWdtZW50cyxzb3J0S2V5OjAsc3RhdGU6Yn0pfX1sJiZkLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5zb3J0S2V5LWUuc29ydEtleX0pO2Zvcih2YXIgVD0wLE09ZDtUPE0ubGVuZ3RoO1QrPTEpe3ZhciBBPU1bVF0sUz1BLnN0YXRlLEU9Uy5wcm9ncmFtQ29uZmlndXJhdGlvbixMPVMucHJvZ3JhbSxDPVMubGF5b3V0VmVydGV4QnVmZmVyLFA9Uy5pbmRleEJ1ZmZlcixPPVMudW5pZm9ybVZhbHVlcyx6PUEuc2VnbWVudHM7TC5kcmF3KGMsdS5UUklBTkdMRVMsaCxmLHAsRXQuZGlzYWJsZWQsTyxuLmlkLEMsUCx6LG4ucGFpbnQsZS50cmFuc2Zvcm0uem9vbSxFKX19fX0saGVhdG1hcDpmdW5jdGlvbihlLHIsbixhKXtpZigwIT09bi5wYWludC5nZXQoImhlYXRtYXAtb3BhY2l0eSIpKWlmKCJvZmZzY3JlZW4iPT09ZS5yZW5kZXJQYXNzKXt2YXIgaT1lLmNvbnRleHQsbz1pLmdsLHM9ZS5kZXB0aE1vZGVGb3JTdWJsYXllcigwLE10LlJlYWRPbmx5KSxsPUF0LmRpc2FibGVkLGM9bmV3IFN0KFtvLk9ORSxvLk9ORV0sdC5Db2xvci50cmFuc3BhcmVudCxbITAsITAsITAsITBdKTshZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQuZ2w7dC5hY3RpdmVUZXh0dXJlLnNldChuLlRFWFRVUkUxKSx0LnZpZXdwb3J0LnNldChbMCwwLGUud2lkdGgvNCxlLmhlaWdodC80XSk7dmFyIGE9ci5oZWF0bWFwRmJvO2lmKGEpbi5iaW5kVGV4dHVyZShuLlRFWFRVUkVfMkQsYS5jb2xvckF0dGFjaG1lbnQuZ2V0KCkpLHQuYmluZEZyYW1lYnVmZmVyLnNldChhLmZyYW1lYnVmZmVyKTtlbHNle3ZhciBpPW4uY3JlYXRlVGV4dHVyZSgpO24uYmluZFRleHR1cmUobi5URVhUVVJFXzJELGkpLG4udGV4UGFyYW1ldGVyaShuLlRFWFRVUkVfMkQsbi5URVhUVVJFX1dSQVBfUyxuLkNMQU1QX1RPX0VER0UpLG4udGV4UGFyYW1ldGVyaShuLlRFWFRVUkVfMkQsbi5URVhUVVJFX1dSQVBfVCxuLkNMQU1QX1RPX0VER0UpLG4udGV4UGFyYW1ldGVyaShuLlRFWFRVUkVfMkQsbi5URVhUVVJFX01JTl9GSUxURVIsbi5MSU5FQVIpLG4udGV4UGFyYW1ldGVyaShuLlRFWFRVUkVfMkQsbi5URVhUVVJFX01BR19GSUxURVIsbi5MSU5FQVIpLGE9ci5oZWF0bWFwRmJvPXQuY3JlYXRlRnJhbWVidWZmZXIoZS53aWR0aC80LGUuaGVpZ2h0LzQpLGZ1bmN0aW9uIHQoZSxyLG4sYSl7dmFyIGk9ZS5nbDtpLnRleEltYWdlMkQoaS5URVhUVVJFXzJELDAsaS5SR0JBLHIud2lkdGgvNCxyLmhlaWdodC80LDAsaS5SR0JBLGUuZXh0VGV4dHVyZUhhbGZGbG9hdD9lLmV4dFRleHR1cmVIYWxmRmxvYXQuSEFMRl9GTE9BVF9PRVM6aS5VTlNJR05FRF9CWVRFLG51bGwpLGEuY29sb3JBdHRhY2htZW50LnNldChuKSxlLmV4dFRleHR1cmVIYWxmRmxvYXQmJmkuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhpLkZSQU1FQlVGRkVSKSE9PWkuRlJBTUVCVUZGRVJfQ09NUExFVEUmJihlLmV4dFRleHR1cmVIYWxmRmxvYXQ9bnVsbCxhLmNvbG9yQXR0YWNobWVudC5zZXREaXJ0eSgpLHQoZSxyLG4sYSkpfSh0LGUsaSxhKX19KGksZSxuKSxpLmNsZWFyKHtjb2xvcjp0LkNvbG9yLnRyYW5zcGFyZW50fSk7Zm9yKHZhciB1PTA7dTxhLmxlbmd0aDt1Kyspe3ZhciBoPWFbdV07aWYoIXIuaGFzUmVuZGVyYWJsZVBhcmVudChoKSl7dmFyIGY9ci5nZXRUaWxlKGgpLHA9Zi5nZXRCdWNrZXQobik7aWYocCl7dmFyIGQ9cC5wcm9ncmFtQ29uZmlndXJhdGlvbnMuZ2V0KG4uaWQpLGc9ZS51c2VQcm9ncmFtKCJoZWF0bWFwIixkKSx2PWUudHJhbnNmb3JtLnpvb207Zy5kcmF3KGksby5UUklBTkdMRVMscyxsLGMsRXQuZGlzYWJsZWQsTXIoaC5wb3NNYXRyaXgsZix2LG4ucGFpbnQuZ2V0KCJoZWF0bWFwLWludGVuc2l0eSIpKSxuLmlkLHAubGF5b3V0VmVydGV4QnVmZmVyLHAuaW5kZXhCdWZmZXIscC5zZWdtZW50cyxuLnBhaW50LGUudHJhbnNmb3JtLnpvb20sZCl9fX1pLnZpZXdwb3J0LnNldChbMCwwLGUud2lkdGgsZS5oZWlnaHRdKX1lbHNlInRyYW5zbHVjZW50Ij09PWUucmVuZGVyUGFzcyYmKGUuY29udGV4dC5zZXRDb2xvck1vZGUoZS5jb2xvck1vZGVGb3JSZW5kZXJQYXNzKCkpLGZ1bmN0aW9uKGUscil7dmFyIG49ZS5jb250ZXh0LGE9bi5nbCxpPXIuaGVhdG1hcEZibztpZihpKXtuLmFjdGl2ZVRleHR1cmUuc2V0KGEuVEVYVFVSRTApLGEuYmluZFRleHR1cmUoYS5URVhUVVJFXzJELGkuY29sb3JBdHRhY2htZW50LmdldCgpKSxuLmFjdGl2ZVRleHR1cmUuc2V0KGEuVEVYVFVSRTEpO3ZhciBvPXIuY29sb3JSYW1wVGV4dHVyZTtvfHwobz1yLmNvbG9yUmFtcFRleHR1cmU9bmV3IHQuVGV4dHVyZShuLHIuY29sb3JSYW1wLGEuUkdCQSkpLG8uYmluZChhLkxJTkVBUixhLkNMQU1QX1RPX0VER0UpLGUudXNlUHJvZ3JhbSgiaGVhdG1hcFRleHR1cmUiKS5kcmF3KG4sYS5UUklBTkdMRVMsTXQuZGlzYWJsZWQsQXQuZGlzYWJsZWQsZS5jb2xvck1vZGVGb3JSZW5kZXJQYXNzKCksRXQuZGlzYWJsZWQsZnVuY3Rpb24oZSxyLG4sYSl7dmFyIGk9dC5jcmVhdGUoKTt0Lm9ydGhvKGksMCxlLndpZHRoLGUuaGVpZ2h0LDAsMCwxKTt2YXIgbz1lLmNvbnRleHQuZ2w7cmV0dXJue3VfbWF0cml4OmksdV93b3JsZDpbby5kcmF3aW5nQnVmZmVyV2lkdGgsby5kcmF3aW5nQnVmZmVySGVpZ2h0XSx1X2ltYWdlOm4sdV9jb2xvcl9yYW1wOmEsdV9vcGFjaXR5OnIucGFpbnQuZ2V0KCJoZWF0bWFwLW9wYWNpdHkiKX19KGUsciwwLDEpLHIuaWQsZS52aWV3cG9ydEJ1ZmZlcixlLnF1YWRUcmlhbmdsZUluZGV4QnVmZmVyLGUudmlld3BvcnRTZWdtZW50cyxyLnBhaW50LGUudHJhbnNmb3JtLnpvb20pfX0oZSxuKSl9LGxpbmU6ZnVuY3Rpb24oZSxyLG4sYSl7aWYoInRyYW5zbHVjZW50Ij09PWUucmVuZGVyUGFzcyl7dmFyIGk9bi5wYWludC5nZXQoImxpbmUtb3BhY2l0eSIpLG89bi5wYWludC5nZXQoImxpbmUtd2lkdGgiKTtpZigwIT09aS5jb25zdGFudE9yKDEpJiYwIT09by5jb25zdGFudE9yKDEpKXt2YXIgcz1lLmRlcHRoTW9kZUZvclN1YmxheWVyKDAsTXQuUmVhZE9ubHkpLGw9ZS5jb2xvck1vZGVGb3JSZW5kZXJQYXNzKCksYz1uLnBhaW50LmdldCgibGluZS1kYXNoYXJyYXkiKSx1PW4ucGFpbnQuZ2V0KCJsaW5lLXBhdHRlcm4iKSxoPXUuY29uc3RhbnRPcigxKSxmPW4ucGFpbnQuZ2V0KCJsaW5lLWdyYWRpZW50IikscD1uLmdldENyb3NzZmFkZVBhcmFtZXRlcnMoKSxkPWM/ImxpbmVTREYiOmg/ImxpbmVQYXR0ZXJuIjpmPyJsaW5lR3JhZGllbnQiOiJsaW5lIixnPWUuY29udGV4dCx2PWcuZ2wsbT0hMDtpZihmKXtnLmFjdGl2ZVRleHR1cmUuc2V0KHYuVEVYVFVSRTApO3ZhciB5PW4uZ3JhZGllbnRUZXh0dXJlO2lmKCFuLmdyYWRpZW50KXJldHVybjt5fHwoeT1uLmdyYWRpZW50VGV4dHVyZT1uZXcgdC5UZXh0dXJlKGcsbi5ncmFkaWVudCx2LlJHQkEpKSx5LmJpbmQodi5MSU5FQVIsdi5DTEFNUF9UT19FREdFKX1mb3IodmFyIHg9MCxiPWE7eDxiLmxlbmd0aDt4Kz0xKXt2YXIgXz1iW3hdLHc9ci5nZXRUaWxlKF8pO2lmKCFofHx3LnBhdHRlcm5zTG9hZGVkKCkpe3ZhciBrPXcuZ2V0QnVja2V0KG4pO2lmKGspe3ZhciBUPWsucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLmdldChuLmlkKSxNPWUuY29udGV4dC5wcm9ncmFtLmdldCgpLEE9ZS51c2VQcm9ncmFtKGQsVCksUz1tfHxBLnByb2dyYW0hPT1NLEU9dS5jb25zdGFudE9yKG51bGwpO2lmKEUmJncuaW1hZ2VBdGxhcyl7dmFyIEw9dy5pbWFnZUF0bGFzLnBhdHRlcm5Qb3NpdGlvbnNbRS50b10sQz13LmltYWdlQXRsYXMucGF0dGVyblBvc2l0aW9uc1tFLmZyb21dO0wmJkMmJlQuc2V0Q29uc3RhbnRQYXR0ZXJuUG9zaXRpb25zKEwsQyl9dmFyIFA9Yz9PcihlLHcsbixjLHApOmg/UHIoZSx3LG4scCk6Zj9DcihlLHcsbik6THIoZSx3LG4pO2MmJihTfHxlLmxpbmVBdGxhcy5kaXJ0eSk/KGcuYWN0aXZlVGV4dHVyZS5zZXQodi5URVhUVVJFMCksZS5saW5lQXRsYXMuYmluZChnKSk6aCYmKGcuYWN0aXZlVGV4dHVyZS5zZXQodi5URVhUVVJFMCksdy5pbWFnZUF0bGFzVGV4dHVyZS5iaW5kKHYuTElORUFSLHYuQ0xBTVBfVE9fRURHRSksVC51cGRhdGVQYXR0ZXJuUGFpbnRCdWZmZXJzKHApKSxBLmRyYXcoZyx2LlRSSUFOR0xFUyxzLGUuc3RlbmNpbE1vZGVGb3JDbGlwcGluZyhfKSxsLEV0LmRpc2FibGVkLFAsbi5pZCxrLmxheW91dFZlcnRleEJ1ZmZlcixrLmluZGV4QnVmZmVyLGsuc2VnbWVudHMsbi5wYWludCxlLnRyYW5zZm9ybS56b29tLFQpLG09ITF9fX19fX0sZmlsbDpmdW5jdGlvbihlLHIsbixhKXt2YXIgaT1uLnBhaW50LmdldCgiZmlsbC1jb2xvciIpLG89bi5wYWludC5nZXQoImZpbGwtb3BhY2l0eSIpO2lmKDAhPT1vLmNvbnN0YW50T3IoMSkpe3ZhciBzPWUuY29sb3JNb2RlRm9yUmVuZGVyUGFzcygpLGw9bi5wYWludC5nZXQoImZpbGwtcGF0dGVybiIpLGM9ZS5vcGFxdWVQYXNzRW5hYmxlZEZvckxheWVyKCkmJiFsLmNvbnN0YW50T3IoMSkmJjE9PT1pLmNvbnN0YW50T3IodC5Db2xvci50cmFuc3BhcmVudCkuYSYmMT09PW8uY29uc3RhbnRPcigwKT8ib3BhcXVlIjoidHJhbnNsdWNlbnQiO2lmKGUucmVuZGVyUGFzcz09PWMpe3ZhciB1PWUuZGVwdGhNb2RlRm9yU3VibGF5ZXIoMSwib3BhcXVlIj09PWUucmVuZGVyUGFzcz9NdC5SZWFkV3JpdGU6TXQuUmVhZE9ubHkpO0tyKGUscixuLGEsdSxzLCExKX1pZigidHJhbnNsdWNlbnQiPT09ZS5yZW5kZXJQYXNzJiZuLnBhaW50LmdldCgiZmlsbC1hbnRpYWxpYXMiKSl7dmFyIGg9ZS5kZXB0aE1vZGVGb3JTdWJsYXllcihuLmdldFBhaW50UHJvcGVydHkoImZpbGwtb3V0bGluZS1jb2xvciIpPzI6MCxNdC5SZWFkT25seSk7S3IoZSxyLG4sYSxoLHMsITApfX19LCJmaWxsLWV4dHJ1c2lvbiI6ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9ci5wYWludC5nZXQoImZpbGwtZXh0cnVzaW9uLW9wYWNpdHkiKTtpZigwIT09YSYmInRyYW5zbHVjZW50Ij09PXQucmVuZGVyUGFzcyl7dmFyIGk9bmV3IE10KHQuY29udGV4dC5nbC5MRVFVQUwsTXQuUmVhZFdyaXRlLHQuZGVwdGhSYW5nZUZvcjNEKTtpZigxIT09YXx8ci5wYWludC5nZXQoImZpbGwtZXh0cnVzaW9uLXBhdHRlcm4iKS5jb25zdGFudE9yKDEpKVFyKHQsZSxyLG4saSxBdC5kaXNhYmxlZCxTdC5kaXNhYmxlZCksUXIodCxlLHIsbixpLHQuc3RlbmNpbE1vZGVGb3IzRCgpLHQuY29sb3JNb2RlRm9yUmVuZGVyUGFzcygpKTtlbHNle3ZhciBvPXQuY29sb3JNb2RlRm9yUmVuZGVyUGFzcygpO1FyKHQsZSxyLG4saSxBdC5kaXNhYmxlZCxvKX19fSxoaWxsc2hhZGU6ZnVuY3Rpb24odCxlLHIsbil7aWYoIm9mZnNjcmVlbiI9PT10LnJlbmRlclBhc3N8fCJ0cmFuc2x1Y2VudCI9PT10LnJlbmRlclBhc3Mpe2Zvcih2YXIgYT10LmNvbnRleHQsaT1lLmdldFNvdXJjZSgpLm1heHpvb20sbz10LmRlcHRoTW9kZUZvclN1YmxheWVyKDAsTXQuUmVhZE9ubHkpLHM9QXQuZGlzYWJsZWQsbD10LmNvbG9yTW9kZUZvclJlbmRlclBhc3MoKSxjPTAsdT1uO2M8dS5sZW5ndGg7Yys9MSl7dmFyIGg9dVtjXSxmPWUuZ2V0VGlsZShoKTtmLm5lZWRzSGlsbHNoYWRlUHJlcGFyZSYmIm9mZnNjcmVlbiI9PT10LnJlbmRlclBhc3M/dG4odCxmLHIsaSxvLHMsbCk6InRyYW5zbHVjZW50Ij09PXQucmVuZGVyUGFzcyYmJHIodCxmLHIsbyxzLGwpfWEudmlld3BvcnQuc2V0KFswLDAsdC53aWR0aCx0LmhlaWdodF0pfX0scmFzdGVyOmZ1bmN0aW9uKHQsZSxyLG4pe2lmKCJ0cmFuc2x1Y2VudCI9PT10LnJlbmRlclBhc3MmJjAhPT1yLnBhaW50LmdldCgicmFzdGVyLW9wYWNpdHkiKSlmb3IodmFyIGE9dC5jb250ZXh0LGk9YS5nbCxvPWUuZ2V0U291cmNlKCkscz10LnVzZVByb2dyYW0oInJhc3RlciIpLGw9QXQuZGlzYWJsZWQsYz10LmNvbG9yTW9kZUZvclJlbmRlclBhc3MoKSx1PW4ubGVuZ3RoJiZuWzBdLm92ZXJzY2FsZWRaLGg9IXQub3B0aW9ucy5tb3ZpbmcsZj0wLHA9bjtmPHAubGVuZ3RoO2YrPTEpe3ZhciBkPXBbZl0sZz10LmRlcHRoTW9kZUZvclN1YmxheWVyKGQub3ZlcnNjYWxlZFotdSwxPT09ci5wYWludC5nZXQoInJhc3Rlci1vcGFjaXR5Iik/TXQuUmVhZFdyaXRlOk10LlJlYWRPbmx5LGkuTEVTUyksdj1lLmdldFRpbGUoZCksbT10LnRyYW5zZm9ybS5jYWxjdWxhdGVQb3NNYXRyaXgoZC50b1Vud3JhcHBlZCgpLGgpO3YucmVnaXN0ZXJGYWRlRHVyYXRpb24oci5wYWludC5nZXQoInJhc3Rlci1mYWRlLWR1cmF0aW9uIikpO3ZhciB5PWUuZmluZExvYWRlZFBhcmVudChkLDApLHg9ZW4odix5LGUscix0LnRyYW5zZm9ybSksYj12b2lkIDAsXz12b2lkIDAsdz0ibmVhcmVzdCI9PT1yLnBhaW50LmdldCgicmFzdGVyLXJlc2FtcGxpbmciKT9pLk5FQVJFU1Q6aS5MSU5FQVI7YS5hY3RpdmVUZXh0dXJlLnNldChpLlRFWFRVUkUwKSx2LnRleHR1cmUuYmluZCh3LGkuQ0xBTVBfVE9fRURHRSxpLkxJTkVBUl9NSVBNQVBfTkVBUkVTVCksYS5hY3RpdmVUZXh0dXJlLnNldChpLlRFWFRVUkUxKSx5Pyh5LnRleHR1cmUuYmluZCh3LGkuQ0xBTVBfVE9fRURHRSxpLkxJTkVBUl9NSVBNQVBfTkVBUkVTVCksYj1NYXRoLnBvdygyLHkudGlsZUlELm92ZXJzY2FsZWRaLXYudGlsZUlELm92ZXJzY2FsZWRaKSxfPVt2LnRpbGVJRC5jYW5vbmljYWwueCpiJTEsdi50aWxlSUQuY2Fub25pY2FsLnkqYiUxXSk6di50ZXh0dXJlLmJpbmQodyxpLkNMQU1QX1RPX0VER0UsaS5MSU5FQVJfTUlQTUFQX05FQVJFU1QpO3ZhciBrPURyKG0sX3x8WzAsMF0sYnx8MSx4LHIpO28gaW5zdGFuY2VvZiBQP3MuZHJhdyhhLGkuVFJJQU5HTEVTLGcsbCxjLEV0LmRpc2FibGVkLGssci5pZCxvLmJvdW5kc0J1ZmZlcix0LnF1YWRUcmlhbmdsZUluZGV4QnVmZmVyLG8uYm91bmRzU2VnbWVudHMpOnYubWFza2VkQm91bmRzQnVmZmVyJiZ2Lm1hc2tlZEluZGV4QnVmZmVyJiZ2LnNlZ21lbnRzP3MuZHJhdyhhLGkuVFJJQU5HTEVTLGcsbCxjLEV0LmRpc2FibGVkLGssci5pZCx2Lm1hc2tlZEJvdW5kc0J1ZmZlcix2Lm1hc2tlZEluZGV4QnVmZmVyLHYuc2VnbWVudHMsci5wYWludCx0LnRyYW5zZm9ybS56b29tKTpzLmRyYXcoYSxpLlRSSUFOR0xFUyxnLGwsYyxFdC5kaXNhYmxlZCxrLHIuaWQsdC5yYXN0ZXJCb3VuZHNCdWZmZXIsdC5xdWFkVHJpYW5nbGVJbmRleEJ1ZmZlcix0LnJhc3RlckJvdW5kc1NlZ21lbnRzKX19LGJhY2tncm91bmQ6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXIucGFpbnQuZ2V0KCJiYWNrZ3JvdW5kLWNvbG9yIiksYT1yLnBhaW50LmdldCgiYmFja2dyb3VuZC1vcGFjaXR5Iik7aWYoMCE9PWEpe3ZhciBpPXQuY29udGV4dCxvPWkuZ2wscz10LnRyYW5zZm9ybSxsPXMudGlsZVNpemUsYz1yLnBhaW50LmdldCgiYmFja2dyb3VuZC1wYXR0ZXJuIik7aWYoIXQuaXNQYXR0ZXJuTWlzc2luZyhjKSl7dmFyIHU9IWMmJjE9PT1uLmEmJjE9PT1hJiZ0Lm9wYXF1ZVBhc3NFbmFibGVkRm9yTGF5ZXIoKT8ib3BhcXVlIjoidHJhbnNsdWNlbnQiO2lmKHQucmVuZGVyUGFzcz09PXUpe3ZhciBoPUF0LmRpc2FibGVkLGY9dC5kZXB0aE1vZGVGb3JTdWJsYXllcigwLCJvcGFxdWUiPT09dT9NdC5SZWFkV3JpdGU6TXQuUmVhZE9ubHkpLHA9dC5jb2xvck1vZGVGb3JSZW5kZXJQYXNzKCksZD10LnVzZVByb2dyYW0oYz8iYmFja2dyb3VuZFBhdHRlcm4iOiJiYWNrZ3JvdW5kIiksZz1zLmNvdmVyaW5nVGlsZXMoe3RpbGVTaXplOmx9KTtjJiYoaS5hY3RpdmVUZXh0dXJlLnNldChvLlRFWFRVUkUwKSx0LmltYWdlTWFuYWdlci5iaW5kKHQuY29udGV4dCkpO2Zvcih2YXIgdj1yLmdldENyb3NzZmFkZVBhcmFtZXRlcnMoKSxtPTAseT1nO208eS5sZW5ndGg7bSs9MSl7dmFyIHg9eVttXSxiPXQudHJhbnNmb3JtLmNhbGN1bGF0ZVBvc01hdHJpeCh4LnRvVW53cmFwcGVkKCkpLF89Yz9qcihiLGEsdCxjLHt0aWxlSUQ6eCx0aWxlU2l6ZTpsfSx2KTpOcihiLGEsbik7ZC5kcmF3KGksby5UUklBTkdMRVMsZixoLHAsRXQuZGlzYWJsZWQsXyxyLmlkLHQudGlsZUV4dGVudEJ1ZmZlcix0LnF1YWRUcmlhbmdsZUluZGV4QnVmZmVyLHQudGlsZUV4dGVudFNlZ21lbnRzKX19fX19LGRlYnVnOmZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49MDtuPHIubGVuZ3RoO24rKylybih0LGUscltuXSl9LGN1c3RvbTpmdW5jdGlvbih0LGUscil7dmFyIG49dC5jb250ZXh0LGE9ci5pbXBsZW1lbnRhdGlvbjtpZigib2Zmc2NyZWVuIj09PXQucmVuZGVyUGFzcyl7dmFyIGk9YS5wcmVyZW5kZXI7aSYmKHQuc2V0Q3VzdG9tTGF5ZXJEZWZhdWx0cygpLG4uc2V0Q29sb3JNb2RlKHQuY29sb3JNb2RlRm9yUmVuZGVyUGFzcygpKSxpLmNhbGwoYSxuLmdsLHQudHJhbnNmb3JtLmN1c3RvbUxheWVyTWF0cml4KCkpLG4uc2V0RGlydHkoKSx0LnNldEJhc2VTdGF0ZSgpKX1lbHNlIGlmKCJ0cmFuc2x1Y2VudCI9PT10LnJlbmRlclBhc3Mpe3Quc2V0Q3VzdG9tTGF5ZXJEZWZhdWx0cygpLG4uc2V0Q29sb3JNb2RlKHQuY29sb3JNb2RlRm9yUmVuZGVyUGFzcygpKSxuLnNldFN0ZW5jaWxNb2RlKEF0LmRpc2FibGVkKTt2YXIgbz0iM2QiPT09YS5yZW5kZXJpbmdNb2RlP25ldyBNdCh0LmNvbnRleHQuZ2wuTEVRVUFMLE10LlJlYWRXcml0ZSx0LmRlcHRoUmFuZ2VGb3IzRCk6dC5kZXB0aE1vZGVGb3JTdWJsYXllcigwLE10LlJlYWRPbmx5KTtuLnNldERlcHRoTW9kZShvKSxhLnJlbmRlcihuLmdsLHQudHJhbnNmb3JtLmN1c3RvbUxheWVyTWF0cml4KCkpLG4uc2V0RGlydHkoKSx0LnNldEJhc2VTdGF0ZSgpLG4uYmluZEZyYW1lYnVmZmVyLnNldChudWxsKX19fSxvbj1mdW5jdGlvbihlLHIpe3RoaXMuY29udGV4dD1uZXcgTHQoZSksdGhpcy50cmFuc2Zvcm09cix0aGlzLl90aWxlVGV4dHVyZXM9e30sdGhpcy5zZXR1cCgpLHRoaXMubnVtU3VibGF5ZXJzPUN0Lm1heFVuZGVyem9vbWluZytDdC5tYXhPdmVyem9vbWluZysxLHRoaXMuZGVwdGhFcHNpbG9uPTEvTWF0aC5wb3coMiwxNiksdGhpcy5kZXB0aFJib05lZWRzQ2xlYXI9ITAsdGhpcy5lbXB0eVByb2dyYW1Db25maWd1cmF0aW9uPW5ldyB0LlByb2dyYW1Db25maWd1cmF0aW9uLHRoaXMuY3Jvc3NUaWxlU3ltYm9sSW5kZXg9bmV3IE9lfTtmdW5jdGlvbiBzbih0LGUpe2lmKHQueT5lLnkpe3ZhciByPXQ7dD1lLGU9cn1yZXR1cm57eDA6dC54LHkwOnQueSx4MTplLngseTE6ZS55LGR4OmUueC10LngsZHk6ZS55LXQueX19ZnVuY3Rpb24gbG4odCxlLHIsbixhKXt2YXIgaT1NYXRoLm1heChyLE1hdGguZmxvb3IoZS55MCkpLG89TWF0aC5taW4obixNYXRoLmNlaWwoZS55MSkpO2lmKHQueDA9PT1lLngwJiZ0LnkwPT09ZS55MD90LngwK2UuZHkvdC5keSp0LmR4PGUueDE6dC54MS1lLmR5L3QuZHkqdC5keDxlLngwKXt2YXIgcz10O3Q9ZSxlPXN9Zm9yKHZhciBsPXQuZHgvdC5keSxjPWUuZHgvZS5keSx1PXQuZHg+MCxoPWUuZHg8MCxmPWk7ZjxvO2YrKyl7dmFyIHA9bCpNYXRoLm1heCgwLE1hdGgubWluKHQuZHksZit1LXQueTApKSt0LngwLGQ9YypNYXRoLm1heCgwLE1hdGgubWluKGUuZHksZitoLWUueTApKStlLngwO2EoTWF0aC5mbG9vcihkKSxNYXRoLmNlaWwocCksZil9fWZ1bmN0aW9uIGNuKHQsZSxyLG4sYSxpKXt2YXIgbyxzPXNuKHQsZSksbD1zbihlLHIpLGM9c24ocix0KTtzLmR5PmwuZHkmJihvPXMscz1sLGw9bykscy5keT5jLmR5JiYobz1zLHM9YyxjPW8pLGwuZHk+Yy5keSYmKG89bCxsPWMsYz1vKSxzLmR5JiZsbihjLHMsbixhLGkpLGwuZHkmJmxuKGMsbCxuLGEsaSl9b24ucHJvdG90eXBlLnJlc2l6ZT1mdW5jdGlvbihlLHIpe3ZhciBuPXRoaXMuY29udGV4dC5nbDtpZih0aGlzLndpZHRoPWUqdC5icm93c2VyLmRldmljZVBpeGVsUmF0aW8sdGhpcy5oZWlnaHQ9cip0LmJyb3dzZXIuZGV2aWNlUGl4ZWxSYXRpbyx0aGlzLmNvbnRleHQudmlld3BvcnQuc2V0KFswLDAsdGhpcy53aWR0aCx0aGlzLmhlaWdodF0pLHRoaXMuc3R5bGUpZm9yKHZhciBhPTAsaT10aGlzLnN0eWxlLl9vcmRlcjthPGkubGVuZ3RoO2ErPTEpe3ZhciBvPWlbYV07dGhpcy5zdHlsZS5fbGF5ZXJzW29dLnJlc2l6ZSgpfXRoaXMuZGVwdGhSYm8mJihuLmRlbGV0ZVJlbmRlcmJ1ZmZlcih0aGlzLmRlcHRoUmJvKSx0aGlzLmRlcHRoUmJvPW51bGwpfSxvbi5wcm90b3R5cGUuc2V0dXA9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmNvbnRleHQscj1uZXcgdC5TdHJ1Y3RBcnJheUxheW91dDJpNDtyLmVtcGxhY2VCYWNrKDAsMCksci5lbXBsYWNlQmFjayh0LkVYVEVOVCwwKSxyLmVtcGxhY2VCYWNrKDAsdC5FWFRFTlQpLHIuZW1wbGFjZUJhY2sodC5FWFRFTlQsdC5FWFRFTlQpLHRoaXMudGlsZUV4dGVudEJ1ZmZlcj1lLmNyZWF0ZVZlcnRleEJ1ZmZlcihyLEZlLm1lbWJlcnMpLHRoaXMudGlsZUV4dGVudFNlZ21lbnRzPXQuU2VnbWVudFZlY3Rvci5zaW1wbGVTZWdtZW50KDAsMCw0LDIpO3ZhciBuPW5ldyB0LlN0cnVjdEFycmF5TGF5b3V0Mmk0O24uZW1wbGFjZUJhY2soMCwwKSxuLmVtcGxhY2VCYWNrKHQuRVhURU5ULDApLG4uZW1wbGFjZUJhY2soMCx0LkVYVEVOVCksbi5lbXBsYWNlQmFjayh0LkVYVEVOVCx0LkVYVEVOVCksdGhpcy5kZWJ1Z0J1ZmZlcj1lLmNyZWF0ZVZlcnRleEJ1ZmZlcihuLEZlLm1lbWJlcnMpLHRoaXMuZGVidWdTZWdtZW50cz10LlNlZ21lbnRWZWN0b3Iuc2ltcGxlU2VnbWVudCgwLDAsNCw1KTt2YXIgYT1uZXcgdC5TdHJ1Y3RBcnJheUxheW91dDRpODthLmVtcGxhY2VCYWNrKDAsMCwwLDApLGEuZW1wbGFjZUJhY2sodC5FWFRFTlQsMCx0LkVYVEVOVCwwKSxhLmVtcGxhY2VCYWNrKDAsdC5FWFRFTlQsMCx0LkVYVEVOVCksYS5lbXBsYWNlQmFjayh0LkVYVEVOVCx0LkVYVEVOVCx0LkVYVEVOVCx0LkVYVEVOVCksdGhpcy5yYXN0ZXJCb3VuZHNCdWZmZXI9ZS5jcmVhdGVWZXJ0ZXhCdWZmZXIoYSx0LnJhc3RlckJvdW5kc0F0dHJpYnV0ZXMubWVtYmVycyksdGhpcy5yYXN0ZXJCb3VuZHNTZWdtZW50cz10LlNlZ21lbnRWZWN0b3Iuc2ltcGxlU2VnbWVudCgwLDAsNCwyKTt2YXIgaT1uZXcgdC5TdHJ1Y3RBcnJheUxheW91dDJpNDtpLmVtcGxhY2VCYWNrKDAsMCksaS5lbXBsYWNlQmFjaygxLDApLGkuZW1wbGFjZUJhY2soMCwxKSxpLmVtcGxhY2VCYWNrKDEsMSksdGhpcy52aWV3cG9ydEJ1ZmZlcj1lLmNyZWF0ZVZlcnRleEJ1ZmZlcihpLEZlLm1lbWJlcnMpLHRoaXMudmlld3BvcnRTZWdtZW50cz10LlNlZ21lbnRWZWN0b3Iuc2ltcGxlU2VnbWVudCgwLDAsNCwyKTt2YXIgbz1uZXcgdC5TdHJ1Y3RBcnJheUxheW91dDF1aTI7by5lbXBsYWNlQmFjaygwKSxvLmVtcGxhY2VCYWNrKDEpLG8uZW1wbGFjZUJhY2soMyksby5lbXBsYWNlQmFjaygyKSxvLmVtcGxhY2VCYWNrKDApLHRoaXMudGlsZUJvcmRlckluZGV4QnVmZmVyPWUuY3JlYXRlSW5kZXhCdWZmZXIobyk7dmFyIHM9bmV3IHQuU3RydWN0QXJyYXlMYXlvdXQzdWk2O3MuZW1wbGFjZUJhY2soMCwxLDIpLHMuZW1wbGFjZUJhY2soMiwxLDMpLHRoaXMucXVhZFRyaWFuZ2xlSW5kZXhCdWZmZXI9ZS5jcmVhdGVJbmRleEJ1ZmZlcihzKTt2YXIgbD10aGlzLmNvbnRleHQuZ2w7dGhpcy5zdGVuY2lsQ2xlYXJNb2RlPW5ldyBBdCh7ZnVuYzpsLkFMV0FZUyxtYXNrOjB9LDAsMjU1LGwuWkVSTyxsLlpFUk8sbC5aRVJPKX0sb24ucHJvdG90eXBlLmNsZWFyU3RlbmNpbD1mdW5jdGlvbigpe3ZhciBlPXRoaXMuY29udGV4dCxyPWUuZ2w7dGhpcy5uZXh0U3RlbmNpbElEPTEsdGhpcy5jdXJyZW50U3RlbmNpbFNvdXJjZT12b2lkIDA7dmFyIG49dC5jcmVhdGUoKTt0Lm9ydGhvKG4sMCx0aGlzLndpZHRoLHRoaXMuaGVpZ2h0LDAsMCwxKSx0LnNjYWxlKG4sbixbci5kcmF3aW5nQnVmZmVyV2lkdGgsci5kcmF3aW5nQnVmZmVySGVpZ2h0LDBdKSx0aGlzLnVzZVByb2dyYW0oImNsaXBwaW5nTWFzayIpLmRyYXcoZSxyLlRSSUFOR0xFUyxNdC5kaXNhYmxlZCx0aGlzLnN0ZW5jaWxDbGVhck1vZGUsU3QuZGlzYWJsZWQsRXQuZGlzYWJsZWQsVHIobiksIiRjbGlwcGluZyIsdGhpcy52aWV3cG9ydEJ1ZmZlcix0aGlzLnF1YWRUcmlhbmdsZUluZGV4QnVmZmVyLHRoaXMudmlld3BvcnRTZWdtZW50cyl9LG9uLnByb3RvdHlwZS5fcmVuZGVyVGlsZUNsaXBwaW5nTWFza3M9ZnVuY3Rpb24odCxlKXtpZih0aGlzLmN1cnJlbnRTdGVuY2lsU291cmNlIT09dC5zb3VyY2UmJnQuaXNUaWxlQ2xpcHBlZCgpJiZlJiZlLmxlbmd0aCl7dGhpcy5jdXJyZW50U3RlbmNpbFNvdXJjZT10LnNvdXJjZTt2YXIgcj10aGlzLmNvbnRleHQsbj1yLmdsO3RoaXMubmV4dFN0ZW5jaWxJRCtlLmxlbmd0aD4yNTYmJnRoaXMuY2xlYXJTdGVuY2lsKCksci5zZXRDb2xvck1vZGUoU3QuZGlzYWJsZWQpLHIuc2V0RGVwdGhNb2RlKE10LmRpc2FibGVkKTt2YXIgYT10aGlzLnVzZVByb2dyYW0oImNsaXBwaW5nTWFzayIpO3RoaXMuX3RpbGVDbGlwcGluZ01hc2tJRHM9e307Zm9yKHZhciBpPTAsbz1lO2k8by5sZW5ndGg7aSs9MSl7dmFyIHM9b1tpXSxsPXRoaXMuX3RpbGVDbGlwcGluZ01hc2tJRHNbcy5rZXldPXRoaXMubmV4dFN0ZW5jaWxJRCsrO2EuZHJhdyhyLG4uVFJJQU5HTEVTLE10LmRpc2FibGVkLG5ldyBBdCh7ZnVuYzpuLkFMV0FZUyxtYXNrOjB9LGwsMjU1LG4uS0VFUCxuLktFRVAsbi5SRVBMQUNFKSxTdC5kaXNhYmxlZCxFdC5kaXNhYmxlZCxUcihzLnBvc01hdHJpeCksIiRjbGlwcGluZyIsdGhpcy50aWxlRXh0ZW50QnVmZmVyLHRoaXMucXVhZFRyaWFuZ2xlSW5kZXhCdWZmZXIsdGhpcy50aWxlRXh0ZW50U2VnbWVudHMpfX19LG9uLnByb3RvdHlwZS5zdGVuY2lsTW9kZUZvcjNEPWZ1bmN0aW9uKCl7dGhpcy5jdXJyZW50U3RlbmNpbFNvdXJjZT12b2lkIDAsdGhpcy5uZXh0U3RlbmNpbElEKzE+MjU2JiZ0aGlzLmNsZWFyU3RlbmNpbCgpO3ZhciB0PXRoaXMubmV4dFN0ZW5jaWxJRCsrLGU9dGhpcy5jb250ZXh0LmdsO3JldHVybiBuZXcgQXQoe2Z1bmM6ZS5OT1RFUVVBTCxtYXNrOjI1NX0sdCwyNTUsZS5LRUVQLGUuS0VFUCxlLlJFUExBQ0UpfSxvbi5wcm90b3R5cGUuc3RlbmNpbE1vZGVGb3JDbGlwcGluZz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmNvbnRleHQuZ2w7cmV0dXJuIG5ldyBBdCh7ZnVuYzplLkVRVUFMLG1hc2s6MjU1fSx0aGlzLl90aWxlQ2xpcHBpbmdNYXNrSURzW3Qua2V5XSwwLGUuS0VFUCxlLktFRVAsZS5SRVBMQUNFKX0sb24ucHJvdG90eXBlLmNvbG9yTW9kZUZvclJlbmRlclBhc3M9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmNvbnRleHQuZ2w7cmV0dXJuIHRoaXMuX3Nob3dPdmVyZHJhd0luc3BlY3Rvcj9uZXcgU3QoW2UuQ09OU1RBTlRfQ09MT1IsZS5PTkVdLG5ldyB0LkNvbG9yKDEvOCwxLzgsMS84LDApLFshMCwhMCwhMCwhMF0pOiJvcGFxdWUiPT09dGhpcy5yZW5kZXJQYXNzP1N0LnVuYmxlbmRlZDpTdC5hbHBoYUJsZW5kZWR9LG9uLnByb3RvdHlwZS5kZXB0aE1vZGVGb3JTdWJsYXllcj1mdW5jdGlvbih0LGUscil7aWYoIXRoaXMub3BhcXVlUGFzc0VuYWJsZWRGb3JMYXllcigpKXJldHVybiBNdC5kaXNhYmxlZDt2YXIgbj0xLSgoMSt0aGlzLmN1cnJlbnRMYXllcikqdGhpcy5udW1TdWJsYXllcnMrdCkqdGhpcy5kZXB0aEVwc2lsb247cmV0dXJuIG5ldyBNdChyfHx0aGlzLmNvbnRleHQuZ2wuTEVRVUFMLGUsW24sbl0pfSxvbi5wcm90b3R5cGUub3BhcXVlUGFzc0VuYWJsZWRGb3JMYXllcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRMYXllcjx0aGlzLm9wYXF1ZVBhc3NDdXRvZmZ9LG9uLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oZSxyKXt0aGlzLnN0eWxlPWUsdGhpcy5vcHRpb25zPXIsdGhpcy5saW5lQXRsYXM9ZS5saW5lQXRsYXMsdGhpcy5pbWFnZU1hbmFnZXI9ZS5pbWFnZU1hbmFnZXIsdGhpcy5nbHlwaE1hbmFnZXI9ZS5nbHlwaE1hbmFnZXIsdGhpcy5zeW1ib2xGYWRlQ2hhbmdlPWUucGxhY2VtZW50LnN5bWJvbEZhZGVDaGFuZ2UodC5icm93c2VyLm5vdygpKSx0aGlzLmltYWdlTWFuYWdlci5iZWdpbkZyYW1lKCk7dmFyIG49dGhpcy5zdHlsZS5fb3JkZXIsYT10aGlzLnN0eWxlLnNvdXJjZUNhY2hlcztmb3IodmFyIGkgaW4gYSl7dmFyIG89YVtpXTtvLnVzZWQmJm8ucHJlcGFyZSh0aGlzLmNvbnRleHQpfXZhciBzPXt9LGw9e30sYz17fTtmb3IodmFyIHUgaW4gYSl7dmFyIGg9YVt1XTtzW3VdPWguZ2V0VmlzaWJsZUNvb3JkaW5hdGVzKCksbFt1XT1zW3VdLnNsaWNlKCkucmV2ZXJzZSgpLGNbdV09aC5nZXRWaXNpYmxlQ29vcmRpbmF0ZXMoITApLnJldmVyc2UoKX1mb3IodmFyIGYgaW4gYSl7dmFyIHA9YVtmXSxkPXAuZ2V0U291cmNlKCk7aWYoInJhc3RlciI9PT1kLnR5cGV8fCJyYXN0ZXItZGVtIj09PWQudHlwZSl7Zm9yKHZhciBnPVtdLHY9MCxtPXNbZl07djxtLmxlbmd0aDt2Kz0xKXt2YXIgeT1tW3ZdO2cucHVzaChwLmdldFRpbGUoeSkpfVVyKGcsdGhpcy5jb250ZXh0KX19dGhpcy5vcGFxdWVQYXNzQ3V0b2ZmPTEvMDtmb3IodmFyIHg9MDt4PG4ubGVuZ3RoO3grKyl7dmFyIGI9blt4XTtpZih0aGlzLnN0eWxlLl9sYXllcnNbYl0uaXMzRCgpKXt0aGlzLm9wYXF1ZVBhc3NDdXRvZmY9eDticmVha319dGhpcy5yZW5kZXJQYXNzPSJvZmZzY3JlZW4iLHRoaXMuZGVwdGhSYm9OZWVkc0NsZWFyPSEwO2Zvcih2YXIgXz0wLHc9bjtfPHcubGVuZ3RoO18rPTEpe3ZhciBrPXdbX10sVD10aGlzLnN0eWxlLl9sYXllcnNba107aWYoVC5oYXNPZmZzY3JlZW5QYXNzKCkmJiFULmlzSGlkZGVuKHRoaXMudHJhbnNmb3JtLnpvb20pKXt2YXIgTT1sW1Quc291cmNlXTsoImN1c3RvbSI9PT1ULnR5cGV8fE0ubGVuZ3RoKSYmdGhpcy5yZW5kZXJMYXllcih0aGlzLGFbVC5zb3VyY2VdLFQsTSl9fWZvcih0aGlzLmNvbnRleHQuYmluZEZyYW1lYnVmZmVyLnNldChudWxsKSx0aGlzLmNvbnRleHQuY2xlYXIoe2NvbG9yOnIuc2hvd092ZXJkcmF3SW5zcGVjdG9yP3QuQ29sb3IuYmxhY2s6dC5Db2xvci50cmFuc3BhcmVudCxkZXB0aDoxfSksdGhpcy5jbGVhclN0ZW5jaWwoKSx0aGlzLl9zaG93T3ZlcmRyYXdJbnNwZWN0b3I9ci5zaG93T3ZlcmRyYXdJbnNwZWN0b3IsdGhpcy5kZXB0aFJhbmdlRm9yM0Q9WzAsMS0oZS5fb3JkZXIubGVuZ3RoKzIpKnRoaXMubnVtU3VibGF5ZXJzKnRoaXMuZGVwdGhFcHNpbG9uXSx0aGlzLnJlbmRlclBhc3M9Im9wYXF1ZSIsdGhpcy5jdXJyZW50TGF5ZXI9bi5sZW5ndGgtMTt0aGlzLmN1cnJlbnRMYXllcj49MDt0aGlzLmN1cnJlbnRMYXllci0tKXt2YXIgQT10aGlzLnN0eWxlLl9sYXllcnNbblt0aGlzLmN1cnJlbnRMYXllcl1dLFM9YVtBLnNvdXJjZV0sRT1zW0Euc291cmNlXTt0aGlzLl9yZW5kZXJUaWxlQ2xpcHBpbmdNYXNrcyhBLEUpLHRoaXMucmVuZGVyTGF5ZXIodGhpcyxTLEEsRSl9Zm9yKHRoaXMucmVuZGVyUGFzcz0idHJhbnNsdWNlbnQiLHRoaXMuY3VycmVudExheWVyPTA7dGhpcy5jdXJyZW50TGF5ZXI8bi5sZW5ndGg7dGhpcy5jdXJyZW50TGF5ZXIrKyl7dmFyIEw9dGhpcy5zdHlsZS5fbGF5ZXJzW25bdGhpcy5jdXJyZW50TGF5ZXJdXSxDPWFbTC5zb3VyY2VdLFA9KCJzeW1ib2wiPT09TC50eXBlP2M6bClbTC5zb3VyY2VdO3RoaXMuX3JlbmRlclRpbGVDbGlwcGluZ01hc2tzKEwsc1tMLnNvdXJjZV0pLHRoaXMucmVuZGVyTGF5ZXIodGhpcyxDLEwsUCl9aWYodGhpcy5vcHRpb25zLnNob3dUaWxlQm91bmRhcmllcylmb3IodmFyIE8gaW4gYSl7YW4uZGVidWcodGhpcyxhW09dLHNbT10pO2JyZWFrfXRoaXMuY29udGV4dC5zZXREZWZhdWx0KCl9LG9uLnByb3RvdHlwZS5zZXR1cE9mZnNjcmVlbkRlcHRoUmVuZGVyYnVmZmVyPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb250ZXh0O3RoaXMuZGVwdGhSYm98fCh0aGlzLmRlcHRoUmJvPXQuY3JlYXRlUmVuZGVyYnVmZmVyKHQuZ2wuREVQVEhfQ09NUE9ORU5UMTYsdGhpcy53aWR0aCx0aGlzLmhlaWdodCkpfSxvbi5wcm90b3R5cGUucmVuZGVyTGF5ZXI9ZnVuY3Rpb24odCxlLHIsbil7ci5pc0hpZGRlbih0aGlzLnRyYW5zZm9ybS56b29tKXx8KCJiYWNrZ3JvdW5kIj09PXIudHlwZXx8ImN1c3RvbSI9PT1yLnR5cGV8fG4ubGVuZ3RoKSYmKHRoaXMuaWQ9ci5pZCxhbltyLnR5cGVdKHQsZSxyLG4sdGhpcy5zdHlsZS5wbGFjZW1lbnQudmFyaWFibGVPZmZzZXRzKSl9LG9uLnByb3RvdHlwZS50cmFuc2xhdGVQb3NNYXRyaXg9ZnVuY3Rpb24oZSxyLG4sYSxpKXtpZighblswXSYmIW5bMV0pcmV0dXJuIGU7dmFyIG89aT8ibWFwIj09PWE/dGhpcy50cmFuc2Zvcm0uYW5nbGU6MDoidmlld3BvcnQiPT09YT8tdGhpcy50cmFuc2Zvcm0uYW5nbGU6MDtpZihvKXt2YXIgcz1NYXRoLnNpbihvKSxsPU1hdGguY29zKG8pO249W25bMF0qbC1uWzFdKnMsblswXSpzK25bMV0qbF19dmFyIGM9W2k/blswXTpjZShyLG5bMF0sdGhpcy50cmFuc2Zvcm0uem9vbSksaT9uWzFdOmNlKHIsblsxXSx0aGlzLnRyYW5zZm9ybS56b29tKSwwXSx1PW5ldyBGbG9hdDMyQXJyYXkoMTYpO3JldHVybiB0LnRyYW5zbGF0ZSh1LGUsYyksdX0sb24ucHJvdG90eXBlLnNhdmVUaWxlVGV4dHVyZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl90aWxlVGV4dHVyZXNbdC5zaXplWzBdXTtlP2UucHVzaCh0KTp0aGlzLl90aWxlVGV4dHVyZXNbdC5zaXplWzBdXT1bdF19LG9uLnByb3RvdHlwZS5nZXRUaWxlVGV4dHVyZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl90aWxlVGV4dHVyZXNbdF07cmV0dXJuIGUmJmUubGVuZ3RoPjA/ZS5wb3AoKTpudWxsfSxvbi5wcm90b3R5cGUuaXNQYXR0ZXJuTWlzc2luZz1mdW5jdGlvbih0KXtpZighdClyZXR1cm4hMTt2YXIgZT10aGlzLmltYWdlTWFuYWdlci5nZXRQYXR0ZXJuKHQuZnJvbSkscj10aGlzLmltYWdlTWFuYWdlci5nZXRQYXR0ZXJuKHQudG8pO3JldHVybiFlfHwhcn0sb24ucHJvdG90eXBlLnVzZVByb2dyYW09ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT10aGlzLmVtcHR5UHJvZ3JhbUNvbmZpZ3VyYXRpb24pLHRoaXMuY2FjaGU9dGhpcy5jYWNoZXx8e307dmFyIHI9IiIrdCsoZS5jYWNoZUtleXx8IiIpKyh0aGlzLl9zaG93T3ZlcmRyYXdJbnNwZWN0b3I/Ii9vdmVyZHJhdyI6IiIpO3JldHVybiB0aGlzLmNhY2hlW3JdfHwodGhpcy5jYWNoZVtyXT1uZXcgZnIodGhpcy5jb250ZXh0LHVyW3RdLGUsVnJbdF0sdGhpcy5fc2hvd092ZXJkcmF3SW5zcGVjdG9yKSksdGhpcy5jYWNoZVtyXX0sb24ucHJvdG90eXBlLnNldEN1c3RvbUxheWVyRGVmYXVsdHM9ZnVuY3Rpb24oKXt0aGlzLmNvbnRleHQudW5iaW5kVkFPKCksdGhpcy5jb250ZXh0LmN1bGxGYWNlLnNldERlZmF1bHQoKSx0aGlzLmNvbnRleHQuYWN0aXZlVGV4dHVyZS5zZXREZWZhdWx0KCksdGhpcy5jb250ZXh0LnBpeGVsU3RvcmVVbnBhY2suc2V0RGVmYXVsdCgpLHRoaXMuY29udGV4dC5waXhlbFN0b3JlVW5wYWNrUHJlbXVsdGlwbHlBbHBoYS5zZXREZWZhdWx0KCksdGhpcy5jb250ZXh0LnBpeGVsU3RvcmVVbnBhY2tGbGlwWS5zZXREZWZhdWx0KCl9LG9uLnByb3RvdHlwZS5zZXRCYXNlU3RhdGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNvbnRleHQuZ2w7dGhpcy5jb250ZXh0LmN1bGxGYWNlLnNldCghMSksdGhpcy5jb250ZXh0LnZpZXdwb3J0LnNldChbMCwwLHRoaXMud2lkdGgsdGhpcy5oZWlnaHRdKSx0aGlzLmNvbnRleHQuYmxlbmRFcXVhdGlvbi5zZXQodC5GVU5DX0FERCl9O3ZhciB1bj1mdW5jdGlvbihlLHIsbil7dGhpcy50aWxlU2l6ZT01MTIsdGhpcy5tYXhWYWxpZExhdGl0dWRlPTg1LjA1MTEyOSx0aGlzLl9yZW5kZXJXb3JsZENvcGllcz12b2lkIDA9PT1ufHxuLHRoaXMuX21pblpvb209ZXx8MCx0aGlzLl9tYXhab29tPXJ8fDIyLHRoaXMuc2V0TWF4Qm91bmRzKCksdGhpcy53aWR0aD0wLHRoaXMuaGVpZ2h0PTAsdGhpcy5fY2VudGVyPW5ldyB0LkxuZ0xhdCgwLDApLHRoaXMuem9vbT0wLHRoaXMuYW5nbGU9MCx0aGlzLl9mb3Y9LjY0MzUwMTEwODc5MzI4NDQsdGhpcy5fcGl0Y2g9MCx0aGlzLl91bm1vZGlmaWVkPSEwLHRoaXMuX3Bvc01hdHJpeENhY2hlPXt9LHRoaXMuX2FsaWduZWRQb3NNYXRyaXhDYWNoZT17fX0saG49e21pblpvb206e2NvbmZpZ3VyYWJsZTohMH0sbWF4Wm9vbTp7Y29uZmlndXJhYmxlOiEwfSxyZW5kZXJXb3JsZENvcGllczp7Y29uZmlndXJhYmxlOiEwfSx3b3JsZFNpemU6e2NvbmZpZ3VyYWJsZTohMH0sY2VudGVyUG9pbnQ6e2NvbmZpZ3VyYWJsZTohMH0sc2l6ZTp7Y29uZmlndXJhYmxlOiEwfSxiZWFyaW5nOntjb25maWd1cmFibGU6ITB9LHBpdGNoOntjb25maWd1cmFibGU6ITB9LGZvdjp7Y29uZmlndXJhYmxlOiEwfSx6b29tOntjb25maWd1cmFibGU6ITB9LGNlbnRlcjp7Y29uZmlndXJhYmxlOiEwfSx1bm1vZGlmaWVkOntjb25maWd1cmFibGU6ITB9LHBvaW50Ontjb25maWd1cmFibGU6ITB9fTt1bi5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgdW4odGhpcy5fbWluWm9vbSx0aGlzLl9tYXhab29tLHRoaXMuX3JlbmRlcldvcmxkQ29waWVzKTtyZXR1cm4gdC50aWxlU2l6ZT10aGlzLnRpbGVTaXplLHQubGF0UmFuZ2U9dGhpcy5sYXRSYW5nZSx0LndpZHRoPXRoaXMud2lkdGgsdC5oZWlnaHQ9dGhpcy5oZWlnaHQsdC5fY2VudGVyPXRoaXMuX2NlbnRlcix0Lnpvb209dGhpcy56b29tLHQuYW5nbGU9dGhpcy5hbmdsZSx0Ll9mb3Y9dGhpcy5fZm92LHQuX3BpdGNoPXRoaXMuX3BpdGNoLHQuX3VubW9kaWZpZWQ9dGhpcy5fdW5tb2RpZmllZCx0Ll9jYWxjTWF0cmljZXMoKSx0fSxobi5taW5ab29tLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9taW5ab29tfSxobi5taW5ab29tLnNldD1mdW5jdGlvbih0KXt0aGlzLl9taW5ab29tIT09dCYmKHRoaXMuX21pblpvb209dCx0aGlzLnpvb209TWF0aC5tYXgodGhpcy56b29tLHQpKX0saG4ubWF4Wm9vbS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWF4Wm9vbX0saG4ubWF4Wm9vbS5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fbWF4Wm9vbSE9PXQmJih0aGlzLl9tYXhab29tPXQsdGhpcy56b29tPU1hdGgubWluKHRoaXMuem9vbSx0KSl9LGhuLnJlbmRlcldvcmxkQ29waWVzLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZW5kZXJXb3JsZENvcGllc30saG4ucmVuZGVyV29ybGRDb3BpZXMuc2V0PWZ1bmN0aW9uKHQpe3ZvaWQgMD09PXQ/dD0hMDpudWxsPT09dCYmKHQ9ITEpLHRoaXMuX3JlbmRlcldvcmxkQ29waWVzPXR9LGhuLndvcmxkU2l6ZS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50aWxlU2l6ZSp0aGlzLnNjYWxlfSxobi5jZW50ZXJQb2ludC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaXplLl9kaXYoMil9LGhuLnNpemUuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0LlBvaW50KHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpfSxobi5iZWFyaW5nLmdldD1mdW5jdGlvbigpe3JldHVybi10aGlzLmFuZ2xlL01hdGguUEkqMTgwfSxobi5iZWFyaW5nLnNldD1mdW5jdGlvbihlKXt2YXIgcj0tdC53cmFwKGUsLTE4MCwxODApKk1hdGguUEkvMTgwO3RoaXMuYW5nbGUhPT1yJiYodGhpcy5fdW5tb2RpZmllZD0hMSx0aGlzLmFuZ2xlPXIsdGhpcy5fY2FsY01hdHJpY2VzKCksdGhpcy5yb3RhdGlvbk1hdHJpeD10LmNyZWF0ZSQyKCksdC5yb3RhdGUodGhpcy5yb3RhdGlvbk1hdHJpeCx0aGlzLnJvdGF0aW9uTWF0cml4LHRoaXMuYW5nbGUpKX0saG4ucGl0Y2guZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3BpdGNoL01hdGguUEkqMTgwfSxobi5waXRjaC5zZXQ9ZnVuY3Rpb24oZSl7dmFyIHI9dC5jbGFtcChlLDAsNjApLzE4MCpNYXRoLlBJO3RoaXMuX3BpdGNoIT09ciYmKHRoaXMuX3VubW9kaWZpZWQ9ITEsdGhpcy5fcGl0Y2g9cix0aGlzLl9jYWxjTWF0cmljZXMoKSl9LGhuLmZvdi5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZm92L01hdGguUEkqMTgwfSxobi5mb3Yuc2V0PWZ1bmN0aW9uKHQpe3Q9TWF0aC5tYXgoLjAxLE1hdGgubWluKDYwLHQpKSx0aGlzLl9mb3YhPT10JiYodGhpcy5fdW5tb2RpZmllZD0hMSx0aGlzLl9mb3Y9dC8xODAqTWF0aC5QSSx0aGlzLl9jYWxjTWF0cmljZXMoKSl9LGhuLnpvb20uZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3pvb219LGhuLnpvb20uc2V0PWZ1bmN0aW9uKHQpe3ZhciBlPU1hdGgubWluKE1hdGgubWF4KHQsdGhpcy5taW5ab29tKSx0aGlzLm1heFpvb20pO3RoaXMuX3pvb20hPT1lJiYodGhpcy5fdW5tb2RpZmllZD0hMSx0aGlzLl96b29tPWUsdGhpcy5zY2FsZT10aGlzLnpvb21TY2FsZShlKSx0aGlzLnRpbGVab29tPU1hdGguZmxvb3IoZSksdGhpcy56b29tRnJhY3Rpb249ZS10aGlzLnRpbGVab29tLHRoaXMuX2NvbnN0cmFpbigpLHRoaXMuX2NhbGNNYXRyaWNlcygpKX0saG4uY2VudGVyLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jZW50ZXJ9LGhuLmNlbnRlci5zZXQ9ZnVuY3Rpb24odCl7dC5sYXQ9PT10aGlzLl9jZW50ZXIubGF0JiZ0LmxuZz09PXRoaXMuX2NlbnRlci5sbmd8fCh0aGlzLl91bm1vZGlmaWVkPSExLHRoaXMuX2NlbnRlcj10LHRoaXMuX2NvbnN0cmFpbigpLHRoaXMuX2NhbGNNYXRyaWNlcygpKX0sdW4ucHJvdG90eXBlLmNvdmVyaW5nWm9vbUxldmVsPWZ1bmN0aW9uKHQpe3JldHVybih0LnJvdW5kWm9vbT9NYXRoLnJvdW5kOk1hdGguZmxvb3IpKHRoaXMuem9vbSt0aGlzLnNjYWxlWm9vbSh0aGlzLnRpbGVTaXplL3QudGlsZVNpemUpKX0sdW4ucHJvdG90eXBlLmdldFZpc2libGVVbndyYXBwZWRDb29yZGluYXRlcz1mdW5jdGlvbihlKXt2YXIgcj1bbmV3IHQuVW53cmFwcGVkVGlsZUlEKDAsZSldO2lmKHRoaXMuX3JlbmRlcldvcmxkQ29waWVzKWZvcih2YXIgbj10aGlzLnBvaW50Q29vcmRpbmF0ZShuZXcgdC5Qb2ludCgwLDApKSxhPXRoaXMucG9pbnRDb29yZGluYXRlKG5ldyB0LlBvaW50KHRoaXMud2lkdGgsMCkpLGk9dGhpcy5wb2ludENvb3JkaW5hdGUobmV3IHQuUG9pbnQodGhpcy53aWR0aCx0aGlzLmhlaWdodCkpLG89dGhpcy5wb2ludENvb3JkaW5hdGUobmV3IHQuUG9pbnQoMCx0aGlzLmhlaWdodCkpLHM9TWF0aC5mbG9vcihNYXRoLm1pbihuLngsYS54LGkueCxvLngpKSxsPU1hdGguZmxvb3IoTWF0aC5tYXgobi54LGEueCxpLngsby54KSksYz1zLTE7Yzw9bCsxO2MrKykwIT09YyYmci5wdXNoKG5ldyB0LlVud3JhcHBlZFRpbGVJRChjLGUpKTtyZXR1cm4gcn0sdW4ucHJvdG90eXBlLmNvdmVyaW5nVGlsZXM9ZnVuY3Rpb24oZSl7dmFyIHI9dGhpcy5jb3ZlcmluZ1pvb21MZXZlbChlKSxuPXI7aWYodm9pZCAwIT09ZS5taW56b29tJiZyPGUubWluem9vbSlyZXR1cm5bXTt2b2lkIDAhPT1lLm1heHpvb20mJnI+ZS5tYXh6b29tJiYocj1lLm1heHpvb20pO3ZhciBhPXQuTWVyY2F0b3JDb29yZGluYXRlLmZyb21MbmdMYXQodGhpcy5jZW50ZXIpLGk9TWF0aC5wb3coMixyKSxvPW5ldyB0LlBvaW50KGkqYS54LS41LGkqYS55LS41KTtyZXR1cm4gZnVuY3Rpb24oZSxyLG4sYSl7dm9pZCAwPT09YSYmKGE9ITApO3ZhciBpPTE8PGUsbz17fTtmdW5jdGlvbiBzKHIscyxsKXt2YXIgYyx1LGgsZjtpZihsPj0wJiZsPD1pKWZvcihjPXI7YzxzO2MrKyl1PU1hdGguZmxvb3IoYy9pKSxoPShjJWkraSklaSwwIT09dSYmITAhPT1hfHwoZj1uZXcgdC5PdmVyc2NhbGVkVGlsZUlEKG4sdSxlLGgsbCksb1tmLmtleV09Zil9dmFyIGw9ci5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB0LlBvaW50KGUueCxlLnkpLl9tdWx0KGkpfSk7cmV0dXJuIGNuKGxbMF0sbFsxXSxsWzJdLDAsaSxzKSxjbihsWzJdLGxbM10sbFswXSwwLGkscyksT2JqZWN0LmtleXMobykubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBvW3RdfSl9KHIsW3RoaXMucG9pbnRDb29yZGluYXRlKG5ldyB0LlBvaW50KDAsMCkpLHRoaXMucG9pbnRDb29yZGluYXRlKG5ldyB0LlBvaW50KHRoaXMud2lkdGgsMCkpLHRoaXMucG9pbnRDb29yZGluYXRlKG5ldyB0LlBvaW50KHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpKSx0aGlzLnBvaW50Q29vcmRpbmF0ZShuZXcgdC5Qb2ludCgwLHRoaXMuaGVpZ2h0KSldLGUucmVwYXJzZU92ZXJzY2FsZWQ/bjpyLHRoaXMuX3JlbmRlcldvcmxkQ29waWVzKS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG8uZGlzdCh0LmNhbm9uaWNhbCktby5kaXN0KGUuY2Fub25pY2FsKX0pfSx1bi5wcm90b3R5cGUucmVzaXplPWZ1bmN0aW9uKHQsZSl7dGhpcy53aWR0aD10LHRoaXMuaGVpZ2h0PWUsdGhpcy5waXhlbHNUb0dMVW5pdHM9WzIvdCwtMi9lXSx0aGlzLl9jb25zdHJhaW4oKSx0aGlzLl9jYWxjTWF0cmljZXMoKX0saG4udW5tb2RpZmllZC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdW5tb2RpZmllZH0sdW4ucHJvdG90eXBlLnpvb21TY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5wb3coMix0KX0sdW4ucHJvdG90eXBlLnNjYWxlWm9vbT1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5sb2codCkvTWF0aC5MTjJ9LHVuLnByb3RvdHlwZS5wcm9qZWN0PWZ1bmN0aW9uKGUpe3ZhciByPXQuY2xhbXAoZS5sYXQsLXRoaXMubWF4VmFsaWRMYXRpdHVkZSx0aGlzLm1heFZhbGlkTGF0aXR1ZGUpO3JldHVybiBuZXcgdC5Qb2ludCh0Lm1lcmNhdG9yWGZyb21MbmcoZS5sbmcpKnRoaXMud29ybGRTaXplLHQubWVyY2F0b3JZZnJvbUxhdChyKSp0aGlzLndvcmxkU2l6ZSl9LHVuLnByb3RvdHlwZS51bnByb2plY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB0Lk1lcmNhdG9yQ29vcmRpbmF0ZShlLngvdGhpcy53b3JsZFNpemUsZS55L3RoaXMud29ybGRTaXplKS50b0xuZ0xhdCgpfSxobi5wb2ludC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcm9qZWN0KHRoaXMuY2VudGVyKX0sdW4ucHJvdG90eXBlLnNldExvY2F0aW9uQXRQb2ludD1mdW5jdGlvbihlLHIpe3ZhciBuPXRoaXMucG9pbnRDb29yZGluYXRlKHIpLGE9dGhpcy5wb2ludENvb3JkaW5hdGUodGhpcy5jZW50ZXJQb2ludCksaT10aGlzLmxvY2F0aW9uQ29vcmRpbmF0ZShlKSxvPW5ldyB0Lk1lcmNhdG9yQ29vcmRpbmF0ZShpLngtKG4ueC1hLngpLGkueS0obi55LWEueSkpO3RoaXMuY2VudGVyPXRoaXMuY29vcmRpbmF0ZUxvY2F0aW9uKG8pLHRoaXMuX3JlbmRlcldvcmxkQ29waWVzJiYodGhpcy5jZW50ZXI9dGhpcy5jZW50ZXIud3JhcCgpKX0sdW4ucHJvdG90eXBlLmxvY2F0aW9uUG9pbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY29vcmRpbmF0ZVBvaW50KHRoaXMubG9jYXRpb25Db29yZGluYXRlKHQpKX0sdW4ucHJvdG90eXBlLnBvaW50TG9jYXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY29vcmRpbmF0ZUxvY2F0aW9uKHRoaXMucG9pbnRDb29yZGluYXRlKHQpKX0sdW4ucHJvdG90eXBlLmxvY2F0aW9uQ29vcmRpbmF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gdC5NZXJjYXRvckNvb3JkaW5hdGUuZnJvbUxuZ0xhdChlKX0sdW4ucHJvdG90eXBlLmNvb3JkaW5hdGVMb2NhdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gdC50b0xuZ0xhdCgpfSx1bi5wcm90b3R5cGUucG9pbnRDb29yZGluYXRlPWZ1bmN0aW9uKGUpe3ZhciByPVtlLngsZS55LDAsMV0sbj1bZS54LGUueSwxLDFdO3QudHJhbnNmb3JtTWF0NChyLHIsdGhpcy5waXhlbE1hdHJpeEludmVyc2UpLHQudHJhbnNmb3JtTWF0NChuLG4sdGhpcy5waXhlbE1hdHJpeEludmVyc2UpO3ZhciBhPXJbM10saT1uWzNdLG89clswXS9hLHM9blswXS9pLGw9clsxXS9hLGM9blsxXS9pLHU9clsyXS9hLGg9blsyXS9pLGY9dT09PWg/MDooMC11KS8oaC11KTtyZXR1cm4gbmV3IHQuTWVyY2F0b3JDb29yZGluYXRlKHQubnVtYmVyKG8scyxmKS90aGlzLndvcmxkU2l6ZSx0Lm51bWJlcihsLGMsZikvdGhpcy53b3JsZFNpemUpfSx1bi5wcm90b3R5cGUuY29vcmRpbmF0ZVBvaW50PWZ1bmN0aW9uKGUpe3ZhciByPVtlLngqdGhpcy53b3JsZFNpemUsZS55KnRoaXMud29ybGRTaXplLDAsMV07cmV0dXJuIHQudHJhbnNmb3JtTWF0NChyLHIsdGhpcy5waXhlbE1hdHJpeCksbmV3IHQuUG9pbnQoclswXS9yWzNdLHJbMV0vclszXSl9LHVuLnByb3RvdHlwZS5nZXRCb3VuZHM9ZnVuY3Rpb24oKXtyZXR1cm4obmV3IHQuTG5nTGF0Qm91bmRzKS5leHRlbmQodGhpcy5wb2ludExvY2F0aW9uKG5ldyB0LlBvaW50KDAsMCkpKS5leHRlbmQodGhpcy5wb2ludExvY2F0aW9uKG5ldyB0LlBvaW50KHRoaXMud2lkdGgsMCkpKS5leHRlbmQodGhpcy5wb2ludExvY2F0aW9uKG5ldyB0LlBvaW50KHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpKSkuZXh0ZW5kKHRoaXMucG9pbnRMb2NhdGlvbihuZXcgdC5Qb2ludCgwLHRoaXMuaGVpZ2h0KSkpfSx1bi5wcm90b3R5cGUuZ2V0TWF4Qm91bmRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF0UmFuZ2UmJjI9PT10aGlzLmxhdFJhbmdlLmxlbmd0aCYmdGhpcy5sbmdSYW5nZSYmMj09PXRoaXMubG5nUmFuZ2UubGVuZ3RoP25ldyB0LkxuZ0xhdEJvdW5kcyhbdGhpcy5sbmdSYW5nZVswXSx0aGlzLmxhdFJhbmdlWzBdXSxbdGhpcy5sbmdSYW5nZVsxXSx0aGlzLmxhdFJhbmdlWzFdXSk6bnVsbH0sdW4ucHJvdG90eXBlLnNldE1heEJvdW5kcz1mdW5jdGlvbih0KXt0Pyh0aGlzLmxuZ1JhbmdlPVt0LmdldFdlc3QoKSx0LmdldEVhc3QoKV0sdGhpcy5sYXRSYW5nZT1bdC5nZXRTb3V0aCgpLHQuZ2V0Tm9ydGgoKV0sdGhpcy5fY29uc3RyYWluKCkpOih0aGlzLmxuZ1JhbmdlPW51bGwsdGhpcy5sYXRSYW5nZT1bLXRoaXMubWF4VmFsaWRMYXRpdHVkZSx0aGlzLm1heFZhbGlkTGF0aXR1ZGVdKX0sdW4ucHJvdG90eXBlLmNhbGN1bGF0ZVBvc01hdHJpeD1mdW5jdGlvbihlLHIpe3ZvaWQgMD09PXImJihyPSExKTt2YXIgbj1lLmtleSxhPXI/dGhpcy5fYWxpZ25lZFBvc01hdHJpeENhY2hlOnRoaXMuX3Bvc01hdHJpeENhY2hlO2lmKGFbbl0pcmV0dXJuIGFbbl07dmFyIGk9ZS5jYW5vbmljYWwsbz10aGlzLndvcmxkU2l6ZS90aGlzLnpvb21TY2FsZShpLnopLHM9aS54K01hdGgucG93KDIsaS56KSplLndyYXAsbD10LmlkZW50aXR5KG5ldyBGbG9hdDY0QXJyYXkoMTYpKTtyZXR1cm4gdC50cmFuc2xhdGUobCxsLFtzKm8saS55Km8sMF0pLHQuc2NhbGUobCxsLFtvL3QuRVhURU5ULG8vdC5FWFRFTlQsMV0pLHQubXVsdGlwbHkobCxyP3RoaXMuYWxpZ25lZFByb2pNYXRyaXg6dGhpcy5wcm9qTWF0cml4LGwpLGFbbl09bmV3IEZsb2F0MzJBcnJheShsKSxhW25dfSx1bi5wcm90b3R5cGUuY3VzdG9tTGF5ZXJNYXRyaXg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tZXJjYXRvck1hdHJpeC5zbGljZSgpfSx1bi5wcm90b3R5cGUuX2NvbnN0cmFpbj1mdW5jdGlvbigpe2lmKHRoaXMuY2VudGVyJiZ0aGlzLndpZHRoJiZ0aGlzLmhlaWdodCYmIXRoaXMuX2NvbnN0cmFpbmluZyl7dGhpcy5fY29uc3RyYWluaW5nPSEwO3ZhciBlLHIsbixhLGk9LTkwLG89OTAscz0tMTgwLGw9MTgwLGM9dGhpcy5zaXplLHU9dGhpcy5fdW5tb2RpZmllZDtpZih0aGlzLmxhdFJhbmdlKXt2YXIgaD10aGlzLmxhdFJhbmdlO2k9dC5tZXJjYXRvcllmcm9tTGF0KGhbMV0pKnRoaXMud29ybGRTaXplLGU9KG89dC5tZXJjYXRvcllmcm9tTGF0KGhbMF0pKnRoaXMud29ybGRTaXplKS1pPGMueT9jLnkvKG8taSk6MH1pZih0aGlzLmxuZ1JhbmdlKXt2YXIgZj10aGlzLmxuZ1JhbmdlO3M9dC5tZXJjYXRvclhmcm9tTG5nKGZbMF0pKnRoaXMud29ybGRTaXplLHI9KGw9dC5tZXJjYXRvclhmcm9tTG5nKGZbMV0pKnRoaXMud29ybGRTaXplKS1zPGMueD9jLngvKGwtcyk6MH12YXIgcD10aGlzLnBvaW50LGQ9TWF0aC5tYXgocnx8MCxlfHwwKTtpZihkKXJldHVybiB0aGlzLmNlbnRlcj10aGlzLnVucHJvamVjdChuZXcgdC5Qb2ludChyPyhsK3MpLzI6cC54LGU/KG8raSkvMjpwLnkpKSx0aGlzLnpvb20rPXRoaXMuc2NhbGVab29tKGQpLHRoaXMuX3VubW9kaWZpZWQ9dSx2b2lkKHRoaXMuX2NvbnN0cmFpbmluZz0hMSk7aWYodGhpcy5sYXRSYW5nZSl7dmFyIGc9cC55LHY9Yy55LzI7Zy12PGkmJihhPWkrdiksZyt2Pm8mJihhPW8tdil9aWYodGhpcy5sbmdSYW5nZSl7dmFyIG09cC54LHk9Yy54LzI7bS15PHMmJihuPXMreSksbSt5PmwmJihuPWwteSl9dm9pZCAwPT09biYmdm9pZCAwPT09YXx8KHRoaXMuY2VudGVyPXRoaXMudW5wcm9qZWN0KG5ldyB0LlBvaW50KHZvaWQgMCE9PW4/bjpwLngsdm9pZCAwIT09YT9hOnAueSkpKSx0aGlzLl91bm1vZGlmaWVkPXUsdGhpcy5fY29uc3RyYWluaW5nPSExfX0sdW4ucHJvdG90eXBlLl9jYWxjTWF0cmljZXM9ZnVuY3Rpb24oKXtpZih0aGlzLmhlaWdodCl7dGhpcy5jYW1lcmFUb0NlbnRlckRpc3RhbmNlPS41L01hdGgudGFuKHRoaXMuX2Zvdi8yKSp0aGlzLmhlaWdodDt2YXIgZT10aGlzLl9mb3YvMixyPU1hdGguUEkvMit0aGlzLl9waXRjaCxuPU1hdGguc2luKGUpKnRoaXMuY2FtZXJhVG9DZW50ZXJEaXN0YW5jZS9NYXRoLnNpbihNYXRoLlBJLXItZSksYT10aGlzLnBvaW50LGk9YS54LG89YS55LHM9MS4wMSooTWF0aC5jb3MoTWF0aC5QSS8yLXRoaXMuX3BpdGNoKSpuK3RoaXMuY2FtZXJhVG9DZW50ZXJEaXN0YW5jZSksbD10aGlzLmhlaWdodC81MCxjPW5ldyBGbG9hdDY0QXJyYXkoMTYpO3QucGVyc3BlY3RpdmUoYyx0aGlzLl9mb3YsdGhpcy53aWR0aC90aGlzLmhlaWdodCxsLHMpLHQuc2NhbGUoYyxjLFsxLC0xLDFdKSx0LnRyYW5zbGF0ZShjLGMsWzAsMCwtdGhpcy5jYW1lcmFUb0NlbnRlckRpc3RhbmNlXSksdC5yb3RhdGVYKGMsYyx0aGlzLl9waXRjaCksdC5yb3RhdGVaKGMsYyx0aGlzLmFuZ2xlKSx0LnRyYW5zbGF0ZShjLGMsWy1pLC1vLDBdKSx0aGlzLm1lcmNhdG9yTWF0cml4PXQuc2NhbGUoW10sYyxbdGhpcy53b3JsZFNpemUsdGhpcy53b3JsZFNpemUsdGhpcy53b3JsZFNpemVdKSx0LnNjYWxlKGMsYyxbMSwxLHQubWVyY2F0b3JaZnJvbUFsdGl0dWRlKDEsdGhpcy5jZW50ZXIubGF0KSp0aGlzLndvcmxkU2l6ZSwxXSksdGhpcy5wcm9qTWF0cml4PWM7dmFyIHU9dGhpcy53aWR0aCUyLzIsaD10aGlzLmhlaWdodCUyLzIsZj1NYXRoLmNvcyh0aGlzLmFuZ2xlKSxwPU1hdGguc2luKHRoaXMuYW5nbGUpLGQ9aS1NYXRoLnJvdW5kKGkpK2YqdStwKmgsZz1vLU1hdGgucm91bmQobykrZipoK3AqdSx2PW5ldyBGbG9hdDY0QXJyYXkoYyk7aWYodC50cmFuc2xhdGUodix2LFtkPi41P2QtMTpkLGc+LjU/Zy0xOmcsMF0pLHRoaXMuYWxpZ25lZFByb2pNYXRyaXg9dixjPXQuY3JlYXRlKCksdC5zY2FsZShjLGMsW3RoaXMud2lkdGgvMiwtdGhpcy5oZWlnaHQvMiwxXSksdC50cmFuc2xhdGUoYyxjLFsxLC0xLDBdKSx0aGlzLmxhYmVsUGxhbmVNYXRyaXg9YyxjPXQuY3JlYXRlKCksdC5zY2FsZShjLGMsWzEsLTEsMV0pLHQudHJhbnNsYXRlKGMsYyxbLTEsLTEsMF0pLHQuc2NhbGUoYyxjLFsyL3RoaXMud2lkdGgsMi90aGlzLmhlaWdodCwxXSksdGhpcy5nbENvb3JkTWF0cml4PWMsdGhpcy5waXhlbE1hdHJpeD10Lm11bHRpcGx5KG5ldyBGbG9hdDY0QXJyYXkoMTYpLHRoaXMubGFiZWxQbGFuZU1hdHJpeCx0aGlzLnByb2pNYXRyaXgpLCEoYz10LmludmVydChuZXcgRmxvYXQ2NEFycmF5KDE2KSx0aGlzLnBpeGVsTWF0cml4KSkpdGhyb3cgbmV3IEVycm9yKCJmYWlsZWQgdG8gaW52ZXJ0IG1hdHJpeCIpO3RoaXMucGl4ZWxNYXRyaXhJbnZlcnNlPWMsdGhpcy5fcG9zTWF0cml4Q2FjaGU9e30sdGhpcy5fYWxpZ25lZFBvc01hdHJpeENhY2hlPXt9fX0sdW4ucHJvdG90eXBlLm1heFBpdGNoU2NhbGVGYWN0b3I9ZnVuY3Rpb24oKXtpZighdGhpcy5waXhlbE1hdHJpeEludmVyc2UpcmV0dXJuIDE7dmFyIGU9dGhpcy5wb2ludENvb3JkaW5hdGUobmV3IHQuUG9pbnQoMCwwKSkscj1bZS54KnRoaXMud29ybGRTaXplLGUueSp0aGlzLndvcmxkU2l6ZSwwLDFdO3JldHVybiB0LnRyYW5zZm9ybU1hdDQocixyLHRoaXMucGl4ZWxNYXRyaXgpWzNdL3RoaXMuY2FtZXJhVG9DZW50ZXJEaXN0YW5jZX0sdW4ucHJvdG90eXBlLmdldENhbWVyYVBvaW50PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fcGl0Y2gscj1NYXRoLnRhbihlKSoodGhpcy5jYW1lcmFUb0NlbnRlckRpc3RhbmNlfHwxKTtyZXR1cm4gdGhpcy5jZW50ZXJQb2ludC5hZGQobmV3IHQuUG9pbnQoMCxyKSl9LHVuLnByb3RvdHlwZS5nZXRDYW1lcmFRdWVyeUdlb21ldHJ5PWZ1bmN0aW9uKGUpe3ZhciByPXRoaXMuZ2V0Q2FtZXJhUG9pbnQoKTtpZigxPT09ZS5sZW5ndGgpcmV0dXJuW2VbMF0scl07Zm9yKHZhciBuPXIueCxhPXIueSxpPXIueCxvPXIueSxzPTAsbD1lO3M8bC5sZW5ndGg7cys9MSl7dmFyIGM9bFtzXTtuPU1hdGgubWluKG4sYy54KSxhPU1hdGgubWluKGEsYy55KSxpPU1hdGgubWF4KGksYy54KSxvPU1hdGgubWF4KG8sYy55KX1yZXR1cm5bbmV3IHQuUG9pbnQobixhKSxuZXcgdC5Qb2ludChpLGEpLG5ldyB0LlBvaW50KGksbyksbmV3IHQuUG9pbnQobixvKSxuZXcgdC5Qb2ludChuLGEpXX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXModW4ucHJvdG90eXBlLGhuKTt2YXIgZm49ZnVuY3Rpb24oKXt2YXIgZSxyLG4sYTt0LmJpbmRBbGwoWyJfb25IYXNoQ2hhbmdlIiwiX3VwZGF0ZUhhc2giXSx0aGlzKSx0aGlzLl91cGRhdGVIYXNoPShlPXRoaXMuX3VwZGF0ZUhhc2hVbnRocm90dGxlZC5iaW5kKHRoaXMpLDMwMCxyPSExLG49bnVsbCxhPWZ1bmN0aW9uKCl7bj1udWxsLHImJihlKCksbj1zZXRUaW1lb3V0KGEsMzAwKSxyPSExKX0sZnVuY3Rpb24oKXtyZXR1cm4gcj0hMCxufHxhKCksbn0pfTtmbi5wcm90b3R5cGUuYWRkVG89ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX21hcD1lLHQud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLHRoaXMuX29uSGFzaENoYW5nZSwhMSksdGhpcy5fbWFwLm9uKCJtb3ZlZW5kIix0aGlzLl91cGRhdGVIYXNoKSx0aGlzfSxmbi5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKCl7cmV0dXJuIHQud2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLHRoaXMuX29uSGFzaENoYW5nZSwhMSksdGhpcy5fbWFwLm9mZigibW92ZWVuZCIsdGhpcy5fdXBkYXRlSGFzaCksY2xlYXJUaW1lb3V0KHRoaXMuX3VwZGF0ZUhhc2goKSksZGVsZXRlIHRoaXMuX21hcCx0aGlzfSxmbi5wcm90b3R5cGUuZ2V0SGFzaFN0cmluZz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9tYXAuZ2V0Q2VudGVyKCkscj1NYXRoLnJvdW5kKDEwMCp0aGlzLl9tYXAuZ2V0Wm9vbSgpKS8xMDAsbj1NYXRoLmNlaWwoKHIqTWF0aC5MTjIrTWF0aC5sb2coNTEyLzM2MC8uNSkpL01hdGguTE4xMCksYT1NYXRoLnBvdygxMCxuKSxpPU1hdGgucm91bmQoZS5sbmcqYSkvYSxvPU1hdGgucm91bmQoZS5sYXQqYSkvYSxzPXRoaXMuX21hcC5nZXRCZWFyaW5nKCksbD10aGlzLl9tYXAuZ2V0UGl0Y2goKSxjPSIiO3JldHVybiBjKz10PyIjLyIraSsiLyIrbysiLyIrcjoiIyIrcisiLyIrbysiLyIraSwoc3x8bCkmJihjKz0iLyIrTWF0aC5yb3VuZCgxMCpzKS8xMCksbCYmKGMrPSIvIitNYXRoLnJvdW5kKGwpKSxjfSxmbi5wcm90b3R5cGUuX29uSGFzaENoYW5nZT1mdW5jdGlvbigpe3ZhciBlPXQud2luZG93LmxvY2F0aW9uLmhhc2gucmVwbGFjZSgiIyIsIiIpLnNwbGl0KCIvIik7cmV0dXJuIGUubGVuZ3RoPj0zJiYodGhpcy5fbWFwLmp1bXBUbyh7Y2VudGVyOlsrZVsyXSwrZVsxXV0sem9vbTorZVswXSxiZWFyaW5nOisoZVszXXx8MCkscGl0Y2g6KyhlWzRdfHwwKX0pLCEwKX0sZm4ucHJvdG90eXBlLl91cGRhdGVIYXNoVW50aHJvdHRsZWQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmdldEhhc2hTdHJpbmcoKTt0cnl7dC53aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUodC53aW5kb3cuaGlzdG9yeS5zdGF0ZSwiIixlKX1jYXRjaCh0KXt9fTt2YXIgcG49ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gbihuLGEsaSxvKXt2b2lkIDA9PT1vJiYobz17fSk7dmFyIHM9ci5tb3VzZVBvcyhhLmdldENhbnZhc0NvbnRhaW5lcigpLGkpLGw9YS51bnByb2plY3Qocyk7ZS5jYWxsKHRoaXMsbix0LmV4dGVuZCh7cG9pbnQ6cyxsbmdMYXQ6bCxvcmlnaW5hbEV2ZW50Oml9LG8pKSx0aGlzLl9kZWZhdWx0UHJldmVudGVkPSExLHRoaXMudGFyZ2V0PWF9ZSYmKG4uX19wcm90b19fPWUpLG4ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUpLG4ucHJvdG90eXBlLmNvbnN0cnVjdG9yPW47dmFyIGE9e2RlZmF1bHRQcmV2ZW50ZWQ6e2NvbmZpZ3VyYWJsZTohMH19O3JldHVybiBuLnByb3RvdHlwZS5wcmV2ZW50RGVmYXVsdD1mdW5jdGlvbigpe3RoaXMuX2RlZmF1bHRQcmV2ZW50ZWQ9ITB9LGEuZGVmYXVsdFByZXZlbnRlZC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVmYXVsdFByZXZlbnRlZH0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMobi5wcm90b3R5cGUsYSksbn0odC5FdmVudCksZG49ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gbihuLGEsaSl7dmFyIG89ci50b3VjaFBvcyhhLmdldENhbnZhc0NvbnRhaW5lcigpLGkpLHM9by5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGEudW5wcm9qZWN0KHQpfSksbD1vLnJlZHVjZShmdW5jdGlvbih0LGUscixuKXtyZXR1cm4gdC5hZGQoZS5kaXYobi5sZW5ndGgpKX0sbmV3IHQuUG9pbnQoMCwwKSksYz1hLnVucHJvamVjdChsKTtlLmNhbGwodGhpcyxuLHtwb2ludHM6byxwb2ludDpsLGxuZ0xhdHM6cyxsbmdMYXQ6YyxvcmlnaW5hbEV2ZW50Oml9KSx0aGlzLl9kZWZhdWx0UHJldmVudGVkPSExfWUmJihuLl9fcHJvdG9fXz1lKSxuLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlKSxuLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1uO3ZhciBhPXtkZWZhdWx0UHJldmVudGVkOntjb25maWd1cmFibGU6ITB9fTtyZXR1cm4gbi5wcm90b3R5cGUucHJldmVudERlZmF1bHQ9ZnVuY3Rpb24oKXt0aGlzLl9kZWZhdWx0UHJldmVudGVkPSEwfSxhLmRlZmF1bHRQcmV2ZW50ZWQuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RlZmF1bHRQcmV2ZW50ZWR9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG4ucHJvdG90eXBlLGEpLG59KHQuRXZlbnQpLGduPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSxyLG4pe3QuY2FsbCh0aGlzLGUse29yaWdpbmFsRXZlbnQ6bn0pLHRoaXMuX2RlZmF1bHRQcmV2ZW50ZWQ9ITF9dCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWU7dmFyIHI9e2RlZmF1bHRQcmV2ZW50ZWQ6e2NvbmZpZ3VyYWJsZTohMH19O3JldHVybiBlLnByb3RvdHlwZS5wcmV2ZW50RGVmYXVsdD1mdW5jdGlvbigpe3RoaXMuX2RlZmF1bHRQcmV2ZW50ZWQ9ITB9LHIuZGVmYXVsdFByZXZlbnRlZC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVmYXVsdFByZXZlbnRlZH0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZS5wcm90b3R5cGUsciksZX0odC5FdmVudCksdm49ZnVuY3Rpb24oZSl7dGhpcy5fbWFwPWUsdGhpcy5fZWw9ZS5nZXRDYW52YXNDb250YWluZXIoKSx0aGlzLl9kZWx0YT0wLHRoaXMuX2RlZmF1bHRab29tUmF0ZT0uMDEsdGhpcy5fd2hlZWxab29tUmF0ZT0xLzQ1MCx0LmJpbmRBbGwoWyJfb25XaGVlbCIsIl9vblRpbWVvdXQiLCJfb25TY3JvbGxGcmFtZSIsIl9vblNjcm9sbEZpbmlzaGVkIl0sdGhpcyl9O3ZuLnByb3RvdHlwZS5zZXRab29tUmF0ZT1mdW5jdGlvbih0KXt0aGlzLl9kZWZhdWx0Wm9vbVJhdGU9dH0sdm4ucHJvdG90eXBlLnNldFdoZWVsWm9vbVJhdGU9ZnVuY3Rpb24odCl7dGhpcy5fd2hlZWxab29tUmF0ZT10fSx2bi5wcm90b3R5cGUuaXNFbmFibGVkPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLl9lbmFibGVkfSx2bi5wcm90b3R5cGUuaXNBY3RpdmU9ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuX2FjdGl2ZX0sdm4ucHJvdG90eXBlLmlzWm9vbWluZz1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5fem9vbWluZ30sdm4ucHJvdG90eXBlLmVuYWJsZT1mdW5jdGlvbih0KXt0aGlzLmlzRW5hYmxlZCgpfHwodGhpcy5fZW5hYmxlZD0hMCx0aGlzLl9hcm91bmRDZW50ZXI9dCYmImNlbnRlciI9PT10LmFyb3VuZCl9LHZuLnByb3RvdHlwZS5kaXNhYmxlPWZ1bmN0aW9uKCl7dGhpcy5pc0VuYWJsZWQoKSYmKHRoaXMuX2VuYWJsZWQ9ITEpfSx2bi5wcm90b3R5cGUub25XaGVlbD1mdW5jdGlvbihlKXtpZih0aGlzLmlzRW5hYmxlZCgpKXt2YXIgcj1lLmRlbHRhTW9kZT09PXQud2luZG93LldoZWVsRXZlbnQuRE9NX0RFTFRBX0xJTkU/NDAqZS5kZWx0YVk6ZS5kZWx0YVksbj10LmJyb3dzZXIubm93KCksYT1uLSh0aGlzLl9sYXN0V2hlZWxFdmVudFRpbWV8fDApO3RoaXMuX2xhc3RXaGVlbEV2ZW50VGltZT1uLDAhPT1yJiZyJTQuMDAwMjQ0MTQwNjI1PT0wP3RoaXMuX3R5cGU9IndoZWVsIjowIT09ciYmTWF0aC5hYnMocik8ND90aGlzLl90eXBlPSJ0cmFja3BhZCI6YT40MDA/KHRoaXMuX3R5cGU9bnVsbCx0aGlzLl9sYXN0VmFsdWU9cix0aGlzLl90aW1lb3V0PXNldFRpbWVvdXQodGhpcy5fb25UaW1lb3V0LDQwLGUpKTp0aGlzLl90eXBlfHwodGhpcy5fdHlwZT1NYXRoLmFicyhhKnIpPDIwMD8idHJhY2twYWQiOiJ3aGVlbCIsdGhpcy5fdGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0KSx0aGlzLl90aW1lb3V0PW51bGwscis9dGhpcy5fbGFzdFZhbHVlKSksZS5zaGlmdEtleSYmciYmKHIvPTQpLHRoaXMuX3R5cGUmJih0aGlzLl9sYXN0V2hlZWxFdmVudD1lLHRoaXMuX2RlbHRhLT1yLHRoaXMuaXNBY3RpdmUoKXx8dGhpcy5fc3RhcnQoZSkpLGUucHJldmVudERlZmF1bHQoKX19LHZuLnByb3RvdHlwZS5fb25UaW1lb3V0PWZ1bmN0aW9uKHQpe3RoaXMuX3R5cGU9IndoZWVsIix0aGlzLl9kZWx0YS09dGhpcy5fbGFzdFZhbHVlLHRoaXMuaXNBY3RpdmUoKXx8dGhpcy5fc3RhcnQodCl9LHZuLnByb3RvdHlwZS5fc3RhcnQ9ZnVuY3Rpb24oZSl7aWYodGhpcy5fZGVsdGEpe3RoaXMuX2ZyYW1lSWQmJih0aGlzLl9tYXAuX2NhbmNlbFJlbmRlckZyYW1lKHRoaXMuX2ZyYW1lSWQpLHRoaXMuX2ZyYW1lSWQ9bnVsbCksdGhpcy5fYWN0aXZlPSEwLHRoaXMuaXNab29taW5nKCl8fCh0aGlzLl96b29taW5nPSEwLHRoaXMuX21hcC5maXJlKG5ldyB0LkV2ZW50KCJtb3Zlc3RhcnQiLHtvcmlnaW5hbEV2ZW50OmV9KSksdGhpcy5fbWFwLmZpcmUobmV3IHQuRXZlbnQoInpvb21zdGFydCIse29yaWdpbmFsRXZlbnQ6ZX0pKSksdGhpcy5fZmluaXNoVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuX2ZpbmlzaFRpbWVvdXQpO3ZhciBuPXIubW91c2VQb3ModGhpcy5fZWwsZSk7dGhpcy5fYXJvdW5kPXQuTG5nTGF0LmNvbnZlcnQodGhpcy5fYXJvdW5kQ2VudGVyP3RoaXMuX21hcC5nZXRDZW50ZXIoKTp0aGlzLl9tYXAudW5wcm9qZWN0KG4pKSx0aGlzLl9hcm91bmRQb2ludD10aGlzLl9tYXAudHJhbnNmb3JtLmxvY2F0aW9uUG9pbnQodGhpcy5fYXJvdW5kKSx0aGlzLl9mcmFtZUlkfHwodGhpcy5fZnJhbWVJZD10aGlzLl9tYXAuX3JlcXVlc3RSZW5kZXJGcmFtZSh0aGlzLl9vblNjcm9sbEZyYW1lKSl9fSx2bi5wcm90b3R5cGUuX29uU2Nyb2xsRnJhbWU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2lmKHRoaXMuX2ZyYW1lSWQ9bnVsbCx0aGlzLmlzQWN0aXZlKCkpe3ZhciByPXRoaXMuX21hcC50cmFuc2Zvcm07aWYoMCE9PXRoaXMuX2RlbHRhKXt2YXIgbj0id2hlZWwiPT09dGhpcy5fdHlwZSYmTWF0aC5hYnModGhpcy5fZGVsdGEpPjQuMDAwMjQ0MTQwNjI1P3RoaXMuX3doZWVsWm9vbVJhdGU6dGhpcy5fZGVmYXVsdFpvb21SYXRlLGE9Mi8oMStNYXRoLmV4cCgtTWF0aC5hYnModGhpcy5fZGVsdGEqbikpKTt0aGlzLl9kZWx0YTwwJiYwIT09YSYmKGE9MS9hKTt2YXIgaT0ibnVtYmVyIj09dHlwZW9mIHRoaXMuX3RhcmdldFpvb20/ci56b29tU2NhbGUodGhpcy5fdGFyZ2V0Wm9vbSk6ci5zY2FsZTt0aGlzLl90YXJnZXRab29tPU1hdGgubWluKHIubWF4Wm9vbSxNYXRoLm1heChyLm1pblpvb20sci5zY2FsZVpvb20oaSphKSkpLCJ3aGVlbCI9PT10aGlzLl90eXBlJiYodGhpcy5fc3RhcnRab29tPXIuem9vbSx0aGlzLl9lYXNpbmc9dGhpcy5fc21vb3RoT3V0RWFzaW5nKDIwMCkpLHRoaXMuX2RlbHRhPTB9dmFyIG89Im51bWJlciI9PXR5cGVvZiB0aGlzLl90YXJnZXRab29tP3RoaXMuX3RhcmdldFpvb206ci56b29tLHM9dGhpcy5fc3RhcnRab29tLGw9dGhpcy5fZWFzaW5nLGM9ITE7aWYoIndoZWVsIj09PXRoaXMuX3R5cGUmJnMmJmwpe3ZhciB1PU1hdGgubWluKCh0LmJyb3dzZXIubm93KCktdGhpcy5fbGFzdFdoZWVsRXZlbnRUaW1lKS8yMDAsMSksaD1sKHUpO3Iuem9vbT10Lm51bWJlcihzLG8saCksdTwxP3RoaXMuX2ZyYW1lSWR8fCh0aGlzLl9mcmFtZUlkPXRoaXMuX21hcC5fcmVxdWVzdFJlbmRlckZyYW1lKHRoaXMuX29uU2Nyb2xsRnJhbWUpKTpjPSEwfWVsc2Ugci56b29tPW8sYz0hMDtyLnNldExvY2F0aW9uQXRQb2ludCh0aGlzLl9hcm91bmQsdGhpcy5fYXJvdW5kUG9pbnQpLHRoaXMuX21hcC5maXJlKG5ldyB0LkV2ZW50KCJtb3ZlIix7b3JpZ2luYWxFdmVudDp0aGlzLl9sYXN0V2hlZWxFdmVudH0pKSx0aGlzLl9tYXAuZmlyZShuZXcgdC5FdmVudCgiem9vbSIse29yaWdpbmFsRXZlbnQ6dGhpcy5fbGFzdFdoZWVsRXZlbnR9KSksYyYmKHRoaXMuX2FjdGl2ZT0hMSx0aGlzLl9maW5pc2hUaW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLl96b29taW5nPSExLGUuX21hcC5maXJlKG5ldyB0LkV2ZW50KCJ6b29tZW5kIix7b3JpZ2luYWxFdmVudDplLl9sYXN0V2hlZWxFdmVudH0pKSxlLl9tYXAuZmlyZShuZXcgdC5FdmVudCgibW92ZWVuZCIse29yaWdpbmFsRXZlbnQ6ZS5fbGFzdFdoZWVsRXZlbnR9KSksZGVsZXRlIGUuX3RhcmdldFpvb219LDIwMCkpfX0sdm4ucHJvdG90eXBlLl9zbW9vdGhPdXRFYXNpbmc9ZnVuY3Rpb24oZSl7dmFyIHI9dC5lYXNlO2lmKHRoaXMuX3ByZXZFYXNlKXt2YXIgbj10aGlzLl9wcmV2RWFzZSxhPSh0LmJyb3dzZXIubm93KCktbi5zdGFydCkvbi5kdXJhdGlvbixpPW4uZWFzaW5nKGErLjAxKS1uLmVhc2luZyhhKSxvPS4yNy9NYXRoLnNxcnQoaSppKzFlLTQpKi4wMSxzPU1hdGguc3FydCguMDcyOS1vKm8pO3I9dC5iZXppZXIobyxzLC4yNSwxKX1yZXR1cm4gdGhpcy5fcHJldkVhc2U9e3N0YXJ0OnQuYnJvd3Nlci5ub3coKSxkdXJhdGlvbjplLGVhc2luZzpyfSxyfTt2YXIgbW49ZnVuY3Rpb24oZSxyKXt0aGlzLl9tYXA9ZSx0aGlzLl9lbD1lLmdldENhbnZhc0NvbnRhaW5lcigpLHRoaXMuX2NvbnRhaW5lcj1lLmdldENvbnRhaW5lcigpLHRoaXMuX2NsaWNrVG9sZXJhbmNlPXIuY2xpY2tUb2xlcmFuY2V8fDEsdC5iaW5kQWxsKFsiX29uTW91c2VNb3ZlIiwiX29uTW91c2VVcCIsIl9vbktleURvd24iXSx0aGlzKX07bW4ucHJvdG90eXBlLmlzRW5hYmxlZD1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5fZW5hYmxlZH0sbW4ucHJvdG90eXBlLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLl9hY3RpdmV9LG1uLnByb3RvdHlwZS5lbmFibGU9ZnVuY3Rpb24oKXt0aGlzLmlzRW5hYmxlZCgpfHwodGhpcy5fZW5hYmxlZD0hMCl9LG1uLnByb3RvdHlwZS5kaXNhYmxlPWZ1bmN0aW9uKCl7dGhpcy5pc0VuYWJsZWQoKSYmKHRoaXMuX2VuYWJsZWQ9ITEpfSxtbi5wcm90b3R5cGUub25Nb3VzZURvd249ZnVuY3Rpb24oZSl7dGhpcy5pc0VuYWJsZWQoKSYmZS5zaGlmdEtleSYmMD09PWUuYnV0dG9uJiYodC53aW5kb3cuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLl9vbk1vdXNlTW92ZSwhMSksdC53aW5kb3cuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5fb25LZXlEb3duLCExKSx0LndpbmRvdy5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLl9vbk1vdXNlVXAsITEpLHIuZGlzYWJsZURyYWcoKSx0aGlzLl9zdGFydFBvcz10aGlzLl9sYXN0UG9zPXIubW91c2VQb3ModGhpcy5fZWwsZSksdGhpcy5fYWN0aXZlPSEwKX0sbW4ucHJvdG90eXBlLl9vbk1vdXNlTW92ZT1mdW5jdGlvbih0KXt2YXIgZT1yLm1vdXNlUG9zKHRoaXMuX2VsLHQpO2lmKCEodGhpcy5fbGFzdFBvcy5lcXVhbHMoZSl8fCF0aGlzLl9ib3gmJmUuZGlzdCh0aGlzLl9zdGFydFBvcyk8dGhpcy5fY2xpY2tUb2xlcmFuY2UpKXt2YXIgbj10aGlzLl9zdGFydFBvczt0aGlzLl9sYXN0UG9zPWUsdGhpcy5fYm94fHwodGhpcy5fYm94PXIuY3JlYXRlKCJkaXYiLCJtYXBib3hnbC1ib3h6b29tIix0aGlzLl9jb250YWluZXIpLHRoaXMuX2NvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC1jcm9zc2hhaXIiKSx0aGlzLl9maXJlRXZlbnQoImJveHpvb21zdGFydCIsdCkpO3ZhciBhPU1hdGgubWluKG4ueCxlLngpLGk9TWF0aC5tYXgobi54LGUueCksbz1NYXRoLm1pbihuLnksZS55KSxzPU1hdGgubWF4KG4ueSxlLnkpO3Iuc2V0VHJhbnNmb3JtKHRoaXMuX2JveCwidHJhbnNsYXRlKCIrYSsicHgsIitvKyJweCkiKSx0aGlzLl9ib3guc3R5bGUud2lkdGg9aS1hKyJweCIsdGhpcy5fYm94LnN0eWxlLmhlaWdodD1zLW8rInB4In19LG1uLnByb3RvdHlwZS5fb25Nb3VzZVVwPWZ1bmN0aW9uKGUpe2lmKDA9PT1lLmJ1dHRvbil7dmFyIG49dGhpcy5fc3RhcnRQb3MsYT1yLm1vdXNlUG9zKHRoaXMuX2VsLGUpO3RoaXMuX2ZpbmlzaCgpLHIuc3VwcHJlc3NDbGljaygpLG4ueD09PWEueCYmbi55PT09YS55P3RoaXMuX2ZpcmVFdmVudCgiYm94em9vbWNhbmNlbCIsZSk6dGhpcy5fbWFwLmZpdFNjcmVlbkNvb3JkaW5hdGVzKG4sYSx0aGlzLl9tYXAuZ2V0QmVhcmluZygpLHtsaW5lYXI6ITB9KS5maXJlKG5ldyB0LkV2ZW50KCJib3h6b29tZW5kIix7b3JpZ2luYWxFdmVudDplfSkpfX0sbW4ucHJvdG90eXBlLl9vbktleURvd249ZnVuY3Rpb24odCl7Mjc9PT10LmtleUNvZGUmJih0aGlzLl9maW5pc2goKSx0aGlzLl9maXJlRXZlbnQoImJveHpvb21jYW5jZWwiLHQpKX0sbW4ucHJvdG90eXBlLl9maW5pc2g9ZnVuY3Rpb24oKXt0aGlzLl9hY3RpdmU9ITEsdC53aW5kb3cuZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLl9vbk1vdXNlTW92ZSwhMSksdC53aW5kb3cuZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5fb25LZXlEb3duLCExKSx0LndpbmRvdy5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLl9vbk1vdXNlVXAsITEpLHRoaXMuX2NvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKCJtYXBib3hnbC1jcm9zc2hhaXIiKSx0aGlzLl9ib3gmJihyLnJlbW92ZSh0aGlzLl9ib3gpLHRoaXMuX2JveD1udWxsKSxyLmVuYWJsZURyYWcoKSxkZWxldGUgdGhpcy5fc3RhcnRQb3MsZGVsZXRlIHRoaXMuX2xhc3RQb3N9LG1uLnByb3RvdHlwZS5fZmlyZUV2ZW50PWZ1bmN0aW9uKGUscil7cmV0dXJuIHRoaXMuX21hcC5maXJlKG5ldyB0LkV2ZW50KGUse29yaWdpbmFsRXZlbnQ6cn0pKX07dmFyIHluPXQuYmV6aWVyKDAsMCwuMjUsMSkseG49ZnVuY3Rpb24oZSxyKXt0aGlzLl9tYXA9ZSx0aGlzLl9lbD1yLmVsZW1lbnR8fGUuZ2V0Q2FudmFzQ29udGFpbmVyKCksdGhpcy5fc3RhdGU9ImRpc2FibGVkIix0aGlzLl9idXR0b249ci5idXR0b258fCJyaWdodCIsdGhpcy5fYmVhcmluZ1NuYXA9ci5iZWFyaW5nU25hcHx8MCx0aGlzLl9waXRjaFdpdGhSb3RhdGU9ITEhPT1yLnBpdGNoV2l0aFJvdGF0ZSx0LmJpbmRBbGwoWyJvbk1vdXNlRG93biIsIl9vbk1vdXNlTW92ZSIsIl9vbk1vdXNlVXAiLCJfb25CbHVyIiwiX29uRHJhZ0ZyYW1lIl0sdGhpcyl9O3huLnByb3RvdHlwZS5pc0VuYWJsZWQ9ZnVuY3Rpb24oKXtyZXR1cm4iZGlzYWJsZWQiIT09dGhpcy5fc3RhdGV9LHhuLnByb3RvdHlwZS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiJhY3RpdmUiPT09dGhpcy5fc3RhdGV9LHhuLnByb3RvdHlwZS5lbmFibGU9ZnVuY3Rpb24oKXt0aGlzLmlzRW5hYmxlZCgpfHwodGhpcy5fc3RhdGU9ImVuYWJsZWQiKX0seG4ucHJvdG90eXBlLmRpc2FibGU9ZnVuY3Rpb24oKXtpZih0aGlzLmlzRW5hYmxlZCgpKXN3aXRjaCh0aGlzLl9zdGF0ZSl7Y2FzZSJhY3RpdmUiOnRoaXMuX3N0YXRlPSJkaXNhYmxlZCIsdGhpcy5fdW5iaW5kKCksdGhpcy5fZGVhY3RpdmF0ZSgpLHRoaXMuX2ZpcmVFdmVudCgicm90YXRlZW5kIiksdGhpcy5fcGl0Y2hXaXRoUm90YXRlJiZ0aGlzLl9maXJlRXZlbnQoInBpdGNoZW5kIiksdGhpcy5fZmlyZUV2ZW50KCJtb3ZlZW5kIik7YnJlYWs7Y2FzZSJwZW5kaW5nIjp0aGlzLl9zdGF0ZT0iZGlzYWJsZWQiLHRoaXMuX3VuYmluZCgpO2JyZWFrO2RlZmF1bHQ6dGhpcy5fc3RhdGU9ImRpc2FibGVkIn19LHhuLnByb3RvdHlwZS5vbk1vdXNlRG93bj1mdW5jdGlvbihlKXtpZigiZW5hYmxlZCI9PT10aGlzLl9zdGF0ZSl7dmFyIG49InRvdWNoc3RhcnQiPT09ZS50eXBlO2lmKG4pdGhpcy5fc3RhcnRUaW1lPURhdGUubm93KCk7ZWxzZSBpZigicmlnaHQiPT09dGhpcy5fYnV0dG9uKXtpZih0aGlzLl9ldmVudEJ1dHRvbj1yLm1vdXNlQnV0dG9uKGUpLHRoaXMuX2V2ZW50QnV0dG9uIT09KGUuY3RybEtleT8wOjIpKXJldHVybn1lbHNle2lmKGUuY3RybEtleXx8MCE9PXIubW91c2VCdXR0b24oZSkpcmV0dXJuO3RoaXMuX2V2ZW50QnV0dG9uPTB9ci5kaXNhYmxlRHJhZygpLG4/KHQud2luZG93LmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsdGhpcy5fb25Nb3VzZU1vdmUse2NhcHR1cmU6ITB9KSx0LndpbmRvdy5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdGhpcy5fb25Nb3VzZVVwKSk6KHQud2luZG93LmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5fb25Nb3VzZU1vdmUse2NhcHR1cmU6ITB9KSx0LndpbmRvdy5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLl9vbk1vdXNlVXApKSx0LndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLl9vbkJsdXIpLHRoaXMuX3N0YXRlPSJwZW5kaW5nIix0aGlzLl9pbmVydGlhPVtbdC5icm93c2VyLm5vdygpLHRoaXMuX21hcC5nZXRCZWFyaW5nKCldXSx0aGlzLl9zdGFydFBvcz10aGlzLl9wcmV2UG9zPXRoaXMuX2xhc3RQb3M9ci5tb3VzZVBvcyh0aGlzLl9lbCxlKSx0aGlzLl9jZW50ZXI9dGhpcy5fbWFwLnRyYW5zZm9ybS5jZW50ZXJQb2ludCxlLnByZXZlbnREZWZhdWx0KCl9fSx4bi5wcm90b3R5cGUuX29uTW91c2VNb3ZlPWZ1bmN0aW9uKHQpe3ZhciBlPXIubW91c2VQb3ModGhpcy5fZWwsdCk7dGhpcy5fbGFzdFBvcy5lcXVhbHMoZSl8fCh0aGlzLl9sYXN0TW92ZUV2ZW50PXQsdGhpcy5fbGFzdFBvcz1lLCJwZW5kaW5nIj09PXRoaXMuX3N0YXRlJiYodGhpcy5fc3RhdGU9ImFjdGl2ZSIsdGhpcy5fZmlyZUV2ZW50KCJyb3RhdGVzdGFydCIsdCksdGhpcy5fZmlyZUV2ZW50KCJtb3Zlc3RhcnQiLHQpLHRoaXMuX3BpdGNoV2l0aFJvdGF0ZSYmdGhpcy5fZmlyZUV2ZW50KCJwaXRjaHN0YXJ0Iix0KSksdGhpcy5fZnJhbWVJZHx8KHRoaXMuX2ZyYW1lSWQ9dGhpcy5fbWFwLl9yZXF1ZXN0UmVuZGVyRnJhbWUodGhpcy5fb25EcmFnRnJhbWUpKSl9LHhuLnByb3RvdHlwZS5fb25EcmFnRnJhbWU9ZnVuY3Rpb24oKXt0aGlzLl9mcmFtZUlkPW51bGw7dmFyIGU9dGhpcy5fbGFzdE1vdmVFdmVudDtpZihlKXt2YXIgcj10aGlzLl9tYXAudHJhbnNmb3JtLG49dGhpcy5fcHJldlBvcyxhPXRoaXMuX2xhc3RQb3MsaT0uOCoobi54LWEueCksbz0tLjUqKG4ueS1hLnkpLHM9ci5iZWFyaW5nLWksbD1yLnBpdGNoLW8sYz10aGlzLl9pbmVydGlhLHU9Y1tjLmxlbmd0aC0xXTt0aGlzLl9kcmFpbkluZXJ0aWFCdWZmZXIoKSxjLnB1c2goW3QuYnJvd3Nlci5ub3coKSx0aGlzLl9tYXAuX25vcm1hbGl6ZUJlYXJpbmcocyx1WzFdKV0pLHIuYmVhcmluZz1zLHRoaXMuX3BpdGNoV2l0aFJvdGF0ZSYmKHRoaXMuX2ZpcmVFdmVudCgicGl0Y2giLGUpLHIucGl0Y2g9bCksdGhpcy5fZmlyZUV2ZW50KCJyb3RhdGUiLGUpLHRoaXMuX2ZpcmVFdmVudCgibW92ZSIsZSksZGVsZXRlIHRoaXMuX2xhc3RNb3ZlRXZlbnQsdGhpcy5fcHJldlBvcz10aGlzLl9sYXN0UG9zfX0seG4ucHJvdG90eXBlLl9vbk1vdXNlVXA9ZnVuY3Rpb24odCl7aWYoInRvdWNoZW5kIj09PXQudHlwZSYmdGhpcy5fc3RhcnRQb3M9PT10aGlzLl9sYXN0UG9zJiZEYXRlLm5vdygpLXRoaXMuX3N0YXJ0VGltZTwzMDAmJnRoaXMuX2VsLmNsaWNrKCksci5tb3VzZUJ1dHRvbih0KT09PXRoaXMuX2V2ZW50QnV0dG9uKXN3aXRjaCh0aGlzLl9zdGF0ZSl7Y2FzZSJhY3RpdmUiOnRoaXMuX3N0YXRlPSJlbmFibGVkIixyLnN1cHByZXNzQ2xpY2soKSx0aGlzLl91bmJpbmQoKSx0aGlzLl9kZWFjdGl2YXRlKCksdGhpcy5faW5lcnRpYWxSb3RhdGUodCk7YnJlYWs7Y2FzZSJwZW5kaW5nIjp0aGlzLl9zdGF0ZT0iZW5hYmxlZCIsdGhpcy5fdW5iaW5kKCl9fSx4bi5wcm90b3R5cGUuX29uQmx1cj1mdW5jdGlvbih0KXtzd2l0Y2godGhpcy5fc3RhdGUpe2Nhc2UiYWN0aXZlIjp0aGlzLl9zdGF0ZT0iZW5hYmxlZCIsdGhpcy5fdW5iaW5kKCksdGhpcy5fZGVhY3RpdmF0ZSgpLHRoaXMuX2ZpcmVFdmVudCgicm90YXRlZW5kIix0KSx0aGlzLl9waXRjaFdpdGhSb3RhdGUmJnRoaXMuX2ZpcmVFdmVudCgicGl0Y2hlbmQiLHQpLHRoaXMuX2ZpcmVFdmVudCgibW92ZWVuZCIsdCk7YnJlYWs7Y2FzZSJwZW5kaW5nIjp0aGlzLl9zdGF0ZT0iZW5hYmxlZCIsdGhpcy5fdW5iaW5kKCl9fSx4bi5wcm90b3R5cGUuX3VuYmluZD1mdW5jdGlvbigpe3Qud2luZG93LmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5fb25Nb3VzZU1vdmUse2NhcHR1cmU6ITB9KSx0LndpbmRvdy5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLl9vbk1vdXNlVXApLHQud2luZG93LmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsdGhpcy5fb25Nb3VzZU1vdmUse2NhcHR1cmU6ITB9KSx0LndpbmRvdy5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdGhpcy5fb25Nb3VzZVVwKSx0LndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLl9vbkJsdXIpLHIuZW5hYmxlRHJhZygpfSx4bi5wcm90b3R5cGUuX2RlYWN0aXZhdGU9ZnVuY3Rpb24oKXt0aGlzLl9mcmFtZUlkJiYodGhpcy5fbWFwLl9jYW5jZWxSZW5kZXJGcmFtZSh0aGlzLl9mcmFtZUlkKSx0aGlzLl9mcmFtZUlkPW51bGwpLGRlbGV0ZSB0aGlzLl9sYXN0TW92ZUV2ZW50LGRlbGV0ZSB0aGlzLl9zdGFydFBvcyxkZWxldGUgdGhpcy5fcHJldlBvcyxkZWxldGUgdGhpcy5fbGFzdFBvc30seG4ucHJvdG90eXBlLl9pbmVydGlhbFJvdGF0ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuX2ZpcmVFdmVudCgicm90YXRlZW5kIix0KSx0aGlzLl9kcmFpbkluZXJ0aWFCdWZmZXIoKTt2YXIgcj10aGlzLl9tYXAsbj1yLmdldEJlYXJpbmcoKSxhPXRoaXMuX2luZXJ0aWEsaT1mdW5jdGlvbigpe01hdGguYWJzKG4pPGUuX2JlYXJpbmdTbmFwP3IucmVzZXROb3J0aCh7bm9Nb3ZlU3RhcnQ6ITB9LHtvcmlnaW5hbEV2ZW50OnR9KTplLl9maXJlRXZlbnQoIm1vdmVlbmQiLHQpLGUuX3BpdGNoV2l0aFJvdGF0ZSYmZS5fZmlyZUV2ZW50KCJwaXRjaGVuZCIsdCl9O2lmKGEubGVuZ3RoPDIpaSgpO2Vsc2V7dmFyIG89YVswXSxzPWFbYS5sZW5ndGgtMV0sbD1hW2EubGVuZ3RoLTJdLGM9ci5fbm9ybWFsaXplQmVhcmluZyhuLGxbMV0pLHU9c1sxXS1vWzFdLGg9dTwwPy0xOjEsZj0oc1swXS1vWzBdKS8xZTM7aWYoMCE9PXUmJjAhPT1mKXt2YXIgcD1NYXRoLmFicyh1KiguMjUvZikpO3A+MTgwJiYocD0xODApO3ZhciBkPXAvMTgwO2MrPWgqcCooZC8yKSxNYXRoLmFicyhyLl9ub3JtYWxpemVCZWFyaW5nKGMsMCkpPHRoaXMuX2JlYXJpbmdTbmFwJiYoYz1yLl9ub3JtYWxpemVCZWFyaW5nKDAsYykpLHIucm90YXRlVG8oYyx7ZHVyYXRpb246MWUzKmQsZWFzaW5nOnluLG5vTW92ZVN0YXJ0OiEwfSx7b3JpZ2luYWxFdmVudDp0fSl9ZWxzZSBpKCl9fSx4bi5wcm90b3R5cGUuX2ZpcmVFdmVudD1mdW5jdGlvbihlLHIpe3JldHVybiB0aGlzLl9tYXAuZmlyZShuZXcgdC5FdmVudChlLHI/e29yaWdpbmFsRXZlbnQ6cn06e30pKX0seG4ucHJvdG90eXBlLl9kcmFpbkluZXJ0aWFCdWZmZXI9ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcy5faW5lcnRpYSxyPXQuYnJvd3Nlci5ub3coKTtlLmxlbmd0aD4wJiZyLWVbMF1bMF0+MTYwOyllLnNoaWZ0KCl9O3ZhciBibj10LmJlemllcigwLDAsLjMsMSksX249ZnVuY3Rpb24oZSxyKXt0aGlzLl9tYXA9ZSx0aGlzLl9lbD1lLmdldENhbnZhc0NvbnRhaW5lcigpLHRoaXMuX3N0YXRlPSJkaXNhYmxlZCIsdGhpcy5fY2xpY2tUb2xlcmFuY2U9ci5jbGlja1RvbGVyYW5jZXx8MSx0LmJpbmRBbGwoWyJfb25Nb3ZlIiwiX29uTW91c2VVcCIsIl9vblRvdWNoRW5kIiwiX29uQmx1ciIsIl9vbkRyYWdGcmFtZSJdLHRoaXMpfTtfbi5wcm90b3R5cGUuaXNFbmFibGVkPWZ1bmN0aW9uKCl7cmV0dXJuImRpc2FibGVkIiE9PXRoaXMuX3N0YXRlfSxfbi5wcm90b3R5cGUuaXNBY3RpdmU9ZnVuY3Rpb24oKXtyZXR1cm4iYWN0aXZlIj09PXRoaXMuX3N0YXRlfSxfbi5wcm90b3R5cGUuZW5hYmxlPWZ1bmN0aW9uKCl7dGhpcy5pc0VuYWJsZWQoKXx8KHRoaXMuX2VsLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLXRvdWNoLWRyYWctcGFuIiksdGhpcy5fc3RhdGU9ImVuYWJsZWQiKX0sX24ucHJvdG90eXBlLmRpc2FibGU9ZnVuY3Rpb24oKXtpZih0aGlzLmlzRW5hYmxlZCgpKXN3aXRjaCh0aGlzLl9lbC5jbGFzc0xpc3QucmVtb3ZlKCJtYXBib3hnbC10b3VjaC1kcmFnLXBhbiIpLHRoaXMuX3N0YXRlKXtjYXNlImFjdGl2ZSI6dGhpcy5fc3RhdGU9ImRpc2FibGVkIix0aGlzLl91bmJpbmQoKSx0aGlzLl9kZWFjdGl2YXRlKCksdGhpcy5fZmlyZUV2ZW50KCJkcmFnZW5kIiksdGhpcy5fZmlyZUV2ZW50KCJtb3ZlZW5kIik7YnJlYWs7Y2FzZSJwZW5kaW5nIjp0aGlzLl9zdGF0ZT0iZGlzYWJsZWQiLHRoaXMuX3VuYmluZCgpO2JyZWFrO2RlZmF1bHQ6dGhpcy5fc3RhdGU9ImRpc2FibGVkIn19LF9uLnByb3RvdHlwZS5vbk1vdXNlRG93bj1mdW5jdGlvbihlKXsiZW5hYmxlZCI9PT10aGlzLl9zdGF0ZSYmKGUuY3RybEtleXx8MCE9PXIubW91c2VCdXR0b24oZSl8fChyLmFkZEV2ZW50TGlzdGVuZXIodC53aW5kb3cuZG9jdW1lbnQsIm1vdXNlbW92ZSIsdGhpcy5fb25Nb3ZlLHtjYXB0dXJlOiEwfSksci5hZGRFdmVudExpc3RlbmVyKHQud2luZG93LmRvY3VtZW50LCJtb3VzZXVwIix0aGlzLl9vbk1vdXNlVXApLHRoaXMuX3N0YXJ0KGUpKSl9LF9uLnByb3RvdHlwZS5vblRvdWNoU3RhcnQ9ZnVuY3Rpb24oZSl7ImVuYWJsZWQiPT09dGhpcy5fc3RhdGUmJihlLnRvdWNoZXMubGVuZ3RoPjF8fChyLmFkZEV2ZW50TGlzdGVuZXIodC53aW5kb3cuZG9jdW1lbnQsInRvdWNobW92ZSIsdGhpcy5fb25Nb3ZlLHtjYXB0dXJlOiEwLHBhc3NpdmU6ITF9KSxyLmFkZEV2ZW50TGlzdGVuZXIodC53aW5kb3cuZG9jdW1lbnQsInRvdWNoZW5kIix0aGlzLl9vblRvdWNoRW5kKSx0aGlzLl9zdGFydChlKSkpfSxfbi5wcm90b3R5cGUuX3N0YXJ0PWZ1bmN0aW9uKGUpe3Qud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLHRoaXMuX29uQmx1ciksdGhpcy5fc3RhdGU9InBlbmRpbmciLHRoaXMuX3N0YXJ0UG9zPXRoaXMuX21vdXNlRG93blBvcz10aGlzLl9wcmV2UG9zPXRoaXMuX2xhc3RQb3M9ci5tb3VzZVBvcyh0aGlzLl9lbCxlKSx0aGlzLl9pbmVydGlhPVtbdC5icm93c2VyLm5vdygpLHRoaXMuX3N0YXJ0UG9zXV19LF9uLnByb3RvdHlwZS5fb25Nb3ZlPWZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKTt2YXIgbj1yLm1vdXNlUG9zKHRoaXMuX2VsLGUpO3RoaXMuX2xhc3RQb3MuZXF1YWxzKG4pfHwicGVuZGluZyI9PT10aGlzLl9zdGF0ZSYmbi5kaXN0KHRoaXMuX21vdXNlRG93blBvcyk8dGhpcy5fY2xpY2tUb2xlcmFuY2V8fCh0aGlzLl9sYXN0TW92ZUV2ZW50PWUsdGhpcy5fbGFzdFBvcz1uLHRoaXMuX2RyYWluSW5lcnRpYUJ1ZmZlcigpLHRoaXMuX2luZXJ0aWEucHVzaChbdC5icm93c2VyLm5vdygpLHRoaXMuX2xhc3RQb3NdKSwicGVuZGluZyI9PT10aGlzLl9zdGF0ZSYmKHRoaXMuX3N0YXRlPSJhY3RpdmUiLHRoaXMuX2ZpcmVFdmVudCgiZHJhZ3N0YXJ0IixlKSx0aGlzLl9maXJlRXZlbnQoIm1vdmVzdGFydCIsZSkpLHRoaXMuX2ZyYW1lSWR8fCh0aGlzLl9mcmFtZUlkPXRoaXMuX21hcC5fcmVxdWVzdFJlbmRlckZyYW1lKHRoaXMuX29uRHJhZ0ZyYW1lKSkpfSxfbi5wcm90b3R5cGUuX29uRHJhZ0ZyYW1lPWZ1bmN0aW9uKCl7dGhpcy5fZnJhbWVJZD1udWxsO3ZhciB0PXRoaXMuX2xhc3RNb3ZlRXZlbnQ7aWYodCl7dmFyIGU9dGhpcy5fbWFwLnRyYW5zZm9ybTtlLnNldExvY2F0aW9uQXRQb2ludChlLnBvaW50TG9jYXRpb24odGhpcy5fcHJldlBvcyksdGhpcy5fbGFzdFBvcyksdGhpcy5fZmlyZUV2ZW50KCJkcmFnIix0KSx0aGlzLl9maXJlRXZlbnQoIm1vdmUiLHQpLHRoaXMuX3ByZXZQb3M9dGhpcy5fbGFzdFBvcyxkZWxldGUgdGhpcy5fbGFzdE1vdmVFdmVudH19LF9uLnByb3RvdHlwZS5fb25Nb3VzZVVwPWZ1bmN0aW9uKHQpe2lmKDA9PT1yLm1vdXNlQnV0dG9uKHQpKXN3aXRjaCh0aGlzLl9zdGF0ZSl7Y2FzZSJhY3RpdmUiOnRoaXMuX3N0YXRlPSJlbmFibGVkIixyLnN1cHByZXNzQ2xpY2soKSx0aGlzLl91bmJpbmQoKSx0aGlzLl9kZWFjdGl2YXRlKCksdGhpcy5faW5lcnRpYWxQYW4odCk7YnJlYWs7Y2FzZSJwZW5kaW5nIjp0aGlzLl9zdGF0ZT0iZW5hYmxlZCIsdGhpcy5fdW5iaW5kKCl9fSxfbi5wcm90b3R5cGUuX29uVG91Y2hFbmQ9ZnVuY3Rpb24odCl7c3dpdGNoKHRoaXMuX3N0YXRlKXtjYXNlImFjdGl2ZSI6dGhpcy5fc3RhdGU9ImVuYWJsZWQiLHRoaXMuX3VuYmluZCgpLHRoaXMuX2RlYWN0aXZhdGUoKSx0aGlzLl9pbmVydGlhbFBhbih0KTticmVhaztjYXNlInBlbmRpbmciOnRoaXMuX3N0YXRlPSJlbmFibGVkIix0aGlzLl91bmJpbmQoKX19LF9uLnByb3RvdHlwZS5fb25CbHVyPWZ1bmN0aW9uKHQpe3N3aXRjaCh0aGlzLl9zdGF0ZSl7Y2FzZSJhY3RpdmUiOnRoaXMuX3N0YXRlPSJlbmFibGVkIix0aGlzLl91bmJpbmQoKSx0aGlzLl9kZWFjdGl2YXRlKCksdGhpcy5fZmlyZUV2ZW50KCJkcmFnZW5kIix0KSx0aGlzLl9maXJlRXZlbnQoIm1vdmVlbmQiLHQpO2JyZWFrO2Nhc2UicGVuZGluZyI6dGhpcy5fc3RhdGU9ImVuYWJsZWQiLHRoaXMuX3VuYmluZCgpfX0sX24ucHJvdG90eXBlLl91bmJpbmQ9ZnVuY3Rpb24oKXtyLnJlbW92ZUV2ZW50TGlzdGVuZXIodC53aW5kb3cuZG9jdW1lbnQsInRvdWNobW92ZSIsdGhpcy5fb25Nb3ZlLHtjYXB0dXJlOiEwLHBhc3NpdmU6ITF9KSxyLnJlbW92ZUV2ZW50TGlzdGVuZXIodC53aW5kb3cuZG9jdW1lbnQsInRvdWNoZW5kIix0aGlzLl9vblRvdWNoRW5kKSxyLnJlbW92ZUV2ZW50TGlzdGVuZXIodC53aW5kb3cuZG9jdW1lbnQsIm1vdXNlbW92ZSIsdGhpcy5fb25Nb3ZlLHtjYXB0dXJlOiEwfSksci5yZW1vdmVFdmVudExpc3RlbmVyKHQud2luZG93LmRvY3VtZW50LCJtb3VzZXVwIix0aGlzLl9vbk1vdXNlVXApLHIucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LndpbmRvdywiYmx1ciIsdGhpcy5fb25CbHVyKX0sX24ucHJvdG90eXBlLl9kZWFjdGl2YXRlPWZ1bmN0aW9uKCl7dGhpcy5fZnJhbWVJZCYmKHRoaXMuX21hcC5fY2FuY2VsUmVuZGVyRnJhbWUodGhpcy5fZnJhbWVJZCksdGhpcy5fZnJhbWVJZD1udWxsKSxkZWxldGUgdGhpcy5fbGFzdE1vdmVFdmVudCxkZWxldGUgdGhpcy5fc3RhcnRQb3MsZGVsZXRlIHRoaXMuX3ByZXZQb3MsZGVsZXRlIHRoaXMuX21vdXNlRG93blBvcyxkZWxldGUgdGhpcy5fbGFzdFBvc30sX24ucHJvdG90eXBlLl9pbmVydGlhbFBhbj1mdW5jdGlvbih0KXt0aGlzLl9maXJlRXZlbnQoImRyYWdlbmQiLHQpLHRoaXMuX2RyYWluSW5lcnRpYUJ1ZmZlcigpO3ZhciBlPXRoaXMuX2luZXJ0aWE7aWYoZS5sZW5ndGg8Mil0aGlzLl9maXJlRXZlbnQoIm1vdmVlbmQiLHQpO2Vsc2V7dmFyIHI9ZVtlLmxlbmd0aC0xXSxuPWVbMF0sYT1yWzFdLnN1YihuWzFdKSxpPShyWzBdLW5bMF0pLzFlMztpZigwPT09aXx8clsxXS5lcXVhbHMoblsxXSkpdGhpcy5fZmlyZUV2ZW50KCJtb3ZlZW5kIix0KTtlbHNle3ZhciBvPWEubXVsdCguMy9pKSxzPW8ubWFnKCk7cz4xNDAwJiYocz0xNDAwLG8uX3VuaXQoKS5fbXVsdChzKSk7dmFyIGw9cy83NTAsYz1vLm11bHQoLWwvMik7dGhpcy5fbWFwLnBhbkJ5KGMse2R1cmF0aW9uOjFlMypsLGVhc2luZzpibixub01vdmVTdGFydDohMH0se29yaWdpbmFsRXZlbnQ6dH0pfX19LF9uLnByb3RvdHlwZS5fZmlyZUV2ZW50PWZ1bmN0aW9uKGUscil7cmV0dXJuIHRoaXMuX21hcC5maXJlKG5ldyB0LkV2ZW50KGUscj97b3JpZ2luYWxFdmVudDpyfTp7fSkpfSxfbi5wcm90b3R5cGUuX2RyYWluSW5lcnRpYUJ1ZmZlcj1mdW5jdGlvbigpe2Zvcih2YXIgZT10aGlzLl9pbmVydGlhLHI9dC5icm93c2VyLm5vdygpO2UubGVuZ3RoPjAmJnItZVswXVswXT4xNjA7KWUuc2hpZnQoKX07dmFyIHduPWZ1bmN0aW9uKGUpe3RoaXMuX21hcD1lLHRoaXMuX2VsPWUuZ2V0Q2FudmFzQ29udGFpbmVyKCksdC5iaW5kQWxsKFsiX29uS2V5RG93biJdLHRoaXMpfTtmdW5jdGlvbiBrbih0KXtyZXR1cm4gdCooMi10KX13bi5wcm90b3R5cGUuaXNFbmFibGVkPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLl9lbmFibGVkfSx3bi5wcm90b3R5cGUuZW5hYmxlPWZ1bmN0aW9uKCl7dGhpcy5pc0VuYWJsZWQoKXx8KHRoaXMuX2VsLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuX29uS2V5RG93biwhMSksdGhpcy5fZW5hYmxlZD0hMCl9LHduLnByb3RvdHlwZS5kaXNhYmxlPWZ1bmN0aW9uKCl7dGhpcy5pc0VuYWJsZWQoKSYmKHRoaXMuX2VsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuX29uS2V5RG93biksdGhpcy5fZW5hYmxlZD0hMSl9LHduLnByb3RvdHlwZS5fb25LZXlEb3duPWZ1bmN0aW9uKHQpe2lmKCEodC5hbHRLZXl8fHQuY3RybEtleXx8dC5tZXRhS2V5KSl7dmFyIGU9MCxyPTAsbj0wLGE9MCxpPTA7c3dpdGNoKHQua2V5Q29kZSl7Y2FzZSA2MTpjYXNlIDEwNzpjYXNlIDE3MTpjYXNlIDE4NzplPTE7YnJlYWs7Y2FzZSAxODk6Y2FzZSAxMDk6Y2FzZSAxNzM6ZT0tMTticmVhaztjYXNlIDM3OnQuc2hpZnRLZXk/cj0tMToodC5wcmV2ZW50RGVmYXVsdCgpLGE9LTEpO2JyZWFrO2Nhc2UgMzk6dC5zaGlmdEtleT9yPTE6KHQucHJldmVudERlZmF1bHQoKSxhPTEpO2JyZWFrO2Nhc2UgMzg6dC5zaGlmdEtleT9uPTE6KHQucHJldmVudERlZmF1bHQoKSxpPS0xKTticmVhaztjYXNlIDQwOnQuc2hpZnRLZXk/bj0tMTooaT0xLHQucHJldmVudERlZmF1bHQoKSk7YnJlYWs7ZGVmYXVsdDpyZXR1cm59dmFyIG89dGhpcy5fbWFwLHM9by5nZXRab29tKCksbD17ZHVyYXRpb246MzAwLGRlbGF5RW5kRXZlbnRzOjUwMCxlYXNpbmc6a24sem9vbTplP01hdGgucm91bmQocykrZSoodC5zaGlmdEtleT8yOjEpOnMsYmVhcmluZzpvLmdldEJlYXJpbmcoKSsxNSpyLHBpdGNoOm8uZ2V0UGl0Y2goKSsxMCpuLG9mZnNldDpbMTAwKi1hLDEwMCotaV0sY2VudGVyOm8uZ2V0Q2VudGVyKCl9O28uZWFzZVRvKGwse29yaWdpbmFsRXZlbnQ6dH0pfX07dmFyIFRuPWZ1bmN0aW9uKGUpe3RoaXMuX21hcD1lLHQuYmluZEFsbChbIl9vbkRibENsaWNrIiwiX29uWm9vbUVuZCJdLHRoaXMpfTtUbi5wcm90b3R5cGUuaXNFbmFibGVkPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLl9lbmFibGVkfSxUbi5wcm90b3R5cGUuaXNBY3RpdmU9ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuX2FjdGl2ZX0sVG4ucHJvdG90eXBlLmVuYWJsZT1mdW5jdGlvbigpe3RoaXMuaXNFbmFibGVkKCl8fCh0aGlzLl9lbmFibGVkPSEwKX0sVG4ucHJvdG90eXBlLmRpc2FibGU9ZnVuY3Rpb24oKXt0aGlzLmlzRW5hYmxlZCgpJiYodGhpcy5fZW5hYmxlZD0hMSl9LFRuLnByb3RvdHlwZS5vblRvdWNoU3RhcnQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZih0aGlzLmlzRW5hYmxlZCgpJiYhKHQucG9pbnRzLmxlbmd0aD4xKSlpZih0aGlzLl90YXBwZWQpe3ZhciByPXQucG9pbnRzWzBdLG49dGhpcy5fdGFwcGVkUG9pbnQ7aWYobiYmbi5kaXN0KHIpPD0zMCl7dC5vcmlnaW5hbEV2ZW50LnByZXZlbnREZWZhdWx0KCk7dmFyIGE9ZnVuY3Rpb24oKXtlLl90YXBwZWQmJmUuX3pvb20odCksZS5fbWFwLm9mZigidG91Y2hjYW5jZWwiLGkpLGUuX3Jlc2V0VGFwcGVkKCl9LGk9ZnVuY3Rpb24oKXtlLl9tYXAub2ZmKCJ0b3VjaGVuZCIsYSksZS5fcmVzZXRUYXBwZWQoKX07dGhpcy5fbWFwLm9uY2UoInRvdWNoZW5kIixhKSx0aGlzLl9tYXAub25jZSgidG91Y2hjYW5jZWwiLGkpfWVsc2UgdGhpcy5fcmVzZXRUYXBwZWQoKX1lbHNlIHRoaXMuX3RhcHBlZFBvaW50PXQucG9pbnRzWzBdLHRoaXMuX3RhcHBlZD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5fdGFwcGVkPW51bGwsZS5fdGFwcGVkUG9pbnQ9bnVsbH0sMzAwKX0sVG4ucHJvdG90eXBlLl9yZXNldFRhcHBlZD1mdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLl90YXBwZWQpLHRoaXMuX3RhcHBlZD1udWxsLHRoaXMuX3RhcHBlZFBvaW50PW51bGx9LFRuLnByb3RvdHlwZS5vbkRibENsaWNrPWZ1bmN0aW9uKHQpe3RoaXMuaXNFbmFibGVkKCkmJih0Lm9yaWdpbmFsRXZlbnQucHJldmVudERlZmF1bHQoKSx0aGlzLl96b29tKHQpKX0sVG4ucHJvdG90eXBlLl96b29tPWZ1bmN0aW9uKHQpe3RoaXMuX2FjdGl2ZT0hMCx0aGlzLl9tYXAub24oInpvb21lbmQiLHRoaXMuX29uWm9vbUVuZCksdGhpcy5fbWFwLnpvb21Ubyh0aGlzLl9tYXAuZ2V0Wm9vbSgpKyh0Lm9yaWdpbmFsRXZlbnQuc2hpZnRLZXk/LTE6MSkse2Fyb3VuZDp0LmxuZ0xhdH0sdCl9LFRuLnByb3RvdHlwZS5fb25ab29tRW5kPWZ1bmN0aW9uKCl7dGhpcy5fYWN0aXZlPSExLHRoaXMuX21hcC5vZmYoInpvb21lbmQiLHRoaXMuX29uWm9vbUVuZCl9O3ZhciBNbj10LmJlemllcigwLDAsLjE1LDEpLEFuPWZ1bmN0aW9uKGUpe3RoaXMuX21hcD1lLHRoaXMuX2VsPWUuZ2V0Q2FudmFzQ29udGFpbmVyKCksdC5iaW5kQWxsKFsiX29uTW92ZSIsIl9vbkVuZCIsIl9vblRvdWNoRnJhbWUiXSx0aGlzKX07QW4ucHJvdG90eXBlLmlzRW5hYmxlZD1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5fZW5hYmxlZH0sQW4ucHJvdG90eXBlLmVuYWJsZT1mdW5jdGlvbih0KXt0aGlzLmlzRW5hYmxlZCgpfHwodGhpcy5fZWwuY2xhc3NMaXN0LmFkZCgibWFwYm94Z2wtdG91Y2gtem9vbS1yb3RhdGUiKSx0aGlzLl9lbmFibGVkPSEwLHRoaXMuX2Fyb3VuZENlbnRlcj0hIXQmJiJjZW50ZXIiPT09dC5hcm91bmQpfSxBbi5wcm90b3R5cGUuZGlzYWJsZT1mdW5jdGlvbigpe3RoaXMuaXNFbmFibGVkKCkmJih0aGlzLl9lbC5jbGFzc0xpc3QucmVtb3ZlKCJtYXBib3hnbC10b3VjaC16b29tLXJvdGF0ZSIpLHRoaXMuX2VuYWJsZWQ9ITEpfSxBbi5wcm90b3R5cGUuZGlzYWJsZVJvdGF0aW9uPWZ1bmN0aW9uKCl7dGhpcy5fcm90YXRpb25EaXNhYmxlZD0hMH0sQW4ucHJvdG90eXBlLmVuYWJsZVJvdGF0aW9uPWZ1bmN0aW9uKCl7dGhpcy5fcm90YXRpb25EaXNhYmxlZD0hMX0sQW4ucHJvdG90eXBlLm9uU3RhcnQ9ZnVuY3Rpb24oZSl7aWYodGhpcy5pc0VuYWJsZWQoKSYmMj09PWUudG91Y2hlcy5sZW5ndGgpe3ZhciBuPXIubW91c2VQb3ModGhpcy5fZWwsZS50b3VjaGVzWzBdKSxhPXIubW91c2VQb3ModGhpcy5fZWwsZS50b3VjaGVzWzFdKSxpPW4uYWRkKGEpLmRpdigyKTt0aGlzLl9zdGFydFZlYz1uLnN1YihhKSx0aGlzLl9zdGFydEFyb3VuZD10aGlzLl9tYXAudHJhbnNmb3JtLnBvaW50TG9jYXRpb24oaSksdGhpcy5fZ2VzdHVyZUludGVudD12b2lkIDAsdGhpcy5faW5lcnRpYT1bXSxyLmFkZEV2ZW50TGlzdGVuZXIodC53aW5kb3cuZG9jdW1lbnQsInRvdWNobW92ZSIsdGhpcy5fb25Nb3ZlLHtwYXNzaXZlOiExfSksci5hZGRFdmVudExpc3RlbmVyKHQud2luZG93LmRvY3VtZW50LCJ0b3VjaGVuZCIsdGhpcy5fb25FbmQpfX0sQW4ucHJvdG90eXBlLl9nZXRUb3VjaEV2ZW50RGF0YT1mdW5jdGlvbih0KXt2YXIgZT1yLm1vdXNlUG9zKHRoaXMuX2VsLHQudG91Y2hlc1swXSksbj1yLm1vdXNlUG9zKHRoaXMuX2VsLHQudG91Y2hlc1sxXSksYT1lLnN1YihuKTtyZXR1cm57dmVjOmEsY2VudGVyOmUuYWRkKG4pLmRpdigyKSxzY2FsZTphLm1hZygpL3RoaXMuX3N0YXJ0VmVjLm1hZygpLGJlYXJpbmc6dGhpcy5fcm90YXRpb25EaXNhYmxlZD8wOjE4MCphLmFuZ2xlV2l0aCh0aGlzLl9zdGFydFZlYykvTWF0aC5QSX19LEFuLnByb3RvdHlwZS5fb25Nb3ZlPWZ1bmN0aW9uKGUpe2lmKDI9PT1lLnRvdWNoZXMubGVuZ3RoKXt2YXIgcj10aGlzLl9nZXRUb3VjaEV2ZW50RGF0YShlKSxuPXIudmVjLGE9ci5zY2FsZSxpPXIuYmVhcmluZztpZighdGhpcy5fZ2VzdHVyZUludGVudCl7dmFyIG89dGhpcy5fcm90YXRpb25EaXNhYmxlZCYmMSE9PWF8fE1hdGguYWJzKDEtYSk+LjE1O01hdGguYWJzKGkpPjEwP3RoaXMuX2dlc3R1cmVJbnRlbnQ9InJvdGF0ZSI6byYmKHRoaXMuX2dlc3R1cmVJbnRlbnQ9Inpvb20iKSx0aGlzLl9nZXN0dXJlSW50ZW50JiYodGhpcy5fbWFwLmZpcmUobmV3IHQuRXZlbnQodGhpcy5fZ2VzdHVyZUludGVudCsic3RhcnQiLHtvcmlnaW5hbEV2ZW50OmV9KSksdGhpcy5fbWFwLmZpcmUobmV3IHQuRXZlbnQoIm1vdmVzdGFydCIse29yaWdpbmFsRXZlbnQ6ZX0pKSx0aGlzLl9zdGFydFZlYz1uKX10aGlzLl9sYXN0VG91Y2hFdmVudD1lLHRoaXMuX2ZyYW1lSWR8fCh0aGlzLl9mcmFtZUlkPXRoaXMuX21hcC5fcmVxdWVzdFJlbmRlckZyYW1lKHRoaXMuX29uVG91Y2hGcmFtZSkpLGUucHJldmVudERlZmF1bHQoKX19LEFuLnByb3RvdHlwZS5fb25Ub3VjaEZyYW1lPWZ1bmN0aW9uKCl7dGhpcy5fZnJhbWVJZD1udWxsO3ZhciBlPXRoaXMuX2dlc3R1cmVJbnRlbnQ7aWYoZSl7dmFyIHI9dGhpcy5fbWFwLnRyYW5zZm9ybTt0aGlzLl9zdGFydFNjYWxlfHwodGhpcy5fc3RhcnRTY2FsZT1yLnNjYWxlLHRoaXMuX3N0YXJ0QmVhcmluZz1yLmJlYXJpbmcpO3ZhciBuPXRoaXMuX2dldFRvdWNoRXZlbnREYXRhKHRoaXMuX2xhc3RUb3VjaEV2ZW50KSxhPW4uY2VudGVyLGk9bi5iZWFyaW5nLG89bi5zY2FsZSxzPXIucG9pbnRMb2NhdGlvbihhKSxsPXIubG9jYXRpb25Qb2ludChzKTsicm90YXRlIj09PWUmJihyLmJlYXJpbmc9dGhpcy5fc3RhcnRCZWFyaW5nK2kpLHIuem9vbT1yLnNjYWxlWm9vbSh0aGlzLl9zdGFydFNjYWxlKm8pLHIuc2V0TG9jYXRpb25BdFBvaW50KHRoaXMuX3N0YXJ0QXJvdW5kLGwpLHRoaXMuX21hcC5maXJlKG5ldyB0LkV2ZW50KGUse29yaWdpbmFsRXZlbnQ6dGhpcy5fbGFzdFRvdWNoRXZlbnR9KSksdGhpcy5fbWFwLmZpcmUobmV3IHQuRXZlbnQoIm1vdmUiLHtvcmlnaW5hbEV2ZW50OnRoaXMuX2xhc3RUb3VjaEV2ZW50fSkpLHRoaXMuX2RyYWluSW5lcnRpYUJ1ZmZlcigpLHRoaXMuX2luZXJ0aWEucHVzaChbdC5icm93c2VyLm5vdygpLG8sYV0pfX0sQW4ucHJvdG90eXBlLl9vbkVuZD1mdW5jdGlvbihlKXtyLnJlbW92ZUV2ZW50TGlzdGVuZXIodC53aW5kb3cuZG9jdW1lbnQsInRvdWNobW92ZSIsdGhpcy5fb25Nb3ZlLHtwYXNzaXZlOiExfSksci5yZW1vdmVFdmVudExpc3RlbmVyKHQud2luZG93LmRvY3VtZW50LCJ0b3VjaGVuZCIsdGhpcy5fb25FbmQpO3ZhciBuPXRoaXMuX2dlc3R1cmVJbnRlbnQsYT10aGlzLl9zdGFydFNjYWxlO2lmKHRoaXMuX2ZyYW1lSWQmJih0aGlzLl9tYXAuX2NhbmNlbFJlbmRlckZyYW1lKHRoaXMuX2ZyYW1lSWQpLHRoaXMuX2ZyYW1lSWQ9bnVsbCksZGVsZXRlIHRoaXMuX2dlc3R1cmVJbnRlbnQsZGVsZXRlIHRoaXMuX3N0YXJ0U2NhbGUsZGVsZXRlIHRoaXMuX3N0YXJ0QmVhcmluZyxkZWxldGUgdGhpcy5fbGFzdFRvdWNoRXZlbnQsbil7dGhpcy5fbWFwLmZpcmUobmV3IHQuRXZlbnQobisiZW5kIix7b3JpZ2luYWxFdmVudDplfSkpLHRoaXMuX2RyYWluSW5lcnRpYUJ1ZmZlcigpO3ZhciBpPXRoaXMuX2luZXJ0aWEsbz10aGlzLl9tYXA7aWYoaS5sZW5ndGg8MilvLnNuYXBUb05vcnRoKHt9LHtvcmlnaW5hbEV2ZW50OmV9KTtlbHNle3ZhciBzPWlbaS5sZW5ndGgtMV0sbD1pWzBdLGM9by50cmFuc2Zvcm0uc2NhbGVab29tKGEqc1sxXSksdT1vLnRyYW5zZm9ybS5zY2FsZVpvb20oYSpsWzFdKSxoPWMtdSxmPShzWzBdLWxbMF0pLzFlMyxwPXNbMl07aWYoMCE9PWYmJmMhPT11KXt2YXIgZD0uMTUqaC9mO01hdGguYWJzKGQpPjIuNSYmKGQ9ZD4wPzIuNTotMi41KTt2YXIgZz0xZTMqTWF0aC5hYnMoZC8oMTIqLjE1KSksdj1jK2QqZy8yZTM7djwwJiYodj0wKSxvLmVhc2VUbyh7em9vbTp2LGR1cmF0aW9uOmcsZWFzaW5nOk1uLGFyb3VuZDp0aGlzLl9hcm91bmRDZW50ZXI/by5nZXRDZW50ZXIoKTpvLnVucHJvamVjdChwKSxub01vdmVTdGFydDohMH0se29yaWdpbmFsRXZlbnQ6ZX0pfWVsc2Ugby5zbmFwVG9Ob3J0aCh7fSx7b3JpZ2luYWxFdmVudDplfSl9fX0sQW4ucHJvdG90eXBlLl9kcmFpbkluZXJ0aWFCdWZmZXI9ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcy5faW5lcnRpYSxyPXQuYnJvd3Nlci5ub3coKTtlLmxlbmd0aD4yJiZyLWVbMF1bMF0+MTYwOyllLnNoaWZ0KCl9O3ZhciBTbj17c2Nyb2xsWm9vbTp2bixib3hab29tOm1uLGRyYWdSb3RhdGU6eG4sZHJhZ1BhbjpfbixrZXlib2FyZDp3bixkb3VibGVDbGlja1pvb206VG4sdG91Y2hab29tUm90YXRlOkFufSxFbj1mdW5jdGlvbihlKXtmdW5jdGlvbiByKHIsbil7ZS5jYWxsKHRoaXMpLHRoaXMuX21vdmluZz0hMSx0aGlzLl96b29taW5nPSExLHRoaXMudHJhbnNmb3JtPXIsdGhpcy5fYmVhcmluZ1NuYXA9bi5iZWFyaW5nU25hcCx0LmJpbmRBbGwoWyJfcmVuZGVyRnJhbWVDYWxsYmFjayJdLHRoaXMpfXJldHVybiBlJiYoci5fX3Byb3RvX189ZSksci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixyLnByb3RvdHlwZS5nZXRDZW50ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHQuTG5nTGF0KHRoaXMudHJhbnNmb3JtLmNlbnRlci5sbmcsdGhpcy50cmFuc2Zvcm0uY2VudGVyLmxhdCl9LHIucHJvdG90eXBlLnNldENlbnRlcj1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmp1bXBUbyh7Y2VudGVyOnR9LGUpfSxyLnByb3RvdHlwZS5wYW5CeT1mdW5jdGlvbihlLHIsbil7cmV0dXJuIGU9dC5Qb2ludC5jb252ZXJ0KGUpLm11bHQoLTEpLHRoaXMucGFuVG8odGhpcy50cmFuc2Zvcm0uY2VudGVyLHQuZXh0ZW5kKHtvZmZzZXQ6ZX0sciksbil9LHIucHJvdG90eXBlLnBhblRvPWZ1bmN0aW9uKGUscixuKXtyZXR1cm4gdGhpcy5lYXNlVG8odC5leHRlbmQoe2NlbnRlcjplfSxyKSxuKX0sci5wcm90b3R5cGUuZ2V0Wm9vbT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRyYW5zZm9ybS56b29tfSxyLnByb3RvdHlwZS5zZXRab29tPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuanVtcFRvKHt6b29tOnR9LGUpLHRoaXN9LHIucHJvdG90eXBlLnpvb21Ubz1mdW5jdGlvbihlLHIsbil7cmV0dXJuIHRoaXMuZWFzZVRvKHQuZXh0ZW5kKHt6b29tOmV9LHIpLG4pfSxyLnByb3RvdHlwZS56b29tSW49ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy56b29tVG8odGhpcy5nZXRab29tKCkrMSx0LGUpLHRoaXN9LHIucHJvdG90eXBlLnpvb21PdXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy56b29tVG8odGhpcy5nZXRab29tKCktMSx0LGUpLHRoaXN9LHIucHJvdG90eXBlLmdldEJlYXJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50cmFuc2Zvcm0uYmVhcmluZ30sci5wcm90b3R5cGUuc2V0QmVhcmluZz1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmp1bXBUbyh7YmVhcmluZzp0fSxlKSx0aGlzfSxyLnByb3RvdHlwZS5yb3RhdGVUbz1mdW5jdGlvbihlLHIsbil7cmV0dXJuIHRoaXMuZWFzZVRvKHQuZXh0ZW5kKHtiZWFyaW5nOmV9LHIpLG4pfSxyLnByb3RvdHlwZS5yZXNldE5vcnRoPWZ1bmN0aW9uKGUscil7cmV0dXJuIHRoaXMucm90YXRlVG8oMCx0LmV4dGVuZCh7ZHVyYXRpb246MWUzfSxlKSxyKSx0aGlzfSxyLnByb3RvdHlwZS5yZXNldE5vcnRoUGl0Y2g9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gdGhpcy5lYXNlVG8odC5leHRlbmQoe2JlYXJpbmc6MCxwaXRjaDowLGR1cmF0aW9uOjFlM30sZSksciksdGhpc30sci5wcm90b3R5cGUuc25hcFRvTm9ydGg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5hYnModGhpcy5nZXRCZWFyaW5nKCkpPHRoaXMuX2JlYXJpbmdTbmFwP3RoaXMucmVzZXROb3J0aCh0LGUpOnRoaXN9LHIucHJvdG90eXBlLmdldFBpdGNoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHJhbnNmb3JtLnBpdGNofSxyLnByb3RvdHlwZS5zZXRQaXRjaD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmp1bXBUbyh7cGl0Y2g6dH0sZSksdGhpc30sci5wcm90b3R5cGUuY2FtZXJhRm9yQm91bmRzPWZ1bmN0aW9uKGUscil7cmV0dXJuIGU9dC5MbmdMYXRCb3VuZHMuY29udmVydChlKSx0aGlzLl9jYW1lcmFGb3JCb3hBbmRCZWFyaW5nKGUuZ2V0Tm9ydGhXZXN0KCksZS5nZXRTb3V0aEVhc3QoKSwwLHIpfSxyLnByb3RvdHlwZS5fY2FtZXJhRm9yQm94QW5kQmVhcmluZz1mdW5jdGlvbihlLHIsbixhKXtpZigibnVtYmVyIj09dHlwZW9mKGE9dC5leHRlbmQoe3BhZGRpbmc6e3RvcDowLGJvdHRvbTowLHJpZ2h0OjAsbGVmdDowfSxvZmZzZXQ6WzAsMF0sbWF4Wm9vbTp0aGlzLnRyYW5zZm9ybS5tYXhab29tfSxhKSkucGFkZGluZyl7dmFyIGk9YS5wYWRkaW5nO2EucGFkZGluZz17dG9wOmksYm90dG9tOmkscmlnaHQ6aSxsZWZ0Oml9fWlmKHQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKGEucGFkZGluZykuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiB0PGU/LTE6dD5lPzE6MH0pLFsiYm90dG9tIiwibGVmdCIsInJpZ2h0IiwidG9wIl0pKXt2YXIgbz10aGlzLnRyYW5zZm9ybSxzPW8ucHJvamVjdCh0LkxuZ0xhdC5jb252ZXJ0KGUpKSxsPW8ucHJvamVjdCh0LkxuZ0xhdC5jb252ZXJ0KHIpKSxjPXMucm90YXRlKC1uKk1hdGguUEkvMTgwKSx1PWwucm90YXRlKC1uKk1hdGguUEkvMTgwKSxoPW5ldyB0LlBvaW50KE1hdGgubWF4KGMueCx1LngpLE1hdGgubWF4KGMueSx1LnkpKSxmPW5ldyB0LlBvaW50KE1hdGgubWluKGMueCx1LngpLE1hdGgubWluKGMueSx1LnkpKSxwPWguc3ViKGYpLGQ9KG8ud2lkdGgtYS5wYWRkaW5nLmxlZnQtYS5wYWRkaW5nLnJpZ2h0KS9wLngsZz0oby5oZWlnaHQtYS5wYWRkaW5nLnRvcC1hLnBhZGRpbmcuYm90dG9tKS9wLnk7aWYoIShnPDB8fGQ8MCkpe3ZhciB2PU1hdGgubWluKG8uc2NhbGVab29tKG8uc2NhbGUqTWF0aC5taW4oZCxnKSksYS5tYXhab29tKSxtPXQuUG9pbnQuY29udmVydChhLm9mZnNldCkseT0oYS5wYWRkaW5nLmxlZnQtYS5wYWRkaW5nLnJpZ2h0KS8yLHg9KGEucGFkZGluZy50b3AtYS5wYWRkaW5nLmJvdHRvbSkvMixiPW5ldyB0LlBvaW50KG0ueCt5LG0ueSt4KS5tdWx0KG8uc2NhbGUvby56b29tU2NhbGUodikpO3JldHVybntjZW50ZXI6by51bnByb2plY3Qocy5hZGQobCkuZGl2KDIpLnN1YihiKSksem9vbTp2LGJlYXJpbmc6bn19dC53YXJuT25jZSgiTWFwIGNhbm5vdCBmaXQgd2l0aGluIGNhbnZhcyB3aXRoIHRoZSBnaXZlbiBib3VuZHMsIHBhZGRpbmcsIGFuZC9vciBvZmZzZXQuIil9ZWxzZSB0Lndhcm5PbmNlKCJvcHRpb25zLnBhZGRpbmcgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciwgb3IgYW4gT2JqZWN0IHdpdGgga2V5cyAnYm90dG9tJywgJ2xlZnQnLCAncmlnaHQnLCAndG9wJyIpfSxyLnByb3RvdHlwZS5maXRCb3VuZHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0aGlzLl9maXRJbnRlcm5hbCh0aGlzLmNhbWVyYUZvckJvdW5kcyh0LGUpLGUscil9LHIucHJvdG90eXBlLmZpdFNjcmVlbkNvb3JkaW5hdGVzPWZ1bmN0aW9uKGUscixuLGEsaSl7cmV0dXJuIHRoaXMuX2ZpdEludGVybmFsKHRoaXMuX2NhbWVyYUZvckJveEFuZEJlYXJpbmcodGhpcy50cmFuc2Zvcm0ucG9pbnRMb2NhdGlvbih0LlBvaW50LmNvbnZlcnQoZSkpLHRoaXMudHJhbnNmb3JtLnBvaW50TG9jYXRpb24odC5Qb2ludC5jb252ZXJ0KHIpKSxuLGEpLGEsaSl9LHIucHJvdG90eXBlLl9maXRJbnRlcm5hbD1mdW5jdGlvbihlLHIsbil7cmV0dXJuIGU/KHI9dC5leHRlbmQoZSxyKSkubGluZWFyP3RoaXMuZWFzZVRvKHIsbik6dGhpcy5mbHlUbyhyLG4pOnRoaXN9LHIucHJvdG90eXBlLmp1bXBUbz1mdW5jdGlvbihlLHIpe3RoaXMuc3RvcCgpO3ZhciBuPXRoaXMudHJhbnNmb3JtLGE9ITEsaT0hMSxvPSExO3JldHVybiJ6b29tImluIGUmJm4uem9vbSE9PStlLnpvb20mJihhPSEwLG4uem9vbT0rZS56b29tKSx2b2lkIDAhPT1lLmNlbnRlciYmKG4uY2VudGVyPXQuTG5nTGF0LmNvbnZlcnQoZS5jZW50ZXIpKSwiYmVhcmluZyJpbiBlJiZuLmJlYXJpbmchPT0rZS5iZWFyaW5nJiYoaT0hMCxuLmJlYXJpbmc9K2UuYmVhcmluZyksInBpdGNoImluIGUmJm4ucGl0Y2ghPT0rZS5waXRjaCYmKG89ITAsbi5waXRjaD0rZS5waXRjaCksdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJtb3Zlc3RhcnQiLHIpKS5maXJlKG5ldyB0LkV2ZW50KCJtb3ZlIixyKSksYSYmdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJ6b29tc3RhcnQiLHIpKS5maXJlKG5ldyB0LkV2ZW50KCJ6b29tIixyKSkuZmlyZShuZXcgdC5FdmVudCgiem9vbWVuZCIscikpLGkmJnRoaXMuZmlyZShuZXcgdC5FdmVudCgicm90YXRlc3RhcnQiLHIpKS5maXJlKG5ldyB0LkV2ZW50KCJyb3RhdGUiLHIpKS5maXJlKG5ldyB0LkV2ZW50KCJyb3RhdGVlbmQiLHIpKSxvJiZ0aGlzLmZpcmUobmV3IHQuRXZlbnQoInBpdGNoc3RhcnQiLHIpKS5maXJlKG5ldyB0LkV2ZW50KCJwaXRjaCIscikpLmZpcmUobmV3IHQuRXZlbnQoInBpdGNoZW5kIixyKSksdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJtb3ZlZW5kIixyKSl9LHIucHJvdG90eXBlLmVhc2VUbz1mdW5jdGlvbihlLHIpe3ZhciBuPXRoaXM7dGhpcy5zdG9wKCksKCExPT09KGU9dC5leHRlbmQoe29mZnNldDpbMCwwXSxkdXJhdGlvbjo1MDAsZWFzaW5nOnQuZWFzZX0sZSkpLmFuaW1hdGV8fHQuYnJvd3Nlci5wcmVmZXJzUmVkdWNlZE1vdGlvbikmJihlLmR1cmF0aW9uPTApO3ZhciBhPXRoaXMudHJhbnNmb3JtLGk9dGhpcy5nZXRab29tKCksbz10aGlzLmdldEJlYXJpbmcoKSxzPXRoaXMuZ2V0UGl0Y2goKSxsPSJ6b29tImluIGU/K2Uuem9vbTppLGM9ImJlYXJpbmciaW4gZT90aGlzLl9ub3JtYWxpemVCZWFyaW5nKGUuYmVhcmluZyxvKTpvLHU9InBpdGNoImluIGU/K2UucGl0Y2g6cyxoPWEuY2VudGVyUG9pbnQuYWRkKHQuUG9pbnQuY29udmVydChlLm9mZnNldCkpLGY9YS5wb2ludExvY2F0aW9uKGgpLHA9dC5MbmdMYXQuY29udmVydChlLmNlbnRlcnx8Zik7dGhpcy5fbm9ybWFsaXplQ2VudGVyKHApO3ZhciBkLGcsdj1hLnByb2plY3QoZiksbT1hLnByb2plY3QocCkuc3ViKHYpLHk9YS56b29tU2NhbGUobC1pKTtyZXR1cm4gZS5hcm91bmQmJihkPXQuTG5nTGF0LmNvbnZlcnQoZS5hcm91bmQpLGc9YS5sb2NhdGlvblBvaW50KGQpKSx0aGlzLl96b29taW5nPWwhPT1pLHRoaXMuX3JvdGF0aW5nPW8hPT1jLHRoaXMuX3BpdGNoaW5nPXUhPT1zLHRoaXMuX3ByZXBhcmVFYXNlKHIsZS5ub01vdmVTdGFydCksY2xlYXJUaW1lb3V0KHRoaXMuX2Vhc2VFbmRUaW1lb3V0SUQpLHRoaXMuX2Vhc2UoZnVuY3Rpb24oZSl7aWYobi5fem9vbWluZyYmKGEuem9vbT10Lm51bWJlcihpLGwsZSkpLG4uX3JvdGF0aW5nJiYoYS5iZWFyaW5nPXQubnVtYmVyKG8sYyxlKSksbi5fcGl0Y2hpbmcmJihhLnBpdGNoPXQubnVtYmVyKHMsdSxlKSksZClhLnNldExvY2F0aW9uQXRQb2ludChkLGcpO2Vsc2V7dmFyIGY9YS56b29tU2NhbGUoYS56b29tLWkpLHA9bD5pP01hdGgubWluKDIseSk6TWF0aC5tYXgoLjUseSkseD1NYXRoLnBvdyhwLDEtZSksYj1hLnVucHJvamVjdCh2LmFkZChtLm11bHQoZSp4KSkubXVsdChmKSk7YS5zZXRMb2NhdGlvbkF0UG9pbnQoYS5yZW5kZXJXb3JsZENvcGllcz9iLndyYXAoKTpiLGgpfW4uX2ZpcmVNb3ZlRXZlbnRzKHIpfSxmdW5jdGlvbigpe2UuZGVsYXlFbmRFdmVudHM/bi5fZWFzZUVuZFRpbWVvdXRJRD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIG4uX2FmdGVyRWFzZShyKX0sZS5kZWxheUVuZEV2ZW50cyk6bi5fYWZ0ZXJFYXNlKHIpfSxlKSx0aGlzfSxyLnByb3RvdHlwZS5fcHJlcGFyZUVhc2U9ZnVuY3Rpb24oZSxyKXt0aGlzLl9tb3Zpbmc9ITAscnx8dGhpcy5maXJlKG5ldyB0LkV2ZW50KCJtb3Zlc3RhcnQiLGUpKSx0aGlzLl96b29taW5nJiZ0aGlzLmZpcmUobmV3IHQuRXZlbnQoInpvb21zdGFydCIsZSkpLHRoaXMuX3JvdGF0aW5nJiZ0aGlzLmZpcmUobmV3IHQuRXZlbnQoInJvdGF0ZXN0YXJ0IixlKSksdGhpcy5fcGl0Y2hpbmcmJnRoaXMuZmlyZShuZXcgdC5FdmVudCgicGl0Y2hzdGFydCIsZSkpfSxyLnByb3RvdHlwZS5fZmlyZU1vdmVFdmVudHM9ZnVuY3Rpb24oZSl7dGhpcy5maXJlKG5ldyB0LkV2ZW50KCJtb3ZlIixlKSksdGhpcy5fem9vbWluZyYmdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJ6b29tIixlKSksdGhpcy5fcm90YXRpbmcmJnRoaXMuZmlyZShuZXcgdC5FdmVudCgicm90YXRlIixlKSksdGhpcy5fcGl0Y2hpbmcmJnRoaXMuZmlyZShuZXcgdC5FdmVudCgicGl0Y2giLGUpKX0sci5wcm90b3R5cGUuX2FmdGVyRWFzZT1mdW5jdGlvbihlKXt2YXIgcj10aGlzLl96b29taW5nLG49dGhpcy5fcm90YXRpbmcsYT10aGlzLl9waXRjaGluZzt0aGlzLl9tb3Zpbmc9ITEsdGhpcy5fem9vbWluZz0hMSx0aGlzLl9yb3RhdGluZz0hMSx0aGlzLl9waXRjaGluZz0hMSxyJiZ0aGlzLmZpcmUobmV3IHQuRXZlbnQoInpvb21lbmQiLGUpKSxuJiZ0aGlzLmZpcmUobmV3IHQuRXZlbnQoInJvdGF0ZWVuZCIsZSkpLGEmJnRoaXMuZmlyZShuZXcgdC5FdmVudCgicGl0Y2hlbmQiLGUpKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoIm1vdmVlbmQiLGUpKX0sci5wcm90b3R5cGUuZmx5VG89ZnVuY3Rpb24oZSxyKXt2YXIgbj10aGlzO2lmKHQuYnJvd3Nlci5wcmVmZXJzUmVkdWNlZE1vdGlvbil7dmFyIGE9dC5waWNrKGUsWyJjZW50ZXIiLCJ6b29tIiwiYmVhcmluZyIsInBpdGNoIiwiYXJvdW5kIl0pO3JldHVybiB0aGlzLmp1bXBUbyhhLHIpfXRoaXMuc3RvcCgpLGU9dC5leHRlbmQoe29mZnNldDpbMCwwXSxzcGVlZDoxLjIsY3VydmU6MS40MixlYXNpbmc6dC5lYXNlfSxlKTt2YXIgaT10aGlzLnRyYW5zZm9ybSxvPXRoaXMuZ2V0Wm9vbSgpLHM9dGhpcy5nZXRCZWFyaW5nKCksbD10aGlzLmdldFBpdGNoKCksYz0iem9vbSJpbiBlP3QuY2xhbXAoK2Uuem9vbSxpLm1pblpvb20saS5tYXhab29tKTpvLHU9ImJlYXJpbmciaW4gZT90aGlzLl9ub3JtYWxpemVCZWFyaW5nKGUuYmVhcmluZyxzKTpzLGg9InBpdGNoImluIGU/K2UucGl0Y2g6bCxmPWkuem9vbVNjYWxlKGMtbykscD1pLmNlbnRlclBvaW50LmFkZCh0LlBvaW50LmNvbnZlcnQoZS5vZmZzZXQpKSxkPWkucG9pbnRMb2NhdGlvbihwKSxnPXQuTG5nTGF0LmNvbnZlcnQoZS5jZW50ZXJ8fGQpO3RoaXMuX25vcm1hbGl6ZUNlbnRlcihnKTt2YXIgdj1pLnByb2plY3QoZCksbT1pLnByb2plY3QoZykuc3ViKHYpLHk9ZS5jdXJ2ZSx4PU1hdGgubWF4KGkud2lkdGgsaS5oZWlnaHQpLGI9eC9mLF89bS5tYWcoKTtpZigibWluWm9vbSJpbiBlKXt2YXIgdz10LmNsYW1wKE1hdGgubWluKGUubWluWm9vbSxvLGMpLGkubWluWm9vbSxpLm1heFpvb20pLGs9eC9pLnpvb21TY2FsZSh3LW8pO3k9TWF0aC5zcXJ0KGsvXyoyKX12YXIgVD15Knk7ZnVuY3Rpb24gTSh0KXt2YXIgZT0oYipiLXgqeCsodD8tMToxKSpUKlQqXypfKS8oMioodD9iOngpKlQqXyk7cmV0dXJuIE1hdGgubG9nKE1hdGguc3FydChlKmUrMSktZSl9ZnVuY3Rpb24gQSh0KXtyZXR1cm4oTWF0aC5leHAodCktTWF0aC5leHAoLXQpKS8yfWZ1bmN0aW9uIFModCl7cmV0dXJuKE1hdGguZXhwKHQpK01hdGguZXhwKC10KSkvMn12YXIgRT1NKDApLEw9ZnVuY3Rpb24odCl7cmV0dXJuIFMoRSkvUyhFK3kqdCl9LEM9ZnVuY3Rpb24odCl7cmV0dXJuIHgqKChTKEUpKihBKGU9RSt5KnQpL1MoZSkpLUEoRSkpL1QpL187dmFyIGV9LFA9KE0oMSktRSkveTtpZihNYXRoLmFicyhfKTwxZS02fHwhaXNGaW5pdGUoUCkpe2lmKE1hdGguYWJzKHgtYik8MWUtNilyZXR1cm4gdGhpcy5lYXNlVG8oZSxyKTt2YXIgTz1iPHg/LTE6MTtQPU1hdGguYWJzKE1hdGgubG9nKGIveCkpL3ksQz1mdW5jdGlvbigpe3JldHVybiAwfSxMPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLmV4cChPKnkqdCl9fWlmKCJkdXJhdGlvbiJpbiBlKWUuZHVyYXRpb249K2UuZHVyYXRpb247ZWxzZXt2YXIgej0ic2NyZWVuU3BlZWQiaW4gZT8rZS5zY3JlZW5TcGVlZC95OitlLnNwZWVkO2UuZHVyYXRpb249MWUzKlAven1yZXR1cm4gZS5tYXhEdXJhdGlvbiYmZS5kdXJhdGlvbj5lLm1heER1cmF0aW9uJiYoZS5kdXJhdGlvbj0wKSx0aGlzLl96b29taW5nPSEwLHRoaXMuX3JvdGF0aW5nPXMhPT11LHRoaXMuX3BpdGNoaW5nPWghPT1sLHRoaXMuX3ByZXBhcmVFYXNlKHIsITEpLHRoaXMuX2Vhc2UoZnVuY3Rpb24oZSl7dmFyIGE9ZSpQLGY9MS9MKGEpO2kuem9vbT0xPT09ZT9jOm8raS5zY2FsZVpvb20oZiksbi5fcm90YXRpbmcmJihpLmJlYXJpbmc9dC5udW1iZXIocyx1LGUpKSxuLl9waXRjaGluZyYmKGkucGl0Y2g9dC5udW1iZXIobCxoLGUpKTt2YXIgZD0xPT09ZT9nOmkudW5wcm9qZWN0KHYuYWRkKG0ubXVsdChDKGEpKSkubXVsdChmKSk7aS5zZXRMb2NhdGlvbkF0UG9pbnQoaS5yZW5kZXJXb3JsZENvcGllcz9kLndyYXAoKTpkLHApLG4uX2ZpcmVNb3ZlRXZlbnRzKHIpfSxmdW5jdGlvbigpe3JldHVybiBuLl9hZnRlckVhc2Uocil9LGUpLHRoaXN9LHIucHJvdG90eXBlLmlzRWFzaW5nPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLl9lYXNlRnJhbWVJZH0sci5wcm90b3R5cGUuc3RvcD1mdW5jdGlvbigpe2lmKHRoaXMuX2Vhc2VGcmFtZUlkJiYodGhpcy5fY2FuY2VsUmVuZGVyRnJhbWUodGhpcy5fZWFzZUZyYW1lSWQpLGRlbGV0ZSB0aGlzLl9lYXNlRnJhbWVJZCxkZWxldGUgdGhpcy5fb25FYXNlRnJhbWUpLHRoaXMuX29uRWFzZUVuZCl7dmFyIHQ9dGhpcy5fb25FYXNlRW5kO2RlbGV0ZSB0aGlzLl9vbkVhc2VFbmQsdC5jYWxsKHRoaXMpfXJldHVybiB0aGlzfSxyLnByb3RvdHlwZS5fZWFzZT1mdW5jdGlvbihlLHIsbil7ITE9PT1uLmFuaW1hdGV8fDA9PT1uLmR1cmF0aW9uPyhlKDEpLHIoKSk6KHRoaXMuX2Vhc2VTdGFydD10LmJyb3dzZXIubm93KCksdGhpcy5fZWFzZU9wdGlvbnM9bix0aGlzLl9vbkVhc2VGcmFtZT1lLHRoaXMuX29uRWFzZUVuZD1yLHRoaXMuX2Vhc2VGcmFtZUlkPXRoaXMuX3JlcXVlc3RSZW5kZXJGcmFtZSh0aGlzLl9yZW5kZXJGcmFtZUNhbGxiYWNrKSl9LHIucHJvdG90eXBlLl9yZW5kZXJGcmFtZUNhbGxiYWNrPWZ1bmN0aW9uKCl7dmFyIGU9TWF0aC5taW4oKHQuYnJvd3Nlci5ub3coKS10aGlzLl9lYXNlU3RhcnQpL3RoaXMuX2Vhc2VPcHRpb25zLmR1cmF0aW9uLDEpO3RoaXMuX29uRWFzZUZyYW1lKHRoaXMuX2Vhc2VPcHRpb25zLmVhc2luZyhlKSksZTwxP3RoaXMuX2Vhc2VGcmFtZUlkPXRoaXMuX3JlcXVlc3RSZW5kZXJGcmFtZSh0aGlzLl9yZW5kZXJGcmFtZUNhbGxiYWNrKTp0aGlzLnN0b3AoKX0sci5wcm90b3R5cGUuX25vcm1hbGl6ZUJlYXJpbmc9ZnVuY3Rpb24oZSxyKXtlPXQud3JhcChlLC0xODAsMTgwKTt2YXIgbj1NYXRoLmFicyhlLXIpO3JldHVybiBNYXRoLmFicyhlLTM2MC1yKTxuJiYoZS09MzYwKSxNYXRoLmFicyhlKzM2MC1yKTxuJiYoZSs9MzYwKSxlfSxyLnByb3RvdHlwZS5fbm9ybWFsaXplQ2VudGVyPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudHJhbnNmb3JtO2lmKGUucmVuZGVyV29ybGRDb3BpZXMmJiFlLmxuZ1JhbmdlKXt2YXIgcj10LmxuZy1lLmNlbnRlci5sbmc7dC5sbmcrPXI+MTgwPy0zNjA6cjwtMTgwPzM2MDowfX0scn0odC5FdmVudGVkKSxMbj1mdW5jdGlvbihlKXt2b2lkIDA9PT1lJiYoZT17fSksdGhpcy5vcHRpb25zPWUsdC5iaW5kQWxsKFsiX3VwZGF0ZUVkaXRMaW5rIiwiX3VwZGF0ZURhdGEiLCJfdXBkYXRlQ29tcGFjdCJdLHRoaXMpfTtMbi5wcm90b3R5cGUuZ2V0RGVmYXVsdFBvc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuImJvdHRvbS1yaWdodCJ9LExuLnByb3RvdHlwZS5vbkFkZD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLm9wdGlvbnMmJnRoaXMub3B0aW9ucy5jb21wYWN0O3JldHVybiB0aGlzLl9tYXA9dCx0aGlzLl9jb250YWluZXI9ci5jcmVhdGUoImRpdiIsIm1hcGJveGdsLWN0cmwgbWFwYm94Z2wtY3RybC1hdHRyaWIiKSx0aGlzLl9pbm5lckNvbnRhaW5lcj1yLmNyZWF0ZSgiZGl2IiwibWFwYm94Z2wtY3RybC1hdHRyaWItaW5uZXIiLHRoaXMuX2NvbnRhaW5lciksZSYmdGhpcy5fY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWNvbXBhY3QiKSx0aGlzLl91cGRhdGVBdHRyaWJ1dGlvbnMoKSx0aGlzLl91cGRhdGVFZGl0TGluaygpLHRoaXMuX21hcC5vbigic3R5bGVkYXRhIix0aGlzLl91cGRhdGVEYXRhKSx0aGlzLl9tYXAub24oInNvdXJjZWRhdGEiLHRoaXMuX3VwZGF0ZURhdGEpLHRoaXMuX21hcC5vbigibW92ZWVuZCIsdGhpcy5fdXBkYXRlRWRpdExpbmspLHZvaWQgMD09PWUmJih0aGlzLl9tYXAub24oInJlc2l6ZSIsdGhpcy5fdXBkYXRlQ29tcGFjdCksdGhpcy5fdXBkYXRlQ29tcGFjdCgpKSx0aGlzLl9jb250YWluZXJ9LExuLnByb3RvdHlwZS5vblJlbW92ZT1mdW5jdGlvbigpe3IucmVtb3ZlKHRoaXMuX2NvbnRhaW5lciksdGhpcy5fbWFwLm9mZigic3R5bGVkYXRhIix0aGlzLl91cGRhdGVEYXRhKSx0aGlzLl9tYXAub2ZmKCJzb3VyY2VkYXRhIix0aGlzLl91cGRhdGVEYXRhKSx0aGlzLl9tYXAub2ZmKCJtb3ZlZW5kIix0aGlzLl91cGRhdGVFZGl0TGluayksdGhpcy5fbWFwLm9mZigicmVzaXplIix0aGlzLl91cGRhdGVDb21wYWN0KSx0aGlzLl9tYXA9dm9pZCAwfSxMbi5wcm90b3R5cGUuX3VwZGF0ZUVkaXRMaW5rPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fZWRpdExpbms7ZXx8KGU9dGhpcy5fZWRpdExpbms9dGhpcy5fY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoIi5tYXBib3gtaW1wcm92ZS1tYXAiKSk7dmFyIHI9W3trZXk6Im93bmVyIix2YWx1ZTp0aGlzLnN0eWxlT3duZXJ9LHtrZXk6ImlkIix2YWx1ZTp0aGlzLnN0eWxlSWR9LHtrZXk6ImFjY2Vzc190b2tlbiIsdmFsdWU6dGhpcy5fbWFwLl9yZXF1ZXN0TWFuYWdlci5fY3VzdG9tQWNjZXNzVG9rZW58fHQuY29uZmlnLkFDQ0VTU19UT0tFTn1dO2lmKGUpe3ZhciBuPXIucmVkdWNlKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZS52YWx1ZSYmKHQrPWUua2V5KyI9IitlLnZhbHVlKyhuPHIubGVuZ3RoLTE/IiYiOiIiKSksdH0sIj8iKTtlLmhyZWY9dC5jb25maWcuRkVFREJBQ0tfVVJMKyIvIituKyh0aGlzLl9tYXAuX2hhc2g/dGhpcy5fbWFwLl9oYXNoLmdldEhhc2hTdHJpbmcoITApOiIiKSxlLnJlbD0ibm9vcGVuZXIgbm9mb2xsb3cifX0sTG4ucHJvdG90eXBlLl91cGRhdGVEYXRhPWZ1bmN0aW9uKHQpeyF0fHwibWV0YWRhdGEiIT09dC5zb3VyY2VEYXRhVHlwZSYmInN0eWxlIiE9PXQuZGF0YVR5cGV8fCh0aGlzLl91cGRhdGVBdHRyaWJ1dGlvbnMoKSx0aGlzLl91cGRhdGVFZGl0TGluaygpKX0sTG4ucHJvdG90eXBlLl91cGRhdGVBdHRyaWJ1dGlvbnM9ZnVuY3Rpb24oKXtpZih0aGlzLl9tYXAuc3R5bGUpe3ZhciB0PVtdO2lmKHRoaXMub3B0aW9ucy5jdXN0b21BdHRyaWJ1dGlvbiYmKEFycmF5LmlzQXJyYXkodGhpcy5vcHRpb25zLmN1c3RvbUF0dHJpYnV0aW9uKT90PXQuY29uY2F0KHRoaXMub3B0aW9ucy5jdXN0b21BdHRyaWJ1dGlvbi5tYXAoZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyIhPXR5cGVvZiB0PyIiOnR9KSk6InN0cmluZyI9PXR5cGVvZiB0aGlzLm9wdGlvbnMuY3VzdG9tQXR0cmlidXRpb24mJnQucHVzaCh0aGlzLm9wdGlvbnMuY3VzdG9tQXR0cmlidXRpb24pKSx0aGlzLl9tYXAuc3R5bGUuc3R5bGVzaGVldCl7dmFyIGU9dGhpcy5fbWFwLnN0eWxlLnN0eWxlc2hlZXQ7dGhpcy5zdHlsZU93bmVyPWUub3duZXIsdGhpcy5zdHlsZUlkPWUuaWR9dmFyIHI9dGhpcy5fbWFwLnN0eWxlLnNvdXJjZUNhY2hlcztmb3IodmFyIG4gaW4gcil7dmFyIGE9cltuXTtpZihhLnVzZWQpe3ZhciBpPWEuZ2V0U291cmNlKCk7aS5hdHRyaWJ1dGlvbiYmdC5pbmRleE9mKGkuYXR0cmlidXRpb24pPDAmJnQucHVzaChpLmF0dHJpYnV0aW9uKX19dC5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQubGVuZ3RoLWUubGVuZ3RofSk7dmFyIG89KHQ9dC5maWx0ZXIoZnVuY3Rpb24oZSxyKXtmb3IodmFyIG49cisxO248dC5sZW5ndGg7bisrKWlmKHRbbl0uaW5kZXhPZihlKT49MClyZXR1cm4hMTtyZXR1cm4hMH0pKS5qb2luKCIgfCAiKTtvIT09dGhpcy5fYXR0cmliSFRNTCYmKHRoaXMuX2F0dHJpYkhUTUw9byx0Lmxlbmd0aD8odGhpcy5faW5uZXJDb250YWluZXIuaW5uZXJIVE1MPW8sdGhpcy5fY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLWF0dHJpYi1lbXB0eSIpKTp0aGlzLl9jb250YWluZXIuY2xhc3NMaXN0LmFkZCgibWFwYm94Z2wtYXR0cmliLWVtcHR5IiksdGhpcy5fZWRpdExpbms9bnVsbCl9fSxMbi5wcm90b3R5cGUuX3VwZGF0ZUNvbXBhY3Q9ZnVuY3Rpb24oKXt0aGlzLl9tYXAuZ2V0Q2FudmFzQ29udGFpbmVyKCkub2Zmc2V0V2lkdGg8PTY0MD90aGlzLl9jb250YWluZXIuY2xhc3NMaXN0LmFkZCgibWFwYm94Z2wtY29tcGFjdCIpOnRoaXMuX2NvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKCJtYXBib3hnbC1jb21wYWN0Iil9O3ZhciBDbj1mdW5jdGlvbigpe3QuYmluZEFsbChbIl91cGRhdGVMb2dvIl0sdGhpcyksdC5iaW5kQWxsKFsiX3VwZGF0ZUNvbXBhY3QiXSx0aGlzKX07Q24ucHJvdG90eXBlLm9uQWRkPWZ1bmN0aW9uKHQpe3RoaXMuX21hcD10LHRoaXMuX2NvbnRhaW5lcj1yLmNyZWF0ZSgiZGl2IiwibWFwYm94Z2wtY3RybCIpO3ZhciBlPXIuY3JlYXRlKCJhIiwibWFwYm94Z2wtY3RybC1sb2dvIik7cmV0dXJuIGUudGFyZ2V0PSJfYmxhbmsiLGUucmVsPSJub29wZW5lciBub2ZvbGxvdyIsZS5ocmVmPSJodHRwczovL3d3dy5tYXBib3guY29tLyIsZS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLCJNYXBib3ggbG9nbyIpLGUuc2V0QXR0cmlidXRlKCJyZWwiLCJub29wZW5lciBub2ZvbGxvdyIpLHRoaXMuX2NvbnRhaW5lci5hcHBlbmRDaGlsZChlKSx0aGlzLl9jb250YWluZXIuc3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5fbWFwLm9uKCJzb3VyY2VkYXRhIix0aGlzLl91cGRhdGVMb2dvKSx0aGlzLl91cGRhdGVMb2dvKCksdGhpcy5fbWFwLm9uKCJyZXNpemUiLHRoaXMuX3VwZGF0ZUNvbXBhY3QpLHRoaXMuX3VwZGF0ZUNvbXBhY3QoKSx0aGlzLl9jb250YWluZXJ9LENuLnByb3RvdHlwZS5vblJlbW92ZT1mdW5jdGlvbigpe3IucmVtb3ZlKHRoaXMuX2NvbnRhaW5lciksdGhpcy5fbWFwLm9mZigic291cmNlZGF0YSIsdGhpcy5fdXBkYXRlTG9nbyksdGhpcy5fbWFwLm9mZigicmVzaXplIix0aGlzLl91cGRhdGVDb21wYWN0KX0sQ24ucHJvdG90eXBlLmdldERlZmF1bHRQb3NpdGlvbj1mdW5jdGlvbigpe3JldHVybiJib3R0b20tbGVmdCJ9LENuLnByb3RvdHlwZS5fdXBkYXRlTG9nbz1mdW5jdGlvbih0KXt0JiYibWV0YWRhdGEiIT09dC5zb3VyY2VEYXRhVHlwZXx8KHRoaXMuX2NvbnRhaW5lci5zdHlsZS5kaXNwbGF5PXRoaXMuX2xvZ29SZXF1aXJlZCgpPyJibG9jayI6Im5vbmUiKX0sQ24ucHJvdG90eXBlLl9sb2dvUmVxdWlyZWQ9ZnVuY3Rpb24oKXtpZih0aGlzLl9tYXAuc3R5bGUpe3ZhciB0PXRoaXMuX21hcC5zdHlsZS5zb3VyY2VDYWNoZXM7Zm9yKHZhciBlIGluIHQpaWYodFtlXS5nZXRTb3VyY2UoKS5tYXBib3hfbG9nbylyZXR1cm4hMDtyZXR1cm4hMX19LENuLnByb3RvdHlwZS5fdXBkYXRlQ29tcGFjdD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2NvbnRhaW5lci5jaGlsZHJlbjtpZih0Lmxlbmd0aCl7dmFyIGU9dFswXTt0aGlzLl9tYXAuZ2V0Q2FudmFzQ29udGFpbmVyKCkub2Zmc2V0V2lkdGg8MjUwP2UuY2xhc3NMaXN0LmFkZCgibWFwYm94Z2wtY29tcGFjdCIpOmUuY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY29tcGFjdCIpfX07dmFyIFBuPWZ1bmN0aW9uKCl7dGhpcy5fcXVldWU9W10sdGhpcy5faWQ9MCx0aGlzLl9jbGVhcmVkPSExLHRoaXMuX2N1cnJlbnRseVJ1bm5pbmc9ITF9O1BuLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCl7dmFyIGU9Kyt0aGlzLl9pZDtyZXR1cm4gdGhpcy5fcXVldWUucHVzaCh7Y2FsbGJhY2s6dCxpZDplLGNhbmNlbGxlZDohMX0pLGV9LFBuLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMuX2N1cnJlbnRseVJ1bm5pbmcscj0wLG49ZT90aGlzLl9xdWV1ZS5jb25jYXQoZSk6dGhpcy5fcXVldWU7cjxuLmxlbmd0aDtyKz0xKXt2YXIgYT1uW3JdO2lmKGEuaWQ9PT10KXJldHVybiB2b2lkKGEuY2FuY2VsbGVkPSEwKX19LFBuLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9jdXJyZW50bHlSdW5uaW5nPXRoaXMuX3F1ZXVlO3RoaXMuX3F1ZXVlPVtdO2Zvcih2YXIgZT0wLHI9dDtlPHIubGVuZ3RoO2UrPTEpe3ZhciBuPXJbZV07aWYoIW4uY2FuY2VsbGVkJiYobi5jYWxsYmFjaygpLHRoaXMuX2NsZWFyZWQpKWJyZWFrfXRoaXMuX2NsZWFyZWQ9ITEsdGhpcy5fY3VycmVudGx5UnVubmluZz0hMX0sUG4ucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5fY3VycmVudGx5UnVubmluZyYmKHRoaXMuX2NsZWFyZWQ9ITApLHRoaXMuX3F1ZXVlPVtdfTt2YXIgT249dC53aW5kb3cuSFRNTEltYWdlRWxlbWVudCx6bj10LndpbmRvdy5IVE1MRWxlbWVudCxJbj17Y2VudGVyOlswLDBdLHpvb206MCxiZWFyaW5nOjAscGl0Y2g6MCxtaW5ab29tOjAsbWF4Wm9vbToyMixpbnRlcmFjdGl2ZTohMCxzY3JvbGxab29tOiEwLGJveFpvb206ITAsZHJhZ1JvdGF0ZTohMCxkcmFnUGFuOiEwLGtleWJvYXJkOiEwLGRvdWJsZUNsaWNrWm9vbTohMCx0b3VjaFpvb21Sb3RhdGU6ITAsYmVhcmluZ1NuYXA6NyxjbGlja1RvbGVyYW5jZTozLGhhc2g6ITEsYXR0cmlidXRpb25Db250cm9sOiEwLGZhaWxJZk1ham9yUGVyZm9ybWFuY2VDYXZlYXQ6ITEscHJlc2VydmVEcmF3aW5nQnVmZmVyOiExLHRyYWNrUmVzaXplOiEwLHJlbmRlcldvcmxkQ29waWVzOiEwLHJlZnJlc2hFeHBpcmVkVGlsZXM6ITAsbWF4VGlsZUNhY2hlU2l6ZTpudWxsLGxvY2FsSWRlb2dyYXBoRm9udEZhbWlseToic2Fucy1zZXJpZiIsdHJhbnNmb3JtUmVxdWVzdDpudWxsLGFjY2Vzc1Rva2VuOm51bGwsZmFkZUR1cmF0aW9uOjMwMCxjcm9zc1NvdXJjZUNvbGxpc2lvbnM6ITB9LERuPWZ1bmN0aW9uKG4pe2Z1bmN0aW9uIGEoZSl7dmFyIGE9dGhpcztpZihudWxsIT0oZT10LmV4dGVuZCh7fSxJbixlKSkubWluWm9vbSYmbnVsbCE9ZS5tYXhab29tJiZlLm1pblpvb20+ZS5tYXhab29tKXRocm93IG5ldyBFcnJvcigibWF4Wm9vbSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBtaW5ab29tIik7dmFyIGk9bmV3IHVuKGUubWluWm9vbSxlLm1heFpvb20sZS5yZW5kZXJXb3JsZENvcGllcyk7aWYobi5jYWxsKHRoaXMsaSxlKSx0aGlzLl9pbnRlcmFjdGl2ZT1lLmludGVyYWN0aXZlLHRoaXMuX21heFRpbGVDYWNoZVNpemU9ZS5tYXhUaWxlQ2FjaGVTaXplLHRoaXMuX2ZhaWxJZk1ham9yUGVyZm9ybWFuY2VDYXZlYXQ9ZS5mYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0LHRoaXMuX3ByZXNlcnZlRHJhd2luZ0J1ZmZlcj1lLnByZXNlcnZlRHJhd2luZ0J1ZmZlcix0aGlzLl9hbnRpYWxpYXM9ZS5hbnRpYWxpYXMsdGhpcy5fdHJhY2tSZXNpemU9ZS50cmFja1Jlc2l6ZSx0aGlzLl9iZWFyaW5nU25hcD1lLmJlYXJpbmdTbmFwLHRoaXMuX3JlZnJlc2hFeHBpcmVkVGlsZXM9ZS5yZWZyZXNoRXhwaXJlZFRpbGVzLHRoaXMuX2ZhZGVEdXJhdGlvbj1lLmZhZGVEdXJhdGlvbix0aGlzLl9jcm9zc1NvdXJjZUNvbGxpc2lvbnM9ZS5jcm9zc1NvdXJjZUNvbGxpc2lvbnMsdGhpcy5fY3Jvc3NGYWRpbmdGYWN0b3I9MSx0aGlzLl9jb2xsZWN0UmVzb3VyY2VUaW1pbmc9ZS5jb2xsZWN0UmVzb3VyY2VUaW1pbmcsdGhpcy5fcmVuZGVyVGFza1F1ZXVlPW5ldyBQbix0aGlzLl9jb250cm9scz1bXSx0aGlzLl9tYXBJZD10LnVuaXF1ZUlkKCksdGhpcy5fcmVxdWVzdE1hbmFnZXI9bmV3IHQuUmVxdWVzdE1hbmFnZXIoZS50cmFuc2Zvcm1SZXF1ZXN0LGUuYWNjZXNzVG9rZW4pLCJzdHJpbmciPT10eXBlb2YgZS5jb250YWluZXIpe2lmKHRoaXMuX2NvbnRhaW5lcj10LndpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChlLmNvbnRhaW5lciksIXRoaXMuX2NvbnRhaW5lcil0aHJvdyBuZXcgRXJyb3IoIkNvbnRhaW5lciAnIitlLmNvbnRhaW5lcisiJyBub3QgZm91bmQuIil9ZWxzZXtpZighKGUuY29udGFpbmVyIGluc3RhbmNlb2Ygem4pKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCB0eXBlOiAnY29udGFpbmVyJyBtdXN0IGJlIGEgU3RyaW5nIG9yIEhUTUxFbGVtZW50LiIpO3RoaXMuX2NvbnRhaW5lcj1lLmNvbnRhaW5lcn1pZihlLm1heEJvdW5kcyYmdGhpcy5zZXRNYXhCb3VuZHMoZS5tYXhCb3VuZHMpLHQuYmluZEFsbChbIl9vbldpbmRvd09ubGluZSIsIl9vbldpbmRvd1Jlc2l6ZSIsIl9jb250ZXh0TG9zdCIsIl9jb250ZXh0UmVzdG9yZWQiXSx0aGlzKSx0aGlzLl9zZXR1cENvbnRhaW5lcigpLHRoaXMuX3NldHVwUGFpbnRlcigpLHZvaWQgMD09PXRoaXMucGFpbnRlcil0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byBpbml0aWFsaXplIFdlYkdMLiIpO3RoaXMub24oIm1vdmUiLGZ1bmN0aW9uKCl7cmV0dXJuIGEuX3VwZGF0ZSghMSl9KSx0aGlzLm9uKCJtb3ZlZW5kIixmdW5jdGlvbigpe3JldHVybiBhLl91cGRhdGUoITEpfSksdGhpcy5vbigiem9vbSIsZnVuY3Rpb24oKXtyZXR1cm4gYS5fdXBkYXRlKCEwKX0pLHZvaWQgMCE9PXQud2luZG93JiYodC53aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigib25saW5lIix0aGlzLl9vbldpbmRvd09ubGluZSwhMSksdC53aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9vbldpbmRvd1Jlc2l6ZSwhMSkpLGZ1bmN0aW9uKHQsZSl7dmFyIG49dC5nZXRDYW52YXNDb250YWluZXIoKSxhPW51bGwsaT0hMSxvPW51bGw7Zm9yKHZhciBzIGluIFNuKXRbc109bmV3IFNuW3NdKHQsZSksZS5pbnRlcmFjdGl2ZSYmZVtzXSYmdFtzXS5lbmFibGUoZVtzXSk7ci5hZGRFdmVudExpc3RlbmVyKG4sIm1vdXNlb3V0IixmdW5jdGlvbihlKXt0LmZpcmUobmV3IHBuKCJtb3VzZW91dCIsdCxlKSl9KSxyLmFkZEV2ZW50TGlzdGVuZXIobiwibW91c2Vkb3duIixmdW5jdGlvbihhKXtpPSEwLG89ci5tb3VzZVBvcyhuLGEpO3ZhciBzPW5ldyBwbigibW91c2Vkb3duIix0LGEpO3QuZmlyZShzKSxzLmRlZmF1bHRQcmV2ZW50ZWR8fChlLmludGVyYWN0aXZlJiYhdC5kb3VibGVDbGlja1pvb20uaXNBY3RpdmUoKSYmdC5zdG9wKCksdC5ib3hab29tLm9uTW91c2VEb3duKGEpLHQuYm94Wm9vbS5pc0FjdGl2ZSgpfHx0LmRyYWdQYW4uaXNBY3RpdmUoKXx8dC5kcmFnUm90YXRlLm9uTW91c2VEb3duKGEpLHQuYm94Wm9vbS5pc0FjdGl2ZSgpfHx0LmRyYWdSb3RhdGUuaXNBY3RpdmUoKXx8dC5kcmFnUGFuLm9uTW91c2VEb3duKGEpKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcihuLCJtb3VzZXVwIixmdW5jdGlvbihlKXt2YXIgcj10LmRyYWdSb3RhdGUuaXNBY3RpdmUoKTthJiYhciYmdC5maXJlKG5ldyBwbigiY29udGV4dG1lbnUiLHQsYSkpLGE9bnVsbCxpPSExLHQuZmlyZShuZXcgcG4oIm1vdXNldXAiLHQsZSkpfSksci5hZGRFdmVudExpc3RlbmVyKG4sIm1vdXNlbW92ZSIsZnVuY3Rpb24oZSl7aWYoIXQuZHJhZ1Bhbi5pc0FjdGl2ZSgpJiYhdC5kcmFnUm90YXRlLmlzQWN0aXZlKCkpe2Zvcih2YXIgcj1lLnRhcmdldDtyJiZyIT09bjspcj1yLnBhcmVudE5vZGU7cj09PW4mJnQuZmlyZShuZXcgcG4oIm1vdXNlbW92ZSIsdCxlKSl9fSksci5hZGRFdmVudExpc3RlbmVyKG4sIm1vdXNlb3ZlciIsZnVuY3Rpb24oZSl7Zm9yKHZhciByPWUudGFyZ2V0O3ImJnIhPT1uOylyPXIucGFyZW50Tm9kZTtyPT09biYmdC5maXJlKG5ldyBwbigibW91c2VvdmVyIix0LGUpKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcihuLCJ0b3VjaHN0YXJ0IixmdW5jdGlvbihyKXt2YXIgbj1uZXcgZG4oInRvdWNoc3RhcnQiLHQscik7dC5maXJlKG4pLG4uZGVmYXVsdFByZXZlbnRlZHx8KGUuaW50ZXJhY3RpdmUmJnQuc3RvcCgpLHQuYm94Wm9vbS5pc0FjdGl2ZSgpfHx0LmRyYWdSb3RhdGUuaXNBY3RpdmUoKXx8dC5kcmFnUGFuLm9uVG91Y2hTdGFydChyKSx0LnRvdWNoWm9vbVJvdGF0ZS5vblN0YXJ0KHIpLHQuZG91YmxlQ2xpY2tab29tLm9uVG91Y2hTdGFydChuKSl9LHtwYXNzaXZlOiExfSksci5hZGRFdmVudExpc3RlbmVyKG4sInRvdWNobW92ZSIsZnVuY3Rpb24oZSl7dC5maXJlKG5ldyBkbigidG91Y2htb3ZlIix0LGUpKX0se3Bhc3NpdmU6ITF9KSxyLmFkZEV2ZW50TGlzdGVuZXIobiwidG91Y2hlbmQiLGZ1bmN0aW9uKGUpe3QuZmlyZShuZXcgZG4oInRvdWNoZW5kIix0LGUpKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcihuLCJ0b3VjaGNhbmNlbCIsZnVuY3Rpb24oZSl7dC5maXJlKG5ldyBkbigidG91Y2hjYW5jZWwiLHQsZSkpfSksci5hZGRFdmVudExpc3RlbmVyKG4sImNsaWNrIixmdW5jdGlvbihhKXt2YXIgaT1yLm1vdXNlUG9zKG4sYSk7KCFvfHxpLmVxdWFscyhvKXx8aS5kaXN0KG8pPGUuY2xpY2tUb2xlcmFuY2UpJiZ0LmZpcmUobmV3IHBuKCJjbGljayIsdCxhKSl9KSxyLmFkZEV2ZW50TGlzdGVuZXIobiwiZGJsY2xpY2siLGZ1bmN0aW9uKGUpe3ZhciByPW5ldyBwbigiZGJsY2xpY2siLHQsZSk7dC5maXJlKHIpLHIuZGVmYXVsdFByZXZlbnRlZHx8dC5kb3VibGVDbGlja1pvb20ub25EYmxDbGljayhyKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcihuLCJjb250ZXh0bWVudSIsZnVuY3Rpb24oZSl7dmFyIHI9dC5kcmFnUm90YXRlLmlzQWN0aXZlKCk7aXx8cj9pJiYoYT1lKTp0LmZpcmUobmV3IHBuKCJjb250ZXh0bWVudSIsdCxlKSksKHQuZHJhZ1JvdGF0ZS5pc0VuYWJsZWQoKXx8dC5saXN0ZW5zKCJjb250ZXh0bWVudSIpKSYmZS5wcmV2ZW50RGVmYXVsdCgpfSksci5hZGRFdmVudExpc3RlbmVyKG4sIndoZWVsIixmdW5jdGlvbihyKXtlLmludGVyYWN0aXZlJiZ0LnN0b3AoKTt2YXIgbj1uZXcgZ24oIndoZWVsIix0LHIpO3QuZmlyZShuKSxuLmRlZmF1bHRQcmV2ZW50ZWR8fHQuc2Nyb2xsWm9vbS5vbldoZWVsKHIpfSx7cGFzc2l2ZTohMX0pfSh0aGlzLGUpLHRoaXMuX2hhc2g9ZS5oYXNoJiYobmV3IGZuKS5hZGRUbyh0aGlzKSx0aGlzLl9oYXNoJiZ0aGlzLl9oYXNoLl9vbkhhc2hDaGFuZ2UoKXx8KHRoaXMuanVtcFRvKHtjZW50ZXI6ZS5jZW50ZXIsem9vbTplLnpvb20sYmVhcmluZzplLmJlYXJpbmcscGl0Y2g6ZS5waXRjaH0pLGUuYm91bmRzJiYodGhpcy5yZXNpemUoKSx0aGlzLmZpdEJvdW5kcyhlLmJvdW5kcyx0LmV4dGVuZCh7fSxlLmZpdEJvdW5kc09wdGlvbnMse2R1cmF0aW9uOjB9KSkpKSx0aGlzLnJlc2l6ZSgpLHRoaXMuX2xvY2FsSWRlb2dyYXBoRm9udEZhbWlseT1lLmxvY2FsSWRlb2dyYXBoRm9udEZhbWlseSxlLnN0eWxlJiZ0aGlzLnNldFN0eWxlKGUuc3R5bGUse2xvY2FsSWRlb2dyYXBoRm9udEZhbWlseTplLmxvY2FsSWRlb2dyYXBoRm9udEZhbWlseX0pLGUuYXR0cmlidXRpb25Db250cm9sJiZ0aGlzLmFkZENvbnRyb2wobmV3IExuKHtjdXN0b21BdHRyaWJ1dGlvbjplLmN1c3RvbUF0dHJpYnV0aW9ufSkpLHRoaXMuYWRkQ29udHJvbChuZXcgQ24sZS5sb2dvUG9zaXRpb24pLHRoaXMub24oInN0eWxlLmxvYWQiLGZ1bmN0aW9uKCl7YS50cmFuc2Zvcm0udW5tb2RpZmllZCYmYS5qdW1wVG8oYS5zdHlsZS5zdHlsZXNoZWV0KX0pLHRoaXMub24oImRhdGEiLGZ1bmN0aW9uKGUpe2EuX3VwZGF0ZSgic3R5bGUiPT09ZS5kYXRhVHlwZSksYS5maXJlKG5ldyB0LkV2ZW50KGUuZGF0YVR5cGUrImRhdGEiLGUpKX0pLHRoaXMub24oImRhdGFsb2FkaW5nIixmdW5jdGlvbihlKXthLmZpcmUobmV3IHQuRXZlbnQoZS5kYXRhVHlwZSsiZGF0YWxvYWRpbmciLGUpKX0pfW4mJihhLl9fcHJvdG9fXz1uKSxhLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKG4mJm4ucHJvdG90eXBlKSxhLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1hO3ZhciBpPXtzaG93VGlsZUJvdW5kYXJpZXM6e2NvbmZpZ3VyYWJsZTohMH0sc2hvd0NvbGxpc2lvbkJveGVzOntjb25maWd1cmFibGU6ITB9LHNob3dPdmVyZHJhd0luc3BlY3Rvcjp7Y29uZmlndXJhYmxlOiEwfSxyZXBhaW50Ontjb25maWd1cmFibGU6ITB9LHZlcnRpY2VzOntjb25maWd1cmFibGU6ITB9LHZlcnNpb246e2NvbmZpZ3VyYWJsZTohMH19O3JldHVybiBhLnByb3RvdHlwZS5fZ2V0TWFwSWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWFwSWR9LGEucHJvdG90eXBlLmFkZENvbnRyb2w9ZnVuY3Rpb24oZSxyKXtpZih2b2lkIDA9PT1yJiZlLmdldERlZmF1bHRQb3NpdGlvbiYmKHI9ZS5nZXREZWZhdWx0UG9zaXRpb24oKSksdm9pZCAwPT09ciYmKHI9InRvcC1yaWdodCIpLCFlfHwhZS5vbkFkZClyZXR1cm4gdGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCJJbnZhbGlkIGFyZ3VtZW50IHRvIG1hcC5hZGRDb250cm9sKCkuIEFyZ3VtZW50IG11c3QgYmUgYSBjb250cm9sIHdpdGggb25BZGQgYW5kIG9uUmVtb3ZlIG1ldGhvZHMuIikpKTt2YXIgbj1lLm9uQWRkKHRoaXMpO3RoaXMuX2NvbnRyb2xzLnB1c2goZSk7dmFyIGE9dGhpcy5fY29udHJvbFBvc2l0aW9uc1tyXTtyZXR1cm4tMSE9PXIuaW5kZXhPZigiYm90dG9tIik/YS5pbnNlcnRCZWZvcmUobixhLmZpcnN0Q2hpbGQpOmEuYXBwZW5kQ2hpbGQobiksdGhpc30sYS5wcm90b3R5cGUucmVtb3ZlQ29udHJvbD1mdW5jdGlvbihlKXtpZighZXx8IWUub25SZW1vdmUpcmV0dXJuIHRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiSW52YWxpZCBhcmd1bWVudCB0byBtYXAucmVtb3ZlQ29udHJvbCgpLiBBcmd1bWVudCBtdXN0IGJlIGEgY29udHJvbCB3aXRoIG9uQWRkIGFuZCBvblJlbW92ZSBtZXRob2RzLiIpKSk7dmFyIHI9dGhpcy5fY29udHJvbHMuaW5kZXhPZihlKTtyZXR1cm4gcj4tMSYmdGhpcy5fY29udHJvbHMuc3BsaWNlKHIsMSksZS5vblJlbW92ZSh0aGlzKSx0aGlzfSxhLnByb3RvdHlwZS5yZXNpemU9ZnVuY3Rpb24oZSl7dmFyIHI9dGhpcy5fY29udGFpbmVyRGltZW5zaW9ucygpLG49clswXSxhPXJbMV07cmV0dXJuIHRoaXMuX3Jlc2l6ZUNhbnZhcyhuLGEpLHRoaXMudHJhbnNmb3JtLnJlc2l6ZShuLGEpLHRoaXMucGFpbnRlci5yZXNpemUobixhKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoIm1vdmVzdGFydCIsZSkpLmZpcmUobmV3IHQuRXZlbnQoIm1vdmUiLGUpKS5maXJlKG5ldyB0LkV2ZW50KCJyZXNpemUiLGUpKS5maXJlKG5ldyB0LkV2ZW50KCJtb3ZlZW5kIixlKSksdGhpc30sYS5wcm90b3R5cGUuZ2V0Qm91bmRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHJhbnNmb3JtLmdldEJvdW5kcygpfSxhLnByb3RvdHlwZS5nZXRNYXhCb3VuZHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50cmFuc2Zvcm0uZ2V0TWF4Qm91bmRzKCl9LGEucHJvdG90eXBlLnNldE1heEJvdW5kcz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy50cmFuc2Zvcm0uc2V0TWF4Qm91bmRzKHQuTG5nTGF0Qm91bmRzLmNvbnZlcnQoZSkpLHRoaXMuX3VwZGF0ZSgpfSxhLnByb3RvdHlwZS5zZXRNaW5ab29tPWZ1bmN0aW9uKHQpe2lmKCh0PW51bGw9PXQ/MDp0KT49MCYmdDw9dGhpcy50cmFuc2Zvcm0ubWF4Wm9vbSlyZXR1cm4gdGhpcy50cmFuc2Zvcm0ubWluWm9vbT10LHRoaXMuX3VwZGF0ZSgpLHRoaXMuZ2V0Wm9vbSgpPHQmJnRoaXMuc2V0Wm9vbSh0KSx0aGlzO3Rocm93IG5ldyBFcnJvcigibWluWm9vbSBtdXN0IGJlIGJldHdlZW4gMCBhbmQgdGhlIGN1cnJlbnQgbWF4Wm9vbSwgaW5jbHVzaXZlIil9LGEucHJvdG90eXBlLmdldE1pblpvb209ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50cmFuc2Zvcm0ubWluWm9vbX0sYS5wcm90b3R5cGUuc2V0TWF4Wm9vbT1mdW5jdGlvbih0KXtpZigodD1udWxsPT10PzIyOnQpPj10aGlzLnRyYW5zZm9ybS5taW5ab29tKXJldHVybiB0aGlzLnRyYW5zZm9ybS5tYXhab29tPXQsdGhpcy5fdXBkYXRlKCksdGhpcy5nZXRab29tKCk+dCYmdGhpcy5zZXRab29tKHQpLHRoaXM7dGhyb3cgbmV3IEVycm9yKCJtYXhab29tIG11c3QgYmUgZ3JlYXRlciB0aGFuIHRoZSBjdXJyZW50IG1pblpvb20iKX0sYS5wcm90b3R5cGUuZ2V0UmVuZGVyV29ybGRDb3BpZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50cmFuc2Zvcm0ucmVuZGVyV29ybGRDb3BpZXN9LGEucHJvdG90eXBlLnNldFJlbmRlcldvcmxkQ29waWVzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnRyYW5zZm9ybS5yZW5kZXJXb3JsZENvcGllcz10LHRoaXMuX3VwZGF0ZSgpfSxhLnByb3RvdHlwZS5nZXRNYXhab29tPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHJhbnNmb3JtLm1heFpvb219LGEucHJvdG90eXBlLnByb2plY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMudHJhbnNmb3JtLmxvY2F0aW9uUG9pbnQodC5MbmdMYXQuY29udmVydChlKSl9LGEucHJvdG90eXBlLnVucHJvamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy50cmFuc2Zvcm0ucG9pbnRMb2NhdGlvbih0LlBvaW50LmNvbnZlcnQoZSkpfSxhLnByb3RvdHlwZS5pc01vdmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9tb3Zpbmd8fHRoaXMuZHJhZ1Bhbi5pc0FjdGl2ZSgpfHx0aGlzLmRyYWdSb3RhdGUuaXNBY3RpdmUoKXx8dGhpcy5zY3JvbGxab29tLmlzQWN0aXZlKCl9LGEucHJvdG90eXBlLmlzWm9vbWluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl96b29taW5nfHx0aGlzLnNjcm9sbFpvb20uaXNab29taW5nKCl9LGEucHJvdG90eXBlLmlzUm90YXRpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcm90YXRpbmd8fHRoaXMuZHJhZ1JvdGF0ZS5pc0FjdGl2ZSgpfSxhLnByb3RvdHlwZS5vbj1mdW5jdGlvbih0LGUscil7dmFyIGE9dGhpcztpZih2b2lkIDA9PT1yKXJldHVybiBuLnByb3RvdHlwZS5vbi5jYWxsKHRoaXMsdCxlKTt2YXIgaT1mdW5jdGlvbigpe3ZhciBuO2lmKCJtb3VzZWVudGVyIj09PXR8fCJtb3VzZW92ZXIiPT09dCl7dmFyIGk9ITE7cmV0dXJue2xheWVyOmUsbGlzdGVuZXI6cixkZWxlZ2F0ZXM6e21vdXNlbW92ZTpmdW5jdGlvbihuKXt2YXIgbz1hLmdldExheWVyKGUpP2EucXVlcnlSZW5kZXJlZEZlYXR1cmVzKG4ucG9pbnQse2xheWVyczpbZV19KTpbXTtvLmxlbmd0aD9pfHwoaT0hMCxyLmNhbGwoYSxuZXcgcG4odCxhLG4ub3JpZ2luYWxFdmVudCx7ZmVhdHVyZXM6b30pKSk6aT0hMX0sbW91c2VvdXQ6ZnVuY3Rpb24oKXtpPSExfX19fWlmKCJtb3VzZWxlYXZlIj09PXR8fCJtb3VzZW91dCI9PT10KXt2YXIgbz0hMTtyZXR1cm57bGF5ZXI6ZSxsaXN0ZW5lcjpyLGRlbGVnYXRlczp7bW91c2Vtb3ZlOmZ1bmN0aW9uKG4peyhhLmdldExheWVyKGUpP2EucXVlcnlSZW5kZXJlZEZlYXR1cmVzKG4ucG9pbnQse2xheWVyczpbZV19KTpbXSkubGVuZ3RoP289ITA6byYmKG89ITEsci5jYWxsKGEsbmV3IHBuKHQsYSxuLm9yaWdpbmFsRXZlbnQpKSl9LG1vdXNlb3V0OmZ1bmN0aW9uKGUpe28mJihvPSExLHIuY2FsbChhLG5ldyBwbih0LGEsZS5vcmlnaW5hbEV2ZW50KSkpfX19fXJldHVybntsYXllcjplLGxpc3RlbmVyOnIsZGVsZWdhdGVzOihuPXt9LG5bdF09ZnVuY3Rpb24odCl7dmFyIG49YS5nZXRMYXllcihlKT9hLnF1ZXJ5UmVuZGVyZWRGZWF0dXJlcyh0LnBvaW50LHtsYXllcnM6W2VdfSk6W107bi5sZW5ndGgmJih0LmZlYXR1cmVzPW4sci5jYWxsKGEsdCksZGVsZXRlIHQuZmVhdHVyZXMpfSxuKX19KCk7Zm9yKHZhciBvIGluIHRoaXMuX2RlbGVnYXRlZExpc3RlbmVycz10aGlzLl9kZWxlZ2F0ZWRMaXN0ZW5lcnN8fHt9LHRoaXMuX2RlbGVnYXRlZExpc3RlbmVyc1t0XT10aGlzLl9kZWxlZ2F0ZWRMaXN0ZW5lcnNbdF18fFtdLHRoaXMuX2RlbGVnYXRlZExpc3RlbmVyc1t0XS5wdXNoKGkpLGkuZGVsZWdhdGVzKXRoaXMub24obyxpLmRlbGVnYXRlc1tvXSk7cmV0dXJuIHRoaXN9LGEucHJvdG90eXBlLm9mZj1mdW5jdGlvbih0LGUscil7aWYodm9pZCAwPT09cilyZXR1cm4gbi5wcm90b3R5cGUub2ZmLmNhbGwodGhpcyx0LGUpO2lmKHRoaXMuX2RlbGVnYXRlZExpc3RlbmVycyYmdGhpcy5fZGVsZWdhdGVkTGlzdGVuZXJzW3RdKWZvcih2YXIgYT10aGlzLl9kZWxlZ2F0ZWRMaXN0ZW5lcnNbdF0saT0wO2k8YS5sZW5ndGg7aSsrKXt2YXIgbz1hW2ldO2lmKG8ubGF5ZXI9PT1lJiZvLmxpc3RlbmVyPT09cil7Zm9yKHZhciBzIGluIG8uZGVsZWdhdGVzKXRoaXMub2ZmKHMsby5kZWxlZ2F0ZXNbc10pO3JldHVybiBhLnNwbGljZShpLDEpLHRoaXN9fXJldHVybiB0aGlzfSxhLnByb3RvdHlwZS5xdWVyeVJlbmRlcmVkRmVhdHVyZXM9ZnVuY3Rpb24oZSxyKXtpZighdGhpcy5zdHlsZSlyZXR1cm5bXTt2YXIgbjtpZih2b2lkIDAhPT1yfHx2b2lkIDA9PT1lfHxlIGluc3RhbmNlb2YgdC5Qb2ludHx8QXJyYXkuaXNBcnJheShlKXx8KHI9ZSxlPXZvaWQgMCkscj1yfHx7fSwoZT1lfHxbWzAsMF0sW3RoaXMudHJhbnNmb3JtLndpZHRoLHRoaXMudHJhbnNmb3JtLmhlaWdodF1dKWluc3RhbmNlb2YgdC5Qb2ludHx8Im51bWJlciI9PXR5cGVvZiBlWzBdKW49W3QuUG9pbnQuY29udmVydChlKV07ZWxzZXt2YXIgYT10LlBvaW50LmNvbnZlcnQoZVswXSksaT10LlBvaW50LmNvbnZlcnQoZVsxXSk7bj1bYSxuZXcgdC5Qb2ludChpLngsYS55KSxpLG5ldyB0LlBvaW50KGEueCxpLnkpLGFdfXJldHVybiB0aGlzLnN0eWxlLnF1ZXJ5UmVuZGVyZWRGZWF0dXJlcyhuLHIsdGhpcy50cmFuc2Zvcm0pfSxhLnByb3RvdHlwZS5xdWVyeVNvdXJjZUZlYXR1cmVzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuc3R5bGUucXVlcnlTb3VyY2VGZWF0dXJlcyh0LGUpfSxhLnByb3RvdHlwZS5zZXRTdHlsZT1mdW5jdGlvbihlLHIpe3JldHVybiExIT09KHI9dC5leHRlbmQoe30se2xvY2FsSWRlb2dyYXBoRm9udEZhbWlseTp0aGlzLl9sb2NhbElkZW9ncmFwaEZvbnRGYW1pbHl9LHIpKS5kaWZmJiZyLmxvY2FsSWRlb2dyYXBoRm9udEZhbWlseT09PXRoaXMuX2xvY2FsSWRlb2dyYXBoRm9udEZhbWlseSYmdGhpcy5zdHlsZSYmZT8odGhpcy5fZGlmZlN0eWxlKGUsciksdGhpcyk6KHRoaXMuX2xvY2FsSWRlb2dyYXBoRm9udEZhbWlseT1yLmxvY2FsSWRlb2dyYXBoRm9udEZhbWlseSx0aGlzLl91cGRhdGVTdHlsZShlLHIpKX0sYS5wcm90b3R5cGUuX3VwZGF0ZVN0eWxlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuc3R5bGUmJih0aGlzLnN0eWxlLnNldEV2ZW50ZWRQYXJlbnQobnVsbCksdGhpcy5zdHlsZS5fcmVtb3ZlKCkpLHQ/KHRoaXMuc3R5bGU9bmV3IFJlKHRoaXMsZXx8e30pLHRoaXMuc3R5bGUuc2V0RXZlbnRlZFBhcmVudCh0aGlzLHtzdHlsZTp0aGlzLnN0eWxlfSksInN0cmluZyI9PXR5cGVvZiB0P3RoaXMuc3R5bGUubG9hZFVSTCh0KTp0aGlzLnN0eWxlLmxvYWRKU09OKHQpLHRoaXMpOihkZWxldGUgdGhpcy5zdHlsZSx0aGlzKX0sYS5wcm90b3R5cGUuX2RpZmZTdHlsZT1mdW5jdGlvbihlLHIpe3ZhciBuPXRoaXM7aWYoInN0cmluZyI9PXR5cGVvZiBlKXt2YXIgYT10aGlzLl9yZXF1ZXN0TWFuYWdlci5ub3JtYWxpemVTdHlsZVVSTChlKSxpPXRoaXMuX3JlcXVlc3RNYW5hZ2VyLnRyYW5zZm9ybVJlcXVlc3QoYSx0LlJlc291cmNlVHlwZS5TdHlsZSk7dC5nZXRKU09OKGksZnVuY3Rpb24oZSxhKXtlP24uZmlyZShuZXcgdC5FcnJvckV2ZW50KGUpKTphJiZuLl91cGRhdGVEaWZmKGEscil9KX1lbHNlIm9iamVjdCI9PXR5cGVvZiBlJiZ0aGlzLl91cGRhdGVEaWZmKGUscil9LGEucHJvdG90eXBlLl91cGRhdGVEaWZmPWZ1bmN0aW9uKGUscil7dHJ5e3RoaXMuc3R5bGUuc2V0U3RhdGUoZSkmJnRoaXMuX3VwZGF0ZSghMCl9Y2F0Y2gobil7dC53YXJuT25jZSgiVW5hYmxlIHRvIHBlcmZvcm0gc3R5bGUgZGlmZjogIisobi5tZXNzYWdlfHxuLmVycm9yfHxuKSsiLiAgUmVidWlsZGluZyB0aGUgc3R5bGUgZnJvbSBzY3JhdGNoLiIpLHRoaXMuX3VwZGF0ZVN0eWxlKGUscil9fSxhLnByb3RvdHlwZS5nZXRTdHlsZT1mdW5jdGlvbigpe2lmKHRoaXMuc3R5bGUpcmV0dXJuIHRoaXMuc3R5bGUuc2VyaWFsaXplKCl9LGEucHJvdG90eXBlLmlzU3R5bGVMb2FkZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdHlsZT90aGlzLnN0eWxlLmxvYWRlZCgpOnQud2Fybk9uY2UoIlRoZXJlIGlzIG5vIHN0eWxlIGFkZGVkIHRvIHRoZSBtYXAuIil9LGEucHJvdG90eXBlLmFkZFNvdXJjZT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnN0eWxlLmFkZFNvdXJjZSh0LGUpLHRoaXMuX3VwZGF0ZSghMCl9LGEucHJvdG90eXBlLmlzU291cmNlTG9hZGVkPWZ1bmN0aW9uKGUpe3ZhciByPXRoaXMuc3R5bGUmJnRoaXMuc3R5bGUuc291cmNlQ2FjaGVzW2VdO2lmKHZvaWQgMCE9PXIpcmV0dXJuIHIubG9hZGVkKCk7dGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCJUaGVyZSBpcyBubyBzb3VyY2Ugd2l0aCBJRCAnIitlKyInIikpKX0sYS5wcm90b3R5cGUuYXJlVGlsZXNMb2FkZWQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnN0eWxlJiZ0aGlzLnN0eWxlLnNvdXJjZUNhY2hlcztmb3IodmFyIGUgaW4gdCl7dmFyIHI9dFtlXS5fdGlsZXM7Zm9yKHZhciBuIGluIHIpe3ZhciBhPXJbbl07aWYoImxvYWRlZCIhPT1hLnN0YXRlJiYiZXJyb3JlZCIhPT1hLnN0YXRlKXJldHVybiExfX1yZXR1cm4hMH0sYS5wcm90b3R5cGUuYWRkU291cmNlVHlwZT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRoaXMuc3R5bGUuYWRkU291cmNlVHlwZSh0LGUscil9LGEucHJvdG90eXBlLnJlbW92ZVNvdXJjZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zdHlsZS5yZW1vdmVTb3VyY2UodCksdGhpcy5fdXBkYXRlKCEwKX0sYS5wcm90b3R5cGUuZ2V0U291cmNlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnN0eWxlLmdldFNvdXJjZSh0KX0sYS5wcm90b3R5cGUuYWRkSW1hZ2U9ZnVuY3Rpb24oZSxyLG4pe3ZvaWQgMD09PW4mJihuPXt9KTt2YXIgYT1uLnBpeGVsUmF0aW87dm9pZCAwPT09YSYmKGE9MSk7dmFyIGk9bi5zZGY7aWYodm9pZCAwPT09aSYmKGk9ITEpLHIgaW5zdGFuY2VvZiBPbil7dmFyIG89dC5icm93c2VyLmdldEltYWdlRGF0YShyKSxzPW8ud2lkdGgsbD1vLmhlaWdodCxjPW8uZGF0YTt0aGlzLnN0eWxlLmFkZEltYWdlKGUse2RhdGE6bmV3IHQuUkdCQUltYWdlKHt3aWR0aDpzLGhlaWdodDpsfSxjKSxwaXhlbFJhdGlvOmEsc2RmOmksdmVyc2lvbjowfSl9ZWxzZXtpZih2b2lkIDA9PT1yLndpZHRofHx2b2lkIDA9PT1yLmhlaWdodClyZXR1cm4gdGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCJJbnZhbGlkIGFyZ3VtZW50cyB0byBtYXAuYWRkSW1hZ2UoKS4gVGhlIHNlY29uZCBhcmd1bWVudCBtdXN0IGJlIGFuIGBIVE1MSW1hZ2VFbGVtZW50YCwgYEltYWdlRGF0YWAsIG9yIG9iamVjdCB3aXRoIGB3aWR0aGAsIGBoZWlnaHRgLCBhbmQgYGRhdGFgIHByb3BlcnRpZXMgd2l0aCB0aGUgc2FtZSBmb3JtYXQgYXMgYEltYWdlRGF0YWAiKSkpO3ZhciB1PXIud2lkdGgsaD1yLmhlaWdodCxmPXIuZGF0YSxwPXI7dGhpcy5zdHlsZS5hZGRJbWFnZShlLHtkYXRhOm5ldyB0LlJHQkFJbWFnZSh7d2lkdGg6dSxoZWlnaHQ6aH0sbmV3IFVpbnQ4QXJyYXkoZikpLHBpeGVsUmF0aW86YSxzZGY6aSx2ZXJzaW9uOjAsdXNlckltYWdlOnB9KSxwLm9uQWRkJiZwLm9uQWRkKHRoaXMsZSl9fSxhLnByb3RvdHlwZS51cGRhdGVJbWFnZT1mdW5jdGlvbihlLHIpe3ZhciBuPXRoaXMuc3R5bGUuZ2V0SW1hZ2UoZSk7aWYoIW4pcmV0dXJuIHRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiVGhlIG1hcCBoYXMgbm8gaW1hZ2Ugd2l0aCB0aGF0IGlkLiBJZiB5b3UgYXJlIGFkZGluZyBhIG5ldyBpbWFnZSB1c2UgYG1hcC5hZGRJbWFnZSguLi4pYCBpbnN0ZWFkLiIpKSk7dmFyIGE9ciBpbnN0YW5jZW9mIE9uP3QuYnJvd3Nlci5nZXRJbWFnZURhdGEocik6cixpPWEud2lkdGgsbz1hLmhlaWdodCxzPWEuZGF0YTtpZih2b2lkIDA9PT1pfHx2b2lkIDA9PT1vKXJldHVybiB0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIkludmFsaWQgYXJndW1lbnRzIHRvIG1hcC51cGRhdGVJbWFnZSgpLiBUaGUgc2Vjb25kIGFyZ3VtZW50IG11c3QgYmUgYW4gYEhUTUxJbWFnZUVsZW1lbnRgLCBgSW1hZ2VEYXRhYCwgb3Igb2JqZWN0IHdpdGggYHdpZHRoYCwgYGhlaWdodGAsIGFuZCBgZGF0YWAgcHJvcGVydGllcyB3aXRoIHRoZSBzYW1lIGZvcm1hdCBhcyBgSW1hZ2VEYXRhYCIpKSk7aWYoaSE9PW4uZGF0YS53aWR0aHx8byE9PW4uZGF0YS5oZWlnaHQpcmV0dXJuIHRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiVGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIHVwZGF0ZWQgaW1hZ2UgbXVzdCBiZSB0aGF0IHNhbWUgYXMgdGhlIHByZXZpb3VzIHZlcnNpb24gb2YgdGhlIGltYWdlIikpKTt2YXIgbD0hKHIgaW5zdGFuY2VvZiBPbik7bi5kYXRhLnJlcGxhY2UocyxsKSx0aGlzLnN0eWxlLnVwZGF0ZUltYWdlKGUsbil9LGEucHJvdG90eXBlLmhhc0ltYWdlPWZ1bmN0aW9uKGUpe3JldHVybiBlPyEhdGhpcy5zdHlsZS5nZXRJbWFnZShlKToodGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCJNaXNzaW5nIHJlcXVpcmVkIGltYWdlIGlkIikpKSwhMSl9LGEucHJvdG90eXBlLnJlbW92ZUltYWdlPWZ1bmN0aW9uKHQpe3RoaXMuc3R5bGUucmVtb3ZlSW1hZ2UodCl9LGEucHJvdG90eXBlLmxvYWRJbWFnZT1mdW5jdGlvbihlLHIpe3QuZ2V0SW1hZ2UodGhpcy5fcmVxdWVzdE1hbmFnZXIudHJhbnNmb3JtUmVxdWVzdChlLHQuUmVzb3VyY2VUeXBlLkltYWdlKSxyKX0sYS5wcm90b3R5cGUubGlzdEltYWdlcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnN0eWxlLmxpc3RJbWFnZXMoKX0sYS5wcm90b3R5cGUuYWRkTGF5ZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5zdHlsZS5hZGRMYXllcih0LGUpLHRoaXMuX3VwZGF0ZSghMCl9LGEucHJvdG90eXBlLm1vdmVMYXllcj1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnN0eWxlLm1vdmVMYXllcih0LGUpLHRoaXMuX3VwZGF0ZSghMCl9LGEucHJvdG90eXBlLnJlbW92ZUxheWVyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnN0eWxlLnJlbW92ZUxheWVyKHQpLHRoaXMuX3VwZGF0ZSghMCl9LGEucHJvdG90eXBlLmdldExheWVyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnN0eWxlLmdldExheWVyKHQpfSxhLnByb3RvdHlwZS5zZXRGaWx0ZXI9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB2b2lkIDA9PT1yJiYocj17fSksdGhpcy5zdHlsZS5zZXRGaWx0ZXIodCxlLHIpLHRoaXMuX3VwZGF0ZSghMCl9LGEucHJvdG90eXBlLnNldExheWVyWm9vbVJhbmdlPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdGhpcy5zdHlsZS5zZXRMYXllclpvb21SYW5nZSh0LGUsciksdGhpcy5fdXBkYXRlKCEwKX0sYS5wcm90b3R5cGUuZ2V0RmlsdGVyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnN0eWxlLmdldEZpbHRlcih0KX0sYS5wcm90b3R5cGUuc2V0UGFpbnRQcm9wZXJ0eT1mdW5jdGlvbih0LGUscixuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49e30pLHRoaXMuc3R5bGUuc2V0UGFpbnRQcm9wZXJ0eSh0LGUscixuKSx0aGlzLl91cGRhdGUoITApfSxhLnByb3RvdHlwZS5nZXRQYWludFByb3BlcnR5PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuc3R5bGUuZ2V0UGFpbnRQcm9wZXJ0eSh0LGUpfSxhLnByb3RvdHlwZS5zZXRMYXlvdXRQcm9wZXJ0eT1mdW5jdGlvbih0LGUscixuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49e30pLHRoaXMuc3R5bGUuc2V0TGF5b3V0UHJvcGVydHkodCxlLHIsbiksdGhpcy5fdXBkYXRlKCEwKX0sYS5wcm90b3R5cGUuZ2V0TGF5b3V0UHJvcGVydHk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5zdHlsZS5nZXRMYXlvdXRQcm9wZXJ0eSh0LGUpfSxhLnByb3RvdHlwZS5zZXRMaWdodD1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT17fSksdGhpcy5zdHlsZS5zZXRMaWdodCh0LGUpLHRoaXMuX3VwZGF0ZSghMCl9LGEucHJvdG90eXBlLmdldExpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3R5bGUuZ2V0TGlnaHQoKX0sYS5wcm90b3R5cGUuc2V0RmVhdHVyZVN0YXRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuc3R5bGUuc2V0RmVhdHVyZVN0YXRlKHQsZSksdGhpcy5fdXBkYXRlKCl9LGEucHJvdG90eXBlLnJlbW92ZUZlYXR1cmVTdGF0ZT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnN0eWxlLnJlbW92ZUZlYXR1cmVTdGF0ZSh0LGUpLHRoaXMuX3VwZGF0ZSgpfSxhLnByb3RvdHlwZS5nZXRGZWF0dXJlU3RhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc3R5bGUuZ2V0RmVhdHVyZVN0YXRlKHQpfSxhLnByb3RvdHlwZS5nZXRDb250YWluZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29udGFpbmVyfSxhLnByb3RvdHlwZS5nZXRDYW52YXNDb250YWluZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FudmFzQ29udGFpbmVyfSxhLnByb3RvdHlwZS5nZXRDYW52YXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FudmFzfSxhLnByb3RvdHlwZS5fY29udGFpbmVyRGltZW5zaW9ucz1mdW5jdGlvbigpe3ZhciB0PTAsZT0wO3JldHVybiB0aGlzLl9jb250YWluZXImJih0PXRoaXMuX2NvbnRhaW5lci5jbGllbnRXaWR0aHx8NDAwLGU9dGhpcy5fY29udGFpbmVyLmNsaWVudEhlaWdodHx8MzAwKSxbdCxlXX0sYS5wcm90b3R5cGUuX2RldGVjdE1pc3NpbmdDU1M9ZnVuY3Rpb24oKXsicmdiKDI1MCwgMTI4LCAxMTQpIiE9PXQud2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5fbWlzc2luZ0NTU0NhbmFyeSkuZ2V0UHJvcGVydHlWYWx1ZSgiYmFja2dyb3VuZC1jb2xvciIpJiZ0Lndhcm5PbmNlKCJUaGlzIHBhZ2UgYXBwZWFycyB0byBiZSBtaXNzaW5nIENTUyBkZWNsYXJhdGlvbnMgZm9yIE1hcGJveCBHTCBKUywgd2hpY2ggbWF5IGNhdXNlIHRoZSBtYXAgdG8gZGlzcGxheSBpbmNvcnJlY3RseS4gUGxlYXNlIGVuc3VyZSB5b3VyIHBhZ2UgaW5jbHVkZXMgbWFwYm94LWdsLmNzcywgYXMgZGVzY3JpYmVkIGluIGh0dHBzOi8vd3d3Lm1hcGJveC5jb20vbWFwYm94LWdsLWpzL2FwaS8uIil9LGEucHJvdG90eXBlLl9zZXR1cENvbnRhaW5lcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2NvbnRhaW5lcjt0LmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLW1hcCIpLCh0aGlzLl9taXNzaW5nQ1NTQ2FuYXJ5PXIuY3JlYXRlKCJkaXYiLCJtYXBib3hnbC1jYW5hcnkiLHQpKS5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iLHRoaXMuX2RldGVjdE1pc3NpbmdDU1MoKTt2YXIgZT10aGlzLl9jYW52YXNDb250YWluZXI9ci5jcmVhdGUoImRpdiIsIm1hcGJveGdsLWNhbnZhcy1jb250YWluZXIiLHQpO3RoaXMuX2ludGVyYWN0aXZlJiZlLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWludGVyYWN0aXZlIiksdGhpcy5fY2FudmFzPXIuY3JlYXRlKCJjYW52YXMiLCJtYXBib3hnbC1jYW52YXMiLGUpLHRoaXMuX2NhbnZhcy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHRoaXMuX2NhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRsb3N0Iix0aGlzLl9jb250ZXh0TG9zdCwhMSksdGhpcy5fY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dHJlc3RvcmVkIix0aGlzLl9jb250ZXh0UmVzdG9yZWQsITEpLHRoaXMuX2NhbnZhcy5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpLHRoaXMuX2NhbnZhcy5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLCJNYXAiKTt2YXIgbj10aGlzLl9jb250YWluZXJEaW1lbnNpb25zKCk7dGhpcy5fcmVzaXplQ2FudmFzKG5bMF0sblsxXSk7dmFyIGE9dGhpcy5fY29udHJvbENvbnRhaW5lcj1yLmNyZWF0ZSgiZGl2IiwibWFwYm94Z2wtY29udHJvbC1jb250YWluZXIiLHQpLGk9dGhpcy5fY29udHJvbFBvc2l0aW9ucz17fTtbInRvcC1sZWZ0IiwidG9wLXJpZ2h0IiwiYm90dG9tLWxlZnQiLCJib3R0b20tcmlnaHQiXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lbdF09ci5jcmVhdGUoImRpdiIsIm1hcGJveGdsLWN0cmwtIit0LGEpfSl9LGEucHJvdG90eXBlLl9yZXNpemVDYW52YXM9ZnVuY3Rpb24oZSxyKXt2YXIgbj10LndpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO3RoaXMuX2NhbnZhcy53aWR0aD1uKmUsdGhpcy5fY2FudmFzLmhlaWdodD1uKnIsdGhpcy5fY2FudmFzLnN0eWxlLndpZHRoPWUrInB4Iix0aGlzLl9jYW52YXMuc3R5bGUuaGVpZ2h0PXIrInB4In0sYS5wcm90b3R5cGUuX3NldHVwUGFpbnRlcj1mdW5jdGlvbigpe3ZhciByPXQuZXh0ZW5kKHt9LGUud2ViR0xDb250ZXh0QXR0cmlidXRlcyx7ZmFpbElmTWFqb3JQZXJmb3JtYW5jZUNhdmVhdDp0aGlzLl9mYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0LHByZXNlcnZlRHJhd2luZ0J1ZmZlcjp0aGlzLl9wcmVzZXJ2ZURyYXdpbmdCdWZmZXIsYW50aWFsaWFzOnRoaXMuX2FudGlhbGlhc3x8ITF9KSxuPXRoaXMuX2NhbnZhcy5nZXRDb250ZXh0KCJ3ZWJnbCIscil8fHRoaXMuX2NhbnZhcy5nZXRDb250ZXh0KCJleHBlcmltZW50YWwtd2ViZ2wiLHIpO24/KHRoaXMucGFpbnRlcj1uZXcgb24obix0aGlzLnRyYW5zZm9ybSksdC53ZWJwU3VwcG9ydGVkLnRlc3RTdXBwb3J0KG4pKTp0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIkZhaWxlZCB0byBpbml0aWFsaXplIFdlYkdMIikpKX0sYS5wcm90b3R5cGUuX2NvbnRleHRMb3N0PWZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKSx0aGlzLl9mcmFtZSYmKHRoaXMuX2ZyYW1lLmNhbmNlbCgpLHRoaXMuX2ZyYW1lPW51bGwpLHRoaXMuZmlyZShuZXcgdC5FdmVudCgid2ViZ2xjb250ZXh0bG9zdCIse29yaWdpbmFsRXZlbnQ6ZX0pKX0sYS5wcm90b3R5cGUuX2NvbnRleHRSZXN0b3JlZD1mdW5jdGlvbihlKXt0aGlzLl9zZXR1cFBhaW50ZXIoKSx0aGlzLnJlc2l6ZSgpLHRoaXMuX3VwZGF0ZSgpLHRoaXMuZmlyZShuZXcgdC5FdmVudCgid2ViZ2xjb250ZXh0cmVzdG9yZWQiLHtvcmlnaW5hbEV2ZW50OmV9KSl9LGEucHJvdG90eXBlLmxvYWRlZD1mdW5jdGlvbigpe3JldHVybiF0aGlzLl9zdHlsZURpcnR5JiYhdGhpcy5fc291cmNlc0RpcnR5JiYhIXRoaXMuc3R5bGUmJnRoaXMuc3R5bGUubG9hZGVkKCl9LGEucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc3R5bGU/KHRoaXMuX3N0eWxlRGlydHk9dGhpcy5fc3R5bGVEaXJ0eXx8dCx0aGlzLl9zb3VyY2VzRGlydHk9ITAsdGhpcy50cmlnZ2VyUmVwYWludCgpLHRoaXMpOnRoaXN9LGEucHJvdG90eXBlLl9yZXF1ZXN0UmVuZGVyRnJhbWU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3VwZGF0ZSgpLHRoaXMuX3JlbmRlclRhc2tRdWV1ZS5hZGQodCl9LGEucHJvdG90eXBlLl9jYW5jZWxSZW5kZXJGcmFtZT1mdW5jdGlvbih0KXt0aGlzLl9yZW5kZXJUYXNrUXVldWUucmVtb3ZlKHQpfSxhLnByb3RvdHlwZS5fcmVuZGVyPWZ1bmN0aW9uKCl7dGhpcy5wYWludGVyLmNvbnRleHQuc2V0RGlydHkoKSx0aGlzLnBhaW50ZXIuc2V0QmFzZVN0YXRlKCksdGhpcy5fcmVuZGVyVGFza1F1ZXVlLnJ1bigpO3ZhciBlPSExO2lmKHRoaXMuc3R5bGUmJnRoaXMuX3N0eWxlRGlydHkpe3RoaXMuX3N0eWxlRGlydHk9ITE7dmFyIHI9dGhpcy50cmFuc2Zvcm0uem9vbSxuPXQuYnJvd3Nlci5ub3coKTt0aGlzLnN0eWxlLnpvb21IaXN0b3J5LnVwZGF0ZShyLG4pO3ZhciBhPW5ldyB0LkV2YWx1YXRpb25QYXJhbWV0ZXJzKHIse25vdzpuLGZhZGVEdXJhdGlvbjp0aGlzLl9mYWRlRHVyYXRpb24sem9vbUhpc3Rvcnk6dGhpcy5zdHlsZS56b29tSGlzdG9yeSx0cmFuc2l0aW9uOnRoaXMuc3R5bGUuZ2V0VHJhbnNpdGlvbigpfSksaT1hLmNyb3NzRmFkaW5nRmFjdG9yKCk7MT09PWkmJmk9PT10aGlzLl9jcm9zc0ZhZGluZ0ZhY3Rvcnx8KGU9ITAsdGhpcy5fY3Jvc3NGYWRpbmdGYWN0b3I9aSksdGhpcy5zdHlsZS51cGRhdGUoYSl9cmV0dXJuIHRoaXMuc3R5bGUmJnRoaXMuX3NvdXJjZXNEaXJ0eSYmKHRoaXMuX3NvdXJjZXNEaXJ0eT0hMSx0aGlzLnN0eWxlLl91cGRhdGVTb3VyY2VzKHRoaXMudHJhbnNmb3JtKSksdGhpcy5fcGxhY2VtZW50RGlydHk9dGhpcy5zdHlsZSYmdGhpcy5zdHlsZS5fdXBkYXRlUGxhY2VtZW50KHRoaXMucGFpbnRlci50cmFuc2Zvcm0sdGhpcy5zaG93Q29sbGlzaW9uQm94ZXMsdGhpcy5fZmFkZUR1cmF0aW9uLHRoaXMuX2Nyb3NzU291cmNlQ29sbGlzaW9ucyksdGhpcy5wYWludGVyLnJlbmRlcih0aGlzLnN0eWxlLHtzaG93VGlsZUJvdW5kYXJpZXM6dGhpcy5zaG93VGlsZUJvdW5kYXJpZXMsc2hvd092ZXJkcmF3SW5zcGVjdG9yOnRoaXMuX3Nob3dPdmVyZHJhd0luc3BlY3Rvcixyb3RhdGluZzp0aGlzLmlzUm90YXRpbmcoKSx6b29taW5nOnRoaXMuaXNab29taW5nKCksbW92aW5nOnRoaXMuaXNNb3ZpbmcoKSxmYWRlRHVyYXRpb246dGhpcy5fZmFkZUR1cmF0aW9ufSksdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJyZW5kZXIiKSksdGhpcy5sb2FkZWQoKSYmIXRoaXMuX2xvYWRlZCYmKHRoaXMuX2xvYWRlZD0hMCx0aGlzLmZpcmUobmV3IHQuRXZlbnQoImxvYWQiKSkpLHRoaXMuc3R5bGUmJih0aGlzLnN0eWxlLmhhc1RyYW5zaXRpb25zKCl8fGUpJiYodGhpcy5fc3R5bGVEaXJ0eT0hMCksdGhpcy5zdHlsZSYmIXRoaXMuX3BsYWNlbWVudERpcnR5JiZ0aGlzLnN0eWxlLl9yZWxlYXNlU3ltYm9sRmFkZVRpbGVzKCksdGhpcy5fc291cmNlc0RpcnR5fHx0aGlzLl9yZXBhaW50fHx0aGlzLl9zdHlsZURpcnR5fHx0aGlzLl9wbGFjZW1lbnREaXJ0eT90aGlzLnRyaWdnZXJSZXBhaW50KCk6IXRoaXMuaXNNb3ZpbmcoKSYmdGhpcy5sb2FkZWQoKSYmdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJpZGxlIikpLHRoaXN9LGEucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbigpe3RoaXMuX2hhc2gmJnRoaXMuX2hhc2gucmVtb3ZlKCk7Zm9yKHZhciBlPTAscj10aGlzLl9jb250cm9scztlPHIubGVuZ3RoO2UrPTEpcltlXS5vblJlbW92ZSh0aGlzKTt0aGlzLl9jb250cm9scz1bXSx0aGlzLl9mcmFtZSYmKHRoaXMuX2ZyYW1lLmNhbmNlbCgpLHRoaXMuX2ZyYW1lPW51bGwpLHRoaXMuX3JlbmRlclRhc2tRdWV1ZS5jbGVhcigpLHRoaXMuc2V0U3R5bGUobnVsbCksdm9pZCAwIT09dC53aW5kb3cmJih0LndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuX29uV2luZG93UmVzaXplLCExKSx0LndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJvbmxpbmUiLHRoaXMuX29uV2luZG93T25saW5lLCExKSk7dmFyIG49dGhpcy5wYWludGVyLmNvbnRleHQuZ2wuZ2V0RXh0ZW5zaW9uKCJXRUJHTF9sb3NlX2NvbnRleHQiKTtuJiZuLmxvc2VDb250ZXh0KCksUm4odGhpcy5fY2FudmFzQ29udGFpbmVyKSxSbih0aGlzLl9jb250cm9sQ29udGFpbmVyKSxSbih0aGlzLl9taXNzaW5nQ1NTQ2FuYXJ5KSx0aGlzLl9jb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtbWFwIiksdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJyZW1vdmUiKSl9LGEucHJvdG90eXBlLnRyaWdnZXJSZXBhaW50PWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLnN0eWxlJiYhdGhpcy5fZnJhbWUmJih0aGlzLl9mcmFtZT10LmJyb3dzZXIuZnJhbWUoZnVuY3Rpb24oKXtlLl9mcmFtZT1udWxsLGUuX3JlbmRlcigpfSkpfSxhLnByb3RvdHlwZS5fb25XaW5kb3dPbmxpbmU9ZnVuY3Rpb24oKXt0aGlzLl91cGRhdGUoKX0sYS5wcm90b3R5cGUuX29uV2luZG93UmVzaXplPWZ1bmN0aW9uKCl7dGhpcy5fdHJhY2tSZXNpemUmJnRoaXMucmVzaXplKCkuX3VwZGF0ZSgpfSxpLnNob3dUaWxlQm91bmRhcmllcy5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuX3Nob3dUaWxlQm91bmRhcmllc30saS5zaG93VGlsZUJvdW5kYXJpZXMuc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3Nob3dUaWxlQm91bmRhcmllcyE9PXQmJih0aGlzLl9zaG93VGlsZUJvdW5kYXJpZXM9dCx0aGlzLl91cGRhdGUoKSl9LGkuc2hvd0NvbGxpc2lvbkJveGVzLmdldD1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5fc2hvd0NvbGxpc2lvbkJveGVzfSxpLnNob3dDb2xsaXNpb25Cb3hlcy5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fc2hvd0NvbGxpc2lvbkJveGVzIT09dCYmKHRoaXMuX3Nob3dDb2xsaXNpb25Cb3hlcz10LHQ/dGhpcy5zdHlsZS5fZ2VuZXJhdGVDb2xsaXNpb25Cb3hlcygpOnRoaXMuX3VwZGF0ZSgpKX0saS5zaG93T3ZlcmRyYXdJbnNwZWN0b3IuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLl9zaG93T3ZlcmRyYXdJbnNwZWN0b3J9LGkuc2hvd092ZXJkcmF3SW5zcGVjdG9yLnNldD1mdW5jdGlvbih0KXt0aGlzLl9zaG93T3ZlcmRyYXdJbnNwZWN0b3IhPT10JiYodGhpcy5fc2hvd092ZXJkcmF3SW5zcGVjdG9yPXQsdGhpcy5fdXBkYXRlKCkpfSxpLnJlcGFpbnQuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLl9yZXBhaW50fSxpLnJlcGFpbnQuc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3JlcGFpbnQhPT10JiYodGhpcy5fcmVwYWludD10LHRoaXMudHJpZ2dlclJlcGFpbnQoKSl9LGkudmVydGljZXMuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLl92ZXJ0aWNlc30saS52ZXJ0aWNlcy5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fdmVydGljZXM9dCx0aGlzLl91cGRhdGUoKX0sYS5wcm90b3R5cGUuX3NldENhY2hlTGltaXRzPWZ1bmN0aW9uKGUscil7dC5zZXRDYWNoZUxpbWl0cyhlLHIpfSxpLnZlcnNpb24uZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHQudmVyc2lvbn0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoYS5wcm90b3R5cGUsaSksYX0oRW4pO2Z1bmN0aW9uIFJuKHQpe3QucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpfXZhciBGbj17c2hvd0NvbXBhc3M6ITAsc2hvd1pvb206ITAsdmlzdWFsaXplUGl0Y2g6ITF9LEJuPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7dGhpcy5vcHRpb25zPXQuZXh0ZW5kKHt9LEZuLGUpLHRoaXMuX2NvbnRhaW5lcj1yLmNyZWF0ZSgiZGl2IiwibWFwYm94Z2wtY3RybCBtYXBib3hnbC1jdHJsLWdyb3VwIiksdGhpcy5fY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IixmdW5jdGlvbih0KXtyZXR1cm4gdC5wcmV2ZW50RGVmYXVsdCgpfSksdGhpcy5vcHRpb25zLnNob3dab29tJiYodC5iaW5kQWxsKFsiX3VwZGF0ZVpvb21CdXR0b25zIl0sdGhpcyksdGhpcy5fem9vbUluQnV0dG9uPXRoaXMuX2NyZWF0ZUJ1dHRvbigibWFwYm94Z2wtY3RybC1pY29uIG1hcGJveGdsLWN0cmwtem9vbS1pbiIsIlpvb20gaW4iLGZ1bmN0aW9uKCl7cmV0dXJuIG4uX21hcC56b29tSW4oKX0pLHRoaXMuX3pvb21PdXRCdXR0b249dGhpcy5fY3JlYXRlQnV0dG9uKCJtYXBib3hnbC1jdHJsLWljb24gbWFwYm94Z2wtY3RybC16b29tLW91dCIsIlpvb20gb3V0IixmdW5jdGlvbigpe3JldHVybiBuLl9tYXAuem9vbU91dCgpfSkpLHRoaXMub3B0aW9ucy5zaG93Q29tcGFzcyYmKHQuYmluZEFsbChbIl9yb3RhdGVDb21wYXNzQXJyb3ciXSx0aGlzKSx0aGlzLl9jb21wYXNzPXRoaXMuX2NyZWF0ZUJ1dHRvbigibWFwYm94Z2wtY3RybC1pY29uIG1hcGJveGdsLWN0cmwtY29tcGFzcyIsIlJlc2V0IGJlYXJpbmcgdG8gbm9ydGgiLGZ1bmN0aW9uKCl7bi5vcHRpb25zLnZpc3VhbGl6ZVBpdGNoP24uX21hcC5yZXNldE5vcnRoUGl0Y2goKTpuLl9tYXAucmVzZXROb3J0aCgpfSksdGhpcy5fY29tcGFzc0Fycm93PXIuY3JlYXRlKCJzcGFuIiwibWFwYm94Z2wtY3RybC1jb21wYXNzLWFycm93Iix0aGlzLl9jb21wYXNzKSl9O2Z1bmN0aW9uIE5uKGUscixuKXtpZihlPW5ldyB0LkxuZ0xhdChlLmxuZyxlLmxhdCkscil7dmFyIGE9bmV3IHQuTG5nTGF0KGUubG5nLTM2MCxlLmxhdCksaT1uZXcgdC5MbmdMYXQoZS5sbmcrMzYwLGUubGF0KSxvPW4ubG9jYXRpb25Qb2ludChlKS5kaXN0U3FyKHIpO24ubG9jYXRpb25Qb2ludChhKS5kaXN0U3FyKHIpPG8/ZT1hOm4ubG9jYXRpb25Qb2ludChpKS5kaXN0U3FyKHIpPG8mJihlPWkpfWZvcig7TWF0aC5hYnMoZS5sbmctbi5jZW50ZXIubG5nKT4xODA7KXt2YXIgcz1uLmxvY2F0aW9uUG9pbnQoZSk7aWYocy54Pj0wJiZzLnk+PTAmJnMueDw9bi53aWR0aCYmcy55PD1uLmhlaWdodClicmVhaztlLmxuZz5uLmNlbnRlci5sbmc/ZS5sbmctPTM2MDplLmxuZys9MzYwfXJldHVybiBlfUJuLnByb3RvdHlwZS5fdXBkYXRlWm9vbUJ1dHRvbnM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9tYXAuZ2V0Wm9vbSgpO3Q9PT10aGlzLl9tYXAuZ2V0TWF4Wm9vbSgpP3RoaXMuX3pvb21JbkJ1dHRvbi5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC1jdHJsLWljb24tZGlzYWJsZWQiKTp0aGlzLl96b29tSW5CdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY3RybC1pY29uLWRpc2FibGVkIiksdD09PXRoaXMuX21hcC5nZXRNaW5ab29tKCk/dGhpcy5fem9vbU91dEJ1dHRvbi5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC1jdHJsLWljb24tZGlzYWJsZWQiKTp0aGlzLl96b29tT3V0QnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLWN0cmwtaWNvbi1kaXNhYmxlZCIpfSxCbi5wcm90b3R5cGUuX3JvdGF0ZUNvbXBhc3NBcnJvdz1mdW5jdGlvbigpe3ZhciB0PXRoaXMub3B0aW9ucy52aXN1YWxpemVQaXRjaD8ic2NhbGUoIisxL01hdGgucG93KE1hdGguY29zKHRoaXMuX21hcC50cmFuc2Zvcm0ucGl0Y2gqKE1hdGguUEkvMTgwKSksLjUpKyIpIHJvdGF0ZVgoIit0aGlzLl9tYXAudHJhbnNmb3JtLnBpdGNoKyJkZWcpIHJvdGF0ZVooIit0aGlzLl9tYXAudHJhbnNmb3JtLmFuZ2xlKigxODAvTWF0aC5QSSkrImRlZykiOiJyb3RhdGUoIit0aGlzLl9tYXAudHJhbnNmb3JtLmFuZ2xlKigxODAvTWF0aC5QSSkrImRlZykiO3RoaXMuX2NvbXBhc3NBcnJvdy5zdHlsZS50cmFuc2Zvcm09dH0sQm4ucHJvdG90eXBlLm9uQWRkPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9tYXA9dCx0aGlzLm9wdGlvbnMuc2hvd1pvb20mJih0aGlzLl9tYXAub24oInpvb20iLHRoaXMuX3VwZGF0ZVpvb21CdXR0b25zKSx0aGlzLl91cGRhdGVab29tQnV0dG9ucygpKSx0aGlzLm9wdGlvbnMuc2hvd0NvbXBhc3MmJih0aGlzLm9wdGlvbnMudmlzdWFsaXplUGl0Y2gmJnRoaXMuX21hcC5vbigicGl0Y2giLHRoaXMuX3JvdGF0ZUNvbXBhc3NBcnJvdyksdGhpcy5fbWFwLm9uKCJyb3RhdGUiLHRoaXMuX3JvdGF0ZUNvbXBhc3NBcnJvdyksdGhpcy5fcm90YXRlQ29tcGFzc0Fycm93KCksdGhpcy5faGFuZGxlcj1uZXcgeG4odCx7YnV0dG9uOiJsZWZ0IixlbGVtZW50OnRoaXMuX2NvbXBhc3N9KSxyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5fY29tcGFzcywibW91c2Vkb3duIix0aGlzLl9oYW5kbGVyLm9uTW91c2VEb3duKSxyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5fY29tcGFzcywidG91Y2hzdGFydCIsdGhpcy5faGFuZGxlci5vbk1vdXNlRG93bix7cGFzc2l2ZTohMX0pLHRoaXMuX2hhbmRsZXIuZW5hYmxlKCkpLHRoaXMuX2NvbnRhaW5lcn0sQm4ucHJvdG90eXBlLm9uUmVtb3ZlPWZ1bmN0aW9uKCl7ci5yZW1vdmUodGhpcy5fY29udGFpbmVyKSx0aGlzLm9wdGlvbnMuc2hvd1pvb20mJnRoaXMuX21hcC5vZmYoInpvb20iLHRoaXMuX3VwZGF0ZVpvb21CdXR0b25zKSx0aGlzLm9wdGlvbnMuc2hvd0NvbXBhc3MmJih0aGlzLm9wdGlvbnMudmlzdWFsaXplUGl0Y2gmJnRoaXMuX21hcC5vZmYoInBpdGNoIix0aGlzLl9yb3RhdGVDb21wYXNzQXJyb3cpLHRoaXMuX21hcC5vZmYoInJvdGF0ZSIsdGhpcy5fcm90YXRlQ29tcGFzc0Fycm93KSxyLnJlbW92ZUV2ZW50TGlzdGVuZXIodGhpcy5fY29tcGFzcywibW91c2Vkb3duIix0aGlzLl9oYW5kbGVyLm9uTW91c2VEb3duKSxyLnJlbW92ZUV2ZW50TGlzdGVuZXIodGhpcy5fY29tcGFzcywidG91Y2hzdGFydCIsdGhpcy5faGFuZGxlci5vbk1vdXNlRG93bix7cGFzc2l2ZTohMX0pLHRoaXMuX2hhbmRsZXIuZGlzYWJsZSgpLGRlbGV0ZSB0aGlzLl9oYW5kbGVyKSxkZWxldGUgdGhpcy5fbWFwfSxCbi5wcm90b3R5cGUuX2NyZWF0ZUJ1dHRvbj1mdW5jdGlvbih0LGUsbil7dmFyIGE9ci5jcmVhdGUoImJ1dHRvbiIsdCx0aGlzLl9jb250YWluZXIpO3JldHVybiBhLnR5cGU9ImJ1dHRvbiIsYS50aXRsZT1lLGEuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixlKSxhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixuKSxhfTt2YXIgam49e2NlbnRlcjoidHJhbnNsYXRlKC01MCUsLTUwJSkiLHRvcDoidHJhbnNsYXRlKC01MCUsMCkiLCJ0b3AtbGVmdCI6InRyYW5zbGF0ZSgwLDApIiwidG9wLXJpZ2h0IjoidHJhbnNsYXRlKC0xMDAlLDApIixib3R0b206InRyYW5zbGF0ZSgtNTAlLC0xMDAlKSIsImJvdHRvbS1sZWZ0IjoidHJhbnNsYXRlKDAsLTEwMCUpIiwiYm90dG9tLXJpZ2h0IjoidHJhbnNsYXRlKC0xMDAlLC0xMDAlKSIsbGVmdDoidHJhbnNsYXRlKDAsLTUwJSkiLHJpZ2h0OiJ0cmFuc2xhdGUoLTEwMCUsLTUwJSkifTtmdW5jdGlvbiBWbih0LGUscil7dmFyIG49dC5jbGFzc0xpc3Q7Zm9yKHZhciBhIGluIGpuKW4ucmVtb3ZlKCJtYXBib3hnbC0iK3IrIi1hbmNob3ItIithKTtuLmFkZCgibWFwYm94Z2wtIityKyItYW5jaG9yLSIrZSl9dmFyIFVuLHFuPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIG4obixhKXtpZihlLmNhbGwodGhpcyksKG4gaW5zdGFuY2VvZiB0LndpbmRvdy5IVE1MRWxlbWVudHx8YSkmJihuPXQuZXh0ZW5kKHtlbGVtZW50Om59LGEpKSx0LmJpbmRBbGwoWyJfdXBkYXRlIiwiX29uTW92ZSIsIl9vblVwIiwiX2FkZERyYWdIYW5kbGVyIiwiX29uTWFwQ2xpY2siXSx0aGlzKSx0aGlzLl9hbmNob3I9biYmbi5hbmNob3J8fCJjZW50ZXIiLHRoaXMuX2NvbG9yPW4mJm4uY29sb3J8fCIjM0ZCMUNFIix0aGlzLl9kcmFnZ2FibGU9biYmbi5kcmFnZ2FibGV8fCExLHRoaXMuX3N0YXRlPSJpbmFjdGl2ZSIsbiYmbi5lbGVtZW50KXRoaXMuX2VsZW1lbnQ9bi5lbGVtZW50LHRoaXMuX29mZnNldD10LlBvaW50LmNvbnZlcnQobiYmbi5vZmZzZXR8fFswLDBdKTtlbHNle3RoaXMuX2RlZmF1bHRNYXJrZXI9ITAsdGhpcy5fZWxlbWVudD1yLmNyZWF0ZSgiZGl2Iik7dmFyIGk9ci5jcmVhdGVOUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJzdmciKTtpLnNldEF0dHJpYnV0ZU5TKG51bGwsImRpc3BsYXkiLCJibG9jayIpLGkuc2V0QXR0cmlidXRlTlMobnVsbCwiaGVpZ2h0IiwiNDFweCIpLGkuc2V0QXR0cmlidXRlTlMobnVsbCwid2lkdGgiLCIyN3B4IiksaS5zZXRBdHRyaWJ1dGVOUyhudWxsLCJ2aWV3Qm94IiwiMCAwIDI3IDQxIik7dmFyIG89ci5jcmVhdGVOUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJnIik7by5zZXRBdHRyaWJ1dGVOUyhudWxsLCJzdHJva2UiLCJub25lIiksby5zZXRBdHRyaWJ1dGVOUyhudWxsLCJzdHJva2Utd2lkdGgiLCIxIiksby5zZXRBdHRyaWJ1dGVOUyhudWxsLCJmaWxsIiwibm9uZSIpLG8uc2V0QXR0cmlidXRlTlMobnVsbCwiZmlsbC1ydWxlIiwiZXZlbm9kZCIpO3ZhciBzPXIuY3JlYXRlTlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZyIpO3Muc2V0QXR0cmlidXRlTlMobnVsbCwiZmlsbC1ydWxlIiwibm9uemVybyIpO3ZhciBsPXIuY3JlYXRlTlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZyIpO2wuc2V0QXR0cmlidXRlTlMobnVsbCwidHJhbnNmb3JtIiwidHJhbnNsYXRlKDMuMCwgMjkuMCkiKSxsLnNldEF0dHJpYnV0ZU5TKG51bGwsImZpbGwiLCIjMDAwMDAwIik7Zm9yKHZhciBjPTAsdT1be3J4OiIxMC41IixyeToiNS4yNTAwMjI3MyJ9LHtyeDoiMTAuNSIscnk6IjUuMjUwMDIyNzMifSx7cng6IjkuNSIscnk6IjQuNzcyNzUwMDcifSx7cng6IjguNSIscnk6IjQuMjk1NDk5MzYifSx7cng6IjcuNSIscnk6IjMuODE4MjIzMDgifSx7cng6IjYuNSIscnk6IjMuMzQwOTQ2NzkifSx7cng6IjUuNSIscnk6IjIuODYzNjcwNTEifSx7cng6IjQuNSIscnk6IjIuMzg2MzY4NjQifV07Yzx1Lmxlbmd0aDtjKz0xKXt2YXIgaD11W2NdLGY9ci5jcmVhdGVOUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJlbGxpcHNlIik7Zi5zZXRBdHRyaWJ1dGVOUyhudWxsLCJvcGFjaXR5IiwiMC4wNCIpLGYuc2V0QXR0cmlidXRlTlMobnVsbCwiY3giLCIxMC41IiksZi5zZXRBdHRyaWJ1dGVOUyhudWxsLCJjeSIsIjUuODAwMjkwMDgiKSxmLnNldEF0dHJpYnV0ZU5TKG51bGwsInJ4IixoLnJ4KSxmLnNldEF0dHJpYnV0ZU5TKG51bGwsInJ5IixoLnJ5KSxsLmFwcGVuZENoaWxkKGYpfXZhciBwPXIuY3JlYXRlTlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZyIpO3Auc2V0QXR0cmlidXRlTlMobnVsbCwiZmlsbCIsdGhpcy5fY29sb3IpO3ZhciBkPXIuY3JlYXRlTlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwicGF0aCIpO2Quc2V0QXR0cmlidXRlTlMobnVsbCwiZCIsIk0yNywxMy41IEMyNywxOS4wNzQ2NDQgMjAuMjUwMDAxLDI3LjAwMDAwMiAxNC43NSwzNC41MDAwMDIgQzE0LjAxNjY2NSwzNS41MDAwMDQgMTIuOTgzMzM1LDM1LjUwMDAwNCAxMi4yNSwzNC41MDAwMDIgQzYuNzQ5OTk5MywyNy4wMDAwMDIgMCwxOS4yMjI1NjIgMCwxMy41IEMwLDYuMDQ0MTU1OSA2LjA0NDE1NTksMCAxMy41LDAgQzIwLjk1NTg0NCwwIDI3LDYuMDQ0MTU1OSAyNywxMy41IFoiKSxwLmFwcGVuZENoaWxkKGQpO3ZhciBnPXIuY3JlYXRlTlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZyIpO2cuc2V0QXR0cmlidXRlTlMobnVsbCwib3BhY2l0eSIsIjAuMjUiKSxnLnNldEF0dHJpYnV0ZU5TKG51bGwsImZpbGwiLCIjMDAwMDAwIik7dmFyIHY9ci5jcmVhdGVOUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJwYXRoIik7di5zZXRBdHRyaWJ1dGVOUyhudWxsLCJkIiwiTTEzLjUsMCBDNi4wNDQxNTU5LDAgMCw2LjA0NDE1NTkgMCwxMy41IEMwLDE5LjIyMjU2MiA2Ljc0OTk5OTMsMjcgMTIuMjUsMzQuNSBDMTMsMzUuNTIyNzI3IDE0LjAxNjY2NCwzNS41MDAwMDQgMTQuNzUsMzQuNSBDMjAuMjUwMDAxLDI3IDI3LDE5LjA3NDY0NCAyNywxMy41IEMyNyw2LjA0NDE1NTkgMjAuOTU1ODQ0LDAgMTMuNSwwIFogTTEzLjUsMSBDMjAuNDE1NDA0LDEgMjYsNi41ODQ1OTYgMjYsMTMuNSBDMjYsMTUuODk4NjU3IDI0LjQ5NTU4NCwxOS4xODE0MzEgMjIuMjIwNzAzLDIyLjczODI4MSBDMTkuOTQ1ODIzLDI2LjI5NTEzMiAxNi43MDUxMTksMzAuMTQyMTY3IDEzLjk0MzM1OSwzMy45MDgyMDMgQzEzLjc0MzQ0NSwzNC4xODA4MTQgMTMuNjEyNzE1LDM0LjMyMjczOCAxMy41LDM0LjQ0MTQwNiBDMTMuMzg3Mjg1LDM0LjMyMjczOCAxMy4yNTY1NTUsMzQuMTgwODE0IDEzLjA1NjY0MSwzMy45MDgyMDMgQzEwLjI4NDQ4MSwzMC4xMjc5ODUgNy40MTQ4Njg0LDI2LjMxNDE1OSA1LjAxNTYyNSwyMi43NzM0MzggQzIuNjE2MzgxNiwxOS4yMzI3MTUgMSwxNS45NTM1MzggMSwxMy41IEMxLDYuNTg0NTk2IDYuNTg0NTk2LDEgMTMuNSwxIFoiKSxnLmFwcGVuZENoaWxkKHYpO3ZhciBtPXIuY3JlYXRlTlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZyIpO20uc2V0QXR0cmlidXRlTlMobnVsbCwidHJhbnNmb3JtIiwidHJhbnNsYXRlKDYuMCwgNy4wKSIpLG0uc2V0QXR0cmlidXRlTlMobnVsbCwiZmlsbCIsIiNGRkZGRkYiKTt2YXIgeT1yLmNyZWF0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImciKTt5LnNldEF0dHJpYnV0ZU5TKG51bGwsInRyYW5zZm9ybSIsInRyYW5zbGF0ZSg4LjAsIDguMCkiKTt2YXIgeD1yLmNyZWF0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImNpcmNsZSIpO3guc2V0QXR0cmlidXRlTlMobnVsbCwiZmlsbCIsIiMwMDAwMDAiKSx4LnNldEF0dHJpYnV0ZU5TKG51bGwsIm9wYWNpdHkiLCIwLjI1IikseC5zZXRBdHRyaWJ1dGVOUyhudWxsLCJjeCIsIjUuNSIpLHguc2V0QXR0cmlidXRlTlMobnVsbCwiY3kiLCI1LjUiKSx4LnNldEF0dHJpYnV0ZU5TKG51bGwsInIiLCI1LjQ5OTk5NjIiKTt2YXIgYj1yLmNyZWF0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImNpcmNsZSIpO2Iuc2V0QXR0cmlidXRlTlMobnVsbCwiZmlsbCIsIiNGRkZGRkYiKSxiLnNldEF0dHJpYnV0ZU5TKG51bGwsImN4IiwiNS41IiksYi5zZXRBdHRyaWJ1dGVOUyhudWxsLCJjeSIsIjUuNSIpLGIuc2V0QXR0cmlidXRlTlMobnVsbCwiciIsIjUuNDk5OTk2MiIpLHkuYXBwZW5kQ2hpbGQoeCkseS5hcHBlbmRDaGlsZChiKSxzLmFwcGVuZENoaWxkKGwpLHMuYXBwZW5kQ2hpbGQocCkscy5hcHBlbmRDaGlsZChnKSxzLmFwcGVuZENoaWxkKG0pLHMuYXBwZW5kQ2hpbGQoeSksaS5hcHBlbmRDaGlsZChzKSx0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKGkpLHRoaXMuX29mZnNldD10LlBvaW50LmNvbnZlcnQobiYmbi5vZmZzZXR8fFswLC0xNF0pfXRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZCgibWFwYm94Z2wtbWFya2VyIiksdGhpcy5fZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJkcmFnc3RhcnQiLGZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKX0pLFZuKHRoaXMuX2VsZW1lbnQsdGhpcy5fYW5jaG9yLCJtYXJrZXIiKSx0aGlzLl9wb3B1cD1udWxsfXJldHVybiBlJiYobi5fX3Byb3RvX189ZSksbi5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSksbi5wcm90b3R5cGUuY29uc3RydWN0b3I9bixuLnByb3RvdHlwZS5hZGRUbz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZW1vdmUoKSx0aGlzLl9tYXA9dCx0LmdldENhbnZhc0NvbnRhaW5lcigpLmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnQpLHQub24oIm1vdmUiLHRoaXMuX3VwZGF0ZSksdC5vbigibW92ZWVuZCIsdGhpcy5fdXBkYXRlKSx0aGlzLnNldERyYWdnYWJsZSh0aGlzLl9kcmFnZ2FibGUpLHRoaXMuX3VwZGF0ZSgpLHRoaXMuX21hcC5vbigiY2xpY2siLHRoaXMuX29uTWFwQ2xpY2spLHRoaXN9LG4ucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXAmJih0aGlzLl9tYXAub2ZmKCJjbGljayIsdGhpcy5fb25NYXBDbGljayksdGhpcy5fbWFwLm9mZigibW92ZSIsdGhpcy5fdXBkYXRlKSx0aGlzLl9tYXAub2ZmKCJtb3ZlZW5kIix0aGlzLl91cGRhdGUpLHRoaXMuX21hcC5vZmYoIm1vdXNlZG93biIsdGhpcy5fYWRkRHJhZ0hhbmRsZXIpLHRoaXMuX21hcC5vZmYoInRvdWNoc3RhcnQiLHRoaXMuX2FkZERyYWdIYW5kbGVyKSx0aGlzLl9tYXAub2ZmKCJtb3VzZXVwIix0aGlzLl9vblVwKSx0aGlzLl9tYXAub2ZmKCJ0b3VjaGVuZCIsdGhpcy5fb25VcCksdGhpcy5fbWFwLm9mZigibW91c2Vtb3ZlIix0aGlzLl9vbk1vdmUpLHRoaXMuX21hcC5vZmYoInRvdWNobW92ZSIsdGhpcy5fb25Nb3ZlKSxkZWxldGUgdGhpcy5fbWFwKSxyLnJlbW92ZSh0aGlzLl9lbGVtZW50KSx0aGlzLl9wb3B1cCYmdGhpcy5fcG9wdXAucmVtb3ZlKCksdGhpc30sbi5wcm90b3R5cGUuZ2V0TG5nTGF0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xuZ0xhdH0sbi5wcm90b3R5cGUuc2V0TG5nTGF0PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9sbmdMYXQ9dC5MbmdMYXQuY29udmVydChlKSx0aGlzLl9wb3M9bnVsbCx0aGlzLl9wb3B1cCYmdGhpcy5fcG9wdXAuc2V0TG5nTGF0KHRoaXMuX2xuZ0xhdCksdGhpcy5fdXBkYXRlKCksdGhpc30sbi5wcm90b3R5cGUuZ2V0RWxlbWVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9lbGVtZW50fSxuLnByb3RvdHlwZS5zZXRQb3B1cD1mdW5jdGlvbih0KXtpZih0aGlzLl9wb3B1cCYmKHRoaXMuX3BvcHVwLnJlbW92ZSgpLHRoaXMuX3BvcHVwPW51bGwpLHQpe2lmKCEoIm9mZnNldCJpbiB0Lm9wdGlvbnMpKXt2YXIgZT1NYXRoLnNxcnQoTWF0aC5wb3coMTMuNSwyKS8yKTt0Lm9wdGlvbnMub2Zmc2V0PXRoaXMuX2RlZmF1bHRNYXJrZXI/e3RvcDpbMCwwXSwidG9wLWxlZnQiOlswLDBdLCJ0b3AtcmlnaHQiOlswLDBdLGJvdHRvbTpbMCwtMzguMV0sImJvdHRvbS1sZWZ0IjpbZSwtMSooMjQuNitlKV0sImJvdHRvbS1yaWdodCI6Wy1lLC0xKigyNC42K2UpXSxsZWZ0OlsxMy41LC0yNC42XSxyaWdodDpbLTEzLjUsLTI0LjZdfTp0aGlzLl9vZmZzZXR9dGhpcy5fcG9wdXA9dCx0aGlzLl9sbmdMYXQmJnRoaXMuX3BvcHVwLnNldExuZ0xhdCh0aGlzLl9sbmdMYXQpfXJldHVybiB0aGlzfSxuLnByb3RvdHlwZS5fb25NYXBDbGljaz1mdW5jdGlvbih0KXt2YXIgZT10Lm9yaWdpbmFsRXZlbnQudGFyZ2V0LHI9dGhpcy5fZWxlbWVudDt0aGlzLl9wb3B1cCYmKGU9PT1yfHxyLmNvbnRhaW5zKGUpKSYmdGhpcy50b2dnbGVQb3B1cCgpfSxuLnByb3RvdHlwZS5nZXRQb3B1cD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9wb3B1cH0sbi5wcm90b3R5cGUudG9nZ2xlUG9wdXA9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9wb3B1cDtyZXR1cm4gdD8odC5pc09wZW4oKT90LnJlbW92ZSgpOnQuYWRkVG8odGhpcy5fbWFwKSx0aGlzKTp0aGlzfSxuLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHQpe3RoaXMuX21hcCYmKHRoaXMuX21hcC50cmFuc2Zvcm0ucmVuZGVyV29ybGRDb3BpZXMmJih0aGlzLl9sbmdMYXQ9Tm4odGhpcy5fbG5nTGF0LHRoaXMuX3Bvcyx0aGlzLl9tYXAudHJhbnNmb3JtKSksdGhpcy5fcG9zPXRoaXMuX21hcC5wcm9qZWN0KHRoaXMuX2xuZ0xhdCkuX2FkZCh0aGlzLl9vZmZzZXQpLHQmJiJtb3ZlZW5kIiE9PXQudHlwZXx8KHRoaXMuX3Bvcz10aGlzLl9wb3Mucm91bmQoKSksci5zZXRUcmFuc2Zvcm0odGhpcy5fZWxlbWVudCxqblt0aGlzLl9hbmNob3JdKyIgdHJhbnNsYXRlKCIrdGhpcy5fcG9zLngrInB4LCAiK3RoaXMuX3Bvcy55KyJweCkiKSl9LG4ucHJvdG90eXBlLmdldE9mZnNldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9vZmZzZXR9LG4ucHJvdG90eXBlLnNldE9mZnNldD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fb2Zmc2V0PXQuUG9pbnQuY29udmVydChlKSx0aGlzLl91cGRhdGUoKSx0aGlzfSxuLnByb3RvdHlwZS5fb25Nb3ZlPWZ1bmN0aW9uKGUpe3RoaXMuX3Bvcz1lLnBvaW50LnN1Yih0aGlzLl9wb3NpdGlvbkRlbHRhKSx0aGlzLl9sbmdMYXQ9dGhpcy5fbWFwLnVucHJvamVjdCh0aGlzLl9wb3MpLHRoaXMuc2V0TG5nTGF0KHRoaXMuX2xuZ0xhdCksdGhpcy5fZWxlbWVudC5zdHlsZS5wb2ludGVyRXZlbnRzPSJub25lIiwicGVuZGluZyI9PT10aGlzLl9zdGF0ZSYmKHRoaXMuX3N0YXRlPSJhY3RpdmUiLHRoaXMuZmlyZShuZXcgdC5FdmVudCgiZHJhZ3N0YXJ0IikpKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoImRyYWciKSl9LG4ucHJvdG90eXBlLl9vblVwPWZ1bmN0aW9uKCl7dGhpcy5fZWxlbWVudC5zdHlsZS5wb2ludGVyRXZlbnRzPSJhdXRvIix0aGlzLl9wb3NpdGlvbkRlbHRhPW51bGwsdGhpcy5fbWFwLm9mZigibW91c2Vtb3ZlIix0aGlzLl9vbk1vdmUpLHRoaXMuX21hcC5vZmYoInRvdWNobW92ZSIsdGhpcy5fb25Nb3ZlKSwiYWN0aXZlIj09PXRoaXMuX3N0YXRlJiZ0aGlzLmZpcmUobmV3IHQuRXZlbnQoImRyYWdlbmQiKSksdGhpcy5fc3RhdGU9ImluYWN0aXZlIn0sbi5wcm90b3R5cGUuX2FkZERyYWdIYW5kbGVyPWZ1bmN0aW9uKHQpe3RoaXMuX2VsZW1lbnQuY29udGFpbnModC5vcmlnaW5hbEV2ZW50LnRhcmdldCkmJih0LnByZXZlbnREZWZhdWx0KCksdGhpcy5fcG9zaXRpb25EZWx0YT10LnBvaW50LnN1Yih0aGlzLl9wb3MpLmFkZCh0aGlzLl9vZmZzZXQpLHRoaXMuX3N0YXRlPSJwZW5kaW5nIix0aGlzLl9tYXAub24oIm1vdXNlbW92ZSIsdGhpcy5fb25Nb3ZlKSx0aGlzLl9tYXAub24oInRvdWNobW92ZSIsdGhpcy5fb25Nb3ZlKSx0aGlzLl9tYXAub25jZSgibW91c2V1cCIsdGhpcy5fb25VcCksdGhpcy5fbWFwLm9uY2UoInRvdWNoZW5kIix0aGlzLl9vblVwKSl9LG4ucHJvdG90eXBlLnNldERyYWdnYWJsZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZHJhZ2dhYmxlPSEhdCx0aGlzLl9tYXAmJih0Pyh0aGlzLl9tYXAub24oIm1vdXNlZG93biIsdGhpcy5fYWRkRHJhZ0hhbmRsZXIpLHRoaXMuX21hcC5vbigidG91Y2hzdGFydCIsdGhpcy5fYWRkRHJhZ0hhbmRsZXIpKToodGhpcy5fbWFwLm9mZigibW91c2Vkb3duIix0aGlzLl9hZGREcmFnSGFuZGxlciksdGhpcy5fbWFwLm9mZigidG91Y2hzdGFydCIsdGhpcy5fYWRkRHJhZ0hhbmRsZXIpKSksdGhpc30sbi5wcm90b3R5cGUuaXNEcmFnZ2FibGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZHJhZ2dhYmxlfSxufSh0LkV2ZW50ZWQpLEhuPXtwb3NpdGlvbk9wdGlvbnM6e2VuYWJsZUhpZ2hBY2N1cmFjeTohMSxtYXhpbXVtQWdlOjAsdGltZW91dDo2ZTN9LGZpdEJvdW5kc09wdGlvbnM6e21heFpvb206MTV9LHRyYWNrVXNlckxvY2F0aW9uOiExLHNob3dVc2VyTG9jYXRpb246ITB9LEduPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIG4ocil7ZS5jYWxsKHRoaXMpLHRoaXMub3B0aW9ucz10LmV4dGVuZCh7fSxIbixyKSx0LmJpbmRBbGwoWyJfb25TdWNjZXNzIiwiX29uRXJyb3IiLCJfZmluaXNoIiwiX3NldHVwVUkiLCJfdXBkYXRlQ2FtZXJhIiwiX3VwZGF0ZU1hcmtlciJdLHRoaXMpfXJldHVybiBlJiYobi5fX3Byb3RvX189ZSksbi5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSksbi5wcm90b3R5cGUuY29uc3RydWN0b3I9bixuLnByb3RvdHlwZS5vbkFkZD1mdW5jdGlvbihlKXt2YXIgbjtyZXR1cm4gdGhpcy5fbWFwPWUsdGhpcy5fY29udGFpbmVyPXIuY3JlYXRlKCJkaXYiLCJtYXBib3hnbC1jdHJsIG1hcGJveGdsLWN0cmwtZ3JvdXAiKSxuPXRoaXMuX3NldHVwVUksdm9pZCAwIT09VW4/bihVbik6dm9pZCAwIT09dC53aW5kb3cubmF2aWdhdG9yLnBlcm1pc3Npb25zP3Qud2luZG93Lm5hdmlnYXRvci5wZXJtaXNzaW9ucy5xdWVyeSh7bmFtZToiZ2VvbG9jYXRpb24ifSkudGhlbihmdW5jdGlvbih0KXtVbj0iZGVuaWVkIiE9PXQuc3RhdGUsbihVbil9KTooVW49ISF0LndpbmRvdy5uYXZpZ2F0b3IuZ2VvbG9jYXRpb24sbihVbikpLHRoaXMuX2NvbnRhaW5lcn0sbi5wcm90b3R5cGUub25SZW1vdmU9ZnVuY3Rpb24oKXt2b2lkIDAhPT10aGlzLl9nZW9sb2NhdGlvbldhdGNoSUQmJih0LndpbmRvdy5uYXZpZ2F0b3IuZ2VvbG9jYXRpb24uY2xlYXJXYXRjaCh0aGlzLl9nZW9sb2NhdGlvbldhdGNoSUQpLHRoaXMuX2dlb2xvY2F0aW9uV2F0Y2hJRD12b2lkIDApLHRoaXMub3B0aW9ucy5zaG93VXNlckxvY2F0aW9uJiZ0aGlzLl91c2VyTG9jYXRpb25Eb3RNYXJrZXImJnRoaXMuX3VzZXJMb2NhdGlvbkRvdE1hcmtlci5yZW1vdmUoKSxyLnJlbW92ZSh0aGlzLl9jb250YWluZXIpLHRoaXMuX21hcD12b2lkIDB9LG4ucHJvdG90eXBlLl9vblN1Y2Nlc3M9ZnVuY3Rpb24oZSl7aWYodGhpcy5vcHRpb25zLnRyYWNrVXNlckxvY2F0aW9uKXN3aXRjaCh0aGlzLl9sYXN0S25vd25Qb3NpdGlvbj1lLHRoaXMuX3dhdGNoU3RhdGUpe2Nhc2UiV0FJVElOR19BQ1RJVkUiOmNhc2UiQUNUSVZFX0xPQ0siOmNhc2UiQUNUSVZFX0VSUk9SIjp0aGlzLl93YXRjaFN0YXRlPSJBQ1RJVkVfTE9DSyIsdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLXdhaXRpbmciKSx0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtYWN0aXZlLWVycm9yIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWFjdGl2ZSIpO2JyZWFrO2Nhc2UiQkFDS0dST1VORCI6Y2FzZSJCQUNLR1JPVU5EX0VSUk9SIjp0aGlzLl93YXRjaFN0YXRlPSJCQUNLR1JPVU5EIix0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtd2FpdGluZyIpLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS1iYWNrZ3JvdW5kLWVycm9yIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWJhY2tncm91bmQiKX10aGlzLm9wdGlvbnMuc2hvd1VzZXJMb2NhdGlvbiYmIk9GRiIhPT10aGlzLl93YXRjaFN0YXRlJiZ0aGlzLl91cGRhdGVNYXJrZXIoZSksdGhpcy5vcHRpb25zLnRyYWNrVXNlckxvY2F0aW9uJiYiQUNUSVZFX0xPQ0siIT09dGhpcy5fd2F0Y2hTdGF0ZXx8dGhpcy5fdXBkYXRlQ2FtZXJhKGUpLHRoaXMub3B0aW9ucy5zaG93VXNlckxvY2F0aW9uJiZ0aGlzLl9kb3RFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLXVzZXItbG9jYXRpb24tZG90LXN0YWxlIiksdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJnZW9sb2NhdGUiLGUpKSx0aGlzLl9maW5pc2goKX0sbi5wcm90b3R5cGUuX3VwZGF0ZUNhbWVyYT1mdW5jdGlvbihlKXt2YXIgcj1uZXcgdC5MbmdMYXQoZS5jb29yZHMubG9uZ2l0dWRlLGUuY29vcmRzLmxhdGl0dWRlKSxuPWUuY29vcmRzLmFjY3VyYWN5LGE9dGhpcy5fbWFwLmdldEJlYXJpbmcoKSxpPXQuZXh0ZW5kKHtiZWFyaW5nOmF9LHRoaXMub3B0aW9ucy5maXRCb3VuZHNPcHRpb25zKTt0aGlzLl9tYXAuZml0Qm91bmRzKHIudG9Cb3VuZHMobiksaSx7Z2VvbG9jYXRlU291cmNlOiEwfSl9LG4ucHJvdG90eXBlLl91cGRhdGVNYXJrZXI9ZnVuY3Rpb24odCl7dD90aGlzLl91c2VyTG9jYXRpb25Eb3RNYXJrZXIuc2V0TG5nTGF0KFt0LmNvb3Jkcy5sb25naXR1ZGUsdC5jb29yZHMubGF0aXR1ZGVdKS5hZGRUbyh0aGlzLl9tYXApOnRoaXMuX3VzZXJMb2NhdGlvbkRvdE1hcmtlci5yZW1vdmUoKX0sbi5wcm90b3R5cGUuX29uRXJyb3I9ZnVuY3Rpb24oZSl7aWYodGhpcy5vcHRpb25zLnRyYWNrVXNlckxvY2F0aW9uKWlmKDE9PT1lLmNvZGUpdGhpcy5fd2F0Y2hTdGF0ZT0iT0ZGIix0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtd2FpdGluZyIpLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS1hY3RpdmUiKSx0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtYWN0aXZlLWVycm9yIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWJhY2tncm91bmQiKSx0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtYmFja2dyb3VuZC1lcnJvciIpLHZvaWQgMCE9PXRoaXMuX2dlb2xvY2F0aW9uV2F0Y2hJRCYmdGhpcy5fY2xlYXJXYXRjaCgpO2Vsc2Ugc3dpdGNoKHRoaXMuX3dhdGNoU3RhdGUpe2Nhc2UiV0FJVElOR19BQ1RJVkUiOnRoaXMuX3dhdGNoU3RhdGU9IkFDVElWRV9FUlJPUiIsdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWFjdGl2ZSIpLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS1hY3RpdmUtZXJyb3IiKTticmVhaztjYXNlIkFDVElWRV9MT0NLIjp0aGlzLl93YXRjaFN0YXRlPSJBQ1RJVkVfRVJST1IiLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS1hY3RpdmUiKSx0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LmFkZCgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtYWN0aXZlLWVycm9yIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLXdhaXRpbmciKTticmVhaztjYXNlIkJBQ0tHUk9VTkQiOnRoaXMuX3dhdGNoU3RhdGU9IkJBQ0tHUk9VTkRfRVJST1IiLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS1iYWNrZ3JvdW5kIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWJhY2tncm91bmQtZXJyb3IiKSx0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LmFkZCgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtd2FpdGluZyIpfSJPRkYiIT09dGhpcy5fd2F0Y2hTdGF0ZSYmdGhpcy5vcHRpb25zLnNob3dVc2VyTG9jYXRpb24mJnRoaXMuX2RvdEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgibWFwYm94Z2wtdXNlci1sb2NhdGlvbi1kb3Qtc3RhbGUiKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoImVycm9yIixlKSksdGhpcy5fZmluaXNoKCl9LG4ucHJvdG90eXBlLl9maW5pc2g9ZnVuY3Rpb24oKXt0aGlzLl90aW1lb3V0SWQmJmNsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0SWQpLHRoaXMuX3RpbWVvdXRJZD12b2lkIDB9LG4ucHJvdG90eXBlLl9zZXR1cFVJPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7ITEhPT1lPyh0aGlzLl9jb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLGZ1bmN0aW9uKHQpe3JldHVybiB0LnByZXZlbnREZWZhdWx0KCl9KSx0aGlzLl9nZW9sb2NhdGVCdXR0b249ci5jcmVhdGUoImJ1dHRvbiIsIm1hcGJveGdsLWN0cmwtaWNvbiBtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZSIsdGhpcy5fY29udGFpbmVyKSx0aGlzLl9nZW9sb2NhdGVCdXR0b24udHlwZT0iYnV0dG9uIix0aGlzLl9nZW9sb2NhdGVCdXR0b24uc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIiwiR2VvbG9jYXRlIiksdGhpcy5vcHRpb25zLnRyYWNrVXNlckxvY2F0aW9uJiYodGhpcy5fZ2VvbG9jYXRlQnV0dG9uLnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIiwiZmFsc2UiKSx0aGlzLl93YXRjaFN0YXRlPSJPRkYiKSx0aGlzLm9wdGlvbnMuc2hvd1VzZXJMb2NhdGlvbiYmKHRoaXMuX2RvdEVsZW1lbnQ9ci5jcmVhdGUoImRpdiIsIm1hcGJveGdsLXVzZXItbG9jYXRpb24tZG90IiksdGhpcy5fdXNlckxvY2F0aW9uRG90TWFya2VyPW5ldyBxbih0aGlzLl9kb3RFbGVtZW50KSx0aGlzLm9wdGlvbnMudHJhY2tVc2VyTG9jYXRpb24mJih0aGlzLl93YXRjaFN0YXRlPSJPRkYiKSksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLnRyaWdnZXIuYmluZCh0aGlzKSksdGhpcy5fc2V0dXA9ITAsdGhpcy5vcHRpb25zLnRyYWNrVXNlckxvY2F0aW9uJiZ0aGlzLl9tYXAub24oIm1vdmVzdGFydCIsZnVuY3Rpb24oZSl7ZS5nZW9sb2NhdGVTb3VyY2V8fCJBQ1RJVkVfTE9DSyIhPT1uLl93YXRjaFN0YXRlfHwobi5fd2F0Y2hTdGF0ZT0iQkFDS0dST1VORCIsbi5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWJhY2tncm91bmQiKSxuLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtYWN0aXZlIiksbi5maXJlKG5ldyB0LkV2ZW50KCJ0cmFja3VzZXJsb2NhdGlvbmVuZCIpKSl9KSk6dC53YXJuT25jZSgiR2VvbG9jYXRpb24gc3VwcG9ydCBpcyBub3QgYXZhaWxhYmxlLCB0aGUgR2VvbG9jYXRlQ29udHJvbCB3aWxsIG5vdCBiZSB2aXNpYmxlLiIpfSxuLnByb3RvdHlwZS50cmlnZ2VyPWZ1bmN0aW9uKCl7aWYoIXRoaXMuX3NldHVwKXJldHVybiB0Lndhcm5PbmNlKCJHZW9sb2NhdGUgY29udHJvbCB0cmlnZ2VyZWQgYmVmb3JlIGFkZGVkIHRvIGEgbWFwIiksITE7aWYodGhpcy5vcHRpb25zLnRyYWNrVXNlckxvY2F0aW9uKXtzd2l0Y2godGhpcy5fd2F0Y2hTdGF0ZSl7Y2FzZSJPRkYiOnRoaXMuX3dhdGNoU3RhdGU9IldBSVRJTkdfQUNUSVZFIix0aGlzLmZpcmUobmV3IHQuRXZlbnQoInRyYWNrdXNlcmxvY2F0aW9uc3RhcnQiKSk7YnJlYWs7Y2FzZSJXQUlUSU5HX0FDVElWRSI6Y2FzZSJBQ1RJVkVfTE9DSyI6Y2FzZSJBQ1RJVkVfRVJST1IiOmNhc2UiQkFDS0dST1VORF9FUlJPUiI6dGhpcy5fd2F0Y2hTdGF0ZT0iT0ZGIix0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtd2FpdGluZyIpLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS1hY3RpdmUiKSx0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtYWN0aXZlLWVycm9yIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWJhY2tncm91bmQiKSx0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtYmFja2dyb3VuZC1lcnJvciIpLHRoaXMuZmlyZShuZXcgdC5FdmVudCgidHJhY2t1c2VybG9jYXRpb25lbmQiKSk7YnJlYWs7Y2FzZSJCQUNLR1JPVU5EIjp0aGlzLl93YXRjaFN0YXRlPSJBQ1RJVkVfTE9DSyIsdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWJhY2tncm91bmQiKSx0aGlzLl9sYXN0S25vd25Qb3NpdGlvbiYmdGhpcy5fdXBkYXRlQ2FtZXJhKHRoaXMuX2xhc3RLbm93blBvc2l0aW9uKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoInRyYWNrdXNlcmxvY2F0aW9uc3RhcnQiKSl9c3dpdGNoKHRoaXMuX3dhdGNoU3RhdGUpe2Nhc2UiV0FJVElOR19BQ1RJVkUiOnRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS13YWl0aW5nIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWFjdGl2ZSIpO2JyZWFrO2Nhc2UiQUNUSVZFX0xPQ0siOnRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS1hY3RpdmUiKTticmVhaztjYXNlIkFDVElWRV9FUlJPUiI6dGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLXdhaXRpbmciKSx0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LmFkZCgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtYWN0aXZlLWVycm9yIik7YnJlYWs7Y2FzZSJCQUNLR1JPVU5EIjp0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LmFkZCgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtYmFja2dyb3VuZCIpO2JyZWFrO2Nhc2UiQkFDS0dST1VORF9FUlJPUiI6dGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLXdhaXRpbmciKSx0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LmFkZCgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtYmFja2dyb3VuZC1lcnJvciIpfSJPRkYiPT09dGhpcy5fd2F0Y2hTdGF0ZSYmdm9pZCAwIT09dGhpcy5fZ2VvbG9jYXRpb25XYXRjaElEP3RoaXMuX2NsZWFyV2F0Y2goKTp2b2lkIDA9PT10aGlzLl9nZW9sb2NhdGlvbldhdGNoSUQmJih0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LmFkZCgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtd2FpdGluZyIpLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5zZXRBdHRyaWJ1dGUoImFyaWEtcHJlc3NlZCIsInRydWUiKSx0aGlzLl9nZW9sb2NhdGlvbldhdGNoSUQ9dC53aW5kb3cubmF2aWdhdG9yLmdlb2xvY2F0aW9uLndhdGNoUG9zaXRpb24odGhpcy5fb25TdWNjZXNzLHRoaXMuX29uRXJyb3IsdGhpcy5vcHRpb25zLnBvc2l0aW9uT3B0aW9ucykpfWVsc2UgdC53aW5kb3cubmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbih0aGlzLl9vblN1Y2Nlc3MsdGhpcy5fb25FcnJvcix0aGlzLm9wdGlvbnMucG9zaXRpb25PcHRpb25zKSx0aGlzLl90aW1lb3V0SWQ9c2V0VGltZW91dCh0aGlzLl9maW5pc2gsMWU0KTtyZXR1cm4hMH0sbi5wcm90b3R5cGUuX2NsZWFyV2F0Y2g9ZnVuY3Rpb24oKXt0LndpbmRvdy5uYXZpZ2F0b3IuZ2VvbG9jYXRpb24uY2xlYXJXYXRjaCh0aGlzLl9nZW9sb2NhdGlvbldhdGNoSUQpLHRoaXMuX2dlb2xvY2F0aW9uV2F0Y2hJRD12b2lkIDAsdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLXdhaXRpbmciKSx0aGlzLl9nZW9sb2NhdGVCdXR0b24uc2V0QXR0cmlidXRlKCJhcmlhLXByZXNzZWQiLCJmYWxzZSIpLHRoaXMub3B0aW9ucy5zaG93VXNlckxvY2F0aW9uJiZ0aGlzLl91cGRhdGVNYXJrZXIobnVsbCl9LG59KHQuRXZlbnRlZCksWW49e21heFdpZHRoOjEwMCx1bml0OiJtZXRyaWMifSxXbj1mdW5jdGlvbihlKXt0aGlzLm9wdGlvbnM9dC5leHRlbmQoe30sWW4sZSksdC5iaW5kQWxsKFsiX29uTW92ZSIsInNldFVuaXQiXSx0aGlzKX07ZnVuY3Rpb24gWG4odCxlLHIpe3ZhciBuLGEsaSxvLHMsbCxjPXImJnIubWF4V2lkdGh8fDEwMCx1PXQuX2NvbnRhaW5lci5jbGllbnRIZWlnaHQvMixoPShuPXQudW5wcm9qZWN0KFswLHVdKSxhPXQudW5wcm9qZWN0KFtjLHVdKSxpPU1hdGguUEkvMTgwLG89bi5sYXQqaSxzPWEubGF0KmksbD1NYXRoLnNpbihvKSpNYXRoLnNpbihzKStNYXRoLmNvcyhvKSpNYXRoLmNvcyhzKSpNYXRoLmNvcygoYS5sbmctbi5sbmcpKmkpLDYzNzFlMypNYXRoLmFjb3MoTWF0aC5taW4obCwxKSkpO2lmKHImJiJpbXBlcmlhbCI9PT1yLnVuaXQpe3ZhciBmPTMuMjgwOCpoO2Y+NTI4MD9abihlLGMsZi81MjgwLCJtaSIpOlpuKGUsYyxmLCJmdCIpfWVsc2UgciYmIm5hdXRpY2FsIj09PXIudW5pdD9abihlLGMsaC8xODUyLCJubSIpOlpuKGUsYyxoLCJtIil9ZnVuY3Rpb24gWm4odCxlLHIsbil7dmFyIGEsaSxvLHM9KGE9ciwoaT1NYXRoLnBvdygxMCwoIiIrTWF0aC5mbG9vcihhKSkubGVuZ3RoLTEpKSoobz0obz1hL2kpPj0xMD8xMDpvPj01PzU6bz49Mz8zOm8+PTI/MjpvPj0xPzE6ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5wb3coMTAsTWF0aC5jZWlsKC1NYXRoLmxvZyh0KS9NYXRoLkxOMTApKTtyZXR1cm4gTWF0aC5yb3VuZCh0KmUpL2V9KG8pKSksbD1zL3I7Im0iPT09biYmcz49MWUzJiYocy89MWUzLG49ImttIiksdC5zdHlsZS53aWR0aD1lKmwrInB4Iix0LmlubmVySFRNTD1zK259V24ucHJvdG90eXBlLmdldERlZmF1bHRQb3NpdGlvbj1mdW5jdGlvbigpe3JldHVybiJib3R0b20tbGVmdCJ9LFduLnByb3RvdHlwZS5fb25Nb3ZlPWZ1bmN0aW9uKCl7WG4odGhpcy5fbWFwLHRoaXMuX2NvbnRhaW5lcix0aGlzLm9wdGlvbnMpfSxXbi5wcm90b3R5cGUub25BZGQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX21hcD10LHRoaXMuX2NvbnRhaW5lcj1yLmNyZWF0ZSgiZGl2IiwibWFwYm94Z2wtY3RybCBtYXBib3hnbC1jdHJsLXNjYWxlIix0LmdldENvbnRhaW5lcigpKSx0aGlzLl9tYXAub24oIm1vdmUiLHRoaXMuX29uTW92ZSksdGhpcy5fb25Nb3ZlKCksdGhpcy5fY29udGFpbmVyfSxXbi5wcm90b3R5cGUub25SZW1vdmU9ZnVuY3Rpb24oKXtyLnJlbW92ZSh0aGlzLl9jb250YWluZXIpLHRoaXMuX21hcC5vZmYoIm1vdmUiLHRoaXMuX29uTW92ZSksdGhpcy5fbWFwPXZvaWQgMH0sV24ucHJvdG90eXBlLnNldFVuaXQ9ZnVuY3Rpb24odCl7dGhpcy5vcHRpb25zLnVuaXQ9dCxYbih0aGlzLl9tYXAsdGhpcy5fY29udGFpbmVyLHRoaXMub3B0aW9ucyl9O3ZhciBKbj1mdW5jdGlvbihlKXt0aGlzLl9mdWxsc2NyZWVuPSExLGUmJmUuY29udGFpbmVyJiYoZS5jb250YWluZXIgaW5zdGFuY2VvZiB0LndpbmRvdy5IVE1MRWxlbWVudD90aGlzLl9jb250YWluZXI9ZS5jb250YWluZXI6dC53YXJuT25jZSgiRnVsbCBzY3JlZW4gY29udHJvbCAnY29udGFpbmVyJyBtdXN0IGJlIGEgRE9NIGVsZW1lbnQuIikpLHQuYmluZEFsbChbIl9vbkNsaWNrRnVsbHNjcmVlbiIsIl9jaGFuZ2VJY29uIl0sdGhpcyksIm9uZnVsbHNjcmVlbmNoYW5nZSJpbiB0LndpbmRvdy5kb2N1bWVudD90aGlzLl9mdWxsc2NyZWVuY2hhbmdlPSJmdWxsc2NyZWVuY2hhbmdlIjoib25tb3pmdWxsc2NyZWVuY2hhbmdlImluIHQud2luZG93LmRvY3VtZW50P3RoaXMuX2Z1bGxzY3JlZW5jaGFuZ2U9Im1vemZ1bGxzY3JlZW5jaGFuZ2UiOiJvbndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UiaW4gdC53aW5kb3cuZG9jdW1lbnQ/dGhpcy5fZnVsbHNjcmVlbmNoYW5nZT0id2Via2l0ZnVsbHNjcmVlbmNoYW5nZSI6Im9ubXNmdWxsc2NyZWVuY2hhbmdlImluIHQud2luZG93LmRvY3VtZW50JiYodGhpcy5fZnVsbHNjcmVlbmNoYW5nZT0iTVNGdWxsc2NyZWVuQ2hhbmdlIiksdGhpcy5fY2xhc3NOYW1lPSJtYXBib3hnbC1jdHJsIn07Sm4ucHJvdG90eXBlLm9uQWRkPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9tYXA9ZSx0aGlzLl9jb250YWluZXJ8fCh0aGlzLl9jb250YWluZXI9dGhpcy5fbWFwLmdldENvbnRhaW5lcigpKSx0aGlzLl9jb250cm9sQ29udGFpbmVyPXIuY3JlYXRlKCJkaXYiLHRoaXMuX2NsYXNzTmFtZSsiIG1hcGJveGdsLWN0cmwtZ3JvdXAiKSx0aGlzLl9jaGVja0Z1bGxzY3JlZW5TdXBwb3J0KCk/dGhpcy5fc2V0dXBVSSgpOih0aGlzLl9jb250cm9sQ29udGFpbmVyLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHQud2Fybk9uY2UoIlRoaXMgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQgZnVsbHNjcmVlbiBtb2RlLiIpKSx0aGlzLl9jb250cm9sQ29udGFpbmVyfSxKbi5wcm90b3R5cGUub25SZW1vdmU9ZnVuY3Rpb24oKXtyLnJlbW92ZSh0aGlzLl9jb250cm9sQ29udGFpbmVyKSx0aGlzLl9tYXA9bnVsbCx0LndpbmRvdy5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKHRoaXMuX2Z1bGxzY3JlZW5jaGFuZ2UsdGhpcy5fY2hhbmdlSWNvbil9LEpuLnByb3RvdHlwZS5fY2hlY2tGdWxsc2NyZWVuU3VwcG9ydD1mdW5jdGlvbigpe3JldHVybiEhKHQud2luZG93LmRvY3VtZW50LmZ1bGxzY3JlZW5FbmFibGVkfHx0LndpbmRvdy5kb2N1bWVudC5tb3pGdWxsU2NyZWVuRW5hYmxlZHx8dC53aW5kb3cuZG9jdW1lbnQubXNGdWxsc2NyZWVuRW5hYmxlZHx8dC53aW5kb3cuZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQpfSxKbi5wcm90b3R5cGUuX3NldHVwVUk9ZnVuY3Rpb24oKXsodGhpcy5fZnVsbHNjcmVlbkJ1dHRvbj1yLmNyZWF0ZSgiYnV0dG9uIix0aGlzLl9jbGFzc05hbWUrIi1pY29uICIrdGhpcy5fY2xhc3NOYW1lKyItZnVsbHNjcmVlbiIsdGhpcy5fY29udHJvbENvbnRhaW5lcikpLnR5cGU9ImJ1dHRvbiIsdGhpcy5fdXBkYXRlVGl0bGUoKSx0aGlzLl9mdWxsc2NyZWVuQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9vbkNsaWNrRnVsbHNjcmVlbiksdC53aW5kb3cuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLl9mdWxsc2NyZWVuY2hhbmdlLHRoaXMuX2NoYW5nZUljb24pfSxKbi5wcm90b3R5cGUuX3VwZGF0ZVRpdGxlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5faXNGdWxsc2NyZWVuKCk/IkV4aXQgZnVsbHNjcmVlbiI6IkVudGVyIGZ1bGxzY3JlZW4iO3RoaXMuX2Z1bGxzY3JlZW5CdXR0b24uc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIix0KSx0aGlzLl9mdWxsc2NyZWVuQnV0dG9uLnRpdGxlPXR9LEpuLnByb3RvdHlwZS5faXNGdWxsc2NyZWVuPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Z1bGxzY3JlZW59LEpuLnByb3RvdHlwZS5fY2hhbmdlSWNvbj1mdW5jdGlvbigpeyh0LndpbmRvdy5kb2N1bWVudC5mdWxsc2NyZWVuRWxlbWVudHx8dC53aW5kb3cuZG9jdW1lbnQubW96RnVsbFNjcmVlbkVsZW1lbnR8fHQud2luZG93LmRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbGVtZW50fHx0LndpbmRvdy5kb2N1bWVudC5tc0Z1bGxzY3JlZW5FbGVtZW50KT09PXRoaXMuX2NvbnRhaW5lciE9PXRoaXMuX2Z1bGxzY3JlZW4mJih0aGlzLl9mdWxsc2NyZWVuPSF0aGlzLl9mdWxsc2NyZWVuLHRoaXMuX2Z1bGxzY3JlZW5CdXR0b24uY2xhc3NMaXN0LnRvZ2dsZSh0aGlzLl9jbGFzc05hbWUrIi1zaHJpbmsiKSx0aGlzLl9mdWxsc2NyZWVuQnV0dG9uLmNsYXNzTGlzdC50b2dnbGUodGhpcy5fY2xhc3NOYW1lKyItZnVsbHNjcmVlbiIpLHRoaXMuX3VwZGF0ZVRpdGxlKCkpfSxKbi5wcm90b3R5cGUuX29uQ2xpY2tGdWxsc2NyZWVuPWZ1bmN0aW9uKCl7dGhpcy5faXNGdWxsc2NyZWVuKCk/dC53aW5kb3cuZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4/dC53aW5kb3cuZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4oKTp0LndpbmRvdy5kb2N1bWVudC5tb3pDYW5jZWxGdWxsU2NyZWVuP3Qud2luZG93LmRvY3VtZW50Lm1vekNhbmNlbEZ1bGxTY3JlZW4oKTp0LndpbmRvdy5kb2N1bWVudC5tc0V4aXRGdWxsc2NyZWVuP3Qud2luZG93LmRvY3VtZW50Lm1zRXhpdEZ1bGxzY3JlZW4oKTp0LndpbmRvdy5kb2N1bWVudC53ZWJraXRDYW5jZWxGdWxsU2NyZWVuJiZ0LndpbmRvdy5kb2N1bWVudC53ZWJraXRDYW5jZWxGdWxsU2NyZWVuKCk6dGhpcy5fY29udGFpbmVyLnJlcXVlc3RGdWxsc2NyZWVuP3RoaXMuX2NvbnRhaW5lci5yZXF1ZXN0RnVsbHNjcmVlbigpOnRoaXMuX2NvbnRhaW5lci5tb3pSZXF1ZXN0RnVsbFNjcmVlbj90aGlzLl9jb250YWluZXIubW96UmVxdWVzdEZ1bGxTY3JlZW4oKTp0aGlzLl9jb250YWluZXIubXNSZXF1ZXN0RnVsbHNjcmVlbj90aGlzLl9jb250YWluZXIubXNSZXF1ZXN0RnVsbHNjcmVlbigpOnRoaXMuX2NvbnRhaW5lci53ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbiYmdGhpcy5fY29udGFpbmVyLndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuKCl9O3ZhciBLbj17Y2xvc2VCdXR0b246ITAsY2xvc2VPbkNsaWNrOiEwLGNsYXNzTmFtZToiIixtYXhXaWR0aDoiMjQwcHgifSxRbj1mdW5jdGlvbihlKXtmdW5jdGlvbiBuKHIpe2UuY2FsbCh0aGlzKSx0aGlzLm9wdGlvbnM9dC5leHRlbmQoT2JqZWN0LmNyZWF0ZShLbiksciksdC5iaW5kQWxsKFsiX3VwZGF0ZSIsIl9vbkNsaWNrQ2xvc2UiLCJyZW1vdmUiXSx0aGlzKX1yZXR1cm4gZSYmKG4uX19wcm90b19fPWUpLG4ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUpLG4ucHJvdG90eXBlLmNvbnN0cnVjdG9yPW4sbi5wcm90b3R5cGUuYWRkVG89ZnVuY3Rpb24oZSl7dmFyIHI9dGhpcztyZXR1cm4gdGhpcy5fbWFwPWUsdGhpcy5vcHRpb25zLmNsb3NlT25DbGljayYmdGhpcy5fbWFwLm9uKCJjbGljayIsdGhpcy5fb25DbGlja0Nsb3NlKSx0aGlzLl9tYXAub24oInJlbW92ZSIsdGhpcy5yZW1vdmUpLHRoaXMuX3VwZGF0ZSgpLHRoaXMuX3RyYWNrUG9pbnRlcj8odGhpcy5fbWFwLm9uKCJtb3VzZW1vdmUiLGZ1bmN0aW9uKHQpe3IuX3VwZGF0ZSh0LnBvaW50KX0pLHRoaXMuX21hcC5vbigibW91c2V1cCIsZnVuY3Rpb24odCl7ci5fdXBkYXRlKHQucG9pbnQpfSksdGhpcy5fY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLXBvcHVwLXRyYWNrLXBvaW50ZXIiKSx0aGlzLl9tYXAuX2NhbnZhc0NvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC10cmFjay1wb2ludGVyIikpOnRoaXMuX21hcC5vbigibW92ZSIsdGhpcy5fdXBkYXRlKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoIm9wZW4iKSksdGhpc30sbi5wcm90b3R5cGUuaXNPcGVuPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLl9tYXB9LG4ucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb250ZW50JiZyLnJlbW92ZSh0aGlzLl9jb250ZW50KSx0aGlzLl9jb250YWluZXImJihyLnJlbW92ZSh0aGlzLl9jb250YWluZXIpLGRlbGV0ZSB0aGlzLl9jb250YWluZXIpLHRoaXMuX21hcCYmKHRoaXMuX21hcC5vZmYoIm1vdmUiLHRoaXMuX3VwZGF0ZSksdGhpcy5fbWFwLm9mZigiY2xpY2siLHRoaXMuX29uQ2xpY2tDbG9zZSksdGhpcy5fbWFwLm9mZigicmVtb3ZlIix0aGlzLnJlbW92ZSksdGhpcy5fbWFwLm9mZigibW91c2Vtb3ZlIiksZGVsZXRlIHRoaXMuX21hcCksdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJjbG9zZSIpKSx0aGlzfSxuLnByb3RvdHlwZS5nZXRMbmdMYXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbG5nTGF0fSxuLnByb3RvdHlwZS5zZXRMbmdMYXQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2xuZ0xhdD10LkxuZ0xhdC5jb252ZXJ0KGUpLHRoaXMuX3Bvcz1udWxsLHRoaXMuX3RyYWNrUG9pbnRlcj0hMSx0aGlzLl91cGRhdGUoKSx0aGlzLl9tYXAmJih0aGlzLl9tYXAub24oIm1vdmUiLHRoaXMuX3VwZGF0ZSksdGhpcy5fbWFwLm9mZigibW91c2Vtb3ZlIiksdGhpcy5fY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLXBvcHVwLXRyYWNrLXBvaW50ZXIiKSx0aGlzLl9tYXAuX2NhbnZhc0NvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKCJtYXBib3hnbC10cmFjay1wb2ludGVyIikpLHRoaXN9LG4ucHJvdG90eXBlLnRyYWNrUG9pbnRlcj1mdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuX3RyYWNrUG9pbnRlcj0hMCx0aGlzLl9wb3M9bnVsbCx0aGlzLl9tYXAmJih0aGlzLl9tYXAub2ZmKCJtb3ZlIix0aGlzLl91cGRhdGUpLHRoaXMuX21hcC5vbigibW91c2Vtb3ZlIixmdW5jdGlvbihlKXt0Ll91cGRhdGUoZS5wb2ludCl9KSx0aGlzLl9tYXAub24oImRyYWciLGZ1bmN0aW9uKGUpe3QuX3VwZGF0ZShlLnBvaW50KX0pLHRoaXMuX2NvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC1wb3B1cC10cmFjay1wb2ludGVyIiksdGhpcy5fbWFwLl9jYW52YXNDb250YWluZXIuY2xhc3NMaXN0LmFkZCgibWFwYm94Z2wtdHJhY2stcG9pbnRlciIpKSx0aGlzfSxuLnByb3RvdHlwZS5nZXRFbGVtZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvbnRhaW5lcn0sbi5wcm90b3R5cGUuc2V0VGV4dD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5zZXRET01Db250ZW50KHQud2luZG93LmRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGUpKX0sbi5wcm90b3R5cGUuc2V0SFRNTD1mdW5jdGlvbihlKXt2YXIgcixuPXQud2luZG93LmRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxhPXQud2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJvZHkiKTtmb3IoYS5pbm5lckhUTUw9ZTtyPWEuZmlyc3RDaGlsZDspbi5hcHBlbmRDaGlsZChyKTtyZXR1cm4gdGhpcy5zZXRET01Db250ZW50KG4pfSxuLnByb3RvdHlwZS5nZXRNYXhXaWR0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb250YWluZXIuc3R5bGUubWF4V2lkdGh9LG4ucHJvdG90eXBlLnNldE1heFdpZHRoPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm9wdGlvbnMubWF4V2lkdGg9dCx0aGlzLl91cGRhdGUoKSx0aGlzfSxuLnByb3RvdHlwZS5zZXRET01Db250ZW50PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9jcmVhdGVDb250ZW50KCksdGhpcy5fY29udGVudC5hcHBlbmRDaGlsZCh0KSx0aGlzLl91cGRhdGUoKSx0aGlzfSxuLnByb3RvdHlwZS5fY3JlYXRlQ29udGVudD1mdW5jdGlvbigpe3RoaXMuX2NvbnRlbnQmJnIucmVtb3ZlKHRoaXMuX2NvbnRlbnQpLHRoaXMuX2NvbnRlbnQ9ci5jcmVhdGUoImRpdiIsIm1hcGJveGdsLXBvcHVwLWNvbnRlbnQiLHRoaXMuX2NvbnRhaW5lciksdGhpcy5vcHRpb25zLmNsb3NlQnV0dG9uJiYodGhpcy5fY2xvc2VCdXR0b249ci5jcmVhdGUoImJ1dHRvbiIsIm1hcGJveGdsLXBvcHVwLWNsb3NlLWJ1dHRvbiIsdGhpcy5fY29udGVudCksdGhpcy5fY2xvc2VCdXR0b24udHlwZT0iYnV0dG9uIix0aGlzLl9jbG9zZUJ1dHRvbi5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLCJDbG9zZSBwb3B1cCIpLHRoaXMuX2Nsb3NlQnV0dG9uLmlubmVySFRNTD0iJiMyMTU7Iix0aGlzLl9jbG9zZUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5fb25DbGlja0Nsb3NlKSl9LG4ucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcyxhPXRoaXMuX2xuZ0xhdHx8dGhpcy5fdHJhY2tQb2ludGVyO2lmKHRoaXMuX21hcCYmYSYmdGhpcy5fY29udGVudCYmKHRoaXMuX2NvbnRhaW5lcnx8KHRoaXMuX2NvbnRhaW5lcj1yLmNyZWF0ZSgiZGl2IiwibWFwYm94Z2wtcG9wdXAiLHRoaXMuX21hcC5nZXRDb250YWluZXIoKSksdGhpcy5fdGlwPXIuY3JlYXRlKCJkaXYiLCJtYXBib3hnbC1wb3B1cC10aXAiLHRoaXMuX2NvbnRhaW5lciksdGhpcy5fY29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuX2NvbnRlbnQpLHRoaXMub3B0aW9ucy5jbGFzc05hbWUmJnRoaXMub3B0aW9ucy5jbGFzc05hbWUuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBuLl9jb250YWluZXIuY2xhc3NMaXN0LmFkZCh0KX0pKSx0aGlzLm9wdGlvbnMubWF4V2lkdGgmJnRoaXMuX2NvbnRhaW5lci5zdHlsZS5tYXhXaWR0aCE9PXRoaXMub3B0aW9ucy5tYXhXaWR0aCYmKHRoaXMuX2NvbnRhaW5lci5zdHlsZS5tYXhXaWR0aD10aGlzLm9wdGlvbnMubWF4V2lkdGgpLHRoaXMuX21hcC50cmFuc2Zvcm0ucmVuZGVyV29ybGRDb3BpZXMmJiF0aGlzLl90cmFja1BvaW50ZXImJih0aGlzLl9sbmdMYXQ9Tm4odGhpcy5fbG5nTGF0LHRoaXMuX3Bvcyx0aGlzLl9tYXAudHJhbnNmb3JtKSksIXRoaXMuX3RyYWNrUG9pbnRlcnx8ZSkpe3ZhciBpPXRoaXMuX3Bvcz10aGlzLl90cmFja1BvaW50ZXImJmU/ZTp0aGlzLl9tYXAucHJvamVjdCh0aGlzLl9sbmdMYXQpLG89dGhpcy5vcHRpb25zLmFuY2hvcixzPWZ1bmN0aW9uIGUocil7aWYocil7aWYoIm51bWJlciI9PXR5cGVvZiByKXt2YXIgbj1NYXRoLnJvdW5kKE1hdGguc3FydCguNSpNYXRoLnBvdyhyLDIpKSk7cmV0dXJue2NlbnRlcjpuZXcgdC5Qb2ludCgwLDApLHRvcDpuZXcgdC5Qb2ludCgwLHIpLCJ0b3AtbGVmdCI6bmV3IHQuUG9pbnQobixuKSwidG9wLXJpZ2h0IjpuZXcgdC5Qb2ludCgtbixuKSxib3R0b206bmV3IHQuUG9pbnQoMCwtciksImJvdHRvbS1sZWZ0IjpuZXcgdC5Qb2ludChuLC1uKSwiYm90dG9tLXJpZ2h0IjpuZXcgdC5Qb2ludCgtbiwtbiksbGVmdDpuZXcgdC5Qb2ludChyLDApLHJpZ2h0Om5ldyB0LlBvaW50KC1yLDApfX1pZihyIGluc3RhbmNlb2YgdC5Qb2ludHx8QXJyYXkuaXNBcnJheShyKSl7dmFyIGE9dC5Qb2ludC5jb252ZXJ0KHIpO3JldHVybntjZW50ZXI6YSx0b3A6YSwidG9wLWxlZnQiOmEsInRvcC1yaWdodCI6YSxib3R0b206YSwiYm90dG9tLWxlZnQiOmEsImJvdHRvbS1yaWdodCI6YSxsZWZ0OmEscmlnaHQ6YX19cmV0dXJue2NlbnRlcjp0LlBvaW50LmNvbnZlcnQoci5jZW50ZXJ8fFswLDBdKSx0b3A6dC5Qb2ludC5jb252ZXJ0KHIudG9wfHxbMCwwXSksInRvcC1sZWZ0Ijp0LlBvaW50LmNvbnZlcnQoclsidG9wLWxlZnQiXXx8WzAsMF0pLCJ0b3AtcmlnaHQiOnQuUG9pbnQuY29udmVydChyWyJ0b3AtcmlnaHQiXXx8WzAsMF0pLGJvdHRvbTp0LlBvaW50LmNvbnZlcnQoci5ib3R0b218fFswLDBdKSwiYm90dG9tLWxlZnQiOnQuUG9pbnQuY29udmVydChyWyJib3R0b20tbGVmdCJdfHxbMCwwXSksImJvdHRvbS1yaWdodCI6dC5Qb2ludC5jb252ZXJ0KHJbImJvdHRvbS1yaWdodCJdfHxbMCwwXSksbGVmdDp0LlBvaW50LmNvbnZlcnQoci5sZWZ0fHxbMCwwXSkscmlnaHQ6dC5Qb2ludC5jb252ZXJ0KHIucmlnaHR8fFswLDBdKX19cmV0dXJuIGUobmV3IHQuUG9pbnQoMCwwKSl9KHRoaXMub3B0aW9ucy5vZmZzZXQpO2lmKCFvKXt2YXIgbCxjPXRoaXMuX2NvbnRhaW5lci5vZmZzZXRXaWR0aCx1PXRoaXMuX2NvbnRhaW5lci5vZmZzZXRIZWlnaHQ7bD1pLnkrcy5ib3R0b20ueTx1P1sidG9wIl06aS55PnRoaXMuX21hcC50cmFuc2Zvcm0uaGVpZ2h0LXU/WyJib3R0b20iXTpbXSxpLng8Yy8yP2wucHVzaCgibGVmdCIpOmkueD50aGlzLl9tYXAudHJhbnNmb3JtLndpZHRoLWMvMiYmbC5wdXNoKCJyaWdodCIpLG89MD09PWwubGVuZ3RoPyJib3R0b20iOmwuam9pbigiLSIpfXZhciBoPWkuYWRkKHNbb10pLnJvdW5kKCk7ci5zZXRUcmFuc2Zvcm0odGhpcy5fY29udGFpbmVyLGpuW29dKyIgdHJhbnNsYXRlKCIraC54KyJweCwiK2gueSsicHgpIiksVm4odGhpcy5fY29udGFpbmVyLG8sInBvcHVwIil9fSxuLnByb3RvdHlwZS5fb25DbGlja0Nsb3NlPWZ1bmN0aW9uKCl7dGhpcy5yZW1vdmUoKX0sbn0odC5FdmVudGVkKSwkbj17dmVyc2lvbjp0LnZlcnNpb24sc3VwcG9ydGVkOmUsc2V0UlRMVGV4dFBsdWdpbjp0LnNldFJUTFRleHRQbHVnaW4sTWFwOkRuLE5hdmlnYXRpb25Db250cm9sOkJuLEdlb2xvY2F0ZUNvbnRyb2w6R24sQXR0cmlidXRpb25Db250cm9sOkxuLFNjYWxlQ29udHJvbDpXbixGdWxsc2NyZWVuQ29udHJvbDpKbixQb3B1cDpRbixNYXJrZXI6cW4sU3R5bGU6UmUsTG5nTGF0OnQuTG5nTGF0LExuZ0xhdEJvdW5kczp0LkxuZ0xhdEJvdW5kcyxQb2ludDp0LlBvaW50LE1lcmNhdG9yQ29vcmRpbmF0ZTp0Lk1lcmNhdG9yQ29vcmRpbmF0ZSxFdmVudGVkOnQuRXZlbnRlZCxjb25maWc6dC5jb25maWcsZ2V0IGFjY2Vzc1Rva2VuKCl7cmV0dXJuIHQuY29uZmlnLkFDQ0VTU19UT0tFTn0sc2V0IGFjY2Vzc1Rva2VuKGUpe3QuY29uZmlnLkFDQ0VTU19UT0tFTj1lfSxnZXQgYmFzZUFwaVVybCgpe3JldHVybiB0LmNvbmZpZy5BUElfVVJMfSxzZXQgYmFzZUFwaVVybChlKXt0LmNvbmZpZy5BUElfVVJMPWV9LGdldCB3b3JrZXJDb3VudCgpe3JldHVybiBJdC53b3JrZXJDb3VudH0sc2V0IHdvcmtlckNvdW50KHQpe0l0LndvcmtlckNvdW50PXR9LGdldCBtYXhQYXJhbGxlbEltYWdlUmVxdWVzdHMoKXtyZXR1cm4gdC5jb25maWcuTUFYX1BBUkFMTEVMX0lNQUdFX1JFUVVFU1RTfSxzZXQgbWF4UGFyYWxsZWxJbWFnZVJlcXVlc3RzKGUpe3QuY29uZmlnLk1BWF9QQVJBTExFTF9JTUFHRV9SRVFVRVNUUz1lfSxjbGVhclN0b3JhZ2U6ZnVuY3Rpb24oZSl7dC5jbGVhclRpbGVDYWNoZShlKX0sd29ya2VyVXJsOiIifTtyZXR1cm4gJG59KSxyfSwib2JqZWN0Ij09dHlwZW9mIHImJiJ1bmRlZmluZWQiIT10eXBlb2YgZT9lLmV4cG9ydHM9YSgpOihuPW58fHNlbGYpLm1hcGJveGdsPWEoKX0se31dLDQyOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE8PHQrMSxyPW5ldyBBcnJheShlKSxuPTA7bjxlOysrbilyW25dPWkodCxuKTtyZXR1cm4gcn07dmFyIG49dCgiY29udmV4LWh1bGwiKTtmdW5jdGlvbiBhKHQsZSxyKXtmb3IodmFyIG49bmV3IEFycmF5KHQpLGE9MDthPHQ7KythKW5bYV09MCxhPT09ZSYmKG5bYV0rPS41KSxhPT09ciYmKG5bYV0rPS41KTtyZXR1cm4gbn1mdW5jdGlvbiBpKHQsZSl7aWYoMD09PWV8fGU9PT0oMTw8dCsxKS0xKXJldHVybltdO2Zvcih2YXIgcj1bXSxpPVtdLG89MDtvPD10OysrbylpZihlJjE8PG8pe3IucHVzaChhKHQsby0xLG8tMSkpLGkucHVzaChudWxsKTtmb3IodmFyIHM9MDtzPD10Oysrcyl+ZSYxPDxzJiYoci5wdXNoKGEodCxvLTEscy0xKSksaS5wdXNoKFtvLHNdKSl9dmFyIGw9bihyKSxjPVtdO3Q6Zm9yKG89MDtvPGwubGVuZ3RoOysrbyl7dmFyIHU9bFtvXSxoPVtdO2ZvcihzPTA7czx1Lmxlbmd0aDsrK3Mpe2lmKCFpW3Vbc11dKWNvbnRpbnVlIHQ7aC5wdXNoKGlbdVtzXV0uc2xpY2UoKSl9Yy5wdXNoKGgpfXJldHVybiBjfX0seyJjb252ZXgtaHVsbCI6MTMyfV0sNDMwOltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi9ub3JtYWxpemUiKSxhPXQoImdsLW1hdDQvY3JlYXRlIiksaT10KCJnbC1tYXQ0L2Nsb25lIiksbz10KCJnbC1tYXQ0L2RldGVybWluYW50Iikscz10KCJnbC1tYXQ0L2ludmVydCIpLGw9dCgiZ2wtbWF0NC90cmFuc3Bvc2UiKSxjPXtsZW5ndGg6dCgiZ2wtdmVjMy9sZW5ndGgiKSxub3JtYWxpemU6dCgiZ2wtdmVjMy9ub3JtYWxpemUiKSxkb3Q6dCgiZ2wtdmVjMy9kb3QiKSxjcm9zczp0KCJnbC12ZWMzL2Nyb3NzIil9LHU9YSgpLGg9YSgpLGY9WzAsMCwwLDBdLHA9W1swLDAsMF0sWzAsMCwwXSxbMCwwLDBdXSxkPVswLDAsMF07ZnVuY3Rpb24gZyh0LGUscixuLGEpe3RbMF09ZVswXSpuK3JbMF0qYSx0WzFdPWVbMV0qbityWzFdKmEsdFsyXT1lWzJdKm4rclsyXSphfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhLHYsbSl7aWYoZXx8KGU9WzAsMCwwXSkscnx8KHI9WzAsMCwwXSksYXx8KGE9WzAsMCwwXSksdnx8KHY9WzAsMCwwLDFdKSxtfHwobT1bMCwwLDAsMV0pLCFuKHUsdCkpcmV0dXJuITE7aWYoaShoLHUpLGhbM109MCxoWzddPTAsaFsxMV09MCxoWzE1XT0xLE1hdGguYWJzKG8oaCk8MWUtOCkpcmV0dXJuITE7dmFyIHkseCxiLF8sdyxrLFQsTT11WzNdLEE9dVs3XSxTPXVbMTFdLEU9dVsxMl0sTD11WzEzXSxDPXVbMTRdLFA9dVsxNV07aWYoMCE9PU18fDAhPT1BfHwwIT09Uyl7aWYoZlswXT1NLGZbMV09QSxmWzJdPVMsZlszXT1QLCFzKGgsaCkpcmV0dXJuITE7bChoLGgpLHk9dixiPWgsXz0oeD1mKVswXSx3PXhbMV0saz14WzJdLFQ9eFszXSx5WzBdPWJbMF0qXytiWzRdKncrYls4XSprK2JbMTJdKlQseVsxXT1iWzFdKl8rYls1XSp3K2JbOV0qaytiWzEzXSpULHlbMl09YlsyXSpfK2JbNl0qdytiWzEwXSprK2JbMTRdKlQseVszXT1iWzNdKl8rYls3XSp3K2JbMTFdKmsrYlsxNV0qVH1lbHNlIHZbMF09dlsxXT12WzJdPTAsdlszXT0xO2lmKGVbMF09RSxlWzFdPUwsZVsyXT1DLGZ1bmN0aW9uKHQsZSl7dFswXVswXT1lWzBdLHRbMF1bMV09ZVsxXSx0WzBdWzJdPWVbMl0sdFsxXVswXT1lWzRdLHRbMV1bMV09ZVs1XSx0WzFdWzJdPWVbNl0sdFsyXVswXT1lWzhdLHRbMl1bMV09ZVs5XSx0WzJdWzJdPWVbMTBdfShwLHUpLHJbMF09Yy5sZW5ndGgocFswXSksYy5ub3JtYWxpemUocFswXSxwWzBdKSxhWzBdPWMuZG90KHBbMF0scFsxXSksZyhwWzFdLHBbMV0scFswXSwxLC1hWzBdKSxyWzFdPWMubGVuZ3RoKHBbMV0pLGMubm9ybWFsaXplKHBbMV0scFsxXSksYVswXS89clsxXSxhWzFdPWMuZG90KHBbMF0scFsyXSksZyhwWzJdLHBbMl0scFswXSwxLC1hWzFdKSxhWzJdPWMuZG90KHBbMV0scFsyXSksZyhwWzJdLHBbMl0scFsxXSwxLC1hWzJdKSxyWzJdPWMubGVuZ3RoKHBbMl0pLGMubm9ybWFsaXplKHBbMl0scFsyXSksYVsxXS89clsyXSxhWzJdLz1yWzJdLGMuY3Jvc3MoZCxwWzFdLHBbMl0pLGMuZG90KHBbMF0sZCk8MClmb3IodmFyIE89MDtPPDM7TysrKXJbT10qPS0xLHBbT11bMF0qPS0xLHBbT11bMV0qPS0xLHBbT11bMl0qPS0xO3JldHVybiBtWzBdPS41Kk1hdGguc3FydChNYXRoLm1heCgxK3BbMF1bMF0tcFsxXVsxXS1wWzJdWzJdLDApKSxtWzFdPS41Kk1hdGguc3FydChNYXRoLm1heCgxLXBbMF1bMF0rcFsxXVsxXS1wWzJdWzJdLDApKSxtWzJdPS41Kk1hdGguc3FydChNYXRoLm1heCgxLXBbMF1bMF0tcFsxXVsxXStwWzJdWzJdLDApKSxtWzNdPS41Kk1hdGguc3FydChNYXRoLm1heCgxK3BbMF1bMF0rcFsxXVsxXStwWzJdWzJdLDApKSxwWzJdWzFdPnBbMV1bMl0mJihtWzBdPS1tWzBdKSxwWzBdWzJdPnBbMl1bMF0mJihtWzFdPS1tWzFdKSxwWzFdWzBdPnBbMF1bMV0mJihtWzJdPS1tWzJdKSwhMH19LHsiLi9ub3JtYWxpemUiOjQzMSwiZ2wtbWF0NC9jbG9uZSI6MjYyLCJnbC1tYXQ0L2NyZWF0ZSI6MjYzLCJnbC1tYXQ0L2RldGVybWluYW50IjoyNjQsImdsLW1hdDQvaW52ZXJ0IjoyNjgsImdsLW1hdDQvdHJhbnNwb3NlIjoyNzksImdsLXZlYzMvY3Jvc3MiOjMzNiwiZ2wtdmVjMy9kb3QiOjM0MSwiZ2wtdmVjMy9sZW5ndGgiOjM1MSwiZ2wtdmVjMy9ub3JtYWxpemUiOjM1OH1dLDQzMTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWVbMTVdO2lmKDA9PT1yKXJldHVybiExO2Zvcih2YXIgbj0xL3IsYT0wO2E8MTY7YSsrKXRbYV09ZVthXSpuO3JldHVybiEwfX0se31dLDQzMjpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoImdsLXZlYzMvbGVycCIpLGE9dCgibWF0NC1yZWNvbXBvc2UiKSxpPXQoIm1hdDQtZGVjb21wb3NlIiksbz10KCJnbC1tYXQ0L2RldGVybWluYW50Iikscz10KCJxdWF0LXNsZXJwIiksbD1oKCksYz1oKCksdT1oKCk7ZnVuY3Rpb24gaCgpe3JldHVybnt0cmFuc2xhdGU6ZigpLHNjYWxlOmYoMSksc2tldzpmKCkscGVyc3BlY3RpdmU6WzAsMCwwLDFdLHF1YXRlcm5pb246WzAsMCwwLDFdfX1mdW5jdGlvbiBmKHQpe3JldHVyblt0fHwwLHR8fDAsdHx8MF19ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGgpe2lmKDA9PT1vKGUpfHwwPT09byhyKSlyZXR1cm4hMTt2YXIgZj1pKGUsbC50cmFuc2xhdGUsbC5zY2FsZSxsLnNrZXcsbC5wZXJzcGVjdGl2ZSxsLnF1YXRlcm5pb24pLHA9aShyLGMudHJhbnNsYXRlLGMuc2NhbGUsYy5za2V3LGMucGVyc3BlY3RpdmUsYy5xdWF0ZXJuaW9uKTtyZXR1cm4hKCFmfHwhcHx8KG4odS50cmFuc2xhdGUsbC50cmFuc2xhdGUsYy50cmFuc2xhdGUsaCksbih1LnNrZXcsbC5za2V3LGMuc2tldyxoKSxuKHUuc2NhbGUsbC5zY2FsZSxjLnNjYWxlLGgpLG4odS5wZXJzcGVjdGl2ZSxsLnBlcnNwZWN0aXZlLGMucGVyc3BlY3RpdmUsaCkscyh1LnF1YXRlcm5pb24sbC5xdWF0ZXJuaW9uLGMucXVhdGVybmlvbixoKSxhKHQsdS50cmFuc2xhdGUsdS5zY2FsZSx1LnNrZXcsdS5wZXJzcGVjdGl2ZSx1LnF1YXRlcm5pb24pLDApKX19LHsiZ2wtbWF0NC9kZXRlcm1pbmFudCI6MjY0LCJnbC12ZWMzL2xlcnAiOjM1MiwibWF0NC1kZWNvbXBvc2UiOjQzMCwibWF0NC1yZWNvbXBvc2UiOjQzMywicXVhdC1zbGVycCI6NDg1fV0sNDMzOltmdW5jdGlvbih0LGUscil7dmFyIG49e2lkZW50aXR5OnQoImdsLW1hdDQvaWRlbnRpdHkiKSx0cmFuc2xhdGU6dCgiZ2wtbWF0NC90cmFuc2xhdGUiKSxtdWx0aXBseTp0KCJnbC1tYXQ0L211bHRpcGx5IiksY3JlYXRlOnQoImdsLW1hdDQvY3JlYXRlIiksc2NhbGU6dCgiZ2wtbWF0NC9zY2FsZSIpLGZyb21Sb3RhdGlvblRyYW5zbGF0aW9uOnQoImdsLW1hdDQvZnJvbVJvdGF0aW9uVHJhbnNsYXRpb24iKX0sYT0obi5jcmVhdGUoKSxuLmNyZWF0ZSgpKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaSxvLHMpe3JldHVybiBuLmlkZW50aXR5KHQpLG4uZnJvbVJvdGF0aW9uVHJhbnNsYXRpb24odCxzLGUpLHRbM109b1swXSx0WzddPW9bMV0sdFsxMV09b1syXSx0WzE1XT1vWzNdLG4uaWRlbnRpdHkoYSksMCE9PWlbMl0mJihhWzldPWlbMl0sbi5tdWx0aXBseSh0LHQsYSkpLDAhPT1pWzFdJiYoYVs5XT0wLGFbOF09aVsxXSxuLm11bHRpcGx5KHQsdCxhKSksMCE9PWlbMF0mJihhWzhdPTAsYVs0XT1pWzBdLG4ubXVsdGlwbHkodCx0LGEpKSxuLnNjYWxlKHQsdCxyKSx0fX0seyJnbC1tYXQ0L2NyZWF0ZSI6MjYzLCJnbC1tYXQ0L2Zyb21Sb3RhdGlvblRyYW5zbGF0aW9uIjoyNjYsImdsLW1hdDQvaWRlbnRpdHkiOjI2NywiZ2wtbWF0NC9tdWx0aXBseSI6MjcwLCJnbC1tYXQ0L3NjYWxlIjoyNzcsImdsLW1hdDQvdHJhbnNsYXRlIjoyNzh9XSw0MzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPU1hdGgubG9nMnx8ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubG9nKHQpKk1hdGguTE9HMkV9fSx7fV0sNDM1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImJpbmFyeS1zZWFyY2gtYm91bmRzIiksYT10KCJtYXQ0LWludGVycG9sYXRlIiksaT10KCJnbC1tYXQ0L2ludmVydCIpLG89dCgiZ2wtbWF0NC9yb3RhdGVYIikscz10KCJnbC1tYXQ0L3JvdGF0ZVkiKSxsPXQoImdsLW1hdDQvcm90YXRlWiIpLGM9dCgiZ2wtbWF0NC9sb29rQXQiKSx1PXQoImdsLW1hdDQvdHJhbnNsYXRlIiksaD0odCgiZ2wtbWF0NC9zY2FsZSIpLHQoImdsLXZlYzMvbm9ybWFsaXplIikpLGY9WzAsMCwwXTtmdW5jdGlvbiBwKHQpe3RoaXMuX2NvbXBvbmVudHM9dC5zbGljZSgpLHRoaXMuX3RpbWU9WzBdLHRoaXMucHJldk1hdHJpeD10LnNsaWNlKCksdGhpcy5uZXh0TWF0cml4PXQuc2xpY2UoKSx0aGlzLmNvbXB1dGVkTWF0cml4PXQuc2xpY2UoKSx0aGlzLmNvbXB1dGVkSW52ZXJzZT10LnNsaWNlKCksdGhpcy5jb21wdXRlZEV5ZT1bMCwwLDBdLHRoaXMuY29tcHV0ZWRVcD1bMCwwLDBdLHRoaXMuY29tcHV0ZWRDZW50ZXI9WzAsMCwwXSx0aGlzLmNvbXB1dGVkUmFkaXVzPVswXSx0aGlzLl9saW1pdHM9Wy0xLzAsMS8wXX1lLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBwKCh0PXR8fHt9KS5tYXRyaXh8fFsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwxXSl9O3ZhciBkPXAucHJvdG90eXBlO2QucmVjYWxjTWF0cml4PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3RpbWUscj1uLmxlKGUsdCksbz10aGlzLmNvbXB1dGVkTWF0cml4O2lmKCEocjwwKSl7dmFyIHM9dGhpcy5fY29tcG9uZW50cztpZihyPT09ZS5sZW5ndGgtMSlmb3IodmFyIGw9MTYqcixjPTA7YzwxNjsrK2Mpb1tjXT1zW2wrK107ZWxzZXt2YXIgdT1lW3IrMV0tZVtyXSxmPShsPTE2KnIsdGhpcy5wcmV2TWF0cml4KSxwPSEwO2ZvcihjPTA7YzwxNjsrK2MpZltjXT1zW2wrK107dmFyIGQ9dGhpcy5uZXh0TWF0cml4O2ZvcihjPTA7YzwxNjsrK2MpZFtjXT1zW2wrK10scD1wJiZmW2NdPT09ZFtjXTtpZih1PDFlLTZ8fHApZm9yKGM9MDtjPDE2OysrYylvW2NdPWZbY107ZWxzZSBhKG8sZixkLCh0LWVbcl0pL3UpfXZhciBnPXRoaXMuY29tcHV0ZWRVcDtnWzBdPW9bMV0sZ1sxXT1vWzVdLGdbMl09b1s5XSxoKGcsZyk7dmFyIHY9dGhpcy5jb21wdXRlZEludmVyc2U7aSh2LG8pO3ZhciBtPXRoaXMuY29tcHV0ZWRFeWUseT12WzE1XTttWzBdPXZbMTJdL3ksbVsxXT12WzEzXS95LG1bMl09dlsxNF0veTt2YXIgeD10aGlzLmNvbXB1dGVkQ2VudGVyLGI9TWF0aC5leHAodGhpcy5jb21wdXRlZFJhZGl1c1swXSk7Zm9yKGM9MDtjPDM7KytjKXhbY109bVtjXS1vWzIrNCpjXSpifX0sZC5pZGxlPWZ1bmN0aW9uKHQpe2lmKCEodDx0aGlzLmxhc3RUKCkpKXtmb3IodmFyIGU9dGhpcy5fY29tcG9uZW50cyxyPWUubGVuZ3RoLTE2LG49MDtuPDE2OysrbillLnB1c2goZVtyKytdKTt0aGlzLl90aW1lLnB1c2godCl9fSxkLmZsdXNoPWZ1bmN0aW9uKHQpe3ZhciBlPW4uZ3QodGhpcy5fdGltZSx0KS0yO2U8MHx8KHRoaXMuX3RpbWUuc3BsaWNlKDAsZSksdGhpcy5fY29tcG9uZW50cy5zcGxpY2UoMCwxNiplKSl9LGQubGFzdFQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdGltZVt0aGlzLl90aW1lLmxlbmd0aC0xXX0sZC5sb29rQXQ9ZnVuY3Rpb24odCxlLHIsbil7dGhpcy5yZWNhbGNNYXRyaXgodCksZT1lfHx0aGlzLmNvbXB1dGVkRXllLHI9cnx8ZixuPW58fHRoaXMuY29tcHV0ZWRVcCx0aGlzLnNldE1hdHJpeCh0LGModGhpcy5jb21wdXRlZE1hdHJpeCxlLHIsbikpO2Zvcih2YXIgYT0wLGk9MDtpPDM7KytpKWErPU1hdGgucG93KHJbaV0tZVtpXSwyKTthPU1hdGgubG9nKE1hdGguc3FydChhKSksdGhpcy5jb21wdXRlZFJhZGl1c1swXT1hfSxkLnJvdGF0ZT1mdW5jdGlvbih0LGUscixuKXt0aGlzLnJlY2FsY01hdHJpeCh0KTt2YXIgYT10aGlzLmNvbXB1dGVkSW52ZXJzZTtlJiZzKGEsYSxlKSxyJiZvKGEsYSxyKSxuJiZsKGEsYSxuKSx0aGlzLnNldE1hdHJpeCh0LGkodGhpcy5jb21wdXRlZE1hdHJpeCxhKSl9O3ZhciBnPVswLDAsMF07ZC5wYW49ZnVuY3Rpb24odCxlLHIsbil7Z1swXT0tKGV8fDApLGdbMV09LShyfHwwKSxnWzJdPS0obnx8MCksdGhpcy5yZWNhbGNNYXRyaXgodCk7dmFyIGE9dGhpcy5jb21wdXRlZEludmVyc2U7dShhLGEsZyksdGhpcy5zZXRNYXRyaXgodCxpKGEsYSkpfSxkLnRyYW5zbGF0ZT1mdW5jdGlvbih0LGUscixuKXtnWzBdPWV8fDAsZ1sxXT1yfHwwLGdbMl09bnx8MCx0aGlzLnJlY2FsY01hdHJpeCh0KTt2YXIgYT10aGlzLmNvbXB1dGVkTWF0cml4O3UoYSxhLGcpLHRoaXMuc2V0TWF0cml4KHQsYSl9LGQuc2V0TWF0cml4PWZ1bmN0aW9uKHQsZSl7aWYoISh0PHRoaXMubGFzdFQoKSkpe3RoaXMuX3RpbWUucHVzaCh0KTtmb3IodmFyIHI9MDtyPDE2Oysrcil0aGlzLl9jb21wb25lbnRzLnB1c2goZVtyXSl9fSxkLnNldERpc3RhbmNlPWZ1bmN0aW9uKHQsZSl7dGhpcy5jb21wdXRlZFJhZGl1c1swXT1lfSxkLnNldERpc3RhbmNlTGltaXRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fbGltaXRzO3JbMF09dCxyWzFdPWV9LGQuZ2V0RGlzdGFuY2VMaW1pdHM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fbGltaXRzO3JldHVybiB0Pyh0WzBdPWVbMF0sdFsxXT1lWzFdLHQpOmV9fSx7ImJpbmFyeS1zZWFyY2gtYm91bmRzIjo5MywiZ2wtbWF0NC9pbnZlcnQiOjI2OCwiZ2wtbWF0NC9sb29rQXQiOjI2OSwiZ2wtbWF0NC9yb3RhdGVYIjoyNzQsImdsLW1hdDQvcm90YXRlWSI6Mjc1LCJnbC1tYXQ0L3JvdGF0ZVoiOjI3NiwiZ2wtbWF0NC9zY2FsZSI6Mjc3LCJnbC1tYXQ0L3RyYW5zbGF0ZSI6Mjc4LCJnbC12ZWMzL25vcm1hbGl6ZSI6MzU4LCJtYXQ0LWludGVycG9sYXRlIjo0MzJ9XSw0MzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQubGVuZ3RoO2lmKGU8Myl7Zm9yKHZhciByPW5ldyBBcnJheShlKSxhPTA7YTxlOysrYSlyW2FdPWE7cmV0dXJuIDI9PT1lJiZ0WzBdWzBdPT09dFsxXVswXSYmdFswXVsxXT09PXRbMV1bMV0/WzBdOnJ9Zm9yKHZhciBpPW5ldyBBcnJheShlKSxhPTA7YTxlOysrYSlpW2FdPWE7aS5zb3J0KGZ1bmN0aW9uKGUscil7dmFyIG49dFtlXVswXS10W3JdWzBdO3JldHVybiBufHx0W2VdWzFdLXRbcl1bMV19KTtmb3IodmFyIG89W2lbMF0saVsxXV0scz1baVswXSxpWzFdXSxhPTI7YTxlOysrYSl7Zm9yKHZhciBsPWlbYV0sYz10W2xdLHU9by5sZW5ndGg7dT4xJiZuKHRbb1t1LTJdXSx0W29bdS0xXV0sYyk8PTA7KXUtPTEsby5wb3AoKTtmb3Ioby5wdXNoKGwpLHU9cy5sZW5ndGg7dT4xJiZuKHRbc1t1LTJdXSx0W3NbdS0xXV0sYyk+PTA7KXUtPTEscy5wb3AoKTtzLnB1c2gobCl9Zm9yKHZhciByPW5ldyBBcnJheShzLmxlbmd0aCtvLmxlbmd0aC0yKSxoPTAsYT0wLGY9by5sZW5ndGg7YTxmOysrYSlyW2grK109b1thXTtmb3IodmFyIHA9cy5sZW5ndGgtMjtwPjA7LS1wKXJbaCsrXT1zW3BdO3JldHVybiByfTt2YXIgbj10KCJyb2J1c3Qtb3JpZW50YXRpb24iKVszXX0seyJyb2J1c3Qtb3JpZW50YXRpb24iOjUwOX1dLDQzNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtlfHwoZT10LHQ9d2luZG93KTt2YXIgcj0wLGE9MCxpPTAsbz17c2hpZnQ6ITEsYWx0OiExLGNvbnRyb2w6ITEsbWV0YTohMX0scz0hMTtmdW5jdGlvbiBsKHQpe3ZhciBlPSExO3JldHVybiJhbHRLZXkiaW4gdCYmKGU9ZXx8dC5hbHRLZXkhPT1vLmFsdCxvLmFsdD0hIXQuYWx0S2V5KSwic2hpZnRLZXkiaW4gdCYmKGU9ZXx8dC5zaGlmdEtleSE9PW8uc2hpZnQsby5zaGlmdD0hIXQuc2hpZnRLZXkpLCJjdHJsS2V5ImluIHQmJihlPWV8fHQuY3RybEtleSE9PW8uY29udHJvbCxvLmNvbnRyb2w9ISF0LmN0cmxLZXkpLCJtZXRhS2V5ImluIHQmJihlPWV8fHQubWV0YUtleSE9PW8ubWV0YSxvLm1ldGE9ISF0Lm1ldGFLZXkpLGV9ZnVuY3Rpb24gYyh0LHMpe3ZhciBjPW4ueChzKSx1PW4ueShzKTsiYnV0dG9ucyJpbiBzJiYodD0wfHMuYnV0dG9ucyksKHQhPT1yfHxjIT09YXx8dSE9PWl8fGwocykpJiYocj0wfHQsYT1jfHwwLGk9dXx8MCxlJiZlKHIsYSxpLG8pKX1mdW5jdGlvbiB1KHQpe2MoMCx0KX1mdW5jdGlvbiBoKCl7KHJ8fGF8fGl8fG8uc2hpZnR8fG8uYWx0fHxvLm1ldGF8fG8uY29udHJvbCkmJihhPWk9MCxyPTAsby5zaGlmdD1vLmFsdD1vLmNvbnRyb2w9by5tZXRhPSExLGUmJmUoMCwwLDAsbykpfWZ1bmN0aW9uIGYodCl7bCh0KSYmZSYmZShyLGEsaSxvKX1mdW5jdGlvbiBwKHQpezA9PT1uLmJ1dHRvbnModCk/YygwLHQpOmMocix0KX1mdW5jdGlvbiBkKHQpe2MocnxuLmJ1dHRvbnModCksdCl9ZnVuY3Rpb24gZyh0KXtjKHImfm4uYnV0dG9ucyh0KSx0KX1mdW5jdGlvbiB2KCl7c3x8KHM9ITAsdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHApLHQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixkKSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLGcpLHQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsdSksdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIix1KSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0Iix1KSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsdSksdC5hZGRFdmVudExpc3RlbmVyKCJibHVyIixoKSx0LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixmKSx0LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGYpLHQuYWRkRXZlbnRMaXN0ZW5lcigia2V5cHJlc3MiLGYpLHQhPT13aW5kb3cmJih3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsaCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixmKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZiksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImtleXByZXNzIixmKSkpfXYoKTt2YXIgbT17ZWxlbWVudDp0fTtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMobSx7ZW5hYmxlZDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHN9LHNldDpmdW5jdGlvbihlKXtlP3YoKTpzJiYocz0hMSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIscCksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGQpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsZyksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix1KSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLHUpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VvdXQiLHUpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VvdmVyIix1KSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImJsdXIiLGgpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5dXAiLGYpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZiksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlwcmVzcyIsZiksdCE9PXdpbmRvdyYmKHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJibHVyIixoKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5dXAiLGYpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixmKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5cHJlc3MiLGYpKSl9LGVudW1lcmFibGU6ITB9LGJ1dHRvbnM6e2dldDpmdW5jdGlvbigpe3JldHVybiByfSxlbnVtZXJhYmxlOiEwfSx4OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sZW51bWVyYWJsZTohMH0seTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGl9LGVudW1lcmFibGU6ITB9LG1vZHM6e2dldDpmdW5jdGlvbigpe3JldHVybiBvfSxlbnVtZXJhYmxlOiEwfX0pLG19O3ZhciBuPXQoIm1vdXNlLWV2ZW50Iil9LHsibW91c2UtZXZlbnQiOjQzOX1dLDQzODpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXtsZWZ0OjAsdG9wOjB9O2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7ZT1lfHx0LmN1cnJlbnRUYXJnZXR8fHQuc3JjRWxlbWVudCxBcnJheS5pc0FycmF5KHIpfHwocj1bMCwwXSk7dmFyIGE9dC5jbGllbnRYfHwwLGk9dC5jbGllbnRZfHwwLG89KHM9ZSxzPT09d2luZG93fHxzPT09ZG9jdW1lbnR8fHM9PT1kb2N1bWVudC5ib2R5P246cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSk7dmFyIHM7cmV0dXJuIHJbMF09YS1vLmxlZnQsclsxXT1pLW8udG9wLHJ9fSx7fV0sNDM5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7cmV0dXJuIHQudGFyZ2V0fHx0LnNyY0VsZW1lbnR8fHdpbmRvd31yLmJ1dHRvbnM9ZnVuY3Rpb24odCl7aWYoIm9iamVjdCI9PXR5cGVvZiB0KXtpZigiYnV0dG9ucyJpbiB0KXJldHVybiB0LmJ1dHRvbnM7aWYoIndoaWNoImluIHQpe2lmKDI9PT0oZT10LndoaWNoKSlyZXR1cm4gNDtpZigzPT09ZSlyZXR1cm4gMjtpZihlPjApcmV0dXJuIDE8PGUtMX1lbHNlIGlmKCJidXR0b24iaW4gdCl7dmFyIGU7aWYoMT09PShlPXQuYnV0dG9uKSlyZXR1cm4gNDtpZigyPT09ZSlyZXR1cm4gMjtpZihlPj0wKXJldHVybiAxPDxlfX1yZXR1cm4gMH0sci5lbGVtZW50PW4sci54PWZ1bmN0aW9uKHQpe2lmKCJvYmplY3QiPT10eXBlb2YgdCl7aWYoIm9mZnNldFgiaW4gdClyZXR1cm4gdC5vZmZzZXRYO3ZhciBlPW4odCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuIHQuY2xpZW50WC1lLmxlZnR9cmV0dXJuIDB9LHIueT1mdW5jdGlvbih0KXtpZigib2JqZWN0Ij09dHlwZW9mIHQpe2lmKCJvZmZzZXRZImluIHQpcmV0dXJuIHQub2Zmc2V0WTt2YXIgZT1uKHQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiB0LmNsaWVudFktZS50b3B9cmV0dXJuIDB9fSx7fV0sNDQwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInRvLXB4Iik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXsiZnVuY3Rpb24iPT10eXBlb2YgdCYmKHI9ISFlLGU9dCx0PXdpbmRvdyk7dmFyIGE9bigiZXgiLHQpLGk9ZnVuY3Rpb24odCl7ciYmdC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBuPXQuZGVsdGFYfHwwLGk9dC5kZWx0YVl8fDAsbz10LmRlbHRhWnx8MCxzPXQuZGVsdGFNb2RlLGw9MTtzd2l0Y2gocyl7Y2FzZSAxOmw9YTticmVhaztjYXNlIDI6bD13aW5kb3cuaW5uZXJIZWlnaHR9aWYoaSo9bCxvKj1sLChuKj1sKXx8aXx8bylyZXR1cm4gZShuLGksbyx0KX07cmV0dXJuIHQuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLGkpLGl9fSx7InRvLXB4Ijo1Mzh9XSw0NDE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgidHlwZWRhcnJheS1wb29sIik7ZnVuY3Rpb24gYSh0KXtyZXR1cm4iYSIrdH1mdW5jdGlvbiBpKHQpe3JldHVybiJkIit0fWZ1bmN0aW9uIG8odCxlKXtyZXR1cm4iYyIrdCsiXyIrZX1mdW5jdGlvbiBzKHQpe3JldHVybiJzIit0fWZ1bmN0aW9uIGwodCxlKXtyZXR1cm4idCIrdCsiXyIrZX1mdW5jdGlvbiBjKHQpe3JldHVybiJvIit0fWZ1bmN0aW9uIHUodCl7cmV0dXJuIngiK3R9ZnVuY3Rpb24gaCh0KXtyZXR1cm4icCIrdH1mdW5jdGlvbiBmKHQsZSl7cmV0dXJuImQiK3QrIl8iK2V9ZnVuY3Rpb24gcCh0KXtyZXR1cm4iaSIrdH1mdW5jdGlvbiBkKHQsZSl7cmV0dXJuInUiK3QrIl8iK2V9ZnVuY3Rpb24gZyh0KXtyZXR1cm4iYiIrdH1mdW5jdGlvbiB2KHQpe3JldHVybiJ5Iit0fWZ1bmN0aW9uIG0odCl7cmV0dXJuImUiK3R9ZnVuY3Rpb24geSh0KXtyZXR1cm4idiIrdH1lLmV4cG9ydHM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXt0aHJvdyBuZXcgRXJyb3IoIm5kYXJyYXktZXh0cmFjdC1jb250b3VyOiAiK3QpfSJvYmplY3QiIT10eXBlb2YgdCYmZSgiTXVzdCBzcGVjaWZ5IGFyZ3VtZW50cyIpO3ZhciByPXQub3JkZXI7QXJyYXkuaXNBcnJheShyKXx8ZSgiTXVzdCBzcGVjaWZ5IG9yZGVyIik7dmFyIEE9dC5hcnJheUFyZ3VtZW50c3x8MTtBPDEmJmUoIk11c3QgaGF2ZSBhdCBsZWFzdCBvbmUgYXJyYXkgYXJndW1lbnQiKTt2YXIgUz10LnNjYWxhckFyZ3VtZW50c3x8MDtTPDAmJmUoIlNjYWxhciBhcmcgY291bnQgbXVzdCBiZSA+IDAiKTsiZnVuY3Rpb24iIT10eXBlb2YgdC52ZXJ0ZXgmJmUoIk11c3Qgc3BlY2lmeSB2ZXJ0ZXggY3JlYXRpb24gZnVuY3Rpb24iKTsiZnVuY3Rpb24iIT10eXBlb2YgdC5jZWxsJiZlKCJNdXN0IHNwZWNpZnkgY2VsbCBjcmVhdGlvbiBmdW5jdGlvbiIpOyJmdW5jdGlvbiIhPXR5cGVvZiB0LnBoYXNlJiZlKCJNdXN0IHNwZWNpZnkgcGhhc2UgZnVuY3Rpb24iKTtmb3IodmFyIEU9dC5nZXR0ZXJzfHxbXSxMPW5ldyBBcnJheShBKSxDPTA7QzxBOysrQylFLmluZGV4T2YoQyk+PTA/TFtDXT0hMDpMW0NdPSExO3JldHVybiBmdW5jdGlvbih0LGUscixBLFMsRSl7dmFyIEw9RS5sZW5ndGgsQz1TLmxlbmd0aDtpZihDPDIpdGhyb3cgbmV3IEVycm9yKCJuZGFycmF5LWV4dHJhY3QtY29udG91cjogRGltZW5zaW9uIG11c3QgYmUgYXQgbGVhc3QgMiIpO2Zvcih2YXIgUD0iZXh0cmFjdENvbnRvdXIiK1Muam9pbigiXyIpLE89W10sej1bXSxJPVtdLEQ9MDtEPEw7KytEKUkucHVzaChhKEQpKTtmb3IodmFyIEQ9MDtEPEE7KytEKUkucHVzaCh1KEQpKTtmb3IodmFyIEQ9MDtEPEM7KytEKXoucHVzaChzKEQpKyI9IithKDApKyIuc2hhcGVbIitEKyJdfDAiKTtmb3IodmFyIEQ9MDtEPEw7KytEKXt6LnB1c2goaShEKSsiPSIrYShEKSsiLmRhdGEiLGMoRCkrIj0iK2EoRCkrIi5vZmZzZXR8MCIpO2Zvcih2YXIgUj0wO1I8QzsrK1Ipei5wdXNoKGwoRCxSKSsiPSIrYShEKSsiLnN0cmlkZVsiK1IrIl18MCIpfWZvcih2YXIgRD0wO0Q8TDsrK0Qpe3oucHVzaChoKEQpKyI9IitjKEQpKSx6LnB1c2gobyhELDApKTtmb3IodmFyIFI9MTtSPDE8PEM7KytSKXtmb3IodmFyIEY9W10sQj0wO0I8QzsrK0IpUiYxPDxCJiZGLnB1c2goIi0iK2woRCxCKSk7ei5wdXNoKGYoRCxSKSsiPSgiK0Yuam9pbigiIikrIil8MCIpLHoucHVzaChvKEQsUikrIj0wIil9fWZvcih2YXIgRD0wO0Q8TDsrK0QpZm9yKHZhciBSPTA7UjxDOysrUil7dmFyIE49W2woRCxTW1JdKV07Uj4wJiZOLnB1c2gobChELFNbUi0xXSkrIioiK3MoU1tSLTFdKSksei5wdXNoKGQoRCxTW1JdKSsiPSgiK04uam9pbigiLSIpKyIpfDAiKX1mb3IodmFyIEQ9MDtEPEM7KytEKXoucHVzaChwKEQpKyI9MCIpO3oucHVzaChfKyI9MCIpO2Zvcih2YXIgaj1bIjIiXSxEPUMtMjtEPj0wOy0tRClqLnB1c2gocyhTW0RdKSk7ei5wdXNoKHcrIj0oIitqLmpvaW4oIioiKSsiKXwwIixiKyI9bWFsbG9jVWludDMyKCIrdysiKSIseCsiPW1hbGxvY1VpbnQzMigiK3crIikiLGsrIj0wIiksei5wdXNoKGcoMCkrIj0wIik7Zm9yKHZhciBSPTE7UjwxPDxDOysrUil7Zm9yKHZhciBWPVtdLFU9W10sQj0wO0I8QzsrK0IpUiYxPDxCJiYoMD09PVUubGVuZ3RoP1YucHVzaCgiMSIpOlYudW5zaGlmdChVLmpvaW4oIioiKSkpLFUucHVzaChzKFNbQl0pKTt2YXIgcT0iIjtWWzBdLmluZGV4T2YocyhTW0MtMl0pKTwwJiYocT0iLSIpO3ZhciBIPU0oQyxSLFMpO3oucHVzaChtKEgpKyI9KC0iK1Yuam9pbigiLSIpKyIpfDAiLHYoSCkrIj0oIitxK1Yuam9pbigiLSIpKyIpfDAiLGcoSCkrIj0wIil9ZnVuY3Rpb24gRyh0LGUpe08ucHVzaCgiZm9yKCIscChTW3RdKSwiPSIsZSwiOyIscChTW3RdKSwiPCIscyhTW3RdKSwiOyIsIisrIixwKFNbdF0pLCIpeyIpfWZ1bmN0aW9uIFkodCl7Zm9yKHZhciBlPTA7ZTxMOysrZSlPLnB1c2goaChlKSwiKz0iLGQoZSxTW3RdKSwiOyIpO08ucHVzaCgifSIpfWZ1bmN0aW9uIFcoKXtmb3IodmFyIHQ9MTt0PDE8PEM7Kyt0KU8ucHVzaChULCI9IixtKHQpLCI7IixtKHQpLCI9Iix2KHQpLCI7Iix2KHQpLCI9IixULCI7Iil9ei5wdXNoKHkoMCkrIj0wIixUKyI9MCIpLGZ1bmN0aW9uIHQoZSxyKXtpZihlPDApcmV0dXJuIHZvaWQgZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTxMOysrZSlFW2VdP08ucHVzaChvKGUsMCksIj0iLGkoZSksIi5nZXQoIixoKGUpLCIpOyIpOk8ucHVzaChvKGUsMCksIj0iLGkoZSksIlsiLGgoZSksIl07Iik7Zm9yKHZhciByPVtdLGU9MDtlPEw7KytlKXIucHVzaChvKGUsMCkpO2Zvcih2YXIgZT0wO2U8QTsrK2Upci5wdXNoKHUoZSkpO08ucHVzaChnKDApLCI9IixiLCJbIixrLCJdPXBoYXNlKCIsci5qb2luKCksIik7Iik7Zm9yKHZhciBuPTE7bjwxPDxDOysrbilPLnB1c2goZyhuKSwiPSIsYiwiWyIsaywiKyIsbShuKSwiXTsiKTtmb3IodmFyIGE9W10sbj0xO248MTw8QzsrK24pYS5wdXNoKCIoIitnKDApKyIhPT0iK2cobikrIikiKTtPLnB1c2goImlmKCIsYS5qb2luKCJ8fCIpLCIpeyIpO2Zvcih2YXIgcz1bXSxlPTA7ZTxDOysrZSlzLnB1c2gocChlKSk7Zm9yKHZhciBlPTA7ZTxMOysrZSl7cy5wdXNoKG8oZSwwKSk7Zm9yKHZhciBuPTE7bjwxPDxDOysrbilFW2VdP08ucHVzaChvKGUsbiksIj0iLGkoZSksIi5nZXQoIixoKGUpLCIrIixmKGUsbiksIik7Iik6Ty5wdXNoKG8oZSxuKSwiPSIsaShlKSwiWyIsaChlKSwiKyIsZihlLG4pLCJdOyIpLHMucHVzaChvKGUsbikpfWZvcih2YXIgZT0wO2U8MTw8QzsrK2Upcy5wdXNoKGcoZSkpO2Zvcih2YXIgZT0wO2U8QTsrK2Upcy5wdXNoKHUoZSkpO08ucHVzaCgidmVydGV4KCIscy5qb2luKCksIik7Iix5KDApLCI9Iix4LCJbIixrLCJdPSIsXywiKys7Iik7Zm9yKHZhciBsPSgxPDxDKS0xLGM9ZyhsKSxuPTA7bjxDOysrbilpZigwPT0odCZ+KDE8PG4pKSl7Zm9yKHZhciBkPWxeMTw8bix2PWcoZCksdz1bXSxUPWQ7VD4wO1Q9VC0xJmQpdy5wdXNoKHgrIlsiK2srIisiK20oVCkrIl0iKTt3LnB1c2goeSgwKSk7Zm9yKHZhciBUPTA7VDxMOysrVCkxJm4/dy5wdXNoKG8oVCxsKSxvKFQsZCkpOncucHVzaChvKFQsZCksbyhULGwpKTsxJm4/dy5wdXNoKGMsdik6dy5wdXNoKHYsYyk7Zm9yKHZhciBUPTA7VDxBOysrVCl3LnB1c2godShUKSk7Ty5wdXNoKCJpZigiLGMsIiE9PSIsdiwiKXsiLCJmYWNlKCIsdy5qb2luKCksIil9Iil9Ty5wdXNoKCJ9IixrLCIrPTE7Iil9KHIpOyFmdW5jdGlvbih0KXtmb3IodmFyIGU9dC0xO2U+PTA7LS1lKUcoZSwwKTtmb3IodmFyIHI9W10sZT0wO2U8TDsrK2UpRVtlXT9yLnB1c2goaShlKSsiLmdldCgiK2goZSkrIikiKTpyLnB1c2goaShlKSsiWyIraChlKSsiXSIpO2Zvcih2YXIgZT0wO2U8QTsrK2Upci5wdXNoKHUoZSkpO08ucHVzaChiLCJbIixrLCIrK109cGhhc2UoIixyLmpvaW4oKSwiKTsiKTtmb3IodmFyIGU9MDtlPHQ7KytlKVkoZSk7Zm9yKHZhciBuPTA7bjxMOysrbilPLnB1c2goaChuKSwiKz0iLGQobixTW3RdKSwiOyIpfShlKTtPLnB1c2goImlmKCIscyhTW2VdKSwiPjApeyIscChTW2VdKSwiPTE7Iik7dChlLTEscnwxPDxTW2VdKTtmb3IodmFyIG49MDtuPEw7KytuKU8ucHVzaChoKG4pLCIrPSIsZChuLFNbZV0pLCI7Iik7ZT09PUMtMSYmKE8ucHVzaChrLCI9MDsiKSxXKCkpO0coZSwyKTt0KGUtMSxyKTtlPT09Qy0xJiYoTy5wdXNoKCJpZigiLHAoU1tDLTFdKSwiJjEpeyIsaywiPTA7fSIpLFcoKSk7WShlKTtPLnB1c2goIn0iKX0oQy0xLDApLE8ucHVzaCgiZnJlZVVpbnQzMigiLHgsIik7ZnJlZVVpbnQzMigiLGIsIik7Iik7dmFyIFg9WyIndXNlIHN0cmljdCc7IiwiZnVuY3Rpb24gIixQLCIoIixJLmpvaW4oKSwiKXsiLCJ2YXIgIix6LmpvaW4oKSwiOyIsTy5qb2luKCIiKSwifSIsInJldHVybiAiLFBdLmpvaW4oIiIpO3JldHVybiBuZXcgRnVuY3Rpb24oInZlcnRleCIsImZhY2UiLCJwaGFzZSIsIm1hbGxvY1VpbnQzMiIsImZyZWVVaW50MzIiLFgpKHQsZSxyLG4ubWFsbG9jVWludDMyLG4uZnJlZVVpbnQzMil9KHQudmVydGV4LHQuY2VsbCx0LnBoYXNlLFMscixMKX07dmFyIHg9IlYiLGI9IlAiLF89Ik4iLHc9IlEiLGs9IlgiLFQ9IlQiO2Z1bmN0aW9uIE0odCxlLHIpe2Zvcih2YXIgbj0wLGE9MDthPHQ7KythKWUmMTw8YSYmKG58PTE8PHJbYV0pO3JldHVybiBufX0seyJ0eXBlZGFycmF5LXBvb2wiOjU0NH1dLDQ0MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJjd2lzZS9saWIvd3JhcHBlciIpKHthcmdzOlsiaW5kZXgiLCJhcnJheSIsInNjYWxhciJdLHByZTp7Ym9keToie30iLGFyZ3M6W10sdGhpc1ZhcnM6W10sbG9jYWxWYXJzOltdfSxib2R5Ontib2R5OiJ7X2lubGluZV8xX2FyZzFfPV9pbmxpbmVfMV9hcmcyXy5hcHBseSh2b2lkIDAsX2lubGluZV8xX2FyZzBfKX0iLGFyZ3M6W3tuYW1lOiJfaW5saW5lXzFfYXJnMF8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfMV9hcmcxXyIsbHZhbHVlOiEwLHJ2YWx1ZTohMSxjb3VudDoxfSx7bmFtZToiX2lubGluZV8xX2FyZzJfIixsdmFsdWU6ITEscnZhbHVlOiEwLGNvdW50OjF9XSx0aGlzVmFyczpbXSxsb2NhbFZhcnM6W119LHBvc3Q6e2JvZHk6Int9IixhcmdzOltdLHRoaXNWYXJzOltdLGxvY2FsVmFyczpbXX0sZGVidWc6ITEsZnVuY05hbWU6ImN3aXNlIixibG9ja1NpemU6NjR9KTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbih0LGUpLHR9fSx7ImN3aXNlL2xpYi93cmFwcGVyIjoxNTF9XSw0NDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtpZihBcnJheS5pc0FycmF5KHIpKXtpZihyLmxlbmd0aCE9PWUuZGltZW5zaW9uKXRocm93IG5ldyBFcnJvcigibmRhcnJheS1ncmFkaWVudDogaW52YWxpZCBib3VuZGFyeSBjb25kaXRpb25zIil9ZWxzZSByPW4oZS5kaW1lbnNpb24sInN0cmluZyI9PXR5cGVvZiByP3I6ImNsYW1wIik7aWYodC5kaW1lbnNpb24hPT1lLmRpbWVuc2lvbisxKXRocm93IG5ldyBFcnJvcigibmRhcnJheS1ncmFkaWVudDogb3V0cHV0IGRpbWVuc2lvbiBtdXN0IGJlICsxIGlucHV0IGRpbWVuc2lvbiIpO2lmKHQuc2hhcGVbZS5kaW1lbnNpb25dIT09ZS5kaW1lbnNpb24pdGhyb3cgbmV3IEVycm9yKCJuZGFycmF5LWdyYWRpZW50OiBvdXRwdXQgc2hhcGUgbXVzdCBtYXRjaCBpbnB1dCBzaGFwZSIpO2Zvcih2YXIgYT0wO2E8ZS5kaW1lbnNpb247KythKWlmKHQuc2hhcGVbYV0hPT1lLnNoYXBlW2FdKXRocm93IG5ldyBFcnJvcigibmRhcnJheS1ncmFkaWVudDogc2hhcGUgbWlzbWF0Y2giKTtpZigwPT09ZS5zaXplKXJldHVybiB0O2lmKGUuZGltZW5zaW9uPD0wKXJldHVybiB0LnNldCgwKSx0O3JldHVybiBmdW5jdGlvbih0KXt2YXIgZT10LmpvaW4oKTtpZihtPW9bZV0pcmV0dXJuIG07dmFyIHI9dC5sZW5ndGgsbj1bImZ1bmN0aW9uIGdyYWRpZW50KGRzdCxzcmMpe3ZhciBzPXNyYy5zaGFwZS5zbGljZSgpOyJdO2Z1bmN0aW9uIGEoZSl7Zm9yKHZhciBhPXItZS5sZW5ndGgsaT1bXSxvPVtdLHM9W10sbD0wO2w8cjsrK2wpZS5pbmRleE9mKGwrMSk+PTA/cy5wdXNoKCIwIik6ZS5pbmRleE9mKC0obCsxKSk+PTA/cy5wdXNoKCJzWyIrbCsiXS0xIik6KHMucHVzaCgiLTEiKSxpLnB1c2goIjEiKSxvLnB1c2goInNbIitsKyJdLTIiKSk7dmFyIGM9Ii5sbygiK2kuam9pbigpKyIpLmhpKCIrby5qb2luKCkrIikiO2lmKDA9PT1pLmxlbmd0aCYmKGM9IiIpLGE+MCl7bi5wdXNoKCJpZigxIik7Zm9yKHZhciBsPTA7bDxyOysrbCllLmluZGV4T2YobCsxKT49MHx8ZS5pbmRleE9mKC0obCsxKSk+PTB8fG4ucHVzaCgiJiZzWyIsbCwiXT4yIik7bi5wdXNoKCIpe2dyYWQiLGEsIihzcmMucGljaygiLHMuam9pbigpLCIpIixjKTtmb3IodmFyIGw9MDtsPHI7KytsKWUuaW5kZXhPZihsKzEpPj0wfHxlLmluZGV4T2YoLShsKzEpKT49MHx8bi5wdXNoKCIsZHN0LnBpY2soIixzLmpvaW4oKSwiLCIsbCwiKSIsYyk7bi5wdXNoKCIpOyIpfWZvcih2YXIgbD0wO2w8ZS5sZW5ndGg7KytsKXt2YXIgdT1NYXRoLmFicyhlW2xdKS0xLGg9ImRzdC5waWNrKCIrcy5qb2luKCkrIiwiK3UrIikiK2M7c3dpdGNoKHRbdV0pe2Nhc2UiY2xhbXAiOnZhciBmPXMuc2xpY2UoKSxwPXMuc2xpY2UoKTtlW2xdPDA/Zlt1XT0ic1siK3UrIl0tMiI6cFt1XT0iMSIsMD09PWE/bi5wdXNoKCJpZihzWyIsdSwiXT4xKXtkc3Quc2V0KCIscy5qb2luKCksIiwiLHUsIiwwLjUqKHNyYy5nZXQoIixmLmpvaW4oKSwiKS1zcmMuZ2V0KCIscC5qb2luKCksIikpKX1lbHNle2RzdC5zZXQoIixzLmpvaW4oKSwiLCIsdSwiLDApfTsiKTpuLnB1c2goImlmKHNbIix1LCJdPjEpe2RpZmYoIixoLCIsc3JjLnBpY2soIixmLmpvaW4oKSwiKSIsYywiLHNyYy5waWNrKCIscC5qb2luKCksIikiLGMsIik7fWVsc2V7emVybygiLGgsIik7fTsiKTticmVhaztjYXNlIm1pcnJvciI6MD09PWE/bi5wdXNoKCJkc3Quc2V0KCIscy5qb2luKCksIiwiLHUsIiwwKTsiKTpuLnB1c2goInplcm8oIixoLCIpOyIpO2JyZWFrO2Nhc2Uid3JhcCI6dmFyIGQ9cy5zbGljZSgpLGc9cy5zbGljZSgpO2VbbF08MD8oZFt1XT0ic1siK3UrIl0tMiIsZ1t1XT0iMCIpOihkW3VdPSJzWyIrdSsiXS0xIixnW3VdPSIxIiksMD09PWE/bi5wdXNoKCJpZihzWyIsdSwiXT4yKXtkc3Quc2V0KCIscy5qb2luKCksIiwiLHUsIiwwLjUqKHNyYy5nZXQoIixkLmpvaW4oKSwiKS1zcmMuZ2V0KCIsZy5qb2luKCksIikpKX1lbHNle2RzdC5zZXQoIixzLmpvaW4oKSwiLCIsdSwiLDApfTsiKTpuLnB1c2goImlmKHNbIix1LCJdPjIpe2RpZmYoIixoLCIsc3JjLnBpY2soIixkLmpvaW4oKSwiKSIsYywiLHNyYy5waWNrKCIsZy5qb2luKCksIikiLGMsIik7fWVsc2V7emVybygiLGgsIik7fTsiKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigibmRhcnJheS1ncmFkaWVudDogSW52YWxpZCBib3VuZGFyeSBjb25kaXRpb24iKX19YT4wJiZuLnB1c2goIn07Iil9Zm9yKHZhciBzPTA7czwxPDxyOysrcyl7Zm9yKHZhciBoPVtdLGY9MDtmPHI7KytmKXMmMTw8ZiYmaC5wdXNoKGYrMSk7Zm9yKHZhciBwPTA7cDwxPDxoLmxlbmd0aDsrK3Ape2Zvcih2YXIgZD1oLnNsaWNlKCksZj0wO2Y8aC5sZW5ndGg7KytmKXAmMTw8ZiYmKGRbZl09LWRbZl0pO2EoZCl9fW4ucHVzaCgicmV0dXJuIGRzdDt9O3JldHVybiBncmFkaWVudCIpO2Zvcih2YXIgZz1bImRpZmYiLCJ6ZXJvIl0sdj1bbCxjXSxzPTE7czw9cjsrK3MpZy5wdXNoKCJncmFkIitzKSx2LnB1c2godShzKSk7Zy5wdXNoKG4uam9pbigiIikpO3ZhciBtPUZ1bmN0aW9uLmFwcGx5KHZvaWQgMCxnKS5hcHBseSh2b2lkIDAsdik7cmV0dXJuIGlbZV09bSxtfShyKSh0LGUpfTt2YXIgbj10KCJkdXAiKSxhPXQoImN3aXNlLWNvbXBpbGVyIiksaT17fSxvPXt9LHM9e2JvZHk6IiIsYXJnczpbXSx0aGlzVmFyczpbXSxsb2NhbFZhcnM6W119LGw9YSh7YXJnczpbImFycmF5IiwiYXJyYXkiLCJhcnJheSJdLHByZTpzLHBvc3Q6cyxib2R5OnthcmdzOlt7bmFtZToib3V0IixsdmFsdWU6ITAscnZhbHVlOiExLGNvdW50OjF9LHtuYW1lOiJsZWZ0IixsdmFsdWU6ITEscnZhbHVlOiEwLGNvdW50OjF9LHtuYW1lOiJyaWdodCIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoxfV0sYm9keToib3V0PTAuNSoobGVmdC1yaWdodCkiLHRoaXNWYXJzOltdLGxvY2FsVmFyczpbXX0sZnVuY05hbWU6ImNkaWZmIn0pLGM9YSh7YXJnczpbImFycmF5Il0scHJlOnMscG9zdDpzLGJvZHk6e2FyZ3M6W3tuYW1lOiJvdXQiLGx2YWx1ZTohMCxydmFsdWU6ITEsY291bnQ6MX1dLGJvZHk6Im91dD0wIix0aGlzVmFyczpbXSxsb2NhbFZhcnM6W119LGZ1bmNOYW1lOiJ6ZXJvIn0pO2Z1bmN0aW9uIHUodCl7aWYodCBpbiBpKXJldHVybiBpW3RdO2Zvcih2YXIgZT1bXSxyPTA7cjx0OysrcillLnB1c2goIm91dCIsciwicz0wLjUqKGlucCIsciwibC1pbnAiLHIsInIpOyIpO3ZhciBvPVsiYXJyYXkiXSxsPVsianVuayJdO2ZvcihyPTA7cjx0Oysrcil7by5wdXNoKCJhcnJheSIpLGwucHVzaCgib3V0IityKyJzIik7dmFyIGM9bih0KTtjW3JdPS0xLG8ucHVzaCh7YXJyYXk6MCxvZmZzZXQ6Yy5zbGljZSgpfSksY1tyXT0xLG8ucHVzaCh7YXJyYXk6MCxvZmZzZXQ6Yy5zbGljZSgpfSksbC5wdXNoKCJpbnAiK3IrImwiLCJpbnAiK3IrInIiKX1yZXR1cm4gaVt0XT1hKHthcmdzOm8scHJlOnMscG9zdDpzLGJvZHk6e2JvZHk6ZS5qb2luKCIiKSxhcmdzOmwubWFwKGZ1bmN0aW9uKHQpe3JldHVybntuYW1lOnQsbHZhbHVlOjA9PT10LmluZGV4T2YoIm91dCIpLHJ2YWx1ZTowPT09dC5pbmRleE9mKCJpbnAiKSxjb3VudDoianVuayIhPT10fDB9fSksdGhpc1ZhcnM6W10sbG9jYWxWYXJzOltdfSxmdW5jTmFtZToiZmRUZW1wbGF0ZSIrdH0pfX0seyJjd2lzZS1jb21waWxlciI6MTQ4LGR1cDoxNzJ9XSw0NDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgibmRhcnJheS13YXJwIiksYT10KCJnbC1tYXRyaXgtaW52ZXJ0Iik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT1lLmRpbWVuc2lvbixvPWEoW10scik7cmV0dXJuIG4odCxlLGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTA7cjxpOysrcil7dFtyXT1vWyhpKzEpKmkrcl07Zm9yKHZhciBuPTA7bjxpOysrbil0W3JdKz1vWyhpKzEpKm4rcl0qZVtuXX12YXIgYT1vWyhpKzEpKihpKzEpLTFdO2ZvcihuPTA7bjxpOysrbilhKz1vWyhpKzEpKm4raV0qZVtuXTt2YXIgcz0xL2E7Zm9yKHI9MDtyPGk7KytyKXRbcl0qPXM7cmV0dXJuIHR9KSx0fX0seyJnbC1tYXRyaXgtaW52ZXJ0IjoyODAsIm5kYXJyYXktd2FycCI6NDUxfV0sNDQ1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt2YXIgcj1NYXRoLmZsb29yKGUpLG49ZS1yLGE9MDw9ciYmcjx0LnNoYXBlWzBdLGk9MDw9cisxJiZyKzE8dC5zaGFwZVswXTtyZXR1cm4oMS1uKSooYT8rdC5nZXQocik6MCkrbiooaT8rdC5nZXQocisxKTowKX1mdW5jdGlvbiBhKHQsZSxyKXt2YXIgbj1NYXRoLmZsb29yKGUpLGE9ZS1uLGk9MDw9biYmbjx0LnNoYXBlWzBdLG89MDw9bisxJiZuKzE8dC5zaGFwZVswXSxzPU1hdGguZmxvb3IociksbD1yLXMsYz0wPD1zJiZzPHQuc2hhcGVbMV0sdT0wPD1zKzEmJnMrMTx0LnNoYXBlWzFdLGg9aSYmYz90LmdldChuLHMpOjAsZj1pJiZ1P3QuZ2V0KG4scysxKTowO3JldHVybigxLWwpKigoMS1hKSpoK2EqKG8mJmM/dC5nZXQobisxLHMpOjApKStsKigoMS1hKSpmK2EqKG8mJnU/dC5nZXQobisxLHMrMSk6MCkpfWZ1bmN0aW9uIGkodCxlLHIsbil7dmFyIGE9TWF0aC5mbG9vcihlKSxpPWUtYSxvPTA8PWEmJmE8dC5zaGFwZVswXSxzPTA8PWErMSYmYSsxPHQuc2hhcGVbMF0sbD1NYXRoLmZsb29yKHIpLGM9ci1sLHU9MDw9bCYmbDx0LnNoYXBlWzFdLGg9MDw9bCsxJiZsKzE8dC5zaGFwZVsxXSxmPU1hdGguZmxvb3IobikscD1uLWYsZD0wPD1mJiZmPHQuc2hhcGVbMl0sZz0wPD1mKzEmJmYrMTx0LnNoYXBlWzJdLHY9byYmdSYmZD90LmdldChhLGwsZik6MCxtPW8mJmgmJmQ/dC5nZXQoYSxsKzEsZik6MCx5PXMmJnUmJmQ/dC5nZXQoYSsxLGwsZik6MCx4PXMmJmgmJmQ/dC5nZXQoYSsxLGwrMSxmKTowLGI9byYmdSYmZz90LmdldChhLGwsZisxKTowLF89byYmaCYmZz90LmdldChhLGwrMSxmKzEpOjA7cmV0dXJuKDEtcCkqKCgxLWMpKigoMS1pKSp2K2kqeSkrYyooKDEtaSkqbStpKngpKStwKigoMS1jKSooKDEtaSkqYitpKihzJiZ1JiZnP3QuZ2V0KGErMSxsLGYrMSk6MCkpK2MqKCgxLWkpKl8raSoocyYmaCYmZz90LmdldChhKzEsbCsxLGYrMSk6MCkpKX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbyl7c3dpdGNoKHQuc2hhcGUubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIDA7Y2FzZSAxOnJldHVybiBuKHQsZSk7Y2FzZSAyOnJldHVybiBhKHQsZSxyKTtjYXNlIDM6cmV0dXJuIGkodCxlLHIsbyk7ZGVmYXVsdDpyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGUscixuPTB8dC5zaGFwZS5sZW5ndGgsYT1uZXcgQXJyYXkobiksaT1uZXcgQXJyYXkobiksbz1uZXcgQXJyYXkobikscz1uZXcgQXJyYXkobik7Zm9yKGU9MDtlPG47KytlKXI9K2FyZ3VtZW50c1tlKzFdLGFbZV09TWF0aC5mbG9vcihyKSxpW2VdPXItYVtlXSxvW2VdPTA8PWFbZV0mJmFbZV08dC5zaGFwZVtlXSxzW2VdPTA8PWFbZV0rMSYmYVtlXSsxPHQuc2hhcGVbZV07dmFyIGwsYyx1LGg9MDt0OmZvcihlPTA7ZTwxPDxuOysrZSl7Zm9yKGM9MSx1PXQub2Zmc2V0LGw9MDtsPG47KytsKWlmKGUmMTw8bCl7aWYoIXNbbF0pY29udGludWUgdDtjKj1pW2xdLHUrPXQuc3RyaWRlW2xdKihhW2xdKzEpfWVsc2V7aWYoIW9bbF0pY29udGludWUgdDtjKj0xLWlbbF0sdSs9dC5zdHJpZGVbbF0qYVtsXX1oKz1jKnQuZGF0YVt1XX1yZXR1cm4gaH0uYXBwbHkodm9pZCAwLGFyZ3VtZW50cyl9fSxlLmV4cG9ydHMuZDE9bixlLmV4cG9ydHMuZDI9YSxlLmV4cG9ydHMuZDM9aX0se31dLDQ0NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJjd2lzZS1jb21waWxlciIpLGE9e2JvZHk6IiIsYXJnczpbXSx0aGlzVmFyczpbXSxsb2NhbFZhcnM6W119O2Z1bmN0aW9uIGkodCl7aWYoIXQpcmV0dXJuIGE7Zm9yKHZhciBlPTA7ZTx0LmFyZ3MubGVuZ3RoOysrZSl7dmFyIHI9dC5hcmdzW2VdO3QuYXJnc1tlXT0wPT09ZT97bmFtZTpyLGx2YWx1ZTohMCxydmFsdWU6ISF0LnJ2YWx1ZSxjb3VudDp0LmNvdW50fHwxfTp7bmFtZTpyLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX19cmV0dXJuIHQudGhpc1ZhcnN8fCh0LnRoaXNWYXJzPVtdKSx0LmxvY2FsVmFyc3x8KHQubG9jYWxWYXJzPVtdKSx0fWZ1bmN0aW9uIG8odCl7Zm9yKHZhciBlPVtdLHI9MDtyPHQuYXJncy5sZW5ndGg7KytyKWUucHVzaCgiYSIrcik7cmV0dXJuIG5ldyBGdW5jdGlvbigiUCIsWyJyZXR1cm4gZnVuY3Rpb24gIix0LmZ1bmNOYW1lLCJfbmRhcnJheW9wcygiLGUuam9pbigiLCIpLCIpIHtQKCIsZS5qb2luKCIsIiksIik7cmV0dXJuIGEwfSJdLmpvaW4oIiIpKShmdW5jdGlvbih0KXtyZXR1cm4gbih7YXJnczp0LmFyZ3MscHJlOmkodC5wcmUpLGJvZHk6aSh0LmJvZHkpLHBvc3Q6aSh0LnByb2MpLGZ1bmNOYW1lOnQuZnVuY05hbWV9KX0odCkpfXZhciBzPXthZGQ6IisiLHN1YjoiLSIsbXVsOiIqIixkaXY6Ii8iLG1vZDoiJSIsYmFuZDoiJiIsYm9yOiJ8IixieG9yOiJeIixsc2hpZnQ6Ijw8Iixyc2hpZnQ6Ij4+IixycnNoaWZ0OiI+Pj4ifTshZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gcyl7dmFyIGU9c1t0XTtyW3RdPW8oe2FyZ3M6WyJhcnJheSIsImFycmF5IiwiYXJyYXkiXSxib2R5OnthcmdzOlsiYSIsImIiLCJjIl0sYm9keToiYT1iIitlKyJjIn0sZnVuY05hbWU6dH0pLHJbdCsiZXEiXT1vKHthcmdzOlsiYXJyYXkiLCJhcnJheSJdLGJvZHk6e2FyZ3M6WyJhIiwiYiJdLGJvZHk6ImEiK2UrIj1iIn0scnZhbHVlOiEwLGZ1bmNOYW1lOnQrImVxIn0pLHJbdCsicyJdPW8oe2FyZ3M6WyJhcnJheSIsImFycmF5Iiwic2NhbGFyIl0sYm9keTp7YXJnczpbImEiLCJiIiwicyJdLGJvZHk6ImE9YiIrZSsicyJ9LGZ1bmNOYW1lOnQrInMifSksclt0KyJzZXEiXT1vKHthcmdzOlsiYXJyYXkiLCJzY2FsYXIiXSxib2R5OnthcmdzOlsiYSIsInMiXSxib2R5OiJhIitlKyI9cyJ9LHJ2YWx1ZTohMCxmdW5jTmFtZTp0KyJzZXEifSl9fSgpO3ZhciBsPXtub3Q6IiEiLGJub3Q6In4iLG5lZzoiLSIscmVjaXA6IjEuMC8ifTshZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gbCl7dmFyIGU9bFt0XTtyW3RdPW8oe2FyZ3M6WyJhcnJheSIsImFycmF5Il0sYm9keTp7YXJnczpbImEiLCJiIl0sYm9keToiYT0iK2UrImIifSxmdW5jTmFtZTp0fSksclt0KyJlcSJdPW8oe2FyZ3M6WyJhcnJheSJdLGJvZHk6e2FyZ3M6WyJhIl0sYm9keToiYT0iK2UrImEifSxydmFsdWU6ITAsY291bnQ6MixmdW5jTmFtZTp0KyJlcSJ9KX19KCk7dmFyIGM9e2FuZDoiJiYiLG9yOiJ8fCIsZXE6Ij09PSIsbmVxOiIhPT0iLGx0OiI8IixndDoiPiIsbGVxOiI8PSIsZ2VxOiI+PSJ9OyFmdW5jdGlvbigpe2Zvcih2YXIgdCBpbiBjKXt2YXIgZT1jW3RdO3JbdF09byh7YXJnczpbImFycmF5IiwiYXJyYXkiLCJhcnJheSJdLGJvZHk6e2FyZ3M6WyJhIiwiYiIsImMiXSxib2R5OiJhPWIiK2UrImMifSxmdW5jTmFtZTp0fSksclt0KyJzIl09byh7YXJnczpbImFycmF5IiwiYXJyYXkiLCJzY2FsYXIiXSxib2R5OnthcmdzOlsiYSIsImIiLCJzIl0sYm9keToiYT1iIitlKyJzIn0sZnVuY05hbWU6dCsicyJ9KSxyW3QrImVxIl09byh7YXJnczpbImFycmF5IiwiYXJyYXkiXSxib2R5OnthcmdzOlsiYSIsImIiXSxib2R5OiJhPWEiK2UrImIifSxydmFsdWU6ITAsY291bnQ6MixmdW5jTmFtZTp0KyJlcSJ9KSxyW3QrInNlcSJdPW8oe2FyZ3M6WyJhcnJheSIsInNjYWxhciJdLGJvZHk6e2FyZ3M6WyJhIiwicyJdLGJvZHk6ImE9YSIrZSsicyJ9LHJ2YWx1ZTohMCxjb3VudDoyLGZ1bmNOYW1lOnQrInNlcSJ9KX19KCk7dmFyIHU9WyJhYnMiLCJhY29zIiwiYXNpbiIsImF0YW4iLCJjZWlsIiwiY29zIiwiZXhwIiwiZmxvb3IiLCJsb2ciLCJyb3VuZCIsInNpbiIsInNxcnQiLCJ0YW4iXTshZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHUubGVuZ3RoOysrdCl7dmFyIGU9dVt0XTtyW2VdPW8oe2FyZ3M6WyJhcnJheSIsImFycmF5Il0scHJlOnthcmdzOltdLGJvZHk6InRoaXNfZj1NYXRoLiIrZSx0aGlzVmFyczpbInRoaXNfZiJdfSxib2R5OnthcmdzOlsiYSIsImIiXSxib2R5OiJhPXRoaXNfZihiKSIsdGhpc1ZhcnM6WyJ0aGlzX2YiXX0sZnVuY05hbWU6ZX0pLHJbZSsiZXEiXT1vKHthcmdzOlsiYXJyYXkiXSxwcmU6e2FyZ3M6W10sYm9keToidGhpc19mPU1hdGguIitlLHRoaXNWYXJzOlsidGhpc19mIl19LGJvZHk6e2FyZ3M6WyJhIl0sYm9keToiYT10aGlzX2YoYSkiLHRoaXNWYXJzOlsidGhpc19mIl19LHJ2YWx1ZTohMCxjb3VudDoyLGZ1bmNOYW1lOmUrImVxIn0pfX0oKTt2YXIgaD1bIm1heCIsIm1pbiIsImF0YW4yIiwicG93Il07IWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDxoLmxlbmd0aDsrK3Qpe3ZhciBlPWhbdF07cltlXT1vKHthcmdzOlsiYXJyYXkiLCJhcnJheSIsImFycmF5Il0scHJlOnthcmdzOltdLGJvZHk6InRoaXNfZj1NYXRoLiIrZSx0aGlzVmFyczpbInRoaXNfZiJdfSxib2R5OnthcmdzOlsiYSIsImIiLCJjIl0sYm9keToiYT10aGlzX2YoYixjKSIsdGhpc1ZhcnM6WyJ0aGlzX2YiXX0sZnVuY05hbWU6ZX0pLHJbZSsicyJdPW8oe2FyZ3M6WyJhcnJheSIsImFycmF5Iiwic2NhbGFyIl0scHJlOnthcmdzOltdLGJvZHk6InRoaXNfZj1NYXRoLiIrZSx0aGlzVmFyczpbInRoaXNfZiJdfSxib2R5OnthcmdzOlsiYSIsImIiLCJjIl0sYm9keToiYT10aGlzX2YoYixjKSIsdGhpc1ZhcnM6WyJ0aGlzX2YiXX0sZnVuY05hbWU6ZSsicyJ9KSxyW2UrImVxIl09byh7YXJnczpbImFycmF5IiwiYXJyYXkiXSxwcmU6e2FyZ3M6W10sYm9keToidGhpc19mPU1hdGguIitlLHRoaXNWYXJzOlsidGhpc19mIl19LGJvZHk6e2FyZ3M6WyJhIiwiYiJdLGJvZHk6ImE9dGhpc19mKGEsYikiLHRoaXNWYXJzOlsidGhpc19mIl19LHJ2YWx1ZTohMCxjb3VudDoyLGZ1bmNOYW1lOmUrImVxIn0pLHJbZSsic2VxIl09byh7YXJnczpbImFycmF5Iiwic2NhbGFyIl0scHJlOnthcmdzOltdLGJvZHk6InRoaXNfZj1NYXRoLiIrZSx0aGlzVmFyczpbInRoaXNfZiJdfSxib2R5OnthcmdzOlsiYSIsImIiXSxib2R5OiJhPXRoaXNfZihhLGIpIix0aGlzVmFyczpbInRoaXNfZiJdfSxydmFsdWU6ITAsY291bnQ6MixmdW5jTmFtZTplKyJzZXEifSl9fSgpO3ZhciBmPVsiYXRhbjIiLCJwb3ciXTshZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PGYubGVuZ3RoOysrdCl7dmFyIGU9Zlt0XTtyW2UrIm9wIl09byh7YXJnczpbImFycmF5IiwiYXJyYXkiLCJhcnJheSJdLHByZTp7YXJnczpbXSxib2R5OiJ0aGlzX2Y9TWF0aC4iK2UsdGhpc1ZhcnM6WyJ0aGlzX2YiXX0sYm9keTp7YXJnczpbImEiLCJiIiwiYyJdLGJvZHk6ImE9dGhpc19mKGMsYikiLHRoaXNWYXJzOlsidGhpc19mIl19LGZ1bmNOYW1lOmUrIm9wIn0pLHJbZSsib3BzIl09byh7YXJnczpbImFycmF5IiwiYXJyYXkiLCJzY2FsYXIiXSxwcmU6e2FyZ3M6W10sYm9keToidGhpc19mPU1hdGguIitlLHRoaXNWYXJzOlsidGhpc19mIl19LGJvZHk6e2FyZ3M6WyJhIiwiYiIsImMiXSxib2R5OiJhPXRoaXNfZihjLGIpIix0aGlzVmFyczpbInRoaXNfZiJdfSxmdW5jTmFtZTplKyJvcHMifSkscltlKyJvcGVxIl09byh7YXJnczpbImFycmF5IiwiYXJyYXkiXSxwcmU6e2FyZ3M6W10sYm9keToidGhpc19mPU1hdGguIitlLHRoaXNWYXJzOlsidGhpc19mIl19LGJvZHk6e2FyZ3M6WyJhIiwiYiJdLGJvZHk6ImE9dGhpc19mKGIsYSkiLHRoaXNWYXJzOlsidGhpc19mIl19LHJ2YWx1ZTohMCxjb3VudDoyLGZ1bmNOYW1lOmUrIm9wZXEifSkscltlKyJvcHNlcSJdPW8oe2FyZ3M6WyJhcnJheSIsInNjYWxhciJdLHByZTp7YXJnczpbXSxib2R5OiJ0aGlzX2Y9TWF0aC4iK2UsdGhpc1ZhcnM6WyJ0aGlzX2YiXX0sYm9keTp7YXJnczpbImEiLCJiIl0sYm9keToiYT10aGlzX2YoYixhKSIsdGhpc1ZhcnM6WyJ0aGlzX2YiXX0scnZhbHVlOiEwLGNvdW50OjIsZnVuY05hbWU6ZSsib3BzZXEifSl9fSgpLHIuYW55PW4oe2FyZ3M6WyJhcnJheSJdLHByZTphLGJvZHk6e2FyZ3M6W3tuYW1lOiJhIixsdmFsdWU6ITEscnZhbHVlOiEwLGNvdW50OjF9XSxib2R5OiJpZihhKXtyZXR1cm4gdHJ1ZX0iLGxvY2FsVmFyczpbXSx0aGlzVmFyczpbXX0scG9zdDp7YXJnczpbXSxsb2NhbFZhcnM6W10sdGhpc1ZhcnM6W10sYm9keToicmV0dXJuIGZhbHNlIn0sZnVuY05hbWU6ImFueSJ9KSxyLmFsbD1uKHthcmdzOlsiYXJyYXkiXSxwcmU6YSxib2R5OnthcmdzOlt7bmFtZToieCIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoxfV0sYm9keToiaWYoIXgpe3JldHVybiBmYWxzZX0iLGxvY2FsVmFyczpbXSx0aGlzVmFyczpbXX0scG9zdDp7YXJnczpbXSxsb2NhbFZhcnM6W10sdGhpc1ZhcnM6W10sYm9keToicmV0dXJuIHRydWUifSxmdW5jTmFtZToiYWxsIn0pLHIuc3VtPW4oe2FyZ3M6WyJhcnJheSJdLHByZTp7YXJnczpbXSxsb2NhbFZhcnM6W10sdGhpc1ZhcnM6WyJ0aGlzX3MiXSxib2R5OiJ0aGlzX3M9MCJ9LGJvZHk6e2FyZ3M6W3tuYW1lOiJhIixsdmFsdWU6ITEscnZhbHVlOiEwLGNvdW50OjF9XSxib2R5OiJ0aGlzX3MrPWEiLGxvY2FsVmFyczpbXSx0aGlzVmFyczpbInRoaXNfcyJdfSxwb3N0OnthcmdzOltdLGxvY2FsVmFyczpbXSx0aGlzVmFyczpbInRoaXNfcyJdLGJvZHk6InJldHVybiB0aGlzX3MifSxmdW5jTmFtZToic3VtIn0pLHIucHJvZD1uKHthcmdzOlsiYXJyYXkiXSxwcmU6e2FyZ3M6W10sbG9jYWxWYXJzOltdLHRoaXNWYXJzOlsidGhpc19zIl0sYm9keToidGhpc19zPTEifSxib2R5OnthcmdzOlt7bmFtZToiYSIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoxfV0sYm9keToidGhpc19zKj1hIixsb2NhbFZhcnM6W10sdGhpc1ZhcnM6WyJ0aGlzX3MiXX0scG9zdDp7YXJnczpbXSxsb2NhbFZhcnM6W10sdGhpc1ZhcnM6WyJ0aGlzX3MiXSxib2R5OiJyZXR1cm4gdGhpc19zIn0sZnVuY05hbWU6InByb2QifSksci5ub3JtMnNxdWFyZWQ9bih7YXJnczpbImFycmF5Il0scHJlOnthcmdzOltdLGxvY2FsVmFyczpbXSx0aGlzVmFyczpbInRoaXNfcyJdLGJvZHk6InRoaXNfcz0wIn0sYm9keTp7YXJnczpbe25hbWU6ImEiLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6Mn1dLGJvZHk6InRoaXNfcys9YSphIixsb2NhbFZhcnM6W10sdGhpc1ZhcnM6WyJ0aGlzX3MiXX0scG9zdDp7YXJnczpbXSxsb2NhbFZhcnM6W10sdGhpc1ZhcnM6WyJ0aGlzX3MiXSxib2R5OiJyZXR1cm4gdGhpc19zIn0sZnVuY05hbWU6Im5vcm0yc3F1YXJlZCJ9KSxyLm5vcm0yPW4oe2FyZ3M6WyJhcnJheSJdLHByZTp7YXJnczpbXSxsb2NhbFZhcnM6W10sdGhpc1ZhcnM6WyJ0aGlzX3MiXSxib2R5OiJ0aGlzX3M9MCJ9LGJvZHk6e2FyZ3M6W3tuYW1lOiJhIixsdmFsdWU6ITEscnZhbHVlOiEwLGNvdW50OjJ9XSxib2R5OiJ0aGlzX3MrPWEqYSIsbG9jYWxWYXJzOltdLHRoaXNWYXJzOlsidGhpc19zIl19LHBvc3Q6e2FyZ3M6W10sbG9jYWxWYXJzOltdLHRoaXNWYXJzOlsidGhpc19zIl0sYm9keToicmV0dXJuIE1hdGguc3FydCh0aGlzX3MpIn0sZnVuY05hbWU6Im5vcm0yIn0pLHIubm9ybWluZj1uKHthcmdzOlsiYXJyYXkiXSxwcmU6e2FyZ3M6W10sbG9jYWxWYXJzOltdLHRoaXNWYXJzOlsidGhpc19zIl0sYm9keToidGhpc19zPTAifSxib2R5OnthcmdzOlt7bmFtZToiYSIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDo0fV0sYm9keToiaWYoLWE+dGhpc19zKXt0aGlzX3M9LWF9ZWxzZSBpZihhPnRoaXNfcyl7dGhpc19zPWF9Iixsb2NhbFZhcnM6W10sdGhpc1ZhcnM6WyJ0aGlzX3MiXX0scG9zdDp7YXJnczpbXSxsb2NhbFZhcnM6W10sdGhpc1ZhcnM6WyJ0aGlzX3MiXSxib2R5OiJyZXR1cm4gdGhpc19zIn0sZnVuY05hbWU6Im5vcm1pbmYifSksci5ub3JtMT1uKHthcmdzOlsiYXJyYXkiXSxwcmU6e2FyZ3M6W10sbG9jYWxWYXJzOltdLHRoaXNWYXJzOlsidGhpc19zIl0sYm9keToidGhpc19zPTAifSxib2R5OnthcmdzOlt7bmFtZToiYSIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDozfV0sYm9keToidGhpc19zKz1hPDA/LWE6YSIsbG9jYWxWYXJzOltdLHRoaXNWYXJzOlsidGhpc19zIl19LHBvc3Q6e2FyZ3M6W10sbG9jYWxWYXJzOltdLHRoaXNWYXJzOlsidGhpc19zIl0sYm9keToicmV0dXJuIHRoaXNfcyJ9LGZ1bmNOYW1lOiJub3JtMSJ9KSxyLnN1cD1uKHthcmdzOlsiYXJyYXkiXSxwcmU6e2JvZHk6InRoaXNfaD0tSW5maW5pdHkiLGFyZ3M6W10sdGhpc1ZhcnM6WyJ0aGlzX2giXSxsb2NhbFZhcnM6W119LGJvZHk6e2JvZHk6ImlmKF9pbmxpbmVfMV9hcmcwXz50aGlzX2gpdGhpc19oPV9pbmxpbmVfMV9hcmcwXyIsYXJnczpbe25hbWU6Il9pbmxpbmVfMV9hcmcwXyIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoyfV0sdGhpc1ZhcnM6WyJ0aGlzX2giXSxsb2NhbFZhcnM6W119LHBvc3Q6e2JvZHk6InJldHVybiB0aGlzX2giLGFyZ3M6W10sdGhpc1ZhcnM6WyJ0aGlzX2giXSxsb2NhbFZhcnM6W119fSksci5pbmY9bih7YXJnczpbImFycmF5Il0scHJlOntib2R5OiJ0aGlzX2g9SW5maW5pdHkiLGFyZ3M6W10sdGhpc1ZhcnM6WyJ0aGlzX2giXSxsb2NhbFZhcnM6W119LGJvZHk6e2JvZHk6ImlmKF9pbmxpbmVfMV9hcmcwXzx0aGlzX2gpdGhpc19oPV9pbmxpbmVfMV9hcmcwXyIsYXJnczpbe25hbWU6Il9pbmxpbmVfMV9hcmcwXyIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoyfV0sdGhpc1ZhcnM6WyJ0aGlzX2giXSxsb2NhbFZhcnM6W119LHBvc3Q6e2JvZHk6InJldHVybiB0aGlzX2giLGFyZ3M6W10sdGhpc1ZhcnM6WyJ0aGlzX2giXSxsb2NhbFZhcnM6W119fSksci5hcmdtaW49bih7YXJnczpbImluZGV4IiwiYXJyYXkiLCJzaGFwZSJdLHByZTp7Ym9keToie3RoaXNfdj1JbmZpbml0eTt0aGlzX2k9X2lubGluZV8wX2FyZzJfLnNsaWNlKDApfSIsYXJnczpbe25hbWU6Il9pbmxpbmVfMF9hcmcwXyIsbHZhbHVlOiExLHJ2YWx1ZTohMSxjb3VudDowfSx7bmFtZToiX2lubGluZV8wX2FyZzFfIixsdmFsdWU6ITEscnZhbHVlOiExLGNvdW50OjB9LHtuYW1lOiJfaW5saW5lXzBfYXJnMl8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX1dLHRoaXNWYXJzOlsidGhpc19pIiwidGhpc192Il0sbG9jYWxWYXJzOltdfSxib2R5Ontib2R5OiJ7aWYoX2lubGluZV8xX2FyZzFfPHRoaXNfdil7dGhpc192PV9pbmxpbmVfMV9hcmcxXztmb3IodmFyIF9pbmxpbmVfMV9rPTA7X2lubGluZV8xX2s8X2lubGluZV8xX2FyZzBfLmxlbmd0aDsrK19pbmxpbmVfMV9rKXt0aGlzX2lbX2lubGluZV8xX2tdPV9pbmxpbmVfMV9hcmcwX1tfaW5saW5lXzFfa119fX0iLGFyZ3M6W3tuYW1lOiJfaW5saW5lXzFfYXJnMF8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6Mn0se25hbWU6Il9pbmxpbmVfMV9hcmcxXyIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoyfV0sdGhpc1ZhcnM6WyJ0aGlzX2kiLCJ0aGlzX3YiXSxsb2NhbFZhcnM6WyJfaW5saW5lXzFfayJdfSxwb3N0Ontib2R5OiJ7cmV0dXJuIHRoaXNfaX0iLGFyZ3M6W10sdGhpc1ZhcnM6WyJ0aGlzX2kiXSxsb2NhbFZhcnM6W119fSksci5hcmdtYXg9bih7YXJnczpbImluZGV4IiwiYXJyYXkiLCJzaGFwZSJdLHByZTp7Ym9keToie3RoaXNfdj0tSW5maW5pdHk7dGhpc19pPV9pbmxpbmVfMF9hcmcyXy5zbGljZSgwKX0iLGFyZ3M6W3tuYW1lOiJfaW5saW5lXzBfYXJnMF8iLGx2YWx1ZTohMSxydmFsdWU6ITEsY291bnQ6MH0se25hbWU6Il9pbmxpbmVfMF9hcmcxXyIsbHZhbHVlOiExLHJ2YWx1ZTohMSxjb3VudDowfSx7bmFtZToiX2lubGluZV8wX2FyZzJfIixsdmFsdWU6ITEscnZhbHVlOiEwLGNvdW50OjF9XSx0aGlzVmFyczpbInRoaXNfaSIsInRoaXNfdiJdLGxvY2FsVmFyczpbXX0sYm9keTp7Ym9keToie2lmKF9pbmxpbmVfMV9hcmcxXz50aGlzX3Ype3RoaXNfdj1faW5saW5lXzFfYXJnMV87Zm9yKHZhciBfaW5saW5lXzFfaz0wO19pbmxpbmVfMV9rPF9pbmxpbmVfMV9hcmcwXy5sZW5ndGg7KytfaW5saW5lXzFfayl7dGhpc19pW19pbmxpbmVfMV9rXT1faW5saW5lXzFfYXJnMF9bX2lubGluZV8xX2tdfX19IixhcmdzOlt7bmFtZToiX2lubGluZV8xX2FyZzBfIixsdmFsdWU6ITEscnZhbHVlOiEwLGNvdW50OjJ9LHtuYW1lOiJfaW5saW5lXzFfYXJnMV8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6Mn1dLHRoaXNWYXJzOlsidGhpc19pIiwidGhpc192Il0sbG9jYWxWYXJzOlsiX2lubGluZV8xX2siXX0scG9zdDp7Ym9keToie3JldHVybiB0aGlzX2l9IixhcmdzOltdLHRoaXNWYXJzOlsidGhpc19pIl0sbG9jYWxWYXJzOltdfX0pLHIucmFuZG9tPW8oe2FyZ3M6WyJhcnJheSJdLHByZTp7YXJnczpbXSxib2R5OiJ0aGlzX2Y9TWF0aC5yYW5kb20iLHRoaXNWYXJzOlsidGhpc19mIl19LGJvZHk6e2FyZ3M6WyJhIl0sYm9keToiYT10aGlzX2YoKSIsdGhpc1ZhcnM6WyJ0aGlzX2YiXX0sZnVuY05hbWU6InJhbmRvbSJ9KSxyLmFzc2lnbj1vKHthcmdzOlsiYXJyYXkiLCJhcnJheSJdLGJvZHk6e2FyZ3M6WyJhIiwiYiJdLGJvZHk6ImE9YiJ9LGZ1bmNOYW1lOiJhc3NpZ24ifSksci5hc3NpZ25zPW8oe2FyZ3M6WyJhcnJheSIsInNjYWxhciJdLGJvZHk6e2FyZ3M6WyJhIiwiYiJdLGJvZHk6ImE9YiJ9LGZ1bmNOYW1lOiJhc3NpZ25zIn0pLHIuZXF1YWxzPW4oe2FyZ3M6WyJhcnJheSIsImFycmF5Il0scHJlOmEsYm9keTp7YXJnczpbe25hbWU6IngiLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX0se25hbWU6InkiLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX1dLGJvZHk6ImlmKHghPT15KXtyZXR1cm4gZmFsc2V9Iixsb2NhbFZhcnM6W10sdGhpc1ZhcnM6W119LHBvc3Q6e2FyZ3M6W10sbG9jYWxWYXJzOltdLHRoaXNWYXJzOltdLGJvZHk6InJldHVybiB0cnVlIn0sZnVuY05hbWU6ImVxdWFscyJ9KX0seyJjd2lzZS1jb21waWxlciI6MTQ4fV0sNDQ3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIm5kYXJyYXkiKSxhPXQoIi4vZG9Db252ZXJ0LmpzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVtdLGk9dCxvPTE7QXJyYXkuaXNBcnJheShpKTspci5wdXNoKGkubGVuZ3RoKSxvKj1pLmxlbmd0aCxpPWlbMF07cmV0dXJuIDA9PT1yLmxlbmd0aD9uKCk6KGV8fChlPW4obmV3IEZsb2F0NjRBcnJheShvKSxyKSksYShlLHQpLGUpfX0seyIuL2RvQ29udmVydC5qcyI6NDQ4LG5kYXJyYXk6NDUyfV0sNDQ4OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXQoImN3aXNlLWNvbXBpbGVyIikoe2FyZ3M6WyJhcnJheSIsInNjYWxhciIsImluZGV4Il0scHJlOntib2R5OiJ7fSIsYXJnczpbXSx0aGlzVmFyczpbXSxsb2NhbFZhcnM6W119LGJvZHk6e2JvZHk6IntcbnZhciBfaW5saW5lXzFfdj1faW5saW5lXzFfYXJnMV8sX2lubGluZV8xX2lcbmZvcihfaW5saW5lXzFfaT0wO19pbmxpbmVfMV9pPF9pbmxpbmVfMV9hcmcyXy5sZW5ndGgtMTsrK19pbmxpbmVfMV9pKSB7XG5faW5saW5lXzFfdj1faW5saW5lXzFfdltfaW5saW5lXzFfYXJnMl9bX2lubGluZV8xX2ldXVxufVxuX2lubGluZV8xX2FyZzBfPV9pbmxpbmVfMV92W19pbmxpbmVfMV9hcmcyX1tfaW5saW5lXzFfYXJnMl8ubGVuZ3RoLTFdXVxufSIsYXJnczpbe25hbWU6Il9pbmxpbmVfMV9hcmcwXyIsbHZhbHVlOiEwLHJ2YWx1ZTohMSxjb3VudDoxfSx7bmFtZToiX2lubGluZV8xX2FyZzFfIixsdmFsdWU6ITEscnZhbHVlOiEwLGNvdW50OjF9LHtuYW1lOiJfaW5saW5lXzFfYXJnMl8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6NH1dLHRoaXNWYXJzOltdLGxvY2FsVmFyczpbIl9pbmxpbmVfMV9pIiwiX2lubGluZV8xX3YiXX0scG9zdDp7Ym9keToie30iLGFyZ3M6W10sdGhpc1ZhcnM6W10sbG9jYWxWYXJzOltdfSxmdW5jTmFtZToiY29udmVydCIsYmxvY2tTaXplOjY0fSl9LHsiY3dpc2UtY29tcGlsZXIiOjE0OH1dLDQ0OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJ0eXBlZGFycmF5LXBvb2wiKSxhPTMyO2Z1bmN0aW9uIGkodCl7c3dpdGNoKHQpe2Nhc2UidWludDgiOnJldHVybltuLm1hbGxvY1VpbnQ4LG4uZnJlZVVpbnQ4XTtjYXNlInVpbnQxNiI6cmV0dXJuW24ubWFsbG9jVWludDE2LG4uZnJlZVVpbnQxNl07Y2FzZSJ1aW50MzIiOnJldHVybltuLm1hbGxvY1VpbnQzMixuLmZyZWVVaW50MzJdO2Nhc2UiaW50OCI6cmV0dXJuW24ubWFsbG9jSW50OCxuLmZyZWVJbnQ4XTtjYXNlImludDE2IjpyZXR1cm5bbi5tYWxsb2NJbnQxNixuLmZyZWVJbnQxNl07Y2FzZSJpbnQzMiI6cmV0dXJuW24ubWFsbG9jSW50MzIsbi5mcmVlSW50MzJdO2Nhc2UiZmxvYXQzMiI6cmV0dXJuW24ubWFsbG9jRmxvYXQsbi5mcmVlRmxvYXRdO2Nhc2UiZmxvYXQ2NCI6cmV0dXJuW24ubWFsbG9jRG91YmxlLG4uZnJlZURvdWJsZV07ZGVmYXVsdDpyZXR1cm4gbnVsbH19ZnVuY3Rpb24gbyh0KXtmb3IodmFyIGU9W10scj0wO3I8dDsrK3IpZS5wdXNoKCJzIityKTtmb3Iocj0wO3I8dDsrK3IpZS5wdXNoKCJuIityKTtmb3Iocj0xO3I8dDsrK3IpZS5wdXNoKCJkIityKTtmb3Iocj0xO3I8dDsrK3IpZS5wdXNoKCJlIityKTtmb3Iocj0xO3I8dDsrK3IpZS5wdXNoKCJmIityKTtyZXR1cm4gZX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1bIid1c2Ugc3RyaWN0JyJdLG49WyJuZGFycmF5U29ydFdyYXBwZXIiLHQuam9pbigiZCIpLGVdLmpvaW4oIiIpO3IucHVzaChbImZ1bmN0aW9uICIsbiwiKCIsWyJhcnJheSJdLmpvaW4oIiwiKSwiKXsiXS5qb2luKCIiKSk7Zm9yKHZhciBzPVsiZGF0YT1hcnJheS5kYXRhLG9mZnNldD1hcnJheS5vZmZzZXR8MCxzaGFwZT1hcnJheS5zaGFwZSxzdHJpZGU9YXJyYXkuc3RyaWRlIl0sbD0wO2w8dC5sZW5ndGg7KytsKXMucHVzaChbInMiLGwsIj1zdHJpZGVbIixsLCJdfDAsbiIsbCwiPXNoYXBlWyIsbCwiXXwwIl0uam9pbigiIikpO3ZhciBjPW5ldyBBcnJheSh0Lmxlbmd0aCksdT1bXTtmb3IobD0wO2w8dC5sZW5ndGg7KytsKTAhPT0ocD10W2xdKSYmKDA9PT11Lmxlbmd0aD9jW3BdPSIxIjpjW3BdPXUuam9pbigiKiIpLHUucHVzaCgibiIrcCkpO3ZhciBoPS0xLGY9LTE7Zm9yKGw9MDtsPHQubGVuZ3RoOysrbCl7dmFyIHAsZD10W2xdOzAhPT1kJiYoaD4wP3MucHVzaChbImQiLGQsIj1zIixkLCItZCIsaCwiKm4iLGhdLmpvaW4oIiIpKTpzLnB1c2goWyJkIixkLCI9cyIsZF0uam9pbigiIikpLGg9ZCksMCE9KHA9dC5sZW5ndGgtMS1sKSYmKGY+MD9zLnB1c2goWyJlIixwLCI9cyIscCwiLWUiLGYsIipuIixmLCIsZiIscCwiPSIsY1twXSwiLWYiLGYsIipuIixmXS5qb2luKCIiKSk6cy5wdXNoKFsiZSIscCwiPXMiLHAsIixmIixwLCI9IixjW3BdXS5qb2luKCIiKSksZj1wKX1yLnB1c2goInZhciAiK3Muam9pbigiLCIpKTt2YXIgZz1bIjAiLCJuMC0xIiwiZGF0YSIsIm9mZnNldCJdLmNvbmNhdChvKHQubGVuZ3RoKSk7ci5wdXNoKFsiaWYobjA8PSIsYSwiKXsiLCJpbnNlcnRpb25Tb3J0KCIsZy5qb2luKCIsIiksIil9ZWxzZXsiLCJxdWlja1NvcnQoIixnLmpvaW4oIiwiKSwiKX0iXS5qb2luKCIiKSksci5wdXNoKCJ9cmV0dXJuICIrbik7dmFyIHY9bmV3IEZ1bmN0aW9uKCJpbnNlcnRpb25Tb3J0IiwicXVpY2tTb3J0IixyLmpvaW4oIlxuIikpLG09ZnVuY3Rpb24odCxlKXt2YXIgcj1bIid1c2Ugc3RyaWN0JyJdLG49WyJuZGFycmF5SW5zZXJ0aW9uU29ydCIsdC5qb2luKCJkIiksZV0uam9pbigiIiksYT1bImxlZnQiLCJyaWdodCIsImRhdGEiLCJvZmZzZXQiXS5jb25jYXQobyh0Lmxlbmd0aCkpLHM9aShlKSxsPVsiaSxqLGNwdHIscHRyPWxlZnQqczArb2Zmc2V0Il07aWYodC5sZW5ndGg+MSl7Zm9yKHZhciBjPVtdLHU9MTt1PHQubGVuZ3RoOysrdSlsLnB1c2goImkiK3UpLGMucHVzaCgibiIrdSk7cz9sLnB1c2goInNjcmF0Y2g9bWFsbG9jKCIrYy5qb2luKCIqIikrIikiKTpsLnB1c2goInNjcmF0Y2g9bmV3IEFycmF5KCIrYy5qb2luKCIqIikrIikiKSxsLnB1c2goImRwdHIiLCJzcHRyIiwiYSIsImIiKX1lbHNlIGwucHVzaCgic2NyYXRjaCIpO2Z1bmN0aW9uIGgodCl7cmV0dXJuImdlbmVyaWMiPT09ZT9bImRhdGEuZ2V0KCIsdCwiKSJdLmpvaW4oIiIpOlsiZGF0YVsiLHQsIl0iXS5qb2luKCIiKX1mdW5jdGlvbiBmKHQscil7cmV0dXJuImdlbmVyaWMiPT09ZT9bImRhdGEuc2V0KCIsdCwiLCIsciwiKSJdLmpvaW4oIiIpOlsiZGF0YVsiLHQsIl09IixyXS5qb2luKCIiKX1pZihyLnB1c2goWyJmdW5jdGlvbiAiLG4sIigiLGEuam9pbigiLCIpLCIpe3ZhciAiLGwuam9pbigiLCIpXS5qb2luKCIiKSwiZm9yKGk9bGVmdCsxO2k8PXJpZ2h0OysraSl7Iiwiaj1pO3B0cis9czAiLCJjcHRyPXB0ciIpLHQubGVuZ3RoPjEpe2ZvcihyLnB1c2goImRwdHI9MDtzcHRyPXB0ciIpLHU9dC5sZW5ndGgtMTt1Pj0wOy0tdSkwIT09KHA9dFt1XSkmJnIucHVzaChbImZvcihpIixwLCI9MDtpIixwLCI8biIscCwiOysraSIscCwiKXsiXS5qb2luKCIiKSk7Zm9yKHIucHVzaCgic2NyYXRjaFtkcHRyKytdPSIsaCgic3B0ciIpKSx1PTA7dTx0Lmxlbmd0aDsrK3UpMCE9PShwPXRbdV0pJiZyLnB1c2goInNwdHIrPWQiK3AsIn0iKTtmb3Ioci5wdXNoKCJfX2c6d2hpbGUoai0tXHgzZWxlZnQpeyIsImRwdHI9MCIsInNwdHI9Y3B0ci1zMCIpLHU9MTt1PHQubGVuZ3RoOysrdSkxPT09dSYmci5wdXNoKCJfX2w6Iiksci5wdXNoKFsiZm9yKGkiLHUsIj0wO2kiLHUsIjxuIix1LCI7KytpIix1LCIpeyJdLmpvaW4oIiIpKTtmb3Ioci5wdXNoKFsiYT0iLGgoInNwdHIiKSwiXG5iPXNjcmF0Y2hbZHB0cl1cbmlmKGE8Yil7YnJlYWsgX19nfVxuaWYoYT5iKXticmVhayBfX2x9Il0uam9pbigiIikpLHU9dC5sZW5ndGgtMTt1Pj0xOy0tdSlyLnB1c2goInNwdHIrPWUiK3UsImRwdHIrPWYiK3UsIn0iKTtmb3Ioci5wdXNoKCJkcHRyPWNwdHI7c3B0cj1jcHRyLXMwIiksdT10Lmxlbmd0aC0xO3U+PTA7LS11KTAhPT0ocD10W3VdKSYmci5wdXNoKFsiZm9yKGkiLHAsIj0wO2kiLHAsIjxuIixwLCI7KytpIixwLCIpeyJdLmpvaW4oIiIpKTtmb3Ioci5wdXNoKGYoImRwdHIiLGgoInNwdHIiKSkpLHU9MDt1PHQubGVuZ3RoOysrdSkwIT09KHA9dFt1XSkmJnIucHVzaChbImRwdHIrPWQiLHAsIjtzcHRyKz1kIixwXS5qb2luKCIiKSwifSIpO2ZvcihyLnB1c2goImNwdHItPXMwXG59Iiksci5wdXNoKCJkcHRyPWNwdHI7c3B0cj0wIiksdT10Lmxlbmd0aC0xO3U+PTA7LS11KTAhPT0ocD10W3VdKSYmci5wdXNoKFsiZm9yKGkiLHAsIj0wO2kiLHAsIjxuIixwLCI7KytpIixwLCIpeyJdLmpvaW4oIiIpKTtmb3Ioci5wdXNoKGYoImRwdHIiLCJzY3JhdGNoW3NwdHIrK10iKSksdT0wO3U8dC5sZW5ndGg7Kyt1KXt2YXIgcDswIT09KHA9dFt1XSkmJnIucHVzaCgiZHB0cis9ZCIrcCwifSIpfX1lbHNlIHIucHVzaCgic2NyYXRjaD0iK2goInB0ciIpLCJ3aGlsZSgoai0tXHgzZWxlZnQpJiYoIitoKCJjcHRyLXMwIikrIj5zY3JhdGNoKSl7IixmKCJjcHRyIixoKCJjcHRyLXMwIikpLCJjcHRyLT1zMCIsIn0iLGYoImNwdHIiLCJzY3JhdGNoIikpO3JldHVybiByLnB1c2goIn0iKSx0Lmxlbmd0aD4xJiZzJiZyLnB1c2goImZyZWUoc2NyYXRjaCkiKSxyLnB1c2goIn0gcmV0dXJuICIrbikscz9uZXcgRnVuY3Rpb24oIm1hbGxvYyIsImZyZWUiLHIuam9pbigiXG4iKSkoc1swXSxzWzFdKTpuZXcgRnVuY3Rpb24oci5qb2luKCJcbiIpKSgpfSh0LGUpLHk9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPVsiJ3VzZSBzdHJpY3QnIl0scz1bIm5kYXJyYXlRdWlja1NvcnQiLHQuam9pbigiZCIpLGVdLmpvaW4oIiIpLGw9WyJsZWZ0IiwicmlnaHQiLCJkYXRhIiwib2Zmc2V0Il0uY29uY2F0KG8odC5sZW5ndGgpKSxjPWkoZSksdT0wO24ucHVzaChbImZ1bmN0aW9uICIscywiKCIsbC5qb2luKCIsIiksIil7Il0uam9pbigiIikpO3ZhciBoPVsic2l4dGg9KChyaWdodC1sZWZ0KzEpLzYpfDAiLCJpbmRleDE9bGVmdCtzaXh0aCIsImluZGV4NT1yaWdodC1zaXh0aCIsImluZGV4Mz0obGVmdCtyaWdodCk+PjEiLCJpbmRleDI9aW5kZXgzLXNpeHRoIiwiaW5kZXg0PWluZGV4MytzaXh0aCIsImVsMT1pbmRleDEiLCJlbDI9aW5kZXgyIiwiZWwzPWluZGV4MyIsImVsND1pbmRleDQiLCJlbDU9aW5kZXg1IiwibGVzcz1sZWZ0KzEiLCJncmVhdD1yaWdodC0xIiwicGl2b3RzX2FyZV9lcXVhbD10cnVlIiwidG1wIiwidG1wMCIsIngiLCJ5IiwieiIsImsiLCJwdHIwIiwicHRyMSIsInB0cjIiLCJjb21wX3Bpdm90MT0wIiwiY29tcF9waXZvdDI9MCIsImNvbXA9MCJdO2lmKHQubGVuZ3RoPjEpe2Zvcih2YXIgZj1bXSxwPTE7cDx0Lmxlbmd0aDsrK3ApZi5wdXNoKCJuIitwKSxoLnB1c2goImkiK3ApO2ZvcihwPTA7cDw4OysrcCloLnB1c2goImJfcHRyIitwKTtoLnB1c2goInB0cjMiLCJwdHI0IiwicHRyNSIsInB0cjYiLCJwdHI3IiwicGl2b3RfcHRyIiwicHRyX3NoaWZ0IiwiZWxlbWVudFNpemU9IitmLmpvaW4oIioiKSksYz9oLnB1c2goInBpdm90MT1tYWxsb2MoZWxlbWVudFNpemUpIiwicGl2b3QyPW1hbGxvYyhlbGVtZW50U2l6ZSkiKTpoLnB1c2goInBpdm90MT1uZXcgQXJyYXkoZWxlbWVudFNpemUpLHBpdm90Mj1uZXcgQXJyYXkoZWxlbWVudFNpemUpIil9ZWxzZSBoLnB1c2goInBpdm90MSIsInBpdm90MiIpO2Z1bmN0aW9uIGQodCl7cmV0dXJuWyIob2Zmc2V0KyIsdCwiKnMwKSJdLmpvaW4oIiIpfWZ1bmN0aW9uIGcodCl7cmV0dXJuImdlbmVyaWMiPT09ZT9bImRhdGEuZ2V0KCIsdCwiKSJdLmpvaW4oIiIpOlsiZGF0YVsiLHQsIl0iXS5qb2luKCIiKX1mdW5jdGlvbiB2KHQscil7cmV0dXJuImdlbmVyaWMiPT09ZT9bImRhdGEuc2V0KCIsdCwiLCIsciwiKSJdLmpvaW4oIiIpOlsiZGF0YVsiLHQsIl09IixyXS5qb2luKCIiKX1mdW5jdGlvbiBtKGUscixhKXtpZigxPT09ZS5sZW5ndGgpbi5wdXNoKCJwdHIwPSIrZChlWzBdKSk7ZWxzZSBmb3IodmFyIGk9MDtpPGUubGVuZ3RoOysraSluLnB1c2goWyJiX3B0ciIsaSwiPXMwKiIsZVtpXV0uam9pbigiIikpO2ZvcihyJiZuLnB1c2goInBpdm90X3B0cj0wIiksbi5wdXNoKCJwdHJfc2hpZnQ9b2Zmc2V0IiksaT10Lmxlbmd0aC0xO2k+PTA7LS1pKTAhPT0obz10W2ldKSYmbi5wdXNoKFsiZm9yKGkiLG8sIj0wO2kiLG8sIjxuIixvLCI7KytpIixvLCIpeyJdLmpvaW4oIiIpKTtpZihlLmxlbmd0aD4xKWZvcihpPTA7aTxlLmxlbmd0aDsrK2kpbi5wdXNoKFsicHRyIixpLCI9Yl9wdHIiLGksIitwdHJfc2hpZnQiXS5qb2luKCIiKSk7Zm9yKG4ucHVzaChhKSxyJiZuLnB1c2goIisrcGl2b3RfcHRyIiksaT0wO2k8dC5sZW5ndGg7KytpKXt2YXIgbzswIT09KG89dFtpXSkmJihlLmxlbmd0aD4xP24ucHVzaCgicHRyX3NoaWZ0Kz1kIitvKTpuLnB1c2goInB0cjArPWQiK28pLG4ucHVzaCgifSIpKX19ZnVuY3Rpb24geShlLHIsYSxpKXtpZigxPT09ci5sZW5ndGgpbi5wdXNoKCJwdHIwPSIrZChyWzBdKSk7ZWxzZXtmb3IodmFyIG89MDtvPHIubGVuZ3RoOysrbyluLnB1c2goWyJiX3B0ciIsbywiPXMwKiIscltvXV0uam9pbigiIikpO24ucHVzaCgicHRyX3NoaWZ0PW9mZnNldCIpfWZvcihhJiZuLnB1c2goInBpdm90X3B0cj0wIiksZSYmbi5wdXNoKGUrIjoiKSxvPTE7bzx0Lmxlbmd0aDsrK28pbi5wdXNoKFsiZm9yKGkiLG8sIj0wO2kiLG8sIjxuIixvLCI7KytpIixvLCIpeyJdLmpvaW4oIiIpKTtpZihyLmxlbmd0aD4xKWZvcihvPTA7bzxyLmxlbmd0aDsrK28pbi5wdXNoKFsicHRyIixvLCI9Yl9wdHIiLG8sIitwdHJfc2hpZnQiXS5qb2luKCIiKSk7Zm9yKG4ucHVzaChpKSxvPXQubGVuZ3RoLTE7bz49MTstLW8pYSYmbi5wdXNoKCJwaXZvdF9wdHIrPWYiK28pLHIubGVuZ3RoPjE/bi5wdXNoKCJwdHJfc2hpZnQrPWUiK28pOm4ucHVzaCgicHRyMCs9ZSIrbyksbi5wdXNoKCJ9Iil9ZnVuY3Rpb24geCgpe3QubGVuZ3RoPjEmJmMmJm4ucHVzaCgiZnJlZShwaXZvdDEpIiwiZnJlZShwaXZvdDIpIil9ZnVuY3Rpb24gYihlLHIpe3ZhciBhPSJlbCIrZSxpPSJlbCIrcjtpZih0Lmxlbmd0aD4xKXt2YXIgbz0iX19sIisgKyt1O3kobyxbYSxpXSwhMSxbImNvbXA9IixnKCJwdHIwIiksIi0iLGcoInB0cjEiKSwiXG4iLCJpZihjb21wPjApe3RtcDA9IixhLCI7IixhLCI9IixpLCI7IixpLCI9dG1wMDticmVhayAiLG8sIn1cbiIsImlmKGNvbXA8MCl7YnJlYWsgIixvLCJ9Il0uam9pbigiIikpfWVsc2Ugbi5wdXNoKFsiaWYoIixnKGQoYSkpLCI+IixnKGQoaSkpLCIpe3RtcDA9IixhLCI7IixhLCI9IixpLCI7IixpLCI9dG1wMH0iXS5qb2luKCIiKSl9ZnVuY3Rpb24gXyhlLHIpe3QubGVuZ3RoPjE/bShbZSxyXSwhMSx2KCJwdHIwIixnKCJwdHIxIikpKTpuLnB1c2godihkKGUpLGcoZChyKSkpKX1mdW5jdGlvbiB3KGUscixhKXtpZih0Lmxlbmd0aD4xKXt2YXIgaT0iX19sIisgKyt1O3koaSxbcl0sITAsW2UsIj0iLGcoInB0cjAiKSwiLXBpdm90IixhLCJbcGl2b3RfcHRyXVxuIiwiaWYoIixlLCIhPT0wKXticmVhayAiLGksIn0iXS5qb2luKCIiKSl9ZWxzZSBuLnB1c2goW2UsIj0iLGcoZChyKSksIi1waXZvdCIsYV0uam9pbigiIikpfWZ1bmN0aW9uIGsoZSxyKXt0Lmxlbmd0aD4xP20oW2Uscl0sITEsWyJ0bXA9IixnKCJwdHIwIiksIlxuIix2KCJwdHIwIixnKCJwdHIxIikpLCJcbiIsdigicHRyMSIsInRtcCIpXS5qb2luKCIiKSk6bi5wdXNoKFsicHRyMD0iLGQoZSksIlxuIiwicHRyMT0iLGQociksIlxuIiwidG1wPSIsZygicHRyMCIpLCJcbiIsdigicHRyMCIsZygicHRyMSIpKSwiXG4iLHYoInB0cjEiLCJ0bXAiKV0uam9pbigiIikpfWZ1bmN0aW9uIFQoZSxyLGEpe3QubGVuZ3RoPjE/KG0oW2UscixhXSwhMSxbInRtcD0iLGcoInB0cjAiKSwiXG4iLHYoInB0cjAiLGcoInB0cjEiKSksIlxuIix2KCJwdHIxIixnKCJwdHIyIikpLCJcbiIsdigicHRyMiIsInRtcCIpXS5qb2luKCIiKSksbi5wdXNoKCIrKyIrciwiLS0iK2EpKTpuLnB1c2goWyJwdHIwPSIsZChlKSwiXG4iLCJwdHIxPSIsZChyKSwiXG4iLCJwdHIyPSIsZChhKSwiXG4iLCIrKyIsciwiXG4iLCItLSIsYSwiXG4iLCJ0bXA9IixnKCJwdHIwIiksIlxuIix2KCJwdHIwIixnKCJwdHIxIikpLCJcbiIsdigicHRyMSIsZygicHRyMiIpKSwiXG4iLHYoInB0cjIiLCJ0bXAiKV0uam9pbigiIikpfWZ1bmN0aW9uIE0odCxlKXtrKHQsZSksbi5wdXNoKCItLSIrZSl9ZnVuY3Rpb24gQShlLHIsYSl7dC5sZW5ndGg+MT9tKFtlLHJdLCEwLFt2KCJwdHIwIixnKCJwdHIxIikpLCJcbiIsdigicHRyMSIsWyJwaXZvdCIsYSwiW3Bpdm90X3B0cl0iXS5qb2luKCIiKSldLmpvaW4oIiIpKTpuLnB1c2godihkKGUpLGcoZChyKSkpLHYoZChyKSwicGl2b3QiK2EpKX1mdW5jdGlvbiBTKGUscil7bi5wdXNoKFsiaWYoKCIsciwiLSIsZSwiKTw9IixhLCIpe1xuIiwiaW5zZXJ0aW9uU29ydCgiLGUsIiwiLHIsIixkYXRhLG9mZnNldCwiLG8odC5sZW5ndGgpLmpvaW4oIiwiKSwiKVxuIiwifWVsc2V7XG4iLHMsIigiLGUsIiwiLHIsIixkYXRhLG9mZnNldCwiLG8odC5sZW5ndGgpLmpvaW4oIiwiKSwiKVxuIiwifSJdLmpvaW4oIiIpKX1mdW5jdGlvbiBFKGUscixhKXt0Lmxlbmd0aD4xPyhuLnB1c2goWyJfX2wiLCsrdSwiOndoaWxlKHRydWUpeyJdLmpvaW4oIiIpKSxtKFtlXSwhMCxbImlmKCIsZygicHRyMCIpLCIhPT1waXZvdCIsciwiW3Bpdm90X3B0cl0pe2JyZWFrIF9fbCIsdSwifSJdLmpvaW4oIiIpKSxuLnB1c2goYSwifSIpKTpuLnB1c2goWyJ3aGlsZSgiLGcoZChlKSksIj09PXBpdm90IixyLCIpeyIsYSwifSJdLmpvaW4oIiIpKX1yZXR1cm4gbi5wdXNoKCJ2YXIgIitoLmpvaW4oIiwiKSksYigxLDIpLGIoNCw1KSxiKDEsMyksYigyLDMpLGIoMSw0KSxiKDMsNCksYigyLDUpLGIoMiwzKSxiKDQsNSksdC5sZW5ndGg+MT9tKFsiZWwxIiwiZWwyIiwiZWwzIiwiZWw0IiwiZWw1IiwiaW5kZXgxIiwiaW5kZXgzIiwiaW5kZXg1Il0sITAsWyJwaXZvdDFbcGl2b3RfcHRyXT0iLGcoInB0cjEiKSwiXG4iLCJwaXZvdDJbcGl2b3RfcHRyXT0iLGcoInB0cjMiKSwiXG4iLCJwaXZvdHNfYXJlX2VxdWFsPXBpdm90c19hcmVfZXF1YWwmJihwaXZvdDFbcGl2b3RfcHRyXT09PXBpdm90MltwaXZvdF9wdHJdKVxuIiwieD0iLGcoInB0cjAiKSwiXG4iLCJ5PSIsZygicHRyMiIpLCJcbiIsIno9IixnKCJwdHI0IiksIlxuIix2KCJwdHI1IiwieCIpLCJcbiIsdigicHRyNiIsInkiKSwiXG4iLHYoInB0cjciLCJ6IildLmpvaW4oIiIpKTpuLnB1c2goWyJwaXZvdDE9IixnKGQoImVsMiIpKSwiXG4iLCJwaXZvdDI9IixnKGQoImVsNCIpKSwiXG4iLCJwaXZvdHNfYXJlX2VxdWFsPXBpdm90MT09PXBpdm90MlxuIiwieD0iLGcoZCgiZWwxIikpLCJcbiIsInk9IixnKGQoImVsMyIpKSwiXG4iLCJ6PSIsZyhkKCJlbDUiKSksIlxuIix2KGQoImluZGV4MSIpLCJ4IiksIlxuIix2KGQoImluZGV4MyIpLCJ5IiksIlxuIix2KGQoImluZGV4NSIpLCJ6IildLmpvaW4oIiIpKSxfKCJpbmRleDIiLCJsZWZ0IiksXygiaW5kZXg0IiwicmlnaHQiKSxuLnB1c2goImlmKHBpdm90c19hcmVfZXF1YWwpeyIpLG4ucHVzaCgiZm9yKGs9bGVzcztrPD1ncmVhdDsrK2speyIpLHcoImNvbXAiLCJrIiwxKSxuLnB1c2goImlmKGNvbXA9PT0wKXtjb250aW51ZX0iKSxuLnB1c2goImlmKGNvbXA8MCl7Iiksbi5wdXNoKCJpZihrIT09bGVzcyl7IiksaygiayIsImxlc3MiKSxuLnB1c2goIn0iKSxuLnB1c2goIisrbGVzcyIpLG4ucHVzaCgifWVsc2V7Iiksbi5wdXNoKCJ3aGlsZSh0cnVlKXsiKSx3KCJjb21wIiwiZ3JlYXQiLDEpLG4ucHVzaCgiaWYoY29tcD4wKXsiKSxuLnB1c2goImdyZWF0LS0iKSxuLnB1c2goIn1lbHNlIGlmKGNvbXA8MCl7IiksVCgiayIsImxlc3MiLCJncmVhdCIpLG4ucHVzaCgiYnJlYWsiKSxuLnB1c2goIn1lbHNleyIpLE0oImsiLCJncmVhdCIpLG4ucHVzaCgiYnJlYWsiKSxuLnB1c2goIn0iKSxuLnB1c2goIn0iKSxuLnB1c2goIn0iKSxuLnB1c2goIn0iKSxuLnB1c2goIn1lbHNleyIpLG4ucHVzaCgiZm9yKGs9bGVzcztrPD1ncmVhdDsrK2speyIpLHcoImNvbXBfcGl2b3QxIiwiayIsMSksbi5wdXNoKCJpZihjb21wX3Bpdm90MTwwKXsiKSxuLnB1c2goImlmKGshPT1sZXNzKXsiKSxrKCJrIiwibGVzcyIpLG4ucHVzaCgifSIpLG4ucHVzaCgiKytsZXNzIiksbi5wdXNoKCJ9ZWxzZXsiKSx3KCJjb21wX3Bpdm90MiIsImsiLDIpLG4ucHVzaCgiaWYoY29tcF9waXZvdDI+MCl7Iiksbi5wdXNoKCJ3aGlsZSh0cnVlKXsiKSx3KCJjb21wIiwiZ3JlYXQiLDIpLG4ucHVzaCgiaWYoY29tcD4wKXsiKSxuLnB1c2goImlmKC0tZ3JlYXQ8ayl7YnJlYWt9Iiksbi5wdXNoKCJjb250aW51ZSIpLG4ucHVzaCgifWVsc2V7IiksdygiY29tcCIsImdyZWF0IiwxKSxuLnB1c2goImlmKGNvbXA8MCl7IiksVCgiayIsImxlc3MiLCJncmVhdCIpLG4ucHVzaCgifWVsc2V7IiksTSgiayIsImdyZWF0Iiksbi5wdXNoKCJ9Iiksbi5wdXNoKCJicmVhayIpLG4ucHVzaCgifSIpLG4ucHVzaCgifSIpLG4ucHVzaCgifSIpLG4ucHVzaCgifSIpLG4ucHVzaCgifSIpLG4ucHVzaCgifSIpLEEoImxlZnQiLCIobGVzcy0xKSIsMSksQSgicmlnaHQiLCIoZ3JlYXQrMSkiLDIpLFMoImxlZnQiLCIobGVzcy0yKSIpLFMoIihncmVhdCsyKSIsInJpZ2h0Iiksbi5wdXNoKCJpZihwaXZvdHNfYXJlX2VxdWFsKXsiKSx4KCksbi5wdXNoKCJyZXR1cm4iKSxuLnB1c2goIn0iKSxuLnB1c2goImlmKGxlc3M8aW5kZXgxJiZncmVhdD5pbmRleDUpeyIpLEUoImxlc3MiLDEsIisrbGVzcyIpLEUoImdyZWF0IiwyLCItLWdyZWF0Iiksbi5wdXNoKCJmb3Ioaz1sZXNzO2s8PWdyZWF0Oysrayl7IiksdygiY29tcF9waXZvdDEiLCJrIiwxKSxuLnB1c2goImlmKGNvbXBfcGl2b3QxPT09MCl7Iiksbi5wdXNoKCJpZihrIT09bGVzcyl7IiksaygiayIsImxlc3MiKSxuLnB1c2goIn0iKSxuLnB1c2goIisrbGVzcyIpLG4ucHVzaCgifWVsc2V7IiksdygiY29tcF9waXZvdDIiLCJrIiwyKSxuLnB1c2goImlmKGNvbXBfcGl2b3QyPT09MCl7Iiksbi5wdXNoKCJ3aGlsZSh0cnVlKXsiKSx3KCJjb21wIiwiZ3JlYXQiLDIpLG4ucHVzaCgiaWYoY29tcD09PTApeyIpLG4ucHVzaCgiaWYoLS1ncmVhdDxrKXticmVha30iKSxuLnB1c2goImNvbnRpbnVlIiksbi5wdXNoKCJ9ZWxzZXsiKSx3KCJjb21wIiwiZ3JlYXQiLDEpLG4ucHVzaCgiaWYoY29tcDwwKXsiKSxUKCJrIiwibGVzcyIsImdyZWF0Iiksbi5wdXNoKCJ9ZWxzZXsiKSxNKCJrIiwiZ3JlYXQiKSxuLnB1c2goIn0iKSxuLnB1c2goImJyZWFrIiksbi5wdXNoKCJ9Iiksbi5wdXNoKCJ9Iiksbi5wdXNoKCJ9Iiksbi5wdXNoKCJ9Iiksbi5wdXNoKCJ9Iiksbi5wdXNoKCJ9IikseCgpLFMoImxlc3MiLCJncmVhdCIpLG4ucHVzaCgifXJldHVybiAiK3MpLHQubGVuZ3RoPjEmJmM/bmV3IEZ1bmN0aW9uKCJpbnNlcnRpb25Tb3J0IiwibWFsbG9jIiwiZnJlZSIsbi5qb2luKCJcbiIpKShyLGNbMF0sY1sxXSk6bmV3IEZ1bmN0aW9uKCJpbnNlcnRpb25Tb3J0IixuLmpvaW4oIlxuIikpKHIpfSh0LGUsbSk7cmV0dXJuIHYobSx5KX19LHsidHlwZWRhcnJheS1wb29sIjo1NDR9XSw0NTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9saWIvY29tcGlsZV9zb3J0LmpzIiksYT17fTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5vcmRlcixyPXQuZHR5cGUsaT1bZSxyXS5qb2luKCI6Iiksbz1hW2ldO3JldHVybiBvfHwoYVtpXT1vPW4oZSxyKSksbyh0KSx0fX0seyIuL2xpYi9jb21waWxlX3NvcnQuanMiOjQ0OX1dLDQ1MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJuZGFycmF5LWxpbmVhci1pbnRlcnBvbGF0ZSIpLGE9dCgiY3dpc2UvbGliL3dyYXBwZXIiKSh7YXJnczpbImluZGV4IiwiYXJyYXkiLCJzY2FsYXIiLCJzY2FsYXIiLCJzY2FsYXIiXSxwcmU6e2JvZHk6Int0aGlzX3dhcnBlZD1uZXcgQXJyYXkoX2lubGluZV8zX2FyZzRfKX0iLGFyZ3M6W3tuYW1lOiJfaW5saW5lXzNfYXJnMF8iLGx2YWx1ZTohMSxydmFsdWU6ITEsY291bnQ6MH0se25hbWU6Il9pbmxpbmVfM19hcmcxXyIsbHZhbHVlOiExLHJ2YWx1ZTohMSxjb3VudDowfSx7bmFtZToiX2lubGluZV8zX2FyZzJfIixsdmFsdWU6ITEscnZhbHVlOiExLGNvdW50OjB9LHtuYW1lOiJfaW5saW5lXzNfYXJnM18iLGx2YWx1ZTohMSxydmFsdWU6ITEsY291bnQ6MH0se25hbWU6Il9pbmxpbmVfM19hcmc0XyIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoxfV0sdGhpc1ZhcnM6WyJ0aGlzX3dhcnBlZCJdLGxvY2FsVmFyczpbXX0sYm9keTp7Ym9keToie19pbmxpbmVfNF9hcmcyXyh0aGlzX3dhcnBlZCxfaW5saW5lXzRfYXJnMF8pLF9pbmxpbmVfNF9hcmcxXz1faW5saW5lXzRfYXJnM18uYXBwbHkodm9pZCAwLHRoaXNfd2FycGVkKX0iLGFyZ3M6W3tuYW1lOiJfaW5saW5lXzRfYXJnMF8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfNF9hcmcxXyIsbHZhbHVlOiEwLHJ2YWx1ZTohMSxjb3VudDoxfSx7bmFtZToiX2lubGluZV80X2FyZzJfIixsdmFsdWU6ITEscnZhbHVlOiEwLGNvdW50OjF9LHtuYW1lOiJfaW5saW5lXzRfYXJnM18iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfNF9hcmc0XyIsbHZhbHVlOiExLHJ2YWx1ZTohMSxjb3VudDowfV0sdGhpc1ZhcnM6WyJ0aGlzX3dhcnBlZCJdLGxvY2FsVmFyczpbXX0scG9zdDp7Ym9keToie30iLGFyZ3M6W10sdGhpc1ZhcnM6W10sbG9jYWxWYXJzOltdfSxkZWJ1ZzohMSxmdW5jTmFtZToid2FycE5EIixibG9ja1NpemU6NjR9KSxpPXQoImN3aXNlL2xpYi93cmFwcGVyIikoe2FyZ3M6WyJpbmRleCIsImFycmF5Iiwic2NhbGFyIiwic2NhbGFyIiwic2NhbGFyIl0scHJlOntib2R5OiJ7dGhpc193YXJwZWQ9WzBdfSIsYXJnczpbXSx0aGlzVmFyczpbInRoaXNfd2FycGVkIl0sbG9jYWxWYXJzOltdfSxib2R5Ontib2R5OiJ7X2lubGluZV83X2FyZzJfKHRoaXNfd2FycGVkLF9pbmxpbmVfN19hcmcwXyksX2lubGluZV83X2FyZzFfPV9pbmxpbmVfN19hcmczXyhfaW5saW5lXzdfYXJnNF8sdGhpc193YXJwZWRbMF0pfSIsYXJnczpbe25hbWU6Il9pbmxpbmVfN19hcmcwXyIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoxfSx7bmFtZToiX2lubGluZV83X2FyZzFfIixsdmFsdWU6ITAscnZhbHVlOiExLGNvdW50OjF9LHtuYW1lOiJfaW5saW5lXzdfYXJnMl8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfN19hcmczXyIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoxfSx7bmFtZToiX2lubGluZV83X2FyZzRfIixsdmFsdWU6ITEscnZhbHVlOiEwLGNvdW50OjF9XSx0aGlzVmFyczpbInRoaXNfd2FycGVkIl0sbG9jYWxWYXJzOltdfSxwb3N0Ontib2R5OiJ7fSIsYXJnczpbXSx0aGlzVmFyczpbXSxsb2NhbFZhcnM6W119LGRlYnVnOiExLGZ1bmNOYW1lOiJ3YXJwMUQiLGJsb2NrU2l6ZTo2NH0pLG89dCgiY3dpc2UvbGliL3dyYXBwZXIiKSh7YXJnczpbImluZGV4IiwiYXJyYXkiLCJzY2FsYXIiLCJzY2FsYXIiLCJzY2FsYXIiXSxwcmU6e2JvZHk6Int0aGlzX3dhcnBlZD1bMCwwXX0iLGFyZ3M6W10sdGhpc1ZhcnM6WyJ0aGlzX3dhcnBlZCJdLGxvY2FsVmFyczpbXX0sYm9keTp7Ym9keToie19pbmxpbmVfMTBfYXJnMl8odGhpc193YXJwZWQsX2lubGluZV8xMF9hcmcwXyksX2lubGluZV8xMF9hcmcxXz1faW5saW5lXzEwX2FyZzNfKF9pbmxpbmVfMTBfYXJnNF8sdGhpc193YXJwZWRbMF0sdGhpc193YXJwZWRbMV0pfSIsYXJnczpbe25hbWU6Il9pbmxpbmVfMTBfYXJnMF8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfMTBfYXJnMV8iLGx2YWx1ZTohMCxydmFsdWU6ITEsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfMTBfYXJnMl8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfMTBfYXJnM18iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfMTBfYXJnNF8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX1dLHRoaXNWYXJzOlsidGhpc193YXJwZWQiXSxsb2NhbFZhcnM6W119LHBvc3Q6e2JvZHk6Int9IixhcmdzOltdLHRoaXNWYXJzOltdLGxvY2FsVmFyczpbXX0sZGVidWc6ITEsZnVuY05hbWU6IndhcnAyRCIsYmxvY2tTaXplOjY0fSkscz10KCJjd2lzZS9saWIvd3JhcHBlciIpKHthcmdzOlsiaW5kZXgiLCJhcnJheSIsInNjYWxhciIsInNjYWxhciIsInNjYWxhciJdLHByZTp7Ym9keToie3RoaXNfd2FycGVkPVswLDAsMF19IixhcmdzOltdLHRoaXNWYXJzOlsidGhpc193YXJwZWQiXSxsb2NhbFZhcnM6W119LGJvZHk6e2JvZHk6IntfaW5saW5lXzEzX2FyZzJfKHRoaXNfd2FycGVkLF9pbmxpbmVfMTNfYXJnMF8pLF9pbmxpbmVfMTNfYXJnMV89X2lubGluZV8xM19hcmczXyhfaW5saW5lXzEzX2FyZzRfLHRoaXNfd2FycGVkWzBdLHRoaXNfd2FycGVkWzFdLHRoaXNfd2FycGVkWzJdKX0iLGFyZ3M6W3tuYW1lOiJfaW5saW5lXzEzX2FyZzBfIixsdmFsdWU6ITEscnZhbHVlOiEwLGNvdW50OjF9LHtuYW1lOiJfaW5saW5lXzEzX2FyZzFfIixsdmFsdWU6ITAscnZhbHVlOiExLGNvdW50OjF9LHtuYW1lOiJfaW5saW5lXzEzX2FyZzJfIixsdmFsdWU6ITEscnZhbHVlOiEwLGNvdW50OjF9LHtuYW1lOiJfaW5saW5lXzEzX2FyZzNfIixsdmFsdWU6ITEscnZhbHVlOiEwLGNvdW50OjF9LHtuYW1lOiJfaW5saW5lXzEzX2FyZzRfIixsdmFsdWU6ITEscnZhbHVlOiEwLGNvdW50OjF9XSx0aGlzVmFyczpbInRoaXNfd2FycGVkIl0sbG9jYWxWYXJzOltdfSxwb3N0Ontib2R5OiJ7fSIsYXJnczpbXSx0aGlzVmFyczpbXSxsb2NhbFZhcnM6W119LGRlYnVnOiExLGZ1bmNOYW1lOiJ3YXJwM0QiLGJsb2NrU2l6ZTo2NH0pO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7c3dpdGNoKGUuc2hhcGUubGVuZ3RoKXtjYXNlIDE6aSh0LHIsbi5kMSxlKTticmVhaztjYXNlIDI6byh0LHIsbi5kMixlKTticmVhaztjYXNlIDM6cyh0LHIsbi5kMyxlKTticmVhaztkZWZhdWx0OmEodCxyLG4uYmluZCh2b2lkIDAsZSksZS5zaGFwZS5sZW5ndGgpfXJldHVybiB0fX0seyJjd2lzZS9saWIvd3JhcHBlciI6MTUxLCJuZGFycmF5LWxpbmVhci1pbnRlcnBvbGF0ZSI6NDQ1fV0sNDUyOltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiaW90YS1hcnJheSIpLGE9dCgiaXMtYnVmZmVyIiksaT0idW5kZWZpbmVkIiE9dHlwZW9mIEZsb2F0NjRBcnJheTtmdW5jdGlvbiBvKHQsZSl7cmV0dXJuIHRbMF0tZVswXX1mdW5jdGlvbiBzKCl7dmFyIHQsZT10aGlzLnN0cmlkZSxyPW5ldyBBcnJheShlLmxlbmd0aCk7Zm9yKHQ9MDt0PHIubGVuZ3RoOysrdClyW3RdPVtNYXRoLmFicyhlW3RdKSx0XTtyLnNvcnQobyk7dmFyIG49bmV3IEFycmF5KHIubGVuZ3RoKTtmb3IodD0wO3Q8bi5sZW5ndGg7Kyt0KW5bdF09clt0XVsxXTtyZXR1cm4gbn1mdW5jdGlvbiBsKHQsZSl7dmFyIHI9WyJWaWV3IixlLCJkIix0XS5qb2luKCIiKTtlPDAmJihyPSJWaWV3X05pbCIrdCk7dmFyIGE9ImdlbmVyaWMiPT09dDtpZigtMT09PWUpe3ZhciBpPSJmdW5jdGlvbiAiK3IrIihhKXt0aGlzLmRhdGE9YTt9O3ZhciBwcm90bz0iK3IrIi5wcm90b3R5cGU7cHJvdG8uZHR5cGU9JyIrdCsiJztwcm90by5pbmRleD1mdW5jdGlvbigpe3JldHVybiAtMX07cHJvdG8uc2l6ZT0wO3Byb3RvLmRpbWVuc2lvbj0tMTtwcm90by5zaGFwZT1wcm90by5zdHJpZGU9cHJvdG8ub3JkZXI9W107cHJvdG8ubG89cHJvdG8uaGk9cHJvdG8udHJhbnNwb3NlPXByb3RvLnN0ZXA9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3ICIrcisiKHRoaXMuZGF0YSk7fTtwcm90by5nZXQ9cHJvdG8uc2V0PWZ1bmN0aW9uKCl7fTtwcm90by5waWNrPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9O3JldHVybiBmdW5jdGlvbiBjb25zdHJ1Y3RfIityKyIoYSl7cmV0dXJuIG5ldyAiK3IrIihhKTt9IjtyZXR1cm4gbmV3IEZ1bmN0aW9uKGkpKCl9aWYoMD09PWUpe2k9ImZ1bmN0aW9uICIrcisiKGEsZCkge3RoaXMuZGF0YSA9IGE7dGhpcy5vZmZzZXQgPSBkfTt2YXIgcHJvdG89IityKyIucHJvdG90eXBlO3Byb3RvLmR0eXBlPSciK3QrIic7cHJvdG8uaW5kZXg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vZmZzZXR9O3Byb3RvLmRpbWVuc2lvbj0wO3Byb3RvLnNpemU9MTtwcm90by5zaGFwZT1wcm90by5zdHJpZGU9cHJvdG8ub3JkZXI9W107cHJvdG8ubG89cHJvdG8uaGk9cHJvdG8udHJhbnNwb3NlPXByb3RvLnN0ZXA9ZnVuY3Rpb24gIityKyJfY29weSgpIHtyZXR1cm4gbmV3ICIrcisiKHRoaXMuZGF0YSx0aGlzLm9mZnNldCl9O3Byb3RvLnBpY2s9ZnVuY3Rpb24gIityKyJfcGljaygpe3JldHVybiBUcml2aWFsQXJyYXkodGhpcy5kYXRhKTt9O3Byb3RvLnZhbHVlT2Y9cHJvdG8uZ2V0PWZ1bmN0aW9uICIrcisiX2dldCgpe3JldHVybiAiKyhhPyJ0aGlzLmRhdGEuZ2V0KHRoaXMub2Zmc2V0KSI6InRoaXMuZGF0YVt0aGlzLm9mZnNldF0iKSsifTtwcm90by5zZXQ9ZnVuY3Rpb24gIityKyJfc2V0KHYpe3JldHVybiAiKyhhPyJ0aGlzLmRhdGEuc2V0KHRoaXMub2Zmc2V0LHYpIjoidGhpcy5kYXRhW3RoaXMub2Zmc2V0XT12IikrIn07cmV0dXJuIGZ1bmN0aW9uIGNvbnN0cnVjdF8iK3IrIihhLGIsYyxkKXtyZXR1cm4gbmV3ICIrcisiKGEsZCl9IjtyZXR1cm4gbmV3IEZ1bmN0aW9uKCJUcml2aWFsQXJyYXkiLGkpKGNbdF1bMF0pfWk9WyIndXNlIHN0cmljdCciXTt2YXIgbz1uKGUpLGw9by5tYXAoZnVuY3Rpb24odCl7cmV0dXJuImkiK3R9KSx1PSJ0aGlzLm9mZnNldCsiK28ubWFwKGZ1bmN0aW9uKHQpe3JldHVybiJ0aGlzLnN0cmlkZVsiK3QrIl0qaSIrdH0pLmpvaW4oIisiKSxoPW8ubWFwKGZ1bmN0aW9uKHQpe3JldHVybiJiIit0fSkuam9pbigiLCIpLGY9by5tYXAoZnVuY3Rpb24odCl7cmV0dXJuImMiK3R9KS5qb2luKCIsIik7aS5wdXNoKCJmdW5jdGlvbiAiK3IrIihhLCIraCsiLCIrZisiLGQpe3RoaXMuZGF0YT1hIiwidGhpcy5zaGFwZT1bIitoKyJdIiwidGhpcy5zdHJpZGU9WyIrZisiXSIsInRoaXMub2Zmc2V0PWR8MH0iLCJ2YXIgcHJvdG89IityKyIucHJvdG90eXBlIiwicHJvdG8uZHR5cGU9JyIrdCsiJyIsInByb3RvLmRpbWVuc2lvbj0iK2UpLGkucHVzaCgiT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCdzaXplJyx7Z2V0OmZ1bmN0aW9uICIrcisiX3NpemUoKXtyZXR1cm4gIitvLm1hcChmdW5jdGlvbih0KXtyZXR1cm4idGhpcy5zaGFwZVsiK3QrIl0ifSkuam9pbigiKiIpLCJ9fSkiKSwxPT09ZT9pLnB1c2goInByb3RvLm9yZGVyPVswXSIpOihpLnB1c2goIk9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywnb3JkZXInLHtnZXQ6IiksZTw0PyhpLnB1c2goImZ1bmN0aW9uICIrcisiX29yZGVyKCl7IiksMj09PWU/aS5wdXNoKCJyZXR1cm4gKE1hdGguYWJzKHRoaXMuc3RyaWRlWzBdKT5NYXRoLmFicyh0aGlzLnN0cmlkZVsxXSkpP1sxLDBdOlswLDFdfX0pIik6Mz09PWUmJmkucHVzaCgidmFyIHMwPU1hdGguYWJzKHRoaXMuc3RyaWRlWzBdKSxzMT1NYXRoLmFicyh0aGlzLnN0cmlkZVsxXSksczI9TWF0aC5hYnModGhpcy5zdHJpZGVbMl0pO2lmKHMwPnMxKXtpZihzMT5zMil7cmV0dXJuIFsyLDEsMF07fWVsc2UgaWYoczA+czIpe3JldHVybiBbMSwyLDBdO31lbHNle3JldHVybiBbMSwwLDJdO319ZWxzZSBpZihzMD5zMil7cmV0dXJuIFsyLDAsMV07fWVsc2UgaWYoczI+czEpe3JldHVybiBbMCwxLDJdO31lbHNle3JldHVybiBbMCwyLDFdO319fSkiKSk6aS5wdXNoKCJPUkRFUn0pIikpLGkucHVzaCgicHJvdG8uc2V0PWZ1bmN0aW9uICIrcisiX3NldCgiK2wuam9pbigiLCIpKyIsdil7IiksYT9pLnB1c2goInJldHVybiB0aGlzLmRhdGEuc2V0KCIrdSsiLHYpfSIpOmkucHVzaCgicmV0dXJuIHRoaXMuZGF0YVsiK3UrIl09dn0iKSxpLnB1c2goInByb3RvLmdldD1mdW5jdGlvbiAiK3IrIl9nZXQoIitsLmpvaW4oIiwiKSsiKXsiKSxhP2kucHVzaCgicmV0dXJuIHRoaXMuZGF0YS5nZXQoIit1KyIpfSIpOmkucHVzaCgicmV0dXJuIHRoaXMuZGF0YVsiK3UrIl19IiksaS5wdXNoKCJwcm90by5pbmRleD1mdW5jdGlvbiAiK3IrIl9pbmRleCgiLGwuam9pbigpLCIpe3JldHVybiAiK3UrIn0iKSxpLnB1c2goInByb3RvLmhpPWZ1bmN0aW9uICIrcisiX2hpKCIrbC5qb2luKCIsIikrIil7cmV0dXJuIG5ldyAiK3IrIih0aGlzLmRhdGEsIitvLm1hcChmdW5jdGlvbih0KXtyZXR1cm5bIih0eXBlb2YgaSIsdCwiIT09J251bWJlcid8fGkiLHQsIjwwKT90aGlzLnNoYXBlWyIsdCwiXTppIix0LCJ8MCJdLmpvaW4oIiIpfSkuam9pbigiLCIpKyIsIitvLm1hcChmdW5jdGlvbih0KXtyZXR1cm4idGhpcy5zdHJpZGVbIit0KyJdIn0pLmpvaW4oIiwiKSsiLHRoaXMub2Zmc2V0KX0iKTt2YXIgcD1vLm1hcChmdW5jdGlvbih0KXtyZXR1cm4iYSIrdCsiPXRoaXMuc2hhcGVbIit0KyJdIn0pLGQ9by5tYXAoZnVuY3Rpb24odCl7cmV0dXJuImMiK3QrIj10aGlzLnN0cmlkZVsiK3QrIl0ifSk7aS5wdXNoKCJwcm90by5sbz1mdW5jdGlvbiAiK3IrIl9sbygiK2wuam9pbigiLCIpKyIpe3ZhciBiPXRoaXMub2Zmc2V0LGQ9MCwiK3Auam9pbigiLCIpKyIsIitkLmpvaW4oIiwiKSk7Zm9yKHZhciBnPTA7ZzxlOysrZylpLnB1c2goImlmKHR5cGVvZiBpIitnKyI9PT0nbnVtYmVyJyYmaSIrZysiPj0wKXtkPWkiK2crInwwO2IrPWMiK2crIipkO2EiK2crIi09ZH0iKTtpLnB1c2goInJldHVybiBuZXcgIityKyIodGhpcy5kYXRhLCIrby5tYXAoZnVuY3Rpb24odCl7cmV0dXJuImEiK3R9KS5qb2luKCIsIikrIiwiK28ubWFwKGZ1bmN0aW9uKHQpe3JldHVybiJjIit0fSkuam9pbigiLCIpKyIsYil9IiksaS5wdXNoKCJwcm90by5zdGVwPWZ1bmN0aW9uICIrcisiX3N0ZXAoIitsLmpvaW4oIiwiKSsiKXt2YXIgIitvLm1hcChmdW5jdGlvbih0KXtyZXR1cm4iYSIrdCsiPXRoaXMuc2hhcGVbIit0KyJdIn0pLmpvaW4oIiwiKSsiLCIrby5tYXAoZnVuY3Rpb24odCl7cmV0dXJuImIiK3QrIj10aGlzLnN0cmlkZVsiK3QrIl0ifSkuam9pbigiLCIpKyIsYz10aGlzLm9mZnNldCxkPTAsY2VpbD1NYXRoLmNlaWwiKTtmb3IoZz0wO2c8ZTsrK2cpaS5wdXNoKCJpZih0eXBlb2YgaSIrZysiPT09J251bWJlcicpe2Q9aSIrZysifDA7aWYoZDwwKXtjKz1iIitnKyIqKGEiK2crIi0xKTthIitnKyI9Y2VpbCgtYSIrZysiL2QpfWVsc2V7YSIrZysiPWNlaWwoYSIrZysiL2QpfWIiK2crIio9ZH0iKTtpLnB1c2goInJldHVybiBuZXcgIityKyIodGhpcy5kYXRhLCIrby5tYXAoZnVuY3Rpb24odCl7cmV0dXJuImEiK3R9KS5qb2luKCIsIikrIiwiK28ubWFwKGZ1bmN0aW9uKHQpe3JldHVybiJiIit0fSkuam9pbigiLCIpKyIsYyl9Iik7dmFyIHY9bmV3IEFycmF5KGUpLG09bmV3IEFycmF5KGUpO2ZvcihnPTA7ZzxlOysrZyl2W2ddPSJhW2kiK2crIl0iLG1bZ109ImJbaSIrZysiXSI7aS5wdXNoKCJwcm90by50cmFuc3Bvc2U9ZnVuY3Rpb24gIityKyJfdHJhbnNwb3NlKCIrbCsiKXsiK2wubWFwKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrIj0oIit0KyI9PT11bmRlZmluZWQ/IitlKyI6Iit0KyJ8MCkifSkuam9pbigiOyIpLCJ2YXIgYT10aGlzLnNoYXBlLGI9dGhpcy5zdHJpZGU7cmV0dXJuIG5ldyAiK3IrIih0aGlzLmRhdGEsIit2LmpvaW4oIiwiKSsiLCIrbS5qb2luKCIsIikrIix0aGlzLm9mZnNldCl9IiksaS5wdXNoKCJwcm90by5waWNrPWZ1bmN0aW9uICIrcisiX3BpY2soIitsKyIpe3ZhciBhPVtdLGI9W10sYz10aGlzLm9mZnNldCIpO2ZvcihnPTA7ZzxlOysrZylpLnB1c2goImlmKHR5cGVvZiBpIitnKyI9PT0nbnVtYmVyJyYmaSIrZysiPj0wKXtjPShjK3RoaXMuc3RyaWRlWyIrZysiXSppIitnKyIpfDB9ZWxzZXthLnB1c2godGhpcy5zaGFwZVsiK2crIl0pO2IucHVzaCh0aGlzLnN0cmlkZVsiK2crIl0pfSIpO3JldHVybiBpLnB1c2goInZhciBjdG9yPUNUT1JfTElTVFthLmxlbmd0aCsxXTtyZXR1cm4gY3Rvcih0aGlzLmRhdGEsYSxiLGMpfSIpLGkucHVzaCgicmV0dXJuIGZ1bmN0aW9uIGNvbnN0cnVjdF8iK3IrIihkYXRhLHNoYXBlLHN0cmlkZSxvZmZzZXQpe3JldHVybiBuZXcgIityKyIoZGF0YSwiK28ubWFwKGZ1bmN0aW9uKHQpe3JldHVybiJzaGFwZVsiK3QrIl0ifSkuam9pbigiLCIpKyIsIitvLm1hcChmdW5jdGlvbih0KXtyZXR1cm4ic3RyaWRlWyIrdCsiXSJ9KS5qb2luKCIsIikrIixvZmZzZXQpfSIpLG5ldyBGdW5jdGlvbigiQ1RPUl9MSVNUIiwiT1JERVIiLGkuam9pbigiXG4iKSkoY1t0XSxzKX12YXIgYz17ZmxvYXQzMjpbXSxmbG9hdDY0OltdLGludDg6W10saW50MTY6W10saW50MzI6W10sdWludDg6W10sdWludDE2OltdLHVpbnQzMjpbXSxhcnJheTpbXSx1aW50OF9jbGFtcGVkOltdLGJ1ZmZlcjpbXSxnZW5lcmljOltdfTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7aWYodm9pZCAwPT09dClyZXR1cm4oMCxjLmFycmF5WzBdKShbXSk7Im51bWJlciI9PXR5cGVvZiB0JiYodD1bdF0pLHZvaWQgMD09PWUmJihlPVt0Lmxlbmd0aF0pO3ZhciBvPWUubGVuZ3RoO2lmKHZvaWQgMD09PXIpe3I9bmV3IEFycmF5KG8pO2Zvcih2YXIgcz1vLTEsdT0xO3M+PTA7LS1zKXJbc109dSx1Kj1lW3NdfWlmKHZvaWQgMD09PW4pZm9yKG49MCxzPTA7czxvOysrcylyW3NdPDAmJihuLT0oZVtzXS0xKSpyW3NdKTtmb3IodmFyIGg9ZnVuY3Rpb24odCl7aWYoYSh0KSlyZXR1cm4iYnVmZmVyIjtpZihpKXN3aXRjaChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCkpe2Nhc2UiW29iamVjdCBGbG9hdDY0QXJyYXldIjpyZXR1cm4iZmxvYXQ2NCI7Y2FzZSJbb2JqZWN0IEZsb2F0MzJBcnJheV0iOnJldHVybiJmbG9hdDMyIjtjYXNlIltvYmplY3QgSW50OEFycmF5XSI6cmV0dXJuImludDgiO2Nhc2UiW29iamVjdCBJbnQxNkFycmF5XSI6cmV0dXJuImludDE2IjtjYXNlIltvYmplY3QgSW50MzJBcnJheV0iOnJldHVybiJpbnQzMiI7Y2FzZSJbb2JqZWN0IFVpbnQ4QXJyYXldIjpyZXR1cm4idWludDgiO2Nhc2UiW29iamVjdCBVaW50MTZBcnJheV0iOnJldHVybiJ1aW50MTYiO2Nhc2UiW29iamVjdCBVaW50MzJBcnJheV0iOnJldHVybiJ1aW50MzIiO2Nhc2UiW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iOnJldHVybiJ1aW50OF9jbGFtcGVkIn1yZXR1cm4gQXJyYXkuaXNBcnJheSh0KT8iYXJyYXkiOiJnZW5lcmljIn0odCksZj1jW2hdO2YubGVuZ3RoPD1vKzE7KWYucHVzaChsKGgsZi5sZW5ndGgtMSkpO3JldHVybigwLGZbbysxXSkodCxlLHIsbil9fSx7ImlvdGEtYXJyYXkiOjQxOCwiaXMtYnVmZmVyIjo0MjB9XSw0NTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZG91YmxlLWJpdHMiKSxhPU1hdGgucG93KDIsLTEwNzQpLGk9LTE+Pj4wO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2lmKGlzTmFOKHQpfHxpc05hTihlKSlyZXR1cm4gTmFOO2lmKHQ9PT1lKXJldHVybiB0O2lmKDA9PT10KXJldHVybiBlPDA/LWE6YTt2YXIgcj1uLmhpKHQpLG89bi5sbyh0KTtlPnQ9PXQ+MD9vPT09aT8ocis9MSxvPTApOm8rPTE6MD09PW8/KG89aSxyLT0xKTpvLT0xO3JldHVybiBuLnBhY2sobyxyKX19LHsiZG91YmxlLWJpdHMiOjE2OX1dLDQ1NDpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPU1hdGguUEksYT1jKDEyMCk7ZnVuY3Rpb24gaSh0LGUscixuKXtyZXR1cm5bIkMiLHQsZSxyLG4scixuXX1mdW5jdGlvbiBvKHQsZSxyLG4sYSxpKXtyZXR1cm5bIkMiLHQvMysyLzMqcixlLzMrMi8zKm4sYS8zKzIvMypyLGkvMysyLzMqbixhLGldfWZ1bmN0aW9uIHModCxlLHIsaSxvLGMsdSxoLGYscCl7aWYocClrPXBbMF0sVD1wWzFdLF89cFsyXSx3PXBbM107ZWxzZXt2YXIgZD1sKHQsZSwtbyk7dD1kLngsZT1kLnk7dmFyIGc9KHQtKGg9KGQ9bChoLGYsLW8pKS54KSkvMix2PShlLShmPWQueSkpLzIsbT1nKmcvKHIqcikrdip2LyhpKmkpO20+MSYmKHIqPW09TWF0aC5zcXJ0KG0pLGkqPW0pO3ZhciB5PXIqcix4PWkqaSxiPShjPT11Py0xOjEpKk1hdGguc3FydChNYXRoLmFicygoeSp4LXkqdip2LXgqZypnKS8oeSp2KnYreCpnKmcpKSk7Yj09MS8wJiYoYj0xKTt2YXIgXz1iKnIqdi9pKyh0K2gpLzIsdz1iKi1pKmcvcisoZStmKS8yLGs9TWF0aC5hc2luKCgoZS13KS9pKS50b0ZpeGVkKDkpKSxUPU1hdGguYXNpbigoKGYtdykvaSkudG9GaXhlZCg5KSk7KGs9dDxfP24tazprKTwwJiYoaz0yKm4rayksKFQ9aDxfP24tVDpUKTwwJiYoVD0yKm4rVCksdSYmaz5UJiYoay09MipuKSwhdSYmVD5rJiYoVC09MipuKX1pZihNYXRoLmFicyhULWspPmEpe3ZhciBNPVQsQT1oLFM9ZjtUPWsrYSoodSYmVD5rPzE6LTEpO3ZhciBFPXMoaD1fK3IqTWF0aC5jb3MoVCksZj13K2kqTWF0aC5zaW4oVCkscixpLG8sMCx1LEEsUyxbVCxNLF8sd10pfXZhciBMPU1hdGgudGFuKChULWspLzQpLEM9NC8zKnIqTCxQPTQvMyppKkwsTz1bMip0LSh0K0MqTWF0aC5zaW4oaykpLDIqZS0oZS1QKk1hdGguY29zKGspKSxoK0MqTWF0aC5zaW4oVCksZi1QKk1hdGguY29zKFQpLGgsZl07aWYocClyZXR1cm4gTztFJiYoTz1PLmNvbmNhdChFKSk7Zm9yKHZhciB6PTA7ejxPLmxlbmd0aDspe3ZhciBJPWwoT1t6XSxPW3orMV0sbyk7T1t6KytdPUkueCxPW3orK109SS55fXJldHVybiBPfWZ1bmN0aW9uIGwodCxlLHIpe3JldHVybnt4OnQqTWF0aC5jb3MociktZSpNYXRoLnNpbihyKSx5OnQqTWF0aC5zaW4ocikrZSpNYXRoLmNvcyhyKX19ZnVuY3Rpb24gYyh0KXtyZXR1cm4gdCoobi8xODApfWUuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGUscj1bXSxuPTAsYT0wLGw9MCx1PTAsaD1udWxsLGY9bnVsbCxwPTAsZD0wLGc9MCx2PXQubGVuZ3RoO2c8djtnKyspe3ZhciBtPXRbZ10seT1tWzBdO3N3aXRjaCh5KXtjYXNlIk0iOmw9bVsxXSx1PW1bMl07YnJlYWs7Y2FzZSJBIjoobT1zKHAsZCxtWzFdLG1bMl0sYyhtWzNdKSxtWzRdLG1bNV0sbVs2XSxtWzddKSkudW5zaGlmdCgiQyIpLG0ubGVuZ3RoPjcmJihyLnB1c2gobS5zcGxpY2UoMCw3KSksbS51bnNoaWZ0KCJDIikpO2JyZWFrO2Nhc2UiUyI6dmFyIHg9cCxiPWQ7IkMiIT1lJiYiUyIhPWV8fCh4Kz14LW4sYis9Yi1hKSxtPVsiQyIseCxiLG1bMV0sbVsyXSxtWzNdLG1bNF1dO2JyZWFrO2Nhc2UiVCI6IlEiPT1lfHwiVCI9PWU/KGg9MipwLWgsZj0yKmQtZik6KGg9cCxmPWQpLG09byhwLGQsaCxmLG1bMV0sbVsyXSk7YnJlYWs7Y2FzZSJRIjpoPW1bMV0sZj1tWzJdLG09byhwLGQsbVsxXSxtWzJdLG1bM10sbVs0XSk7YnJlYWs7Y2FzZSJMIjptPWkocCxkLG1bMV0sbVsyXSk7YnJlYWs7Y2FzZSJIIjptPWkocCxkLG1bMV0sZCk7YnJlYWs7Y2FzZSJWIjptPWkocCxkLHAsbVsxXSk7YnJlYWs7Y2FzZSJaIjptPWkocCxkLGwsdSl9ZT15LHA9bVttLmxlbmd0aC0yXSxkPW1bbS5sZW5ndGgtMV0sbS5sZW5ndGg+ND8obj1tW20ubGVuZ3RoLTRdLGE9bVttLmxlbmd0aC0zXSk6KG49cCxhPWQpLHIucHVzaChtKX1yZXR1cm4gcn19LHt9XSw0NTU6W2Z1bmN0aW9uKHQsZSxyKXtyLnZlcnRleE5vcm1hbHM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj1lLmxlbmd0aCxhPW5ldyBBcnJheShuKSxpPXZvaWQgMD09PXI/MWUtNjpyLG89MDtvPG47KytvKWFbb109WzAsMCwwXTtmb3Iobz0wO288dC5sZW5ndGg7KytvKWZvcih2YXIgcz10W29dLGw9MCxjPXNbcy5sZW5ndGgtMV0sdT1zWzBdLGg9MDtoPHMubGVuZ3RoOysraCl7bD1jLGM9dSx1PXNbKGgrMSklcy5sZW5ndGhdO2Zvcih2YXIgZj1lW2xdLHA9ZVtjXSxkPWVbdV0sZz1uZXcgQXJyYXkoMyksdj0wLG09bmV3IEFycmF5KDMpLHk9MCx4PTA7eDwzOysreClnW3hdPWZbeF0tcFt4XSx2Kz1nW3hdKmdbeF0sbVt4XT1kW3hdLXBbeF0seSs9bVt4XSptW3hdO2lmKHYqeT5pKXt2YXIgYj1hW2NdLF89MS9NYXRoLnNxcnQodip5KTtmb3IoeD0wO3g8MzsrK3gpe3ZhciB3PSh4KzEpJTMsaz0oeCsyKSUzO2JbeF0rPV8qKG1bd10qZ1trXS1tW2tdKmdbd10pfX19Zm9yKG89MDtvPG47KytvKXtiPWFbb107dmFyIFQ9MDtmb3IoeD0wO3g8MzsrK3gpVCs9Ylt4XSpiW3hdO2lmKFQ+aSlmb3IoXz0xL01hdGguc3FydChUKSx4PTA7eDwzOysreCliW3hdKj1fO2Vsc2UgZm9yKHg9MDt4PDM7Kyt4KWJbeF09MH1yZXR1cm4gYX0sci5mYWNlTm9ybWFscz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPXQubGVuZ3RoLGE9bmV3IEFycmF5KG4pLGk9dm9pZCAwPT09cj8xZS02OnIsbz0wO288bjsrK28pe2Zvcih2YXIgcz10W29dLGw9bmV3IEFycmF5KDMpLGM9MDtjPDM7KytjKWxbY109ZVtzW2NdXTt2YXIgdT1uZXcgQXJyYXkoMyksaD1uZXcgQXJyYXkoMyk7Zm9yKGM9MDtjPDM7KytjKXVbY109bFsxXVtjXS1sWzBdW2NdLGhbY109bFsyXVtjXS1sWzBdW2NdO3ZhciBmPW5ldyBBcnJheSgzKSxwPTA7Zm9yKGM9MDtjPDM7KytjKXt2YXIgZD0oYysxKSUzLGc9KGMrMiklMztmW2NdPXVbZF0qaFtnXS11W2ddKmhbZF0scCs9ZltjXSpmW2NdfXA9cD5pPzEvTWF0aC5zcXJ0KHApOjA7Zm9yKGM9MDtjPDM7KytjKWZbY10qPXA7YVtvXT1mfXJldHVybiBhfX0se31dLDQ1NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLGE9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxpPU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7dHJ5e2lmKCFPYmplY3QuYXNzaWduKXJldHVybiExO3ZhciB0PW5ldyBTdHJpbmcoImFiYyIpO2lmKHRbNV09ImRlIiwiNSI9PT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0KVswXSlyZXR1cm4hMTtmb3IodmFyIGU9e30scj0wO3I8MTA7cisrKWVbIl8iK1N0cmluZy5mcm9tQ2hhckNvZGUocildPXI7aWYoIjAxMjM0NTY3ODkiIT09T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBlW3RdfSkuam9pbigiIikpcmV0dXJuITE7dmFyIG49e307cmV0dXJuImFiY2RlZmdoaWprbG1ub3BxcnN0Ii5zcGxpdCgiIikuZm9yRWFjaChmdW5jdGlvbih0KXtuW3RdPXR9KSwiYWJjZGVmZ2hpamtsbW5vcHFyc3QiPT09T2JqZWN0LmtleXMoT2JqZWN0LmFzc2lnbih7fSxuKSkuam9pbigiIil9Y2F0Y2godCl7cmV0dXJuITF9fSgpP09iamVjdC5hc3NpZ246ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIsbyxzPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0LmFzc2lnbiBjYW5ub3QgYmUgY2FsbGVkIHdpdGggbnVsbCBvciB1bmRlZmluZWQiKTtyZXR1cm4gT2JqZWN0KHQpfSh0KSxsPTE7bDxhcmd1bWVudHMubGVuZ3RoO2wrKyl7Zm9yKHZhciBjIGluIHI9T2JqZWN0KGFyZ3VtZW50c1tsXSkpYS5jYWxsKHIsYykmJihzW2NdPXJbY10pO2lmKG4pe289bihyKTtmb3IodmFyIHU9MDt1PG8ubGVuZ3RoO3UrKylpLmNhbGwocixvW3VdKSYmKHNbb1t1XV09cltvW3VdXSl9fXJldHVybiBzfX0se31dLDQ1NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbixhLGksbyxzLGwsYyl7dmFyIHU9ZStpK2M7aWYoaD4wKXt2YXIgaD1NYXRoLnNxcnQodSsxKTt0WzBdPS41KihvLWwpL2gsdFsxXT0uNSoocy1uKS9oLHRbMl09LjUqKHItaSkvaCx0WzNdPS41Kmh9ZWxzZXt2YXIgZj1NYXRoLm1heChlLGksYyksaD1NYXRoLnNxcnQoMipmLXUrMSk7ZT49Zj8odFswXT0uNSpoLHRbMV09LjUqKGErcikvaCx0WzJdPS41KihzK24pL2gsdFszXT0uNSooby1sKS9oKTppPj1mPyh0WzBdPS41KihyK2EpL2gsdFsxXT0uNSpoLHRbMl09LjUqKGwrbykvaCx0WzNdPS41KihzLW4pL2gpOih0WzBdPS41KihuK3MpL2gsdFsxXT0uNSoobytsKS9oLHRbMl09LjUqaCx0WzNdPS41KihyLWEpL2gpfXJldHVybiB0fX0se31dLDQ1ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9KHQ9dHx8e30pLmNlbnRlcnx8WzAsMCwwXSxyPXQucm90YXRpb258fFswLDAsMCwxXSxuPXQucmFkaXVzfHwxO2U9W10uc2xpY2UuY2FsbChlLDAsMyksdShyPVtdLnNsaWNlLmNhbGwociwwLDQpLHIpO3ZhciBhPW5ldyBoKHIsZSxNYXRoLmxvZyhuKSk7YS5zZXREaXN0YW5jZUxpbWl0cyh0Lnpvb21NaW4sdC56b29tTWF4KSwoImV5ZSJpbiB0fHwidXAiaW4gdCkmJmEubG9va0F0KDAsdC5leWUsdC5jZW50ZXIsdC51cCk7cmV0dXJuIGF9O3ZhciBuPXQoImZpbHRlcmVkLXZlY3RvciIpLGE9dCgiZ2wtbWF0NC9sb29rQXQiKSxpPXQoImdsLW1hdDQvZnJvbVF1YXQiKSxvPXQoImdsLW1hdDQvaW52ZXJ0Iikscz10KCIuL2xpYi9xdWF0RnJvbUZyYW1lIik7ZnVuY3Rpb24gbCh0LGUscil7cmV0dXJuIE1hdGguc3FydChNYXRoLnBvdyh0LDIpK01hdGgucG93KGUsMikrTWF0aC5wb3cociwyKSl9ZnVuY3Rpb24gYyh0LGUscixuKXtyZXR1cm4gTWF0aC5zcXJ0KE1hdGgucG93KHQsMikrTWF0aC5wb3coZSwyKStNYXRoLnBvdyhyLDIpK01hdGgucG93KG4sMikpfWZ1bmN0aW9uIHUodCxlKXt2YXIgcj1lWzBdLG49ZVsxXSxhPWVbMl0saT1lWzNdLG89YyhyLG4sYSxpKTtvPjFlLTY/KHRbMF09ci9vLHRbMV09bi9vLHRbMl09YS9vLHRbM109aS9vKToodFswXT10WzFdPXRbMl09MCx0WzNdPTEpfWZ1bmN0aW9uIGgodCxlLHIpe3RoaXMucmFkaXVzPW4oW3JdKSx0aGlzLmNlbnRlcj1uKGUpLHRoaXMucm90YXRpb249bih0KSx0aGlzLmNvbXB1dGVkUmFkaXVzPXRoaXMucmFkaXVzLmN1cnZlKDApLHRoaXMuY29tcHV0ZWRDZW50ZXI9dGhpcy5jZW50ZXIuY3VydmUoMCksdGhpcy5jb21wdXRlZFJvdGF0aW9uPXRoaXMucm90YXRpb24uY3VydmUoMCksdGhpcy5jb21wdXRlZFVwPVsuMSwwLDBdLHRoaXMuY29tcHV0ZWRFeWU9Wy4xLDAsMF0sdGhpcy5jb21wdXRlZE1hdHJpeD1bLjEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDBdLHRoaXMucmVjYWxjTWF0cml4KDApfXZhciBmPWgucHJvdG90eXBlO2YubGFzdFQ9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5tYXgodGhpcy5yYWRpdXMubGFzdFQoKSx0aGlzLmNlbnRlci5sYXN0VCgpLHRoaXMucm90YXRpb24ubGFzdFQoKSl9LGYucmVjYWxjTWF0cml4PWZ1bmN0aW9uKHQpe3RoaXMucmFkaXVzLmN1cnZlKHQpLHRoaXMuY2VudGVyLmN1cnZlKHQpLHRoaXMucm90YXRpb24uY3VydmUodCk7dmFyIGU9dGhpcy5jb21wdXRlZFJvdGF0aW9uO3UoZSxlKTt2YXIgcj10aGlzLmNvbXB1dGVkTWF0cml4O2kocixlKTt2YXIgbj10aGlzLmNvbXB1dGVkQ2VudGVyLGE9dGhpcy5jb21wdXRlZEV5ZSxvPXRoaXMuY29tcHV0ZWRVcCxzPU1hdGguZXhwKHRoaXMuY29tcHV0ZWRSYWRpdXNbMF0pO2FbMF09blswXStzKnJbMl0sYVsxXT1uWzFdK3Mqcls2XSxhWzJdPW5bMl0rcypyWzEwXSxvWzBdPXJbMV0sb1sxXT1yWzVdLG9bMl09cls5XTtmb3IodmFyIGw9MDtsPDM7KytsKXtmb3IodmFyIGM9MCxoPTA7aDwzOysraCljKz1yW2wrNCpoXSphW2hdO3JbMTIrbF09LWN9fSxmLmdldE1hdHJpeD1mdW5jdGlvbih0LGUpe3RoaXMucmVjYWxjTWF0cml4KHQpO3ZhciByPXRoaXMuY29tcHV0ZWRNYXRyaXg7aWYoZSl7Zm9yKHZhciBuPTA7bjwxNjsrK24pZVtuXT1yW25dO3JldHVybiBlfXJldHVybiByfSxmLmlkbGU9ZnVuY3Rpb24odCl7dGhpcy5jZW50ZXIuaWRsZSh0KSx0aGlzLnJhZGl1cy5pZGxlKHQpLHRoaXMucm90YXRpb24uaWRsZSh0KX0sZi5mbHVzaD1mdW5jdGlvbih0KXt0aGlzLmNlbnRlci5mbHVzaCh0KSx0aGlzLnJhZGl1cy5mbHVzaCh0KSx0aGlzLnJvdGF0aW9uLmZsdXNoKHQpfSxmLnBhbj1mdW5jdGlvbih0LGUscixuKXtlPWV8fDAscj1yfHwwLG49bnx8MCx0aGlzLnJlY2FsY01hdHJpeCh0KTt2YXIgYT10aGlzLmNvbXB1dGVkTWF0cml4LGk9YVsxXSxvPWFbNV0scz1hWzldLGM9bChpLG8scyk7aS89YyxvLz1jLHMvPWM7dmFyIHU9YVswXSxoPWFbNF0sZj1hWzhdLHA9dSppK2gqbytmKnMsZD1sKHUtPWkqcCxoLT1vKnAsZi09cypwKTt1Lz1kLGgvPWQsZi89ZDt2YXIgZz1hWzJdLHY9YVs2XSxtPWFbMTBdLHk9ZyppK3YqbyttKnMseD1nKnUrdipoK20qZixiPWwoZy09eSppK3gqdSx2LT15Km8reCpoLG0tPXkqcyt4KmYpO2cvPWIsdi89YixtLz1iO3ZhciBfPXUqZStpKnIsdz1oKmUrbypyLGs9ZiplK3Mqcjt0aGlzLmNlbnRlci5tb3ZlKHQsXyx3LGspO3ZhciBUPU1hdGguZXhwKHRoaXMuY29tcHV0ZWRSYWRpdXNbMF0pO1Q9TWF0aC5tYXgoMWUtNCxUK24pLHRoaXMucmFkaXVzLnNldCh0LE1hdGgubG9nKFQpKX0sZi5yb3RhdGU9ZnVuY3Rpb24odCxlLHIsbil7dGhpcy5yZWNhbGNNYXRyaXgodCksZT1lfHwwLHI9cnx8MDt2YXIgYT10aGlzLmNvbXB1dGVkTWF0cml4LGk9YVswXSxvPWFbNF0scz1hWzhdLHU9YVsxXSxoPWFbNV0sZj1hWzldLHA9YVsyXSxkPWFbNl0sZz1hWzEwXSx2PWUqaStyKnUsbT1lKm8rcipoLHk9ZSpzK3IqZix4PS0oZCp5LWcqbSksYj0tKGcqdi1wKnkpLF89LShwKm0tZCp2KSx3PU1hdGguc3FydChNYXRoLm1heCgwLDEtTWF0aC5wb3coeCwyKS1NYXRoLnBvdyhiLDIpLU1hdGgucG93KF8sMikpKSxrPWMoeCxiLF8sdyk7az4xZS02Pyh4Lz1rLGIvPWssXy89ayx3Lz1rKTooeD1iPV89MCx3PTEpO3ZhciBUPXRoaXMuY29tcHV0ZWRSb3RhdGlvbixNPVRbMF0sQT1UWzFdLFM9VFsyXSxFPVRbM10sTD1NKncrRSp4K0EqXy1TKmIsQz1BKncrRSpiK1MqeC1NKl8sUD1TKncrRSpfK00qYi1BKngsTz1FKnctTSp4LUEqYi1TKl87aWYobil7eD1wLGI9ZCxfPWc7dmFyIHo9TWF0aC5zaW4obikvbCh4LGIsXyk7eCo9eixiKj16LF8qPXosTz1PKih3PU1hdGguY29zKGUpKS0oTD1MKncrTyp4K0MqXy1QKmIpKngtKEM9Qyp3K08qYitQKngtTCpfKSpiLShQPVAqdytPKl8rTCpiLUMqeCkqX312YXIgST1jKEwsQyxQLE8pO0k+MWUtNj8oTC89SSxDLz1JLFAvPUksTy89SSk6KEw9Qz1QPTAsTz0xKSx0aGlzLnJvdGF0aW9uLnNldCh0LEwsQyxQLE8pfSxmLmxvb2tBdD1mdW5jdGlvbih0LGUscixuKXt0aGlzLnJlY2FsY01hdHJpeCh0KSxyPXJ8fHRoaXMuY29tcHV0ZWRDZW50ZXIsZT1lfHx0aGlzLmNvbXB1dGVkRXllLG49bnx8dGhpcy5jb21wdXRlZFVwO3ZhciBpPXRoaXMuY29tcHV0ZWRNYXRyaXg7YShpLGUscixuKTt2YXIgbz10aGlzLmNvbXB1dGVkUm90YXRpb247cyhvLGlbMF0saVsxXSxpWzJdLGlbNF0saVs1XSxpWzZdLGlbOF0saVs5XSxpWzEwXSksdShvLG8pLHRoaXMucm90YXRpb24uc2V0KHQsb1swXSxvWzFdLG9bMl0sb1szXSk7Zm9yKHZhciBsPTAsYz0wO2M8MzsrK2MpbCs9TWF0aC5wb3cocltjXS1lW2NdLDIpO3RoaXMucmFkaXVzLnNldCh0LC41Kk1hdGgubG9nKE1hdGgubWF4KGwsMWUtNikpKSx0aGlzLmNlbnRlci5zZXQodCxyWzBdLHJbMV0sclsyXSl9LGYudHJhbnNsYXRlPWZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMuY2VudGVyLm1vdmUodCxlfHwwLHJ8fDAsbnx8MCl9LGYuc2V0TWF0cml4PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5jb21wdXRlZFJvdGF0aW9uO3MocixlWzBdLGVbMV0sZVsyXSxlWzRdLGVbNV0sZVs2XSxlWzhdLGVbOV0sZVsxMF0pLHUocixyKSx0aGlzLnJvdGF0aW9uLnNldCh0LHJbMF0sclsxXSxyWzJdLHJbM10pO3ZhciBuPXRoaXMuY29tcHV0ZWRNYXRyaXg7byhuLGUpO3ZhciBhPW5bMTVdO2lmKE1hdGguYWJzKGEpPjFlLTYpe3ZhciBpPW5bMTJdL2EsbD1uWzEzXS9hLGM9blsxNF0vYTt0aGlzLnJlY2FsY01hdHJpeCh0KTt2YXIgaD1NYXRoLmV4cCh0aGlzLmNvbXB1dGVkUmFkaXVzWzBdKTt0aGlzLmNlbnRlci5zZXQodCxpLW5bMl0qaCxsLW5bNl0qaCxjLW5bMTBdKmgpLHRoaXMucmFkaXVzLmlkbGUodCl9ZWxzZSB0aGlzLmNlbnRlci5pZGxlKHQpLHRoaXMucmFkaXVzLmlkbGUodCl9LGYuc2V0RGlzdGFuY2U9ZnVuY3Rpb24odCxlKXtlPjAmJnRoaXMucmFkaXVzLnNldCh0LE1hdGgubG9nKGUpKX0sZi5zZXREaXN0YW5jZUxpbWl0cz1mdW5jdGlvbih0LGUpe3Q9dD4wP01hdGgubG9nKHQpOi0xLzAsZT1lPjA/TWF0aC5sb2coZSk6MS8wLGU9TWF0aC5tYXgoZSx0KSx0aGlzLnJhZGl1cy5ib3VuZHNbMF1bMF09dCx0aGlzLnJhZGl1cy5ib3VuZHNbMV1bMF09ZX0sZi5nZXREaXN0YW5jZUxpbWl0cz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnJhZGl1cy5ib3VuZHM7cmV0dXJuIHQ/KHRbMF09TWF0aC5leHAoZVswXVswXSksdFsxXT1NYXRoLmV4cChlWzFdWzBdKSx0KTpbTWF0aC5leHAoZVswXVswXSksTWF0aC5leHAoZVsxXVswXSldfSxmLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlY2FsY01hdHJpeCh0aGlzLmxhc3RUKCkpLHtjZW50ZXI6dGhpcy5jb21wdXRlZENlbnRlci5zbGljZSgpLHJvdGF0aW9uOnRoaXMuY29tcHV0ZWRSb3RhdGlvbi5zbGljZSgpLGRpc3RhbmNlOk1hdGgubG9nKHRoaXMuY29tcHV0ZWRSYWRpdXNbMF0pLHpvb21NaW46dGhpcy5yYWRpdXMuYm91bmRzWzBdWzBdLHpvb21NYXg6dGhpcy5yYWRpdXMuYm91bmRzWzFdWzBdfX0sZi5mcm9tSlNPTj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmxhc3RUKCkscj10LmNlbnRlcjtyJiZ0aGlzLmNlbnRlci5zZXQoZSxyWzBdLHJbMV0sclsyXSk7dmFyIG49dC5yb3RhdGlvbjtuJiZ0aGlzLnJvdGF0aW9uLnNldChlLG5bMF0sblsxXSxuWzJdLG5bM10pO3ZhciBhPXQuZGlzdGFuY2U7YSYmYT4wJiZ0aGlzLnJhZGl1cy5zZXQoZSxNYXRoLmxvZyhhKSksdGhpcy5zZXREaXN0YW5jZUxpbWl0cyh0Lnpvb21NaW4sdC56b29tTWF4KX19LHsiLi9saWIvcXVhdEZyb21GcmFtZSI6NDU3LCJmaWx0ZXJlZC12ZWN0b3IiOjIyOSwiZ2wtbWF0NC9mcm9tUXVhdCI6MjY1LCJnbC1tYXQ0L2ludmVydCI6MjY4LCJnbC1tYXQ0L2xvb2tBdCI6MjY5fV0sNDU5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInJlcGVhdC1zdHJpbmciKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBuKHI9InVuZGVmaW5lZCIhPXR5cGVvZiByP3IrIiI6IiAiLGUpK3R9fSx7InJlcGVhdC1zdHJpbmciOjUwMn1dLDQ2MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7aWYoInN0cmluZyIhPXR5cGVvZiB0KXJldHVyblt0XTt2YXIgcj1bdF07InN0cmluZyI9PXR5cGVvZiBlfHxBcnJheS5pc0FycmF5KGUpP2U9e2JyYWNrZXRzOmV9OmV8fChlPXt9KTt2YXIgbj1lLmJyYWNrZXRzP0FycmF5LmlzQXJyYXkoZS5icmFja2V0cyk/ZS5icmFja2V0czpbZS5icmFja2V0c106WyJ7fSIsIltdIiwiKCkiXSxhPWUuZXNjYXBlfHwiX19fIixpPSEhZS5mbGF0O24uZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZT1uZXcgUmVnRXhwKFsiXFwiLHRbMF0sIlteXFwiLHRbMF0sIlxcIix0WzFdLCJdKlxcIix0WzFdXS5qb2luKCIiKSksbj1bXTtmdW5jdGlvbiBpKGUsaSxvKXt2YXIgcz1yLnB1c2goZS5zbGljZSh0WzBdLmxlbmd0aCwtdFsxXS5sZW5ndGgpKS0xO3JldHVybiBuLnB1c2gocyksYStzK2F9ci5mb3JFYWNoKGZ1bmN0aW9uKHQsbil7Zm9yKHZhciBhLG89MDt0IT1hOylpZihhPXQsdD10LnJlcGxhY2UoZSxpKSxvKys+MWU0KXRocm93IEVycm9yKCJSZWZlcmVuY2VzIGhhdmUgY2lyY3VsYXIgZGVwZW5kZW5jeS4gUGxlYXNlLCBjaGVjayB0aGVtLiIpO3Jbbl09dH0pLG49bi5yZXZlcnNlKCkscj1yLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbi5mb3JFYWNoKGZ1bmN0aW9uKHIpe2U9ZS5yZXBsYWNlKG5ldyBSZWdFeHAoIihcXCIrYStyKyJcXCIrYSsiKSIsImciKSx0WzBdKyIkMSIrdFsxXSl9KSxlfSl9KTt2YXIgbz1uZXcgUmVnRXhwKCJcXCIrYSsiKFswLTldKylcXCIrYSk7cmV0dXJuIGk/cjpmdW5jdGlvbiB0KGUscixuKXtmb3IodmFyIGEsaT1bXSxzPTA7YT1vLmV4ZWMoZSk7KXtpZihzKys+MWU0KXRocm93IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2VzIGluIHBhcmVudGhlc2lzIik7aS5wdXNoKGUuc2xpY2UoMCxhLmluZGV4KSksaS5wdXNoKHQoclthWzFdXSxyKSksZT1lLnNsaWNlKGEuaW5kZXgrYVswXS5sZW5ndGgpfXJldHVybiBpLnB1c2goZSksaX0oclswXSxyKX1mdW5jdGlvbiBhKHQsZSl7aWYoZSYmZS5mbGF0KXt2YXIgcixuPWUmJmUuZXNjYXBlfHwiX19fIixhPXRbMF07aWYoIWEpcmV0dXJuIiI7Zm9yKHZhciBpPW5ldyBSZWdFeHAoIlxcIituKyIoWzAtOV0rKVxcIituKSxvPTA7YSE9cjspe2lmKG8rKz4xZTQpdGhyb3cgRXJyb3IoIkNpcmN1bGFyIHJlZmVyZW5jZXMgaW4gIit0KTtyPWEsYT1hLnJlcGxhY2UoaSxzKX1yZXR1cm4gYX1yZXR1cm4gdC5yZWR1Y2UoZnVuY3Rpb24gdChlLHIpe3JldHVybiBBcnJheS5pc0FycmF5KHIpJiYocj1yLnJlZHVjZSh0LCIiKSksZStyfSwiIik7ZnVuY3Rpb24gcyhlLHIpe2lmKG51bGw9PXRbcl0pdGhyb3cgRXJyb3IoIlJlZmVyZW5jZSAiK3IrImlzIHVuZGVmaW5lZCIpO3JldHVybiB0W3JdfX1mdW5jdGlvbiBpKHQsZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/YSh0LGUpOm4odCxlKX1pLnBhcnNlPW4saS5zdHJpbmdpZnk9YSxlLmV4cG9ydHM9aX0se31dLDQ2MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJwaWNrLWJ5LWFsaWFzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlO2FyZ3VtZW50cy5sZW5ndGg+MSYmKHQ9YXJndW1lbnRzKTsic3RyaW5nIj09dHlwZW9mIHQ/dD10LnNwbGl0KC9ccy8pLm1hcChwYXJzZUZsb2F0KToibnVtYmVyIj09dHlwZW9mIHQmJih0PVt0XSk7dC5sZW5ndGgmJiJudW1iZXIiPT10eXBlb2YgdFswXT9lPTE9PT10Lmxlbmd0aD97d2lkdGg6dFswXSxoZWlnaHQ6dFswXSx4OjAseTowfToyPT09dC5sZW5ndGg/e3dpZHRoOnRbMF0saGVpZ2h0OnRbMV0seDowLHk6MH06e3g6dFswXSx5OnRbMV0sd2lkdGg6dFsyXS10WzBdfHwwLGhlaWdodDp0WzNdLXRbMV18fDB9OnQmJih0PW4odCx7bGVmdDoieCBsIGxlZnQgTGVmdCIsdG9wOiJ5IHQgdG9wIFRvcCIsd2lkdGg6Incgd2lkdGggVyBXaWR0aCIsaGVpZ2h0OiJoIGhlaWdodCBXIFdpZHRoIixib3R0b206ImIgYm90dG9tIEJvdHRvbSIscmlnaHQ6InIgcmlnaHQgUmlnaHQifSksZT17eDp0LmxlZnR8fDAseTp0LnRvcHx8MH0sbnVsbD09dC53aWR0aD90LnJpZ2h0P2Uud2lkdGg9dC5yaWdodC1lLng6ZS53aWR0aD0wOmUud2lkdGg9dC53aWR0aCxudWxsPT10LmhlaWdodD90LmJvdHRvbT9lLmhlaWdodD10LmJvdHRvbS1lLnk6ZS5oZWlnaHQ9MDplLmhlaWdodD10LmhlaWdodCk7cmV0dXJuIGV9fSx7InBpY2stYnktYWxpYXMiOjQ2N31dLDQ2MjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1bXTtyZXR1cm4gdC5yZXBsYWNlKGEsZnVuY3Rpb24odCxyLGEpe3ZhciBvPXIudG9Mb3dlckNhc2UoKTtmb3IoYT1mdW5jdGlvbih0KXt2YXIgZT10Lm1hdGNoKGkpO3JldHVybiBlP2UubWFwKE51bWJlcik6W119KGEpLCJtIj09byYmYS5sZW5ndGg+MiYmKGUucHVzaChbcl0uY29uY2F0KGEuc3BsaWNlKDAsMikpKSxvPSJsIixyPSJtIj09cj8ibCI6IkwiKTs7KXtpZihhLmxlbmd0aD09bltvXSlyZXR1cm4gYS51bnNoaWZ0KHIpLGUucHVzaChhKTtpZihhLmxlbmd0aDxuW29dKXRocm93IG5ldyBFcnJvcigibWFsZm9ybWVkIHBhdGggZGF0YSIpO2UucHVzaChbcl0uY29uY2F0KGEuc3BsaWNlKDAsbltvXSkpKX19KSxlfTt2YXIgbj17YTo3LGM6NixoOjEsbDoyLG06MixxOjQsczo0LHQ6Mix2OjEsejowfSxhPS8oW2FzdHZ6cW1obGNdKShbXmFzdHZ6cW1obGNdKikvZ2k7dmFyIGk9Ly0/WzAtOV0qXC4/WzAtOV0rKD86ZVstK10/XGQrKT8vZ2l9LHt9XSw0NjM6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtlfHwoZT1bMCwiIl0pLHQ9U3RyaW5nKHQpO3ZhciByPXBhcnNlRmxvYXQodCwxMCk7cmV0dXJuIGVbMF09cixlWzFdPXQubWF0Y2goL1tcZC5cLVwrXSpccyooLiopLylbMV18fCIiLGV9fSx7fV0sNDY0OltmdW5jdGlvbih0LGUscil7KGZ1bmN0aW9uKHQpeyhmdW5jdGlvbigpe3ZhciByLG4sYSxpLG8sczsidW5kZWZpbmVkIiE9dHlwZW9mIHBlcmZvcm1hbmNlJiZudWxsIT09cGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdz9lLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4gcGVyZm9ybWFuY2Uubm93KCl9OiJ1bmRlZmluZWQiIT10eXBlb2YgdCYmbnVsbCE9PXQmJnQuaHJ0aW1lPyhlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4ocigpLW8pLzFlNn0sbj10LmhydGltZSxpPShyPWZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIDFlOSoodD1uKCkpWzBdK3RbMV19KSgpLHM9MWU5KnQudXB0aW1lKCksbz1pLXMpOkRhdGUubm93PyhlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4gRGF0ZS5ub3coKS1hfSxhPURhdGUubm93KCkpOihlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKS1hfSxhPShuZXcgRGF0ZSkuZ2V0VGltZSgpKX0pLmNhbGwodGhpcyl9KS5jYWxsKHRoaXMsdCgiX3Byb2Nlc3MiKSl9LHtfcHJvY2Vzczo0ODR9XSw0NjU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQubGVuZ3RoO2lmKGU8bil7Zm9yKHZhciByPTEsaT0wO2k8ZTsrK2kpZm9yKHZhciBvPTA7bzxpOysrbylpZih0W2ldPHRbb10pcj0tcjtlbHNlIGlmKHRbaV09PT10W29dKXJldHVybiAwO3JldHVybiByfWZvcih2YXIgcz1hLm1hbGxvY1VpbnQ4KGUpLGk9MDtpPGU7KytpKXNbaV09MDtmb3IodmFyIHI9MSxpPTA7aTxlOysraSlpZighc1tpXSl7dmFyIGw9MTtzW2ldPTE7Zm9yKHZhciBvPXRbaV07byE9PWk7bz10W29dKXtpZihzW29dKXJldHVybiBhLmZyZWVVaW50OChzKSwwO2wrPTEsc1tvXT0xfTEmbHx8KHI9LXIpfXJldHVybiBhLmZyZWVVaW50OChzKSxyfTt2YXIgbj0zMixhPXQoInR5cGVkYXJyYXktcG9vbCIpfSx7InR5cGVkYXJyYXktcG9vbCI6NTQ0fV0sNDY2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInR5cGVkYXJyYXktcG9vbCIpLGE9dCgiaW52ZXJ0LXBlcm11dGF0aW9uIik7ci5yYW5rPWZ1bmN0aW9uKHQpe3ZhciBlPXQubGVuZ3RoO3N3aXRjaChlKXtjYXNlIDA6Y2FzZSAxOnJldHVybiAwO2Nhc2UgMjpyZXR1cm4gdFsxXX12YXIgcixpLG8scz1uLm1hbGxvY1VpbnQzMihlKSxsPW4ubWFsbG9jVWludDMyKGUpLGM9MDtmb3IoYSh0LGwpLG89MDtvPGU7KytvKXNbb109dFtvXTtmb3Iobz1lLTE7bz4wOy0tbylpPWxbb10scj1zW29dLHNbb109c1tpXSxzW2ldPXIsbFtvXT1sW3JdLGxbcl09aSxjPShjK3IpKm87cmV0dXJuIG4uZnJlZVVpbnQzMihsKSxuLmZyZWVVaW50MzIocyksY30sci51bnJhbms9ZnVuY3Rpb24odCxlLHIpe3N3aXRjaCh0KXtjYXNlIDA6cmV0dXJuIHJ8fFtdO2Nhc2UgMTpyZXR1cm4gcj8oclswXT0wLHIpOlswXTtjYXNlIDI6cmV0dXJuIHI/KGU/KHJbMF09MCxyWzFdPTEpOihyWzBdPTEsclsxXT0wKSxyKTplP1swLDFdOlsxLDBdfXZhciBuLGEsaSxvPTE7Zm9yKChyPXJ8fG5ldyBBcnJheSh0KSlbMF09MCxpPTE7aTx0OysraSlyW2ldPWksbz1vKml8MDtmb3IoaT10LTE7aT4wOy0taSllPWUtKG49ZS9vfDApKm98MCxvPW8vaXwwLGE9MHxyW2ldLHJbaV09MHxyW25dLHJbbl09MHxhO3JldHVybiByfX0seyJpbnZlcnQtcGVybXV0YXRpb24iOjQxNywidHlwZWRhcnJheS1wb29sIjo1NDR9XSw0Njc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpLG89e307aWYoInN0cmluZyI9PXR5cGVvZiBlJiYoZT1hKGUpKSxBcnJheS5pc0FycmF5KGUpKXt2YXIgcz17fTtmb3IoaT0wO2k8ZS5sZW5ndGg7aSsrKXNbZVtpXV09ITA7ZT1zfWZvcihuIGluIGUpZVtuXT1hKGVbbl0pO3ZhciBsPXt9O2ZvcihuIGluIGUpe3ZhciBjPWVbbl07aWYoQXJyYXkuaXNBcnJheShjKSlmb3IoaT0wO2k8Yy5sZW5ndGg7aSsrKXt2YXIgdT1jW2ldO2lmKHImJihsW3VdPSEwKSx1IGluIHQpe2lmKG9bbl09dFt1XSxyKWZvcih2YXIgaD1pO2g8Yy5sZW5ndGg7aCsrKWxbY1toXV09ITA7YnJlYWt9fWVsc2UgbiBpbiB0JiYoZVtuXSYmKG9bbl09dFtuXSksciYmKGxbbl09ITApKX1pZihyKWZvcihuIGluIHQpbFtuXXx8KG9bbl09dFtuXSk7cmV0dXJuIG99O3ZhciBuPXt9O2Z1bmN0aW9uIGEodCl7cmV0dXJuIG5bdF0/blt0XTooInN0cmluZyI9PXR5cGVvZiB0JiYodD1uW3RdPXQuc3BsaXQoL1xzKixccyp8XHMrLykpLHQpfX0se31dLDQ2ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MHxlLmxlbmd0aCxhPXQubGVuZ3RoLGk9W25ldyBBcnJheShyKSxuZXcgQXJyYXkocildLG89MDtvPHI7KytvKWlbMF1bb109W10saVsxXVtvXT1bXTtmb3IodmFyIG89MDtvPGE7KytvKXt2YXIgcz10W29dO2lbMF1bc1swXV0ucHVzaChzKSxpWzFdW3NbMV1dLnB1c2gocyl9Zm9yKHZhciBsPVtdLG89MDtvPHI7KytvKWlbMF1bb10ubGVuZ3RoK2lbMV1bb10ubGVuZ3RoPT09MCYmbC5wdXNoKFtvXSk7ZnVuY3Rpb24gYyh0LGUpe3ZhciByPWlbZV1bdFtlXV07ci5zcGxpY2Uoci5pbmRleE9mKHQpLDEpfWZ1bmN0aW9uIHUodCxyLGEpe2Zvcih2YXIgbyxzLGwsdT0wO3U8MjsrK3UpaWYoaVt1XVtyXS5sZW5ndGg+MCl7bz1pW3VdW3JdWzBdLGw9dTticmVha31zPW9bMV5sXTtmb3IodmFyIGg9MDtoPDI7KytoKWZvcih2YXIgZj1pW2hdW3JdLHA9MDtwPGYubGVuZ3RoOysrcCl7dmFyIGQ9ZltwXSxnPWRbMV5oXSx2PW4oZVt0XSxlW3JdLGVbc10sZVtnXSk7dj4wJiYobz1kLHM9ZyxsPWgpfXJldHVybiBhP3M6KG8mJmMobyxsKSxzKX1mdW5jdGlvbiBoKHQscil7dmFyIGE9aVtyXVt0XVswXSxvPVt0XTtjKGEscik7Zm9yKHZhciBzPWFbMV5yXTs7KXtmb3IoO3MhPT10OylvLnB1c2gocykscz11KG9bby5sZW5ndGgtMl0scywhMSk7aWYoaVswXVt0XS5sZW5ndGgraVsxXVt0XS5sZW5ndGg9PT0wKWJyZWFrO3ZhciBsPW9bby5sZW5ndGgtMV0saD10LGY9b1sxXSxwPXUobCxoLCEwKTtpZihuKGVbbF0sZVtoXSxlW2ZdLGVbcF0pPDApYnJlYWs7by5wdXNoKHQpLHM9dShsLGgpfXJldHVybiBvfWZ1bmN0aW9uIGYodCxlKXtyZXR1cm4gZVsxXT09PWVbZS5sZW5ndGgtMV19Zm9yKHZhciBvPTA7bzxyOysrbylmb3IodmFyIHA9MDtwPDI7KytwKXtmb3IodmFyIGQ9W107aVtwXVtvXS5sZW5ndGg+MDspe2lbMF1bb10ubGVuZ3RoO3ZhciBnPWgobyxwKTtmKGQsZyk/ZC5wdXNoLmFwcGx5KGQsZyk6KGQubGVuZ3RoPjAmJmwucHVzaChkKSxkPWcpfWQubGVuZ3RoPjAmJmwucHVzaChkKX1yZXR1cm4gbH07dmFyIG49dCgiY29tcGFyZS1hbmdsZSIpfSx7ImNvbXBhcmUtYW5nbGUiOjEyOX1dLDQ2OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9bih0LGUubGVuZ3RoKSxhPW5ldyBBcnJheShlLmxlbmd0aCksaT1uZXcgQXJyYXkoZS5sZW5ndGgpLG89W10scz0wO3M8ZS5sZW5ndGg7KytzKXt2YXIgbD1yW3NdLmxlbmd0aDtpW3NdPWwsYVtzXT0hMCxsPD0xJiZvLnB1c2gocyl9Zm9yKDtvLmxlbmd0aD4wOyl7dmFyIGM9by5wb3AoKTthW2NdPSExO2Zvcih2YXIgdT1yW2NdLHM9MDtzPHUubGVuZ3RoOysrcyl7dmFyIGg9dVtzXTswPT0tLWlbaF0mJm8ucHVzaChoKX19Zm9yKHZhciBmPW5ldyBBcnJheShlLmxlbmd0aCkscD1bXSxzPTA7czxlLmxlbmd0aDsrK3MpaWYoYVtzXSl7dmFyIGM9cC5sZW5ndGg7ZltzXT1jLHAucHVzaChlW3NdKX1lbHNlIGZbc109LTE7Zm9yKHZhciBkPVtdLHM9MDtzPHQubGVuZ3RoOysrcyl7dmFyIGc9dFtzXTthW2dbMF1dJiZhW2dbMV1dJiZkLnB1c2goW2ZbZ1swXV0sZltnWzFdXV0pfXJldHVybltkLHBdfTt2YXIgbj10KCJlZGdlcy10by1hZGphY2VuY3ktbGlzdCIpfSx7ImVkZ2VzLXRvLWFkamFjZW5jeS1saXN0IjoxNzR9XSw0NzA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9Yyh0LGUpO3Q9clswXTtmb3IodmFyIGg9KGU9clsxXSkubGVuZ3RoLGY9KHQubGVuZ3RoLG4odCxlLmxlbmd0aCkpLHA9MDtwPGg7KytwKWlmKGZbcF0ubGVuZ3RoJTI9PTEpdGhyb3cgbmV3IEVycm9yKCJwbGFuYXItZ3JhcGgtdG8tcG9seWxpbmU6IGdyYXBoIG11c3QgYmUgbWFuaWZvbGQiKTt2YXIgZD1hKHQsZSk7Zm9yKHZhciBnPShkPWQuZmlsdGVyKGZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10Lmxlbmd0aCxuPVswXSxhPTA7YTxyOysrYSl7dmFyIGk9ZVt0W2FdXSxsPWVbdFsoYSsxKSVyXV0sYz1vKC1pWzBdLGlbMV0pLHU9bygtaVswXSxsWzFdKSxoPW8obFswXSxpWzFdKSxmPW8obFswXSxsWzFdKTtuPXMobixzKHMoYyx1KSxzKGgsZikpKX1yZXR1cm4gbltuLmxlbmd0aC0xXT4wfSkpLmxlbmd0aCx2PW5ldyBBcnJheShnKSxtPW5ldyBBcnJheShnKSxwPTA7cDxnOysrcCl7dltwXT1wO3ZhciB5PW5ldyBBcnJheShnKSx4PWRbcF0ubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBlW3RdfSksYj1pKFt4XSksXz0wO3Q6Zm9yKHZhciB3PTA7dzxnOysrdylpZih5W3ddPTAscCE9PXcpe2Zvcih2YXIgaz1kW3ddLFQ9ay5sZW5ndGgsTT0wO008VDsrK00pe3ZhciBBPWIoZVtrW01dXSk7aWYoMCE9PUEpe0E8MCYmKHlbd109MSxfKz0xKTtjb250aW51ZSB0fX15W3ddPTEsXys9MX1tW3BdPVtfLHAseV19bS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGVbMF0tdFswXX0pO2Zvcih2YXIgcD0wO3A8ZzsrK3ApZm9yKHZhciB5PW1bcF0sUz15WzFdLEU9eVsyXSx3PTA7dzxnOysrdylFW3ddJiYodlt3XT1TKTtmb3IodmFyIEw9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPW5ldyBBcnJheSh0KSxyPTA7cjx0OysrcillW3JdPVtdO3JldHVybiBlfShnKSxwPTA7cDxnOysrcClMW3BdLnB1c2godltwXSksTFt2W3BdXS5wdXNoKHApO2Zvcih2YXIgQz17fSxQPXUoaCwhMSkscD0wO3A8ZzsrK3ApZm9yKHZhciBrPWRbcF0sVD1rLmxlbmd0aCx3PTA7dzxUOysrdyl7dmFyIE89a1t3XSx6PWtbKHcrMSklVF0sST1NYXRoLm1pbihPLHopKyI6IitNYXRoLm1heChPLHopO2lmKEkgaW4gQyl7dmFyIEQ9Q1tJXTtMW0RdLnB1c2gocCksTFtwXS5wdXNoKEQpLFBbT109UFt6XT0hMH1lbHNlIENbSV09cH1mdW5jdGlvbiBSKHQpe2Zvcih2YXIgZT10Lmxlbmd0aCxyPTA7cjxlOysrcilpZighUFt0W3JdXSlyZXR1cm4hMTtyZXR1cm4hMH1mb3IodmFyIEY9W10sQj11KGcsLTEpLHA9MDtwPGc7KytwKXZbcF0hPT1wfHxSKGRbcF0pP0JbcF09LTE6KEYucHVzaChwKSxCW3BdPTApO3ZhciByPVtdO2Zvcig7Ri5sZW5ndGg+MDspe3ZhciBOPUYucG9wKCksaj1MW05dO2woaixmdW5jdGlvbih0LGUpe3JldHVybiB0LWV9KTt2YXIgVixVPWoubGVuZ3RoLHE9QltOXTtpZigwPT09cSl7dmFyIGs9ZFtOXTtWPVtrXX1mb3IodmFyIHA9MDtwPFU7KytwKXt2YXIgSD1qW3BdO2lmKCEoQltIXT49MCkmJihCW0hdPTFecSxGLnB1c2goSCksMD09PXEpKXt2YXIgaz1kW0hdO1Ioayl8fChrLnJldmVyc2UoKSxWLnB1c2goaykpfX0wPT09cSYmci5wdXNoKFYpfXJldHVybiByfTt2YXIgbj10KCJlZGdlcy10by1hZGphY2VuY3ktbGlzdCIpLGE9dCgicGxhbmFyLWR1YWwiKSxpPXQoInBvaW50LWluLWJpZy1wb2x5Z29uIiksbz10KCJ0d28tcHJvZHVjdCIpLHM9dCgicm9idXN0LXN1bSIpLGw9dCgidW5pcSIpLGM9dCgiLi9saWIvdHJpbS1sZWF2ZXMiKTtmdW5jdGlvbiB1KHQsZSl7Zm9yKHZhciByPW5ldyBBcnJheSh0KSxuPTA7bjx0OysrbilyW25dPWU7cmV0dXJuIHJ9fSx7Ii4vbGliL3RyaW0tbGVhdmVzIjo0NjksImVkZ2VzLXRvLWFkamFjZW5jeS1saXN0IjoxNzQsInBsYW5hci1kdWFsIjo0NjgsInBvaW50LWluLWJpZy1wb2x5Z29uIjo0NzQsInJvYnVzdC1zdW0iOjUxNCwidHdvLXByb2R1Y3QiOjU0Mix1bmlxOjU0Nn1dLDQ3MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi9xdWFkIil9LHsiLi9xdWFkIjo0NzN9XSw0NzI6W2Z1bmN0aW9uKHQsZSxyKXthcmd1bWVudHNbNF1bMTEzXVswXS5hcHBseShyLGFyZ3VtZW50cyl9LHtkdXA6MTEzfV0sNDczOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImJpbmFyeS1zZWFyY2gtYm91bmRzIiksYT10KCJjbGFtcCIpLGk9dCgicGFyc2UtcmVjdCIpLG89dCgiYXJyYXktYm91bmRzIikscz10KCJwaWNrLWJ5LWFsaWFzIiksbD10KCJkZWZpbmVkIiksYz10KCJmbGF0dGVuLXZlcnRleC1kYXRhIiksdT10KCJpcy1vYmoiKSxoPXQoImR0eXBlIiksZj10KCJtYXRoLWxvZzIiKSxwPTEwNzM3NDE4MjQ7ZnVuY3Rpb24gZCh0LGUpe2Zvcih2YXIgcj1lWzBdLG49ZVsxXSxpPTEvKGVbMl0tciksbz0xLyhlWzNdLW4pLHM9bmV3IEFycmF5KHQubGVuZ3RoKSxsPTAsYz10Lmxlbmd0aC8yO2w8YztsKyspc1syKmxdPWEoKHRbMipsXS1yKSppLDAsMSksc1syKmwrMV09YSgodFsyKmwrMV0tbikqbywwLDEpO3JldHVybiBzfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2V8fChlPXt9KSx0PWModCwiZmxvYXQ2NCIpLGU9cyhlLHtib3VuZHM6InJhbmdlIGJvdW5kcyBkYXRhQm94IGRhdGFib3giLG1heERlcHRoOiJkZXB0aCBtYXhEZXB0aCBtYXhkZXB0aCBsZXZlbCBtYXhMZXZlbCBtYXhsZXZlbCBsZXZlbHMiLGR0eXBlOiJ0eXBlIGR0eXBlIGZvcm1hdCBvdXQgZHN0IG91dHB1dCBkZXN0aW5hdGlvbiJ9KTt2YXIgcj1sKGUubWF4RGVwdGgsMjU1KSxhPWwoZS5ib3VuZHMsbyh0LDIpKTthWzBdPT09YVsyXSYmYVsyXSsrLGFbMV09PT1hWzNdJiZhWzNdKys7dmFyIGcsdj1kKHQsYSksbT10Lmxlbmd0aD4+PjE7ZS5kdHlwZXx8KGUuZHR5cGU9ImFycmF5IiksInN0cmluZyI9PXR5cGVvZiBlLmR0eXBlP2c9bmV3KGgoZS5kdHlwZSkpKG0pOmUuZHR5cGUmJihnPWUuZHR5cGUsQXJyYXkuaXNBcnJheShnKSYmKGcubGVuZ3RoPW0pKTtmb3IodmFyIHk9MDt5PG07Kyt5KWdbeV09eTt2YXIgeD1bXSxiPVtdLF89W10sdz1bXTshZnVuY3Rpb24gdChlLG4sYSxpLG8scyl7aWYoIWkubGVuZ3RoKXJldHVybiBudWxsO3ZhciBsPXhbb118fCh4W29dPVtdKTt2YXIgYz1fW29dfHwoX1tvXT1bXSk7dmFyIHU9YltvXXx8KGJbb109W10pO3ZhciBoPWwubGVuZ3RoO28rKztpZihvPnJ8fHM+cCl7Zm9yKHZhciBmPTA7ZjxpLmxlbmd0aDtmKyspbC5wdXNoKGlbZl0pLGMucHVzaChzKSx1LnB1c2gobnVsbCxudWxsLG51bGwsbnVsbCk7cmV0dXJuIGh9bC5wdXNoKGlbMF0pO2MucHVzaChzKTtpZihpLmxlbmd0aDw9MSlyZXR1cm4gdS5wdXNoKG51bGwsbnVsbCxudWxsLG51bGwpLGg7dmFyIGQ9LjUqYTt2YXIgZz1lK2QsbT1uK2Q7dmFyIHk9W10sdz1bXSxrPVtdLFQ9W107Zm9yKHZhciBNPTEsQT1pLmxlbmd0aDtNPEE7TSsrKXt2YXIgUz1pW01dLEU9dlsyKlNdLEw9dlsyKlMrMV07RTxnP0w8bT95LnB1c2goUyk6dy5wdXNoKFMpOkw8bT9rLnB1c2goUyk6VC5wdXNoKFMpfXM8PD0yO3UucHVzaCh0KGUsbixkLHksbyxzKSx0KGUsbSxkLHcsbyxzKzEpLHQoZyxuLGQsayxvLHMrMiksdChnLG0sZCxULG8scyszKSk7cmV0dXJuIGh9KDAsMCwxLGcsMCwxKTtmb3IodmFyIGs9MCxUPTA7VDx4Lmxlbmd0aDtUKyspe3ZhciBNPXhbVF07aWYoZy5zZXQpZy5zZXQoTSxrKTtlbHNlIGZvcih2YXIgQT0wLFM9TS5sZW5ndGg7QTxTO0ErKylnW0Era109TVtBXTt2YXIgRT1rK3hbVF0ubGVuZ3RoO3dbVF09W2ssRV0saz1FfXJldHVybiBnLnJhbmdlPWZ1bmN0aW9uKCl7dmFyIGUscj1bXSxvPWFyZ3VtZW50cy5sZW5ndGg7Zm9yKDtvLS07KXJbb109YXJndW1lbnRzW29dO2lmKHUocltyLmxlbmd0aC0xXSkpe3ZhciBjPXIucG9wKCk7ci5sZW5ndGh8fG51bGw9PWMueCYmbnVsbD09Yy5sJiZudWxsPT1jLmxlZnR8fChyPVtjXSxlPXt9KSxlPXMoYyx7bGV2ZWw6ImxldmVsIG1heExldmVsIixkOiJkIGRpYW0gZGlhbWV0ZXIgciByYWRpdXMgcHggcHhTaXplIHBpeGVsIHBpeGVsU2l6ZSBtYXhEIHNpemUgbWluU2l6ZSIsbG9kOiJsb2QgZGV0YWlscyByYW5nZXMgb2Zmc2V0cyJ9KX1lbHNlIGU9e307ci5sZW5ndGh8fChyPWEpO3ZhciBoPWkuYXBwbHkodm9pZCAwLHIpLHA9W01hdGgubWluKGgueCxoLngraC53aWR0aCksTWF0aC5taW4oaC55LGgueStoLmhlaWdodCksTWF0aC5tYXgoaC54LGgueCtoLndpZHRoKSxNYXRoLm1heChoLnksaC55K2guaGVpZ2h0KV0sZz1wWzBdLHY9cFsxXSxtPXBbMl0seT1wWzNdLGs9ZChbZyx2LG0seV0sYSksVD1rWzBdLE09a1sxXSxBPWtbMl0sUz1rWzNdLEU9bChlLmxldmVsLHgubGVuZ3RoKTtpZihudWxsIT1lLmQpe3ZhciBDOyJudW1iZXIiPT10eXBlb2YgZS5kP0M9W2UuZCxlLmRdOmUuZC5sZW5ndGgmJihDPWUuZCksRT1NYXRoLm1pbihNYXRoLm1heChNYXRoLmNlaWwoLWYoTWF0aC5hYnMoQ1swXSkvKGFbMl0tYVswXSkpKSxNYXRoLmNlaWwoLWYoTWF0aC5hYnMoQ1sxXSkvKGFbM10tYVsxXSkpKSksRSl9aWYoRT1NYXRoLm1pbihFLHgubGVuZ3RoKSxlLmxvZClyZXR1cm4gZnVuY3Rpb24odCxlLHIsYSxpKXtmb3IodmFyIG89W10scz0wO3M8aTtzKyspe3ZhciBsPV9bc10sYz13W3NdWzBdLHU9TCh0LGUscyksaD1MKHIsYSxzKSxmPW4uZ2UobCx1KSxwPW4uZ3QobCxoLGYsbC5sZW5ndGgtMSk7b1tzXT1bZitjLHArY119cmV0dXJuIG99KFQsTSxBLFMsRSk7dmFyIFA9W107cmV0dXJuIGZ1bmN0aW9uIGUocixuLGEsaSxvLHMpe2lmKG51bGwhPT1vJiZudWxsIT09cyl7dmFyIGw9cithLGM9bithO2lmKCEoVD5sfHxNPmN8fEE8cnx8UzxufHxpPj1FfHxvPT09cykpe3ZhciB1PXhbaV07dm9pZCAwPT09cyYmKHM9dS5sZW5ndGgpO2Zvcih2YXIgaD1vO2g8cztoKyspe3ZhciBmPXVbaF0scD10WzIqZl0sZD10WzIqZisxXTtwPj1nJiZwPD1tJiZkPj12JiZkPD15JiZQLnB1c2goZil9dmFyIF89YltpXSx3PV9bNCpvKzBdLGs9X1s0Km8rMV0sTD1fWzQqbysyXSxDPV9bNCpvKzNdLE89ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9bnVsbCxuPTA7bnVsbD09PXI7KWlmKHI9dFs0KmUrbl0sKytuPnQubGVuZ3RoKXJldHVybiBudWxsO3JldHVybiByfShfLG8rMSksej0uNSphLEk9aSsxO2UocixuLHosSSx3LGt8fEx8fEN8fE8pLGUocixuK3oseixJLGssTHx8Q3x8TyksZShyK3osbix6LEksTCxDfHxPKSxlKHIreixuK3oseixJLEMsTyl9fX0oMCwwLDEsMCwwLDEpLFB9LGc7ZnVuY3Rpb24gTCh0LGUscil7Zm9yKHZhciBuPTEsYT0uNSxpPS41LG89LjUscz0wO3M8cjtzKyspbjw8PTIsbis9dDxhP2U8aT8wOjE6ZTxpPzI6MyxvKj0uNSxhKz10PGE/LW86byxpKz1lPGk/LW86bztyZXR1cm4gbn19fSx7ImFycmF5LWJvdW5kcyI6NjgsImJpbmFyeS1zZWFyY2gtYm91bmRzIjo0NzIsY2xhbXA6MTE3LGRlZmluZWQ6MTY2LGR0eXBlOjE3MSwiZmxhdHRlbi12ZXJ0ZXgtZGF0YSI6MjMwLCJpcy1vYmoiOjQyMywibWF0aC1sb2cyIjo0MzQsInBhcnNlLXJlY3QiOjQ2MSwicGljay1ieS1hbGlhcyI6NDY3fV0sNDc0OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Lmxlbmd0aCxyPVtdLGk9W10scz0wO3M8ZTsrK3MpZm9yKHZhciB1PXRbc10saD11Lmxlbmd0aCxmPWgtMSxwPTA7cDxoO2Y9cCsrKXt2YXIgZD11W2ZdLGc9dVtwXTtkWzBdPT09Z1swXT9pLnB1c2goW2QsZ10pOnIucHVzaChbZCxnXSl9aWYoMD09PXIubGVuZ3RoKXJldHVybiAwPT09aS5sZW5ndGg/Yzoodj1sKGkpLGZ1bmN0aW9uKHQpe3JldHVybiB2KHRbMF0sdFsxXSk/MDoxfSk7dmFyIHY7dmFyIG09YShyKSx5PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHIpe3ZhciBhPW8ubGUoZSxyWzBdKTtpZihhPDApcmV0dXJuIDE7dmFyIGk9dFthXTtpZighaSl7aWYoIShhPjAmJmVbYV09PT1yWzBdKSlyZXR1cm4gMTtpPXRbYS0xXX1mb3IodmFyIHM9MTtpOyl7dmFyIGw9aS5rZXksYz1uKHIsbFswXSxsWzFdKTtpZihsWzBdWzBdPGxbMV1bMF0paWYoYzwwKWk9aS5sZWZ0O2Vsc2V7aWYoIShjPjApKXJldHVybiAwO3M9LTEsaT1pLnJpZ2h0fWVsc2UgaWYoYz4wKWk9aS5sZWZ0O2Vsc2V7aWYoIShjPDApKXJldHVybiAwO3M9MSxpPWkucmlnaHR9fXJldHVybiBzfX0obS5zbGFicyxtLmNvb3JkaW5hdGVzKTtyZXR1cm4gMD09PWkubGVuZ3RoP3k6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIHQoclswXSxyWzFdKT8wOmUocil9fShsKGkpLHkpfTt2YXIgbj10KCJyb2J1c3Qtb3JpZW50YXRpb24iKVszXSxhPXQoInNsYWItZGVjb21wb3NpdGlvbiIpLGk9dCgiaW50ZXJ2YWwtdHJlZS0xZCIpLG89dCgiYmluYXJ5LXNlYXJjaC1ib3VuZHMiKTtmdW5jdGlvbiBzKCl7cmV0dXJuITB9ZnVuY3Rpb24gbCh0KXtmb3IodmFyIGU9e30scj0wO3I8dC5sZW5ndGg7KytyKXt2YXIgbj10W3JdLGE9blswXVswXSxvPW5bMF1bMV0sbD1uWzFdWzFdLGM9W01hdGgubWluKG8sbCksTWF0aC5tYXgobyxsKV07YSBpbiBlP2VbYV0ucHVzaChjKTplW2FdPVtjXX12YXIgdT17fSxoPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxoLmxlbmd0aDsrK3Ipe3ZhciBmPWVbaFtyXV07dVtoW3JdXT1pKGYpfXJldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxyKXt2YXIgbj10W2VdO3JldHVybiEhbiYmISFuLnF1ZXJ5UG9pbnQocixzKX19KHUpfWZ1bmN0aW9uIGModCl7cmV0dXJuIDF9fSx7ImJpbmFyeS1zZWFyY2gtYm91bmRzIjo5MywiaW50ZXJ2YWwtdHJlZS0xZCI6NDE2LCJyb2J1c3Qtb3JpZW50YXRpb24iOjUwOSwic2xhYi1kZWNvbXBvc2l0aW9uIjo1MjV9XSw0NzU6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbixhPXQoIi4vbGliL2J1aWxkLWxvZyIpLGk9dCgiLi9saWIvZXBzaWxvbiIpLG89dCgiLi9saWIvaW50ZXJzZWN0ZXIiKSxzPXQoIi4vbGliL3NlZ21lbnQtY2hhaW5lciIpLGw9dCgiLi9saWIvc2VnbWVudC1zZWxlY3RvciIpLGM9dCgiLi9saWIvZ2VvanNvbiIpLHU9ITEsaD1pKCk7ZnVuY3Rpb24gZih0LGUscil7dmFyIGE9bi5zZWdtZW50cyh0KSxpPW4uc2VnbWVudHMoZSksbz1yKG4uY29tYmluZShhLGkpKTtyZXR1cm4gbi5wb2x5Z29uKG8pfW49e2J1aWxkTG9nOmZ1bmN0aW9uKHQpe3JldHVybiEwPT09dD91PWEoKTohMT09PXQmJih1PSExKSwhMSE9PXUmJnUubGlzdH0sZXBzaWxvbjpmdW5jdGlvbih0KXtyZXR1cm4gaC5lcHNpbG9uKHQpfSxzZWdtZW50czpmdW5jdGlvbih0KXt2YXIgZT1vKCEwLGgsdSk7cmV0dXJuIHQucmVnaW9ucy5mb3JFYWNoKGUuYWRkUmVnaW9uKSx7c2VnbWVudHM6ZS5jYWxjdWxhdGUodC5pbnZlcnRlZCksaW52ZXJ0ZWQ6dC5pbnZlcnRlZH19LGNvbWJpbmU6ZnVuY3Rpb24odCxlKXtyZXR1cm57Y29tYmluZWQ6byghMSxoLHUpLmNhbGN1bGF0ZSh0LnNlZ21lbnRzLHQuaW52ZXJ0ZWQsZS5zZWdtZW50cyxlLmludmVydGVkKSxpbnZlcnRlZDE6dC5pbnZlcnRlZCxpbnZlcnRlZDI6ZS5pbnZlcnRlZH19LHNlbGVjdFVuaW9uOmZ1bmN0aW9uKHQpe3JldHVybntzZWdtZW50czpsLnVuaW9uKHQuY29tYmluZWQsdSksaW52ZXJ0ZWQ6dC5pbnZlcnRlZDF8fHQuaW52ZXJ0ZWQyfX0sc2VsZWN0SW50ZXJzZWN0OmZ1bmN0aW9uKHQpe3JldHVybntzZWdtZW50czpsLmludGVyc2VjdCh0LmNvbWJpbmVkLHUpLGludmVydGVkOnQuaW52ZXJ0ZWQxJiZ0LmludmVydGVkMn19LHNlbGVjdERpZmZlcmVuY2U6ZnVuY3Rpb24odCl7cmV0dXJue3NlZ21lbnRzOmwuZGlmZmVyZW5jZSh0LmNvbWJpbmVkLHUpLGludmVydGVkOnQuaW52ZXJ0ZWQxJiYhdC5pbnZlcnRlZDJ9fSxzZWxlY3REaWZmZXJlbmNlUmV2OmZ1bmN0aW9uKHQpe3JldHVybntzZWdtZW50czpsLmRpZmZlcmVuY2VSZXYodC5jb21iaW5lZCx1KSxpbnZlcnRlZDohdC5pbnZlcnRlZDEmJnQuaW52ZXJ0ZWQyfX0sc2VsZWN0WG9yOmZ1bmN0aW9uKHQpe3JldHVybntzZWdtZW50czpsLnhvcih0LmNvbWJpbmVkLHUpLGludmVydGVkOnQuaW52ZXJ0ZWQxIT09dC5pbnZlcnRlZDJ9fSxwb2x5Z29uOmZ1bmN0aW9uKHQpe3JldHVybntyZWdpb25zOnModC5zZWdtZW50cyxoLHUpLGludmVydGVkOnQuaW52ZXJ0ZWR9fSxwb2x5Z29uRnJvbUdlb0pTT046ZnVuY3Rpb24odCl7cmV0dXJuIGMudG9Qb2x5Z29uKG4sdCl9LHBvbHlnb25Ub0dlb0pTT046ZnVuY3Rpb24odCl7cmV0dXJuIGMuZnJvbVBvbHlnb24obixoLHQpfSx1bmlvbjpmdW5jdGlvbih0LGUpe3JldHVybiBmKHQsZSxuLnNlbGVjdFVuaW9uKX0saW50ZXJzZWN0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGYodCxlLG4uc2VsZWN0SW50ZXJzZWN0KX0sZGlmZmVyZW5jZTpmdW5jdGlvbih0LGUpe3JldHVybiBmKHQsZSxuLnNlbGVjdERpZmZlcmVuY2UpfSxkaWZmZXJlbmNlUmV2OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGYodCxlLG4uc2VsZWN0RGlmZmVyZW5jZVJldil9LHhvcjpmdW5jdGlvbih0LGUpe3JldHVybiBmKHQsZSxuLnNlbGVjdFhvcil9fSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmKHdpbmRvdy5Qb2x5Qm9vbD1uKSxlLmV4cG9ydHM9bn0seyIuL2xpYi9idWlsZC1sb2ciOjQ3NiwiLi9saWIvZXBzaWxvbiI6NDc3LCIuL2xpYi9nZW9qc29uIjo0NzgsIi4vbGliL2ludGVyc2VjdGVyIjo0NzksIi4vbGliL3NlZ21lbnQtY2hhaW5lciI6NDgxLCIuL2xpYi9zZWdtZW50LXNlbGVjdG9yIjo0ODJ9XSw0NzY6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgdCxlPTAscj0hMTtmdW5jdGlvbiBuKGUscil7cmV0dXJuIHQubGlzdC5wdXNoKHt0eXBlOmUsZGF0YTpyP0pTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkocikpOnZvaWQgMH0pLHR9cmV0dXJuIHQ9e2xpc3Q6W10sc2VnbWVudElkOmZ1bmN0aW9uKCl7cmV0dXJuIGUrK30sY2hlY2tJbnRlcnNlY3Rpb246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbigiY2hlY2siLHtzZWcxOnQsc2VnMjplfSl9LHNlZ21lbnRDaG9wOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4oImRpdl9zZWciLHtzZWc6dCxwdDplfSksbigiY2hvcCIse3NlZzp0LHB0OmV9KX0sc3RhdHVzUmVtb3ZlOmZ1bmN0aW9uKHQpe3JldHVybiBuKCJwb3Bfc2VnIix7c2VnOnR9KX0sc2VnbWVudFVwZGF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gbigic2VnX3VwZGF0ZSIse3NlZzp0fSl9LHNlZ21lbnROZXc6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbigibmV3X3NlZyIse3NlZzp0LHByaW1hcnk6ZX0pfSxzZWdtZW50UmVtb3ZlOmZ1bmN0aW9uKHQpe3JldHVybiBuKCJyZW1fc2VnIix7c2VnOnR9KX0sdGVtcFN0YXR1czpmdW5jdGlvbih0LGUscil7cmV0dXJuIG4oInRlbXBfc3RhdHVzIix7c2VnOnQsYWJvdmU6ZSxiZWxvdzpyfSl9LHJld2luZDpmdW5jdGlvbih0KXtyZXR1cm4gbigicmV3aW5kIix7c2VnOnR9KX0sc3RhdHVzOmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gbigic3RhdHVzIix7c2VnOnQsYWJvdmU6ZSxiZWxvdzpyfSl9LHZlcnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1yP3Q6KHI9ZSxuKCJ2ZXJ0Iix7eDplfSkpfSxsb2c6ZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyIhPXR5cGVvZiB0JiYodD1KU09OLnN0cmluZ2lmeSh0LCExLCIgICIpKSxuKCJsb2ciLHt0eHQ6dH0pfSxyZXNldDpmdW5jdGlvbigpe3JldHVybiBuKCJyZXNldCIpfSxzZWxlY3RlZDpmdW5jdGlvbih0KXtyZXR1cm4gbigic2VsZWN0ZWQiLHtzZWdzOnR9KX0sY2hhaW5TdGFydDpmdW5jdGlvbih0KXtyZXR1cm4gbigiY2hhaW5fc3RhcnQiLHtzZWc6dH0pfSxjaGFpblJlbW92ZUhlYWQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbigiY2hhaW5fcmVtX2hlYWQiLHtpbmRleDp0LHB0OmV9KX0sY2hhaW5SZW1vdmVUYWlsOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4oImNoYWluX3JlbV90YWlsIix7aW5kZXg6dCxwdDplfSl9LGNoYWluTmV3OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4oImNoYWluX25ldyIse3B0MTp0LHB0MjplfSl9LGNoYWluTWF0Y2g6ZnVuY3Rpb24odCl7cmV0dXJuIG4oImNoYWluX21hdGNoIix7aW5kZXg6dH0pfSxjaGFpbkNsb3NlOmZ1bmN0aW9uKHQpe3JldHVybiBuKCJjaGFpbl9jbG9zZSIse2luZGV4OnR9KX0sY2hhaW5BZGRIZWFkOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4oImNoYWluX2FkZF9oZWFkIix7aW5kZXg6dCxwdDplfSl9LGNoYWluQWRkVGFpbDpmdW5jdGlvbih0LGUpe3JldHVybiBuKCJjaGFpbl9hZGRfdGFpbCIse2luZGV4OnQscHQ6ZX0pfSxjaGFpbkNvbm5lY3Q6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbigiY2hhaW5fY29uIix7aW5kZXgxOnQsaW5kZXgyOmV9KX0sY2hhaW5SZXZlcnNlOmZ1bmN0aW9uKHQpe3JldHVybiBuKCJjaGFpbl9yZXYiLHtpbmRleDp0fSl9LGNoYWluSm9pbjpmdW5jdGlvbih0LGUpe3JldHVybiBuKCJjaGFpbl9qb2luIix7aW5kZXgxOnQsaW5kZXgyOmV9KX0sZG9uZTpmdW5jdGlvbigpe3JldHVybiBuKCJkb25lIil9fX19LHt9XSw0Nzc6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Im51bWJlciIhPXR5cGVvZiB0JiYodD0xZS0xMCk7dmFyIGU9e2Vwc2lsb246ZnVuY3Rpb24oZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlJiYodD1lKSx0fSxwb2ludEFib3ZlT3JPbkxpbmU6ZnVuY3Rpb24oZSxyLG4pe3ZhciBhPXJbMF0saT1yWzFdLG89blswXSxzPW5bMV0sbD1lWzBdO3JldHVybihvLWEpKihlWzFdLWkpLShzLWkpKihsLWEpPj0tdH0scG9pbnRCZXR3ZWVuOmZ1bmN0aW9uKGUscixuKXt2YXIgYT1lWzFdLXJbMV0saT1uWzBdLXJbMF0sbz1lWzBdLXJbMF0scz1uWzFdLXJbMV0sbD1vKmkrYSpzO3JldHVybiEobDx0fHxsLShpKmkrcypzKT4tdCl9LHBvaW50c1NhbWVYOmZ1bmN0aW9uKGUscil7cmV0dXJuIE1hdGguYWJzKGVbMF0tclswXSk8dH0scG9pbnRzU2FtZVk6ZnVuY3Rpb24oZSxyKXtyZXR1cm4gTWF0aC5hYnMoZVsxXS1yWzFdKTx0fSxwb2ludHNTYW1lOmZ1bmN0aW9uKHQscil7cmV0dXJuIGUucG9pbnRzU2FtZVgodCxyKSYmZS5wb2ludHNTYW1lWSh0LHIpfSxwb2ludHNDb21wYXJlOmZ1bmN0aW9uKHQscil7cmV0dXJuIGUucG9pbnRzU2FtZVgodCxyKT9lLnBvaW50c1NhbWVZKHQscik/MDp0WzFdPHJbMV0/LTE6MTp0WzBdPHJbMF0/LTE6MX0scG9pbnRzQ29sbGluZWFyOmZ1bmN0aW9uKGUscixuKXt2YXIgYT1lWzBdLXJbMF0saT1lWzFdLXJbMV0sbz1yWzBdLW5bMF0scz1yWzFdLW5bMV07cmV0dXJuIE1hdGguYWJzKGEqcy1vKmkpPHR9LGxpbmVzSW50ZXJzZWN0OmZ1bmN0aW9uKGUscixuLGEpe3ZhciBpPXJbMF0tZVswXSxvPXJbMV0tZVsxXSxzPWFbMF0tblswXSxsPWFbMV0tblsxXSxjPWkqbC1vKnM7aWYoTWF0aC5hYnMoYyk8dClyZXR1cm4hMTt2YXIgdT1lWzBdLW5bMF0saD1lWzFdLW5bMV0sZj0ocypoLWwqdSkvYyxwPShpKmgtbyp1KS9jLGQ9e2Fsb25nQTowLGFsb25nQjowLHB0OltlWzBdK2YqaSxlWzFdK2Yqb119O3JldHVybiBkLmFsb25nQT1mPD0tdD8tMjpmPHQ/LTE6Zi0xPD0tdD8wOmYtMTx0PzE6MixkLmFsb25nQj1wPD0tdD8tMjpwPHQ/LTE6cC0xPD0tdD8wOnAtMTx0PzE6MixkfSxwb2ludEluc2lkZVJlZ2lvbjpmdW5jdGlvbihlLHIpe2Zvcih2YXIgbj1lWzBdLGE9ZVsxXSxpPXJbci5sZW5ndGgtMV1bMF0sbz1yW3IubGVuZ3RoLTFdWzFdLHM9ITEsbD0wO2w8ci5sZW5ndGg7bCsrKXt2YXIgYz1yW2xdWzBdLHU9cltsXVsxXTt1LWE+dCE9by1hPnQmJihpLWMpKihhLXUpLyhvLXUpK2Mtbj50JiYocz0hcyksaT1jLG89dX1yZXR1cm4gc319O3JldHVybiBlfX0se31dLDQ3ODpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXt0b1BvbHlnb246ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKGUpe2lmKGUubGVuZ3RoPD0wKXJldHVybiB0LnNlZ21lbnRzKHtpbnZlcnRlZDohMSxyZWdpb25zOltdfSk7ZnVuY3Rpb24gcihlKXt2YXIgcj1lLnNsaWNlKDAsZS5sZW5ndGgtMSk7cmV0dXJuIHQuc2VnbWVudHMoe2ludmVydGVkOiExLHJlZ2lvbnM6W3JdfSl9Zm9yKHZhciBuPXIoZVswXSksYT0xO2E8ZS5sZW5ndGg7YSsrKW49dC5zZWxlY3REaWZmZXJlbmNlKHQuY29tYmluZShuLHIoZVthXSkpKTtyZXR1cm4gbn1pZigiUG9seWdvbiI9PT1lLnR5cGUpcmV0dXJuIHQucG9seWdvbihyKGUuY29vcmRpbmF0ZXMpKTtpZigiTXVsdGlQb2x5Z29uIj09PWUudHlwZSl7Zm9yKHZhciBuPXQuc2VnbWVudHMoe2ludmVydGVkOiExLHJlZ2lvbnM6W119KSxhPTA7YTxlLmNvb3JkaW5hdGVzLmxlbmd0aDthKyspbj10LnNlbGVjdFVuaW9uKHQuY29tYmluZShuLHIoZS5jb29yZGluYXRlc1thXSkpKTtyZXR1cm4gdC5wb2x5Z29uKG4pfXRocm93IG5ldyBFcnJvcigiUG9seUJvb2w6IENhbm5vdCBjb252ZXJ0IEdlb0pTT04gb2JqZWN0IHRvIFBvbHlCb29sIHBvbHlnb24iKX0sZnJvbVBvbHlnb246ZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCxyKXtyZXR1cm4gZS5wb2ludEluc2lkZVJlZ2lvbihbLjUqKHRbMF1bMF0rdFsxXVswXSksLjUqKHRbMF1bMV0rdFsxXVsxXSldLHIpfWZ1bmN0aW9uIGEodCl7cmV0dXJue3JlZ2lvbjp0LGNoaWxkcmVuOltdfX1yPXQucG9seWdvbih0LnNlZ21lbnRzKHIpKTt2YXIgaT1hKG51bGwpO2Z1bmN0aW9uIG8odCxlKXtmb3IodmFyIHI9MDtyPHQuY2hpbGRyZW4ubGVuZ3RoO3IrKyl7aWYobihlLChzPXQuY2hpbGRyZW5bcl0pLnJlZ2lvbikpcmV0dXJuIHZvaWQgbyhzLGUpfXZhciBpPWEoZSk7Zm9yKHI9MDtyPHQuY2hpbGRyZW4ubGVuZ3RoO3IrKyl7dmFyIHM7bigocz10LmNoaWxkcmVuW3JdKS5yZWdpb24sZSkmJihpLmNoaWxkcmVuLnB1c2gocyksdC5jaGlsZHJlbi5zcGxpY2UociwxKSxyLS0pfXQuY2hpbGRyZW4ucHVzaChpKX1mb3IodmFyIHM9MDtzPHIucmVnaW9ucy5sZW5ndGg7cysrKXt2YXIgbD1yLnJlZ2lvbnNbc107bC5sZW5ndGg8M3x8byhpLGwpfWZ1bmN0aW9uIGModCxlKXtmb3IodmFyIHI9MCxuPXRbdC5sZW5ndGgtMV1bMF0sYT10W3QubGVuZ3RoLTFdWzFdLGk9W10sbz0wO288dC5sZW5ndGg7bysrKXt2YXIgcz10W29dWzBdLGw9dFtvXVsxXTtpLnB1c2goW3MsbF0pLHIrPWwqbi1zKmEsbj1zLGE9bH1yZXR1cm4gcjwwIT09ZSYmaS5yZXZlcnNlKCksaS5wdXNoKFtpWzBdWzBdLGlbMF1bMV1dKSxpfXZhciB1PVtdO2Z1bmN0aW9uIGgodCl7dmFyIGU9W2ModC5yZWdpb24sITEpXTt1LnB1c2goZSk7Zm9yKHZhciByPTA7cjx0LmNoaWxkcmVuLmxlbmd0aDtyKyspZS5wdXNoKGYodC5jaGlsZHJlbltyXSkpfWZ1bmN0aW9uIGYodCl7Zm9yKHZhciBlPTA7ZTx0LmNoaWxkcmVuLmxlbmd0aDtlKyspaCh0LmNoaWxkcmVuW2VdKTtyZXR1cm4gYyh0LnJlZ2lvbiwhMCl9Zm9yKHM9MDtzPGkuY2hpbGRyZW4ubGVuZ3RoO3MrKyloKGkuY2hpbGRyZW5bc10pO3JldHVybiB1Lmxlbmd0aDw9MD97dHlwZToiUG9seWdvbiIsY29vcmRpbmF0ZXM6W119OjE9PXUubGVuZ3RoP3t0eXBlOiJQb2x5Z29uIixjb29yZGluYXRlczp1WzBdfTp7dHlwZToiTXVsdGlQb2x5Z29uIixjb29yZGluYXRlczp1fX19O2UuZXhwb3J0cz1ufSx7fV0sNDc5OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi9saW5rZWQtbGlzdCIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gYSh0LGUsbil7cmV0dXJue2lkOnI/ci5zZWdtZW50SWQoKTotMSxzdGFydDp0LGVuZDplLG15RmlsbDp7YWJvdmU6bi5teUZpbGwuYWJvdmUsYmVsb3c6bi5teUZpbGwuYmVsb3d9LG90aGVyRmlsbDpudWxsfX12YXIgaT1uLmNyZWF0ZSgpO2Z1bmN0aW9uIG8odCxyKXtpLmluc2VydEJlZm9yZSh0LGZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbih0LHIsbixhLGksbyl7dmFyIHM9ZS5wb2ludHNDb21wYXJlKHIsaSk7cmV0dXJuIDAhPT1zP3M6ZS5wb2ludHNTYW1lKG4sbyk/MDp0IT09YT90PzE6LTE6ZS5wb2ludEFib3ZlT3JPbkxpbmUobixhP2k6byxhP286aSk/MTotMX0odC5pc1N0YXJ0LHQucHQscixuLmlzU3RhcnQsbi5wdCxuLm90aGVyLnB0KTwwfSl9ZnVuY3Rpb24gcyh0LGUpe3ZhciByPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bi5ub2RlKHtpc1N0YXJ0OiEwLHB0OnQuc3RhcnQsc2VnOnQscHJpbWFyeTplLG90aGVyOm51bGwsc3RhdHVzOm51bGx9KTtyZXR1cm4gbyhyLHQuZW5kKSxyfSh0LGUpO3JldHVybiBmdW5jdGlvbih0LGUscil7dmFyIGE9bi5ub2RlKHtpc1N0YXJ0OiExLHB0OmUuZW5kLHNlZzplLHByaW1hcnk6cixvdGhlcjp0LHN0YXR1czpudWxsfSk7dC5vdGhlcj1hLG8oYSx0LnB0KX0ocix0LGUpLHJ9ZnVuY3Rpb24gbCh0LGUpe3ZhciBuPWEoZSx0LnNlZy5lbmQsdC5zZWcpO3JldHVybiBmdW5jdGlvbih0LGUpe3ImJnIuc2VnbWVudENob3AodC5zZWcsZSksdC5vdGhlci5yZW1vdmUoKSx0LnNlZy5lbmQ9ZSx0Lm90aGVyLnB0PWUsbyh0Lm90aGVyLHQucHQpfSh0LGUpLHMobix0LnByaW1hcnkpfWZ1bmN0aW9uIGMoYSxvKXt2YXIgcz1uLmNyZWF0ZSgpO2Z1bmN0aW9uIGModCl7cmV0dXJuIHMuZmluZFRyYW5zaXRpb24oZnVuY3Rpb24ocil7dmFyIG4sYSxpLG8scyxsO3JldHVybiBuPXQsYT1yLmV2LGk9bi5zZWcuc3RhcnQsbz1uLnNlZy5lbmQscz1hLnNlZy5zdGFydCxsPWEuc2VnLmVuZCwoZS5wb2ludHNDb2xsaW5lYXIoaSxzLGwpP2UucG9pbnRzQ29sbGluZWFyKG8scyxsKT8xOmUucG9pbnRBYm92ZU9yT25MaW5lKG8scyxsKT8xOi0xOmUucG9pbnRBYm92ZU9yT25MaW5lKGkscyxsKT8xOi0xKT4wfSl9ZnVuY3Rpb24gdSh0LG4pe3ZhciBhPXQuc2VnLGk9bi5zZWcsbz1hLnN0YXJ0LHM9YS5lbmQsYz1pLnN0YXJ0LHU9aS5lbmQ7ciYmci5jaGVja0ludGVyc2VjdGlvbihhLGkpO3ZhciBoPWUubGluZXNJbnRlcnNlY3QobyxzLGMsdSk7aWYoITE9PT1oKXtpZighZS5wb2ludHNDb2xsaW5lYXIobyxzLGMpKXJldHVybiExO2lmKGUucG9pbnRzU2FtZShvLHUpfHxlLnBvaW50c1NhbWUocyxjKSlyZXR1cm4hMTt2YXIgZj1lLnBvaW50c1NhbWUobyxjKSxwPWUucG9pbnRzU2FtZShzLHUpO2lmKGYmJnApcmV0dXJuIG47dmFyIGQ9IWYmJmUucG9pbnRCZXR3ZWVuKG8sYyx1KSxnPSFwJiZlLnBvaW50QmV0d2VlbihzLGMsdSk7aWYoZilyZXR1cm4gZz9sKG4scyk6bCh0LHUpLG47ZCYmKHB8fChnP2wobixzKTpsKHQsdSkpLGwobixvKSl9ZWxzZSAwPT09aC5hbG9uZ0EmJigtMT09PWguYWxvbmdCP2wodCxjKTowPT09aC5hbG9uZ0I/bCh0LGgucHQpOjE9PT1oLmFsb25nQiYmbCh0LHUpKSwwPT09aC5hbG9uZ0ImJigtMT09PWguYWxvbmdBP2wobixvKTowPT09aC5hbG9uZ0E/bChuLGgucHQpOjE9PT1oLmFsb25nQSYmbChuLHMpKTtyZXR1cm4hMX1mb3IodmFyIGg9W107IWkuaXNFbXB0eSgpOyl7dmFyIGY9aS5nZXRIZWFkKCk7aWYociYmci52ZXJ0KGYucHRbMF0pLGYuaXNTdGFydCl7ciYmci5zZWdtZW50TmV3KGYuc2VnLGYucHJpbWFyeSk7dmFyIHA9YyhmKSxkPXAuYmVmb3JlP3AuYmVmb3JlLmV2Om51bGwsZz1wLmFmdGVyP3AuYWZ0ZXIuZXY6bnVsbDtmdW5jdGlvbiB2KCl7aWYoZCl7dmFyIHQ9dShmLGQpO2lmKHQpcmV0dXJuIHR9cmV0dXJuISFnJiZ1KGYsZyl9ciYmci50ZW1wU3RhdHVzKGYuc2VnLCEhZCYmZC5zZWcsISFnJiZnLnNlZyk7dmFyIG0seSx4PXYoKTtpZih4KXQ/KHk9bnVsbD09PWYuc2VnLm15RmlsbC5iZWxvd3x8Zi5zZWcubXlGaWxsLmFib3ZlIT09Zi5zZWcubXlGaWxsLmJlbG93KSYmKHguc2VnLm15RmlsbC5hYm92ZT0heC5zZWcubXlGaWxsLmFib3ZlKTp4LnNlZy5vdGhlckZpbGw9Zi5zZWcubXlGaWxsLHImJnIuc2VnbWVudFVwZGF0ZSh4LnNlZyksZi5vdGhlci5yZW1vdmUoKSxmLnJlbW92ZSgpO2lmKGkuZ2V0SGVhZCgpIT09Zil7ciYmci5yZXdpbmQoZi5zZWcpO2NvbnRpbnVlfXQ/KHk9bnVsbD09PWYuc2VnLm15RmlsbC5iZWxvd3x8Zi5zZWcubXlGaWxsLmFib3ZlIT09Zi5zZWcubXlGaWxsLmJlbG93LGYuc2VnLm15RmlsbC5iZWxvdz1nP2cuc2VnLm15RmlsbC5hYm92ZTphLGYuc2VnLm15RmlsbC5hYm92ZT15PyFmLnNlZy5teUZpbGwuYmVsb3c6Zi5zZWcubXlGaWxsLmJlbG93KTpudWxsPT09Zi5zZWcub3RoZXJGaWxsJiYobT1nP2YucHJpbWFyeT09PWcucHJpbWFyeT9nLnNlZy5vdGhlckZpbGwuYWJvdmU6Zy5zZWcubXlGaWxsLmFib3ZlOmYucHJpbWFyeT9vOmEsZi5zZWcub3RoZXJGaWxsPXthYm92ZTptLGJlbG93Om19KSxyJiZyLnN0YXR1cyhmLnNlZywhIWQmJmQuc2VnLCEhZyYmZy5zZWcpLGYub3RoZXIuc3RhdHVzPXAuaW5zZXJ0KG4ubm9kZSh7ZXY6Zn0pKX1lbHNle3ZhciBiPWYuc3RhdHVzO2lmKG51bGw9PT1iKXRocm93IG5ldyBFcnJvcigiUG9seUJvb2w6IFplcm8tbGVuZ3RoIHNlZ21lbnQgZGV0ZWN0ZWQ7IHlvdXIgZXBzaWxvbiBpcyBwcm9iYWJseSB0b28gc21hbGwgb3IgdG9vIGxhcmdlIik7aWYocy5leGlzdHMoYi5wcmV2KSYmcy5leGlzdHMoYi5uZXh0KSYmdShiLnByZXYuZXYsYi5uZXh0LmV2KSxyJiZyLnN0YXR1c1JlbW92ZShiLmV2LnNlZyksYi5yZW1vdmUoKSwhZi5wcmltYXJ5KXt2YXIgXz1mLnNlZy5teUZpbGw7Zi5zZWcubXlGaWxsPWYuc2VnLm90aGVyRmlsbCxmLnNlZy5vdGhlckZpbGw9X31oLnB1c2goZi5zZWcpfWkuZ2V0SGVhZCgpLnJlbW92ZSgpfXJldHVybiByJiZyLmRvbmUoKSxofXJldHVybiB0P3thZGRSZWdpb246ZnVuY3Rpb24odCl7Zm9yKHZhciBuLGEsaSxvPXRbdC5sZW5ndGgtMV0sbD0wO2w8dC5sZW5ndGg7bCsrKXtuPW8sbz10W2xdO3ZhciBjPWUucG9pbnRzQ29tcGFyZShuLG8pOzAhPT1jJiZzKChhPWM8MD9uOm8saT1jPDA/bzpuLHtpZDpyP3Iuc2VnbWVudElkKCk6LTEsc3RhcnQ6YSxlbmQ6aSxteUZpbGw6e2Fib3ZlOm51bGwsYmVsb3c6bnVsbH0sb3RoZXJGaWxsOm51bGx9KSwhMCl9fSxjYWxjdWxhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCwhMSl9fTp7Y2FsY3VsYXRlOmZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24odCl7cyhhKHQuc3RhcnQsdC5lbmQsdCksITApfSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3MoYSh0LnN0YXJ0LHQuZW5kLHQpLCExKX0pLGMoZSxuKX19fX0seyIuL2xpbmtlZC1saXN0Ijo0ODB9XSw0ODA6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9e2NyZWF0ZTpmdW5jdGlvbigpe3ZhciB0PXtyb290Ontyb290OiEwLG5leHQ6bnVsbH0sZXhpc3RzOmZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT09ZSYmZSE9PXQucm9vdH0saXNFbXB0eTpmdW5jdGlvbigpe3JldHVybiBudWxsPT09dC5yb290Lm5leHR9LGdldEhlYWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdC5yb290Lm5leHR9LGluc2VydEJlZm9yZTpmdW5jdGlvbihlLHIpe2Zvcih2YXIgbj10LnJvb3QsYT10LnJvb3QubmV4dDtudWxsIT09YTspe2lmKHIoYSkpcmV0dXJuIGUucHJldj1hLnByZXYsZS5uZXh0PWEsYS5wcmV2Lm5leHQ9ZSx2b2lkKGEucHJldj1lKTtuPWEsYT1hLm5leHR9bi5uZXh0PWUsZS5wcmV2PW4sZS5uZXh0PW51bGx9LGZpbmRUcmFuc2l0aW9uOmZ1bmN0aW9uKGUpe2Zvcih2YXIgcj10LnJvb3Qsbj10LnJvb3QubmV4dDtudWxsIT09biYmIWUobik7KXI9bixuPW4ubmV4dDtyZXR1cm57YmVmb3JlOnI9PT10LnJvb3Q/bnVsbDpyLGFmdGVyOm4saW5zZXJ0OmZ1bmN0aW9uKHQpe3JldHVybiB0LnByZXY9cix0Lm5leHQ9bixyLm5leHQ9dCxudWxsIT09biYmKG4ucHJldj10KSx0fX19fTtyZXR1cm4gdH0sbm9kZTpmdW5jdGlvbih0KXtyZXR1cm4gdC5wcmV2PW51bGwsdC5uZXh0PW51bGwsdC5yZW1vdmU9ZnVuY3Rpb24oKXt0LnByZXYubmV4dD10Lm5leHQsdC5uZXh0JiYodC5uZXh0LnByZXY9dC5wcmV2KSx0LnByZXY9bnVsbCx0Lm5leHQ9bnVsbH0sdH19fSx7fV0sNDgxOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1bXSxhPVtdO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGk9dC5zdGFydCxvPXQuZW5kO2lmKGUucG9pbnRzU2FtZShpLG8pKWNvbnNvbGUud2FybigiUG9seUJvb2w6IFdhcm5pbmc6IFplcm8tbGVuZ3RoIHNlZ21lbnQgZGV0ZWN0ZWQ7IHlvdXIgZXBzaWxvbiBpcyBwcm9iYWJseSB0b28gc21hbGwgb3IgdG9vIGxhcmdlIik7ZWxzZXtyJiZyLmNoYWluU3RhcnQodCk7Zm9yKHZhciBzPXtpbmRleDowLG1hdGNoZXNfaGVhZDohMSxtYXRjaGVzX3B0MTohMX0sbD17aW5kZXg6MCxtYXRjaGVzX2hlYWQ6ITEsbWF0Y2hlc19wdDE6ITF9LGM9cyx1PTA7dTxuLmxlbmd0aDt1Kyspe3ZhciBoPSh2PW5bdV0pWzBdLGY9KHZbMV0sdlt2Lmxlbmd0aC0xXSk7aWYodlt2Lmxlbmd0aC0yXSxlLnBvaW50c1NhbWUoaCxpKSl7aWYoVCh1LCEwLCEwKSlicmVha31lbHNlIGlmKGUucG9pbnRzU2FtZShoLG8pKXtpZihUKHUsITAsITEpKWJyZWFrfWVsc2UgaWYoZS5wb2ludHNTYW1lKGYsaSkpe2lmKFQodSwhMSwhMCkpYnJlYWt9ZWxzZSBpZihlLnBvaW50c1NhbWUoZixvKSYmVCh1LCExLCExKSlicmVha31pZihjPT09cylyZXR1cm4gbi5wdXNoKFtpLG9dKSx2b2lkKHImJnIuY2hhaW5OZXcoaSxvKSk7aWYoYz09PWwpe3ImJnIuY2hhaW5NYXRjaChzLmluZGV4KTt2YXIgcD1zLmluZGV4LGQ9cy5tYXRjaGVzX3B0MT9vOmksZz1zLm1hdGNoZXNfaGVhZCx2PW5bcF0sbT1nP3ZbMF06dlt2Lmxlbmd0aC0xXSx5PWc/dlsxXTp2W3YubGVuZ3RoLTJdLHg9Zz92W3YubGVuZ3RoLTFdOnZbMF0sYj1nP3Zbdi5sZW5ndGgtMl06dlsxXTtyZXR1cm4gZS5wb2ludHNDb2xsaW5lYXIoeSxtLGQpJiYoZz8ociYmci5jaGFpblJlbW92ZUhlYWQocy5pbmRleCxkKSx2LnNoaWZ0KCkpOihyJiZyLmNoYWluUmVtb3ZlVGFpbChzLmluZGV4LGQpLHYucG9wKCkpLG09eSksZS5wb2ludHNTYW1lKHgsZCk/KG4uc3BsaWNlKHAsMSksZS5wb2ludHNDb2xsaW5lYXIoYix4LG0pJiYoZz8ociYmci5jaGFpblJlbW92ZVRhaWwocy5pbmRleCxtKSx2LnBvcCgpKToociYmci5jaGFpblJlbW92ZUhlYWQocy5pbmRleCxtKSx2LnNoaWZ0KCkpKSxyJiZyLmNoYWluQ2xvc2Uocy5pbmRleCksdm9pZCBhLnB1c2godikpOnZvaWQoZz8ociYmci5jaGFpbkFkZEhlYWQocy5pbmRleCxkKSx2LnVuc2hpZnQoZCkpOihyJiZyLmNoYWluQWRkVGFpbChzLmluZGV4LGQpLHYucHVzaChkKSkpfXZhciBfPXMuaW5kZXgsdz1sLmluZGV4O3ImJnIuY2hhaW5Db25uZWN0KF8sdyk7dmFyIGs9bltfXS5sZW5ndGg8blt3XS5sZW5ndGg7cy5tYXRjaGVzX2hlYWQ/bC5tYXRjaGVzX2hlYWQ/az8oTShfKSxBKF8sdykpOihNKHcpLEEodyxfKSk6QSh3LF8pOmwubWF0Y2hlc19oZWFkP0EoXyx3KTprPyhNKF8pLEEodyxfKSk6KE0odyksQShfLHcpKX1mdW5jdGlvbiBUKHQsZSxyKXtyZXR1cm4gYy5pbmRleD10LGMubWF0Y2hlc19oZWFkPWUsYy5tYXRjaGVzX3B0MT1yLGM9PT1zPyhjPWwsITEpOihjPW51bGwsITApfWZ1bmN0aW9uIE0odCl7ciYmci5jaGFpblJldmVyc2UodCksblt0XS5yZXZlcnNlKCl9ZnVuY3Rpb24gQSh0LGEpe3ZhciBpPW5bdF0sbz1uW2FdLHM9aVtpLmxlbmd0aC0xXSxsPWlbaS5sZW5ndGgtMl0sYz1vWzBdLHU9b1sxXTtlLnBvaW50c0NvbGxpbmVhcihsLHMsYykmJihyJiZyLmNoYWluUmVtb3ZlVGFpbCh0LHMpLGkucG9wKCkscz1sKSxlLnBvaW50c0NvbGxpbmVhcihzLGMsdSkmJihyJiZyLmNoYWluUmVtb3ZlSGVhZChhLGMpLG8uc2hpZnQoKSksciYmci5jaGFpbkpvaW4odCxhKSxuW3RdPWkuY29uY2F0KG8pLG4uc3BsaWNlKGEsMSl9fSksYX19LHt9XSw0ODI6W2Z1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHQsZSxyKXt2YXIgbj1bXTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBhPSh0Lm15RmlsbC5hYm92ZT84OjApKyh0Lm15RmlsbC5iZWxvdz80OjApKyh0Lm90aGVyRmlsbCYmdC5vdGhlckZpbGwuYWJvdmU/MjowKSsodC5vdGhlckZpbGwmJnQub3RoZXJGaWxsLmJlbG93PzE6MCk7MCE9PWVbYV0mJm4ucHVzaCh7aWQ6cj9yLnNlZ21lbnRJZCgpOi0xLHN0YXJ0OnQuc3RhcnQsZW5kOnQuZW5kLG15RmlsbDp7YWJvdmU6MT09PWVbYV0sYmVsb3c6Mj09PWVbYV19LG90aGVyRmlsbDpudWxsfSl9KSxyJiZyLnNlbGVjdGVkKG4pLG59dmFyIGE9e3VuaW9uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4odCxbMCwyLDEsMCwyLDIsMCwwLDEsMCwxLDAsMCwwLDAsMF0sZSl9LGludGVyc2VjdDpmdW5jdGlvbih0LGUpe3JldHVybiBuKHQsWzAsMCwwLDAsMCwyLDAsMiwwLDAsMSwxLDAsMiwxLDBdLGUpfSxkaWZmZXJlbmNlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4odCxbMCwwLDAsMCwyLDAsMiwwLDEsMSwwLDAsMCwxLDIsMF0sZSl9LGRpZmZlcmVuY2VSZXY6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbih0LFswLDIsMSwwLDAsMCwxLDEsMCwyLDAsMiwwLDAsMCwwXSxlKX0seG9yOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4odCxbMCwyLDEsMCwyLDAsMCwxLDEsMCwwLDIsMCwxLDIsMF0sZSl9fTtlLmV4cG9ydHM9YX0se31dLDQ4MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1uZXcgRmxvYXQ2NEFycmF5KDQpLGE9bmV3IEZsb2F0NjRBcnJheSg0KSxpPW5ldyBGbG9hdDY0QXJyYXkoNCk7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8scyl7bi5sZW5ndGg8by5sZW5ndGgmJihuPW5ldyBGbG9hdDY0QXJyYXkoby5sZW5ndGgpLGE9bmV3IEZsb2F0NjRBcnJheShvLmxlbmd0aCksaT1uZXcgRmxvYXQ2NEFycmF5KG8ubGVuZ3RoKSk7Zm9yKHZhciBsPTA7bDxvLmxlbmd0aDsrK2wpbltsXT10W2xdLW9bbF0sYVtsXT1lW2xdLXRbbF0saVtsXT1yW2xdLXRbbF07dmFyIGM9MCx1PTAsaD0wLGY9MCxwPTAsZD0wO2ZvcihsPTA7bDxvLmxlbmd0aDsrK2wpe3ZhciBnPWFbbF0sdj1pW2xdLG09bltsXTtjKz1nKmcsdSs9Zyp2LGgrPXYqdixmKz1tKmcscCs9bSp2LGQrPW0qbX12YXIgeSx4LGIsXyx3LGs9TWF0aC5hYnMoYypoLXUqdSksVD11KnAtaCpmLE09dSpmLWMqcDtpZihUK008PWspaWYoVDwwKU08MCYmZjwwPyhNPTAsLWY+PWM/KFQ9MSx5PWMrMipmK2QpOnk9ZiooVD0tZi9jKStkKTooVD0wLHA+PTA/KE09MCx5PWQpOi1wPj1oPyhNPTEseT1oKzIqcCtkKTp5PXAqKE09LXAvaCkrZCk7ZWxzZSBpZihNPDApTT0wLGY+PTA/KFQ9MCx5PWQpOi1mPj1jPyhUPTEseT1jKzIqZitkKTp5PWYqKFQ9LWYvYykrZDtlbHNle3ZhciBBPTEvazt5PShUKj1BKSooYypUK3UqKE0qPUEpKzIqZikrTSoodSpUK2gqTSsyKnApK2R9ZWxzZSBUPDA/KGI9aCtwKT4oeD11K2YpPyhfPWIteCk+PSh3PWMtMip1K2gpPyhUPTEsTT0wLHk9YysyKmYrZCk6eT0oVD1fL3cpKihjKlQrdSooTT0xLVQpKzIqZikrTSoodSpUK2gqTSsyKnApK2Q6KFQ9MCxiPD0wPyhNPTEseT1oKzIqcCtkKTpwPj0wPyhNPTAseT1kKTp5PXAqKE09LXAvaCkrZCk6TTwwPyhiPWMrZik+KHg9dStwKT8oXz1iLXgpPj0odz1jLTIqdStoKT8oTT0xLFQ9MCx5PWgrMipwK2QpOnk9KFQ9MS0oTT1fL3cpKSooYypUK3UqTSsyKmYpK00qKHUqVCtoKk0rMipwKStkOihNPTAsYjw9MD8oVD0xLHk9YysyKmYrZCk6Zj49MD8oVD0wLHk9ZCk6eT1mKihUPS1mL2MpK2QpOihfPWgrcC11LWYpPD0wPyhUPTAsTT0xLHk9aCsyKnArZCk6Xz49KHc9Yy0yKnUraCk/KFQ9MSxNPTAseT1jKzIqZitkKTp5PShUPV8vdykqKGMqVCt1KihNPTEtVCkrMipmKStNKih1KlQraCpNKzIqcCkrZDt2YXIgUz0xLVQtTTtmb3IobD0wO2w8by5sZW5ndGg7KytsKXNbbF09Uyp0W2xdK1QqZVtsXStNKnJbbF07cmV0dXJuIHk8MD8wOnl9fSx7fV0sNDg0OltmdW5jdGlvbih0LGUscil7dmFyIG4sYSxpPWUuZXhwb3J0cz17fTtmdW5jdGlvbiBvKCl7dGhyb3cgbmV3IEVycm9yKCJzZXRUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkIil9ZnVuY3Rpb24gcygpe3Rocm93IG5ldyBFcnJvcigiY2xlYXJUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkIil9ZnVuY3Rpb24gbCh0KXtpZihuPT09c2V0VGltZW91dClyZXR1cm4gc2V0VGltZW91dCh0LDApO2lmKChuPT09b3x8IW4pJiZzZXRUaW1lb3V0KXJldHVybiBuPXNldFRpbWVvdXQsc2V0VGltZW91dCh0LDApO3RyeXtyZXR1cm4gbih0LDApfWNhdGNoKGUpe3RyeXtyZXR1cm4gbi5jYWxsKG51bGwsdCwwKX1jYXRjaChlKXtyZXR1cm4gbi5jYWxsKHRoaXMsdCwwKX19fSFmdW5jdGlvbigpe3RyeXtuPSJmdW5jdGlvbiI9PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6b31jYXRjaCh0KXtuPW99dHJ5e2E9ImZ1bmN0aW9uIj09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6c31jYXRjaCh0KXthPXN9fSgpO3ZhciBjLHU9W10saD0hMSxmPS0xO2Z1bmN0aW9uIHAoKXtoJiZjJiYoaD0hMSxjLmxlbmd0aD91PWMuY29uY2F0KHUpOmY9LTEsdS5sZW5ndGgmJmQoKSl9ZnVuY3Rpb24gZCgpe2lmKCFoKXt2YXIgdD1sKHApO2g9ITA7Zm9yKHZhciBlPXUubGVuZ3RoO2U7KXtmb3IoYz11LHU9W107KytmPGU7KWMmJmNbZl0ucnVuKCk7Zj0tMSxlPXUubGVuZ3RofWM9bnVsbCxoPSExLGZ1bmN0aW9uKHQpe2lmKGE9PT1jbGVhclRpbWVvdXQpcmV0dXJuIGNsZWFyVGltZW91dCh0KTtpZigoYT09PXN8fCFhKSYmY2xlYXJUaW1lb3V0KXJldHVybiBhPWNsZWFyVGltZW91dCxjbGVhclRpbWVvdXQodCk7dHJ5e2EodCl9Y2F0Y2goZSl7dHJ5e3JldHVybiBhLmNhbGwobnVsbCx0KX1jYXRjaChlKXtyZXR1cm4gYS5jYWxsKHRoaXMsdCl9fX0odCl9fWZ1bmN0aW9uIGcodCxlKXt0aGlzLmZ1bj10LHRoaXMuYXJyYXk9ZX1mdW5jdGlvbiB2KCl7fWkubmV4dFRpY2s9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMSk7aWYoYXJndW1lbnRzLmxlbmd0aD4xKWZvcih2YXIgcj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspZVtyLTFdPWFyZ3VtZW50c1tyXTt1LnB1c2gobmV3IGcodCxlKSksMSE9PXUubGVuZ3RofHxofHxsKGQpfSxnLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24oKXt0aGlzLmZ1bi5hcHBseShudWxsLHRoaXMuYXJyYXkpfSxpLnRpdGxlPSJicm93c2VyIixpLmJyb3dzZXI9ITAsaS5lbnY9e30saS5hcmd2PVtdLGkudmVyc2lvbj0iIixpLnZlcnNpb25zPXt9LGkub249dixpLmFkZExpc3RlbmVyPXYsaS5vbmNlPXYsaS5vZmY9dixpLnJlbW92ZUxpc3RlbmVyPXYsaS5yZW1vdmVBbGxMaXN0ZW5lcnM9dixpLmVtaXQ9dixpLnByZXBlbmRMaXN0ZW5lcj12LGkucHJlcGVuZE9uY2VMaXN0ZW5lcj12LGkubGlzdGVuZXJzPWZ1bmN0aW9uKHQpe3JldHVybltdfSxpLmJpbmRpbmc9ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKCJwcm9jZXNzLmJpbmRpbmcgaXMgbm90IHN1cHBvcnRlZCIpfSxpLmN3ZD1mdW5jdGlvbigpe3JldHVybiIvIn0saS5jaGRpcj1mdW5jdGlvbih0KXt0aHJvdyBuZXcgRXJyb3IoInByb2Nlc3MuY2hkaXIgaXMgbm90IHN1cHBvcnRlZCIpfSxpLnVtYXNrPWZ1bmN0aW9uKCl7cmV0dXJuIDB9fSx7fV0sNDg1OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXQoImdsLXF1YXQvc2xlcnAiKX0seyJnbC1xdWF0L3NsZXJwIjoyOTZ9XSw0ODY6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24ocil7Zm9yKHZhciBuPXQoInBlcmZvcm1hbmNlLW5vdyIpLGE9InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3c/cjp3aW5kb3csaT1bIm1veiIsIndlYmtpdCJdLG89IkFuaW1hdGlvbkZyYW1lIixzPWFbInJlcXVlc3QiK29dLGw9YVsiY2FuY2VsIitvXXx8YVsiY2FuY2VsUmVxdWVzdCIrb10sYz0wOyFzJiZjPGkubGVuZ3RoO2MrKylzPWFbaVtjXSsiUmVxdWVzdCIrb10sbD1hW2lbY10rIkNhbmNlbCIrb118fGFbaVtjXSsiQ2FuY2VsUmVxdWVzdCIrb107aWYoIXN8fCFsKXt2YXIgdT0wLGg9MCxmPVtdO3M9ZnVuY3Rpb24odCl7aWYoMD09PWYubGVuZ3RoKXt2YXIgZT1uKCkscj1NYXRoLm1heCgwLDFlMy82MC0oZS11KSk7dT1yK2Usc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB0PWYuc2xpY2UoMCk7Zi5sZW5ndGg9MDtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKylpZighdFtlXS5jYW5jZWxsZWQpdHJ5e3RbZV0uY2FsbGJhY2sodSl9Y2F0Y2godCl7c2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IHR9LDApfX0sTWF0aC5yb3VuZChyKSl9cmV0dXJuIGYucHVzaCh7aGFuZGxlOisraCxjYWxsYmFjazp0LGNhbmNlbGxlZDohMX0pLGh9LGw9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTxmLmxlbmd0aDtlKyspZltlXS5oYW5kbGU9PT10JiYoZltlXS5jYW5jZWxsZWQ9ITApfX1lLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHMuY2FsbChhLHQpfSxlLmV4cG9ydHMuY2FuY2VsPWZ1bmN0aW9uKCl7bC5hcHBseShhLGFyZ3VtZW50cyl9LGUuZXhwb3J0cy5wb2x5ZmlsbD1mdW5jdGlvbih0KXt0fHwodD1hKSx0LnJlcXVlc3RBbmltYXRpb25GcmFtZT1zLHQuY2FuY2VsQW5pbWF0aW9uRnJhbWU9bH19KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHsicGVyZm9ybWFuY2Utbm93Ijo0NjR9XSw0ODc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiYmlnLXJhdC9hZGQiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5sZW5ndGgsYT1uZXcgQXJyYXkociksaT0wO2k8cjsrK2kpYVtpXT1uKHRbaV0sZVtpXSk7cmV0dXJuIGF9fSx7ImJpZy1yYXQvYWRkIjo3N31dLDQ4ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPW5ldyBBcnJheSh0Lmxlbmd0aCkscj0wO3I8dC5sZW5ndGg7KytyKWVbcl09bih0W3JdKTtyZXR1cm4gZX07dmFyIG49dCgiYmlnLXJhdCIpfSx7ImJpZy1yYXQiOjgwfV0sNDg5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImJpZy1yYXQiKSxhPXQoImJpZy1yYXQvbXVsIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPW4oZSksaT10Lmxlbmd0aCxvPW5ldyBBcnJheShpKSxzPTA7czxpOysrcylvW3NdPWEodFtzXSxyKTtyZXR1cm4gb319LHsiYmlnLXJhdCI6ODAsImJpZy1yYXQvbXVsIjo4OX1dLDQ5MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJiaWctcmF0L3N1YiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10Lmxlbmd0aCxhPW5ldyBBcnJheShyKSxpPTA7aTxyOysraSlhW2ldPW4odFtpXSxlW2ldKTtyZXR1cm4gYX19LHsiYmlnLXJhdC9zdWIiOjkxfV0sNDkxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImNvbXBhcmUtY2VsbCIpLGE9dCgiY29tcGFyZS1vcmllbnRlZC1jZWxsIiksaT10KCJjZWxsLW9yaWVudGF0aW9uIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3Quc29ydChhKTtmb3IodmFyIGU9dC5sZW5ndGgscj0wLG89MDtvPGU7KytvKXt2YXIgcz10W29dLGw9aShzKTtpZigwIT09bCl7aWYocj4wKXt2YXIgYz10W3ItMV07aWYoMD09PW4ocyxjKSYmaShjKSE9PWwpe3ItPTE7Y29udGludWV9fXRbcisrXT1zfX1yZXR1cm4gdC5sZW5ndGg9cix0fX0seyJjZWxsLW9yaWVudGF0aW9uIjoxMTQsImNvbXBhcmUtY2VsbCI6MTMwLCJjb21wYXJlLW9yaWVudGVkLWNlbGwiOjEzMX1dLDQ5MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJhcnJheS1ib3VuZHMiKSxhPXQoImNvbG9yLW5vcm1hbGl6ZSIpLGk9dCgidXBkYXRlLWRpZmYiKSxvPXQoInBpY2stYnktYWxpYXMiKSxzPXQoIm9iamVjdC1hc3NpZ24iKSxsPXQoImZsYXR0ZW4tdmVydGV4LWRhdGEiKSxjPXQoInRvLWZsb2F0MzIiKSx1PWMuZmxvYXQzMixoPWMuZnJhY3QzMjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXsiZnVuY3Rpb24iPT10eXBlb2YgdD8oZXx8KGU9e30pLGUucmVnbD10KTplPXQ7ZS5sZW5ndGgmJihlLnBvc2l0aW9ucz1lKTtpZighKHQ9ZS5yZWdsKS5oYXNFeHRlbnNpb24oIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSl0aHJvdyBFcnJvcigicmVnbC1lcnJvcjJkOiBgQU5HTEVfaW5zdGFuY2VkX2FycmF5c2AgZXh0ZW5zaW9uIHNob3VsZCBiZSBlbmFibGVkIik7dmFyIHIsYyxwLGQsZyx2LG09dC5fZ2wseT17Y29sb3I6ImJsYWNrIixjYXBTaXplOjUsbGluZVdpZHRoOjEsb3BhY2l0eToxLHZpZXdwb3J0Om51bGwscmFuZ2U6bnVsbCxvZmZzZXQ6MCxjb3VudDowLGJvdW5kczpudWxsLHBvc2l0aW9uczpbXSxlcnJvcnM6W119LHg9W107cmV0dXJuIGQ9dC5idWZmZXIoe3VzYWdlOiJkeW5hbWljIix0eXBlOiJ1aW50OCIsZGF0YTpuZXcgVWludDhBcnJheSgwKX0pLGM9dC5idWZmZXIoe3VzYWdlOiJkeW5hbWljIix0eXBlOiJmbG9hdCIsZGF0YTpuZXcgVWludDhBcnJheSgwKX0pLHA9dC5idWZmZXIoe3VzYWdlOiJkeW5hbWljIix0eXBlOiJmbG9hdCIsZGF0YTpuZXcgVWludDhBcnJheSgwKX0pLGc9dC5idWZmZXIoe3VzYWdlOiJkeW5hbWljIix0eXBlOiJmbG9hdCIsZGF0YTpuZXcgVWludDhBcnJheSgwKX0pLHY9dC5idWZmZXIoe3VzYWdlOiJzdGF0aWMiLHR5cGU6ImZsb2F0IixkYXRhOmZ9KSxrKGUpLHI9dCh7dmVydDoiXG5cdFx0cHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuXG5cdFx0YXR0cmlidXRlIHZlYzIgcG9zaXRpb24sIHBvc2l0aW9uRnJhY3Q7XG5cdFx0YXR0cmlidXRlIHZlYzQgZXJyb3I7XG5cdFx0YXR0cmlidXRlIHZlYzQgY29sb3I7XG5cblx0XHRhdHRyaWJ1dGUgdmVjMiBkaXJlY3Rpb24sIGxpbmVPZmZzZXQsIGNhcE9mZnNldDtcblxuXHRcdHVuaWZvcm0gdmVjNCB2aWV3cG9ydDtcblx0XHR1bmlmb3JtIGZsb2F0IGxpbmVXaWR0aCwgY2FwU2l6ZTtcblx0XHR1bmlmb3JtIHZlYzIgc2NhbGUsIHNjYWxlRnJhY3QsIHRyYW5zbGF0ZSwgdHJhbnNsYXRlRnJhY3Q7XG5cblx0XHR2YXJ5aW5nIHZlYzQgZnJhZ0NvbG9yO1xuXG5cdFx0dm9pZCBtYWluKCkge1xuXHRcdFx0ZnJhZ0NvbG9yID0gY29sb3IgLyAyNTUuO1xuXG5cdFx0XHR2ZWMyIHBpeGVsT2Zmc2V0ID0gbGluZVdpZHRoICogbGluZU9mZnNldCArIChjYXBTaXplICsgbGluZVdpZHRoKSAqIGNhcE9mZnNldDtcblxuXHRcdFx0dmVjMiBkeHkgPSAtc3RlcCguNSwgZGlyZWN0aW9uLnh5KSAqIGVycm9yLnh6ICsgc3RlcChkaXJlY3Rpb24ueHksIHZlYzIoLS41KSkgKiBlcnJvci55dztcblxuXHRcdFx0dmVjMiBwb3NpdGlvbiA9IHBvc2l0aW9uICsgZHh5O1xuXG5cdFx0XHR2ZWMyIHBvcyA9IChwb3NpdGlvbiArIHRyYW5zbGF0ZSkgKiBzY2FsZVxuXHRcdFx0XHQrIChwb3NpdGlvbkZyYWN0ICsgdHJhbnNsYXRlRnJhY3QpICogc2NhbGVcblx0XHRcdFx0KyAocG9zaXRpb24gKyB0cmFuc2xhdGUpICogc2NhbGVGcmFjdFxuXHRcdFx0XHQrIChwb3NpdGlvbkZyYWN0ICsgdHJhbnNsYXRlRnJhY3QpICogc2NhbGVGcmFjdDtcblxuXHRcdFx0cG9zICs9IHBpeGVsT2Zmc2V0IC8gdmlld3BvcnQuenc7XG5cblx0XHRcdGdsX1Bvc2l0aW9uID0gdmVjNChwb3MgKiAyLiAtIDEuLCAwLCAxKTtcblx0XHR9XG5cdFx0IixmcmFnOiJcblx0XHRwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG5cblx0XHR2YXJ5aW5nIHZlYzQgZnJhZ0NvbG9yO1xuXG5cdFx0dW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xuXG5cdFx0dm9pZCBtYWluKCkge1xuXHRcdFx0Z2xfRnJhZ0NvbG9yID0gZnJhZ0NvbG9yO1xuXHRcdFx0Z2xfRnJhZ0NvbG9yLmEgKj0gb3BhY2l0eTtcblx0XHR9XG5cdFx0Iix1bmlmb3Jtczp7cmFuZ2U6dC5wcm9wKCJyYW5nZSIpLGxpbmVXaWR0aDp0LnByb3AoImxpbmVXaWR0aCIpLGNhcFNpemU6dC5wcm9wKCJjYXBTaXplIiksb3BhY2l0eTp0LnByb3AoIm9wYWNpdHkiKSxzY2FsZTp0LnByb3AoInNjYWxlIiksdHJhbnNsYXRlOnQucHJvcCgidHJhbnNsYXRlIiksc2NhbGVGcmFjdDp0LnByb3AoInNjYWxlRnJhY3QiKSx0cmFuc2xhdGVGcmFjdDp0LnByb3AoInRyYW5zbGF0ZUZyYWN0Iiksdmlld3BvcnQ6ZnVuY3Rpb24odCxlKXtyZXR1cm5bZS52aWV3cG9ydC54LGUudmlld3BvcnQueSx0LnZpZXdwb3J0V2lkdGgsdC52aWV3cG9ydEhlaWdodF19fSxhdHRyaWJ1dGVzOntjb2xvcjp7YnVmZmVyOmQsb2Zmc2V0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIDQqZS5vZmZzZXR9LGRpdmlzb3I6MX0scG9zaXRpb246e2J1ZmZlcjpjLG9mZnNldDpmdW5jdGlvbih0LGUpe3JldHVybiA4KmUub2Zmc2V0fSxkaXZpc29yOjF9LHBvc2l0aW9uRnJhY3Q6e2J1ZmZlcjpwLG9mZnNldDpmdW5jdGlvbih0LGUpe3JldHVybiA4KmUub2Zmc2V0fSxkaXZpc29yOjF9LGVycm9yOntidWZmZXI6ZyxvZmZzZXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gMTYqZS5vZmZzZXR9LGRpdmlzb3I6MX0sZGlyZWN0aW9uOntidWZmZXI6dixzdHJpZGU6MjQsb2Zmc2V0OjB9LGxpbmVPZmZzZXQ6e2J1ZmZlcjp2LHN0cmlkZToyNCxvZmZzZXQ6OH0sY2FwT2Zmc2V0OntidWZmZXI6dixzdHJpZGU6MjQsb2Zmc2V0OjE2fX0scHJpbWl0aXZlOiJ0cmlhbmdsZXMiLGJsZW5kOntlbmFibGU6ITAsY29sb3I6WzAsMCwwLDBdLGVxdWF0aW9uOntyZ2I6ImFkZCIsYWxwaGE6ImFkZCJ9LGZ1bmM6e3NyY1JHQjoic3JjIGFscGhhIixkc3RSR0I6Im9uZSBtaW51cyBzcmMgYWxwaGEiLHNyY0FscGhhOiJvbmUgbWludXMgZHN0IGFscGhhIixkc3RBbHBoYToib25lIn19LGRlcHRoOntlbmFibGU6ITF9LHNjaXNzb3I6e2VuYWJsZTohMCxib3g6dC5wcm9wKCJ2aWV3cG9ydCIpfSx2aWV3cG9ydDp0LnByb3AoInZpZXdwb3J0Iiksc3RlbmNpbDohMSxpbnN0YW5jZXM6dC5wcm9wKCJjb3VudCIpLGNvdW50OmYubGVuZ3RofSkscyhiLHt1cGRhdGU6ayxkcmF3Ol8sZGVzdHJveTpULHJlZ2w6dCxnbDptLGNhbnZhczptLmNhbnZhcyxncm91cHM6eH0pLGI7ZnVuY3Rpb24gYih0KXt0P2sodCk6bnVsbD09PXQmJlQoKSxfKCl9ZnVuY3Rpb24gXyhlKXtpZigibnVtYmVyIj09dHlwZW9mIGUpcmV0dXJuIHcoZSk7ZSYmIUFycmF5LmlzQXJyYXkoZSkmJihlPVtlXSksdC5fcmVmcmVzaCgpLHguZm9yRWFjaChmdW5jdGlvbih0LHIpe3QmJihlJiYoZVtyXT90LmRyYXc9ITA6dC5kcmF3PSExKSx0LmRyYXc/dyhyKTp0LmRyYXc9ITApfSl9ZnVuY3Rpb24gdyh0KXsibnVtYmVyIj09dHlwZW9mIHQmJih0PXhbdF0pLG51bGwhPXQmJnQmJnQuY291bnQmJnQuY29sb3ImJnQub3BhY2l0eSYmdC5wb3NpdGlvbnMmJnQucG9zaXRpb25zLmxlbmd0aD4xJiYodC5zY2FsZVJhdGlvPVt0LnNjYWxlWzBdKnQudmlld3BvcnQud2lkdGgsdC5zY2FsZVsxXSp0LnZpZXdwb3J0LmhlaWdodF0scih0KSx0LmFmdGVyJiZ0LmFmdGVyKHQpKX1mdW5jdGlvbiBrKHQpe2lmKHQpe251bGwhPXQubGVuZ3RoPyJudW1iZXIiPT10eXBlb2YgdFswXSYmKHQ9W3twb3NpdGlvbnM6dH1dKTpBcnJheS5pc0FycmF5KHQpfHwodD1bdF0pO3ZhciBlPTAscj0wO2lmKGIuZ3JvdXBzPXg9dC5tYXAoZnVuY3Rpb24odCxjKXt2YXIgdT14W2NdO3JldHVybiB0PygiZnVuY3Rpb24iPT10eXBlb2YgdD90PXthZnRlcjp0fToibnVtYmVyIj09dHlwZW9mIHRbMF0mJih0PXtwb3NpdGlvbnM6dH0pLHQ9byh0LHtjb2xvcjoiY29sb3IgY29sb3JzIGZpbGwiLGNhcFNpemU6ImNhcFNpemUgY2FwIGNhcHNpemUgY2FwLXNpemUiLGxpbmVXaWR0aDoibGluZVdpZHRoIGxpbmUtd2lkdGggd2lkdGggbGluZSB0aGlja25lc3MiLG9wYWNpdHk6Im9wYWNpdHkgYWxwaGEiLHJhbmdlOiJyYW5nZSBkYXRhQm94Iix2aWV3cG9ydDoidmlld3BvcnQgdmlld0JveCIsZXJyb3JzOiJlcnJvcnMgZXJyb3IiLHBvc2l0aW9uczoicG9zaXRpb25zIHBvc2l0aW9uIGRhdGEgcG9pbnRzIn0pLHV8fCh4W2NdPXU9e2lkOmMsc2NhbGU6bnVsbCx0cmFuc2xhdGU6bnVsbCxzY2FsZUZyYWN0Om51bGwsdHJhbnNsYXRlRnJhY3Q6bnVsbCxkcmF3OiEwfSx0PXMoe30seSx0KSksaSh1LHQsW3tsaW5lV2lkdGg6ZnVuY3Rpb24odCl7cmV0dXJuLjUqK3R9LGNhcFNpemU6ZnVuY3Rpb24odCl7cmV0dXJuLjUqK3R9LG9wYWNpdHk6cGFyc2VGbG9hdCxlcnJvcnM6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bCh0KSxyKz10Lmxlbmd0aCx0fSxwb3NpdGlvbnM6ZnVuY3Rpb24odCxyKXtyZXR1cm4gdD1sKHQsImZsb2F0NjQiKSxyLmNvdW50PU1hdGguZmxvb3IodC5sZW5ndGgvMiksci5ib3VuZHM9bih0LDIpLHIub2Zmc2V0PWUsZSs9ci5jb3VudCx0fX0se2NvbG9yOmZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5jb3VudDtpZih0fHwodD0idHJhbnNwYXJlbnQiKSwhQXJyYXkuaXNBcnJheSh0KXx8Im51bWJlciI9PXR5cGVvZiB0WzBdKXt2YXIgbj10O3Q9QXJyYXkocik7Zm9yKHZhciBpPTA7aTxyO2krKyl0W2ldPW59aWYodC5sZW5ndGg8cil0aHJvdyBFcnJvcigiTm90IGVub3VnaCBjb2xvcnMiKTtmb3IodmFyIG89bmV3IFVpbnQ4QXJyYXkoNCpyKSxzPTA7czxyO3MrKyl7dmFyIGw9YSh0W3NdLCJ1aW50OCIpO28uc2V0KGwsNCpzKX1yZXR1cm4gb30scmFuZ2U6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWUuYm91bmRzO3JldHVybiB0fHwodD1uKSxlLnNjYWxlPVsxLyh0WzJdLXRbMF0pLDEvKHRbM10tdFsxXSldLGUudHJhbnNsYXRlPVstdFswXSwtdFsxXV0sZS5zY2FsZUZyYWN0PWgoZS5zY2FsZSksZS50cmFuc2xhdGVGcmFjdD1oKGUudHJhbnNsYXRlKSx0fSx2aWV3cG9ydDpmdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT9lPXt4OnRbMF0seTp0WzFdLHdpZHRoOnRbMl0tdFswXSxoZWlnaHQ6dFszXS10WzFdfTp0PyhlPXt4OnQueHx8dC5sZWZ0fHwwLHk6dC55fHx0LnRvcHx8MH0sdC5yaWdodD9lLndpZHRoPXQucmlnaHQtZS54OmUud2lkdGg9dC53fHx0LndpZHRofHwwLHQuYm90dG9tP2UuaGVpZ2h0PXQuYm90dG9tLWUueTplLmhlaWdodD10Lmh8fHQuaGVpZ2h0fHwwKTplPXt4OjAseTowLHdpZHRoOm0uZHJhd2luZ0J1ZmZlcldpZHRoLGhlaWdodDptLmRyYXdpbmdCdWZmZXJIZWlnaHR9LGV9fV0pLHUpOnV9KSxlfHxyKXt2YXIgZj14LnJlZHVjZShmdW5jdGlvbih0LGUscil7cmV0dXJuIHQrKGU/ZS5jb3VudDowKX0sMCksdj1uZXcgRmxvYXQ2NEFycmF5KDIqZiksXz1uZXcgVWludDhBcnJheSg0KmYpLHc9bmV3IEZsb2F0MzJBcnJheSg0KmYpO3guZm9yRWFjaChmdW5jdGlvbih0LGUpe2lmKHQpe3ZhciByPXQucG9zaXRpb25zLG49dC5jb3VudCxhPXQub2Zmc2V0LGk9dC5jb2xvcixvPXQuZXJyb3JzO24mJihfLnNldChpLDQqYSksdy5zZXQobyw0KmEpLHYuc2V0KHIsMiphKSl9fSksYyh1KHYpKSxwKGgodikpLGQoXyksZyh3KX19fWZ1bmN0aW9uIFQoKXtjLmRlc3Ryb3koKSxwLmRlc3Ryb3koKSxkLmRlc3Ryb3koKSxnLmRlc3Ryb3koKSx2LmRlc3Ryb3koKX19O3ZhciBmPVtbMSwwLDAsMSwwLDBdLFsxLDAsMCwtMSwwLDBdLFstMSwwLDAsLTEsMCwwXSxbLTEsMCwwLC0xLDAsMF0sWy0xLDAsMCwxLDAsMF0sWzEsMCwwLDEsMCwwXSxbMSwwLC0xLDAsMCwxXSxbMSwwLC0xLDAsMCwtMV0sWzEsMCwxLDAsMCwtMV0sWzEsMCwxLDAsMCwtMV0sWzEsMCwxLDAsMCwxXSxbMSwwLC0xLDAsMCwxXSxbLTEsMCwtMSwwLDAsMV0sWy0xLDAsLTEsMCwwLC0xXSxbLTEsMCwxLDAsMCwtMV0sWy0xLDAsMSwwLDAsLTFdLFstMSwwLDEsMCwwLDFdLFstMSwwLC0xLDAsMCwxXSxbMCwxLDEsMCwwLDBdLFswLDEsLTEsMCwwLDBdLFswLC0xLC0xLDAsMCwwXSxbMCwtMSwtMSwwLDAsMF0sWzAsMSwxLDAsMCwwXSxbMCwtMSwxLDAsMCwwXSxbMCwxLDAsLTEsMSwwXSxbMCwxLDAsLTEsLTEsMF0sWzAsMSwwLDEsLTEsMF0sWzAsMSwwLDEsMSwwXSxbMCwxLDAsLTEsMSwwXSxbMCwxLDAsMSwtMSwwXSxbMCwtMSwwLC0xLDEsMF0sWzAsLTEsMCwtMSwtMSwwXSxbMCwtMSwwLDEsLTEsMF0sWzAsLTEsMCwxLDEsMF0sWzAsLTEsMCwtMSwxLDBdLFswLC0xLDAsMSwtMSwwXV19LHsiYXJyYXktYm91bmRzIjo2OCwiY29sb3Itbm9ybWFsaXplIjoxMjIsImZsYXR0ZW4tdmVydGV4LWRhdGEiOjIzMCwib2JqZWN0LWFzc2lnbiI6NDU2LCJwaWNrLWJ5LWFsaWFzIjo0NjcsInRvLWZsb2F0MzIiOjUzNywidXBkYXRlLWRpZmYiOjU0OH1dLDQ5MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJjb2xvci1ub3JtYWxpemUiKSxhPXQoImFycmF5LWJvdW5kcyIpLGk9dCgib2JqZWN0LWFzc2lnbiIpLG89dCgiZ2xzbGlmeSIpLHM9dCgicGljay1ieS1hbGlhcyIpLGw9dCgiZmxhdHRlbi12ZXJ0ZXgtZGF0YSIpLGM9dCgiZWFyY3V0IiksdT10KCJhcnJheS1ub3JtYWxpemUiKSxoPXQoInRvLWZsb2F0MzIiKSxmPWguZmxvYXQzMixwPWguZnJhY3QzMixkPXQoImVzNi13ZWFrLW1hcCIpLGc9dCgicGFyc2UtcmVjdCIpO2Z1bmN0aW9uIHYodCxlKXtpZighKHRoaXMgaW5zdGFuY2VvZiB2KSlyZXR1cm4gbmV3IHYodCxlKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdD8oZXx8KGU9e30pLGUucmVnbD10KTplPXQsZS5sZW5ndGgmJihlLnBvc2l0aW9ucz1lKSwhKHQ9ZS5yZWdsKS5oYXNFeHRlbnNpb24oIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSl0aHJvdyBFcnJvcigicmVnbC1lcnJvcjJkOiBgQU5HTEVfaW5zdGFuY2VkX2FycmF5c2AgZXh0ZW5zaW9uIHNob3VsZCBiZSBlbmFibGVkIik7dGhpcy5nbD10Ll9nbCx0aGlzLnJlZ2w9dCx0aGlzLnBhc3Nlcz1bXSx0aGlzLnNoYWRlcnM9di5zaGFkZXJzLmhhcyh0KT92LnNoYWRlcnMuZ2V0KHQpOnYuc2hhZGVycy5zZXQodCx2LmNyZWF0ZVNoYWRlcnModCkpLmdldCh0KSx0aGlzLnVwZGF0ZShlKX1lLmV4cG9ydHM9dix2LmRhc2hNdWx0PTIsdi5tYXhQYXR0ZXJuTGVuZ3RoPTI1Nix2LnByZWNpc2lvblRocmVzaG9sZD0zZTYsdi5tYXhQb2ludHM9MWU0LHYubWF4TGluZXM9MjA0OCx2LnNoYWRlcnM9bmV3IGQsdi5jcmVhdGVTaGFkZXJzPWZ1bmN0aW9uKHQpe3ZhciBlLHI9dC5idWZmZXIoe3VzYWdlOiJzdGF0aWMiLHR5cGU6ImZsb2F0IixkYXRhOlswLDEsMCwwLDEsMSwxLDBdfSksbj17cHJpbWl0aXZlOiJ0cmlhbmdsZSBzdHJpcCIsaW5zdGFuY2VzOnQucHJvcCgiY291bnQiKSxjb3VudDo0LG9mZnNldDowLHVuaWZvcm1zOnttaXRlck1vZGU6ZnVuY3Rpb24odCxlKXtyZXR1cm4icm91bmQiPT09ZS5qb2luPzI6MX0sbWl0ZXJMaW1pdDp0LnByb3AoIm1pdGVyTGltaXQiKSxzY2FsZTp0LnByb3AoInNjYWxlIiksc2NhbGVGcmFjdDp0LnByb3AoInNjYWxlRnJhY3QiKSx0cmFuc2xhdGVGcmFjdDp0LnByb3AoInRyYW5zbGF0ZUZyYWN0IiksdHJhbnNsYXRlOnQucHJvcCgidHJhbnNsYXRlIiksdGhpY2tuZXNzOnQucHJvcCgidGhpY2tuZXNzIiksZGFzaFBhdHRlcm46dC5wcm9wKCJkYXNoVGV4dHVyZSIpLG9wYWNpdHk6dC5wcm9wKCJvcGFjaXR5IikscGl4ZWxSYXRpbzp0LmNvbnRleHQoInBpeGVsUmF0aW8iKSxpZDp0LnByb3AoImlkIiksZGFzaFNpemU6dC5wcm9wKCJkYXNoTGVuZ3RoIiksdmlld3BvcnQ6ZnVuY3Rpb24odCxlKXtyZXR1cm5bZS52aWV3cG9ydC54LGUudmlld3BvcnQueSx0LnZpZXdwb3J0V2lkdGgsdC52aWV3cG9ydEhlaWdodF19LGRlcHRoOnQucHJvcCgiZGVwdGgiKX0sYmxlbmQ6e2VuYWJsZTohMCxjb2xvcjpbMCwwLDAsMF0sZXF1YXRpb246e3JnYjoiYWRkIixhbHBoYToiYWRkIn0sZnVuYzp7c3JjUkdCOiJzcmMgYWxwaGEiLGRzdFJHQjoib25lIG1pbnVzIHNyYyBhbHBoYSIsc3JjQWxwaGE6Im9uZSBtaW51cyBkc3QgYWxwaGEiLGRzdEFscGhhOiJvbmUifX0sZGVwdGg6e2VuYWJsZTpmdW5jdGlvbih0LGUpe3JldHVybiFlLm92ZXJsYXl9fSxzdGVuY2lsOntlbmFibGU6ITF9LHNjaXNzb3I6e2VuYWJsZTohMCxib3g6dC5wcm9wKCJ2aWV3cG9ydCIpfSx2aWV3cG9ydDp0LnByb3AoInZpZXdwb3J0Iil9LGE9dChpKHt2ZXJ0Om8oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMiBhQ29vcmQsIGJDb29yZCwgYUNvb3JkRnJhY3QsIGJDb29yZEZyYWN0O1xuYXR0cmlidXRlIHZlYzQgY29sb3I7XG5hdHRyaWJ1dGUgZmxvYXQgbGluZUVuZCwgbGluZVRvcDtcblxudW5pZm9ybSB2ZWMyIHNjYWxlLCBzY2FsZUZyYWN0LCB0cmFuc2xhdGUsIHRyYW5zbGF0ZUZyYWN0O1xudW5pZm9ybSBmbG9hdCB0aGlja25lc3MsIHBpeGVsUmF0aW8sIGlkLCBkZXB0aDtcbnVuaWZvcm0gdmVjNCB2aWV3cG9ydDtcblxudmFyeWluZyB2ZWM0IGZyYWdDb2xvcjtcbnZhcnlpbmcgdmVjMiB0YW5nZW50O1xuXG52ZWMyIHByb2plY3QodmVjMiBwb3NpdGlvbiwgdmVjMiBwb3NpdGlvbkZyYWN0LCB2ZWMyIHNjYWxlLCB2ZWMyIHNjYWxlRnJhY3QsIHZlYzIgdHJhbnNsYXRlLCB2ZWMyIHRyYW5zbGF0ZUZyYWN0KSB7XG5cdC8vIHRoZSBvcmRlciBpcyBpbXBvcnRhbnRcblx0cmV0dXJuIHBvc2l0aW9uICogc2NhbGUgKyB0cmFuc2xhdGVcbiAgICAgICArIHBvc2l0aW9uRnJhY3QgKiBzY2FsZSArIHRyYW5zbGF0ZUZyYWN0XG4gICAgICAgKyBwb3NpdGlvbiAqIHNjYWxlRnJhY3RcbiAgICAgICArIHBvc2l0aW9uRnJhY3QgKiBzY2FsZUZyYWN0O1xufVxuXG52b2lkIG1haW4oKSB7XG5cdGZsb2F0IGxpbmVTdGFydCA9IDEuIC0gbGluZUVuZDtcblx0ZmxvYXQgbGluZU9mZnNldCA9IGxpbmVUb3AgKiAyLiAtIDEuO1xuXG5cdHZlYzIgZGlmZiA9IChiQ29vcmQgKyBiQ29vcmRGcmFjdCAtIGFDb29yZCAtIGFDb29yZEZyYWN0KTtcblx0dGFuZ2VudCA9IG5vcm1hbGl6ZShkaWZmICogc2NhbGUgKiB2aWV3cG9ydC56dyk7XG5cdHZlYzIgbm9ybWFsID0gdmVjMigtdGFuZ2VudC55LCB0YW5nZW50LngpO1xuXG5cdHZlYzIgcG9zaXRpb24gPSBwcm9qZWN0KGFDb29yZCwgYUNvb3JkRnJhY3QsIHNjYWxlLCBzY2FsZUZyYWN0LCB0cmFuc2xhdGUsIHRyYW5zbGF0ZUZyYWN0KSAqIGxpbmVTdGFydFxuXHRcdCsgcHJvamVjdChiQ29vcmQsIGJDb29yZEZyYWN0LCBzY2FsZSwgc2NhbGVGcmFjdCwgdHJhbnNsYXRlLCB0cmFuc2xhdGVGcmFjdCkgKiBsaW5lRW5kXG5cblx0XHQrIHRoaWNrbmVzcyAqIG5vcm1hbCAqIC41ICogbGluZU9mZnNldCAvIHZpZXdwb3J0Lnp3O1xuXG5cdGdsX1Bvc2l0aW9uID0gdmVjNChwb3NpdGlvbiAqIDIuMCAtIDEuMCwgZGVwdGgsIDEpO1xuXG5cdGZyYWdDb2xvciA9IGNvbG9yIC8gMjU1Ljtcbn1cbiJdKSxmcmFnOm8oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG51bmlmb3JtIHNhbXBsZXIyRCBkYXNoUGF0dGVybjtcblxudW5pZm9ybSBmbG9hdCBkYXNoU2l6ZSwgcGl4ZWxSYXRpbywgdGhpY2tuZXNzLCBvcGFjaXR5LCBpZDtcblxudmFyeWluZyB2ZWM0IGZyYWdDb2xvcjtcbnZhcnlpbmcgdmVjMiB0YW5nZW50O1xuXG52b2lkIG1haW4oKSB7XG5cdGZsb2F0IGFscGhhID0gMS47XG5cblx0ZmxvYXQgdCA9IGZyYWN0KGRvdCh0YW5nZW50LCBnbF9GcmFnQ29vcmQueHkpIC8gZGFzaFNpemUpICogLjUgKyAuMjU7XG5cdGZsb2F0IGRhc2ggPSB0ZXh0dXJlMkQoZGFzaFBhdHRlcm4sIHZlYzIodCwgLjUpKS5yO1xuXG5cdGdsX0ZyYWdDb2xvciA9IGZyYWdDb2xvcjtcblx0Z2xfRnJhZ0NvbG9yLmEgKj0gYWxwaGEgKiBvcGFjaXR5ICogZGFzaDtcbn1cbiJdKSxhdHRyaWJ1dGVzOntsaW5lRW5kOntidWZmZXI6cixkaXZpc29yOjAsc3RyaWRlOjgsb2Zmc2V0OjB9LGxpbmVUb3A6e2J1ZmZlcjpyLGRpdmlzb3I6MCxzdHJpZGU6OCxvZmZzZXQ6NH0sYUNvb3JkOntidWZmZXI6dC5wcm9wKCJwb3NpdGlvbkJ1ZmZlciIpLHN0cmlkZTo4LG9mZnNldDo4LGRpdmlzb3I6MX0sYkNvb3JkOntidWZmZXI6dC5wcm9wKCJwb3NpdGlvbkJ1ZmZlciIpLHN0cmlkZTo4LG9mZnNldDoxNixkaXZpc29yOjF9LGFDb29yZEZyYWN0OntidWZmZXI6dC5wcm9wKCJwb3NpdGlvbkZyYWN0QnVmZmVyIiksc3RyaWRlOjgsb2Zmc2V0OjgsZGl2aXNvcjoxfSxiQ29vcmRGcmFjdDp7YnVmZmVyOnQucHJvcCgicG9zaXRpb25GcmFjdEJ1ZmZlciIpLHN0cmlkZTo4LG9mZnNldDoxNixkaXZpc29yOjF9LGNvbG9yOntidWZmZXI6dC5wcm9wKCJjb2xvckJ1ZmZlciIpLHN0cmlkZTo0LG9mZnNldDowLGRpdmlzb3I6MX19fSxuKSk7dHJ5e2U9dChpKHtjdWxsOntlbmFibGU6ITAsZmFjZToiYmFjayJ9LHZlcnQ6byhbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMyIGFDb29yZCwgYkNvb3JkLCBuZXh0Q29vcmQsIHByZXZDb29yZDtcbmF0dHJpYnV0ZSB2ZWM0IGFDb2xvciwgYkNvbG9yO1xuYXR0cmlidXRlIGZsb2F0IGxpbmVFbmQsIGxpbmVUb3A7XG5cbnVuaWZvcm0gdmVjMiBzY2FsZSwgdHJhbnNsYXRlO1xudW5pZm9ybSBmbG9hdCB0aGlja25lc3MsIHBpeGVsUmF0aW8sIGlkLCBkZXB0aDtcbnVuaWZvcm0gdmVjNCB2aWV3cG9ydDtcbnVuaWZvcm0gZmxvYXQgbWl0ZXJMaW1pdCwgbWl0ZXJNb2RlO1xuXG52YXJ5aW5nIHZlYzQgZnJhZ0NvbG9yO1xudmFyeWluZyB2ZWM0IHN0YXJ0Q3V0b2ZmLCBlbmRDdXRvZmY7XG52YXJ5aW5nIHZlYzIgdGFuZ2VudDtcbnZhcnlpbmcgdmVjMiBzdGFydENvb3JkLCBlbmRDb29yZDtcbnZhcnlpbmcgZmxvYXQgZW5hYmxlU3RhcnRNaXRlciwgZW5hYmxlRW5kTWl0ZXI7XG5cbmNvbnN0IGZsb2F0IFJFVkVSU0VfVEhSRVNIT0xEID0gLS44NzU7XG5jb25zdCBmbG9hdCBNSU5fRElGRiA9IDFlLTY7XG5cbi8vIFRPRE86IHBvc3NpYmxlIG9wdGltaXphdGlvbnM6IGF2b2lkIG92ZXJjYWxjdWxhdGluZyBhbGwgZm9yIHZlcnRpY2VzIGFuZCBjYWxjIGp1c3Qgb25lIGluc3RlYWRcbi8vIFRPRE86IHByZWNhbGN1bGF0ZSBkb3QgcHJvZHVjdHMsIG5vcm1hbGl6ZSB0aGluZ3MgYmVmb3JlaGVhZCBldGMuXG4vLyBUT0RPOiByZWZhY3RvciB0byByZWN0YW5ndWxhciBhbGdvcml0aG1cblxuZmxvYXQgZGlzdFRvTGluZSh2ZWMyIHAsIHZlYzIgYSwgdmVjMiBiKSB7XG5cdHZlYzIgZGlmZiA9IGIgLSBhO1xuXHR2ZWMyIHBlcnAgPSBub3JtYWxpemUodmVjMigtZGlmZi55LCBkaWZmLngpKTtcblx0cmV0dXJuIGRvdChwIC0gYSwgcGVycCk7XG59XG5cbmJvb2wgaXNOYU4oIGZsb2F0IHZhbCApe1xuICByZXR1cm4gKCB2YWwgPCAwLjAgfHwgMC4wIDwgdmFsIHx8IHZhbCA9PSAwLjAgKSA/IGZhbHNlIDogdHJ1ZTtcbn1cblxudm9pZCBtYWluKCkge1xuXHR2ZWMyIGFDb29yZCA9IGFDb29yZCwgYkNvb3JkID0gYkNvb3JkLCBwcmV2Q29vcmQgPSBwcmV2Q29vcmQsIG5leHRDb29yZCA9IG5leHRDb29yZDtcblxuICB2ZWMyIGFkanVzdGVkU2NhbGU7XG4gIGFkanVzdGVkU2NhbGUueCA9IChhYnMoc2NhbGUueCkgPCBNSU5fRElGRikgPyBNSU5fRElGRiA6IHNjYWxlLng7XG4gIGFkanVzdGVkU2NhbGUueSA9IChhYnMoc2NhbGUueSkgPCBNSU5fRElGRikgPyBNSU5fRElGRiA6IHNjYWxlLnk7XG5cbiAgdmVjMiBzY2FsZVJhdGlvID0gYWRqdXN0ZWRTY2FsZSAqIHZpZXdwb3J0Lnp3O1xuXHR2ZWMyIG5vcm1hbFdpZHRoID0gdGhpY2tuZXNzIC8gc2NhbGVSYXRpbztcblxuXHRmbG9hdCBsaW5lU3RhcnQgPSAxLiAtIGxpbmVFbmQ7XG5cdGZsb2F0IGxpbmVCb3QgPSAxLiAtIGxpbmVUb3A7XG5cblx0ZnJhZ0NvbG9yID0gKGxpbmVTdGFydCAqIGFDb2xvciArIGxpbmVFbmQgKiBiQ29sb3IpIC8gMjU1LjtcblxuXHRpZiAoaXNOYU4oYUNvb3JkLngpIHx8IGlzTmFOKGFDb29yZC55KSB8fCBpc05hTihiQ29vcmQueCkgfHwgaXNOYU4oYkNvb3JkLnkpKSByZXR1cm47XG5cblx0aWYgKGFDb29yZCA9PSBwcmV2Q29vcmQpIHByZXZDb29yZCA9IGFDb29yZCArIG5vcm1hbGl6ZShiQ29vcmQgLSBhQ29vcmQpO1xuXHRpZiAoYkNvb3JkID09IG5leHRDb29yZCkgbmV4dENvb3JkID0gYkNvb3JkIC0gbm9ybWFsaXplKGJDb29yZCAtIGFDb29yZCk7XG5cblx0dmVjMiBwcmV2RGlmZiA9IGFDb29yZCAtIHByZXZDb29yZDtcblx0dmVjMiBjdXJyRGlmZiA9IGJDb29yZCAtIGFDb29yZDtcblx0dmVjMiBuZXh0RGlmZiA9IG5leHRDb29yZCAtIGJDb29yZDtcblxuXHR2ZWMyIHByZXZUYW5nZW50ID0gbm9ybWFsaXplKHByZXZEaWZmICogc2NhbGVSYXRpbyk7XG5cdHZlYzIgY3VyclRhbmdlbnQgPSBub3JtYWxpemUoY3VyckRpZmYgKiBzY2FsZVJhdGlvKTtcblx0dmVjMiBuZXh0VGFuZ2VudCA9IG5vcm1hbGl6ZShuZXh0RGlmZiAqIHNjYWxlUmF0aW8pO1xuXG5cdHZlYzIgcHJldk5vcm1hbCA9IHZlYzIoLXByZXZUYW5nZW50LnksIHByZXZUYW5nZW50LngpO1xuXHR2ZWMyIGN1cnJOb3JtYWwgPSB2ZWMyKC1jdXJyVGFuZ2VudC55LCBjdXJyVGFuZ2VudC54KTtcblx0dmVjMiBuZXh0Tm9ybWFsID0gdmVjMigtbmV4dFRhbmdlbnQueSwgbmV4dFRhbmdlbnQueCk7XG5cblx0dmVjMiBzdGFydEpvaW5EaXJlY3Rpb24gPSBub3JtYWxpemUocHJldlRhbmdlbnQgLSBjdXJyVGFuZ2VudCk7XG5cdHZlYzIgZW5kSm9pbkRpcmVjdGlvbiA9IG5vcm1hbGl6ZShjdXJyVGFuZ2VudCAtIG5leHRUYW5nZW50KTtcblxuXHQvLyBjb2xsYXBzZWQvdW5pZGlyZWN0aW9uYWwgc2VnbWVudCBjYXNlc1xuXHQvLyBGSVhNRTogdGhlcmUgc2hvdWxkIGJlIG1vcmUgZWxlZ2FudCBzb2x1dGlvblxuXHR2ZWMyIHByZXZUYW5EaWZmID0gYWJzKHByZXZUYW5nZW50IC0gY3VyclRhbmdlbnQpO1xuXHR2ZWMyIG5leHRUYW5EaWZmID0gYWJzKG5leHRUYW5nZW50IC0gY3VyclRhbmdlbnQpO1xuXHRpZiAobWF4KHByZXZUYW5EaWZmLngsIHByZXZUYW5EaWZmLnkpIDwgTUlOX0RJRkYpIHtcblx0XHRzdGFydEpvaW5EaXJlY3Rpb24gPSBjdXJyTm9ybWFsO1xuXHR9XG5cdGlmIChtYXgobmV4dFRhbkRpZmYueCwgbmV4dFRhbkRpZmYueSkgPCBNSU5fRElGRikge1xuXHRcdGVuZEpvaW5EaXJlY3Rpb24gPSBjdXJyTm9ybWFsO1xuXHR9XG5cdGlmIChhQ29vcmQgPT0gYkNvb3JkKSB7XG5cdFx0ZW5kSm9pbkRpcmVjdGlvbiA9IHN0YXJ0Sm9pbkRpcmVjdGlvbjtcblx0XHRjdXJyTm9ybWFsID0gcHJldk5vcm1hbDtcblx0XHRjdXJyVGFuZ2VudCA9IHByZXZUYW5nZW50O1xuXHR9XG5cblx0dGFuZ2VudCA9IGN1cnJUYW5nZW50O1xuXG5cdC8vY2FsY3VsYXRlIGpvaW4gc2hpZnRzIHJlbGF0aXZlIHRvIG5vcm1hbHNcblx0ZmxvYXQgc3RhcnRKb2luU2hpZnQgPSBkb3QoY3Vyck5vcm1hbCwgc3RhcnRKb2luRGlyZWN0aW9uKTtcblx0ZmxvYXQgZW5kSm9pblNoaWZ0ID0gZG90KGN1cnJOb3JtYWwsIGVuZEpvaW5EaXJlY3Rpb24pO1xuXG5cdGZsb2F0IHN0YXJ0TWl0ZXJSYXRpbyA9IGFicygxLiAvIHN0YXJ0Sm9pblNoaWZ0KTtcblx0ZmxvYXQgZW5kTWl0ZXJSYXRpbyA9IGFicygxLiAvIGVuZEpvaW5TaGlmdCk7XG5cblx0dmVjMiBzdGFydEpvaW4gPSBzdGFydEpvaW5EaXJlY3Rpb24gKiBzdGFydE1pdGVyUmF0aW87XG5cdHZlYzIgZW5kSm9pbiA9IGVuZEpvaW5EaXJlY3Rpb24gKiBlbmRNaXRlclJhdGlvO1xuXG5cdHZlYzIgc3RhcnRUb3BKb2luLCBzdGFydEJvdEpvaW4sIGVuZFRvcEpvaW4sIGVuZEJvdEpvaW47XG5cdHN0YXJ0VG9wSm9pbiA9IHNpZ24oc3RhcnRKb2luU2hpZnQpICogc3RhcnRKb2luICogLjU7XG5cdHN0YXJ0Qm90Sm9pbiA9IC1zdGFydFRvcEpvaW47XG5cblx0ZW5kVG9wSm9pbiA9IHNpZ24oZW5kSm9pblNoaWZ0KSAqIGVuZEpvaW4gKiAuNTtcblx0ZW5kQm90Sm9pbiA9IC1lbmRUb3BKb2luO1xuXG5cdHZlYzIgYVRvcENvb3JkID0gYUNvb3JkICsgbm9ybWFsV2lkdGggKiBzdGFydFRvcEpvaW47XG5cdHZlYzIgYlRvcENvb3JkID0gYkNvb3JkICsgbm9ybWFsV2lkdGggKiBlbmRUb3BKb2luO1xuXHR2ZWMyIGFCb3RDb29yZCA9IGFDb29yZCArIG5vcm1hbFdpZHRoICogc3RhcnRCb3RKb2luO1xuXHR2ZWMyIGJCb3RDb29yZCA9IGJDb29yZCArIG5vcm1hbFdpZHRoICogZW5kQm90Sm9pbjtcblxuXHQvL21pdGVyIGFudGktY2xpcHBpbmdcblx0ZmxvYXQgYmFDbGlwcGluZyA9IGRpc3RUb0xpbmUoYkNvb3JkLCBhQ29vcmQsIGFCb3RDb29yZCkgLyBkb3Qobm9ybWFsaXplKG5vcm1hbFdpZHRoICogZW5kQm90Sm9pbiksIG5vcm1hbGl6ZShub3JtYWxXaWR0aC55eCAqIHZlYzIoLXN0YXJ0Qm90Sm9pbi55LCBzdGFydEJvdEpvaW4ueCkpKTtcblx0ZmxvYXQgYWJDbGlwcGluZyA9IGRpc3RUb0xpbmUoYUNvb3JkLCBiQ29vcmQsIGJUb3BDb29yZCkgLyBkb3Qobm9ybWFsaXplKG5vcm1hbFdpZHRoICogc3RhcnRCb3RKb2luKSwgbm9ybWFsaXplKG5vcm1hbFdpZHRoLnl4ICogdmVjMigtZW5kQm90Sm9pbi55LCBlbmRCb3RKb2luLngpKSk7XG5cblx0Ly9wcmV2ZW50IGNsb3NlIHRvIHJldmVyc2UgZGlyZWN0aW9uIHN3aXRjaFxuXHRib29sIHByZXZSZXZlcnNlID0gZG90KGN1cnJUYW5nZW50LCBwcmV2VGFuZ2VudCkgPD0gUkVWRVJTRV9USFJFU0hPTEQgJiYgYWJzKGRvdChjdXJyVGFuZ2VudCwgcHJldk5vcm1hbCkpICogbWluKGxlbmd0aChwcmV2RGlmZiksIGxlbmd0aChjdXJyRGlmZikpIDwgIGxlbmd0aChub3JtYWxXaWR0aCAqIGN1cnJOb3JtYWwpO1xuXHRib29sIG5leHRSZXZlcnNlID0gZG90KGN1cnJUYW5nZW50LCBuZXh0VGFuZ2VudCkgPD0gUkVWRVJTRV9USFJFU0hPTEQgJiYgYWJzKGRvdChjdXJyVGFuZ2VudCwgbmV4dE5vcm1hbCkpICogbWluKGxlbmd0aChuZXh0RGlmZiksIGxlbmd0aChjdXJyRGlmZikpIDwgIGxlbmd0aChub3JtYWxXaWR0aCAqIGN1cnJOb3JtYWwpO1xuXG5cdGlmIChwcmV2UmV2ZXJzZSkge1xuXHRcdC8vbWFrZSBqb2luIHJlY3Rhbmd1bGFyXG5cdFx0dmVjMiBtaXRlclNoaWZ0ID0gbm9ybWFsV2lkdGggKiBzdGFydEpvaW5EaXJlY3Rpb24gKiBtaXRlckxpbWl0ICogLjU7XG5cdFx0ZmxvYXQgbm9ybWFsQWRqdXN0ID0gMS4gLSBtaW4obWl0ZXJMaW1pdCAvIHN0YXJ0TWl0ZXJSYXRpbywgMS4pO1xuXHRcdGFCb3RDb29yZCA9IGFDb29yZCArIG1pdGVyU2hpZnQgLSBub3JtYWxBZGp1c3QgKiBub3JtYWxXaWR0aCAqIGN1cnJOb3JtYWwgKiAuNTtcblx0XHRhVG9wQ29vcmQgPSBhQ29vcmQgKyBtaXRlclNoaWZ0ICsgbm9ybWFsQWRqdXN0ICogbm9ybWFsV2lkdGggKiBjdXJyTm9ybWFsICogLjU7XG5cdH1cblx0ZWxzZSBpZiAoIW5leHRSZXZlcnNlICYmIGJhQ2xpcHBpbmcgPiAwLiAmJiBiYUNsaXBwaW5nIDwgbGVuZ3RoKG5vcm1hbFdpZHRoICogZW5kQm90Sm9pbikpIHtcblx0XHQvL2hhbmRsZSBtaXRlciBjbGlwcGluZ1xuXHRcdGJUb3BDb29yZCAtPSBub3JtYWxXaWR0aCAqIGVuZFRvcEpvaW47XG5cdFx0YlRvcENvb3JkICs9IG5vcm1hbGl6ZShlbmRUb3BKb2luICogbm9ybWFsV2lkdGgpICogYmFDbGlwcGluZztcblx0fVxuXG5cdGlmIChuZXh0UmV2ZXJzZSkge1xuXHRcdC8vbWFrZSBqb2luIHJlY3Rhbmd1bGFyXG5cdFx0dmVjMiBtaXRlclNoaWZ0ID0gbm9ybWFsV2lkdGggKiBlbmRKb2luRGlyZWN0aW9uICogbWl0ZXJMaW1pdCAqIC41O1xuXHRcdGZsb2F0IG5vcm1hbEFkanVzdCA9IDEuIC0gbWluKG1pdGVyTGltaXQgLyBlbmRNaXRlclJhdGlvLCAxLik7XG5cdFx0YkJvdENvb3JkID0gYkNvb3JkICsgbWl0ZXJTaGlmdCAtIG5vcm1hbEFkanVzdCAqIG5vcm1hbFdpZHRoICogY3Vyck5vcm1hbCAqIC41O1xuXHRcdGJUb3BDb29yZCA9IGJDb29yZCArIG1pdGVyU2hpZnQgKyBub3JtYWxBZGp1c3QgKiBub3JtYWxXaWR0aCAqIGN1cnJOb3JtYWwgKiAuNTtcblx0fVxuXHRlbHNlIGlmICghcHJldlJldmVyc2UgJiYgYWJDbGlwcGluZyA+IDAuICYmIGFiQ2xpcHBpbmcgPCBsZW5ndGgobm9ybWFsV2lkdGggKiBzdGFydEJvdEpvaW4pKSB7XG5cdFx0Ly9oYW5kbGUgbWl0ZXIgY2xpcHBpbmdcblx0XHRhQm90Q29vcmQgLT0gbm9ybWFsV2lkdGggKiBzdGFydEJvdEpvaW47XG5cdFx0YUJvdENvb3JkICs9IG5vcm1hbGl6ZShzdGFydEJvdEpvaW4gKiBub3JtYWxXaWR0aCkgKiBhYkNsaXBwaW5nO1xuXHR9XG5cblx0dmVjMiBhVG9wUG9zaXRpb24gPSAoYVRvcENvb3JkKSAqIGFkanVzdGVkU2NhbGUgKyB0cmFuc2xhdGU7XG5cdHZlYzIgYUJvdFBvc2l0aW9uID0gKGFCb3RDb29yZCkgKiBhZGp1c3RlZFNjYWxlICsgdHJhbnNsYXRlO1xuXG5cdHZlYzIgYlRvcFBvc2l0aW9uID0gKGJUb3BDb29yZCkgKiBhZGp1c3RlZFNjYWxlICsgdHJhbnNsYXRlO1xuXHR2ZWMyIGJCb3RQb3NpdGlvbiA9IChiQm90Q29vcmQpICogYWRqdXN0ZWRTY2FsZSArIHRyYW5zbGF0ZTtcblxuXHQvL3Bvc2l0aW9uIGlzIG5vcm1hbGl6ZWQgMC4uMSBjb29yZCBvbiB0aGUgc2NyZWVuXG5cdHZlYzIgcG9zaXRpb24gPSAoYVRvcFBvc2l0aW9uICogbGluZVRvcCArIGFCb3RQb3NpdGlvbiAqIGxpbmVCb3QpICogbGluZVN0YXJ0ICsgKGJUb3BQb3NpdGlvbiAqIGxpbmVUb3AgKyBiQm90UG9zaXRpb24gKiBsaW5lQm90KSAqIGxpbmVFbmQ7XG5cblx0c3RhcnRDb29yZCA9IGFDb29yZCAqIHNjYWxlUmF0aW8gKyB0cmFuc2xhdGUgKiB2aWV3cG9ydC56dyArIHZpZXdwb3J0Lnh5O1xuXHRlbmRDb29yZCA9IGJDb29yZCAqIHNjYWxlUmF0aW8gKyB0cmFuc2xhdGUgKiB2aWV3cG9ydC56dyArIHZpZXdwb3J0Lnh5O1xuXG5cdGdsX1Bvc2l0aW9uID0gdmVjNChwb3NpdGlvbiAgKiAyLjAgLSAxLjAsIGRlcHRoLCAxKTtcblxuXHRlbmFibGVTdGFydE1pdGVyID0gc3RlcChkb3QoY3VyclRhbmdlbnQsIHByZXZUYW5nZW50KSwgLjUpO1xuXHRlbmFibGVFbmRNaXRlciA9IHN0ZXAoZG90KGN1cnJUYW5nZW50LCBuZXh0VGFuZ2VudCksIC41KTtcblxuXHQvL2JldmVsIG1pdGVyIGN1dG9mZnNcblx0aWYgKG1pdGVyTW9kZSA9PSAxLikge1xuXHRcdGlmIChlbmFibGVTdGFydE1pdGVyID09IDEuKSB7XG5cdFx0XHR2ZWMyIHN0YXJ0TWl0ZXJXaWR0aCA9IHZlYzIoc3RhcnRKb2luRGlyZWN0aW9uKSAqIHRoaWNrbmVzcyAqIG1pdGVyTGltaXQgKiAuNTtcblx0XHRcdHN0YXJ0Q3V0b2ZmID0gdmVjNChhQ29vcmQsIGFDb29yZCk7XG5cdFx0XHRzdGFydEN1dG9mZi56dyArPSB2ZWMyKC1zdGFydEpvaW5EaXJlY3Rpb24ueSwgc3RhcnRKb2luRGlyZWN0aW9uLngpIC8gc2NhbGVSYXRpbztcblx0XHRcdHN0YXJ0Q3V0b2ZmID0gc3RhcnRDdXRvZmYgKiBzY2FsZVJhdGlvLnh5eHkgKyB0cmFuc2xhdGUueHl4eSAqIHZpZXdwb3J0Lnp3enc7XG5cdFx0XHRzdGFydEN1dG9mZiArPSB2aWV3cG9ydC54eXh5O1xuXHRcdFx0c3RhcnRDdXRvZmYgKz0gc3RhcnRNaXRlcldpZHRoLnh5eHk7XG5cdFx0fVxuXG5cdFx0aWYgKGVuYWJsZUVuZE1pdGVyID09IDEuKSB7XG5cdFx0XHR2ZWMyIGVuZE1pdGVyV2lkdGggPSB2ZWMyKGVuZEpvaW5EaXJlY3Rpb24pICogdGhpY2tuZXNzICogbWl0ZXJMaW1pdCAqIC41O1xuXHRcdFx0ZW5kQ3V0b2ZmID0gdmVjNChiQ29vcmQsIGJDb29yZCk7XG5cdFx0XHRlbmRDdXRvZmYuencgKz0gdmVjMigtZW5kSm9pbkRpcmVjdGlvbi55LCBlbmRKb2luRGlyZWN0aW9uLngpICAvIHNjYWxlUmF0aW87XG5cdFx0XHRlbmRDdXRvZmYgPSBlbmRDdXRvZmYgKiBzY2FsZVJhdGlvLnh5eHkgKyB0cmFuc2xhdGUueHl4eSAqIHZpZXdwb3J0Lnp3enc7XG5cdFx0XHRlbmRDdXRvZmYgKz0gdmlld3BvcnQueHl4eTtcblx0XHRcdGVuZEN1dG9mZiArPSBlbmRNaXRlcldpZHRoLnh5eHk7XG5cdFx0fVxuXHR9XG5cblx0Ly9yb3VuZCBtaXRlciBjdXRvZmZzXG5cdGVsc2UgaWYgKG1pdGVyTW9kZSA9PSAyLikge1xuXHRcdGlmIChlbmFibGVTdGFydE1pdGVyID09IDEuKSB7XG5cdFx0XHR2ZWMyIHN0YXJ0TWl0ZXJXaWR0aCA9IHZlYzIoc3RhcnRKb2luRGlyZWN0aW9uKSAqIHRoaWNrbmVzcyAqIGFicyhkb3Qoc3RhcnRKb2luRGlyZWN0aW9uLCBjdXJyTm9ybWFsKSkgKiAuNTtcblx0XHRcdHN0YXJ0Q3V0b2ZmID0gdmVjNChhQ29vcmQsIGFDb29yZCk7XG5cdFx0XHRzdGFydEN1dG9mZi56dyArPSB2ZWMyKC1zdGFydEpvaW5EaXJlY3Rpb24ueSwgc3RhcnRKb2luRGlyZWN0aW9uLngpIC8gc2NhbGVSYXRpbztcblx0XHRcdHN0YXJ0Q3V0b2ZmID0gc3RhcnRDdXRvZmYgKiBzY2FsZVJhdGlvLnh5eHkgKyB0cmFuc2xhdGUueHl4eSAqIHZpZXdwb3J0Lnp3enc7XG5cdFx0XHRzdGFydEN1dG9mZiArPSB2aWV3cG9ydC54eXh5O1xuXHRcdFx0c3RhcnRDdXRvZmYgKz0gc3RhcnRNaXRlcldpZHRoLnh5eHk7XG5cdFx0fVxuXG5cdFx0aWYgKGVuYWJsZUVuZE1pdGVyID09IDEuKSB7XG5cdFx0XHR2ZWMyIGVuZE1pdGVyV2lkdGggPSB2ZWMyKGVuZEpvaW5EaXJlY3Rpb24pICogdGhpY2tuZXNzICogYWJzKGRvdChlbmRKb2luRGlyZWN0aW9uLCBjdXJyTm9ybWFsKSkgKiAuNTtcblx0XHRcdGVuZEN1dG9mZiA9IHZlYzQoYkNvb3JkLCBiQ29vcmQpO1xuXHRcdFx0ZW5kQ3V0b2ZmLnp3ICs9IHZlYzIoLWVuZEpvaW5EaXJlY3Rpb24ueSwgZW5kSm9pbkRpcmVjdGlvbi54KSAgLyBzY2FsZVJhdGlvO1xuXHRcdFx0ZW5kQ3V0b2ZmID0gZW5kQ3V0b2ZmICogc2NhbGVSYXRpby54eXh5ICsgdHJhbnNsYXRlLnh5eHkgKiB2aWV3cG9ydC56d3p3O1xuXHRcdFx0ZW5kQ3V0b2ZmICs9IHZpZXdwb3J0Lnh5eHk7XG5cdFx0XHRlbmRDdXRvZmYgKz0gZW5kTWl0ZXJXaWR0aC54eXh5O1xuXHRcdH1cblx0fVxufVxuIl0pLGZyYWc6byhbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbnVuaWZvcm0gc2FtcGxlcjJEIGRhc2hQYXR0ZXJuO1xudW5pZm9ybSBmbG9hdCBkYXNoU2l6ZSwgcGl4ZWxSYXRpbywgdGhpY2tuZXNzLCBvcGFjaXR5LCBpZCwgbWl0ZXJNb2RlO1xuXG52YXJ5aW5nIHZlYzQgZnJhZ0NvbG9yO1xudmFyeWluZyB2ZWMyIHRhbmdlbnQ7XG52YXJ5aW5nIHZlYzQgc3RhcnRDdXRvZmYsIGVuZEN1dG9mZjtcbnZhcnlpbmcgdmVjMiBzdGFydENvb3JkLCBlbmRDb29yZDtcbnZhcnlpbmcgZmxvYXQgZW5hYmxlU3RhcnRNaXRlciwgZW5hYmxlRW5kTWl0ZXI7XG5cbmZsb2F0IGRpc3RUb0xpbmUodmVjMiBwLCB2ZWMyIGEsIHZlYzIgYikge1xuXHR2ZWMyIGRpZmYgPSBiIC0gYTtcblx0dmVjMiBwZXJwID0gbm9ybWFsaXplKHZlYzIoLWRpZmYueSwgZGlmZi54KSk7XG5cdHJldHVybiBkb3QocCAtIGEsIHBlcnApO1xufVxuXG52b2lkIG1haW4oKSB7XG5cdGZsb2F0IGFscGhhID0gMS4sIGRpc3RUb1N0YXJ0LCBkaXN0VG9FbmQ7XG5cdGZsb2F0IGN1dG9mZiA9IHRoaWNrbmVzcyAqIC41O1xuXG5cdC8vYmV2ZWwgbWl0ZXJcblx0aWYgKG1pdGVyTW9kZSA9PSAxLikge1xuXHRcdGlmIChlbmFibGVTdGFydE1pdGVyID09IDEuKSB7XG5cdFx0XHRkaXN0VG9TdGFydCA9IGRpc3RUb0xpbmUoZ2xfRnJhZ0Nvb3JkLnh5LCBzdGFydEN1dG9mZi54eSwgc3RhcnRDdXRvZmYuencpO1xuXHRcdFx0aWYgKGRpc3RUb1N0YXJ0IDwgLTEuKSB7XG5cdFx0XHRcdGRpc2NhcmQ7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGFscGhhICo9IG1pbihtYXgoZGlzdFRvU3RhcnQgKyAxLiwgMC4pLCAxLik7XG5cdFx0fVxuXG5cdFx0aWYgKGVuYWJsZUVuZE1pdGVyID09IDEuKSB7XG5cdFx0XHRkaXN0VG9FbmQgPSBkaXN0VG9MaW5lKGdsX0ZyYWdDb29yZC54eSwgZW5kQ3V0b2ZmLnh5LCBlbmRDdXRvZmYuencpO1xuXHRcdFx0aWYgKGRpc3RUb0VuZCA8IC0xLikge1xuXHRcdFx0XHRkaXNjYXJkO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRhbHBoYSAqPSBtaW4obWF4KGRpc3RUb0VuZCArIDEuLCAwLiksIDEuKTtcblx0XHR9XG5cdH1cblxuXHQvLyByb3VuZCBtaXRlclxuXHRlbHNlIGlmIChtaXRlck1vZGUgPT0gMi4pIHtcblx0XHRpZiAoZW5hYmxlU3RhcnRNaXRlciA9PSAxLikge1xuXHRcdFx0ZGlzdFRvU3RhcnQgPSBkaXN0VG9MaW5lKGdsX0ZyYWdDb29yZC54eSwgc3RhcnRDdXRvZmYueHksIHN0YXJ0Q3V0b2ZmLnp3KTtcblx0XHRcdGlmIChkaXN0VG9TdGFydCA8IDAuKSB7XG5cdFx0XHRcdGZsb2F0IHJhZGl1cyA9IGxlbmd0aChnbF9GcmFnQ29vcmQueHkgLSBzdGFydENvb3JkKTtcblxuXHRcdFx0XHRpZihyYWRpdXMgPiBjdXRvZmYgKyAuNSkge1xuXHRcdFx0XHRcdGRpc2NhcmQ7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0YWxwaGEgLT0gc21vb3Roc3RlcChjdXRvZmYgLSAuNSwgY3V0b2ZmICsgLjUsIHJhZGl1cyk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKGVuYWJsZUVuZE1pdGVyID09IDEuKSB7XG5cdFx0XHRkaXN0VG9FbmQgPSBkaXN0VG9MaW5lKGdsX0ZyYWdDb29yZC54eSwgZW5kQ3V0b2ZmLnh5LCBlbmRDdXRvZmYuencpO1xuXHRcdFx0aWYgKGRpc3RUb0VuZCA8IDAuKSB7XG5cdFx0XHRcdGZsb2F0IHJhZGl1cyA9IGxlbmd0aChnbF9GcmFnQ29vcmQueHkgLSBlbmRDb29yZCk7XG5cblx0XHRcdFx0aWYocmFkaXVzID4gY3V0b2ZmICsgLjUpIHtcblx0XHRcdFx0XHRkaXNjYXJkO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGFscGhhIC09IHNtb290aHN0ZXAoY3V0b2ZmIC0gLjUsIGN1dG9mZiArIC41LCByYWRpdXMpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGZsb2F0IHQgPSBmcmFjdChkb3QodGFuZ2VudCwgZ2xfRnJhZ0Nvb3JkLnh5KSAvIGRhc2hTaXplKSAqIC41ICsgLjI1O1xuXHRmbG9hdCBkYXNoID0gdGV4dHVyZTJEKGRhc2hQYXR0ZXJuLCB2ZWMyKHQsIC41KSkucjtcblxuXHRnbF9GcmFnQ29sb3IgPSBmcmFnQ29sb3I7XG5cdGdsX0ZyYWdDb2xvci5hICo9IGFscGhhICogb3BhY2l0eSAqIGRhc2g7XG59XG4iXSksYXR0cmlidXRlczp7bGluZUVuZDp7YnVmZmVyOnIsZGl2aXNvcjowLHN0cmlkZTo4LG9mZnNldDowfSxsaW5lVG9wOntidWZmZXI6cixkaXZpc29yOjAsc3RyaWRlOjgsb2Zmc2V0OjR9LGFDb2xvcjp7YnVmZmVyOnQucHJvcCgiY29sb3JCdWZmZXIiKSxzdHJpZGU6NCxvZmZzZXQ6MCxkaXZpc29yOjF9LGJDb2xvcjp7YnVmZmVyOnQucHJvcCgiY29sb3JCdWZmZXIiKSxzdHJpZGU6NCxvZmZzZXQ6NCxkaXZpc29yOjF9LHByZXZDb29yZDp7YnVmZmVyOnQucHJvcCgicG9zaXRpb25CdWZmZXIiKSxzdHJpZGU6OCxvZmZzZXQ6MCxkaXZpc29yOjF9LGFDb29yZDp7YnVmZmVyOnQucHJvcCgicG9zaXRpb25CdWZmZXIiKSxzdHJpZGU6OCxvZmZzZXQ6OCxkaXZpc29yOjF9LGJDb29yZDp7YnVmZmVyOnQucHJvcCgicG9zaXRpb25CdWZmZXIiKSxzdHJpZGU6OCxvZmZzZXQ6MTYsZGl2aXNvcjoxfSxuZXh0Q29vcmQ6e2J1ZmZlcjp0LnByb3AoInBvc2l0aW9uQnVmZmVyIiksc3RyaWRlOjgsb2Zmc2V0OjI0LGRpdmlzb3I6MX19fSxuKSl9Y2F0Y2godCl7ZT1hfXJldHVybntmaWxsOnQoe3ByaW1pdGl2ZToidHJpYW5nbGUiLGVsZW1lbnRzOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUudHJpYW5nbGVzfSxvZmZzZXQ6MCx2ZXJ0Om8oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMiBwb3NpdGlvbiwgcG9zaXRpb25GcmFjdDtcblxudW5pZm9ybSB2ZWM0IGNvbG9yO1xudW5pZm9ybSB2ZWMyIHNjYWxlLCBzY2FsZUZyYWN0LCB0cmFuc2xhdGUsIHRyYW5zbGF0ZUZyYWN0O1xudW5pZm9ybSBmbG9hdCBwaXhlbFJhdGlvLCBpZDtcbnVuaWZvcm0gdmVjNCB2aWV3cG9ydDtcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcblxudmFyeWluZyB2ZWM0IGZyYWdDb2xvcjtcblxuY29uc3QgZmxvYXQgTUFYX0xJTkVTID0gMjU2Ljtcblxudm9pZCBtYWluKCkge1xuXHRmbG9hdCBkZXB0aCA9IChNQVhfTElORVMgLSA0LiAtIGlkKSAvIChNQVhfTElORVMpO1xuXG5cdHZlYzIgcG9zaXRpb24gPSBwb3NpdGlvbiAqIHNjYWxlICsgdHJhbnNsYXRlXG4gICAgICAgKyBwb3NpdGlvbkZyYWN0ICogc2NhbGUgKyB0cmFuc2xhdGVGcmFjdFxuICAgICAgICsgcG9zaXRpb24gKiBzY2FsZUZyYWN0XG4gICAgICAgKyBwb3NpdGlvbkZyYWN0ICogc2NhbGVGcmFjdDtcblxuXHRnbF9Qb3NpdGlvbiA9IHZlYzQocG9zaXRpb24gKiAyLjAgLSAxLjAsIGRlcHRoLCAxKTtcblxuXHRmcmFnQ29sb3IgPSBjb2xvciAvIDI1NS47XG5cdGZyYWdDb2xvci5hICo9IG9wYWNpdHk7XG59XG4iXSksZnJhZzpvKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudmFyeWluZyB2ZWM0IGZyYWdDb2xvcjtcblxudm9pZCBtYWluKCkge1xuXHRnbF9GcmFnQ29sb3IgPSBmcmFnQ29sb3I7XG59XG4iXSksdW5pZm9ybXM6e3NjYWxlOnQucHJvcCgic2NhbGUiKSxjb2xvcjp0LnByb3AoImZpbGwiKSxzY2FsZUZyYWN0OnQucHJvcCgic2NhbGVGcmFjdCIpLHRyYW5zbGF0ZUZyYWN0OnQucHJvcCgidHJhbnNsYXRlRnJhY3QiKSx0cmFuc2xhdGU6dC5wcm9wKCJ0cmFuc2xhdGUiKSxvcGFjaXR5OnQucHJvcCgib3BhY2l0eSIpLHBpeGVsUmF0aW86dC5jb250ZXh0KCJwaXhlbFJhdGlvIiksaWQ6dC5wcm9wKCJpZCIpLHZpZXdwb3J0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuW2Uudmlld3BvcnQueCxlLnZpZXdwb3J0LnksdC52aWV3cG9ydFdpZHRoLHQudmlld3BvcnRIZWlnaHRdfX0sYXR0cmlidXRlczp7cG9zaXRpb246e2J1ZmZlcjp0LnByb3AoInBvc2l0aW9uQnVmZmVyIiksc3RyaWRlOjgsb2Zmc2V0Ojh9LHBvc2l0aW9uRnJhY3Q6e2J1ZmZlcjp0LnByb3AoInBvc2l0aW9uRnJhY3RCdWZmZXIiKSxzdHJpZGU6OCxvZmZzZXQ6OH19LGJsZW5kOm4uYmxlbmQsZGVwdGg6e2VuYWJsZTohMX0sc2Npc3NvcjpuLnNjaXNzb3Isc3RlbmNpbDpuLnN0ZW5jaWwsdmlld3BvcnQ6bi52aWV3cG9ydH0pLHJlY3Q6YSxtaXRlcjplfX0sdi5kZWZhdWx0cz17ZGFzaGVzOm51bGwsam9pbjoibWl0ZXIiLG1pdGVyTGltaXQ6MSx0aGlja25lc3M6MTAsY2FwOiJzcXVhcmUiLGNvbG9yOiJibGFjayIsb3BhY2l0eToxLG92ZXJsYXk6ITEsdmlld3BvcnQ6bnVsbCxyYW5nZTpudWxsLGNsb3NlOiExLGZpbGw6bnVsbH0sdi5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9W10scj1hcmd1bWVudHMubGVuZ3RoO3ItLTspZVtyXT1hcmd1bWVudHNbcl07ZS5sZW5ndGgmJih0PXRoaXMpLnVwZGF0ZS5hcHBseSh0LGUpLHRoaXMuZHJhdygpfSx2LnByb3RvdHlwZS5kcmF3PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMsZT1bXSxyPWFyZ3VtZW50cy5sZW5ndGg7ci0tOyllW3JdPWFyZ3VtZW50c1tyXTtyZXR1cm4oZS5sZW5ndGg/ZTp0aGlzLnBhc3NlcykuZm9yRWFjaChmdW5jdGlvbihlLHIpe3ZhciBuO2lmKGUmJkFycmF5LmlzQXJyYXkoZSkpcmV0dXJuKG49dCkuZHJhdy5hcHBseShuLGUpOyJudW1iZXIiPT10eXBlb2YgZSYmKGU9dC5wYXNzZXNbZV0pLGUmJmUuY291bnQ+MSYmZS5vcGFjaXR5JiYodC5yZWdsLl9yZWZyZXNoKCksZS5maWxsJiZlLnRyaWFuZ2xlcyYmZS50cmlhbmdsZXMubGVuZ3RoPjImJnQuc2hhZGVycy5maWxsKGUpLGUudGhpY2tuZXNzJiYoZS5zY2FsZVswXSplLnZpZXdwb3J0LndpZHRoPnYucHJlY2lzaW9uVGhyZXNob2xkfHxlLnNjYWxlWzFdKmUudmlld3BvcnQuaGVpZ2h0PnYucHJlY2lzaW9uVGhyZXNob2xkP3Quc2hhZGVycy5yZWN0KGUpOiJyZWN0Ij09PWUuam9pbnx8IWUuam9pbiYmKGUudGhpY2tuZXNzPD0yfHxlLmNvdW50Pj12Lm1heFBvaW50cyk/dC5zaGFkZXJzLnJlY3QoZSk6dC5zaGFkZXJzLm1pdGVyKGUpKSl9KSx0aGlzfSx2LnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZih0KXtudWxsIT10Lmxlbmd0aD8ibnVtYmVyIj09dHlwZW9mIHRbMF0mJih0PVt7cG9zaXRpb25zOnR9XSk6QXJyYXkuaXNBcnJheSh0KXx8KHQ9W3RdKTt2YXIgcj10aGlzLnJlZ2wsbz10aGlzLmdsO2lmKHQuZm9yRWFjaChmdW5jdGlvbih0LGgpe3ZhciBkPWUucGFzc2VzW2hdO2lmKHZvaWQgMCE9PXQpaWYobnVsbCE9PXQpe2lmKCJudW1iZXIiPT10eXBlb2YgdFswXSYmKHQ9e3Bvc2l0aW9uczp0fSksdD1zKHQse3Bvc2l0aW9uczoicG9zaXRpb25zIHBvaW50cyBkYXRhIGNvb3JkcyIsdGhpY2tuZXNzOiJ0aGlja25lc3MgbGluZVdpZHRoIGxpbmVXaWR0aHMgbGluZS13aWR0aCBsaW5ld2lkdGggd2lkdGggc3Ryb2tlLXdpZHRoIHN0cm9rZXdpZHRoIHN0cm9rZVdpZHRoIixqb2luOiJsaW5lSm9pbiBsaW5lam9pbiBqb2luIHR5cGUgbW9kZSIsbWl0ZXJMaW1pdDoibWl0ZXJsaW1pdCBtaXRlckxpbWl0IixkYXNoZXM6ImRhc2ggZGFzaGVzIGRhc2hhcnJheSBkYXNoLWFycmF5IGRhc2hBcnJheSIsY29sb3I6ImNvbG9yIGNvbG91ciBzdHJva2UgY29sb3JzIGNvbG91cnMgc3Ryb2tlLWNvbG9yIHN0cm9rZUNvbG9yIixmaWxsOiJmaWxsIGZpbGwtY29sb3IgZmlsbENvbG9yIixvcGFjaXR5OiJhbHBoYSBvcGFjaXR5IixvdmVybGF5OiJvdmVybGF5IGNyZWFzZSBvdmVybGFwIGludGVyc2VjdCIsY2xvc2U6ImNsb3NlZCBjbG9zZSBjbG9zZWQtcGF0aCBjbG9zZVBhdGgiLHJhbmdlOiJyYW5nZSBkYXRhQm94Iix2aWV3cG9ydDoidmlld3BvcnQgdmlld0JveCIsaG9sZToiaG9sZXMgaG9sZSBob2xsb3cifSksZHx8KGUucGFzc2VzW2hdPWQ9e2lkOmgsc2NhbGU6bnVsbCxzY2FsZUZyYWN0Om51bGwsdHJhbnNsYXRlOm51bGwsdHJhbnNsYXRlRnJhY3Q6bnVsbCxjb3VudDowLGhvbGU6W10sZGVwdGg6MCxkYXNoTGVuZ3RoOjEsZGFzaFRleHR1cmU6ci50ZXh0dXJlKHtjaGFubmVsczoxLGRhdGE6bmV3IFVpbnQ4QXJyYXkoWzI1NV0pLHdpZHRoOjEsaGVpZ2h0OjEsbWFnOiJsaW5lYXIiLG1pbjoibGluZWFyIn0pLGNvbG9yQnVmZmVyOnIuYnVmZmVyKHt1c2FnZToiZHluYW1pYyIsdHlwZToidWludDgiLGRhdGE6bmV3IFVpbnQ4QXJyYXl9KSxwb3NpdGlvbkJ1ZmZlcjpyLmJ1ZmZlcih7dXNhZ2U6ImR5bmFtaWMiLHR5cGU6ImZsb2F0IixkYXRhOm5ldyBVaW50OEFycmF5fSkscG9zaXRpb25GcmFjdEJ1ZmZlcjpyLmJ1ZmZlcih7dXNhZ2U6ImR5bmFtaWMiLHR5cGU6ImZsb2F0IixkYXRhOm5ldyBVaW50OEFycmF5fSl9LHQ9aSh7fSx2LmRlZmF1bHRzLHQpKSxudWxsIT10LnRoaWNrbmVzcyYmKGQudGhpY2tuZXNzPXBhcnNlRmxvYXQodC50aGlja25lc3MpKSxudWxsIT10Lm9wYWNpdHkmJihkLm9wYWNpdHk9cGFyc2VGbG9hdCh0Lm9wYWNpdHkpKSxudWxsIT10Lm1pdGVyTGltaXQmJihkLm1pdGVyTGltaXQ9cGFyc2VGbG9hdCh0Lm1pdGVyTGltaXQpKSxudWxsIT10Lm92ZXJsYXkmJihkLm92ZXJsYXk9ISF0Lm92ZXJsYXksaDx2Lm1heExpbmVzJiYoZC5kZXB0aD0yKih2Lm1heExpbmVzLTEtaCV2Lm1heExpbmVzKS92Lm1heExpbmVzLTEpKSxudWxsIT10LmpvaW4mJihkLmpvaW49dC5qb2luKSxudWxsIT10LmhvbGUmJihkLmhvbGU9dC5ob2xlKSxudWxsIT10LmZpbGwmJihkLmZpbGw9dC5maWxsP24odC5maWxsLCJ1aW50OCIpOm51bGwpLG51bGwhPXQudmlld3BvcnQmJihkLnZpZXdwb3J0PWcodC52aWV3cG9ydCkpLGQudmlld3BvcnR8fChkLnZpZXdwb3J0PWcoW28uZHJhd2luZ0J1ZmZlcldpZHRoLG8uZHJhd2luZ0J1ZmZlckhlaWdodF0pKSxudWxsIT10LmNsb3NlJiYoZC5jbG9zZT10LmNsb3NlKSxudWxsPT09dC5wb3NpdGlvbnMmJih0LnBvc2l0aW9ucz1bXSksdC5wb3NpdGlvbnMpe3ZhciBtLHk7aWYodC5wb3NpdGlvbnMueCYmdC5wb3NpdGlvbnMueSl7dmFyIHg9dC5wb3NpdGlvbnMueCxiPXQucG9zaXRpb25zLnk7eT1kLmNvdW50PU1hdGgubWF4KHgubGVuZ3RoLGIubGVuZ3RoKSxtPW5ldyBGbG9hdDY0QXJyYXkoMip5KTtmb3IodmFyIF89MDtfPHk7XysrKW1bMipfXT14W19dLG1bMipfKzFdPWJbX119ZWxzZSBtPWwodC5wb3NpdGlvbnMsImZsb2F0NjQiKSx5PWQuY291bnQ9TWF0aC5mbG9vcihtLmxlbmd0aC8yKTt2YXIgdz1kLmJvdW5kcz1hKG0sMik7aWYoZC5maWxsKXtmb3IodmFyIGs9W10sVD17fSxNPTAsQT0wLFM9MCxFPWQuY291bnQ7QTxFO0ErKyl7dmFyIEw9bVsyKkFdLEM9bVsyKkErMV07aXNOYU4oTCl8fGlzTmFOKEMpfHxudWxsPT1MfHxudWxsPT1DPyhMPW1bMipNXSxDPW1bMipNKzFdLFRbQV09TSk6TT1BLGtbUysrXT1MLGtbUysrXT1DfWZvcih2YXIgUD1jKGssZC5ob2xlfHxbXSksTz0wLHo9UC5sZW5ndGg7Tzx6O08rKyludWxsIT1UW1BbT11dJiYoUFtPXT1UW1BbT11dKTtkLnRyaWFuZ2xlcz1QfXZhciBJPW5ldyBGbG9hdDY0QXJyYXkobSk7dShJLDIsdyk7dmFyIEQ9bmV3IEZsb2F0NjRBcnJheSgyKnkrNik7ZC5jbG9zZT9tWzBdPT09bVsyKnktMl0mJm1bMV09PT1tWzIqeS0xXT8oRFswXT1JWzIqeS00XSxEWzFdPUlbMip5LTNdKTooRFswXT1JWzIqeS0yXSxEWzFdPUlbMip5LTFdKTooRFswXT1JWzBdLERbMV09SVsxXSksRC5zZXQoSSwyKSxkLmNsb3NlP21bMF09PT1tWzIqeS0yXSYmbVsxXT09PW1bMip5LTFdPyhEWzIqeSsyXT1JWzJdLERbMip5KzNdPUlbM10sZC5jb3VudC09MSk6KERbMip5KzJdPUlbMF0sRFsyKnkrM109SVsxXSxEWzIqeSs0XT1JWzJdLERbMip5KzVdPUlbM10pOihEWzIqeSsyXT1JWzIqeS0yXSxEWzIqeSszXT1JWzIqeS0xXSxEWzIqeSs0XT1JWzIqeS0yXSxEWzIqeSs1XT1JWzIqeS0xXSksZC5wb3NpdGlvbkJ1ZmZlcihmKEQpKSxkLnBvc2l0aW9uRnJhY3RCdWZmZXIocChEKSl9aWYodC5yYW5nZT9kLnJhbmdlPXQucmFuZ2U6ZC5yYW5nZXx8KGQucmFuZ2U9ZC5ib3VuZHMpLCh0LnJhbmdlfHx0LnBvc2l0aW9ucykmJmQuY291bnQpe3ZhciBSPWQuYm91bmRzLEY9UlsyXS1SWzBdLEI9UlszXS1SWzFdLE49ZC5yYW5nZVsyXS1kLnJhbmdlWzBdLGo9ZC5yYW5nZVszXS1kLnJhbmdlWzFdO2Quc2NhbGU9W0YvTixCL2pdLGQudHJhbnNsYXRlPVstZC5yYW5nZVswXS9OK1JbMF0vTnx8MCwtZC5yYW5nZVsxXS9qK1JbMV0vanx8MF0sZC5zY2FsZUZyYWN0PXAoZC5zY2FsZSksZC50cmFuc2xhdGVGcmFjdD1wKGQudHJhbnNsYXRlKX1pZih0LmRhc2hlcyl7dmFyIFYsVT0wO2lmKCF0LmRhc2hlc3x8dC5kYXNoZXMubGVuZ3RoPDIpVT0xLFY9bmV3IFVpbnQ4QXJyYXkoWzI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdKTtlbHNle1U9MDtmb3IodmFyIHE9MDtxPHQuZGFzaGVzLmxlbmd0aDsrK3EpVSs9dC5kYXNoZXNbcV07Vj1uZXcgVWludDhBcnJheShVKnYuZGFzaE11bHQpO2Zvcih2YXIgSD0wLEc9MjU1LFk9MDtZPDI7WSsrKWZvcih2YXIgVz0wO1c8dC5kYXNoZXMubGVuZ3RoOysrVyl7Zm9yKHZhciBYPTAsWj10LmRhc2hlc1tXXSp2LmRhc2hNdWx0Ki41O1g8WjsrK1gpVltIKytdPUc7R149MjU1fX1kLmRhc2hMZW5ndGg9VSxkLmRhc2hUZXh0dXJlKHtjaGFubmVsczoxLGRhdGE6Vix3aWR0aDpWLmxlbmd0aCxoZWlnaHQ6MSxtYWc6ImxpbmVhciIsbWluOiJsaW5lYXIifSwwLDApfWlmKHQuY29sb3Ipe3ZhciBKPWQuY291bnQsSz10LmNvbG9yO0t8fChLPSJ0cmFuc3BhcmVudCIpO3ZhciBRPW5ldyBVaW50OEFycmF5KDQqSis0KTtpZihBcnJheS5pc0FycmF5KEspJiYibnVtYmVyIiE9dHlwZW9mIEtbMF0pe2Zvcih2YXIgJD0wOyQ8SjskKyspe3ZhciB0dD1uKEtbJF0sInVpbnQ4Iik7US5zZXQodHQsNCokKX1RLnNldChuKEtbMF0sInVpbnQ4IiksNCpKKX1lbHNlIGZvcih2YXIgZXQ9bihLLCJ1aW50OCIpLHJ0PTA7cnQ8SisxO3J0KyspUS5zZXQoZXQsNCpydCk7ZC5jb2xvckJ1ZmZlcih7dXNhZ2U6ImR5bmFtaWMiLHR5cGU6InVpbnQ4IixkYXRhOlF9KX19ZWxzZSBlLnBhc3Nlc1toXT1udWxsfSksdC5sZW5ndGg8dGhpcy5wYXNzZXMubGVuZ3RoKXtmb3IodmFyIGg9dC5sZW5ndGg7aDx0aGlzLnBhc3Nlcy5sZW5ndGg7aCsrKXt2YXIgZD1lLnBhc3Nlc1toXTtkJiYoZC5jb2xvckJ1ZmZlci5kZXN0cm95KCksZC5wb3NpdGlvbkJ1ZmZlci5kZXN0cm95KCksZC5kYXNoVGV4dHVyZS5kZXN0cm95KCkpfXRoaXMucGFzc2VzLmxlbmd0aD10Lmxlbmd0aH1mb3IodmFyIG09W10seT0wO3k8dGhpcy5wYXNzZXMubGVuZ3RoO3krKyludWxsIT09ZS5wYXNzZXNbeV0mJm0ucHVzaChlLnBhc3Nlc1t5XSk7cmV0dXJuIHRoaXMucGFzc2VzPW0sdGhpc319LHYucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXNzZXMuZm9yRWFjaChmdW5jdGlvbih0KXt0LmNvbG9yQnVmZmVyLmRlc3Ryb3koKSx0LnBvc2l0aW9uQnVmZmVyLmRlc3Ryb3koKSx0LmRhc2hUZXh0dXJlLmRlc3Ryb3koKX0pLHRoaXMucGFzc2VzLmxlbmd0aD0wLHRoaXN9fSx7ImFycmF5LWJvdW5kcyI6NjgsImFycmF5LW5vcm1hbGl6ZSI6NDk0LCJjb2xvci1ub3JtYWxpemUiOjEyMixlYXJjdXQ6MTczLCJlczYtd2Vhay1tYXAiOjQ5NSwiZmxhdHRlbi12ZXJ0ZXgtZGF0YSI6MjMwLGdsc2xpZnk6NDExLCJvYmplY3QtYXNzaWduIjo0NTYsInBhcnNlLXJlY3QiOjQ2MSwicGljay1ieS1hbGlhcyI6NDY3LCJ0by1mbG9hdDMyIjo1Mzd9XSw0OTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiYXJyYXktYm91bmRzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtpZighdHx8bnVsbD09dC5sZW5ndGgpdGhyb3cgRXJyb3IoIkFyZ3VtZW50IHNob3VsZCBiZSBhbiBhcnJheSIpO251bGw9PWUmJihlPTEpO251bGw9PXImJihyPW4odCxlKSk7Zm9yKHZhciBhPTA7YTxlO2ErKyl7dmFyIGk9cltlK2FdLG89clthXSxzPWEsbD10Lmxlbmd0aDtpZihpPT09MS8wJiZvPT09LTEvMClmb3Iocz1hO3M8bDtzKz1lKXRbc109dFtzXT09PWk/MTp0W3NdPT09bz8wOi41O2Vsc2UgaWYoaT09PTEvMClmb3Iocz1hO3M8bDtzKz1lKXRbc109dFtzXT09PWk/MTowO2Vsc2UgaWYobz09PS0xLzApZm9yKHM9YTtzPGw7cys9ZSl0W3NdPXRbc109PT1vPzA6MTtlbHNle3ZhciBjPWktbztmb3Iocz1hO3M8bDtzKz1lKWlzTmFOKHRbc10pfHwodFtzXT0wPT09Yz8uNToodFtzXS1vKS9jKX19cmV0dXJuIHR9fSx7ImFycmF5LWJvdW5kcyI6Njh9XSw0OTU6W2Z1bmN0aW9uKHQsZSxyKXthcmd1bWVudHNbNF1bMzIwXVswXS5hcHBseShyLGFyZ3VtZW50cyl9LHsiLi9pcy1pbXBsZW1lbnRlZCI6NDk2LCIuL3BvbHlmaWxsIjo0OTgsZHVwOjMyMH1dLDQ5NjpbZnVuY3Rpb24odCxlLHIpe2FyZ3VtZW50c1s0XVszMjFdWzBdLmFwcGx5KHIsYXJndW1lbnRzKX0se2R1cDozMjF9XSw0OTc6W2Z1bmN0aW9uKHQsZSxyKXthcmd1bWVudHNbNF1bMzIyXVswXS5hcHBseShyLGFyZ3VtZW50cyl9LHtkdXA6MzIyfV0sNDk4OltmdW5jdGlvbih0LGUscil7YXJndW1lbnRzWzRdWzMyM11bMF0uYXBwbHkocixhcmd1bWVudHMpfSx7Ii4vaXMtbmF0aXZlLWltcGxlbWVudGVkIjo0OTcsZDoxNTMsZHVwOjMyMywiZXM1LWV4dC9vYmplY3QvaXMtdmFsdWUiOjE5NywiZXM1LWV4dC9vYmplY3Qvc2V0LXByb3RvdHlwZS1vZiI6MjAzLCJlczUtZXh0L29iamVjdC92YWxpZC1vYmplY3QiOjIwNywiZXM1LWV4dC9vYmplY3QvdmFsaWQtdmFsdWUiOjIwOCwiZXM1LWV4dC9zdHJpbmcvcmFuZG9tLXVuaXEiOjIxMywiZXM2LWl0ZXJhdG9yL2Zvci1vZiI6MjE1LCJlczYtaXRlcmF0b3IvZ2V0IjoyMTYsImVzNi1zeW1ib2wiOjIyMn1dLDQ5OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHR9KHQpfHxmdW5jdGlvbih0LGUpe3ZhciByPVtdLG49ITAsYT0hMSxpPXZvaWQgMDt0cnl7Zm9yKHZhciBvLHM9dFtTeW1ib2wuaXRlcmF0b3JdKCk7IShuPShvPXMubmV4dCgpKS5kb25lKSYmKHIucHVzaChvLnZhbHVlKSwhZXx8ci5sZW5ndGghPT1lKTtuPSEwKTt9Y2F0Y2godCl7YT0hMCxpPXR9ZmluYWxseXt0cnl7bnx8bnVsbD09cy5yZXR1cm58fHMucmV0dXJuKCl9ZmluYWxseXtpZihhKXRocm93IGl9fXJldHVybiByfSh0LGUpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UiKX0oKX1mdW5jdGlvbiBhKHQpe3JldHVybiBmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXtmb3IodmFyIGU9MCxyPW5ldyBBcnJheSh0Lmxlbmd0aCk7ZTx0Lmxlbmd0aDtlKyspcltlXT10W2VdO3JldHVybiByfX0odCl8fGZ1bmN0aW9uKHQpe2lmKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QodCl8fCJbb2JqZWN0IEFyZ3VtZW50c10iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpKXJldHVybiBBcnJheS5mcm9tKHQpfSh0KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpfSgpfXZhciBpPXQoImNvbG9yLW5vcm1hbGl6ZSIpLG89dCgiYXJyYXktYm91bmRzIikscz10KCJjb2xvci1pZCIpLGw9dCgicG9pbnQtY2x1c3RlciIpLGM9dCgib2JqZWN0LWFzc2lnbiIpLHU9dCgiZ2xzbGlmeSIpLGg9dCgicGljay1ieS1hbGlhcyIpLGY9dCgidXBkYXRlLWRpZmYiKSxwPXQoImZsYXR0ZW4tdmVydGV4LWRhdGEiKSxkPXQoImlzLWlleHBsb3JlciIpLGc9dCgidG8tZmxvYXQzMiIpLHY9dCgicGFyc2UtcmVjdCIpLG09eTtmdW5jdGlvbiB5KHQsZSl7dmFyIHI9dGhpcztpZighKHRoaXMgaW5zdGFuY2VvZiB5KSlyZXR1cm4gbmV3IHkodCxlKTsiZnVuY3Rpb24iPT10eXBlb2YgdD8oZXx8KGU9e30pLGUucmVnbD10KTooZT10LHQ9bnVsbCksZSYmZS5sZW5ndGgmJihlLnBvc2l0aW9ucz1lKTt2YXIgbixhPSh0PWUucmVnbCkuX2dsLGk9W107dGhpcy50b29NYW55Q29sb3JzPWQsbj10LnRleHR1cmUoe2RhdGE6bmV3IFVpbnQ4QXJyYXkoMTAyMCksd2lkdGg6MjU1LGhlaWdodDoxLHR5cGU6InVpbnQ4Iixmb3JtYXQ6InJnYmEiLHdyYXBTOiJjbGFtcCIsd3JhcFQ6ImNsYW1wIixtYWc6Im5lYXJlc3QiLG1pbjoibmVhcmVzdCJ9KSxjKHRoaXMse3JlZ2w6dCxnbDphLGdyb3VwczpbXSxtYXJrZXJDYWNoZTpbbnVsbF0sbWFya2VyVGV4dHVyZXM6W251bGxdLHBhbGV0dGU6aSxwYWxldHRlSWRzOnt9LHBhbGV0dGVUZXh0dXJlOm4sbWF4Q29sb3JzOjI1NSxtYXhTaXplOjEwMCxjYW52YXM6YS5jYW52YXN9KSx0aGlzLnVwZGF0ZShlKTt2YXIgbz17dW5pZm9ybXM6e3BpeGVsUmF0aW86dC5jb250ZXh0KCJwaXhlbFJhdGlvIikscGFsZXR0ZTpuLHBhbGV0dGVTaXplOmZ1bmN0aW9uKHQsZSl7cmV0dXJuW3IudG9vTWFueUNvbG9ycz8wOjI1NSxuLmhlaWdodF19LHNjYWxlOnQucHJvcCgic2NhbGUiKSxzY2FsZUZyYWN0OnQucHJvcCgic2NhbGVGcmFjdCIpLHRyYW5zbGF0ZTp0LnByb3AoInRyYW5zbGF0ZSIpLHRyYW5zbGF0ZUZyYWN0OnQucHJvcCgidHJhbnNsYXRlRnJhY3QiKSxvcGFjaXR5OnQucHJvcCgib3BhY2l0eSIpLG1hcmtlcjp0LnByb3AoIm1hcmtlclRleHR1cmUiKX0sYXR0cmlidXRlczp7eDpmdW5jdGlvbih0LGUpe3JldHVybiBlLnhBdHRyfHx7YnVmZmVyOmUucG9zaXRpb25CdWZmZXIsc3RyaWRlOjgsb2Zmc2V0OjB9fSx5OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUueUF0dHJ8fHtidWZmZXI6ZS5wb3NpdGlvbkJ1ZmZlcixzdHJpZGU6OCxvZmZzZXQ6NH19LHhGcmFjdDpmdW5jdGlvbih0LGUpe3JldHVybiBlLnhBdHRyP3tjb25zdGFudDpbMCwwXX06e2J1ZmZlcjplLnBvc2l0aW9uRnJhY3RCdWZmZXIsc3RyaWRlOjgsb2Zmc2V0OjB9fSx5RnJhY3Q6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS55QXR0cj97Y29uc3RhbnQ6WzAsMF19OntidWZmZXI6ZS5wb3NpdGlvbkZyYWN0QnVmZmVyLHN0cmlkZTo4LG9mZnNldDo0fX0sc2l6ZTpmdW5jdGlvbih0LGUpe3JldHVybiBlLnNpemUubGVuZ3RoP3tidWZmZXI6ZS5zaXplQnVmZmVyLHN0cmlkZToyLG9mZnNldDowfTp7Y29uc3RhbnQ6W01hdGgucm91bmQoMjU1KmUuc2l6ZS9yLm1heFNpemUpXX19LGJvcmRlclNpemU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5ib3JkZXJTaXplLmxlbmd0aD97YnVmZmVyOmUuc2l6ZUJ1ZmZlcixzdHJpZGU6MixvZmZzZXQ6MX06e2NvbnN0YW50OltNYXRoLnJvdW5kKDI1NSplLmJvcmRlclNpemUvci5tYXhTaXplKV19fSxjb2xvcklkOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuY29sb3IubGVuZ3RoP3tidWZmZXI6ZS5jb2xvckJ1ZmZlcixzdHJpZGU6ci50b29NYW55Q29sb3JzPzg6NCxvZmZzZXQ6MH06e2NvbnN0YW50OnIudG9vTWFueUNvbG9ycz9pLnNsaWNlKDQqZS5jb2xvciw0KmUuY29sb3IrNCk6W2UuY29sb3JdfX0sYm9yZGVyQ29sb3JJZDpmdW5jdGlvbih0LGUpe3JldHVybiBlLmJvcmRlckNvbG9yLmxlbmd0aD97YnVmZmVyOmUuY29sb3JCdWZmZXIsc3RyaWRlOnIudG9vTWFueUNvbG9ycz84OjQsb2Zmc2V0OnIudG9vTWFueUNvbG9ycz80OjJ9Ontjb25zdGFudDpyLnRvb01hbnlDb2xvcnM/aS5zbGljZSg0KmUuYm9yZGVyQ29sb3IsNCplLmJvcmRlckNvbG9yKzQpOltlLmJvcmRlckNvbG9yXX19LGlzQWN0aXZlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuITA9PT1lLmFjdGl2YXRpb24/e2NvbnN0YW50OlsxXX06ZS5hY3RpdmF0aW9uP2UuYWN0aXZhdGlvbjp7Y29uc3RhbnQ6WzBdfX19LGJsZW5kOntlbmFibGU6ITAsY29sb3I6WzAsMCwwLDFdLGZ1bmM6e3NyY1JHQjoic3JjIGFscGhhIixkc3RSR0I6Im9uZSBtaW51cyBzcmMgYWxwaGEiLHNyY0FscGhhOiJvbmUgbWludXMgZHN0IGFscGhhIixkc3RBbHBoYToib25lIn19LHNjaXNzb3I6e2VuYWJsZTohMCxib3g6dC5wcm9wKCJ2aWV3cG9ydCIpfSx2aWV3cG9ydDp0LnByb3AoInZpZXdwb3J0Iiksc3RlbmNpbDp7ZW5hYmxlOiExfSxkZXB0aDp7ZW5hYmxlOiExfSxlbGVtZW50czp0LnByb3AoImVsZW1lbnRzIiksY291bnQ6dC5wcm9wKCJjb3VudCIpLG9mZnNldDp0LnByb3AoIm9mZnNldCIpLHByaW1pdGl2ZToicG9pbnRzIn0scz1jKHt9LG8pO3MuZnJhZz11KFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudmFyeWluZyB2ZWM0IGZyYWdDb2xvciwgZnJhZ0JvcmRlckNvbG9yO1xudmFyeWluZyBmbG9hdCBmcmFnV2lkdGgsIGZyYWdCb3JkZXJDb2xvckxldmVsLCBmcmFnQ29sb3JMZXZlbDtcblxudW5pZm9ybSBzYW1wbGVyMkQgbWFya2VyO1xudW5pZm9ybSBmbG9hdCBwaXhlbFJhdGlvLCBvcGFjaXR5O1xuXG5mbG9hdCBzbW9vdGhTdGVwKGZsb2F0IHgsIGZsb2F0IHkpIHtcbiAgcmV0dXJuIDEuMCAvICgxLjAgKyBleHAoNTAuMCooeCAtIHkpKSk7XG59XG5cbnZvaWQgbWFpbigpIHtcbiAgZmxvYXQgZGlzdCA9IHRleHR1cmUyRChtYXJrZXIsIGdsX1BvaW50Q29vcmQpLnIsIGRlbHRhID0gZnJhZ1dpZHRoO1xuXG4gIC8vIG1heC1kaXN0YW5jZSBhbHBoYVxuICBpZiAoZGlzdCA8IDAuMDAzKSBkaXNjYXJkO1xuXG4gIC8vIG51bGwtYm9yZGVyIGNhc2VcbiAgaWYgKGZyYWdCb3JkZXJDb2xvckxldmVsID09IGZyYWdDb2xvckxldmVsIHx8IGZyYWdCb3JkZXJDb2xvci5hID09IDAuKSB7XG4gICAgZmxvYXQgY29sb3JBbXQgPSBzbW9vdGhzdGVwKC41IC0gZGVsdGEsIC41ICsgZGVsdGEsIGRpc3QpO1xuICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoZnJhZ0NvbG9yLnJnYiwgY29sb3JBbXQgKiBmcmFnQ29sb3IuYSAqIG9wYWNpdHkpO1xuICB9XG4gIGVsc2Uge1xuICAgIGZsb2F0IGJvcmRlckNvbG9yQW10ID0gc21vb3Roc3RlcChmcmFnQm9yZGVyQ29sb3JMZXZlbCAtIGRlbHRhLCBmcmFnQm9yZGVyQ29sb3JMZXZlbCArIGRlbHRhLCBkaXN0KTtcbiAgICBmbG9hdCBjb2xvckFtdCA9IHNtb290aHN0ZXAoZnJhZ0NvbG9yTGV2ZWwgLSBkZWx0YSwgZnJhZ0NvbG9yTGV2ZWwgKyBkZWx0YSwgZGlzdCk7XG5cbiAgICB2ZWM0IGNvbG9yID0gZnJhZ0JvcmRlckNvbG9yO1xuICAgIGNvbG9yLmEgKj0gYm9yZGVyQ29sb3JBbXQ7XG4gICAgY29sb3IgPSBtaXgoY29sb3IsIGZyYWdDb2xvciwgY29sb3JBbXQpO1xuICAgIGNvbG9yLmEgKj0gb3BhY2l0eTtcblxuICAgIGdsX0ZyYWdDb2xvciA9IGNvbG9yO1xuICB9XG5cbn1cbiJdKSxzLnZlcnQ9dShbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSBmbG9hdCB4LCB5LCB4RnJhY3QsIHlGcmFjdDtcbmF0dHJpYnV0ZSBmbG9hdCBzaXplLCBib3JkZXJTaXplO1xuYXR0cmlidXRlIHZlYzQgY29sb3JJZCwgYm9yZGVyQ29sb3JJZDtcbmF0dHJpYnV0ZSBmbG9hdCBpc0FjdGl2ZTtcblxudW5pZm9ybSB2ZWMyIHNjYWxlLCBzY2FsZUZyYWN0LCB0cmFuc2xhdGUsIHRyYW5zbGF0ZUZyYWN0LCBwYWxldHRlU2l6ZTtcbnVuaWZvcm0gZmxvYXQgcGl4ZWxSYXRpbztcbnVuaWZvcm0gc2FtcGxlcjJEIHBhbGV0dGU7XG5cbmNvbnN0IGZsb2F0IG1heFNpemUgPSAxMDAuO1xuY29uc3QgZmxvYXQgYm9yZGVyTGV2ZWwgPSAuNTtcblxudmFyeWluZyB2ZWM0IGZyYWdDb2xvciwgZnJhZ0JvcmRlckNvbG9yO1xudmFyeWluZyBmbG9hdCBmcmFnUG9pbnRTaXplLCBmcmFnQm9yZGVyUmFkaXVzLCBmcmFnV2lkdGgsIGZyYWdCb3JkZXJDb2xvckxldmVsLCBmcmFnQ29sb3JMZXZlbDtcblxuYm9vbCBpc0RpcmVjdCA9IChwYWxldHRlU2l6ZS54IDwgMS4pO1xuXG52ZWM0IGdldENvbG9yKHZlYzQgaWQpIHtcbiAgcmV0dXJuIGlzRGlyZWN0ID8gaWQgLyAyNTUuIDogdGV4dHVyZTJEKHBhbGV0dGUsXG4gICAgdmVjMihcbiAgICAgIChpZC54ICsgLjUpIC8gcGFsZXR0ZVNpemUueCxcbiAgICAgIChpZC55ICsgLjUpIC8gcGFsZXR0ZVNpemUueVxuICAgIClcbiAgKTtcbn1cblxudm9pZCBtYWluKCkge1xuICBpZiAoaXNBY3RpdmUgPT0gMC4pIHJldHVybjtcblxuICB2ZWMyIHBvc2l0aW9uID0gdmVjMih4LCB5KTtcbiAgdmVjMiBwb3NpdGlvbkZyYWN0ID0gdmVjMih4RnJhY3QsIHlGcmFjdCk7XG5cbiAgdmVjNCBjb2xvciA9IGdldENvbG9yKGNvbG9ySWQpO1xuICB2ZWM0IGJvcmRlckNvbG9yID0gZ2V0Q29sb3IoYm9yZGVyQ29sb3JJZCk7XG5cbiAgZmxvYXQgc2l6ZSA9IHNpemUgKiBtYXhTaXplIC8gMjU1LjtcbiAgZmxvYXQgYm9yZGVyU2l6ZSA9IGJvcmRlclNpemUgKiBtYXhTaXplIC8gMjU1LjtcblxuICBnbF9Qb2ludFNpemUgPSAyLiAqIHNpemUgKiBwaXhlbFJhdGlvO1xuICBmcmFnUG9pbnRTaXplID0gc2l6ZSAqIHBpeGVsUmF0aW87XG5cbiAgdmVjMiBwb3MgPSAocG9zaXRpb24gKyB0cmFuc2xhdGUpICogc2NhbGVcbiAgICAgICsgKHBvc2l0aW9uRnJhY3QgKyB0cmFuc2xhdGVGcmFjdCkgKiBzY2FsZVxuICAgICAgKyAocG9zaXRpb24gKyB0cmFuc2xhdGUpICogc2NhbGVGcmFjdFxuICAgICAgKyAocG9zaXRpb25GcmFjdCArIHRyYW5zbGF0ZUZyYWN0KSAqIHNjYWxlRnJhY3Q7XG5cbiAgZ2xfUG9zaXRpb24gPSB2ZWM0KHBvcyAqIDIuIC0gMS4sIDAsIDEpO1xuXG4gIGZyYWdDb2xvciA9IGNvbG9yO1xuICBmcmFnQm9yZGVyQ29sb3IgPSBib3JkZXJDb2xvcjtcbiAgZnJhZ1dpZHRoID0gMS4gLyBnbF9Qb2ludFNpemU7XG5cbiAgZnJhZ0JvcmRlckNvbG9yTGV2ZWwgPSBjbGFtcChib3JkZXJMZXZlbCAtIGJvcmRlckxldmVsICogYm9yZGVyU2l6ZSAvIHNpemUsIDAuLCAxLik7XG4gIGZyYWdDb2xvckxldmVsID0gY2xhbXAoYm9yZGVyTGV2ZWwgKyAoMS4gLSBib3JkZXJMZXZlbCkgKiBib3JkZXJTaXplIC8gc2l6ZSwgMC4sIDEuKTtcbn0iXSksdGhpcy5kcmF3TWFya2VyPXQocyk7dmFyIGw9Yyh7fSxvKTtsLmZyYWc9dShbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbnZhcnlpbmcgdmVjNCBmcmFnQ29sb3IsIGZyYWdCb3JkZXJDb2xvcjtcblxudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xudmFyeWluZyBmbG9hdCBmcmFnQm9yZGVyUmFkaXVzLCBmcmFnV2lkdGg7XG5cbmZsb2F0IHNtb290aFN0ZXAoZmxvYXQgZWRnZTAsIGZsb2F0IGVkZ2UxLCBmbG9hdCB4KSB7XG5cdGZsb2F0IHQ7XG5cdHQgPSBjbGFtcCgoeCAtIGVkZ2UwKSAvIChlZGdlMSAtIGVkZ2UwKSwgMC4wLCAxLjApO1xuXHRyZXR1cm4gdCAqIHQgKiAoMy4wIC0gMi4wICogdCk7XG59XG5cbnZvaWQgbWFpbigpIHtcblx0ZmxvYXQgcmFkaXVzLCBhbHBoYSA9IDEuMCwgZGVsdGEgPSBmcmFnV2lkdGg7XG5cblx0cmFkaXVzID0gbGVuZ3RoKDIuMCAqIGdsX1BvaW50Q29vcmQueHkgLSAxLjApO1xuXG5cdGlmIChyYWRpdXMgPiAxLjAgKyBkZWx0YSkge1xuXHRcdGRpc2NhcmQ7XG5cdH1cblxuXHRhbHBoYSAtPSBzbW9vdGhzdGVwKDEuMCAtIGRlbHRhLCAxLjAgKyBkZWx0YSwgcmFkaXVzKTtcblxuXHRmbG9hdCBib3JkZXJSYWRpdXMgPSBmcmFnQm9yZGVyUmFkaXVzO1xuXHRmbG9hdCByYXRpbyA9IHNtb290aHN0ZXAoYm9yZGVyUmFkaXVzIC0gZGVsdGEsIGJvcmRlclJhZGl1cyArIGRlbHRhLCByYWRpdXMpO1xuXHR2ZWM0IGNvbG9yID0gbWl4KGZyYWdDb2xvciwgZnJhZ0JvcmRlckNvbG9yLCByYXRpbyk7XG5cdGNvbG9yLmEgKj0gYWxwaGEgKiBvcGFjaXR5O1xuXHRnbF9GcmFnQ29sb3IgPSBjb2xvcjtcbn1cbiJdKSxsLnZlcnQ9dShbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSBmbG9hdCB4LCB5LCB4RnJhY3QsIHlGcmFjdDtcbmF0dHJpYnV0ZSBmbG9hdCBzaXplLCBib3JkZXJTaXplO1xuYXR0cmlidXRlIHZlYzQgY29sb3JJZCwgYm9yZGVyQ29sb3JJZDtcbmF0dHJpYnV0ZSBmbG9hdCBpc0FjdGl2ZTtcblxudW5pZm9ybSB2ZWMyIHNjYWxlLCBzY2FsZUZyYWN0LCB0cmFuc2xhdGUsIHRyYW5zbGF0ZUZyYWN0O1xudW5pZm9ybSBmbG9hdCBwaXhlbFJhdGlvO1xudW5pZm9ybSBzYW1wbGVyMkQgcGFsZXR0ZTtcbnVuaWZvcm0gdmVjMiBwYWxldHRlU2l6ZTtcblxuY29uc3QgZmxvYXQgbWF4U2l6ZSA9IDEwMC47XG5cbnZhcnlpbmcgdmVjNCBmcmFnQ29sb3IsIGZyYWdCb3JkZXJDb2xvcjtcbnZhcnlpbmcgZmxvYXQgZnJhZ0JvcmRlclJhZGl1cywgZnJhZ1dpZHRoO1xuXG5ib29sIGlzRGlyZWN0ID0gKHBhbGV0dGVTaXplLnggPCAxLik7XG5cbnZlYzQgZ2V0Q29sb3IodmVjNCBpZCkge1xuICByZXR1cm4gaXNEaXJlY3QgPyBpZCAvIDI1NS4gOiB0ZXh0dXJlMkQocGFsZXR0ZSxcbiAgICB2ZWMyKFxuICAgICAgKGlkLnggKyAuNSkgLyBwYWxldHRlU2l6ZS54LFxuICAgICAgKGlkLnkgKyAuNSkgLyBwYWxldHRlU2l6ZS55XG4gICAgKVxuICApO1xufVxuXG52b2lkIG1haW4oKSB7XG4gIC8vIGlnbm9yZSBpbmFjdGl2ZSBwb2ludHNcbiAgaWYgKGlzQWN0aXZlID09IDAuKSByZXR1cm47XG5cbiAgdmVjMiBwb3NpdGlvbiA9IHZlYzIoeCwgeSk7XG4gIHZlYzIgcG9zaXRpb25GcmFjdCA9IHZlYzIoeEZyYWN0LCB5RnJhY3QpO1xuXG4gIHZlYzQgY29sb3IgPSBnZXRDb2xvcihjb2xvcklkKTtcbiAgdmVjNCBib3JkZXJDb2xvciA9IGdldENvbG9yKGJvcmRlckNvbG9ySWQpO1xuXG4gIGZsb2F0IHNpemUgPSBzaXplICogbWF4U2l6ZSAvIDI1NS47XG4gIGZsb2F0IGJvcmRlclNpemUgPSBib3JkZXJTaXplICogbWF4U2l6ZSAvIDI1NS47XG5cbiAgZ2xfUG9pbnRTaXplID0gKHNpemUgKyBib3JkZXJTaXplKSAqIHBpeGVsUmF0aW87XG5cbiAgdmVjMiBwb3MgPSAocG9zaXRpb24gKyB0cmFuc2xhdGUpICogc2NhbGVcbiAgICAgICsgKHBvc2l0aW9uRnJhY3QgKyB0cmFuc2xhdGVGcmFjdCkgKiBzY2FsZVxuICAgICAgKyAocG9zaXRpb24gKyB0cmFuc2xhdGUpICogc2NhbGVGcmFjdFxuICAgICAgKyAocG9zaXRpb25GcmFjdCArIHRyYW5zbGF0ZUZyYWN0KSAqIHNjYWxlRnJhY3Q7XG5cbiAgZ2xfUG9zaXRpb24gPSB2ZWM0KHBvcyAqIDIuIC0gMS4sIDAsIDEpO1xuXG4gIGZyYWdCb3JkZXJSYWRpdXMgPSAxLiAtIDIuICogYm9yZGVyU2l6ZSAvIChzaXplICsgYm9yZGVyU2l6ZSk7XG4gIGZyYWdDb2xvciA9IGNvbG9yO1xuICBmcmFnQm9yZGVyQ29sb3IgPSBib3JkZXJDb2xvci5hID09IDAuIHx8IGJvcmRlclNpemUgPT0gMC4gPyB2ZWM0KGNvbG9yLnJnYiwgMC4pIDogYm9yZGVyQ29sb3I7XG4gIGZyYWdXaWR0aCA9IDEuIC8gZ2xfUG9pbnRTaXplO1xufVxuIl0pLGQmJihsLmZyYWc9bC5mcmFnLnJlcGxhY2UoInNtb290aHN0ZXAiLCJzbW9vdGhTdGVwIikscy5mcmFnPXMuZnJhZy5yZXBsYWNlKCJzbW9vdGhzdGVwIiwic21vb3RoU3RlcCIpKSx0aGlzLmRyYXdDaXJjbGU9dChsKX15LmRlZmF1bHRzPXtjb2xvcjoiYmxhY2siLGJvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCIsYm9yZGVyU2l6ZTowLHNpemU6MTIsb3BhY2l0eToxLG1hcmtlcjp2b2lkIDAsdmlld3BvcnQ6bnVsbCxyYW5nZTpudWxsLHBpeGVsU2l6ZTpudWxsLGNvdW50OjAsb2Zmc2V0OjAsYm91bmRzOm51bGwscG9zaXRpb25zOltdLHNuYXA6MWU0fSx5LnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aCYmdGhpcy51cGRhdGUuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuZHJhdygpLHRoaXN9LHkucHJvdG90eXBlLmRyYXc9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcyxlPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoZSksbj0wO248ZTtuKyspcltuXT1hcmd1bWVudHNbbl07dmFyIGE9dGhpcy5ncm91cHM7aWYoMT09PXIubGVuZ3RoJiZBcnJheS5pc0FycmF5KHJbMF0pJiYobnVsbD09PXJbMF1bMF18fEFycmF5LmlzQXJyYXkoclswXVswXSkpJiYocj1yWzBdKSx0aGlzLnJlZ2wuX3JlZnJlc2goKSxyLmxlbmd0aClmb3IodmFyIGk9MDtpPHIubGVuZ3RoO2krKyl0aGlzLmRyYXdJdGVtKGkscltpXSk7ZWxzZSBhLmZvckVhY2goZnVuY3Rpb24oZSxyKXt0LmRyYXdJdGVtKHIpfSk7cmV0dXJuIHRoaXN9LHkucHJvdG90eXBlLmRyYXdJdGVtPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5ncm91cHMsbj1yW3RdO2lmKCJudW1iZXIiPT10eXBlb2YgZSYmKHQ9ZSxuPXJbZV0sZT1udWxsKSxuJiZuLmNvdW50JiZuLm9wYWNpdHkpe24uYWN0aXZhdGlvblswXSYmdGhpcy5kcmF3Q2lyY2xlKHRoaXMuZ2V0TWFya2VyRHJhd09wdGlvbnMoMCxuLGUpKTtmb3IodmFyIGk9W10sbz0xO288bi5hY3RpdmF0aW9uLmxlbmd0aDtvKyspbi5hY3RpdmF0aW9uW29dJiYoITA9PT1uLmFjdGl2YXRpb25bb118fG4uYWN0aXZhdGlvbltvXS5kYXRhLmxlbmd0aCkmJmkucHVzaC5hcHBseShpLGEodGhpcy5nZXRNYXJrZXJEcmF3T3B0aW9ucyhvLG4sZSkpKTtpLmxlbmd0aCYmdGhpcy5kcmF3TWFya2VyKGkpfX0seS5wcm90b3R5cGUuZ2V0TWFya2VyRHJhd09wdGlvbnM9ZnVuY3Rpb24odCxlLHIpe3ZhciBhPWUucmFuZ2UsaT1lLnRyZWUsbz1lLnZpZXdwb3J0LHM9ZS5hY3RpdmF0aW9uLGw9ZS5zZWxlY3Rpb25CdWZmZXIsdT1lLmNvdW50O3RoaXMucmVnbDtpZighaSlyZXR1cm4gcj9bYyh7fSxlLHttYXJrZXJUZXh0dXJlOnRoaXMubWFya2VyVGV4dHVyZXNbdF0sYWN0aXZhdGlvbjpzW3RdLGNvdW50OnIubGVuZ3RoLGVsZW1lbnRzOnIsb2Zmc2V0OjB9KV06W2Moe30sZSx7bWFya2VyVGV4dHVyZTp0aGlzLm1hcmtlclRleHR1cmVzW3RdLGFjdGl2YXRpb246c1t0XSxvZmZzZXQ6MH0pXTt2YXIgaD1bXSxmPWkucmFuZ2UoYSx7bG9kOiEwLHB4OlsoYVsyXS1hWzBdKS9vLndpZHRoLChhWzNdLWFbMV0pL28uaGVpZ2h0XX0pO2lmKHIpe2Zvcih2YXIgcD1zW3RdLmRhdGEsZD1uZXcgVWludDhBcnJheSh1KSxnPTA7ZzxyLmxlbmd0aDtnKyspe3ZhciB2PXJbZ107ZFt2XT1wP3Bbdl06MX1sLnN1YmRhdGEoZCl9Zm9yKHZhciBtPWYubGVuZ3RoO20tLTspe3ZhciB5PW4oZlttXSwyKSx4PXlbMF0sYj15WzFdO2gucHVzaChjKHt9LGUse21hcmtlclRleHR1cmU6dGhpcy5tYXJrZXJUZXh0dXJlc1t0XSxhY3RpdmF0aW9uOnI/bDpzW3RdLG9mZnNldDp4LGNvdW50OmIteH0pKX1yZXR1cm4gaH0seS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMsZT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGUpLG49MDtuPGU7bisrKXJbbl09YXJndW1lbnRzW25dO2lmKHIubGVuZ3RoKXsxPT09ci5sZW5ndGgmJkFycmF5LmlzQXJyYXkoclswXSkmJihyPXJbMF0pO3ZhciBhPXRoaXMuZ3JvdXBzLGk9dGhpcy5nbCxzPXRoaXMucmVnbCx1PXRoaXMubWF4U2l6ZSxkPXRoaXMubWF4Q29sb3JzLG09dGhpcy5wYWxldHRlO3RoaXMuZ3JvdXBzPWE9ci5tYXAoZnVuY3Rpb24oZSxyKXt2YXIgbj1hW3JdO2lmKHZvaWQgMD09PWUpcmV0dXJuIG47bnVsbD09PWU/ZT17cG9zaXRpb25zOm51bGx9OiJmdW5jdGlvbiI9PXR5cGVvZiBlP2U9e29uZHJhdzplfToibnVtYmVyIj09dHlwZW9mIGVbMF0mJihlPXtwb3NpdGlvbnM6ZX0pLG51bGw9PT0oZT1oKGUse3Bvc2l0aW9uczoicG9zaXRpb25zIGRhdGEgcG9pbnRzIixzbmFwOiJzbmFwIGNsdXN0ZXIgbG9kIHRyZWUiLHNpemU6InNpemVzIHNpemUgcmFkaXVzIixib3JkZXJTaXplOiJib3JkZXJTaXplcyBib3JkZXJTaXplIGJvcmRlci1zaXplIGJvcmRlcnNpemUgYm9yZGVyV2lkdGggYm9yZGVyV2lkdGhzIGJvcmRlci13aWR0aCBib3JkZXJ3aWR0aCBzdHJva2Utd2lkdGggc3Ryb2tlV2lkdGggc3Ryb2tld2lkdGggb3V0bGluZSIsY29sb3I6ImNvbG9ycyBjb2xvciBmaWxsIGZpbGwtY29sb3IgZmlsbENvbG9yIixib3JkZXJDb2xvcjoiYm9yZGVyQ29sb3JzIGJvcmRlckNvbG9yIHN0cm9rZSBzdHJva2UtY29sb3Igc3Ryb2tlQ29sb3IiLG1hcmtlcjoibWFya2VycyBtYXJrZXIgc2hhcGUiLHJhbmdlOiJyYW5nZSBkYXRhQm94IGRhdGFib3giLHZpZXdwb3J0OiJ2aWV3cG9ydCB2aWV3UG9ydCB2aWV3Qm94IHZpZXdib3giLG9wYWNpdHk6Im9wYWNpdHkgYWxwaGEgdHJhbnNwYXJlbmN5Iixib3VuZHM6ImJvdW5kIGJvdW5kcyBib3VuZGFyaWVzIGxpbWl0cyIsdG9vTWFueUNvbG9yczoidG9vTWFueUNvbG9ycyBwYWxldHRlIHBhbGV0dGVNb2RlIG9wdGltaXplUGFsZXR0ZSBlbmFibGVQYWxldHRlIn0pKS5wb3NpdGlvbnMmJihlLnBvc2l0aW9ucz1bXSksbnVsbCE9ZS50b29NYW55Q29sb3JzJiYodC50b29NYW55Q29sb3JzPWUudG9vTWFueUNvbG9ycyksbnx8KGFbcl09bj17aWQ6cixzY2FsZTpudWxsLHRyYW5zbGF0ZTpudWxsLHNjYWxlRnJhY3Q6bnVsbCx0cmFuc2xhdGVGcmFjdDpudWxsLGFjdGl2YXRpb246W10sc2VsZWN0aW9uQnVmZmVyOnMuYnVmZmVyKHtkYXRhOm5ldyBVaW50OEFycmF5KDApLHVzYWdlOiJzdHJlYW0iLHR5cGU6InVpbnQ4In0pLHNpemVCdWZmZXI6cy5idWZmZXIoe2RhdGE6bmV3IFVpbnQ4QXJyYXkoMCksdXNhZ2U6ImR5bmFtaWMiLHR5cGU6InVpbnQ4In0pLGNvbG9yQnVmZmVyOnMuYnVmZmVyKHtkYXRhOm5ldyBVaW50OEFycmF5KDApLHVzYWdlOiJkeW5hbWljIix0eXBlOiJ1aW50OCJ9KSxwb3NpdGlvbkJ1ZmZlcjpzLmJ1ZmZlcih7ZGF0YTpuZXcgVWludDhBcnJheSgwKSx1c2FnZToiZHluYW1pYyIsdHlwZToiZmxvYXQifSkscG9zaXRpb25GcmFjdEJ1ZmZlcjpzLmJ1ZmZlcih7ZGF0YTpuZXcgVWludDhBcnJheSgwKSx1c2FnZToiZHluYW1pYyIsdHlwZToiZmxvYXQifSl9LGU9Yyh7fSx5LmRlZmF1bHRzLGUpKSwhZS5wb3NpdGlvbnN8fCJtYXJrZXIiaW4gZXx8KGUubWFya2VyPW4ubWFya2VyLGRlbGV0ZSBuLm1hcmtlciksIWUubWFya2VyfHwicG9zaXRpb25zImluIGV8fChlLnBvc2l0aW9ucz1uLnBvc2l0aW9ucyxkZWxldGUgbi5wb3NpdGlvbnMpO3ZhciB4PTAsYj0wO2lmKGYobixlLFt7c25hcDohMCxzaXplOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGw9PXQmJih0PXkuZGVmYXVsdHMuc2l6ZSkseCs9dCYmdC5sZW5ndGg/MTowLHR9LGJvcmRlclNpemU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09dCYmKHQ9eS5kZWZhdWx0cy5ib3JkZXJTaXplKSx4Kz10JiZ0Lmxlbmd0aD8xOjAsdH0sb3BhY2l0eTpwYXJzZUZsb2F0LGNvbG9yOmZ1bmN0aW9uKGUscil7cmV0dXJuIG51bGw9PWUmJihlPXkuZGVmYXVsdHMuY29sb3IpLGU9dC51cGRhdGVDb2xvcihlKSxiKyssZX0sYm9yZGVyQ29sb3I6ZnVuY3Rpb24oZSxyKXtyZXR1cm4gbnVsbD09ZSYmKGU9eS5kZWZhdWx0cy5ib3JkZXJDb2xvciksZT10LnVwZGF0ZUNvbG9yKGUpLGIrKyxlfSxib3VuZHM6ZnVuY3Rpb24odCxlLHIpe3JldHVybiJyYW5nZSJpbiByfHwoci5yYW5nZT1udWxsKSx0fSxwb3NpdGlvbnM6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWUuc25hcCxhPWUucG9zaXRpb25CdWZmZXIsaT1lLnBvc2l0aW9uRnJhY3RCdWZmZXIsYz1lLnNlbGVjdGlvbkJ1ZmZlcjtpZih0Lnh8fHQueSlyZXR1cm4gdC54Lmxlbmd0aD9lLnhBdHRyPXtidWZmZXI6cy5idWZmZXIodC54KSxvZmZzZXQ6MCxzdHJpZGU6NCxjb3VudDp0LngubGVuZ3RofTplLnhBdHRyPXtidWZmZXI6dC54LmJ1ZmZlcixvZmZzZXQ6NCp0Lngub2Zmc2V0fHwwLHN0cmlkZTo0Kih0Lnguc3RyaWRlfHwxKSxjb3VudDp0LnguY291bnR9LHQueS5sZW5ndGg/ZS55QXR0cj17YnVmZmVyOnMuYnVmZmVyKHQueSksb2Zmc2V0OjAsc3RyaWRlOjQsY291bnQ6dC55Lmxlbmd0aH06ZS55QXR0cj17YnVmZmVyOnQueS5idWZmZXIsb2Zmc2V0OjQqdC55Lm9mZnNldHx8MCxzdHJpZGU6NCoodC55LnN0cmlkZXx8MSksY291bnQ6dC55LmNvdW50fSxlLmNvdW50PU1hdGgubWF4KGUueEF0dHIuY291bnQsZS55QXR0ci5jb3VudCksdDt0PXAodCwiZmxvYXQ2NCIpO3ZhciB1PWUuY291bnQ9TWF0aC5mbG9vcih0Lmxlbmd0aC8yKSxoPWUuYm91bmRzPXU/byh0LDIpOm51bGw7aWYoci5yYW5nZXx8ZS5yYW5nZXx8KGRlbGV0ZSBlLnJhbmdlLHIucmFuZ2U9aCksci5tYXJrZXJ8fGUubWFya2VyfHwoZGVsZXRlIGUubWFya2VyLHIubWFya2VyPW51bGwpLG4mJighMD09PW58fHU+bik/ZS50cmVlPWwodCx7Ym91bmRzOmh9KTpuJiZuLmxlbmd0aCYmKGUudHJlZT1uKSxlLnRyZWUpe3ZhciBmPXtwcmltaXRpdmU6InBvaW50cyIsdXNhZ2U6InN0YXRpYyIsZGF0YTplLnRyZWUsdHlwZToidWludDMyIn07ZS5lbGVtZW50cz9lLmVsZW1lbnRzKGYpOmUuZWxlbWVudHM9cy5lbGVtZW50cyhmKX1yZXR1cm4gYSh7ZGF0YTpnLmZsb2F0KHQpLHVzYWdlOiJkeW5hbWljIn0pLGkoe2RhdGE6Zy5mcmFjdCh0KSx1c2FnZToiZHluYW1pYyJ9KSxjKHtkYXRhOm5ldyBVaW50OEFycmF5KHUpLHR5cGU6InVpbnQ4Iix1c2FnZToic3RyZWFtIn0pLHR9fSx7bWFya2VyOmZ1bmN0aW9uKGUscixuKXt2YXIgYT1yLmFjdGl2YXRpb247aWYoYS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0LmRlc3Ryb3kmJnQuZGVzdHJveSgpfSksYS5sZW5ndGg9MCxlJiYibnVtYmVyIiE9dHlwZW9mIGVbMF0pe2Zvcih2YXIgaT1bXSxvPTAsbD1NYXRoLm1pbihlLmxlbmd0aCxyLmNvdW50KTtvPGw7bysrKXt2YXIgYz10LmFkZE1hcmtlcihlW29dKTtpW2NdfHwoaVtjXT1uZXcgVWludDhBcnJheShyLmNvdW50KSksaVtjXVtvXT0xfWZvcih2YXIgdT0wO3U8aS5sZW5ndGg7dSsrKWlmKGlbdV0pe3ZhciBoPXtkYXRhOmlbdV0sdHlwZToidWludDgiLHVzYWdlOiJzdGF0aWMifTthW3VdP2FbdV0oaCk6YVt1XT1zLmJ1ZmZlcihoKSxhW3VdLmRhdGE9aVt1XX19ZWxzZXthW3QuYWRkTWFya2VyKGUpXT0hMH1yZXR1cm4gZX0scmFuZ2U6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWUuYm91bmRzO2lmKG4pcmV0dXJuIHR8fCh0PW4pLGUuc2NhbGU9WzEvKHRbMl0tdFswXSksMS8odFszXS10WzFdKV0sZS50cmFuc2xhdGU9Wy10WzBdLC10WzFdXSxlLnNjYWxlRnJhY3Q9Zy5mcmFjdChlLnNjYWxlKSxlLnRyYW5zbGF0ZUZyYWN0PWcuZnJhY3QoZS50cmFuc2xhdGUpLHR9LHZpZXdwb3J0OmZ1bmN0aW9uKHQpe3JldHVybiB2KHR8fFtpLmRyYXdpbmdCdWZmZXJXaWR0aCxpLmRyYXdpbmdCdWZmZXJIZWlnaHRdKX19XSkseCl7dmFyIF89bix3PV8uY291bnQsaz1fLnNpemUsVD1fLmJvcmRlclNpemUsTT1fLnNpemVCdWZmZXIsQT1uZXcgVWludDhBcnJheSgyKncpO2lmKGsubGVuZ3RofHxULmxlbmd0aClmb3IodmFyIFM9MDtTPHc7UysrKUFbMipTXT1NYXRoLnJvdW5kKDI1NSoobnVsbD09a1tTXT9rOmtbU10pL3UpLEFbMipTKzFdPU1hdGgucm91bmQoMjU1KihudWxsPT1UW1NdP1Q6VFtTXSkvdSk7TSh7ZGF0YTpBLHVzYWdlOiJkeW5hbWljIn0pfWlmKGIpe3ZhciBFLEw9bixDPUwuY291bnQsUD1MLmNvbG9yLE89TC5ib3JkZXJDb2xvcix6PUwuY29sb3JCdWZmZXI7aWYodC50b29NYW55Q29sb3JzKXtpZihQLmxlbmd0aHx8Ty5sZW5ndGgpe0U9bmV3IFVpbnQ4QXJyYXkoOCpDKTtmb3IodmFyIEk9MDtJPEM7SSsrKXt2YXIgRD1QW0ldO0VbOCpJXT1tWzQqRF0sRVs4KkkrMV09bVs0KkQrMV0sRVs4KkkrMl09bVs0KkQrMl0sRVs4KkkrM109bVs0KkQrM107dmFyIFI9T1tJXTtFWzgqSSs0XT1tWzQqUl0sRVs4KkkrNV09bVs0KlIrMV0sRVs4KkkrNl09bVs0KlIrMl0sRVs4KkkrN109bVs0KlIrM119fX1lbHNlIGlmKFAubGVuZ3RofHxPLmxlbmd0aCl7RT1uZXcgVWludDhBcnJheSg0KkMrMik7Zm9yKHZhciBGPTA7RjxDO0YrKyludWxsIT1QW0ZdJiYoRVs0KkZdPVBbRl0lZCxFWzQqRisxXT1NYXRoLmZsb29yKFBbRl0vZCkpLG51bGwhPU9bRl0mJihFWzQqRisyXT1PW0ZdJWQsRVs0KkYrM109TWF0aC5mbG9vcihPW0ZdL2QpKX16KHtkYXRhOkV8fG5ldyBVaW50OEFycmF5KDApLHR5cGU6InVpbnQ4Iix1c2FnZToiZHluYW1pYyJ9KX1yZXR1cm4gbn0pfX0seS5wcm90b3R5cGUuYWRkTWFya2VyPWZ1bmN0aW9uKHQpe3ZhciBlLHI9dGhpcy5tYXJrZXJUZXh0dXJlcyxuPXRoaXMucmVnbCxhPXRoaXMubWFya2VyQ2FjaGUsaT1udWxsPT10PzA6YS5pbmRleE9mKHQpO2lmKGk+PTApcmV0dXJuIGk7aWYodCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl8fHQgaW5zdGFuY2VvZiBVaW50OENsYW1wZWRBcnJheSllPXQ7ZWxzZXtlPW5ldyBVaW50OEFycmF5KHQubGVuZ3RoKTtmb3IodmFyIG89MCxzPXQubGVuZ3RoO288cztvKyspZVtvXT0yNTUqdFtvXX12YXIgbD1NYXRoLmZsb29yKE1hdGguc3FydChlLmxlbmd0aCkpO3JldHVybiBpPXIubGVuZ3RoLGEucHVzaCh0KSxyLnB1c2gobi50ZXh0dXJlKHtjaGFubmVsczoxLGRhdGE6ZSxyYWRpdXM6bCxtYWc6ImxpbmVhciIsbWluOiJsaW5lYXIifSkpLGl9LHkucHJvdG90eXBlLnVwZGF0ZUNvbG9yPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMucGFsZXR0ZUlkcyxyPXRoaXMucGFsZXR0ZSxuPXRoaXMubWF4Q29sb3JzO0FycmF5LmlzQXJyYXkodCl8fCh0PVt0XSk7dmFyIGE9W107aWYoIm51bWJlciI9PXR5cGVvZiB0WzBdKXt2YXIgbz1bXTtpZihBcnJheS5pc0FycmF5KHQpKWZvcih2YXIgbD0wO2w8dC5sZW5ndGg7bCs9NClvLnB1c2godC5zbGljZShsLGwrNCkpO2Vsc2UgZm9yKHZhciBjPTA7Yzx0Lmxlbmd0aDtjKz00KW8ucHVzaCh0LnN1YmFycmF5KGMsYys0KSk7dD1vfWZvcih2YXIgdT0wO3U8dC5sZW5ndGg7dSsrKXt2YXIgaD10W3VdO2g9aShoLCJ1aW50OCIpO3ZhciBmPXMoaCwhMSk7aWYobnVsbD09ZVtmXSl7dmFyIHA9ci5sZW5ndGg7ZVtmXT1NYXRoLmZsb29yKHAvNCkscltwXT1oWzBdLHJbcCsxXT1oWzFdLHJbcCsyXT1oWzJdLHJbcCszXT1oWzNdfWFbdV09ZVtmXX1yZXR1cm4hdGhpcy50b29NYW55Q29sb3JzJiZyLmxlbmd0aD40Km4mJih0aGlzLnRvb01hbnlDb2xvcnM9ITApLHRoaXMudXBkYXRlUGFsZXR0ZShyKSwxPT09YS5sZW5ndGg/YVswXTphfSx5LnByb3RvdHlwZS51cGRhdGVQYWxldHRlPWZ1bmN0aW9uKHQpe2lmKCF0aGlzLnRvb01hbnlDb2xvcnMpe3ZhciBlPXRoaXMubWF4Q29sb3JzLHI9dGhpcy5wYWxldHRlVGV4dHVyZSxuPU1hdGguY2VpbCguMjUqdC5sZW5ndGgvZSk7aWYobj4xKWZvcih2YXIgYT0uMjUqKHQ9dC5zbGljZSgpKS5sZW5ndGglZTthPG4qZTthKyspdC5wdXNoKDAsMCwwLDApO3IuaGVpZ2h0PG4mJnIucmVzaXplKGUsbiksci5zdWJpbWFnZSh7d2lkdGg6TWF0aC5taW4oLjI1KnQubGVuZ3RoLGUpLGhlaWdodDpuLGRhdGE6dH0sMCwwKX19LHkucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ncm91cHMuZm9yRWFjaChmdW5jdGlvbih0KXt0LnNpemVCdWZmZXIuZGVzdHJveSgpLHQucG9zaXRpb25CdWZmZXIuZGVzdHJveSgpLHQucG9zaXRpb25GcmFjdEJ1ZmZlci5kZXN0cm95KCksdC5jb2xvckJ1ZmZlci5kZXN0cm95KCksdC5hY3RpdmF0aW9uLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQuZGVzdHJveSYmdC5kZXN0cm95KCl9KSx0LnNlbGVjdGlvbkJ1ZmZlci5kZXN0cm95KCksdC5lbGVtZW50cyYmdC5lbGVtZW50cy5kZXN0cm95KCl9KSx0aGlzLmdyb3Vwcy5sZW5ndGg9MCx0aGlzLnBhbGV0dGVUZXh0dXJlLmRlc3Ryb3koKSx0aGlzLm1hcmtlclRleHR1cmVzLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQuZGVzdHJveSYmdC5kZXN0cm95KCl9KSx0aGlzfTt2YXIgeD10KCJvYmplY3QtYXNzaWduIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bmV3IG0odCxlKSxuPXIucmVuZGVyLmJpbmQocik7cmV0dXJuIHgobix7cmVuZGVyOm4sdXBkYXRlOnIudXBkYXRlLmJpbmQociksZHJhdzpyLmRyYXcuYmluZChyKSxkZXN0cm95OnIuZGVzdHJveS5iaW5kKHIpLHJlZ2w6ci5yZWdsLGdsOnIuZ2wsY2FudmFzOnIuZ2wuY2FudmFzLGdyb3VwczpyLmdyb3VwcyxtYXJrZXJzOnIubWFya2VyQ2FjaGUscGFsZXR0ZTpyLnBhbGV0dGV9KSxufX0seyJhcnJheS1ib3VuZHMiOjY4LCJjb2xvci1pZCI6MTIwLCJjb2xvci1ub3JtYWxpemUiOjEyMiwiZmxhdHRlbi12ZXJ0ZXgtZGF0YSI6MjMwLGdsc2xpZnk6NDExLCJpcy1pZXhwbG9yZXIiOjQyMSwib2JqZWN0LWFzc2lnbiI6NDU2LCJwYXJzZS1yZWN0Ijo0NjEsInBpY2stYnktYWxpYXMiOjQ2NywicG9pbnQtY2x1c3RlciI6NDcxLCJ0by1mbG9hdDMyIjo1MzcsInVwZGF0ZS1kaWZmIjo1NDh9XSw1MDA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgicmVnbC1zY2F0dGVyMmQiKSxhPXQoInBpY2stYnktYWxpYXMiKSxpPXQoImFycmF5LWJvdW5kcyIpLG89dCgicmFmIikscz10KCJhcnJheS1yYW5nZSIpLGw9dCgicGFyc2UtcmVjdCIpLGM9dCgiZmxhdHRlbi12ZXJ0ZXgtZGF0YSIpO2Z1bmN0aW9uIHUodCxlKXtpZighKHRoaXMgaW5zdGFuY2VvZiB1KSlyZXR1cm4gbmV3IHUodCxlKTt0aGlzLnRyYWNlcz1bXSx0aGlzLnBhc3Nlcz17fSx0aGlzLnJlZ2w9dCx0aGlzLnNjYXR0ZXI9bih0KSx0aGlzLmNhbnZhcz10aGlzLnNjYXR0ZXIuY2FudmFzfWZ1bmN0aW9uIGgodCxlLHIpe3JldHVybihudWxsIT10LmlkP3QuaWQ6dCk8PDE2fCgyNTUmZSk8PDh8MjU1JnJ9ZnVuY3Rpb24gZih0LGUscil7dmFyIG4sYSxpLG8scz10W2VdLGw9dFtyXTtyZXR1cm4gcy5sZW5ndGg+Mj8oc1swXSxzWzJdLG49c1sxXSxhPXNbM10pOnMubGVuZ3RoPyhuPXNbMF0sYT1zWzFdKToocy54LG49cy55LHMueCtzLndpZHRoLGE9cy55K3MuaGVpZ2h0KSxsLmxlbmd0aD4yPyhpPWxbMF0sbz1sWzJdLGxbMV0sbFszXSk6bC5sZW5ndGg/KGk9bFswXSxvPWxbMV0pOihpPWwueCxsLnksbz1sLngrbC53aWR0aCxsLnkrbC5oZWlnaHQpLFtpLG4sbyxhXX1mdW5jdGlvbiBwKHQpe2lmKCJudW1iZXIiPT10eXBlb2YgdClyZXR1cm5bdCx0LHQsdF07aWYoMj09PXQubGVuZ3RoKXJldHVyblt0WzBdLHRbMV0sdFswXSx0WzFdXTt2YXIgZT1sKHQpO3JldHVybltlLngsZS55LGUueCtlLndpZHRoLGUueStlLmhlaWdodF19ZS5leHBvcnRzPXUsdS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9dGhpcyxyPVtdLG49YXJndW1lbnRzLmxlbmd0aDtuLS07KXJbbl09YXJndW1lbnRzW25dO3JldHVybiByLmxlbmd0aCYmKHQ9dGhpcykudXBkYXRlLmFwcGx5KHQsciksdGhpcy5yZWdsLmF0dHJpYnV0ZXMucHJlc2VydmVEcmF3aW5nQnVmZmVyP3RoaXMuZHJhdygpOih0aGlzLmRpcnR5P251bGw9PXRoaXMucGxhbm5lZCYmKHRoaXMucGxhbm5lZD1vKGZ1bmN0aW9uKCl7ZS5kcmF3KCksZS5kaXJ0eT0hMCxlLnBsYW5uZWQ9bnVsbH0pKToodGhpcy5kcmF3KCksdGhpcy5kaXJ0eT0hMCxvKGZ1bmN0aW9uKCl7ZS5kaXJ0eT0hMX0pKSx0aGlzKX0sdS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9W10scj1hcmd1bWVudHMubGVuZ3RoO3ItLTspZVtyXT1hcmd1bWVudHNbcl07aWYoZS5sZW5ndGgpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXRoaXMudXBkYXRlSXRlbShuLGVbbl0pO3RoaXMudHJhY2VzPXRoaXMudHJhY2VzLmZpbHRlcihCb29sZWFuKTtmb3IodmFyIGE9W10saT0wLG89MDtvPHRoaXMudHJhY2VzLmxlbmd0aDtvKyspe2Zvcih2YXIgcz10aGlzLnRyYWNlc1tvXSxsPXRoaXMudHJhY2VzW29dLnBhc3NlcyxjPTA7YzxsLmxlbmd0aDtjKyspYS5wdXNoKHRoaXMucGFzc2VzW2xbY11dKTtzLnBhc3NPZmZzZXQ9aSxpKz1zLnBhc3Nlcy5sZW5ndGh9cmV0dXJuKHQ9dGhpcy5zY2F0dGVyKS51cGRhdGUuYXBwbHkodCxhKSx0aGlzfX0sdS5wcm90b3R5cGUudXBkYXRlSXRlbT1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMucmVnbDtpZihudWxsPT09ZSlyZXR1cm4gdGhpcy50cmFjZXNbdF09bnVsbCx0aGlzO2lmKCFlKXJldHVybiB0aGlzO3ZhciBuLG89YShlLHtkYXRhOiJkYXRhIGl0ZW1zIGNvbHVtbnMgcm93cyB2YWx1ZXMgZGltZW5zaW9ucyBzYW1wbGVzIHgiLHNuYXA6InNuYXAgY2x1c3RlciIsc2l6ZToic2l6ZXMgc2l6ZSByYWRpdXMiLGNvbG9yOiJjb2xvcnMgY29sb3IgZmlsbCBmaWxsLWNvbG9yIGZpbGxDb2xvciIsb3BhY2l0eToib3BhY2l0eSBhbHBoYSB0cmFuc3BhcmVuY3kgb3BhcXVlIixib3JkZXJTaXplOiJib3JkZXJTaXplcyBib3JkZXJTaXplIGJvcmRlci1zaXplIGJvcmRlcnNpemUgYm9yZGVyV2lkdGggYm9yZGVyV2lkdGhzIGJvcmRlci13aWR0aCBib3JkZXJ3aWR0aCBzdHJva2Utd2lkdGggc3Ryb2tlV2lkdGggc3Ryb2tld2lkdGggb3V0bGluZSIsYm9yZGVyQ29sb3I6ImJvcmRlckNvbG9ycyBib3JkZXJDb2xvciBib3JkZXJjb2xvciBzdHJva2Ugc3Ryb2tlLWNvbG9yIHN0cm9rZUNvbG9yIixtYXJrZXI6Im1hcmtlcnMgbWFya2VyIHNoYXBlIixyYW5nZToicmFuZ2UgcmFuZ2VzIGRhdGFib3ggZGF0YUJveCIsdmlld3BvcnQ6InZpZXdwb3J0IHZpZXdCb3ggdmlld2JveCIsZG9tYWluOiJkb21haW4gZG9tYWlucyBhcmVhIGFyZWFzIixwYWRkaW5nOiJwYWQgcGFkZGluZyBwYWRkaW5ncyBwYWRzIG1hcmdpbiBtYXJnaW5zIix0cmFuc3Bvc2U6InRyYW5zcG9zZSB0cmFuc3Bvc2VkIixkaWFnb25hbDoiZGlhZ29uYWwgZGlhZyBzaG93RGlhZ29uYWwiLHVwcGVyOiJ1cHBlciB1cCB0b3AgdXBwZXJoYWxmIHVwcGVySGFsZiBzaG93dXBwZXJoYWxmIHNob3dVcHBlciBzaG93VXBwZXJIYWxmIixsb3dlcjoibG93ZXIgbG93IGJvdHRvbSBsb3dlcmhhbGYgbG93ZXJIYWxmIHNob3dsb3dlcmhhbGYgc2hvd0xvd2VySGFsZiBzaG93TG93ZXIifSkscz10aGlzLnRyYWNlc1t0XXx8KHRoaXMudHJhY2VzW3RdPXtpZDp0LGJ1ZmZlcjpyLmJ1ZmZlcih7dXNhZ2U6ImR5bmFtaWMiLHR5cGU6ImZsb2F0IixkYXRhOm5ldyBVaW50OEFycmF5fSksY29sb3I6ImJsYWNrIixtYXJrZXI6bnVsbCxzaXplOjEyLGJvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCIsYm9yZGVyU2l6ZToxLHZpZXdwb3J0OmwoW3IuX2dsLmRyYXdpbmdCdWZmZXJXaWR0aCxyLl9nbC5kcmF3aW5nQnVmZmVySGVpZ2h0XSkscGFkZGluZzpbMCwwLDAsMF0sb3BhY2l0eToxLGRpYWdvbmFsOiEwLHVwcGVyOiEwLGxvd2VyOiEwfSk7aWYobnVsbCE9by5jb2xvciYmKHMuY29sb3I9by5jb2xvciksbnVsbCE9by5zaXplJiYocy5zaXplPW8uc2l6ZSksbnVsbCE9by5tYXJrZXImJihzLm1hcmtlcj1vLm1hcmtlciksbnVsbCE9by5ib3JkZXJDb2xvciYmKHMuYm9yZGVyQ29sb3I9by5ib3JkZXJDb2xvciksbnVsbCE9by5ib3JkZXJTaXplJiYocy5ib3JkZXJTaXplPW8uYm9yZGVyU2l6ZSksbnVsbCE9by5vcGFjaXR5JiYocy5vcGFjaXR5PW8ub3BhY2l0eSksby52aWV3cG9ydCYmKHMudmlld3BvcnQ9bChvLnZpZXdwb3J0KSksbnVsbCE9by5kaWFnb25hbCYmKHMuZGlhZ29uYWw9by5kaWFnb25hbCksbnVsbCE9by51cHBlciYmKHMudXBwZXI9by51cHBlciksbnVsbCE9by5sb3dlciYmKHMubG93ZXI9by5sb3dlciksby5kYXRhKXtzLmJ1ZmZlcihjKG8uZGF0YSkpLHMuY29sdW1ucz1vLmRhdGEubGVuZ3RoLHMuY291bnQ9by5kYXRhWzBdLmxlbmd0aCxzLmJvdW5kcz1bXTtmb3IodmFyIHU9MDt1PHMuY29sdW1uczt1Kyspcy5ib3VuZHNbdV09aShvLmRhdGFbdV0sMSl9by5yYW5nZSYmKHMucmFuZ2U9by5yYW5nZSxuPXMucmFuZ2UmJiJudW1iZXIiIT10eXBlb2Ygcy5yYW5nZVswXSksby5kb21haW4mJihzLmRvbWFpbj1vLmRvbWFpbik7dmFyIGQ9ITE7bnVsbCE9by5wYWRkaW5nJiYoQXJyYXkuaXNBcnJheShvLnBhZGRpbmcpJiZvLnBhZGRpbmcubGVuZ3RoPT09cy5jb2x1bW5zJiYibnVtYmVyIj09dHlwZW9mIG8ucGFkZGluZ1tvLnBhZGRpbmcubGVuZ3RoLTFdPyhzLnBhZGRpbmc9by5wYWRkaW5nLm1hcChwKSxkPSEwKTpzLnBhZGRpbmc9cChvLnBhZGRpbmcpKTt2YXIgZz1zLmNvbHVtbnMsdj1zLmNvdW50LG09cy52aWV3cG9ydC53aWR0aCx5PXMudmlld3BvcnQuaGVpZ2h0LHg9cy52aWV3cG9ydC54LGI9cy52aWV3cG9ydC55LF89bS9nLHc9eS9nO3MucGFzc2VzPVtdO2Zvcih2YXIgaz0wO2s8ZztrKyspZm9yKHZhciBUPTA7VDxnO1QrKylpZigocy5kaWFnb25hbHx8VCE9PWspJiYocy51cHBlcnx8IShrPlQpKSYmKHMubG93ZXJ8fCEoazxUKSkpe3ZhciBNPWgocy5pZCxrLFQpLEE9dGhpcy5wYXNzZXNbTV18fCh0aGlzLnBhc3Nlc1tNXT17fSk7aWYoby5kYXRhJiYoby50cmFuc3Bvc2U/QS5wb3NpdGlvbnM9e3g6e2J1ZmZlcjpzLmJ1ZmZlcixvZmZzZXQ6VCxjb3VudDp2LHN0cmlkZTpnfSx5OntidWZmZXI6cy5idWZmZXIsb2Zmc2V0OmssY291bnQ6dixzdHJpZGU6Z319OkEucG9zaXRpb25zPXt4OntidWZmZXI6cy5idWZmZXIsb2Zmc2V0OlQqdixjb3VudDp2fSx5OntidWZmZXI6cy5idWZmZXIsb2Zmc2V0Omsqdixjb3VudDp2fX0sQS5ib3VuZHM9ZihzLmJvdW5kcyxrLFQpKSxvLmRvbWFpbnx8by52aWV3cG9ydHx8by5kYXRhKXt2YXIgUz1kP2Yocy5wYWRkaW5nLGssVCk6cy5wYWRkaW5nO2lmKHMuZG9tYWluKXt2YXIgRT1mKHMuZG9tYWluLGssVCksTD1FWzBdLEM9RVsxXSxQPUVbMl0sTz1FWzNdO0Eudmlld3BvcnQ9W3grTCptK1NbMF0sYitDKnkrU1sxXSx4K1AqbS1TWzJdLGIrTyp5LVNbM11dfWVsc2UgQS52aWV3cG9ydD1beCtUKl8rXypTWzBdLGIrayp3K3cqU1sxXSx4KyhUKzEpKl8tXypTWzJdLGIrKGsrMSkqdy13KlNbM11dfW8uY29sb3ImJihBLmNvbG9yPXMuY29sb3IpLG8uc2l6ZSYmKEEuc2l6ZT1zLnNpemUpLG8ubWFya2VyJiYoQS5tYXJrZXI9cy5tYXJrZXIpLG8uYm9yZGVyU2l6ZSYmKEEuYm9yZGVyU2l6ZT1zLmJvcmRlclNpemUpLG8uYm9yZGVyQ29sb3ImJihBLmJvcmRlckNvbG9yPXMuYm9yZGVyQ29sb3IpLG8ub3BhY2l0eSYmKEEub3BhY2l0eT1zLm9wYWNpdHkpLG8ucmFuZ2UmJihBLnJhbmdlPW4/ZihzLnJhbmdlLGssVCk6cy5yYW5nZXx8QS5ib3VuZHMpLHMucGFzc2VzLnB1c2goTSl9cmV0dXJuIHRoaXN9LHUucHJvdG90eXBlLmRyYXc9ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT1bXSxyPWFyZ3VtZW50cy5sZW5ndGg7ci0tOyllW3JdPWFyZ3VtZW50c1tyXTtpZihlLmxlbmd0aCl7Zm9yKHZhciBuPVtdLGE9MDthPGUubGVuZ3RoO2ErKylpZigibnVtYmVyIj09dHlwZW9mIGVbYV0pe3ZhciBpPXRoaXMudHJhY2VzW2VbYV1dLG89aS5wYXNzZXMsbD1pLnBhc3NPZmZzZXQ7bi5wdXNoLmFwcGx5KG4scyhsLGwrby5sZW5ndGgpKX1lbHNlIGlmKGVbYV0ubGVuZ3RoKXt2YXIgYz1lW2FdLHU9dGhpcy50cmFjZXNbYV0saD11LnBhc3NlcyxmPXUucGFzc09mZnNldDtoPWgubWFwKGZ1bmN0aW9uKHQsZSl7bltmK2VdPWN9KX0odD10aGlzLnNjYXR0ZXIpLmRyYXcuYXBwbHkodCxuKX1lbHNlIHRoaXMuc2NhdHRlci5kcmF3KCk7cmV0dXJuIHRoaXN9LHUucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50cmFjZXMuZm9yRWFjaChmdW5jdGlvbih0KXt0LmJ1ZmZlciYmdC5idWZmZXIuZGVzdHJveSYmdC5idWZmZXIuZGVzdHJveSgpfSksdGhpcy50cmFjZXM9bnVsbCx0aGlzLnBhc3Nlcz1udWxsLHRoaXMuc2NhdHRlci5kZXN0cm95KCksdGhpc319LHsiYXJyYXktYm91bmRzIjo2OCwiYXJyYXktcmFuZ2UiOjY5LCJmbGF0dGVuLXZlcnRleC1kYXRhIjoyMzAsInBhcnNlLXJlY3QiOjQ2MSwicGljay1ieS1hbGlhcyI6NDY3LHJhZjo0ODYsInJlZ2wtc2NhdHRlcjJkIjo0OTl9XSw1MDE6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbixhO249dGhpcyxhPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUpe3RoaXMuaWQ9VisrLHRoaXMudHlwZT10LHRoaXMuZGF0YT1lfWZ1bmN0aW9uIGUodCl7cmV0dXJuIlsiK2Z1bmN0aW9uIHQoZSl7aWYoMD09PWUubGVuZ3RoKXJldHVybltdO3ZhciByPWUuY2hhckF0KDApLG49ZS5jaGFyQXQoZS5sZW5ndGgtMSk7aWYoMTxlLmxlbmd0aCYmcj09PW4mJignIic9PT1yfHwiJyI9PT1yKSlyZXR1cm5bJyInK2Uuc3Vic3RyKDEsZS5sZW5ndGgtMikucmVwbGFjZSgvXFwvZywiXFxcXCIpLnJlcGxhY2UoLyIvZywnXFwiJykrJyInXTtpZihyPS9cWyhmYWxzZXx0cnVlfG51bGx8XGQrfCdbXiddKid8IlteIl0qIilcXS8uZXhlYyhlKSlyZXR1cm4gdChlLnN1YnN0cigwLHIuaW5kZXgpKS5jb25jYXQodChyWzFdKSkuY29uY2F0KHQoZS5zdWJzdHIoci5pbmRleCtyWzBdLmxlbmd0aCkpKTtpZigxPT09KHI9ZS5zcGxpdCgiLiIpKS5sZW5ndGgpcmV0dXJuWyciJytlLnJlcGxhY2UoL1xcL2csIlxcXFwiKS5yZXBsYWNlKC8iL2csJ1xcIicpKyciJ107Zm9yKGU9W10sbj0wO248ci5sZW5ndGg7KytuKWU9ZS5jb25jYXQodChyW25dKSk7cmV0dXJuIGV9KHQpLmpvaW4oIl1bIikrIl0ifWZ1bmN0aW9uIHIodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P3Quc3BsaXQoKTp0fWZ1bmN0aW9uIG4odCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodCk6dH1mdW5jdGlvbiBhKHQpe3ZhciBlLGEsaSxvLHM9dHx8e307dD17fTt2YXIgbD1bXSxjPVtdLHU9InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3c/MTp3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyxoPSExLGY9ZnVuY3Rpb24odCl7fSxwPWZ1bmN0aW9uKCl7fTtpZigic3RyaW5nIj09dHlwZW9mIHM/ZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHMpOiJvYmplY3QiPT10eXBlb2YgcyYmKCJzdHJpbmciPT10eXBlb2Ygcy5ub2RlTmFtZSYmImZ1bmN0aW9uIj09dHlwZW9mIHMuYXBwZW5kQ2hpbGQmJiJmdW5jdGlvbiI9PXR5cGVvZiBzLmdldEJvdW5kaW5nQ2xpZW50UmVjdD9lPXM6ImZ1bmN0aW9uIj09dHlwZW9mIHMuZHJhd0FycmF5c3x8ImZ1bmN0aW9uIj09dHlwZW9mIHMuZHJhd0VsZW1lbnRzP2k9KG89cykuY2FudmFzOigiZ2wiaW4gcz9vPXMuZ2w6ImNhbnZhcyJpbiBzP2k9bihzLmNhbnZhcyk6ImNvbnRhaW5lciJpbiBzJiYoYT1uKHMuY29udGFpbmVyKSksImF0dHJpYnV0ZXMiaW4gcyYmKHQ9cy5hdHRyaWJ1dGVzKSwiZXh0ZW5zaW9ucyJpbiBzJiYobD1yKHMuZXh0ZW5zaW9ucykpLCJvcHRpb25hbEV4dGVuc2lvbnMiaW4gcyYmKGM9cihzLm9wdGlvbmFsRXh0ZW5zaW9ucykpLCJvbkRvbmUiaW4gcyYmKGY9cy5vbkRvbmUpLCJwcm9maWxlImluIHMmJihoPSEhcy5wcm9maWxlKSwicGl4ZWxSYXRpbyJpbiBzJiYodT0rcy5waXhlbFJhdGlvKSkpLGUmJigiY2FudmFzIj09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKT9pPWU6YT1lKSwhbyl7aWYoIWkpe2lmKCEoZT1mdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbigpe3ZhciBlPXdpbmRvdy5pbm5lcldpZHRoLG49d2luZG93LmlubmVySGVpZ2h0O3QhPT1kb2N1bWVudC5ib2R5JiYoZT0obj10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKS5yaWdodC1uLmxlZnQsbj1uLmJvdHRvbS1uLnRvcCksYS53aWR0aD1yKmUsYS5oZWlnaHQ9cipuLGooYS5zdHlsZSx7d2lkdGg6ZSsicHgiLGhlaWdodDpuKyJweCJ9KX12YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtyZXR1cm4gaihhLnN0eWxlLHtib3JkZXI6MCxtYXJnaW46MCxwYWRkaW5nOjAsdG9wOjAsbGVmdDowfSksdC5hcHBlbmRDaGlsZChhKSx0PT09ZG9jdW1lbnQuYm9keSYmKGEuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixqKHQuc3R5bGUse21hcmdpbjowLHBhZGRpbmc6MH0pKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixuLCExKSxuKCkse2NhbnZhczphLG9uRGVzdHJveTpmdW5jdGlvbigpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLG4pLHQucmVtb3ZlQ2hpbGQoYSl9fX0oYXx8ZG9jdW1lbnQuYm9keSwwLHUpKSlyZXR1cm4gbnVsbDtpPWUuY2FudmFzLHA9ZS5vbkRlc3Ryb3l9bz1mdW5jdGlvbih0LGUpe2Z1bmN0aW9uIHIocil7dHJ5e3JldHVybiB0LmdldENvbnRleHQocixlKX1jYXRjaCh0KXtyZXR1cm4gbnVsbH19cmV0dXJuIHIoIndlYmdsIil8fHIoImV4cGVyaW1lbnRhbC13ZWJnbCIpfHxyKCJ3ZWJnbC1leHBlcmltZW50YWwiKX0oaSx0KX1yZXR1cm4gbz97Z2w6byxjYW52YXM6aSxjb250YWluZXI6YSxleHRlbnNpb25zOmwsb3B0aW9uYWxFeHRlbnNpb25zOmMscGl4ZWxSYXRpbzp1LHByb2ZpbGU6aCxvbkRvbmU6ZixvbkRlc3Ryb3k6cH06KHAoKSxmKCJ3ZWJnbCBub3Qgc3VwcG9ydGVkLCB0cnkgdXBncmFkaW5nIHlvdXIgYnJvd3NlciBvciBncmFwaGljcyBkcml2ZXJzIGh0dHA6Ly9nZXQud2ViZ2wub3JnIiksbnVsbCl9ZnVuY3Rpb24gaSh0LGUpe2Zvcih2YXIgcj1BcnJheSh0KSxuPTA7bjx0OysrbilyW25dPWUobik7cmV0dXJuIHJ9ZnVuY3Rpb24gbyh0KXt2YXIgZSxyO3JldHVybiBlPSg2NTUzNTx0KTw8NCxlfD1yPSgyNTU8KHQ+Pj49ZSkpPDwzLChlfD1yPSgxNTwodD4+Pj1yKSk8PDIpfChyPSgzPCh0Pj4+PXIpKTw8MSl8dD4+PnI+PjF9ZnVuY3Rpb24gcygpe2Z1bmN0aW9uIHQodCl7dDp7Zm9yKHZhciBlPTE2OzI2ODQzNTQ1Nj49ZTtlKj0xNilpZih0PD1lKXt0PWU7YnJlYWsgdH10PTB9cmV0dXJuIDA8KGU9cltvKHQpPj4yXSkubGVuZ3RoP2UucG9wKCk6bmV3IEFycmF5QnVmZmVyKHQpfWZ1bmN0aW9uIGUodCl7cltvKHQuYnl0ZUxlbmd0aCk+PjJdLnB1c2godCl9dmFyIHI9aSg4LGZ1bmN0aW9uKCl7cmV0dXJuW119KTtyZXR1cm57YWxsb2M6dCxmcmVlOmUsYWxsb2NUeXBlOmZ1bmN0aW9uKGUscil7dmFyIG49bnVsbDtzd2l0Y2goZSl7Y2FzZSA1MTIwOm49bmV3IEludDhBcnJheSh0KHIpLDAscik7YnJlYWs7Y2FzZSA1MTIxOm49bmV3IFVpbnQ4QXJyYXkodChyKSwwLHIpO2JyZWFrO2Nhc2UgNTEyMjpuPW5ldyBJbnQxNkFycmF5KHQoMipyKSwwLHIpO2JyZWFrO2Nhc2UgNTEyMzpuPW5ldyBVaW50MTZBcnJheSh0KDIqciksMCxyKTticmVhaztjYXNlIDUxMjQ6bj1uZXcgSW50MzJBcnJheSh0KDQqciksMCxyKTticmVhaztjYXNlIDUxMjU6bj1uZXcgVWludDMyQXJyYXkodCg0KnIpLDAscik7YnJlYWs7Y2FzZSA1MTI2Om49bmV3IEZsb2F0MzJBcnJheSh0KDQqciksMCxyKTticmVhaztkZWZhdWx0OnJldHVybiBudWxsfXJldHVybiBuLmxlbmd0aCE9PXI/bi5zdWJhcnJheSgwLHIpOm59LGZyZWVUeXBlOmZ1bmN0aW9uKHQpe2UodC5idWZmZXIpfX19ZnVuY3Rpb24gbCh0KXtyZXR1cm4hIXQmJiJvYmplY3QiPT10eXBlb2YgdCYmQXJyYXkuaXNBcnJheSh0LnNoYXBlKSYmQXJyYXkuaXNBcnJheSh0LnN0cmlkZSkmJiJudW1iZXIiPT10eXBlb2YgdC5vZmZzZXQmJnQuc2hhcGUubGVuZ3RoPT09dC5zdHJpZGUubGVuZ3RoJiYoQXJyYXkuaXNBcnJheSh0LmRhdGEpfHxXKHQuZGF0YSkpfWZ1bmN0aW9uIGModCxlLHIsbixhLGkpe2Zvcih2YXIgbz0wO288ZTsrK28pZm9yKHZhciBzPXRbb10sbD0wO2w8cjsrK2wpZm9yKHZhciBjPXNbbF0sdT0wO3U8bjsrK3UpYVtpKytdPWNbdV19ZnVuY3Rpb24gdSh0KXtyZXR1cm4gMHxKW09iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KV19ZnVuY3Rpb24gaCh0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7KytyKXRbcl09ZVtyXX1mdW5jdGlvbiBmKHQsZSxyLG4sYSxpLG8pe2Zvcih2YXIgcz0wLGw9MDtsPHI7KytsKWZvcih2YXIgYz0wO2M8bjsrK2MpdFtzKytdPWVbYSpsK2kqYytvXX1mdW5jdGlvbiBwKHQsZSxyLG4pe2Z1bmN0aW9uIGEoZSl7dGhpcy5pZD1jKyssdGhpcy5idWZmZXI9dC5jcmVhdGVCdWZmZXIoKSx0aGlzLnR5cGU9ZSx0aGlzLnVzYWdlPTM1MDQ0LHRoaXMuYnl0ZUxlbmd0aD0wLHRoaXMuZGltZW5zaW9uPTEsdGhpcy5kdHlwZT01MTIxLHRoaXMucGVyc2lzdGVudERhdGE9bnVsbCxyLnByb2ZpbGUmJih0aGlzLnN0YXRzPXtzaXplOjB9KX1mdW5jdGlvbiBpKGUscixuKXtlLmJ5dGVMZW5ndGg9ci5ieXRlTGVuZ3RoLHQuYnVmZmVyRGF0YShlLnR5cGUscixuKX1mdW5jdGlvbiBvKHQsZSxyLG4sYSxvKXtpZih0LnVzYWdlPXIsQXJyYXkuaXNBcnJheShlKSl7aWYodC5kdHlwZT1ufHw1MTI2LDA8ZS5sZW5ndGgpaWYoQXJyYXkuaXNBcnJheShlWzBdKSl7YT10dChlKTtmb3IodmFyIHM9bj0xO3M8YS5sZW5ndGg7KytzKW4qPWFbc107dC5kaW1lbnNpb249bixpKHQsZT0kKGUsYSx0LmR0eXBlKSxyKSxvP3QucGVyc2lzdGVudERhdGE9ZTpHLmZyZWVUeXBlKGUpfWVsc2UibnVtYmVyIj09dHlwZW9mIGVbMF0/KHQuZGltZW5zaW9uPWEsaChhPUcuYWxsb2NUeXBlKHQuZHR5cGUsZS5sZW5ndGgpLGUpLGkodCxhLHIpLG8/dC5wZXJzaXN0ZW50RGF0YT1hOkcuZnJlZVR5cGUoYSkpOlcoZVswXSkmJih0LmRpbWVuc2lvbj1lWzBdLmxlbmd0aCx0LmR0eXBlPW58fHUoZVswXSl8fDUxMjYsaSh0LGU9JChlLFtlLmxlbmd0aCxlWzBdLmxlbmd0aF0sdC5kdHlwZSksciksbz90LnBlcnNpc3RlbnREYXRhPWU6Ry5mcmVlVHlwZShlKSl9ZWxzZSBpZihXKGUpKXQuZHR5cGU9bnx8dShlKSx0LmRpbWVuc2lvbj1hLGkodCxlLHIpLG8mJih0LnBlcnNpc3RlbnREYXRhPW5ldyBVaW50OEFycmF5KG5ldyBVaW50OEFycmF5KGUuYnVmZmVyKSkpO2Vsc2UgaWYobChlKSl7YT1lLnNoYXBlO3ZhciBjPWUuc3RyaWRlLHA9KHM9ZS5vZmZzZXQsMCksZD0wLGc9MCx2PTA7MT09PWEubGVuZ3RoPyhwPWFbMF0sZD0xLGc9Y1swXSx2PTApOjI9PT1hLmxlbmd0aCYmKHA9YVswXSxkPWFbMV0sZz1jWzBdLHY9Y1sxXSksdC5kdHlwZT1ufHx1KGUuZGF0YSl8fDUxMjYsdC5kaW1lbnNpb249ZCxmKGE9Ry5hbGxvY1R5cGUodC5kdHlwZSxwKmQpLGUuZGF0YSxwLGQsZyx2LHMpLGkodCxhLHIpLG8/dC5wZXJzaXN0ZW50RGF0YT1hOkcuZnJlZVR5cGUoYSl9fWZ1bmN0aW9uIHMocil7ZS5idWZmZXJDb3VudC0tO2Zvcih2YXIgYT0wO2E8bi5zdGF0ZS5sZW5ndGg7KythKXt2YXIgaT1uLnN0YXRlW2FdO2kuYnVmZmVyPT09ciYmKHQuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KGEpLGkuYnVmZmVyPW51bGwpfXQuZGVsZXRlQnVmZmVyKHIuYnVmZmVyKSxyLmJ1ZmZlcj1udWxsLGRlbGV0ZSBwW3IuaWRdfXZhciBjPTAscD17fTthLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7dC5iaW5kQnVmZmVyKHRoaXMudHlwZSx0aGlzLmJ1ZmZlcil9LGEucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXtzKHRoaXMpfTt2YXIgZD1bXTtyZXR1cm4gci5wcm9maWxlJiYoZS5nZXRUb3RhbEJ1ZmZlclNpemU9ZnVuY3Rpb24oKXt2YXIgdD0wO3JldHVybiBPYmplY3Qua2V5cyhwKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QrPXBbZV0uc3RhdHMuc2l6ZX0pLHR9KSx7Y3JlYXRlOmZ1bmN0aW9uKG4saSxjLGQpe2Z1bmN0aW9uIGcoZSl7dmFyIG49MzUwNDQsYT1udWxsLGk9MCxzPTAsYz0xO3JldHVybiBBcnJheS5pc0FycmF5KGUpfHxXKGUpfHxsKGUpP2E9ZToibnVtYmVyIj09dHlwZW9mIGU/aT0wfGU6ZSYmKCJkYXRhImluIGUmJihhPWUuZGF0YSksInVzYWdlImluIGUmJihuPVFbZS51c2FnZV0pLCJ0eXBlImluIGUmJihzPUtbZS50eXBlXSksImRpbWVuc2lvbiJpbiBlJiYoYz0wfGUuZGltZW5zaW9uKSwibGVuZ3RoImluIGUmJihpPTB8ZS5sZW5ndGgpKSx2LmJpbmQoKSxhP28odixhLG4scyxjLGQpOihpJiZ0LmJ1ZmZlckRhdGEodi50eXBlLGksbiksdi5kdHlwZT1zfHw1MTIxLHYudXNhZ2U9bix2LmRpbWVuc2lvbj1jLHYuYnl0ZUxlbmd0aD1pKSxyLnByb2ZpbGUmJih2LnN0YXRzLnNpemU9di5ieXRlTGVuZ3RoKmV0W3YuZHR5cGVdKSxnfWUuYnVmZmVyQ291bnQrKzt2YXIgdj1uZXcgYShpKTtyZXR1cm4gcFt2LmlkXT12LGN8fGcobiksZy5fcmVnbFR5cGU9ImJ1ZmZlciIsZy5fYnVmZmVyPXYsZy5zdWJkYXRhPWZ1bmN0aW9uKGUscil7dmFyIG4sYT0wfChyfHwwKTtpZih2LmJpbmQoKSxXKGUpKXQuYnVmZmVyU3ViRGF0YSh2LnR5cGUsYSxlKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoZSkpe2lmKDA8ZS5sZW5ndGgpaWYoIm51bWJlciI9PXR5cGVvZiBlWzBdKXt2YXIgaT1HLmFsbG9jVHlwZSh2LmR0eXBlLGUubGVuZ3RoKTtoKGksZSksdC5idWZmZXJTdWJEYXRhKHYudHlwZSxhLGkpLEcuZnJlZVR5cGUoaSl9ZWxzZShBcnJheS5pc0FycmF5KGVbMF0pfHxXKGVbMF0pKSYmKG49dHQoZSksaT0kKGUsbix2LmR0eXBlKSx0LmJ1ZmZlclN1YkRhdGEodi50eXBlLGEsaSksRy5mcmVlVHlwZShpKSl9ZWxzZSBpZihsKGUpKXtuPWUuc2hhcGU7dmFyIG89ZS5zdHJpZGUscz1pPTAsYz0wLHA9MDsxPT09bi5sZW5ndGg/KGk9blswXSxzPTEsYz1vWzBdLHA9MCk6Mj09PW4ubGVuZ3RoJiYoaT1uWzBdLHM9blsxXSxjPW9bMF0scD1vWzFdKSxuPUFycmF5LmlzQXJyYXkoZS5kYXRhKT92LmR0eXBlOnUoZS5kYXRhKSxmKG49Ry5hbGxvY1R5cGUobixpKnMpLGUuZGF0YSxpLHMsYyxwLGUub2Zmc2V0KSx0LmJ1ZmZlclN1YkRhdGEodi50eXBlLGEsbiksRy5mcmVlVHlwZShuKX1yZXR1cm4gZ30sci5wcm9maWxlJiYoZy5zdGF0cz12LnN0YXRzKSxnLmRlc3Ryb3k9ZnVuY3Rpb24oKXtzKHYpfSxnfSxjcmVhdGVTdHJlYW06ZnVuY3Rpb24odCxlKXt2YXIgcj1kLnBvcCgpO3JldHVybiByfHwocj1uZXcgYSh0KSksci5iaW5kKCksbyhyLGUsMzUwNDAsMCwxLCExKSxyfSxkZXN0cm95U3RyZWFtOmZ1bmN0aW9uKHQpe2QucHVzaCh0KX0sY2xlYXI6ZnVuY3Rpb24oKXtYKHApLmZvckVhY2gocyksZC5mb3JFYWNoKHMpfSxnZXRCdWZmZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQuX2J1ZmZlciBpbnN0YW5jZW9mIGE/dC5fYnVmZmVyOm51bGx9LHJlc3RvcmU6ZnVuY3Rpb24oKXtYKHApLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5idWZmZXI9dC5jcmVhdGVCdWZmZXIoKSx0LmJpbmRCdWZmZXIoZS50eXBlLGUuYnVmZmVyKSx0LmJ1ZmZlckRhdGEoZS50eXBlLGUucGVyc2lzdGVudERhdGF8fGUuYnl0ZUxlbmd0aCxlLnVzYWdlKX0pfSxfaW5pdEJ1ZmZlcjpvfX1mdW5jdGlvbiBkKHQsZSxyLG4pe2Z1bmN0aW9uIGEodCl7dGhpcy5pZD1jKyssc1t0aGlzLmlkXT10aGlzLHRoaXMuYnVmZmVyPXQsdGhpcy5wcmltVHlwZT00LHRoaXMudHlwZT10aGlzLnZlcnRDb3VudD0wfWZ1bmN0aW9uIGkobixhLGksbyxzLGMsdSl7aWYobi5idWZmZXIuYmluZCgpLGEpe3ZhciBoPXU7dXx8VyhhKSYmKCFsKGEpfHxXKGEuZGF0YSkpfHwoaD1lLm9lc19lbGVtZW50X2luZGV4X3VpbnQ/NTEyNTo1MTIzKSxyLl9pbml0QnVmZmVyKG4uYnVmZmVyLGEsaSxoLDMpfWVsc2UgdC5idWZmZXJEYXRhKDM0OTYzLGMsaSksbi5idWZmZXIuZHR5cGU9aHx8NTEyMSxuLmJ1ZmZlci51c2FnZT1pLG4uYnVmZmVyLmRpbWVuc2lvbj0zLG4uYnVmZmVyLmJ5dGVMZW5ndGg9YztpZihoPXUsIXUpe3N3aXRjaChuLmJ1ZmZlci5kdHlwZSl7Y2FzZSA1MTIxOmNhc2UgNTEyMDpoPTUxMjE7YnJlYWs7Y2FzZSA1MTIzOmNhc2UgNTEyMjpoPTUxMjM7YnJlYWs7Y2FzZSA1MTI1OmNhc2UgNTEyNDpoPTUxMjV9bi5idWZmZXIuZHR5cGU9aH1uLnR5cGU9aCwwPihhPXMpJiYoYT1uLmJ1ZmZlci5ieXRlTGVuZ3RoLDUxMjM9PT1oP2E+Pj0xOjUxMjU9PT1oJiYoYT4+PTIpKSxuLnZlcnRDb3VudD1hLGE9bywwPm8mJihhPTQsMT09PShvPW4uYnVmZmVyLmRpbWVuc2lvbikmJihhPTApLDI9PT1vJiYoYT0xKSwzPT09byYmKGE9NCkpLG4ucHJpbVR5cGU9YX1mdW5jdGlvbiBvKHQpe24uZWxlbWVudHNDb3VudC0tLGRlbGV0ZSBzW3QuaWRdLHQuYnVmZmVyLmRlc3Ryb3koKSx0LmJ1ZmZlcj1udWxsfXZhciBzPXt9LGM9MCx1PXt1aW50ODo1MTIxLHVpbnQxNjo1MTIzfTtlLm9lc19lbGVtZW50X2luZGV4X3VpbnQmJih1LnVpbnQzMj01MTI1KSxhLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7dGhpcy5idWZmZXIuYmluZCgpfTt2YXIgaD1bXTtyZXR1cm57Y3JlYXRlOmZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gcyh0KXtpZih0KWlmKCJudW1iZXIiPT10eXBlb2YgdCljKHQpLGgucHJpbVR5cGU9NCxoLnZlcnRDb3VudD0wfHQsaC50eXBlPTUxMjE7ZWxzZXt2YXIgZT1udWxsLHI9MzUwNDQsbj0tMSxhPS0xLG89MCxmPTA7QXJyYXkuaXNBcnJheSh0KXx8Vyh0KXx8bCh0KT9lPXQ6KCJkYXRhImluIHQmJihlPXQuZGF0YSksInVzYWdlImluIHQmJihyPVFbdC51c2FnZV0pLCJwcmltaXRpdmUiaW4gdCYmKG49cnRbdC5wcmltaXRpdmVdKSwiY291bnQiaW4gdCYmKGE9MHx0LmNvdW50KSwidHlwZSJpbiB0JiYoZj11W3QudHlwZV0pLCJsZW5ndGgiaW4gdD9vPTB8dC5sZW5ndGg6KG89YSw1MTIzPT09Znx8NTEyMj09PWY/byo9Mjo1MTI1IT09ZiYmNTEyNCE9PWZ8fChvKj00KSkpLGkoaCxlLHIsbixhLG8sZil9ZWxzZSBjKCksaC5wcmltVHlwZT00LGgudmVydENvdW50PTAsaC50eXBlPTUxMjE7cmV0dXJuIHN9dmFyIGM9ci5jcmVhdGUobnVsbCwzNDk2MywhMCksaD1uZXcgYShjLl9idWZmZXIpO3JldHVybiBuLmVsZW1lbnRzQ291bnQrKyxzKHQpLHMuX3JlZ2xUeXBlPSJlbGVtZW50cyIscy5fZWxlbWVudHM9aCxzLnN1YmRhdGE9ZnVuY3Rpb24odCxlKXtyZXR1cm4gYy5zdWJkYXRhKHQsZSksc30scy5kZXN0cm95PWZ1bmN0aW9uKCl7byhoKX0sc30sY3JlYXRlU3RyZWFtOmZ1bmN0aW9uKHQpe3ZhciBlPWgucG9wKCk7cmV0dXJuIGV8fChlPW5ldyBhKHIuY3JlYXRlKG51bGwsMzQ5NjMsITAsITEpLl9idWZmZXIpKSxpKGUsdCwzNTA0MCwtMSwtMSwwLDApLGV9LGRlc3Ryb3lTdHJlYW06ZnVuY3Rpb24odCl7aC5wdXNoKHQpfSxnZXRFbGVtZW50czpmdW5jdGlvbih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdCYmdC5fZWxlbWVudHMgaW5zdGFuY2VvZiBhP3QuX2VsZW1lbnRzOm51bGx9LGNsZWFyOmZ1bmN0aW9uKCl7WChzKS5mb3JFYWNoKG8pfX19ZnVuY3Rpb24gZyh0KXtmb3IodmFyIGU9Ry5hbGxvY1R5cGUoNTEyMyx0Lmxlbmd0aCkscj0wO3I8dC5sZW5ndGg7KytyKWlmKGlzTmFOKHRbcl0pKWVbcl09NjU1MzU7ZWxzZSBpZigxLzA9PT10W3JdKWVbcl09MzE3NDQ7ZWxzZSBpZigtMS8wPT09dFtyXSllW3JdPTY0NTEyO2Vsc2V7bnRbMF09dFtyXTt2YXIgbj0oaT1hdFswXSk+Pj4zMTw8MTUsYT0oaTw8MT4+PjI0KS0xMjcsaT1pPj4xMyYxMDIzO2Vbcl09LTI0PmE/bjotMTQ+YT9uKyhpKzEwMjQ+Pi0xNC1hKToxNTxhP24rMzE3NDQ6bisoYSsxNTw8MTApK2l9cmV0dXJuIGV9ZnVuY3Rpb24gdih0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KXx8Vyh0KX1mdW5jdGlvbiBtKHQpe3JldHVybiJbb2JqZWN0ICIrdCsiXSJ9ZnVuY3Rpb24geSh0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KSYmKDA9PT10Lmxlbmd0aHx8Im51bWJlciI9PXR5cGVvZiB0WzBdKX1mdW5jdGlvbiB4KHQpe3JldHVybiEoIUFycmF5LmlzQXJyYXkodCl8fDA9PT10Lmxlbmd0aHx8IXYodFswXSkpfWZ1bmN0aW9uIGIodCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1mdW5jdGlvbiBfKHQpe2lmKCF0KXJldHVybiExO3ZhciBlPWIodCk7cmV0dXJuIDA8PXB0LmluZGV4T2YoZSl8fCh5KHQpfHx4KHQpfHxsKHQpKX1mdW5jdGlvbiB3KHQsZSl7MzYxOTM9PT10LnR5cGU/KHQuZGF0YT1nKGUpLEcuZnJlZVR5cGUoZSkpOnQuZGF0YT1lfWZ1bmN0aW9uIGsodCxlLHIsbixhLGkpe2lmKHQ9InVuZGVmaW5lZCIhPXR5cGVvZiBndFt0XT9ndFt0XTpzdFt0XSpkdFtlXSxpJiYodCo9NiksYSl7Zm9yKG49MDsxPD1yOyluKz10KnIqcixyLz0yO3JldHVybiBufXJldHVybiB0KnIqbn1mdW5jdGlvbiBUKHQsZSxyLG4sYSxpLG8pe2Z1bmN0aW9uIHMoKXt0aGlzLmZvcm1hdD10aGlzLmludGVybmFsZm9ybWF0PTY0MDgsdGhpcy50eXBlPTUxMjEsdGhpcy5mbGlwWT10aGlzLnByZW11bHRpcGx5QWxwaGE9dGhpcy5jb21wcmVzc2VkPSExLHRoaXMudW5wYWNrQWxpZ25tZW50PTEsdGhpcy5jb2xvclNwYWNlPTM3NDQ0LHRoaXMuY2hhbm5lbHM9dGhpcy5oZWlnaHQ9dGhpcy53aWR0aD0wfWZ1bmN0aW9uIGModCxlKXt0LmludGVybmFsZm9ybWF0PWUuaW50ZXJuYWxmb3JtYXQsdC5mb3JtYXQ9ZS5mb3JtYXQsdC50eXBlPWUudHlwZSx0LmNvbXByZXNzZWQ9ZS5jb21wcmVzc2VkLHQucHJlbXVsdGlwbHlBbHBoYT1lLnByZW11bHRpcGx5QWxwaGEsdC5mbGlwWT1lLmZsaXBZLHQudW5wYWNrQWxpZ25tZW50PWUudW5wYWNrQWxpZ25tZW50LHQuY29sb3JTcGFjZT1lLmNvbG9yU3BhY2UsdC53aWR0aD1lLndpZHRoLHQuaGVpZ2h0PWUuaGVpZ2h0LHQuY2hhbm5lbHM9ZS5jaGFubmVsc31mdW5jdGlvbiB1KHQsZSl7aWYoIm9iamVjdCI9PXR5cGVvZiBlJiZlKXsicHJlbXVsdGlwbHlBbHBoYSJpbiBlJiYodC5wcmVtdWx0aXBseUFscGhhPWUucHJlbXVsdGlwbHlBbHBoYSksImZsaXBZImluIGUmJih0LmZsaXBZPWUuZmxpcFkpLCJhbGlnbm1lbnQiaW4gZSYmKHQudW5wYWNrQWxpZ25tZW50PWUuYWxpZ25tZW50KSwiY29sb3JTcGFjZSJpbiBlJiYodC5jb2xvclNwYWNlPXFbZS5jb2xvclNwYWNlXSksInR5cGUiaW4gZSYmKHQudHlwZT1IW2UudHlwZV0pO3ZhciByPXQud2lkdGgsbj10LmhlaWdodCxhPXQuY2hhbm5lbHMsaT0hMTsic2hhcGUiaW4gZT8ocj1lLnNoYXBlWzBdLG49ZS5zaGFwZVsxXSwzPT09ZS5zaGFwZS5sZW5ndGgmJihhPWUuc2hhcGVbMl0saT0hMCkpOigicmFkaXVzImluIGUmJihyPW49ZS5yYWRpdXMpLCJ3aWR0aCJpbiBlJiYocj1lLndpZHRoKSwiaGVpZ2h0ImluIGUmJihuPWUuaGVpZ2h0KSwiY2hhbm5lbHMiaW4gZSYmKGE9ZS5jaGFubmVscyxpPSEwKSksdC53aWR0aD0wfHIsdC5oZWlnaHQ9MHxuLHQuY2hhbm5lbHM9MHxhLHI9ITEsImZvcm1hdCJpbiBlJiYocj1lLmZvcm1hdCxuPXQuaW50ZXJuYWxmb3JtYXQ9WVtyXSx0LmZvcm1hdD1wdFtuXSxyIGluIEgmJiEoInR5cGUiaW4gZSkmJih0LnR5cGU9SFtyXSksciBpbiBLJiYodC5jb21wcmVzc2VkPSEwKSxyPSEwKSwhaSYmcj90LmNoYW5uZWxzPXN0W3QuZm9ybWF0XTppJiYhciYmdC5jaGFubmVscyE9PW90W3QuZm9ybWF0XSYmKHQuZm9ybWF0PXQuaW50ZXJuYWxmb3JtYXQ9b3RbdC5jaGFubmVsc10pfX1mdW5jdGlvbiBoKGUpe3QucGl4ZWxTdG9yZWkoMzc0NDAsZS5mbGlwWSksdC5waXhlbFN0b3JlaSgzNzQ0MSxlLnByZW11bHRpcGx5QWxwaGEpLHQucGl4ZWxTdG9yZWkoMzc0NDMsZS5jb2xvclNwYWNlKSx0LnBpeGVsU3RvcmVpKDMzMTcsZS51bnBhY2tBbGlnbm1lbnQpfWZ1bmN0aW9uIGYoKXtzLmNhbGwodGhpcyksdGhpcy55T2Zmc2V0PXRoaXMueE9mZnNldD0wLHRoaXMuZGF0YT1udWxsLHRoaXMubmVlZHNGcmVlPSExLHRoaXMuZWxlbWVudD1udWxsLHRoaXMubmVlZHNDb3B5PSExfWZ1bmN0aW9uIHAodCxlKXt2YXIgcj1udWxsO2lmKF8oZSk/cj1lOmUmJih1KHQsZSksIngiaW4gZSYmKHQueE9mZnNldD0wfGUueCksInkiaW4gZSYmKHQueU9mZnNldD0wfGUueSksXyhlLmRhdGEpJiYocj1lLmRhdGEpKSxlLmNvcHkpe3ZhciBuPWEudmlld3BvcnRXaWR0aCxpPWEudmlld3BvcnRIZWlnaHQ7dC53aWR0aD10LndpZHRofHxuLXQueE9mZnNldCx0LmhlaWdodD10LmhlaWdodHx8aS10LnlPZmZzZXQsdC5uZWVkc0NvcHk9ITB9ZWxzZSBpZihyKXtpZihXKHIpKXQuY2hhbm5lbHM9dC5jaGFubmVsc3x8NCx0LmRhdGE9ciwidHlwZSJpbiBlfHw1MTIxIT09dC50eXBlfHwodC50eXBlPTB8SltPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocildKTtlbHNlIGlmKHkocikpe3N3aXRjaCh0LmNoYW5uZWxzPXQuY2hhbm5lbHN8fDQsaT0obj1yKS5sZW5ndGgsdC50eXBlKXtjYXNlIDUxMjE6Y2FzZSA1MTIzOmNhc2UgNTEyNTpjYXNlIDUxMjY6KGk9Ry5hbGxvY1R5cGUodC50eXBlLGkpKS5zZXQobiksdC5kYXRhPWk7YnJlYWs7Y2FzZSAzNjE5Mzp0LmRhdGE9ZyhuKX10LmFsaWdubWVudD0xLHQubmVlZHNGcmVlPSEwfWVsc2UgaWYobChyKSl7bj1yLmRhdGEsQXJyYXkuaXNBcnJheShuKXx8NTEyMSE9PXQudHlwZXx8KHQudHlwZT0wfEpbT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG4pXSk7aT1yLnNoYXBlO3ZhciBvLHMsYyxoLGY9ci5zdHJpZGU7Mz09PWkubGVuZ3RoPyhjPWlbMl0saD1mWzJdKTpoPWM9MSxvPWlbMF0scz1pWzFdLGk9ZlswXSxmPWZbMV0sdC5hbGlnbm1lbnQ9MSx0LndpZHRoPW8sdC5oZWlnaHQ9cyx0LmNoYW5uZWxzPWMsdC5mb3JtYXQ9dC5pbnRlcm5hbGZvcm1hdD1vdFtjXSx0Lm5lZWRzRnJlZT0hMCxvPWgscj1yLm9mZnNldCxjPXQud2lkdGgsaD10LmhlaWdodCxzPXQuY2hhbm5lbHM7Zm9yKHZhciBwPUcuYWxsb2NUeXBlKDM2MTkzPT09dC50eXBlPzUxMjY6dC50eXBlLGMqaCpzKSxkPTAsbT0wO208aDsrK20pZm9yKHZhciBrPTA7azxjOysraylmb3IodmFyIFQ9MDtUPHM7KytUKXBbZCsrXT1uW2kqaytmKm0rbypUK3JdO3codCxwKX1lbHNlIGlmKGIocik9PT1sdHx8YihyKT09PWN0KWIocik9PT1sdD90LmVsZW1lbnQ9cjp0LmVsZW1lbnQ9ci5jYW52YXMsdC53aWR0aD10LmVsZW1lbnQud2lkdGgsdC5oZWlnaHQ9dC5lbGVtZW50LmhlaWdodCx0LmNoYW5uZWxzPTQ7ZWxzZSBpZihiKHIpPT09dXQpdC5lbGVtZW50PXIsdC53aWR0aD1yLndpZHRoLHQuaGVpZ2h0PXIuaGVpZ2h0LHQuY2hhbm5lbHM9NDtlbHNlIGlmKGIocik9PT1odCl0LmVsZW1lbnQ9cix0LndpZHRoPXIubmF0dXJhbFdpZHRoLHQuaGVpZ2h0PXIubmF0dXJhbEhlaWdodCx0LmNoYW5uZWxzPTQ7ZWxzZSBpZihiKHIpPT09ZnQpdC5lbGVtZW50PXIsdC53aWR0aD1yLnZpZGVvV2lkdGgsdC5oZWlnaHQ9ci52aWRlb0hlaWdodCx0LmNoYW5uZWxzPTQ7ZWxzZSBpZih4KHIpKXtmb3Iobj10LndpZHRofHxyWzBdLmxlbmd0aCxpPXQuaGVpZ2h0fHxyLmxlbmd0aCxmPXQuY2hhbm5lbHMsZj12KHJbMF1bMF0pP2Z8fHJbMF1bMF0ubGVuZ3RoOmZ8fDEsbz1aLnNoYXBlKHIpLGM9MSxoPTA7aDxvLmxlbmd0aDsrK2gpYyo9b1toXTtjPUcuYWxsb2NUeXBlKDM2MTkzPT09dC50eXBlPzUxMjY6dC50eXBlLGMpLFouZmxhdHRlbihyLG8sIiIsYyksdyh0LGMpLHQuYWxpZ25tZW50PTEsdC53aWR0aD1uLHQuaGVpZ2h0PWksdC5jaGFubmVscz1mLHQuZm9ybWF0PXQuaW50ZXJuYWxmb3JtYXQ9b3RbZl0sdC5uZWVkc0ZyZWU9ITB9fWVsc2UgdC53aWR0aD10LndpZHRofHwxLHQuaGVpZ2h0PXQuaGVpZ2h0fHwxLHQuY2hhbm5lbHM9dC5jaGFubmVsc3x8NH1mdW5jdGlvbiBkKGUscixhLGksbyl7dmFyIHM9ZS5lbGVtZW50LGw9ZS5kYXRhLGM9ZS5pbnRlcm5hbGZvcm1hdCx1PWUuZm9ybWF0LGY9ZS50eXBlLHA9ZS53aWR0aCxkPWUuaGVpZ2h0O2goZSkscz90LnRleFN1YkltYWdlMkQocixvLGEsaSx1LGYscyk6ZS5jb21wcmVzc2VkP3QuY29tcHJlc3NlZFRleFN1YkltYWdlMkQocixvLGEsaSxjLHAsZCxsKTplLm5lZWRzQ29weT8obigpLHQuY29weVRleFN1YkltYWdlMkQocixvLGEsaSxlLnhPZmZzZXQsZS55T2Zmc2V0LHAsZCkpOnQudGV4U3ViSW1hZ2UyRChyLG8sYSxpLHAsZCx1LGYsbCl9ZnVuY3Rpb24gbSgpe3JldHVybiBkdC5wb3AoKXx8bmV3IGZ9ZnVuY3Rpb24gVCh0KXt0Lm5lZWRzRnJlZSYmRy5mcmVlVHlwZSh0LmRhdGEpLGYuY2FsbCh0KSxkdC5wdXNoKHQpfWZ1bmN0aW9uIE0oKXtzLmNhbGwodGhpcyksdGhpcy5nZW5NaXBtYXBzPSExLHRoaXMubWlwbWFwSGludD00MzUyLHRoaXMubWlwbWFzaz0wLHRoaXMuaW1hZ2VzPUFycmF5KDE2KX1mdW5jdGlvbiBBKHQsZSxyKXt2YXIgbj10LmltYWdlc1swXT1tKCk7dC5taXBtYXNrPTEsbi53aWR0aD10LndpZHRoPWUsbi5oZWlnaHQ9dC5oZWlnaHQ9cixuLmNoYW5uZWxzPXQuY2hhbm5lbHM9NH1mdW5jdGlvbiBTKHQsZSl7dmFyIHI9bnVsbDtpZihfKGUpKWMocj10LmltYWdlc1swXT1tKCksdCkscChyLGUpLHQubWlwbWFzaz0xO2Vsc2UgaWYodSh0LGUpLEFycmF5LmlzQXJyYXkoZS5taXBtYXApKWZvcih2YXIgbj1lLm1pcG1hcCxhPTA7YTxuLmxlbmd0aDsrK2EpYyhyPXQuaW1hZ2VzW2FdPW0oKSx0KSxyLndpZHRoPj49YSxyLmhlaWdodD4+PWEscChyLG5bYV0pLHQubWlwbWFza3w9MTw8YTtlbHNlIGMocj10LmltYWdlc1swXT1tKCksdCkscChyLGUpLHQubWlwbWFzaz0xO2ModCx0LmltYWdlc1swXSl9ZnVuY3Rpb24gRShlLHIpe2Zvcih2YXIgYT1lLmltYWdlcyxpPTA7aTxhLmxlbmd0aCYmYVtpXTsrK2kpe3ZhciBvPWFbaV0scz1yLGw9aSxjPW8uZWxlbWVudCx1PW8uZGF0YSxmPW8uaW50ZXJuYWxmb3JtYXQscD1vLmZvcm1hdCxkPW8udHlwZSxnPW8ud2lkdGgsdj1vLmhlaWdodCxtPW8uY2hhbm5lbHM7aChvKSxjP3QudGV4SW1hZ2UyRChzLGwscCxwLGQsYyk6by5jb21wcmVzc2VkP3QuY29tcHJlc3NlZFRleEltYWdlMkQocyxsLGYsZyx2LDAsdSk6by5uZWVkc0NvcHk/KG4oKSx0LmNvcHlUZXhJbWFnZTJEKHMsbCxwLG8ueE9mZnNldCxvLnlPZmZzZXQsZyx2LDApKTooKG89IXUpJiYodT1HLnplcm8uYWxsb2NUeXBlKGQsZyp2Km0pKSx0LnRleEltYWdlMkQocyxsLHAsZyx2LDAscCxkLHUpLG8mJnUmJkcuemVyby5mcmVlVHlwZSh1KSl9fWZ1bmN0aW9uIEwoKXt2YXIgdD1ndC5wb3AoKXx8bmV3IE07cy5jYWxsKHQpO2Zvcih2YXIgZT10Lm1pcG1hc2s9MDsxNj5lOysrZSl0LmltYWdlc1tlXT1udWxsO3JldHVybiB0fWZ1bmN0aW9uIEModCl7Zm9yKHZhciBlPXQuaW1hZ2VzLHI9MDtyPGUubGVuZ3RoOysrcillW3JdJiZUKGVbcl0pLGVbcl09bnVsbDtndC5wdXNoKHQpfWZ1bmN0aW9uIFAoKXt0aGlzLm1hZ0ZpbHRlcj10aGlzLm1pbkZpbHRlcj05NzI4LHRoaXMud3JhcFQ9dGhpcy53cmFwUz0zMzA3MSx0aGlzLmFuaXNvdHJvcGljPTEsdGhpcy5nZW5NaXBtYXBzPSExLHRoaXMubWlwbWFwSGludD00MzUyfWZ1bmN0aW9uIE8odCxlKXsibWluImluIGUmJih0Lm1pbkZpbHRlcj1VW2UubWluXSwwPD1pdC5pbmRleE9mKHQubWluRmlsdGVyKSYmISgiZmFjZXMiaW4gZSkmJih0Lmdlbk1pcG1hcHM9ITApKSwibWFnImluIGUmJih0Lm1hZ0ZpbHRlcj1WW2UubWFnXSk7dmFyIHI9dC53cmFwUyxuPXQud3JhcFQ7aWYoIndyYXAiaW4gZSl7dmFyIGE9ZS53cmFwOyJzdHJpbmciPT10eXBlb2YgYT9yPW49TlthXTpBcnJheS5pc0FycmF5KGEpJiYocj1OW2FbMF1dLG49TlthWzFdXSl9ZWxzZSJ3cmFwUyJpbiBlJiYocj1OW2Uud3JhcFNdKSwid3JhcFQiaW4gZSYmKG49TltlLndyYXBUXSk7aWYodC53cmFwUz1yLHQud3JhcFQ9biwiYW5pc290cm9waWMiaW4gZSYmKHQuYW5pc290cm9waWM9ZS5hbmlzb3Ryb3BpYyksIm1pcG1hcCJpbiBlKXtzd2l0Y2gocj0hMSx0eXBlb2YgZS5taXBtYXApe2Nhc2Uic3RyaW5nIjp0Lm1pcG1hcEhpbnQ9QltlLm1pcG1hcF0scj10Lmdlbk1pcG1hcHM9ITA7YnJlYWs7Y2FzZSJib29sZWFuIjpyPXQuZ2VuTWlwbWFwcz1lLm1pcG1hcDticmVhaztjYXNlIm9iamVjdCI6dC5nZW5NaXBtYXBzPSExLHI9ITB9IXJ8fCJtaW4iaW4gZXx8KHQubWluRmlsdGVyPTk5ODQpfX1mdW5jdGlvbiB6KHIsbil7dC50ZXhQYXJhbWV0ZXJpKG4sMTAyNDEsci5taW5GaWx0ZXIpLHQudGV4UGFyYW1ldGVyaShuLDEwMjQwLHIubWFnRmlsdGVyKSx0LnRleFBhcmFtZXRlcmkobiwxMDI0MixyLndyYXBTKSx0LnRleFBhcmFtZXRlcmkobiwxMDI0MyxyLndyYXBUKSxlLmV4dF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyYmdC50ZXhQYXJhbWV0ZXJpKG4sMzQwNDYsci5hbmlzb3Ryb3BpYyksci5nZW5NaXBtYXBzJiYodC5oaW50KDMzMTcwLHIubWlwbWFwSGludCksdC5nZW5lcmF0ZU1pcG1hcChuKSl9ZnVuY3Rpb24gSShlKXtzLmNhbGwodGhpcyksdGhpcy5taXBtYXNrPTAsdGhpcy5pbnRlcm5hbGZvcm1hdD02NDA4LHRoaXMuaWQ9dnQrKyx0aGlzLnJlZkNvdW50PTEsdGhpcy50YXJnZXQ9ZSx0aGlzLnRleHR1cmU9dC5jcmVhdGVUZXh0dXJlKCksdGhpcy51bml0PS0xLHRoaXMuYmluZENvdW50PTAsdGhpcy50ZXhJbmZvPW5ldyBQLG8ucHJvZmlsZSYmKHRoaXMuc3RhdHM9e3NpemU6MH0pfWZ1bmN0aW9uIEQoZSl7dC5hY3RpdmVUZXh0dXJlKDMzOTg0KSx0LmJpbmRUZXh0dXJlKGUudGFyZ2V0LGUudGV4dHVyZSl9ZnVuY3Rpb24gUigpe3ZhciBlPXh0WzBdO2U/dC5iaW5kVGV4dHVyZShlLnRhcmdldCxlLnRleHR1cmUpOnQuYmluZFRleHR1cmUoMzU1MyxudWxsKX1mdW5jdGlvbiBGKGUpe3ZhciByPWUudGV4dHVyZSxuPWUudW5pdCxhPWUudGFyZ2V0OzA8PW4mJih0LmFjdGl2ZVRleHR1cmUoMzM5ODQrbiksdC5iaW5kVGV4dHVyZShhLG51bGwpLHh0W25dPW51bGwpLHQuZGVsZXRlVGV4dHVyZShyKSxlLnRleHR1cmU9bnVsbCxlLnBhcmFtcz1udWxsLGUucGl4ZWxzPW51bGwsZS5yZWZDb3VudD0wLGRlbGV0ZSBtdFtlLmlkXSxpLnRleHR1cmVDb3VudC0tfXZhciBCPXsiZG9uJ3QgY2FyZSI6NDM1MiwiZG9udCBjYXJlIjo0MzUyLG5pY2U6NDM1NCxmYXN0OjQzNTN9LE49e3JlcGVhdDoxMDQ5NyxjbGFtcDozMzA3MSxtaXJyb3I6MzM2NDh9LFY9e25lYXJlc3Q6OTcyOCxsaW5lYXI6OTcyOX0sVT1qKHttaXBtYXA6OTk4NywibmVhcmVzdCBtaXBtYXAgbmVhcmVzdCI6OTk4NCwibGluZWFyIG1pcG1hcCBuZWFyZXN0Ijo5OTg1LCJuZWFyZXN0IG1pcG1hcCBsaW5lYXIiOjk5ODYsImxpbmVhciBtaXBtYXAgbGluZWFyIjo5OTg3fSxWKSxxPXtub25lOjAsYnJvd3NlcjozNzQ0NH0sSD17dWludDg6NTEyMSxyZ2JhNDozMjgxOSxyZ2I1NjU6MzM2MzUsInJnYjUgYTEiOjMyODIwfSxZPXthbHBoYTo2NDA2LGx1bWluYW5jZTo2NDA5LCJsdW1pbmFuY2UgYWxwaGEiOjY0MTAscmdiOjY0MDcscmdiYTo2NDA4LHJnYmE0OjMyODU0LCJyZ2I1IGExIjozMjg1NSxyZ2I1NjU6MzYxOTR9LEs9e307ZS5leHRfc3JnYiYmKFkuc3JnYj0zNTkwNCxZLnNyZ2JhPTM1OTA2KSxlLm9lc190ZXh0dXJlX2Zsb2F0JiYoSC5mbG9hdDMyPUguZmxvYXQ9NTEyNiksZS5vZXNfdGV4dHVyZV9oYWxmX2Zsb2F0JiYoSC5mbG9hdDE2PUhbImhhbGYgZmxvYXQiXT0zNjE5MyksZS53ZWJnbF9kZXB0aF90ZXh0dXJlJiYoaihZLHtkZXB0aDo2NDAyLCJkZXB0aCBzdGVuY2lsIjozNDA0MX0pLGooSCx7dWludDE2OjUxMjMsdWludDMyOjUxMjUsImRlcHRoIHN0ZW5jaWwiOjM0MDQyfSkpLGUud2ViZ2xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMmJmooSyx7InJnYiBzM3RjIGR4dDEiOjMzNzc2LCJyZ2JhIHMzdGMgZHh0MSI6MzM3NzcsInJnYmEgczN0YyBkeHQzIjozMzc3OCwicmdiYSBzM3RjIGR4dDUiOjMzNzc5fSksZS53ZWJnbF9jb21wcmVzc2VkX3RleHR1cmVfYXRjJiZqKEsseyJyZ2IgYXRjIjozNTk4NiwicmdiYSBhdGMgZXhwbGljaXQgYWxwaGEiOjM1OTg3LCJyZ2JhIGF0YyBpbnRlcnBvbGF0ZWQgYWxwaGEiOjM0Nzk4fSksZS53ZWJnbF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMmJmooSyx7InJnYiBwdnJ0YyA0YnBwdjEiOjM1ODQwLCJyZ2IgcHZydGMgMmJwcHYxIjozNTg0MSwicmdiYSBwdnJ0YyA0YnBwdjEiOjM1ODQyLCJyZ2JhIHB2cnRjIDJicHB2MSI6MzU4NDN9KSxlLndlYmdsX2NvbXByZXNzZWRfdGV4dHVyZV9ldGMxJiYoS1sicmdiIGV0YzEiXT0zNjE5Nik7dmFyIFE9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodC5nZXRQYXJhbWV0ZXIoMzQ0NjcpKTtPYmplY3Qua2V5cyhLKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPUtbdF07MDw9US5pbmRleE9mKGUpJiYoWVt0XT1lKX0pO3ZhciAkPU9iamVjdC5rZXlzKFkpO3IudGV4dHVyZUZvcm1hdHM9JDt2YXIgdHQ9W107T2JqZWN0LmtleXMoWSkuZm9yRWFjaChmdW5jdGlvbih0KXt0dFtZW3RdXT10fSk7dmFyIGV0PVtdO09iamVjdC5rZXlzKEgpLmZvckVhY2goZnVuY3Rpb24odCl7ZXRbSFt0XV09dH0pO3ZhciBydD1bXTtPYmplY3Qua2V5cyhWKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3J0W1ZbdF1dPXR9KTt2YXIgbnQ9W107T2JqZWN0LmtleXMoVSkuZm9yRWFjaChmdW5jdGlvbih0KXtudFtVW3RdXT10fSk7dmFyIGF0PVtdO09iamVjdC5rZXlzKE4pLmZvckVhY2goZnVuY3Rpb24odCl7YXRbTlt0XV09dH0pO3ZhciBwdD0kLnJlZHVjZShmdW5jdGlvbih0LGUpe3ZhciByPVlbZV07cmV0dXJuIDY0MDk9PT1yfHw2NDA2PT09cnx8NjQwOT09PXJ8fDY0MTA9PT1yfHw2NDAyPT09cnx8MzQwNDE9PT1yP3Rbcl09cjozMjg1NT09PXJ8fDA8PWUuaW5kZXhPZigicmdiYSIpP3Rbcl09NjQwODp0W3JdPTY0MDcsdH0se30pLGR0PVtdLGd0PVtdLHZ0PTAsbXQ9e30seXQ9ci5tYXhUZXh0dXJlVW5pdHMseHQ9QXJyYXkoeXQpLm1hcChmdW5jdGlvbigpe3JldHVybiBudWxsfSk7cmV0dXJuIGooSS5wcm90b3R5cGUse2JpbmQ6ZnVuY3Rpb24oKXt0aGlzLmJpbmRDb3VudCs9MTt2YXIgZT10aGlzLnVuaXQ7aWYoMD5lKXtmb3IodmFyIHI9MDtyPHl0Oysrcil7dmFyIG49eHRbcl07aWYobil7aWYoMDxuLmJpbmRDb3VudCljb250aW51ZTtuLnVuaXQ9LTF9eHRbcl09dGhpcyxlPXI7YnJlYWt9by5wcm9maWxlJiZpLm1heFRleHR1cmVVbml0czxlKzEmJihpLm1heFRleHR1cmVVbml0cz1lKzEpLHRoaXMudW5pdD1lLHQuYWN0aXZlVGV4dHVyZSgzMzk4NCtlKSx0LmJpbmRUZXh0dXJlKHRoaXMudGFyZ2V0LHRoaXMudGV4dHVyZSl9cmV0dXJuIGV9LHVuYmluZDpmdW5jdGlvbigpey0tdGhpcy5iaW5kQ291bnR9LGRlY1JlZjpmdW5jdGlvbigpezA+PS0tdGhpcy5yZWZDb3VudCYmRih0aGlzKX19KSxvLnByb2ZpbGUmJihpLmdldFRvdGFsVGV4dHVyZVNpemU9ZnVuY3Rpb24oKXt2YXIgdD0wO3JldHVybiBPYmplY3Qua2V5cyhtdCkuZm9yRWFjaChmdW5jdGlvbihlKXt0Kz1tdFtlXS5zdGF0cy5zaXplfSksdH0pLHtjcmVhdGUyRDpmdW5jdGlvbihlLHIpe2Z1bmN0aW9uIG4odCxlKXt2YXIgcj1hLnRleEluZm87UC5jYWxsKHIpO3ZhciBpPUwoKTtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQ/QShpLDB8dCwibnVtYmVyIj09dHlwZW9mIGU/MHxlOjB8dCk6dD8oTyhyLHQpLFMoaSx0KSk6QShpLDEsMSksci5nZW5NaXBtYXBzJiYoaS5taXBtYXNrPShpLndpZHRoPDwxKS0xKSxhLm1pcG1hc2s9aS5taXBtYXNrLGMoYSxpKSxhLmludGVybmFsZm9ybWF0PWkuaW50ZXJuYWxmb3JtYXQsbi53aWR0aD1pLndpZHRoLG4uaGVpZ2h0PWkuaGVpZ2h0LEQoYSksRShpLDM1NTMpLHoociwzNTUzKSxSKCksQyhpKSxvLnByb2ZpbGUmJihhLnN0YXRzLnNpemU9ayhhLmludGVybmFsZm9ybWF0LGEudHlwZSxpLndpZHRoLGkuaGVpZ2h0LHIuZ2VuTWlwbWFwcywhMSkpLG4uZm9ybWF0PXR0W2EuaW50ZXJuYWxmb3JtYXRdLG4udHlwZT1ldFthLnR5cGVdLG4ubWFnPXJ0W3IubWFnRmlsdGVyXSxuLm1pbj1udFtyLm1pbkZpbHRlcl0sbi53cmFwUz1hdFtyLndyYXBTXSxuLndyYXBUPWF0W3Iud3JhcFRdLG59dmFyIGE9bmV3IEkoMzU1Myk7cmV0dXJuIG10W2EuaWRdPWEsaS50ZXh0dXJlQ291bnQrKyxuKGUsciksbi5zdWJpbWFnZT1mdW5jdGlvbih0LGUscixpKXtlfD0wLHJ8PTAsaXw9MDt2YXIgbz1tKCk7cmV0dXJuIGMobyxhKSxvLndpZHRoPTAsby5oZWlnaHQ9MCxwKG8sdCksby53aWR0aD1vLndpZHRofHwoYS53aWR0aD4+aSktZSxvLmhlaWdodD1vLmhlaWdodHx8KGEuaGVpZ2h0Pj5pKS1yLEQoYSksZChvLDM1NTMsZSxyLGkpLFIoKSxUKG8pLG59LG4ucmVzaXplPWZ1bmN0aW9uKGUscil7dmFyIGk9MHxlLHM9MHxyfHxpO2lmKGk9PT1hLndpZHRoJiZzPT09YS5oZWlnaHQpcmV0dXJuIG47bi53aWR0aD1hLndpZHRoPWksbi5oZWlnaHQ9YS5oZWlnaHQ9cyxEKGEpO2Zvcih2YXIgbCxjPWEuY2hhbm5lbHMsdT1hLnR5cGUsaD0wO2EubWlwbWFzaz4+aDsrK2gpe3ZhciBmPWk+PmgscD1zPj5oO2lmKCFmfHwhcClicmVhaztsPUcuemVyby5hbGxvY1R5cGUodSxmKnAqYyksdC50ZXhJbWFnZTJEKDM1NTMsaCxhLmZvcm1hdCxmLHAsMCxhLmZvcm1hdCxhLnR5cGUsbCksbCYmRy56ZXJvLmZyZWVUeXBlKGwpfXJldHVybiBSKCksby5wcm9maWxlJiYoYS5zdGF0cy5zaXplPWsoYS5pbnRlcm5hbGZvcm1hdCxhLnR5cGUsaSxzLCExLCExKSksbn0sbi5fcmVnbFR5cGU9InRleHR1cmUyZCIsbi5fdGV4dHVyZT1hLG8ucHJvZmlsZSYmKG4uc3RhdHM9YS5zdGF0cyksbi5kZXN0cm95PWZ1bmN0aW9uKCl7YS5kZWNSZWYoKX0sbn0sY3JlYXRlQ3ViZTpmdW5jdGlvbihlLHIsbixhLHMsbCl7ZnVuY3Rpb24gaCh0LGUscixuLGEsaSl7dmFyIHMsbD1mLnRleEluZm87Zm9yKFAuY2FsbChsKSxzPTA7Nj5zOysrcylnW3NdPUwoKTtpZigibnVtYmVyIiE9dHlwZW9mIHQmJnQpe2lmKCJvYmplY3QiPT10eXBlb2YgdClpZihlKVMoZ1swXSx0KSxTKGdbMV0sZSksUyhnWzJdLHIpLFMoZ1szXSxuKSxTKGdbNF0sYSksUyhnWzVdLGkpO2Vsc2UgaWYoTyhsLHQpLHUoZix0KSwiZmFjZXMiaW4gdClmb3IodD10LmZhY2VzLHM9MDs2PnM7KytzKWMoZ1tzXSxmKSxTKGdbc10sdFtzXSk7ZWxzZSBmb3Iocz0wOzY+czsrK3MpUyhnW3NdLHQpfWVsc2UgZm9yKHQ9MHx0fHwxLHM9MDs2PnM7KytzKUEoZ1tzXSx0LHQpO2ZvcihjKGYsZ1swXSksZi5taXBtYXNrPWwuZ2VuTWlwbWFwcz8oZ1swXS53aWR0aDw8MSktMTpnWzBdLm1pcG1hc2ssZi5pbnRlcm5hbGZvcm1hdD1nWzBdLmludGVybmFsZm9ybWF0LGgud2lkdGg9Z1swXS53aWR0aCxoLmhlaWdodD1nWzBdLmhlaWdodCxEKGYpLHM9MDs2PnM7KytzKUUoZ1tzXSwzNDA2OStzKTtmb3IoeihsLDM0MDY3KSxSKCksby5wcm9maWxlJiYoZi5zdGF0cy5zaXplPWsoZi5pbnRlcm5hbGZvcm1hdCxmLnR5cGUsaC53aWR0aCxoLmhlaWdodCxsLmdlbk1pcG1hcHMsITApKSxoLmZvcm1hdD10dFtmLmludGVybmFsZm9ybWF0XSxoLnR5cGU9ZXRbZi50eXBlXSxoLm1hZz1ydFtsLm1hZ0ZpbHRlcl0saC5taW49bnRbbC5taW5GaWx0ZXJdLGgud3JhcFM9YXRbbC53cmFwU10saC53cmFwVD1hdFtsLndyYXBUXSxzPTA7Nj5zOysrcylDKGdbc10pO3JldHVybiBofXZhciBmPW5ldyBJKDM0MDY3KTttdFtmLmlkXT1mLGkuY3ViZUNvdW50Kys7dmFyIGc9QXJyYXkoNik7cmV0dXJuIGgoZSxyLG4sYSxzLGwpLGguc3ViaW1hZ2U9ZnVuY3Rpb24odCxlLHIsbixhKXtyfD0wLG58PTAsYXw9MDt2YXIgaT1tKCk7cmV0dXJuIGMoaSxmKSxpLndpZHRoPTAsaS5oZWlnaHQ9MCxwKGksZSksaS53aWR0aD1pLndpZHRofHwoZi53aWR0aD4+YSktcixpLmhlaWdodD1pLmhlaWdodHx8KGYuaGVpZ2h0Pj5hKS1uLEQoZiksZChpLDM0MDY5K3QscixuLGEpLFIoKSxUKGkpLGh9LGgucmVzaXplPWZ1bmN0aW9uKGUpe2lmKChlfD0wKSE9PWYud2lkdGgpe2gud2lkdGg9Zi53aWR0aD1lLGguaGVpZ2h0PWYuaGVpZ2h0PWUsRChmKTtmb3IodmFyIHI9MDs2PnI7KytyKWZvcih2YXIgbj0wO2YubWlwbWFzaz4+bjsrK24pdC50ZXhJbWFnZTJEKDM0MDY5K3IsbixmLmZvcm1hdCxlPj5uLGU+Pm4sMCxmLmZvcm1hdCxmLnR5cGUsbnVsbCk7cmV0dXJuIFIoKSxvLnByb2ZpbGUmJihmLnN0YXRzLnNpemU9ayhmLmludGVybmFsZm9ybWF0LGYudHlwZSxoLndpZHRoLGguaGVpZ2h0LCExLCEwKSksaH19LGguX3JlZ2xUeXBlPSJ0ZXh0dXJlQ3ViZSIsaC5fdGV4dHVyZT1mLG8ucHJvZmlsZSYmKGguc3RhdHM9Zi5zdGF0cyksaC5kZXN0cm95PWZ1bmN0aW9uKCl7Zi5kZWNSZWYoKX0saH0sY2xlYXI6ZnVuY3Rpb24oKXtmb3IodmFyIGU9MDtlPHl0OysrZSl0LmFjdGl2ZVRleHR1cmUoMzM5ODQrZSksdC5iaW5kVGV4dHVyZSgzNTUzLG51bGwpLHh0W2VdPW51bGw7WChtdCkuZm9yRWFjaChGKSxpLmN1YmVDb3VudD0wLGkudGV4dHVyZUNvdW50PTB9LGdldFRleHR1cmU6ZnVuY3Rpb24odCl7cmV0dXJuIG51bGx9LHJlc3RvcmU6ZnVuY3Rpb24oKXtmb3IodmFyIGU9MDtlPHl0OysrZSl7dmFyIHI9eHRbZV07ciYmKHIuYmluZENvdW50PTAsci51bml0PS0xLHh0W2VdPW51bGwpfVgobXQpLmZvckVhY2goZnVuY3Rpb24oZSl7ZS50ZXh0dXJlPXQuY3JlYXRlVGV4dHVyZSgpLHQuYmluZFRleHR1cmUoZS50YXJnZXQsZS50ZXh0dXJlKTtmb3IodmFyIHI9MDszMj5yOysrcilpZigwIT0oZS5taXBtYXNrJjE8PHIpKWlmKDM1NTM9PT1lLnRhcmdldCl0LnRleEltYWdlMkQoMzU1MyxyLGUuaW50ZXJuYWxmb3JtYXQsZS53aWR0aD4+cixlLmhlaWdodD4+ciwwLGUuaW50ZXJuYWxmb3JtYXQsZS50eXBlLG51bGwpO2Vsc2UgZm9yKHZhciBuPTA7Nj5uOysrbil0LnRleEltYWdlMkQoMzQwNjkrbixyLGUuaW50ZXJuYWxmb3JtYXQsZS53aWR0aD4+cixlLmhlaWdodD4+ciwwLGUuaW50ZXJuYWxmb3JtYXQsZS50eXBlLG51bGwpO3ooZS50ZXhJbmZvLGUudGFyZ2V0KX0pfX19ZnVuY3Rpb24gTSh0LGUscixuLGEsaSl7ZnVuY3Rpb24gbyh0LGUscil7dGhpcy50YXJnZXQ9dCx0aGlzLnRleHR1cmU9ZSx0aGlzLnJlbmRlcmJ1ZmZlcj1yO3ZhciBuPXQ9MDtlPyh0PWUud2lkdGgsbj1lLmhlaWdodCk6ciYmKHQ9ci53aWR0aCxuPXIuaGVpZ2h0KSx0aGlzLndpZHRoPXQsdGhpcy5oZWlnaHQ9bn1mdW5jdGlvbiBzKHQpe3QmJih0LnRleHR1cmUmJnQudGV4dHVyZS5fdGV4dHVyZS5kZWNSZWYoKSx0LnJlbmRlcmJ1ZmZlciYmdC5yZW5kZXJidWZmZXIuX3JlbmRlcmJ1ZmZlci5kZWNSZWYoKSl9ZnVuY3Rpb24gbCh0LGUscil7dCYmKHQudGV4dHVyZT90LnRleHR1cmUuX3RleHR1cmUucmVmQ291bnQrPTE6dC5yZW5kZXJidWZmZXIuX3JlbmRlcmJ1ZmZlci5yZWZDb3VudCs9MSl9ZnVuY3Rpb24gYyhlLHIpe3ImJihyLnRleHR1cmU/dC5mcmFtZWJ1ZmZlclRleHR1cmUyRCgzNjE2MCxlLHIudGFyZ2V0LHIudGV4dHVyZS5fdGV4dHVyZS50ZXh0dXJlLDApOnQuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoMzYxNjAsZSwzNjE2MSxyLnJlbmRlcmJ1ZmZlci5fcmVuZGVyYnVmZmVyLnJlbmRlcmJ1ZmZlcikpfWZ1bmN0aW9uIHUodCl7dmFyIGU9MzU1MyxyPW51bGwsbj1udWxsLGE9dDtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJihhPXQuZGF0YSwidGFyZ2V0ImluIHQmJihlPTB8dC50YXJnZXQpKSwidGV4dHVyZTJkIj09PSh0PWEuX3JlZ2xUeXBlKT9yPWE6InRleHR1cmVDdWJlIj09PXQ/cj1hOiJyZW5kZXJidWZmZXIiPT09dCYmKG49YSxlPTM2MTYxKSxuZXcgbyhlLHIsbil9ZnVuY3Rpb24gaCh0LGUscixpLHMpe3JldHVybiByPygodD1uLmNyZWF0ZTJEKHt3aWR0aDp0LGhlaWdodDplLGZvcm1hdDppLHR5cGU6c30pKS5fdGV4dHVyZS5yZWZDb3VudD0wLG5ldyBvKDM1NTMsdCxudWxsKSk6KCh0PWEuY3JlYXRlKHt3aWR0aDp0LGhlaWdodDplLGZvcm1hdDppfSkpLl9yZW5kZXJidWZmZXIucmVmQ291bnQ9MCxuZXcgbygzNjE2MSxudWxsLHQpKX1mdW5jdGlvbiBmKHQpe3JldHVybiB0JiYodC50ZXh0dXJlfHx0LnJlbmRlcmJ1ZmZlcil9ZnVuY3Rpb24gcCh0LGUscil7dCYmKHQudGV4dHVyZT90LnRleHR1cmUucmVzaXplKGUscik6dC5yZW5kZXJidWZmZXImJnQucmVuZGVyYnVmZmVyLnJlc2l6ZShlLHIpLHQud2lkdGg9ZSx0LmhlaWdodD1yKX1mdW5jdGlvbiBkKCl7dGhpcy5pZD1rKyssVFt0aGlzLmlkXT10aGlzLHRoaXMuZnJhbWVidWZmZXI9dC5jcmVhdGVGcmFtZWJ1ZmZlcigpLHRoaXMuaGVpZ2h0PXRoaXMud2lkdGg9MCx0aGlzLmNvbG9yQXR0YWNobWVudHM9W10sdGhpcy5kZXB0aFN0ZW5jaWxBdHRhY2htZW50PXRoaXMuc3RlbmNpbEF0dGFjaG1lbnQ9dGhpcy5kZXB0aEF0dGFjaG1lbnQ9bnVsbH1mdW5jdGlvbiBnKHQpe3QuY29sb3JBdHRhY2htZW50cy5mb3JFYWNoKHMpLHModC5kZXB0aEF0dGFjaG1lbnQpLHModC5zdGVuY2lsQXR0YWNobWVudCkscyh0LmRlcHRoU3RlbmNpbEF0dGFjaG1lbnQpfWZ1bmN0aW9uIHYoZSl7dC5kZWxldGVGcmFtZWJ1ZmZlcihlLmZyYW1lYnVmZmVyKSxlLmZyYW1lYnVmZmVyPW51bGwsaS5mcmFtZWJ1ZmZlckNvdW50LS0sZGVsZXRlIFRbZS5pZF19ZnVuY3Rpb24gbShlKXt2YXIgbjt0LmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCxlLmZyYW1lYnVmZmVyKTt2YXIgYT1lLmNvbG9yQXR0YWNobWVudHM7Zm9yKG49MDtuPGEubGVuZ3RoOysrbiljKDM2MDY0K24sYVtuXSk7Zm9yKG49YS5sZW5ndGg7bjxyLm1heENvbG9yQXR0YWNobWVudHM7KytuKXQuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAsMzYwNjQrbiwzNTUzLG51bGwsMCk7dC5mcmFtZWJ1ZmZlclRleHR1cmUyRCgzNjE2MCwzMzMwNiwzNTUzLG51bGwsMCksdC5mcmFtZWJ1ZmZlclRleHR1cmUyRCgzNjE2MCwzNjA5NiwzNTUzLG51bGwsMCksdC5mcmFtZWJ1ZmZlclRleHR1cmUyRCgzNjE2MCwzNjEyOCwzNTUzLG51bGwsMCksYygzNjA5NixlLmRlcHRoQXR0YWNobWVudCksYygzNjEyOCxlLnN0ZW5jaWxBdHRhY2htZW50KSxjKDMzMzA2LGUuZGVwdGhTdGVuY2lsQXR0YWNobWVudCksdC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKDM2MTYwKSx0LmlzQ29udGV4dExvc3QoKSx0LmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCx4Lm5leHQ/eC5uZXh0LmZyYW1lYnVmZmVyOm51bGwpLHguY3VyPXgubmV4dCx0LmdldEVycm9yKCl9ZnVuY3Rpb24geSh0LGUpe2Z1bmN0aW9uIHIodCxlKXt2YXIgYSxpPTAsbz0wLHM9ITAsYz0hMDthPW51bGw7dmFyIHA9ITAsZD0icmdiYSIsdj0idWludDgiLHk9MSx4PW51bGwsdz1udWxsLGs9bnVsbCxUPSExOyJudW1iZXIiPT10eXBlb2YgdD8oaT0wfHQsbz0wfGV8fGkpOnQ/KCJzaGFwZSJpbiB0PyhpPShvPXQuc2hhcGUpWzBdLG89b1sxXSk6KCJyYWRpdXMiaW4gdCYmKGk9bz10LnJhZGl1cyksIndpZHRoImluIHQmJihpPXQud2lkdGgpLCJoZWlnaHQiaW4gdCYmKG89dC5oZWlnaHQpKSwoImNvbG9yImluIHR8fCJjb2xvcnMiaW4gdCkmJihhPXQuY29sb3J8fHQuY29sb3JzLEFycmF5LmlzQXJyYXkoYSkpLGF8fCgiY29sb3JDb3VudCJpbiB0JiYoeT0wfHQuY29sb3JDb3VudCksImNvbG9yVGV4dHVyZSJpbiB0JiYocD0hIXQuY29sb3JUZXh0dXJlLGQ9InJnYmE0IiksImNvbG9yVHlwZSJpbiB0JiYodj10LmNvbG9yVHlwZSwhcCkmJigiaGFsZiBmbG9hdCI9PT12fHwiZmxvYXQxNiI9PT12P2Q9InJnYmExNmYiOiJmbG9hdCIhPT12JiYiZmxvYXQzMiIhPT12fHwoZD0icmdiYTMyZiIpKSwiY29sb3JGb3JtYXQiaW4gdCYmKGQ9dC5jb2xvckZvcm1hdCwwPD1iLmluZGV4T2YoZCk/cD0hMDowPD1fLmluZGV4T2YoZCkmJihwPSExKSkpLCgiZGVwdGhUZXh0dXJlImluIHR8fCJkZXB0aFN0ZW5jaWxUZXh0dXJlImluIHQpJiYoVD0hKCF0LmRlcHRoVGV4dHVyZSYmIXQuZGVwdGhTdGVuY2lsVGV4dHVyZSkpLCJkZXB0aCJpbiB0JiYoImJvb2xlYW4iPT10eXBlb2YgdC5kZXB0aD9zPXQuZGVwdGg6KHg9dC5kZXB0aCxjPSExKSksInN0ZW5jaWwiaW4gdCYmKCJib29sZWFuIj09dHlwZW9mIHQuc3RlbmNpbD9jPXQuc3RlbmNpbDoodz10LnN0ZW5jaWwscz0hMSkpLCJkZXB0aFN0ZW5jaWwiaW4gdCYmKCJib29sZWFuIj09dHlwZW9mIHQuZGVwdGhTdGVuY2lsP3M9Yz10LmRlcHRoU3RlbmNpbDooaz10LmRlcHRoU3RlbmNpbCxjPXM9ITEpKSk6aT1vPTE7dmFyIE09bnVsbCxBPW51bGwsUz1udWxsLEU9bnVsbDtpZihBcnJheS5pc0FycmF5KGEpKU09YS5tYXAodSk7ZWxzZSBpZihhKU09W3UoYSldO2Vsc2UgZm9yKE09QXJyYXkoeSksYT0wO2E8eTsrK2EpTVthXT1oKGksbyxwLGQsdik7Zm9yKGk9aXx8TVswXS53aWR0aCxvPW98fE1bMF0uaGVpZ2h0LHg/QT11KHgpOnMmJiFjJiYoQT1oKGksbyxULCJkZXB0aCIsInVpbnQzMiIpKSx3P1M9dSh3KTpjJiYhcyYmKFM9aChpLG8sITEsInN0ZW5jaWwiLCJ1aW50OCIpKSxrP0U9dShrKToheCYmIXcmJmMmJnMmJihFPWgoaSxvLFQsImRlcHRoIHN0ZW5jaWwiLCJkZXB0aCBzdGVuY2lsIikpLHM9bnVsbCxhPTA7YTxNLmxlbmd0aDsrK2EpbChNW2FdKSxNW2FdJiZNW2FdLnRleHR1cmUmJihjPXl0W01bYV0udGV4dHVyZS5fdGV4dHVyZS5mb3JtYXRdKnh0W01bYV0udGV4dHVyZS5fdGV4dHVyZS50eXBlXSxudWxsPT09cyYmKHM9YykpO3JldHVybiBsKEEpLGwoUyksbChFKSxnKG4pLG4ud2lkdGg9aSxuLmhlaWdodD1vLG4uY29sb3JBdHRhY2htZW50cz1NLG4uZGVwdGhBdHRhY2htZW50PUEsbi5zdGVuY2lsQXR0YWNobWVudD1TLG4uZGVwdGhTdGVuY2lsQXR0YWNobWVudD1FLHIuY29sb3I9TS5tYXAoZiksci5kZXB0aD1mKEEpLHIuc3RlbmNpbD1mKFMpLHIuZGVwdGhTdGVuY2lsPWYoRSksci53aWR0aD1uLndpZHRoLHIuaGVpZ2h0PW4uaGVpZ2h0LG0obikscn12YXIgbj1uZXcgZDtyZXR1cm4gaS5mcmFtZWJ1ZmZlckNvdW50Kysscih0LGUpLGoocix7cmVzaXplOmZ1bmN0aW9uKHQsZSl7dmFyIGE9TWF0aC5tYXgoMHx0LDEpLGk9TWF0aC5tYXgoMHxlfHxhLDEpO2lmKGE9PT1uLndpZHRoJiZpPT09bi5oZWlnaHQpcmV0dXJuIHI7Zm9yKHZhciBvPW4uY29sb3JBdHRhY2htZW50cyxzPTA7czxvLmxlbmd0aDsrK3MpcChvW3NdLGEsaSk7cmV0dXJuIHAobi5kZXB0aEF0dGFjaG1lbnQsYSxpKSxwKG4uc3RlbmNpbEF0dGFjaG1lbnQsYSxpKSxwKG4uZGVwdGhTdGVuY2lsQXR0YWNobWVudCxhLGkpLG4ud2lkdGg9ci53aWR0aD1hLG4uaGVpZ2h0PXIuaGVpZ2h0PWksbShuKSxyfSxfcmVnbFR5cGU6ImZyYW1lYnVmZmVyIixfZnJhbWVidWZmZXI6bixkZXN0cm95OmZ1bmN0aW9uKCl7dihuKSxnKG4pfSx1c2U6ZnVuY3Rpb24odCl7eC5zZXRGQk8oe2ZyYW1lYnVmZmVyOnJ9LHQpfX0pfXZhciB4PXtjdXI6bnVsbCxuZXh0Om51bGwsZGlydHk6ITEsc2V0RkJPOm51bGx9LGI9WyJyZ2JhIl0sXz1bInJnYmE0IiwicmdiNTY1IiwicmdiNSBhMSJdO2UuZXh0X3NyZ2ImJl8ucHVzaCgic3JnYmEiKSxlLmV4dF9jb2xvcl9idWZmZXJfaGFsZl9mbG9hdCYmXy5wdXNoKCJyZ2JhMTZmIiwicmdiMTZmIiksZS53ZWJnbF9jb2xvcl9idWZmZXJfZmxvYXQmJl8ucHVzaCgicmdiYTMyZiIpO3ZhciB3PVsidWludDgiXTtlLm9lc190ZXh0dXJlX2hhbGZfZmxvYXQmJncucHVzaCgiaGFsZiBmbG9hdCIsImZsb2F0MTYiKSxlLm9lc190ZXh0dXJlX2Zsb2F0JiZ3LnB1c2goImZsb2F0IiwiZmxvYXQzMiIpO3ZhciBrPTAsVD17fTtyZXR1cm4gaih4LHtnZXRGcmFtZWJ1ZmZlcjpmdW5jdGlvbih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdCYmImZyYW1lYnVmZmVyIj09PXQuX3JlZ2xUeXBlJiYodD10Ll9mcmFtZWJ1ZmZlcilpbnN0YW5jZW9mIGQ/dDpudWxsfSxjcmVhdGU6eSxjcmVhdGVDdWJlOmZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUodCl7dmFyIGEsaT17Y29sb3I6bnVsbH0sbz0wLHM9bnVsbDthPSJyZ2JhIjt2YXIgbD0idWludDgiLGM9MTtpZigibnVtYmVyIj09dHlwZW9mIHQ/bz0wfHQ6dD8oInNoYXBlImluIHQ/bz10LnNoYXBlWzBdOigicmFkaXVzImluIHQmJihvPTB8dC5yYWRpdXMpLCJ3aWR0aCJpbiB0P289MHx0LndpZHRoOiJoZWlnaHQiaW4gdCYmKG89MHx0LmhlaWdodCkpLCgiY29sb3IiaW4gdHx8ImNvbG9ycyJpbiB0KSYmKHM9dC5jb2xvcnx8dC5jb2xvcnMsQXJyYXkuaXNBcnJheShzKSksc3x8KCJjb2xvckNvdW50ImluIHQmJihjPTB8dC5jb2xvckNvdW50KSwiY29sb3JUeXBlImluIHQmJihsPXQuY29sb3JUeXBlKSwiY29sb3JGb3JtYXQiaW4gdCYmKGE9dC5jb2xvckZvcm1hdCkpLCJkZXB0aCJpbiB0JiYoaS5kZXB0aD10LmRlcHRoKSwic3RlbmNpbCJpbiB0JiYoaS5zdGVuY2lsPXQuc3RlbmNpbCksImRlcHRoU3RlbmNpbCJpbiB0JiYoaS5kZXB0aFN0ZW5jaWw9dC5kZXB0aFN0ZW5jaWwpKTpvPTEscylpZihBcnJheS5pc0FycmF5KHMpKWZvcih0PVtdLGE9MDthPHMubGVuZ3RoOysrYSl0W2FdPXNbYV07ZWxzZSB0PVtzXTtlbHNlIGZvcih0PUFycmF5KGMpLHM9e3JhZGl1czpvLGZvcm1hdDphLHR5cGU6bH0sYT0wO2E8YzsrK2EpdFthXT1uLmNyZWF0ZUN1YmUocyk7Zm9yKGkuY29sb3I9QXJyYXkodC5sZW5ndGgpLGE9MDthPHQubGVuZ3RoOysrYSljPXRbYV0sbz1vfHxjLndpZHRoLGkuY29sb3JbYV09e3RhcmdldDozNDA2OSxkYXRhOnRbYV19O2ZvcihhPTA7Nj5hOysrYSl7Zm9yKGM9MDtjPHQubGVuZ3RoOysrYylpLmNvbG9yW2NdLnRhcmdldD0zNDA2OSthOzA8YSYmKGkuZGVwdGg9clswXS5kZXB0aCxpLnN0ZW5jaWw9clswXS5zdGVuY2lsLGkuZGVwdGhTdGVuY2lsPXJbMF0uZGVwdGhTdGVuY2lsKSxyW2FdP3JbYV0oaSk6clthXT15KGkpfXJldHVybiBqKGUse3dpZHRoOm8saGVpZ2h0Om8sY29sb3I6dH0pfXZhciByPUFycmF5KDYpO3JldHVybiBlKHQpLGooZSx7ZmFjZXM6cixyZXNpemU6ZnVuY3Rpb24odCl7dmFyIG49MHx0O2lmKG49PT1lLndpZHRoKXJldHVybiBlO3ZhciBhPWUuY29sb3I7Zm9yKHQ9MDt0PGEubGVuZ3RoOysrdClhW3RdLnJlc2l6ZShuKTtmb3IodD0wOzY+dDsrK3Qpclt0XS5yZXNpemUobik7cmV0dXJuIGUud2lkdGg9ZS5oZWlnaHQ9bixlfSxfcmVnbFR5cGU6ImZyYW1lYnVmZmVyQ3ViZSIsZGVzdHJveTpmdW5jdGlvbigpe3IuZm9yRWFjaChmdW5jdGlvbih0KXt0LmRlc3Ryb3koKX0pfX0pfSxjbGVhcjpmdW5jdGlvbigpe1goVCkuZm9yRWFjaCh2KX0scmVzdG9yZTpmdW5jdGlvbigpe3guY3VyPW51bGwseC5uZXh0PW51bGwseC5kaXJ0eT0hMCxYKFQpLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5mcmFtZWJ1ZmZlcj10LmNyZWF0ZUZyYW1lYnVmZmVyKCksbShlKX0pfX0pfWZ1bmN0aW9uIEEoKXt0aGlzLnc9dGhpcy56PXRoaXMueT10aGlzLng9dGhpcy5zdGF0ZT0wLHRoaXMuYnVmZmVyPW51bGwsdGhpcy5zaXplPTAsdGhpcy5ub3JtYWxpemVkPSExLHRoaXMudHlwZT01MTI2LHRoaXMuZGl2aXNvcj10aGlzLnN0cmlkZT10aGlzLm9mZnNldD0wfWZ1bmN0aW9uIFModCxlLHIsbil7ZnVuY3Rpb24gYSh0LGUscixuKXt0aGlzLm5hbWU9dCx0aGlzLmlkPWUsdGhpcy5sb2NhdGlvbj1yLHRoaXMuaW5mbz1ufWZ1bmN0aW9uIGkodCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoOysrcilpZih0W3JdLmlkPT09ZS5pZClyZXR1cm4gdm9pZCh0W3JdLmxvY2F0aW9uPWUubG9jYXRpb24pO3QucHVzaChlKX1mdW5jdGlvbiBvKHIsbixhKXtpZighKG89KGE9MzU2MzI9PT1yP2M6dSlbbl0pKXt2YXIgaT1lLnN0cihuKSxvPXQuY3JlYXRlU2hhZGVyKHIpO3Quc2hhZGVyU291cmNlKG8saSksdC5jb21waWxlU2hhZGVyKG8pLGFbbl09b31yZXR1cm4gb31mdW5jdGlvbiBzKHQsZSl7dGhpcy5pZD1wKyssdGhpcy5mcmFnSWQ9dCx0aGlzLnZlcnRJZD1lLHRoaXMucHJvZ3JhbT1udWxsLHRoaXMudW5pZm9ybXM9W10sdGhpcy5hdHRyaWJ1dGVzPVtdLG4ucHJvZmlsZSYmKHRoaXMuc3RhdHM9e3VuaWZvcm1zQ291bnQ6MCxhdHRyaWJ1dGVzQ291bnQ6MH0pfWZ1bmN0aW9uIGwocixzKXt2YXIgbCxjO2w9bygzNTYzMixyLmZyYWdJZCksYz1vKDM1NjMzLHIudmVydElkKTt2YXIgdT1yLnByb2dyYW09dC5jcmVhdGVQcm9ncmFtKCk7dC5hdHRhY2hTaGFkZXIodSxsKSx0LmF0dGFjaFNoYWRlcih1LGMpLHQubGlua1Byb2dyYW0odSk7dmFyIGg9dC5nZXRQcm9ncmFtUGFyYW1ldGVyKHUsMzU3MTgpO24ucHJvZmlsZSYmKHIuc3RhdHMudW5pZm9ybXNDb3VudD1oKTt2YXIgZj1yLnVuaWZvcm1zO2ZvcihsPTA7bDxoOysrbClpZihjPXQuZ2V0QWN0aXZlVW5pZm9ybSh1LGwpKWlmKDE8Yy5zaXplKWZvcih2YXIgcD0wO3A8Yy5zaXplOysrcCl7dmFyIGQ9Yy5uYW1lLnJlcGxhY2UoIlswXSIsIlsiK3ArIl0iKTtpKGYsbmV3IGEoZCxlLmlkKGQpLHQuZ2V0VW5pZm9ybUxvY2F0aW9uKHUsZCksYykpfWVsc2UgaShmLG5ldyBhKGMubmFtZSxlLmlkKGMubmFtZSksdC5nZXRVbmlmb3JtTG9jYXRpb24odSxjLm5hbWUpLGMpKTtmb3IoaD10LmdldFByb2dyYW1QYXJhbWV0ZXIodSwzNTcyMSksbi5wcm9maWxlJiYoci5zdGF0cy5hdHRyaWJ1dGVzQ291bnQ9aCksZj1yLmF0dHJpYnV0ZXMsbD0wO2w8aDsrK2wpKGM9dC5nZXRBY3RpdmVBdHRyaWIodSxsKSkmJmkoZixuZXcgYShjLm5hbWUsZS5pZChjLm5hbWUpLHQuZ2V0QXR0cmliTG9jYXRpb24odSxjLm5hbWUpLGMpKX12YXIgYz17fSx1PXt9LGg9e30sZj1bXSxwPTA7cmV0dXJuIG4ucHJvZmlsZSYmKHIuZ2V0TWF4VW5pZm9ybXNDb3VudD1mdW5jdGlvbigpe3ZhciB0PTA7cmV0dXJuIGYuZm9yRWFjaChmdW5jdGlvbihlKXtlLnN0YXRzLnVuaWZvcm1zQ291bnQ+dCYmKHQ9ZS5zdGF0cy51bmlmb3Jtc0NvdW50KX0pLHR9LHIuZ2V0TWF4QXR0cmlidXRlc0NvdW50PWZ1bmN0aW9uKCl7dmFyIHQ9MDtyZXR1cm4gZi5mb3JFYWNoKGZ1bmN0aW9uKGUpe2Uuc3RhdHMuYXR0cmlidXRlc0NvdW50PnQmJih0PWUuc3RhdHMuYXR0cmlidXRlc0NvdW50KX0pLHR9KSx7Y2xlYXI6ZnVuY3Rpb24oKXt2YXIgZT10LmRlbGV0ZVNoYWRlci5iaW5kKHQpO1goYykuZm9yRWFjaChlKSxjPXt9LFgodSkuZm9yRWFjaChlKSx1PXt9LGYuZm9yRWFjaChmdW5jdGlvbihlKXt0LmRlbGV0ZVByb2dyYW0oZS5wcm9ncmFtKX0pLGYubGVuZ3RoPTAsaD17fSxyLnNoYWRlckNvdW50PTB9LHByb2dyYW06ZnVuY3Rpb24odCxlLG4pe3ZhciBhPWhbZV07YXx8KGE9aFtlXT17fSk7dmFyIGk9YVt0XTtyZXR1cm4gaXx8KGk9bmV3IHMoZSx0KSxyLnNoYWRlckNvdW50KyssbChpKSxhW3RdPWksZi5wdXNoKGkpKSxpfSxyZXN0b3JlOmZ1bmN0aW9uKCl7Yz17fSx1PXt9O2Zvcih2YXIgdD0wO3Q8Zi5sZW5ndGg7Kyt0KWwoZlt0XSl9LHNoYWRlcjpvLGZyYWc6LTEsdmVydDotMX19ZnVuY3Rpb24gRSh0LGUscixuLGEsaSxvKXtmdW5jdGlvbiBzKGEpe3ZhciBpO2k9bnVsbD09PWUubmV4dD81MTIxOmUubmV4dC5jb2xvckF0dGFjaG1lbnRzWzBdLnRleHR1cmUuX3RleHR1cmUudHlwZTt2YXIgbz0wLHM9MCxsPW4uZnJhbWVidWZmZXJXaWR0aCxjPW4uZnJhbWVidWZmZXJIZWlnaHQsdT1udWxsO3JldHVybiBXKGEpP3U9YTphJiYobz0wfGEueCxzPTB8YS55LGw9MHwoYS53aWR0aHx8bi5mcmFtZWJ1ZmZlcldpZHRoLW8pLGM9MHwoYS5oZWlnaHR8fG4uZnJhbWVidWZmZXJIZWlnaHQtcyksdT1hLmRhdGF8fG51bGwpLHIoKSxhPWwqYyo0LHV8fCg1MTIxPT09aT91PW5ldyBVaW50OEFycmF5KGEpOjUxMjY9PT1pJiYodT11fHxuZXcgRmxvYXQzMkFycmF5KGEpKSksdC5waXhlbFN0b3JlaSgzMzMzLDQpLHQucmVhZFBpeGVscyhvLHMsbCxjLDY0MDgsaSx1KSx1fXJldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZyYW1lYnVmZmVyImluIHQ/ZnVuY3Rpb24odCl7dmFyIHI7cmV0dXJuIGUuc2V0RkJPKHtmcmFtZWJ1ZmZlcjp0LmZyYW1lYnVmZmVyfSxmdW5jdGlvbigpe3I9cyh0KX0pLHJ9KHQpOnModCl9fWZ1bmN0aW9uIEwodCl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQpfWZ1bmN0aW9uIEModCl7cmV0dXJuIEwodCkuam9pbigiIil9ZnVuY3Rpb24gUCgpe2Z1bmN0aW9uIHQoKXt2YXIgdD1bXSxlPVtdO3JldHVybiBqKGZ1bmN0aW9uKCl7dC5wdXNoLmFwcGx5KHQsTChhcmd1bWVudHMpKX0se2RlZjpmdW5jdGlvbigpe3ZhciBuPSJ2IityKys7cmV0dXJuIGUucHVzaChuKSwwPGFyZ3VtZW50cy5sZW5ndGgmJih0LnB1c2gobiwiPSIpLHQucHVzaC5hcHBseSh0LEwoYXJndW1lbnRzKSksdC5wdXNoKCI7IikpLG59LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIEMoWzA8ZS5sZW5ndGg/InZhciAiK2UrIjsiOiIiLEModCldKX19KX1mdW5jdGlvbiBlKCl7ZnVuY3Rpb24gZSh0LGUpe24odCxlLCI9IixyLmRlZih0LGUpLCI7Iil9dmFyIHI9dCgpLG49dCgpLGE9ci50b1N0cmluZyxpPW4udG9TdHJpbmc7cmV0dXJuIGooZnVuY3Rpb24oKXtyLmFwcGx5KHIsTChhcmd1bWVudHMpKX0se2RlZjpyLmRlZixlbnRyeTpyLGV4aXQ6bixzYXZlOmUsc2V0OmZ1bmN0aW9uKHQsbixhKXtlKHQsbikscih0LG4sIj0iLGEsIjsiKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gYSgpK2koKX19KX12YXIgcj0wLG49W10sYT1bXSxpPXQoKSxvPXt9O3JldHVybntnbG9iYWw6aSxsaW5rOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8YS5sZW5ndGg7KytlKWlmKGFbZV09PT10KXJldHVybiBuW2VdO3JldHVybiBlPSJnIityKyssbi5wdXNoKGUpLGEucHVzaCh0KSxlfSxibG9jazp0LHByb2M6ZnVuY3Rpb24odCxyKXtmdW5jdGlvbiBuKCl7dmFyIHQ9ImEiK2EubGVuZ3RoO3JldHVybiBhLnB1c2godCksdH12YXIgYT1bXTtyPXJ8fDA7Zm9yKHZhciBpPTA7aTxyOysraSluKCk7dmFyIHM9KGk9ZSgpKS50b1N0cmluZztyZXR1cm4gb1t0XT1qKGkse2FyZzpuLHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIEMoWyJmdW5jdGlvbigiLGEuam9pbigpLCIpeyIscygpLCJ9Il0pfX0pfSxzY29wZTplLGNvbmQ6ZnVuY3Rpb24oKXt2YXIgdD1DKGFyZ3VtZW50cykscj1lKCksbj1lKCksYT1yLnRvU3RyaW5nLGk9bi50b1N0cmluZztyZXR1cm4gaihyLHt0aGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHIuYXBwbHkocixMKGFyZ3VtZW50cykpLHRoaXN9LGVsc2U6ZnVuY3Rpb24oKXtyZXR1cm4gbi5hcHBseShuLEwoYXJndW1lbnRzKSksdGhpc30sdG9TdHJpbmc6ZnVuY3Rpb24oKXt2YXIgZT1pKCk7cmV0dXJuIGUmJihlPSJlbHNleyIrZSsifSIpLEMoWyJpZigiLHQsIil7IixhKCksIn0iLGVdKX19KX0sY29tcGlsZTpmdW5jdGlvbigpe3ZhciB0PVsnInVzZSBzdHJpY3QiOycsaSwicmV0dXJuIHsiXTtPYmplY3Qua2V5cyhvKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QucHVzaCgnIicsZSwnIjonLG9bZV0udG9TdHJpbmcoKSwiLCIpfSksdC5wdXNoKCJ9Iik7dmFyIGU9Qyh0KS5yZXBsYWNlKC87L2csIjtcbiIpLnJlcGxhY2UoL30vZywifVxuIikucmVwbGFjZSgvey9nLCJ7XG4iKTtyZXR1cm4gRnVuY3Rpb24uYXBwbHkobnVsbCxuLmNvbmNhdChlKSkuYXBwbHkobnVsbCxhKX19fWZ1bmN0aW9uIE8odCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCl8fFcodCl8fGwodCl9ZnVuY3Rpb24geih0KXtyZXR1cm4gdC5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuInZpZXdwb3J0Ij09PXQ/LTE6InZpZXdwb3J0Ij09PWU/MTp0PGU/LTE6MX0pfWZ1bmN0aW9uIEkodCxlLHIsbil7dGhpcy50aGlzRGVwPXQsdGhpcy5jb250ZXh0RGVwPWUsdGhpcy5wcm9wRGVwPXIsdGhpcy5hcHBlbmQ9bn1mdW5jdGlvbiBEKHQpe3JldHVybiB0JiYhKHQudGhpc0RlcHx8dC5jb250ZXh0RGVwfHx0LnByb3BEZXApfWZ1bmN0aW9uIFIodCl7cmV0dXJuIG5ldyBJKCExLCExLCExLHQpfWZ1bmN0aW9uIEYodCxlKXt2YXIgcj10LnR5cGU7cmV0dXJuIDA9PT1yP25ldyBJKCEwLDE8PShyPXQuZGF0YS5sZW5ndGgpLDI8PXIsZSk6ND09PXI/bmV3IEkoKHI9dC5kYXRhKS50aGlzRGVwLHIuY29udGV4dERlcCxyLnByb3BEZXAsZSk6bmV3IEkoMz09PXIsMj09PXIsMT09PXIsZSl9ZnVuY3Rpb24gQih0LGUscixuLGEsbyxzLGwsYyx1LGgsZixwLGQsZyl7ZnVuY3Rpb24gbSh0KXtyZXR1cm4gdC5yZXBsYWNlKCIuIiwiXyIpfWZ1bmN0aW9uIHkodCxlLHIpe3ZhciBuPW0odCk7bnQucHVzaCh0KSxldFtuXT10dFtuXT0hIXIsYXRbbl09ZX1mdW5jdGlvbiB4KHQsZSxyKXt2YXIgbj1tKHQpO250LnB1c2godCksQXJyYXkuaXNBcnJheShyKT8odHRbbl09ci5zbGljZSgpLGV0W25dPXIuc2xpY2UoKSk6dHRbbl09ZXRbbl09cixpdFtuXT1lfWZ1bmN0aW9uIGIoKXt2YXIgdD1QKCkscj10Lmxpbmssbj10Lmdsb2JhbDt0LmlkPWx0KyssdC5iYXRjaElkPSIwIjt2YXIgYT1yKG90KSxpPXQuc2hhcmVkPXtwcm9wczoiYTAifTtPYmplY3Qua2V5cyhvdCkuZm9yRWFjaChmdW5jdGlvbih0KXtpW3RdPW4uZGVmKGEsIi4iLHQpfSk7dmFyIG89dC5uZXh0PXt9LHM9dC5jdXJyZW50PXt9O09iamVjdC5rZXlzKGl0KS5mb3JFYWNoKGZ1bmN0aW9uKHQpe0FycmF5LmlzQXJyYXkodHRbdF0pJiYob1t0XT1uLmRlZihpLm5leHQsIi4iLHQpLHNbdF09bi5kZWYoaS5jdXJyZW50LCIuIix0KSl9KTt2YXIgbD10LmNvbnN0YW50cz17fTtPYmplY3Qua2V5cyhzdCkuZm9yRWFjaChmdW5jdGlvbih0KXtsW3RdPW4uZGVmKEpTT04uc3RyaW5naWZ5KHN0W3RdKSl9KSx0Lmludm9rZT1mdW5jdGlvbihlLG4pe3N3aXRjaChuLnR5cGUpe2Nhc2UgMDp2YXIgYT1bInRoaXMiLGkuY29udGV4dCxpLnByb3BzLHQuYmF0Y2hJZF07cmV0dXJuIGUuZGVmKHIobi5kYXRhKSwiLmNhbGwoIixhLnNsaWNlKDAsTWF0aC5tYXgobi5kYXRhLmxlbmd0aCsxLDQpKSwiKSIpO2Nhc2UgMTpyZXR1cm4gZS5kZWYoaS5wcm9wcyxuLmRhdGEpO2Nhc2UgMjpyZXR1cm4gZS5kZWYoaS5jb250ZXh0LG4uZGF0YSk7Y2FzZSAzOnJldHVybiBlLmRlZigidGhpcyIsbi5kYXRhKTtjYXNlIDQ6cmV0dXJuIG4uZGF0YS5hcHBlbmQodCxlKSxuLmRhdGEucmVmfX0sdC5hdHRyaWJDYWNoZT17fTt2YXIgYz17fTtyZXR1cm4gdC5zY29wZUF0dHJpYj1mdW5jdGlvbih0KXtpZigodD1lLmlkKHQpKWluIGMpcmV0dXJuIGNbdF07dmFyIG49dS5zY29wZVt0XTtyZXR1cm4gbnx8KG49dS5zY29wZVt0XT1uZXcgWiksY1t0XT1yKG4pfSx0fWZ1bmN0aW9uIF8odCxlKXt2YXIgcj10LnN0YXRpYyxuPXQuZHluYW1pYztpZigiZnJhbWVidWZmZXIiaW4gcil7dmFyIGE9ci5mcmFtZWJ1ZmZlcjtyZXR1cm4gYT8oYT1sLmdldEZyYW1lYnVmZmVyKGEpLFIoZnVuY3Rpb24odCxlKXt2YXIgcj10LmxpbmsoYSksbj10LnNoYXJlZDtyZXR1cm4gZS5zZXQobi5mcmFtZWJ1ZmZlciwiLm5leHQiLHIpLG49bi5jb250ZXh0LGUuc2V0KG4sIi5mcmFtZWJ1ZmZlcldpZHRoIixyKyIud2lkdGgiKSxlLnNldChuLCIuZnJhbWVidWZmZXJIZWlnaHQiLHIrIi5oZWlnaHQiKSxyfSkpOlIoZnVuY3Rpb24odCxlKXt2YXIgcj10LnNoYXJlZDtyZXR1cm4gZS5zZXQoci5mcmFtZWJ1ZmZlciwiLm5leHQiLCJudWxsIikscj1yLmNvbnRleHQsZS5zZXQociwiLmZyYW1lYnVmZmVyV2lkdGgiLHIrIi5kcmF3aW5nQnVmZmVyV2lkdGgiKSxlLnNldChyLCIuZnJhbWVidWZmZXJIZWlnaHQiLHIrIi5kcmF3aW5nQnVmZmVySGVpZ2h0IiksIm51bGwifSl9aWYoImZyYW1lYnVmZmVyImluIG4pe3ZhciBpPW4uZnJhbWVidWZmZXI7cmV0dXJuIEYoaSxmdW5jdGlvbih0LGUpe3ZhciByPXQuaW52b2tlKGUsaSksbj10LnNoYXJlZCxhPW4uZnJhbWVidWZmZXI7cj1lLmRlZihhLCIuZ2V0RnJhbWVidWZmZXIoIixyLCIpIik7cmV0dXJuIGUuc2V0KGEsIi5uZXh0IixyKSxuPW4uY29udGV4dCxlLnNldChuLCIuZnJhbWVidWZmZXJXaWR0aCIscisiPyIrcisiLndpZHRoOiIrbisiLmRyYXdpbmdCdWZmZXJXaWR0aCIpLGUuc2V0KG4sIi5mcmFtZWJ1ZmZlckhlaWdodCIscisiPyIrcisiLmhlaWdodDoiK24rIi5kcmF3aW5nQnVmZmVySGVpZ2h0Iikscn0pfXJldHVybiBudWxsfWZ1bmN0aW9uIHcodCl7ZnVuY3Rpb24gcih0KXtpZih0IGluIG4pe3ZhciByPWUuaWQoblt0XSk7cmV0dXJuKHQ9UihmdW5jdGlvbigpe3JldHVybiByfSkpLmlkPXIsdH1pZih0IGluIGEpe3ZhciBpPWFbdF07cmV0dXJuIEYoaSxmdW5jdGlvbih0LGUpe3ZhciByPXQuaW52b2tlKGUsaSk7cmV0dXJuIGUuZGVmKHQuc2hhcmVkLnN0cmluZ3MsIi5pZCgiLHIsIikiKX0pfXJldHVybiBudWxsfXZhciBuPXQuc3RhdGljLGE9dC5keW5hbWljLGk9cigiZnJhZyIpLG89cigidmVydCIpLHM9bnVsbDtyZXR1cm4gRChpKSYmRChvKT8ocz1oLnByb2dyYW0oby5pZCxpLmlkKSx0PVIoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5saW5rKHMpfSkpOnQ9bmV3IEkoaSYmaS50aGlzRGVwfHxvJiZvLnRoaXNEZXAsaSYmaS5jb250ZXh0RGVwfHxvJiZvLmNvbnRleHREZXAsaSYmaS5wcm9wRGVwfHxvJiZvLnByb3BEZXAsZnVuY3Rpb24odCxlKXt2YXIgcixuLGE9dC5zaGFyZWQuc2hhZGVyO3JldHVybiByPWk/aS5hcHBlbmQodCxlKTplLmRlZihhLCIuIiwiZnJhZyIpLG49bz9vLmFwcGVuZCh0LGUpOmUuZGVmKGEsIi4iLCJ2ZXJ0IiksZS5kZWYoYSsiLnByb2dyYW0oIituKyIsIityKyIpIil9KSx7ZnJhZzppLHZlcnQ6byxwcm9nVmFyOnQscHJvZ3JhbTpzfX1mdW5jdGlvbiBrKHQsZSl7ZnVuY3Rpb24gcih0LGUpe2lmKHQgaW4gbil7dmFyIHI9MHxuW3RdO3JldHVybiBSKGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUmJih0Lk9GRlNFVD1yKSxyfSl9aWYodCBpbiBhKXt2YXIgbz1hW3RdO3JldHVybiBGKG8sZnVuY3Rpb24odCxyKXt2YXIgbj10Lmludm9rZShyLG8pO3JldHVybiBlJiYodC5PRkZTRVQ9biksbn0pfXJldHVybiBlJiZpP1IoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5PRkZTRVQ9IjAiLDB9KTpudWxsfXZhciBuPXQuc3RhdGljLGE9dC5keW5hbWljLGk9ZnVuY3Rpb24oKXtpZigiZWxlbWVudHMiaW4gbil7dmFyIHQ9bi5lbGVtZW50cztPKHQpP3Q9by5nZXRFbGVtZW50cyhvLmNyZWF0ZSh0LCEwKSk6dCYmKHQ9by5nZXRFbGVtZW50cyh0KSk7dmFyIGU9UihmdW5jdGlvbihlLHIpe2lmKHQpe3ZhciBuPWUubGluayh0KTtyZXR1cm4gZS5FTEVNRU5UUz1ufXJldHVybiBlLkVMRU1FTlRTPW51bGx9KTtyZXR1cm4gZS52YWx1ZT10LGV9aWYoImVsZW1lbnRzImluIGEpe3ZhciByPWEuZWxlbWVudHM7cmV0dXJuIEYocixmdW5jdGlvbih0LGUpe3ZhciBuPShhPXQuc2hhcmVkKS5pc0J1ZmZlckFyZ3MsYT1hLmVsZW1lbnRzLGk9dC5pbnZva2UoZSxyKSxvPWUuZGVmKCJudWxsIik7bj1lLmRlZihuLCIoIixpLCIpIiksaT10LmNvbmQobikudGhlbihvLCI9IixhLCIuY3JlYXRlU3RyZWFtKCIsaSwiKTsiKS5lbHNlKG8sIj0iLGEsIi5nZXRFbGVtZW50cygiLGksIik7Iik7cmV0dXJuIGUuZW50cnkoaSksZS5leGl0KHQuY29uZChuKS50aGVuKGEsIi5kZXN0cm95U3RyZWFtKCIsbywiKTsiKSksdC5FTEVNRU5UUz1vfSl9cmV0dXJuIG51bGx9KCkscz1yKCJvZmZzZXQiLCEwKTtyZXR1cm57ZWxlbWVudHM6aSxwcmltaXRpdmU6ZnVuY3Rpb24oKXtpZigicHJpbWl0aXZlImluIG4pe3ZhciB0PW4ucHJpbWl0aXZlO3JldHVybiBSKGZ1bmN0aW9uKGUscil7cmV0dXJuIHJ0W3RdfSl9aWYoInByaW1pdGl2ZSJpbiBhKXt2YXIgZT1hLnByaW1pdGl2ZTtyZXR1cm4gRihlLGZ1bmN0aW9uKHQscil7dmFyIG49dC5jb25zdGFudHMucHJpbVR5cGVzLGE9dC5pbnZva2UocixlKTtyZXR1cm4gci5kZWYobiwiWyIsYSwiXSIpfSl9cmV0dXJuIGk/RChpKT9pLnZhbHVlP1IoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5kZWYodC5FTEVNRU5UUywiLnByaW1UeXBlIil9KTpSKGZ1bmN0aW9uKCl7cmV0dXJuIDR9KTpuZXcgSShpLnRoaXNEZXAsaS5jb250ZXh0RGVwLGkucHJvcERlcCxmdW5jdGlvbih0LGUpe3ZhciByPXQuRUxFTUVOVFM7cmV0dXJuIGUuZGVmKHIsIj8iLHIsIi5wcmltVHlwZToiLDQpfSk6bnVsbH0oKSxjb3VudDpmdW5jdGlvbigpe2lmKCJjb3VudCJpbiBuKXt2YXIgdD0wfG4uY291bnQ7cmV0dXJuIFIoZnVuY3Rpb24oKXtyZXR1cm4gdH0pfWlmKCJjb3VudCJpbiBhKXt2YXIgZT1hLmNvdW50O3JldHVybiBGKGUsZnVuY3Rpb24odCxyKXtyZXR1cm4gdC5pbnZva2UocixlKX0pfXJldHVybiBpP0QoaSk/aT9zP25ldyBJKHMudGhpc0RlcCxzLmNvbnRleHREZXAscy5wcm9wRGVwLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZGVmKHQuRUxFTUVOVFMsIi52ZXJ0Q291bnQtIix0Lk9GRlNFVCl9KTpSKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZGVmKHQuRUxFTUVOVFMsIi52ZXJ0Q291bnQiKX0pOlIoZnVuY3Rpb24oKXtyZXR1cm4tMX0pOm5ldyBJKGkudGhpc0RlcHx8cy50aGlzRGVwLGkuY29udGV4dERlcHx8cy5jb250ZXh0RGVwLGkucHJvcERlcHx8cy5wcm9wRGVwLGZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5FTEVNRU5UUztyZXR1cm4gdC5PRkZTRVQ/ZS5kZWYociwiPyIsciwiLnZlcnRDb3VudC0iLHQuT0ZGU0VULCI6LTEiKTplLmRlZihyLCI/IixyLCIudmVydENvdW50Oi0xIil9KTpudWxsfSgpLGluc3RhbmNlczpyKCJpbnN0YW5jZXMiLCExKSxvZmZzZXQ6c319ZnVuY3Rpb24gVCh0LHIpe3ZhciBuPXQuc3RhdGljLGk9dC5keW5hbWljLG89e307cmV0dXJuIE9iamVjdC5rZXlzKG4pLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHI9blt0XSxpPWUuaWQodCkscz1uZXcgWjtpZihPKHIpKXMuc3RhdGU9MSxzLmJ1ZmZlcj1hLmdldEJ1ZmZlcihhLmNyZWF0ZShyLDM0OTYyLCExLCEwKSkscy50eXBlPTA7ZWxzZSBpZihjPWEuZ2V0QnVmZmVyKHIpKXMuc3RhdGU9MSxzLmJ1ZmZlcj1jLHMudHlwZT0wO2Vsc2UgaWYoImNvbnN0YW50ImluIHIpe3ZhciBsPXIuY29uc3RhbnQ7cy5idWZmZXI9Im51bGwiLHMuc3RhdGU9MiwibnVtYmVyIj09dHlwZW9mIGw/cy54PWw6YnQuZm9yRWFjaChmdW5jdGlvbih0LGUpe2U8bC5sZW5ndGgmJihzW3RdPWxbZV0pfSl9ZWxzZXt2YXIgYz1PKHIuYnVmZmVyKT9hLmdldEJ1ZmZlcihhLmNyZWF0ZShyLmJ1ZmZlciwzNDk2MiwhMSwhMCkpOmEuZ2V0QnVmZmVyKHIuYnVmZmVyKSx1PTB8ci5vZmZzZXQsaD0wfHIuc3RyaWRlLGY9MHxyLnNpemUscD0hIXIubm9ybWFsaXplZCxkPTA7InR5cGUiaW4gciYmKGQ9S1tyLnR5cGVdKSxyPTB8ci5kaXZpc29yLHMuYnVmZmVyPWMscy5zdGF0ZT0xLHMuc2l6ZT1mLHMubm9ybWFsaXplZD1wLHMudHlwZT1kfHxjLmR0eXBlLHMub2Zmc2V0PXUscy5zdHJpZGU9aCxzLmRpdmlzb3I9cn1vW3RdPVIoZnVuY3Rpb24odCxlKXt2YXIgcj10LmF0dHJpYkNhY2hlO2lmKGkgaW4gcilyZXR1cm4gcltpXTt2YXIgbj17aXNTdHJlYW06ITF9O3JldHVybiBPYmplY3Qua2V5cyhzKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe25bdF09c1t0XX0pLHMuYnVmZmVyJiYobi5idWZmZXI9dC5saW5rKHMuYnVmZmVyKSxuLnR5cGU9bi50eXBlfHxuLmJ1ZmZlcisiLmR0eXBlIikscltpXT1ufSl9KSxPYmplY3Qua2V5cyhpKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPWlbdF07b1t0XT1GKGUsZnVuY3Rpb24odCxyKXtmdW5jdGlvbiBuKHQpe3IobFt0XSwiPSIsYSwiLiIsdCwifDA7Iil9dmFyIGE9dC5pbnZva2UocixlKSxpPXQuc2hhcmVkLG89aS5pc0J1ZmZlckFyZ3Mscz1pLmJ1ZmZlcixsPXtpc1N0cmVhbTpyLmRlZighMSl9LGM9bmV3IFo7Yy5zdGF0ZT0xLE9iamVjdC5rZXlzKGMpLmZvckVhY2goZnVuY3Rpb24odCl7bFt0XT1yLmRlZigiIitjW3RdKX0pO3ZhciB1PWwuYnVmZmVyLGg9bC50eXBlO3JldHVybiByKCJpZigiLG8sIigiLGEsIikpeyIsbC5pc1N0cmVhbSwiPXRydWU7Iix1LCI9IixzLCIuY3JlYXRlU3RyZWFtKCIsMzQ5NjIsIiwiLGEsIik7IixoLCI9Iix1LCIuZHR5cGU7IiwifWVsc2V7Iix1LCI9IixzLCIuZ2V0QnVmZmVyKCIsYSwiKTsiLCJpZigiLHUsIil7IixoLCI9Iix1LCIuZHR5cGU7IiwnfWVsc2UgaWYoImNvbnN0YW50IiBpbiAnLGEsIil7IixsLnN0YXRlLCI9IiwyLCI7IiwiaWYodHlwZW9mICIrYSsnLmNvbnN0YW50ID09PSAibnVtYmVyIil7JyxsW2J0WzBdXSwiPSIsYSwiLmNvbnN0YW50OyIsYnQuc2xpY2UoMSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBsW3RdfSkuam9pbigiPSIpLCI9MDsiLCJ9ZWxzZXsiLGJ0Lm1hcChmdW5jdGlvbih0LGUpe3JldHVybiBsW3RdKyI9IithKyIuY29uc3RhbnQubGVuZ3RoPiIrZSsiPyIrYSsiLmNvbnN0YW50WyIrZSsiXTowOyJ9KS5qb2luKCIiKSwifX1lbHNleyIsImlmKCIsbywiKCIsYSwiLmJ1ZmZlcikpeyIsdSwiPSIscywiLmNyZWF0ZVN0cmVhbSgiLDM0OTYyLCIsIixhLCIuYnVmZmVyKTsiLCJ9ZWxzZXsiLHUsIj0iLHMsIi5nZXRCdWZmZXIoIixhLCIuYnVmZmVyKTsiLCJ9IixoLCc9InR5cGUiIGluICcsYSwiPyIsaS5nbFR5cGVzLCJbIixhLCIudHlwZV06Iix1LCIuZHR5cGU7IixsLm5vcm1hbGl6ZWQsIj0hISIsYSwiLm5vcm1hbGl6ZWQ7Iiksbigic2l6ZSIpLG4oIm9mZnNldCIpLG4oInN0cmlkZSIpLG4oImRpdmlzb3IiKSxyKCJ9fSIpLHIuZXhpdCgiaWYoIixsLmlzU3RyZWFtLCIpeyIscywiLmRlc3Ryb3lTdHJlYW0oIix1LCIpOyIsIn0iKSxsfSl9KSxvfWZ1bmN0aW9uIE0odCxlLHIsbixhKXt2YXIgbz1fKHQpLHM9ZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCl7aWYodCBpbiBhKXt2YXIgcj1hW3RdO3Q9ITA7dmFyIG4sbyxzPTB8ci54LGw9MHxyLnk7cmV0dXJuIndpZHRoImluIHI/bj0wfHIud2lkdGg6dD0hMSwiaGVpZ2h0ImluIHI/bz0wfHIuaGVpZ2h0OnQ9ITEsbmV3IEkoIXQmJmUmJmUudGhpc0RlcCwhdCYmZSYmZS5jb250ZXh0RGVwLCF0JiZlJiZlLnByb3BEZXAsZnVuY3Rpb24odCxlKXt2YXIgYT10LnNoYXJlZC5jb250ZXh0LGk9bjsid2lkdGgiaW4gcnx8KGk9ZS5kZWYoYSwiLiIsImZyYW1lYnVmZmVyV2lkdGgiLCItIixzKSk7dmFyIGM9bztyZXR1cm4iaGVpZ2h0ImluIHJ8fChjPWUuZGVmKGEsIi4iLCJmcmFtZWJ1ZmZlckhlaWdodCIsIi0iLGwpKSxbcyxsLGksY119KX1pZih0IGluIGkpe3ZhciBjPWlbdF07cmV0dXJuIHQ9RihjLGZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5pbnZva2UoZSxjKSxuPXQuc2hhcmVkLmNvbnRleHQsYT1lLmRlZihyLCIueHwwIiksaT1lLmRlZihyLCIueXwwIik7cmV0dXJuW2EsaSxlLmRlZignIndpZHRoIiBpbiAnLHIsIj8iLHIsIi53aWR0aHwwOiIsIigiLG4sIi4iLCJmcmFtZWJ1ZmZlcldpZHRoIiwiLSIsYSwiKSIpLHI9ZS5kZWYoJyJoZWlnaHQiIGluICcsciwiPyIsciwiLmhlaWdodHwwOiIsIigiLG4sIi4iLCJmcmFtZWJ1ZmZlckhlaWdodCIsIi0iLGksIikiKV19KSxlJiYodC50aGlzRGVwPXQudGhpc0RlcHx8ZS50aGlzRGVwLHQuY29udGV4dERlcD10LmNvbnRleHREZXB8fGUuY29udGV4dERlcCx0LnByb3BEZXA9dC5wcm9wRGVwfHxlLnByb3BEZXApLHR9cmV0dXJuIGU/bmV3IEkoZS50aGlzRGVwLGUuY29udGV4dERlcCxlLnByb3BEZXAsZnVuY3Rpb24odCxlKXt2YXIgcj10LnNoYXJlZC5jb250ZXh0O3JldHVyblswLDAsZS5kZWYociwiLiIsImZyYW1lYnVmZmVyV2lkdGgiKSxlLmRlZihyLCIuIiwiZnJhbWVidWZmZXJIZWlnaHQiKV19KTpudWxsfXZhciBhPXQuc3RhdGljLGk9dC5keW5hbWljO2lmKHQ9bigidmlld3BvcnQiKSl7dmFyIG89dDt0PW5ldyBJKHQudGhpc0RlcCx0LmNvbnRleHREZXAsdC5wcm9wRGVwLGZ1bmN0aW9uKHQsZSl7dmFyIHI9by5hcHBlbmQodCxlKSxuPXQuc2hhcmVkLmNvbnRleHQ7cmV0dXJuIGUuc2V0KG4sIi52aWV3cG9ydFdpZHRoIixyWzJdKSxlLnNldChuLCIudmlld3BvcnRIZWlnaHQiLHJbM10pLHJ9KX1yZXR1cm57dmlld3BvcnQ6dCxzY2lzc29yX2JveDpuKCJzY2lzc29yLmJveCIpfX0odCxvKSxsPWsodCksYz1mdW5jdGlvbih0LGUpe3ZhciByPXQuc3RhdGljLG49dC5keW5hbWljLGE9e307cmV0dXJuIG50LmZvckVhY2goZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLGkpe2lmKHQgaW4gcil7dmFyIHM9ZShyW3RdKTthW29dPVIoZnVuY3Rpb24oKXtyZXR1cm4gc30pfWVsc2UgaWYodCBpbiBuKXt2YXIgbD1uW3RdO2Fbb109RihsLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGkodCxlLHQuaW52b2tlKGUsbCkpfSl9fXZhciBvPW0odCk7c3dpdGNoKHQpe2Nhc2UiY3VsbC5lbmFibGUiOmNhc2UiYmxlbmQuZW5hYmxlIjpjYXNlImRpdGhlciI6Y2FzZSJzdGVuY2lsLmVuYWJsZSI6Y2FzZSJkZXB0aC5lbmFibGUiOmNhc2Uic2Npc3Nvci5lbmFibGUiOmNhc2UicG9seWdvbk9mZnNldC5lbmFibGUiOmNhc2Uic2FtcGxlLmFscGhhIjpjYXNlInNhbXBsZS5lbmFibGUiOmNhc2UiZGVwdGgubWFzayI6cmV0dXJuIGUoZnVuY3Rpb24odCl7cmV0dXJuIHR9LGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gcn0pO2Nhc2UiZGVwdGguZnVuYyI6cmV0dXJuIGUoZnVuY3Rpb24odCl7cmV0dXJuIGt0W3RdfSxmdW5jdGlvbih0LGUscil7cmV0dXJuIGUuZGVmKHQuY29uc3RhbnRzLmNvbXBhcmVGdW5jcywiWyIsciwiXSIpfSk7Y2FzZSJkZXB0aC5yYW5nZSI6cmV0dXJuIGUoZnVuY3Rpb24odCl7cmV0dXJuIHR9LGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm5bZS5kZWYoIisiLHIsIlswXSIpLGU9ZS5kZWYoIisiLHIsIlsxXSIpXX0pO2Nhc2UiYmxlbmQuZnVuYyI6cmV0dXJuIGUoZnVuY3Rpb24odCl7cmV0dXJuW3d0WyJzcmNSR0IiaW4gdD90LnNyY1JHQjp0LnNyY10sd3RbImRzdFJHQiJpbiB0P3QuZHN0UkdCOnQuZHN0XSx3dFsic3JjQWxwaGEiaW4gdD90LnNyY0FscGhhOnQuc3JjXSx3dFsiZHN0QWxwaGEiaW4gdD90LmRzdEFscGhhOnQuZHN0XV19LGZ1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHQsbil7cmV0dXJuIGUuZGVmKCciJyx0LG4sJyIgaW4gJyxyLCI/IixyLCIuIix0LG4sIjoiLHIsIi4iLHQpfXQ9dC5jb25zdGFudHMuYmxlbmRGdW5jczt2YXIgYT1uKCJzcmMiLCJSR0IiKSxpPW4oImRzdCIsIlJHQiIpLG89KGE9ZS5kZWYodCwiWyIsYSwiXSIpLGUuZGVmKHQsIlsiLG4oInNyYyIsIkFscGhhIiksIl0iKSk7cmV0dXJuW2EsaT1lLmRlZih0LCJbIixpLCJdIiksbyx0PWUuZGVmKHQsIlsiLG4oImRzdCIsIkFscGhhIiksIl0iKV19KTtjYXNlImJsZW5kLmVxdWF0aW9uIjpyZXR1cm4gZShmdW5jdGlvbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/W0pbdF0sSlt0XV06Im9iamVjdCI9PXR5cGVvZiB0P1tKW3QucmdiXSxKW3QuYWxwaGFdXTp2b2lkIDB9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10LmNvbnN0YW50cy5ibGVuZEVxdWF0aW9ucyxhPWUuZGVmKCksaT1lLmRlZigpO3JldHVybih0PXQuY29uZCgidHlwZW9mICIsciwnPT09InN0cmluZyInKSkudGhlbihhLCI9IixpLCI9IixuLCJbIixyLCJdOyIpLHQuZWxzZShhLCI9IixuLCJbIixyLCIucmdiXTsiLGksIj0iLG4sIlsiLHIsIi5hbHBoYV07IiksZSh0KSxbYSxpXX0pO2Nhc2UiYmxlbmQuY29sb3IiOnJldHVybiBlKGZ1bmN0aW9uKHQpe3JldHVybiBpKDQsZnVuY3Rpb24oZSl7cmV0dXJuK3RbZV19KX0sZnVuY3Rpb24odCxlLHIpe3JldHVybiBpKDQsZnVuY3Rpb24odCl7cmV0dXJuIGUuZGVmKCIrIixyLCJbIix0LCJdIil9KX0pO2Nhc2Uic3RlbmNpbC5tYXNrIjpyZXR1cm4gZShmdW5jdGlvbih0KXtyZXR1cm4gMHx0fSxmdW5jdGlvbih0LGUscil7cmV0dXJuIGUuZGVmKHIsInwwIil9KTtjYXNlInN0ZW5jaWwuZnVuYyI6cmV0dXJuIGUoZnVuY3Rpb24odCl7cmV0dXJuW2t0W3QuY21wfHwia2VlcCJdLHQucmVmfHwwLCJtYXNrImluIHQ/dC5tYXNrOi0xXX0sZnVuY3Rpb24odCxlLHIpe3JldHVyblt0PWUuZGVmKCciY21wIiBpbiAnLHIsIj8iLHQuY29uc3RhbnRzLmNvbXBhcmVGdW5jcywiWyIsciwiLmNtcF0iLCI6Iiw3NjgwKSxlLmRlZihyLCIucmVmfDAiKSxlPWUuZGVmKCcibWFzayIgaW4gJyxyLCI/IixyLCIubWFza3wwOi0xIildfSk7Y2FzZSJzdGVuY2lsLm9wRnJvbnQiOmNhc2Uic3RlbmNpbC5vcEJhY2siOnJldHVybiBlKGZ1bmN0aW9uKGUpe3JldHVyblsic3RlbmNpbC5vcEJhY2siPT09dD8xMDI5OjEwMjgsVHRbZS5mYWlsfHwia2VlcCJdLFR0W2UuemZhaWx8fCJrZWVwIl0sVHRbZS56cGFzc3x8ImtlZXAiXV19LGZ1bmN0aW9uKGUscixuKXtmdW5jdGlvbiBhKHQpe3JldHVybiByLmRlZignIicsdCwnIiBpbiAnLG4sIj8iLGksIlsiLG4sIi4iLHQsIl06Iiw3NjgwKX12YXIgaT1lLmNvbnN0YW50cy5zdGVuY2lsT3BzO3JldHVyblsic3RlbmNpbC5vcEJhY2siPT09dD8xMDI5OjEwMjgsYSgiZmFpbCIpLGEoInpmYWlsIiksYSgienBhc3MiKV19KTtjYXNlInBvbHlnb25PZmZzZXQub2Zmc2V0IjpyZXR1cm4gZShmdW5jdGlvbih0KXtyZXR1cm5bMHx0LmZhY3RvciwwfHQudW5pdHNdfSxmdW5jdGlvbih0LGUscil7cmV0dXJuW2UuZGVmKHIsIi5mYWN0b3J8MCIpLGU9ZS5kZWYociwiLnVuaXRzfDAiKV19KTtjYXNlImN1bGwuZmFjZSI6cmV0dXJuIGUoZnVuY3Rpb24odCl7dmFyIGU9MDtyZXR1cm4iZnJvbnQiPT09dD9lPTEwMjg6ImJhY2siPT09dCYmKGU9MTAyOSksZX0sZnVuY3Rpb24odCxlLHIpe3JldHVybiBlLmRlZihyLCc9PT0iZnJvbnQiPycsMTAyOCwiOiIsMTAyOSl9KTtjYXNlImxpbmVXaWR0aCI6cmV0dXJuIGUoZnVuY3Rpb24odCl7cmV0dXJuIHR9LGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gcn0pO2Nhc2UiZnJvbnRGYWNlIjpyZXR1cm4gZShmdW5jdGlvbih0KXtyZXR1cm4gTXRbdF19LGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZS5kZWYocisnPT09ImN3Ij8yMzA0OjIzMDUnKX0pO2Nhc2UiY29sb3JNYXNrIjpyZXR1cm4gZShmdW5jdGlvbih0KXtyZXR1cm4gdC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuISF0fSl9LGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gaSg0LGZ1bmN0aW9uKHQpe3JldHVybiIhISIrcisiWyIrdCsiXSJ9KX0pO2Nhc2Uic2FtcGxlLmNvdmVyYWdlIjpyZXR1cm4gZShmdW5jdGlvbih0KXtyZXR1cm5bInZhbHVlImluIHQ/dC52YWx1ZToxLCEhdC5pbnZlcnRdfSxmdW5jdGlvbih0LGUscil7cmV0dXJuW2UuZGVmKCcidmFsdWUiIGluICcsciwiPysiLHIsIi52YWx1ZToxIiksZT1lLmRlZigiISEiLHIsIi5pbnZlcnQiKV19KX19KSxhfSh0KSx1PXcodCksaD1zLnZpZXdwb3J0O3JldHVybiBoJiYoYy52aWV3cG9ydD1oKSwocz1zW2g9bSgic2Npc3Nvci5ib3giKV0pJiYoY1toXT1zKSwobz17ZnJhbWVidWZmZXI6byxkcmF3Omwsc2hhZGVyOnUsc3RhdGU6YyxkaXJ0eTpzPTA8T2JqZWN0LmtleXMoYykubGVuZ3RofSkucHJvZmlsZT1mdW5jdGlvbih0KXt2YXIgZSxyPXQuc3RhdGljO2lmKHQ9dC5keW5hbWljLCJwcm9maWxlImluIHIpe3ZhciBuPSEhci5wcm9maWxlOyhlPVIoZnVuY3Rpb24odCxlKXtyZXR1cm4gbn0pKS5lbmFibGU9bn1lbHNlIGlmKCJwcm9maWxlImluIHQpe3ZhciBhPXQucHJvZmlsZTtlPUYoYSxmdW5jdGlvbih0LGUpe3JldHVybiB0Lmludm9rZShlLGEpfSl9cmV0dXJuIGV9KHQpLG8udW5pZm9ybXM9ZnVuY3Rpb24odCxlKXt2YXIgcj10LnN0YXRpYyxuPXQuZHluYW1pYyxhPXt9O3JldHVybiBPYmplY3Qua2V5cyhyKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlLG49clt0XTtpZigibnVtYmVyIj09dHlwZW9mIG58fCJib29sZWFuIj09dHlwZW9mIG4pZT1SKGZ1bmN0aW9uKCl7cmV0dXJuIG59KTtlbHNlIGlmKCJmdW5jdGlvbiI9PXR5cGVvZiBuKXt2YXIgbz1uLl9yZWdsVHlwZTsidGV4dHVyZTJkIj09PW98fCJ0ZXh0dXJlQ3ViZSI9PT1vP2U9UihmdW5jdGlvbih0KXtyZXR1cm4gdC5saW5rKG4pfSk6ImZyYW1lYnVmZmVyIiE9PW8mJiJmcmFtZWJ1ZmZlckN1YmUiIT09b3x8KGU9UihmdW5jdGlvbih0KXtyZXR1cm4gdC5saW5rKG4uY29sb3JbMF0pfSkpfWVsc2UgdihuKSYmKGU9UihmdW5jdGlvbih0KXtyZXR1cm4gdC5nbG9iYWwuZGVmKCJbIixpKG4ubGVuZ3RoLGZ1bmN0aW9uKHQpe3JldHVybiBuW3RdfSksIl0iKX0pKTtlLnZhbHVlPW4sYVt0XT1lfSksT2JqZWN0LmtleXMobikuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZT1uW3RdO2FbdF09RihlLGZ1bmN0aW9uKHQscil7cmV0dXJuIHQuaW52b2tlKHIsZSl9KX0pLGF9KHIpLG8uYXR0cmlidXRlcz1UKGUpLG8uY29udGV4dD1mdW5jdGlvbih0KXt2YXIgZT10LnN0YXRpYyxyPXQuZHluYW1pYyxuPXt9O3JldHVybiBPYmplY3Qua2V5cyhlKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByPWVbdF07blt0XT1SKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiByfHwiYm9vbGVhbiI9PXR5cGVvZiByPyIiK3I6dC5saW5rKHIpfSl9KSxPYmplY3Qua2V5cyhyKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPXJbdF07blt0XT1GKGUsZnVuY3Rpb24odCxyKXtyZXR1cm4gdC5pbnZva2UocixlKX0pfSksbn0obiksb31mdW5jdGlvbiBBKHQsZSxyKXt2YXIgbj10LnNoYXJlZC5jb250ZXh0LGE9dC5zY29wZSgpO09iamVjdC5rZXlzKHIpLmZvckVhY2goZnVuY3Rpb24oaSl7ZS5zYXZlKG4sIi4iK2kpLGEobiwiLiIsaSwiPSIscltpXS5hcHBlbmQodCxlKSwiOyIpfSksZShhKX1mdW5jdGlvbiBTKHQsZSxyLG4pe3ZhciBhLGk9KHM9dC5zaGFyZWQpLmdsLG89cy5mcmFtZWJ1ZmZlcjskJiYoYT1lLmRlZihzLmV4dGVuc2lvbnMsIi53ZWJnbF9kcmF3X2J1ZmZlcnMiKSk7dmFyIHM9KGw9dC5jb25zdGFudHMpLmRyYXdCdWZmZXIsbD1sLmJhY2tCdWZmZXI7dD1yP3IuYXBwZW5kKHQsZSk6ZS5kZWYobywiLm5leHQiKSxufHxlKCJpZigiLHQsIiE9PSIsbywiLmN1cil7IiksZSgiaWYoIix0LCIpeyIsaSwiLmJpbmRGcmFtZWJ1ZmZlcigiLDM2MTYwLCIsIix0LCIuZnJhbWVidWZmZXIpOyIpLCQmJmUoYSwiLmRyYXdCdWZmZXJzV0VCR0woIixzLCJbIix0LCIuY29sb3JBdHRhY2htZW50cy5sZW5ndGhdKTsiKSxlKCJ9ZWxzZXsiLGksIi5iaW5kRnJhbWVidWZmZXIoIiwzNjE2MCwiLG51bGwpOyIpLCQmJmUoYSwiLmRyYXdCdWZmZXJzV0VCR0woIixsLCIpOyIpLGUoIn0iLG8sIi5jdXI9Iix0LCI7Iiksbnx8ZSgifSIpfWZ1bmN0aW9uIEUodCxlLHIpe3ZhciBuPXQuc2hhcmVkLGE9bi5nbCxvPXQuY3VycmVudCxzPXQubmV4dCxsPW4uY3VycmVudCxjPW4ubmV4dCx1PXQuY29uZChsLCIuZGlydHkiKTtudC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciBuLGg7aWYoISgoZT1tKGUpKWluIHIuc3RhdGUpKWlmKGUgaW4gcyl7bj1zW2VdLGg9b1tlXTt2YXIgZj1pKHR0W2VdLmxlbmd0aCxmdW5jdGlvbih0KXtyZXR1cm4gdS5kZWYobiwiWyIsdCwiXSIpfSk7dSh0LmNvbmQoZi5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCsiIT09IitoKyJbIitlKyJdIn0pLmpvaW4oInx8IikpLnRoZW4oYSwiLiIsaXRbZV0sIigiLGYsIik7IixmLm1hcChmdW5jdGlvbih0LGUpe3JldHVybiBoKyJbIitlKyJdPSIrdH0pLmpvaW4oIjsiKSwiOyIpKX1lbHNlIG49dS5kZWYoYywiLiIsZSksZj10LmNvbmQobiwiIT09IixsLCIuIixlKSx1KGYpLGUgaW4gYXQ/Zih0LmNvbmQobikudGhlbihhLCIuZW5hYmxlKCIsYXRbZV0sIik7IikuZWxzZShhLCIuZGlzYWJsZSgiLGF0W2VdLCIpOyIpLGwsIi4iLGUsIj0iLG4sIjsiKTpmKGEsIi4iLGl0W2VdLCIoIixuLCIpOyIsbCwiLiIsZSwiPSIsbiwiOyIpfSksMD09PU9iamVjdC5rZXlzKHIuc3RhdGUpLmxlbmd0aCYmdShsLCIuZGlydHk9ZmFsc2U7IiksZSh1KX1mdW5jdGlvbiBMKHQsZSxyLG4pe3ZhciBhPXQuc2hhcmVkLGk9dC5jdXJyZW50LG89YS5jdXJyZW50LHM9YS5nbDt6KE9iamVjdC5rZXlzKHIpKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBsPXJbYV07aWYoIW58fG4obCkpe3ZhciBjPWwuYXBwZW5kKHQsZSk7aWYoYXRbYV0pe3ZhciB1PWF0W2FdO0QobCk/ZShzLGM/Ii5lbmFibGUoIjoiLmRpc2FibGUoIix1LCIpOyIpOmUodC5jb25kKGMpLnRoZW4ocywiLmVuYWJsZSgiLHUsIik7IikuZWxzZShzLCIuZGlzYWJsZSgiLHUsIik7IikpLGUobywiLiIsYSwiPSIsYywiOyIpfWVsc2UgaWYodihjKSl7dmFyIGg9aVthXTtlKHMsIi4iLGl0W2FdLCIoIixjLCIpOyIsYy5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm4gaCsiWyIrZSsiXT0iK3R9KS5qb2luKCI7IiksIjsiKX1lbHNlIGUocywiLiIsaXRbYV0sIigiLGMsIik7IixvLCIuIixhLCI9IixjLCI7Iil9fSl9ZnVuY3Rpb24gQyh0LGUpe1EmJih0Lmluc3RhbmNpbmc9ZS5kZWYodC5zaGFyZWQuZXh0ZW5zaW9ucywiLmFuZ2xlX2luc3RhbmNlZF9hcnJheXMiKSl9ZnVuY3Rpb24gQih0LGUscixuLGEpe2Z1bmN0aW9uIGkoKXtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIHBlcmZvcm1hbmNlPyJEYXRlLm5vdygpIjoicGVyZm9ybWFuY2Uubm93KCkifWZ1bmN0aW9uIG8odCl7dChjPWUuZGVmKCksIj0iLGkoKSwiOyIpLCJzdHJpbmciPT10eXBlb2YgYT90KGYsIi5jb3VudCs9IixhLCI7Iik6dChmLCIuY291bnQrKzsiKSxkJiYobj90KHU9ZS5kZWYoKSwiPSIsZywiLmdldE51bVBlbmRpbmdRdWVyaWVzKCk7Iik6dChnLCIuYmVnaW5RdWVyeSgiLGYsIik7IikpfWZ1bmN0aW9uIHModCl7dChmLCIuY3B1VGltZSs9IixpKCksIi0iLGMsIjsiKSxkJiYobj90KGcsIi5wdXNoU2NvcGVTdGF0cygiLHUsIiwiLGcsIi5nZXROdW1QZW5kaW5nUXVlcmllcygpLCIsZiwiKTsiKTp0KGcsIi5lbmRRdWVyeSgpOyIpKX1mdW5jdGlvbiBsKHQpe3ZhciByPWUuZGVmKHAsIi5wcm9maWxlIik7ZShwLCIucHJvZmlsZT0iLHQsIjsiKSxlLmV4aXQocCwiLnByb2ZpbGU9IixyLCI7Iil9dmFyIGMsdSxoPXQuc2hhcmVkLGY9dC5zdGF0cyxwPWguY3VycmVudCxnPWgudGltZXI7aWYocj1yLnByb2ZpbGUpe2lmKEQocikpcmV0dXJuIHZvaWQoci5lbmFibGU/KG8oZSkscyhlLmV4aXQpLGwoInRydWUiKSk6bCgiZmFsc2UiKSk7bChyPXIuYXBwZW5kKHQsZSkpfWVsc2Ugcj1lLmRlZihwLCIucHJvZmlsZSIpO28oaD10LmJsb2NrKCkpLGUoImlmKCIsciwiKXsiLGgsIn0iKSxzKHQ9dC5ibG9jaygpKSxlLmV4aXQoImlmKCIsciwiKXsiLHQsIn0iKX1mdW5jdGlvbiBOKHQsZSxyLG4sYSl7ZnVuY3Rpb24gaShyLG4sYSl7ZnVuY3Rpb24gaSgpe2UoImlmKCEiLHUsIi5idWZmZXIpeyIsbCwiLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KCIsYywiKTt9Iik7dmFyIHIsaT1hLnR5cGU7cj1hLnNpemU/ZS5kZWYoYS5zaXplLCJ8fCIsbik6bixlKCJpZigiLHUsIi50eXBlIT09IixpLCJ8fCIsdSwiLnNpemUhPT0iLHIsInx8IixwLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdSsiLiIrdCsiIT09IithW3RdfSkuam9pbigifHwiKSwiKXsiLGwsIi5iaW5kQnVmZmVyKCIsMzQ5NjIsIiwiLGgsIi5idWZmZXIpOyIsbCwiLnZlcnRleEF0dHJpYlBvaW50ZXIoIixbYyxyLGksYS5ub3JtYWxpemVkLGEuc3RyaWRlLGEub2Zmc2V0XSwiKTsiLHUsIi50eXBlPSIsaSwiOyIsdSwiLnNpemU9IixyLCI7IixwLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdSsiLiIrdCsiPSIrYVt0XSsiOyJ9KS5qb2luKCIiKSwifSIpLFEmJihpPWEuZGl2aXNvcixlKCJpZigiLHUsIi5kaXZpc29yIT09IixpLCIpeyIsdC5pbnN0YW5jaW5nLCIudmVydGV4QXR0cmliRGl2aXNvckFOR0xFKCIsW2MsaV0sIik7Iix1LCIuZGl2aXNvcj0iLGksIjt9IikpfWZ1bmN0aW9uIHMoKXtlKCJpZigiLHUsIi5idWZmZXIpeyIsbCwiLmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheSgiLGMsIik7IiwifWlmKCIsYnQubWFwKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHUrIi4iK3QrIiE9PSIrZltlXX0pLmpvaW4oInx8IiksIil7IixsLCIudmVydGV4QXR0cmliNGYoIixjLCIsIixmLCIpOyIsYnQubWFwKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHUrIi4iK3QrIj0iK2ZbZV0rIjsifSkuam9pbigiIiksIn0iKX12YXIgbD1vLmdsLGM9ZS5kZWYociwiLmxvY2F0aW9uIiksdT1lLmRlZihvLmF0dHJpYnV0ZXMsIlsiLGMsIl0iKTtyPWEuc3RhdGU7dmFyIGg9YS5idWZmZXIsZj1bYS54LGEueSxhLnosYS53XSxwPVsiYnVmZmVyIiwibm9ybWFsaXplZCIsIm9mZnNldCIsInN0cmlkZSJdOzE9PT1yP2koKToyPT09cj9zKCk6KGUoImlmKCIsciwiPT09IiwxLCIpeyIpLGkoKSxlKCJ9ZWxzZXsiKSxzKCksZSgifSIpKX12YXIgbz10LnNoYXJlZDtuLmZvckVhY2goZnVuY3Rpb24obil7dmFyIG8scz1uLm5hbWUsbD1yLmF0dHJpYnV0ZXNbc107aWYobCl7aWYoIWEobCkpcmV0dXJuO289bC5hcHBlbmQodCxlKX1lbHNle2lmKCFhKEF0KSlyZXR1cm47dmFyIGM9dC5zY29wZUF0dHJpYihzKTtvPXt9LE9iamVjdC5rZXlzKG5ldyBaKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe29bdF09ZS5kZWYoYywiLiIsdCl9KX1pKHQubGluayhuKSxmdW5jdGlvbih0KXtzd2l0Y2godCl7Y2FzZSAzNTY2NDpjYXNlIDM1NjY3OmNhc2UgMzU2NzE6cmV0dXJuIDI7Y2FzZSAzNTY2NTpjYXNlIDM1NjY4OmNhc2UgMzU2NzI6cmV0dXJuIDM7Y2FzZSAzNTY2NjpjYXNlIDM1NjY5OmNhc2UgMzU2NzM6cmV0dXJuIDQ7ZGVmYXVsdDpyZXR1cm4gMX19KG4uaW5mby50eXBlKSxvKX0pfWZ1bmN0aW9uIGoodCxyLG4sYSxvKXtmb3IodmFyIHMsbD10LnNoYXJlZCxjPWwuZ2wsdT0wO3U8YS5sZW5ndGg7Kyt1KXt2YXIgaCxmPShnPWFbdV0pLm5hbWUscD1nLmluZm8udHlwZSxkPW4udW5pZm9ybXNbZl0sZz10LmxpbmsoZykrIi5sb2NhdGlvbiI7aWYoZCl7aWYoIW8oZCkpY29udGludWU7aWYoRChkKSl7aWYoZj1kLnZhbHVlLDM1Njc4PT09cHx8MzU2ODA9PT1wKXIoYywiLnVuaWZvcm0xaSgiLGcsIiwiLChwPXQubGluayhmLl90ZXh0dXJlfHxmLmNvbG9yWzBdLl90ZXh0dXJlKSkrIi5iaW5kKCkpOyIpLHIuZXhpdChwLCIudW5iaW5kKCk7Iik7ZWxzZSBpZigzNTY3ND09PXB8fDM1Njc1PT09cHx8MzU2NzY9PT1wKWQ9MiwzNTY3NT09PXA/ZD0zOjM1Njc2PT09cCYmKGQ9NCkscihjLCIudW5pZm9ybU1hdHJpeCIsZCwiZnYoIixnLCIsZmFsc2UsIixmPXQuZ2xvYmFsLmRlZigibmV3IEZsb2F0MzJBcnJheShbIitBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmKSsiXSkiKSwiKTsiKTtlbHNle3N3aXRjaChwKXtjYXNlIDUxMjY6cz0iMWYiO2JyZWFrO2Nhc2UgMzU2NjQ6cz0iMmYiO2JyZWFrO2Nhc2UgMzU2NjU6cz0iM2YiO2JyZWFrO2Nhc2UgMzU2NjY6cz0iNGYiO2JyZWFrO2Nhc2UgMzU2NzA6Y2FzZSA1MTI0OnM9IjFpIjticmVhaztjYXNlIDM1NjcxOmNhc2UgMzU2Njc6cz0iMmkiO2JyZWFrO2Nhc2UgMzU2NzI6Y2FzZSAzNTY2ODpzPSIzaSI7YnJlYWs7Y2FzZSAzNTY3MzpzPSI0aSI7YnJlYWs7Y2FzZSAzNTY2OTpzPSI0aSJ9cihjLCIudW5pZm9ybSIscywiKCIsZywiLCIsdihmKT9BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmKTpmLCIpOyIpfWNvbnRpbnVlfWg9ZC5hcHBlbmQodCxyKX1lbHNle2lmKCFvKEF0KSljb250aW51ZTtoPXIuZGVmKGwudW5pZm9ybXMsIlsiLGUuaWQoZiksIl0iKX1zd2l0Y2goMzU2Nzg9PT1wP3IoImlmKCIsaCwiJiYiLGgsJy5fcmVnbFR5cGU9PT0iZnJhbWVidWZmZXIiKXsnLGgsIj0iLGgsIi5jb2xvclswXTsiLCJ9Iik6MzU2ODA9PT1wJiZyKCJpZigiLGgsIiYmIixoLCcuX3JlZ2xUeXBlPT09ImZyYW1lYnVmZmVyQ3ViZSIpeycsaCwiPSIsaCwiLmNvbG9yWzBdOyIsIn0iKSxmPTEscCl7Y2FzZSAzNTY3ODpjYXNlIDM1NjgwOnA9ci5kZWYoaCwiLl90ZXh0dXJlIikscihjLCIudW5pZm9ybTFpKCIsZywiLCIscCwiLmJpbmQoKSk7Iiksci5leGl0KHAsIi51bmJpbmQoKTsiKTtjb250aW51ZTtjYXNlIDUxMjQ6Y2FzZSAzNTY3MDpzPSIxaSI7YnJlYWs7Y2FzZSAzNTY2NzpjYXNlIDM1NjcxOnM9IjJpIixmPTI7YnJlYWs7Y2FzZSAzNTY2ODpjYXNlIDM1NjcyOnM9IjNpIixmPTM7YnJlYWs7Y2FzZSAzNTY2OTpjYXNlIDM1NjczOnM9IjRpIixmPTQ7YnJlYWs7Y2FzZSA1MTI2OnM9IjFmIjticmVhaztjYXNlIDM1NjY0OnM9IjJmIixmPTI7YnJlYWs7Y2FzZSAzNTY2NTpzPSIzZiIsZj0zO2JyZWFrO2Nhc2UgMzU2NjY6cz0iNGYiLGY9NDticmVhaztjYXNlIDM1Njc0OnM9Ik1hdHJpeDJmdiI7YnJlYWs7Y2FzZSAzNTY3NTpzPSJNYXRyaXgzZnYiO2JyZWFrO2Nhc2UgMzU2NzY6cz0iTWF0cml4NGZ2In1pZihyKGMsIi51bmlmb3JtIixzLCIoIixnLCIsIiksIk0iPT09cy5jaGFyQXQoMCkpe2c9TWF0aC5wb3cocC0zNTY3NCsyLDIpO3ZhciBtPXQuZ2xvYmFsLmRlZigibmV3IEZsb2F0MzJBcnJheSgiLGcsIikiKTtyKCJmYWxzZSwoQXJyYXkuaXNBcnJheSgiLGgsIil8fCIsaCwiIGluc3RhbmNlb2YgRmxvYXQzMkFycmF5KT8iLGgsIjooIixpKGcsZnVuY3Rpb24odCl7cmV0dXJuIG0rIlsiK3QrIl09IitoKyJbIit0KyJdIn0pLCIsIixtLCIpIil9ZWxzZSByKDE8Zj9pKGYsZnVuY3Rpb24odCl7cmV0dXJuIGgrIlsiK3QrIl0ifSk6aCk7cigiKTsiKX19ZnVuY3Rpb24gVih0LGUscixuKXtmdW5jdGlvbiBhKGEpe3ZhciBpPWZbYV07cmV0dXJuIGk/aS5jb250ZXh0RGVwJiZuLmNvbnRleHREeW5hbWljfHxpLnByb3BEZXA/aS5hcHBlbmQodCxyKTppLmFwcGVuZCh0LGUpOmUuZGVmKGgsIi4iLGEpfWZ1bmN0aW9uIGkoKXtmdW5jdGlvbiB0KCl7cihsLCIuZHJhd0VsZW1lbnRzSW5zdGFuY2VkQU5HTEUoIixbZCx2LG0sZysiPDwoKCIrbSsiLTUxMjEpPj4xKSIsc10sIik7Iil9ZnVuY3Rpb24gZSgpe3IobCwiLmRyYXdBcnJheXNJbnN0YW5jZWRBTkdMRSgiLFtkLGcsdixzXSwiKTsiKX1wP3k/dCgpOihyKCJpZigiLHAsIil7IiksdCgpLHIoIn1lbHNleyIpLGUoKSxyKCJ9IikpOmUoKX1mdW5jdGlvbiBvKCl7ZnVuY3Rpb24gdCgpe3IodSsiLmRyYXdFbGVtZW50cygiK1tkLHYsbSxnKyI8PCgoIittKyItNTEyMSk+PjEpIl0rIik7Iil9ZnVuY3Rpb24gZSgpe3IodSsiLmRyYXdBcnJheXMoIitbZCxnLHZdKyIpOyIpfXA/eT90KCk6KHIoImlmKCIscCwiKXsiKSx0KCkscigifWVsc2V7IiksZSgpLHIoIn0iKSk6ZSgpfXZhciBzLGwsYz10LnNoYXJlZCx1PWMuZ2wsaD1jLmRyYXcsZj1uLmRyYXcscD1mdW5jdGlvbigpe3ZhciBhPWYuZWxlbWVudHMsaT1lO3JldHVybiBhPygoYS5jb250ZXh0RGVwJiZuLmNvbnRleHREeW5hbWljfHxhLnByb3BEZXApJiYoaT1yKSxhPWEuYXBwZW5kKHQsaSkpOmE9aS5kZWYoaCwiLiIsImVsZW1lbnRzIiksYSYmaSgiaWYoIithKyIpIit1KyIuYmluZEJ1ZmZlcigzNDk2MywiK2ErIi5idWZmZXIuYnVmZmVyKTsiKSxhfSgpLGQ9YSgicHJpbWl0aXZlIiksZz1hKCJvZmZzZXQiKSx2PWZ1bmN0aW9uKCl7dmFyIGE9Zi5jb3VudCxpPWU7cmV0dXJuIGE/KChhLmNvbnRleHREZXAmJm4uY29udGV4dER5bmFtaWN8fGEucHJvcERlcCkmJihpPXIpLGE9YS5hcHBlbmQodCxpKSk6YT1pLmRlZihoLCIuIiwiY291bnQiKSxhfSgpO2lmKCJudW1iZXIiPT10eXBlb2Ygdil7aWYoMD09PXYpcmV0dXJufWVsc2UgcigiaWYoIix2LCIpeyIpLHIuZXhpdCgifSIpO1EmJihzPWEoImluc3RhbmNlcyIpLGw9dC5pbnN0YW5jaW5nKTt2YXIgbT1wKyIudHlwZSIseT1mLmVsZW1lbnRzJiZEKGYuZWxlbWVudHMpO1EmJigibnVtYmVyIiE9dHlwZW9mIHN8fDA8PXMpPyJzdHJpbmciPT10eXBlb2Ygcz8ocigiaWYoIixzLCI+MCl7IiksaSgpLHIoIn1lbHNlIGlmKCIscywiPDApeyIpLG8oKSxyKCJ9IikpOmkoKTpvKCl9ZnVuY3Rpb24gcSh0LGUscixuLGEpe3JldHVybiBhPShlPWIoKSkucHJvYygiYm9keSIsYSksUSYmKGUuaW5zdGFuY2luZz1hLmRlZihlLnNoYXJlZC5leHRlbnNpb25zLCIuYW5nbGVfaW5zdGFuY2VkX2FycmF5cyIpKSx0KGUsYSxyLG4pLGUuY29tcGlsZSgpLmJvZHl9ZnVuY3Rpb24gSCh0LGUscixuKXtDKHQsZSksTih0LGUscixuLmF0dHJpYnV0ZXMsZnVuY3Rpb24oKXtyZXR1cm4hMH0pLGoodCxlLHIsbi51bmlmb3JtcyxmdW5jdGlvbigpe3JldHVybiEwfSksVih0LGUsZSxyKX1mdW5jdGlvbiBHKHQsZSxyLG4pe2Z1bmN0aW9uIGEoKXtyZXR1cm4hMH10LmJhdGNoSWQ9ImExIixDKHQsZSksTih0LGUscixuLmF0dHJpYnV0ZXMsYSksaih0LGUscixuLnVuaWZvcm1zLGEpLFYodCxlLGUscil9ZnVuY3Rpb24gWSh0LGUscixuKXtmdW5jdGlvbiBhKHQpe3JldHVybiB0LmNvbnRleHREZXAmJm98fHQucHJvcERlcH1mdW5jdGlvbiBpKHQpe3JldHVybiFhKHQpfUModCxlKTt2YXIgbz1yLmNvbnRleHREZXAscz1lLmRlZigpLGw9ZS5kZWYoKTt0LnNoYXJlZC5wcm9wcz1sLHQuYmF0Y2hJZD1zO3ZhciBjPXQuc2NvcGUoKSx1PXQuc2NvcGUoKTtlKGMuZW50cnksImZvcigiLHMsIj0wOyIscywiPCIsImExIiwiOysrIixzLCIpeyIsbCwiPSIsImEwIiwiWyIscywiXTsiLHUsIn0iLGMuZXhpdCksci5uZWVkc0NvbnRleHQmJkEodCx1LHIuY29udGV4dCksci5uZWVkc0ZyYW1lYnVmZmVyJiZTKHQsdSxyLmZyYW1lYnVmZmVyKSxMKHQsdSxyLnN0YXRlLGEpLHIucHJvZmlsZSYmYShyLnByb2ZpbGUpJiZCKHQsdSxyLCExLCEwKSxuPyhOKHQsYyxyLG4uYXR0cmlidXRlcyxpKSxOKHQsdSxyLG4uYXR0cmlidXRlcyxhKSxqKHQsYyxyLG4udW5pZm9ybXMsaSksaih0LHUscixuLnVuaWZvcm1zLGEpLFYodCxjLHUscikpOihlPXQuZ2xvYmFsLmRlZigie30iKSxuPXIuc2hhZGVyLnByb2dWYXIuYXBwZW5kKHQsdSksbD11LmRlZihuLCIuaWQiKSxjPXUuZGVmKGUsIlsiLGwsIl0iKSx1KHQuc2hhcmVkLmdsLCIudXNlUHJvZ3JhbSgiLG4sIi5wcm9ncmFtKTsiLCJpZighIixjLCIpeyIsYywiPSIsZSwiWyIsbCwiXT0iLHQubGluayhmdW5jdGlvbihlKXtyZXR1cm4gcShHLHQscixlLDIpfSksIigiLG4sIik7fSIsYywiLmNhbGwodGhpcyxhMFsiLHMsIl0sIixzLCIpOyIpKX1mdW5jdGlvbiBXKHQscil7ZnVuY3Rpb24gbihlKXt2YXIgbj1yLnNoYWRlcltlXTtuJiZhLnNldChpLnNoYWRlciwiLiIrZSxuLmFwcGVuZCh0LGEpKX12YXIgYT10LnByb2MoInNjb3BlIiwzKTt0LmJhdGNoSWQ9ImEyIjt2YXIgaT10LnNoYXJlZCxvPWkuY3VycmVudDtBKHQsYSxyLmNvbnRleHQpLHIuZnJhbWVidWZmZXImJnIuZnJhbWVidWZmZXIuYXBwZW5kKHQsYSkseihPYmplY3Qua2V5cyhyLnN0YXRlKSkuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgbj1yLnN0YXRlW2VdLmFwcGVuZCh0LGEpO3Yobik/bi5mb3JFYWNoKGZ1bmN0aW9uKHIsbil7YS5zZXQodC5uZXh0W2VdLCJbIituKyJdIixyKX0pOmEuc2V0KGkubmV4dCwiLiIrZSxuKX0pLEIodCxhLHIsITAsITApLFsiZWxlbWVudHMiLCJvZmZzZXQiLCJjb3VudCIsImluc3RhbmNlcyIsInByaW1pdGl2ZSJdLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIG49ci5kcmF3W2VdO24mJmEuc2V0KGkuZHJhdywiLiIrZSwiIituLmFwcGVuZCh0LGEpKX0pLE9iamVjdC5rZXlzKHIudW5pZm9ybXMpLmZvckVhY2goZnVuY3Rpb24obil7YS5zZXQoaS51bmlmb3JtcywiWyIrZS5pZChuKSsiXSIsci51bmlmb3Jtc1tuXS5hcHBlbmQodCxhKSl9KSxPYmplY3Qua2V5cyhyLmF0dHJpYnV0ZXMpLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIG49ci5hdHRyaWJ1dGVzW2VdLmFwcGVuZCh0LGEpLGk9dC5zY29wZUF0dHJpYihlKTtPYmplY3Qua2V5cyhuZXcgWikuZm9yRWFjaChmdW5jdGlvbih0KXthLnNldChpLCIuIit0LG5bdF0pfSl9KSxuKCJ2ZXJ0IiksbigiZnJhZyIpLDA8T2JqZWN0LmtleXMoci5zdGF0ZSkubGVuZ3RoJiYoYShvLCIuZGlydHk9dHJ1ZTsiKSxhLmV4aXQobywiLmRpcnR5PXRydWU7IikpLGEoImExKCIsdC5zaGFyZWQuY29udGV4dCwiLGEwLCIsdC5iYXRjaElkLCIpOyIpfWZ1bmN0aW9uIFgodCxlLHIpe3ZhciBuPWUuc3RhdGljW3JdO2lmKG4mJmZ1bmN0aW9uKHQpe2lmKCJvYmplY3QiPT10eXBlb2YgdCYmIXYodCkpe2Zvcih2YXIgZT1PYmplY3Qua2V5cyh0KSxyPTA7cjxlLmxlbmd0aDsrK3IpaWYoVS5pc0R5bmFtaWModFtlW3JdXSkpcmV0dXJuITA7cmV0dXJuITF9fShuKSl7dmFyIGE9dC5nbG9iYWwsaT1PYmplY3Qua2V5cyhuKSxvPSExLHM9ITEsbD0hMSxjPXQuZ2xvYmFsLmRlZigie30iKTtpLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHI9bltlXTtpZihVLmlzRHluYW1pYyhyKSkiZnVuY3Rpb24iPT10eXBlb2YgciYmKHI9bltlXT1VLnVuYm94KHIpKSxlPUYocixudWxsKSxvPW98fGUudGhpc0RlcCxsPWx8fGUucHJvcERlcCxzPXN8fGUuY29udGV4dERlcDtlbHNle3N3aXRjaChhKGMsIi4iLGUsIj0iKSx0eXBlb2Ygcil7Y2FzZSJudW1iZXIiOmEocik7YnJlYWs7Y2FzZSJzdHJpbmciOmEoJyInLHIsJyInKTticmVhaztjYXNlIm9iamVjdCI6QXJyYXkuaXNBcnJheShyKSYmYSgiWyIsci5qb2luKCksIl0iKTticmVhaztkZWZhdWx0OmEodC5saW5rKHIpKX1hKCI7Iil9fSksZS5keW5hbWljW3JdPW5ldyBVLkR5bmFtaWNWYXJpYWJsZSg0LHt0aGlzRGVwOm8sY29udGV4dERlcDpzLHByb3BEZXA6bCxyZWY6YyxhcHBlbmQ6ZnVuY3Rpb24odCxlKXtpLmZvckVhY2goZnVuY3Rpb24ocil7dmFyIGE9bltyXTtVLmlzRHluYW1pYyhhKSYmKGE9dC5pbnZva2UoZSxhKSxlKGMsIi4iLHIsIj0iLGEsIjsiKSl9KX19KSxkZWxldGUgZS5zdGF0aWNbcl19fXZhciBaPXUuUmVjb3JkLEo9e2FkZDozMjc3NCxzdWJ0cmFjdDozMjc3OCwicmV2ZXJzZSBzdWJ0cmFjdCI6MzI3Nzl9O3IuZXh0X2JsZW5kX21pbm1heCYmKEoubWluPTMyNzc1LEoubWF4PTMyNzc2KTt2YXIgUT1yLmFuZ2xlX2luc3RhbmNlZF9hcnJheXMsJD1yLndlYmdsX2RyYXdfYnVmZmVycyx0dD17ZGlydHk6ITAscHJvZmlsZTpnLnByb2ZpbGV9LGV0PXt9LG50PVtdLGF0PXt9LGl0PXt9O3koImRpdGhlciIsMzAyNCkseSgiYmxlbmQuZW5hYmxlIiwzMDQyKSx4KCJibGVuZC5jb2xvciIsImJsZW5kQ29sb3IiLFswLDAsMCwwXSkseCgiYmxlbmQuZXF1YXRpb24iLCJibGVuZEVxdWF0aW9uU2VwYXJhdGUiLFszMjc3NCwzMjc3NF0pLHgoImJsZW5kLmZ1bmMiLCJibGVuZEZ1bmNTZXBhcmF0ZSIsWzEsMCwxLDBdKSx5KCJkZXB0aC5lbmFibGUiLDI5MjksITApLHgoImRlcHRoLmZ1bmMiLCJkZXB0aEZ1bmMiLDUxMykseCgiZGVwdGgucmFuZ2UiLCJkZXB0aFJhbmdlIixbMCwxXSkseCgiZGVwdGgubWFzayIsImRlcHRoTWFzayIsITApLHgoImNvbG9yTWFzayIsImNvbG9yTWFzayIsWyEwLCEwLCEwLCEwXSkseSgiY3VsbC5lbmFibGUiLDI4ODQpLHgoImN1bGwuZmFjZSIsImN1bGxGYWNlIiwxMDI5KSx4KCJmcm9udEZhY2UiLCJmcm9udEZhY2UiLDIzMDUpLHgoImxpbmVXaWR0aCIsImxpbmVXaWR0aCIsMSkseSgicG9seWdvbk9mZnNldC5lbmFibGUiLDMyODIzKSx4KCJwb2x5Z29uT2Zmc2V0Lm9mZnNldCIsInBvbHlnb25PZmZzZXQiLFswLDBdKSx5KCJzYW1wbGUuYWxwaGEiLDMyOTI2KSx5KCJzYW1wbGUuZW5hYmxlIiwzMjkyOCkseCgic2FtcGxlLmNvdmVyYWdlIiwic2FtcGxlQ292ZXJhZ2UiLFsxLCExXSkseSgic3RlbmNpbC5lbmFibGUiLDI5NjApLHgoInN0ZW5jaWwubWFzayIsInN0ZW5jaWxNYXNrIiwtMSkseCgic3RlbmNpbC5mdW5jIiwic3RlbmNpbEZ1bmMiLFs1MTksMCwtMV0pLHgoInN0ZW5jaWwub3BGcm9udCIsInN0ZW5jaWxPcFNlcGFyYXRlIixbMTAyOCw3NjgwLDc2ODAsNzY4MF0pLHgoInN0ZW5jaWwub3BCYWNrIiwic3RlbmNpbE9wU2VwYXJhdGUiLFsxMDI5LDc2ODAsNzY4MCw3NjgwXSkseSgic2Npc3Nvci5lbmFibGUiLDMwODkpLHgoInNjaXNzb3IuYm94Iiwic2Npc3NvciIsWzAsMCx0LmRyYXdpbmdCdWZmZXJXaWR0aCx0LmRyYXdpbmdCdWZmZXJIZWlnaHRdKSx4KCJ2aWV3cG9ydCIsInZpZXdwb3J0IixbMCwwLHQuZHJhd2luZ0J1ZmZlcldpZHRoLHQuZHJhd2luZ0J1ZmZlckhlaWdodF0pO3ZhciBvdD17Z2w6dCxjb250ZXh0OnAsc3RyaW5nczplLG5leHQ6ZXQsY3VycmVudDp0dCxkcmF3OmYsZWxlbWVudHM6byxidWZmZXI6YSxzaGFkZXI6aCxhdHRyaWJ1dGVzOnUuc3RhdGUsdW5pZm9ybXM6YyxmcmFtZWJ1ZmZlcjpsLGV4dGVuc2lvbnM6cix0aW1lcjpkLGlzQnVmZmVyQXJnczpPfSxzdD17cHJpbVR5cGVzOnJ0LGNvbXBhcmVGdW5jczprdCxibGVuZEZ1bmNzOnd0LGJsZW5kRXF1YXRpb25zOkosc3RlbmNpbE9wczpUdCxnbFR5cGVzOkssb3JpZW50YXRpb25UeXBlOk10fTskJiYoc3QuYmFja0J1ZmZlcj1bMTAyOV0sc3QuZHJhd0J1ZmZlcj1pKG4ubWF4RHJhd2J1ZmZlcnMsZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10P1swXTppKHQsZnVuY3Rpb24odCl7cmV0dXJuIDM2MDY0K3R9KX0pKTt2YXIgbHQ9MDtyZXR1cm57bmV4dDpldCxjdXJyZW50OnR0LHByb2NzOmZ1bmN0aW9uKCl7dmFyIHQ9YigpLGU9dC5wcm9jKCJwb2xsIikscj10LnByb2MoInJlZnJlc2giKSxhPXQuYmxvY2soKTtlKGEpLHIoYSk7dmFyIG8scz10LnNoYXJlZCxsPXMuZ2wsYz1zLm5leHQsdT1zLmN1cnJlbnQ7YSh1LCIuZGlydHk9ZmFsc2U7IiksUyh0LGUpLFModCxyLG51bGwsITApLFEmJihvPXQubGluayhRKSk7Zm9yKHZhciBoPTA7aDxuLm1heEF0dHJpYnV0ZXM7KytoKXt2YXIgZj1yLmRlZihzLmF0dHJpYnV0ZXMsIlsiLGgsIl0iKSxwPXQuY29uZChmLCIuYnVmZmVyIik7cC50aGVuKGwsIi5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgiLGgsIik7IixsLCIuYmluZEJ1ZmZlcigiLDM0OTYyLCIsIixmLCIuYnVmZmVyLmJ1ZmZlcik7IixsLCIudmVydGV4QXR0cmliUG9pbnRlcigiLGgsIiwiLGYsIi5zaXplLCIsZiwiLnR5cGUsIixmLCIubm9ybWFsaXplZCwiLGYsIi5zdHJpZGUsIixmLCIub2Zmc2V0KTsiKS5lbHNlKGwsIi5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkoIixoLCIpOyIsbCwiLnZlcnRleEF0dHJpYjRmKCIsaCwiLCIsZiwiLngsIixmLCIueSwiLGYsIi56LCIsZiwiLncpOyIsZiwiLmJ1ZmZlcj1udWxsOyIpLHIocCksUSYmcihvLCIudmVydGV4QXR0cmliRGl2aXNvckFOR0xFKCIsaCwiLCIsZiwiLmRpdmlzb3IpOyIpfXJldHVybiBPYmplY3Qua2V5cyhhdCkuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgaT1hdFtuXSxvPWEuZGVmKGMsIi4iLG4pLHM9dC5ibG9jaygpO3MoImlmKCIsbywiKXsiLGwsIi5lbmFibGUoIixpLCIpfWVsc2V7IixsLCIuZGlzYWJsZSgiLGksIil9Iix1LCIuIixuLCI9IixvLCI7IikscihzKSxlKCJpZigiLG8sIiE9PSIsdSwiLiIsbiwiKXsiLHMsIn0iKX0pLE9iamVjdC5rZXlzKGl0KS5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciBvLHMsaD1pdFtuXSxmPXR0W25dLHA9dC5ibG9jaygpO3AobCwiLiIsaCwiKCIpLHYoZik/KGg9Zi5sZW5ndGgsbz10Lmdsb2JhbC5kZWYoYywiLiIsbikscz10Lmdsb2JhbC5kZWYodSwiLiIsbikscChpKGgsZnVuY3Rpb24odCl7cmV0dXJuIG8rIlsiK3QrIl0ifSksIik7IixpKGgsZnVuY3Rpb24odCl7cmV0dXJuIHMrIlsiK3QrIl09IitvKyJbIit0KyJdOyJ9KS5qb2luKCIiKSksZSgiaWYoIixpKGgsZnVuY3Rpb24odCl7cmV0dXJuIG8rIlsiK3QrIl0hPT0iK3MrIlsiK3QrIl0ifSkuam9pbigifHwiKSwiKXsiLHAsIn0iKSk6KG89YS5kZWYoYywiLiIsbikscz1hLmRlZih1LCIuIixuKSxwKG8sIik7Iix1LCIuIixuLCI9IixvLCI7IiksZSgiaWYoIixvLCIhPT0iLHMsIil7IixwLCJ9IikpLHIocCl9KSx0LmNvbXBpbGUoKX0oKSxjb21waWxlOmZ1bmN0aW9uKHQsZSxyLG4sYSl7dmFyIGk9YigpO3JldHVybiBpLnN0YXRzPWkubGluayhhKSxPYmplY3Qua2V5cyhlLnN0YXRpYykuZm9yRWFjaChmdW5jdGlvbih0KXtYKGksZSx0KX0pLF90LmZvckVhY2goZnVuY3Rpb24oZSl7WChpLHQsZSl9KSxyPU0odCxlLHIsbiksZnVuY3Rpb24odCxlKXt2YXIgcj10LnByb2MoImRyYXciLDEpO0ModCxyKSxBKHQscixlLmNvbnRleHQpLFModCxyLGUuZnJhbWVidWZmZXIpLEUodCxyLGUpLEwodCxyLGUuc3RhdGUpLEIodCxyLGUsITEsITApO3ZhciBuPWUuc2hhZGVyLnByb2dWYXIuYXBwZW5kKHQscik7aWYocih0LnNoYXJlZC5nbCwiLnVzZVByb2dyYW0oIixuLCIucHJvZ3JhbSk7IiksZS5zaGFkZXIucHJvZ3JhbSlIKHQscixlLGUuc2hhZGVyLnByb2dyYW0pO2Vsc2V7dmFyIGE9dC5nbG9iYWwuZGVmKCJ7fSIpLGk9ci5kZWYobiwiLmlkIiksbz1yLmRlZihhLCJbIixpLCJdIik7cih0LmNvbmQobykudGhlbihvLCIuY2FsbCh0aGlzLGEwKTsiKS5lbHNlKG8sIj0iLGEsIlsiLGksIl09Iix0LmxpbmsoZnVuY3Rpb24ocil7cmV0dXJuIHEoSCx0LGUsciwxKX0pLCIoIixuLCIpOyIsbywiLmNhbGwodGhpcyxhMCk7IikpfTA8T2JqZWN0LmtleXMoZS5zdGF0ZSkubGVuZ3RoJiZyKHQuc2hhcmVkLmN1cnJlbnQsIi5kaXJ0eT10cnVlOyIpfShpLHIpLFcoaSxyKSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIHIodCl7cmV0dXJuIHQuY29udGV4dERlcCYmYXx8dC5wcm9wRGVwfXZhciBuPXQucHJvYygiYmF0Y2giLDIpO3QuYmF0Y2hJZD0iMCIsQyh0LG4pO3ZhciBhPSExLGk9ITA7T2JqZWN0LmtleXMoZS5jb250ZXh0KS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2E9YXx8ZS5jb250ZXh0W3RdLnByb3BEZXB9KSxhfHwoQSh0LG4sZS5jb250ZXh0KSxpPSExKTt2YXIgbz0hMTtpZigocz1lLmZyYW1lYnVmZmVyKT8ocy5wcm9wRGVwP2E9bz0hMDpzLmNvbnRleHREZXAmJmEmJihvPSEwKSxvfHxTKHQsbixzKSk6Uyh0LG4sbnVsbCksZS5zdGF0ZS52aWV3cG9ydCYmZS5zdGF0ZS52aWV3cG9ydC5wcm9wRGVwJiYoYT0hMCksRSh0LG4sZSksTCh0LG4sZS5zdGF0ZSxmdW5jdGlvbih0KXtyZXR1cm4hcih0KX0pLGUucHJvZmlsZSYmcihlLnByb2ZpbGUpfHxCKHQsbixlLCExLCJhMSIpLGUuY29udGV4dERlcD1hLGUubmVlZHNDb250ZXh0PWksZS5uZWVkc0ZyYW1lYnVmZmVyPW8sKGk9ZS5zaGFkZXIucHJvZ1ZhcikuY29udGV4dERlcCYmYXx8aS5wcm9wRGVwKVkodCxuLGUsbnVsbCk7ZWxzZSBpZihpPWkuYXBwZW5kKHQsbiksbih0LnNoYXJlZC5nbCwiLnVzZVByb2dyYW0oIixpLCIucHJvZ3JhbSk7IiksZS5zaGFkZXIucHJvZ3JhbSlZKHQsbixlLGUuc2hhZGVyLnByb2dyYW0pO2Vsc2V7dmFyIHM9dC5nbG9iYWwuZGVmKCJ7fSIpLGw9KG89bi5kZWYoaSwiLmlkIiksbi5kZWYocywiWyIsbywiXSIpKTtuKHQuY29uZChsKS50aGVuKGwsIi5jYWxsKHRoaXMsYTAsYTEpOyIpLmVsc2UobCwiPSIscywiWyIsbywiXT0iLHQubGluayhmdW5jdGlvbihyKXtyZXR1cm4gcShZLHQsZSxyLDIpfSksIigiLGksIik7IixsLCIuY2FsbCh0aGlzLGEwLGExKTsiKSl9MDxPYmplY3Qua2V5cyhlLnN0YXRlKS5sZW5ndGgmJm4odC5zaGFyZWQuY3VycmVudCwiLmRpcnR5PXRydWU7Iil9KGksciksaS5jb21waWxlKCl9fX1mdW5jdGlvbiBOKHQsZSl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDsrK3IpaWYodFtyXT09PWUpcmV0dXJuIHI7cmV0dXJuLTF9dmFyIGo9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9T2JqZWN0LmtleXMoZSksbj0wO248ci5sZW5ndGg7KytuKXRbcltuXV09ZVtyW25dXTtyZXR1cm4gdH0sVj0wLFU9e0R5bmFtaWNWYXJpYWJsZTp0LGRlZmluZTpmdW5jdGlvbihyLG4pe3JldHVybiBuZXcgdChyLGUobisiIikpfSxpc0R5bmFtaWM6ZnVuY3Rpb24oZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGUmJiFlLl9yZWdsVHlwZXx8ZSBpbnN0YW5jZW9mIHR9LHVuYm94OmZ1bmN0aW9uKGUscil7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGU/bmV3IHQoMCxlKTplfSxhY2Nlc3NvcjplfSxxPXtuZXh0OiJmdW5jdGlvbiI9PXR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWU/ZnVuY3Rpb24odCl7cmV0dXJuIHJlcXVlc3RBbmltYXRpb25GcmFtZSh0KX06ZnVuY3Rpb24odCl7cmV0dXJuIHNldFRpbWVvdXQodCwxNil9LGNhbmNlbDoiZnVuY3Rpb24iPT10eXBlb2YgY2FuY2VsQW5pbWF0aW9uRnJhbWU/ZnVuY3Rpb24odCl7cmV0dXJuIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHQpfTpjbGVhclRpbWVvdXR9LEg9InVuZGVmaW5lZCIhPXR5cGVvZiBwZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93P2Z1bmN0aW9uKCl7cmV0dXJuIHBlcmZvcm1hbmNlLm5vdygpfTpmdW5jdGlvbigpe3JldHVybituZXcgRGF0ZX0sRz1zKCk7Ry56ZXJvPXMoKTt2YXIgWT1mdW5jdGlvbih0LGUpe3ZhciByPTE7ZS5leHRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMmJihyPXQuZ2V0UGFyYW1ldGVyKDM0MDQ3KSk7dmFyIG49MSxhPTE7ZS53ZWJnbF9kcmF3X2J1ZmZlcnMmJihuPXQuZ2V0UGFyYW1ldGVyKDM0ODUyKSxhPXQuZ2V0UGFyYW1ldGVyKDM2MDYzKSk7dmFyIGk9ISFlLm9lc190ZXh0dXJlX2Zsb2F0O2lmKGkpe2k9dC5jcmVhdGVUZXh0dXJlKCksdC5iaW5kVGV4dHVyZSgzNTUzLGkpLHQudGV4SW1hZ2UyRCgzNTUzLDAsNjQwOCwxLDEsMCw2NDA4LDUxMjYsbnVsbCk7dmFyIG89dC5jcmVhdGVGcmFtZWJ1ZmZlcigpO2lmKHQuYmluZEZyYW1lYnVmZmVyKDM2MTYwLG8pLHQuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAsMzYwNjQsMzU1MyxpLDApLHQuYmluZFRleHR1cmUoMzU1MyxudWxsKSwzNjA1MyE9PXQuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cygzNjE2MCkpaT0hMTtlbHNle3Qudmlld3BvcnQoMCwwLDEsMSksdC5jbGVhckNvbG9yKDEsMCwwLDEpLHQuY2xlYXIoMTYzODQpO3ZhciBzPUcuYWxsb2NUeXBlKDUxMjYsNCk7dC5yZWFkUGl4ZWxzKDAsMCwxLDEsNjQwOCw1MTI2LHMpLHQuZ2V0RXJyb3IoKT9pPSExOih0LmRlbGV0ZUZyYW1lYnVmZmVyKG8pLHQuZGVsZXRlVGV4dHVyZShpKSxpPTE9PT1zWzBdKSxHLmZyZWVUeXBlKHMpfX1yZXR1cm4gcz0hMCwidW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvciYmKC9NU0lFLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpfHwvVHJpZGVudFwvLy50ZXN0KG5hdmlnYXRvci5hcHBWZXJzaW9uKXx8L0VkZ2UvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpfHwocz10LmNyZWF0ZVRleHR1cmUoKSxvPUcuYWxsb2NUeXBlKDUxMjEsMzYpLHQuYWN0aXZlVGV4dHVyZSgzMzk4NCksdC5iaW5kVGV4dHVyZSgzNDA2NyxzKSx0LnRleEltYWdlMkQoMzQwNjksMCw2NDA4LDMsMywwLDY0MDgsNTEyMSxvKSxHLmZyZWVUeXBlKG8pLHQuYmluZFRleHR1cmUoMzQwNjcsbnVsbCksdC5kZWxldGVUZXh0dXJlKHMpLHM9IXQuZ2V0RXJyb3IoKSkse2NvbG9yQml0czpbdC5nZXRQYXJhbWV0ZXIoMzQxMCksdC5nZXRQYXJhbWV0ZXIoMzQxMSksdC5nZXRQYXJhbWV0ZXIoMzQxMiksdC5nZXRQYXJhbWV0ZXIoMzQxMyldLGRlcHRoQml0czp0LmdldFBhcmFtZXRlcigzNDE0KSxzdGVuY2lsQml0czp0LmdldFBhcmFtZXRlcigzNDE1KSxzdWJwaXhlbEJpdHM6dC5nZXRQYXJhbWV0ZXIoMzQwOCksZXh0ZW5zaW9uczpPYmplY3Qua2V5cyhlKS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuISFlW3RdfSksbWF4QW5pc290cm9waWM6cixtYXhEcmF3YnVmZmVyczpuLG1heENvbG9yQXR0YWNobWVudHM6YSxwb2ludFNpemVEaW1zOnQuZ2V0UGFyYW1ldGVyKDMzOTAxKSxsaW5lV2lkdGhEaW1zOnQuZ2V0UGFyYW1ldGVyKDMzOTAyKSxtYXhWaWV3cG9ydERpbXM6dC5nZXRQYXJhbWV0ZXIoMzM4NiksbWF4Q29tYmluZWRUZXh0dXJlVW5pdHM6dC5nZXRQYXJhbWV0ZXIoMzU2NjEpLG1heEN1YmVNYXBTaXplOnQuZ2V0UGFyYW1ldGVyKDM0MDc2KSxtYXhSZW5kZXJidWZmZXJTaXplOnQuZ2V0UGFyYW1ldGVyKDM0MDI0KSxtYXhUZXh0dXJlVW5pdHM6dC5nZXRQYXJhbWV0ZXIoMzQ5MzApLG1heFRleHR1cmVTaXplOnQuZ2V0UGFyYW1ldGVyKDMzNzkpLG1heEF0dHJpYnV0ZXM6dC5nZXRQYXJhbWV0ZXIoMzQ5MjEpLG1heFZlcnRleFVuaWZvcm1zOnQuZ2V0UGFyYW1ldGVyKDM2MzQ3KSxtYXhWZXJ0ZXhUZXh0dXJlVW5pdHM6dC5nZXRQYXJhbWV0ZXIoMzU2NjApLG1heFZhcnlpbmdWZWN0b3JzOnQuZ2V0UGFyYW1ldGVyKDM2MzQ4KSxtYXhGcmFnbWVudFVuaWZvcm1zOnQuZ2V0UGFyYW1ldGVyKDM2MzQ5KSxnbHNsOnQuZ2V0UGFyYW1ldGVyKDM1NzI0KSxyZW5kZXJlcjp0LmdldFBhcmFtZXRlcig3OTM3KSx2ZW5kb3I6dC5nZXRQYXJhbWV0ZXIoNzkzNiksdmVyc2lvbjp0LmdldFBhcmFtZXRlcig3OTM4KSxyZWFkRmxvYXQ6aSxucG90VGV4dHVyZUN1YmU6c319LFc9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBVaW50OEFycmF5fHx0IGluc3RhbmNlb2YgVWludDE2QXJyYXl8fHQgaW5zdGFuY2VvZiBVaW50MzJBcnJheXx8dCBpbnN0YW5jZW9mIEludDhBcnJheXx8dCBpbnN0YW5jZW9mIEludDE2QXJyYXl8fHQgaW5zdGFuY2VvZiBJbnQzMkFycmF5fHx0IGluc3RhbmNlb2YgRmxvYXQzMkFycmF5fHx0IGluc3RhbmNlb2YgRmxvYXQ2NEFycmF5fHx0IGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXl9LFg9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5rZXlzKHQpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0pfSxaPXtzaGFwZTpmdW5jdGlvbih0KXtmb3IodmFyIGU9W107dC5sZW5ndGg7dD10WzBdKWUucHVzaCh0Lmxlbmd0aCk7cmV0dXJuIGV9LGZsYXR0ZW46ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9MTtpZihlLmxlbmd0aClmb3IodmFyIGk9MDtpPGUubGVuZ3RoOysraSlhKj1lW2ldO2Vsc2UgYT0wO3N3aXRjaChyPW58fEcuYWxsb2NUeXBlKHIsYSksZS5sZW5ndGgpe2Nhc2UgMDpicmVhaztjYXNlIDE6Zm9yKG49ZVswXSxlPTA7ZTxuOysrZSlyW2VdPXRbZV07YnJlYWs7Y2FzZSAyOmZvcihuPWVbMF0sZT1lWzFdLGk9YT0wO2k8bjsrK2kpZm9yKHZhciBvPXRbaV0scz0wO3M8ZTsrK3MpclthKytdPW9bc107YnJlYWs7Y2FzZSAzOmModCxlWzBdLGVbMV0sZVsyXSxyLDApO2JyZWFrO2RlZmF1bHQ6IWZ1bmN0aW9uIHQoZSxyLG4sYSxpKXtmb3IodmFyIG89MSxzPW4rMTtzPHIubGVuZ3RoOysrcylvKj1yW3NdO3ZhciBsPXJbbl07aWYoND09ci5sZW5ndGgtbil7dmFyIHU9cltuKzFdLGg9cltuKzJdO2ZvcihyPXJbbiszXSxzPTA7czxsOysrcyljKGVbc10sdSxoLHIsYSxpKSxpKz1vfWVsc2UgZm9yKHM9MDtzPGw7KytzKXQoZVtzXSxyLG4rMSxhLGkpLGkrPW99KHQsZSwwLHIsMCl9cmV0dXJuIHJ9fSxKPXsiW29iamVjdCBJbnQ4QXJyYXldIjo1MTIwLCJbb2JqZWN0IEludDE2QXJyYXldIjo1MTIyLCJbb2JqZWN0IEludDMyQXJyYXldIjo1MTI0LCJbb2JqZWN0IFVpbnQ4QXJyYXldIjo1MTIxLCJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSI6NTEyMSwiW29iamVjdCBVaW50MTZBcnJheV0iOjUxMjMsIltvYmplY3QgVWludDMyQXJyYXldIjo1MTI1LCJbb2JqZWN0IEZsb2F0MzJBcnJheV0iOjUxMjYsIltvYmplY3QgRmxvYXQ2NEFycmF5XSI6NTEyMSwiW29iamVjdCBBcnJheUJ1ZmZlcl0iOjUxMjF9LEs9e2ludDg6NTEyMCxpbnQxNjo1MTIyLGludDMyOjUxMjQsdWludDg6NTEyMSx1aW50MTY6NTEyMyx1aW50MzI6NTEyNSxmbG9hdDo1MTI2LGZsb2F0MzI6NTEyNn0sUT17ZHluYW1pYzozNTA0OCxzdHJlYW06MzUwNDAsc3RhdGljOjM1MDQ0fSwkPVouZmxhdHRlbix0dD1aLnNoYXBlLGV0PVtdO2V0WzUxMjBdPTEsZXRbNTEyMl09MixldFs1MTI0XT00LGV0WzUxMjFdPTEsZXRbNTEyM109MixldFs1MTI1XT00LGV0WzUxMjZdPTQ7dmFyIHJ0PXtwb2ludHM6MCxwb2ludDowLGxpbmVzOjEsbGluZToxLHRyaWFuZ2xlczo0LHRyaWFuZ2xlOjQsImxpbmUgbG9vcCI6MiwibGluZSBzdHJpcCI6MywidHJpYW5nbGUgc3RyaXAiOjUsInRyaWFuZ2xlIGZhbiI6Nn0sbnQ9bmV3IEZsb2F0MzJBcnJheSgxKSxhdD1uZXcgVWludDMyQXJyYXkobnQuYnVmZmVyKSxpdD1bOTk4NCw5OTg2LDk5ODUsOTk4N10sb3Q9WzAsNjQwOSw2NDEwLDY0MDcsNjQwOF0sc3Q9e307c3RbNjQwOV09c3RbNjQwNl09c3RbNjQwMl09MSxzdFszNDA0MV09c3RbNjQxMF09MixzdFs2NDA3XT1zdFszNTkwNF09MyxzdFs2NDA4XT1zdFszNTkwNl09NDt2YXIgbHQ9bSgiSFRNTENhbnZhc0VsZW1lbnQiKSxjdD1tKCJDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQiKSx1dD1tKCJJbWFnZUJpdG1hcCIpLGh0PW0oIkhUTUxJbWFnZUVsZW1lbnQiKSxmdD1tKCJIVE1MVmlkZW9FbGVtZW50IikscHQ9T2JqZWN0LmtleXMoSikuY29uY2F0KFtsdCxjdCx1dCxodCxmdF0pLGR0PVtdO2R0WzUxMjFdPTEsZHRbNTEyNl09NCxkdFszNjE5M109MixkdFs1MTIzXT0yLGR0WzUxMjVdPTQ7dmFyIGd0PVtdO2d0WzMyODU0XT0yLGd0WzMyODU1XT0yLGd0WzM2MTk0XT0yLGd0WzM0MDQxXT00LGd0WzMzNzc2XT0uNSxndFszMzc3N109LjUsZ3RbMzM3NzhdPTEsZ3RbMzM3NzldPTEsZ3RbMzU5ODZdPS41LGd0WzM1OTg3XT0xLGd0WzM0Nzk4XT0xLGd0WzM1ODQwXT0uNSxndFszNTg0MV09LjI1LGd0WzM1ODQyXT0uNSxndFszNTg0M109LjI1LGd0WzM2MTk2XT0uNTt2YXIgdnQ9W107dnRbMzI4NTRdPTIsdnRbMzI4NTVdPTIsdnRbMzYxOTRdPTIsdnRbMzMxODldPTIsdnRbMzYxNjhdPTEsdnRbMzQwNDFdPTQsdnRbMzU5MDddPTQsdnRbMzQ4MzZdPTE2LHZ0WzM0ODQyXT04LHZ0WzM0ODQzXT02O3ZhciBtdD1mdW5jdGlvbih0LGUscixuLGEpe2Z1bmN0aW9uIGkodCl7dGhpcy5pZD1jKyssdGhpcy5yZWZDb3VudD0xLHRoaXMucmVuZGVyYnVmZmVyPXQsdGhpcy5mb3JtYXQ9MzI4NTQsdGhpcy5oZWlnaHQ9dGhpcy53aWR0aD0wLGEucHJvZmlsZSYmKHRoaXMuc3RhdHM9e3NpemU6MH0pfWZ1bmN0aW9uIG8oZSl7dmFyIHI9ZS5yZW5kZXJidWZmZXI7dC5iaW5kUmVuZGVyYnVmZmVyKDM2MTYxLG51bGwpLHQuZGVsZXRlUmVuZGVyYnVmZmVyKHIpLGUucmVuZGVyYnVmZmVyPW51bGwsZS5yZWZDb3VudD0wLGRlbGV0ZSB1W2UuaWRdLG4ucmVuZGVyYnVmZmVyQ291bnQtLX12YXIgcz17cmdiYTQ6MzI4NTQscmdiNTY1OjM2MTk0LCJyZ2I1IGExIjozMjg1NSxkZXB0aDozMzE4OSxzdGVuY2lsOjM2MTY4LCJkZXB0aCBzdGVuY2lsIjozNDA0MX07ZS5leHRfc3JnYiYmKHMuc3JnYmE9MzU5MDcpLGUuZXh0X2NvbG9yX2J1ZmZlcl9oYWxmX2Zsb2F0JiYocy5yZ2JhMTZmPTM0ODQyLHMucmdiMTZmPTM0ODQzKSxlLndlYmdsX2NvbG9yX2J1ZmZlcl9mbG9hdCYmKHMucmdiYTMyZj0zNDgzNik7dmFyIGw9W107T2JqZWN0LmtleXMocykuZm9yRWFjaChmdW5jdGlvbih0KXtsW3NbdF1dPXR9KTt2YXIgYz0wLHU9e307cmV0dXJuIGkucHJvdG90eXBlLmRlY1JlZj1mdW5jdGlvbigpezA+PS0tdGhpcy5yZWZDb3VudCYmbyh0aGlzKX0sYS5wcm9maWxlJiYobi5nZXRUb3RhbFJlbmRlcmJ1ZmZlclNpemU9ZnVuY3Rpb24oKXt2YXIgdD0wO3JldHVybiBPYmplY3Qua2V5cyh1KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QrPXVbZV0uc3RhdHMuc2l6ZX0pLHR9KSx7Y3JlYXRlOmZ1bmN0aW9uKGUscil7ZnVuY3Rpb24gbyhlLHIpe3ZhciBuPTAsaT0wLHU9MzI4NTQ7aWYoIm9iamVjdCI9PXR5cGVvZiBlJiZlPygic2hhcGUiaW4gZT8obj0wfChpPWUuc2hhcGUpWzBdLGk9MHxpWzFdKTooInJhZGl1cyJpbiBlJiYobj1pPTB8ZS5yYWRpdXMpLCJ3aWR0aCJpbiBlJiYobj0wfGUud2lkdGgpLCJoZWlnaHQiaW4gZSYmKGk9MHxlLmhlaWdodCkpLCJmb3JtYXQiaW4gZSYmKHU9c1tlLmZvcm1hdF0pKToibnVtYmVyIj09dHlwZW9mIGU/KG49MHxlLGk9Im51bWJlciI9PXR5cGVvZiByPzB8cjpuKTplfHwobj1pPTEpLG4hPT1jLndpZHRofHxpIT09Yy5oZWlnaHR8fHUhPT1jLmZvcm1hdClyZXR1cm4gby53aWR0aD1jLndpZHRoPW4sby5oZWlnaHQ9Yy5oZWlnaHQ9aSxjLmZvcm1hdD11LHQuYmluZFJlbmRlcmJ1ZmZlcigzNjE2MSxjLnJlbmRlcmJ1ZmZlciksdC5yZW5kZXJidWZmZXJTdG9yYWdlKDM2MTYxLHUsbixpKSxhLnByb2ZpbGUmJihjLnN0YXRzLnNpemU9dnRbYy5mb3JtYXRdKmMud2lkdGgqYy5oZWlnaHQpLG8uZm9ybWF0PWxbYy5mb3JtYXRdLG99dmFyIGM9bmV3IGkodC5jcmVhdGVSZW5kZXJidWZmZXIoKSk7cmV0dXJuIHVbYy5pZF09YyxuLnJlbmRlcmJ1ZmZlckNvdW50KyssbyhlLHIpLG8ucmVzaXplPWZ1bmN0aW9uKGUscil7dmFyIG49MHxlLGk9MHxyfHxuO3JldHVybiBuPT09Yy53aWR0aCYmaT09PWMuaGVpZ2h0P286KG8ud2lkdGg9Yy53aWR0aD1uLG8uaGVpZ2h0PWMuaGVpZ2h0PWksdC5iaW5kUmVuZGVyYnVmZmVyKDM2MTYxLGMucmVuZGVyYnVmZmVyKSx0LnJlbmRlcmJ1ZmZlclN0b3JhZ2UoMzYxNjEsYy5mb3JtYXQsbixpKSxhLnByb2ZpbGUmJihjLnN0YXRzLnNpemU9dnRbYy5mb3JtYXRdKmMud2lkdGgqYy5oZWlnaHQpLG8pfSxvLl9yZWdsVHlwZT0icmVuZGVyYnVmZmVyIixvLl9yZW5kZXJidWZmZXI9YyxhLnByb2ZpbGUmJihvLnN0YXRzPWMuc3RhdHMpLG8uZGVzdHJveT1mdW5jdGlvbigpe2MuZGVjUmVmKCl9LG99LGNsZWFyOmZ1bmN0aW9uKCl7WCh1KS5mb3JFYWNoKG8pfSxyZXN0b3JlOmZ1bmN0aW9uKCl7WCh1KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UucmVuZGVyYnVmZmVyPXQuY3JlYXRlUmVuZGVyYnVmZmVyKCksdC5iaW5kUmVuZGVyYnVmZmVyKDM2MTYxLGUucmVuZGVyYnVmZmVyKSx0LnJlbmRlcmJ1ZmZlclN0b3JhZ2UoMzYxNjEsZS5mb3JtYXQsZS53aWR0aCxlLmhlaWdodCl9KSx0LmJpbmRSZW5kZXJidWZmZXIoMzYxNjEsbnVsbCl9fX0seXQ9W107eXRbNjQwOF09NCx5dFs2NDA3XT0zO3ZhciB4dD1bXTt4dFs1MTIxXT0xLHh0WzUxMjZdPTQseHRbMzYxOTNdPTI7dmFyIGJ0PVsieCIsInkiLCJ6IiwidyJdLF90PSJibGVuZC5mdW5jIGJsZW5kLmVxdWF0aW9uIHN0ZW5jaWwuZnVuYyBzdGVuY2lsLm9wRnJvbnQgc3RlbmNpbC5vcEJhY2sgc2FtcGxlLmNvdmVyYWdlIHZpZXdwb3J0IHNjaXNzb3IuYm94IHBvbHlnb25PZmZzZXQub2Zmc2V0Ii5zcGxpdCgiICIpLHd0PXswOjAsMToxLHplcm86MCxvbmU6MSwic3JjIGNvbG9yIjo3NjgsIm9uZSBtaW51cyBzcmMgY29sb3IiOjc2OSwic3JjIGFscGhhIjo3NzAsIm9uZSBtaW51cyBzcmMgYWxwaGEiOjc3MSwiZHN0IGNvbG9yIjo3NzQsIm9uZSBtaW51cyBkc3QgY29sb3IiOjc3NSwiZHN0IGFscGhhIjo3NzIsIm9uZSBtaW51cyBkc3QgYWxwaGEiOjc3MywiY29uc3RhbnQgY29sb3IiOjMyNzY5LCJvbmUgbWludXMgY29uc3RhbnQgY29sb3IiOjMyNzcwLCJjb25zdGFudCBhbHBoYSI6MzI3NzEsIm9uZSBtaW51cyBjb25zdGFudCBhbHBoYSI6MzI3NzIsInNyYyBhbHBoYSBzYXR1cmF0ZSI6Nzc2fSxrdD17bmV2ZXI6NTEyLGxlc3M6NTEzLCI8Ijo1MTMsZXF1YWw6NTE0LCI9Ijo1MTQsIj09Ijo1MTQsIj09PSI6NTE0LGxlcXVhbDo1MTUsIjw9Ijo1MTUsZ3JlYXRlcjo1MTYsIj4iOjUxNixub3RlcXVhbDo1MTcsIiE9Ijo1MTcsIiE9PSI6NTE3LGdlcXVhbDo1MTgsIj49Ijo1MTgsYWx3YXlzOjUxOX0sVHQ9ezA6MCx6ZXJvOjAsa2VlcDo3NjgwLHJlcGxhY2U6NzY4MSxpbmNyZW1lbnQ6NzY4MixkZWNyZW1lbnQ6NzY4MywiaW5jcmVtZW50IHdyYXAiOjM0MDU1LCJkZWNyZW1lbnQgd3JhcCI6MzQwNTYsaW52ZXJ0OjUzODZ9LE10PXtjdzoyMzA0LGNjdzoyMzA1fSxBdD1uZXcgSSghMSwhMSwhMSxmdW5jdGlvbigpe30pO3JldHVybiBmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7aWYoMD09PVoubGVuZ3RoKXcmJncudXBkYXRlKCksJD1udWxsO2Vsc2V7JD1xLm5leHQoZSksaCgpO2Zvcih2YXIgdD1aLmxlbmd0aC0xOzA8PXQ7LS10KXt2YXIgcj1aW3RdO3ImJnIoUCxudWxsLDApfXYuZmx1c2goKSx3JiZ3LnVwZGF0ZSgpfX1mdW5jdGlvbiByKCl7ISQmJjA8Wi5sZW5ndGgmJigkPXEubmV4dChlKSl9ZnVuY3Rpb24gbigpeyQmJihxLmNhbmNlbChlKSwkPW51bGwpfWZ1bmN0aW9uIGkodCl7dC5wcmV2ZW50RGVmYXVsdCgpLG4oKSxKLmZvckVhY2goZnVuY3Rpb24odCl7dCgpfSl9ZnVuY3Rpb24gbyh0KXt2LmdldEVycm9yKCkseS5yZXN0b3JlKCksRC5yZXN0b3JlKCksei5yZXN0b3JlKCksUi5yZXN0b3JlKCksRi5yZXN0b3JlKCksVi5yZXN0b3JlKCksdyYmdy5yZXN0b3JlKCksRy5wcm9jcy5yZWZyZXNoKCkscigpLEsuZm9yRWFjaChmdW5jdGlvbih0KXt0KCl9KX1mdW5jdGlvbiBzKHQpe2Z1bmN0aW9uIGUodCl7dmFyIGU9e30scj17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgYT10W25dO1UuaXNEeW5hbWljKGEpP3Jbbl09VS51bmJveChhLG4pOmVbbl09YX0pLHtkeW5hbWljOnIsc3RhdGljOmV9fXZhciByPWUodC5jb250ZXh0fHx7fSksbj1lKHQudW5pZm9ybXN8fHt9KSxhPWUodC5hdHRyaWJ1dGVzfHx7fSksaT1lKGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUodCl7aWYodCBpbiByKXt2YXIgZT1yW3RdO2RlbGV0ZSByW3RdLE9iamVjdC5rZXlzKGUpLmZvckVhY2goZnVuY3Rpb24obil7clt0KyIuIituXT1lW25dfSl9fXZhciByPWooe30sdCk7cmV0dXJuIGRlbGV0ZSByLnVuaWZvcm1zLGRlbGV0ZSByLmF0dHJpYnV0ZXMsZGVsZXRlIHIuY29udGV4dCwic3RlbmNpbCJpbiByJiZyLnN0ZW5jaWwub3AmJihyLnN0ZW5jaWwub3BCYWNrPXIuc3RlbmNpbC5vcEZyb250PXIuc3RlbmNpbC5vcCxkZWxldGUgci5zdGVuY2lsLm9wKSxlKCJibGVuZCIpLGUoImRlcHRoIiksZSgiY3VsbCIpLGUoInN0ZW5jaWwiKSxlKCJwb2x5Z29uT2Zmc2V0IiksZSgic2Npc3NvciIpLGUoInNhbXBsZSIpLHJ9KHQpKTt0PXtncHVUaW1lOjAsY3B1VGltZTowLGNvdW50OjB9O3ZhciBvPShyPUcuY29tcGlsZShpLGEsbixyLHQpKS5kcmF3LHM9ci5iYXRjaCxsPXIuc2NvcGUsYz1bXTtyZXR1cm4gaihmdW5jdGlvbih0LGUpe3ZhciByO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0KXJldHVybiBsLmNhbGwodGhpcyxudWxsLHQsMCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUpaWYoIm51bWJlciI9PXR5cGVvZiB0KWZvcihyPTA7cjx0OysrcilsLmNhbGwodGhpcyxudWxsLGUscik7ZWxzZXtpZighQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gbC5jYWxsKHRoaXMsdCxlLDApO2ZvcihyPTA7cjx0Lmxlbmd0aDsrK3IpbC5jYWxsKHRoaXMsdFtyXSxlLHIpfWVsc2UgaWYoIm51bWJlciI9PXR5cGVvZiB0KXtpZigwPHQpcmV0dXJuIHMuY2FsbCh0aGlzLGZ1bmN0aW9uKHQpe2Zvcig7Yy5sZW5ndGg8dDspYy5wdXNoKG51bGwpO3JldHVybiBjfSgwfHQpLDB8dCl9ZWxzZXtpZighQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gby5jYWxsKHRoaXMsdCk7aWYodC5sZW5ndGgpcmV0dXJuIHMuY2FsbCh0aGlzLHQsdC5sZW5ndGgpfX0se3N0YXRzOnR9KX1mdW5jdGlvbiBsKHQsZSl7dmFyIHI9MDtHLnByb2NzLnBvbGwoKTt2YXIgbj1lLmNvbG9yO24mJih2LmNsZWFyQ29sb3IoK25bMF18fDAsK25bMV18fDAsK25bMl18fDAsK25bM118fDApLHJ8PTE2Mzg0KSwiZGVwdGgiaW4gZSYmKHYuY2xlYXJEZXB0aCgrZS5kZXB0aCkscnw9MjU2KSwic3RlbmNpbCJpbiBlJiYodi5jbGVhclN0ZW5jaWwoMHxlLnN0ZW5jaWwpLHJ8PTEwMjQpLHYuY2xlYXIocil9ZnVuY3Rpb24gYyh0KXtyZXR1cm4gWi5wdXNoKHQpLHIoKSx7Y2FuY2VsOmZ1bmN0aW9uKCl7dmFyIGU9TihaLHQpO1pbZV09ZnVuY3Rpb24gdCgpe3ZhciBlPU4oWix0KTtaW2VdPVpbWi5sZW5ndGgtMV0sLS1aLmxlbmd0aCwwPj1aLmxlbmd0aCYmbigpfX19fWZ1bmN0aW9uIHUoKXt2YXIgdD1XLnZpZXdwb3J0LGU9Vy5zY2lzc29yX2JveDt0WzBdPXRbMV09ZVswXT1lWzFdPTAsUC52aWV3cG9ydFdpZHRoPVAuZnJhbWVidWZmZXJXaWR0aD1QLmRyYXdpbmdCdWZmZXJXaWR0aD10WzJdPWVbMl09di5kcmF3aW5nQnVmZmVyV2lkdGgsUC52aWV3cG9ydEhlaWdodD1QLmZyYW1lYnVmZmVySGVpZ2h0PVAuZHJhd2luZ0J1ZmZlckhlaWdodD10WzNdPWVbM109di5kcmF3aW5nQnVmZmVySGVpZ2h0fWZ1bmN0aW9uIGgoKXtQLnRpY2srPTEsUC50aW1lPWcoKSx1KCksRy5wcm9jcy5wb2xsKCl9ZnVuY3Rpb24gZigpe3UoKSxHLnByb2NzLnJlZnJlc2goKSx3JiZ3LnVwZGF0ZSgpfWZ1bmN0aW9uIGcoKXtyZXR1cm4oSCgpLWspLzFlM31pZighKHQ9YSh0KSkpcmV0dXJuIG51bGw7dmFyIHY9dC5nbCxtPXYuZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKTt2LmlzQ29udGV4dExvc3QoKTt2YXIgeT1mdW5jdGlvbih0LGUpe2Z1bmN0aW9uIHIoZSl7dmFyIHI7ZT1lLnRvTG93ZXJDYXNlKCk7dHJ5e3I9bltlXT10LmdldEV4dGVuc2lvbihlKX1jYXRjaCh0KXt9cmV0dXJuISFyfWZvcih2YXIgbj17fSxhPTA7YTxlLmV4dGVuc2lvbnMubGVuZ3RoOysrYSl7dmFyIGk9ZS5leHRlbnNpb25zW2FdO2lmKCFyKGkpKXJldHVybiBlLm9uRGVzdHJveSgpLGUub25Eb25lKCciJytpKyciIGV4dGVuc2lvbiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBjdXJyZW50IFdlYkdMIGNvbnRleHQsIHRyeSB1cGdyYWRpbmcgeW91ciBzeXN0ZW0gb3IgYSBkaWZmZXJlbnQgYnJvd3NlcicpLG51bGx9cmV0dXJuIGUub3B0aW9uYWxFeHRlbnNpb25zLmZvckVhY2gocikse2V4dGVuc2lvbnM6bixyZXN0b3JlOmZ1bmN0aW9uKCl7T2JqZWN0LmtleXMobikuZm9yRWFjaChmdW5jdGlvbih0KXtpZihuW3RdJiYhcih0KSl0aHJvdyBFcnJvcigiKHJlZ2wpOiBlcnJvciByZXN0b3JpbmcgZXh0ZW5zaW9uICIrdCl9KX19fSh2LHQpO2lmKCF5KXJldHVybiBudWxsO3ZhciB4PWZ1bmN0aW9uKCl7dmFyIHQ9eyIiOjB9LGU9WyIiXTtyZXR1cm57aWQ6ZnVuY3Rpb24ocil7dmFyIG49dFtyXTtyZXR1cm4gbnx8KG49dFtyXT1lLmxlbmd0aCxlLnB1c2gociksbil9LHN0cjpmdW5jdGlvbih0KXtyZXR1cm4gZVt0XX19fSgpLGI9e2J1ZmZlckNvdW50OjAsZWxlbWVudHNDb3VudDowLGZyYW1lYnVmZmVyQ291bnQ6MCxzaGFkZXJDb3VudDowLHRleHR1cmVDb3VudDowLGN1YmVDb3VudDowLHJlbmRlcmJ1ZmZlckNvdW50OjAsbWF4VGV4dHVyZVVuaXRzOjB9LF89eS5leHRlbnNpb25zLHc9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKCl7dGhpcy5lbmRRdWVyeUluZGV4PXRoaXMuc3RhcnRRdWVyeUluZGV4PS0xLHRoaXMuc3VtPTAsdGhpcy5zdGF0cz1udWxsfWZ1bmN0aW9uIG4odCxlLG4pe3ZhciBhPW8ucG9wKCl8fG5ldyByO2Euc3RhcnRRdWVyeUluZGV4PXQsYS5lbmRRdWVyeUluZGV4PWUsYS5zdW09MCxhLnN0YXRzPW4scy5wdXNoKGEpfWlmKCFlLmV4dF9kaXNqb2ludF90aW1lcl9xdWVyeSlyZXR1cm4gbnVsbDt2YXIgYT1bXSxpPVtdLG89W10scz1bXSxsPVtdLGM9W107cmV0dXJue2JlZ2luUXVlcnk6ZnVuY3Rpb24odCl7dmFyIHI9YS5wb3AoKXx8ZS5leHRfZGlzam9pbnRfdGltZXJfcXVlcnkuY3JlYXRlUXVlcnlFWFQoKTtlLmV4dF9kaXNqb2ludF90aW1lcl9xdWVyeS5iZWdpblF1ZXJ5RVhUKDM1MDA3LHIpLGkucHVzaChyKSxuKGkubGVuZ3RoLTEsaS5sZW5ndGgsdCl9LGVuZFF1ZXJ5OmZ1bmN0aW9uKCl7ZS5leHRfZGlzam9pbnRfdGltZXJfcXVlcnkuZW5kUXVlcnlFWFQoMzUwMDcpfSxwdXNoU2NvcGVTdGF0czpuLHVwZGF0ZTpmdW5jdGlvbigpe3ZhciB0LHI7aWYoMCE9PSh0PWkubGVuZ3RoKSl7Yy5sZW5ndGg9TWF0aC5tYXgoYy5sZW5ndGgsdCsxKSxsLmxlbmd0aD1NYXRoLm1heChsLmxlbmd0aCx0KzEpLGxbMF09MDt2YXIgbj1jWzBdPTA7Zm9yKHI9dD0wO3I8aS5sZW5ndGg7KytyKXt2YXIgdT1pW3JdO2UuZXh0X2Rpc2pvaW50X3RpbWVyX3F1ZXJ5LmdldFF1ZXJ5T2JqZWN0RVhUKHUsMzQ5MTkpPyhuKz1lLmV4dF9kaXNqb2ludF90aW1lcl9xdWVyeS5nZXRRdWVyeU9iamVjdEVYVCh1LDM0OTE4KSxhLnB1c2godSkpOmlbdCsrXT11LGxbcisxXT1uLGNbcisxXT10fWZvcihpLmxlbmd0aD10LHI9dD0wO3I8cy5sZW5ndGg7KytyKXt2YXIgaD0obj1zW3JdKS5zdGFydFF1ZXJ5SW5kZXg7dT1uLmVuZFF1ZXJ5SW5kZXgsbi5zdW0rPWxbdV0tbFtoXSxoPWNbaF0sKHU9Y1t1XSk9PT1oPyhuLnN0YXRzLmdwdVRpbWUrPW4uc3VtLzFlNixvLnB1c2gobikpOihuLnN0YXJ0UXVlcnlJbmRleD1oLG4uZW5kUXVlcnlJbmRleD11LHNbdCsrXT1uKX1zLmxlbmd0aD10fX0sZ2V0TnVtUGVuZGluZ1F1ZXJpZXM6ZnVuY3Rpb24oKXtyZXR1cm4gaS5sZW5ndGh9LGNsZWFyOmZ1bmN0aW9uKCl7YS5wdXNoLmFwcGx5KGEsaSk7Zm9yKHZhciB0PTA7dDxhLmxlbmd0aDt0KyspZS5leHRfZGlzam9pbnRfdGltZXJfcXVlcnkuZGVsZXRlUXVlcnlFWFQoYVt0XSk7aS5sZW5ndGg9MCxhLmxlbmd0aD0wfSxyZXN0b3JlOmZ1bmN0aW9uKCl7aS5sZW5ndGg9MCxhLmxlbmd0aD0wfX19KDAsXyksaz1IKCksTD12LmRyYXdpbmdCdWZmZXJXaWR0aCxDPXYuZHJhd2luZ0J1ZmZlckhlaWdodCxQPXt0aWNrOjAsdGltZTowLHZpZXdwb3J0V2lkdGg6TCx2aWV3cG9ydEhlaWdodDpDLGZyYW1lYnVmZmVyV2lkdGg6TCxmcmFtZWJ1ZmZlckhlaWdodDpDLGRyYXdpbmdCdWZmZXJXaWR0aDpMLGRyYXdpbmdCdWZmZXJIZWlnaHQ6QyxwaXhlbFJhdGlvOnQucGl4ZWxSYXRpb30sTz1ZKHYsXyksej0oTD1mdW5jdGlvbih0LGUscixuKXtmb3IodD1yLm1heEF0dHJpYnV0ZXMsZT1BcnJheSh0KSxyPTA7cjx0OysrcillW3JdPW5ldyBBO3JldHVybntSZWNvcmQ6QSxzY29wZTp7fSxzdGF0ZTplfX0odixfLE8pLHAodixiLHQsTCkpLEk9ZCh2LF8seixiKSxEPVModix4LGIsdCksUj1UKHYsXyxPLGZ1bmN0aW9uKCl7Ry5wcm9jcy5wb2xsKCl9LFAsYix0KSxGPW10KHYsXywwLGIsdCksVj1NKHYsXyxPLFIsRixiKSxHPUIodix4LF8sTyx6LEksMCxWLHt9LEwsRCx7ZWxlbWVudHM6bnVsbCxwcmltaXRpdmU6NCxjb3VudDotMSxvZmZzZXQ6MCxpbnN0YW5jZXM6LTF9LFAsdyx0KSxXPSh4PUUodixWLEcucHJvY3MucG9sbCxQKSxHLm5leHQpLFg9di5jYW52YXMsWj1bXSxKPVtdLEs9W10sUT1bdC5vbkRlc3Ryb3ldLCQ9bnVsbDtYJiYoWC5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRsb3N0IixpLCExKSxYLmFkZEV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dHJlc3RvcmVkIixvLCExKSk7dmFyIHR0PVYuc2V0RkJPPXMoe2ZyYW1lYnVmZmVyOlUuZGVmaW5lLmNhbGwobnVsbCwxLCJmcmFtZWJ1ZmZlciIpfSk7cmV0dXJuIGYoKSxtPWoocyx7Y2xlYXI6ZnVuY3Rpb24odCl7aWYoImZyYW1lYnVmZmVyImluIHQpaWYodC5mcmFtZWJ1ZmZlciYmImZyYW1lYnVmZmVyQ3ViZSI9PT10LmZyYW1lYnVmZmVyX3JlZ2xUeXBlKWZvcih2YXIgZT0wOzY+ZTsrK2UpdHQoaih7ZnJhbWVidWZmZXI6dC5mcmFtZWJ1ZmZlci5mYWNlc1tlXX0sdCksbCk7ZWxzZSB0dCh0LGwpO2Vsc2UgbCgwLHQpfSxwcm9wOlUuZGVmaW5lLmJpbmQobnVsbCwxKSxjb250ZXh0OlUuZGVmaW5lLmJpbmQobnVsbCwyKSx0aGlzOlUuZGVmaW5lLmJpbmQobnVsbCwzKSxkcmF3OnMoe30pLGJ1ZmZlcjpmdW5jdGlvbih0KXtyZXR1cm4gei5jcmVhdGUodCwzNDk2MiwhMSwhMSl9LGVsZW1lbnRzOmZ1bmN0aW9uKHQpe3JldHVybiBJLmNyZWF0ZSh0LCExKX0sdGV4dHVyZTpSLmNyZWF0ZTJELGN1YmU6Ui5jcmVhdGVDdWJlLHJlbmRlcmJ1ZmZlcjpGLmNyZWF0ZSxmcmFtZWJ1ZmZlcjpWLmNyZWF0ZSxmcmFtZWJ1ZmZlckN1YmU6Vi5jcmVhdGVDdWJlLGF0dHJpYnV0ZXM6bSxmcmFtZTpjLG9uOmZ1bmN0aW9uKHQsZSl7dmFyIHI7c3dpdGNoKHQpe2Nhc2UiZnJhbWUiOnJldHVybiBjKGUpO2Nhc2UibG9zdCI6cj1KO2JyZWFrO2Nhc2UicmVzdG9yZSI6cj1LO2JyZWFrO2Nhc2UiZGVzdHJveSI6cj1RfXJldHVybiByLnB1c2goZSkse2NhbmNlbDpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8ci5sZW5ndGg7Kyt0KWlmKHJbdF09PT1lKXtyW3RdPXJbci5sZW5ndGgtMV0sci5wb3AoKTticmVha319fX0sbGltaXRzOk8saGFzRXh0ZW5zaW9uOmZ1bmN0aW9uKHQpe3JldHVybiAwPD1PLmV4dGVuc2lvbnMuaW5kZXhPZih0LnRvTG93ZXJDYXNlKCkpfSxyZWFkOngsZGVzdHJveTpmdW5jdGlvbigpe1oubGVuZ3RoPTAsbigpLFgmJihYLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dGxvc3QiLGkpLFgucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2ViZ2xjb250ZXh0cmVzdG9yZWQiLG8pKSxELmNsZWFyKCksVi5jbGVhcigpLEYuY2xlYXIoKSxSLmNsZWFyKCksSS5jbGVhcigpLHouY2xlYXIoKSx3JiZ3LmNsZWFyKCksUS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QoKX0pfSxfZ2w6dixfcmVmcmVzaDpmLHBvbGw6ZnVuY3Rpb24oKXtoKCksdyYmdy51cGRhdGUoKX0sbm93Omcsc3RhdHM6Yn0pLHQub25Eb25lKG51bGwsbSksbX19LCJvYmplY3QiPT10eXBlb2YgciYmInVuZGVmaW5lZCIhPXR5cGVvZiBlP2UuZXhwb3J0cz1hKCk6bi5jcmVhdGVSRUdMPWEoKX0se31dLDUwMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixhPSIiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2lmKCJzdHJpbmciIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJleHBlY3RlZCBhIHN0cmluZyIpO2lmKDE9PT1lKXJldHVybiB0O2lmKDI9PT1lKXJldHVybiB0K3Q7dmFyIHI9dC5sZW5ndGgqZTtpZihuIT09dHx8InVuZGVmaW5lZCI9PXR5cGVvZiBuKW49dCxhPSIiO2Vsc2UgaWYoYS5sZW5ndGg+PXIpcmV0dXJuIGEuc3Vic3RyKDAscik7Zm9yKDtyPmEubGVuZ3RoJiZlPjE7KTEmZSYmKGErPXQpLGU+Pj0xLHQrPXQ7cmV0dXJuIGE9KGErPXQpLnN1YnN0cigwLHIpfX0se31dLDUwMzpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbih0KXtlLmV4cG9ydHM9dC5wZXJmb3JtYW5jZSYmdC5wZXJmb3JtYW5jZS5ub3c/ZnVuY3Rpb24oKXtyZXR1cm4gcGVyZm9ybWFuY2Uubm93KCl9OkRhdGUubm93fHxmdW5jdGlvbigpe3JldHVybituZXcgRGF0ZX19KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHt9XSw1MDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Lmxlbmd0aCxyPXRbdC5sZW5ndGgtMV0sbj1lLGE9ZS0yO2E+PTA7LS1hKXt2YXIgaT1yLG89dFthXSxzPShyPWkrbyktaSxsPW8tcztsJiYodFstLW5dPXIscj1sKX1mb3IodmFyIGM9MCxhPW47YTxlOysrYSl7dmFyIGk9dFthXSxvPXIscz0ocj1pK28pLWksbD1vLXM7bCYmKHRbYysrXT1sKX1yZXR1cm4gdFtjKytdPXIsdC5sZW5ndGg9Yyx0fX0se31dLDUwNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJ0d28tcHJvZHVjdCIpLGE9dCgicm9idXN0LXN1bSIpLGk9dCgicm9idXN0LXNjYWxlIiksbz10KCJyb2J1c3QtY29tcHJlc3MiKSxzPTY7ZnVuY3Rpb24gbCh0LGUpe2Zvcih2YXIgcj1uZXcgQXJyYXkodC5sZW5ndGgtMSksbj0xO248dC5sZW5ndGg7KytuKWZvcih2YXIgYT1yW24tMV09bmV3IEFycmF5KHQubGVuZ3RoLTEpLGk9MCxvPTA7aTx0Lmxlbmd0aDsrK2kpaSE9PWUmJihhW28rK109dFtuXVtpXSk7cmV0dXJuIHJ9ZnVuY3Rpb24gYyh0KXtmb3IodmFyIGU9bmV3IEFycmF5KHQpLHI9MDtyPHQ7KytyKXtlW3JdPW5ldyBBcnJheSh0KTtmb3IodmFyIG49MDtuPHQ7KytuKWVbcl1bbl09WyJtWyIsciwiXVsiLG4sIl0iXS5qb2luKCIiKX1yZXR1cm4gZX1mdW5jdGlvbiB1KHQpe2lmKDI9PT10Lmxlbmd0aClyZXR1cm5bInN1bShwcm9kKCIsdFswXVswXSwiLCIsdFsxXVsxXSwiKSxwcm9kKC0iLHRbMF1bMV0sIiwiLHRbMV1bMF0sIikpIl0uam9pbigiIik7Zm9yKHZhciBlPVtdLHI9MDtyPHQubGVuZ3RoOysrcillLnB1c2goWyJzY2FsZSgiLHUobCh0LHIpKSwiLCIsKG49ciwxJm4/Ii0iOiIiKSx0WzBdW3JdLCIpIl0uam9pbigiIikpO3JldHVybiBmdW5jdGlvbiB0KGUpe2lmKDE9PT1lLmxlbmd0aClyZXR1cm4gZVswXTtpZigyPT09ZS5sZW5ndGgpcmV0dXJuWyJzdW0oIixlWzBdLCIsIixlWzFdLCIpIl0uam9pbigiIik7dmFyIHI9ZS5sZW5ndGg+PjE7cmV0dXJuWyJzdW0oIix0KGUuc2xpY2UoMCxyKSksIiwiLHQoZS5zbGljZShyKSksIikiXS5qb2luKCIiKX0oZSk7dmFyIG59ZnVuY3Rpb24gaCh0KXtyZXR1cm4gbmV3IEZ1bmN0aW9uKCJzdW0iLCJzY2FsZSIsInByb2QiLCJjb21wcmVzcyIsWyJmdW5jdGlvbiByb2J1c3REZXRlcm1pbmFudCIsdCwiKG0pe3JldHVybiBjb21wcmVzcygiLHUoYyh0KSksIil9O3JldHVybiByb2J1c3REZXRlcm1pbmFudCIsdF0uam9pbigiIikpKGEsaSxuLG8pfXZhciBmPVtmdW5jdGlvbigpe3JldHVyblswXX0sZnVuY3Rpb24odCl7cmV0dXJuW3RbMF1bMF1dfV07IWZ1bmN0aW9uKCl7Zm9yKDtmLmxlbmd0aDxzOylmLnB1c2goaChmLmxlbmd0aCkpO2Zvcih2YXIgdD1bXSxyPVsiZnVuY3Rpb24gcm9idXN0RGV0ZXJtaW5hbnQobSl7c3dpdGNoKG0ubGVuZ3RoKXsiXSxuPTA7bjxzOysrbil0LnB1c2goImRldCIrbiksci5wdXNoKCJjYXNlICIsbiwiOnJldHVybiBkZXQiLG4sIihtKTsiKTtyLnB1c2goIn12YXIgZGV0PUNBQ0hFW20ubGVuZ3RoXTtpZighZGV0KWRldD1DQUNIRVttLmxlbmd0aF09Z2VuKG0ubGVuZ3RoKTtyZXR1cm4gZGV0KG0pO31yZXR1cm4gcm9idXN0RGV0ZXJtaW5hbnQiKSx0LnB1c2goIkNBQ0hFIiwiZ2VuIixyLmpvaW4oIiIpKTt2YXIgYT1GdW5jdGlvbi5hcHBseSh2b2lkIDAsdCk7Zm9yKGUuZXhwb3J0cz1hLmFwcGx5KHZvaWQgMCxmLmNvbmNhdChbZixoXSkpLG49MDtuPGYubGVuZ3RoOysrbillLmV4cG9ydHNbbl09ZltuXX0oKX0seyJyb2J1c3QtY29tcHJlc3MiOjUwNCwicm9idXN0LXNjYWxlIjo1MTEsInJvYnVzdC1zdW0iOjUxNCwidHdvLXByb2R1Y3QiOjU0Mn1dLDUwNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJ0d28tcHJvZHVjdCIpLGE9dCgicm9idXN0LXN1bSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1uKHRbMF0sZVswXSksaT0xO2k8dC5sZW5ndGg7KytpKXI9YShyLG4odFtpXSxlW2ldKSk7cmV0dXJuIHJ9fSx7InJvYnVzdC1zdW0iOjUxNCwidHdvLXByb2R1Y3QiOjU0Mn1dLDUwNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJ0d28tcHJvZHVjdCIpLGE9dCgicm9idXN0LXN1bSIpLGk9dCgicm9idXN0LXN1YnRyYWN0Iiksbz10KCJyb2J1c3Qtc2NhbGUiKSxzPTY7ZnVuY3Rpb24gbCh0LGUpe2Zvcih2YXIgcj1uZXcgQXJyYXkodC5sZW5ndGgtMSksbj0xO248dC5sZW5ndGg7KytuKWZvcih2YXIgYT1yW24tMV09bmV3IEFycmF5KHQubGVuZ3RoLTEpLGk9MCxvPTA7aTx0Lmxlbmd0aDsrK2kpaSE9PWUmJihhW28rK109dFtuXVtpXSk7cmV0dXJuIHJ9ZnVuY3Rpb24gYyh0KXtpZigxPT09dC5sZW5ndGgpcmV0dXJuIHRbMF07aWYoMj09PXQubGVuZ3RoKXJldHVyblsic3VtKCIsdFswXSwiLCIsdFsxXSwiKSJdLmpvaW4oIiIpO3ZhciBlPXQubGVuZ3RoPj4xO3JldHVyblsic3VtKCIsYyh0LnNsaWNlKDAsZSkpLCIsIixjKHQuc2xpY2UoZSkpLCIpIl0uam9pbigiIil9ZnVuY3Rpb24gdSh0LGUpe2lmKCJtIj09PXQuY2hhckF0KDApKXtpZigidyI9PT1lLmNoYXJBdCgwKSl7dmFyIHI9dC5zcGxpdCgiWyIpO3JldHVyblsidyIsZS5zdWJzdHIoMSksIm0iLHJbMF0uc3Vic3RyKDEpXS5qb2luKCIiKX1yZXR1cm5bInByb2QoIix0LCIsIixlLCIpIl0uam9pbigiIil9cmV0dXJuIHUoZSx0KX1mdW5jdGlvbiBoKHQpe2lmKDI9PT10Lmxlbmd0aClyZXR1cm5bWyJkaWZmKCIsdSh0WzBdWzBdLHRbMV1bMV0pLCIsIix1KHRbMV1bMF0sdFswXVsxXSksIikiXS5qb2luKCIiKV07Zm9yKHZhciBlPVtdLHI9MDtyPHQubGVuZ3RoOysrcillLnB1c2goWyJzY2FsZSgiLGMoaChsKHQscikpKSwiLCIsKG49ciwhMCZuPyItIjoiIiksdFswXVtyXSwiKSJdLmpvaW4oIiIpKTtyZXR1cm4gZTt2YXIgbn1mdW5jdGlvbiBmKHQsZSl7Zm9yKHZhciByPVtdLG49MDtuPGUtMjsrK24pci5wdXNoKFsicHJvZChtIix0LCJbIixuLCJdLG0iLHQsIlsiLG4sIl0pIl0uam9pbigiIikpO3JldHVybiBjKHIpfWZ1bmN0aW9uIHAodCl7Zm9yKHZhciBlPVtdLHI9W10scz1mdW5jdGlvbih0KXtmb3IodmFyIGU9bmV3IEFycmF5KHQpLHI9MDtyPHQ7KytyKXtlW3JdPW5ldyBBcnJheSh0KTtmb3IodmFyIG49MDtuPHQ7KytuKWVbcl1bbl09WyJtIixuLCJbIix0LXItMiwiXSJdLmpvaW4oIiIpfXJldHVybiBlfSh0KSx1PTA7dTx0OysrdSlzWzBdW3VdPSIxIixzW3QtMV1bdV09InciK3U7Zm9yKHU9MDt1PHQ7Kyt1KTA9PSgxJnUpP2UucHVzaC5hcHBseShlLGgobChzLHUpKSk6ci5wdXNoLmFwcGx5KHIsaChsKHMsdSkpKTt2YXIgcD1jKGUpLGQ9YyhyKSxnPSJleGFjdEluU3BoZXJlIit0LHY9W107Zm9yKHU9MDt1PHQ7Kyt1KXYucHVzaCgibSIrdSk7dmFyIG09WyJmdW5jdGlvbiAiLGcsIigiLHYuam9pbigpLCIpeyJdO2Zvcih1PTA7dTx0OysrdSl7bS5wdXNoKCJ2YXIgdyIsdSwiPSIsZih1LHQpLCI7Iik7Zm9yKHZhciB5PTA7eTx0OysreSl5IT09dSYmbS5wdXNoKCJ2YXIgdyIsdSwibSIseSwiPXNjYWxlKHciLHUsIixtIix5LCJbMF0pOyIpfXJldHVybiBtLnB1c2goInZhciBwPSIscCwiLG49IixkLCIsZD1kaWZmKHAsbik7cmV0dXJuIGRbZC5sZW5ndGgtMV07fXJldHVybiAiLGcpLG5ldyBGdW5jdGlvbigic3VtIiwiZGlmZiIsInByb2QiLCJzY2FsZSIsbS5qb2luKCIiKSkoYSxpLG4sbyl9dmFyIGQ9W2Z1bmN0aW9uKCl7cmV0dXJuIDB9LGZ1bmN0aW9uKCl7cmV0dXJuIDB9LGZ1bmN0aW9uKCl7cmV0dXJuIDB9XTtmdW5jdGlvbiBnKHQpe3ZhciBlPWRbdC5sZW5ndGhdO3JldHVybiBlfHwoZT1kW3QubGVuZ3RoXT1wKHQubGVuZ3RoKSksZS5hcHBseSh2b2lkIDAsdCl9IWZ1bmN0aW9uKCl7Zm9yKDtkLmxlbmd0aDw9czspZC5wdXNoKHAoZC5sZW5ndGgpKTtmb3IodmFyIHQ9W10scj1bInNsb3ciXSxuPTA7bjw9czsrK24pdC5wdXNoKCJhIituKSxyLnB1c2goIm8iK24pO3ZhciBhPVsiZnVuY3Rpb24gdGVzdEluU3BoZXJlKCIsdC5qb2luKCksIil7c3dpdGNoKGFyZ3VtZW50cy5sZW5ndGgpe2Nhc2UgMDpjYXNlIDE6cmV0dXJuIDA7Il07Zm9yKG49MjtuPD1zOysrbilhLnB1c2goImNhc2UgIixuLCI6cmV0dXJuIG8iLG4sIigiLHQuc2xpY2UoMCxuKS5qb2luKCksIik7Iik7YS5wdXNoKCJ9dmFyIHM9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpO2Zvcih2YXIgaT0wO2k8YXJndW1lbnRzLmxlbmd0aDsrK2kpe3NbaV09YXJndW1lbnRzW2ldfTtyZXR1cm4gc2xvdyhzKTt9cmV0dXJuIHRlc3RJblNwaGVyZSIpLHIucHVzaChhLmpvaW4oIiIpKTt2YXIgaT1GdW5jdGlvbi5hcHBseSh2b2lkIDAscik7Zm9yKGUuZXhwb3J0cz1pLmFwcGx5KHZvaWQgMCxbZ10uY29uY2F0KGQpKSxuPTA7bjw9czsrK24pZS5leHBvcnRzW25dPWRbbl19KCl9LHsicm9idXN0LXNjYWxlIjo1MTEsInJvYnVzdC1zdWJ0cmFjdCI6NTEzLCJyb2J1c3Qtc3VtIjo1MTQsInR3by1wcm9kdWN0Ijo1NDJ9XSw1MDg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgicm9idXN0LWRldGVybWluYW50IiksYT02O2Z1bmN0aW9uIGkodCl7Zm9yKHZhciBlPSJyb2J1c3RMaW5lYXJTb2x2ZSIrdCsiZCIscj1bImZ1bmN0aW9uICIsZSwiKEEsYil7cmV0dXJuIFsiXSxhPTA7YTx0OysrYSl7ci5wdXNoKCJkZXQoWyIpO2Zvcih2YXIgaT0wO2k8dDsrK2kpe2k+MCYmci5wdXNoKCIsIiksci5wdXNoKCJbIik7Zm9yKHZhciBvPTA7bzx0OysrbylvPjAmJnIucHVzaCgiLCIpLG89PT1hP3IucHVzaCgiK2JbIixpLCJdIik6ci5wdXNoKCIrQVsiLGksIl1bIixvLCJdIik7ci5wdXNoKCJdIil9ci5wdXNoKCJdKSwiKX1yLnB1c2goImRldChBKV19cmV0dXJuICIsZSk7dmFyIHM9bmV3IEZ1bmN0aW9uKCJkZXQiLHIuam9pbigiIikpO3JldHVybiBzKHQ8Nj9uW3RdOm4pfXZhciBvPVtmdW5jdGlvbigpe3JldHVyblswXX0sZnVuY3Rpb24odCxlKXtyZXR1cm5bW2VbMF1dLFt0WzBdWzBdXV19XTshZnVuY3Rpb24oKXtmb3IoO28ubGVuZ3RoPGE7KW8ucHVzaChpKG8ubGVuZ3RoKSk7Zm9yKHZhciB0PVtdLHI9WyJmdW5jdGlvbiBkaXNwYXRjaExpbmVhclNvbHZlKEEsYil7c3dpdGNoKEEubGVuZ3RoKXsiXSxuPTA7bjxhOysrbil0LnB1c2goInMiK24pLHIucHVzaCgiY2FzZSAiLG4sIjpyZXR1cm4gcyIsbiwiKEEsYik7Iik7ci5wdXNoKCJ9dmFyIHM9Q0FDSEVbQS5sZW5ndGhdO2lmKCFzKXM9Q0FDSEVbQS5sZW5ndGhdPWcoQS5sZW5ndGgpO3JldHVybiBzKEEsYil9cmV0dXJuIGRpc3BhdGNoTGluZWFyU29sdmUiKSx0LnB1c2goIkNBQ0hFIiwiZyIsci5qb2luKCIiKSk7dmFyIHM9RnVuY3Rpb24uYXBwbHkodm9pZCAwLHQpO2ZvcihlLmV4cG9ydHM9cy5hcHBseSh2b2lkIDAsby5jb25jYXQoW28saV0pKSxuPTA7bjxhOysrbillLmV4cG9ydHNbbl09b1tuXX0oKX0seyJyb2J1c3QtZGV0ZXJtaW5hbnQiOjUwNX1dLDUwOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJ0d28tcHJvZHVjdCIpLGE9dCgicm9idXN0LXN1bSIpLGk9dCgicm9idXN0LXNjYWxlIiksbz10KCJyb2J1c3Qtc3VidHJhY3QiKSxzPTU7ZnVuY3Rpb24gbCh0LGUpe2Zvcih2YXIgcj1uZXcgQXJyYXkodC5sZW5ndGgtMSksbj0xO248dC5sZW5ndGg7KytuKWZvcih2YXIgYT1yW24tMV09bmV3IEFycmF5KHQubGVuZ3RoLTEpLGk9MCxvPTA7aTx0Lmxlbmd0aDsrK2kpaSE9PWUmJihhW28rK109dFtuXVtpXSk7cmV0dXJuIHJ9ZnVuY3Rpb24gYyh0KXtpZigxPT09dC5sZW5ndGgpcmV0dXJuIHRbMF07aWYoMj09PXQubGVuZ3RoKXJldHVyblsic3VtKCIsdFswXSwiLCIsdFsxXSwiKSJdLmpvaW4oIiIpO3ZhciBlPXQubGVuZ3RoPj4xO3JldHVyblsic3VtKCIsYyh0LnNsaWNlKDAsZSkpLCIsIixjKHQuc2xpY2UoZSkpLCIpIl0uam9pbigiIil9ZnVuY3Rpb24gdSh0KXtpZigyPT09dC5sZW5ndGgpcmV0dXJuW1sic3VtKHByb2QoIix0WzBdWzBdLCIsIix0WzFdWzFdLCIpLHByb2QoLSIsdFswXVsxXSwiLCIsdFsxXVswXSwiKSkiXS5qb2luKCIiKV07Zm9yKHZhciBlPVtdLHI9MDtyPHQubGVuZ3RoOysrcillLnB1c2goWyJzY2FsZSgiLGModShsKHQscikpKSwiLCIsKG49ciwxJm4/Ii0iOiIiKSx0WzBdW3JdLCIpIl0uam9pbigiIikpO3JldHVybiBlO3ZhciBufWZ1bmN0aW9uIGgodCl7Zm9yKHZhciBlPVtdLHI9W10scz1mdW5jdGlvbih0KXtmb3IodmFyIGU9bmV3IEFycmF5KHQpLHI9MDtyPHQ7KytyKXtlW3JdPW5ldyBBcnJheSh0KTtmb3IodmFyIG49MDtuPHQ7KytuKWVbcl1bbl09WyJtIixuLCJbIix0LXItMSwiXSJdLmpvaW4oIiIpfXJldHVybiBlfSh0KSxoPVtdLGY9MDtmPHQ7KytmKTA9PSgxJmYpP2UucHVzaC5hcHBseShlLHUobChzLGYpKSk6ci5wdXNoLmFwcGx5KHIsdShsKHMsZikpKSxoLnB1c2goIm0iK2YpO3ZhciBwPWMoZSksZD1jKHIpLGc9Im9yaWVudGF0aW9uIit0KyJFeGFjdCIsdj1bImZ1bmN0aW9uICIsZywiKCIsaC5qb2luKCksIil7dmFyIHA9IixwLCIsbj0iLGQsIixkPXN1YihwLG4pO3JldHVybiBkW2QubGVuZ3RoLTFdO307cmV0dXJuICIsZ10uam9pbigiIik7cmV0dXJuIG5ldyBGdW5jdGlvbigic3VtIiwicHJvZCIsInNjYWxlIiwic3ViIix2KShhLG4saSxvKX12YXIgZj1oKDMpLHA9aCg0KSxkPVtmdW5jdGlvbigpe3JldHVybiAwfSxmdW5jdGlvbigpe3JldHVybiAwfSxmdW5jdGlvbih0LGUpe3JldHVybiBlWzBdLXRbMF19LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbixhPSh0WzFdLXJbMV0pKihlWzBdLXJbMF0pLGk9KHRbMF0tclswXSkqKGVbMV0tclsxXSksbz1hLWk7aWYoYT4wKXtpZihpPD0wKXJldHVybiBvO249YStpfWVsc2V7aWYoIShhPDApKXJldHVybiBvO2lmKGk+PTApcmV0dXJuIG87bj0tKGEraSl9dmFyIHM9My4zMzA2NjkwNzM4NzU0NzE2ZS0xNipuO3JldHVybiBvPj1zfHxvPD0tcz9vOmYodCxlLHIpfSxmdW5jdGlvbih0LGUscixuKXt2YXIgYT10WzBdLW5bMF0saT1lWzBdLW5bMF0sbz1yWzBdLW5bMF0scz10WzFdLW5bMV0sbD1lWzFdLW5bMV0sYz1yWzFdLW5bMV0sdT10WzJdLW5bMl0saD1lWzJdLW5bMl0sZj1yWzJdLW5bMl0sZD1pKmMsZz1vKmwsdj1vKnMsbT1hKmMseT1hKmwseD1pKnMsYj11KihkLWcpK2gqKHYtbSkrZiooeS14KSxfPTcuNzcxNTYxMTcyMzc2MTAzZS0xNiooKE1hdGguYWJzKGQpK01hdGguYWJzKGcpKSpNYXRoLmFicyh1KSsoTWF0aC5hYnModikrTWF0aC5hYnMobSkpKk1hdGguYWJzKGgpKyhNYXRoLmFicyh5KStNYXRoLmFicyh4KSkqTWF0aC5hYnMoZikpO3JldHVybiBiPl98fC1iPl8/YjpwKHQsZSxyLG4pfV07ZnVuY3Rpb24gZyh0KXt2YXIgZT1kW3QubGVuZ3RoXTtyZXR1cm4gZXx8KGU9ZFt0Lmxlbmd0aF09aCh0Lmxlbmd0aCkpLGUuYXBwbHkodm9pZCAwLHQpfSFmdW5jdGlvbigpe2Zvcig7ZC5sZW5ndGg8PXM7KWQucHVzaChoKGQubGVuZ3RoKSk7Zm9yKHZhciB0PVtdLHI9WyJzbG93Il0sbj0wO248PXM7KytuKXQucHVzaCgiYSIrbiksci5wdXNoKCJvIituKTt2YXIgYT1bImZ1bmN0aW9uIGdldE9yaWVudGF0aW9uKCIsdC5qb2luKCksIil7c3dpdGNoKGFyZ3VtZW50cy5sZW5ndGgpe2Nhc2UgMDpjYXNlIDE6cmV0dXJuIDA7Il07Zm9yKG49MjtuPD1zOysrbilhLnB1c2goImNhc2UgIixuLCI6cmV0dXJuIG8iLG4sIigiLHQuc2xpY2UoMCxuKS5qb2luKCksIik7Iik7YS5wdXNoKCJ9dmFyIHM9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpO2Zvcih2YXIgaT0wO2k8YXJndW1lbnRzLmxlbmd0aDsrK2kpe3NbaV09YXJndW1lbnRzW2ldfTtyZXR1cm4gc2xvdyhzKTt9cmV0dXJuIGdldE9yaWVudGF0aW9uIiksci5wdXNoKGEuam9pbigiIikpO3ZhciBpPUZ1bmN0aW9uLmFwcGx5KHZvaWQgMCxyKTtmb3IoZS5leHBvcnRzPWkuYXBwbHkodm9pZCAwLFtnXS5jb25jYXQoZCkpLG49MDtuPD1zOysrbillLmV4cG9ydHNbbl09ZFtuXX0oKX0seyJyb2J1c3Qtc2NhbGUiOjUxMSwicm9idXN0LXN1YnRyYWN0Ijo1MTMsInJvYnVzdC1zdW0iOjUxNCwidHdvLXByb2R1Y3QiOjU0Mn1dLDUxMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJyb2J1c3Qtc3VtIiksYT10KCJyb2J1c3Qtc2NhbGUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZigxPT09dC5sZW5ndGgpcmV0dXJuIGEoZSx0WzBdKTtpZigxPT09ZS5sZW5ndGgpcmV0dXJuIGEodCxlWzBdKTtpZigwPT09dC5sZW5ndGh8fDA9PT1lLmxlbmd0aClyZXR1cm5bMF07dmFyIHI9WzBdO2lmKHQubGVuZ3RoPGUubGVuZ3RoKWZvcih2YXIgaT0wO2k8dC5sZW5ndGg7KytpKXI9bihyLGEoZSx0W2ldKSk7ZWxzZSBmb3IodmFyIGk9MDtpPGUubGVuZ3RoOysraSlyPW4ocixhKHQsZVtpXSkpO3JldHVybiByfX0seyJyb2J1c3Qtc2NhbGUiOjUxMSwicm9idXN0LXN1bSI6NTE0fV0sNTExOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInR3by1wcm9kdWN0IiksYT10KCJ0d28tc3VtIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5sZW5ndGg7aWYoMT09PXIpe3ZhciBpPW4odFswXSxlKTtyZXR1cm4gaVswXT9pOltpWzFdXX12YXIgbz1uZXcgQXJyYXkoMipyKSxzPVsuMSwuMV0sbD1bLjEsLjFdLGM9MDtuKHRbMF0sZSxzKSxzWzBdJiYob1tjKytdPXNbMF0pO2Zvcih2YXIgdT0xO3U8cjsrK3Upe24odFt1XSxlLGwpO3ZhciBoPXNbMV07YShoLGxbMF0scyksc1swXSYmKG9bYysrXT1zWzBdKTt2YXIgZj1sWzFdLHA9c1sxXSxkPWYrcCxnPWQtZix2PXAtZztzWzFdPWQsdiYmKG9bYysrXT12KX1zWzFdJiYob1tjKytdPXNbMV0pOzA9PT1jJiYob1tjKytdPTApO3JldHVybiBvLmxlbmd0aD1jLG99fSx7InR3by1wcm9kdWN0Ijo1NDIsInR3by1zdW0iOjU0M31dLDUxMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSl7dmFyIGk9bih0LHIsYSksbz1uKGUscixhKTtpZihpPjAmJm8+MHx8aTwwJiZvPDApcmV0dXJuITE7dmFyIHM9bihyLHQsZSksbD1uKGEsdCxlKTtpZihzPjAmJmw+MHx8czwwJiZsPDApcmV0dXJuITE7aWYoMD09PWkmJjA9PT1vJiYwPT09cyYmMD09PWwpcmV0dXJuIGZ1bmN0aW9uKHQsZSxyLG4pe2Zvcih2YXIgYT0wO2E8MjsrK2Epe3ZhciBpPXRbYV0sbz1lW2FdLHM9TWF0aC5taW4oaSxvKSxsPU1hdGgubWF4KGksbyksYz1yW2FdLHU9blthXSxoPU1hdGgubWluKGMsdSksZj1NYXRoLm1heChjLHUpO2lmKGY8c3x8bDxoKXJldHVybiExfXJldHVybiEwfSh0LGUscixhKTtyZXR1cm4hMH07dmFyIG49dCgicm9idXN0LW9yaWVudGF0aW9uIilbM119LHsicm9idXN0LW9yaWVudGF0aW9uIjo1MDl9XSw1MTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9MHx0Lmxlbmd0aCxuPTB8ZS5sZW5ndGg7aWYoMT09PXImJjE9PT1uKXJldHVybiBmdW5jdGlvbih0LGUpe3ZhciByPXQrZSxuPXItdCxhPXQtKHItbikrKGUtbik7aWYoYSlyZXR1cm5bYSxyXTtyZXR1cm5bcl19KHRbMF0sLWVbMF0pO3ZhciBhLGksbz1uZXcgQXJyYXkocituKSxzPTAsbD0wLGM9MCx1PU1hdGguYWJzLGg9dFtsXSxmPXUoaCkscD0tZVtjXSxkPXUocCk7ZjxkPyhpPWgsKGwrPTEpPHImJihoPXRbbF0sZj11KGgpKSk6KGk9cCwoYys9MSk8biYmKHA9LWVbY10sZD11KHApKSk7bDxyJiZmPGR8fGM+PW4/KGE9aCwobCs9MSk8ciYmKGg9dFtsXSxmPXUoaCkpKTooYT1wLChjKz0xKTxuJiYocD0tZVtjXSxkPXUocCkpKTt2YXIgZyx2LG09YStpLHk9bS1hLHg9aS15LGI9eCxfPW07Zm9yKDtsPHImJmM8bjspZjxkPyhhPWgsKGwrPTEpPHImJihoPXRbbF0sZj11KGgpKSk6KGE9cCwoYys9MSk8biYmKHA9LWVbY10sZD11KHApKSksKHg9KGk9YiktKHk9KG09YStpKS1hKSkmJihvW3MrK109eCksYj1fLSgoZz1fK20pLSh2PWctXykpKyhtLXYpLF89Zztmb3IoO2w8cjspKHg9KGk9YiktKHk9KG09KGE9aCkraSktYSkpJiYob1tzKytdPXgpLGI9Xy0oKGc9XyttKS0odj1nLV8pKSsobS12KSxfPWcsKGwrPTEpPHImJihoPXRbbF0pO2Zvcig7YzxuOykoeD0oaT1iKS0oeT0obT0oYT1wKStpKS1hKSkmJihvW3MrK109eCksYj1fLSgoZz1fK20pLSh2PWctXykpKyhtLXYpLF89ZywoYys9MSk8biYmKHA9LWVbY10pO2ImJihvW3MrK109Yik7XyYmKG9bcysrXT1fKTtzfHwob1tzKytdPTApO3JldHVybiBvLmxlbmd0aD1zLG99fSx7fV0sNTE0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPTB8dC5sZW5ndGgsbj0wfGUubGVuZ3RoO2lmKDE9PT1yJiYxPT09bilyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgcj10K2Usbj1yLXQsYT10LShyLW4pKyhlLW4pO2lmKGEpcmV0dXJuW2Escl07cmV0dXJuW3JdfSh0WzBdLGVbMF0pO3ZhciBhLGksbz1uZXcgQXJyYXkocituKSxzPTAsbD0wLGM9MCx1PU1hdGguYWJzLGg9dFtsXSxmPXUoaCkscD1lW2NdLGQ9dShwKTtmPGQ/KGk9aCwobCs9MSk8ciYmKGg9dFtsXSxmPXUoaCkpKTooaT1wLChjKz0xKTxuJiYocD1lW2NdLGQ9dShwKSkpO2w8ciYmZjxkfHxjPj1uPyhhPWgsKGwrPTEpPHImJihoPXRbbF0sZj11KGgpKSk6KGE9cCwoYys9MSk8biYmKHA9ZVtjXSxkPXUocCkpKTt2YXIgZyx2LG09YStpLHk9bS1hLHg9aS15LGI9eCxfPW07Zm9yKDtsPHImJmM8bjspZjxkPyhhPWgsKGwrPTEpPHImJihoPXRbbF0sZj11KGgpKSk6KGE9cCwoYys9MSk8biYmKHA9ZVtjXSxkPXUocCkpKSwoeD0oaT1iKS0oeT0obT1hK2kpLWEpKSYmKG9bcysrXT14KSxiPV8tKChnPV8rbSktKHY9Zy1fKSkrKG0tdiksXz1nO2Zvcig7bDxyOykoeD0oaT1iKS0oeT0obT0oYT1oKStpKS1hKSkmJihvW3MrK109eCksYj1fLSgoZz1fK20pLSh2PWctXykpKyhtLXYpLF89ZywobCs9MSk8ciYmKGg9dFtsXSk7Zm9yKDtjPG47KSh4PShpPWIpLSh5PShtPShhPXApK2kpLWEpKSYmKG9bcysrXT14KSxiPV8tKChnPV8rbSktKHY9Zy1fKSkrKG0tdiksXz1nLChjKz0xKTxuJiYocD1lW2NdKTtiJiYob1tzKytdPWIpO18mJihvW3MrK109Xyk7c3x8KG9bcysrXT0wKTtyZXR1cm4gby5sZW5ndGg9cyxvfX0se31dLDUxNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHQ8MD8tMTp0PjA/MTowfX0se31dLDUxNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGEobih0KSl9O3ZhciBuPXQoImJvdW5kYXJ5LWNlbGxzIiksYT10KCJyZWR1Y2Utc2ltcGxpY2lhbC1jb21wbGV4Iil9LHsiYm91bmRhcnktY2VsbHMiOjk3LCJyZWR1Y2Utc2ltcGxpY2lhbC1jb21wbGV4Ijo0OTF9XSw1MTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMpe3I9cnx8MCwidW5kZWZpbmVkIj09dHlwZW9mIHMmJihzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Lmxlbmd0aCxyPTAsbj0wO248ZTsrK24pcj0wfE1hdGgubWF4KHIsdFtuXS5sZW5ndGgpO3JldHVybiByLTF9KHQpKTtpZigwPT09dC5sZW5ndGh8fHM8MSlyZXR1cm57Y2VsbHM6W10sdmVydGV4SWRzOltdLHZlcnRleFdlaWdodHM6W119O3ZhciBsPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQubGVuZ3RoLG49YS5tYWxsb2NVaW50OChyKSxpPTA7aTxyOysraSluW2ldPXRbaV08ZXwwO3JldHVybiBufShlLCtyKSxjPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQubGVuZ3RoLG89ZSooZSsxKS8yKnJ8MCxzPWEubWFsbG9jVWludDMyKDIqbyksbD0wLGM9MDtjPHI7KytjKWZvcih2YXIgdT10W2NdLGU9dS5sZW5ndGgsaD0wO2g8ZTsrK2gpZm9yKHZhciBmPTA7ZjxoOysrZil7dmFyIHA9dVtmXSxkPXVbaF07c1tsKytdPTB8TWF0aC5taW4ocCxkKSxzW2wrK109MHxNYXRoLm1heChwLGQpfWkobihzLFtsLzJ8MCwyXSkpO2Zvcih2YXIgZz0yLGM9MjtjPGw7Yys9MilzW2MtMl09PT1zW2NdJiZzW2MtMV09PT1zW2MrMV18fChzW2crK109c1tjXSxzW2crK109c1tjKzFdKTtyZXR1cm4gbihzLFtnLzJ8MCwyXSl9KHQscyksdT1mdW5jdGlvbih0LGUscixpKXtmb3IodmFyIG89dC5kYXRhLHM9dC5zaGFwZVswXSxsPWEubWFsbG9jRG91YmxlKHMpLGM9MCx1PTA7dTxzOysrdSl7dmFyIGg9b1syKnVdLGY9b1syKnUrMV07aWYocltoXSE9PXJbZl0pe3ZhciBwPWVbaF0sZD1lW2ZdO29bMipjXT1oLG9bMipjKzFdPWYsbFtjKytdPShkLWkpLyhkLXApfX1yZXR1cm4gdC5zaGFwZVswXT1jLG4obCxbY10pfShjLGUsbCwrciksaD1mdW5jdGlvbih0LGUpe3ZhciByPWEubWFsbG9jSW50MzIoMiplKSxuPXQuc2hhcGVbMF0saT10LmRhdGE7clswXT0wO2Zvcih2YXIgbz0wLHM9MDtzPG47KytzKXt2YXIgbD1pWzIqc107aWYobCE9PW8pe2ZvcihyWzIqbysxXT1zOysrbzxsOylyWzIqb109cyxyWzIqbysxXT1zO3JbMipvXT1zfX1yWzIqbysxXT1uO2Zvcig7KytvPGU7KXJbMipvXT1yWzIqbysxXT1uO3JldHVybiByfShjLDB8ZS5sZW5ndGgpLGY9byhzKSh0LGMuZGF0YSxoLGwpLHA9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTB8dC5zaGFwZVswXSxyPXQuZGF0YSxuPW5ldyBBcnJheShlKSxhPTA7YTxlOysrYSluW2FdPVtyWzIqYV0sclsyKmErMV1dO3JldHVybiBufShjKSxkPVtdLnNsaWNlLmNhbGwodS5kYXRhLDAsdS5zaGFwZVswXSk7cmV0dXJuIGEuZnJlZShsKSxhLmZyZWUoYy5kYXRhKSxhLmZyZWUodS5kYXRhKSxhLmZyZWUoaCkse2NlbGxzOmYsdmVydGV4SWRzOnAsdmVydGV4V2VpZ2h0czpkfX07dmFyIG49dCgibmRhcnJheSIpLGE9dCgidHlwZWRhcnJheS1wb29sIiksaT10KCJuZGFycmF5LXNvcnQiKSxvPXQoIi4vbGliL2NvZGVnZW4iKX0seyIuL2xpYi9jb2RlZ2VuIjo1MTgsbmRhcnJheTo0NTIsIm5kYXJyYXktc29ydCI6NDUwLCJ0eXBlZGFycmF5LXBvb2wiOjU0NH1dLDUxODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9aVt0XTtlfHwoZT1pW3RdPWZ1bmN0aW9uKHQpe3ZhciBlPTAscj1uZXcgQXJyYXkodCsxKTtyWzBdPVtbXV07Zm9yKHZhciBpPTE7aTw9dDsrK2kpZm9yKHZhciBvPXJbaV09YShpKSxzPTA7czxvLmxlbmd0aDsrK3MpZT1NYXRoLm1heChlLG9baV0ubGVuZ3RoKTt2YXIgbD1bImZ1bmN0aW9uIEIoQyxFLGksail7IiwidmFyIGE9TWF0aC5taW4oaSxqKXwwLGI9TWF0aC5tYXgoaSxqKXwwLGw9Q1syKmFdLGg9Q1syKmErMV07Iiwid2hpbGUobDxoKXsiLCJ2YXIgbT0obCtoKT4+MSx2PUVbMiptKzFdOyIsImlmKHY9PT1iKXtyZXR1cm4gbX0iLCJpZihiPHYpe2g9bX1lbHNle2w9bSsxfSIsIn0iLCJyZXR1cm4gbDsiLCJ9OyIsImZ1bmN0aW9uIGdldENvbnRvdXIiLHQsImQoRixFLEMsUyl7IiwidmFyIG49Ri5sZW5ndGgsUj1bXTsiLCJmb3IodmFyIGk9MDtpPG47KytpKXt2YXIgYz1GW2ldLGw9Yy5sZW5ndGg7Il07ZnVuY3Rpb24gYyh0KXtpZighKHQubGVuZ3RoPD0wKSl7bC5wdXNoKCJSLnB1c2goIik7Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDsrK2Upe3ZhciByPXRbZV07ZT4wJiZsLnB1c2goIiwiKSxsLnB1c2goIlsiKTtmb3IodmFyIG49MDtuPHIubGVuZ3RoOysrbil7dmFyIGE9cltuXTtuPjAmJmwucHVzaCgiLCIpLGwucHVzaCgiQihDLEUsY1siLGFbMF0sIl0sY1siLGFbMV0sIl0pIil9bC5wdXNoKCJdIil9bC5wdXNoKCIpOyIpfX1mb3IodmFyIGk9dCsxO2k+MTstLWkpe2k8dCsxJiZsLnB1c2goImVsc2UgIiksbC5wdXNoKCJpZihsPT09IixpLCIpeyIpO2Zvcih2YXIgdT1bXSxzPTA7czxpOysrcyl1LnB1c2goIihTW2NbIitzKyJdXTw8IitzKyIpIik7bC5wdXNoKCJ2YXIgTT0iLHUuam9pbigiKyIpLCI7aWYoTT09PTB8fE09PT0iLCgxPDxpKS0xLCIpe2NvbnRpbnVlfXN3aXRjaChNKXsiKTtmb3IodmFyIG89cltpLTFdLHM9MDtzPG8ubGVuZ3RoOysrcylsLnB1c2goImNhc2UgIixzLCI6IiksYyhvW3NdKSxsLnB1c2goImJyZWFrOyIpO2wucHVzaCgifX0iKX1yZXR1cm4gbC5wdXNoKCJ9cmV0dXJuIFI7fTtyZXR1cm4gZ2V0Q29udG91ciIsdCwiZCIpLG5ldyBGdW5jdGlvbigicG9vbCIsbC5qb2luKCIiKSkobil9KHQpKTtyZXR1cm4gZX07dmFyIG49dCgidHlwZWRhcnJheS1wb29sIiksYT10KCJtYXJjaGluZy1zaW1wbGV4LXRhYmxlIiksaT17fX0seyJtYXJjaGluZy1zaW1wbGV4LXRhYmxlIjo0MjksInR5cGVkYXJyYXktcG9vbCI6NTQ0fV0sNTE5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImJpdC10d2lkZGxlIiksYT10KCJ1bmlvbi1maW5kIik7ZnVuY3Rpb24gaSh0LGUpe3ZhciByPXQubGVuZ3RoLG49dC5sZW5ndGgtZS5sZW5ndGgsYT1NYXRoLm1pbjtpZihuKXJldHVybiBuO3N3aXRjaChyKXtjYXNlIDA6cmV0dXJuIDA7Y2FzZSAxOnJldHVybiB0WzBdLWVbMF07Y2FzZSAyOnJldHVybihzPXRbMF0rdFsxXS1lWzBdLWVbMV0pfHxhKHRbMF0sdFsxXSktYShlWzBdLGVbMV0pO2Nhc2UgMzp2YXIgaT10WzBdK3RbMV0sbz1lWzBdK2VbMV07aWYocz1pK3RbMl0tKG8rZVsyXSkpcmV0dXJuIHM7dmFyIHMsbD1hKHRbMF0sdFsxXSksYz1hKGVbMF0sZVsxXSk7cmV0dXJuKHM9YShsLHRbMl0pLWEoYyxlWzJdKSl8fGEobCt0WzJdLGkpLWEoYytlWzJdLG8pO2RlZmF1bHQ6dmFyIHU9dC5zbGljZSgwKTt1LnNvcnQoKTt2YXIgaD1lLnNsaWNlKDApO2guc29ydCgpO2Zvcih2YXIgZj0wO2Y8cjsrK2YpaWYobj11W2ZdLWhbZl0pcmV0dXJuIG47cmV0dXJuIDB9fWZ1bmN0aW9uIG8odCxlKXtyZXR1cm4gaSh0WzBdLGVbMF0pfWZ1bmN0aW9uIHModCxlKXtpZihlKXtmb3IodmFyIHI9dC5sZW5ndGgsbj1uZXcgQXJyYXkociksYT0wO2E8cjsrK2EpblthXT1bdFthXSxlW2FdXTtuLnNvcnQobyk7Zm9yKGE9MDthPHI7KythKXRbYV09blthXVswXSxlW2FdPW5bYV1bMV07cmV0dXJuIHR9cmV0dXJuIHQuc29ydChpKSx0fWZ1bmN0aW9uIGwodCl7aWYoMD09PXQubGVuZ3RoKXJldHVybltdO2Zvcih2YXIgZT0xLHI9dC5sZW5ndGgsbj0xO248cjsrK24pe3ZhciBhPXRbbl07aWYoaShhLHRbbi0xXSkpe2lmKG49PT1lKXtlKys7Y29udGludWV9dFtlKytdPWF9fXJldHVybiB0Lmxlbmd0aD1lLHR9ZnVuY3Rpb24gYyh0LGUpe2Zvcih2YXIgcj0wLG49dC5sZW5ndGgtMSxhPS0xO3I8PW47KXt2YXIgbz1yK24+PjEscz1pKHRbb10sZSk7czw9MD8oMD09PXMmJihhPW8pLHI9bysxKTpzPjAmJihuPW8tMSl9cmV0dXJuIGF9ZnVuY3Rpb24gdSh0LGUpe2Zvcih2YXIgcj1uZXcgQXJyYXkodC5sZW5ndGgpLGE9MCxvPXIubGVuZ3RoO2E8bzsrK2EpclthXT1bXTtmb3IodmFyIHM9W10sbD0oYT0wLGUubGVuZ3RoKTthPGw7KythKWZvcih2YXIgdT1lW2FdLGg9dS5sZW5ndGgsZj0xLHA9MTw8aDtmPHA7KytmKXtzLmxlbmd0aD1uLnBvcENvdW50KGYpO2Zvcih2YXIgZD0wLGc9MDtnPGg7KytnKWYmMTw8ZyYmKHNbZCsrXT11W2ddKTt2YXIgdj1jKHQscyk7aWYoISh2PDApKWZvcig7clt2KytdLnB1c2goYSksISh2Pj10Lmxlbmd0aHx8MCE9PWkodFt2XSxzKSk7KTt9cmV0dXJuIHJ9ZnVuY3Rpb24gaCh0LGUpe2lmKGU8MClyZXR1cm5bXTtmb3IodmFyIHI9W10sYT0oMTw8ZSsxKS0xLGk9MDtpPHQubGVuZ3RoOysraSlmb3IodmFyIG89dFtpXSxsPWE7bDwxPDxvLmxlbmd0aDtsPW4ubmV4dENvbWJpbmF0aW9uKGwpKXtmb3IodmFyIGM9bmV3IEFycmF5KGUrMSksdT0wLGg9MDtoPG8ubGVuZ3RoOysraClsJjE8PGgmJihjW3UrK109b1toXSk7ci5wdXNoKGMpfXJldHVybiBzKHIpfXIuZGltZW5zaW9uPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLHI9TWF0aC5tYXgsbj0wLGE9dC5sZW5ndGg7bjxhOysrbillPXIoZSx0W25dLmxlbmd0aCk7cmV0dXJuIGUtMX0sci5jb3VudFZlcnRpY2VzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0tMSxyPU1hdGgubWF4LG49MCxhPXQubGVuZ3RoO248YTsrK24pZm9yKHZhciBpPXRbbl0sbz0wLHM9aS5sZW5ndGg7bzxzOysrbyllPXIoZSxpW29dKTtyZXR1cm4gZSsxfSxyLmNsb25lQ2VsbHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPW5ldyBBcnJheSh0Lmxlbmd0aCkscj0wLG49dC5sZW5ndGg7cjxuOysrcillW3JdPXRbcl0uc2xpY2UoMCk7cmV0dXJuIGV9LHIuY29tcGFyZUNlbGxzPWksci5ub3JtYWxpemU9cyxyLnVuaXF1ZT1sLHIuZmluZENlbGw9YyxyLmluY2lkZW5jZT11LHIuZHVhbD1mdW5jdGlvbih0LGUpe2lmKCFlKXJldHVybiB1KGwoaCh0LDApKSx0KTtmb3IodmFyIHI9bmV3IEFycmF5KGUpLG49MDtuPGU7KytuKXJbbl09W107bj0wO2Zvcih2YXIgYT10Lmxlbmd0aDtuPGE7KytuKWZvcih2YXIgaT10W25dLG89MCxzPWkubGVuZ3RoO288czsrK28pcltpW29dXS5wdXNoKG4pO3JldHVybiByfSxyLmV4cGxvZGU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLHI9MCxuPXQubGVuZ3RoO3I8bjsrK3IpZm9yKHZhciBhPXRbcl0saT0wfGEubGVuZ3RoLG89MSxsPTE8PGk7bzxsOysrbyl7Zm9yKHZhciBjPVtdLHU9MDt1PGk7Kyt1KW8+Pj51JjEmJmMucHVzaChhW3VdKTtlLnB1c2goYyl9cmV0dXJuIHMoZSl9LHIuc2tlbGV0b249aCxyLmJvdW5kYXJ5PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxyPTAsbj10Lmxlbmd0aDtyPG47KytyKWZvcih2YXIgYT10W3JdLGk9MCxvPWEubGVuZ3RoO2k8bzsrK2kpe2Zvcih2YXIgbD1uZXcgQXJyYXkoYS5sZW5ndGgtMSksYz0wLHU9MDtjPG87KytjKWMhPT1pJiYobFt1KytdPWFbY10pO2UucHVzaChsKX1yZXR1cm4gcyhlKX0sci5jb25uZWN0ZWRDb21wb25lbnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU/ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9bmV3IGEoZSksbj0wO248dC5sZW5ndGg7KytuKWZvcih2YXIgaT10W25dLG89MDtvPGkubGVuZ3RoOysrbylmb3IodmFyIHM9bysxO3M8aS5sZW5ndGg7KytzKXIubGluayhpW29dLGlbc10pO3ZhciBsPVtdLGM9ci5yYW5rcztmb3Iobj0wO248Yy5sZW5ndGg7KytuKWNbbl09LTE7Zm9yKG49MDtuPHQubGVuZ3RoOysrbil7dmFyIHU9ci5maW5kKHRbbl1bMF0pO2NbdV08MD8oY1t1XT1sLmxlbmd0aCxsLnB1c2goW3Rbbl0uc2xpY2UoMCldKSk6bFtjW3VdXS5wdXNoKHRbbl0uc2xpY2UoMCkpfXJldHVybiBsfSh0LGUpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1sKHMoaCh0LDApKSkscj1uZXcgYShlLmxlbmd0aCksbj0wO248dC5sZW5ndGg7KytuKWZvcih2YXIgaT10W25dLG89MDtvPGkubGVuZ3RoOysrbylmb3IodmFyIHU9YyhlLFtpW29dXSksZj1vKzE7ZjxpLmxlbmd0aDsrK2Ypci5saW5rKHUsYyhlLFtpW2ZdXSkpO3ZhciBwPVtdLGQ9ci5yYW5rcztmb3Iobj0wO248ZC5sZW5ndGg7KytuKWRbbl09LTE7Zm9yKG49MDtuPHQubGVuZ3RoOysrbil7dmFyIGc9ci5maW5kKGMoZSxbdFtuXVswXV0pKTtkW2ddPDA/KGRbZ109cC5sZW5ndGgscC5wdXNoKFt0W25dLnNsaWNlKDApXSkpOnBbZFtnXV0ucHVzaCh0W25dLnNsaWNlKDApKX1yZXR1cm4gcH0odCl9fSx7ImJpdC10d2lkZGxlIjo5NCwidW5pb24tZmluZCI6NTQ1fV0sNTIwOltmdW5jdGlvbih0LGUscil7YXJndW1lbnRzWzRdWzk0XVswXS5hcHBseShyLGFyZ3VtZW50cyl9LHtkdXA6OTR9XSw1MjE6W2Z1bmN0aW9uKHQsZSxyKXthcmd1bWVudHNbNF1bNTE5XVswXS5hcHBseShyLGFyZ3VtZW50cyl9LHsiYml0LXR3aWRkbGUiOjUyMCxkdXA6NTE5LCJ1bmlvbi1maW5kIjo1MjJ9XSw1MjI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXt0aGlzLnJvb3RzPW5ldyBBcnJheSh0KSx0aGlzLnJhbmtzPW5ldyBBcnJheSh0KTtmb3IodmFyIGU9MDtlPHQ7KytlKXRoaXMucm9vdHNbZV09ZSx0aGlzLnJhbmtzW2VdPTB9ZS5leHBvcnRzPW4sbi5wcm90b3R5cGUubGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucm9vdHMubGVuZ3RofSxuLnByb3RvdHlwZS5tYWtlU2V0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5yb290cy5sZW5ndGg7cmV0dXJuIHRoaXMucm9vdHMucHVzaCh0KSx0aGlzLnJhbmtzLnB1c2goMCksdH0sbi5wcm90b3R5cGUuZmluZD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5yb290cztlW3RdIT09dDspe3ZhciByPWVbdF07ZVt0XT1lW3JdLHQ9cn1yZXR1cm4gdH0sbi5wcm90b3R5cGUubGluaz1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuZmluZCh0KSxuPXRoaXMuZmluZChlKTtpZihyIT09bil7dmFyIGE9dGhpcy5yYW5rcyxpPXRoaXMucm9vdHMsbz1hW3JdLHM9YVtuXTtvPHM/aVtyXT1uOnM8bz9pW25dPXI6KGlbbl09ciwrK2Fbcl0pfX19LHt9XSw1MjM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGk9ZS5sZW5ndGgsbz10Lmxlbmd0aCxzPW5ldyBBcnJheShpKSxsPW5ldyBBcnJheShpKSxjPW5ldyBBcnJheShpKSx1PW5ldyBBcnJheShpKSxoPTA7aDxpOysraClzW2hdPWxbaF09LTEsY1toXT0xLzAsdVtoXT0hMTtmb3IodmFyIGg9MDtoPG87KytoKXt2YXIgZj10W2hdO2lmKDIhPT1mLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIklucHV0IG11c3QgYmUgYSBncmFwaCIpO3ZhciBwPWZbMV0sZD1mWzBdOy0xIT09bFtkXT9sW2RdPS0yOmxbZF09cCwtMSE9PXNbcF0/c1twXT0tMjpzW3BdPWR9ZnVuY3Rpb24gZyh0KXtpZih1W3RdKXJldHVybiAxLzA7dmFyIHIsYSxpLG8sYyxoPXNbdF0sZj1sW3RdO3JldHVybiBoPDB8fGY8MD8xLzA6KHI9ZVt0XSxhPWVbaF0saT1lW2ZdLG89TWF0aC5hYnMobihyLGEsaSkpLGM9TWF0aC5zcXJ0KE1hdGgucG93KGFbMF0taVswXSwyKStNYXRoLnBvdyhhWzFdLWlbMV0sMikpLG8vYyl9ZnVuY3Rpb24gdih0LGUpe3ZhciByPVRbdF0sbj1UW2VdO1RbdF09bixUW2VdPXIsTVtyXT1lLE1bbl09dH1mdW5jdGlvbiBtKHQpe3JldHVybiBjW1RbdF1dfWZ1bmN0aW9uIHkodCl7cmV0dXJuIDEmdD90LTE+PjE6KHQ+PjEpLTF9ZnVuY3Rpb24geCh0KXtmb3IodmFyIGU9bSh0KTs7KXt2YXIgcj1lLG49Mip0KzEsYT0yKih0KzEpLGk9dDtpZihuPFMpe3ZhciBvPW0obik7bzxyJiYoaT1uLHI9byl9aWYoYTxTKXt2YXIgcz1tKGEpO3M8ciYmKGk9YSl9aWYoaT09PXQpcmV0dXJuIHQ7dih0LGkpLHQ9aX19ZnVuY3Rpb24gYih0KXtmb3IodmFyIGU9bSh0KTt0PjA7KXt2YXIgcj15KHQpO2lmKHI+PTApe3ZhciBuPW0ocik7aWYoZTxuKXt2KHQsciksdD1yO2NvbnRpbnVlfX1yZXR1cm4gdH19ZnVuY3Rpb24gXygpe2lmKFM+MCl7dmFyIHQ9VFswXTtyZXR1cm4gdigwLFMtMSksUy09MSx4KDApLHR9cmV0dXJuLTF9ZnVuY3Rpb24gdyh0LGUpe3ZhciByPVRbdF07cmV0dXJuIGNbcl09PT1lP3Q6KGNbcl09LTEvMCxiKHQpLF8oKSxjW3JdPWUsYigoUys9MSktMSkpfWZ1bmN0aW9uIGsodCl7aWYoIXVbdF0pe3VbdF09ITA7dmFyIGU9c1t0XSxyPWxbdF07c1tyXT49MCYmKHNbcl09ZSksbFtlXT49MCYmKGxbZV09ciksTVtlXT49MCYmdyhNW2VdLGcoZSkpLE1bcl0+PTAmJncoTVtyXSxnKHIpKX19Zm9yKHZhciBUPVtdLE09bmV3IEFycmF5KGkpLGg9MDtoPGk7KytoKXt2YXIgQT1jW2hdPWcoaCk7QTwxLzA/KE1baF09VC5sZW5ndGgsVC5wdXNoKGgpKTpNW2hdPS0xfWZvcih2YXIgUz1ULmxlbmd0aCxoPVM+PjE7aD49MDstLWgpeChoKTtmb3IoOzspe3ZhciBFPV8oKTtpZihFPDB8fGNbRV0+cilicmVhaztrKEUpfWZvcih2YXIgTD1bXSxoPTA7aDxpOysraCl1W2hdfHwoTVtoXT1MLmxlbmd0aCxMLnB1c2goZVtoXS5zbGljZSgpKSk7TC5sZW5ndGg7ZnVuY3Rpb24gQyh0LGUpe2lmKHRbZV08MClyZXR1cm4gZTt2YXIgcj1lLG49ZTtkb3t2YXIgYT10W25dO2lmKCF1W25dfHxhPDB8fGE9PT1uKWJyZWFrO2lmKGE9dFtuPWFdLCF1W25dfHxhPDB8fGE9PT1uKWJyZWFrO249YSxyPXRbcl19d2hpbGUociE9PW4pO2Zvcih2YXIgaT1lO2khPT1uO2k9dFtpXSl0W2ldPW47cmV0dXJuIG59dmFyIFA9W107cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZT1DKHMsdFswXSkscj1DKGwsdFsxXSk7aWYoZT49MCYmcj49MCYmZSE9PXIpe3ZhciBuPU1bZV0sYT1NW3JdO24hPT1hJiZQLnB1c2goW24sYV0pfX0pLGEudW5pcXVlKGEubm9ybWFsaXplKFApKSx7cG9zaXRpb25zOkwsZWRnZXM6UH19O3ZhciBuPXQoInJvYnVzdC1vcmllbnRhdGlvbiIpLGE9dCgic2ltcGxpY2lhbC1jb21wbGV4Iil9LHsicm9idXN0LW9yaWVudGF0aW9uIjo1MDksInNpbXBsaWNpYWwtY29tcGxleCI6NTIxfV0sNTI0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLGksbyxzO2lmKGVbMF1bMF08ZVsxXVswXSlyPWVbMF0saT1lWzFdO2Vsc2V7aWYoIShlWzBdWzBdPmVbMV1bMF0pKXJldHVybiBhKGUsdCk7cj1lWzFdLGk9ZVswXX1pZih0WzBdWzBdPHRbMV1bMF0pbz10WzBdLHM9dFsxXTtlbHNle2lmKCEodFswXVswXT50WzFdWzBdKSlyZXR1cm4tYSh0LGUpO289dFsxXSxzPXRbMF19dmFyIGw9bihyLGkscyksYz1uKHIsaSxvKTtpZihsPDApe2lmKGM8PTApcmV0dXJuIGx9ZWxzZSBpZihsPjApe2lmKGM+PTApcmV0dXJuIGx9ZWxzZSBpZihjKXJldHVybiBjO2lmKGw9bihzLG8saSksYz1uKHMsbyxyKSxsPDApe2lmKGM8PTApcmV0dXJuIGx9ZWxzZSBpZihsPjApe2lmKGM+PTApcmV0dXJuIGx9ZWxzZSBpZihjKXJldHVybiBjO3JldHVybiBpWzBdLXNbMF19O3ZhciBuPXQoInJvYnVzdC1vcmllbnRhdGlvbiIpO2Z1bmN0aW9uIGEodCxlKXt2YXIgcixhLGksbztpZihlWzBdWzBdPGVbMV1bMF0pcj1lWzBdLGE9ZVsxXTtlbHNle2lmKCEoZVswXVswXT5lWzFdWzBdKSl7dmFyIHM9TWF0aC5taW4odFswXVsxXSx0WzFdWzFdKSxsPU1hdGgubWF4KHRbMF1bMV0sdFsxXVsxXSksYz1NYXRoLm1pbihlWzBdWzFdLGVbMV1bMV0pLHU9TWF0aC5tYXgoZVswXVsxXSxlWzFdWzFdKTtyZXR1cm4gbDxjP2wtYzpzPnU/cy11OmwtdX1yPWVbMV0sYT1lWzBdfXRbMF1bMV08dFsxXVsxXT8oaT10WzBdLG89dFsxXSk6KGk9dFsxXSxvPXRbMF0pO3ZhciBoPW4oYSxyLGkpO3JldHVybiBofHwoKGg9bihhLHIsbykpfHxvLWEpfX0seyJyb2J1c3Qtb3JpZW50YXRpb24iOjUwOX1dLDUyNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQubGVuZ3RoLHI9MiplLG49bmV3IEFycmF5KHIpLGk9MDtpPGU7KytpKXt2YXIgbD10W2ldLGM9bFswXVswXTxsWzFdWzBdO25bMippXT1uZXcgaChsWzBdWzBdLGwsYyxpKSxuWzIqaSsxXT1uZXcgaChsWzFdWzBdLGwsIWMsaSl9bi5zb3J0KGZ1bmN0aW9uKHQsZSl7dmFyIHI9dC54LWUueDtyZXR1cm4gcnx8KChyPXQuY3JlYXRlLWUuY3JlYXRlKXx8TWF0aC5taW4odC5zZWdtZW50WzBdWzFdLHQuc2VnbWVudFsxXVsxXSktTWF0aC5taW4oZS5zZWdtZW50WzBdWzFdLGUuc2VnbWVudFsxXVsxXSkpfSk7Zm9yKHZhciBmPWEobykscD1bXSxkPVtdLGc9W10saT0wO2k8cjspe2Zvcih2YXIgdj1uW2ldLngsbT1bXTtpPHI7KXt2YXIgeT1uW2ldO2lmKHkueCE9PXYpYnJlYWs7aSs9MSx5LnNlZ21lbnRbMF1bMF09PT15LngmJnkuc2VnbWVudFsxXVswXT09PXkueD95LmNyZWF0ZSYmKHkuc2VnbWVudFswXVsxXTx5LnNlZ21lbnRbMV1bMV0/KG0ucHVzaChuZXcgdSh5LnNlZ21lbnRbMF1bMV0seS5pbmRleCwhMCwhMCkpLG0ucHVzaChuZXcgdSh5LnNlZ21lbnRbMV1bMV0seS5pbmRleCwhMSwhMSkpKToobS5wdXNoKG5ldyB1KHkuc2VnbWVudFsxXVsxXSx5LmluZGV4LCEwLCExKSksbS5wdXNoKG5ldyB1KHkuc2VnbWVudFswXVsxXSx5LmluZGV4LCExLCEwKSkpKTpmPXkuY3JlYXRlP2YuaW5zZXJ0KHkuc2VnbWVudCx5LmluZGV4KTpmLnJlbW92ZSh5LnNlZ21lbnQpfXAucHVzaChmLnJvb3QpLGQucHVzaCh2KSxnLnB1c2gobSl9cmV0dXJuIG5ldyBzKHAsZCxnKX07dmFyIG49dCgiYmluYXJ5LXNlYXJjaC1ib3VuZHMiKSxhPXQoImZ1bmN0aW9uYWwtcmVkLWJsYWNrLXRyZWUiKSxpPXQoInJvYnVzdC1vcmllbnRhdGlvbiIpLG89dCgiLi9saWIvb3JkZXItc2VnbWVudHMiKTtmdW5jdGlvbiBzKHQsZSxyKXt0aGlzLnNsYWJzPXQsdGhpcy5jb29yZGluYXRlcz1lLHRoaXMuaG9yaXpvbnRhbD1yfWZ1bmN0aW9uIGwodCxlKXtyZXR1cm4gdC55LWV9ZnVuY3Rpb24gYyh0LGUpe2Zvcih2YXIgcj1udWxsO3Q7KXt2YXIgbixhLG89dC5rZXk7b1swXVswXTxvWzFdWzBdPyhuPW9bMF0sYT1vWzFdKToobj1vWzFdLGE9b1swXSk7dmFyIHM9aShuLGEsZSk7aWYoczwwKXQ9dC5sZWZ0O2Vsc2UgaWYocz4wKWlmKGVbMF0hPT1vWzFdWzBdKXI9dCx0PXQucmlnaHQ7ZWxzZXtpZihsPWModC5yaWdodCxlKSlyZXR1cm4gbDt0PXQubGVmdH1lbHNle2lmKGVbMF0hPT1vWzFdWzBdKXJldHVybiB0O3ZhciBsO2lmKGw9Yyh0LnJpZ2h0LGUpKXJldHVybiBsO3Q9dC5sZWZ0fX1yZXR1cm4gcn1mdW5jdGlvbiB1KHQsZSxyLG4pe3RoaXMueT10LHRoaXMuaW5kZXg9ZSx0aGlzLnN0YXJ0PXIsdGhpcy5jbG9zZWQ9bn1mdW5jdGlvbiBoKHQsZSxyLG4pe3RoaXMueD10LHRoaXMuc2VnbWVudD1lLHRoaXMuY3JlYXRlPXIsdGhpcy5pbmRleD1ufXMucHJvdG90eXBlLmNhc3RVcD1mdW5jdGlvbih0KXt2YXIgZT1uLmxlKHRoaXMuY29vcmRpbmF0ZXMsdFswXSk7aWYoZTwwKXJldHVybi0xO3RoaXMuc2xhYnNbZV07dmFyIHI9Yyh0aGlzLnNsYWJzW2VdLHQpLGE9LTE7aWYociYmKGE9ci52YWx1ZSksdGhpcy5jb29yZGluYXRlc1tlXT09PXRbMF0pe3ZhciBzPW51bGw7aWYociYmKHM9ci5rZXkpLGU+MCl7dmFyIHU9Yyh0aGlzLnNsYWJzW2UtMV0sdCk7dSYmKHM/byh1LmtleSxzKT4wJiYocz11LmtleSxhPXUudmFsdWUpOihhPXUudmFsdWUscz11LmtleSkpfXZhciBoPXRoaXMuaG9yaXpvbnRhbFtlXTtpZihoLmxlbmd0aD4wKXt2YXIgZj1uLmdlKGgsdFsxXSxsKTtpZihmPGgubGVuZ3RoKXt2YXIgcD1oW2ZdO2lmKHRbMV09PT1wLnkpe2lmKHAuY2xvc2VkKXJldHVybiBwLmluZGV4O2Zvcig7ZjxoLmxlbmd0aC0xJiZoW2YrMV0ueT09PXRbMV07KWlmKChwPWhbZis9MV0pLmNsb3NlZClyZXR1cm4gcC5pbmRleDtpZihwLnk9PT10WzFdJiYhcC5zdGFydCl7aWYoKGYrPTEpPj1oLmxlbmd0aClyZXR1cm4gYTtwPWhbZl19fWlmKHAuc3RhcnQpaWYocyl7dmFyIGQ9aShzWzBdLHNbMV0sW3RbMF0scC55XSk7c1swXVswXT5zWzFdWzBdJiYoZD0tZCksZD4wJiYoYT1wLmluZGV4KX1lbHNlIGE9cC5pbmRleDtlbHNlIHAueSE9PXRbMV0mJihhPXAuaW5kZXgpfX19cmV0dXJuIGF9fSx7Ii4vbGliL29yZGVyLXNlZ21lbnRzIjo1MjQsImJpbmFyeS1zZWFyY2gtYm91bmRzIjo5MywiZnVuY3Rpb25hbC1yZWQtYmxhY2stdHJlZSI6MjMzLCJyb2J1c3Qtb3JpZW50YXRpb24iOjUwOX1dLDUyNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJyb2J1c3QtZG90LXByb2R1Y3QiKSxhPXQoInJvYnVzdC1zdW0iKTtmdW5jdGlvbiBpKHQsZSl7dmFyIHI9YShuKHQsZSksW2VbZS5sZW5ndGgtMV1dKTtyZXR1cm4gcltyLmxlbmd0aC0xXX1mdW5jdGlvbiBvKHQsZSxyLG4pe3ZhciBhPS1lLyhuLWUpO2E8MD9hPTA6YT4xJiYoYT0xKTtmb3IodmFyIGk9MS1hLG89dC5sZW5ndGgscz1uZXcgQXJyYXkobyksbD0wO2w8bzsrK2wpc1tsXT1hKnRbbF0raSpyW2xdO3JldHVybiBzfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1bXSxuPVtdLGE9aSh0W3QubGVuZ3RoLTFdLGUpLHM9dFt0Lmxlbmd0aC0xXSxsPXRbMF0sYz0wO2M8dC5sZW5ndGg7KytjLHM9bCl7dmFyIHU9aShsPXRbY10sZSk7aWYoYTwwJiZ1PjB8fGE+MCYmdTwwKXt2YXIgaD1vKHMsdSxsLGEpO3IucHVzaChoKSxuLnB1c2goaC5zbGljZSgpKX11PDA/bi5wdXNoKGwuc2xpY2UoKSk6dT4wP3IucHVzaChsLnNsaWNlKCkpOihyLnB1c2gobC5zbGljZSgpKSxuLnB1c2gobC5zbGljZSgpKSksYT11fXJldHVybntwb3NpdGl2ZTpyLG5lZ2F0aXZlOm59fSxlLmV4cG9ydHMucG9zaXRpdmU9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9W10sbj1pKHRbdC5sZW5ndGgtMV0sZSksYT10W3QubGVuZ3RoLTFdLHM9dFswXSxsPTA7bDx0Lmxlbmd0aDsrK2wsYT1zKXt2YXIgYz1pKHM9dFtsXSxlKTsobjwwJiZjPjB8fG4+MCYmYzwwKSYmci5wdXNoKG8oYSxjLHMsbikpLGM+PTAmJnIucHVzaChzLnNsaWNlKCkpLG49Y31yZXR1cm4gcn0sZS5leHBvcnRzLm5lZ2F0aXZlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVtdLG49aSh0W3QubGVuZ3RoLTFdLGUpLGE9dFt0Lmxlbmd0aC0xXSxzPXRbMF0sbD0wO2w8dC5sZW5ndGg7KytsLGE9cyl7dmFyIGM9aShzPXRbbF0sZSk7KG48MCYmYz4wfHxuPjAmJmM8MCkmJnIucHVzaChvKGEsYyxzLG4pKSxjPD0wJiZyLnB1c2gocy5zbGljZSgpKSxuPWN9cmV0dXJuIHJ9fSx7InJvYnVzdC1kb3QtcHJvZHVjdCI6NTA2LCJyb2J1c3Qtc3VtIjo1MTR9XSw1Mjc6W2Z1bmN0aW9uKHQsZSxyKXshZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIHQ9e25vdF9zdHJpbmc6L1tec10vLG5vdF9ib29sOi9bXnRdLyxub3RfdHlwZTovW15UXS8sbm90X3ByaW1pdGl2ZTovW152XS8sbnVtYmVyOi9bZGllZmddLyxudW1lcmljX2FyZzovW2JjZGllZmd1eFhdLyxqc29uOi9bal0vLG5vdF9qc29uOi9bXmpdLyx0ZXh0Oi9eW15ceDI1XSsvLG1vZHVsbzovXlx4MjV7Mn0vLHBsYWNlaG9sZGVyOi9eXHgyNSg/OihbMS05XVxkKilcJHxcKChbXildKylcKSk/KFwrKT8oMHwnW14kXSk/KC0pPyhcZCspPyg/OlwuKFxkKykpPyhbYi1naWpvc3RUdXZ4WF0pLyxrZXk6L14oW2Etel9dW2Etel9cZF0qKS9pLGtleV9hY2Nlc3M6L15cLihbYS16X11bYS16X1xkXSopL2ksaW5kZXhfYWNjZXNzOi9eXFsoXGQrKVxdLyxzaWduOi9eWystXS99O2Z1bmN0aW9uIGUocil7cmV0dXJuIGZ1bmN0aW9uKHIsbil7dmFyIGEsaSxvLHMsbCxjLHUsaCxmLHA9MSxkPXIubGVuZ3RoLGc9IiI7Zm9yKGk9MDtpPGQ7aSsrKWlmKCJzdHJpbmciPT10eXBlb2YgcltpXSlnKz1yW2ldO2Vsc2UgaWYoIm9iamVjdCI9PXR5cGVvZiByW2ldKXtpZigocz1yW2ldKS5rZXlzKWZvcihhPW5bcF0sbz0wO288cy5rZXlzLmxlbmd0aDtvKyspe2lmKG51bGw9PWEpdGhyb3cgbmV3IEVycm9yKGUoJ1tzcHJpbnRmXSBDYW5ub3QgYWNjZXNzIHByb3BlcnR5ICIlcyIgb2YgdW5kZWZpbmVkIHZhbHVlICIlcyInLHMua2V5c1tvXSxzLmtleXNbby0xXSkpO2E9YVtzLmtleXNbb11dfWVsc2UgYT1zLnBhcmFtX25vP25bcy5wYXJhbV9ub106bltwKytdO2lmKHQubm90X3R5cGUudGVzdChzLnR5cGUpJiZ0Lm5vdF9wcmltaXRpdmUudGVzdChzLnR5cGUpJiZhIGluc3RhbmNlb2YgRnVuY3Rpb24mJihhPWEoKSksdC5udW1lcmljX2FyZy50ZXN0KHMudHlwZSkmJiJudW1iZXIiIT10eXBlb2YgYSYmaXNOYU4oYSkpdGhyb3cgbmV3IFR5cGVFcnJvcihlKCJbc3ByaW50Zl0gZXhwZWN0aW5nIG51bWJlciBidXQgZm91bmQgJVQiLGEpKTtzd2l0Y2godC5udW1iZXIudGVzdChzLnR5cGUpJiYoaD1hPj0wKSxzLnR5cGUpe2Nhc2UiYiI6YT1wYXJzZUludChhLDEwKS50b1N0cmluZygyKTticmVhaztjYXNlImMiOmE9U3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChhLDEwKSk7YnJlYWs7Y2FzZSJkIjpjYXNlImkiOmE9cGFyc2VJbnQoYSwxMCk7YnJlYWs7Y2FzZSJqIjphPUpTT04uc3RyaW5naWZ5KGEsbnVsbCxzLndpZHRoP3BhcnNlSW50KHMud2lkdGgpOjApO2JyZWFrO2Nhc2UiZSI6YT1zLnByZWNpc2lvbj9wYXJzZUZsb2F0KGEpLnRvRXhwb25lbnRpYWwocy5wcmVjaXNpb24pOnBhcnNlRmxvYXQoYSkudG9FeHBvbmVudGlhbCgpO2JyZWFrO2Nhc2UiZiI6YT1zLnByZWNpc2lvbj9wYXJzZUZsb2F0KGEpLnRvRml4ZWQocy5wcmVjaXNpb24pOnBhcnNlRmxvYXQoYSk7YnJlYWs7Y2FzZSJnIjphPXMucHJlY2lzaW9uP1N0cmluZyhOdW1iZXIoYS50b1ByZWNpc2lvbihzLnByZWNpc2lvbikpKTpwYXJzZUZsb2F0KGEpO2JyZWFrO2Nhc2UibyI6YT0ocGFyc2VJbnQoYSwxMCk+Pj4wKS50b1N0cmluZyg4KTticmVhaztjYXNlInMiOmE9U3RyaW5nKGEpLGE9cy5wcmVjaXNpb24/YS5zdWJzdHJpbmcoMCxzLnByZWNpc2lvbik6YTticmVhaztjYXNlInQiOmE9U3RyaW5nKCEhYSksYT1zLnByZWNpc2lvbj9hLnN1YnN0cmluZygwLHMucHJlY2lzaW9uKTphO2JyZWFrO2Nhc2UiVCI6YT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSkuc2xpY2UoOCwtMSkudG9Mb3dlckNhc2UoKSxhPXMucHJlY2lzaW9uP2Euc3Vic3RyaW5nKDAscy5wcmVjaXNpb24pOmE7YnJlYWs7Y2FzZSJ1IjphPXBhcnNlSW50KGEsMTApPj4+MDticmVhaztjYXNlInYiOmE9YS52YWx1ZU9mKCksYT1zLnByZWNpc2lvbj9hLnN1YnN0cmluZygwLHMucHJlY2lzaW9uKTphO2JyZWFrO2Nhc2UieCI6YT0ocGFyc2VJbnQoYSwxMCk+Pj4wKS50b1N0cmluZygxNik7YnJlYWs7Y2FzZSJYIjphPShwYXJzZUludChhLDEwKT4+PjApLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfXQuanNvbi50ZXN0KHMudHlwZSk/Zys9YTooIXQubnVtYmVyLnRlc3Qocy50eXBlKXx8aCYmIXMuc2lnbj9mPSIiOihmPWg/IisiOiItIixhPWEudG9TdHJpbmcoKS5yZXBsYWNlKHQuc2lnbiwiIikpLGM9cy5wYWRfY2hhcj8iMCI9PT1zLnBhZF9jaGFyPyIwIjpzLnBhZF9jaGFyLmNoYXJBdCgxKToiICIsdT1zLndpZHRoLShmK2EpLmxlbmd0aCxsPXMud2lkdGgmJnU+MD9jLnJlcGVhdCh1KToiIixnKz1zLmFsaWduP2YrYStsOiIwIj09PWM/ZitsK2E6bCtmK2EpfXJldHVybiBnfShmdW5jdGlvbihlKXtpZihhW2VdKXJldHVybiBhW2VdO3ZhciByLG49ZSxpPVtdLG89MDtmb3IoO247KXtpZihudWxsIT09KHI9dC50ZXh0LmV4ZWMobikpKWkucHVzaChyWzBdKTtlbHNlIGlmKG51bGwhPT0ocj10Lm1vZHVsby5leGVjKG4pKSlpLnB1c2goIiUiKTtlbHNle2lmKG51bGw9PT0ocj10LnBsYWNlaG9sZGVyLmV4ZWMobikpKXRocm93IG5ldyBTeW50YXhFcnJvcigiW3NwcmludGZdIHVuZXhwZWN0ZWQgcGxhY2Vob2xkZXIiKTtpZihyWzJdKXtvfD0xO3ZhciBzPVtdLGw9clsyXSxjPVtdO2lmKG51bGw9PT0oYz10LmtleS5leGVjKGwpKSl0aHJvdyBuZXcgU3ludGF4RXJyb3IoIltzcHJpbnRmXSBmYWlsZWQgdG8gcGFyc2UgbmFtZWQgYXJndW1lbnQga2V5Iik7Zm9yKHMucHVzaChjWzFdKTsiIiE9PShsPWwuc3Vic3RyaW5nKGNbMF0ubGVuZ3RoKSk7KWlmKG51bGwhPT0oYz10LmtleV9hY2Nlc3MuZXhlYyhsKSkpcy5wdXNoKGNbMV0pO2Vsc2V7aWYobnVsbD09PShjPXQuaW5kZXhfYWNjZXNzLmV4ZWMobCkpKXRocm93IG5ldyBTeW50YXhFcnJvcigiW3NwcmludGZdIGZhaWxlZCB0byBwYXJzZSBuYW1lZCBhcmd1bWVudCBrZXkiKTtzLnB1c2goY1sxXSl9clsyXT1zfWVsc2Ugb3w9MjtpZigzPT09byl0aHJvdyBuZXcgRXJyb3IoIltzcHJpbnRmXSBtaXhpbmcgcG9zaXRpb25hbCBhbmQgbmFtZWQgcGxhY2Vob2xkZXJzIGlzIG5vdCAoeWV0KSBzdXBwb3J0ZWQiKTtpLnB1c2goe3BsYWNlaG9sZGVyOnJbMF0scGFyYW1fbm86clsxXSxrZXlzOnJbMl0sc2lnbjpyWzNdLHBhZF9jaGFyOnJbNF0sYWxpZ246cls1XSx3aWR0aDpyWzZdLHByZWNpc2lvbjpyWzddLHR5cGU6cls4XX0pfW49bi5zdWJzdHJpbmcoclswXS5sZW5ndGgpfXJldHVybiBhW2VdPWl9KHIpLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbih0LHIpe3JldHVybiBlLmFwcGx5KG51bGwsW3RdLmNvbmNhdChyfHxbXSkpfXZhciBhPU9iamVjdC5jcmVhdGUobnVsbCk7InVuZGVmaW5lZCIhPXR5cGVvZiByJiYoci5zcHJpbnRmPWUsci52c3ByaW50Zj1uKSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmKHdpbmRvdy5zcHJpbnRmPWUsd2luZG93LnZzcHJpbnRmPW4pfSgpfSx7fV0sNTI4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInBhcmVudGhlc2lzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtpZihudWxsPT10KXRocm93IEVycm9yKCJGaXJzdCBhcmd1bWVudCBzaG91bGQgYmUgYSBzdHJpbmciKTtpZihudWxsPT1lKXRocm93IEVycm9yKCJTZXBhcmF0b3Igc2hvdWxkIGJlIGEgc3RyaW5nIG9yIGEgUmVnRXhwIik7cj8oInN0cmluZyI9PXR5cGVvZiByfHxBcnJheS5pc0FycmF5KHIpKSYmKHI9e2lnbm9yZTpyfSk6cj17fSxudWxsPT1yLmVzY2FwZSYmKHIuZXNjYXBlPSEwKSxudWxsPT1yLmlnbm9yZT9yLmlnbm9yZT1bIltdIiwiKCkiLCJ7fSIsIjw+IiwnIiInLCInJyIsImBgIiwiXHUyMDFjXHUyMDFkIiwiXHhhYlx4YmIiXTooInN0cmluZyI9PXR5cGVvZiByLmlnbm9yZSYmKHIuaWdub3JlPVtyLmlnbm9yZV0pLHIuaWdub3JlPXIuaWdub3JlLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gMT09PXQubGVuZ3RoJiYodCs9dCksdH0pKTt2YXIgYT1uLnBhcnNlKHQse2ZsYXQ6ITAsYnJhY2tldHM6ci5pZ25vcmV9KSxpPWFbMF0uc3BsaXQoZSk7aWYoci5lc2NhcGUpe2Zvcih2YXIgbz1bXSxzPTA7czxpLmxlbmd0aDtzKyspe3ZhciBsPWlbc10sYz1pW3MrMV07IlxcIj09PWxbbC5sZW5ndGgtMV0mJiJcXCIhPT1sW2wubGVuZ3RoLTJdPyhvLnB1c2gobCtlK2MpLHMrKyk6by5wdXNoKGwpfWk9b31mb3Iocz0wO3M8aS5sZW5ndGg7cysrKWFbMF09aVtzXSxpW3NdPW4uc3RyaW5naWZ5KGEse2ZsYXQ6ITB9KTtyZXR1cm4gaX19LHtwYXJlbnRoZXNpczo0NjB9XSw1Mjk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Lmxlbmd0aCxyPW5ldyBBcnJheShlKSxuPW5ldyBBcnJheShlKSxhPW5ldyBBcnJheShlKSxpPW5ldyBBcnJheShlKSxvPW5ldyBBcnJheShlKSxzPW5ldyBBcnJheShlKSxsPTA7bDxlOysrbClyW2xdPS0xLG5bbF09MCxhW2xdPSExLGlbbF09MCxvW2xdPS0xLHNbbF09W107dmFyIGMsdT0wLGg9W10sZj1bXTtmdW5jdGlvbiBwKGUpe3ZhciBsPVtlXSxjPVtlXTtmb3IocltlXT1uW2VdPXUsYVtlXT0hMCx1Kz0xO2MubGVuZ3RoPjA7KXtlPWNbYy5sZW5ndGgtMV07dmFyIHA9dFtlXTtpZihpW2VdPHAubGVuZ3RoKXtmb3IodmFyIGQ9aVtlXTtkPHAubGVuZ3RoOysrZCl7dmFyIGc9cFtkXTtpZihyW2ddPDApe3JbZ109bltnXT11LGFbZ109ITAsdSs9MSxsLnB1c2goZyksYy5wdXNoKGcpO2JyZWFrfWFbZ10mJihuW2VdPTB8TWF0aC5taW4obltlXSxuW2ddKSksb1tnXT49MCYmc1tlXS5wdXNoKG9bZ10pfWlbZV09ZH1lbHNle2lmKG5bZV09PT1yW2VdKXtmb3IodmFyIHY9W10sbT1bXSx5PTAsZD1sLmxlbmd0aC0xO2Q+PTA7LS1kKXt2YXIgeD1sW2RdO2lmKGFbeF09ITEsdi5wdXNoKHgpLG0ucHVzaChzW3hdKSx5Kz1zW3hdLmxlbmd0aCxvW3hdPWgubGVuZ3RoLHg9PT1lKXtsLmxlbmd0aD1kO2JyZWFrfX1oLnB1c2godik7Zm9yKHZhciBiPW5ldyBBcnJheSh5KSxkPTA7ZDxtLmxlbmd0aDtkKyspZm9yKHZhciBfPTA7XzxtW2RdLmxlbmd0aDtfKyspYlstLXldPW1bZF1bX107Zi5wdXNoKGIpfWMucG9wKCl9fX1mb3IodmFyIGw9MDtsPGU7KytsKXJbbF08MCYmcChsKTtmb3IodmFyIGw9MDtsPGYubGVuZ3RoO2wrKyl7dmFyIGQ9ZltsXTtpZigwIT09ZC5sZW5ndGgpe2Quc29ydChmdW5jdGlvbih0LGUpe3JldHVybiB0LWV9KSxjPVtkWzBdXTtmb3IodmFyIGc9MTtnPGQubGVuZ3RoO2crKylkW2ddIT09ZFtnLTFdJiZjLnB1c2goZFtnXSk7ZltsXT1jfX1yZXR1cm57Y29tcG9uZW50czpoLGFkamFjZW5jeUxpc3Q6Zn19fSx7fV0sNTMwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2lmKHQuZGltZW5zaW9uPD0wKXJldHVybntwb3NpdGlvbnM6W10sY2VsbHM6W119O2lmKDE9PT10LmRpbWVuc2lvbilyZXR1cm4gZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9aSh0LGUpLG49ci5sZW5ndGgsYT1uZXcgQXJyYXkobiksbz1uZXcgQXJyYXkobikscz0wO3M8bjsrK3MpYVtzXT1bcltzXV0sb1tzXT1bc107cmV0dXJue3Bvc2l0aW9uczphLGNlbGxzOm99fSh0LGUpO3ZhciByPXQub3JkZXIuam9pbigpKyItIit0LmR0eXBlLHM9b1tyXSxlPStlfHwwO3N8fChzPW9bcl09ZnVuY3Rpb24odCxlKXt2YXIgcj10Lmxlbmd0aCxpPVsiJ3VzZSBzdHJpY3QnOyJdLG89InN1cmZhY2VOZXRzIit0LmpvaW4oIl8iKSsiZCIrZTtpLnB1c2goInZhciBjb250b3VyPWdlbkNvbnRvdXIoeyIsIm9yZGVyOlsiLHQuam9pbigpLCJdLCIsInNjYWxhckFyZ3VtZW50czogMywiLCJwaGFzZTpmdW5jdGlvbiBwaGFzZUZ1bmMocCxhLGIsYykgeyByZXR1cm4gKHAgPiBjKXwwIH0sIiksImdlbmVyaWMiPT09ZSYmaS5wdXNoKCJnZXR0ZXJzOlswXSwiKTtmb3IodmFyIHM9W10sbD1bXSxjPTA7YzxyOysrYylzLnB1c2goImQiK2MpLGwucHVzaCgiZCIrYyk7Zm9yKHZhciBjPTA7YzwxPDxyOysrYylzLnB1c2goInYiK2MpLGwucHVzaCgidiIrYyk7Zm9yKHZhciBjPTA7YzwxPDxyOysrYylzLnB1c2goInAiK2MpLGwucHVzaCgicCIrYyk7cy5wdXNoKCJhIiwiYiIsImMiKSxsLnB1c2goImEiLCJjIiksaS5wdXNoKCJ2ZXJ0ZXg6ZnVuY3Rpb24gdmVydGV4RnVuYygiLHMuam9pbigpLCIpeyIpO2Zvcih2YXIgdT1bXSxjPTA7YzwxPDxyOysrYyl1LnB1c2goIihwIitjKyI8PCIrYysiKSIpO2kucHVzaCgidmFyIG09KCIsdS5qb2luKCIrIiksIil8MDtpZihtPT09MHx8bT09PSIsKDE8PCgxPDxyKSktMSwiKXtyZXR1cm59Iik7dmFyIGg9W10sZj1bXTsxPDwoMTw8cik8PTEyOD8oaS5wdXNoKCJzd2l0Y2gobSl7IiksZj1pKTppLnB1c2goInN3aXRjaChtPj4+Nyl7Iik7Zm9yKHZhciBjPTA7YzwxPDwoMTw8cik7KytjKXtpZigxPDwoMTw8cik+MTI4JiZjJTEyOD09MCl7aC5sZW5ndGg+MCYmZi5wdXNoKCJ9fSIpO3ZhciBwPSJ2RXh0cmEiK2gubGVuZ3RoO2kucHVzaCgiY2FzZSAiLGM+Pj43LCI6IixwLCIobSYweDdmLCIsbC5qb2luKCksIik7YnJlYWs7IiksZj1bImZ1bmN0aW9uICIscCwiKG0sIixsLmpvaW4oKSwiKXtzd2l0Y2gobSl7Il0saC5wdXNoKGYpfWYucHVzaCgiY2FzZSAiLDEyNyZjLCI6Iik7Zm9yKHZhciBkPW5ldyBBcnJheShyKSxnPW5ldyBBcnJheShyKSx2PW5ldyBBcnJheShyKSxtPW5ldyBBcnJheShyKSx5PTAseD0wO3g8cjsrK3gpZFt4XT1bXSxnW3hdPVtdLHZbeF09MCxtW3hdPTA7Zm9yKHZhciB4PTA7eDwxPDxyOysreClmb3IodmFyIGI9MDtiPHI7KytiKXt2YXIgXz14XjE8PGI7aWYoIShfPngpJiYhKGMmMTw8XykhPSEoYyYxPDx4KSl7dmFyIHc9MTtjJjE8PF8/Z1tiXS5wdXNoKCJ2IitfKyItdiIreCk6KGdbYl0ucHVzaCgidiIreCsiLXYiK18pLHc9LXcpLHc8MD8oZFtiXS5wdXNoKCItdiIreCsiLXYiK18pLHZbYl0rPTIpOihkW2JdLnB1c2goInYiK3grIit2IitfKSx2W2JdLT0yKSx5Kz0xO2Zvcih2YXIgaz0wO2s8cjsrK2spayE9PWImJihfJjE8PGs/bVtrXSs9MTptW2tdLT0xKX19Zm9yKHZhciBUPVtdLGI9MDtiPHI7KytiKWlmKDA9PT1kW2JdLmxlbmd0aClULnB1c2goImQiK2IrIi0wLjUiKTtlbHNle3ZhciBNPSIiO3ZbYl08MD9NPXZbYl0rIipjIjp2W2JdPjAmJihNPSIrIit2W2JdKyIqYyIpO3ZhciBBPWRbYl0ubGVuZ3RoL3kqLjUsUz0uNSttW2JdL3kqLjU7VC5wdXNoKCJkIitiKyItIitTKyItIitBKyIqKCIrZFtiXS5qb2luKCIrIikrTSsiKS8oIitnW2JdLmpvaW4oIisiKSsiKSIpfWYucHVzaCgiYS5wdXNoKFsiLFQuam9pbigpLCJdKTsiLCJicmVhazsiKX1pLnB1c2goIn19LCIpLGgubGVuZ3RoPjAmJmYucHVzaCgifX0iKTtmb3IodmFyIEU9W10sYz0wO2M8MTw8ci0xOysrYylFLnB1c2goInYiK2MpO0UucHVzaCgiYzAiLCJjMSIsInAwIiwicDEiLCJhIiwiYiIsImMiKSxpLnB1c2goImNlbGw6ZnVuY3Rpb24gY2VsbEZ1bmMoIixFLmpvaW4oKSwiKXsiKTt2YXIgTD1hKHItMSk7aS5wdXNoKCJpZihwMCl7Yi5wdXNoKCIsTC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIlsiK3QubWFwKGZ1bmN0aW9uKHQpe3JldHVybiJ2Iit0fSkrIl0ifSkuam9pbigpLCIpfWVsc2V7Yi5wdXNoKCIsTC5tYXAoZnVuY3Rpb24odCl7dmFyIGU9dC5zbGljZSgpO3JldHVybiBlLnJldmVyc2UoKSwiWyIrZS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuInYiK3R9KSsiXSJ9KS5qb2luKCksIil9fX0pO2Z1bmN0aW9uICIsbywiKGFycmF5LGxldmVsKXt2YXIgdmVydHM9W10sY2VsbHM9W107Y29udG91cihhcnJheSx2ZXJ0cyxjZWxscyxsZXZlbCk7cmV0dXJuIHtwb3NpdGlvbnM6dmVydHMsY2VsbHM6Y2VsbHN9O30gcmV0dXJuICIsbywiOyIpO2Zvcih2YXIgYz0wO2M8aC5sZW5ndGg7KytjKWkucHVzaChoW2NdLmpvaW4oIiIpKTtyZXR1cm4gbmV3IEZ1bmN0aW9uKCJnZW5Db250b3VyIixpLmpvaW4oIiIpKShuKX0odC5vcmRlcix0LmR0eXBlKSk7cmV0dXJuIHModCxlKX07dmFyIG49dCgibmRhcnJheS1leHRyYWN0LWNvbnRvdXIiKSxhPXQoInRyaWFuZ3VsYXRlLWh5cGVyY3ViZSIpLGk9dCgiemVyby1jcm9zc2luZ3MiKTt2YXIgbz17fX0seyJuZGFycmF5LWV4dHJhY3QtY29udG91ciI6NDQxLCJ0cmlhbmd1bGF0ZS1oeXBlcmN1YmUiOjU0MCwiemVyby1jcm9zc2luZ3MiOjU3M31dLDUzMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxlKXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB0O2lmKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QodCkpcmV0dXJuIGZ1bmN0aW9uKHQsZSl7dmFyIHI9W10sbj0hMCxhPSExLGk9dm9pZCAwO3RyeXtmb3IodmFyIG8scz10W1N5bWJvbC5pdGVyYXRvcl0oKTshKG49KG89cy5uZXh0KCkpLmRvbmUpJiYoci5wdXNoKG8udmFsdWUpLCFlfHxyLmxlbmd0aCE9PWUpO249ITApO31jYXRjaCh0KXthPSEwLGk9dH1maW5hbGx5e3RyeXshbiYmcy5yZXR1cm4mJnMucmV0dXJuKCl9ZmluYWxseXtpZihhKXRocm93IGl9fXJldHVybiByfSh0LGUpO3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UiKX19KCksYT0yKk1hdGguUEksaT1mdW5jdGlvbih0LGUscixuLGEsaSxvKXt2YXIgcz10LngsbD10Lnk7cmV0dXJue3g6bioocyo9ZSktYSoobCo9cikraSx5OmEqcytuKmwrb319LG89ZnVuY3Rpb24odCxlKXt2YXIgcj0uNTUxOTE1MDI0NDk0KihlPDA/LTE6MSksbj1NYXRoLmNvcyh0KSxhPU1hdGguc2luKHQpLGk9TWF0aC5jb3ModCtlKSxvPU1hdGguc2luKHQrZSk7cmV0dXJuW3t4Om4tYSpyLHk6YStuKnJ9LHt4OmkrbypyLHk6by1pKnJ9LHt4OmkseTpvfV19LHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9dCpuLWUqcjwwPy0xOjEsaT0odCpyK2UqbikvKE1hdGguc3FydCh0KnQrZSplKSpNYXRoLnNxcnQodCp0K2UqZSkpO3JldHVybiBpPjEmJihpPTEpLGk8LTEmJihpPS0xKSxhKk1hdGguYWNvcyhpKX07ci5kZWZhdWx0PWZ1bmN0aW9uKHQpe3ZhciBlPXQucHgscj10LnB5LGw9dC5jeCxjPXQuY3ksdT10LnJ4LGg9dC5yeSxmPXQueEF4aXNSb3RhdGlvbixwPXZvaWQgMD09PWY/MDpmLGQ9dC5sYXJnZUFyY0ZsYWcsZz12b2lkIDA9PT1kPzA6ZCx2PXQuc3dlZXBGbGFnLG09dm9pZCAwPT09dj8wOnYseT1bXTtpZigwPT09dXx8MD09PWgpcmV0dXJuW107dmFyIHg9TWF0aC5zaW4ocCphLzM2MCksYj1NYXRoLmNvcyhwKmEvMzYwKSxfPWIqKGUtbCkvMit4KihyLWMpLzIsdz0teCooZS1sKS8yK2IqKHItYykvMjtpZigwPT09XyYmMD09PXcpcmV0dXJuW107dT1NYXRoLmFicyh1KSxoPU1hdGguYWJzKGgpO3ZhciBrPU1hdGgucG93KF8sMikvTWF0aC5wb3codSwyKStNYXRoLnBvdyh3LDIpL01hdGgucG93KGgsMik7az4xJiYodSo9TWF0aC5zcXJ0KGspLGgqPU1hdGguc3FydChrKSk7dmFyIFQ9ZnVuY3Rpb24odCxlLHIsbixpLG8sbCxjLHUsaCxmLHApe3ZhciBkPU1hdGgucG93KGksMiksZz1NYXRoLnBvdyhvLDIpLHY9TWF0aC5wb3coZiwyKSxtPU1hdGgucG93KHAsMikseT1kKmctZCptLWcqdjt5PDAmJih5PTApLHkvPWQqbStnKnY7dmFyIHg9KHk9TWF0aC5zcXJ0KHkpKihsPT09Yz8tMToxKSkqaS9vKnAsYj15Ki1vL2kqZixfPWgqeC11KmIrKHQrcikvMix3PXUqeCtoKmIrKGUrbikvMixrPShmLXgpL2ksVD0ocC1iKS9vLE09KC1mLXgpL2ksQT0oLXAtYikvbyxTPXMoMSwwLGssVCksRT1zKGssVCxNLEEpO3JldHVybiAwPT09YyYmRT4wJiYoRS09YSksMT09PWMmJkU8MCYmKEUrPWEpLFtfLHcsUyxFXX0oZSxyLGwsYyx1LGgsZyxtLHgsYixfLHcpLE09bihULDQpLEE9TVswXSxTPU1bMV0sRT1NWzJdLEw9TVszXSxDPU1hdGguYWJzKEwpLyhhLzQpO01hdGguYWJzKDEtQyk8MWUtNyYmKEM9MSk7dmFyIFA9TWF0aC5tYXgoTWF0aC5jZWlsKEMpLDEpO0wvPVA7Zm9yKHZhciBPPTA7TzxQO08rKyl5LnB1c2gobyhFLEwpKSxFKz1MO3JldHVybiB5Lm1hcChmdW5jdGlvbih0KXt2YXIgZT1pKHRbMF0sdSxoLGIseCxBLFMpLHI9ZS54LG49ZS55LGE9aSh0WzFdLHUsaCxiLHgsQSxTKSxvPWEueCxzPWEueSxsPWkodFsyXSx1LGgsYix4LEEsUyk7cmV0dXJue3gxOnIseTE6bix4MjpvLHkyOnMseDpsLngseTpsLnl9fSl9LGUuZXhwb3J0cz1yLmRlZmF1bHR9LHt9XSw1MzI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgicGFyc2Utc3ZnLXBhdGgiKSxhPXQoImFicy1zdmctcGF0aCIpLGk9dCgibm9ybWFsaXplLXN2Zy1wYXRoIiksbz10KCJpcy1zdmctcGF0aCIpLHM9dCgiYXNzZXJ0Iik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe0FycmF5LmlzQXJyYXkodCkmJjE9PT10Lmxlbmd0aCYmInN0cmluZyI9PXR5cGVvZiB0WzBdJiYodD10WzBdKTsic3RyaW5nIj09dHlwZW9mIHQmJihzKG8odCksIlN0cmluZyBpcyBub3QgYW4gU1ZHIHBhdGguIiksdD1uKHQpKTtpZihzKEFycmF5LmlzQXJyYXkodCksIkFyZ3VtZW50IHNob3VsZCBiZSBhIHN0cmluZyBvciBhbiBhcnJheSBvZiBwYXRoIHNlZ21lbnRzLiIpLHQ9YSh0KSwhKHQ9aSh0KSkubGVuZ3RoKXJldHVyblswLDAsMCwwXTtmb3IodmFyIGU9WzEvMCwxLzAsLTEvMCwtMS8wXSxyPTAsbD10Lmxlbmd0aDtyPGw7cisrKWZvcih2YXIgYz10W3JdLnNsaWNlKDEpLHU9MDt1PGMubGVuZ3RoO3UrPTIpY1t1KzBdPGVbMF0mJihlWzBdPWNbdSswXSksY1t1KzFdPGVbMV0mJihlWzFdPWNbdSsxXSksY1t1KzBdPmVbMl0mJihlWzJdPWNbdSswXSksY1t1KzFdPmVbM10mJihlWzNdPWNbdSsxXSk7cmV0dXJuIGV9fSx7ImFicy1zdmctcGF0aCI6NjMsYXNzZXJ0OjcwLCJpcy1zdmctcGF0aCI6NDI2LCJub3JtYWxpemUtc3ZnLXBhdGgiOjUzMywicGFyc2Utc3ZnLXBhdGgiOjQ2Mn1dLDUzMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLHI9W10sbz0wLHM9MCxsPTAsYz0wLHU9bnVsbCxoPW51bGwsZj0wLHA9MCxkPTAsZz10Lmxlbmd0aDtkPGc7ZCsrKXt2YXIgdj10W2RdLG09dlswXTtzd2l0Y2gobSl7Y2FzZSJNIjpsPXZbMV0sYz12WzJdO2JyZWFrO2Nhc2UiQSI6dmFyIHk9bih7cHg6ZixweTpwLGN4OnZbNl0sY3k6dls3XSxyeDp2WzFdLHJ5OnZbMl0seEF4aXNSb3RhdGlvbjp2WzNdLGxhcmdlQXJjRmxhZzp2WzRdLHN3ZWVwRmxhZzp2WzVdfSk7aWYoIXkubGVuZ3RoKWNvbnRpbnVlO2Zvcih2YXIgeCxiPTA7Yjx5Lmxlbmd0aDtiKyspeD15W2JdLHY9WyJDIix4LngxLHgueTEseC54Mix4LnkyLHgueCx4LnldLGI8eS5sZW5ndGgtMSYmci5wdXNoKHYpO2JyZWFrO2Nhc2UiUyI6dmFyIF89Zix3PXA7IkMiIT1lJiYiUyIhPWV8fChfKz1fLW8sdys9dy1zKSx2PVsiQyIsXyx3LHZbMV0sdlsyXSx2WzNdLHZbNF1dO2JyZWFrO2Nhc2UiVCI6IlEiPT1lfHwiVCI9PWU/KHU9MipmLXUsaD0yKnAtaCk6KHU9ZixoPXApLHY9aShmLHAsdSxoLHZbMV0sdlsyXSk7YnJlYWs7Y2FzZSJRIjp1PXZbMV0saD12WzJdLHY9aShmLHAsdlsxXSx2WzJdLHZbM10sdls0XSk7YnJlYWs7Y2FzZSJMIjp2PWEoZixwLHZbMV0sdlsyXSk7YnJlYWs7Y2FzZSJIIjp2PWEoZixwLHZbMV0scCk7YnJlYWs7Y2FzZSJWIjp2PWEoZixwLGYsdlsxXSk7YnJlYWs7Y2FzZSJaIjp2PWEoZixwLGwsYyl9ZT1tLGY9dlt2Lmxlbmd0aC0yXSxwPXZbdi5sZW5ndGgtMV0sdi5sZW5ndGg+ND8obz12W3YubGVuZ3RoLTRdLHM9dlt2Lmxlbmd0aC0zXSk6KG89ZixzPXApLHIucHVzaCh2KX1yZXR1cm4gcn07dmFyIG49dCgic3ZnLWFyYy10by1jdWJpYy1iZXppZXIiKTtmdW5jdGlvbiBhKHQsZSxyLG4pe3JldHVyblsiQyIsdCxlLHIsbixyLG5dfWZ1bmN0aW9uIGkodCxlLHIsbixhLGkpe3JldHVyblsiQyIsdC8zKzIvMypyLGUvMysyLzMqbixhLzMrMi8zKnIsaS8zKzIvMypuLGEsaV19fSx7InN2Zy1hcmMtdG8tY3ViaWMtYmV6aWVyIjo1MzF9XSw1MzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG4sYT10KCJzdmctcGF0aC1ib3VuZHMiKSxpPXQoInBhcnNlLXN2Zy1wYXRoIiksbz10KCJkcmF3LXN2Zy1wYXRoIikscz10KCJpcy1zdmctcGF0aCIpLGw9dCgiYml0bWFwLXNkZiIpLGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksdT1jLmdldENvbnRleHQoIjJkIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYoIXModCkpdGhyb3cgRXJyb3IoIkFyZ3VtZW50IHNob3VsZCBiZSB2YWxpZCBzdmcgcGF0aCBzdHJpbmciKTtlfHwoZT17fSk7dmFyIHIsaDtlLnNoYXBlPyhyPWUuc2hhcGVbMF0saD1lLnNoYXBlWzFdKToocj1jLndpZHRoPWUud3x8ZS53aWR0aHx8MjAwLGg9Yy5oZWlnaHQ9ZS5ofHxlLmhlaWdodHx8MjAwKTt2YXIgZj1NYXRoLm1pbihyLGgpLHA9ZS5zdHJva2V8fDAsZD1lLnZpZXdib3h8fGUudmlld0JveHx8YSh0KSxnPVtyLyhkWzJdLWRbMF0pLGgvKGRbM10tZFsxXSldLHY9TWF0aC5taW4oZ1swXXx8MCxnWzFdfHwwKS8yO3UuZmlsbFN0eWxlPSJibGFjayIsdS5maWxsUmVjdCgwLDAscixoKSx1LmZpbGxTdHlsZT0id2hpdGUiLHAmJigibnVtYmVyIiE9dHlwZW9mIHAmJihwPTEpLHUuc3Ryb2tlU3R5bGU9cD4wPyJ3aGl0ZSI6ImJsYWNrIix1LmxpbmVXaWR0aD1NYXRoLmFicyhwKSk7aWYodS50cmFuc2xhdGUoLjUqciwuNSpoKSx1LnNjYWxlKHYsdiksZnVuY3Rpb24oKXtpZihudWxsIT1uKXJldHVybiBuO3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQoIjJkIik7aWYodC5jYW52YXMud2lkdGg9dC5jYW52YXMuaGVpZ2h0PTEsIXdpbmRvdy5QYXRoMkQpcmV0dXJuIG49ITE7dmFyIGU9bmV3IFBhdGgyRCgiTTAsMGgxdjFoLTF2LTFaIik7dC5maWxsU3R5bGU9ImJsYWNrIix0LmZpbGwoZSk7dmFyIHI9dC5nZXRJbWFnZURhdGEoMCwwLDEsMSk7cmV0dXJuIG49ciYmci5kYXRhJiYyNTU9PT1yLmRhdGFbM119KCkpe3ZhciBtPW5ldyBQYXRoMkQodCk7dS5maWxsKG0pLHAmJnUuc3Ryb2tlKG0pfWVsc2V7dmFyIHk9aSh0KTtvKHUseSksdS5maWxsKCkscCYmdS5zdHJva2UoKX1yZXR1cm4gdS5zZXRUcmFuc2Zvcm0oMSwwLDAsMSwwLDApLGwodSx7Y3V0b2ZmOm51bGwhPWUuY3V0b2ZmP2UuY3V0b2ZmOi41LHJhZGl1czpudWxsIT1lLnJhZGl1cz9lLnJhZGl1czouNSpmfSl9fSx7ImJpdG1hcC1zZGYiOjk1LCJkcmF3LXN2Zy1wYXRoIjoxNzAsImlzLXN2Zy1wYXRoIjo0MjYsInBhcnNlLXN2Zy1wYXRoIjo0NjIsInN2Zy1wYXRoLWJvdW5kcyI6NTMyfV0sNTM1OltmdW5jdGlvbih0LGUscil7KGZ1bmN0aW9uKHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24gdChlLHIsYSl7dmFyIGE9YXx8e307dmFyIG89aVtlXTtvfHwobz1pW2VdPXsiICI6e2RhdGE6bmV3IEZsb2F0MzJBcnJheSgwKSxzaGFwZTouMn19KTt2YXIgcz1vW3JdO2lmKCFzKWlmKHIubGVuZ3RoPD0xfHwhL1xkLy50ZXN0KHIpKXM9b1tyXT1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5jZWxscyxyPXQucG9zaXRpb25zLG49bmV3IEZsb2F0MzJBcnJheSg2KmUubGVuZ3RoKSxhPTAsaT0wLG89MDtvPGUubGVuZ3RoOysrbylmb3IodmFyIHM9ZVtvXSxsPTA7bDwzOysrbCl7dmFyIGM9cltzW2xdXTtuW2ErK109Y1swXSxuW2ErK109Y1sxXSsxLjQsaT1NYXRoLm1heChjWzBdLGkpfXJldHVybntkYXRhOm4sc2hhcGU6aX19KG4ocix7dHJpYW5nbGVzOiEwLGZvbnQ6ZSx0ZXh0QWxpZ246YS50ZXh0QWxpZ258fCJsZWZ0Iix0ZXh0QmFzZWxpbmU6ImFscGhhYmV0aWMiLHN0eWxldGFnczp7YnJlYWtsaW5lczohMCxib2xkczohMCxpdGFsaWNzOiEwLHN1YnNjcmlwdHM6ITAsc3VwZXJzY3JpcHRzOiEwfX0pKTtlbHNle2Zvcih2YXIgbD1yLnNwbGl0KC8oXGR8XHMpLyksYz1uZXcgQXJyYXkobC5sZW5ndGgpLHU9MCxoPTAsZj0wO2Y8bC5sZW5ndGg7KytmKWNbZl09dChlLGxbZl0pLHUrPWNbZl0uZGF0YS5sZW5ndGgsaCs9Y1tmXS5zaGFwZSxmPjAmJihoKz0uMDIpO2Zvcih2YXIgcD1uZXcgRmxvYXQzMkFycmF5KHUpLGQ9MCxnPS0uNSpoLGY9MDtmPGMubGVuZ3RoOysrZil7Zm9yKHZhciB2PWNbZl0uZGF0YSxtPTA7bTx2Lmxlbmd0aDttKz0yKXBbZCsrXT12W21dK2cscFtkKytdPXZbbSsxXTtnKz1jW2ZdLnNoYXBlKy4wMn1zPW9bcl09e2RhdGE6cCxzaGFwZTpofX1yZXR1cm4gc307dmFyIG49dCgidmVjdG9yaXplLXRleHQiKSxhPXdpbmRvd3x8ci5nbG9iYWx8fHt9LGk9YS5fX1RFWFRfQ0FDSEV8fHt9O2EuX19URVhUX0NBQ0hFPXt9fSkuY2FsbCh0aGlzLHQoIl9wcm9jZXNzIikpfSx7X3Byb2Nlc3M6NDg0LCJ2ZWN0b3JpemUtdGV4dCI6NTQ5fV0sNTM2OltmdW5jdGlvbih0LGUscil7IWZ1bmN0aW9uKHQpe3ZhciByPS9eXHMrLyxuPS9ccyskLyxhPTAsaT10LnJvdW5kLG89dC5taW4scz10Lm1heCxsPXQucmFuZG9tO2Z1bmN0aW9uIGMoZSxsKXtpZihsPWx8fHt9LChlPWV8fCIiKWluc3RhbmNlb2YgYylyZXR1cm4gZTtpZighKHRoaXMgaW5zdGFuY2VvZiBjKSlyZXR1cm4gbmV3IGMoZSxsKTt2YXIgdT1mdW5jdGlvbihlKXt2YXIgYT17cjowLGc6MCxiOjB9LGk9MSxsPW51bGwsYz1udWxsLHU9bnVsbCxoPSExLGY9ITE7InN0cmluZyI9PXR5cGVvZiBlJiYoZT1mdW5jdGlvbih0KXt0PXQucmVwbGFjZShyLCIiKS5yZXBsYWNlKG4sIiIpLnRvTG93ZXJDYXNlKCk7dmFyIGUsYT0hMTtpZihTW3RdKXQ9U1t0XSxhPSEwO2Vsc2UgaWYoInRyYW5zcGFyZW50Ij09dClyZXR1cm57cjowLGc6MCxiOjAsYTowLGZvcm1hdDoibmFtZSJ9O2lmKGU9ai5yZ2IuZXhlYyh0KSlyZXR1cm57cjplWzFdLGc6ZVsyXSxiOmVbM119O2lmKGU9ai5yZ2JhLmV4ZWModCkpcmV0dXJue3I6ZVsxXSxnOmVbMl0sYjplWzNdLGE6ZVs0XX07aWYoZT1qLmhzbC5leGVjKHQpKXJldHVybntoOmVbMV0sczplWzJdLGw6ZVszXX07aWYoZT1qLmhzbGEuZXhlYyh0KSlyZXR1cm57aDplWzFdLHM6ZVsyXSxsOmVbM10sYTplWzRdfTtpZihlPWouaHN2LmV4ZWModCkpcmV0dXJue2g6ZVsxXSxzOmVbMl0sdjplWzNdfTtpZihlPWouaHN2YS5leGVjKHQpKXJldHVybntoOmVbMV0sczplWzJdLHY6ZVszXSxhOmVbNF19O2lmKGU9ai5oZXg4LmV4ZWModCkpcmV0dXJue3I6TyhlWzFdKSxnOk8oZVsyXSksYjpPKGVbM10pLGE6UihlWzRdKSxmb3JtYXQ6YT8ibmFtZSI6ImhleDgifTtpZihlPWouaGV4Ni5leGVjKHQpKXJldHVybntyOk8oZVsxXSksZzpPKGVbMl0pLGI6TyhlWzNdKSxmb3JtYXQ6YT8ibmFtZSI6ImhleCJ9O2lmKGU9ai5oZXg0LmV4ZWModCkpcmV0dXJue3I6TyhlWzFdKyIiK2VbMV0pLGc6TyhlWzJdKyIiK2VbMl0pLGI6TyhlWzNdKyIiK2VbM10pLGE6UihlWzRdKyIiK2VbNF0pLGZvcm1hdDphPyJuYW1lIjoiaGV4OCJ9O2lmKGU9ai5oZXgzLmV4ZWModCkpcmV0dXJue3I6TyhlWzFdKyIiK2VbMV0pLGc6TyhlWzJdKyIiK2VbMl0pLGI6TyhlWzNdKyIiK2VbM10pLGZvcm1hdDphPyJuYW1lIjoiaGV4In07cmV0dXJuITF9KGUpKTsib2JqZWN0Ij09dHlwZW9mIGUmJihWKGUucikmJlYoZS5nKSYmVihlLmIpPyhwPWUucixkPWUuZyxnPWUuYixhPXtyOjI1NSpDKHAsMjU1KSxnOjI1NSpDKGQsMjU1KSxiOjI1NSpDKGcsMjU1KX0saD0hMCxmPSIlIj09PVN0cmluZyhlLnIpLnN1YnN0cigtMSk/InByZ2IiOiJyZ2IiKTpWKGUuaCkmJlYoZS5zKSYmVihlLnYpPyhsPUkoZS5zKSxjPUkoZS52KSxhPWZ1bmN0aW9uKGUscixuKXtlPTYqQyhlLDM2MCkscj1DKHIsMTAwKSxuPUMobiwxMDApO3ZhciBhPXQuZmxvb3IoZSksaT1lLWEsbz1uKigxLXIpLHM9biooMS1pKnIpLGw9biooMS0oMS1pKSpyKSxjPWElNjtyZXR1cm57cjoyNTUqW24scyxvLG8sbCxuXVtjXSxnOjI1NSpbbCxuLG4scyxvLG9dW2NdLGI6MjU1KltvLG8sbCxuLG4sc11bY119fShlLmgsbCxjKSxoPSEwLGY9ImhzdiIpOlYoZS5oKSYmVihlLnMpJiZWKGUubCkmJihsPUkoZS5zKSx1PUkoZS5sKSxhPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixhLGk7ZnVuY3Rpb24gbyh0LGUscil7cmV0dXJuIHI8MCYmKHIrPTEpLHI+MSYmKHItPTEpLHI8MS82P3QrNiooZS10KSpyOnI8LjU/ZTpyPDIvMz90KyhlLXQpKigyLzMtcikqNjp0fWlmKHQ9Qyh0LDM2MCksZT1DKGUsMTAwKSxyPUMociwxMDApLDA9PT1lKW49YT1pPXI7ZWxzZXt2YXIgcz1yPC41P3IqKDErZSk6citlLXIqZSxsPTIqci1zO249byhsLHMsdCsxLzMpLGE9byhsLHMsdCksaT1vKGwscyx0LTEvMyl9cmV0dXJue3I6MjU1Km4sZzoyNTUqYSxiOjI1NSppfX0oZS5oLGwsdSksaD0hMCxmPSJoc2wiKSxlLmhhc093blByb3BlcnR5KCJhIikmJihpPWUuYSkpO3ZhciBwLGQsZztyZXR1cm4gaT1MKGkpLHtvazpoLGZvcm1hdDplLmZvcm1hdHx8ZixyOm8oMjU1LHMoYS5yLDApKSxnOm8oMjU1LHMoYS5nLDApKSxiOm8oMjU1LHMoYS5iLDApKSxhOml9fShlKTt0aGlzLl9vcmlnaW5hbElucHV0PWUsdGhpcy5fcj11LnIsdGhpcy5fZz11LmcsdGhpcy5fYj11LmIsdGhpcy5fYT11LmEsdGhpcy5fcm91bmRBPWkoMTAwKnRoaXMuX2EpLzEwMCx0aGlzLl9mb3JtYXQ9bC5mb3JtYXR8fHUuZm9ybWF0LHRoaXMuX2dyYWRpZW50VHlwZT1sLmdyYWRpZW50VHlwZSx0aGlzLl9yPDEmJih0aGlzLl9yPWkodGhpcy5fcikpLHRoaXMuX2c8MSYmKHRoaXMuX2c9aSh0aGlzLl9nKSksdGhpcy5fYjwxJiYodGhpcy5fYj1pKHRoaXMuX2IpKSx0aGlzLl9vaz11Lm9rLHRoaXMuX3RjX2lkPWErK31mdW5jdGlvbiB1KHQsZSxyKXt0PUModCwyNTUpLGU9QyhlLDI1NSkscj1DKHIsMjU1KTt2YXIgbixhLGk9cyh0LGUsciksbD1vKHQsZSxyKSxjPShpK2wpLzI7aWYoaT09bCluPWE9MDtlbHNle3ZhciB1PWktbDtzd2l0Y2goYT1jPi41P3UvKDItaS1sKTp1LyhpK2wpLGkpe2Nhc2UgdDpuPShlLXIpL3UrKGU8cj82OjApO2JyZWFrO2Nhc2UgZTpuPShyLXQpL3UrMjticmVhaztjYXNlIHI6bj0odC1lKS91KzR9bi89Nn1yZXR1cm57aDpuLHM6YSxsOmN9fWZ1bmN0aW9uIGgodCxlLHIpe3Q9Qyh0LDI1NSksZT1DKGUsMjU1KSxyPUMociwyNTUpO3ZhciBuLGEsaT1zKHQsZSxyKSxsPW8odCxlLHIpLGM9aSx1PWktbDtpZihhPTA9PT1pPzA6dS9pLGk9PWwpbj0wO2Vsc2V7c3dpdGNoKGkpe2Nhc2UgdDpuPShlLXIpL3UrKGU8cj82OjApO2JyZWFrO2Nhc2UgZTpuPShyLXQpL3UrMjticmVhaztjYXNlIHI6bj0odC1lKS91KzR9bi89Nn1yZXR1cm57aDpuLHM6YSx2OmN9fWZ1bmN0aW9uIGYodCxlLHIsbil7dmFyIGE9W3ooaSh0KS50b1N0cmluZygxNikpLHooaShlKS50b1N0cmluZygxNikpLHooaShyKS50b1N0cmluZygxNikpXTtyZXR1cm4gbiYmYVswXS5jaGFyQXQoMCk9PWFbMF0uY2hhckF0KDEpJiZhWzFdLmNoYXJBdCgwKT09YVsxXS5jaGFyQXQoMSkmJmFbMl0uY2hhckF0KDApPT1hWzJdLmNoYXJBdCgxKT9hWzBdLmNoYXJBdCgwKSthWzFdLmNoYXJBdCgwKSthWzJdLmNoYXJBdCgwKTphLmpvaW4oIiIpfWZ1bmN0aW9uIHAodCxlLHIsbil7cmV0dXJuW3ooRChuKSkseihpKHQpLnRvU3RyaW5nKDE2KSkseihpKGUpLnRvU3RyaW5nKDE2KSkseihpKHIpLnRvU3RyaW5nKDE2KSldLmpvaW4oIiIpfWZ1bmN0aW9uIGQodCxlKXtlPTA9PT1lPzA6ZXx8MTA7dmFyIHI9Yyh0KS50b0hzbCgpO3JldHVybiByLnMtPWUvMTAwLHIucz1QKHIucyksYyhyKX1mdW5jdGlvbiBnKHQsZSl7ZT0wPT09ZT8wOmV8fDEwO3ZhciByPWModCkudG9Ic2woKTtyZXR1cm4gci5zKz1lLzEwMCxyLnM9UChyLnMpLGMocil9ZnVuY3Rpb24gdih0KXtyZXR1cm4gYyh0KS5kZXNhdHVyYXRlKDEwMCl9ZnVuY3Rpb24gbSh0LGUpe2U9MD09PWU/MDplfHwxMDt2YXIgcj1jKHQpLnRvSHNsKCk7cmV0dXJuIHIubCs9ZS8xMDAsci5sPVAoci5sKSxjKHIpfWZ1bmN0aW9uIHkodCxlKXtlPTA9PT1lPzA6ZXx8MTA7dmFyIHI9Yyh0KS50b1JnYigpO3JldHVybiByLnI9cygwLG8oMjU1LHIuci1pKC1lLzEwMCoyNTUpKSksci5nPXMoMCxvKDI1NSxyLmctaSgtZS8xMDAqMjU1KSkpLHIuYj1zKDAsbygyNTUsci5iLWkoLWUvMTAwKjI1NSkpKSxjKHIpfWZ1bmN0aW9uIHgodCxlKXtlPTA9PT1lPzA6ZXx8MTA7dmFyIHI9Yyh0KS50b0hzbCgpO3JldHVybiByLmwtPWUvMTAwLHIubD1QKHIubCksYyhyKX1mdW5jdGlvbiBiKHQsZSl7dmFyIHI9Yyh0KS50b0hzbCgpLG49KHIuaCtlKSUzNjA7cmV0dXJuIHIuaD1uPDA/MzYwK246bixjKHIpfWZ1bmN0aW9uIF8odCl7dmFyIGU9Yyh0KS50b0hzbCgpO3JldHVybiBlLmg9KGUuaCsxODApJTM2MCxjKGUpfWZ1bmN0aW9uIHcodCl7dmFyIGU9Yyh0KS50b0hzbCgpLHI9ZS5oO3JldHVybltjKHQpLGMoe2g6KHIrMTIwKSUzNjAsczplLnMsbDplLmx9KSxjKHtoOihyKzI0MCklMzYwLHM6ZS5zLGw6ZS5sfSldfWZ1bmN0aW9uIGsodCl7dmFyIGU9Yyh0KS50b0hzbCgpLHI9ZS5oO3JldHVybltjKHQpLGMoe2g6KHIrOTApJTM2MCxzOmUucyxsOmUubH0pLGMoe2g6KHIrMTgwKSUzNjAsczplLnMsbDplLmx9KSxjKHtoOihyKzI3MCklMzYwLHM6ZS5zLGw6ZS5sfSldfWZ1bmN0aW9uIFQodCl7dmFyIGU9Yyh0KS50b0hzbCgpLHI9ZS5oO3JldHVybltjKHQpLGMoe2g6KHIrNzIpJTM2MCxzOmUucyxsOmUubH0pLGMoe2g6KHIrMjE2KSUzNjAsczplLnMsbDplLmx9KV19ZnVuY3Rpb24gTSh0LGUscil7ZT1lfHw2LHI9cnx8MzA7dmFyIG49Yyh0KS50b0hzbCgpLGE9MzYwL3IsaT1bYyh0KV07Zm9yKG4uaD0obi5oLShhKmU+PjEpKzcyMCklMzYwOy0tZTspbi5oPShuLmgrYSklMzYwLGkucHVzaChjKG4pKTtyZXR1cm4gaX1mdW5jdGlvbiBBKHQsZSl7ZT1lfHw2O2Zvcih2YXIgcj1jKHQpLnRvSHN2KCksbj1yLmgsYT1yLnMsaT1yLnYsbz1bXSxzPTEvZTtlLS07KW8ucHVzaChjKHtoOm4sczphLHY6aX0pKSxpPShpK3MpJTE7cmV0dXJuIG99Yy5wcm90b3R5cGU9e2lzRGFyazpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldEJyaWdodG5lc3MoKTwxMjh9LGlzTGlnaHQ6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5pc0RhcmsoKX0saXNWYWxpZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9va30sZ2V0T3JpZ2luYWxJbnB1dDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vcmlnaW5hbElucHV0fSxnZXRGb3JtYXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZm9ybWF0fSxnZXRBbHBoYTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hfSxnZXRCcmlnaHRuZXNzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50b1JnYigpO3JldHVybigyOTkqdC5yKzU4Nyp0LmcrMTE0KnQuYikvMWUzfSxnZXRMdW1pbmFuY2U6ZnVuY3Rpb24oKXt2YXIgZSxyLG4sYT10aGlzLnRvUmdiKCk7cmV0dXJuIGU9YS5yLzI1NSxyPWEuZy8yNTUsbj1hLmIvMjU1LC4yMTI2KihlPD0uMDM5Mjg/ZS8xMi45Mjp0LnBvdygoZSsuMDU1KS8xLjA1NSwyLjQpKSsuNzE1Mioocjw9LjAzOTI4P3IvMTIuOTI6dC5wb3coKHIrLjA1NSkvMS4wNTUsMi40KSkrLjA3MjIqKG48PS4wMzkyOD9uLzEyLjkyOnQucG93KChuKy4wNTUpLzEuMDU1LDIuNCkpfSxzZXRBbHBoYTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fYT1MKHQpLHRoaXMuX3JvdW5kQT1pKDEwMCp0aGlzLl9hKS8xMDAsdGhpc30sdG9Ic3Y6ZnVuY3Rpb24oKXt2YXIgdD1oKHRoaXMuX3IsdGhpcy5fZyx0aGlzLl9iKTtyZXR1cm57aDozNjAqdC5oLHM6dC5zLHY6dC52LGE6dGhpcy5fYX19LHRvSHN2U3RyaW5nOmZ1bmN0aW9uKCl7dmFyIHQ9aCh0aGlzLl9yLHRoaXMuX2csdGhpcy5fYiksZT1pKDM2MCp0LmgpLHI9aSgxMDAqdC5zKSxuPWkoMTAwKnQudik7cmV0dXJuIDE9PXRoaXMuX2E/ImhzdigiK2UrIiwgIityKyIlLCAiK24rIiUpIjoiaHN2YSgiK2UrIiwgIityKyIlLCAiK24rIiUsICIrdGhpcy5fcm91bmRBKyIpIn0sdG9Ic2w6ZnVuY3Rpb24oKXt2YXIgdD11KHRoaXMuX3IsdGhpcy5fZyx0aGlzLl9iKTtyZXR1cm57aDozNjAqdC5oLHM6dC5zLGw6dC5sLGE6dGhpcy5fYX19LHRvSHNsU3RyaW5nOmZ1bmN0aW9uKCl7dmFyIHQ9dSh0aGlzLl9yLHRoaXMuX2csdGhpcy5fYiksZT1pKDM2MCp0LmgpLHI9aSgxMDAqdC5zKSxuPWkoMTAwKnQubCk7cmV0dXJuIDE9PXRoaXMuX2E/ImhzbCgiK2UrIiwgIityKyIlLCAiK24rIiUpIjoiaHNsYSgiK2UrIiwgIityKyIlLCAiK24rIiUsICIrdGhpcy5fcm91bmRBKyIpIn0sdG9IZXg6ZnVuY3Rpb24odCl7cmV0dXJuIGYodGhpcy5fcix0aGlzLl9nLHRoaXMuX2IsdCl9LHRvSGV4U3RyaW5nOmZ1bmN0aW9uKHQpe3JldHVybiIjIit0aGlzLnRvSGV4KHQpfSx0b0hleDg6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHQsZSxyLG4sYSl7dmFyIG89W3ooaSh0KS50b1N0cmluZygxNikpLHooaShlKS50b1N0cmluZygxNikpLHooaShyKS50b1N0cmluZygxNikpLHooRChuKSldO2lmKGEmJm9bMF0uY2hhckF0KDApPT1vWzBdLmNoYXJBdCgxKSYmb1sxXS5jaGFyQXQoMCk9PW9bMV0uY2hhckF0KDEpJiZvWzJdLmNoYXJBdCgwKT09b1syXS5jaGFyQXQoMSkmJm9bM10uY2hhckF0KDApPT1vWzNdLmNoYXJBdCgxKSlyZXR1cm4gb1swXS5jaGFyQXQoMCkrb1sxXS5jaGFyQXQoMCkrb1syXS5jaGFyQXQoMCkrb1szXS5jaGFyQXQoMCk7cmV0dXJuIG8uam9pbigiIil9KHRoaXMuX3IsdGhpcy5fZyx0aGlzLl9iLHRoaXMuX2EsdCl9LHRvSGV4OFN0cmluZzpmdW5jdGlvbih0KXtyZXR1cm4iIyIrdGhpcy50b0hleDgodCl9LHRvUmdiOmZ1bmN0aW9uKCl7cmV0dXJue3I6aSh0aGlzLl9yKSxnOmkodGhpcy5fZyksYjppKHRoaXMuX2IpLGE6dGhpcy5fYX19LHRvUmdiU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIDE9PXRoaXMuX2E/InJnYigiK2kodGhpcy5fcikrIiwgIitpKHRoaXMuX2cpKyIsICIraSh0aGlzLl9iKSsiKSI6InJnYmEoIitpKHRoaXMuX3IpKyIsICIraSh0aGlzLl9nKSsiLCAiK2kodGhpcy5fYikrIiwgIit0aGlzLl9yb3VuZEErIikifSx0b1BlcmNlbnRhZ2VSZ2I6ZnVuY3Rpb24oKXtyZXR1cm57cjppKDEwMCpDKHRoaXMuX3IsMjU1KSkrIiUiLGc6aSgxMDAqQyh0aGlzLl9nLDI1NSkpKyIlIixiOmkoMTAwKkModGhpcy5fYiwyNTUpKSsiJSIsYTp0aGlzLl9hfX0sdG9QZXJjZW50YWdlUmdiU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIDE9PXRoaXMuX2E/InJnYigiK2koMTAwKkModGhpcy5fciwyNTUpKSsiJSwgIitpKDEwMCpDKHRoaXMuX2csMjU1KSkrIiUsICIraSgxMDAqQyh0aGlzLl9iLDI1NSkpKyIlKSI6InJnYmEoIitpKDEwMCpDKHRoaXMuX3IsMjU1KSkrIiUsICIraSgxMDAqQyh0aGlzLl9nLDI1NSkpKyIlLCAiK2koMTAwKkModGhpcy5fYiwyNTUpKSsiJSwgIit0aGlzLl9yb3VuZEErIikifSx0b05hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuX2E/InRyYW5zcGFyZW50IjohKHRoaXMuX2E8MSkmJihFW2YodGhpcy5fcix0aGlzLl9nLHRoaXMuX2IsITApXXx8ITEpfSx0b0ZpbHRlcjpmdW5jdGlvbih0KXt2YXIgZT0iIyIrcCh0aGlzLl9yLHRoaXMuX2csdGhpcy5fYix0aGlzLl9hKSxyPWUsbj10aGlzLl9ncmFkaWVudFR5cGU/IkdyYWRpZW50VHlwZSA9IDEsICI6IiI7aWYodCl7dmFyIGE9Yyh0KTtyPSIjIitwKGEuX3IsYS5fZyxhLl9iLGEuX2EpfXJldHVybiJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIituKyJzdGFydENvbG9yc3RyPSIrZSsiLGVuZENvbG9yc3RyPSIrcisiKSJ9LHRvU3RyaW5nOmZ1bmN0aW9uKHQpe3ZhciBlPSEhdDt0PXR8fHRoaXMuX2Zvcm1hdDt2YXIgcj0hMSxuPXRoaXMuX2E8MSYmdGhpcy5fYT49MDtyZXR1cm4gZXx8IW58fCJoZXgiIT09dCYmImhleDYiIT09dCYmImhleDMiIT09dCYmImhleDQiIT09dCYmImhleDgiIT09dCYmIm5hbWUiIT09dD8oInJnYiI9PT10JiYocj10aGlzLnRvUmdiU3RyaW5nKCkpLCJwcmdiIj09PXQmJihyPXRoaXMudG9QZXJjZW50YWdlUmdiU3RyaW5nKCkpLCJoZXgiIT09dCYmImhleDYiIT09dHx8KHI9dGhpcy50b0hleFN0cmluZygpKSwiaGV4MyI9PT10JiYocj10aGlzLnRvSGV4U3RyaW5nKCEwKSksImhleDQiPT09dCYmKHI9dGhpcy50b0hleDhTdHJpbmcoITApKSwiaGV4OCI9PT10JiYocj10aGlzLnRvSGV4OFN0cmluZygpKSwibmFtZSI9PT10JiYocj10aGlzLnRvTmFtZSgpKSwiaHNsIj09PXQmJihyPXRoaXMudG9Ic2xTdHJpbmcoKSksImhzdiI9PT10JiYocj10aGlzLnRvSHN2U3RyaW5nKCkpLHJ8fHRoaXMudG9IZXhTdHJpbmcoKSk6Im5hbWUiPT09dCYmMD09PXRoaXMuX2E/dGhpcy50b05hbWUoKTp0aGlzLnRvUmdiU3RyaW5nKCl9LGNsb25lOmZ1bmN0aW9uKCl7cmV0dXJuIGModGhpcy50b1N0cmluZygpKX0sX2FwcGx5TW9kaWZpY2F0aW9uOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5hcHBseShudWxsLFt0aGlzXS5jb25jYXQoW10uc2xpY2UuY2FsbChlKSkpO3JldHVybiB0aGlzLl9yPXIuX3IsdGhpcy5fZz1yLl9nLHRoaXMuX2I9ci5fYix0aGlzLnNldEFscGhhKHIuX2EpLHRoaXN9LGxpZ2h0ZW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXBwbHlNb2RpZmljYXRpb24obSxhcmd1bWVudHMpfSxicmlnaHRlbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbih5LGFyZ3VtZW50cyl9LGRhcmtlbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbih4LGFyZ3VtZW50cyl9LGRlc2F0dXJhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXBwbHlNb2RpZmljYXRpb24oZCxhcmd1bWVudHMpfSxzYXR1cmF0ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihnLGFyZ3VtZW50cyl9LGdyZXlzY2FsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbih2LGFyZ3VtZW50cyl9LHNwaW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXBwbHlNb2RpZmljYXRpb24oYixhcmd1bWVudHMpfSxfYXBwbHlDb21iaW5hdGlvbjpmdW5jdGlvbih0LGUpe3JldHVybiB0LmFwcGx5KG51bGwsW3RoaXNdLmNvbmNhdChbXS5zbGljZS5jYWxsKGUpKSl9LGFuYWxvZ291czpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseUNvbWJpbmF0aW9uKE0sYXJndW1lbnRzKX0sY29tcGxlbWVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseUNvbWJpbmF0aW9uKF8sYXJndW1lbnRzKX0sbW9ub2Nocm9tYXRpYzpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseUNvbWJpbmF0aW9uKEEsYXJndW1lbnRzKX0sc3BsaXRjb21wbGVtZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FwcGx5Q29tYmluYXRpb24oVCxhcmd1bWVudHMpfSx0cmlhZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseUNvbWJpbmF0aW9uKHcsYXJndW1lbnRzKX0sdGV0cmFkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FwcGx5Q29tYmluYXRpb24oayxhcmd1bWVudHMpfX0sYy5mcm9tUmF0aW89ZnVuY3Rpb24odCxlKXtpZigib2JqZWN0Ij09dHlwZW9mIHQpe3ZhciByPXt9O2Zvcih2YXIgbiBpbiB0KXQuaGFzT3duUHJvcGVydHkobikmJihyW25dPSJhIj09PW4/dFtuXTpJKHRbbl0pKTt0PXJ9cmV0dXJuIGModCxlKX0sYy5lcXVhbHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4hKCF0fHwhZSkmJmModCkudG9SZ2JTdHJpbmcoKT09YyhlKS50b1JnYlN0cmluZygpfSxjLnJhbmRvbT1mdW5jdGlvbigpe3JldHVybiBjLmZyb21SYXRpbyh7cjpsKCksZzpsKCksYjpsKCl9KX0sYy5taXg9ZnVuY3Rpb24odCxlLHIpe3I9MD09PXI/MDpyfHw1MDt2YXIgbj1jKHQpLnRvUmdiKCksYT1jKGUpLnRvUmdiKCksaT1yLzEwMDtyZXR1cm4gYyh7cjooYS5yLW4ucikqaStuLnIsZzooYS5nLW4uZykqaStuLmcsYjooYS5iLW4uYikqaStuLmIsYTooYS5hLW4uYSkqaStuLmF9KX0sYy5yZWFkYWJpbGl0eT1mdW5jdGlvbihlLHIpe3ZhciBuPWMoZSksYT1jKHIpO3JldHVybih0Lm1heChuLmdldEx1bWluYW5jZSgpLGEuZ2V0THVtaW5hbmNlKCkpKy4wNSkvKHQubWluKG4uZ2V0THVtaW5hbmNlKCksYS5nZXRMdW1pbmFuY2UoKSkrLjA1KX0sYy5pc1JlYWRhYmxlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixhLGk9Yy5yZWFkYWJpbGl0eSh0LGUpO3N3aXRjaChhPSExLChuPWZ1bmN0aW9uKHQpe3ZhciBlLHI7ZT0oKHQ9dHx8e2xldmVsOiJBQSIsc2l6ZToic21hbGwifSkubGV2ZWx8fCJBQSIpLnRvVXBwZXJDYXNlKCkscj0odC5zaXplfHwic21hbGwiKS50b0xvd2VyQ2FzZSgpLCJBQSIhPT1lJiYiQUFBIiE9PWUmJihlPSJBQSIpOyJzbWFsbCIhPT1yJiYibGFyZ2UiIT09ciYmKHI9InNtYWxsIik7cmV0dXJue2xldmVsOmUsc2l6ZTpyfX0ocikpLmxldmVsK24uc2l6ZSl7Y2FzZSJBQXNtYWxsIjpjYXNlIkFBQWxhcmdlIjphPWk+PTQuNTticmVhaztjYXNlIkFBbGFyZ2UiOmE9aT49MzticmVhaztjYXNlIkFBQXNtYWxsIjphPWk+PTd9cmV0dXJuIGF9LGMubW9zdFJlYWRhYmxlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixhLGksbyxzPW51bGwsbD0wO2E9KHI9cnx8e30pLmluY2x1ZGVGYWxsYmFja0NvbG9ycyxpPXIubGV2ZWwsbz1yLnNpemU7Zm9yKHZhciB1PTA7dTxlLmxlbmd0aDt1KyspKG49Yy5yZWFkYWJpbGl0eSh0LGVbdV0pKT5sJiYobD1uLHM9YyhlW3VdKSk7cmV0dXJuIGMuaXNSZWFkYWJsZSh0LHMse2xldmVsOmksc2l6ZTpvfSl8fCFhP3M6KHIuaW5jbHVkZUZhbGxiYWNrQ29sb3JzPSExLGMubW9zdFJlYWRhYmxlKHQsWyIjZmZmIiwiIzAwMCJdLHIpKX07dmFyIFM9Yy5uYW1lcz17YWxpY2VibHVlOiJmMGY4ZmYiLGFudGlxdWV3aGl0ZToiZmFlYmQ3IixhcXVhOiIwZmYiLGFxdWFtYXJpbmU6IjdmZmZkNCIsYXp1cmU6ImYwZmZmZiIsYmVpZ2U6ImY1ZjVkYyIsYmlzcXVlOiJmZmU0YzQiLGJsYWNrOiIwMDAiLGJsYW5jaGVkYWxtb25kOiJmZmViY2QiLGJsdWU6IjAwZiIsYmx1ZXZpb2xldDoiOGEyYmUyIixicm93bjoiYTUyYTJhIixidXJseXdvb2Q6ImRlYjg4NyIsYnVybnRzaWVubmE6ImVhN2U1ZCIsY2FkZXRibHVlOiI1ZjllYTAiLGNoYXJ0cmV1c2U6IjdmZmYwMCIsY2hvY29sYXRlOiJkMjY5MWUiLGNvcmFsOiJmZjdmNTAiLGNvcm5mbG93ZXJibHVlOiI2NDk1ZWQiLGNvcm5zaWxrOiJmZmY4ZGMiLGNyaW1zb246ImRjMTQzYyIsY3lhbjoiMGZmIixkYXJrYmx1ZToiMDAwMDhiIixkYXJrY3lhbjoiMDA4YjhiIixkYXJrZ29sZGVucm9kOiJiODg2MGIiLGRhcmtncmF5OiJhOWE5YTkiLGRhcmtncmVlbjoiMDA2NDAwIixkYXJrZ3JleToiYTlhOWE5IixkYXJra2hha2k6ImJkYjc2YiIsZGFya21hZ2VudGE6IjhiMDA4YiIsZGFya29saXZlZ3JlZW46IjU1NmIyZiIsZGFya29yYW5nZToiZmY4YzAwIixkYXJrb3JjaGlkOiI5OTMyY2MiLGRhcmtyZWQ6IjhiMDAwMCIsZGFya3NhbG1vbjoiZTk5NjdhIixkYXJrc2VhZ3JlZW46IjhmYmM4ZiIsZGFya3NsYXRlYmx1ZToiNDgzZDhiIixkYXJrc2xhdGVncmF5OiIyZjRmNGYiLGRhcmtzbGF0ZWdyZXk6IjJmNGY0ZiIsZGFya3R1cnF1b2lzZToiMDBjZWQxIixkYXJrdmlvbGV0OiI5NDAwZDMiLGRlZXBwaW5rOiJmZjE0OTMiLGRlZXBza3libHVlOiIwMGJmZmYiLGRpbWdyYXk6IjY5Njk2OSIsZGltZ3JleToiNjk2OTY5Iixkb2RnZXJibHVlOiIxZTkwZmYiLGZpcmVicmljazoiYjIyMjIyIixmbG9yYWx3aGl0ZToiZmZmYWYwIixmb3Jlc3RncmVlbjoiMjI4YjIyIixmdWNoc2lhOiJmMGYiLGdhaW5zYm9ybzoiZGNkY2RjIixnaG9zdHdoaXRlOiJmOGY4ZmYiLGdvbGQ6ImZmZDcwMCIsZ29sZGVucm9kOiJkYWE1MjAiLGdyYXk6IjgwODA4MCIsZ3JlZW46IjAwODAwMCIsZ3JlZW55ZWxsb3c6ImFkZmYyZiIsZ3JleToiODA4MDgwIixob25leWRldzoiZjBmZmYwIixob3RwaW5rOiJmZjY5YjQiLGluZGlhbnJlZDoiY2Q1YzVjIixpbmRpZ286IjRiMDA4MiIsaXZvcnk6ImZmZmZmMCIsa2hha2k6ImYwZTY4YyIsbGF2ZW5kZXI6ImU2ZTZmYSIsbGF2ZW5kZXJibHVzaDoiZmZmMGY1IixsYXduZ3JlZW46IjdjZmMwMCIsbGVtb25jaGlmZm9uOiJmZmZhY2QiLGxpZ2h0Ymx1ZToiYWRkOGU2IixsaWdodGNvcmFsOiJmMDgwODAiLGxpZ2h0Y3lhbjoiZTBmZmZmIixsaWdodGdvbGRlbnJvZHllbGxvdzoiZmFmYWQyIixsaWdodGdyYXk6ImQzZDNkMyIsbGlnaHRncmVlbjoiOTBlZTkwIixsaWdodGdyZXk6ImQzZDNkMyIsbGlnaHRwaW5rOiJmZmI2YzEiLGxpZ2h0c2FsbW9uOiJmZmEwN2EiLGxpZ2h0c2VhZ3JlZW46IjIwYjJhYSIsbGlnaHRza3libHVlOiI4N2NlZmEiLGxpZ2h0c2xhdGVncmF5OiI3ODkiLGxpZ2h0c2xhdGVncmV5OiI3ODkiLGxpZ2h0c3RlZWxibHVlOiJiMGM0ZGUiLGxpZ2h0eWVsbG93OiJmZmZmZTAiLGxpbWU6IjBmMCIsbGltZWdyZWVuOiIzMmNkMzIiLGxpbmVuOiJmYWYwZTYiLG1hZ2VudGE6ImYwZiIsbWFyb29uOiI4MDAwMDAiLG1lZGl1bWFxdWFtYXJpbmU6IjY2Y2RhYSIsbWVkaXVtYmx1ZToiMDAwMGNkIixtZWRpdW1vcmNoaWQ6ImJhNTVkMyIsbWVkaXVtcHVycGxlOiI5MzcwZGIiLG1lZGl1bXNlYWdyZWVuOiIzY2IzNzEiLG1lZGl1bXNsYXRlYmx1ZToiN2I2OGVlIixtZWRpdW1zcHJpbmdncmVlbjoiMDBmYTlhIixtZWRpdW10dXJxdW9pc2U6IjQ4ZDFjYyIsbWVkaXVtdmlvbGV0cmVkOiJjNzE1ODUiLG1pZG5pZ2h0Ymx1ZToiMTkxOTcwIixtaW50Y3JlYW06ImY1ZmZmYSIsbWlzdHlyb3NlOiJmZmU0ZTEiLG1vY2Nhc2luOiJmZmU0YjUiLG5hdmFqb3doaXRlOiJmZmRlYWQiLG5hdnk6IjAwMDA4MCIsb2xkbGFjZToiZmRmNWU2IixvbGl2ZToiODA4MDAwIixvbGl2ZWRyYWI6IjZiOGUyMyIsb3JhbmdlOiJmZmE1MDAiLG9yYW5nZXJlZDoiZmY0NTAwIixvcmNoaWQ6ImRhNzBkNiIscGFsZWdvbGRlbnJvZDoiZWVlOGFhIixwYWxlZ3JlZW46Ijk4ZmI5OCIscGFsZXR1cnF1b2lzZToiYWZlZWVlIixwYWxldmlvbGV0cmVkOiJkYjcwOTMiLHBhcGF5YXdoaXA6ImZmZWZkNSIscGVhY2hwdWZmOiJmZmRhYjkiLHBlcnU6ImNkODUzZiIscGluazoiZmZjMGNiIixwbHVtOiJkZGEwZGQiLHBvd2RlcmJsdWU6ImIwZTBlNiIscHVycGxlOiI4MDAwODAiLHJlYmVjY2FwdXJwbGU6IjY2MzM5OSIscmVkOiJmMDAiLHJvc3licm93bjoiYmM4ZjhmIixyb3lhbGJsdWU6IjQxNjllMSIsc2FkZGxlYnJvd246IjhiNDUxMyIsc2FsbW9uOiJmYTgwNzIiLHNhbmR5YnJvd246ImY0YTQ2MCIsc2VhZ3JlZW46IjJlOGI1NyIsc2Vhc2hlbGw6ImZmZjVlZSIsc2llbm5hOiJhMDUyMmQiLHNpbHZlcjoiYzBjMGMwIixza3libHVlOiI4N2NlZWIiLHNsYXRlYmx1ZToiNmE1YWNkIixzbGF0ZWdyYXk6IjcwODA5MCIsc2xhdGVncmV5OiI3MDgwOTAiLHNub3c6ImZmZmFmYSIsc3ByaW5nZ3JlZW46IjAwZmY3ZiIsc3RlZWxibHVlOiI0NjgyYjQiLHRhbjoiZDJiNDhjIix0ZWFsOiIwMDgwODAiLHRoaXN0bGU6ImQ4YmZkOCIsdG9tYXRvOiJmZjYzNDciLHR1cnF1b2lzZToiNDBlMGQwIix2aW9sZXQ6ImVlODJlZSIsd2hlYXQ6ImY1ZGViMyIsd2hpdGU6ImZmZiIsd2hpdGVzbW9rZToiZjVmNWY1Iix5ZWxsb3c6ImZmMCIseWVsbG93Z3JlZW46IjlhY2QzMiJ9LEU9Yy5oZXhOYW1lcz1mdW5jdGlvbih0KXt2YXIgZT17fTtmb3IodmFyIHIgaW4gdCl0Lmhhc093blByb3BlcnR5KHIpJiYoZVt0W3JdXT1yKTtyZXR1cm4gZX0oUyk7ZnVuY3Rpb24gTCh0KXtyZXR1cm4gdD1wYXJzZUZsb2F0KHQpLChpc05hTih0KXx8dDwwfHx0PjEpJiYodD0xKSx0fWZ1bmN0aW9uIEMoZSxyKXsoZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0JiYtMSE9dC5pbmRleE9mKCIuIikmJjE9PT1wYXJzZUZsb2F0KHQpfSkoZSkmJihlPSIxMDAlIik7dmFyIG49ZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0JiYtMSE9dC5pbmRleE9mKCIlIil9KGUpO3JldHVybiBlPW8ocixzKDAscGFyc2VGbG9hdChlKSkpLG4mJihlPXBhcnNlSW50KGUqciwxMCkvMTAwKSx0LmFicyhlLXIpPDFlLTY/MTplJXIvcGFyc2VGbG9hdChyKX1mdW5jdGlvbiBQKHQpe3JldHVybiBvKDEscygwLHQpKX1mdW5jdGlvbiBPKHQpe3JldHVybiBwYXJzZUludCh0LDE2KX1mdW5jdGlvbiB6KHQpe3JldHVybiAxPT10Lmxlbmd0aD8iMCIrdDoiIit0fWZ1bmN0aW9uIEkodCl7cmV0dXJuIHQ8PTEmJih0PTEwMCp0KyIlIiksdH1mdW5jdGlvbiBEKGUpe3JldHVybiB0LnJvdW5kKDI1NSpwYXJzZUZsb2F0KGUpKS50b1N0cmluZygxNil9ZnVuY3Rpb24gUih0KXtyZXR1cm4gTyh0KS8yNTV9dmFyIEYsQixOLGo9KEI9IltcXHN8XFwoXSsoIisoRj0iKD86Wy1cXCtdP1xcZCpcXC5cXGQrJT8pfCg/OlstXFwrXT9cXGQrJT8pIikrIilbLHxcXHNdKygiK0YrIilbLHxcXHNdKygiK0YrIilcXHMqXFwpPyIsTj0iW1xcc3xcXChdKygiK0YrIilbLHxcXHNdKygiK0YrIilbLHxcXHNdKygiK0YrIilbLHxcXHNdKygiK0YrIilcXHMqXFwpPyIse0NTU19VTklUOm5ldyBSZWdFeHAoRikscmdiOm5ldyBSZWdFeHAoInJnYiIrQikscmdiYTpuZXcgUmVnRXhwKCJyZ2JhIitOKSxoc2w6bmV3IFJlZ0V4cCgiaHNsIitCKSxoc2xhOm5ldyBSZWdFeHAoImhzbGEiK04pLGhzdjpuZXcgUmVnRXhwKCJoc3YiK0IpLGhzdmE6bmV3IFJlZ0V4cCgiaHN2YSIrTiksaGV4MzovXiM/KFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pJC8saGV4NjovXiM/KFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pJC8saGV4NDovXiM/KFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KSQvLGhleDg6L14jPyhbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkkL30pO2Z1bmN0aW9uIFYodCl7cmV0dXJuISFqLkNTU19VTklULmV4ZWModCl9InVuZGVmaW5lZCIhPXR5cGVvZiBlJiZlLmV4cG9ydHM/ZS5leHBvcnRzPWM6d2luZG93LnRpbnljb2xvcj1jfShNYXRoKX0se31dLDUzNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9YSxlLmV4cG9ydHMuZmxvYXQzMj1lLmV4cG9ydHMuZmxvYXQ9YSxlLmV4cG9ydHMuZnJhY3QzMj1lLmV4cG9ydHMuZnJhY3Q9ZnVuY3Rpb24odCl7aWYodC5sZW5ndGgpe2Zvcih2YXIgZT1hKHQpLHI9MCxuPWUubGVuZ3RoO3I8bjtyKyspZVtyXT10W3JdLWVbcl07cmV0dXJuIGV9cmV0dXJuIGEodC1hKHQpKX07dmFyIG49bmV3IEZsb2F0MzJBcnJheSgxKTtmdW5jdGlvbiBhKHQpe2lmKHQubGVuZ3RoKXtpZih0IGluc3RhbmNlb2YgRmxvYXQzMkFycmF5KXJldHVybiB0O3ZhciBlPW5ldyBGbG9hdDMyQXJyYXkodCk7cmV0dXJuIGUuc2V0KHQpLGV9cmV0dXJuIG5bMF09dCxuWzBdfX0se31dLDUzODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJwYXJzZS11bml0Iik7ZS5leHBvcnRzPW87dmFyIGE9OTY7ZnVuY3Rpb24gaSh0LGUpe3ZhciByPW4oZ2V0Q29tcHV0ZWRTdHlsZSh0KS5nZXRQcm9wZXJ0eVZhbHVlKGUpKTtyZXR1cm4gclswXSpvKHJbMV0sdCl9ZnVuY3Rpb24gbyh0LGUpe3N3aXRjaChlPWV8fGRvY3VtZW50LmJvZHksdD0odHx8InB4IikudHJpbSgpLnRvTG93ZXJDYXNlKCksZSE9PXdpbmRvdyYmZSE9PWRvY3VtZW50fHwoZT1kb2N1bWVudC5ib2R5KSx0KXtjYXNlIiUiOnJldHVybiBlLmNsaWVudEhlaWdodC8xMDA7Y2FzZSJjaCI6Y2FzZSJleCI6cmV0dXJuIGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ci5zdHlsZVsiZm9udC1zaXplIl09IjEyOCIrdCxlLmFwcGVuZENoaWxkKHIpO3ZhciBuPWkociwiZm9udC1zaXplIikvMTI4O3JldHVybiBlLnJlbW92ZUNoaWxkKHIpLG59KHQsZSk7Y2FzZSJlbSI6cmV0dXJuIGkoZSwiZm9udC1zaXplIik7Y2FzZSJyZW0iOnJldHVybiBpKGRvY3VtZW50LmJvZHksImZvbnQtc2l6ZSIpO2Nhc2UidnciOnJldHVybiB3aW5kb3cuaW5uZXJXaWR0aC8xMDA7Y2FzZSJ2aCI6cmV0dXJuIHdpbmRvdy5pbm5lckhlaWdodC8xMDA7Y2FzZSJ2bWluIjpyZXR1cm4gTWF0aC5taW4od2luZG93LmlubmVyV2lkdGgsd2luZG93LmlubmVySGVpZ2h0KS8xMDA7Y2FzZSJ2bWF4IjpyZXR1cm4gTWF0aC5tYXgod2luZG93LmlubmVyV2lkdGgsd2luZG93LmlubmVySGVpZ2h0KS8xMDA7Y2FzZSJpbiI6cmV0dXJuIGE7Y2FzZSJjbSI6cmV0dXJuIGEvMi41NDtjYXNlIm1tIjpyZXR1cm4gYS8yNS40O2Nhc2UicHQiOnJldHVybiBhLzcyO2Nhc2UicGMiOnJldHVybiBhLzZ9cmV0dXJuIDF9fSx7InBhcnNlLXVuaXQiOjQ2M31dLDUzOTpbZnVuY3Rpb24odCxlLHIpe3ZhciBuO249dGhpcyxmdW5jdGlvbih0KXsidXNlIHN0cmljdCI7dmFyIGU9ZnVuY3Rpb24odCl7cmV0dXJuIHR9LHI9ZnVuY3Rpb24odCl7aWYobnVsbD09KHI9dC50cmFuc2Zvcm0pKXJldHVybiBlO3ZhciByLG4sYSxpPXIuc2NhbGVbMF0sbz1yLnNjYWxlWzFdLHM9ci50cmFuc2xhdGVbMF0sbD1yLnRyYW5zbGF0ZVsxXTtyZXR1cm4gZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8KG49YT0wKSx0WzBdPShuKz10WzBdKSppK3MsdFsxXT0oYSs9dFsxXSkqbytsLHR9fSxuPWZ1bmN0aW9uKHQpe3ZhciBlPXQuYmJveDtmdW5jdGlvbiBuKHQpe2xbMF09dFswXSxsWzFdPXRbMV0scyhsKSxsWzBdPGMmJihjPWxbMF0pLGxbMF0+aCYmKGg9bFswXSksbFsxXTx1JiYodT1sWzFdKSxsWzFdPmYmJihmPWxbMV0pfWZ1bmN0aW9uIGEodCl7c3dpdGNoKHQudHlwZSl7Y2FzZSJHZW9tZXRyeUNvbGxlY3Rpb24iOnQuZ2VvbWV0cmllcy5mb3JFYWNoKGEpO2JyZWFrO2Nhc2UiUG9pbnQiOm4odC5jb29yZGluYXRlcyk7YnJlYWs7Y2FzZSJNdWx0aVBvaW50Ijp0LmNvb3JkaW5hdGVzLmZvckVhY2gobil9fWlmKCFlKXt2YXIgaSxvLHM9cih0KSxsPW5ldyBBcnJheSgyKSxjPTEvMCx1PWMsaD0tYyxmPS1jO2ZvcihvIGluIHQuYXJjcy5mb3JFYWNoKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0tMSxyPXQubGVuZ3RoOysrZTxyOylpPXRbZV0sbFswXT1pWzBdLGxbMV09aVsxXSxzKGwsZSksbFswXTxjJiYoYz1sWzBdKSxsWzBdPmgmJihoPWxbMF0pLGxbMV08dSYmKHU9bFsxXSksbFsxXT5mJiYoZj1sWzFdKX0pLHQub2JqZWN0cylhKHQub2JqZWN0c1tvXSk7ZT10LmJib3g9W2MsdSxoLGZdfXJldHVybiBlfSxhPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByLG49dC5sZW5ndGgsYT1uLWU7YTwtLW47KXI9dFthXSx0W2ErK109dFtuXSx0W25dPXJ9O2Z1bmN0aW9uIGkodCxlKXt2YXIgcj1lLmlkLG49ZS5iYm94LGE9bnVsbD09ZS5wcm9wZXJ0aWVzP3t9OmUucHJvcGVydGllcyxpPW8odCxlKTtyZXR1cm4gbnVsbD09ciYmbnVsbD09bj97dHlwZToiRmVhdHVyZSIscHJvcGVydGllczphLGdlb21ldHJ5Oml9Om51bGw9PW4/e3R5cGU6IkZlYXR1cmUiLGlkOnIscHJvcGVydGllczphLGdlb21ldHJ5Oml9Ont0eXBlOiJGZWF0dXJlIixpZDpyLGJib3g6bixwcm9wZXJ0aWVzOmEsZ2VvbWV0cnk6aX19ZnVuY3Rpb24gbyh0LGUpe3ZhciBuPXIodCksaT10LmFyY3M7ZnVuY3Rpb24gbyh0LGUpe2UubGVuZ3RoJiZlLnBvcCgpO2Zvcih2YXIgcj1pW3Q8MD9+dDp0XSxvPTAscz1yLmxlbmd0aDtvPHM7KytvKWUucHVzaChuKHJbb10uc2xpY2UoKSxvKSk7dDwwJiZhKGUscyl9ZnVuY3Rpb24gcyh0KXtyZXR1cm4gbih0LnNsaWNlKCkpfWZ1bmN0aW9uIGwodCl7Zm9yKHZhciBlPVtdLHI9MCxuPXQubGVuZ3RoO3I8bjsrK3Ipbyh0W3JdLGUpO3JldHVybiBlLmxlbmd0aDwyJiZlLnB1c2goZVswXS5zbGljZSgpKSxlfWZ1bmN0aW9uIGModCl7Zm9yKHZhciBlPWwodCk7ZS5sZW5ndGg8NDspZS5wdXNoKGVbMF0uc2xpY2UoKSk7cmV0dXJuIGV9ZnVuY3Rpb24gdSh0KXtyZXR1cm4gdC5tYXAoYyl9cmV0dXJuIGZ1bmN0aW9uIHQoZSl7dmFyIHIsbj1lLnR5cGU7c3dpdGNoKG4pe2Nhc2UiR2VvbWV0cnlDb2xsZWN0aW9uIjpyZXR1cm57dHlwZTpuLGdlb21ldHJpZXM6ZS5nZW9tZXRyaWVzLm1hcCh0KX07Y2FzZSJQb2ludCI6cj1zKGUuY29vcmRpbmF0ZXMpO2JyZWFrO2Nhc2UiTXVsdGlQb2ludCI6cj1lLmNvb3JkaW5hdGVzLm1hcChzKTticmVhaztjYXNlIkxpbmVTdHJpbmciOnI9bChlLmFyY3MpO2JyZWFrO2Nhc2UiTXVsdGlMaW5lU3RyaW5nIjpyPWUuYXJjcy5tYXAobCk7YnJlYWs7Y2FzZSJQb2x5Z29uIjpyPXUoZS5hcmNzKTticmVhaztjYXNlIk11bHRpUG9seWdvbiI6cj1lLmFyY3MubWFwKHUpO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIG51bGx9cmV0dXJue3R5cGU6bixjb29yZGluYXRlczpyfX0oZSl9dmFyIHM9ZnVuY3Rpb24odCxlKXt2YXIgcj17fSxuPXt9LGE9e30saT1bXSxvPS0xO2Z1bmN0aW9uIHModCxlKXtmb3IodmFyIG4gaW4gdCl7dmFyIGE9dFtuXTtkZWxldGUgZVthLnN0YXJ0XSxkZWxldGUgYS5zdGFydCxkZWxldGUgYS5lbmQsYS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JbdDwwP350OnRdPTF9KSxpLnB1c2goYSl9fXJldHVybiBlLmZvckVhY2goZnVuY3Rpb24ocixuKXt2YXIgYSxpPXQuYXJjc1tyPDA/fnI6cl07aS5sZW5ndGg8MyYmIWlbMV1bMF0mJiFpWzFdWzFdJiYoYT1lWysrb10sZVtvXT1yLGVbbl09YSl9KSxlLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHIsaSxvPWZ1bmN0aW9uKGUpe3ZhciByLG49dC5hcmNzW2U8MD9+ZTplXSxhPW5bMF07dC50cmFuc2Zvcm0/KHI9WzAsMF0sbi5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JbMF0rPXRbMF0sclsxXSs9dFsxXX0pKTpyPW5bbi5sZW5ndGgtMV07cmV0dXJuIGU8MD9bcixhXTpbYSxyXX0oZSkscz1vWzBdLGw9b1sxXTtpZihyPWFbc10paWYoZGVsZXRlIGFbci5lbmRdLHIucHVzaChlKSxyLmVuZD1sLGk9bltsXSl7ZGVsZXRlIG5baS5zdGFydF07dmFyIGM9aT09PXI/cjpyLmNvbmNhdChpKTtuW2Muc3RhcnQ9ci5zdGFydF09YVtjLmVuZD1pLmVuZF09Y31lbHNlIG5bci5zdGFydF09YVtyLmVuZF09cjtlbHNlIGlmKHI9bltsXSlpZihkZWxldGUgbltyLnN0YXJ0XSxyLnVuc2hpZnQoZSksci5zdGFydD1zLGk9YVtzXSl7ZGVsZXRlIGFbaS5lbmRdO3ZhciB1PWk9PT1yP3I6aS5jb25jYXQocik7blt1LnN0YXJ0PWkuc3RhcnRdPWFbdS5lbmQ9ci5lbmRdPXV9ZWxzZSBuW3Iuc3RhcnRdPWFbci5lbmRdPXI7ZWxzZSBuWyhyPVtlXSkuc3RhcnQ9c109YVtyLmVuZD1sXT1yfSkscyhhLG4pLHMobixhKSxlLmZvckVhY2goZnVuY3Rpb24odCl7clt0PDA/fnQ6dF18fGkucHVzaChbdF0pfSksaX07ZnVuY3Rpb24gbCh0LGUscil7dmFyIG4sYSxpO2lmKGFyZ3VtZW50cy5sZW5ndGg+MSluPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixhPVtdLGk9W107ZnVuY3Rpb24gbyh0KXt2YXIgZT10PDA/fnQ6dDsoaVtlXXx8KGlbZV09W10pKS5wdXNoKHtpOnQsZzpufSl9ZnVuY3Rpb24gcyh0KXt0LmZvckVhY2gobyl9ZnVuY3Rpb24gbCh0KXt0LmZvckVhY2gocyl9cmV0dXJuIGZ1bmN0aW9uIHQoZSl7c3dpdGNoKG49ZSxlLnR5cGUpe2Nhc2UiR2VvbWV0cnlDb2xsZWN0aW9uIjplLmdlb21ldHJpZXMuZm9yRWFjaCh0KTticmVhaztjYXNlIkxpbmVTdHJpbmciOnMoZS5hcmNzKTticmVhaztjYXNlIk11bHRpTGluZVN0cmluZyI6Y2FzZSJQb2x5Z29uIjpsKGUuYXJjcyk7YnJlYWs7Y2FzZSJNdWx0aVBvbHlnb24iOmUuYXJjcy5mb3JFYWNoKGwpfX0oZSksaS5mb3JFYWNoKG51bGw9PXI/ZnVuY3Rpb24odCl7YS5wdXNoKHRbMF0uaSl9OmZ1bmN0aW9uKHQpe3IodFswXS5nLHRbdC5sZW5ndGgtMV0uZykmJmEucHVzaCh0WzBdLmkpfSksYX0oMCxlLHIpO2Vsc2UgZm9yKGE9MCxuPW5ldyBBcnJheShpPXQuYXJjcy5sZW5ndGgpO2E8aTsrK2EpblthXT1hO3JldHVybnt0eXBlOiJNdWx0aUxpbmVTdHJpbmciLGFyY3M6cyh0LG4pfX1mdW5jdGlvbiBjKHQsZSl7dmFyIHI9e30sbj1bXSxhPVtdO2Z1bmN0aW9uIGkodCl7dC5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UuZm9yRWFjaChmdW5jdGlvbihlKXsocltlPWU8MD9+ZTplXXx8KHJbZV09W10pKS5wdXNoKHQpfSl9KSxuLnB1c2godCl9ZnVuY3Rpb24gbChlKXtyZXR1cm4gZnVuY3Rpb24odCl7Zm9yKHZhciBlLHI9LTEsbj10Lmxlbmd0aCxhPXRbbi0xXSxpPTA7KytyPG47KWU9YSxhPXRbcl0saSs9ZVswXSphWzFdLWVbMV0qYVswXTtyZXR1cm4gTWF0aC5hYnMoaSl9KG8odCx7dHlwZToiUG9seWdvbiIsYXJjczpbZV19KS5jb29yZGluYXRlc1swXSl9cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbiB0KGUpe3N3aXRjaChlLnR5cGUpe2Nhc2UiR2VvbWV0cnlDb2xsZWN0aW9uIjplLmdlb21ldHJpZXMuZm9yRWFjaCh0KTticmVhaztjYXNlIlBvbHlnb24iOmkoZS5hcmNzKTticmVhaztjYXNlIk11bHRpUG9seWdvbiI6ZS5hcmNzLmZvckVhY2goaSl9fSksbi5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lmKCF0Ll8pe3ZhciBlPVtdLG49W3RdO2Zvcih0Ll89MSxhLnB1c2goZSk7dD1uLnBvcCgpOyllLnB1c2godCksdC5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuZm9yRWFjaChmdW5jdGlvbih0KXtyW3Q8MD9+dDp0XS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuX3x8KHQuXz0xLG4ucHVzaCh0KSl9KX0pfSl9fSksbi5mb3JFYWNoKGZ1bmN0aW9uKHQpe2RlbGV0ZSB0Ll99KSx7dHlwZToiTXVsdGlQb2x5Z29uIixhcmNzOmEubWFwKGZ1bmN0aW9uKGUpe3ZhciBuLGE9W107aWYoZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuZm9yRWFjaChmdW5jdGlvbih0KXt0LmZvckVhY2goZnVuY3Rpb24odCl7clt0PDA/fnQ6dF0ubGVuZ3RoPDImJmEucHVzaCh0KX0pfSl9KSwobj0oYT1zKHQsYSkpLmxlbmd0aCk+MSlmb3IodmFyIGksbyxjPTEsdT1sKGFbMF0pO2M8bjsrK2MpKGk9bChhW2NdKSk+dSYmKG89YVswXSxhWzBdPWFbY10sYVtjXT1vLHU9aSk7cmV0dXJuIGF9KX19dmFyIHU9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MCxuPXQubGVuZ3RoO3I8bjspe3ZhciBhPXIrbj4+PjE7dFthXTxlP3I9YSsxOm49YX1yZXR1cm4gcn07dC5iYm94PW4sdC5mZWF0dXJlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIkdlb21ldHJ5Q29sbGVjdGlvbiI9PT1lLnR5cGU/e3R5cGU6IkZlYXR1cmVDb2xsZWN0aW9uIixmZWF0dXJlczplLmdlb21ldHJpZXMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBpKHQsZSl9KX06aSh0LGUpfSx0Lm1lc2g9ZnVuY3Rpb24odCl7cmV0dXJuIG8odCxsLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LHQubWVzaEFyY3M9bCx0Lm1lcmdlPWZ1bmN0aW9uKHQpe3JldHVybiBvKHQsYy5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSx0Lm1lcmdlQXJjcz1jLHQubmVpZ2hib3JzPWZ1bmN0aW9uKHQpe3ZhciBlPXt9LHI9dC5tYXAoZnVuY3Rpb24oKXtyZXR1cm5bXX0pO2Z1bmN0aW9uIG4odCxyKXt0LmZvckVhY2goZnVuY3Rpb24odCl7dDwwJiYodD1+dCk7dmFyIG49ZVt0XTtuP24ucHVzaChyKTplW3RdPVtyXX0pfWZ1bmN0aW9uIGEodCxlKXt0LmZvckVhY2goZnVuY3Rpb24odCl7bih0LGUpfSl9dmFyIGk9e0xpbmVTdHJpbmc6bixNdWx0aUxpbmVTdHJpbmc6YSxQb2x5Z29uOmEsTXVsdGlQb2x5Z29uOmZ1bmN0aW9uKHQsZSl7dC5mb3JFYWNoKGZ1bmN0aW9uKHQpe2EodCxlKX0pfX07Zm9yKHZhciBvIGluIHQuZm9yRWFjaChmdW5jdGlvbiB0KGUscil7Ikdlb21ldHJ5Q29sbGVjdGlvbiI9PT1lLnR5cGU/ZS5nZW9tZXRyaWVzLmZvckVhY2goZnVuY3Rpb24oZSl7dChlLHIpfSk6ZS50eXBlIGluIGkmJmlbZS50eXBlXShlLmFyY3Mscil9KSxlKWZvcih2YXIgcz1lW29dLGw9cy5sZW5ndGgsYz0wO2M8bDsrK2MpZm9yKHZhciBoPWMrMTtoPGw7KytoKXt2YXIgZixwPXNbY10sZD1zW2hdOyhmPXJbcF0pW289dShmLGQpXSE9PWQmJmYuc3BsaWNlKG8sMCxkKSwoZj1yW2RdKVtvPXUoZixwKV0hPT1wJiZmLnNwbGljZShvLDAscCl9cmV0dXJuIHJ9LHQucXVhbnRpemU9ZnVuY3Rpb24odCxlKXtpZighKChlPU1hdGguZmxvb3IoZSkpPj0yKSl0aHJvdyBuZXcgRXJyb3IoIm4gbXVzdCBiZSBcdTIyNjUyIik7aWYodC50cmFuc2Zvcm0pdGhyb3cgbmV3IEVycm9yKCJhbHJlYWR5IHF1YW50aXplZCIpO3ZhciByLGE9bih0KSxpPWFbMF0sbz0oYVsyXS1pKS8oZS0xKXx8MSxzPWFbMV0sbD0oYVszXS1zKS8oZS0xKXx8MTtmdW5jdGlvbiBjKHQpe3RbMF09TWF0aC5yb3VuZCgodFswXS1pKS9vKSx0WzFdPU1hdGgucm91bmQoKHRbMV0tcykvbCl9ZnVuY3Rpb24gdSh0KXtzd2l0Y2godC50eXBlKXtjYXNlIkdlb21ldHJ5Q29sbGVjdGlvbiI6dC5nZW9tZXRyaWVzLmZvckVhY2godSk7YnJlYWs7Y2FzZSJQb2ludCI6Yyh0LmNvb3JkaW5hdGVzKTticmVhaztjYXNlIk11bHRpUG9pbnQiOnQuY29vcmRpbmF0ZXMuZm9yRWFjaChjKX19Zm9yKHIgaW4gdC5hcmNzLmZvckVhY2goZnVuY3Rpb24odCl7Zm9yKHZhciBlLHIsbixhPTEsYz0xLHU9dC5sZW5ndGgsaD10WzBdLGY9aFswXT1NYXRoLnJvdW5kKChoWzBdLWkpL28pLHA9aFsxXT1NYXRoLnJvdW5kKChoWzFdLXMpL2wpO2E8dTsrK2EpaD10W2FdLHI9TWF0aC5yb3VuZCgoaFswXS1pKS9vKSxuPU1hdGgucm91bmQoKGhbMV0tcykvbCkscj09PWYmJm49PT1wfHwoKGU9dFtjKytdKVswXT1yLWYsZj1yLGVbMV09bi1wLHA9bik7YzwyJiYoKGU9dFtjKytdKVswXT0wLGVbMV09MCksdC5sZW5ndGg9Y30pLHQub2JqZWN0cyl1KHQub2JqZWN0c1tyXSk7cmV0dXJuIHQudHJhbnNmb3JtPXtzY2FsZTpbbyxsXSx0cmFuc2xhdGU6W2ksc119LHR9LHQudHJhbnNmb3JtPXIsdC51bnRyYW5zZm9ybT1mdW5jdGlvbih0KXtpZihudWxsPT0ocj10LnRyYW5zZm9ybSkpcmV0dXJuIGU7dmFyIHIsbixhLGk9ci5zY2FsZVswXSxvPXIuc2NhbGVbMV0scz1yLnRyYW5zbGF0ZVswXSxsPXIudHJhbnNsYXRlWzFdO3JldHVybiBmdW5jdGlvbih0LGUpe2V8fChuPWE9MCk7dmFyIHI9TWF0aC5yb3VuZCgodFswXS1zKS9pKSxjPU1hdGgucm91bmQoKHRbMV0tbCkvbyk7cmV0dXJuIHRbMF09ci1uLG49cix0WzFdPWMtYSxhPWMsdH19LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0oIm9iamVjdCI9PXR5cGVvZiByJiYidW5kZWZpbmVkIiE9dHlwZW9mIGU/cjpuLnRvcG9qc29uPW4udG9wb2pzb258fHt9KX0se31dLDU0MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYodDwwKXJldHVybltdO2lmKDA9PT10KXJldHVybltbMF1dO2Zvcih2YXIgZT0wfE1hdGgucm91bmQoaSh0KzEpKSxyPVtdLG89MDtvPGU7KytvKXtmb3IodmFyIHM9bi51bnJhbmsodCxvKSxsPVswXSxjPTAsdT0wO3U8cy5sZW5ndGg7Kyt1KWMrPTE8PHNbdV0sbC5wdXNoKGMpO2Eocyk8MSYmKGxbMF09YyxsW3RdPTApLHIucHVzaChsKX1yZXR1cm4gcn07dmFyIG49dCgicGVybXV0YXRpb24tcmFuayIpLGE9dCgicGVybXV0YXRpb24tcGFyaXR5IiksaT10KCJnYW1tYSIpfSx7Z2FtbWE6MjM0LCJwZXJtdXRhdGlvbi1wYXJpdHkiOjQ2NSwicGVybXV0YXRpb24tcmFuayI6NDY2fV0sNTQxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT0odD10fHx7fSkuY2VudGVyfHxbMCwwLDBdLHI9dC51cHx8WzAsMSwwXSxuPXQucmlnaHR8fGgociksYT10LnJhZGl1c3x8MSxpPXQudGhldGF8fDAsdT10LnBoaXx8MDtpZihlPVtdLnNsaWNlLmNhbGwoZSwwLDMpLHI9W10uc2xpY2UuY2FsbChyLDAsMykscyhyLHIpLG49W10uc2xpY2UuY2FsbChuLDAsMykscyhuLG4pLCJleWUiaW4gdCl7dmFyIHA9dC5leWUsZD1bcFswXS1lWzBdLHBbMV0tZVsxXSxwWzJdLWVbMl1dO28obixkLHIpLGMoblswXSxuWzFdLG5bMl0pPDFlLTY/bj1oKHIpOnMobixuKSxhPWMoZFswXSxkWzFdLGRbMl0pO3ZhciBnPWwocixkKS9hLHY9bChuLGQpL2E7dT1NYXRoLmFjb3MoZyksaT1NYXRoLmFjb3Modil9cmV0dXJuIGE9TWF0aC5sb2coYSksbmV3IGYodC56b29tTWluLHQuem9vbU1heCxlLHIsbixhLGksdSl9O3ZhciBuPXQoImZpbHRlcmVkLXZlY3RvciIpLGE9dCgiZ2wtbWF0NC9pbnZlcnQiKSxpPXQoImdsLW1hdDQvcm90YXRlIiksbz10KCJnbC12ZWMzL2Nyb3NzIikscz10KCJnbC12ZWMzL25vcm1hbGl6ZSIpLGw9dCgiZ2wtdmVjMy9kb3QiKTtmdW5jdGlvbiBjKHQsZSxyKXtyZXR1cm4gTWF0aC5zcXJ0KE1hdGgucG93KHQsMikrTWF0aC5wb3coZSwyKStNYXRoLnBvdyhyLDIpKX1mdW5jdGlvbiB1KHQpe3JldHVybiBNYXRoLm1pbigxLE1hdGgubWF4KC0xLHQpKX1mdW5jdGlvbiBoKHQpe3ZhciBlPU1hdGguYWJzKHRbMF0pLHI9TWF0aC5hYnModFsxXSksbj1NYXRoLmFicyh0WzJdKSxhPVswLDAsMF07ZT5NYXRoLm1heChyLG4pP2FbMl09MTpyPk1hdGgubWF4KGUsbik/YVswXT0xOmFbMV09MTtmb3IodmFyIGk9MCxvPTAsbD0wO2w8MzsrK2wpaSs9dFtsXSp0W2xdLG8rPWFbbF0qdFtsXTtmb3IobD0wO2w8MzsrK2wpYVtsXS09by9pKnRbbF07cmV0dXJuIHMoYSxhKSxhfWZ1bmN0aW9uIGYodCxlLHIsYSxpLG8scyxsKXt0aGlzLmNlbnRlcj1uKHIpLHRoaXMudXA9bihhKSx0aGlzLnJpZ2h0PW4oaSksdGhpcy5yYWRpdXM9bihbb10pLHRoaXMuYW5nbGU9bihbcyxsXSksdGhpcy5hbmdsZS5ib3VuZHM9W1stMS8wLC1NYXRoLlBJLzJdLFsxLzAsTWF0aC5QSS8yXV0sdGhpcy5zZXREaXN0YW5jZUxpbWl0cyh0LGUpLHRoaXMuY29tcHV0ZWRDZW50ZXI9dGhpcy5jZW50ZXIuY3VydmUoMCksdGhpcy5jb21wdXRlZFVwPXRoaXMudXAuY3VydmUoMCksdGhpcy5jb21wdXRlZFJpZ2h0PXRoaXMucmlnaHQuY3VydmUoMCksdGhpcy5jb21wdXRlZFJhZGl1cz10aGlzLnJhZGl1cy5jdXJ2ZSgwKSx0aGlzLmNvbXB1dGVkQW5nbGU9dGhpcy5hbmdsZS5jdXJ2ZSgwKSx0aGlzLmNvbXB1dGVkVG93YXJkPVswLDAsMF0sdGhpcy5jb21wdXRlZEV5ZT1bMCwwLDBdLHRoaXMuY29tcHV0ZWRNYXRyaXg9bmV3IEFycmF5KDE2KTtmb3IodmFyIGM9MDtjPDE2OysrYyl0aGlzLmNvbXB1dGVkTWF0cml4W2NdPS41O3RoaXMucmVjYWxjTWF0cml4KDApfXZhciBwPWYucHJvdG90eXBlO3Auc2V0RGlzdGFuY2VMaW1pdHM9ZnVuY3Rpb24odCxlKXt0PXQ+MD9NYXRoLmxvZyh0KTotMS8wLGU9ZT4wP01hdGgubG9nKGUpOjEvMCxlPU1hdGgubWF4KGUsdCksdGhpcy5yYWRpdXMuYm91bmRzWzBdWzBdPXQsdGhpcy5yYWRpdXMuYm91bmRzWzFdWzBdPWV9LHAuZ2V0RGlzdGFuY2VMaW1pdHM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5yYWRpdXMuYm91bmRzWzBdO3JldHVybiB0Pyh0WzBdPU1hdGguZXhwKGVbMF1bMF0pLHRbMV09TWF0aC5leHAoZVsxXVswXSksdCk6W01hdGguZXhwKGVbMF1bMF0pLE1hdGguZXhwKGVbMV1bMF0pXX0scC5yZWNhbGNNYXRyaXg9ZnVuY3Rpb24odCl7dGhpcy5jZW50ZXIuY3VydmUodCksdGhpcy51cC5jdXJ2ZSh0KSx0aGlzLnJpZ2h0LmN1cnZlKHQpLHRoaXMucmFkaXVzLmN1cnZlKHQpLHRoaXMuYW5nbGUuY3VydmUodCk7Zm9yKHZhciBlPXRoaXMuY29tcHV0ZWRVcCxyPXRoaXMuY29tcHV0ZWRSaWdodCxuPTAsYT0wLGk9MDtpPDM7KytpKWErPWVbaV0qcltpXSxuKz1lW2ldKmVbaV07dmFyIGw9TWF0aC5zcXJ0KG4pLHU9MDtmb3IoaT0wO2k8MzsrK2kpcltpXS09ZVtpXSphL24sdSs9cltpXSpyW2ldLGVbaV0vPWw7dmFyIGg9TWF0aC5zcXJ0KHUpO2ZvcihpPTA7aTwzOysraSlyW2ldLz1oO3ZhciBmPXRoaXMuY29tcHV0ZWRUb3dhcmQ7byhmLGUscikscyhmLGYpO3ZhciBwPU1hdGguZXhwKHRoaXMuY29tcHV0ZWRSYWRpdXNbMF0pLGQ9dGhpcy5jb21wdXRlZEFuZ2xlWzBdLGc9dGhpcy5jb21wdXRlZEFuZ2xlWzFdLHY9TWF0aC5jb3MoZCksbT1NYXRoLnNpbihkKSx5PU1hdGguY29zKGcpLHg9TWF0aC5zaW4oZyksYj10aGlzLmNvbXB1dGVkQ2VudGVyLF89dip5LHc9bSp5LGs9eCxUPS12KngsTT0tbSp4LEE9eSxTPXRoaXMuY29tcHV0ZWRFeWUsRT10aGlzLmNvbXB1dGVkTWF0cml4O2ZvcihpPTA7aTwzOysraSl7dmFyIEw9XypyW2ldK3cqZltpXStrKmVbaV07RVs0KmkrMV09VCpyW2ldK00qZltpXStBKmVbaV0sRVs0KmkrMl09TCxFWzQqaSszXT0wfXZhciBDPUVbMV0sUD1FWzVdLE89RVs5XSx6PUVbMl0sST1FWzZdLEQ9RVsxMF0sUj1QKkQtTypJLEY9Typ6LUMqRCxCPUMqSS1QKnosTj1jKFIsRixCKTtSLz1OLEYvPU4sQi89TixFWzBdPVIsRVs0XT1GLEVbOF09Qjtmb3IoaT0wO2k8MzsrK2kpU1tpXT1iW2ldK0VbMis0KmldKnA7Zm9yKGk9MDtpPDM7KytpKXt1PTA7Zm9yKHZhciBqPTA7ajwzOysrail1Kz1FW2krNCpqXSpTW2pdO0VbMTIraV09LXV9RVsxNV09MX0scC5nZXRNYXRyaXg9ZnVuY3Rpb24odCxlKXt0aGlzLnJlY2FsY01hdHJpeCh0KTt2YXIgcj10aGlzLmNvbXB1dGVkTWF0cml4O2lmKGUpe2Zvcih2YXIgbj0wO248MTY7KytuKWVbbl09cltuXTtyZXR1cm4gZX1yZXR1cm4gcn07dmFyIGQ9WzAsMCwwXTtwLnJvdGF0ZT1mdW5jdGlvbih0LGUscixuKXtpZih0aGlzLmFuZ2xlLm1vdmUodCxlLHIpLG4pe3RoaXMucmVjYWxjTWF0cml4KHQpO3ZhciBhPXRoaXMuY29tcHV0ZWRNYXRyaXg7ZFswXT1hWzJdLGRbMV09YVs2XSxkWzJdPWFbMTBdO2Zvcih2YXIgbz10aGlzLmNvbXB1dGVkVXAscz10aGlzLmNvbXB1dGVkUmlnaHQsbD10aGlzLmNvbXB1dGVkVG93YXJkLGM9MDtjPDM7KytjKWFbNCpjXT1vW2NdLGFbNCpjKzFdPXNbY10sYVs0KmMrMl09bFtjXTtpKGEsYSxuLGQpO2ZvcihjPTA7YzwzOysrYylvW2NdPWFbNCpjXSxzW2NdPWFbNCpjKzFdO3RoaXMudXAuc2V0KHQsb1swXSxvWzFdLG9bMl0pLHRoaXMucmlnaHQuc2V0KHQsc1swXSxzWzFdLHNbMl0pfX0scC5wYW49ZnVuY3Rpb24odCxlLHIsbil7ZT1lfHwwLHI9cnx8MCxuPW58fDAsdGhpcy5yZWNhbGNNYXRyaXgodCk7dmFyIGE9dGhpcy5jb21wdXRlZE1hdHJpeCxpPShNYXRoLmV4cCh0aGlzLmNvbXB1dGVkUmFkaXVzWzBdKSxhWzFdKSxvPWFbNV0scz1hWzldLGw9YyhpLG8scyk7aS89bCxvLz1sLHMvPWw7dmFyIHU9YVswXSxoPWFbNF0sZj1hWzhdLHA9dSppK2gqbytmKnMsZD1jKHUtPWkqcCxoLT1vKnAsZi09cypwKSxnPSh1Lz1kKSplK2kqcix2PShoLz1kKSplK28qcixtPShmLz1kKSplK3Mqcjt0aGlzLmNlbnRlci5tb3ZlKHQsZyx2LG0pO3ZhciB5PU1hdGguZXhwKHRoaXMuY29tcHV0ZWRSYWRpdXNbMF0pO3k9TWF0aC5tYXgoMWUtNCx5K24pLHRoaXMucmFkaXVzLnNldCh0LE1hdGgubG9nKHkpKX0scC50cmFuc2xhdGU9ZnVuY3Rpb24odCxlLHIsbil7dGhpcy5jZW50ZXIubW92ZSh0LGV8fDAscnx8MCxufHwwKX0scC5zZXRNYXRyaXg9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9MTsibnVtYmVyIj09dHlwZW9mIHImJihpPTB8ciksKGk8MHx8aT4zKSYmKGk9MSk7dmFyIG89KGkrMiklMztlfHwodGhpcy5yZWNhbGNNYXRyaXgodCksZT10aGlzLmNvbXB1dGVkTWF0cml4KTt2YXIgcz1lW2ldLGw9ZVtpKzRdLGg9ZVtpKzhdO2lmKG4pe3ZhciBmPU1hdGguYWJzKHMpLHA9TWF0aC5hYnMobCksZD1NYXRoLmFicyhoKSxnPU1hdGgubWF4KGYscCxkKTtmPT09Zz8ocz1zPDA/LTE6MSxsPWg9MCk6ZD09PWc/KGg9aDwwPy0xOjEscz1sPTApOihsPWw8MD8tMToxLHM9aD0wKX1lbHNle3ZhciB2PWMocyxsLGgpO3MvPXYsbC89dixoLz12fXZhciBtLHkseD1lW29dLGI9ZVtvKzRdLF89ZVtvKzhdLHc9eCpzK2IqbCtfKmgsaz1jKHgtPXMqdyxiLT1sKncsXy09aCp3KSxUPWwqKF8vPWspLWgqKGIvPWspLE09aCooeC89ayktcypfLEE9cypiLWwqeCxTPWMoVCxNLEEpO2lmKFQvPVMsTS89UyxBLz1TLHRoaXMuY2VudGVyLmp1bXAodCxILEcsWSksdGhpcy5yYWRpdXMuaWRsZSh0KSx0aGlzLnVwLmp1bXAodCxzLGwsaCksdGhpcy5yaWdodC5qdW1wKHQseCxiLF8pLDI9PT1pKXt2YXIgRT1lWzFdLEw9ZVs1XSxDPWVbOV0sUD1FKngrTCpiK0MqXyxPPUUqVCtMKk0rQypBO209UjwwPy1NYXRoLlBJLzI6TWF0aC5QSS8yLHk9TWF0aC5hdGFuMihPLFApfWVsc2V7dmFyIHo9ZVsyXSxJPWVbNl0sRD1lWzEwXSxSPXoqcytJKmwrRCpoLEY9eip4K0kqYitEKl8sQj16KlQrSSpNK0QqQTttPU1hdGguYXNpbih1KFIpKSx5PU1hdGguYXRhbjIoQixGKX10aGlzLmFuZ2xlLmp1bXAodCx5LG0pLHRoaXMucmVjYWxjTWF0cml4KHQpO3ZhciBOPWVbMl0saj1lWzZdLFY9ZVsxMF0sVT10aGlzLmNvbXB1dGVkTWF0cml4O2EoVSxlKTt2YXIgcT1VWzE1XSxIPVVbMTJdL3EsRz1VWzEzXS9xLFk9VVsxNF0vcSxXPU1hdGguZXhwKHRoaXMuY29tcHV0ZWRSYWRpdXNbMF0pO3RoaXMuY2VudGVyLmp1bXAodCxILU4qVyxHLWoqVyxZLVYqVyl9LHAubGFzdFQ9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5tYXgodGhpcy5jZW50ZXIubGFzdFQoKSx0aGlzLnVwLmxhc3RUKCksdGhpcy5yaWdodC5sYXN0VCgpLHRoaXMucmFkaXVzLmxhc3RUKCksdGhpcy5hbmdsZS5sYXN0VCgpKX0scC5pZGxlPWZ1bmN0aW9uKHQpe3RoaXMuY2VudGVyLmlkbGUodCksdGhpcy51cC5pZGxlKHQpLHRoaXMucmlnaHQuaWRsZSh0KSx0aGlzLnJhZGl1cy5pZGxlKHQpLHRoaXMuYW5nbGUuaWRsZSh0KX0scC5mbHVzaD1mdW5jdGlvbih0KXt0aGlzLmNlbnRlci5mbHVzaCh0KSx0aGlzLnVwLmZsdXNoKHQpLHRoaXMucmlnaHQuZmx1c2godCksdGhpcy5yYWRpdXMuZmx1c2godCksdGhpcy5hbmdsZS5mbHVzaCh0KX0scC5zZXREaXN0YW5jZT1mdW5jdGlvbih0LGUpe2U+MCYmdGhpcy5yYWRpdXMuc2V0KHQsTWF0aC5sb2coZSkpfSxwLmxvb2tBdD1mdW5jdGlvbih0LGUscixuKXt0aGlzLnJlY2FsY01hdHJpeCh0KSxlPWV8fHRoaXMuY29tcHV0ZWRFeWUscj1yfHx0aGlzLmNvbXB1dGVkQ2VudGVyO3ZhciBhPShuPW58fHRoaXMuY29tcHV0ZWRVcClbMF0saT1uWzFdLG89blsyXSxzPWMoYSxpLG8pO2lmKCEoczwxZS02KSl7YS89cyxpLz1zLG8vPXM7dmFyIGw9ZVswXS1yWzBdLGg9ZVsxXS1yWzFdLGY9ZVsyXS1yWzJdLHA9YyhsLGgsZik7aWYoIShwPDFlLTYpKXtsLz1wLGgvPXAsZi89cDt2YXIgZD10aGlzLmNvbXB1dGVkUmlnaHQsZz1kWzBdLHY9ZFsxXSxtPWRbMl0seT1hKmcraSp2K28qbSx4PWMoZy09eSphLHYtPXkqaSxtLT15Km8pO2lmKCEoeDwuMDEmJih4PWMoZz1pKmYtbypoLHY9bypsLWEqZixtPWEqaC1pKmwpKTwxZS02KSl7Zy89eCx2Lz14LG0vPXgsdGhpcy51cC5zZXQodCxhLGksbyksdGhpcy5yaWdodC5zZXQodCxnLHYsbSksdGhpcy5jZW50ZXIuc2V0KHQsclswXSxyWzFdLHJbMl0pLHRoaXMucmFkaXVzLnNldCh0LE1hdGgubG9nKHApKTt2YXIgYj1pKm0tbyp2LF89bypnLWEqbSx3PWEqdi1pKmcsaz1jKGIsXyx3KSxUPWEqbCtpKmgrbypmLE09ZypsK3YqaCttKmYsQT0oYi89aykqbCsoXy89aykqaCsody89aykqZixTPU1hdGguYXNpbih1KFQpKSxFPU1hdGguYXRhbjIoQSxNKSxMPXRoaXMuYW5nbGUuX3N0YXRlLEM9TFtMLmxlbmd0aC0xXSxQPUxbTC5sZW5ndGgtMl07QyU9MipNYXRoLlBJO3ZhciBPPU1hdGguYWJzKEMrMipNYXRoLlBJLUUpLHo9TWF0aC5hYnMoQy1FKSxJPU1hdGguYWJzKEMtMipNYXRoLlBJLUUpO088eiYmKEMrPTIqTWF0aC5QSSksSTx6JiYoQy09MipNYXRoLlBJKSx0aGlzLmFuZ2xlLmp1bXAodGhpcy5hbmdsZS5sYXN0VCgpLEMsUCksdGhpcy5hbmdsZS5zZXQodCxFLFMpfX19fX0seyJmaWx0ZXJlZC12ZWN0b3IiOjIyOSwiZ2wtbWF0NC9pbnZlcnQiOjI2OCwiZ2wtbWF0NC9yb3RhdGUiOjI3MywiZ2wtdmVjMy9jcm9zcyI6MzM2LCJnbC12ZWMzL2RvdCI6MzQxLCJnbC12ZWMzL25vcm1hbGl6ZSI6MzU4fV0sNTQyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGE9dCplLGk9bip0LG89aS0oaS10KSxzPXQtbyxsPW4qZSxjPWwtKGwtZSksdT1lLWMsaD1zKnUtKGEtbypjLXMqYy1vKnUpO2lmKHIpcmV0dXJuIHJbMF09aCxyWzFdPWEscjtyZXR1cm5baCxhXX07dmFyIG49KyhNYXRoLnBvdygyLDI3KSsxKX0se31dLDU0MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQrZSxhPW4tdCxpPWUtYSxvPXQtKG4tYSk7aWYocilyZXR1cm4gclswXT1vK2ksclsxXT1uLHI7cmV0dXJuW28raSxuXX19LHt9XSw1NDQ6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24oZSxuKXsidXNlIHN0cmljdCI7dmFyIGE9dCgiYml0LXR3aWRkbGUiKSxpPXQoImR1cCIpO2UuX19UWVBFREFSUkFZX1BPT0x8fChlLl9fVFlQRURBUlJBWV9QT09MPXtVSU5UODppKFszMiwwXSksVUlOVDE2OmkoWzMyLDBdKSxVSU5UMzI6aShbMzIsMF0pLElOVDg6aShbMzIsMF0pLElOVDE2OmkoWzMyLDBdKSxJTlQzMjppKFszMiwwXSksRkxPQVQ6aShbMzIsMF0pLERPVUJMRTppKFszMiwwXSksREFUQTppKFszMiwwXSksVUlOVDhDOmkoWzMyLDBdKSxCVUZGRVI6aShbMzIsMF0pfSk7dmFyIG89InVuZGVmaW5lZCIhPXR5cGVvZiBVaW50OENsYW1wZWRBcnJheSxzPWUuX19UWVBFREFSUkFZX1BPT0w7cy5VSU5UOEN8fChzLlVJTlQ4Qz1pKFszMiwwXSkpLHMuQlVGRkVSfHwocy5CVUZGRVI9aShbMzIsMF0pKTt2YXIgbD1zLkRBVEEsYz1zLkJVRkZFUjtmdW5jdGlvbiB1KHQpe2lmKHQpe3ZhciBlPXQubGVuZ3RofHx0LmJ5dGVMZW5ndGgscj1hLmxvZzIoZSk7bFtyXS5wdXNoKHQpfX1mdW5jdGlvbiBoKHQpe3Q9YS5uZXh0UG93Mih0KTt2YXIgZT1hLmxvZzIodCkscj1sW2VdO3JldHVybiByLmxlbmd0aD4wP3IucG9wKCk6bmV3IEFycmF5QnVmZmVyKHQpfWZ1bmN0aW9uIGYodCl7cmV0dXJuIG5ldyBVaW50OEFycmF5KGgodCksMCx0KX1mdW5jdGlvbiBwKHQpe3JldHVybiBuZXcgVWludDE2QXJyYXkoaCgyKnQpLDAsdCl9ZnVuY3Rpb24gZCh0KXtyZXR1cm4gbmV3IFVpbnQzMkFycmF5KGgoNCp0KSwwLHQpfWZ1bmN0aW9uIGcodCl7cmV0dXJuIG5ldyBJbnQ4QXJyYXkoaCh0KSwwLHQpfWZ1bmN0aW9uIHYodCl7cmV0dXJuIG5ldyBJbnQxNkFycmF5KGgoMip0KSwwLHQpfWZ1bmN0aW9uIG0odCl7cmV0dXJuIG5ldyBJbnQzMkFycmF5KGgoNCp0KSwwLHQpfWZ1bmN0aW9uIHkodCl7cmV0dXJuIG5ldyBGbG9hdDMyQXJyYXkoaCg0KnQpLDAsdCl9ZnVuY3Rpb24geCh0KXtyZXR1cm4gbmV3IEZsb2F0NjRBcnJheShoKDgqdCksMCx0KX1mdW5jdGlvbiBiKHQpe3JldHVybiBvP25ldyBVaW50OENsYW1wZWRBcnJheShoKHQpLDAsdCk6Zih0KX1mdW5jdGlvbiBfKHQpe3JldHVybiBuZXcgRGF0YVZpZXcoaCh0KSwwLHQpfWZ1bmN0aW9uIHcodCl7dD1hLm5leHRQb3cyKHQpO3ZhciBlPWEubG9nMih0KSxyPWNbZV07cmV0dXJuIHIubGVuZ3RoPjA/ci5wb3AoKTpuZXcgbih0KX1yLmZyZWU9ZnVuY3Rpb24odCl7aWYobi5pc0J1ZmZlcih0KSljW2EubG9nMih0Lmxlbmd0aCldLnB1c2godCk7ZWxzZXtpZigiW29iamVjdCBBcnJheUJ1ZmZlcl0iIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpJiYodD10LmJ1ZmZlciksIXQpcmV0dXJuO3ZhciBlPXQubGVuZ3RofHx0LmJ5dGVMZW5ndGgscj0wfGEubG9nMihlKTtsW3JdLnB1c2godCl9fSxyLmZyZWVVaW50OD1yLmZyZWVVaW50MTY9ci5mcmVlVWludDMyPXIuZnJlZUludDg9ci5mcmVlSW50MTY9ci5mcmVlSW50MzI9ci5mcmVlRmxvYXQzMj1yLmZyZWVGbG9hdD1yLmZyZWVGbG9hdDY0PXIuZnJlZURvdWJsZT1yLmZyZWVVaW50OENsYW1wZWQ9ci5mcmVlRGF0YVZpZXc9ZnVuY3Rpb24odCl7dSh0LmJ1ZmZlcil9LHIuZnJlZUFycmF5QnVmZmVyPXUsci5mcmVlQnVmZmVyPWZ1bmN0aW9uKHQpe2NbYS5sb2cyKHQubGVuZ3RoKV0ucHVzaCh0KX0sci5tYWxsb2M9ZnVuY3Rpb24odCxlKXtpZih2b2lkIDA9PT1lfHwiYXJyYXlidWZmZXIiPT09ZSlyZXR1cm4gaCh0KTtzd2l0Y2goZSl7Y2FzZSJ1aW50OCI6cmV0dXJuIGYodCk7Y2FzZSJ1aW50MTYiOnJldHVybiBwKHQpO2Nhc2UidWludDMyIjpyZXR1cm4gZCh0KTtjYXNlImludDgiOnJldHVybiBnKHQpO2Nhc2UiaW50MTYiOnJldHVybiB2KHQpO2Nhc2UiaW50MzIiOnJldHVybiBtKHQpO2Nhc2UiZmxvYXQiOmNhc2UiZmxvYXQzMiI6cmV0dXJuIHkodCk7Y2FzZSJkb3VibGUiOmNhc2UiZmxvYXQ2NCI6cmV0dXJuIHgodCk7Y2FzZSJ1aW50OF9jbGFtcGVkIjpyZXR1cm4gYih0KTtjYXNlImJ1ZmZlciI6cmV0dXJuIHcodCk7Y2FzZSJkYXRhIjpjYXNlImRhdGF2aWV3IjpyZXR1cm4gXyh0KTtkZWZhdWx0OnJldHVybiBudWxsfXJldHVybiBudWxsfSxyLm1hbGxvY0FycmF5QnVmZmVyPWgsci5tYWxsb2NVaW50OD1mLHIubWFsbG9jVWludDE2PXAsci5tYWxsb2NVaW50MzI9ZCxyLm1hbGxvY0ludDg9ZyxyLm1hbGxvY0ludDE2PXYsci5tYWxsb2NJbnQzMj1tLHIubWFsbG9jRmxvYXQzMj1yLm1hbGxvY0Zsb2F0PXksci5tYWxsb2NGbG9hdDY0PXIubWFsbG9jRG91YmxlPXgsci5tYWxsb2NVaW50OENsYW1wZWQ9YixyLm1hbGxvY0RhdGFWaWV3PV8sci5tYWxsb2NCdWZmZXI9dyxyLmNsZWFyQ2FjaGU9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PDMyOysrdClzLlVJTlQ4W3RdLmxlbmd0aD0wLHMuVUlOVDE2W3RdLmxlbmd0aD0wLHMuVUlOVDMyW3RdLmxlbmd0aD0wLHMuSU5UOFt0XS5sZW5ndGg9MCxzLklOVDE2W3RdLmxlbmd0aD0wLHMuSU5UMzJbdF0ubGVuZ3RoPTAscy5GTE9BVFt0XS5sZW5ndGg9MCxzLkRPVUJMRVt0XS5sZW5ndGg9MCxzLlVJTlQ4Q1t0XS5sZW5ndGg9MCxsW3RdLmxlbmd0aD0wLGNbdF0ubGVuZ3RoPTB9fSkuY2FsbCh0aGlzLCJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6e30sdCgiYnVmZmVyIikuQnVmZmVyKX0seyJiaXQtdHdpZGRsZSI6OTQsYnVmZmVyOjEwNyxkdXA6MTcyfV0sNTQ1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dGhpcy5yb290cz1uZXcgQXJyYXkodCksdGhpcy5yYW5rcz1uZXcgQXJyYXkodCk7Zm9yKHZhciBlPTA7ZTx0OysrZSl0aGlzLnJvb3RzW2VdPWUsdGhpcy5yYW5rc1tlXT0wfWUuZXhwb3J0cz1uO3ZhciBhPW4ucHJvdG90eXBlO09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJsZW5ndGgiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yb290cy5sZW5ndGh9fSksYS5tYWtlU2V0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5yb290cy5sZW5ndGg7cmV0dXJuIHRoaXMucm9vdHMucHVzaCh0KSx0aGlzLnJhbmtzLnB1c2goMCksdH0sYS5maW5kPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LHI9dGhpcy5yb290cztyW3RdIT09dDspdD1yW3RdO2Zvcig7cltlXSE9PXQ7KXt2YXIgbj1yW2VdO3JbZV09dCxlPW59cmV0dXJuIHR9LGEubGluaz1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuZmluZCh0KSxuPXRoaXMuZmluZChlKTtpZihyIT09bil7dmFyIGE9dGhpcy5yYW5rcyxpPXRoaXMucm9vdHMsbz1hW3JdLHM9YVtuXTtvPHM/aVtyXT1uOnM8bz9pW25dPXI6KGlbbl09ciwrK2Fbcl0pfX19LHt9XSw1NDY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gMD09PXQubGVuZ3RoP3Q6ZT8ocnx8dC5zb3J0KGUpLGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTEsbj10Lmxlbmd0aCxhPXRbMF0saT10WzBdLG89MTtvPG47KytvKWlmKGk9YSxlKGE9dFtvXSxpKSl7aWYobz09PXIpe3IrKztjb250aW51ZX10W3IrK109YX1yZXR1cm4gdC5sZW5ndGg9cix0fSh0LGUpKToocnx8dC5zb3J0KCksZnVuY3Rpb24odCl7Zm9yKHZhciBlPTEscj10Lmxlbmd0aCxuPXRbMF0sYT10WzBdLGk9MTtpPHI7KytpLGE9bilpZihhPW4sKG49dFtpXSkhPT1hKXtpZihpPT09ZSl7ZSsrO2NvbnRpbnVlfXRbZSsrXT1ufXJldHVybiB0Lmxlbmd0aD1lLHR9KHQpKX19LHt9XSw1NDc6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj0vW1wnXCJdLztlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHQ/KG4udGVzdCh0LmNoYXJBdCgwKSkmJih0PXQuc3Vic3RyKDEpKSxuLnRlc3QodC5jaGFyQXQodC5sZW5ndGgtMSkpJiYodD10LnN1YnN0cigwLHQubGVuZ3RoLTEpKSx0KToiIn19LHt9XSw1NDg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtBcnJheS5pc0FycmF5KHIpfHwocj1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cywyKSk7Zm9yKHZhciBuPTAsYT1yLmxlbmd0aDtuPGE7bisrKXt2YXIgaT1yW25dO2Zvcih2YXIgbyBpbiBpKWlmKCh2b2lkIDA9PT1lW29dfHxBcnJheS5pc0FycmF5KGVbb10pfHx0W29dIT09ZVtvXSkmJm8gaW4gZSl7dmFyIHM7aWYoITA9PT1pW29dKXM9ZVtvXTtlbHNle2lmKCExPT09aVtvXSljb250aW51ZTtpZigiZnVuY3Rpb24iPT10eXBlb2YgaVtvXSYmdm9pZCAwPT09KHM9aVtvXShlW29dLHQsZSkpKWNvbnRpbnVlfXRbb109c319cmV0dXJuIHR9fSx7fV0sNTQ5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpeyJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWV8fChlPXt9KTtyZXR1cm4gbih0LGUuY2FudmFzfHxhLGUuY29udGV4dHx8aSxlKX07dmFyIG49dCgiLi9saWIvdnRleHQiKSxhPW51bGwsaT1udWxsOyJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQmJigoYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSkud2lkdGg9ODE5MixhLmhlaWdodD0xMDI0LGk9YS5nZXRDb250ZXh0KCIyZCIpKX0seyIuL2xpYi92dGV4dCI6NTUwfV0sNTUwOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPTY0LG89MS4yNSxzPXticmVha2xpbmVzOiExLGJvbGRzOiExLGl0YWxpY3M6ITEsc3Vic2NyaXB0czohMSxzdXBlcnNjcmlwdHM6ITF9O24mJihuLnNpemUmJm4uc2l6ZT4wJiYoaT1uLnNpemUpLG4ubGluZVNwYWNpbmcmJm4ubGluZVNwYWNpbmc+MCYmKG89bi5saW5lU3BhY2luZyksbi5zdHlsZXRhZ3MmJm4uc3R5bGV0YWdzLmJyZWFrbGluZXMmJihzLmJyZWFrbGluZXM9ISFuLnN0eWxldGFncy5icmVha2xpbmVzKSxuLnN0eWxldGFncyYmbi5zdHlsZXRhZ3MuYm9sZHMmJihzLmJvbGRzPSEhbi5zdHlsZXRhZ3MuYm9sZHMpLG4uc3R5bGV0YWdzJiZuLnN0eWxldGFncy5pdGFsaWNzJiYocy5pdGFsaWNzPSEhbi5zdHlsZXRhZ3MuaXRhbGljcyksbi5zdHlsZXRhZ3MmJm4uc3R5bGV0YWdzLnN1YnNjcmlwdHMmJihzLnN1YnNjcmlwdHM9ISFuLnN0eWxldGFncy5zdWJzY3JpcHRzKSxuLnN0eWxldGFncyYmbi5zdHlsZXRhZ3Muc3VwZXJzY3JpcHRzJiYocy5zdXBlcnNjcmlwdHM9ISFuLnN0eWxldGFncy5zdXBlcnNjcmlwdHMpKTtyZXR1cm4gci5mb250PVtuLmZvbnRTdHlsZSxuLmZvbnRWYXJpYW50LG4uZm9udFdlaWdodCxpKyJweCIsbi5mb250XS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHR9KS5qb2luKCIgIiksci50ZXh0QWxpZ249InN0YXJ0IixyLnRleHRCYXNlbGluZT0iYWxwaGFiZXRpYyIsci5kaXJlY3Rpb249Imx0ciIsdyhmdW5jdGlvbih0LGUscixuLGksbyl7cj1yLnJlcGxhY2UoL1xuL2csIiIpLHI9ITA9PT1vLmJyZWFrbGluZXM/ci5yZXBsYWNlKC9cPGJyXD4vZywiXG4iKTpyLnJlcGxhY2UoL1w8YnJcPi9nLCIgIik7dmFyIHM9IiIsbD1bXTtmb3Ioaz0wO2s8ci5sZW5ndGg7KytrKWxba109czshMD09PW8uYm9sZHMmJihsPXgoYyx1LHIsbCkpLCEwPT09by5pdGFsaWNzJiYobD14KGgsZixyLGwpKSwhMD09PW8uc3VwZXJzY3JpcHRzJiYobD14KHAsZyxyLGwpKSwhMD09PW8uc3Vic2NyaXB0cyYmKGw9eCh2LHkscixsKSk7dmFyIGI9W10sXz0iIjtmb3Ioaz0wO2s8ci5sZW5ndGg7KytrKW51bGwhPT1sW2tdJiYoXys9cltrXSxiLnB1c2gobFtrXSkpO3ZhciB3LGssVCxNLEEsUz1fLnNwbGl0KCJcbiIpLEU9Uy5sZW5ndGgsTD1NYXRoLnJvdW5kKGkqbiksQz1uLFA9MipuLE89MCx6PUUqTCtQO3QuaGVpZ2h0PHomJih0LmhlaWdodD16KSxlLmZpbGxTdHlsZT0iIzAwMCIsZS5maWxsUmVjdCgwLDAsdC53aWR0aCx0LmhlaWdodCksZS5maWxsU3R5bGU9IiNmZmYiO3ZhciBJPTAsRD0iIjtmdW5jdGlvbiBSKCl7aWYoIiIhPT1EKXt2YXIgdD1lLm1lYXN1cmVUZXh0KEQpLndpZHRoO2UuZmlsbFRleHQoRCxDK1QsUCtNKSxUKz10fX1mdW5jdGlvbiBGKCl7cmV0dXJuIE1hdGgucm91bmQoQSkrInB4ICJ9ZnVuY3Rpb24gQih0LHIpe3ZhciBuPSIiK2UuZm9udDtpZighMD09PW8uc3Vic2NyaXB0cyl7dmFyIGE9dC5pbmRleE9mKG0pLGk9ci5pbmRleE9mKG0pLHM9YT4tMT9wYXJzZUludCh0WzErYV0pOjAsbD1pPi0xP3BhcnNlSW50KHJbMStpXSk6MDtzIT09bCYmKG49bi5yZXBsYWNlKEYoKSwiP3B4ICIpLEEqPU1hdGgucG93KC43NSxsLXMpLG49bi5yZXBsYWNlKCI/cHggIixGKCkpKSxNKz0uMjUqTCoobC1zKX1pZighMD09PW8uc3VwZXJzY3JpcHRzKXt2YXIgYz10LmluZGV4T2YoZCksaD1yLmluZGV4T2YoZCkscD1jPi0xP3BhcnNlSW50KHRbMStjXSk6MCxnPWg+LTE/cGFyc2VJbnQoclsxK2hdKTowO3AhPT1nJiYobj1uLnJlcGxhY2UoRigpLCI/cHggIiksQSo9TWF0aC5wb3coLjc1LGctcCksbj1uLnJlcGxhY2UoIj9weCAiLEYoKSkpLE0tPS4yNSpMKihnLXApfWlmKCEwPT09by5ib2xkcyl7dmFyIHY9dC5pbmRleE9mKHUpPi0xLHk9ci5pbmRleE9mKHUpPi0xOyF2JiZ5JiYobj14P24ucmVwbGFjZSgiaXRhbGljICIsIml0YWxpYyBib2xkICIpOiJib2xkICIrbiksdiYmIXkmJihuPW4ucmVwbGFjZSgiYm9sZCAiLCIiKSl9aWYoITA9PT1vLml0YWxpY3Mpe3ZhciB4PXQuaW5kZXhPZihmKT4tMSxiPXIuaW5kZXhPZihmKT4tMTsheCYmYiYmKG49Iml0YWxpYyAiK24pLHgmJiFiJiYobj1uLnJlcGxhY2UoIml0YWxpYyAiLCIiKSl9ZS5mb250PW59Zm9yKHc9MDt3PEU7Kyt3KXt2YXIgTj1TW3ddKyJcbiI7Zm9yKFQ9MCxNPXcqTCxBPW4sRD0iIixrPTA7azxOLmxlbmd0aDsrK2spe3ZhciBqPWsrSTxiLmxlbmd0aD9iW2srSV06YltiLmxlbmd0aC0xXTtzPT09aj9EKz1OW2tdOihSKCksRD1OW2tdLHZvaWQgMCE9PWomJihCKHMsaikscz1qKSl9UigpLEkrPU4ubGVuZ3RoO3ZhciBWPTB8TWF0aC5yb3VuZChUKzIqQyk7TzxWJiYoTz1WKX12YXIgVT1PLHE9UCtMKkU7cmV0dXJuIGEoZS5nZXRJbWFnZURhdGEoMCwwLFUscSkuZGF0YSxbcSxVLDRdKS5waWNrKC0xLC0xLDApLnRyYW5zcG9zZSgxLDApfShlLHIsdCxpLG8scyksbixpKX0sZS5leHBvcnRzLnByb2Nlc3NQaXhlbHM9dzt2YXIgbj10KCJzdXJmYWNlLW5ldHMiKSxhPXQoIm5kYXJyYXkiKSxpPXQoInNpbXBsaWZ5LXBsYW5hci1ncmFwaCIpLG89dCgiY2xlYW4tcHNsZyIpLHM9dCgiY2R0MmQiKSxsPXQoInBsYW5hci1ncmFwaC10by1wb2x5bGluZSIpLGM9ImIiLHU9ImJ8IixoPSJpIixmPSJpfCIscD0ic3VwIixkPSIrIixnPSIrMSIsdj0ic3ViIixtPSItIix5PSItMSI7ZnVuY3Rpb24geCh0LGUscixuKXtmb3IodmFyIGE9IjwiK3QrIj4iLGk9IjwvIit0KyI+IixvPWEubGVuZ3RoLHM9aS5sZW5ndGgsbD1lWzBdPT09ZHx8ZVswXT09PW0sYz0wLHU9LXM7Yz4tMSYmLTEhPT0oYz1yLmluZGV4T2YoYSxjKSkmJi0xIT09KHU9ci5pbmRleE9mKGksYytvKSkmJiEodTw9Yyk7KXtmb3IodmFyIGg9YztoPHUrczsrK2gpaWYoaDxjK298fGg+PXUpbltoXT1udWxsLHI9ci5zdWJzdHIoMCxoKSsiICIrci5zdWJzdHIoaCsxKTtlbHNlIGlmKG51bGwhPT1uW2hdKXt2YXIgZj1uW2hdLmluZGV4T2YoZVswXSk7LTE9PT1mP25baF0rPWU6bCYmKG5baF09bltoXS5zdWJzdHIoMCxmKzEpKygxK3BhcnNlSW50KG5baF1bZisxXSkpK25baF0uc3Vic3RyKGYrMikpfXZhciBwPWMrbyxnPXIuc3Vic3RyKHAsdS1wKS5pbmRleE9mKGEpO2M9LTEhPT1nP2c6dStzfXJldHVybiBufWZ1bmN0aW9uIGIodCxlKXt2YXIgcj1uKHQsMTI4KTtyZXR1cm4gZT9pKHIuY2VsbHMsci5wb3NpdGlvbnMsLjI1KTp7ZWRnZXM6ci5jZWxscyxwb3NpdGlvbnM6ci5wb3NpdGlvbnN9fWZ1bmN0aW9uIF8odCxlLHIsbil7dmFyIGE9Yih0LG4pLGk9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj1lLnRleHRBbGlnbnx8InN0YXJ0IixhPWUudGV4dEJhc2VsaW5lfHwiYWxwaGFiZXRpYyIsaT1bMTw8MzAsMTw8MzBdLG89WzAsMF0scz10Lmxlbmd0aCxsPTA7bDxzOysrbClmb3IodmFyIGM9dFtsXSx1PTA7dTwyOysrdSlpW3VdPTB8TWF0aC5taW4oaVt1XSxjW3VdKSxvW3VdPTB8TWF0aC5tYXgob1t1XSxjW3VdKTt2YXIgaD0wO3N3aXRjaChuKXtjYXNlImNlbnRlciI6aD0tLjUqKGlbMF0rb1swXSk7YnJlYWs7Y2FzZSJyaWdodCI6Y2FzZSJlbmQiOmg9LW9bMF07YnJlYWs7Y2FzZSJsZWZ0IjpjYXNlInN0YXJ0IjpoPS1pWzBdO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJ2ZWN0b3JpemUtdGV4dDogVW5yZWNvZ25pemVkIHRleHRBbGlnbjogJyIrbisiJyIpfXZhciBmPTA7c3dpdGNoKGEpe2Nhc2UiaGFuZ2luZyI6Y2FzZSJ0b3AiOmY9LWlbMV07YnJlYWs7Y2FzZSJtaWRkbGUiOmY9LS41KihpWzFdK29bMV0pO2JyZWFrO2Nhc2UiYWxwaGFiZXRpYyI6Y2FzZSJpZGVvZ3JhcGhpYyI6Zj0tMypyO2JyZWFrO2Nhc2UiYm90dG9tIjpmPS1vWzFdO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJ2ZWN0b3JpemUtdGV4dDogVW5yZWNvZ2luaXplZCB0ZXh0QmFzZWxpbmU6ICciK2ErIiciKX12YXIgcD0xL3I7cmV0dXJuImxpbmVIZWlnaHQiaW4gZT9wKj0rZS5saW5lSGVpZ2h0OiJ3aWR0aCJpbiBlP3A9ZS53aWR0aC8ob1swXS1pWzBdKToiaGVpZ2h0ImluIGUmJihwPWUuaGVpZ2h0LyhvWzFdLWlbMV0pKSx0Lm1hcChmdW5jdGlvbih0KXtyZXR1cm5bcCoodFswXStoKSxwKih0WzFdK2YpXX0pfShhLnBvc2l0aW9ucyxlLHIpLGM9YS5lZGdlcyx1PSJjY3ciPT09ZS5vcmllbnRhdGlvbjtpZihvKGksYyksZS5wb2x5Z29uc3x8ZS5wb2x5Z29ufHxlLnBvbHlsaW5lKXtmb3IodmFyIGg9bChjLGkpLGY9bmV3IEFycmF5KGgubGVuZ3RoKSxwPTA7cDxoLmxlbmd0aDsrK3Ape2Zvcih2YXIgZD1oW3BdLGc9bmV3IEFycmF5KGQubGVuZ3RoKSx2PTA7djxkLmxlbmd0aDsrK3Ype2Zvcih2YXIgbT1kW3ZdLHk9bmV3IEFycmF5KG0ubGVuZ3RoKSx4PTA7eDxtLmxlbmd0aDsrK3gpeVt4XT1pW21beF1dLnNsaWNlKCk7dSYmeS5yZXZlcnNlKCksZ1t2XT15fWZbcF09Z31yZXR1cm4gZn1yZXR1cm4gZS50cmlhbmdsZXN8fGUudHJpYW5ndWxhdGV8fGUudHJpYW5nbGU/e2NlbGxzOnMoaSxjLHtkZWxhdW5heTohMSxleHRlcmlvcjohMSxpbnRlcmlvcjohMH0pLHBvc2l0aW9uczppfTp7ZWRnZXM6Yyxwb3NpdGlvbnM6aX19ZnVuY3Rpb24gdyh0LGUscil7dHJ5e3JldHVybiBfKHQsZSxyLCEwKX1jYXRjaCh0KXt9dHJ5e3JldHVybiBfKHQsZSxyLCExKX1jYXRjaCh0KXt9cmV0dXJuIGUucG9seWdvbnN8fGUucG9seWxpbmV8fGUucG9seWdvbj9bXTplLnRyaWFuZ2xlc3x8ZS50cmlhbmd1bGF0ZXx8ZS50cmlhbmdsZT97Y2VsbHM6W10scG9zaXRpb25zOltdfTp7ZWRnZXM6W10scG9zaXRpb25zOltdfX19LHtjZHQyZDoxMDgsImNsZWFuLXBzbGciOjExOCxuZGFycmF5OjQ1MiwicGxhbmFyLWdyYXBoLXRvLXBvbHlsaW5lIjo0NzAsInNpbXBsaWZ5LXBsYW5hci1ncmFwaCI6NTIzLCJzdXJmYWNlLW5ldHMiOjUzMH1dLDU1MTpbZnVuY3Rpb24odCxlLHIpeyFmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtpZigidW5kZWZpbmVkIj09dHlwZW9mIHNlc3x8IXNlcy5va3x8c2VzLm9rKCkpeyJ1bmRlZmluZWQiIT10eXBlb2Ygc2VzJiYoc2VzLndlYWtNYXBQZXJtaXRIb3N0T2JqZWN0cz12KTt2YXIgdD0hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgV2Vha01hcCl7dmFyIHI9V2Vha01hcDtpZigidW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvciYmL0ZpcmVmb3gvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpO2Vsc2V7dmFyIG49bmV3IHIsYT1PYmplY3QuZnJlZXplKHt9KTtpZihuLnNldChhLDEpLDE9PT1uLmdldChhKSlyZXR1cm4gdm9pZChlLmV4cG9ydHM9V2Vha01hcCk7dD0hMH19T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyxvPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxzPU9iamVjdC5pc0V4dGVuc2libGUsbD0id2Vha21hcDoiLGM9bCsiaWRlbnQ6IitNYXRoLnJhbmRvbSgpKyJfX18iO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgY3J5cHRvJiYiZnVuY3Rpb24iPT10eXBlb2YgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyYmImZ1bmN0aW9uIj09dHlwZW9mIEFycmF5QnVmZmVyJiYiZnVuY3Rpb24iPT10eXBlb2YgVWludDhBcnJheSl7dmFyIHU9bmV3IEFycmF5QnVmZmVyKDI1KSxoPW5ldyBVaW50OEFycmF5KHUpO2NyeXB0by5nZXRSYW5kb21WYWx1ZXMoaCksYz1sKyJyYW5kOiIrQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKGgsZnVuY3Rpb24odCl7cmV0dXJuKHQlMzYpLnRvU3RyaW5nKDM2KX0pLmpvaW4oIiIpKyJfX18ifWlmKG8oT2JqZWN0LCJnZXRPd25Qcm9wZXJ0eU5hbWVzIix7dmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIGkodCkuZmlsdGVyKG0pfX0pLCJnZXRQcm9wZXJ0eU5hbWVzImluIE9iamVjdCl7dmFyIGY9T2JqZWN0LmdldFByb3BlcnR5TmFtZXM7byhPYmplY3QsImdldFByb3BlcnR5TmFtZXMiLHt2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gZih0KS5maWx0ZXIobSl9fSl9IWZ1bmN0aW9uKCl7dmFyIHQ9T2JqZWN0LmZyZWV6ZTtvKE9iamVjdCwiZnJlZXplIix7dmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHkoZSksdChlKX19KTt2YXIgZT1PYmplY3Quc2VhbDtvKE9iamVjdCwic2VhbCIse3ZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB5KHQpLGUodCl9fSk7dmFyIHI9T2JqZWN0LnByZXZlbnRFeHRlbnNpb25zO28oT2JqZWN0LCJwcmV2ZW50RXh0ZW5zaW9ucyIse3ZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB5KHQpLHIodCl9fSl9KCk7dmFyIHA9ITEsZD0wLGc9ZnVuY3Rpb24oKXt0aGlzIGluc3RhbmNlb2YgZ3x8YigpO3ZhciB0PVtdLGU9W10scj1kKys7cmV0dXJuIE9iamVjdC5jcmVhdGUoZy5wcm90b3R5cGUse2dldF9fXzp7dmFsdWU6eChmdW5jdGlvbihuLGEpe3ZhciBpLG89eShuKTtyZXR1cm4gbz9yIGluIG8/b1tyXTphOihpPXQuaW5kZXhPZihuKSk+PTA/ZVtpXTphfSl9LGhhc19fXzp7dmFsdWU6eChmdW5jdGlvbihlKXt2YXIgbj15KGUpO3JldHVybiBuP3IgaW4gbjp0LmluZGV4T2YoZSk+PTB9KX0sc2V0X19fOnt2YWx1ZTp4KGZ1bmN0aW9uKG4sYSl7dmFyIGksbz15KG4pO3JldHVybiBvP29bcl09YTooaT10LmluZGV4T2YobikpPj0wP2VbaV09YTooaT10Lmxlbmd0aCxlW2ldPWEsdFtpXT1uKSx0aGlzfSl9LGRlbGV0ZV9fXzp7dmFsdWU6eChmdW5jdGlvbihuKXt2YXIgYSxpLG89eShuKTtyZXR1cm4gbz9yIGluIG8mJmRlbGV0ZSBvW3JdOiEoKGE9dC5pbmRleE9mKG4pKTwwfHwoaT10Lmxlbmd0aC0xLHRbYV09dm9pZCAwLGVbYV09ZVtpXSx0W2FdPXRbaV0sdC5sZW5ndGg9aSxlLmxlbmd0aD1pLDApKX0pfX0pfTtnLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKE9iamVjdC5wcm90b3R5cGUse2dldDp7dmFsdWU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5nZXRfX18odCxlKX0sd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfSxoYXM6e3ZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmhhc19fXyh0KX0sd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfSxzZXQ6e3ZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuc2V0X19fKHQsZSl9LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0sZGVsZXRlOnt2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kZWxldGVfX18odCl9LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSwiZnVuY3Rpb24iPT10eXBlb2Ygcj9mdW5jdGlvbigpe2Z1bmN0aW9uIG4oKXt0aGlzIGluc3RhbmNlb2YgZ3x8YigpO3ZhciBlLG49bmV3IHIsYT12b2lkIDAsaT0hMTtyZXR1cm4gZT10P2Z1bmN0aW9uKHQsZSl7cmV0dXJuIG4uc2V0KHQsZSksbi5oYXModCl8fChhfHwoYT1uZXcgZyksYS5zZXQodCxlKSksdGhpc306ZnVuY3Rpb24odCxlKXtpZihpKXRyeXtuLnNldCh0LGUpfWNhdGNoKHIpe2F8fChhPW5ldyBnKSxhLnNldF9fXyh0LGUpfWVsc2Ugbi5zZXQodCxlKTtyZXR1cm4gdGhpc30sT2JqZWN0LmNyZWF0ZShnLnByb3RvdHlwZSx7Z2V0X19fOnt2YWx1ZTp4KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGE/bi5oYXModCk/bi5nZXQodCk6YS5nZXRfX18odCxlKTpuLmdldCh0LGUpfSl9LGhhc19fXzp7dmFsdWU6eChmdW5jdGlvbih0KXtyZXR1cm4gbi5oYXModCl8fCEhYSYmYS5oYXNfX18odCl9KX0sc2V0X19fOnt2YWx1ZTp4KGUpfSxkZWxldGVfX186e3ZhbHVlOngoZnVuY3Rpb24odCl7dmFyIGU9ISFuLmRlbGV0ZSh0KTtyZXR1cm4gYSYmYS5kZWxldGVfX18odCl8fGV9KX0scGVybWl0SG9zdE9iamVjdHNfX186e3ZhbHVlOngoZnVuY3Rpb24odCl7aWYodCE9PXYpdGhyb3cgbmV3IEVycm9yKCJib2d1cyBjYWxsIHRvIHBlcm1pdEhvc3RPYmplY3RzX19fIik7aT0hMH0pfX0pfXQmJiJ1bmRlZmluZWQiIT10eXBlb2YgUHJveHkmJihQcm94eT12b2lkIDApLG4ucHJvdG90eXBlPWcucHJvdG90eXBlLGUuZXhwb3J0cz1uLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXZWFrTWFwLnByb3RvdHlwZSwiY29uc3RydWN0b3IiLHt2YWx1ZTpXZWFrTWFwLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSl9KCk6KCJ1bmRlZmluZWQiIT10eXBlb2YgUHJveHkmJihQcm94eT12b2lkIDApLGUuZXhwb3J0cz1nKX1mdW5jdGlvbiB2KHQpe3QucGVybWl0SG9zdE9iamVjdHNfX18mJnQucGVybWl0SG9zdE9iamVjdHNfX18odil9ZnVuY3Rpb24gbSh0KXtyZXR1cm4hKHQuc3Vic3RyKDAsbC5sZW5ndGgpPT1sJiYiX19fIj09PXQuc3Vic3RyKHQubGVuZ3RoLTMpKX1mdW5jdGlvbiB5KHQpe2lmKHQhPT1PYmplY3QodCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiTm90IGFuIG9iamVjdDogIit0KTt2YXIgZT10W2NdO2lmKGUmJmUua2V5PT09dClyZXR1cm4gZTtpZihzKHQpKXtlPXtrZXk6dH07dHJ5e3JldHVybiBvKHQsYyx7dmFsdWU6ZSx3cml0YWJsZTohMSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMX0pLGV9Y2F0Y2godCl7cmV0dXJufX19ZnVuY3Rpb24geCh0KXtyZXR1cm4gdC5wcm90b3R5cGU9bnVsbCxPYmplY3QuZnJlZXplKHQpfWZ1bmN0aW9uIGIoKXtwfHwidW5kZWZpbmVkIj09dHlwZW9mIGNvbnNvbGV8fChwPSEwLGNvbnNvbGUud2FybigiV2Vha01hcCBzaG91bGQgYmUgaW52b2tlZCBhcyBuZXcgV2Vha01hcCgpLCBub3QgV2Vha01hcCgpLiBUaGlzIHdpbGwgYmUgYW4gZXJyb3IgaW4gdGhlIGZ1dHVyZS4iKSl9fSgpfSx7fV0sNTUyOltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi9oaWRkZW4tc3RvcmUuanMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgdD17fTtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoKCJvYmplY3QiIT10eXBlb2YgZXx8bnVsbD09PWUpJiYiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoIldlYWttYXAtc2hpbTogS2V5IG11c3QgYmUgb2JqZWN0Iik7dmFyIHI9ZS52YWx1ZU9mKHQpO3JldHVybiByJiZyLmlkZW50aXR5PT09dD9yOm4oZSx0KX19fSx7Ii4vaGlkZGVuLXN0b3JlLmpzIjo1NTN9XSw1NTM6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj17aWRlbnRpdHk6ZX0sbj10LnZhbHVlT2Y7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJ2YWx1ZU9mIix7dmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHQhPT1lP24uYXBwbHkodGhpcyxhcmd1bWVudHMpOnJ9LHdyaXRhYmxlOiEwfSkscn19LHt9XSw1NTQ6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCIuL2NyZWF0ZS1zdG9yZS5qcyIpO2UuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciB0PW4oKTtyZXR1cm57Z2V0OmZ1bmN0aW9uKGUscil7dmFyIG49dChlKTtyZXR1cm4gbi5oYXNPd25Qcm9wZXJ0eSgidmFsdWUiKT9uLnZhbHVlOnJ9LHNldDpmdW5jdGlvbihlLHIpe3JldHVybiB0KGUpLnZhbHVlPXIsdGhpc30saGFzOmZ1bmN0aW9uKGUpe3JldHVybiJ2YWx1ZSJpbiB0KGUpfSxkZWxldGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGRlbGV0ZSB0KGUpLnZhbHVlfX19fSx7Ii4vY3JlYXRlLXN0b3JlLmpzIjo1NTJ9XSw1NTU6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCJnZXQtY2FudmFzLWNvbnRleHQiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG4oIndlYmdsIix0KX19LHsiZ2V0LWNhbnZhcy1jb250ZXh0IjoyMzV9XSw1NTY6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCIuLi9tYWluIiksYT10KCJvYmplY3QtYXNzaWduIiksaT1uLmluc3RhbmNlKCk7ZnVuY3Rpb24gbyh0KXt0aGlzLmxvY2FsPXRoaXMucmVnaW9uYWxPcHRpb25zW3R8fCIiXXx8dGhpcy5yZWdpb25hbE9wdGlvbnNbIiJdfW8ucHJvdG90eXBlPW5ldyBuLmJhc2VDYWxlbmRhcixhKG8ucHJvdG90eXBlLHtuYW1lOiJDaGluZXNlIixqZEVwb2NoOjE3MjE0MjUuNSxoYXNZZWFyWmVybzohMSxtaW5Nb250aDowLGZpcnN0TW9udGg6MCxtaW5EYXk6MSxyZWdpb25hbE9wdGlvbnM6eyIiOntuYW1lOiJDaGluZXNlIixlcG9jaHM6WyJCRUMiLCJFQyJdLG1vbnRoTnVtYmVyczpmdW5jdGlvbih0LGUpe2lmKCJzdHJpbmciPT10eXBlb2YgdCl7dmFyIHI9dC5tYXRjaChsKTtyZXR1cm4gcj9yWzBdOiIifXZhciBuPXRoaXMuX3ZhbGlkYXRlWWVhcih0KSxhPXQubW9udGgoKSxpPSIiK3RoaXMudG9DaGluZXNlTW9udGgobixhKTtyZXR1cm4gZSYmaS5sZW5ndGg8MiYmKGk9IjAiK2kpLHRoaXMuaXNJbnRlcmNhbGFyeU1vbnRoKG4sYSkmJihpKz0iaSIpLGl9LG1vbnRoTmFtZXM6ZnVuY3Rpb24odCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXt2YXIgZT10Lm1hdGNoKGMpO3JldHVybiBlP2VbMF06IiJ9dmFyIHI9dGhpcy5fdmFsaWRhdGVZZWFyKHQpLG49dC5tb250aCgpLGE9WyJcdTRlMDBcdTY3MDgiLCJcdTRlOGNcdTY3MDgiLCJcdTRlMDlcdTY3MDgiLCJcdTU2ZGJcdTY3MDgiLCJcdTRlOTRcdTY3MDgiLCJcdTUxNmRcdTY3MDgiLCJcdTRlMDNcdTY3MDgiLCJcdTUxNmJcdTY3MDgiLCJcdTRlNWRcdTY3MDgiLCJcdTUzNDFcdTY3MDgiLCJcdTUzNDFcdTRlMDBcdTY3MDgiLCJcdTUzNDFcdTRlOGNcdTY3MDgiXVt0aGlzLnRvQ2hpbmVzZU1vbnRoKHIsbiktMV07cmV0dXJuIHRoaXMuaXNJbnRlcmNhbGFyeU1vbnRoKHIsbikmJihhPSJcdTk1ZjAiK2EpLGF9LG1vbnRoTmFtZXNTaG9ydDpmdW5jdGlvbih0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpe3ZhciBlPXQubWF0Y2godSk7cmV0dXJuIGU/ZVswXToiIn12YXIgcj10aGlzLl92YWxpZGF0ZVllYXIodCksbj10Lm1vbnRoKCksYT1bIlx1NGUwMCIsIlx1NGU4YyIsIlx1NGUwOSIsIlx1NTZkYiIsIlx1NGU5NCIsIlx1NTE2ZCIsIlx1NGUwMyIsIlx1NTE2YiIsIlx1NGU1ZCIsIlx1NTM0MSIsIlx1NTM0MVx1NGUwMCIsIlx1NTM0MVx1NGU4YyJdW3RoaXMudG9DaGluZXNlTW9udGgocixuKS0xXTtyZXR1cm4gdGhpcy5pc0ludGVyY2FsYXJ5TW9udGgocixuKSYmKGE9Ilx1OTVmMCIrYSksYX0scGFyc2VNb250aDpmdW5jdGlvbih0LGUpe3Q9dGhpcy5fdmFsaWRhdGVZZWFyKHQpO3ZhciByLG49cGFyc2VJbnQoZSk7aWYoaXNOYU4obikpIlx1OTVmMCI9PT1lWzBdJiYocj0hMCxlPWUuc3Vic3RyaW5nKDEpKSwiXHU2NzA4Ij09PWVbZS5sZW5ndGgtMV0mJihlPWUuc3Vic3RyaW5nKDAsZS5sZW5ndGgtMSkpLG49MStbIlx1NGUwMCIsIlx1NGU4YyIsIlx1NGUwOSIsIlx1NTZkYiIsIlx1NGU5NCIsIlx1NTE2ZCIsIlx1NGUwMyIsIlx1NTE2YiIsIlx1NGU1ZCIsIlx1NTM0MSIsIlx1NTM0MVx1NGUwMCIsIlx1NTM0MVx1NGU4YyJdLmluZGV4T2YoZSk7ZWxzZXt2YXIgYT1lW2UubGVuZ3RoLTFdO3I9ImkiPT09YXx8IkkiPT09YX1yZXR1cm4gdGhpcy50b01vbnRoSW5kZXgodCxuLHIpfSxkYXlOYW1lczpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sZGF5TmFtZXNTaG9ydDpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLGRheU5hbWVzTWluOlsiU3UiLCJNbyIsIlR1IiwiV2UiLCJUaCIsIkZyIiwiU2EiXSxkaWdpdHM6bnVsbCxkYXRlRm9ybWF0OiJ5eXl5L21tL2RkIixmaXJzdERheToxLGlzUlRMOiExfX0sX3ZhbGlkYXRlWWVhcjpmdW5jdGlvbih0LGUpe2lmKHQueWVhciYmKHQ9dC55ZWFyKCkpLCJudW1iZXIiIT10eXBlb2YgdHx8dDwxODg4fHx0PjIxMTEpdGhyb3cgZS5yZXBsYWNlKC9cezBcfS8sdGhpcy5sb2NhbC5uYW1lKTtyZXR1cm4gdH0sdG9Nb250aEluZGV4OmZ1bmN0aW9uKHQsZSxyKXt2YXIgYT10aGlzLmludGVyY2FsYXJ5TW9udGgodCk7aWYociYmZSE9PWF8fGU8MXx8ZT4xMil0aHJvdyBuLmxvY2FsLmludmFsaWRNb250aC5yZXBsYWNlKC9cezBcfS8sdGhpcy5sb2NhbC5uYW1lKTtyZXR1cm4gYT8hciYmZTw9YT9lLTE6ZTplLTF9LHRvQ2hpbmVzZU1vbnRoOmZ1bmN0aW9uKHQsZSl7dC55ZWFyJiYoZT0odD10LnllYXIoKSkubW9udGgoKSk7dmFyIHI9dGhpcy5pbnRlcmNhbGFyeU1vbnRoKHQpO2lmKGU8MHx8ZT4ocj8xMjoxMSkpdGhyb3cgbi5sb2NhbC5pbnZhbGlkTW9udGgucmVwbGFjZSgvXHswXH0vLHRoaXMubG9jYWwubmFtZSk7cmV0dXJuIHI/ZTxyP2UrMTplOmUrMX0saW50ZXJjYWxhcnlNb250aDpmdW5jdGlvbih0KXtyZXR1cm4gdD10aGlzLl92YWxpZGF0ZVllYXIodCksaFt0LWhbMF1dPj4xM30saXNJbnRlcmNhbGFyeU1vbnRoOmZ1bmN0aW9uKHQsZSl7dC55ZWFyJiYoZT0odD10LnllYXIoKSkubW9udGgoKSk7dmFyIHI9dGhpcy5pbnRlcmNhbGFyeU1vbnRoKHQpO3JldHVybiEhciYmcj09PWV9LGxlYXBZZWFyOmZ1bmN0aW9uKHQpe3JldHVybiAwIT09dGhpcy5pbnRlcmNhbGFyeU1vbnRoKHQpfSx3ZWVrT2ZZZWFyOmZ1bmN0aW9uKHQsZSxyKXt2YXIgYSxvPXRoaXMuX3ZhbGlkYXRlWWVhcih0LG4ubG9jYWwuaW52YWxpZHllYXIpLHM9ZltvLWZbMF1dLGw9cz4+OSY0MDk1LGM9cz4+NSYxNSx1PTMxJnM7KGE9aS5uZXdEYXRlKGwsYyx1KSkuYWRkKDQtKGEuZGF5T2ZXZWVrKCl8fDcpLCJkIik7dmFyIGg9dGhpcy50b0pEKHQsZSxyKS1hLnRvSkQoKTtyZXR1cm4gMStNYXRoLmZsb29yKGgvNyl9LG1vbnRoc0luWWVhcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sZWFwWWVhcih0KT8xMzoxMn0sZGF5c0luTW9udGg6ZnVuY3Rpb24odCxlKXt0LnllYXImJihlPXQubW9udGgoKSx0PXQueWVhcigpKSx0PXRoaXMuX3ZhbGlkYXRlWWVhcih0KTt2YXIgcj1oW3QtaFswXV07aWYoZT4ocj4+MTM/MTI6MTEpKXRocm93IG4ubG9jYWwuaW52YWxpZE1vbnRoLnJlcGxhY2UoL1x7MFx9Lyx0aGlzLmxvY2FsLm5hbWUpO3JldHVybiByJjE8PDEyLWU/MzA6Mjl9LHdlZWtEYXk6ZnVuY3Rpb24odCxlLHIpe3JldHVybih0aGlzLmRheU9mV2Vlayh0LGUscil8fDcpPDZ9LHRvSkQ6ZnVuY3Rpb24odCxlLHIpe3ZhciBhPXRoaXMuX3ZhbGlkYXRlKHQscyxyLG4ubG9jYWwuaW52YWxpZERhdGUpO3Q9dGhpcy5fdmFsaWRhdGVZZWFyKGEueWVhcigpKSxlPWEubW9udGgoKSxyPWEuZGF5KCk7dmFyIG89dGhpcy5pc0ludGVyY2FsYXJ5TW9udGgodCxlKSxzPXRoaXMudG9DaGluZXNlTW9udGgodCxlKSxsPWZ1bmN0aW9uKHQsZSxyLG4sYSl7dmFyIGksbyxzO2lmKCJvYmplY3QiPT10eXBlb2YgdClvPXQsaT1lfHx7fTtlbHNle3ZhciBsPSJudW1iZXIiPT10eXBlb2YgdCYmdD49MTg4OCYmdDw9MjExMTtpZighbCl0aHJvdyBuZXcgRXJyb3IoIkx1bmFyIHllYXIgb3V0c2lkZSByYW5nZSAxODg4LTIxMTEiKTt2YXIgYz0ibnVtYmVyIj09dHlwZW9mIGUmJmU+PTEmJmU8PTEyO2lmKCFjKXRocm93IG5ldyBFcnJvcigiTHVuYXIgbW9udGggb3V0c2lkZSByYW5nZSAxIC0gMTIiKTt2YXIgdSxwPSJudW1iZXIiPT10eXBlb2YgciYmcj49MSYmcjw9MzA7aWYoIXApdGhyb3cgbmV3IEVycm9yKCJMdW5hciBkYXkgb3V0c2lkZSByYW5nZSAxIC0gMzAiKTsib2JqZWN0Ij09dHlwZW9mIG4/KHU9ITEsaT1uKToodT0hIW4saT1hfHx7fSksbz17eWVhcjp0LG1vbnRoOmUsZGF5OnIsaXNJbnRlcmNhbGFyeTp1fX1zPW8uZGF5LTE7dmFyIGQsZz1oW28ueWVhci1oWzBdXSx2PWc+PjEzO2Q9dj9vLm1vbnRoPnY/by5tb250aDpvLmlzSW50ZXJjYWxhcnk/by5tb250aDpvLm1vbnRoLTE6by5tb250aC0xO2Zvcih2YXIgbT0wO208ZDttKyspe3ZhciB5PWcmMTw8MTItbT8zMDoyOTtzKz15fXZhciB4PWZbby55ZWFyLWZbMF1dLGI9bmV3IERhdGUoeD4+OSY0MDk1LCh4Pj41JjE1KS0xLCgzMSZ4KStzKTtyZXR1cm4gaS55ZWFyPWIuZ2V0RnVsbFllYXIoKSxpLm1vbnRoPTErYi5nZXRNb250aCgpLGkuZGF5PWIuZ2V0RGF0ZSgpLGl9KHQscyxyLG8pO3JldHVybiBpLnRvSkQobC55ZWFyLGwubW9udGgsbC5kYXkpfSxmcm9tSkQ6ZnVuY3Rpb24odCl7dmFyIGU9aS5mcm9tSkQodCkscj1mdW5jdGlvbih0LGUscixuKXt2YXIgYSxpO2lmKCJvYmplY3QiPT10eXBlb2YgdClhPXQsaT1lfHx7fTtlbHNle3ZhciBvPSJudW1iZXIiPT10eXBlb2YgdCYmdD49MTg4OCYmdDw9MjExMTtpZighbyl0aHJvdyBuZXcgRXJyb3IoIlNvbGFyIHllYXIgb3V0c2lkZSByYW5nZSAxODg4LTIxMTEiKTt2YXIgcz0ibnVtYmVyIj09dHlwZW9mIGUmJmU+PTEmJmU8PTEyO2lmKCFzKXRocm93IG5ldyBFcnJvcigiU29sYXIgbW9udGggb3V0c2lkZSByYW5nZSAxIC0gMTIiKTt2YXIgbD0ibnVtYmVyIj09dHlwZW9mIHImJnI+PTEmJnI8PTMxO2lmKCFsKXRocm93IG5ldyBFcnJvcigiU29sYXIgZGF5IG91dHNpZGUgcmFuZ2UgMSAtIDMxIik7YT17eWVhcjp0LG1vbnRoOmUsZGF5OnJ9LGk9bnx8e319dmFyIGM9ZlthLnllYXItZlswXV0sdT1hLnllYXI8PDl8YS5tb250aDw8NXxhLmRheTtpLnllYXI9dT49Yz9hLnllYXI6YS55ZWFyLTEsYz1mW2kueWVhci1mWzBdXTt2YXIgcCxkPW5ldyBEYXRlKGM+PjkmNDA5NSwoYz4+NSYxNSktMSwzMSZjKSxnPW5ldyBEYXRlKGEueWVhcixhLm1vbnRoLTEsYS5kYXkpO3A9TWF0aC5yb3VuZCgoZy1kKS84NjRlNSk7dmFyIHYsbT1oW2kueWVhci1oWzBdXTtmb3Iodj0wO3Y8MTM7disrKXt2YXIgeT1tJjE8PDEyLXY/MzA6Mjk7aWYocDx5KWJyZWFrO3AtPXl9dmFyIHg9bT4+MTM7IXh8fHY8eD8oaS5pc0ludGVyY2FsYXJ5PSExLGkubW9udGg9MSt2KTp2PT09eD8oaS5pc0ludGVyY2FsYXJ5PSEwLGkubW9udGg9dik6KGkuaXNJbnRlcmNhbGFyeT0hMSxpLm1vbnRoPXYpO3JldHVybiBpLmRheT0xK3AsaX0oZS55ZWFyKCksZS5tb250aCgpLGUuZGF5KCkpLG49dGhpcy50b01vbnRoSW5kZXgoci55ZWFyLHIubW9udGgsci5pc0ludGVyY2FsYXJ5KTtyZXR1cm4gdGhpcy5uZXdEYXRlKHIueWVhcixuLHIuZGF5KX0sZnJvbVN0cmluZzpmdW5jdGlvbih0KXt2YXIgZT10Lm1hdGNoKHMpLHI9dGhpcy5fdmFsaWRhdGVZZWFyKCtlWzFdKSxuPStlWzJdLGE9ISFlWzNdLGk9dGhpcy50b01vbnRoSW5kZXgocixuLGEpLG89K2VbNF07cmV0dXJuIHRoaXMubmV3RGF0ZShyLGksbyl9LGFkZDpmdW5jdGlvbih0LGUscil7dmFyIG49dC55ZWFyKCksYT10Lm1vbnRoKCksaT10aGlzLmlzSW50ZXJjYWxhcnlNb250aChuLGEpLHM9dGhpcy50b0NoaW5lc2VNb250aChuLGEpLGw9T2JqZWN0LmdldFByb3RvdHlwZU9mKG8ucHJvdG90eXBlKS5hZGQuY2FsbCh0aGlzLHQsZSxyKTtpZigieSI9PT1yKXt2YXIgYz1sLnllYXIoKSx1PWwubW9udGgoKSxoPXRoaXMuaXNJbnRlcmNhbGFyeU1vbnRoKGMscyksZj1pJiZoP3RoaXMudG9Nb250aEluZGV4KGMscywhMCk6dGhpcy50b01vbnRoSW5kZXgoYyxzLCExKTtmIT09dSYmbC5tb250aChmKX1yZXR1cm4gbH19KTt2YXIgcz0vXlxzKigtP1xkXGRcZFxkfFxkXGQpWy0vXShcZD9cZCkoW2lJXT8pWy0vXShcZD9cZCkvbSxsPS9eXGQ/XGRbaUldPy9tLGM9L15cdTk1ZjA/XHU1MzQxP1tcdTRlMDBcdTRlOGNcdTRlMDlcdTU2ZGJcdTRlOTRcdTUxNmRcdTRlMDNcdTUxNmJcdTRlNWRdP1x1NjcwOC9tLHU9L15cdTk1ZjA/XHU1MzQxP1tcdTRlMDBcdTRlOGNcdTRlMDlcdTU2ZGJcdTRlOTRcdTUxNmRcdTRlMDNcdTUxNmJcdTRlNWRdPy9tO24uY2FsZW5kYXJzLmNoaW5lc2U9bzt2YXIgaD1bMTg4Nyw1NzgwLDU4MDIsMTkxNTcsMjc0Miw1MDM1OSwxMTk4LDI2NDYsNDYzNzgsNzQ2NiwzNDEyLDMwMTIyLDU0ODIsNjc5NDksMjM5Niw1Mjk0LDQzNTk3LDY3MzIsNjk1NCwzNjE4MSwyNzcyLDQ5NTQsMTg3ODEsMjM5Niw1NDQyNyw1Mjc0LDY3MzAsNDc3ODEsNTgwMCw2ODY4LDIxMjEwLDQ3OTAsNTk3MDMsMjM1MCw1MjcwLDQ2NjY3LDM0MDIsMzQ5NiwzODMyNSwxMzg4LDQ3ODIsMTg3MzUsMjM1MCw1MjM3NCw2ODA0LDc0OTgsNDQ0NTcsMjkwNiwxMzg4LDI5Mjk0LDQ3MDAsNjM3ODksNjQ0Miw2ODA0LDU2MTM4LDU4MDIsMjc3MiwzODIzNSwxMjEwLDQ2OTgsMjI4MjcsNTQxOCw2MzEyNSwzNDc2LDU4MDIsNDM3MDEsMjQ4NCw1MzAyLDI3MjIzLDI2NDYsNzA5NTQsNzQ2NiwzNDEyLDU0Njk4LDU0ODIsMjQxMiwzODA2Miw1Mjk0LDI2MzYsMzIwMzgsNjk1NCw2MDI0NSwyNzcyLDQ4MjYsNDMzNTcsMjM5NCw1Mjc0LDM5NTAxLDY3MzAsNzIzNTcsNTgwMCw1ODQ0LDUzOTc4LDQ3OTAsMjM1OCwzODAzOSw1MjcwLDg3NjI3LDM0MDIsMzQ5Niw1NDcwOCw1NDg0LDQ3ODIsNDMzMTEsMjM1MCwzMjIyLDI3OTc4LDc0OTgsNjg5NjUsMjkwNCw1NDg0LDQ1Njc3LDQ3MDAsNjQ0NCwzOTU3Myw2ODA0LDY5ODYsMTkyODUsMjc3Miw2MjgxMSwxMjEwLDQ2OTgsNDc0MDMsNTQxOCw1NzgwLDM4NTcwLDU1NDYsNzY0NjksMjQyMCw1MzAyLDUxNzk5LDI2NDYsNTQxNCwzNjUwMSwzNDEyLDU1NDYsMTg4NjksMjQxMiw1NDQ0Niw1Mjc2LDY3MzIsNDg0MjIsNjgyMiwyOTAwLDI4MDEwLDQ4MjYsOTI1MDksMjM5NCw1Mjc0LDU1ODgzLDY3MzAsNjgyMCw0Nzk1Niw1ODEyLDI3NzgsMTg3NzksMjM1OCw2MjYxNSw1MjcwLDU0NTAsNDY3NTcsMzQ5Miw1NTU2LDI3MzE4LDQ3MTgsNjc4ODcsMjM1MCwzMjIyLDUyNTU0LDc0OTgsMzQyOCwzODI1Miw1NDY4LDQ3MDAsMzEwMjIsNjQ0NCw2NDE0OSw2ODA0LDY5ODYsNDM4NjEsMjc3Miw1MzM4LDM1NDIxLDI2NTAsNzA5NTUsNTQxOCw1NzgwLDU0OTU0LDU1NDYsMjc0MCwzODA3NCw1MzAyLDI2NDYsMjk5OTEsMzM2Niw2MTAxMSwzNDEyLDU1NDYsNDM0NDUsMjQxMiw1Mjk0LDM1NDA2LDY3MzIsNzI5OTgsNjgyMCw2OTk2LDUyNTg2LDI3NzgsMjM5NiwzODA0NSw1Mjc0LDY2OTgsMjMzMzMsNjgyMCw2NDMzOCw1ODEyLDI3NDYsNDMzNTUsMjM1OCw1MjcwLDM5NDk5LDU0NTAsNzk1MjUsMzQ5Miw1NTQ4XSxmPVsxODg3LDk2NjczMiw5NjcyMzEsOTY3NzMzLDk2ODI2NSw5Njg3NjYsOTY5Mjk3LDk2OTc5OCw5NzAyOTgsOTcwODI5LDk3MTMzMCw5NzE4MzAsOTcyMzYyLDk3Mjg2Myw5NzMzOTUsOTczODk2LDk3NDM5Nyw5NzQ5MjgsOTc1NDI4LDk3NTkyOSw5NzY0NjEsOTc2OTYyLDk3NzQ2Miw5Nzc5OTQsOTc4NDk0LDk3OTAyNiw5Nzk1MjYsOTgwMDI2LDk4MDU1OCw5ODEwNTksOTgxNTU5LDk4MjA5MSw5ODI1OTMsOTgzMTI0LDk4MzYyNCw5ODQxMjQsOTg0NjU2LDk4NTE1Nyw5ODU2NTYsOTg2MTg5LDk4NjY5MCw5ODcxOTEsOTg3NzIyLDk4ODIyMiw5ODg3NTMsOTg5MjU0LDk4OTc1NCw5OTAyODYsOTkwNzg4LDk5MTI4OCw5OTE4MTksOTkyMzE5LDk5Mjg1MSw5OTMzNTIsOTkzODUxLDk5NDM4Myw5OTQ4ODUsOTk1Mzg1LDk5NTkxNyw5OTY0MTgsOTk2OTE4LDk5NzQ1MCw5OTc5NDksOTk4NDgxLDk5ODk4Miw5OTk0ODMsMTAwMDAxNCwxMDAwNTE1LDEwMDEwMTYsMTAwMTU0OCwxMDAyMDQ3LDEwMDI1NzgsMTAwMzA4MCwxMDAzNTgwLDEwMDQxMTEsMTAwNDYxMywxMDA1MTEzLDEwMDU2NDUsMTAwNjE0NiwxMDA2NjQ1LDEwMDcxNzcsMTAwNzY3OCwxMDA4MjA5LDEwMDg3MTAsMTAwOTIxMSwxMDA5NzQzLDEwMTAyNDMsMTAxMDc0MywxMDExMjc1LDEwMTE3NzUsMTAxMjMwNiwxMDEyODA3LDEwMTMzMDgsMTAxMzg0MCwxMDE0MzQxLDEwMTQ4NDEsMTAxNTM3MywxMDE1ODc0LDEwMTY0MDQsMTAxNjkwNSwxMDE3NDA1LDEwMTc5MzcsMTAxODQzOCwxMDE4OTM5LDEwMTk0NzEsMTAxOTk3MiwxMDIwNDcxLDEwMjEwMDIsMTAyMTUwMywxMDIyMDM1LDEwMjI1MzUsMTAyMzAzNiwxMDIzNTY4LDEwMjQwNjksMTAyNDU2OCwxMDI1MTAwLDEwMjU2MDEsMTAyNjEwMiwxMDI2NjMzLDEwMjcxMzMsMTAyNzY2NiwxMDI4MTY3LDEwMjg2NjYsMTAyOTE5OCwxMDI5Njk5LDEwMzAxOTksMTAzMDczMCwxMDMxMjMxLDEwMzE3NjMsMTAzMjI2NCwxMDMyNzY0LDEwMzMyOTYsMTAzMzc5NywxMDM0Mjk3LDEwMzQ4MjgsMTAzNTMyOSwxMDM1ODMwLDEwMzYzNjIsMTAzNjg2MSwxMDM3MzkzLDEwMzc4OTQsMTAzODM5NCwxMDM4OTI1LDEwMzk0MjcsMTAzOTkyNywxMDQwNDU5LDEwNDA5NTksMTA0MTQ5MSwxMDQxOTkyLDEwNDI0OTIsMTA0MzAyMywxMDQzNTI0LDEwNDQwMjQsMTA0NDU1NiwxMDQ1MDU3LDEwNDU1NTgsMTA0NjA5MCwxMDQ2NTkwLDEwNDcxMjEsMTA0NzYyMiwxMDQ4MTIyLDEwNDg2NTQsMTA0OTE1NCwxMDQ5NjU1LDEwNTAxODcsMTA1MDY4OSwxMDUxMjE5LDEwNTE3MjAsMTA1MjIyMCwxMDUyNzUxLDEwNTMyNTIsMTA1Mzc1MiwxMDU0Mjg0LDEwNTQ3ODYsMTA1NTI4NSwxMDU1ODE3LDEwNTYzMTcsMTA1Njg0OSwxMDU3MzQ5LDEwNTc4NTAsMTA1ODM4MiwxMDU4ODgzLDEwNTkzODMsMTA1OTkxNSwxMDYwNDE1LDEwNjA5NDcsMTA2MTQ0NywxMDYxOTQ3LDEwNjI0NzksMTA2Mjk4MSwxMDYzNDgwLDEwNjQwMTIsMTA2NDUxNCwxMDY1MDE0LDEwNjU1NDUsMTA2NjA0NSwxMDY2NTc3LDEwNjcwNzgsMTA2NzU3OCwxMDY4MTEwLDEwNjg2MTEsMTA2OTExMiwxMDY5NjQyLDEwNzAxNDIsMTA3MDY3NCwxMDcxMTc1LDEwNzE2NzUsMTA3MjIwNywxMDcyNzA5LDEwNzMyMDksMTA3Mzc0MCwxMDc0MjQxLDEwNzQ3NDEsMTA3NTI3MywxMDc1NzczLDEwNzYzMDUsMTA3NjgwNywxMDc3MzA4LDEwNzc4MzksMTA3ODM0MCwxMDc4ODQwLDEwNzkzNzIsMTA3OTg3MSwxMDgwNDAzLDEwODA5MDRdfSx7Ii4uL21haW4iOjU3MCwib2JqZWN0LWFzc2lnbiI6NDU2fV0sNTU3OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi4vbWFpbiIpLGE9dCgib2JqZWN0LWFzc2lnbiIpO2Z1bmN0aW9uIGkodCl7dGhpcy5sb2NhbD10aGlzLnJlZ2lvbmFsT3B0aW9uc1t0fHwiIl18fHRoaXMucmVnaW9uYWxPcHRpb25zWyIiXX1pLnByb3RvdHlwZT1uZXcgbi5iYXNlQ2FsZW5kYXIsYShpLnByb3RvdHlwZSx7bmFtZToiQ29wdGljIixqZEVwb2NoOjE4MjUwMjkuNSxkYXlzUGVyTW9udGg6WzMwLDMwLDMwLDMwLDMwLDMwLDMwLDMwLDMwLDMwLDMwLDMwLDVdLGhhc1llYXJaZXJvOiExLG1pbk1vbnRoOjEsZmlyc3RNb250aDoxLG1pbkRheToxLHJlZ2lvbmFsT3B0aW9uczp7IiI6e25hbWU6IkNvcHRpYyIsZXBvY2hzOlsiQkFNIiwiQU0iXSxtb250aE5hbWVzOlsiVGhvdXQiLCJQYW9waSIsIkhhdGhvciIsIktvaWFrIiwiVG9iaSIsIk1lc2hpciIsIlBhcmVtaGF0IiwiUGFyZW1vdWRlIiwiUGFzaG9ucyIsIlBhb25pIiwiRXBpcCIsIk1lc29yaSIsIlBpIEtvZ2kgRW5hdm90Il0sbW9udGhOYW1lc1Nob3J0OlsiVGhvIiwiUGFvIiwiSGF0aCIsIktvaSIsIlRvYiIsIk1lc2giLCJQYXQiLCJQYWQiLCJQYXNoIiwiUGFvIiwiRXBpIiwiTWVzbyIsIlBpSyJdLGRheU5hbWVzOlsiVGt5cmlha2EiLCJQZXNuYXUiLCJQc2hvbWVudCIsIlBlZnRvb3UiLCJQdGlvdSIsIlBzb291IiwiUHNhYmJhdG9uIl0sZGF5TmFtZXNTaG9ydDpbIlRreSIsIlBlcyIsIlBzaCIsIlBlZiIsIlB0aSIsIlBzbyIsIlBzYSJdLGRheU5hbWVzTWluOlsiVGsiLCJQZXMiLCJQc2giLCJQZWYiLCJQdCIsIlBzbyIsIlBzYSJdLGRpZ2l0czpudWxsLGRhdGVGb3JtYXQ6ImRkL21tL3l5eXkiLGZpcnN0RGF5OjAsaXNSVEw6ITF9fSxsZWFwWWVhcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkWWVhcik7cmV0dXJuKHQ9ZS55ZWFyKCkrKGUueWVhcigpPDA/MTowKSklND09M3x8dCU0PT0tMX0sbW9udGhzSW5ZZWFyOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkWWVhcnx8bi5yZWdpb25hbE9wdGlvbnNbIiJdLmludmFsaWRZZWFyKSwxM30sd2Vla09mWWVhcjpmdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5uZXdEYXRlKHQsZSxyKTtyZXR1cm4gbi5hZGQoLW4uZGF5T2ZXZWVrKCksImQiKSxNYXRoLmZsb29yKChuLmRheU9mWWVhcigpLTEpLzcpKzF9LGRheXNJbk1vbnRoOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fdmFsaWRhdGUodCxlLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZE1vbnRoKTtyZXR1cm4gdGhpcy5kYXlzUGVyTW9udGhbci5tb250aCgpLTFdKygxMz09PXIubW9udGgoKSYmdGhpcy5sZWFwWWVhcihyLnllYXIoKSk/MTowKX0sd2Vla0RheTpmdW5jdGlvbih0LGUscil7cmV0dXJuKHRoaXMuZGF5T2ZXZWVrKHQsZSxyKXx8Nyk8Nn0sdG9KRDpmdW5jdGlvbih0LGUscil7dmFyIGE9dGhpcy5fdmFsaWRhdGUodCxlLHIsbi5sb2NhbC5pbnZhbGlkRGF0ZSk7cmV0dXJuKHQ9YS55ZWFyKCkpPDAmJnQrKyxhLmRheSgpKzMwKihhLm1vbnRoKCktMSkrMzY1Kih0LTEpK01hdGguZmxvb3IodC80KSt0aGlzLmpkRXBvY2gtMX0sZnJvbUpEOmZ1bmN0aW9uKHQpe3ZhciBlPU1hdGguZmxvb3IodCkrLjUtdGhpcy5qZEVwb2NoLHI9TWF0aC5mbG9vcigoZS1NYXRoLmZsb29yKChlKzM2NikvMTQ2MSkpLzM2NSkrMTtyPD0wJiZyLS0sZT1NYXRoLmZsb29yKHQpKy41LXRoaXMubmV3RGF0ZShyLDEsMSkudG9KRCgpO3ZhciBuPU1hdGguZmxvb3IoZS8zMCkrMSxhPWUtMzAqKG4tMSkrMTtyZXR1cm4gdGhpcy5uZXdEYXRlKHIsbixhKX19KSxuLmNhbGVuZGFycy5jb3B0aWM9aX0seyIuLi9tYWluIjo1NzAsIm9iamVjdC1hc3NpZ24iOjQ1Nn1dLDU1ODpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoIi4uL21haW4iKSxhPXQoIm9iamVjdC1hc3NpZ24iKTtmdW5jdGlvbiBpKHQpe3RoaXMubG9jYWw9dGhpcy5yZWdpb25hbE9wdGlvbnNbdHx8IiJdfHx0aGlzLnJlZ2lvbmFsT3B0aW9uc1siIl19aS5wcm90b3R5cGU9bmV3IG4uYmFzZUNhbGVuZGFyLGEoaS5wcm90b3R5cGUse25hbWU6IkRpc2N3b3JsZCIsamRFcG9jaDoxNzIxNDI1LjUsZGF5c1Blck1vbnRoOlsxNiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMl0saGFzWWVhclplcm86ITEsbWluTW9udGg6MSxmaXJzdE1vbnRoOjEsbWluRGF5OjEscmVnaW9uYWxPcHRpb25zOnsiIjp7bmFtZToiRGlzY3dvcmxkIixlcG9jaHM6WyJCVUMiLCJVQyJdLG1vbnRoTmFtZXM6WyJJY2siLCJPZmZsZSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJHcnVuZSIsIkF1Z3VzdCIsIlNwdW5lIiwiU2VrdG9iZXIiLCJFbWJlciIsIkRlY2VtYmVyIl0sbW9udGhOYW1lc1Nob3J0OlsiSWNrIiwiT2ZmIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiR3J1IiwiQXVnIiwiU3B1IiwiU2VrIiwiRW1iIiwiRGVjIl0sZGF5TmFtZXM6WyJTdW5kYXkiLCJPY3RlZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSxkYXlOYW1lc1Nob3J0OlsiU3VuIiwiT2N0IiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sZGF5TmFtZXNNaW46WyJTdSIsIk9jIiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl0sZGlnaXRzOm51bGwsZGF0ZUZvcm1hdDoieXl5eS9tbS9kZCIsZmlyc3REYXk6Mixpc1JUTDohMX19LGxlYXBZZWFyOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkWWVhciksITF9LG1vbnRoc0luWWVhcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZFllYXIpLDEzfSxkYXlzSW5ZZWFyOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkWWVhciksNDAwfSx3ZWVrT2ZZZWFyOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLm5ld0RhdGUodCxlLHIpO3JldHVybiBuLmFkZCgtbi5kYXlPZldlZWsoKSwiZCIpLE1hdGguZmxvb3IoKG4uZGF5T2ZZZWFyKCktMSkvOCkrMX0sZGF5c0luTW9udGg6ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLl92YWxpZGF0ZSh0LGUsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkTW9udGgpO3JldHVybiB0aGlzLmRheXNQZXJNb250aFtyLm1vbnRoKCktMV19LGRheXNJbldlZWs6ZnVuY3Rpb24oKXtyZXR1cm4gOH0sZGF5T2ZXZWVrOmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4odGhpcy5fdmFsaWRhdGUodCxlLHIsbi5sb2NhbC5pbnZhbGlkRGF0ZSkuZGF5KCkrMSklOH0sd2Vla0RheTpmdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5kYXlPZldlZWsodCxlLHIpO3JldHVybiBuPj0yJiZuPD02fSxleHRyYUluZm86ZnVuY3Rpb24odCxlLHIpe3ZhciBhPXRoaXMuX3ZhbGlkYXRlKHQsZSxyLG4ubG9jYWwuaW52YWxpZERhdGUpO3JldHVybntjZW50dXJ5Om9bTWF0aC5mbG9vcigoYS55ZWFyKCktMSkvMTAwKSsxXXx8IiJ9fSx0b0pEOmZ1bmN0aW9uKHQsZSxyKXt2YXIgYT10aGlzLl92YWxpZGF0ZSh0LGUscixuLmxvY2FsLmludmFsaWREYXRlKTtyZXR1cm4gdD1hLnllYXIoKSsoYS55ZWFyKCk8MD8xOjApLGU9YS5tb250aCgpLChyPWEuZGF5KCkpKyhlPjE/MTY6MCkrKGU+Mj8zMiooZS0yKTowKSs0MDAqKHQtMSkrdGhpcy5qZEVwb2NoLTF9LGZyb21KRDpmdW5jdGlvbih0KXt0PU1hdGguZmxvb3IodCsuNSktTWF0aC5mbG9vcih0aGlzLmpkRXBvY2gpLTE7dmFyIGU9TWF0aC5mbG9vcih0LzQwMCkrMTt0LT00MDAqKGUtMSksdCs9dD4xNT8xNjowO3ZhciByPU1hdGguZmxvb3IodC8zMikrMSxuPXQtMzIqKHItMSkrMTtyZXR1cm4gdGhpcy5uZXdEYXRlKGU8PTA/ZS0xOmUscixuKX19KTt2YXIgbz17MjA6IkZydWl0YmF0IiwyMToiQW5jaG92eSJ9O24uY2FsZW5kYXJzLmRpc2N3b3JsZD1pfSx7Ii4uL21haW4iOjU3MCwib2JqZWN0LWFzc2lnbiI6NDU2fV0sNTU5OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi4vbWFpbiIpLGE9dCgib2JqZWN0LWFzc2lnbiIpO2Z1bmN0aW9uIGkodCl7dGhpcy5sb2NhbD10aGlzLnJlZ2lvbmFsT3B0aW9uc1t0fHwiIl18fHRoaXMucmVnaW9uYWxPcHRpb25zWyIiXX1pLnByb3RvdHlwZT1uZXcgbi5iYXNlQ2FsZW5kYXIsYShpLnByb3RvdHlwZSx7bmFtZToiRXRoaW9waWFuIixqZEVwb2NoOjE3MjQyMjAuNSxkYXlzUGVyTW9udGg6WzMwLDMwLDMwLDMwLDMwLDMwLDMwLDMwLDMwLDMwLDMwLDMwLDVdLGhhc1llYXJaZXJvOiExLG1pbk1vbnRoOjEsZmlyc3RNb250aDoxLG1pbkRheToxLHJlZ2lvbmFsT3B0aW9uczp7IiI6e25hbWU6IkV0aGlvcGlhbiIsZXBvY2hzOlsiQkVFIiwiRUUiXSxtb250aE5hbWVzOlsiTWVza2VyZW0iLCJUaWtlbWV0IiwiSGlkYXIiLCJUYWhlc2FzIiwiVGlyIiwiWWVrYXRpdCIsIk1lZ2FiaXQiLCJNaWF6aWEiLCJHZW5ib3QiLCJTZW5lIiwiSGFtbGUiLCJOZWhhc2UiLCJQYWd1bWUiXSxtb250aE5hbWVzU2hvcnQ6WyJNZXMiLCJUaWsiLCJIaWQiLCJUYWgiLCJUaXIiLCJZZWsiLCJNZWciLCJNaWEiLCJHZW4iLCJTZW4iLCJIYW0iLCJOZWgiLCJQYWciXSxkYXlOYW1lczpbIkVodWQiLCJTZWdubyIsIk1ha3NlZ25vIiwiSXJvYiIsIkhhbXVzIiwiQXJiIiwiS2lkYW1lIl0sZGF5TmFtZXNTaG9ydDpbIkVodSIsIlNlZyIsIk1hayIsIklybyIsIkhhbSIsIkFyYiIsIktpZCJdLGRheU5hbWVzTWluOlsiRWgiLCJTZSIsIk1hIiwiSXIiLCJIYSIsIkFyIiwiS2kiXSxkaWdpdHM6bnVsbCxkYXRlRm9ybWF0OiJkZC9tbS95eXl5IixmaXJzdERheTowLGlzUlRMOiExfX0sbGVhcFllYXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZFllYXIpO3JldHVybih0PWUueWVhcigpKyhlLnllYXIoKTwwPzE6MCkpJTQ9PTN8fHQlND09LTF9LG1vbnRoc0luWWVhcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZFllYXJ8fG4ucmVnaW9uYWxPcHRpb25zWyIiXS5pbnZhbGlkWWVhciksMTN9LHdlZWtPZlllYXI6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMubmV3RGF0ZSh0LGUscik7cmV0dXJuIG4uYWRkKC1uLmRheU9mV2VlaygpLCJkIiksTWF0aC5mbG9vcigobi5kYXlPZlllYXIoKS0xKS83KSsxfSxkYXlzSW5Nb250aDpmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX3ZhbGlkYXRlKHQsZSx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRNb250aCk7cmV0dXJuIHRoaXMuZGF5c1Blck1vbnRoW3IubW9udGgoKS0xXSsoMTM9PT1yLm1vbnRoKCkmJnRoaXMubGVhcFllYXIoci55ZWFyKCkpPzE6MCl9LHdlZWtEYXk6ZnVuY3Rpb24odCxlLHIpe3JldHVybih0aGlzLmRheU9mV2Vlayh0LGUscil8fDcpPDZ9LHRvSkQ6ZnVuY3Rpb24odCxlLHIpe3ZhciBhPXRoaXMuX3ZhbGlkYXRlKHQsZSxyLG4ubG9jYWwuaW52YWxpZERhdGUpO3JldHVybih0PWEueWVhcigpKTwwJiZ0KyssYS5kYXkoKSszMCooYS5tb250aCgpLTEpKzM2NSoodC0xKStNYXRoLmZsb29yKHQvNCkrdGhpcy5qZEVwb2NoLTF9LGZyb21KRDpmdW5jdGlvbih0KXt2YXIgZT1NYXRoLmZsb29yKHQpKy41LXRoaXMuamRFcG9jaCxyPU1hdGguZmxvb3IoKGUtTWF0aC5mbG9vcigoZSszNjYpLzE0NjEpKS8zNjUpKzE7cjw9MCYmci0tLGU9TWF0aC5mbG9vcih0KSsuNS10aGlzLm5ld0RhdGUociwxLDEpLnRvSkQoKTt2YXIgbj1NYXRoLmZsb29yKGUvMzApKzEsYT1lLTMwKihuLTEpKzE7cmV0dXJuIHRoaXMubmV3RGF0ZShyLG4sYSl9fSksbi5jYWxlbmRhcnMuZXRoaW9waWFuPWl9LHsiLi4vbWFpbiI6NTcwLCJvYmplY3QtYXNzaWduIjo0NTZ9XSw1NjA6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCIuLi9tYWluIiksYT10KCJvYmplY3QtYXNzaWduIik7ZnVuY3Rpb24gaSh0KXt0aGlzLmxvY2FsPXRoaXMucmVnaW9uYWxPcHRpb25zW3R8fCIiXXx8dGhpcy5yZWdpb25hbE9wdGlvbnNbIiJdfWZ1bmN0aW9uIG8odCxlKXtyZXR1cm4gdC1lKk1hdGguZmxvb3IodC9lKX1pLnByb3RvdHlwZT1uZXcgbi5iYXNlQ2FsZW5kYXIsYShpLnByb3RvdHlwZSx7bmFtZToiSGVicmV3IixqZEVwb2NoOjM0Nzk5NS41LGRheXNQZXJNb250aDpbMzAsMjksMzAsMjksMzAsMjksMzAsMjksMzAsMjksMzAsMjksMjldLGhhc1llYXJaZXJvOiExLG1pbk1vbnRoOjEsZmlyc3RNb250aDo3LG1pbkRheToxLHJlZ2lvbmFsT3B0aW9uczp7IiI6e25hbWU6IkhlYnJldyIsZXBvY2hzOlsiQkFNIiwiQU0iXSxtb250aE5hbWVzOlsiTmlzYW4iLCJJeWFyIiwiU2l2YW4iLCJUYW1tdXoiLCJBdiIsIkVsdWwiLCJUaXNocmVpIiwiQ2hlc2h2YW4iLCJLaXNsZXYiLCJUZXZldCIsIlNoZXZhdCIsIkFkYXIiLCJBZGFyIElJIl0sbW9udGhOYW1lc1Nob3J0OlsiTmlzIiwiSXlhIiwiU2l2IiwiVGFtIiwiQXYiLCJFbHUiLCJUaXMiLCJDaGUiLCJLaXMiLCJUZXYiLCJTaGUiLCJBZGEiLCJBZDIiXSxkYXlOYW1lczpbIllvbSBSaXNob24iLCJZb20gU2hlbmkiLCJZb20gU2hsaXNoaSIsIllvbSBSZXZpJ2kiLCJZb20gQ2hhbWlzaGkiLCJZb20gU2hpc2hpIiwiWW9tIFNoYWJiYXQiXSxkYXlOYW1lc1Nob3J0OlsiUmlzIiwiU2hlIiwiU2hsIiwiUmV2IiwiQ2hhIiwiU2hpIiwiU2hhIl0sZGF5TmFtZXNNaW46WyJSaSIsIlNoZSIsIlNobCIsIlJlIiwiQ2giLCJTaGkiLCJTaGEiXSxkaWdpdHM6bnVsbCxkYXRlRm9ybWF0OiJkZC9tbS95eXl5IixmaXJzdERheTowLGlzUlRMOiExfX0sbGVhcFllYXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZFllYXIpO3JldHVybiB0aGlzLl9sZWFwWWVhcihlLnllYXIoKSl9LF9sZWFwWWVhcjpmdW5jdGlvbih0KXtyZXR1cm4gbyg3Kih0PXQ8MD90KzE6dCkrMSwxOSk8N30sbW9udGhzSW5ZZWFyOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkWWVhciksdGhpcy5fbGVhcFllYXIodC55ZWFyP3QueWVhcigpOnQpPzEzOjEyfSx3ZWVrT2ZZZWFyOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLm5ld0RhdGUodCxlLHIpO3JldHVybiBuLmFkZCgtbi5kYXlPZldlZWsoKSwiZCIpLE1hdGguZmxvb3IoKG4uZGF5T2ZZZWFyKCktMSkvNykrMX0sZGF5c0luWWVhcjpmdW5jdGlvbih0KXtyZXR1cm4gdD10aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkWWVhcikueWVhcigpLHRoaXMudG9KRCgtMT09PXQ/MTp0KzEsNywxKS10aGlzLnRvSkQodCw3LDEpfSxkYXlzSW5Nb250aDpmdW5jdGlvbih0LGUpe3JldHVybiB0LnllYXImJihlPXQubW9udGgoKSx0PXQueWVhcigpKSx0aGlzLl92YWxpZGF0ZSh0LGUsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkTW9udGgpLDEyPT09ZSYmdGhpcy5sZWFwWWVhcih0KT8zMDo4PT09ZSYmNT09PW8odGhpcy5kYXlzSW5ZZWFyKHQpLDEwKT8zMDo5PT09ZSYmMz09PW8odGhpcy5kYXlzSW5ZZWFyKHQpLDEwKT8yOTp0aGlzLmRheXNQZXJNb250aFtlLTFdfSx3ZWVrRGF5OmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gNiE9PXRoaXMuZGF5T2ZXZWVrKHQsZSxyKX0sZXh0cmFJbmZvOmZ1bmN0aW9uKHQsZSxyKXt2YXIgYT10aGlzLl92YWxpZGF0ZSh0LGUscixuLmxvY2FsLmludmFsaWREYXRlKTtyZXR1cm57eWVhclR5cGU6KHRoaXMubGVhcFllYXIoYSk/ImVtYm9saXNtaWMiOiJjb21tb24iKSsiICIrWyJkZWZpY2llbnQiLCJyZWd1bGFyIiwiY29tcGxldGUiXVt0aGlzLmRheXNJblllYXIoYSklMTAtM119fSx0b0pEOmZ1bmN0aW9uKHQsZSxyKXt2YXIgYT10aGlzLl92YWxpZGF0ZSh0LGUscixuLmxvY2FsLmludmFsaWREYXRlKTt0PWEueWVhcigpLGU9YS5tb250aCgpLHI9YS5kYXkoKTt2YXIgaT10PD0wP3QrMTp0LG89dGhpcy5qZEVwb2NoK3RoaXMuX2RlbGF5MShpKSt0aGlzLl9kZWxheTIoaSkrcisxO2lmKGU8Nyl7Zm9yKHZhciBzPTc7czw9dGhpcy5tb250aHNJblllYXIodCk7cysrKW8rPXRoaXMuZGF5c0luTW9udGgodCxzKTtmb3Iocz0xO3M8ZTtzKyspbys9dGhpcy5kYXlzSW5Nb250aCh0LHMpfWVsc2UgZm9yKHM9NztzPGU7cysrKW8rPXRoaXMuZGF5c0luTW9udGgodCxzKTtyZXR1cm4gb30sX2RlbGF5MTpmdW5jdGlvbih0KXt2YXIgZT1NYXRoLmZsb29yKCgyMzUqdC0yMzQpLzE5KSxyPTEyMDg0KzEzNzUzKmUsbj0yOSplK01hdGguZmxvb3Ioci8yNTkyMCk7cmV0dXJuIG8oMyoobisxKSw3KTwzJiZuKyssbn0sX2RlbGF5MjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9kZWxheTEodC0xKSxyPXRoaXMuX2RlbGF5MSh0KTtyZXR1cm4gdGhpcy5fZGVsYXkxKHQrMSktcj09MzU2PzI6ci1lPT0zODI/MTowfSxmcm9tSkQ6ZnVuY3Rpb24odCl7dD1NYXRoLmZsb29yKHQpKy41O2Zvcih2YXIgZT1NYXRoLmZsb29yKDk4NDk2Kih0LXRoaXMuamRFcG9jaCkvMzU5NzUzNTEpLTE7dD49dGhpcy50b0pEKC0xPT09ZT8xOmUrMSw3LDEpOyllKys7Zm9yKHZhciByPXQ8dGhpcy50b0pEKGUsMSwxKT83OjE7dD50aGlzLnRvSkQoZSxyLHRoaXMuZGF5c0luTW9udGgoZSxyKSk7KXIrKzt2YXIgbj10LXRoaXMudG9KRChlLHIsMSkrMTtyZXR1cm4gdGhpcy5uZXdEYXRlKGUscixuKX19KSxuLmNhbGVuZGFycy5oZWJyZXc9aX0seyIuLi9tYWluIjo1NzAsIm9iamVjdC1hc3NpZ24iOjQ1Nn1dLDU2MTpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoIi4uL21haW4iKSxhPXQoIm9iamVjdC1hc3NpZ24iKTtmdW5jdGlvbiBpKHQpe3RoaXMubG9jYWw9dGhpcy5yZWdpb25hbE9wdGlvbnNbdHx8IiJdfHx0aGlzLnJlZ2lvbmFsT3B0aW9uc1siIl19aS5wcm90b3R5cGU9bmV3IG4uYmFzZUNhbGVuZGFyLGEoaS5wcm90b3R5cGUse25hbWU6IklzbGFtaWMiLGpkRXBvY2g6MTk0ODQzOS41LGRheXNQZXJNb250aDpbMzAsMjksMzAsMjksMzAsMjksMzAsMjksMzAsMjksMzAsMjldLGhhc1llYXJaZXJvOiExLG1pbk1vbnRoOjEsZmlyc3RNb250aDoxLG1pbkRheToxLHJlZ2lvbmFsT3B0aW9uczp7IiI6e25hbWU6IklzbGFtaWMiLGVwb2NoczpbIkJIIiwiQUgiXSxtb250aE5hbWVzOlsiTXVoYXJyYW0iLCJTYWZhciIsIlJhYmknIGFsLWF3d2FsIiwiUmFiaScgYWwtdGhhbmkiLCJKdW1hZGEgYWwtYXd3YWwiLCJKdW1hZGEgYWwtdGhhbmkiLCJSYWphYiIsIlNoYSdhYmFuIiwiUmFtYWRhbiIsIlNoYXd3YWwiLCJEaHUgYWwtUWknZGFoIiwiRGh1IGFsLUhpamphaCJdLG1vbnRoTmFtZXNTaG9ydDpbIk11aCIsIlNhZiIsIlJhYjEiLCJSYWIyIiwiSnVtMSIsIkp1bTIiLCJSYWoiLCJTaGEnIiwiUmFtIiwiU2hhdyIsIkRodVEiLCJEaHVIIl0sZGF5TmFtZXM6WyJZYXdtIGFsLWFoYWQiLCJZYXdtIGFsLWl0aG5heW4iLCJZYXdtIGF0aC10aHVsYWF0aGFhJyIsIllhd20gYWwtYXJiaSdhYSciLCJZYXdtIGFsLWtoYW1cdTAxMmJzIiwiWWF3bSBhbC1qdW0nYSIsIllhd20gYXMtc2FidCJdLGRheU5hbWVzU2hvcnQ6WyJBaGEiLCJJdGgiLCJUaHUiLCJBcmIiLCJLaGEiLCJKdW0iLCJTYWIiXSxkYXlOYW1lc01pbjpbIkFoIiwiSXQiLCJUaCIsIkFyIiwiS2giLCJKdSIsIlNhIl0sZGlnaXRzOm51bGwsZGF0ZUZvcm1hdDoieXl5eS9tbS9kZCIsZmlyc3REYXk6Nixpc1JUTDohMX19LGxlYXBZZWFyOmZ1bmN0aW9uKHQpe3JldHVybigxMSp0aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkWWVhcikueWVhcigpKzE0KSUzMDwxMX0sd2Vla09mWWVhcjpmdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5uZXdEYXRlKHQsZSxyKTtyZXR1cm4gbi5hZGQoLW4uZGF5T2ZXZWVrKCksImQiKSxNYXRoLmZsb29yKChuLmRheU9mWWVhcigpLTEpLzcpKzF9LGRheXNJblllYXI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGVhcFllYXIodCk/MzU1OjM1NH0sZGF5c0luTW9udGg6ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLl92YWxpZGF0ZSh0LGUsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkTW9udGgpO3JldHVybiB0aGlzLmRheXNQZXJNb250aFtyLm1vbnRoKCktMV0rKDEyPT09ci5tb250aCgpJiZ0aGlzLmxlYXBZZWFyKHIueWVhcigpKT8xOjApfSx3ZWVrRGF5OmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gNSE9PXRoaXMuZGF5T2ZXZWVrKHQsZSxyKX0sdG9KRDpmdW5jdGlvbih0LGUscil7dmFyIGE9dGhpcy5fdmFsaWRhdGUodCxlLHIsbi5sb2NhbC5pbnZhbGlkRGF0ZSk7cmV0dXJuIHQ9YS55ZWFyKCksZT1hLm1vbnRoKCksdD10PD0wP3QrMTp0LChyPWEuZGF5KCkpK01hdGguY2VpbCgyOS41KihlLTEpKSszNTQqKHQtMSkrTWF0aC5mbG9vcigoMysxMSp0KS8zMCkrdGhpcy5qZEVwb2NoLTF9LGZyb21KRDpmdW5jdGlvbih0KXt0PU1hdGguZmxvb3IodCkrLjU7dmFyIGU9TWF0aC5mbG9vcigoMzAqKHQtdGhpcy5qZEVwb2NoKSsxMDY0NikvMTA2MzEpO2U9ZTw9MD9lLTE6ZTt2YXIgcj1NYXRoLm1pbigxMixNYXRoLmNlaWwoKHQtMjktdGhpcy50b0pEKGUsMSwxKSkvMjkuNSkrMSksbj10LXRoaXMudG9KRChlLHIsMSkrMTtyZXR1cm4gdGhpcy5uZXdEYXRlKGUscixuKX19KSxuLmNhbGVuZGFycy5pc2xhbWljPWl9LHsiLi4vbWFpbiI6NTcwLCJvYmplY3QtYXNzaWduIjo0NTZ9XSw1NjI6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCIuLi9tYWluIiksYT10KCJvYmplY3QtYXNzaWduIik7ZnVuY3Rpb24gaSh0KXt0aGlzLmxvY2FsPXRoaXMucmVnaW9uYWxPcHRpb25zW3R8fCIiXXx8dGhpcy5yZWdpb25hbE9wdGlvbnNbIiJdfWkucHJvdG90eXBlPW5ldyBuLmJhc2VDYWxlbmRhcixhKGkucHJvdG90eXBlLHtuYW1lOiJKdWxpYW4iLGpkRXBvY2g6MTcyMTQyMy41LGRheXNQZXJNb250aDpbMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdLGhhc1llYXJaZXJvOiExLG1pbk1vbnRoOjEsZmlyc3RNb250aDoxLG1pbkRheToxLHJlZ2lvbmFsT3B0aW9uczp7IiI6e25hbWU6Ikp1bGlhbiIsZXBvY2hzOlsiQkMiLCJBRCJdLG1vbnRoTmFtZXM6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLG1vbnRoTmFtZXNTaG9ydDpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLGRheU5hbWVzOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSxkYXlOYW1lc1Nob3J0OlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sZGF5TmFtZXNNaW46WyJTdSIsIk1vIiwiVHUiLCJXZSIsIlRoIiwiRnIiLCJTYSJdLGRpZ2l0czpudWxsLGRhdGVGb3JtYXQ6Im1tL2RkL3l5eXkiLGZpcnN0RGF5OjAsaXNSVEw6ITF9fSxsZWFwWWVhcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkWWVhcik7cmV0dXJuKHQ9ZS55ZWFyKCk8MD9lLnllYXIoKSsxOmUueWVhcigpKSU0PT0wfSx3ZWVrT2ZZZWFyOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLm5ld0RhdGUodCxlLHIpO3JldHVybiBuLmFkZCg0LShuLmRheU9mV2VlaygpfHw3KSwiZCIpLE1hdGguZmxvb3IoKG4uZGF5T2ZZZWFyKCktMSkvNykrMX0sZGF5c0luTW9udGg6ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLl92YWxpZGF0ZSh0LGUsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkTW9udGgpO3JldHVybiB0aGlzLmRheXNQZXJNb250aFtyLm1vbnRoKCktMV0rKDI9PT1yLm1vbnRoKCkmJnRoaXMubGVhcFllYXIoci55ZWFyKCkpPzE6MCl9LHdlZWtEYXk6ZnVuY3Rpb24odCxlLHIpe3JldHVybih0aGlzLmRheU9mV2Vlayh0LGUscil8fDcpPDZ9LHRvSkQ6ZnVuY3Rpb24odCxlLHIpe3ZhciBhPXRoaXMuX3ZhbGlkYXRlKHQsZSxyLG4ubG9jYWwuaW52YWxpZERhdGUpO3JldHVybiB0PWEueWVhcigpLGU9YS5tb250aCgpLHI9YS5kYXkoKSx0PDAmJnQrKyxlPD0yJiYodC0tLGUrPTEyKSxNYXRoLmZsb29yKDM2NS4yNSoodCs0NzE2KSkrTWF0aC5mbG9vcigzMC42MDAxKihlKzEpKStyLTE1MjQuNX0sZnJvbUpEOmZ1bmN0aW9uKHQpe3ZhciBlPU1hdGguZmxvb3IodCsuNSkrMTUyNCxyPU1hdGguZmxvb3IoKGUtMTIyLjEpLzM2NS4yNSksbj1NYXRoLmZsb29yKDM2NS4yNSpyKSxhPU1hdGguZmxvb3IoKGUtbikvMzAuNjAwMSksaT1hLU1hdGguZmxvb3IoYTwxND8xOjEzKSxvPXItTWF0aC5mbG9vcihpPjI/NDcxNjo0NzE1KSxzPWUtbi1NYXRoLmZsb29yKDMwLjYwMDEqYSk7cmV0dXJuIG88PTAmJm8tLSx0aGlzLm5ld0RhdGUobyxpLHMpfX0pLG4uY2FsZW5kYXJzLmp1bGlhbj1pfSx7Ii4uL21haW4iOjU3MCwib2JqZWN0LWFzc2lnbiI6NDU2fV0sNTYzOltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi4vbWFpbiIpLGE9dCgib2JqZWN0LWFzc2lnbiIpO2Z1bmN0aW9uIGkodCl7dGhpcy5sb2NhbD10aGlzLnJlZ2lvbmFsT3B0aW9uc1t0fHwiIl18fHRoaXMucmVnaW9uYWxPcHRpb25zWyIiXX1mdW5jdGlvbiBvKHQsZSl7cmV0dXJuIHQtZSpNYXRoLmZsb29yKHQvZSl9ZnVuY3Rpb24gcyh0LGUpe3JldHVybiBvKHQtMSxlKSsxfWkucHJvdG90eXBlPW5ldyBuLmJhc2VDYWxlbmRhcixhKGkucHJvdG90eXBlLHtuYW1lOiJNYXlhbiIsamRFcG9jaDo1ODQyODIuNSxoYXNZZWFyWmVybzohMCxtaW5Nb250aDowLGZpcnN0TW9udGg6MCxtaW5EYXk6MCxyZWdpb25hbE9wdGlvbnM6eyIiOntuYW1lOiJNYXlhbiIsZXBvY2hzOlsiIiwiIl0sbW9udGhOYW1lczpbIjAiLCIxIiwiMiIsIjMiLCI0IiwiNSIsIjYiLCI3IiwiOCIsIjkiLCIxMCIsIjExIiwiMTIiLCIxMyIsIjE0IiwiMTUiLCIxNiIsIjE3Il0sbW9udGhOYW1lc1Nob3J0OlsiMCIsIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiwiOSIsIjEwIiwiMTEiLCIxMiIsIjEzIiwiMTQiLCIxNSIsIjE2IiwiMTciXSxkYXlOYW1lczpbIjAiLCIxIiwiMiIsIjMiLCI0IiwiNSIsIjYiLCI3IiwiOCIsIjkiLCIxMCIsIjExIiwiMTIiLCIxMyIsIjE0IiwiMTUiLCIxNiIsIjE3IiwiMTgiLCIxOSJdLGRheU5hbWVzU2hvcnQ6WyIwIiwiMSIsIjIiLCIzIiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiMTAiLCIxMSIsIjEyIiwiMTMiLCIxNCIsIjE1IiwiMTYiLCIxNyIsIjE4IiwiMTkiXSxkYXlOYW1lc01pbjpbIjAiLCIxIiwiMiIsIjMiLCI0IiwiNSIsIjYiLCI3IiwiOCIsIjkiLCIxMCIsIjExIiwiMTIiLCIxMyIsIjE0IiwiMTUiLCIxNiIsIjE3IiwiMTgiLCIxOSJdLGRpZ2l0czpudWxsLGRhdGVGb3JtYXQ6IllZWVkubS5kIixmaXJzdERheTowLGlzUlRMOiExLGhhYWJNb250aHM6WyJQb3AiLCJVbyIsIlppcCIsIlpvdHoiLCJUemVjIiwiWHVsIiwiWWF4a2luIiwiTW9sIiwiQ2hlbiIsIllheCIsIlphYyIsIkNlaCIsIk1hYyIsIkthbmtpbiIsIk11YW4iLCJQYXgiLCJLYXlhYiIsIkN1bWt1IiwiVWF5ZWIiXSx0em9sa2luTW9udGhzOlsiSW1peCIsIklrIiwiQWtiYWwiLCJLYW4iLCJDaGljY2hhbiIsIkNpbWkiLCJNYW5payIsIkxhbWF0IiwiTXVsdWMiLCJPYyIsIkNodWVuIiwiRWIiLCJCZW4iLCJJeCIsIk1lbiIsIkNpYiIsIkNhYmFuIiwiRXR6bmFiIiwiQ2F1YWMiLCJBaGF1Il19fSxsZWFwWWVhcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZFllYXIpLCExfSxmb3JtYXRZZWFyOmZ1bmN0aW9uKHQpe3Q9dGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZFllYXIpLnllYXIoKTt2YXIgZT1NYXRoLmZsb29yKHQvNDAwKTtyZXR1cm4gdCU9NDAwLHQrPXQ8MD80MDA6MCxlKyIuIitNYXRoLmZsb29yKHQvMjApKyIuIit0JTIwfSxmb3JZZWFyOmZ1bmN0aW9uKHQpe2lmKCh0PXQuc3BsaXQoIi4iKSkubGVuZ3RoPDMpdGhyb3ciSW52YWxpZCBNYXlhbiB5ZWFyIjtmb3IodmFyIGU9MCxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBuPXBhcnNlSW50KHRbcl0sMTApO2lmKE1hdGguYWJzKG4pPjE5fHxyPjAmJm48MCl0aHJvdyJJbnZhbGlkIE1heWFuIHllYXIiO2U9MjAqZStufXJldHVybiBlfSxtb250aHNJblllYXI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3ZhbGlkYXRlKHQsdGhpcy5taW5Nb250aCx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRZZWFyKSwxOH0sd2Vla09mWWVhcjpmdW5jdGlvbih0LGUscil7cmV0dXJuIHRoaXMuX3ZhbGlkYXRlKHQsZSxyLG4ubG9jYWwuaW52YWxpZERhdGUpLDB9LGRheXNJblllYXI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3ZhbGlkYXRlKHQsdGhpcy5taW5Nb250aCx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRZZWFyKSwzNjB9LGRheXNJbk1vbnRoOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX3ZhbGlkYXRlKHQsZSx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRNb250aCksMjB9LGRheXNJbldlZWs6ZnVuY3Rpb24oKXtyZXR1cm4gNX0sZGF5T2ZXZWVrOmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdGhpcy5fdmFsaWRhdGUodCxlLHIsbi5sb2NhbC5pbnZhbGlkRGF0ZSkuZGF5KCl9LHdlZWtEYXk6ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0aGlzLl92YWxpZGF0ZSh0LGUscixuLmxvY2FsLmludmFsaWREYXRlKSwhMH0sZXh0cmFJbmZvOmZ1bmN0aW9uKHQsZSxyKXt2YXIgYT10aGlzLl92YWxpZGF0ZSh0LGUscixuLmxvY2FsLmludmFsaWREYXRlKS50b0pEKCksaT10aGlzLl90b0hhYWIoYSksbz10aGlzLl90b1R6b2xraW4oYSk7cmV0dXJue2hhYWJNb250aE5hbWU6dGhpcy5sb2NhbC5oYWFiTW9udGhzW2lbMF0tMV0saGFhYk1vbnRoOmlbMF0saGFhYkRheTppWzFdLHR6b2xraW5EYXlOYW1lOnRoaXMubG9jYWwudHpvbGtpbk1vbnRoc1tvWzBdLTFdLHR6b2xraW5EYXk6b1swXSx0em9sa2luVHJlY2VuYTpvWzFdfX0sX3RvSGFhYjpmdW5jdGlvbih0KXt2YXIgZT1vKCh0LT10aGlzLmpkRXBvY2gpKzgrMzQwLDM2NSk7cmV0dXJuW01hdGguZmxvb3IoZS8yMCkrMSxvKGUsMjApXX0sX3RvVHpvbGtpbjpmdW5jdGlvbih0KXtyZXR1cm5bcygodC09dGhpcy5qZEVwb2NoKSsyMCwyMCkscyh0KzQsMTMpXX0sdG9KRDpmdW5jdGlvbih0LGUscil7dmFyIGE9dGhpcy5fdmFsaWRhdGUodCxlLHIsbi5sb2NhbC5pbnZhbGlkRGF0ZSk7cmV0dXJuIGEuZGF5KCkrMjAqYS5tb250aCgpKzM2MCphLnllYXIoKSt0aGlzLmpkRXBvY2h9LGZyb21KRDpmdW5jdGlvbih0KXt0PU1hdGguZmxvb3IodCkrLjUtdGhpcy5qZEVwb2NoO3ZhciBlPU1hdGguZmxvb3IodC8zNjApO3QlPTM2MCx0Kz10PDA/MzYwOjA7dmFyIHI9TWF0aC5mbG9vcih0LzIwKSxuPXQlMjA7cmV0dXJuIHRoaXMubmV3RGF0ZShlLHIsbil9fSksbi5jYWxlbmRhcnMubWF5YW49aX0seyIuLi9tYWluIjo1NzAsIm9iamVjdC1hc3NpZ24iOjQ1Nn1dLDU2NDpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoIi4uL21haW4iKSxhPXQoIm9iamVjdC1hc3NpZ24iKTtmdW5jdGlvbiBpKHQpe3RoaXMubG9jYWw9dGhpcy5yZWdpb25hbE9wdGlvbnNbdHx8IiJdfHx0aGlzLnJlZ2lvbmFsT3B0aW9uc1siIl19aS5wcm90b3R5cGU9bmV3IG4uYmFzZUNhbGVuZGFyO3ZhciBvPW4uaW5zdGFuY2UoImdyZWdvcmlhbiIpO2EoaS5wcm90b3R5cGUse25hbWU6Ik5hbmFrc2hhaGkiLGpkRXBvY2g6MjI1NzY3My41LGRheXNQZXJNb250aDpbMzEsMzEsMzEsMzEsMzEsMzAsMzAsMzAsMzAsMzAsMzAsMzBdLGhhc1llYXJaZXJvOiExLG1pbk1vbnRoOjEsZmlyc3RNb250aDoxLG1pbkRheToxLHJlZ2lvbmFsT3B0aW9uczp7IiI6e25hbWU6Ik5hbmFrc2hhaGkiLGVwb2NoczpbIkJOIiwiQU4iXSxtb250aE5hbWVzOlsiQ2hldCIsIlZhaXNha2giLCJKZXRoIiwiSGFyaCIsIlNhd2FuIiwiQmhhZG9uIiwiQXNzdSIsIkthdGFrIiwiTWFnaGFyIiwiUG9oIiwiTWFnaCIsIlBoYWd1biJdLG1vbnRoTmFtZXNTaG9ydDpbIkNoZSIsIlZhaSIsIkpldCIsIkhhciIsIlNhdyIsIkJoYSIsIkFzcyIsIkthdCIsIk1nciIsIlBvaCIsIk1naCIsIlBoYSJdLGRheU5hbWVzOlsiU29tdmFhciIsIk1hbmdhbHZhciIsIkJ1ZGh2YWFyIiwiVmVlcnZhYXIiLCJTaHVrYXJ2YWFyIiwiU2FuaWNoYXJ2YWFyIiwiRXR2YWFyIl0sZGF5TmFtZXNTaG9ydDpbIlNvbSIsIk1hbmdhbCIsIkJ1ZGgiLCJWZWVyIiwiU2h1a2FyIiwiU2FuaWNoYXIiLCJFdCJdLGRheU5hbWVzTWluOlsiU28iLCJNYSIsIkJ1IiwiVmUiLCJTaCIsIlNhIiwiRXQiXSxkaWdpdHM6bnVsbCxkYXRlRm9ybWF0OiJkZC1tbS15eXl5IixmaXJzdERheTowLGlzUlRMOiExfX0sbGVhcFllYXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZFllYXJ8fG4ucmVnaW9uYWxPcHRpb25zWyIiXS5pbnZhbGlkWWVhcik7cmV0dXJuIG8ubGVhcFllYXIoZS55ZWFyKCkrKGUueWVhcigpPDE/MTowKSsxNDY5KX0sd2Vla09mWWVhcjpmdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5uZXdEYXRlKHQsZSxyKTtyZXR1cm4gbi5hZGQoMS0obi5kYXlPZldlZWsoKXx8NyksImQiKSxNYXRoLmZsb29yKChuLmRheU9mWWVhcigpLTEpLzcpKzF9LGRheXNJbk1vbnRoOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fdmFsaWRhdGUodCxlLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZE1vbnRoKTtyZXR1cm4gdGhpcy5kYXlzUGVyTW9udGhbci5tb250aCgpLTFdKygxMj09PXIubW9udGgoKSYmdGhpcy5sZWFwWWVhcihyLnllYXIoKSk/MTowKX0sd2Vla0RheTpmdW5jdGlvbih0LGUscil7cmV0dXJuKHRoaXMuZGF5T2ZXZWVrKHQsZSxyKXx8Nyk8Nn0sdG9KRDpmdW5jdGlvbih0LGUscil7dmFyIGE9dGhpcy5fdmFsaWRhdGUodCxlLHIsbi5sb2NhbC5pbnZhbGlkTW9udGgpOyh0PWEueWVhcigpKTwwJiZ0Kys7Zm9yKHZhciBpPWEuZGF5KCkscz0xO3M8YS5tb250aCgpO3MrKylpKz10aGlzLmRheXNQZXJNb250aFtzLTFdO3JldHVybiBpK28udG9KRCh0KzE0NjgsMywxMyl9LGZyb21KRDpmdW5jdGlvbih0KXt0PU1hdGguZmxvb3IodCsuNSk7Zm9yKHZhciBlPU1hdGguZmxvb3IoKHQtKHRoaXMuamRFcG9jaC0xKSkvMzY2KTt0Pj10aGlzLnRvSkQoZSsxLDEsMSk7KWUrKztmb3IodmFyIHI9dC1NYXRoLmZsb29yKHRoaXMudG9KRChlLDEsMSkrLjUpKzEsbj0xO3I+dGhpcy5kYXlzSW5Nb250aChlLG4pOylyLT10aGlzLmRheXNJbk1vbnRoKGUsbiksbisrO3JldHVybiB0aGlzLm5ld0RhdGUoZSxuLHIpfX0pLG4uY2FsZW5kYXJzLm5hbmFrc2hhaGk9aX0seyIuLi9tYWluIjo1NzAsIm9iamVjdC1hc3NpZ24iOjQ1Nn1dLDU2NTpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoIi4uL21haW4iKSxhPXQoIm9iamVjdC1hc3NpZ24iKTtmdW5jdGlvbiBpKHQpe3RoaXMubG9jYWw9dGhpcy5yZWdpb25hbE9wdGlvbnNbdHx8IiJdfHx0aGlzLnJlZ2lvbmFsT3B0aW9uc1siIl19aS5wcm90b3R5cGU9bmV3IG4uYmFzZUNhbGVuZGFyLGEoaS5wcm90b3R5cGUse25hbWU6Ik5lcGFsaSIsamRFcG9jaDoxNzAwNzA5LjUsZGF5c1Blck1vbnRoOlszMSwzMSwzMiwzMiwzMSwzMCwzMCwyOSwzMCwyOSwzMCwzMF0saGFzWWVhclplcm86ITEsbWluTW9udGg6MSxmaXJzdE1vbnRoOjEsbWluRGF5OjEsZGF5c1BlclllYXI6MzY1LHJlZ2lvbmFsT3B0aW9uczp7IiI6e25hbWU6Ik5lcGFsaSIsZXBvY2hzOlsiQkJTIiwiQUJTIl0sbW9udGhOYW1lczpbIkJhaXNha2giLCJKZXN0aGEiLCJBc2hhZGgiLCJTaHJhd2FuIiwiQmhhZHJhIiwiQXNod2luIiwiS2FydGlrIiwiTWFuZ3NpciIsIlBhdXNoIiwiTWFuZ2giLCJGYWxndW4iLCJDaGFpdHJhIl0sbW9udGhOYW1lc1Nob3J0OlsiQmFpIiwiSmUiLCJBcyIsIlNocmEiLCJCaGEiLCJBc2giLCJLYXIiLCJNYW5nIiwiUGF1IiwiTWEiLCJGYWwiLCJDaGFpIl0sZGF5TmFtZXM6WyJBYWl0YWJhYXIiLCJTb21iYWFyIiwiTWFuZ2xiYWFyIiwiQnVkaGFiYWFyIiwiQmloaWJhYXIiLCJTaHVrcmFiYWFyIiwiU2hhbmliYWFyIl0sZGF5TmFtZXNTaG9ydDpbIkFhaXRhIiwiU29tIiwiTWFuZ2wiLCJCdWRoYSIsIkJpaGkiLCJTaHVrcmEiLCJTaGFuaSJdLGRheU5hbWVzTWluOlsiQWFpIiwiU28iLCJNYW4iLCJCdSIsIkJpIiwiU2h1IiwiU2hhIl0sZGlnaXRzOm51bGwsZGF0ZUZvcm1hdDoiZGQvbW0veXl5eSIsZmlyc3REYXk6MSxpc1JUTDohMX19LGxlYXBZZWFyOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmRheXNJblllYXIodCkhPT10aGlzLmRheXNQZXJZZWFyfSx3ZWVrT2ZZZWFyOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLm5ld0RhdGUodCxlLHIpO3JldHVybiBuLmFkZCgtbi5kYXlPZldlZWsoKSwiZCIpLE1hdGguZmxvb3IoKG4uZGF5T2ZZZWFyKCktMSkvNykrMX0sZGF5c0luWWVhcjpmdW5jdGlvbih0KXtpZih0PXRoaXMuX3ZhbGlkYXRlKHQsdGhpcy5taW5Nb250aCx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRZZWFyKS55ZWFyKCksInVuZGVmaW5lZCI9PXR5cGVvZiB0aGlzLk5FUEFMSV9DQUxFTkRBUl9EQVRBW3RdKXJldHVybiB0aGlzLmRheXNQZXJZZWFyO2Zvcih2YXIgZT0wLHI9dGhpcy5taW5Nb250aDtyPD0xMjtyKyspZSs9dGhpcy5ORVBBTElfQ0FMRU5EQVJfREFUQVt0XVtyXTtyZXR1cm4gZX0sZGF5c0luTW9udGg6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC55ZWFyJiYoZT10Lm1vbnRoKCksdD10LnllYXIoKSksdGhpcy5fdmFsaWRhdGUodCxlLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZE1vbnRoKSwidW5kZWZpbmVkIj09dHlwZW9mIHRoaXMuTkVQQUxJX0NBTEVOREFSX0RBVEFbdF0/dGhpcy5kYXlzUGVyTW9udGhbZS0xXTp0aGlzLk5FUEFMSV9DQUxFTkRBUl9EQVRBW3RdW2VdfSx3ZWVrRGF5OmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gNiE9PXRoaXMuZGF5T2ZXZWVrKHQsZSxyKX0sdG9KRDpmdW5jdGlvbih0LGUscil7dmFyIGE9dGhpcy5fdmFsaWRhdGUodCxlLHIsbi5sb2NhbC5pbnZhbGlkRGF0ZSk7dD1hLnllYXIoKSxlPWEubW9udGgoKSxyPWEuZGF5KCk7dmFyIGk9bi5pbnN0YW5jZSgpLG89MCxzPWUsbD10O3RoaXMuX2NyZWF0ZU1pc3NpbmdDYWxlbmRhckRhdGEodCk7dmFyIGM9dC0ocz45fHw5PT09cyYmcj49dGhpcy5ORVBBTElfQ0FMRU5EQVJfREFUQVtsXVswXT81Njo1Nyk7Zm9yKDkhPT1lJiYobz1yLHMtLSk7OSE9PXM7KXM8PTAmJihzPTEyLGwtLSksbys9dGhpcy5ORVBBTElfQ0FMRU5EQVJfREFUQVtsXVtzXSxzLS07cmV0dXJuIDk9PT1lPyhvKz1yLXRoaXMuTkVQQUxJX0NBTEVOREFSX0RBVEFbbF1bMF0pPDAmJihvKz1pLmRheXNJblllYXIoYykpOm8rPXRoaXMuTkVQQUxJX0NBTEVOREFSX0RBVEFbbF1bOV0tdGhpcy5ORVBBTElfQ0FMRU5EQVJfREFUQVtsXVswXSxpLm5ld0RhdGUoYywxLDEpLmFkZChvLCJkIikudG9KRCgpfSxmcm9tSkQ6ZnVuY3Rpb24odCl7dmFyIGU9bi5pbnN0YW5jZSgpLmZyb21KRCh0KSxyPWUueWVhcigpLGE9ZS5kYXlPZlllYXIoKSxpPXIrNTY7dGhpcy5fY3JlYXRlTWlzc2luZ0NhbGVuZGFyRGF0YShpKTtmb3IodmFyIG89OSxzPXRoaXMuTkVQQUxJX0NBTEVOREFSX0RBVEFbaV1bMF0sbD10aGlzLk5FUEFMSV9DQUxFTkRBUl9EQVRBW2ldW29dLXMrMTthPmw7KSsrbz4xMiYmKG89MSxpKyspLGwrPXRoaXMuTkVQQUxJX0NBTEVOREFSX0RBVEFbaV1bb107dmFyIGM9dGhpcy5ORVBBTElfQ0FMRU5EQVJfREFUQVtpXVtvXS0obC1hKTtyZXR1cm4gdGhpcy5uZXdEYXRlKGksbyxjKX0sX2NyZWF0ZU1pc3NpbmdDYWxlbmRhckRhdGE6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5kYXlzUGVyTW9udGguc2xpY2UoMCk7ZS51bnNoaWZ0KDE3KTtmb3IodmFyIHI9dC0xO3I8dCsyO3IrKykidW5kZWZpbmVkIj09dHlwZW9mIHRoaXMuTkVQQUxJX0NBTEVOREFSX0RBVEFbcl0mJih0aGlzLk5FUEFMSV9DQUxFTkRBUl9EQVRBW3JdPWUpfSxORVBBTElfQ0FMRU5EQVJfREFUQTp7MTk3MDpbMTgsMzEsMzEsMzIsMzEsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDE5NzE6WzE4LDMxLDMxLDMyLDMxLDMyLDMwLDMwLDI5LDMwLDI5LDMwLDMwXSwxOTcyOlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMF0sMTk3MzpbMTksMzAsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMzAsMjksMzFdLDE5NzQ6WzE5LDMxLDMxLDMyLDMwLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwxOTc1OlsxOCwzMSwzMSwzMiwzMiwzMCwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMTk3NjpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMjksMzAsMzFdLDE5Nzc6WzE4LDMxLDMyLDMxLDMyLDMxLDMxLDI5LDMwLDI5LDMwLDI5LDMxXSwxOTc4OlsxOCwzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMTk3OTpbMTgsMzEsMzEsMzIsMzIsMzEsMzAsMzAsMjksMzAsMjksMzAsMzBdLDE5ODA6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDI5LDMwLDMxXSwxOTgxOlsxOCwzMSwzMSwzMSwzMiwzMSwzMSwyOSwzMCwzMCwyOSwzMCwzMF0sMTk4MjpbMTgsMzEsMzEsMzIsMzEsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDE5ODM6WzE4LDMxLDMxLDMyLDMyLDMxLDMwLDMwLDI5LDMwLDI5LDMwLDMwXSwxOTg0OlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMV0sMTk4NTpbMTgsMzEsMzEsMzEsMzIsMzEsMzEsMjksMzAsMzAsMjksMzAsMzBdLDE5ODY6WzE4LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwxOTg3OlsxOCwzMSwzMiwzMSwzMiwzMSwzMCwzMCwyOSwzMCwyOSwzMCwzMF0sMTk4ODpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMjksMzAsMzFdLDE5ODk6WzE4LDMxLDMxLDMxLDMyLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwxOTkwOlsxOCwzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMTk5MTpbMTgsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMjksMzAsMjksMzAsMzBdLDE5OTI6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDMwLDI5LDMxXSwxOTkzOlsxOCwzMSwzMSwzMSwzMiwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMTk5NDpbMTgsMzEsMzEsMzIsMzEsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDE5OTU6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDI5LDMwLDMwXSwxOTk2OlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwzMCwyOSwzMV0sMTk5NzpbMTgsMzEsMzEsMzIsMzEsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDE5OTg6WzE4LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwxOTk5OlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMV0sMjAwMDpbMTcsMzAsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMzAsMjksMzFdLDIwMDE6WzE4LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDAyOlsxOCwzMSwzMSwzMiwzMiwzMSwzMCwzMCwyOSwzMCwyOSwzMCwzMF0sMjAwMzpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMjksMzAsMzFdLDIwMDQ6WzE3LDMwLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDMwLDI5LDMxXSwyMDA1OlsxOCwzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMjAwNjpbMTgsMzEsMzEsMzIsMzIsMzEsMzAsMzAsMjksMzAsMjksMzAsMzBdLDIwMDc6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDI5LDMwLDMxXSwyMDA4OlsxNywzMSwzMSwzMSwzMiwzMSwzMSwyOSwzMCwzMCwyOSwyOSwzMV0sMjAwOTpbMTgsMzEsMzEsMzIsMzEsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDIwMTA6WzE4LDMxLDMxLDMyLDMyLDMxLDMwLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDExOlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMV0sMjAxMjpbMTcsMzEsMzEsMzEsMzIsMzEsMzEsMjksMzAsMzAsMjksMzAsMzBdLDIwMTM6WzE4LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDE0OlsxOCwzMSwzMSwzMiwzMiwzMSwzMCwzMCwyOSwzMCwyOSwzMCwzMF0sMjAxNTpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMjksMzAsMzFdLDIwMTY6WzE3LDMxLDMxLDMxLDMyLDMxLDMxLDI5LDMwLDMwLDI5LDMwLDMwXSwyMDE3OlsxOCwzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMjAxODpbMTgsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMjksMzAsMjksMzAsMzBdLDIwMTk6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDMwLDI5LDMxXSwyMDIwOlsxNywzMSwzMSwzMSwzMiwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMjAyMTpbMTgsMzEsMzEsMzIsMzEsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDIwMjI6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDI5LDMwLDMwXSwyMDIzOlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwzMCwyOSwzMV0sMjAyNDpbMTcsMzEsMzEsMzEsMzIsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDIwMjU6WzE4LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDI2OlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMV0sMjAyNzpbMTcsMzAsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMzAsMjksMzFdLDIwMjg6WzE3LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDI5OlsxOCwzMSwzMSwzMiwzMSwzMiwzMCwzMCwyOSwzMCwyOSwzMCwzMF0sMjAzMDpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMzAsMzAsMzAsMzFdLDIwMzE6WzE3LDMxLDMyLDMxLDMyLDMxLDMxLDMxLDMxLDMxLDMxLDMxLDMxXSwyMDMyOlsxNywzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMl0sMjAzMzpbMTgsMzEsMzEsMzIsMzIsMzEsMzAsMzAsMjksMzAsMjksMzAsMzBdLDIwMzQ6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDI5LDMwLDMxXSwyMDM1OlsxNywzMCwzMiwzMSwzMiwzMSwzMSwyOSwzMCwzMCwyOSwyOSwzMV0sMjAzNjpbMTcsMzEsMzEsMzIsMzEsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDIwMzc6WzE4LDMxLDMxLDMyLDMyLDMxLDMwLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDM4OlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMV0sMjAzOTpbMTcsMzEsMzEsMzEsMzIsMzEsMzEsMjksMzAsMzAsMjksMzAsMzBdLDIwNDA6WzE3LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDQxOlsxOCwzMSwzMSwzMiwzMiwzMSwzMCwzMCwyOSwzMCwyOSwzMCwzMF0sMjA0MjpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMjksMzAsMzFdLDIwNDM6WzE3LDMxLDMxLDMxLDMyLDMxLDMxLDI5LDMwLDMwLDI5LDMwLDMwXSwyMDQ0OlsxNywzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMjA0NTpbMTgsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMjksMzAsMjksMzAsMzBdLDIwNDY6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDI5LDMwLDMxXSwyMDQ3OlsxNywzMSwzMSwzMSwzMiwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMjA0ODpbMTcsMzEsMzEsMzIsMzEsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDIwNDk6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDI5LDMwLDMwXSwyMDUwOlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwzMCwyOSwzMV0sMjA1MTpbMTcsMzEsMzEsMzEsMzIsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDIwNTI6WzE3LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDUzOlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMF0sMjA1NDpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMzAsMjksMzFdLDIwNTU6WzE3LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDMwLDMwLDI5LDMwXSwyMDU2OlsxNywzMSwzMSwzMiwzMSwzMiwzMCwzMCwyOSwzMCwyOSwzMCwzMF0sMjA1NzpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMjksMzAsMzFdLDIwNTg6WzE3LDMwLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDMwLDI5LDMxXSwyMDU5OlsxNywzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMjA2MDpbMTcsMzEsMzEsMzIsMzIsMzEsMzAsMzAsMjksMzAsMjksMzAsMzBdLDIwNjE6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDI5LDMwLDMxXSwyMDYyOlsxNywzMCwzMiwzMSwzMiwzMSwzMSwyOSwzMCwyOSwzMCwyOSwzMV0sMjA2MzpbMTcsMzEsMzEsMzIsMzEsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDIwNjQ6WzE3LDMxLDMxLDMyLDMyLDMxLDMwLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDY1OlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMV0sMjA2NjpbMTcsMzEsMzEsMzEsMzIsMzEsMzEsMjksMzAsMzAsMjksMjksMzFdLDIwNjc6WzE3LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDY4OlsxNywzMSwzMSwzMiwzMiwzMSwzMCwzMCwyOSwzMCwyOSwzMCwzMF0sMjA2OTpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMjksMzAsMzFdLDIwNzA6WzE3LDMxLDMxLDMxLDMyLDMxLDMxLDI5LDMwLDMwLDI5LDMwLDMwXSwyMDcxOlsxNywzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMjA3MjpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMjksMzAsMjksMzAsMzBdLDIwNzM6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDI5LDMwLDMxXSwyMDc0OlsxNywzMSwzMSwzMSwzMiwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMjA3NTpbMTcsMzEsMzEsMzIsMzEsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDIwNzY6WzE2LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDI5LDMwLDMwXSwyMDc3OlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwzMCwyOSwzMV0sMjA3ODpbMTcsMzEsMzEsMzEsMzIsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDIwNzk6WzE3LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDgwOlsxNiwzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMF0sMjA4MTpbMTcsMzEsMzEsMzIsMzIsMzEsMzAsMzAsMzAsMjksMzAsMzAsMzBdLDIwODI6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDMwLDMwLDMwXSwyMDgzOlsxNywzMSwzMSwzMiwzMSwzMSwzMCwzMCwzMCwyOSwzMCwzMCwzMF0sMjA4NDpbMTcsMzEsMzEsMzIsMzEsMzEsMzAsMzAsMzAsMjksMzAsMzAsMzBdLDIwODU6WzE3LDMxLDMyLDMxLDMyLDMxLDMxLDMwLDMwLDI5LDMwLDMwLDMwXSwyMDg2OlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwzMCwzMCwzMF0sMjA4NzpbMTYsMzEsMzEsMzIsMzEsMzEsMzEsMzAsMzAsMjksMzAsMzAsMzBdLDIwODg6WzE2LDMwLDMxLDMyLDMyLDMwLDMxLDMwLDMwLDI5LDMwLDMwLDMwXSwyMDg5OlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwzMCwzMCwzMF0sMjA5MDpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMzAsMzAsMzBdLDIwOTE6WzE2LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDMwLDI5LDMwLDMwLDMwXSwyMDkyOlsxNiwzMSwzMSwzMiwzMiwzMSwzMCwzMCwzMCwyOSwzMCwzMCwzMF0sMjA5MzpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMzAsMzAsMzBdLDIwOTQ6WzE3LDMxLDMxLDMyLDMxLDMxLDMwLDMwLDMwLDI5LDMwLDMwLDMwXSwyMDk1OlsxNywzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwzMCwzMCwzMF0sMjA5NjpbMTcsMzAsMzEsMzIsMzIsMzEsMzAsMzAsMjksMzAsMjksMzAsMzBdLDIwOTc6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDMwLDMwLDMwXSwyMDk4OlsxNywzMSwzMSwzMiwzMSwzMSwzMSwyOSwzMCwyOSwzMCwzMCwzMV0sMjA5OTpbMTcsMzEsMzEsMzIsMzEsMzEsMzEsMzAsMjksMjksMzAsMzAsMzBdLDIxMDA6WzE3LDMxLDMyLDMxLDMyLDMwLDMxLDMwLDI5LDMwLDI5LDMwLDMwXX19KSxuLmNhbGVuZGFycy5uZXBhbGk9aX0seyIuLi9tYWluIjo1NzAsIm9iamVjdC1hc3NpZ24iOjQ1Nn1dLDU2NjpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoIi4uL21haW4iKSxhPXQoIm9iamVjdC1hc3NpZ24iKTtmdW5jdGlvbiBpKHQpe3RoaXMubG9jYWw9dGhpcy5yZWdpb25hbE9wdGlvbnNbdHx8IiJdfHx0aGlzLnJlZ2lvbmFsT3B0aW9uc1siIl19ZnVuY3Rpb24gbyh0LGUpe3JldHVybiB0LWUqTWF0aC5mbG9vcih0L2UpfWkucHJvdG90eXBlPW5ldyBuLmJhc2VDYWxlbmRhcixhKGkucHJvdG90eXBlLHtuYW1lOiJQZXJzaWFuIixqZEVwb2NoOjE5NDgzMjAuNSxkYXlzUGVyTW9udGg6WzMxLDMxLDMxLDMxLDMxLDMxLDMwLDMwLDMwLDMwLDMwLDI5XSxoYXNZZWFyWmVybzohMSxtaW5Nb250aDoxLGZpcnN0TW9udGg6MSxtaW5EYXk6MSxyZWdpb25hbE9wdGlvbnM6eyIiOntuYW1lOiJQZXJzaWFuIixlcG9jaHM6WyJCUCIsIkFQIl0sbW9udGhOYW1lczpbIkZhcnZhcmRpbiIsIk9yZGliZWhlc2h0IiwiS2hvcmRhZCIsIlRpciIsIk1vcmRhZCIsIlNoYWhyaXZhciIsIk1laHIiLCJBYmFuIiwiQXphciIsIkRheSIsIkJhaG1hbiIsIkVzZmFuZCJdLG1vbnRoTmFtZXNTaG9ydDpbIkZhciIsIk9yZCIsIktobyIsIlRpciIsIk1vciIsIlNoYSIsIk1laCIsIkFiYSIsIkF6YSIsIkRheSIsIkJhaCIsIkVzZiJdLGRheU5hbWVzOlsiWWVrc2hhbWJlIiwiRG9zaGFtYmUiLCJTZXNoYW1iZSIsIkNoXHhlNmhhcnNoYW1iZSIsIlBhbmpzaGFtYmUiLCJKb20nZSIsIlNoYW1iZSJdLGRheU5hbWVzU2hvcnQ6WyJZZWsiLCJEbyIsIlNlIiwiQ2hceGU2IiwiUGFuaiIsIkpvbSIsIlNoYSJdLGRheU5hbWVzTWluOlsiWWUiLCJEbyIsIlNlIiwiQ2giLCJQYSIsIkpvIiwiU2giXSxkaWdpdHM6bnVsbCxkYXRlRm9ybWF0OiJ5eXl5L21tL2RkIixmaXJzdERheTo2LGlzUlRMOiExfX0sbGVhcFllYXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZFllYXIpO3JldHVybiA2ODIqKChlLnllYXIoKS0oZS55ZWFyKCk+MD80NzQ6NDczKSklMjgyMCs0NzQrMzgpJTI4MTY8NjgyfSx3ZWVrT2ZZZWFyOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLm5ld0RhdGUodCxlLHIpO3JldHVybiBuLmFkZCgtKG4uZGF5T2ZXZWVrKCkrMSklNywiZCIpLE1hdGguZmxvb3IoKG4uZGF5T2ZZZWFyKCktMSkvNykrMX0sZGF5c0luTW9udGg6ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLl92YWxpZGF0ZSh0LGUsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkTW9udGgpO3JldHVybiB0aGlzLmRheXNQZXJNb250aFtyLm1vbnRoKCktMV0rKDEyPT09ci5tb250aCgpJiZ0aGlzLmxlYXBZZWFyKHIueWVhcigpKT8xOjApfSx3ZWVrRGF5OmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gNSE9PXRoaXMuZGF5T2ZXZWVrKHQsZSxyKX0sdG9KRDpmdW5jdGlvbih0LGUscil7dmFyIGE9dGhpcy5fdmFsaWRhdGUodCxlLHIsbi5sb2NhbC5pbnZhbGlkRGF0ZSk7dD1hLnllYXIoKSxlPWEubW9udGgoKSxyPWEuZGF5KCk7dmFyIGk9dC0odD49MD80NzQ6NDczKSxzPTQ3NCtvKGksMjgyMCk7cmV0dXJuIHIrKGU8PTc/MzEqKGUtMSk6MzAqKGUtMSkrNikrTWF0aC5mbG9vcigoNjgyKnMtMTEwKS8yODE2KSszNjUqKHMtMSkrMTAyOTk4MypNYXRoLmZsb29yKGkvMjgyMCkrdGhpcy5qZEVwb2NoLTF9LGZyb21KRDpmdW5jdGlvbih0KXt2YXIgZT0odD1NYXRoLmZsb29yKHQpKy41KS10aGlzLnRvSkQoNDc1LDEsMSkscj1NYXRoLmZsb29yKGUvMTAyOTk4Myksbj1vKGUsMTAyOTk4MyksYT0yODIwO2lmKDEwMjk5ODIhPT1uKXt2YXIgaT1NYXRoLmZsb29yKG4vMzY2KSxzPW8obiwzNjYpO2E9TWF0aC5mbG9vcigoMjEzNCppKzI4MTYqcysyODE1KS8xMDI4NTIyKStpKzF9dmFyIGw9YSsyODIwKnIrNDc0O2w9bDw9MD9sLTE6bDt2YXIgYz10LXRoaXMudG9KRChsLDEsMSkrMSx1PWM8PTE4Nj9NYXRoLmNlaWwoYy8zMSk6TWF0aC5jZWlsKChjLTYpLzMwKSxoPXQtdGhpcy50b0pEKGwsdSwxKSsxO3JldHVybiB0aGlzLm5ld0RhdGUobCx1LGgpfX0pLG4uY2FsZW5kYXJzLnBlcnNpYW49aSxuLmNhbGVuZGFycy5qYWxhbGk9aX0seyIuLi9tYWluIjo1NzAsIm9iamVjdC1hc3NpZ24iOjQ1Nn1dLDU2NzpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoIi4uL21haW4iKSxhPXQoIm9iamVjdC1hc3NpZ24iKSxpPW4uaW5zdGFuY2UoKTtmdW5jdGlvbiBvKHQpe3RoaXMubG9jYWw9dGhpcy5yZWdpb25hbE9wdGlvbnNbdHx8IiJdfHx0aGlzLnJlZ2lvbmFsT3B0aW9uc1siIl19by5wcm90b3R5cGU9bmV3IG4uYmFzZUNhbGVuZGFyLGEoby5wcm90b3R5cGUse25hbWU6IlRhaXdhbiIsamRFcG9jaDoyNDE5NDAyLjUseWVhcnNPZmZzZXQ6MTkxMSxkYXlzUGVyTW9udGg6WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxoYXNZZWFyWmVybzohMSxtaW5Nb250aDoxLGZpcnN0TW9udGg6MSxtaW5EYXk6MSxyZWdpb25hbE9wdGlvbnM6eyIiOntuYW1lOiJUYWl3YW4iLGVwb2NoczpbIkJST0MiLCJST0MiXSxtb250aE5hbWVzOlsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXSxtb250aE5hbWVzU2hvcnQ6WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXSxkYXlOYW1lczpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sZGF5TmFtZXNTaG9ydDpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLGRheU5hbWVzTWluOlsiU3UiLCJNbyIsIlR1IiwiV2UiLCJUaCIsIkZyIiwiU2EiXSxkaWdpdHM6bnVsbCxkYXRlRm9ybWF0OiJ5eXl5L21tL2RkIixmaXJzdERheToxLGlzUlRMOiExfX0sbGVhcFllYXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZFllYXIpO3Q9dGhpcy5fdDJnWWVhcihlLnllYXIoKSk7cmV0dXJuIGkubGVhcFllYXIodCl9LHdlZWtPZlllYXI6ZnVuY3Rpb24odCxlLHIpe3ZhciBhPXRoaXMuX3ZhbGlkYXRlKHQsdGhpcy5taW5Nb250aCx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRZZWFyKTt0PXRoaXMuX3QyZ1llYXIoYS55ZWFyKCkpO3JldHVybiBpLndlZWtPZlllYXIodCxhLm1vbnRoKCksYS5kYXkoKSl9LGRheXNJbk1vbnRoOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fdmFsaWRhdGUodCxlLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZE1vbnRoKTtyZXR1cm4gdGhpcy5kYXlzUGVyTW9udGhbci5tb250aCgpLTFdKygyPT09ci5tb250aCgpJiZ0aGlzLmxlYXBZZWFyKHIueWVhcigpKT8xOjApfSx3ZWVrRGF5OmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4odGhpcy5kYXlPZldlZWsodCxlLHIpfHw3KTw2fSx0b0pEOmZ1bmN0aW9uKHQsZSxyKXt2YXIgYT10aGlzLl92YWxpZGF0ZSh0LGUscixuLmxvY2FsLmludmFsaWREYXRlKTt0PXRoaXMuX3QyZ1llYXIoYS55ZWFyKCkpO3JldHVybiBpLnRvSkQodCxhLm1vbnRoKCksYS5kYXkoKSl9LGZyb21KRDpmdW5jdGlvbih0KXt2YXIgZT1pLmZyb21KRCh0KSxyPXRoaXMuX2cydFllYXIoZS55ZWFyKCkpO3JldHVybiB0aGlzLm5ld0RhdGUocixlLm1vbnRoKCksZS5kYXkoKSl9LF90MmdZZWFyOmZ1bmN0aW9uKHQpe3JldHVybiB0K3RoaXMueWVhcnNPZmZzZXQrKHQ+PS10aGlzLnllYXJzT2Zmc2V0JiZ0PD0tMT8xOjApfSxfZzJ0WWVhcjpmdW5jdGlvbih0KXtyZXR1cm4gdC10aGlzLnllYXJzT2Zmc2V0LSh0Pj0xJiZ0PD10aGlzLnllYXJzT2Zmc2V0PzE6MCl9fSksbi5jYWxlbmRhcnMudGFpd2FuPW99LHsiLi4vbWFpbiI6NTcwLCJvYmplY3QtYXNzaWduIjo0NTZ9XSw1Njg6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCIuLi9tYWluIiksYT10KCJvYmplY3QtYXNzaWduIiksaT1uLmluc3RhbmNlKCk7ZnVuY3Rpb24gbyh0KXt0aGlzLmxvY2FsPXRoaXMucmVnaW9uYWxPcHRpb25zW3R8fCIiXXx8dGhpcy5yZWdpb25hbE9wdGlvbnNbIiJdfW8ucHJvdG90eXBlPW5ldyBuLmJhc2VDYWxlbmRhcixhKG8ucHJvdG90eXBlLHtuYW1lOiJUaGFpIixqZEVwb2NoOjE1MjMwOTguNSx5ZWFyc09mZnNldDo1NDMsZGF5c1Blck1vbnRoOlszMSwyOCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV0saGFzWWVhclplcm86ITEsbWluTW9udGg6MSxmaXJzdE1vbnRoOjEsbWluRGF5OjEscmVnaW9uYWxPcHRpb25zOnsiIjp7bmFtZToiVGhhaSIsZXBvY2hzOlsiQkJFIiwiQkUiXSxtb250aE5hbWVzOlsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXSxtb250aE5hbWVzU2hvcnQ6WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXSxkYXlOYW1lczpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sZGF5TmFtZXNTaG9ydDpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLGRheU5hbWVzTWluOlsiU3UiLCJNbyIsIlR1IiwiV2UiLCJUaCIsIkZyIiwiU2EiXSxkaWdpdHM6bnVsbCxkYXRlRm9ybWF0OiJkZC9tbS95eXl5IixmaXJzdERheTowLGlzUlRMOiExfX0sbGVhcFllYXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZFllYXIpO3Q9dGhpcy5fdDJnWWVhcihlLnllYXIoKSk7cmV0dXJuIGkubGVhcFllYXIodCl9LHdlZWtPZlllYXI6ZnVuY3Rpb24odCxlLHIpe3ZhciBhPXRoaXMuX3ZhbGlkYXRlKHQsdGhpcy5taW5Nb250aCx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRZZWFyKTt0PXRoaXMuX3QyZ1llYXIoYS55ZWFyKCkpO3JldHVybiBpLndlZWtPZlllYXIodCxhLm1vbnRoKCksYS5kYXkoKSl9LGRheXNJbk1vbnRoOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fdmFsaWRhdGUodCxlLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZE1vbnRoKTtyZXR1cm4gdGhpcy5kYXlzUGVyTW9udGhbci5tb250aCgpLTFdKygyPT09ci5tb250aCgpJiZ0aGlzLmxlYXBZZWFyKHIueWVhcigpKT8xOjApfSx3ZWVrRGF5OmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4odGhpcy5kYXlPZldlZWsodCxlLHIpfHw3KTw2fSx0b0pEOmZ1bmN0aW9uKHQsZSxyKXt2YXIgYT10aGlzLl92YWxpZGF0ZSh0LGUscixuLmxvY2FsLmludmFsaWREYXRlKTt0PXRoaXMuX3QyZ1llYXIoYS55ZWFyKCkpO3JldHVybiBpLnRvSkQodCxhLm1vbnRoKCksYS5kYXkoKSl9LGZyb21KRDpmdW5jdGlvbih0KXt2YXIgZT1pLmZyb21KRCh0KSxyPXRoaXMuX2cydFllYXIoZS55ZWFyKCkpO3JldHVybiB0aGlzLm5ld0RhdGUocixlLm1vbnRoKCksZS5kYXkoKSl9LF90MmdZZWFyOmZ1bmN0aW9uKHQpe3JldHVybiB0LXRoaXMueWVhcnNPZmZzZXQtKHQ+PTEmJnQ8PXRoaXMueWVhcnNPZmZzZXQ/MTowKX0sX2cydFllYXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQrdGhpcy55ZWFyc09mZnNldCsodD49LXRoaXMueWVhcnNPZmZzZXQmJnQ8PS0xPzE6MCl9fSksbi5jYWxlbmRhcnMudGhhaT1vfSx7Ii4uL21haW4iOjU3MCwib2JqZWN0LWFzc2lnbiI6NDU2fV0sNTY5OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi4vbWFpbiIpLGE9dCgib2JqZWN0LWFzc2lnbiIpO2Z1bmN0aW9uIGkodCl7dGhpcy5sb2NhbD10aGlzLnJlZ2lvbmFsT3B0aW9uc1t0fHwiIl18fHRoaXMucmVnaW9uYWxPcHRpb25zWyIiXX1pLnByb3RvdHlwZT1uZXcgbi5iYXNlQ2FsZW5kYXIsYShpLnByb3RvdHlwZSx7bmFtZToiVW1tQWxRdXJhIixoYXNZZWFyWmVybzohMSxtaW5Nb250aDoxLGZpcnN0TW9udGg6MSxtaW5EYXk6MSxyZWdpb25hbE9wdGlvbnM6eyIiOntuYW1lOiJVbW0gYWwtUXVyYSIsZXBvY2hzOlsiQkgiLCJBSCJdLG1vbnRoTmFtZXM6WyJBbC1NdWhhcnJhbSIsIlNhZmFyIiwiUmFiaScgYWwtYXd3YWwiLCJSYWJpJyBBbC1UaGFuaSIsIkp1bWFkYSBBbC1Bd3dhbCIsIkp1bWFkYSBBbC1UaGFuaSIsIlJhamFiIiwiU2hhJ2FiYW4iLCJSYW1hZGFuIiwiU2hhd3dhbCIsIkRodSBhbC1RaSdkYWgiLCJEaHUgYWwtSGlqamFoIl0sbW9udGhOYW1lc1Nob3J0OlsiTXVoIiwiU2FmIiwiUmFiMSIsIlJhYjIiLCJKdW0xIiwiSnVtMiIsIlJhaiIsIlNoYSciLCJSYW0iLCJTaGF3IiwiRGh1USIsIkRodUgiXSxkYXlOYW1lczpbIllhd20gYWwtQWhhZCIsIllhd20gYWwtSXRobmFpbiIsIllhd20gYWwtVGhhbFx1MDEwMXRoXHUwMTAxXHUyMDE5IiwiWWF3bSBhbC1BcmJhXHUyMDE4XHUwMTAxXHUyMDE5IiwiWWF3bSBhbC1LaGFtXHUwMTJicyIsIllhd20gYWwtSnVtXHUyMDE4YSIsIllhd20gYWwtU2FidCJdLGRheU5hbWVzTWluOlsiQWgiLCJJdGgiLCJUaCIsIkFyIiwiS2giLCJKdSIsIlNhIl0sZGlnaXRzOm51bGwsZGF0ZUZvcm1hdDoieXl5eS9tbS9kZCIsZmlyc3REYXk6Nixpc1JUTDohMH19LGxlYXBZZWFyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3ZhbGlkYXRlKHQsdGhpcy5taW5Nb250aCx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRZZWFyKTtyZXR1cm4gMzU1PT09dGhpcy5kYXlzSW5ZZWFyKGUueWVhcigpKX0sd2Vla09mWWVhcjpmdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5uZXdEYXRlKHQsZSxyKTtyZXR1cm4gbi5hZGQoLW4uZGF5T2ZXZWVrKCksImQiKSxNYXRoLmZsb29yKChuLmRheU9mWWVhcigpLTEpLzcpKzF9LGRheXNJblllYXI6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj0xO3I8PTEyO3IrKyllKz10aGlzLmRheXNJbk1vbnRoKHQscik7cmV0dXJuIGV9LGRheXNJbk1vbnRoOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXRoaXMuX3ZhbGlkYXRlKHQsZSx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRNb250aCkudG9KRCgpLTI0ZTUrLjUsYT0wLGk9MDtpPG8ubGVuZ3RoO2krKyl7aWYob1tpXT5yKXJldHVybiBvW2FdLW9bYS0xXTthKyt9cmV0dXJuIDMwfSx3ZWVrRGF5OmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gNSE9PXRoaXMuZGF5T2ZXZWVrKHQsZSxyKX0sdG9KRDpmdW5jdGlvbih0LGUscil7dmFyIGE9dGhpcy5fdmFsaWRhdGUodCxlLHIsbi5sb2NhbC5pbnZhbGlkRGF0ZSksaT0xMiooYS55ZWFyKCktMSkrYS5tb250aCgpLTE1MjkyO3JldHVybiBhLmRheSgpK29baS0xXS0xKzI0ZTUtLjV9LGZyb21KRDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dC0yNGU1Ky41LHI9MCxuPTA7bjxvLmxlbmd0aCYmIShvW25dPmUpO24rKylyKys7dmFyIGE9cisxNTI5MixpPU1hdGguZmxvb3IoKGEtMSkvMTIpLHM9aSsxLGw9YS0xMippLGM9ZS1vW3ItMV0rMTtyZXR1cm4gdGhpcy5uZXdEYXRlKHMsbCxjKX0saXNWYWxpZDpmdW5jdGlvbih0LGUscil7dmFyIGE9bi5iYXNlQ2FsZW5kYXIucHJvdG90eXBlLmlzVmFsaWQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBhJiYoYT0odD1udWxsIT10LnllYXI/dC55ZWFyOnQpPj0xMjc2JiZ0PD0xNTAwKSxhfSxfdmFsaWRhdGU6ZnVuY3Rpb24odCxlLHIsYSl7dmFyIGk9bi5iYXNlQ2FsZW5kYXIucHJvdG90eXBlLl92YWxpZGF0ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7aWYoaS55ZWFyPDEyNzZ8fGkueWVhcj4xNTAwKXRocm93IGEucmVwbGFjZSgvXHswXH0vLHRoaXMubG9jYWwubmFtZSk7cmV0dXJuIGl9fSksbi5jYWxlbmRhcnMudW1tYWxxdXJhPWk7dmFyIG89WzIwLDUwLDc5LDEwOSwxMzgsMTY4LDE5NywyMjcsMjU2LDI4NiwzMTUsMzQ1LDM3NCw0MDQsNDMzLDQ2Myw0OTIsNTIyLDU1MSw1ODEsNjExLDY0MSw2NzAsNzAwLDcyOSw3NTksNzg4LDgxOCw4NDcsODc3LDkwNiw5MzYsOTY1LDk5NSwxMDI0LDEwNTQsMTA4MywxMTEzLDExNDIsMTE3MiwxMjAxLDEyMzEsMTI2MCwxMjkwLDEzMjAsMTM1MCwxMzc5LDE0MDksMTQzOCwxNDY4LDE0OTcsMTUyNywxNTU2LDE1ODYsMTYxNSwxNjQ1LDE2NzQsMTcwNCwxNzMzLDE3NjMsMTc5MiwxODIyLDE4NTEsMTg4MSwxOTEwLDE5NDAsMTk2OSwxOTk5LDIwMjgsMjA1OCwyMDg3LDIxMTcsMjE0NiwyMTc2LDIyMDUsMjIzNSwyMjY0LDIyOTQsMjMyMywyMzUzLDIzODMsMjQxMywyNDQyLDI0NzIsMjUwMSwyNTMxLDI1NjAsMjU5MCwyNjE5LDI2NDksMjY3OCwyNzA4LDI3MzcsMjc2NywyNzk2LDI4MjYsMjg1NSwyODg1LDI5MTQsMjk0NCwyOTczLDMwMDMsMzAzMiwzMDYyLDMwOTEsMzEyMSwzMTUwLDMxODAsMzIwOSwzMjM5LDMyNjgsMzI5OCwzMzI3LDMzNTcsMzM4NiwzNDE2LDM0NDYsMzQ3NiwzNTA1LDM1MzUsMzU2NCwzNTk0LDM2MjMsMzY1MywzNjgyLDM3MTIsMzc0MSwzNzcxLDM4MDAsMzgzMCwzODU5LDM4ODksMzkxOCwzOTQ4LDM5NzcsNDAwNyw0MDM2LDQwNjYsNDA5NSw0MTI1LDQxNTUsNDE4NSw0MjE0LDQyNDQsNDI3Myw0MzAzLDQzMzIsNDM2Miw0MzkxLDQ0MjEsNDQ1MCw0NDgwLDQ1MDksNDUzOSw0NTY4LDQ1OTgsNDYyNyw0NjU3LDQ2ODYsNDcxNiw0NzQ1LDQ3NzUsNDgwNCw0ODM0LDQ4NjMsNDg5Myw0OTIyLDQ5NTIsNDk4MSw1MDExLDUwNDAsNTA3MCw1MDk5LDUxMjksNTE1OCw1MTg4LDUyMTgsNTI0OCw1Mjc3LDUzMDcsNTMzNiw1MzY2LDUzOTUsNTQyNSw1NDU0LDU0ODQsNTUxMyw1NTQzLDU1NzIsNTYwMiw1NjMxLDU2NjEsNTY5MCw1NzIwLDU3NDksNTc3OSw1ODA4LDU4MzgsNTg2Nyw1ODk3LDU5MjYsNTk1Niw1OTg1LDYwMTUsNjA0NCw2MDc0LDYxMDMsNjEzMyw2MTYyLDYxOTIsNjIyMSw2MjUxLDYyODEsNjMxMSw2MzQwLDYzNzAsNjM5OSw2NDI5LDY0NTgsNjQ4OCw2NTE3LDY1NDcsNjU3Niw2NjA2LDY2MzUsNjY2NSw2Njk0LDY3MjQsNjc1Myw2NzgzLDY4MTIsNjg0Miw2ODcxLDY5MDEsNjkzMCw2OTYwLDY5ODksNzAxOSw3MDQ4LDcwNzgsNzEwNyw3MTM3LDcxNjYsNzE5Niw3MjI1LDcyNTUsNzI4NCw3MzE0LDczNDQsNzM3NCw3NDAzLDc0MzMsNzQ2Miw3NDkyLDc1MjEsNzU1MSw3NTgwLDc2MTAsNzYzOSw3NjY5LDc2OTgsNzcyOCw3NzU3LDc3ODcsNzgxNiw3ODQ2LDc4NzUsNzkwNSw3OTM0LDc5NjQsNzk5Myw4MDIzLDgwNTMsODA4Myw4MTEyLDgxNDIsODE3MSw4MjAxLDgyMzAsODI2MCw4Mjg5LDgzMTksODM0OCw4Mzc4LDg0MDcsODQzNyw4NDY2LDg0OTYsODUyNSw4NTU1LDg1ODQsODYxNCw4NjQzLDg2NzMsODcwMiw4NzMyLDg3NjEsODc5MSw4ODIxLDg4NTAsODg4MCw4OTA5LDg5MzgsODk2OCw4OTk3LDkwMjcsOTA1Niw5MDg2LDkxMTUsOTE0NSw5MTc1LDkyMDUsOTIzNCw5MjY0LDkyOTMsOTMyMiw5MzUyLDkzODEsOTQxMCw5NDQwLDk0NzAsOTQ5OSw5NTI5LDk1NTksOTU4OSw5NjE4LDk2NDgsOTY3Nyw5NzA2LDk3MzYsOTc2NSw5Nzk0LDk4MjQsOTg1Myw5ODgzLDk5MTMsOTk0Myw5OTcyLDEwMDAyLDEwMDMyLDEwMDYxLDEwMDkwLDEwMTIwLDEwMTQ5LDEwMTc4LDEwMjA4LDEwMjM3LDEwMjY3LDEwMjk3LDEwMzI2LDEwMzU2LDEwMzg2LDEwNDE1LDEwNDQ1LDEwNDc0LDEwNTA0LDEwNTMzLDEwNTYyLDEwNTkyLDEwNjIxLDEwNjUxLDEwNjgwLDEwNzEwLDEwNzQwLDEwNzcwLDEwNzk5LDEwODI5LDEwODU4LDEwODg4LDEwOTE3LDEwOTQ3LDEwOTc2LDExMDA1LDExMDM1LDExMDY0LDExMDk0LDExMTI0LDExMTUzLDExMTgzLDExMjEzLDExMjQyLDExMjcyLDExMzAxLDExMzMxLDExMzYwLDExMzg5LDExNDE5LDExNDQ4LDExNDc4LDExNTA3LDExNTM3LDExNTY3LDExNTk2LDExNjI2LDExNjU1LDExNjg1LDExNzE1LDExNzQ0LDExNzc0LDExODAzLDExODMyLDExODYyLDExODkxLDExOTIxLDExOTUwLDExOTgwLDEyMDEwLDEyMDM5LDEyMDY5LDEyMDk5LDEyMTI4LDEyMTU4LDEyMTg3LDEyMjE2LDEyMjQ2LDEyMjc1LDEyMzA0LDEyMzM0LDEyMzY0LDEyMzkzLDEyNDIzLDEyNDUzLDEyNDgzLDEyNTEyLDEyNTQyLDEyNTcxLDEyNjAwLDEyNjMwLDEyNjU5LDEyNjg4LDEyNzE4LDEyNzQ3LDEyNzc3LDEyODA3LDEyODM3LDEyODY2LDEyODk2LDEyOTI2LDEyOTU1LDEyOTg0LDEzMDE0LDEzMDQzLDEzMDcyLDEzMTAyLDEzMTMxLDEzMTYxLDEzMTkxLDEzMjIwLDEzMjUwLDEzMjgwLDEzMzEwLDEzMzM5LDEzMzY4LDEzMzk4LDEzNDI3LDEzNDU2LDEzNDg2LDEzNTE1LDEzNTQ1LDEzNTc0LDEzNjA0LDEzNjM0LDEzNjY0LDEzNjkzLDEzNzIzLDEzNzUyLDEzNzgyLDEzODExLDEzODQwLDEzODcwLDEzODk5LDEzOTI5LDEzOTU4LDEzOTg4LDE0MDE4LDE0MDQ3LDE0MDc3LDE0MTA3LDE0MTM2LDE0MTY2LDE0MTk1LDE0MjI0LDE0MjU0LDE0MjgzLDE0MzEzLDE0MzQyLDE0MzcyLDE0NDAxLDE0NDMxLDE0NDYxLDE0NDkwLDE0NTIwLDE0NTUwLDE0NTc5LDE0NjA5LDE0NjM4LDE0NjY3LDE0Njk3LDE0NzI2LDE0NzU2LDE0Nzg1LDE0ODE1LDE0ODQ0LDE0ODc0LDE0OTA0LDE0OTMzLDE0OTYzLDE0OTkzLDE1MDIxLDE1MDUxLDE1MDgxLDE1MTEwLDE1MTQwLDE1MTY5LDE1MTk5LDE1MjI4LDE1MjU4LDE1Mjg3LDE1MzE3LDE1MzQ3LDE1Mzc3LDE1NDA2LDE1NDM2LDE1NDY1LDE1NDk0LDE1NTI0LDE1NTUzLDE1NTgyLDE1NjEyLDE1NjQxLDE1NjcxLDE1NzAxLDE1NzMxLDE1NzYwLDE1NzkwLDE1ODIwLDE1ODQ5LDE1ODc4LDE1OTA4LDE1OTM3LDE1OTY2LDE1OTk2LDE2MDI1LDE2MDU1LDE2MDg1LDE2MTE0LDE2MTQ0LDE2MTc0LDE2MjA0LDE2MjMzLDE2MjYyLDE2MjkyLDE2MzIxLDE2MzUwLDE2MzgwLDE2NDA5LDE2NDM5LDE2NDY4LDE2NDk4LDE2NTI4LDE2NTU4LDE2NTg3LDE2NjE3LDE2NjQ2LDE2Njc2LDE2NzA1LDE2NzM0LDE2NzY0LDE2NzkzLDE2ODIzLDE2ODUyLDE2ODgyLDE2OTEyLDE2OTQxLDE2OTcxLDE3MDAxLDE3MDMwLDE3MDYwLDE3MDg5LDE3MTE4LDE3MTQ4LDE3MTc3LDE3MjA3LDE3MjM2LDE3MjY2LDE3Mjk1LDE3MzI1LDE3MzU1LDE3Mzg0LDE3NDE0LDE3NDQ0LDE3NDczLDE3NTAyLDE3NTMyLDE3NTYxLDE3NTkxLDE3NjIwLDE3NjUwLDE3Njc5LDE3NzA5LDE3NzM4LDE3NzY4LDE3Nzk4LDE3ODI3LDE3ODU3LDE3ODg2LDE3OTE2LDE3OTQ1LDE3OTc1LDE4MDA0LDE4MDM0LDE4MDYzLDE4MDkzLDE4MTIyLDE4MTUyLDE4MTgxLDE4MjExLDE4MjQxLDE4MjcwLDE4MzAwLDE4MzMwLDE4MzU5LDE4Mzg4LDE4NDE4LDE4NDQ3LDE4NDc2LDE4NTA2LDE4NTM1LDE4NTY1LDE4NTk1LDE4NjI1LDE4NjU0LDE4Njg0LDE4NzE0LDE4NzQzLDE4NzcyLDE4ODAyLDE4ODMxLDE4ODYwLDE4ODkwLDE4OTE5LDE4OTQ5LDE4OTc5LDE5MDA4LDE5MDM4LDE5MDY4LDE5MDk4LDE5MTI3LDE5MTU2LDE5MTg2LDE5MjE1LDE5MjQ0LDE5Mjc0LDE5MzAzLDE5MzMzLDE5MzYyLDE5MzkyLDE5NDIyLDE5NDUyLDE5NDgxLDE5NTExLDE5NTQwLDE5NTcwLDE5NTk5LDE5NjI4LDE5NjU4LDE5Njg3LDE5NzE3LDE5NzQ2LDE5Nzc2LDE5ODA2LDE5ODM2LDE5ODY1LDE5ODk1LDE5OTI0LDE5OTU0LDE5OTgzLDIwMDEyLDIwMDQyLDIwMDcxLDIwMTAxLDIwMTMwLDIwMTYwLDIwMTkwLDIwMjE5LDIwMjQ5LDIwMjc5LDIwMzA4LDIwMzM4LDIwMzY3LDIwMzk2LDIwNDI2LDIwNDU1LDIwNDg1LDIwNTE0LDIwNTQ0LDIwNTczLDIwNjAzLDIwNjMzLDIwNjYyLDIwNjkyLDIwNzIxLDIwNzUxLDIwNzgwLDIwODEwLDIwODM5LDIwODY5LDIwODk4LDIwOTI4LDIwOTU3LDIwOTg3LDIxMDE2LDIxMDQ2LDIxMDc2LDIxMTA1LDIxMTM1LDIxMTY0LDIxMTk0LDIxMjIzLDIxMjUzLDIxMjgyLDIxMzEyLDIxMzQxLDIxMzcxLDIxNDAwLDIxNDMwLDIxNDU5LDIxNDg5LDIxNTE5LDIxNTQ4LDIxNTc4LDIxNjA3LDIxNjM3LDIxNjY2LDIxNjk2LDIxNzI1LDIxNzU0LDIxNzg0LDIxODEzLDIxODQzLDIxODczLDIxOTAyLDIxOTMyLDIxOTYyLDIxOTkxLDIyMDIxLDIyMDUwLDIyMDgwLDIyMTA5LDIyMTM4LDIyMTY4LDIyMTk3LDIyMjI3LDIyMjU2LDIyMjg2LDIyMzE2LDIyMzQ2LDIyMzc1LDIyNDA1LDIyNDM0LDIyNDY0LDIyNDkzLDIyNTIyLDIyNTUyLDIyNTgxLDIyNjExLDIyNjQwLDIyNjcwLDIyNzAwLDIyNzMwLDIyNzU5LDIyNzg5LDIyODE4LDIyODQ4LDIyODc3LDIyOTA2LDIyOTM2LDIyOTY1LDIyOTk0LDIzMDI0LDIzMDU0LDIzMDgzLDIzMTEzLDIzMTQzLDIzMTczLDIzMjAyLDIzMjMyLDIzMjYxLDIzMjkwLDIzMzIwLDIzMzQ5LDIzMzc5LDIzNDA4LDIzNDM4LDIzNDY3LDIzNDk3LDIzNTI3LDIzNTU2LDIzNTg2LDIzNjE2LDIzNjQ1LDIzNjc0LDIzNzA0LDIzNzMzLDIzNzYzLDIzNzkyLDIzODIyLDIzODUxLDIzODgxLDIzOTEwLDIzOTQwLDIzOTcwLDIzOTk5LDI0MDI5LDI0MDU4LDI0MDg4LDI0MTE3LDI0MTQ3LDI0MTc2LDI0MjA2LDI0MjM1LDI0MjY1LDI0Mjk0LDI0MzI0LDI0MzUzLDI0MzgzLDI0NDEzLDI0NDQyLDI0NDcyLDI0NTAxLDI0NTMxLDI0NTYwLDI0NTkwLDI0NjE5LDI0NjQ4LDI0Njc4LDI0NzA3LDI0NzM3LDI0NzY3LDI0Nzk2LDI0ODI2LDI0ODU2LDI0ODg1LDI0OTE1LDI0OTQ0LDI0OTc0LDI1MDAzLDI1MDMyLDI1MDYyLDI1MDkxLDI1MTIxLDI1MTUwLDI1MTgwLDI1MjEwLDI1MjQwLDI1MjY5LDI1Mjk5LDI1MzI4LDI1MzU4LDI1Mzg3LDI1NDE2LDI1NDQ2LDI1NDc1LDI1NTA1LDI1NTM0LDI1NTY0LDI1NTk0LDI1NjI0LDI1NjUzLDI1NjgzLDI1NzEyLDI1NzQyLDI1NzcxLDI1ODAwLDI1ODMwLDI1ODU5LDI1ODg4LDI1OTE4LDI1OTQ4LDI1OTc3LDI2MDA3LDI2MDM3LDI2MDY3LDI2MDk2LDI2MTI2LDI2MTU1LDI2MTg0LDI2MjE0LDI2MjQzLDI2MjcyLDI2MzAyLDI2MzMyLDI2MzYxLDI2MzkxLDI2NDIxLDI2NDUxLDI2NDgwLDI2NTEwLDI2NTM5LDI2NTY4LDI2NTk4LDI2NjI3LDI2NjU2LDI2Njg2LDI2NzE1LDI2NzQ1LDI2Nzc1LDI2ODA1LDI2ODM0LDI2ODY0LDI2ODkzLDI2OTIzLDI2OTUyLDI2OTgyLDI3MDExLDI3MDQxLDI3MDcwLDI3MDk5LDI3MTI5LDI3MTU5LDI3MTg4LDI3MjE4LDI3MjQ4LDI3Mjc3LDI3MzA3LDI3MzM2LDI3MzY2LDI3Mzk1LDI3NDI1LDI3NDU0LDI3NDg0LDI3NTEzLDI3NTQyLDI3NTcyLDI3NjAyLDI3NjMxLDI3NjYxLDI3NjkxLDI3NzIwLDI3NzUwLDI3Nzc5LDI3ODA5LDI3ODM4LDI3ODY4LDI3ODk3LDI3OTI2LDI3OTU2LDI3OTg1LDI4MDE1LDI4MDQ1LDI4MDc0LDI4MTA0LDI4MTM0LDI4MTYzLDI4MTkzLDI4MjIyLDI4MjUyLDI4MjgxLDI4MzEwLDI4MzQwLDI4MzY5LDI4Mzk5LDI4NDI4LDI4NDU4LDI4NDg4LDI4NTE3LDI4NTQ3LDI4NTc3LDI4NjA3LDI4NjM2LDI4NjY1LDI4Njk1LDI4NzI0LDI4NzU0LDI4NzgzLDI4ODEzLDI4ODQzLDI4ODcyLDI4OTAxLDI4OTMxLDI4OTYwLDI4OTkwLDI5MDE5LDI5MDQ5LDI5MDc4LDI5MTA4LDI5MTM3LDI5MTY3LDI5MTk2LDI5MjI2LDI5MjU1LDI5Mjg1LDI5MzE1LDI5MzQ1LDI5Mzc1LDI5NDA0LDI5NDM0LDI5NDYzLDI5NDkyLDI5NTIyLDI5NTUxLDI5NTgwLDI5NjEwLDI5NjQwLDI5NjY5LDI5Njk5LDI5NzI5LDI5NzU5LDI5Nzg4LDI5ODE4LDI5ODQ3LDI5ODc2LDI5OTA2LDI5OTM1LDI5OTY0LDI5OTk0LDMwMDIzLDMwMDUzLDMwMDgyLDMwMTEyLDMwMTQxLDMwMTcxLDMwMjAwLDMwMjMwLDMwMjU5LDMwMjg5LDMwMzE4LDMwMzQ4LDMwMzc4LDMwNDA4LDMwNDM3LDMwNDY3LDMwNDk2LDMwNTI2LDMwNTU1LDMwNTg1LDMwNjE0LDMwNjQ0LDMwNjczLDMwNzAzLDMwNzMyLDMwNzYyLDMwNzkxLDMwODIxLDMwODUwLDMwODgwLDMwOTA5LDMwOTM5LDMwOTY4LDMwOTk4LDMxMDI3LDMxMDU3LDMxMDg2LDMxMTE2LDMxMTQ1LDMxMTc1LDMxMjA0LDMxMjM0LDMxMjYzLDMxMjkzLDMxMzIyLDMxMzUyLDMxMzgxLDMxNDExLDMxNDQxLDMxNDcxLDMxNTAwLDMxNTMwLDMxNTU5LDMxNTg5LDMxNjE4LDMxNjQ4LDMxNjc2LDMxNzA2LDMxNzM2LDMxNzY2LDMxNzk1LDMxODI1LDMxODU0LDMxODg0LDMxOTEzLDMxOTQzLDMxOTcyLDMyMDAyLDMyMDMxLDMyMDYxLDMyMDkwLDMyMTIwLDMyMTUwLDMyMTgwLDMyMjA5LDMyMjM5LDMyMjY4LDMyMjk4LDMyMzI3LDMyMzU3LDMyMzg2LDMyNDE2LDMyNDQ1LDMyNDc1LDMyNTA0LDMyNTM0LDMyNTYzLDMyNTkzLDMyNjIyLDMyNjUyLDMyNjgxLDMyNzExLDMyNzQwLDMyNzcwLDMyNzk5LDMyODI5LDMyODU4LDMyODg4LDMyOTE3LDMyOTQ3LDMyOTc2LDMzMDA2LDMzMDM1LDMzMDY1LDMzMDk0LDMzMTI0LDMzMTUzLDMzMTgzLDMzMjEzLDMzMjQzLDMzMjcyLDMzMzAyLDMzMzMxLDMzMzYxLDMzMzkwLDMzNDIwLDMzNDUwLDMzNDc5LDMzNTA5LDMzNTM5LDMzNTY4LDMzNTk4LDMzNjI3LDMzNjU3LDMzNjg2LDMzNzE2LDMzNzQ1LDMzNzc1LDMzODA0LDMzODM0LDMzODYzLDMzODkzLDMzOTIyLDMzOTUyLDMzOTgxLDM0MDExLDM0MDQwLDM0MDY5LDM0MDk5LDM0MTI4LDM0MTU4LDM0MTg3LDM0MjE3LDM0MjQ3LDM0Mjc3LDM0MzA2LDM0MzM2LDM0MzY1LDM0Mzk1LDM0NDI0LDM0NDU0LDM0NDgzLDM0NTEyLDM0NTQyLDM0NTcxLDM0NjAxLDM0NjMxLDM0NjYwLDM0NjkwLDM0NzE5LDM0NzQ5LDM0Nzc4LDM0ODA4LDM0ODM3LDM0ODY3LDM0ODk2LDM0OTI2LDM0OTU1LDM0OTg1LDM1MDE1LDM1MDQ0LDM1MDc0LDM1MTAzLDM1MTMzLDM1MTYyLDM1MTkyLDM1MjIyLDM1MjUxLDM1MjgwLDM1MzEwLDM1MzQwLDM1MzcwLDM1Mzk5LDM1NDI5LDM1NDU4LDM1NDg4LDM1NTE3LDM1NTQ3LDM1NTc2LDM1NjA1LDM1NjM1LDM1NjY1LDM1Njk0LDM1NzIzLDM1NzUzLDM1NzgyLDM1ODExLDM1ODQxLDM1ODcxLDM1OTAxLDM1OTMwLDM1OTYwLDM1OTg5LDM2MDE5LDM2MDQ4LDM2MDc4LDM2MTA3LDM2MTM2LDM2MTY2LDM2MTk1LDM2MjI1LDM2MjU0LDM2Mjg0LDM2MzE0LDM2MzQzLDM2MzczLDM2NDAzLDM2NDMzLDM2NDYyLDM2NDkyLDM2NTIxLDM2NTUxLDM2NTgwLDM2NjEwLDM2NjM5LDM2NjY5LDM2Njk4LDM2NzI4LDM2NzU3LDM2Nzg2LDM2ODE2LDM2ODQ1LDM2ODc1LDM2OTA0LDM2OTM0LDM2OTYzLDM2OTkzLDM3MDIyLDM3MDUyLDM3MDgxLDM3MTExLDM3MTQxLDM3MTcwLDM3MjAwLDM3MjI5LDM3MjU5LDM3Mjg4LDM3MzE4LDM3MzQ3LDM3Mzc3LDM3NDA2LDM3NDM2LDM3NDY1LDM3NDk1LDM3NTI0LDM3NTU0LDM3NTg0LDM3NjEzLDM3NjQzLDM3NjcyLDM3NzAxLDM3NzMxLDM3NzYwLDM3NzkwLDM3ODE5LDM3ODQ5LDM3ODc4LDM3OTA4LDM3OTM4LDM3OTY3LDM3OTk3LDM4MDI3LDM4MDU2LDM4MDg1LDM4MTE1LDM4MTQ0LDM4MTc0LDM4MjAzLDM4MjMzLDM4MjYyLDM4MjkyLDM4MzIyLDM4MzUxLDM4MzgxLDM4NDEwLDM4NDQwLDM4NDY5LDM4NDk5LDM4NTI4LDM4NTU4LDM4NTg3LDM4NjE3LDM4NjQ2LDM4Njc2LDM4NzA1LDM4NzM1LDM4NzY0LDM4Nzk0LDM4ODIzLDM4ODUzLDM4ODgyLDM4OTEyLDM4OTQxLDM4OTcxLDM5MDAxLDM5MDMwLDM5MDU5LDM5MDg5LDM5MTE4LDM5MTQ4LDM5MTc4LDM5MjA4LDM5MjM3LDM5MjY3LDM5Mjk3LDM5MzI2LDM5MzU1LDM5Mzg1LDM5NDE0LDM5NDQ0LDM5NDczLDM5NTAzLDM5NTMyLDM5NTYyLDM5NTkyLDM5NjIxLDM5NjUwLDM5NjgwLDM5NzA5LDM5NzM5LDM5NzY4LDM5Nzk4LDM5ODI3LDM5ODU3LDM5ODg2LDM5OTE2LDM5OTQ2LDM5OTc1LDQwMDA1LDQwMDM1LDQwMDY0LDQwMDk0LDQwMTIzLDQwMTUzLDQwMTgyLDQwMjEyLDQwMjQxLDQwMjcxLDQwMzAwLDQwMzMwLDQwMzU5LDQwMzg5LDQwNDE4LDQwNDQ4LDQwNDc3LDQwNTA3LDQwNTM2LDQwNTY2LDQwNTk1LDQwNjI1LDQwNjU1LDQwNjg1LDQwNzE0LDQwNzQ0LDQwNzczLDQwODAzLDQwODMyLDQwODYyLDQwODkyLDQwOTIxLDQwOTUxLDQwOTgwLDQxMDA5LDQxMDM5LDQxMDY4LDQxMDk4LDQxMTI3LDQxMTU3LDQxMTg2LDQxMjE2LDQxMjQ1LDQxMjc1LDQxMzA0LDQxMzM0LDQxMzY0LDQxMzkzLDQxNDIyLDQxNDUyLDQxNDgxLDQxNTExLDQxNTQwLDQxNTcwLDQxNTk5LDQxNjI5LDQxNjU4LDQxNjg4LDQxNzE4LDQxNzQ4LDQxNzc3LDQxODA3LDQxODM2LDQxODY1LDQxODk0LDQxOTI0LDQxOTUzLDQxOTgzLDQyMDEyLDQyMDQyLDQyMDcyLDQyMTAyLDQyMTMxLDQyMTYxLDQyMTkwLDQyMjIwLDQyMjQ5LDQyMjc5LDQyMzA4LDQyMzM3LDQyMzY3LDQyMzk3LDQyNDI2LDQyNDU2LDQyNDg1LDQyNTE1LDQyNTQ1LDQyNTc0LDQyNjA0LDQyNjMzLDQyNjYyLDQyNjkyLDQyNzIxLDQyNzUxLDQyNzgwLDQyODEwLDQyODM5LDQyODY5LDQyODk5LDQyOTI5LDQyOTU4LDQyOTg4LDQzMDE3LDQzMDQ2LDQzMDc2LDQzMTA1LDQzMTM1LDQzMTY0LDQzMTk0LDQzMjIzLDQzMjUzLDQzMjgzLDQzMzEyLDQzMzQyLDQzMzcxLDQzNDAxLDQzNDMwLDQzNDYwLDQzNDg5LDQzNTE5LDQzNTQ4LDQzNTc4LDQzNjA3LDQzNjM3LDQzNjY2LDQzNjk2LDQzNzI2LDQzNzU1LDQzNzg1LDQzODE0LDQzODQ0LDQzODczLDQzOTAzLDQzOTMyLDQzOTYyLDQzOTkxLDQ0MDIxLDQ0MDUwLDQ0MDgwLDQ0MTA5LDQ0MTM5LDQ0MTY5LDQ0MTk4LDQ0MjI4LDQ0MjU4LDQ0Mjg3LDQ0MzE3LDQ0MzQ2LDQ0Mzc1LDQ0NDA1LDQ0NDM0LDQ0NDY0LDQ0NDkzLDQ0NTIzLDQ0NTUzLDQ0NTgyLDQ0NjEyLDQ0NjQxLDQ0NjcxLDQ0NzAwLDQ0NzMwLDQ0NzU5LDQ0Nzg4LDQ0ODE4LDQ0ODQ3LDQ0ODc3LDQ0OTA2LDQ0OTM2LDQ0OTY2LDQ0OTk2LDQ1MDI1LDQ1MDU1LDQ1MDg0LDQ1MTE0LDQ1MTQzLDQ1MTcyLDQ1MjAyLDQ1MjMxLDQ1MjYxLDQ1MjkwLDQ1MzIwLDQ1MzUwLDQ1MzgwLDQ1NDA5LDQ1NDM5LDQ1NDY4LDQ1NDk4LDQ1NTI3LDQ1NTU2LDQ1NTg2LDQ1NjE1LDQ1NjQ0LDQ1Njc0LDQ1NzA0LDQ1NzMzLDQ1NzYzLDQ1NzkzLDQ1ODIzLDQ1ODUyLDQ1ODgyLDQ1OTExLDQ1OTQwLDQ1OTcwLDQ1OTk5LDQ2MDI4LDQ2MDU4LDQ2MDg4LDQ2MTE3LDQ2MTQ3LDQ2MTc3LDQ2MjA2LDQ2MjM2LDQ2MjY1LDQ2Mjk1LDQ2MzI0LDQ2MzU0LDQ2MzgzLDQ2NDEzLDQ2NDQyLDQ2NDcyLDQ2NTAxLDQ2NTMxLDQ2NTYwLDQ2NTkwLDQ2NjIwLDQ2NjQ5LDQ2Njc5LDQ2NzA4LDQ2NzM4LDQ2NzY3LDQ2Nzk3LDQ2ODI2LDQ2ODU2LDQ2ODg1LDQ2OTE1LDQ2OTQ0LDQ2OTc0LDQ3MDAzLDQ3MDMzLDQ3MDYzLDQ3MDkyLDQ3MTIyLDQ3MTUxLDQ3MTgxLDQ3MjEwLDQ3MjQwLDQ3MjY5LDQ3Mjk4LDQ3MzI4LDQ3MzU3LDQ3Mzg3LDQ3NDE3LDQ3NDQ2LDQ3NDc2LDQ3NTA2LDQ3NTM1LDQ3NTY1LDQ3NTk0LDQ3NjI0LDQ3NjUzLDQ3NjgyLDQ3NzEyLDQ3NzQxLDQ3NzcxLDQ3ODAwLDQ3ODMwLDQ3ODYwLDQ3ODkwLDQ3OTE5LDQ3OTQ5LDQ3OTc4LDQ4MDA4LDQ4MDM3LDQ4MDY2LDQ4MDk2LDQ4MTI1LDQ4MTU1LDQ4MTg0LDQ4MjE0LDQ4MjQ0LDQ4MjczLDQ4MzAzLDQ4MzMzLDQ4MzYyLDQ4MzkyLDQ4NDIxLDQ4NDUwLDQ4NDgwLDQ4NTA5LDQ4NTM4LDQ4NTY4LDQ4NTk4LDQ4NjI3LDQ4NjU3LDQ4Njg3LDQ4NzE3LDQ4NzQ2LDQ4Nzc2LDQ4ODA1LDQ4ODM0LDQ4ODY0LDQ4ODkzLDQ4OTIyLDQ4OTUyLDQ4OTgyLDQ5MDExLDQ5MDQxLDQ5MDcxLDQ5MTAwLDQ5MTMwLDQ5MTYwLDQ5MTg5LDQ5MjE4LDQ5MjQ4LDQ5Mjc3LDQ5MzA2LDQ5MzM2LDQ5MzY1LDQ5Mzk1LDQ5NDI1LDQ5NDU1LDQ5NDg0LDQ5NTE0LDQ5NTQzLDQ5NTczLDQ5NjAyLDQ5NjMyLDQ5NjYxLDQ5NjkwLDQ5NzIwLDQ5NzQ5LDQ5Nzc5LDQ5ODA5LDQ5ODM4LDQ5ODY4LDQ5ODk4LDQ5OTI3LDQ5OTU3LDQ5OTg2LDUwMDE2LDUwMDQ1LDUwMDc1LDUwMTA0LDUwMTMzLDUwMTYzLDUwMTkyLDUwMjIyLDUwMjUyLDUwMjgxLDUwMzExLDUwMzQwLDUwMzcwLDUwNDAwLDUwNDI5LDUwNDU5LDUwNDg4LDUwNTE4LDUwNTQ3LDUwNTc2LDUwNjA2LDUwNjM1LDUwNjY1LDUwNjk0LDUwNzI0LDUwNzU0LDUwNzg0LDUwODEzLDUwODQzLDUwODcyLDUwOTAyLDUwOTMxLDUwOTYwLDUwOTkwLDUxMDE5LDUxMDQ5LDUxMDc4LDUxMTA4LDUxMTM4LDUxMTY3LDUxMTk3LDUxMjI3LDUxMjU2LDUxMjg2LDUxMzE1LDUxMzQ1LDUxMzc0LDUxNDAzLDUxNDMzLDUxNDYyLDUxNDkyLDUxNTIyLDUxNTUyLDUxNTgyLDUxNjExLDUxNjQxLDUxNjcwLDUxNjk5LDUxNzI5LDUxNzU4LDUxNzg3LDUxODE2LDUxODQ2LDUxODc2LDUxOTA2LDUxOTM2LDUxOTY1LDUxOTk1LDUyMDI1LDUyMDU0LDUyMDgzLDUyMTEzLDUyMTQyLDUyMTcxLDUyMjAwLDUyMjMwLDUyMjYwLDUyMjkwLDUyMzE5LDUyMzQ5LDUyMzc5LDUyNDA4LDUyNDM4LDUyNDY3LDUyNDk3LDUyNTI2LDUyNTU1LDUyNTg1LDUyNjE0LDUyNjQ0LDUyNjczLDUyNzAzLDUyNzMzLDUyNzYyLDUyNzkyLDUyODIyLDUyODUxLDUyODgxLDUyOTEwLDUyOTM5LDUyOTY5LDUyOTk4LDUzMDI4LDUzMDU3LDUzMDg3LDUzMTE2LDUzMTQ2LDUzMTc2LDUzMjA1LDUzMjM1LDUzMjY0LDUzMjk0LDUzMzI0LDUzMzUzLDUzMzgzLDUzNDEyLDUzNDQxLDUzNDcxLDUzNTAwLDUzNTMwLDUzNTU5LDUzNTg5LDUzNjE5LDUzNjQ4LDUzNjc4LDUzNzA4LDUzNzM3LDUzNzY3LDUzNzk2LDUzODI1LDUzODU1LDUzODg0LDUzOTEzLDUzOTQzLDUzOTczLDU0MDAzLDU0MDMyLDU0MDYyLDU0MDkyLDU0MTIxLDU0MTUxLDU0MTgwLDU0MjA5LDU0MjM5LDU0MjY4LDU0Mjk3LDU0MzI3LDU0MzU3LDU0Mzg3LDU0NDE2LDU0NDQ2LDU0NDc2LDU0NTA1LDU0NTM1LDU0NTY0LDU0NTkzLDU0NjIzLDU0NjUyLDU0NjgxLDU0NzExLDU0NzQxLDU0NzcwLDU0ODAwLDU0ODMwLDU0ODU5LDU0ODg5LDU0OTE5LDU0OTQ4LDU0OTc3LDU1MDA3LDU1MDM2LDU1MDY2LDU1MDk1LDU1MTI1LDU1MTU0LDU1MTg0LDU1MjEzLDU1MjQzLDU1MjczLDU1MzAyLDU1MzMyLDU1MzYxLDU1MzkxLDU1NDIwLDU1NDUwLDU1NDc5LDU1NTA4LDU1NTM4LDU1NTY3LDU1NTk3LDU1NjI3LDU1NjU3LDU1Njg2LDU1NzE2LDU1NzQ1LDU1Nzc1LDU1ODA0LDU1ODM0LDU1ODYzLDU1ODkyLDU1OTIyLDU1OTUxLDU1OTgxLDU2MDExLDU2MDQwLDU2MDcwLDU2MTAwLDU2MTI5LDU2MTU5LDU2MTg4LDU2MjE4LDU2MjQ3LDU2Mjc2LDU2MzA2LDU2MzM1LDU2MzY1LDU2Mzk0LDU2NDI0LDU2NDU0LDU2NDgzLDU2NTEzLDU2NTQzLDU2NTcyLDU2NjAxLDU2NjMxLDU2NjYwLDU2NjkwLDU2NzE5LDU2NzQ5LDU2Nzc4LDU2ODA4LDU2ODM3LDU2ODY3LDU2ODk3LDU2OTI2LDU2OTU2LDU2OTg1LDU3MDE1LDU3MDQ0LDU3MDc0LDU3MTAzLDU3MTMzLDU3MTYyLDU3MTkyLDU3MjIxLDU3MjUxLDU3MjgwLDU3MzEwLDU3MzQwLDU3MzY5LDU3Mzk5LDU3NDI5LDU3NDU4LDU3NDg3LDU3NTE3LDU3NTQ2LDU3NTc2LDU3NjA1LDU3NjM0LDU3NjY0LDU3Njk0LDU3NzIzLDU3NzUzLDU3NzgzLDU3ODEzLDU3ODQyLDU3ODcxLDU3OTAxLDU3OTMwLDU3OTU5LDU3OTg5LDU4MDE4LDU4MDQ4LDU4MDc3LDU4MTA3LDU4MTM3LDU4MTY3LDU4MTk2LDU4MjI2LDU4MjU1LDU4Mjg1LDU4MzE0LDU4MzQzLDU4MzczLDU4NDAyLDU4NDMyLDU4NDYxLDU4NDkxLDU4NTIxLDU4NTUxLDU4NTgwLDU4NjEwLDU4NjM5LDU4NjY5LDU4Njk4LDU4NzI3LDU4NzU3LDU4Nzg2LDU4ODE2LDU4ODQ1LDU4ODc1LDU4OTA1LDU4OTM0LDU4OTY0LDU4OTk0LDU5MDIzLDU5MDUzLDU5MDgyLDU5MTExLDU5MTQxLDU5MTcwLDU5MjAwLDU5MjI5LDU5MjU5LDU5Mjg4LDU5MzE4LDU5MzQ4LDU5Mzc3LDU5NDA3LDU5NDM2LDU5NDY2LDU5NDk1LDU5NTI1LDU5NTU0LDU5NTg0LDU5NjEzLDU5NjQzLDU5NjcyLDU5NzAyLDU5NzMxLDU5NzYxLDU5NzkxLDU5ODIwLDU5ODUwLDU5ODc5LDU5OTA5LDU5OTM5LDU5OTY4LDU5OTk3LDYwMDI3LDYwMDU2LDYwMDg2LDYwMTE1LDYwMTQ1LDYwMTc0LDYwMjA0LDYwMjM0LDYwMjY0LDYwMjkzLDYwMzIzLDYwMzUyLDYwMzgxLDYwNDExLDYwNDQwLDYwNDY5LDYwNDk5LDYwNTI4LDYwNTU4LDYwNTg4LDYwNjE4LDYwNjQ4LDYwNjc3LDYwNzA3LDYwNzM2LDYwNzY1LDYwNzk1LDYwODI0LDYwODUzLDYwODgzLDYwOTEyLDYwOTQyLDYwOTcyLDYxMDAyLDYxMDMxLDYxMDYxLDYxMDkwLDYxMTIwLDYxMTQ5LDYxMTc5LDYxMjA4LDYxMjM3LDYxMjY3LDYxMjk2LDYxMzI2LDYxMzU2LDYxMzg1LDYxNDE1LDYxNDQ1LDYxNDc0LDYxNTA0LDYxNTMzLDYxNTYzLDYxNTkyLDYxNjIxLDYxNjUxLDYxNjgwLDYxNzEwLDYxNzM5LDYxNzY5LDYxNzk5LDYxODI4LDYxODU4LDYxODg4LDYxOTE3LDYxOTQ3LDYxOTc2LDYyMDA2LDYyMDM1LDYyMDY0LDYyMDk0LDYyMTIzLDYyMTUzLDYyMTgyLDYyMjEyLDYyMjQyLDYyMjcxLDYyMzAxLDYyMzMxLDYyMzYwLDYyMzkwLDYyNDE5LDYyNDQ4LDYyNDc4LDYyNTA3LDYyNTM3LDYyNTY2LDYyNTk2LDYyNjI1LDYyNjU1LDYyNjg1LDYyNzE1LDYyNzQ0LDYyNzc0LDYyODAzLDYyODMyLDYyODYyLDYyODkxLDYyOTIxLDYyOTUwLDYyOTgwLDYzMDA5LDYzMDM5LDYzMDY5LDYzMDk5LDYzMTI4LDYzMTU3LDYzMTg3LDYzMjE2LDYzMjQ2LDYzMjc1LDYzMzA1LDYzMzM0LDYzMzYzLDYzMzkzLDYzNDIzLDYzNDUzLDYzNDgyLDYzNTEyLDYzNTQxLDYzNTcxLDYzNjAwLDYzNjMwLDYzNjU5LDYzNjg5LDYzNzE4LDYzNzQ3LDYzNzc3LDYzODA3LDYzODM2LDYzODY2LDYzODk1LDYzOTI1LDYzOTU1LDYzOTg0LDY0MDE0LDY0MDQzLDY0MDczLDY0MTAyLDY0MTMxLDY0MTYxLDY0MTkwLDY0MjIwLDY0MjQ5LDY0Mjc5LDY0MzA5LDY0MzM5LDY0MzY4LDY0Mzk4LDY0NDI3LDY0NDU3LDY0NDg2LDY0NTE1LDY0NTQ1LDY0NTc0LDY0NjAzLDY0NjMzLDY0NjYzLDY0NjkyLDY0NzIyLDY0NzUyLDY0NzgyLDY0ODExLDY0ODQxLDY0ODcwLDY0ODk5LDY0OTI5LDY0OTU4LDY0OTg3LDY1MDE3LDY1MDQ3LDY1MDc2LDY1MTA2LDY1MTM2LDY1MTY2LDY1MTk1LDY1MjI1LDY1MjU0LDY1MjgzLDY1MzEzLDY1MzQyLDY1MzcxLDY1NDAxLDY1NDMxLDY1NDYwLDY1NDkwLDY1NTIwLDY1NTQ5LDY1NTc5LDY1NjA4LDY1NjM4LDY1NjY3LDY1Njk3LDY1NzI2LDY1NzU1LDY1Nzg1LDY1ODE1LDY1ODQ0LDY1ODc0LDY1OTAzLDY1OTMzLDY1OTYzLDY1OTkyLDY2MDIyLDY2MDUxLDY2MDgxLDY2MTEwLDY2MTQwLDY2MTY5LDY2MTk5LDY2MjI4LDY2MjU4LDY2Mjg3LDY2MzE3LDY2MzQ2LDY2Mzc2LDY2NDA1LDY2NDM1LDY2NDY1LDY2NDk0LDY2NTI0LDY2NTUzLDY2NTgzLDY2NjEyLDY2NjQxLDY2NjcxLDY2NzAwLDY2NzMwLDY2NzYwLDY2Nzg5LDY2ODE5LDY2ODQ5LDY2ODc4LDY2OTA4LDY2OTM3LDY2OTY3LDY2OTk2LDY3MDI1LDY3MDU1LDY3MDg0LDY3MTE0LDY3MTQzLDY3MTczLDY3MjAzLDY3MjMzLDY3MjYyLDY3MjkyLDY3MzIxLDY3MzUxLDY3MzgwLDY3NDA5LDY3NDM5LDY3NDY4LDY3NDk3LDY3NTI3LDY3NTU3LDY3NTg3LDY3NjE3LDY3NjQ2LDY3Njc2LDY3NzA1LDY3NzM1LDY3NzY0LDY3NzkzLDY3ODIzLDY3ODUyLDY3ODgyLDY3OTExLDY3OTQxLDY3OTcxLDY4ZTMsNjgwMzAsNjgwNjAsNjgwODksNjgxMTksNjgxNDgsNjgxNzcsNjgyMDcsNjgyMzYsNjgyNjYsNjgyOTUsNjgzMjUsNjgzNTQsNjgzODQsNjg0MTQsNjg0NDMsNjg0NzMsNjg1MDIsNjg1MzIsNjg1NjEsNjg1OTEsNjg2MjAsNjg2NTAsNjg2NzksNjg3MDgsNjg3MzgsNjg3NjgsNjg3OTcsNjg4MjcsNjg4NTcsNjg4ODYsNjg5MTYsNjg5NDYsNjg5NzUsNjkwMDQsNjkwMzQsNjkwNjMsNjkwOTIsNjkxMjIsNjkxNTIsNjkxODEsNjkyMTEsNjkyNDAsNjkyNzAsNjkzMDAsNjkzMzAsNjkzNTksNjkzODgsNjk0MTgsNjk0NDcsNjk0NzYsNjk1MDYsNjk1MzUsNjk1NjUsNjk1OTUsNjk2MjQsNjk2NTQsNjk2ODQsNjk3MTMsNjk3NDMsNjk3NzIsNjk4MDIsNjk4MzEsNjk4NjEsNjk4OTAsNjk5MTksNjk5NDksNjk5NzgsNzAwMDgsNzAwMzgsNzAwNjcsNzAwOTcsNzAxMjYsNzAxNTYsNzAxODYsNzAyMTUsNzAyNDUsNzAyNzQsNzAzMDMsNzAzMzMsNzAzNjIsNzAzOTIsNzA0MjEsNzA0NTEsNzA0ODEsNzA1MTAsNzA1NDAsNzA1NzAsNzA1OTksNzA2MjksNzA2NTgsNzA2ODcsNzA3MTcsNzA3NDYsNzA3NzYsNzA4MDUsNzA4MzUsNzA4NjQsNzA4OTQsNzA5MjQsNzA5NTQsNzA5ODMsNzEwMTMsNzEwNDIsNzEwNzEsNzExMDEsNzExMzAsNzExNTksNzExODksNzEyMTgsNzEyNDgsNzEyNzgsNzEzMDgsNzEzMzcsNzEzNjcsNzEzOTcsNzE0MjYsNzE0NTUsNzE0ODUsNzE1MTQsNzE1NDMsNzE1NzMsNzE2MDIsNzE2MzIsNzE2NjIsNzE2OTEsNzE3MjEsNzE3NTEsNzE3ODEsNzE4MTAsNzE4MzksNzE4NjksNzE4OTgsNzE5MjcsNzE5NTcsNzE5ODYsNzIwMTYsNzIwNDYsNzIwNzUsNzIxMDUsNzIxMzUsNzIxNjQsNzIxOTQsNzIyMjMsNzIyNTMsNzIyODIsNzIzMTEsNzIzNDEsNzIzNzAsNzI0MDAsNzI0MjksNzI0NTksNzI0ODksNzI1MTgsNzI1NDgsNzI1NzcsNzI2MDcsNzI2MzcsNzI2NjYsNzI2OTUsNzI3MjUsNzI3NTQsNzI3ODQsNzI4MTMsNzI4NDMsNzI4NzIsNzI5MDIsNzI5MzEsNzI5NjEsNzI5OTEsNzMwMjAsNzMwNTAsNzMwODAsNzMxMDksNzMxMzksNzMxNjgsNzMxOTcsNzMyMjcsNzMyNTYsNzMyODYsNzMzMTUsNzMzNDUsNzMzNzUsNzM0MDQsNzM0MzQsNzM0NjQsNzM0OTMsNzM1MjMsNzM1NTIsNzM1ODEsNzM2MTEsNzM2NDAsNzM2NjksNzM2OTksNzM3MjksNzM3NTgsNzM3ODgsNzM4MTgsNzM4NDgsNzM4NzcsNzM5MDcsNzM5MzYsNzM5NjUsNzM5OTUsNzQwMjQsNzQwNTMsNzQwODMsNzQxMTMsNzQxNDIsNzQxNzIsNzQyMDIsNzQyMzEsNzQyNjEsNzQyOTEsNzQzMjAsNzQzNDksNzQzNzksNzQ0MDgsNzQ0MzcsNzQ0NjcsNzQ0OTcsNzQ1MjYsNzQ1NTYsNzQ1ODYsNzQ2MTUsNzQ2NDUsNzQ2NzUsNzQ3MDQsNzQ3MzMsNzQ3NjMsNzQ3OTIsNzQ4MjIsNzQ4NTEsNzQ4ODEsNzQ5MTAsNzQ5NDAsNzQ5NjksNzQ5OTksNzUwMjksNzUwNTgsNzUwODgsNzUxMTcsNzUxNDcsNzUxNzYsNzUyMDYsNzUyMzUsNzUyNjQsNzUyOTQsNzUzMjMsNzUzNTMsNzUzODMsNzU0MTIsNzU0NDIsNzU0NzIsNzU1MDEsNzU1MzEsNzU1NjAsNzU1OTAsNzU2MTksNzU2NDgsNzU2NzgsNzU3MDcsNzU3MzcsNzU3NjYsNzU3OTYsNzU4MjYsNzU4NTYsNzU4ODUsNzU5MTUsNzU5NDQsNzU5NzQsNzYwMDMsNzYwMzIsNzYwNjIsNzYwOTEsNzYxMjEsNzYxNTAsNzYxODAsNzYyMTAsNzYyMzksNzYyNjksNzYyOTksNzYzMjgsNzYzNTgsNzYzODcsNzY0MTYsNzY0NDYsNzY0NzUsNzY1MDUsNzY1MzQsNzY1NjQsNzY1OTMsNzY2MjMsNzY2NTMsNzY2ODIsNzY3MTIsNzY3NDEsNzY3NzEsNzY4MDEsNzY4MzAsNzY4NTksNzY4ODksNzY5MTgsNzY5NDgsNzY5NzcsNzcwMDcsNzcwMzYsNzcwNjYsNzcwOTYsNzcxMjUsNzcxNTUsNzcxODUsNzcyMTQsNzcyNDMsNzcyNzMsNzczMDIsNzczMzIsNzczNjEsNzczOTAsNzc0MjAsNzc0NTAsNzc0NzksNzc1MDksNzc1MzksNzc1NjksNzc1OTgsNzc2MjcsNzc2NTcsNzc2ODYsNzc3MTUsNzc3NDUsNzc3NzQsNzc4MDQsNzc4MzMsNzc4NjMsNzc4OTMsNzc5MjMsNzc5NTIsNzc5ODIsNzgwMTEsNzgwNDEsNzgwNzAsNzgwOTksNzgxMjksNzgxNTgsNzgxODgsNzgyMTcsNzgyNDcsNzgyNzcsNzgzMDcsNzgzMzYsNzgzNjYsNzgzOTUsNzg0MjUsNzg0NTQsNzg0ODMsNzg1MTMsNzg1NDIsNzg1NzIsNzg2MDEsNzg2MzEsNzg2NjEsNzg2OTAsNzg3MjAsNzg3NTAsNzg3NzksNzg4MDgsNzg4MzgsNzg4NjcsNzg4OTcsNzg5MjYsNzg5NTYsNzg5ODUsNzkwMTUsNzkwNDQsNzkwNzQsNzkxMDQsNzkxMzMsNzkxNjMsNzkxOTIsNzkyMjIsNzkyNTEsNzkyODEsNzkzMTAsNzkzNDAsNzkzNjksNzkzOTksNzk0MjgsNzk0NTgsNzk0ODcsNzk1MTcsNzk1NDYsNzk1NzYsNzk2MDYsNzk2MzUsNzk2NjUsNzk2OTUsNzk3MjQsNzk3NTMsNzk3ODMsNzk4MTIsNzk4NDEsNzk4NzEsNzk5MDAsNzk5MzAsNzk5NjAsNzk5OTBdfSx7Ii4uL21haW4iOjU3MCwib2JqZWN0LWFzc2lnbiI6NDU2fV0sNTcwOltmdW5jdGlvbih0LGUscil7dmFyIG49dCgib2JqZWN0LWFzc2lnbiIpO2Z1bmN0aW9uIGEoKXt0aGlzLnJlZ2lvbmFsT3B0aW9ucz1bXSx0aGlzLnJlZ2lvbmFsT3B0aW9uc1siIl09e2ludmFsaWRDYWxlbmRhcjoiQ2FsZW5kYXIgezB9IG5vdCBmb3VuZCIsaW52YWxpZERhdGU6IkludmFsaWQgezB9IGRhdGUiLGludmFsaWRNb250aDoiSW52YWxpZCB7MH0gbW9udGgiLGludmFsaWRZZWFyOiJJbnZhbGlkIHswfSB5ZWFyIixkaWZmZXJlbnRDYWxlbmRhcnM6IkNhbm5vdCBtaXggezB9IGFuZCB7MX0gZGF0ZXMifSx0aGlzLmxvY2FsPXRoaXMucmVnaW9uYWxPcHRpb25zWyIiXSx0aGlzLmNhbGVuZGFycz17fSx0aGlzLl9sb2NhbENhbHM9e319ZnVuY3Rpb24gaSh0LGUscixuKXtpZih0aGlzLl9jYWxlbmRhcj10LHRoaXMuX3llYXI9ZSx0aGlzLl9tb250aD1yLHRoaXMuX2RheT1uLDA9PT10aGlzLl9jYWxlbmRhci5fdmFsaWRhdGVMZXZlbCYmIXRoaXMuX2NhbGVuZGFyLmlzVmFsaWQodGhpcy5feWVhcix0aGlzLl9tb250aCx0aGlzLl9kYXkpKXRocm93KGMubG9jYWwuaW52YWxpZERhdGV8fGMucmVnaW9uYWxPcHRpb25zWyIiXS5pbnZhbGlkRGF0ZSkucmVwbGFjZSgvXHswXH0vLHRoaXMuX2NhbGVuZGFyLmxvY2FsLm5hbWUpfWZ1bmN0aW9uIG8odCxlKXtyZXR1cm4iMDAwMDAwIi5zdWJzdHJpbmcoMCxlLSh0PSIiK3QpLmxlbmd0aCkrdH1mdW5jdGlvbiBzKCl7dGhpcy5zaG9ydFllYXJDdXRvZmY9IisxMCJ9ZnVuY3Rpb24gbCh0KXt0aGlzLmxvY2FsPXRoaXMucmVnaW9uYWxPcHRpb25zW3RdfHx0aGlzLnJlZ2lvbmFsT3B0aW9uc1siIl19bihhLnByb3RvdHlwZSx7aW5zdGFuY2U6ZnVuY3Rpb24odCxlKXt0PSh0fHwiZ3JlZ29yaWFuIikudG9Mb3dlckNhc2UoKSxlPWV8fCIiO3ZhciByPXRoaXMuX2xvY2FsQ2Fsc1t0KyItIitlXTtpZighciYmdGhpcy5jYWxlbmRhcnNbdF0mJihyPW5ldyB0aGlzLmNhbGVuZGFyc1t0XShlKSx0aGlzLl9sb2NhbENhbHNbdCsiLSIrZV09ciksIXIpdGhyb3codGhpcy5sb2NhbC5pbnZhbGlkQ2FsZW5kYXJ8fHRoaXMucmVnaW9uYWxPcHRpb25zWyIiXS5pbnZhbGlkQ2FsZW5kYXIpLnJlcGxhY2UoL1x7MFx9Lyx0KTtyZXR1cm4gcn0sbmV3RGF0ZTpmdW5jdGlvbih0LGUscixuLGEpe3JldHVybihuPShudWxsIT10JiZ0LnllYXI/dC5jYWxlbmRhcigpOiJzdHJpbmciPT10eXBlb2Ygbj90aGlzLmluc3RhbmNlKG4sYSk6bil8fHRoaXMuaW5zdGFuY2UoKSkubmV3RGF0ZSh0LGUscil9LHN1YnN0aXR1dGVEaWdpdHM6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybihlKyIiKS5yZXBsYWNlKC9bMC05XS9nLGZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfSl9fSxzdWJzdGl0dXRlQ2hpbmVzZURpZ2l0czpmdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbihyKXtmb3IodmFyIG49IiIsYT0wO3I+MDspe3ZhciBpPXIlMTA7bj0oMD09PWk/IiI6dFtpXStlW2FdKStuLGErKyxyPU1hdGguZmxvb3Ioci8xMCl9cmV0dXJuIDA9PT1uLmluZGV4T2YodFsxXStlWzFdKSYmKG49bi5zdWJzdHIoMSkpLG58fHRbMF19fX0pLG4oaS5wcm90b3R5cGUse25ld0RhdGU6ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0aGlzLl9jYWxlbmRhci5uZXdEYXRlKG51bGw9PXQ/dGhpczp0LGUscil9LHllYXI6ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMuX3llYXI6dGhpcy5zZXQodCwieSIpfSxtb250aDpmdW5jdGlvbih0KXtyZXR1cm4gMD09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5fbW9udGg6dGhpcy5zZXQodCwibSIpfSxkYXk6ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMuX2RheTp0aGlzLnNldCh0LCJkIil9LGRhdGU6ZnVuY3Rpb24odCxlLHIpe2lmKCF0aGlzLl9jYWxlbmRhci5pc1ZhbGlkKHQsZSxyKSl0aHJvdyhjLmxvY2FsLmludmFsaWREYXRlfHxjLnJlZ2lvbmFsT3B0aW9uc1siIl0uaW52YWxpZERhdGUpLnJlcGxhY2UoL1x7MFx9Lyx0aGlzLl9jYWxlbmRhci5sb2NhbC5uYW1lKTtyZXR1cm4gdGhpcy5feWVhcj10LHRoaXMuX21vbnRoPWUsdGhpcy5fZGF5PXIsdGhpc30sbGVhcFllYXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FsZW5kYXIubGVhcFllYXIodGhpcyl9LGVwb2NoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyLmVwb2NoKHRoaXMpfSxmb3JtYXRZZWFyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyLmZvcm1hdFllYXIodGhpcyl9LG1vbnRoT2ZZZWFyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyLm1vbnRoT2ZZZWFyKHRoaXMpfSx3ZWVrT2ZZZWFyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyLndlZWtPZlllYXIodGhpcyl9LGRheXNJblllYXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FsZW5kYXIuZGF5c0luWWVhcih0aGlzKX0sZGF5T2ZZZWFyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyLmRheU9mWWVhcih0aGlzKX0sZGF5c0luTW9udGg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FsZW5kYXIuZGF5c0luTW9udGgodGhpcyl9LGRheU9mV2VlazpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jYWxlbmRhci5kYXlPZldlZWsodGhpcyl9LHdlZWtEYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FsZW5kYXIud2Vla0RheSh0aGlzKX0sZXh0cmFJbmZvOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyLmV4dHJhSW5mbyh0aGlzKX0sYWRkOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyLmFkZCh0aGlzLHQsZSl9LHNldDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9jYWxlbmRhci5zZXQodGhpcyx0LGUpfSxjb21wYXJlVG86ZnVuY3Rpb24odCl7aWYodGhpcy5fY2FsZW5kYXIubmFtZSE9PXQuX2NhbGVuZGFyLm5hbWUpdGhyb3coYy5sb2NhbC5kaWZmZXJlbnRDYWxlbmRhcnN8fGMucmVnaW9uYWxPcHRpb25zWyIiXS5kaWZmZXJlbnRDYWxlbmRhcnMpLnJlcGxhY2UoL1x7MFx9Lyx0aGlzLl9jYWxlbmRhci5sb2NhbC5uYW1lKS5yZXBsYWNlKC9cezFcfS8sdC5fY2FsZW5kYXIubG9jYWwubmFtZSk7dmFyIGU9dGhpcy5feWVhciE9PXQuX3llYXI/dGhpcy5feWVhci10Ll95ZWFyOnRoaXMuX21vbnRoIT09dC5fbW9udGg/dGhpcy5tb250aE9mWWVhcigpLXQubW9udGhPZlllYXIoKTp0aGlzLl9kYXktdC5fZGF5O3JldHVybiAwPT09ZT8wOmU8MD8tMToxfSxjYWxlbmRhcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jYWxlbmRhcn0sdG9KRDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jYWxlbmRhci50b0pEKHRoaXMpfSxmcm9tSkQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyLmZyb21KRCh0KX0sdG9KU0RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FsZW5kYXIudG9KU0RhdGUodGhpcyl9LGZyb21KU0RhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyLmZyb21KU0RhdGUodCl9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMueWVhcigpPDA/Ii0iOiIiKStvKE1hdGguYWJzKHRoaXMueWVhcigpKSw0KSsiLSIrbyh0aGlzLm1vbnRoKCksMikrIi0iK28odGhpcy5kYXkoKSwyKX19KSxuKHMucHJvdG90eXBlLHtfdmFsaWRhdGVMZXZlbDowLG5ld0RhdGU6ZnVuY3Rpb24odCxlLHIpe3JldHVybiBudWxsPT10P3RoaXMudG9kYXkoKToodC55ZWFyJiYodGhpcy5fdmFsaWRhdGUodCxlLHIsYy5sb2NhbC5pbnZhbGlkRGF0ZXx8Yy5yZWdpb25hbE9wdGlvbnNbIiJdLmludmFsaWREYXRlKSxyPXQuZGF5KCksZT10Lm1vbnRoKCksdD10LnllYXIoKSksbmV3IGkodGhpcyx0LGUscikpfSx0b2RheTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZyb21KU0RhdGUobmV3IERhdGUpfSxlcG9jaDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LGMubG9jYWwuaW52YWxpZFllYXJ8fGMucmVnaW9uYWxPcHRpb25zWyIiXS5pbnZhbGlkWWVhcikueWVhcigpPDA/dGhpcy5sb2NhbC5lcG9jaHNbMF06dGhpcy5sb2NhbC5lcG9jaHNbMV19LGZvcm1hdFllYXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LGMubG9jYWwuaW52YWxpZFllYXJ8fGMucmVnaW9uYWxPcHRpb25zWyIiXS5pbnZhbGlkWWVhcik7cmV0dXJuKGUueWVhcigpPDA/Ii0iOiIiKStvKE1hdGguYWJzKGUueWVhcigpKSw0KX0sbW9udGhzSW5ZZWFyOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksYy5sb2NhbC5pbnZhbGlkWWVhcnx8Yy5yZWdpb25hbE9wdGlvbnNbIiJdLmludmFsaWRZZWFyKSwxMn0sbW9udGhPZlllYXI6ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLl92YWxpZGF0ZSh0LGUsdGhpcy5taW5EYXksYy5sb2NhbC5pbnZhbGlkTW9udGh8fGMucmVnaW9uYWxPcHRpb25zWyIiXS5pbnZhbGlkTW9udGgpO3JldHVybihyLm1vbnRoKCkrdGhpcy5tb250aHNJblllYXIociktdGhpcy5maXJzdE1vbnRoKSV0aGlzLm1vbnRoc0luWWVhcihyKSt0aGlzLm1pbk1vbnRofSxmcm9tTW9udGhPZlllYXI6ZnVuY3Rpb24odCxlKXt2YXIgcj0oZSt0aGlzLmZpcnN0TW9udGgtMip0aGlzLm1pbk1vbnRoKSV0aGlzLm1vbnRoc0luWWVhcih0KSt0aGlzLm1pbk1vbnRoO3JldHVybiB0aGlzLl92YWxpZGF0ZSh0LHIsdGhpcy5taW5EYXksYy5sb2NhbC5pbnZhbGlkTW9udGh8fGMucmVnaW9uYWxPcHRpb25zWyIiXS5pbnZhbGlkTW9udGgpLHJ9LGRheXNJblllYXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LGMubG9jYWwuaW52YWxpZFllYXJ8fGMucmVnaW9uYWxPcHRpb25zWyIiXS5pbnZhbGlkWWVhcik7cmV0dXJuIHRoaXMubGVhcFllYXIoZSk/MzY2OjM2NX0sZGF5T2ZZZWFyOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLl92YWxpZGF0ZSh0LGUscixjLmxvY2FsLmludmFsaWREYXRlfHxjLnJlZ2lvbmFsT3B0aW9uc1siIl0uaW52YWxpZERhdGUpO3JldHVybiBuLnRvSkQoKS10aGlzLm5ld0RhdGUobi55ZWFyKCksdGhpcy5mcm9tTW9udGhPZlllYXIobi55ZWFyKCksdGhpcy5taW5Nb250aCksdGhpcy5taW5EYXkpLnRvSkQoKSsxfSxkYXlzSW5XZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIDd9LGRheU9mV2VlazpmdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5fdmFsaWRhdGUodCxlLHIsYy5sb2NhbC5pbnZhbGlkRGF0ZXx8Yy5yZWdpb25hbE9wdGlvbnNbIiJdLmludmFsaWREYXRlKTtyZXR1cm4oTWF0aC5mbG9vcih0aGlzLnRvSkQobikpKzIpJXRoaXMuZGF5c0luV2VlaygpfSxleHRyYUluZm86ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0aGlzLl92YWxpZGF0ZSh0LGUscixjLmxvY2FsLmludmFsaWREYXRlfHxjLnJlZ2lvbmFsT3B0aW9uc1siIl0uaW52YWxpZERhdGUpLHt9fSxhZGQ6ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksYy5sb2NhbC5pbnZhbGlkRGF0ZXx8Yy5yZWdpb25hbE9wdGlvbnNbIiJdLmludmFsaWREYXRlKSx0aGlzLl9jb3JyZWN0QWRkKHQsdGhpcy5fYWRkKHQsZSxyKSxlLHIpfSxfYWRkOmZ1bmN0aW9uKHQsZSxyKXtpZih0aGlzLl92YWxpZGF0ZUxldmVsKyssImQiPT09cnx8InciPT09cil7dmFyIG49dC50b0pEKCkrZSooInciPT09cj90aGlzLmRheXNJbldlZWsoKToxKSxhPXQuY2FsZW5kYXIoKS5mcm9tSkQobik7cmV0dXJuIHRoaXMuX3ZhbGlkYXRlTGV2ZWwtLSxbYS55ZWFyKCksYS5tb250aCgpLGEuZGF5KCldfXRyeXt2YXIgaT10LnllYXIoKSsoInkiPT09cj9lOjApLG89dC5tb250aE9mWWVhcigpKygibSI9PT1yP2U6MCk7YT10LmRheSgpOyJ5Ij09PXI/KHQubW9udGgoKSE9PXRoaXMuZnJvbU1vbnRoT2ZZZWFyKGksbykmJihvPXRoaXMubmV3RGF0ZShpLHQubW9udGgoKSx0aGlzLm1pbkRheSkubW9udGhPZlllYXIoKSksbz1NYXRoLm1pbihvLHRoaXMubW9udGhzSW5ZZWFyKGkpKSxhPU1hdGgubWluKGEsdGhpcy5kYXlzSW5Nb250aChpLHRoaXMuZnJvbU1vbnRoT2ZZZWFyKGksbykpKSk6Im0iPT09ciYmKCFmdW5jdGlvbih0KXtmb3IoO288dC5taW5Nb250aDspaS0tLG8rPXQubW9udGhzSW5ZZWFyKGkpO2Zvcih2YXIgZT10Lm1vbnRoc0luWWVhcihpKTtvPmUtMSt0Lm1pbk1vbnRoOylpKyssby09ZSxlPXQubW9udGhzSW5ZZWFyKGkpfSh0aGlzKSxhPU1hdGgubWluKGEsdGhpcy5kYXlzSW5Nb250aChpLHRoaXMuZnJvbU1vbnRoT2ZZZWFyKGksbykpKSk7dmFyIHM9W2ksdGhpcy5mcm9tTW9udGhPZlllYXIoaSxvKSxhXTtyZXR1cm4gdGhpcy5fdmFsaWRhdGVMZXZlbC0tLHN9Y2F0Y2godCl7dGhyb3cgdGhpcy5fdmFsaWRhdGVMZXZlbC0tLHR9fSxfY29ycmVjdEFkZDpmdW5jdGlvbih0LGUscixuKXtpZighKHRoaXMuaGFzWWVhclplcm98fCJ5IiE9PW4mJiJtIiE9PW58fDAhPT1lWzBdJiZ0LnllYXIoKT4wPT1lWzBdPjApKXt2YXIgYT17eTpbMSwxLCJ5Il0sbTpbMSx0aGlzLm1vbnRoc0luWWVhcigtMSksIm0iXSx3Olt0aGlzLmRheXNJbldlZWsoKSx0aGlzLmRheXNJblllYXIoLTEpLCJkIl0sZDpbMSx0aGlzLmRheXNJblllYXIoLTEpLCJkIl19W25dLGk9cjwwPy0xOjE7ZT10aGlzLl9hZGQodCxyKmFbMF0raSphWzFdLGFbMl0pfXJldHVybiB0LmRhdGUoZVswXSxlWzFdLGVbMl0pfSxzZXQ6ZnVuY3Rpb24odCxlLHIpe3RoaXMuX3ZhbGlkYXRlKHQsdGhpcy5taW5Nb250aCx0aGlzLm1pbkRheSxjLmxvY2FsLmludmFsaWREYXRlfHxjLnJlZ2lvbmFsT3B0aW9uc1siIl0uaW52YWxpZERhdGUpO3ZhciBuPSJ5Ij09PXI/ZTp0LnllYXIoKSxhPSJtIj09PXI/ZTp0Lm1vbnRoKCksaT0iZCI9PT1yP2U6dC5kYXkoKTtyZXR1cm4ieSIhPT1yJiYibSIhPT1yfHwoaT1NYXRoLm1pbihpLHRoaXMuZGF5c0luTW9udGgobixhKSkpLHQuZGF0ZShuLGEsaSl9LGlzVmFsaWQ6ZnVuY3Rpb24odCxlLHIpe3RoaXMuX3ZhbGlkYXRlTGV2ZWwrKzt2YXIgbj10aGlzLmhhc1llYXJaZXJvfHwwIT09dDtpZihuKXt2YXIgYT10aGlzLm5ld0RhdGUodCxlLHRoaXMubWluRGF5KTtuPWU+PXRoaXMubWluTW9udGgmJmUtdGhpcy5taW5Nb250aDx0aGlzLm1vbnRoc0luWWVhcihhKSYmcj49dGhpcy5taW5EYXkmJnItdGhpcy5taW5EYXk8dGhpcy5kYXlzSW5Nb250aChhKX1yZXR1cm4gdGhpcy5fdmFsaWRhdGVMZXZlbC0tLG59LHRvSlNEYXRlOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLl92YWxpZGF0ZSh0LGUscixjLmxvY2FsLmludmFsaWREYXRlfHxjLnJlZ2lvbmFsT3B0aW9uc1siIl0uaW52YWxpZERhdGUpO3JldHVybiBjLmluc3RhbmNlKCkuZnJvbUpEKHRoaXMudG9KRChuKSkudG9KU0RhdGUoKX0sZnJvbUpTRGF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5mcm9tSkQoYy5pbnN0YW5jZSgpLmZyb21KU0RhdGUodCkudG9KRCgpKX0sX3ZhbGlkYXRlOmZ1bmN0aW9uKHQsZSxyLG4pe2lmKHQueWVhcil7aWYoMD09PXRoaXMuX3ZhbGlkYXRlTGV2ZWwmJnRoaXMubmFtZSE9PXQuY2FsZW5kYXIoKS5uYW1lKXRocm93KGMubG9jYWwuZGlmZmVyZW50Q2FsZW5kYXJzfHxjLnJlZ2lvbmFsT3B0aW9uc1siIl0uZGlmZmVyZW50Q2FsZW5kYXJzKS5yZXBsYWNlKC9cezBcfS8sdGhpcy5sb2NhbC5uYW1lKS5yZXBsYWNlKC9cezFcfS8sdC5jYWxlbmRhcigpLmxvY2FsLm5hbWUpO3JldHVybiB0fXRyeXtpZih0aGlzLl92YWxpZGF0ZUxldmVsKyssMT09PXRoaXMuX3ZhbGlkYXRlTGV2ZWwmJiF0aGlzLmlzVmFsaWQodCxlLHIpKXRocm93IG4ucmVwbGFjZSgvXHswXH0vLHRoaXMubG9jYWwubmFtZSk7dmFyIGE9dGhpcy5uZXdEYXRlKHQsZSxyKTtyZXR1cm4gdGhpcy5fdmFsaWRhdGVMZXZlbC0tLGF9Y2F0Y2godCl7dGhyb3cgdGhpcy5fdmFsaWRhdGVMZXZlbC0tLHR9fX0pLGwucHJvdG90eXBlPW5ldyBzLG4obC5wcm90b3R5cGUse25hbWU6IkdyZWdvcmlhbiIsamRFcG9jaDoxNzIxNDI1LjUsZGF5c1Blck1vbnRoOlszMSwyOCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV0saGFzWWVhclplcm86ITEsbWluTW9udGg6MSxmaXJzdE1vbnRoOjEsbWluRGF5OjEscmVnaW9uYWxPcHRpb25zOnsiIjp7bmFtZToiR3JlZ29yaWFuIixlcG9jaHM6WyJCQ0UiLCJDRSJdLG1vbnRoTmFtZXM6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLG1vbnRoTmFtZXNTaG9ydDpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLGRheU5hbWVzOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSxkYXlOYW1lc1Nob3J0OlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sZGF5TmFtZXNNaW46WyJTdSIsIk1vIiwiVHUiLCJXZSIsIlRoIiwiRnIiLCJTYSJdLGRpZ2l0czpudWxsLGRhdGVGb3JtYXQ6Im1tL2RkL3l5eXkiLGZpcnN0RGF5OjAsaXNSVEw6ITF9fSxsZWFwWWVhcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksYy5sb2NhbC5pbnZhbGlkWWVhcnx8Yy5yZWdpb25hbE9wdGlvbnNbIiJdLmludmFsaWRZZWFyKTtyZXR1cm4odD1lLnllYXIoKSsoZS55ZWFyKCk8MD8xOjApKSU0PT0wJiYodCUxMDAhPTB8fHQlNDAwPT0wKX0sd2Vla09mWWVhcjpmdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5uZXdEYXRlKHQsZSxyKTtyZXR1cm4gbi5hZGQoNC0obi5kYXlPZldlZWsoKXx8NyksImQiKSxNYXRoLmZsb29yKChuLmRheU9mWWVhcigpLTEpLzcpKzF9LGRheXNJbk1vbnRoOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fdmFsaWRhdGUodCxlLHRoaXMubWluRGF5LGMubG9jYWwuaW52YWxpZE1vbnRofHxjLnJlZ2lvbmFsT3B0aW9uc1siIl0uaW52YWxpZE1vbnRoKTtyZXR1cm4gdGhpcy5kYXlzUGVyTW9udGhbci5tb250aCgpLTFdKygyPT09ci5tb250aCgpJiZ0aGlzLmxlYXBZZWFyKHIueWVhcigpKT8xOjApfSx3ZWVrRGF5OmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4odGhpcy5kYXlPZldlZWsodCxlLHIpfHw3KTw2fSx0b0pEOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLl92YWxpZGF0ZSh0LGUscixjLmxvY2FsLmludmFsaWREYXRlfHxjLnJlZ2lvbmFsT3B0aW9uc1siIl0uaW52YWxpZERhdGUpO3Q9bi55ZWFyKCksZT1uLm1vbnRoKCkscj1uLmRheSgpLHQ8MCYmdCsrLGU8MyYmKGUrPTEyLHQtLSk7dmFyIGE9TWF0aC5mbG9vcih0LzEwMCksaT0yLWErTWF0aC5mbG9vcihhLzQpO3JldHVybiBNYXRoLmZsb29yKDM2NS4yNSoodCs0NzE2KSkrTWF0aC5mbG9vcigzMC42MDAxKihlKzEpKStyK2ktMTUyNC41fSxmcm9tSkQ6ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5mbG9vcih0Ky41KSxyPU1hdGguZmxvb3IoKGUtMTg2NzIxNi4yNSkvMzY1MjQuMjUpLG49KHI9ZSsxK3ItTWF0aC5mbG9vcihyLzQpKSsxNTI0LGE9TWF0aC5mbG9vcigobi0xMjIuMSkvMzY1LjI1KSxpPU1hdGguZmxvb3IoMzY1LjI1KmEpLG89TWF0aC5mbG9vcigobi1pKS8zMC42MDAxKSxzPW4taS1NYXRoLmZsb29yKDMwLjYwMDEqbyksbD1vLShvPjEzLjU/MTM6MSksYz1hLShsPjIuNT80NzE2OjQ3MTUpO3JldHVybiBjPD0wJiZjLS0sdGhpcy5uZXdEYXRlKGMsbCxzKX0sdG9KU0RhdGU6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMuX3ZhbGlkYXRlKHQsZSxyLGMubG9jYWwuaW52YWxpZERhdGV8fGMucmVnaW9uYWxPcHRpb25zWyIiXS5pbnZhbGlkRGF0ZSksYT1uZXcgRGF0ZShuLnllYXIoKSxuLm1vbnRoKCktMSxuLmRheSgpKTtyZXR1cm4gYS5zZXRIb3VycygwKSxhLnNldE1pbnV0ZXMoMCksYS5zZXRTZWNvbmRzKDApLGEuc2V0TWlsbGlzZWNvbmRzKDApLGEuc2V0SG91cnMoYS5nZXRIb3VycygpPjEyP2EuZ2V0SG91cnMoKSsyOjApLGF9LGZyb21KU0RhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubmV3RGF0ZSh0LmdldEZ1bGxZZWFyKCksdC5nZXRNb250aCgpKzEsdC5nZXREYXRlKCkpfX0pO3ZhciBjPWUuZXhwb3J0cz1uZXcgYTtjLmNkYXRlPWksYy5iYXNlQ2FsZW5kYXI9cyxjLmNhbGVuZGFycy5ncmVnb3JpYW49bH0seyJvYmplY3QtYXNzaWduIjo0NTZ9XSw1NzE6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCJvYmplY3QtYXNzaWduIiksYT10KCIuL21haW4iKTtuKGEucmVnaW9uYWxPcHRpb25zWyIiXSx7aW52YWxpZEFyZ3VtZW50czoiSW52YWxpZCBhcmd1bWVudHMiLGludmFsaWRGb3JtYXQ6IkNhbm5vdCBmb3JtYXQgYSBkYXRlIGZyb20gYW5vdGhlciBjYWxlbmRhciIsbWlzc2luZ051bWJlckF0OiJNaXNzaW5nIG51bWJlciBhdCBwb3NpdGlvbiB7MH0iLHVua25vd25OYW1lQXQ6IlVua25vd24gbmFtZSBhdCBwb3NpdGlvbiB7MH0iLHVuZXhwZWN0ZWRMaXRlcmFsQXQ6IlVuZXhwZWN0ZWQgbGl0ZXJhbCBhdCBwb3NpdGlvbiB7MH0iLHVuZXhwZWN0ZWRUZXh0OiJBZGRpdGlvbmFsIHRleHQgZm91bmQgYXQgZW5kIn0pLGEubG9jYWw9YS5yZWdpb25hbE9wdGlvbnNbIiJdLG4oYS5jZGF0ZS5wcm90b3R5cGUse2Zvcm1hdERhdGU6ZnVuY3Rpb24odCxlKXtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHQmJihlPXQsdD0iIiksdGhpcy5fY2FsZW5kYXIuZm9ybWF0RGF0ZSh0fHwiIix0aGlzLGUpfX0pLG4oYS5iYXNlQ2FsZW5kYXIucHJvdG90eXBlLHtVTklYX0VQT0NIOmEuaW5zdGFuY2UoKS5uZXdEYXRlKDE5NzAsMSwxKS50b0pEKCksU0VDU19QRVJfREFZOjg2NDAwLFRJQ0tTX0VQT0NIOmEuaW5zdGFuY2UoKS5qZEVwb2NoLFRJQ0tTX1BFUl9EQVk6ODY0ZTksQVRPTToieXl5eS1tbS1kZCIsQ09PS0lFOiJELCBkZCBNIHl5eXkiLEZVTEw6IkRELCBNTSBkLCB5eXl5IixJU09fODYwMToieXl5eS1tbS1kZCIsSlVMSUFOOiJKIixSRkNfODIyOiJELCBkIE0geXkiLFJGQ184NTA6IkRELCBkZC1NLXl5IixSRkNfMTAzNjoiRCwgZCBNIHl5IixSRkNfMTEyMzoiRCwgZCBNIHl5eXkiLFJGQ18yODIyOiJELCBkIE0geXl5eSIsUlNTOiJELCBkIE0geXkiLFRJQ0tTOiIhIixUSU1FU1RBTVA6IkAiLFczQzoieXl5eS1tbS1kZCIsZm9ybWF0RGF0ZTpmdW5jdGlvbih0LGUscil7aWYoInN0cmluZyIhPXR5cGVvZiB0JiYocj1lLGU9dCx0PSIiKSwhZSlyZXR1cm4iIjtpZihlLmNhbGVuZGFyKCkhPT10aGlzKXRocm93IGEubG9jYWwuaW52YWxpZEZvcm1hdHx8YS5yZWdpb25hbE9wdGlvbnNbIiJdLmludmFsaWRGb3JtYXQ7dD10fHx0aGlzLmxvY2FsLmRhdGVGb3JtYXQ7Zm9yKHZhciBuLGksbyxzLGw9KHI9cnx8e30pLmRheU5hbWVzU2hvcnR8fHRoaXMubG9jYWwuZGF5TmFtZXNTaG9ydCxjPXIuZGF5TmFtZXN8fHRoaXMubG9jYWwuZGF5TmFtZXMsdT1yLm1vbnRoTnVtYmVyc3x8dGhpcy5sb2NhbC5tb250aE51bWJlcnMsaD1yLm1vbnRoTmFtZXNTaG9ydHx8dGhpcy5sb2NhbC5tb250aE5hbWVzU2hvcnQsZj1yLm1vbnRoTmFtZXN8fHRoaXMubG9jYWwubW9udGhOYW1lcyxwPShyLmNhbGN1bGF0ZVdlZWt8fHRoaXMubG9jYWwuY2FsY3VsYXRlV2VlayxmdW5jdGlvbihlLHIpe2Zvcih2YXIgbj0xO3crbjx0Lmxlbmd0aCYmdC5jaGFyQXQodytuKT09PWU7KW4rKztyZXR1cm4gdys9bi0xLE1hdGguZmxvb3Iobi8ocnx8MSkpPjF9KSxkPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPSIiK2U7aWYocCh0LG4pKWZvcig7YS5sZW5ndGg8cjspYT0iMCIrYTtyZXR1cm4gYX0sZz10aGlzLHY9ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHU/dS5jYWxsKGcsdCxwKCJtIikpOngoZCgibSIsdC5tb250aCgpLDIpKX0sbT1mdW5jdGlvbih0LGUpe3JldHVybiBlPyJmdW5jdGlvbiI9PXR5cGVvZiBmP2YuY2FsbChnLHQpOmZbdC5tb250aCgpLWcubWluTW9udGhdOiJmdW5jdGlvbiI9PXR5cGVvZiBoP2guY2FsbChnLHQpOmhbdC5tb250aCgpLWcubWluTW9udGhdfSx5PXRoaXMubG9jYWwuZGlnaXRzLHg9ZnVuY3Rpb24odCl7cmV0dXJuIHIubG9jYWxOdW1iZXJzJiZ5P3kodCk6dH0sYj0iIixfPSExLHc9MDt3PHQubGVuZ3RoO3crKylpZihfKSInIiE9PXQuY2hhckF0KHcpfHxwKCInIik/Yis9dC5jaGFyQXQodyk6Xz0hMTtlbHNlIHN3aXRjaCh0LmNoYXJBdCh3KSl7Y2FzZSJkIjpiKz14KGQoImQiLGUuZGF5KCksMikpO2JyZWFrO2Nhc2UiRCI6Yis9KG49IkQiLGk9ZS5kYXlPZldlZWsoKSxvPWwscz1jLHAobik/c1tpXTpvW2ldKTticmVhaztjYXNlIm8iOmIrPWQoIm8iLGUuZGF5T2ZZZWFyKCksMyk7YnJlYWs7Y2FzZSJ3IjpiKz1kKCJ3IixlLndlZWtPZlllYXIoKSwyKTticmVhaztjYXNlIm0iOmIrPXYoZSk7YnJlYWs7Y2FzZSJNIjpiKz1tKGUscCgiTSIpKTticmVhaztjYXNlInkiOmIrPXAoInkiLDIpP2UueWVhcigpOihlLnllYXIoKSUxMDA8MTA/IjAiOiIiKStlLnllYXIoKSUxMDA7YnJlYWs7Y2FzZSJZIjpwKCJZIiwyKSxiKz1lLmZvcm1hdFllYXIoKTticmVhaztjYXNlIkoiOmIrPWUudG9KRCgpO2JyZWFrO2Nhc2UiQCI6Yis9KGUudG9KRCgpLXRoaXMuVU5JWF9FUE9DSCkqdGhpcy5TRUNTX1BFUl9EQVk7YnJlYWs7Y2FzZSIhIjpiKz0oZS50b0pEKCktdGhpcy5USUNLU19FUE9DSCkqdGhpcy5USUNLU19QRVJfREFZO2JyZWFrO2Nhc2UiJyI6cCgiJyIpP2IrPSInIjpfPSEwO2JyZWFrO2RlZmF1bHQ6Yis9dC5jaGFyQXQodyl9cmV0dXJuIGJ9LHBhcnNlRGF0ZTpmdW5jdGlvbih0LGUscil7aWYobnVsbD09ZSl0aHJvdyBhLmxvY2FsLmludmFsaWRBcmd1bWVudHN8fGEucmVnaW9uYWxPcHRpb25zWyIiXS5pbnZhbGlkQXJndW1lbnRzO2lmKCIiPT09KGU9Im9iamVjdCI9PXR5cGVvZiBlP2UudG9TdHJpbmcoKTplKyIiKSlyZXR1cm4gbnVsbDt0PXR8fHRoaXMubG9jYWwuZGF0ZUZvcm1hdDt2YXIgbj0ocj1yfHx7fSkuc2hvcnRZZWFyQ3V0b2ZmfHx0aGlzLnNob3J0WWVhckN1dG9mZjtuPSJzdHJpbmciIT10eXBlb2Ygbj9uOnRoaXMudG9kYXkoKS55ZWFyKCklMTAwK3BhcnNlSW50KG4sMTApO2Zvcih2YXIgaT1yLmRheU5hbWVzU2hvcnR8fHRoaXMubG9jYWwuZGF5TmFtZXNTaG9ydCxvPXIuZGF5TmFtZXN8fHRoaXMubG9jYWwuZGF5TmFtZXMscz1yLnBhcnNlTW9udGh8fHRoaXMubG9jYWwucGFyc2VNb250aCxsPXIubW9udGhOdW1iZXJzfHx0aGlzLmxvY2FsLm1vbnRoTnVtYmVycyxjPXIubW9udGhOYW1lc1Nob3J0fHx0aGlzLmxvY2FsLm1vbnRoTmFtZXNTaG9ydCx1PXIubW9udGhOYW1lc3x8dGhpcy5sb2NhbC5tb250aE5hbWVzLGg9LTEsZj0tMSxwPS0xLGQ9LTEsZz0tMSx2PSExLG09ITEseT1mdW5jdGlvbihlLHIpe2Zvcih2YXIgbj0xO0Erbjx0Lmxlbmd0aCYmdC5jaGFyQXQoQStuKT09PWU7KW4rKztyZXR1cm4gQSs9bi0xLE1hdGguZmxvb3Iobi8ocnx8MSkpPjF9LHg9ZnVuY3Rpb24odCxyKXt2YXIgbj15KHQsciksaT1bMiwzLG4/NDoyLG4/NDoyLDEwLDExLDIwXVsib3lZSkAhIi5pbmRleE9mKHQpKzFdLG89bmV3IFJlZ0V4cCgiXi0/XFxkezEsIitpKyJ9Iikscz1lLnN1YnN0cmluZyhNKS5tYXRjaChvKTtpZighcyl0aHJvdyhhLmxvY2FsLm1pc3NpbmdOdW1iZXJBdHx8YS5yZWdpb25hbE9wdGlvbnNbIiJdLm1pc3NpbmdOdW1iZXJBdCkucmVwbGFjZSgvXHswXH0vLE0pO3JldHVybiBNKz1zWzBdLmxlbmd0aCxwYXJzZUludChzWzBdLDEwKX0sYj10aGlzLF89ZnVuY3Rpb24oKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgbCl7eSgibSIpO3ZhciB0PWwuY2FsbChiLGUuc3Vic3RyaW5nKE0pKTtyZXR1cm4gTSs9dC5sZW5ndGgsdH1yZXR1cm4geCgibSIpfSx3PWZ1bmN0aW9uKHQscixuLGkpe2Zvcih2YXIgbz15KHQsaSk/bjpyLHM9MDtzPG8ubGVuZ3RoO3MrKylpZihlLnN1YnN0cihNLG9bc10ubGVuZ3RoKS50b0xvd2VyQ2FzZSgpPT09b1tzXS50b0xvd2VyQ2FzZSgpKXJldHVybiBNKz1vW3NdLmxlbmd0aCxzK2IubWluTW9udGg7dGhyb3coYS5sb2NhbC51bmtub3duTmFtZUF0fHxhLnJlZ2lvbmFsT3B0aW9uc1siIl0udW5rbm93bk5hbWVBdCkucmVwbGFjZSgvXHswXH0vLE0pfSxrPWZ1bmN0aW9uKCl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHUpe3ZhciB0PXkoIk0iKT91LmNhbGwoYixlLnN1YnN0cmluZyhNKSk6Yy5jYWxsKGIsZS5zdWJzdHJpbmcoTSkpO3JldHVybiBNKz10Lmxlbmd0aCx0fXJldHVybiB3KCJNIixjLHUpfSxUPWZ1bmN0aW9uKCl7aWYoZS5jaGFyQXQoTSkhPT10LmNoYXJBdChBKSl0aHJvdyhhLmxvY2FsLnVuZXhwZWN0ZWRMaXRlcmFsQXR8fGEucmVnaW9uYWxPcHRpb25zWyIiXS51bmV4cGVjdGVkTGl0ZXJhbEF0KS5yZXBsYWNlKC9cezBcfS8sTSk7TSsrfSxNPTAsQT0wO0E8dC5sZW5ndGg7QSsrKWlmKG0pIiciIT09dC5jaGFyQXQoQSl8fHkoIiciKT9UKCk6bT0hMTtlbHNlIHN3aXRjaCh0LmNoYXJBdChBKSl7Y2FzZSJkIjpkPXgoImQiKTticmVhaztjYXNlIkQiOncoIkQiLGksbyk7YnJlYWs7Y2FzZSJvIjpnPXgoIm8iKTticmVhaztjYXNlInciOngoInciKTticmVhaztjYXNlIm0iOnA9XygpO2JyZWFrO2Nhc2UiTSI6cD1rKCk7YnJlYWs7Y2FzZSJ5Ijp2YXIgUz1BO3Y9IXkoInkiLDIpLEE9UyxmPXgoInkiLDIpO2JyZWFrO2Nhc2UiWSI6Zj14KCJZIiwyKTticmVhaztjYXNlIkoiOmg9eCgiSiIpKy41LCIuIj09PWUuY2hhckF0KE0pJiYoTSsrLHgoIkoiKSk7YnJlYWs7Y2FzZSJAIjpoPXgoIkAiKS90aGlzLlNFQ1NfUEVSX0RBWSt0aGlzLlVOSVhfRVBPQ0g7YnJlYWs7Y2FzZSIhIjpoPXgoIiEiKS90aGlzLlRJQ0tTX1BFUl9EQVkrdGhpcy5USUNLU19FUE9DSDticmVhaztjYXNlIioiOk09ZS5sZW5ndGg7YnJlYWs7Y2FzZSInIjp5KCInIik/VCgpOm09ITA7YnJlYWs7ZGVmYXVsdDpUKCl9aWYoTTxlLmxlbmd0aCl0aHJvdyBhLmxvY2FsLnVuZXhwZWN0ZWRUZXh0fHxhLnJlZ2lvbmFsT3B0aW9uc1siIl0udW5leHBlY3RlZFRleHQ7aWYoLTE9PT1mP2Y9dGhpcy50b2RheSgpLnllYXIoKTpmPDEwMCYmdiYmKGYrPS0xPT09bj8xOTAwOnRoaXMudG9kYXkoKS55ZWFyKCktdGhpcy50b2RheSgpLnllYXIoKSUxMDAtKGY8PW4/MDoxMDApKSwic3RyaW5nIj09dHlwZW9mIHAmJihwPXMuY2FsbCh0aGlzLGYscCkpLGc+LTEpe3A9MSxkPWc7Zm9yKHZhciBFPXRoaXMuZGF5c0luTW9udGgoZixwKTtkPkU7RT10aGlzLmRheXNJbk1vbnRoKGYscCkpcCsrLGQtPUV9cmV0dXJuIGg+LTE/dGhpcy5mcm9tSkQoaCk6dGhpcy5uZXdEYXRlKGYscCxkKX0sZGV0ZXJtaW5lRGF0ZTpmdW5jdGlvbih0LGUscixuLGEpe3ImJiJvYmplY3QiIT10eXBlb2YgciYmKGE9bixuPXIscj1udWxsKSwic3RyaW5nIiE9dHlwZW9mIG4mJihhPW4sbj0iIik7dmFyIGk9dGhpcztyZXR1cm4gZT1lP2UubmV3RGF0ZSgpOm51bGwsdD1udWxsPT10P2U6InN0cmluZyI9PXR5cGVvZiB0P2Z1bmN0aW9uKHQpe3RyeXtyZXR1cm4gaS5wYXJzZURhdGUobix0LGEpfWNhdGNoKHQpe31mb3IodmFyIGU9KCh0PXQudG9Mb3dlckNhc2UoKSkubWF0Y2goL15jLykmJnI/ci5uZXdEYXRlKCk6bnVsbCl8fGkudG9kYXkoKSxvPS8oWystXT9bMC05XSspXHMqKGR8d3xtfHkpPy9nLHM9by5leGVjKHQpO3M7KWUuYWRkKHBhcnNlSW50KHNbMV0sMTApLHNbMl18fCJkIikscz1vLmV4ZWModCk7cmV0dXJuIGV9KHQpOiJudW1iZXIiPT10eXBlb2YgdD9pc05hTih0KXx8dD09PTEvMHx8dD09PS0xLzA/ZTppLnRvZGF5KCkuYWRkKHQsImQiKTppLm5ld0RhdGUodCl9fSl9LHsiLi9tYWluIjo1NzAsIm9iamVjdC1hc3NpZ24iOjQ1Nn1dLDU3MjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz10KCJjd2lzZS1jb21waWxlciIpKHthcmdzOlsiYXJyYXkiLHtvZmZzZXQ6WzFdLGFycmF5OjB9LCJzY2FsYXIiLCJzY2FsYXIiLCJpbmRleCJdLHByZTp7Ym9keToie30iLGFyZ3M6W10sdGhpc1ZhcnM6W10sbG9jYWxWYXJzOltdfSxwb3N0Ontib2R5OiJ7fSIsYXJnczpbXSx0aGlzVmFyczpbXSxsb2NhbFZhcnM6W119LGJvZHk6e2JvZHk6IntcbiAgICAgICAgdmFyIF9pbmxpbmVfMV9kYSA9IF9pbmxpbmVfMV9hcmcwXyAtIF9pbmxpbmVfMV9hcmczX1xuICAgICAgICB2YXIgX2lubGluZV8xX2RiID0gX2lubGluZV8xX2FyZzFfIC0gX2lubGluZV8xX2FyZzNfXG4gICAgICAgIGlmKChfaW5saW5lXzFfZGEgPj0gMCkgIT09IChfaW5saW5lXzFfZGIgPj0gMCkpIHtcbiAgICAgICAgICBfaW5saW5lXzFfYXJnMl8ucHVzaChfaW5saW5lXzFfYXJnNF9bMF0gKyAwLjUgKyAwLjUgKiAoX2lubGluZV8xX2RhICsgX2lubGluZV8xX2RiKSAvIChfaW5saW5lXzFfZGEgLSBfaW5saW5lXzFfZGIpKVxuICAgICAgICB9XG4gICAgICB9IixhcmdzOlt7bmFtZToiX2lubGluZV8xX2FyZzBfIixsdmFsdWU6ITEscnZhbHVlOiEwLGNvdW50OjF9LHtuYW1lOiJfaW5saW5lXzFfYXJnMV8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfMV9hcmcyXyIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoxfSx7bmFtZToiX2lubGluZV8xX2FyZzNfIixsdmFsdWU6ITEscnZhbHVlOiEwLGNvdW50OjJ9LHtuYW1lOiJfaW5saW5lXzFfYXJnNF8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX1dLHRoaXNWYXJzOltdLGxvY2FsVmFyczpbIl9pbmxpbmVfMV9kYSIsIl9pbmxpbmVfMV9kYiJdfSxmdW5jTmFtZToiemVyb0Nyb3NzaW5ncyJ9KX0seyJjd2lzZS1jb21waWxlciI6MTQ4fV0sNTczOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPVtdO3JldHVybiBlPStlfHwwLG4odC5oaSh0LnNoYXBlWzBdLTEpLHIsZSkscn07dmFyIG49dCgiLi9saWIvemMtY29yZSIpfSx7Ii4vbGliL3pjLWNvcmUiOjU3Mn1dLDU3NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9W3twYXRoOiIiLGJhY2tvZmY6MH0se3BhdGg6Ik0tMi40LC0zVjNMMC42LDBaIixiYWNrb2ZmOi42fSx7cGF0aDoiTS0zLjcsLTIuNVYyLjVMMS4zLDBaIixiYWNrb2ZmOjEuM30se3BhdGg6Ik0tNC40NSwtM0wtMS42NSwtMC4yVjAuMkwtNC40NSwzTDEuNTUsMFoiLGJhY2tvZmY6MS41NX0se3BhdGg6Ik0tMi4yLC0yLjJMLTAuMiwtMC4yVjAuMkwtMi4yLDIuMkwtMS40LDNMMS42LDBMLTEuNCwtM1oiLGJhY2tvZmY6MS42fSx7cGF0aDoiTS00LjQsLTIuMUwtMC42LC0wLjJWMC4yTC00LjQsMi4xTC00LDNMMiwwTC00LC0zWiIsYmFja29mZjoyfSx7cGF0aDoiTTIsMEEyLDIgMCAxLDEgMCwtMkEyLDIgMCAwLDEgMiwwWiIsYmFja29mZjowLG5vUm90YXRlOiEwfSx7cGF0aDoiTTIsMlYtMkgtMlYyWiIsYmFja29mZjowLG5vUm90YXRlOiEwfV19LHt9XSw1NzU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9hcnJvd19wYXRocyIpLGE9dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vY29uc3RhbnRzIiksbz10KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIikudGVtcGxhdGVkQXJyYXk7ZS5leHBvcnRzPW8oImFubm90YXRpb24iLHt2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LHRleHQ6e3ZhbFR5cGU6InN0cmluZyIsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0sdGV4dGFuZ2xlOnt2YWxUeXBlOiJhbmdsZSIsZGZsdDowLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LGZvbnQ6YSh7ZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3Iixjb2xvckVkaXRUeXBlOiJhcnJheWRyYXcifSksd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjEsZGZsdDpudWxsLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LGhlaWdodDp7dmFsVHlwZToibnVtYmVyIixtaW46MSxkZmx0Om51bGwsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0sb3BhY2l0eTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0OjEsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LGFsaWduOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJsZWZ0IiwiY2VudGVyIiwicmlnaHQiXSxkZmx0OiJjZW50ZXIiLGVkaXRUeXBlOiJhcnJheWRyYXcifSx2YWxpZ246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInRvcCIsIm1pZGRsZSIsImJvdHRvbSJdLGRmbHQ6Im1pZGRsZSIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LGJnY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OiJyZ2JhKDAsMCwwLDApIixlZGl0VHlwZToiYXJyYXlkcmF3In0sYm9yZGVyY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OiJyZ2JhKDAsMCwwLDApIixlZGl0VHlwZToiYXJyYXlkcmF3In0sYm9yZGVycGFkOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MSxlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSxib3JkZXJ3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjEsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0sc2hvd2Fycm93Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LGFycm93Y29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToiYXJyYXlkcmF3In0sYXJyb3doZWFkOnt2YWxUeXBlOiJpbnRlZ2VyIixtaW46MCxtYXg6bi5sZW5ndGgsZGZsdDoxLGVkaXRUeXBlOiJhcnJheWRyYXcifSxzdGFydGFycm93aGVhZDp7dmFsVHlwZToiaW50ZWdlciIsbWluOjAsbWF4Om4ubGVuZ3RoLGRmbHQ6MSxlZGl0VHlwZToiYXJyYXlkcmF3In0sYXJyb3dzaWRlOnt2YWxUeXBlOiJmbGFnbGlzdCIsZmxhZ3M6WyJlbmQiLCJzdGFydCJdLGV4dHJhczpbIm5vbmUiXSxkZmx0OiJlbmQiLGVkaXRUeXBlOiJhcnJheWRyYXcifSxhcnJvd3NpemU6e3ZhbFR5cGU6Im51bWJlciIsbWluOi4zLGRmbHQ6MSxlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSxzdGFydGFycm93c2l6ZTp7dmFsVHlwZToibnVtYmVyIixtaW46LjMsZGZsdDoxLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LGFycm93d2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOi4xLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LHN0YW5kb2ZmOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MCxlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSxzdGFydHN0YW5kb2ZmOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MCxlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSxheDp7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSxheTp7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSxheHJlZjp7dmFsVHlwZToiZW51bWVyYXRlZCIsZGZsdDoicGl4ZWwiLHZhbHVlczpbInBpeGVsIixpLmlkUmVnZXgueC50b1N0cmluZygpXSxlZGl0VHlwZToiY2FsYyJ9LGF5cmVmOnt2YWxUeXBlOiJlbnVtZXJhdGVkIixkZmx0OiJwaXhlbCIsdmFsdWVzOlsicGl4ZWwiLGkuaWRSZWdleC55LnRvU3RyaW5nKCldLGVkaXRUeXBlOiJjYWxjIn0seHJlZjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsicGFwZXIiLGkuaWRSZWdleC54LnRvU3RyaW5nKCldLGVkaXRUeXBlOiJjYWxjIn0seDp7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSx4YW5jaG9yOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhdXRvIiwibGVmdCIsImNlbnRlciIsInJpZ2h0Il0sZGZsdDoiYXV0byIsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0seHNoaWZ0Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MCxlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSx5cmVmOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJwYXBlciIsaS5pZFJlZ2V4LnkudG9TdHJpbmcoKV0sZWRpdFR5cGU6ImNhbGMifSx5Ont2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LHlhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImF1dG8iLCJ0b3AiLCJtaWRkbGUiLCJib3R0b20iXSxkZmx0OiJhdXRvIixlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSx5c2hpZnQ6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDowLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LGNsaWNrdG9zaG93Ont2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyExLCJvbm9mZiIsIm9ub3V0Il0sZGZsdDohMSxlZGl0VHlwZToiYXJyYXlkcmF3In0seGNsaWNrOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJhcnJheWRyYXcifSx5Y2xpY2s6e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LGhvdmVydGV4dDp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToiYXJyYXlkcmF3In0saG92ZXJsYWJlbDp7Ymdjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJhcnJheWRyYXcifSxib3JkZXJjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJhcnJheWRyYXcifSxmb250OmEoe2VkaXRUeXBlOiJhcnJheWRyYXcifSksZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LGNhcHR1cmVldmVudHM6e3ZhbFR5cGU6ImJvb2xlYW4iLGVkaXRUeXBlOiJhcnJheWRyYXcifSxlZGl0VHlwZToiY2FsYyIsX2RlcHJlY2F0ZWQ6e3JlZjp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToiY2FsYyJ9fX0pfSx7Ii4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjc1NSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2NvbnN0YW50cyI6NzcxLCIuLi8uLi9wbG90cy9mb250X2F0dHJpYnV0ZXMiOjc5MSwiLi9hcnJvd19wYXRocyI6NTc0fV0sNTc2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxpPXQoIi4vZHJhdyIpLmRyYXc7ZnVuY3Rpb24gbyh0KXt2YXIgZT10Ll9mdWxsTGF5b3V0O24uZmlsdGVyVmlzaWJsZShlLmFubm90YXRpb25zKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciByPWEuZ2V0RnJvbUlkKHQsZS54cmVmKSxuPWEuZ2V0RnJvbUlkKHQsZS55cmVmKTtlLl9leHRyZW1lcz17fSxyJiZzKGUsciksbiYmcyhlLG4pfSl9ZnVuY3Rpb24gcyh0LGUpe3ZhciByLG49ZS5faWQsaT1uLmNoYXJBdCgwKSxvPXRbaV0scz10WyJhIitpXSxsPXRbaSsicmVmIl0sYz10WyJhIitpKyJyZWYiXSx1PXRbIl8iK2krInBhZHBsdXMiXSxoPXRbIl8iK2krInBhZG1pbnVzIl0sZj17eDoxLHk6LTF9W2ldKnRbaSsic2hpZnQiXSxwPTMqdC5hcnJvd3NpemUqdC5hcnJvd3dpZHRofHwwLGQ9cCtmLGc9cC1mLHY9Myp0LnN0YXJ0YXJyb3dzaXplKnQuYXJyb3d3aWR0aHx8MCxtPXYrZix5PXYtZjtpZihjPT09bCl7dmFyIHg9YS5maW5kRXh0cmVtZXMoZSxbZS5yMmMobyldLHtwcGFkcGx1czpkLHBwYWRtaW51czpnfSksYj1hLmZpbmRFeHRyZW1lcyhlLFtlLnIyYyhzKV0se3BwYWRwbHVzOk1hdGgubWF4KHUsbSkscHBhZG1pbnVzOk1hdGgubWF4KGgseSl9KTtyPXttaW46W3gubWluWzBdLGIubWluWzBdXSxtYXg6W3gubWF4WzBdLGIubWF4WzBdXX19ZWxzZSBtPXM/bStzOm0seT1zP3ktczp5LHI9YS5maW5kRXh0cmVtZXMoZSxbZS5yMmMobyldLHtwcGFkcGx1czpNYXRoLm1heCh1LGQsbSkscHBhZG1pbnVzOk1hdGgubWF4KGgsZyx5KX0pO3QuX2V4dHJlbWVzW25dPXJ9ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQ7aWYobi5maWx0ZXJWaXNpYmxlKGUuYW5ub3RhdGlvbnMpLmxlbmd0aCYmdC5fZnVsbERhdGEubGVuZ3RoKXJldHVybiBuLnN5bmNPckFzeW5jKFtpLG9dLHQpfX0seyIuLi8uLi9saWIiOjcxNywiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjc2NSwiLi9kcmF3Ijo1ODF9XSw1Nzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9yZWdpc3RyeSIpLGk9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLmFycmF5RWRpdG9yO2Z1bmN0aW9uIG8odCxlKXt2YXIgcixuLGEsaSxvLGwsYyx1PXQuX2Z1bGxMYXlvdXQuYW5ub3RhdGlvbnMsaD1bXSxmPVtdLHA9W10sZD0oZXx8W10pLmxlbmd0aDtmb3Iocj0wO3I8dS5sZW5ndGg7cisrKWlmKGk9KGE9dVtyXSkuY2xpY2t0b3Nob3cpe2ZvcihuPTA7bjxkO24rKylpZihsPShvPWVbbl0pLnhheGlzLGM9by55YXhpcyxsLl9pZD09PWEueHJlZiYmYy5faWQ9PT1hLnlyZWYmJmwuZDJyKG8ueCk9PT1zKGEuX3hjbGljayxsKSYmYy5kMnIoby55KT09PXMoYS5feWNsaWNrLGMpKXsoYS52aXNpYmxlPyJvbm91dCI9PT1pP2Y6cDpoKS5wdXNoKHIpO2JyZWFrfW49PT1kJiZhLnZpc2libGUmJiJvbm91dCI9PT1pJiZmLnB1c2gocil9cmV0dXJue29uOmgsb2ZmOmYsZXhwbGljaXRPZmY6cH19ZnVuY3Rpb24gcyh0LGUpe3JldHVybiJsb2ciPT09ZS50eXBlP2UubDJyKHQpOmUuZDJyKHQpfWUuZXhwb3J0cz17aGFzQ2xpY2tUb1Nob3c6ZnVuY3Rpb24odCxlKXt2YXIgcj1vKHQsZSk7cmV0dXJuIHIub24ubGVuZ3RoPjB8fHIuZXhwbGljaXRPZmYubGVuZ3RoPjB9LG9uQ2xpY2s6ZnVuY3Rpb24odCxlKXt2YXIgcixzLGw9byh0LGUpLGM9bC5vbix1PWwub2ZmLmNvbmNhdChsLmV4cGxpY2l0T2ZmKSxoPXt9LGY9dC5fZnVsbExheW91dC5hbm5vdGF0aW9ucztpZighYy5sZW5ndGgmJiF1Lmxlbmd0aClyZXR1cm47Zm9yKHI9MDtyPGMubGVuZ3RoO3IrKykocz1pKHQubGF5b3V0LCJhbm5vdGF0aW9ucyIsZltjW3JdXSkpLm1vZGlmeUl0ZW0oInZpc2libGUiLCEwKSxuLmV4dGVuZEZsYXQoaCxzLmdldFVwZGF0ZU9iaigpKTtmb3Iocj0wO3I8dS5sZW5ndGg7cisrKShzPWkodC5sYXlvdXQsImFubm90YXRpb25zIixmW3Vbcl1dKSkubW9kaWZ5SXRlbSgidmlzaWJsZSIsITEpLG4uZXh0ZW5kRmxhdChoLHMuZ2V0VXBkYXRlT2JqKCkpO3JldHVybiBhLmNhbGwoInVwZGF0ZSIsdCx7fSxoKX19fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo3NTUsIi4uLy4uL3JlZ2lzdHJ5Ijo4NDZ9XSw1Nzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi9jb2xvciIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixpKXtpKCJvcGFjaXR5Iik7dmFyIG89aSgiYmdjb2xvciIpLHM9aSgiYm9yZGVyY29sb3IiKSxsPWEub3BhY2l0eShzKTtpKCJib3JkZXJwYWQiKTt2YXIgYz1pKCJib3JkZXJ3aWR0aCIpLHU9aSgic2hvd2Fycm93Iik7aWYoaSgidGV4dCIsdT8iICI6ci5fZGZsdFRpdGxlLmFubm90YXRpb24pLGkoInRleHRhbmdsZSIpLG4uY29lcmNlRm9udChpLCJmb250IixyLmZvbnQpLGkoIndpZHRoIiksaSgiYWxpZ24iKSxpKCJoZWlnaHQiKSYmaSgidmFsaWduIiksdSl7dmFyIGgsZixwPWkoImFycm93c2lkZSIpOy0xIT09cC5pbmRleE9mKCJlbmQiKSYmKGg9aSgiYXJyb3doZWFkIiksZj1pKCJhcnJvd3NpemUiKSksLTEhPT1wLmluZGV4T2YoInN0YXJ0IikmJihpKCJzdGFydGFycm93aGVhZCIsaCksaSgic3RhcnRhcnJvd3NpemUiLGYpKSxpKCJhcnJvd2NvbG9yIixsP2UuYm9yZGVyY29sb3I6YS5kZWZhdWx0TGluZSksaSgiYXJyb3d3aWR0aCIsMioobCYmY3x8MSkpLGkoInN0YW5kb2ZmIiksaSgic3RhcnRzdGFuZG9mZiIpfXZhciBkPWkoImhvdmVydGV4dCIpLGc9ci5ob3ZlcmxhYmVsfHx7fTtpZihkKXt2YXIgdj1pKCJob3ZlcmxhYmVsLmJnY29sb3IiLGcuYmdjb2xvcnx8KGEub3BhY2l0eShvKT9hLnJnYihvKTphLmRlZmF1bHRMaW5lKSksbT1pKCJob3ZlcmxhYmVsLmJvcmRlcmNvbG9yIixnLmJvcmRlcmNvbG9yfHxhLmNvbnRyYXN0KHYpKTtuLmNvZXJjZUZvbnQoaSwiaG92ZXJsYWJlbC5mb250Iix7ZmFtaWx5OmcuZm9udC5mYW1pbHksc2l6ZTpnLmZvbnQuc2l6ZSxjb2xvcjpnLmZvbnQuY29sb3J8fG19KX1pKCJjYXB0dXJlZXZlbnRzIiwhIWQpfX0seyIuLi8uLi9saWIiOjcxNywiLi4vY29sb3IiOjU5Mn1dLDU3OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGE9dCgiLi4vLi4vbGliL3RvX2xvZ19yYW5nZSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixpKXtlPWV8fHt9O3ZhciBvPSJsb2ciPT09ciYmImxpbmVhciI9PT1lLnR5cGUscz0ibGluZWFyIj09PXImJiJsb2ciPT09ZS50eXBlO2lmKG98fHMpZm9yKHZhciBsLGMsdT10Ll9mdWxsTGF5b3V0LmFubm90YXRpb25zLGg9ZS5faWQuY2hhckF0KDApLGY9MDtmPHUubGVuZ3RoO2YrKylsPXVbZl0sYz0iYW5ub3RhdGlvbnNbIitmKyJdLiIsbFtoKyJyZWYiXT09PWUuX2lkJiZwKGgpLGxbImEiK2grInJlZiJdPT09ZS5faWQmJnAoImEiK2gpO2Z1bmN0aW9uIHAodCl7dmFyIHI9bFt0XSxzPW51bGw7cz1vP2EocixlLnJhbmdlKTpNYXRoLnBvdygxMCxyKSxuKHMpfHwocz1udWxsKSxpKGMrdCxzKX19fSx7Ii4uLy4uL2xpYi90b19sb2dfcmFuZ2UiOjc0MywiZmFzdC1pc251bWVyaWMiOjIyOH1dLDU4MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksaT10KCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiKSxvPXQoIi4vY29tbW9uX2RlZmF1bHRzIikscz10KCIuL2F0dHJpYnV0ZXMiKTtmdW5jdGlvbiBsKHQsZSxyKXtmdW5jdGlvbiBpKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxzLHIsYSl9dmFyIGw9aSgidmlzaWJsZSIpLGM9aSgiY2xpY2t0b3Nob3ciKTtpZihsfHxjKXtvKHQsZSxyLGkpO2Zvcih2YXIgdT1lLnNob3dhcnJvdyxoPVsieCIsInkiXSxmPVstMTAsLTMwXSxwPXtfZnVsbExheW91dDpyfSxkPTA7ZDwyO2QrKyl7dmFyIGc9aFtkXSx2PWEuY29lcmNlUmVmKHQsZSxwLGcsIiIsInBhcGVyIik7aWYoInBhcGVyIiE9PXYpYS5nZXRGcm9tSWQocCx2KS5fYW5uSW5kaWNlcy5wdXNoKGUuX2luZGV4KTtpZihhLmNvZXJjZVBvc2l0aW9uKGUscCxpLHYsZywuNSksdSl7dmFyIG09ImEiK2cseT1hLmNvZXJjZVJlZih0LGUscCxtLCJwaXhlbCIpOyJwaXhlbCIhPT15JiZ5IT09diYmKHk9ZVttXT0icGl4ZWwiKTt2YXIgeD0icGl4ZWwiPT09eT9mW2RdOi40O2EuY29lcmNlUG9zaXRpb24oZSxwLGkseSxtLHgpfWkoZysiYW5jaG9yIiksaShnKyJzaGlmdCIpfWlmKG4ubm9uZU9yQWxsKHQsZSxbIngiLCJ5Il0pLHUmJm4ubm9uZU9yQWxsKHQsZSxbImF4IiwiYXkiXSksYyl7dmFyIGI9aSgieGNsaWNrIiksXz1pKCJ5Y2xpY2siKTtlLl94Y2xpY2s9dm9pZCAwPT09Yj9lLng6YS5jbGVhblBvc2l0aW9uKGIscCxlLnhyZWYpLGUuX3ljbGljaz12b2lkIDA9PT1fP2UueTphLmNsZWFuUG9zaXRpb24oXyxwLGUueXJlZil9fX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpKHQsZSx7bmFtZToiYW5ub3RhdGlvbnMiLGhhbmRsZUl0ZW1EZWZhdWx0czpsfSl9fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiOjc2MSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjc2NSwiLi9hdHRyaWJ1dGVzIjo1NzUsIi4vY29tbW9uX2RlZmF1bHRzIjo1Nzh9XSw1ODE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxhPXQoIi4uLy4uL3JlZ2lzdHJ5IiksaT10KCIuLi8uLi9wbG90cy9wbG90cyIpLG89dCgiLi4vLi4vbGliIikscz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGw9dCgiLi4vY29sb3IiKSxjPXQoIi4uL2RyYXdpbmciKSx1PXQoIi4uL2Z4IiksaD10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSxmPXQoIi4uLy4uL2xpYi9zZXRjdXJzb3IiKSxwPXQoIi4uL2RyYWdlbGVtZW50IiksZD10KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIikuYXJyYXlFZGl0b3IsZz10KCIuL2RyYXdfYXJyb3dfaGVhZCIpO2Z1bmN0aW9uIHYodCxlKXt2YXIgcj10Ll9mdWxsTGF5b3V0LmFubm90YXRpb25zW2VdfHx7fSxuPXMuZ2V0RnJvbUlkKHQsci54cmVmKSxhPXMuZ2V0RnJvbUlkKHQsci55cmVmKTtuJiZuLnNldFNjYWxlKCksYSYmYS5zZXRTY2FsZSgpLG0odCxyLGUsITEsbixhKX1mdW5jdGlvbiBtKHQsZSxyLGkscyx2KXt2YXIgbSx5LHg9dC5fZnVsbExheW91dCxiPXQuX2Z1bGxMYXlvdXQuX3NpemUsXz10Ll9jb250ZXh0LmVkaXRzO2k/KG09ImFubm90YXRpb24tIitpLHk9aSsiLmFubm90YXRpb25zIik6KG09ImFubm90YXRpb24iLHk9ImFubm90YXRpb25zIik7dmFyIHc9ZCh0LmxheW91dCx5LGUpLGs9dy5tb2RpZnlCYXNlLFQ9dy5tb2RpZnlJdGVtLE09dy5nZXRVcGRhdGVPYmo7eC5faW5mb2xheWVyLnNlbGVjdEFsbCgiLiIrbSsnW2RhdGEtaW5kZXg9IicrcisnIl0nKS5yZW1vdmUoKTt2YXIgQT0iY2xpcCIreC5fdWlkKyJfYW5uIityO2lmKGUuX2lucHV0JiYhMSE9PWUudmlzaWJsZSl7dmFyIFM9e3g6e30seTp7fX0sRT0rZS50ZXh0YW5nbGV8fDAsTD14Ll9pbmZvbGF5ZXIuYXBwZW5kKCJnIikuY2xhc3NlZChtLCEwKS5hdHRyKCJkYXRhLWluZGV4IixTdHJpbmcocikpLnN0eWxlKCJvcGFjaXR5IixlLm9wYWNpdHkpLEM9TC5hcHBlbmQoImciKS5jbGFzc2VkKCJhbm5vdGF0aW9uLXRleHQtZyIsITApLFA9X1tlLnNob3dhcnJvdz8iYW5ub3RhdGlvblRhaWwiOiJhbm5vdGF0aW9uUG9zaXRpb24iXSxPPWUuY2FwdHVyZWV2ZW50c3x8Xy5hbm5vdGF0aW9uVGV4dHx8UCx6PUMuYXBwZW5kKCJnIikuc3R5bGUoInBvaW50ZXItZXZlbnRzIixPPyJhbGwiOm51bGwpLmNhbGwoZiwicG9pbnRlciIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXt0Ll9kcmFnZ2luZz0hMSx0LmVtaXQoInBsb3RseV9jbGlja2Fubm90YXRpb24iLHEobi5ldmVudCkpfSk7ZS5ob3ZlcnRleHQmJnoub24oIm1vdXNlb3ZlciIsZnVuY3Rpb24oKXt2YXIgcj1lLmhvdmVybGFiZWwsbj1yLmZvbnQsYT10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGk9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt1LmxvbmVIb3Zlcih7eDA6YS5sZWZ0LWkubGVmdCx4MTphLnJpZ2h0LWkubGVmdCx5OihhLnRvcCthLmJvdHRvbSkvMi1pLnRvcCx0ZXh0OmUuaG92ZXJ0ZXh0LGNvbG9yOnIuYmdjb2xvcixib3JkZXJDb2xvcjpyLmJvcmRlcmNvbG9yLGZvbnRGYW1pbHk6bi5mYW1pbHksZm9udFNpemU6bi5zaXplLGZvbnRDb2xvcjpuLmNvbG9yfSx7Y29udGFpbmVyOnguX2hvdmVybGF5ZXIubm9kZSgpLG91dGVyQ29udGFpbmVyOnguX3BhcGVyLm5vZGUoKSxnZDp0fSl9KS5vbigibW91c2VvdXQiLGZ1bmN0aW9uKCl7dS5sb25lVW5ob3Zlcih4Ll9ob3ZlcmxheWVyLm5vZGUoKSl9KTt2YXIgST1lLmJvcmRlcndpZHRoLEQ9ZS5ib3JkZXJwYWQsUj1JK0QsRj16LmFwcGVuZCgicmVjdCIpLmF0dHIoImNsYXNzIiwiYmciKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixJKyJweCIpLmNhbGwobC5zdHJva2UsZS5ib3JkZXJjb2xvcikuY2FsbChsLmZpbGwsZS5iZ2NvbG9yKSxCPWUud2lkdGh8fGUuaGVpZ2h0LE49eC5fdG9wY2xpcHMuc2VsZWN0QWxsKCIjIitBKS5kYXRhKEI/WzBdOltdKTtOLmVudGVyKCkuYXBwZW5kKCJjbGlwUGF0aCIpLmNsYXNzZWQoImFubmNsaXAiLCEwKS5hdHRyKCJpZCIsQSkuYXBwZW5kKCJyZWN0IiksTi5leGl0KCkucmVtb3ZlKCk7dmFyIGo9ZS5mb250LFY9eC5fbWV0YT9vLnRlbXBsYXRlU3RyaW5nKGUudGV4dCx4Ll9tZXRhKTplLnRleHQsVT16LmFwcGVuZCgidGV4dCIpLmNsYXNzZWQoImFubm90YXRpb24tdGV4dCIsITApLnRleHQoVik7Xy5hbm5vdGF0aW9uVGV4dD9VLmNhbGwoaC5tYWtlRWRpdGFibGUse2RlbGVnYXRlOnosZ2Q6dH0pLmNhbGwoSCkub24oImVkaXQiLGZ1bmN0aW9uKHIpe2UudGV4dD1yLHRoaXMuY2FsbChIKSxUKCJ0ZXh0IixyKSxzJiZzLmF1dG9yYW5nZSYmayhzLl9uYW1lKyIuYXV0b3JhbmdlIiwhMCksdiYmdi5hdXRvcmFuZ2UmJmsodi5fbmFtZSsiLmF1dG9yYW5nZSIsITApLGEuY2FsbCgiX2d1aVJlbGF5b3V0Iix0LE0oKSl9KTpVLmNhbGwoSCl9ZWxzZSBuLnNlbGVjdEFsbCgiIyIrQSkucmVtb3ZlKCk7ZnVuY3Rpb24gcSh0KXt2YXIgbj17aW5kZXg6cixhbm5vdGF0aW9uOmUuX2lucHV0LGZ1bGxBbm5vdGF0aW9uOmUsZXZlbnQ6dH07cmV0dXJuIGkmJihuLnN1YnBsb3RJZD1pKSxufWZ1bmN0aW9uIEgocil7cmV0dXJuIHIuY2FsbChjLmZvbnQsaikuYXR0cih7InRleHQtYW5jaG9yIjp7bGVmdDoic3RhcnQiLHJpZ2h0OiJlbmQifVtlLmFsaWduXXx8Im1pZGRsZSJ9KSxoLmNvbnZlcnRUb1RzcGFucyhyLHQsRykscn1mdW5jdGlvbiBHKCl7dmFyIHI9VS5zZWxlY3RBbGwoImEiKTsxPT09ci5zaXplKCkmJnIudGV4dCgpPT09VS50ZXh0KCkmJnouaW5zZXJ0KCJhIiwiOmZpcnN0LWNoaWxkIikuYXR0cih7InhsaW5rOnhsaW5rOmhyZWYiOnIuYXR0cigieGxpbms6aHJlZiIpLCJ4bGluazp4bGluazpzaG93IjpyLmF0dHIoInhsaW5rOnNob3ciKX0pLnN0eWxlKHtjdXJzb3I6InBvaW50ZXIifSkubm9kZSgpLmFwcGVuZENoaWxkKEYubm9kZSgpKTt2YXIgbj16LnNlbGVjdCgiLmFubm90YXRpb24tdGV4dC1tYXRoLWdyb3VwIiksdT0hbi5lbXB0eSgpLGQ9Yy5iQm94KCh1P246VSkubm9kZSgpKSxtPWQud2lkdGgseT1kLmhlaWdodCx3PWUud2lkdGh8fG0sTz1lLmhlaWdodHx8eSxEPU1hdGgucm91bmQodysyKlIpLGo9TWF0aC5yb3VuZChPKzIqUik7ZnVuY3Rpb24gVih0LGUpe3JldHVybiJhdXRvIj09PWUmJihlPXQ8MS8zPyJsZWZ0Ijp0PjIvMz8icmlnaHQiOiJjZW50ZXIiKSx7Y2VudGVyOjAsbWlkZGxlOjAsbGVmdDouNSxib3R0b206LS41LHJpZ2h0Oi0uNSx0b3A6LjV9W2VdfWZvcih2YXIgSD0hMSxHPVsieCIsInkiXSxZPTA7WTxHLmxlbmd0aDtZKyspe3ZhciBXLFgsWixKLEssUT1HW1ldLCQ9ZVtRKyJyZWYiXXx8USx0dD1lWyJhIitRKyJyZWYiXSxldD17eDpzLHk6dn1bUV0scnQ9KEUrKCJ4Ij09PVE/MDotOTApKSpNYXRoLlBJLzE4MCxudD1EKk1hdGguY29zKHJ0KSxhdD1qKk1hdGguc2luKHJ0KSxpdD1NYXRoLmFicyhudCkrTWF0aC5hYnMoYXQpLG90PWVbUSsiYW5jaG9yIl0sc3Q9ZVtRKyJzaGlmdCJdKigieCI9PT1RPzE6LTEpLGx0PVNbUV07aWYoZXQpe3ZhciBjdD1ldC5yMmZyYWN0aW9uKGVbUV0pOyhjdDwwfHxjdD4xKSYmKHR0PT09JD8oKGN0PWV0LnIyZnJhY3Rpb24oZVsiYSIrUV0pKTwwfHxjdD4xKSYmKEg9ITApOkg9ITApLFc9ZXQuX29mZnNldCtldC5yMnAoZVtRXSksSj0uNX1lbHNlIngiPT09UT8oWj1lW1FdLFc9Yi5sK2IudypaKTooWj0xLWVbUV0sVz1iLnQrYi5oKlopLEo9ZS5zaG93YXJyb3c/LjU6WjtpZihlLnNob3dhcnJvdyl7bHQuaGVhZD1XO3ZhciB1dD1lWyJhIitRXTtLPW50KlYoLjUsZS54YW5jaG9yKS1hdCpWKC41LGUueWFuY2hvciksdHQ9PT0kPyhsdC50YWlsPWV0Ll9vZmZzZXQrZXQucjJwKHV0KSxYPUspOihsdC50YWlsPVcrdXQsWD1LK3V0KSxsdC50ZXh0PWx0LnRhaWwrSzt2YXIgaHQ9eFsieCI9PT1RPyJ3aWR0aCI6ImhlaWdodCJdO2lmKCJwYXBlciI9PT0kJiYobHQuaGVhZD1vLmNvbnN0cmFpbihsdC5oZWFkLDEsaHQtMSkpLCJwaXhlbCI9PT10dCl7dmFyIGZ0PS1NYXRoLm1heChsdC50YWlsLTMsbHQudGV4dCkscHQ9TWF0aC5taW4obHQudGFpbCszLGx0LnRleHQpLWh0O2Z0PjA/KGx0LnRhaWwrPWZ0LGx0LnRleHQrPWZ0KTpwdD4wJiYobHQudGFpbC09cHQsbHQudGV4dC09cHQpfWx0LnRhaWwrPXN0LGx0LmhlYWQrPXN0fWVsc2UgWD1LPWl0KlYoSixvdCksbHQudGV4dD1XK0s7bHQudGV4dCs9c3QsSys9c3QsWCs9c3QsZVsiXyIrUSsicGFkcGx1cyJdPWl0LzIrWCxlWyJfIitRKyJwYWRtaW51cyJdPWl0LzItWCxlWyJfIitRKyJzaXplIl09aXQsZVsiXyIrUSsic2hpZnQiXT1LfWlmKEgpei5yZW1vdmUoKTtlbHNle3ZhciBkdD0wLGd0PTA7aWYoImxlZnQiIT09ZS5hbGlnbiYmKGR0PSh3LW0pKigiY2VudGVyIj09PWUuYWxpZ24/LjU6MSkpLCJ0b3AiIT09ZS52YWxpZ24mJihndD0oTy15KSooIm1pZGRsZSI9PT1lLnZhbGlnbj8uNToxKSksdSluLnNlbGVjdCgic3ZnIikuYXR0cih7eDpSK2R0LTEseTpSK2d0fSkuY2FsbChjLnNldENsaXBVcmwsQj9BOm51bGwsdCk7ZWxzZXt2YXIgdnQ9UitndC1kLnRvcCxtdD1SK2R0LWQubGVmdDtVLmNhbGwoaC5wb3NpdGlvblRleHQsbXQsdnQpLmNhbGwoYy5zZXRDbGlwVXJsLEI/QTpudWxsLHQpfU4uc2VsZWN0KCJyZWN0IikuY2FsbChjLnNldFJlY3QsUixSLHcsTyksRi5jYWxsKGMuc2V0UmVjdCxJLzIsSS8yLEQtSSxqLUkpLHouY2FsbChjLnNldFRyYW5zbGF0ZSxNYXRoLnJvdW5kKFMueC50ZXh0LUQvMiksTWF0aC5yb3VuZChTLnkudGV4dC1qLzIpKSxDLmF0dHIoe3RyYW5zZm9ybToicm90YXRlKCIrRSsiLCIrUy54LnRleHQrIiwiK1MueS50ZXh0KyIpIn0pO3ZhciB5dCx4dD1mdW5jdGlvbihyLG4pe0wuc2VsZWN0QWxsKCIuYW5ub3RhdGlvbi1hcnJvdy1nIikucmVtb3ZlKCk7dmFyIHU9Uy54LmhlYWQsaD1TLnkuaGVhZCxmPVMueC50YWlsK3IsZD1TLnkudGFpbCtuLG09Uy54LnRleHQrcix5PVMueS50ZXh0K24seD1vLnJvdGF0aW9uWFlNYXRyaXgoRSxtLHkpLHc9by5hcHBseTJEVHJhbnNmb3JtKHgpLEE9by5hcHBseTJEVHJhbnNmb3JtMih4KSxQPStGLmF0dHIoIndpZHRoIiksTz0rRi5hdHRyKCJoZWlnaHQiKSxJPW0tLjUqUCxEPUkrUCxSPXktLjUqTyxCPVIrTyxOPVtbSSxSLEksQl0sW0ksQixELEJdLFtELEIsRCxSXSxbRCxSLEksUl1dLm1hcChBKTtpZighTi5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gdF4hIW8uc2VnbWVudHNJbnRlcnNlY3QodSxoLHUrMWU2LGgrMWU2LGVbMF0sZVsxXSxlWzJdLGVbM10pfSwhMSkpe04uZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZT1vLnNlZ21lbnRzSW50ZXJzZWN0KGYsZCx1LGgsdFswXSx0WzFdLHRbMl0sdFszXSk7ZSYmKGY9ZS54LGQ9ZS55KX0pO3ZhciBqPWUuYXJyb3d3aWR0aCxWPWUuYXJyb3djb2xvcixVPWUuYXJyb3dzaWRlLHE9TC5hcHBlbmQoImciKS5zdHlsZSh7b3BhY2l0eTpsLm9wYWNpdHkoVil9KS5jbGFzc2VkKCJhbm5vdGF0aW9uLWFycm93LWciLCEwKSxIPXEuYXBwZW5kKCJwYXRoIikuYXR0cigiZCIsIk0iK2YrIiwiK2QrIkwiK3UrIiwiK2gpLnN0eWxlKCJzdHJva2Utd2lkdGgiLGorInB4IikuY2FsbChsLnN0cm9rZSxsLnJnYihWKSk7aWYoZyhILFUsZSksXy5hbm5vdGF0aW9uUG9zaXRpb24mJkgubm9kZSgpLnBhcmVudE5vZGUmJiFpKXt2YXIgRz11LFk9aDtpZihlLnN0YW5kb2ZmKXt2YXIgVz1NYXRoLnNxcnQoTWF0aC5wb3codS1mLDIpK01hdGgucG93KGgtZCwyKSk7Rys9ZS5zdGFuZG9mZiooZi11KS9XLFkrPWUuc3RhbmRvZmYqKGQtaCkvV312YXIgWCxaLEo9cS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJhbm5vdGF0aW9uLWFycm93IiwhMCkuY2xhc3NlZCgiYW5uZHJhZyIsITApLmNsYXNzZWQoImN1cnNvci1tb3ZlIiwhMCkuYXR0cih7ZDoiTTMsM0gtM1YtM0gzWk0wLDBMIisoZi1HKSsiLCIrKGQtWSksdHJhbnNmb3JtOiJ0cmFuc2xhdGUoIitHKyIsIitZKyIpIn0pLnN0eWxlKCJzdHJva2Utd2lkdGgiLGorNisicHgiKS5jYWxsKGwuc3Ryb2tlLCJyZ2JhKDAsMCwwLDApIikuY2FsbChsLmZpbGwsInJnYmEoMCwwLDAsMCkiKTtwLmluaXQoe2VsZW1lbnQ6Si5ub2RlKCksZ2Q6dCxwcmVwRm46ZnVuY3Rpb24oKXt2YXIgdD1jLmdldFRyYW5zbGF0ZSh6KTtYPXQueCxaPXQueSxzJiZzLmF1dG9yYW5nZSYmayhzLl9uYW1lKyIuYXV0b3JhbmdlIiwhMCksdiYmdi5hdXRvcmFuZ2UmJmsodi5fbmFtZSsiLmF1dG9yYW5nZSIsITApfSxtb3ZlRm46ZnVuY3Rpb24odCxyKXt2YXIgbj13KFgsWiksYT1uWzBdK3QsaT1uWzFdK3I7ei5jYWxsKGMuc2V0VHJhbnNsYXRlLGEsaSksVCgieCIscz9zLnAycihzLnIycChlLngpK3QpOmUueCt0L2IudyksVCgieSIsdj92LnAycih2LnIycChlLnkpK3IpOmUueS1yL2IuaCksZS5heHJlZj09PWUueHJlZiYmVCgiYXgiLHMucDJyKHMucjJwKGUuYXgpK3QpKSxlLmF5cmVmPT09ZS55cmVmJiZUKCJheSIsdi5wMnIodi5yMnAoZS5heSkrcikpLHEuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrdCsiLCIrcisiKSIpLEMuYXR0cih7dHJhbnNmb3JtOiJyb3RhdGUoIitFKyIsIithKyIsIitpKyIpIn0pfSxkb25lRm46ZnVuY3Rpb24oKXthLmNhbGwoIl9ndWlSZWxheW91dCIsdCxNKCkpO3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5qcy1ub3Rlcy1ib3gtcGFuZWwiKTtlJiZlLnJlZHJhdyhlLnNlbGVjdGVkT2JqKX19KX19fTtpZihlLnNob3dhcnJvdyYmeHQoMCwwKSxQKXAuaW5pdCh7ZWxlbWVudDp6Lm5vZGUoKSxnZDp0LHByZXBGbjpmdW5jdGlvbigpe3l0PUMuYXR0cigidHJhbnNmb3JtIil9LG1vdmVGbjpmdW5jdGlvbih0LHIpe3ZhciBuPSJwb2ludGVyIjtpZihlLnNob3dhcnJvdyllLmF4cmVmPT09ZS54cmVmP1QoImF4IixzLnAycihzLnIycChlLmF4KSt0KSk6VCgiYXgiLGUuYXgrdCksZS5heXJlZj09PWUueXJlZj9UKCJheSIsdi5wMnIodi5yMnAoZS5heSkrcikpOlQoImF5IixlLmF5K3IpLHh0KHQscik7ZWxzZXtpZihpKXJldHVybjt2YXIgYSxvO2lmKHMpYT1zLnAycihzLnIycChlLngpK3QpO2Vsc2V7dmFyIGw9ZS5feHNpemUvYi53LGM9ZS54KyhlLl94c2hpZnQtZS54c2hpZnQpL2Iudy1sLzI7YT1wLmFsaWduKGMrdC9iLncsbCwwLDEsZS54YW5jaG9yKX1pZih2KW89di5wMnIodi5yMnAoZS55KStyKTtlbHNle3ZhciB1PWUuX3lzaXplL2IuaCxoPWUueS0oZS5feXNoaWZ0K2UueXNoaWZ0KS9iLmgtdS8yO289cC5hbGlnbihoLXIvYi5oLHUsMCwxLGUueWFuY2hvcil9VCgieCIsYSksVCgieSIsbykscyYmdnx8KG49cC5nZXRDdXJzb3Iocz8uNTphLHY/LjU6byxlLnhhbmNob3IsZS55YW5jaG9yKSl9Qy5hdHRyKHt0cmFuc2Zvcm06InRyYW5zbGF0ZSgiK3QrIiwiK3IrIikiK3l0fSksZih6LG4pfSxjbGlja0ZuOmZ1bmN0aW9uKHIsbil7ZS5jYXB0dXJlZXZlbnRzJiZ0LmVtaXQoInBsb3RseV9jbGlja2Fubm90YXRpb24iLHEobikpfSxkb25lRm46ZnVuY3Rpb24oKXtmKHopLGEuY2FsbCgiX2d1aVJlbGF5b3V0Iix0LE0oKSk7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmpzLW5vdGVzLWJveC1wYW5lbCIpO2UmJmUucmVkcmF3KGUuc2VsZWN0ZWRPYmopfX0pfX19ZS5leHBvcnRzPXtkcmF3OmZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQ7ZS5faW5mb2xheWVyLnNlbGVjdEFsbCgiLmFubm90YXRpb24iKS5yZW1vdmUoKTtmb3IodmFyIHI9MDtyPGUuYW5ub3RhdGlvbnMubGVuZ3RoO3IrKyllLmFubm90YXRpb25zW3JdLnZpc2libGUmJnYodCxyKTtyZXR1cm4gaS5wcmV2aW91c1Byb21pc2VzKHQpfSxkcmF3T25lOnYsZHJhd1JhdzptfX0seyIuLi8uLi9saWIiOjcxNywiLi4vLi4vbGliL3NldGN1cnNvciI6NzM3LCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjc0MSwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NzU1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NzY1LCIuLi8uLi9wbG90cy9wbG90cyI6ODI2LCIuLi8uLi9yZWdpc3RyeSI6ODQ2LCIuLi9jb2xvciI6NTkyLCIuLi9kcmFnZWxlbWVudCI6NjEwLCIuLi9kcmF3aW5nIjo2MTMsIi4uL2Z4Ijo2MzAsIi4vZHJhd19hcnJvd19oZWFkIjo1ODIsZDM6MTY1fV0sNTgyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksYT10KCIuLi9jb2xvciIpLGk9dCgiLi9hcnJvd19wYXRocyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG8scyxsLGMsdT10Lm5vZGUoKSxoPWlbci5hcnJvd2hlYWR8fDBdLGY9aVtyLnN0YXJ0YXJyb3doZWFkfHwwXSxwPShyLmFycm93d2lkdGh8fDEpKihyLmFycm93c2l6ZXx8MSksZD0oci5hcnJvd3dpZHRofHwxKSooci5zdGFydGFycm93c2l6ZXx8MSksZz1lLmluZGV4T2YoInN0YXJ0Iik+PTAsdj1lLmluZGV4T2YoImVuZCIpPj0wLG09aC5iYWNrb2ZmKnArci5zdGFuZG9mZix5PWYuYmFja29mZipkK3Iuc3RhcnRzdGFuZG9mZjtpZigibGluZSI9PT11Lm5vZGVOYW1lKXtvPXt4Oit0LmF0dHIoIngxIikseTordC5hdHRyKCJ5MSIpfSxzPXt4Oit0LmF0dHIoIngyIikseTordC5hdHRyKCJ5MiIpfTt2YXIgeD1vLngtcy54LGI9by55LXMueTtpZihjPShsPU1hdGguYXRhbjIoYix4KSkrTWF0aC5QSSxtJiZ5JiZtK3k+TWF0aC5zcXJ0KHgqeCtiKmIpKXJldHVybiB2b2lkIFAoKTtpZihtKXtpZihtKm0+eCp4K2IqYilyZXR1cm4gdm9pZCBQKCk7dmFyIF89bSpNYXRoLmNvcyhsKSx3PW0qTWF0aC5zaW4obCk7cy54Kz1fLHMueSs9dyx0LmF0dHIoe3gyOnMueCx5MjpzLnl9KX1pZih5KXtpZih5Knk+eCp4K2IqYilyZXR1cm4gdm9pZCBQKCk7dmFyIGs9eSpNYXRoLmNvcyhsKSxUPXkqTWF0aC5zaW4obCk7by54LT1rLG8ueS09VCx0LmF0dHIoe3gxOm8ueCx5MTpvLnl9KX19ZWxzZSBpZigicGF0aCI9PT11Lm5vZGVOYW1lKXt2YXIgTT11LmdldFRvdGFsTGVuZ3RoKCksQT0iIjtpZihNPG0reSlyZXR1cm4gdm9pZCBQKCk7dmFyIFM9dS5nZXRQb2ludEF0TGVuZ3RoKDApLEU9dS5nZXRQb2ludEF0TGVuZ3RoKC4xKTtsPU1hdGguYXRhbjIoUy55LUUueSxTLngtRS54KSxvPXUuZ2V0UG9pbnRBdExlbmd0aChNYXRoLm1pbih5LE0pKSxBPSIwcHgsIit5KyJweCwiO3ZhciBMPXUuZ2V0UG9pbnRBdExlbmd0aChNKSxDPXUuZ2V0UG9pbnRBdExlbmd0aChNLS4xKTtjPU1hdGguYXRhbjIoTC55LUMueSxMLngtQy54KSxzPXUuZ2V0UG9pbnRBdExlbmd0aChNYXRoLm1heCgwLE0tbSkpLEErPU0tKEE/eSttOm0pKyJweCwiK00rInB4Iix0LnN0eWxlKCJzdHJva2UtZGFzaGFycmF5IixBKX1mdW5jdGlvbiBQKCl7dC5zdHlsZSgic3Ryb2tlLWRhc2hhcnJheSIsIjBweCwxMDBweCIpfWZ1bmN0aW9uIE8oZSxpLG8scyl7ZS5wYXRoJiYoZS5ub1JvdGF0ZSYmKG89MCksbi5zZWxlY3QodS5wYXJlbnROb2RlKS5hcHBlbmQoInBhdGgiKS5hdHRyKHtjbGFzczp0LmF0dHIoImNsYXNzIiksZDplLnBhdGgsdHJhbnNmb3JtOiJ0cmFuc2xhdGUoIitpLngrIiwiK2kueSsiKSIrKG8/InJvdGF0ZSgiKzE4MCpvL01hdGguUEkrIikiOiIiKSsic2NhbGUoIitzKyIpIn0pLnN0eWxlKHtmaWxsOmEucmdiKHIuYXJyb3djb2xvciksInN0cm9rZS13aWR0aCI6MH0pKX1nJiZPKGYsbyxsLGQpLHYmJk8oaCxzLGMscCl9fSx7Ii4uL2NvbG9yIjo1OTIsIi4vYXJyb3dfcGF0aHMiOjU3NCxkMzoxNjV9XSw1ODM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9kcmF3IiksYT10KCIuL2NsaWNrIik7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJjb21wb25lbnQiLG5hbWU6ImFubm90YXRpb25zIixsYXlvdXRBdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseUxheW91dERlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxpbmNsdWRlQmFzZVBsb3Q6dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2luY2x1ZGVfY29tcG9uZW50cyIpKCJhbm5vdGF0aW9ucyIpLGNhbGNBdXRvcmFuZ2U6dCgiLi9jYWxjX2F1dG9yYW5nZSIpLGRyYXc6bi5kcmF3LGRyYXdPbmU6bi5kcmF3T25lLGRyYXdSYXc6bi5kcmF3UmF3LGhhc0NsaWNrVG9TaG93OmEuaGFzQ2xpY2tUb1Nob3csb25DbGljazphLm9uQ2xpY2ssY29udmVydENvb3Jkczp0KCIuL2NvbnZlcnRfY29vcmRzIil9fSx7Ii4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9pbmNsdWRlX2NvbXBvbmVudHMiOjc3NSwiLi9hdHRyaWJ1dGVzIjo1NzUsIi4vY2FsY19hdXRvcmFuZ2UiOjU3NiwiLi9jbGljayI6NTc3LCIuL2NvbnZlcnRfY29vcmRzIjo1NzksIi4vZGVmYXVsdHMiOjU4MCwiLi9kcmF3Ijo1ODF9XSw1ODQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vYW5ub3RhdGlvbnMvYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyIpLm92ZXJyaWRlQWxsLGk9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLnRlbXBsYXRlZEFycmF5O2UuZXhwb3J0cz1hKGkoImFubm90YXRpb24iLHt2aXNpYmxlOm4udmlzaWJsZSx4Ont2YWxUeXBlOiJhbnkifSx5Ont2YWxUeXBlOiJhbnkifSx6Ont2YWxUeXBlOiJhbnkifSxheDp7dmFsVHlwZToibnVtYmVyIn0sYXk6e3ZhbFR5cGU6Im51bWJlciJ9LHhhbmNob3I6bi54YW5jaG9yLHhzaGlmdDpuLnhzaGlmdCx5YW5jaG9yOm4ueWFuY2hvcix5c2hpZnQ6bi55c2hpZnQsdGV4dDpuLnRleHQsdGV4dGFuZ2xlOm4udGV4dGFuZ2xlLGZvbnQ6bi5mb250LHdpZHRoOm4ud2lkdGgsaGVpZ2h0Om4uaGVpZ2h0LG9wYWNpdHk6bi5vcGFjaXR5LGFsaWduOm4uYWxpZ24sdmFsaWduOm4udmFsaWduLGJnY29sb3I6bi5iZ2NvbG9yLGJvcmRlcmNvbG9yOm4uYm9yZGVyY29sb3IsYm9yZGVycGFkOm4uYm9yZGVycGFkLGJvcmRlcndpZHRoOm4uYm9yZGVyd2lkdGgsc2hvd2Fycm93Om4uc2hvd2Fycm93LGFycm93Y29sb3I6bi5hcnJvd2NvbG9yLGFycm93aGVhZDpuLmFycm93aGVhZCxzdGFydGFycm93aGVhZDpuLnN0YXJ0YXJyb3doZWFkLGFycm93c2lkZTpuLmFycm93c2lkZSxhcnJvd3NpemU6bi5hcnJvd3NpemUsc3RhcnRhcnJvd3NpemU6bi5zdGFydGFycm93c2l6ZSxhcnJvd3dpZHRoOm4uYXJyb3d3aWR0aCxzdGFuZG9mZjpuLnN0YW5kb2ZmLHN0YXJ0c3RhbmRvZmY6bi5zdGFydHN0YW5kb2ZmLGhvdmVydGV4dDpuLmhvdmVydGV4dCxob3ZlcmxhYmVsOm4uaG92ZXJsYWJlbCxjYXB0dXJlZXZlbnRzOm4uY2FwdHVyZWV2ZW50c30pLCJjYWxjIiwiZnJvbS1yb290Iil9LHsiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyI6NzQ4LCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo3NTUsIi4uL2Fubm90YXRpb25zL2F0dHJpYnV0ZXMiOjU3NX1dLDU4NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIik7ZnVuY3Rpb24gaSh0LGUpe3ZhciByPWUuZnVsbFNjZW5lTGF5b3V0LmRvbWFpbixpPWUuZnVsbExheW91dC5fc2l6ZSxvPXtwZGF0YTpudWxsLHR5cGU6ImxpbmVhciIsYXV0b3JhbmdlOiExLHJhbmdlOlstMS8wLDEvMF19O3QuX3hhPXt9LG4uZXh0ZW5kRmxhdCh0Ll94YSxvKSxhLnNldENvbnZlcnQodC5feGEpLHQuX3hhLl9vZmZzZXQ9aS5sK3IueFswXSppLncsdC5feGEubDJwPWZ1bmN0aW9uKCl7cmV0dXJuLjUqKDErdC5fcGRhdGFbMF0vdC5fcGRhdGFbM10pKmkudyooci54WzFdLXIueFswXSl9LHQuX3lhPXt9LG4uZXh0ZW5kRmxhdCh0Ll95YSxvKSxhLnNldENvbnZlcnQodC5feWEpLHQuX3lhLl9vZmZzZXQ9aS50KygxLXIueVsxXSkqaS5oLHQuX3lhLmwycD1mdW5jdGlvbigpe3JldHVybi41KigxLXQuX3BkYXRhWzFdL3QuX3BkYXRhWzNdKSppLmgqKHIueVsxXS1yLnlbMF0pfX1lLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuZnVsbFNjZW5lTGF5b3V0LmFubm90YXRpb25zLHI9MDtyPGUubGVuZ3RoO3IrKylpKGVbcl0sdCk7dC5mdWxsTGF5b3V0Ll9pbmZvbGF5ZXIuc2VsZWN0QWxsKCIuYW5ub3RhdGlvbi0iK3QuaWQpLnJlbW92ZSgpfX0seyIuLi8uLi9saWIiOjcxNywiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjc2NX1dLDU4NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksaT10KCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiKSxvPXQoIi4uL2Fubm90YXRpb25zL2NvbW1vbl9kZWZhdWx0cyIpLHM9dCgiLi9hdHRyaWJ1dGVzIik7ZnVuY3Rpb24gbCh0LGUscixpKXtmdW5jdGlvbiBsKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxzLHIsYSl9ZnVuY3Rpb24gYyh0KXt2YXIgbj10KyJheGlzIixpPXtfZnVsbExheW91dDp7fX07cmV0dXJuIGkuX2Z1bGxMYXlvdXRbbl09cltuXSxhLmNvZXJjZVBvc2l0aW9uKGUsaSxsLHQsdCwuNSl9bCgidmlzaWJsZSIpJiYobyh0LGUsaS5mdWxsTGF5b3V0LGwpLGMoIngiKSxjKCJ5IiksYygieiIpLG4ubm9uZU9yQWxsKHQsZSxbIngiLCJ5IiwieiJdKSxlLnhyZWY9IngiLGUueXJlZj0ieSIsZS56cmVmPSJ6IixsKCJ4YW5jaG9yIiksbCgieWFuY2hvciIpLGwoInhzaGlmdCIpLGwoInlzaGlmdCIpLGUuc2hvd2Fycm93JiYoZS5heHJlZj0icGl4ZWwiLGUuYXlyZWY9InBpeGVsIixsKCJheCIsLTEwKSxsKCJheSIsLTMwKSxuLm5vbmVPckFsbCh0LGUsWyJheCIsImF5Il0pKSl9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtpKHQsZSx7bmFtZToiYW5ub3RhdGlvbnMiLGhhbmRsZUl0ZW1EZWZhdWx0czpsLGZ1bGxMYXlvdXQ6ci5mdWxsTGF5b3V0fSl9fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiOjc2MSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjc2NSwiLi4vYW5ub3RhdGlvbnMvY29tbW9uX2RlZmF1bHRzIjo1NzgsIi4vYXR0cmlidXRlcyI6NTg0fV0sNTg3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2Fubm90YXRpb25zL2RyYXciKS5kcmF3UmF3LGE9dCgiLi4vLi4vcGxvdHMvZ2wzZC9wcm9qZWN0IiksaT1bIngiLCJ5IiwieiJdO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5mdWxsU2NlbmVMYXlvdXQscj10LmRhdGFTY2FsZSxvPWUuYW5ub3RhdGlvbnMscz0wO3M8by5sZW5ndGg7cysrKXtmb3IodmFyIGw9b1tzXSxjPSExLHU9MDt1PDM7dSsrKXt2YXIgaD1pW3VdLGY9bFtoXSxwPWVbaCsiYXhpcyJdLnIyZnJhY3Rpb24oZik7aWYocDwwfHxwPjEpe2M9ITA7YnJlYWt9fWM/dC5mdWxsTGF5b3V0Ll9pbmZvbGF5ZXIuc2VsZWN0KCIuYW5ub3RhdGlvbi0iK3QuaWQrJ1tkYXRhLWluZGV4PSInK3MrJyJdJykucmVtb3ZlKCk6KGwuX3BkYXRhPWEodC5nbHBsb3QuY2FtZXJhUGFyYW1zLFtlLnhheGlzLnIybChsLngpKnJbMF0sZS55YXhpcy5yMmwobC55KSpyWzFdLGUuemF4aXMucjJsKGwueikqclsyXV0pLG4odC5ncmFwaERpdixsLHMsdC5pZCxsLl94YSxsLl95YSkpfX19LHsiLi4vLi4vcGxvdHMvZ2wzZC9wcm9qZWN0Ijo4MTQsIi4uL2Fubm90YXRpb25zL2RyYXciOjU4MX1dLDU4ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9yZWdpc3RyeSIpLGE9dCgiLi4vLi4vbGliIik7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJjb21wb25lbnQiLG5hbWU6ImFubm90YXRpb25zM2QiLHNjaGVtYTp7c3VicGxvdHM6e3NjZW5lOnthbm5vdGF0aW9uczp0KCIuL2F0dHJpYnV0ZXMiKX19fSxsYXlvdXRBdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLGhhbmRsZURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxpbmNsdWRlQmFzZVBsb3Q6ZnVuY3Rpb24odCxlKXt2YXIgcj1uLnN1YnBsb3RzUmVnaXN0cnkuZ2wzZDtpZighcilyZXR1cm47Zm9yKHZhciBpPXIuYXR0clJlZ2V4LG89T2JqZWN0LmtleXModCkscz0wO3M8by5sZW5ndGg7cysrKXt2YXIgbD1vW3NdO2kudGVzdChsKSYmKHRbbF0uYW5ub3RhdGlvbnN8fFtdKS5sZW5ndGgmJihhLnB1c2hVbmlxdWUoZS5fYmFzZVBsb3RNb2R1bGVzLHIpLGEucHVzaFVuaXF1ZShlLl9zdWJwbG90cy5nbDNkLGwpKX19LGNvbnZlcnQ6dCgiLi9jb252ZXJ0IiksZHJhdzp0KCIuL2RyYXciKX19LHsiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3JlZ2lzdHJ5Ijo4NDYsIi4vYXR0cmlidXRlcyI6NTg0LCIuL2NvbnZlcnQiOjU4NSwiLi9kZWZhdWx0cyI6NTg2LCIuL2RyYXciOjU4N31dLDU4OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgid29ybGQtY2FsZW5kYXJzL2Rpc3QvbWFpbiIpLHQoIndvcmxkLWNhbGVuZGFycy9kaXN0L3BsdXMiKSx0KCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvY2hpbmVzZSIpLHQoIndvcmxkLWNhbGVuZGFycy9kaXN0L2NhbGVuZGFycy9jb3B0aWMiKSx0KCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvZGlzY3dvcmxkIiksdCgid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL2V0aGlvcGlhbiIpLHQoIndvcmxkLWNhbGVuZGFycy9kaXN0L2NhbGVuZGFycy9oZWJyZXciKSx0KCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvaXNsYW1pYyIpLHQoIndvcmxkLWNhbGVuZGFycy9kaXN0L2NhbGVuZGFycy9qdWxpYW4iKSx0KCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvbWF5YW4iKSx0KCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvbmFuYWtzaGFoaSIpLHQoIndvcmxkLWNhbGVuZGFycy9kaXN0L2NhbGVuZGFycy9uZXBhbGkiKSx0KCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvcGVyc2lhbiIpLHQoIndvcmxkLWNhbGVuZGFycy9kaXN0L2NhbGVuZGFycy90YWl3YW4iKSx0KCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvdGhhaSIpLHQoIndvcmxkLWNhbGVuZGFycy9kaXN0L2NhbGVuZGFycy91bW1hbHF1cmEiKX0seyJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvY2hpbmVzZSI6NTU2LCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvY29wdGljIjo1NTcsIndvcmxkLWNhbGVuZGFycy9kaXN0L2NhbGVuZGFycy9kaXNjd29ybGQiOjU1OCwid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL2V0aGlvcGlhbiI6NTU5LCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvaGVicmV3Ijo1NjAsIndvcmxkLWNhbGVuZGFycy9kaXN0L2NhbGVuZGFycy9pc2xhbWljIjo1NjEsIndvcmxkLWNhbGVuZGFycy9kaXN0L2NhbGVuZGFycy9qdWxpYW4iOjU2Miwid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL21heWFuIjo1NjMsIndvcmxkLWNhbGVuZGFycy9kaXN0L2NhbGVuZGFycy9uYW5ha3NoYWhpIjo1NjQsIndvcmxkLWNhbGVuZGFycy9kaXN0L2NhbGVuZGFycy9uZXBhbGkiOjU2NSwid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL3BlcnNpYW4iOjU2Niwid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL3RhaXdhbiI6NTY3LCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvdGhhaSI6NTY4LCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvdW1tYWxxdXJhIjo1NjksIndvcmxkLWNhbGVuZGFycy9kaXN0L21haW4iOjU3MCwid29ybGQtY2FsZW5kYXJzL2Rpc3QvcGx1cyI6NTcxfV0sNTkwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vY2FsZW5kYXJzIiksYT10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKSxvPWkuRVBPQ0hKRCxzPWkuT05FREFZLGw9e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpPYmplY3Qua2V5cyhuLmNhbGVuZGFycyksZWRpdFR5cGU6ImNhbGMiLGRmbHQ6ImdyZWdvcmlhbiJ9LGM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9e307cmV0dXJuIGlbcl09bCxhLmNvZXJjZSh0LGUsaSxyLG4pfSx1PSIjIyIsaD17ZDp7MDoiZGQiLCItIjoiZCJ9LGU6ezA6ImQiLCItIjoiZCJ9LGE6ezA6IkQiLCItIjoiRCJ9LEE6ezA6IkREIiwiLSI6IkREIn0sajp7MDoib28iLCItIjoibyJ9LFc6ezA6Ind3IiwiLSI6IncifSxtOnswOiJtbSIsIi0iOiJtIn0sYjp7MDoiTSIsIi0iOiJNIn0sQjp7MDoiTU0iLCItIjoiTU0ifSx5OnswOiJ5eSIsIi0iOiJ5eSJ9LFk6ezA6Inl5eXkiLCItIjoieXl5eSJ9LFU6dSx3OnUsYzp7MDoiRCBNIGQgJVggeXl5eSIsIi0iOiJEIE0gZCAlWCB5eXl5In0seDp7MDoibW0vZGQveXl5eSIsIi0iOiJtbS9kZC95eXl5In19O3ZhciBmPXt9O2Z1bmN0aW9uIHAodCl7dmFyIGU9Zlt0XTtyZXR1cm4gZXx8KGU9Zlt0XT1uLmluc3RhbmNlKHQpKX1mdW5jdGlvbiBkKHQpe3JldHVybiBhLmV4dGVuZEZsYXQoe30sbCx7ZGVzY3JpcHRpb246dH0pfWZ1bmN0aW9uIGcodCl7cmV0dXJuIlNldHMgdGhlIGNhbGVuZGFyIHN5c3RlbSB0byB1c2Ugd2l0aCBgIit0KyJgIGRhdGUgZGF0YS4ifXZhciB2PXt4Y2FsZW5kYXI6ZChnKCJ4IikpfSxtPWEuZXh0ZW5kRmxhdCh7fSx2LHt5Y2FsZW5kYXI6ZChnKCJ5IikpfSkseT1hLmV4dGVuZEZsYXQoe30sbSx7emNhbGVuZGFyOmQoZygieiIpKX0pLHg9ZChbIlNldHMgdGhlIGNhbGVuZGFyIHN5c3RlbSB0byB1c2UgZm9yIGByYW5nZWAgYW5kIGB0aWNrMGAiLCJpZiB0aGlzIGlzIGEgZGF0ZSBheGlzLiBUaGlzIGRvZXMgbm90IHNldCB0aGUgY2FsZW5kYXIgZm9yIiwiaW50ZXJwcmV0aW5nIGRhdGEgb24gdGhpcyBheGlzLCB0aGF0J3Mgc3BlY2lmaWVkIGluIHRoZSB0cmFjZSIsIm9yIHZpYSB0aGUgZ2xvYmFsIGBsYXlvdXQuY2FsZW5kYXJgIl0uam9pbigiICIpKTtlLmV4cG9ydHM9e21vZHVsZVR5cGU6ImNvbXBvbmVudCIsbmFtZToiY2FsZW5kYXJzIixzY2hlbWE6e3RyYWNlczp7c2NhdHRlcjptLGJhcjptLGJveDptLGhlYXRtYXA6bSxjb250b3VyOm0saGlzdG9ncmFtOm0saGlzdG9ncmFtMmQ6bSxoaXN0b2dyYW0yZGNvbnRvdXI6bSxzY2F0dGVyM2Q6eSxzdXJmYWNlOnksbWVzaDNkOnksc2NhdHRlcmdsOm0sb2hsYzp2LGNhbmRsZXN0aWNrOnZ9LGxheW91dDp7Y2FsZW5kYXI6ZChbIlNldHMgdGhlIGRlZmF1bHQgY2FsZW5kYXIgc3lzdGVtIHRvIHVzZSBmb3IgaW50ZXJwcmV0aW5nIGFuZCIsImRpc3BsYXlpbmcgZGF0ZXMgdGhyb3VnaG91dCB0aGUgcGxvdC4iXS5qb2luKCIgIikpfSxzdWJwbG90czp7eGF4aXM6e2NhbGVuZGFyOnh9LHlheGlzOntjYWxlbmRhcjp4fSxzY2VuZTp7eGF4aXM6e2NhbGVuZGFyOnh9LHlheGlzOntjYWxlbmRhcjp4fSx6YXhpczp7Y2FsZW5kYXI6eH19LHBvbGFyOntyYWRpYWxheGlzOntjYWxlbmRhcjp4fX19LHRyYW5zZm9ybXM6e2ZpbHRlcjp7dmFsdWVjYWxlbmRhcjpkKFsiU2V0cyB0aGUgY2FsZW5kYXIgc3lzdGVtIHRvIHVzZSBmb3IgYHZhbHVlYCwgaWYgaXQgaXMgYSBkYXRlLiJdLmpvaW4oIiAiKSksdGFyZ2V0Y2FsZW5kYXI6ZChbIlNldHMgdGhlIGNhbGVuZGFyIHN5c3RlbSB0byB1c2UgZm9yIGB0YXJnZXRgLCBpZiBpdCBpcyBhbiIsImFycmF5IG9mIGRhdGVzLiBJZiBgdGFyZ2V0YCBpcyBhIHN0cmluZyAoZWcgKngqKSB3ZSB1c2UgdGhlIiwiY29ycmVzcG9uZGluZyB0cmFjZSBhdHRyaWJ1dGUgKGVnIGB4Y2FsZW5kYXJgKSBpZiBpdCBleGlzdHMsIiwiZXZlbiBpZiBgdGFyZ2V0Y2FsZW5kYXJgIGlzIHByb3ZpZGVkLiJdLmpvaW4oIiAiKSl9fX0sbGF5b3V0QXR0cmlidXRlczpsLGhhbmRsZURlZmF1bHRzOmMsaGFuZGxlVHJhY2VEZWZhdWx0czpmdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGE9MDthPHIubGVuZ3RoO2ErKyljKHQsZSxyW2FdKyJjYWxlbmRhciIsbi5jYWxlbmRhcil9LENBTk9OSUNBTF9TVU5EQVk6e2NoaW5lc2U6IjIwMDAtMDEtMDIiLGNvcHRpYzoiMjAwMC0wMS0wMyIsZGlzY3dvcmxkOiIyMDAwLTAxLTAzIixldGhpb3BpYW46IjIwMDAtMDEtMDUiLGhlYnJldzoiNTAwMC0wMS0wMSIsaXNsYW1pYzoiMTAwMC0wMS0wMiIsanVsaWFuOiIyMDAwLTAxLTAzIixtYXlhbjoiNTAwMC0wMS0wMSIsbmFuYWtzaGFoaToiMTAwMC0wMS0wNSIsbmVwYWxpOiIyMDAwLTAxLTA1IixwZXJzaWFuOiIxMDAwLTAxLTAxIixqYWxhbGk6IjEwMDAtMDEtMDEiLHRhaXdhbjoiMTAwMC0wMS0wNCIsdGhhaToiMjAwMC0wMS0wNCIsdW1tYWxxdXJhOiIxNDAwLTAxLTA2In0sQ0FOT05JQ0FMX1RJQ0s6e2NoaW5lc2U6IjIwMDAtMDEtMDEiLGNvcHRpYzoiMjAwMC0wMS0wMSIsZGlzY3dvcmxkOiIyMDAwLTAxLTAxIixldGhpb3BpYW46IjIwMDAtMDEtMDEiLGhlYnJldzoiNTAwMC0wMS0wMSIsaXNsYW1pYzoiMTAwMC0wMS0wMSIsanVsaWFuOiIyMDAwLTAxLTAxIixtYXlhbjoiNTAwMC0wMS0wMSIsbmFuYWtzaGFoaToiMTAwMC0wMS0wMSIsbmVwYWxpOiIyMDAwLTAxLTAxIixwZXJzaWFuOiIxMDAwLTAxLTAxIixqYWxhbGk6IjEwMDAtMDEtMDEiLHRhaXdhbjoiMTAwMC0wMS0wMSIsdGhhaToiMjAwMC0wMS0wMSIsdW1tYWxxdXJhOiIxNDAwLTAxLTAxIn0sREZMVFJBTkdFOntjaGluZXNlOlsiMjAwMC0wMS0wMSIsIjIwMDEtMDEtMDEiXSxjb3B0aWM6WyIxNzAwLTAxLTAxIiwiMTcwMS0wMS0wMSJdLGRpc2N3b3JsZDpbIjE4MDAtMDEtMDEiLCIxODAxLTAxLTAxIl0sZXRoaW9waWFuOlsiMjAwMC0wMS0wMSIsIjIwMDEtMDEtMDEiXSxoZWJyZXc6WyI1NzAwLTAxLTAxIiwiNTcwMS0wMS0wMSJdLGlzbGFtaWM6WyIxNDAwLTAxLTAxIiwiMTQwMS0wMS0wMSJdLGp1bGlhbjpbIjIwMDAtMDEtMDEiLCIyMDAxLTAxLTAxIl0sbWF5YW46WyI1MjAwLTAxLTAxIiwiNTIwMS0wMS0wMSJdLG5hbmFrc2hhaGk6WyIwNTAwLTAxLTAxIiwiMDUwMS0wMS0wMSJdLG5lcGFsaTpbIjIwMDAtMDEtMDEiLCIyMDAxLTAxLTAxIl0scGVyc2lhbjpbIjE0MDAtMDEtMDEiLCIxNDAxLTAxLTAxIl0samFsYWxpOlsiMTQwMC0wMS0wMSIsIjE0MDEtMDEtMDEiXSx0YWl3YW46WyIwMTAwLTAxLTAxIiwiMDEwMS0wMS0wMSJdLHRoYWk6WyIyNTAwLTAxLTAxIiwiMjUwMS0wMS0wMSJdLHVtbWFscXVyYTpbIjE0MDAtMDEtMDEiLCIxNDAxLTAxLTAxIl19LGdldENhbDpwLHdvcmxkQ2FsRm10OmZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG4sYSxpLGwsYyxmPU1hdGguZmxvb3IoKGUrLjA1KS9zKStvLGQ9cChyKS5mcm9tSkQoZiksZz0wOy0xIT09KGc9dC5pbmRleE9mKCIlIixnKSk7KSIwIj09PShuPXQuY2hhckF0KGcrMSkpfHwiLSI9PT1ufHwiXyI9PT1uPyhpPTMsYT10LmNoYXJBdChnKzIpLCJfIj09PW4mJihuPSItIikpOihhPW4sbj0iMCIsaT0yKSwobD1oW2FdKT8oYz1sPT09dT91OmQuZm9ybWF0RGF0ZShsW25dKSx0PXQuc3Vic3RyKDAsZykrYyt0LnN1YnN0cihnK2kpLGcrPWMubGVuZ3RoKTpnKz1pO3JldHVybiB0fX19LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NjkzLCIuLi8uLi9saWIiOjcxNywiLi9jYWxlbmRhcnMiOjU4OX1dLDU5MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmRlZmF1bHRzPVsiIzFmNzdiNCIsIiNmZjdmMGUiLCIjMmNhMDJjIiwiI2Q2MjcyOCIsIiM5NDY3YmQiLCIjOGM1NjRiIiwiI2UzNzdjMiIsIiM3ZjdmN2YiLCIjYmNiZDIyIiwiIzE3YmVjZiJdLHIuZGVmYXVsdExpbmU9IiM0NDQiLHIubGlnaHRMaW5lPSIjZWVlIixyLmJhY2tncm91bmQ9IiNmZmYiLHIuYm9yZGVyTGluZT0iI0JFQzhEOSIsci5saWdodEZyYWN0aW9uPTFlMy8xMX0se31dLDU5MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJ0aW55Y29sb3IyIiksYT10KCJmYXN0LWlzbnVtZXJpYyIpLGk9ZS5leHBvcnRzPXt9LG89dCgiLi9hdHRyaWJ1dGVzIik7aS5kZWZhdWx0cz1vLmRlZmF1bHRzO3ZhciBzPWkuZGVmYXVsdExpbmU9by5kZWZhdWx0TGluZTtpLmxpZ2h0TGluZT1vLmxpZ2h0TGluZTt2YXIgbD1pLmJhY2tncm91bmQ9by5iYWNrZ3JvdW5kO2Z1bmN0aW9uIGModCl7aWYoYSh0KXx8InN0cmluZyIhPXR5cGVvZiB0KXJldHVybiB0O3ZhciBlPXQudHJpbSgpO2lmKCJyZ2IiIT09ZS5zdWJzdHIoMCwzKSlyZXR1cm4gdDt2YXIgcj1lLm1hdGNoKC9ecmdiYT9ccypcKChbXigpXSopXCkkLyk7aWYoIXIpcmV0dXJuIHQ7dmFyIG49clsxXS50cmltKCkuc3BsaXQoL1xzKltccyxdXHMqLyksaT0iYSI9PT1lLmNoYXJBdCgzKSYmND09PW4ubGVuZ3RoO2lmKCFpJiYzIT09bi5sZW5ndGgpcmV0dXJuIHQ7Zm9yKHZhciBvPTA7bzxuLmxlbmd0aDtvKyspe2lmKCFuW29dLmxlbmd0aClyZXR1cm4gdDtpZihuW29dPU51bWJlcihuW29dKSwhKG5bb10+PTApKXJldHVybiB0O2lmKDM9PT1vKW5bb10+MSYmKG5bb109MSk7ZWxzZSBpZihuW29dPj0xKXJldHVybiB0fXZhciBzPU1hdGgucm91bmQoMjU1Km5bMF0pKyIsICIrTWF0aC5yb3VuZCgyNTUqblsxXSkrIiwgIitNYXRoLnJvdW5kKDI1NSpuWzJdKTtyZXR1cm4gaT8icmdiYSgiK3MrIiwgIituWzNdKyIpIjoicmdiKCIrcysiKSJ9aS50aW55UkdCPWZ1bmN0aW9uKHQpe3ZhciBlPXQudG9SZ2IoKTtyZXR1cm4icmdiKCIrTWF0aC5yb3VuZChlLnIpKyIsICIrTWF0aC5yb3VuZChlLmcpKyIsICIrTWF0aC5yb3VuZChlLmIpKyIpIn0saS5yZ2I9ZnVuY3Rpb24odCl7cmV0dXJuIGkudGlueVJHQihuKHQpKX0saS5vcGFjaXR5PWZ1bmN0aW9uKHQpe3JldHVybiB0P24odCkuZ2V0QWxwaGEoKTowfSxpLmFkZE9wYWNpdHk9ZnVuY3Rpb24odCxlKXt2YXIgcj1uKHQpLnRvUmdiKCk7cmV0dXJuInJnYmEoIitNYXRoLnJvdW5kKHIucikrIiwgIitNYXRoLnJvdW5kKHIuZykrIiwgIitNYXRoLnJvdW5kKHIuYikrIiwgIitlKyIpIn0saS5jb21iaW5lPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bih0KS50b1JnYigpO2lmKDE9PT1yLmEpcmV0dXJuIG4odCkudG9SZ2JTdHJpbmcoKTt2YXIgYT1uKGV8fGwpLnRvUmdiKCksaT0xPT09YS5hP2E6e3I6MjU1KigxLWEuYSkrYS5yKmEuYSxnOjI1NSooMS1hLmEpK2EuZyphLmEsYjoyNTUqKDEtYS5hKSthLmIqYS5hfSxvPXtyOmkuciooMS1yLmEpK3IucipyLmEsZzppLmcqKDEtci5hKStyLmcqci5hLGI6aS5iKigxLXIuYSkrci5iKnIuYX07cmV0dXJuIG4obykudG9SZ2JTdHJpbmcoKX0saS5jb250cmFzdD1mdW5jdGlvbih0LGUscil7dmFyIGE9bih0KTtyZXR1cm4gMSE9PWEuZ2V0QWxwaGEoKSYmKGE9bihpLmNvbWJpbmUodCxsKSkpLChhLmlzRGFyaygpP2U/YS5saWdodGVuKGUpOmw6cj9hLmRhcmtlbihyKTpzKS50b1N0cmluZygpfSxpLnN0cm9rZT1mdW5jdGlvbih0LGUpe3ZhciByPW4oZSk7dC5zdHlsZSh7c3Ryb2tlOmkudGlueVJHQihyKSwic3Ryb2tlLW9wYWNpdHkiOnIuZ2V0QWxwaGEoKX0pfSxpLmZpbGw9ZnVuY3Rpb24odCxlKXt2YXIgcj1uKGUpO3Quc3R5bGUoe2ZpbGw6aS50aW55UkdCKHIpLCJmaWxsLW9wYWNpdHkiOnIuZ2V0QWxwaGEoKX0pfSxpLmNsZWFuPWZ1bmN0aW9uKHQpe2lmKHQmJiJvYmplY3QiPT10eXBlb2YgdCl7dmFyIGUscixuLGEsbz1PYmplY3Qua2V5cyh0KTtmb3IoZT0wO2U8by5sZW5ndGg7ZSsrKWlmKGE9dFtuPW9bZV1dLCJjb2xvciI9PT1uLnN1YnN0cihuLmxlbmd0aC01KSlpZihBcnJheS5pc0FycmF5KGEpKWZvcihyPTA7cjxhLmxlbmd0aDtyKyspYVtyXT1jKGFbcl0pO2Vsc2UgdFtuXT1jKGEpO2Vsc2UgaWYoImNvbG9yc2NhbGUiPT09bi5zdWJzdHIobi5sZW5ndGgtMTApJiZBcnJheS5pc0FycmF5KGEpKWZvcihyPTA7cjxhLmxlbmd0aDtyKyspQXJyYXkuaXNBcnJheShhW3JdKSYmKGFbcl1bMV09YyhhW3JdWzFdKSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KGEpKXt2YXIgcz1hWzBdO2lmKCFBcnJheS5pc0FycmF5KHMpJiZzJiYib2JqZWN0Ij09dHlwZW9mIHMpZm9yKHI9MDtyPGEubGVuZ3RoO3IrKylpLmNsZWFuKGFbcl0pfWVsc2UgYSYmIm9iamVjdCI9PXR5cGVvZiBhJiZpLmNsZWFuKGEpfX19LHsiLi9hdHRyaWJ1dGVzIjo1OTEsImZhc3QtaXNudW1lcmljIjoyMjgsdGlueWNvbG9yMjo1MzZ9XSw1OTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2xheW91dF9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9wbG90cy9mb250X2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LG89dCgiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyIpLm92ZXJyaWRlQWxsO2UuZXhwb3J0cz1vKHt0aGlja25lc3Ntb2RlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJmcmFjdGlvbiIsInBpeGVscyJdLGRmbHQ6InBpeGVscyJ9LHRoaWNrbmVzczp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjMwfSxsZW5tb2RlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJmcmFjdGlvbiIsInBpeGVscyJdLGRmbHQ6ImZyYWN0aW9uIn0sbGVuOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MX0seDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjEuMDIsbWluOi0yLG1heDozfSx4YW5jaG9yOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJsZWZ0IiwiY2VudGVyIiwicmlnaHQiXSxkZmx0OiJsZWZ0In0seHBhZDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjEwfSx5Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6LjUsbWluOi0yLG1heDozfSx5YW5jaG9yOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0b3AiLCJtaWRkbGUiLCJib3R0b20iXSxkZmx0OiJtaWRkbGUifSx5cGFkOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MTB9LG91dGxpbmVjb2xvcjpuLmxpbmVjb2xvcixvdXRsaW5ld2lkdGg6bi5saW5ld2lkdGgsYm9yZGVyY29sb3I6bi5saW5lY29sb3IsYm9yZGVyd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDowfSxiZ2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDoicmdiYSgwLDAsMCwwKSJ9LHRpY2ttb2RlOm4udGlja21vZGUsbnRpY2tzOm4ubnRpY2tzLHRpY2swOm4udGljazAsZHRpY2s6bi5kdGljayx0aWNrdmFsczpuLnRpY2t2YWxzLHRpY2t0ZXh0Om4udGlja3RleHQsdGlja3M6aSh7fSxuLnRpY2tzLHtkZmx0OiIifSksdGlja2xlbjpuLnRpY2tsZW4sdGlja3dpZHRoOm4udGlja3dpZHRoLHRpY2tjb2xvcjpuLnRpY2tjb2xvcixzaG93dGlja2xhYmVsczpuLnNob3d0aWNrbGFiZWxzLHRpY2tmb250OmEoe30pLHRpY2thbmdsZTpuLnRpY2thbmdsZSx0aWNrZm9ybWF0Om4udGlja2Zvcm1hdCx0aWNrZm9ybWF0c3RvcHM6bi50aWNrZm9ybWF0c3RvcHMsdGlja3ByZWZpeDpuLnRpY2twcmVmaXgsc2hvd3RpY2twcmVmaXg6bi5zaG93dGlja3ByZWZpeCx0aWNrc3VmZml4Om4udGlja3N1ZmZpeCxzaG93dGlja3N1ZmZpeDpuLnNob3d0aWNrc3VmZml4LHNlcGFyYXRldGhvdXNhbmRzOm4uc2VwYXJhdGV0aG91c2FuZHMsZXhwb25lbnRmb3JtYXQ6bi5leHBvbmVudGZvcm1hdCxzaG93ZXhwb25lbnQ6bi5zaG93ZXhwb25lbnQsdGl0bGU6e3RleHQ6e3ZhbFR5cGU6InN0cmluZyJ9LGZvbnQ6YSh7fSksc2lkZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsicmlnaHQiLCJ0b3AiLCJib3R0b20iXSxkZmx0OiJ0b3AifX0sX2RlcHJlY2F0ZWQ6e3RpdGxlOnt2YWxUeXBlOiJzdHJpbmcifSx0aXRsZWZvbnQ6YSh7fSksdGl0bGVzaWRlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJyaWdodCIsInRvcCIsImJvdHRvbSJdLGRmbHQ6InRvcCJ9fX0sImNvbG9yYmFycyIsImZyb20tcm9vdCIpfSx7Ii4uLy4uL2xpYi9leHRlbmQiOjcwOCwiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyI6NzQ4LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vbGF5b3V0X2F0dHJpYnV0ZXMiOjc3NywiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIjo3OTF9XSw1OTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtjbjp7Y29sb3JiYXI6ImNvbG9yYmFyIixjYmJnOiJjYmJnIixjYmZpbGw6ImNiZmlsbCIsY2JmaWxsczoiY2JmaWxscyIsY2JsaW5lOiJjYmxpbmUiLGNibGluZXM6ImNibGluZXMiLGNiYXhpczoiY2JheGlzIixjYnRpdGxldW5zaGlmdDoiY2J0aXRsZXVuc2hpZnQiLGNidGl0bGU6ImNidGl0bGUiLGNib3V0bGluZToiY2JvdXRsaW5lIixjcmlzcDoiY3Jpc3AiLGpzUGxhY2Vob2xkZXI6ImpzLXBsYWNlaG9sZGVyIn19fSx7fV0sNTk1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLGk9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL3RpY2tfdmFsdWVfZGVmYXVsdHMiKSxvPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi90aWNrX21hcmtfZGVmYXVsdHMiKSxzPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi90aWNrX2xhYmVsX2RlZmF1bHRzIiksbD10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBjPWEubmV3Q29udGFpbmVyKGUsImNvbG9yYmFyIiksdT10LmNvbG9yYmFyfHx7fTtmdW5jdGlvbiBoKHQsZSl7cmV0dXJuIG4uY29lcmNlKHUsYyxsLHQsZSl9dmFyIGY9aCgidGhpY2tuZXNzbW9kZSIpO2goInRoaWNrbmVzcyIsImZyYWN0aW9uIj09PWY/MzAvKHIud2lkdGgtci5tYXJnaW4ubC1yLm1hcmdpbi5yKTozMCk7dmFyIHA9aCgibGVubW9kZSIpO2goImxlbiIsImZyYWN0aW9uIj09PXA/MTpyLmhlaWdodC1yLm1hcmdpbi50LXIubWFyZ2luLmIpLGgoIngiKSxoKCJ4YW5jaG9yIiksaCgieHBhZCIpLGgoInkiKSxoKCJ5YW5jaG9yIiksaCgieXBhZCIpLG4ubm9uZU9yQWxsKHUsYyxbIngiLCJ5Il0pLGgoIm91dGxpbmVjb2xvciIpLGgoIm91dGxpbmV3aWR0aCIpLGgoImJvcmRlcmNvbG9yIiksaCgiYm9yZGVyd2lkdGgiKSxoKCJiZ2NvbG9yIiksaSh1LGMsaCwibGluZWFyIik7dmFyIGQ9e291dGVyVGlja3M6ITEsZm9udDpyLmZvbnR9O3ModSxjLGgsImxpbmVhciIsZCksbyh1LGMsaCwibGluZWFyIixkKSxoKCJ0aXRsZS50ZXh0IixyLl9kZmx0VGl0bGUuY29sb3JiYXIpLG4uY29lcmNlRm9udChoLCJ0aXRsZS5mb250IixyLmZvbnQpLGgoInRpdGxlLnNpZGUiKX19LHsiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjc1NSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL3RpY2tfbGFiZWxfZGVmYXVsdHMiOjc4NCwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL3RpY2tfbWFya19kZWZhdWx0cyI6Nzg1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vdGlja192YWx1ZV9kZWZhdWx0cyI6Nzg2LCIuL2F0dHJpYnV0ZXMiOjU5M31dLDU5NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGE9dCgidGlueWNvbG9yMiIpLGk9dCgiLi4vLi4vcGxvdHMvcGxvdHMiKSxvPXQoIi4uLy4uL3JlZ2lzdHJ5Iikscz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGw9dCgiLi4vZHJhZ2VsZW1lbnQiKSxjPXQoIi4uLy4uL2xpYiIpLHU9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsaD10KCIuLi8uLi9saWIvc2V0Y3Vyc29yIiksZj10KCIuLi9kcmF3aW5nIikscD10KCIuLi9jb2xvciIpLGQ9dCgiLi4vdGl0bGVzIiksZz10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSx2PXQoIi4uL2NvbG9yc2NhbGUvaGVscGVycyIpLmZsaXBTY2FsZSxtPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2RlZmF1bHRzIikseT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vcG9zaXRpb25fZGVmYXVsdHMiKSx4PXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9sYXlvdXRfYXR0cmlidXRlcyIpLGI9dCgiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCIpLF89Yi5MSU5FX1NQQUNJTkcsdz1iLkZST01fVEwsaz1iLkZST01fQlIsVD10KCIuL2NvbnN0YW50cyIpLmNuO2UuZXhwb3J0cz17ZHJhdzpmdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0Ll9pbmZvbGF5ZXIuc2VsZWN0QWxsKCJnLiIrVC5jb2xvcmJhcikuZGF0YShmdW5jdGlvbih0KXt2YXIgZSxyLG4sYSxpPXQuX2Z1bGxMYXlvdXQsbz10LmNhbGNkYXRhLHM9W107ZnVuY3Rpb24gbCh0KXtyZXR1cm4gdSh0LHtfZmlsbGNvbG9yOm51bGwsX2xpbmU6e2NvbG9yOm51bGwsd2lkdGg6bnVsbCxkYXNoOm51bGx9LF9sZXZlbHM6e3N0YXJ0Om51bGwsZW5kOm51bGwsc2l6ZTpudWxsfSxfZmlsbGxldmVsczpudWxsLF9maWxsZ3JhZGllbnQ6bnVsbCxfenJhbmdlOm51bGx9KX1mdW5jdGlvbiBjKCl7ImZ1bmN0aW9uIj09dHlwZW9mIGEuY2FsYz9hLmNhbGModCxuLGUpOihlLl9maWxsZ3JhZGllbnQ9ci5yZXZlcnNlc2NhbGU/dihyLmNvbG9yc2NhbGUpOnIuY29sb3JzY2FsZSxlLl96cmFuZ2U9W3JbYS5taW5dLHJbYS5tYXhdXSl9Zm9yKHZhciBoPTA7aDxvLmxlbmd0aDtoKyspe3ZhciBmPW9baF0scD0obj1mWzBdLnRyYWNlKS5fbW9kdWxlLmNvbG9yYmFyO2lmKCEwPT09bi52aXNpYmxlJiZwKWZvcih2YXIgZD1BcnJheS5pc0FycmF5KHApLGc9ZD9wOltwXSxtPTA7bTxnLmxlbmd0aDttKyspe3ZhciB5PShhPWdbbV0pLmNvbnRhaW5lcjsocj15P25beV06bikmJnIuc2hvd3NjYWxlJiYoKGU9bChyLmNvbG9yYmFyKSkuX2lkPSJjYiIrbi51aWQrKGQmJnk/Ii0iK3k6IiIpLGUuX3RyYWNlSW5kZXg9bi5pbmRleCxlLl9wcm9wUHJlZml4PSh5P3krIi4iOiIiKSsiY29sb3JiYXIuIixlLl9tZXRhPW4uX21ldGEsYygpLHMucHVzaChlKSl9fWZvcih2YXIgeCBpbiBpLl9jb2xvckF4ZXMpaWYoKHI9aVt4XSkuc2hvd3NjYWxlKXt2YXIgYj1pLl9jb2xvckF4ZXNbeF07KGU9bChyLmNvbG9yYmFyKSkuX2lkPSJjYiIreCxlLl9wcm9wUHJlZml4PXgrIi5jb2xvcmJhci4iLGUuX21ldGE9aS5fbWV0YSxhPXttaW46ImNtaW4iLG1heDoiY21heCJ9LCJoZWF0bWFwIiE9PWJbMF0mJihuPWJbMV0sYS5jYWxjPW4uX21vZHVsZS5jb2xvcmJhci5jYWxjKSxjKCkscy5wdXNoKGUpfXJldHVybiBzfSh0KSxmdW5jdGlvbih0KXtyZXR1cm4gdC5faWR9KTtlLmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLGZ1bmN0aW9uKHQpe3JldHVybiB0Ll9pZH0pLmNsYXNzZWQoVC5jb2xvcmJhciwhMCksZS5lYWNoKGZ1bmN0aW9uKGUpe3ZhciByPW4uc2VsZWN0KHRoaXMpO2MuZW5zdXJlU2luZ2xlKHIsInJlY3QiLFQuY2JiZyksYy5lbnN1cmVTaW5nbGUociwiZyIsVC5jYmZpbGxzKSxjLmVuc3VyZVNpbmdsZShyLCJnIixULmNibGluZXMpLGMuZW5zdXJlU2luZ2xlKHIsImciLFQuY2JheGlzLGZ1bmN0aW9uKHQpe3QuY2xhc3NlZChULmNyaXNwLCEwKX0pLGMuZW5zdXJlU2luZ2xlKHIsImciLFQuY2J0aXRsZXVuc2hpZnQsZnVuY3Rpb24odCl7dC5hcHBlbmQoImciKS5jbGFzc2VkKFQuY2J0aXRsZSwhMCl9KSxjLmVuc3VyZVNpbmdsZShyLCJyZWN0IixULmNib3V0bGluZSk7dmFyIHY9ZnVuY3Rpb24odCxlLHIpe3ZhciBvPXIuX2Z1bGxMYXlvdXQsbD1vLl9zaXplLGg9ZS5fZmlsbGNvbG9yLHY9ZS5fbGluZSxiPWUudGl0bGUsTT1iLnNpZGUsQT1lLl96cmFuZ2V8fG4uZXh0ZW50KCgiZnVuY3Rpb24iPT10eXBlb2YgaD9oOnYuY29sb3IpLmRvbWFpbigpKSxTPSJmdW5jdGlvbiI9PXR5cGVvZiB2LmNvbG9yP3YuY29sb3I6ZnVuY3Rpb24oKXtyZXR1cm4gdi5jb2xvcn0sRT0iZnVuY3Rpb24iPT10eXBlb2YgaD9oOmZ1bmN0aW9uKCl7cmV0dXJuIGh9LEw9ZS5fbGV2ZWxzLEM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGEsaT1lLl9sZXZlbHMsbz1bXSxzPVtdLGw9aS5lbmQraS5zaXplLzEwMCxjPWkuc2l6ZSx1PTEuMDAxKnJbMF0tLjAwMSpyWzFdLGg9MS4wMDEqclsxXS0uMDAxKnJbMF07Zm9yKGE9MDthPDFlNSYmKG49aS5zdGFydCthKmMsIShjPjA/bj49bDpuPD1sKSk7YSsrKW4+dSYmbjxoJiZvLnB1c2gobik7aWYoZS5fZmlsbGdyYWRpZW50KXM9WzBdO2Vsc2UgaWYoImZ1bmN0aW9uIj09dHlwZW9mIGUuX2ZpbGxjb2xvcil7dmFyIGY9ZS5fZmlsbGxldmVscztpZihmKWZvcihsPWYuZW5kK2Yuc2l6ZS8xMDAsYz1mLnNpemUsYT0wO2E8MWU1JiYobj1mLnN0YXJ0K2EqYywhKGM+MD9uPj1sOm48PWwpKTthKyspbj5yWzBdJiZuPHJbMV0mJnMucHVzaChuKTtlbHNlKHM9by5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQtaS5zaXplLzJ9KSkucHVzaChzW3MubGVuZ3RoLTFdK2kuc2l6ZSl9ZWxzZSBlLl9maWxsY29sb3ImJiJzdHJpbmciPT10eXBlb2YgZS5fZmlsbGNvbG9yJiYocz1bMF0pO3JldHVybiBpLnNpemU8MCYmKG8ucmV2ZXJzZSgpLHMucmV2ZXJzZSgpKSx7bGluZTpvLGZpbGw6c319KDAsZSxBKSxQPUMuZmlsbCxPPUMubGluZSx6PU1hdGgucm91bmQoZS50aGlja25lc3MqKCJmcmFjdGlvbiI9PT1lLnRoaWNrbmVzc21vZGU/bC53OjEpKSxJPXovbC53LEQ9TWF0aC5yb3VuZChlLmxlbiooImZyYWN0aW9uIj09PWUubGVubW9kZT9sLmg6MSkpLFI9RC9sLmgsRj1lLnhwYWQvbC53LEI9KGUuYm9yZGVyd2lkdGgrZS5vdXRsaW5ld2lkdGgpLzIsTj1lLnlwYWQvbC5oLGo9TWF0aC5yb3VuZChlLngqbC53K2UueHBhZCksVj1lLngtSSooe21pZGRsZTouNSxyaWdodDoxfVtlLnhhbmNob3JdfHwwKSxVPWUueStSKigoe3RvcDotLjUsYm90dG9tOi41fVtlLnlhbmNob3JdfHwwKS0uNSkscT1NYXRoLnJvdW5kKGwuaCooMS1VKSksSD1xLUQ7ZS5fbGVuRnJhYz1SLGUuX3RoaWNrRnJhYz1JLGUuX3hMZWZ0RnJhYz1WLGUuX3lCb3R0b21GcmFjPVU7dmFyIEc9ZS5fYXhpcz1mdW5jdGlvbih0LGUscil7dmFyIG49dC5fZnVsbExheW91dCxhPXt0eXBlOiJsaW5lYXIiLHJhbmdlOnIsdGlja21vZGU6ZS50aWNrbW9kZSxudGlja3M6ZS5udGlja3MsdGljazA6ZS50aWNrMCxkdGljazplLmR0aWNrLHRpY2t2YWxzOmUudGlja3ZhbHMsdGlja3RleHQ6ZS50aWNrdGV4dCx0aWNrczplLnRpY2tzLHRpY2tsZW46ZS50aWNrbGVuLHRpY2t3aWR0aDplLnRpY2t3aWR0aCx0aWNrY29sb3I6ZS50aWNrY29sb3Isc2hvd3RpY2tsYWJlbHM6ZS5zaG93dGlja2xhYmVscyx0aWNrZm9udDplLnRpY2tmb250LHRpY2thbmdsZTplLnRpY2thbmdsZSx0aWNrZm9ybWF0OmUudGlja2Zvcm1hdCxleHBvbmVudGZvcm1hdDplLmV4cG9uZW50Zm9ybWF0LHNlcGFyYXRldGhvdXNhbmRzOmUuc2VwYXJhdGV0aG91c2FuZHMsc2hvd2V4cG9uZW50OmUuc2hvd2V4cG9uZW50LHNob3d0aWNrcHJlZml4OmUuc2hvd3RpY2twcmVmaXgsdGlja3ByZWZpeDplLnRpY2twcmVmaXgsc2hvd3RpY2tzdWZmaXg6ZS5zaG93dGlja3N1ZmZpeCx0aWNrc3VmZml4OmUudGlja3N1ZmZpeCx0aXRsZTplLnRpdGxlLHNob3dsaW5lOiEwLGFuY2hvcjoiZnJlZSIsc2lkZToicmlnaHQiLHBvc2l0aW9uOjF9LGk9e3R5cGU6ImxpbmVhciIsX2lkOiJ5IitlLl9pZH0sbz17bGV0dGVyOiJ5Iixmb250Om4uZm9udCxub0hvdmVyOiEwLG5vVGlja3NvbjohMCxjYWxlbmRhcjpuLmNhbGVuZGFyfTtmdW5jdGlvbiBzKHQsZSl7cmV0dXJuIGMuY29lcmNlKGEsaSx4LHQsZSl9cmV0dXJuIG0oYSxpLHMsbyxuKSx5KGEsaSxzLG8pLGl9KHIsZSxBKTtpZihHLnBvc2l0aW9uPWUueCtGK0ksLTEhPT1bInRvcCIsImJvdHRvbSJdLmluZGV4T2YoTSkmJihHLnRpdGxlLnNpZGU9TSxHLnRpdGxleD1lLngrRixHLnRpdGxleT1VKygidG9wIj09PWIuc2lkZT9SLU46TikpLHYuY29sb3ImJiJhdXRvIj09PWUudGlja21vZGUpe0cudGlja21vZGU9ImxpbmVhciIsRy50aWNrMD1MLnN0YXJ0O3ZhciBZPUwuc2l6ZSxXPWMuY29uc3RyYWluKChxLUgpLzUwLDQsMTUpKzEsWD0oQVsxXS1BWzBdKS8oKGUubnRpY2tzfHxXKSpZKTtpZihYPjEpe3ZhciBaPU1hdGgucG93KDEwLE1hdGguZmxvb3IoTWF0aC5sb2coWCkvTWF0aC5MTjEwKSk7WSo9WipjLnJvdW5kVXAoWC9aLFsyLDUsMTBdKSwoTWF0aC5hYnMoTC5zdGFydCkvTC5zaXplKzFlLTYpJTE8MmUtNiYmKEcudGljazA9MCl9Ry5kdGljaz1ZfUcuZG9tYWluPVtVK04sVStSLU5dLEcuc2V0U2NhbGUoKSx0LmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK01hdGgucm91bmQobC5sKSsiLCIrTWF0aC5yb3VuZChsLnQpKyIpIik7dmFyIEosSz10LnNlbGVjdCgiLiIrVC5jYnRpdGxldW5zaGlmdCkuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKC0iK01hdGgucm91bmQobC5sKSsiLC0iK01hdGgucm91bmQobC50KSsiKSIpLFE9dC5zZWxlY3QoIi4iK1QuY2JheGlzKSwkPTA7ZnVuY3Rpb24gdHQobixhKXt2YXIgaT17cHJvcENvbnRhaW5lcjpHLHByb3BOYW1lOmUuX3Byb3BQcmVmaXgrInRpdGxlIix0cmFjZUluZGV4OmUuX3RyYWNlSW5kZXgsX21ldGE6ZS5fbWV0YSxwbGFjZWhvbGRlcjpvLl9kZmx0VGl0bGUuY29sb3JiYXIsY29udGFpbmVyR3JvdXA6dC5zZWxlY3QoIi4iK1QuY2J0aXRsZSl9LHM9ImgiPT09bi5jaGFyQXQoMCk/bi5zdWJzdHIoMSk6ImgiK247dC5zZWxlY3RBbGwoIi4iK3MrIiwuIitzKyItbWF0aC1ncm91cCIpLnJlbW92ZSgpLGQuZHJhdyhyLG4sdShpLGF8fHt9KSl9cmV0dXJuIGMuc3luY09yQXN5bmMoW2kucHJldmlvdXNQcm9taXNlcyxmdW5jdGlvbigpe2lmKC0xIT09WyJ0b3AiLCJib3R0b20iXS5pbmRleE9mKE0pKXt2YXIgdCxyPWwubCsoZS54K0YpKmwudyxuPUcudGl0bGUuZm9udC5zaXplO3Q9InRvcCI9PT1NPygxLShVK1ItTikpKmwuaCtsLnQrMysuNzUqbjooMS0oVStOKSkqbC5oK2wudC0zLS4yNSpuLHR0KEcuX2lkKyJ0aXRsZSIse2F0dHJpYnV0ZXM6e3g6cix5OnQsInRleHQtYW5jaG9yIjoic3RhcnQifX0pfX0sZnVuY3Rpb24oKXtpZigtMSE9PVsidG9wIiwiYm90dG9tIl0uaW5kZXhPZihNKSl7dmFyIGk9dC5zZWxlY3QoIi4iK1QuY2J0aXRsZSksbz1pLnNlbGVjdCgidGV4dCIpLHU9Wy1lLm91dGxpbmV3aWR0aC8yLGUub3V0bGluZXdpZHRoLzJdLGg9aS5zZWxlY3QoIi5oIitHLl9pZCsidGl0bGUtbWF0aC1ncm91cCIpLm5vZGUoKSxwPTE1LjY7aWYoby5ub2RlKCkmJihwPXBhcnNlSW50KG8ubm9kZSgpLnN0eWxlLmZvbnRTaXplLDEwKSpfKSxoPygkPWYuYkJveChoKS5oZWlnaHQpPnAmJih1WzFdLT0oJC1wKS8yKTpvLm5vZGUoKSYmIW8uY2xhc3NlZChULmpzUGxhY2Vob2xkZXIpJiYoJD1mLmJCb3goby5ub2RlKCkpLmhlaWdodCksJCl7aWYoJCs9NSwidG9wIj09PU0pRy5kb21haW5bMV0tPSQvbC5oLHVbMV0qPS0xO2Vsc2V7Ry5kb21haW5bMF0rPSQvbC5oO3ZhciBkPWcubGluZUNvdW50KG8pO3VbMV0rPSgxLWQpKnB9aS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIit1KyIpIiksRy5zZXRTY2FsZSgpfX10LnNlbGVjdEFsbCgiLiIrVC5jYmZpbGxzKyIsLiIrVC5jYmxpbmVzKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoMCwiK01hdGgucm91bmQobC5oKigxLUcuZG9tYWluWzFdKSkrIikiKSxRLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgwLCIrTWF0aC5yb3VuZCgtbC50KSsiKSIpO3ZhciBtPXQuc2VsZWN0KCIuIitULmNiZmlsbHMpLnNlbGVjdEFsbCgicmVjdC4iK1QuY2JmaWxsKS5kYXRhKFApO20uZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5jbGFzc2VkKFQuY2JmaWxsLCEwKS5zdHlsZSgic3Ryb2tlIiwibm9uZSIpLG0uZXhpdCgpLnJlbW92ZSgpO3ZhciB5PUEubWFwKEcuYzJwKS5tYXAoTWF0aC5yb3VuZCkuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiB0LWV9KTttLmVhY2goZnVuY3Rpb24odCxpKXt2YXIgbz1bMD09PWk/QVswXTooUFtpXStQW2ktMV0pLzIsaT09PVAubGVuZ3RoLTE/QVsxXTooUFtpXStQW2krMV0pLzJdLm1hcChHLmMycCkubWFwKE1hdGgucm91bmQpO29bMV09Yy5jb25zdHJhaW4ob1sxXSsob1sxXT5vWzBdKT8xOi0xLHlbMF0seVsxXSk7dmFyIHM9bi5zZWxlY3QodGhpcykuYXR0cih7eDpqLHdpZHRoOk1hdGgubWF4KHosMikseTpuLm1pbihvKSxoZWlnaHQ6TWF0aC5tYXgobi5tYXgobyktbi5taW4obyksMil9KTtpZihlLl9maWxsZ3JhZGllbnQpZi5ncmFkaWVudChzLHIsZS5faWQsInZlcnRpY2FsIixlLl9maWxsZ3JhZGllbnQsImZpbGwiKTtlbHNle3ZhciBsPUUodCkucmVwbGFjZSgiZS0iLCIiKTtzLmF0dHIoImZpbGwiLGEobCkudG9IZXhTdHJpbmcoKSl9fSk7dmFyIHg9dC5zZWxlY3QoIi4iK1QuY2JsaW5lcykuc2VsZWN0QWxsKCJwYXRoLiIrVC5jYmxpbmUpLmRhdGEodi5jb2xvciYmdi53aWR0aD9POltdKTt4LmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZChULmNibGluZSwhMCkseC5leGl0KCkucmVtb3ZlKCkseC5lYWNoKGZ1bmN0aW9uKHQpe24uc2VsZWN0KHRoaXMpLmF0dHIoImQiLCJNIitqKyIsIisoTWF0aC5yb3VuZChHLmMycCh0KSkrdi53aWR0aC8yJTEpKyJoIit6KS5jYWxsKGYubGluZUdyb3VwU3R5bGUsdi53aWR0aCxTKHQpLHYuZGFzaCl9KSxRLnNlbGVjdEFsbCgiZy4iK0cuX2lkKyJ0aWNrLHBhdGgiKS5yZW1vdmUoKTt2YXIgYj1qK3orKGUub3V0bGluZXdpZHRofHwwKS8yLSgib3V0c2lkZSI9PT1lLnRpY2tzPzE6MCksdz1zLmNhbGNUaWNrcyhHKSxrPXMubWFrZVRyYW5zRm4oRyksTD1zLmdldFRpY2tTaWducyhHKVsyXTtyZXR1cm4gcy5kcmF3VGlja3MocixHLHt2YWxzOiJpbnNpZGUiPT09Ry50aWNrcz9zLmNsaXBFbmRzKEcsdyk6dyxsYXllcjpRLHBhdGg6cy5tYWtlVGlja1BhdGgoRyxiLEwpLHRyYW5zRm46a30pLHMuZHJhd0xhYmVscyhyLEcse3ZhbHM6dyxsYXllcjpRLHRyYW5zRm46ayxsYWJlbEZuczpzLm1ha2VMYWJlbEZucyhHLGIpfSl9LGZ1bmN0aW9uKCl7aWYoLTE9PT1bInRvcCIsImJvdHRvbSJdLmluZGV4T2YoTSkpe3ZhciB0PUcudGl0bGUuZm9udC5zaXplLGU9Ry5fb2Zmc2V0K0cuX2xlbmd0aC8yLGE9bC5sKyhHLnBvc2l0aW9ufHwwKSpsLncrKCJyaWdodCI9PT1HLnNpZGU/MTArdCooRy5zaG93dGlja2xhYmVscz8xOi41KTotMTAtdCooRy5zaG93dGlja2xhYmVscz8uNTowKSk7dHQoImgiK0cuX2lkKyJ0aXRsZSIse2F2b2lkOntzZWxlY3Rpb246bi5zZWxlY3Qocikuc2VsZWN0QWxsKCJnLiIrRy5faWQrInRpY2siKSxzaWRlOk0sb2Zmc2V0TGVmdDpsLmwsb2Zmc2V0VG9wOjAsbWF4U2hpZnQ6by53aWR0aH0sYXR0cmlidXRlczp7eDphLHk6ZSwidGV4dC1hbmNob3IiOiJtaWRkbGUifSx0cmFuc2Zvcm06e3JvdGF0ZToiLTkwIixvZmZzZXQ6MH19KX19LGkucHJldmlvdXNQcm9taXNlcyxmdW5jdGlvbigpe3ZhciBuPXorZS5vdXRsaW5ld2lkdGgvMitmLmJCb3goUS5ub2RlKCkpLndpZHRoO2lmKChKPUsuc2VsZWN0KCJ0ZXh0IikpLm5vZGUoKSYmIUouY2xhc3NlZChULmpzUGxhY2Vob2xkZXIpKXt2YXIgYSxvPUsuc2VsZWN0KCIuaCIrRy5faWQrInRpdGxlLW1hdGgtZ3JvdXAiKS5ub2RlKCk7YT1vJiYtMSE9PVsidG9wIiwiYm90dG9tIl0uaW5kZXhPZihNKT9mLmJCb3gobykud2lkdGg6Zi5iQm94KEsubm9kZSgpKS5yaWdodC1qLWwubCxuPU1hdGgubWF4KG4sYSl9dmFyIHM9MiplLnhwYWQrbitlLmJvcmRlcndpZHRoK2Uub3V0bGluZXdpZHRoLzIsYz1xLUg7dC5zZWxlY3QoIi4iK1QuY2JiZykuYXR0cih7eDpqLWUueHBhZC0oZS5ib3JkZXJ3aWR0aCtlLm91dGxpbmV3aWR0aCkvMix5OkgtQix3aWR0aDpNYXRoLm1heChzLDIpLGhlaWdodDpNYXRoLm1heChjKzIqQiwyKX0pLmNhbGwocC5maWxsLGUuYmdjb2xvcikuY2FsbChwLnN0cm9rZSxlLmJvcmRlcmNvbG9yKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixlLmJvcmRlcndpZHRoKSx0LnNlbGVjdEFsbCgiLiIrVC5jYm91dGxpbmUpLmF0dHIoe3g6aix5OkgrZS55cGFkKygidG9wIj09PU0/JDowKSx3aWR0aDpNYXRoLm1heCh6LDIpLGhlaWdodDpNYXRoLm1heChjLTIqZS55cGFkLSQsMil9KS5jYWxsKHAuc3Ryb2tlLGUub3V0bGluZWNvbG9yKS5zdHlsZSh7ZmlsbDoibm9uZSIsInN0cm9rZS13aWR0aCI6ZS5vdXRsaW5ld2lkdGh9KTt2YXIgdT0oe2NlbnRlcjouNSxyaWdodDoxfVtlLnhhbmNob3JdfHwwKSpzO3QuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrKGwubC11KSsiLCIrbC50KyIpIik7dmFyIGg9e30sZD13W2UueWFuY2hvcl0sZz1rW2UueWFuY2hvcl07InBpeGVscyI9PT1lLmxlbm1vZGU/KGgueT1lLnksaC50PWMqZCxoLmI9YypnKTooaC50PWguYj0wLGgueXQ9ZS55K2UubGVuKmQsaC55Yj1lLnktZS5sZW4qZyk7dmFyIHY9d1tlLnhhbmNob3JdLG09a1tlLnhhbmNob3JdO2lmKCJwaXhlbHMiPT09ZS50aGlja25lc3Ntb2RlKWgueD1lLngsaC5sPXMqdixoLnI9cyptO2Vsc2V7dmFyIHk9cy16O2gubD15KnYsaC5yPXkqbSxoLnhsPWUueC1lLnRoaWNrbmVzcyp2LGgueHI9ZS54K2UudGhpY2tuZXNzKm19aS5hdXRvTWFyZ2luKHIsZS5faWQsaCl9XSxyKX0ocixlLHQpO3YmJnYudGhlbiYmKHQuX3Byb21pc2VzfHxbXSkucHVzaCh2KSx0Ll9jb250ZXh0LmVkaXRzLmNvbG9yYmFyUG9zaXRpb24mJmZ1bmN0aW9uKHQsZSxyKXt2YXIgbixhLGkscz1yLl9mdWxsTGF5b3V0Ll9zaXplO2wuaW5pdCh7ZWxlbWVudDp0Lm5vZGUoKSxnZDpyLHByZXBGbjpmdW5jdGlvbigpe249dC5hdHRyKCJ0cmFuc2Zvcm0iKSxoKHQpfSxtb3ZlRm46ZnVuY3Rpb24ocixvKXt0LmF0dHIoInRyYW5zZm9ybSIsbisiIHRyYW5zbGF0ZSgiK3IrIiwiK28rIikiKSxhPWwuYWxpZ24oZS5feExlZnRGcmFjK3Ivcy53LGUuX3RoaWNrRnJhYywwLDEsZS54YW5jaG9yKSxpPWwuYWxpZ24oZS5feUJvdHRvbUZyYWMtby9zLmgsZS5fbGVuRnJhYywwLDEsZS55YW5jaG9yKTt2YXIgYz1sLmdldEN1cnNvcihhLGksZS54YW5jaG9yLGUueWFuY2hvcik7aCh0LGMpfSxkb25lRm46ZnVuY3Rpb24oKXtpZihoKHQpLHZvaWQgMCE9PWEmJnZvaWQgMCE9PWkpe3ZhciBuPXt9O25bZS5fcHJvcFByZWZpeCsieCJdPWEsbltlLl9wcm9wUHJlZml4KyJ5Il09aSx2b2lkIDAhPT1lLl90cmFjZUluZGV4P28uY2FsbCgiX2d1aVJlc3R5bGUiLHIsbixlLl90cmFjZUluZGV4KTpvLmNhbGwoIl9ndWlSZWxheW91dCIscixuKX19fSl9KHIsZSx0KX0pLGUuZXhpdCgpLmVhY2goZnVuY3Rpb24oZSl7aS5hdXRvTWFyZ2luKHQsZS5faWQpfSkucmVtb3ZlKCksZS5vcmRlcigpfX19LHsiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCI6Njg2LCIuLi8uLi9saWIiOjcxNywiLi4vLi4vbGliL2V4dGVuZCI6NzA4LCIuLi8uLi9saWIvc2V0Y3Vyc29yIjo3MzcsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6NzQxLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NzY1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19kZWZhdWx0cyI6NzY3LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vbGF5b3V0X2F0dHJpYnV0ZXMiOjc3NywiLi4vLi4vcGxvdHMvY2FydGVzaWFuL3Bvc2l0aW9uX2RlZmF1bHRzIjo3ODAsIi4uLy4uL3Bsb3RzL3Bsb3RzIjo4MjYsIi4uLy4uL3JlZ2lzdHJ5Ijo4NDYsIi4uL2NvbG9yIjo1OTIsIi4uL2NvbG9yc2NhbGUvaGVscGVycyI6NjAzLCIuLi9kcmFnZWxlbWVudCI6NjEwLCIuLi9kcmF3aW5nIjo2MTMsIi4uL3RpdGxlcyI6Njc5LCIuL2NvbnN0YW50cyI6NTk0LGQzOjE2NSx0aW55Y29sb3IyOjUzNn1dLDU5NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG4uaXNQbGFpbk9iamVjdCh0LmNvbG9yYmFyKX19LHsiLi4vLi4vbGliIjo3MTd9XSw1OTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJjb21wb25lbnQiLG5hbWU6ImNvbG9yYmFyIixhdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxkcmF3OnQoIi4vZHJhdyIpLmRyYXcsaGFzQ29sb3JiYXI6dCgiLi9oYXNfY29sb3JiYXIiKX19LHsiLi9hdHRyaWJ1dGVzIjo1OTMsIi4vZGVmYXVsdHMiOjU5NSwiLi9kcmF3Ijo1OTYsIi4vaGFzX2NvbG9yYmFyIjo1OTd9XSw1OTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vY29sb3JiYXIvYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vbGliL3JlZ2V4IikuY291bnRlcixpPXQoIi4vc2NhbGVzLmpzIikuc2NhbGVzO09iamVjdC5rZXlzKGkpO2Z1bmN0aW9uIG8odCl7cmV0dXJuImAiK3QrImAifWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3Q9dHx8IiI7dmFyIHIscz0oZT1lfHx7fSkuY0xldHRlcnx8ImMiLGw9KCJvbmx5SWZOdW1lcmljYWwiaW4gZT9lLm9ubHlJZk51bWVyaWNhbDpCb29sZWFuKHQpLCJub1NjYWxlImluIGU/ZS5ub1NjYWxlOiJtYXJrZXIubGluZSI9PT10KSxjPSJzaG93U2NhbGVEZmx0ImluIGU/ZS5zaG93U2NhbGVEZmx0OiJ6Ij09PXMsdT0ic3RyaW5nIj09dHlwZW9mIGUuY29sb3JzY2FsZURmbHQ/aVtlLmNvbG9yc2NhbGVEZmx0XTpudWxsLGg9ZS5lZGl0VHlwZU92ZXJyaWRlfHwiIixmPXQ/dCsiLiI6IiI7ImNvbG9yQXR0ciJpbiBlPyhyPWUuY29sb3JBdHRyLGUuY29sb3JBdHRyKTpvKGYrKHI9e3o6InoiLGM6ImNvbG9yIn1bc10pKTt2YXIgcD1zKyJhdXRvIixkPXMrIm1pbiIsZz1zKyJtYXgiLHY9cysibWlkIixtPShvKGYrcCksbyhmK2QpLG8oZitnKSx7fSk7bVtkXT1tW2ddPXZvaWQgMDt2YXIgeT17fTt5W3BdPSExO3ZhciB4PXt9O3JldHVybiJjb2xvciI9PT1yJiYoeC5jb2xvcj17dmFsVHlwZToiY29sb3IiLGFycmF5T2s6ITAsZWRpdFR5cGU6aHx8InN0eWxlIn0sZS5hbmltJiYoeC5jb2xvci5hbmltPSEwKSkseFtwXT17dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToiY2FsYyIsaW1wbGllZEVkaXRzOm19LHhbZF09e3ZhbFR5cGU6Im51bWJlciIsZGZsdDpudWxsLGVkaXRUeXBlOmh8fCJwbG90IixpbXBsaWVkRWRpdHM6eX0seFtnXT17dmFsVHlwZToibnVtYmVyIixkZmx0Om51bGwsZWRpdFR5cGU6aHx8InBsb3QiLGltcGxpZWRFZGl0czp5fSx4W3ZdPXt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6bnVsbCxlZGl0VHlwZToiY2FsYyIsaW1wbGllZEVkaXRzOm19LHguY29sb3JzY2FsZT17dmFsVHlwZToiY29sb3JzY2FsZSIsZWRpdFR5cGU6ImNhbGMiLGRmbHQ6dSxpbXBsaWVkRWRpdHM6e2F1dG9jb2xvcnNjYWxlOiExfX0seC5hdXRvY29sb3JzY2FsZT17dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMSE9PWUuYXV0b0NvbG9yRGZsdCxlZGl0VHlwZToiY2FsYyIsaW1wbGllZEVkaXRzOntjb2xvcnNjYWxlOnZvaWQgMH19LHgucmV2ZXJzZXNjYWxlPXt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExLGVkaXRUeXBlOiJwbG90In0sbHx8KHguc2hvd3NjYWxlPXt2YWxUeXBlOiJib29sZWFuIixkZmx0OmMsZWRpdFR5cGU6ImNhbGMifSx4LmNvbG9yYmFyPW4pLGUubm9Db2xvckF4aXN8fCh4LmNvbG9yYXhpcz17dmFsVHlwZToic3VicGxvdGlkIixyZWdleDphKCJjb2xvcmF4aXMiKSxkZmx0Om51bGwsZWRpdFR5cGU6ImNhbGMifSkseH19LHsiLi4vLi4vbGliL3JlZ2V4Ijo3MzMsIi4uL2NvbG9yYmFyL2F0dHJpYnV0ZXMiOjU5MywiLi9zY2FsZXMuanMiOjYwN31dLDYwMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGE9dCgiLi4vLi4vbGliIiksaT10KCIuL2hlbHBlcnMiKS5leHRyYWN0T3B0cztlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBvLHM9dC5fZnVsbExheW91dCxsPXIudmFscyxjPXIuY29udGFpbmVyU3RyLHU9Yz9hLm5lc3RlZFByb3BlcnR5KGUsYykuZ2V0KCk6ZSxoPWkodSksZj0hMSE9PWguYXV0byxwPWgubWluLGQ9aC5tYXgsZz1oLm1pZCx2PWZ1bmN0aW9uKCl7cmV0dXJuIGEuYWdnTnVtcyhNYXRoLm1pbixudWxsLGwpfSxtPWZ1bmN0aW9uKCl7cmV0dXJuIGEuYWdnTnVtcyhNYXRoLm1heCxudWxsLGwpfTsodm9pZCAwPT09cD9wPXYoKTpmJiYocD11Ll9jb2xvckF4JiZuKHApP01hdGgubWluKHAsdigpKTp2KCkpLHZvaWQgMD09PWQ/ZD1tKCk6ZiYmKGQ9dS5fY29sb3JBeCYmbihkKT9NYXRoLm1heChkLG0oKSk6bSgpKSxmJiZ2b2lkIDAhPT1nJiYoZC1nPmctcD9wPWctKGQtZyk6ZC1nPGctcCYmKGQ9ZysoZy1wKSkpLHA9PT1kJiYocC09LjUsZCs9LjUpLGguX3N5bmMoIm1pbiIscCksaC5fc3luYygibWF4IixkKSxoLmF1dG9jb2xvcnNjYWxlKSYmKG89cCpkPDA/cy5jb2xvcnNjYWxlLmRpdmVyZ2luZzpwPj0wP3MuY29sb3JzY2FsZS5zZXF1ZW50aWFsOnMuY29sb3JzY2FsZS5zZXF1ZW50aWFsbWludXMsaC5fc3luYygiY29sb3JzY2FsZSIsbykpfX0seyIuLi8uLi9saWIiOjcxNywiLi9oZWxwZXJzIjo2MDMsImZhc3QtaXNudW1lcmljIjoyMjh9XSw2MDE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuL2hlbHBlcnMiKS5oYXNDb2xvcnNjYWxlLGk9dCgiLi9oZWxwZXJzIikuZXh0cmFjdE9wdHM7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gcih0LGUpe3ZhciByPXRbIl8iK2VdO3ZvaWQgMCE9PXImJih0W2VdPXIpfWZ1bmN0aW9uIG8odCxhKXt2YXIgbz1hLmNvbnRhaW5lcj9uLm5lc3RlZFByb3BlcnR5KHQsYS5jb250YWluZXIpLmdldCgpOnQ7aWYobylpZihvLmNvbG9yYXhpcylvLl9jb2xvckF4PWVbby5jb2xvcmF4aXNdO2Vsc2V7dmFyIHM9aShvKSxsPXMuYXV0bzsobHx8dm9pZCAwPT09cy5taW4pJiZyKG8sYS5taW4pLChsfHx2b2lkIDA9PT1zLm1heCkmJnIobyxhLm1heCkscy5hdXRvY29sb3JzY2FsZSYmcihvLCJjb2xvcnNjYWxlIil9fWZvcih2YXIgcz0wO3M8dC5sZW5ndGg7cysrKXt2YXIgbD10W3NdLGM9bC5fbW9kdWxlLmNvbG9yYmFyO2lmKGMpaWYoQXJyYXkuaXNBcnJheShjKSlmb3IodmFyIHU9MDt1PGMubGVuZ3RoO3UrKylvKGwsY1t1XSk7ZWxzZSBvKGwsYyk7YShsLCJtYXJrZXIubGluZSIpJiZvKGwse2NvbnRhaW5lcjoibWFya2VyLmxpbmUiLG1pbjoiY21pbiIsbWF4OiJjbWF4In0pfWZvcih2YXIgaCBpbiBlLl9jb2xvckF4ZXMpbyhlW2hdLHttaW46ImNtaW4iLG1heDoiY21heCJ9KX19LHsiLi4vLi4vbGliIjo3MTcsIi4vaGVscGVycyI6NjAzfV0sNjAyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksYT10KCIuLi8uLi9saWIiKSxpPXQoIi4uL2NvbG9yYmFyL2hhc19jb2xvcmJhciIpLG89dCgiLi4vY29sb3JiYXIvZGVmYXVsdHMiKSxzPXQoIi4vc2NhbGVzIikuaXNWYWxpZCxsPXQoIi4uLy4uL3JlZ2lzdHJ5IikudHJhY2VJcztmdW5jdGlvbiBjKHQsZSl7dmFyIHI9ZS5zbGljZSgwLGUubGVuZ3RoLTEpO3JldHVybiBlP2EubmVzdGVkUHJvcGVydHkodCxyKS5nZXQoKXx8e306dH1lLmV4cG9ydHM9ZnVuY3Rpb24gdChlLHIsdSxoLGYpe3ZhciBwPWYucHJlZml4LGQ9Zi5jTGV0dGVyLGc9Il9tb2R1bGUiaW4gcix2PWMoZSxwKSxtPWMocixwKSx5PWMoci5fdGVtcGxhdGV8fHt9LHApfHx7fSx4PWZ1bmN0aW9uKCl7cmV0dXJuIGRlbGV0ZSBlLmNvbG9yYXhpcyxkZWxldGUgci5jb2xvcmF4aXMsdChlLHIsdSxoLGYpfTtpZihnKXt2YXIgYj11Ll9jb2xvckF4ZXN8fHt9LF89aChwKyJjb2xvcmF4aXMiKTtpZihfKXt2YXIgdz1sKHIsImNvbnRvdXIiKSYmYS5uZXN0ZWRQcm9wZXJ0eShyLCJjb250b3Vycy5jb2xvcmluZyIpLmdldCgpfHwiaGVhdG1hcCIsaz1iW19dO3JldHVybiB2b2lkKGs/KGtbMl0ucHVzaCh4KSxrWzBdIT09dyYmKGtbMF09ITEsYS53YXJuKFsiSWdub3JpbmcgY29sb3JheGlzOiIsXywic2V0dGluZyIsImFzIGl0IGlzIGxpbmtlZCB0byBpbmNvbXBhdGlibGUgY29sb3JzY2FsZXMuIl0uam9pbigiICIpKSkpOmJbX109W3cscixbeF1dKX19dmFyIFQ9dltkKyJtaW4iXSxNPXZbZCsibWF4Il0sQT1uKFQpJiZuKE0pJiZUPE07aChwK2QrImF1dG8iLCFBKT9oKHArZCsibWlkIik6KGgocCtkKyJtaW4iKSxoKHArZCsibWF4IikpO3ZhciBTLEUsTD12LmNvbG9yc2NhbGUsQz15LmNvbG9yc2NhbGU7KHZvaWQgMCE9PUwmJihTPSFzKEwpKSx2b2lkIDAhPT1DJiYoUz0hcyhDKSksaChwKyJhdXRvY29sb3JzY2FsZSIsUyksaChwKyJjb2xvcnNjYWxlIiksaChwKyJyZXZlcnNlc2NhbGUiKSwibWFya2VyLmxpbmUuIiE9PXApJiYocCYmZyYmKEU9aSh2KSksaChwKyJzaG93c2NhbGUiLEUpJiYocCYmeSYmKG0uX3RlbXBsYXRlPXkpLG8odixtLHUpKSl9fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi8uLi9yZWdpc3RyeSI6ODQ2LCIuLi9jb2xvcmJhci9kZWZhdWx0cyI6NTk1LCIuLi9jb2xvcmJhci9oYXNfY29sb3JiYXIiOjU5NywiLi9zY2FsZXMiOjYwNywiZmFzdC1pc251bWVyaWMiOjIyOH1dLDYwMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGE9dCgidGlueWNvbG9yMiIpLGk9dCgiZmFzdC1pc251bWVyaWMiKSxvPXQoIi4uLy4uL2xpYiIpLHM9dCgiLi4vY29sb3IiKSxsPXQoIi4vc2NhbGVzIikuaXNWYWxpZDt2YXIgYz1bInNob3dzY2FsZSIsImF1dG9jb2xvcnNjYWxlIiwiY29sb3JzY2FsZSIsInJldmVyc2VzY2FsZSIsImNvbG9yYmFyIl0sdT1bIm1pbiIsIm1heCIsIm1pZCIsImF1dG8iXTtmdW5jdGlvbiBoKHQpe3ZhciBlLHIsbixhPXQuX2NvbG9yQXgsaT1hfHx0LG89e307Zm9yKHI9MDtyPGMubGVuZ3RoO3IrKylvW249Y1tyXV09aVtuXTtpZihhKWZvcihlPSJjIixyPTA7cjx1Lmxlbmd0aDtyKyspb1tuPXVbcl1dPWlbImMiK25dO2Vsc2V7dmFyIHM7Zm9yKHI9MDtyPHUubGVuZ3RoO3IrKykocz0iYyIrKG49dVtyXSkpaW4gaT9vW25dPWlbc106KHM9InoiK24paW4gaSYmKG9bbl09aVtzXSk7ZT1zLmNoYXJBdCgwKX1yZXR1cm4gby5fc3luYz1mdW5jdGlvbih0LHIpe3ZhciBuPS0xIT09dS5pbmRleE9mKHQpP2UrdDp0O2lbbl09aVsiXyIrbl09cn0sb31mdW5jdGlvbiBmKHQpe2Zvcih2YXIgZT1oKHQpLHI9ZS5taW4sbj1lLm1heCxhPWUucmV2ZXJzZXNjYWxlP3AoZS5jb2xvcnNjYWxlKTplLmNvbG9yc2NhbGUsaT1hLmxlbmd0aCxvPW5ldyBBcnJheShpKSxzPW5ldyBBcnJheShpKSxsPTA7bDxpO2wrKyl7dmFyIGM9YVtsXTtvW2xdPXIrY1swXSoobi1yKSxzW2xdPWNbMV19cmV0dXJue2RvbWFpbjpvLHJhbmdlOnN9fWZ1bmN0aW9uIHAodCl7Zm9yKHZhciBlPXQubGVuZ3RoLHI9bmV3IEFycmF5KGUpLG49ZS0xLGE9MDtuPj0wO24tLSxhKyspe3ZhciBpPXRbbl07clthXT1bMS1pWzBdLGlbMV1dfXJldHVybiByfWZ1bmN0aW9uIGQodCxlKXtlPWV8fHt9O2Zvcih2YXIgcj10LmRvbWFpbixvPXQucmFuZ2UsbD1vLmxlbmd0aCxjPW5ldyBBcnJheShsKSx1PTA7dTxsO3UrKyl7dmFyIGg9YShvW3VdKS50b1JnYigpO2NbdV09W2gucixoLmcsaC5iLGguYV19dmFyIGYscD1uLnNjYWxlLmxpbmVhcigpLmRvbWFpbihyKS5yYW5nZShjKS5jbGFtcCghMCksZD1lLm5vTnVtZXJpY0NoZWNrLHY9ZS5yZXR1cm5BcnJheTtyZXR1cm4oZj1kJiZ2P3A6ZD9mdW5jdGlvbih0KXtyZXR1cm4gZyhwKHQpKX06dj9mdW5jdGlvbih0KXtyZXR1cm4gaSh0KT9wKHQpOmEodCkuaXNWYWxpZCgpP3Q6cy5kZWZhdWx0TGluZX06ZnVuY3Rpb24odCl7cmV0dXJuIGkodCk/ZyhwKHQpKTphKHQpLmlzVmFsaWQoKT90OnMuZGVmYXVsdExpbmV9KS5kb21haW49cC5kb21haW4sZi5yYW5nZT1mdW5jdGlvbigpe3JldHVybiBvfSxmfWZ1bmN0aW9uIGcodCl7dmFyIGU9e3I6dFswXSxnOnRbMV0sYjp0WzJdLGE6dFszXX07cmV0dXJuIGEoZSkudG9SZ2JTdHJpbmcoKX1lLmV4cG9ydHM9e2hhc0NvbG9yc2NhbGU6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWU/by5uZXN0ZWRQcm9wZXJ0eSh0LGUpLmdldCgpfHx7fTp0LGE9bltyfHwiY29sb3IiXSxzPSExO2lmKG8uaXNBcnJheU9yVHlwZWRBcnJheShhKSlmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKylpZihpKGFbY10pKXtzPSEwO2JyZWFrfXJldHVybiBvLmlzUGxhaW5PYmplY3QobikmJihzfHwhMD09PW4uc2hvd3NjYWxlfHxpKG4uY21pbikmJmkobi5jbWF4KXx8bChuLmNvbG9yc2NhbGUpfHxvLmlzUGxhaW5PYmplY3Qobi5jb2xvcmJhcikpfSxleHRyYWN0T3B0czpoLGV4dHJhY3RTY2FsZTpmLGZsaXBTY2FsZTpwLG1ha2VDb2xvclNjYWxlRnVuYzpkLG1ha2VDb2xvclNjYWxlRnVuY0Zyb21UcmFjZTpmdW5jdGlvbih0LGUpe3JldHVybiBkKGYodCksZSl9fX0seyIuLi8uLi9saWIiOjcxNywiLi4vY29sb3IiOjU5MiwiLi9zY2FsZXMiOjYwNyxkMzoxNjUsImZhc3QtaXNudW1lcmljIjoyMjgsdGlueWNvbG9yMjo1MzZ9XSw2MDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9zY2FsZXMiKSxhPXQoIi4vaGVscGVycyIpO2UuZXhwb3J0cz17bW9kdWxlVHlwZToiY29tcG9uZW50IixuYW1lOiJjb2xvcnNjYWxlIixhdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLGxheW91dEF0dHJpYnV0ZXM6dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLHN1cHBseUxheW91dERlZmF1bHRzOnQoIi4vbGF5b3V0X2RlZmF1bHRzIiksaGFuZGxlRGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNyb3NzVHJhY2VEZWZhdWx0czp0KCIuL2Nyb3NzX3RyYWNlX2RlZmF1bHRzIiksY2FsYzp0KCIuL2NhbGMiKSxzY2FsZXM6bi5zY2FsZXMsZGVmYXVsdFNjYWxlOm4uZGVmYXVsdFNjYWxlLGdldFNjYWxlOm4uZ2V0LGlzVmFsaWRTY2FsZTpuLmlzVmFsaWQsaGFzQ29sb3JzY2FsZTphLmhhc0NvbG9yc2NhbGUsZXh0cmFjdE9wdHM6YS5leHRyYWN0T3B0cyxleHRyYWN0U2NhbGU6YS5leHRyYWN0U2NhbGUsZmxpcFNjYWxlOmEuZmxpcFNjYWxlLG1ha2VDb2xvclNjYWxlRnVuYzphLm1ha2VDb2xvclNjYWxlRnVuYyxtYWtlQ29sb3JTY2FsZUZ1bmNGcm9tVHJhY2U6YS5tYWtlQ29sb3JTY2FsZUZ1bmNGcm9tVHJhY2V9fSx7Ii4vYXR0cmlidXRlcyI6NTk5LCIuL2NhbGMiOjYwMCwiLi9jcm9zc190cmFjZV9kZWZhdWx0cyI6NjAxLCIuL2RlZmF1bHRzIjo2MDIsIi4vaGVscGVycyI6NjAzLCIuL2xheW91dF9hdHRyaWJ1dGVzIjo2MDUsIi4vbGF5b3V0X2RlZmF1bHRzIjo2MDYsIi4vc2NhbGVzIjo2MDd9XSw2MDU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsYT10KCIuL2F0dHJpYnV0ZXMiKSxpPXQoIi4vc2NhbGVzIikuc2NhbGVzO2UuZXhwb3J0cz17ZWRpdFR5cGU6ImNhbGMiLGNvbG9yc2NhbGU6e2VkaXRUeXBlOiJjYWxjIixzZXF1ZW50aWFsOnt2YWxUeXBlOiJjb2xvcnNjYWxlIixkZmx0OmkuUmVkcyxlZGl0VHlwZToiY2FsYyJ9LHNlcXVlbnRpYWxtaW51czp7dmFsVHlwZToiY29sb3JzY2FsZSIsZGZsdDppLkJsdWVzLGVkaXRUeXBlOiJjYWxjIn0sZGl2ZXJnaW5nOnt2YWxUeXBlOiJjb2xvcnNjYWxlIixkZmx0OmkuUmRCdSxlZGl0VHlwZToiY2FsYyJ9fSxjb2xvcmF4aXM6bih7X2lzU3VicGxvdE9iajohMCxlZGl0VHlwZToiY2FsYyJ9LGEoIiIse2NvbG9yQXR0cjoiY29ycmVzcG9uZGluZyB0cmFjZSBjb2xvciBhcnJheShzKSIsbm9Db2xvckF4aXM6ITAsc2hvd1NjYWxlRGZsdDohMH0pKX19LHsiLi4vLi4vbGliL2V4dGVuZCI6NzA4LCIuL2F0dHJpYnV0ZXMiOjU5OSwiLi9zY2FsZXMiOjYwN31dLDYwNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKSxpPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxvPXQoIi4vZGVmYXVsdHMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxpLHIsYSl9cigiY29sb3JzY2FsZS5zZXF1ZW50aWFsIikscigiY29sb3JzY2FsZS5zZXF1ZW50aWFsbWludXMiKSxyKCJjb2xvcnNjYWxlLmRpdmVyZ2luZyIpO3ZhciBzLGwsYz1lLl9jb2xvckF4ZXM7ZnVuY3Rpb24gdSh0LGUpe3JldHVybiBuLmNvZXJjZShzLGwsaS5jb2xvcmF4aXMsdCxlKX1mb3IodmFyIGggaW4gYyl7dmFyIGY9Y1toXTtpZihmWzBdKXM9dFtoXXx8e30sKGw9YS5uZXdDb250YWluZXIoZSxoLCJjb2xvcmF4aXMiKSkuX25hbWU9aCxvKHMsbCxlLHUse3ByZWZpeDoiIixjTGV0dGVyOiJjIn0pO2Vsc2V7Zm9yKHZhciBwPTA7cDxmWzJdLmxlbmd0aDtwKyspZlsyXVtwXSgpO2RlbGV0ZSBlLl9jb2xvckF4ZXNbaF19fX19LHsiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjc1NSwiLi9kZWZhdWx0cyI6NjAyLCIuL2xheW91dF9hdHRyaWJ1dGVzIjo2MDV9XSw2MDc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgidGlueWNvbG9yMiIpLGE9e0dyZXlzOltbMCwicmdiKDAsMCwwKSJdLFsxLCJyZ2IoMjU1LDI1NSwyNTUpIl1dLFlsR25CdTpbWzAsInJnYig4LDI5LDg4KSJdLFsuMTI1LCJyZ2IoMzcsNTIsMTQ4KSJdLFsuMjUsInJnYigzNCw5NCwxNjgpIl0sWy4zNzUsInJnYigyOSwxNDUsMTkyKSJdLFsuNSwicmdiKDY1LDE4MiwxOTYpIl0sWy42MjUsInJnYigxMjcsMjA1LDE4NykiXSxbLjc1LCJyZ2IoMTk5LDIzMywxODApIl0sWy44NzUsInJnYigyMzcsMjQ4LDIxNykiXSxbMSwicmdiKDI1NSwyNTUsMjE3KSJdXSxHcmVlbnM6W1swLCJyZ2IoMCw2OCwyNykiXSxbLjEyNSwicmdiKDAsMTA5LDQ0KSJdLFsuMjUsInJnYigzNSwxMzksNjkpIl0sWy4zNzUsInJnYig2NSwxNzEsOTMpIl0sWy41LCJyZ2IoMTE2LDE5NiwxMTgpIl0sWy42MjUsInJnYigxNjEsMjE3LDE1NSkiXSxbLjc1LCJyZ2IoMTk5LDIzMywxOTIpIl0sWy44NzUsInJnYigyMjksMjQ1LDIyNCkiXSxbMSwicmdiKDI0NywyNTIsMjQ1KSJdXSxZbE9yUmQ6W1swLCJyZ2IoMTI4LDAsMzgpIl0sWy4xMjUsInJnYigxODksMCwzOCkiXSxbLjI1LCJyZ2IoMjI3LDI2LDI4KSJdLFsuMzc1LCJyZ2IoMjUyLDc4LDQyKSJdLFsuNSwicmdiKDI1MywxNDEsNjApIl0sWy42MjUsInJnYigyNTQsMTc4LDc2KSJdLFsuNzUsInJnYigyNTQsMjE3LDExOCkiXSxbLjg3NSwicmdiKDI1NSwyMzcsMTYwKSJdLFsxLCJyZ2IoMjU1LDI1NSwyMDQpIl1dLEJsdWVyZWQ6W1swLCJyZ2IoMCwwLDI1NSkiXSxbMSwicmdiKDI1NSwwLDApIl1dLFJkQnU6W1swLCJyZ2IoNSwxMCwxNzIpIl0sWy4zNSwicmdiKDEwNiwxMzcsMjQ3KSJdLFsuNSwicmdiKDE5MCwxOTAsMTkwKSJdLFsuNiwicmdiKDIyMCwxNzAsMTMyKSJdLFsuNywicmdiKDIzMCwxNDUsOTApIl0sWzEsInJnYigxNzgsMTAsMjgpIl1dLFJlZHM6W1swLCJyZ2IoMjIwLDIyMCwyMjApIl0sWy4yLCJyZ2IoMjQ1LDE5NSwxNTcpIl0sWy40LCJyZ2IoMjQ1LDE2MCwxMDUpIl0sWzEsInJnYigxNzgsMTAsMjgpIl1dLEJsdWVzOltbMCwicmdiKDUsMTAsMTcyKSJdLFsuMzUsInJnYig0MCw2MCwxOTApIl0sWy41LCJyZ2IoNzAsMTAwLDI0NSkiXSxbLjYsInJnYig5MCwxMjAsMjQ1KSJdLFsuNywicmdiKDEwNiwxMzcsMjQ3KSJdLFsxLCJyZ2IoMjIwLDIyMCwyMjApIl1dLFBpY25pYzpbWzAsInJnYigwLDAsMjU1KSJdLFsuMSwicmdiKDUxLDE1MywyNTUpIl0sWy4yLCJyZ2IoMTAyLDIwNCwyNTUpIl0sWy4zLCJyZ2IoMTUzLDIwNCwyNTUpIl0sWy40LCJyZ2IoMjA0LDIwNCwyNTUpIl0sWy41LCJyZ2IoMjU1LDI1NSwyNTUpIl0sWy42LCJyZ2IoMjU1LDIwNCwyNTUpIl0sWy43LCJyZ2IoMjU1LDE1MywyNTUpIl0sWy44LCJyZ2IoMjU1LDEwMiwyMDQpIl0sWy45LCJyZ2IoMjU1LDEwMiwxMDIpIl0sWzEsInJnYigyNTUsMCwwKSJdXSxSYWluYm93OltbMCwicmdiKDE1MCwwLDkwKSJdLFsuMTI1LCJyZ2IoMCwwLDIwMCkiXSxbLjI1LCJyZ2IoMCwyNSwyNTUpIl0sWy4zNzUsInJnYigwLDE1MiwyNTUpIl0sWy41LCJyZ2IoNDQsMjU1LDE1MCkiXSxbLjYyNSwicmdiKDE1MSwyNTUsMCkiXSxbLjc1LCJyZ2IoMjU1LDIzNCwwKSJdLFsuODc1LCJyZ2IoMjU1LDExMSwwKSJdLFsxLCJyZ2IoMjU1LDAsMCkiXV0sUG9ydGxhbmQ6W1swLCJyZ2IoMTIsNTEsMTMxKSJdLFsuMjUsInJnYigxMCwxMzYsMTg2KSJdLFsuNSwicmdiKDI0MiwyMTEsNTYpIl0sWy43NSwicmdiKDI0MiwxNDMsNTYpIl0sWzEsInJnYigyMTcsMzAsMzApIl1dLEpldDpbWzAsInJnYigwLDAsMTMxKSJdLFsuMTI1LCJyZ2IoMCw2MCwxNzApIl0sWy4zNzUsInJnYig1LDI1NSwyNTUpIl0sWy42MjUsInJnYigyNTUsMjU1LDApIl0sWy44NzUsInJnYigyNTAsMCwwKSJdLFsxLCJyZ2IoMTI4LDAsMCkiXV0sSG90OltbMCwicmdiKDAsMCwwKSJdLFsuMywicmdiKDIzMCwwLDApIl0sWy42LCJyZ2IoMjU1LDIxMCwwKSJdLFsxLCJyZ2IoMjU1LDI1NSwyNTUpIl1dLEJsYWNrYm9keTpbWzAsInJnYigwLDAsMCkiXSxbLjIsInJnYigyMzAsMCwwKSJdLFsuNCwicmdiKDIzMCwyMTAsMCkiXSxbLjcsInJnYigyNTUsMjU1LDI1NSkiXSxbMSwicmdiKDE2MCwyMDAsMjU1KSJdXSxFYXJ0aDpbWzAsInJnYigwLDAsMTMwKSJdLFsuMSwicmdiKDAsMTgwLDE4MCkiXSxbLjIsInJnYig0MCwyMTAsNDApIl0sWy40LCJyZ2IoMjMwLDIzMCw1MCkiXSxbLjYsInJnYigxMjAsNzAsMjApIl0sWzEsInJnYigyNTUsMjU1LDI1NSkiXV0sRWxlY3RyaWM6W1swLCJyZ2IoMCwwLDApIl0sWy4xNSwicmdiKDMwLDAsMTAwKSJdLFsuNCwicmdiKDEyMCwwLDEwMCkiXSxbLjYsInJnYigxNjAsOTAsMCkiXSxbLjgsInJnYigyMzAsMjAwLDApIl0sWzEsInJnYigyNTUsMjUwLDIyMCkiXV0sVmlyaWRpczpbWzAsIiM0NDAxNTQiXSxbLjA2Mjc0NTA5ODAzOTIxNTY5LCIjNDgxODZhIl0sWy4xMjU0OTAxOTYwNzg0MzEzNywiIzQ3MmQ3YiJdLFsuMTg4MjM1Mjk0MTE3NjQ3MDYsIiM0MjQwODYiXSxbLjI1MDk4MDM5MjE1Njg2Mjc0LCIjM2I1MjhiIl0sWy4zMTM3MjU0OTAxOTYwNzg0LCIjMzM2MzhkIl0sWy4zNzY0NzA1ODgyMzUyOTQxLCIjMmM3MjhlIl0sWy40MzkyMTU2ODYyNzQ1MDk4LCIjMjY4MjhlIl0sWy41MDE5NjA3ODQzMTM3MjU1LCIjMjE5MThjIl0sWy41NjQ3MDU4ODIzNTI5NDEyLCIjMWZhMDg4Il0sWy42Mjc0NTA5ODAzOTIxNTY5LCIjMjhhZTgwIl0sWy42OTAxOTYwNzg0MzEzNzI1LCIjM2ZiYzczIl0sWy43NTI5NDExNzY0NzA1ODgyLCIjNWVjOTYyIl0sWy44MTU2ODYyNzQ1MDk4MDM5LCIjODRkNDRiIl0sWy44Nzg0MzEzNzI1NDkwMTk2LCIjYWRkYzMwIl0sWy45NDExNzY0NzA1ODgyMzUzLCIjZDhlMjE5Il0sWzEsIiNmZGU3MjUiXV0sQ2l2aWRpczpbWzAsInJnYigwLDMyLDc2KSJdLFsuMDU4ODI0LCJyZ2IoMCw0MiwxMDIpIl0sWy4xMTc2NDcsInJnYigwLDUyLDExMCkiXSxbLjE3NjQ3MSwicmdiKDM5LDYzLDEwOCkiXSxbLjIzNTI5NCwicmdiKDYwLDc0LDEwNykiXSxbLjI5NDExOCwicmdiKDc2LDg1LDEwNykiXSxbLjM1Mjk0MSwicmdiKDkxLDk1LDEwOSkiXSxbLjQxMTc2NSwicmdiKDEwNCwxMDYsMTEyKSJdLFsuNDcwNTg4LCJyZ2IoMTE3LDExNywxMTcpIl0sWy41Mjk0MTIsInJnYigxMzEsMTI5LDEyMCkiXSxbLjU4ODIzNSwicmdiKDE0NiwxNDAsMTIwKSJdLFsuNjQ3MDU5LCJyZ2IoMTYxLDE1MiwxMTgpIl0sWy43MDU4ODIsInJnYigxNzYsMTY1LDExNCkiXSxbLjc2NDcwNiwicmdiKDE5MiwxNzcsMTA5KSJdLFsuODIzNTI5LCJyZ2IoMjA5LDE5MSwxMDIpIl0sWy44ODIzNTMsInJnYigyMjUsMjA0LDkyKSJdLFsuOTQxMTc2LCJyZ2IoMjQzLDIxOSw3OSkiXSxbMSwicmdiKDI1NSwyMzMsNjkpIl1dfSxpPWEuUmRCdTtmdW5jdGlvbiBvKHQpe3ZhciBlPTA7aWYoIUFycmF5LmlzQXJyYXkodCl8fHQubGVuZ3RoPDIpcmV0dXJuITE7aWYoIXRbMF18fCF0W3QubGVuZ3RoLTFdKXJldHVybiExO2lmKDAhPSt0WzBdWzBdfHwxIT0rdFt0Lmxlbmd0aC0xXVswXSlyZXR1cm4hMTtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIGE9dFtyXTtpZigyIT09YS5sZW5ndGh8fCthWzBdPGV8fCFuKGFbMV0pLmlzVmFsaWQoKSlyZXR1cm4hMTtlPSthWzBdfXJldHVybiEwfWUuZXhwb3J0cz17c2NhbGVzOmEsZGVmYXVsdFNjYWxlOmksZ2V0OmZ1bmN0aW9uKHQsZSl7aWYoZXx8KGU9aSksIXQpcmV0dXJuIGU7ZnVuY3Rpb24gcigpe3RyeXt0PWFbdF18fEpTT04ucGFyc2UodCl9Y2F0Y2gocil7dD1lfX1yZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJihyKCksInN0cmluZyI9PXR5cGVvZiB0JiZyKCkpLG8odCk/dDplfSxpc1ZhbGlkOmZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDAhPT1hW3RdfHxvKHQpfX19LHt0aW55Y29sb3IyOjUzNn1dLDYwODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbixhKXt2YXIgaT0odC1yKS8obi1yKSxvPWkrZS8obi1yKSxzPShpK28pLzI7cmV0dXJuImxlZnQiPT09YXx8ImJvdHRvbSI9PT1hP2k6ImNlbnRlciI9PT1hfHwibWlkZGxlIj09PWE/czoicmlnaHQiPT09YXx8InRvcCI9PT1hP286aTwyLzMtcz9pOm8+NC8zLXM/bzpzfX0se31dLDYwOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPVtbInN3LXJlc2l6ZSIsInMtcmVzaXplIiwic2UtcmVzaXplIl0sWyJ3LXJlc2l6ZSIsIm1vdmUiLCJlLXJlc2l6ZSJdLFsibnctcmVzaXplIiwibi1yZXNpemUiLCJuZS1yZXNpemUiXV07ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGkpe3JldHVybiB0PSJsZWZ0Ij09PXI/MDoiY2VudGVyIj09PXI/MToicmlnaHQiPT09cj8yOm4uY29uc3RyYWluKE1hdGguZmxvb3IoMyp0KSwwLDIpLGU9ImJvdHRvbSI9PT1pPzA6Im1pZGRsZSI9PT1pPzE6InRvcCI9PT1pPzI6bi5jb25zdHJhaW4oTWF0aC5mbG9vcigzKmUpLDAsMiksYVtlXVt0XX19LHsiLi4vLi4vbGliIjo3MTd9XSw2MTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgibW91c2UtZXZlbnQtb2Zmc2V0IiksYT10KCJoYXMtaG92ZXIiKSxpPXQoImhhcy1wYXNzaXZlLWV2ZW50cyIpLG89dCgiLi4vLi4vbGliIikucmVtb3ZlRWxlbWVudCxzPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9jb25zdGFudHMiKSxsPWUuZXhwb3J0cz17fTtsLmFsaWduPXQoIi4vYWxpZ24iKSxsLmdldEN1cnNvcj10KCIuL2N1cnNvciIpO3ZhciBjPXQoIi4vdW5ob3ZlciIpO2Z1bmN0aW9uIHUoKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmNsYXNzTmFtZT0iZHJhZ2NvdmVyIjt2YXIgZT10LnN0eWxlO3JldHVybiBlLnBvc2l0aW9uPSJmaXhlZCIsZS5sZWZ0PTAsZS5yaWdodD0wLGUudG9wPTAsZS5ib3R0b209MCxlLnpJbmRleD05OTk5OTk5OTksZS5iYWNrZ3JvdW5kPSJub25lIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHQpLHR9ZnVuY3Rpb24gaCh0KXtyZXR1cm4gbih0LmNoYW5nZWRUb3VjaGVzP3QuY2hhbmdlZFRvdWNoZXNbMF06dCxkb2N1bWVudC5ib2R5KX1sLnVuaG92ZXI9Yy53cmFwcGVkLGwudW5ob3ZlclJhdz1jLnJhdyxsLmluaXQ9ZnVuY3Rpb24odCl7dmFyIGUscixuLGMsZixwLGQsZyx2PXQuZ2QsbT0xLHk9di5fY29udGV4dC5kb3VibGVDbGlja0RlbGF5LHg9dC5lbGVtZW50O3YuX21vdXNlRG93blRpbWV8fCh2Ll9tb3VzZURvd25UaW1lPTApLHguc3R5bGUucG9pbnRlckV2ZW50cz0iYWxsIix4Lm9ubW91c2Vkb3duPV8saT8oeC5fb250b3VjaHN0YXJ0JiZ4LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHguX29udG91Y2hzdGFydCkseC5fb250b3VjaHN0YXJ0PV8seC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixfLHtwYXNzaXZlOiExfSkpOngub250b3VjaHN0YXJ0PV87dmFyIGI9dC5jbGFtcEZufHxmdW5jdGlvbih0LGUscil7cmV0dXJuIE1hdGguYWJzKHQpPHImJih0PTApLE1hdGguYWJzKGUpPHImJihlPTApLFt0LGVdfTtmdW5jdGlvbiBfKGkpe3YuX2RyYWdnZWQ9ITEsdi5fZHJhZ2dpbmc9ITA7dmFyIG89aChpKTtlPW9bMF0scj1vWzFdLGQ9aS50YXJnZXQscD1pLGc9Mj09PWkuYnV0dG9uc3x8aS5jdHJsS2V5LCJ1bmRlZmluZWQiPT10eXBlb2YgaS5jbGllbnRYJiYidW5kZWZpbmVkIj09dHlwZW9mIGkuY2xpZW50WSYmKGkuY2xpZW50WD1lLGkuY2xpZW50WT1yKSwobj0obmV3IERhdGUpLmdldFRpbWUoKSktdi5fbW91c2VEb3duVGltZTx5P20rPTE6KG09MSx2Ll9tb3VzZURvd25UaW1lPW4pLHQucHJlcEZuJiZ0LnByZXBGbihpLGUsciksYSYmIWc/KGY9dSgpKS5zdHlsZS5jdXJzb3I9d2luZG93LmdldENvbXB1dGVkU3R5bGUoeCkuY3Vyc29yOmF8fChmPWRvY3VtZW50LGM9d2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5jdXJzb3IsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLmN1cnNvcj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh4KS5jdXJzb3IpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLGspLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixrKSwhMSE9PXQuZHJhZ21vZGUmJihpLnByZXZlbnREZWZhdWx0KCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix3KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHcse3Bhc3NpdmU6ITF9KSl9ZnVuY3Rpb24gdyhuKXtuLnByZXZlbnREZWZhdWx0KCk7dmFyIGE9aChuKSxpPXQubWluRHJhZ3x8cy5NSU5EUkFHLG89YihhWzBdLWUsYVsxXS1yLGkpLGM9b1swXSx1PW9bMV07KGN8fHUpJiYodi5fZHJhZ2dlZD0hMCxsLnVuaG92ZXIodikpLHYuX2RyYWdnZWQmJnQubW92ZUZuJiYhZyYmKHYuX2RyYWdkYXRhPXtlbGVtZW50OngsZHg6YyxkeTp1fSx0Lm1vdmVGbihjLHUpKX1mdW5jdGlvbiBrKGUpe2lmKGRlbGV0ZSB2Ll9kcmFnZGF0YSwhMSE9PXQuZHJhZ21vZGUmJihlLnByZXZlbnREZWZhdWx0KCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix3KSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHcpKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIixrKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsayksYT9vKGYpOmMmJihmLmRvY3VtZW50RWxlbWVudC5zdHlsZS5jdXJzb3I9YyxjPW51bGwpLHYuX2RyYWdnaW5nKXtpZih2Ll9kcmFnZ2luZz0hMSwobmV3IERhdGUpLmdldFRpbWUoKS12Ll9tb3VzZURvd25UaW1lPnkmJihtPU1hdGgubWF4KG0tMSwxKSksdi5fZHJhZ2dlZCl0LmRvbmVGbiYmdC5kb25lRm4oKTtlbHNlIGlmKHQuY2xpY2tGbiYmdC5jbGlja0ZuKG0scCksIWcpe3ZhciByO3RyeXtyPW5ldyBNb3VzZUV2ZW50KCJjbGljayIsZSl9Y2F0Y2godCl7dmFyIG49aChlKTsocj1kb2N1bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVudHMiKSkuaW5pdE1vdXNlRXZlbnQoImNsaWNrIixlLmJ1YmJsZXMsZS5jYW5jZWxhYmxlLGUudmlldyxlLmRldGFpbCxlLnNjcmVlblgsZS5zY3JlZW5ZLG5bMF0sblsxXSxlLmN0cmxLZXksZS5hbHRLZXksZS5zaGlmdEtleSxlLm1ldGFLZXksZS5idXR0b24sZS5yZWxhdGVkVGFyZ2V0KX1kLmRpc3BhdGNoRXZlbnQocil9di5fZHJhZ2dpbmc9ITEsdi5fZHJhZ2dlZD0hMX1lbHNlIHYuX2RyYWdnZWQ9ITF9fSxsLmNvdmVyU2xpcD11fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vY29uc3RhbnRzIjo3NzEsIi4vYWxpZ24iOjYwOCwiLi9jdXJzb3IiOjYwOSwiLi91bmhvdmVyIjo2MTEsImhhcy1ob3ZlciI6NDEyLCJoYXMtcGFzc2l2ZS1ldmVudHMiOjQxMywibW91c2UtZXZlbnQtb2Zmc2V0Ijo0Mzh9XSw2MTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliL2V2ZW50cyIpLGE9dCgiLi4vLi4vbGliL3Rocm90dGxlIiksaT10KCIuLi8uLi9saWIvZG9tIikuZ2V0R3JhcGhEaXYsbz10KCIuLi9meC9jb25zdGFudHMiKSxzPWUuZXhwb3J0cz17fTtzLndyYXBwZWQ9ZnVuY3Rpb24odCxlLHIpeyh0PWkodCkpLl9mdWxsTGF5b3V0JiZhLmNsZWFyKHQuX2Z1bGxMYXlvdXQuX3VpZCtvLkhPVkVSSUQpLHMucmF3KHQsZSxyKX0scy5yYXc9ZnVuY3Rpb24odCxlKXt2YXIgcj10Ll9mdWxsTGF5b3V0LGE9dC5faG92ZXJkYXRhO2V8fChlPXt9KSxlLnRhcmdldCYmITE9PT1uLnRyaWdnZXJIYW5kbGVyKHQsInBsb3RseV9iZWZvcmVob3ZlciIsZSl8fChyLl9ob3ZlcmxheWVyLnNlbGVjdEFsbCgiZyIpLnJlbW92ZSgpLHIuX2hvdmVybGF5ZXIuc2VsZWN0QWxsKCJsaW5lIikucmVtb3ZlKCksci5faG92ZXJsYXllci5zZWxlY3RBbGwoImNpcmNsZSIpLnJlbW92ZSgpLHQuX2hvdmVyZGF0YT12b2lkIDAsZS50YXJnZXQmJmEmJnQuZW1pdCgicGxvdGx5X3VuaG92ZXIiLHtldmVudDplLHBvaW50czphfSkpfX0seyIuLi8uLi9saWIvZG9tIjo3MDYsIi4uLy4uL2xpYi9ldmVudHMiOjcwNywiLi4vLi4vbGliL3Rocm90dGxlIjo3NDIsIi4uL2Z4L2NvbnN0YW50cyI6NjI1fV0sNjEyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3IuZGFzaD17dmFsVHlwZToic3RyaW5nIix2YWx1ZXM6WyJzb2xpZCIsImRvdCIsImRhc2giLCJsb25nZGFzaCIsImRhc2hkb3QiLCJsb25nZGFzaGRvdCJdLGRmbHQ6InNvbGlkIixlZGl0VHlwZToic3R5bGUifX0se31dLDYxMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGE9dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoInRpbnljb2xvcjIiKSxvPXQoIi4uLy4uL3JlZ2lzdHJ5Iikscz10KCIuLi9jb2xvciIpLGw9dCgiLi4vY29sb3JzY2FsZSIpLGM9dCgiLi4vLi4vbGliIiksdT10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSxoPXQoIi4uLy4uL2NvbnN0YW50cy94bWxuc19uYW1lc3BhY2VzIiksZj10KCIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50IikuTElORV9TUEFDSU5HLHA9dCgiLi4vLi4vY29uc3RhbnRzL2ludGVyYWN0aW9ucyIpLkRFU0VMRUNURElNLGQ9dCgiLi4vLi4vdHJhY2VzL3NjYXR0ZXIvc3VidHlwZXMiKSxnPXQoIi4uLy4uL3RyYWNlcy9zY2F0dGVyL21ha2VfYnViYmxlX3NpemVfZnVuYyIpLHY9dCgiLi4vLi4vY29tcG9uZW50cy9meC9oZWxwZXJzIikuYXBwZW5kQXJyYXlQb2ludFZhbHVlLG09ZS5leHBvcnRzPXt9O20uZm9udD1mdW5jdGlvbih0LGUscixuKXtjLmlzUGxhaW5PYmplY3QoZSkmJihuPWUuY29sb3Iscj1lLnNpemUsZT1lLmZhbWlseSksZSYmdC5zdHlsZSgiZm9udC1mYW1pbHkiLGUpLHIrMSYmdC5zdHlsZSgiZm9udC1zaXplIixyKyJweCIpLG4mJnQuY2FsbChzLmZpbGwsbil9LG0uc2V0UG9zaXRpb249ZnVuY3Rpb24odCxlLHIpe3QuYXR0cigieCIsZSkuYXR0cigieSIscil9LG0uc2V0U2l6ZT1mdW5jdGlvbih0LGUscil7dC5hdHRyKCJ3aWR0aCIsZSkuYXR0cigiaGVpZ2h0IixyKX0sbS5zZXRSZWN0PWZ1bmN0aW9uKHQsZSxyLG4sYSl7dC5jYWxsKG0uc2V0UG9zaXRpb24sZSxyKS5jYWxsKG0uc2V0U2l6ZSxuLGEpfSxtLnRyYW5zbGF0ZVBvaW50PWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPXIuYzJwKHQueCksbz1uLmMycCh0LnkpO3JldHVybiEhKGEoaSkmJmEobykmJmUubm9kZSgpKSYmKCJ0ZXh0Ij09PWUubm9kZSgpLm5vZGVOYW1lP2UuYXR0cigieCIsaSkuYXR0cigieSIsbyk6ZS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitpKyIsIitvKyIpIiksITApfSxtLnRyYW5zbGF0ZVBvaW50cz1mdW5jdGlvbih0LGUscil7dC5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBhPW4uc2VsZWN0KHRoaXMpO20udHJhbnNsYXRlUG9pbnQodCxhLGUscil9KX0sbS5oaWRlT3V0c2lkZVJhbmdlUG9pbnQ9ZnVuY3Rpb24odCxlLHIsbixhLGkpe2UuYXR0cigiZGlzcGxheSIsci5pc1B0V2l0aGluUmFuZ2UodCxhKSYmbi5pc1B0V2l0aGluUmFuZ2UodCxpKT9udWxsOiJub25lIil9LG0uaGlkZU91dHNpZGVSYW5nZVBvaW50cz1mdW5jdGlvbih0LGUpe2lmKGUuX2hhc0NsaXBPbkF4aXNGYWxzZSl7dmFyIHI9ZS54YXhpcyxhPWUueWF4aXM7dC5lYWNoKGZ1bmN0aW9uKGUpe3ZhciBpPWVbMF0udHJhY2Uscz1pLnhjYWxlbmRhcixsPWkueWNhbGVuZGFyLGM9by50cmFjZUlzKGksImJhci1saWtlIik/Ii5iYXJ0ZXh0IjoiLnBvaW50LC50ZXh0cG9pbnQiO3Quc2VsZWN0QWxsKGMpLmVhY2goZnVuY3Rpb24odCl7bS5oaWRlT3V0c2lkZVJhbmdlUG9pbnQodCxuLnNlbGVjdCh0aGlzKSxyLGEscyxsKX0pfSl9fSxtLmNyaXNwUm91bmQ9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBlJiZhKGUpP3QuX2NvbnRleHQuc3RhdGljUGxvdD9lOmU8MT8xOk1hdGgucm91bmQoZSk6cnx8MH0sbS5zaW5nbGVMaW5lU3R5bGU9ZnVuY3Rpb24odCxlLHIsbixhKXtlLnN0eWxlKCJmaWxsIiwibm9uZSIpO3ZhciBpPSgoKHR8fFtdKVswXXx8e30pLnRyYWNlfHx7fSkubGluZXx8e30sbz1yfHxpLndpZHRofHwwLGw9YXx8aS5kYXNofHwiIjtzLnN0cm9rZShlLG58fGkuY29sb3IpLG0uZGFzaExpbmUoZSxsLG8pfSxtLmxpbmVHcm91cFN0eWxlPWZ1bmN0aW9uKHQsZSxyLGEpe3Quc3R5bGUoImZpbGwiLCJub25lIikuZWFjaChmdW5jdGlvbih0KXt2YXIgaT0oKCh0fHxbXSlbMF18fHt9KS50cmFjZXx8e30pLmxpbmV8fHt9LG89ZXx8aS53aWR0aHx8MCxsPWF8fGkuZGFzaHx8IiI7bi5zZWxlY3QodGhpcykuY2FsbChzLnN0cm9rZSxyfHxpLmNvbG9yKS5jYWxsKG0uZGFzaExpbmUsbCxvKX0pfSxtLmRhc2hMaW5lPWZ1bmN0aW9uKHQsZSxyKXtyPStyfHwwLGU9bS5kYXNoU3R5bGUoZSxyKSx0LnN0eWxlKHsic3Ryb2tlLWRhc2hhcnJheSI6ZSwic3Ryb2tlLXdpZHRoIjpyKyJweCJ9KX0sbS5kYXNoU3R5bGU9ZnVuY3Rpb24odCxlKXtlPStlfHwxO3ZhciByPU1hdGgubWF4KGUsMyk7cmV0dXJuInNvbGlkIj09PXQ/dD0iIjoiZG90Ij09PXQ/dD1yKyJweCwiK3IrInB4IjoiZGFzaCI9PT10P3Q9MypyKyJweCwiKzMqcisicHgiOiJsb25nZGFzaCI9PT10P3Q9NSpyKyJweCwiKzUqcisicHgiOiJkYXNoZG90Ij09PXQ/dD0zKnIrInB4LCIrcisicHgsIityKyJweCwiK3IrInB4IjoibG9uZ2Rhc2hkb3QiPT09dCYmKHQ9NSpyKyJweCwiKzIqcisicHgsIityKyJweCwiKzIqcisicHgiKSx0fSxtLnNpbmdsZUZpbGxTdHlsZT1mdW5jdGlvbih0KXt2YXIgZT0oKChuLnNlbGVjdCh0Lm5vZGUoKSkuZGF0YSgpWzBdfHxbXSlbMF18fHt9KS50cmFjZXx8e30pLmZpbGxjb2xvcjtlJiZ0LmNhbGwocy5maWxsLGUpfSxtLmZpbGxHcm91cFN0eWxlPWZ1bmN0aW9uKHQpe3Quc3R5bGUoInN0cm9rZS13aWR0aCIsMCkuZWFjaChmdW5jdGlvbih0KXt2YXIgZT1uLnNlbGVjdCh0aGlzKTt0WzBdLnRyYWNlJiZlLmNhbGwocy5maWxsLHRbMF0udHJhY2UuZmlsbGNvbG9yKX0pfTt2YXIgeT10KCIuL3N5bWJvbF9kZWZzIik7bS5zeW1ib2xOYW1lcz1bXSxtLnN5bWJvbEZ1bmNzPVtdLG0uc3ltYm9sTmVlZExpbmVzPXt9LG0uc3ltYm9sTm9Eb3Q9e30sbS5zeW1ib2xOb0ZpbGw9e30sbS5zeW1ib2xMaXN0PVtdLE9iamVjdC5rZXlzKHkpLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU9eVt0XSxyPWUubjttLnN5bWJvbExpc3QucHVzaChyLHQscisxMDAsdCsiLW9wZW4iKSxtLnN5bWJvbE5hbWVzW3JdPXQsbS5zeW1ib2xGdW5jc1tyXT1lLmYsZS5uZWVkTGluZSYmKG0uc3ltYm9sTmVlZExpbmVzW3JdPSEwKSxlLm5vRG90P20uc3ltYm9sTm9Eb3Rbcl09ITA6bS5zeW1ib2xMaXN0LnB1c2gocisyMDAsdCsiLWRvdCIsciszMDAsdCsiLW9wZW4tZG90IiksZS5ub0ZpbGwmJihtLnN5bWJvbE5vRmlsbFtyXT0hMCl9KTt2YXIgeD1tLnN5bWJvbE5hbWVzLmxlbmd0aCxiPSJNMCwwLjVMMC41LDBMMCwtMC41TC0wLjUsMFoiO2Z1bmN0aW9uIF8odCxlKXt2YXIgcj10JTEwMDtyZXR1cm4gbS5zeW1ib2xGdW5jc1tyXShlKSsodD49MjAwP2I6IiIpfW0uc3ltYm9sTnVtYmVyPWZ1bmN0aW9uKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdCl7dmFyIGU9MDt0LmluZGV4T2YoIi1vcGVuIik+MCYmKGU9MTAwLHQ9dC5yZXBsYWNlKCItb3BlbiIsIiIpKSx0LmluZGV4T2YoIi1kb3QiKT4wJiYoZSs9MjAwLHQ9dC5yZXBsYWNlKCItZG90IiwiIikpLCh0PW0uc3ltYm9sTmFtZXMuaW5kZXhPZih0KSk+PTAmJih0Kz1lKX1yZXR1cm4gdCUxMDA+PXh8fHQ+PTQwMD8wOk1hdGguZmxvb3IoTWF0aC5tYXgodCwwKSl9O3ZhciB3PXt4MToxLHgyOjAseTE6MCx5MjowfSxrPXt4MTowLHgyOjAseTE6MSx5MjowfSxUPW4uZm9ybWF0KCJ+LjFmIiksTT17cmFkaWFsOntub2RlOiJyYWRpYWxHcmFkaWVudCJ9LHJhZGlhbHJldmVyc2VkOntub2RlOiJyYWRpYWxHcmFkaWVudCIscmV2ZXJzZWQ6ITB9LGhvcml6b250YWw6e25vZGU6ImxpbmVhckdyYWRpZW50IixhdHRyczp3fSxob3Jpem9udGFscmV2ZXJzZWQ6e25vZGU6ImxpbmVhckdyYWRpZW50IixhdHRyczp3LHJldmVyc2VkOiEwfSx2ZXJ0aWNhbDp7bm9kZToibGluZWFyR3JhZGllbnQiLGF0dHJzOmt9LHZlcnRpY2FscmV2ZXJzZWQ6e25vZGU6ImxpbmVhckdyYWRpZW50IixhdHRyczprLHJldmVyc2VkOiEwfX07bS5ncmFkaWVudD1mdW5jdGlvbih0LGUscixhLG8sbCl7Zm9yKHZhciB1PW8ubGVuZ3RoLGg9TVthXSxmPW5ldyBBcnJheSh1KSxwPTA7cDx1O3ArKyloLnJldmVyc2VkP2ZbdS0xLXBdPVtUKDEwMCooMS1vW3BdWzBdKSksb1twXVsxXV06ZltwXT1bVCgxMDAqb1twXVswXSksb1twXVsxXV07dmFyIGQ9ZS5fZnVsbExheW91dCxnPSJnIitkLl91aWQrIi0iK3Isdj1kLl9kZWZzLnNlbGVjdCgiLmdyYWRpZW50cyIpLnNlbGVjdEFsbCgiIyIrZykuZGF0YShbYStmLmpvaW4oIjsiKV0sYy5pZGVudGl0eSk7di5leGl0KCkucmVtb3ZlKCksdi5lbnRlcigpLmFwcGVuZChoLm5vZGUpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1uLnNlbGVjdCh0aGlzKTtoLmF0dHJzJiZ0LmF0dHIoaC5hdHRycyksdC5hdHRyKCJpZCIsZyk7dmFyIGU9dC5zZWxlY3RBbGwoInN0b3AiKS5kYXRhKGYpO2UuZXhpdCgpLnJlbW92ZSgpLGUuZW50ZXIoKS5hcHBlbmQoInN0b3AiKSxlLmVhY2goZnVuY3Rpb24odCl7dmFyIGU9aSh0WzFdKTtuLnNlbGVjdCh0aGlzKS5hdHRyKHtvZmZzZXQ6dFswXSsiJSIsInN0b3AtY29sb3IiOnMudGlueVJHQihlKSwic3RvcC1vcGFjaXR5IjplLmdldEFscGhhKCl9KX0pfSksdC5zdHlsZShsLEQoZyxlKSkuc3R5bGUobCsiLW9wYWNpdHkiLG51bGwpO3ZhciBtPWZ1bmN0aW9uKHQpe3JldHVybiIuIit0LmF0dHIoImNsYXNzIikucmVwbGFjZSgvXHMvZywiLiIpfSx5PW0obi5zZWxlY3QodC5ub2RlKCkucGFyZW50Tm9kZSkpKyI+IittKHQpO2QuX2dyYWRpZW50VXJsUXVlcnlQYXJ0c1t5XT0xfSxtLmluaXRHcmFkaWVudHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dDtjLmVuc3VyZVNpbmdsZShlLl9kZWZzLCJnIiwiZ3JhZGllbnRzIikuc2VsZWN0QWxsKCJsaW5lYXJHcmFkaWVudCxyYWRpYWxHcmFkaWVudCIpLnJlbW92ZSgpLGUuX2dyYWRpZW50VXJsUXVlcnlQYXJ0cz17fX0sbS5wb2ludFN0eWxlPWZ1bmN0aW9uKHQsZSxyKXtpZih0LnNpemUoKSl7dmFyIGE9bS5tYWtlUG9pbnRTdHlsZUZucyhlKTt0LmVhY2goZnVuY3Rpb24odCl7bS5zaW5nbGVQb2ludFN0eWxlKHQsbi5zZWxlY3QodGhpcyksZSxhLHIpfSl9fSxtLnNpbmdsZVBvaW50U3R5bGU9ZnVuY3Rpb24odCxlLHIsbixhKXt2YXIgaT1yLm1hcmtlcixvPWkubGluZTtpZihlLnN0eWxlKCJvcGFjaXR5IixuLnNlbGVjdGVkT3BhY2l0eUZuP24uc2VsZWN0ZWRPcGFjaXR5Rm4odCk6dm9pZCAwPT09dC5tbz9pLm9wYWNpdHk6dC5tbyksbi5tczJtcmMpe3ZhciBsO2w9InZhcmlvdXMiPT09dC5tc3x8InZhcmlvdXMiPT09aS5zaXplPzM6bi5tczJtcmModC5tcyksdC5tcmM9bCxuLnNlbGVjdGVkU2l6ZUZuJiYobD10Lm1yYz1uLnNlbGVjdGVkU2l6ZUZuKHQpKTt2YXIgdT1tLnN5bWJvbE51bWJlcih0Lm14fHxpLnN5bWJvbCl8fDA7dC5vbT11JTIwMD49MTAwLGUuYXR0cigiZCIsXyh1LGwpKX12YXIgaCxmLHAsZD0hMTtpZih0LnNvKXA9by5vdXRsaWVyd2lkdGgsZj1vLm91dGxpZXJjb2xvcixoPWkub3V0bGllcmNvbG9yO2Vsc2V7dmFyIGc9KG98fHt9KS53aWR0aDtwPSh0Lm1sdysxfHxnKzF8fCh0LnRyYWNlPyh0LnRyYWNlLm1hcmtlci5saW5lfHx7fSkud2lkdGg6MCkrMSktMXx8MCxmPSJtbGMiaW4gdD90Lm1sY2M9bi5saW5lU2NhbGUodC5tbGMpOmMuaXNBcnJheU9yVHlwZWRBcnJheShvLmNvbG9yKT9zLmRlZmF1bHRMaW5lOm8uY29sb3IsYy5pc0FycmF5T3JUeXBlZEFycmF5KGkuY29sb3IpJiYoaD1zLmRlZmF1bHRMaW5lLGQ9ITApLGg9Im1jImluIHQ/dC5tY2M9bi5tYXJrZXJTY2FsZSh0Lm1jKTppLmNvbG9yfHwicmdiYSgwLDAsMCwwKSIsbi5zZWxlY3RlZENvbG9yRm4mJihoPW4uc2VsZWN0ZWRDb2xvckZuKHQpKX1pZih0Lm9tKWUuY2FsbChzLnN0cm9rZSxoKS5zdHlsZSh7InN0cm9rZS13aWR0aCI6KHB8fDEpKyJweCIsZmlsbDoibm9uZSJ9KTtlbHNle2Uuc3R5bGUoInN0cm9rZS13aWR0aCIsKHQuaXNCbGFuaz8wOnApKyJweCIpO3ZhciB2PWkuZ3JhZGllbnQseT10Lm1ndDtpZih5P2Q9ITA6eT12JiZ2LnR5cGUsQXJyYXkuaXNBcnJheSh5KSYmKHk9eVswXSxNW3ldfHwoeT0wKSkseSYmIm5vbmUiIT09eSl7dmFyIHg9dC5tZ2M7eD9kPSEwOng9di5jb2xvcjt2YXIgYj1yLnVpZDtkJiYoYis9Ii0iK3QuaSksbS5ncmFkaWVudChlLGEsYix5LFtbMCx4XSxbMSxoXV0sImZpbGwiKX1lbHNlIHMuZmlsbChlLGgpO3AmJnMuc3Ryb2tlKGUsZil9fSxtLm1ha2VQb2ludFN0eWxlRm5zPWZ1bmN0aW9uKHQpe3ZhciBlPXt9LHI9dC5tYXJrZXI7cmV0dXJuIGUubWFya2VyU2NhbGU9bS50cnlDb2xvcnNjYWxlKHIsIiIpLGUubGluZVNjYWxlPW0udHJ5Q29sb3JzY2FsZShyLCJsaW5lIiksby50cmFjZUlzKHQsInN5bWJvbHMiKSYmKGUubXMybXJjPWQuaXNCdWJibGUodCk/Zyh0KTpmdW5jdGlvbigpe3JldHVybihyLnNpemV8fDYpLzJ9KSx0LnNlbGVjdGVkcG9pbnRzJiZjLmV4dGVuZEZsYXQoZSxtLm1ha2VTZWxlY3RlZFBvaW50U3R5bGVGbnModCkpLGV9LG0ubWFrZVNlbGVjdGVkUG9pbnRTdHlsZUZucz1mdW5jdGlvbih0KXt2YXIgZT17fSxyPXQuc2VsZWN0ZWR8fHt9LG49dC51bnNlbGVjdGVkfHx7fSxhPXQubWFya2VyfHx7fSxpPXIubWFya2VyfHx7fSxzPW4ubWFya2VyfHx7fSxsPWEub3BhY2l0eSx1PWkub3BhY2l0eSxoPXMub3BhY2l0eSxmPXZvaWQgMCE9PXUsZD12b2lkIDAhPT1oOyhjLmlzQXJyYXlPclR5cGVkQXJyYXkobCl8fGZ8fGQpJiYoZS5zZWxlY3RlZE9wYWNpdHlGbj1mdW5jdGlvbih0KXt2YXIgZT12b2lkIDA9PT10Lm1vP2Eub3BhY2l0eTp0Lm1vO3JldHVybiB0LnNlbGVjdGVkP2Y/dTplOmQ/aDpwKmV9KTt2YXIgZz1hLmNvbG9yLHY9aS5jb2xvcixtPXMuY29sb3I7KHZ8fG0pJiYoZS5zZWxlY3RlZENvbG9yRm49ZnVuY3Rpb24odCl7dmFyIGU9dC5tY2N8fGc7cmV0dXJuIHQuc2VsZWN0ZWQ/dnx8ZTptfHxlfSk7dmFyIHk9YS5zaXplLHg9aS5zaXplLGI9cy5zaXplLF89dm9pZCAwIT09eCx3PXZvaWQgMCE9PWI7cmV0dXJuIG8udHJhY2VJcyh0LCJzeW1ib2xzIikmJihffHx3KSYmKGUuc2VsZWN0ZWRTaXplRm49ZnVuY3Rpb24odCl7dmFyIGU9dC5tcmN8fHkvMjtyZXR1cm4gdC5zZWxlY3RlZD9fP3gvMjplOnc/Yi8yOmV9KSxlfSxtLm1ha2VTZWxlY3RlZFRleHRTdHlsZUZucz1mdW5jdGlvbih0KXt2YXIgZT17fSxyPXQuc2VsZWN0ZWR8fHt9LG49dC51bnNlbGVjdGVkfHx7fSxhPXQudGV4dGZvbnR8fHt9LGk9ci50ZXh0Zm9udHx8e30sbz1uLnRleHRmb250fHx7fSxsPWEuY29sb3IsYz1pLmNvbG9yLHU9by5jb2xvcjtyZXR1cm4gZS5zZWxlY3RlZFRleHRDb2xvckZuPWZ1bmN0aW9uKHQpe3ZhciBlPXQudGN8fGw7cmV0dXJuIHQuc2VsZWN0ZWQ/Y3x8ZTp1fHwoYz9lOnMuYWRkT3BhY2l0eShlLHApKX0sZX0sbS5zZWxlY3RlZFBvaW50U3R5bGU9ZnVuY3Rpb24odCxlKXtpZih0LnNpemUoKSYmZS5zZWxlY3RlZHBvaW50cyl7dmFyIHI9bS5tYWtlU2VsZWN0ZWRQb2ludFN0eWxlRm5zKGUpLGE9ZS5tYXJrZXJ8fHt9LGk9W107ci5zZWxlY3RlZE9wYWNpdHlGbiYmaS5wdXNoKGZ1bmN0aW9uKHQsZSl7dC5zdHlsZSgib3BhY2l0eSIsci5zZWxlY3RlZE9wYWNpdHlGbihlKSl9KSxyLnNlbGVjdGVkQ29sb3JGbiYmaS5wdXNoKGZ1bmN0aW9uKHQsZSl7cy5maWxsKHQsci5zZWxlY3RlZENvbG9yRm4oZSkpfSksci5zZWxlY3RlZFNpemVGbiYmaS5wdXNoKGZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5teHx8YS5zeW1ib2x8fDAsaT1yLnNlbGVjdGVkU2l6ZUZuKGUpO3QuYXR0cigiZCIsXyhtLnN5bWJvbE51bWJlcihuKSxpKSksZS5tcmMyPWl9KSxpLmxlbmd0aCYmdC5lYWNoKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uLnNlbGVjdCh0aGlzKSxyPTA7cjxpLmxlbmd0aDtyKyspaVtyXShlLHQpfSl9fSxtLnRyeUNvbG9yc2NhbGU9ZnVuY3Rpb24odCxlKXt2YXIgcj1lP2MubmVzdGVkUHJvcGVydHkodCxlKS5nZXQoKTp0O2lmKHIpe3ZhciBuPXIuY29sb3I7aWYoKHIuY29sb3JzY2FsZXx8ci5fY29sb3JBeCkmJmMuaXNBcnJheU9yVHlwZWRBcnJheShuKSlyZXR1cm4gbC5tYWtlQ29sb3JTY2FsZUZ1bmNGcm9tVHJhY2Uocil9cmV0dXJuIGMuaWRlbnRpdHl9O3ZhciBBPXtzdGFydDoxLGVuZDotMSxtaWRkbGU6MCxib3R0b206MSx0b3A6LTF9O2Z1bmN0aW9uIFModCxlLHIsYSl7dmFyIGk9bi5zZWxlY3QodC5ub2RlKCkucGFyZW50Tm9kZSksbz0tMSE9PWUuaW5kZXhPZigidG9wIik/InRvcCI6LTEhPT1lLmluZGV4T2YoImJvdHRvbSIpPyJib3R0b20iOiJtaWRkbGUiLHM9LTEhPT1lLmluZGV4T2YoImxlZnQiKT8iZW5kIjotMSE9PWUuaW5kZXhPZigicmlnaHQiKT8ic3RhcnQiOiJtaWRkbGUiLGw9YT9hLy44KzE6MCxjPSh1LmxpbmVDb3VudCh0KS0xKSpmKzEsaD1BW3NdKmwscD0uNzUqcitBW29dKmwrKEFbb10tMSkqYypyLzI7dC5hdHRyKCJ0ZXh0LWFuY2hvciIscyksaS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitoKyIsIitwKyIpIil9ZnVuY3Rpb24gRSh0LGUpe3ZhciByPXQudHN8fGUudGV4dGZvbnQuc2l6ZTtyZXR1cm4gYShyKSYmcj4wP3I6MH1tLnRleHRQb2ludFN0eWxlPWZ1bmN0aW9uKHQsZSxyKXtpZih0LnNpemUoKSl7dmFyIGE7aWYoZS5zZWxlY3RlZHBvaW50cyl7dmFyIGk9bS5tYWtlU2VsZWN0ZWRUZXh0U3R5bGVGbnMoZSk7YT1pLnNlbGVjdGVkVGV4dENvbG9yRm59dmFyIG89ZS50ZXh0dGVtcGxhdGUscz1yLl9mdWxsTGF5b3V0O3QuZWFjaChmdW5jdGlvbih0KXt2YXIgaT1uLnNlbGVjdCh0aGlzKSxsPW8/Yy5leHRyYWN0T3B0aW9uKHQsZSwidHh0IiwidGV4dHRlbXBsYXRlIik6Yy5leHRyYWN0T3B0aW9uKHQsZSwidHgiLCJ0ZXh0Iik7aWYobHx8MD09PWwpe2lmKG8pe3ZhciBoPWUuX21vZHVsZS5mb3JtYXRMYWJlbHM/ZS5fbW9kdWxlLmZvcm1hdExhYmVscyh0LGUscyk6e30sZj17fTt2KGYsZSx0LmkpO3ZhciBwPWUuX21ldGF8fHt9O2w9Yy50ZXh0dGVtcGxhdGVTdHJpbmcobCxoLHMuX2QzbG9jYWxlLGYsdCxwKX12YXIgZD10LnRwfHxlLnRleHRwb3NpdGlvbixnPUUodCxlKSx5PWE/YSh0KTp0LnRjfHxlLnRleHRmb250LmNvbG9yO2kuY2FsbChtLmZvbnQsdC50Znx8ZS50ZXh0Zm9udC5mYW1pbHksZyx5KS50ZXh0KGwpLmNhbGwodS5jb252ZXJ0VG9Uc3BhbnMscikuY2FsbChTLGQsZyx0Lm1yYyl9ZWxzZSBpLnJlbW92ZSgpfSl9fSxtLnNlbGVjdGVkVGV4dFN0eWxlPWZ1bmN0aW9uKHQsZSl7aWYodC5zaXplKCkmJmUuc2VsZWN0ZWRwb2ludHMpe3ZhciByPW0ubWFrZVNlbGVjdGVkVGV4dFN0eWxlRm5zKGUpO3QuZWFjaChmdW5jdGlvbih0KXt2YXIgYT1uLnNlbGVjdCh0aGlzKSxpPXIuc2VsZWN0ZWRUZXh0Q29sb3JGbih0KSxvPXQudHB8fGUudGV4dHBvc2l0aW9uLGw9RSh0LGUpO3MuZmlsbChhLGkpLFMoYSxvLGwsdC5tcmMyfHx0Lm1yYyl9KX19O3ZhciBMPS41O2Z1bmN0aW9uIEModCxlLHIsYSl7dmFyIGk9dFswXS1lWzBdLG89dFsxXS1lWzFdLHM9clswXS1lWzBdLGw9clsxXS1lWzFdLGM9TWF0aC5wb3coaSppK28qbyxMLzIpLHU9TWF0aC5wb3cocypzK2wqbCxMLzIpLGg9KHUqdSppLWMqYypzKSphLGY9KHUqdSpvLWMqYypsKSphLHA9Myp1KihjK3UpLGQ9MypjKihjK3UpO3JldHVybltbbi5yb3VuZChlWzBdKyhwJiZoL3ApLDIpLG4ucm91bmQoZVsxXSsocCYmZi9wKSwyKV0sW24ucm91bmQoZVswXS0oZCYmaC9kKSwyKSxuLnJvdW5kKGVbMV0tKGQmJmYvZCksMildXX1tLnNtb290aG9wZW49ZnVuY3Rpb24odCxlKXtpZih0Lmxlbmd0aDwzKXJldHVybiJNIit0LmpvaW4oIkwiKTt2YXIgcixuPSJNIit0WzBdLGE9W107Zm9yKHI9MTtyPHQubGVuZ3RoLTE7cisrKWEucHVzaChDKHRbci0xXSx0W3JdLHRbcisxXSxlKSk7Zm9yKG4rPSJRIithWzBdWzBdKyIgIit0WzFdLHI9MjtyPHQubGVuZ3RoLTE7cisrKW4rPSJDIithW3ItMl1bMV0rIiAiK2Fbci0xXVswXSsiICIrdFtyXTtyZXR1cm4gbis9IlEiK2FbdC5sZW5ndGgtM11bMV0rIiAiK3RbdC5sZW5ndGgtMV19LG0uc21vb3RoY2xvc2VkPWZ1bmN0aW9uKHQsZSl7aWYodC5sZW5ndGg8MylyZXR1cm4iTSIrdC5qb2luKCJMIikrIloiO3ZhciByLG49Ik0iK3RbMF0sYT10Lmxlbmd0aC0xLGk9W0ModFthXSx0WzBdLHRbMV0sZSldO2ZvcihyPTE7cjxhO3IrKylpLnB1c2goQyh0W3ItMV0sdFtyXSx0W3IrMV0sZSkpO2ZvcihpLnB1c2goQyh0W2EtMV0sdFthXSx0WzBdLGUpKSxyPTE7cjw9YTtyKyspbis9IkMiK2lbci0xXVsxXSsiICIraVtyXVswXSsiICIrdFtyXTtyZXR1cm4gbis9IkMiK2lbYV1bMV0rIiAiK2lbMF1bMF0rIiAiK3RbMF0rIloifTt2YXIgUD17aHY6ZnVuY3Rpb24odCxlKXtyZXR1cm4iSCIrbi5yb3VuZChlWzBdLDIpKyJWIituLnJvdW5kKGVbMV0sMil9LHZoOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIlYiK24ucm91bmQoZVsxXSwyKSsiSCIrbi5yb3VuZChlWzBdLDIpfSxodmg6ZnVuY3Rpb24odCxlKXtyZXR1cm4iSCIrbi5yb3VuZCgodFswXStlWzBdKS8yLDIpKyJWIituLnJvdW5kKGVbMV0sMikrIkgiK24ucm91bmQoZVswXSwyKX0sdmh2OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIlYiK24ucm91bmQoKHRbMV0rZVsxXSkvMiwyKSsiSCIrbi5yb3VuZChlWzBdLDIpKyJWIituLnJvdW5kKGVbMV0sMil9fSxPPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIkwiK24ucm91bmQoZVswXSwyKSsiLCIrbi5yb3VuZChlWzFdLDIpfTttLnN0ZXBzPWZ1bmN0aW9uKHQpe3ZhciBlPVBbdF18fE87cmV0dXJuIGZ1bmN0aW9uKHQpe2Zvcih2YXIgcj0iTSIrbi5yb3VuZCh0WzBdWzBdLDIpKyIsIituLnJvdW5kKHRbMF1bMV0sMiksYT0xO2E8dC5sZW5ndGg7YSsrKXIrPWUodFthLTFdLHRbYV0pO3JldHVybiByfX0sbS5tYWtlVGVzdGVyPWZ1bmN0aW9uKCl7dmFyIHQ9Yy5lbnN1cmVTaW5nbGVCeUlkKG4uc2VsZWN0KCJib2R5IiksInN2ZyIsImpzLXBsb3RseS10ZXN0ZXIiLGZ1bmN0aW9uKHQpe3QuYXR0cihoLnN2Z0F0dHJzKS5zdHlsZSh7cG9zaXRpb246ImFic29sdXRlIixsZWZ0OiItMTAwMDBweCIsdG9wOiItMTAwMDBweCIsd2lkdGg6IjkwMDBweCIsaGVpZ2h0OiI5MDAwcHgiLCJ6LWluZGV4IjoiMSJ9KX0pLGU9Yy5lbnN1cmVTaW5nbGUodCwicGF0aCIsImpzLXJlZmVyZW5jZS1wb2ludCIsZnVuY3Rpb24odCl7dC5hdHRyKCJkIiwiTTAsMEgxVjFIMFoiKS5zdHlsZSh7InN0cm9rZS13aWR0aCI6MCxmaWxsOiJibGFjayJ9KX0pO20udGVzdGVyPXQsbS50ZXN0cmVmPWV9LG0uc2F2ZWRCQm94ZXM9e307dmFyIHo9MDtmdW5jdGlvbiBJKHQpe3ZhciBlPXQuZ2V0QXR0cmlidXRlKCJkYXRhLXVuZm9ybWF0dGVkIik7aWYobnVsbCE9PWUpcmV0dXJuIGUrdC5nZXRBdHRyaWJ1dGUoImRhdGEtbWF0aCIpK3QuZ2V0QXR0cmlidXRlKCJ0ZXh0LWFuY2hvciIpK3QuZ2V0QXR0cmlidXRlKCJzdHlsZSIpfWZ1bmN0aW9uIEQodCxlKXtpZighdClyZXR1cm4gbnVsbDt2YXIgcj1lLl9jb250ZXh0O3JldHVybiJ1cmwoJyIrKHIuX2V4cG9ydGVkUGxvdD8iIjpyLl9iYXNlVXJsfHwiIikrIiMiK3QrIicpIn1tLmJCb3g9ZnVuY3Rpb24odCxlLHIpe3ZhciBhLGksbztpZihyfHwocj1JKHQpKSxyKXtpZihhPW0uc2F2ZWRCQm94ZXNbcl0pcmV0dXJuIGMuZXh0ZW5kRmxhdCh7fSxhKX1lbHNlIGlmKDE9PT10LmNoaWxkTm9kZXMubGVuZ3RoKXt2YXIgcz10LmNoaWxkTm9kZXNbMF07aWYocj1JKHMpKXt2YXIgbD0rcy5nZXRBdHRyaWJ1dGUoIngiKXx8MCxoPStzLmdldEF0dHJpYnV0ZSgieSIpfHwwLGY9cy5nZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIpO2lmKCFmKXt2YXIgcD1tLmJCb3gocywhMSxyKTtyZXR1cm4gbCYmKHAubGVmdCs9bCxwLnJpZ2h0Kz1sKSxoJiYocC50b3ArPWgscC5ib3R0b20rPWgpLHB9aWYocis9In4iK2wrIn4iK2grIn4iK2YsYT1tLnNhdmVkQkJveGVzW3JdKXJldHVybiBjLmV4dGVuZEZsYXQoe30sYSl9fWU/aT10OihvPW0udGVzdGVyLm5vZGUoKSxpPXQuY2xvbmVOb2RlKCEwKSxvLmFwcGVuZENoaWxkKGkpKSxuLnNlbGVjdChpKS5hdHRyKCJ0cmFuc2Zvcm0iLG51bGwpLmNhbGwodS5wb3NpdGlvblRleHQsMCwwKTt2YXIgZD1pLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGc9bS50ZXN0cmVmLm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlfHxvLnJlbW92ZUNoaWxkKGkpO3ZhciB2PXtoZWlnaHQ6ZC5oZWlnaHQsd2lkdGg6ZC53aWR0aCxsZWZ0OmQubGVmdC1nLmxlZnQsdG9wOmQudG9wLWcudG9wLHJpZ2h0OmQucmlnaHQtZy5sZWZ0LGJvdHRvbTpkLmJvdHRvbS1nLnRvcH07cmV0dXJuIHo+PTFlNCYmKG0uc2F2ZWRCQm94ZXM9e30sej0wKSxyJiYobS5zYXZlZEJCb3hlc1tyXT12KSx6KyssYy5leHRlbmRGbGF0KHt9LHYpfSxtLnNldENsaXBVcmw9ZnVuY3Rpb24odCxlLHIpe3QuYXR0cigiY2xpcC1wYXRoIixEKGUscikpfSxtLmdldFRyYW5zbGF0ZT1mdW5jdGlvbih0KXt2YXIgZT0odFt0LmF0dHI/ImF0dHIiOiJnZXRBdHRyaWJ1dGUiXSgidHJhbnNmb3JtIil8fCIiKS5yZXBsYWNlKC8uKlxidHJhbnNsYXRlXCgoLT9cZCpcLj9cZCopW14tXGRdKigtP1xkKlwuP1xkKilbXlxkXS4qLyxmdW5jdGlvbih0LGUscil7cmV0dXJuW2Uscl0uam9pbigiICIpfSkuc3BsaXQoIiAiKTtyZXR1cm57eDorZVswXXx8MCx5OitlWzFdfHwwfX0sbS5zZXRUcmFuc2xhdGU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQuYXR0cj8iYXR0ciI6ImdldEF0dHJpYnV0ZSIsYT10LmF0dHI/ImF0dHIiOiJzZXRBdHRyaWJ1dGUiLGk9dFtuXSgidHJhbnNmb3JtIil8fCIiO3JldHVybiBlPWV8fDAscj1yfHwwLGk9aS5yZXBsYWNlKC8oXGJ0cmFuc2xhdGVcKC4qP1wpOz8pLywiIikudHJpbSgpLGk9KGkrPSIgdHJhbnNsYXRlKCIrZSsiLCAiK3IrIikiKS50cmltKCksdFthXSgidHJhbnNmb3JtIixpKSxpfSxtLmdldFNjYWxlPWZ1bmN0aW9uKHQpe3ZhciBlPSh0W3QuYXR0cj8iYXR0ciI6ImdldEF0dHJpYnV0ZSJdKCJ0cmFuc2Zvcm0iKXx8IiIpLnJlcGxhY2UoLy4qXGJzY2FsZVwoKFxkKlwuP1xkKilbXlxkXSooXGQqXC4/XGQqKVteXGRdLiovLGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm5bZSxyXS5qb2luKCIgIil9KS5zcGxpdCgiICIpO3JldHVybnt4OitlWzBdfHwxLHk6K2VbMV18fDF9fSxtLnNldFNjYWxlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10LmF0dHI/ImF0dHIiOiJnZXRBdHRyaWJ1dGUiLGE9dC5hdHRyPyJhdHRyIjoic2V0QXR0cmlidXRlIixpPXRbbl0oInRyYW5zZm9ybSIpfHwiIjtyZXR1cm4gZT1lfHwxLHI9cnx8MSxpPWkucmVwbGFjZSgvKFxic2NhbGVcKC4qP1wpOz8pLywiIikudHJpbSgpLGk9KGkrPSIgc2NhbGUoIitlKyIsICIrcisiKSIpLnRyaW0oKSx0W2FdKCJ0cmFuc2Zvcm0iLGkpLGl9O3ZhciBSPS9ccypzYy4qLzttLnNldFBvaW50R3JvdXBTY2FsZT1mdW5jdGlvbih0LGUscil7aWYoZT1lfHwxLHI9cnx8MSx0KXt2YXIgbj0xPT09ZSYmMT09PXI/IiI6IiBzY2FsZSgiK2UrIiwiK3IrIikiO3QuZWFjaChmdW5jdGlvbigpe3ZhciB0PSh0aGlzLmdldEF0dHJpYnV0ZSgidHJhbnNmb3JtIil8fCIiKS5yZXBsYWNlKFIsIiIpO3Q9KHQrPW4pLnRyaW0oKSx0aGlzLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIix0KX0pfX07dmFyIEY9L3RyYW5zbGF0ZVwoW14pXSpcKVxzKiQvO20uc2V0VGV4dFBvaW50c1NjYWxlPWZ1bmN0aW9uKHQsZSxyKXt0JiZ0LmVhY2goZnVuY3Rpb24oKXt2YXIgdCxhPW4uc2VsZWN0KHRoaXMpLGk9YS5zZWxlY3QoInRleHQiKTtpZihpLm5vZGUoKSl7dmFyIG89cGFyc2VGbG9hdChpLmF0dHIoIngiKXx8MCkscz1wYXJzZUZsb2F0KGkuYXR0cigieSIpfHwwKSxsPShhLmF0dHIoInRyYW5zZm9ybSIpfHwiIikubWF0Y2goRik7dD0xPT09ZSYmMT09PXI/W106WyJ0cmFuc2xhdGUoIitvKyIsIitzKyIpIiwic2NhbGUoIitlKyIsIityKyIpIiwidHJhbnNsYXRlKCIrLW8rIiwiKy1zKyIpIl0sbCYmdC5wdXNoKGwpLGEuYXR0cigidHJhbnNmb3JtIix0LmpvaW4oIiAiKSl9fSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvZngvaGVscGVycyI6NjI3LCIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50Ijo2ODYsIi4uLy4uL2NvbnN0YW50cy9pbnRlcmFjdGlvbnMiOjY5MiwiLi4vLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiOjY5NCwiLi4vLi4vbGliIjo3MTcsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6NzQxLCIuLi8uLi9yZWdpc3RyeSI6ODQ2LCIuLi8uLi90cmFjZXMvc2NhdHRlci9tYWtlX2J1YmJsZV9zaXplX2Z1bmMiOjExMzcsIi4uLy4uL3RyYWNlcy9zY2F0dGVyL3N1YnR5cGVzIjoxMTQ0LCIuLi9jb2xvciI6NTkyLCIuLi9jb2xvcnNjYWxlIjo2MDQsIi4vc3ltYm9sX2RlZnMiOjYxNCxkMzoxNjUsImZhc3QtaXNudW1lcmljIjoyMjgsdGlueWNvbG9yMjo1MzZ9XSw2MTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKTtlLmV4cG9ydHM9e2NpcmNsZTp7bjowLGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0LDIpO3JldHVybiJNIitlKyIsMEEiK2UrIiwiK2UrIiAwIDEsMSAwLC0iK2UrIkEiK2UrIiwiK2UrIiAwIDAsMSAiK2UrIiwwWiJ9fSxzcXVhcmU6e246MSxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQodCwyKTtyZXR1cm4iTSIrZSsiLCIrZSsiSC0iK2UrIlYtIitlKyJIIitlKyJaIn19LGRpYW1vbmQ6e246MixmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMS4zKnQsMik7cmV0dXJuIk0iK2UrIiwwTDAsIitlKyJMLSIrZSsiLDBMMCwtIitlKyJaIn19LGNyb3NzOntuOjMsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKC40KnQsMikscj1uLnJvdW5kKDEuMip0LDIpO3JldHVybiJNIityKyIsIitlKyJIIitlKyJWIityKyJILSIrZSsiViIrZSsiSC0iK3IrIlYtIitlKyJILSIrZSsiVi0iK3IrIkgiK2UrIlYtIitlKyJIIityKyJaIn19LHg6e246NCxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoLjgqdC9NYXRoLnNxcnQoMiksMikscj0ibCIrZSsiLCIrZSxhPSJsIitlKyIsLSIrZSxpPSJsLSIrZSsiLC0iK2Usbz0ibC0iK2UrIiwiK2U7cmV0dXJuIk0wLCIrZStyK2EraSthK2krbytpK28rcitvK3IrIloifX0sInRyaWFuZ2xlLXVwIjp7bjo1LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCgyKnQvTWF0aC5zcXJ0KDMpLDIpO3JldHVybiJNLSIrZSsiLCIrbi5yb3VuZCh0LzIsMikrIkgiK2UrIkwwLC0iK24ucm91bmQodCwyKSsiWiJ9fSwidHJpYW5nbGUtZG93biI6e246NixmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMip0L01hdGguc3FydCgzKSwyKTtyZXR1cm4iTS0iK2UrIiwtIituLnJvdW5kKHQvMiwyKSsiSCIrZSsiTDAsIituLnJvdW5kKHQsMikrIloifX0sInRyaWFuZ2xlLWxlZnQiOntuOjcsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKDIqdC9NYXRoLnNxcnQoMyksMik7cmV0dXJuIk0iK24ucm91bmQodC8yLDIpKyIsLSIrZSsiViIrZSsiTC0iK24ucm91bmQodCwyKSsiLDBaIn19LCJ0cmlhbmdsZS1yaWdodCI6e246OCxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMip0L01hdGguc3FydCgzKSwyKTtyZXR1cm4iTS0iK24ucm91bmQodC8yLDIpKyIsLSIrZSsiViIrZSsiTCIrbi5yb3VuZCh0LDIpKyIsMFoifX0sInRyaWFuZ2xlLW5lIjp7bjo5LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCguNip0LDIpLHI9bi5yb3VuZCgxLjIqdCwyKTtyZXR1cm4iTS0iK3IrIiwtIitlKyJIIitlKyJWIityKyJaIn19LCJ0cmlhbmdsZS1zZSI6e246MTAsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKC42KnQsMikscj1uLnJvdW5kKDEuMip0LDIpO3JldHVybiJNIitlKyIsLSIrcisiViIrZSsiSC0iK3IrIloifX0sInRyaWFuZ2xlLXN3Ijp7bjoxMSxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoLjYqdCwyKSxyPW4ucm91bmQoMS4yKnQsMik7cmV0dXJuIk0iK3IrIiwiK2UrIkgtIitlKyJWLSIrcisiWiJ9fSwidHJpYW5nbGUtbnciOntuOjEyLGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCguNip0LDIpLHI9bi5yb3VuZCgxLjIqdCwyKTtyZXR1cm4iTS0iK2UrIiwiK3IrIlYtIitlKyJIIityKyJaIn19LHBlbnRhZ29uOntuOjEzLGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCguOTUxKnQsMikscj1uLnJvdW5kKC41ODgqdCwyKSxhPW4ucm91bmQoLXQsMiksaT1uLnJvdW5kKC0uMzA5KnQsMik7cmV0dXJuIk0iK2UrIiwiK2krIkwiK3IrIiwiK24ucm91bmQoLjgwOSp0LDIpKyJILSIrcisiTC0iK2UrIiwiK2krIkwwLCIrYSsiWiJ9fSxoZXhhZ29uOntuOjE0LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0LDIpLHI9bi5yb3VuZCh0LzIsMiksYT1uLnJvdW5kKHQqTWF0aC5zcXJ0KDMpLzIsMik7cmV0dXJuIk0iK2ErIiwtIityKyJWIityKyJMMCwiK2UrIkwtIithKyIsIityKyJWLSIrcisiTDAsLSIrZSsiWiJ9fSxoZXhhZ29uMjp7bjoxNSxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQodCwyKSxyPW4ucm91bmQodC8yLDIpLGE9bi5yb3VuZCh0Kk1hdGguc3FydCgzKS8yLDIpO3JldHVybiJNLSIrcisiLCIrYSsiSCIrcisiTCIrZSsiLDBMIityKyIsLSIrYSsiSC0iK3IrIkwtIitlKyIsMFoifX0sb2N0YWdvbjp7bjoxNixmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoLjkyNCp0LDIpLHI9bi5yb3VuZCguMzgzKnQsMik7cmV0dXJuIk0tIityKyIsLSIrZSsiSCIrcisiTCIrZSsiLC0iK3IrIlYiK3IrIkwiK3IrIiwiK2UrIkgtIityKyJMLSIrZSsiLCIrcisiVi0iK3IrIloifX0sc3Rhcjp7bjoxNyxmOmZ1bmN0aW9uKHQpe3ZhciBlPTEuNCp0LHI9bi5yb3VuZCguMjI1KmUsMiksYT1uLnJvdW5kKC45NTEqZSwyKSxpPW4ucm91bmQoLjM2MyplLDIpLG89bi5yb3VuZCguNTg4KmUsMikscz1uLnJvdW5kKC1lLDIpLGw9bi5yb3VuZCgtLjMwOSplLDIpLGM9bi5yb3VuZCguMTE4KmUsMiksdT1uLnJvdW5kKC44MDkqZSwyKTtyZXR1cm4iTSIrcisiLCIrbCsiSCIrYSsiTCIraSsiLCIrYysiTCIrbysiLCIrdSsiTDAsIituLnJvdW5kKC4zODIqZSwyKSsiTC0iK28rIiwiK3UrIkwtIitpKyIsIitjKyJMLSIrYSsiLCIrbCsiSC0iK3IrIkwwLCIrcysiWiJ9fSxoZXhhZ3JhbTp7bjoxOCxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoLjY2KnQsMikscj1uLnJvdW5kKC4zOCp0LDIpLGE9bi5yb3VuZCguNzYqdCwyKTtyZXR1cm4iTS0iK2ErIiwwbC0iK3IrIiwtIitlKyJoIithKyJsIityKyIsLSIrZSsibCIrcisiLCIrZSsiaCIrYSsibC0iK3IrIiwiK2UrImwiK3IrIiwiK2UrImgtIithKyJsLSIrcisiLCIrZSsibC0iK3IrIiwtIitlKyJoLSIrYSsiWiJ9fSwic3Rhci10cmlhbmdsZS11cCI6e246MTksZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKHQqTWF0aC5zcXJ0KDMpKi44LDIpLHI9bi5yb3VuZCguOCp0LDIpLGE9bi5yb3VuZCgxLjYqdCwyKSxpPW4ucm91bmQoNCp0LDIpLG89IkEgIitpKyIsIitpKyIgMCAwIDEgIjtyZXR1cm4iTS0iK2UrIiwiK3IrbytlKyIsIityK28rIjAsLSIrYStvKyItIitlKyIsIityKyJaIn19LCJzdGFyLXRyaWFuZ2xlLWRvd24iOntuOjIwLGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0Kk1hdGguc3FydCgzKSouOCwyKSxyPW4ucm91bmQoLjgqdCwyKSxhPW4ucm91bmQoMS42KnQsMiksaT1uLnJvdW5kKDQqdCwyKSxvPSJBICIraSsiLCIraSsiIDAgMCAxICI7cmV0dXJuIk0iK2UrIiwtIityK28rIi0iK2UrIiwtIityK28rIjAsIithK28rZSsiLC0iK3IrIloifX0sInN0YXItc3F1YXJlIjp7bjoyMSxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMS4xKnQsMikscj1uLnJvdW5kKDIqdCwyKSxhPSJBICIrcisiLCIrcisiIDAgMCAxICI7cmV0dXJuIk0tIitlKyIsLSIrZSthKyItIitlKyIsIitlK2ErZSsiLCIrZSthK2UrIiwtIitlK2ErIi0iK2UrIiwtIitlKyJaIn19LCJzdGFyLWRpYW1vbmQiOntuOjIyLGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCgxLjQqdCwyKSxyPW4ucm91bmQoMS45KnQsMiksYT0iQSAiK3IrIiwiK3IrIiAwIDAgMSAiO3JldHVybiJNLSIrZSsiLDAiK2ErIjAsIitlK2ErZSsiLDAiK2ErIjAsLSIrZSthKyItIitlKyIsMFoifX0sImRpYW1vbmQtdGFsbCI6e246MjMsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKC43KnQsMikscj1uLnJvdW5kKDEuNCp0LDIpO3JldHVybiJNMCwiK3IrIkwiK2UrIiwwTDAsLSIrcisiTC0iK2UrIiwwWiJ9fSwiZGlhbW9uZC13aWRlIjp7bjoyNCxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMS40KnQsMikscj1uLnJvdW5kKC43KnQsMik7cmV0dXJuIk0wLCIrcisiTCIrZSsiLDBMMCwtIityKyJMLSIrZSsiLDBaIn19LGhvdXJnbGFzczp7bjoyNSxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQodCwyKTtyZXR1cm4iTSIrZSsiLCIrZSsiSC0iK2UrIkwiK2UrIiwtIitlKyJILSIrZSsiWiJ9LG5vRG90OiEwfSxib3d0aWU6e246MjYsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKHQsMik7cmV0dXJuIk0iK2UrIiwiK2UrIlYtIitlKyJMLSIrZSsiLCIrZSsiVi0iK2UrIloifSxub0RvdDohMH0sImNpcmNsZS1jcm9zcyI6e246MjcsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKHQsMik7cmV0dXJuIk0wLCIrZSsiVi0iK2UrIk0iK2UrIiwwSC0iK2UrIk0iK2UrIiwwQSIrZSsiLCIrZSsiIDAgMSwxIDAsLSIrZSsiQSIrZSsiLCIrZSsiIDAgMCwxICIrZSsiLDBaIn0sbmVlZExpbmU6ITAsbm9Eb3Q6ITB9LCJjaXJjbGUteCI6e246MjgsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKHQsMikscj1uLnJvdW5kKHQvTWF0aC5zcXJ0KDIpLDIpO3JldHVybiJNIityKyIsIityKyJMLSIrcisiLC0iK3IrIk0iK3IrIiwtIityKyJMLSIrcisiLCIrcisiTSIrZSsiLDBBIitlKyIsIitlKyIgMCAxLDEgMCwtIitlKyJBIitlKyIsIitlKyIgMCAwLDEgIitlKyIsMFoifSxuZWVkTGluZTohMCxub0RvdDohMH0sInNxdWFyZS1jcm9zcyI6e246MjksZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKHQsMik7cmV0dXJuIk0wLCIrZSsiVi0iK2UrIk0iK2UrIiwwSC0iK2UrIk0iK2UrIiwiK2UrIkgtIitlKyJWLSIrZSsiSCIrZSsiWiJ9LG5lZWRMaW5lOiEwLG5vRG90OiEwfSwic3F1YXJlLXgiOntuOjMwLGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0LDIpO3JldHVybiJNIitlKyIsIitlKyJMLSIrZSsiLC0iK2UrIk0iK2UrIiwtIitlKyJMLSIrZSsiLCIrZSsiTSIrZSsiLCIrZSsiSC0iK2UrIlYtIitlKyJIIitlKyJaIn0sbmVlZExpbmU6ITAsbm9Eb3Q6ITB9LCJkaWFtb25kLWNyb3NzIjp7bjozMSxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMS4zKnQsMik7cmV0dXJuIk0iK2UrIiwwTDAsIitlKyJMLSIrZSsiLDBMMCwtIitlKyJaTTAsLSIrZSsiViIrZSsiTS0iK2UrIiwwSCIrZX0sbmVlZExpbmU6ITAsbm9Eb3Q6ITB9LCJkaWFtb25kLXgiOntuOjMyLGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCgxLjMqdCwyKSxyPW4ucm91bmQoLjY1KnQsMik7cmV0dXJuIk0iK2UrIiwwTDAsIitlKyJMLSIrZSsiLDBMMCwtIitlKyJaTS0iK3IrIiwtIityKyJMIityKyIsIityKyJNLSIrcisiLCIrcisiTCIrcisiLC0iK3J9LG5lZWRMaW5lOiEwLG5vRG90OiEwfSwiY3Jvc3MtdGhpbiI6e246MzMsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKDEuNCp0LDIpO3JldHVybiJNMCwiK2UrIlYtIitlKyJNIitlKyIsMEgtIitlfSxuZWVkTGluZTohMCxub0RvdDohMCxub0ZpbGw6ITB9LCJ4LXRoaW4iOntuOjM0LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0LDIpO3JldHVybiJNIitlKyIsIitlKyJMLSIrZSsiLC0iK2UrIk0iK2UrIiwtIitlKyJMLSIrZSsiLCIrZX0sbmVlZExpbmU6ITAsbm9Eb3Q6ITAsbm9GaWxsOiEwfSxhc3Rlcmlzazp7bjozNSxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMS4yKnQsMikscj1uLnJvdW5kKC44NSp0LDIpO3JldHVybiJNMCwiK2UrIlYtIitlKyJNIitlKyIsMEgtIitlKyJNIityKyIsIityKyJMLSIrcisiLC0iK3IrIk0iK3IrIiwtIityKyJMLSIrcisiLCIrcn0sbmVlZExpbmU6ITAsbm9Eb3Q6ITAsbm9GaWxsOiEwfSxoYXNoOntuOjM2LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0LzIsMikscj1uLnJvdW5kKHQsMik7cmV0dXJuIk0iK2UrIiwiK3IrIlYtIityKyJtLSIrcisiLDBWIityKyJNIityKyIsIitlKyJILSIrcisibTAsLSIrcisiSCIrcn0sbmVlZExpbmU6ITAsbm9GaWxsOiEwfSwieS11cCI6e246MzcsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKDEuMip0LDIpLHI9bi5yb3VuZCgxLjYqdCwyKSxhPW4ucm91bmQoLjgqdCwyKTtyZXR1cm4iTS0iK2UrIiwiK2ErIkwwLDBNIitlKyIsIithKyJMMCwwTTAsLSIrcisiTDAsMCJ9LG5lZWRMaW5lOiEwLG5vRG90OiEwLG5vRmlsbDohMH0sInktZG93biI6e246MzgsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKDEuMip0LDIpLHI9bi5yb3VuZCgxLjYqdCwyKSxhPW4ucm91bmQoLjgqdCwyKTtyZXR1cm4iTS0iK2UrIiwtIithKyJMMCwwTSIrZSsiLC0iK2ErIkwwLDBNMCwiK3IrIkwwLDAifSxuZWVkTGluZTohMCxub0RvdDohMCxub0ZpbGw6ITB9LCJ5LWxlZnQiOntuOjM5LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCgxLjIqdCwyKSxyPW4ucm91bmQoMS42KnQsMiksYT1uLnJvdW5kKC44KnQsMik7cmV0dXJuIk0iK2ErIiwiK2UrIkwwLDBNIithKyIsLSIrZSsiTDAsME0tIityKyIsMEwwLDAifSxuZWVkTGluZTohMCxub0RvdDohMCxub0ZpbGw6ITB9LCJ5LXJpZ2h0Ijp7bjo0MCxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMS4yKnQsMikscj1uLnJvdW5kKDEuNip0LDIpLGE9bi5yb3VuZCguOCp0LDIpO3JldHVybiJNLSIrYSsiLCIrZSsiTDAsME0tIithKyIsLSIrZSsiTDAsME0iK3IrIiwwTDAsMCJ9LG5lZWRMaW5lOiEwLG5vRG90OiEwLG5vRmlsbDohMH0sImxpbmUtZXciOntuOjQxLGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCgxLjQqdCwyKTtyZXR1cm4iTSIrZSsiLDBILSIrZX0sbmVlZExpbmU6ITAsbm9Eb3Q6ITAsbm9GaWxsOiEwfSwibGluZS1ucyI6e246NDIsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKDEuNCp0LDIpO3JldHVybiJNMCwiK2UrIlYtIitlfSxuZWVkTGluZTohMCxub0RvdDohMCxub0ZpbGw6ITB9LCJsaW5lLW5lIjp7bjo0MyxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQodCwyKTtyZXR1cm4iTSIrZSsiLC0iK2UrIkwtIitlKyIsIitlfSxuZWVkTGluZTohMCxub0RvdDohMCxub0ZpbGw6ITB9LCJsaW5lLW53Ijp7bjo0NCxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQodCwyKTtyZXR1cm4iTSIrZSsiLCIrZSsiTC0iK2UrIiwtIitlfSxuZWVkTGluZTohMCxub0RvdDohMCxub0ZpbGw6ITB9fX0se2QzOjE2NX1dLDYxNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e3Zpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGVkaXRUeXBlOiJjYWxjIn0sdHlwZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsicGVyY2VudCIsImNvbnN0YW50Iiwic3FydCIsImRhdGEiXSxlZGl0VHlwZToiY2FsYyJ9LHN5bW1ldHJpYzp7dmFsVHlwZToiYm9vbGVhbiIsZWRpdFR5cGU6ImNhbGMifSxhcnJheTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxhcnJheW1pbnVzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHZhbHVlOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MTAsZWRpdFR5cGU6ImNhbGMifSx2YWx1ZW1pbnVzOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MTAsZWRpdFR5cGU6ImNhbGMifSx0cmFjZXJlZjp7dmFsVHlwZToiaW50ZWdlciIsbWluOjAsZGZsdDowLGVkaXRUeXBlOiJzdHlsZSJ9LHRyYWNlcmVmbWludXM6e3ZhbFR5cGU6ImludGVnZXIiLG1pbjowLGRmbHQ6MCxlZGl0VHlwZToic3R5bGUifSxjb3B5X3lzdHlsZTp7dmFsVHlwZToiYm9vbGVhbiIsZWRpdFR5cGU6InBsb3QifSxjb3B5X3pzdHlsZTp7dmFsVHlwZToiYm9vbGVhbiIsZWRpdFR5cGU6InN0eWxlIn0sY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToic3R5bGUifSx0aGlja25lc3M6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoyLGVkaXRUeXBlOiJzdHlsZSJ9LHdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6ImNhbGMiLF9kZXByZWNhdGVkOntvcGFjaXR5Ont2YWxUeXBlOiJudW1iZXIiLGVkaXRUeXBlOiJzdHlsZSJ9fX19LHt9XSw2MTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxhPXQoIi4uLy4uL3JlZ2lzdHJ5IiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLG89dCgiLi4vLi4vbGliIikscz10KCIuL2NvbXB1dGVfZXJyb3IiKTtmdW5jdGlvbiBsKHQsZSxyLGEpe3ZhciBsPWVbImVycm9yXyIrYV18fHt9LGM9W107aWYobC52aXNpYmxlJiYtMSE9PVsibGluZWFyIiwibG9nIl0uaW5kZXhPZihyLnR5cGUpKXtmb3IodmFyIHU9cyhsKSxoPTA7aDx0Lmxlbmd0aDtoKyspe3ZhciBmPXRbaF0scD1mLmk7aWYodm9pZCAwPT09cClwPWg7ZWxzZSBpZihudWxsPT09cCljb250aW51ZTt2YXIgZD1mW2FdO2lmKG4oci5jMmwoZCkpKXt2YXIgZz11KGQscCk7aWYobihnWzBdKSYmbihnWzFdKSl7dmFyIHY9ZlthKyJzIl09ZC1nWzBdLG09ZlthKyJoIl09ZCtnWzFdO2MucHVzaCh2LG0pfX19dmFyIHk9ci5faWQseD1lLl9leHRyZW1lc1t5XSxiPWkuZmluZEV4dHJlbWVzKHIsYyxvLmV4dGVuZEZsYXQoe3RvemVybzp4Lm9wdHMudG96ZXJvfSx7cGFkZGVkOiEwfSkpO3gubWluPXgubWluLmNvbmNhdChiLm1pbikseC5tYXg9eC5tYXguY29uY2F0KGIubWF4KX19ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LmNhbGNkYXRhLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXSxvPW5bMF0udHJhY2U7aWYoITA9PT1vLnZpc2libGUmJmEudHJhY2VJcyhvLCJlcnJvckJhcnNPSyIpKXt2YXIgcz1pLmdldEZyb21JZCh0LG8ueGF4aXMpLGM9aS5nZXRGcm9tSWQodCxvLnlheGlzKTtsKG4sbyxzLCJ4IiksbChuLG8sYywieSIpfX19fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NzY1LCIuLi8uLi9yZWdpc3RyeSI6ODQ2LCIuL2NvbXB1dGVfZXJyb3IiOjYxNywiZmFzdC1pc251bWVyaWMiOjIyOH1dLDYxNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7cmV0dXJuInBlcmNlbnQiPT09dD9mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5hYnModCplLzEwMCl9OiJjb25zdGFudCI9PT10P2Z1bmN0aW9uKCl7cmV0dXJuIE1hdGguYWJzKGUpfToic3FydCI9PT10P2Z1bmN0aW9uKHQpe3JldHVybiBNYXRoLnNxcnQoTWF0aC5hYnModCkpfTp2b2lkIDB9ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQudHlwZSxyPXQuc3ltbWV0cmljO2lmKCJkYXRhIj09PWUpe3ZhciBhPXQuYXJyYXl8fFtdO2lmKHIpcmV0dXJuIGZ1bmN0aW9uKHQsZSl7dmFyIHI9K2FbZV07cmV0dXJuW3Iscl19O3ZhciBpPXQuYXJyYXltaW51c3x8W107cmV0dXJuIGZ1bmN0aW9uKHQsZSl7dmFyIHI9K2FbZV0sbj0raVtlXTtyZXR1cm4gaXNOYU4ocikmJmlzTmFOKG4pP1tOYU4sTmFOXTpbbnx8MCxyfHwwXX19dmFyIG89bihlLHQudmFsdWUpLHM9bihlLHQudmFsdWVtaW51cyk7cmV0dXJuIHJ8fHZvaWQgMD09PXQudmFsdWVtaW51cz9mdW5jdGlvbih0KXt2YXIgZT1vKHQpO3JldHVybltlLGVdfTpmdW5jdGlvbih0KXtyZXR1cm5bcyh0KSxvKHQpXX19fSx7fV0sNjE4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksYT10KCIuLi8uLi9yZWdpc3RyeSIpLGk9dCgiLi4vLi4vbGliIiksbz10KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIikscz10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbCl7dmFyIGM9ImVycm9yXyIrbC5heGlzLHU9by5uZXdDb250YWluZXIoZSxjKSxoPXRbY118fHt9O2Z1bmN0aW9uIGYodCxlKXtyZXR1cm4gaS5jb2VyY2UoaCx1LHMsdCxlKX1pZighMSE9PWYoInZpc2libGUiLHZvaWQgMCE9PWguYXJyYXl8fHZvaWQgMCE9PWgudmFsdWV8fCJzcXJ0Ij09PWgudHlwZSkpe3ZhciBwPWYoInR5cGUiLCJhcnJheSJpbiBoPyJkYXRhIjoicGVyY2VudCIpLGQ9ITA7InNxcnQiIT09cCYmKGQ9Zigic3ltbWV0cmljIiwhKCgiZGF0YSI9PT1wPyJhcnJheW1pbnVzIjoidmFsdWVtaW51cyIpaW4gaCkpKSwiZGF0YSI9PT1wPyhmKCJhcnJheSIpLGYoInRyYWNlcmVmIiksZHx8KGYoImFycmF5bWludXMiKSxmKCJ0cmFjZXJlZm1pbnVzIikpKToicGVyY2VudCIhPT1wJiYiY29uc3RhbnQiIT09cHx8KGYoInZhbHVlIiksZHx8ZigidmFsdWVtaW51cyIpKTt2YXIgZz0iY29weV8iK2wuaW5oZXJpdCsic3R5bGUiO2lmKGwuaW5oZXJpdCkoZVsiZXJyb3JfIitsLmluaGVyaXRdfHx7fSkudmlzaWJsZSYmZihnLCEoaC5jb2xvcnx8bihoLnRoaWNrbmVzcyl8fG4oaC53aWR0aCkpKTtsLmluaGVyaXQmJnVbZ118fChmKCJjb2xvciIsciksZigidGhpY2tuZXNzIiksZigid2lkdGgiLGEudHJhY2VJcyhlLCJnbDNkIik/MDo0KSl9fX0seyIuLi8uLi9saWIiOjcxNywiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NzU1LCIuLi8uLi9yZWdpc3RyeSI6ODQ2LCIuL2F0dHJpYnV0ZXMiOjYxNSwiZmFzdC1pc251bWVyaWMiOjIyOH1dLDYxOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbCxpPXQoIi4vYXR0cmlidXRlcyIpLG89e2Vycm9yX3g6bi5leHRlbmRGbGF0KHt9LGkpLGVycm9yX3k6bi5leHRlbmRGbGF0KHt9LGkpfTtkZWxldGUgby5lcnJvcl94LmNvcHlfenN0eWxlLGRlbGV0ZSBvLmVycm9yX3kuY29weV96c3R5bGUsZGVsZXRlIG8uZXJyb3JfeS5jb3B5X3lzdHlsZTt2YXIgcz17ZXJyb3JfeDpuLmV4dGVuZEZsYXQoe30saSksZXJyb3JfeTpuLmV4dGVuZEZsYXQoe30saSksZXJyb3JfejpuLmV4dGVuZEZsYXQoe30saSl9O2RlbGV0ZSBzLmVycm9yX3guY29weV95c3R5bGUsZGVsZXRlIHMuZXJyb3JfeS5jb3B5X3lzdHlsZSxkZWxldGUgcy5lcnJvcl96LmNvcHlfeXN0eWxlLGRlbGV0ZSBzLmVycm9yX3ouY29weV96c3R5bGUsZS5leHBvcnRzPXttb2R1bGVUeXBlOiJjb21wb25lbnQiLG5hbWU6ImVycm9yYmFycyIsc2NoZW1hOnt0cmFjZXM6e3NjYXR0ZXI6byxiYXI6byxoaXN0b2dyYW06byxzY2F0dGVyM2Q6YShzLCJjYWxjIiwibmVzdGVkIiksc2NhdHRlcmdsOmEobywiY2FsYyIsIm5lc3RlZCIpfX0sc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNhbGM6dCgiLi9jYWxjIiksbWFrZUNvbXB1dGVFcnJvcjp0KCIuL2NvbXB1dGVfZXJyb3IiKSxwbG90OnQoIi4vcGxvdCIpLHN0eWxlOnQoIi4vc3R5bGUiKSxob3ZlckluZm86ZnVuY3Rpb24odCxlLHIpeyhlLmVycm9yX3l8fHt9KS52aXNpYmxlJiYoci55ZXJyPXQueWgtdC55LGUuZXJyb3JfeS5zeW1tZXRyaWN8fChyLnllcnJuZWc9dC55LXQueXMpKTsoZS5lcnJvcl94fHx7fSkudmlzaWJsZSYmKHIueGVycj10LnhoLXQueCxlLmVycm9yX3guc3ltbWV0cmljfHwoci54ZXJybmVnPXQueC10LnhzKSl9fX0seyIuLi8uLi9saWIiOjcxNywiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyI6NzQ4LCIuL2F0dHJpYnV0ZXMiOjYxNSwiLi9jYWxjIjo2MTYsIi4vY29tcHV0ZV9lcnJvciI6NjE3LCIuL2RlZmF1bHRzIjo2MTgsIi4vcGxvdCI6NjIwLCIuL3N0eWxlIjo2MjF9XSw2MjA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxhPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuLi9kcmF3aW5nIiksbz10KCIuLi8uLi90cmFjZXMvc2NhdHRlci9zdWJ0eXBlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixzKXt2YXIgbD1yLnhheGlzLGM9ci55YXhpcyx1PXMmJnMuZHVyYXRpb24+MDtlLmVhY2goZnVuY3Rpb24oZSl7dmFyIGgsZj1lWzBdLnRyYWNlLHA9Zi5lcnJvcl94fHx7fSxkPWYuZXJyb3JfeXx8e307Zi5pZHMmJihoPWZ1bmN0aW9uKHQpe3JldHVybiB0LmlkfSk7dmFyIGc9by5oYXNNYXJrZXJzKGYpJiZmLm1hcmtlci5tYXhkaXNwbGF5ZWQ+MDtkLnZpc2libGV8fHAudmlzaWJsZXx8KGU9W10pO3ZhciB2PW4uc2VsZWN0KHRoaXMpLnNlbGVjdEFsbCgiZy5lcnJvcmJhciIpLmRhdGEoZSxoKTtpZih2LmV4aXQoKS5yZW1vdmUoKSxlLmxlbmd0aCl7cC52aXNpYmxlfHx2LnNlbGVjdEFsbCgicGF0aC54ZXJyb3IiKS5yZW1vdmUoKSxkLnZpc2libGV8fHYuc2VsZWN0QWxsKCJwYXRoLnllcnJvciIpLnJlbW92ZSgpLHYuc3R5bGUoIm9wYWNpdHkiLDEpO3ZhciBtPXYuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJlcnJvcmJhciIsITApO3UmJm0uc3R5bGUoIm9wYWNpdHkiLDApLnRyYW5zaXRpb24oKS5kdXJhdGlvbihzLmR1cmF0aW9uKS5zdHlsZSgib3BhY2l0eSIsMSksaS5zZXRDbGlwVXJsKHYsci5sYXllckNsaXBJZCx0KSx2LmVhY2goZnVuY3Rpb24odCl7dmFyIGU9bi5zZWxlY3QodGhpcykscj1mdW5jdGlvbih0LGUscil7dmFyIG49e3g6ZS5jMnAodC54KSx5OnIuYzJwKHQueSl9O3ZvaWQgMCE9PXQueWgmJihuLnloPXIuYzJwKHQueWgpLG4ueXM9ci5jMnAodC55cyksYShuLnlzKXx8KG4ubm9ZUz0hMCxuLnlzPXIuYzJwKHQueXMsITApKSk7dm9pZCAwIT09dC54aCYmKG4ueGg9ZS5jMnAodC54aCksbi54cz1lLmMycCh0LnhzKSxhKG4ueHMpfHwobi5ub1hTPSEwLG4ueHM9ZS5jMnAodC54cywhMCkpKTtyZXR1cm4gbn0odCxsLGMpO2lmKCFnfHx0LnZpcyl7dmFyIGksbz1lLnNlbGVjdCgicGF0aC55ZXJyb3IiKTtpZihkLnZpc2libGUmJmEoci54KSYmYShyLnloKSYmYShyLnlzKSl7dmFyIGg9ZC53aWR0aDtpPSJNIisoci54LWgpKyIsIityLnloKyJoIisyKmgrIm0tIitoKyIsMFYiK3IueXMsci5ub1lTfHwoaSs9Im0tIitoKyIsMGgiKzIqaCksIW8uc2l6ZSgpP289ZS5hcHBlbmQoInBhdGgiKS5zdHlsZSgidmVjdG9yLWVmZmVjdCIsIm5vbi1zY2FsaW5nLXN0cm9rZSIpLmNsYXNzZWQoInllcnJvciIsITApOnUmJihvPW8udHJhbnNpdGlvbigpLmR1cmF0aW9uKHMuZHVyYXRpb24pLmVhc2Uocy5lYXNpbmcpKSxvLmF0dHIoImQiLGkpfWVsc2Ugby5yZW1vdmUoKTt2YXIgZj1lLnNlbGVjdCgicGF0aC54ZXJyb3IiKTtpZihwLnZpc2libGUmJmEoci55KSYmYShyLnhoKSYmYShyLnhzKSl7dmFyIHY9KHAuY29weV95c3R5bGU/ZDpwKS53aWR0aDtpPSJNIityLnhoKyIsIisoci55LXYpKyJ2IisyKnYrIm0wLC0iK3YrIkgiK3IueHMsci5ub1hTfHwoaSs9Im0wLC0iK3YrInYiKzIqdiksIWYuc2l6ZSgpP2Y9ZS5hcHBlbmQoInBhdGgiKS5zdHlsZSgidmVjdG9yLWVmZmVjdCIsIm5vbi1zY2FsaW5nLXN0cm9rZSIpLmNsYXNzZWQoInhlcnJvciIsITApOnUmJihmPWYudHJhbnNpdGlvbigpLmR1cmF0aW9uKHMuZHVyYXRpb24pLmVhc2Uocy5lYXNpbmcpKSxmLmF0dHIoImQiLGkpfWVsc2UgZi5yZW1vdmUoKX19KX19KX19LHsiLi4vLi4vdHJhY2VzL3NjYXR0ZXIvc3VidHlwZXMiOjExNDQsIi4uL2RyYXdpbmciOjYxMyxkMzoxNjUsImZhc3QtaXNudW1lcmljIjoyMjh9XSw2MjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxhPXQoIi4uL2NvbG9yIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3QuZWFjaChmdW5jdGlvbih0KXt2YXIgZT10WzBdLnRyYWNlLHI9ZS5lcnJvcl95fHx7fSxpPWUuZXJyb3JfeHx8e30sbz1uLnNlbGVjdCh0aGlzKTtvLnNlbGVjdEFsbCgicGF0aC55ZXJyb3IiKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixyLnRoaWNrbmVzcysicHgiKS5jYWxsKGEuc3Ryb2tlLHIuY29sb3IpLGkuY29weV95c3R5bGUmJihpPXIpLG8uc2VsZWN0QWxsKCJwYXRoLnhlcnJvciIpLnN0eWxlKCJzdHJva2Utd2lkdGgiLGkudGhpY2tuZXNzKyJweCIpLmNhbGwoYS5zdHJva2UsaS5jb2xvcil9KX19LHsiLi4vY29sb3IiOjU5MixkMzoxNjV9XSw2MjI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIiksYT10KCIuL2xheW91dF9hdHRyaWJ1dGVzIikuaG92ZXJsYWJlbCxpPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0O2UuZXhwb3J0cz17aG92ZXJsYWJlbDp7Ymdjb2xvcjppKHt9LGEuYmdjb2xvcix7YXJyYXlPazohMH0pLGJvcmRlcmNvbG9yOmkoe30sYS5ib3JkZXJjb2xvcix7YXJyYXlPazohMH0pLGZvbnQ6bih7YXJyYXlPazohMCxlZGl0VHlwZToibm9uZSJ9KSxhbGlnbjppKHt9LGEuYWxpZ24se2FycmF5T2s6ITB9KSxuYW1lbGVuZ3RoOmkoe30sYS5uYW1lbGVuZ3RoLHthcnJheU9rOiEwfSksZWRpdFR5cGU6Im5vbmUifX19LHsiLi4vLi4vbGliL2V4dGVuZCI6NzA4LCIuLi8uLi9wbG90cy9mb250X2F0dHJpYnV0ZXMiOjc5MSwiLi9sYXlvdXRfYXR0cmlidXRlcyI6NjMxfV0sNjIzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vcmVnaXN0cnkiKTtmdW5jdGlvbiBpKHQsZSxyLGEpe2E9YXx8bi5pZGVudGl0eSxBcnJheS5pc0FycmF5KHQpJiYoZVswXVtyXT1hKHQpKX1lLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5jYWxjZGF0YSxyPXQuX2Z1bGxMYXlvdXQ7ZnVuY3Rpb24gbyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIG4uY29lcmNlSG92ZXJpbmZvKHtob3ZlcmluZm86ZX0se19tb2R1bGU6dC5fbW9kdWxlfSxyKX19Zm9yKHZhciBzPTA7czxlLmxlbmd0aDtzKyspe3ZhciBsPWVbc10sYz1sWzBdLnRyYWNlO2lmKCFhLnRyYWNlSXMoYywicGllLWxpa2UiKSl7dmFyIHU9YS50cmFjZUlzKGMsIjJkTWFwIik/aTpuLmZpbGxBcnJheTt1KGMuaG92ZXJpbmZvLGwsImhpIixvKGMpKSxjLmhvdmVydGVtcGxhdGUmJnUoYy5ob3ZlcnRlbXBsYXRlLGwsImh0IiksYy5ob3ZlcmxhYmVsJiYodShjLmhvdmVybGFiZWwuYmdjb2xvcixsLCJoYmciKSx1KGMuaG92ZXJsYWJlbC5ib3JkZXJjb2xvcixsLCJoYmMiKSx1KGMuaG92ZXJsYWJlbC5mb250LnNpemUsbCwiaHRzIiksdShjLmhvdmVybGFiZWwuZm9udC5jb2xvcixsLCJodGMiKSx1KGMuaG92ZXJsYWJlbC5mb250LmZhbWlseSxsLCJodGYiKSx1KGMuaG92ZXJsYWJlbC5uYW1lbGVuZ3RoLGwsImhubCIpLHUoYy5ob3ZlcmxhYmVsLmFsaWduLGwsImh0YSIpKX19fX0seyIuLi8uLi9saWIiOjcxNywiLi4vLi4vcmVnaXN0cnkiOjg0Nn1dLDYyNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9yZWdpc3RyeSIpLGE9dCgiLi9ob3ZlciIpLmhvdmVyO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGk9bi5nZXRDb21wb25lbnRNZXRob2QoImFubm90YXRpb25zIiwib25DbGljayIpKHQsdC5faG92ZXJkYXRhKTtmdW5jdGlvbiBvKCl7dC5lbWl0KCJwbG90bHlfY2xpY2siLHtwb2ludHM6dC5faG92ZXJkYXRhLGV2ZW50OmV9KX12b2lkIDAhPT1yJiZhKHQsZSxyLCEwKSx0Ll9ob3ZlcmRhdGEmJmUmJmUudGFyZ2V0JiYoaSYmaS50aGVuP2kudGhlbihvKTpvKCksZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24mJmUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCkpfX0seyIuLi8uLi9yZWdpc3RyeSI6ODQ2LCIuL2hvdmVyIjo2Mjh9XSw2MjU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtZQU5HTEU6NjAsSE9WRVJBUlJPV1NJWkU6NixIT1ZFUlRFWFRQQUQ6MyxIT1ZFUkZPTlRTSVpFOjEzLEhPVkVSRk9OVDoiQXJpYWwsIHNhbnMtc2VyaWYiLEhPVkVSTUlOVElNRTo1MCxIT1ZFUklEOiItaG92ZXIifX0se31dLDYyNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4vYXR0cmlidXRlcyIpLGk9dCgiLi9ob3ZlcmxhYmVsX2RlZmF1bHRzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8pe3ZhciBzPW4uZXh0ZW5kRmxhdCh7fSxvLmhvdmVybGFiZWwpO2UuaG92ZXJ0ZW1wbGF0ZSYmKHMubmFtZWxlbmd0aD0tMSksaSh0LGUsZnVuY3Rpb24ocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGEscixpKX0scyl9fSx7Ii4uLy4uL2xpYiI6NzE3LCIuL2F0dHJpYnV0ZXMiOjYyMiwiLi9ob3ZlcmxhYmVsX2RlZmF1bHRzIjo2Mjl9XSw2Mjc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIik7ci5nZXRTdWJwbG90PWZ1bmN0aW9uKHQpe3JldHVybiB0LnN1YnBsb3R8fHQueGF4aXMrdC55YXhpc3x8dC5nZW99LHIuaXNUcmFjZUluU3VicGxvdHM9ZnVuY3Rpb24odCxlKXtpZigic3Bsb20iPT09dC50eXBlKXtmb3IodmFyIG49dC54YXhlc3x8W10sYT10LnlheGVzfHxbXSxpPTA7aTxuLmxlbmd0aDtpKyspZm9yKHZhciBvPTA7bzxhLmxlbmd0aDtvKyspaWYoLTEhPT1lLmluZGV4T2YobltpXSthW29dKSlyZXR1cm4hMDtyZXR1cm4hMX1yZXR1cm4tMSE9PWUuaW5kZXhPZihyLmdldFN1YnBsb3QodCkpfSxyLmZsYXQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9bmV3IEFycmF5KHQubGVuZ3RoKSxuPTA7bjx0Lmxlbmd0aDtuKyspcltuXT1lO3JldHVybiByfSxyLnAyYz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1uZXcgQXJyYXkodC5sZW5ndGgpLG49MDtuPHQubGVuZ3RoO24rKylyW25dPXRbbl0ucDJjKGUpO3JldHVybiByfSxyLmdldERpc3RhbmNlRnVuY3Rpb249ZnVuY3Rpb24odCxlLG4sYSl7cmV0dXJuImNsb3Nlc3QiPT09dD9hfHxyLnF1YWRyYXR1cmUoZSxuKToieCI9PT10P2U6bn0sci5nZXRDbG9zZXN0PWZ1bmN0aW9uKHQsZSxyKXtpZighMSE9PXIuaW5kZXgpci5pbmRleD49MCYmci5pbmRleDx0Lmxlbmd0aD9yLmRpc3RhbmNlPTA6ci5pbmRleD0hMTtlbHNlIGZvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgYT1lKHRbbl0pO2E8PXIuZGlzdGFuY2UmJihyLmluZGV4PW4sci5kaXN0YW5jZT1hKX1yZXR1cm4gcn0sci5pbmJveD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQqZTwwfHwwPT09dD9yOjEvMH0sci5xdWFkcmF0dXJlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHIpe3ZhciBuPXQociksYT1lKHIpO3JldHVybiBNYXRoLnNxcnQobipuK2EqYSl9fSxyLm1ha2VFdmVudERhdGE9ZnVuY3Rpb24odCxlLG4pe3ZhciBhPSJpbmRleCJpbiB0P3QuaW5kZXg6dC5wb2ludE51bWJlcixpPXtkYXRhOmUuX2lucHV0LGZ1bGxEYXRhOmUsY3VydmVOdW1iZXI6ZS5pbmRleCxwb2ludE51bWJlcjphfTtpZihlLl9pbmRleFRvUG9pbnRzKXt2YXIgbz1lLl9pbmRleFRvUG9pbnRzW2FdOzE9PT1vLmxlbmd0aD9pLnBvaW50SW5kZXg9b1swXTppLnBvaW50SW5kaWNlcz1vfWVsc2UgaS5wb2ludEluZGV4PWE7cmV0dXJuIGUuX21vZHVsZS5ldmVudERhdGE/aT1lLl9tb2R1bGUuZXZlbnREYXRhKGksdCxlLG4sYSk6KCJ4VmFsImluIHQ/aS54PXQueFZhbDoieCJpbiB0JiYoaS54PXQueCksInlWYWwiaW4gdD9pLnk9dC55VmFsOiJ5ImluIHQmJihpLnk9dC55KSx0LnhhJiYoaS54YXhpcz10LnhhKSx0LnlhJiYoaS55YXhpcz10LnlhKSx2b2lkIDAhPT10LnpMYWJlbFZhbCYmKGkuej10LnpMYWJlbFZhbCkpLHIuYXBwZW5kQXJyYXlQb2ludFZhbHVlKGksZSxhKSxpfSxyLmFwcGVuZEFycmF5UG9pbnRWYWx1ZT1mdW5jdGlvbih0LGUscil7dmFyIGE9ZS5fYXJyYXlBdHRycztpZihhKWZvcih2YXIgcz0wO3M8YS5sZW5ndGg7cysrKXt2YXIgbD1hW3NdLGM9aShsKTtpZih2b2lkIDA9PT10W2NdKXt2YXIgdT1vKG4ubmVzdGVkUHJvcGVydHkoZSxsKS5nZXQoKSxyKTt2b2lkIDAhPT11JiYodFtjXT11KX19fSxyLmFwcGVuZEFycmF5TXVsdGlQb2ludFZhbHVlcz1mdW5jdGlvbih0LGUscil7dmFyIGE9ZS5fYXJyYXlBdHRycztpZihhKWZvcih2YXIgcz0wO3M8YS5sZW5ndGg7cysrKXt2YXIgbD1hW3NdLGM9aShsKTtpZih2b2lkIDA9PT10W2NdKXtmb3IodmFyIHU9bi5uZXN0ZWRQcm9wZXJ0eShlLGwpLmdldCgpLGg9bmV3IEFycmF5KHIubGVuZ3RoKSxmPTA7ZjxyLmxlbmd0aDtmKyspaFtmXT1vKHUscltmXSk7dFtjXT1ofX19O3ZhciBhPXtpZHM6ImlkIixsb2NhdGlvbnM6ImxvY2F0aW9uIixsYWJlbHM6ImxhYmVsIix2YWx1ZXM6InZhbHVlIiwibWFya2VyLmNvbG9ycyI6ImNvbG9yIixwYXJlbnRzOiJwYXJlbnQifTtmdW5jdGlvbiBpKHQpe3JldHVybiBhW3RdfHx0fWZ1bmN0aW9uIG8odCxlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9BcnJheS5pc0FycmF5KHQpJiZBcnJheS5pc0FycmF5KHRbZVswXV0pP3RbZVswXV1bZVsxXV06dm9pZCAwOnRbZV19fSx7Ii4uLy4uL2xpYiI6NzE3fV0sNjI4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksYT10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgidGlueWNvbG9yMiIpLG89dCgiLi4vLi4vbGliIikscz10KCIuLi8uLi9saWIvZXZlbnRzIiksbD10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSxjPXQoIi4uLy4uL2xpYi9vdmVycmlkZV9jdXJzb3IiKSx1PXQoIi4uL2RyYXdpbmciKSxoPXQoIi4uL2NvbG9yIiksZj10KCIuLi9kcmFnZWxlbWVudCIpLHA9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxkPXQoIi4uLy4uL3JlZ2lzdHJ5IiksZz10KCIuL2hlbHBlcnMiKSx2PXQoIi4vY29uc3RhbnRzIiksbT12LllBTkdMRSx5PU1hdGguUEkqbS8xODAseD0xL01hdGguc2luKHkpLGI9TWF0aC5jb3MoeSksXz1NYXRoLnNpbih5KSx3PXYuSE9WRVJBUlJPV1NJWkUsaz12LkhPVkVSVEVYVFBBRDtyLmhvdmVyPWZ1bmN0aW9uKHQsZSxyLGkpe3Q9by5nZXRHcmFwaERpdih0KSxvLnRocm90dGxlKHQuX2Z1bGxMYXlvdXQuX3VpZCt2LkhPVkVSSUQsdi5IT1ZFUk1JTlRJTUUsZnVuY3Rpb24oKXshZnVuY3Rpb24odCxlLHIsaSl7cnx8KHI9Inh5Iik7dmFyIGw9QXJyYXkuaXNBcnJheShyKT9yOltyXSx1PXQuX2Z1bGxMYXlvdXQscD11Ll9wbG90c3x8W10sdj1wW3JdLG09dS5faGFzKCJjYXJ0ZXNpYW4iKTtpZih2KXt2YXIgeT12Lm92ZXJsYXlzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZH0pO2w9bC5jb25jYXQoeSl9Zm9yKHZhciBiPWwubGVuZ3RoLF89bmV3IEFycmF5KGIpLHc9bmV3IEFycmF5KGIpLGs9ITEsVD0wO1Q8YjtUKyspe3ZhciBDPWxbVF07aWYocFtDXSlrPSEwLF9bVF09cFtDXS54YXhpcyx3W1RdPXBbQ10ueWF4aXM7ZWxzZXtpZighdVtDXXx8IXVbQ10uX3N1YnBsb3QpcmV0dXJuIHZvaWQgby53YXJuKCJVbnJlY29nbml6ZWQgc3VicGxvdDogIitDKTt2YXIgUD11W0NdLl9zdWJwbG90O19bVF09UC54YXhpcyx3W1RdPVAueWF4aXN9fXZhciBPPWUuaG92ZXJtb2RlfHx1LmhvdmVybW9kZTtPJiYhayYmKE89ImNsb3Nlc3QiKTtpZigtMT09PVsieCIsInkiLCJjbG9zZXN0Il0uaW5kZXhPZihPKXx8IXQuY2FsY2RhdGF8fHQucXVlcnlTZWxlY3RvcigiLnpvb21ib3giKXx8dC5fZHJhZ2dpbmcpcmV0dXJuIGYudW5ob3ZlclJhdyh0LGUpO3ZhciB6LEksRCxSLEYsQixOLGosVixVLHEsSCxHLFk9LTE9PT11LmhvdmVyZGlzdGFuY2U/MS8wOnUuaG92ZXJkaXN0YW5jZSxXPS0xPT09dS5zcGlrZWRpc3RhbmNlPzEvMDp1LnNwaWtlZGlzdGFuY2UsWD1bXSxaPVtdLEo9e2hMaW5lUG9pbnQ6bnVsbCx2TGluZVBvaW50Om51bGx9LEs9ITE7aWYoQXJyYXkuaXNBcnJheShlKSlmb3IoTz0iYXJyYXkiLEQ9MDtEPGUubGVuZ3RoO0QrKykoRj10LmNhbGNkYXRhW2VbRF0uY3VydmVOdW1iZXJ8fDBdKSYmKEI9RlswXS50cmFjZSwic2tpcCIhPT1GWzBdLnRyYWNlLmhvdmVyaW5mbyYmKFoucHVzaChGKSwiaCI9PT1CLm9yaWVudGF0aW9uJiYoSz0hMCkpKTtlbHNle2ZvcihSPTA7Ujx0LmNhbGNkYXRhLmxlbmd0aDtSKyspRj10LmNhbGNkYXRhW1JdLCJza2lwIiE9PShCPUZbMF0udHJhY2UpLmhvdmVyaW5mbyYmZy5pc1RyYWNlSW5TdWJwbG90cyhCLGwpJiYoWi5wdXNoKEYpLCJoIj09PUIub3JpZW50YXRpb24mJihLPSEwKSk7dmFyIFEsJCx0dD0hZS50YXJnZXQ7aWYodHQpUT0ieHB4ImluIGU/ZS54cHg6X1swXS5fbGVuZ3RoLzIsJD0ieXB4ImluIGU/ZS55cHg6d1swXS5fbGVuZ3RoLzI7ZWxzZXtpZighMT09PXMudHJpZ2dlckhhbmRsZXIodCwicGxvdGx5X2JlZm9yZWhvdmVyIixlKSlyZXR1cm47dmFyIGV0PWUudGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKFE9ZS5jbGllbnRYLWV0LmxlZnQsJD1lLmNsaWVudFktZXQudG9wLFE8MHx8UT5fWzBdLl9sZW5ndGh8fCQ8MHx8JD53WzBdLl9sZW5ndGgpcmV0dXJuIGYudW5ob3ZlclJhdyh0LGUpfWlmKGUucG9pbnRlclg9UStfWzBdLl9vZmZzZXQsZS5wb2ludGVyWT0kK3dbMF0uX29mZnNldCx6PSJ4dmFsImluIGU/Zy5mbGF0KGwsZS54dmFsKTpnLnAyYyhfLFEpLEk9Inl2YWwiaW4gZT9nLmZsYXQobCxlLnl2YWwpOmcucDJjKHcsJCksIWEoelswXSl8fCFhKElbMF0pKXJldHVybiBvLndhcm4oIkZ4LmhvdmVyIGZhaWxlZCIsZSx0KSxmLnVuaG92ZXJSYXcodCxlKX12YXIgcnQ9MS8wO2ZvcihSPTA7UjxaLmxlbmd0aDtSKyspaWYoKEY9WltSXSkmJkZbMF0mJkZbMF0udHJhY2UmJiEwPT09KEI9RlswXS50cmFjZSkudmlzaWJsZSYmMCE9PUIuX2xlbmd0aCYmLTE9PT1bImNhcnBldCIsImNvbnRvdXJjYXJwZXQiXS5pbmRleE9mKEIuX21vZHVsZS5uYW1lKSl7aWYoInNwbG9tIj09PUIudHlwZT9OPWxbaj0wXTooTj1nLmdldFN1YnBsb3QoQiksaj1sLmluZGV4T2YoTikpLFY9TyxIPXtjZDpGLHRyYWNlOkIseGE6X1tqXSx5YTp3W2pdLG1heEhvdmVyRGlzdGFuY2U6WSxtYXhTcGlrZURpc3RhbmNlOlcsaW5kZXg6ITEsZGlzdGFuY2U6TWF0aC5taW4ocnQsWSksc3Bpa2VEaXN0YW5jZToxLzAseFNwaWtlOnZvaWQgMCx5U3Bpa2U6dm9pZCAwLGNvbG9yOmguZGVmYXVsdExpbmUsbmFtZTpCLm5hbWUseDA6dm9pZCAwLHgxOnZvaWQgMCx5MDp2b2lkIDAseTE6dm9pZCAwLHhMYWJlbFZhbDp2b2lkIDAseUxhYmVsVmFsOnZvaWQgMCx6TGFiZWxWYWw6dm9pZCAwLHRleHQ6dm9pZCAwfSx1W05dJiYoSC5zdWJwbG90PXVbTl0uX3N1YnBsb3QpLHUuX3NwbG9tU2NlbmVzJiZ1Ll9zcGxvbVNjZW5lc1tCLnVpZF0mJihILnNjZW5lPXUuX3NwbG9tU2NlbmVzW0IudWlkXSksRz1YLmxlbmd0aCwiYXJyYXkiPT09Vil7dmFyIG50PWVbUl07InBvaW50TnVtYmVyImluIG50PyhILmluZGV4PW50LnBvaW50TnVtYmVyLFY9ImNsb3Nlc3QiKTooVj0iIiwieHZhbCJpbiBudCYmKFU9bnQueHZhbCxWPSJ4IiksInl2YWwiaW4gbnQmJihxPW50Lnl2YWwsVj1WPyJjbG9zZXN0IjoieSIpKX1lbHNlIFU9eltqXSxxPUlbal07aWYoMCE9PVkpaWYoQi5fbW9kdWxlJiZCLl9tb2R1bGUuaG92ZXJQb2ludHMpe3ZhciBhdD1CLl9tb2R1bGUuaG92ZXJQb2ludHMoSCxVLHEsVix1Ll9ob3ZlcmxheWVyKTtpZihhdClmb3IodmFyIGl0LG90PTA7b3Q8YXQubGVuZ3RoO290KyspaXQ9YXRbb3RdLGEoaXQueDApJiZhKGl0LnkwKSYmWC5wdXNoKFMoaXQsTykpfWVsc2Ugby5sb2coIlVucmVjb2duaXplZCB0cmFjZSB0eXBlIGluIGhvdmVyOiIsQik7aWYoImNsb3Nlc3QiPT09TyYmWC5sZW5ndGg+RyYmKFguc3BsaWNlKDAsRykscnQ9WFswXS5kaXN0YW5jZSksbSYmMCE9PVcmJjA9PT1YLmxlbmd0aCl7SC5kaXN0YW5jZT1XLEguaW5kZXg9ITE7dmFyIHN0PUIuX21vZHVsZS5ob3ZlclBvaW50cyhILFUscSwiY2xvc2VzdCIsdS5faG92ZXJsYXllcik7aWYoc3QmJihzdD1zdC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQuc3Bpa2VEaXN0YW5jZTw9V30pKSxzdCYmc3QubGVuZ3RoKXt2YXIgbHQsY3Q9c3QuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0LnhhLnNob3dzcGlrZXN9KTtpZihjdC5sZW5ndGgpe3ZhciB1dD1jdFswXTthKHV0LngwKSYmYSh1dC55MCkmJihsdD1kdCh1dCksKCFKLnZMaW5lUG9pbnR8fEoudkxpbmVQb2ludC5zcGlrZURpc3RhbmNlPmx0LnNwaWtlRGlzdGFuY2UpJiYoSi52TGluZVBvaW50PWx0KSl9dmFyIGh0PXN0LmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC55YS5zaG93c3Bpa2VzfSk7aWYoaHQubGVuZ3RoKXt2YXIgZnQ9aHRbMF07YShmdC54MCkmJmEoZnQueTApJiYobHQ9ZHQoZnQpLCghSi5oTGluZVBvaW50fHxKLmhMaW5lUG9pbnQuc3Bpa2VEaXN0YW5jZT5sdC5zcGlrZURpc3RhbmNlKSYmKEouaExpbmVQb2ludD1sdCkpfX19fWZ1bmN0aW9uIHB0KHQsZSl7Zm9yKHZhciByLG49bnVsbCxhPTEvMCxpPTA7aTx0Lmxlbmd0aDtpKyspKHI9dFtpXS5zcGlrZURpc3RhbmNlKTxhJiZyPD1lJiYobj10W2ldLGE9cik7cmV0dXJuIG59ZnVuY3Rpb24gZHQodCl7cmV0dXJuIHQ/e3hhOnQueGEseWE6dC55YSx4OnZvaWQgMCE9PXQueFNwaWtlP3QueFNwaWtlOih0LngwK3QueDEpLzIseTp2b2lkIDAhPT10LnlTcGlrZT90LnlTcGlrZToodC55MCt0LnkxKS8yLGRpc3RhbmNlOnQuZGlzdGFuY2Usc3Bpa2VEaXN0YW5jZTp0LnNwaWtlRGlzdGFuY2UsY3VydmVOdW1iZXI6dC50cmFjZS5pbmRleCxjb2xvcjp0LmNvbG9yLHBvaW50TnVtYmVyOnQuaW5kZXh9Om51bGx9dmFyIGd0PXtmdWxsTGF5b3V0OnUsY29udGFpbmVyOnUuX2hvdmVybGF5ZXIsb3V0ZXJDb250YWluZXI6dS5fcGFwZXJkaXYsZXZlbnQ6ZX0sdnQ9dC5fc3Bpa2Vwb2ludHMsbXQ9e3ZMaW5lUG9pbnQ6Si52TGluZVBvaW50LGhMaW5lUG9pbnQ6Si5oTGluZVBvaW50fTtpZih0Ll9zcGlrZXBvaW50cz1tdCxtJiYwIT09VyYmMCE9PVgubGVuZ3RoKXt2YXIgeXQ9WC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQueWEuc2hvd3NwaWtlc30pLHh0PXB0KHl0LFcpO0ouaExpbmVQb2ludD1kdCh4dCk7dmFyIGJ0PVguZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0LnhhLnNob3dzcGlrZXN9KSxfdD1wdChidCxXKTtKLnZMaW5lUG9pbnQ9ZHQoX3QpfWlmKDA9PT1YLmxlbmd0aCl7dmFyIHd0PWYudW5ob3ZlclJhdyh0LGUpO3JldHVybiFtfHxudWxsPT09Si5oTGluZVBvaW50JiZudWxsPT09Si52TGluZVBvaW50fHxMKHZ0KSYmRSh0LEosZ3QpLHd0fW0mJkwodnQpJiZFKHQsSixndCk7WC5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuZGlzdGFuY2UtZS5kaXN0YW5jZX0pO3ZhciBrdD10Ll9ob3ZlcmRhdGEsVHQ9W107Zm9yKEQ9MDtEPFgubGVuZ3RoO0QrKyl7dmFyIE10PVhbRF0sQXQ9Zy5tYWtlRXZlbnREYXRhKE10LE10LnRyYWNlLE10LmNkKTtpZighMSE9PU10LmhvdmVydGVtcGxhdGUpe3ZhciBTdD0hMTtNdC5jZFtNdC5pbmRleF0mJk10LmNkW010LmluZGV4XS5odCYmKFN0PU10LmNkW010LmluZGV4XS5odCksTXQuaG92ZXJ0ZW1wbGF0ZT1TdHx8TXQudHJhY2UuaG92ZXJ0ZW1wbGF0ZXx8ITF9TXQuZXZlbnREYXRhPVtBdF0sVHQucHVzaChBdCl9dC5faG92ZXJkYXRhPVR0O3ZhciBFdD0ieSI9PT1PJiYoWi5sZW5ndGg+MXx8WC5sZW5ndGg+MSl8fCJjbG9zZXN0Ij09PU8mJksmJlgubGVuZ3RoPjEsTHQ9aC5jb21iaW5lKHUucGxvdF9iZ2NvbG9yfHxoLmJhY2tncm91bmQsdS5wYXBlcl9iZ2NvbG9yKSxDdD17aG92ZXJtb2RlOk8scm90YXRlTGFiZWxzOkV0LGJnQ29sb3I6THQsY29udGFpbmVyOnUuX2hvdmVybGF5ZXIsb3V0ZXJDb250YWluZXI6dS5fcGFwZXJkaXYsY29tbW9uTGFiZWxPcHRzOnUuaG92ZXJsYWJlbCxob3ZlcmRpc3RhbmNlOnUuaG92ZXJkaXN0YW5jZX0sUHQ9TShYLEN0LHQpO2lmKGZ1bmN0aW9uKHQsZSxyKXt2YXIgbixhLGksbyxzLGwsYyx1PTAsaD0xLGY9dC5zaXplKCkscD1uZXcgQXJyYXkoZiksZD0wO2Z1bmN0aW9uIGcodCl7dmFyIGU9dFswXSxyPXRbdC5sZW5ndGgtMV07aWYoYT1lLnBtaW4tZS5wb3MtZS5kcCtlLnNpemUsaT1yLnBvcytyLmRwK3Iuc2l6ZS1lLnBtYXgsYT4uMDEpe2ZvcihzPXQubGVuZ3RoLTE7cz49MDtzLS0pdFtzXS5kcCs9YTtuPSExfWlmKCEoaTwuMDEpKXtpZihhPC0uMDEpe2ZvcihzPXQubGVuZ3RoLTE7cz49MDtzLS0pdFtzXS5kcC09aTtuPSExfWlmKG4pe3ZhciBjPTA7Zm9yKG89MDtvPHQubGVuZ3RoO28rKykobD10W29dKS5wb3MrbC5kcCtsLnNpemU+ZS5wbWF4JiZjKys7Zm9yKG89dC5sZW5ndGgtMTtvPj0wJiYhKGM8PTApO28tLSkobD10W29dKS5wb3M+ZS5wbWF4LTEmJihsLmRlbD0hMCxjLS0pO2ZvcihvPTA7bzx0Lmxlbmd0aCYmIShjPD0wKTtvKyspaWYoKGw9dFtvXSkucG9zPGUucG1pbisxKWZvcihsLmRlbD0hMCxjLS0saT0yKmwuc2l6ZSxzPXQubGVuZ3RoLTE7cz49MDtzLS0pdFtzXS5kcC09aTtmb3Iobz10Lmxlbmd0aC0xO28+PTAmJiEoYzw9MCk7by0tKShsPXRbb10pLnBvcytsLmRwK2wuc2l6ZT5lLnBtYXgmJihsLmRlbD0hMCxjLS0pfX19Zm9yKHQuZWFjaChmdW5jdGlvbih0KXt2YXIgbj10W2VdLGE9IngiPT09bi5faWQuY2hhckF0KDApLGk9bi5yYW5nZTswPT09ZCYmaSYmaVswXT5pWzFdIT09YSYmKGg9LTEpLHBbZCsrXT1be2RhdHVtOnQsdHJhY2VJbmRleDp0LnRyYWNlLmluZGV4LGRwOjAscG9zOnQucG9zLHBvc3JlZjp0LnBvc3JlZixzaXplOnQuYnkqKGE/eDoxKS8yLHBtaW46MCxwbWF4OmE/ci53aWR0aDpyLmhlaWdodH1dfSkscC5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF0ucG9zcmVmLWVbMF0ucG9zcmVmfHxoKihlWzBdLnRyYWNlSW5kZXgtdFswXS50cmFjZUluZGV4KX0pOyFuJiZ1PD1mOyl7Zm9yKHUrKyxuPSEwLG89MDtvPHAubGVuZ3RoLTE7KXt2YXIgdj1wW29dLG09cFtvKzFdLHk9dlt2Lmxlbmd0aC0xXSxiPW1bMF07aWYoKGE9eS5wb3MreS5kcCt5LnNpemUtYi5wb3MtYi5kcCtiLnNpemUpPi4wMSYmeS5wbWluPT09Yi5wbWluJiZ5LnBtYXg9PT1iLnBtYXgpe2ZvcihzPW0ubGVuZ3RoLTE7cz49MDtzLS0pbVtzXS5kcCs9YTtmb3Iodi5wdXNoLmFwcGx5KHYsbSkscC5zcGxpY2UobysxLDEpLGM9MCxzPXYubGVuZ3RoLTE7cz49MDtzLS0pYys9dltzXS5kcDtmb3IoaT1jL3YubGVuZ3RoLHM9di5sZW5ndGgtMTtzPj0wO3MtLSl2W3NdLmRwLT1pO249ITF9ZWxzZSBvKyt9cC5mb3JFYWNoKGcpfWZvcihvPXAubGVuZ3RoLTE7bz49MDtvLS0pe3ZhciBfPXBbb107Zm9yKHM9Xy5sZW5ndGgtMTtzPj0wO3MtLSl7dmFyIHc9X1tzXSxrPXcuZGF0dW07ay5vZmZzZXQ9dy5kcCxrLmRlbD13LmRlbH19fShQdCxFdD8ieGEiOiJ5YSIsdSksQShQdCxFdCksZS50YXJnZXQmJmUudGFyZ2V0LnRhZ05hbWUpe3ZhciBPdD1kLmdldENvbXBvbmVudE1ldGhvZCgiYW5ub3RhdGlvbnMiLCJoYXNDbGlja1RvU2hvdyIpKHQsVHQpO2Mobi5zZWxlY3QoZS50YXJnZXQpLE90PyJwb2ludGVyIjoiIil9aWYoIWUudGFyZ2V0fHxpfHwhZnVuY3Rpb24odCxlLHIpe2lmKCFyfHxyLmxlbmd0aCE9PXQuX2hvdmVyZGF0YS5sZW5ndGgpcmV0dXJuITA7Zm9yKHZhciBuPXIubGVuZ3RoLTE7bj49MDtuLS0pe3ZhciBhPXJbbl0saT10Ll9ob3ZlcmRhdGFbbl07aWYoYS5jdXJ2ZU51bWJlciE9PWkuY3VydmVOdW1iZXJ8fFN0cmluZyhhLnBvaW50TnVtYmVyKSE9PVN0cmluZyhpLnBvaW50TnVtYmVyKXx8U3RyaW5nKGEucG9pbnROdW1iZXJzKSE9PVN0cmluZyhpLnBvaW50TnVtYmVycykpcmV0dXJuITB9cmV0dXJuITF9KHQsMCxrdCkpcmV0dXJuO2t0JiZ0LmVtaXQoInBsb3RseV91bmhvdmVyIix7ZXZlbnQ6ZSxwb2ludHM6a3R9KTt0LmVtaXQoInBsb3RseV9ob3ZlciIse2V2ZW50OmUscG9pbnRzOnQuX2hvdmVyZGF0YSx4YXhlczpfLHlheGVzOncseHZhbHM6eix5dmFsczpJfSl9KHQsZSxyLGkpfSl9LHIubG9uZUhvdmVyPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ITA7QXJyYXkuaXNBcnJheSh0KXx8KHI9ITEsdD1bdF0pO3ZhciBhPXQubWFwKGZ1bmN0aW9uKHQpe3JldHVybntjb2xvcjp0LmNvbG9yfHxoLmRlZmF1bHRMaW5lLHgwOnQueDB8fHQueHx8MCx4MTp0LngxfHx0Lnh8fDAseTA6dC55MHx8dC55fHwwLHkxOnQueTF8fHQueXx8MCx4TGFiZWw6dC54TGFiZWwseUxhYmVsOnQueUxhYmVsLHpMYWJlbDp0LnpMYWJlbCx0ZXh0OnQudGV4dCxuYW1lOnQubmFtZSxpZGVhbEFsaWduOnQuaWRlYWxBbGlnbixib3JkZXJDb2xvcjp0LmJvcmRlckNvbG9yLGZvbnRGYW1pbHk6dC5mb250RmFtaWx5LGZvbnRTaXplOnQuZm9udFNpemUsZm9udENvbG9yOnQuZm9udENvbG9yLG5hbWVMZW5ndGg6dC5uYW1lTGVuZ3RoLHRleHRBbGlnbjp0LnRleHRBbGlnbix0cmFjZTp0LnRyYWNlfHx7aW5kZXg6MCxob3ZlcmluZm86IiJ9LHhhOntfb2Zmc2V0OjB9LHlhOntfb2Zmc2V0OjB9LGluZGV4OjAsaG92ZXJ0ZW1wbGF0ZTp0LmhvdmVydGVtcGxhdGV8fCExLGV2ZW50RGF0YTp0LmV2ZW50RGF0YXx8ITEsaG92ZXJ0ZW1wbGF0ZUxhYmVsczp0LmhvdmVydGVtcGxhdGVMYWJlbHN8fCExfX0pLGk9bi5zZWxlY3QoZS5jb250YWluZXIpLG89ZS5vdXRlckNvbnRhaW5lcj9uLnNlbGVjdChlLm91dGVyQ29udGFpbmVyKTppLHM9e2hvdmVybW9kZToiY2xvc2VzdCIscm90YXRlTGFiZWxzOiExLGJnQ29sb3I6ZS5iZ0NvbG9yfHxoLmJhY2tncm91bmQsY29udGFpbmVyOmksb3V0ZXJDb250YWluZXI6b30sbD1NKGEscyxlLmdkKSxjPTAsdT0wO3JldHVybiBsLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC55MC1lLnkwfSkuZWFjaChmdW5jdGlvbih0LHIpe3ZhciBuPXQueTAtdC5ieS8yO3Qub2Zmc2V0PW4tNTxjP2Mtbis1OjAsYz1uK3QuYnkrdC5vZmZzZXQscj09PWUuYW5jaG9ySW5kZXgmJih1PXQub2Zmc2V0KX0pLmVhY2goZnVuY3Rpb24odCl7dC5vZmZzZXQtPXV9KSxBKGwscy5yb3RhdGVMYWJlbHMpLHI/bDpsLm5vZGUoKX07dmFyIFQ9LzxleHRyYT4oW1xzXFNdKik8XC9leHRyYT4vO2Z1bmN0aW9uIE0odCxlLHIpe3ZhciBhPXIuX2Z1bGxMYXlvdXQsaT1lLmhvdmVybW9kZSxzPWUucm90YXRlTGFiZWxzLGM9ZS5iZ0NvbG9yLGY9ZS5jb250YWluZXIscD1lLm91dGVyQ29udGFpbmVyLGQ9ZS5jb21tb25MYWJlbE9wdHN8fHt9LGc9ZS5mb250RmFtaWx5fHx2LkhPVkVSRk9OVCx5PWUuZm9udFNpemV8fHYuSE9WRVJGT05UU0laRSx4PXRbMF0sYj14LnhhLF89eC55YSxNPSJ5Ij09PWk/InlMYWJlbCI6InhMYWJlbCIsQT14W01dLFM9KFN0cmluZyhBKXx8IiIpLnNwbGl0KCIgIilbMF0sRT1wLm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxMPUUudG9wLFA9RS53aWR0aCxPPUUuaGVpZ2h0LHo9dm9pZCAwIT09QSYmeC5kaXN0YW5jZTw9ZS5ob3ZlcmRpc3RhbmNlJiYoIngiPT09aXx8InkiPT09aSk7aWYoeil7dmFyIEksRCxSPSEwO2ZvcihJPTA7STx0Lmxlbmd0aDtJKyspaWYoUiYmdm9pZCAwPT09dFtJXS56TGFiZWwmJihSPSExKSxEPXRbSV0uaG92ZXJpbmZvfHx0W0ldLnRyYWNlLmhvdmVyaW5mbyl7dmFyIEY9QXJyYXkuaXNBcnJheShEKT9EOkQuc3BsaXQoIisiKTtpZigtMT09PUYuaW5kZXhPZigiYWxsIikmJi0xPT09Ri5pbmRleE9mKGkpKXt6PSExO2JyZWFrfX1SJiYoej0hMSl9dmFyIEI9Zi5zZWxlY3RBbGwoImcuYXhpc3RleHQiKS5kYXRhKHo/WzBdOltdKTtCLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgiYXhpc3RleHQiLCEwKSxCLmV4aXQoKS5yZW1vdmUoKSxCLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1uLnNlbGVjdCh0aGlzKSxzPW8uZW5zdXJlU2luZ2xlKGUsInBhdGgiLCIiLGZ1bmN0aW9uKHQpe3Quc3R5bGUoeyJzdHJva2Utd2lkdGgiOiIxcHgifSl9KSxjPW8uZW5zdXJlU2luZ2xlKGUsInRleHQiLCIiLGZ1bmN0aW9uKHQpe3QuYXR0cigiZGF0YS1ub3RleCIsMSl9KSxmPWQuYmdjb2xvcnx8aC5kZWZhdWx0TGluZSxwPWQuYm9yZGVyY29sb3J8fGguY29udHJhc3QoZiksdj1oLmNvbnRyYXN0KGYpLG09e2ZhbWlseTpkLmZvbnQuZmFtaWx5fHxnLHNpemU6ZC5mb250LnNpemV8fHksY29sb3I6ZC5mb250LmNvbG9yfHx2fTtzLnN0eWxlKHtmaWxsOmYsc3Ryb2tlOnB9KSxjLnRleHQoQSkuY2FsbCh1LmZvbnQsbSkuY2FsbChsLnBvc2l0aW9uVGV4dCwwLDApLmNhbGwobC5jb252ZXJ0VG9Uc3BhbnMsciksZS5hdHRyKCJ0cmFuc2Zvcm0iLCIiKTt2YXIgVCxFLEM9Yy5ub2RlKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoIngiPT09aSl7dmFyIFA9InRvcCI9PT1iLnNpZGU/Ii0iOiIiO2MuYXR0cigidGV4dC1hbmNob3IiLCJtaWRkbGUiKS5jYWxsKGwucG9zaXRpb25UZXh0LDAsInRvcCI9PT1iLnNpZGU/TC1DLmJvdHRvbS13LWs6TC1DLnRvcCt3K2spLFQ9Yi5fb2Zmc2V0Kyh4LngwK3gueDEpLzIsRT1fLl9vZmZzZXQrKCJ0b3AiPT09Yi5zaWRlPzA6Xy5fbGVuZ3RoKTt2YXIgTz1DLndpZHRoLzIraztUPE8/KFQ9TyxzLmF0dHIoImQiLCJNLSIrKE8tdykrIiwwTC0iKyhPLTIqdykrIiwiK1ArdysiSCIrKGsrQy53aWR0aC8yKSsidiIrUCsoMiprK0MuaGVpZ2h0KSsiSC0iK08rIlYiK1ArdysiWiIpKTpUPmEud2lkdGgtTz8oVD1hLndpZHRoLU8scy5hdHRyKCJkIiwiTSIrKE8tdykrIiwwTCIrTysiLCIrUCt3KyJ2IitQKygyKmsrQy5oZWlnaHQpKyJILSIrTysiViIrUCt3KyJIIisoTy0yKncpKyJaIikpOnMuYXR0cigiZCIsIk0wLDBMIit3KyIsIitQK3crIkgiKyhrK0Mud2lkdGgvMikrInYiK1ArKDIqaytDLmhlaWdodCkrIkgtIisoaytDLndpZHRoLzIpKyJWIitQK3crIkgtIit3KyJaIil9ZWxzZXt2YXIgeixJLEQ7InJpZ2h0Ij09PV8uc2lkZT8oej0ic3RhcnQiLEk9MSxEPSIiLFQ9Yi5fb2Zmc2V0K2IuX2xlbmd0aCk6KHo9ImVuZCIsST0tMSxEPSItIixUPWIuX29mZnNldCksRT1fLl9vZmZzZXQrKHgueTAreC55MSkvMixjLmF0dHIoInRleHQtYW5jaG9yIix6KSxzLmF0dHIoImQiLCJNMCwwTCIrRCt3KyIsIit3KyJWIisoaytDLmhlaWdodC8yKSsiaCIrRCsoMiprK0Mud2lkdGgpKyJWLSIrKGsrQy5oZWlnaHQvMikrIkgiK0QrdysiVi0iK3crIloiKTt2YXIgUixGPUMuaGVpZ2h0LzIsQj1MLUMudG9wLUYsTj0iY2xpcCIrYS5fdWlkKyJjb21tb25sYWJlbCIrXy5faWQ7aWYoVDxDLndpZHRoKzIqayt3KXtSPSJNLSIrKHcraykrIi0iK0YrImgtIisoQy53aWR0aC1rKSsiViIrRisiaCIrKEMud2lkdGgtaykrIloiO3ZhciBqPUMud2lkdGgtVCtrO2wucG9zaXRpb25UZXh0KGMsaixCKSwiZW5kIj09PXomJmMuc2VsZWN0QWxsKCJ0c3BhbiIpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1uLnNlbGVjdCh0aGlzKSxlPXUudGVzdGVyLmFwcGVuZCgidGV4dCIpLnRleHQodC50ZXh0KCkpLmNhbGwodS5mb250LG0pLHI9ZS5ub2RlKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7TWF0aC5yb3VuZChyLndpZHRoKTxNYXRoLnJvdW5kKEMud2lkdGgpJiZ0LmF0dHIoIngiLGotci53aWR0aCksZS5yZW1vdmUoKX0pfWVsc2UgbC5wb3NpdGlvblRleHQoYyxJKihrK3cpLEIpLFI9bnVsbDt2YXIgVj1hLl90b3BjbGlwcy5zZWxlY3RBbGwoIiMiK04pLmRhdGEoUj9bMF06W10pO1YuZW50ZXIoKS5hcHBlbmQoImNsaXBQYXRoIikuYXR0cigiaWQiLE4pLmFwcGVuZCgicGF0aCIpLFYuZXhpdCgpLnJlbW92ZSgpLFYuc2VsZWN0KCJwYXRoIikuYXR0cigiZCIsUiksdS5zZXRDbGlwVXJsKGMsUj9OOm51bGwscil9ZS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitUKyIsIitFKyIpIiksdD10LmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwIT09dC56TGFiZWxWYWx8fCh0W01dfHwiIikuc3BsaXQoIiAiKVswXT09PVN9KX0pO3ZhciBOPWYuc2VsZWN0QWxsKCJnLmhvdmVydGV4dCIpLmRhdGEodCxmdW5jdGlvbih0KXtyZXR1cm5bdC50cmFjZS5pbmRleCx0LmluZGV4LHQueDAsdC55MCx0Lm5hbWUsdC5hdHRyLHQueGEsdC55YXx8IiJdLmpvaW4oIiwiKX0pO3JldHVybiBOLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgiaG92ZXJ0ZXh0IiwhMCkuZWFjaChmdW5jdGlvbigpe3ZhciB0PW4uc2VsZWN0KHRoaXMpO3QuYXBwZW5kKCJyZWN0IikuY2FsbChoLmZpbGwsaC5hZGRPcGFjaXR5KGMsLjgpKSx0LmFwcGVuZCgidGV4dCIpLmNsYXNzZWQoIm5hbWUiLCEwKSx0LmFwcGVuZCgicGF0aCIpLnN0eWxlKCJzdHJva2Utd2lkdGgiLCIxcHgiKSx0LmFwcGVuZCgidGV4dCIpLmNsYXNzZWQoIm51bXMiLCEwKS5jYWxsKHUuZm9udCxnLHkpfSksTi5leGl0KCkucmVtb3ZlKCksTi5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPW4uc2VsZWN0KHRoaXMpLmF0dHIoInRyYW5zZm9ybSIsIiIpLGY9IiIscD0iIixkPXQuYmdjb2xvcnx8dC5jb2xvcix2PWguY29tYmluZShoLm9wYWNpdHkoZCk/ZDpoLmRlZmF1bHRMaW5lLGMpLHg9aC5jb21iaW5lKGgub3BhY2l0eSh0LmNvbG9yKT90LmNvbG9yOmguZGVmYXVsdExpbmUsYyksYj10LmJvcmRlckNvbG9yfHxoLmNvbnRyYXN0KHYpO3ZvaWQgMCE9PXQubmFtZU92ZXJyaWRlJiYodC5uYW1lPXQubmFtZU92ZXJyaWRlKSx0Lm5hbWUmJih0LnRyYWNlLl9tZXRhJiYodC5uYW1lPW8udGVtcGxhdGVTdHJpbmcodC5uYW1lLHQudHJhY2UuX21ldGEpKSxmPUModC5uYW1lLHQubmFtZUxlbmd0aCkpLHZvaWQgMCE9PXQuekxhYmVsPyh2b2lkIDAhPT10LnhMYWJlbCYmKHArPSJ4OiAiK3QueExhYmVsKyI8YnI+Iiksdm9pZCAwIT09dC55TGFiZWwmJihwKz0ieTogIit0LnlMYWJlbCsiPGJyPiIpLCJjaG9yb3BsZXRoIiE9PXQudHJhY2UudHlwZSYmImNob3JvcGxldGhtYXBib3giIT09dC50cmFjZS50eXBlJiYocCs9KHA/Ino6ICI6IiIpK3QuekxhYmVsKSk6eiYmdFtpKyJMYWJlbCJdPT09QT9wPXRbKCJ4Ij09PWk/InkiOiJ4IikrIkxhYmVsIl18fCIiOnZvaWQgMD09PXQueExhYmVsP3ZvaWQgMCE9PXQueUxhYmVsJiYic2NhdHRlcmNhcnBldCIhPT10LnRyYWNlLnR5cGUmJihwPXQueUxhYmVsKTpwPXZvaWQgMD09PXQueUxhYmVsP3QueExhYmVsOiIoIit0LnhMYWJlbCsiLCAiK3QueUxhYmVsKyIpIiwhdC50ZXh0JiYwIT09dC50ZXh0fHxBcnJheS5pc0FycmF5KHQudGV4dCl8fChwKz0ocD8iPGJyPiI6IiIpK3QudGV4dCksdm9pZCAwIT09dC5leHRyYVRleHQmJihwKz0ocD8iPGJyPiI6IiIpK3QuZXh0cmFUZXh0KSwiIiE9PXB8fHQuaG92ZXJ0ZW1wbGF0ZXx8KCIiPT09ZiYmZS5yZW1vdmUoKSxwPWYpO3ZhciBfPWEuX2QzbG9jYWxlLE09dC5ob3ZlcnRlbXBsYXRlfHwhMSxTPXQuaG92ZXJ0ZW1wbGF0ZUxhYmVsc3x8dCxFPXQuZXZlbnREYXRhWzBdfHx7fTtNJiYocD0ocD1vLmhvdmVydGVtcGxhdGVTdHJpbmcoTSxTLF8sRSx0LnRyYWNlLl9tZXRhKSkucmVwbGFjZShULGZ1bmN0aW9uKGUscil7cmV0dXJuIGY9QyhyLHQubmFtZUxlbmd0aCksIiJ9KSk7dmFyIEk9ZS5zZWxlY3QoInRleHQubnVtcyIpLmNhbGwodS5mb250LHQuZm9udEZhbWlseXx8Zyx0LmZvbnRTaXplfHx5LHQuZm9udENvbG9yfHxiKS50ZXh0KHApLmF0dHIoImRhdGEtbm90ZXgiLDEpLmNhbGwobC5wb3NpdGlvblRleHQsMCwwKS5jYWxsKGwuY29udmVydFRvVHNwYW5zLHIpLEQ9ZS5zZWxlY3QoInRleHQubmFtZSIpLFI9MCxGPTA7aWYoZiYmZiE9PXApe0QuY2FsbCh1LmZvbnQsdC5mb250RmFtaWx5fHxnLHQuZm9udFNpemV8fHkseCkudGV4dChmKS5hdHRyKCJkYXRhLW5vdGV4IiwxKS5jYWxsKGwucG9zaXRpb25UZXh0LDAsMCkuY2FsbChsLmNvbnZlcnRUb1RzcGFucyxyKTt2YXIgQj1ELm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtSPUIud2lkdGgrMiprLEY9Qi5oZWlnaHQrMiprfWVsc2UgRC5yZW1vdmUoKSxlLnNlbGVjdCgicmVjdCIpLnJlbW92ZSgpO2Uuc2VsZWN0KCJwYXRoIikuc3R5bGUoe2ZpbGw6dixzdHJva2U6Yn0pO3ZhciBOLGosVj1JLm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxVPXQueGEuX29mZnNldCsodC54MCt0LngxKS8yLHE9dC55YS5fb2Zmc2V0Kyh0LnkwK3QueTEpLzIsSD1NYXRoLmFicyh0LngxLXQueDApLEc9TWF0aC5hYnModC55MS10LnkwKSxZPVYud2lkdGgrdytrK1I7aWYodC50eTA9TC1WLnRvcCx0LmJ4PVYud2lkdGgrMiprLHQuYnk9TWF0aC5tYXgoVi5oZWlnaHQrMiprLEYpLHQuYW5jaG9yPSJzdGFydCIsdC50eHdpZHRoPVYud2lkdGgsdC50eDJ3aWR0aD1SLHQub2Zmc2V0PTAscyl0LnBvcz1VLE49cStHLzIrWTw9TyxqPXEtRy8yLVk+PTAsInRvcCIhPT10LmlkZWFsQWxpZ24mJk58fCFqP04/KHErPUcvMix0LmFuY2hvcj0ic3RhcnQiKTp0LmFuY2hvcj0ibWlkZGxlIjoocS09Ry8yLHQuYW5jaG9yPSJlbmQiKTtlbHNlIGlmKHQucG9zPXEsTj1VK0gvMitZPD1QLGo9VS1ILzItWT49MCwibGVmdCIhPT10LmlkZWFsQWxpZ24mJk58fCFqKWlmKE4pVSs9SC8yLHQuYW5jaG9yPSJzdGFydCI7ZWxzZXt0LmFuY2hvcj0ibWlkZGxlIjt2YXIgVz1ZLzIsWD1VK1ctUCxaPVUtVztYPjAmJihVLT1YKSxaPDAmJihVKz0tWil9ZWxzZSBVLT1ILzIsdC5hbmNob3I9ImVuZCI7SS5hdHRyKCJ0ZXh0LWFuY2hvciIsdC5hbmNob3IpLFImJkQuYXR0cigidGV4dC1hbmNob3IiLHQuYW5jaG9yKSxlLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK1UrIiwiK3ErIikiKyhzPyJyb3RhdGUoIittKyIpIjoiIikpfSksTn1mdW5jdGlvbiBBKHQsZSl7dC5lYWNoKGZ1bmN0aW9uKHQpe3ZhciByPW4uc2VsZWN0KHRoaXMpO2lmKHQuZGVsKXJldHVybiByLnJlbW92ZSgpO3ZhciBhPXIuc2VsZWN0KCJ0ZXh0Lm51bXMiKSxpPXQuYW5jaG9yLG89ImVuZCI9PT1pPy0xOjEscz17c3RhcnQ6MSxlbmQ6LTEsbWlkZGxlOjB9W2ldLGM9cyoodytrKSxoPWMrcyoodC50eHdpZHRoK2spLGY9MCxwPXQub2Zmc2V0OyJtaWRkbGUiPT09aSYmKGMtPXQudHgyd2lkdGgvMixoKz10LnR4d2lkdGgvMitrKSxlJiYocCo9LV8sZj10Lm9mZnNldCpiKSxyLnNlbGVjdCgicGF0aCIpLmF0dHIoImQiLCJtaWRkbGUiPT09aT8iTS0iKyh0LmJ4LzIrdC50eDJ3aWR0aC8yKSsiLCIrKHAtdC5ieS8yKSsiaCIrdC5ieCsidiIrdC5ieSsiaC0iK3QuYngrIloiOiJNMCwwTCIrKG8qdytmKSsiLCIrKHcrcCkrInYiKyh0LmJ5LzItdykrImgiK28qdC5ieCsidi0iK3QuYnkrIkgiKyhvKncrZikrIlYiKyhwLXcpKyJaIik7dmFyIGQ9YytmLGc9cCt0LnR5MC10LmJ5LzIrayx2PXQudGV4dEFsaWdufHwiYXV0byI7ImF1dG8iIT09diYmKCJsZWZ0Ij09PXYmJiJzdGFydCIhPT1pPyhhLmF0dHIoInRleHQtYW5jaG9yIiwic3RhcnQiKSxkPSJtaWRkbGUiPT09aT8tdC5ieC8yLXQudHgyd2lkdGgvMitrOi10LmJ4LWspOiJyaWdodCI9PT12JiYiZW5kIiE9PWkmJihhLmF0dHIoInRleHQtYW5jaG9yIiwiZW5kIiksZD0ibWlkZGxlIj09PWk/dC5ieC8yLXQudHgyd2lkdGgvMi1rOnQuYngraykpLGEuY2FsbChsLnBvc2l0aW9uVGV4dCxkLGcpLHQudHgyd2lkdGgmJihyLnNlbGVjdCgidGV4dC5uYW1lIikuY2FsbChsLnBvc2l0aW9uVGV4dCxoK3MqaytmLHArdC50eTAtdC5ieS8yK2spLHIuc2VsZWN0KCJyZWN0IikuY2FsbCh1LnNldFJlY3QsaCsocy0xKSp0LnR4MndpZHRoLzIrZixwLXQuYnkvMi0xLHQudHgyd2lkdGgsdC5ieSsyKSl9KX1mdW5jdGlvbiBTKHQsZSl7dmFyIHI9dC5pbmRleCxuPXQudHJhY2V8fHt9LGk9dC5jZFswXSxzPXQuY2Rbcl18fHt9O2Z1bmN0aW9uIGwodCl7cmV0dXJuIHR8fGEodCkmJjA9PT10fXZhciBjPUFycmF5LmlzQXJyYXkocik/ZnVuY3Rpb24odCxlKXt2YXIgYT1vLmNhc3RPcHRpb24oaSxyLHQpO3JldHVybiBsKGEpP2E6by5leHRyYWN0T3B0aW9uKHt9LG4sIiIsZSl9OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG8uZXh0cmFjdE9wdGlvbihzLG4sdCxlKX07ZnVuY3Rpb24gdShlLHIsbil7dmFyIGE9YyhyLG4pO2woYSkmJih0W2VdPWEpfWlmKHUoImhvdmVyaW5mbyIsImhpIiwiaG92ZXJpbmZvIiksdSgiYmdjb2xvciIsImhiZyIsImhvdmVybGFiZWwuYmdjb2xvciIpLHUoImJvcmRlckNvbG9yIiwiaGJjIiwiaG92ZXJsYWJlbC5ib3JkZXJjb2xvciIpLHUoImZvbnRGYW1pbHkiLCJodGYiLCJob3ZlcmxhYmVsLmZvbnQuZmFtaWx5IiksdSgiZm9udFNpemUiLCJodHMiLCJob3ZlcmxhYmVsLmZvbnQuc2l6ZSIpLHUoImZvbnRDb2xvciIsImh0YyIsImhvdmVybGFiZWwuZm9udC5jb2xvciIpLHUoIm5hbWVMZW5ndGgiLCJobmwiLCJob3ZlcmxhYmVsLm5hbWVsZW5ndGgiKSx1KCJ0ZXh0QWxpZ24iLCJodGEiLCJob3ZlcmxhYmVsLmFsaWduIiksdC5wb3NyZWY9InkiPT09ZXx8ImNsb3Nlc3QiPT09ZSYmImgiPT09bi5vcmllbnRhdGlvbj90LnhhLl9vZmZzZXQrKHQueDArdC54MSkvMjp0LnlhLl9vZmZzZXQrKHQueTArdC55MSkvMix0LngwPW8uY29uc3RyYWluKHQueDAsMCx0LnhhLl9sZW5ndGgpLHQueDE9by5jb25zdHJhaW4odC54MSwwLHQueGEuX2xlbmd0aCksdC55MD1vLmNvbnN0cmFpbih0LnkwLDAsdC55YS5fbGVuZ3RoKSx0LnkxPW8uY29uc3RyYWluKHQueTEsMCx0LnlhLl9sZW5ndGgpLHZvaWQgMCE9PXQueExhYmVsVmFsJiYodC54TGFiZWw9InhMYWJlbCJpbiB0P3QueExhYmVsOnAuaG92ZXJMYWJlbFRleHQodC54YSx0LnhMYWJlbFZhbCksdC54VmFsPXQueGEuYzJkKHQueExhYmVsVmFsKSksdm9pZCAwIT09dC55TGFiZWxWYWwmJih0LnlMYWJlbD0ieUxhYmVsImluIHQ/dC55TGFiZWw6cC5ob3ZlckxhYmVsVGV4dCh0LnlhLHQueUxhYmVsVmFsKSx0LnlWYWw9dC55YS5jMmQodC55TGFiZWxWYWwpKSx2b2lkIDAhPT10LnpMYWJlbFZhbCYmdm9pZCAwPT09dC56TGFiZWwmJih0LnpMYWJlbD1TdHJpbmcodC56TGFiZWxWYWwpKSwhKGlzTmFOKHQueGVycil8fCJsb2ciPT09dC54YS50eXBlJiZ0LnhlcnI8PTApKXt2YXIgaD1wLnRpY2tUZXh0KHQueGEsdC54YS5jMmwodC54ZXJyKSwiaG92ZXIiKS50ZXh0O3ZvaWQgMCE9PXQueGVycm5lZz90LnhMYWJlbCs9IiArIitoKyIgLyAtIitwLnRpY2tUZXh0KHQueGEsdC54YS5jMmwodC54ZXJybmVnKSwiaG92ZXIiKS50ZXh0OnQueExhYmVsKz0iIFx4YjEgIitoLCJ4Ij09PWUmJih0LmRpc3RhbmNlKz0xKX1pZighKGlzTmFOKHQueWVycil8fCJsb2ciPT09dC55YS50eXBlJiZ0LnllcnI8PTApKXt2YXIgZj1wLnRpY2tUZXh0KHQueWEsdC55YS5jMmwodC55ZXJyKSwiaG92ZXIiKS50ZXh0O3ZvaWQgMCE9PXQueWVycm5lZz90LnlMYWJlbCs9IiArIitmKyIgLyAtIitwLnRpY2tUZXh0KHQueWEsdC55YS5jMmwodC55ZXJybmVnKSwiaG92ZXIiKS50ZXh0OnQueUxhYmVsKz0iIFx4YjEgIitmLCJ5Ij09PWUmJih0LmRpc3RhbmNlKz0xKX12YXIgZD10LmhvdmVyaW5mb3x8dC50cmFjZS5ob3ZlcmluZm87cmV0dXJuIGQmJiJhbGwiIT09ZCYmKC0xPT09KGQ9QXJyYXkuaXNBcnJheShkKT9kOmQuc3BsaXQoIisiKSkuaW5kZXhPZigieCIpJiYodC54TGFiZWw9dm9pZCAwKSwtMT09PWQuaW5kZXhPZigieSIpJiYodC55TGFiZWw9dm9pZCAwKSwtMT09PWQuaW5kZXhPZigieiIpJiYodC56TGFiZWw9dm9pZCAwKSwtMT09PWQuaW5kZXhPZigidGV4dCIpJiYodC50ZXh0PXZvaWQgMCksLTE9PT1kLmluZGV4T2YoIm5hbWUiKSYmKHQubmFtZT12b2lkIDApKSx0fWZ1bmN0aW9uIEUodCxlLHIpe3ZhciBuLGEsbz1yLmNvbnRhaW5lcixzPXIuZnVsbExheW91dCxsPXMuX3NpemUsYz1yLmV2ZW50LGY9ISFlLmhMaW5lUG9pbnQsZD0hIWUudkxpbmVQb2ludDtpZihvLnNlbGVjdEFsbCgiLnNwaWtlbGluZSIpLnJlbW92ZSgpLGR8fGYpe3ZhciBnPWguY29tYmluZShzLnBsb3RfYmdjb2xvcixzLnBhcGVyX2JnY29sb3IpO2lmKGYpe3ZhciB2LG0seT1lLmhMaW5lUG9pbnQ7bj15JiZ5LnhhLCJjdXJzb3IiPT09KGE9eSYmeS55YSkuc3Bpa2VzbmFwPyh2PWMucG9pbnRlclgsbT1jLnBvaW50ZXJZKToodj1uLl9vZmZzZXQreS54LG09YS5fb2Zmc2V0K3kueSk7dmFyIHgsYixfPWkucmVhZGFiaWxpdHkoeS5jb2xvcixnKTwxLjU/aC5jb250cmFzdChnKTp5LmNvbG9yLHc9YS5zcGlrZW1vZGUsaz1hLnNwaWtldGhpY2tuZXNzLFQ9YS5zcGlrZWNvbG9yfHxfLE09cC5nZXRQeFBvc2l0aW9uKHQsYSk7aWYoLTEhPT13LmluZGV4T2YoInRvYXhpcyIpfHwtMSE9PXcuaW5kZXhPZigiYWNyb3NzIikpe2lmKC0xIT09dy5pbmRleE9mKCJ0b2F4aXMiKSYmKHg9TSxiPXYpLC0xIT09dy5pbmRleE9mKCJhY3Jvc3MiKSl7dmFyIEE9YS5fY291bnRlckRvbWFpbk1pbixTPWEuX2NvdW50ZXJEb21haW5NYXg7ImZyZWUiPT09YS5hbmNob3ImJihBPU1hdGgubWluKEEsYS5wb3NpdGlvbiksUz1NYXRoLm1heChTLGEucG9zaXRpb24pKSx4PWwubCtBKmwudyxiPWwubCtTKmwud31vLmluc2VydCgibGluZSIsIjpmaXJzdC1jaGlsZCIpLmF0dHIoe3gxOngseDI6Yix5MTptLHkyOm0sInN0cm9rZS13aWR0aCI6ayxzdHJva2U6VCwic3Ryb2tlLWRhc2hhcnJheSI6dS5kYXNoU3R5bGUoYS5zcGlrZWRhc2gsayl9KS5jbGFzc2VkKCJzcGlrZWxpbmUiLCEwKS5jbGFzc2VkKCJjcmlzcCIsITApLG8uaW5zZXJ0KCJsaW5lIiwiOmZpcnN0LWNoaWxkIikuYXR0cih7eDE6eCx4MjpiLHkxOm0seTI6bSwic3Ryb2tlLXdpZHRoIjprKzIsc3Ryb2tlOmd9KS5jbGFzc2VkKCJzcGlrZWxpbmUiLCEwKS5jbGFzc2VkKCJjcmlzcCIsITApfS0xIT09dy5pbmRleE9mKCJtYXJrZXIiKSYmby5pbnNlcnQoImNpcmNsZSIsIjpmaXJzdC1jaGlsZCIpLmF0dHIoe2N4Ok0rKCJyaWdodCIhPT1hLnNpZGU/azotayksY3k6bSxyOmssZmlsbDpUfSkuY2xhc3NlZCgic3Bpa2VsaW5lIiwhMCl9aWYoZCl7dmFyIEUsTCxDPWUudkxpbmVQb2ludDtuPUMmJkMueGEsYT1DJiZDLnlhLCJjdXJzb3IiPT09bi5zcGlrZXNuYXA/KEU9Yy5wb2ludGVyWCxMPWMucG9pbnRlclkpOihFPW4uX29mZnNldCtDLngsTD1hLl9vZmZzZXQrQy55KTt2YXIgUCxPLHo9aS5yZWFkYWJpbGl0eShDLmNvbG9yLGcpPDEuNT9oLmNvbnRyYXN0KGcpOkMuY29sb3IsST1uLnNwaWtlbW9kZSxEPW4uc3Bpa2V0aGlja25lc3MsUj1uLnNwaWtlY29sb3J8fHosRj1wLmdldFB4UG9zaXRpb24odCxuKTtpZigtMSE9PUkuaW5kZXhPZigidG9heGlzIil8fC0xIT09SS5pbmRleE9mKCJhY3Jvc3MiKSl7aWYoLTEhPT1JLmluZGV4T2YoInRvYXhpcyIpJiYoUD1GLE89TCksLTEhPT1JLmluZGV4T2YoImFjcm9zcyIpKXt2YXIgQj1uLl9jb3VudGVyRG9tYWluTWluLE49bi5fY291bnRlckRvbWFpbk1heDsiZnJlZSI9PT1uLmFuY2hvciYmKEI9TWF0aC5taW4oQixuLnBvc2l0aW9uKSxOPU1hdGgubWF4KE4sbi5wb3NpdGlvbikpLFA9bC50KygxLU4pKmwuaCxPPWwudCsoMS1CKSpsLmh9by5pbnNlcnQoImxpbmUiLCI6Zmlyc3QtY2hpbGQiKS5hdHRyKHt4MTpFLHgyOkUseTE6UCx5MjpPLCJzdHJva2Utd2lkdGgiOkQsc3Ryb2tlOlIsInN0cm9rZS1kYXNoYXJyYXkiOnUuZGFzaFN0eWxlKG4uc3Bpa2VkYXNoLEQpfSkuY2xhc3NlZCgic3Bpa2VsaW5lIiwhMCkuY2xhc3NlZCgiY3Jpc3AiLCEwKSxvLmluc2VydCgibGluZSIsIjpmaXJzdC1jaGlsZCIpLmF0dHIoe3gxOkUseDI6RSx5MTpQLHkyOk8sInN0cm9rZS13aWR0aCI6RCsyLHN0cm9rZTpnfSkuY2xhc3NlZCgic3Bpa2VsaW5lIiwhMCkuY2xhc3NlZCgiY3Jpc3AiLCEwKX0tMSE9PUkuaW5kZXhPZigibWFya2VyIikmJm8uaW5zZXJ0KCJjaXJjbGUiLCI6Zmlyc3QtY2hpbGQiKS5hdHRyKHtjeDpFLGN5OkYtKCJ0b3AiIT09bi5zaWRlP0Q6LUQpLHI6RCxmaWxsOlJ9KS5jbGFzc2VkKCJzcGlrZWxpbmUiLCEwKX19fWZ1bmN0aW9uIEwodCxlKXtyZXR1cm4hZXx8KGUudkxpbmVQb2ludCE9PXQuX3NwaWtlcG9pbnRzLnZMaW5lUG9pbnR8fGUuaExpbmVQb2ludCE9PXQuX3NwaWtlcG9pbnRzLmhMaW5lUG9pbnQpfWZ1bmN0aW9uIEModCxlKXtyZXR1cm4gbC5wbGFpblRleHQodHx8IiIse2xlbjplLGFsbG93ZWRUYWdzOlsiYnIiLCJzdWIiLCJzdXAiLCJiIiwiaSIsImVtIl19KX19LHsiLi4vLi4vbGliIjo3MTcsIi4uLy4uL2xpYi9ldmVudHMiOjcwNywiLi4vLi4vbGliL292ZXJyaWRlX2N1cnNvciI6NzI4LCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjc0MSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjc2NSwiLi4vLi4vcmVnaXN0cnkiOjg0NiwiLi4vY29sb3IiOjU5MiwiLi4vZHJhZ2VsZW1lbnQiOjYxMCwiLi4vZHJhd2luZyI6NjEzLCIuL2NvbnN0YW50cyI6NjI1LCIuL2hlbHBlcnMiOjYyNyxkMzoxNjUsImZhc3QtaXNudW1lcmljIjoyMjgsdGlueWNvbG9yMjo1MzZ9XSw2Mjk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEpe3IoImhvdmVybGFiZWwuYmdjb2xvciIsKGE9YXx8e30pLmJnY29sb3IpLHIoImhvdmVybGFiZWwuYm9yZGVyY29sb3IiLGEuYm9yZGVyY29sb3IpLHIoImhvdmVybGFiZWwubmFtZWxlbmd0aCIsYS5uYW1lbGVuZ3RoKSxuLmNvZXJjZUZvbnQociwiaG92ZXJsYWJlbC5mb250IixhLmZvbnQpLHIoImhvdmVybGFiZWwuYWxpZ24iLGEuYWxpZ24pfX0seyIuLi8uLi9saWIiOjcxN31dLDYzMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGE9dCgiLi4vLi4vbGliIiksaT10KCIuLi9kcmFnZWxlbWVudCIpLG89dCgiLi9oZWxwZXJzIikscz10KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksbD10KCIuL2hvdmVyIik7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJjb21wb25lbnQiLG5hbWU6ImZ4Iixjb25zdGFudHM6dCgiLi9jb25zdGFudHMiKSxzY2hlbWE6e2xheW91dDpzfSxhdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLGxheW91dEF0dHJpYnV0ZXM6cyxzdXBwbHlMYXlvdXRHbG9iYWxEZWZhdWx0czp0KCIuL2xheW91dF9nbG9iYWxfZGVmYXVsdHMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksc3VwcGx5TGF5b3V0RGVmYXVsdHM6dCgiLi9sYXlvdXRfZGVmYXVsdHMiKSxjYWxjOnQoIi4vY2FsYyIpLGdldERpc3RhbmNlRnVuY3Rpb246by5nZXREaXN0YW5jZUZ1bmN0aW9uLGdldENsb3Nlc3Q6by5nZXRDbG9zZXN0LGluYm94Om8uaW5ib3gscXVhZHJhdHVyZTpvLnF1YWRyYXR1cmUsYXBwZW5kQXJyYXlQb2ludFZhbHVlOm8uYXBwZW5kQXJyYXlQb2ludFZhbHVlLGNhc3RIb3Zlck9wdGlvbjpmdW5jdGlvbih0LGUscil7cmV0dXJuIGEuY2FzdE9wdGlvbih0LGUsImhvdmVybGFiZWwuIityKX0sY2FzdEhvdmVyaW5mbzpmdW5jdGlvbih0LGUscil7cmV0dXJuIGEuY2FzdE9wdGlvbih0LHIsImhvdmVyaW5mbyIsZnVuY3Rpb24ocil7cmV0dXJuIGEuY29lcmNlSG92ZXJpbmZvKHtob3ZlcmluZm86cn0se19tb2R1bGU6dC5fbW9kdWxlfSxlKX0pfSxob3ZlcjpsLmhvdmVyLHVuaG92ZXI6aS51bmhvdmVyLGxvbmVIb3ZlcjpsLmxvbmVIb3Zlcixsb25lVW5ob3ZlcjpmdW5jdGlvbih0KXt2YXIgZT1hLmlzRDNTZWxlY3Rpb24odCk/dDpuLnNlbGVjdCh0KTtlLnNlbGVjdEFsbCgiZy5ob3ZlcnRleHQiKS5yZW1vdmUoKSxlLnNlbGVjdEFsbCgiLnNwaWtlbGluZSIpLnJlbW92ZSgpfSxjbGljazp0KCIuL2NsaWNrIil9fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi9kcmFnZWxlbWVudCI6NjEwLCIuL2F0dHJpYnV0ZXMiOjYyMiwiLi9jYWxjIjo2MjMsIi4vY2xpY2siOjYyNCwiLi9jb25zdGFudHMiOjYyNSwiLi9kZWZhdWx0cyI6NjI2LCIuL2hlbHBlcnMiOjYyNywiLi9ob3ZlciI6NjI4LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo2MzEsIi4vbGF5b3V0X2RlZmF1bHRzIjo2MzIsIi4vbGF5b3V0X2dsb2JhbF9kZWZhdWx0cyI6NjMzLGQzOjE2NX1dLDYzMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2NvbnN0YW50cyIpLGE9dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIikoe2VkaXRUeXBlOiJub25lIn0pO2EuZmFtaWx5LmRmbHQ9bi5IT1ZFUkZPTlQsYS5zaXplLmRmbHQ9bi5IT1ZFUkZPTlRTSVpFLGUuZXhwb3J0cz17Y2xpY2ttb2RlOnt2YWxUeXBlOiJmbGFnbGlzdCIsZmxhZ3M6WyJldmVudCIsInNlbGVjdCJdLGRmbHQ6ImV2ZW50IixlZGl0VHlwZToicGxvdCIsZXh0cmFzOlsibm9uZSJdfSxkcmFnbW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiem9vbSIsInBhbiIsInNlbGVjdCIsImxhc3NvIiwib3JiaXQiLCJ0dXJudGFibGUiLCExXSxkZmx0OiJ6b29tIixlZGl0VHlwZToibW9kZWJhciJ9LGhvdmVybW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsieCIsInkiLCJjbG9zZXN0IiwhMV0sZWRpdFR5cGU6Im1vZGViYXIifSxob3ZlcmRpc3RhbmNlOnt2YWxUeXBlOiJpbnRlZ2VyIixtaW46LTEsZGZsdDoyMCxlZGl0VHlwZToibm9uZSJ9LHNwaWtlZGlzdGFuY2U6e3ZhbFR5cGU6ImludGVnZXIiLG1pbjotMSxkZmx0OjIwLGVkaXRUeXBlOiJub25lIn0saG92ZXJsYWJlbDp7Ymdjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJub25lIn0sYm9yZGVyY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToibm9uZSJ9LGZvbnQ6YSxhbGlnbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsibGVmdCIsInJpZ2h0IiwiYXV0byJdLGRmbHQ6ImF1dG8iLGVkaXRUeXBlOiJub25lIn0sbmFtZWxlbmd0aDp7dmFsVHlwZToiaW50ZWdlciIsbWluOi0xLGRmbHQ6MTUsZWRpdFR5cGU6Im5vbmUifSxlZGl0VHlwZToibm9uZSJ9LHNlbGVjdGRpcmVjdGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiaCIsInYiLCJkIiwiYW55Il0sZGZsdDoiYW55IixlZGl0VHlwZToibm9uZSJ9fX0seyIuLi8uLi9wbG90cy9mb250X2F0dHJpYnV0ZXMiOjc5MSwiLi9jb25zdGFudHMiOjYyNX1dLDYzMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIGkocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGEscixpKX12YXIgbyxzPWkoImNsaWNrbW9kZSIpOyJzZWxlY3QiPT09aSgiZHJhZ21vZGUiKSYmaSgic2VsZWN0ZGlyZWN0aW9uIiksZS5faGFzKCJjYXJ0ZXNpYW4iKT9zLmluZGV4T2YoInNlbGVjdCIpPi0xP289ImNsb3Nlc3QiOihlLl9pc0hvcml6PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPWUuX3NjYXR0ZXJTdGFja09wdHN8fHt9LG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGE9dFtuXSxpPWEueGF4aXMrYS55YXhpcyxvPXJbaV18fHt9LHM9b1thLnN0YWNrZ3JvdXBdfHx7fTtpZigiaCIhPT1hLm9yaWVudGF0aW9uJiYiaCIhPT1zLm9yaWVudGF0aW9uKXJldHVybiExfXJldHVybiEwfShyLGUpLG89ZS5faXNIb3Jpej8ieSI6IngiKTpvPSJjbG9zZXN0IixpKCJob3Zlcm1vZGUiLG8pJiYoaSgiaG92ZXJkaXN0YW5jZSIpLGkoInNwaWtlZGlzdGFuY2UiKSk7dmFyIGw9ZS5faGFzKCJtYXBib3giKSxjPWUuX2hhcygiZ2VvIiksdT1lLl9iYXNlUGxvdE1vZHVsZXMubGVuZ3RoOyJ6b29tIj09PWUuZHJhZ21vZGUmJigobHx8YykmJjE9PT11fHxsJiZjJiYyPT09dSkmJihlLmRyYWdtb2RlPSJwYW4iKX19LHsiLi4vLi4vbGliIjo3MTcsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjYzMX1dLDYzMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4vaG92ZXJsYWJlbF9kZWZhdWx0cyIpLGk9dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2EodCxlLGZ1bmN0aW9uKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxpLHIsYSl9KX19LHsiLi4vLi4vbGliIjo3MTcsIi4vaG92ZXJsYWJlbF9kZWZhdWx0cyI6NjI5LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo2MzF9XSw2MzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9saWIvcmVnZXgiKS5jb3VudGVyLGk9dCgiLi4vLi4vcGxvdHMvZG9tYWluIikuYXR0cmlidXRlcyxvPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9jb25zdGFudHMiKS5pZFJlZ2V4LHM9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLGw9e3Jvd3M6e3ZhbFR5cGU6ImludGVnZXIiLG1pbjoxLGVkaXRUeXBlOiJwbG90In0scm93b3JkZXI6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInRvcCB0byBib3R0b20iLCJib3R0b20gdG8gdG9wIl0sZGZsdDoidG9wIHRvIGJvdHRvbSIsZWRpdFR5cGU6InBsb3QifSxjb2x1bW5zOnt2YWxUeXBlOiJpbnRlZ2VyIixtaW46MSxlZGl0VHlwZToicGxvdCJ9LHN1YnBsb3RzOnt2YWxUeXBlOiJpbmZvX2FycmF5IixmcmVlTGVuZ3RoOiEwLGRpbWVuc2lvbnM6MixpdGVtczp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlthKCJ4eSIpLnRvU3RyaW5nKCksIiJdLGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6InBsb3QifSx4YXhlczp7dmFsVHlwZToiaW5mb19hcnJheSIsZnJlZUxlbmd0aDohMCxpdGVtczp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOltvLngudG9TdHJpbmcoKSwiIl0sZWRpdFR5cGU6InBsb3QifSxlZGl0VHlwZToicGxvdCJ9LHlheGVzOnt2YWxUeXBlOiJpbmZvX2FycmF5IixmcmVlTGVuZ3RoOiEwLGl0ZW1zOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6W28ueS50b1N0cmluZygpLCIiXSxlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJwbG90In0scGF0dGVybjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiaW5kZXBlbmRlbnQiLCJjb3VwbGVkIl0sZGZsdDoiY291cGxlZCIsZWRpdFR5cGU6InBsb3QifSx4Z2FwOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGVkaXRUeXBlOiJwbG90In0seWdhcDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxlZGl0VHlwZToicGxvdCJ9LGRvbWFpbjppKHtuYW1lOiJncmlkIixlZGl0VHlwZToicGxvdCIsbm9HcmlkQ2VsbDohMH0se30pLHhzaWRlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJib3R0b20iLCJib3R0b20gcGxvdCIsInRvcCBwbG90IiwidG9wIl0sZGZsdDoiYm90dG9tIHBsb3QiLGVkaXRUeXBlOiJwbG90In0seXNpZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImxlZnQiLCJsZWZ0IHBsb3QiLCJyaWdodCBwbG90IiwicmlnaHQiXSxkZmx0OiJsZWZ0IHBsb3QiLGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6InBsb3QifTtmdW5jdGlvbiBjKHQsZSxyKXt2YXIgbj1lW3IrImF4ZXMiXSxhPU9iamVjdC5rZXlzKCh0Ll9zcGxvbUF4ZXN8fHt9KVtyXXx8e30pO3JldHVybiBBcnJheS5pc0FycmF5KG4pP246YS5sZW5ndGg/YTp2b2lkIDB9ZnVuY3Rpb24gdSh0LGUscixuLGEsaSl7dmFyIG89ZSh0KyJnYXAiLHIpLHM9ZSgiZG9tYWluLiIrdCk7ZSh0KyJzaWRlIixuKTtmb3IodmFyIGw9bmV3IEFycmF5KGEpLGM9c1swXSx1PShzWzFdLWMpLyhhLW8pLGg9dSooMS1vKSxmPTA7ZjxhO2YrKyl7dmFyIHA9Yyt1KmY7bFtpP2EtMS1mOmZdPVtwLHAraF19cmV0dXJuIGx9ZnVuY3Rpb24gaCh0LGUscixuLGEpe3ZhciBpLG89bmV3IEFycmF5KHIpO2Z1bmN0aW9uIHModCxyKXstMSE9PWUuaW5kZXhPZihyKSYmdm9pZCAwPT09bltyXT8ob1t0XT1yLG5bcl09dCk6b1t0XT0iIn1pZihBcnJheS5pc0FycmF5KHQpKWZvcihpPTA7aTxyO2krKylzKGksdFtpXSk7ZWxzZSBmb3IocygwLGEpLGk9MTtpPHI7aSsrKXMoaSxhKyhpKzEpKTtyZXR1cm4gb31lLmV4cG9ydHM9e21vZHVsZVR5cGU6ImNvbXBvbmVudCIsbmFtZToiZ3JpZCIsc2NoZW1hOntsYXlvdXQ6e2dyaWQ6bH19LGxheW91dEF0dHJpYnV0ZXM6bCxzaXplRGVmYXVsdHM6ZnVuY3Rpb24odCxlKXt2YXIgcj10LmdyaWR8fHt9LGE9YyhlLHIsIngiKSxpPWMoZSxyLCJ5Iik7aWYodC5ncmlkfHxhfHxpKXt2YXIgbyxoLGY9QXJyYXkuaXNBcnJheShyLnN1YnBsb3RzKSYmQXJyYXkuaXNBcnJheShyLnN1YnBsb3RzWzBdKSxwPUFycmF5LmlzQXJyYXkoYSksZD1BcnJheS5pc0FycmF5KGkpLGc9cCYmYSE9PXIueGF4ZXMmJmQmJmkhPT1yLnlheGVzO2Y/KG89ci5zdWJwbG90cy5sZW5ndGgsaD1yLnN1YnBsb3RzWzBdLmxlbmd0aCk6KGQmJihvPWkubGVuZ3RoKSxwJiYoaD1hLmxlbmd0aCkpO3ZhciB2PXMubmV3Q29udGFpbmVyKGUsImdyaWQiKSxtPVQoInJvd3MiLG8pLHk9VCgiY29sdW1ucyIsaCk7aWYobSp5PjEpe2Z8fHB8fGR8fCJpbmRlcGVuZGVudCI9PT1UKCJwYXR0ZXJuIikmJihmPSEwKSx2Ll9oYXNTdWJwbG90R3JpZD1mO3ZhciB4LGIsXz0idG9wIHRvIGJvdHRvbSI9PT1UKCJyb3dvcmRlciIpLHc9Zj8uMjouMSxrPWY/LjM6LjE7ZyYmZS5fc3Bsb21HcmlkRGZsdCYmKHg9ZS5fc3Bsb21HcmlkRGZsdC54c2lkZSxiPWUuX3NwbG9tR3JpZERmbHQueXNpZGUpLHYuX2RvbWFpbnM9e3g6dSgieCIsVCx3LHgseSkseTp1KCJ5IixULGssYixtLF8pfX1lbHNlIGRlbGV0ZSBlLmdyaWR9ZnVuY3Rpb24gVCh0LGUpe3JldHVybiBuLmNvZXJjZShyLHYsbCx0LGUpfX0sY29udGVudERlZmF1bHRzOmZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5ncmlkO2lmKHImJnIuX2RvbWFpbnMpe3ZhciBuLGEsaSxvLHMsbCx1LGY9dC5ncmlkfHx7fSxwPWUuX3N1YnBsb3RzLGQ9ci5faGFzU3VicGxvdEdyaWQsZz1yLnJvd3Msdj1yLmNvbHVtbnMsbT0iaW5kZXBlbmRlbnQiPT09ci5wYXR0ZXJuLHk9ci5fYXhpc01hcD17fTtpZihkKXt2YXIgeD1mLnN1YnBsb3RzfHxbXTtsPXIuc3VicGxvdHM9bmV3IEFycmF5KGcpO3ZhciBiPTE7Zm9yKG49MDtuPGc7bisrKXt2YXIgXz1sW25dPW5ldyBBcnJheSh2KSx3PXhbbl18fFtdO2ZvcihhPTA7YTx2O2ErKylpZihtPyhzPTE9PT1iPyJ4eSI6IngiK2IrInkiK2IsYisrKTpzPXdbYV0sX1thXT0iIiwtMSE9PXAuY2FydGVzaWFuLmluZGV4T2Yocykpe2lmKHU9cy5pbmRleE9mKCJ5IiksaT1zLnNsaWNlKDAsdSksbz1zLnNsaWNlKHUpLHZvaWQgMCE9PXlbaV0mJnlbaV0hPT1hfHx2b2lkIDAhPT15W29dJiZ5W29dIT09biljb250aW51ZTtfW2FdPXMseVtpXT1hLHlbb109bn19fWVsc2V7dmFyIGs9YyhlLGYsIngiKSxUPWMoZSxmLCJ5Iik7ci54YXhlcz1oKGsscC54YXhpcyx2LHksIngiKSxyLnlheGVzPWgoVCxwLnlheGlzLGcseSwieSIpfXZhciBNPXIuX2FuY2hvcnM9e30sQT0idG9wIHRvIGJvdHRvbSI9PT1yLnJvd29yZGVyO2Zvcih2YXIgUyBpbiB5KXt2YXIgRSxMLEMsUD1TLmNoYXJBdCgwKSxPPXJbUCsic2lkZSJdO2lmKE8ubGVuZ3RoPDgpTVtTXT0iZnJlZSI7ZWxzZSBpZigieCI9PT1QKXtpZigidCI9PT1PLmNoYXJBdCgwKT09PUE/KEU9MCxMPTEsQz1nKTooRT1nLTEsTD0tMSxDPS0xKSxkKXt2YXIgej15W1NdO2ZvcihuPUU7biE9PUM7bis9TClpZigocz1sW25dW3pdKSYmKHU9cy5pbmRleE9mKCJ5Iikscy5zbGljZSgwLHUpPT09Uykpe01bU109cy5zbGljZSh1KTticmVha319ZWxzZSBmb3Iobj1FO24hPT1DO24rPUwpaWYobz1yLnlheGVzW25dLC0xIT09cC5jYXJ0ZXNpYW4uaW5kZXhPZihTK28pKXtNW1NdPW87YnJlYWt9fWVsc2UgaWYoImwiPT09Ty5jaGFyQXQoMCk/KEU9MCxMPTEsQz12KTooRT12LTEsTD0tMSxDPS0xKSxkKXt2YXIgST15W1NdO2ZvcihuPUU7biE9PUM7bis9TClpZigocz1sW0ldW25dKSYmKHU9cy5pbmRleE9mKCJ5Iikscy5zbGljZSh1KT09PVMpKXtNW1NdPXMuc2xpY2UoMCx1KTticmVha319ZWxzZSBmb3Iobj1FO24hPT1DO24rPUwpaWYoaT1yLnhheGVzW25dLC0xIT09cC5jYXJ0ZXNpYW4uaW5kZXhPZihpK1MpKXtNW1NdPWk7YnJlYWt9fX19fX0seyIuLi8uLi9saWIiOjcxNywiLi4vLi4vbGliL3JlZ2V4Ijo3MzMsIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjc1NSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2NvbnN0YW50cyI6NzcxLCIuLi8uLi9wbG90cy9kb21haW4iOjc5MH1dLDYzNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vY29uc3RhbnRzIiksYT10KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIikudGVtcGxhdGVkQXJyYXk7ZS5leHBvcnRzPWEoImltYWdlIix7dmlzaWJsZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToiYXJyYXlkcmF3In0sc291cmNlOnt2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJhcnJheWRyYXcifSxsYXllcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYmVsb3ciLCJhYm92ZSJdLGRmbHQ6ImFib3ZlIixlZGl0VHlwZToiYXJyYXlkcmF3In0sc2l6ZXg6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDowLGVkaXRUeXBlOiJhcnJheWRyYXcifSxzaXpleTp7dmFsVHlwZToibnVtYmVyIixkZmx0OjAsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LHNpemluZzp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZmlsbCIsImNvbnRhaW4iLCJzdHJldGNoIl0sZGZsdDoiY29udGFpbiIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LG9wYWNpdHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxLGVkaXRUeXBlOiJhcnJheWRyYXcifSx4Ont2YWxUeXBlOiJhbnkiLGRmbHQ6MCxlZGl0VHlwZToiYXJyYXlkcmF3In0seTp7dmFsVHlwZToiYW55IixkZmx0OjAsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LHhhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImxlZnQiLCJjZW50ZXIiLCJyaWdodCJdLGRmbHQ6ImxlZnQiLGVkaXRUeXBlOiJhcnJheWRyYXcifSx5YW5jaG9yOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0b3AiLCJtaWRkbGUiLCJib3R0b20iXSxkZmx0OiJ0b3AiLGVkaXRUeXBlOiJhcnJheWRyYXcifSx4cmVmOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJwYXBlciIsbi5pZFJlZ2V4LngudG9TdHJpbmcoKV0sZGZsdDoicGFwZXIiLGVkaXRUeXBlOiJhcnJheWRyYXcifSx5cmVmOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJwYXBlciIsbi5pZFJlZ2V4LnkudG9TdHJpbmcoKV0sZGZsdDoicGFwZXIiLGVkaXRUeXBlOiJhcnJheWRyYXcifSxlZGl0VHlwZToiYXJyYXlkcmF3In0pfSx7Ii4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjc1NSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2NvbnN0YW50cyI6NzcxfV0sNjM2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksYT10KCIuLi8uLi9saWIvdG9fbG9nX3JhbmdlIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGkpe2U9ZXx8e307dmFyIG89ImxvZyI9PT1yJiYibGluZWFyIj09PWUudHlwZSxzPSJsaW5lYXIiPT09ciYmImxvZyI9PT1lLnR5cGU7aWYob3x8cylmb3IodmFyIGwsYyx1PXQuX2Z1bGxMYXlvdXQuaW1hZ2VzLGg9ZS5faWQuY2hhckF0KDApLGY9MDtmPHUubGVuZ3RoO2YrKylpZihjPSJpbWFnZXNbIitmKyJdLiIsKGw9dVtmXSlbaCsicmVmIl09PT1lLl9pZCl7dmFyIHA9bFtoXSxkPWxbInNpemUiK2hdLGc9bnVsbCx2PW51bGw7aWYobyl7Zz1hKHAsZS5yYW5nZSk7dmFyIG09ZC9NYXRoLnBvdygxMCxnKS8yO3Y9MipNYXRoLmxvZyhtK01hdGguc3FydCgxK20qbSkpL01hdGguTE4xMH1lbHNlIHY9KGc9TWF0aC5wb3coMTAscCkpKihNYXRoLnBvdygxMCxkLzIpLU1hdGgucG93KDEwLC1kLzIpKTtuKGcpP24odil8fCh2PW51bGwpOihnPW51bGwsdj1udWxsKSxpKGMraCxnKSxpKGMrInNpemUiK2gsdil9fX0seyIuLi8uLi9saWIvdG9fbG9nX3JhbmdlIjo3NDMsImZhc3QtaXNudW1lcmljIjoyMjh9XSw2Mzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGk9dCgiLi4vLi4vcGxvdHMvYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIiksbz10KCIuL2F0dHJpYnV0ZXMiKTtmdW5jdGlvbiBzKHQsZSxyKXtmdW5jdGlvbiBpKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxvLHIsYSl9dmFyIHM9aSgic291cmNlIik7aWYoIWkoInZpc2libGUiLCEhcykpcmV0dXJuIGU7aSgibGF5ZXIiKSxpKCJ4YW5jaG9yIiksaSgieWFuY2hvciIpLGkoInNpemV4IiksaSgic2l6ZXkiKSxpKCJzaXppbmciKSxpKCJvcGFjaXR5Iik7Zm9yKHZhciBsPXtfZnVsbExheW91dDpyfSxjPVsieCIsInkiXSx1PTA7dTwyO3UrKyl7dmFyIGg9Y1t1XSxmPWEuY29lcmNlUmVmKHQsZSxsLGgsInBhcGVyIik7aWYoInBhcGVyIiE9PWYpYS5nZXRGcm9tSWQobCxmKS5faW1nSW5kaWNlcy5wdXNoKGUuX2luZGV4KTthLmNvZXJjZVBvc2l0aW9uKGUsbCxpLGYsaCwwKX1yZXR1cm4gZX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpKHQsZSx7bmFtZToiaW1hZ2VzIixoYW5kbGVJdGVtRGVmYXVsdHM6c30pfX0seyIuLi8uLi9saWIiOjcxNywiLi4vLi4vcGxvdHMvYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIjo3NjEsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo3NjUsIi4vYXR0cmlidXRlcyI6NjM1fV0sNjM4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksYT10KCIuLi9kcmF3aW5nIiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLG89dCgiLi4vLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGUscixzPXQuX2Z1bGxMYXlvdXQsbD1bXSxjPXt9LHU9W107Zm9yKHI9MDtyPHMuaW1hZ2VzLmxlbmd0aDtyKyspe3ZhciBoPXMuaW1hZ2VzW3JdO2lmKGgudmlzaWJsZSlpZigiYmVsb3ciPT09aC5sYXllciYmInBhcGVyIiE9PWgueHJlZiYmInBhcGVyIiE9PWgueXJlZil7ZT1oLnhyZWYraC55cmVmO3ZhciBmPXMuX3Bsb3RzW2VdO2lmKCFmKXt1LnB1c2goaCk7Y29udGludWV9Zi5tYWlucGxvdCYmKGU9Zi5tYWlucGxvdC5pZCksY1tlXXx8KGNbZV09W10pLGNbZV0ucHVzaChoKX1lbHNlImFib3ZlIj09PWgubGF5ZXI/bC5wdXNoKGgpOnUucHVzaChoKX12YXIgcD17eDp7bGVmdDp7c2l6aW5nOiJ4TWluIixvZmZzZXQ6MH0sY2VudGVyOntzaXppbmc6InhNaWQiLG9mZnNldDotLjV9LHJpZ2h0OntzaXppbmc6InhNYXgiLG9mZnNldDotMX19LHk6e3RvcDp7c2l6aW5nOiJZTWluIixvZmZzZXQ6MH0sbWlkZGxlOntzaXppbmc6IllNaWQiLG9mZnNldDotLjV9LGJvdHRvbTp7c2l6aW5nOiJZTWF4IixvZmZzZXQ6LTF9fX07ZnVuY3Rpb24gZChlKXt2YXIgcj1uLnNlbGVjdCh0aGlzKTtpZih0aGlzLl9pbWdTcmMhPT1lLnNvdXJjZSlpZihyLmF0dHIoInhtbG5zIixvLnN2ZyksZS5zb3VyY2UmJiJkYXRhOiI9PT1lLnNvdXJjZS5zbGljZSgwLDUpKXIuYXR0cigieGxpbms6aHJlZiIsZS5zb3VyY2UpLHRoaXMuX2ltZ1NyYz1lLnNvdXJjZTtlbHNle3ZhciBhPW5ldyBQcm9taXNlKGZ1bmN0aW9uKHQpe3ZhciBuPW5ldyBJbWFnZTtmdW5jdGlvbiBhKCl7ci5yZW1vdmUoKSx0KCl9dGhpcy5pbWc9bixuLnNldEF0dHJpYnV0ZSgiY3Jvc3NPcmlnaW4iLCJhbm9ueW1vdXMiKSxuLm9uZXJyb3I9YSxuLm9ubG9hZD1mdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO2Uud2lkdGg9dGhpcy53aWR0aCxlLmhlaWdodD10aGlzLmhlaWdodCxlLmdldENvbnRleHQoIjJkIikuZHJhd0ltYWdlKHRoaXMsMCwwKTt2YXIgbj1lLnRvRGF0YVVSTCgiaW1hZ2UvcG5nIik7ci5hdHRyKCJ4bGluazpocmVmIixuKSx0KCl9LHIub24oImVycm9yIixhKSxuLnNyYz1lLnNvdXJjZSx0aGlzLl9pbWdTcmM9ZS5zb3VyY2V9LmJpbmQodGhpcykpO3QuX3Byb21pc2VzLnB1c2goYSl9fWZ1bmN0aW9uIGcoZSl7dmFyIHI9bi5zZWxlY3QodGhpcyksbz1pLmdldEZyb21JZCh0LGUueHJlZiksbD1pLmdldEZyb21JZCh0LGUueXJlZiksYz1zLl9zaXplLHU9bz9NYXRoLmFicyhvLmwycChlLnNpemV4KS1vLmwycCgwKSk6ZS5zaXpleCpjLncsaD1sP01hdGguYWJzKGwubDJwKGUuc2l6ZXkpLWwubDJwKDApKTplLnNpemV5KmMuaCxmPXUqcC54W2UueGFuY2hvcl0ub2Zmc2V0LGQ9aCpwLnlbZS55YW5jaG9yXS5vZmZzZXQsZz1wLnhbZS54YW5jaG9yXS5zaXppbmcrcC55W2UueWFuY2hvcl0uc2l6aW5nLHY9KG8/by5yMnAoZS54KStvLl9vZmZzZXQ6ZS54KmMudytjLmwpK2YsbT0obD9sLnIycChlLnkpK2wuX29mZnNldDpjLmgtZS55KmMuaCtjLnQpK2Q7c3dpdGNoKGUuc2l6aW5nKXtjYXNlImZpbGwiOmcrPSIgc2xpY2UiO2JyZWFrO2Nhc2Uic3RyZXRjaCI6Zz0ibm9uZSJ9ci5hdHRyKHt4OnYseTptLHdpZHRoOnUsaGVpZ2h0OmgscHJlc2VydmVBc3BlY3RSYXRpbzpnLG9wYWNpdHk6ZS5vcGFjaXR5fSk7dmFyIHk9KG8/by5faWQ6IiIpKyhsP2wuX2lkOiIiKTthLnNldENsaXBVcmwocix5PyJjbGlwIitzLl91aWQreTpudWxsLHQpfXZhciB2PXMuX2ltYWdlTG93ZXJMYXllci5zZWxlY3RBbGwoImltYWdlIikuZGF0YSh1KSxtPXMuX2ltYWdlVXBwZXJMYXllci5zZWxlY3RBbGwoImltYWdlIikuZGF0YShsKTt2LmVudGVyKCkuYXBwZW5kKCJpbWFnZSIpLG0uZW50ZXIoKS5hcHBlbmQoImltYWdlIiksdi5leGl0KCkucmVtb3ZlKCksbS5leGl0KCkucmVtb3ZlKCksdi5lYWNoKGZ1bmN0aW9uKHQpe2QuYmluZCh0aGlzKSh0KSxnLmJpbmQodGhpcykodCl9KSxtLmVhY2goZnVuY3Rpb24odCl7ZC5iaW5kKHRoaXMpKHQpLGcuYmluZCh0aGlzKSh0KX0pO3ZhciB5PU9iamVjdC5rZXlzKHMuX3Bsb3RzKTtmb3Iocj0wO3I8eS5sZW5ndGg7cisrKXtlPXlbcl07dmFyIHg9cy5fcGxvdHNbZV07aWYoeC5pbWFnZWxheWVyKXt2YXIgYj14LmltYWdlbGF5ZXIuc2VsZWN0QWxsKCJpbWFnZSIpLmRhdGEoY1tlXXx8W10pO2IuZW50ZXIoKS5hcHBlbmQoImltYWdlIiksYi5leGl0KCkucmVtb3ZlKCksYi5lYWNoKGZ1bmN0aW9uKHQpe2QuYmluZCh0aGlzKSh0KSxnLmJpbmQodGhpcykodCl9KX19fX0seyIuLi8uLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyI6Njk0LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NzY1LCIuLi9kcmF3aW5nIjo2MTMsZDM6MTY1fV0sNjM5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bW9kdWxlVHlwZToiY29tcG9uZW50IixuYW1lOiJpbWFnZXMiLGxheW91dEF0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5TGF5b3V0RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGluY2x1ZGVCYXNlUGxvdDp0KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vaW5jbHVkZV9jb21wb25lbnRzIikoImltYWdlcyIpLGRyYXc6dCgiLi9kcmF3IiksY29udmVydENvb3Jkczp0KCIuL2NvbnZlcnRfY29vcmRzIil9fSx7Ii4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9pbmNsdWRlX2NvbXBvbmVudHMiOjc3NSwiLi9hdHRyaWJ1dGVzIjo2MzUsIi4vY29udmVydF9jb29yZHMiOjYzNiwiLi9kZWZhdWx0cyI6NjM3LCIuL2RyYXciOjYzOH1dLDY0MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9mb250X2F0dHJpYnV0ZXMiKSxhPXQoIi4uL2NvbG9yL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9e2JnY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToibGVnZW5kIn0sYm9yZGVyY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmEuZGVmYXVsdExpbmUsZWRpdFR5cGU6ImxlZ2VuZCJ9LGJvcmRlcndpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MCxlZGl0VHlwZToibGVnZW5kIn0sZm9udDpuKHtlZGl0VHlwZToibGVnZW5kIn0pLG9yaWVudGF0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ2IiwiaCJdLGRmbHQ6InYiLGVkaXRUeXBlOiJsZWdlbmQifSx0cmFjZW9yZGVyOnt2YWxUeXBlOiJmbGFnbGlzdCIsZmxhZ3M6WyJyZXZlcnNlZCIsImdyb3VwZWQiXSxleHRyYXM6WyJub3JtYWwiXSxlZGl0VHlwZToibGVnZW5kIn0sdHJhY2Vncm91cGdhcDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjEwLGVkaXRUeXBlOiJsZWdlbmQifSxpdGVtc2l6aW5nOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0cmFjZSIsImNvbnN0YW50Il0sZGZsdDoidHJhY2UiLGVkaXRUeXBlOiJsZWdlbmQifSxpdGVtY2xpY2s6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInRvZ2dsZSIsInRvZ2dsZW90aGVycyIsITFdLGRmbHQ6InRvZ2dsZSIsZWRpdFR5cGU6ImxlZ2VuZCJ9LGl0ZW1kb3VibGVjbGljazp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsidG9nZ2xlIiwidG9nZ2xlb3RoZXJzIiwhMV0sZGZsdDoidG9nZ2xlb3RoZXJzIixlZGl0VHlwZToibGVnZW5kIn0seDp7dmFsVHlwZToibnVtYmVyIixtaW46LTIsbWF4OjMsZWRpdFR5cGU6ImxlZ2VuZCJ9LHhhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImF1dG8iLCJsZWZ0IiwiY2VudGVyIiwicmlnaHQiXSxkZmx0OiJsZWZ0IixlZGl0VHlwZToibGVnZW5kIn0seTp7dmFsVHlwZToibnVtYmVyIixtaW46LTIsbWF4OjMsZWRpdFR5cGU6ImxlZ2VuZCJ9LHlhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImF1dG8iLCJ0b3AiLCJtaWRkbGUiLCJib3R0b20iXSxlZGl0VHlwZToibGVnZW5kIn0sdWlyZXZpc2lvbjp7dmFsVHlwZToiYW55IixlZGl0VHlwZToibm9uZSJ9LHZhbGlnbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsidG9wIiwibWlkZGxlIiwiYm90dG9tIl0sZGZsdDoibWlkZGxlIixlZGl0VHlwZToibGVnZW5kIn0sdGl0bGU6e3RleHQ6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixlZGl0VHlwZToibGVnZW5kIn0sZm9udDpuKHtlZGl0VHlwZToibGVnZW5kIn0pLHNpZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInRvcCIsImxlZnQiLCJ0b3AgbGVmdCJdLGVkaXRUeXBlOiJsZWdlbmQifSxlZGl0VHlwZToibGVnZW5kIn0sZWRpdFR5cGU6ImxlZ2VuZCJ9fSx7Ii4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyI6NzkxLCIuLi9jb2xvci9hdHRyaWJ1dGVzIjo1OTF9XSw2NDE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtzY3JvbGxCYXJXaWR0aDo2LHNjcm9sbEJhck1pbkhlaWdodDoyMCxzY3JvbGxCYXJDb2xvcjoiIzgwOEJBNCIsc2Nyb2xsQmFyTWFyZ2luOjQsc2Nyb2xsQmFyRW50ZXJBdHRyczp7cng6MjAscnk6Myx3aWR0aDowLGhlaWdodDowfSx0aXRsZVBhZDoyLHRleHRHYXA6NDAsaXRlbUdhcDo1fX0se31dLDY0MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9yZWdpc3RyeSIpLGE9dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIiksbz10KCIuL2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL3Bsb3RzL2xheW91dF9hdHRyaWJ1dGVzIiksbD10KCIuL2hlbHBlcnMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYz10LmxlZ2VuZHx8e30sdT0wLGg9ITEsZj0ibm9ybWFsIixwPTA7cDxyLmxlbmd0aDtwKyspe3ZhciBkPXJbcF07ZC52aXNpYmxlJiYoKGQuc2hvd2xlZ2VuZHx8ZC5fZGZsdFNob3dMZWdlbmQmJiEoZC5fbW9kdWxlJiZkLl9tb2R1bGUuYXR0cmlidXRlcyYmZC5fbW9kdWxlLmF0dHJpYnV0ZXMuc2hvd2xlZ2VuZCYmITE9PT1kLl9tb2R1bGUuYXR0cmlidXRlcy5zaG93bGVnZW5kLmRmbHQpKSYmKHUrKyxkLnNob3dsZWdlbmQmJihoPSEwLChuLnRyYWNlSXMoZCwicGllLWxpa2UiKXx8ITA9PT1kLl9pbnB1dC5zaG93bGVnZW5kKSYmdSsrKSksKG4udHJhY2VJcyhkLCJiYXIiKSYmInN0YWNrIj09PWUuYmFybW9kZXx8LTEhPT1bInRvbmV4dHgiLCJ0b25leHR5Il0uaW5kZXhPZihkLmZpbGwpKSYmKGY9bC5pc0dyb3VwZWQoe3RyYWNlb3JkZXI6Zn0pPyJncm91cGVkK3JldmVyc2VkIjoicmV2ZXJzZWQiKSx2b2lkIDAhPT1kLmxlZ2VuZGdyb3VwJiYiIiE9PWQubGVnZW5kZ3JvdXAmJihmPWwuaXNSZXZlcnNlZCh7dHJhY2VvcmRlcjpmfSk/InJldmVyc2VkK2dyb3VwZWQiOiJncm91cGVkIikpfXZhciBnPWEuY29lcmNlKHQsZSxzLCJzaG93bGVnZW5kIixoJiZ1PjEpO2lmKCExIT09Z3x8Yy51aXJldmlzaW9uKXt2YXIgdj1pLm5ld0NvbnRhaW5lcihlLCJsZWdlbmQiKTtpZihfKCJ1aXJldmlzaW9uIixlLnVpcmV2aXNpb24pLCExIT09Zyl7XygiYmdjb2xvciIsZS5wYXBlcl9iZ2NvbG9yKSxfKCJib3JkZXJjb2xvciIpLF8oImJvcmRlcndpZHRoIiksYS5jb2VyY2VGb250KF8sImZvbnQiLGUuZm9udCk7dmFyIG0seSx4LGI9Xygib3JpZW50YXRpb24iKTsiaCI9PT1iPyhtPTAsbi5nZXRDb21wb25lbnRNZXRob2QoInJhbmdlc2xpZGVyIiwiaXNWaXNpYmxlIikodC54YXhpcyk/KHk9MS4xLHg9ImJvdHRvbSIpOih5PS0uMSx4PSJ0b3AiKSk6KG09MS4wMix5PTEseD0iYXV0byIpLF8oInRyYWNlb3JkZXIiLGYpLGwuaXNHcm91cGVkKGUubGVnZW5kKSYmXygidHJhY2Vncm91cGdhcCIpLF8oIml0ZW1zaXppbmciKSxfKCJpdGVtY2xpY2siKSxfKCJpdGVtZG91YmxlY2xpY2siKSxfKCJ4IixtKSxfKCJ4YW5jaG9yIiksXygieSIseSksXygieWFuY2hvciIseCksXygidmFsaWduIiksYS5ub25lT3JBbGwoYyx2LFsieCIsInkiXSksXygidGl0bGUudGV4dCIpJiYoXygidGl0bGUuc2lkZSIsImgiPT09Yj8ibGVmdCI6InRvcCIpLGEuY29lcmNlRm9udChfLCJ0aXRsZS5mb250IixlLmZvbnQpKX19ZnVuY3Rpb24gXyh0LGUpe3JldHVybiBhLmNvZXJjZShjLHYsbyx0LGUpfX19LHsiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjc1NSwiLi4vLi4vcGxvdHMvbGF5b3V0X2F0dHJpYnV0ZXMiOjgxNywiLi4vLi4vcmVnaXN0cnkiOjg0NiwiLi9hdHRyaWJ1dGVzIjo2NDAsIi4vaGVscGVycyI6NjQ2fV0sNjQzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksYT10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIiksbz10KCIuLi8uLi9yZWdpc3RyeSIpLHM9dCgiLi4vLi4vbGliL2V2ZW50cyIpLGw9dCgiLi4vZHJhZ2VsZW1lbnQiKSxjPXQoIi4uL2RyYXdpbmciKSx1PXQoIi4uL2NvbG9yIiksaD10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSxmPXQoIi4vaGFuZGxlX2NsaWNrIikscD10KCIuL2NvbnN0YW50cyIpLGQ9dCgiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCIpLGc9ZC5MSU5FX1NQQUNJTkcsdj1kLkZST01fVEwsbT1kLkZST01fQlIseT10KCIuL2dldF9sZWdlbmRfZGF0YSIpLHg9dCgiLi9zdHlsZSIpLGI9dCgiLi9oZWxwZXJzIik7ZnVuY3Rpb24gXyh0LGUscixuLGEpe3ZhciBpPXIuZGF0YSgpWzBdWzBdLnRyYWNlLGw9e2V2ZW50OmEsbm9kZTpyLm5vZGUoKSxjdXJ2ZU51bWJlcjppLmluZGV4LGV4cGFuZGVkSW5kZXg6aS5fZXhwYW5kZWRJbmRleCxkYXRhOnQuZGF0YSxsYXlvdXQ6dC5sYXlvdXQsZnJhbWVzOnQuX3RyYW5zaXRpb25EYXRhLl9mcmFtZXMsY29uZmlnOnQuX2NvbnRleHQsZnVsbERhdGE6dC5fZnVsbERhdGEsZnVsbExheW91dDp0Ll9mdWxsTGF5b3V0fTtpZihpLl9ncm91cCYmKGwuZ3JvdXA9aS5fZ3JvdXApLG8udHJhY2VJcyhpLCJwaWUtbGlrZSIpJiYobC5sYWJlbD1yLmRhdHVtKClbMF0ubGFiZWwpLCExIT09cy50cmlnZ2VySGFuZGxlcih0LCJwbG90bHlfbGVnZW5kY2xpY2siLGwpKWlmKDE9PT1uKWUuX2NsaWNrVGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZihyLHQsbil9LHQuX2NvbnRleHQuZG91YmxlQ2xpY2tEZWxheSk7ZWxzZSBpZigyPT09bil7ZS5fY2xpY2tUaW1lb3V0JiZjbGVhclRpbWVvdXQoZS5fY2xpY2tUaW1lb3V0KSx0Ll9sZWdlbmRNb3VzZURvd25UaW1lPTAsITEhPT1zLnRyaWdnZXJIYW5kbGVyKHQsInBsb3RseV9sZWdlbmRkb3VibGVjbGljayIsbCkmJmYocix0LG4pfX1mdW5jdGlvbiB3KHQsZSl7dmFyIHI9dC5kYXRhKClbMF1bMF0sbj1lLl9mdWxsTGF5b3V0LmxlZ2VuZCxpPXIudHJhY2Uscz1vLnRyYWNlSXMoaSwicGllLWxpa2UiKSxsPWkuaW5kZXgsdT1lLl9jb250ZXh0LmVkaXRzLmxlZ2VuZFRleHQmJiFzLGY9bi5fbWF4TmFtZUxlbmd0aCxkPXM/ci5sYWJlbDppLm5hbWU7aS5fbWV0YSYmKGQ9YS50ZW1wbGF0ZVN0cmluZyhkLGkuX21ldGEpKTt2YXIgZz1hLmVuc3VyZVNpbmdsZSh0LCJ0ZXh0IiwibGVnZW5kdGV4dCIpO2cuYXR0cigidGV4dC1hbmNob3IiLCJzdGFydCIpLmNsYXNzZWQoInVzZXItc2VsZWN0LW5vbmUiLCEwKS5jYWxsKGMuZm9udCxuLmZvbnQpLnRleHQodT9rKGQsZik6ZCksaC5wb3NpdGlvblRleHQoZyxwLnRleHRHYXAsMCksdT9nLmNhbGwoaC5tYWtlRWRpdGFibGUse2dkOmUsdGV4dDpkfSkuY2FsbChNLHQsZSkub24oImVkaXQiLGZ1bmN0aW9uKG4pe3RoaXMudGV4dChrKG4sZikpLmNhbGwoTSx0LGUpO3ZhciBpPXIudHJhY2UuX2Z1bGxJbnB1dHx8e30scz17fTtpZihvLmhhc1RyYW5zZm9ybShpLCJncm91cGJ5Iikpe3ZhciBjPW8uZ2V0VHJhbnNmb3JtSW5kaWNlcyhpLCJncm91cGJ5IiksdT1jW2MubGVuZ3RoLTFdLGg9YS5rZXllZENvbnRhaW5lcihpLCJ0cmFuc2Zvcm1zWyIrdSsiXS5zdHlsZXMiLCJ0YXJnZXQiLCJ2YWx1ZS5uYW1lIik7aC5zZXQoci50cmFjZS5fZ3JvdXAsbikscz1oLmNvbnN0cnVjdFVwZGF0ZSgpfWVsc2Ugcy5uYW1lPW47cmV0dXJuIG8uY2FsbCgiX2d1aVJlc3R5bGUiLGUscyxsKX0pOk0oZyx0LGUpfWZ1bmN0aW9uIGsodCxlKXt2YXIgcj1NYXRoLm1heCg0LGUpO2lmKHQmJnQudHJpbSgpLmxlbmd0aD49ci8yKXJldHVybiB0O2Zvcih2YXIgbj1yLSh0PXR8fCIiKS5sZW5ndGg7bj4wO24tLSl0Kz0iICI7cmV0dXJuIHR9ZnVuY3Rpb24gVCh0LGUpe3ZhciByLGk9ZS5fY29udGV4dC5kb3VibGVDbGlja0RlbGF5LG89MSxzPWEuZW5zdXJlU2luZ2xlKHQsInJlY3QiLCJsZWdlbmR0b2dnbGUiLGZ1bmN0aW9uKHQpe3Quc3R5bGUoImN1cnNvciIsInBvaW50ZXIiKS5hdHRyKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpLmNhbGwodS5maWxsLCJyZ2JhKDAsMCwwLDApIil9KTtzLm9uKCJtb3VzZWRvd24iLGZ1bmN0aW9uKCl7KHI9KG5ldyBEYXRlKS5nZXRUaW1lKCkpLWUuX2xlZ2VuZE1vdXNlRG93blRpbWU8aT9vKz0xOihvPTEsZS5fbGVnZW5kTW91c2VEb3duVGltZT1yKX0pLHMub24oIm1vdXNldXAiLGZ1bmN0aW9uKCl7aWYoIWUuX2RyYWdnZWQmJiFlLl9lZGl0aW5nKXt2YXIgcj1lLl9mdWxsTGF5b3V0LmxlZ2VuZDsobmV3IERhdGUpLmdldFRpbWUoKS1lLl9sZWdlbmRNb3VzZURvd25UaW1lPmkmJihvPU1hdGgubWF4KG8tMSwxKSksXyhlLHIsdCxvLG4uZXZlbnQpfX0pfWZ1bmN0aW9uIE0odCxlLHIpe2guY29udmVydFRvVHNwYW5zKHQscixmdW5jdGlvbigpeyFmdW5jdGlvbih0LGUpe3ZhciByPXQuZGF0YSgpWzBdWzBdO2lmKHImJiFyLnRyYWNlLnNob3dsZWdlbmQpcmV0dXJuIHZvaWQgdC5yZW1vdmUoKTt2YXIgbixhLGk9dC5zZWxlY3QoImdbY2xhc3MqPW1hdGgtZ3JvdXBdIiksbz1pLm5vZGUoKSxzPWUuX2Z1bGxMYXlvdXQubGVnZW5kLmJvcmRlcndpZHRoLGw9ZS5fZnVsbExheW91dC5sZWdlbmQsdT0ocj9sOmwudGl0bGUpLmZvbnQuc2l6ZSpnO2lmKG8pe3ZhciBmPWMuYkJveChvKTtuPWYuaGVpZ2h0LGE9Zi53aWR0aCxyP2Muc2V0VHJhbnNsYXRlKGksMCwuMjUqbik6Yy5zZXRUcmFuc2xhdGUoaSxzLC43NSpuK3MpfWVsc2V7dmFyIGQ9dC5zZWxlY3Qocj8iLmxlZ2VuZHRleHQiOiIubGVnZW5kdGl0bGV0ZXh0Iiksdj1oLmxpbmVDb3VudChkKSxtPWQubm9kZSgpO249dSp2LGE9bT9jLmJCb3gobSkud2lkdGg6MDt2YXIgeT11Kigodi0xKS8yLS4zKTtyP2gucG9zaXRpb25UZXh0KGQscC50ZXh0R2FwLC15KTpoLnBvc2l0aW9uVGV4dChkLHAudGl0bGVQYWQrcyx1K3MpfXI/KHIubGluZUhlaWdodD11LHIuaGVpZ2h0PU1hdGgubWF4KG4sMTYpKzMsci53aWR0aD1hKToobC5fdGl0bGVXaWR0aD1hLGwuX3RpdGxlSGVpZ2h0PW4pfShlLHIpfSl9ZnVuY3Rpb24gQSh0KXtyZXR1cm4gYS5pc1JpZ2h0QW5jaG9yKHQpPyJyaWdodCI6YS5pc0NlbnRlckFuY2hvcih0KT8iY2VudGVyIjoibGVmdCJ9ZnVuY3Rpb24gUyh0KXtyZXR1cm4gYS5pc0JvdHRvbUFuY2hvcih0KT8iYm90dG9tIjphLmlzTWlkZGxlQW5jaG9yKHQpPyJtaWRkbGUiOiJ0b3AifWUuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0LHI9ImxlZ2VuZCIrZS5fdWlkO2lmKGUuX2luZm9sYXllciYmdC5jYWxjZGF0YSl7dC5fbGVnZW5kTW91c2VEb3duVGltZXx8KHQuX2xlZ2VuZE1vdXNlRG93blRpbWU9MCk7dmFyIHM9ZS5sZWdlbmQsaD1lLnNob3dsZWdlbmQmJnkodC5jYWxjZGF0YSxzKSxmPWUuaGlkZGVubGFiZWxzfHxbXTtpZighZS5zaG93bGVnZW5kfHwhaC5sZW5ndGgpcmV0dXJuIGUuX2luZm9sYXllci5zZWxlY3RBbGwoIi5sZWdlbmQiKS5yZW1vdmUoKSxlLl90b3BkZWZzLnNlbGVjdCgiIyIrcikucmVtb3ZlKCksaS5hdXRvTWFyZ2luKHQsImxlZ2VuZCIpO3ZhciBkPWEuZW5zdXJlU2luZ2xlKGUuX2luZm9sYXllciwiZyIsImxlZ2VuZCIsZnVuY3Rpb24odCl7dC5hdHRyKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpfSksZz1hLmVuc3VyZVNpbmdsZUJ5SWQoZS5fdG9wZGVmcywiY2xpcFBhdGgiLHIsZnVuY3Rpb24odCl7dC5hcHBlbmQoInJlY3QiKX0pLGs9YS5lbnN1cmVTaW5nbGUoZCwicmVjdCIsImJnIixmdW5jdGlvbih0KXt0LmF0dHIoInNoYXBlLXJlbmRlcmluZyIsImNyaXNwRWRnZXMiKX0pO2suY2FsbCh1LnN0cm9rZSxzLmJvcmRlcmNvbG9yKS5jYWxsKHUuZmlsbCxzLmJnY29sb3IpLnN0eWxlKCJzdHJva2Utd2lkdGgiLHMuYm9yZGVyd2lkdGgrInB4Iik7dmFyIEU9YS5lbnN1cmVTaW5nbGUoZCwiZyIsInNjcm9sbGJveCIpLEw9cy50aXRsZTtpZihzLl90aXRsZVdpZHRoPTAscy5fdGl0bGVIZWlnaHQ9MCxMLnRleHQpe3ZhciBDPWEuZW5zdXJlU2luZ2xlKEUsInRleHQiLCJsZWdlbmR0aXRsZXRleHQiKTtDLmF0dHIoInRleHQtYW5jaG9yIiwic3RhcnQiKS5jbGFzc2VkKCJ1c2VyLXNlbGVjdC1ub25lIiwhMCkuY2FsbChjLmZvbnQsTC5mb250KS50ZXh0KEwudGV4dCksTShDLEUsdCl9dmFyIFA9YS5lbnN1cmVTaW5nbGUoZCwicmVjdCIsInNjcm9sbGJhciIsZnVuY3Rpb24odCl7dC5hdHRyKHAuc2Nyb2xsQmFyRW50ZXJBdHRycykuY2FsbCh1LmZpbGwscC5zY3JvbGxCYXJDb2xvcil9KSxPPUUuc2VsZWN0QWxsKCJnLmdyb3VwcyIpLmRhdGEoaCk7Ty5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwiZ3JvdXBzIiksTy5leGl0KCkucmVtb3ZlKCk7dmFyIHo9Ty5zZWxlY3RBbGwoImcudHJhY2VzIikuZGF0YShhLmlkZW50aXR5KTt6LmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJ0cmFjZXMiKSx6LmV4aXQoKS5yZW1vdmUoKSx6LnN0eWxlKCJvcGFjaXR5IixmdW5jdGlvbih0KXt2YXIgZT10WzBdLnRyYWNlO3JldHVybiBvLnRyYWNlSXMoZSwicGllLWxpa2UiKT8tMSE9PWYuaW5kZXhPZih0WzBdLmxhYmVsKT8uNToxOiJsZWdlbmRvbmx5Ij09PWUudmlzaWJsZT8uNToxfSkuZWFjaChmdW5jdGlvbigpe24uc2VsZWN0KHRoaXMpLmNhbGwodyx0KX0pLmNhbGwoeCx0KS5lYWNoKGZ1bmN0aW9uKCl7bi5zZWxlY3QodGhpcykuY2FsbChULHQpfSksYS5zeW5jT3JBc3luYyhbaS5wcmV2aW91c1Byb21pc2VzLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHQsZSxyKXt2YXIgYT10Ll9mdWxsTGF5b3V0LGk9YS5sZWdlbmQsbz1hLl9zaXplLHM9Yi5pc1ZlcnRpY2FsKGkpLGw9Yi5pc0dyb3VwZWQoaSksdT1pLmJvcmRlcndpZHRoLGg9Mip1LGY9cC50ZXh0R2FwLGQ9cC5pdGVtR2FwLGc9MioodStkKSx2PVMoaSksbT1pLnk8MHx8MD09PWkueSYmInRvcCI9PT12LHk9aS55PjF8fDE9PT1pLnkmJiJib3R0b20iPT09djtpLl9tYXhIZWlnaHQ9TWF0aC5tYXgobXx8eT9hLmhlaWdodC8yOm8uaCwzMCk7dmFyIHg9MDtpLl93aWR0aD0wLGkuX2hlaWdodD0wO3ZhciBfPWZ1bmN0aW9uKHQpe3ZhciBlPTAscj0wLG49dC50aXRsZS5zaWRlO24mJigtMSE9PW4uaW5kZXhPZigibGVmdCIpJiYoZT10Ll90aXRsZVdpZHRoKSwtMSE9PW4uaW5kZXhPZigidG9wIikmJihyPXQuX3RpdGxlSGVpZ2h0KSk7cmV0dXJuW2Uscl19KGkpO2lmKHMpci5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0uaGVpZ2h0O2Muc2V0VHJhbnNsYXRlKHRoaXMsdStfWzBdLHUrX1sxXStpLl9oZWlnaHQrZS8yK2QpLGkuX2hlaWdodCs9ZSxpLl93aWR0aD1NYXRoLm1heChpLl93aWR0aCx0WzBdLndpZHRoKX0pLHg9ZitpLl93aWR0aCxpLl93aWR0aCs9ZCtmK2gsaS5faGVpZ2h0Kz1nLGwmJihlLmVhY2goZnVuY3Rpb24odCxlKXtjLnNldFRyYW5zbGF0ZSh0aGlzLDAsZSppLnRyYWNlZ3JvdXBnYXApfSksaS5faGVpZ2h0Kz0oaS5fbGdyb3Vwc0xlbmd0aC0xKSppLnRyYWNlZ3JvdXBnYXApO2Vsc2V7dmFyIHc9QShpKSxrPWkueDwwfHwwPT09aS54JiYicmlnaHQiPT09dyxUPWkueD4xfHwxPT09aS54JiYibGVmdCI9PT13LE09eXx8bSxFPWEud2lkdGgvMjtpLl9tYXhXaWR0aD1NYXRoLm1heChrP00mJiJsZWZ0Ij09PXc/by5sK28udzpFOlQ/TSYmInJpZ2h0Ij09PXc/by5yK28udzpFOm8udywyKmYpO3ZhciBMPTAsQz0wO3IuZWFjaChmdW5jdGlvbih0KXt2YXIgZT10WzBdLndpZHRoK2Y7TD1NYXRoLm1heChMLGUpLEMrPWV9KSx4PW51bGw7dmFyIFA9MDtpZihsKXt2YXIgTz0wLHo9MCxJPTA7ZS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9MCxlPTA7bi5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJnLnRyYWNlcyIpLmVhY2goZnVuY3Rpb24ocil7dmFyIG49clswXS5oZWlnaHQ7Yy5zZXRUcmFuc2xhdGUodGhpcyxfWzBdLF9bMV0rdStkK24vMitlKSxlKz1uLHQ9TWF0aC5tYXgodCxmK3JbMF0ud2lkdGgpfSksTz1NYXRoLm1heChPLGUpO3ZhciByPXQrZDtyK3Urej5pLl9tYXhXaWR0aCYmKFA9TWF0aC5tYXgoUCx6KSx6PTAsSSs9TytpLnRyYWNlZ3JvdXBnYXAsTz1lKSxjLnNldFRyYW5zbGF0ZSh0aGlzLHosSSkseis9cn0pLGkuX3dpZHRoPU1hdGgubWF4KFAseikrdSxpLl9oZWlnaHQ9SStPK2d9ZWxzZXt2YXIgRD1yLnNpemUoKSxSPUMraCsoRC0xKSpkPGkuX21heFdpZHRoLEY9MCxCPTAsTj0wLGo9MDtyLmVhY2goZnVuY3Rpb24odCl7dmFyIGU9dFswXS5oZWlnaHQscj1mK3RbMF0ud2lkdGgsbj0oUj9yOkwpK2Q7bit1K0I+aS5fbWF4V2lkdGgmJihQPU1hdGgubWF4KFAsaiksQj0wLE4rPUYsaS5faGVpZ2h0Kz1GLEY9MCksYy5zZXRUcmFuc2xhdGUodGhpcyxfWzBdK3UrQixfWzFdK3UrTitlLzIrZCksaj1CK3IrZCxCKz1uLEY9TWF0aC5tYXgoRixlKX0pLFI/KGkuX3dpZHRoPUIraCxpLl9oZWlnaHQ9RitnKTooaS5fd2lkdGg9TWF0aC5tYXgoUCxqKStoLGkuX2hlaWdodCs9RitnKX19aS5fd2lkdGg9TWF0aC5jZWlsKE1hdGgubWF4KGkuX3dpZHRoK19bMF0saS5fdGl0bGVXaWR0aCsyKih1K3AudGl0bGVQYWQpKSksaS5faGVpZ2h0PU1hdGguY2VpbChNYXRoLm1heChpLl9oZWlnaHQrX1sxXSxpLl90aXRsZUhlaWdodCsyKih1K3AuaXRlbUdhcCkpKSxpLl9lZmZIZWlnaHQ9TWF0aC5taW4oaS5faGVpZ2h0LGkuX21heEhlaWdodCk7dmFyIFY9dC5fY29udGV4dC5lZGl0cyxVPVYubGVnZW5kVGV4dHx8Vi5sZWdlbmRQb3NpdGlvbjtyLmVhY2goZnVuY3Rpb24odCl7dmFyIGU9bi5zZWxlY3QodGhpcykuc2VsZWN0KCIubGVnZW5kdG9nZ2xlIikscj10WzBdLmhlaWdodCxhPVU/Zjp4fHxmK3RbMF0ud2lkdGg7c3x8KGErPWQvMiksYy5zZXRSZWN0KGUsMCwtci8yLGEscil9KX0odCxPLHopfSxmdW5jdGlvbigpe2lmKCFmdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0LmxlZ2VuZCxyPUEoZSksbj1TKGUpO3JldHVybiBpLmF1dG9NYXJnaW4odCwibGVnZW5kIix7eDplLngseTplLnksbDplLl93aWR0aCp2W3JdLHI6ZS5fd2lkdGgqbVtyXSxiOmUuX2VmZkhlaWdodCptW25dLHQ6ZS5fZWZmSGVpZ2h0KnZbbl19KX0odCkpe3ZhciB1LGgsZix5LHg9ZS5fc2l6ZSxiPXMuYm9yZGVyd2lkdGgsdz14LmwreC53KnMueC12W0EocyldKnMuX3dpZHRoLFQ9eC50K3guaCooMS1zLnkpLXZbUyhzKV0qcy5fZWZmSGVpZ2h0O2lmKGUubWFyZ2luLmF1dG9leHBhbmQpe3ZhciBNPXcsTD1UO3c9YS5jb25zdHJhaW4odywwLGUud2lkdGgtcy5fd2lkdGgpLFQ9YS5jb25zdHJhaW4oVCwwLGUuaGVpZ2h0LXMuX2VmZkhlaWdodCksdyE9PU0mJmEubG9nKCJDb25zdHJhaW4gbGVnZW5kLnggdG8gbWFrZSBsZWdlbmQgZml0IGluc2lkZSBncmFwaCIpLFQhPT1MJiZhLmxvZygiQ29uc3RyYWluIGxlZ2VuZC55IHRvIG1ha2UgbGVnZW5kIGZpdCBpbnNpZGUgZ3JhcGgiKX1pZihjLnNldFRyYW5zbGF0ZShkLHcsVCksUC5vbigiLmRyYWciLG51bGwpLGQub24oIndoZWVsIixudWxsKSxzLl9oZWlnaHQ8PXMuX21heEhlaWdodHx8dC5fY29udGV4dC5zdGF0aWNQbG90KWsuYXR0cih7d2lkdGg6cy5fd2lkdGgtYixoZWlnaHQ6cy5fZWZmSGVpZ2h0LWIseDpiLzIseTpiLzJ9KSxjLnNldFRyYW5zbGF0ZShFLDAsMCksZy5zZWxlY3QoInJlY3QiKS5hdHRyKHt3aWR0aDpzLl93aWR0aC0yKmIsaGVpZ2h0OnMuX2VmZkhlaWdodC0yKmIseDpiLHk6Yn0pLGMuc2V0Q2xpcFVybChFLHIsdCksYy5zZXRSZWN0KFAsMCwwLDAsMCksZGVsZXRlIHMuX3Njcm9sbFk7ZWxzZXt2YXIgQyxPLHosST1NYXRoLm1heChwLnNjcm9sbEJhck1pbkhlaWdodCxzLl9lZmZIZWlnaHQqcy5fZWZmSGVpZ2h0L3MuX2hlaWdodCksRD1zLl9lZmZIZWlnaHQtSS0yKnAuc2Nyb2xsQmFyTWFyZ2luLFI9cy5faGVpZ2h0LXMuX2VmZkhlaWdodCxGPUQvUixCPU1hdGgubWluKHMuX3Njcm9sbFl8fDAsUik7ay5hdHRyKHt3aWR0aDpzLl93aWR0aC0yKmIrcC5zY3JvbGxCYXJXaWR0aCtwLnNjcm9sbEJhck1hcmdpbixoZWlnaHQ6cy5fZWZmSGVpZ2h0LWIseDpiLzIseTpiLzJ9KSxnLnNlbGVjdCgicmVjdCIpLmF0dHIoe3dpZHRoOnMuX3dpZHRoLTIqYitwLnNjcm9sbEJhcldpZHRoK3Auc2Nyb2xsQmFyTWFyZ2luLGhlaWdodDpzLl9lZmZIZWlnaHQtMipiLHg6Yix5OmIrQn0pLGMuc2V0Q2xpcFVybChFLHIsdCksVihCLEksRiksZC5vbigid2hlZWwiLGZ1bmN0aW9uKCl7VihCPWEuY29uc3RyYWluKHMuX3Njcm9sbFkrbi5ldmVudC5kZWx0YVkvRCpSLDAsUiksSSxGKSwwIT09QiYmQiE9PVImJm4uZXZlbnQucHJldmVudERlZmF1bHQoKX0pO3ZhciBOPW4uYmVoYXZpb3IuZHJhZygpLm9uKCJkcmFnc3RhcnQiLGZ1bmN0aW9uKCl7dmFyIHQ9bi5ldmVudC5zb3VyY2VFdmVudDtDPSJ0b3VjaHN0YXJ0Ij09PXQudHlwZT90LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFk6dC5jbGllbnRZLHo9Qn0pLm9uKCJkcmFnIixmdW5jdGlvbigpe3ZhciB0PW4uZXZlbnQuc291cmNlRXZlbnQ7Mj09PXQuYnV0dG9uc3x8dC5jdHJsS2V5fHwoTz0idG91Y2htb3ZlIj09PXQudHlwZT90LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFk6dC5jbGllbnRZLFYoQj1mdW5jdGlvbih0LGUscil7dmFyIG49KHItZSkvRit0O3JldHVybiBhLmNvbnN0cmFpbihuLDAsUil9KHosQyxPKSxJLEYpKX0pO1AuY2FsbChOKTt2YXIgaj1uLmJlaGF2aW9yLmRyYWcoKS5vbigiZHJhZ3N0YXJ0IixmdW5jdGlvbigpe3ZhciB0PW4uZXZlbnQuc291cmNlRXZlbnQ7InRvdWNoc3RhcnQiPT09dC50eXBlJiYoQz10LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFksej1CKX0pLm9uKCJkcmFnIixmdW5jdGlvbigpe3ZhciB0PW4uZXZlbnQuc291cmNlRXZlbnQ7InRvdWNobW92ZSI9PT10LnR5cGUmJihPPXQuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WSxWKEI9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPShlLXIpL0YrdDtyZXR1cm4gYS5jb25zdHJhaW4obiwwLFIpfSh6LEMsTyksSSxGKSl9KTtFLmNhbGwoail9aWYodC5fY29udGV4dC5lZGl0cy5sZWdlbmRQb3NpdGlvbilkLmNsYXNzZWQoImN1cnNvci1tb3ZlIiwhMCksbC5pbml0KHtlbGVtZW50OmQubm9kZSgpLGdkOnQscHJlcEZuOmZ1bmN0aW9uKCl7dmFyIHQ9Yy5nZXRUcmFuc2xhdGUoZCk7Zj10LngseT10Lnl9LG1vdmVGbjpmdW5jdGlvbih0LGUpe3ZhciByPWYrdCxuPXkrZTtjLnNldFRyYW5zbGF0ZShkLHIsbiksdT1sLmFsaWduKHIsMCx4LmwseC5sK3gudyxzLnhhbmNob3IpLGg9bC5hbGlnbihuLDAseC50K3guaCx4LnQscy55YW5jaG9yKX0sZG9uZUZuOmZ1bmN0aW9uKCl7dm9pZCAwIT09dSYmdm9pZCAwIT09aCYmby5jYWxsKCJfZ3VpUmVsYXlvdXQiLHQseyJsZWdlbmQueCI6dSwibGVnZW5kLnkiOmh9KX0sY2xpY2tGbjpmdW5jdGlvbihyLG4pe3ZhciBhPWUuX2luZm9sYXllci5zZWxlY3RBbGwoImcudHJhY2VzIikuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gbi5jbGllbnRYPj10LmxlZnQmJm4uY2xpZW50WDw9dC5yaWdodCYmbi5jbGllbnRZPj10LnRvcCYmbi5jbGllbnRZPD10LmJvdHRvbX0pO2Euc2l6ZSgpPjAmJl8odCxkLGEscixuKX19KX1mdW5jdGlvbiBWKGUscixuKXtzLl9zY3JvbGxZPXQuX2Z1bGxMYXlvdXQubGVnZW5kLl9zY3JvbGxZPWUsYy5zZXRUcmFuc2xhdGUoRSwwLC1lKSxjLnNldFJlY3QoUCxzLl93aWR0aCxwLnNjcm9sbEJhck1hcmdpbitlKm4scC5zY3JvbGxCYXJXaWR0aCxyKSxnLnNlbGVjdCgicmVjdCIpLmF0dHIoInkiLGIrZSl9fV0sdCl9fX0seyIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50Ijo2ODYsIi4uLy4uL2xpYiI6NzE3LCIuLi8uLi9saWIvZXZlbnRzIjo3MDcsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6NzQxLCIuLi8uLi9wbG90cy9wbG90cyI6ODI2LCIuLi8uLi9yZWdpc3RyeSI6ODQ2LCIuLi9jb2xvciI6NTkyLCIuLi9kcmFnZWxlbWVudCI6NjEwLCIuLi9kcmF3aW5nIjo2MTMsIi4vY29uc3RhbnRzIjo2NDEsIi4vZ2V0X2xlZ2VuZF9kYXRhIjo2NDQsIi4vaGFuZGxlX2NsaWNrIjo2NDUsIi4vaGVscGVycyI6NjQ2LCIuL3N0eWxlIjo2NDgsZDM6MTY1fV0sNjQ0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3JlZ2lzdHJ5IiksYT10KCIuL2hlbHBlcnMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixpLG89e30scz1bXSxsPSExLGM9e30sdT0wLGg9MDtmdW5jdGlvbiBmKHQscil7aWYoIiIhPT10JiZhLmlzR3JvdXBlZChlKSktMT09PXMuaW5kZXhPZih0KT8ocy5wdXNoKHQpLGw9ITAsb1t0XT1bW3JdXSk6b1t0XS5wdXNoKFtyXSk7ZWxzZXt2YXIgbj0ifn5pIit1O3MucHVzaChuKSxvW25dPVtbcl1dLHUrK319Zm9yKHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIHA9dFtyXSxkPXBbMF0sZz1kLnRyYWNlLHY9Zy5sZWdlbmRncm91cDtpZihnLnZpc2libGUmJmcuc2hvd2xlZ2VuZClpZihuLnRyYWNlSXMoZywicGllLWxpa2UiKSlmb3IoY1t2XXx8KGNbdl09e30pLGk9MDtpPHAubGVuZ3RoO2krKyl7dmFyIG09cFtpXS5sYWJlbDtjW3ZdW21dfHwoZih2LHtsYWJlbDptLGNvbG9yOnBbaV0uY29sb3IsaTpwW2ldLmksdHJhY2U6ZyxwdHM6cFtpXS5wdHN9KSxjW3ZdW21dPSEwLGg9TWF0aC5tYXgoaCwobXx8IiIpLmxlbmd0aCkpfWVsc2UgZih2LGQpLGg9TWF0aC5tYXgoaCwoZy5uYW1lfHwiIikubGVuZ3RoKX1pZighcy5sZW5ndGgpcmV0dXJuW107dmFyIHkseCxiPXMubGVuZ3RoO2lmKGwmJmEuaXNHcm91cGVkKGUpKWZvcih4PW5ldyBBcnJheShiKSxyPTA7cjxiO3IrKyl5PW9bc1tyXV0seFtyXT1hLmlzUmV2ZXJzZWQoZSk/eS5yZXZlcnNlKCk6eTtlbHNle2Zvcih4PVtuZXcgQXJyYXkoYildLHI9MDtyPGI7cisrKXk9b1tzW3JdXVswXSx4WzBdW2EuaXNSZXZlcnNlZChlKT9iLXItMTpyXT15O2I9MX1yZXR1cm4gZS5fbGdyb3Vwc0xlbmd0aD1iLGUuX21heE5hbWVMZW5ndGg9aCx4fX0seyIuLi8uLi9yZWdpc3RyeSI6ODQ2LCIuL2hlbHBlcnMiOjY0Nn1dLDY0NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL3JlZ2lzdHJ5IiksaT0hMDtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBvPWUuX2Z1bGxMYXlvdXQ7aWYoIWUuX2RyYWdnZWQmJiFlLl9lZGl0aW5nKXt2YXIgcyxsPW8ubGVnZW5kLml0ZW1jbGljayxjPW8ubGVnZW5kLml0ZW1kb3VibGVjbGljaztpZigxPT09ciYmInRvZ2dsZSI9PT1sJiYidG9nZ2xlb3RoZXJzIj09PWMmJmkmJmUuZGF0YSYmZS5fY29udGV4dC5zaG93VGlwcz8obi5ub3RpZmllcihuLl8oZSwiRG91YmxlLWNsaWNrIG9uIGxlZ2VuZCB0byBpc29sYXRlIG9uZSB0cmFjZSIpLCJsb25nIiksaT0hMSk6aT0hMSwxPT09cj9zPWw6Mj09PXImJihzPWMpLHMpe3ZhciB1LGgsZixwLGQsZz1vLmhpZGRlbmxhYmVscz9vLmhpZGRlbmxhYmVscy5zbGljZSgpOltdLHY9dC5kYXRhKClbMF1bMF0sbT1lLl9mdWxsRGF0YSx5PXYudHJhY2UseD15LmxlZ2VuZGdyb3VwLGI9e30sXz1bXSx3PVtdLGs9W107aWYoYS50cmFjZUlzKHksInBpZS1saWtlIikpe3ZhciBUPXYubGFiZWwsTT1nLmluZGV4T2YoVCk7InRvZ2dsZSI9PT1zPy0xPT09TT9nLnB1c2goVCk6Zy5zcGxpY2UoTSwxKToidG9nZ2xlb3RoZXJzIj09PXMmJihnPVtdLGUuY2FsY2RhdGFbMF0uZm9yRWFjaChmdW5jdGlvbih0KXtUIT09dC5sYWJlbCYmZy5wdXNoKHQubGFiZWwpfSksZS5fZnVsbExheW91dC5oaWRkZW5sYWJlbHMmJmUuX2Z1bGxMYXlvdXQuaGlkZGVubGFiZWxzLmxlbmd0aD09PWcubGVuZ3RoJiYtMT09PU0mJihnPVtdKSksYS5jYWxsKCJfZ3VpUmVsYXlvdXQiLGUsImhpZGRlbmxhYmVscyIsZyl9ZWxzZXt2YXIgQSxTPXgmJngubGVuZ3RoLEU9W107aWYoUylmb3IodT0wO3U8bS5sZW5ndGg7dSsrKShBPW1bdV0pLnZpc2libGUmJkEubGVnZW5kZ3JvdXA9PT14JiZFLnB1c2godSk7aWYoInRvZ2dsZSI9PT1zKXt2YXIgTDtzd2l0Y2goeS52aXNpYmxlKXtjYXNlITA6TD0ibGVnZW5kb25seSI7YnJlYWs7Y2FzZSExOkw9ITE7YnJlYWs7Y2FzZSJsZWdlbmRvbmx5IjpMPSEwfWlmKFMpZm9yKHU9MDt1PG0ubGVuZ3RoO3UrKykhMSE9PW1bdV0udmlzaWJsZSYmbVt1XS5sZWdlbmRncm91cD09PXgmJkIobVt1XSxMKTtlbHNlIEIoeSxMKX1lbHNlIGlmKCJ0b2dnbGVvdGhlcnMiPT09cyl7dmFyIEMsUCxPLHosST0hMDtmb3IodT0wO3U8bS5sZW5ndGg7dSsrKWlmKEM9bVt1XT09PXksTz0hMCE9PW1bdV0uc2hvd2xlZ2VuZCwhKEN8fE98fChQPVMmJm1bdV0ubGVnZW5kZ3JvdXA9PT14KXx8ITAhPT1tW3VdLnZpc2libGV8fGEudHJhY2VJcyhtW3VdLCJub3RMZWdlbmRJc29sYXRhYmxlIikpKXtJPSExO2JyZWFrfWZvcih1PTA7dTxtLmxlbmd0aDt1KyspaWYoITEhPT1tW3VdLnZpc2libGUmJiFhLnRyYWNlSXMobVt1XSwibm90TGVnZW5kSXNvbGF0YWJsZSIpKXN3aXRjaCh5LnZpc2libGUpe2Nhc2UibGVnZW5kb25seSI6QihtW3VdLCEwKTticmVhaztjYXNlITA6ej0hIUl8fCJsZWdlbmRvbmx5IixDPW1bdV09PT15LE89ITAhPT1tW3VdLnNob3dsZWdlbmQmJiFtW3VdLmxlZ2VuZGdyb3VwLFA9Q3x8UyYmbVt1XS5sZWdlbmRncm91cD09PXgsQihtW3VdLCEoIVAmJiFPKXx8eil9fWZvcih1PTA7dTx3Lmxlbmd0aDt1KyspaWYoZj13W3VdKXt2YXIgRD1mLmNvbnN0cnVjdFVwZGF0ZSgpLFI9T2JqZWN0LmtleXMoRCk7Zm9yKGg9MDtoPFIubGVuZ3RoO2grKylwPVJbaF0sKGJbcF09YltwXXx8W10pW2tbdV1dPURbcF19Zm9yKGQ9T2JqZWN0LmtleXMoYiksdT0wO3U8ZC5sZW5ndGg7dSsrKWZvcihwPWRbdV0saD0wO2g8Xy5sZW5ndGg7aCsrKWJbcF0uaGFzT3duUHJvcGVydHkoaCl8fChiW3BdW2hdPXZvaWQgMCk7YS5jYWxsKCJfZ3VpUmVzdHlsZSIsZSxiLF8pfX19ZnVuY3Rpb24gRih0LGUscil7dmFyIG49Xy5pbmRleE9mKHQpLGE9YltlXTtyZXR1cm4gYXx8KGE9YltlXT1bXSksLTE9PT1fLmluZGV4T2YodCkmJihfLnB1c2godCksbj1fLmxlbmd0aC0xKSxhW25dPXIsbn1mdW5jdGlvbiBCKHQsZSl7dmFyIHI9dC5fZnVsbElucHV0O2lmKGEuaGFzVHJhbnNmb3JtKHIsImdyb3VwYnkiKSl7dmFyIGk9d1tyLmluZGV4XTtpZighaSl7dmFyIG89YS5nZXRUcmFuc2Zvcm1JbmRpY2VzKHIsImdyb3VwYnkiKSxzPW9bby5sZW5ndGgtMV07aT1uLmtleWVkQ29udGFpbmVyKHIsInRyYW5zZm9ybXNbIitzKyJdLnN0eWxlcyIsInRhcmdldCIsInZhbHVlLnZpc2libGUiKSx3W3IuaW5kZXhdPWl9dmFyIGw9aS5nZXQodC5fZ3JvdXApO3ZvaWQgMD09PWwmJihsPSEwKSwhMSE9PWwmJmkuc2V0KHQuX2dyb3VwLGUpLGtbci5pbmRleF09RihyLmluZGV4LCJ2aXNpYmxlIiwhMSE9PXIudmlzaWJsZSl9ZWxzZXt2YXIgYz0hMSE9PXIudmlzaWJsZSYmZTtGKHIuaW5kZXgsInZpc2libGUiLGMpfX19fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi8uLi9yZWdpc3RyeSI6ODQ2fV0sNjQ2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3IuaXNHcm91cGVkPWZ1bmN0aW9uKHQpe3JldHVybi0xIT09KHQudHJhY2VvcmRlcnx8IiIpLmluZGV4T2YoImdyb3VwZWQiKX0sci5pc1ZlcnRpY2FsPWZ1bmN0aW9uKHQpe3JldHVybiJoIiE9PXQub3JpZW50YXRpb259LHIuaXNSZXZlcnNlZD1mdW5jdGlvbih0KXtyZXR1cm4tMSE9PSh0LnRyYWNlb3JkZXJ8fCIiKS5pbmRleE9mKCJyZXZlcnNlZCIpfX0se31dLDY0NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e21vZHVsZVR5cGU6ImNvbXBvbmVudCIsbmFtZToibGVnZW5kIixsYXlvdXRBdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseUxheW91dERlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxkcmF3OnQoIi4vZHJhdyIpLHN0eWxlOnQoIi4vc3R5bGUiKX19LHsiLi9hdHRyaWJ1dGVzIjo2NDAsIi4vZGVmYXVsdHMiOjY0MiwiLi9kcmF3Ijo2NDMsIi4vc3R5bGUiOjY0OH1dLDY0ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGE9dCgiLi4vLi4vcmVnaXN0cnkiKSxpPXQoIi4uLy4uL2xpYiIpLG89dCgiLi4vZHJhd2luZyIpLHM9dCgiLi4vY29sb3IiKSxsPXQoIi4uL2NvbG9yc2NhbGUvaGVscGVycyIpLmV4dHJhY3RPcHRzLGM9dCgiLi4vLi4vdHJhY2VzL3NjYXR0ZXIvc3VidHlwZXMiKSx1PXQoIi4uLy4uL3RyYWNlcy9waWUvc3R5bGVfb25lIiksaD10KCIuLi8uLi90cmFjZXMvcGllL2hlbHBlcnMiKS5jYXN0T3B0aW9uLGY9MTIscD01LGQ9MixnPTEwLHY9NTtmdW5jdGlvbiBtKHQsZSl7cmV0dXJuKGU/InJhZGlhbCI6Imhvcml6b250YWwiKSsodD8iIjoicmV2ZXJzZWQiKX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1lLl9mdWxsTGF5b3V0LmxlZ2VuZCx5PSJjb25zdGFudCI9PT1yLml0ZW1zaXppbmcseD1mdW5jdGlvbih0LGUscixuKXt2YXIgYTtpZih0KzEpYT10O2Vsc2V7aWYoIShlJiZlLndpZHRoPjApKXJldHVybiAwO2E9ZS53aWR0aH1yZXR1cm4geT9uOk1hdGgubWluKGEscil9O2Z1bmN0aW9uIGIodCxlLHIpe3ZhciBpPXRbMF0udHJhY2Usbz1pLm1hcmtlcnx8e30sbD1vLmxpbmV8fHt9LGM9cj9pLnZpc2libGUmJmkudHlwZT09PXI6YS50cmFjZUlzKGksImJhciIpLHU9bi5zZWxlY3QoZSkuc2VsZWN0KCJnLmxlZ2VuZHBvaW50cyIpLnNlbGVjdEFsbCgicGF0aC5sZWdlbmQiK3IpLmRhdGEoYz9bdF06W10pO3UuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJsZWdlbmQiK3IsITApLmF0dHIoImQiLCJNNiw2SC02Vi02SDZaIikuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKDIwLDApIiksdS5leGl0KCkucmVtb3ZlKCksdS5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPW4uc2VsZWN0KHRoaXMpLHI9dFswXSxhPXgoci5tbHcsby5saW5lLHYsZCk7ZS5zdHlsZSgic3Ryb2tlLXdpZHRoIixhKyJweCIpLmNhbGwocy5maWxsLHIubWN8fG8uY29sb3IpLGEmJnMuc3Ryb2tlKGUsci5tbGN8fGwuY29sb3IpfSl9ZnVuY3Rpb24gXyh0LGUscil7dmFyIG89dFswXSxzPW8udHJhY2UsbD1yP3MudmlzaWJsZSYmcy50eXBlPT09cjphLnRyYWNlSXMocyxyKSxjPW4uc2VsZWN0KGUpLnNlbGVjdCgiZy5sZWdlbmRwb2ludHMiKS5zZWxlY3RBbGwoInBhdGgubGVnZW5kIityKS5kYXRhKGw/W3RdOltdKTtpZihjLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZCgibGVnZW5kIityLCEwKS5hdHRyKCJkIiwiTTYsNkgtNlYtNkg2WiIpLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgyMCwwKSIpLGMuZXhpdCgpLnJlbW92ZSgpLGMuc2l6ZSgpKXt2YXIgZj0ocy5tYXJrZXJ8fHt9KS5saW5lLHA9eChoKGYud2lkdGgsby5wdHMpLGYsdixkKSxnPWkubWluRXh0ZW5kKHMse21hcmtlcjp7bGluZTp7d2lkdGg6cH19fSk7Zy5tYXJrZXIubGluZS5jb2xvcj1mLmNvbG9yO3ZhciBtPWkubWluRXh0ZW5kKG8se3RyYWNlOmd9KTt1KGMsbSxnKX19dC5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPW4uc2VsZWN0KHRoaXMpLGE9aS5lbnN1cmVTaW5nbGUoZSwiZyIsImxheWVycyIpO2Euc3R5bGUoIm9wYWNpdHkiLHRbMF0udHJhY2Uub3BhY2l0eSk7dmFyIG89ci52YWxpZ24scz10WzBdLmxpbmVIZWlnaHQsbD10WzBdLmhlaWdodDtpZigibWlkZGxlIiE9PW8mJnMmJmwpe3ZhciBjPXt0b3A6MSxib3R0b206LTF9W29dKiguNSoocy1sKzMpKTthLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgwLCIrYysiKSIpfWVsc2UgYS5hdHRyKCJ0cmFuc2Zvcm0iLG51bGwpO2Euc2VsZWN0QWxsKCJnLmxlZ2VuZGZpbGwiKS5kYXRhKFt0XSkuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJsZWdlbmRmaWxsIiwhMCksYS5zZWxlY3RBbGwoImcubGVnZW5kbGluZXMiKS5kYXRhKFt0XSkuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJsZWdlbmRsaW5lcyIsITApO3ZhciB1PWEuc2VsZWN0QWxsKCJnLmxlZ2VuZHN5bWJvbHMiKS5kYXRhKFt0XSk7dS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoImxlZ2VuZHN5bWJvbHMiLCEwKSx1LnNlbGVjdEFsbCgiZy5sZWdlbmRwb2ludHMiKS5kYXRhKFt0XSkuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJsZWdlbmRwb2ludHMiLCEwKX0pLmVhY2goZnVuY3Rpb24odCl7dmFyIHIsYT10WzBdLnRyYWNlLGM9W107aWYoYS52aXNpYmxlKXN3aXRjaChhLnR5cGUpe2Nhc2UiaGlzdG9ncmFtMmQiOmNhc2UiaGVhdG1hcCI6Yz1bWyJNLTE1LC0yVjRIMTVWLTJaIl1dLHI9ITA7YnJlYWs7Y2FzZSJjaG9yb3BsZXRoIjpjYXNlImNob3JvcGxldGhtYXBib3giOmM9W1siTS02LC02VjZINlYtNloiXV0scj0hMDticmVhaztjYXNlImRlbnNpdHltYXBib3giOmM9W1siTS02LDAgYTYsNiAwIDEsMCAxMiwwIGEgNiw2IDAgMSwwIC0xMiwwIl1dLHI9InJhZGlhbCI7YnJlYWs7Y2FzZSJjb25lIjpjPVtbIk0tNiwyIEEyLDIgMCAwLDAgLTYsNiBWNkw2LDRaIl0sWyJNLTYsLTYgQTIsMiAwIDAsMCAtNiwtMiBMNiwtNFoiXSxbIk0tNiwtMiBBMiwyIDAgMCwwIC02LDIgTDYsMFoiXV0scj0hMTticmVhaztjYXNlInN0cmVhbXR1YmUiOmM9W1siTS02LDIgQTIsMiAwIDAsMCAtNiw2IEg2IEEyLDIgMCAwLDEgNiwyIFoiXSxbIk0tNiwtNiBBMiwyIDAgMCwwIC02LC0yIEg2IEEyLDIgMCAwLDEgNiwtNiBaIl0sWyJNLTYsLTIgQTIsMiAwIDAsMCAtNiwyIEg2IEEyLDIgMCAwLDEgNiwtMiBaIl1dLHI9ITE7YnJlYWs7Y2FzZSJzdXJmYWNlIjpjPVtbIk0tNiwtNiBBMiwzIDAgMCwwIC02LDAgSDYgQTIsMyAwIDAsMSA2LC02IFoiXSxbIk0tNiwxIEEyLDMgMCAwLDEgLTYsNiBINiBBMiwzIDAgMCwwIDYsMCBaIl1dLHI9ITA7YnJlYWs7Y2FzZSJtZXNoM2QiOmM9W1siTS02LDZIMEwtNiwtNloiXSxbIk02LDZIMEw2LC02WiJdLFsiTS02LC02SDZMMCw2WiJdXSxyPSExO2JyZWFrO2Nhc2Uidm9sdW1lIjpjPVtbIk0tNiw2SDBMLTYsLTZaIl0sWyJNNiw2SDBMNiwtNloiXSxbIk0tNiwtNkg2TDAsNloiXV0scj0hMDticmVhaztjYXNlImlzb3N1cmZhY2UiOmM9W1siTS02LDZIMEwtNiwtNloiXSxbIk02LDZIMEw2LC02WiJdLFsiTS02LC02IEExMiwyNCAwIDAsMCA2LC02IEwwLDZaIl1dLHI9ITF9dmFyIHU9bi5zZWxlY3QodGhpcykuc2VsZWN0KCJnLmxlZ2VuZHBvaW50cyIpLnNlbGVjdEFsbCgicGF0aC5sZWdlbmQzZGFuZGZyaWVuZHMiKS5kYXRhKGMpO3UuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJsZWdlbmQzZGFuZGZyaWVuZHMiLCEwKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoMjAsMCkiKS5zdHlsZSgic3Ryb2tlLW1pdGVybGltaXQiLDEpLHUuZXhpdCgpLnJlbW92ZSgpLHUuZWFjaChmdW5jdGlvbih0LGMpe3ZhciB1LGg9bi5zZWxlY3QodGhpcyksZj1sKGEpLHA9Zi5jb2xvcnNjYWxlLGQ9Zi5yZXZlcnNlc2NhbGU7aWYocCl7aWYoIXIpe3ZhciBnPXAubGVuZ3RoO3U9MD09PWM/cFtkP2ctMTowXVsxXToxPT09Yz9wW2Q/MDpnLTFdWzFdOnBbTWF0aC5mbG9vcigoZy0xKS8yKV1bMV19fWVsc2V7dmFyIHY9YS52ZXJ0ZXhjb2xvcnx8YS5mYWNlY29sb3J8fGEuY29sb3I7dT1pLmlzQXJyYXlPclR5cGVkQXJyYXkodik/dltjXXx8dlswXTp2fWguYXR0cigiZCIsdFswXSksdT9oLmNhbGwocy5maWxsLHUpOmguY2FsbChmdW5jdGlvbih0KXtpZih0LnNpemUoKSl7dmFyIG49ImxlZ2VuZGZpbGwtIithLnVpZDtvLmdyYWRpZW50KHQsZSxuLG0oZCwicmFkaWFsIj09PXIpLHAsImZpbGwiKX19KX0pfSkuZWFjaChmdW5jdGlvbih0KXt2YXIgZT10WzBdLnRyYWNlLHI9W107ZS52aXNpYmxlJiYid2F0ZXJmYWxsIj09PWUudHlwZSYmKHI9dFswXS5oYXNUb3RhbHM/W1siaW5jcmVhc2luZyIsIk0tNiwtNlY2SDBaIl0sWyJ0b3RhbHMiLCJNNiw2SDBMLTYsLTZILTBaIl0sWyJkZWNyZWFzaW5nIiwiTTYsNlYtNkgwWiJdXTpbWyJpbmNyZWFzaW5nIiwiTS02LC02VjZINloiXSxbImRlY3JlYXNpbmciLCJNNiw2Vi02SC02WiJdXSk7dmFyIGE9bi5zZWxlY3QodGhpcykuc2VsZWN0KCJnLmxlZ2VuZHBvaW50cyIpLnNlbGVjdEFsbCgicGF0aC5sZWdlbmR3YXRlcmZhbGwiKS5kYXRhKHIpO2EuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJsZWdlbmR3YXRlcmZhbGwiLCEwKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoMjAsMCkiKS5zdHlsZSgic3Ryb2tlLW1pdGVybGltaXQiLDEpLGEuZXhpdCgpLnJlbW92ZSgpLGEuZWFjaChmdW5jdGlvbih0KXt2YXIgcj1uLnNlbGVjdCh0aGlzKSxhPWVbdFswXV0ubWFya2VyLGk9eCh2b2lkIDAsYS5saW5lLHYsZCk7ci5hdHRyKCJkIix0WzFdKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixpKyJweCIpLmNhbGwocy5maWxsLGEuY29sb3IpLGkmJnIuY2FsbChzLnN0cm9rZSxhLmxpbmUuY29sb3IpfSl9KS5lYWNoKGZ1bmN0aW9uKHQpe2IodCx0aGlzLCJmdW5uZWwiKX0pLmVhY2goZnVuY3Rpb24odCl7Yih0LHRoaXMpfSkuZWFjaChmdW5jdGlvbih0KXt2YXIgcj10WzBdLnRyYWNlLGw9bi5zZWxlY3QodGhpcykuc2VsZWN0KCJnLmxlZ2VuZHBvaW50cyIpLnNlbGVjdEFsbCgicGF0aC5sZWdlbmRib3giKS5kYXRhKHIudmlzaWJsZSYmYS50cmFjZUlzKHIsImJveC12aW9saW4iKT9bdF06W10pO2wuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJsZWdlbmRib3giLCEwKS5hdHRyKCJkIiwiTTYsNkgtNlYtNkg2WiIpLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgyMCwwKSIpLGwuZXhpdCgpLnJlbW92ZSgpLGwuZWFjaChmdW5jdGlvbigpe3ZhciB0PW4uc2VsZWN0KHRoaXMpO2lmKCJhbGwiIT09ci5ib3hwb2ludHMmJiJhbGwiIT09ci5wb2ludHN8fDAhPT1zLm9wYWNpdHkoci5maWxsY29sb3IpfHwwIT09cy5vcGFjaXR5KChyLmxpbmV8fHt9KS5jb2xvcikpe3ZhciBhPXgodm9pZCAwLHIubGluZSx2LGQpO3Quc3R5bGUoInN0cm9rZS13aWR0aCIsYSsicHgiKS5jYWxsKHMuZmlsbCxyLmZpbGxjb2xvciksYSYmcy5zdHJva2UodCxyLmxpbmUuY29sb3IpfWVsc2V7dmFyIGM9aS5taW5FeHRlbmQocix7bWFya2VyOntzaXplOnk/ZjppLmNvbnN0cmFpbihyLm1hcmtlci5zaXplLDIsMTYpLHNpemVyZWY6MSxzaXplbWluOjEsc2l6ZW1vZGU6ImRpYW1ldGVyIn19KTtsLmNhbGwoby5wb2ludFN0eWxlLGMsZSl9fSl9KS5lYWNoKGZ1bmN0aW9uKHQpe18odCx0aGlzLCJmdW5uZWxhcmVhIil9KS5lYWNoKGZ1bmN0aW9uKHQpe18odCx0aGlzLCJwaWUiKX0pLmVhY2goZnVuY3Rpb24odCl7dmFyIHIsYSxzPXRbMF0sdT1zLnRyYWNlLGg9dS52aXNpYmxlJiZ1LmZpbGwmJiJub25lIiE9PXUuZmlsbCxmPWMuaGFzTGluZXModSksZD11LmNvbnRvdXJzLHY9ITEseT0hMSxiPWwodSksXz1iLmNvbG9yc2NhbGUsdz1iLnJldmVyc2VzY2FsZTtpZihkKXt2YXIgaz1kLmNvbG9yaW5nOyJsaW5lcyI9PT1rP3Y9ITA6Zj0ibm9uZSI9PT1rfHwiaGVhdG1hcCI9PT1rfHxkLnNob3dsaW5lcywiY29uc3RyYWludCI9PT1kLnR5cGU/aD0iPSIhPT1kLl9vcGVyYXRpb246ImZpbGwiIT09ayYmImhlYXRtYXAiIT09a3x8KHk9ITApfXZhciBUPWMuaGFzTWFya2Vycyh1KXx8Yy5oYXNUZXh0KHUpLE09aHx8eSxBPWZ8fHYsUz1UfHwhTT8iTTUsMCI6QT8iTTUsLTIiOiJNNSwtMyIsRT1uLnNlbGVjdCh0aGlzKSxMPUUuc2VsZWN0KCIubGVnZW5kZmlsbCIpLnNlbGVjdEFsbCgicGF0aCIpLmRhdGEoaHx8eT9bdF06W10pO2lmKEwuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJqcy1maWxsIiwhMCksTC5leGl0KCkucmVtb3ZlKCksTC5hdHRyKCJkIixTKyJoMzB2NmgtMzB6IikuY2FsbChoP28uZmlsbEdyb3VwU3R5bGU6ZnVuY3Rpb24odCl7aWYodC5zaXplKCkpe3ZhciByPSJsZWdlbmRmaWxsLSIrdS51aWQ7by5ncmFkaWVudCh0LGUscixtKHcpLF8sImZpbGwiKX19KSxmfHx2KXt2YXIgQz14KHZvaWQgMCx1LmxpbmUsZyxwKTthPWkubWluRXh0ZW5kKHUse2xpbmU6e3dpZHRoOkN9fSkscj1baS5taW5FeHRlbmQocyx7dHJhY2U6YX0pXX12YXIgUD1FLnNlbGVjdCgiLmxlZ2VuZGxpbmVzIikuc2VsZWN0QWxsKCJwYXRoIikuZGF0YShmfHx2P1tyXTpbXSk7UC5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQoImpzLWxpbmUiLCEwKSxQLmV4aXQoKS5yZW1vdmUoKSxQLmF0dHIoImQiLFMrKHY/ImwzMCwwLjAwMDEiOiJoMzAiKSkuY2FsbChmP28ubGluZUdyb3VwU3R5bGU6ZnVuY3Rpb24odCl7aWYodC5zaXplKCkpe3ZhciByPSJsZWdlbmRsaW5lLSIrdS51aWQ7by5saW5lR3JvdXBTdHlsZSh0KSxvLmdyYWRpZW50KHQsZSxyLG0odyksXywic3Ryb2tlIil9fSl9KS5lYWNoKGZ1bmN0aW9uKHQpe3ZhciByLGEscz10WzBdLGw9cy50cmFjZSx1PWMuaGFzTWFya2VycyhsKSxoPWMuaGFzVGV4dChsKSxnPWMuaGFzTGluZXMobCk7ZnVuY3Rpb24gdih0LGUscixuKXt2YXIgYT1pLm5lc3RlZFByb3BlcnR5KGwsdCkuZ2V0KCksbz1pLmlzQXJyYXlPclR5cGVkQXJyYXkoYSkmJmU/ZShhKTphO2lmKHkmJm8mJnZvaWQgMCE9PW4mJihvPW4pLHIpe2lmKG88clswXSlyZXR1cm4gclswXTtpZihvPnJbMV0pcmV0dXJuIHJbMV19cmV0dXJuIG99ZnVuY3Rpb24gbSh0KXtyZXR1cm4gdFswXX1pZih1fHxofHxnKXt2YXIgeD17fSxiPXt9O2lmKHUpe3gubWM9digibWFya2VyLmNvbG9yIixtKSx4Lm14PXYoIm1hcmtlci5zeW1ib2wiLG0pLHgubW89digibWFya2VyLm9wYWNpdHkiLGkubWVhbixbLjIsMV0pLHgubWxjPXYoIm1hcmtlci5saW5lLmNvbG9yIixtKSx4Lm1sdz12KCJtYXJrZXIubGluZS53aWR0aCIsaS5tZWFuLFswLDVdLGQpLGIubWFya2VyPXtzaXplcmVmOjEsc2l6ZW1pbjoxLHNpemVtb2RlOiJkaWFtZXRlciJ9O3ZhciBfPXYoIm1hcmtlci5zaXplIixpLm1lYW4sWzIsMTZdLGYpO3gubXM9XyxiLm1hcmtlci5zaXplPV99ZyYmKGIubGluZT17d2lkdGg6digibGluZS53aWR0aCIsbSxbMCwxMF0scCl9KSxoJiYoeC50eD0iQWEiLHgudHA9digidGV4dHBvc2l0aW9uIixtKSx4LnRzPTEwLHgudGM9digidGV4dGZvbnQuY29sb3IiLG0pLHgudGY9digidGV4dGZvbnQuZmFtaWx5IixtKSkscj1baS5taW5FeHRlbmQocyx4KV0sKGE9aS5taW5FeHRlbmQobCxiKSkuc2VsZWN0ZWRwb2ludHM9bnVsbCxhLnRleHR0ZW1wbGF0ZT1udWxsfXZhciB3PW4uc2VsZWN0KHRoaXMpLnNlbGVjdCgiZy5sZWdlbmRwb2ludHMiKSxrPXcuc2VsZWN0QWxsKCJwYXRoLnNjYXR0ZXJwdHMiKS5kYXRhKHU/cjpbXSk7ay5lbnRlcigpLmluc2VydCgicGF0aCIsIjpmaXJzdC1jaGlsZCIpLmNsYXNzZWQoInNjYXR0ZXJwdHMiLCEwKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoMjAsMCkiKSxrLmV4aXQoKS5yZW1vdmUoKSxrLmNhbGwoby5wb2ludFN0eWxlLGEsZSksdSYmKHJbMF0ubXJjPTMpO3ZhciBUPXcuc2VsZWN0QWxsKCJnLnBvaW50dGV4dCIpLmRhdGEoaD9yOltdKTtULmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgicG9pbnR0ZXh0IiwhMCkuYXBwZW5kKCJ0ZXh0IikuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKDIwLDApIiksVC5leGl0KCkucmVtb3ZlKCksVC5zZWxlY3RBbGwoInRleHQiKS5jYWxsKG8udGV4dFBvaW50U3R5bGUsYSxlKX0pLmVhY2goZnVuY3Rpb24odCl7dmFyIGU9dFswXS50cmFjZSxyPW4uc2VsZWN0KHRoaXMpLnNlbGVjdCgiZy5sZWdlbmRwb2ludHMiKS5zZWxlY3RBbGwoInBhdGgubGVnZW5kY2FuZGxlIikuZGF0YShlLnZpc2libGUmJiJjYW5kbGVzdGljayI9PT1lLnR5cGU/W3QsdF06W10pO3IuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJsZWdlbmRjYW5kbGUiLCEwKS5hdHRyKCJkIixmdW5jdGlvbih0LGUpe3JldHVybiBlPyJNLTE1LDBILThNLTgsNlYtNkg4WiI6Ik0xNSwwSDhNOCwtNlY2SC04WiJ9KS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoMjAsMCkiKS5zdHlsZSgic3Ryb2tlLW1pdGVybGltaXQiLDEpLHIuZXhpdCgpLnJlbW92ZSgpLHIuZWFjaChmdW5jdGlvbih0LHIpe3ZhciBhPW4uc2VsZWN0KHRoaXMpLGk9ZVtyPyJpbmNyZWFzaW5nIjoiZGVjcmVhc2luZyJdLG89eCh2b2lkIDAsaS5saW5lLHYsZCk7YS5zdHlsZSgic3Ryb2tlLXdpZHRoIixvKyJweCIpLmNhbGwocy5maWxsLGkuZmlsbGNvbG9yKSxvJiZzLnN0cm9rZShhLGkubGluZS5jb2xvcil9KX0pLmVhY2goZnVuY3Rpb24odCl7dmFyIGU9dFswXS50cmFjZSxyPW4uc2VsZWN0KHRoaXMpLnNlbGVjdCgiZy5sZWdlbmRwb2ludHMiKS5zZWxlY3RBbGwoInBhdGgubGVnZW5kb2hsYyIpLmRhdGEoZS52aXNpYmxlJiYib2hsYyI9PT1lLnR5cGU/W3QsdF06W10pO3IuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJsZWdlbmRvaGxjIiwhMCkuYXR0cigiZCIsZnVuY3Rpb24odCxlKXtyZXR1cm4gZT8iTS0xNSwwSDBNLTgsLTZWMCI6Ik0xNSwwSDBNOCw2VjAifSkuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKDIwLDApIikuc3R5bGUoInN0cm9rZS1taXRlcmxpbWl0IiwxKSxyLmV4aXQoKS5yZW1vdmUoKSxyLmVhY2goZnVuY3Rpb24odCxyKXt2YXIgYT1uLnNlbGVjdCh0aGlzKSxpPWVbcj8iaW5jcmVhc2luZyI6ImRlY3JlYXNpbmciXSxsPXgodm9pZCAwLGkubGluZSx2LGQpO2Euc3R5bGUoImZpbGwiLCJub25lIikuY2FsbChvLmRhc2hMaW5lLGkubGluZS5kYXNoLGwpLGwmJnMuc3Ryb2tlKGEsaS5saW5lLmNvbG9yKX0pfSl9fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi8uLi9yZWdpc3RyeSI6ODQ2LCIuLi8uLi90cmFjZXMvcGllL2hlbHBlcnMiOjEwOTksIi4uLy4uL3RyYWNlcy9waWUvc3R5bGVfb25lIjoxMTA1LCIuLi8uLi90cmFjZXMvc2NhdHRlci9zdWJ0eXBlcyI6MTE0NCwiLi4vY29sb3IiOjU5MiwiLi4vY29sb3JzY2FsZS9oZWxwZXJzIjo2MDMsIi4uL2RyYXdpbmciOjYxMyxkMzoxNjV9XSw2NDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcmVnaXN0cnkiKSxhPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiKSxvPXQoIi4uLy4uL2xpYiIpLHM9dCgiLi4vLi4vZm9udHMvcGxvdGljb24iKSxsPW8uXyxjPWUuZXhwb3J0cz17fTtmdW5jdGlvbiB1KHQsZSl7dmFyIHIsYSxvPWUuY3VycmVudFRhcmdldCxzPW8uZ2V0QXR0cmlidXRlKCJkYXRhLWF0dHIiKSxsPW8uZ2V0QXR0cmlidXRlKCJkYXRhLXZhbCIpfHwhMCxjPXQuX2Z1bGxMYXlvdXQsdT17fSxoPWkubGlzdCh0LG51bGwsITApLGY9Yy5fY2FydGVzaWFuU3Bpa2VzRW5hYmxlZDtpZigiem9vbSI9PT1zKXt2YXIgcCxkPSJpbiI9PT1sPy41OjIsZz0oMStkKS8yLHY9KDEtZCkvMjtmb3IoYT0wO2E8aC5sZW5ndGg7YSsrKWlmKCEocj1oW2FdKS5maXhlZHJhbmdlKWlmKHA9ci5fbmFtZSwiYXV0byI9PT1sKXVbcCsiLmF1dG9yYW5nZSJdPSEwO2Vsc2UgaWYoInJlc2V0Ij09PWwpe2lmKHZvaWQgMD09PXIuX3JhbmdlSW5pdGlhbCl1W3ArIi5hdXRvcmFuZ2UiXT0hMDtlbHNle3ZhciBtPXIuX3JhbmdlSW5pdGlhbC5zbGljZSgpO3VbcCsiLnJhbmdlWzBdIl09bVswXSx1W3ArIi5yYW5nZVsxXSJdPW1bMV19dm9pZCAwIT09ci5fc2hvd1NwaWtlSW5pdGlhbCYmKHVbcCsiLnNob3dzcGlrZXMiXT1yLl9zaG93U3Bpa2VJbml0aWFsLCJvbiIhPT1mfHxyLl9zaG93U3Bpa2VJbml0aWFsfHwoZj0ib2ZmIikpfWVsc2V7dmFyIHk9W3IucjJsKHIucmFuZ2VbMF0pLHIucjJsKHIucmFuZ2VbMV0pXSx4PVtnKnlbMF0rdip5WzFdLGcqeVsxXSt2KnlbMF1dO3VbcCsiLnJhbmdlWzBdIl09ci5sMnIoeFswXSksdVtwKyIucmFuZ2VbMV0iXT1yLmwycih4WzFdKX19ZWxzZSJob3Zlcm1vZGUiIT09c3x8IngiIT09bCYmInkiIT09bHx8KGw9Yy5faXNIb3Jpej8ieSI6IngiLG8uc2V0QXR0cmlidXRlKCJkYXRhLXZhbCIsbCkpLHVbc109bDtjLl9jYXJ0ZXNpYW5TcGlrZXNFbmFibGVkPWYsbi5jYWxsKCJfZ3VpUmVsYXlvdXQiLHQsdSl9ZnVuY3Rpb24gaCh0LGUpe2Zvcih2YXIgcj1lLmN1cnJlbnRUYXJnZXQsYT1yLmdldEF0dHJpYnV0ZSgiZGF0YS1hdHRyIiksaT1yLmdldEF0dHJpYnV0ZSgiZGF0YS12YWwiKXx8ITAsbz10Ll9mdWxsTGF5b3V0Ll9zdWJwbG90cy5nbDNkfHxbXSxzPXt9LGw9YS5zcGxpdCgiLiIpLGM9MDtjPG8ubGVuZ3RoO2MrKylzW29bY10rIi4iK2xbMV1dPWk7dmFyIHU9InBhbiI9PT1pP2k6Inpvb20iO3MuZHJhZ21vZGU9dSxuLmNhbGwoIl9ndWlSZWxheW91dCIsdCxzKX1mdW5jdGlvbiBmKHQsZSl7Zm9yKHZhciByPWUuY3VycmVudFRhcmdldC5nZXRBdHRyaWJ1dGUoImRhdGEtYXR0ciIpLGE9dC5fZnVsbExheW91dCxpPWEuX3N1YnBsb3RzLmdsM2R8fFtdLG89e30scz0wO3M8aS5sZW5ndGg7cysrKXt2YXIgbCxjPWlbc10sdT1jKyIuY2FtZXJhIixoPWMrIi5hc3BlY3RyYXRpbyIsZj1hW2NdLl9zY2VuZTsicmVzZXRMYXN0U2F2ZSI9PT1yPyhvW3UrIi51cCJdPWYudmlld0luaXRpYWwudXAsb1t1KyIuZXllIl09Zi52aWV3SW5pdGlhbC5leWUsb1t1KyIuY2VudGVyIl09Zi52aWV3SW5pdGlhbC5jZW50ZXIsbD0hMCk6InJlc2V0RGVmYXVsdCI9PT1yJiYob1t1KyIudXAiXT1udWxsLG9bdSsiLmV5ZSJdPW51bGwsb1t1KyIuY2VudGVyIl09bnVsbCxsPSEwKSxsJiYob1toKyIueCJdPWYudmlld0luaXRpYWwuYXNwZWN0cmF0aW8ueCxvW2grIi55Il09Zi52aWV3SW5pdGlhbC5hc3BlY3RyYXRpby55LG9baCsiLnoiXT1mLnZpZXdJbml0aWFsLmFzcGVjdHJhdGlvLnopfW4uY2FsbCgiX2d1aVJlbGF5b3V0Iix0LG8pfWZ1bmN0aW9uIHAodCxlKXt2YXIgcj1lLmN1cnJlbnRUYXJnZXQsbj1yLl9wcmV2aW91c1ZhbCxhPXQuX2Z1bGxMYXlvdXQsaT1hLl9zdWJwbG90cy5nbDNkfHxbXSxvPVsieGF4aXMiLCJ5YXhpcyIsInpheGlzIl0scz17fSxsPXt9O2lmKG4pbD1uLHIuX3ByZXZpb3VzVmFsPW51bGw7ZWxzZXtmb3IodmFyIGM9MDtjPGkubGVuZ3RoO2MrKyl7dmFyIHU9aVtjXSxoPWFbdV0sZj11KyIuaG92ZXJtb2RlIjtzW2ZdPWguaG92ZXJtb2RlLGxbZl09ITE7Zm9yKHZhciBwPTA7cDwzO3ArKyl7dmFyIGQ9b1twXSxnPXUrIi4iK2QrIi5zaG93c3Bpa2VzIjtsW2ddPSExLHNbZ109aFtkXS5zaG93c3Bpa2VzfX1yLl9wcmV2aW91c1ZhbD1zfXJldHVybiBsfWZ1bmN0aW9uIGQodCxlKXtmb3IodmFyIHI9ZS5jdXJyZW50VGFyZ2V0LGE9ci5nZXRBdHRyaWJ1dGUoImRhdGEtYXR0ciIpLGk9ci5nZXRBdHRyaWJ1dGUoImRhdGEtdmFsIil8fCEwLG89dC5fZnVsbExheW91dCxzPW8uX3N1YnBsb3RzLmdlb3x8W10sbD0wO2w8cy5sZW5ndGg7bCsrKXt2YXIgYz1zW2xdLHU9b1tjXTtpZigiem9vbSI9PT1hKXt2YXIgaD11LnByb2plY3Rpb24uc2NhbGUsZj0iaW4iPT09aT8yKmg6LjUqaDtuLmNhbGwoIl9ndWlSZWxheW91dCIsdCxjKyIucHJvamVjdGlvbi5zY2FsZSIsZil9fSJyZXNldCI9PT1hJiZ5KHQsImdlbyIpfWZ1bmN0aW9uIGcodCl7dmFyIGU9dC5fZnVsbExheW91dDtyZXR1cm4hZS5ob3Zlcm1vZGUmJihlLl9oYXMoImNhcnRlc2lhbiIpP2UuX2lzSG9yaXo/InkiOiJ4IjoiY2xvc2VzdCIpfWZ1bmN0aW9uIHYodCl7dmFyIGU9Zyh0KTtuLmNhbGwoIl9ndWlSZWxheW91dCIsdCwiaG92ZXJtb2RlIixlKX1mdW5jdGlvbiBtKHQsZSl7Zm9yKHZhciByPWUuY3VycmVudFRhcmdldC5nZXRBdHRyaWJ1dGUoImRhdGEtdmFsIiksYT10Ll9mdWxsTGF5b3V0LGk9YS5fc3VicGxvdHMubWFwYm94fHxbXSxvPXt9LHM9MDtzPGkubGVuZ3RoO3MrKyl7dmFyIGw9aVtzXSxjPWFbbF0uem9vbSx1PSJpbiI9PT1yPzEuMDUqYzpjLzEuMDU7b1tsKyIuem9vbSJdPXV9bi5jYWxsKCJfZ3VpUmVsYXlvdXQiLHQsbyl9ZnVuY3Rpb24geSh0LGUpe2Zvcih2YXIgcj10Ll9mdWxsTGF5b3V0LGE9ci5fc3VicGxvdHNbZV18fFtdLGk9e30sbz0wO288YS5sZW5ndGg7bysrKWZvcih2YXIgcz1hW29dLGw9cltzXS5fc3VicGxvdC52aWV3SW5pdGlhbCxjPU9iamVjdC5rZXlzKGwpLHU9MDt1PGMubGVuZ3RoO3UrKyl7dmFyIGg9Y1t1XTtpW3MrIi4iK2hdPWxbaF19bi5jYWxsKCJfZ3VpUmVsYXlvdXQiLHQsaSl9Yy50b0ltYWdlPXtuYW1lOiJ0b0ltYWdlIix0aXRsZTpmdW5jdGlvbih0KXt2YXIgZT0odC5fY29udGV4dC50b0ltYWdlQnV0dG9uT3B0aW9uc3x8e30pLmZvcm1hdHx8InBuZyI7cmV0dXJuIGwodCwicG5nIj09PWU/IkRvd25sb2FkIHBsb3QgYXMgYSBwbmciOiJEb3dubG9hZCBwbG90Iil9LGljb246cy5jYW1lcmEsY2xpY2s6ZnVuY3Rpb24odCl7dmFyIGU9dC5fY29udGV4dC50b0ltYWdlQnV0dG9uT3B0aW9ucyxyPXtmb3JtYXQ6ZS5mb3JtYXR8fCJwbmcifTtvLm5vdGlmaWVyKGwodCwiVGFraW5nIHNuYXBzaG90IC0gdGhpcyBtYXkgdGFrZSBhIGZldyBzZWNvbmRzIiksImxvbmciKSwic3ZnIiE9PXIuZm9ybWF0JiZvLmlzSUUoKSYmKG8ubm90aWZpZXIobCh0LCJJRSBvbmx5IHN1cHBvcnRzIHN2Zy4gIENoYW5naW5nIGZvcm1hdCB0byBzdmcuIiksImxvbmciKSxyLmZvcm1hdD0ic3ZnIiksWyJmaWxlbmFtZSIsIndpZHRoIiwiaGVpZ2h0Iiwic2NhbGUiXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QgaW4gZSYmKHJbdF09ZVt0XSl9KSxuLmNhbGwoImRvd25sb2FkSW1hZ2UiLHQscikudGhlbihmdW5jdGlvbihlKXtvLm5vdGlmaWVyKGwodCwiU25hcHNob3Qgc3VjY2VlZGVkIikrIiAtICIrZSwibG9uZyIpfSkuY2F0Y2goZnVuY3Rpb24oKXtvLm5vdGlmaWVyKGwodCwiU29ycnksIHRoZXJlIHdhcyBhIHByb2JsZW0gZG93bmxvYWRpbmcgeW91ciBzbmFwc2hvdCEiKSwibG9uZyIpfSl9fSxjLnNlbmREYXRhVG9DbG91ZD17bmFtZToic2VuZERhdGFUb0Nsb3VkIix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gbCh0LCJFZGl0IGluIENoYXJ0IFN0dWRpbyIpfSxpY29uOnMuZGlzayxjbGljazpmdW5jdGlvbih0KXthLnNlbmREYXRhVG9DbG91ZCh0KX19LGMuZWRpdEluQ2hhcnRTdHVkaW89e25hbWU6ImVkaXRJbkNoYXJ0U3R1ZGlvIix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gbCh0LCJFZGl0IGluIENoYXJ0IFN0dWRpbyIpfSxpY29uOnMucGVuY2lsLGNsaWNrOmZ1bmN0aW9uKHQpe2Euc2VuZERhdGFUb0Nsb3VkKHQpfX0sYy56b29tMmQ9e25hbWU6Inpvb20yZCIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGwodCwiWm9vbSIpfSxhdHRyOiJkcmFnbW9kZSIsdmFsOiJ6b29tIixpY29uOnMuem9vbWJveCxjbGljazp1fSxjLnBhbjJkPXtuYW1lOiJwYW4yZCIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGwodCwiUGFuIil9LGF0dHI6ImRyYWdtb2RlIix2YWw6InBhbiIsaWNvbjpzLnBhbixjbGljazp1fSxjLnNlbGVjdDJkPXtuYW1lOiJzZWxlY3QyZCIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGwodCwiQm94IFNlbGVjdCIpfSxhdHRyOiJkcmFnbW9kZSIsdmFsOiJzZWxlY3QiLGljb246cy5zZWxlY3Rib3gsY2xpY2s6dX0sYy5sYXNzbzJkPXtuYW1lOiJsYXNzbzJkIix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gbCh0LCJMYXNzbyBTZWxlY3QiKX0sYXR0cjoiZHJhZ21vZGUiLHZhbDoibGFzc28iLGljb246cy5sYXNzbyxjbGljazp1fSxjLnpvb21JbjJkPXtuYW1lOiJ6b29tSW4yZCIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGwodCwiWm9vbSBpbiIpfSxhdHRyOiJ6b29tIix2YWw6ImluIixpY29uOnMuem9vbV9wbHVzLGNsaWNrOnV9LGMuem9vbU91dDJkPXtuYW1lOiJ6b29tT3V0MmQiLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBsKHQsIlpvb20gb3V0Iil9LGF0dHI6Inpvb20iLHZhbDoib3V0IixpY29uOnMuem9vbV9taW51cyxjbGljazp1fSxjLmF1dG9TY2FsZTJkPXtuYW1lOiJhdXRvU2NhbGUyZCIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGwodCwiQXV0b3NjYWxlIil9LGF0dHI6Inpvb20iLHZhbDoiYXV0byIsaWNvbjpzLmF1dG9zY2FsZSxjbGljazp1fSxjLnJlc2V0U2NhbGUyZD17bmFtZToicmVzZXRTY2FsZTJkIix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gbCh0LCJSZXNldCBheGVzIil9LGF0dHI6Inpvb20iLHZhbDoicmVzZXQiLGljb246cy5ob21lLGNsaWNrOnV9LGMuaG92ZXJDbG9zZXN0Q2FydGVzaWFuPXtuYW1lOiJob3ZlckNsb3Nlc3RDYXJ0ZXNpYW4iLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBsKHQsIlNob3cgY2xvc2VzdCBkYXRhIG9uIGhvdmVyIil9LGF0dHI6ImhvdmVybW9kZSIsdmFsOiJjbG9zZXN0IixpY29uOnMudG9vbHRpcF9iYXNpYyxncmF2aXR5OiJuZSIsY2xpY2s6dX0sYy5ob3ZlckNvbXBhcmVDYXJ0ZXNpYW49e25hbWU6ImhvdmVyQ29tcGFyZUNhcnRlc2lhbiIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGwodCwiQ29tcGFyZSBkYXRhIG9uIGhvdmVyIil9LGF0dHI6ImhvdmVybW9kZSIsdmFsOmZ1bmN0aW9uKHQpe3JldHVybiB0Ll9mdWxsTGF5b3V0Ll9pc0hvcml6PyJ5IjoieCJ9LGljb246cy50b29sdGlwX2NvbXBhcmUsZ3Jhdml0eToibmUiLGNsaWNrOnV9LGMuem9vbTNkPXtuYW1lOiJ6b29tM2QiLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBsKHQsIlpvb20iKX0sYXR0cjoic2NlbmUuZHJhZ21vZGUiLHZhbDoiem9vbSIsaWNvbjpzLnpvb21ib3gsY2xpY2s6aH0sYy5wYW4zZD17bmFtZToicGFuM2QiLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBsKHQsIlBhbiIpfSxhdHRyOiJzY2VuZS5kcmFnbW9kZSIsdmFsOiJwYW4iLGljb246cy5wYW4sY2xpY2s6aH0sYy5vcmJpdFJvdGF0aW9uPXtuYW1lOiJvcmJpdFJvdGF0aW9uIix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gbCh0LCJPcmJpdGFsIHJvdGF0aW9uIil9LGF0dHI6InNjZW5lLmRyYWdtb2RlIix2YWw6Im9yYml0IixpY29uOnNbIjNkX3JvdGF0ZSJdLGNsaWNrOmh9LGMudGFibGVSb3RhdGlvbj17bmFtZToidGFibGVSb3RhdGlvbiIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGwodCwiVHVybnRhYmxlIHJvdGF0aW9uIil9LGF0dHI6InNjZW5lLmRyYWdtb2RlIix2YWw6InR1cm50YWJsZSIsaWNvbjpzWyJ6LWF4aXMiXSxjbGljazpofSxjLnJlc2V0Q2FtZXJhRGVmYXVsdDNkPXtuYW1lOiJyZXNldENhbWVyYURlZmF1bHQzZCIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGwodCwiUmVzZXQgY2FtZXJhIHRvIGRlZmF1bHQiKX0sYXR0cjoicmVzZXREZWZhdWx0IixpY29uOnMuaG9tZSxjbGljazpmfSxjLnJlc2V0Q2FtZXJhTGFzdFNhdmUzZD17bmFtZToicmVzZXRDYW1lcmFMYXN0U2F2ZTNkIix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gbCh0LCJSZXNldCBjYW1lcmEgdG8gbGFzdCBzYXZlIil9LGF0dHI6InJlc2V0TGFzdFNhdmUiLGljb246cy5tb3ZpZSxjbGljazpmfSxjLmhvdmVyQ2xvc2VzdDNkPXtuYW1lOiJob3ZlckNsb3Nlc3QzZCIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGwodCwiVG9nZ2xlIHNob3cgY2xvc2VzdCBkYXRhIG9uIGhvdmVyIil9LGF0dHI6ImhvdmVybW9kZSIsdmFsOm51bGwsdG9nZ2xlOiEwLGljb246cy50b29sdGlwX2Jhc2ljLGdyYXZpdHk6Im5lIixjbGljazpmdW5jdGlvbih0LGUpe3ZhciByPXAodCxlKTtuLmNhbGwoIl9ndWlSZWxheW91dCIsdCxyKX19LGMuem9vbUluR2VvPXtuYW1lOiJ6b29tSW5HZW8iLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBsKHQsIlpvb20gaW4iKX0sYXR0cjoiem9vbSIsdmFsOiJpbiIsaWNvbjpzLnpvb21fcGx1cyxjbGljazpkfSxjLnpvb21PdXRHZW89e25hbWU6Inpvb21PdXRHZW8iLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBsKHQsIlpvb20gb3V0Iil9LGF0dHI6Inpvb20iLHZhbDoib3V0IixpY29uOnMuem9vbV9taW51cyxjbGljazpkfSxjLnJlc2V0R2VvPXtuYW1lOiJyZXNldEdlbyIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGwodCwiUmVzZXQiKX0sYXR0cjoicmVzZXQiLHZhbDpudWxsLGljb246cy5hdXRvc2NhbGUsY2xpY2s6ZH0sYy5ob3ZlckNsb3Nlc3RHZW89e25hbWU6ImhvdmVyQ2xvc2VzdEdlbyIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGwodCwiVG9nZ2xlIHNob3cgY2xvc2VzdCBkYXRhIG9uIGhvdmVyIil9LGF0dHI6ImhvdmVybW9kZSIsdmFsOm51bGwsdG9nZ2xlOiEwLGljb246cy50b29sdGlwX2Jhc2ljLGdyYXZpdHk6Im5lIixjbGljazp2fSxjLmhvdmVyQ2xvc2VzdEdsMmQ9e25hbWU6ImhvdmVyQ2xvc2VzdEdsMmQiLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBsKHQsIlRvZ2dsZSBzaG93IGNsb3Nlc3QgZGF0YSBvbiBob3ZlciIpfSxhdHRyOiJob3Zlcm1vZGUiLHZhbDpudWxsLHRvZ2dsZTohMCxpY29uOnMudG9vbHRpcF9iYXNpYyxncmF2aXR5OiJuZSIsY2xpY2s6dn0sYy5ob3ZlckNsb3Nlc3RQaWU9e25hbWU6ImhvdmVyQ2xvc2VzdFBpZSIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGwodCwiVG9nZ2xlIHNob3cgY2xvc2VzdCBkYXRhIG9uIGhvdmVyIil9LGF0dHI6ImhvdmVybW9kZSIsdmFsOiJjbG9zZXN0IixpY29uOnMudG9vbHRpcF9iYXNpYyxncmF2aXR5OiJuZSIsY2xpY2s6dn0sYy5yZXNldFZpZXdTYW5rZXk9e25hbWU6InJlc2V0U2Fua2V5R3JvdXAiLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBsKHQsIlJlc2V0IHZpZXciKX0saWNvbjpzLmhvbWUsY2xpY2s6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXsibm9kZS5ncm91cHMiOltdLCJub2RlLngiOltdLCJub2RlLnkiOltdfSxyPTA7cjx0Ll9mdWxsRGF0YS5sZW5ndGg7cisrKXt2YXIgYT10Ll9mdWxsRGF0YVtyXS5fdmlld0luaXRpYWw7ZVsibm9kZS5ncm91cHMiXS5wdXNoKGEubm9kZS5ncm91cHMuc2xpY2UoKSksZVsibm9kZS54Il0ucHVzaChhLm5vZGUueC5zbGljZSgpKSxlWyJub2RlLnkiXS5wdXNoKGEubm9kZS55LnNsaWNlKCkpfW4uY2FsbCgicmVzdHlsZSIsdCxlKX19LGMudG9nZ2xlSG92ZXI9e25hbWU6InRvZ2dsZUhvdmVyIix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gbCh0LCJUb2dnbGUgc2hvdyBjbG9zZXN0IGRhdGEgb24gaG92ZXIiKX0sYXR0cjoiaG92ZXJtb2RlIix2YWw6bnVsbCx0b2dnbGU6ITAsaWNvbjpzLnRvb2x0aXBfYmFzaWMsZ3Jhdml0eToibmUiLGNsaWNrOmZ1bmN0aW9uKHQsZSl7dmFyIHI9cCh0LGUpO3IuaG92ZXJtb2RlPWcodCksbi5jYWxsKCJfZ3VpUmVsYXlvdXQiLHQscil9fSxjLnJlc2V0Vmlld3M9e25hbWU6InJlc2V0Vmlld3MiLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBsKHQsIlJlc2V0IHZpZXdzIil9LGljb246cy5ob21lLGNsaWNrOmZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5jdXJyZW50VGFyZ2V0O3Iuc2V0QXR0cmlidXRlKCJkYXRhLWF0dHIiLCJ6b29tIiksci5zZXRBdHRyaWJ1dGUoImRhdGEtdmFsIiwicmVzZXQiKSx1KHQsZSksci5zZXRBdHRyaWJ1dGUoImRhdGEtYXR0ciIsInJlc2V0TGFzdFNhdmUiKSxmKHQsZSkseSh0LCJnZW8iKSx5KHQsIm1hcGJveCIpfX0sYy50b2dnbGVTcGlrZWxpbmVzPXtuYW1lOiJ0b2dnbGVTcGlrZWxpbmVzIix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gbCh0LCJUb2dnbGUgU3Bpa2UgTGluZXMiKX0saWNvbjpzLnNwaWtlbGluZSxhdHRyOiJfY2FydGVzaWFuU3Bpa2VzRW5hYmxlZCIsdmFsOiJvbiIsY2xpY2s6ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dCxyPWUuX2NhcnRlc2lhblNwaWtlc0VuYWJsZWQ7ZS5fY2FydGVzaWFuU3Bpa2VzRW5hYmxlZD0ib24iPT09cj8ib2ZmIjoib24iLG4uY2FsbCgiX2d1aVJlbGF5b3V0Iix0LGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0ib24iPT09dC5fZnVsbExheW91dC5fY2FydGVzaWFuU3Bpa2VzRW5hYmxlZCxyPWkubGlzdCh0LG51bGwsITApLG49e30sYT0wO2E8ci5sZW5ndGg7YSsrKXt2YXIgbz1yW2FdO25bby5fbmFtZSsiLnNob3dzcGlrZXMiXT0hIWV8fG8uX3Nob3dTcGlrZUluaXRpYWx9cmV0dXJuIG59KHQpKX19LGMucmVzZXRWaWV3TWFwYm94PXtuYW1lOiJyZXNldFZpZXdNYXBib3giLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBsKHQsIlJlc2V0IHZpZXciKX0sYXR0cjoicmVzZXQiLGljb246cy5ob21lLGNsaWNrOmZ1bmN0aW9uKHQpe3kodCwibWFwYm94Iil9fSxjLnpvb21Jbk1hcGJveD17bmFtZToiem9vbUluTWFwYm94Iix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gbCh0LCJab29tIGluIil9LGF0dHI6Inpvb20iLHZhbDoiaW4iLGljb246cy56b29tX3BsdXMsY2xpY2s6bX0sYy56b29tT3V0TWFwYm94PXtuYW1lOiJ6b29tT3V0TWFwYm94Iix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gbCh0LCJab29tIG91dCIpfSxhdHRyOiJ6b29tIix2YWw6Im91dCIsaWNvbjpzLnpvb21fbWludXMsY2xpY2s6bX19LHsiLi4vLi4vZm9udHMvcGxvdGljb24iOjY5NywiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2lkcyI6NzY4LCIuLi8uLi9wbG90cy9wbG90cyI6ODI2LCIuLi8uLi9yZWdpc3RyeSI6ODQ2fV0sNjUwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3IubWFuYWdlPXQoIi4vbWFuYWdlIil9LHsiLi9tYW5hZ2UiOjY1MX1dLDY1MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiKSxhPXQoIi4uLy4uL3RyYWNlcy9zY2F0dGVyL3N1YnR5cGVzIiksaT10KCIuLi8uLi9yZWdpc3RyeSIpLG89dCgiLi9tb2RlYmFyIikscz10KCIuL2J1dHRvbnMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dCxyPXQuX2NvbnRleHQsbD1lLl9tb2RlQmFyO2lmKHIuZGlzcGxheU1vZGVCYXJ8fHIud2F0ZXJtYXJrKXtpZighQXJyYXkuaXNBcnJheShyLm1vZGVCYXJCdXR0b25zVG9SZW1vdmUpKXRocm93IG5ldyBFcnJvcihbIiptb2RlQmFyQnV0dG9uc1RvUmVtb3ZlKiBjb25maWd1cmF0aW9uIG9wdGlvbnMiLCJtdXN0IGJlIGFuIGFycmF5LiJdLmpvaW4oIiAiKSk7aWYoIUFycmF5LmlzQXJyYXkoci5tb2RlQmFyQnV0dG9uc1RvQWRkKSl0aHJvdyBuZXcgRXJyb3IoWyIqbW9kZUJhckJ1dHRvbnNUb0FkZCogY29uZmlndXJhdGlvbiBvcHRpb25zIiwibXVzdCBiZSBhbiBhcnJheS4iXS5qb2luKCIgIikpO3ZhciBjLHU9ci5tb2RlQmFyQnV0dG9ucztjPUFycmF5LmlzQXJyYXkodSkmJnUubGVuZ3RoP2Z1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKWZvcih2YXIgcj10W2VdLG49MDtuPHIubGVuZ3RoO24rKyl7dmFyIGE9cltuXTtpZigic3RyaW5nIj09dHlwZW9mIGEpe2lmKHZvaWQgMD09PXNbYV0pdGhyb3cgbmV3IEVycm9yKFsiKm1vZGVCYXJCdXR0b25zKiBjb25maWd1cmF0aW9uIG9wdGlvbnMiLCJpbnZhbGlkIGJ1dHRvbiBuYW1lIl0uam9pbigiICIpKTt0W2VdW25dPXNbYV19fXJldHVybiB0fSh1KTohci5kaXNwbGF5TW9kZUJhciYmci53YXRlcm1hcms/W106ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dCxyPXQuX2Z1bGxEYXRhLG89dC5fY29udGV4dCxsPW8ubW9kZUJhckJ1dHRvbnNUb1JlbW92ZSxjPW8ubW9kZUJhckJ1dHRvbnNUb0FkZCx1PWUuX2hhcygiY2FydGVzaWFuIiksaD1lLl9oYXMoImdsM2QiKSxmPWUuX2hhcygiZ2VvIikscD1lLl9oYXMoInBpZSIpLGQ9ZS5faGFzKCJmdW5uZWxhcmVhIiksZz1lLl9oYXMoImdsMmQiKSx2PWUuX2hhcygidGVybmFyeSIpLG09ZS5faGFzKCJtYXBib3giKSx5PWUuX2hhcygicG9sYXIiKSx4PWUuX2hhcygic2Fua2V5IiksYj1mdW5jdGlvbih0KXtmb3IodmFyIGU9bi5saXN0KHtfZnVsbExheW91dDp0fSxudWxsLCEwKSxyPTA7cjxlLmxlbmd0aDtyKyspaWYoIWVbcl0uZml4ZWRyYW5nZSlyZXR1cm4hMTtyZXR1cm4hMH0oZSksXz1bXTtmdW5jdGlvbiB3KHQpe2lmKHQubGVuZ3RoKXtmb3IodmFyIGU9W10scj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgbj10W3JdOy0xPT09bC5pbmRleE9mKG4pJiZlLnB1c2goc1tuXSl9Xy5wdXNoKGUpfX12YXIgaz1bInRvSW1hZ2UiXTtvLnNob3dFZGl0SW5DaGFydFN0dWRpbz9rLnB1c2goImVkaXRJbkNoYXJ0U3R1ZGlvIik6by5zaG93U2VuZFRvQ2xvdWQmJmsucHVzaCgic2VuZERhdGFUb0Nsb3VkIik7dyhrKTt2YXIgVD1bXSxNPVtdLEE9W10sUz1bXTsodXx8Z3x8cHx8ZHx8dikrZitoK20reT4xPyhNPVsidG9nZ2xlSG92ZXIiXSxBPVsicmVzZXRWaWV3cyJdKTpmPyhUPVsiem9vbUluR2VvIiwiem9vbU91dEdlbyJdLE09WyJob3ZlckNsb3Nlc3RHZW8iXSxBPVsicmVzZXRHZW8iXSk6aD8oTT1bImhvdmVyQ2xvc2VzdDNkIl0sQT1bInJlc2V0Q2FtZXJhRGVmYXVsdDNkIiwicmVzZXRDYW1lcmFMYXN0U2F2ZTNkIl0pOm0/KFQ9WyJ6b29tSW5NYXBib3giLCJ6b29tT3V0TWFwYm94Il0sTT1bInRvZ2dsZUhvdmVyIl0sQT1bInJlc2V0Vmlld01hcGJveCJdKTpnP009WyJob3ZlckNsb3Nlc3RHbDJkIl06cD9NPVsiaG92ZXJDbG9zZXN0UGllIl06eD8oTT1bImhvdmVyQ2xvc2VzdENhcnRlc2lhbiIsImhvdmVyQ29tcGFyZUNhcnRlc2lhbiJdLEE9WyJyZXNldFZpZXdTYW5rZXkiXSk6TT1bInRvZ2dsZUhvdmVyIl07dSYmKE09WyJ0b2dnbGVTcGlrZWxpbmVzIiwiaG92ZXJDbG9zZXN0Q2FydGVzaWFuIiwiaG92ZXJDb21wYXJlQ2FydGVzaWFuIl0pOyhmdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKylpZighaS50cmFjZUlzKHRbZV0sIm5vSG92ZXIiKSlyZXR1cm4hMTtyZXR1cm4hMH0pKHIpJiYoTT1bXSk7IXUmJiFnfHxifHwoVD1bInpvb21JbjJkIiwiem9vbU91dDJkIiwiYXV0b1NjYWxlMmQiXSwicmVzZXRWaWV3cyIhPT1BWzBdJiYoQT1bInJlc2V0U2NhbGUyZCJdKSk7aD9TPVsiem9vbTNkIiwicGFuM2QiLCJvcmJpdFJvdGF0aW9uIiwidGFibGVSb3RhdGlvbiJdOih1fHxnKSYmIWJ8fHY/Uz1bInpvb20yZCIsInBhbjJkIl06bXx8Zj9TPVsicGFuMmQiXTp5JiYoUz1bInpvb20yZCJdKTsoZnVuY3Rpb24odCl7Zm9yKHZhciBlPSExLHI9MDtyPHQubGVuZ3RoJiYhZTtyKyspe3ZhciBuPXRbcl07bi5fbW9kdWxlJiZuLl9tb2R1bGUuc2VsZWN0UG9pbnRzJiYoaS50cmFjZUlzKG4sInNjYXR0ZXItbGlrZSIpPyhhLmhhc01hcmtlcnMobil8fGEuaGFzVGV4dChuKSkmJihlPSEwKTppLnRyYWNlSXMobiwiYm94LXZpb2xpbiIpJiYiYWxsIiE9PW4uYm94cG9pbnRzJiYiYWxsIiE9PW4ucG9pbnRzfHwoZT0hMCkpfXJldHVybiBlfSkocikmJlMucHVzaCgic2VsZWN0MmQiLCJsYXNzbzJkIik7cmV0dXJuIHcoUyksdyhULmNvbmNhdChBKSksdyhNKSxmdW5jdGlvbih0LGUpe2lmKGUubGVuZ3RoKWlmKEFycmF5LmlzQXJyYXkoZVswXSkpZm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspdC5wdXNoKGVbcl0pO2Vsc2UgdC5wdXNoKGUpO3JldHVybiB0fShfLGMpfSh0KSxsP2wudXBkYXRlKHQsYyk6ZS5fbW9kZUJhcj1vKHQsYyl9ZWxzZSBsJiYobC5kZXN0cm95KCksZGVsZXRlIGUuX21vZGVCYXIpfX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiOjc2OCwiLi4vLi4vcmVnaXN0cnkiOjg0NiwiLi4vLi4vdHJhY2VzL3NjYXR0ZXIvc3VidHlwZXMiOjExNDQsIi4vYnV0dG9ucyI6NjQ5LCIuL21vZGViYXIiOjY1Mn1dLDY1MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGE9dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4uLy4uL2xpYiIpLG89dCgiLi4vLi4vZm9udHMvcGxvdGljb24iKSxzPW5ldyBET01QYXJzZXI7ZnVuY3Rpb24gbCh0KXt0aGlzLmNvbnRhaW5lcj10LmNvbnRhaW5lcix0aGlzLmVsZW1lbnQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy51cGRhdGUodC5ncmFwaEluZm8sdC5idXR0b25zKSx0aGlzLmNvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnQpfXZhciBjPWwucHJvdG90eXBlO2MudXBkYXRlPWZ1bmN0aW9uKHQsZSl7dGhpcy5ncmFwaEluZm89dDt2YXIgcj10aGlzLmdyYXBoSW5mby5fY29udGV4dCxuPXRoaXMuZ3JhcGhJbmZvLl9mdWxsTGF5b3V0LGE9Im1vZGViYXItIituLl91aWQ7dGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLGEpLHRoaXMuX3VpZD1hLHRoaXMuZWxlbWVudC5jbGFzc05hbWU9Im1vZGViYXIiLCJob3ZlciI9PT1yLmRpc3BsYXlNb2RlQmFyJiYodGhpcy5lbGVtZW50LmNsYXNzTmFtZSs9IiBtb2RlYmFyLS1ob3ZlciBlYXNlLWJnIiksInYiPT09bi5tb2RlYmFyLm9yaWVudGF0aW9uJiYodGhpcy5lbGVtZW50LmNsYXNzTmFtZSs9IiB2ZXJ0aWNhbCIsZT1lLnJldmVyc2UoKSk7dmFyIG89bi5tb2RlYmFyLHM9ImhvdmVyIj09PXIuZGlzcGxheU1vZGVCYXI/Ii5qcy1wbG90bHktcGxvdCAucGxvdGx5OmhvdmVyICI6IiI7aS5kZWxldGVSZWxhdGVkU3R5bGVSdWxlKGEpLGkuYWRkUmVsYXRlZFN0eWxlUnVsZShhLHMrIiMiK2ErIiAubW9kZWJhci1ncm91cCIsImJhY2tncm91bmQtY29sb3I6ICIrby5iZ2NvbG9yKSxpLmFkZFJlbGF0ZWRTdHlsZVJ1bGUoYSwiIyIrYSsiIC5tb2RlYmFyLWJ0biAuaWNvbiBwYXRoIiwiZmlsbDogIitvLmNvbG9yKSxpLmFkZFJlbGF0ZWRTdHlsZVJ1bGUoYSwiIyIrYSsiIC5tb2RlYmFyLWJ0bjpob3ZlciAuaWNvbiBwYXRoIiwiZmlsbDogIitvLmFjdGl2ZWNvbG9yKSxpLmFkZFJlbGF0ZWRTdHlsZVJ1bGUoYSwiIyIrYSsiIC5tb2RlYmFyLWJ0bi5hY3RpdmUgLmljb24gcGF0aCIsImZpbGw6ICIrby5hY3RpdmVjb2xvcik7dmFyIGw9IXRoaXMuaGFzQnV0dG9ucyhlKSxjPXRoaXMuaGFzTG9nbyE9PXIuZGlzcGxheWxvZ28sdT10aGlzLmxvY2FsZSE9PXIubG9jYWxlO2lmKHRoaXMubG9jYWxlPXIubG9jYWxlLChsfHxjfHx1KSYmKHRoaXMucmVtb3ZlQWxsQnV0dG9ucygpLHRoaXMudXBkYXRlQnV0dG9ucyhlKSxyLndhdGVybWFya3x8ci5kaXNwbGF5bG9nbykpe3ZhciBoPXRoaXMuZ2V0TG9nbygpO3Iud2F0ZXJtYXJrJiYoaC5jbGFzc05hbWU9aC5jbGFzc05hbWUrIiB3YXRlcm1hcmsiKSwidiI9PT1uLm1vZGViYXIub3JpZW50YXRpb24/dGhpcy5lbGVtZW50Lmluc2VydEJlZm9yZShoLHRoaXMuZWxlbWVudC5jaGlsZE5vZGVzWzBdKTp0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoaCksdGhpcy5oYXNMb2dvPSEwfXRoaXMudXBkYXRlQWN0aXZlQnV0dG9uKCl9LGMudXBkYXRlQnV0dG9ucz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuYnV0dG9ucz10LHRoaXMuYnV0dG9uRWxlbWVudHM9W10sdGhpcy5idXR0b25zTmFtZXM9W10sdGhpcy5idXR0b25zLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHI9ZS5jcmVhdGVHcm91cCgpO3QuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgbj10Lm5hbWU7aWYoIW4pdGhyb3cgbmV3IEVycm9yKCJtdXN0IHByb3ZpZGUgYnV0dG9uICduYW1lJyBpbiBidXR0b24gY29uZmlnIik7aWYoLTEhPT1lLmJ1dHRvbnNOYW1lcy5pbmRleE9mKG4pKXRocm93IG5ldyBFcnJvcigiYnV0dG9uIG5hbWUgJyIrbisiJyBpcyB0YWtlbiIpO2UuYnV0dG9uc05hbWVzLnB1c2gobik7dmFyIGE9ZS5jcmVhdGVCdXR0b24odCk7ZS5idXR0b25FbGVtZW50cy5wdXNoKGEpLHIuYXBwZW5kQ2hpbGQoYSl9KSxlLmVsZW1lbnQuYXBwZW5kQ2hpbGQocil9KX0sYy5jcmVhdGVHcm91cD1mdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LmNsYXNzTmFtZT0ibW9kZWJhci1ncm91cCIsdH0sYy5jcmVhdGVCdXR0b249ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtyLnNldEF0dHJpYnV0ZSgicmVsIiwidG9vbHRpcCIpLHIuY2xhc3NOYW1lPSJtb2RlYmFyLWJ0biI7dmFyIGE9dC50aXRsZTt2b2lkIDA9PT1hP2E9dC5uYW1lOiJmdW5jdGlvbiI9PXR5cGVvZiBhJiYoYT1hKHRoaXMuZ3JhcGhJbmZvKSksKGF8fDA9PT1hKSYmci5zZXRBdHRyaWJ1dGUoImRhdGEtdGl0bGUiLGEpLHZvaWQgMCE9PXQuYXR0ciYmci5zZXRBdHRyaWJ1dGUoImRhdGEtYXR0ciIsdC5hdHRyKTt2YXIgaT10LnZhbDtpZih2b2lkIDAhPT1pJiYoImZ1bmN0aW9uIj09dHlwZW9mIGkmJihpPWkodGhpcy5ncmFwaEluZm8pKSxyLnNldEF0dHJpYnV0ZSgiZGF0YS12YWwiLGkpKSwiZnVuY3Rpb24iIT10eXBlb2YgdC5jbGljayl0aHJvdyBuZXcgRXJyb3IoIm11c3QgcHJvdmlkZSBidXR0b24gJ2NsaWNrJyBmdW5jdGlvbiBpbiBidXR0b24gY29uZmlnIik7ci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24ocil7dC5jbGljayhlLmdyYXBoSW5mbyxyKSxlLnVwZGF0ZUFjdGl2ZUJ1dHRvbihyLmN1cnJlbnRUYXJnZXQpfSksci5zZXRBdHRyaWJ1dGUoImRhdGEtdG9nZ2xlIix0LnRvZ2dsZXx8ITEpLHQudG9nZ2xlJiZuLnNlbGVjdChyKS5jbGFzc2VkKCJhY3RpdmUiLCEwKTt2YXIgcz10Lmljb247cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHM/ci5hcHBlbmRDaGlsZChzKCkpOnIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVJY29uKHN8fG8ucXVlc3Rpb24pKSxyLnNldEF0dHJpYnV0ZSgiZGF0YS1ncmF2aXR5Iix0LmdyYXZpdHl8fCJuIikscn0sYy5jcmVhdGVJY29uPWZ1bmN0aW9uKHQpe3ZhciBlLHI9YSh0LmhlaWdodCk/TnVtYmVyKHQuaGVpZ2h0KTp0LmFzY2VudC10LmRlc2NlbnQsbj0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciO2lmKHQucGF0aCl7KGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKG4sInN2ZyIpKS5zZXRBdHRyaWJ1dGUoInZpZXdCb3giLFswLDAsdC53aWR0aCxyXS5qb2luKCIgIikpLGUuc2V0QXR0cmlidXRlKCJjbGFzcyIsImljb24iKTt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMobiwicGF0aCIpO2kuc2V0QXR0cmlidXRlKCJkIix0LnBhdGgpLHQudHJhbnNmb3JtP2kuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLHQudHJhbnNmb3JtKTp2b2lkIDAhPT10LmFzY2VudCYmaS5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsIm1hdHJpeCgxIDAgMCAtMSAwICIrdC5hc2NlbnQrIikiKSxlLmFwcGVuZENoaWxkKGkpfXQuc3ZnJiYoZT1zLnBhcnNlRnJvbVN0cmluZyh0LnN2ZywiYXBwbGljYXRpb24veG1sIikuY2hpbGROb2Rlc1swXSk7cmV0dXJuIGUuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCIxZW0iKSxlLnNldEF0dHJpYnV0ZSgid2lkdGgiLCIxZW0iKSxlfSxjLnVwZGF0ZUFjdGl2ZUJ1dHRvbj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmdyYXBoSW5mby5fZnVsbExheW91dCxyPXZvaWQgMCE9PXQ/dC5nZXRBdHRyaWJ1dGUoImRhdGEtYXR0ciIpOm51bGw7dGhpcy5idXR0b25FbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBhPXQuZ2V0QXR0cmlidXRlKCJkYXRhLXZhbCIpfHwhMCxvPXQuZ2V0QXR0cmlidXRlKCJkYXRhLWF0dHIiKSxzPSJ0cnVlIj09PXQuZ2V0QXR0cmlidXRlKCJkYXRhLXRvZ2dsZSIpLGw9bi5zZWxlY3QodCk7aWYocylvPT09ciYmbC5jbGFzc2VkKCJhY3RpdmUiLCFsLmNsYXNzZWQoImFjdGl2ZSIpKTtlbHNle3ZhciBjPW51bGw9PT1vP286aS5uZXN0ZWRQcm9wZXJ0eShlLG8pLmdldCgpO2wuY2xhc3NlZCgiYWN0aXZlIixjPT09YSl9fSl9LGMuaGFzQnV0dG9ucz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmJ1dHRvbnM7aWYoIWUpcmV0dXJuITE7aWYodC5sZW5ndGghPT1lLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIHI9MDtyPHQubGVuZ3RoOysrcil7aWYodFtyXS5sZW5ndGghPT1lW3JdLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIG49MDtuPHRbcl0ubGVuZ3RoO24rKylpZih0W3JdW25dLm5hbWUhPT1lW3JdW25dLm5hbWUpcmV0dXJuITF9cmV0dXJuITB9LGMuZ2V0TG9nbz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuY3JlYXRlR3JvdXAoKSxlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtyZXR1cm4gZS5ocmVmPSJodHRwczovL3Bsb3QubHkvIixlLnRhcmdldD0iX2JsYW5rIixlLnNldEF0dHJpYnV0ZSgiZGF0YS10aXRsZSIsaS5fKHRoaXMuZ3JhcGhJbmZvLCJQcm9kdWNlZCB3aXRoIFBsb3RseSIpKSxlLmNsYXNzTmFtZT0ibW9kZWJhci1idG4gcGxvdGx5anNpY29uIG1vZGViYXItYnRuLS1sb2dvIixlLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlSWNvbihvLm5ld3Bsb3RseWxvZ28pKSx0LmFwcGVuZENoaWxkKGUpLHR9LGMucmVtb3ZlQWxsQnV0dG9ucz1mdW5jdGlvbigpe2Zvcig7dGhpcy5lbGVtZW50LmZpcnN0Q2hpbGQ7KXRoaXMuZWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnQuZmlyc3RDaGlsZCk7dGhpcy5oYXNMb2dvPSExfSxjLmRlc3Ryb3k9ZnVuY3Rpb24oKXtpLnJlbW92ZUVsZW1lbnQodGhpcy5jb250YWluZXIucXVlcnlTZWxlY3RvcigiLm1vZGViYXIiKSksaS5kZWxldGVSZWxhdGVkU3R5bGVSdWxlKHRoaXMuX3VpZCl9LGUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQuX2Z1bGxMYXlvdXQsYT1uZXcgbCh7Z3JhcGhJbmZvOnQsY29udGFpbmVyOnIuX21vZGViYXJkaXYubm9kZSgpLGJ1dHRvbnM6ZX0pO3JldHVybiByLl9wcml2YXRlcGxvdCYmbi5zZWxlY3QoYS5lbGVtZW50KS5hcHBlbmQoInNwYW4iKS5jbGFzc2VkKCJiYWRnZS1wcml2YXRlIGZsb2F0LS1sZWZ0IiwhMCkudGV4dCgiUFJJVkFURSIpLGF9fSx7Ii4uLy4uL2ZvbnRzL3Bsb3RpY29uIjo2OTcsIi4uLy4uL2xpYiI6NzE3LGQzOjE2NSwiZmFzdC1pc251bWVyaWMiOjIyOH1dLDY1MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9mb250X2F0dHJpYnV0ZXMiKSxhPXQoIi4uL2NvbG9yL2F0dHJpYnV0ZXMiKSxpPSgwLHQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKS50ZW1wbGF0ZWRBcnJheSkoImJ1dHRvbiIse3Zpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6InBsb3QifSxzdGVwOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJtb250aCIsInllYXIiLCJkYXkiLCJob3VyIiwibWludXRlIiwic2Vjb25kIiwiYWxsIl0sZGZsdDoibW9udGgiLGVkaXRUeXBlOiJwbG90In0sc3RlcG1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImJhY2t3YXJkIiwidG9kYXRlIl0sZGZsdDoiYmFja3dhcmQiLGVkaXRUeXBlOiJwbG90In0sY291bnQ6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxLGVkaXRUeXBlOiJwbG90In0sbGFiZWw6e3ZhbFR5cGU6InN0cmluZyIsZWRpdFR5cGU6InBsb3QifSxlZGl0VHlwZToicGxvdCJ9KTtlLmV4cG9ydHM9e3Zpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGVkaXRUeXBlOiJwbG90In0sYnV0dG9uczppLHg6e3ZhbFR5cGU6Im51bWJlciIsbWluOi0yLG1heDozLGVkaXRUeXBlOiJwbG90In0seGFuY2hvcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYXV0byIsImxlZnQiLCJjZW50ZXIiLCJyaWdodCJdLGRmbHQ6ImxlZnQiLGVkaXRUeXBlOiJwbG90In0seTp7dmFsVHlwZToibnVtYmVyIixtaW46LTIsbWF4OjMsZWRpdFR5cGU6InBsb3QifSx5YW5jaG9yOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhdXRvIiwidG9wIiwibWlkZGxlIiwiYm90dG9tIl0sZGZsdDoiYm90dG9tIixlZGl0VHlwZToicGxvdCJ9LGZvbnQ6bih7ZWRpdFR5cGU6InBsb3QifSksYmdjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6YS5saWdodExpbmUsZWRpdFR5cGU6InBsb3QifSxhY3RpdmVjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJwbG90In0sYm9yZGVyY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmEuZGVmYXVsdExpbmUsZWRpdFR5cGU6InBsb3QifSxib3JkZXJ3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjAsZWRpdFR5cGU6InBsb3QifSxlZGl0VHlwZToicGxvdCJ9fSx7Ii4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjc1NSwiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIjo3OTEsIi4uL2NvbG9yL2F0dHJpYnV0ZXMiOjU5MX1dLDY1NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e3lQYWQ6LjAyLG1pbkJ1dHRvbldpZHRoOjMwLHJ4OjMscnk6MyxsaWdodEFtb3VudDoyNSxkYXJrQW1vdW50OjEwfX0se31dLDY1NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4uL2NvbG9yIiksaT10KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIiksbz10KCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiKSxzPXQoIi4vYXR0cmlidXRlcyIpLGw9dCgiLi9jb25zdGFudHMiKTtmdW5jdGlvbiBjKHQsZSxyLGEpe3ZhciBpPWEuY2FsZW5kYXI7ZnVuY3Rpb24gbyhyLGEpe3JldHVybiBuLmNvZXJjZSh0LGUscy5idXR0b25zLHIsYSl9aWYobygidmlzaWJsZSIpKXt2YXIgbD1vKCJzdGVwIik7ImFsbCIhPT1sJiYoIWl8fCJncmVnb3JpYW4iPT09aXx8Im1vbnRoIiE9PWwmJiJ5ZWFyIiE9PWw/bygic3RlcG1vZGUiKTplLnN0ZXBtb2RlPSJiYWNrd2FyZCIsbygiY291bnQiKSksbygibGFiZWwiKX19ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHUsaCl7dmFyIGY9dC5yYW5nZXNlbGVjdG9yfHx7fSxwPWkubmV3Q29udGFpbmVyKGUsInJhbmdlc2VsZWN0b3IiKTtmdW5jdGlvbiBkKHQsZSl7cmV0dXJuIG4uY29lcmNlKGYscCxzLHQsZSl9aWYoZCgidmlzaWJsZSIsbyhmLHAse25hbWU6ImJ1dHRvbnMiLGhhbmRsZUl0ZW1EZWZhdWx0czpjLGNhbGVuZGFyOmh9KS5sZW5ndGg+MCkpe3ZhciBnPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49ci5maWx0ZXIoZnVuY3Rpb24ocil7cmV0dXJuIGVbcl0uYW5jaG9yPT09dC5faWR9KSxhPTAsaT0wO2k8bi5sZW5ndGg7aSsrKXt2YXIgbz1lW25baV1dLmRvbWFpbjtvJiYoYT1NYXRoLm1heChvWzFdLGEpKX1yZXR1cm5bdC5kb21haW5bMF0sYStsLnlQYWRdfShlLHIsdSk7ZCgieCIsZ1swXSksZCgieSIsZ1sxXSksbi5ub25lT3JBbGwodCxlLFsieCIsInkiXSksZCgieGFuY2hvciIpLGQoInlhbmNob3IiKSxuLmNvZXJjZUZvbnQoZCwiZm9udCIsci5mb250KTt2YXIgdj1kKCJiZ2NvbG9yIik7ZCgiYWN0aXZlY29sb3IiLGEuY29udHJhc3QodixsLmxpZ2h0QW1vdW50LGwuZGFya0Ftb3VudCkpLGQoImJvcmRlcmNvbG9yIiksZCgiYm9yZGVyd2lkdGgiKX19fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo3NTUsIi4uLy4uL3Bsb3RzL2FycmF5X2NvbnRhaW5lcl9kZWZhdWx0cyI6NzYxLCIuLi9jb2xvciI6NTkyLCIuL2F0dHJpYnV0ZXMiOjY1MywiLi9jb25zdGFudHMiOjY1NH1dLDY1NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGE9dCgiLi4vLi4vcmVnaXN0cnkiKSxpPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIiksbz10KCIuLi9jb2xvciIpLHM9dCgiLi4vZHJhd2luZyIpLGw9dCgiLi4vLi4vbGliIiksYz10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSx1PXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2lkcyIpLGg9dCgiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCIpLGY9aC5MSU5FX1NQQUNJTkcscD1oLkZST01fVEwsZD1oLkZST01fQlIsZz10KCIuL2NvbnN0YW50cyIpLHY9dCgiLi9nZXRfdXBkYXRlX29iamVjdCIpO2Z1bmN0aW9uIG0odCl7cmV0dXJuIHQuX2lkfWZ1bmN0aW9uIHkodCxlLHIpe3ZhciBuPWwuZW5zdXJlU2luZ2xlKHQsInJlY3QiLCJzZWxlY3Rvci1yZWN0IixmdW5jdGlvbih0KXt0LmF0dHIoInNoYXBlLXJlbmRlcmluZyIsImNyaXNwRWRnZXMiKX0pO24uYXR0cih7cng6Zy5yeCxyeTpnLnJ5fSksbi5jYWxsKG8uc3Ryb2tlLGUuYm9yZGVyY29sb3IpLmNhbGwoby5maWxsLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuX2lzQWN0aXZlfHxlLl9pc0hvdmVyZWQ/dC5hY3RpdmVjb2xvcjp0LmJnY29sb3J9KGUscikpLnN0eWxlKCJzdHJva2Utd2lkdGgiLGUuYm9yZGVyd2lkdGgrInB4Iil9ZnVuY3Rpb24geCh0LGUscixuKXtsLmVuc3VyZVNpbmdsZSh0LCJ0ZXh0Iiwic2VsZWN0b3ItdGV4dCIsZnVuY3Rpb24odCl7dC5jbGFzc2VkKCJ1c2VyLXNlbGVjdC1ub25lIiwhMCkuYXR0cigidGV4dC1hbmNob3IiLCJtaWRkbGUiKX0pLmNhbGwocy5mb250LGUuZm9udCkudGV4dChmdW5jdGlvbih0LGUpe2lmKHQubGFiZWwpcmV0dXJuIGU/bC50ZW1wbGF0ZVN0cmluZyh0LmxhYmVsLGUpOnQubGFiZWw7cmV0dXJuImFsbCI9PT10LnN0ZXA/ImFsbCI6dC5jb3VudCt0LnN0ZXAuY2hhckF0KDApfShyLG4uX2Z1bGxMYXlvdXQuX21ldGEpKS5jYWxsKGZ1bmN0aW9uKHQpe2MuY29udmVydFRvVHNwYW5zKHQsbil9KX1lLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dC5faW5mb2xheWVyLnNlbGVjdEFsbCgiLnJhbmdlc2VsZWN0b3IiKS5kYXRhKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT11Lmxpc3QodCwieCIsITApLHI9W10sbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgYT1lW25dO2EucmFuZ2VzZWxlY3RvciYmYS5yYW5nZXNlbGVjdG9yLnZpc2libGUmJnIucHVzaChhKX1yZXR1cm4gcn0odCksbSk7ZS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoInJhbmdlc2VsZWN0b3IiLCEwKSxlLmV4aXQoKS5yZW1vdmUoKSxlLnN0eWxlKHtjdXJzb3I6InBvaW50ZXIiLCJwb2ludGVyLWV2ZW50cyI6ImFsbCJ9KSxlLmVhY2goZnVuY3Rpb24oZSl7dmFyIHI9bi5zZWxlY3QodGhpcyksbz1lLHU9by5yYW5nZXNlbGVjdG9yLGg9ci5zZWxlY3RBbGwoImcuYnV0dG9uIikuZGF0YShsLmZpbHRlclZpc2libGUodS5idXR0b25zKSk7aC5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoImJ1dHRvbiIsITApLGguZXhpdCgpLnJlbW92ZSgpLGguZWFjaChmdW5jdGlvbihlKXt2YXIgcj1uLnNlbGVjdCh0aGlzKSxpPXYobyxlKTtlLl9pc0FjdGl2ZT1mdW5jdGlvbih0LGUscil7aWYoImFsbCI9PT1lLnN0ZXApcmV0dXJuITA9PT10LmF1dG9yYW5nZTt2YXIgbj1PYmplY3Qua2V5cyhyKTtyZXR1cm4gdC5yYW5nZVswXT09PXJbblswXV0mJnQucmFuZ2VbMV09PT1yW25bMV1dfShvLGUsaSksci5jYWxsKHksdSxlKSxyLmNhbGwoeCx1LGUsdCksci5vbigiY2xpY2siLGZ1bmN0aW9uKCl7dC5fZHJhZ2dlZHx8YS5jYWxsKCJfZ3VpUmVsYXlvdXQiLHQsaSl9KSxyLm9uKCJtb3VzZW92ZXIiLGZ1bmN0aW9uKCl7ZS5faXNIb3ZlcmVkPSEwLHIuY2FsbCh5LHUsZSl9KSxyLm9uKCJtb3VzZW91dCIsZnVuY3Rpb24oKXtlLl9pc0hvdmVyZWQ9ITEsci5jYWxsKHksdSxlKX0pfSksZnVuY3Rpb24odCxlLHIsYSxvKXt2YXIgdT0wLGg9MCx2PXIuYm9yZGVyd2lkdGg7ZS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9bi5zZWxlY3QodGhpcyksZT10LnNlbGVjdCgiLnNlbGVjdG9yLXRleHQiKSxhPXIuZm9udC5zaXplKmYsaT1NYXRoLm1heChhKmMubGluZUNvdW50KGUpLDE2KSszO2g9TWF0aC5tYXgoaCxpKX0pLGUuZWFjaChmdW5jdGlvbigpe3ZhciB0PW4uc2VsZWN0KHRoaXMpLGU9dC5zZWxlY3QoIi5zZWxlY3Rvci1yZWN0IiksYT10LnNlbGVjdCgiLnNlbGVjdG9yLXRleHQiKSxpPWEubm9kZSgpJiZzLmJCb3goYS5ub2RlKCkpLndpZHRoLG89ci5mb250LnNpemUqZixsPWMubGluZUNvdW50KGEpLHA9TWF0aC5tYXgoaSsxMCxnLm1pbkJ1dHRvbldpZHRoKTt0LmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiKyh2K3UpKyIsIit2KyIpIiksZS5hdHRyKHt4OjAseTowLHdpZHRoOnAsaGVpZ2h0Omh9KSxjLnBvc2l0aW9uVGV4dChhLHAvMixoLzItKGwtMSkqby8yKzMpLHUrPXArNX0pO3ZhciBtPXQuX2Z1bGxMYXlvdXQuX3NpemUseT1tLmwrbS53KnIueCx4PW0udCttLmgqKDEtci55KSxiPSJsZWZ0IjtsLmlzUmlnaHRBbmNob3IocikmJih5LT11LGI9InJpZ2h0Iik7bC5pc0NlbnRlckFuY2hvcihyKSYmKHktPXUvMixiPSJjZW50ZXIiKTt2YXIgXz0idG9wIjtsLmlzQm90dG9tQW5jaG9yKHIpJiYoeC09aCxfPSJib3R0b20iKTtsLmlzTWlkZGxlQW5jaG9yKHIpJiYoeC09aC8yLF89Im1pZGRsZSIpO3U9TWF0aC5jZWlsKHUpLGg9TWF0aC5jZWlsKGgpLHk9TWF0aC5yb3VuZCh5KSx4PU1hdGgucm91bmQoeCksaS5hdXRvTWFyZ2luKHQsYSsiLXJhbmdlLXNlbGVjdG9yIix7eDpyLngseTpyLnksbDp1KnBbYl0scjp1KmRbYl0sYjpoKmRbX10sdDpoKnBbX119KSxvLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK3krIiwiK3grIikiKX0odCxoLHUsby5fbmFtZSxyKX0pfX0seyIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50Ijo2ODYsIi4uLy4uL2xpYiI6NzE3LCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjc0MSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIjo3NjgsIi4uLy4uL3Bsb3RzL3Bsb3RzIjo4MjYsIi4uLy4uL3JlZ2lzdHJ5Ijo4NDYsIi4uL2NvbG9yIjo1OTIsIi4uL2RyYXdpbmciOjYxMywiLi9jb25zdGFudHMiOjY1NCwiLi9nZXRfdXBkYXRlX29iamVjdCI6NjU3LGQzOjE2NX1dLDY1NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQuX25hbWUsYT17fTtpZigiYWxsIj09PWUuc3RlcClhW3IrIi5hdXRvcmFuZ2UiXT0hMDtlbHNle3ZhciBpPWZ1bmN0aW9uKHQsZSl7dmFyIHIsYT10LnJhbmdlLGk9bmV3IERhdGUodC5yMmwoYVsxXSkpLG89ZS5zdGVwLHM9ZS5jb3VudDtzd2l0Y2goZS5zdGVwbW9kZSl7Y2FzZSJiYWNrd2FyZCI6cj10Lmwycigrbi50aW1lW29dLnV0Yy5vZmZzZXQoaSwtcykpO2JyZWFrO2Nhc2UidG9kYXRlIjp2YXIgbD1uLnRpbWVbb10udXRjLm9mZnNldChpLC1zKTtyPXQubDJyKCtuLnRpbWVbb10udXRjLmNlaWwobCkpfXZhciBjPWFbMV07cmV0dXJuW3IsY119KHQsZSk7YVtyKyIucmFuZ2VbMF0iXT1pWzBdLGFbcisiLnJhbmdlWzFdIl09aVsxXX1yZXR1cm4gYX19LHtkMzoxNjV9XSw2NTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJjb21wb25lbnQiLG5hbWU6InJhbmdlc2VsZWN0b3IiLHNjaGVtYTp7c3VicGxvdHM6e3hheGlzOntyYW5nZXNlbGVjdG9yOnQoIi4vYXR0cmlidXRlcyIpfX19LGxheW91dEF0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksaGFuZGxlRGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGRyYXc6dCgiLi9kcmF3Iil9fSx7Ii4vYXR0cmlidXRlcyI6NjUzLCIuL2RlZmF1bHRzIjo2NTUsIi4vZHJhdyI6NjU2fV0sNjU5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2NvbG9yL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9e2JnY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0Om4uYmFja2dyb3VuZCxlZGl0VHlwZToicGxvdCJ9LGJvcmRlcmNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpuLmRlZmF1bHRMaW5lLGVkaXRUeXBlOiJwbG90In0sYm9yZGVyd2lkdGg6e3ZhbFR5cGU6ImludGVnZXIiLGRmbHQ6MCxtaW46MCxlZGl0VHlwZToicGxvdCJ9LGF1dG9yYW5nZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToiY2FsYyIsaW1wbGllZEVkaXRzOnsicmFuZ2VbMF0iOnZvaWQgMCwicmFuZ2VbMV0iOnZvaWQgMH19LHJhbmdlOnt2YWxUeXBlOiJpbmZvX2FycmF5IixpdGVtczpbe3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImNhbGMiLGltcGxpZWRFZGl0czp7Il5hdXRvcmFuZ2UiOiExfX0se3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImNhbGMiLGltcGxpZWRFZGl0czp7Il5hdXRvcmFuZ2UiOiExfX1dLGVkaXRUeXBlOiJjYWxjIixpbXBsaWVkRWRpdHM6e2F1dG9yYW5nZTohMX19LHRoaWNrbmVzczp7dmFsVHlwZToibnVtYmVyIixkZmx0Oi4xNSxtaW46MCxtYXg6MSxlZGl0VHlwZToicGxvdCJ9LHZpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6ImNhbGMifSxlZGl0VHlwZToiY2FsYyJ9fSx7Ii4uL2NvbG9yL2F0dHJpYnV0ZXMiOjU5MX1dLDY2MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiKS5saXN0LGE9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F1dG9yYW5nZSIpLmdldEF1dG9SYW5nZSxpPXQoIi4vY29uc3RhbnRzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uKHQsIngiLCEwKSxyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBvPWVbcl0scz1vW2kubmFtZV07cyYmcy52aXNpYmxlJiZzLmF1dG9yYW5nZSYmKHMuX2lucHV0LmF1dG9yYW5nZT0hMCxzLl9pbnB1dC5yYW5nZT1zLnJhbmdlPWEodCxvKSl9fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXV0b3JhbmdlIjo3NjQsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2lkcyI6NzY4LCIuL2NvbnN0YW50cyI6NjYxfV0sNjYxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bmFtZToicmFuZ2VzbGlkZXIiLGNvbnRhaW5lckNsYXNzTmFtZToicmFuZ2VzbGlkZXItY29udGFpbmVyIixiZ0NsYXNzTmFtZToicmFuZ2VzbGlkZXItYmciLHJhbmdlUGxvdENsYXNzTmFtZToicmFuZ2VzbGlkZXItcmFuZ2VwbG90IixtYXNrTWluQ2xhc3NOYW1lOiJyYW5nZXNsaWRlci1tYXNrLW1pbiIsbWFza01heENsYXNzTmFtZToicmFuZ2VzbGlkZXItbWFzay1tYXgiLHNsaWRlQm94Q2xhc3NOYW1lOiJyYW5nZXNsaWRlci1zbGlkZWJveCIsZ3JhYmJlck1pbkNsYXNzTmFtZToicmFuZ2VzbGlkZXItZ3JhYmJlci1taW4iLGdyYWJBcmVhTWluQ2xhc3NOYW1lOiJyYW5nZXNsaWRlci1ncmFiYXJlYS1taW4iLGhhbmRsZU1pbkNsYXNzTmFtZToicmFuZ2VzbGlkZXItaGFuZGxlLW1pbiIsZ3JhYmJlck1heENsYXNzTmFtZToicmFuZ2VzbGlkZXItZ3JhYmJlci1tYXgiLGdyYWJBcmVhTWF4Q2xhc3NOYW1lOiJyYW5nZXNsaWRlci1ncmFiYXJlYS1tYXgiLGhhbmRsZU1heENsYXNzTmFtZToicmFuZ2VzbGlkZXItaGFuZGxlLW1heCIsbWFza01pbk9wcEF4aXNDbGFzc05hbWU6InJhbmdlc2xpZGVyLW1hc2stbWluLW9wcC1heGlzIixtYXNrTWF4T3BwQXhpc0NsYXNzTmFtZToicmFuZ2VzbGlkZXItbWFzay1tYXgtb3BwLWF4aXMiLG1hc2tDb2xvcjoicmdiYSgwLDAsMCwwLjQpIixtYXNrT3BwQXhpc0NvbG9yOiJyZ2JhKDAsMCwwLDAuMikiLHNsaWRlQm94RmlsbDoidHJhbnNwYXJlbnQiLHNsaWRlQm94Q3Vyc29yOiJldy1yZXNpemUiLGdyYWJBcmVhRmlsbDoidHJhbnNwYXJlbnQiLGdyYWJBcmVhQ3Vyc29yOiJjb2wtcmVzaXplIixncmFiQXJlYVdpZHRoOjEwLGhhbmRsZVdpZHRoOjQsaGFuZGxlUmFkaXVzOjEsaGFuZGxlU3Ryb2tlV2lkdGg6MSxleHRyYVBhZDoxNX19LHt9XSw2NjI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiKSxvPXQoIi4vYXR0cmlidXRlcyIpLHM9dCgiLi9vcHBheGlzX2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBsPXRbcl0sYz1lW3JdO2lmKGwucmFuZ2VzbGlkZXJ8fGUuX3JlcXVlc3RSYW5nZXNsaWRlcltjLl9pZF0pe24uaXNQbGFpbk9iamVjdChsLnJhbmdlc2xpZGVyKXx8KGwucmFuZ2VzbGlkZXI9e30pO3ZhciB1LGgsZj1sLnJhbmdlc2xpZGVyLHA9YS5uZXdDb250YWluZXIoYywicmFuZ2VzbGlkZXIiKTtpZihfKCJ2aXNpYmxlIikpe18oImJnY29sb3IiLGUucGxvdF9iZ2NvbG9yKSxfKCJib3JkZXJjb2xvciIpLF8oImJvcmRlcndpZHRoIiksXygidGhpY2tuZXNzIiksXygiYXV0b3JhbmdlIiwhYy5pc1ZhbGlkUmFuZ2UoZi5yYW5nZSkpLF8oInJhbmdlIik7dmFyIGQ9ZS5fc3VicGxvdHM7aWYoZClmb3IodmFyIGc9ZC5jYXJ0ZXNpYW4uZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0LnN1YnN0cigwLHQuaW5kZXhPZigieSIpKT09PWkubmFtZTJpZChyKX0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5zdWJzdHIodC5pbmRleE9mKCJ5IiksdC5sZW5ndGgpfSksdj1uLnNpbXBsZU1hcChnLGkuaWQybmFtZSksbT0wO208di5sZW5ndGg7bSsrKXt2YXIgeT12W21dO3U9Zlt5XXx8e30saD1hLm5ld0NvbnRhaW5lcihwLHksInlheGlzIik7dmFyIHgsYj1lW3ldO3UucmFuZ2UmJmIuaXNWYWxpZFJhbmdlKHUucmFuZ2UpJiYoeD0iZml4ZWQiKSwibWF0Y2giIT09dygicmFuZ2Vtb2RlIix4KSYmdygicmFuZ2UiLGIucmFuZ2Uuc2xpY2UoKSl9cC5faW5wdXQ9Zn19ZnVuY3Rpb24gXyh0LGUpe3JldHVybiBuLmNvZXJjZShmLHAsbyx0LGUpfWZ1bmN0aW9uIHcodCxlKXtyZXR1cm4gbi5jb2VyY2UodSxoLHMsdCxlKX19fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo3NTUsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2lkcyI6NzY4LCIuL2F0dHJpYnV0ZXMiOjY1OSwiLi9vcHBheGlzX2F0dHJpYnV0ZXMiOjY2Nn1dLDY2MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGE9dCgiLi4vLi4vcmVnaXN0cnkiKSxpPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIiksbz10KCIuLi8uLi9saWIiKSxzPXQoIi4uL2RyYXdpbmciKSxsPXQoIi4uL2NvbG9yIiksYz10KCIuLi90aXRsZXMiKSx1PXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbiIpLGg9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIiksZj10KCIuLi9kcmFnZWxlbWVudCIpLHA9dCgiLi4vLi4vbGliL3NldGN1cnNvciIpLGQ9dCgiLi9jb25zdGFudHMiKTtmdW5jdGlvbiBnKHQsZSxyLG4pe3ZhciBhPW8uZW5zdXJlU2luZ2xlKHQsInJlY3QiLGQuYmdDbGFzc05hbWUsZnVuY3Rpb24odCl7dC5hdHRyKHt4OjAseTowLCJzaGFwZS1yZW5kZXJpbmciOiJjcmlzcEVkZ2VzIn0pfSksaT1uLmJvcmRlcndpZHRoJTI9PTA/bi5ib3JkZXJ3aWR0aDpuLmJvcmRlcndpZHRoLTEsbD0tbi5fb2Zmc2V0U2hpZnQsYz1zLmNyaXNwUm91bmQoZSxuLmJvcmRlcndpZHRoKTthLmF0dHIoe3dpZHRoOm4uX3dpZHRoK2ksaGVpZ2h0Om4uX2hlaWdodCtpLHRyYW5zZm9ybToidHJhbnNsYXRlKCIrbCsiLCIrbCsiKSIsZmlsbDpuLmJnY29sb3Isc3Ryb2tlOm4uYm9yZGVyY29sb3IsInN0cm9rZS13aWR0aCI6Y30pfWZ1bmN0aW9uIHYodCxlLHIsbil7dmFyIGE9ZS5fZnVsbExheW91dDtvLmVuc3VyZVNpbmdsZUJ5SWQoYS5fdG9wZGVmcywiY2xpcFBhdGgiLG4uX2NsaXBJZCxmdW5jdGlvbih0KXt0LmFwcGVuZCgicmVjdCIpLmF0dHIoe3g6MCx5OjB9KX0pLnNlbGVjdCgicmVjdCIpLmF0dHIoe3dpZHRoOm4uX3dpZHRoLGhlaWdodDpuLl9oZWlnaHR9KX1mdW5jdGlvbiBtKHQsZSxyLGEpe3ZhciBsLGM9ZS5jYWxjZGF0YSxmPXQuc2VsZWN0QWxsKCJnLiIrZC5yYW5nZVBsb3RDbGFzc05hbWUpLmRhdGEoci5fc3VicGxvdHNXaXRoLG8uaWRlbnRpdHkpO2YuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsZnVuY3Rpb24odCl7cmV0dXJuIGQucmFuZ2VQbG90Q2xhc3NOYW1lKyIgIit0fSkuY2FsbChzLnNldENsaXBVcmwsYS5fY2xpcElkLGUpLGYub3JkZXIoKSxmLmV4aXQoKS5yZW1vdmUoKSxmLmVhY2goZnVuY3Rpb24odCxvKXt2YXIgcz1uLnNlbGVjdCh0aGlzKSxmPTA9PT1vLHA9aC5nZXRGcm9tSWQoZSx0LCJ5IiksZD1wLl9uYW1lLGc9YVtkXSx2PXtkYXRhOltdLGxheW91dDp7eGF4aXM6e3R5cGU6ci50eXBlLGRvbWFpbjpbMCwxXSxyYW5nZTphLnJhbmdlLnNsaWNlKCksY2FsZW5kYXI6ci5jYWxlbmRhcn0sd2lkdGg6YS5fd2lkdGgsaGVpZ2h0OmEuX2hlaWdodCxtYXJnaW46e3Q6MCxiOjAsbDowLHI6MH19LF9jb250ZXh0OmUuX2NvbnRleHR9O3YubGF5b3V0W2RdPXt0eXBlOnAudHlwZSxkb21haW46WzAsMV0scmFuZ2U6Im1hdGNoIiE9PWcucmFuZ2Vtb2RlP2cucmFuZ2Uuc2xpY2UoKTpwLnJhbmdlLnNsaWNlKCksY2FsZW5kYXI6cC5jYWxlbmRhcn0saS5zdXBwbHlEZWZhdWx0cyh2KTt2YXIgbT12Ll9mdWxsTGF5b3V0LnhheGlzLHk9di5fZnVsbExheW91dFtkXTttLmNsZWFyQ2FsYygpLG0uc2V0U2NhbGUoKSx5LmNsZWFyQ2FsYygpLHkuc2V0U2NhbGUoKTt2YXIgeD17aWQ6dCxwbG90Z3JvdXA6cyx4YXhpczptLHlheGlzOnksaXNSYW5nZVBsb3Q6ITB9O2Y/bD14Oih4Lm1haW5wbG90PSJ4eSIseC5tYWlucGxvdGluZm89bCksdS5yYW5nZVBsb3QoZSx4LGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVtdLG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGE9dFtuXSxpPWFbMF0udHJhY2U7aS54YXhpcytpLnlheGlzPT09ZSYmci5wdXNoKGEpfXJldHVybiByfShjLHQpKX0pfWZ1bmN0aW9uIHkodCxlLHIsbixhKXsoby5lbnN1cmVTaW5nbGUodCwicmVjdCIsZC5tYXNrTWluQ2xhc3NOYW1lLGZ1bmN0aW9uKHQpe3QuYXR0cih7eDowLHk6MCwic2hhcGUtcmVuZGVyaW5nIjoiY3Jpc3BFZGdlcyJ9KX0pLmF0dHIoImhlaWdodCIsbi5faGVpZ2h0KS5jYWxsKGwuZmlsbCxkLm1hc2tDb2xvciksby5lbnN1cmVTaW5nbGUodCwicmVjdCIsZC5tYXNrTWF4Q2xhc3NOYW1lLGZ1bmN0aW9uKHQpe3QuYXR0cih7eTowLCJzaGFwZS1yZW5kZXJpbmciOiJjcmlzcEVkZ2VzIn0pfSkuYXR0cigiaGVpZ2h0IixuLl9oZWlnaHQpLmNhbGwobC5maWxsLGQubWFza0NvbG9yKSwibWF0Y2giIT09YS5yYW5nZW1vZGUpJiYoby5lbnN1cmVTaW5nbGUodCwicmVjdCIsZC5tYXNrTWluT3BwQXhpc0NsYXNzTmFtZSxmdW5jdGlvbih0KXt0LmF0dHIoe3k6MCwic2hhcGUtcmVuZGVyaW5nIjoiY3Jpc3BFZGdlcyJ9KX0pLmF0dHIoIndpZHRoIixuLl93aWR0aCkuY2FsbChsLmZpbGwsZC5tYXNrT3BwQXhpc0NvbG9yKSxvLmVuc3VyZVNpbmdsZSh0LCJyZWN0IixkLm1hc2tNYXhPcHBBeGlzQ2xhc3NOYW1lLGZ1bmN0aW9uKHQpe3QuYXR0cih7eTowLCJzaGFwZS1yZW5kZXJpbmciOiJjcmlzcEVkZ2VzIn0pfSkuYXR0cigid2lkdGgiLG4uX3dpZHRoKS5zdHlsZSgiYm9yZGVyLXRvcCIsZC5tYXNrT3BwQm9yZGVyKS5jYWxsKGwuZmlsbCxkLm1hc2tPcHBBeGlzQ29sb3IpKX1mdW5jdGlvbiB4KHQsZSxyLG4pe2UuX2NvbnRleHQuc3RhdGljUGxvdHx8by5lbnN1cmVTaW5nbGUodCwicmVjdCIsZC5zbGlkZUJveENsYXNzTmFtZSxmdW5jdGlvbih0KXt0LmF0dHIoe3k6MCxjdXJzb3I6ZC5zbGlkZUJveEN1cnNvciwic2hhcGUtcmVuZGVyaW5nIjoiY3Jpc3BFZGdlcyJ9KX0pLmF0dHIoe2hlaWdodDpuLl9oZWlnaHQsZmlsbDpkLnNsaWRlQm94RmlsbH0pfWZ1bmN0aW9uIGIodCxlLHIsbil7dmFyIGE9by5lbnN1cmVTaW5nbGUodCwiZyIsZC5ncmFiYmVyTWluQ2xhc3NOYW1lKSxpPW8uZW5zdXJlU2luZ2xlKHQsImciLGQuZ3JhYmJlck1heENsYXNzTmFtZSkscz17eDowLHdpZHRoOmQuaGFuZGxlV2lkdGgscng6ZC5oYW5kbGVSYWRpdXMsZmlsbDpsLmJhY2tncm91bmQsc3Ryb2tlOmwuZGVmYXVsdExpbmUsInN0cm9rZS13aWR0aCI6ZC5oYW5kbGVTdHJva2VXaWR0aCwic2hhcGUtcmVuZGVyaW5nIjoiY3Jpc3BFZGdlcyJ9LGM9e3k6TWF0aC5yb3VuZChuLl9oZWlnaHQvNCksaGVpZ2h0Ok1hdGgucm91bmQobi5faGVpZ2h0LzIpfTtpZihvLmVuc3VyZVNpbmdsZShhLCJyZWN0IixkLmhhbmRsZU1pbkNsYXNzTmFtZSxmdW5jdGlvbih0KXt0LmF0dHIocyl9KS5hdHRyKGMpLG8uZW5zdXJlU2luZ2xlKGksInJlY3QiLGQuaGFuZGxlTWF4Q2xhc3NOYW1lLGZ1bmN0aW9uKHQpe3QuYXR0cihzKX0pLmF0dHIoYyksIWUuX2NvbnRleHQuc3RhdGljUGxvdCl7dmFyIHU9e3dpZHRoOmQuZ3JhYkFyZWFXaWR0aCx4OjAseTowLGZpbGw6ZC5ncmFiQXJlYUZpbGwsY3Vyc29yOmQuZ3JhYkFyZWFDdXJzb3J9O28uZW5zdXJlU2luZ2xlKGEsInJlY3QiLGQuZ3JhYkFyZWFNaW5DbGFzc05hbWUsZnVuY3Rpb24odCl7dC5hdHRyKHUpfSkuYXR0cigiaGVpZ2h0IixuLl9oZWlnaHQpLG8uZW5zdXJlU2luZ2xlKGksInJlY3QiLGQuZ3JhYkFyZWFNYXhDbGFzc05hbWUsZnVuY3Rpb24odCl7dC5hdHRyKHUpfSkuYXR0cigiaGVpZ2h0IixuLl9oZWlnaHQpfX1lLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuX2Z1bGxMYXlvdXQscj1lLl9yYW5nZVNsaWRlckRhdGEsaT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgcz1yW2ldW2QubmFtZV07cy5fY2xpcElkPXMuX2lkKyItIitlLl91aWR9dmFyIGw9ZS5faW5mb2xheWVyLnNlbGVjdEFsbCgiZy4iK2QuY29udGFpbmVyQ2xhc3NOYW1lKS5kYXRhKHIsZnVuY3Rpb24odCl7cmV0dXJuIHQuX25hbWV9KTtsLmV4aXQoKS5lYWNoKGZ1bmN0aW9uKHQpe3ZhciByPXRbZC5uYW1lXTtlLl90b3BkZWZzLnNlbGVjdCgiIyIrci5fY2xpcElkKS5yZW1vdmUoKX0pLnJlbW92ZSgpLDAhPT1yLmxlbmd0aCYmKGwuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKGQuY29udGFpbmVyQ2xhc3NOYW1lLCEwKS5hdHRyKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpLGwuZWFjaChmdW5jdGlvbihyKXt2YXIgaT1uLnNlbGVjdCh0aGlzKSxzPXJbZC5uYW1lXSxsPWVbaC5pZDJuYW1lKHIuYW5jaG9yKV0sdT1zW2guaWQybmFtZShyLmFuY2hvcildO2lmKHMucmFuZ2Upe3ZhciBfLHc9by5zaW1wbGVNYXAocy5yYW5nZSxyLnIybCksaz1vLnNpbXBsZU1hcChyLnJhbmdlLHIucjJsKTtfPWtbMF08a1sxXT9bTWF0aC5taW4od1swXSxrWzBdKSxNYXRoLm1heCh3WzFdLGtbMV0pXTpbTWF0aC5tYXgod1swXSxrWzBdKSxNYXRoLm1pbih3WzFdLGtbMV0pXSxzLnJhbmdlPXMuX2lucHV0LnJhbmdlPW8uc2ltcGxlTWFwKF8sci5sMnIpfXIuY2xlYW5SYW5nZSgicmFuZ2VzbGlkZXIucmFuZ2UiKTt2YXIgVD1lLl9zaXplLE09ci5kb21haW47cy5fd2lkdGg9VC53KihNWzFdLU1bMF0pO3ZhciBBPU1hdGgucm91bmQoVC5sK1QudypNWzBdKSxTPU1hdGgucm91bmQoVC50K1QuaCooMS1yLl9jb3VudGVyRG9tYWluTWluKSsoImJvdHRvbSI9PT1yLnNpZGU/ci5fZGVwdGg6MCkrcy5fb2Zmc2V0U2hpZnQrZC5leHRyYVBhZCk7aS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitBKyIsIitTKyIpIik7dmFyIEU9ci5yMmwocy5yYW5nZVswXSksTD1yLnIybChzLnJhbmdlWzFdKSxDPUwtRTtpZihzLnAyZD1mdW5jdGlvbih0KXtyZXR1cm4gdC9zLl93aWR0aCpDK0V9LHMuZDJwPWZ1bmN0aW9uKHQpe3JldHVybih0LUUpL0Mqcy5fd2lkdGh9LHMuX3JsPVtFLExdLCJtYXRjaCIhPT11LnJhbmdlbW9kZSl7dmFyIFA9bC5yMmwodS5yYW5nZVswXSksTz1sLnIybCh1LnJhbmdlWzFdKS1QO3MuZDJwT3BwQXhpcz1mdW5jdGlvbih0KXtyZXR1cm4odC1QKS9PKnMuX2hlaWdodH19aS5jYWxsKGcsdCxyLHMpLmNhbGwodix0LHIscykuY2FsbChtLHQscixzKS5jYWxsKHksdCxyLHMsdSkuY2FsbCh4LHQscixzKS5jYWxsKGIsdCxyLHMpLGZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBzPXQuc2VsZWN0KCJyZWN0LiIrZC5zbGlkZUJveENsYXNzTmFtZSkubm9kZSgpLGw9dC5zZWxlY3QoInJlY3QuIitkLmdyYWJBcmVhTWluQ2xhc3NOYW1lKS5ub2RlKCksYz10LnNlbGVjdCgicmVjdC4iK2QuZ3JhYkFyZWFNYXhDbGFzc05hbWUpLm5vZGUoKTt0Lm9uKCJtb3VzZWRvd24iLGZ1bmN0aW9uKCl7dmFyIHU9bi5ldmVudCxoPXUudGFyZ2V0LGQ9dS5jbGllbnRYLGc9ZC10Lm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0LHY9aS5kMnAoci5fcmxbMF0pLG09aS5kMnAoci5fcmxbMV0pLHk9Zi5jb3ZlclNsaXAoKTtmdW5jdGlvbiB4KHQpe3ZhciB1LGYseCxiPSt0LmNsaWVudFgtZDtzd2l0Y2goaCl7Y2FzZSBzOng9ImV3LXJlc2l6ZSIsdT12K2IsZj1tK2I7YnJlYWs7Y2FzZSBsOng9ImNvbC1yZXNpemUiLHU9ditiLGY9bTticmVhaztjYXNlIGM6eD0iY29sLXJlc2l6ZSIsdT12LGY9bStiO2JyZWFrO2RlZmF1bHQ6eD0iZXctcmVzaXplIix1PWcsZj1nK2J9aWYoZjx1KXt2YXIgXz1mO2Y9dSx1PV99aS5fcGl4ZWxNaW49dSxpLl9waXhlbE1heD1mLHAobi5zZWxlY3QoeSkseCksZnVuY3Rpb24odCxlLHIsbil7ZnVuY3Rpb24gaSh0KXtyZXR1cm4gci5sMnIoby5jb25zdHJhaW4odCxuLl9ybFswXSxuLl9ybFsxXSkpfXZhciBzPWkobi5wMmQobi5fcGl4ZWxNaW4pKSxsPWkobi5wMmQobi5fcGl4ZWxNYXgpKTt3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7YS5jYWxsKCJfZ3VpUmVsYXlvdXQiLGUsci5fbmFtZSsiLnJhbmdlIixbcyxsXSl9KX0oMCxlLHIsaSl9eS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHgpLHkuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsZnVuY3Rpb24gdCgpe3kucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix4KTt5LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHQpO28ucmVtb3ZlRWxlbWVudCh5KX0pfSl9KGksdCxyLHMpLGZ1bmN0aW9uKHQsZSxyLG4sYSxpKXt2YXIgcz1kLmhhbmRsZVdpZHRoLzI7ZnVuY3Rpb24gbCh0KXtyZXR1cm4gby5jb25zdHJhaW4odCwwLG4uX3dpZHRoKX1mdW5jdGlvbiBjKHQpe3JldHVybiBvLmNvbnN0cmFpbih0LDAsbi5faGVpZ2h0KX1mdW5jdGlvbiB1KHQpe3JldHVybiBvLmNvbnN0cmFpbih0LC1zLG4uX3dpZHRoK3MpfXZhciBoPWwobi5kMnAoci5fcmxbMF0pKSxmPWwobi5kMnAoci5fcmxbMV0pKTtpZih0LnNlbGVjdCgicmVjdC4iK2Quc2xpZGVCb3hDbGFzc05hbWUpLmF0dHIoIngiLGgpLmF0dHIoIndpZHRoIixmLWgpLHQuc2VsZWN0KCJyZWN0LiIrZC5tYXNrTWluQ2xhc3NOYW1lKS5hdHRyKCJ3aWR0aCIsaCksdC5zZWxlY3QoInJlY3QuIitkLm1hc2tNYXhDbGFzc05hbWUpLmF0dHIoIngiLGYpLmF0dHIoIndpZHRoIixuLl93aWR0aC1mKSwibWF0Y2giIT09aS5yYW5nZW1vZGUpe3ZhciBwPW4uX2hlaWdodC1jKG4uZDJwT3BwQXhpcyhhLl9ybFsxXSkpLGc9bi5faGVpZ2h0LWMobi5kMnBPcHBBeGlzKGEuX3JsWzBdKSk7dC5zZWxlY3QoInJlY3QuIitkLm1hc2tNaW5PcHBBeGlzQ2xhc3NOYW1lKS5hdHRyKCJ4IixoKS5hdHRyKCJoZWlnaHQiLHApLmF0dHIoIndpZHRoIixmLWgpLHQuc2VsZWN0KCJyZWN0LiIrZC5tYXNrTWF4T3BwQXhpc0NsYXNzTmFtZSkuYXR0cigieCIsaCkuYXR0cigieSIsZykuYXR0cigiaGVpZ2h0IixuLl9oZWlnaHQtZykuYXR0cigid2lkdGgiLGYtaCksdC5zZWxlY3QoInJlY3QuIitkLnNsaWRlQm94Q2xhc3NOYW1lKS5hdHRyKCJ5IixwKS5hdHRyKCJoZWlnaHQiLGctcCl9dmFyIHY9TWF0aC5yb3VuZCh1KGgtcykpLS41LG09TWF0aC5yb3VuZCh1KGYtcykpKy41O3Quc2VsZWN0KCJnLiIrZC5ncmFiYmVyTWluQ2xhc3NOYW1lKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIit2KyIsMC41KSIpLHQuc2VsZWN0KCJnLiIrZC5ncmFiYmVyTWF4Q2xhc3NOYW1lKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIittKyIsMC41KSIpfShpLDAscixzLGwsdSksImJvdHRvbSI9PT1yLnNpZGUmJmMuZHJhdyh0LHIuX2lkKyJ0aXRsZSIse3Byb3BDb250YWluZXI6cixwcm9wTmFtZTpyLl9uYW1lKyIudGl0bGUiLHBsYWNlaG9sZGVyOmUuX2RmbHRUaXRsZS54LGF0dHJpYnV0ZXM6e3g6ci5fb2Zmc2V0K3IuX2xlbmd0aC8yLHk6UytzLl9oZWlnaHQrcy5fb2Zmc2V0U2hpZnQrMTArMS41KnIudGl0bGUuZm9udC5zaXplLCJ0ZXh0LWFuY2hvciI6Im1pZGRsZSJ9fSl9KSl9fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi8uLi9saWIvc2V0Y3Vyc29yIjo3MzcsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbiI6Nzc2LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiOjc2OCwiLi4vLi4vcGxvdHMvcGxvdHMiOjgyNiwiLi4vLi4vcmVnaXN0cnkiOjg0NiwiLi4vY29sb3IiOjU5MiwiLi4vZHJhZ2VsZW1lbnQiOjYxMCwiLi4vZHJhd2luZyI6NjEzLCIuLi90aXRsZXMiOjY3OSwiLi9jb25zdGFudHMiOjY2MSxkMzoxNjV9XSw2NjQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIiksYT10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSxpPXQoIi4vY29uc3RhbnRzIiksbz10KCIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50IikuTElORV9TUEFDSU5HLHM9aS5uYW1lO2Z1bmN0aW9uIGwodCl7dmFyIGU9dCYmdFtzXTtyZXR1cm4gZSYmZS52aXNpYmxlfXIuaXNWaXNpYmxlPWwsci5tYWtlRGF0YT1mdW5jdGlvbih0KXt2YXIgZT1uLmxpc3Qoe19mdWxsTGF5b3V0OnR9LCJ4IiwhMCkscj10Lm1hcmdpbixhPVtdO2lmKCF0Ll9oYXMoImdsMmQiKSlmb3IodmFyIGk9MDtpPGUubGVuZ3RoO2krKyl7dmFyIG89ZVtpXTtpZihsKG8pKXthLnB1c2gobyk7dmFyIGM9b1tzXTtjLl9pZD1zK28uX2lkLGMuX2hlaWdodD0odC5oZWlnaHQtci5iLXIudCkqYy50aGlja25lc3MsYy5fb2Zmc2V0U2hpZnQ9TWF0aC5mbG9vcihjLmJvcmRlcndpZHRoLzIpfX10Ll9yYW5nZVNsaWRlckRhdGE9YX0sci5hdXRvTWFyZ2luT3B0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQuX2Z1bGxMYXlvdXQsbj1lW3NdLGw9ZS5faWQuY2hhckF0KDApLGM9MCx1PTA7ImJvdHRvbSI9PT1lLnNpZGUmJihjPWUuX2RlcHRoLGUudGl0bGUudGV4dCE9PXIuX2RmbHRUaXRsZVtsXSYmKHU9MS41KmUudGl0bGUuZm9udC5zaXplKzEwK24uX29mZnNldFNoaWZ0LHUrPShlLnRpdGxlLnRleHQubWF0Y2goYS5CUl9UQUdfQUxMKXx8W10pLmxlbmd0aCplLnRpdGxlLmZvbnQuc2l6ZSpvKSk7cmV0dXJue3g6MCx5OmUuX2NvdW50ZXJEb21haW5NaW4sbDowLHI6MCx0OjAsYjpuLl9oZWlnaHQrYytNYXRoLm1heChyLm1hcmdpbi5iLHUpLHBhZDppLmV4dHJhUGFkKzIqbi5fb2Zmc2V0U2hpZnR9fX0seyIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50Ijo2ODYsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6NzQxLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiOjc2OCwiLi9jb25zdGFudHMiOjY2MX1dLDY2NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4vYXR0cmlidXRlcyIpLGk9dCgiLi9vcHBheGlzX2F0dHJpYnV0ZXMiKSxvPXQoIi4vaGVscGVycyIpO2UuZXhwb3J0cz17bW9kdWxlVHlwZToiY29tcG9uZW50IixuYW1lOiJyYW5nZXNsaWRlciIsc2NoZW1hOntzdWJwbG90czp7eGF4aXM6e3Jhbmdlc2xpZGVyOm4uZXh0ZW5kRmxhdCh7fSxhLHt5YXhpczppfSl9fX0sbGF5b3V0QXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxoYW5kbGVEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY2FsY0F1dG9yYW5nZTp0KCIuL2NhbGNfYXV0b3JhbmdlIiksZHJhdzp0KCIuL2RyYXciKSxpc1Zpc2libGU6by5pc1Zpc2libGUsbWFrZURhdGE6by5tYWtlRGF0YSxhdXRvTWFyZ2luT3B0czpvLmF1dG9NYXJnaW5PcHRzfX0seyIuLi8uLi9saWIiOjcxNywiLi9hdHRyaWJ1dGVzIjo2NTksIi4vY2FsY19hdXRvcmFuZ2UiOjY2MCwiLi9kZWZhdWx0cyI6NjYyLCIuL2RyYXciOjY2MywiLi9oZWxwZXJzIjo2NjQsIi4vb3BwYXhpc19hdHRyaWJ1dGVzIjo2NjZ9XSw2NjY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtfaXNTdWJwbG90T2JqOiEwLHJhbmdlbW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYXV0byIsImZpeGVkIiwibWF0Y2giXSxkZmx0OiJtYXRjaCIsZWRpdFR5cGU6ImNhbGMifSxyYW5nZTp7dmFsVHlwZToiaW5mb19hcnJheSIsaXRlbXM6W3t2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJwbG90In0se3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6InBsb3QifV0sZWRpdFR5cGU6InBsb3QifSxlZGl0VHlwZToiY2FsYyJ9fSx7fV0sNjY3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2Fubm90YXRpb25zL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL3RyYWNlcy9zY2F0dGVyL2F0dHJpYnV0ZXMiKS5saW5lLGk9dCgiLi4vZHJhd2luZy9hdHRyaWJ1dGVzIikuZGFzaCxvPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LHM9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLnRlbXBsYXRlZEFycmF5O2UuZXhwb3J0cz1zKCJzaGFwZSIse3Zpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0sdHlwZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiY2lyY2xlIiwicmVjdCIsInBhdGgiLCJsaW5lIl0sZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0sbGF5ZXI6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImJlbG93IiwiYWJvdmUiXSxkZmx0OiJhYm92ZSIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LHhyZWY6byh7fSxuLnhyZWYse30pLHhzaXplbW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsic2NhbGVkIiwicGl4ZWwiXSxkZmx0OiJzY2FsZWQiLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LHhhbmNob3I6e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0seDA6e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0seDE6e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0seXJlZjpvKHt9LG4ueXJlZix7fSkseXNpemVtb2RlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJzY2FsZWQiLCJwaXhlbCJdLGRmbHQ6InNjYWxlZCIsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0seWFuY2hvcjp7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSx5MDp7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSx5MTp7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSxwYXRoOnt2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LG9wYWNpdHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxLGVkaXRUeXBlOiJhcnJheWRyYXcifSxsaW5lOntjb2xvcjpvKHt9LGEuY29sb3Ise2VkaXRUeXBlOiJhcnJheWRyYXcifSksd2lkdGg6byh7fSxhLndpZHRoLHtlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSksZGFzaDpvKHt9LGkse2VkaXRUeXBlOiJhcnJheWRyYXcifSksZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0sZmlsbGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDoicmdiYSgwLDAsMCwwKSIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LGVkaXRUeXBlOiJhcnJheWRyYXcifSl9LHsiLi4vLi4vbGliL2V4dGVuZCI6NzA4LCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo3NTUsIi4uLy4uL3RyYWNlcy9zY2F0dGVyL2F0dHJpYnV0ZXMiOjExMjAsIi4uL2Fubm90YXRpb25zL2F0dHJpYnV0ZXMiOjU3NSwiLi4vZHJhd2luZy9hdHRyaWJ1dGVzIjo2MTJ9XSw2Njg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGk9dCgiLi9jb25zdGFudHMiKSxvPXQoIi4vaGVscGVycyIpO2Z1bmN0aW9uIHModCl7cmV0dXJuIGModC5saW5lLndpZHRoLHQueHNpemVtb2RlLHQueDAsdC54MSx0LnBhdGgsITEpfWZ1bmN0aW9uIGwodCl7cmV0dXJuIGModC5saW5lLndpZHRoLHQueXNpemVtb2RlLHQueTAsdC55MSx0LnBhdGgsITApfWZ1bmN0aW9uIGModCxlLHIsYSxzLGwpe3ZhciBjPXQvMix1PWw7aWYoInBpeGVsIj09PWUpe3ZhciBoPXM/by5leHRyYWN0UGF0aENvb3JkcyhzLGw/aS5wYXJhbUlzWTppLnBhcmFtSXNYKTpbcixhXSxmPW4uYWdnTnVtcyhNYXRoLm1heCxudWxsLGgpLHA9bi5hZ2dOdW1zKE1hdGgubWluLG51bGwsaCksZD1wPDA/TWF0aC5hYnMocCkrYzpjLGc9Zj4wP2YrYzpjO3JldHVybntwcGFkOmMscHBhZHBsdXM6dT9kOmcscHBhZG1pbnVzOnU/ZzpkfX1yZXR1cm57cHBhZDpjfX1mdW5jdGlvbiB1KHQsZSxyLG4sYSl7dmFyIHM9ImNhdGVnb3J5Ij09PXQudHlwZXx8Im11bHRpY2F0ZWdvcnkiPT09dC50eXBlP3QucjJjOnQuZDJjO2lmKHZvaWQgMCE9PWUpcmV0dXJuW3MoZSkscyhyKV07aWYobil7dmFyIGwsYyx1LGgsZj0xLzAscD0tMS8wLGQ9bi5tYXRjaChpLnNlZ21lbnRSRSk7Zm9yKCJkYXRlIj09PXQudHlwZSYmKHM9by5kZWNvZGVEYXRlKHMpKSxsPTA7bDxkLmxlbmd0aDtsKyspdm9pZCAwIT09KGM9YVtkW2xdLmNoYXJBdCgwKV0uZHJhd24pJiYoISh1PWRbbF0uc3Vic3RyKDEpLm1hdGNoKGkucGFyYW1SRSkpfHx1Lmxlbmd0aDxjfHwoKGg9cyh1W2NdKSk8ZiYmKGY9aCksaD5wJiYocD1oKSkpO3JldHVybiBwPj1mP1tmLHBdOnZvaWQgMH19ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQscj1uLmZpbHRlclZpc2libGUoZS5zaGFwZXMpO2lmKHIubGVuZ3RoJiZ0Ll9mdWxsRGF0YS5sZW5ndGgpZm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspe3ZhciBjLGgsZj1yW29dO2lmKGYuX2V4dHJlbWVzPXt9LCJwYXBlciIhPT1mLnhyZWYpe3ZhciBwPSJwaXhlbCI9PT1mLnhzaXplbW9kZT9mLnhhbmNob3I6Zi54MCxkPSJwaXhlbCI9PT1mLnhzaXplbW9kZT9mLnhhbmNob3I6Zi54MTsoaD11KGM9YS5nZXRGcm9tSWQodCxmLnhyZWYpLHAsZCxmLnBhdGgsaS5wYXJhbUlzWCkpJiYoZi5fZXh0cmVtZXNbYy5faWRdPWEuZmluZEV4dHJlbWVzKGMsaCxzKGYpKSl9aWYoInBhcGVyIiE9PWYueXJlZil7dmFyIGc9InBpeGVsIj09PWYueXNpemVtb2RlP2YueWFuY2hvcjpmLnkwLHY9InBpeGVsIj09PWYueXNpemVtb2RlP2YueWFuY2hvcjpmLnkxOyhoPXUoYz1hLmdldEZyb21JZCh0LGYueXJlZiksZyx2LGYucGF0aCxpLnBhcmFtSXNZKSkmJihmLl9leHRyZW1lc1tjLl9pZF09YS5maW5kRXh0cmVtZXMoYyxoLGwoZikpKX19fX0seyIuLi8uLi9saWIiOjcxNywiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjc2NSwiLi9jb25zdGFudHMiOjY2OSwiLi9oZWxwZXJzIjo2NzJ9XSw2Njk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtzZWdtZW50UkU6L1tNTEhWUUNUU1pdW15NTEhWUUNUU1pdKi9nLHBhcmFtUkU6L1teXHMsXSsvZyxwYXJhbUlzWDp7TTp7MDohMCxkcmF3bjowfSxMOnswOiEwLGRyYXduOjB9LEg6ezA6ITAsZHJhd246MH0sVjp7fSxROnswOiEwLDI6ITAsZHJhd246Mn0sQzp7MDohMCwyOiEwLDQ6ITAsZHJhd246NH0sVDp7MDohMCxkcmF3bjowfSxTOnswOiEwLDI6ITAsZHJhd246Mn0sWjp7fX0scGFyYW1Jc1k6e006ezE6ITAsZHJhd246MX0sTDp7MTohMCxkcmF3bjoxfSxIOnt9LFY6ezA6ITAsZHJhd246MH0sUTp7MTohMCwzOiEwLGRyYXduOjN9LEM6ezE6ITAsMzohMCw1OiEwLGRyYXduOjV9LFQ6ezE6ITAsZHJhd246MX0sUzp7MTohMCwzOiEwLGRyYXduOjV9LFo6e319LG51bVBhcmFtczp7TToyLEw6MixIOjEsVjoxLFE6NCxDOjYsVDoyLFM6NCxaOjB9fX0se31dLDY3MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksaT10KCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiKSxvPXQoIi4vYXR0cmlidXRlcyIpLHM9dCgiLi9oZWxwZXJzIik7ZnVuY3Rpb24gbCh0LGUscil7ZnVuY3Rpb24gaShyLGEpe3JldHVybiBuLmNvZXJjZSh0LGUsbyxyLGEpfWlmKGkoInZpc2libGUiKSl7aSgibGF5ZXIiKSxpKCJvcGFjaXR5IiksaSgiZmlsbGNvbG9yIiksaSgibGluZS5jb2xvciIpLGkoImxpbmUud2lkdGgiKSxpKCJsaW5lLmRhc2giKTtmb3IodmFyIGw9aSgidHlwZSIsdC5wYXRoPyJwYXRoIjoicmVjdCIpLGM9aSgieHNpemVtb2RlIiksdT1pKCJ5c2l6ZW1vZGUiKSxoPVsieCIsInkiXSxmPTA7ZjwyO2YrKyl7dmFyIHAsZCxnLHY9aFtmXSxtPXYrImFuY2hvciIseT0ieCI9PT12P2M6dSx4PXtfZnVsbExheW91dDpyfSxiPWEuY29lcmNlUmVmKHQsZSx4LHYsIiIsInBhcGVyIik7aWYoInBhcGVyIiE9PWI/KChwPWEuZ2V0RnJvbUlkKHgsYikpLl9zaGFwZUluZGljZXMucHVzaChlLl9pbmRleCksZz1zLnJhbmdlVG9TaGFwZVBvc2l0aW9uKHApLGQ9cy5zaGFwZVBvc2l0aW9uVG9SYW5nZShwKSk6ZD1nPW4uaWRlbnRpdHksInBhdGgiIT09bCl7dmFyIF89disiMCIsdz12KyIxIixrPXRbX10sVD10W3ddO3RbX109ZCh0W19dLCEwKSx0W3ddPWQodFt3XSwhMCksInBpeGVsIj09PXk/KGkoXywwKSxpKHcsMTApKTooYS5jb2VyY2VQb3NpdGlvbihlLHgsaSxiLF8sLjI1KSxhLmNvZXJjZVBvc2l0aW9uKGUseCxpLGIsdywuNzUpKSxlW19dPWcoZVtfXSksZVt3XT1nKGVbd10pLHRbX109ayx0W3ddPVR9aWYoInBpeGVsIj09PXkpe3ZhciBNPXRbbV07dFttXT1kKHRbbV0sITApLGEuY29lcmNlUG9zaXRpb24oZSx4LGksYixtLC4yNSksZVttXT1nKGVbbV0pLHRbbV09TX19InBhdGgiPT09bD9pKCJwYXRoIik6bi5ub25lT3JBbGwodCxlLFsieDAiLCJ4MSIsInkwIiwieTEiXSl9fWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2kodCxlLHtuYW1lOiJzaGFwZXMiLGhhbmRsZUl0ZW1EZWZhdWx0czpsfSl9fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiOjc2MSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjc2NSwiLi9hdHRyaWJ1dGVzIjo2NjcsIi4vaGVscGVycyI6NjcyfV0sNjcxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3JlZ2lzdHJ5IiksYT10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksbz10KCIuLi9jb2xvciIpLHM9dCgiLi4vZHJhd2luZyIpLGw9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLmFycmF5RWRpdG9yLGM9dCgiLi4vZHJhZ2VsZW1lbnQiKSx1PXQoIi4uLy4uL2xpYi9zZXRjdXJzb3IiKSxoPXQoIi4vY29uc3RhbnRzIiksZj10KCIuL2hlbHBlcnMiKTtmdW5jdGlvbiBwKHQsZSl7dC5fZnVsbExheW91dC5fcGFwZXJkaXYuc2VsZWN0QWxsKCcuc2hhcGVsYXllciBbZGF0YS1pbmRleD0iJytlKyciXScpLnJlbW92ZSgpO3ZhciByPXQuX2Z1bGxMYXlvdXQuc2hhcGVzW2VdfHx7fTtpZihyLl9pbnB1dCYmITEhPT1yLnZpc2libGUpaWYoImJlbG93IiE9PXIubGF5ZXIpbSh0Ll9mdWxsTGF5b3V0Ll9zaGFwZVVwcGVyTGF5ZXIpO2Vsc2UgaWYoInBhcGVyIj09PXIueHJlZnx8InBhcGVyIj09PXIueXJlZiltKHQuX2Z1bGxMYXlvdXQuX3NoYXBlTG93ZXJMYXllcik7ZWxzZXt2YXIgcD10Ll9mdWxsTGF5b3V0Ll9wbG90c1tyLnhyZWYrci55cmVmXTtpZihwKW0oKHAubWFpbnBsb3RpbmZvfHxwKS5zaGFwZWxheWVyKTtlbHNlIG0odC5fZnVsbExheW91dC5fc2hhcGVMb3dlckxheWVyKX1mdW5jdGlvbiBtKHApe3ZhciBtPXsiZGF0YS1pbmRleCI6ZSwiZmlsbC1ydWxlIjoiZXZlbm9kZCIsZDpnKHQscil9LHk9ci5saW5lLndpZHRoP3IubGluZS5jb2xvcjoicmdiYSgwLDAsMCwwKSIseD1wLmFwcGVuZCgicGF0aCIpLmF0dHIobSkuc3R5bGUoIm9wYWNpdHkiLHIub3BhY2l0eSkuY2FsbChvLnN0cm9rZSx5KS5jYWxsKG8uZmlsbCxyLmZpbGxjb2xvcikuY2FsbChzLmRhc2hMaW5lLHIubGluZS5kYXNoLHIubGluZS53aWR0aCk7ZCh4LHQsciksdC5fY29udGV4dC5lZGl0cy5zaGFwZVBvc2l0aW9uJiZmdW5jdGlvbih0LGUscixvLHApe3ZhciBtLHkseCxiLF8sdyxrLFQsTSxBLFMsRSxMLEMsUCxPLHo9MTAsST0xMCxEPSJwaXhlbCI9PT1yLnhzaXplbW9kZSxSPSJwaXhlbCI9PT1yLnlzaXplbW9kZSxGPSJsaW5lIj09PXIudHlwZSxCPSJwYXRoIj09PXIudHlwZSxOPWwodC5sYXlvdXQsInNoYXBlcyIsciksaj1OLm1vZGlmeUl0ZW0sVj1pLmdldEZyb21JZCh0LHIueHJlZiksVT1pLmdldEZyb21JZCh0LHIueXJlZikscT1mLmdldERhdGFUb1BpeGVsKHQsViksSD1mLmdldERhdGFUb1BpeGVsKHQsVSwhMCksRz1mLmdldFBpeGVsVG9EYXRhKHQsViksWT1mLmdldFBpeGVsVG9EYXRhKHQsVSwhMCksVz1GP2Z1bmN0aW9uKCl7dmFyIHQ9TWF0aC5tYXgoci5saW5lLndpZHRoLDEwKSxuPXAuYXBwZW5kKCJnIikuYXR0cigiZGF0YS1pbmRleCIsbyk7bi5hcHBlbmQoInBhdGgiKS5hdHRyKCJkIixlLmF0dHIoImQiKSkuc3R5bGUoe2N1cnNvcjoibW92ZSIsInN0cm9rZS13aWR0aCI6dCwic3Ryb2tlLW9wYWNpdHkiOiIwIn0pO3ZhciBhPXsiZmlsbC1vcGFjaXR5IjoiMCJ9LGk9dC8yPjEwP3QvMjoxMDtyZXR1cm4gbi5hcHBlbmQoImNpcmNsZSIpLmF0dHIoeyJkYXRhLWxpbmUtcG9pbnQiOiJzdGFydC1wb2ludCIsY3g6RD9xKHIueGFuY2hvcikrci54MDpxKHIueDApLGN5OlI/SChyLnlhbmNob3IpLXIueTA6SChyLnkwKSxyOml9KS5zdHlsZShhKS5jbGFzc2VkKCJjdXJzb3ItZ3JhYiIsITApLG4uYXBwZW5kKCJjaXJjbGUiKS5hdHRyKHsiZGF0YS1saW5lLXBvaW50IjoiZW5kLXBvaW50IixjeDpEP3Eoci54YW5jaG9yKStyLngxOnEoci54MSksY3k6Uj9IKHIueWFuY2hvciktci55MTpIKHIueTEpLHI6aX0pLnN0eWxlKGEpLmNsYXNzZWQoImN1cnNvci1ncmFiIiwhMCksbn0oKTplLFg9e2VsZW1lbnQ6Vy5ub2RlKCksZ2Q6dCxwcmVwRm46ZnVuY3Rpb24obil7RCYmKF89cShyLnhhbmNob3IpKTtSJiYodz1IKHIueWFuY2hvcikpOyJwYXRoIj09PXIudHlwZT9QPXIucGF0aDoobT1EP3IueDA6cShyLngwKSx5PVI/ci55MDpIKHIueTApLHg9RD9yLngxOnEoci54MSksYj1SP3IueTE6SChyLnkxKSk7bTx4PyhNPW0sTD0ieDAiLEE9eCxDPSJ4MSIpOihNPXgsTD0ieDEiLEE9bSxDPSJ4MCIpOyFSJiZ5PGJ8fFImJnk+Yj8oaz15LFM9InkwIixUPWIsRT0ieTEiKTooaz1iLFM9InkxIixUPXksRT0ieTAiKTtaKG4pLFEocCxyKSxmdW5jdGlvbih0LGUscil7dmFyIG49ZS54cmVmLGE9ZS55cmVmLG89aS5nZXRGcm9tSWQocixuKSxsPWkuZ2V0RnJvbUlkKHIsYSksYz0iIjsicGFwZXIiPT09bnx8by5hdXRvcmFuZ2V8fChjKz1uKTsicGFwZXIiPT09YXx8bC5hdXRvcmFuZ2V8fChjKz1hKTtzLnNldENsaXBVcmwodCxjPyJjbGlwIityLl9mdWxsTGF5b3V0Ll91aWQrYzpudWxsLHIpfShlLHIsdCksWC5tb3ZlRm49Im1vdmUiPT09Tz9KOkt9LGRvbmVGbjpmdW5jdGlvbigpe3UoZSksJChwKSxkKGUsdCxyKSxuLmNhbGwoIl9ndWlSZWxheW91dCIsdCxOLmdldFVwZGF0ZU9iaigpKX0sY2xpY2tGbjpmdW5jdGlvbigpeyQocCl9fTtmdW5jdGlvbiBaKHQpe2lmKEYpTz0icGF0aCI9PT10LnRhcmdldC50YWdOYW1lPyJtb3ZlIjoic3RhcnQtcG9pbnQiPT09dC50YXJnZXQuYXR0cmlidXRlc1siZGF0YS1saW5lLXBvaW50Il0udmFsdWU/InJlc2l6ZS1vdmVyLXN0YXJ0LXBvaW50IjoicmVzaXplLW92ZXItZW5kLXBvaW50IjtlbHNle3ZhciByPVguZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPXIucmlnaHQtci5sZWZ0LGE9ci5ib3R0b20tci50b3AsaT10LmNsaWVudFgtci5sZWZ0LG89dC5jbGllbnRZLXIudG9wLHM9IUImJm4+eiYmYT5JJiYhdC5zaGlmdEtleT9jLmdldEN1cnNvcihpL24sMS1vL2EpOiJtb3ZlIjt1KGUscyksTz1zLnNwbGl0KCItIilbMF19fWZ1bmN0aW9uIEoobixhKXtpZigicGF0aCI9PT1yLnR5cGUpe3ZhciBpPWZ1bmN0aW9uKHQpe3JldHVybiB0fSxvPWkscz1pO0Q/aigieGFuY2hvciIsci54YW5jaG9yPUcoXytuKSk6KG89ZnVuY3Rpb24odCl7cmV0dXJuIEcocSh0KStuKX0sViYmImRhdGUiPT09Vi50eXBlJiYobz1mLmVuY29kZURhdGUobykpKSxSP2ooInlhbmNob3IiLHIueWFuY2hvcj1ZKHcrYSkpOihzPWZ1bmN0aW9uKHQpe3JldHVybiBZKEgodCkrYSl9LFUmJiJkYXRlIj09PVUudHlwZSYmKHM9Zi5lbmNvZGVEYXRlKHMpKSksaigicGF0aCIsci5wYXRoPXYoUCxvLHMpKX1lbHNlIEQ/aigieGFuY2hvciIsci54YW5jaG9yPUcoXytuKSk6KGooIngwIixyLngwPUcobStuKSksaigieDEiLHIueDE9Ryh4K24pKSksUj9qKCJ5YW5jaG9yIixyLnlhbmNob3I9WSh3K2EpKTooaigieTAiLHIueTA9WSh5K2EpKSxqKCJ5MSIsci55MT1ZKGIrYSkpKTtlLmF0dHIoImQiLGcodCxyKSksUShwLHIpfWZ1bmN0aW9uIEsobixhKXtpZihCKXt2YXIgaT1mdW5jdGlvbih0KXtyZXR1cm4gdH0sbz1pLHM9aTtEP2ooInhhbmNob3IiLHIueGFuY2hvcj1HKF8rbikpOihvPWZ1bmN0aW9uKHQpe3JldHVybiBHKHEodCkrbil9LFYmJiJkYXRlIj09PVYudHlwZSYmKG89Zi5lbmNvZGVEYXRlKG8pKSksUj9qKCJ5YW5jaG9yIixyLnlhbmNob3I9WSh3K2EpKToocz1mdW5jdGlvbih0KXtyZXR1cm4gWShIKHQpK2EpfSxVJiYiZGF0ZSI9PT1VLnR5cGUmJihzPWYuZW5jb2RlRGF0ZShzKSkpLGooInBhdGgiLHIucGF0aD12KFAsbyxzKSl9ZWxzZSBpZihGKXtpZigicmVzaXplLW92ZXItc3RhcnQtcG9pbnQiPT09Tyl7dmFyIGw9bStuLGM9Uj95LWE6eSthO2ooIngwIixyLngwPUQ/bDpHKGwpKSxqKCJ5MCIsci55MD1SP2M6WShjKSl9ZWxzZSBpZigicmVzaXplLW92ZXItZW5kLXBvaW50Ij09PU8pe3ZhciB1PXgrbixoPVI/Yi1hOmIrYTtqKCJ4MSIsci54MT1EP3U6Ryh1KSksaigieTEiLHIueTE9Uj9oOlkoaCkpfX1lbHNle3ZhciBkPX5PLmluZGV4T2YoIm4iKT9rK2E6ayxOPX5PLmluZGV4T2YoInMiKT9UK2E6VCxXPX5PLmluZGV4T2YoInciKT9NK246TSxYPX5PLmluZGV4T2YoImUiKT9BK246QTt+Ty5pbmRleE9mKCJuIikmJlImJihkPWstYSksfk8uaW5kZXhPZigicyIpJiZSJiYoTj1ULWEpLCghUiYmTi1kPkl8fFImJmQtTj5JKSYmKGooUyxyW1NdPVI/ZDpZKGQpKSxqKEUscltFXT1SP046WShOKSkpLFgtVz56JiYoaihMLHJbTF09RD9XOkcoVykpLGooQyxyW0NdPUQ/WDpHKFgpKSl9ZS5hdHRyKCJkIixnKHQscikpLFEocCxyKX1mdW5jdGlvbiBRKHQsZSl7KER8fFIpJiZmdW5jdGlvbigpe3ZhciByPSJwYXRoIiE9PWUudHlwZSxuPXQuc2VsZWN0QWxsKCIudmlzdWFsLWN1ZSIpLmRhdGEoWzBdKTtuLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuYXR0cih7ZmlsbDoiI2ZmZiIsImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHN0cm9rZToiIzAwMCIsInN0cm9rZS13aWR0aCI6MX0pLmNsYXNzZWQoInZpc3VhbC1jdWUiLCEwKTt2YXIgaT1xKEQ/ZS54YW5jaG9yOmEubWlkUmFuZ2Uocj9bZS54MCxlLngxXTpmLmV4dHJhY3RQYXRoQ29vcmRzKGUucGF0aCxoLnBhcmFtSXNYKSkpLG89SChSP2UueWFuY2hvcjphLm1pZFJhbmdlKHI/W2UueTAsZS55MV06Zi5leHRyYWN0UGF0aENvb3JkcyhlLnBhdGgsaC5wYXJhbUlzWSkpKTtpZihpPWYucm91bmRQb3NpdGlvbkZvclNoYXJwU3Ryb2tlUmVuZGVyaW5nKGksMSksbz1mLnJvdW5kUG9zaXRpb25Gb3JTaGFycFN0cm9rZVJlbmRlcmluZyhvLDEpLEQmJlIpe3ZhciBzPSJNIisoaS0xLTEpKyIsIisoby0xLTEpKyJoLTh2Mmg4IHY4aDJ2LTggaDh2LTJoLTggdi04aC0yIFoiO24uYXR0cigiZCIscyl9ZWxzZSBpZihEKXt2YXIgbD0iTSIrKGktMS0xKSsiLCIrKG8tOS0xKSsidjE4IGgyIHYtMTggWiI7bi5hdHRyKCJkIixsKX1lbHNle3ZhciBjPSJNIisoaS05LTEpKyIsIisoby0xLTEpKyJoMTggdjIgaC0xOCBaIjtuLmF0dHIoImQiLGMpfX0oKX1mdW5jdGlvbiAkKHQpe3Quc2VsZWN0QWxsKCIudmlzdWFsLWN1ZSIpLnJlbW92ZSgpfWMuaW5pdChYKSxXLm5vZGUoKS5vbm1vdXNlbW92ZT1afSh0LHgscixlLHApfX1mdW5jdGlvbiBkKHQsZSxyKXt2YXIgbj0oci54cmVmK3IueXJlZikucmVwbGFjZSgvcGFwZXIvZywiIik7cy5zZXRDbGlwVXJsKHQsbj8iY2xpcCIrZS5fZnVsbExheW91dC5fdWlkK246bnVsbCxlKX1mdW5jdGlvbiBnKHQsZSl7dmFyIHIsbixvLHMsbCxjLHUscCxkPWUudHlwZSxnPWkuZ2V0RnJvbUlkKHQsZS54cmVmKSx2PWkuZ2V0RnJvbUlkKHQsZS55cmVmKSxtPXQuX2Z1bGxMYXlvdXQuX3NpemU7aWYoZz8ocj1mLnNoYXBlUG9zaXRpb25Ub1JhbmdlKGcpLG49ZnVuY3Rpb24odCl7cmV0dXJuIGcuX29mZnNldCtnLnIycChyKHQsITApKX0pOm49ZnVuY3Rpb24odCl7cmV0dXJuIG0ubCttLncqdH0sdj8obz1mLnNoYXBlUG9zaXRpb25Ub1JhbmdlKHYpLHM9ZnVuY3Rpb24odCl7cmV0dXJuIHYuX29mZnNldCt2LnIycChvKHQsITApKX0pOnM9ZnVuY3Rpb24odCl7cmV0dXJuIG0udCttLmgqKDEtdCl9LCJwYXRoIj09PWQpcmV0dXJuIGcmJiJkYXRlIj09PWcudHlwZSYmKG49Zi5kZWNvZGVEYXRlKG4pKSx2JiYiZGF0ZSI9PT12LnR5cGUmJihzPWYuZGVjb2RlRGF0ZShzKSksZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQucGF0aCxpPXQueHNpemVtb2RlLG89dC55c2l6ZW1vZGUscz10LnhhbmNob3IsbD10LnlhbmNob3I7cmV0dXJuIG4ucmVwbGFjZShoLnNlZ21lbnRSRSxmdW5jdGlvbih0KXt2YXIgbj0wLGM9dC5jaGFyQXQoMCksdT1oLnBhcmFtSXNYW2NdLGY9aC5wYXJhbUlzWVtjXSxwPWgubnVtUGFyYW1zW2NdLGQ9dC5zdWJzdHIoMSkucmVwbGFjZShoLnBhcmFtUkUsZnVuY3Rpb24odCl7cmV0dXJuIHVbbl0/dD0icGl4ZWwiPT09aT9lKHMpK051bWJlcih0KTplKHQpOmZbbl0mJih0PSJwaXhlbCI9PT1vP3IobCktTnVtYmVyKHQpOnIodCkpLCsrbj5wJiYodD0iWCIpLHR9KTtyZXR1cm4gbj5wJiYoZD1kLnJlcGxhY2UoL1tccyxdKlguKi8sIiIpLGEubG9nKCJJZ25vcmluZyBleHRyYSBwYXJhbXMgaW4gc2VnbWVudCAiK3QpKSxjK2R9KX0oZSxuLHMpO2lmKCJwaXhlbCI9PT1lLnhzaXplbW9kZSl7dmFyIHk9bihlLnhhbmNob3IpO2w9eStlLngwLGM9eStlLngxfWVsc2UgbD1uKGUueDApLGM9bihlLngxKTtpZigicGl4ZWwiPT09ZS55c2l6ZW1vZGUpe3ZhciB4PXMoZS55YW5jaG9yKTt1PXgtZS55MCxwPXgtZS55MX1lbHNlIHU9cyhlLnkwKSxwPXMoZS55MSk7aWYoImxpbmUiPT09ZClyZXR1cm4iTSIrbCsiLCIrdSsiTCIrYysiLCIrcDtpZigicmVjdCI9PT1kKXJldHVybiJNIitsKyIsIit1KyJIIitjKyJWIitwKyJIIitsKyJaIjt2YXIgYj0obCtjKS8yLF89KHUrcCkvMix3PU1hdGguYWJzKGItbCksaz1NYXRoLmFicyhfLXUpLFQ9IkEiK3crIiwiK2ssTT1iK3crIiwiK187cmV0dXJuIk0iK00rVCsiIDAgMSwxICIrKGIrIiwiKyhfLWspKStUKyIgMCAwLDEgIitNKyJaIn1mdW5jdGlvbiB2KHQsZSxyKXtyZXR1cm4gdC5yZXBsYWNlKGguc2VnbWVudFJFLGZ1bmN0aW9uKHQpe3ZhciBuPTAsYT10LmNoYXJBdCgwKSxpPWgucGFyYW1Jc1hbYV0sbz1oLnBhcmFtSXNZW2FdLHM9aC5udW1QYXJhbXNbYV07cmV0dXJuIGErdC5zdWJzdHIoMSkucmVwbGFjZShoLnBhcmFtUkUsZnVuY3Rpb24odCl7cmV0dXJuIG4+PXM/dDooaVtuXT90PWUodCk6b1tuXSYmKHQ9cih0KSksbisrLHQpfSl9KX1lLmV4cG9ydHM9e2RyYXc6ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dDtmb3IodmFyIHIgaW4gZS5fc2hhcGVVcHBlckxheWVyLnNlbGVjdEFsbCgicGF0aCIpLnJlbW92ZSgpLGUuX3NoYXBlTG93ZXJMYXllci5zZWxlY3RBbGwoInBhdGgiKS5yZW1vdmUoKSxlLl9wbG90cyl7dmFyIG49ZS5fcGxvdHNbcl0uc2hhcGVsYXllcjtuJiZuLnNlbGVjdEFsbCgicGF0aCIpLnJlbW92ZSgpfWZvcih2YXIgYT0wO2E8ZS5zaGFwZXMubGVuZ3RoO2ErKyllLnNoYXBlc1thXS52aXNpYmxlJiZwKHQsYSl9LGRyYXdPbmU6cH19LHsiLi4vLi4vbGliIjo3MTcsIi4uLy4uL2xpYi9zZXRjdXJzb3IiOjczNywiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NzU1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NzY1LCIuLi8uLi9yZWdpc3RyeSI6ODQ2LCIuLi9jb2xvciI6NTkyLCIuLi9kcmFnZWxlbWVudCI6NjEwLCIuLi9kcmF3aW5nIjo2MTMsIi4vY29uc3RhbnRzIjo2NjksIi4vaGVscGVycyI6NjcyfV0sNjcyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vY29uc3RhbnRzIiksYT10KCIuLi8uLi9saWIiKTtyLnJhbmdlVG9TaGFwZVBvc2l0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiJsb2ciPT09dC50eXBlP3QucjJkOmZ1bmN0aW9uKHQpe3JldHVybiB0fX0sci5zaGFwZVBvc2l0aW9uVG9SYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4ibG9nIj09PXQudHlwZT90LmQycjpmdW5jdGlvbih0KXtyZXR1cm4gdH19LHIuZGVjb2RlRGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSYmKGU9ZS5yZXBsYWNlKCJfIiwiICIpKSx0KGUpfX0sci5lbmNvZGVEYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdChlKS5yZXBsYWNlKCIgIiwiXyIpfX0sci5leHRyYWN0UGF0aENvb3Jkcz1mdW5jdGlvbih0LGUpe3ZhciByPVtdO3JldHVybiB0Lm1hdGNoKG4uc2VnbWVudFJFKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBpPWVbdC5jaGFyQXQoMCldLmRyYXduO2lmKHZvaWQgMCE9PWkpe3ZhciBvPXQuc3Vic3RyKDEpLm1hdGNoKG4ucGFyYW1SRSk7IW98fG8ubGVuZ3RoPGl8fHIucHVzaChhLmNsZWFuTnVtYmVyKG9baV0pKX19KSxyfSxyLmdldERhdGFUb1BpeGVsPWZ1bmN0aW9uKHQsZSxuKXt2YXIgYSxpPXQuX2Z1bGxMYXlvdXQuX3NpemU7aWYoZSl7dmFyIG89ci5zaGFwZVBvc2l0aW9uVG9SYW5nZShlKTthPWZ1bmN0aW9uKHQpe3JldHVybiBlLl9vZmZzZXQrZS5yMnAobyh0LCEwKSl9LCJkYXRlIj09PWUudHlwZSYmKGE9ci5kZWNvZGVEYXRlKGEpKX1lbHNlIGE9bj9mdW5jdGlvbih0KXtyZXR1cm4gaS50K2kuaCooMS10KX06ZnVuY3Rpb24odCl7cmV0dXJuIGkubCtpLncqdH07cmV0dXJuIGF9LHIuZ2V0UGl4ZWxUb0RhdGE9ZnVuY3Rpb24odCxlLG4pe3ZhciBhLGk9dC5fZnVsbExheW91dC5fc2l6ZTtpZihlKXt2YXIgbz1yLnJhbmdlVG9TaGFwZVBvc2l0aW9uKGUpO2E9ZnVuY3Rpb24odCl7cmV0dXJuIG8oZS5wMnIodC1lLl9vZmZzZXQpKX19ZWxzZSBhPW4/ZnVuY3Rpb24odCl7cmV0dXJuIDEtKHQtaS50KS9pLmh9OmZ1bmN0aW9uKHQpe3JldHVybih0LWkubCkvaS53fTtyZXR1cm4gYX0sci5yb3VuZFBvc2l0aW9uRm9yU2hhcnBTdHJva2VSZW5kZXJpbmc9ZnVuY3Rpb24odCxlKXt2YXIgcj0xPT09TWF0aC5yb3VuZChlJTIpLG49TWF0aC5yb3VuZCh0KTtyZXR1cm4gcj9uKy41Om59fSx7Ii4uLy4uL2xpYiI6NzE3LCIuL2NvbnN0YW50cyI6NjY5fV0sNjczOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vZHJhdyIpO2UuZXhwb3J0cz17bW9kdWxlVHlwZToiY29tcG9uZW50IixuYW1lOiJzaGFwZXMiLGxheW91dEF0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5TGF5b3V0RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGluY2x1ZGVCYXNlUGxvdDp0KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vaW5jbHVkZV9jb21wb25lbnRzIikoInNoYXBlcyIpLGNhbGNBdXRvcmFuZ2U6dCgiLi9jYWxjX2F1dG9yYW5nZSIpLGRyYXc6bi5kcmF3LGRyYXdPbmU6bi5kcmF3T25lfX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vaW5jbHVkZV9jb21wb25lbnRzIjo3NzUsIi4vYXR0cmlidXRlcyI6NjY3LCIuL2NhbGNfYXV0b3JhbmdlIjo2NjgsIi4vZGVmYXVsdHMiOjY3MCwiLi9kcmF3Ijo2NzF9XSw2NzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9wbG90cy9wYWRfYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZERlZXBBbGwsbz10KCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIikub3ZlcnJpZGVBbGwscz10KCIuLi8uLi9wbG90cy9hbmltYXRpb25fYXR0cmlidXRlcyIpLGw9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLnRlbXBsYXRlZEFycmF5LGM9dCgiLi9jb25zdGFudHMiKSx1PWwoInN0ZXAiLHt2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfSxtZXRob2Q6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInJlc3R5bGUiLCJyZWxheW91dCIsImFuaW1hdGUiLCJ1cGRhdGUiLCJza2lwIl0sZGZsdDoicmVzdHlsZSJ9LGFyZ3M6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGZyZWVMZW5ndGg6ITAsaXRlbXM6W3t2YWxUeXBlOiJhbnkifSx7dmFsVHlwZToiYW55In0se3ZhbFR5cGU6ImFueSJ9XX0sbGFiZWw6e3ZhbFR5cGU6InN0cmluZyJ9LHZhbHVlOnt2YWxUeXBlOiJzdHJpbmcifSxleGVjdXRlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfX0pO2UuZXhwb3J0cz1vKGwoInNsaWRlciIse3Zpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITB9LGFjdGl2ZTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjB9LHN0ZXBzOnUsbGVubW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZnJhY3Rpb24iLCJwaXhlbHMiXSxkZmx0OiJmcmFjdGlvbiJ9LGxlbjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjF9LHg6e3ZhbFR5cGU6Im51bWJlciIsbWluOi0yLG1heDozLGRmbHQ6MH0scGFkOmkoYSh7ZWRpdFR5cGU6ImFycmF5ZHJhdyJ9KSx7fSx7dDp7ZGZsdDoyMH19KSx4YW5jaG9yOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhdXRvIiwibGVmdCIsImNlbnRlciIsInJpZ2h0Il0sZGZsdDoibGVmdCJ9LHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOi0yLG1heDozLGRmbHQ6MH0seWFuY2hvcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYXV0byIsInRvcCIsIm1pZGRsZSIsImJvdHRvbSJdLGRmbHQ6InRvcCJ9LHRyYW5zaXRpb246e2R1cmF0aW9uOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MTUwfSxlYXNpbmc6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpzLnRyYW5zaXRpb24uZWFzaW5nLnZhbHVlcyxkZmx0OiJjdWJpYy1pbi1vdXQifX0sY3VycmVudHZhbHVlOnt2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfSx4YW5jaG9yOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJsZWZ0IiwiY2VudGVyIiwicmlnaHQiXSxkZmx0OiJsZWZ0In0sb2Zmc2V0Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MTB9LHByZWZpeDp7dmFsVHlwZToic3RyaW5nIn0sc3VmZml4Ont2YWxUeXBlOiJzdHJpbmcifSxmb250Om4oe30pfSxmb250Om4oe30pLGFjdGl2ZWJnY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmMuZ3JpcEJnQWN0aXZlQ29sb3J9LGJnY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmMucmFpbEJnQ29sb3J9LGJvcmRlcmNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpjLnJhaWxCb3JkZXJDb2xvcn0sYm9yZGVyd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDpjLnJhaWxCb3JkZXJXaWR0aH0sdGlja2xlbjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OmMudGlja0xlbmd0aH0sdGlja2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpjLnRpY2tDb2xvcn0sdGlja3dpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MX0sbWlub3J0aWNrbGVuOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6Yy5taW5vclRpY2tMZW5ndGh9fSksImFycmF5ZHJhdyIsImZyb20tcm9vdCIpfSx7Ii4uLy4uL2xpYi9leHRlbmQiOjcwOCwiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyI6NzQ4LCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo3NTUsIi4uLy4uL3Bsb3RzL2FuaW1hdGlvbl9hdHRyaWJ1dGVzIjo3NjAsIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyI6NzkxLCIuLi8uLi9wbG90cy9wYWRfYXR0cmlidXRlcyI6ODI1LCIuL2NvbnN0YW50cyI6Njc1fV0sNjc1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bmFtZToic2xpZGVycyIsY29udGFpbmVyQ2xhc3NOYW1lOiJzbGlkZXItY29udGFpbmVyIixncm91cENsYXNzTmFtZToic2xpZGVyLWdyb3VwIixpbnB1dEFyZWFDbGFzczoic2xpZGVyLWlucHV0LWFyZWEiLHJhaWxSZWN0Q2xhc3M6InNsaWRlci1yYWlsLXJlY3QiLHJhaWxUb3VjaFJlY3RDbGFzczoic2xpZGVyLXJhaWwtdG91Y2gtcmVjdCIsZ3JpcFJlY3RDbGFzczoic2xpZGVyLWdyaXAtcmVjdCIsdGlja1JlY3RDbGFzczoic2xpZGVyLXRpY2stcmVjdCIsaW5wdXRQcm94eUNsYXNzOiJzbGlkZXItaW5wdXQtcHJveHkiLGxhYmVsc0NsYXNzOiJzbGlkZXItbGFiZWxzIixsYWJlbEdyb3VwQ2xhc3M6InNsaWRlci1sYWJlbC1ncm91cCIsbGFiZWxDbGFzczoic2xpZGVyLWxhYmVsIixjdXJyZW50VmFsdWVDbGFzczoic2xpZGVyLWN1cnJlbnQtdmFsdWUiLHJhaWxIZWlnaHQ6NSxtZW51SW5kZXhBdHRyTmFtZToic2xpZGVyLWFjdGl2ZS1pbmRleCIsYXV0b01hcmdpbklkUm9vdDoic2xpZGVyLSIsbWluV2lkdGg6MzAsbWluSGVpZ2h0OjMwLHRleHRQYWRYOjQwLGFycm93T2Zmc2V0WDo0LHJhaWxSYWRpdXM6MixyYWlsV2lkdGg6NSxyYWlsQm9yZGVyOjQscmFpbEJvcmRlcldpZHRoOjEscmFpbEJvcmRlckNvbG9yOiIjYmVjOGQ5IixyYWlsQmdDb2xvcjoiI2Y4ZmFmYyIscmFpbEluc2V0Ojgsc3RlcEluc2V0OjEwLGdyaXBSYWRpdXM6MTAsZ3JpcFdpZHRoOjIwLGdyaXBIZWlnaHQ6MjAsZ3JpcEJvcmRlcjoyMCxncmlwQm9yZGVyV2lkdGg6MSxncmlwQm9yZGVyQ29sb3I6IiNiZWM4ZDkiLGdyaXBCZ0NvbG9yOiIjZjZmOGZhIixncmlwQmdBY3RpdmVDb2xvcjoiI2RiZGRlMCIsbGFiZWxQYWRkaW5nOjgsbGFiZWxPZmZzZXQ6MCx0aWNrV2lkdGg6MSx0aWNrQ29sb3I6IiMzMzMiLHRpY2tPZmZzZXQ6MjUsdGlja0xlbmd0aDo3LG1pbm9yVGlja09mZnNldDoyNSxtaW5vclRpY2tDb2xvcjoiIzMzMyIsbWlub3JUaWNrTGVuZ3RoOjQsY3VycmVudFZhbHVlUGFkZGluZzo4LGN1cnJlbnRWYWx1ZUluc2V0OjB9fSx7fV0sNjc2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vcGxvdHMvYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIiksaT10KCIuL2F0dHJpYnV0ZXMiKSxvPXQoIi4vY29uc3RhbnRzIikubmFtZSxzPWkuc3RlcHM7ZnVuY3Rpb24gbCh0LGUscil7ZnVuY3Rpb24gbyhyLGEpe3JldHVybiBuLmNvZXJjZSh0LGUsaSxyLGEpfWZvcih2YXIgcz1hKHQsZSx7bmFtZToic3RlcHMiLGhhbmRsZUl0ZW1EZWZhdWx0czpjfSksbD0wLHU9MDt1PHMubGVuZ3RoO3UrKylzW3VdLnZpc2libGUmJmwrKztpZihsPDI/ZS52aXNpYmxlPSExOm8oInZpc2libGUiKSl7ZS5fc3RlcENvdW50PWw7dmFyIGg9ZS5fdmlzaWJsZVN0ZXBzPW4uZmlsdGVyVmlzaWJsZShzKTsoc1tvKCJhY3RpdmUiKV18fHt9KS52aXNpYmxlfHwoZS5hY3RpdmU9aFswXS5faW5kZXgpLG8oIngiKSxvKCJ5Iiksbi5ub25lT3JBbGwodCxlLFsieCIsInkiXSksbygieGFuY2hvciIpLG8oInlhbmNob3IiKSxvKCJsZW4iKSxvKCJsZW5tb2RlIiksbygicGFkLnQiKSxvKCJwYWQuciIpLG8oInBhZC5iIiksbygicGFkLmwiKSxuLmNvZXJjZUZvbnQobywiZm9udCIsci5mb250KSxvKCJjdXJyZW50dmFsdWUudmlzaWJsZSIpJiYobygiY3VycmVudHZhbHVlLnhhbmNob3IiKSxvKCJjdXJyZW50dmFsdWUucHJlZml4IiksbygiY3VycmVudHZhbHVlLnN1ZmZpeCIpLG8oImN1cnJlbnR2YWx1ZS5vZmZzZXQiKSxuLmNvZXJjZUZvbnQobywiY3VycmVudHZhbHVlLmZvbnQiLGUuZm9udCkpLG8oInRyYW5zaXRpb24uZHVyYXRpb24iKSxvKCJ0cmFuc2l0aW9uLmVhc2luZyIpLG8oImJnY29sb3IiKSxvKCJhY3RpdmViZ2NvbG9yIiksbygiYm9yZGVyY29sb3IiKSxvKCJib3JkZXJ3aWR0aCIpLG8oInRpY2tsZW4iKSxvKCJ0aWNrd2lkdGgiKSxvKCJ0aWNrY29sb3IiKSxvKCJtaW5vcnRpY2tsZW4iKX19ZnVuY3Rpb24gYyh0LGUpe2Z1bmN0aW9uIHIocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLHMscixhKX1pZigic2tpcCI9PT10Lm1ldGhvZHx8QXJyYXkuaXNBcnJheSh0LmFyZ3MpP3IoInZpc2libGUiKTplLnZpc2libGU9ITEpe3IoIm1ldGhvZCIpLHIoImFyZ3MiKTt2YXIgYT1yKCJsYWJlbCIsInN0ZXAtIitlLl9pbmRleCk7cigidmFsdWUiLGEpLHIoImV4ZWN1dGUiKX19ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7YSh0LGUse25hbWU6byxoYW5kbGVJdGVtRGVmYXVsdHM6bH0pfX0seyIuLi8uLi9saWIiOjcxNywiLi4vLi4vcGxvdHMvYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIjo3NjEsIi4vYXR0cmlidXRlcyI6Njc0LCIuL2NvbnN0YW50cyI6Njc1fV0sNjc3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksYT10KCIuLi8uLi9wbG90cy9wbG90cyIpLGk9dCgiLi4vY29sb3IiKSxvPXQoIi4uL2RyYXdpbmciKSxzPXQoIi4uLy4uL2xpYiIpLGw9dCgiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIiksYz10KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIikuYXJyYXlFZGl0b3IsdT10KCIuL2NvbnN0YW50cyIpLGg9dCgiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCIpLGY9aC5MSU5FX1NQQUNJTkcscD1oLkZST01fVEwsZD1oLkZST01fQlI7ZnVuY3Rpb24gZyh0KXtyZXR1cm4gdS5hdXRvTWFyZ2luSWRSb290K3QuX2luZGV4fWZ1bmN0aW9uIHYodCl7cmV0dXJuIHQuX2luZGV4fWZ1bmN0aW9uIG0odCxlKXt2YXIgcj1vLnRlc3Rlci5zZWxlY3RBbGwoImcuIit1LmxhYmVsR3JvdXBDbGFzcykuZGF0YShlLl92aXNpYmxlU3RlcHMpO3IuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKHUubGFiZWxHcm91cENsYXNzLCEwKTt2YXIgaT0wLGM9MDtyLmVhY2goZnVuY3Rpb24odCl7dmFyIHI9YihuLnNlbGVjdCh0aGlzKSx7c3RlcDp0fSxlKS5ub2RlKCk7aWYocil7dmFyIGE9by5iQm94KHIpO2M9TWF0aC5tYXgoYyxhLmhlaWdodCksaT1NYXRoLm1heChpLGEud2lkdGgpfX0pLHIucmVtb3ZlKCk7dmFyIGg9ZS5fZGltcz17fTtoLmlucHV0QXJlYVdpZHRoPU1hdGgubWF4KHUucmFpbFdpZHRoLHUuZ3JpcEhlaWdodCk7dmFyIGY9dC5fZnVsbExheW91dC5fc2l6ZTtoLmx4PWYubCtmLncqZS54LGgubHk9Zi50K2YuaCooMS1lLnkpLCJmcmFjdGlvbiI9PT1lLmxlbm1vZGU/aC5vdXRlckxlbmd0aD1NYXRoLnJvdW5kKGYudyplLmxlbik6aC5vdXRlckxlbmd0aD1lLmxlbixoLmlucHV0QXJlYVN0YXJ0PTAsaC5pbnB1dEFyZWFMZW5ndGg9TWF0aC5yb3VuZChoLm91dGVyTGVuZ3RoLWUucGFkLmwtZS5wYWQucik7dmFyIHY9KGguaW5wdXRBcmVhTGVuZ3RoLTIqdS5zdGVwSW5zZXQpLyhlLl9zdGVwQ291bnQtMSksbT1pK3UubGFiZWxQYWRkaW5nO2lmKGgubGFiZWxTdHJpZGU9TWF0aC5tYXgoMSxNYXRoLmNlaWwobS92KSksaC5sYWJlbEhlaWdodD1jLGguY3VycmVudFZhbHVlTWF4V2lkdGg9MCxoLmN1cnJlbnRWYWx1ZUhlaWdodD0wLGguY3VycmVudFZhbHVlVG90YWxIZWlnaHQ9MCxoLmN1cnJlbnRWYWx1ZU1heExpbmVzPTEsZS5jdXJyZW50dmFsdWUudmlzaWJsZSl7dmFyIHg9by50ZXN0ZXIuYXBwZW5kKCJnIik7ci5lYWNoKGZ1bmN0aW9uKHQpe3ZhciByPXkoeCxlLHQubGFiZWwpLG49ci5ub2RlKCkmJm8uYkJveChyLm5vZGUoKSl8fHt3aWR0aDowLGhlaWdodDowfSxhPWwubGluZUNvdW50KHIpO2guY3VycmVudFZhbHVlTWF4V2lkdGg9TWF0aC5tYXgoaC5jdXJyZW50VmFsdWVNYXhXaWR0aCxNYXRoLmNlaWwobi53aWR0aCkpLGguY3VycmVudFZhbHVlSGVpZ2h0PU1hdGgubWF4KGguY3VycmVudFZhbHVlSGVpZ2h0LE1hdGguY2VpbChuLmhlaWdodCkpLGguY3VycmVudFZhbHVlTWF4TGluZXM9TWF0aC5tYXgoaC5jdXJyZW50VmFsdWVNYXhMaW5lcyxhKX0pLGguY3VycmVudFZhbHVlVG90YWxIZWlnaHQ9aC5jdXJyZW50VmFsdWVIZWlnaHQrZS5jdXJyZW50dmFsdWUub2Zmc2V0LHgucmVtb3ZlKCl9aC5oZWlnaHQ9aC5jdXJyZW50VmFsdWVUb3RhbEhlaWdodCt1LnRpY2tPZmZzZXQrZS50aWNrbGVuK3UubGFiZWxPZmZzZXQraC5sYWJlbEhlaWdodCtlLnBhZC50K2UucGFkLmI7dmFyIF89ImxlZnQiO3MuaXNSaWdodEFuY2hvcihlKSYmKGgubHgtPWgub3V0ZXJMZW5ndGgsXz0icmlnaHQiKSxzLmlzQ2VudGVyQW5jaG9yKGUpJiYoaC5seC09aC5vdXRlckxlbmd0aC8yLF89ImNlbnRlciIpO3ZhciB3PSJ0b3AiO3MuaXNCb3R0b21BbmNob3IoZSkmJihoLmx5LT1oLmhlaWdodCx3PSJib3R0b20iKSxzLmlzTWlkZGxlQW5jaG9yKGUpJiYoaC5seS09aC5oZWlnaHQvMix3PSJtaWRkbGUiKSxoLm91dGVyTGVuZ3RoPU1hdGguY2VpbChoLm91dGVyTGVuZ3RoKSxoLmhlaWdodD1NYXRoLmNlaWwoaC5oZWlnaHQpLGgubHg9TWF0aC5yb3VuZChoLmx4KSxoLmx5PU1hdGgucm91bmQoaC5seSk7dmFyIGs9e3k6ZS55LGI6aC5oZWlnaHQqZFt3XSx0OmguaGVpZ2h0KnBbd119OyJmcmFjdGlvbiI9PT1lLmxlbm1vZGU/KGsubD0wLGsueGw9ZS54LWUubGVuKnBbX10say5yPTAsay54cj1lLngrZS5sZW4qZFtfXSk6KGsueD1lLngsay5sPWgub3V0ZXJMZW5ndGgqcFtfXSxrLnI9aC5vdXRlckxlbmd0aCpkW19dKSxhLmF1dG9NYXJnaW4odCxnKGUpLGspfWZ1bmN0aW9uIHkodCxlLHIpe2lmKGUuY3VycmVudHZhbHVlLnZpc2libGUpe3ZhciBuLGEsaT1lLl9kaW1zO3N3aXRjaChlLmN1cnJlbnR2YWx1ZS54YW5jaG9yKXtjYXNlInJpZ2h0IjpuPWkuaW5wdXRBcmVhTGVuZ3RoLXUuY3VycmVudFZhbHVlSW5zZXQtaS5jdXJyZW50VmFsdWVNYXhXaWR0aCxhPSJsZWZ0IjticmVhaztjYXNlImNlbnRlciI6bj0uNSppLmlucHV0QXJlYUxlbmd0aCxhPSJtaWRkbGUiO2JyZWFrO2RlZmF1bHQ6bj11LmN1cnJlbnRWYWx1ZUluc2V0LGE9ImxlZnQifXZhciBjPXMuZW5zdXJlU2luZ2xlKHQsInRleHQiLHUubGFiZWxDbGFzcyxmdW5jdGlvbih0KXt0LmNsYXNzZWQoInVzZXItc2VsZWN0LW5vbmUiLCEwKS5hdHRyKHsidGV4dC1hbmNob3IiOmEsImRhdGEtbm90ZXgiOjF9KX0pLGg9ZS5jdXJyZW50dmFsdWUucHJlZml4P2UuY3VycmVudHZhbHVlLnByZWZpeDoiIjtpZigic3RyaW5nIj09dHlwZW9mIHIpaCs9cjtlbHNle3ZhciBwPWUuc3RlcHNbZS5hY3RpdmVdLmxhYmVsLGQ9ZS5fZ2QuX2Z1bGxMYXlvdXQuX21ldGE7ZCYmKHA9cy50ZW1wbGF0ZVN0cmluZyhwLGQpKSxoKz1wfWUuY3VycmVudHZhbHVlLnN1ZmZpeCYmKGgrPWUuY3VycmVudHZhbHVlLnN1ZmZpeCksYy5jYWxsKG8uZm9udCxlLmN1cnJlbnR2YWx1ZS5mb250KS50ZXh0KGgpLmNhbGwobC5jb252ZXJ0VG9Uc3BhbnMsZS5fZ2QpO3ZhciBnPWwubGluZUNvdW50KGMpLHY9KGkuY3VycmVudFZhbHVlTWF4TGluZXMrMS1nKSplLmN1cnJlbnR2YWx1ZS5mb250LnNpemUqZjtyZXR1cm4gbC5wb3NpdGlvblRleHQoYyxuLHYpLGN9fWZ1bmN0aW9uIHgodCxlLHIpe3MuZW5zdXJlU2luZ2xlKHQsInJlY3QiLHUuZ3JpcFJlY3RDbGFzcyxmdW5jdGlvbihuKXtuLmNhbGwoVCxlLHQscikuc3R5bGUoInBvaW50ZXItZXZlbnRzIiwiYWxsIil9KS5hdHRyKHt3aWR0aDp1LmdyaXBXaWR0aCxoZWlnaHQ6dS5ncmlwSGVpZ2h0LHJ4OnUuZ3JpcFJhZGl1cyxyeTp1LmdyaXBSYWRpdXN9KS5jYWxsKGkuc3Ryb2tlLHIuYm9yZGVyY29sb3IpLmNhbGwoaS5maWxsLHIuYmdjb2xvcikuc3R5bGUoInN0cm9rZS13aWR0aCIsci5ib3JkZXJ3aWR0aCsicHgiKX1mdW5jdGlvbiBiKHQsZSxyKXt2YXIgbj1zLmVuc3VyZVNpbmdsZSh0LCJ0ZXh0Iix1LmxhYmVsQ2xhc3MsZnVuY3Rpb24odCl7dC5jbGFzc2VkKCJ1c2VyLXNlbGVjdC1ub25lIiwhMCkuYXR0cih7InRleHQtYW5jaG9yIjoibWlkZGxlIiwiZGF0YS1ub3RleCI6MX0pfSksYT1lLnN0ZXAubGFiZWwsaT1yLl9nZC5fZnVsbExheW91dC5fbWV0YTtyZXR1cm4gaSYmKGE9cy50ZW1wbGF0ZVN0cmluZyhhLGkpKSxuLmNhbGwoby5mb250LHIuZm9udCkudGV4dChhKS5jYWxsKGwuY29udmVydFRvVHNwYW5zLHIuX2dkKSxufWZ1bmN0aW9uIF8odCxlKXt2YXIgcj1zLmVuc3VyZVNpbmdsZSh0LCJnIix1LmxhYmVsc0NsYXNzKSxhPWUuX2RpbXMsaT1yLnNlbGVjdEFsbCgiZy4iK3UubGFiZWxHcm91cENsYXNzKS5kYXRhKGEubGFiZWxTdGVwcyk7aS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQodS5sYWJlbEdyb3VwQ2xhc3MsITApLGkuZXhpdCgpLnJlbW92ZSgpLGkuZWFjaChmdW5jdGlvbih0KXt2YXIgcj1uLnNlbGVjdCh0aGlzKTtyLmNhbGwoYix0LGUpLG8uc2V0VHJhbnNsYXRlKHIsUyhlLHQuZnJhY3Rpb24pLHUudGlja09mZnNldCtlLnRpY2tsZW4rZS5mb250LnNpemUqZit1LmxhYmVsT2Zmc2V0K2EuY3VycmVudFZhbHVlVG90YWxIZWlnaHQpfSl9ZnVuY3Rpb24gdyh0LGUscixuLGEpe3ZhciBpPU1hdGgucm91bmQobiooci5fc3RlcENvdW50LTEpKSxvPXIuX3Zpc2libGVTdGVwc1tpXS5faW5kZXg7byE9PXIuYWN0aXZlJiZrKHQsZSxyLG8sITAsYSl9ZnVuY3Rpb24gayh0LGUscixuLGksbyl7dmFyIHM9ci5hY3RpdmU7ci5hY3RpdmU9bixjKHQubGF5b3V0LHUubmFtZSxyKS5hcHBseVVwZGF0ZSgiYWN0aXZlIixuKTt2YXIgbD1yLnN0ZXBzW3IuYWN0aXZlXTtlLmNhbGwoQSxyLG8pLGUuY2FsbCh5LHIpLHQuZW1pdCgicGxvdGx5X3NsaWRlcmNoYW5nZSIse3NsaWRlcjpyLHN0ZXA6ci5zdGVwc1tyLmFjdGl2ZV0saW50ZXJhY3Rpb246aSxwcmV2aW91c0FjdGl2ZTpzfSksbCYmbC5tZXRob2QmJmkmJihlLl9uZXh0TWV0aG9kPyhlLl9uZXh0TWV0aG9kLnN0ZXA9bCxlLl9uZXh0TWV0aG9kLmRvQ2FsbGJhY2s9aSxlLl9uZXh0TWV0aG9kLmRvVHJhbnNpdGlvbj1vKTooZS5fbmV4dE1ldGhvZD17c3RlcDpsLGRvQ2FsbGJhY2s6aSxkb1RyYW5zaXRpb246b30sZS5fbmV4dE1ldGhvZFJhZj13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7dmFyIHI9ZS5fbmV4dE1ldGhvZC5zdGVwO3IubWV0aG9kJiYoci5leGVjdXRlJiZhLmV4ZWN1dGVBUElDb21tYW5kKHQsci5tZXRob2Qsci5hcmdzKSxlLl9uZXh0TWV0aG9kPW51bGwsZS5fbmV4dE1ldGhvZFJhZj1udWxsKX0pKSl9ZnVuY3Rpb24gVCh0LGUscil7dmFyIGE9ci5ub2RlKCksbz1uLnNlbGVjdChlKTtmdW5jdGlvbiBzKCl7cmV0dXJuIHIuZGF0YSgpWzBdfXQub24oIm1vdXNlZG93biIsZnVuY3Rpb24oKXt2YXIgdD1zKCk7ZS5lbWl0KCJwbG90bHlfc2xpZGVyc3RhcnQiLHtzbGlkZXI6dH0pO3ZhciBsPXIuc2VsZWN0KCIuIit1LmdyaXBSZWN0Q2xhc3MpO24uZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCksbi5ldmVudC5wcmV2ZW50RGVmYXVsdCgpLGwuY2FsbChpLmZpbGwsdC5hY3RpdmViZ2NvbG9yKTt2YXIgYz1FKHQsbi5tb3VzZShhKVswXSk7dyhlLHIsdCxjLCEwKSx0Ll9kcmFnZ2luZz0hMCxvLm9uKCJtb3VzZW1vdmUiLGZ1bmN0aW9uKCl7dmFyIHQ9cygpLGk9RSh0LG4ubW91c2UoYSlbMF0pO3coZSxyLHQsaSwhMSl9KSxvLm9uKCJtb3VzZXVwIixmdW5jdGlvbigpe3ZhciB0PXMoKTt0Ll9kcmFnZ2luZz0hMSxsLmNhbGwoaS5maWxsLHQuYmdjb2xvciksby5vbigibW91c2V1cCIsbnVsbCksby5vbigibW91c2Vtb3ZlIixudWxsKSxlLmVtaXQoInBsb3RseV9zbGlkZXJlbmQiLHtzbGlkZXI6dCxzdGVwOnQuc3RlcHNbdC5hY3RpdmVdfSl9KX0pfWZ1bmN0aW9uIE0odCxlKXt2YXIgcj10LnNlbGVjdEFsbCgicmVjdC4iK3UudGlja1JlY3RDbGFzcykuZGF0YShlLl92aXNpYmxlU3RlcHMpLGE9ZS5fZGltcztyLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuY2xhc3NlZCh1LnRpY2tSZWN0Q2xhc3MsITApLHIuZXhpdCgpLnJlbW92ZSgpLHIuYXR0cih7d2lkdGg6ZS50aWNrd2lkdGgrInB4Iiwic2hhcGUtcmVuZGVyaW5nIjoiY3Jpc3BFZGdlcyJ9KSxyLmVhY2goZnVuY3Rpb24odCxyKXt2YXIgcz1yJWEubGFiZWxTdHJpZGU9PTAsbD1uLnNlbGVjdCh0aGlzKTtsLmF0dHIoe2hlaWdodDpzP2UudGlja2xlbjplLm1pbm9ydGlja2xlbn0pLmNhbGwoaS5maWxsLGUudGlja2NvbG9yKSxvLnNldFRyYW5zbGF0ZShsLFMoZSxyLyhlLl9zdGVwQ291bnQtMSkpLS41KmUudGlja3dpZHRoLChzP3UudGlja09mZnNldDp1Lm1pbm9yVGlja09mZnNldCkrYS5jdXJyZW50VmFsdWVUb3RhbEhlaWdodCl9KX1mdW5jdGlvbiBBKHQsZSxyKXtmb3IodmFyIG49dC5zZWxlY3QoInJlY3QuIit1LmdyaXBSZWN0Q2xhc3MpLGE9MCxpPTA7aTxlLl9zdGVwQ291bnQ7aSsrKWlmKGUuX3Zpc2libGVTdGVwc1tpXS5faW5kZXg9PT1lLmFjdGl2ZSl7YT1pO2JyZWFrfXZhciBvPVMoZSxhLyhlLl9zdGVwQ291bnQtMSkpO2lmKCFlLl9pbnZva2luZ0NvbW1hbmQpe3ZhciBzPW47ciYmZS50cmFuc2l0aW9uLmR1cmF0aW9uPjAmJihzPXMudHJhbnNpdGlvbigpLmR1cmF0aW9uKGUudHJhbnNpdGlvbi5kdXJhdGlvbikuZWFzZShlLnRyYW5zaXRpb24uZWFzaW5nKSkscy5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIisoby0uNSp1LmdyaXBXaWR0aCkrIiwiK2UuX2RpbXMuY3VycmVudFZhbHVlVG90YWxIZWlnaHQrIikiKX19ZnVuY3Rpb24gUyh0LGUpe3ZhciByPXQuX2RpbXM7cmV0dXJuIHIuaW5wdXRBcmVhU3RhcnQrdS5zdGVwSW5zZXQrKHIuaW5wdXRBcmVhTGVuZ3RoLTIqdS5zdGVwSW5zZXQpKk1hdGgubWluKDEsTWF0aC5tYXgoMCxlKSl9ZnVuY3Rpb24gRSh0LGUpe3ZhciByPXQuX2RpbXM7cmV0dXJuIE1hdGgubWluKDEsTWF0aC5tYXgoMCwoZS11LnN0ZXBJbnNldC1yLmlucHV0QXJlYVN0YXJ0KS8oci5pbnB1dEFyZWFMZW5ndGgtMip1LnN0ZXBJbnNldC0yKnIuaW5wdXRBcmVhU3RhcnQpKSl9ZnVuY3Rpb24gTCh0LGUscil7dmFyIG49ci5fZGltcyxhPXMuZW5zdXJlU2luZ2xlKHQsInJlY3QiLHUucmFpbFRvdWNoUmVjdENsYXNzLGZ1bmN0aW9uKG4pe24uY2FsbChULGUsdCxyKS5zdHlsZSgicG9pbnRlci1ldmVudHMiLCJhbGwiKX0pO2EuYXR0cih7d2lkdGg6bi5pbnB1dEFyZWFMZW5ndGgsaGVpZ2h0Ok1hdGgubWF4KG4uaW5wdXRBcmVhV2lkdGgsdS50aWNrT2Zmc2V0K3IudGlja2xlbituLmxhYmVsSGVpZ2h0KX0pLmNhbGwoaS5maWxsLHIuYmdjb2xvcikuYXR0cigib3BhY2l0eSIsMCksby5zZXRUcmFuc2xhdGUoYSwwLG4uY3VycmVudFZhbHVlVG90YWxIZWlnaHQpfWZ1bmN0aW9uIEModCxlKXt2YXIgcj1lLl9kaW1zLG49ci5pbnB1dEFyZWFMZW5ndGgtMip1LnJhaWxJbnNldCxhPXMuZW5zdXJlU2luZ2xlKHQsInJlY3QiLHUucmFpbFJlY3RDbGFzcyk7YS5hdHRyKHt3aWR0aDpuLGhlaWdodDp1LnJhaWxXaWR0aCxyeDp1LnJhaWxSYWRpdXMscnk6dS5yYWlsUmFkaXVzLCJzaGFwZS1yZW5kZXJpbmciOiJjcmlzcEVkZ2VzIn0pLmNhbGwoaS5zdHJva2UsZS5ib3JkZXJjb2xvcikuY2FsbChpLmZpbGwsZS5iZ2NvbG9yKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixlLmJvcmRlcndpZHRoKyJweCIpLG8uc2V0VHJhbnNsYXRlKGEsdS5yYWlsSW5zZXQsLjUqKHIuaW5wdXRBcmVhV2lkdGgtdS5yYWlsV2lkdGgpK3IuY3VycmVudFZhbHVlVG90YWxIZWlnaHQpfWUuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0LHI9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dFt1Lm5hbWVdLG49W10sYT0wO2E8ci5sZW5ndGg7YSsrKXt2YXIgaT1yW2FdO2kudmlzaWJsZSYmKGkuX2dkPWUsbi5wdXNoKGkpKX1yZXR1cm4gbn0oZSx0KSxpPWUuX2luZm9sYXllci5zZWxlY3RBbGwoImcuIit1LmNvbnRhaW5lckNsYXNzTmFtZSkuZGF0YShyLmxlbmd0aD4wP1swXTpbXSk7ZnVuY3Rpb24gcyhlKXtlLl9jb21tYW5kT2JzZXJ2ZXImJihlLl9jb21tYW5kT2JzZXJ2ZXIucmVtb3ZlKCksZGVsZXRlIGUuX2NvbW1hbmRPYnNlcnZlciksYS5hdXRvTWFyZ2luKHQsZyhlKSl9aWYoaS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQodS5jb250YWluZXJDbGFzc05hbWUsITApLnN0eWxlKCJjdXJzb3IiLCJldy1yZXNpemUiKSxpLmV4aXQoKS5lYWNoKGZ1bmN0aW9uKCl7bi5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJnLiIrdS5ncm91cENsYXNzTmFtZSkuZWFjaChzKX0pLnJlbW92ZSgpLDAhPT1yLmxlbmd0aCl7dmFyIGw9aS5zZWxlY3RBbGwoImcuIit1Lmdyb3VwQ2xhc3NOYW1lKS5kYXRhKHIsdik7bC5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQodS5ncm91cENsYXNzTmFtZSwhMCksbC5leGl0KCkuZWFjaChzKS5yZW1vdmUoKTtmb3IodmFyIGM9MDtjPHIubGVuZ3RoO2MrKyl7dmFyIGg9cltjXTttKHQsaCl9bC5lYWNoKGZ1bmN0aW9uKGUpe3ZhciByPW4uc2VsZWN0KHRoaXMpOyFmdW5jdGlvbih0KXt2YXIgZT10Ll9kaW1zO2UubGFiZWxTdGVwcz1bXTtmb3IodmFyIHI9dC5fc3RlcENvdW50LG49MDtuPHI7bis9ZS5sYWJlbFN0cmlkZSllLmxhYmVsU3RlcHMucHVzaCh7ZnJhY3Rpb246bi8oci0xKSxzdGVwOnQuX3Zpc2libGVTdGVwc1tuXX0pfShlKSxhLm1hbmFnZUNvbW1hbmRPYnNlcnZlcih0LGUsZS5fdmlzaWJsZVN0ZXBzLGZ1bmN0aW9uKGUpe3ZhciBuPXIuZGF0YSgpWzBdO24uYWN0aXZlIT09ZS5pbmRleCYmKG4uX2RyYWdnaW5nfHxrKHQscixuLGUuaW5kZXgsITEsITApKX0pLGZ1bmN0aW9uKHQsZSxyKXsoci5zdGVwc1tyLmFjdGl2ZV18fHt9KS52aXNpYmxlfHwoci5hY3RpdmU9ci5fdmlzaWJsZVN0ZXBzWzBdLl9pbmRleCk7ZS5jYWxsKHkscikuY2FsbChDLHIpLmNhbGwoXyxyKS5jYWxsKE0scikuY2FsbChMLHQscikuY2FsbCh4LHQscik7dmFyIG49ci5fZGltcztvLnNldFRyYW5zbGF0ZShlLG4ubHgrci5wYWQubCxuLmx5K3IucGFkLnQpLGUuY2FsbChBLHIsITEpLGUuY2FsbCh5LHIpfSh0LG4uc2VsZWN0KHRoaXMpLGUpfSl9fX0seyIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50Ijo2ODYsIi4uLy4uL2xpYiI6NzE3LCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjc0MSwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NzU1LCIuLi8uLi9wbG90cy9wbG90cyI6ODI2LCIuLi9jb2xvciI6NTkyLCIuLi9kcmF3aW5nIjo2MTMsIi4vY29uc3RhbnRzIjo2NzUsZDM6MTY1fV0sNjc4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vY29uc3RhbnRzIik7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJjb21wb25lbnQiLG5hbWU6bi5uYW1lLGxheW91dEF0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5TGF5b3V0RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGRyYXc6dCgiLi9kcmF3Iil9fSx7Ii4vYXR0cmlidXRlcyI6Njc0LCIuL2NvbnN0YW50cyI6Njc1LCIuL2RlZmF1bHRzIjo2NzYsIi4vZHJhdyI6Njc3fV0sNjc5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksYT10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiLi4vLi4vcGxvdHMvcGxvdHMiKSxvPXQoIi4uLy4uL3JlZ2lzdHJ5Iikscz10KCIuLi8uLi9saWIiKSxsPXQoIi4uL2RyYXdpbmciKSxjPXQoIi4uL2NvbG9yIiksdT10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSxoPXQoIi4uLy4uL2NvbnN0YW50cy9pbnRlcmFjdGlvbnMiKSxmPXQoIi4uLy4uL2NvbnN0YW50cy9hbGlnbm1lbnQiKS5PUFBPU0lURV9TSURFLHA9LyBbWFldWzAtOV0qIC87ZS5leHBvcnRzPXtkcmF3OmZ1bmN0aW9uKHQsZSxyKXt2YXIgZCxnPXIucHJvcENvbnRhaW5lcix2PXIucHJvcE5hbWUsbT1yLnBsYWNlaG9sZGVyLHk9ci50cmFjZUluZGV4LHg9ci5hdm9pZHx8e30sYj1yLmF0dHJpYnV0ZXMsXz1yLnRyYW5zZm9ybSx3PXIuY29udGFpbmVyR3JvdXAsaz10Ll9mdWxsTGF5b3V0LFQ9MSxNPSExLEE9Zy50aXRsZSxTPShBJiZBLnRleHQ/QS50ZXh0OiIiKS50cmltKCksRT1BJiZBLmZvbnQ/QS5mb250Ont9LEw9RS5mYW1pbHksQz1FLnNpemUsUD1FLmNvbG9yOyJ0aXRsZS50ZXh0Ij09PXY/ZD0idGl0bGVUZXh0IjotMSE9PXYuaW5kZXhPZigiYXhpcyIpP2Q9ImF4aXNUaXRsZVRleHQiOnYuaW5kZXhPZighMCkmJihkPSJjb2xvcmJhclRpdGxlVGV4dCIpO3ZhciBPPXQuX2NvbnRleHQuZWRpdHNbZF07IiI9PT1TP1Q9MDpTLnJlcGxhY2UocCwiICUgIik9PT1tLnJlcGxhY2UocCwiICUgIikmJihUPS4yLE09ITAsT3x8KFM9IiIpKSxyLl9tZXRhP1M9cy50ZW1wbGF0ZVN0cmluZyhTLHIuX21ldGEpOmsuX21ldGEmJihTPXMudGVtcGxhdGVTdHJpbmcoUyxrLl9tZXRhKSk7dmFyIHo9U3x8Tzt3fHwodz1zLmVuc3VyZVNpbmdsZShrLl9pbmZvbGF5ZXIsImciLCJnLSIrZSkpO3ZhciBJPXcuc2VsZWN0QWxsKCJ0ZXh0IikuZGF0YSh6P1swXTpbXSk7aWYoSS5lbnRlcigpLmFwcGVuZCgidGV4dCIpLEkudGV4dChTKS5hdHRyKCJjbGFzcyIsZSksSS5leGl0KCkucmVtb3ZlKCksIXopcmV0dXJuIHc7ZnVuY3Rpb24gRCh0KXtzLnN5bmNPckFzeW5jKFtSLEZdLHQpfWZ1bmN0aW9uIFIoZSl7dmFyIHI7cmV0dXJuIF8/KHI9IiIsXy5yb3RhdGUmJihyKz0icm90YXRlKCIrW18ucm90YXRlLGIueCxiLnldKyIpIiksXy5vZmZzZXQmJihyKz0idHJhbnNsYXRlKDAsICIrXy5vZmZzZXQrIikiKSk6cj1udWxsLGUuYXR0cigidHJhbnNmb3JtIixyKSxlLnN0eWxlKHsiZm9udC1mYW1pbHkiOkwsImZvbnQtc2l6ZSI6bi5yb3VuZChDLDIpKyJweCIsZmlsbDpjLnJnYihQKSxvcGFjaXR5OlQqYy5vcGFjaXR5KFApLCJmb250LXdlaWdodCI6aS5mb250V2VpZ2h0fSkuYXR0cihiKS5jYWxsKHUuY29udmVydFRvVHNwYW5zLHQpLGkucHJldmlvdXNQcm9taXNlcyh0KX1mdW5jdGlvbiBGKHQpe3ZhciBlPW4uc2VsZWN0KHQubm9kZSgpLnBhcmVudE5vZGUpO2lmKHgmJnguc2VsZWN0aW9uJiZ4LnNpZGUmJlMpe2UuYXR0cigidHJhbnNmb3JtIixudWxsKTt2YXIgcj1mW3guc2lkZV0saT0ibGVmdCI9PT14LnNpZGV8fCJ0b3AiPT09eC5zaWRlPy0xOjEsbz1hKHgucGFkKT94LnBhZDoyLGM9bC5iQm94KGUubm9kZSgpKSx1PXtsZWZ0OjAsdG9wOjAscmlnaHQ6ay53aWR0aCxib3R0b206ay5oZWlnaHR9LGg9eC5tYXhTaGlmdHx8aSoodVt4LnNpZGVdLWNbeC5zaWRlXSkscD0wO2lmKGg8MClwPWg7ZWxzZXt2YXIgZD14Lm9mZnNldExlZnR8fDAsZz14Lm9mZnNldFRvcHx8MDtjLmxlZnQtPWQsYy5yaWdodC09ZCxjLnRvcC09ZyxjLmJvdHRvbS09Zyx4LnNlbGVjdGlvbi5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9bC5iQm94KHRoaXMpO3MuYkJveEludGVyc2VjdChjLHQsbykmJihwPU1hdGgubWF4KHAsaSoodFt4LnNpZGVdLWNbcl0pK28pKX0pLHA9TWF0aC5taW4oaCxwKX1pZihwPjB8fGg8MCl7dmFyIHY9e2xlZnQ6Wy1wLDBdLHJpZ2h0OltwLDBdLHRvcDpbMCwtcF0sYm90dG9tOlswLHBdfVt4LnNpZGVdO2UuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrdisiKSIpfX19cmV0dXJuIEkuY2FsbChEKSxPJiYoUz9JLm9uKCIub3BhY2l0eSIsbnVsbCk6KFQ9MCxNPSEwLEkudGV4dChtKS5vbigibW91c2VvdmVyLm9wYWNpdHkiLGZ1bmN0aW9uKCl7bi5zZWxlY3QodGhpcykudHJhbnNpdGlvbigpLmR1cmF0aW9uKGguU0hPV19QTEFDRUhPTERFUikuc3R5bGUoIm9wYWNpdHkiLDEpfSkub24oIm1vdXNlb3V0Lm9wYWNpdHkiLGZ1bmN0aW9uKCl7bi5zZWxlY3QodGhpcykudHJhbnNpdGlvbigpLmR1cmF0aW9uKGguSElERV9QTEFDRUhPTERFUikuc3R5bGUoIm9wYWNpdHkiLDApfSkpLEkuY2FsbCh1Lm1ha2VFZGl0YWJsZSx7Z2Q6dH0pLm9uKCJlZGl0IixmdW5jdGlvbihlKXt2b2lkIDAhPT15P28uY2FsbCgiX2d1aVJlc3R5bGUiLHQsdixlLHkpOm8uY2FsbCgiX2d1aVJlbGF5b3V0Iix0LHYsZSl9KS5vbigiY2FuY2VsIixmdW5jdGlvbigpe3RoaXMudGV4dCh0aGlzLmF0dHIoImRhdGEtdW5mb3JtYXR0ZWQiKSkuY2FsbChEKX0pLm9uKCJpbnB1dCIsZnVuY3Rpb24odCl7dGhpcy50ZXh0KHR8fCIgIikuY2FsbCh1LnBvc2l0aW9uVGV4dCxiLngsYi55KX0pKSxJLmNsYXNzZWQoImpzLXBsYWNlaG9sZGVyIixNKSx3fX19LHsiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCI6Njg2LCIuLi8uLi9jb25zdGFudHMvaW50ZXJhY3Rpb25zIjo2OTIsIi4uLy4uL2xpYiI6NzE3LCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjc0MSwiLi4vLi4vcGxvdHMvcGxvdHMiOjgyNiwiLi4vLi4vcmVnaXN0cnkiOjg0NiwiLi4vY29sb3IiOjU5MiwiLi4vZHJhd2luZyI6NjEzLGQzOjE2NSwiZmFzdC1pc251bWVyaWMiOjIyOH1dLDY4MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9mb250X2F0dHJpYnV0ZXMiKSxhPXQoIi4uL2NvbG9yL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LG89dCgiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyIpLm92ZXJyaWRlQWxsLHM9dCgiLi4vLi4vcGxvdHMvcGFkX2F0dHJpYnV0ZXMiKSxsPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKS50ZW1wbGF0ZWRBcnJheSxjPWwoImJ1dHRvbiIse3Zpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4ifSxtZXRob2Q6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInJlc3R5bGUiLCJyZWxheW91dCIsImFuaW1hdGUiLCJ1cGRhdGUiLCJza2lwIl0sZGZsdDoicmVzdHlsZSJ9LGFyZ3M6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGZyZWVMZW5ndGg6ITAsaXRlbXM6W3t2YWxUeXBlOiJhbnkifSx7dmFsVHlwZToiYW55In0se3ZhbFR5cGU6ImFueSJ9XX0sYXJnczI6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGZyZWVMZW5ndGg6ITAsaXRlbXM6W3t2YWxUeXBlOiJhbnkifSx7dmFsVHlwZToiYW55In0se3ZhbFR5cGU6ImFueSJ9XX0sbGFiZWw6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIn0sZXhlY3V0ZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMH19KTtlLmV4cG9ydHM9byhsKCJ1cGRhdGVtZW51Iix7X2FycmF5QXR0clJlZ2V4cHM6Wy9edXBkYXRlbWVudXNcWygwfFsxLTldWzAtOV0rKVxdXC5idXR0b25zL10sdmlzaWJsZTp7dmFsVHlwZToiYm9vbGVhbiJ9LHR5cGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImRyb3Bkb3duIiwiYnV0dG9ucyJdLGRmbHQ6ImRyb3Bkb3duIn0sZGlyZWN0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJsZWZ0IiwicmlnaHQiLCJ1cCIsImRvd24iXSxkZmx0OiJkb3duIn0sYWN0aXZlOnt2YWxUeXBlOiJpbnRlZ2VyIixtaW46LTEsZGZsdDowfSxzaG93YWN0aXZlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfSxidXR0b25zOmMseDp7dmFsVHlwZToibnVtYmVyIixtaW46LTIsbWF4OjMsZGZsdDotLjA1fSx4YW5jaG9yOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhdXRvIiwibGVmdCIsImNlbnRlciIsInJpZ2h0Il0sZGZsdDoicmlnaHQifSx5Ont2YWxUeXBlOiJudW1iZXIiLG1pbjotMixtYXg6MyxkZmx0OjF9LHlhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImF1dG8iLCJ0b3AiLCJtaWRkbGUiLCJib3R0b20iXSxkZmx0OiJ0b3AifSxwYWQ6aShzKHtlZGl0VHlwZToiYXJyYXlkcmF3In0pLHt9KSxmb250Om4oe30pLGJnY29sb3I6e3ZhbFR5cGU6ImNvbG9yIn0sYm9yZGVyY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmEuYm9yZGVyTGluZX0sYm9yZGVyd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxLGVkaXRUeXBlOiJhcnJheWRyYXcifX0pLCJhcnJheWRyYXciLCJmcm9tLXJvb3QiKX0seyIuLi8uLi9saWIvZXh0ZW5kIjo3MDgsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjc0OCwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NzU1LCIuLi8uLi9wbG90cy9mb250X2F0dHJpYnV0ZXMiOjc5MSwiLi4vLi4vcGxvdHMvcGFkX2F0dHJpYnV0ZXMiOjgyNSwiLi4vY29sb3IvYXR0cmlidXRlcyI6NTkxfV0sNjgxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bmFtZToidXBkYXRlbWVudXMiLGNvbnRhaW5lckNsYXNzTmFtZToidXBkYXRlbWVudS1jb250YWluZXIiLGhlYWRlckdyb3VwQ2xhc3NOYW1lOiJ1cGRhdGVtZW51LWhlYWRlci1ncm91cCIsaGVhZGVyQ2xhc3NOYW1lOiJ1cGRhdGVtZW51LWhlYWRlciIsaGVhZGVyQXJyb3dDbGFzc05hbWU6InVwZGF0ZW1lbnUtaGVhZGVyLWFycm93Iixkcm9wZG93bkJ1dHRvbkdyb3VwQ2xhc3NOYW1lOiJ1cGRhdGVtZW51LWRyb3Bkb3duLWJ1dHRvbi1ncm91cCIsZHJvcGRvd25CdXR0b25DbGFzc05hbWU6InVwZGF0ZW1lbnUtZHJvcGRvd24tYnV0dG9uIixidXR0b25DbGFzc05hbWU6InVwZGF0ZW1lbnUtYnV0dG9uIixpdGVtUmVjdENsYXNzTmFtZToidXBkYXRlbWVudS1pdGVtLXJlY3QiLGl0ZW1UZXh0Q2xhc3NOYW1lOiJ1cGRhdGVtZW51LWl0ZW0tdGV4dCIsbWVudUluZGV4QXR0ck5hbWU6InVwZGF0ZW1lbnUtYWN0aXZlLWluZGV4IixhdXRvTWFyZ2luSWRSb290OiJ1cGRhdGVtZW51LSIsYmxhbmtIZWFkZXJPcHRzOntsYWJlbDoiICAifSxtaW5XaWR0aDozMCxtaW5IZWlnaHQ6MzAsdGV4dFBhZFg6MjQsYXJyb3dQYWRYOjE2LHJ4OjIscnk6Mix0ZXh0T2Zmc2V0WDoxMix0ZXh0T2Zmc2V0WTozLGFycm93T2Zmc2V0WDo0LGdhcEJ1dHRvbkhlYWRlcjo1LGdhcEJ1dHRvbjoyLGFjdGl2ZUNvbG9yOiIjRjRGQUZGIixob3ZlckNvbG9yOiIjRjRGQUZGIixhcnJvd1N5bWJvbDp7bGVmdDoiXHUyNWM0IixyaWdodDoiXHUyNWJhIix1cDoiXHUyNWIyIixkb3duOiJcdTI1YmMifX19LHt9XSw2ODI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiKSxpPXQoIi4vYXR0cmlidXRlcyIpLG89dCgiLi9jb25zdGFudHMiKS5uYW1lLHM9aS5idXR0b25zO2Z1bmN0aW9uIGwodCxlLHIpe2Z1bmN0aW9uIG8ocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLGkscixhKX1vKCJ2aXNpYmxlIixhKHQsZSx7bmFtZToiYnV0dG9ucyIsaGFuZGxlSXRlbURlZmF1bHRzOmN9KS5sZW5ndGg+MCkmJihvKCJhY3RpdmUiKSxvKCJkaXJlY3Rpb24iKSxvKCJ0eXBlIiksbygic2hvd2FjdGl2ZSIpLG8oIngiKSxvKCJ5Iiksbi5ub25lT3JBbGwodCxlLFsieCIsInkiXSksbygieGFuY2hvciIpLG8oInlhbmNob3IiKSxvKCJwYWQudCIpLG8oInBhZC5yIiksbygicGFkLmIiKSxvKCJwYWQubCIpLG4uY29lcmNlRm9udChvLCJmb250IixyLmZvbnQpLG8oImJnY29sb3IiLHIucGFwZXJfYmdjb2xvciksbygiYm9yZGVyY29sb3IiKSxvKCJib3JkZXJ3aWR0aCIpKX1mdW5jdGlvbiBjKHQsZSl7ZnVuY3Rpb24gcihyLGEpe3JldHVybiBuLmNvZXJjZSh0LGUscyxyLGEpfXIoInZpc2libGUiLCJza2lwIj09PXQubWV0aG9kfHxBcnJheS5pc0FycmF5KHQuYXJncykpJiYocigibWV0aG9kIikscigiYXJncyIpLHIoImFyZ3MyIikscigibGFiZWwiKSxyKCJleGVjdXRlIikpfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2EodCxlLHtuYW1lOm8saGFuZGxlSXRlbURlZmF1bHRzOmx9KX19LHsiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3Bsb3RzL2FycmF5X2NvbnRhaW5lcl9kZWZhdWx0cyI6NzYxLCIuL2F0dHJpYnV0ZXMiOjY4MCwiLi9jb25zdGFudHMiOjY4MX1dLDY4MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGE9dCgiLi4vLi4vcGxvdHMvcGxvdHMiKSxpPXQoIi4uL2NvbG9yIiksbz10KCIuLi9kcmF3aW5nIikscz10KCIuLi8uLi9saWIiKSxsPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLGM9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLmFycmF5RWRpdG9yLHU9dCgiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCIpLkxJTkVfU1BBQ0lORyxoPXQoIi4vY29uc3RhbnRzIiksZj10KCIuL3Njcm9sbGJveCIpO2Z1bmN0aW9uIHAodCl7cmV0dXJuIHQuX2luZGV4fWZ1bmN0aW9uIGQodCxlKXtyZXR1cm4rdC5hdHRyKGgubWVudUluZGV4QXR0ck5hbWUpPT09ZS5faW5kZXh9ZnVuY3Rpb24gZyh0LGUscixuLGEsaSxvLHMpe2UuYWN0aXZlPW8sYyh0LmxheW91dCxoLm5hbWUsZSkuYXBwbHlVcGRhdGUoImFjdGl2ZSIsbyksImJ1dHRvbnMiPT09ZS50eXBlP20odCxuLG51bGwsbnVsbCxlKToiZHJvcGRvd24iPT09ZS50eXBlJiYoYS5hdHRyKGgubWVudUluZGV4QXR0ck5hbWUsIi0xIiksdih0LG4sYSxpLGUpLHN8fG0odCxuLGEsaSxlKSl9ZnVuY3Rpb24gdih0LGUscixuLGEpe3ZhciBpPXMuZW5zdXJlU2luZ2xlKGUsImciLGguaGVhZGVyQ2xhc3NOYW1lLGZ1bmN0aW9uKHQpe3Quc3R5bGUoInBvaW50ZXItZXZlbnRzIiwiYWxsIil9KSxsPWEuX2RpbXMsYz1hLmFjdGl2ZSx1PWEuYnV0dG9uc1tjXXx8aC5ibGFua0hlYWRlck9wdHMsZj17eTphLnBhZC50LHlQYWQ6MCx4OmEucGFkLmwseFBhZDowLGluZGV4OjB9LHA9e3dpZHRoOmwuaGVhZGVyV2lkdGgsaGVpZ2h0OmwuaGVhZGVySGVpZ2h0fTtpLmNhbGwoeSxhLHUsdCkuY2FsbChBLGEsZixwKSxzLmVuc3VyZVNpbmdsZShlLCJ0ZXh0IixoLmhlYWRlckFycm93Q2xhc3NOYW1lLGZ1bmN0aW9uKHQpe3QuY2xhc3NlZCgidXNlci1zZWxlY3Qtbm9uZSIsITApLmF0dHIoInRleHQtYW5jaG9yIiwiZW5kIikuY2FsbChvLmZvbnQsYS5mb250KS50ZXh0KGguYXJyb3dTeW1ib2xbYS5kaXJlY3Rpb25dKX0pLmF0dHIoe3g6bC5oZWFkZXJXaWR0aC1oLmFycm93T2Zmc2V0WCthLnBhZC5sLHk6bC5oZWFkZXJIZWlnaHQvMitoLnRleHRPZmZzZXRZK2EucGFkLnR9KSxpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtyLmNhbGwoUyxTdHJpbmcoZChyLGEpPy0xOmEuX2luZGV4KSksbSh0LGUscixuLGEpfSksaS5vbigibW91c2VvdmVyIixmdW5jdGlvbigpe2kuY2FsbCh3KX0pLGkub24oIm1vdXNlb3V0IixmdW5jdGlvbigpe2kuY2FsbChrLGEpfSksby5zZXRUcmFuc2xhdGUoZSxsLmx4LGwubHkpfWZ1bmN0aW9uIG0odCxlLHIsaSxvKXtyfHwocj1lKS5hdHRyKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpO3ZhciBsPWZ1bmN0aW9uKHQpe3JldHVybi0xPT0rdC5hdHRyKGgubWVudUluZGV4QXR0ck5hbWUpfShyKSYmImJ1dHRvbnMiIT09by50eXBlP1tdOm8uYnV0dG9ucyxjPSJkcm9wZG93biI9PT1vLnR5cGU/aC5kcm9wZG93bkJ1dHRvbkNsYXNzTmFtZTpoLmJ1dHRvbkNsYXNzTmFtZSx1PXIuc2VsZWN0QWxsKCJnLiIrYykuZGF0YShzLmZpbHRlclZpc2libGUobCkpLGY9dS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoYywhMCkscD11LmV4aXQoKTsiZHJvcGRvd24iPT09by50eXBlPyhmLmF0dHIoIm9wYWNpdHkiLCIwIikudHJhbnNpdGlvbigpLmF0dHIoIm9wYWNpdHkiLCIxIikscC50cmFuc2l0aW9uKCkuYXR0cigib3BhY2l0eSIsIjAiKS5yZW1vdmUoKSk6cC5yZW1vdmUoKTt2YXIgZD0wLHY9MCxtPW8uX2RpbXMseD0tMSE9PVsidXAiLCJkb3duIl0uaW5kZXhPZihvLmRpcmVjdGlvbik7ImRyb3Bkb3duIj09PW8udHlwZSYmKHg/dj1tLmhlYWRlckhlaWdodCtoLmdhcEJ1dHRvbkhlYWRlcjpkPW0uaGVhZGVyV2lkdGgraC5nYXBCdXR0b25IZWFkZXIpLCJkcm9wZG93biI9PT1vLnR5cGUmJiJ1cCI9PT1vLmRpcmVjdGlvbiYmKHY9LWguZ2FwQnV0dG9uSGVhZGVyK2guZ2FwQnV0dG9uLW0ub3BlbkhlaWdodCksImRyb3Bkb3duIj09PW8udHlwZSYmImxlZnQiPT09by5kaXJlY3Rpb24mJihkPS1oLmdhcEJ1dHRvbkhlYWRlcitoLmdhcEJ1dHRvbi1tLm9wZW5XaWR0aCk7dmFyIGI9e3g6bS5seCtkK28ucGFkLmwseTptLmx5K3Yrby5wYWQudCx5UGFkOmguZ2FwQnV0dG9uLHhQYWQ6aC5nYXBCdXR0b24saW5kZXg6MH0sVD17bDpiLngrby5ib3JkZXJ3aWR0aCx0OmIueStvLmJvcmRlcndpZHRofTt1LmVhY2goZnVuY3Rpb24ocyxsKXt2YXIgYz1uLnNlbGVjdCh0aGlzKTtjLmNhbGwoeSxvLHMsdCkuY2FsbChBLG8sYiksYy5vbigiY2xpY2siLGZ1bmN0aW9uKCl7bi5ldmVudC5kZWZhdWx0UHJldmVudGVkfHwocy5leGVjdXRlJiYocy5hcmdzMiYmby5hY3RpdmU9PT1sPyhnKHQsbywwLGUscixpLC0xKSxhLmV4ZWN1dGVBUElDb21tYW5kKHQscy5tZXRob2Qscy5hcmdzMikpOihnKHQsbywwLGUscixpLGwpLGEuZXhlY3V0ZUFQSUNvbW1hbmQodCxzLm1ldGhvZCxzLmFyZ3MpKSksdC5lbWl0KCJwbG90bHlfYnV0dG9uY2xpY2tlZCIse21lbnU6byxidXR0b246cyxhY3RpdmU6by5hY3RpdmV9KSl9KSxjLm9uKCJtb3VzZW92ZXIiLGZ1bmN0aW9uKCl7Yy5jYWxsKHcpfSksYy5vbigibW91c2VvdXQiLGZ1bmN0aW9uKCl7Yy5jYWxsKGssbyksdS5jYWxsKF8sbyl9KX0pLHUuY2FsbChfLG8pLHg/KFQudz1NYXRoLm1heChtLm9wZW5XaWR0aCxtLmhlYWRlcldpZHRoKSxULmg9Yi55LVQudCk6KFQudz1iLngtVC5sLFQuaD1NYXRoLm1heChtLm9wZW5IZWlnaHQsbS5oZWFkZXJIZWlnaHQpKSxULmRpcmVjdGlvbj1vLmRpcmVjdGlvbixpJiYodS5zaXplKCk/ZnVuY3Rpb24odCxlLHIsbixhLGkpe3ZhciBvLHMsbCxjPWEuZGlyZWN0aW9uLHU9InVwIj09PWN8fCJkb3duIj09PWMsZj1hLl9kaW1zLHA9YS5hY3RpdmU7aWYodSlmb3Iocz0wLGw9MDtsPHA7bCsrKXMrPWYuaGVpZ2h0c1tsXStoLmdhcEJ1dHRvbjtlbHNlIGZvcihvPTAsbD0wO2w8cDtsKyspbys9Zi53aWR0aHNbbF0raC5nYXBCdXR0b247bi5lbmFibGUoaSxvLHMpLG4uaGJhciYmbi5oYmFyLmF0dHIoIm9wYWNpdHkiLCIwIikudHJhbnNpdGlvbigpLmF0dHIoIm9wYWNpdHkiLCIxIik7bi52YmFyJiZuLnZiYXIuYXR0cigib3BhY2l0eSIsIjAiKS50cmFuc2l0aW9uKCkuYXR0cigib3BhY2l0eSIsIjEiKX0oMCwwLDAsaSxvLFQpOmZ1bmN0aW9uKHQpe3ZhciBlPSEhdC5oYmFyLHI9ISF0LnZiYXI7ZSYmdC5oYmFyLnRyYW5zaXRpb24oKS5hdHRyKCJvcGFjaXR5IiwiMCIpLmVhY2goImVuZCIsZnVuY3Rpb24oKXtlPSExLHJ8fHQuZGlzYWJsZSgpfSk7ciYmdC52YmFyLnRyYW5zaXRpb24oKS5hdHRyKCJvcGFjaXR5IiwiMCIpLmVhY2goImVuZCIsZnVuY3Rpb24oKXtyPSExLGV8fHQuZGlzYWJsZSgpfSl9KGkpKX1mdW5jdGlvbiB5KHQsZSxyLG4pe3QuY2FsbCh4LGUpLmNhbGwoYixlLHIsbil9ZnVuY3Rpb24geCh0LGUpe3MuZW5zdXJlU2luZ2xlKHQsInJlY3QiLGguaXRlbVJlY3RDbGFzc05hbWUsZnVuY3Rpb24odCl7dC5hdHRyKHtyeDpoLnJ4LHJ5OmgucnksInNoYXBlLXJlbmRlcmluZyI6ImNyaXNwRWRnZXMifSl9KS5jYWxsKGkuc3Ryb2tlLGUuYm9yZGVyY29sb3IpLmNhbGwoaS5maWxsLGUuYmdjb2xvcikuc3R5bGUoInN0cm9rZS13aWR0aCIsZS5ib3JkZXJ3aWR0aCsicHgiKX1mdW5jdGlvbiBiKHQsZSxyLG4pe3ZhciBhPXMuZW5zdXJlU2luZ2xlKHQsInRleHQiLGguaXRlbVRleHRDbGFzc05hbWUsZnVuY3Rpb24odCl7dC5jbGFzc2VkKCJ1c2VyLXNlbGVjdC1ub25lIiwhMCkuYXR0cih7InRleHQtYW5jaG9yIjoic3RhcnQiLCJkYXRhLW5vdGV4IjoxfSl9KSxpPXIubGFiZWwsYz1uLl9mdWxsTGF5b3V0Ll9tZXRhO2MmJihpPXMudGVtcGxhdGVTdHJpbmcoaSxjKSksYS5jYWxsKG8uZm9udCxlLmZvbnQpLnRleHQoaSkuY2FsbChsLmNvbnZlcnRUb1RzcGFucyxuKX1mdW5jdGlvbiBfKHQsZSl7dmFyIHI9ZS5hY3RpdmU7dC5lYWNoKGZ1bmN0aW9uKHQsYSl7dmFyIG89bi5zZWxlY3QodGhpcyk7YT09PXImJmUuc2hvd2FjdGl2ZSYmby5zZWxlY3QoInJlY3QuIitoLml0ZW1SZWN0Q2xhc3NOYW1lKS5jYWxsKGkuZmlsbCxoLmFjdGl2ZUNvbG9yKX0pfWZ1bmN0aW9uIHcodCl7dC5zZWxlY3QoInJlY3QuIitoLml0ZW1SZWN0Q2xhc3NOYW1lKS5jYWxsKGkuZmlsbCxoLmhvdmVyQ29sb3IpfWZ1bmN0aW9uIGsodCxlKXt0LnNlbGVjdCgicmVjdC4iK2guaXRlbVJlY3RDbGFzc05hbWUpLmNhbGwoaS5maWxsLGUuYmdjb2xvcil9ZnVuY3Rpb24gVCh0LGUpe3ZhciByPWUuX2RpbXM9e3dpZHRoMTowLGhlaWdodDE6MCxoZWlnaHRzOltdLHdpZHRoczpbXSx0b3RhbFdpZHRoOjAsdG90YWxIZWlnaHQ6MCxvcGVuV2lkdGg6MCxvcGVuSGVpZ2h0OjAsbHg6MCxseTowfSxpPW8udGVzdGVyLnNlbGVjdEFsbCgiZy4iK2guZHJvcGRvd25CdXR0b25DbGFzc05hbWUpLmRhdGEocy5maWx0ZXJWaXNpYmxlKGUuYnV0dG9ucykpO2kuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKGguZHJvcGRvd25CdXR0b25DbGFzc05hbWUsITApO3ZhciBjPS0xIT09WyJ1cCIsImRvd24iXS5pbmRleE9mKGUuZGlyZWN0aW9uKTtpLmVhY2goZnVuY3Rpb24oYSxpKXt2YXIgcz1uLnNlbGVjdCh0aGlzKTtzLmNhbGwoeSxlLGEsdCk7dmFyIGY9cy5zZWxlY3QoIi4iK2guaXRlbVRleHRDbGFzc05hbWUpLHA9Zi5ub2RlKCkmJm8uYkJveChmLm5vZGUoKSkud2lkdGgsZD1NYXRoLm1heChwK2gudGV4dFBhZFgsaC5taW5XaWR0aCksZz1lLmZvbnQuc2l6ZSp1LHY9bC5saW5lQ291bnQoZiksbT1NYXRoLm1heChnKnYsaC5taW5IZWlnaHQpK2gudGV4dE9mZnNldFk7bT1NYXRoLmNlaWwobSksZD1NYXRoLmNlaWwoZCksci53aWR0aHNbaV09ZCxyLmhlaWdodHNbaV09bSxyLmhlaWdodDE9TWF0aC5tYXgoci5oZWlnaHQxLG0pLHIud2lkdGgxPU1hdGgubWF4KHIud2lkdGgxLGQpLGM/KHIudG90YWxXaWR0aD1NYXRoLm1heChyLnRvdGFsV2lkdGgsZCksci5vcGVuV2lkdGg9ci50b3RhbFdpZHRoLHIudG90YWxIZWlnaHQrPW0raC5nYXBCdXR0b24sci5vcGVuSGVpZ2h0Kz1tK2guZ2FwQnV0dG9uKTooci50b3RhbFdpZHRoKz1kK2guZ2FwQnV0dG9uLHIub3BlbldpZHRoKz1kK2guZ2FwQnV0dG9uLHIudG90YWxIZWlnaHQ9TWF0aC5tYXgoci50b3RhbEhlaWdodCxtKSxyLm9wZW5IZWlnaHQ9ci50b3RhbEhlaWdodCl9KSxjP3IudG90YWxIZWlnaHQtPWguZ2FwQnV0dG9uOnIudG90YWxXaWR0aC09aC5nYXBCdXR0b24sci5oZWFkZXJXaWR0aD1yLndpZHRoMStoLmFycm93UGFkWCxyLmhlYWRlckhlaWdodD1yLmhlaWdodDEsImRyb3Bkb3duIj09PWUudHlwZSYmKGM/KHIud2lkdGgxKz1oLmFycm93UGFkWCxyLnRvdGFsSGVpZ2h0PXIuaGVpZ2h0MSk6ci50b3RhbFdpZHRoPXIud2lkdGgxLHIudG90YWxXaWR0aCs9aC5hcnJvd1BhZFgpLGkucmVtb3ZlKCk7dmFyIGY9ci50b3RhbFdpZHRoK2UucGFkLmwrZS5wYWQucixwPXIudG90YWxIZWlnaHQrZS5wYWQudCtlLnBhZC5iLGQ9dC5fZnVsbExheW91dC5fc2l6ZTtyLmx4PWQubCtkLncqZS54LHIubHk9ZC50K2QuaCooMS1lLnkpO3ZhciBnPSJsZWZ0IjtzLmlzUmlnaHRBbmNob3IoZSkmJihyLmx4LT1mLGc9InJpZ2h0Iikscy5pc0NlbnRlckFuY2hvcihlKSYmKHIubHgtPWYvMixnPSJjZW50ZXIiKTt2YXIgdj0idG9wIjtzLmlzQm90dG9tQW5jaG9yKGUpJiYoci5seS09cCx2PSJib3R0b20iKSxzLmlzTWlkZGxlQW5jaG9yKGUpJiYoci5seS09cC8yLHY9Im1pZGRsZSIpLHIudG90YWxXaWR0aD1NYXRoLmNlaWwoci50b3RhbFdpZHRoKSxyLnRvdGFsSGVpZ2h0PU1hdGguY2VpbChyLnRvdGFsSGVpZ2h0KSxyLmx4PU1hdGgucm91bmQoci5seCksci5seT1NYXRoLnJvdW5kKHIubHkpLGEuYXV0b01hcmdpbih0LE0oZSkse3g6ZS54LHk6ZS55LGw6Ziooe3JpZ2h0OjEsY2VudGVyOi41fVtnXXx8MCkscjpmKih7bGVmdDoxLGNlbnRlcjouNX1bZ118fDApLGI6cCooe3RvcDoxLG1pZGRsZTouNX1bdl18fDApLHQ6cCooe2JvdHRvbToxLG1pZGRsZTouNX1bdl18fDApfSl9ZnVuY3Rpb24gTSh0KXtyZXR1cm4gaC5hdXRvTWFyZ2luSWRSb290K3QuX2luZGV4fWZ1bmN0aW9uIEEodCxlLHIsbil7bj1ufHx7fTt2YXIgYT10LnNlbGVjdCgiLiIraC5pdGVtUmVjdENsYXNzTmFtZSksaT10LnNlbGVjdCgiLiIraC5pdGVtVGV4dENsYXNzTmFtZSkscz1lLmJvcmRlcndpZHRoLGM9ci5pbmRleCxmPWUuX2RpbXM7by5zZXRUcmFuc2xhdGUodCxzK3IueCxzK3IueSk7dmFyIHA9LTEhPT1bInVwIiwiZG93biJdLmluZGV4T2YoZS5kaXJlY3Rpb24pLGQ9bi5oZWlnaHR8fChwP2YuaGVpZ2h0c1tjXTpmLmhlaWdodDEpO2EuYXR0cih7eDowLHk6MCx3aWR0aDpuLndpZHRofHwocD9mLndpZHRoMTpmLndpZHRoc1tjXSksaGVpZ2h0OmR9KTt2YXIgZz1lLmZvbnQuc2l6ZSp1LHY9KGwubGluZUNvdW50KGkpLTEpKmcvMjtsLnBvc2l0aW9uVGV4dChpLGgudGV4dE9mZnNldFgsZC8yLXYraC50ZXh0T2Zmc2V0WSkscD9yLnkrPWYuaGVpZ2h0c1tjXStyLnlQYWQ6ci54Kz1mLndpZHRoc1tjXStyLnhQYWQsci5pbmRleCsrfWZ1bmN0aW9uIFModCxlKXt0LmF0dHIoaC5tZW51SW5kZXhBdHRyTmFtZSxlfHwiLTEiKS5zZWxlY3RBbGwoImcuIitoLmRyb3Bkb3duQnV0dG9uQ2xhc3NOYW1lKS5yZW1vdmUoKX1lLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dCxyPXMuZmlsdGVyVmlzaWJsZShlW2gubmFtZV0pO2Z1bmN0aW9uIGkoZSl7YS5hdXRvTWFyZ2luKHQsTShlKSl9dmFyIG89ZS5fbWVudWxheWVyLnNlbGVjdEFsbCgiZy4iK2guY29udGFpbmVyQ2xhc3NOYW1lKS5kYXRhKHIubGVuZ3RoPjA/WzBdOltdKTtpZihvLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChoLmNvbnRhaW5lckNsYXNzTmFtZSwhMCkuc3R5bGUoImN1cnNvciIsInBvaW50ZXIiKSxvLmV4aXQoKS5lYWNoKGZ1bmN0aW9uKCl7bi5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJnLiIraC5oZWFkZXJHcm91cENsYXNzTmFtZSkuZWFjaChpKX0pLnJlbW92ZSgpLDAhPT1yLmxlbmd0aCl7dmFyIGw9by5zZWxlY3RBbGwoImcuIitoLmhlYWRlckdyb3VwQ2xhc3NOYW1lKS5kYXRhKHIscCk7bC5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoaC5oZWFkZXJHcm91cENsYXNzTmFtZSwhMCk7Zm9yKHZhciBjPXMuZW5zdXJlU2luZ2xlKG8sImciLGguZHJvcGRvd25CdXR0b25Hcm91cENsYXNzTmFtZSxmdW5jdGlvbih0KXt0LnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpfSksdT0wO3U8ci5sZW5ndGg7dSsrKXt2YXIgeT1yW3VdO1QodCx5KX12YXIgeD0idXBkYXRlbWVudXMiK2UuX3VpZCxiPW5ldyBmKHQsYyx4KTtsLmVudGVyKCkuc2l6ZSgpJiYoYy5ub2RlKCkucGFyZW50Tm9kZS5hcHBlbmRDaGlsZChjLm5vZGUoKSksYy5jYWxsKFMpKSxsLmV4aXQoKS5lYWNoKGZ1bmN0aW9uKHQpe2MuY2FsbChTKSxpKHQpfSkucmVtb3ZlKCksbC5lYWNoKGZ1bmN0aW9uKGUpe3ZhciByPW4uc2VsZWN0KHRoaXMpLGk9ImRyb3Bkb3duIj09PWUudHlwZT9jOm51bGw7YS5tYW5hZ2VDb21tYW5kT2JzZXJ2ZXIodCxlLGUuYnV0dG9ucyxmdW5jdGlvbihuKXtnKHQsZSxlLmJ1dHRvbnNbbi5pbmRleF0scixpLGIsbi5pbmRleCwhMCl9KSwiZHJvcGRvd24iPT09ZS50eXBlPyh2KHQscixjLGIsZSksZChjLGUpJiZtKHQscixjLGIsZSkpOm0odCxyLG51bGwsbnVsbCxlKX0pfX19LHsiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCI6Njg2LCIuLi8uLi9saWIiOjcxNywiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo3NDEsIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjc1NSwiLi4vLi4vcGxvdHMvcGxvdHMiOjgyNiwiLi4vY29sb3IiOjU5MiwiLi4vZHJhd2luZyI6NjEzLCIuL2NvbnN0YW50cyI6NjgxLCIuL3Njcm9sbGJveCI6Njg1LGQzOjE2NX1dLDY4NDpbZnVuY3Rpb24odCxlLHIpe2FyZ3VtZW50c1s0XVs2NzhdWzBdLmFwcGx5KHIsYXJndW1lbnRzKX0seyIuL2F0dHJpYnV0ZXMiOjY4MCwiLi9jb25zdGFudHMiOjY4MSwiLi9kZWZhdWx0cyI6NjgyLCIuL2RyYXciOjY4MyxkdXA6Njc4fV0sNjg1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1zO3ZhciBuPXQoImQzIiksYT10KCIuLi9jb2xvciIpLGk9dCgiLi4vZHJhd2luZyIpLG89dCgiLi4vLi4vbGliIik7ZnVuY3Rpb24gcyh0LGUscil7dGhpcy5nZD10LHRoaXMuY29udGFpbmVyPWUsdGhpcy5pZD1yLHRoaXMucG9zaXRpb249bnVsbCx0aGlzLnRyYW5zbGF0ZVg9bnVsbCx0aGlzLnRyYW5zbGF0ZVk9bnVsbCx0aGlzLmhiYXI9bnVsbCx0aGlzLnZiYXI9bnVsbCx0aGlzLmJnPXRoaXMuY29udGFpbmVyLnNlbGVjdEFsbCgicmVjdC5zY3JvbGxib3gtYmciKS5kYXRhKFswXSksdGhpcy5iZy5leGl0KCkub24oIi5kcmFnIixudWxsKS5vbigid2hlZWwiLG51bGwpLnJlbW92ZSgpLHRoaXMuYmcuZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5jbGFzc2VkKCJzY3JvbGxib3gtYmciLCEwKS5zdHlsZSgicG9pbnRlci1ldmVudHMiLCJhbGwiKS5hdHRyKHtvcGFjaXR5OjAseDowLHk6MCx3aWR0aDowLGhlaWdodDowfSl9cy5iYXJXaWR0aD0yLHMuYmFyTGVuZ3RoPTIwLHMuYmFyUmFkaXVzPTIscy5iYXJQYWQ9MSxzLmJhckNvbG9yPSIjODA4QkE0IixzLnByb3RvdHlwZS5lbmFibGU9ZnVuY3Rpb24odCxlLHIpe3ZhciBvPXRoaXMuZ2QuX2Z1bGxMYXlvdXQsbD1vLndpZHRoLGM9by5oZWlnaHQ7dGhpcy5wb3NpdGlvbj10O3ZhciB1LGgsZixwLGQ9dGhpcy5wb3NpdGlvbi5sLGc9dGhpcy5wb3NpdGlvbi53LHY9dGhpcy5wb3NpdGlvbi50LG09dGhpcy5wb3NpdGlvbi5oLHk9dGhpcy5wb3NpdGlvbi5kaXJlY3Rpb24seD0iZG93biI9PT15LGI9ImxlZnQiPT09eSxfPSJ1cCI9PT15LHc9ZyxrPW07eHx8Ynx8InJpZ2h0Ij09PXl8fF98fCh0aGlzLnBvc2l0aW9uLmRpcmVjdGlvbj0iZG93biIseD0hMCkseHx8Xz8oaD0odT1kKSt3LHg/KGY9dixrPShwPU1hdGgubWluKGYrayxjKSktZik6az0ocD12K2spLShmPU1hdGgubWF4KHAtaywwKSkpOihwPShmPXYpK2ssYj93PShoPWQrdyktKHU9TWF0aC5tYXgoaC13LDApKToodT1kLHc9KGg9TWF0aC5taW4odSt3LGwpKS11KSksdGhpcy5fYm94PXtsOnUsdDpmLHc6dyxoOmt9O3ZhciBUPWc+dyxNPXMuYmFyTGVuZ3RoKzIqcy5iYXJQYWQsQT1zLmJhcldpZHRoKzIqcy5iYXJQYWQsUz1kLEU9dittO0UrQT5jJiYoRT1jLUEpO3ZhciBMPXRoaXMuY29udGFpbmVyLnNlbGVjdEFsbCgicmVjdC5zY3JvbGxiYXItaG9yaXpvbnRhbCIpLmRhdGEoVD9bMF06W10pO0wuZXhpdCgpLm9uKCIuZHJhZyIsbnVsbCkucmVtb3ZlKCksTC5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmNsYXNzZWQoInNjcm9sbGJhci1ob3Jpem9udGFsIiwhMCkuY2FsbChhLmZpbGwscy5iYXJDb2xvciksVD8odGhpcy5oYmFyPUwuYXR0cih7cng6cy5iYXJSYWRpdXMscnk6cy5iYXJSYWRpdXMseDpTLHk6RSx3aWR0aDpNLGhlaWdodDpBfSksdGhpcy5faGJhclhNaW49UytNLzIsdGhpcy5faGJhclRyYW5zbGF0ZU1heD13LU0pOihkZWxldGUgdGhpcy5oYmFyLGRlbGV0ZSB0aGlzLl9oYmFyWE1pbixkZWxldGUgdGhpcy5faGJhclRyYW5zbGF0ZU1heCk7dmFyIEM9bT5rLFA9cy5iYXJXaWR0aCsyKnMuYmFyUGFkLE89cy5iYXJMZW5ndGgrMipzLmJhclBhZCx6PWQrZyxJPXY7eitQPmwmJih6PWwtUCk7dmFyIEQ9dGhpcy5jb250YWluZXIuc2VsZWN0QWxsKCJyZWN0LnNjcm9sbGJhci12ZXJ0aWNhbCIpLmRhdGEoQz9bMF06W10pO0QuZXhpdCgpLm9uKCIuZHJhZyIsbnVsbCkucmVtb3ZlKCksRC5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmNsYXNzZWQoInNjcm9sbGJhci12ZXJ0aWNhbCIsITApLmNhbGwoYS5maWxsLHMuYmFyQ29sb3IpLEM/KHRoaXMudmJhcj1ELmF0dHIoe3J4OnMuYmFyUmFkaXVzLHJ5OnMuYmFyUmFkaXVzLHg6eix5Okksd2lkdGg6UCxoZWlnaHQ6T30pLHRoaXMuX3ZiYXJZTWluPUkrTy8yLHRoaXMuX3ZiYXJUcmFuc2xhdGVNYXg9ay1PKTooZGVsZXRlIHRoaXMudmJhcixkZWxldGUgdGhpcy5fdmJhcllNaW4sZGVsZXRlIHRoaXMuX3ZiYXJUcmFuc2xhdGVNYXgpO3ZhciBSPXRoaXMuaWQsRj11LS41LEI9Qz9oK1ArLjU6aCsuNSxOPWYtLjUsaj1UP3ArQSsuNTpwKy41LFY9by5fdG9wZGVmcy5zZWxlY3RBbGwoIiMiK1IpLmRhdGEoVHx8Qz9bMF06W10pO2lmKFYuZXhpdCgpLnJlbW92ZSgpLFYuZW50ZXIoKS5hcHBlbmQoImNsaXBQYXRoIikuYXR0cigiaWQiLFIpLmFwcGVuZCgicmVjdCIpLFR8fEM/KHRoaXMuX2NsaXBSZWN0PVYuc2VsZWN0KCJyZWN0IikuYXR0cih7eDpNYXRoLmZsb29yKEYpLHk6TWF0aC5mbG9vcihOKSx3aWR0aDpNYXRoLmNlaWwoQiktTWF0aC5mbG9vcihGKSxoZWlnaHQ6TWF0aC5jZWlsKGopLU1hdGguZmxvb3IoTil9KSx0aGlzLmNvbnRhaW5lci5jYWxsKGkuc2V0Q2xpcFVybCxSLHRoaXMuZ2QpLHRoaXMuYmcuYXR0cih7eDpkLHk6dix3aWR0aDpnLGhlaWdodDptfSkpOih0aGlzLmJnLmF0dHIoe3dpZHRoOjAsaGVpZ2h0OjB9KSx0aGlzLmNvbnRhaW5lci5vbigid2hlZWwiLG51bGwpLm9uKCIuZHJhZyIsbnVsbCkuY2FsbChpLnNldENsaXBVcmwsbnVsbCksZGVsZXRlIHRoaXMuX2NsaXBSZWN0KSxUfHxDKXt2YXIgVT1uLmJlaGF2aW9yLmRyYWcoKS5vbigiZHJhZ3N0YXJ0IixmdW5jdGlvbigpe24uZXZlbnQuc291cmNlRXZlbnQucHJldmVudERlZmF1bHQoKX0pLm9uKCJkcmFnIix0aGlzLl9vbkJveERyYWcuYmluZCh0aGlzKSk7dGhpcy5jb250YWluZXIub24oIndoZWVsIixudWxsKS5vbigid2hlZWwiLHRoaXMuX29uQm94V2hlZWwuYmluZCh0aGlzKSkub24oIi5kcmFnIixudWxsKS5jYWxsKFUpO3ZhciBxPW4uYmVoYXZpb3IuZHJhZygpLm9uKCJkcmFnc3RhcnQiLGZ1bmN0aW9uKCl7bi5ldmVudC5zb3VyY2VFdmVudC5wcmV2ZW50RGVmYXVsdCgpLG4uZXZlbnQuc291cmNlRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCl9KS5vbigiZHJhZyIsdGhpcy5fb25CYXJEcmFnLmJpbmQodGhpcykpO1QmJnRoaXMuaGJhci5vbigiLmRyYWciLG51bGwpLmNhbGwocSksQyYmdGhpcy52YmFyLm9uKCIuZHJhZyIsbnVsbCkuY2FsbChxKX10aGlzLnNldFRyYW5zbGF0ZShlLHIpfSxzLnByb3RvdHlwZS5kaXNhYmxlPWZ1bmN0aW9uKCl7KHRoaXMuaGJhcnx8dGhpcy52YmFyKSYmKHRoaXMuYmcuYXR0cih7d2lkdGg6MCxoZWlnaHQ6MH0pLHRoaXMuY29udGFpbmVyLm9uKCJ3aGVlbCIsbnVsbCkub24oIi5kcmFnIixudWxsKS5jYWxsKGkuc2V0Q2xpcFVybCxudWxsKSxkZWxldGUgdGhpcy5fY2xpcFJlY3QpLHRoaXMuaGJhciYmKHRoaXMuaGJhci5vbigiLmRyYWciLG51bGwpLHRoaXMuaGJhci5yZW1vdmUoKSxkZWxldGUgdGhpcy5oYmFyLGRlbGV0ZSB0aGlzLl9oYmFyWE1pbixkZWxldGUgdGhpcy5faGJhclRyYW5zbGF0ZU1heCksdGhpcy52YmFyJiYodGhpcy52YmFyLm9uKCIuZHJhZyIsbnVsbCksdGhpcy52YmFyLnJlbW92ZSgpLGRlbGV0ZSB0aGlzLnZiYXIsZGVsZXRlIHRoaXMuX3ZiYXJZTWluLGRlbGV0ZSB0aGlzLl92YmFyVHJhbnNsYXRlTWF4KX0scy5wcm90b3R5cGUuX29uQm94RHJhZz1mdW5jdGlvbigpe3ZhciB0PXRoaXMudHJhbnNsYXRlWCxlPXRoaXMudHJhbnNsYXRlWTt0aGlzLmhiYXImJih0LT1uLmV2ZW50LmR4KSx0aGlzLnZiYXImJihlLT1uLmV2ZW50LmR5KSx0aGlzLnNldFRyYW5zbGF0ZSh0LGUpfSxzLnByb3RvdHlwZS5fb25Cb3hXaGVlbD1mdW5jdGlvbigpe3ZhciB0PXRoaXMudHJhbnNsYXRlWCxlPXRoaXMudHJhbnNsYXRlWTt0aGlzLmhiYXImJih0Kz1uLmV2ZW50LmRlbHRhWSksdGhpcy52YmFyJiYoZSs9bi5ldmVudC5kZWx0YVkpLHRoaXMuc2V0VHJhbnNsYXRlKHQsZSl9LHMucHJvdG90eXBlLl9vbkJhckRyYWc9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnRyYW5zbGF0ZVgsZT10aGlzLnRyYW5zbGF0ZVk7aWYodGhpcy5oYmFyKXt2YXIgcj10K3RoaXMuX2hiYXJYTWluLGE9cit0aGlzLl9oYmFyVHJhbnNsYXRlTWF4O3Q9KG8uY29uc3RyYWluKG4uZXZlbnQueCxyLGEpLXIpLyhhLXIpKih0aGlzLnBvc2l0aW9uLnctdGhpcy5fYm94LncpfWlmKHRoaXMudmJhcil7dmFyIGk9ZSt0aGlzLl92YmFyWU1pbixzPWkrdGhpcy5fdmJhclRyYW5zbGF0ZU1heDtlPShvLmNvbnN0cmFpbihuLmV2ZW50LnksaSxzKS1pKS8ocy1pKSoodGhpcy5wb3NpdGlvbi5oLXRoaXMuX2JveC5oKX10aGlzLnNldFRyYW5zbGF0ZSh0LGUpfSxzLnByb3RvdHlwZS5zZXRUcmFuc2xhdGU9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLnBvc2l0aW9uLnctdGhpcy5fYm94Lncsbj10aGlzLnBvc2l0aW9uLmgtdGhpcy5fYm94Lmg7aWYodD1vLmNvbnN0cmFpbih0fHwwLDAsciksZT1vLmNvbnN0cmFpbihlfHwwLDAsbiksdGhpcy50cmFuc2xhdGVYPXQsdGhpcy50cmFuc2xhdGVZPWUsdGhpcy5jb250YWluZXIuY2FsbChpLnNldFRyYW5zbGF0ZSx0aGlzLl9ib3gubC10aGlzLnBvc2l0aW9uLmwtdCx0aGlzLl9ib3gudC10aGlzLnBvc2l0aW9uLnQtZSksdGhpcy5fY2xpcFJlY3QmJnRoaXMuX2NsaXBSZWN0LmF0dHIoe3g6TWF0aC5mbG9vcih0aGlzLnBvc2l0aW9uLmwrdC0uNSkseTpNYXRoLmZsb29yKHRoaXMucG9zaXRpb24udCtlLS41KX0pLHRoaXMuaGJhcil7dmFyIGE9dC9yO3RoaXMuaGJhci5jYWxsKGkuc2V0VHJhbnNsYXRlLHQrYSp0aGlzLl9oYmFyVHJhbnNsYXRlTWF4LGUpfWlmKHRoaXMudmJhcil7dmFyIHM9ZS9uO3RoaXMudmJhci5jYWxsKGkuc2V0VHJhbnNsYXRlLHQsZStzKnRoaXMuX3ZiYXJUcmFuc2xhdGVNYXgpfX19LHsiLi4vLi4vbGliIjo3MTcsIi4uL2NvbG9yIjo1OTIsIi4uL2RyYXdpbmciOjYxMyxkMzoxNjV9XSw2ODY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtGUk9NX0JMOntsZWZ0OjAsY2VudGVyOi41LHJpZ2h0OjEsYm90dG9tOjAsbWlkZGxlOi41LHRvcDoxfSxGUk9NX1RMOntsZWZ0OjAsY2VudGVyOi41LHJpZ2h0OjEsYm90dG9tOjEsbWlkZGxlOi41LHRvcDowfSxGUk9NX0JSOntsZWZ0OjEsY2VudGVyOi41LHJpZ2h0OjAsYm90dG9tOjAsbWlkZGxlOi41LHRvcDoxfSxMSU5FX1NQQUNJTkc6MS4zLENBUF9TSElGVDouNyxNSURfU0hJRlQ6LjM1LE9QUE9TSVRFX1NJREU6e2xlZnQ6InJpZ2h0IixyaWdodDoibGVmdCIsdG9wOiJib3R0b20iLGJvdHRvbToidG9wIn19fSx7fV0sNjg3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17SU5DUkVBU0lORzp7Q09MT1I6IiMzRDk5NzAiLFNZTUJPTDoiXHUyNWIyIn0sREVDUkVBU0lORzp7Q09MT1I6IiNGRjQxMzYiLFNZTUJPTDoiXHUyNWJjIn19fSx7fV0sNjg4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17Rk9STUFUX0xJTks6Imh0dHBzOi8vZ2l0aHViLmNvbS9kMy9kMy0zLngtYXBpLXJlZmVyZW5jZS9ibG9iL21hc3Rlci9Gb3JtYXR0aW5nLm1kI2QzX2Zvcm1hdCIsREFURV9GT1JNQVRfTElOSzoiaHR0cHM6Ly9naXRodWIuY29tL2QzL2QzLTMueC1hcGktcmVmZXJlbmNlL2Jsb2IvbWFzdGVyL1RpbWUtRm9ybWF0dGluZy5tZCNmb3JtYXQifX0se31dLDY4OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e0NPTVBBUklTT05fT1BTOlsiPSIsIiE9IiwiPCIsIj49IiwiPiIsIjw9Il0sQ09NUEFSSVNPTl9PUFMyOlsiPSIsIjwiLCI+PSIsIj4iLCI8PSJdLElOVEVSVkFMX09QUzpbIltdIiwiKCkiLCJbKSIsIihdIiwiXVsiLCIpKCIsIl0oIiwiKVsiXSxTRVRfT1BTOlsie30iLCJ9eyJdLENPTlNUUkFJTlRfUkVEVUNUSU9OOnsiPSI6Ij0iLCI8IjoiPCIsIjw9IjoiPCIsIj4iOiI+IiwiPj0iOiI+IiwiW10iOiJbXSIsIigpIjoiW10iLCJbKSI6IltdIiwiKF0iOiJbXSIsIl1bIjoiXVsiLCIpKCI6Il1bIiwiXSgiOiJdWyIsIilbIjoiXVsifX19LHt9XSw2OTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtzb2xpZDpbW10sMF0sZG90OltbLjUsMV0sMjAwXSxkYXNoOltbLjUsMV0sNTBdLGxvbmdkYXNoOltbLjUsMV0sMTBdLGRhc2hkb3Q6W1suNSwuNjI1LC44NzUsMV0sNTBdLGxvbmdkYXNoZG90OltbLjUsLjcsLjgsMV0sMTBdfX0se31dLDY5MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2NpcmNsZToiXHUyNWNmIiwiY2lyY2xlLW9wZW4iOiJcdTI1Y2IiLHNxdWFyZToiXHUyNWEwIiwic3F1YXJlLW9wZW4iOiJcdTI1YTEiLGRpYW1vbmQ6Ilx1MjVjNiIsImRpYW1vbmQtb3BlbiI6Ilx1MjVjNyIsY3Jvc3M6IisiLHg6Ilx1Mjc0YyJ9fSx7fV0sNjkyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17U0hPV19QTEFDRUhPTERFUjoxMDAsSElERV9QTEFDRUhPTERFUjoxZTMsREVTRUxFQ1RESU06LjJ9fSx7fV0sNjkzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17QkFETlVNOnZvaWQgMCxGUF9TQUZFOk51bWJlci5NQVhfVkFMVUUvMWU0LE9ORUFWR1lFQVI6MzE1NTc2ZTUsT05FQVZHTU9OVEg6MjYyOThlNSxPTkVEQVk6ODY0ZTUsT05FSE9VUjozNmU1LE9ORU1JTjo2ZTQsT05FU0VDOjFlMyxFUE9DSEpEOjI0NDA1ODcuNSxBTE1PU1RfRVFVQUw6MS0xZS02LExPR19DTElQOjEwLE1JTlVTX1NJR046Ilx1MjIxMiJ9fSx7fV0sNjk0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3IueG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvIixyLnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHIueGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHIuc3ZnQXR0cnM9e3htbG5zOnIuc3ZnLCJ4bWxuczp4bGluayI6ci54bGlua319LHt9XSw2OTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ci52ZXJzaW9uPSIxLjUyLjIiLHQoImVzNi1wcm9taXNlIikucG9seWZpbGwoKSx0KCIuLi9idWlsZC9wbG90Y3NzIiksdCgiLi9mb250cy9tYXRoamF4X2NvbmZpZyIpKCk7Zm9yKHZhciBuPXQoIi4vcmVnaXN0cnkiKSxhPXIucmVnaXN0ZXI9bi5yZWdpc3RlcixpPXQoIi4vcGxvdF9hcGkiKSxvPU9iamVjdC5rZXlzKGkpLHM9MDtzPG8ubGVuZ3RoO3MrKyl7dmFyIGw9b1tzXTsiXyIhPT1sLmNoYXJBdCgwKSYmKHJbbF09aVtsXSksYSh7bW9kdWxlVHlwZToiYXBpTWV0aG9kIixuYW1lOmwsZm46aVtsXX0pfWEodCgiLi90cmFjZXMvc2NhdHRlciIpKSxhKFt0KCIuL2NvbXBvbmVudHMvZngiKSx0KCIuL2NvbXBvbmVudHMvbGVnZW5kIiksdCgiLi9jb21wb25lbnRzL2Fubm90YXRpb25zIiksdCgiLi9jb21wb25lbnRzL2Fubm90YXRpb25zM2QiKSx0KCIuL2NvbXBvbmVudHMvc2hhcGVzIiksdCgiLi9jb21wb25lbnRzL2ltYWdlcyIpLHQoIi4vY29tcG9uZW50cy91cGRhdGVtZW51cyIpLHQoIi4vY29tcG9uZW50cy9zbGlkZXJzIiksdCgiLi9jb21wb25lbnRzL3Jhbmdlc2xpZGVyIiksdCgiLi9jb21wb25lbnRzL3Jhbmdlc2VsZWN0b3IiKSx0KCIuL2NvbXBvbmVudHMvZ3JpZCIpLHQoIi4vY29tcG9uZW50cy9lcnJvcmJhcnMiKSx0KCIuL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLHQoIi4vY29tcG9uZW50cy9jb2xvcmJhciIpXSksYShbdCgiLi9sb2NhbGUtZW4iKSx0KCIuL2xvY2FsZS1lbi11cyIpXSksd2luZG93LlBsb3RseUxvY2FsZXMmJkFycmF5LmlzQXJyYXkod2luZG93LlBsb3RseUxvY2FsZXMpJiYoYSh3aW5kb3cuUGxvdGx5TG9jYWxlcyksZGVsZXRlIHdpbmRvdy5QbG90bHlMb2NhbGVzKSxyLkljb25zPXQoIi4vZm9udHMvcGxvdGljb24iKSxyLlBsb3RzPXQoIi4vcGxvdHMvcGxvdHMiKSxyLkZ4PXQoIi4vY29tcG9uZW50cy9meCIpLHIuU25hcHNob3Q9dCgiLi9zbmFwc2hvdCIpLHIuUGxvdFNjaGVtYT10KCIuL3Bsb3RfYXBpL3Bsb3Rfc2NoZW1hIiksci5RdWV1ZT10KCIuL2xpYi9xdWV1ZSIpLHIuZDM9dCgiZDMiKX0seyIuLi9idWlsZC9wbG90Y3NzIjoxLCIuL2NvbXBvbmVudHMvYW5ub3RhdGlvbnMiOjU4MywiLi9jb21wb25lbnRzL2Fubm90YXRpb25zM2QiOjU4OCwiLi9jb21wb25lbnRzL2NvbG9yYmFyIjo1OTgsIi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIjo2MDQsIi4vY29tcG9uZW50cy9lcnJvcmJhcnMiOjYxOSwiLi9jb21wb25lbnRzL2Z4Ijo2MzAsIi4vY29tcG9uZW50cy9ncmlkIjo2MzQsIi4vY29tcG9uZW50cy9pbWFnZXMiOjYzOSwiLi9jb21wb25lbnRzL2xlZ2VuZCI6NjQ3LCIuL2NvbXBvbmVudHMvcmFuZ2VzZWxlY3RvciI6NjU4LCIuL2NvbXBvbmVudHMvcmFuZ2VzbGlkZXIiOjY2NSwiLi9jb21wb25lbnRzL3NoYXBlcyI6NjczLCIuL2NvbXBvbmVudHMvc2xpZGVycyI6Njc4LCIuL2NvbXBvbmVudHMvdXBkYXRlbWVudXMiOjY4NCwiLi9mb250cy9tYXRoamF4X2NvbmZpZyI6Njk2LCIuL2ZvbnRzL3Bsb3RpY29uIjo2OTcsIi4vbGliL3F1ZXVlIjo3MzIsIi4vbG9jYWxlLWVuIjo3NDYsIi4vbG9jYWxlLWVuLXVzIjo3NDUsIi4vcGxvdF9hcGkiOjc1MCwiLi9wbG90X2FwaS9wbG90X3NjaGVtYSI6NzU0LCIuL3Bsb3RzL3Bsb3RzIjo4MjYsIi4vcmVnaXN0cnkiOjg0NiwiLi9zbmFwc2hvdCI6ODUxLCIuL3RyYWNlcy9zY2F0dGVyIjoxMTMyLGQzOjE2NSwiZXM2LXByb21pc2UiOjIyMX1dLDY5NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oKXsidW5kZWZpbmVkIiE9dHlwZW9mIE1hdGhKYXgmJigibG9jYWwiIT09KHdpbmRvdy5QbG90bHlDb25maWd8fHt9KS5NYXRoSmF4Q29uZmlnJiYoTWF0aEpheC5IdWIuQ29uZmlnKHttZXNzYWdlU3R5bGU6Im5vbmUiLHNraXBTdGFydHVwVHlwZXNldDohMCxkaXNwbGF5QWxpZ246ImxlZnQiLHRleDJqYXg6e2lubGluZU1hdGg6W1siJCIsIiQiXSxbIlxcKCIsIlxcKSJdXX19KSxNYXRoSmF4Lkh1Yi5Db25maWd1cmVkKCkpKX19LHt9XSw2OTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXt1bmRvOnt3aWR0aDo4NTcuMSxoZWlnaHQ6MWUzLHBhdGg6Im04NTcgMzUwcTAtODctMzQtMTY2dC05MS0xMzctMTM3LTkyLTE2Ni0zNHEtOTYgMC0xODMgNDF0LTE0NyAxMTRxLTQgNi00IDEzdDUgMTFsNzYgNzdxNiA1IDE0IDUgOS0xIDEzLTcgNDEtNTMgMTAwLTgydDEyNi0yOXE1OCAwIDExMCAyM3Q5MiA2MSA2MSA5MSAyMiAxMTEtMjIgMTExLTYxIDkxLTkyIDYxLTExMCAyM3EtNTUgMC0xMDUtMjB0LTkwLTU3bDc3LTc3cTE3LTE2IDgtMzgtMTAtMjMtMzMtMjNoLTI1MHEtMTUgMC0yNSAxMXQtMTEgMjV2MjUwcTAgMjQgMjIgMzMgMjIgMTAgMzktOGw3Mi03MnE2MCA1NyAxMzcgODh0MTU5IDMxcTg3IDAgMTY2LTM0dDEzNy05MiA5MS0xMzcgMzQtMTY2eiIsdHJhbnNmb3JtOiJtYXRyaXgoMSAwIDAgLTEgMCA4NTApIn0saG9tZTp7d2lkdGg6OTI4LjYsaGVpZ2h0OjFlMyxwYXRoOiJtNzg2IDI5NnYtMjY3cTAtMTUtMTEtMjZ0LTI1LTEwaC0yMTR2MjE0aC0xNDN2LTIxNGgtMjE0cS0xNSAwLTI1IDEwdC0xMSAyNnYyNjdxMCAxIDAgMnQwIDJsMzIxIDI2NCAzMjEtMjY0cTEtMSAxLTR6IG0xMjQgMzlsLTM0LTQxcS01LTUtMTItNmgtMnEtNyAwLTEyIDNsLTM4NiAzMjItMzg2LTMyMnEtNy00LTEzLTQtNyAyLTEyIDdsLTM1IDQxcS00IDUtMyAxM3Q2IDEybDQwMSAzMzRxMTggMTUgNDIgMTV0NDMtMTVsMTM2LTExNHYxMDlxMCA4IDUgMTN0MTMgNWgxMDdxOCAwIDEzLTV0NS0xM3YtMjI3bDEyMi0xMDJxNS01IDYtMTJ0LTQtMTN6Iix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSAwIDg1MCkifSwiY2FtZXJhLXJldHJvIjp7d2lkdGg6MWUzLGhlaWdodDoxZTMscGF0aDoibTUxOCAzODZxMCA4LTUgMTN0LTEzIDVxLTM3IDAtNjMtMjd0LTI2LTYzcTAtOCA1LTEzdDEzLTUgMTIgNSA1IDEzcTAgMjMgMTYgMzh0MzggMTZxOCAwIDEzIDV0NSAxM3ogbTEyNS03M3EwLTU5LTQyLTEwMXQtMTAxLTQyLTEwMSA0Mi00MiAxMDEgNDIgMTAxIDEwMSA0MiAxMDEtNDIgNDItMTAxeiBtLTU3Mi0zMjBoODU4djcxaC04NTh2LTcxeiBtNjQzIDMyMHEwIDg5LTYyIDE1MnQtMTUyIDYyLTE1MS02Mi02My0xNTIgNjMtMTUxIDE1MS02MyAxNTIgNjMgNjIgMTUxeiBtLTU3MSAzNThoMjE0djcyaC0yMTR2LTcyeiBtLTcyLTEwN2g4NTh2MTQzaC00NjJsLTM2LTcxaC0zNjB2LTcyeiBtOTI5IDE0M3YtNzE0cTAtMzAtMjEtNTF0LTUwLTIxaC04NThxLTI5IDAtNTAgMjF0LTIxIDUxdjcxNHEwIDMwIDIxIDUxdDUwIDIxaDg1OHEyOSAwIDUwLTIxdDIxLTUxeiIsdHJhbnNmb3JtOiJtYXRyaXgoMSAwIDAgLTEgMCA4NTApIn0sem9vbWJveDp7d2lkdGg6MWUzLGhlaWdodDoxZTMscGF0aDoibTEwMDAtMjVsLTI1MCAyNTFjNDAgNjMgNjMgMTM4IDYzIDIxOCAwIDIyNC0xODIgNDA2LTQwNyA0MDYtMjI0IDAtNDA2LTE4Mi00MDYtNDA2czE4My00MDYgNDA3LTQwNmM4MCAwIDE1NSAyMiAyMTggNjJsMjUwLTI1MCAxMjUgMTI1eiBtLTgxMiAyNTBsMCA0MzggNDM3IDAgMC00MzgtNDM3IDB6IG02MiAzNzVsMzEzIDAgMC0zMTItMzEzIDAgMCAzMTJ6Iix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSAwIDg1MCkifSxwYW46e3dpZHRoOjFlMyxoZWlnaHQ6MWUzLHBhdGg6Im0xMDAwIDM1MGwtMTg3IDE4OCAwLTEyNS0yNTAgMCAwIDI1MCAxMjUgMC0xODggMTg3LTE4Ny0xODcgMTI1IDAgMC0yNTAtMjUwIDAgMCAxMjUtMTg4LTE4OCAxODYtMTg3IDAgMTI1IDI1MiAwIDAtMjUwLTEyNSAwIDE4Ny0xODggMTg4IDE4OC0xMjUgMCAwIDI1MCAyNTAgMCAwLTEyNiAxODcgMTg4eiIsdHJhbnNmb3JtOiJtYXRyaXgoMSAwIDAgLTEgMCA4NTApIn0sem9vbV9wbHVzOnt3aWR0aDo4NzUsaGVpZ2h0OjFlMyxwYXRoOiJtMSA3ODdsMC04NzUgODc1IDAgMCA4NzUtODc1IDB6IG02ODctNTAwbC0xODcgMCAwLTE4Ny0xMjUgMCAwIDE4Ny0xODggMCAwIDEyNSAxODggMCAwIDE4NyAxMjUgMCAwLTE4NyAxODcgMCAwLTEyNXoiLHRyYW5zZm9ybToibWF0cml4KDEgMCAwIC0xIDAgODUwKSJ9LHpvb21fbWludXM6e3dpZHRoOjg3NSxoZWlnaHQ6MWUzLHBhdGg6Im0wIDc4OGwwLTg3NiA4NzUgMCAwIDg3Ni04NzUgMHogbTY4OC01MDBsLTUwMCAwIDAgMTI1IDUwMCAwIDAtMTI1eiIsdHJhbnNmb3JtOiJtYXRyaXgoMSAwIDAgLTEgMCA4NTApIn0sYXV0b3NjYWxlOnt3aWR0aDoxZTMsaGVpZ2h0OjFlMyxwYXRoOiJtMjUwIDg1MGwtMTg3IDAtNjMgMCAwLTYyIDAtMTg4IDYzIDAgMCAxODggMTg3IDAgMCA2MnogbTY4OCAwbC0xODggMCAwLTYyIDE4OCAwIDAtMTg4IDYyIDAgMCAxODggMCA2Mi02MiAweiBtLTg3NS05MzhsMCAxODgtNjMgMCAwLTE4OCAwLTYyIDYzIDAgMTg3IDAgMCA2Mi0xODcgMHogbTg3NSAxODhsMC0xODgtMTg4IDAgMC02MiAxODggMCA2MiAwIDAgNjIgMCAxODgtNjIgMHogbS0xMjUgMTg4bC0xIDAtOTMtOTQtMTU2IDE1NiAxNTYgMTU2IDkyLTkzIDIgMCAwIDI1MC0yNTAgMCAwLTIgOTMtOTItMTU2LTE1Ni0xNTYgMTU2IDk0IDkyIDAgMi0yNTAgMCAwLTI1MCAwIDAgOTMgOTMgMTU3LTE1Ni0xNTctMTU2LTkzIDk0IDAgMCAwLTI1MCAyNTAgMCAwIDAtOTQgOTMgMTU2IDE1NyAxNTYtMTU3LTkzLTkzIDAgMCAyNTAgMCAwIDI1MHoiLHRyYW5zZm9ybToibWF0cml4KDEgMCAwIC0xIDAgODUwKSJ9LHRvb2x0aXBfYmFzaWM6e3dpZHRoOjE1MDAsaGVpZ2h0OjFlMyxwYXRoOiJtMzc1IDcyNWwwIDAtMzc1LTM3NSAzNzUtMzc0IDAtMSAxMTI1IDAgMCA3NTAtMTEyNSAweiIsdHJhbnNmb3JtOiJtYXRyaXgoMSAwIDAgLTEgMCA4NTApIn0sdG9vbHRpcF9jb21wYXJlOnt3aWR0aDoxMTI1LGhlaWdodDoxZTMscGF0aDoibTE4NyA3ODZsMCAyLTE4Ny0xODggMTg4LTE4NyAwIDAgOTM3IDAgMCAzNzMtOTM4IDB6IG0wLTQ5OWwwIDEtMTg3LTE4OCAxODgtMTg4IDAgMCA5MzcgMCAwIDM3Ni05MzgtMXoiLHRyYW5zZm9ybToibWF0cml4KDEgMCAwIC0xIDAgODUwKSJ9LHBsb3RseWxvZ286e3dpZHRoOjE1NDIsaGVpZ2h0OjFlMyxwYXRoOiJtMC0xMGgxODJ2LTE0MGgtMTgydjE0MHogbTIyOCAxNDZoMTgzdi0yODZoLTE4M3YyODZ6IG0yMjUgNzE0aDE4MnYtMTAwMGgtMTgydjEwMDB6IG0yMjUtMjg1aDE4MnYtNzE1aC0xODJ2NzE1eiBtMjI1IDE0MmgxODN2LTg1N2gtMTgzdjg1N3ogbTIzMS00MjhoMTgydi00MjloLTE4MnY0Mjl6IG0yMjUtMjkxaDE4M3YtMTM4aC0xODN2MTM4eiIsdHJhbnNmb3JtOiJtYXRyaXgoMSAwIDAgLTEgMCA4NTApIn0sInotYXhpcyI6e3dpZHRoOjFlMyxoZWlnaHQ6MWUzLHBhdGg6Im04MzMgNWwtMTcgMTA4djQxbC0xMzAtNjUgMTMwLTY2YzAgMCAwIDM4IDAgMzkgMC0xIDM2LTE0IDM5LTI1IDQtMTUtNi0yMi0xNi0zMC0xNS0xMi0zOS0xNi01Ni0yMC05MC0yMi0xODctMjMtMjc5LTIzLTI2MSAwLTM0MSAzNC0zNTMgNTkgMyA2MCAyMjggMTEwIDIyOCAxMTAtMTQwLTgtMzUxLTM1LTM1MS0xMTYgMC0xMjAgMjkzLTE0MiA0NzQtMTQyIDE1NSAwIDQ3NyAyMiA0NzcgMTQyIDAgNTAtNzQgNzktMTYzIDk2eiBtLTM3NCA5NGMtNTgtNS05OS0yMS05OS00MCAwLTI0IDY1LTQzIDE0NC00MyA3OSAwIDE0MyAxOSAxNDMgNDMgMCAxOS00MiAzNC05OCA0MHYyMTZoODdsLTEzMiAxMzUtMTMzLTEzNWg4OHYtMjE2eiBtMTY3IDUxNWgtMTM2djFjMTYgMTYgMzEgMzQgNDYgNTJsODQgMTA5djU0aC0yMzB2LTcxaDEyNHYtMWMtMTYtMTctMjgtMzItNDQtNTFsLTg5LTExNHYtNTFoMjQ1djcyeiIsdHJhbnNmb3JtOiJtYXRyaXgoMSAwIDAgLTEgMCA4NTApIn0sIjNkX3JvdGF0ZSI6e3dpZHRoOjFlMyxoZWlnaHQ6MWUzLHBhdGg6Im05MjIgNjYwYy01IDQtOSA3LTE0IDExLTM1OSAyNjMtNTgwLTMxLTU4MC0zMWwtMTAyIDI4IDU4LTQwMGMwIDEgMSAxIDIgMiAxMTggMTA4IDM1MSAyNDkgMzUxIDI0OXMtNjIgMjctMTAwIDQyYzg4IDgzIDIyMiAxODMgMzQ3IDEyMiAxNi04IDMwLTE3IDQ0LTI3LTIgMS00IDItNiA0eiBtMzYtMzI5YzAgMCA2NCAyMjktODggMjk2LTYyIDI3LTEyNCAxNC0xNzUtMTEgMTU3LTc4IDIyNS0yMDggMjQ5LTI2NiA4LTE5IDExLTMxIDExLTMxIDIgNSA2IDE1IDExIDMyLTUtMTMtOC0yMC04LTIweiBtLTc3NS0yMzljNzAtMzEgMTE3LTUwIDE5OC0zMi0xMjEgODAtMTk5IDM0Ni0xOTkgMzQ2bC05Ni0xNS01OC0xMmMwIDAgNTUtMjI2IDE1NS0yODd6IG02MDMgMTMzbC0zMTctMTM5YzAgMCA0LTQgMTktMTQgNy01IDI0LTE1IDI0LTE1cy0xNzctMTQ3LTM4OSA0YzIzNS0yODcgNTM2LTExMiA1MzYtMTEybDMxLTIyIDEwMCAyOTktNC0xeiBtLTI5OC0xNTNjNi00IDE0LTkgMjQtMTUgMCAwLTE3IDEwLTI0IDE1eiIsdHJhbnNmb3JtOiJtYXRyaXgoMSAwIDAgLTEgMCA4NTApIn0sY2FtZXJhOnt3aWR0aDoxZTMsaGVpZ2h0OjFlMyxwYXRoOiJtNTAwIDQ1MGMtODMgMC0xNTAtNjctMTUwLTE1MCAwLTgzIDY3LTE1MCAxNTAtMTUwIDgzIDAgMTUwIDY3IDE1MCAxNTAgMCA4My02NyAxNTAtMTUwIDE1MHogbTQwMCAxNTBoLTEyMGMtMTYgMC0zNCAxMy0zOSAyOWwtMzEgOTNjLTYgMTUtMjMgMjgtNDAgMjhoLTM0MGMtMTYgMC0zNC0xMy0zOS0yOGwtMzEtOTRjLTYtMTUtMjMtMjgtNDAtMjhoLTEyMGMtNTUgMC0xMDAtNDUtMTAwLTEwMHYtNDUwYzAtNTUgNDUtMTAwIDEwMC0xMDBoODAwYzU1IDAgMTAwIDQ1IDEwMCAxMDB2NDUwYzAgNTUtNDUgMTAwLTEwMCAxMDB6IG0tNDAwLTU1MGMtMTM4IDAtMjUwIDExMi0yNTAgMjUwIDAgMTM4IDExMiAyNTAgMjUwIDI1MCAxMzggMCAyNTAtMTEyIDI1MC0yNTAgMC0xMzgtMTEyLTI1MC0yNTAtMjUweiBtMzY1IDM4MGMtMTkgMC0zNSAxNi0zNSAzNSAwIDE5IDE2IDM1IDM1IDM1IDE5IDAgMzUtMTYgMzUtMzUgMC0xOS0xNi0zNS0zNS0zNXoiLHRyYW5zZm9ybToibWF0cml4KDEgMCAwIC0xIDAgODUwKSJ9LG1vdmllOnt3aWR0aDoxZTMsaGVpZ2h0OjFlMyxwYXRoOiJtOTM4IDQxM2wtMTg4LTEyNWMwIDM3LTE3IDcxLTQ0IDk0IDY0IDM4IDEwNyAxMDcgMTA3IDE4NyAwIDEyMS05OCAyMTktMjE5IDIxOS0xMjEgMC0yMTktOTgtMjE5LTIxOSAwLTYxIDI1LTExNyA2Ni0xNTZoLTExNWMzMCAzMyA0OSA3NiA0OSAxMjUgMCAxMDMtODQgMTg3LTE4NyAxODdzLTE4OC04NC0xODgtMTg3YzAtNTcgMjYtMTA3IDY1LTE0MS0zOC0yMi02NS02Mi02NS0xMDl2LTI1MGMwLTcwIDU2LTEyNiAxMjUtMTI2aDUwMGM2OSAwIDEyNSA1NiAxMjUgMTI2bDE4OC0xMjZjMzQgMCA2MiAyOCA2MiA2M3YzNzVjMCAzNS0yOCA2My02MiA2M3ogbS03NTAgMGMtNjkgMC0xMjUgNTYtMTI1IDEyNXM1NiAxMjUgMTI1IDEyNSAxMjUtNTYgMTI1LTEyNS01Ni0xMjUtMTI1LTEyNXogbTQwNi0xYy04NyAwLTE1NyA3MC0xNTcgMTU3IDAgODYgNzAgMTU2IDE1NyAxNTZzMTU2LTcwIDE1Ni0xNTYtNzAtMTU3LTE1Ni0xNTd6Iix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSAwIDg1MCkifSxxdWVzdGlvbjp7d2lkdGg6ODU3LjEsaGVpZ2h0OjFlMyxwYXRoOiJtNTAwIDgydjEwN3EwIDgtNSAxM3QtMTMgNWgtMTA3cS04IDAtMTMtNXQtNS0xM3YtMTA3cTAtOCA1LTEzdDEzLTVoMTA3cTggMCAxMyA1dDUgMTN6IG0xNDMgMzc1cTAgNDktMzEgOTF0LTc3IDY1LTk1IDIzcS0xMzYgMC0yMDctMTE5LTktMTQgNC0yNGw3NC01NXE0LTQgMTAtNCA5IDAgMTQgNyAzMCAzOCA0OCA1MSAxOSAxNCA0OCAxNCAyNyAwIDQ4LTE1dDIxLTMzcTAtMjEtMTEtMzR0LTM4LTI1cS0zNS0xNi02NS00OHQtMjktNzB2LTIwcTAtOCA1LTEzdDEzLTVoMTA3cTggMCAxMyA1dDUgMTNxMCAxMCAxMiAyN3QzMCAyOHExOCAxMCAyOCAxNnQyNSAxOSAyNSAyNyAxNiAzNCA3IDQ1eiBtMjE0LTEwN3EwLTExNy01Ny0yMTV0LTE1Ni0xNTYtMjE1LTU4LTIxNiA1OC0xNTUgMTU2LTU4IDIxNSA1OCAyMTUgMTU1IDE1NiAyMTYgNTggMjE1LTU4IDE1Ni0xNTYgNTctMjE1eiIsdHJhbnNmb3JtOiJtYXRyaXgoMSAwIDAgLTEgMCA4NTApIn0sZGlzazp7d2lkdGg6ODU3LjEsaGVpZ2h0OjFlMyxwYXRoOiJtMjE0LTdoNDI5djIxNGgtNDI5di0yMTR6IG01MDAgMGg3MnY1MDBxMCA4LTYgMjF0LTExIDIwbC0xNTcgMTU2cS01IDYtMTkgMTJ0LTIyIDV2LTIzMnEwLTIyLTE1LTM4dC0zOC0xNmgtMzIycS0yMiAwLTM3IDE2dC0xNiAzOHYyMzJoLTcydi03MTRoNzJ2MjMycTAgMjIgMTYgMzh0MzcgMTZoNDY1cTIyIDAgMzgtMTZ0MTUtMzh2LTIzMnogbS0yMTQgNTE4djE3OHEwIDgtNSAxM3QtMTMgNWgtMTA3cS03IDAtMTMtNXQtNS0xM3YtMTc4cTAtOCA1LTEzdDEzLTVoMTA3cTcgMCAxMyA1dDUgMTN6IG0zNTctMTh2LTUxOHEwLTIyLTE1LTM4dC0zOC0xNmgtNzUwcS0yMyAwLTM4IDE2dC0xNiAzOHY3NTBxMCAyMiAxNiAzOHQzOCAxNmg1MTdxMjMgMCA1MC0xMnQ0Mi0yNmwxNTYtMTU3cTE2LTE1IDI3LTQydDExLTQ5eiIsdHJhbnNmb3JtOiJtYXRyaXgoMSAwIDAgLTEgMCA4NTApIn0sbGFzc286e3dpZHRoOjEwMzEsaGVpZ2h0OjFlMyxwYXRoOiJtMTAxOCA1MzhjLTM2IDIwNy0yOTAgMzM2LTU2OCAyODYtMjc3LTQ4LTQ3My0yNTYtNDM2LTQ2MyAxMC01NyAzNi0xMDggNzYtMTUxLTEzLTY2IDExLTEzNyA2OC0xODMgMzQtMjggNzUtNDEgMTE0LTQybC01NS03MCAwIDBjLTItMS0zLTItNC0zLTEwLTE0LTgtMzQgNS00NSAxNC0xMSAzNC04IDQ1IDQgMSAxIDIgMyAyIDVsMCAwIDExMyAxNDBjMTYgMTEgMzEgMjQgNDUgNDAgNCAzIDYgNyA4IDExIDQ4LTMgMTAwIDAgMTUxIDkgMjc4IDQ4IDQ3MyAyNTUgNDM2IDQ2MnogbS02MjQtMzc5Yy04MCAxNC0xNDkgNDgtMTk3IDk2IDQyIDQyIDEwOSA0NyAxNTYgOSAzMy0yNiA0Ny02NiA0MS0xMDV6IG0tMTg3LTc0Yy0xOSAxNi0zMyAzNy0zOSA2MCA1MC0zMiAxMDktNTUgMTc0LTY4LTQyLTI1LTk1LTI0LTEzNSA4eiBtMzYwIDc1Yy0zNC03LTY5LTktMTAyLTggOCA2Mi0xNiAxMjgtNjggMTcwLTczIDU5LTE3NSA1NC0yNDQtNS05IDIwLTE2IDQwLTIwIDYxLTI4IDE1OSAxMjEgMzE3IDMzMyAzNTRzNDA3LTYwIDQzNC0yMTdjMjgtMTU5LTEyMS0zMTgtMzMzLTM1NXoiLHRyYW5zZm9ybToibWF0cml4KDEgMCAwIC0xIDAgODUwKSJ9LHNlbGVjdGJveDp7d2lkdGg6MWUzLGhlaWdodDoxZTMscGF0aDoibTAgODUwbDAtMTQzIDE0MyAwIDAgMTQzLTE0MyAweiBtMjg2IDBsMC0xNDMgMTQzIDAgMCAxNDMtMTQzIDB6IG0yODUgMGwwLTE0MyAxNDMgMCAwIDE0My0xNDMgMHogbTI4NiAwbDAtMTQzIDE0MyAwIDAgMTQzLTE0MyAweiBtLTg1Ny0yODZsMC0xNDMgMTQzIDAgMCAxNDMtMTQzIDB6IG04NTcgMGwwLTE0MyAxNDMgMCAwIDE0My0xNDMgMHogbS04NTctMjg1bDAtMTQzIDE0MyAwIDAgMTQzLTE0MyAweiBtODU3IDBsMC0xNDMgMTQzIDAgMCAxNDMtMTQzIDB6IG0tODU3LTI4NmwwLTE0MyAxNDMgMCAwIDE0My0xNDMgMHogbTI4NiAwbDAtMTQzIDE0MyAwIDAgMTQzLTE0MyAweiBtMjg1IDBsMC0xNDMgMTQzIDAgMCAxNDMtMTQzIDB6IG0yODYgMGwwLTE0MyAxNDMgMCAwIDE0My0xNDMgMHoiLHRyYW5zZm9ybToibWF0cml4KDEgMCAwIC0xIDAgODUwKSJ9LHNwaWtlbGluZTp7d2lkdGg6MWUzLGhlaWdodDoxZTMscGF0aDoiTTUxMiA0MDljMC01Ny00Ni0xMDQtMTAzLTEwNC01NyAwLTEwNCA0Ny0xMDQgMTA0IDAgNTcgNDcgMTAzIDEwNCAxMDMgNTcgMCAxMDMtNDYgMTAzLTEwM3ogbS0zMjctMzlsOTIgMCAwIDkyLTkyIDB6IG0tMTg1IDBsOTIgMCAwIDkyLTkyIDB6IG0zNzAtMTg2bDkyIDAgMCA5My05MiAweiBtMC0xODRsOTIgMCAwIDkyLTkyIDB6Iix0cmFuc2Zvcm06Im1hdHJpeCgxLjUgMCAwIC0xLjUgMCA4NTApIn0scGVuY2lsOnt3aWR0aDoxNzkyLGhlaWdodDoxNzkyLHBhdGg6Ik00OTEgMTUzNmw5MS05MS0yMzUtMjM1LTkxIDkxdjEwN2gxMjh2MTI4aDEwN3ptNTIzLTkyOHEwLTIyLTIyLTIyLTEwIDAtMTcgN2wtNTQyIDU0MnEtNyA3LTcgMTcgMCAyMiAyMiAyMiAxMCAwIDE3LTdsNTQyLTU0MnE3LTcgNy0xN3ptLTU0LTE5Mmw0MTYgNDE2LTgzMiA4MzJoLTQxNnYtNDE2em02ODMgOTZxMCA1My0zNyA5MGwtMTY2IDE2Ni00MTYtNDE2IDE2Ni0xNjVxMzYtMzggOTAtMzggNTMgMCA5MSAzOGwyMzUgMjM0cTM3IDM5IDM3IDkxeiIsdHJhbnNmb3JtOiJtYXRyaXgoMSAwIDAgMSAwIDEpIn0sbmV3cGxvdGx5bG9nbzp7bmFtZToibmV3cGxvdGx5bG9nbyIsc3ZnOiI8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDEzMiAxMzInPjxkZWZzPjxzdHlsZT4uY2xzLTEge2ZpbGw6ICMxMTlkZmY7fSAuY2xzLTIge2ZpbGw6ICMyNWZlZmQ7fSAuY2xzLTMge2ZpbGw6ICNmZmY7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5wbG90bHktbG9nb21hcms8L3RpdGxlPjxnIGlkPSdzeW1ib2wnPjxyZWN0IGNsYXNzPSdjbHMtMScgd2lkdGg9JzEzMicgaGVpZ2h0PScxMzInIHJ4PSc2JyByeT0nNicvPjxjaXJjbGUgY2xhc3M9J2Nscy0yJyBjeD0nNzgnIGN5PSc1NCcgcj0nNicvPjxjaXJjbGUgY2xhc3M9J2Nscy0yJyBjeD0nMTAyJyBjeT0nMzAnIHI9JzYnLz48Y2lyY2xlIGNsYXNzPSdjbHMtMicgY3g9Jzc4JyBjeT0nMzAnIHI9JzYnLz48Y2lyY2xlIGNsYXNzPSdjbHMtMicgY3g9JzU0JyBjeT0nMzAnIHI9JzYnLz48Y2lyY2xlIGNsYXNzPSdjbHMtMicgY3g9JzMwJyBjeT0nMzAnIHI9JzYnLz48Y2lyY2xlIGNsYXNzPSdjbHMtMicgY3g9JzMwJyBjeT0nNTQnIHI9JzYnLz48cGF0aCBjbGFzcz0nY2xzLTMnIGQ9J00zMCw3MmE2LDYsMCwwLDAtNiw2djI0YTYsNiwwLDAsMCwxMiwwVjc4QTYsNiwwLDAsMCwzMCw3MlonLz48cGF0aCBjbGFzcz0nY2xzLTMnIGQ9J003OCw3MmE2LDYsMCwwLDAtNiw2djI0YTYsNiwwLDAsMCwxMiwwVjc4QTYsNiwwLDAsMCw3OCw3MlonLz48cGF0aCBjbGFzcz0nY2xzLTMnIGQ9J001NCw0OGE2LDYsMCwwLDAtNiw2djQ4YTYsNiwwLDAsMCwxMiwwVjU0QTYsNiwwLDAsMCw1NCw0OFonLz48cGF0aCBjbGFzcz0nY2xzLTMnIGQ9J00xMDIsNDhhNiw2LDAsMCwwLTYsNnY0OGE2LDYsMCwwLDAsMTIsMFY1NEE2LDYsMCwwLDAsMTAyLDQ4WicvPjwvZz48L3N2Zz4ifX19LHt9XSw2OTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ci5pc0xlZnRBbmNob3I9ZnVuY3Rpb24odCl7cmV0dXJuImxlZnQiPT09dC54YW5jaG9yfHwiYXV0byI9PT10LnhhbmNob3ImJnQueDw9MS8zfSxyLmlzQ2VudGVyQW5jaG9yPWZ1bmN0aW9uKHQpe3JldHVybiJjZW50ZXIiPT09dC54YW5jaG9yfHwiYXV0byI9PT10LnhhbmNob3ImJnQueD4xLzMmJnQueDwyLzN9LHIuaXNSaWdodEFuY2hvcj1mdW5jdGlvbih0KXtyZXR1cm4icmlnaHQiPT09dC54YW5jaG9yfHwiYXV0byI9PT10LnhhbmNob3ImJnQueD49Mi8zfSxyLmlzVG9wQW5jaG9yPWZ1bmN0aW9uKHQpe3JldHVybiJ0b3AiPT09dC55YW5jaG9yfHwiYXV0byI9PT10LnlhbmNob3ImJnQueT49Mi8zfSxyLmlzTWlkZGxlQW5jaG9yPWZ1bmN0aW9uKHQpe3JldHVybiJtaWRkbGUiPT09dC55YW5jaG9yfHwiYXV0byI9PT10LnlhbmNob3ImJnQueT4xLzMmJnQueTwyLzN9LHIuaXNCb3R0b21BbmNob3I9ZnVuY3Rpb24odCl7cmV0dXJuImJvdHRvbSI9PT10LnlhbmNob3J8fCJhdXRvIj09PXQueWFuY2hvciYmdC55PD0xLzN9fSx7fV0sNjk5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vbW9kIiksYT1uLm1vZCxpPW4ubW9kSGFsZixvPU1hdGguUEkscz0yKm87ZnVuY3Rpb24gbCh0KXtyZXR1cm4gTWF0aC5hYnModFsxXS10WzBdKT5zLTFlLTE0fWZ1bmN0aW9uIGModCxlKXtyZXR1cm4gaShlLXQscyl9ZnVuY3Rpb24gdSh0LGUpe2lmKGwoZSkpcmV0dXJuITA7dmFyIHIsbjtlWzBdPGVbMV0/KHI9ZVswXSxuPWVbMV0pOihyPWVbMV0sbj1lWzBdKSwocj1hKHIscykpPihuPWEobixzKSkmJihuKz1zKTt2YXIgaT1hKHQscyksbz1pK3M7cmV0dXJuIGk+PXImJmk8PW58fG8+PXImJm88PW59ZnVuY3Rpb24gaCh0LGUscixuLGEsaSxjKXthPWF8fDAsaT1pfHwwO3ZhciB1LGgsZixwLGQsZz1sKFtyLG5dKTtmdW5jdGlvbiB2KHQsZSl7cmV0dXJuW3QqTWF0aC5jb3MoZSkrYSxpLXQqTWF0aC5zaW4oZSldfWc/KHU9MCxoPW8sZj1zKTpyPG4/KHU9cixmPW4pOih1PW4sZj1yKSx0PGU/KHA9dCxkPWUpOihwPWUsZD10KTt2YXIgbSx5PU1hdGguYWJzKGYtdSk8PW8/MDoxO2Z1bmN0aW9uIHgodCxlLHIpe3JldHVybiJBIitbdCx0XSsiICIrWzAseSxyXSsiICIrdih0LGUpfXJldHVybiBnP209bnVsbD09PXA/Ik0iK3YoZCx1KSt4KGQsaCwwKSt4KGQsZiwwKSsiWiI6Ik0iK3YocCx1KSt4KHAsaCwwKSt4KHAsZiwwKSsiWk0iK3YoZCx1KSt4KGQsaCwxKSt4KGQsZiwxKSsiWiI6bnVsbD09PXA/KG09Ik0iK3YoZCx1KSt4KGQsZiwwKSxjJiYobSs9IkwwLDBaIikpOm09Ik0iK3YocCx1KSsiTCIrdihkLHUpK3goZCxmLDApKyJMIit2KHAsZikreChwLHUsMSkrIloiLG19ZS5leHBvcnRzPXtkZWcycmFkOmZ1bmN0aW9uKHQpe3JldHVybiB0LzE4MCpvfSxyYWQyZGVnOmZ1bmN0aW9uKHQpe3JldHVybiB0L28qMTgwfSxhbmdsZURlbHRhOmMsYW5nbGVEaXN0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1hdGguYWJzKGModCxlKSl9LGlzRnVsbENpcmNsZTpsLGlzQW5nbGVJbnNpZGVTZWN0b3I6dSxpc1B0SW5zaWRlU2VjdG9yOmZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiEhdShlLG4pJiYoclswXTxyWzFdPyhhPXJbMF0saT1yWzFdKTooYT1yWzFdLGk9clswXSksdD49YSYmdDw9aSk7dmFyIGEsaX0scGF0aEFyYzpmdW5jdGlvbih0LGUscixuLGEpe3JldHVybiBoKG51bGwsdCxlLHIsbixhLDApfSxwYXRoU2VjdG9yOmZ1bmN0aW9uKHQsZSxyLG4sYSl7cmV0dXJuIGgobnVsbCx0LGUscixuLGEsMSl9LHBhdGhBbm51bHVzOmZ1bmN0aW9uKHQsZSxyLG4sYSxpKXtyZXR1cm4gaCh0LGUscixuLGEsaSwxKX19fSx7Ii4vbW9kIjo3MjR9XSw3MDA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49QXJyYXkuaXNBcnJheSxhPSJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJkFycmF5QnVmZmVyLmlzVmlldz9BcnJheUJ1ZmZlcjp7aXNWaWV3OmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxpPSJ1bmRlZmluZWQiPT10eXBlb2YgRGF0YVZpZXc/ZnVuY3Rpb24oKXt9OkRhdGFWaWV3O2Z1bmN0aW9uIG8odCl7cmV0dXJuIGEuaXNWaWV3KHQpJiYhKHQgaW5zdGFuY2VvZiBpKX1mdW5jdGlvbiBzKHQpe3JldHVybiBuKHQpfHxvKHQpfWZ1bmN0aW9uIGwodCxlLHIpe2lmKHModCkpe2lmKHModFswXSkpe2Zvcih2YXIgbj1yLGE9MDthPHQubGVuZ3RoO2ErKyluPWUobix0W2FdLmxlbmd0aCk7cmV0dXJuIG59cmV0dXJuIHQubGVuZ3RofXJldHVybiAwfXIuaXNUeXBlZEFycmF5PW8sci5pc0FycmF5T3JUeXBlZEFycmF5PXMsci5pc0FycmF5MUQ9ZnVuY3Rpb24odCl7cmV0dXJuIXModFswXSl9LHIuZW5zdXJlQXJyYXk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbih0KXx8KHQ9W10pLHQubGVuZ3RoPWUsdH0sci5jb25jYXQ9ZnVuY3Rpb24oKXt2YXIgdCxlLHIsYSxpLG8scyxsLGM9W10sdT0hMCxoPTA7Zm9yKHI9MDtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKShvPShhPWFyZ3VtZW50c1tyXSkubGVuZ3RoKSYmKGU/Yy5wdXNoKGEpOihlPWEsaT1vKSxuKGEpP3Q9ITE6KHU9ITEsaD90IT09YS5jb25zdHJ1Y3RvciYmKHQ9ITEpOnQ9YS5jb25zdHJ1Y3RvciksaCs9byk7aWYoIWgpcmV0dXJuW107aWYoIWMubGVuZ3RoKXJldHVybiBlO2lmKHUpcmV0dXJuIGUuY29uY2F0LmFwcGx5KGUsYyk7aWYodCl7Zm9yKChzPW5ldyB0KGgpKS5zZXQoZSkscj0wO3I8Yy5sZW5ndGg7cisrKWE9Y1tyXSxzLnNldChhLGkpLGkrPWEubGVuZ3RoO3JldHVybiBzfWZvcihzPW5ldyBBcnJheShoKSxsPTA7bDxlLmxlbmd0aDtsKyspc1tsXT1lW2xdO2ZvcihyPTA7cjxjLmxlbmd0aDtyKyspe2ZvcihhPWNbcl0sbD0wO2w8YS5sZW5ndGg7bCsrKXNbaStsXT1hW2xdO2krPWx9cmV0dXJuIHN9LHIubWF4Um93TGVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBsKHQsTWF0aC5tYXgsMCl9LHIubWluUm93TGVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBsKHQsTWF0aC5taW4sMS8wKX19LHt9XSw3MDE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxhPXQoIi4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5CQUROVU0saT0vXlsnIiUsJCNccyddK3xbLCBdfFsnIiUsJCNccyddKyQvZztlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0JiYodD10LnJlcGxhY2UoaSwiIikpLG4odCk/TnVtYmVyKHQpOmF9fSx7Ii4uL2NvbnN0YW50cy9udW1lcmljYWwiOjY5MywiZmFzdC1pc251bWVyaWMiOjIyOH1dLDcwMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dDtlLl9nbGNhbnZhcyYmZS5fZ2xjYW52YXMuc2l6ZSgpJiZlLl9nbGNhbnZhcy5lYWNoKGZ1bmN0aW9uKHQpe3QucmVnbCYmdC5yZWdsLmNsZWFyKHtjb2xvcjohMCxkZXB0aDohMH0pfSl9fSx7fV0sNzAzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt0Ll9yZXNwb25zaXZlQ2hhcnRIYW5kbGVyJiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdC5fcmVzcG9uc2l2ZUNoYXJ0SGFuZGxlciksZGVsZXRlIHQuX3Jlc3BvbnNpdmVDaGFydEhhbmRsZXIpfX0se31dLDcwNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGE9dCgidGlueWNvbG9yMiIpLGk9dCgiLi4vcGxvdHMvYXR0cmlidXRlcyIpLG89dCgiLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL3NjYWxlcyIpLHM9dCgiLi4vY29uc3RhbnRzL2ludGVyYWN0aW9ucyIpLkRFU0VMRUNURElNLGw9dCgiLi9uZXN0ZWRfcHJvcGVydHkiKSxjPXQoIi4vcmVnZXgiKS5jb3VudGVyLHU9dCgiLi9tb2QiKS5tb2RIYWxmLGg9dCgiLi9hcnJheSIpLmlzQXJyYXlPclR5cGVkQXJyYXk7ZnVuY3Rpb24gZih0LGUpe3ZhciBuPXIudmFsT2JqZWN0TWV0YVtlLnZhbFR5cGVdO2lmKGUuYXJyYXlPayYmaCh0KSlyZXR1cm4hMDtpZihuLnZhbGlkYXRlRnVuY3Rpb24pcmV0dXJuIG4udmFsaWRhdGVGdW5jdGlvbih0LGUpO3ZhciBhPXt9LGk9YSxvPXtzZXQ6ZnVuY3Rpb24odCl7aT10fX07cmV0dXJuIG4uY29lcmNlRnVuY3Rpb24odCxvLGEsZSksaSE9PWF9ci52YWxPYmplY3RNZXRhPXtkYXRhX2FycmF5Ontjb2VyY2VGdW5jdGlvbjpmdW5jdGlvbih0LGUscil7aCh0KT9lLnNldCh0KTp2b2lkIDAhPT1yJiZlLnNldChyKX19LGVudW1lcmF0ZWQ6e2NvZXJjZUZ1bmN0aW9uOmZ1bmN0aW9uKHQsZSxyLG4pe24uY29lcmNlTnVtYmVyJiYodD0rdCksLTE9PT1uLnZhbHVlcy5pbmRleE9mKHQpP2Uuc2V0KHIpOmUuc2V0KHQpfSx2YWxpZGF0ZUZ1bmN0aW9uOmZ1bmN0aW9uKHQsZSl7ZS5jb2VyY2VOdW1iZXImJih0PSt0KTtmb3IodmFyIHI9ZS52YWx1ZXMsbj0wO248ci5sZW5ndGg7bisrKXt2YXIgYT1TdHJpbmcocltuXSk7aWYoIi8iPT09YS5jaGFyQXQoMCkmJiIvIj09PWEuY2hhckF0KGEubGVuZ3RoLTEpKXtpZihuZXcgUmVnRXhwKGEuc3Vic3RyKDEsYS5sZW5ndGgtMikpLnRlc3QodCkpcmV0dXJuITB9ZWxzZSBpZih0PT09cltuXSlyZXR1cm4hMH1yZXR1cm4hMX19LGJvb2xlYW46e2NvZXJjZUZ1bmN0aW9uOmZ1bmN0aW9uKHQsZSxyKXshMD09PXR8fCExPT09dD9lLnNldCh0KTplLnNldChyKX19LG51bWJlcjp7Y29lcmNlRnVuY3Rpb246ZnVuY3Rpb24odCxlLHIsYSl7IW4odCl8fHZvaWQgMCE9PWEubWluJiZ0PGEubWlufHx2b2lkIDAhPT1hLm1heCYmdD5hLm1heD9lLnNldChyKTplLnNldCgrdCl9fSxpbnRlZ2VyOntjb2VyY2VGdW5jdGlvbjpmdW5jdGlvbih0LGUscixhKXt0JTF8fCFuKHQpfHx2b2lkIDAhPT1hLm1pbiYmdDxhLm1pbnx8dm9pZCAwIT09YS5tYXgmJnQ+YS5tYXg/ZS5zZXQocik6ZS5zZXQoK3QpfX0sc3RyaW5nOntjb2VyY2VGdW5jdGlvbjpmdW5jdGlvbih0LGUscixuKXtpZigic3RyaW5nIiE9dHlwZW9mIHQpe3ZhciBhPSJudW1iZXIiPT10eXBlb2YgdDshMCE9PW4uc3RyaWN0JiZhP2Uuc2V0KFN0cmluZyh0KSk6ZS5zZXQocil9ZWxzZSBuLm5vQmxhbmsmJiF0P2Uuc2V0KHIpOmUuc2V0KHQpfX0sY29sb3I6e2NvZXJjZUZ1bmN0aW9uOmZ1bmN0aW9uKHQsZSxyKXthKHQpLmlzVmFsaWQoKT9lLnNldCh0KTplLnNldChyKX19LGNvbG9ybGlzdDp7Y29lcmNlRnVuY3Rpb246ZnVuY3Rpb24odCxlLHIpe0FycmF5LmlzQXJyYXkodCkmJnQubGVuZ3RoJiZ0LmV2ZXJ5KGZ1bmN0aW9uKHQpe3JldHVybiBhKHQpLmlzVmFsaWQoKX0pP2Uuc2V0KHQpOmUuc2V0KHIpfX0sY29sb3JzY2FsZTp7Y29lcmNlRnVuY3Rpb246ZnVuY3Rpb24odCxlLHIpe2Uuc2V0KG8uZ2V0KHQscikpfX0sYW5nbGU6e2NvZXJjZUZ1bmN0aW9uOmZ1bmN0aW9uKHQsZSxyKXsiYXV0byI9PT10P2Uuc2V0KCJhdXRvIik6bih0KT9lLnNldCh1KCt0LDM2MCkpOmUuc2V0KHIpfX0sc3VicGxvdGlkOntjb2VyY2VGdW5jdGlvbjpmdW5jdGlvbih0LGUscixuKXt2YXIgYT1uLnJlZ2V4fHxjKHIpOyJzdHJpbmciPT10eXBlb2YgdCYmYS50ZXN0KHQpP2Uuc2V0KHQpOmUuc2V0KHIpfSx2YWxpZGF0ZUZ1bmN0aW9uOmZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5kZmx0O3JldHVybiB0PT09cnx8InN0cmluZyI9PXR5cGVvZiB0JiYhIWMocikudGVzdCh0KX19LGZsYWdsaXN0Ontjb2VyY2VGdW5jdGlvbjpmdW5jdGlvbih0LGUscixuKXtpZigic3RyaW5nIj09dHlwZW9mIHQpaWYoLTE9PT0obi5leHRyYXN8fFtdKS5pbmRleE9mKHQpKXtmb3IodmFyIGE9dC5zcGxpdCgiKyIpLGk9MDtpPGEubGVuZ3RoOyl7dmFyIG89YVtpXTstMT09PW4uZmxhZ3MuaW5kZXhPZihvKXx8YS5pbmRleE9mKG8pPGk/YS5zcGxpY2UoaSwxKTppKyt9YS5sZW5ndGg/ZS5zZXQoYS5qb2luKCIrIikpOmUuc2V0KHIpfWVsc2UgZS5zZXQodCk7ZWxzZSBlLnNldChyKX19LGFueTp7Y29lcmNlRnVuY3Rpb246ZnVuY3Rpb24odCxlLHIpe3ZvaWQgMD09PXQ/ZS5zZXQocik6ZS5zZXQodCl9fSxpbmZvX2FycmF5Ontjb2VyY2VGdW5jdGlvbjpmdW5jdGlvbih0LGUsbixhKXtmdW5jdGlvbiBpKHQsZSxuKXt2YXIgYSxpPXtzZXQ6ZnVuY3Rpb24odCl7YT10fX07cmV0dXJuIHZvaWQgMD09PW4mJihuPWUuZGZsdCksci52YWxPYmplY3RNZXRhW2UudmFsVHlwZV0uY29lcmNlRnVuY3Rpb24odCxpLG4sZSksYX12YXIgbz0yPT09YS5kaW1lbnNpb25zfHwiMS0yIj09PWEuZGltZW5zaW9ucyYmQXJyYXkuaXNBcnJheSh0KSYmQXJyYXkuaXNBcnJheSh0WzBdKTtpZihBcnJheS5pc0FycmF5KHQpKXt2YXIgcyxsLGMsdSxoLGYscD1hLml0ZW1zLGQ9W10sZz1BcnJheS5pc0FycmF5KHApLHY9ZyYmbyYmQXJyYXkuaXNBcnJheShwWzBdKSxtPW8mJmcmJiF2LHk9ZyYmIW0/cC5sZW5ndGg6dC5sZW5ndGg7aWYobj1BcnJheS5pc0FycmF5KG4pP246W10sbylmb3Iocz0wO3M8eTtzKyspZm9yKGRbc109W10sYz1BcnJheS5pc0FycmF5KHRbc10pP3Rbc106W10saD1tP3AubGVuZ3RoOmc/cFtzXS5sZW5ndGg6Yy5sZW5ndGgsbD0wO2w8aDtsKyspdT1tP3BbbF06Zz9wW3NdW2xdOnAsdm9pZCAwIT09KGY9aShjW2xdLHUsKG5bc118fFtdKVtsXSkpJiYoZFtzXVtsXT1mKTtlbHNlIGZvcihzPTA7czx5O3MrKyl2b2lkIDAhPT0oZj1pKHRbc10sZz9wW3NdOnAsbltzXSkpJiYoZFtzXT1mKTtlLnNldChkKX1lbHNlIGUuc2V0KG4pfSx2YWxpZGF0ZUZ1bmN0aW9uOmZ1bmN0aW9uKHQsZSl7aWYoIUFycmF5LmlzQXJyYXkodCkpcmV0dXJuITE7dmFyIHI9ZS5pdGVtcyxuPUFycmF5LmlzQXJyYXkociksYT0yPT09ZS5kaW1lbnNpb25zO2lmKCFlLmZyZWVMZW5ndGgmJnQubGVuZ3RoIT09ci5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspaWYoYSl7aWYoIUFycmF5LmlzQXJyYXkodFtpXSl8fCFlLmZyZWVMZW5ndGgmJnRbaV0ubGVuZ3RoIT09cltpXS5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBvPTA7bzx0W2ldLmxlbmd0aDtvKyspaWYoIWYodFtpXVtvXSxuP3JbaV1bb106cikpcmV0dXJuITF9ZWxzZSBpZighZih0W2ldLG4/cltpXTpyKSlyZXR1cm4hMTtyZXR1cm4hMH19fSxyLmNvZXJjZT1mdW5jdGlvbih0LGUsbixhLGkpe3ZhciBvPWwobixhKS5nZXQoKSxzPWwodCxhKSxjPWwoZSxhKSx1PXMuZ2V0KCkscD1lLl90ZW1wbGF0ZTtpZih2b2lkIDA9PT11JiZwJiYodT1sKHAsYSkuZ2V0KCkscD0wKSx2b2lkIDA9PT1pJiYoaT1vLmRmbHQpLG8uYXJyYXlPayYmaCh1KSlyZXR1cm4gYy5zZXQodSksdTt2YXIgZD1yLnZhbE9iamVjdE1ldGFbby52YWxUeXBlXS5jb2VyY2VGdW5jdGlvbjtkKHUsYyxpLG8pO3ZhciBnPWMuZ2V0KCk7cmV0dXJuIHAmJmc9PT1pJiYhZih1LG8pJiYoZCh1PWwocCxhKS5nZXQoKSxjLGksbyksZz1jLmdldCgpKSxnfSxyLmNvZXJjZTI9ZnVuY3Rpb24odCxlLG4sYSxpKXt2YXIgbz1sKHQsYSkscz1yLmNvZXJjZSh0LGUsbixhLGkpLGM9by5nZXQoKTtyZXR1cm4gbnVsbCE9YyYmc30sci5jb2VyY2VGb250PWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj17fTtyZXR1cm4gcj1yfHx7fSxuLmZhbWlseT10KGUrIi5mYW1pbHkiLHIuZmFtaWx5KSxuLnNpemU9dChlKyIuc2l6ZSIsci5zaXplKSxuLmNvbG9yPXQoZSsiLmNvbG9yIixyLmNvbG9yKSxufSxyLmNvZXJjZUhvdmVyaW5mbz1mdW5jdGlvbih0LGUsbil7dmFyIGEsbz1lLl9tb2R1bGUuYXR0cmlidXRlcyxzPW8uaG92ZXJpbmZvP286aSxsPXMuaG92ZXJpbmZvO2lmKDE9PT1uLl9kYXRhTGVuZ3RoKXt2YXIgYz0iYWxsIj09PWwuZGZsdD9sLmZsYWdzLnNsaWNlKCk6bC5kZmx0LnNwbGl0KCIrIik7Yy5zcGxpY2UoYy5pbmRleE9mKCJuYW1lIiksMSksYT1jLmpvaW4oIisiKX1yZXR1cm4gci5jb2VyY2UodCxlLHMsImhvdmVyaW5mbyIsYSl9LHIuY29lcmNlU2VsZWN0aW9uTWFya2VyT3BhY2l0eT1mdW5jdGlvbih0LGUpe2lmKHQubWFya2VyKXt2YXIgcixuLGE9dC5tYXJrZXIub3BhY2l0eTtpZih2b2lkIDAhPT1hKWgoYSl8fHQuc2VsZWN0ZWR8fHQudW5zZWxlY3RlZHx8KHI9YSxuPXMqYSksZSgic2VsZWN0ZWQubWFya2VyLm9wYWNpdHkiLHIpLGUoInVuc2VsZWN0ZWQubWFya2VyLm9wYWNpdHkiLG4pfX0sci52YWxpZGF0ZT1mfSx7Ii4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9zY2FsZXMiOjYwNywiLi4vY29uc3RhbnRzL2ludGVyYWN0aW9ucyI6NjkyLCIuLi9wbG90cy9hdHRyaWJ1dGVzIjo3NjIsIi4vYXJyYXkiOjcwMCwiLi9tb2QiOjcyNCwiLi9uZXN0ZWRfcHJvcGVydHkiOjcyNSwiLi9yZWdleCI6NzMzLCJmYXN0LWlzbnVtZXJpYyI6MjI4LHRpbnljb2xvcjI6NTM2fV0sNzA1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuLGEsaT10KCJkMyIpLG89dCgiZmFzdC1pc251bWVyaWMiKSxzPXQoIi4vbG9nZ2VycyIpLGw9dCgiLi9tb2QiKS5tb2QsYz10KCIuLi9jb25zdGFudHMvbnVtZXJpY2FsIiksdT1jLkJBRE5VTSxoPWMuT05FREFZLGY9Yy5PTkVIT1VSLHA9Yy5PTkVNSU4sZD1jLk9ORVNFQyxnPWMuRVBPQ0hKRCx2PXQoIi4uL3JlZ2lzdHJ5IiksbT1pLnRpbWUuZm9ybWF0LnV0Yyx5PS9eXHMqKC0/XGRcZFxkXGR8XGRcZCkoLShcZD9cZCkoLShcZD9cZCkoWyBUdF0oWzAxXT9cZHwyWzAtM10pKDooWzAtNV1cZCkoOihbMC01XVxkKFwuXGQrKT8pKT8oWnx6fFsrXC1dXGRcZDo/XGRcZCk/KT8pPyk/KT9ccyokL20seD0vXlxzKigtP1xkXGRcZFxkfFxkXGQpKC0oXGQ/XGRpPykoLShcZD9cZCkoWyBUdF0oWzAxXT9cZHwyWzAtM10pKDooWzAtNV1cZCkoOihbMC01XVxkKFwuXGQrKT8pKT8oWnx6fFsrXC1dXGRcZDo/XGRcZCk/KT8pPyk/KT9ccyokL20sYj0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCktNzA7ZnVuY3Rpb24gXyh0KXtyZXR1cm4gdCYmdi5jb21wb25lbnRzUmVnaXN0cnkuY2FsZW5kYXJzJiYic3RyaW5nIj09dHlwZW9mIHQmJiJncmVnb3JpYW4iIT09dH1mdW5jdGlvbiB3KHQsZSl7cmV0dXJuIFN0cmluZyh0K01hdGgucG93KDEwLGUpKS5zdWJzdHIoMSl9ci5kYXRlVGljazA9ZnVuY3Rpb24odCxlKXtyZXR1cm4gXyh0KT9lP3YuZ2V0Q29tcG9uZW50TWV0aG9kKCJjYWxlbmRhcnMiLCJDQU5PTklDQUxfU1VOREFZIilbdF06di5nZXRDb21wb25lbnRNZXRob2QoImNhbGVuZGFycyIsIkNBTk9OSUNBTF9USUNLIilbdF06ZT8iMjAwMC0wMS0wMiI6IjIwMDAtMDEtMDEifSxyLmRmbHRSYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gXyh0KT92LmdldENvbXBvbmVudE1ldGhvZCgiY2FsZW5kYXJzIiwiREZMVFJBTkdFIilbdF06WyIyMDAwLTAxLTAxIiwiMjAwMS0wMS0wMSJdfSxyLmlzSlNEYXRlPWZ1bmN0aW9uKHQpe3JldHVybiJvYmplY3QiPT10eXBlb2YgdCYmbnVsbCE9PXQmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LmdldFRpbWV9LHIuZGF0ZVRpbWUybXM9ZnVuY3Rpb24odCxlKXtpZihyLmlzSlNEYXRlKHQpKXt2YXIgaT10LmdldFRpbWV6b25lT2Zmc2V0KCkqcCxvPSh0LmdldFVUQ01pbnV0ZXMoKS10LmdldE1pbnV0ZXMoKSkqcCsodC5nZXRVVENTZWNvbmRzKCktdC5nZXRTZWNvbmRzKCkpKmQrKHQuZ2V0VVRDTWlsbGlzZWNvbmRzKCktdC5nZXRNaWxsaXNlY29uZHMoKSk7aWYobyl7dmFyIHM9MypwO2k9aS1zLzIrbChvLWkrcy8yLHMpfXJldHVybih0PU51bWJlcih0KS1pKT49biYmdDw9YT90OnV9aWYoInN0cmluZyIhPXR5cGVvZiB0JiYibnVtYmVyIiE9dHlwZW9mIHQpcmV0dXJuIHU7dD1TdHJpbmcodCk7dmFyIGM9XyhlKSxtPXQuY2hhckF0KDApOyFjfHwiRyIhPT1tJiYiZyIhPT1tfHwodD10LnN1YnN0cigxKSxlPSIiKTt2YXIgdz1jJiYiY2hpbmVzZSI9PT1lLnN1YnN0cigwLDcpLGs9dC5tYXRjaCh3P3g6eSk7aWYoIWspcmV0dXJuIHU7dmFyIFQ9a1sxXSxNPWtbM118fCIxIixBPU51bWJlcihrWzVdfHwxKSxTPU51bWJlcihrWzddfHwwKSxFPU51bWJlcihrWzldfHwwKSxMPU51bWJlcihrWzExXXx8MCk7aWYoYyl7aWYoMj09PVQubGVuZ3RoKXJldHVybiB1O3ZhciBDO1Q9TnVtYmVyKFQpO3RyeXt2YXIgUD12LmdldENvbXBvbmVudE1ldGhvZCgiY2FsZW5kYXJzIiwiZ2V0Q2FsIikoZSk7aWYodyl7dmFyIE89ImkiPT09TS5jaGFyQXQoTS5sZW5ndGgtMSk7TT1wYXJzZUludChNLDEwKSxDPVAubmV3RGF0ZShULFAudG9Nb250aEluZGV4KFQsTSxPKSxBKX1lbHNlIEM9UC5uZXdEYXRlKFQsTnVtYmVyKE0pLEEpfWNhdGNoKHQpe3JldHVybiB1fXJldHVybiBDPyhDLnRvSkQoKS1nKSpoK1MqZitFKnArTCpkOnV9VD0yPT09VC5sZW5ndGg/KE51bWJlcihUKSsyZTMtYiklMTAwK2I6TnVtYmVyKFQpLE0tPTE7dmFyIHo9bmV3IERhdGUoRGF0ZS5VVEMoMmUzLE0sQSxTLEUpKTtyZXR1cm4gei5zZXRVVENGdWxsWWVhcihUKSx6LmdldFVUQ01vbnRoKCkhPT1NP3U6ei5nZXRVVENEYXRlKCkhPT1BP3U6ei5nZXRUaW1lKCkrTCpkfSxuPXIuTUlOX01TPXIuZGF0ZVRpbWUybXMoIi05OTk5IiksYT1yLk1BWF9NUz1yLmRhdGVUaW1lMm1zKCI5OTk5LTEyLTMxIDIzOjU5OjU5Ljk5OTkiKSxyLmlzRGF0ZVRpbWU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gci5kYXRlVGltZTJtcyh0LGUpIT09dX07dmFyIGs9OTAqaCxUPTMqZixNPTUqcDtmdW5jdGlvbiBBKHQsZSxyLG4sYSl7aWYoKGV8fHJ8fG58fGEpJiYodCs9IiAiK3coZSwyKSsiOiIrdyhyLDIpLChufHxhKSYmKHQrPSI6Iit3KG4sMiksYSkpKXtmb3IodmFyIGk9NDthJTEwPT0wOylpLT0xLGEvPTEwO3QrPSIuIit3KGEsaSl9cmV0dXJuIHR9ci5tczJEYXRlVGltZT1mdW5jdGlvbih0LGUscil7aWYoIm51bWJlciIhPXR5cGVvZiB0fHwhKHQ+PW4mJnQ8PWEpKXJldHVybiB1O2V8fChlPTApO3ZhciBpLG8scyxjLHkseCxiPU1hdGguZmxvb3IoMTAqbCh0Ky4wNSwxKSksdz1NYXRoLnJvdW5kKHQtYi8xMCk7aWYoXyhyKSl7dmFyIFM9TWF0aC5mbG9vcih3L2gpK2csRT1NYXRoLmZsb29yKGwodCxoKSk7dHJ5e2k9di5nZXRDb21wb25lbnRNZXRob2QoImNhbGVuZGFycyIsImdldENhbCIpKHIpLmZyb21KRChTKS5mb3JtYXREYXRlKCJ5eXl5LW1tLWRkIil9Y2F0Y2godCl7aT1tKCJHJVktJW0tJWQiKShuZXcgRGF0ZSh3KSl9aWYoIi0iPT09aS5jaGFyQXQoMCkpZm9yKDtpLmxlbmd0aDwxMTspaT0iLTAiK2kuc3Vic3RyKDEpO2Vsc2UgZm9yKDtpLmxlbmd0aDwxMDspaT0iMCIraTtvPWU8az9NYXRoLmZsb29yKEUvZik6MCxzPWU8az9NYXRoLmZsb29yKEUlZi9wKTowLGM9ZTxUP01hdGguZmxvb3IoRSVwL2QpOjAseT1lPE0/RSVkKjEwK2I6MH1lbHNlIHg9bmV3IERhdGUodyksaT1tKCIlWS0lbS0lZCIpKHgpLG89ZTxrP3guZ2V0VVRDSG91cnMoKTowLHM9ZTxrP3guZ2V0VVRDTWludXRlcygpOjAsYz1lPFQ/eC5nZXRVVENTZWNvbmRzKCk6MCx5PWU8TT8xMCp4LmdldFVUQ01pbGxpc2Vjb25kcygpK2I6MDtyZXR1cm4gQShpLG8scyxjLHkpfSxyLm1zMkRhdGVUaW1lTG9jYWw9ZnVuY3Rpb24odCl7aWYoISh0Pj1uK2gmJnQ8PWEtaCkpcmV0dXJuIHU7dmFyIGU9TWF0aC5mbG9vcigxMCpsKHQrLjA1LDEpKSxyPW5ldyBEYXRlKE1hdGgucm91bmQodC1lLzEwKSk7cmV0dXJuIEEoaS50aW1lLmZvcm1hdCgiJVktJW0tJWQiKShyKSxyLmdldEhvdXJzKCksci5nZXRNaW51dGVzKCksci5nZXRTZWNvbmRzKCksMTAqci5nZXRVVENNaWxsaXNlY29uZHMoKStlKX0sci5jbGVhbkRhdGU9ZnVuY3Rpb24odCxlLG4pe2lmKHQ9PT11KXJldHVybiBlO2lmKHIuaXNKU0RhdGUodCl8fCJudW1iZXIiPT10eXBlb2YgdCYmaXNGaW5pdGUodCkpe2lmKF8obikpcmV0dXJuIHMuZXJyb3IoIkpTIERhdGVzIGFuZCBtaWxsaXNlY29uZHMgYXJlIGluY29tcGF0aWJsZSB3aXRoIHdvcmxkIGNhbGVuZGFycyIsdCksZTtpZighKHQ9ci5tczJEYXRlVGltZUxvY2FsKCt0KSkmJnZvaWQgMCE9PWUpcmV0dXJuIGV9ZWxzZSBpZighci5pc0RhdGVUaW1lKHQsbikpcmV0dXJuIHMuZXJyb3IoInVucmVjb2duaXplZCBkYXRlIix0KSxlO3JldHVybiB0fTt2YXIgUz0vJVxkP2YvZztmdW5jdGlvbiBFKHQsZSxyLG4pe3Q9dC5yZXBsYWNlKFMsZnVuY3Rpb24odCl7dmFyIHI9TWF0aC5taW4oK3QuY2hhckF0KDEpfHw2LDYpO3JldHVybihlLzFlMyUxKzIpLnRvRml4ZWQocikuc3Vic3RyKDIpLnJlcGxhY2UoLzArJC8sIiIpfHwiMCJ9KTt2YXIgYT1uZXcgRGF0ZShNYXRoLmZsb29yKGUrLjA1KSk7aWYoXyhuKSl0cnl7dD12LmdldENvbXBvbmVudE1ldGhvZCgiY2FsZW5kYXJzIiwid29ybGRDYWxGbXQiKSh0LGUsbil9Y2F0Y2godCl7cmV0dXJuIkludmFsaWQifXJldHVybiByKHQpKGEpfXZhciBMPVs1OSw1OS45LDU5Ljk5LDU5Ljk5OSw1OS45OTk5XTtyLmZvcm1hdERhdGU9ZnVuY3Rpb24odCxlLHIsbixhLGkpe2lmKGE9XyhhKSYmYSwhZSlpZigieSI9PT1yKWU9aS55ZWFyO2Vsc2UgaWYoIm0iPT09cillPWkubW9udGg7ZWxzZXtpZigiZCIhPT1yKXJldHVybiBmdW5jdGlvbih0LGUpe3ZhciByPWwodCsuMDUsaCksbj13KE1hdGguZmxvb3Ioci9mKSwyKSsiOiIrdyhsKE1hdGguZmxvb3Ioci9wKSw2MCksMik7aWYoIk0iIT09ZSl7byhlKXx8KGU9MCk7dmFyIGE9KDEwMCtNYXRoLm1pbihsKHQvZCw2MCksTFtlXSkpLnRvRml4ZWQoZSkuc3Vic3RyKDEpO2U+MCYmKGE9YS5yZXBsYWNlKC8wKyQvLCIiKS5yZXBsYWNlKC9bXC5dJC8sIiIpKSxuKz0iOiIrYX1yZXR1cm4gbn0odCxyKSsiXG4iK0UoaS5kYXlNb250aFllYXIsdCxuLGEpO2U9aS5kYXlNb250aCsiXG4iK2kueWVhcn1yZXR1cm4gRShlLHQsbixhKX07dmFyIEM9MypoO3IuaW5jcmVtZW50TW9udGg9ZnVuY3Rpb24odCxlLHIpe3I9XyhyKSYmcjt2YXIgbj1sKHQsaCk7aWYodD1NYXRoLnJvdW5kKHQtbikscil0cnl7dmFyIGE9TWF0aC5yb3VuZCh0L2gpK2csaT12LmdldENvbXBvbmVudE1ldGhvZCgiY2FsZW5kYXJzIiwiZ2V0Q2FsIikociksbz1pLmZyb21KRChhKTtyZXR1cm4gZSUxMj9pLmFkZChvLGUsIm0iKTppLmFkZChvLGUvMTIsInkiKSwoby50b0pEKCktZykqaCtufWNhdGNoKGUpe3MuZXJyb3IoImludmFsaWQgbXMgIit0KyIgaW4gY2FsZW5kYXIgIityKX12YXIgYz1uZXcgRGF0ZSh0K0MpO3JldHVybiBjLnNldFVUQ01vbnRoKGMuZ2V0VVRDTW9udGgoKStlKStuLUN9LHIuZmluZEV4YWN0RGF0ZXM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIsbixhPTAsaT0wLHM9MCxsPTAsYz1fKGUpJiZ2LmdldENvbXBvbmVudE1ldGhvZCgiY2FsZW5kYXJzIiwiZ2V0Q2FsIikoZSksdT0wO3U8dC5sZW5ndGg7dSsrKWlmKG49dFt1XSxvKG4pKXtpZighKG4laCkpaWYoYyl0cnl7MT09PShyPWMuZnJvbUpEKG4vaCtnKSkuZGF5KCk/MT09PXIubW9udGgoKT9hKys6aSsrOnMrK31jYXRjaCh0KXt9ZWxzZSAxPT09KHI9bmV3IERhdGUobikpLmdldFVUQ0RhdGUoKT8wPT09ci5nZXRVVENNb250aCgpP2ErKzppKys6cysrfWVsc2UgbCsrO3MrPWkrPWE7dmFyIGY9dC5sZW5ndGgtbDtyZXR1cm57ZXhhY3RZZWFyczphL2YsZXhhY3RNb250aHM6aS9mLGV4YWN0RGF5czpzL2Z9fX0seyIuLi9jb25zdGFudHMvbnVtZXJpY2FsIjo2OTMsIi4uL3JlZ2lzdHJ5Ijo4NDYsIi4vbG9nZ2VycyI6NzIxLCIuL21vZCI6NzI0LGQzOjE2NSwiZmFzdC1pc251bWVyaWMiOjIyOH1dLDcwNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGE9dCgiLi9sb2dnZXJzIik7ZnVuY3Rpb24gaSh0KXt2YXIgZT10JiZ0LnBhcmVudE5vZGU7ZSYmZS5yZW1vdmVDaGlsZCh0KX1mdW5jdGlvbiBvKHQsZSxyKXt2YXIgbj0icGxvdGx5LmpzLXN0eWxlLSIrdCxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG4pO2l8fCgoaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpKS5zZXRBdHRyaWJ1dGUoImlkIixuKSxpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIiKSksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChpKSk7dmFyIG89aS5zaGVldDtvLmluc2VydFJ1bGU/by5pbnNlcnRSdWxlKGUrInsiK3IrIn0iLDApOm8uYWRkUnVsZT9vLmFkZFJ1bGUoZSxyLDApOmEud2FybigiYWRkU3R5bGVSdWxlIGZhaWxlZCIpfWUuZXhwb3J0cz17Z2V0R3JhcGhEaXY6ZnVuY3Rpb24odCl7dmFyIGU7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtpZihudWxsPT09KGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodCkpKXRocm93IG5ldyBFcnJvcigiTm8gRE9NIGVsZW1lbnQgd2l0aCBpZCAnIit0KyInIGV4aXN0cyBvbiB0aGUgcGFnZS4iKTtyZXR1cm4gZX1pZihudWxsPT10KXRocm93IG5ldyBFcnJvcigiRE9NIGVsZW1lbnQgcHJvdmlkZWQgaXMgbnVsbCBvciB1bmRlZmluZWQiKTtyZXR1cm4gdH0saXNQbG90RGl2OmZ1bmN0aW9uKHQpe3ZhciBlPW4uc2VsZWN0KHQpO3JldHVybiBlLm5vZGUoKWluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJmUuc2l6ZSgpJiZlLmNsYXNzZWQoImpzLXBsb3RseS1wbG90Iil9LHJlbW92ZUVsZW1lbnQ6aSxhZGRTdHlsZVJ1bGU6ZnVuY3Rpb24odCxlKXtvKCJnbG9iYWwiLHQsZSl9LGFkZFJlbGF0ZWRTdHlsZVJ1bGU6byxkZWxldGVSZWxhdGVkU3R5bGVSdWxlOmZ1bmN0aW9uKHQpe3ZhciBlPSJwbG90bHkuanMtc3R5bGUtIit0LHI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZSk7ciYmaShyKX19fSx7Ii4vbG9nZ2VycyI6NzIxLGQzOjE2NX1dLDcwNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJldmVudHMiKS5FdmVudEVtaXR0ZXIsYT17aW5pdDpmdW5jdGlvbih0KXtpZih0Ll9ldiBpbnN0YW5jZW9mIG4pcmV0dXJuIHQ7dmFyIGU9bmV3IG4scj1uZXcgbjtyZXR1cm4gdC5fZXY9ZSx0Ll9pbnRlcm5hbEV2PXIsdC5vbj1lLm9uLmJpbmQoZSksdC5vbmNlPWUub25jZS5iaW5kKGUpLHQucmVtb3ZlTGlzdGVuZXI9ZS5yZW1vdmVMaXN0ZW5lci5iaW5kKGUpLHQucmVtb3ZlQWxsTGlzdGVuZXJzPWUucmVtb3ZlQWxsTGlzdGVuZXJzLmJpbmQoZSksdC5faW50ZXJuYWxPbj1yLm9uLmJpbmQociksdC5faW50ZXJuYWxPbmNlPXIub25jZS5iaW5kKHIpLHQuX3JlbW92ZUludGVybmFsTGlzdGVuZXI9ci5yZW1vdmVMaXN0ZW5lci5iaW5kKHIpLHQuX3JlbW92ZUFsbEludGVybmFsTGlzdGVuZXJzPXIucmVtb3ZlQWxsTGlzdGVuZXJzLmJpbmQociksdC5lbWl0PWZ1bmN0aW9uKG4sYSl7InVuZGVmaW5lZCIhPXR5cGVvZiBqUXVlcnkmJmpRdWVyeSh0KS50cmlnZ2VyKG4sYSksZS5lbWl0KG4sYSksci5lbWl0KG4sYSl9LHR9LHRyaWdnZXJIYW5kbGVyOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbixhOyJ1bmRlZmluZWQiIT10eXBlb2YgalF1ZXJ5JiYobj1qUXVlcnkodCkudHJpZ2dlckhhbmRsZXIoZSxyKSk7dmFyIGk9dC5fZXY7aWYoIWkpcmV0dXJuIG47dmFyIG8scz1pLl9ldmVudHNbZV07aWYoIXMpcmV0dXJuIG47ZnVuY3Rpb24gbCh0KXtyZXR1cm4gdC5saXN0ZW5lcj8oaS5yZW1vdmVMaXN0ZW5lcihlLHQubGlzdGVuZXIpLHQuZmlyZWQ/dm9pZCAwOih0LmZpcmVkPSEwLHQubGlzdGVuZXIuYXBwbHkoaSxbcl0pKSk6dC5hcHBseShpLFtyXSl9Zm9yKHM9QXJyYXkuaXNBcnJheShzKT9zOltzXSxvPTA7bzxzLmxlbmd0aC0xO28rKylsKHNbb10pO3JldHVybiBhPWwoc1tvXSksdm9pZCAwIT09bj9uOmF9LHB1cmdlOmZ1bmN0aW9uKHQpe3JldHVybiBkZWxldGUgdC5fZXYsZGVsZXRlIHQub24sZGVsZXRlIHQub25jZSxkZWxldGUgdC5yZW1vdmVMaXN0ZW5lcixkZWxldGUgdC5yZW1vdmVBbGxMaXN0ZW5lcnMsZGVsZXRlIHQuZW1pdCxkZWxldGUgdC5fZXYsZGVsZXRlIHQuX2ludGVybmFsRXYsZGVsZXRlIHQuX2ludGVybmFsT24sZGVsZXRlIHQuX2ludGVybmFsT25jZSxkZWxldGUgdC5fcmVtb3ZlSW50ZXJuYWxMaXN0ZW5lcixkZWxldGUgdC5fcmVtb3ZlQWxsSW50ZXJuYWxMaXN0ZW5lcnMsdH19O2UuZXhwb3J0cz1hfSx7ZXZlbnRzOjEwNn1dLDcwODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2lzX3BsYWluX29iamVjdC5qcyIpLGE9QXJyYXkuaXNBcnJheTtmdW5jdGlvbiBpKHQsZSxyLG8pe3ZhciBzLGwsYyx1LGgsZixwPXRbMF0sZD10Lmxlbmd0aDtpZigyPT09ZCYmYShwKSYmYSh0WzFdKSYmMD09PXAubGVuZ3RoKXtpZihmdW5jdGlvbih0LGUpe3ZhciByLG47Zm9yKHI9MDtyPHQubGVuZ3RoO3IrKyl7aWYobnVsbCE9PShuPXRbcl0pJiYib2JqZWN0Ij09dHlwZW9mIG4pcmV0dXJuITE7dm9pZCAwIT09biYmKGVbcl09bil9cmV0dXJuITB9KHRbMV0scCkpcmV0dXJuIHA7cC5zcGxpY2UoMCxwLmxlbmd0aCl9Zm9yKHZhciBnPTE7ZzxkO2crKylmb3IobCBpbiBzPXRbZ10pYz1wW2xdLHU9c1tsXSxvJiZhKHUpP3BbbF09dTplJiZ1JiYobih1KXx8KGg9YSh1KSkpPyhoPyhoPSExLGY9YyYmYShjKT9jOltdKTpmPWMmJm4oYyk/Yzp7fSxwW2xdPWkoW2YsdV0sZSxyLG8pKTooInVuZGVmaW5lZCIhPXR5cGVvZiB1fHxyKSYmKHBbbF09dSk7cmV0dXJuIHB9ci5leHRlbmRGbGF0PWZ1bmN0aW9uKCl7cmV0dXJuIGkoYXJndW1lbnRzLCExLCExLCExKX0sci5leHRlbmREZWVwPWZ1bmN0aW9uKCl7cmV0dXJuIGkoYXJndW1lbnRzLCEwLCExLCExKX0sci5leHRlbmREZWVwQWxsPWZ1bmN0aW9uKCl7cmV0dXJuIGkoYXJndW1lbnRzLCEwLCEwLCExKX0sci5leHRlbmREZWVwTm9BcnJheXM9ZnVuY3Rpb24oKXtyZXR1cm4gaShhcmd1bWVudHMsITAsITEsITApfX0seyIuL2lzX3BsYWluX29iamVjdC5qcyI6NzE4fV0sNzA5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGU9e30scj1bXSxuPTAsYT0wO2E8dC5sZW5ndGg7YSsrKXt2YXIgaT10W2FdOzEhPT1lW2ldJiYoZVtpXT0xLHJbbisrXT1pKX1yZXR1cm4gcn19LHt9XSw3MTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXtyZXR1cm4hMD09PXQudmlzaWJsZX1mdW5jdGlvbiBhKHQpe3ZhciBlPXRbMF0udHJhY2U7cmV0dXJuITA9PT1lLnZpc2libGUmJjAhPT1lLl9sZW5ndGh9ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyPShlPXQsQXJyYXkuaXNBcnJheShlKSYmQXJyYXkuaXNBcnJheShlWzBdKSYmZVswXVswXSYmZVswXVswXS50cmFjZT9hOm4pLGk9W10sbz0wO288dC5sZW5ndGg7bysrKXt2YXIgcz10W29dO3IocykmJmkucHVzaChzKX1yZXR1cm4gaX19LHt9XSw3MTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxhPXQoImNvdW50cnktcmVnZXgiKSxpPXQoIkB0dXJmL2FyZWEiKSxvPXQoIkB0dXJmL2NlbnRyb2lkIikscz10KCJAdHVyZi9iYm94IiksbD10KCIuL2lkZW50aXR5IiksYz10KCIuL2xvZ2dlcnMiKSx1PXQoIi4vaXNfcGxhaW5fb2JqZWN0IiksaD10KCIuL25lc3RlZF9wcm9wZXJ0eSIpLGY9dCgiLi9wb2x5Z29uIikscD1PYmplY3Qua2V5cyhhKSxkPXsiSVNPLTMiOmwsIlVTQS1zdGF0ZXMiOmwsImNvdW50cnkgbmFtZXMiOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8cC5sZW5ndGg7ZSsrKXt2YXIgcj1wW2VdLG49bmV3IFJlZ0V4cChhW3JdKTtpZihuLnRlc3QodC50cmltKCkudG9Mb3dlckNhc2UoKSkpcmV0dXJuIHJ9cmV0dXJuIGMubG9nKCJVbnJlY29nbml6ZWQgY291bnRyeSBuYW1lOiAiK3QrIi4iKSwhMX19O2Z1bmN0aW9uIGcodCl7dmFyIGU9dC5nZW9qc29uLHI9d2luZG93LlBsb3RseUdlb0Fzc2V0c3x8e30sbj0ic3RyaW5nIj09dHlwZW9mIGU/cltlXTplO3JldHVybiB1KG4pP246KGMuZXJyb3IoIk9vcHMgLi4uIHNvbWV0aGluZyB3ZW50IHdyb25nIHdoZW4gZmV0Y2hpbmcgIitlKSwhMSl9ZS5leHBvcnRzPXtsb2NhdGlvblRvRmVhdHVyZTpmdW5jdGlvbih0LGUscil7aWYoIWV8fCJzdHJpbmciIT10eXBlb2YgZSlyZXR1cm4hMTt2YXIgbixhLGksbz1kW3RdKGUpO2lmKG8pe2lmKCJVU0Etc3RhdGVzIj09PXQpZm9yKG49W10saT0wO2k8ci5sZW5ndGg7aSsrKShhPXJbaV0pLnByb3BlcnRpZXMmJmEucHJvcGVydGllcy5ndSYmIlVTQSI9PT1hLnByb3BlcnRpZXMuZ3UmJm4ucHVzaChhKTtlbHNlIG49cjtmb3IoaT0wO2k8bi5sZW5ndGg7aSsrKWlmKChhPW5baV0pLmlkPT09bylyZXR1cm4gYTtjLmxvZyhbIkxvY2F0aW9uIHdpdGggaWQiLG8sImRvZXMgbm90IGhhdmUgYSBtYXRjaGluZyB0b3BvanNvbiBmZWF0dXJlIGF0IHRoaXMgcmVzb2x1dGlvbi4iXS5qb2luKCIgIikpfXJldHVybiExfSxmZWF0dXJlMnBvbHlnb25zOmZ1bmN0aW9uKHQpe3ZhciBlLHIsbixhLGk9dC5nZW9tZXRyeSxvPWkuY29vcmRpbmF0ZXMscz10LmlkLGw9W107ZnVuY3Rpb24gYyh0KXtmb3IodmFyIGU9MDtlPHQubGVuZ3RoLTE7ZSsrKWlmKHRbZV1bMF0+MCYmdFtlKzFdWzBdPDApcmV0dXJuIGU7cmV0dXJuIG51bGx9c3dpdGNoKGU9IlJVUyI9PT1zfHwiRkpJIj09PXM/ZnVuY3Rpb24odCl7dmFyIGU7aWYobnVsbD09PWModCkpZT10O2Vsc2UgZm9yKGU9bmV3IEFycmF5KHQubGVuZ3RoKSxhPTA7YTx0Lmxlbmd0aDthKyspZVthXT1bdFthXVswXTwwP3RbYV1bMF0rMzYwOnRbYV1bMF0sdFthXVsxXV07bC5wdXNoKGYudGVzdGVyKGUpKX06IkFUQSI9PT1zP2Z1bmN0aW9uKHQpe3ZhciBlPWModCk7aWYobnVsbD09PWUpcmV0dXJuIGwucHVzaChmLnRlc3Rlcih0KSk7dmFyIHI9bmV3IEFycmF5KHQubGVuZ3RoKzEpLG49MDtmb3IoYT0wO2E8dC5sZW5ndGg7YSsrKWE+ZT9yW24rK109W3RbYV1bMF0rMzYwLHRbYV1bMV1dOmE9PT1lPyhyW24rK109dFthXSxyW24rK109W3RbYV1bMF0sLTkwXSk6cltuKytdPXRbYV07dmFyIGk9Zi50ZXN0ZXIocik7aS5wdHMucG9wKCksbC5wdXNoKGkpfTpmdW5jdGlvbih0KXtsLnB1c2goZi50ZXN0ZXIodCkpfSxpLnR5cGUpe2Nhc2UiTXVsdGlQb2x5Z29uIjpmb3Iocj0wO3I8by5sZW5ndGg7cisrKWZvcihuPTA7bjxvW3JdLmxlbmd0aDtuKyspZShvW3JdW25dKTticmVhaztjYXNlIlBvbHlnb24iOmZvcihyPTA7cjxvLmxlbmd0aDtyKyspZShvW3JdKX1yZXR1cm4gbH0sZ2V0VHJhY2VHZW9qc29uOmcsZXh0cmFjdFRyYWNlRmVhdHVyZTpmdW5jdGlvbih0KXt2YXIgZT10WzBdLnRyYWNlLHI9ZyhlKTtpZighcilyZXR1cm4hMTt2YXIgbixhPXt9LHM9W107Zm9yKG49MDtuPGUuX2xlbmd0aDtuKyspe3ZhciBsPXRbbl07KGwubG9jfHwwPT09bC5sb2MpJiYoYVtsLmxvY109bCl9ZnVuY3Rpb24gdSh0KXt2YXIgcj1oKHQsZS5mZWF0dXJlaWRrZXl8fCJpZCIpLmdldCgpLG49YVtyXTtpZihuKXt2YXIgbD10Lmdlb21ldHJ5O2lmKCJQb2x5Z29uIj09PWwudHlwZXx8Ik11bHRpUG9seWdvbiI9PT1sLnR5cGUpe3ZhciB1PXt0eXBlOiJGZWF0dXJlIixpZDpyLGdlb21ldHJ5OmwscHJvcGVydGllczp7fX07dS5wcm9wZXJ0aWVzLmN0PWZ1bmN0aW9uKHQpe3ZhciBlLHI9dC5nZW9tZXRyeTtpZigiTXVsdGlQb2x5Z29uIj09PXIudHlwZSlmb3IodmFyIG49ci5jb29yZGluYXRlcyxhPTAscz0wO3M8bi5sZW5ndGg7cysrKXt2YXIgbD17dHlwZToiUG9seWdvbiIsY29vcmRpbmF0ZXM6bltzXX0sYz1pLmRlZmF1bHQobCk7Yz5hJiYoYT1jLGU9bCl9ZWxzZSBlPXI7cmV0dXJuIG8uZGVmYXVsdChlKS5nZW9tZXRyeS5jb29yZGluYXRlc30odSksbi5mSW49dCxuLmZPdXQ9dSxzLnB1c2godSl9ZWxzZSBjLmxvZyhbIkxvY2F0aW9uIixuLmxvYywiZG9lcyBub3QgaGF2ZSBhIHZhbGlkIEdlb0pTT04gZ2VvbWV0cnkuIiwiVHJhY2VzIHdpdGggbG9jYXRpb25tb2RlICpnZW9qc29uLWlkKiBvbmx5IHN1cHBvcnQiLCIqUG9seWdvbiogYW5kICpNdWx0aVBvbHlnb24qIGdlb21ldHJpZXMuIl0uam9pbigiICIpKX1kZWxldGUgYVtyXX1zd2l0Y2goci50eXBlKXtjYXNlIkZlYXR1cmVDb2xsZWN0aW9uIjp2YXIgZj1yLmZlYXR1cmVzO2ZvcihuPTA7bjxmLmxlbmd0aDtuKyspdShmW25dKTticmVhaztjYXNlIkZlYXR1cmUiOnUocik7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gYy53YXJuKFsiSW52YWxpZCBHZW9KU09OIHR5cGUiLChyLnR5cGV8fCJub25lIikrIi4iLCJUcmFjZXMgd2l0aCBsb2NhdGlvbm1vZGUgKmdlb2pzb24taWQqIG9ubHkgc3VwcG9ydCIsIipGZWF0dXJlQ29sbGVjdGlvbiogYW5kICpGZWF0dXJlKiB0eXBlcy4iXS5qb2luKCIgIikpLCExfWZvcih2YXIgcCBpbiBhKWMubG9nKFsiTG9jYXRpb24gKiIrcCsiKiIsImRvZXMgbm90IGhhdmUgYSBtYXRjaGluZyBmZWF0dXJlIHdpdGggaWQta2V5IiwiKiIrZS5mZWF0dXJlaWRrZXkrIiouIl0uam9pbigiICIpKTtyZXR1cm4gc30sZmV0Y2hUcmFjZUdlb0RhdGE6ZnVuY3Rpb24odCl7dmFyIGU9d2luZG93LlBsb3RseUdlb0Fzc2V0c3x8e30scj1bXTtmdW5jdGlvbiBhKHQpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyLGEpe24uanNvbih0LGZ1bmN0aW9uKG4saSl7aWYobil7ZGVsZXRlIGVbdF07dmFyIG89NDA0PT09bi5zdGF0dXM/J0dlb0pTT04gYXQgVVJMICInK3QrJyIgZG9lcyBub3QgZXhpc3QuJzoiVW5leHBlY3RlZCBlcnJvciB3aGlsZSBmZXRjaGluZyBmcm9tICIrdDtyZXR1cm4gYShuZXcgRXJyb3IobykpfXJldHVybiBlW3RdPWkscihpKX0pfSl9ZnVuY3Rpb24gaSh0KXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocixuKXt2YXIgYT0wLGk9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtyZXR1cm4gZVt0XSYmInBlbmRpbmciIT09ZVt0XT8oY2xlYXJJbnRlcnZhbChpKSxyKGVbdF0pKTphPjEwMD8oY2xlYXJJbnRlcnZhbChpKSxuKCJVbmV4cGVjdGVkIGVycm9yIHdoaWxlIGZldGNoaW5nIGZyb20gIit0KSk6dm9pZCBhKyt9LDUwKX0pfWZvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXt2YXIgcz10W29dWzBdLnRyYWNlLmdlb2pzb247InN0cmluZyI9PXR5cGVvZiBzJiYoZVtzXT8icGVuZGluZyI9PT1lW3NdJiZyLnB1c2goaShzKSk6KGVbc109InBlbmRpbmciLHIucHVzaChhKHMpKSkpfXJldHVybiByfSxjb21wdXRlQmJveDpmdW5jdGlvbih0KXtyZXR1cm4gcy5kZWZhdWx0KHQpfX19LHsiLi9pZGVudGl0eSI6NzE2LCIuL2lzX3BsYWluX29iamVjdCI6NzE4LCIuL2xvZ2dlcnMiOjcyMSwiLi9uZXN0ZWRfcHJvcGVydHkiOjcyNSwiLi9wb2x5Z29uIjo3MjksIkB0dXJmL2FyZWEiOjU3LCJAdHVyZi9iYm94Ijo1OCwiQHR1cmYvY2VudHJvaWQiOjU5LCJjb3VudHJ5LXJlZ2V4IjoxMzYsZDM6MTY1fV0sNzEyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5CQUROVU07ci5jYWxjVHJhY2VUb0xpbmVDb29yZHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRbMF0udHJhY2UuY29ubmVjdGdhcHMscj1bXSxhPVtdLGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIG89dFtpXS5sb25sYXQ7b1swXSE9PW4/YS5wdXNoKG8pOiFlJiZhLmxlbmd0aD4wJiYoci5wdXNoKGEpLGE9W10pfXJldHVybiBhLmxlbmd0aD4wJiZyLnB1c2goYSkscn0sci5tYWtlTGluZT1mdW5jdGlvbih0KXtyZXR1cm4gMT09PXQubGVuZ3RoP3t0eXBlOiJMaW5lU3RyaW5nIixjb29yZGluYXRlczp0WzBdfTp7dHlwZToiTXVsdGlMaW5lU3RyaW5nIixjb29yZGluYXRlczp0fX0sci5tYWtlUG9seWdvbj1mdW5jdGlvbih0KXtpZigxPT09dC5sZW5ndGgpcmV0dXJue3R5cGU6IlBvbHlnb24iLGNvb3JkaW5hdGVzOnR9O2Zvcih2YXIgZT1uZXcgQXJyYXkodC5sZW5ndGgpLHI9MDtyPHQubGVuZ3RoO3IrKyllW3JdPVt0W3JdXTtyZXR1cm57dHlwZToiTXVsdGlQb2x5Z29uIixjb29yZGluYXRlczplfX0sci5tYWtlQmxhbms9ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToiUG9pbnQiLGNvb3JkaW5hdGVzOltdfX19LHsiLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NjkzfV0sNzEzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuLGEsaSxvPXQoIi4vbW9kIikubW9kO2Z1bmN0aW9uIHModCxlLHIsbixhLGksbyxzKXt2YXIgbD1yLXQsYz1hLXQsdT1vLWEsaD1uLWUsZj1pLWUscD1zLWksZD1sKnAtdSpoO2lmKDA9PT1kKXJldHVybiBudWxsO3ZhciBnPShjKnAtdSpmKS9kLHY9KGMqaC1sKmYpL2Q7cmV0dXJuIHY8MHx8dj4xfHxnPDB8fGc+MT9udWxsOnt4OnQrbCpnLHk6ZStoKmd9fWZ1bmN0aW9uIGwodCxlLHIsbixhKXt2YXIgaT1uKnQrYSplO2lmKGk8MClyZXR1cm4gbipuK2EqYTtpZihpPnIpe3ZhciBvPW4tdCxzPWEtZTtyZXR1cm4gbypvK3Mqc312YXIgbD1uKmUtYSp0O3JldHVybiBsKmwvcn1yLnNlZ21lbnRzSW50ZXJzZWN0PXMsci5zZWdtZW50RGlzdGFuY2U9ZnVuY3Rpb24odCxlLHIsbixhLGksbyxjKXtpZihzKHQsZSxyLG4sYSxpLG8sYykpcmV0dXJuIDA7dmFyIHU9ci10LGg9bi1lLGY9by1hLHA9Yy1pLGQ9dSp1K2gqaCxnPWYqZitwKnAsdj1NYXRoLm1pbihsKHUsaCxkLGEtdCxpLWUpLGwodSxoLGQsby10LGMtZSksbChmLHAsZyx0LWEsZS1pKSxsKGYscCxnLHItYSxuLWkpKTtyZXR1cm4gTWF0aC5zcXJ0KHYpfSxyLmdldFRleHRMb2NhdGlvbj1mdW5jdGlvbih0LGUscixzKXtpZih0PT09YSYmcz09PWl8fChuPXt9LGE9dCxpPXMpLG5bcl0pcmV0dXJuIG5bcl07dmFyIGw9dC5nZXRQb2ludEF0TGVuZ3RoKG8oci1zLzIsZSkpLGM9dC5nZXRQb2ludEF0TGVuZ3RoKG8ocitzLzIsZSkpLHU9TWF0aC5hdGFuKChjLnktbC55KS8oYy54LWwueCkpLGg9dC5nZXRQb2ludEF0TGVuZ3RoKG8ocixlKSksZj17eDooNCpoLngrbC54K2MueCkvNix5Oig0KmgueStsLnkrYy55KS82LHRoZXRhOnV9O3JldHVybiBuW3JdPWYsZn0sci5jbGVhckxvY2F0aW9uQ2FjaGU9ZnVuY3Rpb24oKXthPW51bGx9LHIuZ2V0VmlzaWJsZVNlZ21lbnQ9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGEsaT1lLmxlZnQsbz1lLnJpZ2h0LHM9ZS50b3AsbD1lLmJvdHRvbSxjPTAsdT10LmdldFRvdGFsTGVuZ3RoKCksaD11O2Z1bmN0aW9uIGYoZSl7dmFyIHI9dC5nZXRQb2ludEF0TGVuZ3RoKGUpOzA9PT1lP249cjplPT09dSYmKGE9cik7dmFyIGM9ci54PGk/aS1yLng6ci54Pm8/ci54LW86MCxoPXIueTxzP3Mtci55OnIueT5sP3IueS1sOjA7cmV0dXJuIE1hdGguc3FydChjKmMraCpoKX1mb3IodmFyIHA9ZihjKTtwOyl7aWYoKGMrPXArcik+aClyZXR1cm47cD1mKGMpfWZvcihwPWYoaCk7cDspe2lmKGM+KGgtPXArcikpcmV0dXJuO3A9ZihoKX1yZXR1cm57bWluOmMsbWF4OmgsbGVuOmgtYyx0b3RhbDp1LGlzQ2xvc2VkOjA9PT1jJiZoPT09dSYmTWF0aC5hYnMobi54LWEueCk8LjEmJk1hdGguYWJzKG4ueS1hLnkpPC4xfX0sci5maW5kUG9pbnRPblBhdGg9ZnVuY3Rpb24odCxlLHIsbil7Zm9yKHZhciBhLGksbyxzPShuPW58fHt9KS5wYXRoTGVuZ3RofHx0LmdldFRvdGFsTGVuZ3RoKCksbD1uLnRvbGVyYW5jZXx8LjAwMSxjPW4uaXRlcmF0aW9uTGltaXR8fDMwLHU9dC5nZXRQb2ludEF0TGVuZ3RoKDApW3JdPnQuZ2V0UG9pbnRBdExlbmd0aChzKVtyXT8tMToxLGg9MCxmPTAscD1zO2g8Yzspe2lmKGE9KGYrcCkvMixvPShpPXQuZ2V0UG9pbnRBdExlbmd0aChhKSlbcl0tZSxNYXRoLmFicyhvKTxsKXJldHVybiBpO3Uqbz4wP3A9YTpmPWEsaCsrfXJldHVybiBpfX0seyIuL21vZCI6NzI0fV0sNzE0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksYT10KCJ0aW55Y29sb3IyIiksaT10KCJjb2xvci1ub3JtYWxpemUiKSxvPXQoIi4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLHM9dCgiLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIikuZGVmYXVsdExpbmUsbD10KCIuL2FycmF5IikuaXNBcnJheU9yVHlwZWRBcnJheSxjPWkocyksdT0xO2Z1bmN0aW9uIGgodCxlKXt2YXIgcj10O3JldHVybiByWzNdKj1lLHJ9ZnVuY3Rpb24gZih0KXtpZihuKHQpKXJldHVybiBjO3ZhciBlPWkodCk7cmV0dXJuIGUubGVuZ3RoP2U6Y31mdW5jdGlvbiBwKHQpe3JldHVybiBuKHQpP3Q6dX1lLmV4cG9ydHM9e2Zvcm1hdENvbG9yOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbixhLHMsZCxnLHY9dC5jb2xvcixtPWwodikseT1sKGUpLHg9by5leHRyYWN0T3B0cyh0KSxiPVtdO2lmKG49dm9pZCAwIT09eC5jb2xvcnNjYWxlP28ubWFrZUNvbG9yU2NhbGVGdW5jRnJvbVRyYWNlKHQpOmYsYT1tP2Z1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PXRbZV0/YzppKG4odFtlXSkpfTpmLHM9eT9mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT10W2VdP3U6cCh0W2VdKX06cCxtfHx5KWZvcih2YXIgXz0wO188cjtfKyspZD1hKHYsXyksZz1zKGUsXyksYltfXT1oKGQsZyk7ZWxzZSBiPWgoaSh2KSxlKTtyZXR1cm4gYn0scGFyc2VDb2xvclNjYWxlOmZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9MSk7dmFyIHI9by5leHRyYWN0T3B0cyh0KTtyZXR1cm4oci5yZXZlcnNlc2NhbGU/by5mbGlwU2NhbGUoci5jb2xvcnNjYWxlKTpyLmNvbG9yc2NhbGUpLm1hcChmdW5jdGlvbih0KXt2YXIgcj10WzBdLG49YSh0WzFdKS50b1JnYigpO3JldHVybntpbmRleDpyLHJnYjpbbi5yLG4uZyxuLmIsZV19fSl9fX0seyIuLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiOjU5MSwiLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIjo2MDQsIi4vYXJyYXkiOjcwMCwiY29sb3Itbm9ybWFsaXplIjoxMjIsImZhc3QtaXNudW1lcmljIjoyMjgsdGlueWNvbG9yMjo1MzZ9XSw3MTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9pZGVudGl0eSIpO2Z1bmN0aW9uIGEodCl7cmV0dXJuW3RdfWUuZXhwb3J0cz17a2V5RnVuOmZ1bmN0aW9uKHQpe3JldHVybiB0LmtleX0scmVwZWF0OmEsZGVzY2VuZDpuLHdyYXA6YSx1bndyYXA6ZnVuY3Rpb24odCl7cmV0dXJuIHRbMF19fX0seyIuL2lkZW50aXR5Ijo3MTZ9XSw3MTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0fX0se31dLDcxNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGE9dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4uL2NvbnN0YW50cy9udW1lcmljYWwiKSxvPWkuRlBfU0FGRSxzPWkuQkFETlVNLGw9ZS5leHBvcnRzPXt9O2wubmVzdGVkUHJvcGVydHk9dCgiLi9uZXN0ZWRfcHJvcGVydHkiKSxsLmtleWVkQ29udGFpbmVyPXQoIi4va2V5ZWRfY29udGFpbmVyIiksbC5yZWxhdGl2ZUF0dHI9dCgiLi9yZWxhdGl2ZV9hdHRyIiksbC5pc1BsYWluT2JqZWN0PXQoIi4vaXNfcGxhaW5fb2JqZWN0IiksbC50b0xvZ1JhbmdlPXQoIi4vdG9fbG9nX3JhbmdlIiksbC5yZWxpbmtQcml2YXRlS2V5cz10KCIuL3JlbGlua19wcml2YXRlIik7dmFyIGM9dCgiLi9hcnJheSIpO2wuaXNUeXBlZEFycmF5PWMuaXNUeXBlZEFycmF5LGwuaXNBcnJheU9yVHlwZWRBcnJheT1jLmlzQXJyYXlPclR5cGVkQXJyYXksbC5pc0FycmF5MUQ9Yy5pc0FycmF5MUQsbC5lbnN1cmVBcnJheT1jLmVuc3VyZUFycmF5LGwuY29uY2F0PWMuY29uY2F0LGwubWF4Um93TGVuZ3RoPWMubWF4Um93TGVuZ3RoLGwubWluUm93TGVuZ3RoPWMubWluUm93TGVuZ3RoO3ZhciB1PXQoIi4vbW9kIik7bC5tb2Q9dS5tb2QsbC5tb2RIYWxmPXUubW9kSGFsZjt2YXIgaD10KCIuL2NvZXJjZSIpO2wudmFsT2JqZWN0TWV0YT1oLnZhbE9iamVjdE1ldGEsbC5jb2VyY2U9aC5jb2VyY2UsbC5jb2VyY2UyPWguY29lcmNlMixsLmNvZXJjZUZvbnQ9aC5jb2VyY2VGb250LGwuY29lcmNlSG92ZXJpbmZvPWguY29lcmNlSG92ZXJpbmZvLGwuY29lcmNlU2VsZWN0aW9uTWFya2VyT3BhY2l0eT1oLmNvZXJjZVNlbGVjdGlvbk1hcmtlck9wYWNpdHksbC52YWxpZGF0ZT1oLnZhbGlkYXRlO3ZhciBmPXQoIi4vZGF0ZXMiKTtsLmRhdGVUaW1lMm1zPWYuZGF0ZVRpbWUybXMsbC5pc0RhdGVUaW1lPWYuaXNEYXRlVGltZSxsLm1zMkRhdGVUaW1lPWYubXMyRGF0ZVRpbWUsbC5tczJEYXRlVGltZUxvY2FsPWYubXMyRGF0ZVRpbWVMb2NhbCxsLmNsZWFuRGF0ZT1mLmNsZWFuRGF0ZSxsLmlzSlNEYXRlPWYuaXNKU0RhdGUsbC5mb3JtYXREYXRlPWYuZm9ybWF0RGF0ZSxsLmluY3JlbWVudE1vbnRoPWYuaW5jcmVtZW50TW9udGgsbC5kYXRlVGljazA9Zi5kYXRlVGljazAsbC5kZmx0UmFuZ2U9Zi5kZmx0UmFuZ2UsbC5maW5kRXhhY3REYXRlcz1mLmZpbmRFeGFjdERhdGVzLGwuTUlOX01TPWYuTUlOX01TLGwuTUFYX01TPWYuTUFYX01TO3ZhciBwPXQoIi4vc2VhcmNoIik7bC5maW5kQmluPXAuZmluZEJpbixsLnNvcnRlckFzYz1wLnNvcnRlckFzYyxsLnNvcnRlckRlcz1wLnNvcnRlckRlcyxsLmRpc3RpbmN0VmFscz1wLmRpc3RpbmN0VmFscyxsLnJvdW5kVXA9cC5yb3VuZFVwLGwuc29ydD1wLnNvcnQsbC5maW5kSW5kZXhPZk1pbj1wLmZpbmRJbmRleE9mTWluO3ZhciBkPXQoIi4vc3RhdHMiKTtsLmFnZ051bXM9ZC5hZ2dOdW1zLGwubGVuPWQubGVuLGwubWVhbj1kLm1lYW4sbC5tZWRpYW49ZC5tZWRpYW4sbC5taWRSYW5nZT1kLm1pZFJhbmdlLGwudmFyaWFuY2U9ZC52YXJpYW5jZSxsLnN0ZGV2PWQuc3RkZXYsbC5pbnRlcnA9ZC5pbnRlcnA7dmFyIGc9dCgiLi9tYXRyaXgiKTtsLmluaXQyZEFycmF5PWcuaW5pdDJkQXJyYXksbC50cmFuc3Bvc2VSYWdnZWQ9Zy50cmFuc3Bvc2VSYWdnZWQsbC5kb3Q9Zy5kb3QsbC50cmFuc2xhdGlvbk1hdHJpeD1nLnRyYW5zbGF0aW9uTWF0cml4LGwucm90YXRpb25NYXRyaXg9Zy5yb3RhdGlvbk1hdHJpeCxsLnJvdGF0aW9uWFlNYXRyaXg9Zy5yb3RhdGlvblhZTWF0cml4LGwuYXBwbHkyRFRyYW5zZm9ybT1nLmFwcGx5MkRUcmFuc2Zvcm0sbC5hcHBseTJEVHJhbnNmb3JtMj1nLmFwcGx5MkRUcmFuc2Zvcm0yO3ZhciB2PXQoIi4vYW5nbGVzIik7bC5kZWcycmFkPXYuZGVnMnJhZCxsLnJhZDJkZWc9di5yYWQyZGVnLGwuYW5nbGVEZWx0YT12LmFuZ2xlRGVsdGEsbC5hbmdsZURpc3Q9di5hbmdsZURpc3QsbC5pc0Z1bGxDaXJjbGU9di5pc0Z1bGxDaXJjbGUsbC5pc0FuZ2xlSW5zaWRlU2VjdG9yPXYuaXNBbmdsZUluc2lkZVNlY3RvcixsLmlzUHRJbnNpZGVTZWN0b3I9di5pc1B0SW5zaWRlU2VjdG9yLGwucGF0aEFyYz12LnBhdGhBcmMsbC5wYXRoU2VjdG9yPXYucGF0aFNlY3RvcixsLnBhdGhBbm51bHVzPXYucGF0aEFubnVsdXM7dmFyIG09dCgiLi9hbmNob3JfdXRpbHMiKTtsLmlzTGVmdEFuY2hvcj1tLmlzTGVmdEFuY2hvcixsLmlzQ2VudGVyQW5jaG9yPW0uaXNDZW50ZXJBbmNob3IsbC5pc1JpZ2h0QW5jaG9yPW0uaXNSaWdodEFuY2hvcixsLmlzVG9wQW5jaG9yPW0uaXNUb3BBbmNob3IsbC5pc01pZGRsZUFuY2hvcj1tLmlzTWlkZGxlQW5jaG9yLGwuaXNCb3R0b21BbmNob3I9bS5pc0JvdHRvbUFuY2hvcjt2YXIgeT10KCIuL2dlb21ldHJ5MmQiKTtsLnNlZ21lbnRzSW50ZXJzZWN0PXkuc2VnbWVudHNJbnRlcnNlY3QsbC5zZWdtZW50RGlzdGFuY2U9eS5zZWdtZW50RGlzdGFuY2UsbC5nZXRUZXh0TG9jYXRpb249eS5nZXRUZXh0TG9jYXRpb24sbC5jbGVhckxvY2F0aW9uQ2FjaGU9eS5jbGVhckxvY2F0aW9uQ2FjaGUsbC5nZXRWaXNpYmxlU2VnbWVudD15LmdldFZpc2libGVTZWdtZW50LGwuZmluZFBvaW50T25QYXRoPXkuZmluZFBvaW50T25QYXRoO3ZhciB4PXQoIi4vZXh0ZW5kIik7bC5leHRlbmRGbGF0PXguZXh0ZW5kRmxhdCxsLmV4dGVuZERlZXA9eC5leHRlbmREZWVwLGwuZXh0ZW5kRGVlcEFsbD14LmV4dGVuZERlZXBBbGwsbC5leHRlbmREZWVwTm9BcnJheXM9eC5leHRlbmREZWVwTm9BcnJheXM7dmFyIGI9dCgiLi9sb2dnZXJzIik7bC5sb2c9Yi5sb2csbC53YXJuPWIud2FybixsLmVycm9yPWIuZXJyb3I7dmFyIF89dCgiLi9yZWdleCIpO2wuY291bnRlclJlZ2V4PV8uY291bnRlcjt2YXIgdz10KCIuL3Rocm90dGxlIik7bC50aHJvdHRsZT13LnRocm90dGxlLGwudGhyb3R0bGVEb25lPXcuZG9uZSxsLmNsZWFyVGhyb3R0bGU9dy5jbGVhcjt2YXIgaz10KCIuL2RvbSIpO2Z1bmN0aW9uIFQodCl7dmFyIGU9e307Zm9yKHZhciByIGluIHQpZm9yKHZhciBuPXRbcl0sYT0wO2E8bi5sZW5ndGg7YSsrKWVbblthXV09K3I7cmV0dXJuIGV9bC5nZXRHcmFwaERpdj1rLmdldEdyYXBoRGl2LGwuaXNQbG90RGl2PWsuaXNQbG90RGl2LGwucmVtb3ZlRWxlbWVudD1rLnJlbW92ZUVsZW1lbnQsbC5hZGRTdHlsZVJ1bGU9ay5hZGRTdHlsZVJ1bGUsbC5hZGRSZWxhdGVkU3R5bGVSdWxlPWsuYWRkUmVsYXRlZFN0eWxlUnVsZSxsLmRlbGV0ZVJlbGF0ZWRTdHlsZVJ1bGU9ay5kZWxldGVSZWxhdGVkU3R5bGVSdWxlLGwuY2xlYXJSZXNwb25zaXZlPXQoIi4vY2xlYXJfcmVzcG9uc2l2ZSIpLGwubWFrZVRyYWNlR3JvdXBzPXQoIi4vbWFrZV90cmFjZV9ncm91cHMiKSxsLl89dCgiLi9sb2NhbGl6ZSIpLGwubm90aWZpZXI9dCgiLi9ub3RpZmllciIpLGwuZmlsdGVyVW5pcXVlPXQoIi4vZmlsdGVyX3VuaXF1ZSIpLGwuZmlsdGVyVmlzaWJsZT10KCIuL2ZpbHRlcl92aXNpYmxlIiksbC5wdXNoVW5pcXVlPXQoIi4vcHVzaF91bmlxdWUiKSxsLmNsZWFuTnVtYmVyPXQoIi4vY2xlYW5fbnVtYmVyIiksbC5lbnN1cmVOdW1iZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGEodCk/KHQ9TnVtYmVyKHQpKTwtb3x8dD5vP3M6YSh0KT9OdW1iZXIodCk6czpzfSxsLmlzSW5kZXg9ZnVuY3Rpb24odCxlKXtyZXR1cm4hKHZvaWQgMCE9PWUmJnQ+PWUpJiYoYSh0KSYmdD49MCYmdCUxPT0wKX0sbC5ub29wPXQoIi4vbm9vcCIpLGwuaWRlbnRpdHk9dCgiLi9pZGVudGl0eSIpLGwucmVwZWF0PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPW5ldyBBcnJheShlKSxuPTA7bjxlO24rKylyW25dPXQ7cmV0dXJuIHJ9LGwuc3dhcEF0dHJzPWZ1bmN0aW9uKHQsZSxyLG4pe3J8fChyPSJ4Iiksbnx8KG49InkiKTtmb3IodmFyIGE9MDthPGUubGVuZ3RoO2ErKyl7dmFyIGk9ZVthXSxvPWwubmVzdGVkUHJvcGVydHkodCxpLnJlcGxhY2UoIj8iLHIpKSxzPWwubmVzdGVkUHJvcGVydHkodCxpLnJlcGxhY2UoIj8iLG4pKSxjPW8uZ2V0KCk7by5zZXQocy5nZXQoKSkscy5zZXQoYyl9fSxsLnJhaXNlVG9Ub3A9ZnVuY3Rpb24odCl7dC5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHQpfSxsLmNhbmNlbFRyYW5zaXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIHQudHJhbnNpdGlvbigpLmR1cmF0aW9uKDApfSxsLmNvbnN0cmFpbj1mdW5jdGlvbih0LGUscil7cmV0dXJuIGU+cj9NYXRoLm1heChyLE1hdGgubWluKGUsdCkpOk1hdGgubWF4KGUsTWF0aC5taW4ocix0KSl9LGwuYkJveEludGVyc2VjdD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHI9cnx8MCx0LmxlZnQ8PWUucmlnaHQrciYmZS5sZWZ0PD10LnJpZ2h0K3ImJnQudG9wPD1lLmJvdHRvbStyJiZlLnRvcDw9dC5ib3R0b20rcn0sbC5zaW1wbGVNYXA9ZnVuY3Rpb24odCxlLHIsbil7Zm9yKHZhciBhPXQubGVuZ3RoLGk9bmV3IEFycmF5KGEpLG89MDtvPGE7bysrKWlbb109ZSh0W29dLHIsbik7cmV0dXJuIGl9LGwucmFuZHN0cj1mdW5jdGlvbiB0KGUscixuLGEpe2lmKG58fChuPTE2KSx2b2lkIDA9PT1yJiYocj0yNCkscjw9MClyZXR1cm4iMCI7dmFyIGksbyxzPU1hdGgubG9nKE1hdGgucG93KDIscikpL01hdGgubG9nKG4pLGM9IiI7Zm9yKGk9MjtzPT09MS8wO2kqPTIpcz1NYXRoLmxvZyhNYXRoLnBvdygyLHIvaSkpL01hdGgubG9nKG4pKmk7dmFyIHU9cy1NYXRoLmZsb29yKHMpO2ZvcihpPTA7aTxNYXRoLmZsb29yKHMpO2krKyljPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpuKS50b1N0cmluZyhuKStjO3UmJihvPU1hdGgucG93KG4sdSksYz1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqbykudG9TdHJpbmcobikrYyk7dmFyIGg9cGFyc2VJbnQoYyxuKTtyZXR1cm4gZSYmZVtjXXx8aCE9PTEvMCYmaD49TWF0aC5wb3coMixyKT9hPjEwPyhsLndhcm4oInJhbmRzdHIgZmFpbGVkIHVuaXF1ZW5lc3MiKSxjKTp0KGUscixuLChhfHwwKSsxKTpjfSxsLk9wdGlvbkNvbnRyb2w9ZnVuY3Rpb24odCxlKXt0fHwodD17fSksZXx8KGU9Im9wdCIpO3ZhciByPXtvcHRpb25MaXN0OltdLF9uZXdvcHRpb246ZnVuY3Rpb24obil7bltlXT10LHJbbi5uYW1lXT1uLHIub3B0aW9uTGlzdC5wdXNoKG4pfX07cmV0dXJuIHJbIl8iK2VdPXQscn0sbC5zbW9vdGg9ZnVuY3Rpb24odCxlKXtpZigoZT1NYXRoLnJvdW5kKGUpfHwwKTwyKXJldHVybiB0O3ZhciByLG4sYSxpLG89dC5sZW5ndGgscz0yKm8sbD0yKmUtMSxjPW5ldyBBcnJheShsKSx1PW5ldyBBcnJheShvKTtmb3Iocj0wO3I8bDtyKyspY1tyXT0oMS1NYXRoLmNvcyhNYXRoLlBJKihyKzEpL2UpKS8oMiplKTtmb3Iocj0wO3I8bztyKyspe2ZvcihpPTAsbj0wO248bDtuKyspKGE9cituKzEtZSk8LW8/YS09cypNYXRoLnJvdW5kKGEvcyk6YT49cyYmKGEtPXMqTWF0aC5mbG9vcihhL3MpKSxhPDA/YT0tMS1hOmE+PW8mJihhPXMtMS1hKSxpKz10W2FdKmNbbl07dVtyXT1pfXJldHVybiB1fSxsLnN5bmNPckFzeW5jPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbjtmdW5jdGlvbiBhKCl7cmV0dXJuIGwuc3luY09yQXN5bmModCxlLHIpfWZvcig7dC5sZW5ndGg7KWlmKChuPSgwLHQuc3BsaWNlKDAsMSlbMF0pKGUpKSYmbi50aGVuKXJldHVybiBuLnRoZW4oYSkudGhlbih2b2lkIDAsbC5wcm9taXNlRXJyb3IpO3JldHVybiByJiZyKGUpfSxsLnN0cmlwVHJhaWxpbmdTbGFzaD1mdW5jdGlvbih0KXtyZXR1cm4iLyI9PT10LnN1YnN0cigtMSk/dC5zdWJzdHIoMCx0Lmxlbmd0aC0xKTp0fSxsLm5vbmVPckFsbD1mdW5jdGlvbih0LGUscil7aWYodCl7dmFyIG4sYT0hMSxpPSEwO2ZvcihuPTA7bjxyLmxlbmd0aDtuKyspbnVsbCE9dFtyW25dXT9hPSEwOmk9ITE7aWYoYSYmIWkpZm9yKG49MDtuPHIubGVuZ3RoO24rKyl0W3Jbbl1dPWVbcltuXV19fSxsLm1lcmdlQXJyYXk9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9ImZ1bmN0aW9uIj09dHlwZW9mIG47aWYobC5pc0FycmF5T3JUeXBlZEFycmF5KHQpKWZvcih2YXIgaT1NYXRoLm1pbih0Lmxlbmd0aCxlLmxlbmd0aCksbz0wO288aTtvKyspe3ZhciBzPXRbb107ZVtvXVtyXT1hP24ocyk6c319LGwubWVyZ2VBcnJheUNhc3RQb3NpdGl2ZT1mdW5jdGlvbih0LGUscil7cmV0dXJuIGwubWVyZ2VBcnJheSh0LGUscixmdW5jdGlvbih0KXt2YXIgZT0rdDtyZXR1cm4gaXNGaW5pdGUoZSkmJmU+MD9lOjB9KX0sbC5maWxsQXJyYXk9ZnVuY3Rpb24odCxlLHIsbil7aWYobj1ufHxsLmlkZW50aXR5LGwuaXNBcnJheU9yVHlwZWRBcnJheSh0KSlmb3IodmFyIGE9MDthPGUubGVuZ3RoO2ErKyllW2FdW3JdPW4odFthXSl9LGwuY2FzdE9wdGlvbj1mdW5jdGlvbih0LGUscixuKXtuPW58fGwuaWRlbnRpdHk7dmFyIGE9bC5uZXN0ZWRQcm9wZXJ0eSh0LHIpLmdldCgpO3JldHVybiBsLmlzQXJyYXlPclR5cGVkQXJyYXkoYSk/QXJyYXkuaXNBcnJheShlKSYmbC5pc0FycmF5T3JUeXBlZEFycmF5KGFbZVswXV0pP24oYVtlWzBdXVtlWzFdXSk6bihhW2VdKTphfSxsLmV4dHJhY3RPcHRpb249ZnVuY3Rpb24odCxlLHIsbil7aWYociBpbiB0KXJldHVybiB0W3JdO3ZhciBhPWwubmVzdGVkUHJvcGVydHkoZSxuKS5nZXQoKTtyZXR1cm4gQXJyYXkuaXNBcnJheShhKT92b2lkIDA6YX0sbC50YWdTZWxlY3RlZD1mdW5jdGlvbih0LGUscil7dmFyIG4sYSxpPWUuc2VsZWN0ZWRwb2ludHMsbz1lLl9pbmRleFRvUG9pbnRzO28mJihuPVQobykpO2Zvcih2YXIgcz0wO3M8aS5sZW5ndGg7cysrKXt2YXIgYz1pW3NdO2lmKGwuaXNJbmRleChjKXx8bC5pc0FycmF5T3JUeXBlZEFycmF5KGMpJiZsLmlzSW5kZXgoY1swXSkmJmwuaXNJbmRleChjWzFdKSl7dmFyIHU9bj9uW2NdOmMsaD1yP3JbdV06dTt2b2lkIDAhPT0oYT1oKSYmYTx0Lmxlbmd0aCYmKHRbaF0uc2VsZWN0ZWQ9MSl9fX0sbC5zZWxJbmRpY2VzMnNlbFBvaW50cz1mdW5jdGlvbih0KXt2YXIgZT10LnNlbGVjdGVkcG9pbnRzLHI9dC5faW5kZXhUb1BvaW50cztpZihyKXtmb3IodmFyIG49VChyKSxhPVtdLGk9MDtpPGUubGVuZ3RoO2krKyl7dmFyIG89ZVtpXTtpZihsLmlzSW5kZXgobykpe3ZhciBzPW5bb107bC5pc0luZGV4KHMpJiZhLnB1c2gocyl9fXJldHVybiBhfXJldHVybiBlfSxsLmdldFRhcmdldEFycmF5PWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS50YXJnZXQ7aWYoInN0cmluZyI9PXR5cGVvZiByJiZyKXt2YXIgbj1sLm5lc3RlZFByb3BlcnR5KHQscikuZ2V0KCk7cmV0dXJuISFBcnJheS5pc0FycmF5KG4pJiZufXJldHVybiEhQXJyYXkuaXNBcnJheShyKSYmcn0sbC5taW5FeHRlbmQ9ZnVuY3Rpb24odCxlKXt2YXIgcj17fTsib2JqZWN0IiE9dHlwZW9mIGUmJihlPXt9KTt2YXIgbixhLGksbz1PYmplY3Qua2V5cyh0KTtmb3Iobj0wO248by5sZW5ndGg7bisrKWk9dFthPW9bbl1dLCJfIiE9PWEuY2hhckF0KDApJiYiZnVuY3Rpb24iIT10eXBlb2YgaSYmKCJtb2R1bGUiPT09YT9yW2FdPWk6QXJyYXkuaXNBcnJheShpKT9yW2FdPSJjb2xvcnNjYWxlIj09PWE/aS5zbGljZSgpOmkuc2xpY2UoMCwzKTpsLmlzVHlwZWRBcnJheShpKT9yW2FdPWkuc3ViYXJyYXkoMCwzKTpyW2FdPWkmJiJvYmplY3QiPT10eXBlb2YgaT9sLm1pbkV4dGVuZCh0W2FdLGVbYV0pOmkpO2ZvcihvPU9iamVjdC5rZXlzKGUpLG49MDtuPG8ubGVuZ3RoO24rKykib2JqZWN0Ij09dHlwZW9mKGk9ZVthPW9bbl1dKSYmYSBpbiByJiYib2JqZWN0Ij09dHlwZW9mIHJbYV18fChyW2FdPWkpO3JldHVybiByfSxsLnRpdGxlQ2FzZT1mdW5jdGlvbih0KXtyZXR1cm4gdC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSt0LnN1YnN0cigxKX0sbC5jb250YWluc0FueT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKWlmKC0xIT09dC5pbmRleE9mKGVbcl0pKXJldHVybiEwO3JldHVybiExfSxsLmlzSUU9ZnVuY3Rpb24oKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdy5uYXZpZ2F0b3IubXNTYXZlQmxvYn07dmFyIE09L01TSUUgWzEtOV1cLi87bC5pc0lFOW9yQmVsb3c9ZnVuY3Rpb24oKXtyZXR1cm4gbC5pc0lFKCkmJk0udGVzdCh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudCl9O3ZhciBBPS9WZXJzaW9uXC9bXGRcLl0rLipTYWZhcmkvO2wuaXNTYWZhcmk9ZnVuY3Rpb24oKXtyZXR1cm4gQS50ZXN0KHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50KX0sbC5pc0QzU2VsZWN0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgdC5jbGFzc2VkfSxsLmVuc3VyZVNpbmdsZT1mdW5jdGlvbih0LGUscixuKXt2YXIgYT10LnNlbGVjdChlKyhyPyIuIityOiIiKSk7aWYoYS5zaXplKCkpcmV0dXJuIGE7dmFyIGk9dC5hcHBlbmQoZSk7cmV0dXJuIHImJmkuY2xhc3NlZChyLCEwKSxuJiZpLmNhbGwobiksaX0sbC5lbnN1cmVTaW5nbGVCeUlkPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPXQuc2VsZWN0KGUrIiMiK3IpO2lmKGEuc2l6ZSgpKXJldHVybiBhO3ZhciBpPXQuYXBwZW5kKGUpLmF0dHIoImlkIixyKTtyZXR1cm4gbiYmaS5jYWxsKG4pLGl9LGwub2JqZWN0RnJvbVBhdGg9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIsbj10LnNwbGl0KCIuIiksYT1yPXt9LGk9MDtpPG4ubGVuZ3RoO2krKyl7dmFyIG89bltpXSxzPW51bGwsbD1uW2ldLm1hdGNoKC8oLiopXFsoWzAtOV0rKVxdLyk7bD8obz1sWzFdLHM9bFsyXSxyPXJbb109W10saT09PW4ubGVuZ3RoLTE/cltzXT1lOnJbc109e30scj1yW3NdKTooaT09PW4ubGVuZ3RoLTE/cltvXT1lOnJbb109e30scj1yW29dKX1yZXR1cm4gYX07dmFyIFM9L14oW15cW1wuXSspXC4oLispPy8sRT0vXihbXlwuXSspXFsoWzAtOV0rKVxdKFwuKT8oLispPy87bC5leHBhbmRPYmplY3RQYXRocz1mdW5jdGlvbih0KXt2YXIgZSxyLG4sYSxpLG8scztpZigib2JqZWN0Ij09dHlwZW9mIHQmJiFBcnJheS5pc0FycmF5KHQpKWZvcihyIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShyKSYmKChlPXIubWF0Y2goUykpPyhhPXRbcl0sbj1lWzFdLGRlbGV0ZSB0W3JdLHRbbl09bC5leHRlbmREZWVwTm9BcnJheXModFtuXXx8e30sbC5vYmplY3RGcm9tUGF0aChyLGwuZXhwYW5kT2JqZWN0UGF0aHMoYSkpW25dKSk6KGU9ci5tYXRjaChFKSk/KGE9dFtyXSxuPWVbMV0saT1wYXJzZUludChlWzJdKSxkZWxldGUgdFtyXSx0W25dPXRbbl18fFtdLCIuIj09PWVbM10/KHM9ZVs0XSxvPXRbbl1baV09dFtuXVtpXXx8e30sbC5leHRlbmREZWVwTm9BcnJheXMobyxsLm9iamVjdEZyb21QYXRoKHMsbC5leHBhbmRPYmplY3RQYXRocyhhKSkpKTp0W25dW2ldPWwuZXhwYW5kT2JqZWN0UGF0aHMoYSkpOnRbcl09bC5leHBhbmRPYmplY3RQYXRocyh0W3JdKSk7cmV0dXJuIHR9LGwubnVtU2VwYXJhdGU9ZnVuY3Rpb24odCxlLHIpe2lmKHJ8fChyPSExKSwic3RyaW5nIiE9dHlwZW9mIGV8fDA9PT1lLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIlNlcGFyYXRvciBzdHJpbmcgcmVxdWlyZWQgZm9yIGZvcm1hdHRpbmchIik7Im51bWJlciI9PXR5cGVvZiB0JiYodD1TdHJpbmcodCkpO3ZhciBuPS8oXGQrKShcZHszfSkvLGE9ZS5jaGFyQXQoMCksaT1lLmNoYXJBdCgxKSxvPXQuc3BsaXQoIi4iKSxzPW9bMF0sbD1vLmxlbmd0aD4xP2Erb1sxXToiIjtpZihpJiYoby5sZW5ndGg+MXx8cy5sZW5ndGg+NHx8cikpZm9yKDtuLnRlc3Qocyk7KXM9cy5yZXBsYWNlKG4sIiQxIitpKyIkMiIpO3JldHVybiBzK2x9LGwuVEVNUExBVEVfU1RSSU5HX1JFR0VYPS8leyhbXlxzJXt9Ol0qKShbOnxcfF1bXn1dKik/fS9nO3ZhciBMPS9eXHcqJC87bC50ZW1wbGF0ZVN0cmluZz1mdW5jdGlvbih0LGUpe3ZhciByPXt9O3JldHVybiB0LnJlcGxhY2UobC5URU1QTEFURV9TVFJJTkdfUkVHRVgsZnVuY3Rpb24odCxuKXt2YXIgYTtyZXR1cm4gTC50ZXN0KG4pP2E9ZVtuXToocltuXT1yW25dfHxsLm5lc3RlZFByb3BlcnR5KGUsbikuZ2V0LGE9cltuXSgpKSxsLmlzVmFsaWRUZXh0VmFsdWUoYSk/YToiIn0pfTt2YXIgQz17bWF4OjEwLGNvdW50OjAsbmFtZToiaG92ZXJ0ZW1wbGF0ZSJ9O2wuaG92ZXJ0ZW1wbGF0ZVN0cmluZz1mdW5jdGlvbigpe3JldHVybiB6LmFwcGx5KEMsYXJndW1lbnRzKX07dmFyIFA9e21heDoxMCxjb3VudDowLG5hbWU6InRleHR0ZW1wbGF0ZSJ9O2wudGV4dHRlbXBsYXRlU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHouYXBwbHkoUCxhcmd1bWVudHMpfTt2YXIgTz0vXls6fFx8XS87ZnVuY3Rpb24geih0LGUscil7dmFyIGE9dGhpcyxpPWFyZ3VtZW50cztlfHwoZT17fSk7dmFyIG89e307cmV0dXJuIHQucmVwbGFjZShsLlRFTVBMQVRFX1NUUklOR19SRUdFWCxmdW5jdGlvbih0LHMsYyl7dmFyIHUsaCxmLHA7Zm9yKGY9MztmPGkubGVuZ3RoO2YrKylpZih1PWlbZl0pe2lmKHUuaGFzT3duUHJvcGVydHkocykpe2g9dVtzXTticmVha31pZihMLnRlc3Qocyl8fChoPW9bc118fGwubmVzdGVkUHJvcGVydHkodSxzKS5nZXQoKSkmJihvW3NdPWgpLHZvaWQgMCE9PWgpYnJlYWt9aWYodm9pZCAwPT09aCYmYSlyZXR1cm4gYS5jb3VudDxhLm1heCYmKGwud2FybigiVmFyaWFibGUgJyIrcysiJyBpbiAiK2EubmFtZSsiIGNvdWxkIG5vdCBiZSBmb3VuZCEiKSxoPXQpLGEuY291bnQ9PT1hLm1heCYmbC53YXJuKCJUb28gbWFueSAiK2EubmFtZSsiIHdhcm5pbmdzIC0gYWRkaXRpb25hbCB3YXJuaW5ncyB3aWxsIGJlIHN1cHByZXNzZWQiKSxhLmNvdW50KyssdDtpZihjKXtpZigiOiI9PT1jWzBdJiYoaD0ocD1yP3IubnVtYmVyRm9ybWF0Om4uZm9ybWF0KShjLnJlcGxhY2UoTywiIikpKGgpKSwifCI9PT1jWzBdKXtwPXI/ci50aW1lRm9ybWF0LnV0YzpuLnRpbWUuZm9ybWF0LnV0Yzt2YXIgZD1sLmRhdGVUaW1lMm1zKGgpO2g9bC5mb3JtYXREYXRlKGQsYy5yZXBsYWNlKE8sIiIpLCExLHApfX1lbHNlIGUuaGFzT3duUHJvcGVydHkocysiTGFiZWwiKSYmKGg9ZVtzKyJMYWJlbCJdKTtyZXR1cm4gaH0pfWwuc3VicGxvdFNvcnQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9TWF0aC5taW4odC5sZW5ndGgsZS5sZW5ndGgpKzEsbj0wLGE9MCxpPTA7aTxyO2krKyl7dmFyIG89dC5jaGFyQ29kZUF0KGkpfHwwLHM9ZS5jaGFyQ29kZUF0KGkpfHwwLGw9bz49NDgmJm88PTU3LGM9cz49NDgmJnM8PTU3O2lmKGwmJihuPTEwKm4rby00OCksYyYmKGE9MTAqYStzLTQ4KSwhbHx8IWMpe2lmKG4hPT1hKXJldHVybiBuLWE7aWYobyE9PXMpcmV0dXJuIG8tc319cmV0dXJuIGEtbn07dmFyIEk9MmU5O2wuc2VlZFBzZXVkb1JhbmRvbT1mdW5jdGlvbigpe0k9MmU5fSxsLnBzZXVkb1JhbmRvbT1mdW5jdGlvbigpe3ZhciB0PUk7cmV0dXJuIEk9KDY5MDY5KkkrMSklNDI5NDk2NzI5NixNYXRoLmFicyhJLXQpPDQyOTQ5NjcyOT9sLnBzZXVkb1JhbmRvbSgpOkkvNDI5NDk2NzI5Nn0sbC5maWxsVGV4dD1mdW5jdGlvbih0LGUscil7dmFyIG49QXJyYXkuaXNBcnJheShyKT9mdW5jdGlvbih0KXtyLnB1c2godCl9OmZ1bmN0aW9uKHQpe3IudGV4dD10fSxhPWwuZXh0cmFjdE9wdGlvbih0LGUsImh0eCIsImhvdmVydGV4dCIpO2lmKGwuaXNWYWxpZFRleHRWYWx1ZShhKSlyZXR1cm4gbihhKTt2YXIgaT1sLmV4dHJhY3RPcHRpb24odCxlLCJ0eCIsInRleHQiKTtyZXR1cm4gbC5pc1ZhbGlkVGV4dFZhbHVlKGkpP24oaSk6dm9pZCAwfSxsLmlzVmFsaWRUZXh0VmFsdWU9ZnVuY3Rpb24odCl7cmV0dXJuIHR8fDA9PT10fSxsLmZvcm1hdFBlcmNlbnQ9ZnVuY3Rpb24odCxlKXtlPWV8fDA7Zm9yKHZhciByPShNYXRoLnJvdW5kKDEwMCp0Kk1hdGgucG93KDEwLGUpKSpNYXRoLnBvdyguMSxlKSkudG9GaXhlZChlKSsiJSIsbj0wO248ZTtuKyspLTEhPT1yLmluZGV4T2YoIi4iKSYmKHI9KHI9ci5yZXBsYWNlKCIwJSIsIiUiKSkucmVwbGFjZSgiLiUiLCIlIikpO3JldHVybiByfSxsLmlzSGlkZGVuPWZ1bmN0aW9uKHQpe3ZhciBlPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLmRpc3BsYXk7cmV0dXJuIWV8fCJub25lIj09PWV9LGwuZ2V0VGV4dFRyYW5zZm9ybT1mdW5jdGlvbih0KXt2YXIgZT10Lm5vQ2VudGVyLHI9dC50ZXh0WCxuPXQudGV4dFksYT10LnRhcmdldFgsaT10LnRhcmdldFksbz10LmFuY2hvclh8fDAscz10LmFuY2hvcll8fDAsbD10LnJvdGF0ZSxjPXQuc2NhbGU7cmV0dXJuIGM/Yz4xJiYoYz0xKTpjPTAsInRyYW5zbGF0ZSgiKyhhLWMqKHIrbykpKyIsIisoaS1jKihuK3MpKSsiKSIrKGM8MT8ic2NhbGUoIitjKyIpIjoiIikrKGw/InJvdGF0ZSgiK2wrKGU/IiI6IiAiK3IrIiAiK24pKyIpIjoiIil9LGwuZW5zdXJlVW5pZm9ybUZvbnRTaXplPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bC5leHRlbmRGbGF0KHt9LGUpO3JldHVybiByLnNpemU9TWF0aC5tYXgoZS5zaXplLHQuX2Z1bGxMYXlvdXQudW5pZm9ybXRleHQubWluc2l6ZXx8MCkscn19LHsiLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NjkzLCIuL2FuY2hvcl91dGlscyI6Njk4LCIuL2FuZ2xlcyI6Njk5LCIuL2FycmF5Ijo3MDAsIi4vY2xlYW5fbnVtYmVyIjo3MDEsIi4vY2xlYXJfcmVzcG9uc2l2ZSI6NzAzLCIuL2NvZXJjZSI6NzA0LCIuL2RhdGVzIjo3MDUsIi4vZG9tIjo3MDYsIi4vZXh0ZW5kIjo3MDgsIi4vZmlsdGVyX3VuaXF1ZSI6NzA5LCIuL2ZpbHRlcl92aXNpYmxlIjo3MTAsIi4vZ2VvbWV0cnkyZCI6NzEzLCIuL2lkZW50aXR5Ijo3MTYsIi4vaXNfcGxhaW5fb2JqZWN0Ijo3MTgsIi4va2V5ZWRfY29udGFpbmVyIjo3MTksIi4vbG9jYWxpemUiOjcyMCwiLi9sb2dnZXJzIjo3MjEsIi4vbWFrZV90cmFjZV9ncm91cHMiOjcyMiwiLi9tYXRyaXgiOjcyMywiLi9tb2QiOjcyNCwiLi9uZXN0ZWRfcHJvcGVydHkiOjcyNSwiLi9ub29wIjo3MjYsIi4vbm90aWZpZXIiOjcyNywiLi9wdXNoX3VuaXF1ZSI6NzMxLCIuL3JlZ2V4Ijo3MzMsIi4vcmVsYXRpdmVfYXR0ciI6NzM0LCIuL3JlbGlua19wcml2YXRlIjo3MzUsIi4vc2VhcmNoIjo3MzYsIi4vc3RhdHMiOjczOSwiLi90aHJvdHRsZSI6NzQyLCIuL3RvX2xvZ19yYW5nZSI6NzQzLGQzOjE2NSwiZmFzdC1pc251bWVyaWMiOjIyOH1dLDcxODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHdpbmRvdyYmd2luZG93LnByb2Nlc3MmJndpbmRvdy5wcm9jZXNzLnZlcnNpb25zPyJbb2JqZWN0IE9iamVjdF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpOiJbb2JqZWN0IE9iamVjdF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpJiZPYmplY3QuZ2V0UHJvdG90eXBlT2YodCk9PT1PYmplY3QucHJvdG90eXBlfX0se31dLDcxOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL25lc3RlZF9wcm9wZXJ0eSIpLGE9L15cdyokLztlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaSl7dmFyIG8scyxsO3I9cnx8Im5hbWUiLGk9aXx8InZhbHVlIjt2YXIgYz17fTtlJiZlLmxlbmd0aD8obD1uKHQsZSkscz1sLmdldCgpKTpzPXQsZT1lfHwiIjt2YXIgdT17fTtpZihzKWZvcihvPTA7bzxzLmxlbmd0aDtvKyspdVtzW29dW3JdXT1vO3ZhciBoPWEudGVzdChpKSxmPXtzZXQ6ZnVuY3Rpb24odCxlKXt2YXIgYT1udWxsPT09ZT80OjA7aWYoIXMpe2lmKCFsfHw0PT09YSlyZXR1cm47cz1bXSxsLnNldChzKX12YXIgbz11W3RdO2lmKHZvaWQgMD09PW8pe2lmKDQ9PT1hKXJldHVybjthfD0zLG89cy5sZW5ndGgsdVt0XT1vfWVsc2UgZSE9PShoP3Nbb11baV06bihzW29dLGkpLmdldCgpKSYmKGF8PTIpO3ZhciBwPXNbb109c1tvXXx8e307cmV0dXJuIHBbcl09dCxoP3BbaV09ZTpuKHAsaSkuc2V0KGUpLG51bGwhPT1lJiYoYSY9LTUpLGNbb109Y1tvXXxhLGZ9LGdldDpmdW5jdGlvbih0KXtpZihzKXt2YXIgZT11W3RdO3JldHVybiB2b2lkIDA9PT1lP3ZvaWQgMDpoP3NbZV1baV06bihzW2VdLGkpLmdldCgpfX0scmVuYW1lOmZ1bmN0aW9uKHQsZSl7dmFyIG49dVt0XTtyZXR1cm4gdm9pZCAwPT09bj9mOihjW25dPTF8Y1tuXSx1W2VdPW4sZGVsZXRlIHVbdF0sc1tuXVtyXT1lLGYpfSxyZW1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9dVt0XTtpZih2b2lkIDA9PT1lKXJldHVybiBmO3ZhciBhPXNbZV07aWYoT2JqZWN0LmtleXMoYSkubGVuZ3RoPjIpcmV0dXJuIGNbZV09MnxjW2VdLGYuc2V0KHQsbnVsbCk7aWYoaCl7Zm9yKG89ZTtvPHMubGVuZ3RoO28rKyljW29dPTN8Y1tvXTtmb3Iobz1lO288cy5sZW5ndGg7bysrKXVbc1tvXVtyXV0tLTtzLnNwbGljZShlLDEpLGRlbGV0ZSB1W3RdfWVsc2UgbihhLGkpLnNldChudWxsKSxjW2VdPTZ8Y1tlXTtyZXR1cm4gZn0sY29uc3RydWN0VXBkYXRlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGEsbz17fSxsPU9iamVjdC5rZXlzKGMpLHU9MDt1PGwubGVuZ3RoO3UrKylhPWxbdV0sdD1lKyJbIithKyJdIixzW2FdPygxJmNbYV0mJihvW3QrIi4iK3JdPXNbYV1bcl0pLDImY1thXSYmKG9bdCsiLiIraV09aD80JmNbYV0/bnVsbDpzW2FdW2ldOjQmY1thXT9udWxsOm4oc1thXSxpKS5nZXQoKSkpOm9bdF09bnVsbDtyZXR1cm4gb319O3JldHVybiBmfX0seyIuL25lc3RlZF9wcm9wZXJ0eSI6NzI1fV0sNzIwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3JlZ2lzdHJ5Iik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQuX2NvbnRleHQubG9jYWxlLGE9MDthPDI7YSsrKXtmb3IodmFyIGk9dC5fY29udGV4dC5sb2NhbGVzLG89MDtvPDI7bysrKXt2YXIgcz0oaVtyXXx8e30pLmRpY3Rpb25hcnk7aWYocyl7dmFyIGw9c1tlXTtpZihsKXJldHVybiBsfWk9bi5sb2NhbGVSZWdpc3RyeX12YXIgYz1yLnNwbGl0KCItIilbMF07aWYoYz09PXIpYnJlYWs7cj1jfXJldHVybiBlfX0seyIuLi9yZWdpc3RyeSI6ODQ2fV0sNzIxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3Bsb3RfYXBpL3Bsb3RfY29uZmlnIikuZGZsdENvbmZpZyxhPXQoIi4vbm90aWZpZXIiKSxpPWUuZXhwb3J0cz17fTtmdW5jdGlvbiBvKHQsZSl7aWYodCYmdC5hcHBseSl0cnl7cmV0dXJuIHZvaWQgdC5hcHBseShjb25zb2xlLGUpfWNhdGNoKHQpe31mb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl0cnl7dChlW3JdKX1jYXRjaCh0KXtjb25zb2xlLmxvZyhlW3JdKX19aS5sb2c9ZnVuY3Rpb24oKXt2YXIgdDtpZihuLmxvZ2dpbmc+MSl7dmFyIGU9WyJMT0c6Il07Zm9yKHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKWUucHVzaChhcmd1bWVudHNbdF0pO28oY29uc29sZS50cmFjZXx8Y29uc29sZS5sb2csZSl9aWYobi5ub3RpZnlPbkxvZ2dpbmc+MSl7dmFyIHI9W107Zm9yKHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXIucHVzaChhcmd1bWVudHNbdF0pO2Eoci5qb2luKCI8YnI+IiksImxvbmciKX19LGkud2Fybj1mdW5jdGlvbigpe3ZhciB0O2lmKG4ubG9nZ2luZz4wKXt2YXIgZT1bIldBUk46Il07Zm9yKHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKWUucHVzaChhcmd1bWVudHNbdF0pO28oY29uc29sZS50cmFjZXx8Y29uc29sZS5sb2csZSl9aWYobi5ub3RpZnlPbkxvZ2dpbmc+MCl7dmFyIHI9W107Zm9yKHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXIucHVzaChhcmd1bWVudHNbdF0pO2Eoci5qb2luKCI8YnI+IiksInN0aWNrIil9fSxpLmVycm9yPWZ1bmN0aW9uKCl7dmFyIHQ7aWYobi5sb2dnaW5nPjApe3ZhciBlPVsiRVJST1I6Il07Zm9yKHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKWUucHVzaChhcmd1bWVudHNbdF0pO28oY29uc29sZS5lcnJvcixlKX1pZihuLm5vdGlmeU9uTG9nZ2luZz4wKXt2YXIgcj1bXTtmb3IodD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspci5wdXNoKGFyZ3VtZW50c1t0XSk7YShyLmpvaW4oIjxicj4iKSwic3RpY2siKX19fSx7Ii4uL3Bsb3RfYXBpL3Bsb3RfY29uZmlnIjo3NTMsIi4vbm90aWZpZXIiOjcyN31dLDcyMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGE9dC5zZWxlY3RBbGwoImcuIityLnJlcGxhY2UoL1xzL2csIi4iKSkuZGF0YShlLGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdLnRyYWNlLnVpZH0pO2EuZXhpdCgpLnJlbW92ZSgpLGEuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsciksYS5vcmRlcigpO3ZhciBpPXQuY2xhc3NlZCgicmFuZ2VwbG90Iik/Im5vZGVSYW5nZVBsb3QzIjoibm9kZTMiO3JldHVybiBhLmVhY2goZnVuY3Rpb24odCl7dFswXVtpXT1uLnNlbGVjdCh0aGlzKX0pLGF9fSx7ZDM6MTY1fV0sNzIzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3IuaW5pdDJkQXJyYXk9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9bmV3IEFycmF5KHQpLG49MDtuPHQ7bisrKXJbbl09bmV3IEFycmF5KGUpO3JldHVybiByfSxyLnRyYW5zcG9zZVJhZ2dlZD1mdW5jdGlvbih0KXt2YXIgZSxyLG49MCxhPXQubGVuZ3RoO2ZvcihlPTA7ZTxhO2UrKyluPU1hdGgubWF4KG4sdFtlXS5sZW5ndGgpO3ZhciBpPW5ldyBBcnJheShuKTtmb3IoZT0wO2U8bjtlKyspZm9yKGlbZV09bmV3IEFycmF5KGEpLHI9MDtyPGE7cisrKWlbZV1bcl09dFtyXVtlXTtyZXR1cm4gaX0sci5kb3Q9ZnVuY3Rpb24odCxlKXtpZighdC5sZW5ndGh8fCFlLmxlbmd0aHx8dC5sZW5ndGghPT1lLmxlbmd0aClyZXR1cm4gbnVsbDt2YXIgbixhLGk9dC5sZW5ndGg7aWYodFswXS5sZW5ndGgpZm9yKG49bmV3IEFycmF5KGkpLGE9MDthPGk7YSsrKW5bYV09ci5kb3QodFthXSxlKTtlbHNlIGlmKGVbMF0ubGVuZ3RoKXt2YXIgbz1yLnRyYW5zcG9zZVJhZ2dlZChlKTtmb3Iobj1uZXcgQXJyYXkoby5sZW5ndGgpLGE9MDthPG8ubGVuZ3RoO2ErKyluW2FdPXIuZG90KHQsb1thXSl9ZWxzZSBmb3Iobj0wLGE9MDthPGk7YSsrKW4rPXRbYV0qZVthXTtyZXR1cm4gbn0sci50cmFuc2xhdGlvbk1hdHJpeD1mdW5jdGlvbih0LGUpe3JldHVybltbMSwwLHRdLFswLDEsZV0sWzAsMCwxXV19LHIucm90YXRpb25NYXRyaXg9ZnVuY3Rpb24odCl7dmFyIGU9dCpNYXRoLlBJLzE4MDtyZXR1cm5bW01hdGguY29zKGUpLC1NYXRoLnNpbihlKSwwXSxbTWF0aC5zaW4oZSksTWF0aC5jb3MoZSksMF0sWzAsMCwxXV19LHIucm90YXRpb25YWU1hdHJpeD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHIuZG90KHIuZG90KHIudHJhbnNsYXRpb25NYXRyaXgoZSxuKSxyLnJvdGF0aW9uTWF0cml4KHQpKSxyLnRyYW5zbGF0aW9uTWF0cml4KC1lLC1uKSl9LHIuYXBwbHkyRFRyYW5zZm9ybT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHM7Mz09PWUubGVuZ3RoJiYoZT1lWzBdKTt2YXIgbj0xPT09YXJndW1lbnRzLmxlbmd0aD9lWzBdOltlWzBdLGVbMV1dO3JldHVybiByLmRvdCh0LFtuWzBdLG5bMV0sMV0pLnNsaWNlKDAsMil9fSxyLmFwcGx5MkRUcmFuc2Zvcm0yPWZ1bmN0aW9uKHQpe3ZhciBlPXIuYXBwbHkyRFRyYW5zZm9ybSh0KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUodC5zbGljZSgwLDIpKS5jb25jYXQoZSh0LnNsaWNlKDIsNCkpKX19fSx7fV0sNzI0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bW9kOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dCVlO3JldHVybiByPDA/citlOnJ9LG1vZEhhbGY6ZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5hYnModCk+ZS8yP3QtTWF0aC5yb3VuZCh0L2UpKmU6dH19fSx7fV0sNzI1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksYT10KCIuL2FycmF5IikuaXNBcnJheU9yVHlwZWRBcnJheTtmdW5jdGlvbiBpKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHIsbixvLHMsbCxjPXQ7Zm9yKHM9MDtzPGUubGVuZ3RoLTE7cysrKXtpZigtMT09PShyPWVbc10pKXtmb3Iobj0hMCxvPVtdLGw9MDtsPGMubGVuZ3RoO2wrKylvW2xdPWkoY1tsXSxlLnNsaWNlKHMrMSkpKCksb1tsXSE9PW9bMF0mJihuPSExKTtyZXR1cm4gbj9vWzBdOm99aWYoIm51bWJlciI9PXR5cGVvZiByJiYhYShjKSlyZXR1cm47aWYoIm9iamVjdCIhPXR5cGVvZihjPWNbcl0pfHxudWxsPT09YylyZXR1cm59aWYoIm9iamVjdCI9PXR5cGVvZiBjJiZudWxsIT09YyYmbnVsbCE9PShvPWNbZVtzXV0pKXJldHVybiBvfX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZihuKGUpKWU9U3RyaW5nKGUpO2Vsc2UgaWYoInN0cmluZyIhPXR5cGVvZiBlfHwiWy0xXSI9PT1lLnN1YnN0cihlLmxlbmd0aC00KSl0aHJvdyJiYWQgcHJvcGVydHkgc3RyaW5nIjtmb3IodmFyIHIsYSxvLHM9MCxjPWUuc3BsaXQoIi4iKTtzPGMubGVuZ3RoOyl7aWYocj1TdHJpbmcoY1tzXSkubWF0Y2goL14oW15cW1xdXSopKChcW1wtP1swLTldKlxdKSspJC8pKXtpZihyWzFdKWNbc109clsxXTtlbHNle2lmKDAhPT1zKXRocm93ImJhZCBwcm9wZXJ0eSBzdHJpbmciO2Muc3BsaWNlKDAsMSl9Zm9yKGE9clsyXS5zdWJzdHIoMSxyWzJdLmxlbmd0aC0yKS5zcGxpdCgiXVsiKSxvPTA7bzxhLmxlbmd0aDtvKyspcysrLGMuc3BsaWNlKHMsMCxOdW1iZXIoYVtvXSkpfXMrK31yZXR1cm4ib2JqZWN0IiE9dHlwZW9mIHQ/ZnVuY3Rpb24odCxlLHIpe3JldHVybntzZXQ6ZnVuY3Rpb24oKXt0aHJvdyJiYWQgY29udGFpbmVyIn0sZ2V0OmZ1bmN0aW9uKCl7fSxhc3RyOmUscGFydHM6cixvYmo6dH19KHQsZSxjKTp7c2V0OmwodCxjLGUpLGdldDppKHQsYyksYXN0cjplLHBhcnRzOmMsb2JqOnR9fTt2YXIgbz0vKF58XC4pYXJnc1xbLztmdW5jdGlvbiBzKHQsZSl7cmV0dXJuIHZvaWQgMD09PXR8fG51bGw9PT10JiYhZS5tYXRjaChvKX1mdW5jdGlvbiBsKHQsZSxyKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGksbyxsPXQsZj0iIixwPVtbdCxmXV0sZD1zKG4scik7Zm9yKG89MDtvPGUubGVuZ3RoLTE7bysrKXtpZigibnVtYmVyIj09dHlwZW9mKGk9ZVtvXSkmJiFhKGwpKXRocm93ImFycmF5IGluZGV4IGJ1dCBjb250YWluZXIgaXMgbm90IGFuIGFycmF5IjtpZigtMT09PWkpe2lmKGQ9IXUobCxlLnNsaWNlKG8rMSksbixyKSlicmVhaztyZXR1cm59aWYoIWgobCxpLGVbbysxXSxkKSlicmVhaztpZigib2JqZWN0IiE9dHlwZW9mKGw9bFtpXSl8fG51bGw9PT1sKXRocm93ImNvbnRhaW5lciBpcyBub3QgYW4gb2JqZWN0IjtmPWMoZixpKSxwLnB1c2goW2wsZl0pfWlmKGQpe2lmKG89PT1lLmxlbmd0aC0xJiYoZGVsZXRlIGxbZVtvXV0sQXJyYXkuaXNBcnJheShsKSYmK2Vbb109PWwubGVuZ3RoLTEpKWZvcig7bC5sZW5ndGgmJnZvaWQgMD09PWxbbC5sZW5ndGgtMV07KWwucG9wKCl9ZWxzZSBsW2Vbb11dPW59fWZ1bmN0aW9uIGModCxlKXt2YXIgcj1lO3JldHVybiBuKGUpP3I9IlsiK2UrIl0iOnQmJihyPSIuIitlKSx0K3J9ZnVuY3Rpb24gdSh0LGUscixuKXt2YXIgaSxvPWEociksYz0hMCx1PXIsZj1uLnJlcGxhY2UoIi0xIiwwKSxwPSFvJiZzKHIsZiksZD1lWzBdO2ZvcihpPTA7aTx0Lmxlbmd0aDtpKyspZj1uLnJlcGxhY2UoIi0xIixpKSxvJiYocD1zKHU9cltpJXIubGVuZ3RoXSxmKSkscCYmKGM9ITEpLGgodCxpLGQscCkmJmwodFtpXSxlLG4ucmVwbGFjZSgiLTEiLGkpKSh1KTtyZXR1cm4gY31mdW5jdGlvbiBoKHQsZSxyLG4pe2lmKHZvaWQgMD09PXRbZV0pe2lmKG4pcmV0dXJuITE7dFtlXT0ibnVtYmVyIj09dHlwZW9mIHI/W106e319cmV0dXJuITB9fSx7Ii4vYXJyYXkiOjcwMCwiZmFzdC1pc251bWVyaWMiOjIyOH1dLDcyNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt9fSx7fV0sNzI3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksYT10KCJmYXN0LWlzbnVtZXJpYyIpLGk9W107ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYoLTE9PT1pLmluZGV4T2YodCkpe2kucHVzaCh0KTt2YXIgcj0xZTM7YShlKT9yPWU6ImxvbmciPT09ZSYmKHI9M2UzKTt2YXIgbz1uLnNlbGVjdCgiYm9keSIpLnNlbGVjdEFsbCgiLnBsb3RseS1ub3RpZmllciIpLmRhdGEoWzBdKTtvLmVudGVyKCkuYXBwZW5kKCJkaXYiKS5jbGFzc2VkKCJwbG90bHktbm90aWZpZXIiLCEwKSxvLnNlbGVjdEFsbCgiLm5vdGlmaWVyLW5vdGUiKS5kYXRhKGkpLmVudGVyKCkuYXBwZW5kKCJkaXYiKS5jbGFzc2VkKCJub3RpZmllci1ub3RlIiwhMCkuc3R5bGUoIm9wYWNpdHkiLDApLmVhY2goZnVuY3Rpb24odCl7dmFyIGE9bi5zZWxlY3QodGhpcyk7YS5hcHBlbmQoImJ1dHRvbiIpLmNsYXNzZWQoIm5vdGlmaWVyLWNsb3NlIiwhMCkuaHRtbCgiJnRpbWVzOyIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXthLnRyYW5zaXRpb24oKS5jYWxsKHMpfSk7Zm9yKHZhciBpPWEuYXBwZW5kKCJwIiksbz10LnNwbGl0KC88YnJccypcLz8+L2cpLGw9MDtsPG8ubGVuZ3RoO2wrKylsJiZpLmFwcGVuZCgiYnIiKSxpLmFwcGVuZCgic3BhbiIpLnRleHQob1tsXSk7InN0aWNrIj09PWU/YS50cmFuc2l0aW9uKCkuZHVyYXRpb24oMzUwKS5zdHlsZSgib3BhY2l0eSIsMSk6YS50cmFuc2l0aW9uKCkuZHVyYXRpb24oNzAwKS5zdHlsZSgib3BhY2l0eSIsMSkudHJhbnNpdGlvbigpLmRlbGF5KHIpLmNhbGwocyl9KX1mdW5jdGlvbiBzKHQpe3QuZHVyYXRpb24oNzAwKS5zdHlsZSgib3BhY2l0eSIsMCkuZWFjaCgiZW5kIixmdW5jdGlvbih0KXt2YXIgZT1pLmluZGV4T2YodCk7LTEhPT1lJiZpLnNwbGljZShlLDEpLG4uc2VsZWN0KHRoaXMpLnJlbW92ZSgpfSl9fX0se2QzOjE2NSwiZmFzdC1pc251bWVyaWMiOjIyOH1dLDcyODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL3NldGN1cnNvciIpLGE9ImRhdGEtc2F2ZWRjdXJzb3IiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQuYXR0cihhKTtpZihlKXtpZighcil7Zm9yKHZhciBpPSh0LmF0dHIoImNsYXNzIil8fCIiKS5zcGxpdCgiICIpLG89MDtvPGkubGVuZ3RoO28rKyl7dmFyIHM9aVtvXTswPT09cy5pbmRleE9mKCJjdXJzb3ItIikmJnQuYXR0cihhLHMuc3Vic3RyKDcpKS5jbGFzc2VkKHMsITEpfXQuYXR0cihhKXx8dC5hdHRyKGEsIiEhIil9bih0LGUpfWVsc2UgciYmKHQuYXR0cihhLG51bGwpLCIhISI9PT1yP24odCk6bih0LHIpKX19LHsiLi9zZXRjdXJzb3IiOjczN31dLDcyOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL21hdHJpeCIpLmRvdCxhPXQoIi4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5CQUROVU0saT1lLmV4cG9ydHM9e307aS50ZXN0ZXI9ZnVuY3Rpb24odCl7dmFyIGUscj10LnNsaWNlKCksbj1yWzBdWzBdLGk9bixvPXJbMF1bMV0scz1vO2ZvcihyLnB1c2goclswXSksZT0xO2U8ci5sZW5ndGg7ZSsrKW49TWF0aC5taW4obixyW2VdWzBdKSxpPU1hdGgubWF4KGkscltlXVswXSksbz1NYXRoLm1pbihvLHJbZV1bMV0pLHM9TWF0aC5tYXgocyxyW2VdWzFdKTt2YXIgbCxjPSExOzU9PT1yLmxlbmd0aCYmKHJbMF1bMF09PT1yWzFdWzBdP3JbMl1bMF09PT1yWzNdWzBdJiZyWzBdWzFdPT09clszXVsxXSYmclsxXVsxXT09PXJbMl1bMV0mJihjPSEwLGw9ZnVuY3Rpb24odCl7cmV0dXJuIHRbMF09PT1yWzBdWzBdfSk6clswXVsxXT09PXJbMV1bMV0mJnJbMl1bMV09PT1yWzNdWzFdJiZyWzBdWzBdPT09clszXVswXSYmclsxXVswXT09PXJbMl1bMF0mJihjPSEwLGw9ZnVuY3Rpb24odCl7cmV0dXJuIHRbMV09PT1yWzBdWzFdfSkpO3ZhciB1PSEwLGg9clswXTtmb3IoZT0xO2U8ci5sZW5ndGg7ZSsrKWlmKGhbMF0hPT1yW2VdWzBdfHxoWzFdIT09cltlXVsxXSl7dT0hMTticmVha31yZXR1cm57eG1pbjpuLHhtYXg6aSx5bWluOm8seW1heDpzLHB0czpyLGNvbnRhaW5zOmM/ZnVuY3Rpb24odCxlKXt2YXIgcj10WzBdLGM9dFsxXTtyZXR1cm4hKHI9PT1hfHxyPG58fHI+aXx8Yz09PWF8fGM8b3x8Yz5zfHxlJiZsKHQpKX06ZnVuY3Rpb24odCxlKXt2YXIgbD10WzBdLGM9dFsxXTtpZihsPT09YXx8bDxufHxsPml8fGM9PT1hfHxjPG98fGM+cylyZXR1cm4hMTt2YXIgdSxoLGYscCxkLGc9ci5sZW5ndGgsdj1yWzBdWzBdLG09clswXVsxXSx5PTA7Zm9yKHU9MTt1PGc7dSsrKWlmKGg9dixmPW0sdj1yW3VdWzBdLG09clt1XVsxXSwhKGw8KHA9TWF0aC5taW4oaCx2KSl8fGw+TWF0aC5tYXgoaCx2KXx8Yz5NYXRoLm1heChmLG0pKSlpZihjPE1hdGgubWluKGYsbSkpbCE9PXAmJnkrKztlbHNle2lmKGM9PT0oZD12PT09aD9jOmYrKGwtaCkqKG0tZikvKHYtaCkpKXJldHVybiAxIT09dXx8IWU7Yzw9ZCYmbCE9PXAmJnkrK31yZXR1cm4geSUyPT0xfSxpc1JlY3Q6YyxkZWdlbmVyYXRlOnV9fSxpLmlzU2VnbWVudEJlbnQ9ZnVuY3Rpb24odCxlLHIsYSl7dmFyIGksbyxzLGw9dFtlXSxjPVt0W3JdWzBdLWxbMF0sdFtyXVsxXS1sWzFdXSx1PW4oYyxjKSxoPU1hdGguc3FydCh1KSxmPVstY1sxXS9oLGNbMF0vaF07Zm9yKGk9ZSsxO2k8cjtpKyspaWYobz1bdFtpXVswXS1sWzBdLHRbaV1bMV0tbFsxXV0sKHM9bihvLGMpKTwwfHxzPnV8fE1hdGguYWJzKG4obyxmKSk+YSlyZXR1cm4hMDtyZXR1cm4hMX0saS5maWx0ZXI9ZnVuY3Rpb24odCxlKXt2YXIgcj1bdFswXV0sbj0wLGE9MDtmdW5jdGlvbiBvKG8pe3QucHVzaChvKTt2YXIgcz1yLmxlbmd0aCxsPW47ci5zcGxpY2UoYSsxKTtmb3IodmFyIGM9bCsxO2M8dC5sZW5ndGg7YysrKShjPT09dC5sZW5ndGgtMXx8aS5pc1NlZ21lbnRCZW50KHQsbCxjKzEsZSkpJiYoci5wdXNoKHRbY10pLHIubGVuZ3RoPHMtMiYmKG49YyxhPXIubGVuZ3RoLTEpLGw9Yyl9dC5sZW5ndGg+MSYmbyh0LnBvcCgpKTtyZXR1cm57YWRkUHQ6byxyYXc6dCxmaWx0ZXJlZDpyfX19LHsiLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NjkzLCIuL21hdHJpeCI6NzIzfV0sNzMwOltmdW5jdGlvbih0LGUscil7KGZ1bmN0aW9uKHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL3Nob3dfbm9fd2ViZ2xfbXNnIiksYT10KCJyZWdsIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIGk9dC5fZnVsbExheW91dCxvPSEwO3JldHVybiBpLl9nbGNhbnZhcy5lYWNoKGZ1bmN0aW9uKG4pe2lmKCFuLnJlZ2wmJighbi5waWNrfHxpLl9oYXMoInBhcmNvb3JkcyIpKSl7dHJ5e24ucmVnbD1hKHtjYW52YXM6dGhpcyxhdHRyaWJ1dGVzOnthbnRpYWxpYXM6IW4ucGljayxwcmVzZXJ2ZURyYXdpbmdCdWZmZXI6ITB9LHBpeGVsUmF0aW86dC5fY29udGV4dC5wbG90R2xQaXhlbFJhdGlvfHxyLmRldmljZVBpeGVsUmF0aW8sZXh0ZW5zaW9uczplfHxbXX0pfWNhdGNoKHQpe289ITF9byYmdGhpcy5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRsb3N0IixmdW5jdGlvbihlKXt0JiZ0LmVtaXQmJnQuZW1pdCgicGxvdGx5X3dlYmdsY29udGV4dGxvc3QiLHtldmVudDplLGxheWVyOm4ua2V5fSl9LCExKX19KSxvfHxuKHtjb250YWluZXI6aS5fZ2xjb250YWluZXIubm9kZSgpfSksb319KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHsiLi9zaG93X25vX3dlYmdsX21zZyI6NzM4LHJlZ2w6NTAxfV0sNzMxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2lmKGUgaW5zdGFuY2VvZiBSZWdFeHApe2Zvcih2YXIgcj1lLnRvU3RyaW5nKCksbj0wO248dC5sZW5ndGg7bisrKWlmKHRbbl1pbnN0YW5jZW9mIFJlZ0V4cCYmdFtuXS50b1N0cmluZygpPT09cilyZXR1cm4gdDt0LnB1c2goZSl9ZWxzZSFlJiYwIT09ZXx8LTEhPT10LmluZGV4T2YoZSl8fHQucHVzaChlKTtyZXR1cm4gdH19LHt9XSw3MzI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vbGliIiksYT10KCIuLi9wbG90X2FwaS9wbG90X2NvbmZpZyIpLmRmbHRDb25maWc7dmFyIGk9e2FkZDpmdW5jdGlvbih0LGUscixuLGkpe3ZhciBvLHM7dC51bmRvUXVldWU9dC51bmRvUXVldWV8fHtpbmRleDowLHF1ZXVlOltdLHNlcXVlbmNlOiExfSxzPXQudW5kb1F1ZXVlLmluZGV4LHQuYXV0b3BsYXk/dC51bmRvUXVldWUuaW5TZXF1ZW5jZXx8KHQuYXV0b3BsYXk9ITEpOighdC51bmRvUXVldWUuc2VxdWVuY2V8fHQudW5kb1F1ZXVlLmJlZ2luU2VxdWVuY2U/KG89e3VuZG86e2NhbGxzOltdLGFyZ3M6W119LHJlZG86e2NhbGxzOltdLGFyZ3M6W119fSx0LnVuZG9RdWV1ZS5xdWV1ZS5zcGxpY2Uocyx0LnVuZG9RdWV1ZS5xdWV1ZS5sZW5ndGgtcyxvKSx0LnVuZG9RdWV1ZS5pbmRleCs9MSk6bz10LnVuZG9RdWV1ZS5xdWV1ZVtzLTFdLHQudW5kb1F1ZXVlLmJlZ2luU2VxdWVuY2U9ITEsbyYmKG8udW5kby5jYWxscy51bnNoaWZ0KGUpLG8udW5kby5hcmdzLnVuc2hpZnQociksby5yZWRvLmNhbGxzLnB1c2gobiksby5yZWRvLmFyZ3MucHVzaChpKSksdC51bmRvUXVldWUucXVldWUubGVuZ3RoPmEucXVldWVMZW5ndGgmJih0LnVuZG9RdWV1ZS5xdWV1ZS5zaGlmdCgpLHQudW5kb1F1ZXVlLmluZGV4LS0pKX0sc3RhcnRTZXF1ZW5jZTpmdW5jdGlvbih0KXt0LnVuZG9RdWV1ZT10LnVuZG9RdWV1ZXx8e2luZGV4OjAscXVldWU6W10sc2VxdWVuY2U6ITF9LHQudW5kb1F1ZXVlLnNlcXVlbmNlPSEwLHQudW5kb1F1ZXVlLmJlZ2luU2VxdWVuY2U9ITB9LHN0b3BTZXF1ZW5jZTpmdW5jdGlvbih0KXt0LnVuZG9RdWV1ZT10LnVuZG9RdWV1ZXx8e2luZGV4OjAscXVldWU6W10sc2VxdWVuY2U6ITF9LHQudW5kb1F1ZXVlLnNlcXVlbmNlPSExLHQudW5kb1F1ZXVlLmJlZ2luU2VxdWVuY2U9ITF9LHVuZG86ZnVuY3Rpb24odCl7dmFyIGUscjtpZih0LmZyYW1ld29yayYmdC5mcmFtZXdvcmsuaXNQb2xhcil0LmZyYW1ld29yay51bmRvKCk7ZWxzZSBpZighKHZvaWQgMD09PXQudW5kb1F1ZXVlfHxpc05hTih0LnVuZG9RdWV1ZS5pbmRleCl8fHQudW5kb1F1ZXVlLmluZGV4PD0wKSl7Zm9yKHQudW5kb1F1ZXVlLmluZGV4LS0sZT10LnVuZG9RdWV1ZS5xdWV1ZVt0LnVuZG9RdWV1ZS5pbmRleF0sdC51bmRvUXVldWUuaW5TZXF1ZW5jZT0hMCxyPTA7cjxlLnVuZG8uY2FsbHMubGVuZ3RoO3IrKylpLnBsb3REbyh0LGUudW5kby5jYWxsc1tyXSxlLnVuZG8uYXJnc1tyXSk7dC51bmRvUXVldWUuaW5TZXF1ZW5jZT0hMSx0LmF1dG9wbGF5PSExfX0scmVkbzpmdW5jdGlvbih0KXt2YXIgZSxyO2lmKHQuZnJhbWV3b3JrJiZ0LmZyYW1ld29yay5pc1BvbGFyKXQuZnJhbWV3b3JrLnJlZG8oKTtlbHNlIGlmKCEodm9pZCAwPT09dC51bmRvUXVldWV8fGlzTmFOKHQudW5kb1F1ZXVlLmluZGV4KXx8dC51bmRvUXVldWUuaW5kZXg+PXQudW5kb1F1ZXVlLnF1ZXVlLmxlbmd0aCkpe2ZvcihlPXQudW5kb1F1ZXVlLnF1ZXVlW3QudW5kb1F1ZXVlLmluZGV4XSx0LnVuZG9RdWV1ZS5pblNlcXVlbmNlPSEwLHI9MDtyPGUucmVkby5jYWxscy5sZW5ndGg7cisrKWkucGxvdERvKHQsZS5yZWRvLmNhbGxzW3JdLGUucmVkby5hcmdzW3JdKTt0LnVuZG9RdWV1ZS5pblNlcXVlbmNlPSExLHQuYXV0b3BsYXk9ITEsdC51bmRvUXVldWUuaW5kZXgrK319fTtpLnBsb3REbz1mdW5jdGlvbih0LGUscil7dC5hdXRvcGxheT0hMCxyPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByLGE9W10saT0wO2k8ZS5sZW5ndGg7aSsrKXI9ZVtpXSxhW2ldPXI9PT10P3I6Im9iamVjdCI9PXR5cGVvZiByP0FycmF5LmlzQXJyYXkocik/bi5leHRlbmREZWVwKFtdLHIpOm4uZXh0ZW5kRGVlcEFsbCh7fSxyKTpyO3JldHVybiBhfSh0LHIpLGUuYXBwbHkobnVsbCxyKX0sZS5leHBvcnRzPWl9LHsiLi4vbGliIjo3MTcsIi4uL3Bsb3RfYXBpL3Bsb3RfY29uZmlnIjo3NTN9XSw3MzM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ci5jb3VudGVyPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPShlfHwiIikrKHI/IiI6IiQiKSxpPSExPT09bj8iIjoiXiI7cmV0dXJuInh5Ij09PXQ/bmV3IFJlZ0V4cChpKyJ4KFsyLTldfFsxLTldWzAtOV0rKT95KFsyLTldfFsxLTldWzAtOV0rKT8iK2EpOm5ldyBSZWdFeHAoaSt0KyIoWzItOV18WzEtOV1bMC05XSspPyIrYSl9fSx7fV0sNzM0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPS9eKC4qKShcLlteXC5cW1xdXSt8XFtcZFxdKSQvLGE9L15bXlwuXFtcXV0rJC87ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKDtlOyl7dmFyIHI9dC5tYXRjaChuKTtpZihyKXQ9clsxXTtlbHNle2lmKCF0Lm1hdGNoKGEpKXRocm93IG5ldyBFcnJvcigiYmFkIHJlbGF0aXZlQXR0ciBjYWxsOiIrW3QsZV0pO3Q9IiJ9aWYoIl4iIT09ZS5jaGFyQXQoMCkpYnJlYWs7ZT1lLnNsaWNlKDEpfXJldHVybiB0JiYiWyIhPT1lLmNoYXJBdCgwKT90KyIuIitlOnQrZX19LHt9XSw3MzU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9hcnJheSIpLmlzQXJyYXlPclR5cGVkQXJyYXksYT10KCIuL2lzX3BsYWluX29iamVjdCIpO2UuZXhwb3J0cz1mdW5jdGlvbiB0KGUscil7Zm9yKHZhciBpIGluIHIpe3ZhciBvPXJbaV0scz1lW2ldO2lmKHMhPT1vKWlmKCJfIj09PWkuY2hhckF0KDApfHwiZnVuY3Rpb24iPT10eXBlb2Ygbyl7aWYoaSBpbiBlKWNvbnRpbnVlO2VbaV09b31lbHNlIGlmKG4obykmJm4ocykmJmEob1swXSkpe2lmKCJjdXN0b21kYXRhIj09PWl8fCJpZHMiPT09aSljb250aW51ZTtmb3IodmFyIGw9TWF0aC5taW4oby5sZW5ndGgscy5sZW5ndGgpLGM9MDtjPGw7YysrKXNbY10hPT1vW2NdJiZhKG9bY10pJiZhKHNbY10pJiZ0KHNbY10sb1tjXSl9ZWxzZSBhKG8pJiZhKHMpJiYodChzLG8pLE9iamVjdC5rZXlzKHMpLmxlbmd0aHx8ZGVsZXRlIGVbaV0pfX19LHsiLi9hcnJheSI6NzAwLCIuL2lzX3BsYWluX29iamVjdCI6NzE4fV0sNzM2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksYT10KCIuL2xvZ2dlcnMiKSxpPXQoIi4vaWRlbnRpdHkiKTtmdW5jdGlvbiBvKHQsZSl7cmV0dXJuIHQ8ZX1mdW5jdGlvbiBzKHQsZSl7cmV0dXJuIHQ8PWV9ZnVuY3Rpb24gbCh0LGUpe3JldHVybiB0PmV9ZnVuY3Rpb24gYyh0LGUpe3JldHVybiB0Pj1lfXIuZmluZEJpbj1mdW5jdGlvbih0LGUscil7aWYobihlLnN0YXJ0KSlyZXR1cm4gcj9NYXRoLmNlaWwoKHQtZS5zdGFydCkvZS5zaXplLTFlLTkpLTE6TWF0aC5mbG9vcigodC1lLnN0YXJ0KS9lLnNpemUrMWUtOSk7dmFyIGksdSxoPTAsZj1lLmxlbmd0aCxwPTAsZD1mPjE/KGVbZi0xXS1lWzBdKS8oZi0xKToxO2Zvcih1PWQ+PTA/cj9vOnM6cj9jOmwsdCs9MWUtOSpkKihyPy0xOjEpKihkPj0wPzE6LTEpO2g8ZiYmcCsrPDEwMDspdShlW2k9TWF0aC5mbG9vcigoaCtmKS8yKV0sdCk/aD1pKzE6Zj1pO3JldHVybiBwPjkwJiZhLmxvZygiTG9uZyBiaW5hcnkgc2VhcmNoLi4uIiksaC0xfSxyLnNvcnRlckFzYz1mdW5jdGlvbih0LGUpe3JldHVybiB0LWV9LHIuc29ydGVyRGVzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUtdH0sci5kaXN0aW5jdFZhbHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5zbGljZSgpO2Uuc29ydChyLnNvcnRlckFzYyk7Zm9yKHZhciBuPWUubGVuZ3RoLTEsYT1lW25dLWVbMF18fDEsaT1hLyhufHwxKS8xZTQsbz1bZVswXV0scz0wO3M8bjtzKyspZVtzKzFdPmVbc10raSYmKGE9TWF0aC5taW4oYSxlW3MrMV0tZVtzXSksby5wdXNoKGVbcysxXSkpO3JldHVybnt2YWxzOm8sbWluRGlmZjphfX0sci5yb3VuZFVwPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG4sYT0wLGk9ZS5sZW5ndGgtMSxvPTAscz1yPzA6MSxsPXI/MTowLGM9cj9NYXRoLmNlaWw6TWF0aC5mbG9vcjthPGkmJm8rKzwxMDA7KWVbbj1jKChhK2kpLzIpXTw9dD9hPW4rczppPW4tbDtyZXR1cm4gZVthXX0sci5zb3J0PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTAsbj0wLGE9MTthPHQubGVuZ3RoO2ErKyl7dmFyIGk9ZSh0W2FdLHRbYS0xXSk7aWYoaTwwP3I9MTppPjAmJihuPTEpLHImJm4pcmV0dXJuIHQuc29ydChlKX1yZXR1cm4gbj90OnQucmV2ZXJzZSgpfSxyLmZpbmRJbmRleE9mTWluPWZ1bmN0aW9uKHQsZSl7ZT1lfHxpO2Zvcih2YXIgcixuPTEvMCxhPTA7YTx0Lmxlbmd0aDthKyspe3ZhciBvPWUodFthXSk7bzxuJiYobj1vLHI9YSl9cmV0dXJuIHJ9fSx7Ii4vaWRlbnRpdHkiOjcxNiwiLi9sb2dnZXJzIjo3MjEsImZhc3QtaXNudW1lcmljIjoyMjh9XSw3Mzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7KHQuYXR0cigiY2xhc3MiKXx8IiIpLnNwbGl0KCIgIikuZm9yRWFjaChmdW5jdGlvbihlKXswPT09ZS5pbmRleE9mKCJjdXJzb3ItIikmJnQuY2xhc3NlZChlLCExKX0pLGUmJnQuY2xhc3NlZCgiY3Vyc29yLSIrZSwhMCl9fSx7fV0sNzM4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2NvbXBvbmVudHMvY29sb3IiKSxhPWZ1bmN0aW9uKCl7fTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIHQpImZ1bmN0aW9uIj09dHlwZW9mIHRbZV0mJih0W2VdPWEpO3QuZGVzdHJveT1mdW5jdGlvbigpe3QuY29udGFpbmVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodC5jb250YWluZXIpfTt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyLmNsYXNzTmFtZT0ibm8td2ViZ2wiLHIuc3R5bGUuY3Vyc29yPSJwb2ludGVyIixyLnN0eWxlLmZvbnRTaXplPSIyNHB4IixyLnN0eWxlLmNvbG9yPW4uZGVmYXVsdHNbMF0sci5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHIuc3R5bGUubGVmdD1yLnN0eWxlLnRvcD0iMHB4IixyLnN0eWxlLndpZHRoPXIuc3R5bGUuaGVpZ2h0PSIxMDAlIixyLnN0eWxlWyJiYWNrZ3JvdW5kLWNvbG9yIl09bi5saWdodExpbmUsci5zdHlsZVsiei1pbmRleCJdPTMwO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTtyZXR1cm4gaS50ZXh0Q29udGVudD0iV2ViR0wgaXMgbm90IHN1cHBvcnRlZCBieSB5b3VyIGJyb3dzZXIgLSB2aXNpdCBodHRwczovL2dldC53ZWJnbC5vcmcgZm9yIG1vcmUgaW5mbyIsaS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiLGkuc3R5bGUudG9wPSI1MCUiLGkuc3R5bGUubGVmdD0iNTAlIixpLnN0eWxlLmhlaWdodD0iMzAlIixpLnN0eWxlLndpZHRoPSI1MCUiLGkuc3R5bGUubWFyZ2luPSItMTUlIDAgMCAtMjUlIixyLmFwcGVuZENoaWxkKGkpLHQuY29udGFpbmVyLmFwcGVuZENoaWxkKHIpLHQuY29udGFpbmVyLnN0eWxlLmJhY2tncm91bmQ9IiNGRkZGRkYiLHQuY29udGFpbmVyLm9uY2xpY2s9ZnVuY3Rpb24oKXt3aW5kb3cub3BlbigiaHR0cHM6Ly9nZXQud2ViZ2wub3JnIil9LCExfX0seyIuLi9jb21wb25lbnRzL2NvbG9yIjo1OTJ9XSw3Mzk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxhPXQoIi4vYXJyYXkiKS5pc0FycmF5T3JUeXBlZEFycmF5O3IuYWdnTnVtcz1mdW5jdGlvbih0LGUsaSxvKXt2YXIgcyxsO2lmKCghb3x8bz5pLmxlbmd0aCkmJihvPWkubGVuZ3RoKSxuKGUpfHwoZT0hMSksYShpWzBdKSl7Zm9yKGw9bmV3IEFycmF5KG8pLHM9MDtzPG87cysrKWxbc109ci5hZ2dOdW1zKHQsZSxpW3NdKTtpPWx9Zm9yKHM9MDtzPG87cysrKW4oZSk/bihpW3NdKSYmKGU9dCgrZSwraVtzXSkpOmU9aVtzXTtyZXR1cm4gZX0sci5sZW49ZnVuY3Rpb24odCl7cmV0dXJuIHIuYWdnTnVtcyhmdW5jdGlvbih0KXtyZXR1cm4gdCsxfSwwLHQpfSxyLm1lYW49ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8KGU9ci5sZW4odCkpLHIuYWdnTnVtcyhmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9LDAsdCkvZX0sci5taWRSYW5nZT1mdW5jdGlvbih0KXtpZih2b2lkIDAhPT10JiYwIT09dC5sZW5ndGgpcmV0dXJuKHIuYWdnTnVtcyhNYXRoLm1heCxudWxsLHQpK3IuYWdnTnVtcyhNYXRoLm1pbixudWxsLHQpKS8yfSxyLnZhcmlhbmNlPWZ1bmN0aW9uKHQsZSxhKXtyZXR1cm4gZXx8KGU9ci5sZW4odCkpLG4oYSl8fChhPXIubWVhbih0LGUpKSxyLmFnZ051bXMoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtNYXRoLnBvdyhlLWEsMil9LDAsdCkvZX0sci5zdGRldj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIE1hdGguc3FydChyLnZhcmlhbmNlKHQsZSxuKSl9LHIubWVkaWFuPWZ1bmN0aW9uKHQpe3ZhciBlPXQuc2xpY2UoKS5zb3J0KCk7cmV0dXJuIHIuaW50ZXJwKGUsLjUpfSxyLmludGVycD1mdW5jdGlvbih0LGUpe2lmKCFuKGUpKXRocm93Im4gc2hvdWxkIGJlIGEgZmluaXRlIG51bWJlciI7aWYoKGU9ZSp0Lmxlbmd0aC0uNSk8MClyZXR1cm4gdFswXTtpZihlPnQubGVuZ3RoLTEpcmV0dXJuIHRbdC5sZW5ndGgtMV07dmFyIHI9ZSUxO3JldHVybiByKnRbTWF0aC5jZWlsKGUpXSsoMS1yKSp0W01hdGguZmxvb3IoZSldfX0seyIuL2FycmF5Ijo3MDAsImZhc3QtaXNudW1lcmljIjoyMjh9XSw3NDA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiY29sb3Itbm9ybWFsaXplIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0P24odCk6WzAsMCwwLDFdfX0seyJjb2xvci1ub3JtYWxpemUiOjEyMn1dLDc0MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGE9dCgiLi4vbGliIiksaT10KCIuLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyIpLG89dCgiLi4vY29uc3RhbnRzL2FsaWdubWVudCIpLkxJTkVfU1BBQ0lORztmdW5jdGlvbiBzKHQsZSl7cmV0dXJuIHQubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpW2VdfXZhciBsPS8oW14kXSopKFskXStbXiRdKlskXSspKFteJF0qKS87ci5jb252ZXJ0VG9Uc3BhbnM9ZnVuY3Rpb24odCxlLEEpe3ZhciBTPXQudGV4dCgpLEw9IXQuYXR0cigiZGF0YS1ub3RleCIpJiYidW5kZWZpbmVkIiE9dHlwZW9mIE1hdGhKYXgmJlMubWF0Y2gobCksQz1uLnNlbGVjdCh0Lm5vZGUoKS5wYXJlbnROb2RlKTtpZighQy5lbXB0eSgpKXt2YXIgUD10LmF0dHIoImNsYXNzIik/dC5hdHRyKCJjbGFzcyIpLnNwbGl0KCIgIilbMF06InRleHQiO3JldHVybiBQKz0iLW1hdGgiLEMuc2VsZWN0QWxsKCJzdmcuIitQKS5yZW1vdmUoKSxDLnNlbGVjdEFsbCgiZy4iK1ArIi1ncm91cCIpLnJlbW92ZSgpLHQuc3R5bGUoImRpc3BsYXkiLG51bGwpLmF0dHIoeyJkYXRhLXVuZm9ybWF0dGVkIjpTLCJkYXRhLW1hdGgiOiJOIn0pLEw/KGUmJmUuX3Byb21pc2VzfHxbXSkucHVzaChuZXcgUHJvbWlzZShmdW5jdGlvbihlKXt0LnN0eWxlKCJkaXNwbGF5Iiwibm9uZSIpO3ZhciByPXBhcnNlSW50KHQubm9kZSgpLnN0eWxlLmZvbnRTaXplLDEwKSxpPXtmb250U2l6ZTpyfTshZnVuY3Rpb24odCxlLHIpe3ZhciBpLG8scyxsO01hdGhKYXguSHViLlF1ZXVlKGZ1bmN0aW9uKCl7cmV0dXJuIG89YS5leHRlbmREZWVwQWxsKHt9LE1hdGhKYXguSHViLmNvbmZpZykscz1NYXRoSmF4Lkh1Yi5wcm9jZXNzU2VjdGlvbkRlbGF5LHZvaWQgMCE9PU1hdGhKYXguSHViLnByb2Nlc3NTZWN0aW9uRGVsYXkmJihNYXRoSmF4Lkh1Yi5wcm9jZXNzU2VjdGlvbkRlbGF5PTApLE1hdGhKYXguSHViLkNvbmZpZyh7bWVzc2FnZVN0eWxlOiJub25lIix0ZXgyamF4OntpbmxpbmVNYXRoOltbIiQiLCIkIl0sWyJcXCgiLCJcXCkiXV19LGRpc3BsYXlBbGlnbjoibGVmdCJ9KX0sZnVuY3Rpb24oKXtpZigiU1ZHIiE9PShpPU1hdGhKYXguSHViLmNvbmZpZy5tZW51U2V0dGluZ3MucmVuZGVyZXIpKXJldHVybiBNYXRoSmF4Lkh1Yi5zZXRSZW5kZXJlcigiU1ZHIil9LGZ1bmN0aW9uKCl7dmFyIHI9Im1hdGgtb3V0cHV0LSIrYS5yYW5kc3RyKHt9LDY0KTtyZXR1cm4gbD1uLnNlbGVjdCgiYm9keSIpLmFwcGVuZCgiZGl2IikuYXR0cih7aWQ6cn0pLnN0eWxlKHt2aXNpYmlsaXR5OiJoaWRkZW4iLHBvc2l0aW9uOiJhYnNvbHV0ZSJ9KS5zdHlsZSh7ImZvbnQtc2l6ZSI6ZS5mb250U2l6ZSsicHgifSkudGV4dCh0LnJlcGxhY2UoYywiXFxsdCAiKS5yZXBsYWNlKHUsIlxcZ3QgIikpLE1hdGhKYXguSHViLlR5cGVzZXQobC5ub2RlKCkpfSxmdW5jdGlvbigpe3ZhciBlPW4uc2VsZWN0KCJib2R5Iikuc2VsZWN0KCIjTWF0aEpheF9TVkdfZ2x5cGhzIik7aWYobC5zZWxlY3QoIi5NYXRoSmF4X1NWRyIpLmVtcHR5KCl8fCFsLnNlbGVjdCgic3ZnIikubm9kZSgpKWEubG9nKCJUaGVyZSB3YXMgYW4gZXJyb3IgaW4gdGhlIHRleCBzeW50YXguIix0KSxyKCk7ZWxzZXt2YXIgbz1sLnNlbGVjdCgic3ZnIikubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3IobC5zZWxlY3QoIi5NYXRoSmF4X1NWRyIpLGUsbyl9aWYobC5yZW1vdmUoKSwiU1ZHIiE9PWkpcmV0dXJuIE1hdGhKYXguSHViLnNldFJlbmRlcmVyKGkpfSxmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT1zJiYoTWF0aEpheC5IdWIucHJvY2Vzc1NlY3Rpb25EZWxheT1zKSxNYXRoSmF4Lkh1Yi5Db25maWcobyl9KX0oTFsyXSxpLGZ1bmN0aW9uKG4sYSxpKXtDLnNlbGVjdEFsbCgic3ZnLiIrUCkucmVtb3ZlKCksQy5zZWxlY3RBbGwoImcuIitQKyItZ3JvdXAiKS5yZW1vdmUoKTt2YXIgbz1uJiZuLnNlbGVjdCgic3ZnIik7aWYoIW98fCFvLm5vZGUoKSlyZXR1cm4gTygpLHZvaWQgZSgpO3ZhciBsPUMuYXBwZW5kKCJnIikuY2xhc3NlZChQKyItZ3JvdXAiLCEwKS5hdHRyKHsicG9pbnRlci1ldmVudHMiOiJub25lIiwiZGF0YS11bmZvcm1hdHRlZCI6UywiZGF0YS1tYXRoIjoiWSJ9KTtsLm5vZGUoKS5hcHBlbmRDaGlsZChvLm5vZGUoKSksYSYmYS5ub2RlKCkmJm8ubm9kZSgpLmluc2VydEJlZm9yZShhLm5vZGUoKS5jbG9uZU5vZGUoITApLG8ubm9kZSgpLmZpcnN0Q2hpbGQpLG8uYXR0cih7Y2xhc3M6UCxoZWlnaHQ6aS5oZWlnaHQscHJlc2VydmVBc3BlY3RSYXRpbzoieE1pbllNaW4gbWVldCJ9KS5zdHlsZSh7b3ZlcmZsb3c6InZpc2libGUiLCJwb2ludGVyLWV2ZW50cyI6Im5vbmUifSk7dmFyIGM9dC5ub2RlKCkuc3R5bGUuZmlsbHx8ImJsYWNrIix1PW8uc2VsZWN0KCJnIik7dS5hdHRyKHtmaWxsOmMsc3Ryb2tlOmN9KTt2YXIgaD1zKHUsIndpZHRoIiksZj1zKHUsImhlaWdodCIpLHA9K3QuYXR0cigieCIpLWgqe3N0YXJ0OjAsbWlkZGxlOi41LGVuZDoxfVt0LmF0dHIoInRleHQtYW5jaG9yIil8fCJzdGFydCJdLGQ9LShyfHxzKHQsImhlaWdodCIpKS80OyJ5Ij09PVBbMF0/KGwuYXR0cih7dHJhbnNmb3JtOiJyb3RhdGUoIitbLTkwLCt0LmF0dHIoIngiKSwrdC5hdHRyKCJ5IildKyIpIHRyYW5zbGF0ZSgiK1staC8yLGQtZi8yXSsiKSJ9KSxvLmF0dHIoe3g6K3QuYXR0cigieCIpLHk6K3QuYXR0cigieSIpfSkpOiJsIj09PVBbMF0/by5hdHRyKHt4OnQuYXR0cigieCIpLHk6ZC1mLzJ9KToiYSI9PT1QWzBdJiYwIT09UC5pbmRleE9mKCJhdGl0bGUiKT9vLmF0dHIoe3g6MCx5OmR9KTpvLmF0dHIoe3g6cCx5Oit0LmF0dHIoInkiKStkLWYvMn0pLEEmJkEuY2FsbCh0LGwpLGUobCl9KX0pKTpPKCksdH1mdW5jdGlvbiBPKCl7Qy5lbXB0eSgpfHwoUD10LmF0dHIoImNsYXNzIikrIi1tYXRoIixDLnNlbGVjdCgic3ZnLiIrUCkucmVtb3ZlKCkpLHQudGV4dCgiIikuc3R5bGUoIndoaXRlLXNwYWNlIiwicHJlIiksZnVuY3Rpb24odCxlKXtlPWUucmVwbGFjZSh2LCIgIik7dmFyIHIscz0hMSxsPVtdLGM9LTE7ZnVuY3Rpb24gdSgpe2MrKzt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoaS5zdmcsInRzcGFuIik7bi5zZWxlY3QoZSkuYXR0cih7Y2xhc3M6ImxpbmUiLGR5OmMqbysiZW0ifSksdC5hcHBlbmRDaGlsZChlKSxyPWU7dmFyIGE9bDtpZihsPVt7bm9kZTplfV0sYS5sZW5ndGg+MSlmb3IodmFyIHM9MTtzPGEubGVuZ3RoO3MrKylBKGFbc10pfWZ1bmN0aW9uIEEodCl7dmFyIGUsYT10LnR5cGUsbz17fTtpZigiYSI9PT1hKXtlPSJhIjt2YXIgcz10LnRhcmdldCxjPXQuaHJlZix1PXQucG9wdXA7YyYmKG89eyJ4bGluazp4bGluazpzaG93IjoiX2JsYW5rIj09PXN8fCJfIiE9PXMuY2hhckF0KDApPyJuZXciOiJyZXBsYWNlIix0YXJnZXQ6cywieGxpbms6eGxpbms6aHJlZiI6Y30sdSYmKG8ub25jbGljaz0nd2luZG93Lm9wZW4odGhpcy5ocmVmLmJhc2VWYWwsdGhpcy50YXJnZXQuYmFzZVZhbCwiJyt1KyciKTtyZXR1cm4gZmFsc2U7JykpfWVsc2UgZT0idHNwYW4iO3Quc3R5bGUmJihvLnN0eWxlPXQuc3R5bGUpO3ZhciBoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhpLnN2ZyxlKTtpZigic3VwIj09PWF8fCJzdWIiPT09YSl7UyhyLGQpLHIuYXBwZW5kQ2hpbGQoaCk7dmFyIGc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGkuc3ZnLCJ0c3BhbiIpO1MoZyxkKSxuLnNlbGVjdChnKS5hdHRyKCJkeSIscFthXSksby5keT1mW2FdLHIuYXBwZW5kQ2hpbGQoaCksci5hcHBlbmRDaGlsZChnKX1lbHNlIHIuYXBwZW5kQ2hpbGQoaCk7bi5zZWxlY3QoaCkuYXR0cihvKSxyPXQubm9kZT1oLGwucHVzaCh0KX1mdW5jdGlvbiBTKHQsZSl7dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShlKSl9ZnVuY3Rpb24gTCh0KXtpZigxIT09bC5sZW5ndGgpe3ZhciBuPWwucG9wKCk7dCE9PW4udHlwZSYmYS5sb2coIlN0YXJ0IHRhZyA8IituLnR5cGUrIj4gZG9lc250IG1hdGNoIGVuZCB0YWcgPCIrdCsiPi4gUHJldGVuZGluZyBpdCBkaWQgbWF0Y2guIixlKSxyPWxbbC5sZW5ndGgtMV0ubm9kZX1lbHNlIGEubG9nKCJJZ25vcmluZyB1bmV4cGVjdGVkIGVuZCB0YWcgPC8iK3QrIj4uIixlKX14LnRlc3QoZSk/dSgpOihyPXQsbD1be25vZGU6dH1dKTtmb3IodmFyIEM9ZS5zcGxpdChtKSxQPTA7UDxDLmxlbmd0aDtQKyspe3ZhciBPPUNbUF0sej1PLm1hdGNoKHkpLEk9eiYmelsyXS50b0xvd2VyQ2FzZSgpLEQ9aFtJXTtpZigiYnIiPT09SSl1KCk7ZWxzZSBpZih2b2lkIDA9PT1EKVMocixFKE8pKTtlbHNlIGlmKHpbMV0pTChJKTtlbHNle3ZhciBSPXpbNF0sRj17dHlwZTpJfSxCPVQoUixiKTtpZihCPyhCPUIucmVwbGFjZShNLCIkMSBmaWxsOiIpLEQmJihCKz0iOyIrRCkpOkQmJihCPUQpLEImJihGLnN0eWxlPUIpLCJhIj09PUkpe3M9ITA7dmFyIE49VChSLF8pO2lmKE4pe3ZhciBqPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtqLmhyZWY9TiwtMSE9PWcuaW5kZXhPZihqLnByb3RvY29sKSYmKEYuaHJlZj1lbmNvZGVVUkkoZGVjb2RlVVJJKE4pKSxGLnRhcmdldD1UKFIsdyl8fCJfYmxhbmsiLEYucG9wdXA9VChSLGspKX19QShGKX19cmV0dXJuIHN9KHQubm9kZSgpLFMpJiZ0LnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpLHIucG9zaXRpb25UZXh0KHQpLEEmJkEuY2FsbCh0KX19O3ZhciBjPS8oPHwmbHQ7fCYjNjA7KS9nLHU9Lyg+fCZndDt8JiM2MjspL2c7dmFyIGg9e3N1cDoiZm9udC1zaXplOjcwJSIsc3ViOiJmb250LXNpemU6NzAlIixiOiJmb250LXdlaWdodDpib2xkIixpOiJmb250LXN0eWxlOml0YWxpYyIsYToiY3Vyc29yOnBvaW50ZXIiLHNwYW46IiIsZW06ImZvbnQtc3R5bGU6aXRhbGljO2ZvbnQtd2VpZ2h0OmJvbGQifSxmPXtzdWI6IjAuM2VtIixzdXA6Ii0wLjZlbSJ9LHA9e3N1YjoiLTAuMjFlbSIsc3VwOiIwLjQyZW0ifSxkPSJcdTIwMGIiLGc9WyJodHRwOiIsImh0dHBzOiIsIm1haWx0bzoiLCIiLHZvaWQgMCwiOiJdLHY9ci5ORVdMSU5FUz0vKFxyXG4/fFxuKS9nLG09Lyg8W148Pl0qPikvLHk9LzwoXC8/KShbXiA+XSopKFxzKyguKikpPz4vaSx4PS88YnIoXHMrLiopPz4vaTtyLkJSX1RBR19BTEw9LzxicihccysuKik/Pi9naTt2YXIgYj0vKF58W1xzIiddKXN0eWxlXHMqPVxzKigiKFteIl0qKTs/InwnKFteJ10qKTs/JykvaSxfPS8oXnxbXHMiJ10paHJlZlxzKj1ccyooIihbXiJdKikifCcoW14nXSopJykvaSx3PS8oXnxbXHMiJ10pdGFyZ2V0XHMqPVxzKigiKFteIlxzXSopInwnKFteJ1xzXSopJykvaSxrPS8oXnxbXHMiJ10pcG9wdXBccyo9XHMqKCIoW1x3PSxdKikifCcoW1x3PSxdKiknKS9pO2Z1bmN0aW9uIFQodCxlKXtpZighdClyZXR1cm4gbnVsbDt2YXIgcj10Lm1hdGNoKGUpLG49ciYmKHJbM118fHJbNF0pO3JldHVybiBuJiZFKG4pfXZhciBNPS8oXnw7KVxzKmNvbG9yOi87ci5wbGFpblRleHQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dm9pZCAwIT09KGU9ZXx8e30pLmxlbiYmLTEhPT1lLmxlbj9lLmxlbjoxLzAsbj12b2lkIDAhPT1lLmFsbG93ZWRUYWdzP2UuYWxsb3dlZFRhZ3M6WyJiciJdLGE9Ii4uLiIubGVuZ3RoLGk9dC5zcGxpdChtKSxvPVtdLHM9IiIsbD0wLGM9MDtjPGkubGVuZ3RoO2MrKyl7dmFyIHU9aVtjXSxoPXUubWF0Y2goeSksZj1oJiZoWzJdLnRvTG93ZXJDYXNlKCk7aWYoZiktMSE9PW4uaW5kZXhPZihmKSYmKG8ucHVzaCh1KSxzPWYpO2Vsc2V7dmFyIHA9dS5sZW5ndGg7aWYobCtwPHIpby5wdXNoKHUpLGwrPXA7ZWxzZSBpZihsPHIpe3ZhciBkPXItbDtzJiYoImJyIiE9PXN8fGQ8PWF8fHA8PWEpJiZvLnBvcCgpLHI+YT9vLnB1c2godS5zdWJzdHIoMCxkLWEpKyIuLi4iKTpvLnB1c2godS5zdWJzdHIoMCxkKSk7YnJlYWt9cz0iIn19cmV0dXJuIG8uam9pbigiIil9O3ZhciBBPXttdToiXHUwM2JjIixhbXA6IiYiLGx0OiI8IixndDoiPiIsbmJzcDoiXHhhMCIsdGltZXM6Ilx4ZDciLHBsdXNtbjoiXHhiMSIsZGVnOiJceGIwIn0sUz0vJigjXGQrfCN4W1xkYS1mQS1GXSt8W2Etel0rKTsvZztmdW5jdGlvbiBFKHQpe3JldHVybiB0LnJlcGxhY2UoUyxmdW5jdGlvbih0LGUpe3JldHVybigiIyI9PT1lLmNoYXJBdCgwKT9mdW5jdGlvbih0KXtpZih0PjExMTQxMTEpcmV0dXJuO3ZhciBlPVN0cmluZy5mcm9tQ29kZVBvaW50O2lmKGUpcmV0dXJuIGUodCk7dmFyIHI9U3RyaW5nLmZyb21DaGFyQ29kZTtyZXR1cm4gdDw9NjU1MzU/cih0KTpyKDU1MjMyKyh0Pj4xMCksdCUxMDI0KzU2MzIwKX0oIngiPT09ZS5jaGFyQXQoMSk/cGFyc2VJbnQoZS5zdWJzdHIoMiksMTYpOnBhcnNlSW50KGUuc3Vic3RyKDEpLDEwKSk6QVtlXSl8fHR9KX1mdW5jdGlvbiBMKHQsZSxyKXt2YXIgbixhLGksbz1yLmhvcml6b250YWxBbGlnbixzPXIudmVydGljYWxBbGlnbnx8InRvcCIsbD10Lm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxjPWUubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiBhPSJib3R0b20iPT09cz9mdW5jdGlvbigpe3JldHVybiBsLmJvdHRvbS1uLmhlaWdodH06Im1pZGRsZSI9PT1zP2Z1bmN0aW9uKCl7cmV0dXJuIGwudG9wKyhsLmhlaWdodC1uLmhlaWdodCkvMn06ZnVuY3Rpb24oKXtyZXR1cm4gbC50b3B9LGk9InJpZ2h0Ij09PW8/ZnVuY3Rpb24oKXtyZXR1cm4gbC5yaWdodC1uLndpZHRofToiY2VudGVyIj09PW8/ZnVuY3Rpb24oKXtyZXR1cm4gbC5sZWZ0KyhsLndpZHRoLW4ud2lkdGgpLzJ9OmZ1bmN0aW9uKCl7cmV0dXJuIGwubGVmdH0sZnVuY3Rpb24oKXtyZXR1cm4gbj10aGlzLm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0aGlzLnN0eWxlKHt0b3A6YSgpLWMudG9wKyJweCIsbGVmdDppKCktYy5sZWZ0KyJweCIsInotaW5kZXgiOjFlM30pLHRoaXN9fXIuY29udmVydEVudGl0aWVzPUUsci5saW5lQ291bnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQuc2VsZWN0QWxsKCJ0c3Bhbi5saW5lIikuc2l6ZSgpfHwxfSxyLnBvc2l0aW9uVGV4dD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQuZWFjaChmdW5jdGlvbigpe3ZhciB0PW4uc2VsZWN0KHRoaXMpO2Z1bmN0aW9uIGEoZSxyKXtyZXR1cm4gdm9pZCAwPT09cj9udWxsPT09KHI9dC5hdHRyKGUpKSYmKHQuYXR0cihlLDApLHI9MCk6dC5hdHRyKGUscikscn12YXIgaT1hKCJ4IixlKSxvPWEoInkiLHIpOyJ0ZXh0Ij09PXRoaXMubm9kZU5hbWUmJnQuc2VsZWN0QWxsKCJ0c3Bhbi5saW5lIikuYXR0cih7eDppLHk6b30pfSl9LHIubWFrZUVkaXRhYmxlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5nZCxhPWUuZGVsZWdhdGUsaT1uLmRpc3BhdGNoKCJlZGl0IiwiaW5wdXQiLCJjYW5jZWwiKSxvPWF8fHQ7aWYodC5zdHlsZSh7InBvaW50ZXItZXZlbnRzIjphPyJub25lIjoiYWxsIn0pLDEhPT10LnNpemUoKSl0aHJvdyBuZXcgRXJyb3IoImJvbyIpO2Z1bmN0aW9uIHMoKXshZnVuY3Rpb24oKXt2YXIgYT1uLnNlbGVjdChyKS5zZWxlY3QoIi5zdmctY29udGFpbmVyIiksbz1hLmFwcGVuZCgiZGl2Iikscz10Lm5vZGUoKS5zdHlsZSxjPXBhcnNlRmxvYXQocy5mb250U2l6ZXx8MTIpLHU9ZS50ZXh0O3ZvaWQgMD09PXUmJih1PXQuYXR0cigiZGF0YS11bmZvcm1hdHRlZCIpKTtvLmNsYXNzZWQoInBsdWdpbi1lZGl0YWJsZSBlZGl0YWJsZSIsITApLnN0eWxlKHtwb3NpdGlvbjoiYWJzb2x1dGUiLCJmb250LWZhbWlseSI6cy5mb250RmFtaWx5fHwiQXJpYWwiLCJmb250LXNpemUiOmMsY29sb3I6ZS5maWxsfHxzLmZpbGx8fCJibGFjayIsb3BhY2l0eToxLCJiYWNrZ3JvdW5kLWNvbG9yIjplLmJhY2tncm91bmR8fCJ0cmFuc3BhcmVudCIsb3V0bGluZToiI2ZmZmZmZjMzIDFweCBzb2xpZCIsbWFyZ2luOlstYy84KzEsMCwwLC0xXS5qb2luKCJweCAiKSsicHgiLHBhZGRpbmc6IjAiLCJib3gtc2l6aW5nIjoiYm9yZGVyLWJveCJ9KS5hdHRyKHtjb250ZW50ZWRpdGFibGU6ITB9KS50ZXh0KHUpLmNhbGwoTCh0LGEsZSkpLm9uKCJibHVyIixmdW5jdGlvbigpe3IuX2VkaXRpbmc9ITEsdC50ZXh0KHRoaXMudGV4dENvbnRlbnQpLnN0eWxlKHtvcGFjaXR5OjF9KTt2YXIgZSxhPW4uc2VsZWN0KHRoaXMpLmF0dHIoImNsYXNzIik7KGU9YT8iLiIrYS5zcGxpdCgiICIpWzBdKyItbWF0aC1ncm91cCI6IltjbGFzcyo9LW1hdGgtZ3JvdXBdIikmJm4uc2VsZWN0KHQubm9kZSgpLnBhcmVudE5vZGUpLnNlbGVjdChlKS5zdHlsZSh7b3BhY2l0eTowfSk7dmFyIG89dGhpcy50ZXh0Q29udGVudDtuLnNlbGVjdCh0aGlzKS50cmFuc2l0aW9uKCkuZHVyYXRpb24oMCkucmVtb3ZlKCksbi5zZWxlY3QoZG9jdW1lbnQpLm9uKCJtb3VzZXVwIixudWxsKSxpLmVkaXQuY2FsbCh0LG8pfSkub24oImZvY3VzIixmdW5jdGlvbigpe3ZhciB0PXRoaXM7ci5fZWRpdGluZz0hMCxuLnNlbGVjdChkb2N1bWVudCkub24oIm1vdXNldXAiLGZ1bmN0aW9uKCl7aWYobi5ldmVudC50YXJnZXQ9PT10KXJldHVybiExO2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1vLm5vZGUoKSYmby5ub2RlKCkuYmx1cigpfSl9KS5vbigia2V5dXAiLGZ1bmN0aW9uKCl7Mjc9PT1uLmV2ZW50LndoaWNoPyhyLl9lZGl0aW5nPSExLHQuc3R5bGUoe29wYWNpdHk6MX0pLG4uc2VsZWN0KHRoaXMpLnN0eWxlKHtvcGFjaXR5OjB9KS5vbigiYmx1ciIsZnVuY3Rpb24oKXtyZXR1cm4hMX0pLnRyYW5zaXRpb24oKS5yZW1vdmUoKSxpLmNhbmNlbC5jYWxsKHQsdGhpcy50ZXh0Q29udGVudCkpOihpLmlucHV0LmNhbGwodCx0aGlzLnRleHRDb250ZW50KSxuLnNlbGVjdCh0aGlzKS5jYWxsKEwodCxhLGUpKSl9KS5vbigia2V5ZG93biIsZnVuY3Rpb24oKXsxMz09PW4uZXZlbnQud2hpY2gmJnRoaXMuYmx1cigpfSkuY2FsbChsKX0oKSx0LnN0eWxlKHtvcGFjaXR5OjB9KTt2YXIgYSxzPW8uYXR0cigiY2xhc3MiKTsoYT1zPyIuIitzLnNwbGl0KCIgIilbMF0rIi1tYXRoLWdyb3VwIjoiW2NsYXNzKj0tbWF0aC1ncm91cF0iKSYmbi5zZWxlY3QodC5ub2RlKCkucGFyZW50Tm9kZSkuc2VsZWN0KGEpLnN0eWxlKHtvcGFjaXR5OjB9KX1mdW5jdGlvbiBsKHQpe3ZhciBlPXQubm9kZSgpLHI9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtyLnNlbGVjdE5vZGVDb250ZW50cyhlKTt2YXIgbj13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7bi5yZW1vdmVBbGxSYW5nZXMoKSxuLmFkZFJhbmdlKHIpLGUuZm9jdXMoKX1yZXR1cm4gZS5pbW1lZGlhdGU/cygpOm8ub24oImNsaWNrIixzKSxuLnJlYmluZCh0LGksIm9uIil9fSx7Ii4uL2NvbnN0YW50cy9hbGlnbm1lbnQiOjY4NiwiLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiOjY5NCwiLi4vbGliIjo3MTcsZDM6MTY1fV0sNzQyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXt9O2Z1bmN0aW9uIGEodCl7dCYmbnVsbCE9PXQudGltZXImJihjbGVhclRpbWVvdXQodC50aW1lciksdC50aW1lcj1udWxsKX1yLnRocm90dGxlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT1uW3RdLG89RGF0ZS5ub3coKTtpZighaSl7Zm9yKHZhciBzIGluIG4pbltzXS50czxvLTZlNCYmZGVsZXRlIG5bc107aT1uW3RdPXt0czowLHRpbWVyOm51bGx9fWZ1bmN0aW9uIGwoKXtyKCksaS50cz1EYXRlLm5vdygpLGkub25Eb25lJiYoaS5vbkRvbmUoKSxpLm9uRG9uZT1udWxsKX1hKGkpLG8+aS50cytlP2woKTppLnRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtsKCksaS50aW1lcj1udWxsfSxlKX0sci5kb25lPWZ1bmN0aW9uKHQpe3ZhciBlPW5bdF07cmV0dXJuIGUmJmUudGltZXI/bmV3IFByb21pc2UoZnVuY3Rpb24odCl7dmFyIHI9ZS5vbkRvbmU7ZS5vbkRvbmU9ZnVuY3Rpb24oKXtyJiZyKCksdCgpLGUub25Eb25lPW51bGx9fSk6UHJvbWlzZS5yZXNvbHZlKCl9LHIuY2xlYXI9ZnVuY3Rpb24odCl7aWYodClhKG5bdF0pLGRlbGV0ZSBuW3RdO2Vsc2UgZm9yKHZhciBlIGluIG4pci5jbGVhcihlKX19LHt9XSw3NDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZih0PjApcmV0dXJuIE1hdGgubG9nKHQpL01hdGguTE4xMDt2YXIgcj1NYXRoLmxvZyhNYXRoLm1pbihlWzBdLGVbMV0pKS9NYXRoLkxOMTA7cmV0dXJuIG4ocil8fChyPU1hdGgubG9nKE1hdGgubWF4KGVbMF0sZVsxXSkpL01hdGguTE4xMC02KSxyfX0seyJmYXN0LWlzbnVtZXJpYyI6MjI4fV0sNzQ0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPWUuZXhwb3J0cz17fSxhPXQoIi4uL3Bsb3RzL2dlby9jb25zdGFudHMiKS5sb2NhdGlvbm1vZGVUb0xheWVyLGk9dCgidG9wb2pzb24tY2xpZW50IikuZmVhdHVyZTtuLmdldFRvcG9qc29uTmFtZT1mdW5jdGlvbih0KXtyZXR1cm5bdC5zY29wZS5yZXBsYWNlKC8gL2csIi0iKSwiXyIsdC5yZXNvbHV0aW9uLnRvU3RyaW5nKCksIm0iXS5qb2luKCIiKX0sbi5nZXRUb3BvanNvblBhdGg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlKyIuanNvbiJ9LG4uZ2V0VG9wb2pzb25GZWF0dXJlcz1mdW5jdGlvbih0LGUpe3ZhciByPWFbdC5sb2NhdGlvbm1vZGVdLG49ZS5vYmplY3RzW3JdO3JldHVybiBpKGUsbikuZmVhdHVyZXN9fSx7Ii4uL3Bsb3RzL2dlby9jb25zdGFudHMiOjc5MywidG9wb2pzb24tY2xpZW50Ijo1Mzl9XSw3NDU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJsb2NhbGUiLG5hbWU6ImVuLVVTIixkaWN0aW9uYXJ5OnsiQ2xpY2sgdG8gZW50ZXIgQ29sb3JzY2FsZSB0aXRsZSI6IkNsaWNrIHRvIGVudGVyIENvbG9yc2NhbGUgdGl0bGUifSxmb3JtYXQ6e2RhdGU6IiVtLyVkLyVZIn19fSx7fV0sNzQ2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bW9kdWxlVHlwZToibG9jYWxlIixuYW1lOiJlbiIsZGljdGlvbmFyeTp7IkNsaWNrIHRvIGVudGVyIENvbG9yc2NhbGUgdGl0bGUiOiJDbGljayB0byBlbnRlciBDb2xvdXJzY2FsZSB0aXRsZSJ9LGZvcm1hdDp7ZGF5czpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sc2hvcnREYXlzOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sbW9udGhzOlsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXSxzaG9ydE1vbnRoczpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLHBlcmlvZHM6WyJBTSIsIlBNIl0sZGF0ZVRpbWU6IiVhICViICVlICVYICVZIixkYXRlOiIlZC8lbS8lWSIsdGltZToiJUg6JU06JVMiLGRlY2ltYWw6Ii4iLHRob3VzYW5kczoiLCIsZ3JvdXBpbmc6WzNdLGN1cnJlbmN5OlsiJCIsIiJdLHllYXI6IiVZIixtb250aDoiJWIgJVkiLGRheU1vbnRoOiIlYiAlLWQiLGRheU1vbnRoWWVhcjoiJWIgJS1kLCAlWSJ9fX0se31dLDc0NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9yZWdpc3RyeSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGUscixhPW4ubGF5b3V0QXJyYXlDb250YWluZXJzLGk9bi5sYXlvdXRBcnJheVJlZ2V4ZXMsbz10LnNwbGl0KCJbIilbMF0scz0wO3M8aS5sZW5ndGg7cysrKWlmKChyPXQubWF0Y2goaVtzXSkpJiYwPT09ci5pbmRleCl7ZT1yWzBdO2JyZWFrfWlmKGV8fChlPWFbYS5pbmRleE9mKG8pXSksIWUpcmV0dXJuITE7dmFyIGw9dC5zdWJzdHIoZS5sZW5ndGgpO3JldHVybiBsPyEhKHI9bC5tYXRjaCgvXlxbKDB8WzEtOV1bMC05XSopXF0oXC4oLispKT8kLykpJiZ7YXJyYXk6ZSxpbmRleDpOdW1iZXIoclsxXSkscHJvcGVydHk6clszXXx8IiJ9OnthcnJheTplLGluZGV4OiIiLHByb3BlcnR5OiIifX19LHsiLi4vcmVnaXN0cnkiOjg0Nn1dLDc0ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9saWIiKSxhPW4uZXh0ZW5kRmxhdCxpPW4uaXNQbGFpbk9iamVjdCxvPXt2YWxUeXBlOiJmbGFnbGlzdCIsZXh0cmFzOlsibm9uZSJdLGZsYWdzOlsiY2FsYyIsImNsZWFyQXhpc1R5cGVzIiwicGxvdCIsInN0eWxlIiwibWFya2VyU2l6ZSIsImNvbG9yYmFycyJdfSxzPXt2YWxUeXBlOiJmbGFnbGlzdCIsZXh0cmFzOlsibm9uZSJdLGZsYWdzOlsiY2FsYyIsInBsb3QiLCJsZWdlbmQiLCJ0aWNrcyIsImF4cmFuZ2UiLCJsYXlvdXRzdHlsZSIsIm1vZGViYXIiLCJjYW1lcmEiLCJhcnJheWRyYXciLCJjb2xvcmJhcnMiXX0sbD1vLmZsYWdzLnNsaWNlKCkuY29uY2F0KFsiZnVsbFJlcGxvdCJdKSxjPXMuZmxhZ3Muc2xpY2UoKS5jb25jYXQoImxheW91dFJlcGxvdCIpO2Z1bmN0aW9uIHUodCl7Zm9yKHZhciBlPXt9LHI9MDtyPHQubGVuZ3RoO3IrKyllW3Rbcl1dPSExO3JldHVybiBlfWZ1bmN0aW9uIGgodCxlLHIpe3ZhciBuPWEoe30sdCk7Zm9yKHZhciBvIGluIG4pe3ZhciBzPW5bb107aShzKSYmKG5bb109ZihzLGUscixvKSl9cmV0dXJuImZyb20tcm9vdCI9PT1yJiYobi5lZGl0VHlwZT1lKSxufWZ1bmN0aW9uIGYodCxlLHIsbil7aWYodC52YWxUeXBlKXt2YXIgaT1hKHt9LHQpO2lmKGkuZWRpdFR5cGU9ZSxBcnJheS5pc0FycmF5KHQuaXRlbXMpKXtpLml0ZW1zPW5ldyBBcnJheSh0Lml0ZW1zLmxlbmd0aCk7Zm9yKHZhciBvPTA7bzx0Lml0ZW1zLmxlbmd0aDtvKyspaS5pdGVtc1tvXT1mKHQuaXRlbXNbb10sZSwiZnJvbS1yb290Iil9cmV0dXJuIGl9cmV0dXJuIGgodCxlLCJfIj09PW4uY2hhckF0KDApPyJuZXN0ZWQiOiJmcm9tLXJvb3QiKX1lLmV4cG9ydHM9e3RyYWNlczpvLGxheW91dDpzLHRyYWNlRmxhZ3M6ZnVuY3Rpb24oKXtyZXR1cm4gdShsKX0sbGF5b3V0RmxhZ3M6ZnVuY3Rpb24oKXtyZXR1cm4gdShjKX0sdXBkYXRlOmZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5lZGl0VHlwZTtpZihyJiYibm9uZSIhPT1yKWZvcih2YXIgbj1yLnNwbGl0KCIrIiksYT0wO2E8bi5sZW5ndGg7YSsrKXRbblthXV09ITB9LG92ZXJyaWRlQWxsOmh9fSx7Ii4uL2xpYiI6NzE3fV0sNzQ5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksYT10KCJnbC1tYXQ0L2Zyb21RdWF0IiksaT10KCIuLi9yZWdpc3RyeSIpLG89dCgiLi4vbGliIikscz10KCIuLi9wbG90cy9wbG90cyIpLGw9dCgiLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIiksYz10KCIuLi9jb21wb25lbnRzL2NvbG9yIiksdT1sLmNsZWFuSWQsaD1sLmdldEZyb21UcmFjZSxmPWkudHJhY2VJcztmdW5jdGlvbiBwKHQsZSl7dmFyIHI9dFtlXSxuPWUuY2hhckF0KDApO3ImJiJwYXBlciIhPT1yJiYodFtlXT11KHIsbikpfWZ1bmN0aW9uIGQodCl7ZnVuY3Rpb24gZShlLHIpe3ZhciBuPXRbZV0sYT10LnRpdGxlJiZ0LnRpdGxlW3JdO24mJiFhJiYodC50aXRsZXx8KHQudGl0bGU9e30pLHQudGl0bGVbcl09dFtlXSxkZWxldGUgdFtlXSl9dCYmKCJzdHJpbmciIT10eXBlb2YgdC50aXRsZSYmIm51bWJlciIhPXR5cGVvZiB0LnRpdGxlfHwodC50aXRsZT17dGV4dDp0LnRpdGxlfSksZSgidGl0bGVmb250IiwiZm9udCIpLGUoInRpdGxlcG9zaXRpb24iLCJwb3NpdGlvbiIpLGUoInRpdGxlc2lkZSIsInNpZGUiKSxlKCJ0aXRsZW9mZnNldCIsIm9mZnNldCIpKX1mdW5jdGlvbiBnKHQpe2lmKCFvLmlzUGxhaW5PYmplY3QodCkpcmV0dXJuITE7dmFyIGU9dC5uYW1lO3JldHVybiBkZWxldGUgdC5uYW1lLGRlbGV0ZSB0LnNob3dsZWdlbmQsKCJzdHJpbmciPT10eXBlb2YgZXx8Im51bWJlciI9PXR5cGVvZiBlKSYmU3RyaW5nKGUpfWZ1bmN0aW9uIHYodCxlLHIsbil7aWYociYmIW4pcmV0dXJuIHQ7aWYobiYmIXIpcmV0dXJuIGU7aWYoIXQudHJpbSgpKXJldHVybiBlO2lmKCFlLnRyaW0oKSlyZXR1cm4gdDt2YXIgYSxpPU1hdGgubWluKHQubGVuZ3RoLGUubGVuZ3RoKTtmb3IoYT0wO2E8aSYmdC5jaGFyQXQoYSk9PT1lLmNoYXJBdChhKTthKyspO3JldHVybiB0LnN1YnN0cigwLGEpLnRyaW0oKX1mdW5jdGlvbiBtKHQpe3ZhciBlPSJtaWRkbGUiLHI9ImNlbnRlciI7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0JiYoLTEhPT10LmluZGV4T2YoInRvcCIpP2U9InRvcCI6LTEhPT10LmluZGV4T2YoImJvdHRvbSIpJiYoZT0iYm90dG9tIiksLTEhPT10LmluZGV4T2YoImxlZnQiKT9yPSJsZWZ0IjotMSE9PXQuaW5kZXhPZigicmlnaHQiKSYmKHI9InJpZ2h0IikpLGUrIiAiK3J9ZnVuY3Rpb24geSh0LGUpe3JldHVybiBlIGluIHQmJiJvYmplY3QiPT10eXBlb2YgdFtlXSYmMD09PU9iamVjdC5rZXlzKHRbZV0pLmxlbmd0aH1yLmNsZWFyUHJvbWlzZVF1ZXVlPWZ1bmN0aW9uKHQpe0FycmF5LmlzQXJyYXkodC5fcHJvbWlzZXMpJiZ0Ll9wcm9taXNlcy5sZW5ndGg+MCYmby5sb2coIkNsZWFyaW5nIHByZXZpb3VzIHJlamVjdGVkIHByb21pc2VzIGZyb20gcXVldWUuIiksdC5fcHJvbWlzZXM9W119LHIuY2xlYW5MYXlvdXQ9ZnVuY3Rpb24odCl7dmFyIGUsbjt0fHwodD17fSksdC54YXhpczEmJih0LnhheGlzfHwodC54YXhpcz10LnhheGlzMSksZGVsZXRlIHQueGF4aXMxKSx0LnlheGlzMSYmKHQueWF4aXN8fCh0LnlheGlzPXQueWF4aXMxKSxkZWxldGUgdC55YXhpczEpLHQuc2NlbmUxJiYodC5zY2VuZXx8KHQuc2NlbmU9dC5zY2VuZTEpLGRlbGV0ZSB0LnNjZW5lMSk7dmFyIGk9KHMuc3VicGxvdHNSZWdpc3RyeS5jYXJ0ZXNpYW58fHt9KS5hdHRyUmVnZXgsbD0ocy5zdWJwbG90c1JlZ2lzdHJ5LnBvbGFyfHx7fSkuYXR0clJlZ2V4LGg9KHMuc3VicGxvdHNSZWdpc3RyeS50ZXJuYXJ5fHx7fSkuYXR0clJlZ2V4LGY9KHMuc3VicGxvdHNSZWdpc3RyeS5nbDNkfHx7fSkuYXR0clJlZ2V4LGc9T2JqZWN0LmtleXModCk7Zm9yKGU9MDtlPGcubGVuZ3RoO2UrKyl7dmFyIHY9Z1tlXTtpZihpJiZpLnRlc3Qodikpe3ZhciBtPXRbdl07bS5hbmNob3ImJiJmcmVlIiE9PW0uYW5jaG9yJiYobS5hbmNob3I9dShtLmFuY2hvcikpLG0ub3ZlcmxheWluZyYmKG0ub3ZlcmxheWluZz11KG0ub3ZlcmxheWluZykpLG0udHlwZXx8KG0uaXNkYXRlP20udHlwZT0iZGF0ZSI6bS5pc2xvZz9tLnR5cGU9ImxvZyI6ITE9PT1tLmlzZGF0ZSYmITE9PT1tLmlzbG9nJiYobS50eXBlPSJsaW5lYXIiKSksIndpdGh6ZXJvIiE9PW0uYXV0b3JhbmdlJiYidG96ZXJvIiE9PW0uYXV0b3JhbmdlfHwobS5hdXRvcmFuZ2U9ITAsbS5yYW5nZW1vZGU9InRvemVybyIpLGRlbGV0ZSBtLmlzbG9nLGRlbGV0ZSBtLmlzZGF0ZSxkZWxldGUgbS5jYXRlZ29yaWVzLHkobSwiZG9tYWluIikmJmRlbGV0ZSBtLmRvbWFpbix2b2lkIDAhPT1tLmF1dG90aWNrJiYodm9pZCAwPT09bS50aWNrbW9kZSYmKG0udGlja21vZGU9bS5hdXRvdGljaz8iYXV0byI6ImxpbmVhciIpLGRlbGV0ZSBtLmF1dG90aWNrKSxkKG0pfWVsc2UgaWYobCYmbC50ZXN0KHYpKXtkKHRbdl0ucmFkaWFsYXhpcyl9ZWxzZSBpZihoJiZoLnRlc3Qodikpe3ZhciB4PXRbdl07ZCh4LmFheGlzKSxkKHguYmF4aXMpLGQoeC5jYXhpcyl9ZWxzZSBpZihmJiZmLnRlc3Qodikpe3ZhciBiPXRbdl0sXz1iLmNhbWVyYXBvc2l0aW9uO2lmKEFycmF5LmlzQXJyYXkoXykmJjQ9PT1fWzBdLmxlbmd0aCl7dmFyIHc9X1swXSxrPV9bMV0sVD1fWzJdLE09YShbXSx3KSxBPVtdO2ZvcihuPTA7bjwzOysrbilBW25dPWtbbl0rVCpNWzIrNCpuXTtiLmNhbWVyYT17ZXllOnt4OkFbMF0seTpBWzFdLHo6QVsyXX0sY2VudGVyOnt4OmtbMF0seTprWzFdLHo6a1syXX0sdXA6e3g6MCx5OjAsejoxfX0sZGVsZXRlIGIuY2FtZXJhcG9zaXRpb259ZChiLnhheGlzKSxkKGIueWF4aXMpLGQoYi56YXhpcyl9fXZhciBTPUFycmF5LmlzQXJyYXkodC5hbm5vdGF0aW9ucyk/dC5hbm5vdGF0aW9ucy5sZW5ndGg6MDtmb3IoZT0wO2U8UztlKyspe3ZhciBFPXQuYW5ub3RhdGlvbnNbZV07by5pc1BsYWluT2JqZWN0KEUpJiYoRS5yZWYmJigicGFwZXIiPT09RS5yZWY/KEUueHJlZj0icGFwZXIiLEUueXJlZj0icGFwZXIiKToiZGF0YSI9PT1FLnJlZiYmKEUueHJlZj0ieCIsRS55cmVmPSJ5IiksZGVsZXRlIEUucmVmKSxwKEUsInhyZWYiKSxwKEUsInlyZWYiKSl9dmFyIEw9QXJyYXkuaXNBcnJheSh0LnNoYXBlcyk/dC5zaGFwZXMubGVuZ3RoOjA7Zm9yKGU9MDtlPEw7ZSsrKXt2YXIgQz10LnNoYXBlc1tlXTtvLmlzUGxhaW5PYmplY3QoQykmJihwKEMsInhyZWYiKSxwKEMsInlyZWYiKSl9dmFyIFA9dC5sZWdlbmQ7cmV0dXJuIFAmJihQLng+Mz8oUC54PTEuMDIsUC54YW5jaG9yPSJsZWZ0Iik6UC54PC0yJiYoUC54PS0uMDIsUC54YW5jaG9yPSJyaWdodCIpLFAueT4zPyhQLnk9MS4wMixQLnlhbmNob3I9ImJvdHRvbSIpOlAueTwtMiYmKFAueT0tLjAyLFAueWFuY2hvcj0idG9wIikpLGQodCksInJvdGF0ZSI9PT10LmRyYWdtb2RlJiYodC5kcmFnbW9kZT0ib3JiaXQiKSxjLmNsZWFuKHQpLHQudGVtcGxhdGUmJnQudGVtcGxhdGUubGF5b3V0JiZyLmNsZWFuTGF5b3V0KHQudGVtcGxhdGUubGF5b3V0KSx0fSxyLmNsZWFuRGF0YT1mdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKyl7dmFyIG4sYT10W2VdO2lmKCJoaXN0b2dyYW15Ij09PWEudHlwZSYmInhiaW5zImluIGEmJiEoInliaW5zImluIGEpJiYoYS55Ymlucz1hLnhiaW5zLGRlbGV0ZSBhLnhiaW5zKSxhLmVycm9yX3kmJiJvcGFjaXR5ImluIGEuZXJyb3JfeSl7dmFyIGw9Yy5kZWZhdWx0cyxoPWEuZXJyb3JfeS5jb2xvcnx8KGYoYSwiYmFyIik/Yy5kZWZhdWx0TGluZTpsW2UlbC5sZW5ndGhdKTthLmVycm9yX3kuY29sb3I9Yy5hZGRPcGFjaXR5KGMucmdiKGgpLGMub3BhY2l0eShoKSphLmVycm9yX3kub3BhY2l0eSksZGVsZXRlIGEuZXJyb3JfeS5vcGFjaXR5fWlmKCJiYXJkaXIiaW4gYSYmKCJoIiE9PWEuYmFyZGlyfHwhZihhLCJiYXIiKSYmImhpc3RvZ3JhbSIhPT1hLnR5cGUuc3Vic3RyKDAsOSl8fChhLm9yaWVudGF0aW9uPSJoIixyLnN3YXBYWURhdGEoYSkpLGRlbGV0ZSBhLmJhcmRpciksImhpc3RvZ3JhbXkiPT09YS50eXBlJiZyLnN3YXBYWURhdGEoYSksImhpc3RvZ3JhbXgiIT09YS50eXBlJiYiaGlzdG9ncmFteSIhPT1hLnR5cGV8fChhLnR5cGU9Imhpc3RvZ3JhbSIpLCJzY2wiaW4gYSYmISgiY29sb3JzY2FsZSJpbiBhKSYmKGEuY29sb3JzY2FsZT1hLnNjbCxkZWxldGUgYS5zY2wpLCJyZXZlcnNlc2NsImluIGEmJiEoInJldmVyc2VzY2FsZSJpbiBhKSYmKGEucmV2ZXJzZXNjYWxlPWEucmV2ZXJzZXNjbCxkZWxldGUgYS5yZXZlcnNlc2NsKSxhLnhheGlzJiYoYS54YXhpcz11KGEueGF4aXMsIngiKSksYS55YXhpcyYmKGEueWF4aXM9dShhLnlheGlzLCJ5IikpLGYoYSwiZ2wzZCIpJiZhLnNjZW5lJiYoYS5zY2VuZT1zLnN1YnBsb3RzUmVnaXN0cnkuZ2wzZC5jbGVhbklkKGEuc2NlbmUpKSwhZihhLCJwaWUtbGlrZSIpJiYhZihhLCJiYXItbGlrZSIpKWlmKEFycmF5LmlzQXJyYXkoYS50ZXh0cG9zaXRpb24pKWZvcihuPTA7bjxhLnRleHRwb3NpdGlvbi5sZW5ndGg7bisrKWEudGV4dHBvc2l0aW9uW25dPW0oYS50ZXh0cG9zaXRpb25bbl0pO2Vsc2UgYS50ZXh0cG9zaXRpb24mJihhLnRleHRwb3NpdGlvbj1tKGEudGV4dHBvc2l0aW9uKSk7dmFyIHA9aS5nZXRNb2R1bGUoYSk7aWYocCYmcC5jb2xvcmJhcil7dmFyIHg9cC5jb2xvcmJhci5jb250YWluZXIsYj14P2FbeF06YTtiJiZiLmNvbG9yc2NhbGUmJigiWUlHbkJ1Ij09PWIuY29sb3JzY2FsZSYmKGIuY29sb3JzY2FsZT0iWWxHbkJ1IiksIllJT3JSZCI9PT1iLmNvbG9yc2NhbGUmJihiLmNvbG9yc2NhbGU9IllsT3JSZCIpKX1pZigic3VyZmFjZSI9PT1hLnR5cGUmJm8uaXNQbGFpbk9iamVjdChhLmNvbnRvdXJzKSl7dmFyIF89WyJ4IiwieSIsInoiXTtmb3Iobj0wO248Xy5sZW5ndGg7bisrKXt2YXIgdz1hLmNvbnRvdXJzW19bbl1dO28uaXNQbGFpbk9iamVjdCh3KSYmKHcuaGlnaGxpZ2h0Q29sb3ImJih3LmhpZ2hsaWdodGNvbG9yPXcuaGlnaGxpZ2h0Q29sb3IsZGVsZXRlIHcuaGlnaGxpZ2h0Q29sb3IpLHcuaGlnaGxpZ2h0V2lkdGgmJih3LmhpZ2hsaWdodHdpZHRoPXcuaGlnaGxpZ2h0V2lkdGgsZGVsZXRlIHcuaGlnaGxpZ2h0V2lkdGgpKX19aWYoImNhbmRsZXN0aWNrIj09PWEudHlwZXx8Im9obGMiPT09YS50eXBlKXt2YXIgaz0hMSE9PShhLmluY3JlYXNpbmd8fHt9KS5zaG93bGVnZW5kLFQ9ITEhPT0oYS5kZWNyZWFzaW5nfHx7fSkuc2hvd2xlZ2VuZCxNPWcoYS5pbmNyZWFzaW5nKSxBPWcoYS5kZWNyZWFzaW5nKTtpZighMSE9PU0mJiExIT09QSl7dmFyIFM9dihNLEEsayxUKTtTJiYoYS5uYW1lPVMpfWVsc2UhTSYmIUF8fGEubmFtZXx8KGEubmFtZT1NfHxBKX1pZihBcnJheS5pc0FycmF5KGEudHJhbnNmb3Jtcykpe3ZhciBFPWEudHJhbnNmb3Jtcztmb3Iobj0wO248RS5sZW5ndGg7bisrKXt2YXIgTD1FW25dO2lmKG8uaXNQbGFpbk9iamVjdChMKSlzd2l0Y2goTC50eXBlKXtjYXNlImZpbHRlciI6TC5maWx0ZXJzcmMmJihMLnRhcmdldD1MLmZpbHRlcnNyYyxkZWxldGUgTC5maWx0ZXJzcmMpLEwuY2FsZW5kYXImJihMLnZhbHVlY2FsZW5kYXJ8fChMLnZhbHVlY2FsZW5kYXI9TC5jYWxlbmRhciksZGVsZXRlIEwuY2FsZW5kYXIpO2JyZWFrO2Nhc2UiZ3JvdXBieSI6aWYoTC5zdHlsZXM9TC5zdHlsZXN8fEwuc3R5bGUsTC5zdHlsZXMmJiFBcnJheS5pc0FycmF5KEwuc3R5bGVzKSl7dmFyIEM9TC5zdHlsZXMsUD1PYmplY3Qua2V5cyhDKTtMLnN0eWxlcz1bXTtmb3IodmFyIE89MDtPPFAubGVuZ3RoO08rKylMLnN0eWxlcy5wdXNoKHt0YXJnZXQ6UFtPXSx2YWx1ZTpDW1BbT11dfSl9fX19eShhLCJsaW5lIikmJmRlbGV0ZSBhLmxpbmUsIm1hcmtlciJpbiBhJiYoeShhLm1hcmtlciwibGluZSIpJiZkZWxldGUgYS5tYXJrZXIubGluZSx5KGEsIm1hcmtlciIpJiZkZWxldGUgYS5tYXJrZXIpLGMuY2xlYW4oYSksYS5hdXRvYmlueCYmKGRlbGV0ZSBhLmF1dG9iaW54LGRlbGV0ZSBhLnhiaW5zKSxhLmF1dG9iaW55JiYoZGVsZXRlIGEuYXV0b2JpbnksZGVsZXRlIGEueWJpbnMpLGQoYSksYS5jb2xvcmJhciYmZChhLmNvbG9yYmFyKSxhLm1hcmtlciYmYS5tYXJrZXIuY29sb3JiYXImJmQoYS5tYXJrZXIuY29sb3JiYXIpLGEubGluZSYmYS5saW5lLmNvbG9yYmFyJiZkKGEubGluZS5jb2xvcmJhciksYS5hYXhpcyYmZChhLmFheGlzKSxhLmJheGlzJiZkKGEuYmF4aXMpfX0sci5zd2FwWFlEYXRhPWZ1bmN0aW9uKHQpe3ZhciBlO2lmKG8uc3dhcEF0dHJzKHQsWyI/IiwiPzAiLCJkPyIsIj9iaW5zIiwibmJpbnM/IiwiYXV0b2Jpbj8iLCI/c3JjIiwiZXJyb3JfPyJdKSxBcnJheS5pc0FycmF5KHQueikmJkFycmF5LmlzQXJyYXkodC56WzBdKSYmKHQudHJhbnNwb3NlP2RlbGV0ZSB0LnRyYW5zcG9zZTp0LnRyYW5zcG9zZT0hMCksdC5lcnJvcl94JiZ0LmVycm9yX3kpe3ZhciByPXQuZXJyb3JfeSxuPSJjb3B5X3lzdHlsZSJpbiByP3IuY29weV95c3R5bGU6IShyLmNvbG9yfHxyLnRoaWNrbmVzc3x8ci53aWR0aCk7by5zd2FwQXR0cnModCxbImVycm9yXz8uY29weV95c3R5bGUiXSksbiYmby5zd2FwQXR0cnModCxbImVycm9yXz8uY29sb3IiLCJlcnJvcl8/LnRoaWNrbmVzcyIsImVycm9yXz8ud2lkdGgiXSl9aWYoInN0cmluZyI9PXR5cGVvZiB0LmhvdmVyaW5mbyl7dmFyIGE9dC5ob3ZlcmluZm8uc3BsaXQoIisiKTtmb3IoZT0wO2U8YS5sZW5ndGg7ZSsrKSJ4Ij09PWFbZV0/YVtlXT0ieSI6InkiPT09YVtlXSYmKGFbZV09IngiKTt0LmhvdmVyaW5mbz1hLmpvaW4oIisiKX19LHIuY29lcmNlVHJhY2VJbmRpY2VzPWZ1bmN0aW9uKHQsZSl7aWYobihlKSlyZXR1cm5bZV07aWYoIUFycmF5LmlzQXJyYXkoZSl8fCFlLmxlbmd0aClyZXR1cm4gdC5kYXRhLm1hcChmdW5jdGlvbih0LGUpe3JldHVybiBlfSk7aWYoQXJyYXkuaXNBcnJheShlKSl7Zm9yKHZhciByPVtdLGE9MDthPGUubGVuZ3RoO2ErKylvLmlzSW5kZXgoZVthXSx0LmRhdGEubGVuZ3RoKT9yLnB1c2goZVthXSk6by53YXJuKCJ0cmFjZSBpbmRleCAoIixlW2FdLCIpIGlzIG5vdCBhIG51bWJlciBvciBpcyBvdXQgb2YgYm91bmRzIik7cmV0dXJuIHJ9cmV0dXJuIGV9LHIubWFuYWdlQXJyYXlDb250YWluZXJzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgYT10Lm9iaixpPXQucGFydHMscz1pLmxlbmd0aCxsPWlbcy0xXSxjPW4obCk7aWYoYyYmbnVsbD09PWUpe3ZhciB1PWkuc2xpY2UoMCxzLTEpLmpvaW4oIi4iKTtvLm5lc3RlZFByb3BlcnR5KGEsdSkuZ2V0KCkuc3BsaWNlKGwsMSl9ZWxzZSBjJiZ2b2lkIDA9PT10LmdldCgpPyh2b2lkIDA9PT10LmdldCgpJiYoclt0LmFzdHJdPW51bGwpLHQuc2V0KGUpKTp0LnNldChlKX07dmFyIHg9LyhcLlteXFtcXVwuXSt8XFtbXlxbXF1cLl0rXF0pJC87ZnVuY3Rpb24gYih0KXt2YXIgZT10LnNlYXJjaCh4KTtpZihlPjApcmV0dXJuIHQuc3Vic3RyKDAsZSl9ci5oYXNQYXJlbnQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9YihlKTtyOyl7aWYociBpbiB0KXJldHVybiEwO3I9YihyKX1yZXR1cm4hMX07dmFyIF89WyJ4IiwieSIsInoiXTtyLmNsZWFyQXhpc1R5cGVzPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKylmb3IodmFyIGE9dC5fZnVsbERhdGFbbl0saT0wO2k8MztpKyspe3ZhciBzPWgodCxhLF9baV0pO2lmKHMmJiJsb2ciIT09cy50eXBlKXt2YXIgbD1zLl9uYW1lLGM9cy5faWQuc3Vic3RyKDEpO2lmKCJzY2VuZSI9PT1jLnN1YnN0cigwLDUpKXtpZih2b2lkIDAhPT1yW2NdKWNvbnRpbnVlO2w9YysiLiIrbH12YXIgdT1sKyIudHlwZSI7dm9pZCAwPT09cltsXSYmdm9pZCAwPT09clt1XSYmby5uZXN0ZWRQcm9wZXJ0eSh0LmxheW91dCx1KS5zZXQobnVsbCl9fX19LHsiLi4vY29tcG9uZW50cy9jb2xvciI6NTkyLCIuLi9saWIiOjcxNywiLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIjo3NjgsIi4uL3Bsb3RzL3Bsb3RzIjo4MjYsIi4uL3JlZ2lzdHJ5Ijo4NDYsImZhc3QtaXNudW1lcmljIjoyMjgsImdsLW1hdDQvZnJvbVF1YXQiOjI2NX1dLDc1MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL3Bsb3RfYXBpIik7ci5wbG90PW4ucGxvdCxyLm5ld1Bsb3Q9bi5uZXdQbG90LHIucmVzdHlsZT1uLnJlc3R5bGUsci5yZWxheW91dD1uLnJlbGF5b3V0LHIucmVkcmF3PW4ucmVkcmF3LHIudXBkYXRlPW4udXBkYXRlLHIuX2d1aVJlc3R5bGU9bi5fZ3VpUmVzdHlsZSxyLl9ndWlSZWxheW91dD1uLl9ndWlSZWxheW91dCxyLl9ndWlVcGRhdGU9bi5fZ3VpVXBkYXRlLHIuX3N0b3JlRGlyZWN0R1VJRWRpdD1uLl9zdG9yZURpcmVjdEdVSUVkaXQsci5yZWFjdD1uLnJlYWN0LHIuZXh0ZW5kVHJhY2VzPW4uZXh0ZW5kVHJhY2VzLHIucHJlcGVuZFRyYWNlcz1uLnByZXBlbmRUcmFjZXMsci5hZGRUcmFjZXM9bi5hZGRUcmFjZXMsci5kZWxldGVUcmFjZXM9bi5kZWxldGVUcmFjZXMsci5tb3ZlVHJhY2VzPW4ubW92ZVRyYWNlcyxyLnB1cmdlPW4ucHVyZ2Usci5hZGRGcmFtZXM9bi5hZGRGcmFtZXMsci5kZWxldGVGcmFtZXM9bi5kZWxldGVGcmFtZXMsci5hbmltYXRlPW4uYW5pbWF0ZSxyLnNldFBsb3RDb25maWc9bi5zZXRQbG90Q29uZmlnLHIudG9JbWFnZT10KCIuL3RvX2ltYWdlIiksci52YWxpZGF0ZT10KCIuL3ZhbGlkYXRlIiksci5kb3dubG9hZEltYWdlPXQoIi4uL3NuYXBzaG90L2Rvd25sb2FkIik7dmFyIGE9dCgiLi90ZW1wbGF0ZV9hcGkiKTtyLm1ha2VUZW1wbGF0ZT1hLm1ha2VUZW1wbGF0ZSxyLnZhbGlkYXRlVGVtcGxhdGU9YS52YWxpZGF0ZVRlbXBsYXRlfSx7Ii4uL3NuYXBzaG90L2Rvd25sb2FkIjo4NDgsIi4vcGxvdF9hcGkiOjc1MiwiLi90ZW1wbGF0ZV9hcGkiOjc1NywiLi90b19pbWFnZSI6NzU4LCIuL3ZhbGlkYXRlIjo3NTl9XSw3NTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vbGliL2lzX3BsYWluX29iamVjdCIpLGE9dCgiLi4vbGliL25vb3AiKSxpPXQoIi4uL2xpYi9sb2dnZXJzIiksbz10KCIuLi9saWIvc2VhcmNoIikuc29ydGVyQXNjLHM9dCgiLi4vcmVnaXN0cnkiKTtyLmNvbnRhaW5lckFycmF5TWF0Y2g9dCgiLi9jb250YWluZXJfYXJyYXlfbWF0Y2giKTt2YXIgbD1yLmlzQWRkVmFsPWZ1bmN0aW9uKHQpe3JldHVybiJhZGQiPT09dHx8bih0KX0sYz1yLmlzUmVtb3ZlVmFsPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT09dHx8InJlbW92ZSI9PT10fTtyLmFwcGx5Q29udGFpbmVyQXJyYXlDaGFuZ2VzPWZ1bmN0aW9uKHQsZSxyLG4sdSl7dmFyIGg9ZS5hc3RyLGY9cy5nZXRDb21wb25lbnRNZXRob2QoaCwic3VwcGx5TGF5b3V0RGVmYXVsdHMiKSxwPXMuZ2V0Q29tcG9uZW50TWV0aG9kKGgsImRyYXciKSxkPXMuZ2V0Q29tcG9uZW50TWV0aG9kKGgsImRyYXdPbmUiKSxnPW4ucmVwbG90fHxuLnJlY2FsY3x8Zj09PWF8fHA9PT1hLHY9dC5sYXlvdXQsbT10Ll9mdWxsTGF5b3V0O2lmKHJbIiJdKXtPYmplY3Qua2V5cyhyKS5sZW5ndGg+MSYmaS53YXJuKCJGdWxsIGFycmF5IGVkaXRzIGFyZSBpbmNvbXBhdGlibGUgd2l0aCBvdGhlciBlZGl0cyIsaCk7dmFyIHk9clsiIl1bIiJdO2lmKGMoeSkpZS5zZXQobnVsbCk7ZWxzZXtpZighQXJyYXkuaXNBcnJheSh5KSlyZXR1cm4gaS53YXJuKCJVbnJlY29nbml6ZWQgZnVsbCBhcnJheSBlZGl0IHZhbHVlIixoLHkpLCEwO2Uuc2V0KHkpfXJldHVybiFnJiYoZih2LG0pLHAodCksITApfXZhciB4LGIsXyx3LGssVCxNLEEsUz1PYmplY3Qua2V5cyhyKS5tYXAoTnVtYmVyKS5zb3J0KG8pLEU9ZS5nZXQoKSxMPUV8fFtdLEM9dShtLGgpLmdldCgpLFA9W10sTz0tMSx6PUwubGVuZ3RoO2Zvcih4PTA7eDxTLmxlbmd0aDt4KyspaWYodz1yW189U1t4XV0saz1PYmplY3Qua2V5cyh3KSxUPXdbIiJdLE09bChUKSxfPDB8fF8+TC5sZW5ndGgtKE0/MDoxKSlpLndhcm4oImluZGV4IG91dCBvZiByYW5nZSIsaCxfKTtlbHNlIGlmKHZvaWQgMCE9PVQpay5sZW5ndGg+MSYmaS53YXJuKCJJbnNlcnRpb24gJiByZW1vdmFsIGFyZSBpbmNvbXBhdGlibGUgd2l0aCBlZGl0cyB0byB0aGUgc2FtZSBpbmRleC4iLGgsXyksYyhUKT9QLnB1c2goXyk6TT8oImFkZCI9PT1UJiYoVD17fSksTC5zcGxpY2UoXywwLFQpLEMmJkMuc3BsaWNlKF8sMCx7fSkpOmkud2FybigiVW5yZWNvZ25pemVkIGZ1bGwgb2JqZWN0IGVkaXQgdmFsdWUiLGgsXyxUKSwtMT09PU8mJihPPV8pO2Vsc2UgZm9yKGI9MDtiPGsubGVuZ3RoO2IrKylBPWgrIlsiK18rIl0uIix1KExbX10sa1tiXSxBKS5zZXQod1trW2JdXSk7Zm9yKHg9UC5sZW5ndGgtMTt4Pj0wO3gtLSlMLnNwbGljZShQW3hdLDEpLEMmJkMuc3BsaWNlKFBbeF0sMSk7aWYoTC5sZW5ndGg/RXx8ZS5zZXQoTCk6ZS5zZXQobnVsbCksZylyZXR1cm4hMTtpZihmKHYsbSksZCE9PWEpe3ZhciBJO2lmKC0xPT09TylJPVM7ZWxzZXtmb3Ioej1NYXRoLm1heChMLmxlbmd0aCx6KSxJPVtdLHg9MDt4PFMubGVuZ3RoJiYhKChfPVNbeF0pPj1PKTt4KyspSS5wdXNoKF8pO2Zvcih4PU87eDx6O3grKylJLnB1c2goeCl9Zm9yKHg9MDt4PEkubGVuZ3RoO3grKylkKHQsSVt4XSl9ZWxzZSBwKHQpO3JldHVybiEwfX0seyIuLi9saWIvaXNfcGxhaW5fb2JqZWN0Ijo3MTgsIi4uL2xpYi9sb2dnZXJzIjo3MjEsIi4uL2xpYi9ub29wIjo3MjYsIi4uL2xpYi9zZWFyY2giOjczNiwiLi4vcmVnaXN0cnkiOjg0NiwiLi9jb250YWluZXJfYXJyYXlfbWF0Y2giOjc0N31dLDc1MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGE9dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoImhhcy1ob3ZlciIpLG89dCgiLi4vbGliIikscz1vLm5lc3RlZFByb3BlcnR5LGw9dCgiLi4vbGliL2V2ZW50cyIpLGM9dCgiLi4vbGliL3F1ZXVlIiksdT10KCIuLi9yZWdpc3RyeSIpLGg9dCgiLi9wbG90X3NjaGVtYSIpLGY9dCgiLi4vcGxvdHMvcGxvdHMiKSxwPXQoIi4uL3Bsb3RzL3BvbGFyL2xlZ2FjeSIpLGQ9dCgiLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxnPXQoIi4uL2NvbXBvbmVudHMvZHJhd2luZyIpLHY9dCgiLi4vY29tcG9uZW50cy9jb2xvciIpLG09dCgiLi4vcGxvdHMvY2FydGVzaWFuL2dyYXBoX2ludGVyYWN0IikuaW5pdEludGVyYWN0aW9ucyx5PXQoIi4uL2NvbnN0YW50cy94bWxuc19uYW1lc3BhY2VzIikseD10KCIuLi9saWIvc3ZnX3RleHRfdXRpbHMiKSxiPXQoIi4uL3Bsb3RzL2NhcnRlc2lhbi9zZWxlY3QiKS5jbGVhclNlbGVjdCxfPXQoIi4vcGxvdF9jb25maWciKS5kZmx0Q29uZmlnLHc9dCgiLi9tYW5hZ2VfYXJyYXlzIiksaz10KCIuL2hlbHBlcnMiKSxUPXQoIi4vc3Vicm91dGluZXMiKSxNPXQoIi4vZWRpdF90eXBlcyIpLEE9dCgiLi4vcGxvdHMvY2FydGVzaWFuL2NvbnN0YW50cyIpLkFYX05BTUVfUEFUVEVSTixTPTAsRT01O2Z1bmN0aW9uIEwodCl7dmFyIGU9dC5fZnVsbExheW91dDtlLl9yZWRyYXdGcm9tQXV0b01hcmdpbkNvdW50P2UuX3JlZHJhd0Zyb21BdXRvTWFyZ2luQ291bnQtLTp0LmVtaXQoInBsb3RseV9hZnRlcnBsb3QiKX1mdW5jdGlvbiBDKHQsZSl7dHJ5e3QuX2Z1bGxMYXlvdXQuX3BhcGVyLnN0eWxlKCJiYWNrZ3JvdW5kIixlKX1jYXRjaCh0KXtvLmVycm9yKHQpfX1mdW5jdGlvbiBQKHQsZSl7Qyh0LHYuY29tYmluZShlLCJ3aGl0ZSIpKX1mdW5jdGlvbiBPKHQsZSl7aWYoIXQuX2NvbnRleHQpe3QuX2NvbnRleHQ9by5leHRlbmREZWVwKHt9LF8pO3ZhciByPW4uc2VsZWN0KCJiYXNlIik7dC5fY29udGV4dC5fYmFzZVVybD1yLnNpemUoKSYmci5hdHRyKCJocmVmIik/d2luZG93LmxvY2F0aW9uLmhyZWYuc3BsaXQoIiMiKVswXToiIn12YXIgYSxzLGwsYz10Ll9jb250ZXh0O2lmKGUpe2ZvcihzPU9iamVjdC5rZXlzKGUpLGE9MDthPHMubGVuZ3RoO2ErKykiZWRpdGFibGUiIT09KGw9c1thXSkmJiJlZGl0cyIhPT1sJiZsIGluIGMmJigic2V0QmFja2dyb3VuZCI9PT1sJiYib3BhcXVlIj09PWVbbF0/Y1tsXT1QOmNbbF09ZVtsXSk7ZS5wbG90M2RQaXhlbFJhdGlvJiYhYy5wbG90R2xQaXhlbFJhdGlvJiYoYy5wbG90R2xQaXhlbFJhdGlvPWMucGxvdDNkUGl4ZWxSYXRpbyk7dmFyIHU9ZS5lZGl0YWJsZTtpZih2b2lkIDAhPT11KWZvcihjLmVkaXRhYmxlPXUscz1PYmplY3Qua2V5cyhjLmVkaXRzKSxhPTA7YTxzLmxlbmd0aDthKyspYy5lZGl0c1tzW2FdXT11O2lmKGUuZWRpdHMpZm9yKHM9T2JqZWN0LmtleXMoZS5lZGl0cyksYT0wO2E8cy5sZW5ndGg7YSsrKShsPXNbYV0paW4gYy5lZGl0cyYmKGMuZWRpdHNbbF09ZS5lZGl0c1tsXSk7Yy5fZXhwb3J0ZWRQbG90PWUuX2V4cG9ydGVkUGxvdH1jLnN0YXRpY1Bsb3QmJihjLmVkaXRhYmxlPSExLGMuZWRpdHM9e30sYy5hdXRvc2l6YWJsZT0hMSxjLnNjcm9sbFpvb209ITEsYy5kb3VibGVDbGljaz0hMSxjLnNob3dUaXBzPSExLGMuc2hvd0xpbms9ITEsYy5kaXNwbGF5TW9kZUJhcj0hMSksImhvdmVyIiE9PWMuZGlzcGxheU1vZGVCYXJ8fGl8fChjLmRpc3BsYXlNb2RlQmFyPSEwKSwidHJhbnNwYXJlbnQiIT09Yy5zZXRCYWNrZ3JvdW5kJiYiZnVuY3Rpb24iPT10eXBlb2YgYy5zZXRCYWNrZ3JvdW5kfHwoYy5zZXRCYWNrZ3JvdW5kPUMpLGMuX2hhc1plcm9IZWlnaHQ9Yy5faGFzWmVyb0hlaWdodHx8MD09PXQuY2xpZW50SGVpZ2h0LGMuX2hhc1plcm9XaWR0aD1jLl9oYXNaZXJvV2lkdGh8fDA9PT10LmNsaWVudFdpZHRoO3ZhciBoPWMuc2Nyb2xsWm9vbSxmPWMuX3Njcm9sbFpvb209e307aWYoITA9PT1oKWYuY2FydGVzaWFuPTEsZi5nbDNkPTEsZi5nZW89MSxmLm1hcGJveD0xO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBoKXt2YXIgcD1oLnNwbGl0KCIrIik7Zm9yKGE9MDthPHAubGVuZ3RoO2ErKylmW3BbYV1dPTF9ZWxzZSExIT09aCYmKGYuZ2wzZD0xLGYuZ2VvPTEsZi5tYXBib3g9MSl9ZnVuY3Rpb24geih0LGUpe3ZhciByLG4sYT1lKzEsaT1bXTtmb3Iocj0wO3I8dC5sZW5ndGg7cisrKShuPXRbcl0pPDA/aS5wdXNoKGErbik6aS5wdXNoKG4pO3JldHVybiBpfWZ1bmN0aW9uIEkodCxlLHIpe3ZhciBuLGE7Zm9yKG49MDtuPGUubGVuZ3RoO24rKyl7aWYoKGE9ZVtuXSkhPT1wYXJzZUludChhLDEwKSl0aHJvdyBuZXcgRXJyb3IoImFsbCB2YWx1ZXMgaW4gIityKyIgbXVzdCBiZSBpbnRlZ2VycyIpO2lmKGE+PXQuZGF0YS5sZW5ndGh8fGE8LXQuZGF0YS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKHIrIiBtdXN0IGJlIHZhbGlkIGluZGljZXMgZm9yIGdkLmRhdGEuIik7aWYoZS5pbmRleE9mKGEsbisxKT4tMXx8YT49MCYmZS5pbmRleE9mKC10LmRhdGEubGVuZ3RoK2EpPi0xfHxhPDAmJmUuaW5kZXhPZih0LmRhdGEubGVuZ3RoK2EpPi0xKXRocm93IG5ldyBFcnJvcigiZWFjaCBpbmRleCBpbiAiK3IrIiBtdXN0IGJlIHVuaXF1ZS4iKX19ZnVuY3Rpb24gRCh0LGUscil7aWYoIUFycmF5LmlzQXJyYXkodC5kYXRhKSl0aHJvdyBuZXcgRXJyb3IoImdkLmRhdGEgbXVzdCBiZSBhbiBhcnJheS4iKTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJjdXJyZW50SW5kaWNlcyBpcyBhIHJlcXVpcmVkIGFyZ3VtZW50LiIpO2lmKEFycmF5LmlzQXJyYXkoZSl8fChlPVtlXSksSSh0LGUsImN1cnJlbnRJbmRpY2VzIiksInVuZGVmaW5lZCI9PXR5cGVvZiByfHxBcnJheS5pc0FycmF5KHIpfHwocj1bcl0pLCJ1bmRlZmluZWQiIT10eXBlb2YgciYmSSh0LHIsIm5ld0luZGljZXMiKSwidW5kZWZpbmVkIiE9dHlwZW9mIHImJmUubGVuZ3RoIT09ci5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJjdXJyZW50IGFuZCBuZXcgaW5kaWNlcyBtdXN0IGJlIG9mIGVxdWFsIGxlbmd0aC4iKX1mdW5jdGlvbiBSKHQsZSxyLG4saSl7IWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPW8uaXNQbGFpbk9iamVjdChuKTtpZighQXJyYXkuaXNBcnJheSh0LmRhdGEpKXRocm93IG5ldyBFcnJvcigiZ2QuZGF0YSBtdXN0IGJlIGFuIGFycmF5Iik7aWYoIW8uaXNQbGFpbk9iamVjdChlKSl0aHJvdyBuZXcgRXJyb3IoInVwZGF0ZSBtdXN0IGJlIGEga2V5OnZhbHVlIG9iamVjdCIpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2Ygcil0aHJvdyBuZXcgRXJyb3IoImluZGljZXMgbXVzdCBiZSBhbiBpbnRlZ2VyIG9yIGFycmF5IG9mIGludGVnZXJzIik7Zm9yKHZhciBpIGluIEkodCxyLCJpbmRpY2VzIiksZSl7aWYoIUFycmF5LmlzQXJyYXkoZVtpXSl8fGVbaV0ubGVuZ3RoIT09ci5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJhdHRyaWJ1dGUgIitpKyIgbXVzdCBiZSBhbiBhcnJheSBvZiBsZW5ndGggZXF1YWwgdG8gaW5kaWNlcyBhcnJheSBsZW5ndGgiKTtpZihhJiYoIShpIGluIG4pfHwhQXJyYXkuaXNBcnJheShuW2ldKXx8bltpXS5sZW5ndGghPT1lW2ldLmxlbmd0aCkpdGhyb3cgbmV3IEVycm9yKCJ3aGVuIG1heFBvaW50cyBpcyBzZXQgYXMgYSBrZXk6dmFsdWUgb2JqZWN0IGl0IG11c3QgY29udGFpbiBhIDE6MSBjb3JyaXNwb25kZW5jZSB3aXRoIHRoZSBrZXlzIGFuZCBudW1iZXIgb2YgdHJhY2VzIGluIHRoZSB1cGRhdGUgb2JqZWN0Iil9fSh0LGUscixuKTtmb3IodmFyIGw9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGksbCxjLHUsaCxmPW8uaXNQbGFpbk9iamVjdChuKSxwPVtdO2Zvcih2YXIgZCBpbiBBcnJheS5pc0FycmF5KHIpfHwocj1bcl0pLHI9eihyLHQuZGF0YS5sZW5ndGgtMSksZSlmb3IodmFyIGc9MDtnPHIubGVuZ3RoO2crKyl7aWYoaT10LmRhdGFbcltnXV0sbD0oYz1zKGksZCkpLmdldCgpLHU9ZVtkXVtnXSwhby5pc0FycmF5T3JUeXBlZEFycmF5KHUpKXRocm93IG5ldyBFcnJvcigiYXR0cmlidXRlOiAiK2QrIiBpbmRleDogIitnKyIgbXVzdCBiZSBhbiBhcnJheSIpO2lmKCFvLmlzQXJyYXlPclR5cGVkQXJyYXkobCkpdGhyb3cgbmV3IEVycm9yKCJjYW5ub3QgZXh0ZW5kIG1pc3Npbmcgb3Igbm9uLWFycmF5IGF0dHJpYnV0ZTogIitkKTtpZihsLmNvbnN0cnVjdG9yIT09dS5jb25zdHJ1Y3Rvcil0aHJvdyBuZXcgRXJyb3IoImNhbm5vdCBleHRlbmQgYXJyYXkgd2l0aCBhbiBhcnJheSBvZiBhIGRpZmZlcmVudCB0eXBlOiAiK2QpO2g9Zj9uW2RdW2ddOm4sYShoKXx8KGg9LTEpLHAucHVzaCh7cHJvcDpjLHRhcmdldDpsLGluc2VydDp1LG1heHA6TWF0aC5mbG9vcihoKX0pfXJldHVybiBwfSh0LGUscixuKSxjPXt9LHU9e30saD0wO2g8bC5sZW5ndGg7aCsrKXt2YXIgZj1sW2hdLnByb3AscD1sW2hdLm1heHAsZD1pKGxbaF0udGFyZ2V0LGxbaF0uaW5zZXJ0LHApO2Yuc2V0KGRbMF0pLEFycmF5LmlzQXJyYXkoY1tmLmFzdHJdKXx8KGNbZi5hc3RyXT1bXSksY1tmLmFzdHJdLnB1c2goZFsxXSksQXJyYXkuaXNBcnJheSh1W2YuYXN0cl0pfHwodVtmLmFzdHJdPVtdKSx1W2YuYXN0cl0ucHVzaChsW2hdLnRhcmdldC5sZW5ndGgpfXJldHVybnt1cGRhdGU6YyxtYXhQb2ludHM6dX19ZnVuY3Rpb24gRih0LGUpe3ZhciByPW5ldyB0LmNvbnN0cnVjdG9yKHQubGVuZ3RoK2UubGVuZ3RoKTtyZXR1cm4gci5zZXQodCksci5zZXQoZSx0Lmxlbmd0aCkscn1mdW5jdGlvbiBCKHQsZSxuLGEpe3Q9by5nZXRHcmFwaERpdih0KSxrLmNsZWFyUHJvbWlzZVF1ZXVlKHQpO3ZhciBpPXt9O2lmKCJzdHJpbmciPT10eXBlb2YgZSlpW2VdPW47ZWxzZXtpZighby5pc1BsYWluT2JqZWN0KGUpKXJldHVybiBvLndhcm4oIlJlc3R5bGUgZmFpbC4iLGUsbixhKSxQcm9taXNlLnJlamVjdCgpO2k9by5leHRlbmRGbGF0KHt9LGUpLHZvaWQgMD09PWEmJihhPW4pfU9iamVjdC5rZXlzKGkpLmxlbmd0aCYmKHQuY2hhbmdlZD0hMCk7dmFyIHM9ay5jb2VyY2VUcmFjZUluZGljZXModCxhKSxsPVUodCxpLHMpLHU9bC5mbGFnczt1LmNhbGMmJih0LmNhbGNkYXRhPXZvaWQgMCksdS5jbGVhckF4aXNUeXBlcyYmay5jbGVhckF4aXNUeXBlcyh0LHMse30pO3ZhciBoPVtdO3UuZnVsbFJlcGxvdD9oLnB1c2goci5wbG90KTooaC5wdXNoKGYucHJldmlvdXNQcm9taXNlcyksZi5zdXBwbHlEZWZhdWx0cyh0KSx1Lm1hcmtlclNpemUmJihmLmRvQ2FsY2RhdGEodCksWShoKSksdS5zdHlsZSYmaC5wdXNoKFQuZG9UcmFjZVN0eWxlKSx1LmNvbG9yYmFycyYmaC5wdXNoKFQuZG9Db2xvckJhcnMpLGgucHVzaChMKSksaC5wdXNoKGYucmVob3ZlcixmLnJlZHJhZyksYy5hZGQodCxCLFt0LGwudW5kb2l0LGwudHJhY2VzXSxCLFt0LGwucmVkb2l0LGwudHJhY2VzXSk7dmFyIHA9by5zeW5jT3JBc3luYyhoLHQpO3JldHVybiBwJiZwLnRoZW58fChwPVByb21pc2UucmVzb2x2ZSgpKSxwLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdC5lbWl0KCJwbG90bHlfcmVzdHlsZSIsbC5ldmVudERhdGEpLHR9KX1mdW5jdGlvbiBOKHQpe3JldHVybiB2b2lkIDA9PT10P251bGw6dH1mdW5jdGlvbiBqKHQsZSl7cmV0dXJuIGU/ZnVuY3Rpb24oZSxyLG4pe3ZhciBhPXMoZSxyKSxpPWEuc2V0O3JldHVybiBhLnNldD1mdW5jdGlvbihlKXtWKChufHwiIikrcixhLmdldCgpLGUsdCksaShlKX0sYX06c31mdW5jdGlvbiBWKHQsZSxyLG4pe2lmKEFycmF5LmlzQXJyYXkoZSl8fEFycmF5LmlzQXJyYXkocikpZm9yKHZhciBhPUFycmF5LmlzQXJyYXkoZSk/ZTpbXSxpPUFycmF5LmlzQXJyYXkocik/cjpbXSxzPU1hdGgubWF4KGEubGVuZ3RoLGkubGVuZ3RoKSxsPTA7bDxzO2wrKylWKHQrIlsiK2wrIl0iLGFbbF0saVtsXSxuKTtlbHNlIGlmKG8uaXNQbGFpbk9iamVjdChlKXx8by5pc1BsYWluT2JqZWN0KHIpKXt2YXIgYz1vLmlzUGxhaW5PYmplY3QoZSk/ZTp7fSx1PW8uaXNQbGFpbk9iamVjdChyKT9yOnt9LGg9by5leHRlbmRGbGF0KHt9LGMsdSk7Zm9yKHZhciBmIGluIGgpVih0KyIuIitmLGNbZl0sdVtmXSxuKX1lbHNlIHZvaWQgMD09PW5bdF0mJihuW3RdPU4oZSkpfWZ1bmN0aW9uIFUodCxlLHIpe3ZhciBuLGE9dC5fZnVsbExheW91dCxpPXQuX2Z1bGxEYXRhLGw9dC5kYXRhLGM9YS5fZ3VpRWRpdGluZyxwPWooYS5fcHJlR1VJLGMpLGc9by5leHRlbmREZWVwQWxsKHt9LGUpO3EoZSk7dmFyIHYsbT1NLnRyYWNlRmxhZ3MoKSx5PXt9LHg9e307ZnVuY3Rpb24gYigpe3JldHVybiByLm1hcChmdW5jdGlvbigpe30pfWZ1bmN0aW9uIF8odCl7dmFyIGU9ZC5pZDJuYW1lKHQpOy0xPT09di5pbmRleE9mKGUpJiZ2LnB1c2goZSl9ZnVuY3Rpb24gdyh0KXtyZXR1cm4iTEFZT1VUIit0KyIuYXV0b3JhbmdlIn1mdW5jdGlvbiBUKHQpe3JldHVybiJMQVlPVVQiK3QrIi5yYW5nZSJ9ZnVuY3Rpb24gQSh0KXtmb3IodmFyIGU9dDtlPGkubGVuZ3RoO2UrKylpZihpW2VdLl9pbnB1dD09PWxbdF0pcmV0dXJuIGlbZV19ZnVuY3Rpb24gUyhuLGksbyl7aWYoQXJyYXkuaXNBcnJheShuKSluLmZvckVhY2goZnVuY3Rpb24odCl7Uyh0LGksbyl9KTtlbHNlIGlmKCEobiBpbiBlfHxrLmhhc1BhcmVudChlLG4pKSl7dmFyIHM7aWYoIkxBWU9VVCI9PT1uLnN1YnN0cigwLDYpKXM9cCh0LmxheW91dCxuLnJlcGxhY2UoIkxBWU9VVCIsIiIpKTtlbHNle3ZhciB1PXJbb107cz1qKGEuX3RyYWNlUHJlR1VJW0EodSkuX2Z1bGxJbnB1dC51aWRdLGMpKGxbdV0sbil9biBpbiB4fHwoeFtuXT1iKCkpLHZvaWQgMD09PXhbbl1bb10mJih4W25dW29dPU4ocy5nZXQoKSkpLHZvaWQgMCE9PWkmJnMuc2V0KGkpfX1mdW5jdGlvbiBFKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gaVtlXVt0XX19ZnVuY3Rpb24gTCh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtyZXR1cm4hMT09PWU/aVtyW25dXVt0XTpudWxsfX1mb3IodmFyIEMgaW4gZSl7aWYoay5oYXNQYXJlbnQoZSxDKSl0aHJvdyBuZXcgRXJyb3IoImNhbm5vdCBzZXQgIitDKyIgYW5kIGEgcGFyZW50IGF0dHJpYnV0ZSBzaW11bHRhbmVvdXNseSIpO3ZhciBQLE8seixJLEQsUixGPWVbQ107aWYoImF1dG9iaW54IiE9PUMmJiJhdXRvYmlueSIhPT1DfHwoQz1DLmNoYXJBdChDLmxlbmd0aC0xKSsiYmlucyIsRj1BcnJheS5pc0FycmF5KEYpP0YubWFwKEwoQykpOiExPT09Rj9yLm1hcChFKEMpKTpudWxsKSx5W0NdPUYsIkxBWU9VVCIhPT1DLnN1YnN0cigwLDYpKXtmb3IoeFtDXT1iKCksbj0wO248ci5sZW5ndGg7bisrKXtpZihQPWxbcltuXV0sTz1BKHJbbl0pLEk9KHo9aihhLl90cmFjZVByZUdVSVtPLl9mdWxsSW5wdXQudWlkXSxjKShQLEMpKS5nZXQoKSx2b2lkIDAhPT0oRD1BcnJheS5pc0FycmF5KEYpP0ZbbiVGLmxlbmd0aF06Rikpe3ZhciBCPXoucGFydHNbei5wYXJ0cy5sZW5ndGgtMV0sVj1DLnN1YnN0cigwLEMubGVuZ3RoLUIubGVuZ3RoLTEpLFU9Vj9WKyIuIjoiIixIPVY/cyhPLFYpLmdldCgpOk87aWYoKFI9aC5nZXRUcmFjZVZhbE9iamVjdChPLHoucGFydHMpKSYmUi5pbXBsaWVkRWRpdHMmJm51bGwhPT1EKWZvcih2YXIgRyBpbiBSLmltcGxpZWRFZGl0cylTKG8ucmVsYXRpdmVBdHRyKEMsRyksUi5pbXBsaWVkRWRpdHNbR10sbik7ZWxzZSBpZigidGhpY2tuZXNzbW9kZSIhPT1CJiYibGVubW9kZSIhPT1CfHxJPT09RHx8ImZyYWN0aW9uIiE9PUQmJiJwaXhlbHMiIT09RHx8IUgpe2lmKCJ0eXBlIj09PUMmJigicGllIj09PUQhPSgicGllIj09PUkpfHwiZnVubmVsYXJlYSI9PT1EIT0oImZ1bm5lbGFyZWEiPT09SSkpKXt2YXIgWT0ieCIsVz0ieSI7ImJhciIhPT1EJiYiYmFyIiE9PUl8fCJoIiE9PVAub3JpZW50YXRpb258fChZPSJ5IixXPSJ4Iiksby5zd2FwQXR0cnMoUCxbIj8iLCI/c3JjIl0sImxhYmVscyIsWSksby5zd2FwQXR0cnMoUCxbImQ/IiwiPzAiXSwibGFiZWwiLFkpLG8uc3dhcEF0dHJzKFAsWyI/IiwiP3NyYyJdLCJ2YWx1ZXMiLFcpLCJwaWUiPT09SXx8ImZ1bm5lbGFyZWEiPT09ST8ocyhQLCJtYXJrZXIuY29sb3IiKS5zZXQocyhQLCJtYXJrZXIuY29sb3JzIikuZ2V0KCkpLGEuX3BpZWxheWVyLnNlbGVjdEFsbCgiZy50cmFjZSIpLnJlbW92ZSgpKTp1LnRyYWNlSXMoUCwiY2FydGVzaWFuIikmJnMoUCwibWFya2VyLmNvbG9ycyIpLnNldChzKFAsIm1hcmtlci5jb2xvciIpLmdldCgpKX19ZWxzZXt2YXIgWD1hLl9zaXplLFo9SC5vcmllbnQsSj0idG9wIj09PVp8fCJib3R0b20iPT09WjtpZigidGhpY2tuZXNzbW9kZSI9PT1CKXt2YXIgSz1KP1guaDpYLnc7UyhVKyJ0aGlja25lc3MiLEgudGhpY2tuZXNzKigiZnJhY3Rpb24iPT09RD8xL0s6Syksbil9ZWxzZXt2YXIgUT1KP1gudzpYLmg7UyhVKyJsZW4iLEgubGVuKigiZnJhY3Rpb24iPT09RD8xL1E6USksbil9fXhbQ11bbl09TihJKTtpZigtMSE9PVsic3dhcHh5Iiwic3dhcHh5YXhlcyIsIm9yaWVudGF0aW9uIiwib3JpZW50YXRpb25heGVzIl0uaW5kZXhPZihDKSl7aWYoIm9yaWVudGF0aW9uIj09PUMpe3ouc2V0KEQpO3ZhciAkPVAueCYmIVAueT8iaCI6InYiO2lmKCh6LmdldCgpfHwkKT09PU8ub3JpZW50YXRpb24pY29udGludWV9ZWxzZSJvcmllbnRhdGlvbmF4ZXMiPT09QyYmKFAub3JpZW50YXRpb249e3Y6ImgiLGg6InYifVtPLm9yaWVudGF0aW9uXSk7ay5zd2FwWFlEYXRhKFApLG0uY2FsYz1tLmNsZWFyQXhpc1R5cGVzPSEwfWVsc2UtMSE9PWYuZGF0YUFycmF5Q29udGFpbmVycy5pbmRleE9mKHoucGFydHNbMF0pPyhrLm1hbmFnZUFycmF5Q29udGFpbmVycyh6LEQseCksbS5jYWxjPSEwKTooUj9SLmFycmF5T2smJiF1LnRyYWNlSXMoTywicmVnbCIpJiYoby5pc0FycmF5T3JUeXBlZEFycmF5KEQpfHxvLmlzQXJyYXlPclR5cGVkQXJyYXkoSSkpP20uY2FsYz0hMDpNLnVwZGF0ZShtLFIpOm0uY2FsYz0hMCx6LnNldChEKSl9fWlmKC0xIT09WyJzd2FweHlheGVzIiwib3JpZW50YXRpb25heGVzIl0uaW5kZXhPZihDKSYmZC5zd2FwKHQsciksIm9yaWVudGF0aW9uYXhlcyI9PT1DKXt2YXIgdHQ9cyh0LmxheW91dCwiaG92ZXJtb2RlIik7IngiPT09dHQuZ2V0KCk/dHQuc2V0KCJ5Iik6InkiPT09dHQuZ2V0KCkmJnR0LnNldCgieCIpfWlmKC0xIT09WyJvcmllbnRhdGlvbiIsInR5cGUiXS5pbmRleE9mKEMpKXtmb3Iodj1bXSxuPTA7bjxyLmxlbmd0aDtuKyspe3ZhciBldD1sW3Jbbl1dO3UudHJhY2VJcyhldCwiY2FydGVzaWFuIikmJihfKGV0LnhheGlzfHwieCIpLF8oZXQueWF4aXN8fCJ5IikpfVModi5tYXAodyksITAsMCksUyh2Lm1hcChUKSxbMCwxXSwwKX19ZWxzZSB6PXAodC5sYXlvdXQsQy5yZXBsYWNlKCJMQVlPVVQiLCIiKSkseFtDXT1bTih6LmdldCgpKV0sei5zZXQoQXJyYXkuaXNBcnJheShGKT9GWzBdOkYpLG0uY2FsYz0hMH1yZXR1cm4obS5jYWxjfHxtLnBsb3QpJiYobS5mdWxsUmVwbG90PSEwKSx7ZmxhZ3M6bSx1bmRvaXQ6eCxyZWRvaXQ6eSx0cmFjZXM6cixldmVudERhdGE6by5leHRlbmREZWVwTm9BcnJheXMoW10sW2cscl0pfX1mdW5jdGlvbiBxKHQpe3ZhciBlLHIsbixhPW8uY291bnRlclJlZ2V4KCJheGlzIiwiLnRpdGxlIiwhMSwhMSksaT0vY29sb3JiYXJcLnRpdGxlJC8scz1PYmplY3Qua2V5cyh0KTtmb3IoZT0wO2U8cy5sZW5ndGg7ZSsrKXI9c1tlXSxuPXRbcl0sInRpdGxlIiE9PXImJiFhLnRlc3QocikmJiFpLnRlc3Qocil8fCJzdHJpbmciIT10eXBlb2YgbiYmIm51bWJlciIhPXR5cGVvZiBuP3IuaW5kZXhPZigidGl0bGVmb250Iik+LTE/bChyLHIucmVwbGFjZSgidGl0bGVmb250IiwidGl0bGUuZm9udCIpKTpyLmluZGV4T2YoInRpdGxlcG9zaXRpb24iKT4tMT9sKHIsci5yZXBsYWNlKCJ0aXRsZXBvc2l0aW9uIiwidGl0bGUucG9zaXRpb24iKSk6ci5pbmRleE9mKCJ0aXRsZXNpZGUiKT4tMT9sKHIsci5yZXBsYWNlKCJ0aXRsZXNpZGUiLCJ0aXRsZS5zaWRlIikpOnIuaW5kZXhPZigidGl0bGVvZmZzZXQiKT4tMSYmbChyLHIucmVwbGFjZSgidGl0bGVvZmZzZXQiLCJ0aXRsZS5vZmZzZXQiKSk6bChyLHIucmVwbGFjZSgidGl0bGUiLCJ0aXRsZS50ZXh0IikpO2Z1bmN0aW9uIGwoZSxyKXt0W3JdPXRbZV0sZGVsZXRlIHRbZV19fWZ1bmN0aW9uIEgodCxlLHIpe2lmKHQ9by5nZXRHcmFwaERpdih0KSxrLmNsZWFyUHJvbWlzZVF1ZXVlKHQpLHQuZnJhbWV3b3JrJiZ0LmZyYW1ld29yay5pc1BvbGFyKXJldHVybiBQcm9taXNlLnJlc29sdmUodCk7dmFyIG49e307aWYoInN0cmluZyI9PXR5cGVvZiBlKW5bZV09cjtlbHNle2lmKCFvLmlzUGxhaW5PYmplY3QoZSkpcmV0dXJuIG8ud2FybigiUmVsYXlvdXQgZmFpbC4iLGUsciksUHJvbWlzZS5yZWplY3QoKTtuPW8uZXh0ZW5kRmxhdCh7fSxlKX1PYmplY3Qua2V5cyhuKS5sZW5ndGgmJih0LmNoYW5nZWQ9ITApO3ZhciBhPUoodCxuKSxpPWEuZmxhZ3M7aS5jYWxjJiYodC5jYWxjZGF0YT12b2lkIDApO3ZhciBzPVtmLnByZXZpb3VzUHJvbWlzZXNdO2kubGF5b3V0UmVwbG90P3MucHVzaChULmxheW91dFJlcGxvdCk6T2JqZWN0LmtleXMobikubGVuZ3RoJiYoRyh0LGksYSl8fGYuc3VwcGx5RGVmYXVsdHModCksaS5sZWdlbmQmJnMucHVzaChULmRvTGVnZW5kKSxpLmxheW91dHN0eWxlJiZzLnB1c2goVC5sYXlvdXRTdHlsZXMpLGkuYXhyYW5nZSYmWShzLGEucmFuZ2VzQWx0ZXJlZCksaS50aWNrcyYmcy5wdXNoKFQuZG9UaWNrc1JlbGF5b3V0KSxpLm1vZGViYXImJnMucHVzaChULmRvTW9kZUJhciksaS5jYW1lcmEmJnMucHVzaChULmRvQ2FtZXJhKSxpLmNvbG9yYmFycyYmcy5wdXNoKFQuZG9Db2xvckJhcnMpLHMucHVzaChMKSkscy5wdXNoKGYucmVob3ZlcixmLnJlZHJhZyksYy5hZGQodCxILFt0LGEudW5kb2l0XSxILFt0LGEucmVkb2l0XSk7dmFyIGw9by5zeW5jT3JBc3luYyhzLHQpO3JldHVybiBsJiZsLnRoZW58fChsPVByb21pc2UucmVzb2x2ZSh0KSksbC50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQuZW1pdCgicGxvdGx5X3JlbGF5b3V0IixhLmV2ZW50RGF0YSksdH0pfWZ1bmN0aW9uIEcodCxlLHIpe3ZhciBuPXQuX2Z1bGxMYXlvdXQ7aWYoIWUuYXhyYW5nZSlyZXR1cm4hMTtmb3IodmFyIGEgaW4gZSlpZigiYXhyYW5nZSIhPT1hJiZlW2FdKXJldHVybiExO2Zvcih2YXIgaSBpbiByLnJhbmdlc0FsdGVyZWQpe3ZhciBvPWQuaWQybmFtZShpKSxzPXQubGF5b3V0W29dLGw9bltvXTtpZihsLmF1dG9yYW5nZT1zLmF1dG9yYW5nZSxsLnJhbmdlPXMucmFuZ2Uuc2xpY2UoKSxsLmNsZWFuUmFuZ2UoKSxsLl9tYXRjaEdyb3VwKWZvcih2YXIgYyBpbiBsLl9tYXRjaEdyb3VwKWlmKGMhPT1pKXt2YXIgdT1uW2QuaWQybmFtZShjKV07dS5hdXRvcmFuZ2U9bC5hdXRvcmFuZ2UsdS5yYW5nZT1sLnJhbmdlLnNsaWNlKCksdS5faW5wdXQucmFuZ2U9bC5yYW5nZS5zbGljZSgpfX1yZXR1cm4hMH1mdW5jdGlvbiBZKHQsZSl7dmFyIHI9ZT9mdW5jdGlvbih0KXt2YXIgcj1bXSxuPSEwO2Zvcih2YXIgYSBpbiBlKXt2YXIgaT1kLmdldEZyb21JZCh0LGEpO2lmKHIucHVzaChhKSxpLl9tYXRjaEdyb3VwKWZvcih2YXIgbyBpbiBpLl9tYXRjaEdyb3VwKWVbb118fHIucHVzaChvKTtpLmF1dG9tYXJnaW4mJihuPSExKX1yZXR1cm4gZC5kcmF3KHQscix7c2tpcFRpdGxlOm59KX06ZnVuY3Rpb24odCl7cmV0dXJuIGQuZHJhdyh0LCJyZWRyYXciKX07dC5wdXNoKGIsVC5kb0F1dG9SYW5nZUFuZENvbnN0cmFpbnRzLHIsVC5kcmF3RGF0YSxULmZpbmFsRHJhdyl9dmFyIFc9L15beHl6XWF4aXNbMC05XSpcLnJhbmdlKFxbWzB8MV1cXSk/JC8sWD0vXlt4eXpdYXhpc1swLTldKlwuYXV0b3JhbmdlJC8sWj0vXlt4eXpdYXhpc1swLTldKlwuZG9tYWluKFxbWzB8MV1cXSk/JC87ZnVuY3Rpb24gSih0LGUpe3ZhciByLG4sYSxpPXQubGF5b3V0LGw9dC5fZnVsbExheW91dCxjPWwuX2d1aUVkaXRpbmcsZj1qKGwuX3ByZUdVSSxjKSxwPU9iamVjdC5rZXlzKGUpLGc9ZC5saXN0KHQpLHY9by5leHRlbmREZWVwQWxsKHt9LGUpLG09e307Zm9yKHEoZSkscD1PYmplY3Qua2V5cyhlKSxuPTA7bjxwLmxlbmd0aDtuKyspaWYoMD09PXBbbl0uaW5kZXhPZigiYWxsYXhlcyIpKXtmb3IoYT0wO2E8Zy5sZW5ndGg7YSsrKXt2YXIgeT1nW2FdLl9pZC5zdWJzdHIoMSkseD0tMSE9PXkuaW5kZXhPZigic2NlbmUiKT95KyIuIjoiIixiPXBbbl0ucmVwbGFjZSgiYWxsYXhlcyIseCtnW2FdLl9uYW1lKTtlW2JdfHwoZVtiXT1lW3Bbbl1dKX1kZWxldGUgZVtwW25dXX12YXIgXz1NLmxheW91dEZsYWdzKCksVD17fSxTPXt9O2Z1bmN0aW9uIEUodCxyKXtpZihBcnJheS5pc0FycmF5KHQpKXQuZm9yRWFjaChmdW5jdGlvbih0KXtFKHQscil9KTtlbHNlIGlmKCEodCBpbiBlfHxrLmhhc1BhcmVudChlLHQpKSl7dmFyIG49ZihpLHQpO3QgaW4gU3x8KFNbdF09TihuLmdldCgpKSksdm9pZCAwIT09ciYmbi5zZXQocil9fXZhciBMLEM9e307ZnVuY3Rpb24gUCh0KXt2YXIgZT1kLm5hbWUyaWQodC5zcGxpdCgiLiIpWzBdKTtyZXR1cm4gQ1tlXT0xLGV9Zm9yKHZhciBPIGluIGUpe2lmKGsuaGFzUGFyZW50KGUsTykpdGhyb3cgbmV3IEVycm9yKCJjYW5ub3Qgc2V0ICIrTysiIGFuZCBhIHBhcmVudCBhdHRyaWJ1dGUgc2ltdWx0YW5lb3VzbHkiKTtmb3IodmFyIHo9ZihpLE8pLEk9ZVtPXSxEPXoucGFydHMubGVuZ3RoLTE7RD4wJiYic3RyaW5nIiE9dHlwZW9mIHoucGFydHNbRF07KUQtLTt2YXIgUj16LnBhcnRzW0RdLEY9ei5wYXJ0c1tELTFdKyIuIitSLEI9ei5wYXJ0cy5zbGljZSgwLEQpLmpvaW4oIi4iKSxWPXModC5sYXlvdXQsQikuZ2V0KCksVT1zKGwsQikuZ2V0KCksSD16LmdldCgpO2lmKHZvaWQgMCE9PUkpe1RbT109SSxTW09dPSJyZXZlcnNlIj09PVI/STpOKEgpO3ZhciBHPWguZ2V0TGF5b3V0VmFsT2JqZWN0KGwsei5wYXJ0cyk7aWYoRyYmRy5pbXBsaWVkRWRpdHMmJm51bGwhPT1JKWZvcih2YXIgWSBpbiBHLmltcGxpZWRFZGl0cylFKG8ucmVsYXRpdmVBdHRyKE8sWSksRy5pbXBsaWVkRWRpdHNbWV0pO2lmKC0xIT09WyJ3aWR0aCIsImhlaWdodCJdLmluZGV4T2YoTykpaWYoSSl7RSgiYXV0b3NpemUiLG51bGwpO3ZhciBKPSJoZWlnaHQiPT09Tz8id2lkdGgiOiJoZWlnaHQiO0UoSixsW0pdKX1lbHNlIGxbT109dC5faW5pdGlhbEF1dG9TaXplW09dO2Vsc2UgaWYoImF1dG9zaXplIj09PU8pRSgid2lkdGgiLEk/bnVsbDpsLndpZHRoKSxFKCJoZWlnaHQiLEk/bnVsbDpsLmhlaWdodCk7ZWxzZSBpZihGLm1hdGNoKFcpKVAoRikscyhsLEIrIi5faW5wdXRSYW5nZSIpLnNldChudWxsKTtlbHNlIGlmKEYubWF0Y2goWCkpe1AoRikscyhsLEIrIi5faW5wdXRSYW5nZSIpLnNldChudWxsKTt2YXIgUT1zKGwsQikuZ2V0KCk7US5faW5wdXREb21haW4mJihRLl9pbnB1dC5kb21haW49US5faW5wdXREb21haW4uc2xpY2UoKSl9ZWxzZSBGLm1hdGNoKFopJiZzKGwsQisiLl9pbnB1dERvbWFpbiIpLnNldChudWxsKTtpZigidHlwZSI9PT1SKXt2YXIgJD1WLHR0PSJsaW5lYXIiPT09VS50eXBlJiYibG9nIj09PUksZXQ9ImxvZyI9PT1VLnR5cGUmJiJsaW5lYXIiPT09STtpZih0dHx8ZXQpe2lmKCQmJiQucmFuZ2UpaWYoVS5hdXRvcmFuZ2UpdHQmJigkLnJhbmdlPSQucmFuZ2VbMV0+JC5yYW5nZVswXT9bMSwyXTpbMiwxXSk7ZWxzZXt2YXIgcnQ9JC5yYW5nZVswXSxudD0kLnJhbmdlWzFdO3R0PyhydDw9MCYmbnQ8PTAmJkUoQisiLmF1dG9yYW5nZSIsITApLHJ0PD0wP3J0PW50LzFlNjpudDw9MCYmKG50PXJ0LzFlNiksRShCKyIucmFuZ2VbMF0iLE1hdGgubG9nKHJ0KS9NYXRoLkxOMTApLEUoQisiLnJhbmdlWzFdIixNYXRoLmxvZyhudCkvTWF0aC5MTjEwKSk6KEUoQisiLnJhbmdlWzBdIixNYXRoLnBvdygxMCxydCkpLEUoQisiLnJhbmdlWzFdIixNYXRoLnBvdygxMCxudCkpKX1lbHNlIEUoQisiLmF1dG9yYW5nZSIsITApO0FycmF5LmlzQXJyYXkobC5fc3VicGxvdHMucG9sYXIpJiZsLl9zdWJwbG90cy5wb2xhci5sZW5ndGgmJmxbei5wYXJ0c1swXV0mJiJyYWRpYWxheGlzIj09PXoucGFydHNbMV0mJmRlbGV0ZSBsW3oucGFydHNbMF1dLl9zdWJwbG90LnZpZXdJbml0aWFsWyJyYWRpYWxheGlzLnJhbmdlIl0sdS5nZXRDb21wb25lbnRNZXRob2QoImFubm90YXRpb25zIiwiY29udmVydENvb3JkcyIpKHQsVSxJLEUpLHUuZ2V0Q29tcG9uZW50TWV0aG9kKCJpbWFnZXMiLCJjb252ZXJ0Q29vcmRzIikodCxVLEksRSl9ZWxzZSBFKEIrIi5hdXRvcmFuZ2UiLCEwKSxFKEIrIi5yYW5nZSIsbnVsbCk7cyhsLEIrIi5faW5wdXRSYW5nZSIpLnNldChudWxsKX1lbHNlIGlmKFIubWF0Y2goQSkpe3ZhciBhdD1zKGwsTykuZ2V0KCksaXQ9KEl8fHt9KS50eXBlO2l0JiYiLSIhPT1pdHx8KGl0PSJsaW5lYXIiKSx1LmdldENvbXBvbmVudE1ldGhvZCgiYW5ub3RhdGlvbnMiLCJjb252ZXJ0Q29vcmRzIikodCxhdCxpdCxFKSx1LmdldENvbXBvbmVudE1ldGhvZCgiaW1hZ2VzIiwiY29udmVydENvb3JkcyIpKHQsYXQsaXQsRSl9dmFyIG90PXcuY29udGFpbmVyQXJyYXlNYXRjaChPKTtpZihvdCl7cj1vdC5hcnJheSxuPW90LmluZGV4O3ZhciBzdD1vdC5wcm9wZXJ0eSxsdD1HfHx7ZWRpdFR5cGU6ImNhbGMifTsiIiE9PW4mJiIiPT09c3QmJih3LmlzQWRkVmFsKEkpP1NbT109bnVsbDp3LmlzUmVtb3ZlVmFsKEkpP1NbT109KHMoaSxyKS5nZXQoKXx8W10pW25dOm8ud2FybigidW5yZWNvZ25pemVkIGZ1bGwgb2JqZWN0IHZhbHVlIixlKSksTS51cGRhdGUoXyxsdCksbVtyXXx8KG1bcl09e30pO3ZhciBjdD1tW3JdW25dO2N0fHwoY3Q9bVtyXVtuXT17fSksY3Rbc3RdPUksZGVsZXRlIGVbT119ZWxzZSJyZXZlcnNlIj09PVI/KFYucmFuZ2U/Vi5yYW5nZS5yZXZlcnNlKCk6KEUoQisiLmF1dG9yYW5nZSIsITApLFYucmFuZ2U9WzEsMF0pLFUuYXV0b3JhbmdlP18uY2FsYz0hMDpfLnBsb3Q9ITApOihsLl9oYXMoInNjYXR0ZXItbGlrZSIpJiZsLl9oYXMoInJlZ2wiKSYmImRyYWdtb2RlIj09PU8mJigibGFzc28iPT09SXx8InNlbGVjdCI9PT1JKSYmImxhc3NvIiE9PUgmJiJzZWxlY3QiIT09SD9fLnBsb3Q9ITA6bC5faGFzKCJnbDJkIik/Xy5wbG90PSEwOkc/TS51cGRhdGUoXyxHKTpfLmNhbGM9ITAsei5zZXQoSSkpfX1mb3IociBpbiBtKXt3LmFwcGx5Q29udGFpbmVyQXJyYXlDaGFuZ2VzKHQsZihpLHIpLG1bcl0sXyxmKXx8KF8ucGxvdD0hMCl9dmFyIHV0PWwuX2F4aXNDb25zdHJhaW50R3JvdXBzfHxbXTtmb3IoTCBpbiBDKWZvcihuPTA7bjx1dC5sZW5ndGg7bisrKXt2YXIgaHQ9dXRbbl07aWYoaHRbTF0pZm9yKHZhciBmdCBpbiBfLmNhbGM9ITAsaHQpQ1tmdF18fChkLmdldEZyb21JZCh0LGZ0KS5fY29uc3RyYWludFNocmlua2FibGU9ITApfXJldHVybihLKHQpfHxlLmhlaWdodHx8ZS53aWR0aCkmJihfLnBsb3Q9ITApLChfLnBsb3R8fF8uY2FsYykmJihfLmxheW91dFJlcGxvdD0hMCkse2ZsYWdzOl8scmFuZ2VzQWx0ZXJlZDpDLHVuZG9pdDpTLHJlZG9pdDpULGV2ZW50RGF0YTp2fX1mdW5jdGlvbiBLKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQscj1lLndpZHRoLG49ZS5oZWlnaHQ7cmV0dXJuIHQubGF5b3V0LmF1dG9zaXplJiZmLnBsb3RBdXRvU2l6ZSh0LHQubGF5b3V0LGUpLGUud2lkdGghPT1yfHxlLmhlaWdodCE9PW59ZnVuY3Rpb24gUSh0LGUsbixhKXtpZih0PW8uZ2V0R3JhcGhEaXYodCksay5jbGVhclByb21pc2VRdWV1ZSh0KSx0LmZyYW1ld29yayYmdC5mcmFtZXdvcmsuaXNQb2xhcilyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHQpO28uaXNQbGFpbk9iamVjdChlKXx8KGU9e30pLG8uaXNQbGFpbk9iamVjdChuKXx8KG49e30pLE9iamVjdC5rZXlzKGUpLmxlbmd0aCYmKHQuY2hhbmdlZD0hMCksT2JqZWN0LmtleXMobikubGVuZ3RoJiYodC5jaGFuZ2VkPSEwKTt2YXIgaT1rLmNvZXJjZVRyYWNlSW5kaWNlcyh0LGEpLHM9VSh0LG8uZXh0ZW5kRmxhdCh7fSxlKSxpKSxsPXMuZmxhZ3MsdT1KKHQsby5leHRlbmRGbGF0KHt9LG4pKSxoPXUuZmxhZ3M7KGwuY2FsY3x8aC5jYWxjKSYmKHQuY2FsY2RhdGE9dm9pZCAwKSxsLmNsZWFyQXhpc1R5cGVzJiZrLmNsZWFyQXhpc1R5cGVzKHQsaSxuKTt2YXIgcD1bXTtoLmxheW91dFJlcGxvdD9wLnB1c2goVC5sYXlvdXRSZXBsb3QpOmwuZnVsbFJlcGxvdD9wLnB1c2goci5wbG90KToocC5wdXNoKGYucHJldmlvdXNQcm9taXNlcyksRyh0LGgsdSl8fGYuc3VwcGx5RGVmYXVsdHModCksbC5zdHlsZSYmcC5wdXNoKFQuZG9UcmFjZVN0eWxlKSwobC5jb2xvcmJhcnN8fGguY29sb3JiYXJzKSYmcC5wdXNoKFQuZG9Db2xvckJhcnMpLGgubGVnZW5kJiZwLnB1c2goVC5kb0xlZ2VuZCksaC5sYXlvdXRzdHlsZSYmcC5wdXNoKFQubGF5b3V0U3R5bGVzKSxoLmF4cmFuZ2UmJlkocCx1LnJhbmdlc0FsdGVyZWQpLGgudGlja3MmJnAucHVzaChULmRvVGlja3NSZWxheW91dCksaC5tb2RlYmFyJiZwLnB1c2goVC5kb01vZGVCYXIpLGguY2FtZXJhJiZwLnB1c2goVC5kb0NhbWVyYSkscC5wdXNoKEwpKSxwLnB1c2goZi5yZWhvdmVyLGYucmVkcmFnKSxjLmFkZCh0LFEsW3Qscy51bmRvaXQsdS51bmRvaXQscy50cmFjZXNdLFEsW3Qscy5yZWRvaXQsdS5yZWRvaXQscy50cmFjZXNdKTt2YXIgZD1vLnN5bmNPckFzeW5jKHAsdCk7cmV0dXJuIGQmJmQudGhlbnx8KGQ9UHJvbWlzZS5yZXNvbHZlKHQpKSxkLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdC5lbWl0KCJwbG90bHlfdXBkYXRlIix7ZGF0YTpzLmV2ZW50RGF0YSxsYXlvdXQ6dS5ldmVudERhdGF9KSx0fSl9ZnVuY3Rpb24gJCh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7ZS5fZnVsbExheW91dC5fZ3VpRWRpdGluZz0hMDt2YXIgcj10LmFwcGx5KG51bGwsYXJndW1lbnRzKTtyZXR1cm4gZS5fZnVsbExheW91dC5fZ3VpRWRpdGluZz0hMSxyfX12YXIgdHQ9W3twYXR0ZXJuOi9eaGlkZGVubGFiZWxzLyxhdHRyOiJsZWdlbmQudWlyZXZpc2lvbiJ9LHtwYXR0ZXJuOi9eKCh4fHkpYXhpc1xkKilcLigoYXV0byk/cmFuZ2V8dGl0bGVcLnRleHQpL30se3BhdHRlcm46L2F4aXNcZCpcLnNob3dzcGlrZXMkLyxhdHRyOiJtb2RlYmFyLnVpcmV2aXNpb24ifSx7cGF0dGVybjovKGhvdmVyfGRyYWcpbW9kZSQvLGF0dHI6Im1vZGViYXIudWlyZXZpc2lvbiJ9LHtwYXR0ZXJuOi9eKHNjZW5lXGQqKVwuY2FtZXJhL30se3BhdHRlcm46L14oZ2VvXGQqKVwuKHByb2plY3Rpb258Y2VudGVyfGZpdGJvdW5kcykvfSx7cGF0dGVybjovXih0ZXJuYXJ5XGQqXC5bYWJjXWF4aXMpXC4obWlufHRpdGxlXC50ZXh0KSQvfSx7cGF0dGVybjovXihwb2xhclxkKlwucmFkaWFsYXhpcylcLigoYXV0byk/cmFuZ2V8YW5nbGV8dGl0bGVcLnRleHQpL30se3BhdHRlcm46L14ocG9sYXJcZCpcLmFuZ3VsYXJheGlzKVwucm90YXRpb24vfSx7cGF0dGVybjovXihtYXBib3hcZCopXC4oY2VudGVyfHpvb218YmVhcmluZ3xwaXRjaCkvfSx7cGF0dGVybjovXmxlZ2VuZFwuKHh8eSkkLyxhdHRyOiJlZGl0cmV2aXNpb24ifSx7cGF0dGVybjovXihzaGFwZXN8YW5ub3RhdGlvbnMpLyxhdHRyOiJlZGl0cmV2aXNpb24ifSx7cGF0dGVybjovXnRpdGxlXC50ZXh0JC8sYXR0cjoiZWRpdHJldmlzaW9uIn1dLGV0PVt7cGF0dGVybjovXnNlbGVjdGVkcG9pbnRzJC8sYXR0cjoic2VsZWN0aW9ucmV2aXNpb24ifSx7cGF0dGVybjovKF58dmFsdWVcLil2aXNpYmxlJC8sYXR0cjoibGVnZW5kLnVpcmV2aXNpb24ifSx7cGF0dGVybjovXmRpbWVuc2lvbnNcW1xkK1xdXC5jb25zdHJhaW50cmFuZ2UvfSx7cGF0dGVybjovXm5vZGVcLih4fHl8Z3JvdXBzKS99LHtwYXR0ZXJuOi9ebGV2ZWwkL30se3BhdHRlcm46LyhefHZhbHVlXC4pbmFtZSQvfSx7cGF0dGVybjovY29sb3JiYXJcLnRpdGxlXC50ZXh0JC99LHtwYXR0ZXJuOi9jb2xvcmJhclwuKHh8eSkkLyxhdHRyOiJlZGl0cmV2aXNpb24ifV07ZnVuY3Rpb24gcnQodCxlKXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXSxhPXQubWF0Y2gobi5wYXR0ZXJuKTtpZihhKXJldHVybntoZWFkOmFbMV0sYXR0cjpuLmF0dHJ9fX1mdW5jdGlvbiBudCh0LGUpe3ZhciByPXMoZSx0KS5nZXQoKTtpZih2b2lkIDAhPT1yKXJldHVybiByO3ZhciBuPXQuc3BsaXQoIi4iKTtmb3Iobi5wb3AoKTtuLmxlbmd0aD4xOylpZihuLnBvcCgpLHZvaWQgMCE9PShyPXMoZSxuLmpvaW4oIi4iKSsiLnVpcmV2aXNpb24iKS5nZXQoKSkpcmV0dXJuIHI7cmV0dXJuIGUudWlyZXZpc2lvbn1mdW5jdGlvbiBhdCh0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKWlmKGVbcl0uX2Z1bGxJbnB1dC51aWQ9PT10KXJldHVybiByO3JldHVybi0xfWZ1bmN0aW9uIGl0KHQsZSxyKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKylpZihlW25dLnVpZD09PXQpcmV0dXJuIG47cmV0dXJuIWVbcl18fGVbcl0udWlkPy0xOnJ9ZnVuY3Rpb24gb3QodCxlKXt2YXIgcj1vLmlzUGxhaW5PYmplY3QodCksbj1BcnJheS5pc0FycmF5KHQpO3JldHVybiByfHxuPyhyJiZvLmlzUGxhaW5PYmplY3QoZSl8fG4mJkFycmF5LmlzQXJyYXkoZSkpJiZKU09OLnN0cmluZ2lmeSh0KT09PUpTT04uc3RyaW5naWZ5KGUpOnQ9PT1lfWZ1bmN0aW9uIHN0KHQsZSxyLG4pe3ZhciBhLGksbCxjPW4uZ2V0VmFsT2JqZWN0LHU9bi5mbGFncyxoPW4uaW1tdXRhYmxlLGY9bi5pbkFycmF5LHA9bi5hcnJheUluZGV4O2Z1bmN0aW9uIGQoKXt2YXIgdD1hLmVkaXRUeXBlO2YmJi0xIT09dC5pbmRleE9mKCJhcnJheWRyYXciKT9vLnB1c2hVbmlxdWUodS5hcnJheXNbZl0scCk6KE0udXBkYXRlKHUsYSksIm5vbmUiIT09dCYmdS5uQ2hhbmdlcysrLG4udHJhbnNpdGlvbiYmYS5hbmltJiZ1Lm5DaGFuZ2VzQW5pbSsrLChXLnRlc3QobCl8fFgudGVzdChsKSkmJih1LnJhbmdlc0FsdGVyZWRbclswXV09MSksWi50ZXN0KGwpJiZzKGUsIl9pbnB1dERvbWFpbiIpLnNldChudWxsKSwiZGF0YXJldmlzaW9uIj09PWkmJih1Lm5ld0RhdGFSZXZpc2lvbj0xKSl9ZnVuY3Rpb24gZyh0KXtyZXR1cm4iZGF0YV9hcnJheSI9PT10LnZhbFR5cGV8fHQuYXJyYXlPa31mb3IoaSBpbiB0KXtpZih1LmNhbGMmJiFuLnRyYW5zaXRpb24pcmV0dXJuO3ZhciB2PXRbaV0sbT1lW2ldLHk9ci5jb25jYXQoaSk7aWYobD15LmpvaW4oIi4iKSwiXyIhPT1pLmNoYXJBdCgwKSYmImZ1bmN0aW9uIiE9dHlwZW9mIHYmJnYhPT1tKXtpZigoInRpY2swIj09PWl8fCJkdGljayI9PT1pKSYmImdlbyIhPT1yWzBdKXt2YXIgeD1lLnRpY2ttb2RlO2lmKCJhdXRvIj09PXh8fCJhcnJheSI9PT14fHwheCljb250aW51ZX1pZigoInJhbmdlIiE9PWl8fCFlLmF1dG9yYW5nZSkmJigiem1pbiIhPT1pJiYiem1heCIhPT1pfHwiY29udG91cmNhcnBldCIhPT1lLnR5cGUpJiYoYT1jKHkpKSYmKCFhLl9jb21wYXJlQXNKU09OfHxKU09OLnN0cmluZ2lmeSh2KSE9PUpTT04uc3RyaW5naWZ5KG0pKSl7dmFyIGIsXz1hLnZhbFR5cGUsdz1nKGEpLGs9QXJyYXkuaXNBcnJheSh2KSxUPUFycmF5LmlzQXJyYXkobSk7aWYoayYmVCl7dmFyIEE9Il9pbnB1dF8iK2ksUz10W0FdLEU9ZVtBXTtpZihBcnJheS5pc0FycmF5KFMpJiZTPT09RSljb250aW51ZX1pZih2b2lkIDA9PT1tKXcmJms/dS5jYWxjPSEwOmQoKTtlbHNlIGlmKGEuX2lzTGlua2VkVG9BcnJheSl7dmFyIEw9W10sQz0hMTtmfHwodS5hcnJheXNbaV09TCk7dmFyIFA9TWF0aC5taW4odi5sZW5ndGgsbS5sZW5ndGgpLE89TWF0aC5tYXgodi5sZW5ndGgsbS5sZW5ndGgpO2lmKFAhPT1PKXtpZigiYXJyYXlkcmF3IiE9PWEuZWRpdFR5cGUpe2QoKTtjb250aW51ZX1DPSEwfWZvcihiPTA7YjxQO2IrKylzdCh2W2JdLG1bYl0seS5jb25jYXQoYiksby5leHRlbmRGbGF0KHtpbkFycmF5OmksYXJyYXlJbmRleDpifSxuKSk7aWYoQylmb3IoYj1QO2I8TztiKyspTC5wdXNoKGIpfWVsc2UhXyYmby5pc1BsYWluT2JqZWN0KHYpP3N0KHYsbSx5LG4pOnc/ayYmVD8oaCYmKHUuY2FsYz0hMCksKGh8fG4ubmV3RGF0YVJldmlzaW9uKSYmZCgpKTprIT09VD91LmNhbGM9ITA6ZCgpOmsmJlQmJnYubGVuZ3RoPT09bS5sZW5ndGgmJlN0cmluZyh2KT09PVN0cmluZyhtKXx8ZCgpfX19Zm9yKGkgaW4gZSlpZighKGkgaW4gdHx8Il8iPT09aS5jaGFyQXQoMCl8fCJmdW5jdGlvbiI9PXR5cGVvZiBlW2ldKSl7aWYoZyhhPWMoci5jb25jYXQoaSkpKSYmQXJyYXkuaXNBcnJheShlW2ldKSlyZXR1cm4gdm9pZCh1LmNhbGM9ITApO2QoKX19ZnVuY3Rpb24gbHQodCl7dmFyIGU9bi5zZWxlY3QodCkscj10Ll9mdWxsTGF5b3V0O2lmKHIuX2NvbnRhaW5lcj1lLnNlbGVjdEFsbCgiLnBsb3QtY29udGFpbmVyIikuZGF0YShbMF0pLHIuX2NvbnRhaW5lci5lbnRlcigpLmluc2VydCgiZGl2IiwiOmZpcnN0LWNoaWxkIikuY2xhc3NlZCgicGxvdC1jb250YWluZXIiLCEwKS5jbGFzc2VkKCJwbG90bHkiLCEwKSxyLl9wYXBlcmRpdj1yLl9jb250YWluZXIuc2VsZWN0QWxsKCIuc3ZnLWNvbnRhaW5lciIpLmRhdGEoWzBdKSxyLl9wYXBlcmRpdi5lbnRlcigpLmFwcGVuZCgiZGl2IikuY2xhc3NlZCgic3ZnLWNvbnRhaW5lciIsITApLnN0eWxlKCJwb3NpdGlvbiIsInJlbGF0aXZlIiksci5fZ2xjb250YWluZXI9ci5fcGFwZXJkaXYuc2VsZWN0QWxsKCIuZ2wtY29udGFpbmVyIikuZGF0YShbe31dKSxyLl9nbGNvbnRhaW5lci5lbnRlcigpLmFwcGVuZCgiZGl2IikuY2xhc3NlZCgiZ2wtY29udGFpbmVyIiwhMCksci5fcGFwZXJkaXYuc2VsZWN0QWxsKCIubWFpbi1zdmciKS5yZW1vdmUoKSxyLl9wYXBlcmRpdi5zZWxlY3QoIi5tb2RlYmFyLWNvbnRhaW5lciIpLnJlbW92ZSgpLHIuX3BhcGVyPXIuX3BhcGVyZGl2Lmluc2VydCgic3ZnIiwiOmZpcnN0LWNoaWxkIikuY2xhc3NlZCgibWFpbi1zdmciLCEwKSxyLl90b3BwYXBlcj1yLl9wYXBlcmRpdi5hcHBlbmQoInN2ZyIpLmNsYXNzZWQoIm1haW4tc3ZnIiwhMCksci5fbW9kZWJhcmRpdj1yLl9wYXBlcmRpdi5hcHBlbmQoImRpdiIpLHIuX2hvdmVycGFwZXI9ci5fcGFwZXJkaXYuYXBwZW5kKCJzdmciKS5jbGFzc2VkKCJtYWluLXN2ZyIsITApLCFyLl91aWQpe3ZhciBhPXt9O24uc2VsZWN0QWxsKCJkZWZzIikuZWFjaChmdW5jdGlvbigpe3RoaXMuaWQmJihhW3RoaXMuaWQuc3BsaXQoIi0iKVsxXV09MSl9KSxyLl91aWQ9by5yYW5kc3RyKGEpfXIuX3BhcGVyZGl2LnNlbGVjdEFsbCgiLm1haW4tc3ZnIikuYXR0cih5LnN2Z0F0dHJzKSxyLl9kZWZzPXIuX3BhcGVyLmFwcGVuZCgiZGVmcyIpLmF0dHIoImlkIiwiZGVmcy0iK3IuX3VpZCksci5fY2xpcHM9ci5fZGVmcy5hcHBlbmQoImciKS5jbGFzc2VkKCJjbGlwcyIsITApLHIuX3RvcGRlZnM9ci5fdG9wcGFwZXIuYXBwZW5kKCJkZWZzIikuYXR0cigiaWQiLCJ0b3BkZWZzLSIrci5fdWlkKSxyLl90b3BjbGlwcz1yLl90b3BkZWZzLmFwcGVuZCgiZyIpLmNsYXNzZWQoImNsaXBzIiwhMCksci5fYmdMYXllcj1yLl9wYXBlci5hcHBlbmQoImciKS5jbGFzc2VkKCJiZ2xheWVyIiwhMCksci5fZHJhZ2dlcnM9ci5fcGFwZXIuYXBwZW5kKCJnIikuY2xhc3NlZCgiZHJhZ2xheWVyIiwhMCk7dmFyIGk9ci5fcGFwZXIuYXBwZW5kKCJnIikuY2xhc3NlZCgibGF5ZXItYmVsb3ciLCEwKTtyLl9pbWFnZUxvd2VyTGF5ZXI9aS5hcHBlbmQoImciKS5jbGFzc2VkKCJpbWFnZWxheWVyIiwhMCksci5fc2hhcGVMb3dlckxheWVyPWkuYXBwZW5kKCJnIikuY2xhc3NlZCgic2hhcGVsYXllciIsITApLHIuX2NhcnRlc2lhbmxheWVyPXIuX3BhcGVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoImNhcnRlc2lhbmxheWVyIiwhMCksci5fcG9sYXJsYXllcj1yLl9wYXBlci5hcHBlbmQoImciKS5jbGFzc2VkKCJwb2xhcmxheWVyIiwhMCksci5fdGVybmFyeWxheWVyPXIuX3BhcGVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoInRlcm5hcnlsYXllciIsITApLHIuX2dlb2xheWVyPXIuX3BhcGVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoImdlb2xheWVyIiwhMCksci5fZnVubmVsYXJlYWxheWVyPXIuX3BhcGVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoImZ1bm5lbGFyZWFsYXllciIsITApLHIuX3BpZWxheWVyPXIuX3BhcGVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoInBpZWxheWVyIiwhMCksci5fdHJlZW1hcGxheWVyPXIuX3BhcGVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoInRyZWVtYXBsYXllciIsITApLHIuX3N1bmJ1cnN0bGF5ZXI9ci5fcGFwZXIuYXBwZW5kKCJnIikuY2xhc3NlZCgic3VuYnVyc3RsYXllciIsITApLHIuX2luZGljYXRvcmxheWVyPXIuX3RvcHBhcGVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoImluZGljYXRvcmxheWVyIiwhMCksci5fZ2xpbWFnZXM9ci5fcGFwZXIuYXBwZW5kKCJnIikuY2xhc3NlZCgiZ2xpbWFnZXMiLCEwKTt2YXIgcz1yLl90b3BwYXBlci5hcHBlbmQoImciKS5jbGFzc2VkKCJsYXllci1hYm92ZSIsITApO3IuX2ltYWdlVXBwZXJMYXllcj1zLmFwcGVuZCgiZyIpLmNsYXNzZWQoImltYWdlbGF5ZXIiLCEwKSxyLl9zaGFwZVVwcGVyTGF5ZXI9cy5hcHBlbmQoImciKS5jbGFzc2VkKCJzaGFwZWxheWVyIiwhMCksci5faW5mb2xheWVyPXIuX3RvcHBhcGVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoImluZm9sYXllciIsITApLHIuX21lbnVsYXllcj1yLl90b3BwYXBlci5hcHBlbmQoImciKS5jbGFzc2VkKCJtZW51bGF5ZXIiLCEwKSxyLl96b29tbGF5ZXI9ci5fdG9wcGFwZXIuYXBwZW5kKCJnIikuY2xhc3NlZCgiem9vbWxheWVyIiwhMCksci5faG92ZXJsYXllcj1yLl9ob3ZlcnBhcGVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoImhvdmVybGF5ZXIiLCEwKSxyLl9tb2RlYmFyZGl2LmNsYXNzZWQoIm1vZGViYXItY29udGFpbmVyIiwhMCkuc3R5bGUoInBvc2l0aW9uIiwiYWJzb2x1dGUiKS5zdHlsZSgidG9wIiwiMHB4Iikuc3R5bGUoInJpZ2h0IiwiMHB4IiksdC5lbWl0KCJwbG90bHlfZnJhbWV3b3JrIil9ci5hbmltYXRlPWZ1bmN0aW9uKHQsZSxyKXtpZih0PW8uZ2V0R3JhcGhEaXYodCksIW8uaXNQbG90RGl2KHQpKXRocm93IG5ldyBFcnJvcigiVGhpcyBlbGVtZW50IGlzIG5vdCBhIFBsb3RseSBwbG90OiAiK3QrIi4gSXQncyBsaWtlbHkgdGhhdCB5b3UndmUgZmFpbGVkIHRvIGNyZWF0ZSBhIHBsb3QgYmVmb3JlIGFuaW1hdGluZyBpdC4gRm9yIG1vcmUgZGV0YWlscywgc2VlIGh0dHBzOi8vcGxvdC5seS9qYXZhc2NyaXB0L2FuaW1hdGlvbnMvIik7dmFyIG49dC5fdHJhbnNpdGlvbkRhdGE7bi5fZnJhbWVRdWV1ZXx8KG4uX2ZyYW1lUXVldWU9W10pO3ZhciBhPShyPWYuc3VwcGx5QW5pbWF0aW9uRGVmYXVsdHMocikpLnRyYW5zaXRpb24saT1yLmZyYW1lO2Z1bmN0aW9uIHModCl7cmV0dXJuIEFycmF5LmlzQXJyYXkoYSk/dD49YS5sZW5ndGg/YVswXTphW3RdOmF9ZnVuY3Rpb24gbCh0KXtyZXR1cm4gQXJyYXkuaXNBcnJheShpKT90Pj1pLmxlbmd0aD9pWzBdOmlbdF06aX1mdW5jdGlvbiBjKHQsZSl7dmFyIHI9MDtyZXR1cm4gZnVuY3Rpb24oKXtpZih0JiYrK3I9PT1lKXJldHVybiB0KCl9fXJldHVybiB2b2lkIDA9PT1uLl9mcmFtZVdhaXRpbmdDbnQmJihuLl9mcmFtZVdhaXRpbmdDbnQ9MCksbmV3IFByb21pc2UoZnVuY3Rpb24oaSx1KXtmdW5jdGlvbiBoKCl7bi5fY3VycmVudEZyYW1lJiZuLl9jdXJyZW50RnJhbWUub25Db21wbGV0ZSYmbi5fY3VycmVudEZyYW1lLm9uQ29tcGxldGUoKTt2YXIgZT1uLl9jdXJyZW50RnJhbWU9bi5fZnJhbWVRdWV1ZS5zaGlmdCgpO2lmKGUpe3ZhciByPWUubmFtZT9lLm5hbWUudG9TdHJpbmcoKTpudWxsO3QuX2Z1bGxMYXlvdXQuX2N1cnJlbnRGcmFtZT1yLG4uX2xhc3RGcmFtZUF0PURhdGUubm93KCksbi5fdGltZVRvTmV4dD1lLmZyYW1lT3B0cy5kdXJhdGlvbixmLnRyYW5zaXRpb24odCxlLmZyYW1lLmRhdGEsZS5mcmFtZS5sYXlvdXQsay5jb2VyY2VUcmFjZUluZGljZXModCxlLmZyYW1lLnRyYWNlcyksZS5mcmFtZU9wdHMsZS50cmFuc2l0aW9uT3B0cykudGhlbihmdW5jdGlvbigpe2Uub25Db21wbGV0ZSYmZS5vbkNvbXBsZXRlKCl9KSx0LmVtaXQoInBsb3RseV9hbmltYXRpbmdmcmFtZSIse25hbWU6cixmcmFtZTplLmZyYW1lLGFuaW1hdGlvbjp7ZnJhbWU6ZS5mcmFtZU9wdHMsdHJhbnNpdGlvbjplLnRyYW5zaXRpb25PcHRzfX0pfWVsc2UgdC5lbWl0KCJwbG90bHlfYW5pbWF0ZWQiKSx3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUobi5fYW5pbWF0aW9uUmFmKSxuLl9hbmltYXRpb25SYWY9bnVsbH1mdW5jdGlvbiBwKCl7dC5lbWl0KCJwbG90bHlfYW5pbWF0aW5nIiksbi5fbGFzdEZyYW1lQXQ9LTEvMCxuLl90aW1lVG9OZXh0PTAsbi5fcnVubmluZ1RyYW5zaXRpb25zPTAsbi5fY3VycmVudEZyYW1lPW51bGw7dmFyIGU9ZnVuY3Rpb24oKXtuLl9hbmltYXRpb25SYWY9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShlKSxEYXRlLm5vdygpLW4uX2xhc3RGcmFtZUF0Pm4uX3RpbWVUb05leHQmJmgoKX07ZSgpfXZhciBkLGcsdj0wO2Z1bmN0aW9uIG0odCl7cmV0dXJuIEFycmF5LmlzQXJyYXkoYSk/dj49YS5sZW5ndGg/dC50cmFuc2l0aW9uT3B0cz1hW3ZdOnQudHJhbnNpdGlvbk9wdHM9YVswXTp0LnRyYW5zaXRpb25PcHRzPWEsdisrLHR9dmFyIHk9W10seD1udWxsPT1lLGI9QXJyYXkuaXNBcnJheShlKTtpZih4fHxifHwhby5pc1BsYWluT2JqZWN0KGUpKXtpZih4fHwtMSE9PVsic3RyaW5nIiwibnVtYmVyIl0uaW5kZXhPZih0eXBlb2YgZSkpZm9yKGQ9MDtkPG4uX2ZyYW1lcy5sZW5ndGg7ZCsrKShnPW4uX2ZyYW1lc1tkXSkmJih4fHxTdHJpbmcoZy5ncm91cCk9PT1TdHJpbmcoZSkpJiZ5LnB1c2goe3R5cGU6ImJ5bmFtZSIsbmFtZTpTdHJpbmcoZy5uYW1lKSxkYXRhOm0oe25hbWU6Zy5uYW1lfSl9KTtlbHNlIGlmKGIpZm9yKGQ9MDtkPGUubGVuZ3RoO2QrKyl7dmFyIF89ZVtkXTstMSE9PVsibnVtYmVyIiwic3RyaW5nIl0uaW5kZXhPZih0eXBlb2YgXyk/KF89U3RyaW5nKF8pLHkucHVzaCh7dHlwZToiYnluYW1lIixuYW1lOl8sZGF0YTptKHtuYW1lOl99KX0pKTpvLmlzUGxhaW5PYmplY3QoXykmJnkucHVzaCh7dHlwZToib2JqZWN0IixkYXRhOm0oby5leHRlbmRGbGF0KHt9LF8pKX0pfX1lbHNlIHkucHVzaCh7dHlwZToib2JqZWN0IixkYXRhOm0oby5leHRlbmRGbGF0KHt9LGUpKX0pO2ZvcihkPTA7ZDx5Lmxlbmd0aDtkKyspaWYoImJ5bmFtZSI9PT0oZz15W2RdKS50eXBlJiYhbi5fZnJhbWVIYXNoW2cuZGF0YS5uYW1lXSlyZXR1cm4gby53YXJuKCdhbmltYXRlIGZhaWx1cmU6IGZyYW1lIG5vdCBmb3VuZDogIicrZy5kYXRhLm5hbWUrJyInKSx2b2lkIHUoKTstMSE9PVsibmV4dCIsImltbWVkaWF0ZSJdLmluZGV4T2Yoci5tb2RlKSYmZnVuY3Rpb24oKXtpZigwIT09bi5fZnJhbWVRdWV1ZS5sZW5ndGgpe2Zvcig7bi5fZnJhbWVRdWV1ZS5sZW5ndGg7KXt2YXIgZT1uLl9mcmFtZVF1ZXVlLnBvcCgpO2Uub25JbnRlcnJ1cHQmJmUub25JbnRlcnJ1cHQoKX10LmVtaXQoInBsb3RseV9hbmltYXRpb25pbnRlcnJ1cHRlZCIsW10pfX0oKSwicmV2ZXJzZSI9PT1yLmRpcmVjdGlvbiYmeS5yZXZlcnNlKCk7dmFyIHc9dC5fZnVsbExheW91dC5fY3VycmVudEZyYW1lO2lmKHcmJnIuZnJvbWN1cnJlbnQpe3ZhciBUPS0xO2ZvcihkPTA7ZDx5Lmxlbmd0aDtkKyspaWYoImJ5bmFtZSI9PT0oZz15W2RdKS50eXBlJiZnLm5hbWU9PT13KXtUPWQ7YnJlYWt9aWYoVD4wJiZUPHkubGVuZ3RoLTEpe3ZhciBNPVtdO2ZvcihkPTA7ZDx5Lmxlbmd0aDtkKyspZz15W2RdLCgiYnluYW1lIiE9PXlbZF0udHlwZXx8ZD5UKSYmTS5wdXNoKGcpO3k9TX19eS5sZW5ndGg+MD9mdW5jdGlvbihlKXtpZigwIT09ZS5sZW5ndGgpe2Zvcih2YXIgYT0wO2E8ZS5sZW5ndGg7YSsrKXt2YXIgbztvPSJieW5hbWUiPT09ZVthXS50eXBlP2YuY29tcHV0ZUZyYW1lKHQsZVthXS5uYW1lKTplW2FdLmRhdGE7dmFyIGg9bChhKSxkPXMoYSk7ZC5kdXJhdGlvbj1NYXRoLm1pbihkLmR1cmF0aW9uLGguZHVyYXRpb24pO3ZhciBnPXtmcmFtZTpvLG5hbWU6ZVthXS5uYW1lLGZyYW1lT3B0czpoLHRyYW5zaXRpb25PcHRzOmR9O2E9PT1lLmxlbmd0aC0xJiYoZy5vbkNvbXBsZXRlPWMoaSwyKSxnLm9uSW50ZXJydXB0PXUpLG4uX2ZyYW1lUXVldWUucHVzaChnKX0iaW1tZWRpYXRlIj09PXIubW9kZSYmKG4uX2xhc3RGcmFtZUF0PS0xLzApLG4uX2FuaW1hdGlvblJhZnx8cCgpfX0oeSk6KHQuZW1pdCgicGxvdGx5X2FuaW1hdGVkIiksaSgpKX0pfSxyLmFkZEZyYW1lcz1mdW5jdGlvbih0LGUscil7aWYodD1vLmdldEdyYXBoRGl2KHQpLG51bGw9PWUpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO2lmKCFvLmlzUGxvdERpdih0KSl0aHJvdyBuZXcgRXJyb3IoIlRoaXMgZWxlbWVudCBpcyBub3QgYSBQbG90bHkgcGxvdDogIit0KyIuIEl0J3MgbGlrZWx5IHRoYXQgeW91J3ZlIGZhaWxlZCB0byBjcmVhdGUgYSBwbG90IGJlZm9yZSBhZGRpbmcgZnJhbWVzLiBGb3IgbW9yZSBkZXRhaWxzLCBzZWUgaHR0cHM6Ly9wbG90Lmx5L2phdmFzY3JpcHQvYW5pbWF0aW9ucy8iKTt2YXIgbixhLGkscyxsPXQuX3RyYW5zaXRpb25EYXRhLl9mcmFtZXMsdT10Ll90cmFuc2l0aW9uRGF0YS5fZnJhbWVIYXNoO2lmKCFBcnJheS5pc0FycmF5KGUpKXRocm93IG5ldyBFcnJvcigiYWRkRnJhbWVzIGZhaWx1cmU6IGZyYW1lTGlzdCBtdXN0IGJlIGFuIEFycmF5IG9mIGZyYW1lIGRlZmluaXRpb25zIitlKTt2YXIgaD1sLmxlbmd0aCsyKmUubGVuZ3RoLHA9W10sZD17fTtmb3Iobj1lLmxlbmd0aC0xO24+PTA7bi0tKWlmKG8uaXNQbGFpbk9iamVjdChlW25dKSl7dmFyIGc9ZVtuXS5uYW1lLHY9KHVbZ118fGRbZ118fHt9KS5uYW1lLG09ZVtuXS5uYW1lLHk9dVt2XXx8ZFt2XTt2JiZtJiYibnVtYmVyIj09dHlwZW9mIG0mJnkmJlM8RSYmKFMrKyxvLndhcm4oJ2FkZEZyYW1lczogb3ZlcndyaXRpbmcgZnJhbWUgIicrKHVbdl18fGRbdl0pLm5hbWUrJyIgd2l0aCBhIGZyYW1lIHdob3NlIG5hbWUgb2YgdHlwZSAibnVtYmVyIiBhbHNvIGVxdWF0ZXMgdG8gIicrdisnIi4gVGhpcyBpcyB2YWxpZCBidXQgbWF5IHBvdGVudGlhbGx5IGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlvciBzaW5jZSBhbGwgcGxvdGx5LmpzIGZyYW1lIG5hbWVzIGFyZSBzdG9yZWQgaW50ZXJuYWxseSBhcyBzdHJpbmdzLicpLFM9PT1FJiZvLndhcm4oImFkZEZyYW1lczogVGhpcyBBUEkgY2FsbCBoYXMgeWllbGRlZCB0b28gbWFueSBvZiB0aGVzZSB3YXJuaW5ncy4gRm9yIHRoZSByZXN0IG9mIHRoaXMgY2FsbCwgZnVydGhlciB3YXJuaW5ncyBhYm91dCBudW1lcmljIGZyYW1lIG5hbWVzIHdpbGwgYmUgc3VwcHJlc3NlZC4iKSksZFtnXT17bmFtZTpnfSxwLnB1c2goe2ZyYW1lOmYuc3VwcGx5RnJhbWVEZWZhdWx0cyhlW25dKSxpbmRleDpyJiZ2b2lkIDAhPT1yW25dJiZudWxsIT09cltuXT9yW25dOmgrbn0pfXAuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiB0LmluZGV4PmUuaW5kZXg/LTE6dC5pbmRleDxlLmluZGV4PzE6MH0pO3ZhciB4PVtdLGI9W10sXz1sLmxlbmd0aDtmb3Iobj1wLmxlbmd0aC0xO24+PTA7bi0tKXtpZigibnVtYmVyIj09dHlwZW9mKGE9cFtuXS5mcmFtZSkubmFtZSYmby53YXJuKCJXYXJuaW5nOiBhZGRGcmFtZXMgYWNjZXB0cyBmcmFtZXMgd2l0aCBudW1lcmljIG5hbWVzLCBidXQgdGhlIG51bWJlcnMgYXJlaW1wbGljaXRseSBjYXN0IHRvIHN0cmluZ3MiKSwhYS5uYW1lKWZvcig7dVthLm5hbWU9ImZyYW1lICIrdC5fdHJhbnNpdGlvbkRhdGEuX2NvdW50ZXIrK107KTtpZih1W2EubmFtZV0pe2ZvcihpPTA7aTxsLmxlbmd0aCYmKGxbaV18fHt9KS5uYW1lIT09YS5uYW1lO2krKyk7eC5wdXNoKHt0eXBlOiJyZXBsYWNlIixpbmRleDppLHZhbHVlOmF9KSxiLnVuc2hpZnQoe3R5cGU6InJlcGxhY2UiLGluZGV4OmksdmFsdWU6bFtpXX0pfWVsc2Ugcz1NYXRoLm1heCgwLE1hdGgubWluKHBbbl0uaW5kZXgsXykpLHgucHVzaCh7dHlwZToiaW5zZXJ0IixpbmRleDpzLHZhbHVlOmF9KSxiLnVuc2hpZnQoe3R5cGU6ImRlbGV0ZSIsaW5kZXg6c30pLF8rK312YXIgdz1mLm1vZGlmeUZyYW1lcyxrPWYubW9kaWZ5RnJhbWVzLFQ9W3QsYl0sTT1bdCx4XTtyZXR1cm4gYyYmYy5hZGQodCx3LFQsayxNKSxmLm1vZGlmeUZyYW1lcyh0LHgpfSxyLmRlbGV0ZUZyYW1lcz1mdW5jdGlvbih0LGUpe2lmKHQ9by5nZXRHcmFwaERpdih0KSwhby5pc1Bsb3REaXYodCkpdGhyb3cgbmV3IEVycm9yKCJUaGlzIGVsZW1lbnQgaXMgbm90IGEgUGxvdGx5IHBsb3Q6ICIrdCk7dmFyIHIsbixhPXQuX3RyYW5zaXRpb25EYXRhLl9mcmFtZXMsaT1bXSxzPVtdO2lmKCFlKWZvcihlPVtdLHI9MDtyPGEubGVuZ3RoO3IrKyllLnB1c2gocik7Zm9yKChlPWUuc2xpY2UoKSkuc29ydCgpLHI9ZS5sZW5ndGgtMTtyPj0wO3ItLSluPWVbcl0saS5wdXNoKHt0eXBlOiJkZWxldGUiLGluZGV4Om59KSxzLnVuc2hpZnQoe3R5cGU6Imluc2VydCIsaW5kZXg6bix2YWx1ZTphW25dfSk7dmFyIGw9Zi5tb2RpZnlGcmFtZXMsdT1mLm1vZGlmeUZyYW1lcyxoPVt0LHNdLHA9W3QsaV07cmV0dXJuIGMmJmMuYWRkKHQsbCxoLHUscCksZi5tb2RpZnlGcmFtZXModCxpKX0sci5hZGRUcmFjZXM9ZnVuY3Rpb24gdChlLG4sYSl7ZT1vLmdldEdyYXBoRGl2KGUpO3ZhciBpLHMsbD1bXSx1PXIuZGVsZXRlVHJhY2VzLGg9dCxmPVtlLGxdLHA9W2Usbl07Zm9yKGZ1bmN0aW9uKHQsZSxyKXt2YXIgbixhO2lmKCFBcnJheS5pc0FycmF5KHQuZGF0YSkpdGhyb3cgbmV3IEVycm9yKCJnZC5kYXRhIG11c3QgYmUgYW4gYXJyYXkuIik7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigidHJhY2VzIG11c3QgYmUgZGVmaW5lZC4iKTtmb3IoQXJyYXkuaXNBcnJheShlKXx8KGU9W2VdKSxuPTA7bjxlLmxlbmd0aDtuKyspaWYoIm9iamVjdCIhPXR5cGVvZihhPWVbbl0pfHxBcnJheS5pc0FycmF5KGEpfHxudWxsPT09YSl0aHJvdyBuZXcgRXJyb3IoImFsbCB2YWx1ZXMgaW4gdHJhY2VzIGFycmF5IG11c3QgYmUgbm9uLWFycmF5IG9iamVjdHMiKTtpZigidW5kZWZpbmVkIj09dHlwZW9mIHJ8fEFycmF5LmlzQXJyYXkocil8fChyPVtyXSksInVuZGVmaW5lZCIhPXR5cGVvZiByJiZyLmxlbmd0aCE9PWUubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiaWYgaW5kaWNlcyBpcyBzcGVjaWZpZWQsIHRyYWNlcy5sZW5ndGggbXVzdCBlcXVhbCBpbmRpY2VzLmxlbmd0aCIpfShlLG4sYSksQXJyYXkuaXNBcnJheShuKXx8KG49W25dKSxuPW4ubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBvLmV4dGVuZEZsYXQoe30sdCl9KSxrLmNsZWFuRGF0YShuKSxpPTA7aTxuLmxlbmd0aDtpKyspZS5kYXRhLnB1c2gobltpXSk7Zm9yKGk9MDtpPG4ubGVuZ3RoO2krKylsLnB1c2goLW4ubGVuZ3RoK2kpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYSlyZXR1cm4gcz1yLnJlZHJhdyhlKSxjLmFkZChlLHUsZixoLHApLHM7QXJyYXkuaXNBcnJheShhKXx8KGE9W2FdKTt0cnl7RChlLGwsYSl9Y2F0Y2godCl7dGhyb3cgZS5kYXRhLnNwbGljZShlLmRhdGEubGVuZ3RoLW4ubGVuZ3RoLG4ubGVuZ3RoKSx0fXJldHVybiBjLnN0YXJ0U2VxdWVuY2UoZSksYy5hZGQoZSx1LGYsaCxwKSxzPXIubW92ZVRyYWNlcyhlLGwsYSksYy5zdG9wU2VxdWVuY2UoZSksc30sci5kZWxldGVUcmFjZXM9ZnVuY3Rpb24gdChlLG4pe2U9by5nZXRHcmFwaERpdihlKTt2YXIgYSxpLHM9W10sbD1yLmFkZFRyYWNlcyx1PXQsaD1bZSxzLG5dLGY9W2Usbl07aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBuKXRocm93IG5ldyBFcnJvcigiaW5kaWNlcyBtdXN0IGJlIGFuIGludGVnZXIgb3IgYXJyYXkgb2YgaW50ZWdlcnMuIik7Zm9yKEFycmF5LmlzQXJyYXkobil8fChuPVtuXSksSShlLG4sImluZGljZXMiKSwobj16KG4sZS5kYXRhLmxlbmd0aC0xKSkuc29ydChvLnNvcnRlckRlcyksYT0wO2E8bi5sZW5ndGg7YSs9MSlpPWUuZGF0YS5zcGxpY2UoblthXSwxKVswXSxzLnB1c2goaSk7dmFyIHA9ci5yZWRyYXcoZSk7cmV0dXJuIGMuYWRkKGUsbCxoLHUsZikscH0sci5leHRlbmRUcmFjZXM9ZnVuY3Rpb24gdChlLG4sYSxpKXt2YXIgcz1SKGU9by5nZXRHcmFwaERpdihlKSxuLGEsaSxmdW5jdGlvbih0LGUscil7dmFyIG4sYTtpZihvLmlzVHlwZWRBcnJheSh0KSlpZihyPDApe3ZhciBpPW5ldyB0LmNvbnN0cnVjdG9yKDApLHM9Rih0LGUpO3I8MD8obj1zLGE9aSk6KG49aSxhPXMpfWVsc2UgaWYobj1uZXcgdC5jb25zdHJ1Y3RvcihyKSxhPW5ldyB0LmNvbnN0cnVjdG9yKHQubGVuZ3RoK2UubGVuZ3RoLXIpLHI9PT1lLmxlbmd0aCluLnNldChlKSxhLnNldCh0KTtlbHNlIGlmKHI8ZS5sZW5ndGgpe3ZhciBsPWUubGVuZ3RoLXI7bi5zZXQoZS5zdWJhcnJheShsKSksYS5zZXQodCksYS5zZXQoZS5zdWJhcnJheSgwLGwpLHQubGVuZ3RoKX1lbHNle3ZhciBjPXItZS5sZW5ndGgsdT10Lmxlbmd0aC1jO24uc2V0KHQuc3ViYXJyYXkodSkpLG4uc2V0KGUsYyksYS5zZXQodC5zdWJhcnJheSgwLHUpKX1lbHNlIG49dC5jb25jYXQoZSksYT1yPj0wJiZyPG4ubGVuZ3RoP24uc3BsaWNlKDAsbi5sZW5ndGgtcik6W107cmV0dXJuW24sYV19KSxsPXIucmVkcmF3KGUpLHU9W2Uscy51cGRhdGUsYSxzLm1heFBvaW50c107cmV0dXJuIGMuYWRkKGUsci5wcmVwZW5kVHJhY2VzLHUsdCxhcmd1bWVudHMpLGx9LHIubW92ZVRyYWNlcz1mdW5jdGlvbiB0KGUsbixhKXt2YXIgaSxzPVtdLGw9W10sdT10LGg9dCxmPVtlPW8uZ2V0R3JhcGhEaXYoZSksYSxuXSxwPVtlLG4sYV07aWYoRChlLG4sYSksbj1BcnJheS5pc0FycmF5KG4pP246W25dLCJ1bmRlZmluZWQiPT10eXBlb2YgYSlmb3IoYT1bXSxpPTA7aTxuLmxlbmd0aDtpKyspYS5wdXNoKC1uLmxlbmd0aCtpKTtmb3IoYT1BcnJheS5pc0FycmF5KGEpP2E6W2FdLG49eihuLGUuZGF0YS5sZW5ndGgtMSksYT16KGEsZS5kYXRhLmxlbmd0aC0xKSxpPTA7aTxlLmRhdGEubGVuZ3RoO2krKyktMT09PW4uaW5kZXhPZihpKSYmcy5wdXNoKGUuZGF0YVtpXSk7Zm9yKGk9MDtpPG4ubGVuZ3RoO2krKylsLnB1c2goe25ld0luZGV4OmFbaV0sdHJhY2U6ZS5kYXRhW25baV1dfSk7Zm9yKGwuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiB0Lm5ld0luZGV4LWUubmV3SW5kZXh9KSxpPTA7aTxsLmxlbmd0aDtpKz0xKXMuc3BsaWNlKGxbaV0ubmV3SW5kZXgsMCxsW2ldLnRyYWNlKTtlLmRhdGE9czt2YXIgZD1yLnJlZHJhdyhlKTtyZXR1cm4gYy5hZGQoZSx1LGYsaCxwKSxkfSxyLnByZXBlbmRUcmFjZXM9ZnVuY3Rpb24gdChlLG4sYSxpKXt2YXIgcz1SKGU9by5nZXRHcmFwaERpdihlKSxuLGEsaSxmdW5jdGlvbih0LGUscil7dmFyIG4sYTtpZihvLmlzVHlwZWRBcnJheSh0KSlpZihyPD0wKXt2YXIgaT1uZXcgdC5jb25zdHJ1Y3RvcigwKSxzPUYoZSx0KTtyPDA/KG49cyxhPWkpOihuPWksYT1zKX1lbHNlIGlmKG49bmV3IHQuY29uc3RydWN0b3IociksYT1uZXcgdC5jb25zdHJ1Y3Rvcih0Lmxlbmd0aCtlLmxlbmd0aC1yKSxyPT09ZS5sZW5ndGgpbi5zZXQoZSksYS5zZXQodCk7ZWxzZSBpZihyPGUubGVuZ3RoKXt2YXIgbD1lLmxlbmd0aC1yO24uc2V0KGUuc3ViYXJyYXkoMCxsKSksYS5zZXQoZS5zdWJhcnJheShsKSksYS5zZXQodCxsKX1lbHNle3ZhciBjPXItZS5sZW5ndGg7bi5zZXQoZSksbi5zZXQodC5zdWJhcnJheSgwLGMpLGUubGVuZ3RoKSxhLnNldCh0LnN1YmFycmF5KGMpKX1lbHNlIG49ZS5jb25jYXQodCksYT1yPj0wJiZyPG4ubGVuZ3RoP24uc3BsaWNlKHIsbi5sZW5ndGgpOltdO3JldHVybltuLGFdfSksbD1yLnJlZHJhdyhlKSx1PVtlLHMudXBkYXRlLGEscy5tYXhQb2ludHNdO3JldHVybiBjLmFkZChlLHIuZXh0ZW5kVHJhY2VzLHUsdCxhcmd1bWVudHMpLGx9LHIubmV3UGxvdD1mdW5jdGlvbih0LGUsbixhKXtyZXR1cm4gdD1vLmdldEdyYXBoRGl2KHQpLGYuY2xlYW5QbG90KFtdLHt9LHQuX2Z1bGxEYXRhfHxbXSx0Ll9mdWxsTGF5b3V0fHx7fSksZi5wdXJnZSh0KSxyLnBsb3QodCxlLG4sYSl9LHIucGxvdD1mdW5jdGlvbih0LGUsYSxpKXt2YXIgcztpZih0PW8uZ2V0R3JhcGhEaXYodCksbC5pbml0KHQpLG8uaXNQbGFpbk9iamVjdChlKSl7dmFyIGM9ZTtlPWMuZGF0YSxhPWMubGF5b3V0LGk9Yy5jb25maWcscz1jLmZyYW1lc31pZighMT09PWwudHJpZ2dlckhhbmRsZXIodCwicGxvdGx5X2JlZm9yZXBsb3QiLFtlLGEsaV0pKXJldHVybiBQcm9taXNlLnJlamVjdCgpO2V8fGF8fG8uaXNQbG90RGl2KHQpfHxvLndhcm4oIkNhbGxpbmcgUGxvdGx5LnBsb3QgYXMgaWYgcmVkcmF3aW5nIGJ1dCB0aGlzIGNvbnRhaW5lciBkb2Vzbid0IHlldCBoYXZlIGEgcGxvdC4iLHQpLE8odCxpKSxhfHwoYT17fSksbi5zZWxlY3QodCkuY2xhc3NlZCgianMtcGxvdGx5LXBsb3QiLCEwKSxnLm1ha2VUZXN0ZXIoKSxBcnJheS5pc0FycmF5KHQuX3Byb21pc2VzKXx8KHQuX3Byb21pc2VzPVtdKTt2YXIgaD0wPT09KHQuZGF0YXx8W10pLmxlbmd0aCYmQXJyYXkuaXNBcnJheShlKTtBcnJheS5pc0FycmF5KGUpJiYoay5jbGVhbkRhdGEoZSksaD90LmRhdGE9ZTp0LmRhdGEucHVzaC5hcHBseSh0LmRhdGEsZSksdC5lbXB0eT0hMSksdC5sYXlvdXQmJiFofHwodC5sYXlvdXQ9ay5jbGVhbkxheW91dChhKSksZi5zdXBwbHlEZWZhdWx0cyh0KTt2YXIgdj10Ll9mdWxsTGF5b3V0LHk9di5faGFzKCJjYXJ0ZXNpYW4iKTtpZighdi5faGFzKCJwb2xhciIpJiZlJiZlWzBdJiZlWzBdLnIpcmV0dXJuIG8ubG9nKCJMZWdhY3kgcG9sYXIgY2hhcnRzIGFyZSBkZXByZWNhdGVkISIpLGZ1bmN0aW9uKHQsZSxyKXt2YXIgYT1uLnNlbGVjdCh0KS5zZWxlY3RBbGwoIi5wbG90LWNvbnRhaW5lciIpLmRhdGEoWzBdKTthLmVudGVyKCkuaW5zZXJ0KCJkaXYiLCI6Zmlyc3QtY2hpbGQiKS5jbGFzc2VkKCJwbG90LWNvbnRhaW5lciBwbG90bHkiLCEwKTt2YXIgaT1hLnNlbGVjdEFsbCgiLnN2Zy1jb250YWluZXIiKS5kYXRhKFswXSk7aS5lbnRlcigpLmFwcGVuZCgiZGl2IikuY2xhc3NlZCgic3ZnLWNvbnRhaW5lciIsITApLnN0eWxlKCJwb3NpdGlvbiIsInJlbGF0aXZlIiksaS5odG1sKCIiKSxlJiYodC5kYXRhPWUpLHImJih0LmxheW91dD1yKSxwLm1hbmFnZXIuZmlsbExheW91dCh0KSxpLnN0eWxlKHt3aWR0aDp0Ll9mdWxsTGF5b3V0LndpZHRoKyJweCIsaGVpZ2h0OnQuX2Z1bGxMYXlvdXQuaGVpZ2h0KyJweCJ9KSx0LmZyYW1ld29yaz1wLm1hbmFnZXIuZnJhbWV3b3JrKHQpLHQuZnJhbWV3b3JrKHtkYXRhOnQuZGF0YSxsYXlvdXQ6dC5sYXlvdXR9LGkubm9kZSgpKSx0LmZyYW1ld29yay5zZXRVbmRvUG9pbnQoKTt2YXIgcz10LmZyYW1ld29yay5zdmcoKSxsPTEsYz10Ll9mdWxsTGF5b3V0LnRpdGxlP3QuX2Z1bGxMYXlvdXQudGl0bGUudGV4dDoiIjsiIiE9PWMmJmN8fChsPTApO3ZhciB1PWZ1bmN0aW9uKCl7dGhpcy5jYWxsKHguY29udmVydFRvVHNwYW5zLHQpfSxoPXMuc2VsZWN0KCIudGl0bGUtZ3JvdXAgdGV4dCIpLmNhbGwodSk7aWYodC5fY29udGV4dC5lZGl0cy50aXRsZVRleHQpe3ZhciBkPW8uXyh0LCJDbGljayB0byBlbnRlciBQbG90IHRpdGxlIik7YyYmYyE9PWR8fChsPS4yLGguYXR0cih7ImRhdGEtdW5mb3JtYXR0ZWQiOmR9KS50ZXh0KGQpLnN0eWxlKHtvcGFjaXR5Omx9KS5vbigibW91c2VvdmVyLm9wYWNpdHkiLGZ1bmN0aW9uKCl7bi5zZWxlY3QodGhpcykudHJhbnNpdGlvbigpLmR1cmF0aW9uKDEwMCkuc3R5bGUoIm9wYWNpdHkiLDEpfSkub24oIm1vdXNlb3V0Lm9wYWNpdHkiLGZ1bmN0aW9uKCl7bi5zZWxlY3QodGhpcykudHJhbnNpdGlvbigpLmR1cmF0aW9uKDFlMykuc3R5bGUoIm9wYWNpdHkiLDApfSkpO3ZhciBnPWZ1bmN0aW9uKCl7dGhpcy5jYWxsKHgubWFrZUVkaXRhYmxlLHtnZDp0fSkub24oImVkaXQiLGZ1bmN0aW9uKGUpe3QuZnJhbWV3b3JrKHtsYXlvdXQ6e3RpdGxlOnt0ZXh0OmV9fX0pLHRoaXMudGV4dChlKS5jYWxsKHUpLHRoaXMuY2FsbChnKX0pLm9uKCJjYW5jZWwiLGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5hdHRyKCJkYXRhLXVuZm9ybWF0dGVkIik7dGhpcy50ZXh0KHQpLmNhbGwodSl9KX07aC5jYWxsKGcpfXJldHVybiB0Ll9jb250ZXh0LnNldEJhY2tncm91bmQodCx0Ll9mdWxsTGF5b3V0LnBhcGVyX2JnY29sb3IpLGYuYWRkTGlua3ModCksUHJvbWlzZS5yZXNvbHZlKCl9KHQsZSxhKTt2Ll9yZXBsb3R0aW5nPSEwLGgmJmx0KHQpLHQuZnJhbWV3b3JrIT09bHQmJih0LmZyYW1ld29yaz1sdCxsdCh0KSksZy5pbml0R3JhZGllbnRzKHQpLGgmJmQuc2F2ZVNob3dTcGlrZUluaXRpYWwodCk7dmFyIGI9IXQuY2FsY2RhdGF8fHQuY2FsY2RhdGEubGVuZ3RoIT09KHQuX2Z1bGxEYXRhfHxbXSkubGVuZ3RoO2ImJmYuZG9DYWxjZGF0YSh0KTtmb3IodmFyIF89MDtfPHQuY2FsY2RhdGEubGVuZ3RoO18rKyl0LmNhbGNkYXRhW19dWzBdLnRyYWNlPXQuX2Z1bGxEYXRhW19dO3QuX2NvbnRleHQucmVzcG9uc2l2ZT90Ll9yZXNwb25zaXZlQ2hhcnRIYW5kbGVyfHwodC5fcmVzcG9uc2l2ZUNoYXJ0SGFuZGxlcj1mdW5jdGlvbigpe28uaXNIaWRkZW4odCl8fGYucmVzaXplKHQpfSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0Ll9yZXNwb25zaXZlQ2hhcnRIYW5kbGVyKSk6by5jbGVhclJlc3BvbnNpdmUodCk7dmFyIHc9by5leHRlbmRGbGF0KHt9LHYuX3NpemUpLE09MDtmdW5jdGlvbiBBKCl7aWYoZi5jbGVhckF1dG9NYXJnaW5JZHModCksVC5kcmF3TWFyZ2luUHVzaGVycyh0KSxkLmFsbG93QXV0b01hcmdpbih0KSx2Ll9oYXMoInBpZSIpKWZvcih2YXIgZT10Ll9mdWxsRGF0YSxyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWVbcl07InBpZSI9PT1uLnR5cGUmJm4uYXV0b21hcmdpbiYmZi5hbGxvd0F1dG9NYXJnaW4odCwicGllLiIrbi51aWQrIi5hdXRvbWFyZ2luIil9cmV0dXJuIGYuZG9BdXRvTWFyZ2luKHQpLGYucHJldmlvdXNQcm9taXNlcyh0KX1mdW5jdGlvbiBTKCl7dC5fdHJhbnNpdGlvbmluZ3x8KFQuZG9BdXRvUmFuZ2VBbmRDb25zdHJhaW50cyh0KSxoJiZkLnNhdmVSYW5nZUluaXRpYWwodCksdS5nZXRDb21wb25lbnRNZXRob2QoInJhbmdlc2xpZGVyIiwiY2FsY0F1dG9yYW5nZSIpKHQpKX12YXIgRT1bZi5wcmV2aW91c1Byb21pc2VzLGZ1bmN0aW9uKCl7aWYocylyZXR1cm4gci5hZGRGcmFtZXModCxzKX0sZnVuY3Rpb24gZSgpe2Zvcih2YXIgcj12Ll9iYXNlUGxvdE1vZHVsZXMsbj0wO248ci5sZW5ndGg7bisrKXJbbl0uZHJhd0ZyYW1ld29yayYmcltuXS5kcmF3RnJhbWV3b3JrKHQpO2lmKCF2Ll9nbGNhbnZhcyYmdi5faGFzKCJnbCIpJiYodi5fZ2xjYW52YXM9di5fZ2xjb250YWluZXIuc2VsZWN0QWxsKCIuZ2wtY2FudmFzIikuZGF0YShbe2tleToiY29udGV4dExheWVyIixjb250ZXh0OiEwLHBpY2s6ITF9LHtrZXk6ImZvY3VzTGF5ZXIiLGNvbnRleHQ6ITEscGljazohMX0se2tleToicGlja0xheWVyIixjb250ZXh0OiExLHBpY2s6ITB9XSxmdW5jdGlvbih0KXtyZXR1cm4gdC5rZXl9KSx2Ll9nbGNhbnZhcy5lbnRlcigpLmFwcGVuZCgiY2FudmFzIikuYXR0cigiY2xhc3MiLGZ1bmN0aW9uKHQpe3JldHVybiJnbC1jYW52YXMgZ2wtY2FudmFzLSIrdC5rZXkucmVwbGFjZSgiTGF5ZXIiLCIiKX0pLnN0eWxlKHtwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDowLGxlZnQ6MCxvdmVyZmxvdzoidmlzaWJsZSIsInBvaW50ZXItZXZlbnRzIjoibm9uZSJ9KSksdi5fZ2xjYW52YXMpe3YuX2dsY2FudmFzLmF0dHIoIndpZHRoIix2LndpZHRoKS5hdHRyKCJoZWlnaHQiLHYuaGVpZ2h0KTt2YXIgYT12Ll9nbGNhbnZhcy5kYXRhKClbMF0ucmVnbDtpZihhJiYoTWF0aC5mbG9vcih2LndpZHRoKSE9PWEuX2dsLmRyYXdpbmdCdWZmZXJXaWR0aHx8TWF0aC5mbG9vcih2LmhlaWdodCkhPT1hLl9nbC5kcmF3aW5nQnVmZmVySGVpZ2h0KSl7dmFyIGk9IldlYkdMIGNvbnRleHQgYnVmZmVyIGFuZCBjYW52YXMgZGltZW5zaW9ucyBkbyBub3QgbWF0Y2ggZHVlIHRvIGJyb3dzZXIvV2ViR0wgYnVnLiI7aWYoIU0pcmV0dXJuIG8ubG9nKGkrIiBDbGVhcmluZyBncmFwaCBhbmQgcGxvdHRpbmcgYWdhaW4uIiksZi5jbGVhblBsb3QoW10se30sdC5fZnVsbERhdGEsdiksZi5zdXBwbHlEZWZhdWx0cyh0KSx2PXQuX2Z1bGxMYXlvdXQsZi5kb0NhbGNkYXRhKHQpLE0rKyxlKCk7by5lcnJvcihpKX19cmV0dXJuImgiPT09di5tb2RlYmFyLm9yaWVudGF0aW9uP3YuX21vZGViYXJkaXYuc3R5bGUoImhlaWdodCIsbnVsbCkuc3R5bGUoIndpZHRoIiwiMTAwJSIpOnYuX21vZGViYXJkaXYuc3R5bGUoIndpZHRoIixudWxsKS5zdHlsZSgiaGVpZ2h0Iix2LmhlaWdodCsicHgiKSxmLnByZXZpb3VzUHJvbWlzZXModCl9LEEsZnVuY3Rpb24oKXtpZihmLmRpZE1hcmdpbkNoYW5nZSh3LHYuX3NpemUpKXJldHVybiBvLnN5bmNPckFzeW5jKFtBLFQubGF5b3V0U3R5bGVzXSx0KX1dO3kmJkUucHVzaChmdW5jdGlvbigpe2lmKGIpcmV0dXJuIG8uc3luY09yQXN5bmMoW3UuZ2V0Q29tcG9uZW50TWV0aG9kKCJzaGFwZXMiLCJjYWxjQXV0b3JhbmdlIiksdS5nZXRDb21wb25lbnRNZXRob2QoImFubm90YXRpb25zIiwiY2FsY0F1dG9yYW5nZSIpLFNdLHQpO1MoKX0pLEUucHVzaChULmxheW91dFN0eWxlcykseSYmRS5wdXNoKGZ1bmN0aW9uKCl7cmV0dXJuIGQuZHJhdyh0LGg/IiI6InJlZHJhdyIpfSksRS5wdXNoKFQuZHJhd0RhdGEsVC5maW5hbERyYXcsbSxmLmFkZExpbmtzLGYucmVob3ZlcixmLnJlZHJhZyxmLmRvQXV0b01hcmdpbixmLnByZXZpb3VzUHJvbWlzZXMpO3ZhciBDPW8uc3luY09yQXN5bmMoRSx0KTtyZXR1cm4gQyYmQy50aGVufHwoQz1Qcm9taXNlLnJlc29sdmUoKSksQy50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIEwodCksdH0pfSxyLnB1cmdlPWZ1bmN0aW9uKHQpe3ZhciBlPSh0PW8uZ2V0R3JhcGhEaXYodCkpLl9mdWxsTGF5b3V0fHx7fSxyPXQuX2Z1bGxEYXRhfHxbXTtyZXR1cm4gZi5jbGVhblBsb3QoW10se30scixlKSxmLnB1cmdlKHQpLGwucHVyZ2UodCksZS5fY29udGFpbmVyJiZlLl9jb250YWluZXIucmVtb3ZlKCksZGVsZXRlIHQuX2NvbnRleHQsdH0sci5yZWFjdD1mdW5jdGlvbih0LGUsbixhKXt2YXIgaSxsO3Q9by5nZXRHcmFwaERpdih0KSxrLmNsZWFyUHJvbWlzZVF1ZXVlKHQpO3ZhciBjPXQuX2Z1bGxEYXRhLHA9dC5fZnVsbExheW91dDtpZihvLmlzUGxvdERpdih0KSYmYyYmcCl7aWYoby5pc1BsYWluT2JqZWN0KGUpKXt2YXIgZD1lO2U9ZC5kYXRhLG49ZC5sYXlvdXQsYT1kLmNvbmZpZyxpPWQuZnJhbWVzfXZhciBnPSExO2lmKGEpe3ZhciB2PW8uZXh0ZW5kRGVlcCh7fSx0Ll9jb250ZXh0KTt0Ll9jb250ZXh0PXZvaWQgMCxPKHQsYSksZz1mdW5jdGlvbiB0KGUscil7dmFyIG47Zm9yKG4gaW4gZSlpZigiXyIhPT1uLmNoYXJBdCgwKSl7dmFyIGE9ZVtuXSxpPXJbbl07aWYoYSE9PWkpaWYoby5pc1BsYWluT2JqZWN0KGEpJiZvLmlzUGxhaW5PYmplY3QoaSkpe2lmKHQoYSxpKSlyZXR1cm4hMH1lbHNle2lmKCFBcnJheS5pc0FycmF5KGEpfHwhQXJyYXkuaXNBcnJheShpKSlyZXR1cm4hMDtpZihhLmxlbmd0aCE9PWkubGVuZ3RoKXJldHVybiEwO2Zvcih2YXIgcz0wO3M8YS5sZW5ndGg7cysrKWlmKGFbc10hPT1pW3NdKXtpZighby5pc1BsYWluT2JqZWN0KGFbc10pfHwhby5pc1BsYWluT2JqZWN0KGlbc10pKXJldHVybiEwO2lmKHQoYVtzXSxpW3NdKSlyZXR1cm4hMH19fX0odix0Ll9jb250ZXh0KX10LmRhdGE9ZXx8W10say5jbGVhbkRhdGEodC5kYXRhKSx0LmxheW91dD1ufHx7fSxrLmNsZWFuTGF5b3V0KHQubGF5b3V0KSxmdW5jdGlvbih0LGUscixuKXt2YXIgYSxpLGwsYyx1LGgsZixwLGQ9bi5fcHJlR1VJLGc9W10sdj17fTtmb3IoYSBpbiBkKXtpZih1PXJ0KGEsdHQpKXtpZihpPXUuYXR0cnx8dS5oZWFkKyIudWlyZXZpc2lvbiIsKGM9KGw9cyhuLGkpLmdldCgpKSYmbnQoaSxlKSkmJmM9PT1sJiYobnVsbD09PShoPWRbYV0pJiYoaD12b2lkIDApLG90KHA9KGY9cyhlLGEpKS5nZXQoKSxoKSkpe3ZvaWQgMD09PXAmJiJhdXRvcmFuZ2UiPT09YS5zdWJzdHIoYS5sZW5ndGgtOSkmJmcucHVzaChhLnN1YnN0cigwLGEubGVuZ3RoLTEwKSksZi5zZXQoTihzKG4sYSkuZ2V0KCkpKTtjb250aW51ZX19ZWxzZSBvLndhcm4oInVucmVjb2duaXplZCBHVUkgZWRpdDogIithKTtkZWxldGUgZFthXSwicmFuZ2VbIj09PWEuc3Vic3RyKGEubGVuZ3RoLTgsNikmJih2W2Euc3Vic3RyKDAsYS5sZW5ndGgtOSldPTEpfWZvcih2YXIgbT0wO208Zy5sZW5ndGg7bSsrKXt2YXIgeT1nW21dO2lmKHZbeV0pe3ZhciB4PXMoZSx5KS5nZXQoKTt4JiZkZWxldGUgeC5hdXRvcmFuZ2V9fXZhciBiPW4uX3RyYWNlUHJlR1VJO2Zvcih2YXIgXyBpbiBiKXt2YXIgdyxrPWJbX10sVD1udWxsO2ZvcihhIGluIGspe2lmKCFUKXt2YXIgTT1hdChfLHIpO2lmKE08MCl7ZGVsZXRlIGJbX107YnJlYWt9dmFyIEE9aXQoXyx0LCh3PXJbTV0uX2Z1bGxJbnB1dCkuaW5kZXgpO2lmKEE8MCl7ZGVsZXRlIGJbX107YnJlYWt9VD10W0FdfWlmKHU9cnQoYSxldCkpe2lmKHUuYXR0cj9jPShsPXMobix1LmF0dHIpLmdldCgpKSYmbnQodS5hdHRyLGUpOihsPXcudWlyZXZpc2lvbix2b2lkIDA9PT0oYz1ULnVpcmV2aXNpb24pJiYoYz1lLnVpcmV2aXNpb24pKSxjJiZjPT09bCYmKG51bGw9PT0oaD1rW2FdKSYmKGg9dm9pZCAwKSxvdChwPShmPXMoVCxhKSkuZ2V0KCksaCkpKXtmLnNldChOKHModyxhKS5nZXQoKSkpO2NvbnRpbnVlfX1lbHNlIG8ud2FybigidW5yZWNvZ25pemVkIEdVSSBlZGl0OiAiK2ErIiBpbiB0cmFjZSB1aWQgIitfKTtkZWxldGUga1thXX19fSh0LmRhdGEsdC5sYXlvdXQsYyxwKSxmLnN1cHBseURlZmF1bHRzKHQse3NraXBVcGRhdGVDYWxjOiEwfSk7dmFyIG09dC5fZnVsbERhdGEseT10Ll9mdWxsTGF5b3V0LHg9dm9pZCAwPT09eS5kYXRhcmV2aXNpb24sYj15LnRyYW5zaXRpb24sXz1mdW5jdGlvbih0LGUscixuLGEpe3ZhciBpPU0ubGF5b3V0RmxhZ3MoKTtyZXR1cm4gaS5hcnJheXM9e30saS5yYW5nZXNBbHRlcmVkPXt9LGkubkNoYW5nZXM9MCxpLm5DaGFuZ2VzQW5pbT0wLHN0KGUscixbXSx7Z2V0VmFsT2JqZWN0OmZ1bmN0aW9uKHQpe3JldHVybiBoLmdldExheW91dFZhbE9iamVjdChyLHQpfSxmbGFnczppLGltbXV0YWJsZTpuLHRyYW5zaXRpb246YSxnZDp0fSksKGkucGxvdHx8aS5jYWxjKSYmKGkubGF5b3V0UmVwbG90PSEwKSxhJiZpLm5DaGFuZ2VzJiZpLm5DaGFuZ2VzQW5pbSYmKGkuYW5pbT1pLm5DaGFuZ2VzPT09aS5uQ2hhbmdlc0FuaW0/ImFsbCI6InNvbWUiKSxpfSh0LHAseSx4LGIpLHc9Xy5uZXdEYXRhUmV2aXNpb24sQT1mdW5jdGlvbih0LGUscixuLGEsaSl7dmFyIG89ZS5sZW5ndGg9PT1yLmxlbmd0aDtpZighYSYmIW8pcmV0dXJue2Z1bGxSZXBsb3Q6ITAsY2FsYzohMH07dmFyIHMsbCxjPU0udHJhY2VGbGFncygpO2MuYXJyYXlzPXt9LGMubkNoYW5nZXM9MCxjLm5DaGFuZ2VzQW5pbT0wO3ZhciB1PXtnZXRWYWxPYmplY3Q6ZnVuY3Rpb24odCl7dmFyIGU9aC5nZXRUcmFjZVZhbE9iamVjdChsLHQpO3JldHVybiFsLl9tb2R1bGUuYW5pbWF0YWJsZSYmZS5hbmltJiYoZS5hbmltPSExKSxlfSxmbGFnczpjLGltbXV0YWJsZTpuLHRyYW5zaXRpb246YSxuZXdEYXRhUmV2aXNpb246aSxnZDp0fSxwPXt9O2ZvcihzPTA7czxlLmxlbmd0aDtzKyspaWYocltzXSl7aWYobD1yW3NdLl9mdWxsSW5wdXQsZi5oYXNNYWtlc0RhdGFUcmFuc2Zvcm0obCkmJihsPXJbc10pLHBbbC51aWRdKWNvbnRpbnVlO3BbbC51aWRdPTEsc3QoZVtzXS5fZnVsbElucHV0LGwsW10sdSl9cmV0dXJuKGMuY2FsY3x8Yy5wbG90KSYmKGMuZnVsbFJlcGxvdD0hMCksYSYmYy5uQ2hhbmdlcyYmYy5uQ2hhbmdlc0FuaW0mJihjLmFuaW09Yy5uQ2hhbmdlcz09PWMubkNoYW5nZXNBbmltJiZvPyJhbGwiOiJzb21lIiksY30odCxjLG0seCxiLHcpO0sodCkmJihfLmxheW91dFJlcGxvdD0hMCksQS5jYWxjfHxfLmNhbGM/dC5jYWxjZGF0YT12b2lkIDA6Zi5zdXBwbHlEZWZhdWx0c1VwZGF0ZUNhbGModC5jYWxjZGF0YSxtKTt2YXIgUz1bXTtpZihpJiYodC5fdHJhbnNpdGlvbkRhdGE9e30sZi5jcmVhdGVUcmFuc2l0aW9uRGF0YSh0KSxTLnB1c2goZnVuY3Rpb24oKXtyZXR1cm4gci5hZGRGcmFtZXModCxpKX0pKSx5LnRyYW5zaXRpb24mJiFnJiYoQS5hbmltfHxfLmFuaW0pKWYuZG9DYWxjZGF0YSh0KSxULmRvQXV0b1JhbmdlQW5kQ29uc3RyYWludHModCksUy5wdXNoKGZ1bmN0aW9uKCl7cmV0dXJuIGYudHJhbnNpdGlvbkZyb21SZWFjdCh0LEEsXyxwKX0pO2Vsc2UgaWYoQS5mdWxsUmVwbG90fHxfLmxheW91dFJlcGxvdHx8Zyl0Ll9mdWxsTGF5b3V0Ll9za2lwRGVmYXVsdHM9ITAsUy5wdXNoKHIucGxvdCk7ZWxzZXtmb3IodmFyIEUgaW4gXy5hcnJheXMpe3ZhciBDPV8uYXJyYXlzW0VdO2lmKEMubGVuZ3RoKXt2YXIgUD11LmdldENvbXBvbmVudE1ldGhvZChFLCJkcmF3T25lIik7aWYoUCE9PW8ubm9vcClmb3IodmFyIHo9MDt6PEMubGVuZ3RoO3orKylQKHQsQ1t6XSk7ZWxzZXt2YXIgST11LmdldENvbXBvbmVudE1ldGhvZChFLCJkcmF3Iik7aWYoST09PW8ubm9vcCl0aHJvdyBuZXcgRXJyb3IoImNhbm5vdCBkcmF3IGNvbXBvbmVudHM6ICIrRSk7SSh0KX19fVMucHVzaChmLnByZXZpb3VzUHJvbWlzZXMpLEEuc3R5bGUmJlMucHVzaChULmRvVHJhY2VTdHlsZSksKEEuY29sb3JiYXJzfHxfLmNvbG9yYmFycykmJlMucHVzaChULmRvQ29sb3JCYXJzKSxfLmxlZ2VuZCYmUy5wdXNoKFQuZG9MZWdlbmQpLF8ubGF5b3V0c3R5bGUmJlMucHVzaChULmxheW91dFN0eWxlcyksXy5heHJhbmdlJiZZKFMpLF8udGlja3MmJlMucHVzaChULmRvVGlja3NSZWxheW91dCksXy5tb2RlYmFyJiZTLnB1c2goVC5kb01vZGVCYXIpLF8uY2FtZXJhJiZTLnB1c2goVC5kb0NhbWVyYSksUy5wdXNoKEwpfVMucHVzaChmLnJlaG92ZXIsZi5yZWRyYWcpLChsPW8uc3luY09yQXN5bmMoUyx0KSkmJmwudGhlbnx8KGw9UHJvbWlzZS5yZXNvbHZlKHQpKX1lbHNlIGw9ci5uZXdQbG90KHQsZSxuLGEpO3JldHVybiBsLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdC5lbWl0KCJwbG90bHlfcmVhY3QiLHtkYXRhOmUsbGF5b3V0Om59KSx0fSl9LHIucmVkcmF3PWZ1bmN0aW9uKHQpe2lmKHQ9by5nZXRHcmFwaERpdih0KSwhby5pc1Bsb3REaXYodCkpdGhyb3cgbmV3IEVycm9yKCJUaGlzIGVsZW1lbnQgaXMgbm90IGEgUGxvdGx5IHBsb3Q6ICIrdCk7cmV0dXJuIGsuY2xlYW5EYXRhKHQuZGF0YSksay5jbGVhbkxheW91dCh0LmxheW91dCksdC5jYWxjZGF0YT12b2lkIDAsci5wbG90KHQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdC5lbWl0KCJwbG90bHlfcmVkcmF3IiksdH0pfSxyLnJlbGF5b3V0PUgsci5yZXN0eWxlPUIsci5zZXRQbG90Q29uZmlnPWZ1bmN0aW9uKHQpe3JldHVybiBvLmV4dGVuZEZsYXQoXyx0KX0sci51cGRhdGU9USxyLl9ndWlSZWxheW91dD0kKEgpLHIuX2d1aVJlc3R5bGU9JChCKSxyLl9ndWlVcGRhdGU9JChRKSxyLl9zdG9yZURpcmVjdEdVSUVkaXQ9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbiBpbiByKVYobixzKHQsbikuZ2V0KCkscltuXSxlKX19LHsiLi4vY29tcG9uZW50cy9jb2xvciI6NTkyLCIuLi9jb21wb25lbnRzL2RyYXdpbmciOjYxMywiLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiOjY5NCwiLi4vbGliIjo3MTcsIi4uL2xpYi9ldmVudHMiOjcwNywiLi4vbGliL3F1ZXVlIjo3MzIsIi4uL2xpYi9zdmdfdGV4dF91dGlscyI6NzQxLCIuLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NzY1LCIuLi9wbG90cy9jYXJ0ZXNpYW4vY29uc3RhbnRzIjo3NzEsIi4uL3Bsb3RzL2NhcnRlc2lhbi9ncmFwaF9pbnRlcmFjdCI6Nzc0LCIuLi9wbG90cy9jYXJ0ZXNpYW4vc2VsZWN0Ijo3ODIsIi4uL3Bsb3RzL3Bsb3RzIjo4MjYsIi4uL3Bsb3RzL3BvbGFyL2xlZ2FjeSI6ODM0LCIuLi9yZWdpc3RyeSI6ODQ2LCIuL2VkaXRfdHlwZXMiOjc0OCwiLi9oZWxwZXJzIjo3NDksIi4vbWFuYWdlX2FycmF5cyI6NzUxLCIuL3Bsb3RfY29uZmlnIjo3NTMsIi4vcGxvdF9zY2hlbWEiOjc1NCwiLi9zdWJyb3V0aW5lcyI6NzU2LGQzOjE2NSwiZmFzdC1pc251bWVyaWMiOjIyOCwiaGFzLWhvdmVyIjo0MTJ9XSw3NTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49e3N0YXRpY1Bsb3Q6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LHBsb3RseVNlcnZlclVSTDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiJodHRwczovL3Bsb3QubHkifSxlZGl0YWJsZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sZWRpdHM6e2Fubm90YXRpb25Qb3NpdGlvbjp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sYW5ub3RhdGlvblRhaWw6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LGFubm90YXRpb25UZXh0Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxheGlzVGl0bGVUZXh0Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxjb2xvcmJhclBvc2l0aW9uOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxjb2xvcmJhclRpdGxlVGV4dDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sbGVnZW5kUG9zaXRpb246e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LGxlZ2VuZFRleHQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LHNoYXBlUG9zaXRpb246e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LHRpdGxlVGV4dDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX19LGF1dG9zaXphYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxyZXNwb25zaXZlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxmaWxsRnJhbWU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LGZyYW1lTWFyZ2luczp7dmFsVHlwZToibnVtYmVyIixkZmx0OjAsbWluOjAsbWF4Oi41fSxzY3JvbGxab29tOnt2YWxUeXBlOiJmbGFnbGlzdCIsZmxhZ3M6WyJjYXJ0ZXNpYW4iLCJnbDNkIiwiZ2VvIiwibWFwYm94Il0sZXh0cmFzOlshMCwhMV0sZGZsdDoiZ2wzZCtnZW8rbWFwYm94In0sZG91YmxlQ2xpY2s6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbITEsInJlc2V0IiwiYXV0b3NpemUiLCJyZXNldCthdXRvc2l6ZSJdLGRmbHQ6InJlc2V0K2F1dG9zaXplIn0sZG91YmxlQ2xpY2tEZWxheTp7dmFsVHlwZToibnVtYmVyIixkZmx0OjMwMCxtaW46MH0sc2hvd0F4aXNEcmFnSGFuZGxlczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMH0sc2hvd0F4aXNSYW5nZUVudHJ5Qm94ZXM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITB9LHNob3dUaXBzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfSxzaG93TGluazp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sbGlua1RleHQ6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiRWRpdCBjaGFydCIsbm9CbGFuazohMH0sc2VuZERhdGE6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITB9LHNob3dTb3VyY2VzOnt2YWxUeXBlOiJhbnkiLGRmbHQ6ITF9LGRpc3BsYXlNb2RlQmFyOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJob3ZlciIsITAsITFdLGRmbHQ6ImhvdmVyIn0sc2hvd1NlbmRUb0Nsb3VkOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxzaG93RWRpdEluQ2hhcnRTdHVkaW86e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LG1vZGVCYXJCdXR0b25zVG9SZW1vdmU6e3ZhbFR5cGU6ImFueSIsZGZsdDpbXX0sbW9kZUJhckJ1dHRvbnNUb0FkZDp7dmFsVHlwZToiYW55IixkZmx0OltdfSxtb2RlQmFyQnV0dG9uczp7dmFsVHlwZToiYW55IixkZmx0OiExfSx0b0ltYWdlQnV0dG9uT3B0aW9uczp7dmFsVHlwZToiYW55IixkZmx0Ont9fSxkaXNwbGF5bG9nbzp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMH0sd2F0ZXJtYXJrOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxwbG90R2xQaXhlbFJhdGlvOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MixtaW46MSxtYXg6NH0sc2V0QmFja2dyb3VuZDp7dmFsVHlwZToiYW55IixkZmx0OiJ0cmFuc3BhcmVudCJ9LHRvcG9qc29uVVJMOnt2YWxUeXBlOiJzdHJpbmciLG5vQmxhbms6ITAsZGZsdDoiaHR0cHM6Ly9jZG4ucGxvdC5seS8ifSxtYXBib3hBY2Nlc3NUb2tlbjp7dmFsVHlwZToic3RyaW5nIixkZmx0Om51bGx9LGxvZ2dpbmc6e3ZhbFR5cGU6ImludGVnZXIiLG1pbjowLG1heDoyLGRmbHQ6MX0sbm90aWZ5T25Mb2dnaW5nOnt2YWxUeXBlOiJpbnRlZ2VyIixtaW46MCxtYXg6MixkZmx0OjB9LHF1ZXVlTGVuZ3RoOnt2YWxUeXBlOiJpbnRlZ2VyIixtaW46MCxkZmx0OjB9LGdsb2JhbFRyYW5zZm9ybXM6e3ZhbFR5cGU6ImFueSIsZGZsdDpbXX0sbG9jYWxlOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6ImVuLVVTIn0sbG9jYWxlczp7dmFsVHlwZToiYW55IixkZmx0Ont9fX0sYT17fTshZnVuY3Rpb24gdChlLHIpe2Zvcih2YXIgbiBpbiBlKXt2YXIgYT1lW25dO2EudmFsVHlwZT9yW25dPWEuZGZsdDoocltuXXx8KHJbbl09e30pLHQoYSxyW25dKSl9fShuLGEpLGUuZXhwb3J0cz17Y29uZmlnQXR0cmlidXRlczpuLGRmbHRDb25maWc6YX19LHt9XSw3NTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vcmVnaXN0cnkiKSxhPXQoIi4uL2xpYiIpLGk9dCgiLi4vcGxvdHMvYXR0cmlidXRlcyIpLG89dCgiLi4vcGxvdHMvbGF5b3V0X2F0dHJpYnV0ZXMiKSxzPXQoIi4uL3Bsb3RzL2ZyYW1lX2F0dHJpYnV0ZXMiKSxsPXQoIi4uL3Bsb3RzL2FuaW1hdGlvbl9hdHRyaWJ1dGVzIiksYz10KCIuL3Bsb3RfY29uZmlnIikuY29uZmlnQXR0cmlidXRlcyx1PXQoIi4uL3Bsb3RzL3BvbGFyL2xlZ2FjeS9hcmVhX2F0dHJpYnV0ZXMiKSxoPXQoIi4uL3Bsb3RzL3BvbGFyL2xlZ2FjeS9heGlzX2F0dHJpYnV0ZXMiKSxmPXQoIi4vZWRpdF90eXBlcyIpLHA9YS5leHRlbmRGbGF0LGQ9YS5leHRlbmREZWVwQWxsLGc9YS5pc1BsYWluT2JqZWN0LHY9YS5pc0FycmF5T3JUeXBlZEFycmF5LG09YS5uZXN0ZWRQcm9wZXJ0eSx5PWEudmFsT2JqZWN0TWV0YSx4PSJfaXNTdWJwbG90T2JqIixiPSJfaXNMaW5rZWRUb0FycmF5IixfPVt4LGIsIl9hcnJheUF0dHJSZWdleHBzIiwiX2RlcHJlY2F0ZWQiXTtmdW5jdGlvbiB3KHQsZSxyKXtpZighdClyZXR1cm4hMTtpZih0Ll9pc0xpbmtlZFRvQXJyYXkpaWYoayhlW3JdKSlyKys7ZWxzZSBpZihyPGUubGVuZ3RoKXJldHVybiExO2Zvcig7cjxlLmxlbmd0aDtyKyspe3ZhciBuPXRbZVtyXV07aWYoIWcobikpYnJlYWs7aWYodD1uLHI9PT1lLmxlbmd0aC0xKWJyZWFrO2lmKHQuX2lzTGlua2VkVG9BcnJheSl7aWYoIWsoZVsrK3JdKSlyZXR1cm4hMX1lbHNlIGlmKCJpbmZvX2FycmF5Ij09PXQudmFsVHlwZSl7dmFyIGE9ZVsrK3JdO2lmKCFrKGEpKXJldHVybiExO3ZhciBpPXQuaXRlbXM7aWYoQXJyYXkuaXNBcnJheShpKSl7aWYoYT49aS5sZW5ndGgpcmV0dXJuITE7aWYoMj09PXQuZGltZW5zaW9ucyl7aWYocisrLGUubGVuZ3RoPT09cilyZXR1cm4gdDt2YXIgbz1lW3JdO2lmKCFrKG8pKXJldHVybiExO3Q9aVthXVtvXX1lbHNlIHQ9aVthXX1lbHNlIHQ9aX19cmV0dXJuIHR9ZnVuY3Rpb24gayh0KXtyZXR1cm4gdD09PU1hdGgucm91bmQodCkmJnQ+PTB9ZnVuY3Rpb24gVCgpe3ZhciB0LGUscj17fTtmb3IodCBpbiBkKHIsbyksbi5zdWJwbG90c1JlZ2lzdHJ5KXtpZigoZT1uLnN1YnBsb3RzUmVnaXN0cnlbdF0pLmxheW91dEF0dHJpYnV0ZXMpaWYoQXJyYXkuaXNBcnJheShlLmF0dHIpKWZvcih2YXIgYT0wO2E8ZS5hdHRyLmxlbmd0aDthKyspUyhyLGUsZS5hdHRyW2FdKTtlbHNlIFMocixlLCJzdWJwbG90Ij09PWUuYXR0cj9lLm5hbWU6ZS5hdHRyKX1mb3IodCBpbiByPWZ1bmN0aW9uKHQpe3JldHVybiBwKHQse3JhZGlhbGF4aXM6aC5yYWRpYWxheGlzLGFuZ3VsYXJheGlzOmguYW5ndWxhcmF4aXN9KSxwKHQsaC5sYXlvdXQpLHR9KHIpLG4uY29tcG9uZW50c1JlZ2lzdHJ5KXt2YXIgaT0oZT1uLmNvbXBvbmVudHNSZWdpc3RyeVt0XSkuc2NoZW1hO2lmKGkmJihpLnN1YnBsb3RzfHxpLmxheW91dCkpe3ZhciBzPWkuc3VicGxvdHM7aWYocyYmcy54YXhpcyYmIXMueWF4aXMpZm9yKHZhciBsIGluIHMueGF4aXMpZGVsZXRlIHIueWF4aXNbbF19ZWxzZSJjb2xvcnNjYWxlIj09PWUubmFtZT9kKHIsZS5sYXlvdXRBdHRyaWJ1dGVzKTplLmxheW91dEF0dHJpYnV0ZXMmJkUocixlLmxheW91dEF0dHJpYnV0ZXMsZS5uYW1lKX1yZXR1cm57bGF5b3V0QXR0cmlidXRlczpBKHIpfX1mdW5jdGlvbiBNKCl7dmFyIHQ9e2ZyYW1lczpkKHt9LHMpfTtyZXR1cm4gQSh0KSx0LmZyYW1lc31mdW5jdGlvbiBBKHQpe3JldHVybiBmdW5jdGlvbih0KXtyLmNyYXdsKHQsZnVuY3Rpb24odCxlLG4pe3IuaXNWYWxPYmplY3QodCk/ImRhdGFfYXJyYXkiPT09dC52YWxUeXBlPyh0LnJvbGU9ImRhdGEiLG5bZSsic3JjIl09e3ZhbFR5cGU6InN0cmluZyIsZWRpdFR5cGU6Im5vbmUifSk6ITA9PT10LmFycmF5T2smJihuW2UrInNyYyJdPXt2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJub25lIn0pOmcodCkmJih0LnJvbGU9Im9iamVjdCIpfSl9KHQpLGZ1bmN0aW9uKHQpe3IuY3Jhd2wodCxmdW5jdGlvbih0LGUscil7aWYoIXQpcmV0dXJuO3ZhciBuPXRbYl07aWYoIW4pcmV0dXJuO2RlbGV0ZSB0W2JdLHJbZV09e2l0ZW1zOnt9fSxyW2VdLml0ZW1zW25dPXQscltlXS5yb2xlPSJvYmplY3QifSl9KHQpLGZ1bmN0aW9uKHQpeyFmdW5jdGlvbiB0KGUpe2Zvcih2YXIgciBpbiBlKWlmKGcoZVtyXSkpdChlW3JdKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoZVtyXSkpZm9yKHZhciBuPTA7bjxlW3JdLmxlbmd0aDtuKyspdChlW3JdW25dKTtlbHNlIGVbcl1pbnN0YW5jZW9mIFJlZ0V4cCYmKGVbcl09ZVtyXS50b1N0cmluZygpKX0odCl9KHQpLHR9ZnVuY3Rpb24gUyh0LGUscil7dmFyIG49bSh0LHIpLGE9ZCh7fSxlLmxheW91dEF0dHJpYnV0ZXMpO2FbeF09ITAsbi5zZXQoYSl9ZnVuY3Rpb24gRSh0LGUscil7dmFyIG49bSh0LHIpO24uc2V0KGQobi5nZXQoKXx8e30sZSkpfXIuSVNfU1VCUExPVF9PQko9eCxyLklTX0xJTktFRF9UT19BUlJBWT1iLHIuREVQUkVDQVRFRD0iX2RlcHJlY2F0ZWQiLHIuVU5ERVJTQ09SRV9BVFRSUz1fLHIuZ2V0PWZ1bmN0aW9uKCl7dmFyIHQ9e307bi5hbGxUeXBlcy5jb25jYXQoImFyZWEiKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3RbZV09ZnVuY3Rpb24odCl7dmFyIGUsYTsiYXJlYSI9PT10PyhlPXthdHRyaWJ1dGVzOnV9LGE9e30pOihlPW4ubW9kdWxlc1t0XS5fbW9kdWxlLGE9ZS5iYXNlUGxvdE1vZHVsZSk7dmFyIG89e3R5cGU6bnVsbH0scz1kKHt9LGkpLGw9ZCh7fSxlLmF0dHJpYnV0ZXMpO3IuY3Jhd2wobCxmdW5jdGlvbih0LGUscixuLGEpe20ocyxhKS5zZXQodm9pZCAwKSx2b2lkIDA9PT10JiZtKGwsYSkuc2V0KHZvaWQgMCl9KSxkKG8scyksbi50cmFjZUlzKHQsIm5vT3BhY2l0eSIpJiZkZWxldGUgby5vcGFjaXR5O24udHJhY2VJcyh0LCJzaG93TGVnZW5kIil8fChkZWxldGUgby5zaG93bGVnZW5kLGRlbGV0ZSBvLmxlZ2VuZGdyb3VwKTtuLnRyYWNlSXModCwibm9Ib3ZlciIpJiYoZGVsZXRlIG8uaG92ZXJpbmZvLGRlbGV0ZSBvLmhvdmVybGFiZWwpO2Uuc2VsZWN0UG9pbnRzfHxkZWxldGUgby5zZWxlY3RlZHBvaW50cztkKG8sbCksYS5hdHRyaWJ1dGVzJiZkKG8sYS5hdHRyaWJ1dGVzKTtvLnR5cGU9dDt2YXIgYz17bWV0YTplLm1ldGF8fHt9LGNhdGVnb3JpZXM6ZS5jYXRlZ29yaWVzfHx7fSxhbmltYXRhYmxlOkJvb2xlYW4oZS5hbmltYXRhYmxlKSx0eXBlOnQsYXR0cmlidXRlczpBKG8pfTtpZihlLmxheW91dEF0dHJpYnV0ZXMpe3ZhciBoPXt9O2QoaCxlLmxheW91dEF0dHJpYnV0ZXMpLGMubGF5b3V0QXR0cmlidXRlcz1BKGgpfWUuYW5pbWF0YWJsZXx8ci5jcmF3bChjLGZ1bmN0aW9uKHQpe3IuaXNWYWxPYmplY3QodCkmJiJhbmltImluIHQmJmRlbGV0ZSB0LmFuaW19KTtyZXR1cm4gY30oZSl9KTt2YXIgZT17fTtyZXR1cm4gT2JqZWN0LmtleXMobi50cmFuc2Zvcm1zUmVnaXN0cnkpLmZvckVhY2goZnVuY3Rpb24odCl7ZVt0XT1mdW5jdGlvbih0KXt2YXIgZT1uLnRyYW5zZm9ybXNSZWdpc3RyeVt0XSxyPWQoe30sZS5hdHRyaWJ1dGVzKTtyZXR1cm4gT2JqZWN0LmtleXMobi5jb21wb25lbnRzUmVnaXN0cnkpLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIGE9bi5jb21wb25lbnRzUmVnaXN0cnlbZV07YS5zY2hlbWEmJmEuc2NoZW1hLnRyYW5zZm9ybXMmJmEuc2NoZW1hLnRyYW5zZm9ybXNbdF0mJk9iamVjdC5rZXlzKGEuc2NoZW1hLnRyYW5zZm9ybXNbdF0pLmZvckVhY2goZnVuY3Rpb24oZSl7RShyLGEuc2NoZW1hLnRyYW5zZm9ybXNbdF1bZV0sZSl9KX0pLHthdHRyaWJ1dGVzOkEocil9fSh0KX0pLHtkZWZzOnt2YWxPYmplY3RzOnksbWV0YUtleXM6Xy5jb25jYXQoWyJkZXNjcmlwdGlvbiIsInJvbGUiLCJlZGl0VHlwZSIsImltcGxpZWRFZGl0cyJdKSxlZGl0VHlwZTp7dHJhY2VzOmYudHJhY2VzLGxheW91dDpmLmxheW91dH0saW1wbGllZEVkaXRzOnt9fSx0cmFjZXM6dCxsYXlvdXQ6VCgpLHRyYW5zZm9ybXM6ZSxmcmFtZXM6TSgpLGFuaW1hdGlvbjpBKGwpLGNvbmZpZzpBKGMpfX0sci5jcmF3bD1mdW5jdGlvbih0LGUsbixhKXt2YXIgaT1ufHwwO2E9YXx8IiIsT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgbz10W25dO2lmKC0xPT09Xy5pbmRleE9mKG4pKXt2YXIgcz0oYT9hKyIuIjoiIikrbjtlKG8sbix0LGkscyksci5pc1ZhbE9iamVjdChvKXx8ZyhvKSYmImltcGxpZWRFZGl0cyIhPT1uJiZyLmNyYXdsKG8sZSxpKzEscyl9fSl9LHIuaXNWYWxPYmplY3Q9ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnZvaWQgMCE9PXQudmFsVHlwZX0sci5maW5kQXJyYXlBdHRyaWJ1dGVzPWZ1bmN0aW9uKHQpe3ZhciBlLG4sYT1bXSxvPVtdLHM9W107ZnVuY3Rpb24gbCh0LHIsaSxsKXtvPW8uc2xpY2UoMCxsKS5jb25jYXQoW3JdKSxzPXMuc2xpY2UoMCxsKS5jb25jYXQoW3QmJnQuX2lzTGlua2VkVG9BcnJheV0pLHQmJigiZGF0YV9hcnJheSI9PT10LnZhbFR5cGV8fCEwPT09dC5hcnJheU9rKSYmISgiY29sb3JiYXIiPT09b1tsLTFdJiYoInRpY2t0ZXh0Ij09PXJ8fCJ0aWNrdmFscyI9PT1yKSkmJmZ1bmN0aW9uIHQoZSxyLGkpe3ZhciBsPWVbb1tyXV07dmFyIGM9aStvW3JdO2lmKHI9PT1vLmxlbmd0aC0xKXYobCkmJmEucHVzaChuK2MpO2Vsc2UgaWYoc1tyXSl7aWYoQXJyYXkuaXNBcnJheShsKSlmb3IodmFyIHU9MDt1PGwubGVuZ3RoO3UrKylnKGxbdV0pJiZ0KGxbdV0scisxLGMrIlsiK3UrIl0uIil9ZWxzZSBnKGwpJiZ0KGwscisxLGMrIi4iKX0oZSwwLCIiKX1lPXQsbj0iIixyLmNyYXdsKGksbCksdC5fbW9kdWxlJiZ0Ll9tb2R1bGUuYXR0cmlidXRlcyYmci5jcmF3bCh0Ll9tb2R1bGUuYXR0cmlidXRlcyxsKTt2YXIgYz10LnRyYW5zZm9ybXM7aWYoYylmb3IodmFyIHU9MDt1PGMubGVuZ3RoO3UrKyl7dmFyIGg9Y1t1XSxmPWguX21vZHVsZTtmJiYobj0idHJhbnNmb3Jtc1siK3UrIl0uIixlPWgsci5jcmF3bChmLmF0dHJpYnV0ZXMsbCkpfXJldHVybiBhfSxyLmdldFRyYWNlVmFsT2JqZWN0PWZ1bmN0aW9uKHQsZSl7dmFyIHIsYSxvPWVbMF0scz0xO2lmKCJ0cmFuc2Zvcm1zIj09PW8pe2lmKDE9PT1lLmxlbmd0aClyZXR1cm4gaS50cmFuc2Zvcm1zO3ZhciBsPXQudHJhbnNmb3JtcztpZighQXJyYXkuaXNBcnJheShsKXx8IWwubGVuZ3RoKXJldHVybiExO3ZhciBjPWVbMV07aWYoIWsoYyl8fGM+PWwubGVuZ3RoKXJldHVybiExO2E9KHI9KG4udHJhbnNmb3Jtc1JlZ2lzdHJ5W2xbY10udHlwZV18fHt9KS5hdHRyaWJ1dGVzKSYmcltlWzJdXSxzPTN9ZWxzZSBpZigiYXJlYSI9PT10LnR5cGUpYT11W29dO2Vsc2V7dmFyIGg9dC5fbW9kdWxlO2lmKGh8fChoPShuLm1vZHVsZXNbdC50eXBlfHxpLnR5cGUuZGZsdF18fHt9KS5fbW9kdWxlKSwhaClyZXR1cm4hMTtpZighKGE9KHI9aC5hdHRyaWJ1dGVzKSYmcltvXSkpe3ZhciBmPWguYmFzZVBsb3RNb2R1bGU7ZiYmZi5hdHRyaWJ1dGVzJiYoYT1mLmF0dHJpYnV0ZXNbb10pfWF8fChhPWlbb10pfXJldHVybiB3KGEsZSxzKX0sci5nZXRMYXlvdXRWYWxPYmplY3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdyhmdW5jdGlvbih0LGUpe3ZhciByLGEsaSxzLGw9dC5fYmFzZVBsb3RNb2R1bGVzO2lmKGwpe3ZhciBjO2ZvcihyPTA7cjxsLmxlbmd0aDtyKyspe2lmKChpPWxbcl0pLmF0dHJSZWdleCYmaS5hdHRyUmVnZXgudGVzdChlKSl7aWYoaS5sYXlvdXRBdHRyT3ZlcnJpZGVzKXJldHVybiBpLmxheW91dEF0dHJPdmVycmlkZXM7IWMmJmkubGF5b3V0QXR0cmlidXRlcyYmKGM9aS5sYXlvdXRBdHRyaWJ1dGVzKX12YXIgdT1pLmJhc2VMYXlvdXRBdHRyT3ZlcnJpZGVzO2lmKHUmJmUgaW4gdSlyZXR1cm4gdVtlXX1pZihjKXJldHVybiBjfXZhciBmPXQuX21vZHVsZXM7aWYoZilmb3Iocj0wO3I8Zi5sZW5ndGg7cisrKWlmKChzPWZbcl0ubGF5b3V0QXR0cmlidXRlcykmJmUgaW4gcylyZXR1cm4gc1tlXTtmb3IoYSBpbiBuLmNvbXBvbmVudHNSZWdpc3RyeSl7aWYoImNvbG9yc2NhbGUiPT09KGk9bi5jb21wb25lbnRzUmVnaXN0cnlbYV0pLm5hbWUmJjA9PT1lLmluZGV4T2YoImNvbG9yYXhpcyIpKXJldHVybiBpLmxheW91dEF0dHJpYnV0ZXNbZV07aWYoIWkuc2NoZW1hJiZlPT09aS5uYW1lKXJldHVybiBpLmxheW91dEF0dHJpYnV0ZXN9aWYoZSBpbiBvKXJldHVybiBvW2VdO2lmKCJyYWRpYWxheGlzIj09PWV8fCJhbmd1bGFyYXhpcyI9PT1lKXJldHVybiBoW2VdO3JldHVybiBoLmxheW91dFtlXXx8ITF9KHQsZVswXSksZSwxKX19LHsiLi4vbGliIjo3MTcsIi4uL3Bsb3RzL2FuaW1hdGlvbl9hdHRyaWJ1dGVzIjo3NjAsIi4uL3Bsb3RzL2F0dHJpYnV0ZXMiOjc2MiwiLi4vcGxvdHMvZnJhbWVfYXR0cmlidXRlcyI6NzkyLCIuLi9wbG90cy9sYXlvdXRfYXR0cmlidXRlcyI6ODE3LCIuLi9wbG90cy9wb2xhci9sZWdhY3kvYXJlYV9hdHRyaWJ1dGVzIjo4MzIsIi4uL3Bsb3RzL3BvbGFyL2xlZ2FjeS9heGlzX2F0dHJpYnV0ZXMiOjgzMywiLi4vcmVnaXN0cnkiOjg0NiwiLi9lZGl0X3R5cGVzIjo3NDgsIi4vcGxvdF9jb25maWciOjc1M31dLDc1NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9saWIiKSxhPXQoIi4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxpPSJ0ZW1wbGF0ZWl0ZW1uYW1lIixvPXtuYW1lOnt2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJub25lIn19O2Z1bmN0aW9uIHModCl7cmV0dXJuIHQmJiJzdHJpbmciPT10eXBlb2YgdH1mdW5jdGlvbiBsKHQpe3ZhciBlPXQubGVuZ3RoLTE7cmV0dXJuInMiIT09dC5jaGFyQXQoZSkmJm4ud2FybigiYmFkIGFyZ3VtZW50IHRvIGFycmF5RGVmYXVsdEtleTogIit0KSx0LnN1YnN0cigwLHQubGVuZ3RoLTEpKyJkZWZhdWx0cyJ9b1tpXT17dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToiY2FsYyJ9LHIudGVtcGxhdGVkQXJyYXk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5faXNMaW5rZWRUb0FycmF5PXQsZS5uYW1lPW8ubmFtZSxlW2ldPW9baV0sZX0sci50cmFjZVRlbXBsYXRlcj1mdW5jdGlvbih0KXt2YXIgZSxyLGk9e307Zm9yKGUgaW4gdClyPXRbZV0sQXJyYXkuaXNBcnJheShyKSYmci5sZW5ndGgmJihpW2VdPTApO3JldHVybntuZXdUcmFjZTpmdW5jdGlvbihvKXt2YXIgcz17dHlwZTplPW4uY29lcmNlKG8se30sYSwidHlwZSIpLF90ZW1wbGF0ZTpudWxsfTtpZihlIGluIGkpe3I9dFtlXTt2YXIgbD1pW2VdJXIubGVuZ3RoO2lbZV0rKyxzLl90ZW1wbGF0ZT1yW2xdfXJldHVybiBzfX19LHIubmV3Q29udGFpbmVyPWZ1bmN0aW9uKHQsZSxyKXt2YXIgYT10Ll90ZW1wbGF0ZSxpPWEmJihhW2VdfHxyJiZhW3JdKTtyZXR1cm4gbi5pc1BsYWluT2JqZWN0KGkpfHwoaT1udWxsKSx0W2VdPXtfdGVtcGxhdGU6aX19LHIuYXJyYXlUZW1wbGF0ZXI9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQuX3RlbXBsYXRlLGE9biYmbltsKGUpXSxvPW4mJm5bZV07QXJyYXkuaXNBcnJheShvKSYmby5sZW5ndGh8fChvPVtdKTt2YXIgYz17fTtyZXR1cm57bmV3SXRlbTpmdW5jdGlvbih0KXt2YXIgZT17bmFtZTp0Lm5hbWUsX2lucHV0OnR9LG49ZVtpXT10W2ldO2lmKCFzKG4pKXJldHVybiBlLl90ZW1wbGF0ZT1hLGU7Zm9yKHZhciBsPTA7bDxvLmxlbmd0aDtsKyspe3ZhciB1PW9bbF07aWYodS5uYW1lPT09bilyZXR1cm4gY1tuXT0xLGUuX3RlbXBsYXRlPXUsZX1yZXR1cm4gZVtyXT10W3JdfHwhMSxlLl90ZW1wbGF0ZT0hMSxlfSxkZWZhdWx0SXRlbXM6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8by5sZW5ndGg7ZSsrKXt2YXIgcj1vW2VdLG49ci5uYW1lO2lmKHMobikmJiFjW25dKXt2YXIgYT17X3RlbXBsYXRlOnIsbmFtZTpuLF9pbnB1dDp7X3RlbXBsYXRlaXRlbW5hbWU6bn19O2FbaV09cltpXSx0LnB1c2goYSksY1tuXT0xfX1yZXR1cm4gdH19fSxyLmFycmF5RGVmYXVsdEtleT1sLHIuYXJyYXlFZGl0b3I9ZnVuY3Rpb24odCxlLHIpe3ZhciBhPShuLm5lc3RlZFByb3BlcnR5KHQsZSkuZ2V0KCl8fFtdKS5sZW5ndGgsbz1yLl9pbmRleCxzPW8+PWEmJihyLl9pbnB1dHx8e30pLl90ZW1wbGF0ZWl0ZW1uYW1lO3MmJihvPWEpO3ZhciBsLGM9ZSsiWyIrbysiXSI7ZnVuY3Rpb24gdSgpe2w9e30scyYmKGxbY109e30sbFtjXVtpXT1zKX1mdW5jdGlvbiBoKHQsZSl7cz9uLm5lc3RlZFByb3BlcnR5KGxbY10sdCkuc2V0KGUpOmxbYysiLiIrdF09ZX1mdW5jdGlvbiBmKCl7dmFyIHQ9bDtyZXR1cm4gdSgpLHR9cmV0dXJuIHUoKSx7bW9kaWZ5QmFzZTpmdW5jdGlvbih0LGUpe2xbdF09ZX0sbW9kaWZ5SXRlbTpoLGdldFVwZGF0ZU9iajpmLGFwcGx5VXBkYXRlOmZ1bmN0aW9uKGUscil7ZSYmaChlLHIpO3ZhciBhPWYoKTtmb3IodmFyIGkgaW4gYSluLm5lc3RlZFByb3BlcnR5KHQsaSkuc2V0KGFbaV0pfX19fSx7Ii4uL2xpYiI6NzE3LCIuLi9wbG90cy9hdHRyaWJ1dGVzIjo3NjJ9XSw3NTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxhPXQoIi4uL3JlZ2lzdHJ5IiksaT10KCIuLi9wbG90cy9wbG90cyIpLG89dCgiLi4vbGliIikscz10KCIuLi9saWIvY2xlYXJfZ2xfY2FudmFzZXMiKSxsPXQoIi4uL2NvbXBvbmVudHMvY29sb3IiKSxjPXQoIi4uL2NvbXBvbmVudHMvZHJhd2luZyIpLHU9dCgiLi4vY29tcG9uZW50cy90aXRsZXMiKSxoPXQoIi4uL2NvbXBvbmVudHMvbW9kZWJhciIpLGY9dCgiLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxwPXQoIi4uL2NvbnN0YW50cy9hbGlnbm1lbnQiKSxkPXQoIi4uL3Bsb3RzL2NhcnRlc2lhbi9jb25zdHJhaW50cyIpLGc9ZC5lbmZvcmNlLHY9ZC5jbGVhbixtPXQoIi4uL3Bsb3RzL2NhcnRlc2lhbi9hdXRvcmFuZ2UiKS5kb0F1dG9SYW5nZSx5PSJzdGFydCIseD0ibWlkZGxlIixiPSJlbmQiO2Z1bmN0aW9uIF8odCxlLHIpe2Zvcih2YXIgbj0wO248ci5sZW5ndGg7bisrKXt2YXIgYT1yW25dWzBdLGk9cltuXVsxXTtpZighKGFbMF0+PXRbMV18fGFbMV08PXRbMF0pJiYoaVswXTxlWzFdJiZpWzFdPmVbMF0pKXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIHcodCl7dmFyIGUsYSxzLHUsZCxnLHY9dC5fZnVsbExheW91dCxtPXYuX3NpemUseT1tLnAseD1mLmxpc3QodCwiIiwhMCk7aWYodi5fcGFwZXJkaXYuc3R5bGUoe3dpZHRoOnQuX2NvbnRleHQucmVzcG9uc2l2ZSYmdi5hdXRvc2l6ZSYmIXQuX2NvbnRleHQuX2hhc1plcm9XaWR0aCYmIXQubGF5b3V0LndpZHRoPyIxMDAlIjp2LndpZHRoKyJweCIsaGVpZ2h0OnQuX2NvbnRleHQucmVzcG9uc2l2ZSYmdi5hdXRvc2l6ZSYmIXQuX2NvbnRleHQuX2hhc1plcm9IZWlnaHQmJiF0LmxheW91dC5oZWlnaHQ/IjEwMCUiOnYuaGVpZ2h0KyJweCJ9KS5zZWxlY3RBbGwoIi5tYWluLXN2ZyIpLmNhbGwoYy5zZXRTaXplLHYud2lkdGgsdi5oZWlnaHQpLHQuX2NvbnRleHQuc2V0QmFja2dyb3VuZCh0LHYucGFwZXJfYmdjb2xvciksci5kcmF3TWFpblRpdGxlKHQpLGgubWFuYWdlKHQpLCF2Ll9oYXMoImNhcnRlc2lhbiIpKXJldHVybiBpLnByZXZpb3VzUHJvbWlzZXModCk7ZnVuY3Rpb24gYih0LGUscil7dmFyIG49dC5fbHcvMjtyZXR1cm4ieCI9PT10Ll9pZC5jaGFyQXQoMCk/ZT8idG9wIj09PXI/ZS5fb2Zmc2V0LXktbjplLl9vZmZzZXQrZS5fbGVuZ3RoK3krbjptLnQrbS5oKigxLSh0LnBvc2l0aW9ufHwwKSkrbiUxOmU/InJpZ2h0Ij09PXI/ZS5fb2Zmc2V0K2UuX2xlbmd0aCt5K246ZS5fb2Zmc2V0LXktbjptLmwrbS53Kih0LnBvc2l0aW9ufHwwKStuJTF9Zm9yKGU9MDtlPHgubGVuZ3RoO2UrKyl7dmFyIHc9KHU9eFtlXSkuX2FuY2hvckF4aXM7dS5fbGluZXBvc2l0aW9ucz17fSx1Ll9sdz1jLmNyaXNwUm91bmQodCx1LmxpbmV3aWR0aCwxKSx1Ll9tYWluTGluZVBvc2l0aW9uPWIodSx3LHUuc2lkZSksdS5fbWFpbk1pcnJvclBvc2l0aW9uPXUubWlycm9yJiZ3P2IodSx3LHAuT1BQT1NJVEVfU0lERVt1LnNpZGVdKTpudWxsfXZhciBUPVtdLEE9W10sUz1bXSxFPTE9PT1sLm9wYWNpdHkodi5wYXBlcl9iZ2NvbG9yKSYmMT09PWwub3BhY2l0eSh2LnBsb3RfYmdjb2xvcikmJnYucGFwZXJfYmdjb2xvcj09PXYucGxvdF9iZ2NvbG9yO2ZvcihhIGluIHYuX3Bsb3RzKWlmKChzPXYuX3Bsb3RzW2FdKS5tYWlucGxvdClzLmJnJiZzLmJnLnJlbW92ZSgpLHMuYmc9dm9pZCAwO2Vsc2V7dmFyIEw9cy54YXhpcy5kb21haW4sQz1zLnlheGlzLmRvbWFpbixQPXMucGxvdGdyb3VwO2lmKF8oTCxDLFMpKXt2YXIgTz1QLm5vZGUoKSx6PXMuYmc9by5lbnN1cmVTaW5nbGUoUCwicmVjdCIsImJnIik7Ty5pbnNlcnRCZWZvcmUoei5ub2RlKCksTy5jaGlsZE5vZGVzWzBdKSxBLnB1c2goYSl9ZWxzZSBQLnNlbGVjdCgicmVjdC5iZyIpLnJlbW92ZSgpLFMucHVzaChbTCxDXSksRXx8KFQucHVzaChhKSxBLnB1c2goYSkpfXZhciBJLEQsUixGLEIsTixqLFYsVSxxLEgsRyxZLFc9di5fYmdMYXllci5zZWxlY3RBbGwoIi5iZyIpLmRhdGEoVCk7Zm9yKFcuZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5jbGFzc2VkKCJiZyIsITApLFcuZXhpdCgpLnJlbW92ZSgpLFcuZWFjaChmdW5jdGlvbih0KXt2Ll9wbG90c1t0XS5iZz1uLnNlbGVjdCh0aGlzKX0pLGU9MDtlPEEubGVuZ3RoO2UrKylzPXYuX3Bsb3RzW0FbZV1dLGQ9cy54YXhpcyxnPXMueWF4aXMscy5iZyYmcy5iZy5jYWxsKGMuc2V0UmVjdCxkLl9vZmZzZXQteSxnLl9vZmZzZXQteSxkLl9sZW5ndGgrMip5LGcuX2xlbmd0aCsyKnkpLmNhbGwobC5maWxsLHYucGxvdF9iZ2NvbG9yKS5zdHlsZSgic3Ryb2tlLXdpZHRoIiwwKTtpZighdi5faGFzT25seUxhcmdlU3Bsb21zKWZvcihhIGluIHYuX3Bsb3RzKXtzPXYuX3Bsb3RzW2FdLGQ9cy54YXhpcyxnPXMueWF4aXM7dmFyIFgsWixKPXMuY2xpcElkPSJjbGlwIit2Ll91aWQrYSsicGxvdCIsSz1vLmVuc3VyZVNpbmdsZUJ5SWQodi5fY2xpcHMsImNsaXBQYXRoIixKLGZ1bmN0aW9uKHQpe3QuY2xhc3NlZCgicGxvdGNsaXAiLCEwKS5hcHBlbmQoInJlY3QiKX0pO3MuY2xpcFJlY3Q9Sy5zZWxlY3QoInJlY3QiKS5hdHRyKHt3aWR0aDpkLl9sZW5ndGgsaGVpZ2h0OmcuX2xlbmd0aH0pLGMuc2V0VHJhbnNsYXRlKHMucGxvdCxkLl9vZmZzZXQsZy5fb2Zmc2V0KSxzLl9oYXNDbGlwT25BeGlzRmFsc2U/KFg9bnVsbCxaPUopOihYPUosWj1udWxsKSxjLnNldENsaXBVcmwocy5wbG90LFgsdCkscy5sYXllckNsaXBJZD1afWZ1bmN0aW9uIFEodCl7cmV0dXJuIk0iK0krIiwiK3QrIkgiK0R9ZnVuY3Rpb24gJCh0KXtyZXR1cm4iTSIrZC5fb2Zmc2V0KyIsIit0KyJoIitkLl9sZW5ndGh9ZnVuY3Rpb24gdHQodCl7cmV0dXJuIk0iK3QrIiwiK1YrIlYiK2p9ZnVuY3Rpb24gZXQodCl7cmV0dXJuIk0iK3QrIiwiK2cuX29mZnNldCsidiIrZy5fbGVuZ3RofWZ1bmN0aW9uIHJ0KHQsZSxyKXtpZighdC5zaG93bGluZXx8YSE9PXQuX21haW5TdWJwbG90KXJldHVybiIiO2lmKCF0Ll9hbmNob3JBeGlzKXJldHVybiByKHQuX21haW5MaW5lUG9zaXRpb24pO3ZhciBuPWUodC5fbWFpbkxpbmVQb3NpdGlvbik7cmV0dXJuIHQubWlycm9yJiYobis9ZSh0Ll9tYWluTWlycm9yUG9zaXRpb24pKSxufWZvcihhIGluIHYuX3Bsb3RzKXtzPXYuX3Bsb3RzW2FdLGQ9cy54YXhpcyxnPXMueWF4aXM7dmFyIG50PSJNMCwwIjtrKGQsYSkmJihCPU0oZCwibGVmdCIsZyx4KSxJPWQuX29mZnNldC0oQj95K0I6MCksTj1NKGQsInJpZ2h0IixnLHgpLEQ9ZC5fb2Zmc2V0K2QuX2xlbmd0aCsoTj95K046MCksUj1iKGQsZywiYm90dG9tIiksRj1iKGQsZywidG9wIiksIShZPSFkLl9hbmNob3JBeGlzfHxhIT09ZC5fbWFpblN1YnBsb3QpfHwiYWxsdGlja3MiIT09ZC5taXJyb3ImJiJhbGwiIT09ZC5taXJyb3J8fChkLl9saW5lcG9zaXRpb25zW2FdPVtSLEZdKSxudD1ydChkLFEsJCksWSYmZC5zaG93bGluZSYmKCJhbGwiPT09ZC5taXJyb3J8fCJhbGx0aWNrcyI9PT1kLm1pcnJvcikmJihudCs9UShSKStRKEYpKSxzLnhsaW5lcy5zdHlsZSgic3Ryb2tlLXdpZHRoIixkLl9sdysicHgiKS5jYWxsKGwuc3Ryb2tlLGQuc2hvd2xpbmU/ZC5saW5lY29sb3I6InJnYmEoMCwwLDAsMCkiKSkscy54bGluZXMuYXR0cigiZCIsbnQpO3ZhciBhdD0iTTAsMCI7ayhnLGEpJiYoSD1NKGcsImJvdHRvbSIsZCx4KSxqPWcuX29mZnNldCtnLl9sZW5ndGgrKEg/eTowKSxHPU0oZywidG9wIixkLHgpLFY9Zy5fb2Zmc2V0LShHP3k6MCksVT1iKGcsZCwibGVmdCIpLHE9YihnLGQsInJpZ2h0IiksIShZPSFnLl9hbmNob3JBeGlzfHxhIT09Zy5fbWFpblN1YnBsb3QpfHwiYWxsdGlja3MiIT09Zy5taXJyb3ImJiJhbGwiIT09Zy5taXJyb3J8fChnLl9saW5lcG9zaXRpb25zW2FdPVtVLHFdKSxhdD1ydChnLHR0LGV0KSxZJiZnLnNob3dsaW5lJiYoImFsbCI9PT1nLm1pcnJvcnx8ImFsbHRpY2tzIj09PWcubWlycm9yKSYmKGF0Kz10dChVKSt0dChxKSkscy55bGluZXMuc3R5bGUoInN0cm9rZS13aWR0aCIsZy5fbHcrInB4IikuY2FsbChsLnN0cm9rZSxnLnNob3dsaW5lP2cubGluZWNvbG9yOiJyZ2JhKDAsMCwwLDApIikpLHMueWxpbmVzLmF0dHIoImQiLGF0KX1yZXR1cm4gZi5tYWtlQ2xpcFBhdGhzKHQpLGkucHJldmlvdXNQcm9taXNlcyh0KX1mdW5jdGlvbiBrKHQsZSl7cmV0dXJuKHQudGlja3N8fHQuc2hvd2xpbmUpJiYoZT09PXQuX21haW5TdWJwbG90fHwiYWxsIj09PXQubWlycm9yfHwiYWxsdGlja3MiPT09dC5taXJyb3IpfWZ1bmN0aW9uIFQodCxlLHIpe2lmKCFyLnNob3dsaW5lfHwhci5fbHcpcmV0dXJuITE7aWYoImFsbCI9PT1yLm1pcnJvcnx8ImFsbHRpY2tzIj09PXIubWlycm9yKXJldHVybiEwO3ZhciBuPXIuX2FuY2hvckF4aXM7aWYoIW4pcmV0dXJuITE7dmFyIGE9cC5GUk9NX0JMW2VdO3JldHVybiByLnNpZGU9PT1lP24uZG9tYWluW2FdPT09dC5kb21haW5bYV06ci5taXJyb3ImJm4uZG9tYWluWzEtYV09PT10LmRvbWFpblsxLWFdfWZ1bmN0aW9uIE0odCxlLHIsbil7aWYoVCh0LGUscikpcmV0dXJuIHIuX2x3O2Zvcih2YXIgYT0wO2E8bi5sZW5ndGg7YSsrKXt2YXIgaT1uW2FdO2lmKGkuX21haW5BeGlzPT09ci5fbWFpbkF4aXMmJlQodCxlLGkpKXJldHVybiBpLl9sd31yZXR1cm4gMH1mdW5jdGlvbiBBKHQsZSl7dmFyIHI9dC50aXRsZSxuPXQuX3NpemUsYT0wO3N3aXRjaChlPT09eT9hPXIucGFkLmw6ZT09PWImJihhPS1yLnBhZC5yKSxyLnhyZWYpe2Nhc2UicGFwZXIiOnJldHVybiBuLmwrbi53KnIueCthO2Nhc2UiY29udGFpbmVyIjpkZWZhdWx0OnJldHVybiB0LndpZHRoKnIueCthfX1mdW5jdGlvbiBTKHQsZSl7dmFyIHI9dC50aXRsZSxuPXQuX3NpemUsYT0wO2lmKCIwZW0iIT09ZSYmZT9lPT09cC5DQVBfU0hJRlQrImVtIiYmKGE9ci5wYWQudCk6YT0tci5wYWQuYiwiYXV0byI9PT1yLnkpcmV0dXJuIG4udC8yO3N3aXRjaChyLnlyZWYpe2Nhc2UicGFwZXIiOnJldHVybiBuLnQrbi5oLW4uaCpyLnkrYTtjYXNlImNvbnRhaW5lciI6ZGVmYXVsdDpyZXR1cm4gdC5oZWlnaHQtdC5oZWlnaHQqci55K2F9fXIubGF5b3V0U3R5bGVzPWZ1bmN0aW9uKHQpe3JldHVybiBvLnN5bmNPckFzeW5jKFtpLmRvQXV0b01hcmdpbix3XSx0KX0sci5kcmF3TWFpblRpdGxlPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQscj1mdW5jdGlvbih0KXt2YXIgZT10LnRpdGxlLHI9eDtvLmlzUmlnaHRBbmNob3IoZSk/cj1iOm8uaXNMZWZ0QW5jaG9yKGUpJiYocj15KTtyZXR1cm4gcn0oZSksbj1mdW5jdGlvbih0KXt2YXIgZT10LnRpdGxlLHI9IjBlbSI7by5pc1RvcEFuY2hvcihlKT9yPXAuQ0FQX1NISUZUKyJlbSI6by5pc01pZGRsZUFuY2hvcihlKSYmKHI9cC5NSURfU0hJRlQrImVtIik7cmV0dXJuIHJ9KGUpO3UuZHJhdyh0LCJndGl0bGUiLHtwcm9wQ29udGFpbmVyOmUscHJvcE5hbWU6InRpdGxlLnRleHQiLHBsYWNlaG9sZGVyOmUuX2RmbHRUaXRsZS5wbG90LGF0dHJpYnV0ZXM6e3g6QShlLHIpLHk6UyhlLG4pLCJ0ZXh0LWFuY2hvciI6cixkeTpufX0pfSxyLmRvVHJhY2VTdHlsZT1mdW5jdGlvbih0KXt2YXIgZSxuPXQuY2FsY2RhdGEsbz1bXTtmb3IoZT0wO2U8bi5sZW5ndGg7ZSsrKXt2YXIgbD1uW2VdLGM9bFswXXx8e30sdT1jLnRyYWNlfHx7fSxoPXUuX21vZHVsZXx8e30sZj1oLmFycmF5c1RvQ2FsY2RhdGE7ZiYmZihsLHUpO3ZhciBwPWguZWRpdFN0eWxlO3AmJm8ucHVzaCh7Zm46cCxjZDA6Y30pfWlmKG8ubGVuZ3RoKXtmb3IoZT0wO2U8by5sZW5ndGg7ZSsrKXt2YXIgZD1vW2VdO2QuZm4odCxkLmNkMCl9cyh0KSxyLnJlZHJhd1JlZ2xUcmFjZXModCl9cmV0dXJuIGkuc3R5bGUodCksYS5nZXRDb21wb25lbnRNZXRob2QoImxlZ2VuZCIsImRyYXciKSh0KSxpLnByZXZpb3VzUHJvbWlzZXModCl9LHIuZG9Db2xvckJhcnM9ZnVuY3Rpb24odCl7cmV0dXJuIGEuZ2V0Q29tcG9uZW50TWV0aG9kKCJjb2xvcmJhciIsImRyYXciKSh0KSxpLnByZXZpb3VzUHJvbWlzZXModCl9LHIubGF5b3V0UmVwbG90PWZ1bmN0aW9uKHQpe3ZhciBlPXQubGF5b3V0O3JldHVybiB0LmxheW91dD12b2lkIDAsYS5jYWxsKCJwbG90Iix0LCIiLGUpfSxyLmRvTGVnZW5kPWZ1bmN0aW9uKHQpe3JldHVybiBhLmdldENvbXBvbmVudE1ldGhvZCgibGVnZW5kIiwiZHJhdyIpKHQpLGkucHJldmlvdXNQcm9taXNlcyh0KX0sci5kb1RpY2tzUmVsYXlvdXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGYuZHJhdyh0LCJyZWRyYXciKSx0Ll9mdWxsTGF5b3V0Ll9oYXNPbmx5TGFyZ2VTcGxvbXMmJihhLnN1YnBsb3RzUmVnaXN0cnkuc3Bsb20udXBkYXRlR3JpZCh0KSxzKHQpLHIucmVkcmF3UmVnbFRyYWNlcyh0KSksci5kcmF3TWFpblRpdGxlKHQpLGkucHJldmlvdXNQcm9taXNlcyh0KX0sci5kb01vZGVCYXI9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dDtoLm1hbmFnZSh0KTtmb3IodmFyIHI9MDtyPGUuX2Jhc2VQbG90TW9kdWxlcy5sZW5ndGg7cisrKXt2YXIgbj1lLl9iYXNlUGxvdE1vZHVsZXNbcl0udXBkYXRlRng7biYmbih0KX1yZXR1cm4gaS5wcmV2aW91c1Byb21pc2VzKHQpfSxyLmRvQ2FtZXJhPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Ll9mdWxsTGF5b3V0LHI9ZS5fc3VicGxvdHMuZ2wzZCxuPTA7bjxyLmxlbmd0aDtuKyspe3ZhciBhPWVbcltuXV07YS5fc2NlbmUuc2V0Vmlld3BvcnQoYSl9fSxyLmRyYXdEYXRhPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQ7cyh0KTtmb3IodmFyIG49ZS5fYmFzZVBsb3RNb2R1bGVzLG89MDtvPG4ubGVuZ3RoO28rKyluW29dLnBsb3QodCk7cmV0dXJuIHIucmVkcmF3UmVnbFRyYWNlcyh0KSxpLnN0eWxlKHQpLGEuZ2V0Q29tcG9uZW50TWV0aG9kKCJzaGFwZXMiLCJkcmF3IikodCksYS5nZXRDb21wb25lbnRNZXRob2QoImFubm90YXRpb25zIiwiZHJhdyIpKHQpLGEuZ2V0Q29tcG9uZW50TWV0aG9kKCJpbWFnZXMiLCJkcmF3IikodCksZS5fcmVwbG90dGluZz0hMSxpLnByZXZpb3VzUHJvbWlzZXModCl9LHIucmVkcmF3UmVnbFRyYWNlcz1mdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0O2lmKGUuX2hhcygicmVnbCIpKXt2YXIgcixuLGE9dC5fZnVsbERhdGEsaT1bXSxzPVtdO2ZvcihlLl9oYXNPbmx5TGFyZ2VTcGxvbXMmJmUuX3NwbG9tR3JpZC5kcmF3KCkscj0wO3I8YS5sZW5ndGg7cisrKXt2YXIgbD1hW3JdOyEwPT09bC52aXNpYmxlJiYwIT09bC5fbGVuZ3RoJiYoInNwbG9tIj09PWwudHlwZT9lLl9zcGxvbVNjZW5lc1tsLnVpZF0uZHJhdygpOiJzY2F0dGVyZ2wiPT09bC50eXBlP28ucHVzaFVuaXF1ZShpLGwueGF4aXMrbC55YXhpcyk6InNjYXR0ZXJwb2xhcmdsIj09PWwudHlwZSYmby5wdXNoVW5pcXVlKHMsbC5zdWJwbG90KSl9Zm9yKHI9MDtyPGkubGVuZ3RoO3IrKykobj1lLl9wbG90c1tpW3JdXSkuX3NjZW5lJiZuLl9zY2VuZS5kcmF3KCk7Zm9yKHI9MDtyPHMubGVuZ3RoO3IrKykobj1lW3Nbcl1dLl9zdWJwbG90KS5fc2NlbmUmJm4uX3NjZW5lLmRyYXcoKX19LHIuZG9BdXRvUmFuZ2VBbmRDb25zdHJhaW50cz1mdW5jdGlvbih0KXtmb3IodmFyIGUscixuPXQuX2Z1bGxMYXlvdXQsYT1mLmxpc3QodCwiIiwhMCksaT1uLl9heGlzTWF0Y2hHcm91cHN8fFtdLHM9e30sbD0wO2w8YS5sZW5ndGg7bCsrKWU9YVtsXSx2KHQsZSksbSh0LGUpLHNbZS5faWRdPTE7Zyh0KTt0OmZvcih2YXIgYz0wO2M8aS5sZW5ndGg7YysrKXt2YXIgdSxoPWlbY10scD1udWxsO2Zvcih1IGluIGgpaWYoc1soZT1mLmdldEZyb21JZCh0LHUpKS5faWRdKXtpZighMT09PWUuYXV0b3JhbmdlKWNvbnRpbnVlIHQ7cj1vLnNpbXBsZU1hcChlLnJhbmdlLGUucjJsKSxwP3BbMF08cFsxXT8ocFswXT1NYXRoLm1pbihwWzBdLHJbMF0pLHBbMV09TWF0aC5tYXgocFsxXSxyWzFdKSk6KHBbMF09TWF0aC5tYXgocFswXSxyWzBdKSxwWzFdPU1hdGgubWluKHBbMV0sclsxXSkpOnA9cn1mb3IodSBpbiBoKShlPWYuZ2V0RnJvbUlkKHQsdSkpLnJhbmdlPW8uc2ltcGxlTWFwKHAsZS5sMnIpLGUuX2lucHV0LnJhbmdlPWUucmFuZ2Uuc2xpY2UoKSxlLnNldFNjYWxlKCl9fSxyLmZpbmFsRHJhdz1mdW5jdGlvbih0KXthLmdldENvbXBvbmVudE1ldGhvZCgicmFuZ2VzbGlkZXIiLCJkcmF3IikodCksYS5nZXRDb21wb25lbnRNZXRob2QoInJhbmdlc2VsZWN0b3IiLCJkcmF3IikodCl9LHIuZHJhd01hcmdpblB1c2hlcnM9ZnVuY3Rpb24odCl7YS5nZXRDb21wb25lbnRNZXRob2QoImxlZ2VuZCIsImRyYXciKSh0KSxhLmdldENvbXBvbmVudE1ldGhvZCgicmFuZ2VzZWxlY3RvciIsImRyYXciKSh0KSxhLmdldENvbXBvbmVudE1ldGhvZCgic2xpZGVycyIsImRyYXciKSh0KSxhLmdldENvbXBvbmVudE1ldGhvZCgidXBkYXRlbWVudXMiLCJkcmF3IikodCksYS5nZXRDb21wb25lbnRNZXRob2QoImNvbG9yYmFyIiwiZHJhdyIpKHQpfX0seyIuLi9jb21wb25lbnRzL2NvbG9yIjo1OTIsIi4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjEzLCIuLi9jb21wb25lbnRzL21vZGViYXIiOjY1MCwiLi4vY29tcG9uZW50cy90aXRsZXMiOjY3OSwiLi4vY29uc3RhbnRzL2FsaWdubWVudCI6Njg2LCIuLi9saWIiOjcxNywiLi4vbGliL2NsZWFyX2dsX2NhbnZhc2VzIjo3MDIsIi4uL3Bsb3RzL2NhcnRlc2lhbi9hdXRvcmFuZ2UiOjc2NCwiLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjc2NSwiLi4vcGxvdHMvY2FydGVzaWFuL2NvbnN0cmFpbnRzIjo3NzIsIi4uL3Bsb3RzL3Bsb3RzIjo4MjYsIi4uL3JlZ2lzdHJ5Ijo4NDYsZDM6MTY1fV0sNzU3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2xpYiIpLGE9bi5pc1BsYWluT2JqZWN0LGk9dCgiLi9wbG90X3NjaGVtYSIpLG89dCgiLi4vcGxvdHMvcGxvdHMiKSxzPXQoIi4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxsPXQoIi4vcGxvdF90ZW1wbGF0ZSIpLGM9dCgiLi9wbG90X2NvbmZpZyIpLmRmbHRDb25maWc7ZnVuY3Rpb24gdSh0LGUpe3Q9bi5leHRlbmREZWVwKHt9LHQpO3ZhciByLGksbz1PYmplY3Qua2V5cyh0KS5zb3J0KCk7ZnVuY3Rpb24gcyhlLHIsbil7aWYoYShyKSYmYShlKSl1KGUscik7ZWxzZSBpZihBcnJheS5pc0FycmF5KHIpJiZBcnJheS5pc0FycmF5KGUpKXt2YXIgbz1sLmFycmF5VGVtcGxhdGVyKHtfdGVtcGxhdGU6dH0sbik7Zm9yKGk9MDtpPHIubGVuZ3RoO2krKyl7dmFyIHM9cltpXSxjPW8ubmV3SXRlbShzKS5fdGVtcGxhdGU7YyYmdShjLHMpfXZhciBoPW8uZGVmYXVsdEl0ZW1zKCk7Zm9yKGk9MDtpPGgubGVuZ3RoO2krKylyLnB1c2goaFtpXS5fdGVtcGxhdGUpO2ZvcihpPTA7aTxyLmxlbmd0aDtpKyspZGVsZXRlIHJbaV0udGVtcGxhdGVpdGVtbmFtZX19Zm9yKHI9MDtyPG8ubGVuZ3RoO3IrKyl7dmFyIGM9b1tyXSxmPXRbY107aWYoYyBpbiBlP3MoZixlW2NdLGMpOmVbY109ZixoKGMpPT09Yylmb3IodmFyIHAgaW4gZSl7dmFyIGQ9aChwKTtwPT09ZHx8ZCE9PWN8fHAgaW4gdHx8cyhmLGVbcF0sYyl9fX1mdW5jdGlvbiBoKHQpe3JldHVybiB0LnJlcGxhY2UoL1swLTldKyQvLCIiKX1mdW5jdGlvbiBmKHQsZSxyLGksbyl7dmFyIHM9byYmcihvKTtmb3IodmFyIGMgaW4gdCl7dmFyIHU9dFtjXSxkPXAodCxjLGkpLGc9cCh0LGMsbyksdj1yKGcpO2lmKCF2KXt2YXIgbT1oKGMpO20hPT1jJiYodj1yKGc9cCh0LG0sbykpKX1pZigoIXN8fHMhPT12KSYmISghdnx8di5fbm9UZW1wbGF0aW5nfHwiZGF0YV9hcnJheSI9PT12LnZhbFR5cGV8fHYuYXJyYXlPayYmQXJyYXkuaXNBcnJheSh1KSkpaWYoIXYudmFsVHlwZSYmYSh1KSlmKHUsZSxyLGQsZyk7ZWxzZSBpZih2Ll9pc0xpbmtlZFRvQXJyYXkmJkFycmF5LmlzQXJyYXkodSkpZm9yKHZhciB5PSExLHg9MCxiPXt9LF89MDtfPHUubGVuZ3RoO18rKyl7dmFyIHc9dVtfXTtpZihhKHcpKXt2YXIgaz13Lm5hbWU7aWYoayliW2tdfHwoZih3LGUscixwKHUseCxkKSxwKHUseCxnKSkseCsrLGJba109MSk7ZWxzZSBpZigheSl7dmFyIFQ9cCh0LGwuYXJyYXlEZWZhdWx0S2V5KGMpLGkpLE09cCh1LHgsZCk7Zih3LGUscixNLHAodSx4LGcpKTt2YXIgQT1uLm5lc3RlZFByb3BlcnR5KGUsTSk7bi5uZXN0ZWRQcm9wZXJ0eShlLFQpLnNldChBLmdldCgpKSxBLnNldChudWxsKSx5PSEwfX19ZWxzZXtuLm5lc3RlZFByb3BlcnR5KGUsZCkuc2V0KHUpfX19ZnVuY3Rpb24gcCh0LGUscil7cmV0dXJuIHI/QXJyYXkuaXNBcnJheSh0KT9yKyJbIitlKyJdIjpyKyIuIitlOmV9ZnVuY3Rpb24gZCh0KXtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKylpZihhKHRbZV0pKXJldHVybiEwfWZ1bmN0aW9uIGcodCl7dmFyIGU7c3dpdGNoKHQuY29kZSl7Y2FzZSJkYXRhIjplPSJUaGUgdGVtcGxhdGUgaGFzIG5vIGtleSBkYXRhLiI7YnJlYWs7Y2FzZSJsYXlvdXQiOmU9IlRoZSB0ZW1wbGF0ZSBoYXMgbm8ga2V5IGxheW91dC4iO2JyZWFrO2Nhc2UibWlzc2luZyI6ZT10LnBhdGg/IlRoZXJlIGFyZSBubyB0ZW1wbGF0ZXMgZm9yIGl0ZW0gIit0LnBhdGgrIiB3aXRoIG5hbWUgIit0LnRlbXBsYXRlaXRlbW5hbWU6IlRoZXJlIGFyZSBubyB0ZW1wbGF0ZXMgZm9yIHRyYWNlICIrdC5pbmRleCsiLCBvZiB0eXBlICIrdC50cmFjZVR5cGUrIi4iO2JyZWFrO2Nhc2UidW51c2VkIjplPXQucGF0aD8iVGhlIHRlbXBsYXRlIGl0ZW0gYXQgIit0LnBhdGgrIiB3YXMgbm90IHVzZWQgaW4gY29uc3RydWN0aW5nIHRoZSBwbG90LiI6dC5kYXRhQ291bnQ/IlNvbWUgb2YgdGhlIHRlbXBsYXRlcyBvZiB0eXBlICIrdC50cmFjZVR5cGUrIiB3ZXJlIG5vdCB1c2VkLiBUaGUgdGVtcGxhdGUgaGFzICIrdC50ZW1wbGF0ZUNvdW50KyIgdHJhY2VzLCB0aGUgZGF0YSBvbmx5IGhhcyAiK3QuZGF0YUNvdW50KyIgb2YgdGhpcyB0eXBlLiI6IlRoZSB0ZW1wbGF0ZSBoYXMgIit0LnRlbXBsYXRlQ291bnQrIiB0cmFjZXMgb2YgdHlwZSAiK3QudHJhY2VUeXBlKyIgYnV0IHRoZXJlIGFyZSBub25lIGluIHRoZSBkYXRhLiI7YnJlYWs7Y2FzZSJyZXVzZWQiOmU9IlNvbWUgb2YgdGhlIHRlbXBsYXRlcyBvZiB0eXBlICIrdC50cmFjZVR5cGUrIiB3ZXJlIHVzZWQgbW9yZSB0aGFuIG9uY2UuIFRoZSB0ZW1wbGF0ZSBoYXMgIit0LnRlbXBsYXRlQ291bnQrIiB0cmFjZXMsIHRoZSBkYXRhIGhhcyAiK3QuZGF0YUNvdW50KyIgb2YgdGhpcyB0eXBlLiJ9cmV0dXJuIHQubXNnPWUsdH1yLm1ha2VUZW1wbGF0ZT1mdW5jdGlvbih0KXt0PW4uaXNQbGFpbk9iamVjdCh0KT90Om4uZ2V0R3JhcGhEaXYodCksdD1uLmV4dGVuZERlZXAoe19jb250ZXh0OmN9LHtkYXRhOnQuZGF0YSxsYXlvdXQ6dC5sYXlvdXR9KSxvLnN1cHBseURlZmF1bHRzKHQpO3ZhciBlPXQuZGF0YXx8W10scj10LmxheW91dHx8e307ci5fYmFzZVBsb3RNb2R1bGVzPXQuX2Z1bGxMYXlvdXQuX2Jhc2VQbG90TW9kdWxlcyxyLl9tb2R1bGVzPXQuX2Z1bGxMYXlvdXQuX21vZHVsZXM7dmFyIGw9e2RhdGE6e30sbGF5b3V0Ont9fTtlLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU9e307Zih0LGUsZnVuY3Rpb24odCxlKXtyZXR1cm4gaS5nZXRUcmFjZVZhbE9iamVjdCh0LG4ubmVzdGVkUHJvcGVydHkoe30sZSkucGFydHMpfS5iaW5kKG51bGwsdCkpO3ZhciByPW4uY29lcmNlKHQse30scywidHlwZSIpLGE9bC5kYXRhW3JdO2F8fChhPWwuZGF0YVtyXT1bXSksYS5wdXNoKGUpfSksZihyLGwubGF5b3V0LGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGkuZ2V0TGF5b3V0VmFsT2JqZWN0KHQsbi5uZXN0ZWRQcm9wZXJ0eSh7fSxlKS5wYXJ0cyl9LmJpbmQobnVsbCxyKSksZGVsZXRlIGwubGF5b3V0LnRlbXBsYXRlO3ZhciBoPXIudGVtcGxhdGU7aWYoYShoKSl7dmFyIHAsZCxnLHYsbSx5LHg9aC5sYXlvdXQ7YSh4KSYmdSh4LGwubGF5b3V0KTt2YXIgYj1oLmRhdGE7aWYoYShiKSl7Zm9yKGQgaW4gbC5kYXRhKWlmKGc9YltkXSxBcnJheS5pc0FycmF5KGcpKXtmb3IoeT0obT1sLmRhdGFbZF0pLmxlbmd0aCx2PWcubGVuZ3RoLHA9MDtwPHk7cCsrKXUoZ1twJXZdLG1bcF0pO2ZvcihwPXk7cDx2O3ArKyltLnB1c2gobi5leHRlbmREZWVwKHt9LGdbcF0pKX1mb3IoZCBpbiBiKWQgaW4gbC5kYXRhfHwobC5kYXRhW2RdPW4uZXh0ZW5kRGVlcChbXSxiW2RdKSl9fXJldHVybiBsfSxyLnZhbGlkYXRlVGVtcGxhdGU9ZnVuY3Rpb24odCxlKXt2YXIgcj1uLmV4dGVuZERlZXAoe30se19jb250ZXh0OmMsZGF0YTp0LmRhdGEsbGF5b3V0OnQubGF5b3V0fSksaT1yLmxheW91dHx8e307YShlKXx8KGU9aS50ZW1wbGF0ZXx8e30pO3ZhciBzPWUubGF5b3V0LGw9ZS5kYXRhLHU9W107ci5sYXlvdXQ9aSxyLmxheW91dC50ZW1wbGF0ZT1lLG8uc3VwcGx5RGVmYXVsdHMocik7dmFyIGY9ci5fZnVsbExheW91dCx2PXIuX2Z1bGxEYXRhLG09e307aWYoYShzKT8oIWZ1bmN0aW9uIHQoZSxyKXtmb3IodmFyIG4gaW4gZSlpZigiXyIhPT1uLmNoYXJBdCgwKSYmYShlW25dKSl7dmFyIGksbz1oKG4pLHM9W107Zm9yKGk9MDtpPHIubGVuZ3RoO2krKylzLnB1c2gocChlLG4scltpXSkpLG8hPT1uJiZzLnB1c2gocChlLG8scltpXSkpO2ZvcihpPTA7aTxzLmxlbmd0aDtpKyspbVtzW2ldXT0xO3QoZVtuXSxzKX19KGYsWyJsYXlvdXQiXSksZnVuY3Rpb24gdChlLHIpe2Zvcih2YXIgbiBpbiBlKWlmKC0xPT09bi5pbmRleE9mKCJkZWZhdWx0cyIpJiZhKGVbbl0pKXt2YXIgaT1wKGUsbixyKTttW2ldP3QoZVtuXSxpKTp1LnB1c2goe2NvZGU6InVudXNlZCIscGF0aDppfSl9fShzLCJsYXlvdXQiKSk6dS5wdXNoKHtjb2RlOiJsYXlvdXQifSksYShsKSl7Zm9yKHZhciB5LHg9e30sYj0wO2I8di5sZW5ndGg7YisrKXt2YXIgXz12W2JdO3hbeT1fLnR5cGVdPSh4W3ldfHwwKSsxLF8uX2Z1bGxJbnB1dC5fdGVtcGxhdGV8fHUucHVzaCh7Y29kZToibWlzc2luZyIsaW5kZXg6Xy5fZnVsbElucHV0LmluZGV4LHRyYWNlVHlwZTp5fSl9Zm9yKHkgaW4gbCl7dmFyIHc9bFt5XS5sZW5ndGgsaz14W3ldfHwwO3c+az91LnB1c2goe2NvZGU6InVudXNlZCIsdHJhY2VUeXBlOnksdGVtcGxhdGVDb3VudDp3LGRhdGFDb3VudDprfSk6az53JiZ1LnB1c2goe2NvZGU6InJldXNlZCIsdHJhY2VUeXBlOnksdGVtcGxhdGVDb3VudDp3LGRhdGFDb3VudDprfSl9fWVsc2UgdS5wdXNoKHtjb2RlOiJkYXRhIn0pO2lmKGZ1bmN0aW9uIHQoZSxyKXtmb3IodmFyIG4gaW4gZSlpZigiXyIhPT1uLmNoYXJBdCgwKSl7dmFyIGk9ZVtuXSxvPXAoZSxuLHIpO2EoaSk/KEFycmF5LmlzQXJyYXkoZSkmJiExPT09aS5fdGVtcGxhdGUmJmkudGVtcGxhdGVpdGVtbmFtZSYmdS5wdXNoKHtjb2RlOiJtaXNzaW5nIixwYXRoOm8sdGVtcGxhdGVpdGVtbmFtZTppLnRlbXBsYXRlaXRlbW5hbWV9KSx0KGksbykpOkFycmF5LmlzQXJyYXkoaSkmJmQoaSkmJnQoaSxvKX19KHtkYXRhOnYsbGF5b3V0OmZ9LCIiKSx1Lmxlbmd0aClyZXR1cm4gdS5tYXAoZyl9fSx7Ii4uL2xpYiI6NzE3LCIuLi9wbG90cy9hdHRyaWJ1dGVzIjo3NjIsIi4uL3Bsb3RzL3Bsb3RzIjo4MjYsIi4vcGxvdF9jb25maWciOjc1MywiLi9wbG90X3NjaGVtYSI6NzU0LCIuL3Bsb3RfdGVtcGxhdGUiOjc1NX1dLDc1ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGE9dCgiLi9wbG90X2FwaSIpLGk9dCgiLi4vbGliIiksbz10KCIuLi9zbmFwc2hvdC9oZWxwZXJzIikscz10KCIuLi9zbmFwc2hvdC90b3N2ZyIpLGw9dCgiLi4vc25hcHNob3Qvc3ZndG9pbWciKSxjPXtmb3JtYXQ6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInBuZyIsImpwZWciLCJ3ZWJwIiwic3ZnIl0sZGZsdDoicG5nIn0sd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjF9LGhlaWdodDp7dmFsVHlwZToibnVtYmVyIixtaW46MX0sc2NhbGU6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxfSxzZXRCYWNrZ3JvdW5kOnt2YWxUeXBlOiJhbnkiLGRmbHQ6ITF9LGltYWdlRGF0YU9ubHk6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9fTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcix1LGgsZjtmdW5jdGlvbiBwKHQpe3JldHVybiEodCBpbiBlKXx8aS52YWxpZGF0ZShlW3RdLGNbdF0pfWlmKGU9ZXx8e30saS5pc1BsYWluT2JqZWN0KHQpPyhyPXQuZGF0YXx8W10sdT10LmxheW91dHx8e30saD10LmNvbmZpZ3x8e30sZj17fSk6KHQ9aS5nZXRHcmFwaERpdih0KSxyPWkuZXh0ZW5kRGVlcChbXSx0LmRhdGEpLHU9aS5leHRlbmREZWVwKHt9LHQubGF5b3V0KSxoPXQuX2NvbnRleHQsZj10Ll9mdWxsTGF5b3V0fHx7fSksIXAoIndpZHRoIikmJm51bGwhPT1lLndpZHRofHwhcCgiaGVpZ2h0IikmJm51bGwhPT1lLmhlaWdodCl0aHJvdyBuZXcgRXJyb3IoIkhlaWdodCBhbmQgd2lkdGggc2hvdWxkIGJlIHBpeGVsIHZhbHVlcy4iKTtpZighcCgiZm9ybWF0IikpdGhyb3cgbmV3IEVycm9yKCJJbWFnZSBmb3JtYXQgaXMgbm90IGpwZWcsIHBuZywgc3ZnIG9yIHdlYnAuIik7dmFyIGQ9e307ZnVuY3Rpb24gZyh0LHIpe3JldHVybiBpLmNvZXJjZShlLGQsYyx0LHIpfXZhciB2PWcoImZvcm1hdCIpLG09Zygid2lkdGgiKSx5PWcoImhlaWdodCIpLHg9Zygic2NhbGUiKSxiPWcoInNldEJhY2tncm91bmQiKSxfPWcoImltYWdlRGF0YU9ubHkiKSx3PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3cuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix3LnN0eWxlLmxlZnQ9Ii01MDAwcHgiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodyk7dmFyIGs9aS5leHRlbmRGbGF0KHt9LHUpO20/ay53aWR0aD1tOm51bGw9PT1lLndpZHRoJiZuKGYud2lkdGgpJiYoay53aWR0aD1mLndpZHRoKSx5P2suaGVpZ2h0PXk6bnVsbD09PWUuaGVpZ2h0JiZuKGYuaGVpZ2h0KSYmKGsuaGVpZ2h0PWYuaGVpZ2h0KTt2YXIgVD1pLmV4dGVuZEZsYXQoe30saCx7X2V4cG9ydGVkUGxvdDohMCxzdGF0aWNQbG90OiEwLHNldEJhY2tncm91bmQ6Yn0pLE09by5nZXRSZWRyYXdGdW5jKHcpO2Z1bmN0aW9uIEEoKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24odCl7c2V0VGltZW91dCh0LG8uZ2V0RGVsYXkody5fZnVsbExheW91dCkpfSl9ZnVuY3Rpb24gUygpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0LGUpe3ZhciByPXModyx2LHgpLG49dy5fZnVsbExheW91dC53aWR0aCxjPXcuX2Z1bGxMYXlvdXQuaGVpZ2h0O2lmKGEucHVyZ2UodyksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh3KSwic3ZnIj09PXYpcmV0dXJuIHQoXz9yOm8uZW5jb2RlU1ZHKHIpKTt2YXIgdT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTt1LmlkPWkucmFuZHN0cigpLGwoe2Zvcm1hdDp2LHdpZHRoOm4saGVpZ2h0OmMsc2NhbGU6eCxjYW52YXM6dSxzdmc6cixwcm9taXNlOiEwfSkudGhlbih0KS5jYXRjaChlKX0pfXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0LGUpe2EucGxvdCh3LHIsayxUKS50aGVuKE0pLnRoZW4oQSkudGhlbihTKS50aGVuKGZ1bmN0aW9uKGUpe3QoZnVuY3Rpb24odCl7cmV0dXJuIF8/dC5yZXBsYWNlKG8uSU1BR0VfVVJMX1BSRUZJWCwiIik6dH0oZSkpfSkuY2F0Y2goZnVuY3Rpb24odCl7ZSh0KX0pfSl9fSx7Ii4uL2xpYiI6NzE3LCIuLi9zbmFwc2hvdC9oZWxwZXJzIjo4NTAsIi4uL3NuYXBzaG90L3N2Z3RvaW1nIjo4NTIsIi4uL3NuYXBzaG90L3Rvc3ZnIjo4NTQsIi4vcGxvdF9hcGkiOjc1MiwiZmFzdC1pc251bWVyaWMiOjIyOH1dLDc1OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9saWIiKSxhPXQoIi4uL3Bsb3RzL3Bsb3RzIiksaT10KCIuL3Bsb3Rfc2NoZW1hIiksbz10KCIuL3Bsb3RfY29uZmlnIikuZGZsdENvbmZpZyxzPW4uaXNQbGFpbk9iamVjdCxsPUFycmF5LmlzQXJyYXksYz1uLmlzQXJyYXlPclR5cGVkQXJyYXk7ZnVuY3Rpb24gdSh0LGUscixhLGksbyl7bz1vfHxbXTtmb3IodmFyIGg9T2JqZWN0LmtleXModCksZj0wO2Y8aC5sZW5ndGg7ZisrKXt2YXIgdj1oW2ZdO2lmKCJ0cmFuc2Zvcm1zIiE9PXYpe3ZhciBtPW8uc2xpY2UoKTttLnB1c2godik7dmFyIHk9dFt2XSx4PWVbdl0sYj1nKHIsdiksXz0oYnx8e30pLnZhbFR5cGUsdz0iaW5mb19hcnJheSI9PT1fLGs9ImNvbG9yc2NhbGUiPT09XyxUPShifHx7fSkuaXRlbXM7aWYoZChyLHYpKWlmKHMoeSkmJnMoeCkmJiJhbnkiIT09Xyl1KHkseCxiLGEsaSxtKTtlbHNlIGlmKHcmJmwoeSkpe3kubGVuZ3RoPngubGVuZ3RoJiZhLnB1c2gocCgidW51c2VkIixpLG0uY29uY2F0KHgubGVuZ3RoKSkpO3ZhciBNLEEsUyxFLEwsQz14Lmxlbmd0aCxQPUFycmF5LmlzQXJyYXkoVCk7aWYoUCYmKEM9TWF0aC5taW4oQyxULmxlbmd0aCkpLDI9PT1iLmRpbWVuc2lvbnMpZm9yKEE9MDtBPEM7QSsrKWlmKGwoeVtBXSkpe3lbQV0ubGVuZ3RoPnhbQV0ubGVuZ3RoJiZhLnB1c2gocCgidW51c2VkIixpLG0uY29uY2F0KEEseFtBXS5sZW5ndGgpKSk7dmFyIE89eFtBXS5sZW5ndGg7Zm9yKE09MDtNPChQP01hdGgubWluKE8sVFtBXS5sZW5ndGgpOk8pO00rKylTPVA/VFtBXVtNXTpULEU9eVtBXVtNXSxMPXhbQV1bTV0sbi52YWxpZGF0ZShFLFMpP0whPT1FJiZMIT09K0UmJmEucHVzaChwKCJkeW5hbWljIixpLG0uY29uY2F0KEEsTSksRSxMKSk6YS5wdXNoKHAoInZhbHVlIixpLG0uY29uY2F0KEEsTSksRSkpfWVsc2UgYS5wdXNoKHAoImFycmF5IixpLG0uY29uY2F0KEEpLHlbQV0pKTtlbHNlIGZvcihBPTA7QTxDO0ErKylTPVA/VFtBXTpULEU9eVtBXSxMPXhbQV0sbi52YWxpZGF0ZShFLFMpP0whPT1FJiZMIT09K0UmJmEucHVzaChwKCJkeW5hbWljIixpLG0uY29uY2F0KEEpLEUsTCkpOmEucHVzaChwKCJ2YWx1ZSIsaSxtLmNvbmNhdChBKSxFKSl9ZWxzZSBpZihiLml0ZW1zJiYhdyYmbCh5KSl7dmFyIHosSSxEPVRbT2JqZWN0LmtleXMoVClbMF1dLFI9W107Zm9yKHo9MDt6PHgubGVuZ3RoO3orKyl7dmFyIEY9eFt6XS5faW5kZXh8fHo7aWYoKEk9bS5zbGljZSgpKS5wdXNoKEYpLHMoeVtGXSkmJnMoeFt6XSkpe1IucHVzaChGKTt2YXIgQj15W0ZdLE49eFt6XTtzKEIpJiYhMSE9PUIudmlzaWJsZSYmITE9PT1OLnZpc2libGU/YS5wdXNoKHAoImludmlzaWJsZSIsaSxJKSk6dShCLE4sRCxhLGksSSl9fWZvcih6PTA7ejx5Lmxlbmd0aDt6KyspKEk9bS5zbGljZSgpKS5wdXNoKHopLHMoeVt6XSk/LTE9PT1SLmluZGV4T2YoeikmJmEucHVzaChwKCJ1bnVzZWQiLGksSSkpOmEucHVzaChwKCJvYmplY3QiLGksSSx5W3pdKSl9ZWxzZSFzKHkpJiZzKHgpP2EucHVzaChwKCJvYmplY3QiLGksbSx5KSk6Yyh5KXx8IWMoeCl8fHd8fGs/diBpbiBlP24udmFsaWRhdGUoeSxiKT8iZW51bWVyYXRlZCI9PT1iLnZhbFR5cGUmJihiLmNvZXJjZU51bWJlciYmeSE9PSt4fHx5IT09eCkmJmEucHVzaChwKCJkeW5hbWljIixpLG0seSx4KSk6YS5wdXNoKHAoInZhbHVlIixpLG0seSkpOmEucHVzaChwKCJ1bnVzZWQiLGksbSx5KSk6YS5wdXNoKHAoImFycmF5IixpLG0seSkpO2Vsc2UgYS5wdXNoKHAoInNjaGVtYSIsaSxtKSl9fXJldHVybiBhfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLGMsaD1pLmdldCgpLGY9W10sZD17X2NvbnRleHQ6bi5leHRlbmRGbGF0KHt9LG8pfTtsKHQpPyhkLmRhdGE9bi5leHRlbmREZWVwKFtdLHQpLHI9dCk6KGQuZGF0YT1bXSxyPVtdLGYucHVzaChwKCJhcnJheSIsImRhdGEiKSkpLHMoZSk/KGQubGF5b3V0PW4uZXh0ZW5kRGVlcCh7fSxlKSxjPWUpOihkLmxheW91dD17fSxjPXt9LGFyZ3VtZW50cy5sZW5ndGg+MSYmZi5wdXNoKHAoIm9iamVjdCIsImxheW91dCIpKSksYS5zdXBwbHlEZWZhdWx0cyhkKTtmb3IodmFyIGc9ZC5fZnVsbERhdGEsdj1yLmxlbmd0aCxtPTA7bTx2O20rKyl7dmFyIHk9clttXSx4PVsiZGF0YSIsbV07aWYocyh5KSl7dmFyIGI9Z1ttXSxfPWIudHlwZSx3PWgudHJhY2VzW19dLmF0dHJpYnV0ZXM7dy50eXBlPXt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6W19dfSwhMT09PWIudmlzaWJsZSYmITEhPT15LnZpc2libGUmJmYucHVzaChwKCJpbnZpc2libGUiLHgpKSx1KHksYix3LGYseCk7dmFyIGs9eS50cmFuc2Zvcm1zLFQ9Yi50cmFuc2Zvcm1zO2lmKGspe2woayl8fGYucHVzaChwKCJhcnJheSIseCxbInRyYW5zZm9ybXMiXSkpLHgucHVzaCgidHJhbnNmb3JtcyIpO2Zvcih2YXIgTT0wO008ay5sZW5ndGg7TSsrKXt2YXIgQT1bInRyYW5zZm9ybXMiLE1dLFM9a1tNXS50eXBlO2lmKHMoa1tNXSkpe3ZhciBFPWgudHJhbnNmb3Jtc1tTXT9oLnRyYW5zZm9ybXNbU10uYXR0cmlidXRlczp7fTtFLnR5cGU9e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpPYmplY3Qua2V5cyhoLnRyYW5zZm9ybXMpfSx1KGtbTV0sVFtNXSxFLGYseCxBKX1lbHNlIGYucHVzaChwKCJvYmplY3QiLHgsQSkpfX19ZWxzZSBmLnB1c2gocCgib2JqZWN0Iix4KSl9cmV0dXJuIHUoYyxkLl9mdWxsTGF5b3V0LGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQubGF5b3V0LmxheW91dEF0dHJpYnV0ZXMsYT0wO2E8ZS5sZW5ndGg7YSsrKXt2YXIgaT1lW2FdLG89dC50cmFjZXNbaS50eXBlXSxzPW8ubGF5b3V0QXR0cmlidXRlcztzJiYoaS5zdWJwbG90P24uZXh0ZW5kRmxhdChyW28uYXR0cmlidXRlcy5zdWJwbG90LmRmbHRdLHMpOm4uZXh0ZW5kRmxhdChyLHMpKX1yZXR1cm4gcn0oaCxnKSxmLCJsYXlvdXQiKSwwPT09Zi5sZW5ndGg/dm9pZCAwOmZ9O3ZhciBoPXtvYmplY3Q6ZnVuY3Rpb24odCxlKXtyZXR1cm4oImxheW91dCI9PT10JiYiIj09PWU/IlRoZSBsYXlvdXQgYXJndW1lbnQiOiJkYXRhIj09PXRbMF0mJiIiPT09ZT8iVHJhY2UgIit0WzFdKyIgaW4gdGhlIGRhdGEgYXJndW1lbnQiOmYodCkrImtleSAiK2UpKyIgbXVzdCBiZSBsaW5rZWQgdG8gYW4gb2JqZWN0IGNvbnRhaW5lciJ9LGFycmF5OmZ1bmN0aW9uKHQsZSl7cmV0dXJuKCJkYXRhIj09PXQ/IlRoZSBkYXRhIGFyZ3VtZW50IjpmKHQpKyJrZXkgIitlKSsiIG11c3QgYmUgbGlua2VkIHRvIGFuIGFycmF5IGNvbnRhaW5lciJ9LHNjaGVtYTpmdW5jdGlvbih0LGUpe3JldHVybiBmKHQpKyJrZXkgIitlKyIgaXMgbm90IHBhcnQgb2YgdGhlIHNjaGVtYSJ9LHVudXNlZDpmdW5jdGlvbih0LGUscil7dmFyIG49cyhyKT8iY29udGFpbmVyIjoia2V5IjtyZXR1cm4gZih0KStuKyIgIitlKyIgZGlkIG5vdCBnZXQgY29lcmNlZCJ9LGR5bmFtaWM6ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuW2YodCkrImtleSIsZSwiKHNldCB0byAnIityKyInKSIsImdvdCByZXNldCB0byIsIiciK24rIiciLCJkdXJpbmcgZGVmYXVsdHMuIl0uam9pbigiICIpfSxpbnZpc2libGU6ZnVuY3Rpb24odCxlKXtyZXR1cm4oZT9mKHQpKyJpdGVtICIrZToiVHJhY2UgIit0WzFdKSsiIGdvdCBkZWZhdWx0ZWQgdG8gYmUgbm90IHZpc2libGUifSx2YWx1ZTpmdW5jdGlvbih0LGUscil7cmV0dXJuW2YodCkrImtleSAiK2UsImlzIHNldCB0byBhbiBpbnZhbGlkIHZhbHVlICgiK3IrIikiXS5qb2luKCIgIil9fTtmdW5jdGlvbiBmKHQpe3JldHVybiBsKHQpPyJJbiBkYXRhIHRyYWNlICIrdFsxXSsiLCAiOiJJbiAiK3QrIiwgIn1mdW5jdGlvbiBwKHQsZSxyLGEsaSl7dmFyIG8scztyPXJ8fCIiLGwoZSk/KG89ZVswXSxzPWVbMV0pOihvPWUscz1udWxsKTt2YXIgYz1mdW5jdGlvbih0KXtpZighbCh0KSlyZXR1cm4gU3RyaW5nKHQpO2Zvcih2YXIgZT0iIixyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBuPXRbcl07Im51bWJlciI9PXR5cGVvZiBuP2U9ZS5zdWJzdHIoMCxlLmxlbmd0aC0xKSsiWyIrbisiXSI6ZSs9bixyPHQubGVuZ3RoLTEmJihlKz0iLiIpfXJldHVybiBlfShyKSx1PWhbdF0oZSxjLGEsaSk7cmV0dXJuIG4ubG9nKHUpLHtjb2RlOnQsY29udGFpbmVyOm8sdHJhY2U6cyxwYXRoOnIsYXN0cjpjLG1zZzp1fX1mdW5jdGlvbiBkKHQsZSl7dmFyIHI9bShlKSxuPXIua2V5TWludXNJZCxhPXIuaWQ7cmV0dXJuISEobiBpbiB0JiZ0W25dLl9pc1N1YnBsb3RPYmomJmEpfHxlIGluIHR9ZnVuY3Rpb24gZyh0LGUpe3JldHVybiBlIGluIHQ/dFtlXTp0W20oZSkua2V5TWludXNJZF19dmFyIHY9bi5jb3VudGVyUmVnZXgoIihbYS16XSspIik7ZnVuY3Rpb24gbSh0KXt2YXIgZT10Lm1hdGNoKHYpO3JldHVybntrZXlNaW51c0lkOmUmJmVbMV0saWQ6ZSYmZVsyXX19fSx7Ii4uL2xpYiI6NzE3LCIuLi9wbG90cy9wbG90cyI6ODI2LCIuL3Bsb3RfY29uZmlnIjo3NTMsIi4vcGxvdF9zY2hlbWEiOjc1NH1dLDc2MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e21vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLGRmbHQ6ImFmdGVyYWxsIix2YWx1ZXM6WyJpbW1lZGlhdGUiLCJuZXh0IiwiYWZ0ZXJhbGwiXX0sZGlyZWN0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJmb3J3YXJkIiwicmV2ZXJzZSJdLGRmbHQ6ImZvcndhcmQifSxmcm9tY3VycmVudDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sZnJhbWU6e2R1cmF0aW9uOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6NTAwfSxyZWRyYXc6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITB9fSx0cmFuc2l0aW9uOntkdXJhdGlvbjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjUwMCxlZGl0VHlwZToibm9uZSJ9LGVhc2luZzp7dmFsVHlwZToiZW51bWVyYXRlZCIsZGZsdDoiY3ViaWMtaW4tb3V0Iix2YWx1ZXM6WyJsaW5lYXIiLCJxdWFkIiwiY3ViaWMiLCJzaW4iLCJleHAiLCJjaXJjbGUiLCJlbGFzdGljIiwiYmFjayIsImJvdW5jZSIsImxpbmVhci1pbiIsInF1YWQtaW4iLCJjdWJpYy1pbiIsInNpbi1pbiIsImV4cC1pbiIsImNpcmNsZS1pbiIsImVsYXN0aWMtaW4iLCJiYWNrLWluIiwiYm91bmNlLWluIiwibGluZWFyLW91dCIsInF1YWQtb3V0IiwiY3ViaWMtb3V0Iiwic2luLW91dCIsImV4cC1vdXQiLCJjaXJjbGUtb3V0IiwiZWxhc3RpYy1vdXQiLCJiYWNrLW91dCIsImJvdW5jZS1vdXQiLCJsaW5lYXItaW4tb3V0IiwicXVhZC1pbi1vdXQiLCJjdWJpYy1pbi1vdXQiLCJzaW4taW4tb3V0IiwiZXhwLWluLW91dCIsImNpcmNsZS1pbi1vdXQiLCJlbGFzdGljLWluLW91dCIsImJhY2staW4tb3V0IiwiYm91bmNlLWluLW91dCJdLGVkaXRUeXBlOiJub25lIn0sb3JkZXJpbmc6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImxheW91dCBmaXJzdCIsInRyYWNlcyBmaXJzdCJdLGRmbHQ6ImxheW91dCBmaXJzdCIsZWRpdFR5cGU6Im5vbmUifX19fSx7fV0sNzYxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2xpYiIpLGE9dCgiLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGksbyxzPXIubmFtZSxsPXIuaW5jbHVzaW9uQXR0cnx8InZpc2libGUiLGM9ZVtzXSx1PW4uaXNBcnJheU9yVHlwZWRBcnJheSh0W3NdKT90W3NdOltdLGg9ZVtzXT1bXSxmPWEuYXJyYXlUZW1wbGF0ZXIoZSxzLGwpO2ZvcihpPTA7aTx1Lmxlbmd0aDtpKyspe3ZhciBwPXVbaV07bi5pc1BsYWluT2JqZWN0KHApP289Zi5uZXdJdGVtKHApOihvPWYubmV3SXRlbSh7fSkpW2xdPSExLG8uX2luZGV4PWksITEhPT1vW2xdJiZyLmhhbmRsZUl0ZW1EZWZhdWx0cyhwLG8sZSxyKSxoLnB1c2gobyl9dmFyIGQ9Zi5kZWZhdWx0SXRlbXMoKTtmb3IoaT0wO2k8ZC5sZW5ndGg7aSsrKShvPWRbaV0pLl9pbmRleD1oLmxlbmd0aCxyLmhhbmRsZUl0ZW1EZWZhdWx0cyh7fSxvLGUscix7fSksaC5wdXNoKG8pO2lmKG4uaXNBcnJheU9yVHlwZWRBcnJheShjKSl7dmFyIGc9TWF0aC5taW4oYy5sZW5ndGgsaC5sZW5ndGgpO2ZvcihpPTA7aTxnO2krKyluLnJlbGlua1ByaXZhdGVLZXlzKGhbaV0sY1tpXSl9cmV0dXJuIGh9fSx7Ii4uL2xpYiI6NzE3LCIuLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo3NTV9XSw3NjI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vY29tcG9uZW50cy9meC9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPXt0eXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6W10sZGZsdDoic2NhdHRlciIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMiLF9ub1RlbXBsYXRpbmc6ITB9LHZpc2libGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbITAsITEsImxlZ2VuZG9ubHkiXSxkZmx0OiEwLGVkaXRUeXBlOiJjYWxjIn0sc2hvd2xlZ2VuZDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToic3R5bGUifSxsZWdlbmRncm91cDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGVkaXRUeXBlOiJzdHlsZSJ9LG9wYWNpdHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxLGVkaXRUeXBlOiJzdHlsZSJ9LG5hbWU6e3ZhbFR5cGU6InN0cmluZyIsZWRpdFR5cGU6InN0eWxlIn0sdWlkOnt2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJwbG90IixhbmltOiEwfSxpZHM6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIixhbmltOiEwfSxjdXN0b21kYXRhOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LG1ldGE6e3ZhbFR5cGU6ImFueSIsYXJyYXlPazohMCxlZGl0VHlwZToicGxvdCJ9LHNlbGVjdGVkcG9pbnRzOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjIn0saG92ZXJpbmZvOnt2YWxUeXBlOiJmbGFnbGlzdCIsZmxhZ3M6WyJ4IiwieSIsInoiLCJ0ZXh0IiwibmFtZSJdLGV4dHJhczpbImFsbCIsIm5vbmUiLCJza2lwIl0sYXJyYXlPazohMCxkZmx0OiJhbGwiLGVkaXRUeXBlOiJub25lIn0saG92ZXJsYWJlbDpuLmhvdmVybGFiZWwsc3RyZWFtOnt0b2tlbjp7dmFsVHlwZToic3RyaW5nIixub0JsYW5rOiEwLHN0cmljdDohMCxlZGl0VHlwZToiY2FsYyJ9LG1heHBvaW50czp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MWU0LGRmbHQ6NTAwLGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMifSx0cmFuc2Zvcm1zOntfaXNMaW5rZWRUb0FycmF5OiJ0cmFuc2Zvcm0iLGVkaXRUeXBlOiJjYWxjIn0sdWlyZXZpc2lvbjp7dmFsVHlwZToiYW55IixlZGl0VHlwZToibm9uZSJ9fX0seyIuLi9jb21wb25lbnRzL2Z4L2F0dHJpYnV0ZXMiOjYyMn1dLDc2MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e3hheGlzOnt2YWxUeXBlOiJzdWJwbG90aWQiLGRmbHQ6IngiLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0seWF4aXM6e3ZhbFR5cGU6InN1YnBsb3RpZCIsZGZsdDoieSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifX19LHt9XSw3NjQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxhPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkZQX1NBRkUsbz10KCIuLi8uLi9yZWdpc3RyeSIpO2Z1bmN0aW9uIHModCxlKXt2YXIgcixuLGk9W10sbz1sKGUpLHM9Yyh0LGUpLHU9cy5taW4saD1zLm1heDtpZigwPT09dS5sZW5ndGh8fDA9PT1oLmxlbmd0aClyZXR1cm4gYS5zaW1wbGVNYXAoZS5yYW5nZSxlLnIybCk7dmFyIGY9dVswXS52YWwscD1oWzBdLnZhbDtmb3Iocj0xO3I8dS5sZW5ndGgmJmY9PT1wO3IrKylmPU1hdGgubWluKGYsdVtyXS52YWwpO2ZvcihyPTE7cjxoLmxlbmd0aCYmZj09PXA7cisrKXA9TWF0aC5tYXgocCxoW3JdLnZhbCk7dmFyIGQ9ITE7aWYoZS5yYW5nZSl7dmFyIGc9YS5zaW1wbGVNYXAoZS5yYW5nZSxlLnIybCk7ZD1nWzFdPGdbMF19InJldmVyc2VkIj09PWUuYXV0b3JhbmdlJiYoZD0hMCxlLmF1dG9yYW5nZT0hMCk7dmFyIHYsbSx5LHgsYixfLHc9ZS5yYW5nZW1vZGUsaz0idG96ZXJvIj09PXcsVD0ibm9ubmVnYXRpdmUiPT09dyxNPWUuX2xlbmd0aCxBPU0vMTAsUz0wO2ZvcihyPTA7cjx1Lmxlbmd0aDtyKyspZm9yKHY9dVtyXSxuPTA7bjxoLmxlbmd0aDtuKyspKF89KG09aFtuXSkudmFsLXYudmFsKT4wJiYoKGI9TS1vKHYpLW8obSkpPkE/Xy9iPlMmJih5PXYseD1tLFM9Xy9iKTpfL00+UyYmKHk9e3ZhbDp2LnZhbCxwYWQ6MH0seD17dmFsOm0udmFsLHBhZDowfSxTPV8vTSkpO2lmKGY9PT1wKXt2YXIgRT1mLTEsTD1mKzE7aWYoaylpZigwPT09ZilpPVswLDFdO2Vsc2V7dmFyIEM9KGY+MD9oOnUpLnJlZHVjZShmdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLm1heCh0LG8oZSkpfSwwKSxQPWYvKDEtTWF0aC5taW4oLjUsQy9NKSk7aT1mPjA/WzAsUF06W1AsMF19ZWxzZSBpPVQ/W01hdGgubWF4KDAsRSksTWF0aC5tYXgoMSxMKV06W0UsTF19ZWxzZSBrPyh5LnZhbD49MCYmKHk9e3ZhbDowLHBhZDowfSkseC52YWw8PTAmJih4PXt2YWw6MCxwYWQ6MH0pKTpUJiYoeS52YWwtUypvKHkpPDAmJih5PXt2YWw6MCxwYWQ6MH0pLHgudmFsPD0wJiYoeD17dmFsOjEscGFkOjB9KSksUz0oeC52YWwteS52YWwpLyhNLW8oeSktbyh4KSksaT1beS52YWwtUypvKHkpLHgudmFsK1Mqbyh4KV07cmV0dXJuIGQmJmkucmV2ZXJzZSgpLGEuc2ltcGxlTWFwKGksZS5sMnJ8fE51bWJlcil9ZnVuY3Rpb24gbCh0KXt2YXIgZT10Ll9sZW5ndGgvMjA7cmV0dXJuImRvbWFpbiI9PT10LmNvbnN0cmFpbiYmdC5faW5wdXREb21haW4mJihlKj0odC5faW5wdXREb21haW5bMV0tdC5faW5wdXREb21haW5bMF0pLyh0LmRvbWFpblsxXS10LmRvbWFpblswXSkpLGZ1bmN0aW9uKHQpe3JldHVybiB0LnBhZCsodC5leHRyYXBhZD9lOjApfX1mdW5jdGlvbiBjKHQsZSl7dmFyIHIsbixhLGk9ZS5faWQsbz10Ll9mdWxsRGF0YSxzPXQuX2Z1bGxMYXlvdXQsbD1bXSxjPVtdO2Z1bmN0aW9uIGYodCxlKXtmb3Iocj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbz10W2Vbcl1dLHM9KG8uX2V4dHJlbWVzfHx7fSlbaV07aWYoITA9PT1vLnZpc2libGUmJnMpe2ZvcihuPTA7bjxzLm1pbi5sZW5ndGg7bisrKWE9cy5taW5bbl0sdShsLGEudmFsLGEucGFkLHtleHRyYXBhZDphLmV4dHJhcGFkfSk7Zm9yKG49MDtuPHMubWF4Lmxlbmd0aDtuKyspYT1zLm1heFtuXSxoKGMsYS52YWwsYS5wYWQse2V4dHJhcGFkOmEuZXh0cmFwYWR9KX19fXJldHVybiBmKG8sZS5fdHJhY2VJbmRpY2VzKSxmKHMuYW5ub3RhdGlvbnN8fFtdLGUuX2FubkluZGljZXN8fFtdKSxmKHMuc2hhcGVzfHxbXSxlLl9zaGFwZUluZGljZXN8fFtdKSx7bWluOmwsbWF4OmN9fWZ1bmN0aW9uIHUodCxlLHIsbil7Zih0LGUscixuLGQpfWZ1bmN0aW9uIGgodCxlLHIsbil7Zih0LGUscixuLGcpfWZ1bmN0aW9uIGYodCxlLHIsbixhKXtmb3IodmFyIGk9bi50b3plcm8sbz1uLmV4dHJhcGFkLHM9ITAsbD0wO2w8dC5sZW5ndGgmJnM7bCsrKXt2YXIgYz10W2xdO2lmKGEoYy52YWwsZSkmJmMucGFkPj1yJiYoYy5leHRyYXBhZHx8IW8pKXtzPSExO2JyZWFrfWEoZSxjLnZhbCkmJmMucGFkPD1yJiYob3x8IWMuZXh0cmFwYWQpJiYodC5zcGxpY2UobCwxKSxsLS0pfWlmKHMpe3ZhciB1PWkmJjA9PT1lO3QucHVzaCh7dmFsOmUscGFkOnU/MDpyLGV4dHJhcGFkOiF1JiZvfSl9fWZ1bmN0aW9uIHAodCl7cmV0dXJuIG4odCkmJk1hdGguYWJzKHQpPGl9ZnVuY3Rpb24gZCh0LGUpe3JldHVybiB0PD1lfWZ1bmN0aW9uIGcodCxlKXtyZXR1cm4gdD49ZX1lLmV4cG9ydHM9e2dldEF1dG9SYW5nZTpzLG1ha2VQYWRGbjpsLGRvQXV0b1JhbmdlOmZ1bmN0aW9uKHQsZSl7aWYoZS5zZXRTY2FsZSgpLGUuYXV0b3JhbmdlKXtlLnJhbmdlPXModCxlKSxlLl9yPWUucmFuZ2Uuc2xpY2UoKSxlLl9ybD1hLnNpbXBsZU1hcChlLl9yLGUucjJsKTt2YXIgcj1lLl9pbnB1dCxuPXt9O25bZS5fYXR0cisiLnJhbmdlIl09ZS5yYW5nZSxuW2UuX2F0dHIrIi5hdXRvcmFuZ2UiXT1lLmF1dG9yYW5nZSxvLmNhbGwoIl9zdG9yZURpcmVjdEdVSUVkaXQiLHQubGF5b3V0LHQuX2Z1bGxMYXlvdXQuX3ByZUdVSSxuKSxyLnJhbmdlPWUucmFuZ2Uuc2xpY2UoKSxyLmF1dG9yYW5nZT1lLmF1dG9yYW5nZX12YXIgaT1lLl9hbmNob3JBeGlzO2lmKGkmJmkucmFuZ2VzbGlkZXIpe3ZhciBsPWkucmFuZ2VzbGlkZXJbZS5fbmFtZV07bCYmImF1dG8iPT09bC5yYW5nZW1vZGUmJihsLnJhbmdlPXModCxlKSksaS5faW5wdXQucmFuZ2VzbGlkZXJbZS5fbmFtZV09YS5leHRlbmRGbGF0KHt9LGwpfX0sZmluZEV4dHJlbWVzOmZ1bmN0aW9uKHQsZSxyKXtyfHwocj17fSk7dC5fbXx8dC5zZXRTY2FsZSgpO3ZhciBhLG8scyxsLGMsZixkLGcsdixtPVtdLHk9W10seD1lLmxlbmd0aCxiPXIucGFkZGVkfHwhMSxfPXIudG96ZXJvJiYoImxpbmVhciI9PT10LnR5cGV8fCItIj09PXQudHlwZSksdz0ibG9nIj09PXQudHlwZSxrPSExLFQ9ci52cGFkTGluZWFyaXplZHx8ITE7ZnVuY3Rpb24gTSh0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiBrPSEwLGZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLm1heChOdW1iZXIodFtlXXx8MCksMCl9O3ZhciBlPU1hdGgubWF4KE51bWJlcih0fHwwKSwwKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZX19dmFyIEE9TSgodC5fbT4wP3IucHBhZHBsdXM6ci5wcGFkbWludXMpfHxyLnBwYWR8fDApLFM9TSgodC5fbT4wP3IucHBhZG1pbnVzOnIucHBhZHBsdXMpfHxyLnBwYWR8fDApLEU9TShyLnZwYWRwbHVzfHxyLnZwYWQpLEw9TShyLnZwYWRtaW51c3x8ci52cGFkKTtpZighayl7aWYoZz0xLzAsdj0tMS8wLHcpZm9yKGE9MDthPHg7YSsrKShvPWVbYV0pPGcmJm8+MCYmKGc9byksbz52JiZvPGkmJih2PW8pO2Vsc2UgZm9yKGE9MDthPHg7YSsrKShvPWVbYV0pPGcmJm8+LWkmJihnPW8pLG8+diYmbzxpJiYodj1vKTtlPVtnLHZdLHg9Mn12YXIgQz17dG96ZXJvOl8sZXh0cmFwYWQ6Yn07ZnVuY3Rpb24gUChyKXtzPWVbcl0sbihzKSYmKGY9QShyKSxkPVMociksVD8obD10LmMybChzKS1MKHIpLGM9dC5jMmwocykrRShyKSk6KGc9cy1MKHIpLHY9cytFKHIpLHcmJmc8di8xMCYmKGc9di8xMCksbD10LmMybChnKSxjPXQuYzJsKHYpKSxfJiYobD1NYXRoLm1pbigwLGwpLGM9TWF0aC5tYXgoMCxjKSkscChsKSYmdShtLGwsZCxDKSxwKGMpJiZoKHksYyxmLEMpKX12YXIgTz1NYXRoLm1pbig2LHgpO2ZvcihhPTA7YTxPO2ErKylQKGEpO2ZvcihhPXgtMTthPj1PO2EtLSlQKGEpO3JldHVybnttaW46bSxtYXg6eSxvcHRzOnJ9fSxjb25jYXRFeHRyZW1lczpjfX0seyIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo2OTMsIi4uLy4uL2xpYiI6NzE3LCIuLi8uLi9yZWdpc3RyeSI6ODQ2LCJmYXN0LWlzbnVtZXJpYyI6MjI4fV0sNzY1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksYT10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiLi4vLi4vcGxvdHMvcGxvdHMiKSxvPXQoIi4uLy4uL3JlZ2lzdHJ5Iikscz10KCIuLi8uLi9saWIiKSxsPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLGM9dCgiLi4vLi4vY29tcG9uZW50cy90aXRsZXMiKSx1PXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxoPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGY9dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLHA9dCgiLi9jbGVhbl90aWNrcyIpLGQ9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLGc9ZC5PTkVBVkdZRUFSLHY9ZC5PTkVBVkdNT05USCxtPWQuT05FREFZLHk9ZC5PTkVIT1VSLHg9ZC5PTkVNSU4sYj1kLk9ORVNFQyxfPWQuTUlOVVNfU0lHTix3PWQuQkFETlVNLGs9dCgiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCIpLFQ9ay5NSURfU0hJRlQsTT1rLkNBUF9TSElGVCxBPWsuTElORV9TUEFDSU5HLFM9ay5PUFBPU0lURV9TSURFLEU9ZS5leHBvcnRzPXt9O0Uuc2V0Q29udmVydD10KCIuL3NldF9jb252ZXJ0Iik7dmFyIEw9dCgiLi9heGlzX2F1dG90eXBlIiksQz10KCIuL2F4aXNfaWRzIik7RS5pZDJuYW1lPUMuaWQybmFtZSxFLm5hbWUyaWQ9Qy5uYW1lMmlkLEUuY2xlYW5JZD1DLmNsZWFuSWQsRS5saXN0PUMubGlzdCxFLmxpc3RJZHM9Qy5saXN0SWRzLEUuZ2V0RnJvbUlkPUMuZ2V0RnJvbUlkLEUuZ2V0RnJvbVRyYWNlPUMuZ2V0RnJvbVRyYWNlO3ZhciBQPXQoIi4vYXV0b3JhbmdlIik7RS5nZXRBdXRvUmFuZ2U9UC5nZXRBdXRvUmFuZ2UsRS5maW5kRXh0cmVtZXM9UC5maW5kRXh0cmVtZXMsRS5jb2VyY2VSZWY9ZnVuY3Rpb24odCxlLHIsbixhLGkpe3ZhciBvPW4uY2hhckF0KG4ubGVuZ3RoLTEpLGw9ci5fZnVsbExheW91dC5fc3VicGxvdHNbbysiYXhpcyJdLGM9bisicmVmIix1PXt9O3JldHVybiBhfHwoYT1sWzBdfHxpKSxpfHwoaT1hKSx1W2NdPXt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6bC5jb25jYXQoaT9baV06W10pLGRmbHQ6YX0scy5jb2VyY2UodCxlLHUsYyl9LEUuY29lcmNlUG9zaXRpb249ZnVuY3Rpb24odCxlLHIsbixhLGkpe3ZhciBvLGw7aWYoInBhcGVyIj09PW58fCJwaXhlbCI9PT1uKW89cy5lbnN1cmVOdW1iZXIsbD1yKGEsaSk7ZWxzZXt2YXIgYz1FLmdldEZyb21JZChlLG4pO2w9cihhLGk9Yy5mcmFjdGlvbjJyKGkpKSxvPWMuY2xlYW5Qb3N9dFthXT1vKGwpfSxFLmNsZWFuUG9zaXRpb249ZnVuY3Rpb24odCxlLHIpe3JldHVybigicGFwZXIiPT09cnx8InBpeGVsIj09PXI/cy5lbnN1cmVOdW1iZXI6RS5nZXRGcm9tSWQoZSxyKS5jbGVhblBvcykodCl9LEUucmVkcmF3Q29tcG9uZW50cz1mdW5jdGlvbih0LGUpe2U9ZXx8RS5saXN0SWRzKHQpO3ZhciByPXQuX2Z1bGxMYXlvdXQ7ZnVuY3Rpb24gbihuLGEsaSxzKXtmb3IodmFyIGw9by5nZXRDb21wb25lbnRNZXRob2QobixhKSxjPXt9LHU9MDt1PGUubGVuZ3RoO3UrKylmb3IodmFyIGg9cltFLmlkMm5hbWUoZVt1XSldW2ldLGY9MDtmPGgubGVuZ3RoO2YrKyl7dmFyIHA9aFtmXTtpZighY1twXSYmKGwodCxwKSxjW3BdPTEscykpcmV0dXJufX1uKCJhbm5vdGF0aW9ucyIsImRyYXdPbmUiLCJfYW5uSW5kaWNlcyIpLG4oInNoYXBlcyIsImRyYXdPbmUiLCJfc2hhcGVJbmRpY2VzIiksbigiaW1hZ2VzIiwiZHJhdyIsIl9pbWdJbmRpY2VzIiwhMCl9O3ZhciBPPUUuZ2V0RGF0YUNvbnZlcnNpb25zPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhLGk9IngiPT09cnx8InkiPT09cnx8InoiPT09cj9yOm47aWYoQXJyYXkuaXNBcnJheShpKSl7aWYoYT17dHlwZTpMKG4pLF9jYXRlZ29yaWVzOltdfSxFLnNldENvbnZlcnQoYSksImNhdGVnb3J5Ij09PWEudHlwZSlmb3IodmFyIG89MDtvPG4ubGVuZ3RoO28rKylhLmQyYyhuW29dKX1lbHNlIGE9RS5nZXRGcm9tVHJhY2UodCxlLGkpO3JldHVybiBhP3tkMmM6YS5kMmMsYzJkOmEuYzJkfToiaWRzIj09PWk/e2QyYzpJLGMyZDpJfTp7ZDJjOnosYzJkOnp9fTtmdW5jdGlvbiB6KHQpe3JldHVybit0fWZ1bmN0aW9uIEkodCl7cmV0dXJuIFN0cmluZyh0KX1FLmdldERhdGFUb0Nvb3JkRnVuYz1mdW5jdGlvbih0LGUscixuKXtyZXR1cm4gTyh0LGUscixuKS5kMmN9LEUuY291bnRlckxldHRlcj1mdW5jdGlvbih0KXt2YXIgZT10LmNoYXJBdCgwKTtyZXR1cm4ieCI9PT1lPyJ5IjoieSI9PT1lPyJ4Ijp2b2lkIDB9LEUubWluRHRpY2s9ZnVuY3Rpb24odCxlLHIsbil7LTE9PT1bImxvZyIsImNhdGVnb3J5IiwibXVsdGljYXRlZ29yeSJdLmluZGV4T2YodC50eXBlKSYmbj92b2lkIDA9PT10Ll9taW5EdGljaz8odC5fbWluRHRpY2s9ZSx0Ll9mb3JjZVRpY2swPXIpOnQuX21pbkR0aWNrJiYoKHQuX21pbkR0aWNrL2UrMWUtNiklMTwyZS02JiYoKHItdC5fZm9yY2VUaWNrMCkvZSUxKzEuMDAwMDAxKSUxPDJlLTY/KHQuX21pbkR0aWNrPWUsdC5fZm9yY2VUaWNrMD1yKTooKGUvdC5fbWluRHRpY2srMWUtNiklMT4yZS02fHwoKHItdC5fZm9yY2VUaWNrMCkvdC5fbWluRHRpY2slMSsxLjAwMDAwMSklMT4yZS02KSYmKHQuX21pbkR0aWNrPTApKTp0Ll9taW5EdGljaz0wfSxFLnNhdmVSYW5nZUluaXRpYWw9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9RS5saXN0KHQsIiIsITApLG49ITEsYT0wO2E8ci5sZW5ndGg7YSsrKXt2YXIgaT1yW2FdLG89dm9pZCAwPT09aS5fcmFuZ2VJbml0aWFsLHM9b3x8IShpLnJhbmdlWzBdPT09aS5fcmFuZ2VJbml0aWFsWzBdJiZpLnJhbmdlWzFdPT09aS5fcmFuZ2VJbml0aWFsWzFdKTsobyYmITE9PT1pLmF1dG9yYW5nZXx8ZSYmcykmJihpLl9yYW5nZUluaXRpYWw9aS5yYW5nZS5zbGljZSgpLG49ITApfXJldHVybiBufSxFLnNhdmVTaG93U3Bpa2VJbml0aWFsPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPUUubGlzdCh0LCIiLCEwKSxuPSExLGE9Im9uIixpPTA7aTxyLmxlbmd0aDtpKyspe3ZhciBvPXJbaV0scz12b2lkIDA9PT1vLl9zaG93U3Bpa2VJbml0aWFsLGw9c3x8IShvLnNob3dzcGlrZXM9PT1vLl9zaG93c3Bpa2VzKTsoc3x8ZSYmbCkmJihvLl9zaG93U3Bpa2VJbml0aWFsPW8uc2hvd3NwaWtlcyxuPSEwKSwib24iIT09YXx8by5zaG93c3Bpa2VzfHwoYT0ib2ZmIil9cmV0dXJuIHQuX2Z1bGxMYXlvdXQuX2NhcnRlc2lhblNwaWtlc0VuYWJsZWQ9YSxufSxFLmF1dG9CaW49ZnVuY3Rpb24odCxlLHIsbixpLG8pe3ZhciBsLGM9cy5hZ2dOdW1zKE1hdGgubWluLG51bGwsdCksdT1zLmFnZ051bXMoTWF0aC5tYXgsbnVsbCx0KTtpZigiY2F0ZWdvcnkiPT09ZS50eXBlfHwibXVsdGljYXRlZ29yeSI9PT1lLnR5cGUpcmV0dXJue3N0YXJ0OmMtLjUsZW5kOnUrLjUsc2l6ZTpNYXRoLm1heCgxLE1hdGgucm91bmQobyl8fDEpLF9kYXRhU3Bhbjp1LWN9O2lmKGl8fChpPWUuY2FsZW5kYXIpLGw9ImxvZyI9PT1lLnR5cGU/e3R5cGU6ImxpbmVhciIscmFuZ2U6W2MsdV19Ont0eXBlOmUudHlwZSxyYW5nZTpzLnNpbXBsZU1hcChbYyx1XSxlLmMyciwwLGkpLGNhbGVuZGFyOml9LEUuc2V0Q29udmVydChsKSxvPW8mJnAuZHRpY2sobyxsLnR5cGUpKWwuZHRpY2s9byxsLnRpY2swPXAudGljazAodm9pZCAwLGwudHlwZSxpKTtlbHNle3ZhciBoO2lmKHIpaD0odS1jKS9yO2Vsc2V7dmFyIGY9cy5kaXN0aW5jdFZhbHModCksZD1NYXRoLnBvdygxMCxNYXRoLmZsb29yKE1hdGgubG9nKGYubWluRGlmZikvTWF0aC5MTjEwKSksZz1kKnMucm91bmRVcChmLm1pbkRpZmYvZCxbLjksMS45LDQuOSw5LjldLCEwKTtoPU1hdGgubWF4KGcsMipzLnN0ZGV2KHQpL01hdGgucG93KHQubGVuZ3RoLG4/LjI1Oi40KSksYShoKXx8KGg9MSl9RS5hdXRvVGlja3MobCxoKX12YXIgdix5PWwuZHRpY2sseD1FLnRpY2tJbmNyZW1lbnQoRS50aWNrRmlyc3QobCkseSwicmV2ZXJzZSIsaSk7aWYoIm51bWJlciI9PXR5cGVvZiB5KXY9KHg9ZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgbz0wLHM9MCxsPTAsYz0wO2Z1bmN0aW9uIHUoZSl7cmV0dXJuKDErMTAwKihlLXQpL3IuZHRpY2spJTEwMDwyfWZvcih2YXIgaD0wO2g8ZS5sZW5ndGg7aCsrKWVbaF0lMT09MD9sKys6YShlW2hdKXx8YysrLHUoZVtoXSkmJm8rKyx1KGVbaF0rci5kdGljay8yKSYmcysrO3ZhciBmPWUubGVuZ3RoLWM7aWYobD09PWYmJiJkYXRlIiE9PXIudHlwZSlyLmR0aWNrPDE/dD1uLS41KnIuZHRpY2s6KHQtPS41KStyLmR0aWNrPG4mJih0Kz1yLmR0aWNrKTtlbHNlIGlmKHM8LjEqZiYmKG8+LjMqZnx8dShuKXx8dShpKSkpe3ZhciBwPXIuZHRpY2svMjt0Kz10K3A8bj9wOi1wfXJldHVybiB0fSh4LHQsbCxjLHUpKSsoMStNYXRoLmZsb29yKCh1LXgpL3kpKSp5O2Vsc2UgZm9yKCJNIj09PWwuZHRpY2suY2hhckF0KDApJiYoeD1mdW5jdGlvbih0LGUscixuLGEpe3ZhciBpPXMuZmluZEV4YWN0RGF0ZXMoZSxhKTtpZihpLmV4YWN0RGF5cz4uOCl7dmFyIG89TnVtYmVyKHIuc3Vic3RyKDEpKTtpLmV4YWN0WWVhcnM+LjgmJm8lMTI9PTA/dD1FLnRpY2tJbmNyZW1lbnQodCwiTTYiLCJyZXZlcnNlIikrMS41Km06aS5leGFjdE1vbnRocz4uOD90PUUudGlja0luY3JlbWVudCh0LCJNMSIsInJldmVyc2UiKSsxNS41Km06dC09bS8yO3ZhciBsPUUudGlja0luY3JlbWVudCh0LHIpO2lmKGw8PW4pcmV0dXJuIGx9cmV0dXJuIHR9KHgsdCx5LGMsaSkpLHY9eCwwO3Y8PXU7KXY9RS50aWNrSW5jcmVtZW50KHYseSwhMSxpKSwwO3JldHVybntzdGFydDplLmMycih4LDAsaSksZW5kOmUuYzJyKHYsMCxpKSxzaXplOnksX2RhdGFTcGFuOnUtY319LEUucHJlcFRpY2tzPWZ1bmN0aW9uKHQpe3ZhciBlPXMuc2ltcGxlTWFwKHQucmFuZ2UsdC5yMmwpO2lmKCJhdXRvIj09PXQudGlja21vZGV8fCF0LmR0aWNrKXt2YXIgcixuPXQubnRpY2tzO258fCgiY2F0ZWdvcnkiPT09dC50eXBlfHwibXVsdGljYXRlZ29yeSI9PT10LnR5cGU/KHI9dC50aWNrZm9udD8xLjIqKHQudGlja2ZvbnQuc2l6ZXx8MTIpOjE1LG49dC5fbGVuZ3RoL3IpOihyPSJ5Ij09PXQuX2lkLmNoYXJBdCgwKT80MDo4MCxuPXMuY29uc3RyYWluKHQuX2xlbmd0aC9yLDQsOSkrMSksInJhZGlhbGF4aXMiPT09dC5fbmFtZSYmKG4qPTIpKSwiYXJyYXkiPT09dC50aWNrbW9kZSYmKG4qPTEwMCksRS5hdXRvVGlja3ModCxNYXRoLmFicyhlWzFdLWVbMF0pL24pLHQuX21pbkR0aWNrPjAmJnQuZHRpY2s8Mip0Ll9taW5EdGljayYmKHQuZHRpY2s9dC5fbWluRHRpY2ssdC50aWNrMD10Lmwycih0Ll9mb3JjZVRpY2swKSl9dC50aWNrMHx8KHQudGljazA9ImRhdGUiPT09dC50eXBlPyIyMDAwLTAxLTAxIjowKSwiZGF0ZSI9PT10LnR5cGUmJnQuZHRpY2s8LjEmJih0LmR0aWNrPS4xKSxxKHQpfSxFLmNhbGNUaWNrcz1mdW5jdGlvbih0KXtFLnByZXBUaWNrcyh0KTt2YXIgZT1zLnNpbXBsZU1hcCh0LnJhbmdlLHQucjJsKTtpZigiYXJyYXkiPT09dC50aWNrbW9kZSlyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9dC50aWNrdmFscyxyPXQudGlja3RleHQsbj1uZXcgQXJyYXkoZS5sZW5ndGgpLGE9cy5zaW1wbGVNYXAodC5yYW5nZSx0LnIybCksaT0xLjAwMDEqYVswXS0xZS00KmFbMV0sbz0xLjAwMDEqYVsxXS0xZS00KmFbMF0sbD1NYXRoLm1pbihpLG8pLGM9TWF0aC5tYXgoaSxvKSx1PTA7QXJyYXkuaXNBcnJheShyKXx8KHI9W10pO3ZhciBoPSJjYXRlZ29yeSI9PT10LnR5cGU/dC5kMmxfbm9hZGQ6dC5kMmw7ImxvZyI9PT10LnR5cGUmJiJMIiE9PVN0cmluZyh0LmR0aWNrKS5jaGFyQXQoMCkmJih0LmR0aWNrPSJMIitNYXRoLnBvdygxMCxNYXRoLmZsb29yKE1hdGgubWluKHQucmFuZ2VbMF0sdC5yYW5nZVsxXSkpLTEpKTtmb3IodmFyIGY9MDtmPGUubGVuZ3RoO2YrKyl7dmFyIHA9aChlW2ZdKTtwPmwmJnA8YyYmKHZvaWQgMD09PXJbZl0/blt1XT1FLnRpY2tUZXh0KHQscCk6blt1XT1IKHQscCxTdHJpbmcocltmXSkpLHUrKyl9dTxlLmxlbmd0aCYmbi5zcGxpY2UodSxlLmxlbmd0aC11KTtyZXR1cm4gbn0odCk7dC5fdG1pbj1FLnRpY2tGaXJzdCh0KTt2YXIgcj0xLjAwMDEqZVswXS0xZS00KmVbMV0sbj0xLjAwMDEqZVsxXS0xZS00KmVbMF0saT1lWzFdPGVbMF07aWYodC5fdG1pbjxyIT09aSlyZXR1cm5bXTt2YXIgbz1bXTsiY2F0ZWdvcnkiIT09dC50eXBlJiYibXVsdGljYXRlZ29yeSIhPT10LnR5cGV8fChuPWk/TWF0aC5tYXgoLS41LG4pOk1hdGgubWluKHQuX2NhdGVnb3JpZXMubGVuZ3RoLS41LG4pKTtmb3IodmFyIGw9ImxvZyI9PT10LnR5cGUmJiEoYSh0LmR0aWNrKXx8IkwiPT09dC5kdGljay5jaGFyQXQoMCkpLGM9bnVsbCx1PU1hdGgubWF4KDFlMyx0Ll9sZW5ndGh8fDApLGg9dC5fdG1pbjsoaT9oPj1uOmg8PW4pJiYhKG8ubGVuZ3RoPnV8fGg9PT1jKTtoPUUudGlja0luY3JlbWVudChoLHQuZHRpY2ssaSx0LmNhbGVuZGFyKSl7Yz1oO3ZhciBmPSExO2wmJmghPT0oMHxoKSYmKGY9ITApLG8ucHVzaCh7bWlub3I6Zix2YWx1ZTpofSl9b3QodCkmJjM2MD09PU1hdGguYWJzKGVbMV0tZVswXSkmJm8ucG9wKCksdC5fdG1heD0ob1tvLmxlbmd0aC0xXXx8e30pLnZhbHVlLHQuX3ByZXZEYXRlSGVhZD0iIix0Ll9pbkNhbGNUaWNrcz0hMDtmb3IodmFyIHA9bmV3IEFycmF5KG8ubGVuZ3RoKSxkPTA7ZDxvLmxlbmd0aDtkKyspcFtkXT1FLnRpY2tUZXh0KHQsb1tkXS52YWx1ZSwhMSxvW2RdLm1pbm9yKTtyZXR1cm4gdC5faW5DYWxjVGlja3M9ITEscH07dmFyIEQ9WzIsNSwxMF0sUj1bMSwyLDMsNiwxMl0sRj1bMSwyLDUsMTAsMTUsMzBdLEI9WzEsMiwzLDcsMTRdLE49Wy0uMDQ2LDAsLjMwMSwuNDc3LC42MDIsLjY5OSwuNzc4LC44NDUsLjkwMywuOTU0LDFdLGo9Wy0uMzAxLDAsLjMwMSwuNjk5LDFdLFY9WzE1LDMwLDQ1LDkwLDE4MF07ZnVuY3Rpb24gVSh0LGUscil7cmV0dXJuIGUqcy5yb3VuZFVwKHQvZSxyKX1mdW5jdGlvbiBxKHQpe3ZhciBlPXQuZHRpY2s7aWYodC5fdGlja2V4cG9uZW50PTAsYShlKXx8InN0cmluZyI9PXR5cGVvZiBlfHwoZT0xKSwiY2F0ZWdvcnkiIT09dC50eXBlJiYibXVsdGljYXRlZ29yeSIhPT10LnR5cGV8fCh0Ll90aWNrcm91bmQ9bnVsbCksImRhdGUiPT09dC50eXBlKXt2YXIgcj10LnIybCh0LnRpY2swKSxuPXQubDJyKHIpLnJlcGxhY2UoLyheLXxpKS9nLCIiKSxpPW4ubGVuZ3RoO2lmKCJNIj09PVN0cmluZyhlKS5jaGFyQXQoMCkpaT4xMHx8IjAxLTAxIiE9PW4uc3Vic3RyKDUpP3QuX3RpY2tyb3VuZD0iZCI6dC5fdGlja3JvdW5kPStlLnN1YnN0cigxKSUxMj09MD8ieSI6Im0iO2Vsc2UgaWYoZT49bSYmaTw9MTB8fGU+PTE1Km0pdC5fdGlja3JvdW5kPSJkIjtlbHNlIGlmKGU+PXgmJmk8PTE2fHxlPj15KXQuX3RpY2tyb3VuZD0iTSI7ZWxzZSBpZihlPj1iJiZpPD0xOXx8ZT49eCl0Ll90aWNrcm91bmQ9IlMiO2Vsc2V7dmFyIG89dC5sMnIocitlKS5yZXBsYWNlKC9eLS8sIiIpLmxlbmd0aDt0Ll90aWNrcm91bmQ9TWF0aC5tYXgoaSxvKS0yMCx0Ll90aWNrcm91bmQ8MCYmKHQuX3RpY2tyb3VuZD00KX19ZWxzZSBpZihhKGUpfHwiTCI9PT1lLmNoYXJBdCgwKSl7dmFyIHM9dC5yYW5nZS5tYXAodC5yMmR8fE51bWJlcik7YShlKXx8KGU9TnVtYmVyKGUuc3Vic3RyKDEpKSksdC5fdGlja3JvdW5kPTItTWF0aC5mbG9vcihNYXRoLmxvZyhlKS9NYXRoLkxOMTArLjAxKTt2YXIgbD1NYXRoLm1heChNYXRoLmFicyhzWzBdKSxNYXRoLmFicyhzWzFdKSksYz1NYXRoLmZsb29yKE1hdGgubG9nKGwpL01hdGguTE4xMCsuMDEpO01hdGguYWJzKGMpPjMmJihZKHQuZXhwb25lbnRmb3JtYXQpJiYhVyhjKT90Ll90aWNrZXhwb25lbnQ9MypNYXRoLnJvdW5kKChjLTEpLzMpOnQuX3RpY2tleHBvbmVudD1jKX1lbHNlIHQuX3RpY2tyb3VuZD1udWxsfWZ1bmN0aW9uIEgodCxlLHIpe3ZhciBuPXQudGlja2ZvbnR8fHt9O3JldHVybnt4OmUsZHg6MCxkeTowLHRleHQ6cnx8IiIsZm9udFNpemU6bi5zaXplLGZvbnQ6bi5mYW1pbHksZm9udENvbG9yOm4uY29sb3J9fUUuYXV0b1RpY2tzPWZ1bmN0aW9uKHQsZSl7dmFyIHI7ZnVuY3Rpb24gbih0KXtyZXR1cm4gTWF0aC5wb3codCxNYXRoLmZsb29yKE1hdGgubG9nKGUpL01hdGguTE4xMCkpfWlmKCJkYXRlIj09PXQudHlwZSl7dC50aWNrMD1zLmRhdGVUaWNrMCh0LmNhbGVuZGFyKTt2YXIgaT0yKmU7aT5nPyhlLz1nLHI9bigxMCksdC5kdGljaz0iTSIrMTIqVShlLHIsRCkpOmk+dj8oZS89dix0LmR0aWNrPSJNIitVKGUsMSxSKSk6aT5tPyh0LmR0aWNrPVUoZSxtLEIpLHQudGljazA9cy5kYXRlVGljazAodC5jYWxlbmRhciwhMCkpOmk+eT90LmR0aWNrPVUoZSx5LFIpOmk+eD90LmR0aWNrPVUoZSx4LEYpOmk+Yj90LmR0aWNrPVUoZSxiLEYpOihyPW4oMTApLHQuZHRpY2s9VShlLHIsRCkpfWVsc2UgaWYoImxvZyI9PT10LnR5cGUpe3QudGljazA9MDt2YXIgbz1zLnNpbXBsZU1hcCh0LnJhbmdlLHQucjJsKTtpZihlPi43KXQuZHRpY2s9TWF0aC5jZWlsKGUpO2Vsc2UgaWYoTWF0aC5hYnMob1sxXS1vWzBdKTwxKXt2YXIgbD0xLjUqTWF0aC5hYnMoKG9bMV0tb1swXSkvZSk7ZT1NYXRoLmFicyhNYXRoLnBvdygxMCxvWzFdKS1NYXRoLnBvdygxMCxvWzBdKSkvbCxyPW4oMTApLHQuZHRpY2s9IkwiK1UoZSxyLEQpfWVsc2UgdC5kdGljaz1lPi4zPyJEMiI6IkQxIn1lbHNlImNhdGVnb3J5Ij09PXQudHlwZXx8Im11bHRpY2F0ZWdvcnkiPT09dC50eXBlPyh0LnRpY2swPTAsdC5kdGljaz1NYXRoLmNlaWwoTWF0aC5tYXgoZSwxKSkpOm90KHQpPyh0LnRpY2swPTAscj0xLHQuZHRpY2s9VShlLHIsVikpOih0LnRpY2swPTAscj1uKDEwKSx0LmR0aWNrPVUoZSxyLEQpKTtpZigwPT09dC5kdGljayYmKHQuZHRpY2s9MSksIWEodC5kdGljaykmJiJzdHJpbmciIT10eXBlb2YgdC5kdGljayl7dmFyIGM9dC5kdGljazt0aHJvdyB0LmR0aWNrPTEsImF4LmR0aWNrIGVycm9yOiAiK1N0cmluZyhjKX19LEUudGlja0luY3JlbWVudD1mdW5jdGlvbih0LGUscixpKXt2YXIgbz1yPy0xOjE7aWYoYShlKSlyZXR1cm4gdCtvKmU7dmFyIGw9ZS5jaGFyQXQoMCksYz1vKk51bWJlcihlLnN1YnN0cigxKSk7aWYoIk0iPT09bClyZXR1cm4gcy5pbmNyZW1lbnRNb250aCh0LGMsaSk7aWYoIkwiPT09bClyZXR1cm4gTWF0aC5sb2coTWF0aC5wb3coMTAsdCkrYykvTWF0aC5MTjEwO2lmKCJEIj09PWwpe3ZhciB1PSJEMiI9PT1lP2o6TixoPXQrLjAxKm8sZj1zLnJvdW5kVXAocy5tb2QoaCwxKSx1LHIpO3JldHVybiBNYXRoLmZsb29yKGgpK01hdGgubG9nKG4ucm91bmQoTWF0aC5wb3coMTAsZiksMSkpL01hdGguTE4xMH10aHJvdyJ1bnJlY29nbml6ZWQgZHRpY2sgIitTdHJpbmcoZSl9LEUudGlja0ZpcnN0PWZ1bmN0aW9uKHQpe3ZhciBlPXQucjJsfHxOdW1iZXIscj1zLnNpbXBsZU1hcCh0LnJhbmdlLGUpLGk9clsxXTxyWzBdLG89aT9NYXRoLmZsb29yOk1hdGguY2VpbCxsPTEuMDAwMSpyWzBdLTFlLTQqclsxXSxjPXQuZHRpY2ssdT1lKHQudGljazApO2lmKGEoYykpe3ZhciBoPW8oKGwtdSkvYykqYyt1O3JldHVybiJjYXRlZ29yeSIhPT10LnR5cGUmJiJtdWx0aWNhdGVnb3J5IiE9PXQudHlwZXx8KGg9cy5jb25zdHJhaW4oaCwwLHQuX2NhdGVnb3JpZXMubGVuZ3RoLTEpKSxofXZhciBmPWMuY2hhckF0KDApLHA9TnVtYmVyKGMuc3Vic3RyKDEpKTtpZigiTSI9PT1mKXtmb3IodmFyIGQsZyx2LG09MCx5PXU7bTwxMDspe2lmKCgoZD1FLnRpY2tJbmNyZW1lbnQoeSxjLGksdC5jYWxlbmRhcikpLWwpKih5LWwpPD0wKXJldHVybiBpP01hdGgubWluKHksZCk6TWF0aC5tYXgoeSxkKTtnPShsLSh5K2QpLzIpLyhkLXkpLHY9ZisoTWF0aC5hYnMoTWF0aC5yb3VuZChnKSl8fDEpKnAseT1FLnRpY2tJbmNyZW1lbnQoeSx2LGc8MD8haTppLHQuY2FsZW5kYXIpLG0rK31yZXR1cm4gcy5lcnJvcigidGlja0ZpcnN0IGRpZCBub3QgY29udmVyZ2UiLHQpLHl9aWYoIkwiPT09ZilyZXR1cm4gTWF0aC5sb2cobygoTWF0aC5wb3coMTAsbCktdSkvcCkqcCt1KS9NYXRoLkxOMTA7aWYoIkQiPT09Zil7dmFyIHg9IkQyIj09PWM/ajpOLGI9cy5yb3VuZFVwKHMubW9kKGwsMSkseCxpKTtyZXR1cm4gTWF0aC5mbG9vcihsKStNYXRoLmxvZyhuLnJvdW5kKE1hdGgucG93KDEwLGIpLDEpKS9NYXRoLkxOMTB9dGhyb3cidW5yZWNvZ25pemVkIGR0aWNrICIrU3RyaW5nKGMpfSxFLnRpY2tUZXh0PWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpLG89SCh0LGUpLGw9ImFycmF5Ij09PXQudGlja21vZGUsYz1yfHxsLHU9dC50eXBlLGg9ImNhdGVnb3J5Ij09PXU/dC5kMmxfbm9hZGQ6dC5kMmw7aWYobCYmQXJyYXkuaXNBcnJheSh0LnRpY2t0ZXh0KSl7dmFyIGY9cy5zaW1wbGVNYXAodC5yYW5nZSx0LnIybCkscD1NYXRoLmFicyhmWzFdLWZbMF0pLzFlNDtmb3IoaT0wO2k8dC50aWNrdGV4dC5sZW5ndGgmJiEoTWF0aC5hYnMoZS1oKHQudGlja3ZhbHNbaV0pKTxwKTtpKyspO2lmKGk8dC50aWNrdGV4dC5sZW5ndGgpcmV0dXJuIG8udGV4dD1TdHJpbmcodC50aWNrdGV4dFtpXSksb31mdW5jdGlvbiBkKG4pe2lmKHZvaWQgMD09PW4pcmV0dXJuITA7aWYocilyZXR1cm4ibm9uZSI9PT1uO3ZhciBhPXtmaXJzdDp0Ll90bWluLGxhc3Q6dC5fdG1heH1bbl07cmV0dXJuImFsbCIhPT1uJiZlIT09YX12YXIgZz1yPyJuZXZlciI6Im5vbmUiIT09dC5leHBvbmVudGZvcm1hdCYmZCh0LnNob3dleHBvbmVudCk/ImhpZGUiOiIiO2lmKCJkYXRlIj09PXU/ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9dC5fdGlja3JvdW5kLG89ciYmdC5ob3ZlcmZvcm1hdHx8RS5nZXRUaWNrRm9ybWF0KHQpO24mJihpPWEoaSk/NDp7eToibSIsbToiZCIsZDoiTSIsTToiUyIsUzo0fVtpXSk7dmFyIGwsYz1zLmZvcm1hdERhdGUoZS54LG8saSx0Ll9kYXRlRm9ybWF0LHQuY2FsZW5kYXIsdC5fZXh0cmFGb3JtYXQpLHU9Yy5pbmRleE9mKCJcbiIpOy0xIT09dSYmKGw9Yy5zdWJzdHIodSsxKSxjPWMuc3Vic3RyKDAsdSkpO24mJigiMDA6MDA6MDAiPT09Y3x8IjAwOjAwIj09PWM/KGM9bCxsPSIiKTo4PT09Yy5sZW5ndGgmJihjPWMucmVwbGFjZSgvOjAwJC8sIiIpKSk7bCYmKHI/ImQiPT09aT9jKz0iLCAiK2w6Yz1sKyhjPyIsICIrYzoiIik6dC5faW5DYWxjVGlja3MmJmw9PT10Ll9wcmV2RGF0ZUhlYWR8fChjKz0iPGJyPiIrbCx0Ll9wcmV2RGF0ZUhlYWQ9bCkpO2UudGV4dD1jfSh0LG8scixjKToibG9nIj09PXU/ZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgbz10LmR0aWNrLGw9ZS54LGM9dC50aWNrZm9ybWF0LHU9InN0cmluZyI9PXR5cGVvZiBvJiZvLmNoYXJBdCgwKTsibmV2ZXIiPT09aSYmKGk9IiIpO24mJiJMIiE9PXUmJihvPSJMMyIsdT0iTCIpO2lmKGN8fCJMIj09PXUpZS50ZXh0PVgoTWF0aC5wb3coMTAsbCksdCxpLG4pO2Vsc2UgaWYoYShvKXx8IkQiPT09dSYmcy5tb2QobCsuMDEsMSk8LjEpe3ZhciBoPU1hdGgucm91bmQobCksZj1NYXRoLmFicyhoKSxwPXQuZXhwb25lbnRmb3JtYXQ7InBvd2VyIj09PXB8fFkocCkmJlcoaCk/KGUudGV4dD0wPT09aD8xOjE9PT1oPyIxMCI6IjEwPHN1cD4iKyhoPjE/IiI6XykrZisiPC9zdXA+IixlLmZvbnRTaXplKj0xLjI1KTooImUiPT09cHx8IkUiPT09cCkmJmY+Mj9lLnRleHQ9IjEiK3ArKGg+MD8iKyI6XykrZjooZS50ZXh0PVgoTWF0aC5wb3coMTAsbCksdCwiIiwiZmFrZWhvdmVyIiksIkQxIj09PW8mJiJ5Ij09PXQuX2lkLmNoYXJBdCgwKSYmKGUuZHktPWUuZm9udFNpemUvNikpfWVsc2V7aWYoIkQiIT09dSl0aHJvdyJ1bnJlY29nbml6ZWQgZHRpY2sgIitTdHJpbmcobyk7ZS50ZXh0PVN0cmluZyhNYXRoLnJvdW5kKE1hdGgucG93KDEwLHMubW9kKGwsMSkpKSksZS5mb250U2l6ZSo9Ljc1fWlmKCJEMSI9PT10LmR0aWNrKXt2YXIgZD1TdHJpbmcoZS50ZXh0KS5jaGFyQXQoMCk7IjAiIT09ZCYmIjEiIT09ZHx8KCJ5Ij09PXQuX2lkLmNoYXJBdCgwKT9lLmR4LT1lLmZvbnRTaXplLzQ6KGUuZHkrPWUuZm9udFNpemUvMixlLmR4Kz0odC5yYW5nZVsxXT50LnJhbmdlWzBdPzE6LTEpKmUuZm9udFNpemUqKGw8MD8uNTouMjUpKSl9fSh0LG8sMCxjLGcpOiJjYXRlZ29yeSI9PT11P2Z1bmN0aW9uKHQsZSl7dmFyIHI9dC5fY2F0ZWdvcmllc1tNYXRoLnJvdW5kKGUueCldO3ZvaWQgMD09PXImJihyPSIiKTtlLnRleHQ9U3RyaW5nKHIpfSh0LG8pOiJtdWx0aWNhdGVnb3J5Ij09PXU/ZnVuY3Rpb24odCxlLHIpe3ZhciBuPU1hdGgucm91bmQoZS54KSxhPXQuX2NhdGVnb3JpZXNbbl18fFtdLGk9dm9pZCAwPT09YVsxXT8iIjpTdHJpbmcoYVsxXSksbz12b2lkIDA9PT1hWzBdPyIiOlN0cmluZyhhWzBdKTtyP2UudGV4dD1vKyIgLSAiK2k6KGUudGV4dD1pLGUudGV4dDI9byl9KHQsbyxyKTpvdCh0KT9mdW5jdGlvbih0LGUscixuLGEpe2lmKCJyYWRpYW5zIiE9PXQudGhldGF1bml0fHxyKWUudGV4dD1YKGUueCx0LGEsbik7ZWxzZXt2YXIgaT1lLngvMTgwO2lmKDA9PT1pKWUudGV4dD0iMCI7ZWxzZXt2YXIgbz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQsZSl7cmV0dXJuIE1hdGguYWJzKHQtZSk8PTFlLTZ9dmFyIHI9ZnVuY3Rpb24odCl7dmFyIHI9MTtmb3IoOyFlKE1hdGgucm91bmQodCpyKS9yLHQpOylyKj0xMDtyZXR1cm4gcn0odCksbj10KnIsYT1NYXRoLmFicyhmdW5jdGlvbiB0KHIsbil7cmV0dXJuIGUobiwwKT9yOnQobixyJW4pfShuLHIpKTtyZXR1cm5bTWF0aC5yb3VuZChuL2EpLE1hdGgucm91bmQoci9hKV19KGkpO2lmKG9bMV0+PTEwMCllLnRleHQ9WChzLmRlZzJyYWQoZS54KSx0LGEsbik7ZWxzZXt2YXIgbD1lLng8MDsxPT09b1sxXT8xPT09b1swXT9lLnRleHQ9Ilx1MDNjMCI6ZS50ZXh0PW9bMF0rIlx1MDNjMCI6ZS50ZXh0PVsiPHN1cD4iLG9bMF0sIjwvc3VwPiIsIlx1MjA0NCIsIjxzdWI+IixvWzFdLCI8L3N1Yj4iLCJcdTAzYzAiXS5qb2luKCIiKSxsJiYoZS50ZXh0PV8rZS50ZXh0KX19fX0odCxvLHIsYyxnKTpmdW5jdGlvbih0LGUscixuLGEpeyJuZXZlciI9PT1hP2E9IiI6ImFsbCI9PT10LnNob3dleHBvbmVudCYmTWF0aC5hYnMoZS54L3QuZHRpY2spPDFlLTYmJihhPSJoaWRlIik7ZS50ZXh0PVgoZS54LHQsYSxuKX0odCxvLDAsYyxnKSxufHwodC50aWNrcHJlZml4JiYhZCh0LnNob3d0aWNrcHJlZml4KSYmKG8udGV4dD10LnRpY2twcmVmaXgrby50ZXh0KSx0LnRpY2tzdWZmaXgmJiFkKHQuc2hvd3RpY2tzdWZmaXgpJiYoby50ZXh0Kz10LnRpY2tzdWZmaXgpKSwiYm91bmRhcmllcyI9PT10LnRpY2tzb258fHQuc2hvd2RpdmlkZXJzKXt2YXIgdj1mdW5jdGlvbihlKXt2YXIgcj10LmwycChlKTtyZXR1cm4gcj49MCYmcjw9dC5fbGVuZ3RoP2U6bnVsbH07by54Ym5kPVt2KG8ueC0uNSksdihvLngrdC5kdGljay0uNSldfXJldHVybiBvfSxFLmhvdmVyTGFiZWxUZXh0PWZ1bmN0aW9uKHQsZSxyKXtpZihyIT09dyYmciE9PWUpcmV0dXJuIEUuaG92ZXJMYWJlbFRleHQodCxlKSsiIC0gIitFLmhvdmVyTGFiZWxUZXh0KHQscik7dmFyIG49ImxvZyI9PT10LnR5cGUmJmU8PTAsYT1FLnRpY2tUZXh0KHQsdC5jMmwobj8tZTplKSwiaG92ZXIiKS50ZXh0O3JldHVybiBuPzA9PT1lPyIwIjpfK2E6YX07dmFyIEc9WyJmIiwicCIsIm4iLCJcdTAzYmMiLCJtIiwiIiwiayIsIk0iLCJHIiwiVCJdO2Z1bmN0aW9uIFkodCl7cmV0dXJuIlNJIj09PXR8fCJCIj09PXR9ZnVuY3Rpb24gVyh0KXtyZXR1cm4gdD4xNHx8dDwtMTV9ZnVuY3Rpb24gWCh0LGUscixuKXt2YXIgaT10PDAsbz1lLl90aWNrcm91bmQsbD1yfHxlLmV4cG9uZW50Zm9ybWF0fHwiQiIsYz1lLl90aWNrZXhwb25lbnQsdT1FLmdldFRpY2tGb3JtYXQoZSksaD1lLnNlcGFyYXRldGhvdXNhbmRzO2lmKG4pe3ZhciBmPXtleHBvbmVudGZvcm1hdDpsLGR0aWNrOiJub25lIj09PWUuc2hvd2V4cG9uZW50P2UuZHRpY2s6YSh0KSYmTWF0aC5hYnModCl8fDEscmFuZ2U6Im5vbmUiPT09ZS5zaG93ZXhwb25lbnQ/ZS5yYW5nZS5tYXAoZS5yMmQpOlswLHR8fDFdfTtxKGYpLG89KE51bWJlcihmLl90aWNrcm91bmQpfHwwKSs0LGM9Zi5fdGlja2V4cG9uZW50LGUuaG92ZXJmb3JtYXQmJih1PWUuaG92ZXJmb3JtYXQpfWlmKHUpcmV0dXJuIGUuX251bUZvcm1hdCh1KSh0KS5yZXBsYWNlKC8tL2csXyk7dmFyIHAsZD1NYXRoLnBvdygxMCwtbykvMjtpZigibm9uZSI9PT1sJiYoYz0wKSwodD1NYXRoLmFicyh0KSk8ZCl0PSIwIixpPSExO2Vsc2V7aWYodCs9ZCxjJiYodCo9TWF0aC5wb3coMTAsLWMpLG8rPWMpLDA9PT1vKXQ9U3RyaW5nKE1hdGguZmxvb3IodCkpO2Vsc2UgaWYobzwwKXt0PSh0PVN0cmluZyhNYXRoLnJvdW5kKHQpKSkuc3Vic3RyKDAsdC5sZW5ndGgrbyk7Zm9yKHZhciBnPW87ZzwwO2crKyl0Kz0iMCJ9ZWxzZXt2YXIgdj0odD1TdHJpbmcodCkpLmluZGV4T2YoIi4iKSsxO3YmJih0PXQuc3Vic3RyKDAsditvKS5yZXBsYWNlKC9cLj8wKyQvLCIiKSl9dD1zLm51bVNlcGFyYXRlKHQsZS5fc2VwYXJhdG9ycyxoKX1jJiYiaGlkZSIhPT1sJiYoWShsKSYmVyhjKSYmKGw9InBvd2VyIikscD1jPDA/XystYzoicG93ZXIiIT09bD8iKyIrYzpTdHJpbmcoYyksImUiPT09bHx8IkUiPT09bD90Kz1sK3A6InBvd2VyIj09PWw/dCs9Ilx4ZDcxMDxzdXA+IitwKyI8L3N1cD4iOiJCIj09PWwmJjk9PT1jP3QrPSJCIjpZKGwpJiYodCs9R1tjLzMrNV0pKTtyZXR1cm4gaT9fK3Q6dH1mdW5jdGlvbiBaKHQsZSl7Zm9yKHZhciByPVtdLG49e30sYT0wO2E8ZS5sZW5ndGg7YSsrKXt2YXIgaT1lW2FdO25baS50ZXh0Ml0/bltpLnRleHQyXS5wdXNoKGkueCk6bltpLnRleHQyXT1baS54XX1mb3IodmFyIG8gaW4gbilyLnB1c2goSCh0LHMuaW50ZXJwKG5bb10sLjUpLG8pKTtyZXR1cm4gcn1mdW5jdGlvbiBKKHQpe3JldHVyblt0LnRleHQsdC54LHQuYXhJbmZvLHQuZm9udCx0LmZvbnRTaXplLHQuZm9udENvbG9yXS5qb2luKCJfIil9ZnVuY3Rpb24gSyh0KXt2YXIgZT10LnRpdGxlLmZvbnQuc2l6ZSxyPSh0LnRpdGxlLnRleHQubWF0Y2gobC5CUl9UQUdfQUxMKXx8W10pLmxlbmd0aDtyZXR1cm4gdC50aXRsZS5oYXNPd25Qcm9wZXJ0eSgic3RhbmRvZmYiKT9yP2UqKE0rcipBKTplKk06cj9lKihyKzEpKkE6ZX1mdW5jdGlvbiBRKHQsZSl7dmFyIHI9dC5sMnAoZSk7cmV0dXJuIHI+MSYmcjx0Ll9sZW5ndGgtMX1mdW5jdGlvbiAkKHQpe3ZhciBlPW4uc2VsZWN0KHQpLHI9ZS5zZWxlY3QoIi50ZXh0LW1hdGgtZ3JvdXAiKTtyZXR1cm4gci5lbXB0eSgpP2Uuc2VsZWN0KCJ0ZXh0Iik6cn1mdW5jdGlvbiB0dCh0KXtyZXR1cm4gdC5faWQrIi5hdXRvbWFyZ2luIn1mdW5jdGlvbiBldCh0KXtyZXR1cm4gdHQodCkrIi5taXJyb3IifWZ1bmN0aW9uIHJ0KHQpe3JldHVybiB0Ll9pZCsiLnJhbmdlc2xpZGVyIn1mdW5jdGlvbiBudCh0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKS0xPT09dC5pbmRleE9mKGVbcl0pJiZ0LnB1c2goZVtyXSl9ZnVuY3Rpb24gYXQodCxlLHIpe3ZhciBuLGEsaT1bXSxvPVtdLGw9dC5sYXlvdXQ7Zm9yKG49MDtuPGUubGVuZ3RoO24rKylpLnB1c2goRS5nZXRGcm9tSWQodCxlW25dKSk7Zm9yKG49MDtuPHIubGVuZ3RoO24rKylvLnB1c2goRS5nZXRGcm9tSWQodCxyW25dKSk7dmFyIGM9T2JqZWN0LmtleXMoZiksdT1bImFuY2hvciIsImRvbWFpbiIsIm92ZXJsYXlpbmciLCJwb3NpdGlvbiIsInNpZGUiLCJ0aWNrYW5nbGUiLCJlZGl0VHlwZSJdLGg9WyJsaW5lYXIiLCJsb2ciXTtmb3Iobj0wO248Yy5sZW5ndGg7bisrKXt2YXIgcD1jW25dLGQ9aVswXVtwXSxnPW9bMF1bcF0sdj0hMCxtPSExLHk9ITE7aWYoIl8iIT09cC5jaGFyQXQoMCkmJiJmdW5jdGlvbiIhPXR5cGVvZiBkJiYtMT09PXUuaW5kZXhPZihwKSl7Zm9yKGE9MTthPGkubGVuZ3RoJiZ2O2ErKyl7dmFyIHg9aVthXVtwXTsidHlwZSI9PT1wJiYtMSE9PWguaW5kZXhPZihkKSYmLTEhPT1oLmluZGV4T2YoeCkmJmQhPT14P209ITA6eCE9PWQmJih2PSExKX1mb3IoYT0xO2E8by5sZW5ndGgmJnY7YSsrKXt2YXIgYj1vW2FdW3BdOyJ0eXBlIj09PXAmJi0xIT09aC5pbmRleE9mKGcpJiYtMSE9PWguaW5kZXhPZihiKSYmZyE9PWI/eT0hMDpvW2FdW3BdIT09ZyYmKHY9ITEpfXYmJihtJiYobFtpWzBdLl9uYW1lXS50eXBlPSJsaW5lYXIiKSx5JiYobFtvWzBdLl9uYW1lXS50eXBlPSJsaW5lYXIiKSxpdChsLHAsaSxvLHQuX2Z1bGxMYXlvdXQuX2RmbHRUaXRsZSkpfX1mb3Iobj0wO248dC5fZnVsbExheW91dC5hbm5vdGF0aW9ucy5sZW5ndGg7bisrKXt2YXIgXz10Ll9mdWxsTGF5b3V0LmFubm90YXRpb25zW25dOy0xIT09ZS5pbmRleE9mKF8ueHJlZikmJi0xIT09ci5pbmRleE9mKF8ueXJlZikmJnMuc3dhcEF0dHJzKGwuYW5ub3RhdGlvbnNbbl0sWyI/Il0pfX1mdW5jdGlvbiBpdCh0LGUscixuLGEpe3ZhciBpLG89cy5uZXN0ZWRQcm9wZXJ0eSxsPW8odFtyWzBdLl9uYW1lXSxlKS5nZXQoKSxjPW8odFtuWzBdLl9uYW1lXSxlKS5nZXQoKTtmb3IoInRpdGxlIj09PWUmJihsJiZsLnRleHQ9PT1hLngmJihsLnRleHQ9YS55KSxjJiZjLnRleHQ9PT1hLnkmJihjLnRleHQ9YS54KSksaT0wO2k8ci5sZW5ndGg7aSsrKW8odCxyW2ldLl9uYW1lKyIuIitlKS5zZXQoYyk7Zm9yKGk9MDtpPG4ubGVuZ3RoO2krKylvKHQsbltpXS5fbmFtZSsiLiIrZSkuc2V0KGwpfWZ1bmN0aW9uIG90KHQpe3JldHVybiJhbmd1bGFyYXhpcyI9PT10Ll9pZH1FLmdldFRpY2tGb3JtYXQ9ZnVuY3Rpb24odCl7dmFyIGUscixuLGEsaSxvLHMsbDtmdW5jdGlvbiBjKHQpe3JldHVybiJzdHJpbmciIT10eXBlb2YgdD90Ok51bWJlcih0LnJlcGxhY2UoIk0iLCIiKSkqdn1mdW5jdGlvbiB1KHQsZSl7dmFyIHI9WyJMIiwiRCJdO2lmKHR5cGVvZiB0PT10eXBlb2YgZSl7aWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVybiB0LWU7dmFyIG49ci5pbmRleE9mKHQuY2hhckF0KDApKSxhPXIuaW5kZXhPZihlLmNoYXJBdCgwKSk7cmV0dXJuIG49PT1hP051bWJlcih0LnJlcGxhY2UoLyhMfEQpL2csIiIpKS1OdW1iZXIoZS5yZXBsYWNlKC8oTHxEKS9nLCIiKSk6bi1hfXJldHVybiJudW1iZXIiPT10eXBlb2YgdD8xOi0xfWZ1bmN0aW9uIGgodCxlKXt2YXIgcj1udWxsPT09ZVswXSxuPW51bGw9PT1lWzFdLGE9dSh0LGVbMF0pPj0wLGk9dSh0LGVbMV0pPD0wO3JldHVybihyfHxhKSYmKG58fGkpfWlmKHQudGlja2Zvcm1hdHN0b3BzJiZ0LnRpY2tmb3JtYXRzdG9wcy5sZW5ndGg+MClzd2l0Y2godC50eXBlKXtjYXNlImRhdGUiOmNhc2UibGluZWFyIjpmb3IoZT0wO2U8dC50aWNrZm9ybWF0c3RvcHMubGVuZ3RoO2UrKylpZigobj10LnRpY2tmb3JtYXRzdG9wc1tlXSkuZW5hYmxlZCYmKGE9dC5kdGljayxpPW4uZHRpY2tyYW5nZSxvPXZvaWQgMCxzPXZvaWQgMCxsPXZvaWQgMCxvPWN8fGZ1bmN0aW9uKHQpe3JldHVybiB0fSxzPWlbMF0sbD1pWzFdLCghcyYmIm51bWJlciIhPXR5cGVvZiBzfHxvKHMpPD1vKGEpKSYmKCFsJiYibnVtYmVyIiE9dHlwZW9mIGx8fG8obCk+PW8oYSkpKSl7cj1uO2JyZWFrfWJyZWFrO2Nhc2UibG9nIjpmb3IoZT0wO2U8dC50aWNrZm9ybWF0c3RvcHMubGVuZ3RoO2UrKylpZigobj10LnRpY2tmb3JtYXRzdG9wc1tlXSkuZW5hYmxlZCYmaCh0LmR0aWNrLG4uZHRpY2tyYW5nZSkpe3I9bjticmVha319cmV0dXJuIHI/ci52YWx1ZTp0LnRpY2tmb3JtYXR9LEUuZ2V0U3VicGxvdHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10Ll9mdWxsTGF5b3V0Ll9zdWJwbG90cyxuPXIuY2FydGVzaWFuLmNvbmNhdChyLmdsMmR8fFtdKSxhPWU/RS5maW5kU3VicGxvdHNXaXRoQXhpcyhuLGUpOm47cmV0dXJuIGEuc29ydChmdW5jdGlvbih0LGUpe3ZhciByPXQuc3Vic3RyKDEpLnNwbGl0KCJ5Iiksbj1lLnN1YnN0cigxKS5zcGxpdCgieSIpO3JldHVybiByWzBdPT09blswXT8rclsxXS0rblsxXTorclswXS0rblswXX0pLGF9LEUuZmluZFN1YnBsb3RzV2l0aEF4aXM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9bmV3IFJlZ0V4cCgieCI9PT1lLl9pZC5jaGFyQXQoMCk/Il4iK2UuX2lkKyJ5IjplLl9pZCsiJCIpLG49W10sYT0wO2E8dC5sZW5ndGg7YSsrKXt2YXIgaT10W2FdO3IudGVzdChpKSYmbi5wdXNoKGkpfXJldHVybiBufSxFLm1ha2VDbGlwUGF0aHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dDtpZighZS5faGFzT25seUxhcmdlU3Bsb21zKXt2YXIgcixhLGk9e19vZmZzZXQ6MCxfbGVuZ3RoOmUud2lkdGgsX2lkOiIifSxvPXtfb2Zmc2V0OjAsX2xlbmd0aDplLmhlaWdodCxfaWQ6IiJ9LHM9RS5saXN0KHQsIngiLCEwKSxsPUUubGlzdCh0LCJ5IiwhMCksYz1bXTtmb3Iocj0wO3I8cy5sZW5ndGg7cisrKWZvcihjLnB1c2goe3g6c1tyXSx5Om99KSxhPTA7YTxsLmxlbmd0aDthKyspMD09PXImJmMucHVzaCh7eDppLHk6bFthXX0pLGMucHVzaCh7eDpzW3JdLHk6bFthXX0pO3ZhciB1PWUuX2NsaXBzLnNlbGVjdEFsbCgiLmF4ZXNjbGlwIikuZGF0YShjLGZ1bmN0aW9uKHQpe3JldHVybiB0LnguX2lkK3QueS5faWR9KTt1LmVudGVyKCkuYXBwZW5kKCJjbGlwUGF0aCIpLmNsYXNzZWQoImF4ZXNjbGlwIiwhMCkuYXR0cigiaWQiLGZ1bmN0aW9uKHQpe3JldHVybiJjbGlwIitlLl91aWQrdC54Ll9pZCt0LnkuX2lkfSkuYXBwZW5kKCJyZWN0IiksdS5leGl0KCkucmVtb3ZlKCksdS5lYWNoKGZ1bmN0aW9uKHQpe24uc2VsZWN0KHRoaXMpLnNlbGVjdCgicmVjdCIpLmF0dHIoe3g6dC54Ll9vZmZzZXR8fDAseTp0LnkuX29mZnNldHx8MCx3aWR0aDp0LnguX2xlbmd0aHx8MSxoZWlnaHQ6dC55Ll9sZW5ndGh8fDF9KX0pfX0sRS5kcmF3PWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10Ll9mdWxsTGF5b3V0OyJyZWRyYXciPT09ZSYmbi5fcGFwZXIuc2VsZWN0QWxsKCJnLnN1YnBsb3QiKS5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0scj1uLl9wbG90c1tlXSxhPXIueGF4aXMsaT1yLnlheGlzO3IueGF4aXNsYXllci5zZWxlY3RBbGwoIi4iK2EuX2lkKyJ0aWNrIikucmVtb3ZlKCksci55YXhpc2xheWVyLnNlbGVjdEFsbCgiLiIraS5faWQrInRpY2siKS5yZW1vdmUoKSxyLnhheGlzbGF5ZXIuc2VsZWN0QWxsKCIuIithLl9pZCsidGljazIiKS5yZW1vdmUoKSxyLnlheGlzbGF5ZXIuc2VsZWN0QWxsKCIuIitpLl9pZCsidGljazIiKS5yZW1vdmUoKSxyLnhheGlzbGF5ZXIuc2VsZWN0QWxsKCIuIithLl9pZCsiZGl2aWRlciIpLnJlbW92ZSgpLHIueWF4aXNsYXllci5zZWxlY3RBbGwoIi4iK2kuX2lkKyJkaXZpZGVyIikucmVtb3ZlKCksci5ncmlkbGF5ZXImJnIuZ3JpZGxheWVyLnNlbGVjdEFsbCgicGF0aCIpLnJlbW92ZSgpLHIuemVyb2xpbmVsYXllciYmci56ZXJvbGluZWxheWVyLnNlbGVjdEFsbCgicGF0aCIpLnJlbW92ZSgpLG4uX2luZm9sYXllci5zZWxlY3QoIi5nLSIrYS5faWQrInRpdGxlIikucmVtb3ZlKCksbi5faW5mb2xheWVyLnNlbGVjdCgiLmctIitpLl9pZCsidGl0bGUiKS5yZW1vdmUoKX0pO3ZhciBhPWUmJiJyZWRyYXciIT09ZT9lOkUubGlzdElkcyh0KTtyZXR1cm4gcy5zeW5jT3JBc3luYyhhLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtpZihlKXt2YXIgbj1FLmdldEZyb21JZCh0LGUpLGE9RS5kcmF3T25lKHQsbixyKTtyZXR1cm4gbi5fcj1uLnJhbmdlLnNsaWNlKCksbi5fcmw9cy5zaW1wbGVNYXAobi5fcixuLnIybCksYX19fSkpfSxFLmRyYXdPbmU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGEsbDtyPXJ8fHt9LGUuc2V0U2NhbGUoKTt2YXIgZj10Ll9mdWxsTGF5b3V0LHA9ZS5faWQsZD1wLmNoYXJBdCgwKSxnPUUuY291bnRlckxldHRlcihwKSx2PWYuX3Bsb3RzW2UuX21haW5TdWJwbG90XTtpZih2KXt2YXIgbT12W2QrImF4aXNsYXllciJdLHk9ZS5fbWFpbkxpbmVQb3NpdGlvbix4PWUuX21haW5NaXJyb3JQb3NpdGlvbixiPWUuX3ZhbHM9RS5jYWxjVGlja3MoZSksXz1bZS5taXJyb3IseSx4XS5qb2luKCJfIik7Zm9yKG49MDtuPGIubGVuZ3RoO24rKyliW25dLmF4SW5mbz1fO2UuX3NlbGVjdGlvbnM9e30sZS5fdGlja0FuZ2xlcyYmKGUuX3ByZXZUaWNrQW5nbGVzPWUuX3RpY2tBbmdsZXMpLGUuX3RpY2tBbmdsZXM9e30sZS5fZGVwdGg9bnVsbDt2YXIgdz17fTtpZihlLnZpc2libGUpe3ZhciBrLFQsTT1FLm1ha2VUcmFuc0ZuKGUpO2lmKCJib3VuZGFyaWVzIj09PWUudGlja3Nvbil7dmFyIEw9ZnVuY3Rpb24odCxlKXt2YXIgcixuPVtdLGE9ZnVuY3Rpb24odCxlKXt2YXIgcj10LnhibmRbZV07bnVsbCE9PXImJm4ucHVzaChzLmV4dGVuZEZsYXQoe30sdCx7eDpyfSkpfTtpZihlLmxlbmd0aCl7Zm9yKHI9MDtyPGUubGVuZ3RoO3IrKylhKGVbcl0sMCk7YShlW3ItMV0sMSl9cmV0dXJuIG59KDAsYik7VD1FLmNsaXBFbmRzKGUsTCksaz0iaW5zaWRlIj09PWUudGlja3M/VDpMfWVsc2UgVD1FLmNsaXBFbmRzKGUsYiksaz0iaW5zaWRlIj09PWUudGlja3M/VDpiO3ZhciBDPWUuX2dyaWRWYWxzPVQsUD1mdW5jdGlvbih0LGUpe3ZhciByLG4sYT1bXSxpPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC54Ym5kW2VdO251bGwhPT1yJiZhLnB1c2gocy5leHRlbmRGbGF0KHt9LHQse3g6cn0pKX07aWYodC5zaG93ZGl2aWRlcnMmJmUubGVuZ3RoKXtmb3Iocj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbz1lW3JdO28udGV4dDIhPT1uJiZpKG8sMCksbj1vLnRleHQyfWkoZVtyLTFdLDEpfXJldHVybiBhfShlLGIpO2lmKCFmLl9oYXNPbmx5TGFyZ2VTcGxvbXMpe3ZhciBPPWUuX3N1YnBsb3RzV2l0aCx6PXt9O2ZvcihuPTA7bjxPLmxlbmd0aDtuKyspe2E9T1tuXTt2YXIgST0obD1mLl9wbG90c1thXSlbZysiYXhpcyJdLEQ9SS5fbWFpbkF4aXMuX2lkO2lmKCF6W0RdKXt6W0RdPTE7dmFyIFI9IngiPT09ZD8iTTAsIitJLl9vZmZzZXQrInYiK0kuX2xlbmd0aDoiTSIrSS5fb2Zmc2V0KyIsMGgiK0kuX2xlbmd0aDtFLmRyYXdHcmlkKHQsZSx7dmFsczpDLGNvdW50ZXJBeGlzOkksbGF5ZXI6bC5ncmlkbGF5ZXIuc2VsZWN0KCIuIitwKSxwYXRoOlIsdHJhbnNGbjpNfSksRS5kcmF3WmVyb0xpbmUodCxlLHtjb3VudGVyQXhpczpJLGxheWVyOmwuemVyb2xpbmVsYXllcixwYXRoOlIsdHJhbnNGbjpNfSl9fX12YXIgRj1FLmdldFRpY2tTaWducyhlKSxCPVtdO2lmKGUudGlja3Mpe3ZhciBOLGosVixVPUUubWFrZVRpY2tQYXRoKGUseSxGWzJdKTtpZihlLl9hbmNob3JBeGlzJiZlLm1pcnJvciYmITAhPT1lLm1pcnJvcj8oTj1FLm1ha2VUaWNrUGF0aChlLHgsRlszXSksaj1VK04pOihOPSIiLGo9VSksZS5zaG93ZGl2aWRlcnMmJiJvdXRzaWRlIj09PWUudGlja3MmJiJib3VuZGFyaWVzIj09PWUudGlja3Nvbil7dmFyIHE9e307Zm9yKG49MDtuPFAubGVuZ3RoO24rKylxW1Bbbl0ueF09MTtWPWZ1bmN0aW9uKHQpe3JldHVybiBxW3QueF0/TjpqfX1lbHNlIFY9ajtFLmRyYXdUaWNrcyh0LGUse3ZhbHM6ayxsYXllcjptLHBhdGg6Vix0cmFuc0ZuOk19KSwiYWxsdGlja3MiPT09ZS5taXJyb3ImJihCPU9iamVjdC5rZXlzKGUuX2xpbmVwb3NpdGlvbnN8fHt9KSl9Zm9yKG49MDtuPEIubGVuZ3RoO24rKyl7YT1CW25dLGw9Zi5fcGxvdHNbYV07dmFyIEg9ZS5fbGluZXBvc2l0aW9uc1thXXx8W10sRz1FLm1ha2VUaWNrUGF0aChlLEhbMF0sRlswXSkrRS5tYWtlVGlja1BhdGgoZSxIWzFdLEZbMV0pO0UuZHJhd1RpY2tzKHQsZSx7dmFsczprLGxheWVyOmxbZCsiYXhpc2xheWVyIl0scGF0aDpHLHRyYW5zRm46TX0pfXZhciBZPVtdO2lmKFkucHVzaChmdW5jdGlvbigpe3JldHVybiBFLmRyYXdMYWJlbHModCxlLHt2YWxzOmIsbGF5ZXI6bSx0cmFuc0ZuOk0sbGFiZWxGbnM6RS5tYWtlTGFiZWxGbnMoZSx5KX0pfSksIm11bHRpY2F0ZWdvcnkiPT09ZS50eXBlKXt2YXIgVz17eDoyLHk6MTB9W2RdO1kucHVzaChmdW5jdGlvbigpe3ZhciByPXt4OiJoZWlnaHQiLHk6IndpZHRoIn1bZF0sbj1RKClbcl0rVysoZS5fdGlja0FuZ2xlc1twKyJ0aWNrIl0/ZS50aWNrZm9udC5zaXplKkE6MCk7cmV0dXJuIEUuZHJhd0xhYmVscyh0LGUse3ZhbHM6WihlLGIpLGxheWVyOm0sY2xzOnArInRpY2syIixyZXBvc2l0aW9uT25VcGRhdGU6ITAsc2Vjb25kYXJ5OiEwLHRyYW5zRm46TSxsYWJlbEZuczpFLm1ha2VMYWJlbEZucyhlLHkrbipGWzRdKX0pfSksWS5wdXNoKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX2RlcHRoPUZbNF0qKFEoInRpY2syIilbZS5zaWRlXS15KSxmdW5jdGlvbih0LGUscil7dmFyIG49ZS5faWQrImRpdmlkZXIiLGE9ci52YWxzLGk9ci5sYXllci5zZWxlY3RBbGwoInBhdGguIituKS5kYXRhKGEsSik7aS5leGl0KCkucmVtb3ZlKCksaS5lbnRlcigpLmluc2VydCgicGF0aCIsIjpmaXJzdC1jaGlsZCIpLmNsYXNzZWQobiwxKS5jbGFzc2VkKCJjcmlzcCIsMSkuY2FsbCh1LnN0cm9rZSxlLmRpdmlkZXJjb2xvcikuc3R5bGUoInN0cm9rZS13aWR0aCIsaC5jcmlzcFJvdW5kKHQsZS5kaXZpZGVyd2lkdGgsMSkrInB4IiksaS5hdHRyKCJ0cmFuc2Zvcm0iLHIudHJhbnNGbikuYXR0cigiZCIsci5wYXRoKX0odCxlLHt2YWxzOlAsbGF5ZXI6bSxwYXRoOkUubWFrZVRpY2tQYXRoKGUseSxGWzRdLGUuX2RlcHRoKSx0cmFuc0ZuOk19KX0pfWVsc2UgZS50aXRsZS5oYXNPd25Qcm9wZXJ0eSgic3RhbmRvZmYiKSYmWS5wdXNoKGZ1bmN0aW9uKCl7ZS5fZGVwdGg9Rls0XSooUSgpW2Uuc2lkZV0teSl9KTt2YXIgWD1vLmdldENvbXBvbmVudE1ldGhvZCgicmFuZ2VzbGlkZXIiLCJpc1Zpc2libGUiKShlKTtyZXR1cm4gWS5wdXNoKGZ1bmN0aW9uKCl7dmFyIHIsbixhLHMsbD1lLnNpZGUuY2hhckF0KDApLGM9U1tlLnNpZGVdLmNoYXJBdCgwKSx1PUUuZ2V0UHhQb3NpdGlvbih0LGUpLGg9Im91dHNpZGUiPT09ZS50aWNrcz9lLnRpY2tsZW46MDtpZigoZS5hdXRvbWFyZ2lufHxYKSYmKCJtdWx0aWNhdGVnb3J5Ij09PWUudHlwZT9yPVEoInRpY2syIik6KHI9USgpLCJ4Ij09PWQmJiJiIj09PWwmJihlLl9kZXB0aD1NYXRoLm1heChyLndpZHRoPjA/ci5ib3R0b20tdTowLGgpKSkpLGUuYXV0b21hcmdpbil7bj17eDowLHk6MCxyOjAsbDowLHQ6MCxiOjB9O3ZhciBwPVswLDFdO2lmKCJ4Ij09PWQpe2lmKCJiIj09PWw/bltsXT1lLl9kZXB0aDoobltsXT1lLl9kZXB0aD1NYXRoLm1heChyLndpZHRoPjA/dS1yLnRvcDowLGgpLHAucmV2ZXJzZSgpKSxyLndpZHRoPjApe3ZhciB2PXIucmlnaHQtKGUuX29mZnNldCtlLl9sZW5ndGgpO3Y+MCYmKG4ueHI9MSxuLnI9dik7dmFyIG09ZS5fb2Zmc2V0LXIubGVmdDttPjAmJihuLnhsPTAsbi5sPW0pfX1lbHNlIGlmKCJsIj09PWw/bltsXT1lLl9kZXB0aD1NYXRoLm1heChyLmhlaWdodD4wP3Utci5sZWZ0OjAsaCk6KG5bbF09ZS5fZGVwdGg9TWF0aC5tYXgoci5oZWlnaHQ+MD9yLnJpZ2h0LXU6MCxoKSxwLnJldmVyc2UoKSksci5oZWlnaHQ+MCl7dmFyIHk9ci5ib3R0b20tKGUuX29mZnNldCtlLl9sZW5ndGgpO3k+MCYmKG4ueWI9MCxuLmI9eSk7dmFyIHg9ZS5fb2Zmc2V0LXIudG9wO3g+MCYmKG4ueXQ9MSxuLnQ9eCl9bltnXT0iZnJlZSI9PT1lLmFuY2hvcj9lLnBvc2l0aW9uOmUuX2FuY2hvckF4aXMuZG9tYWluW3BbMF1dLGUudGl0bGUudGV4dCE9PWYuX2RmbHRUaXRsZVtkXSYmKG5bbF0rPUsoZSkrKGUudGl0bGUuc3RhbmRvZmZ8fDApKSxlLm1pcnJvciYmImZyZWUiIT09ZS5hbmNob3ImJigoYT17eDowLHk6MCxyOjAsbDowLHQ6MCxiOjB9KVtjXT1lLmxpbmV3aWR0aCxlLm1pcnJvciYmITAhPT1lLm1pcnJvciYmKGFbY10rPWgpLCEwPT09ZS5taXJyb3J8fCJ0aWNrcyI9PT1lLm1pcnJvcj9hW2ddPWUuX2FuY2hvckF4aXMuZG9tYWluW3BbMV1dOiJhbGwiIT09ZS5taXJyb3ImJiJhbGx0aWNrcyIhPT1lLm1pcnJvcnx8KGFbZ109W2UuX2NvdW50ZXJEb21haW5NaW4sZS5fY291bnRlckRvbWFpbk1heF1bcFsxXV0pKX1YJiYocz1vLmdldENvbXBvbmVudE1ldGhvZCgicmFuZ2VzbGlkZXIiLCJhdXRvTWFyZ2luT3B0cyIpKHQsZSkpLGkuYXV0b01hcmdpbih0LHR0KGUpLG4pLGkuYXV0b01hcmdpbih0LGV0KGUpLGEpLGkuYXV0b01hcmdpbih0LHJ0KGUpLHMpfSksci5za2lwVGl0bGV8fFgmJiJib3R0b20iPT09ZS5zaWRlfHxZLnB1c2goZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgcixuPXQuX2Z1bGxMYXlvdXQsYT1lLl9pZCxpPWEuY2hhckF0KDApLG89ZS50aXRsZS5mb250LnNpemU7aWYoZS50aXRsZS5oYXNPd25Qcm9wZXJ0eSgic3RhbmRvZmYiKSlyPWUuX2RlcHRoK2UudGl0bGUuc3RhbmRvZmYrSyhlKTtlbHNle2lmKCJtdWx0aWNhdGVnb3J5Ij09PWUudHlwZSlyPWUuX2RlcHRoO2Vsc2V7cj0xMCsxLjUqbysoZS5saW5ld2lkdGg/ZS5saW5ld2lkdGgtMTowKX1yKz0ieCI9PT1pPyJ0b3AiPT09ZS5zaWRlP28qKGUuc2hvd3RpY2tsYWJlbHM/MTowKTpvKihlLnNob3d0aWNrbGFiZWxzPzEuNTouNSk6InJpZ2h0Ij09PWUuc2lkZT9vKihlLnNob3d0aWNrbGFiZWxzPzE6LjUpOm8qKGUuc2hvd3RpY2tsYWJlbHM/LjU6MCl9dmFyIHMsbCx1LGYscD1FLmdldFB4UG9zaXRpb24odCxlKTsieCI9PT1pPyhsPWUuX29mZnNldCtlLl9sZW5ndGgvMix1PSJ0b3AiPT09ZS5zaWRlP3AtcjpwK3IpOih1PWUuX29mZnNldCtlLl9sZW5ndGgvMixsPSJyaWdodCI9PT1lLnNpZGU/cCtyOnAtcixzPXtyb3RhdGU6Ii05MCIsb2Zmc2V0OjB9KTtpZigibXVsdGljYXRlZ29yeSIhPT1lLnR5cGUpe3ZhciBkPWUuX3NlbGVjdGlvbnNbZS5faWQrInRpY2siXTtpZihmPXtzZWxlY3Rpb246ZCxzaWRlOmUuc2lkZX0sZCYmZC5ub2RlKCkmJmQubm9kZSgpLnBhcmVudE5vZGUpe3ZhciBnPWguZ2V0VHJhbnNsYXRlKGQubm9kZSgpLnBhcmVudE5vZGUpO2Yub2Zmc2V0TGVmdD1nLngsZi5vZmZzZXRUb3A9Zy55fWUudGl0bGUuaGFzT3duUHJvcGVydHkoInN0YW5kb2ZmIikmJihmLnBhZD0wKX1yZXR1cm4gYy5kcmF3KHQsYSsidGl0bGUiLHtwcm9wQ29udGFpbmVyOmUscHJvcE5hbWU6ZS5fbmFtZSsiLnRpdGxlLnRleHQiLHBsYWNlaG9sZGVyOm4uX2RmbHRUaXRsZVtpXSxhdm9pZDpmLHRyYW5zZm9ybTpzLGF0dHJpYnV0ZXM6e3g6bCx5OnUsInRleHQtYW5jaG9yIjoibWlkZGxlIn19KX0odCxlKX0pLHMuc3luY09yQXN5bmMoWSl9fWZ1bmN0aW9uIFEodCl7dmFyIHI9cCsodHx8InRpY2siKTtyZXR1cm4gd1tyXXx8KHdbcl09ZnVuY3Rpb24odCxlKXt2YXIgcixuLGEsaTt0Ll9zZWxlY3Rpb25zW2VdLnNpemUoKT8ocj0xLzAsbj0tMS8wLGE9MS8wLGk9LTEvMCx0Ll9zZWxlY3Rpb25zW2VdLmVhY2goZnVuY3Rpb24oKXt2YXIgdD0kKHRoaXMpLGU9aC5iQm94KHQubm9kZSgpLnBhcmVudE5vZGUpO3I9TWF0aC5taW4ocixlLnRvcCksbj1NYXRoLm1heChuLGUuYm90dG9tKSxhPU1hdGgubWluKGEsZS5sZWZ0KSxpPU1hdGgubWF4KGksZS5yaWdodCl9KSk6KHI9MCxuPTAsYT0wLGk9MCk7cmV0dXJue3RvcDpyLGJvdHRvbTpuLGxlZnQ6YSxyaWdodDppLGhlaWdodDpuLXIsd2lkdGg6aS1hfX0oZSxyKSksd1tyXX19LEUuZ2V0VGlja1NpZ25zPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2lkLmNoYXJBdCgwKSxyPXt4OiJ0b3AiLHk6InJpZ2h0In1bZV0sbj10LnNpZGU9PT1yPzE6LTEsYT1bLTEsMSxuLC1uXTtyZXR1cm4iaW5zaWRlIiE9PXQudGlja3M9PSgieCI9PT1lKSYmKGE9YS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuLXR9KSksdC5zaWRlJiZhLnB1c2goe2w6LTEsdDotMSxyOjEsYjoxfVt0LnNpZGUuY2hhckF0KDApXSksYX0sRS5tYWtlVHJhbnNGbj1mdW5jdGlvbih0KXt2YXIgZT10Ll9pZC5jaGFyQXQoMCkscj10Ll9vZmZzZXQ7cmV0dXJuIngiPT09ZT9mdW5jdGlvbihlKXtyZXR1cm4idHJhbnNsYXRlKCIrKHIrdC5sMnAoZS54KSkrIiwwKSJ9OmZ1bmN0aW9uKGUpe3JldHVybiJ0cmFuc2xhdGUoMCwiKyhyK3QubDJwKGUueCkpKyIpIn19LEUubWFrZVRpY2tQYXRoPWZ1bmN0aW9uKHQsZSxyLG4pe249dm9pZCAwIT09bj9uOnQudGlja2xlbjt2YXIgYT10Ll9pZC5jaGFyQXQoMCksaT0odC5saW5ld2lkdGh8fDEpLzI7cmV0dXJuIngiPT09YT8iTTAsIisoZStpKnIpKyJ2IituKnI6Ik0iKyhlK2kqcikrIiwwaCIrbipyfSxFLm1ha2VMYWJlbEZucz1mdW5jdGlvbih0LGUscil7dmFyIG49dC5faWQuY2hhckF0KDApLGk9ImJvdW5kYXJpZXMiIT09dC50aWNrc29uJiYib3V0c2lkZSI9PT10LnRpY2tzLG89MCxsPTA7aWYoaSYmKG8rPXQudGlja2xlbiksciYmIm91dHNpZGUiPT09dC50aWNrcyl7dmFyIGM9cy5kZWcycmFkKHIpO289dC50aWNrbGVuKk1hdGguY29zKGMpKzEsbD10LnRpY2tsZW4qTWF0aC5zaW4oYyl9dC5zaG93dGlja2xhYmVscyYmKGl8fHQuc2hvd2xpbmUpJiYobys9LjIqdC50aWNrZm9udC5zaXplKTt2YXIgdSxoLGYscCxkPXtsYWJlbFN0YW5kb2ZmOm8rPSh0LmxpbmV3aWR0aHx8MSkvMixsYWJlbFNoaWZ0Omx9O3JldHVybiJ4Ij09PW4/KHA9ImJvdHRvbSI9PT10LnNpZGU/MTotMSx1PWwqcCxoPWUrbypwLGY9ImJvdHRvbSI9PT10LnNpZGU/MTotLjIsZC54Rm49ZnVuY3Rpb24odCl7cmV0dXJuIHQuZHgrdX0sZC55Rm49ZnVuY3Rpb24odCl7cmV0dXJuIHQuZHkraCt0LmZvbnRTaXplKmZ9LGQuYW5jaG9yRm49ZnVuY3Rpb24odCxlKXtyZXR1cm4gYShlKSYmMCE9PWUmJjE4MCE9PWU/ZSpwPDA/ImVuZCI6InN0YXJ0IjoibWlkZGxlIn0sZC5oZWlnaHRGbj1mdW5jdGlvbihlLHIsbil7cmV0dXJuIHI8LTYwfHxyPjYwPy0uNSpuOiJ0b3AiPT09dC5zaWRlPy1uOjB9KToieSI9PT1uJiYocD0icmlnaHQiPT09dC5zaWRlPzE6LTEsdT1vLGg9LWwqcCxmPTkwPT09TWF0aC5hYnModC50aWNrYW5nbGUpPy41OjAsZC54Rm49ZnVuY3Rpb24odCl7cmV0dXJuIHQuZHgrZSsodSt0LmZvbnRTaXplKmYpKnB9LGQueUZuPWZ1bmN0aW9uKHQpe3JldHVybiB0LmR5K2grdC5mb250U2l6ZSpUfSxkLmFuY2hvckZuPWZ1bmN0aW9uKGUscil7cmV0dXJuIGEocikmJjkwPT09TWF0aC5hYnMocik/Im1pZGRsZSI6InJpZ2h0Ij09PXQuc2lkZT8ic3RhcnQiOiJlbmQifSxkLmhlaWdodEZuPWZ1bmN0aW9uKGUscixuKXtyZXR1cm4ocio9ImxlZnQiPT09dC5zaWRlPzE6LTEpPC0zMD8tbjpyPDMwPy0uNSpuOjB9KSxkfSxFLmRyYXdUaWNrcz1mdW5jdGlvbih0LGUscil7cj1yfHx7fTt2YXIgbj1lLl9pZCsidGljayIsYT1yLmxheWVyLnNlbGVjdEFsbCgicGF0aC4iK24pLmRhdGEoZS50aWNrcz9yLnZhbHM6W10sSik7YS5leGl0KCkucmVtb3ZlKCksYS5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQobiwxKS5jbGFzc2VkKCJ0aWNrcyIsMSkuY2xhc3NlZCgiY3Jpc3AiLCExIT09ci5jcmlzcCkuY2FsbCh1LnN0cm9rZSxlLnRpY2tjb2xvcikuc3R5bGUoInN0cm9rZS13aWR0aCIsaC5jcmlzcFJvdW5kKHQsZS50aWNrd2lkdGgsMSkrInB4IikuYXR0cigiZCIsci5wYXRoKSxhLmF0dHIoInRyYW5zZm9ybSIsci50cmFuc0ZuKX0sRS5kcmF3R3JpZD1mdW5jdGlvbih0LGUscil7cj1yfHx7fTt2YXIgbj1lLl9pZCsiZ3JpZCIsYT1yLnZhbHMsaT1yLmNvdW50ZXJBeGlzO2lmKCExPT09ZS5zaG93Z3JpZClhPVtdO2Vsc2UgaWYoaSYmRS5zaG91bGRTaG93WmVyb0xpbmUodCxlLGkpKWZvcih2YXIgbz0iYXJyYXkiPT09ZS50aWNrbW9kZSxzPTA7czxhLmxlbmd0aDtzKyspe3ZhciBsPWFbc10ueDtpZihvPyFsOk1hdGguYWJzKGwpPGUuZHRpY2svMTAwKXtpZihhPWEuc2xpY2UoMCxzKS5jb25jYXQoYS5zbGljZShzKzEpKSwhbylicmVhaztzLS19fXZhciBjPXIubGF5ZXIuc2VsZWN0QWxsKCJwYXRoLiIrbikuZGF0YShhLEopO2MuZXhpdCgpLnJlbW92ZSgpLGMuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKG4sMSkuY2xhc3NlZCgiY3Jpc3AiLCExIT09ci5jcmlzcCksZS5fZ3c9aC5jcmlzcFJvdW5kKHQsZS5ncmlkd2lkdGgsMSksYy5hdHRyKCJ0cmFuc2Zvcm0iLHIudHJhbnNGbikuYXR0cigiZCIsci5wYXRoKS5jYWxsKHUuc3Ryb2tlLGUuZ3JpZGNvbG9yfHwiI2RkZCIpLnN0eWxlKCJzdHJva2Utd2lkdGgiLGUuX2d3KyJweCIpLCJmdW5jdGlvbiI9PXR5cGVvZiByLnBhdGgmJmMuYXR0cigiZCIsci5wYXRoKX0sRS5kcmF3WmVyb0xpbmU9ZnVuY3Rpb24odCxlLHIpe3I9cnx8cjt2YXIgbj1lLl9pZCsiemwiLGE9RS5zaG91bGRTaG93WmVyb0xpbmUodCxlLHIuY291bnRlckF4aXMpLGk9ci5sYXllci5zZWxlY3RBbGwoInBhdGguIituKS5kYXRhKGE/W3t4OjAsaWQ6ZS5faWR9XTpbXSk7aS5leGl0KCkucmVtb3ZlKCksaS5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQobiwxKS5jbGFzc2VkKCJ6bCIsMSkuY2xhc3NlZCgiY3Jpc3AiLCExIT09ci5jcmlzcCkuZWFjaChmdW5jdGlvbigpe3IubGF5ZXIuc2VsZWN0QWxsKCJwYXRoIikuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiBDLmlkU29ydCh0LmlkLGUuaWQpfSl9KSxpLmF0dHIoInRyYW5zZm9ybSIsci50cmFuc0ZuKS5hdHRyKCJkIixyLnBhdGgpLmNhbGwodS5zdHJva2UsZS56ZXJvbGluZWNvbG9yfHx1LmRlZmF1bHRMaW5lKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixoLmNyaXNwUm91bmQodCxlLnplcm9saW5ld2lkdGgsZS5fZ3d8fDEpKyJweCIpfSxFLmRyYXdMYWJlbHM9ZnVuY3Rpb24odCxlLHIpe3I9cnx8e307dmFyIGk9dC5fZnVsbExheW91dCxvPWUuX2lkLGM9by5jaGFyQXQoMCksdT1yLmNsc3x8bysidGljayIsZj1yLnZhbHMscD1yLmxhYmVsRm5zLGQ9ci5zZWNvbmRhcnk/MDplLnRpY2thbmdsZSxnPShlLl9wcmV2VGlja0FuZ2xlc3x8e30pW3VdLHY9ci5sYXllci5zZWxlY3RBbGwoImcuIit1KS5kYXRhKGUuc2hvd3RpY2tsYWJlbHM/ZjpbXSxKKSxtPVtdO2Z1bmN0aW9uIHkodCxlKXt0LmVhY2goZnVuY3Rpb24odCl7dmFyIGk9bi5zZWxlY3QodGhpcyksbz1pLnNlbGVjdCgiLnRleHQtbWF0aC1ncm91cCIpLHM9cC5hbmNob3JGbih0LGUpLGM9ci50cmFuc0ZuLmNhbGwoaS5ub2RlKCksdCkrKGEoZSkmJjAhPStlPyIgcm90YXRlKCIrZSsiLCIrcC54Rm4odCkrIiwiKyhwLnlGbih0KS10LmZvbnRTaXplLzIpKyIpIjoiIiksdT1sLmxpbmVDb3VudChpKSxmPUEqdC5mb250U2l6ZSxkPXAuaGVpZ2h0Rm4odCxhKGUpPytlOjAsKHUtMSkqZik7aWYoZCYmKGMrPSIgdHJhbnNsYXRlKDAsICIrZCsiKSIpLG8uZW1wdHkoKSlpLnNlbGVjdCgidGV4dCIpLmF0dHIoe3RyYW5zZm9ybTpjLCJ0ZXh0LWFuY2hvciI6c30pO2Vsc2V7dmFyIGc9aC5iQm94KG8ubm9kZSgpKS53aWR0aCp7ZW5kOi0uNSxzdGFydDouNX1bc107by5hdHRyKCJ0cmFuc2Zvcm0iLGMrKGc/InRyYW5zbGF0ZSgiK2crIiwwKSI6IiIpKX19KX12LmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCh1LDEpLmFwcGVuZCgidGV4dCIpLmF0dHIoInRleHQtYW5jaG9yIiwibWlkZGxlIikuZWFjaChmdW5jdGlvbihlKXt2YXIgcj1uLnNlbGVjdCh0aGlzKSxhPXQuX3Byb21pc2VzLmxlbmd0aDtyLmNhbGwobC5wb3NpdGlvblRleHQscC54Rm4oZSkscC55Rm4oZSkpLmNhbGwoaC5mb250LGUuZm9udCxlLmZvbnRTaXplLGUuZm9udENvbG9yKS50ZXh0KGUudGV4dCkuY2FsbChsLmNvbnZlcnRUb1RzcGFucyx0KSx0Ll9wcm9taXNlc1thXT9tLnB1c2godC5fcHJvbWlzZXMucG9wKCkudGhlbihmdW5jdGlvbigpe3kocixkKX0pKTp5KHIsZCl9KSx2LmV4aXQoKS5yZW1vdmUoKSxyLnJlcG9zaXRpb25PblVwZGF0ZSYmdi5lYWNoKGZ1bmN0aW9uKHQpe24uc2VsZWN0KHRoaXMpLnNlbGVjdCgidGV4dCIpLmNhbGwobC5wb3NpdGlvblRleHQscC54Rm4odCkscC55Rm4odCkpfSkseSh2LGcrMT9nOmQpO3ZhciB4PW51bGw7ZS5fc2VsZWN0aW9ucyYmKGUuX3NlbGVjdGlvbnNbdV09dik7dmFyIGI9W2Z1bmN0aW9uKCl7cmV0dXJuIG0ubGVuZ3RoJiZQcm9taXNlLmFsbChtKX1dO2UuYXV0b21hcmdpbiYmaS5fcmVkcmF3RnJvbUF1dG9NYXJnaW5Db3VudCYmOTA9PT1nPyh4PTkwLGIucHVzaChmdW5jdGlvbigpe3kodixnKX0pKTpiLnB1c2goZnVuY3Rpb24oKXtpZih5KHYsZCksZi5sZW5ndGgmJiJ4Ij09PWMmJiFhKGQpJiYoImxvZyIhPT1lLnR5cGV8fCJEIiE9PVN0cmluZyhlLmR0aWNrKS5jaGFyQXQoMCkpKXt4PTA7dmFyIHQsbj0wLGk9W107aWYodi5lYWNoKGZ1bmN0aW9uKHQpe249TWF0aC5tYXgobix0LmZvbnRTaXplKTt2YXIgcj1lLmwycCh0LngpLGE9JCh0aGlzKSxvPWguYkJveChhLm5vZGUoKSk7aS5wdXNoKHt0b3A6MCxib3R0b206MTAsaGVpZ2h0OjEwLGxlZnQ6ci1vLndpZHRoLzIscmlnaHQ6citvLndpZHRoLzIrMix3aWR0aDpvLndpZHRoKzJ9KX0pLCJib3VuZGFyaWVzIiE9PWUudGlja3NvbiYmIWUuc2hvd2RpdmlkZXJzfHxyLnNlY29uZGFyeSl7dmFyIG89Zi5sZW5ndGgsbD1NYXRoLmFicygoZltvLTFdLngtZlswXS54KSplLl9tKS8oby0xKTwyLjUqbnx8Im11bHRpY2F0ZWdvcnkiPT09ZS50eXBlO2Zvcih0PTA7dDxpLmxlbmd0aC0xO3QrKylpZihzLmJCb3hJbnRlcnNlY3QoaVt0XSxpW3QrMV0pKXt4PWw/OTA6MzA7YnJlYWt9fWVsc2V7dmFyIHU9Mjtmb3IoZS50aWNrcyYmKHUrPWUudGlja3dpZHRoLzIpLHQ9MDt0PGkubGVuZ3RoO3QrKyl7dmFyIHA9Zlt0XS54Ym5kLGc9aVt0XTtpZihudWxsIT09cFswXSYmZy5sZWZ0LWUubDJwKHBbMF0pPHV8fG51bGwhPT1wWzFdJiZlLmwycChwWzFdKS1nLnJpZ2h0PHUpe3g9OTA7YnJlYWt9fX14JiZ5KHYseCl9fSksZS5fdGlja0FuZ2xlcyYmYi5wdXNoKGZ1bmN0aW9uKCl7ZS5fdGlja0FuZ2xlc1t1XT1udWxsPT09eD9hKGQpP2Q6MDp4fSk7dmFyIF89cy5zeW5jT3JBc3luYyhiKTtyZXR1cm4gXyYmXy50aGVuJiZ0Ll9wcm9taXNlcy5wdXNoKF8pLF99LEUuZ2V0UHhQb3NpdGlvbj1mdW5jdGlvbih0LGUpe3ZhciByLG49dC5fZnVsbExheW91dC5fc2l6ZSxhPWUuX2lkLmNoYXJBdCgwKSxpPWUuc2lkZTtyZXR1cm4iZnJlZSIhPT1lLmFuY2hvcj9yPWUuX2FuY2hvckF4aXM6IngiPT09YT9yPXtfb2Zmc2V0Om4udCsoMS0oZS5wb3NpdGlvbnx8MCkpKm4uaCxfbGVuZ3RoOjB9OiJ5Ij09PWEmJihyPXtfb2Zmc2V0Om4ubCsoZS5wb3NpdGlvbnx8MCkqbi53LF9sZW5ndGg6MH0pLCJ0b3AiPT09aXx8ImxlZnQiPT09aT9yLl9vZmZzZXQ6ImJvdHRvbSI9PT1pfHwicmlnaHQiPT09aT9yLl9vZmZzZXQrci5fbGVuZ3RoOnZvaWQgMH0sRS5zaG91bGRTaG93WmVyb0xpbmU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXMuc2ltcGxlTWFwKGUucmFuZ2UsZS5yMmwpO3JldHVybiBuWzBdKm5bMV08PTAmJmUuemVyb2xpbmUmJigibGluZWFyIj09PWUudHlwZXx8Ii0iPT09ZS50eXBlKSYmKFEoZSwwKXx8IWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPXIuX21haW5BeGlzO2lmKCFhKXJldHVybjt2YXIgaT10Ll9mdWxsTGF5b3V0LG89ZS5faWQuY2hhckF0KDApLHM9RS5jb3VudGVyTGV0dGVyKGUuX2lkKSxsPWUuX29mZnNldCsoTWF0aC5hYnMoblswXSk8TWF0aC5hYnMoblsxXSk9PSgieCI9PT1vKT8wOmUuX2xlbmd0aCk7ZnVuY3Rpb24gYyh0KXtpZighdC5zaG93bGluZXx8IXQubGluZXdpZHRoKXJldHVybiExO3ZhciByPU1hdGgubWF4KCh0LmxpbmV3aWR0aCtlLnplcm9saW5ld2lkdGgpLzIsMSk7ZnVuY3Rpb24gbih0KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJk1hdGguYWJzKHQtbCk8cn1pZihuKHQuX21haW5MaW5lUG9zaXRpb24pfHxuKHQuX21haW5NaXJyb3JQb3NpdGlvbikpcmV0dXJuITA7dmFyIGE9dC5fbGluZXBvc2l0aW9uc3x8e307Zm9yKHZhciBpIGluIGEpaWYobihhW2ldWzBdKXx8bihhW2ldWzFdKSlyZXR1cm4hMH12YXIgdT1pLl9wbG90c1tyLl9tYWluU3VicGxvdF07aWYoISh1Lm1haW5wbG90aW5mb3x8dSkub3ZlcmxheXMubGVuZ3RoKXJldHVybiBjKHIpO2Zvcih2YXIgaD1FLmxpc3QodCxzKSxmPTA7ZjxoLmxlbmd0aDtmKyspe3ZhciBwPWhbZl07aWYocC5fbWFpbkF4aXM9PT1hJiZjKHApKXJldHVybiEwfX0odCxlLHIsbil8fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQuX2Z1bGxEYXRhLG49ZS5fbWFpblN1YnBsb3QsYT1lLl9pZC5jaGFyQXQoMCksaT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgcz1yW2ldO2lmKCEwPT09cy52aXNpYmxlJiZzLnhheGlzK3MueWF4aXM9PT1uKXtpZihvLnRyYWNlSXMocywiYmFyLWxpa2UiKSYmcy5vcmllbnRhdGlvbj09PXt4OiJoIix5OiJ2In1bYV0pcmV0dXJuITA7aWYocy5maWxsJiZzLmZpbGwuY2hhckF0KHMuZmlsbC5sZW5ndGgtMSk9PT1hKXJldHVybiEwfX1yZXR1cm4hMX0odCxlKSl9LEUuY2xpcEVuZHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIFEodCxlLngpfSl9LEUuYWxsb3dBdXRvTWFyZ2luPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1FLmxpc3QodCwiIiwhMCkscj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lW3JdO24uYXV0b21hcmdpbiYmKGkuYWxsb3dBdXRvTWFyZ2luKHQsdHQobikpLG4ubWlycm9yJiZpLmFsbG93QXV0b01hcmdpbih0LGV0KG4pKSksby5nZXRDb21wb25lbnRNZXRob2QoInJhbmdlc2xpZGVyIiwiaXNWaXNpYmxlIikobikmJmkuYWxsb3dBdXRvTWFyZ2luKHQscnQobikpfX0sRS5zd2FwPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixhPVtdO2ZvcihyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBpPVtdLG89dC5fZnVsbERhdGFbZVtyXV0ueGF4aXMscz10Ll9mdWxsRGF0YVtlW3JdXS55YXhpcztpZihvJiZzKXtmb3Iobj0wO248YS5sZW5ndGg7bisrKS0xPT09YVtuXS54LmluZGV4T2YobykmJi0xPT09YVtuXS55LmluZGV4T2Yocyl8fGkucHVzaChuKTtpZihpLmxlbmd0aCl7dmFyIGwsYz1hW2lbMF1dO2lmKGkubGVuZ3RoPjEpZm9yKG49MTtuPGkubGVuZ3RoO24rKylsPWFbaVtuXV0sbnQoYy54LGwueCksbnQoYy55LGwueSk7bnQoYy54LFtvXSksbnQoYy55LFtzXSl9ZWxzZSBhLnB1c2goe3g6W29dLHk6W3NdfSl9fXJldHVybiBhfSh0LGUpLG49MDtuPHIubGVuZ3RoO24rKylhdCh0LHJbbl0ueCxyW25dLnkpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo1OTIsIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjEzLCIuLi8uLi9jb21wb25lbnRzL3RpdGxlcyI6Njc5LCIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50Ijo2ODYsIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjY5MywiLi4vLi4vbGliIjo3MTcsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6NzQxLCIuLi8uLi9wbG90cy9wbG90cyI6ODI2LCIuLi8uLi9yZWdpc3RyeSI6ODQ2LCIuL2F1dG9yYW5nZSI6NzY0LCIuL2F4aXNfYXV0b3R5cGUiOjc2NiwiLi9heGlzX2lkcyI6NzY4LCIuL2NsZWFuX3RpY2tzIjo3NzAsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjc3NywiLi9zZXRfY29udmVydCI6NzgzLGQzOjE2NSwiZmFzdC1pc251bWVyaWMiOjIyOH1dLDc2NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGE9dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7cmV0dXJuIShyPXJ8fHt9KS5ub011bHRpQ2F0ZWdvcnkmJihvPXQsYS5pc0FycmF5T3JUeXBlZEFycmF5KG9bMF0pJiZhLmlzQXJyYXlPclR5cGVkQXJyYXkob1sxXSkpPyJtdWx0aWNhdGVnb3J5IjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1NYXRoLm1heCgxLCh0Lmxlbmd0aC0xKS8xZTMpLGk9MCxvPTAscz17fSxsPTA7bDx0Lmxlbmd0aDtsKz1yKXt2YXIgYz10W01hdGgucm91bmQobCldLHU9U3RyaW5nKGMpO3NbdV18fChzW3VdPTEsYS5pc0RhdGVUaW1lKGMsZSkmJihpKz0xKSxuKGMpJiYobys9MSkpfXJldHVybiBpPjIqb30odCxlKT8iZGF0ZSI6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPU1hdGgubWF4KDEsKHQubGVuZ3RoLTEpLzFlMykscj0wLG49MCxvPXt9LHM9MDtzPHQubGVuZ3RoO3MrPWUpe3ZhciBsPXRbTWF0aC5yb3VuZChzKV0sYz1TdHJpbmcobCk7b1tjXXx8KG9bY109MSwiYm9vbGVhbiI9PXR5cGVvZiBsP24rKzphLmNsZWFuTnVtYmVyKGwpIT09aT9yKys6InN0cmluZyI9PXR5cGVvZiBsJiZuKyspfXJldHVybiBuPjIqcn0odCk/ImNhdGVnb3J5IjpmdW5jdGlvbih0KXtpZighdClyZXR1cm4hMTtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKylpZihuKHRbZV0pKXJldHVybiEwO3JldHVybiExfSh0KT8ibGluZWFyIjoiLSI7dmFyIG99fSx7Ii4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjY5MywiLi4vLi4vbGliIjo3MTcsImZhc3QtaXNudW1lcmljIjoyMjh9XSw3Njc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcmVnaXN0cnkiKSxhPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLG89dCgiLi90aWNrX3ZhbHVlX2RlZmF1bHRzIikscz10KCIuL3RpY2tfbWFya19kZWZhdWx0cyIpLGw9dCgiLi90aWNrX2xhYmVsX2RlZmF1bHRzIiksYz10KCIuL2NhdGVnb3J5X29yZGVyX2RlZmF1bHRzIiksdT10KCIuL2xpbmVfZ3JpZF9kZWZhdWx0cyIpLGg9dCgiLi9zZXRfY29udmVydCIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixmLHApe3ZhciBkPWYubGV0dGVyLGc9Zi5mb250fHx7fSx2PWYuc3Bsb21TdGFzaHx8e30sbT1yKCJ2aXNpYmxlIiwhZi52aXNpYmxlRGZsdCkseT1lLnR5cGU7ImRhdGUiPT09eSYmbi5nZXRDb21wb25lbnRNZXRob2QoImNhbGVuZGFycyIsImhhbmRsZURlZmF1bHRzIikodCxlLCJjYWxlbmRhciIsZi5jYWxlbmRhcik7aChlLHApO3ZhciB4PSFlLmlzVmFsaWRSYW5nZSh0LnJhbmdlKTt4JiZmLnJldmVyc2VEZmx0JiYoeD0icmV2ZXJzZWQiKSwhcigiYXV0b3JhbmdlIix4KXx8ImxpbmVhciIhPT15JiYiLSIhPT15fHxyKCJyYW5nZW1vZGUiKSxyKCJyYW5nZSIpLGUuY2xlYW5SYW5nZSgpLGModCxlLHIsZiksImNhdGVnb3J5Ij09PXl8fGYubm9Ib3Zlcnx8cigiaG92ZXJmb3JtYXQiKTt2YXIgYj1yKCJjb2xvciIpLF89YiE9PWkuY29sb3IuZGZsdD9iOmcuY29sb3Isdz12LmxhYmVsfHxwLl9kZmx0VGl0bGVbZF07aWYobCh0LGUscix5LGYse3Bhc3M6MX0pLCFtKXJldHVybiBlO3IoInRpdGxlLnRleHQiLHcpLGEuY29lcmNlRm9udChyLCJ0aXRsZS5mb250Iix7ZmFtaWx5OmcuZmFtaWx5LHNpemU6TWF0aC5yb3VuZCgxLjIqZy5zaXplKSxjb2xvcjpffSksbyh0LGUscix5KSxsKHQsZSxyLHksZix7cGFzczoyfSkscyh0LGUscixmKSx1KHQsZSxyLHtkZmx0Q29sb3I6YixiZ0NvbG9yOmYuYmdDb2xvcixzaG93R3JpZDpmLnNob3dHcmlkLGF0dHJpYnV0ZXM6aX0pLChlLnNob3dsaW5lfHxlLnRpY2tzKSYmcigibWlycm9yIiksZi5hdXRvbWFyZ2luJiZyKCJhdXRvbWFyZ2luIik7dmFyIGssVD0ibXVsdGljYXRlZ29yeSI9PT1lLnR5cGU7Zi5ub1RpY2tzb258fCJjYXRlZ29yeSIhPT1lLnR5cGUmJiFUfHwhZS50aWNrcyYmIWUuc2hvd2dyaWR8fChUJiYoaz0iYm91bmRhcmllcyIpLHIoInRpY2tzb24iLGspKTtUJiYocigic2hvd2RpdmlkZXJzIikmJihyKCJkaXZpZGVyY29sb3IiKSxyKCJkaXZpZGVyd2lkdGgiKSkpO3JldHVybiBlfX0seyIuLi8uLi9saWIiOjcxNywiLi4vLi4vcmVnaXN0cnkiOjg0NiwiLi9jYXRlZ29yeV9vcmRlcl9kZWZhdWx0cyI6NzY5LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo3NzcsIi4vbGluZV9ncmlkX2RlZmF1bHRzIjo3NzksIi4vc2V0X2NvbnZlcnQiOjc4MywiLi90aWNrX2xhYmVsX2RlZmF1bHRzIjo3ODQsIi4vdGlja19tYXJrX2RlZmF1bHRzIjo3ODUsIi4vdGlja192YWx1ZV9kZWZhdWx0cyI6Nzg2fV0sNzY4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3JlZ2lzdHJ5IiksYT10KCIuL2NvbnN0YW50cyIpO3IuaWQybmFtZT1mdW5jdGlvbih0KXtpZigic3RyaW5nIj09dHlwZW9mIHQmJnQubWF0Y2goYS5BWF9JRF9QQVRURVJOKSl7dmFyIGU9dC5zdWJzdHIoMSk7cmV0dXJuIjEiPT09ZSYmKGU9IiIpLHQuY2hhckF0KDApKyJheGlzIitlfX0sci5uYW1lMmlkPWZ1bmN0aW9uKHQpe2lmKHQubWF0Y2goYS5BWF9OQU1FX1BBVFRFUk4pKXt2YXIgZT10LnN1YnN0cig1KTtyZXR1cm4iMSI9PT1lJiYoZT0iIiksdC5jaGFyQXQoMCkrZX19LHIuY2xlYW5JZD1mdW5jdGlvbih0LGUpe2lmKHQubWF0Y2goYS5BWF9JRF9QQVRURVJOKSYmKCFlfHx0LmNoYXJBdCgwKT09PWUpKXt2YXIgcj10LnN1YnN0cigxKS5yZXBsYWNlKC9eMCsvLCIiKTtyZXR1cm4iMSI9PT1yJiYocj0iIiksdC5jaGFyQXQoMCkrcn19LHIubGlzdD1mdW5jdGlvbih0LGUsbil7dmFyIGE9dC5fZnVsbExheW91dDtpZighYSlyZXR1cm5bXTt2YXIgaSxvPXIubGlzdElkcyh0LGUpLHM9bmV3IEFycmF5KG8ubGVuZ3RoKTtmb3IoaT0wO2k8by5sZW5ndGg7aSsrKXt2YXIgbD1vW2ldO3NbaV09YVtsLmNoYXJBdCgwKSsiYXhpcyIrbC5zdWJzdHIoMSldfWlmKCFuKXt2YXIgYz1hLl9zdWJwbG90cy5nbDNkfHxbXTtmb3IoaT0wO2k8Yy5sZW5ndGg7aSsrKXt2YXIgdT1hW2NbaV1dO2U/cy5wdXNoKHVbZSsiYXhpcyJdKTpzLnB1c2godS54YXhpcyx1LnlheGlzLHUuemF4aXMpfX1yZXR1cm4gc30sci5saXN0SWRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5fZnVsbExheW91dDtpZighcilyZXR1cm5bXTt2YXIgbj1yLl9zdWJwbG90cztyZXR1cm4gZT9uW2UrImF4aXMiXTpuLnhheGlzLmNvbmNhdChuLnlheGlzKX0sci5nZXRGcm9tSWQ9ZnVuY3Rpb24odCxlLG4pe3ZhciBhPXQuX2Z1bGxMYXlvdXQ7cmV0dXJuIngiPT09bj9lPWUucmVwbGFjZSgveVswLTldKi8sIiIpOiJ5Ij09PW4mJihlPWUucmVwbGFjZSgveFswLTldKi8sIiIpKSxhW3IuaWQybmFtZShlKV19LHIuZ2V0RnJvbVRyYWNlPWZ1bmN0aW9uKHQsZSxhKXt2YXIgaT10Ll9mdWxsTGF5b3V0LG89bnVsbDtpZihuLnRyYWNlSXMoZSwiZ2wzZCIpKXt2YXIgcz1lLnNjZW5lOyJzY2VuZSI9PT1zLnN1YnN0cigwLDUpJiYobz1pW3NdW2ErImF4aXMiXSl9ZWxzZSBvPXIuZ2V0RnJvbUlkKHQsZVthKyJheGlzIl18fGEpO3JldHVybiBvfSxyLmlkU29ydD1mdW5jdGlvbih0LGUpe3ZhciByPXQuY2hhckF0KDApLG49ZS5jaGFyQXQoMCk7cmV0dXJuIHIhPT1uP3I+bj8xOi0xOisodC5zdWJzdHIoMSl8fDEpLSsoZS5zdWJzdHIoMSl8fDEpfSxyLmdldEF4aXNHcm91cD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10Ll9heGlzTWF0Y2hHcm91cHMsbj0wO248ci5sZW5ndGg7bisrKXtpZihyW25dW2VdKXJldHVybiJnIitufXJldHVybiBlfX0seyIuLi8uLi9yZWdpc3RyeSI6ODQ2LCIuL2NvbnN0YW50cyI6NzcxfV0sNzY5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuKXtpZigiY2F0ZWdvcnkiPT09ZS50eXBlKXt2YXIgYSxpPXQuY2F0ZWdvcnlhcnJheSxvPUFycmF5LmlzQXJyYXkoaSkmJmkubGVuZ3RoPjA7byYmKGE9ImFycmF5Iik7dmFyIHMsbD1yKCJjYXRlZ29yeW9yZGVyIixhKTsiYXJyYXkiPT09bCYmKHM9cigiY2F0ZWdvcnlhcnJheSIpKSxvfHwiYXJyYXkiIT09bHx8KGw9ZS5jYXRlZ29yeW9yZGVyPSJ0cmFjZSIpLCJ0cmFjZSI9PT1sP2UuX2luaXRpYWxDYXRlZ29yaWVzPVtdOiJhcnJheSI9PT1sP2UuX2luaXRpYWxDYXRlZ29yaWVzPXMuc2xpY2UoKToocz1mdW5jdGlvbih0LGUpe3ZhciByLG4sYSxpPWUuZGF0YUF0dHJ8fHQuX2lkLmNoYXJBdCgwKSxvPXt9O2lmKGUuYXhEYXRhKXI9ZS5heERhdGE7ZWxzZSBmb3Iocj1bXSxuPTA7bjxlLmRhdGEubGVuZ3RoO24rKyl7dmFyIHM9ZS5kYXRhW25dO3NbaSsiYXhpcyJdPT09dC5faWQmJnIucHVzaChzKX1mb3Iobj0wO248ci5sZW5ndGg7bisrKXt2YXIgbD1yW25dW2ldO2ZvcihhPTA7YTxsLmxlbmd0aDthKyspe3ZhciBjPWxbYV07bnVsbCE9YyYmKG9bY109MSl9fXJldHVybiBPYmplY3Qua2V5cyhvKX0oZSxuKS5zb3J0KCksImNhdGVnb3J5IGFzY2VuZGluZyI9PT1sP2UuX2luaXRpYWxDYXRlZ29yaWVzPXM6ImNhdGVnb3J5IGRlc2NlbmRpbmciPT09bCYmKGUuX2luaXRpYWxDYXRlZ29yaWVzPXMucmV2ZXJzZSgpKSl9fX0se31dLDc3MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGE9dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuT05FREFZO3IuZHRpY2s9ZnVuY3Rpb24odCxlKXt2YXIgcj0ibG9nIj09PWUsYT0iZGF0ZSI9PT1lLG89ImNhdGVnb3J5Ij09PWUscz1hP2k6MTtpZighdClyZXR1cm4gcztpZihuKHQpKXJldHVybih0PU51bWJlcih0KSk8PTA/czpvP01hdGgubWF4KDEsTWF0aC5yb3VuZCh0KSk6YT9NYXRoLm1heCguMSx0KTp0O2lmKCJzdHJpbmciIT10eXBlb2YgdHx8IWEmJiFyKXJldHVybiBzO3ZhciBsPXQuY2hhckF0KDApLGM9dC5zdWJzdHIoMSk7cmV0dXJuKGM9bihjKT9OdW1iZXIoYyk6MCk8PTB8fCEoYSYmIk0iPT09bCYmYz09PU1hdGgucm91bmQoYyl8fHImJiJMIj09PWx8fHImJiJEIj09PWwmJigxPT09Y3x8Mj09PWMpKT9zOnR9LHIudGljazA9ZnVuY3Rpb24odCxlLHIsaSl7cmV0dXJuImRhdGUiPT09ZT9hLmNsZWFuRGF0ZSh0LGEuZGF0ZVRpY2swKHIpKToiRDEiIT09aSYmIkQyIiE9PWk/bih0KT9OdW1iZXIodCk6MDp2b2lkIDB9fSx7Ii4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjY5MywiLi4vLi4vbGliIjo3MTcsImZhc3QtaXNudW1lcmljIjoyMjh9XSw3NzE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliL3JlZ2V4IikuY291bnRlcjtlLmV4cG9ydHM9e2lkUmVnZXg6e3g6bigieCIpLHk6bigieSIpfSxhdHRyUmVnZXg6bigiW3h5XWF4aXMiKSx4QXhpc01hdGNoOm4oInhheGlzIikseUF4aXNNYXRjaDpuKCJ5YXhpcyIpLEFYX0lEX1BBVFRFUk46L15beHl6XVswLTldKiQvLEFYX05BTUVfUEFUVEVSTjovXlt4eXpdYXhpc1swLTldKiQvLFNVQlBMT1RfUEFUVEVSTjovXngoWzAtOV0qKXkoWzAtOV0qKSQvLE1JTkRSQUc6OCxNSU5TRUxFQ1Q6MTIsTUlOWk9PTToyMCxEUkFHR0VSU0laRToyMCxCRU5EUFg6MS41LFJFRFJBV0RFTEFZOjUwLFNFTEVDVERFTEFZOjEwMCxTRUxFQ1RJRDoiLXNlbGVjdCIsREZMVFJBTkdFWDpbLTEsNl0sREZMVFJBTkdFWTpbLTEsNF0sdHJhY2VMYXllckNsYXNzZXM6WyJpbWFnZWxheWVyIiwiaGVhdG1hcGxheWVyIiwiY29udG91cmNhcnBldGxheWVyIiwiY29udG91cmxheWVyIiwiZnVubmVsbGF5ZXIiLCJ3YXRlcmZhbGxsYXllciIsImJhcmxheWVyIiwiY2FycGV0bGF5ZXIiLCJ2aW9saW5sYXllciIsImJveGxheWVyIiwib2hsY2xheWVyIiwic2NhdHRlcmNhcnBldGxheWVyIiwic2NhdHRlcmxheWVyIl0sY2xpcE9uQXhpc0ZhbHNlUXVlcnk6WyIuc2NhdHRlcmxheWVyIiwiLmJhcmxheWVyIiwiLmZ1bm5lbGxheWVyIiwiLndhdGVyZmFsbGxheWVyIl0sbGF5ZXJWYWx1ZTJsYXllckNsYXNzOnsiYWJvdmUgdHJhY2VzIjoiYWJvdmUiLCJiZWxvdyB0cmFjZXMiOiJiZWxvdyJ9fX0seyIuLi8uLi9saWIvcmVnZXgiOjczM31dLDc3MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4vYXhpc19pZHMiKS5pZDJuYW1lLGk9dCgiLi9zY2FsZV96b29tIiksbz10KCIuL2F1dG9yYW5nZSIpLm1ha2VQYWRGbixzPXQoIi4vYXV0b3JhbmdlIikuY29uY2F0RXh0cmVtZXMsbD10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQUxNT1NUX0VRVUFMLGM9dCgiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCIpLkZST01fQkw7ZnVuY3Rpb24gdSh0LGUscixuLGkpe3ZhciBvLHMsbCxjLHU9InJhbmdlIiE9PWksaD1uW2EoZSldLnR5cGUsZj1bXTtmb3Iocz0wO3M8ci5sZW5ndGg7cysrKWlmKChsPXJbc10pIT09ZSYmKGM9blthKGwpXSkudHlwZT09PWgpaWYoYy5maXhlZHJhbmdlKXtpZih1JiZjLmFuY2hvcil7blthKGMuYW5jaG9yKV0uZml4ZWRyYW5nZSYmZi5wdXNoKGwpfX1lbHNlIGYucHVzaChsKTtmb3Iobz0wO288dC5sZW5ndGg7bysrKWlmKHRbb11bZV0pe3ZhciBwPXRbb10sZD1bXTtmb3Iocz0wO3M8Zi5sZW5ndGg7cysrKXBbbD1mW3NdXXx8ZC5wdXNoKGwpO3JldHVybntsaW5rYWJsZUF4ZXM6ZCx0aGlzR3JvdXA6cH19cmV0dXJue2xpbmthYmxlQXhlczpmLHRoaXNHcm91cDpudWxsfX1mdW5jdGlvbiBoKHQsZSxyLG4sYSl7dmFyIGksbyxzLGwsYztudWxsPT09ZT8oKGU9e30pW3JdPTEsYz10Lmxlbmd0aCx0LnB1c2goZSkpOmM9dC5pbmRleE9mKGUpO3ZhciB1PU9iamVjdC5rZXlzKGUpO2ZvcihpPTA7aTx0Lmxlbmd0aDtpKyspaWYocz10W2ldLGkhPT1jJiZzW25dKXt2YXIgaD1zW25dO2ZvcihvPTA7bzx1Lmxlbmd0aDtvKyspc1tsPXVbb11dPWgqYSplW2xdO3JldHVybiB2b2lkIHQuc3BsaWNlKGMsMSl9aWYoMSE9PWEpZm9yKG89MDtvPHUubGVuZ3RoO28rKyllW3Vbb11dKj1hO2Vbbl09MX1mdW5jdGlvbiBmKHQsZSl7dmFyIHI9dC5faW5wdXREb21haW4sbj1jW3QuY29uc3RyYWludG93YXJkXSxhPXJbMF0rKHJbMV0tclswXSkqbjt0LmRvbWFpbj10Ll9pbnB1dC5kb21haW49W2ErKHJbMF0tYSkvZSxhKyhyWzFdLWEpL2VdLHQuc2V0U2NhbGUoKX1yLmhhbmRsZUNvbnN0cmFpbnREZWZhdWx0cz1mdW5jdGlvbih0LGUscixhKXt2YXIgaSxvLHMsbCxjPWEuYWxsQXhpc0lkcyxmPWEubGF5b3V0T3V0LHA9YS5zY2FsZWFuY2hvckRmbHQsZD1hLmNvbnN0cmFpbkRmbHQsZz1mLl9heGlzQ29uc3RyYWludEdyb3Vwcyx2PWYuX2F4aXNNYXRjaEdyb3VwcyxtPWUuX2lkLHk9bS5jaGFyQXQoMCkseD0oKGYuX3NwbG9tQXhlc3x8e30pW3ldfHx7fSlbbV18fHt9LGI9ZS5faWQsXz1iLmNoYXJBdCgwKSx3PXIoImNvbnN0cmFpbiIsZCk7aWYobi5jb2VyY2UodCxlLHtjb25zdHJhaW50b3dhcmQ6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczoieCI9PT1fP1sibGVmdCIsImNlbnRlciIsInJpZ2h0Il06WyJib3R0b20iLCJtaWRkbGUiLCJ0b3AiXSxkZmx0OiJ4Ij09PV8/ImNlbnRlciI6Im1pZGRsZSJ9fSwiY29uc3RyYWludG93YXJkIiksIXQubWF0Y2hlcyYmIXgubWF0Y2hlc3x8ZS5maXhlZHJhbmdlfHwobz11KHYsYixjLGYpLGk9bi5jb2VyY2UodCxlLHttYXRjaGVzOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6by5saW5rYWJsZUF4ZXN8fFtdLGRmbHQ6eC5tYXRjaGVzfX0sIm1hdGNoZXMiKSksaXx8ZS5maXhlZHJhbmdlJiYiZG9tYWluIiE9PXd8fCF0LnNjYWxlYW5jaG9yJiYhcHx8KGw9dShnLGIsYyxmLHcpLHM9bi5jb2VyY2UodCxlLHtzY2FsZWFuY2hvcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOmwubGlua2FibGVBeGVzfHxbXX19LCJzY2FsZWFuY2hvciIscCkpLGk/KGRlbGV0ZSBlLmNvbnN0cmFpbixoKHYsby50aGlzR3JvdXAsYixpLDEpKTotMSE9PWMuaW5kZXhPZih0Lm1hdGNoZXMpJiZuLndhcm4oImlnbm9yZWQgIitlLl9uYW1lKycubWF0Y2hlczogIicrdC5tYXRjaGVzKyciIHRvIGF2b2lkIGVpdGhlciBhbiBpbmZpbml0ZSBsb29wIG9yIGJlY2F1c2UgdGhlIHRhcmdldCBheGlzIGhhcyBmaXhlZCByYW5nZS4nKSxzKXt2YXIgaz1yKCJzY2FsZXJhdGlvIik7a3x8KGs9ZS5zY2FsZXJhdGlvPTEpLGgoZyxsLnRoaXNHcm91cCxiLHMsayl9ZWxzZS0xIT09Yy5pbmRleE9mKHQuc2NhbGVhbmNob3IpJiZuLndhcm4oImlnbm9yZWQgIitlLl9uYW1lKycuc2NhbGVhbmNob3I6ICInK3Quc2NhbGVhbmNob3IrJyIgdG8gYXZvaWQgZWl0aGVyIGFuIGluZmluaXRlIGxvb3AgYW5kIHBvc3NpYmx5IGluY29uc2lzdGVudCBzY2FsZXJhdGlvcywgb3IgYmVjYXVzZSB0aGUgdGFyZ2V0IGF4aXMgaGFzIGZpeGVkIHJhbmdlIG9yIHRoaXMgYXhpcyBkZWNsYXJlcyBhICptYXRjaGVzKiBjb25zdHJhaW50LicpfSxyLmVuZm9yY2U9ZnVuY3Rpb24odCl7dmFyIGUscixuLGMsdSxoLHAsZD10Ll9mdWxsTGF5b3V0LGc9ZC5fYXhpc0NvbnN0cmFpbnRHcm91cHN8fFtdO2ZvcihlPTA7ZTxnLmxlbmd0aDtlKyspe3ZhciB2PWdbZV0sbT1PYmplY3Qua2V5cyh2KSx5PTEvMCx4PTAsYj0xLzAsXz17fSx3PXt9LGs9ITE7Zm9yKHI9MDtyPG0ubGVuZ3RoO3IrKyl3W249bVtyXV09Yz1kW2EobildLGMuX2lucHV0RG9tYWluP2MuZG9tYWluPWMuX2lucHV0RG9tYWluLnNsaWNlKCk6Yy5faW5wdXREb21haW49Yy5kb21haW4uc2xpY2UoKSxjLl9pbnB1dFJhbmdlfHwoYy5faW5wdXRSYW5nZT1jLnJhbmdlLnNsaWNlKCkpLGMuc2V0U2NhbGUoKSxfW25dPXU9TWF0aC5hYnMoYy5fbSkvdltuXSx5PU1hdGgubWluKHksdSksImRvbWFpbiIhPT1jLmNvbnN0cmFpbiYmYy5fY29uc3RyYWludFNocmlua2FibGV8fChiPU1hdGgubWluKGIsdSkpLGRlbGV0ZSBjLl9jb25zdHJhaW50U2hyaW5rYWJsZSx4PU1hdGgubWF4KHgsdSksImRvbWFpbiI9PT1jLmNvbnN0cmFpbiYmKGs9ITApO2lmKCEoeT5sKngpfHxrKWZvcihyPTA7cjxtLmxlbmd0aDtyKyspaWYodT1fW249bVtyXV0saD0oYz13W25dKS5jb25zdHJhaW4sdSE9PWJ8fCJkb21haW4iPT09aClpZihwPXUvYiwicmFuZ2UiPT09aClpKGMscCk7ZWxzZXt2YXIgVD1jLl9pbnB1dERvbWFpbixNPShjLmRvbWFpblsxXS1jLmRvbWFpblswXSkvKFRbMV0tVFswXSksQT0oYy5yMmwoYy5yYW5nZVsxXSktYy5yMmwoYy5yYW5nZVswXSkpLyhjLnIybChjLl9pbnB1dFJhbmdlWzFdKS1jLnIybChjLl9pbnB1dFJhbmdlWzBdKSk7aWYoKHAvPU0pKkE8MSl7Yy5kb21haW49Yy5faW5wdXQuZG9tYWluPVQuc2xpY2UoKSxpKGMscCk7Y29udGludWV9aWYoQTwxJiYoYy5yYW5nZT1jLl9pbnB1dC5yYW5nZT1jLl9pbnB1dFJhbmdlLnNsaWNlKCkscCo9QSksYy5hdXRvcmFuZ2Upe3ZhciBTPWMucjJsKGMucmFuZ2VbMF0pLEU9Yy5yMmwoYy5yYW5nZVsxXSksTD0oUytFKS8yLEM9TCxQPUwsTz1NYXRoLmFicyhFLUwpLHo9TC1PKnAqMS4wMDAxLEk9TCtPKnAqMS4wMDAxLEQ9byhjKTtmKGMscCk7dmFyIFIsRixCPU1hdGguYWJzKGMuX20pLE49cyh0LGMpLGo9Ti5taW4sVj1OLm1heDtmb3IoRj0wO0Y8ai5sZW5ndGg7RisrKShSPWpbRl0udmFsLUQoaltGXSkvQik+eiYmUjxDJiYoQz1SKTtmb3IoRj0wO0Y8Vi5sZW5ndGg7RisrKShSPVZbRl0udmFsK0QoVltGXSkvQik8SSYmUj5QJiYoUD1SKTtwLz0oUC1DKS8oMipPKSxDPWMubDJyKEMpLFA9Yy5sMnIoUCksYy5yYW5nZT1jLl9pbnB1dC5yYW5nZT1TPEU/W0MsUF06W1AsQ119ZihjLHApfX19LHIuY2xlYW49ZnVuY3Rpb24odCxlKXtpZihlLl9pbnB1dERvbWFpbil7Zm9yKHZhciByPSExLG49ZS5faWQsYT10Ll9mdWxsTGF5b3V0Ll9heGlzQ29uc3RyYWludEdyb3VwcyxpPTA7aTxhLmxlbmd0aDtpKyspaWYoYVtpXVtuXSl7cj0hMDticmVha31yJiYiZG9tYWluIj09PWUuY29uc3RyYWlufHwoZS5faW5wdXQuZG9tYWluPWUuZG9tYWluPWUuX2lucHV0RG9tYWluLGRlbGV0ZSBlLl9pbnB1dERvbWFpbil9fX0seyIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50Ijo2ODYsIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjY5MywiLi4vLi4vbGliIjo3MTcsIi4vYXV0b3JhbmdlIjo3NjQsIi4vYXhpc19pZHMiOjc2OCwiLi9zY2FsZV96b29tIjo3ODF9XSw3NzM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxhPXQoInRpbnljb2xvcjIiKSxpPXQoImhhcy1wYXNzaXZlLWV2ZW50cyIpLG89dCgiLi4vLi4vcmVnaXN0cnkiKSxzPXQoIi4uLy4uL2xpYiIpLGw9dCgiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIiksYz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksdT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxoPXQoIi4uLy4uL2NvbXBvbmVudHMvZngiKSxmPXQoIi4vYXhlcyIpLHA9dCgiLi4vLi4vbGliL3NldGN1cnNvciIpLGQ9dCgiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudCIpLGc9dCgiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCIpLkZST01fVEwsdj10KCIuLi8uLi9saWIvY2xlYXJfZ2xfY2FudmFzZXMiKSxtPXQoIi4uLy4uL3Bsb3RfYXBpL3N1YnJvdXRpbmVzIikucmVkcmF3UmVnbFRyYWNlcyx5PXQoIi4uL3Bsb3RzIikseD10KCIuL2F4aXNfaWRzIikuZ2V0RnJvbUlkLGI9dCgiLi9zZWxlY3QiKS5wcmVwU2VsZWN0LF89dCgiLi9zZWxlY3QiKS5jbGVhclNlbGVjdCx3PXQoIi4vc2VsZWN0Iikuc2VsZWN0T25DbGljayxrPXQoIi4vc2NhbGVfem9vbSIpLFQ9dCgiLi9jb25zdGFudHMiKSxNPVQuTUlORFJBRyxBPVQuTUlOWk9PTSxTPSEwO2Z1bmN0aW9uIEUodCxlLHIsbil7dmFyIGE9cy5lbnN1cmVTaW5nbGUodC5kcmFnbGF5ZXIsZSxyLGZ1bmN0aW9uKGUpe2UuY2xhc3NlZCgiZHJhZyIsITApLnN0eWxlKHtmaWxsOiJ0cmFuc3BhcmVudCIsInN0cm9rZS13aWR0aCI6MH0pLmF0dHIoImRhdGEtc3VicGxvdCIsdC5pZCl9KTtyZXR1cm4gYS5jYWxsKHAsbiksYS5ub2RlKCl9ZnVuY3Rpb24gTCh0LGUscixhLGksbyxzKXt2YXIgbD1FKHQsInJlY3QiLGUscik7cmV0dXJuIG4uc2VsZWN0KGwpLmNhbGwodS5zZXRSZWN0LGEsaSxvLHMpLGx9ZnVuY3Rpb24gQyh0LGUpe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKWlmKCF0W3JdLmZpeGVkcmFuZ2UpcmV0dXJuIGU7cmV0dXJuIiJ9ZnVuY3Rpb24gUCh0LGUscixuLGEpe2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgbz10W2ldO2lmKCFvLmZpeGVkcmFuZ2Upe3ZhciBzPW8uX3JsWzBdLGw9by5fcmxbMV0tcztuW28uX25hbWUrIi5yYW5nZVswXSJdPW8ubDJyKHMrbCplKSxuW28uX25hbWUrIi5yYW5nZVsxXSJdPW8ubDJyKHMrbCpyKX19aWYoYSYmYS5sZW5ndGgpe3ZhciBjPShlKygxLXIpKS8yO1AoYSxjLDEtYyxuLFtdKX19ZnVuY3Rpb24gTyh0LGUpe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgbj10W3JdO24uZml4ZWRyYW5nZXx8KG4ucmFuZ2U9W24ubDJyKG4uX3JsWzBdLWUvbi5fbSksbi5sMnIobi5fcmxbMV0tZS9uLl9tKV0pfX1mdW5jdGlvbiB6KHQpe3JldHVybiAxLSh0Pj0wP01hdGgubWluKHQsLjkpOjEvKDEvTWF0aC5tYXgodCwtLjMpKzMuMjIyKSl9ZnVuY3Rpb24gSSh0LGUscixuLGEpe3JldHVybiB0LmFwcGVuZCgicGF0aCIpLmF0dHIoImNsYXNzIiwiem9vbWJveCIpLnN0eWxlKHtmaWxsOmU+LjI/InJnYmEoMCwwLDAsMCkiOiJyZ2JhKDI1NSwyNTUsMjU1LDApIiwic3Ryb2tlLXdpZHRoIjowfSkuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrcisiLCAiK24rIikiKS5hdHRyKCJkIixhKyJaIil9ZnVuY3Rpb24gRCh0LGUscil7cmV0dXJuIHQuYXBwZW5kKCJwYXRoIikuYXR0cigiY2xhc3MiLCJ6b29tYm94LWNvcm5lcnMiKS5zdHlsZSh7ZmlsbDpjLmJhY2tncm91bmQsc3Ryb2tlOmMuZGVmYXVsdExpbmUsInN0cm9rZS13aWR0aCI6MSxvcGFjaXR5OjB9KS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitlKyIsICIrcisiKSIpLmF0dHIoImQiLCJNMCwwWiIpfWZ1bmN0aW9uIFIodCxlLHIsbixhLGkpe3QuYXR0cigiZCIsbisiTSIrci5sKyIsIityLnQrInYiK3IuaCsiaCIrci53KyJ2LSIrci5oKyJoLSIrci53KyJaIiksRih0LGUsYSxpKX1mdW5jdGlvbiBGKHQsZSxyLG4pe3J8fCh0LnRyYW5zaXRpb24oKS5zdHlsZSgiZmlsbCIsbj4uMj8icmdiYSgwLDAsMCwwLjQpIjoicmdiYSgyNTUsMjU1LDI1NSwwLjMpIikuZHVyYXRpb24oMjAwKSxlLnRyYW5zaXRpb24oKS5zdHlsZSgib3BhY2l0eSIsMSkuZHVyYXRpb24oMjAwKSl9ZnVuY3Rpb24gQih0KXtuLnNlbGVjdCh0KS5zZWxlY3RBbGwoIi56b29tYm94LC5qcy16b29tYm94LWJhY2tkcm9wLC5qcy16b29tYm94LW1lbnUsLnpvb21ib3gtY29ybmVycyIpLnJlbW92ZSgpfWZ1bmN0aW9uIE4odCl7UyYmdC5kYXRhJiZ0Ll9jb250ZXh0LnNob3dUaXBzJiYocy5ub3RpZmllcihzLl8odCwiRG91YmxlLWNsaWNrIHRvIHpvb20gYmFjayBvdXQiKSwibG9uZyIpLFM9ITEpfWZ1bmN0aW9uIGoodCl7cmV0dXJuImxhc3NvIj09PXR8fCJzZWxlY3QiPT09dH1mdW5jdGlvbiBWKHQpe3ZhciBlPU1hdGguZmxvb3IoTWF0aC5taW4odC5iLXQudCx0LnItdC5sLEEpLzIpO3JldHVybiJNIisodC5sLTMuNSkrIiwiKyh0LnQtLjUrZSkrImgzdiIrLWUrImgiK2UrInYtM2gtIisoZSszKSsiWk0iKyh0LnIrMy41KSsiLCIrKHQudC0uNStlKSsiaC0zdiIrLWUrImgiKy1lKyJ2LTNoIisoZSszKSsiWk0iKyh0LnIrMy41KSsiLCIrKHQuYisuNS1lKSsiaC0zdiIrZSsiaCIrLWUrInYzaCIrKGUrMykrIlpNIisodC5sLTMuNSkrIiwiKyh0LmIrLjUtZSkrImgzdiIrZSsiaCIrZSsidjNoLSIrKGUrMykrIloifWZ1bmN0aW9uIFUodCxlLHIsbil7Zm9yKHZhciBhLGksbyxsLGM9ITEsdT17fSxoPXt9LGY9MDtmPGUubGVuZ3RoO2YrKyl7dmFyIHA9ZVtmXTtmb3IoYSBpbiByKWlmKHBbYV0pe2ZvcihvIGluIHApKCJ4Ij09PW8uY2hhckF0KDApP3I6bilbb118fCh1W29dPWEpO2ZvcihpIGluIG4pcFtpXSYmKGM9ITApfWZvcihpIGluIG4paWYocFtpXSlmb3IobCBpbiBwKSgieCI9PT1sLmNoYXJBdCgwKT9yOm4pW2xdfHwoaFtsXT1pKX1jJiYocy5leHRlbmRGbGF0KHUsaCksaD17fSk7dmFyIGQ9e30sZz1bXTtmb3IobyBpbiB1KXt2YXIgdj14KHQsbyk7Zy5wdXNoKHYpLGRbdi5faWRdPXZ9dmFyIG09e30seT1bXTtmb3IobCBpbiBoKXt2YXIgYj14KHQsbCk7eS5wdXNoKGIpLG1bYi5faWRdPWJ9cmV0dXJue3hhSGFzaDpkLHlhSGFzaDptLHhheGVzOmcseWF4ZXM6eSx4TGlua3M6dSx5TGlua3M6aCxpc1N1YnBsb3RDb25zdHJhaW5lZDpjfX1mdW5jdGlvbiBxKHQsZSl7aWYoaSl7dmFyIHI9dm9pZCAwIT09dC5vbndoZWVsPyJ3aGVlbCI6Im1vdXNld2hlZWwiO3QuX29ud2hlZWwmJnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihyLHQuX29ud2hlZWwpLHQuX29ud2hlZWw9ZSx0LmFkZEV2ZW50TGlzdGVuZXIocixlLHtwYXNzaXZlOiExfSl9ZWxzZSB2b2lkIDAhPT10Lm9ud2hlZWw/dC5vbndoZWVsPWU6dm9pZCAwIT09dC5vbm1vdXNld2hlZWwmJih0Lm9ubW91c2V3aGVlbD1lKX1mdW5jdGlvbiBIKHQpe3ZhciBlPVtdO2Zvcih2YXIgciBpbiB0KWUucHVzaCh0W3JdKTtyZXR1cm4gZX1lLmV4cG9ydHM9e21ha2VEcmFnQm94OmZ1bmN0aW9uKHQsZSxyLGksYyxwLFMsRSl7dmFyIEYsRyxZLFcsWCxaLEosSyxRLCQsdHQsZXQscnQsbnQsYXQsaXQsb3Qsc3QsbHQsY3QsdXQsaHQ9dC5fZnVsbExheW91dC5fem9vbWxheWVyLGZ0PVMrRT09PSJuc2V3IixwdD0xPT09KFMrRSkubGVuZ3RoO2Z1bmN0aW9uIGR0KCl7aWYoRj1lLnhheGlzLEc9ZS55YXhpcyxRPUYuX2xlbmd0aCwkPUcuX2xlbmd0aCxKPUYuX29mZnNldCxLPUcuX29mZnNldCwoWT17fSlbRi5faWRdPUYsKFc9e30pW0cuX2lkXT1HLFMmJkUpZm9yKHZhciByPWUub3ZlcmxheXMsbj0wO248ci5sZW5ndGg7bisrKXt2YXIgYT1yW25dLnhheGlzO1lbYS5faWRdPWE7dmFyIGk9cltuXS55YXhpcztXW2kuX2lkXT1pfVg9SChZKSxaPUgoVykscnQ9QyhYLEUpLG50PUMoWixTKSxhdD0hbnQmJiFydCx0dD1VKHQsdC5fZnVsbExheW91dC5fYXhpc0NvbnN0cmFpbnRHcm91cHMsWSxXKSxldD1VKHQsdC5fZnVsbExheW91dC5fYXhpc01hdGNoR3JvdXBzLFksVyksaXQ9RXx8dHQuaXNTdWJwbG90Q29uc3RyYWluZWR8fGV0LmlzU3VicGxvdENvbnN0cmFpbmVkLG90PVN8fHR0LmlzU3VicGxvdENvbnN0cmFpbmVkfHxldC5pc1N1YnBsb3RDb25zdHJhaW5lZDt2YXIgbz10Ll9mdWxsTGF5b3V0O3N0PW8uX2hhcygic2NhdHRlcmdsIiksbHQ9by5faGFzKCJzcGxvbSIpLGN0PW8uX2hhcygic3ZnIil9ZHQoKTt2YXIgZ3Q9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PyJuc2V3Ij09PXQ/cj8iIjoicGFuIj09PWU/Im1vdmUiOiJjcm9zc2hhaXIiOnQudG9Mb3dlckNhc2UoKSsiLXJlc2l6ZSI6InBvaW50ZXIifShudCtydCx0Ll9mdWxsTGF5b3V0LmRyYWdtb2RlLGZ0KSx2dD1MKGUsUytFKyJkcmFnIixndCxyLGksYyxwKTtpZihhdCYmIWZ0KXJldHVybiB2dC5vbm1vdXNlZG93bj1udWxsLHZ0LnN0eWxlLnBvaW50ZXJFdmVudHM9Im5vbmUiLHZ0O3ZhciBtdCx5dCx4dCxidCxfdCx3dCxrdCxUdCxNdCxBdCxTdD17ZWxlbWVudDp2dCxnZDp0LHBsb3RpbmZvOmV9O2Z1bmN0aW9uIEV0KCl7U3QucGxvdGluZm8uc2VsZWN0aW9uPSExLF8odCl9ZnVuY3Rpb24gTHQocixhKXt2YXIgaT10Ll9mdWxsTGF5b3V0LmNsaWNrbW9kZTtpZihCKHQpLDIhPT1yfHxwdHx8ZnVuY3Rpb24oKXtpZighdC5fdHJhbnNpdGlvbmluZ1dpdGhEdXJhdGlvbil7dmFyIGU9dC5fY29udGV4dC5kb3VibGVDbGljayxyPVtdO3J0JiYocj1yLmNvbmNhdChYKSksbnQmJihyPXIuY29uY2F0KFopKSxldC54YXhlcyYmKHI9ci5jb25jYXQoZXQueGF4ZXMpKSxldC55YXhlcyYmKHI9ci5jb25jYXQoZXQueWF4ZXMpKTt2YXIgbixhLGkscz17fTtpZigicmVzZXQrYXV0b3NpemUiPT09ZSlmb3IoZT0iYXV0b3NpemUiLGE9MDthPHIubGVuZ3RoO2ErKylpZigobj1yW2FdKS5fcmFuZ2VJbml0aWFsJiYobi5yYW5nZVswXSE9PW4uX3JhbmdlSW5pdGlhbFswXXx8bi5yYW5nZVsxXSE9PW4uX3JhbmdlSW5pdGlhbFsxXSl8fCFuLl9yYW5nZUluaXRpYWwmJiFuLmF1dG9yYW5nZSl7ZT0icmVzZXQiO2JyZWFrfWlmKCJhdXRvc2l6ZSI9PT1lKWZvcihhPTA7YTxyLmxlbmd0aDthKyspKG49clthXSkuZml4ZWRyYW5nZXx8KHNbbi5fbmFtZSsiLmF1dG9yYW5nZSJdPSEwKTtlbHNlIGlmKCJyZXNldCI9PT1lKWZvcigocnR8fHR0LmlzU3VicGxvdENvbnN0cmFpbmVkKSYmKHI9ci5jb25jYXQodHQueGF4ZXMpKSxudCYmIXR0LmlzU3VicGxvdENvbnN0cmFpbmVkJiYocj1yLmNvbmNhdCh0dC55YXhlcykpLHR0LmlzU3VicGxvdENvbnN0cmFpbmVkJiYocnQ/bnR8fChyPXIuY29uY2F0KFopKTpyPXIuY29uY2F0KFgpKSxhPTA7YTxyLmxlbmd0aDthKyspKG49clthXSkuZml4ZWRyYW5nZXx8KG4uX3JhbmdlSW5pdGlhbD8oaT1uLl9yYW5nZUluaXRpYWwsc1tuLl9uYW1lKyIucmFuZ2VbMF0iXT1pWzBdLHNbbi5fbmFtZSsiLnJhbmdlWzFdIl09aVsxXSk6c1tuLl9uYW1lKyIuYXV0b3JhbmdlIl09ITApO3QuZW1pdCgicGxvdGx5X2RvdWJsZWNsaWNrIixudWxsKSxvLmNhbGwoIl9ndWlSZWxheW91dCIsdCxzKX19KCksZnQpaS5pbmRleE9mKCJzZWxlY3QiKT4tMSYmdyhhLHQsWCxaLGUuaWQsU3QpLGkuaW5kZXhPZigiZXZlbnQiKT4tMSYmaC5jbGljayh0LGEsZS5pZCk7ZWxzZSBpZigxPT09ciYmcHQpe3ZhciBzPVM/RzpGLGM9InMiPT09U3x8InciPT09RT8wOjEsdT1zLl9uYW1lKyIucmFuZ2VbIitjKyJdIixmPWZ1bmN0aW9uKHQsZSl7dmFyIHIsYT10LnJhbmdlW2VdLGk9TWF0aC5hYnMoYS10LnJhbmdlWzEtZV0pO3JldHVybiJkYXRlIj09PXQudHlwZT9hOiJsb2ciPT09dC50eXBlPyhyPU1hdGguY2VpbChNYXRoLm1heCgwLC1NYXRoLmxvZyhpKS9NYXRoLkxOMTApKSszLG4uZm9ybWF0KCIuIityKyJnIikoTWF0aC5wb3coMTAsYSkpKToocj1NYXRoLmZsb29yKE1hdGgubG9nKE1hdGguYWJzKGEpKS9NYXRoLkxOMTApLU1hdGguZmxvb3IoTWF0aC5sb2coaSkvTWF0aC5MTjEwKSs0LG4uZm9ybWF0KCIuIitTdHJpbmcocikrImciKShhKSl9KHMsYykscD0ibGVmdCIsZD0ibWlkZGxlIjtpZihzLmZpeGVkcmFuZ2UpcmV0dXJuO1M/KGQ9Im4iPT09Uz8idG9wIjoiYm90dG9tIiwicmlnaHQiPT09cy5zaWRlJiYocD0icmlnaHQiKSk6ImUiPT09RSYmKHA9InJpZ2h0IiksdC5fY29udGV4dC5zaG93QXhpc1JhbmdlRW50cnlCb3hlcyYmbi5zZWxlY3QodnQpLmNhbGwobC5tYWtlRWRpdGFibGUse2dkOnQsaW1tZWRpYXRlOiEwLGJhY2tncm91bmQ6dC5fZnVsbExheW91dC5wYXBlcl9iZ2NvbG9yLHRleHQ6U3RyaW5nKGYpLGZpbGw6cy50aWNrZm9udD9zLnRpY2tmb250LmNvbG9yOiIjNDQ0Iixob3Jpem9udGFsQWxpZ246cCx2ZXJ0aWNhbEFsaWduOmR9KS5vbigiZWRpdCIsZnVuY3Rpb24oZSl7dmFyIHI9cy5kMnIoZSk7dm9pZCAwIT09ciYmby5jYWxsKCJfZ3VpUmVsYXlvdXQiLHQsdSxyKX0pfX1mdW5jdGlvbiBDdChlLHIpe2lmKHQuX3RyYW5zaXRpb25pbmdXaXRoRHVyYXRpb24pcmV0dXJuITE7dmFyIG49TWF0aC5tYXgoMCxNYXRoLm1pbihRLGUrbXQpKSxhPU1hdGgubWF4KDAsTWF0aC5taW4oJCxyK3l0KSksaT1NYXRoLmFicyhuLW10KSxvPU1hdGguYWJzKGEteXQpO2Z1bmN0aW9uIHMoKXtrdD0iIix4dC5yPXh0LmwseHQudD14dC5iLE10LmF0dHIoImQiLCJNMCwwWiIpfWlmKHh0Lmw9TWF0aC5taW4obXQsbikseHQucj1NYXRoLm1heChtdCxuKSx4dC50PU1hdGgubWluKHl0LGEpLHh0LmI9TWF0aC5tYXgoeXQsYSksdHQuaXNTdWJwbG90Q29uc3RyYWluZWQpaT5BfHxvPkE/KGt0PSJ4eSIsaS9RPm8vJD8obz1pKiQvUSx5dD5hP3h0LnQ9eXQtbzp4dC5iPXl0K28pOihpPW8qUS8kLG10Pm4/eHQubD1tdC1pOnh0LnI9bXQraSksTXQuYXR0cigiZCIsVih4dCkpKTpzKCk7ZWxzZSBpZihldC5pc1N1YnBsb3RDb25zdHJhaW5lZClpZihpPkF8fG8+QSl7a3Q9Inh5Ijt2YXIgbD1NYXRoLm1pbih4dC5sL1EsKCQteHQuYikvJCksYz1NYXRoLm1heCh4dC5yL1EsKCQteHQudCkvJCk7eHQubD1sKlEseHQucj1jKlEseHQuYj0oMS1sKSokLHh0LnQ9KDEtYykqJCxNdC5hdHRyKCJkIixWKHh0KSl9ZWxzZSBzKCk7ZWxzZSFudHx8bzxNYXRoLm1pbihNYXRoLm1heCguNippLE0pLEEpP2k8TXx8IXJ0P3MoKTooeHQudD0wLHh0LmI9JCxrdD0ieCIsTXQuYXR0cigiZCIsZnVuY3Rpb24odCxlKXtyZXR1cm4iTSIrKHQubC0uNSkrIiwiKyhlLUEtLjUpKyJoLTN2IisoMipBKzEpKyJoM1pNIisodC5yKy41KSsiLCIrKGUtQS0uNSkrImgzdiIrKDIqQSsxKSsiaC0zWiJ9KHh0LHl0KSkpOiFydHx8aTxNYXRoLm1pbiguNipvLEEpPyh4dC5sPTAseHQucj1RLGt0PSJ5IixNdC5hdHRyKCJkIixmdW5jdGlvbih0LGUpe3JldHVybiJNIisoZS1BLS41KSsiLCIrKHQudC0uNSkrInYtM2giKygyKkErMSkrInYzWk0iKyhlLUEtLjUpKyIsIisodC5iKy41KSsidjNoIisoMipBKzEpKyJ2LTNaIn0oeHQsbXQpKSk6KGt0PSJ4eSIsTXQuYXR0cigiZCIsVih4dCkpKTt4dC53PXh0LnIteHQubCx4dC5oPXh0LmIteHQudCxrdCYmKEF0PSEwKSx0Ll9kcmFnZ2VkPUF0LFIoVHQsTXQseHQsX3Qsd3QsYnQpLFB0KCksdC5lbWl0KCJwbG90bHlfcmVsYXlvdXRpbmciLHV0KSx3dD0hMH1mdW5jdGlvbiBQdCgpe3V0PXt9LCJ4eSIhPT1rdCYmIngiIT09a3R8fChQKFgseHQubC9RLHh0LnIvUSx1dCx0dC54YXhlcyksQnQoIngiLHV0KSksInh5IiE9PWt0JiYieSIhPT1rdHx8KFAoWiwoJC14dC5iKS8kLCgkLXh0LnQpLyQsdXQsdHQueWF4ZXMpLEJ0KCJ5Iix1dCkpfWZ1bmN0aW9uIE90KCl7UHQoKSxCKHQpLGp0KCksTih0KX1TdC5wcmVwRm49ZnVuY3Rpb24oZSxyLG4pe3ZhciBpPVN0LmRyYWdtb2RlLG89dC5fZnVsbExheW91dC5kcmFnbW9kZTtvIT09aSYmKFN0LmRyYWdtb2RlPW8pLGR0KCksYXR8fChmdD9lLnNoaWZ0S2V5PyJwYW4iPT09bz9vPSJ6b29tIjpqKG8pfHwobz0icGFuIik6ZS5jdHJsS2V5JiYobz0icGFuIik6bz0icGFuIiksU3QubWluRHJhZz0ibGFzc28iPT09bz8xOnZvaWQgMCxqKG8pPyhTdC54YXhlcz1YLFN0LnlheGVzPVosYihlLHIsbixTdCxvKSk6KFN0LmNsaWNrRm49THQsaihpKSYmRXQoKSxhdHx8KCJ6b29tIj09PW8/KFN0Lm1vdmVGbj1DdCxTdC5kb25lRm49T3QsU3QubWluRHJhZz0xLGZ1bmN0aW9uKGUscixuKXt2YXIgaT12dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTttdD1yLWkubGVmdCx5dD1uLWkudG9wLHh0PXtsOm10LHI6bXQsdzowLHQ6eXQsYjp5dCxoOjB9LGJ0PXQuX2htcGl4Y291bnQ/dC5faG1sdW1jb3VudC90Ll9obXBpeGNvdW50OmEodC5fZnVsbExheW91dC5wbG90X2JnY29sb3IpLmdldEx1bWluYW5jZSgpLHd0PSExLGt0PSJ4eSIsQXQ9ITEsVHQ9SShodCxidCxKLEssX3Q9Ik0wLDBIIitRKyJWIiskKyJIMFYwIiksTXQ9RChodCxKLEspfSgwLHIsbikpOiJwYW4iPT09byYmKFN0Lm1vdmVGbj1GdCxTdC5kb25lRm49anQpKSksdC5fZnVsbExheW91dC5fcmVkcmFnPWZ1bmN0aW9uKCl7dmFyIGU9dC5fZHJhZ2RhdGE7ZSYmZS5lbGVtZW50PT09dnQmJihqKHQuX2Z1bGxMYXlvdXQuZHJhZ21vZGUpfHwoZHQoKSxWdChbMCwwLFEsJF0pLFN0Lm1vdmVGbihlLmR4LGUuZHkpKSl9fSxkLmluaXQoU3QpO3ZhciB6dD1bMCwwLFEsJF0sSXQ9bnVsbCxEdD1ULlJFRFJBV0RFTEFZLFJ0PWUubWFpbnBsb3Q/dC5fZnVsbExheW91dC5fcGxvdHNbZS5tYWlucGxvdF06ZTtmdW5jdGlvbiBGdChlLHIpe2lmKCF0Ll90cmFuc2l0aW9uaW5nV2l0aER1cmF0aW9uKXtpZih0Ll9mdWxsTGF5b3V0Ll9yZXBsb3R0aW5nPSEwLCJldyI9PT1ydHx8Im5zIj09PW50KXJldHVybiBydCYmKE8oWCxlKSxCdCgieCIpKSxudCYmKE8oWixyKSxCdCgieSIpKSxWdChbcnQ/LWU6MCxudD8tcjowLFEsJF0pLE50KCksdm9pZCB0LmVtaXQoInBsb3RseV9yZWxheW91dGluZyIsdXQpO2lmKHR0LmlzU3VicGxvdENvbnN0cmFpbmVkJiZydCYmbnQpe3ZhciBuPSJ3Ij09PXJ0PT0oIm4iPT09bnQpPzE6LTEsYT0oZS9RK24qci8kKS8yO2U9YSpRLHI9biphKiR9InciPT09cnQ/ZT1sKFgsMCxlKToiZSI9PT1ydD9lPWwoWCwxLC1lKTpydHx8KGU9MCksIm4iPT09bnQ/cj1sKFosMSxyKToicyI9PT1udD9yPWwoWiwwLC1yKTpudHx8KHI9MCk7dmFyIGk9InciPT09cnQ/ZTowLG89Im4iPT09bnQ/cjowO2lmKHR0LmlzU3VicGxvdENvbnN0cmFpbmVkKXt2YXIgcztpZighcnQmJjE9PT1udC5sZW5ndGgpe2ZvcihzPTA7czxYLmxlbmd0aDtzKyspWFtzXS5yYW5nZT1YW3NdLl9yLnNsaWNlKCksayhYW3NdLDEtci8kKTtpPShlPXIqUS8kKS8yfWlmKCFudCYmMT09PXJ0Lmxlbmd0aCl7Zm9yKHM9MDtzPFoubGVuZ3RoO3MrKylaW3NdLnJhbmdlPVpbc10uX3Iuc2xpY2UoKSxrKFpbc10sMS1lL1EpO289KHI9ZSokL1EpLzJ9fUJ0KCJ4IiksQnQoInkiKSxWdChbaSxvLFEtZSwkLXJdKSxOdCgpLHQuZW1pdCgicGxvdGx5X3JlbGF5b3V0aW5nIix1dCl9ZnVuY3Rpb24gbCh0LGUscil7Zm9yKHZhciBuLGEsaT0xLWUsbz0wO288dC5sZW5ndGg7bysrKXt2YXIgcz10W29dO2lmKCFzLmZpeGVkcmFuZ2Upe249cyxhPXMuX3JsW2ldKyhzLl9ybFtlXS1zLl9ybFtpXSkveihyL3MuX2xlbmd0aCk7dmFyIGw9cy5sMnIoYSk7ITEhPT1sJiZ2b2lkIDAhPT1sJiYocy5yYW5nZVtlXT1sKX19cmV0dXJuIG4uX2xlbmd0aCoobi5fcmxbZV0tYSkvKG4uX3JsW2VdLW4uX3JsW2ldKX19ZnVuY3Rpb24gQnQodCxlKXtmb3IodmFyIHI9ZXQuaXNTdWJwbG90Q29uc3RyYWluZWQ/e3g6Wix5Olh9W3RdOmV0W3QrImF4ZXMiXSxuPWV0LmlzU3VicGxvdENvbnN0cmFpbmVkP3t4OlgseTpafVt0XTpbXSxhPTA7YTxyLmxlbmd0aDthKyspe3ZhciBpPXJbYV0sbz1pLl9pZCxzPWV0LnhMaW5rc1tvXXx8ZXQueUxpbmtzW29dLGw9blswXXx8WVtzXXx8V1tzXTtsJiYoZT8oZVtpLl9uYW1lKyIucmFuZ2VbMF0iXT1lW2wuX25hbWUrIi5yYW5nZVswXSJdLGVbaS5fbmFtZSsiLnJhbmdlWzFdIl09ZVtsLl9uYW1lKyIucmFuZ2VbMV0iXSk6aS5yYW5nZT1sLnJhbmdlLnNsaWNlKCkpfX1mdW5jdGlvbiBOdCgpe3ZhciBlLHI9W107ZnVuY3Rpb24gbih0KXtmb3IoZT0wO2U8dC5sZW5ndGg7ZSsrKXRbZV0uZml4ZWRyYW5nZXx8ci5wdXNoKHRbZV0uX2lkKX1mb3IoaXQmJihuKFgpLG4odHQueGF4ZXMpLG4oZXQueGF4ZXMpKSxvdCYmKG4oWiksbih0dC55YXhlcyksbihldC55YXhlcykpLHV0PXt9LGU9MDtlPHIubGVuZ3RoO2UrKyl7dmFyIGE9cltlXSxpPXgodCxhKTtmLmRyYXdPbmUodCxpLHtza2lwVGl0bGU6ITB9KSx1dFtpLl9uYW1lKyIucmFuZ2VbMF0iXT1pLnJhbmdlWzBdLHV0W2kuX25hbWUrIi5yYW5nZVsxXSJdPWkucmFuZ2VbMV19Zi5yZWRyYXdDb21wb25lbnRzKHQscil9ZnVuY3Rpb24ganQoKXtWdChbMCwwLFEsJF0pLHMuc3luY09yQXN5bmMoW3kucHJldmlvdXNQcm9taXNlcyxmdW5jdGlvbigpe3QuX2Z1bGxMYXlvdXQuX3JlcGxvdHRpbmc9ITEsby5jYWxsKCJfZ3VpUmVsYXlvdXQiLHQsdXQpfV0sdCl9ZnVuY3Rpb24gVnQoZSl7dmFyIHIsbixhLGksbD10Ll9mdWxsTGF5b3V0LGM9bC5fcGxvdHMsaD1sLl9zdWJwbG90cy5jYXJ0ZXNpYW47aWYobHQmJm8uc3VicGxvdHNSZWdpc3RyeS5zcGxvbS5kcmFnKHQpLHN0KWZvcihyPTA7cjxoLmxlbmd0aDtyKyspaWYoYT0obj1jW2hbcl1dKS54YXhpcyxpPW4ueWF4aXMsbi5fc2NlbmUpe3ZhciBmPXMuc2ltcGxlTWFwKGEucmFuZ2UsYS5yMmwpLHA9cy5zaW1wbGVNYXAoaS5yYW5nZSxpLnIybCk7bi5fc2NlbmUudXBkYXRlKHtyYW5nZTpbZlswXSxwWzBdLGZbMV0scFsxXV19KX1pZigobHR8fHN0KSYmKHYodCksbSh0KSksY3Qpe3ZhciBkPWVbMl0vRi5fbGVuZ3RoLGc9ZVszXS9HLl9sZW5ndGg7Zm9yKHI9MDtyPGgubGVuZ3RoO3IrKyl7YT0obj1jW2hbcl1dKS54YXhpcyxpPW4ueWF4aXM7dmFyIHkseCxiLF8sdz1pdCYmIWEuZml4ZWRyYW5nZSYmWVthLl9pZF0saz1vdCYmIWkuZml4ZWRyYW5nZSYmV1tpLl9pZF07aWYodz8oeT1kLGI9RT9lWzBdOkh0KGEseSkpOmV0LnhhSGFzaFthLl9pZF0/KHk9ZCxiPWVbMF0qYS5fbGVuZ3RoL0YuX2xlbmd0aCk6ZXQueWFIYXNoW2EuX2lkXT8oeT1nLGI9Im5zIj09PW50Py1lWzFdKmEuX2xlbmd0aC9HLl9sZW5ndGg6SHQoYSx5LHtuOiJ0b3AiLHM6ImJvdHRvbSJ9W250XSkpOmI9cXQoYSx5PVV0KGEsZCxnKSksaz8oeD1nLF89Uz9lWzFdOkh0KGkseCkpOmV0LnlhSGFzaFtpLl9pZF0/KHg9ZyxfPWVbMV0qaS5fbGVuZ3RoL0cuX2xlbmd0aCk6ZXQueGFIYXNoW2kuX2lkXT8oeD1kLF89ImV3Ij09PXJ0Py1lWzBdKmkuX2xlbmd0aC9GLl9sZW5ndGg6SHQoaSx4LHtlOiJyaWdodCIsdzoibGVmdCJ9W3J0XSkpOl89cXQoaSx4PVV0KGksZCxnKSkseXx8eCl7eXx8KHk9MSkseHx8KHg9MSk7dmFyIFQ9YS5fb2Zmc2V0LWIveSxNPWkuX29mZnNldC1fL3g7bi5jbGlwUmVjdC5jYWxsKHUuc2V0VHJhbnNsYXRlLGIsXykuY2FsbCh1LnNldFNjYWxlLHkseCksbi5wbG90LmNhbGwodS5zZXRUcmFuc2xhdGUsVCxNKS5jYWxsKHUuc2V0U2NhbGUsMS95LDEveCkseT09PW4ueFNjYWxlRmFjdG9yJiZ4PT09bi55U2NhbGVGYWN0b3J8fCh1LnNldFBvaW50R3JvdXBTY2FsZShuLnpvb21TY2FsZVB0cyx5LHgpLHUuc2V0VGV4dFBvaW50c1NjYWxlKG4uem9vbVNjYWxlVHh0LHkseCkpLHUuaGlkZU91dHNpZGVSYW5nZVBvaW50cyhuLmNsaXBPbkF4aXNGYWxzZVRyYWNlcyxuKSxuLnhTY2FsZUZhY3Rvcj15LG4ueVNjYWxlRmFjdG9yPXh9fX19ZnVuY3Rpb24gVXQodCxlLHIpe3JldHVybiB0LmZpeGVkcmFuZ2U/MDppdCYmdHQueGFIYXNoW3QuX2lkXT9lOm90JiYodHQuaXNTdWJwbG90Q29uc3RyYWluZWQ/dHQueGFIYXNoOnR0LnlhSGFzaClbdC5faWRdP3I6MH1mdW5jdGlvbiBxdCh0LGUpe3JldHVybiBlPyh0LnJhbmdlPXQuX3Iuc2xpY2UoKSxrKHQsZSksSHQodCxlKSk6MH1mdW5jdGlvbiBIdCh0LGUscil7cmV0dXJuIHQuX2xlbmd0aCooMS1lKSpnW3J8fHQuY29uc3RyYWludG93YXJkfHwibWlkZGxlIl19cmV0dXJuIFMubGVuZ3RoKkUubGVuZ3RoIT0xJiZxKHZ0LGZ1bmN0aW9uKGUpe2lmKHQuX2NvbnRleHQuX3Njcm9sbFpvb20uY2FydGVzaWFufHx0Ll9mdWxsTGF5b3V0Ll9lbmFibGVzY3JvbGx6b29tKXtpZihFdCgpLHQuX3RyYW5zaXRpb25pbmdXaXRoRHVyYXRpb24pcmV0dXJuIGUucHJldmVudERlZmF1bHQoKSx2b2lkIGUuc3RvcFByb3BhZ2F0aW9uKCk7ZHQoKSxjbGVhclRpbWVvdXQoSXQpO3ZhciByPS1lLmRlbHRhWTtpZihpc0Zpbml0ZShyKXx8KHI9ZS53aGVlbERlbHRhLzEwKSxpc0Zpbml0ZShyKSl7dmFyIG4sYT1NYXRoLmV4cCgtTWF0aC5taW4oTWF0aC5tYXgociwtMjApLDIwKS8yMDApLGk9UnQuZHJhZ2xheWVyLnNlbGVjdCgiLm5zZXdkcmFnIikubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89KGUuY2xpZW50WC1pLmxlZnQpL2kud2lkdGgsbD0oaS5ib3R0b20tZS5jbGllbnRZKS9pLmhlaWdodDtpZihpdCl7Zm9yKEV8fChvPS41KSxuPTA7bjxYLmxlbmd0aDtuKyspYyhYW25dLG8sYSk7QnQoIngiKSx6dFsyXSo9YSx6dFswXSs9enRbMl0qbyooMS9hLTEpfWlmKG90KXtmb3IoU3x8KGw9LjUpLG49MDtuPFoubGVuZ3RoO24rKyljKFpbbl0sbCxhKTtCdCgieSIpLHp0WzNdKj1hLHp0WzFdKz16dFszXSooMS1sKSooMS9hLTEpfVZ0KHp0KSxOdCgpLHQuZW1pdCgicGxvdGx5X3JlbGF5b3V0aW5nIix1dCksSXQ9c2V0VGltZW91dChmdW5jdGlvbigpe3p0PVswLDAsUSwkXSxqdCgpfSxEdCksZS5wcmV2ZW50RGVmYXVsdCgpfWVsc2Ugcy5sb2coIkRpZCBub3QgZmluZCB3aGVlbCBtb3Rpb24gYXR0cmlidXRlczogIixlKX1mdW5jdGlvbiBjKHQsZSxyKXtpZighdC5maXhlZHJhbmdlKXt2YXIgbj1zLnNpbXBsZU1hcCh0LnJhbmdlLHQucjJsKSxhPW5bMF0rKG5bMV0tblswXSkqZTt0LnJhbmdlPW4ubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0LmwycihhKyhlLWEpKnIpfSl9fX0pLHZ0fSxtYWtlRHJhZ2dlcjpFLG1ha2VSZWN0RHJhZ2dlcjpMLG1ha2Vab29tYm94OkksbWFrZUNvcm5lcnM6RCx1cGRhdGVab29tYm94OlIseHlDb3JuZXJzOlYsdHJhbnNpdGlvblpvb21ib3g6RixyZW1vdmVab29tYm94OkIsc2hvd0RvdWJsZUNsaWNrTm90aWZpZXI6TixhdHRhY2hXaGVlbEV2ZW50SGFuZGxlcjpxfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo1OTIsIi4uLy4uL2NvbXBvbmVudHMvZHJhZ2VsZW1lbnQiOjYxMCwiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo2MTMsIi4uLy4uL2NvbXBvbmVudHMvZngiOjYzMCwiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCI6Njg2LCIuLi8uLi9saWIiOjcxNywiLi4vLi4vbGliL2NsZWFyX2dsX2NhbnZhc2VzIjo3MDIsIi4uLy4uL2xpYi9zZXRjdXJzb3IiOjczNywiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo3NDEsIi4uLy4uL3Bsb3RfYXBpL3N1YnJvdXRpbmVzIjo3NTYsIi4uLy4uL3JlZ2lzdHJ5Ijo4NDYsIi4uL3Bsb3RzIjo4MjYsIi4vYXhlcyI6NzY1LCIuL2F4aXNfaWRzIjo3NjgsIi4vY29uc3RhbnRzIjo3NzEsIi4vc2NhbGVfem9vbSI6NzgxLCIuL3NlbGVjdCI6NzgyLGQzOjE2NSwiaGFzLXBhc3NpdmUtZXZlbnRzIjo0MTMsdGlueWNvbG9yMjo1MzZ9XSw3NzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvZngiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhZ2VsZW1lbnQiKSxvPXQoIi4uLy4uL2xpYi9zZXRjdXJzb3IiKSxzPXQoIi4vZHJhZ2JveCIpLm1ha2VEcmFnQm94LGw9dCgiLi9jb25zdGFudHMiKS5EUkFHR0VSU0laRTtyLmluaXRJbnRlcmFjdGlvbnM9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dDtpZih0Ll9jb250ZXh0LnN0YXRpY1Bsb3Qpbi5zZWxlY3QodCkuc2VsZWN0QWxsKCIuZHJhZyIpLnJlbW92ZSgpO2Vsc2UgaWYoZS5faGFzKCJjYXJ0ZXNpYW4iKXx8ZS5faGFzKCJzcGxvbSIpKXtPYmplY3Qua2V5cyhlLl9wbG90c3x8e30pLnNvcnQoZnVuY3Rpb24odCxyKXtpZigoZS5fcGxvdHNbdF0ubWFpbnBsb3QmJiEwKT09PShlLl9wbG90c1tyXS5tYWlucGxvdCYmITApKXt2YXIgbj10LnNwbGl0KCJ5IiksYT1yLnNwbGl0KCJ5Iik7cmV0dXJuIG5bMF09PT1hWzBdP051bWJlcihuWzFdfHwxKS1OdW1iZXIoYVsxXXx8MSk6TnVtYmVyKG5bMF18fDEpLU51bWJlcihhWzBdfHwxKX1yZXR1cm4gZS5fcGxvdHNbdF0ubWFpbnBsb3Q/MTotMX0pLmZvckVhY2goZnVuY3Rpb24ocil7dmFyIG49ZS5fcGxvdHNbcl0sbz1uLnhheGlzLGM9bi55YXhpcztpZighbi5tYWlucGxvdCl7dmFyIHU9cyh0LG4sby5fb2Zmc2V0LGMuX29mZnNldCxvLl9sZW5ndGgsYy5fbGVuZ3RoLCJucyIsImV3Iik7dS5vbm1vdXNlbW92ZT1mdW5jdGlvbihlKXt0Ll9mdWxsTGF5b3V0Ll9yZWhvdmVyPWZ1bmN0aW9uKCl7dC5fZnVsbExheW91dC5faG92ZXJzdWJwbG90PT09ciYmdC5fZnVsbExheW91dC5fcGxvdHNbcl0mJmEuaG92ZXIodCxlLHIpfSxhLmhvdmVyKHQsZSxyKSx0Ll9mdWxsTGF5b3V0Ll9sYXN0aG92ZXI9dSx0Ll9mdWxsTGF5b3V0Ll9ob3ZlcnN1YnBsb3Q9cn0sdS5vbm1vdXNlb3V0PWZ1bmN0aW9uKGUpe3QuX2RyYWdnaW5nfHwodC5fZnVsbExheW91dC5faG92ZXJzdWJwbG90PW51bGwsaS51bmhvdmVyKHQsZSkpfSx0Ll9jb250ZXh0LnNob3dBeGlzRHJhZ0hhbmRsZXMmJihzKHQsbixvLl9vZmZzZXQtbCxjLl9vZmZzZXQtbCxsLGwsIm4iLCJ3Iikscyh0LG4sby5fb2Zmc2V0K28uX2xlbmd0aCxjLl9vZmZzZXQtbCxsLGwsIm4iLCJlIikscyh0LG4sby5fb2Zmc2V0LWwsYy5fb2Zmc2V0K2MuX2xlbmd0aCxsLGwsInMiLCJ3Iikscyh0LG4sby5fb2Zmc2V0K28uX2xlbmd0aCxjLl9vZmZzZXQrYy5fbGVuZ3RoLGwsbCwicyIsImUiKSl9aWYodC5fY29udGV4dC5zaG93QXhpc0RyYWdIYW5kbGVzKXtpZihyPT09by5fbWFpblN1YnBsb3Qpe3ZhciBoPW8uX21haW5MaW5lUG9zaXRpb247InRvcCI9PT1vLnNpZGUmJihoLT1sKSxzKHQsbixvLl9vZmZzZXQrLjEqby5fbGVuZ3RoLGgsLjgqby5fbGVuZ3RoLGwsIiIsImV3Iikscyh0LG4sby5fb2Zmc2V0LGgsLjEqby5fbGVuZ3RoLGwsIiIsInciKSxzKHQsbixvLl9vZmZzZXQrLjkqby5fbGVuZ3RoLGgsLjEqby5fbGVuZ3RoLGwsIiIsImUiKX1pZihyPT09Yy5fbWFpblN1YnBsb3Qpe3ZhciBmPWMuX21haW5MaW5lUG9zaXRpb247InJpZ2h0IiE9PWMuc2lkZSYmKGYtPWwpLHModCxuLGYsYy5fb2Zmc2V0Ky4xKmMuX2xlbmd0aCxsLC44KmMuX2xlbmd0aCwibnMiLCIiKSxzKHQsbixmLGMuX29mZnNldCsuOSpjLl9sZW5ndGgsbCwuMSpjLl9sZW5ndGgsInMiLCIiKSxzKHQsbixmLGMuX29mZnNldCxsLC4xKmMuX2xlbmd0aCwibiIsIiIpfX19KTt2YXIgbz1lLl9ob3ZlcmxheWVyLm5vZGUoKTtvLm9ubW91c2Vtb3ZlPWZ1bmN0aW9uKHIpe3IudGFyZ2V0PXQuX2Z1bGxMYXlvdXQuX2xhc3Rob3ZlcixhLmhvdmVyKHQscixlLl9ob3ZlcnN1YnBsb3QpfSxvLm9uY2xpY2s9ZnVuY3Rpb24oZSl7ZS50YXJnZXQ9dC5fZnVsbExheW91dC5fbGFzdGhvdmVyLGEuY2xpY2sodCxlKX0sby5vbm1vdXNlZG93bj1mdW5jdGlvbihlKXt0Ll9mdWxsTGF5b3V0Ll9sYXN0aG92ZXIub25tb3VzZWRvd24oZSl9LHIudXBkYXRlRngodCl9fSxyLnVwZGF0ZUZ4PWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQscj0icGFuIj09PWUuZHJhZ21vZGU/Im1vdmUiOiJjcm9zc2hhaXIiO28oZS5fZHJhZ2dlcnMscil9fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhZ2VsZW1lbnQiOjYxMCwiLi4vLi4vY29tcG9uZW50cy9meCI6NjMwLCIuLi8uLi9saWIvc2V0Y3Vyc29yIjo3MzcsIi4vY29uc3RhbnRzIjo3NzEsIi4vZHJhZ2JveCI6NzczLGQzOjE2NX1dLDc3NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9yZWdpc3RyeSIpLGE9dCgiLi4vLi4vbGliIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLHIpe3ZhciBpPWVbdF07aWYoQXJyYXkuaXNBcnJheShpKSlmb3IodmFyIG89bi5zdWJwbG90c1JlZ2lzdHJ5LmNhcnRlc2lhbixzPW8uaWRSZWdleCxsPXIuX3N1YnBsb3RzLGM9bC54YXhpcyx1PWwueWF4aXMsaD1sLmNhcnRlc2lhbixmPXIuX2hhcygiY2FydGVzaWFuIil8fHIuX2hhcygiZ2wyZCIpLHA9MDtwPGkubGVuZ3RoO3ArKyl7dmFyIGQ9aVtwXTtpZihhLmlzUGxhaW5PYmplY3QoZCkpe3ZhciBnPWQueHJlZix2PWQueXJlZixtPXMueC50ZXN0KGcpLHk9cy55LnRlc3Qodik7aWYobXx8eSl7Znx8YS5wdXNoVW5pcXVlKHIuX2Jhc2VQbG90TW9kdWxlcyxvKTt2YXIgeD0hMTttJiYtMT09PWMuaW5kZXhPZihnKSYmKGMucHVzaChnKSx4PSEwKSx5JiYtMT09PXUuaW5kZXhPZih2KSYmKHUucHVzaCh2KSx4PSEwKSx4JiZtJiZ5JiZoLnB1c2goZyt2KX19fX19fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi8uLi9yZWdpc3RyeSI6ODQ2fV0sNzc2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksYT10KCIuLi8uLi9yZWdpc3RyeSIpLGk9dCgiLi4vLi4vbGliIiksbz10KCIuLi9wbG90cyIpLHM9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksbD10KCIuLi9nZXRfZGF0YSIpLmdldE1vZHVsZUNhbGNEYXRhLGM9dCgiLi9heGlzX2lkcyIpLHU9dCgiLi9jb25zdGFudHMiKSxoPXQoIi4uLy4uL2NvbnN0YW50cy94bWxuc19uYW1lc3BhY2VzIiksZj1pLmVuc3VyZVNpbmdsZTtmdW5jdGlvbiBwKHQsZSxyKXtyZXR1cm4gaS5lbnN1cmVTaW5nbGUodCxlLHIsZnVuY3Rpb24odCl7dC5kYXR1bShyKX0pfWZ1bmN0aW9uIGQodCxlLHIsaSxvKXtmb3IodmFyIGMsaCxmLHA9dS50cmFjZUxheWVyQ2xhc3NlcyxkPXQuX2Z1bGxMYXlvdXQsZz1kLl9tb2R1bGVzLHY9W10sbT1bXSx5PTA7eTxnLmxlbmd0aDt5Kyspe3ZhciB4PShjPWdbeV0pLm5hbWUsYj1hLm1vZHVsZXNbeF0uY2F0ZWdvcmllcztpZihiLnN2Zyl7dmFyIF89Yy5sYXllck5hbWV8fHgrImxheWVyIix3PWMucGxvdDtmPShoPWwocix3KSlbMF0scj1oWzFdLGYubGVuZ3RoJiZ2LnB1c2goe2k6cC5pbmRleE9mKF8pLGNsYXNzTmFtZTpfLHBsb3RNZXRob2Q6dyxjZE1vZHVsZTpmfSksYi56b29tU2NhbGUmJm0ucHVzaCgiLiIrXyl9fXYuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiB0LmktZS5pfSk7dmFyIGs9ZS5wbG90LnNlbGVjdEFsbCgiZy5tbGF5ZXIiKS5kYXRhKHYsZnVuY3Rpb24odCl7cmV0dXJuIHQuY2xhc3NOYW1lfSk7aWYoay5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIixmdW5jdGlvbih0KXtyZXR1cm4gdC5jbGFzc05hbWV9KS5jbGFzc2VkKCJtbGF5ZXIiLCEwKS5jbGFzc2VkKCJyYW5nZXBsb3QiLGUuaXNSYW5nZVBsb3QpLGsuZXhpdCgpLnJlbW92ZSgpLGsub3JkZXIoKSxrLmVhY2goZnVuY3Rpb24ocil7dmFyIGE9bi5zZWxlY3QodGhpcyksbD1yLmNsYXNzTmFtZTtyLnBsb3RNZXRob2QodCxlLHIuY2RNb2R1bGUsYSxpLG8pLC0xPT09dS5jbGlwT25BeGlzRmFsc2VRdWVyeS5pbmRleE9mKCIuIitsKSYmcy5zZXRDbGlwVXJsKGEsZS5sYXllckNsaXBJZCx0KX0pLGQuX2hhcygic2NhdHRlcmdsIikmJihjPWEuZ2V0TW9kdWxlKCJzY2F0dGVyZ2wiKSxmPWwocixjKVswXSxjLnBsb3QodCxlLGYpKSwhdC5fY29udGV4dC5zdGF0aWNQbG90JiYoZS5faGFzQ2xpcE9uQXhpc0ZhbHNlJiYoZS5jbGlwT25BeGlzRmFsc2VUcmFjZXM9ZS5wbG90LnNlbGVjdEFsbCh1LmNsaXBPbkF4aXNGYWxzZVF1ZXJ5LmpvaW4oIiwiKSkuc2VsZWN0QWxsKCIudHJhY2UiKSksbS5sZW5ndGgpKXt2YXIgVD1lLnBsb3Quc2VsZWN0QWxsKG0uam9pbigiLCIpKS5zZWxlY3RBbGwoIi50cmFjZSIpO2Uuem9vbVNjYWxlUHRzPVQuc2VsZWN0QWxsKCJwYXRoLnBvaW50IiksZS56b29tU2NhbGVUeHQ9VC5zZWxlY3RBbGwoIi50ZXh0cG9pbnQiKX19ZnVuY3Rpb24gZyh0LGUpe3ZhciByPWUucGxvdGdyb3VwLG49ZS5pZCxhPXUubGF5ZXJWYWx1ZTJsYXllckNsYXNzW2UueGF4aXMubGF5ZXJdLGk9dS5sYXllclZhbHVlMmxheWVyQ2xhc3NbZS55YXhpcy5sYXllcl0sbz10Ll9mdWxsTGF5b3V0Ll9oYXNPbmx5TGFyZ2VTcGxvbXM7aWYoZS5tYWlucGxvdCl7dmFyIHM9ZS5tYWlucGxvdGluZm8sbD1zLnBsb3Rncm91cCxoPW4rIi14IixkPW4rIi15IjtlLmdyaWRsYXllcj1zLmdyaWRsYXllcixlLnplcm9saW5lbGF5ZXI9cy56ZXJvbGluZWxheWVyLGYocy5vdmVybGluZXNCZWxvdywicGF0aCIsaCksZihzLm92ZXJsaW5lc0JlbG93LCJwYXRoIixkKSxmKHMub3ZlcmF4ZXNCZWxvdywiZyIsaCksZihzLm92ZXJheGVzQmVsb3csImciLGQpLGUucGxvdD1mKHMub3ZlcnBsb3QsImciLG4pLGYocy5vdmVybGluZXNBYm92ZSwicGF0aCIsaCksZihzLm92ZXJsaW5lc0Fib3ZlLCJwYXRoIixkKSxmKHMub3ZlcmF4ZXNBYm92ZSwiZyIsaCksZihzLm92ZXJheGVzQWJvdmUsImciLGQpLGUueGxpbmVzPWwuc2VsZWN0KCIub3ZlcmxpbmVzLSIrYSkuc2VsZWN0KCIuIitoKSxlLnlsaW5lcz1sLnNlbGVjdCgiLm92ZXJsaW5lcy0iK2kpLnNlbGVjdCgiLiIrZCksZS54YXhpc2xheWVyPWwuc2VsZWN0KCIub3ZlcmF4ZXMtIithKS5zZWxlY3QoIi4iK2gpLGUueWF4aXNsYXllcj1sLnNlbGVjdCgiLm92ZXJheGVzLSIraSkuc2VsZWN0KCIuIitkKX1lbHNlIGlmKG8pZS54bGluZXM9ZihyLCJwYXRoIiwieGxpbmVzLWFib3ZlIiksZS55bGluZXM9ZihyLCJwYXRoIiwieWxpbmVzLWFib3ZlIiksZS54YXhpc2xheWVyPWYociwiZyIsInhheGlzbGF5ZXItYWJvdmUiKSxlLnlheGlzbGF5ZXI9ZihyLCJnIiwieWF4aXNsYXllci1hYm92ZSIpO2Vsc2V7dmFyIGc9ZihyLCJnIiwibGF5ZXItc3VicGxvdCIpO2Uuc2hhcGVsYXllcj1mKGcsImciLCJzaGFwZWxheWVyIiksZS5pbWFnZWxheWVyPWYoZywiZyIsImltYWdlbGF5ZXIiKSxlLmdyaWRsYXllcj1mKHIsImciLCJncmlkbGF5ZXIiKSxlLnplcm9saW5lbGF5ZXI9ZihyLCJnIiwiemVyb2xpbmVsYXllciIpLGYociwicGF0aCIsInhsaW5lcy1iZWxvdyIpLGYociwicGF0aCIsInlsaW5lcy1iZWxvdyIpLGUub3ZlcmxpbmVzQmVsb3c9ZihyLCJnIiwib3ZlcmxpbmVzLWJlbG93IiksZihyLCJnIiwieGF4aXNsYXllci1iZWxvdyIpLGYociwiZyIsInlheGlzbGF5ZXItYmVsb3ciKSxlLm92ZXJheGVzQmVsb3c9ZihyLCJnIiwib3ZlcmF4ZXMtYmVsb3ciKSxlLnBsb3Q9ZihyLCJnIiwicGxvdCIpLGUub3ZlcnBsb3Q9ZihyLCJnIiwib3ZlcnBsb3QiKSxlLnhsaW5lcz1mKHIsInBhdGgiLCJ4bGluZXMtYWJvdmUiKSxlLnlsaW5lcz1mKHIsInBhdGgiLCJ5bGluZXMtYWJvdmUiKSxlLm92ZXJsaW5lc0Fib3ZlPWYociwiZyIsIm92ZXJsaW5lcy1hYm92ZSIpLGYociwiZyIsInhheGlzbGF5ZXItYWJvdmUiKSxmKHIsImciLCJ5YXhpc2xheWVyLWFib3ZlIiksZS5vdmVyYXhlc0Fib3ZlPWYociwiZyIsIm92ZXJheGVzLWFib3ZlIiksZS54bGluZXM9ci5zZWxlY3QoIi54bGluZXMtIithKSxlLnlsaW5lcz1yLnNlbGVjdCgiLnlsaW5lcy0iK2kpLGUueGF4aXNsYXllcj1yLnNlbGVjdCgiLnhheGlzbGF5ZXItIithKSxlLnlheGlzbGF5ZXI9ci5zZWxlY3QoIi55YXhpc2xheWVyLSIraSl9b3x8KHAoZS5ncmlkbGF5ZXIsImciLGUueGF4aXMuX2lkKSxwKGUuZ3JpZGxheWVyLCJnIixlLnlheGlzLl9pZCksZS5ncmlkbGF5ZXIuc2VsZWN0QWxsKCJnIikubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdfSkuc29ydChjLmlkU29ydCkpLGUueGxpbmVzLnN0eWxlKCJmaWxsIiwibm9uZSIpLmNsYXNzZWQoImNyaXNwIiwhMCksZS55bGluZXMuc3R5bGUoImZpbGwiLCJub25lIikuY2xhc3NlZCgiY3Jpc3AiLCEwKX1mdW5jdGlvbiB2KHQsZSl7aWYodCl7dmFyIHI9e307Zm9yKHZhciBhIGluIHQuZWFjaChmdW5jdGlvbih0KXt2YXIgYT10WzBdO24uc2VsZWN0KHRoaXMpLnJlbW92ZSgpLG0oYSxlKSxyW2FdPSEwfSksZS5fcGxvdHMpZm9yKHZhciBpPWUuX3Bsb3RzW2FdLm92ZXJsYXlzfHxbXSxvPTA7bzxpLmxlbmd0aDtvKyspe3ZhciBzPWlbb107cltzLmlkXSYmcy5wbG90LnNlbGVjdEFsbCgiLnRyYWNlIikucmVtb3ZlKCl9fX1mdW5jdGlvbiBtKHQsZSl7ZS5fZHJhZ2dlcnMuc2VsZWN0QWxsKCJnLiIrdCkucmVtb3ZlKCksZS5fZGVmcy5zZWxlY3QoIiNjbGlwIitlLl91aWQrdCsicGxvdCIpLnJlbW92ZSgpfXIubmFtZT0iY2FydGVzaWFuIixyLmF0dHI9WyJ4YXhpcyIsInlheGlzIl0sci5pZFJvb3Q9WyJ4IiwieSJdLHIuaWRSZWdleD11LmlkUmVnZXgsci5hdHRyUmVnZXg9dS5hdHRyUmVnZXgsci5hdHRyaWJ1dGVzPXQoIi4vYXR0cmlidXRlcyIpLHIubGF5b3V0QXR0cmlidXRlcz10KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksci5zdXBwbHlMYXlvdXREZWZhdWx0cz10KCIuL2xheW91dF9kZWZhdWx0cyIpLHIudHJhbnNpdGlvbkF4ZXM9dCgiLi90cmFuc2l0aW9uX2F4ZXMiKSxyLmZpbmFsaXplU3VicGxvdHM9ZnVuY3Rpb24odCxlKXt2YXIgcixuLGEsbz1lLl9zdWJwbG90cyxzPW8ueGF4aXMsbD1vLnlheGlzLGg9by5jYXJ0ZXNpYW4sZj1oLmNvbmNhdChvLmdsMmR8fFtdKSxwPXt9LGQ9e307Zm9yKHI9MDtyPGYubGVuZ3RoO3IrKyl7dmFyIGc9ZltyXS5zcGxpdCgieSIpO3BbZ1swXV09MSxkWyJ5IitnWzFdXT0xfWZvcihyPTA7cjxzLmxlbmd0aDtyKyspcFtuPXNbcl1dfHwoYT0odFtjLmlkMm5hbWUobildfHx7fSkuYW5jaG9yLHUuaWRSZWdleC55LnRlc3QoYSl8fChhPSJ5IiksaC5wdXNoKG4rYSksZi5wdXNoKG4rYSksZFthXXx8KGRbYV09MSxpLnB1c2hVbmlxdWUobCxhKSkpO2ZvcihyPTA7cjxsLmxlbmd0aDtyKyspZFthPWxbcl1dfHwobj0odFtjLmlkMm5hbWUoYSldfHx7fSkuYW5jaG9yLHUuaWRSZWdleC54LnRlc3Qobil8fChuPSJ4IiksaC5wdXNoKG4rYSksZi5wdXNoKG4rYSkscFtuXXx8KHBbbl09MSxpLnB1c2hVbmlxdWUocyxuKSkpO2lmKCFmLmxlbmd0aCl7Zm9yKHZhciB2IGluIG49IiIsYT0iIix0KXtpZih1LmF0dHJSZWdleC50ZXN0KHYpKSJ4Ij09PXYuY2hhckF0KDApPyghbnx8K3Yuc3Vic3RyKDUpPCtuLnN1YnN0cig1KSkmJihuPXYpOighYXx8K3Yuc3Vic3RyKDUpPCthLnN1YnN0cig1KSkmJihhPXYpfW49bj9jLm5hbWUyaWQobik6IngiLGE9YT9jLm5hbWUyaWQoYSk6InkiLHMucHVzaChuKSxsLnB1c2goYSksaC5wdXNoKG4rYSl9fSxyLnBsb3Q9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGEsaT10Ll9mdWxsTGF5b3V0LG89aS5fc3VicGxvdHMuY2FydGVzaWFuLHM9dC5jYWxjZGF0YTtpZighQXJyYXkuaXNBcnJheShlKSlmb3IoZT1bXSxhPTA7YTxzLmxlbmd0aDthKyspZS5wdXNoKGEpO2ZvcihhPTA7YTxvLmxlbmd0aDthKyspe2Zvcih2YXIgbCxjPW9bYV0sdT1pLl9wbG90c1tjXSxoPVtdLGY9MDtmPHMubGVuZ3RoO2YrKyl7dmFyIHA9c1tmXSxnPXBbMF0udHJhY2U7Zy54YXhpcytnLnlheGlzPT09YyYmKCgtMSE9PWUuaW5kZXhPZihnLmluZGV4KXx8Zy5jYXJwZXQpJiYobCYmbFswXS50cmFjZS54YXhpcytsWzBdLnRyYWNlLnlheGlzPT09YyYmLTEhPT1bInRvbmV4dHgiLCJ0b25leHR5IiwidG9uZXh0Il0uaW5kZXhPZihnLmZpbGwpJiYtMT09PWguaW5kZXhPZihsKSYmaC5wdXNoKGwpLGgucHVzaChwKSksbD1wKX1kKHQsdSxoLHIsbil9fSxyLmNsZWFuPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhLGksbyxzPW4uX3Bsb3RzfHx7fSxsPWUuX3Bsb3RzfHx7fSx1PW4uX3N1YnBsb3RzfHx7fTtpZihuLl9oYXNPbmx5TGFyZ2VTcGxvbXMmJiFlLl9oYXNPbmx5TGFyZ2VTcGxvbXMpZm9yKG8gaW4gcykoYT1zW29dKS5wbG90Z3JvdXAmJmEucGxvdGdyb3VwLnJlbW92ZSgpO3ZhciBoPW4uX2hhcyYmbi5faGFzKCJnbCIpLGY9ZS5faGFzJiZlLl9oYXMoImdsIik7aWYoaCYmIWYpZm9yKG8gaW4gcykoYT1zW29dKS5fc2NlbmUmJmEuX3NjZW5lLmRlc3Ryb3koKTtpZih1LnhheGlzJiZ1LnlheGlzKXt2YXIgcD1jLmxpc3RJZHMoe19mdWxsTGF5b3V0Om59KTtmb3IoaT0wO2k8cC5sZW5ndGg7aSsrKXt2YXIgZD1wW2ldO2VbYy5pZDJuYW1lKGQpXXx8bi5faW5mb2xheWVyLnNlbGVjdEFsbCgiLmctIitkKyJ0aXRsZSIpLnJlbW92ZSgpfX12YXIgZz1uLl9oYXMmJm4uX2hhcygiY2FydGVzaWFuIikseT1lLl9oYXMmJmUuX2hhcygiY2FydGVzaWFuIik7aWYoZyYmIXkpdihuLl9jYXJ0ZXNpYW5sYXllci5zZWxlY3RBbGwoIi5zdWJwbG90Iiksbiksbi5fZGVmcy5zZWxlY3RBbGwoIi5heGVzY2xpcCIpLnJlbW92ZSgpLGRlbGV0ZSBuLl9heGlzQ29uc3RyYWludEdyb3VwcztlbHNlIGlmKHUuY2FydGVzaWFuKWZvcihpPTA7aTx1LmNhcnRlc2lhbi5sZW5ndGg7aSsrKXt2YXIgeD11LmNhcnRlc2lhbltpXTtpZighbFt4XSl7dmFyIGI9Ii4iK3grIiwuIit4KyIteCwuIit4KyIteSI7bi5fY2FydGVzaWFubGF5ZXIuc2VsZWN0QWxsKGIpLnJlbW92ZSgpLG0oeCxuKX19fSxyLmRyYXdGcmFtZXdvcms9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dCxyPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixhLGksbyxzPXQuX2Z1bGxMYXlvdXQsbD1zLl9zdWJwbG90cy5jYXJ0ZXNpYW4sYz1sLmxlbmd0aCx1PVtdLGg9W107Zm9yKGU9MDtlPGM7ZSsrKXtuPWxbZV0sYT1zLl9wbG90c1tuXSxpPWEueGF4aXMsbz1hLnlheGlzO3ZhciBmPWkuX21haW5BeGlzLHA9by5fbWFpbkF4aXMsZD1mLl9pZCtwLl9pZCxnPXMuX3Bsb3RzW2RdO2Eub3ZlcmxheXM9W10sZCE9PW4mJmc/KGEubWFpbnBsb3Q9ZCxhLm1haW5wbG90aW5mbz1nLGgucHVzaChuKSk6KGEubWFpbnBsb3Q9dm9pZCAwLGEubWFpblBsb3RpbmZvPXZvaWQgMCx1LnB1c2gobikpfWZvcihlPTA7ZTxoLmxlbmd0aDtlKyspbj1oW2VdLChhPXMuX3Bsb3RzW25dKS5tYWlucGxvdGluZm8ub3ZlcmxheXMucHVzaChhKTt2YXIgdj11LmNvbmNhdChoKSxtPW5ldyBBcnJheShjKTtmb3IoZT0wO2U8YztlKyspe249dltlXSxhPXMuX3Bsb3RzW25dLGk9YS54YXhpcyxvPWEueWF4aXM7dmFyIHk9W24saS5sYXllcixvLmxheWVyLGkub3ZlcmxheWluZ3x8IiIsby5vdmVybGF5aW5nfHwiIl07Zm9yKHI9MDtyPGEub3ZlcmxheXMubGVuZ3RoO3IrKyl5LnB1c2goYS5vdmVybGF5c1tyXS5pZCk7bVtlXT15fXJldHVybiBtfSh0KSxhPWUuX2NhcnRlc2lhbmxheWVyLnNlbGVjdEFsbCgiLnN1YnBsb3QiKS5kYXRhKHIsU3RyaW5nKTthLmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLGZ1bmN0aW9uKHQpe3JldHVybiJzdWJwbG90ICIrdFswXX0pLGEub3JkZXIoKSxhLmV4aXQoKS5jYWxsKHYsZSksYS5lYWNoKGZ1bmN0aW9uKHIpe3ZhciBhPXJbMF0saT1lLl9wbG90c1thXTtpLnBsb3Rncm91cD1uLnNlbGVjdCh0aGlzKSxnKHQsaSksaS5kcmFnbGF5ZXI9ZihlLl9kcmFnZ2VycywiZyIsYSl9KX0sci5yYW5nZVBsb3Q9ZnVuY3Rpb24odCxlLHIpe2codCxlKSxkKHQsZSxyKSxvLnN0eWxlKHQpfSxyLnRvU1ZHPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQuX2dsaW1hZ2VzLHI9bi5zZWxlY3QodCkuc2VsZWN0QWxsKCIuc3ZnLWNvbnRhaW5lciIpO3IuZmlsdGVyKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU9PT1yLnNpemUoKS0xfSkuc2VsZWN0QWxsKCIuZ2wtY2FudmFzLWNvbnRleHQsIC5nbC1jYW52YXMtZm9jdXMiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50b0RhdGFVUkwoImltYWdlL3BuZyIpO2UuYXBwZW5kKCJzdmc6aW1hZ2UiKS5hdHRyKHt4bWxuczpoLnN2ZywieGxpbms6aHJlZiI6dCxwcmVzZXJ2ZUFzcGVjdFJhdGlvOiJub25lIix4OjAseTowLHdpZHRoOnRoaXMud2lkdGgsaGVpZ2h0OnRoaXMuaGVpZ2h0fSl9KX0sci51cGRhdGVGeD10KCIuL2dyYXBoX2ludGVyYWN0IikudXBkYXRlRnh9LHsiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo2MTMsIi4uLy4uL2NvbnN0YW50cy94bWxuc19uYW1lc3BhY2VzIjo2OTQsIi4uLy4uL2xpYiI6NzE3LCIuLi8uLi9yZWdpc3RyeSI6ODQ2LCIuLi9nZXRfZGF0YSI6ODAwLCIuLi9wbG90cyI6ODI2LCIuL2F0dHJpYnV0ZXMiOjc2MywiLi9heGlzX2lkcyI6NzY4LCIuL2NvbnN0YW50cyI6NzcxLCIuL2dyYXBoX2ludGVyYWN0Ijo3NzQsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjc3NywiLi9sYXlvdXRfZGVmYXVsdHMiOjc3OCwiLi90cmFuc2l0aW9uX2F4ZXMiOjc4NyxkMzoxNjV9XSw3Nzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vZm9udF9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZy9hdHRyaWJ1dGVzIikuZGFzaCxvPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LHM9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLnRlbXBsYXRlZEFycmF5LGw9KHQoIi4uLy4uL2NvbnN0YW50cy9kb2NzIikuRk9STUFUX0xJTkssdCgiLi4vLi4vY29uc3RhbnRzL2RvY3MiKS5EQVRFX0ZPUk1BVF9MSU5LLHQoIi4vY29uc3RhbnRzIikpO2UuZXhwb3J0cz17dmlzaWJsZTp7dmFsVHlwZToiYm9vbGVhbiIsZWRpdFR5cGU6InBsb3QifSxjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6YS5kZWZhdWx0TGluZSxlZGl0VHlwZToidGlja3MifSx0aXRsZTp7dGV4dDp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToidGlja3MifSxmb250Om4oe2VkaXRUeXBlOiJ0aWNrcyJ9KSxzdGFuZG9mZjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxlZGl0VHlwZToidGlja3MifSxlZGl0VHlwZToidGlja3MifSx0eXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyItIiwibGluZWFyIiwibG9nIiwiZGF0ZSIsImNhdGVnb3J5IiwibXVsdGljYXRlZ29yeSJdLGRmbHQ6Ii0iLGVkaXRUeXBlOiJjYWxjIixfbm9UZW1wbGF0aW5nOiEwfSxhdXRvcmFuZ2U6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbITAsITEsInJldmVyc2VkIl0sZGZsdDohMCxlZGl0VHlwZToiYXhyYW5nZSIsaW1wbGllZEVkaXRzOnsicmFuZ2VbMF0iOnZvaWQgMCwicmFuZ2VbMV0iOnZvaWQgMH19LHJhbmdlbW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsibm9ybWFsIiwidG96ZXJvIiwibm9ubmVnYXRpdmUiXSxkZmx0OiJub3JtYWwiLGVkaXRUeXBlOiJwbG90In0scmFuZ2U6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGl0ZW1zOlt7dmFsVHlwZToiYW55IixlZGl0VHlwZToiYXhyYW5nZSIsaW1wbGllZEVkaXRzOnsiXmF1dG9yYW5nZSI6ITF9LGFuaW06ITB9LHt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJheHJhbmdlIixpbXBsaWVkRWRpdHM6eyJeYXV0b3JhbmdlIjohMX0sYW5pbTohMH1dLGVkaXRUeXBlOiJheHJhbmdlIixpbXBsaWVkRWRpdHM6e2F1dG9yYW5nZTohMX0sYW5pbTohMH0sZml4ZWRyYW5nZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMSxlZGl0VHlwZToiY2FsYyJ9LHNjYWxlYW5jaG9yOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6W2wuaWRSZWdleC54LnRvU3RyaW5nKCksbC5pZFJlZ2V4LnkudG9TdHJpbmcoKV0sZWRpdFR5cGU6InBsb3QifSxzY2FsZXJhdGlvOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MSxlZGl0VHlwZToicGxvdCJ9LGNvbnN0cmFpbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsicmFuZ2UiLCJkb21haW4iXSxkZmx0OiJyYW5nZSIsZWRpdFR5cGU6InBsb3QifSxjb25zdHJhaW50b3dhcmQ6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImxlZnQiLCJjZW50ZXIiLCJyaWdodCIsInRvcCIsIm1pZGRsZSIsImJvdHRvbSJdLGVkaXRUeXBlOiJwbG90In0sbWF0Y2hlczp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOltsLmlkUmVnZXgueC50b1N0cmluZygpLGwuaWRSZWdleC55LnRvU3RyaW5nKCldLGVkaXRUeXBlOiJjYWxjIn0sdGlja21vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImF1dG8iLCJsaW5lYXIiLCJhcnJheSJdLGVkaXRUeXBlOiJ0aWNrcyIsaW1wbGllZEVkaXRzOnt0aWNrMDp2b2lkIDAsZHRpY2s6dm9pZCAwfX0sbnRpY2tzOnt2YWxUeXBlOiJpbnRlZ2VyIixtaW46MCxkZmx0OjAsZWRpdFR5cGU6InRpY2tzIn0sdGljazA6e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6InRpY2tzIixpbXBsaWVkRWRpdHM6e3RpY2ttb2RlOiJsaW5lYXIifX0sZHRpY2s6e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6InRpY2tzIixpbXBsaWVkRWRpdHM6e3RpY2ttb2RlOiJsaW5lYXIifX0sdGlja3ZhbHM6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJ0aWNrcyJ9LHRpY2t0ZXh0Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToidGlja3MifSx0aWNrczp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsib3V0c2lkZSIsImluc2lkZSIsIiJdLGVkaXRUeXBlOiJ0aWNrcyJ9LHRpY2tzb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImxhYmVscyIsImJvdW5kYXJpZXMiXSxkZmx0OiJsYWJlbHMiLGVkaXRUeXBlOiJ0aWNrcyJ9LG1pcnJvcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlshMCwidGlja3MiLCExLCJhbGwiLCJhbGx0aWNrcyJdLGRmbHQ6ITEsZWRpdFR5cGU6InRpY2tzK2xheW91dHN0eWxlIn0sdGlja2xlbjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjUsZWRpdFR5cGU6InRpY2tzIn0sdGlja3dpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MSxlZGl0VHlwZToidGlja3MifSx0aWNrY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmEuZGVmYXVsdExpbmUsZWRpdFR5cGU6InRpY2tzIn0sc2hvd3RpY2tsYWJlbHM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6InRpY2tzIn0sYXV0b21hcmdpbjp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMSxlZGl0VHlwZToidGlja3MifSxzaG93c3Bpa2VzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExLGVkaXRUeXBlOiJtb2RlYmFyIn0sc3Bpa2Vjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6bnVsbCxlZGl0VHlwZToibm9uZSJ9LHNwaWtldGhpY2tuZXNzOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MyxlZGl0VHlwZToibm9uZSJ9LHNwaWtlZGFzaDpvKHt9LGkse2RmbHQ6ImRhc2giLGVkaXRUeXBlOiJub25lIn0pLHNwaWtlbW9kZTp7dmFsVHlwZToiZmxhZ2xpc3QiLGZsYWdzOlsidG9heGlzIiwiYWNyb3NzIiwibWFya2VyIl0sZGZsdDoidG9heGlzIixlZGl0VHlwZToibm9uZSJ9LHNwaWtlc25hcDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZGF0YSIsImN1cnNvciJdLGRmbHQ6ImRhdGEiLGVkaXRUeXBlOiJub25lIn0sdGlja2ZvbnQ6bih7ZWRpdFR5cGU6InRpY2tzIn0pLHRpY2thbmdsZTp7dmFsVHlwZToiYW5nbGUiLGRmbHQ6ImF1dG8iLGVkaXRUeXBlOiJ0aWNrcyJ9LHRpY2twcmVmaXg6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixlZGl0VHlwZToidGlja3MifSxzaG93dGlja3ByZWZpeDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYWxsIiwiZmlyc3QiLCJsYXN0Iiwibm9uZSJdLGRmbHQ6ImFsbCIsZWRpdFR5cGU6InRpY2tzIn0sdGlja3N1ZmZpeDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGVkaXRUeXBlOiJ0aWNrcyJ9LHNob3d0aWNrc3VmZml4Ont2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhbGwiLCJmaXJzdCIsImxhc3QiLCJub25lIl0sZGZsdDoiYWxsIixlZGl0VHlwZToidGlja3MifSxzaG93ZXhwb25lbnQ6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImFsbCIsImZpcnN0IiwibGFzdCIsIm5vbmUiXSxkZmx0OiJhbGwiLGVkaXRUeXBlOiJ0aWNrcyJ9LGV4cG9uZW50Zm9ybWF0Ont2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJub25lIiwiZSIsIkUiLCJwb3dlciIsIlNJIiwiQiJdLGRmbHQ6IkIiLGVkaXRUeXBlOiJ0aWNrcyJ9LHNlcGFyYXRldGhvdXNhbmRzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExLGVkaXRUeXBlOiJ0aWNrcyJ9LHRpY2tmb3JtYXQ6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixlZGl0VHlwZToidGlja3MifSx0aWNrZm9ybWF0c3RvcHM6cygidGlja2Zvcm1hdHN0b3AiLHtlbmFibGVkOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJ0aWNrcyJ9LGR0aWNrcmFuZ2U6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGl0ZW1zOlt7dmFsVHlwZToiYW55IixlZGl0VHlwZToidGlja3MifSx7dmFsVHlwZToiYW55IixlZGl0VHlwZToidGlja3MifV0sZWRpdFR5cGU6InRpY2tzIn0sdmFsdWU6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixlZGl0VHlwZToidGlja3MifSxlZGl0VHlwZToidGlja3MifSksaG92ZXJmb3JtYXQ6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixlZGl0VHlwZToibm9uZSJ9LHNob3dsaW5lOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExLGVkaXRUeXBlOiJ0aWNrcytsYXlvdXRzdHlsZSJ9LGxpbmVjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6YS5kZWZhdWx0TGluZSxlZGl0VHlwZToibGF5b3V0c3R5bGUifSxsaW5ld2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxLGVkaXRUeXBlOiJ0aWNrcytsYXlvdXRzdHlsZSJ9LHNob3dncmlkOnt2YWxUeXBlOiJib29sZWFuIixlZGl0VHlwZToidGlja3MifSxncmlkY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmEubGlnaHRMaW5lLGVkaXRUeXBlOiJ0aWNrcyJ9LGdyaWR3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjEsZWRpdFR5cGU6InRpY2tzIn0semVyb2xpbmU6e3ZhbFR5cGU6ImJvb2xlYW4iLGVkaXRUeXBlOiJ0aWNrcyJ9LHplcm9saW5lY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmEuZGVmYXVsdExpbmUsZWRpdFR5cGU6InRpY2tzIn0semVyb2xpbmV3aWR0aDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjEsZWRpdFR5cGU6InRpY2tzIn0sc2hvd2RpdmlkZXJzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJ0aWNrcyJ9LGRpdmlkZXJjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6YS5kZWZhdWx0TGluZSxlZGl0VHlwZToidGlja3MifSxkaXZpZGVyd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoxLGVkaXRUeXBlOiJ0aWNrcyJ9LGFuY2hvcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZnJlZSIsbC5pZFJlZ2V4LngudG9TdHJpbmcoKSxsLmlkUmVnZXgueS50b1N0cmluZygpXSxlZGl0VHlwZToicGxvdCJ9LHNpZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCJdLGVkaXRUeXBlOiJwbG90In0sb3ZlcmxheWluZzp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZnJlZSIsbC5pZFJlZ2V4LngudG9TdHJpbmcoKSxsLmlkUmVnZXgueS50b1N0cmluZygpXSxlZGl0VHlwZToicGxvdCJ9LGxheWVyOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhYm92ZSB0cmFjZXMiLCJiZWxvdyB0cmFjZXMiXSxkZmx0OiJhYm92ZSB0cmFjZXMiLGVkaXRUeXBlOiJwbG90In0sZG9tYWluOnt2YWxUeXBlOiJpbmZvX2FycmF5IixpdGVtczpbe3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZWRpdFR5cGU6InBsb3QifSx7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxlZGl0VHlwZToicGxvdCJ9XSxkZmx0OlswLDFdLGVkaXRUeXBlOiJwbG90In0scG9zaXRpb246e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDowLGVkaXRUeXBlOiJwbG90In0sY2F0ZWdvcnlvcmRlcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsidHJhY2UiLCJjYXRlZ29yeSBhc2NlbmRpbmciLCJjYXRlZ29yeSBkZXNjZW5kaW5nIiwiYXJyYXkiLCJ0b3RhbCBhc2NlbmRpbmciLCJ0b3RhbCBkZXNjZW5kaW5nIiwibWluIGFzY2VuZGluZyIsIm1pbiBkZXNjZW5kaW5nIiwibWF4IGFzY2VuZGluZyIsIm1heCBkZXNjZW5kaW5nIiwic3VtIGFzY2VuZGluZyIsInN1bSBkZXNjZW5kaW5nIiwibWVhbiBhc2NlbmRpbmciLCJtZWFuIGRlc2NlbmRpbmciLCJtZWRpYW4gYXNjZW5kaW5nIiwibWVkaWFuIGRlc2NlbmRpbmciXSxkZmx0OiJ0cmFjZSIsZWRpdFR5cGU6ImNhbGMifSxjYXRlZ29yeWFycmF5Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHVpcmV2aXNpb246e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6Im5vbmUifSxlZGl0VHlwZToiY2FsYyIsX2RlcHJlY2F0ZWQ6e2F1dG90aWNrOnt2YWxUeXBlOiJib29sZWFuIixlZGl0VHlwZToidGlja3MifSx0aXRsZTp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToidGlja3MifSx0aXRsZWZvbnQ6bih7ZWRpdFR5cGU6InRpY2tzIn0pfX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIjo1OTEsIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZy9hdHRyaWJ1dGVzIjo2MTIsIi4uLy4uL2NvbnN0YW50cy9kb2NzIjo2ODgsIi4uLy4uL2xpYi9leHRlbmQiOjcwOCwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NzU1LCIuLi9mb250X2F0dHJpYnV0ZXMiOjc5MSwiLi9jb25zdGFudHMiOjc3MX1dLDc3ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxpPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKSxvPXQoIi4uL2xheW91dF9hdHRyaWJ1dGVzIikscz10KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksbD10KCIuL3R5cGVfZGVmYXVsdHMiKSxjPXQoIi4vYXhpc19kZWZhdWx0cyIpLHU9dCgiLi9jb25zdHJhaW50cyIpLmhhbmRsZUNvbnN0cmFpbnREZWZhdWx0cyxoPXQoIi4vcG9zaXRpb25fZGVmYXVsdHMiKSxmPXQoIi4vYXhpc19pZHMiKSxwPWYuaWQybmFtZSxkPWYubmFtZTJpZCxnPXQoIi4vY29uc3RhbnRzIikuQVhfSURfUEFUVEVSTix2PXQoIi4uLy4uL3JlZ2lzdHJ5IiksbT12LnRyYWNlSXMseT12LmdldENvbXBvbmVudE1ldGhvZDtmdW5jdGlvbiB4KHQsZSxyKXtBcnJheS5pc0FycmF5KHRbZV0pP3RbZV0ucHVzaChyKTp0W2VdPVtyXX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBmLHYsYj17fSxfPXt9LHc9e30saz17fSxUPXt9LE09e30sQT17fSxTPXt9LEU9e30sTD17fTtmb3IoZj0wO2Y8ci5sZW5ndGg7ZisrKXt2YXIgQz1yW2ZdO2lmKG0oQywiY2FydGVzaWFuIil8fG0oQywiZ2wyZCIpKXt2YXIgUCxPO2lmKEMueGF4aXMpUD1wKEMueGF4aXMpLHgoYixQLEMpO2Vsc2UgaWYoQy54YXhlcylmb3Iodj0wO3Y8Qy54YXhlcy5sZW5ndGg7disrKXgoYixwKEMueGF4ZXNbdl0pLEMpO2lmKEMueWF4aXMpTz1wKEMueWF4aXMpLHgoYixPLEMpO2Vsc2UgaWYoQy55YXhlcylmb3Iodj0wO3Y8Qy55YXhlcy5sZW5ndGg7disrKXgoYixwKEMueWF4ZXNbdl0pLEMpO2lmKCJmdW5uZWwiPT09Qy50eXBlPyJoIj09PUMub3JpZW50YXRpb24/KFAmJihfW1BdPSEwKSxPJiYoQVtPXT0hMCkpOk8mJih3W09dPSEwKToiaW1hZ2UiPT09Qy50eXBlPyhPJiYoU1tPXT0hMCksUCYmKFNbUF09ITApKTooTyYmKFRbT109ITAsTVtPXT0hMCksbShDLCJjYXJwZXQiKSYmKCJjYXJwZXQiIT09Qy50eXBlfHxDLl9jaGVhdGVyKXx8UCYmKGtbUF09ITApKSwiY2FycGV0Ij09PUMudHlwZSYmQy5fY2hlYXRlciYmUCYmKF9bUF09ITApLG0oQywiMmRNYXAiKSYmKEVbUF09ITAsRVtPXT0hMCksbShDLCJvcmllbnRlZCIpKUxbImgiPT09Qy5vcmllbnRhdGlvbj9POlBdPSEwfX12YXIgej1lLl9zdWJwbG90cyxJPXoueGF4aXMsRD16LnlheGlzLFI9bi5zaW1wbGVNYXAoSSxwKSxGPW4uc2ltcGxlTWFwKEQscCksQj1SLmNvbmNhdChGKSxOPWEuYmFja2dyb3VuZDtJLmxlbmd0aCYmRC5sZW5ndGgmJihOPW4uY29lcmNlKHQsZSxvLCJwbG90X2JnY29sb3IiKSk7dmFyIGosVixVLHEsSCxHPWEuY29tYmluZShOLGUucGFwZXJfYmdjb2xvcik7ZnVuY3Rpb24gWSgpe3ZhciB0PWJbal18fFtdO0guX3RyYWNlSW5kaWNlcz10Lm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5fZXhwYW5kZWRJbmRleH0pLEguX2FubkluZGljZXM9W10sSC5fc2hhcGVJbmRpY2VzPVtdLEguX2ltZ0luZGljZXM9W10sSC5fc3VicGxvdHNXaXRoPVtdLEguX2NvdW50ZXJBeGVzPVtdLEguX25hbWU9SC5fYXR0cj1qLEguX2lkPVZ9ZnVuY3Rpb24gVyh0LGUpe3JldHVybiBuLmNvZXJjZShxLEgscyx0LGUpfWZ1bmN0aW9uIFgodCxlKXtyZXR1cm4gbi5jb2VyY2UyKHEsSCxzLHQsZSl9ZnVuY3Rpb24gWih0KXtyZXR1cm4ieCI9PT10P0Q6SX1mdW5jdGlvbiBKKGUscil7Zm9yKHZhciBuPSJ4Ij09PWU/UjpGLGE9W10saT0wO2k8bi5sZW5ndGg7aSsrKXt2YXIgbz1uW2ldO289PT1yfHwodFtvXXx8e30pLm92ZXJsYXlpbmd8fGEucHVzaChkKG8pKX1yZXR1cm4gYX12YXIgSz17eDpaKCJ4IikseTpaKCJ5Iil9LFE9Sy54LmNvbmNhdChLLnkpLCQ9e30sdHQ9W107ZnVuY3Rpb24gZXQoKXt2YXIgdD1xLm1hdGNoZXM7Zy50ZXN0KHQpJiYtMT09PVEuaW5kZXhPZih0KSYmKCRbdF09cS50eXBlLHR0PU9iamVjdC5rZXlzKCQpKX1mb3IoZj0wO2Y8Qi5sZW5ndGg7ZisrKXtqPUJbZl0sVj1kKGopLFU9ai5jaGFyQXQoMCksbi5pc1BsYWluT2JqZWN0KHRbal0pfHwodFtqXT17fSkscT10W2pdLEg9aS5uZXdDb250YWluZXIoZSxqLFUrImF4aXMiKSxZKCk7dmFyIHJ0PSJ4Ij09PVUmJiFrW2pdJiZfW2pdfHwieSI9PT1VJiYhVFtqXSYmd1tqXSxudD0ieSI9PT1VJiYoIU1bal0mJkFbal18fFNbal0pLGF0PXtsZXR0ZXI6VSxmb250OmUuZm9udCxvdXRlclRpY2tzOkVbal0sc2hvd0dyaWQ6IUxbal0sZGF0YTpiW2pdfHxbXSxiZ0NvbG9yOkcsY2FsZW5kYXI6ZS5jYWxlbmRhcixhdXRvbWFyZ2luOiEwLHZpc2libGVEZmx0OnJ0LHJldmVyc2VEZmx0Om50LHNwbG9tU3Rhc2g6KChlLl9zcGxvbUF4ZXN8fHt9KVtVXXx8e30pW1ZdfTtXKCJ1aXJldmlzaW9uIixlLnVpcmV2aXNpb24pLGwocSxILFcsYXQpLGMocSxILFcsYXQsZSk7dmFyIGl0PVgoInNwaWtlY29sb3IiKSxvdD1YKCJzcGlrZXRoaWNrbmVzcyIpLHN0PVgoInNwaWtlZGFzaCIpLGx0PVgoInNwaWtlbW9kZSIpLGN0PVgoInNwaWtlc25hcCIpO1coInNob3dzcGlrZXMiLCEhKGl0fHxvdHx8c3R8fGx0fHxjdCkpfHwoZGVsZXRlIEguc3Bpa2Vjb2xvcixkZWxldGUgSC5zcGlrZXRoaWNrbmVzcyxkZWxldGUgSC5zcGlrZWRhc2gsZGVsZXRlIEguc3Bpa2Vtb2RlLGRlbGV0ZSBILnNwaWtlc25hcCksaChxLEgsVyx7bGV0dGVyOlUsY291bnRlckF4ZXM6S1tVXSxvdmVybGF5YWJsZUF4ZXM6SihVLGopLGdyaWQ6ZS5ncmlkfSksVygidGl0bGUuc3RhbmRvZmYiKSxldCgpLEguX2lucHV0PXF9Zm9yKGY9MDtmPHR0Lmxlbmd0aDspe1Y9dHRbZisrXSxVPShqPXAoVikpLmNoYXJBdCgwKSxuLmlzUGxhaW5PYmplY3QodFtqXSl8fCh0W2pdPXt9KSxxPXRbal0sSD1pLm5ld0NvbnRhaW5lcihlLGosVSsiYXhpcyIpLFkoKTt2YXIgdXQ9e2xldHRlcjpVLGZvbnQ6ZS5mb250LG91dGVyVGlja3M6RVtqXSxzaG93R3JpZDohTFtqXSxkYXRhOltdLGJnQ29sb3I6RyxjYWxlbmRhcjplLmNhbGVuZGFyLGF1dG9tYXJnaW46ITAsdmlzaWJsZURmbHQ6ITEscmV2ZXJzZURmbHQ6ITEsc3Bsb21TdGFzaDooKGUuX3NwbG9tQXhlc3x8e30pW1VdfHx7fSlbVl19O1coInVpcmV2aXNpb24iLGUudWlyZXZpc2lvbiksSC50eXBlPSRbVl18fCJsaW5lYXIiLGMocSxILFcsdXQsZSksaChxLEgsVyx7bGV0dGVyOlUsY291bnRlckF4ZXM6S1tVXSxvdmVybGF5YWJsZUF4ZXM6SihVLGopLGdyaWQ6ZS5ncmlkfSksVygiZml4ZWRyYW5nZSIpLGV0KCksSC5faW5wdXQ9cX12YXIgaHQ9eSgicmFuZ2VzbGlkZXIiLCJoYW5kbGVEZWZhdWx0cyIpLGZ0PXkoInJhbmdlc2VsZWN0b3IiLCJoYW5kbGVEZWZhdWx0cyIpO2ZvcihmPTA7ZjxSLmxlbmd0aDtmKyspaj1SW2ZdLHE9dFtqXSxIPWVbal0saHQodCxlLGopLCJkYXRlIj09PUgudHlwZSYmZnQocSxILGUsRixILmNhbGVuZGFyKSxXKCJmaXhlZHJhbmdlIik7Zm9yKGY9MDtmPEYubGVuZ3RoO2YrKyl7aj1GW2ZdLHE9dFtqXSxIPWVbal07dmFyIHB0PWVbcChILmFuY2hvcildO1coImZpeGVkcmFuZ2UiLHkoInJhbmdlc2xpZGVyIiwiaXNWaXNpYmxlIikocHQpKX12YXIgZHQ9ZS5fYXhpc0NvbnN0cmFpbnRHcm91cHM9W10sZ3Q9ZS5fYXhpc01hdGNoR3JvdXBzPVtdLHZ0PVEuY29uY2F0KHR0KSxtdD1CLmNvbmNhdChuLnNpbXBsZU1hcCh0dCxwKSk7Zm9yKGY9MDtmPG10Lmxlbmd0aDtmKyspe3ZhciB5dCx4dDtVPShqPW10W2ZdKS5jaGFyQXQoMCkscT10W2pdLEg9ZVtqXSx5dD0ieSI9PT1VJiYhcS5oYXNPd25Qcm9wZXJ0eSgic2NhbGVhbmNob3IiKSYmU1tqXT9ILmFuY2hvcjp2b2lkIDAseHQ9IXEuaGFzT3duUHJvcGVydHkoImNvbnN0cmFpbiIpJiZTW2pdPyJkb21haW4iOnZvaWQgMCx1KHEsSCxXLHthbGxBeGlzSWRzOnZ0LGxheW91dE91dDplLHNjYWxlYW5jaG9yRGZsdDp5dCxjb25zdHJhaW5EZmx0Onh0fSl9Zm9yKGY9MDtmPGd0Lmxlbmd0aDtmKyspe3ZhciBidD1ndFtmXSxfdD1udWxsLHd0PW51bGw7Zm9yKFYgaW4gYnQpKEg9ZVtwKFYpXSkubWF0Y2hlc3x8KF90PUgucmFuZ2Usd3Q9SC5hdXRvcmFuZ2UpO2lmKG51bGw9PT1fdHx8bnVsbD09PXd0KWZvcihWIGluIGJ0KXtfdD0oSD1lW3AoVildKS5yYW5nZSx3dD1ILmF1dG9yYW5nZTticmVha31mb3IoViBpbiBidCkoSD1lW3AoVildKS5tYXRjaGVzJiYoSC5yYW5nZT1fdC5zbGljZSgpLEguYXV0b3JhbmdlPXd0KSxILl9tYXRjaEdyb3VwPWJ0O2lmKGR0Lmxlbmd0aClmb3IoViBpbiBidClmb3Iodj0wO3Y8ZHQubGVuZ3RoO3YrKyl7dmFyIGt0PWR0W3ZdO2Zvcih2YXIgVHQgaW4ga3QpVj09PVR0JiYobi53YXJuKCJBeGlzICIrVHQrIiBpcyBzZXQgd2l0aCBib3RoIGEgKnNjYWxlYW5jaG9yKiBhbmQgKm1hdGNoZXMqIGNvbnN0cmFpbnQ7IGlnbm9yaW5nIHRoZSBzY2FsZSBjb25zdHJhaW50LiIpLGRlbGV0ZSBrdFtUdF0sT2JqZWN0LmtleXMoa3QpLmxlbmd0aDwyJiZkdC5zcGxpY2UodiwxKSl9fX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTkyLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NzU1LCIuLi8uLi9yZWdpc3RyeSI6ODQ2LCIuLi9sYXlvdXRfYXR0cmlidXRlcyI6ODE3LCIuL2F4aXNfZGVmYXVsdHMiOjc2NywiLi9heGlzX2lkcyI6NzY4LCIuL2NvbnN0YW50cyI6NzcxLCIuL2NvbnN0cmFpbnRzIjo3NzIsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjc3NywiLi9wb3NpdGlvbl9kZWZhdWx0cyI6NzgwLCIuL3R5cGVfZGVmYXVsdHMiOjc4OH1dLDc3OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJ0aW55Y29sb3IyIikubWl4LGE9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIikubGlnaHRGcmFjdGlvbixpPXQoIi4uLy4uL2xpYiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixvKXt2YXIgcz0obz1vfHx7fSkuZGZsdENvbG9yO2Z1bmN0aW9uIGwocixuKXtyZXR1cm4gaS5jb2VyY2UyKHQsZSxvLmF0dHJpYnV0ZXMscixuKX12YXIgYz1sKCJsaW5lY29sb3IiLHMpLHU9bCgibGluZXdpZHRoIik7cigic2hvd2xpbmUiLG8uc2hvd0xpbmV8fCEhY3x8ISF1KXx8KGRlbGV0ZSBlLmxpbmVjb2xvcixkZWxldGUgZS5saW5ld2lkdGgpO3ZhciBoPWwoImdyaWRjb2xvciIsbihzLG8uYmdDb2xvcixvLmJsZW5kfHxhKS50b1JnYlN0cmluZygpKSxmPWwoImdyaWR3aWR0aCIpO2lmKHIoInNob3dncmlkIixvLnNob3dHcmlkfHwhIWh8fCEhZil8fChkZWxldGUgZS5ncmlkY29sb3IsZGVsZXRlIGUuZ3JpZHdpZHRoKSwhby5ub1plcm9MaW5lKXt2YXIgcD1sKCJ6ZXJvbGluZWNvbG9yIixzKSxkPWwoInplcm9saW5ld2lkdGgiKTtyKCJ6ZXJvbGluZSIsby5zaG93R3JpZHx8ISFwfHwhIWQpfHwoZGVsZXRlIGUuemVyb2xpbmVjb2xvcixkZWxldGUgZS56ZXJvbGluZXdpZHRoKX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyI6NTkxLCIuLi8uLi9saWIiOjcxNyx0aW55Y29sb3IyOjUzNn1dLDc4MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGE9dCgiLi4vLi4vbGliIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBvLHMsbCxjLHU9aS5jb3VudGVyQXhlc3x8W10saD1pLm92ZXJsYXlhYmxlQXhlc3x8W10sZj1pLmxldHRlcixwPWkuZ3JpZDtwJiYocz1wLl9kb21haW5zW2ZdW3AuX2F4aXNNYXBbZS5faWRdXSxvPXAuX2FuY2hvcnNbZS5faWRdLHMmJihsPXBbZisic2lkZSJdLnNwbGl0KCIgIilbMF0sYz1wLmRvbWFpbltmXVsicmlnaHQiPT09bHx8InRvcCI9PT1sPzE6MF0pKSxzPXN8fFswLDFdLG89b3x8KG4odC5wb3NpdGlvbik/ImZyZWUiOnVbMF18fCJmcmVlIiksbD1sfHwoIngiPT09Zj8iYm90dG9tIjoibGVmdCIpLGM9Y3x8MCwiZnJlZSI9PT1hLmNvZXJjZSh0LGUse2FuY2hvcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZnJlZSJdLmNvbmNhdCh1KSxkZmx0Om99fSwiYW5jaG9yIikmJnIoInBvc2l0aW9uIixjKSxhLmNvZXJjZSh0LGUse3NpZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczoieCI9PT1mP1siYm90dG9tIiwidG9wIl06WyJsZWZ0IiwicmlnaHQiXSxkZmx0Omx9fSwic2lkZSIpO3ZhciBkPSExO2lmKGgubGVuZ3RoJiYoZD1hLmNvZXJjZSh0LGUse292ZXJsYXlpbmc6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbITFdLmNvbmNhdChoKSxkZmx0OiExfX0sIm92ZXJsYXlpbmciKSksIWQpe3ZhciBnPXIoImRvbWFpbiIscyk7Z1swXT5nWzFdLTEvNDA5NiYmKGUuZG9tYWluPXMpLGEubm9uZU9yQWxsKHQuZG9tYWluLGUuZG9tYWluLHMpfXJldHVybiByKCJsYXllciIpLGV9fSx7Ii4uLy4uL2xpYiI6NzE3LCJmYXN0LWlzbnVtZXJpYyI6MjI4fV0sNzgxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbnN0YW50cy9hbGlnbm1lbnQiKS5GUk9NX0JMO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dm9pZCAwPT09ciYmKHI9blt0LmNvbnN0cmFpbnRvd2FyZHx8ImNlbnRlciJdKTt2YXIgYT1bdC5yMmwodC5yYW5nZVswXSksdC5yMmwodC5yYW5nZVsxXSldLGk9YVswXSsoYVsxXS1hWzBdKSpyO3QucmFuZ2U9dC5faW5wdXQucmFuZ2U9W3QubDJyKGkrKGFbMF0taSkqZSksdC5sMnIoaSsoYVsxXS1pKSplKV19fSx7Ii4uLy4uL2NvbnN0YW50cy9hbGlnbm1lbnQiOjY4Nn1dLDc4MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJwb2x5Ym9vbGpzIiksYT10KCIuLi8uLi9yZWdpc3RyeSIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9meCIpLHM9dCgiLi4vLi4vbGliIiksbD10KCIuLi8uLi9saWIvcG9seWdvbiIpLGM9dCgiLi4vLi4vbGliL3Rocm90dGxlIiksdT10KCIuLi8uLi9jb21wb25lbnRzL2Z4L2hlbHBlcnMiKS5tYWtlRXZlbnREYXRhLGg9dCgiLi9heGlzX2lkcyIpLmdldEZyb21JZCxmPXQoIi4uLy4uL2xpYi9jbGVhcl9nbF9jYW52YXNlcyIpLHA9dCgiLi4vLi4vcGxvdF9hcGkvc3Vicm91dGluZXMiKS5yZWRyYXdSZWdsVHJhY2VzLGQ9dCgiLi9jb25zdGFudHMiKSxnPWQuTUlOU0VMRUNULHY9bC5maWx0ZXIsbT1sLnRlc3RlcjtmdW5jdGlvbiB5KHQpe3JldHVybiB0Ll9pZH1mdW5jdGlvbiB4KHQsZSxyLG4sYSxpLG8pe3ZhciBzLGwsYyx1LGgsZixwLGQsZyx2PWUuX2hvdmVyZGF0YSxtPWUuX2Z1bGxMYXlvdXQuY2xpY2ttb2RlLmluZGV4T2YoImV2ZW50Iik+LTEseT1bXTtpZihmdW5jdGlvbih0KXtyZXR1cm4gdCYmQXJyYXkuaXNBcnJheSh0KSYmITAhPT10WzBdLmhvdmVyT25Cb3h9KHYpKXtrKHQsZSxpKTt2YXIgeD1mdW5jdGlvbih0LGUpe3ZhciByLG4sYT10WzBdLGk9LTEsbz1bXTtmb3Iobj0wO248ZS5sZW5ndGg7bisrKWlmKHI9ZVtuXSxhLmZ1bGxEYXRhLl9leHBhbmRlZEluZGV4PT09ci5jZFswXS50cmFjZS5fZXhwYW5kZWRJbmRleCl7aWYoITA9PT1hLmhvdmVyT25Cb3gpYnJlYWs7dm9pZCAwIT09YS5wb2ludE51bWJlcj9pPWEucG9pbnROdW1iZXI6dm9pZCAwIT09YS5iaW5OdW1iZXImJihpPWEuYmluTnVtYmVyLG89YS5wb2ludE51bWJlcnMpO2JyZWFrfXJldHVybntwb2ludE51bWJlcjppLHBvaW50TnVtYmVyczpvLHNlYXJjaEluZm86cn19KHYscz1NKGUscixuLGEpKTtpZih4LnBvaW50TnVtYmVycy5sZW5ndGg+MD9mdW5jdGlvbih0LGUpe3ZhciByLG4sYSxpPVtdO2ZvcihhPTA7YTx0Lmxlbmd0aDthKyspKHI9dFthXSkuY2RbMF0udHJhY2Uuc2VsZWN0ZWRwb2ludHMmJnIuY2RbMF0udHJhY2Uuc2VsZWN0ZWRwb2ludHMubGVuZ3RoPjAmJmkucHVzaChyKTtpZigxPT09aS5sZW5ndGgmJmlbMF09PT1lLnNlYXJjaEluZm8mJihuPWUuc2VhcmNoSW5mby5jZFswXS50cmFjZSkuc2VsZWN0ZWRwb2ludHMubGVuZ3RoPT09ZS5wb2ludE51bWJlcnMubGVuZ3RoKXtmb3IoYT0wO2E8ZS5wb2ludE51bWJlcnMubGVuZ3RoO2ErKylpZihuLnNlbGVjdGVkcG9pbnRzLmluZGV4T2YoZS5wb2ludE51bWJlcnNbYV0pPDApcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuITF9KHMseCk6ZnVuY3Rpb24odCl7dmFyIGUscixuLGE9MDtmb3Iobj0wO248dC5sZW5ndGg7bisrKWlmKGU9dFtuXSwocj1lLmNkWzBdLnRyYWNlKS5zZWxlY3RlZHBvaW50cyl7aWYoci5zZWxlY3RlZHBvaW50cy5sZW5ndGg+MSlyZXR1cm4hMTtpZigoYSs9ci5zZWxlY3RlZHBvaW50cy5sZW5ndGgpPjEpcmV0dXJuITF9cmV0dXJuIDE9PT1hfShzKSYmKGY9Uyh4KSkpe2ZvcihvJiZvLnJlbW92ZSgpLGc9MDtnPHMubGVuZ3RoO2crKykobD1zW2ddKS5fbW9kdWxlLnNlbGVjdFBvaW50cyhsLCExKTtFKGUscyksVChpKSxtJiZlLmVtaXQoInBsb3RseV9kZXNlbGVjdCIsbnVsbCl9ZWxzZXtmb3IocD10LnNoaWZ0S2V5JiYodm9pZCAwIT09Zj9mOlMoeCkpLGM9ZnVuY3Rpb24odCxlLHIpe3JldHVybntwb2ludE51bWJlcjp0LHNlYXJjaEluZm86ZSxzdWJ0cmFjdDpyfX0oeC5wb2ludE51bWJlcix4LnNlYXJjaEluZm8scCksdT13KGkuc2VsZWN0aW9uRGVmcy5jb25jYXQoW2NdKSksZz0wO2c8cy5sZW5ndGg7ZysrKWlmKGg9TChzW2ddLl9tb2R1bGUuc2VsZWN0UG9pbnRzKHNbZ10sdSksc1tnXSkseS5sZW5ndGgpZm9yKHZhciBiPTA7YjxoLmxlbmd0aDtiKyspeS5wdXNoKGhbYl0pO2Vsc2UgeT1oO0UoZSxzLGQ9e3BvaW50czp5fSksYyYmaSYmaS5zZWxlY3Rpb25EZWZzLnB1c2goYyksbyYmQShpLm1lcmdlZFBvbHlnb25zLG8pLG0mJmUuZW1pdCgicGxvdGx5X3NlbGVjdGVkIixkKX19fWZ1bmN0aW9uIGIodCl7cmV0dXJuInBvaW50TnVtYmVyImluIHQmJiJzZWFyY2hJbmZvImluIHR9ZnVuY3Rpb24gXyh0KXtyZXR1cm57eG1pbjowLHhtYXg6MCx5bWluOjAseW1heDowLHB0czpbXSxjb250YWluczpmdW5jdGlvbihlLHIsbixhKXt2YXIgaT10LnNlYXJjaEluZm8uY2RbMF0udHJhY2UuX2V4cGFuZGVkSW5kZXg7cmV0dXJuIGEuY2RbMF0udHJhY2UuX2V4cGFuZGVkSW5kZXg9PT1pJiZuPT09dC5wb2ludE51bWJlcn0saXNSZWN0OiExLGRlZ2VuZXJhdGU6ITEsc3VidHJhY3Q6dC5zdWJ0cmFjdH19ZnVuY3Rpb24gdyh0KXtmb3IodmFyIGU9W10scj1iKHRbMF0pPzA6dFswXVswXVswXSxuPXIsYT1iKHRbMF0pPzA6dFswXVswXVsxXSxpPWEsbz0wO288dC5sZW5ndGg7bysrKWlmKGIodFtvXSkpZS5wdXNoKF8odFtvXSkpO2Vsc2V7dmFyIHM9bC50ZXN0ZXIodFtvXSk7cy5zdWJ0cmFjdD10W29dLnN1YnRyYWN0LGUucHVzaChzKSxyPU1hdGgubWluKHIscy54bWluKSxuPU1hdGgubWF4KG4scy54bWF4KSxhPU1hdGgubWluKGEscy55bWluKSxpPU1hdGgubWF4KGkscy55bWF4KX1yZXR1cm57eG1pbjpyLHhtYXg6bix5bWluOmEseW1heDppLHB0czpbXSxjb250YWluczpmdW5jdGlvbih0LHIsbixhKXtmb3IodmFyIGk9ITEsbz0wO288ZS5sZW5ndGg7bysrKWVbb10uY29udGFpbnModCxyLG4sYSkmJihpPSExPT09ZVtvXS5zdWJ0cmFjdCk7cmV0dXJuIGl9LGlzUmVjdDohMSxkZWdlbmVyYXRlOiExfX1mdW5jdGlvbiBrKHQsZSxyKXt2YXIgbj1lLl9mdWxsTGF5b3V0LGE9ci5wbG90aW5mbyxpPW4uX2xhc3RTZWxlY3RlZFN1YnBsb3QmJm4uX2xhc3RTZWxlY3RlZFN1YnBsb3Q9PT1hLmlkLG89dC5zaGlmdEtleXx8dC5hbHRLZXk7aSYmbyYmYS5zZWxlY3Rpb24mJmEuc2VsZWN0aW9uLnNlbGVjdGlvbkRlZnMmJiFyLnNlbGVjdGlvbkRlZnM/KHIuc2VsZWN0aW9uRGVmcz1hLnNlbGVjdGlvbi5zZWxlY3Rpb25EZWZzLHIubWVyZ2VkUG9seWdvbnM9YS5zZWxlY3Rpb24ubWVyZ2VkUG9seWdvbnMpOm8mJmEuc2VsZWN0aW9ufHxUKHIpLGl8fChDKGUpLG4uX2xhc3RTZWxlY3RlZFN1YnBsb3Q9YS5pZCl9ZnVuY3Rpb24gVCh0KXt2YXIgZT10LnBsb3RpbmZvO2Uuc2VsZWN0aW9uPXt9LGUuc2VsZWN0aW9uLnNlbGVjdGlvbkRlZnM9dC5zZWxlY3Rpb25EZWZzPVtdLGUuc2VsZWN0aW9uLm1lcmdlZFBvbHlnb25zPXQubWVyZ2VkUG9seWdvbnM9W119ZnVuY3Rpb24gTSh0LGUscixuKXt2YXIgYSxpLG8scz1bXSxsPWUubWFwKHkpLGM9ci5tYXAoeSk7Zm9yKG89MDtvPHQuY2FsY2RhdGEubGVuZ3RoO28rKylpZighMD09PShpPShhPXQuY2FsY2RhdGFbb10pWzBdLnRyYWNlKS52aXNpYmxlJiZpLl9tb2R1bGUmJmkuX21vZHVsZS5zZWxlY3RQb2ludHMpaWYoIW58fGkuc3VicGxvdCE9PW4mJmkuZ2VvIT09bilpZigic3Bsb20iPT09aS50eXBlJiZpLl94YXhlc1tsWzBdXSYmaS5feWF4ZXNbY1swXV0pe3ZhciB1PXAoaS5fbW9kdWxlLGEsZVswXSxyWzBdKTt1LnNjZW5lPXQuX2Z1bGxMYXlvdXQuX3NwbG9tU2NlbmVzW2kudWlkXSxzLnB1c2godSl9ZWxzZSBpZigic2Fua2V5Ij09PWkudHlwZSl7dmFyIGY9cChpLl9tb2R1bGUsYSxlWzBdLHJbMF0pO3MucHVzaChmKX1lbHNle2lmKC0xPT09bC5pbmRleE9mKGkueGF4aXMpKWNvbnRpbnVlO2lmKC0xPT09Yy5pbmRleE9mKGkueWF4aXMpKWNvbnRpbnVlO3MucHVzaChwKGkuX21vZHVsZSxhLGgodCxpLnhheGlzKSxoKHQsaS55YXhpcykpKX1lbHNlIHMucHVzaChwKGkuX21vZHVsZSxhLGVbMF0sclswXSkpO3JldHVybiBzO2Z1bmN0aW9uIHAodCxlLHIsbil7cmV0dXJue19tb2R1bGU6dCxjZDplLHhheGlzOnIseWF4aXM6bn19fWZ1bmN0aW9uIEEodCxlKXt2YXIgcixuLGE9W107Zm9yKHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIGk9dFtyXTthLnB1c2goaS5qb2luKCJMIikrIkwiK2lbMF0pfW49dC5sZW5ndGg+MD8iTSIrYS5qb2luKCJNIikrIloiOiJNMCwwWiIsZS5hdHRyKCJkIixuKX1mdW5jdGlvbiBTKHQpe3ZhciBlPXQuc2VhcmNoSW5mby5jZFswXS50cmFjZSxyPXQucG9pbnROdW1iZXIsbj10LnBvaW50TnVtYmVycyxhPW4ubGVuZ3RoPjA/blswXTpyO3JldHVybiEhZS5zZWxlY3RlZHBvaW50cyYmZS5zZWxlY3RlZHBvaW50cy5pbmRleE9mKGEpPi0xfWZ1bmN0aW9uIEUodCxlLHIpe3ZhciBuLGksbyxzO2ZvcihuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBsPWVbbl0uY2RbMF0udHJhY2UuX2Z1bGxJbnB1dCxjPXQuX2Z1bGxMYXlvdXQuX3RyYWNlUHJlR1VJW2wudWlkXXx8e307dm9pZCAwPT09Yy5zZWxlY3RlZHBvaW50cyYmKGMuc2VsZWN0ZWRwb2ludHM9bC5faW5wdXQuc2VsZWN0ZWRwb2ludHN8fG51bGwpfWlmKHIpe3ZhciB1PXIucG9pbnRzfHxbXTtmb3Iobj0wO248ZS5sZW5ndGg7bisrKShzPWVbbl0uY2RbMF0udHJhY2UpLl9pbnB1dC5zZWxlY3RlZHBvaW50cz1zLl9mdWxsSW5wdXQuc2VsZWN0ZWRwb2ludHM9W10scy5fZnVsbElucHV0IT09cyYmKHMuc2VsZWN0ZWRwb2ludHM9W10pO2ZvcihuPTA7bjx1Lmxlbmd0aDtuKyspe3ZhciBoPXVbbl0sZD1oLmRhdGEsZz1oLmZ1bGxEYXRhO2gucG9pbnRJbmRpY2VzPyhbXS5wdXNoLmFwcGx5KGQuc2VsZWN0ZWRwb2ludHMsaC5wb2ludEluZGljZXMpLHMuX2Z1bGxJbnB1dCE9PXMmJltdLnB1c2guYXBwbHkoZy5zZWxlY3RlZHBvaW50cyxoLnBvaW50SW5kaWNlcykpOihkLnNlbGVjdGVkcG9pbnRzLnB1c2goaC5wb2ludEluZGV4KSxzLl9mdWxsSW5wdXQhPT1zJiZnLnNlbGVjdGVkcG9pbnRzLnB1c2goaC5wb2ludEluZGV4KSl9fWVsc2UgZm9yKG49MDtuPGUubGVuZ3RoO24rKylkZWxldGUocz1lW25dLmNkWzBdLnRyYWNlKS5zZWxlY3RlZHBvaW50cyxkZWxldGUgcy5faW5wdXQuc2VsZWN0ZWRwb2ludHMscy5fZnVsbElucHV0IT09cyYmZGVsZXRlIHMuX2Z1bGxJbnB1dC5zZWxlY3RlZHBvaW50czt2YXIgdj0hMTtmb3Iobj0wO248ZS5sZW5ndGg7bisrKXtzPShvPShpPWVbbl0pLmNkKVswXS50cmFjZSxhLnRyYWNlSXMocywicmVnbCIpJiYodj0hMCk7dmFyIG09aS5fbW9kdWxlLHk9bS5zdHlsZU9uU2VsZWN0fHxtLnN0eWxlO3kmJih5KHQsbyxvWzBdLm5vZGUzKSxvWzBdLm5vZGVSYW5nZVBsb3QzJiZ5KHQsbyxvWzBdLm5vZGVSYW5nZVBsb3QzKSl9diYmKGYodCkscCh0KSl9ZnVuY3Rpb24gTCh0LGUpe2lmKEFycmF5LmlzQXJyYXkodCkpZm9yKHZhciByPWUuY2Qsbj1lLmNkWzBdLnRyYWNlLGE9MDthPHQubGVuZ3RoO2ErKyl0W2FdPXUodFthXSxuLHIpO3JldHVybiB0fWZ1bmN0aW9uIEModCl7dmFyIGU9KHQuX2Z1bGxMYXlvdXR8fHt9KS5fem9vbWxheWVyO2UmJmUuc2VsZWN0QWxsKCIuc2VsZWN0LW91dGxpbmUiKS5yZW1vdmUoKX1lLmV4cG9ydHM9e3ByZXBTZWxlY3Q6ZnVuY3Rpb24odCxlLHIsYSxsKXt2YXIgdSxoLGYscCx5LGIsXyxTPWEuZ2QsQz1TLl9mdWxsTGF5b3V0LFA9Qy5fem9vbWxheWVyLE89YS5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHo9YS5wbG90aW5mbyxJPXoueGF4aXMuX29mZnNldCxEPXoueWF4aXMuX29mZnNldCxSPWUtTy5sZWZ0LEY9ci1PLnRvcCxCPVIsTj1GLGo9Ik0iK1IrIiwiK0YsVj1hLnhheGVzWzBdLl9sZW5ndGgsVT1hLnlheGVzWzBdLl9sZW5ndGgscT1hLnhheGVzLmNvbmNhdChhLnlheGVzKSxIPXQuYWx0S2V5O2sodCxTLGEpLCJsYXNzbyI9PT1sJiYodT12KFtbUixGXV0sZC5CRU5EUFgpKTt2YXIgRz1QLnNlbGVjdEFsbCgicGF0aC5zZWxlY3Qtb3V0bGluZS0iK3ouaWQpLmRhdGEoWzEsMl0pO0cuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5hdHRyKCJjbGFzcyIsZnVuY3Rpb24odCl7cmV0dXJuInNlbGVjdC1vdXRsaW5lIHNlbGVjdC1vdXRsaW5lLSIrdCsiIHNlbGVjdC1vdXRsaW5lLSIrei5pZH0pLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK0krIiwgIitEKyIpIikuYXR0cigiZCIsaisiWiIpO3ZhciBZLFc9UC5hcHBlbmQoInBhdGgiKS5hdHRyKCJjbGFzcyIsInpvb21ib3gtY29ybmVycyIpLnN0eWxlKHtmaWxsOmkuYmFja2dyb3VuZCxzdHJva2U6aS5kZWZhdWx0TGluZSwic3Ryb2tlLXdpZHRoIjoxfSkuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrSSsiLCAiK0QrIikiKS5hdHRyKCJkIiwiTTAsMFoiKSxYPUMuX3VpZCtkLlNFTEVDVElELFo9W10sSj1NKFMsYS54YXhlcyxhLnlheGVzLGEuc3VicGxvdCk7ZnVuY3Rpb24gSyh0LGUpe3JldHVybiJsb2ciPT09dC50eXBlP3QucDJkKGUpOnQucDJyKGUpfWZ1bmN0aW9uIFEodCl7dmFyIGU9InkiPT09dC5faWQuY2hhckF0KDApPzE6MDtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIEsodCxyW2VdKX19ZnVuY3Rpb24gJCh0LGUpe3JldHVybiB0LWV9WT16LmZpbGxSYW5nZUl0ZW1zP3ouZmlsbFJhbmdlSXRlbXM6InNlbGVjdCI9PT1sP2Z1bmN0aW9uKHQsZSl7dmFyIHI9dC5yYW5nZT17fTtmb3IoeT0wO3k8cS5sZW5ndGg7eSsrKXt2YXIgbj1xW3ldLGE9bi5faWQuY2hhckF0KDApO3Jbbi5faWRdPVtLKG4sZVthKyJtaW4iXSksSyhuLGVbYSsibWF4Il0pXS5zb3J0KCQpfX06ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQubGFzc29Qb2ludHM9e307Zm9yKHk9MDt5PHEubGVuZ3RoO3krKyl7dmFyIGE9cVt5XTtuW2EuX2lkXT1yLmZpbHRlcmVkLm1hcChRKGEpKX19LGEubW92ZUZuPWZ1bmN0aW9uKHQsZSl7Qj1NYXRoLm1heCgwLE1hdGgubWluKFYsdCtSKSksTj1NYXRoLm1heCgwLE1hdGgubWluKFUsZStGKSk7dmFyIHI9TWF0aC5hYnMoQi1SKSxpPU1hdGguYWJzKE4tRik7aWYoInNlbGVjdCI9PT1sKXt2YXIgbz1DLnNlbGVjdGRpcmVjdGlvbjsiaCI9PT0obz0iYW55Ij09PUMuc2VsZWN0ZGlyZWN0aW9uP2k8TWF0aC5taW4oLjYqcixnKT8iaCI6cjxNYXRoLm1pbiguNippLGcpPyJ2IjoiZCI6Qy5zZWxlY3RkaXJlY3Rpb24pPygocD1bW1IsMF0sW1IsVV0sW0IsVV0sW0IsMF1dKS54bWluPU1hdGgubWluKFIsQikscC54bWF4PU1hdGgubWF4KFIsQikscC55bWluPU1hdGgubWluKDAsVSkscC55bWF4PU1hdGgubWF4KDAsVSksVy5hdHRyKCJkIiwiTSIrcC54bWluKyIsIisoRi1nKSsiaC00diIrMipnKyJoNFpNIisocC54bWF4LTEpKyIsIisoRi1nKSsiaDR2IisyKmcrImgtNFoiKSk6InYiPT09bz8oKHA9W1swLEZdLFswLE5dLFtWLE5dLFtWLEZdXSkueG1pbj1NYXRoLm1pbigwLFYpLHAueG1heD1NYXRoLm1heCgwLFYpLHAueW1pbj1NYXRoLm1pbihGLE4pLHAueW1heD1NYXRoLm1heChGLE4pLFcuYXR0cigiZCIsIk0iKyhSLWcpKyIsIitwLnltaW4rInYtNGgiKzIqZysidjRaTSIrKFItZykrIiwiKyhwLnltYXgtMSkrInY0aCIrMipnKyJ2LTRaIikpOiJkIj09PW8mJigocD1bW1IsRl0sW1IsTl0sW0IsTl0sW0IsRl1dKS54bWluPU1hdGgubWluKFIsQikscC54bWF4PU1hdGgubWF4KFIsQikscC55bWluPU1hdGgubWluKEYsTikscC55bWF4PU1hdGgubWF4KEYsTiksVy5hdHRyKCJkIiwiTTAsMFoiKSl9ZWxzZSJsYXNzbyI9PT1sJiYodS5hZGRQdChbQixOXSkscD11LmZpbHRlcmVkKTthLnNlbGVjdGlvbkRlZnMmJmEuc2VsZWN0aW9uRGVmcy5sZW5ndGg/KGY9ZnVuY3Rpb24odCxlLHIpe3JldHVybiByP24uZGlmZmVyZW5jZSh7cmVnaW9uczp0LGludmVydGVkOiExfSx7cmVnaW9uczpbZV0saW52ZXJ0ZWQ6ITF9KS5yZWdpb25zOm4udW5pb24oe3JlZ2lvbnM6dCxpbnZlcnRlZDohMX0se3JlZ2lvbnM6W2VdLGludmVydGVkOiExfSkucmVnaW9uc30oYS5tZXJnZWRQb2x5Z29ucyxwLEgpLHAuc3VidHJhY3Q9SCxoPXcoYS5zZWxlY3Rpb25EZWZzLmNvbmNhdChbcF0pKSk6KGY9W3BdLGg9bShwKSksQShmLEcpLGMudGhyb3R0bGUoWCxkLlNFTEVDVERFTEFZLGZ1bmN0aW9uKCl7dmFyIHQ7Wj1bXTt2YXIgZSxyPVtdO2Zvcih5PTA7eTxKLmxlbmd0aDt5KyspaWYoZT0oYj1KW3ldKS5fbW9kdWxlLnNlbGVjdFBvaW50cyhiLGgpLHIucHVzaChlKSx0PUwoZSxiKSxaLmxlbmd0aClmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKylaLnB1c2godFtuXSk7ZWxzZSBaPXQ7RShTLEosXz17cG9pbnRzOlp9KSxZKF8scCx1KSxhLmdkLmVtaXQoInBsb3RseV9zZWxlY3RpbmciLF8pfSl9LGEuY2xpY2tGbj1mdW5jdGlvbih0LGUpe3ZhciByPUMuY2xpY2ttb2RlO1cucmVtb3ZlKCksYy5kb25lKFgpLnRoZW4oZnVuY3Rpb24oKXtpZihjLmNsZWFyKFgpLDI9PT10KXtmb3IoRy5yZW1vdmUoKSx5PTA7eTxKLmxlbmd0aDt5KyspKGI9Slt5XSkuX21vZHVsZS5zZWxlY3RQb2ludHMoYiwhMSk7RShTLEopLFQoYSksUy5lbWl0KCJwbG90bHlfZGVzZWxlY3QiLG51bGwpfWVsc2Ugci5pbmRleE9mKCJzZWxlY3QiKT4tMSYmeChlLFMsYS54YXhlcyxhLnlheGVzLGEuc3VicGxvdCxhLEcpLCJldmVudCI9PT1yJiZTLmVtaXQoInBsb3RseV9zZWxlY3RlZCIsdm9pZCAwKTtvLmNsaWNrKFMsZSl9KS5jYXRjaChzLmVycm9yKX0sYS5kb25lRm49ZnVuY3Rpb24oKXtXLnJlbW92ZSgpLGMuZG9uZShYKS50aGVuKGZ1bmN0aW9uKCl7Yy5jbGVhcihYKSxhLmdkLmVtaXQoInBsb3RseV9zZWxlY3RlZCIsXykscCYmYS5zZWxlY3Rpb25EZWZzJiYocC5zdWJ0cmFjdD1ILGEuc2VsZWN0aW9uRGVmcy5wdXNoKHApLGEubWVyZ2VkUG9seWdvbnMubGVuZ3RoPTAsW10ucHVzaC5hcHBseShhLm1lcmdlZFBvbHlnb25zLGYpKSxhLmRvbmVGbkNvbXBsZXRlZCYmYS5kb25lRm5Db21wbGV0ZWQoWil9KS5jYXRjaChzLmVycm9yKX19LGNsZWFyU2VsZWN0OkMsc2VsZWN0T25DbGljazp4fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo1OTIsIi4uLy4uL2NvbXBvbmVudHMvZngiOjYzMCwiLi4vLi4vY29tcG9uZW50cy9meC9oZWxwZXJzIjo2MjcsIi4uLy4uL2xpYiI6NzE3LCIuLi8uLi9saWIvY2xlYXJfZ2xfY2FudmFzZXMiOjcwMiwiLi4vLi4vbGliL3BvbHlnb24iOjcyOSwiLi4vLi4vbGliL3Rocm90dGxlIjo3NDIsIi4uLy4uL3Bsb3RfYXBpL3N1YnJvdXRpbmVzIjo3NTYsIi4uLy4uL3JlZ2lzdHJ5Ijo4NDYsIi4vYXhpc19pZHMiOjc2OCwiLi9jb25zdGFudHMiOjc3MSxwb2x5Ym9vbGpzOjQ3NX1dLDc4MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGE9dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4uLy4uL2xpYiIpLG89aS5jbGVhbk51bWJlcixzPWkubXMyRGF0ZVRpbWUsbD1pLmRhdGVUaW1lMm1zLGM9aS5lbnN1cmVOdW1iZXIsdT1pLmlzQXJyYXlPclR5cGVkQXJyYXksaD10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIiksZj1oLkZQX1NBRkUscD1oLkJBRE5VTSxkPWguTE9HX0NMSVAsZz10KCIuL2NvbnN0YW50cyIpLHY9dCgiLi9heGlzX2lkcyIpO2Z1bmN0aW9uIG0odCl7cmV0dXJuIE1hdGgucG93KDEwLHQpfWZ1bmN0aW9uIHkodCl7cmV0dXJuIG51bGwhPXR9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZT1lfHx7fTt2YXIgcj10Ll9pZHx8IngiLGg9ci5jaGFyQXQoMCk7ZnVuY3Rpb24geChlLHIpe2lmKGU+MClyZXR1cm4gTWF0aC5sb2coZSkvTWF0aC5MTjEwO2lmKGU8PTAmJnImJnQucmFuZ2UmJjI9PT10LnJhbmdlLmxlbmd0aCl7dmFyIG49dC5yYW5nZVswXSxhPXQucmFuZ2VbMV07cmV0dXJuLjUqKG4rYS0yKmQqTWF0aC5hYnMobi1hKSl9cmV0dXJuIHB9ZnVuY3Rpb24gYihlLHIsbil7dmFyIG89bChlLG58fHQuY2FsZW5kYXIpO2lmKG89PT1wKXtpZighYShlKSlyZXR1cm4gcDtlPStlO3ZhciBzPU1hdGguZmxvb3IoMTAqaS5tb2QoZSsuMDUsMSkpLGM9TWF0aC5yb3VuZChlLXMvMTApO289bChuZXcgRGF0ZShjKSkrcy8xMH1yZXR1cm4gb31mdW5jdGlvbiBfKGUscixuKXtyZXR1cm4gcyhlLHIsbnx8dC5jYWxlbmRhcil9ZnVuY3Rpb24gdyhlKXtyZXR1cm4gdC5fY2F0ZWdvcmllc1tNYXRoLnJvdW5kKGUpXX1mdW5jdGlvbiBrKGUpe2lmKHkoZSkpe2lmKHZvaWQgMD09PXQuX2NhdGVnb3JpZXNNYXAmJih0Ll9jYXRlZ29yaWVzTWFwPXt9KSx2b2lkIDAhPT10Ll9jYXRlZ29yaWVzTWFwW2VdKXJldHVybiB0Ll9jYXRlZ29yaWVzTWFwW2VdO3QuX2NhdGVnb3JpZXMucHVzaCgibnVtYmVyIj09dHlwZW9mIGU/U3RyaW5nKGUpOmUpO3ZhciByPXQuX2NhdGVnb3JpZXMubGVuZ3RoLTE7cmV0dXJuIHQuX2NhdGVnb3JpZXNNYXBbZV09cixyfXJldHVybiBwfWZ1bmN0aW9uIFQoZSl7aWYodC5fY2F0ZWdvcmllc01hcClyZXR1cm4gdC5fY2F0ZWdvcmllc01hcFtlXX1mdW5jdGlvbiBNKHQpe3ZhciBlPVQodCk7cmV0dXJuIHZvaWQgMCE9PWU/ZTphKHQpPyt0OnZvaWQgMH1mdW5jdGlvbiBBKGUpe3JldHVybiBhKGUpP24ucm91bmQodC5fYit0Ll9tKmUsMik6cH1mdW5jdGlvbiBTKGUpe3JldHVybihlLXQuX2IpL3QuX219dC5jMmw9ImxvZyI9PT10LnR5cGU/eDpjLHQubDJjPSJsb2ciPT09dC50eXBlP206Yyx0LmwycD1BLHQucDJsPVMsdC5jMnA9ImxvZyI9PT10LnR5cGU/ZnVuY3Rpb24odCxlKXtyZXR1cm4gQSh4KHQsZSkpfTpBLHQucDJjPSJsb2ciPT09dC50eXBlP2Z1bmN0aW9uKHQpe3JldHVybiBtKFModCkpfTpTLC0xIT09WyJsaW5lYXIiLCItIl0uaW5kZXhPZih0LnR5cGUpPyh0LmQycj10LnIyZD10LmQyYz10LnIyYz10LmQybD10LnIybD1vLHQuYzJkPXQuYzJyPXQubDJkPXQubDJyPWMsdC5kMnA9dC5yMnA9ZnVuY3Rpb24oZSl7cmV0dXJuIHQubDJwKG8oZSkpfSx0LnAyZD10LnAycj1TLHQuY2xlYW5Qb3M9Yyk6ImxvZyI9PT10LnR5cGU/KHQuZDJyPXQuZDJsPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHgobyh0KSxlKX0sdC5yMmQ9dC5yMmM9ZnVuY3Rpb24odCl7cmV0dXJuIG0obyh0KSl9LHQuZDJjPXQucjJsPW8sdC5jMmQ9dC5sMnI9Yyx0LmMycj14LHQubDJkPW0sdC5kMnA9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gdC5sMnAodC5kMnIoZSxyKSl9LHQucDJkPWZ1bmN0aW9uKHQpe3JldHVybiBtKFModCkpfSx0LnIycD1mdW5jdGlvbihlKXtyZXR1cm4gdC5sMnAobyhlKSl9LHQucDJyPVMsdC5jbGVhblBvcz1jKToiZGF0ZSI9PT10LnR5cGU/KHQuZDJyPXQucjJkPWkuaWRlbnRpdHksdC5kMmM9dC5yMmM9dC5kMmw9dC5yMmw9Yix0LmMyZD10LmMycj10LmwyZD10Lmwycj1fLHQuZDJwPXQucjJwPWZ1bmN0aW9uKGUscixuKXtyZXR1cm4gdC5sMnAoYihlLDAsbikpfSx0LnAyZD10LnAycj1mdW5jdGlvbih0LGUscil7cmV0dXJuIF8oUyh0KSxlLHIpfSx0LmNsZWFuUG9zPWZ1bmN0aW9uKGUpe3JldHVybiBpLmNsZWFuRGF0ZShlLHAsdC5jYWxlbmRhcil9KToiY2F0ZWdvcnkiPT09dC50eXBlPyh0LmQyYz10LmQybD1rLHQucjJkPXQuYzJkPXQubDJkPXcsdC5kMnI9dC5kMmxfbm9hZGQ9TSx0LnIyYz1mdW5jdGlvbihlKXt2YXIgcj1NKGUpO3JldHVybiB2b2lkIDAhPT1yP3I6dC5mcmFjdGlvbjJyKC41KX0sdC5sMnI9dC5jMnI9Yyx0LnIybD1NLHQuZDJwPWZ1bmN0aW9uKGUpe3JldHVybiB0LmwycCh0LnIyYyhlKSl9LHQucDJkPWZ1bmN0aW9uKHQpe3JldHVybiB3KFModCkpfSx0LnIycD10LmQycCx0LnAycj1TLHQuY2xlYW5Qb3M9ZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0JiYiIiE9PXQ/dDpjKHQpfSk6Im11bHRpY2F0ZWdvcnkiPT09dC50eXBlJiYodC5yMmQ9dC5jMmQ9dC5sMmQ9dyx0LmQycj10LmQybF9ub2FkZD1NLHQucjJjPWZ1bmN0aW9uKGUpe3ZhciByPU0oZSk7cmV0dXJuIHZvaWQgMCE9PXI/cjp0LmZyYWN0aW9uMnIoLjUpfSx0LnIyY19qdXN0X2luZGljZXM9VCx0Lmwycj10LmMycj1jLHQucjJsPU0sdC5kMnA9ZnVuY3Rpb24oZSl7cmV0dXJuIHQubDJwKHQucjJjKGUpKX0sdC5wMmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHcoUyh0KSl9LHQucjJwPXQuZDJwLHQucDJyPVMsdC5jbGVhblBvcz1mdW5jdGlvbih0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KXx8InN0cmluZyI9PXR5cGVvZiB0JiYiIiE9PXQ/dDpjKHQpfSx0LnNldHVwTXVsdGlDYXRlZ29yeT1mdW5jdGlvbihuKXt2YXIgYSxvLHM9dC5fdHJhY2VJbmRpY2VzLGw9ZS5fYXhpc01hdGNoR3JvdXBzO2lmKGwmJmwubGVuZ3RoJiYwPT09dC5fY2F0ZWdvcmllcy5sZW5ndGgpZm9yKGE9MDthPGwubGVuZ3RoO2ErKyl7dmFyIGM9bFthXTtpZihjW3JdKWZvcih2YXIgZiBpbiBjKWlmKGYhPT1yKXt2YXIgcD1lW3YuaWQybmFtZShmKV07cz1zLmNvbmNhdChwLl90cmFjZUluZGljZXMpfX12YXIgZD1bWzAse31dLFswLHt9XV0sZz1bXTtmb3IoYT0wO2E8cy5sZW5ndGg7YSsrKXt2YXIgbT1uW3NbYV1dO2lmKGggaW4gbSl7dmFyIHg9bVtoXSxiPW0uX2xlbmd0aHx8aS5taW5Sb3dMZW5ndGgoeCk7aWYodSh4WzBdKSYmdSh4WzFdKSlmb3Iobz0wO288YjtvKyspe3ZhciBfPXhbMF1bb10sdz14WzFdW29dO3koXykmJnkodykmJihnLnB1c2goW18sd10pLF8gaW4gZFswXVsxXXx8KGRbMF1bMV1bX109ZFswXVswXSsrKSx3IGluIGRbMV1bMV18fChkWzFdWzFdW3ddPWRbMV1bMF0rKykpfX19Zm9yKGcuc29ydChmdW5jdGlvbih0LGUpe3ZhciByPWRbMF1bMV0sbj1yW3RbMF1dLXJbZVswXV07aWYobilyZXR1cm4gbjt2YXIgYT1kWzFdWzFdO3JldHVybiBhW3RbMV1dLWFbZVsxXV19KSxhPTA7YTxnLmxlbmd0aDthKyspayhnW2FdKX0pLHQuZnJhY3Rpb24ycj1mdW5jdGlvbihlKXt2YXIgcj10LnIybCh0LnJhbmdlWzBdKSxuPXQucjJsKHQucmFuZ2VbMV0pO3JldHVybiB0LmwycihyK2UqKG4tcikpfSx0LnIyZnJhY3Rpb249ZnVuY3Rpb24oZSl7dmFyIHI9dC5yMmwodC5yYW5nZVswXSksbj10LnIybCh0LnJhbmdlWzFdKTtyZXR1cm4odC5yMmwoZSktcikvKG4tcil9LHQuY2xlYW5SYW5nZT1mdW5jdGlvbihlLHIpe3J8fChyPXt9KSxlfHwoZT0icmFuZ2UiKTt2YXIgbixvLHM9aS5uZXN0ZWRQcm9wZXJ0eSh0LGUpLmdldCgpO2lmKG89KG89ImRhdGUiPT09dC50eXBlP2kuZGZsdFJhbmdlKHQuY2FsZW5kYXIpOiJ5Ij09PWg/Zy5ERkxUUkFOR0VZOnIuZGZsdFJhbmdlfHxnLkRGTFRSQU5HRVgpLnNsaWNlKCksInRvemVybyIhPT10LnJhbmdlbW9kZSYmIm5vbm5lZ2F0aXZlIiE9PXQucmFuZ2Vtb2RlfHwob1swXT0wKSxzJiYyPT09cy5sZW5ndGgpZm9yKCJkYXRlIiE9PXQudHlwZXx8dC5hdXRvcmFuZ2V8fChzWzBdPWkuY2xlYW5EYXRlKHNbMF0scCx0LmNhbGVuZGFyKSxzWzFdPWkuY2xlYW5EYXRlKHNbMV0scCx0LmNhbGVuZGFyKSksbj0wO248MjtuKyspaWYoImRhdGUiPT09dC50eXBlKXtpZighaS5pc0RhdGVUaW1lKHNbbl0sdC5jYWxlbmRhcikpe3RbZV09bzticmVha31pZih0LnIybChzWzBdKT09PXQucjJsKHNbMV0pKXt2YXIgbD1pLmNvbnN0cmFpbih0LnIybChzWzBdKSxpLk1JTl9NUysxZTMsaS5NQVhfTVMtMWUzKTtzWzBdPXQubDJyKGwtMWUzKSxzWzFdPXQubDJyKGwrMWUzKTticmVha319ZWxzZXtpZighYShzW25dKSl7aWYoIWEoc1sxLW5dKSl7dFtlXT1vO2JyZWFrfXNbbl09c1sxLW5dKihuPzEwOi4xKX1pZihzW25dPC1mP3Nbbl09LWY6c1tuXT5mJiYoc1tuXT1mKSxzWzBdPT09c1sxXSl7dmFyIGM9TWF0aC5tYXgoMSxNYXRoLmFicygxZS02KnNbMF0pKTtzWzBdLT1jLHNbMV0rPWN9fWVsc2UgaS5uZXN0ZWRQcm9wZXJ0eSh0LGUpLnNldChvKX0sdC5zZXRTY2FsZT1mdW5jdGlvbihyKXt2YXIgbj1lLl9zaXplO2lmKHQub3ZlcmxheWluZyl7dmFyIGE9di5nZXRGcm9tSWQoe19mdWxsTGF5b3V0OmV9LHQub3ZlcmxheWluZyk7dC5kb21haW49YS5kb21haW59dmFyIGk9ciYmdC5fcj8iX3IiOiJyYW5nZSIsbz10LmNhbGVuZGFyO3QuY2xlYW5SYW5nZShpKTt2YXIgcz10LnIybCh0W2ldWzBdLG8pLGw9dC5yMmwodFtpXVsxXSxvKTtpZigieSI9PT1oPyh0Ll9vZmZzZXQ9bi50KygxLXQuZG9tYWluWzFdKSpuLmgsdC5fbGVuZ3RoPW4uaCoodC5kb21haW5bMV0tdC5kb21haW5bMF0pLHQuX209dC5fbGVuZ3RoLyhzLWwpLHQuX2I9LXQuX20qbCk6KHQuX29mZnNldD1uLmwrdC5kb21haW5bMF0qbi53LHQuX2xlbmd0aD1uLncqKHQuZG9tYWluWzFdLXQuZG9tYWluWzBdKSx0Ll9tPXQuX2xlbmd0aC8obC1zKSx0Ll9iPS10Ll9tKnMpLCFpc0Zpbml0ZSh0Ll9tKXx8IWlzRmluaXRlKHQuX2IpfHx0Ll9sZW5ndGg8MCl0aHJvdyBlLl9yZXBsb3R0aW5nPSExLG5ldyBFcnJvcigiU29tZXRoaW5nIHdlbnQgd3Jvbmcgd2l0aCBheGlzIHNjYWxpbmciKX0sdC5tYWtlQ2FsY2RhdGE9ZnVuY3Rpb24oZSxyKXt2YXIgbixhLG8scyxsPXQudHlwZSxjPSJkYXRlIj09PWwmJmVbcisiY2FsZW5kYXIiXTtpZihyIGluIGUpe2lmKG49ZVtyXSxzPWUuX2xlbmd0aHx8aS5taW5Sb3dMZW5ndGgobiksaS5pc1R5cGVkQXJyYXkobikmJigibGluZWFyIj09PWx8fCJsb2ciPT09bCkpe2lmKHM9PT1uLmxlbmd0aClyZXR1cm4gbjtpZihuLnN1YmFycmF5KXJldHVybiBuLnN1YmFycmF5KDAscyl9aWYoIm11bHRpY2F0ZWdvcnkiPT09bClyZXR1cm4gZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9bmV3IEFycmF5KGUpLG49MDtuPGU7bisrKXt2YXIgYT0odFswXXx8W10pW25dLGk9KHRbMV18fFtdKVtuXTtyW25dPVQoW2EsaV0pfXJldHVybiByfShuLHMpO2ZvcihhPW5ldyBBcnJheShzKSxvPTA7bzxzO28rKylhW29dPXQuZDJjKG5bb10sMCxjKX1lbHNle3ZhciB1PXIrIjAiaW4gZT90LmQyYyhlW3IrIjAiXSwwLGMpOjAsaD1lWyJkIityXT9OdW1iZXIoZVsiZCIrcl0pOjE7Zm9yKG49ZVt7eDoieSIseToieCJ9W3JdXSxzPWUuX2xlbmd0aHx8bi5sZW5ndGgsYT1uZXcgQXJyYXkocyksbz0wO288cztvKyspYVtvXT11K28qaH1yZXR1cm4gYX0sdC5pc1ZhbGlkUmFuZ2U9ZnVuY3Rpb24oZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSkmJjI9PT1lLmxlbmd0aCYmYSh0LnIybChlWzBdKSkmJmEodC5yMmwoZVsxXSkpfSx0LmlzUHRXaXRoaW5SYW5nZT1mdW5jdGlvbihlLHIpe3ZhciBuPXQuYzJsKGVbaF0sbnVsbCxyKSxhPXQucjJsKHQucmFuZ2VbMF0pLGk9dC5yMmwodC5yYW5nZVsxXSk7cmV0dXJuIGE8aT9hPD1uJiZuPD1pOmk8PW4mJm48PWF9LHQuY2xlYXJDYWxjPWZ1bmN0aW9uKCl7dmFyIG49ZnVuY3Rpb24oKXt0Ll9jYXRlZ29yaWVzPVtdLHQuX2NhdGVnb3JpZXNNYXA9e319LGE9ZS5fYXhpc01hdGNoR3JvdXBzO2lmKGEmJmEubGVuZ3RoKXtmb3IodmFyIGk9ITEsbz0wO288YS5sZW5ndGg7bysrKXt2YXIgcz1hW29dO2lmKHNbcl0pe2k9ITA7dmFyIGw9bnVsbCxjPW51bGw7Zm9yKHZhciB1IGluIHMpe3ZhciBoPWVbdi5pZDJuYW1lKHUpXTtpZihoLl9jYXRlZ29yaWVzKXtsPWguX2NhdGVnb3JpZXMsYz1oLl9jYXRlZ29yaWVzTWFwO2JyZWFrfX1sJiZjPyh0Ll9jYXRlZ29yaWVzPWwsdC5fY2F0ZWdvcmllc01hcD1jKTpuKCk7YnJlYWt9fWl8fG4oKX1lbHNlIG4oKTtpZih0Ll9pbml0aWFsQ2F0ZWdvcmllcylmb3IodmFyIGY9MDtmPHQuX2luaXRpYWxDYXRlZ29yaWVzLmxlbmd0aDtmKyspayh0Ll9pbml0aWFsQ2F0ZWdvcmllc1tmXSl9LHQuc29ydEJ5SW5pdGlhbENhdGVnb3JpZXM9ZnVuY3Rpb24oKXt2YXIgbj1bXTtpZih0Ll9jYXRlZ29yaWVzPVtdLHQuX2NhdGVnb3JpZXNNYXA9e30sdC5faW5pdGlhbENhdGVnb3JpZXMpZm9yKHZhciBhPTA7YTx0Ll9pbml0aWFsQ2F0ZWdvcmllcy5sZW5ndGg7YSsrKWsodC5faW5pdGlhbENhdGVnb3JpZXNbYV0pO249bi5jb25jYXQodC5fdHJhY2VJbmRpY2VzKTt2YXIgaT10Ll9tYXRjaEdyb3VwO2Zvcih2YXIgbyBpbiBpKWlmKHIhPT1vKXt2YXIgcz1lW3YuaWQybmFtZShvKV07cy5fY2F0ZWdvcmllcz10Ll9jYXRlZ29yaWVzLHMuX2NhdGVnb3JpZXNNYXA9dC5fY2F0ZWdvcmllc01hcCxuPW4uY29uY2F0KHMuX3RyYWNlSW5kaWNlcyl9cmV0dXJuIG59O3ZhciBFPWUuX2QzbG9jYWxlOyJkYXRlIj09PXQudHlwZSYmKHQuX2RhdGVGb3JtYXQ9RT9FLnRpbWVGb3JtYXQudXRjOm4udGltZS5mb3JtYXQudXRjLHQuX2V4dHJhRm9ybWF0PWUuX2V4dHJhRm9ybWF0KSx0Ll9zZXBhcmF0b3JzPWUuc2VwYXJhdG9ycyx0Ll9udW1Gb3JtYXQ9RT9FLm51bWJlckZvcm1hdDpuLmZvcm1hdCxkZWxldGUgdC5fbWluRHRpY2ssZGVsZXRlIHQuX2ZvcmNlVGljazB9fSx7Ii4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjY5MywiLi4vLi4vbGliIjo3MTcsIi4vYXhpc19pZHMiOjc2OCwiLi9jb25zdGFudHMiOjc3MSxkMzoxNjUsImZhc3QtaXNudW1lcmljIjoyMjh9XSw3ODQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksaT10KCIuLi9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiKTtmdW5jdGlvbiBvKHQpe3ZhciBlPVsic2hvd2V4cG9uZW50Iiwic2hvd3RpY2twcmVmaXgiLCJzaG93dGlja3N1ZmZpeCJdLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwIT09dFtlXX0pO2lmKGUuZXZlcnkoZnVuY3Rpb24ocil7cmV0dXJuIHRbcl09PT10W2VbMF1dfSl8fDE9PT1lLmxlbmd0aClyZXR1cm4gdFtlWzBdXX1mdW5jdGlvbiBzKHQsZSl7ZnVuY3Rpb24gcihyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsYS50aWNrZm9ybWF0c3RvcHMscixpKX1yKCJlbmFibGVkIikmJihyKCJkdGlja3JhbmdlIikscigidmFsdWUiKSl9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGwsYyx1KXt1JiYxIT09dS5wYXNzfHxmdW5jdGlvbih0LGUscixuLGEpe3ZhciBpPW8odCk7cigidGlja3ByZWZpeCIpJiZyKCJzaG93dGlja3ByZWZpeCIsaSk7cigidGlja3N1ZmZpeCIsYS50aWNrU3VmZml4RGZsdCkmJnIoInNob3d0aWNrc3VmZml4IixpKX0odCwwLHIsMCxjKSx1JiYyIT09dS5wYXNzfHxmdW5jdGlvbih0LGUscixsLGMpe3ZhciB1PW8odCk7cigidGlja3ByZWZpeCIpJiZyKCJzaG93dGlja3ByZWZpeCIsdSk7cigidGlja3N1ZmZpeCIsYy50aWNrU3VmZml4RGZsdCkmJnIoInNob3d0aWNrc3VmZml4Iix1KTtpZihyKCJzaG93dGlja2xhYmVscyIpKXt2YXIgaD1jLmZvbnR8fHt9LGY9ZS5jb2xvcixwPWYmJmYhPT1hLmNvbG9yLmRmbHQ/ZjpoLmNvbG9yO2lmKG4uY29lcmNlRm9udChyLCJ0aWNrZm9udCIse2ZhbWlseTpoLmZhbWlseSxzaXplOmguc2l6ZSxjb2xvcjpwfSkscigidGlja2FuZ2xlIiksImNhdGVnb3J5IiE9PWwpe3ZhciBkPXIoInRpY2tmb3JtYXQiKSxnPXQudGlja2Zvcm1hdHN0b3BzO0FycmF5LmlzQXJyYXkoZykmJmcubGVuZ3RoJiZpKHQsZSx7bmFtZToidGlja2Zvcm1hdHN0b3BzIixpbmNsdXNpb25BdHRyOiJlbmFibGVkIixoYW5kbGVJdGVtRGVmYXVsdHM6c30pLGR8fCJkYXRlIj09PWx8fChyKCJzaG93ZXhwb25lbnQiLHUpLHIoImV4cG9uZW50Zm9ybWF0Iikscigic2VwYXJhdGV0aG91c2FuZHMiKSl9fX0odCxlLHIsbCxjKX19LHsiLi4vLi4vbGliIjo3MTcsIi4uL2FycmF5X2NvbnRhaW5lcl9kZWZhdWx0cyI6NzYxLCIuL2xheW91dF9hdHRyaWJ1dGVzIjo3Nzd9XSw3ODU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuL2xheW91dF9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBvPW4uY29lcmNlMih0LGUsYSwidGlja2xlbiIpLHM9bi5jb2VyY2UyKHQsZSxhLCJ0aWNrd2lkdGgiKSxsPW4uY29lcmNlMih0LGUsYSwidGlja2NvbG9yIixlLmNvbG9yKTtyKCJ0aWNrcyIsaS5vdXRlclRpY2tzfHxvfHxzfHxsPyJvdXRzaWRlIjoiIil8fChkZWxldGUgZS50aWNrbGVuLGRlbGV0ZSBlLnRpY2t3aWR0aCxkZWxldGUgZS50aWNrY29sb3IpfX0seyIuLi8uLi9saWIiOjcxNywiLi9sYXlvdXRfYXR0cmlidXRlcyI6Nzc3fV0sNzg2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vY2xlYW5fdGlja3MiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSl7dmFyIGk7ImFycmF5IiE9PXQudGlja21vZGV8fCJsb2ciIT09YSYmImRhdGUiIT09YT9pPXIoInRpY2ttb2RlIixBcnJheS5pc0FycmF5KHQudGlja3ZhbHMpPyJhcnJheSI6dC5kdGljaz8ibGluZWFyIjoiYXV0byIpOmk9ZS50aWNrbW9kZT0iYXV0byI7aWYoImF1dG8iPT09aSlyKCJudGlja3MiKTtlbHNlIGlmKCJsaW5lYXIiPT09aSl7dmFyIG89ZS5kdGljaz1uLmR0aWNrKHQuZHRpY2ssYSk7ZS50aWNrMD1uLnRpY2swKHQudGljazAsYSxlLmNhbGVuZGFyLG8pfWVsc2UgaWYoIm11bHRpY2F0ZWdvcnkiIT09YSl7dm9pZCAwPT09cigidGlja3ZhbHMiKT9lLnRpY2ttb2RlPSJhdXRvIjpyKCJ0aWNrdGV4dCIpfX19LHsiLi9jbGVhbl90aWNrcyI6NzcwfV0sNzg3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksYT10KCIuLi8uLi9yZWdpc3RyeSIpLGk9dCgiLi4vLi4vbGliIiksbz10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxzPXQoIi4vYXhlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixsKXt2YXIgYz10Ll9mdWxsTGF5b3V0O2lmKDAhPT1lLmxlbmd0aCl7dmFyIHUsaCxmLHA7bCYmKHU9bCgpKTt2YXIgZD1uLmVhc2Uoci5lYXNpbmcpO3JldHVybiB0Ll90cmFuc2l0aW9uRGF0YS5faW50ZXJydXB0Q2FsbGJhY2tzLnB1c2goZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHApLHA9bnVsbCxmdW5jdGlvbigpe2Zvcih2YXIgcj17fSxuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBpPWVbbl0sbz1pLnBsb3RpbmZvLnhheGlzLHM9aS5wbG90aW5mby55YXhpcztpLnhyMCYmKHJbby5fbmFtZSsiLnJhbmdlIl09aS54cjAuc2xpY2UoKSksaS55cjAmJihyW3MuX25hbWUrIi5yYW5nZSJdPWkueXIwLnNsaWNlKCkpfXJldHVybiBhLmNhbGwoInJlbGF5b3V0Iix0LHIpLnRoZW4oZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKylnKGVbdF0ucGxvdGluZm8pfSl9KCl9KSxoPURhdGUubm93KCkscD13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uIG4oKXtmPURhdGUubm93KCk7Zm9yKHZhciBpPU1hdGgubWluKDEsKGYtaCkvci5kdXJhdGlvbiksbz1kKGkpLHM9MDtzPGUubGVuZ3RoO3MrKyl2KGVbc10sbyk7Zi1oPnIuZHVyYXRpb24/KGZ1bmN0aW9uKCl7Zm9yKHZhciByPXt9LG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGk9ZVtuXSxvPWkucGxvdGluZm8ueGF4aXMscz1pLnBsb3RpbmZvLnlheGlzO2kueHIxJiYocltvLl9uYW1lKyIucmFuZ2UiXT1pLnhyMS5zbGljZSgpKSxpLnlyMSYmKHJbcy5fbmFtZSsiLnJhbmdlIl09aS55cjEuc2xpY2UoKSl9dSYmdSgpLGEuY2FsbCgicmVsYXlvdXQiLHQscikudGhlbihmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKWcoZVt0XS5wbG90aW5mbyl9KX0oKSxwPXdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShuKSk6cD13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKG4pfSksUHJvbWlzZS5yZXNvbHZlKCl9ZnVuY3Rpb24gZyh0KXt2YXIgZT10LnhheGlzLHI9dC55YXhpcztjLl9kZWZzLnNlbGVjdCgiIyIrdC5jbGlwSWQrIj4gcmVjdCIpLmNhbGwoby5zZXRUcmFuc2xhdGUsMCwwKS5jYWxsKG8uc2V0U2NhbGUsMSwxKSx0LnBsb3QuY2FsbChvLnNldFRyYW5zbGF0ZSxlLl9vZmZzZXQsci5fb2Zmc2V0KS5jYWxsKG8uc2V0U2NhbGUsMSwxKTt2YXIgbj10LnBsb3Quc2VsZWN0QWxsKCIuc2NhdHRlcmxheWVyIC50cmFjZSIpO24uc2VsZWN0QWxsKCIucG9pbnQiKS5jYWxsKG8uc2V0UG9pbnRHcm91cFNjYWxlLDEsMSksbi5zZWxlY3RBbGwoIi50ZXh0cG9pbnQiKS5jYWxsKG8uc2V0VGV4dFBvaW50c1NjYWxlLDEsMSksbi5jYWxsKG8uaGlkZU91dHNpZGVSYW5nZVBvaW50cyx0KX1mdW5jdGlvbiB2KGUscil7dmFyIG49ZS5wbG90aW5mbyxhPW4ueGF4aXMsbD1uLnlheGlzLGM9YS5fbGVuZ3RoLHU9bC5fbGVuZ3RoLGg9ISFlLnhyMSxmPSEhZS55cjEscD1bXTtpZihoKXt2YXIgZD1pLnNpbXBsZU1hcChlLnhyMCxhLnIybCksZz1pLnNpbXBsZU1hcChlLnhyMSxhLnIybCksdj1kWzFdLWRbMF0sbT1nWzFdLWdbMF07cFswXT0oZFswXSooMS1yKStyKmdbMF0tZFswXSkvKGRbMV0tZFswXSkqYyxwWzJdPWMqKDEtcityKm0vdiksYS5yYW5nZVswXT1hLmwycihkWzBdKigxLXIpK3IqZ1swXSksYS5yYW5nZVsxXT1hLmwycihkWzFdKigxLXIpK3IqZ1sxXSl9ZWxzZSBwWzBdPTAscFsyXT1jO2lmKGYpe3ZhciB5PWkuc2ltcGxlTWFwKGUueXIwLGwucjJsKSx4PWkuc2ltcGxlTWFwKGUueXIxLGwucjJsKSxiPXlbMV0teVswXSxfPXhbMV0teFswXTtwWzFdPSh5WzFdKigxLXIpK3IqeFsxXS15WzFdKS8oeVswXS15WzFdKSp1LHBbM109dSooMS1yK3IqXy9iKSxsLnJhbmdlWzBdPWEubDJyKHlbMF0qKDEtcikrcip4WzBdKSxsLnJhbmdlWzFdPWwubDJyKHlbMV0qKDEtcikrcip4WzFdKX1lbHNlIHBbMV09MCxwWzNdPXU7cy5kcmF3T25lKHQsYSx7c2tpcFRpdGxlOiEwfSkscy5kcmF3T25lKHQsbCx7c2tpcFRpdGxlOiEwfSkscy5yZWRyYXdDb21wb25lbnRzKHQsW2EuX2lkLGwuX2lkXSk7dmFyIHc9aD9jL3BbMl06MSxrPWY/dS9wWzNdOjEsVD1oP3BbMF06MCxNPWY/cFsxXTowLEE9aD9wWzBdL3BbMl0qYzowLFM9Zj9wWzFdL3BbM10qdTowLEU9YS5fb2Zmc2V0LUEsTD1sLl9vZmZzZXQtUztuLmNsaXBSZWN0LmNhbGwoby5zZXRUcmFuc2xhdGUsVCxNKS5jYWxsKG8uc2V0U2NhbGUsMS93LDEvayksbi5wbG90LmNhbGwoby5zZXRUcmFuc2xhdGUsRSxMKS5jYWxsKG8uc2V0U2NhbGUsdyxrKSxvLnNldFBvaW50R3JvdXBTY2FsZShuLnpvb21TY2FsZVB0cywxL3csMS9rKSxvLnNldFRleHRQb2ludHNTY2FsZShuLnpvb21TY2FsZVR4dCwxL3csMS9rKX1zLnJlZHJhd0NvbXBvbmVudHModCl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjEzLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vcmVnaXN0cnkiOjg0NiwiLi9heGVzIjo3NjUsZDM6MTY1fV0sNzg4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3JlZ2lzdHJ5IikudHJhY2VJcyxhPXQoIi4vYXhpc19hdXRvdHlwZSIpO2Z1bmN0aW9uIGkodCl7cmV0dXJue3Y6IngiLGg6InkifVt0Lm9yaWVudGF0aW9ufHwidiJdfWZ1bmN0aW9uIG8odCxlKXt2YXIgcj1pKHQpLGE9bih0LCJib3gtdmlvbGluIiksbz1uKHQuX2Z1bGxJbnB1dHx8e30sImNhbmRsZXN0aWNrIik7cmV0dXJuIGEmJiFvJiZlPT09ciYmdm9pZCAwPT09dFtyXSYmdm9pZCAwPT09dFtyKyIwIl19ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMpeyItIj09PXIoInR5cGUiLChzLnNwbG9tU3Rhc2h8fHt9KS50eXBlKSYmKCFmdW5jdGlvbih0LGUpe2lmKCItIiE9PXQudHlwZSlyZXR1cm47dmFyIHIscz10Ll9pZCxsPXMuY2hhckF0KDApOy0xIT09cy5pbmRleE9mKCJzY2VuZSIpJiYocz1sKTt2YXIgYz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBhPXRbbl07aWYoInNwbG9tIj09PWEudHlwZSYmYS5fbGVuZ3RoPjAmJihhWyJfIityKyJheGVzIl18fHt9KVtlXSlyZXR1cm4gYTtpZigoYVtyKyJheGlzIl18fHIpPT09ZSl7aWYobyhhLHIpKXJldHVybiBhO2lmKChhW3JdfHxbXSkubGVuZ3RofHxhW3IrIjAiXSlyZXR1cm4gYX19fShlLHMsbCk7aWYoIWMpcmV0dXJuO2lmKCJoaXN0b2dyYW0iPT09Yy50eXBlJiZsPT09e3Y6InkiLGg6IngifVtjLm9yaWVudGF0aW9ufHwidiJdKXJldHVybiB2b2lkKHQudHlwZT0ibGluZWFyIik7dmFyIHU9bCsiY2FsZW5kYXIiLGg9Y1t1XSxmPXtub011bHRpQ2F0ZWdvcnk6IW4oYywiY2FydGVzaWFuIil8fG4oYywibm9NdWx0aUNhdGVnb3J5Iil9OyJib3giPT09Yy50eXBlJiZjLl9oYXNQcmVDb21wU3RhdHMmJmw9PT17aDoieCIsdjoieSJ9W2Mub3JpZW50YXRpb258fCJ2Il0mJihmLm5vTXVsdGlDYXRlZ29yeT0hMCk7aWYobyhjLGwpKXt2YXIgcD1pKGMpLGQ9W107Zm9yKHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIGc9ZVtyXTtuKGcsImJveC12aW9saW4iKSYmKGdbbCsiYXhpcyJdfHxsKT09PXMmJih2b2lkIDAhPT1nW3BdP2QucHVzaChnW3BdWzBdKTp2b2lkIDAhPT1nLm5hbWU/ZC5wdXNoKGcubmFtZSk6ZC5wdXNoKCJ0ZXh0IiksZ1t1XSE9PWgmJihoPXZvaWQgMCkpfXQudHlwZT1hKGQsaCxmKX1lbHNlIGlmKCJzcGxvbSI9PT1jLnR5cGUpe3ZhciB2PWMuZGltZW5zaW9ucyxtPXZbYy5fYXhlc0RpbVtzXV07bS52aXNpYmxlJiYodC50eXBlPWEobS52YWx1ZXMsaCxmKSl9ZWxzZSB0LnR5cGU9YShjW2xdfHxbY1tsKyIwIl1dLGgsZil9KGUscy5kYXRhKSwiLSI9PT1lLnR5cGU/ZS50eXBlPSJsaW5lYXIiOnQudHlwZT1lLnR5cGUpfX0seyIuLi8uLi9yZWdpc3RyeSI6ODQ2LCIuL2F4aXNfYXV0b3R5cGUiOjc2Nn1dLDc4OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9yZWdpc3RyeSIpLGE9dCgiLi4vbGliIik7ZnVuY3Rpb24gaSh0LGUscil7dmFyIG4saSxvLHM9ITE7aWYoImRhdGEiPT09ZS50eXBlKW49dC5fZnVsbERhdGFbbnVsbCE9PWUudHJhY2VzP2UudHJhY2VzWzBdOjBdO2Vsc2V7aWYoImxheW91dCIhPT1lLnR5cGUpcmV0dXJuITE7bj10Ll9mdWxsTGF5b3V0fXJldHVybiBpPWEubmVzdGVkUHJvcGVydHkobixlLnByb3ApLmdldCgpLChvPXJbZS50eXBlXT1yW2UudHlwZV18fHt9KS5oYXNPd25Qcm9wZXJ0eShlLnByb3ApJiZvW2UucHJvcF0hPT1pJiYocz0hMCksb1tlLnByb3BdPWkse2NoYW5nZWQ6cyx2YWx1ZTppfX1mdW5jdGlvbiBvKHQsZSl7dmFyIHI9W10sbj1lWzBdLGk9e307aWYoInN0cmluZyI9PXR5cGVvZiBuKWlbbl09ZVsxXTtlbHNle2lmKCFhLmlzUGxhaW5PYmplY3QobikpcmV0dXJuIHI7aT1ufXJldHVybiBsKGksZnVuY3Rpb24odCxlLG4pe3IucHVzaCh7dHlwZToibGF5b3V0Iixwcm9wOnQsdmFsdWU6bn0pfSwiIiwwKSxyfWZ1bmN0aW9uIHModCxlKXt2YXIgcixuLGksbyxzPVtdO2lmKG49ZVswXSxpPWVbMV0scj1lWzJdLG89e30sInN0cmluZyI9PXR5cGVvZiBuKW9bbl09aTtlbHNle2lmKCFhLmlzUGxhaW5PYmplY3QobikpcmV0dXJuIHM7bz1uLHZvaWQgMD09PXImJihyPWkpfXJldHVybiB2b2lkIDA9PT1yJiYocj1udWxsKSxsKG8sZnVuY3Rpb24oZSxuLGEpe3ZhciBpLG87aWYoQXJyYXkuaXNBcnJheShhKSl7bz1hLnNsaWNlKCk7dmFyIGw9TWF0aC5taW4oby5sZW5ndGgsdC5kYXRhLmxlbmd0aCk7ciYmKGw9TWF0aC5taW4obCxyLmxlbmd0aCkpLGk9W107Zm9yKHZhciBjPTA7YzxsO2MrKylpW2NdPXI/cltjXTpjfWVsc2Ugbz1hLGk9cj9yLnNsaWNlKCk6bnVsbDtpZihudWxsPT09aSlBcnJheS5pc0FycmF5KG8pJiYobz1vWzBdKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoaSkpe2lmKCFBcnJheS5pc0FycmF5KG8pKXt2YXIgdT1vO289W107Zm9yKHZhciBoPTA7aDxpLmxlbmd0aDtoKyspb1toXT11fW8ubGVuZ3RoPU1hdGgubWluKGkubGVuZ3RoLG8ubGVuZ3RoKX1zLnB1c2goe3R5cGU6ImRhdGEiLHByb3A6ZSx0cmFjZXM6aSx2YWx1ZTpvfSl9LCIiLDApLHN9ZnVuY3Rpb24gbCh0LGUscixuKXtPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3ZhciBvPXRbaV07aWYoIl8iIT09aVswXSl7dmFyIHM9cisobj4wPyIuIjoiIikraTthLmlzUGxhaW5PYmplY3Qobyk/bChvLGUscyxuKzEpOmUocyxpLG8pfX0pfXIubWFuYWdlQ29tbWFuZE9ic2VydmVyPWZ1bmN0aW9uKHQsZSxuLG8pe3ZhciBzPXt9LGw9ITA7ZSYmZS5fY29tbWFuZE9ic2VydmVyJiYocz1lLl9jb21tYW5kT2JzZXJ2ZXIpLHMuY2FjaGV8fChzLmNhY2hlPXt9KSxzLmxvb2t1cFRhYmxlPXt9O3ZhciBjPXIuaGFzU2ltcGxlQVBJQ29tbWFuZEJpbmRpbmdzKHQsbixzLmxvb2t1cFRhYmxlKTtpZihlJiZlLl9jb21tYW5kT2JzZXJ2ZXIpe2lmKGMpcmV0dXJuIHM7aWYoZS5fY29tbWFuZE9ic2VydmVyLnJlbW92ZSlyZXR1cm4gZS5fY29tbWFuZE9ic2VydmVyLnJlbW92ZSgpLGUuX2NvbW1hbmRPYnNlcnZlcj1udWxsLHN9aWYoYyl7aSh0LGMscy5jYWNoZSkscy5jaGVjaz1mdW5jdGlvbigpe2lmKGwpe3ZhciBlPWkodCxjLHMuY2FjaGUpO3JldHVybiBlLmNoYW5nZWQmJm8mJnZvaWQgMCE9PXMubG9va3VwVGFibGVbZS52YWx1ZV0mJihzLmRpc2FibGUoKSxQcm9taXNlLnJlc29sdmUobyh7dmFsdWU6ZS52YWx1ZSx0eXBlOmMudHlwZSxwcm9wOmMucHJvcCx0cmFjZXM6Yy50cmFjZXMsaW5kZXg6cy5sb29rdXBUYWJsZVtlLnZhbHVlXX0pKS50aGVuKHMuZW5hYmxlLHMuZW5hYmxlKSksZS5jaGFuZ2VkfX07Zm9yKHZhciB1PVsicGxvdGx5X3JlbGF5b3V0IiwicGxvdGx5X3JlZHJhdyIsInBsb3RseV9yZXN0eWxlIiwicGxvdGx5X3VwZGF0ZSIsInBsb3RseV9hbmltYXRpbmdmcmFtZSIsInBsb3RseV9hZnRlcnBsb3QiXSxoPTA7aDx1Lmxlbmd0aDtoKyspdC5faW50ZXJuYWxPbih1W2hdLHMuY2hlY2spO3MucmVtb3ZlPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTx1Lmxlbmd0aDtlKyspdC5fcmVtb3ZlSW50ZXJuYWxMaXN0ZW5lcih1W2VdLHMuY2hlY2spfX1lbHNlIGEubG9nKCJVbmFibGUgdG8gYXV0b21hdGljYWxseSBiaW5kIHBsb3QgdXBkYXRlcyB0byBBUEkgY29tbWFuZCIpLHMubG9va3VwVGFibGU9e30scy5yZW1vdmU9ZnVuY3Rpb24oKXt9O3JldHVybiBzLmRpc2FibGU9ZnVuY3Rpb24oKXtsPSExfSxzLmVuYWJsZT1mdW5jdGlvbigpe2w9ITB9LGUmJihlLl9jb21tYW5kT2JzZXJ2ZXI9cyksc30sci5oYXNTaW1wbGVBUElDb21tYW5kQmluZGluZ3M9ZnVuY3Rpb24odCxlLG4pe3ZhciBhLGksbz1lLmxlbmd0aDtmb3IoYT0wO2E8bzthKyspe3ZhciBzLGw9ZVthXSxjPWwubWV0aG9kLHU9bC5hcmdzO2lmKEFycmF5LmlzQXJyYXkodSl8fCh1PVtdKSwhYylyZXR1cm4hMTt2YXIgaD1yLmNvbXB1dGVBUElDb21tYW5kQmluZGluZ3ModCxjLHUpO2lmKDEhPT1oLmxlbmd0aClyZXR1cm4hMTtpZihpKXtpZigocz1oWzBdKS50eXBlIT09aS50eXBlKXJldHVybiExO2lmKHMucHJvcCE9PWkucHJvcClyZXR1cm4hMTtpZihBcnJheS5pc0FycmF5KGkudHJhY2VzKSl7aWYoIUFycmF5LmlzQXJyYXkocy50cmFjZXMpKXJldHVybiExO3MudHJhY2VzLnNvcnQoKTtmb3IodmFyIGY9MDtmPGkudHJhY2VzLmxlbmd0aDtmKyspaWYoaS50cmFjZXNbZl0hPT1zLnRyYWNlc1tmXSlyZXR1cm4hMX1lbHNlIGlmKHMucHJvcCE9PWkucHJvcClyZXR1cm4hMX1lbHNlIGk9aFswXSxBcnJheS5pc0FycmF5KGkudHJhY2VzKSYmaS50cmFjZXMuc29ydCgpO3ZhciBwPShzPWhbMF0pLnZhbHVlO2lmKEFycmF5LmlzQXJyYXkocCkpe2lmKDEhPT1wLmxlbmd0aClyZXR1cm4hMTtwPXBbMF19biYmKG5bcF09YSl9cmV0dXJuIGl9LHIuZXhlY3V0ZUFQSUNvbW1hbmQ9ZnVuY3Rpb24odCxlLHIpe2lmKCJza2lwIj09PWUpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO3ZhciBpPW4uYXBpTWV0aG9kUmVnaXN0cnlbZV0sbz1bdF07QXJyYXkuaXNBcnJheShyKXx8KHI9W10pO2Zvcih2YXIgcz0wO3M8ci5sZW5ndGg7cysrKW8ucHVzaChyW3NdKTtyZXR1cm4gaS5hcHBseShudWxsLG8pLmNhdGNoKGZ1bmN0aW9uKHQpe3JldHVybiBhLndhcm4oIkFQSSBjYWxsIHRvIFBsb3RseS4iK2UrIiByZWplY3RlZC4iLHQpLFByb21pc2UucmVqZWN0KHQpfSl9LHIuY29tcHV0ZUFQSUNvbW1hbmRCaW5kaW5ncz1mdW5jdGlvbih0LGUscil7dmFyIG47c3dpdGNoKEFycmF5LmlzQXJyYXkocil8fChyPVtdKSxlKXtjYXNlInJlc3R5bGUiOm49cyh0LHIpO2JyZWFrO2Nhc2UicmVsYXlvdXQiOm49byh0LHIpO2JyZWFrO2Nhc2UidXBkYXRlIjpuPXModCxbclswXSxyWzJdXSkuY29uY2F0KG8odCxbclsxXV0pKTticmVhaztjYXNlImFuaW1hdGUiOm49ZnVuY3Rpb24odCxlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlWzBdKSYmMT09PWVbMF0ubGVuZ3RoJiYtMSE9PVsic3RyaW5nIiwibnVtYmVyIl0uaW5kZXhPZih0eXBlb2YgZVswXVswXSk/W3t0eXBlOiJsYXlvdXQiLHByb3A6Il9jdXJyZW50RnJhbWUiLHZhbHVlOmVbMF1bMF0udG9TdHJpbmcoKX1dOltdfSgwLHIpO2JyZWFrO2RlZmF1bHQ6bj1bXX1yZXR1cm4gbn19LHsiLi4vbGliIjo3MTcsIi4uL3JlZ2lzdHJ5Ijo4NDZ9XSw3OTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQ7ci5hdHRyaWJ1dGVzPWZ1bmN0aW9uKHQsZSl7ZT1lfHx7fTt2YXIgcj17dmFsVHlwZToiaW5mb19hcnJheSIsZWRpdFR5cGU6KHQ9dHx8e30pLmVkaXRUeXBlLGl0ZW1zOlt7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxlZGl0VHlwZTp0LmVkaXRUeXBlfSx7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxlZGl0VHlwZTp0LmVkaXRUeXBlfV0sZGZsdDpbMCwxXX0sYT0odC5uYW1lJiZ0Lm5hbWUsdC50cmFjZSxlLmRlc2NyaXB0aW9uJiZlLmRlc2NyaXB0aW9uLHt4Om4oe30scix7fSkseTpuKHt9LHIse30pLGVkaXRUeXBlOnQuZWRpdFR5cGV9KTtyZXR1cm4gdC5ub0dyaWRDZWxsfHwoYS5yb3c9e3ZhbFR5cGU6ImludGVnZXIiLG1pbjowLGRmbHQ6MCxlZGl0VHlwZTp0LmVkaXRUeXBlfSxhLmNvbHVtbj17dmFsVHlwZToiaW50ZWdlciIsbWluOjAsZGZsdDowLGVkaXRUeXBlOnQuZWRpdFR5cGV9KSxhfSxyLmRlZmF1bHRzPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPW4mJm4ueHx8WzAsMV0saT1uJiZuLnl8fFswLDFdLG89ZS5ncmlkO2lmKG8pe3ZhciBzPXIoImRvbWFpbi5jb2x1bW4iKTt2b2lkIDAhPT1zJiYoczxvLmNvbHVtbnM/YT1vLl9kb21haW5zLnhbc106ZGVsZXRlIHQuZG9tYWluLmNvbHVtbik7dmFyIGw9cigiZG9tYWluLnJvdyIpO3ZvaWQgMCE9PWwmJihsPG8ucm93cz9pPW8uX2RvbWFpbnMueVtsXTpkZWxldGUgdC5kb21haW4ucm93KX12YXIgYz1yKCJkb21haW4ueCIsYSksdT1yKCJkb21haW4ueSIsaSk7Y1swXTxjWzFdfHwodC5kb21haW4ueD1hLnNsaWNlKCkpLHVbMF08dVsxXXx8KHQuZG9tYWluLnk9aS5zbGljZSgpKX19LHsiLi4vbGliL2V4dGVuZCI6NzA4fV0sNzkxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10LmVkaXRUeXBlLHI9dC5jb2xvckVkaXRUeXBlO3ZvaWQgMD09PXImJihyPWUpO3ZhciBuPXtmYW1pbHk6e3ZhbFR5cGU6InN0cmluZyIsbm9CbGFuazohMCxzdHJpY3Q6ITAsZWRpdFR5cGU6ZX0sc2l6ZTp7dmFsVHlwZToibnVtYmVyIixtaW46MSxlZGl0VHlwZTplfSxjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOnJ9LGVkaXRUeXBlOmV9O3JldHVybiB0LmFycmF5T2smJihuLmZhbWlseS5hcnJheU9rPSEwLG4uc2l6ZS5hcnJheU9rPSEwLG4uY29sb3IuYXJyYXlPaz0hMCksbn19LHt9XSw3OTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtfaXNMaW5rZWRUb0FycmF5OiJmcmFtZXNfZW50cnkiLGdyb3VwOnt2YWxUeXBlOiJzdHJpbmcifSxuYW1lOnt2YWxUeXBlOiJzdHJpbmcifSx0cmFjZXM6e3ZhbFR5cGU6ImFueSJ9LGJhc2VmcmFtZTp7dmFsVHlwZToic3RyaW5nIn0sZGF0YTp7dmFsVHlwZToiYW55In0sbGF5b3V0Ont2YWxUeXBlOiJhbnkifX19LHt9XSw3OTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ci5wcm9qTmFtZXM9e2VxdWlyZWN0YW5ndWxhcjoiZXF1aXJlY3Rhbmd1bGFyIixtZXJjYXRvcjoibWVyY2F0b3IiLG9ydGhvZ3JhcGhpYzoib3J0aG9ncmFwaGljIiwibmF0dXJhbCBlYXJ0aCI6Im5hdHVyYWxFYXJ0aCIsa2F2cmF5c2tpeTc6ImthdnJheXNraXk3IixtaWxsZXI6Im1pbGxlciIscm9iaW5zb246InJvYmluc29uIixlY2tlcnQ0OiJlY2tlcnQ0IiwiYXppbXV0aGFsIGVxdWFsIGFyZWEiOiJhemltdXRoYWxFcXVhbEFyZWEiLCJhemltdXRoYWwgZXF1aWRpc3RhbnQiOiJhemltdXRoYWxFcXVpZGlzdGFudCIsImNvbmljIGVxdWFsIGFyZWEiOiJjb25pY0VxdWFsQXJlYSIsImNvbmljIGNvbmZvcm1hbCI6ImNvbmljQ29uZm9ybWFsIiwiY29uaWMgZXF1aWRpc3RhbnQiOiJjb25pY0VxdWlkaXN0YW50Iixnbm9tb25pYzoiZ25vbW9uaWMiLHN0ZXJlb2dyYXBoaWM6InN0ZXJlb2dyYXBoaWMiLG1vbGx3ZWlkZToibW9sbHdlaWRlIixoYW1tZXI6ImhhbW1lciIsInRyYW5zdmVyc2UgbWVyY2F0b3IiOiJ0cmFuc3ZlcnNlTWVyY2F0b3IiLCJhbGJlcnMgdXNhIjoiYWxiZXJzVXNhIiwid2lua2VsIHRyaXBlbCI6IndpbmtlbDMiLGFpdG9mZjoiYWl0b2ZmIixzaW51c29pZGFsOiJzaW51c29pZGFsIn0sci5heGVzTmFtZXM9WyJsb25heGlzIiwibGF0YXhpcyJdLHIubG9uYXhpc1NwYW49e29ydGhvZ3JhcGhpYzoxODAsImF6aW11dGhhbCBlcXVhbCBhcmVhIjozNjAsImF6aW11dGhhbCBlcXVpZGlzdGFudCI6MzYwLCJjb25pYyBjb25mb3JtYWwiOjE4MCxnbm9tb25pYzoxNjAsc3RlcmVvZ3JhcGhpYzoxODAsInRyYW5zdmVyc2UgbWVyY2F0b3IiOjE4MCwiKiI6MzYwfSxyLmxhdGF4aXNTcGFuPXsiY29uaWMgY29uZm9ybWFsIjoxNTAsc3RlcmVvZ3JhcGhpYzoxNzkuNSwiKiI6MTgwfSxyLnNjb3BlRGVmYXVsdHM9e3dvcmxkOntsb25heGlzUmFuZ2U6Wy0xODAsMTgwXSxsYXRheGlzUmFuZ2U6Wy05MCw5MF0scHJvalR5cGU6ImVxdWlyZWN0YW5ndWxhciIscHJvalJvdGF0ZTpbMCwwLDBdfSx1c2E6e2xvbmF4aXNSYW5nZTpbLTE4MCwtNTBdLGxhdGF4aXNSYW5nZTpbMTUsODBdLHByb2pUeXBlOiJhbGJlcnMgdXNhIn0sZXVyb3BlOntsb25heGlzUmFuZ2U6Wy0zMCw2MF0sbGF0YXhpc1JhbmdlOlszMCw4NV0scHJvalR5cGU6ImNvbmljIGNvbmZvcm1hbCIscHJvalJvdGF0ZTpbMTUsMCwwXSxwcm9qUGFyYWxsZWxzOlswLDYwXX0sYXNpYTp7bG9uYXhpc1JhbmdlOlsyMiwxNjBdLGxhdGF4aXNSYW5nZTpbLTE1LDU1XSxwcm9qVHlwZToibWVyY2F0b3IiLHByb2pSb3RhdGU6WzAsMCwwXX0sYWZyaWNhOntsb25heGlzUmFuZ2U6Wy0zMCw2MF0sbGF0YXhpc1JhbmdlOlstNDAsNDBdLHByb2pUeXBlOiJtZXJjYXRvciIscHJvalJvdGF0ZTpbMCwwLDBdfSwibm9ydGggYW1lcmljYSI6e2xvbmF4aXNSYW5nZTpbLTE4MCwtNDVdLGxhdGF4aXNSYW5nZTpbNSw4NV0scHJvalR5cGU6ImNvbmljIGNvbmZvcm1hbCIscHJvalJvdGF0ZTpbLTEwMCwwLDBdLHByb2pQYXJhbGxlbHM6WzI5LjUsNDUuNV19LCJzb3V0aCBhbWVyaWNhIjp7bG9uYXhpc1JhbmdlOlstMTAwLC0zMF0sbGF0YXhpc1JhbmdlOlstNjAsMTVdLHByb2pUeXBlOiJtZXJjYXRvciIscHJvalJvdGF0ZTpbMCwwLDBdfX0sci5jbGlwUGFkPS4wMDEsci5wcmVjaXNpb249LjEsci5sYW5kQ29sb3I9IiNGMERDODIiLHIud2F0ZXJDb2xvcj0iIzMzOTlGRiIsci5sb2NhdGlvbm1vZGVUb0xheWVyPXsiSVNPLTMiOiJjb3VudHJpZXMiLCJVU0Etc3RhdGVzIjoic3VidW5pdHMiLCJjb3VudHJ5IG5hbWVzIjoiY291bnRyaWVzIn0sci5zcGhlcmVTVkc9e3R5cGU6IlNwaGVyZSJ9LHIuZmlsbExheWVycz17b2NlYW46MSxsYW5kOjEsbGFrZXM6MX0sci5saW5lTGF5ZXJzPXtzdWJ1bml0czoxLGNvdW50cmllczoxLGNvYXN0bGluZXM6MSxyaXZlcnM6MSxmcmFtZToxfSxyLmxheWVycz1bImJnIiwib2NlYW4iLCJsYW5kIiwibGFrZXMiLCJzdWJ1bml0cyIsImNvdW50cmllcyIsImNvYXN0bGluZXMiLCJyaXZlcnMiLCJsYXRheGlzIiwibG9uYXhpcyIsImZyYW1lIiwiYmFja3Bsb3QiLCJmcm9udHBsb3QiXSxyLmxheWVyc0ZvckNob3JvcGxldGg9WyJiZyIsIm9jZWFuIiwibGFuZCIsInN1YnVuaXRzIiwiY291bnRyaWVzIiwiY29hc3RsaW5lcyIsImxhdGF4aXMiLCJsb25heGlzIiwiZnJhbWUiLCJiYWNrcGxvdCIsInJpdmVycyIsImxha2VzIiwiZnJvbnRwbG90Il0sci5sYXllck5hbWVUb0FkamVjdGl2ZT17b2NlYW46Im9jZWFuIixsYW5kOiJsYW5kIixsYWtlczoibGFrZSIsc3VidW5pdHM6InN1YnVuaXQiLGNvdW50cmllczoiY291bnRyeSIsY29hc3RsaW5lczoiY29hc3RsaW5lIixyaXZlcnM6InJpdmVyIixmcmFtZToiZnJhbWUifX0se31dLDc5NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGE9dCgiLi4vLi4vcmVnaXN0cnkiKSxpPXQoIi4uLy4uL2xpYiIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLHM9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksbD10KCIuLi8uLi9jb21wb25lbnRzL2Z4IiksYz10KCIuLi9wbG90cyIpLHU9dCgiLi4vY2FydGVzaWFuL2F4ZXMiKSxoPXQoIi4uL2NhcnRlc2lhbi9hdXRvcmFuZ2UiKS5nZXRBdXRvUmFuZ2UsZj10KCIuLi8uLi9jb21wb25lbnRzL2RyYWdlbGVtZW50IikscD10KCIuLi9jYXJ0ZXNpYW4vc2VsZWN0IikucHJlcFNlbGVjdCxkPXQoIi4uL2NhcnRlc2lhbi9zZWxlY3QiKS5zZWxlY3RPbkNsaWNrLGc9dCgiLi96b29tIiksdj10KCIuL2NvbnN0YW50cyIpLG09dCgiLi4vLi4vbGliL2dlb19sb2NhdGlvbl91dGlscyIpLHk9dCgiLi4vLi4vbGliL3RvcG9qc29uX3V0aWxzIikseD10KCJ0b3BvanNvbi1jbGllbnQiKS5mZWF0dXJlO2Z1bmN0aW9uIGIodCl7dGhpcy5pZD10LmlkLHRoaXMuZ3JhcGhEaXY9dC5ncmFwaERpdix0aGlzLmNvbnRhaW5lcj10LmNvbnRhaW5lcix0aGlzLnRvcG9qc29uVVJMPXQudG9wb2pzb25VUkwsdGhpcy5pc1N0YXRpYz10LnN0YXRpY1Bsb3QsdGhpcy50b3BvanNvbk5hbWU9bnVsbCx0aGlzLnRvcG9qc29uPW51bGwsdGhpcy5wcm9qZWN0aW9uPW51bGwsdGhpcy5zY29wZT1udWxsLHRoaXMudmlld0luaXRpYWw9bnVsbCx0aGlzLmZpdFNjYWxlPW51bGwsdGhpcy5ib3VuZHM9bnVsbCx0aGlzLm1pZFB0PW51bGwsdGhpcy5oYXNDaG9yb3BsZXRoPSExLHRoaXMudHJhY2VIYXNoPXt9LHRoaXMubGF5ZXJzPXt9LHRoaXMuYmFzZVBhdGhzPXt9LHRoaXMuZGF0YVBhdGhzPXt9LHRoaXMuZGF0YVBvaW50cz17fSx0aGlzLmNsaXBEZWY9bnVsbCx0aGlzLmNsaXBSZWN0PW51bGwsdGhpcy5iZ1JlY3Q9bnVsbCx0aGlzLm1ha2VGcmFtZXdvcmsoKX10KCIuL3Byb2plY3Rpb25zIikobik7dmFyIF89Yi5wcm90b3R5cGU7ZnVuY3Rpb24gdyh0LGUpe3ZhciByPXYuY2xpcFBhZCxuPXRbMF0rcixhPXRbMV0tcixpPWVbMF0rcixvPWVbMV0tcjtuPjAmJmE8MCYmKGErPTM2MCk7dmFyIHM9KGEtbikvNDtyZXR1cm57dHlwZToiUG9seWdvbiIsY29vcmRpbmF0ZXM6W1tbbixpXSxbbixvXSxbbitzLG9dLFtuKzIqcyxvXSxbbiszKnMsb10sW2Esb10sW2EsaV0sW2EtcyxpXSxbYS0yKnMsaV0sW2EtMypzLGldLFtuLGldXV19fWUuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGIodCl9LF8ucGxvdD1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcyxhPWVbdGhpcy5pZF0saT1bXSxvPSExO2Zvcih2YXIgcyBpbiB2LmxheWVyTmFtZVRvQWRqZWN0aXZlKWlmKCJmcmFtZSIhPT1zJiZhWyJzaG93IitzXSl7bz0hMDticmVha31mb3IodmFyIGw9MDtsPHQubGVuZ3RoO2wrKylpZih0WzBdWzBdLnRyYWNlLmxvY2F0aW9ubW9kZSl7bz0hMDticmVha31pZihvKXt2YXIgYz15LmdldFRvcG9qc29uTmFtZShhKTtudWxsIT09bi50b3BvanNvbiYmYz09PW4udG9wb2pzb25OYW1lfHwobi50b3BvanNvbk5hbWU9Yyx2b2lkIDA9PT1QbG90bHlHZW9Bc3NldHMudG9wb2pzb25bbi50b3BvanNvbk5hbWVdJiZpLnB1c2gobi5mZXRjaFRvcG9qc29uKCkpKX1pPWkuY29uY2F0KG0uZmV0Y2hUcmFjZUdlb0RhdGEodCkpLHIucHVzaChuZXcgUHJvbWlzZShmdW5jdGlvbihyLGEpe1Byb21pc2UuYWxsKGkpLnRoZW4oZnVuY3Rpb24oKXtuLnRvcG9qc29uPVBsb3RseUdlb0Fzc2V0cy50b3BvanNvbltuLnRvcG9qc29uTmFtZV0sbi51cGRhdGUodCxlKSxyKCl9KS5jYXRjaChhKX0pKX0sXy5mZXRjaFRvcG9qc29uPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXkuZ2V0VG9wb2pzb25QYXRoKHQudG9wb2pzb25VUkwsdC50b3BvanNvbk5hbWUpO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyLGEpe24uanNvbihlLGZ1bmN0aW9uKG4saSl7aWYobilyZXR1cm4gNDA0PT09bi5zdGF0dXM/YShuZXcgRXJyb3IoWyJwbG90bHkuanMgY291bGQgbm90IGZpbmQgdG9wb2pzb24gZmlsZSBhdCIsZSwiLiIsIk1ha2Ugc3VyZSB0aGUgKnRvcG9qc29uVVJMKiBwbG90IGNvbmZpZyBvcHRpb24iLCJpcyBzZXQgcHJvcGVybHkuIl0uam9pbigiICIpKSk6YShuZXcgRXJyb3IoWyJ1bmV4cGVjdGVkIGVycm9yIHdoaWxlIGZldGNoaW5nIHRvcG9qc29uIGZpbGUgYXQiLGVdLmpvaW4oIiAiKSkpO1Bsb3RseUdlb0Fzc2V0cy50b3BvanNvblt0LnRvcG9qc29uTmFtZV09aSxyKCl9KX0pfSxfLnVwZGF0ZT1mdW5jdGlvbih0LGUpe3ZhciByPWVbdGhpcy5pZF07dGhpcy5oYXNDaG9yb3BsZXRoPSExO2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgYT10W25dLGk9YVswXS50cmFjZTsiY2hvcm9wbGV0aCI9PT1pLnR5cGUmJih0aGlzLmhhc0Nob3JvcGxldGg9ITApLCEwPT09aS52aXNpYmxlJiZpLl9sZW5ndGg+MCYmaS5fbW9kdWxlLmNhbGNHZW9KU09OKGEsZSl9aWYoIXRoaXMudXBkYXRlUHJvamVjdGlvbih0LGUpKXt0aGlzLnZpZXdJbml0aWFsJiZ0aGlzLnNjb3BlPT09ci5zY29wZXx8dGhpcy5zYXZlVmlld0luaXRpYWwociksdGhpcy5zY29wZT1yLnNjb3BlLHRoaXMudXBkYXRlQmFzZUxheWVycyhlLHIpLHRoaXMudXBkYXRlRGltcyhlLHIpLHRoaXMudXBkYXRlRngoZSxyKSxjLmdlbmVyYWxVcGRhdGVQZXJUcmFjZU1vZHVsZSh0aGlzLmdyYXBoRGl2LHRoaXMsdCxyKTt2YXIgbz10aGlzLmxheWVycy5mcm9udHBsb3Quc2VsZWN0KCIuc2NhdHRlcmxheWVyIik7dGhpcy5kYXRhUG9pbnRzLnBvaW50PW8uc2VsZWN0QWxsKCIucG9pbnQiKSx0aGlzLmRhdGFQb2ludHMudGV4dD1vLnNlbGVjdEFsbCgidGV4dCIpLHRoaXMuZGF0YVBhdGhzLmxpbmU9by5zZWxlY3RBbGwoIi5qcy1saW5lIik7dmFyIHM9dGhpcy5sYXllcnMuYmFja3Bsb3Quc2VsZWN0KCIuY2hvcm9wbGV0aGxheWVyIik7dGhpcy5kYXRhUGF0aHMuY2hvcm9wbGV0aD1zLnNlbGVjdEFsbCgicGF0aCIpLHRoaXMucmVuZGVyKCl9fSxfLnVwZGF0ZVByb2plY3Rpb249ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmdyYXBoRGl2LG89ZVt0aGlzLmlkXSxzPWUuX3NpemUsbD1vLmRvbWFpbixjPW8ucHJvamVjdGlvbix1PW8ubG9uYXhpcyxmPW8ubGF0YXhpcyxwPXUuX2F4LGQ9Zi5fYXgsZz10aGlzLnByb2plY3Rpb249ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQucHJvamVjdGlvbi50eXBlLHI9bi5nZW9bdi5wcm9qTmFtZXNbZV1dKCksYT10Ll9pc0NsaXBwZWQ/di5sb25heGlzU3BhbltlXS8yOm51bGwsaT1bImNlbnRlciIsInJvdGF0ZSIsInBhcmFsbGVscyIsImNsaXBFeHRlbnQiXSxvPWZ1bmN0aW9uKHQpe3JldHVybiB0P3I6W119LHM9MDtzPGkubGVuZ3RoO3MrKyl7dmFyIGw9aVtzXTsiZnVuY3Rpb24iIT10eXBlb2YgcltsXSYmKHJbbF09byl9ci5pc0xvbkxhdE92ZXJFZGdlcz1mdW5jdGlvbih0KXtpZihudWxsPT09cih0KSlyZXR1cm4hMDtpZihhKXt2YXIgZT1yLnJvdGF0ZSgpO3JldHVybiBuLmdlby5kaXN0YW5jZSh0LFstZVswXSwtZVsxXV0pPmEqTWF0aC5QSS8xODB9cmV0dXJuITF9LHIuZ2V0UGF0aD1mdW5jdGlvbigpe3JldHVybiBuLmdlby5wYXRoKCkucHJvamVjdGlvbihyKX0sci5nZXRCb3VuZHM9ZnVuY3Rpb24odCl7cmV0dXJuIHIuZ2V0UGF0aCgpLmJvdW5kcyh0KX0sci5maXRFeHRlbnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10WzFdWzBdLXRbMF1bMF0sYT10WzFdWzFdLXRbMF1bMV0saT1yLmNsaXBFeHRlbnQmJnIuY2xpcEV4dGVudCgpO3Iuc2NhbGUoMTUwKS50cmFuc2xhdGUoWzAsMF0pLGkmJnIuY2xpcEV4dGVudChudWxsKTt2YXIgbz1yLmdldEJvdW5kcyhlKSxzPU1hdGgubWluKG4vKG9bMV1bMF0tb1swXVswXSksYS8ob1sxXVsxXS1vWzBdWzFdKSksbD0rdFswXVswXSsobi1zKihvWzFdWzBdK29bMF1bMF0pKS8yLGM9K3RbMF1bMV0rKGEtcyoob1sxXVsxXStvWzBdWzFdKSkvMjtyZXR1cm4gaSYmci5jbGlwRXh0ZW50KGkpLHIuc2NhbGUoMTUwKnMpLnRyYW5zbGF0ZShbbCxjXSl9LHIucHJlY2lzaW9uKHYucHJlY2lzaW9uKSxhJiZyLmNsaXBBbmdsZShhLXYuY2xpcFBhZCk7cmV0dXJuIHJ9KG8pLG09W1tzLmwrcy53KmwueFswXSxzLnQrcy5oKigxLWwueVsxXSldLFtzLmwrcy53KmwueFsxXSxzLnQrcy5oKigxLWwueVswXSldXSx5PW8uY2VudGVyfHx7fSx4PWMucm90YXRpb258fHt9LGI9dS5yYW5nZXx8W10sXz1mLnJhbmdlfHxbXTtpZihvLmZpdGJvdW5kcyl7cC5fbGVuZ3RoPW1bMV1bMF0tbVswXVswXSxkLl9sZW5ndGg9bVsxXVsxXS1tWzBdWzFdLHAucmFuZ2U9aChyLHApLGQucmFuZ2U9aChyLGQpO3ZhciBrPShwLnJhbmdlWzBdK3AucmFuZ2VbMV0pLzIsVD0oZC5yYW5nZVswXStkLnJhbmdlWzFdKS8yO2lmKG8uX2lzU2NvcGVkKXk9e2xvbjprLGxhdDpUfTtlbHNlIGlmKG8uX2lzQ2xpcHBlZCl7eT17bG9uOmssbGF0OlR9LHg9e2xvbjprLGxhdDpULHJvbGw6eC5yb2xsfTt2YXIgTT1jLnR5cGUsQT12LmxvbmF4aXNTcGFuW01dLzJ8fDE4MCxTPXYubGF0YXhpc1NwYW5bTV0vMnx8MTgwO2I9W2stQSxrK0FdLF89W1QtUyxUK1NdfWVsc2UgeT17bG9uOmssbGF0OlR9LHg9e2xvbjprLGxhdDp4LmxhdCxyb2xsOngucm9sbH19Zy5jZW50ZXIoW3kubG9uLXgubG9uLHkubGF0LXgubGF0XSkucm90YXRlKFsteC5sb24sLXgubGF0LHgucm9sbF0pLnBhcmFsbGVscyhjLnBhcmFsbGVscyk7dmFyIEU9dyhiLF8pO2cuZml0RXh0ZW50KG0sRSk7dmFyIEw9dGhpcy5ib3VuZHM9Zy5nZXRCb3VuZHMoRSksQz10aGlzLmZpdFNjYWxlPWcuc2NhbGUoKSxQPWcudHJhbnNsYXRlKCk7aWYoIWlzRmluaXRlKExbMF1bMF0pfHwhaXNGaW5pdGUoTFswXVsxXSl8fCFpc0Zpbml0ZShMWzFdWzBdKXx8IWlzRmluaXRlKExbMV1bMV0pfHxpc05hTihQWzBdKXx8aXNOYU4oUFswXSkpe2Zvcih2YXIgTz1bImZpdGJvdW5kcyIsInByb2plY3Rpb24ucm90YXRpb24iLCJjZW50ZXIiLCJsb25heGlzLnJhbmdlIiwibGF0YXhpcy5yYW5nZSJdLHo9IkludmFsaWQgZ2VvIHNldHRpbmdzLCByZWxheW91dCdpbmcgdG8gZGVmYXVsdCB2aWV3LiIsST17fSxEPTA7RDxPLmxlbmd0aDtEKyspSVt0aGlzLmlkKyIuIitPW0RdXT1udWxsO3JldHVybiB0aGlzLnZpZXdJbml0aWFsPW51bGwsaS53YXJuKHopLHIuX3Byb21pc2VzLnB1c2goYS5jYWxsKCJyZWxheW91dCIscixJKSksen1pZihvLmZpdGJvdW5kcyl7dmFyIFI9Zy5nZXRCb3VuZHModyhwLnJhbmdlLGQucmFuZ2UpKSxGPU1hdGgubWluKChMWzFdWzBdLUxbMF1bMF0pLyhSWzFdWzBdLVJbMF1bMF0pLChMWzFdWzFdLUxbMF1bMV0pLyhSWzFdWzFdLVJbMF1bMV0pKTtpc0Zpbml0ZShGKT9nLnNjYWxlKEYqQyk6aS53YXJuKCJTb21ldGhpbmcgd2VudCB3cm9uZyBkdXJpbmciK3RoaXMuaWQrImZpdGJvdW5kcyBjb21wdXRhdGlvbnMuIil9ZWxzZSBnLnNjYWxlKGMuc2NhbGUqQyk7dmFyIEI9dGhpcy5taWRQdD1bKExbMF1bMF0rTFsxXVswXSkvMiwoTFswXVsxXStMWzFdWzFdKS8yXTtpZihnLnRyYW5zbGF0ZShbUFswXSsoQlswXS1QWzBdKSxQWzFdKyhCWzFdLVBbMV0pXSkuY2xpcEV4dGVudChMKSxvLl9pc0FsYmVyc1VzYSl7dmFyIE49ZyhbeS5sb24seS5sYXRdKSxqPWcudHJhbnNsYXRlKCk7Zy50cmFuc2xhdGUoW2pbMF0tKE5bMF0talswXSksalsxXS0oTlsxXS1qWzFdKV0pfX0sXy51cGRhdGVCYXNlTGF5ZXJzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcyxhPXIudG9wb2pzb24saT1yLmxheWVycyxsPXIuYmFzZVBhdGhzO2Z1bmN0aW9uIGModCl7cmV0dXJuImxvbmF4aXMiPT09dHx8ImxhdGF4aXMiPT09dH1mdW5jdGlvbiBoKHQpe3JldHVybiBCb29sZWFuKHYubGluZUxheWVyc1t0XSl9ZnVuY3Rpb24gZih0KXtyZXR1cm4gQm9vbGVhbih2LmZpbGxMYXllcnNbdF0pfXZhciBwPSh0aGlzLmhhc0Nob3JvcGxldGg/di5sYXllcnNGb3JDaG9yb3BsZXRoOnYubGF5ZXJzKS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIGgodCl8fGYodCk/ZVsic2hvdyIrdF06IWModCl8fGVbdF0uc2hvd2dyaWR9KSxkPXIuZnJhbWV3b3JrLnNlbGVjdEFsbCgiLmxheWVyIikuZGF0YShwLFN0cmluZyk7ZC5leGl0KCkuZWFjaChmdW5jdGlvbih0KXtkZWxldGUgaVt0XSxkZWxldGUgbFt0XSxuLnNlbGVjdCh0aGlzKS5yZW1vdmUoKX0pLGQuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsZnVuY3Rpb24odCl7cmV0dXJuImxheWVyICIrdH0pLmVhY2goZnVuY3Rpb24odCl7dmFyIGU9aVt0XT1uLnNlbGVjdCh0aGlzKTsiYmciPT09dD9yLmJnUmVjdD1lLmFwcGVuZCgicmVjdCIpLnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpOmModCk/bFt0XT1lLmFwcGVuZCgicGF0aCIpLnN0eWxlKCJmaWxsIiwibm9uZSIpOiJiYWNrcGxvdCI9PT10P2UuYXBwZW5kKCJnIikuY2xhc3NlZCgiY2hvcm9wbGV0aGxheWVyIiwhMCk6ImZyb250cGxvdCI9PT10P2UuYXBwZW5kKCJnIikuY2xhc3NlZCgic2NhdHRlcmxheWVyIiwhMCk6aCh0KT9sW3RdPWUuYXBwZW5kKCJwYXRoIikuc3R5bGUoImZpbGwiLCJub25lIikuc3R5bGUoInN0cm9rZS1taXRlcmxpbWl0IiwyKTpmKHQpJiYobFt0XT1lLmFwcGVuZCgicGF0aCIpLnN0eWxlKCJzdHJva2UiLCJub25lIikpfSksZC5vcmRlcigpLGQuZWFjaChmdW5jdGlvbihyKXt2YXIgbj1sW3JdLGk9di5sYXllck5hbWVUb0FkamVjdGl2ZVtyXTsiZnJhbWUiPT09cj9uLmRhdHVtKHYuc3BoZXJlU1ZHKTpoKHIpfHxmKHIpP24uZGF0dW0oeChhLGEub2JqZWN0c1tyXSkpOmMocikmJm4uZGF0dW0oZnVuY3Rpb24odCxlLHIpe3ZhciBuLGEsaSxvPWVbdF0scz12LnNjb3BlRGVmYXVsdHNbZS5zY29wZV07ImxvbmF4aXMiPT09dD8obj1zLmxvbmF4aXNSYW5nZSxhPXMubGF0YXhpc1JhbmdlLGk9ZnVuY3Rpb24odCxlKXtyZXR1cm5bdCxlXX0pOiJsYXRheGlzIj09PXQmJihuPXMubGF0YXhpc1JhbmdlLGE9cy5sb25heGlzUmFuZ2UsaT1mdW5jdGlvbih0LGUpe3JldHVybltlLHRdfSk7dmFyIGw9e3R5cGU6ImxpbmVhciIscmFuZ2U6W25bMF0sblsxXS0xZS02XSx0aWNrMDpvLnRpY2swLGR0aWNrOm8uZHRpY2t9O3Uuc2V0Q29udmVydChsLHIpO3ZhciBjPXUuY2FsY1RpY2tzKGwpO2UuaXNTY29wZWR8fCJsb25heGlzIiE9PXR8fGMucG9wKCk7Zm9yKHZhciBoPWMubGVuZ3RoLGY9bmV3IEFycmF5KGgpLHA9MDtwPGg7cCsrKWZvcih2YXIgZD1jW3BdLngsZz1mW3BdPVtdLG09YVswXTttPGFbMV0rMi41O20rPTIuNSlnLnB1c2goaShkLG0pKTtyZXR1cm57dHlwZToiTXVsdGlMaW5lU3RyaW5nIixjb29yZGluYXRlczpmfX0ocixlLHQpKS5jYWxsKG8uc3Ryb2tlLGVbcl0uZ3JpZGNvbG9yKS5jYWxsKHMuZGFzaExpbmUsIiIsZVtyXS5ncmlkd2lkdGgpLGgocik/bi5jYWxsKG8uc3Ryb2tlLGVbaSsiY29sb3IiXSkuY2FsbChzLmRhc2hMaW5lLCIiLGVbaSsid2lkdGgiXSk6ZihyKSYmbi5jYWxsKG8uZmlsbCxlW2krImNvbG9yIl0pfSl9LF8udXBkYXRlRGltcz1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuYm91bmRzLG49KGUuZnJhbWV3aWR0aHx8MCkvMixhPXJbMF1bMF0tbixpPXJbMF1bMV0tbixsPXJbMV1bMF0tYStuLGM9clsxXVsxXS1pK247cy5zZXRSZWN0KHRoaXMuY2xpcFJlY3QsYSxpLGwsYyksdGhpcy5iZ1JlY3QuY2FsbChzLnNldFJlY3QsYSxpLGwsYykuY2FsbChvLmZpbGwsZS5iZ2NvbG9yKSx0aGlzLnhheGlzLl9vZmZzZXQ9YSx0aGlzLnhheGlzLl9sZW5ndGg9bCx0aGlzLnlheGlzLl9vZmZzZXQ9aSx0aGlzLnlheGlzLl9sZW5ndGg9Y30sXy51cGRhdGVGeD1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMsaT1yLmdyYXBoRGl2LG89ci5iZ1JlY3Qscz10LmRyYWdtb2RlLGM9dC5jbGlja21vZGU7aWYoIXIuaXNTdGF0aWMpe3ZhciB1OyJzZWxlY3QiPT09cz91PWZ1bmN0aW9uKHQsZSl7KHQucmFuZ2U9e30pW3IuaWRdPVt2KFtlLnhtaW4sZS55bWluXSksdihbZS54bWF4LGUueW1heF0pXX06Imxhc3NvIj09PXMmJih1PWZ1bmN0aW9uKHQsZSxuKXsodC5sYXNzb1BvaW50cz17fSlbci5pZF09bi5maWx0ZXJlZC5tYXAodil9KTt2YXIgaD17ZWxlbWVudDpyLmJnUmVjdC5ub2RlKCksZ2Q6aSxwbG90aW5mbzp7aWQ6ci5pZCx4YXhpczpyLnhheGlzLHlheGlzOnIueWF4aXMsZmlsbFJhbmdlSXRlbXM6dX0seGF4ZXM6W3IueGF4aXNdLHlheGVzOltyLnlheGlzXSxzdWJwbG90OnIuaWQsY2xpY2tGbjpmdW5jdGlvbihlKXsyPT09ZSYmdC5fem9vbWxheWVyLnNlbGVjdEFsbCgiLnNlbGVjdC1vdXRsaW5lIikucmVtb3ZlKCl9fTsicGFuIj09PXM/KG8ubm9kZSgpLm9ubW91c2Vkb3duPW51bGwsby5jYWxsKGcocixlKSksby5vbigiZGJsY2xpY2suem9vbSIsZnVuY3Rpb24oKXt2YXIgdD1yLnZpZXdJbml0aWFsLGU9e307Zm9yKHZhciBuIGluIHQpZVtyLmlkKyIuIituXT10W25dO2EuY2FsbCgiX2d1aVJlbGF5b3V0IixpLGUpLGkuZW1pdCgicGxvdGx5X2RvdWJsZWNsaWNrIixudWxsKX0pLGkuX2NvbnRleHQuX3Njcm9sbFpvb20uZ2VvfHxvLm9uKCJ3aGVlbC56b29tIixudWxsKSk6InNlbGVjdCIhPT1zJiYibGFzc28iIT09c3x8KG8ub24oIi56b29tIixudWxsKSxoLnByZXBGbj1mdW5jdGlvbih0LGUscil7cCh0LGUscixoLHMpfSxmLmluaXQoaCkpLG8ub24oIm1vdXNlbW92ZSIsZnVuY3Rpb24oKXt2YXIgdD1yLnByb2plY3Rpb24uaW52ZXJ0KG4ubW91c2UodGhpcykpO2lmKCF0fHxpc05hTih0WzBdKXx8aXNOYU4odFsxXSkpcmV0dXJuIGYudW5ob3ZlcihpLG4uZXZlbnQpO3IueGF4aXMucDJjPWZ1bmN0aW9uKCl7cmV0dXJuIHRbMF19LHIueWF4aXMucDJjPWZ1bmN0aW9uKCl7cmV0dXJuIHRbMV19LGwuaG92ZXIoaSxuLmV2ZW50LHIuaWQpfSksby5vbigibW91c2VvdXQiLGZ1bmN0aW9uKCl7aS5fZHJhZ2dpbmd8fGYudW5ob3ZlcihpLG4uZXZlbnQpfSksby5vbigiY2xpY2siLGZ1bmN0aW9uKCl7InNlbGVjdCIhPT1zJiYibGFzc28iIT09cyYmKGMuaW5kZXhPZigic2VsZWN0Iik+LTEmJmQobi5ldmVudCxpLFtyLnhheGlzXSxbci55YXhpc10sci5pZCxoKSxjLmluZGV4T2YoImV2ZW50Iik+LTEmJmwuY2xpY2soaSxuLmV2ZW50KSl9KX1mdW5jdGlvbiB2KHQpe3JldHVybiByLnByb2plY3Rpb24uaW52ZXJ0KFt0WzBdK3IueGF4aXMuX29mZnNldCx0WzFdK3IueWF4aXMuX29mZnNldF0pfX0sXy5tYWtlRnJhbWV3b3JrPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXQuZ3JhcGhEaXYscj1lLl9mdWxsTGF5b3V0LGE9ImNsaXAiK3IuX3VpZCt0LmlkO3QuY2xpcERlZj1yLl9jbGlwcy5hcHBlbmQoImNsaXBQYXRoIikuYXR0cigiaWQiLGEpLHQuY2xpcFJlY3Q9dC5jbGlwRGVmLmFwcGVuZCgicmVjdCIpLHQuZnJhbWV3b3JrPW4uc2VsZWN0KHQuY29udGFpbmVyKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsImdlbyAiK3QuaWQpLmNhbGwocy5zZXRDbGlwVXJsLGEsZSksdC5wcm9qZWN0PWZ1bmN0aW9uKGUpe3ZhciByPXQucHJvamVjdGlvbihlKTtyZXR1cm4gcj9bclswXS10LnhheGlzLl9vZmZzZXQsclsxXS10LnlheGlzLl9vZmZzZXRdOltudWxsLG51bGxdfSx0LnhheGlzPXtfaWQ6IngiLGMycDpmdW5jdGlvbihlKXtyZXR1cm4gdC5wcm9qZWN0KGUpWzBdfX0sdC55YXhpcz17X2lkOiJ5IixjMnA6ZnVuY3Rpb24oZSl7cmV0dXJuIHQucHJvamVjdChlKVsxXX19LHQubW9ja0F4aXM9e3R5cGU6ImxpbmVhciIsc2hvd2V4cG9uZW50OiJhbGwiLGV4cG9uZW50Zm9ybWF0OiJCIn0sdS5zZXRDb252ZXJ0KHQubW9ja0F4aXMscil9LF8uc2F2ZVZpZXdJbml0aWFsPWZ1bmN0aW9uKHQpe3ZhciBlLHI9dC5jZW50ZXJ8fHt9LG49dC5wcm9qZWN0aW9uLGE9bi5yb3RhdGlvbnx8e307dGhpcy52aWV3SW5pdGlhbD17Zml0Ym91bmRzOnQuZml0Ym91bmRzLCJwcm9qZWN0aW9uLnNjYWxlIjpuLnNjYWxlfSxlPXQuX2lzU2NvcGVkP3siY2VudGVyLmxvbiI6ci5sb24sImNlbnRlci5sYXQiOnIubGF0fTp0Ll9pc0NsaXBwZWQ/eyJwcm9qZWN0aW9uLnJvdGF0aW9uLmxvbiI6YS5sb24sInByb2plY3Rpb24ucm90YXRpb24ubGF0IjphLmxhdH06eyJjZW50ZXIubG9uIjpyLmxvbiwiY2VudGVyLmxhdCI6ci5sYXQsInByb2plY3Rpb24ucm90YXRpb24ubG9uIjphLmxvbn0saS5leHRlbmRGbGF0KHRoaXMudmlld0luaXRpYWwsZSl9LF8ucmVuZGVyPWZ1bmN0aW9uKCl7dmFyIHQsZT10aGlzLnByb2plY3Rpb24scj1lLmdldFBhdGgoKTtmdW5jdGlvbiBuKHQpe3ZhciByPWUodC5sb25sYXQpO3JldHVybiByPyJ0cmFuc2xhdGUoIityWzBdKyIsIityWzFdKyIpIjpudWxsfWZ1bmN0aW9uIGEodCl7cmV0dXJuIGUuaXNMb25MYXRPdmVyRWRnZXModC5sb25sYXQpPyJub25lIjpudWxsfWZvcih0IGluIHRoaXMuYmFzZVBhdGhzKXRoaXMuYmFzZVBhdGhzW3RdLmF0dHIoImQiLHIpO2Zvcih0IGluIHRoaXMuZGF0YVBhdGhzKXRoaXMuZGF0YVBhdGhzW3RdLmF0dHIoImQiLGZ1bmN0aW9uKHQpe3JldHVybiByKHQuZ2VvanNvbil9KTtmb3IodCBpbiB0aGlzLmRhdGFQb2ludHMpdGhpcy5kYXRhUG9pbnRzW3RdLmF0dHIoImRpc3BsYXkiLGEpLmF0dHIoInRyYW5zZm9ybSIsbil9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjU5MiwiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudCI6NjEwLCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjYxMywiLi4vLi4vY29tcG9uZW50cy9meCI6NjMwLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vbGliL2dlb19sb2NhdGlvbl91dGlscyI6NzExLCIuLi8uLi9saWIvdG9wb2pzb25fdXRpbHMiOjc0NCwiLi4vLi4vcmVnaXN0cnkiOjg0NiwiLi4vY2FydGVzaWFuL2F1dG9yYW5nZSI6NzY0LCIuLi9jYXJ0ZXNpYW4vYXhlcyI6NzY1LCIuLi9jYXJ0ZXNpYW4vc2VsZWN0Ijo3ODIsIi4uL3Bsb3RzIjo4MjYsIi4vY29uc3RhbnRzIjo3OTMsIi4vcHJvamVjdGlvbnMiOjc5OCwiLi96b29tIjo3OTksZDM6MTY1LCJ0b3BvanNvbi1jbGllbnQiOjUzOX1dLDc5NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9nZXRfZGF0YSIpLmdldFN1YnBsb3RDYWxjRGF0YSxhPXQoIi4uLy4uL2xpYiIpLmNvdW50ZXJSZWdleCxpPXQoIi4vZ2VvIiksbz0iZ2VvIixzPWEobyksbD17fTtsW29dPXt2YWxUeXBlOiJzdWJwbG90aWQiLGRmbHQ6byxlZGl0VHlwZToiY2FsYyJ9LGUuZXhwb3J0cz17YXR0cjpvLG5hbWU6byxpZFJvb3Q6byxpZFJlZ2V4OnMsYXR0clJlZ2V4OnMsYXR0cmlidXRlczpsLGxheW91dEF0dHJpYnV0ZXM6dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLHN1cHBseUxheW91dERlZmF1bHRzOnQoIi4vbGF5b3V0X2RlZmF1bHRzIikscGxvdDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dC5fZnVsbExheW91dCxyPXQuY2FsY2RhdGEsYT1lLl9zdWJwbG90c1tvXSxzPTA7czxhLmxlbmd0aDtzKyspe3ZhciBsPWFbc10sYz1uKHIsbyxsKSx1PWVbbF0uX3N1YnBsb3Q7dXx8KHU9aSh7aWQ6bCxncmFwaERpdjp0LGNvbnRhaW5lcjplLl9nZW9sYXllci5ub2RlKCksdG9wb2pzb25VUkw6dC5fY29udGV4dC50b3BvanNvblVSTCxzdGF0aWNQbG90OnQuX2NvbnRleHQuc3RhdGljUGxvdH0pLGVbbF0uX3N1YnBsb3Q9dSksdS5wbG90KGMsZSx0Ll9wcm9taXNlcyl9fSx1cGRhdGVGeDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dC5fZnVsbExheW91dCxyPWUuX3N1YnBsb3RzW29dLG49MDtuPHIubGVuZ3RoO24rKyl7dmFyIGE9ZVtyW25dXTthLl9zdWJwbG90LnVwZGF0ZUZ4KGUsYSl9fSxjbGVhbjpmdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGE9bi5fc3VicGxvdHNbb118fFtdLGk9MDtpPGEubGVuZ3RoO2krKyl7dmFyIHM9YVtpXSxsPW5bc10uX3N1YnBsb3Q7IWVbc10mJmwmJihsLmZyYW1ld29yay5yZW1vdmUoKSxsLmNsaXBEZWYucmVtb3ZlKCkpfX19fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi8uLi9wbG90cy9nZXRfZGF0YSI6ODAwLCIuL2dlbyI6Nzk0LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo3OTYsIi4vbGF5b3V0X2RlZmF1bHRzIjo3OTd9XSw3OTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIiksYT10KCIuLi9kb21haW4iKS5hdHRyaWJ1dGVzLGk9dCgiLi9jb25zdGFudHMiKSxvPXQoIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbCxzPXtyYW5nZTp7dmFsVHlwZToiaW5mb19hcnJheSIsaXRlbXM6W3t2YWxUeXBlOiJudW1iZXIifSx7dmFsVHlwZToibnVtYmVyIn1dfSxzaG93Z3JpZDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sdGljazA6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDowfSxkdGljazp7dmFsVHlwZToibnVtYmVyIn0sZ3JpZGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpuLmxpZ2h0TGluZX0sZ3JpZHdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MX19OyhlLmV4cG9ydHM9byh7ZG9tYWluOmEoe25hbWU6ImdlbyJ9LHt9KSxmaXRib3VuZHM6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbITEsImxvY2F0aW9ucyIsImdlb2pzb24iXSxkZmx0OiExLGVkaXRUeXBlOiJwbG90In0scmVzb2x1dGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsxMTAsNTBdLGRmbHQ6MTEwLGNvZXJjZU51bWJlcjohMH0sc2NvcGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpPYmplY3Qua2V5cyhpLnNjb3BlRGVmYXVsdHMpLGRmbHQ6IndvcmxkIn0scHJvamVjdGlvbjp7dHlwZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOk9iamVjdC5rZXlzKGkucHJvak5hbWVzKX0scm90YXRpb246e2xvbjp7dmFsVHlwZToibnVtYmVyIn0sbGF0Ont2YWxUeXBlOiJudW1iZXIifSxyb2xsOnt2YWxUeXBlOiJudW1iZXIifX0scGFyYWxsZWxzOnt2YWxUeXBlOiJpbmZvX2FycmF5IixpdGVtczpbe3ZhbFR5cGU6Im51bWJlciJ9LHt2YWxUeXBlOiJudW1iZXIifV19LHNjYWxlOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MX19LGNlbnRlcjp7bG9uOnt2YWxUeXBlOiJudW1iZXIifSxsYXQ6e3ZhbFR5cGU6Im51bWJlciJ9fSx2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfSxzaG93Y29hc3RsaW5lczp7dmFsVHlwZToiYm9vbGVhbiJ9LGNvYXN0bGluZWNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpuLmRlZmF1bHRMaW5lfSxjb2FzdGxpbmV3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjF9LHNob3dsYW5kOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxsYW5kY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmkubGFuZENvbG9yfSxzaG93b2NlYW46e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LG9jZWFuY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0Omkud2F0ZXJDb2xvcn0sc2hvd2xha2VzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxsYWtlY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0Omkud2F0ZXJDb2xvcn0sc2hvd3JpdmVyczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0scml2ZXJjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6aS53YXRlckNvbG9yfSxyaXZlcndpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MX0sc2hvd2NvdW50cmllczp7dmFsVHlwZToiYm9vbGVhbiJ9LGNvdW50cnljb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6bi5kZWZhdWx0TGluZX0sY291bnRyeXdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MX0sc2hvd3N1YnVuaXRzOnt2YWxUeXBlOiJib29sZWFuIn0sc3VidW5pdGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpuLmRlZmF1bHRMaW5lfSxzdWJ1bml0d2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxfSxzaG93ZnJhbWU6e3ZhbFR5cGU6ImJvb2xlYW4ifSxmcmFtZWNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpuLmRlZmF1bHRMaW5lfSxmcmFtZXdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MX0sYmdjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6bi5iYWNrZ3JvdW5kfSxsb25heGlzOnMsbGF0YXhpczpzfSwicGxvdCIsImZyb20tcm9vdCIpKS51aXJldmlzaW9uPXt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJub25lIn19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIjo1OTEsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjc0OCwiLi4vZG9tYWluIjo3OTAsIi4vY29uc3RhbnRzIjo3OTN9XSw3OTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi9zdWJwbG90X2RlZmF1bHRzIiksaT10KCIuLi9nZXRfZGF0YSIpLmdldFN1YnBsb3REYXRhLG89dCgiLi9jb25zdGFudHMiKSxzPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxsPW8uYXhlc05hbWVzO2Z1bmN0aW9uIGModCxlLHIsYSl7dmFyIHM9aShhLmZ1bGxEYXRhLCJnZW8iLGEuaWQpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5fZXhwYW5kZWRJbmRleH0pLGM9cigicmVzb2x1dGlvbiIpLHU9cigic2NvcGUiKSxoPW8uc2NvcGVEZWZhdWx0c1t1XSxmPXIoInByb2plY3Rpb24udHlwZSIsaC5wcm9qVHlwZSkscD1lLl9pc0FsYmVyc1VzYT0iYWxiZXJzIHVzYSI9PT1mO3AmJih1PWUuc2NvcGU9InVzYSIpO3ZhciBkPWUuX2lzU2NvcGVkPSJ3b3JsZCIhPT11LGc9ZS5faXNDb25pYz0tMSE9PWYuaW5kZXhPZigiY29uaWMiKSx2PWUuX2lzQ2xpcHBlZD0hIW8ubG9uYXhpc1NwYW5bZl07aWYoITE9PT10LnZpc2libGUpe3ZhciBtPW4uZXh0ZW5kRGVlcCh7fSxlLl90ZW1wbGF0ZSk7bS5zaG93Y29hc3RsaW5lcz0hMSxtLnNob3djb3VudHJpZXM9ITEsbS5zaG93ZnJhbWU9ITEsbS5zaG93bGFrZXM9ITEsbS5zaG93bGFuZD0hMSxtLnNob3dvY2Vhbj0hMSxtLnNob3dyaXZlcnM9ITEsbS5zaG93c3VidW5pdHM9ITEsbS5sb25heGlzJiYobS5sb25heGlzLnNob3dncmlkPSExKSxtLmxhdGF4aXMmJihtLmxhdGF4aXMuc2hvd2dyaWQ9ITEpLGUuX3RlbXBsYXRlPW19Zm9yKHZhciB5PXIoInZpc2libGUiKSx4PTA7eDxsLmxlbmd0aDt4Kyspe3ZhciBiLF89bFt4XSx3PVszMCwxMF1beF07aWYoZCliPWhbXysiUmFuZ2UiXTtlbHNle3ZhciBrPW9bXysiU3BhbiJdLFQ9KGtbZl18fGtbIioiXSkvMixNPXIoInByb2plY3Rpb24ucm90YXRpb24uIitfLnN1YnN0cigwLDMpLGgucHJvalJvdGF0ZVt4XSk7Yj1bTS1ULE0rVF19dmFyIEE9cihfKyIucmFuZ2UiLGIpO3IoXysiLnRpY2swIikscihfKyIuZHRpY2siLHcpLHIoXysiLnNob3dncmlkIiwhIXkmJnZvaWQgMCkmJihyKF8rIi5ncmlkY29sb3IiKSxyKF8rIi5ncmlkd2lkdGgiKSksZVtfXS5fYXg9e3R5cGU6ImxpbmVhciIsX2lkOl8uc2xpY2UoMCwzKSxfdHJhY2VJbmRpY2VzOnMsc2V0U2NhbGU6bi5pZGVudGl0eSxjMmw6bi5pZGVudGl0eSxyMmw6bi5pZGVudGl0eSxhdXRvcmFuZ2U6ITAscmFuZ2U6QS5zbGljZSgpLF9tOjEsX2lucHV0Ont9fX12YXIgUz1lLmxvbmF4aXMucmFuZ2UsRT1lLmxhdGF4aXMucmFuZ2UsTD1TWzBdLEM9U1sxXTtMPjAmJkM8MCYmKEMrPTM2MCk7dmFyIFAsTyx6LEk9KEwrQykvMjtpZighcCl7dmFyIEQ9ZD9oLnByb2pSb3RhdGU6W0ksMCwwXTtQPXIoInByb2plY3Rpb24ucm90YXRpb24ubG9uIixEWzBdKSxyKCJwcm9qZWN0aW9uLnJvdGF0aW9uLmxhdCIsRFsxXSkscigicHJvamVjdGlvbi5yb3RhdGlvbi5yb2xsIixEWzJdKSxyKCJzaG93Y29hc3RsaW5lcyIsIWQmJnkpJiYocigiY29hc3RsaW5lY29sb3IiKSxyKCJjb2FzdGxpbmV3aWR0aCIpKSxyKCJzaG93b2NlYW4iLCEheSYmdm9pZCAwKSYmcigib2NlYW5jb2xvciIpfShwPyhPPS05Ni42LHo9MzguNyk6KE89ZD9JOlAsej0oRVswXStFWzFdKS8yKSxyKCJjZW50ZXIubG9uIixPKSxyKCJjZW50ZXIubGF0Iix6KSxnKSYmcigicHJvamVjdGlvbi5wYXJhbGxlbHMiLGgucHJvalBhcmFsbGVsc3x8WzAsNjBdKTtyKCJwcm9qZWN0aW9uLnNjYWxlIikscigic2hvd2xhbmQiLCEheSYmdm9pZCAwKSYmcigibGFuZGNvbG9yIikscigic2hvd2xha2VzIiwhIXkmJnZvaWQgMCkmJnIoImxha2Vjb2xvciIpLHIoInNob3dyaXZlcnMiLCEheSYmdm9pZCAwKSYmKHIoInJpdmVyY29sb3IiKSxyKCJyaXZlcndpZHRoIikpLHIoInNob3djb3VudHJpZXMiLGQmJiJ1c2EiIT09dSYmeSkmJihyKCJjb3VudHJ5Y29sb3IiKSxyKCJjb3VudHJ5d2lkdGgiKSksKCJ1c2EiPT09dXx8Im5vcnRoIGFtZXJpY2EiPT09dSYmNTA9PT1jKSYmKHIoInNob3dzdWJ1bml0cyIseSkscigic3VidW5pdGNvbG9yIikscigic3VidW5pdHdpZHRoIikpLGR8fHIoInNob3dmcmFtZSIseSkmJihyKCJmcmFtZWNvbG9yIikscigiZnJhbWV3aWR0aCIpKSxyKCJiZ2NvbG9yIikscigiZml0Ym91bmRzIikmJihkZWxldGUgZS5wcm9qZWN0aW9uLnNjYWxlLGQ/KGRlbGV0ZSBlLmNlbnRlci5sb24sZGVsZXRlIGUuY2VudGVyLmxhdCk6dj8oZGVsZXRlIGUuY2VudGVyLmxvbixkZWxldGUgZS5jZW50ZXIubGF0LGRlbGV0ZSBlLnByb2plY3Rpb24ucm90YXRpb24ubG9uLGRlbGV0ZSBlLnByb2plY3Rpb24ucm90YXRpb24ubGF0LGRlbGV0ZSBlLmxvbmF4aXMucmFuZ2UsZGVsZXRlIGUubGF0YXhpcy5yYW5nZSk6KGRlbGV0ZSBlLmNlbnRlci5sb24sZGVsZXRlIGUuY2VudGVyLmxhdCxkZWxldGUgZS5wcm9qZWN0aW9uLnJvdGF0aW9uLmxvbikpfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7YSh0LGUscix7dHlwZToiZ2VvIixhdHRyaWJ1dGVzOnMsaGFuZGxlRGVmYXVsdHM6YyxmdWxsRGF0YTpyLHBhcnRpdGlvbjoieSJ9KX19LHsiLi4vLi4vbGliIjo3MTcsIi4uL2dldF9kYXRhIjo4MDAsIi4uL3N1YnBsb3RfZGVmYXVsdHMiOjg0MCwiLi9jb25zdGFudHMiOjc5MywiLi9sYXlvdXRfYXR0cmlidXRlcyI6Nzk2fV0sNzk4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQsZSl7cmV0dXJue3R5cGU6IkZlYXR1cmUiLGlkOnQuaWQscHJvcGVydGllczp0LnByb3BlcnRpZXMsZ2VvbWV0cnk6cih0Lmdlb21ldHJ5LGUpfX1mdW5jdGlvbiByKGUsbil7aWYoIWUpcmV0dXJuIG51bGw7aWYoIkdlb21ldHJ5Q29sbGVjdGlvbiI9PT1lLnR5cGUpcmV0dXJue3R5cGU6Ikdlb21ldHJ5Q29sbGVjdGlvbiIsZ2VvbWV0cmllczpvYmplY3QuZ2VvbWV0cmllcy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHIodCxuKX0pfTtpZighYy5oYXNPd25Qcm9wZXJ0eShlLnR5cGUpKXJldHVybiBudWxsO3ZhciBhPWNbZS50eXBlXTtyZXR1cm4gdC5nZW8uc3RyZWFtKGUsbihhKSksYS5yZXN1bHQoKX10Lmdlby5wcm9qZWN0PWZ1bmN0aW9uKHQsZSl7dmFyIGE9ZS5zdHJlYW07aWYoIWEpdGhyb3cgbmV3IEVycm9yKCJub3QgeWV0IHN1cHBvcnRlZCIpO3JldHVybih0JiZuLmhhc093blByb3BlcnR5KHQudHlwZSk/blt0LnR5cGVdOnIpKHQsYSl9O3ZhciBuPXtGZWF0dXJlOmUsRmVhdHVyZUNvbGxlY3Rpb246ZnVuY3Rpb24odCxyKXtyZXR1cm57dHlwZToiRmVhdHVyZUNvbGxlY3Rpb24iLGZlYXR1cmVzOnQuZmVhdHVyZXMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBlKHQscil9KX19fSxhPVtdLGk9W10sbz17cG9pbnQ6ZnVuY3Rpb24odCxlKXthLnB1c2goW3QsZV0pfSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgdD1hLmxlbmd0aD9hLmxlbmd0aDwyP3t0eXBlOiJQb2ludCIsY29vcmRpbmF0ZXM6YVswXX06e3R5cGU6Ik11bHRpUG9pbnQiLGNvb3JkaW5hdGVzOmF9Om51bGw7cmV0dXJuIGE9W10sdH19LHM9e2xpbmVTdGFydDp1LHBvaW50OmZ1bmN0aW9uKHQsZSl7YS5wdXNoKFt0LGVdKX0sbGluZUVuZDpmdW5jdGlvbigpe2EubGVuZ3RoJiYoaS5wdXNoKGEpLGE9W10pfSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgdD1pLmxlbmd0aD9pLmxlbmd0aDwyP3t0eXBlOiJMaW5lU3RyaW5nIixjb29yZGluYXRlczppWzBdfTp7dHlwZToiTXVsdGlMaW5lU3RyaW5nIixjb29yZGluYXRlczppfTpudWxsO3JldHVybiBpPVtdLHR9fSxsPXtwb2x5Z29uU3RhcnQ6dSxsaW5lU3RhcnQ6dSxwb2ludDpmdW5jdGlvbih0LGUpe2EucHVzaChbdCxlXSl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt2YXIgdD1hLmxlbmd0aDtpZih0KXtkb3thLnB1c2goYVswXS5zbGljZSgpKX13aGlsZSgrK3Q8NCk7aS5wdXNoKGEpLGE9W119fSxwb2x5Z29uRW5kOnUscmVzdWx0OmZ1bmN0aW9uKCl7aWYoIWkubGVuZ3RoKXJldHVybiBudWxsO3ZhciB0PVtdLGU9W107cmV0dXJuIGkuZm9yRWFjaChmdW5jdGlvbihyKXshZnVuY3Rpb24odCl7aWYoKGU9dC5sZW5ndGgpPDQpcmV0dXJuITE7Zm9yKHZhciBlLHI9MCxuPXRbZS0xXVsxXSp0WzBdWzBdLXRbZS0xXVswXSp0WzBdWzFdOysrcjxlOyluKz10W3ItMV1bMV0qdFtyXVswXS10W3ItMV1bMF0qdFtyXVsxXTtyZXR1cm4gbjw9MH0ocik/ZS5wdXNoKHIpOnQucHVzaChbcl0pfSksZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciByPWVbMF07dC5zb21lKGZ1bmN0aW9uKHQpe2lmKGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPWVbMF0sbj1lWzFdLGE9ITEsaT0wLG89dC5sZW5ndGgscz1vLTE7aTxvO3M9aSsrKXt2YXIgbD10W2ldLGM9bFswXSx1PWxbMV0saD10W3NdLGY9aFswXSxwPWhbMV07dT5uXnA+biYmcjwoZi1jKSoobi11KS8ocC11KStjJiYoYT0hYSl9cmV0dXJuIGF9KHRbMF0scikpcmV0dXJuIHQucHVzaChlKSwhMH0pfHx0LnB1c2goW2VdKX0pLGk9W10sdC5sZW5ndGg/dC5sZW5ndGg+MT97dHlwZToiTXVsdGlQb2x5Z29uIixjb29yZGluYXRlczp0fTp7dHlwZToiUG9seWdvbiIsY29vcmRpbmF0ZXM6dFswXX06bnVsbH19LGM9e1BvaW50Om8sTXVsdGlQb2ludDpvLExpbmVTdHJpbmc6cyxNdWx0aUxpbmVTdHJpbmc6cyxQb2x5Z29uOmwsTXVsdGlQb2x5Z29uOmwsU3BoZXJlOmx9O2Z1bmN0aW9uIHUoKXt9dmFyIGg9MWUtNixmPWgqaCxwPU1hdGguUEksZD1wLzIsZz0oTWF0aC5zcXJ0KHApLHAvMTgwKSx2PTE4MC9wO2Z1bmN0aW9uIG0odCl7cmV0dXJuIHQ+MT9kOnQ8LTE/LWQ6TWF0aC5hc2luKHQpfWZ1bmN0aW9uIHkodCl7cmV0dXJuIHQ+MT8wOnQ8LTE/cDpNYXRoLmFjb3ModCl9dmFyIHg9dC5nZW8ucHJvamVjdGlvbixiPXQuZ2VvLnByb2plY3Rpb25NdXRhdG9yO2Z1bmN0aW9uIF8odCxlKXt2YXIgcj0oMitkKSpNYXRoLnNpbihlKTtlLz0yO2Zvcih2YXIgbj0wLGE9MS8wO248MTAmJk1hdGguYWJzKGEpPmg7bisrKXt2YXIgaT1NYXRoLmNvcyhlKTtlLT1hPShlK01hdGguc2luKGUpKihpKzIpLXIpLygyKmkqKDEraSkpfXJldHVyblsyL01hdGguc3FydChwKig0K3ApKSp0KigxK01hdGguY29zKGUpKSwyKk1hdGguc3FydChwLyg0K3ApKSpNYXRoLnNpbihlKV19dC5nZW8uaW50ZXJydXB0PWZ1bmN0aW9uKGUpe3ZhciByLG49W1tbWy1wLDBdLFswLGRdLFtwLDBdXV0sW1tbLXAsMF0sWzAsLWRdLFtwLDBdXV1dO2Z1bmN0aW9uIGEodCxyKXtmb3IodmFyIGE9cjwwPy0xOjEsaT1uWysocjwwKV0sbz0wLHM9aS5sZW5ndGgtMTtvPHMmJnQ+aVtvXVsyXVswXTsrK28pO3ZhciBsPWUodC1pW29dWzFdWzBdLHIpO3JldHVybiBsWzBdKz1lKGlbb11bMV1bMF0sYSpyPmEqaVtvXVswXVsxXT9pW29dWzBdWzFdOnIpWzBdLGx9ZS5pbnZlcnQmJihhLmludmVydD1mdW5jdGlvbih0LGkpe2Zvcih2YXIgbz1yWysoaTwwKV0scz1uWysoaTwwKV0sYz0wLHU9by5sZW5ndGg7Yzx1OysrYyl7dmFyIGg9b1tjXTtpZihoWzBdWzBdPD10JiZ0PGhbMV1bMF0mJmhbMF1bMV08PWkmJmk8aFsxXVsxXSl7dmFyIGY9ZS5pbnZlcnQodC1lKHNbY11bMV1bMF0sMClbMF0saSk7cmV0dXJuIGZbMF0rPXNbY11bMV1bMF0sbChhKGZbMF0sZlsxXSksW3QsaV0pP2Y6bnVsbH19fSk7dmFyIGk9dC5nZW8ucHJvamVjdGlvbihhKSxvPWkuc3RyZWFtO2Z1bmN0aW9uIHModCxlKXtmb3IodmFyIHIsbixhLGk9LTEsbz10Lmxlbmd0aCxzPXRbMF0sbD1bXTsrK2k8bzspe249KChyPXRbaV0pWzBdLXNbMF0pL2UsYT0oclsxXS1zWzFdKS9lO2Zvcih2YXIgYz0wO2M8ZTsrK2MpbC5wdXNoKFtzWzBdK2MqbixzWzFdK2MqYV0pO3M9cn1yZXR1cm4gbC5wdXNoKHIpLGx9ZnVuY3Rpb24gbCh0LGUpe3JldHVybiBNYXRoLmFicyh0WzBdLWVbMF0pPGgmJk1hdGguYWJzKHRbMV0tZVsxXSk8aH1yZXR1cm4gaS5zdHJlYW09ZnVuY3Rpb24oZSl7dmFyIHI9aS5yb3RhdGUoKSxhPW8oZSksbD0oaS5yb3RhdGUoWzAsMF0pLG8oZSkpO3JldHVybiBpLnJvdGF0ZShyKSxhLnNwaGVyZT1mdW5jdGlvbigpe3QuZ2VvLnN0cmVhbShmdW5jdGlvbigpe2Zvcih2YXIgZT0xZS02LHI9W10sYT0wLGk9blswXS5sZW5ndGg7YTxpOysrYSl7dmFyIG89blswXVthXSxsPTE4MCpvWzBdWzBdL3AsYz0xODAqb1swXVsxXS9wLHU9MTgwKm9bMV1bMV0vcCxoPTE4MCpvWzJdWzBdL3AsZj0xODAqb1syXVsxXS9wO3IucHVzaChzKFtbbCtlLGMrZV0sW2wrZSx1LWVdLFtoLWUsdS1lXSxbaC1lLGYrZV1dLDMwKSl9Zm9yKHZhciBhPW5bMV0ubGVuZ3RoLTE7YT49MDstLWEpe3ZhciBvPW5bMV1bYV0sbD0xODAqb1swXVswXS9wLGM9MTgwKm9bMF1bMV0vcCx1PTE4MCpvWzFdWzFdL3AsaD0xODAqb1syXVswXS9wLGY9MTgwKm9bMl1bMV0vcDtyLnB1c2gocyhbW2gtZSxmLWVdLFtoLWUsdStlXSxbbCtlLHUrZV0sW2wrZSxjLWVdXSwzMCkpfXJldHVybnt0eXBlOiJQb2x5Z29uIixjb29yZGluYXRlczpbdC5tZXJnZShyKV19fSgpLGwpfSxhfSxpLmxvYmVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXQubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm1hcChmdW5jdGlvbih0KXtyZXR1cm5bW3RbMF1bMF0qcC8xODAsdFswXVsxXSpwLzE4MF0sW3RbMV1bMF0qcC8xODAsdFsxXVsxXSpwLzE4MF0sW3RbMl1bMF0qcC8xODAsdFsyXVsxXSpwLzE4MF1dfSl9KSxyPW4ubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm1hcChmdW5jdGlvbih0KXt2YXIgcixuPWUodFswXVswXSx0WzBdWzFdKVswXSxhPWUodFsyXVswXSx0WzJdWzFdKVswXSxpPWUodFsxXVswXSx0WzBdWzFdKVsxXSxvPWUodFsxXVswXSx0WzFdWzFdKVsxXTtyZXR1cm4gaT5vJiYocj1pLGk9byxvPXIpLFtbbixpXSxbYSxvXV19KX0pLGkpOm4ubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm1hcChmdW5jdGlvbih0KXtyZXR1cm5bWzE4MCp0WzBdWzBdL3AsMTgwKnRbMF1bMV0vcF0sWzE4MCp0WzFdWzBdL3AsMTgwKnRbMV1bMV0vcF0sWzE4MCp0WzJdWzBdL3AsMTgwKnRbMl1bMV0vcF1dfSl9KX0saX0sXy5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj0uNSplKk1hdGguc3FydCgoNCtwKS9wKSxuPW0ociksYT1NYXRoLmNvcyhuKTtyZXR1cm5bdC8oMi9NYXRoLnNxcnQocCooNCtwKSkqKDErYSkpLG0oKG4rciooYSsyKSkvKDIrZCkpXX0sKHQuZ2VvLmVja2VydDQ9ZnVuY3Rpb24oKXtyZXR1cm4geChfKX0pLnJhdz1fO3ZhciB3PXQuZ2VvLmF6aW11dGhhbEVxdWFsQXJlYS5yYXc7ZnVuY3Rpb24gayh0LGUpe2lmKGFyZ3VtZW50cy5sZW5ndGg8MiYmKGU9dCksMT09PWUpcmV0dXJuIHc7aWYoZT09PTEvMClyZXR1cm4gVDtmdW5jdGlvbiByKHIsbil7dmFyIGE9dyhyL2Usbik7cmV0dXJuIGFbMF0qPXQsYX1yZXR1cm4gci5pbnZlcnQ9ZnVuY3Rpb24ocixuKXt2YXIgYT13LmludmVydChyL3Qsbik7cmV0dXJuIGFbMF0qPWUsYX0scn1mdW5jdGlvbiBUKHQsZSl7cmV0dXJuW3QqTWF0aC5jb3MoZSkvTWF0aC5jb3MoZS89MiksMipNYXRoLnNpbihlKV19ZnVuY3Rpb24gTSh0LGUpe3JldHVyblszKnQvKDIqcCkqTWF0aC5zcXJ0KHAqcC8zLWUqZSksZV19ZnVuY3Rpb24gQSh0LGUpe3JldHVyblt0LDEuMjUqTWF0aC5sb2coTWF0aC50YW4ocC80Ky40KmUpKV19ZnVuY3Rpb24gUyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHIsbj10Kk1hdGguc2luKGUpLGE9MzA7ZG97ZS09cj0oZStNYXRoLnNpbihlKS1uKS8oMStNYXRoLmNvcyhlKSl9d2hpbGUoTWF0aC5hYnMocik+aCYmLS1hPjApO3JldHVybiBlLzJ9fVQuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9MiptKGUvMik7cmV0dXJuW3QqTWF0aC5jb3Moci8yKS9NYXRoLmNvcyhyKSxyXX0sKHQuZ2VvLmhhbW1lcj1mdW5jdGlvbigpe3ZhciB0PTIsZT1iKGspLHI9ZSh0KTtyZXR1cm4gci5jb2VmZmljaWVudD1mdW5jdGlvbihyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9lKHQ9K3IpOnR9LHJ9KS5yYXc9ayxNLmludmVydD1mdW5jdGlvbih0LGUpe3JldHVyblsyLzMqcCp0L01hdGguc3FydChwKnAvMy1lKmUpLGVdfSwodC5nZW8ua2F2cmF5c2tpeTc9ZnVuY3Rpb24oKXtyZXR1cm4geChNKX0pLnJhdz1NLEEuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuW3QsMi41Kk1hdGguYXRhbihNYXRoLmV4cCguOCplKSktLjYyNSpwXX0sKHQuZ2VvLm1pbGxlcj1mdW5jdGlvbigpe3JldHVybiB4KEEpfSkucmF3PUEsUyhwKTt2YXIgRT1mdW5jdGlvbih0LGUscil7dmFyIG49UyhyKTtmdW5jdGlvbiBhKHIsYSl7cmV0dXJuW3QqcipNYXRoLmNvcyhhPW4oYSkpLGUqTWF0aC5zaW4oYSldfXJldHVybiBhLmludmVydD1mdW5jdGlvbihuLGEpe3ZhciBpPW0oYS9lKTtyZXR1cm5bbi8odCpNYXRoLmNvcyhpKSksbSgoMippK01hdGguc2luKDIqaSkpL3IpXX0sYX0oTWF0aC5TUVJUMi9kLE1hdGguU1FSVDIscCk7ZnVuY3Rpb24gTCh0LGUpe3ZhciByPWUqZSxuPXIqcjtyZXR1cm5bdCooLjg3MDctLjEzMTk3OSpyK24qKG4qKC4wMDM5NzEqci0uMDAxNTI5Km4pLS4wMTM3OTEpKSxlKigxLjAwNzIyNityKiguMDE1MDg1K24qKC4wMjg4NzQqci0uMDQ0NDc1LS4wMDU5MTYqbikpKV19KHQuZ2VvLm1vbGx3ZWlkZT1mdW5jdGlvbigpe3JldHVybiB4KEUpfSkucmF3PUUsTC5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcixuPWUsYT0yNTtkb3t2YXIgaT1uKm4sbz1pKmk7bi09cj0obiooMS4wMDcyMjYraSooLjAxNTA4NStvKiguMDI4ODc0KmktLjA0NDQ3NS0uMDA1OTE2Km8pKSktZSkvKDEuMDA3MjI2K2kqKC4wNDUyNTUrbyooLjI1OTg2NippLS4zMTEzMjUtLjAwNTkxNioxMSpvKSkpfXdoaWxlKE1hdGguYWJzKHIpPmgmJi0tYT4wKTtyZXR1cm5bdC8oLjg3MDcrKGk9bipuKSooaSooaSppKmkqKC4wMDM5NzEtLjAwMTUyOSppKS0uMDEzNzkxKS0uMTMxOTc5KSksbl19LCh0Lmdlby5uYXR1cmFsRWFydGg9ZnVuY3Rpb24oKXtyZXR1cm4geChMKX0pLnJhdz1MO3ZhciBDPVtbLjk5ODYsLS4wNjJdLFsxLDBdLFsuOTk4NiwuMDYyXSxbLjk5NTQsLjEyNF0sWy45OSwuMTg2XSxbLjk4MjIsLjI0OF0sWy45NzMsLjMxXSxbLjk2LC4zNzJdLFsuOTQyNywuNDM0XSxbLjkyMTYsLjQ5NThdLFsuODk2MiwuNTU3MV0sWy44Njc5LC42MTc2XSxbLjgzNSwuNjc2OV0sWy43OTg2LC43MzQ2XSxbLjc1OTcsLjc5MDNdLFsuNzE4NiwuODQzNV0sWy42NzMyLC44OTM2XSxbLjYyMTMsLjkzOTRdLFsuNTcyMiwuOTc2MV0sWy41MzIyLDFdXTtmdW5jdGlvbiBQKHQsZSl7dmFyIHIsbj1NYXRoLm1pbigxOCwzNipNYXRoLmFicyhlKS9wKSxhPU1hdGguZmxvb3IobiksaT1uLWEsbz0ocj1DW2FdKVswXSxzPXJbMV0sbD0ocj1DWysrYV0pWzBdLGM9clsxXSx1PShyPUNbTWF0aC5taW4oMTksKythKV0pWzBdLGg9clsxXTtyZXR1cm5bdCoobCtpKih1LW8pLzIraSppKih1LTIqbCtvKS8yKSwoZT4wP2Q6LWQpKihjK2kqKGgtcykvMitpKmkqKGgtMipjK3MpLzIpXX1mdW5jdGlvbiBPKHQsZSl7cmV0dXJuW3QqTWF0aC5jb3MoZSksZV19ZnVuY3Rpb24geih0LGUpe3ZhciByLG49TWF0aC5jb3MoZSksYT0ocj15KG4qTWF0aC5jb3ModC89MikpKT9yL01hdGguc2luKHIpOjE7cmV0dXJuWzIqbipNYXRoLnNpbih0KSphLE1hdGguc2luKGUpKmFdfWZ1bmN0aW9uIEkodCxlKXt2YXIgcj16KHQsZSk7cmV0dXJuWyhyWzBdK3QvZCkvMiwoclsxXStlKS8yXX1DLmZvckVhY2goZnVuY3Rpb24odCl7dFsxXSo9MS4wMTQ0fSksUC5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1lL2Qsbj05MCpyLGE9TWF0aC5taW4oMTgsTWF0aC5hYnMobi81KSksaT1NYXRoLm1heCgwLE1hdGguZmxvb3IoYSkpO2Rve3ZhciBvPUNbaV1bMV0scz1DW2krMV1bMV0sbD1DW01hdGgubWluKDE5LGkrMildWzFdLGM9bC1vLHU9bC0yKnMrbyxoPTIqKE1hdGguYWJzKHIpLXMpL2MscD11L2MsbT1oKigxLXAqaCooMS0yKnAqaCkpO2lmKG0+PTB8fDE9PT1pKXtuPShlPj0wPzU6LTUpKihtK2EpO3ZhciB5LHg9NTA7ZG97bT0oYT1NYXRoLm1pbigxOCxNYXRoLmFicyhuKS81KSktKGk9TWF0aC5mbG9vcihhKSksbz1DW2ldWzFdLHM9Q1tpKzFdWzFdLGw9Q1tNYXRoLm1pbigxOSxpKzIpXVsxXSxuLT0oeT0oZT49MD9kOi1kKSoocyttKihsLW8pLzIrbSptKihsLTIqcytvKS8yKS1lKSp2fXdoaWxlKE1hdGguYWJzKHkpPmYmJi0teD4wKTticmVha319d2hpbGUoLS1pPj0wKTt2YXIgYj1DW2ldWzBdLF89Q1tpKzFdWzBdLHc9Q1tNYXRoLm1pbigxOSxpKzIpXVswXTtyZXR1cm5bdC8oXyttKih3LWIpLzIrbSptKih3LTIqXytiKS8yKSxuKmddfSwodC5nZW8ucm9iaW5zb249ZnVuY3Rpb24oKXtyZXR1cm4geChQKX0pLnJhdz1QLE8uaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuW3QvTWF0aC5jb3MoZSksZV19LCh0Lmdlby5zaW51c29pZGFsPWZ1bmN0aW9uKCl7cmV0dXJuIHgoTyl9KS5yYXc9Tyx6LmludmVydD1mdW5jdGlvbih0LGUpe2lmKCEodCp0KzQqZSplPnAqcCtoKSl7dmFyIHI9dCxuPWUsYT0yNTtkb3t2YXIgaSxvPU1hdGguc2luKHIpLHM9TWF0aC5zaW4oci8yKSxsPU1hdGguY29zKHIvMiksYz1NYXRoLnNpbihuKSx1PU1hdGguY29zKG4pLGY9TWF0aC5zaW4oMipuKSxkPWMqYyxnPXUqdSx2PXMqcyxtPTEtZypsKmwseD1tP3kodSpsKSpNYXRoLnNxcnQoaT0xL20pOmk9MCxiPTIqeCp1KnMtdCxfPXgqYy1lLHc9aSooZyp2K3gqdSpsKmQpLGs9aSooLjUqbypmLTIqeCpjKnMpLFQ9LjI1KmkqKGYqcy14KmMqZypvKSxNPWkqKGQqbCt4KnYqdSksQT1rKlQtTSp3O2lmKCFBKWJyZWFrO3ZhciBTPShfKmstYipNKS9BLEU9KGIqVC1fKncpL0E7ci09UyxuLT1FfXdoaWxlKChNYXRoLmFicyhTKT5ofHxNYXRoLmFicyhFKT5oKSYmLS1hPjApO3JldHVybltyLG5dfX0sKHQuZ2VvLmFpdG9mZj1mdW5jdGlvbigpe3JldHVybiB4KHopfSkucmF3PXosSS5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj10LG49ZSxhPTI1O2Rve3ZhciBpLG89TWF0aC5jb3Mobikscz1NYXRoLnNpbihuKSxsPU1hdGguc2luKDIqbiksYz1zKnMsdT1vKm8sZj1NYXRoLnNpbihyKSxwPU1hdGguY29zKHIvMiksZz1NYXRoLnNpbihyLzIpLHY9ZypnLG09MS11KnAqcCx4PW0/eShvKnApKk1hdGguc3FydChpPTEvbSk6aT0wLGI9LjUqKDIqeCpvKmcrci9kKS10LF89LjUqKHgqcytuKS1lLHc9LjUqaSoodSp2K3gqbypwKmMpKy41L2Qsaz1pKihmKmwvNC14KnMqZyksVD0uMTI1KmkqKGwqZy14KnMqdSpmKSxNPS41KmkqKGMqcCt4KnYqbykrLjUsQT1rKlQtTSp3LFM9KF8qay1iKk0pL0EsRT0oYipULV8qdykvQTtyLT1TLG4tPUV9d2hpbGUoKE1hdGguYWJzKFMpPmh8fE1hdGguYWJzKEUpPmgpJiYtLWE+MCk7cmV0dXJuW3Isbl19LCh0Lmdlby53aW5rZWwzPWZ1bmN0aW9uKCl7cmV0dXJuIHgoSSl9KS5yYXc9SX19LHt9XSw3OTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxhPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vcmVnaXN0cnkiKSxvPU1hdGguUEkvMTgwLHM9MTgwL01hdGguUEksbD17Y3Vyc29yOiJwb2ludGVyIn0sYz17Y3Vyc29yOiJhdXRvIn07ZnVuY3Rpb24gdSh0LGUpe3JldHVybiBuLmJlaGF2aW9yLnpvb20oKS50cmFuc2xhdGUoZS50cmFuc2xhdGUoKSkuc2NhbGUoZS5zY2FsZSgpKX1mdW5jdGlvbiBoKHQsZSxyKXt2YXIgbj10LmlkLG89dC5ncmFwaERpdixzPW8ubGF5b3V0LGw9c1tuXSxjPW8uX2Z1bGxMYXlvdXQsdT1jW25dLGg9e30sZj17fTtmdW5jdGlvbiBwKHQsZSl7aFtuKyIuIit0XT1hLm5lc3RlZFByb3BlcnR5KGwsdCkuZ2V0KCksaS5jYWxsKCJfc3RvcmVEaXJlY3RHVUlFZGl0IixzLGMuX3ByZUdVSSxoKTt2YXIgcj1hLm5lc3RlZFByb3BlcnR5KHUsdCk7ci5nZXQoKSE9PWUmJihyLnNldChlKSxhLm5lc3RlZFByb3BlcnR5KGwsdCkuc2V0KGUpLGZbbisiLiIrdF09ZSl9cihwKSxwKCJwcm9qZWN0aW9uLnNjYWxlIixlLnNjYWxlKCkvdC5maXRTY2FsZSkscCgiZml0Ym91bmRzIiwhMSksby5lbWl0KCJwbG90bHlfcmVsYXlvdXQiLGYpfWZ1bmN0aW9uIGYodCxlKXt2YXIgcj11KDAsZSk7ZnVuY3Rpb24gYShyKXt2YXIgbj1lLmludmVydCh0Lm1pZFB0KTtyKCJjZW50ZXIubG9uIixuWzBdKSxyKCJjZW50ZXIubGF0IixuWzFdKX1yZXR1cm4gci5vbigiem9vbXN0YXJ0IixmdW5jdGlvbigpe24uc2VsZWN0KHRoaXMpLnN0eWxlKGwpfSkub24oInpvb20iLGZ1bmN0aW9uKCl7ZS5zY2FsZShuLmV2ZW50LnNjYWxlKS50cmFuc2xhdGUobi5ldmVudC50cmFuc2xhdGUpLHQucmVuZGVyKCk7dmFyIHI9ZS5pbnZlcnQodC5taWRQdCk7dC5ncmFwaERpdi5lbWl0KCJwbG90bHlfcmVsYXlvdXRpbmciLHsiZ2VvLnByb2plY3Rpb24uc2NhbGUiOmUuc2NhbGUoKS90LmZpdFNjYWxlLCJnZW8uY2VudGVyLmxvbiI6clswXSwiZ2VvLmNlbnRlci5sYXQiOnJbMV19KX0pLm9uKCJ6b29tZW5kIixmdW5jdGlvbigpe24uc2VsZWN0KHRoaXMpLnN0eWxlKGMpLGgodCxlLGEpfSkscn1mdW5jdGlvbiBwKHQsZSl7dmFyIHIsYSxpLG8scyxmLHAsZCxnLHY9dSgwLGUpLG09MjtmdW5jdGlvbiB5KHQpe3JldHVybiBlLmludmVydCh0KX1mdW5jdGlvbiB4KHIpe3ZhciBuPWUucm90YXRlKCksYT1lLmludmVydCh0Lm1pZFB0KTtyKCJwcm9qZWN0aW9uLnJvdGF0aW9uLmxvbiIsLW5bMF0pLHIoImNlbnRlci5sb24iLGFbMF0pLHIoImNlbnRlci5sYXQiLGFbMV0pfXJldHVybiB2Lm9uKCJ6b29tc3RhcnQiLGZ1bmN0aW9uKCl7bi5zZWxlY3QodGhpcykuc3R5bGUobCkscj1uLm1vdXNlKHRoaXMpLGE9ZS5yb3RhdGUoKSxpPWUudHJhbnNsYXRlKCksbz1hLHM9eShyKX0pLm9uKCJ6b29tIixmdW5jdGlvbigpe2lmKGY9bi5tb3VzZSh0aGlzKSxmdW5jdGlvbih0KXt2YXIgcj15KHQpO2lmKCFyKXJldHVybiEwO3ZhciBuPWUocik7cmV0dXJuIE1hdGguYWJzKG5bMF0tdFswXSk+bXx8TWF0aC5hYnMoblsxXS10WzFdKT5tfShyKSlyZXR1cm4gdi5zY2FsZShlLnNjYWxlKCkpLHZvaWQgdi50cmFuc2xhdGUoZS50cmFuc2xhdGUoKSk7ZS5zY2FsZShuLmV2ZW50LnNjYWxlKSxlLnRyYW5zbGF0ZShbaVswXSxuLmV2ZW50LnRyYW5zbGF0ZVsxXV0pLHM/eShmKSYmKGQ9eShmKSxwPVtvWzBdKyhkWzBdLXNbMF0pLGFbMV0sYVsyXV0sZS5yb3RhdGUocCksbz1wKTpzPXkocj1mKSxnPSEwLHQucmVuZGVyKCk7dmFyIGw9ZS5yb3RhdGUoKSxjPWUuaW52ZXJ0KHQubWlkUHQpO3QuZ3JhcGhEaXYuZW1pdCgicGxvdGx5X3JlbGF5b3V0aW5nIix7Imdlby5wcm9qZWN0aW9uLnNjYWxlIjplLnNjYWxlKCkvdC5maXRTY2FsZSwiZ2VvLmNlbnRlci5sb24iOmNbMF0sImdlby5jZW50ZXIubGF0IjpjWzFdLCJnZW8ucHJvamVjdGlvbi5yb3RhdGlvbi5sb24iOi1sWzBdfSl9KS5vbigiem9vbWVuZCIsZnVuY3Rpb24oKXtuLnNlbGVjdCh0aGlzKS5zdHlsZShjKSxnJiZoKHQsZSx4KX0pLHZ9ZnVuY3Rpb24gZCh0LGUpe3ZhciByLGE9e3I6ZS5yb3RhdGUoKSxrOmUuc2NhbGUoKX0saT11KDAsZSksZj1mdW5jdGlvbih0KXt2YXIgZT0wLHI9YXJndW1lbnRzLmxlbmd0aCxhPVtdO2Zvcig7KytlPHI7KWEucHVzaChhcmd1bWVudHNbZV0pO3ZhciBpPW4uZGlzcGF0Y2guYXBwbHkobnVsbCxhKTtyZXR1cm4gaS5vZj1mdW5jdGlvbihlLHIpe3JldHVybiBmdW5jdGlvbihhKXt2YXIgbzt0cnl7bz1hLnNvdXJjZUV2ZW50PW4uZXZlbnQsYS50YXJnZXQ9dCxuLmV2ZW50PWEsaVthLnR5cGVdLmFwcGx5KGUscil9ZmluYWxseXtuLmV2ZW50PW99fX0saX0oaSwiem9vbXN0YXJ0Iiwiem9vbSIsInpvb21lbmQiKSxwPTAsZD1pLm9uO2Z1bmN0aW9uIG0odCl7dmFyIHI9ZS5yb3RhdGUoKTt0KCJwcm9qZWN0aW9uLnJvdGF0aW9uLmxvbiIsLXJbMF0pLHQoInByb2plY3Rpb24ucm90YXRpb24ubGF0IiwtclsxXSl9cmV0dXJuIGkub24oInpvb21zdGFydCIsZnVuY3Rpb24oKXtuLnNlbGVjdCh0aGlzKS5zdHlsZShsKTt2YXIgdCxjLHUsaCxtLGIsXyx3LGssVCxNLEE9bi5tb3VzZSh0aGlzKSxTPWUucm90YXRlKCksRT1TLEw9ZS50cmFuc2xhdGUoKSxDPShjPS41Kih0PVMpWzBdKm8sdT0uNSp0WzFdKm8saD0uNSp0WzJdKm8sbT1NYXRoLnNpbihjKSxiPU1hdGguY29zKGMpLF89TWF0aC5zaW4odSksdz1NYXRoLmNvcyh1KSxrPU1hdGguc2luKGgpLFQ9TWF0aC5jb3MoaCksW2IqdypUK20qXyprLG0qdypULWIqXyprLGIqXypUK20qdyprLGIqdyprLW0qXypUXSk7cj1nKGUsQSksZC5jYWxsKGksInpvb20iLGZ1bmN0aW9uKCl7dmFyIHQsaSxvLGwsYyx1LGgscCxkLG0sYj1uLm1vdXNlKHRoaXMpO2lmKGUuc2NhbGUoYS5rPW4uZXZlbnQuc2NhbGUpLHIpe2lmKGcoZSxiKSl7ZS5yb3RhdGUoUykudHJhbnNsYXRlKEwpO3ZhciBfPWcoZSxiKSx3PWZ1bmN0aW9uKHQsZSl7aWYoIXR8fCFlKXJldHVybjt2YXIgcj1mdW5jdGlvbih0LGUpe3JldHVyblt0WzFdKmVbMl0tdFsyXSplWzFdLHRbMl0qZVswXS10WzBdKmVbMl0sdFswXSplWzFdLXRbMV0qZVswXV19KHQsZSksbj1NYXRoLnNxcnQoeChyLHIpKSxhPS41Kk1hdGguYWNvcyhNYXRoLm1heCgtMSxNYXRoLm1pbigxLHgodCxlKSkpKSxpPU1hdGguc2luKGEpL247cmV0dXJuIG4mJltNYXRoLmNvcyhhKSxyWzJdKmksLXJbMV0qaSxyWzBdKmldfShyLF8pLGs9ZnVuY3Rpb24odCl7cmV0dXJuW01hdGguYXRhbjIoMioodFswXSp0WzFdK3RbMl0qdFszXSksMS0yKih0WzFdKnRbMV0rdFsyXSp0WzJdKSkqcyxNYXRoLmFzaW4oTWF0aC5tYXgoLTEsTWF0aC5taW4oMSwyKih0WzBdKnRbMl0tdFszXSp0WzFdKSkpKSpzLE1hdGguYXRhbjIoMioodFswXSp0WzNdK3RbMV0qdFsyXSksMS0yKih0WzJdKnRbMl0rdFszXSp0WzNdKSkqc119KChpPXcsbz0odD1DKVswXSxsPXRbMV0sYz10WzJdLHU9dFszXSxoPWlbMF0scD1pWzFdLGQ9aVsyXSxtPWlbM10sW28qaC1sKnAtYypkLXUqbSxvKnArbCpoK2MqbS11KmQsbypkLWwqbStjKmgrdSpwLG8qbStsKmQtYypwK3UqaF0pKSxUPWEucj1mdW5jdGlvbih0LGUscil7dmFyIG49eShlLDIsdFswXSk7bj15KG4sMSx0WzFdKSxuPXkobiwwLHRbMl0tclsyXSk7dmFyIGEsaSxvPWVbMF0sbD1lWzFdLGM9ZVsyXSx1PW5bMF0saD1uWzFdLGY9blsyXSxwPU1hdGguYXRhbjIobCxvKSpzLGQ9TWF0aC5zcXJ0KG8qbytsKmwpO01hdGguYWJzKGgpPmQ/KGk9KGg+MD85MDotOTApLXAsYT0wKTooaT1NYXRoLmFzaW4oaC9kKSpzLXAsYT1NYXRoLnNxcnQoZCpkLWgqaCkpO3ZhciBnPTE4MC1pLTIqcCxtPShNYXRoLmF0YW4yKGYsdSktTWF0aC5hdGFuMihjLGEpKSpzLHg9KE1hdGguYXRhbjIoZix1KS1NYXRoLmF0YW4yKGMsLWEpKSpzLGI9dihyWzBdLHJbMV0saSxtKSxfPXYoclswXSxyWzFdLGcseCk7cmV0dXJuIGI8PV8/W2ksbSxyWzJdXTpbZyx4LHJbMl1dfShrLHIsRSk7aXNGaW5pdGUoVFswXSkmJmlzRmluaXRlKFRbMV0pJiZpc0Zpbml0ZShUWzJdKXx8KFQ9RSksZS5yb3RhdGUoVCksRT1UfX1lbHNlIHI9ZyhlLEE9Yik7Zi5vZih0aGlzLGFyZ3VtZW50cykoe3R5cGU6Inpvb20ifSl9KSxNPWYub2YodGhpcyxhcmd1bWVudHMpLHArK3x8TSh7dHlwZToiem9vbXN0YXJ0In0pfSkub24oInpvb21lbmQiLGZ1bmN0aW9uKCl7dmFyIHI7bi5zZWxlY3QodGhpcykuc3R5bGUoYyksZC5jYWxsKGksInpvb20iLG51bGwpLHI9Zi5vZih0aGlzLGFyZ3VtZW50cyksLS1wfHxyKHt0eXBlOiJ6b29tZW5kIn0pLGgodCxlLG0pfSkub24oInpvb20ucmVkcmF3IixmdW5jdGlvbigpe3QucmVuZGVyKCk7dmFyIHI9ZS5yb3RhdGUoKTt0LmdyYXBoRGl2LmVtaXQoInBsb3RseV9yZWxheW91dGluZyIseyJnZW8ucHJvamVjdGlvbi5zY2FsZSI6ZS5zY2FsZSgpL3QuZml0U2NhbGUsImdlby5wcm9qZWN0aW9uLnJvdGF0aW9uLmxvbiI6LXJbMF0sImdlby5wcm9qZWN0aW9uLnJvdGF0aW9uLmxhdCI6LXJbMV19KX0pLG4ucmViaW5kKGksZiwib24iKX1mdW5jdGlvbiBnKHQsZSl7dmFyIHI9dC5pbnZlcnQoZSk7cmV0dXJuIHImJmlzRmluaXRlKHJbMF0pJiZpc0Zpbml0ZShyWzFdKSYmZnVuY3Rpb24odCl7dmFyIGU9dFswXSpvLHI9dFsxXSpvLG49TWF0aC5jb3Mocik7cmV0dXJuW24qTWF0aC5jb3MoZSksbipNYXRoLnNpbihlKSxNYXRoLnNpbihyKV19KHIpfWZ1bmN0aW9uIHYodCxlLHIsbil7dmFyIGE9bShyLXQpLGk9bShuLWUpO3JldHVybiBNYXRoLnNxcnQoYSphK2kqaSl9ZnVuY3Rpb24gbSh0KXtyZXR1cm4odCUzNjArNTQwKSUzNjAtMTgwfWZ1bmN0aW9uIHkodCxlLHIpe3ZhciBuPXIqbyxhPXQuc2xpY2UoKSxpPTA9PT1lPzE6MCxzPTI9PT1lPzE6MixsPU1hdGguY29zKG4pLGM9TWF0aC5zaW4obik7cmV0dXJuIGFbaV09dFtpXSpsLXRbc10qYyxhW3NdPXRbc10qbCt0W2ldKmMsYX1mdW5jdGlvbiB4KHQsZSl7Zm9yKHZhciByPTAsbj0wLGE9dC5sZW5ndGg7bjxhOysrbilyKz10W25dKmVbbl07cmV0dXJuIHJ9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5wcm9qZWN0aW9uO3JldHVybihlLl9pc1Njb3BlZD9mOmUuX2lzQ2xpcHBlZD9kOnApKHQscil9fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi8uLi9yZWdpc3RyeSI6ODQ2LGQzOjE2NX1dLDgwMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9yZWdpc3RyeSIpLGE9dCgiLi9jYXJ0ZXNpYW4vY29uc3RhbnRzIikuU1VCUExPVF9QQVRURVJOO3IuZ2V0U3VicGxvdENhbGNEYXRhPWZ1bmN0aW9uKHQsZSxyKXt2YXIgYT1uLnN1YnBsb3RzUmVnaXN0cnlbZV07aWYoIWEpcmV0dXJuW107Zm9yKHZhciBpPWEuYXR0cixvPVtdLHM9MDtzPHQubGVuZ3RoO3MrKyl7dmFyIGw9dFtzXTtsWzBdLnRyYWNlW2ldPT09ciYmby5wdXNoKGwpfXJldHVybiBvfSxyLmdldE1vZHVsZUNhbGNEYXRhPWZ1bmN0aW9uKHQsZSl7dmFyIHIsYT1bXSxpPVtdO2lmKCEocj0ic3RyaW5nIj09dHlwZW9mIGU/bi5nZXRNb2R1bGUoZSkucGxvdDoiZnVuY3Rpb24iPT10eXBlb2YgZT9lOmUucGxvdCkpcmV0dXJuW2EsdF07Zm9yKHZhciBvPTA7bzx0Lmxlbmd0aDtvKyspe3ZhciBzPXRbb10sbD1zWzBdLnRyYWNlOyEwPT09bC52aXNpYmxlJiYwIT09bC5fbGVuZ3RoJiYobC5fbW9kdWxlLnBsb3Q9PT1yP2EucHVzaChzKTppLnB1c2gocykpfXJldHVyblthLGldfSxyLmdldFN1YnBsb3REYXRhPWZ1bmN0aW9uKHQsZSxyKXtpZighbi5zdWJwbG90c1JlZ2lzdHJ5W2VdKXJldHVybltdO3ZhciBpLG8scyxsPW4uc3VicGxvdHNSZWdpc3RyeVtlXS5hdHRyLGM9W107aWYoImdsMmQiPT09ZSl7dmFyIHU9ci5tYXRjaChhKTtvPSJ4Iit1WzFdLHM9InkiK3VbMl19Zm9yKHZhciBoPTA7aDx0Lmxlbmd0aDtoKyspaT10W2hdLCJnbDJkIj09PWUmJm4udHJhY2VJcyhpLCJnbDJkIik/aVtsWzBdXT09PW8mJmlbbFsxXV09PT1zJiZjLnB1c2goaSk6aVtsXT09PXImJmMucHVzaChpKTtyZXR1cm4gY319LHsiLi4vcmVnaXN0cnkiOjg0NiwiLi9jYXJ0ZXNpYW4vY29uc3RhbnRzIjo3NzF9XSw4MDE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgibW91c2UtY2hhbmdlIiksYT10KCJtb3VzZS13aGVlbCIpLGk9dCgibW91c2UtZXZlbnQtb2Zmc2V0Iiksbz10KCIuLi9jYXJ0ZXNpYW4vY29uc3RhbnRzIikscz10KCJoYXMtcGFzc2l2ZS1ldmVudHMiKTtmdW5jdGlvbiBsKHQsZSl7dGhpcy5lbGVtZW50PXQsdGhpcy5wbG90PWUsdGhpcy5tb3VzZUxpc3RlbmVyPW51bGwsdGhpcy53aGVlbExpc3RlbmVyPW51bGwsdGhpcy5sYXN0SW5wdXRUaW1lPURhdGUubm93KCksdGhpcy5sYXN0UG9zPVswLDBdLHRoaXMuYm94RW5hYmxlZD0hMSx0aGlzLmJveEluaXRlZD0hMSx0aGlzLmJveFN0YXJ0PVswLDBdLHRoaXMuYm94RW5kPVswLDBdLHRoaXMuZHJhZ1N0YXJ0PVswLDBdfWUuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10Lm1vdXNlQ29udGFpbmVyLHI9dC5nbHBsb3QsYz1uZXcgbChlLHIpO2Z1bmN0aW9uIHUoKXt0LnhheGlzLmF1dG9yYW5nZT0hMSx0LnlheGlzLmF1dG9yYW5nZT0hMX1mdW5jdGlvbiBoKGUsbixhKXt2YXIgaSxzLGw9dC5jYWxjRGF0YUJveCgpLGg9ci52aWV3Qm94LGY9Yy5sYXN0UG9zWzBdLHA9Yy5sYXN0UG9zWzFdLGQ9by5NSU5EUkFHKnIucGl4ZWxSYXRpbyxnPW8uTUlOWk9PTSpyLnBpeGVsUmF0aW87ZnVuY3Rpb24gdihlLHIsbil7dmFyIGE9TWF0aC5taW4ocixuKSxpPU1hdGgubWF4KHIsbik7YSE9PWk/KGxbZV09YSxsW2UrMl09aSxjLmRhdGFCb3g9bCx0LnNldFJhbmdlcyhsKSk6KHQuc2VsZWN0Qm94LnNlbGVjdEJveD1bMCwwLDEsMV0sdC5nbHBsb3Quc2V0RGlydHkoKSl9c3dpdGNoKG4qPXIucGl4ZWxSYXRpbyxhKj1yLnBpeGVsUmF0aW8sYT1oWzNdLWhbMV0tYSx0LmZ1bGxMYXlvdXQuZHJhZ21vZGUpe2Nhc2Uiem9vbSI6aWYoZSl7dmFyIG09bi8oaFsyXS1oWzBdKSoobFsyXS1sWzBdKStsWzBdLHk9YS8oaFszXS1oWzFdKSoobFszXS1sWzFdKStsWzFdO2MuYm94SW5pdGVkfHwoYy5ib3hTdGFydFswXT1tLGMuYm94U3RhcnRbMV09eSxjLmRyYWdTdGFydFswXT1uLGMuZHJhZ1N0YXJ0WzFdPWEpLGMuYm94RW5kWzBdPW0sYy5ib3hFbmRbMV09eSxjLmJveEluaXRlZD0hMCxjLmJveEVuYWJsZWR8fGMuYm94U3RhcnRbMF09PT1jLmJveEVuZFswXSYmYy5ib3hTdGFydFsxXT09PWMuYm94RW5kWzFdfHwoYy5ib3hFbmFibGVkPSEwKTt2YXIgeD1NYXRoLmFicyhjLmRyYWdTdGFydFswXS1uKTxnLGI9TWF0aC5hYnMoYy5kcmFnU3RhcnRbMV0tYSk8ZztpZighZnVuY3Rpb24oKXtmb3IodmFyIGU9dC5ncmFwaERpdi5fZnVsbExheW91dC5fYXhpc0NvbnN0cmFpbnRHcm91cHMscj10LnhheGlzLl9pZCxuPXQueWF4aXMuX2lkLGE9MDthPGUubGVuZ3RoO2ErKylpZigtMSE9PWVbYV1bcl0pe2lmKC0xIT09ZVthXVtuXSlyZXR1cm4hMDticmVha31yZXR1cm4hMX0oKXx8eCYmYil4JiYoYy5ib3hFbmRbMF09Yy5ib3hTdGFydFswXSksYiYmKGMuYm94RW5kWzFdPWMuYm94U3RhcnRbMV0pO2Vsc2V7aT1jLmJveEVuZFswXS1jLmJveFN0YXJ0WzBdLHM9Yy5ib3hFbmRbMV0tYy5ib3hTdGFydFsxXTt2YXIgXz0obFszXS1sWzFdKS8obFsyXS1sWzBdKTtNYXRoLmFicyhpKl8pPk1hdGguYWJzKHMpPyhjLmJveEVuZFsxXT1jLmJveFN0YXJ0WzFdK01hdGguYWJzKGkpKl8qKHM+PTA/MTotMSksYy5ib3hFbmRbMV08bFsxXT8oYy5ib3hFbmRbMV09bFsxXSxjLmJveEVuZFswXT1jLmJveFN0YXJ0WzBdKyhsWzFdLWMuYm94U3RhcnRbMV0pL01hdGguYWJzKF8pKTpjLmJveEVuZFsxXT5sWzNdJiYoYy5ib3hFbmRbMV09bFszXSxjLmJveEVuZFswXT1jLmJveFN0YXJ0WzBdKyhsWzNdLWMuYm94U3RhcnRbMV0pL01hdGguYWJzKF8pKSk6KGMuYm94RW5kWzBdPWMuYm94U3RhcnRbMF0rTWF0aC5hYnMocykvXyooaT49MD8xOi0xKSxjLmJveEVuZFswXTxsWzBdPyhjLmJveEVuZFswXT1sWzBdLGMuYm94RW5kWzFdPWMuYm94U3RhcnRbMV0rKGxbMF0tYy5ib3hTdGFydFswXSkqTWF0aC5hYnMoXykpOmMuYm94RW5kWzBdPmxbMl0mJihjLmJveEVuZFswXT1sWzJdLGMuYm94RW5kWzFdPWMuYm94U3RhcnRbMV0rKGxbMl0tYy5ib3hTdGFydFswXSkqTWF0aC5hYnMoXykpKX19ZWxzZSBjLmJveEVuYWJsZWQ/KGk9Yy5ib3hTdGFydFswXSE9PWMuYm94RW5kWzBdLHM9Yy5ib3hTdGFydFsxXSE9PWMuYm94RW5kWzFdLGl8fHM/KGkmJih2KDAsYy5ib3hTdGFydFswXSxjLmJveEVuZFswXSksdC54YXhpcy5hdXRvcmFuZ2U9ITEpLHMmJih2KDEsYy5ib3hTdGFydFsxXSxjLmJveEVuZFsxXSksdC55YXhpcy5hdXRvcmFuZ2U9ITEpLHQucmVsYXlvdXRDYWxsYmFjaygpKTp0LmdscGxvdC5zZXREaXJ0eSgpLGMuYm94RW5hYmxlZD0hMSxjLmJveEluaXRlZD0hMSk6Yy5ib3hJbml0ZWQmJihjLmJveEluaXRlZD0hMSk7YnJlYWs7Y2FzZSJwYW4iOmMuYm94RW5hYmxlZD0hMSxjLmJveEluaXRlZD0hMSxlPyhjLnBhbm5pbmd8fChjLmRyYWdTdGFydFswXT1uLGMuZHJhZ1N0YXJ0WzFdPWEpLE1hdGguYWJzKGMuZHJhZ1N0YXJ0WzBdLW4pPGQmJihuPWMuZHJhZ1N0YXJ0WzBdKSxNYXRoLmFicyhjLmRyYWdTdGFydFsxXS1hKTxkJiYoYT1jLmRyYWdTdGFydFsxXSksaT0oZi1uKSoobFsyXS1sWzBdKS8oci52aWV3Qm94WzJdLXIudmlld0JveFswXSkscz0ocC1hKSoobFszXS1sWzFdKS8oci52aWV3Qm94WzNdLXIudmlld0JveFsxXSksbFswXSs9aSxsWzJdKz1pLGxbMV0rPXMsbFszXSs9cyx0LnNldFJhbmdlcyhsKSxjLnBhbm5pbmc9ITAsYy5sYXN0SW5wdXRUaW1lPURhdGUubm93KCksdSgpLHQuY2FtZXJhQ2hhbmdlZCgpLHQuaGFuZGxlQW5ub3RhdGlvbnMoKSk6Yy5wYW5uaW5nJiYoYy5wYW5uaW5nPSExLHQucmVsYXlvdXRDYWxsYmFjaygpKX1jLmxhc3RQb3NbMF09bixjLmxhc3RQb3NbMV09YX1yZXR1cm4gYy5tb3VzZUxpc3RlbmVyPW4oZSxoKSxlLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGZ1bmN0aW9uKHQpe3ZhciByPWkodC5jaGFuZ2VkVG91Y2hlc1swXSxlKTtoKDAsclswXSxyWzFdKSxoKDEsclswXSxyWzFdKSx0LnByZXZlbnREZWZhdWx0KCl9LCEhcyYme3Bhc3NpdmU6ITF9KSxlLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpO3ZhciByPWkodC5jaGFuZ2VkVG91Y2hlc1swXSxlKTtoKDEsclswXSxyWzFdKSx0LnByZXZlbnREZWZhdWx0KCl9LCEhcyYme3Bhc3NpdmU6ITF9KSxlLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixmdW5jdGlvbih0KXtoKDAsYy5sYXN0UG9zWzBdLGMubGFzdFBvc1sxXSksdC5wcmV2ZW50RGVmYXVsdCgpfSwhIXMmJntwYXNzaXZlOiExfSksYy53aGVlbExpc3RlbmVyPWEoZSxmdW5jdGlvbihlLG4pe2lmKCF0LnNjcm9sbFpvb20pcmV0dXJuITE7dmFyIGE9dC5jYWxjRGF0YUJveCgpLGk9ci52aWV3Qm94LG89Yy5sYXN0UG9zWzBdLHM9Yy5sYXN0UG9zWzFdLGw9TWF0aC5leHAoNSpuLyhpWzNdLWlbMV0pKSxoPW8vKGlbMl0taVswXSkqKGFbMl0tYVswXSkrYVswXSxmPXMvKGlbM10taVsxXSkqKGFbM10tYVsxXSkrYVsxXTtyZXR1cm4gYVswXT0oYVswXS1oKSpsK2gsYVsyXT0oYVsyXS1oKSpsK2gsYVsxXT0oYVsxXS1mKSpsK2YsYVszXT0oYVszXS1mKSpsK2YsdC5zZXRSYW5nZXMoYSksYy5sYXN0SW5wdXRUaW1lPURhdGUubm93KCksdSgpLHQuY2FtZXJhQ2hhbmdlZCgpLHQuaGFuZGxlQW5ub3RhdGlvbnMoKSx0LnJlbGF5b3V0Q2FsbGJhY2soKSwhMH0sITApLGN9fSx7Ii4uL2NhcnRlc2lhbi9jb25zdGFudHMiOjc3MSwiaGFzLXBhc3NpdmUtZXZlbnRzIjo0MTMsIm1vdXNlLWNoYW5nZSI6NDM3LCJtb3VzZS1ldmVudC1vZmZzZXQiOjQzOCwibW91c2Utd2hlZWwiOjQ0MH1dLDgwMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9jYXJ0ZXNpYW4vYXhlcyIpLGE9dCgiLi4vLi4vbGliL3N0cjJyZ2JhcnJheSIpO2Z1bmN0aW9uIGkodCl7dGhpcy5zY2VuZT10LHRoaXMuZ2w9dC5nbCx0aGlzLnBpeGVsUmF0aW89dC5waXhlbFJhdGlvLHRoaXMuc2NyZWVuQm94PVswLDAsMSwxXSx0aGlzLnZpZXdCb3g9WzAsMCwxLDFdLHRoaXMuZGF0YUJveD1bLTEsLTEsMSwxXSx0aGlzLmJvcmRlckxpbmVFbmFibGU9WyExLCExLCExLCExXSx0aGlzLmJvcmRlckxpbmVXaWR0aD1bMSwxLDEsMV0sdGhpcy5ib3JkZXJMaW5lQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0sdGhpcy50aWNrcz1bW10sW11dLHRoaXMudGlja0VuYWJsZT1bITAsITAsITEsITFdLHRoaXMudGlja1BhZD1bMTUsMTUsMTUsMTVdLHRoaXMudGlja0FuZ2xlPVswLDAsMCwwXSx0aGlzLnRpY2tDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLnRpY2tNYXJrTGVuZ3RoPVswLDAsMCwwXSx0aGlzLnRpY2tNYXJrV2lkdGg9WzAsMCwwLDBdLHRoaXMudGlja01hcmtDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLmxhYmVscz1bIngiLCJ5Il0sdGhpcy5sYWJlbEVuYWJsZT1bITAsITAsITEsITFdLHRoaXMubGFiZWxBbmdsZT1bMCxNYXRoLlBJLzIsMCwzKk1hdGguUEkvMl0sdGhpcy5sYWJlbFBhZD1bMTUsMTUsMTUsMTVdLHRoaXMubGFiZWxTaXplPVsxMiwxMl0sdGhpcy5sYWJlbEZvbnQ9WyJzYW5zLXNlcmlmIiwic2Fucy1zZXJpZiJdLHRoaXMubGFiZWxDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLnRpdGxlPSIiLHRoaXMudGl0bGVFbmFibGU9ITAsdGhpcy50aXRsZUNlbnRlcj1bMCwwLDAsMF0sdGhpcy50aXRsZUFuZ2xlPTAsdGhpcy50aXRsZUNvbG9yPVswLDAsMCwxXSx0aGlzLnRpdGxlRm9udD0ic2Fucy1zZXJpZiIsdGhpcy50aXRsZVNpemU9MTgsdGhpcy5ncmlkTGluZUVuYWJsZT1bITAsITBdLHRoaXMuZ3JpZExpbmVDb2xvcj1bWzAsMCwwLC41XSxbMCwwLDAsLjVdXSx0aGlzLmdyaWRMaW5lV2lkdGg9WzEsMV0sdGhpcy56ZXJvTGluZUVuYWJsZT1bITAsITBdLHRoaXMuemVyb0xpbmVXaWR0aD1bMSwxXSx0aGlzLnplcm9MaW5lQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMuYm9yZGVyQ29sb3I9WzAsMCwwLDBdLHRoaXMuYmFja2dyb3VuZENvbG9yPVswLDAsMCwwXSx0aGlzLnN0YXRpYz10aGlzLnNjZW5lLnN0YXRpY1Bsb3R9dmFyIG89aS5wcm90b3R5cGUscz1bInhheGlzIiwieWF4aXMiXTtvLm1lcmdlPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpLG8sbCxjLHUsaCxmLHA7Zm9yKHRoaXMudGl0bGVFbmFibGU9ITEsdGhpcy5iYWNrZ3JvdW5kQ29sb3I9YSh0LnBsb3RfYmdjb2xvciksZj0wO2Y8MjsrK2Ype3ZhciBkPShlPXNbZl0pLmNoYXJBdCgwKTtmb3Iobj0ocj10W3RoaXMuc2NlbmVbZV0uX25hbWVdKS50aXRsZS50ZXh0PT09dGhpcy5zY2VuZS5mdWxsTGF5b3V0Ll9kZmx0VGl0bGVbZF0/IiI6ci50aXRsZS50ZXh0LHA9MDtwPD0yO3ArPTIpdGhpcy5sYWJlbEVuYWJsZVtmK3BdPSExLHRoaXMubGFiZWxzW2YrcF09bix0aGlzLmxhYmVsQ29sb3JbZitwXT1hKHIudGl0bGUuZm9udC5jb2xvciksdGhpcy5sYWJlbEZvbnRbZitwXT1yLnRpdGxlLmZvbnQuZmFtaWx5LHRoaXMubGFiZWxTaXplW2YrcF09ci50aXRsZS5mb250LnNpemUsdGhpcy5sYWJlbFBhZFtmK3BdPXRoaXMuZ2V0TGFiZWxQYWQoZSxyKSx0aGlzLnRpY2tFbmFibGVbZitwXT0hMSx0aGlzLnRpY2tDb2xvcltmK3BdPWEoKHIudGlja2ZvbnR8fHt9KS5jb2xvciksdGhpcy50aWNrQW5nbGVbZitwXT0iYXV0byI9PT1yLnRpY2thbmdsZT8wOk1hdGguUEkqLXIudGlja2FuZ2xlLzE4MCx0aGlzLnRpY2tQYWRbZitwXT10aGlzLmdldFRpY2tQYWQociksdGhpcy50aWNrTWFya0xlbmd0aFtmK3BdPTAsdGhpcy50aWNrTWFya1dpZHRoW2YrcF09ci50aWNrd2lkdGh8fDAsdGhpcy50aWNrTWFya0NvbG9yW2YrcF09YShyLnRpY2tjb2xvciksdGhpcy5ib3JkZXJMaW5lRW5hYmxlW2YrcF09ITEsdGhpcy5ib3JkZXJMaW5lQ29sb3JbZitwXT1hKHIubGluZWNvbG9yKSx0aGlzLmJvcmRlckxpbmVXaWR0aFtmK3BdPXIubGluZXdpZHRofHwwO2M9dGhpcy5oYXNTaGFyZWRBeGlzKHIpLG89dGhpcy5oYXNBeGlzSW5EZmx0UG9zKGUscikmJiFjLGw9dGhpcy5oYXNBeGlzSW5BbHRyUG9zKGUscikmJiFjLGk9ci5taXJyb3J8fCExLHU9Yz8tMSE9PVN0cmluZyhpKS5pbmRleE9mKCJhbGwiKTohIWksaD1jPyJhbGx0aWNrcyI9PT1pOi0xIT09U3RyaW5nKGkpLmluZGV4T2YoInRpY2tzIiksbz90aGlzLmxhYmVsRW5hYmxlW2ZdPSEwOmwmJih0aGlzLmxhYmVsRW5hYmxlW2YrMl09ITApLG8/dGhpcy50aWNrRW5hYmxlW2ZdPXIuc2hvd3RpY2tsYWJlbHM6bCYmKHRoaXMudGlja0VuYWJsZVtmKzJdPXIuc2hvd3RpY2tsYWJlbHMpLChvfHx1KSYmKHRoaXMuYm9yZGVyTGluZUVuYWJsZVtmXT1yLnNob3dsaW5lKSwobHx8dSkmJih0aGlzLmJvcmRlckxpbmVFbmFibGVbZisyXT1yLnNob3dsaW5lKSwob3x8aCkmJih0aGlzLnRpY2tNYXJrTGVuZ3RoW2ZdPXRoaXMuZ2V0VGlja01hcmtMZW5ndGgocikpLChsfHxoKSYmKHRoaXMudGlja01hcmtMZW5ndGhbZisyXT10aGlzLmdldFRpY2tNYXJrTGVuZ3RoKHIpKSx0aGlzLmdyaWRMaW5lRW5hYmxlW2ZdPXIuc2hvd2dyaWQsdGhpcy5ncmlkTGluZUNvbG9yW2ZdPWEoci5ncmlkY29sb3IpLHRoaXMuZ3JpZExpbmVXaWR0aFtmXT1yLmdyaWR3aWR0aCx0aGlzLnplcm9MaW5lRW5hYmxlW2ZdPXIuemVyb2xpbmUsdGhpcy56ZXJvTGluZUNvbG9yW2ZdPWEoci56ZXJvbGluZWNvbG9yKSx0aGlzLnplcm9MaW5lV2lkdGhbZl09ci56ZXJvbGluZXdpZHRofX0sby5oYXNTaGFyZWRBeGlzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuc2NlbmUscj1lLmZ1bGxMYXlvdXQuX3N1YnBsb3RzLmdsMmQ7cmV0dXJuIDAhPT1uLmZpbmRTdWJwbG90c1dpdGhBeGlzKHIsdCkuaW5kZXhPZihlLmlkKX0sby5oYXNBeGlzSW5EZmx0UG9zPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5zaWRlO3JldHVybiJ4YXhpcyI9PT10PyJib3R0b20iPT09cjoieWF4aXMiPT09dD8ibGVmdCI9PT1yOnZvaWQgMH0sby5oYXNBeGlzSW5BbHRyUG9zPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5zaWRlO3JldHVybiJ4YXhpcyI9PT10PyJ0b3AiPT09cjoieWF4aXMiPT09dD8icmlnaHQiPT09cjp2b2lkIDB9LG8uZ2V0TGFiZWxQYWQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1lLnRpdGxlLmZvbnQuc2l6ZSxuPWUuc2hvd3RpY2tsYWJlbHM7cmV0dXJuInhheGlzIj09PXQ/InRvcCI9PT1lLnNpZGU/ciooMS41KyhuPzE6MCkpLTEwOnIqKDEuNSsobj8uNTowKSktMTA6InlheGlzIj09PXQ/InJpZ2h0Ij09PWUuc2lkZT8xMCtyKigxLjUrKG4/MTouNSkpOjEwK3IqKDEuNSsobj8uNTowKSk6dm9pZCAwfSxvLmdldFRpY2tQYWQ9ZnVuY3Rpb24odCl7cmV0dXJuIm91dHNpZGUiPT09dC50aWNrcz8xMCt0LnRpY2tsZW46MTV9LG8uZ2V0VGlja01hcmtMZW5ndGg9ZnVuY3Rpb24odCl7aWYoIXQudGlja3MpcmV0dXJuIDA7dmFyIGU9dC50aWNrbGVuO3JldHVybiJpbnNpZGUiPT09dC50aWNrcz8tZTplfSxlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBpKHQpfX0seyIuLi8uLi9saWIvc3RyMnJnYmFycmF5Ijo3NDAsIi4uL2NhcnRlc2lhbi9heGVzIjo3NjV9XSw4MDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyIpLm92ZXJyaWRlQWxsLGE9dCgiLi9zY2VuZTJkIiksaT10KCIuLi9sYXlvdXRfYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiKSxzPXQoIi4uL2NhcnRlc2lhbi9jb25zdGFudHMiKSxsPXQoIi4uL2NhcnRlc2lhbiIpLGM9dCgiLi4vLi4vY29tcG9uZW50cy9meC9sYXlvdXRfYXR0cmlidXRlcyIpLHU9dCgiLi4vZ2V0X2RhdGEiKS5nZXRTdWJwbG90RGF0YTtyLm5hbWU9ImdsMmQiLHIuYXR0cj1bInhheGlzIiwieWF4aXMiXSxyLmlkUm9vdD1bIngiLCJ5Il0sci5pZFJlZ2V4PXMuaWRSZWdleCxyLmF0dHJSZWdleD1zLmF0dHJSZWdleCxyLmF0dHJpYnV0ZXM9dCgiLi4vY2FydGVzaWFuL2F0dHJpYnV0ZXMiKSxyLnN1cHBseUxheW91dERlZmF1bHRzPWZ1bmN0aW9uKHQsZSxyKXtlLl9oYXMoImNhcnRlc2lhbiIpfHxsLnN1cHBseUxheW91dERlZmF1bHRzKHQsZSxyKX0sci5sYXlvdXRBdHRyT3ZlcnJpZGVzPW4obC5sYXlvdXRBdHRyaWJ1dGVzLCJwbG90IiwiZnJvbS1yb290Iiksci5iYXNlTGF5b3V0QXR0ck92ZXJyaWRlcz1uKHtwbG90X2JnY29sb3I6aS5wbG90X2JnY29sb3IsaG92ZXJsYWJlbDpjLmhvdmVybGFiZWx9LCJwbG90IiwibmVzdGVkIiksci5wbG90PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Ll9mdWxsTGF5b3V0LHI9dC5fZnVsbERhdGEsbj1lLl9zdWJwbG90cy5nbDJkLGk9MDtpPG4ubGVuZ3RoO2krKyl7dmFyIG89bltpXSxzPWUuX3Bsb3RzW29dLGw9dShyLCJnbDJkIixvKSxjPXMuX3NjZW5lMmQ7dm9pZCAwPT09YyYmKGM9bmV3IGEoe2lkOm8sZ3JhcGhEaXY6dCxjb250YWluZXI6dC5xdWVyeVNlbGVjdG9yKCIuZ2wtY29udGFpbmVyIiksc3RhdGljUGxvdDp0Ll9jb250ZXh0LnN0YXRpY1Bsb3QscGxvdEdsUGl4ZWxSYXRpbzp0Ll9jb250ZXh0LnBsb3RHbFBpeGVsUmF0aW99LGUpLHMuX3NjZW5lMmQ9YyksYy5wbG90KGwsdC5jYWxjZGF0YSxlLHQubGF5b3V0KX19LHIuY2xlYW49ZnVuY3Rpb24odCxlLHIsbil7Zm9yKHZhciBhPW4uX3N1YnBsb3RzLmdsMmR8fFtdLGk9MDtpPGEubGVuZ3RoO2krKyl7dmFyIG89YVtpXSxzPW4uX3Bsb3RzW29dO2lmKHMuX3NjZW5lMmQpMD09PXUodCwiZ2wyZCIsbykubGVuZ3RoJiYocy5fc2NlbmUyZC5kZXN0cm95KCksZGVsZXRlIG4uX3Bsb3RzW29dKX1sLmNsZWFuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sci5kcmF3RnJhbWV3b3JrPWZ1bmN0aW9uKHQpe3QuX2NvbnRleHQuc3RhdGljUGxvdHx8bC5kcmF3RnJhbWV3b3JrKHQpfSxyLnRvU1ZHPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Ll9mdWxsTGF5b3V0LHI9ZS5fc3VicGxvdHMuZ2wyZCxuPTA7bjxyLmxlbmd0aDtuKyspe3ZhciBhPWUuX3Bsb3RzW3Jbbl1dLl9zY2VuZTJkLGk9YS50b0ltYWdlKCJwbmciKTtlLl9nbGltYWdlcy5hcHBlbmQoInN2ZzppbWFnZSIpLmF0dHIoe3htbG5zOm8uc3ZnLCJ4bGluazpocmVmIjppLHg6MCx5OjAsd2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIscHJlc2VydmVBc3BlY3RSYXRpbzoibm9uZSJ9KSxhLmRlc3Ryb3koKX19LHIudXBkYXRlRng9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuX2Z1bGxMYXlvdXQscj1lLl9zdWJwbG90cy5nbDJkLG49MDtuPHIubGVuZ3RoO24rKyl7ZS5fcGxvdHNbcltuXV0uX3NjZW5lMmQudXBkYXRlRngoZS5kcmFnbW9kZSl9fX0seyIuLi8uLi9jb21wb25lbnRzL2Z4L2xheW91dF9hdHRyaWJ1dGVzIjo2MzEsIi4uLy4uL2NvbnN0YW50cy94bWxuc19uYW1lc3BhY2VzIjo2OTQsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjc0OCwiLi4vY2FydGVzaWFuIjo3NzYsIi4uL2NhcnRlc2lhbi9hdHRyaWJ1dGVzIjo3NjMsIi4uL2NhcnRlc2lhbi9jb25zdGFudHMiOjc3MSwiLi4vZ2V0X2RhdGEiOjgwMCwiLi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjgxNywiLi9zY2VuZTJkIjo4MDR9XSw4MDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG4sYSxpPXQoIi4uLy4uL3JlZ2lzdHJ5Iiksbz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLHM9dCgiLi4vLi4vY29tcG9uZW50cy9meCIpLGw9dCgiZ2wtcGxvdDJkIiksYz10KCJnbC1zcGlrZXMyZCIpLHU9dCgiZ2wtc2VsZWN0LWJveCIpLGg9dCgid2ViZ2wtY29udGV4dCIpLGY9dCgiLi9jb252ZXJ0IikscD10KCIuL2NhbWVyYSIpLGQ9dCgiLi4vLi4vbGliL3Nob3dfbm9fd2ViZ2xfbXNnIiksZz10KCIuLi9jYXJ0ZXNpYW4vY29uc3RyYWludHMiKSx2PWcuZW5mb3JjZSxtPWcuY2xlYW4seT10KCIuLi9jYXJ0ZXNpYW4vYXV0b3JhbmdlIikuZG9BdXRvUmFuZ2UseD1bInhheGlzIiwieWF4aXMiXSxiPXQoIi4uL2NhcnRlc2lhbi9jb25zdGFudHMiKS5TVUJQTE9UX1BBVFRFUk47ZnVuY3Rpb24gXyh0LGUpe3RoaXMuY29udGFpbmVyPXQuY29udGFpbmVyLHRoaXMuZ3JhcGhEaXY9dC5ncmFwaERpdix0aGlzLnBpeGVsUmF0aW89dC5wbG90R2xQaXhlbFJhdGlvfHx3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyx0aGlzLmlkPXQuaWQsdGhpcy5zdGF0aWNQbG90PSEhdC5zdGF0aWNQbG90LHRoaXMuc2Nyb2xsWm9vbT10aGlzLmdyYXBoRGl2Ll9jb250ZXh0Ll9zY3JvbGxab29tLmNhcnRlc2lhbix0aGlzLmZ1bGxEYXRhPW51bGwsdGhpcy51cGRhdGVSZWZzKGUpLHRoaXMubWFrZUZyYW1ld29yaygpLHRoaXMuc3RvcHBlZHx8KHRoaXMuZ2xwbG90T3B0aW9ucz1mKHRoaXMpLHRoaXMuZ2xwbG90T3B0aW9ucy5tZXJnZShlKSx0aGlzLmdscGxvdD1sKHRoaXMuZ2xwbG90T3B0aW9ucyksdGhpcy5jYW1lcmE9cCh0aGlzKSx0aGlzLnRyYWNlcz17fSx0aGlzLnNwaWtlcz1jKHRoaXMuZ2xwbG90KSx0aGlzLnNlbGVjdEJveD11KHRoaXMuZ2xwbG90LHtpbm5lckZpbGw6ITEsb3V0ZXJGaWxsOiEwfSksdGhpcy5sYXN0QnV0dG9uU3RhdGU9MCx0aGlzLnBpY2tSZXN1bHQ9bnVsbCx0aGlzLmlzTW91c2VPdmVyPSEwLHRoaXMuc3RvcHBlZD0hMSx0aGlzLnJlZHJhdz10aGlzLmRyYXcuYmluZCh0aGlzKSx0aGlzLnJlZHJhdygpKX1lLmV4cG9ydHM9Xzt2YXIgdz1fLnByb3RvdHlwZTt3Lm1ha2VGcmFtZXdvcms9ZnVuY3Rpb24oKXtpZih0aGlzLnN0YXRpY1Bsb3Qpe2lmKCEoYXx8KG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksYT1oKHtjYW52YXM6bixwcmVzZXJ2ZURyYXdpbmdCdWZmZXI6ITEscHJlbXVsdGlwbGllZEFscGhhOiEwLGFudGlhbGlhczohMH0pKSkpdGhyb3cgbmV3IEVycm9yKCJFcnJvciBjcmVhdGluZyBzdGF0aWMgY2FudmFzL2NvbnRleHQgZm9yIGltYWdlIHNlcnZlciIpO3RoaXMuY2FudmFzPW4sdGhpcy5nbD1hfWVsc2V7dmFyIHQ9dGhpcy5jb250YWluZXIucXVlcnlTZWxlY3RvcigiLmdsLWNhbnZhcy1mb2N1cyIpLGU9aCh7Y2FudmFzOnQscHJlc2VydmVEcmF3aW5nQnVmZmVyOiEwLHByZW11bHRpcGxpZWRBbHBoYTohMH0pO2lmKCFlKXJldHVybiBkKHRoaXMpLHZvaWQodGhpcy5zdG9wcGVkPSEwKTt0aGlzLmNhbnZhcz10LHRoaXMuZ2w9ZX12YXIgcj10aGlzLmNhbnZhcztyLnN0eWxlLndpZHRoPSIxMDAlIixyLnN0eWxlLmhlaWdodD0iMTAwJSIsci5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHIuc3R5bGUudG9wPSIwcHgiLHIuc3R5bGUubGVmdD0iMHB4IixyLnN0eWxlWyJwb2ludGVyLWV2ZW50cyJdPSJub25lIix0aGlzLnVwZGF0ZVNpemUociksci5jbGFzc05hbWUrPSIgdXNlci1zZWxlY3Qtbm9uZSI7dmFyIGk9dGhpcy5zdmdDb250YWluZXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsInN2ZyIpO2kuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixpLnN0eWxlLnRvcD1pLnN0eWxlLmxlZnQ9IjBweCIsaS5zdHlsZS53aWR0aD1pLnN0eWxlLmhlaWdodD0iMTAwJSIsaS5zdHlsZVsiei1pbmRleCJdPTIwLGkuc3R5bGVbInBvaW50ZXItZXZlbnRzIl09Im5vbmUiO3ZhciBvPXRoaXMubW91c2VDb250YWluZXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7by5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLG8uc3R5bGVbInBvaW50ZXItZXZlbnRzIl09ImF1dG8iLHRoaXMucGlja0NhbnZhcz10aGlzLmNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCIuZ2wtY2FudmFzLXBpY2siKTt2YXIgcz10aGlzLmNvbnRhaW5lcjtzLmFwcGVuZENoaWxkKGkpLHMuYXBwZW5kQ2hpbGQobyk7dmFyIGw9dGhpcztvLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0IixmdW5jdGlvbigpe2wuaXNNb3VzZU92ZXI9ITEsbC51bmhvdmVyKCl9KSxvLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsZnVuY3Rpb24oKXtsLmlzTW91c2VPdmVyPSEwfSl9LHcudG9JbWFnZT1mdW5jdGlvbih0KXt0fHwodD0icG5nIiksdGhpcy5zdG9wcGVkPSEwLHRoaXMuc3RhdGljUGxvdCYmdGhpcy5jb250YWluZXIuYXBwZW5kQ2hpbGQobiksdGhpcy51cGRhdGVTaXplKHRoaXMuY2FudmFzKTt2YXIgZT10aGlzLmdscGxvdC5nbCxyPWUuZHJhd2luZ0J1ZmZlcldpZHRoLGE9ZS5kcmF3aW5nQnVmZmVySGVpZ2h0O2UuY2xlYXJDb2xvcigxLDEsMSwwKSxlLmNsZWFyKGUuQ09MT1JfQlVGRkVSX0JJVHxlLkRFUFRIX0JVRkZFUl9CSVQpLHRoaXMuZ2xwbG90LnNldERpcnR5KCksdGhpcy5nbHBsb3QuZHJhdygpLGUuYmluZEZyYW1lYnVmZmVyKGUuRlJBTUVCVUZGRVIsbnVsbCk7dmFyIGk9bmV3IFVpbnQ4QXJyYXkociphKjQpO2UucmVhZFBpeGVscygwLDAscixhLGUuUkdCQSxlLlVOU0lHTkVEX0JZVEUsaSk7Zm9yKHZhciBvPTAscz1hLTE7bzxzOysrbywtLXMpZm9yKHZhciBsPTA7bDxyOysrbClmb3IodmFyIGM9MDtjPDQ7KytjKXt2YXIgdT1pWzQqKHIqbytsKStjXTtpWzQqKHIqbytsKStjXT1pWzQqKHIqcytsKStjXSxpWzQqKHIqcytsKStjXT11fXZhciBoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO2gud2lkdGg9cixoLmhlaWdodD1hO3ZhciBmLHA9aC5nZXRDb250ZXh0KCIyZCIpLGQ9cC5jcmVhdGVJbWFnZURhdGEocixhKTtzd2l0Y2goZC5kYXRhLnNldChpKSxwLnB1dEltYWdlRGF0YShkLDAsMCksdCl7Y2FzZSJqcGVnIjpmPWgudG9EYXRhVVJMKCJpbWFnZS9qcGVnIik7YnJlYWs7Y2FzZSJ3ZWJwIjpmPWgudG9EYXRhVVJMKCJpbWFnZS93ZWJwIik7YnJlYWs7ZGVmYXVsdDpmPWgudG9EYXRhVVJMKCJpbWFnZS9wbmciKX1yZXR1cm4gdGhpcy5zdGF0aWNQbG90JiZ0aGlzLmNvbnRhaW5lci5yZW1vdmVDaGlsZChuKSxmfSx3LnVwZGF0ZVNpemU9ZnVuY3Rpb24odCl7dHx8KHQ9dGhpcy5jYW52YXMpO3ZhciBlPXRoaXMucGl4ZWxSYXRpbyxyPXRoaXMuZnVsbExheW91dCxuPXIud2lkdGgsYT1yLmhlaWdodCxpPTB8TWF0aC5jZWlsKGUqbiksbz0wfE1hdGguY2VpbChlKmEpO3JldHVybiB0LndpZHRoPT09aSYmdC5oZWlnaHQ9PT1vfHwodC53aWR0aD1pLHQuaGVpZ2h0PW8pLHR9LHcuY29tcHV0ZVRpY2tNYXJrcz1mdW5jdGlvbigpe3RoaXMueGF4aXMuc2V0U2NhbGUoKSx0aGlzLnlheGlzLnNldFNjYWxlKCk7Zm9yKHZhciB0PVtvLmNhbGNUaWNrcyh0aGlzLnhheGlzKSxvLmNhbGNUaWNrcyh0aGlzLnlheGlzKV0sZT0wO2U8MjsrK2UpZm9yKHZhciByPTA7cjx0W2VdLmxlbmd0aDsrK3IpdFtlXVtyXS50ZXh0PXRbZV1bcl0udGV4dCsiIjtyZXR1cm4gdH0sdy51cGRhdGVSZWZzPWZ1bmN0aW9uKHQpe3RoaXMuZnVsbExheW91dD10O3ZhciBlPXRoaXMuaWQubWF0Y2goYikscj0ieGF4aXMiK2VbMV0sbj0ieWF4aXMiK2VbMl07dGhpcy54YXhpcz10aGlzLmZ1bGxMYXlvdXRbcl0sdGhpcy55YXhpcz10aGlzLmZ1bGxMYXlvdXRbbl19LHcucmVsYXlvdXRDYWxsYmFjaz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZ3JhcGhEaXYsZT10aGlzLnhheGlzLHI9dGhpcy55YXhpcyxuPXQubGF5b3V0LGE9e30sbz1hW2UuX25hbWUrIi5yYW5nZSJdPWUucmFuZ2Uuc2xpY2UoKSxzPWFbci5fbmFtZSsiLnJhbmdlIl09ci5yYW5nZS5zbGljZSgpO2FbZS5fbmFtZSsiLmF1dG9yYW5nZSJdPWUuYXV0b3JhbmdlLGFbci5fbmFtZSsiLmF1dG9yYW5nZSJdPXIuYXV0b3JhbmdlLGkuY2FsbCgiX3N0b3JlRGlyZWN0R1VJRWRpdCIsdC5sYXlvdXQsdC5fZnVsbExheW91dC5fcHJlR1VJLGEpO3ZhciBsPW5bZS5fbmFtZV07bC5yYW5nZT1vLGwuYXV0b3JhbmdlPWUuYXV0b3JhbmdlO3ZhciBjPW5bci5fbmFtZV07Yy5yYW5nZT1zLGMuYXV0b3JhbmdlPXIuYXV0b3JhbmdlLGEubGFzdElucHV0VGltZT10aGlzLmNhbWVyYS5sYXN0SW5wdXRUaW1lLHQuZW1pdCgicGxvdGx5X3JlbGF5b3V0IixhKX0sdy5jYW1lcmFDaGFuZ2VkPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jYW1lcmE7dGhpcy5nbHBsb3Quc2V0RGF0YUJveCh0aGlzLmNhbGNEYXRhQm94KCkpO3ZhciBlPXRoaXMuY29tcHV0ZVRpY2tNYXJrcygpOyhmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wO3I8MjsrK3Ipe3ZhciBuPXRbcl0sYT1lW3JdO2lmKG4ubGVuZ3RoIT09YS5sZW5ndGgpcmV0dXJuITA7Zm9yKHZhciBpPTA7aTxuLmxlbmd0aDsrK2kpaWYobltpXS54IT09YVtpXS54KXJldHVybiEwfXJldHVybiExfSkoZSx0aGlzLmdscGxvdE9wdGlvbnMudGlja3MpJiYodGhpcy5nbHBsb3RPcHRpb25zLnRpY2tzPWUsdGhpcy5nbHBsb3RPcHRpb25zLmRhdGFCb3g9dC5kYXRhQm94LHRoaXMuZ2xwbG90LnVwZGF0ZSh0aGlzLmdscGxvdE9wdGlvbnMpLHRoaXMuaGFuZGxlQW5ub3RhdGlvbnMoKSl9LHcuaGFuZGxlQW5ub3RhdGlvbnM9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5ncmFwaERpdixlPXRoaXMuZnVsbExheW91dC5hbm5vdGF0aW9ucyxyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWVbcl07bi54cmVmPT09dGhpcy54YXhpcy5faWQmJm4ueXJlZj09PXRoaXMueWF4aXMuX2lkJiZpLmdldENvbXBvbmVudE1ldGhvZCgiYW5ub3RhdGlvbnMiLCJkcmF3T25lIikodCxyKX19LHcuZGVzdHJveT1mdW5jdGlvbigpe2lmKHRoaXMuZ2xwbG90KXt2YXIgdD10aGlzLnRyYWNlczt0JiZPYmplY3Qua2V5cyh0KS5tYXAoZnVuY3Rpb24oZSl7dFtlXS5kaXNwb3NlKCksZGVsZXRlIHRbZV19KSx0aGlzLmdscGxvdC5kaXNwb3NlKCksdGhpcy5jb250YWluZXIucmVtb3ZlQ2hpbGQodGhpcy5zdmdDb250YWluZXIpLHRoaXMuY29udGFpbmVyLnJlbW92ZUNoaWxkKHRoaXMubW91c2VDb250YWluZXIpLHRoaXMuZnVsbERhdGE9bnVsbCx0aGlzLmdscGxvdD1udWxsLHRoaXMuc3RvcHBlZD0hMCx0aGlzLmNhbWVyYS5tb3VzZUxpc3RlbmVyLmVuYWJsZWQ9ITEsdGhpcy5tb3VzZUNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCJ3aGVlbCIsdGhpcy5jYW1lcmEud2hlZWxMaXN0ZW5lciksdGhpcy5jYW1lcmE9bnVsbH19LHcucGxvdD1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5nbHBsb3Q7dGhpcy51cGRhdGVSZWZzKHIpLHRoaXMueGF4aXMuY2xlYXJDYWxjKCksdGhpcy55YXhpcy5jbGVhckNhbGMoKSx0aGlzLnVwZGF0ZVRyYWNlcyh0LGUpLHRoaXMudXBkYXRlRngoci5kcmFnbW9kZSk7dmFyIGE9ci53aWR0aCxpPXIuaGVpZ2h0O3RoaXMudXBkYXRlU2l6ZSh0aGlzLmNhbnZhcyk7dmFyIG89dGhpcy5nbHBsb3RPcHRpb25zO28ubWVyZ2Uociksby5zY3JlZW5Cb3g9WzAsMCxhLGldO3ZhciBzPXtfZnVsbExheW91dDp7X2F4aXNDb25zdHJhaW50R3JvdXBzOnRoaXMuZ3JhcGhEaXYuX2Z1bGxMYXlvdXQuX2F4aXNDb25zdHJhaW50R3JvdXBzLHhheGlzOnRoaXMueGF4aXMseWF4aXM6dGhpcy55YXhpc319O20ocyx0aGlzLnhheGlzKSxtKHMsdGhpcy55YXhpcyk7dmFyIGwsYyx1PXIuX3NpemUsaD10aGlzLnhheGlzLmRvbWFpbixmPXRoaXMueWF4aXMuZG9tYWluO2ZvcihvLnZpZXdCb3g9W3UubCtoWzBdKnUudyx1LmIrZlswXSp1LmgsYS11LnItKDEtaFsxXSkqdS53LGktdS50LSgxLWZbMV0pKnUuaF0sdGhpcy5tb3VzZUNvbnRhaW5lci5zdHlsZS53aWR0aD11LncqKGhbMV0taFswXSkrInB4Iix0aGlzLm1vdXNlQ29udGFpbmVyLnN0eWxlLmhlaWdodD11LmgqKGZbMV0tZlswXSkrInB4Iix0aGlzLm1vdXNlQ29udGFpbmVyLmhlaWdodD11LmgqKGZbMV0tZlswXSksdGhpcy5tb3VzZUNvbnRhaW5lci5zdHlsZS5sZWZ0PXUubCtoWzBdKnUudysicHgiLHRoaXMubW91c2VDb250YWluZXIuc3R5bGUudG9wPXUudCsoMS1mWzFdKSp1LmgrInB4IixjPTA7YzwyOysrYykobD10aGlzW3hbY11dKS5fbGVuZ3RoPW8udmlld0JveFtjKzJdLW8udmlld0JveFtjXSx5KHRoaXMuZ3JhcGhEaXYsbCksbC5zZXRTY2FsZSgpO3Yocyksby50aWNrcz10aGlzLmNvbXB1dGVUaWNrTWFya3MoKSxvLmRhdGFCb3g9dGhpcy5jYWxjRGF0YUJveCgpLG8ubWVyZ2Uociksbi51cGRhdGUobyksdGhpcy5nbHBsb3QuZHJhdygpfSx3LmNhbGNEYXRhQm94PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy54YXhpcyxlPXRoaXMueWF4aXMscj10LnJhbmdlLG49ZS5yYW5nZSxhPXQucjJsLGk9ZS5yMmw7cmV0dXJuW2EoclswXSksaShuWzBdKSxhKHJbMV0pLGkoblsxXSldfSx3LnNldFJhbmdlcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnhheGlzLHI9dGhpcy55YXhpcyxuPWUubDJyLGE9ci5sMnI7ZS5yYW5nZT1bbih0WzBdKSxuKHRbMl0pXSxyLnJhbmdlPVthKHRbMV0pLGEodFszXSldfSx3LnVwZGF0ZVRyYWNlcz1mdW5jdGlvbih0LGUpe3ZhciByLG4sYSxpPU9iamVjdC5rZXlzKHRoaXMudHJhY2VzKTt0aGlzLmZ1bGxEYXRhPXQ7dDpmb3Iocj0wO3I8aS5sZW5ndGg7cisrKXt2YXIgbz1pW3JdLHM9dGhpcy50cmFjZXNbb107Zm9yKG49MDtuPHQubGVuZ3RoO24rKylpZigoYT10W25dKS51aWQ9PT1vJiZhLnR5cGU9PT1zLnR5cGUpY29udGludWUgdDtzLmRpc3Bvc2UoKSxkZWxldGUgdGhpcy50cmFjZXNbb119Zm9yKHI9MDtyPHQubGVuZ3RoO3IrKyl7YT10W3JdO3ZhciBsPWVbcl0sYz10aGlzLnRyYWNlc1thLnVpZF07Yz9jLnVwZGF0ZShhLGwpOihjPWEuX21vZHVsZS5wbG90KHRoaXMsYSxsKSx0aGlzLnRyYWNlc1thLnVpZF09Yyl9dGhpcy5nbHBsb3Qub2JqZWN0cy5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX3RyYWNlLmluZGV4LWUuX3RyYWNlLmluZGV4fSl9LHcudXBkYXRlRng9ZnVuY3Rpb24odCl7Imxhc3NvIj09PXR8fCJzZWxlY3QiPT09dD8odGhpcy5waWNrQ2FudmFzLnN0eWxlWyJwb2ludGVyLWV2ZW50cyJdPSJub25lIix0aGlzLm1vdXNlQ29udGFpbmVyLnN0eWxlWyJwb2ludGVyLWV2ZW50cyJdPSJub25lIik6KHRoaXMucGlja0NhbnZhcy5zdHlsZVsicG9pbnRlci1ldmVudHMiXT0iYXV0byIsdGhpcy5tb3VzZUNvbnRhaW5lci5zdHlsZVsicG9pbnRlci1ldmVudHMiXT0iYXV0byIpLHRoaXMubW91c2VDb250YWluZXIuc3R5bGUuY3Vyc29yPSJwYW4iPT09dD8ibW92ZSI6Inpvb20iPT09dD8iY3Jvc3NoYWlyIjpudWxsfSx3LmVtaXRQb2ludEFjdGlvbj1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcixuPXQudHJhY2UudWlkLGE9dC5wb2ludEluZGV4LGk9MDtpPHRoaXMuZnVsbERhdGEubGVuZ3RoO2krKyl0aGlzLmZ1bGxEYXRhW2ldLnVpZD09PW4mJihyPXRoaXMuZnVsbERhdGFbaV0pO3ZhciBvPXt4OnQudHJhY2VDb29yZFswXSx5OnQudHJhY2VDb29yZFsxXSxjdXJ2ZU51bWJlcjpyLmluZGV4LHBvaW50TnVtYmVyOmEsZGF0YTpyLl9pbnB1dCxmdWxsRGF0YTp0aGlzLmZ1bGxEYXRhLHhheGlzOnRoaXMueGF4aXMseWF4aXM6dGhpcy55YXhpc307cy5hcHBlbmRBcnJheVBvaW50VmFsdWUobyxyLGEpLHRoaXMuZ3JhcGhEaXYuZW1pdChlLHtwb2ludHM6W29dfSl9LHcuZHJhdz1mdW5jdGlvbigpe2lmKCF0aGlzLnN0b3BwZWQpe3JlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLnJlZHJhdyk7dmFyIHQ9dGhpcy5nbHBsb3QsZT10aGlzLmNhbWVyYSxyPWUubW91c2VMaXN0ZW5lcixuPTE9PT10aGlzLmxhc3RCdXR0b25TdGF0ZSYmMD09PXIuYnV0dG9ucyxhPXRoaXMuZnVsbExheW91dDt0aGlzLmxhc3RCdXR0b25TdGF0ZT1yLmJ1dHRvbnMsdGhpcy5jYW1lcmFDaGFuZ2VkKCk7dmFyIGksbz1yLngqdC5waXhlbFJhdGlvLGw9dGhpcy5jYW52YXMuaGVpZ2h0LXQucGl4ZWxSYXRpbypyLnk7aWYoZS5ib3hFbmFibGVkJiYiem9vbSI9PT1hLmRyYWdtb2RlKXt0aGlzLnNlbGVjdEJveC5lbmFibGVkPSEwO2Zvcih2YXIgYz10aGlzLnNlbGVjdEJveC5zZWxlY3RCb3g9W01hdGgubWluKGUuYm94U3RhcnRbMF0sZS5ib3hFbmRbMF0pLE1hdGgubWluKGUuYm94U3RhcnRbMV0sZS5ib3hFbmRbMV0pLE1hdGgubWF4KGUuYm94U3RhcnRbMF0sZS5ib3hFbmRbMF0pLE1hdGgubWF4KGUuYm94U3RhcnRbMV0sZS5ib3hFbmRbMV0pXSx1PTA7dTwyO3UrKyllLmJveFN0YXJ0W3VdPT09ZS5ib3hFbmRbdV0mJihjW3VdPXQuZGF0YUJveFt1XSxjW3UrMl09dC5kYXRhQm94W3UrMl0pO3Quc2V0RGlydHkoKX1lbHNlIGlmKCFlLnBhbm5pbmcmJnRoaXMuaXNNb3VzZU92ZXIpe3RoaXMuc2VsZWN0Qm94LmVuYWJsZWQ9ITE7dmFyIGg9YS5fc2l6ZSxmPXRoaXMueGF4aXMuZG9tYWluLHA9dGhpcy55YXhpcy5kb21haW4sZD0oaT10LnBpY2soby90LnBpeGVsUmF0aW8raC5sK2ZbMF0qaC53LGwvdC5waXhlbFJhdGlvLShoLnQrKDEtcFsxXSkqaC5oKSkpJiZpLm9iamVjdC5fdHJhY2UuaGFuZGxlUGljayhpKTtpZihkJiZuJiZ0aGlzLmVtaXRQb2ludEFjdGlvbihkLCJwbG90bHlfY2xpY2siKSxpJiYic2tpcCIhPT1pLm9iamVjdC5fdHJhY2UuaG92ZXJpbmZvJiZhLmhvdmVybW9kZSYmZCYmKCF0aGlzLmxhc3RQaWNrUmVzdWx0fHx0aGlzLmxhc3RQaWNrUmVzdWx0LnRyYWNlVWlkIT09ZC50cmFjZS51aWR8fHRoaXMubGFzdFBpY2tSZXN1bHQuZGF0YUNvb3JkWzBdIT09ZC5kYXRhQ29vcmRbMF18fHRoaXMubGFzdFBpY2tSZXN1bHQuZGF0YUNvb3JkWzFdIT09ZC5kYXRhQ29vcmRbMV0pKXt2YXIgZz1kO3RoaXMubGFzdFBpY2tSZXN1bHQ9e3RyYWNlVWlkOmQudHJhY2U/ZC50cmFjZS51aWQ6bnVsbCxkYXRhQ29vcmQ6ZC5kYXRhQ29vcmQuc2xpY2UoKX0sdGhpcy5zcGlrZXMudXBkYXRlKHtjZW50ZXI6aS5kYXRhQ29vcmR9KSxnLnNjcmVlbkNvb3JkPVsoKHQudmlld0JveFsyXS10LnZpZXdCb3hbMF0pKihpLmRhdGFDb29yZFswXS10LmRhdGFCb3hbMF0pLyh0LmRhdGFCb3hbMl0tdC5kYXRhQm94WzBdKSt0LnZpZXdCb3hbMF0pL3QucGl4ZWxSYXRpbywodGhpcy5jYW52YXMuaGVpZ2h0LSh0LnZpZXdCb3hbM10tdC52aWV3Qm94WzFdKSooaS5kYXRhQ29vcmRbMV0tdC5kYXRhQm94WzFdKS8odC5kYXRhQm94WzNdLXQuZGF0YUJveFsxXSktdC52aWV3Qm94WzFdKS90LnBpeGVsUmF0aW9dLHRoaXMuZW1pdFBvaW50QWN0aW9uKGQsInBsb3RseV9ob3ZlciIpO3ZhciB2PXRoaXMuZnVsbERhdGFbZy50cmFjZS5pbmRleF18fHt9LG09Zy5wb2ludEluZGV4LHk9cy5jYXN0SG92ZXJpbmZvKHYsYSxtKTtpZih5JiYiYWxsIiE9PXkpe3ZhciB4PXkuc3BsaXQoIisiKTstMT09PXguaW5kZXhPZigieCIpJiYoZy50cmFjZUNvb3JkWzBdPXZvaWQgMCksLTE9PT14LmluZGV4T2YoInkiKSYmKGcudHJhY2VDb29yZFsxXT12b2lkIDApLC0xPT09eC5pbmRleE9mKCJ6IikmJihnLnRyYWNlQ29vcmRbMl09dm9pZCAwKSwtMT09PXguaW5kZXhPZigidGV4dCIpJiYoZy50ZXh0TGFiZWw9dm9pZCAwKSwtMT09PXguaW5kZXhPZigibmFtZSIpJiYoZy5uYW1lPXZvaWQgMCl9cy5sb25lSG92ZXIoe3g6Zy5zY3JlZW5Db29yZFswXSx5Omcuc2NyZWVuQ29vcmRbMV0seExhYmVsOnRoaXMuaG92ZXJGb3JtYXR0ZXIoInhheGlzIixnLnRyYWNlQ29vcmRbMF0pLHlMYWJlbDp0aGlzLmhvdmVyRm9ybWF0dGVyKCJ5YXhpcyIsZy50cmFjZUNvb3JkWzFdKSx6TGFiZWw6Zy50cmFjZUNvb3JkWzJdLHRleHQ6Zy50ZXh0TGFiZWwsbmFtZTpnLm5hbWUsY29sb3I6cy5jYXN0SG92ZXJPcHRpb24odixtLCJiZ2NvbG9yIil8fGcuY29sb3IsYm9yZGVyQ29sb3I6cy5jYXN0SG92ZXJPcHRpb24odixtLCJib3JkZXJjb2xvciIpLGZvbnRGYW1pbHk6cy5jYXN0SG92ZXJPcHRpb24odixtLCJmb250LmZhbWlseSIpLGZvbnRTaXplOnMuY2FzdEhvdmVyT3B0aW9uKHYsbSwiZm9udC5zaXplIiksZm9udENvbG9yOnMuY2FzdEhvdmVyT3B0aW9uKHYsbSwiZm9udC5jb2xvciIpLG5hbWVMZW5ndGg6cy5jYXN0SG92ZXJPcHRpb24odixtLCJuYW1lbGVuZ3RoIiksdGV4dEFsaWduOnMuY2FzdEhvdmVyT3B0aW9uKHYsbSwiYWxpZ24iKX0se2NvbnRhaW5lcjp0aGlzLnN2Z0NvbnRhaW5lcixnZDp0aGlzLmdyYXBoRGl2fSl9fWl8fHRoaXMudW5ob3ZlcigpLHQuZHJhdygpfX0sdy51bmhvdmVyPWZ1bmN0aW9uKCl7dGhpcy5sYXN0UGlja1Jlc3VsdCYmKHRoaXMuc3Bpa2VzLnVwZGF0ZSh7fSksdGhpcy5sYXN0UGlja1Jlc3VsdD1udWxsLHRoaXMuZ3JhcGhEaXYuZW1pdCgicGxvdGx5X3VuaG92ZXIiKSxzLmxvbmVVbmhvdmVyKHRoaXMuc3ZnQ29udGFpbmVyKSl9LHcuaG92ZXJGb3JtYXR0ZXI9ZnVuY3Rpb24odCxlKXtpZih2b2lkIDAhPT1lKXt2YXIgcj10aGlzW3RdO3JldHVybiBvLnRpY2tUZXh0KHIsci5jMmwoZSksImhvdmVyIikudGV4dH19fSx7Ii4uLy4uL2NvbXBvbmVudHMvZngiOjYzMCwiLi4vLi4vbGliL3Nob3dfbm9fd2ViZ2xfbXNnIjo3MzgsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo3NjUsIi4uLy4uL3JlZ2lzdHJ5Ijo4NDYsIi4uL2NhcnRlc2lhbi9hdXRvcmFuZ2UiOjc2NCwiLi4vY2FydGVzaWFuL2NvbnN0YW50cyI6NzcxLCIuLi9jYXJ0ZXNpYW4vY29uc3RyYWludHMiOjc3MiwiLi9jYW1lcmEiOjgwMSwiLi9jb252ZXJ0Ijo4MDIsImdsLXBsb3QyZCI6MjkwLCJnbC1zZWxlY3QtYm94IjozMDIsImdsLXNwaWtlczJkIjozMTEsIndlYmdsLWNvbnRleHQiOjU1NX1dLDgwNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIikub3ZlcnJpZGVBbGwsYT10KCIuLi8uLi9jb21wb25lbnRzL2Z4L2xheW91dF9hdHRyaWJ1dGVzIiksaT10KCIuL3NjZW5lIiksbz10KCIuLi9nZXRfZGF0YSIpLmdldFN1YnBsb3REYXRhLHM9dCgiLi4vLi4vbGliIiksbD10KCIuLi8uLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyIpO3IubmFtZT0iZ2wzZCIsci5hdHRyPSJzY2VuZSIsci5pZFJvb3Q9InNjZW5lIixyLmlkUmVnZXg9ci5hdHRyUmVnZXg9cy5jb3VudGVyUmVnZXgoInNjZW5lIiksci5hdHRyaWJ1dGVzPXQoIi4vbGF5b3V0L2F0dHJpYnV0ZXMiKSxyLmxheW91dEF0dHJpYnV0ZXM9dCgiLi9sYXlvdXQvbGF5b3V0X2F0dHJpYnV0ZXMiKSxyLmJhc2VMYXlvdXRBdHRyT3ZlcnJpZGVzPW4oe2hvdmVybGFiZWw6YS5ob3ZlcmxhYmVsfSwicGxvdCIsIm5lc3RlZCIpLHIuc3VwcGx5TGF5b3V0RGVmYXVsdHM9dCgiLi9sYXlvdXQvZGVmYXVsdHMiKSxyLnBsb3Q9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuX2Z1bGxMYXlvdXQscj10Ll9mdWxsRGF0YSxuPWUuX3N1YnBsb3RzLmdsM2QsYT0wO2E8bi5sZW5ndGg7YSsrKXt2YXIgcz1uW2FdLGw9byhyLCJnbDNkIixzKSxjPWVbc10sdT1jLmNhbWVyYSxoPWMuX3NjZW5lO2h8fChoPW5ldyBpKHtpZDpzLGdyYXBoRGl2OnQsY29udGFpbmVyOnQucXVlcnlTZWxlY3RvcigiLmdsLWNvbnRhaW5lciIpLHN0YXRpY1Bsb3Q6dC5fY29udGV4dC5zdGF0aWNQbG90LHBsb3RHbFBpeGVsUmF0aW86dC5fY29udGV4dC5wbG90R2xQaXhlbFJhdGlvLGNhbWVyYTp1fSxlKSxjLl9zY2VuZT1oKSxoLnZpZXdJbml0aWFsfHwoaC52aWV3SW5pdGlhbD17dXA6e3g6dS51cC54LHk6dS51cC55LHo6dS51cC56fSxleWU6e3g6dS5leWUueCx5OnUuZXllLnksejp1LmV5ZS56fSxjZW50ZXI6e3g6dS5jZW50ZXIueCx5OnUuY2VudGVyLnksejp1LmNlbnRlci56fX0pLGgucGxvdChsLGUsdC5sYXlvdXQpfX0sci5jbGVhbj1mdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGE9bi5fc3VicGxvdHMuZ2wzZHx8W10saT0wO2k8YS5sZW5ndGg7aSsrKXt2YXIgbz1hW2ldOyFlW29dJiZuW29dLl9zY2VuZSYmKG5bb10uX3NjZW5lLmRlc3Ryb3koKSxuLl9pbmZvbGF5ZXImJm4uX2luZm9sYXllci5zZWxlY3RBbGwoIi5hbm5vdGF0aW9uLSIrbykucmVtb3ZlKCkpfX0sci50b1NWRz1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5fZnVsbExheW91dCxyPWUuX3N1YnBsb3RzLmdsM2Qsbj1lLl9zaXplLGE9MDthPHIubGVuZ3RoO2ErKyl7dmFyIGk9ZVtyW2FdXSxvPWkuZG9tYWluLHM9aS5fc2NlbmUsYz1zLnRvSW1hZ2UoInBuZyIpO2UuX2dsaW1hZ2VzLmFwcGVuZCgic3ZnOmltYWdlIikuYXR0cih7eG1sbnM6bC5zdmcsInhsaW5rOmhyZWYiOmMseDpuLmwrbi53Km8ueFswXSx5Om4udCtuLmgqKDEtby55WzFdKSx3aWR0aDpuLncqKG8ueFsxXS1vLnhbMF0pLGhlaWdodDpuLmgqKG8ueVsxXS1vLnlbMF0pLHByZXNlcnZlQXNwZWN0UmF0aW86Im5vbmUifSkscy5kZXN0cm95KCl9fSxyLmNsZWFuSWQ9ZnVuY3Rpb24odCl7aWYodC5tYXRjaCgvXnNjZW5lWzAtOV0qJC8pKXt2YXIgZT10LnN1YnN0cig1KTtyZXR1cm4iMSI9PT1lJiYoZT0iIiksInNjZW5lIitlfX0sci51cGRhdGVGeD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5fZnVsbExheW91dCxyPWUuX3N1YnBsb3RzLmdsM2Qsbj0wO248ci5sZW5ndGg7bisrKXtlW3Jbbl1dLl9zY2VuZS51cGRhdGVGeChlLmRyYWdtb2RlLGUuaG92ZXJtb2RlKX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvZngvbGF5b3V0X2F0dHJpYnV0ZXMiOjYzMSwiLi4vLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiOjY5NCwiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjc0OCwiLi4vZ2V0X2RhdGEiOjgwMCwiLi9sYXlvdXQvYXR0cmlidXRlcyI6ODA2LCIuL2xheW91dC9kZWZhdWx0cyI6ODEwLCIuL2xheW91dC9sYXlvdXRfYXR0cmlidXRlcyI6ODExLCIuL3NjZW5lIjo4MTV9XSw4MDY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtzY2VuZTp7dmFsVHlwZToic3VicGxvdGlkIixkZmx0OiJzY2VuZSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifX19LHt9XSw4MDc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGE9dCgiLi4vLi4vY2FydGVzaWFuL2xheW91dF9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxvPXQoIi4uLy4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbDtlLmV4cG9ydHM9byh7dmlzaWJsZTphLnZpc2libGUsc2hvd3NwaWtlczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMH0sc3Bpa2VzaWRlczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMH0sc3Bpa2V0aGlja25lc3M6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoyfSxzcGlrZWNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpuLmRlZmF1bHRMaW5lfSxzaG93YmFja2dyb3VuZDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sYmFja2dyb3VuZGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDoicmdiYSgyMDQsIDIwNCwgMjA0LCAwLjUpIn0sc2hvd2F4ZXNsYWJlbHM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITB9LGNvbG9yOmEuY29sb3IsY2F0ZWdvcnlvcmRlcjphLmNhdGVnb3J5b3JkZXIsY2F0ZWdvcnlhcnJheTphLmNhdGVnb3J5YXJyYXksdGl0bGU6e3RleHQ6YS50aXRsZS50ZXh0LGZvbnQ6YS50aXRsZS5mb250fSx0eXBlOmkoe30sYS50eXBlLHt2YWx1ZXM6WyItIiwibGluZWFyIiwibG9nIiwiZGF0ZSIsImNhdGVnb3J5Il19KSxhdXRvcmFuZ2U6YS5hdXRvcmFuZ2UscmFuZ2Vtb2RlOmEucmFuZ2Vtb2RlLHJhbmdlOmkoe30sYS5yYW5nZSx7aXRlbXM6W3t2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJwbG90IixpbXBsaWVkRWRpdHM6eyJeYXV0b3JhbmdlIjohMX19LHt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJwbG90IixpbXBsaWVkRWRpdHM6eyJeYXV0b3JhbmdlIjohMX19XSxhbmltOiExfSksdGlja21vZGU6YS50aWNrbW9kZSxudGlja3M6YS5udGlja3MsdGljazA6YS50aWNrMCxkdGljazphLmR0aWNrLHRpY2t2YWxzOmEudGlja3ZhbHMsdGlja3RleHQ6YS50aWNrdGV4dCx0aWNrczphLnRpY2tzLG1pcnJvcjphLm1pcnJvcix0aWNrbGVuOmEudGlja2xlbix0aWNrd2lkdGg6YS50aWNrd2lkdGgsdGlja2NvbG9yOmEudGlja2NvbG9yLHNob3d0aWNrbGFiZWxzOmEuc2hvd3RpY2tsYWJlbHMsdGlja2ZvbnQ6YS50aWNrZm9udCx0aWNrYW5nbGU6YS50aWNrYW5nbGUsdGlja3ByZWZpeDphLnRpY2twcmVmaXgsc2hvd3RpY2twcmVmaXg6YS5zaG93dGlja3ByZWZpeCx0aWNrc3VmZml4OmEudGlja3N1ZmZpeCxzaG93dGlja3N1ZmZpeDphLnNob3d0aWNrc3VmZml4LHNob3dleHBvbmVudDphLnNob3dleHBvbmVudCxleHBvbmVudGZvcm1hdDphLmV4cG9uZW50Zm9ybWF0LHNlcGFyYXRldGhvdXNhbmRzOmEuc2VwYXJhdGV0aG91c2FuZHMsdGlja2Zvcm1hdDphLnRpY2tmb3JtYXQsdGlja2Zvcm1hdHN0b3BzOmEudGlja2Zvcm1hdHN0b3BzLGhvdmVyZm9ybWF0OmEuaG92ZXJmb3JtYXQsc2hvd2xpbmU6YS5zaG93bGluZSxsaW5lY29sb3I6YS5saW5lY29sb3IsbGluZXdpZHRoOmEubGluZXdpZHRoLHNob3dncmlkOmEuc2hvd2dyaWQsZ3JpZGNvbG9yOmkoe30sYS5ncmlkY29sb3Ise2RmbHQ6InJnYigyMDQsIDIwNCwgMjA0KSJ9KSxncmlkd2lkdGg6YS5ncmlkd2lkdGgsemVyb2xpbmU6YS56ZXJvbGluZSx6ZXJvbGluZWNvbG9yOmEuemVyb2xpbmVjb2xvcix6ZXJvbGluZXdpZHRoOmEuemVyb2xpbmV3aWR0aCxfZGVwcmVjYXRlZDp7dGl0bGU6YS5fZGVwcmVjYXRlZC50aXRsZSx0aXRsZWZvbnQ6YS5fZGVwcmVjYXRlZC50aXRsZWZvbnR9fSwicGxvdCIsImZyb20tcm9vdCIpfSx7Ii4uLy4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjU5MiwiLi4vLi4vLi4vbGliL2V4dGVuZCI6NzA4LCIuLi8uLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIjo3NDgsIi4uLy4uL2NhcnRlc2lhbi9sYXlvdXRfYXR0cmlidXRlcyI6Nzc3fV0sODA4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInRpbnljb2xvcjIiKS5taXgsYT10KCIuLi8uLi8uLi9saWIiKSxpPXQoIi4uLy4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKSxvPXQoIi4vYXhpc19hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9jYXJ0ZXNpYW4vdHlwZV9kZWZhdWx0cyIpLGw9dCgiLi4vLi4vY2FydGVzaWFuL2F4aXNfZGVmYXVsdHMiKSxjPVsieGF4aXMiLCJ5YXhpcyIsInpheGlzIl07ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgdSxoO2Z1bmN0aW9uIGYodCxlKXtyZXR1cm4gYS5jb2VyY2UodSxoLG8sdCxlKX1mb3IodmFyIHA9MDtwPGMubGVuZ3RoO3ArKyl7dmFyIGQ9Y1twXTt1PXRbZF18fHt9LChoPWkubmV3Q29udGFpbmVyKGUsZCkpLl9pZD1kWzBdK3Iuc2NlbmUsaC5fbmFtZT1kLHModSxoLGYsciksbCh1LGgsZix7Zm9udDpyLmZvbnQsbGV0dGVyOmRbMF0sZGF0YTpyLmRhdGEsc2hvd0dyaWQ6ITAsbm9UaWNrc29uOiEwLGJnQ29sb3I6ci5iZ0NvbG9yLGNhbGVuZGFyOnIuY2FsZW5kYXJ9LHIuZnVsbExheW91dCksZigiZ3JpZGNvbG9yIixuKGguY29sb3Isci5iZ0NvbG9yLDEzNjAwLzE4NykudG9SZ2JTdHJpbmcoKSksZigidGl0bGUudGV4dCIsZFswXSksaC5zZXRTY2FsZT1hLm5vb3AsZigic2hvd3NwaWtlcyIpJiYoZigic3Bpa2VzaWRlcyIpLGYoInNwaWtldGhpY2tuZXNzIiksZigic3Bpa2Vjb2xvciIsaC5jb2xvcikpLGYoInNob3dheGVzbGFiZWxzIiksZigic2hvd2JhY2tncm91bmQiKSYmZigiYmFja2dyb3VuZGNvbG9yIil9fX0seyIuLi8uLi8uLi9saWIiOjcxNywiLi4vLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NzU1LCIuLi8uLi9jYXJ0ZXNpYW4vYXhpc19kZWZhdWx0cyI6NzY3LCIuLi8uLi9jYXJ0ZXNpYW4vdHlwZV9kZWZhdWx0cyI6Nzg4LCIuL2F4aXNfYXR0cmlidXRlcyI6ODA3LHRpbnljb2xvcjI6NTM2fV0sODA5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uLy4uL2xpYi9zdHIycmdiYXJyYXkiKSxhPXQoIi4uLy4uLy4uL2xpYiIpLGk9WyJ4YXhpcyIsInlheGlzIiwiemF4aXMiXTtmdW5jdGlvbiBvKCl7dGhpcy5ib3VuZHM9W1stMTAsLTEwLC0xMF0sWzEwLDEwLDEwXV0sdGhpcy50aWNrcz1bW10sW10sW11dLHRoaXMudGlja0VuYWJsZT1bITAsITAsITBdLHRoaXMudGlja0ZvbnQ9WyJzYW5zLXNlcmlmIiwic2Fucy1zZXJpZiIsInNhbnMtc2VyaWYiXSx0aGlzLnRpY2tTaXplPVsxMiwxMiwxMl0sdGhpcy50aWNrQW5nbGU9WzAsMCwwXSx0aGlzLnRpY2tDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMudGlja1BhZD1bMTgsMTgsMThdLHRoaXMubGFiZWxzPVsieCIsInkiLCJ6Il0sdGhpcy5sYWJlbEVuYWJsZT1bITAsITAsITBdLHRoaXMubGFiZWxGb250PVsiT3BlbiBTYW5zIiwiT3BlbiBTYW5zIiwiT3BlbiBTYW5zIl0sdGhpcy5sYWJlbFNpemU9WzIwLDIwLDIwXSx0aGlzLmxhYmVsQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLmxhYmVsUGFkPVszMCwzMCwzMF0sdGhpcy5saW5lRW5hYmxlPVshMCwhMCwhMF0sdGhpcy5saW5lTWlycm9yPVshMSwhMSwhMV0sdGhpcy5saW5lV2lkdGg9WzEsMSwxXSx0aGlzLmxpbmVDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMubGluZVRpY2tFbmFibGU9WyEwLCEwLCEwXSx0aGlzLmxpbmVUaWNrTWlycm9yPVshMSwhMSwhMV0sdGhpcy5saW5lVGlja0xlbmd0aD1bMTAsMTAsMTBdLHRoaXMubGluZVRpY2tXaWR0aD1bMSwxLDFdLHRoaXMubGluZVRpY2tDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMuZ3JpZEVuYWJsZT1bITAsITAsITBdLHRoaXMuZ3JpZFdpZHRoPVsxLDEsMV0sdGhpcy5ncmlkQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLnplcm9FbmFibGU9WyEwLCEwLCEwXSx0aGlzLnplcm9MaW5lQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLnplcm9MaW5lV2lkdGg9WzIsMiwyXSx0aGlzLmJhY2tncm91bmRFbmFibGU9WyEwLCEwLCEwXSx0aGlzLmJhY2tncm91bmRDb2xvcj1bWy44LC44LC44LC41XSxbLjgsLjgsLjgsLjVdLFsuOCwuOCwuOCwuNV1dLHRoaXMuX2RlZmF1bHRUaWNrUGFkPXRoaXMudGlja1BhZC5zbGljZSgpLHRoaXMuX2RlZmF1bHRMYWJlbFBhZD10aGlzLmxhYmVsUGFkLnNsaWNlKCksdGhpcy5fZGVmYXVsdExpbmVUaWNrTGVuZ3RoPXRoaXMubGluZVRpY2tMZW5ndGguc2xpY2UoKX1vLnByb3RvdHlwZS5tZXJnZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wO3I8MzsrK3Ipe3ZhciBvPWVbaVtyXV07by52aXNpYmxlPyh0aGlzLmxhYmVsc1tyXT10Ll9tZXRhP2EudGVtcGxhdGVTdHJpbmcoby50aXRsZS50ZXh0LHQuX21ldGEpOm8udGl0bGUudGV4dCwiZm9udCJpbiBvLnRpdGxlJiYoby50aXRsZS5mb250LmNvbG9yJiYodGhpcy5sYWJlbENvbG9yW3JdPW4oby50aXRsZS5mb250LmNvbG9yKSksby50aXRsZS5mb250LmZhbWlseSYmKHRoaXMubGFiZWxGb250W3JdPW8udGl0bGUuZm9udC5mYW1pbHkpLG8udGl0bGUuZm9udC5zaXplJiYodGhpcy5sYWJlbFNpemVbcl09by50aXRsZS5mb250LnNpemUpKSwic2hvd2xpbmUiaW4gbyYmKHRoaXMubGluZUVuYWJsZVtyXT1vLnNob3dsaW5lKSwibGluZWNvbG9yImluIG8mJih0aGlzLmxpbmVDb2xvcltyXT1uKG8ubGluZWNvbG9yKSksImxpbmV3aWR0aCJpbiBvJiYodGhpcy5saW5lV2lkdGhbcl09by5saW5ld2lkdGgpLCJzaG93Z3JpZCJpbiBvJiYodGhpcy5ncmlkRW5hYmxlW3JdPW8uc2hvd2dyaWQpLCJncmlkY29sb3IiaW4gbyYmKHRoaXMuZ3JpZENvbG9yW3JdPW4oby5ncmlkY29sb3IpKSwiZ3JpZHdpZHRoImluIG8mJih0aGlzLmdyaWRXaWR0aFtyXT1vLmdyaWR3aWR0aCksImxvZyI9PT1vLnR5cGU/dGhpcy56ZXJvRW5hYmxlW3JdPSExOiJ6ZXJvbGluZSJpbiBvJiYodGhpcy56ZXJvRW5hYmxlW3JdPW8uemVyb2xpbmUpLCJ6ZXJvbGluZWNvbG9yImluIG8mJih0aGlzLnplcm9MaW5lQ29sb3Jbcl09bihvLnplcm9saW5lY29sb3IpKSwiemVyb2xpbmV3aWR0aCJpbiBvJiYodGhpcy56ZXJvTGluZVdpZHRoW3JdPW8uemVyb2xpbmV3aWR0aCksInRpY2tzImluIG8mJm8udGlja3M/dGhpcy5saW5lVGlja0VuYWJsZVtyXT0hMDp0aGlzLmxpbmVUaWNrRW5hYmxlW3JdPSExLCJ0aWNrbGVuImluIG8mJih0aGlzLmxpbmVUaWNrTGVuZ3RoW3JdPXRoaXMuX2RlZmF1bHRMaW5lVGlja0xlbmd0aFtyXT1vLnRpY2tsZW4pLCJ0aWNrY29sb3IiaW4gbyYmKHRoaXMubGluZVRpY2tDb2xvcltyXT1uKG8udGlja2NvbG9yKSksInRpY2t3aWR0aCJpbiBvJiYodGhpcy5saW5lVGlja1dpZHRoW3JdPW8udGlja3dpZHRoKSwidGlja2FuZ2xlImluIG8mJih0aGlzLnRpY2tBbmdsZVtyXT0iYXV0byI9PT1vLnRpY2thbmdsZT8tMzYwMDpNYXRoLlBJKi1vLnRpY2thbmdsZS8xODApLCJzaG93dGlja2xhYmVscyJpbiBvJiYodGhpcy50aWNrRW5hYmxlW3JdPW8uc2hvd3RpY2tsYWJlbHMpLCJ0aWNrZm9udCJpbiBvJiYoby50aWNrZm9udC5jb2xvciYmKHRoaXMudGlja0NvbG9yW3JdPW4oby50aWNrZm9udC5jb2xvcikpLG8udGlja2ZvbnQuZmFtaWx5JiYodGhpcy50aWNrRm9udFtyXT1vLnRpY2tmb250LmZhbWlseSksby50aWNrZm9udC5zaXplJiYodGhpcy50aWNrU2l6ZVtyXT1vLnRpY2tmb250LnNpemUpKSwibWlycm9yImluIG8/LTEhPT1bInRpY2tzIiwiYWxsIiwiYWxsdGlja3MiXS5pbmRleE9mKG8ubWlycm9yKT8odGhpcy5saW5lVGlja01pcnJvcltyXT0hMCx0aGlzLmxpbmVNaXJyb3Jbcl09ITApOiEwPT09by5taXJyb3I/KHRoaXMubGluZVRpY2tNaXJyb3Jbcl09ITEsdGhpcy5saW5lTWlycm9yW3JdPSEwKToodGhpcy5saW5lVGlja01pcnJvcltyXT0hMSx0aGlzLmxpbmVNaXJyb3Jbcl09ITEpOnRoaXMubGluZU1pcnJvcltyXT0hMSwic2hvd2JhY2tncm91bmQiaW4gbyYmITEhPT1vLnNob3diYWNrZ3JvdW5kPyh0aGlzLmJhY2tncm91bmRFbmFibGVbcl09ITAsdGhpcy5iYWNrZ3JvdW5kQ29sb3Jbcl09bihvLmJhY2tncm91bmRjb2xvcikpOnRoaXMuYmFja2dyb3VuZEVuYWJsZVtyXT0hMSk6KHRoaXMudGlja0VuYWJsZVtyXT0hMSx0aGlzLmxhYmVsRW5hYmxlW3JdPSExLHRoaXMubGluZUVuYWJsZVtyXT0hMSx0aGlzLmxpbmVUaWNrRW5hYmxlW3JdPSExLHRoaXMuZ3JpZEVuYWJsZVtyXT0hMSx0aGlzLnplcm9FbmFibGVbcl09ITEsdGhpcy5iYWNrZ3JvdW5kRW5hYmxlW3JdPSExKX19LGUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPW5ldyBvO3JldHVybiByLm1lcmdlKHQsZSkscn19LHsiLi4vLi4vLi4vbGliIjo3MTcsIi4uLy4uLy4uL2xpYi9zdHIycmdiYXJyYXkiOjc0MH1dLDgxMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi8uLi9saWIiKSxhPXQoIi4uLy4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxpPXQoIi4uLy4uLy4uL3JlZ2lzdHJ5Iiksbz10KCIuLi8uLi9zdWJwbG90X2RlZmF1bHRzIikscz10KCIuL2F4aXNfZGVmYXVsdHMiKSxsPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxjPXQoIi4uLy4uL2dldF9kYXRhIikuZ2V0U3VicGxvdERhdGEsdT0iZ2wzZCI7ZnVuY3Rpb24gaCh0LGUscixuKXtmb3IodmFyIG89cigiYmdjb2xvciIpLGw9YS5jb21iaW5lKG8sbi5wYXBlcl9iZ2NvbG9yKSxoPVsidXAiLCJjZW50ZXIiLCJleWUiXSxmPTA7ZjxoLmxlbmd0aDtmKyspcigiY2FtZXJhLiIraFtmXSsiLngiKSxyKCJjYW1lcmEuIitoW2ZdKyIueSIpLHIoImNhbWVyYS4iK2hbZl0rIi56Iik7cigiY2FtZXJhLnByb2plY3Rpb24udHlwZSIpO3ZhciBwPSEhcigiYXNwZWN0cmF0aW8ueCIpJiYhIXIoImFzcGVjdHJhdGlvLnkiKSYmISFyKCJhc3BlY3RyYXRpby56IiksZD1yKCJhc3BlY3Rtb2RlIixwPyJtYW51YWwiOiJhdXRvIik7cHx8KHQuYXNwZWN0cmF0aW89ZS5hc3BlY3RyYXRpbz17eDoxLHk6MSx6OjF9LCJtYW51YWwiPT09ZCYmKGUuYXNwZWN0bW9kZT0iYXV0byIpLHQuYXNwZWN0bW9kZT1lLmFzcGVjdG1vZGUpO3ZhciBnPWMobi5mdWxsRGF0YSx1LG4uaWQpO3ModCxlLHtmb250Om4uZm9udCxzY2VuZTpuLmlkLGRhdGE6ZyxiZ0NvbG9yOmwsY2FsZW5kYXI6bi5jYWxlbmRhcixmdWxsTGF5b3V0Om4uZnVsbExheW91dH0pLGkuZ2V0Q29tcG9uZW50TWV0aG9kKCJhbm5vdGF0aW9uczNkIiwiaGFuZGxlRGVmYXVsdHMiKSh0LGUsbik7dmFyIHY9bi5nZXREZmx0RnJvbUxheW91dCgiZHJhZ21vZGUiKTtpZighMSE9PXYmJiF2KWlmKHY9Im9yYml0Iix0LmNhbWVyYSYmdC5jYW1lcmEudXApe3ZhciBtPXQuY2FtZXJhLnVwLngseT10LmNhbWVyYS51cC55LHg9dC5jYW1lcmEudXAuejswIT09eCYmKG0mJnkmJng/eC9NYXRoLnNxcnQobSptK3kqeSt4KngpPi45OTkmJih2PSJ0dXJudGFibGUiKTp2PSJ0dXJudGFibGUiKX1lbHNlIHY9InR1cm50YWJsZSI7cigiZHJhZ21vZGUiLHYpLHIoImhvdmVybW9kZSIsbi5nZXREZmx0RnJvbUxheW91dCgiaG92ZXJtb2RlIikpfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGE9ZS5fYmFzZVBsb3RNb2R1bGVzLmxlbmd0aD4xO28odCxlLHIse3R5cGU6dSxhdHRyaWJ1dGVzOmwsaGFuZGxlRGVmYXVsdHM6aCxmdWxsTGF5b3V0OmUsZm9udDplLmZvbnQsZnVsbERhdGE6cixnZXREZmx0RnJvbUxheW91dDpmdW5jdGlvbihlKXtpZighYSlyZXR1cm4gbi52YWxpZGF0ZSh0W2VdLGxbZV0pP3RbZV06dm9pZCAwfSxwYXBlcl9iZ2NvbG9yOmUucGFwZXJfYmdjb2xvcixjYWxlbmRhcjplLmNhbGVuZGFyfSl9fSx7Ii4uLy4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjU5MiwiLi4vLi4vLi4vbGliIjo3MTcsIi4uLy4uLy4uL3JlZ2lzdHJ5Ijo4NDYsIi4uLy4uL2dldF9kYXRhIjo4MDAsIi4uLy4uL3N1YnBsb3RfZGVmYXVsdHMiOjg0MCwiLi9heGlzX2RlZmF1bHRzIjo4MDgsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjgxMX1dLDgxMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2F4aXNfYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vZG9tYWluIikuYXR0cmlidXRlcyxpPXQoIi4uLy4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LG89dCgiLi4vLi4vLi4vbGliIikuY291bnRlclJlZ2V4O2Z1bmN0aW9uIHModCxlLHIpe3JldHVybnt4Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6dCxlZGl0VHlwZToiY2FtZXJhIn0seTp7dmFsVHlwZToibnVtYmVyIixkZmx0OmUsZWRpdFR5cGU6ImNhbWVyYSJ9LHo6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDpyLGVkaXRUeXBlOiJjYW1lcmEifSxlZGl0VHlwZToiY2FtZXJhIn19ZS5leHBvcnRzPXtfYXJyYXlBdHRyUmVnZXhwczpbbygic2NlbmUiLCIuYW5ub3RhdGlvbnMiLCEwKV0sYmdjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6InJnYmEoMCwwLDAsMCkiLGVkaXRUeXBlOiJwbG90In0sY2FtZXJhOnt1cDppKHMoMCwwLDEpLHt9KSxjZW50ZXI6aShzKDAsMCwwKSx7fSksZXllOmkocygxLjI1LDEuMjUsMS4yNSkse30pLHByb2plY3Rpb246e3R5cGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInBlcnNwZWN0aXZlIiwib3J0aG9ncmFwaGljIl0sZGZsdDoicGVyc3BlY3RpdmUiLGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMifSxlZGl0VHlwZToiY2FtZXJhIn0sZG9tYWluOmEoe25hbWU6InNjZW5lIixlZGl0VHlwZToicGxvdCJ9KSxhc3BlY3Rtb2RlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhdXRvIiwiY3ViZSIsImRhdGEiLCJtYW51YWwiXSxkZmx0OiJhdXRvIixlZGl0VHlwZToicGxvdCIsaW1wbGllZEVkaXRzOnsiYXNwZWN0cmF0aW8ueCI6dm9pZCAwLCJhc3BlY3RyYXRpby55Ijp2b2lkIDAsImFzcGVjdHJhdGlvLnoiOnZvaWQgMH19LGFzcGVjdHJhdGlvOnt4Ont2YWxUeXBlOiJudW1iZXIiLG1pbjowLGVkaXRUeXBlOiJwbG90IixpbXBsaWVkRWRpdHM6eyJeYXNwZWN0bW9kZSI6Im1hbnVhbCJ9fSx5Ont2YWxUeXBlOiJudW1iZXIiLG1pbjowLGVkaXRUeXBlOiJwbG90IixpbXBsaWVkRWRpdHM6eyJeYXNwZWN0bW9kZSI6Im1hbnVhbCJ9fSx6Ont2YWxUeXBlOiJudW1iZXIiLG1pbjowLGVkaXRUeXBlOiJwbG90IixpbXBsaWVkRWRpdHM6eyJeYXNwZWN0bW9kZSI6Im1hbnVhbCJ9fSxlZGl0VHlwZToicGxvdCIsaW1wbGllZEVkaXRzOnthc3BlY3Rtb2RlOiJtYW51YWwifX0seGF4aXM6bix5YXhpczpuLHpheGlzOm4sZHJhZ21vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbIm9yYml0IiwidHVybnRhYmxlIiwiem9vbSIsInBhbiIsITFdLGVkaXRUeXBlOiJwbG90In0saG92ZXJtb2RlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJjbG9zZXN0IiwhMV0sZGZsdDoiY2xvc2VzdCIsZWRpdFR5cGU6Im1vZGViYXIifSx1aXJldmlzaW9uOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJub25lIn0sZWRpdFR5cGU6InBsb3QiLF9kZXByZWNhdGVkOntjYW1lcmFwb3NpdGlvbjp7dmFsVHlwZToiaW5mb19hcnJheSIsZWRpdFR5cGU6ImNhbWVyYSJ9fX19LHsiLi4vLi4vLi4vbGliIjo3MTcsIi4uLy4uLy4uL2xpYi9leHRlbmQiOjcwOCwiLi4vLi4vZG9tYWluIjo3OTAsIi4vYXhpc19hdHRyaWJ1dGVzIjo4MDd9XSw4MTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vLi4vbGliL3N0cjJyZ2JhcnJheSIpLGE9WyJ4YXhpcyIsInlheGlzIiwiemF4aXMiXTtmdW5jdGlvbiBpKCl7dGhpcy5lbmFibGVkPVshMCwhMCwhMF0sdGhpcy5jb2xvcnM9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLmRyYXdTaWRlcz1bITAsITAsITBdLHRoaXMubGluZVdpZHRoPVsxLDEsMV19aS5wcm90b3R5cGUubWVyZ2U9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTwzOysrZSl7dmFyIHI9dFthW2VdXTtyLnZpc2libGU/KHRoaXMuZW5hYmxlZFtlXT1yLnNob3dzcGlrZXMsdGhpcy5jb2xvcnNbZV09bihyLnNwaWtlY29sb3IpLHRoaXMuZHJhd1NpZGVzW2VdPXIuc3Bpa2VzaWRlcyx0aGlzLmxpbmVXaWR0aFtlXT1yLnNwaWtldGhpY2tuZXNzKToodGhpcy5lbmFibGVkW2VdPSExLHRoaXMuZHJhd1NpZGVzW2VdPSExKX19LGUuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1uZXcgaTtyZXR1cm4gZS5tZXJnZSh0KSxlfX0seyIuLi8uLi8uLi9saWIvc3RyMnJnYmFycmF5Ijo3NDB9XSw4MTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LmF4ZXNPcHRpb25zLHI9dC5nbHBsb3QuYXhlc1BpeGVscyxzPXQuZnVsbFNjZW5lTGF5b3V0LGw9W1tdLFtdLFtdXSxjPTA7YzwzOysrYyl7dmFyIHU9c1tpW2NdXTtpZih1Ll9sZW5ndGg9KHJbY10uaGktcltjXS5sbykqcltjXS5waXhlbHNQZXJEYXRhVW5pdC90LmRhdGFTY2FsZVtjXSxNYXRoLmFicyh1Ll9sZW5ndGgpPT09MS8wfHxpc05hTih1Ll9sZW5ndGgpKWxbY109W107ZWxzZXt1Ll9pbnB1dF9yYW5nZT11LnJhbmdlLnNsaWNlKCksdS5yYW5nZVswXT1yW2NdLmxvL3QuZGF0YVNjYWxlW2NdLHUucmFuZ2VbMV09cltjXS5oaS90LmRhdGFTY2FsZVtjXSx1Ll9tPTEvKHQuZGF0YVNjYWxlW2NdKnJbY10ucGl4ZWxzUGVyRGF0YVVuaXQpLHUucmFuZ2VbMF09PT11LnJhbmdlWzFdJiYodS5yYW5nZVswXS09MSx1LnJhbmdlWzFdKz0xKTt2YXIgaD11LnRpY2ttb2RlO2lmKCJhdXRvIj09PXUudGlja21vZGUpe3UudGlja21vZGU9ImxpbmVhciI7dmFyIGY9dS5udGlja3N8fGEuY29uc3RyYWluKHUuX2xlbmd0aC80MCw0LDkpO24uYXV0b1RpY2tzKHUsTWF0aC5hYnModS5yYW5nZVsxXS11LnJhbmdlWzBdKS9mKX1mb3IodmFyIHA9bi5jYWxjVGlja3ModSksZD0wO2Q8cC5sZW5ndGg7KytkKXBbZF0ueD1wW2RdLngqdC5kYXRhU2NhbGVbY10sImRhdGUiPT09dS50eXBlJiYocFtkXS50ZXh0PXBbZF0udGV4dC5yZXBsYWNlKC9cPGJyXD4vZywiICIpKTtsW2NdPXAsdS50aWNrbW9kZT1ofX1lLnRpY2tzPWw7Zm9yKHZhciBjPTA7YzwzOysrYyl7b1tjXT0uNSoodC5nbHBsb3QuYm91bmRzWzBdW2NdK3QuZ2xwbG90LmJvdW5kc1sxXVtjXSk7Zm9yKHZhciBkPTA7ZDwyOysrZCllLmJvdW5kc1tkXVtjXT10LmdscGxvdC5ib3VuZHNbZF1bY119dC5jb250b3VyTGV2ZWxzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkoMykscj0wO3I8MzsrK3Ipe2Zvcih2YXIgbj10W3JdLGE9bmV3IEFycmF5KG4ubGVuZ3RoKSxpPTA7aTxuLmxlbmd0aDsrK2kpYVtpXT1uW2ldLng7ZVtyXT1hfXJldHVybiBlfShsKX07dmFyIG49dCgiLi4vLi4vY2FydGVzaWFuL2F4ZXMiKSxhPXQoIi4uLy4uLy4uL2xpYiIpLGk9WyJ4YXhpcyIsInlheGlzIiwiemF4aXMiXSxvPVswLDAsMF19LHsiLi4vLi4vLi4vbGliIjo3MTcsIi4uLy4uL2NhcnRlc2lhbi9heGVzIjo3NjV9XSw4MTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3ZhciByLG4sYT1bMCwwLDAsMF07Zm9yKHI9MDtyPDQ7KytyKWZvcihuPTA7bjw0OysrbilhW25dKz10WzQqcituXSplW3JdO3JldHVybiBhfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBuKHQucHJvamVjdGlvbixuKHQudmlldyxuKHQubW9kZWwsW2VbMF0sZVsxXSxlWzJdLDFdKSkpfX0se31dLDgxNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixhLGk9dCgiZ2wtcGxvdDNkIiksbz1pLmNyZWF0ZUNhbWVyYSxzPWkuY3JlYXRlU2NlbmUsbD10KCJ3ZWJnbC1jb250ZXh0IiksYz10KCJoYXMtcGFzc2l2ZS1ldmVudHMiKSx1PXQoIi4uLy4uL3JlZ2lzdHJ5IiksaD10KCIuLi8uLi9saWIiKSxmPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIikscD10KCIuLi8uLi9jb21wb25lbnRzL2Z4IiksZD10KCIuLi8uLi9saWIvc3RyMnJnYmFycmF5IiksZz10KCIuLi8uLi9saWIvc2hvd19ub193ZWJnbF9tc2ciKSx2PXQoIi4vcHJvamVjdCIpLG09dCgiLi9sYXlvdXQvY29udmVydCIpLHk9dCgiLi9sYXlvdXQvc3Bpa2VzIikseD10KCIuL2xheW91dC90aWNrX21hcmtzIiksYj10KCJpcy1tb2JpbGUiKSxfPWZ1bmN0aW9uKCl7aWYoIW5hdmlnYXRvcilyZXR1cm4hMTt2YXIgdDt0fHwidW5kZWZpbmVkIj09dHlwZW9mIG5hdmlnYXRvcnx8KHQ9bmF2aWdhdG9yLnVzZXJBZ2VudCk7dCYmdC5oZWFkZXJzJiYic3RyaW5nIj09dHlwZW9mIHQuaGVhZGVyc1sidXNlci1hZ2VudCJdJiYodD10LmhlYWRlcnNbInVzZXItYWdlbnQiXSk7aWYoInN0cmluZyIhPXR5cGVvZiB0KXJldHVybiExO3ZhciBlPWIoe3VhOnQsdGFibGV0OiEwfSk7ITE9PT1lJiYtMSE9PXQuaW5kZXhPZigiTWFjaW50b3NoIikmJi0xIT09dC5pbmRleE9mKCJTYWZhcmkiKSYmbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzPjEmJihlPSEwKTtyZXR1cm4gZX0oKTtmdW5jdGlvbiB3KHQsZSl7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iiksbj10LmNvbnRhaW5lcjt0aGlzLmdyYXBoRGl2PXQuZ3JhcGhEaXY7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsInN2ZyIpO2Euc3R5bGUucG9zaXRpb249ImFic29sdXRlIixhLnN0eWxlLnRvcD1hLnN0eWxlLmxlZnQ9IjBweCIsYS5zdHlsZS53aWR0aD1hLnN0eWxlLmhlaWdodD0iMTAwJSIsYS5zdHlsZVsiei1pbmRleCJdPTIwLGEuc3R5bGVbInBvaW50ZXItZXZlbnRzIl09Im5vbmUiLHIuYXBwZW5kQ2hpbGQoYSksdGhpcy5zdmdDb250YWluZXI9YSxyLmlkPXQuaWQsci5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHIuc3R5bGUudG9wPXIuc3R5bGUubGVmdD0iMHB4IixyLnN0eWxlLndpZHRoPXIuc3R5bGUuaGVpZ2h0PSIxMDAlIixuLmFwcGVuZENoaWxkKHIpLHRoaXMuZnVsbExheW91dD1lLHRoaXMuaWQ9dC5pZHx8InNjZW5lIix0aGlzLmZ1bGxTY2VuZUxheW91dD1lW3RoaXMuaWRdLHRoaXMucGxvdEFyZ3M9W1tdLHt9LHt9XSx0aGlzLmF4ZXNPcHRpb25zPW0oZSxlW3RoaXMuaWRdKSx0aGlzLnNwaWtlT3B0aW9ucz15KGVbdGhpcy5pZF0pLHRoaXMuY29udGFpbmVyPXIsdGhpcy5zdGF0aWNNb2RlPSEhdC5zdGF0aWNQbG90LHRoaXMucGl4ZWxSYXRpbz10aGlzLnBpeGVsUmF0aW98fHQucGxvdEdsUGl4ZWxSYXRpb3x8Mix0aGlzLmRhdGFTY2FsZT1bMSwxLDFdLHRoaXMuY29udG91ckxldmVscz1bW10sW10sW11dLHRoaXMuY29udmVydEFubm90YXRpb25zPXUuZ2V0Q29tcG9uZW50TWV0aG9kKCJhbm5vdGF0aW9uczNkIiwiY29udmVydCIpLHRoaXMuZHJhd0Fubm90YXRpb25zPXUuZ2V0Q29tcG9uZW50TWV0aG9kKCJhbm5vdGF0aW9uczNkIiwiZHJhdyIpLHRoaXMuaW5pdGlhbGl6ZUdMUGxvdCgpfXZhciBrPXcucHJvdG90eXBlO2sudHJ5Q3JlYXRlUGxvdD1mdW5jdGlvbigpe3ZhciB0PXtjYW52YXM6dGhpcy5jYW52YXMsZ2w6dGhpcy5nbCxnbE9wdGlvbnM6e3ByZXNlcnZlRHJhd2luZ0J1ZmZlcjpfLHByZW11bHRpcGxpZWRBbHBoYTohMCxhbnRpYWxpYXM6ITB9LGNvbnRhaW5lcjp0aGlzLmNvbnRhaW5lcixheGVzOnRoaXMuYXhlc09wdGlvbnMsc3Bpa2VzOnRoaXMuc3Bpa2VPcHRpb25zLHBpY2tSYWRpdXM6MTAsc25hcFRvRGF0YTohMCxhdXRvU2NhbGU6ITAsYXV0b0JvdW5kczohMSxjYW1lcmFPYmplY3Q6dGhpcy5jYW1lcmEscGl4ZWxSYXRpbzp0aGlzLnBpeGVsUmF0aW99O2lmKHRoaXMuc3RhdGljTW9kZSl7aWYoIShhfHwobj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxhPWwoe2NhbnZhczpuLHByZXNlcnZlRHJhd2luZ0J1ZmZlcjohMCxwcmVtdWx0aXBsaWVkQWxwaGE6ITAsYW50aWFsaWFzOiEwfSkpKSl0aHJvdyBuZXcgRXJyb3IoImVycm9yIGNyZWF0aW5nIHN0YXRpYyBjYW52YXMvY29udGV4dCBmb3IgaW1hZ2Ugc2VydmVyIik7dC5nbD1hLHQuY2FudmFzPW59dmFyIGU9MDt0cnl7dGhpcy5nbHBsb3Q9cyh0KX1jYXRjaChyKXtlKys7dHJ5e3RoaXMuZ2xwbG90PXModCl9Y2F0Y2godCl7ZSsrfX1yZXR1cm4gZTwyfSxrLmluaXRpYWxpemVHTENhbWVyYT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZnVsbFNjZW5lTGF5b3V0LmNhbWVyYSxlPSJvcnRob2dyYXBoaWMiPT09dC5wcm9qZWN0aW9uLnR5cGU7dGhpcy5jYW1lcmE9byh0aGlzLmNvbnRhaW5lcix7Y2VudGVyOlt0LmNlbnRlci54LHQuY2VudGVyLnksdC5jZW50ZXIuel0sZXllOlt0LmV5ZS54LHQuZXllLnksdC5leWUuel0sdXA6W3QudXAueCx0LnVwLnksdC51cC56XSxfb3J0aG86ZSx6b29tTWluOi4wMSx6b29tTWF4OjEwMCxtb2RlOiJvcmJpdCJ9KX0say5pbml0aWFsaXplR0xQbG90PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZih0LmluaXRpYWxpemVHTENhbWVyYSgpLCF0LnRyeUNyZWF0ZVBsb3QoKSlyZXR1cm4gZyh0KTt0LnRyYWNlcz17fSx0Lm1ha2U0dGhEaW1lbnNpb24oKTt2YXIgZT10LmdyYXBoRGl2LHI9ZS5sYXlvdXQsbj1mdW5jdGlvbigpe3ZhciBlPXt9O3JldHVybiB0LmlzQ2FtZXJhQ2hhbmdlZChyKSYmKGVbdC5pZCsiLmNhbWVyYSJdPXQuZ2V0Q2FtZXJhKCkpLHQuaXNBc3BlY3RDaGFuZ2VkKHIpJiYoZVt0LmlkKyIuYXNwZWN0cmF0aW8iXT10LmdscGxvdC5nZXRBc3BlY3RyYXRpbygpKSxlfSxhPWZ1bmN0aW9uKHQpe2lmKCExIT09dC5mdWxsU2NlbmVMYXlvdXQuZHJhZ21vZGUpe3ZhciBlPW4oKTt0LnNhdmVMYXlvdXQociksdC5ncmFwaERpdi5lbWl0KCJwbG90bHlfcmVsYXlvdXQiLGUpfX07cmV0dXJuIHQuZ2xwbG90LmNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixmdW5jdGlvbigpe2EodCl9KSx0LmdscGxvdC5jYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLGZ1bmN0aW9uKHIpe2lmKGUuX2NvbnRleHQuX3Njcm9sbFpvb20uZ2wzZCl7aWYodC5jYW1lcmEuX29ydGhvKXt2YXIgbj1yLmRlbHRhWD5yLmRlbHRhWT8xLjE6MS8xLjEsaT10LmdscGxvdC5nZXRBc3BlY3RyYXRpbygpO3QuZ2xwbG90LnNldEFzcGVjdHJhdGlvKHt4Om4qaS54LHk6bippLnksejpuKmkuen0pfWEodCl9fSwhIWMmJntwYXNzaXZlOiExfSksdC5nbHBsb3QuY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsZnVuY3Rpb24oKXtpZighMSE9PXQuZnVsbFNjZW5lTGF5b3V0LmRyYWdtb2RlJiYwIT09dC5jYW1lcmEubW91c2VMaXN0ZW5lci5idXR0b25zKXt2YXIgZT1uKCk7dC5ncmFwaERpdi5lbWl0KCJwbG90bHlfcmVsYXlvdXRpbmciLGUpfX0pLHQuc3RhdGljTW9kZXx8dC5nbHBsb3QuY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dGxvc3QiLGZ1bmN0aW9uKHIpe2UmJmUuZW1pdCYmZS5lbWl0KCJwbG90bHlfd2ViZ2xjb250ZXh0bG9zdCIse2V2ZW50OnIsbGF5ZXI6dC5pZH0pfSwhMSksdC5nbHBsb3Qub25jb250ZXh0bG9zcz1mdW5jdGlvbigpe3QucmVjb3ZlckNvbnRleHQoKX0sdC5nbHBsb3Qub25yZW5kZXI9ZnVuY3Rpb24oKXt0LnJlbmRlcigpfSwhMH0say5yZW5kZXI9ZnVuY3Rpb24oKXt2YXIgdCxlPXRoaXMscj1lLmdyYXBoRGl2LG49ZS5zdmdDb250YWluZXIsYT1lLmNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPWEud2lkdGgsbz1hLmhlaWdodDtuLnNldEF0dHJpYnV0ZU5TKG51bGwsInZpZXdCb3giLCIwIDAgIitpKyIgIitvKSxuLnNldEF0dHJpYnV0ZU5TKG51bGwsIndpZHRoIixpKSxuLnNldEF0dHJpYnV0ZU5TKG51bGwsImhlaWdodCIsbykseChlKSxlLmdscGxvdC5heGVzLnVwZGF0ZShlLmF4ZXNPcHRpb25zKTtmb3IodmFyIHMsbD1PYmplY3Qua2V5cyhlLnRyYWNlcyksYz1udWxsLHU9ZS5nbHBsb3Quc2VsZWN0aW9uLGQ9MDtkPGwubGVuZ3RoOysrZCkic2tpcCIhPT0odD1lLnRyYWNlc1tsW2RdXSkuZGF0YS5ob3ZlcmluZm8mJnQuaGFuZGxlUGljayh1KSYmKGM9dCksdC5zZXRDb250b3VyTGV2ZWxzJiZ0LnNldENvbnRvdXJMZXZlbHMoKTtmdW5jdGlvbiBnKHQscil7dmFyIG49ZS5mdWxsU2NlbmVMYXlvdXRbdF07cmV0dXJuIGYudGlja1RleHQobixuLmQybChyKSwiaG92ZXIiKS50ZXh0fWlmKG51bGwhPT1jKXt2YXIgbT12KGUuZ2xwbG90LmNhbWVyYVBhcmFtcyx1LmRhdGFDb29yZGluYXRlKTt0PWMuZGF0YTt2YXIgeSxiPXIuX2Z1bGxEYXRhW3QuaW5kZXhdLF89dS5pbmRleCx3PXt4TGFiZWw6ZygieGF4aXMiLHUudHJhY2VDb29yZGluYXRlWzBdKSx5TGFiZWw6ZygieWF4aXMiLHUudHJhY2VDb29yZGluYXRlWzFdKSx6TGFiZWw6ZygiemF4aXMiLHUudHJhY2VDb29yZGluYXRlWzJdKX0saz1wLmNhc3RIb3ZlcmluZm8oYixlLmZ1bGxMYXlvdXQsXyksVD0oa3x8IiIpLnNwbGl0KCIrIiksTT1rJiYiYWxsIj09PWs7Yi5ob3ZlcnRlbXBsYXRlfHxNfHwoLTE9PT1ULmluZGV4T2YoIngiKSYmKHcueExhYmVsPXZvaWQgMCksLTE9PT1ULmluZGV4T2YoInkiKSYmKHcueUxhYmVsPXZvaWQgMCksLTE9PT1ULmluZGV4T2YoInoiKSYmKHcuekxhYmVsPXZvaWQgMCksLTE9PT1ULmluZGV4T2YoInRleHQiKSYmKHUudGV4dExhYmVsPXZvaWQgMCksLTE9PT1ULmluZGV4T2YoIm5hbWUiKSYmKGMubmFtZT12b2lkIDApKTt2YXIgQT1bXTsiY29uZSI9PT10LnR5cGV8fCJzdHJlYW10dWJlIj09PXQudHlwZT8ody51TGFiZWw9ZygieGF4aXMiLHUudHJhY2VDb29yZGluYXRlWzNdKSwoTXx8LTEhPT1ULmluZGV4T2YoInUiKSkmJkEucHVzaCgidTogIit3LnVMYWJlbCksdy52TGFiZWw9ZygieWF4aXMiLHUudHJhY2VDb29yZGluYXRlWzRdKSwoTXx8LTEhPT1ULmluZGV4T2YoInYiKSkmJkEucHVzaCgidjogIit3LnZMYWJlbCksdy53TGFiZWw9ZygiemF4aXMiLHUudHJhY2VDb29yZGluYXRlWzVdKSwoTXx8LTEhPT1ULmluZGV4T2YoInciKSkmJkEucHVzaCgidzogIit3LndMYWJlbCksdy5ub3JtTGFiZWw9dS50cmFjZUNvb3JkaW5hdGVbNl0udG9QcmVjaXNpb24oMyksKE18fC0xIT09VC5pbmRleE9mKCJub3JtIikpJiZBLnB1c2goIm5vcm06ICIrdy5ub3JtTGFiZWwpLCJzdHJlYW10dWJlIj09PXQudHlwZSYmKHcuZGl2ZXJnZW5jZUxhYmVsPXUudHJhY2VDb29yZGluYXRlWzddLnRvUHJlY2lzaW9uKDMpLChNfHwtMSE9PVQuaW5kZXhPZigiZGl2ZXJnZW5jZSIpKSYmQS5wdXNoKCJkaXZlcmdlbmNlOiAiK3cuZGl2ZXJnZW5jZUxhYmVsKSksdS50ZXh0TGFiZWwmJkEucHVzaCh1LnRleHRMYWJlbCkseT1BLmpvaW4oIjxicj4iKSk6Imlzb3N1cmZhY2UiPT09dC50eXBlfHwidm9sdW1lIj09PXQudHlwZT8ody52YWx1ZUxhYmVsPWYudGlja1RleHQoZS5fbW9ja0F4aXMsZS5fbW9ja0F4aXMuZDJsKHUudHJhY2VDb29yZGluYXRlWzNdKSwiaG92ZXIiKS50ZXh0LEEucHVzaCgidmFsdWU6ICIrdy52YWx1ZUxhYmVsKSx1LnRleHRMYWJlbCYmQS5wdXNoKHUudGV4dExhYmVsKSx5PUEuam9pbigiPGJyPiIpKTp5PXUudGV4dExhYmVsO3ZhciBTPXt4OnUudHJhY2VDb29yZGluYXRlWzBdLHk6dS50cmFjZUNvb3JkaW5hdGVbMV0sejp1LnRyYWNlQ29vcmRpbmF0ZVsyXSxkYXRhOmIuX2lucHV0LGZ1bGxEYXRhOmIsY3VydmVOdW1iZXI6Yi5pbmRleCxwb2ludE51bWJlcjpffTtwLmFwcGVuZEFycmF5UG9pbnRWYWx1ZShTLGIsXyksdC5fbW9kdWxlLmV2ZW50RGF0YSYmKFM9Yi5fbW9kdWxlLmV2ZW50RGF0YShTLHUsYix7fSxfKSk7dmFyIEU9e3BvaW50czpbU119O2UuZnVsbFNjZW5lTGF5b3V0LmhvdmVybW9kZSYmcC5sb25lSG92ZXIoe3RyYWNlOmIseDooLjUrLjUqbVswXS9tWzNdKSppLHk6KC41LS41Km1bMV0vbVszXSkqbyx4TGFiZWw6dy54TGFiZWwseUxhYmVsOncueUxhYmVsLHpMYWJlbDp3LnpMYWJlbCx0ZXh0OnksbmFtZTpjLm5hbWUsY29sb3I6cC5jYXN0SG92ZXJPcHRpb24oYixfLCJiZ2NvbG9yIil8fGMuY29sb3IsYm9yZGVyQ29sb3I6cC5jYXN0SG92ZXJPcHRpb24oYixfLCJib3JkZXJjb2xvciIpLGZvbnRGYW1pbHk6cC5jYXN0SG92ZXJPcHRpb24oYixfLCJmb250LmZhbWlseSIpLGZvbnRTaXplOnAuY2FzdEhvdmVyT3B0aW9uKGIsXywiZm9udC5zaXplIiksZm9udENvbG9yOnAuY2FzdEhvdmVyT3B0aW9uKGIsXywiZm9udC5jb2xvciIpLG5hbWVMZW5ndGg6cC5jYXN0SG92ZXJPcHRpb24oYixfLCJuYW1lbGVuZ3RoIiksdGV4dEFsaWduOnAuY2FzdEhvdmVyT3B0aW9uKGIsXywiYWxpZ24iKSxob3ZlcnRlbXBsYXRlOmguY2FzdE9wdGlvbihiLF8sImhvdmVydGVtcGxhdGUiKSxob3ZlcnRlbXBsYXRlTGFiZWxzOmguZXh0ZW5kRmxhdCh7fSxTLHcpLGV2ZW50RGF0YTpbU119LHtjb250YWluZXI6bixnZDpyfSksdS5idXR0b25zJiZ1LmRpc3RhbmNlPDU/ci5lbWl0KCJwbG90bHlfY2xpY2siLEUpOnIuZW1pdCgicGxvdGx5X2hvdmVyIixFKSxzPUV9ZWxzZSBwLmxvbmVVbmhvdmVyKG4pLHIuZW1pdCgicGxvdGx5X3VuaG92ZXIiLHMpO2UuZHJhd0Fubm90YXRpb25zKGUpfSxrLnJlY292ZXJDb250ZXh0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0LmdscGxvdC5kaXNwb3NlKCk7dmFyIGU9ZnVuY3Rpb24oKXt0LmdscGxvdC5nbC5pc0NvbnRleHRMb3N0KCk/cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGUpOnQuaW5pdGlhbGl6ZUdMUGxvdCgpP3QucGxvdC5hcHBseSh0LHQucGxvdEFyZ3MpOmguZXJyb3IoIkNhdGFzdHJvcGhpYyBhbmQgdW5yZWNvdmVyYWJsZSBXZWJHTCBlcnJvci4gQ29udGV4dCBsb3N0LiIpfTtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZSl9O3ZhciBUPVsieGF4aXMiLCJ5YXhpcyIsInpheGlzIl07ZnVuY3Rpb24gTSh0LGUscil7Zm9yKHZhciBuPXQuZnVsbFNjZW5lTGF5b3V0LGE9MDthPDM7YSsrKXt2YXIgaT1UW2FdLG89aS5jaGFyQXQoMCkscz1uW2ldLGw9ZVtvXSxjPWVbbysiY2FsZW5kYXIiXSx1PWVbIl8iK28rImxlbmd0aCJdO2lmKGguaXNBcnJheU9yVHlwZWRBcnJheShsKSlmb3IodmFyIGYscD0wO3A8KHV8fGwubGVuZ3RoKTtwKyspaWYoaC5pc0FycmF5T3JUeXBlZEFycmF5KGxbcF0pKWZvcih2YXIgZD0wO2Q8bFtwXS5sZW5ndGg7KytkKWY9cy5kMmwobFtwXVtkXSwwLGMpLCFpc05hTihmKSYmaXNGaW5pdGUoZikmJihyWzBdW2FdPU1hdGgubWluKHJbMF1bYV0sZiksclsxXVthXT1NYXRoLm1heChyWzFdW2FdLGYpKTtlbHNlIGY9cy5kMmwobFtwXSwwLGMpLCFpc05hTihmKSYmaXNGaW5pdGUoZikmJihyWzBdW2FdPU1hdGgubWluKHJbMF1bYV0sZiksclsxXVthXT1NYXRoLm1heChyWzFdW2FdLGYpKTtlbHNlIHJbMF1bYV09TWF0aC5taW4oclswXVthXSwwKSxyWzFdW2FdPU1hdGgubWF4KHJbMV1bYV0sdS0xKX19ay5wbG90PWZ1bmN0aW9uKHQsZSxyKXtpZih0aGlzLnBsb3RBcmdzPVt0LGUscl0sIXRoaXMuZ2xwbG90LmNvbnRleHRMb3N0KXt2YXIgbixhLGksbyxzLGwsYz1lW3RoaXMuaWRdLHU9clt0aGlzLmlkXTt0aGlzLmZ1bGxMYXlvdXQ9ZSx0aGlzLmZ1bGxTY2VuZUxheW91dD1jLHRoaXMuYXhlc09wdGlvbnMubWVyZ2UoZSxjKSx0aGlzLnNwaWtlT3B0aW9ucy5tZXJnZShjKSx0aGlzLnNldFZpZXdwb3J0KGMpLHRoaXMudXBkYXRlRngoYy5kcmFnbW9kZSxjLmhvdmVybW9kZSksdGhpcy5jYW1lcmEuZW5hYmxlV2hlZWw9dGhpcy5ncmFwaERpdi5fY29udGV4dC5fc2Nyb2xsWm9vbS5nbDNkLHRoaXMuZ2xwbG90LnNldENsZWFyQ29sb3IoZChjLmJnY29sb3IpKSx0aGlzLnNldENvbnZlcnQocyksdD9BcnJheS5pc0FycmF5KHQpfHwodD1bdF0pOnQ9W107dmFyIGg9W1sxLzAsMS8wLDEvMF0sWy0xLzAsLTEvMCwtMS8wXV07Zm9yKGk9MDtpPHQubGVuZ3RoOysraSkhMD09PShuPXRbaV0pLnZpc2libGUmJjAhPT1uLl9sZW5ndGgmJk0odGhpcyxuLGgpOyFmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10LmZ1bGxTY2VuZUxheW91dCxuPXIuYW5ub3RhdGlvbnN8fFtdLGE9MDthPDM7YSsrKWZvcih2YXIgaT1UW2FdLG89aS5jaGFyQXQoMCkscz1yW2ldLGw9MDtsPG4ubGVuZ3RoO2wrKyl7dmFyIGM9bltsXTtpZihjLnZpc2libGUpe3ZhciB1PXMucjJsKGNbb10pOyFpc05hTih1KSYmaXNGaW5pdGUodSkmJihlWzBdW2FdPU1hdGgubWluKGVbMF1bYV0sdSksZVsxXVthXT1NYXRoLm1heChlWzFdW2FdLHUpKX19fSh0aGlzLGgpO3ZhciBmPVsxLDEsMV07Zm9yKG89MDtvPDM7KytvKWhbMV1bb109PT1oWzBdW29dP2Zbb109MTpmW29dPTEvKGhbMV1bb10taFswXVtvXSk7Zm9yKHRoaXMuZGF0YVNjYWxlPWYsdGhpcy5jb252ZXJ0QW5ub3RhdGlvbnModGhpcyksaT0wO2k8dC5sZW5ndGg7KytpKSEwPT09KG49dFtpXSkudmlzaWJsZSYmMCE9PW4uX2xlbmd0aCYmKChhPXRoaXMudHJhY2VzW24udWlkXSk/YS5kYXRhLnR5cGU9PT1uLnR5cGU/YS51cGRhdGUobik6KGEuZGlzcG9zZSgpLGE9bi5fbW9kdWxlLnBsb3QodGhpcyxuKSx0aGlzLnRyYWNlc1tuLnVpZF09YSk6KGE9bi5fbW9kdWxlLnBsb3QodGhpcyxuKSx0aGlzLnRyYWNlc1tuLnVpZF09YSksYS5uYW1lPW4ubmFtZSk7dmFyIHA9T2JqZWN0LmtleXModGhpcy50cmFjZXMpO3Q6Zm9yKGk9MDtpPHAubGVuZ3RoOysraSl7Zm9yKG89MDtvPHQubGVuZ3RoOysrbylpZih0W29dLnVpZD09PXBbaV0mJiEwPT09dFtvXS52aXNpYmxlJiYwIT09dFtvXS5fbGVuZ3RoKWNvbnRpbnVlIHQ7KGE9dGhpcy50cmFjZXNbcFtpXV0pLmRpc3Bvc2UoKSxkZWxldGUgdGhpcy50cmFjZXNbcFtpXV19dGhpcy5nbHBsb3Qub2JqZWN0cy5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX3RyYWNlLmRhdGEuaW5kZXgtZS5fdHJhY2UuZGF0YS5pbmRleH0pO3ZhciBnPVtbMCwwLDBdLFswLDAsMF1dLHY9W10sbT17fTtmb3IoaT0wO2k8MzsrK2kpe2lmKChsPShzPWNbVFtpXV0pLnR5cGUpaW4gbT8obVtsXS5hY2MqPWZbaV0sbVtsXS5jb3VudCs9MSk6bVtsXT17YWNjOmZbaV0sY291bnQ6MX0scy5hdXRvcmFuZ2Upe2dbMF1baV09MS8wLGdbMV1baV09LTEvMDt2YXIgeT10aGlzLmdscGxvdC5vYmplY3RzLHg9dGhpcy5mdWxsU2NlbmVMYXlvdXQuYW5ub3RhdGlvbnN8fFtdLGI9cy5fbmFtZS5jaGFyQXQoMCk7Zm9yKG89MDtvPHkubGVuZ3RoO28rKyl7dmFyIF89eVtvXSx3PV8uYm91bmRzLGs9Xy5fdHJhY2UuZGF0YS5fcGFkfHwwOyJFcnJvckJhcnMiPT09Xy5jb25zdHJ1Y3Rvci5uYW1lJiZzLl9sb3dlckxvZ0Vycm9yQm91bmQ/Z1swXVtpXT1NYXRoLm1pbihnWzBdW2ldLHMuX2xvd2VyTG9nRXJyb3JCb3VuZCk6Z1swXVtpXT1NYXRoLm1pbihnWzBdW2ldLHdbMF1baV0vZltpXS1rKSxnWzFdW2ldPU1hdGgubWF4KGdbMV1baV0sd1sxXVtpXS9mW2ldK2spfWZvcihvPTA7bzx4Lmxlbmd0aDtvKyspe3ZhciBBPXhbb107aWYoQS52aXNpYmxlKXt2YXIgUz1zLnIybChBW2JdKTtnWzBdW2ldPU1hdGgubWluKGdbMF1baV0sUyksZ1sxXVtpXT1NYXRoLm1heChnWzFdW2ldLFMpfX1pZigicmFuZ2Vtb2RlImluIHMmJiJ0b3plcm8iPT09cy5yYW5nZW1vZGUmJihnWzBdW2ldPU1hdGgubWluKGdbMF1baV0sMCksZ1sxXVtpXT1NYXRoLm1heChnWzFdW2ldLDApKSxnWzBdW2ldPmdbMV1baV0pZ1swXVtpXT0tMSxnWzFdW2ldPTE7ZWxzZXt2YXIgRT1nWzFdW2ldLWdbMF1baV07Z1swXVtpXS09RS8zMixnWzFdW2ldKz1FLzMyfWlmKCJyZXZlcnNlZCI9PT1zLmF1dG9yYW5nZSl7dmFyIEw9Z1swXVtpXTtnWzBdW2ldPWdbMV1baV0sZ1sxXVtpXT1MfX1lbHNle3ZhciBDPXMucmFuZ2U7Z1swXVtpXT1zLnIybChDWzBdKSxnWzFdW2ldPXMucjJsKENbMV0pfWdbMF1baV09PT1nWzFdW2ldJiYoZ1swXVtpXS09MSxnWzFdW2ldKz0xKSx2W2ldPWdbMV1baV0tZ1swXVtpXSx0aGlzLmdscGxvdC5zZXRCb3VuZHMoaSx7bWluOmdbMF1baV0qZltpXSxtYXg6Z1sxXVtpXSpmW2ldfSl9dmFyIFA9WzEsMSwxXTtmb3IoaT0wO2k8MzsrK2kpe3ZhciBPPW1bbD0ocz1jW1RbaV1dKS50eXBlXTtQW2ldPU1hdGgucG93KE8uYWNjLDEvTy5jb3VudCkvZltpXX12YXIgejtpZigiYXV0byI9PT1jLmFzcGVjdG1vZGUpej1NYXRoLm1heC5hcHBseShudWxsLFApL01hdGgubWluLmFwcGx5KG51bGwsUCk8PTQ/UDpbMSwxLDFdO2Vsc2UgaWYoImN1YmUiPT09Yy5hc3BlY3Rtb2RlKXo9WzEsMSwxXTtlbHNlIGlmKCJkYXRhIj09PWMuYXNwZWN0bW9kZSl6PVA7ZWxzZXtpZigibWFudWFsIiE9PWMuYXNwZWN0bW9kZSl0aHJvdyBuZXcgRXJyb3IoInNjZW5lLmpzIGFzcGVjdFJhdGlvIHdhcyBub3Qgb25lIG9mIHRoZSBlbnVtZXJhdGVkIHR5cGVzIik7dmFyIEk9Yy5hc3BlY3RyYXRpbzt6PVtJLngsSS55LEkuel19Yy5hc3BlY3RyYXRpby54PXUuYXNwZWN0cmF0aW8ueD16WzBdLGMuYXNwZWN0cmF0aW8ueT11LmFzcGVjdHJhdGlvLnk9elsxXSxjLmFzcGVjdHJhdGlvLno9dS5hc3BlY3RyYXRpby56PXpbMl0sdGhpcy5nbHBsb3Quc2V0QXNwZWN0cmF0aW8oYy5hc3BlY3RyYXRpbyksdGhpcy52aWV3SW5pdGlhbC5hc3BlY3RyYXRpb3x8KHRoaXMudmlld0luaXRpYWwuYXNwZWN0cmF0aW89e3g6Yy5hc3BlY3RyYXRpby54LHk6Yy5hc3BlY3RyYXRpby55LHo6Yy5hc3BlY3RyYXRpby56fSk7dmFyIEQ9Yy5kb21haW58fG51bGwsUj1lLl9zaXplfHxudWxsO2lmKEQmJlIpe3ZhciBGPXRoaXMuY29udGFpbmVyLnN0eWxlO0YucG9zaXRpb249ImFic29sdXRlIixGLmxlZnQ9Ui5sK0QueFswXSpSLncrInB4IixGLnRvcD1SLnQrKDEtRC55WzFdKSpSLmgrInB4IixGLndpZHRoPVIudyooRC54WzFdLUQueFswXSkrInB4IixGLmhlaWdodD1SLmgqKEQueVsxXS1ELnlbMF0pKyJweCJ9dGhpcy5nbHBsb3QucmVkcmF3KCl9fSxrLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLmdscGxvdCYmKHRoaXMuY2FtZXJhLm1vdXNlTGlzdGVuZXIuZW5hYmxlZD0hMSx0aGlzLmNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCJ3aGVlbCIsdGhpcy5jYW1lcmEud2hlZWxMaXN0ZW5lciksdGhpcy5jYW1lcmE9bnVsbCx0aGlzLmdscGxvdC5kaXNwb3NlKCksdGhpcy5jb250YWluZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmNvbnRhaW5lciksdGhpcy5nbHBsb3Q9bnVsbCl9LGsuZ2V0Q2FtZXJhPWZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIHRoaXMuY2FtZXJhLnZpZXcucmVjYWxjTWF0cml4KHRoaXMuY2FtZXJhLnZpZXcubGFzdFQoKSkse3VwOnt4Oih0PXRoaXMuY2FtZXJhKS51cFswXSx5OnQudXBbMV0sejp0LnVwWzJdfSxjZW50ZXI6e3g6dC5jZW50ZXJbMF0seTp0LmNlbnRlclsxXSx6OnQuY2VudGVyWzJdfSxleWU6e3g6dC5leWVbMF0seTp0LmV5ZVsxXSx6OnQuZXllWzJdfSxwcm9qZWN0aW9uOnt0eXBlOiEwPT09dC5fb3J0aG8/Im9ydGhvZ3JhcGhpYyI6InBlcnNwZWN0aXZlIn19fSxrLnNldFZpZXdwb3J0PWZ1bmN0aW9uKHQpe3ZhciBlLHI9dC5jYW1lcmE7dGhpcy5jYW1lcmEubG9va0F0LmFwcGx5KHRoaXMsW1soZT1yKS5leWUueCxlLmV5ZS55LGUuZXllLnpdLFtlLmNlbnRlci54LGUuY2VudGVyLnksZS5jZW50ZXIuel0sW2UudXAueCxlLnVwLnksZS51cC56XV0pLHRoaXMuZ2xwbG90LnNldEFzcGVjdHJhdGlvKHQuYXNwZWN0cmF0aW8pLCJvcnRob2dyYXBoaWMiPT09ci5wcm9qZWN0aW9uLnR5cGUhPT10aGlzLmNhbWVyYS5fb3J0aG8mJih0aGlzLmdscGxvdC5yZWRyYXcoKSx0aGlzLmdscGxvdC5jbGVhclJHQkEoKSx0aGlzLmdscGxvdC5kaXNwb3NlKCksdGhpcy5pbml0aWFsaXplR0xQbG90KCkpfSxrLmlzQ2FtZXJhQ2hhbmdlZD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmdldENhbWVyYSgpLHI9aC5uZXN0ZWRQcm9wZXJ0eSh0LHRoaXMuaWQrIi5jYW1lcmEiKS5nZXQoKTtmdW5jdGlvbiBuKHQsZSxyLG4pe3ZhciBhPVsidXAiLCJjZW50ZXIiLCJleWUiXSxpPVsieCIsInkiLCJ6Il07cmV0dXJuIGVbYVtyXV0mJnRbYVtyXV1baVtuXV09PT1lW2Fbcl1dW2lbbl1dfXZhciBhPSExO2lmKHZvaWQgMD09PXIpYT0hMDtlbHNle2Zvcih2YXIgaT0wO2k8MztpKyspZm9yKHZhciBvPTA7bzwzO28rKylpZighbihlLHIsaSxvKSl7YT0hMDticmVha30oIXIucHJvamVjdGlvbnx8ZS5wcm9qZWN0aW9uJiZlLnByb2plY3Rpb24udHlwZSE9PXIucHJvamVjdGlvbi50eXBlKSYmKGE9ITApfXJldHVybiBhfSxrLmlzQXNwZWN0Q2hhbmdlZD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmdscGxvdC5nZXRBc3BlY3RyYXRpbygpLHI9aC5uZXN0ZWRQcm9wZXJ0eSh0LHRoaXMuaWQrIi5hc3BlY3RyYXRpbyIpLmdldCgpO3JldHVybiB2b2lkIDA9PT1yfHxyLnghPT1lLnh8fHIueSE9PWUueXx8ci56IT09ZS56fSxrLnNhdmVMYXlvdXQ9ZnVuY3Rpb24odCl7dmFyIGUscixuLGEsaSxvLHM9dGhpcy5mdWxsTGF5b3V0LGw9dGhpcy5pc0NhbWVyYUNoYW5nZWQodCksYz10aGlzLmlzQXNwZWN0Q2hhbmdlZCh0KSxmPWx8fGM7aWYoZil7dmFyIHA9e307aWYobCYmKGU9dGhpcy5nZXRDYW1lcmEoKSxuPShyPWgubmVzdGVkUHJvcGVydHkodCx0aGlzLmlkKyIuY2FtZXJhIikpLmdldCgpLHBbdGhpcy5pZCsiLmNhbWVyYSJdPW4pLGMmJihhPXRoaXMuZ2xwbG90LmdldEFzcGVjdHJhdGlvKCksbz0oaT1oLm5lc3RlZFByb3BlcnR5KHQsdGhpcy5pZCsiLmFzcGVjdHJhdGlvIikpLmdldCgpLHBbdGhpcy5pZCsiLmFzcGVjdHJhdGlvIl09byksdS5jYWxsKCJfc3RvcmVEaXJlY3RHVUlFZGl0Iix0LHMuX3ByZUdVSSxwKSxsKXIuc2V0KGUpLGgubmVzdGVkUHJvcGVydHkocyx0aGlzLmlkKyIuY2FtZXJhIikuc2V0KGUpO2lmKGMpaS5zZXQoYSksaC5uZXN0ZWRQcm9wZXJ0eShzLHRoaXMuaWQrIi5hc3BlY3RyYXRpbyIpLnNldChhKSx0aGlzLmdscGxvdC5yZWRyYXcoKX1yZXR1cm4gZn0say51cGRhdGVGeD1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuY2FtZXJhO2lmKHIpaWYoIm9yYml0Ij09PXQpci5tb2RlPSJvcmJpdCIsci5rZXlCaW5kaW5nTW9kZT0icm90YXRlIjtlbHNlIGlmKCJ0dXJudGFibGUiPT09dCl7ci51cD1bMCwwLDFdLHIubW9kZT0idHVybnRhYmxlIixyLmtleUJpbmRpbmdNb2RlPSJyb3RhdGUiO3ZhciBuPXRoaXMuZ3JhcGhEaXYsYT1uLl9mdWxsTGF5b3V0LGk9dGhpcy5mdWxsU2NlbmVMYXlvdXQuY2FtZXJhLG89aS51cC54LHM9aS51cC55LGw9aS51cC56O2lmKGwvTWF0aC5zcXJ0KG8qbytzKnMrbCpsKTwuOTk5KXt2YXIgYz10aGlzLmlkKyIuY2FtZXJhLnVwIixmPXt4OjAseTowLHo6MX0scD17fTtwW2NdPWY7dmFyIGQ9bi5sYXlvdXQ7dS5jYWxsKCJfc3RvcmVEaXJlY3RHVUlFZGl0IixkLGEuX3ByZUdVSSxwKSxpLnVwPWYsaC5uZXN0ZWRQcm9wZXJ0eShkLGMpLnNldChmKX19ZWxzZSByLmtleUJpbmRpbmdNb2RlPXQ7dGhpcy5mdWxsU2NlbmVMYXlvdXQuaG92ZXJtb2RlPWV9LGsudG9JbWFnZT1mdW5jdGlvbih0KXt0fHwodD0icG5nIiksdGhpcy5zdGF0aWNNb2RlJiZ0aGlzLmNvbnRhaW5lci5hcHBlbmRDaGlsZChuKSx0aGlzLmdscGxvdC5yZWRyYXcoKTt2YXIgZT10aGlzLmdscGxvdC5nbCxyPWUuZHJhd2luZ0J1ZmZlcldpZHRoLGE9ZS5kcmF3aW5nQnVmZmVySGVpZ2h0O2UuYmluZEZyYW1lYnVmZmVyKGUuRlJBTUVCVUZGRVIsbnVsbCk7dmFyIGk9bmV3IFVpbnQ4QXJyYXkociphKjQpO2UucmVhZFBpeGVscygwLDAscixhLGUuUkdCQSxlLlVOU0lHTkVEX0JZVEUsaSk7Zm9yKHZhciBvPTAscz1hLTE7bzxzOysrbywtLXMpZm9yKHZhciBsPTA7bDxyOysrbClmb3IodmFyIGM9MDtjPDQ7KytjKXt2YXIgdT1pWzQqKHIqbytsKStjXTtpWzQqKHIqbytsKStjXT1pWzQqKHIqcytsKStjXSxpWzQqKHIqcytsKStjXT11fXZhciBoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO2gud2lkdGg9cixoLmhlaWdodD1hO3ZhciBmLHA9aC5nZXRDb250ZXh0KCIyZCIpLGQ9cC5jcmVhdGVJbWFnZURhdGEocixhKTtzd2l0Y2goZC5kYXRhLnNldChpKSxwLnB1dEltYWdlRGF0YShkLDAsMCksdCl7Y2FzZSJqcGVnIjpmPWgudG9EYXRhVVJMKCJpbWFnZS9qcGVnIik7YnJlYWs7Y2FzZSJ3ZWJwIjpmPWgudG9EYXRhVVJMKCJpbWFnZS93ZWJwIik7YnJlYWs7ZGVmYXVsdDpmPWgudG9EYXRhVVJMKCJpbWFnZS9wbmciKX1yZXR1cm4gdGhpcy5zdGF0aWNNb2RlJiZ0aGlzLmNvbnRhaW5lci5yZW1vdmVDaGlsZChuKSxmfSxrLnNldENvbnZlcnQ9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PDM7dCsrKXt2YXIgZT10aGlzLmZ1bGxTY2VuZUxheW91dFtUW3RdXTtmLnNldENvbnZlcnQoZSx0aGlzLmZ1bGxMYXlvdXQpLGUuc2V0U2NhbGU9aC5ub29wfX0say5tYWtlNHRoRGltZW5zaW9uPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5ncmFwaERpdi5fZnVsbExheW91dDt0aGlzLl9tb2NrQXhpcz17dHlwZToibGluZWFyIixzaG93ZXhwb25lbnQ6ImFsbCIsZXhwb25lbnRmb3JtYXQ6IkIifSxmLnNldENvbnZlcnQodGhpcy5fbW9ja0F4aXMsdCl9LGUuZXhwb3J0cz13fSx7Ii4uLy4uL2NvbXBvbmVudHMvZngiOjYzMCwiLi4vLi4vbGliIjo3MTcsIi4uLy4uL2xpYi9zaG93X25vX3dlYmdsX21zZyI6NzM4LCIuLi8uLi9saWIvc3RyMnJnYmFycmF5Ijo3NDAsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo3NjUsIi4uLy4uL3JlZ2lzdHJ5Ijo4NDYsIi4vbGF5b3V0L2NvbnZlcnQiOjgwOSwiLi9sYXlvdXQvc3Bpa2VzIjo4MTIsIi4vbGF5b3V0L3RpY2tfbWFya3MiOjgxMywiLi9wcm9qZWN0Ijo4MTQsImdsLXBsb3QzZCI6MjkzLCJoYXMtcGFzc2l2ZS1ldmVudHMiOjQxMywiaXMtbW9iaWxlIjo0MjIsIndlYmdsLWNvbnRleHQiOjU1NX1dLDgxNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7bj1ufHx0Lmxlbmd0aDtmb3IodmFyIGE9bmV3IEFycmF5KG4pLGk9MDtpPG47aSsrKWFbaV09W3RbaV0sZVtpXSxyW2ldXTtyZXR1cm4gYX19LHt9XSw4MTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9mb250X2F0dHJpYnV0ZXMiKSxhPXQoIi4vYW5pbWF0aW9uX2F0dHJpYnV0ZXMiKSxpPXQoIi4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyIpLG89dCgiLi9wYWRfYXR0cmlidXRlcyIpLHM9dCgiLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsbD1uKHtlZGl0VHlwZToiY2FsYyJ9KTtsLmZhbWlseS5kZmx0PSciT3BlbiBTYW5zIiwgdmVyZGFuYSwgYXJpYWwsIHNhbnMtc2VyaWYnLGwuc2l6ZS5kZmx0PTEyLGwuY29sb3IuZGZsdD1pLmRlZmF1bHRMaW5lLGUuZXhwb3J0cz17Zm9udDpsLHRpdGxlOnt0ZXh0Ont2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJsYXlvdXRzdHlsZSJ9LGZvbnQ6bih7ZWRpdFR5cGU6ImxheW91dHN0eWxlIn0pLHhyZWY6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLGRmbHQ6ImNvbnRhaW5lciIsdmFsdWVzOlsiY29udGFpbmVyIiwicGFwZXIiXSxlZGl0VHlwZToibGF5b3V0c3R5bGUifSx5cmVmOnt2YWxUeXBlOiJlbnVtZXJhdGVkIixkZmx0OiJjb250YWluZXIiLHZhbHVlczpbImNvbnRhaW5lciIsInBhcGVyIl0sZWRpdFR5cGU6ImxheW91dHN0eWxlIn0seDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0Oi41LGVkaXRUeXBlOiJsYXlvdXRzdHlsZSJ9LHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoiYXV0byIsZWRpdFR5cGU6ImxheW91dHN0eWxlIn0seGFuY2hvcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsZGZsdDoiYXV0byIsdmFsdWVzOlsiYXV0byIsImxlZnQiLCJjZW50ZXIiLCJyaWdodCJdLGVkaXRUeXBlOiJsYXlvdXRzdHlsZSJ9LHlhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLGRmbHQ6ImF1dG8iLHZhbHVlczpbImF1dG8iLCJ0b3AiLCJtaWRkbGUiLCJib3R0b20iXSxlZGl0VHlwZToibGF5b3V0c3R5bGUifSxwYWQ6cyhvKHtlZGl0VHlwZToibGF5b3V0c3R5bGUifSkse30pLGVkaXRUeXBlOiJsYXlvdXRzdHlsZSJ9LHVuaWZvcm10ZXh0Onttb2RlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyExLCJoaWRlIiwic2hvdyJdLGRmbHQ6ITEsZWRpdFR5cGU6InBsb3QifSxtaW5zaXplOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MCxlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJwbG90In0sYXV0b3NpemU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITEsZWRpdFR5cGU6Im5vbmUifSx3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MTAsZGZsdDo3MDAsZWRpdFR5cGU6InBsb3QifSxoZWlnaHQ6e3ZhbFR5cGU6Im51bWJlciIsbWluOjEwLGRmbHQ6NDUwLGVkaXRUeXBlOiJwbG90In0sbWFyZ2luOntsOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6ODAsZWRpdFR5cGU6InBsb3QifSxyOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6ODAsZWRpdFR5cGU6InBsb3QifSx0Ont2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MTAwLGVkaXRUeXBlOiJwbG90In0sYjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjgwLGVkaXRUeXBlOiJwbG90In0scGFkOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MCxlZGl0VHlwZToicGxvdCJ9LGF1dG9leHBhbmQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6InBsb3QifSxlZGl0VHlwZToicGxvdCJ9LHBhcGVyX2JnY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmkuYmFja2dyb3VuZCxlZGl0VHlwZToicGxvdCJ9LHBsb3RfYmdjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6aS5iYWNrZ3JvdW5kLGVkaXRUeXBlOiJsYXlvdXRzdHlsZSJ9LHNlcGFyYXRvcnM6e3ZhbFR5cGU6InN0cmluZyIsZWRpdFR5cGU6InBsb3QifSxoaWRlc291cmNlczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMSxlZGl0VHlwZToicGxvdCJ9LHNob3dsZWdlbmQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGVkaXRUeXBlOiJsZWdlbmQifSxjb2xvcndheTp7dmFsVHlwZToiY29sb3JsaXN0IixkZmx0OmkuZGVmYXVsdHMsZWRpdFR5cGU6ImNhbGMifSxkYXRhcmV2aXNpb246e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImNhbGMifSx1aXJldmlzaW9uOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJub25lIn0sZWRpdHJldmlzaW9uOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJub25lIn0sc2VsZWN0aW9ucmV2aXNpb246e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6Im5vbmUifSx0ZW1wbGF0ZTp7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYyJ9LG1vZGViYXI6e29yaWVudGF0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ2IiwiaCJdLGRmbHQ6ImgiLGVkaXRUeXBlOiJtb2RlYmFyIn0sYmdjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJtb2RlYmFyIn0sY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToibW9kZWJhciJ9LGFjdGl2ZWNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6Im1vZGViYXIifSx1aXJldmlzaW9uOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJub25lIn0sZWRpdFR5cGU6Im1vZGViYXIifSxtZXRhOnt2YWxUeXBlOiJhbnkiLGFycmF5T2s6ITAsZWRpdFR5cGU6InBsb3QifSx0cmFuc2l0aW9uOnMoe30sYS50cmFuc2l0aW9uLHtlZGl0VHlwZToibm9uZSJ9KSxfZGVwcmVjYXRlZDp7dGl0bGU6e3ZhbFR5cGU6InN0cmluZyIsZWRpdFR5cGU6ImxheW91dHN0eWxlIn0sdGl0bGVmb250Om4oe2VkaXRUeXBlOiJsYXlvdXRzdHlsZSJ9KX19fSx7Ii4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyI6NTkxLCIuLi9saWIvZXh0ZW5kIjo3MDgsIi4vYW5pbWF0aW9uX2F0dHJpYnV0ZXMiOjc2MCwiLi9mb250X2F0dHJpYnV0ZXMiOjc5MSwiLi9wYWRfYXR0cmlidXRlcyI6ODI1fV0sODE4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXsib3Blbi1zdHJlZXQtbWFwIjp7aWQ6Im9zbSIsdmVyc2lvbjo4LHNvdXJjZXM6eyJwbG90bHktb3NtLXRpbGVzIjp7dHlwZToicmFzdGVyIixhdHRyaWJ1dGlvbjonPGEgaHJlZj0iaHR0cDovL3d3dy5vcGVuc3RyZWV0bWFwLm9yZy9hYm91dC8iIHRhcmdldD0iX2JsYW5rIj5ceGE5IE9wZW5TdHJlZXRNYXA8L2E+Jyx0aWxlczpbImh0dHBzOi8vYS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZyIsImh0dHBzOi8vYi50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZyJdLHRpbGVTaXplOjI1Nn19LGxheWVyczpbe2lkOiJwbG90bHktb3NtLXRpbGVzIix0eXBlOiJyYXN0ZXIiLHNvdXJjZToicGxvdGx5LW9zbS10aWxlcyIsbWluem9vbTowLG1heHpvb206MjJ9XX0sIndoaXRlLWJnIjp7aWQ6IndoaXRlLWJnIix2ZXJzaW9uOjgsc291cmNlczp7fSxsYXllcnM6W3tpZDoid2hpdGUtYmciLHR5cGU6ImJhY2tncm91bmQiLHBhaW50OnsiYmFja2dyb3VuZC1jb2xvciI6IiNGRkZGRkYifSxtaW56b29tOjAsbWF4em9vbToyMn1dfSwiY2FydG8tcG9zaXRyb24iOntpZDoiY2FydG8tcG9zaXRyb24iLHZlcnNpb246OCxzb3VyY2VzOnsicGxvdGx5LWNhcnRvLXBvc2l0cm9uIjp7dHlwZToicmFzdGVyIixhdHRyaWJ1dGlvbjonPGEgaHJlZj0iaHR0cHM6Ly9jYXJ0by5jb20vIiB0YXJnZXQ9Il9ibGFuayI+XHhhOSBDQVJUTzwvYT4nLHRpbGVzOlsiaHR0cHM6Ly9jYXJ0b2RiLWJhc2VtYXBzLWMuZ2xvYmFsLnNzbC5mYXN0bHkubmV0L2xpZ2h0X2FsbC97en0ve3h9L3t5fS5wbmciXSx0aWxlU2l6ZToyNTZ9fSxsYXllcnM6W3tpZDoicGxvdGx5LWNhcnRvLXBvc2l0cm9uIix0eXBlOiJyYXN0ZXIiLHNvdXJjZToicGxvdGx5LWNhcnRvLXBvc2l0cm9uIixtaW56b29tOjAsbWF4em9vbToyMn1dfSwiY2FydG8tZGFya21hdHRlciI6e2lkOiJjYXJ0by1kYXJrbWF0dGVyIix2ZXJzaW9uOjgsc291cmNlczp7InBsb3RseS1jYXJ0by1kYXJrbWF0dGVyIjp7dHlwZToicmFzdGVyIixhdHRyaWJ1dGlvbjonPGEgaHJlZj0iaHR0cHM6Ly9jYXJ0by5jb20vIiB0YXJnZXQ9Il9ibGFuayI+XHhhOSBDQVJUTzwvYT4nLHRpbGVzOlsiaHR0cHM6Ly9jYXJ0b2RiLWJhc2VtYXBzLWMuZ2xvYmFsLnNzbC5mYXN0bHkubmV0L2RhcmtfYWxsL3t6fS97eH0ve3l9LnBuZyJdLHRpbGVTaXplOjI1Nn19LGxheWVyczpbe2lkOiJwbG90bHktY2FydG8tZGFya21hdHRlciIsdHlwZToicmFzdGVyIixzb3VyY2U6InBsb3RseS1jYXJ0by1kYXJrbWF0dGVyIixtaW56b29tOjAsbWF4em9vbToyMn1dfSwic3RhbWVuLXRlcnJhaW4iOntpZDoic3RhbWVuLXRlcnJhaW4iLHZlcnNpb246OCxzb3VyY2VzOnsicGxvdGx5LXN0YW1lbi10ZXJyYWluIjp7dHlwZToicmFzdGVyIixhdHRyaWJ1dGlvbjonTWFwIHRpbGVzIGJ5IDxhIGhyZWY9Imh0dHA6Ly9zdGFtZW4uY29tIj5TdGFtZW4gRGVzaWduPC9hPiwgdW5kZXIgPGEgaHJlZj0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wIj5DQyBCWSAzLjA8L2E+IHwgRGF0YSBieSA8YSBocmVmPSJodHRwOi8vb3BlbnN0cmVldG1hcC5vcmciPk9wZW5TdHJlZXRNYXA8L2E+LCB1bmRlciA8YSBocmVmPSJodHRwOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodCI+T0RiTDwvYT4uJyx0aWxlczpbImh0dHBzOi8vc3RhbWVuLXRpbGVzLmEuc3NsLmZhc3RseS5uZXQvdGVycmFpbi97en0ve3h9L3t5fS5wbmciXSx0aWxlU2l6ZToyNTZ9fSxsYXllcnM6W3tpZDoicGxvdGx5LXN0YW1lbi10ZXJyYWluIix0eXBlOiJyYXN0ZXIiLHNvdXJjZToicGxvdGx5LXN0YW1lbi10ZXJyYWluIixtaW56b29tOjAsbWF4em9vbToyMn1dfSwic3RhbWVuLXRvbmVyIjp7aWQ6InN0YW1lbi10b25lciIsdmVyc2lvbjo4LHNvdXJjZXM6eyJwbG90bHktc3RhbWVuLXRvbmVyIjp7dHlwZToicmFzdGVyIixhdHRyaWJ1dGlvbjonTWFwIHRpbGVzIGJ5IDxhIGhyZWY9Imh0dHA6Ly9zdGFtZW4uY29tIj5TdGFtZW4gRGVzaWduPC9hPiwgdW5kZXIgPGEgaHJlZj0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wIj5DQyBCWSAzLjA8L2E+IHwgRGF0YSBieSA8YSBocmVmPSJodHRwOi8vb3BlbnN0cmVldG1hcC5vcmciPk9wZW5TdHJlZXRNYXA8L2E+LCB1bmRlciA8YSBocmVmPSJodHRwOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodCI+T0RiTDwvYT4uJyx0aWxlczpbImh0dHBzOi8vc3RhbWVuLXRpbGVzLmEuc3NsLmZhc3RseS5uZXQvdG9uZXIve3p9L3t4fS97eX0ucG5nIl0sdGlsZVNpemU6MjU2fX0sbGF5ZXJzOlt7aWQ6InBsb3RseS1zdGFtZW4tdG9uZXIiLHR5cGU6InJhc3RlciIsc291cmNlOiJwbG90bHktc3RhbWVuLXRvbmVyIixtaW56b29tOjAsbWF4em9vbToyMn1dfSwic3RhbWVuLXdhdGVyY29sb3IiOntpZDoic3RhbWVuLXdhdGVyY29sb3IiLHZlcnNpb246OCxzb3VyY2VzOnsicGxvdGx5LXN0YW1lbi13YXRlcmNvbG9yIjp7dHlwZToicmFzdGVyIixhdHRyaWJ1dGlvbjonTWFwIHRpbGVzIGJ5IDxhIGhyZWY9Imh0dHA6Ly9zdGFtZW4uY29tIj5TdGFtZW4gRGVzaWduPC9hPiwgdW5kZXIgPGEgaHJlZj0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wIj5DQyBCWSAzLjA8L2E+IHwgRGF0YSBieSA8YSBocmVmPSJodHRwOi8vb3BlbnN0cmVldG1hcC5vcmciPk9wZW5TdHJlZXRNYXA8L2E+LCB1bmRlciA8YSBocmVmPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS8zLjAiPkNDIEJZIFNBPC9hPi4nLHRpbGVzOlsiaHR0cHM6Ly9zdGFtZW4tdGlsZXMuYS5zc2wuZmFzdGx5Lm5ldC93YXRlcmNvbG9yL3t6fS97eH0ve3l9LnBuZyJdLHRpbGVTaXplOjI1Nn19LGxheWVyczpbe2lkOiJwbG90bHktc3RhbWVuLXdhdGVyY29sb3IiLHR5cGU6InJhc3RlciIsc291cmNlOiJwbG90bHktc3RhbWVuLXdhdGVyY29sb3IiLG1pbnpvb206MCxtYXh6b29tOjIyfV19fSxhPU9iamVjdC5rZXlzKG4pO2UuZXhwb3J0cz17cmVxdWlyZWRWZXJzaW9uOiIxLjMuMiIsc3R5bGVVcmxQcmVmaXg6Im1hcGJveDovL3N0eWxlcy9tYXBib3gvIixzdHlsZVVybFN1ZmZpeDoidjkiLHN0eWxlVmFsdWVzTWFwYm94OlsiYmFzaWMiLCJzdHJlZXRzIiwib3V0ZG9vcnMiLCJsaWdodCIsImRhcmsiLCJzYXRlbGxpdGUiLCJzYXRlbGxpdGUtc3RyZWV0cyJdLHN0eWxlVmFsdWVEZmx0OiJiYXNpYyIsc3R5bGVzTm9uTWFwYm94Om4sc3R5bGVWYWx1ZXNOb25NYXBib3g6YSx0cmFjZUxheWVyUHJlZml4OiJwbG90bHktdHJhY2UtbGF5ZXItIixsYXlvdXRMYXllclByZWZpeDoicGxvdGx5LWxheW91dC1sYXllci0iLHdyb25nVmVyc2lvbkVycm9yTXNnOlsiWW91ciBjdXN0b20gcGxvdGx5LmpzIGJ1bmRsZSBpcyBub3QgdXNpbmcgdGhlIGNvcnJlY3QgbWFwYm94LWdsIHZlcnNpb24iLCJQbGVhc2UgaW5zdGFsbCBtYXBib3gtZ2xAMS4zLjIuIl0uam9pbigiXG4iKSxub0FjY2Vzc1Rva2VuRXJyb3JNc2c6WyJNaXNzaW5nIE1hcGJveCBhY2Nlc3MgdG9rZW4uIiwiTWFwYm94IHRyYWNlIHR5cGUgcmVxdWlyZSBhIE1hcGJveCBhY2Nlc3MgdG9rZW4gdG8gYmUgcmVnaXN0ZXJlZC4iLCJGb3IgZXhhbXBsZToiLCIgIFBsb3RseS5wbG90KGdkLCBkYXRhLCBsYXlvdXQsIHsgbWFwYm94QWNjZXNzVG9rZW46ICdteS1hY2Nlc3MtdG9rZW4nIH0pOyIsIk1vcmUgaW5mbyBoZXJlOiBodHRwczovL3d3dy5tYXBib3guY29tL2hlbHAvZGVmaW5lLWFjY2Vzcy10b2tlbi8iXS5qb2luKCJcbiIpLG1pc3NpbmdTdHlsZUVycm9yTXNnOlsiTm8gdmFsaWQgbWFwYm94IHN0eWxlIGZvdW5kLCBwbGVhc2Ugc2V0IGBtYXBib3guc3R5bGVgIHRvIG9uZSBvZjoiLGEuam9pbigiLCAiKSwib3IgcmVnaXN0ZXIgYSBNYXBib3ggYWNjZXNzIHRva2VuIHRvIHVzZSBhIE1hcGJveC1zZXJ2ZWQgc3R5bGUuIl0uam9pbigiXG4iKSxtdWx0aXBsZVRva2Vuc0Vycm9yTXNnOlsiU2V0IG11bHRpcGxlIG1hcGJveCBhY2Nlc3MgdG9rZW4gYWNyb3NzIGRpZmZlcmVudCBtYXBib3ggc3VicGxvdCwiLCJ1c2luZyBmaXJzdCB0b2tlbiBmb3VuZCBhcyBtYXBib3gtZ2wgZG9lcyBub3QgYWxsb3cgbXVsdGlwbGVhY2Nlc3MgdG9rZW5zIG9uIHRoZSBzYW1lIHBhZ2UuIl0uam9pbigiXG4iKSxtYXBPbkVycm9yTXNnOiJNYXBib3ggZXJyb3IuIixtYXBib3hMb2dvOntwYXRoMDoibSAxMC41LDEuMjQgYyAtNS4xMSwwIC05LjI1LDQuMTUgLTkuMjUsOS4yNSAwLDUuMSA0LjE1LDkuMjUgOS4yNSw5LjI1IDUuMSwwIDkuMjUsLTQuMTUgOS4yNSwtOS4yNSAwLC01LjExIC00LjE0LC05LjI1IC05LjI1LC05LjI1IHogbSA0LjM5LDExLjUzIGMgLTEuOTMsMS45MyAtNC43OCwyLjMxIC02LjcsMi4zMSAtMC43LDAgLTEuNDEsLTAuMDUgLTIuMSwtMC4xNiAwLDAgLTEuMDIsLTUuNjQgMi4xNCwtOC44MSAwLjgzLC0wLjgzIDEuOTUsLTEuMjggMy4xMywtMS4yOCAxLjI3LDAgMi40OSwwLjUxIDMuMzksMS40MiAxLjg0LDEuODQgMS44OSw0Ljc1IDAuMTQsNi41MiB6IixwYXRoMToiTSAxMC41LC0wLjAxIEMgNC43LC0wLjAxIDAsNC43IDAsMTAuNDkgYyAwLDUuNzkgNC43LDEwLjUgMTAuNSwxMC41IDUuOCwwIDEwLjUsLTQuNyAxMC41LC0xMC41IEMgMjAuOTksNC43IDE2LjMsLTAuMDEgMTAuNSwtMC4wMSBaIG0gMCwxOS43NSBjIC01LjExLDAgLTkuMjUsLTQuMTUgLTkuMjUsLTkuMjUgMCwtNS4xIDQuMTQsLTkuMjYgOS4yNSwtOS4yNiA1LjExLDAgOS4yNSw0LjE1IDkuMjUsOS4yNSAwLDUuMTMgLTQuMTQsOS4yNiAtOS4yNSw5LjI2IHoiLHBhdGgyOiJNIDE0Ljc0LDYuMjUgQyAxMi45LDQuNDEgOS45OCw0LjM1IDguMjMsNi4xIDUuMDcsOS4yNyA2LjA5LDE0LjkxIDYuMDksMTQuOTEgYyAwLDAgNS42NCwxLjAyIDguODEsLTIuMTQgQyAxNi42NCwxMSAxNi41OSw4LjA5IDE0Ljc0LDYuMjUgWiBtIC0yLjI3LDQuMDkgLTAuOTEsMS44NyAtMC45LC0xLjg3IC0xLjg2LC0wLjkxIDEuODYsLTAuOSAwLjksLTEuODcgMC45MSwxLjg3IDEuODYsMC45IHoiLHBvbHlnb246IjExLjU2LDEyLjIxIDEwLjY2LDEwLjM0IDguOCw5LjQzIDEwLjY2LDguNTMgMTEuNTYsNi42NiAxMi40Nyw4LjUzIDE0LjMzLDkuNDMgMTIuNDcsMTAuMzQifSxzdHlsZVJ1bGVzOnttYXA6Im92ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTsiLCJtaXNzaW5nLWNzcyI6ImRpc3BsYXk6bm9uZTsiLGNhbmFyeToiYmFja2dyb3VuZC1jb2xvcjpzYWxtb247IiwiY3RybC1ib3R0b20tbGVmdCI6InBvc2l0aW9uOiBhYnNvbHV0ZTsgcG9pbnRlci1ldmVudHM6IG5vbmU7IHotaW5kZXg6IDI7IGJvdHRvbTogMDsgbGVmdDogMDsiLCJjdHJsLWJvdHRvbS1yaWdodCI6InBvc2l0aW9uOiBhYnNvbHV0ZTsgcG9pbnRlci1ldmVudHM6IG5vbmU7IHotaW5kZXg6IDI7IHJpZ2h0OiAwOyBib3R0b206IDA7IixjdHJsOiJjbGVhcjogYm90aDsgcG9pbnRlci1ldmVudHM6IGF1dG87IHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyIsImN0cmwtYXR0cmliLm1hcGJveGdsLWNvbXBhY3QgLm1hcGJveGdsLWN0cmwtYXR0cmliLWlubmVyIjoiZGlzcGxheTogbm9uZTsiLCJjdHJsLWF0dHJpYi5tYXBib3hnbC1jb21wYWN0OmhvdmVyIC5tYXBib3hnbC1jdHJsLWF0dHJpYi1pbm5lciI6ImRpc3BsYXk6IGJsb2NrOyBtYXJnaW4tdG9wOjJweCIsImN0cmwtYXR0cmliLm1hcGJveGdsLWNvbXBhY3Q6aG92ZXIiOiJwYWRkaW5nOiAycHggMjRweCAycHggNHB4OyB2aXNpYmlsaXR5OiB2aXNpYmxlOyBtYXJnaW4tdG9wOiA2cHg7IiwiY3RybC1hdHRyaWIubWFwYm94Z2wtY29tcGFjdDo6YWZ0ZXIiOidjb250ZW50OiAiIjsgY3Vyc29yOiBwb2ludGVyOyBwb3NpdGlvbjogYWJzb2x1dGU7IGJhY2tncm91bmQtaW1hZ2U6IHVybChcJ2RhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIlM0UgJTNDcGF0aCBmaWxsPSIlMjMzMzMzMzMiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTQsMTBhNiw2IDAgMSwwIDEyLDBhNiw2IDAgMSwwIC0xMiwwIE05LDdhMSwxIDAgMSwwIDIsMGExLDEgMCAxLDAgLTIsMCBNOSwxMGExLDEgMCAxLDEgMiwwbDAsM2ExLDEgMCAxLDEgLTIsMCIvJTNFICUzQy9zdmclM0VcJyk7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTsgd2lkdGg6IDI0cHg7IGhlaWdodDogMjRweDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgYm9yZGVyLXJhZGl1czogMTJweDsnLCJjdHJsLWF0dHJpYi5tYXBib3hnbC1jb21wYWN0IjoibWluLWhlaWdodDogMjBweDsgcGFkZGluZzogMDsgbWFyZ2luOiAxMHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDNweCAxMnB4IDEycHggM3B4OyIsImN0cmwtYm90dG9tLXJpZ2h0ID4gLm1hcGJveGdsLWN0cmwtYXR0cmliLm1hcGJveGdsLWNvbXBhY3Q6OmFmdGVyIjoiYm90dG9tOiAwOyByaWdodDogMCIsImN0cmwtYm90dG9tLWxlZnQgPiAubWFwYm94Z2wtY3RybC1hdHRyaWIubWFwYm94Z2wtY29tcGFjdDo6YWZ0ZXIiOiJib3R0b206IDA7IGxlZnQ6IDAiLCJjdHJsLWJvdHRvbS1sZWZ0IC5tYXBib3hnbC1jdHJsIjoibWFyZ2luOiAwIDAgMTBweCAxMHB4OyBmbG9hdDogbGVmdDsiLCJjdHJsLWJvdHRvbS1yaWdodCAubWFwYm94Z2wtY3RybCI6Im1hcmdpbjogMCAxMHB4IDEwcHggMDsgZmxvYXQ6IHJpZ2h0OyIsImN0cmwtYXR0cmliIjoiY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43NSk7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgZm9udC1zaXplOiAxMnB4IiwiY3RybC1hdHRyaWIgYSI6ImNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNzUpOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGZvbnQtc2l6ZTogMTJweCIsImN0cmwtYXR0cmliIGE6aG92ZXIiOiJjb2xvcjogaW5oZXJpdDsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IiwiY3RybC1hdHRyaWIgLm1hcGJveC1pbXByb3ZlLW1hcCI6ImZvbnQtd2VpZ2h0OiBib2xkOyBtYXJnaW4tbGVmdDogMnB4OyIsImF0dHJpYi1lbXB0eSI6ImRpc3BsYXk6IG5vbmU7IiwiY3RybC1sb2dvIjonZGlzcGxheTpibG9jazsgd2lkdGg6IDIxcHg7IGhlaWdodDogMjFweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwnZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDP3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/JTNFICUzQ3N2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDIxIDIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyMSAyMTsiIHhtbDpzcGFjZT0icHJlc2VydmUiJTNFJTNDZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLDAuMDEpIiUzRSUzQ3BhdGggZD0ibSAxMC41LDEuMjQgYyAtNS4xMSwwIC05LjI1LDQuMTUgLTkuMjUsOS4yNSAwLDUuMSA0LjE1LDkuMjUgOS4yNSw5LjI1IDUuMSwwIDkuMjUsLTQuMTUgOS4yNSwtOS4yNSAwLC01LjExIC00LjE0LC05LjI1IC05LjI1LC05LjI1IHogbSA0LjM5LDExLjUzIGMgLTEuOTMsMS45MyAtNC43OCwyLjMxIC02LjcsMi4zMSAtMC43LDAgLTEuNDEsLTAuMDUgLTIuMSwtMC4xNiAwLDAgLTEuMDIsLTUuNjQgMi4xNCwtOC44MSAwLjgzLC0wLjgzIDEuOTUsLTEuMjggMy4xMywtMS4yOCAxLjI3LDAgMi40OSwwLjUxIDMuMzksMS40MiAxLjg0LDEuODQgMS44OSw0Ljc1IDAuMTQsNi41MiB6IiBzdHlsZT0ib3BhY2l0eTowLjk7ZmlsbDolMjNmZmZmZmY7ZW5hYmxlLWJhY2tncm91bmQ6bmV3IiBjbGFzcz0ic3QwIi8lM0UlM0NwYXRoIGQ9Ik0gMTAuNSwtMC4wMSBDIDQuNywtMC4wMSAwLDQuNyAwLDEwLjQ5IGMgMCw1Ljc5IDQuNywxMC41IDEwLjUsMTAuNSA1LjgsMCAxMC41LC00LjcgMTAuNSwtMTAuNSBDIDIwLjk5LDQuNyAxNi4zLC0wLjAxIDEwLjUsLTAuMDEgWiBtIDAsMTkuNzUgYyAtNS4xMSwwIC05LjI1LC00LjE1IC05LjI1LC05LjI1IDAsLTUuMSA0LjE0LC05LjI2IDkuMjUsLTkuMjYgNS4xMSwwIDkuMjUsNC4xNSA5LjI1LDkuMjUgMCw1LjEzIC00LjE0LDkuMjYgLTkuMjUsOS4yNiB6IiBzdHlsZT0ib3BhY2l0eTowLjM1O2VuYWJsZS1iYWNrZ3JvdW5kOm5ldyIgY2xhc3M9InN0MSIvJTNFJTNDcGF0aCBkPSJNIDE0Ljc0LDYuMjUgQyAxMi45LDQuNDEgOS45OCw0LjM1IDguMjMsNi4xIDUuMDcsOS4yNyA2LjA5LDE0LjkxIDYuMDksMTQuOTEgYyAwLDAgNS42NCwxLjAyIDguODEsLTIuMTQgQyAxNi42NCwxMSAxNi41OSw4LjA5IDE0Ljc0LDYuMjUgWiBtIC0yLjI3LDQuMDkgLTAuOTEsMS44NyAtMC45LC0xLjg3IC0xLjg2LC0wLjkxIDEuODYsLTAuOSAwLjksLTEuODcgMC45MSwxLjg3IDEuODYsMC45IHoiIHN0eWxlPSJvcGFjaXR5OjAuMzU7ZW5hYmxlLWJhY2tncm91bmQ6bmV3IiBjbGFzcz0ic3QxIi8lM0UlM0Nwb2x5Z29uIHBvaW50cz0iMTEuNTYsMTIuMjEgMTAuNjYsMTAuMzQgOC44LDkuNDMgMTAuNjYsOC41MyAxMS41Niw2LjY2IDEyLjQ3LDguNTMgMTQuMzMsOS40MyAxMi40NywxMC4zNCAiIHN0eWxlPSJvcGFjaXR5OjAuOTtmaWxsOiUyM2ZmZmZmZjtlbmFibGUtYmFja2dyb3VuZDpuZXciIGNsYXNzPSJzdDAiLyUzRSUzQy9nJTNFJTNDL3N2ZyUzRVwnKSd9fX0se31dLDgxOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10LnNwbGl0KCIgIiksYT1yWzBdLGk9clsxXSxvPW4uaXNBcnJheU9yVHlwZWRBcnJheShlKT9uLm1lYW4oZSk6ZSxzPS41K28vMTAwLGw9MS41K28vMTAwLGM9WyIiLCIiXSx1PVswLDBdO3N3aXRjaChhKXtjYXNlInRvcCI6Y1swXT0idG9wIix1WzFdPS1sO2JyZWFrO2Nhc2UiYm90dG9tIjpjWzBdPSJib3R0b20iLHVbMV09bH1zd2l0Y2goaSl7Y2FzZSJsZWZ0IjpjWzFdPSJyaWdodCIsdVswXT0tczticmVhaztjYXNlInJpZ2h0IjpjWzFdPSJsZWZ0Iix1WzBdPXN9cmV0dXJue2FuY2hvcjpjWzBdJiZjWzFdP2Muam9pbigiLSIpOmNbMF0/Y1swXTpjWzFdP2NbMV06ImNlbnRlciIsb2Zmc2V0OnV9fX0seyIuLi8uLi9saWIiOjcxN31dLDgyMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJtYXBib3gtZ2wiKSxhPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vcGxvdHMvZ2V0X2RhdGEiKS5nZXRTdWJwbG90Q2FsY0RhdGEsbz10KCIuLi8uLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyIpLHM9dCgiZDMiKSxsPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGM9dCgiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIiksdT10KCIuL21hcGJveCIpLGg9ci5jb25zdGFudHM9dCgiLi9jb25zdGFudHMiKTtmdW5jdGlvbiBmKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdCYmKC0xIT09aC5zdHlsZVZhbHVlc01hcGJveC5pbmRleE9mKHQpfHwwPT09dC5pbmRleE9mKCJtYXBib3g6Ly8iKSl9ci5uYW1lPSJtYXBib3giLHIuYXR0cj0ic3VicGxvdCIsci5pZFJvb3Q9Im1hcGJveCIsci5pZFJlZ2V4PXIuYXR0clJlZ2V4PWEuY291bnRlclJlZ2V4KCJtYXBib3giKSxyLmF0dHJpYnV0ZXM9e3N1YnBsb3Q6e3ZhbFR5cGU6InN1YnBsb3RpZCIsZGZsdDoibWFwYm94IixlZGl0VHlwZToiY2FsYyJ9fSxyLmxheW91dEF0dHJpYnV0ZXM9dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLHIuc3VwcGx5TGF5b3V0RGVmYXVsdHM9dCgiLi9sYXlvdXRfZGVmYXVsdHMiKSxyLnBsb3Q9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dCxyPXQuY2FsY2RhdGEsbz1lLl9zdWJwbG90cy5tYXBib3g7aWYobi52ZXJzaW9uIT09aC5yZXF1aXJlZFZlcnNpb24pdGhyb3cgbmV3IEVycm9yKGgud3JvbmdWZXJzaW9uRXJyb3JNc2cpO3ZhciBzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5fZnVsbExheW91dDtpZigiIj09PXQuX2NvbnRleHQubWFwYm94QWNjZXNzVG9rZW4pcmV0dXJuIiI7Zm9yKHZhciBuPVtdLGk9W10sbz0hMSxzPSExLGw9MDtsPGUubGVuZ3RoO2wrKyl7dmFyIGM9cltlW2xdXSx1PWMuYWNjZXNzdG9rZW47ZihjLnN0eWxlKSYmKHU/YS5wdXNoVW5pcXVlKG4sdSk6KGYoYy5faW5wdXQuc3R5bGUpJiYoYS5lcnJvcigiVXNlcyBNYXBib3ggbWFwIHN0eWxlLCBidXQgZGlkIG5vdCBzZXQgYW4gYWNjZXNzIHRva2VuLiIpLG89ITApLHM9ITApKSx1JiZhLnB1c2hVbmlxdWUoaSx1KX1pZihzKXt2YXIgcD1vP2gubm9BY2Nlc3NUb2tlbkVycm9yTXNnOmgubWlzc2luZ1N0eWxlRXJyb3JNc2c7dGhyb3cgYS5lcnJvcihwKSxuZXcgRXJyb3IocCl9cmV0dXJuIG4ubGVuZ3RoPyhuLmxlbmd0aD4xJiZhLndhcm4oaC5tdWx0aXBsZVRva2Vuc0Vycm9yTXNnKSxuWzBdKTooaS5sZW5ndGgmJmEubG9nKFsiTGlzdGVkIG1hcGJveCBhY2Nlc3MgdG9rZW4ocykiLGkuam9pbigiLCIpLCJidXQgZGlkIG5vdCB1c2UgYSBNYXBib3ggbWFwIHN0eWxlLCBpZ25vcmluZyB0b2tlbihzKS4iXS5qb2luKCIgIikpLCIiKX0odCxvKTtuLmFjY2Vzc1Rva2VuPXM7Zm9yKHZhciBsPTA7bDxvLmxlbmd0aDtsKyspe3ZhciBjPW9bbF0scD1pKHIsIm1hcGJveCIsYyksZD1lW2NdLGc9ZC5fc3VicGxvdDtnfHwoZz1uZXcgdSh0LGMpLGVbY10uX3N1YnBsb3Q9ZyksZy52aWV3SW5pdGlhbHx8KGcudmlld0luaXRpYWw9e2NlbnRlcjphLmV4dGVuZEZsYXQoe30sZC5jZW50ZXIpLHpvb206ZC56b29tLGJlYXJpbmc6ZC5iZWFyaW5nLHBpdGNoOmQucGl0Y2h9KSxnLnBsb3QocCxlLHQuX3Byb21pc2VzKX19LHIuY2xlYW49ZnVuY3Rpb24odCxlLHIsbil7Zm9yKHZhciBhPW4uX3N1YnBsb3RzLm1hcGJveHx8W10saT0wO2k8YS5sZW5ndGg7aSsrKXt2YXIgbz1hW2ldOyFlW29dJiZuW29dLl9zdWJwbG90JiZuW29dLl9zdWJwbG90LmRlc3Ryb3koKX19LHIudG9TVkc9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuX2Z1bGxMYXlvdXQscj1lLl9zdWJwbG90cy5tYXBib3gsbj1lLl9zaXplLGE9MDthPHIubGVuZ3RoO2ErKyl7dmFyIGk9ZVtyW2FdXSx1PWkuZG9tYWluLGY9aS5fc3VicGxvdC50b0ltYWdlKCJwbmciKTtlLl9nbGltYWdlcy5hcHBlbmQoInN2ZzppbWFnZSIpLmF0dHIoe3htbG5zOm8uc3ZnLCJ4bGluazpocmVmIjpmLHg6bi5sK24udyp1LnhbMF0seTpuLnQrbi5oKigxLXUueVsxXSksd2lkdGg6bi53Kih1LnhbMV0tdS54WzBdKSxoZWlnaHQ6bi5oKih1LnlbMV0tdS55WzBdKSxwcmVzZXJ2ZUFzcGVjdFJhdGlvOiJub25lIn0pO3ZhciBwPXMuc2VsZWN0KGkuX3N1YnBsb3QuZGl2KTtpZighKG51bGw9PT1wLnNlbGVjdCgiLm1hcGJveGdsLWN0cmwtbG9nbyIpLm5vZGUoKS5vZmZzZXRQYXJlbnQpKXt2YXIgZD1lLl9nbGltYWdlcy5hcHBlbmQoImciKTtkLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiKyhuLmwrbi53KnUueFswXSsxMCkrIiwgIisobi50K24uaCooMS11LnlbMF0pLTMxKSsiKSIpLGQuYXBwZW5kKCJwYXRoIikuYXR0cigiZCIsaC5tYXBib3hMb2dvLnBhdGgwKS5zdHlsZSh7b3BhY2l0eTouOSxmaWxsOiIjZmZmZmZmIiwiZW5hYmxlLWJhY2tncm91bmQiOiJuZXcifSksZC5hcHBlbmQoInBhdGgiKS5hdHRyKCJkIixoLm1hcGJveExvZ28ucGF0aDEpLnN0eWxlKCJvcGFjaXR5IiwuMzUpLnN0eWxlKCJlbmFibGUtYmFja2dyb3VuZCIsIm5ldyIpLGQuYXBwZW5kKCJwYXRoIikuYXR0cigiZCIsaC5tYXBib3hMb2dvLnBhdGgyKS5zdHlsZSgib3BhY2l0eSIsLjM1KS5zdHlsZSgiZW5hYmxlLWJhY2tncm91bmQiLCJuZXciKSxkLmFwcGVuZCgicG9seWdvbiIpLmF0dHIoInBvaW50cyIsaC5tYXBib3hMb2dvLnBvbHlnb24pLnN0eWxlKHtvcGFjaXR5Oi45LGZpbGw6IiNmZmZmZmYiLCJlbmFibGUtYmFja2dyb3VuZCI6Im5ldyJ9KX12YXIgZz1wLnNlbGVjdCgiLm1hcGJveGdsLWN0cmwtYXR0cmliIikudGV4dCgpLnJlcGxhY2UoIkltcHJvdmUgdGhpcyBtYXAiLCIiKSx2PWUuX2dsaW1hZ2VzLmFwcGVuZCgiZyIpLG09di5hcHBlbmQoInRleHQiKTttLnRleHQoZykuY2xhc3NlZCgic3RhdGljLWF0dHJpYnV0aW9uIiwhMCkuYXR0cih7ImZvbnQtc2l6ZSI6MTIsImZvbnQtZmFtaWx5IjoiQXJpYWwiLGNvbG9yOiJyZ2JhKDAsIDAsIDAsIDAuNzUpIiwidGV4dC1hbmNob3IiOiJlbmQiLCJkYXRhLXVuZm9ybWF0dGVkIjpnfSk7dmFyIHk9bC5iQm94KG0ubm9kZSgpKSx4PW4udyoodS54WzFdLXUueFswXSk7aWYoeS53aWR0aD54LzIpe3ZhciBiPWcuc3BsaXQoInwiKS5qb2luKCI8YnI+Iik7bS50ZXh0KGIpLmF0dHIoImRhdGEtdW5mb3JtYXR0ZWQiLGIpLmNhbGwoYy5jb252ZXJ0VG9Uc3BhbnMsdCkseT1sLmJCb3gobS5ub2RlKCkpfW0uYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKC0zLCAiKyg4LXkuaGVpZ2h0KSsiKSIpLHYuaW5zZXJ0KCJyZWN0IiwiLnN0YXRpYy1hdHRyaWJ1dGlvbiIpLmF0dHIoe3g6LXkud2lkdGgtNix5Oi15LmhlaWdodC0zLHdpZHRoOnkud2lkdGgrNixoZWlnaHQ6eS5oZWlnaHQrMyxmaWxsOiJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpIn0pO3ZhciBfPTE7eS53aWR0aCs2PngmJihfPXgvKHkud2lkdGgrNikpO3ZhciB3PVtuLmwrbi53KnUueFsxXSxuLnQrbi5oKigxLXUueVswXSldO3YuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrd1swXSsiLCIrd1sxXSsiKSBzY2FsZSgiK18rIikiKX19LHIudXBkYXRlRng9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuX2Z1bGxMYXlvdXQscj1lLl9zdWJwbG90cy5tYXBib3gsbj0wO248ci5sZW5ndGg7bisrKXtlW3Jbbl1dLl9zdWJwbG90LnVwZGF0ZUZ4KGUpfX19LHsiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo2MTMsIi4uLy4uL2NvbnN0YW50cy94bWxuc19uYW1lc3BhY2VzIjo2OTQsIi4uLy4uL2xpYiI6NzE3LCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjc0MSwiLi4vLi4vcGxvdHMvZ2V0X2RhdGEiOjgwMCwiLi9jb25zdGFudHMiOjgxOCwiLi9sYXlvdXRfYXR0cmlidXRlcyI6ODIyLCIuL2xheW91dF9kZWZhdWx0cyI6ODIzLCIuL21hcGJveCI6ODI0LGQzOjE2NSwibWFwYm94LWdsIjo0Mjh9XSw4MjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuL2NvbnZlcnRfdGV4dF9vcHRzIiksaT10KCIuL2NvbnN0YW50cyIpO2Z1bmN0aW9uIG8odCxlKXt0aGlzLnN1YnBsb3Q9dCx0aGlzLnVpZD10LnVpZCsiLSIrZSx0aGlzLmluZGV4PWUsdGhpcy5pZFNvdXJjZT0ic291cmNlLSIrdGhpcy51aWQsdGhpcy5pZExheWVyPWkubGF5b3V0TGF5ZXJQcmVmaXgrdGhpcy51aWQsdGhpcy5zb3VyY2VUeXBlPW51bGwsdGhpcy5zb3VyY2U9bnVsbCx0aGlzLmxheWVyVHlwZT1udWxsLHRoaXMuYmVsb3c9bnVsbCx0aGlzLnZpc2libGU9ITF9dmFyIHM9by5wcm90b3R5cGU7ZnVuY3Rpb24gbCh0KXtpZighdC52aXNpYmxlKXJldHVybiExO3ZhciBlPXQuc291cmNlO2lmKEFycmF5LmlzQXJyYXkoZSkmJmUubGVuZ3RoPjApe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKWlmKCJzdHJpbmciIT10eXBlb2YgZVtyXXx8MD09PWVbcl0ubGVuZ3RoKXJldHVybiExO3JldHVybiEwfXJldHVybiBuLmlzUGxhaW5PYmplY3QoZSl8fCJzdHJpbmciPT10eXBlb2YgZSYmZS5sZW5ndGg+MH1mdW5jdGlvbiBjKHQpe3ZhciBlPXt9LHI9e307c3dpdGNoKHQudHlwZSl7Y2FzZSJjaXJjbGUiOm4uZXh0ZW5kRmxhdChyLHsiY2lyY2xlLXJhZGl1cyI6dC5jaXJjbGUucmFkaXVzLCJjaXJjbGUtY29sb3IiOnQuY29sb3IsImNpcmNsZS1vcGFjaXR5Ijp0Lm9wYWNpdHl9KTticmVhaztjYXNlImxpbmUiOm4uZXh0ZW5kRmxhdChyLHsibGluZS13aWR0aCI6dC5saW5lLndpZHRoLCJsaW5lLWNvbG9yIjp0LmNvbG9yLCJsaW5lLW9wYWNpdHkiOnQub3BhY2l0eSwibGluZS1kYXNoYXJyYXkiOnQubGluZS5kYXNofSk7YnJlYWs7Y2FzZSJmaWxsIjpuLmV4dGVuZEZsYXQocix7ImZpbGwtY29sb3IiOnQuY29sb3IsImZpbGwtb3V0bGluZS1jb2xvciI6dC5maWxsLm91dGxpbmVjb2xvciwiZmlsbC1vcGFjaXR5Ijp0Lm9wYWNpdHl9KTticmVhaztjYXNlInN5bWJvbCI6dmFyIGk9dC5zeW1ib2wsbz1hKGkudGV4dHBvc2l0aW9uLGkuaWNvbnNpemUpO24uZXh0ZW5kRmxhdChlLHsiaWNvbi1pbWFnZSI6aS5pY29uKyItMTUiLCJpY29uLXNpemUiOmkuaWNvbnNpemUvMTAsInRleHQtZmllbGQiOmkudGV4dCwidGV4dC1zaXplIjppLnRleHRmb250LnNpemUsInRleHQtYW5jaG9yIjpvLmFuY2hvciwidGV4dC1vZmZzZXQiOm8ub2Zmc2V0LCJzeW1ib2wtcGxhY2VtZW50IjppLnBsYWNlbWVudH0pLG4uZXh0ZW5kRmxhdChyLHsiaWNvbi1jb2xvciI6dC5jb2xvciwidGV4dC1jb2xvciI6aS50ZXh0Zm9udC5jb2xvciwidGV4dC1vcGFjaXR5Ijp0Lm9wYWNpdHl9KTticmVhaztjYXNlInJhc3RlciI6bi5leHRlbmRGbGF0KHIseyJyYXN0ZXItZmFkZS1kdXJhdGlvbiI6MCwicmFzdGVyLW9wYWNpdHkiOnQub3BhY2l0eX0pfXJldHVybntsYXlvdXQ6ZSxwYWludDpyfX1zLnVwZGF0ZT1mdW5jdGlvbih0KXt0aGlzLnZpc2libGU/dGhpcy5uZWVkc05ld0ltYWdlKHQpP3RoaXMudXBkYXRlSW1hZ2UodCk6dGhpcy5uZWVkc05ld1NvdXJjZSh0KT8odGhpcy5yZW1vdmVMYXllcigpLHRoaXMudXBkYXRlU291cmNlKHQpLHRoaXMudXBkYXRlTGF5ZXIodCkpOnRoaXMubmVlZHNOZXdMYXllcih0KT90aGlzLnVwZGF0ZUxheWVyKHQpOnRoaXMudXBkYXRlU3R5bGUodCk6KHRoaXMudXBkYXRlU291cmNlKHQpLHRoaXMudXBkYXRlTGF5ZXIodCkpLHRoaXMudmlzaWJsZT1sKHQpfSxzLm5lZWRzTmV3SW1hZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc3VicGxvdC5tYXAuZ2V0U291cmNlKHRoaXMuaWRTb3VyY2UpJiYiaW1hZ2UiPT09dGhpcy5zb3VyY2VUeXBlJiYiaW1hZ2UiPT09dC5zb3VyY2V0eXBlJiYodGhpcy5zb3VyY2UhPT10LnNvdXJjZXx8SlNPTi5zdHJpbmdpZnkodGhpcy5jb29yZGluYXRlcykhPT1KU09OLnN0cmluZ2lmeSh0LmNvb3JkaW5hdGVzKSl9LHMubmVlZHNOZXdTb3VyY2U9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc291cmNlVHlwZSE9PXQuc291cmNldHlwZXx8dGhpcy5zb3VyY2UhPT10LnNvdXJjZXx8dGhpcy5sYXllclR5cGUhPT10LnR5cGV9LHMubmVlZHNOZXdMYXllcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sYXllclR5cGUhPT10LnR5cGV8fHRoaXMuYmVsb3chPT10aGlzLnN1YnBsb3QuYmVsb3dMb29rdXBbImxheW91dC0iK3RoaXMuaW5kZXhdfSxzLnVwZGF0ZUltYWdlPWZ1bmN0aW9uKHQpe3RoaXMuc3VicGxvdC5tYXAuZ2V0U291cmNlKHRoaXMuaWRTb3VyY2UpLnVwZGF0ZUltYWdlKHt1cmw6dC5zb3VyY2UsY29vcmRpbmF0ZXM6dC5jb29yZGluYXRlc30pfSxzLnVwZGF0ZVNvdXJjZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnN1YnBsb3QubWFwO2lmKGUuZ2V0U291cmNlKHRoaXMuaWRTb3VyY2UpJiZlLnJlbW92ZVNvdXJjZSh0aGlzLmlkU291cmNlKSx0aGlzLnNvdXJjZVR5cGU9dC5zb3VyY2V0eXBlLHRoaXMuc291cmNlPXQuc291cmNlLGwodCkpe3ZhciByPWZ1bmN0aW9uKHQpe3ZhciBlLHI9dC5zb3VyY2V0eXBlLG49dC5zb3VyY2UsYT17dHlwZTpyfTsiZ2VvanNvbiI9PT1yP2U9ImRhdGEiOiJ2ZWN0b3IiPT09cj9lPSJzdHJpbmciPT10eXBlb2Ygbj8idXJsIjoidGlsZXMiOiJyYXN0ZXIiPT09cj8oZT0idGlsZXMiLGEudGlsZVNpemU9MjU2KToiaW1hZ2UiPT09ciYmKGU9InVybCIsYS5jb29yZGluYXRlcz10LmNvb3JkaW5hdGVzKTthW2VdPW4sdC5zb3VyY2VhdHRyaWJ1dGlvbiYmKGEuYXR0cmlidXRpb249dC5zb3VyY2VhdHRyaWJ1dGlvbik7cmV0dXJuIGF9KHQpO2UuYWRkU291cmNlKHRoaXMuaWRTb3VyY2Uscil9fSxzLnVwZGF0ZUxheWVyPWZ1bmN0aW9uKHQpe3ZhciBlLHI9dGhpcy5zdWJwbG90LG49Yyh0KSxhPXRoaXMuc3VicGxvdC5iZWxvd0xvb2t1cFsibGF5b3V0LSIrdGhpcy5pbmRleF07aWYoInRyYWNlcyI9PT1hKWZvcih2YXIgbz1yLmdldE1hcExheWVycygpLHM9MDtzPG8ubGVuZ3RoO3MrKyl7dmFyIHU9b1tzXS5pZDtpZigic3RyaW5nIj09dHlwZW9mIHUmJjA9PT11LmluZGV4T2YoaS50cmFjZUxheWVyUHJlZml4KSl7ZT11O2JyZWFrfX1lbHNlIGU9YTt0aGlzLnJlbW92ZUxheWVyKCksbCh0KSYmci5hZGRMYXllcih7aWQ6dGhpcy5pZExheWVyLHNvdXJjZTp0aGlzLmlkU291cmNlLCJzb3VyY2UtbGF5ZXIiOnQuc291cmNlbGF5ZXJ8fCIiLHR5cGU6dC50eXBlLG1pbnpvb206dC5taW56b29tLG1heHpvb206dC5tYXh6b29tLGxheW91dDpuLmxheW91dCxwYWludDpuLnBhaW50fSxlKSx0aGlzLmxheWVyVHlwZT10LnR5cGUsdGhpcy5iZWxvdz1hfSxzLnVwZGF0ZVN0eWxlPWZ1bmN0aW9uKHQpe2lmKGwodCkpe3ZhciBlPWModCk7dGhpcy5zdWJwbG90LnNldE9wdGlvbnModGhpcy5pZExheWVyLCJzZXRMYXlvdXRQcm9wZXJ0eSIsZS5sYXlvdXQpLHRoaXMuc3VicGxvdC5zZXRPcHRpb25zKHRoaXMuaWRMYXllciwic2V0UGFpbnRQcm9wZXJ0eSIsZS5wYWludCl9fSxzLnJlbW92ZUxheWVyPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zdWJwbG90Lm1hcDt0LmdldExheWVyKHRoaXMuaWRMYXllcikmJnQucmVtb3ZlTGF5ZXIodGhpcy5pZExheWVyKX0scy5kaXNwb3NlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zdWJwbG90Lm1hcDt0LmdldExheWVyKHRoaXMuaWRMYXllcikmJnQucmVtb3ZlTGF5ZXIodGhpcy5pZExheWVyKSx0LmdldFNvdXJjZSh0aGlzLmlkU291cmNlKSYmdC5yZW1vdmVTb3VyY2UodGhpcy5pZFNvdXJjZSl9LGUuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49bmV3IG8odCxlKTtyZXR1cm4gbi51cGRhdGUociksbn19LHsiLi4vLi4vbGliIjo3MTcsIi4vY29uc3RhbnRzIjo4MTgsIi4vY29udmVydF90ZXh0X29wdHMiOjgxOX1dLDgyMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKS5kZWZhdWx0TGluZSxpPXQoIi4uL2RvbWFpbiIpLmF0dHJpYnV0ZXMsbz10KCIuLi9mb250X2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL3RyYWNlcy9zY2F0dGVyL2F0dHJpYnV0ZXMiKS50ZXh0cG9zaXRpb24sbD10KCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIikub3ZlcnJpZGVBbGwsYz10KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIikudGVtcGxhdGVkQXJyYXksdT10KCIuL2NvbnN0YW50cyIpLGg9byh7fSk7aC5mYW1pbHkuZGZsdD0iT3BlbiBTYW5zIFJlZ3VsYXIsIEFyaWFsIFVuaWNvZGUgTVMgUmVndWxhciIsKGUuZXhwb3J0cz1sKHtfYXJyYXlBdHRyUmVnZXhwczpbbi5jb3VudGVyUmVnZXgoIm1hcGJveCIsIi5sYXllcnMiLCEwKV0sZG9tYWluOmkoe25hbWU6Im1hcGJveCJ9KSxhY2Nlc3N0b2tlbjp7dmFsVHlwZToic3RyaW5nIixub0JsYW5rOiEwLHN0cmljdDohMH0sc3R5bGU6e3ZhbFR5cGU6ImFueSIsdmFsdWVzOnUuc3R5bGVWYWx1ZXNNYXBib3guY29uY2F0KHUuc3R5bGVWYWx1ZXNOb25NYXBib3gpLGRmbHQ6dS5zdHlsZVZhbHVlRGZsdH0sY2VudGVyOntsb246e3ZhbFR5cGU6Im51bWJlciIsZGZsdDowfSxsYXQ6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDowfX0sem9vbTp7dmFsVHlwZToibnVtYmVyIixkZmx0OjF9LGJlYXJpbmc6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDowfSxwaXRjaDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjB9LGxheWVyczpjKCJsYXllciIse3Zpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITB9LHNvdXJjZXR5cGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImdlb2pzb24iLCJ2ZWN0b3IiLCJyYXN0ZXIiLCJpbWFnZSJdLGRmbHQ6Imdlb2pzb24ifSxzb3VyY2U6e3ZhbFR5cGU6ImFueSJ9LHNvdXJjZWxheWVyOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiJ9LHNvdXJjZWF0dHJpYnV0aW9uOnt2YWxUeXBlOiJzdHJpbmcifSx0eXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJjaXJjbGUiLCJsaW5lIiwiZmlsbCIsInN5bWJvbCIsInJhc3RlciJdLGRmbHQ6ImNpcmNsZSJ9LGNvb3JkaW5hdGVzOnt2YWxUeXBlOiJhbnkifSxiZWxvdzp7dmFsVHlwZToic3RyaW5nIn0sY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmF9LG9wYWNpdHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxfSxtaW56b29tOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoyNCxkZmx0OjB9LG1heHpvb206e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjI0LGRmbHQ6MjR9LGNpcmNsZTp7cmFkaXVzOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MTV9fSxsaW5lOnt3aWR0aDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjJ9LGRhc2g6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifX0sZmlsbDp7b3V0bGluZWNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDphfX0sc3ltYm9sOntpY29uOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6Im1hcmtlciJ9LGljb25zaXplOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MTB9LHRleHQ6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIn0scGxhY2VtZW50Ont2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJwb2ludCIsImxpbmUiLCJsaW5lLWNlbnRlciJdLGRmbHQ6InBvaW50In0sdGV4dGZvbnQ6aCx0ZXh0cG9zaXRpb246bi5leHRlbmRGbGF0KHt9LHMse2FycmF5T2s6ITF9KX19KX0sInBsb3QiLCJmcm9tLXJvb3QiKSkudWlyZXZpc2lvbj17dmFsVHlwZToiYW55IixlZGl0VHlwZToibm9uZSJ9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjU5MiwiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjc0OCwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NzU1LCIuLi8uLi90cmFjZXMvc2NhdHRlci9hdHRyaWJ1dGVzIjoxMTIwLCIuLi9kb21haW4iOjc5MCwiLi4vZm9udF9hdHRyaWJ1dGVzIjo3OTEsIi4vY29uc3RhbnRzIjo4MTh9XSw4MjM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi9zdWJwbG90X2RlZmF1bHRzIiksaT10KCIuLi9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiKSxvPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKTtmdW5jdGlvbiBzKHQsZSxyLG4pe3IoImFjY2Vzc3Rva2VuIixuLmFjY2Vzc1Rva2VuKSxyKCJzdHlsZSIpLHIoImNlbnRlci5sb24iKSxyKCJjZW50ZXIubGF0Iikscigiem9vbSIpLHIoImJlYXJpbmciKSxyKCJwaXRjaCIpLGkodCxlLHtuYW1lOiJsYXllcnMiLGhhbmRsZUl0ZW1EZWZhdWx0czpsfSksZS5faW5wdXQ9dH1mdW5jdGlvbiBsKHQsZSl7ZnVuY3Rpb24gcihyLGEpe3JldHVybiBuLmNvZXJjZSh0LGUsby5sYXllcnMscixhKX1pZihyKCJ2aXNpYmxlIikpe3ZhciBhLGk9cigic291cmNldHlwZSIpLHM9InJhc3RlciI9PT1pfHwiaW1hZ2UiPT09aTtyKCJzb3VyY2UiKSxyKCJzb3VyY2VhdHRyaWJ1dGlvbiIpLCJ2ZWN0b3IiPT09aSYmcigic291cmNlbGF5ZXIiKSwiaW1hZ2UiPT09aSYmcigiY29vcmRpbmF0ZXMiKSxzJiYoYT0icmFzdGVyIik7dmFyIGw9cigidHlwZSIsYSk7cyYmInJhc3RlciIhPT1sJiYobD1lLnR5cGU9InJhc3RlciIsbi5sb2coIlNvdXJjZSB0eXBlcyAqcmFzdGVyKiBhbmQgKmltYWdlKiBtdXN0IGRyYXduICpyYXN0ZXIqIGxheWVyIHR5cGUuIikpLHIoImJlbG93IikscigiY29sb3IiKSxyKCJvcGFjaXR5IikscigibWluem9vbSIpLHIoIm1heHpvb20iKSwiY2lyY2xlIj09PWwmJnIoImNpcmNsZS5yYWRpdXMiKSwibGluZSI9PT1sJiYocigibGluZS53aWR0aCIpLHIoImxpbmUuZGFzaCIpKSwiZmlsbCI9PT1sJiZyKCJmaWxsLm91dGxpbmVjb2xvciIpLCJzeW1ib2wiPT09bCYmKHIoInN5bWJvbC5pY29uIikscigic3ltYm9sLmljb25zaXplIikscigic3ltYm9sLnRleHQiKSxuLmNvZXJjZUZvbnQociwic3ltYm9sLnRleHRmb250Iikscigic3ltYm9sLnRleHRwb3NpdGlvbiIpLHIoInN5bWJvbC5wbGFjZW1lbnQiKSl9fWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7YSh0LGUscix7dHlwZToibWFwYm94IixhdHRyaWJ1dGVzOm8saGFuZGxlRGVmYXVsdHM6cyxwYXJ0aXRpb246InkiLGFjY2Vzc1Rva2VuOmUuX21hcGJveEFjY2Vzc1Rva2VufSl9fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiOjc2MSwiLi4vc3VicGxvdF9kZWZhdWx0cyI6ODQwLCIuL2xheW91dF9hdHRyaWJ1dGVzIjo4MjJ9XSw4MjQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgibWFwYm94LWdsIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2Z4IiksaT10KCIuLi8uLi9saWIiKSxvPXQoIi4uLy4uL2xpYi9nZW9fbG9jYXRpb25fdXRpbHMiKSxzPXQoIi4uLy4uL3JlZ2lzdHJ5IiksbD10KCIuLi9jYXJ0ZXNpYW4vYXhlcyIpLGM9dCgiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudCIpLHU9dCgiLi4vY2FydGVzaWFuL3NlbGVjdCIpLnByZXBTZWxlY3QsaD10KCIuLi9jYXJ0ZXNpYW4vc2VsZWN0Iikuc2VsZWN0T25DbGljayxmPXQoIi4vY29uc3RhbnRzIikscD10KCIuL2xheWVycyIpO2Z1bmN0aW9uIGQodCxlKXt0aGlzLmlkPWUsdGhpcy5nZD10O3ZhciByPXQuX2Z1bGxMYXlvdXQsbj10Ll9jb250ZXh0O3RoaXMuY29udGFpbmVyPXIuX2dsY29udGFpbmVyLm5vZGUoKSx0aGlzLmlzU3RhdGljPW4uc3RhdGljUGxvdCx0aGlzLnVpZD1yLl91aWQrIi0iK3RoaXMuaWQsdGhpcy5kaXY9bnVsbCx0aGlzLnhheGlzPW51bGwsdGhpcy55YXhpcz1udWxsLHRoaXMuY3JlYXRlRnJhbWV3b3JrKHIpLHRoaXMubWFwPW51bGwsdGhpcy5hY2Nlc3NUb2tlbj1udWxsLHRoaXMuc3R5bGVPYmo9bnVsbCx0aGlzLnRyYWNlSGFzaD17fSx0aGlzLmxheWVyTGlzdD1bXSx0aGlzLmJlbG93TG9va3VwPXt9LHRoaXMuZHJhZ2dpbmc9ITEsdGhpcy53aGVlbGluZz0hMX12YXIgZz1kLnByb3RvdHlwZTtnLnBsb3Q9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGE9dGhpcyxpPWVbYS5pZF07YS5tYXAmJmkuYWNjZXNzdG9rZW4hPT1hLmFjY2Vzc1Rva2VuJiYoYS5tYXAucmVtb3ZlKCksYS5tYXA9bnVsbCxhLnN0eWxlT2JqPW51bGwsYS50cmFjZUhhc2g9W10sYS5sYXllckxpc3Q9e30pLG49YS5tYXA/bmV3IFByb21pc2UoZnVuY3Rpb24ocixuKXthLnVwZGF0ZU1hcCh0LGUscixuKX0pOm5ldyBQcm9taXNlKGZ1bmN0aW9uKHIsbil7YS5jcmVhdGVNYXAodCxlLHIsbil9KSxyLnB1c2gobil9LGcuY3JlYXRlTWFwPWZ1bmN0aW9uKHQsZSxyLGEpe3ZhciBpPXRoaXMscz1lW2kuaWRdLGw9aS5zdHlsZU9iaj1tKHMuc3R5bGUpO2kuYWNjZXNzVG9rZW49cy5hY2Nlc3N0b2tlbjt2YXIgYz1pLm1hcD1uZXcgbi5NYXAoe2NvbnRhaW5lcjppLmRpdixzdHlsZTpsLnN0eWxlLGNlbnRlcjp4KHMuY2VudGVyKSx6b29tOnMuem9vbSxiZWFyaW5nOnMuYmVhcmluZyxwaXRjaDpzLnBpdGNoLGludGVyYWN0aXZlOiFpLmlzU3RhdGljLHByZXNlcnZlRHJhd2luZ0J1ZmZlcjppLmlzU3RhdGljLGRvdWJsZUNsaWNrWm9vbTohMSxib3hab29tOiExLGF0dHJpYnV0aW9uQ29udHJvbDohMX0pLmFkZENvbnRyb2wobmV3IG4uQXR0cmlidXRpb25Db250cm9sKHtjb21wYWN0OiEwfSkpO2MuX2NhbnZhcy5zdHlsZS5sZWZ0PSIwcHgiLGMuX2NhbnZhcy5zdHlsZS50b3A9IjBweCIsaS5yZWplY3RPbkVycm9yKGEpLGkuaXNTdGF0aWN8fGkuaW5pdEZ4KHQsZSk7dmFyIHU9W107dS5wdXNoKG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQpe2Mub25jZSgibG9hZCIsdCl9KSksdT11LmNvbmNhdChvLmZldGNoVHJhY2VHZW9EYXRhKHQpKSxQcm9taXNlLmFsbCh1KS50aGVuKGZ1bmN0aW9uKCl7aS5maWxsQmVsb3dMb29rdXAodCxlKSxpLnVwZGF0ZURhdGEodCksaS51cGRhdGVMYXlvdXQoZSksaS5yZXNvbHZlT25SZW5kZXIocil9KS5jYXRjaChhKX0sZy51cGRhdGVNYXA9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9dGhpcyxpPWEubWFwLHM9ZVt0aGlzLmlkXTthLnJlamVjdE9uRXJyb3Iobik7dmFyIGw9W10sYz1tKHMuc3R5bGUpO2Euc3R5bGVPYmouaWQhPT1jLmlkJiYoYS5zdHlsZU9iaj1jLGkuc2V0U3R5bGUoYy5zdHlsZSksYS50cmFjZUhhc2g9e30sbC5wdXNoKG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQpe2kub25jZSgic3R5bGVkYXRhIix0KX0pKSksbD1sLmNvbmNhdChvLmZldGNoVHJhY2VHZW9EYXRhKHQpKSxQcm9taXNlLmFsbChsKS50aGVuKGZ1bmN0aW9uKCl7YS5maWxsQmVsb3dMb29rdXAodCxlKSxhLnVwZGF0ZURhdGEodCksYS51cGRhdGVMYXlvdXQoZSksYS5yZXNvbHZlT25SZW5kZXIocil9KS5jYXRjaChuKX0sZy5maWxsQmVsb3dMb29rdXA9ZnVuY3Rpb24odCxlKXt2YXIgcixuLGE9ZVt0aGlzLmlkXS5sYXllcnMsaT10aGlzLmJlbG93TG9va3VwPXt9LG89ITE7Zm9yKHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIHM9dFtyXVswXS50cmFjZSxsPXMuX21vZHVsZTsic3RyaW5nIj09dHlwZW9mIHMuYmVsb3c/bj1zLmJlbG93OmwuZ2V0QmVsb3cmJihuPWwuZ2V0QmVsb3cocyx0aGlzKSksIiI9PT1uJiYobz0hMCksaVsidHJhY2UtIitzLnVpZF09bnx8IiJ9Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyl7dmFyIGM9YVtyXTtuPSJzdHJpbmciPT10eXBlb2YgYy5iZWxvdz9jLmJlbG93Om8/InRyYWNlcyI6IiIsaVsibGF5b3V0LSIrcl09bn12YXIgdSxoLGY9e307Zm9yKHUgaW4gaSlmW249aVt1XV0/ZltuXS5wdXNoKHUpOmZbbl09W3VdO2ZvcihuIGluIGYpe3ZhciBwPWZbbl07aWYocC5sZW5ndGg+MSlmb3Iocj0wO3I8cC5sZW5ndGg7cisrKTA9PT0odT1wW3JdKS5pbmRleE9mKCJ0cmFjZS0iKT8oaD11LnNwbGl0KCJ0cmFjZS0iKVsxXSx0aGlzLnRyYWNlSGFzaFtoXSYmKHRoaXMudHJhY2VIYXNoW2hdLmJlbG93PW51bGwpKTowPT09dS5pbmRleE9mKCJsYXlvdXQtIikmJihoPXUuc3BsaXQoImxheW91dC0iKVsxXSx0aGlzLmxheWVyTGlzdFtoXSYmKHRoaXMubGF5ZXJMaXN0W2hdLmJlbG93PW51bGwpKX19O3ZhciB2PXtjaG9yb3BsZXRobWFwYm94OjAsZGVuc2l0eW1hcGJveDoxLHNjYXR0ZXJtYXBib3g6Mn07ZnVuY3Rpb24gbSh0KXt2YXIgZT17fTtyZXR1cm4gaS5pc1BsYWluT2JqZWN0KHQpPyhlLmlkPXQuaWQsZS5zdHlsZT10KToic3RyaW5nIj09dHlwZW9mIHQ/KGUuaWQ9dCwtMSE9PWYuc3R5bGVWYWx1ZXNNYXBib3guaW5kZXhPZih0KT9lLnN0eWxlPXkodCk6Zi5zdHlsZXNOb25NYXBib3hbdF0/ZS5zdHlsZT1mLnN0eWxlc05vbk1hcGJveFt0XTplLnN0eWxlPXQpOihlLmlkPWYuc3R5bGVWYWx1ZURmbHQsZS5zdHlsZT15KGYuc3R5bGVWYWx1ZURmbHQpKSxlLnRyYW5zaXRpb249e2R1cmF0aW9uOjAsZGVsYXk6MH0sZX1mdW5jdGlvbiB5KHQpe3JldHVybiBmLnN0eWxlVXJsUHJlZml4K3QrIi0iK2Yuc3R5bGVVcmxTdWZmaXh9ZnVuY3Rpb24geCh0KXtyZXR1cm5bdC5sb24sdC5sYXRdfWcudXBkYXRlRGF0YT1mdW5jdGlvbih0KXt2YXIgZSxyLG4sYSxpPXRoaXMudHJhY2VIYXNoLG89dC5zbGljZSgpLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdlt0WzBdLnRyYWNlLnR5cGVdLXZbZVswXS50cmFjZS50eXBlXX0pO2ZvcihuPTA7bjxvLmxlbmd0aDtuKyspe3ZhciBzPW9bbl0sbD0hMTsoZT1pWyhyPXNbMF0udHJhY2UpLnVpZF0pJiYoZS50eXBlPT09ci50eXBlPyhlLnVwZGF0ZShzKSxsPSEwKTplLmRpc3Bvc2UoKSksIWwmJnIuX21vZHVsZSYmKGlbci51aWRdPXIuX21vZHVsZS5wbG90KHRoaXMscykpfXZhciBjPU9iamVjdC5rZXlzKGkpO3Q6Zm9yKG49MDtuPGMubGVuZ3RoO24rKyl7dmFyIHU9Y1tuXTtmb3IoYT0wO2E8dC5sZW5ndGg7YSsrKWlmKHU9PT0ocj10W2FdWzBdLnRyYWNlKS51aWQpY29udGludWUgdDsoZT1pW3VdKS5kaXNwb3NlKCksZGVsZXRlIGlbdV19fSxnLnVwZGF0ZUxheW91dD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLm1hcCxyPXRbdGhpcy5pZF07dGhpcy5kcmFnZ2luZ3x8dGhpcy53aGVlbGluZ3x8KGUuc2V0Q2VudGVyKHgoci5jZW50ZXIpKSxlLnNldFpvb20oci56b29tKSxlLnNldEJlYXJpbmcoci5iZWFyaW5nKSxlLnNldFBpdGNoKHIucGl0Y2gpKSx0aGlzLnVwZGF0ZUxheWVycyh0KSx0aGlzLnVwZGF0ZUZyYW1ld29yayh0KSx0aGlzLnVwZGF0ZUZ4KHQpLHRoaXMubWFwLnJlc2l6ZSgpLHRoaXMuZ2QuX2NvbnRleHQuX3Njcm9sbFpvb20ubWFwYm94P2Uuc2Nyb2xsWm9vbS5lbmFibGUoKTplLnNjcm9sbFpvb20uZGlzYWJsZSgpfSxnLnJlc29sdmVPblJlbmRlcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLm1hcDtlLm9uKCJyZW5kZXIiLGZ1bmN0aW9uIHIoKXtlLmxvYWRlZCgpJiYoZS5vZmYoInJlbmRlciIsciksc2V0VGltZW91dCh0LDEwKSl9KX0sZy5yZWplY3RPbkVycm9yPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubWFwO2Z1bmN0aW9uIHIoKXt0KG5ldyBFcnJvcihmLm1hcE9uRXJyb3JNc2cpKX1lLm9uY2UoImVycm9yIixyKSxlLm9uY2UoInN0eWxlLmVycm9yIixyKSxlLm9uY2UoInNvdXJjZS5lcnJvciIsciksZS5vbmNlKCJ0aWxlLmVycm9yIixyKSxlLm9uY2UoImxheWVyLmVycm9yIixyKX0sZy5jcmVhdGVGcmFtZXdvcms9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxyPWUuZGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3IuaWQ9ZS51aWQsci5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLGUuY29udGFpbmVyLmFwcGVuZENoaWxkKHIpLGUueGF4aXM9e19pZDoieCIsYzJwOmZ1bmN0aW9uKHQpe3JldHVybiBlLnByb2plY3QodCkueH19LGUueWF4aXM9e19pZDoieSIsYzJwOmZ1bmN0aW9uKHQpe3JldHVybiBlLnByb2plY3QodCkueX19LGUudXBkYXRlRnJhbWV3b3JrKHQpLGUubW9ja0F4aXM9e3R5cGU6ImxpbmVhciIsc2hvd2V4cG9uZW50OiJhbGwiLGV4cG9uZW50Zm9ybWF0OiJCIn0sbC5zZXRDb252ZXJ0KGUubW9ja0F4aXMsdCl9LGcuaW5pdEZ4PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcyxuPXIuZ2QsaT1yLm1hcDtmdW5jdGlvbiBvKCl7YS5sb25lVW5ob3ZlcihlLl9ob3ZlcmxheWVyKX1mdW5jdGlvbiBsKCl7dmFyIHQ9ci5nZXRWaWV3KCk7bi5lbWl0KCJwbG90bHlfcmVsYXlvdXRpbmciLHIuZ2V0Vmlld0VkaXRzV2l0aERlcml2ZWQodCkpfWkub24oIm1vdmVlbmQiLGZ1bmN0aW9uKHQpe2lmKHIubWFwKXt2YXIgZT1uLl9mdWxsTGF5b3V0O2lmKHQub3JpZ2luYWxFdmVudHx8ci53aGVlbGluZyl7dmFyIGE9ZVtyLmlkXTtzLmNhbGwoIl9zdG9yZURpcmVjdEdVSUVkaXQiLG4ubGF5b3V0LGUuX3ByZUdVSSxyLmdldFZpZXdFZGl0cyhhKSk7dmFyIGk9ci5nZXRWaWV3KCk7YS5faW5wdXQuY2VudGVyPWEuY2VudGVyPWkuY2VudGVyLGEuX2lucHV0Lnpvb209YS56b29tPWkuem9vbSxhLl9pbnB1dC5iZWFyaW5nPWEuYmVhcmluZz1pLmJlYXJpbmcsYS5faW5wdXQucGl0Y2g9YS5waXRjaD1pLnBpdGNoLG4uZW1pdCgicGxvdGx5X3JlbGF5b3V0IixyLmdldFZpZXdFZGl0c1dpdGhEZXJpdmVkKGkpKX10Lm9yaWdpbmFsRXZlbnQmJiJtb3VzZXVwIj09PXQub3JpZ2luYWxFdmVudC50eXBlP3IuZHJhZ2dpbmc9ITE6ci53aGVlbGluZyYmKHIud2hlZWxpbmc9ITEpLGUuX3JlaG92ZXImJmUuX3JlaG92ZXIoKX19KSxpLm9uKCJ3aGVlbCIsZnVuY3Rpb24oKXtyLndoZWVsaW5nPSEwfSksaS5vbigibW91c2Vtb3ZlIixmdW5jdGlvbih0KXt2YXIgZT1yLmRpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0LmNsaWVudFg9dC5wb2ludC54K2UubGVmdCx0LmNsaWVudFk9dC5wb2ludC55K2UudG9wLHQudGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdD1mdW5jdGlvbigpe3JldHVybiBlfSxyLnhheGlzLnAyYz1mdW5jdGlvbigpe3JldHVybiB0LmxuZ0xhdC5sbmd9LHIueWF4aXMucDJjPWZ1bmN0aW9uKCl7cmV0dXJuIHQubG5nTGF0LmxhdH0sbi5fZnVsbExheW91dC5fcmVob3Zlcj1mdW5jdGlvbigpe24uX2Z1bGxMYXlvdXQuX2hvdmVyc3VicGxvdD09PXIuaWQmJm4uX2Z1bGxMYXlvdXRbci5pZF0mJmEuaG92ZXIobix0LHIuaWQpfSxhLmhvdmVyKG4sdCxyLmlkKSxuLl9mdWxsTGF5b3V0Ll9ob3ZlcnN1YnBsb3Q9ci5pZH0pLGkub24oImRyYWdzdGFydCIsZnVuY3Rpb24oKXtyLmRyYWdnaW5nPSEwLG8oKX0pLGkub24oInpvb21zdGFydCIsbyksaS5vbigibW91c2VvdXQiLGZ1bmN0aW9uKCl7bi5fZnVsbExheW91dC5faG92ZXJzdWJwbG90PW51bGx9KSxpLm9uKCJkcmFnIixsKSxpLm9uKCJ6b29tIixsKSxpLm9uKCJkYmxjbGljayIsZnVuY3Rpb24oKXt2YXIgdD1uLl9mdWxsTGF5b3V0W3IuaWRdO3MuY2FsbCgiX3N0b3JlRGlyZWN0R1VJRWRpdCIsbi5sYXlvdXQsbi5fZnVsbExheW91dC5fcHJlR1VJLHIuZ2V0Vmlld0VkaXRzKHQpKTt2YXIgZT1yLnZpZXdJbml0aWFsO2kuc2V0Q2VudGVyKHgoZS5jZW50ZXIpKSxpLnNldFpvb20oZS56b29tKSxpLnNldEJlYXJpbmcoZS5iZWFyaW5nKSxpLnNldFBpdGNoKGUucGl0Y2gpO3ZhciBhPXIuZ2V0VmlldygpO3QuX2lucHV0LmNlbnRlcj10LmNlbnRlcj1hLmNlbnRlcix0Ll9pbnB1dC56b29tPXQuem9vbT1hLnpvb20sdC5faW5wdXQuYmVhcmluZz10LmJlYXJpbmc9YS5iZWFyaW5nLHQuX2lucHV0LnBpdGNoPXQucGl0Y2g9YS5waXRjaCxuLmVtaXQoInBsb3RseV9kb3VibGVjbGljayIsbnVsbCksbi5lbWl0KCJwbG90bHlfcmVsYXlvdXQiLHIuZ2V0Vmlld0VkaXRzV2l0aERlcml2ZWQoYSkpfSksci5jbGVhclNlbGVjdD1mdW5jdGlvbigpe24uX2Z1bGxMYXlvdXQuX3pvb21sYXllci5zZWxlY3RBbGwoIi5zZWxlY3Qtb3V0bGluZSIpLnJlbW92ZSgpfSxyLm9uQ2xpY2tJblBhbkZuPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgaT1uLl9mdWxsTGF5b3V0LmNsaWNrbW9kZTtpLmluZGV4T2YoInNlbGVjdCIpPi0xJiZoKGUub3JpZ2luYWxFdmVudCxuLFtyLnhheGlzXSxbci55YXhpc10sci5pZCx0KSxpLmluZGV4T2YoImV2ZW50Iik+LTEmJmEuY2xpY2sobixlLm9yaWdpbmFsRXZlbnQpfX19LGcudXBkYXRlRng9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxyPWUubWFwLG49ZS5nZDtpZighZS5pc1N0YXRpYyl7dmFyIGEsbz10LmRyYWdtb2RlO2E9InNlbGVjdCI9PT1vP2Z1bmN0aW9uKHQscil7KHQucmFuZ2U9e30pW2UuaWRdPVtsKFtyLnhtaW4sci55bWluXSksbChbci54bWF4LHIueW1heF0pXX06ZnVuY3Rpb24odCxyLG4peyh0Lmxhc3NvUG9pbnRzPXt9KVtlLmlkXT1uLmZpbHRlcmVkLm1hcChsKX07dmFyIHM9ZS5kcmFnT3B0aW9ucztlLmRyYWdPcHRpb25zPWkuZXh0ZW5kRGVlcChzfHx7fSx7ZWxlbWVudDplLmRpdixnZDpuLHBsb3RpbmZvOntpZDplLmlkLHhheGlzOmUueGF4aXMseWF4aXM6ZS55YXhpcyxmaWxsUmFuZ2VJdGVtczphfSx4YXhlczpbZS54YXhpc10seWF4ZXM6W2UueWF4aXNdLHN1YnBsb3Q6ZS5pZH0pLHIub2ZmKCJjbGljayIsZS5vbkNsaWNrSW5QYW5IYW5kbGVyKSwic2VsZWN0Ij09PW98fCJsYXNzbyI9PT1vPyhyLmRyYWdQYW4uZGlzYWJsZSgpLHIub24oInpvb21zdGFydCIsZS5jbGVhclNlbGVjdCksZS5kcmFnT3B0aW9ucy5wcmVwRm49ZnVuY3Rpb24odCxyLG4pe3UodCxyLG4sZS5kcmFnT3B0aW9ucyxvKX0sYy5pbml0KGUuZHJhZ09wdGlvbnMpKTooci5kcmFnUGFuLmVuYWJsZSgpLHIub2ZmKCJ6b29tc3RhcnQiLGUuY2xlYXJTZWxlY3QpLGUuZGl2Lm9ubW91c2Vkb3duPW51bGwsZS5vbkNsaWNrSW5QYW5IYW5kbGVyPWUub25DbGlja0luUGFuRm4oZS5kcmFnT3B0aW9ucyksci5vbigiY2xpY2siLGUub25DbGlja0luUGFuSGFuZGxlcikpfWZ1bmN0aW9uIGwodCl7dmFyIHI9ZS5tYXAudW5wcm9qZWN0KHQpO3JldHVybltyLmxuZyxyLmxhdF19fSxnLnVwZGF0ZUZyYW1ld29yaz1mdW5jdGlvbih0KXt2YXIgZT10W3RoaXMuaWRdLmRvbWFpbixyPXQuX3NpemUsbj10aGlzLmRpdi5zdHlsZTtuLndpZHRoPXIudyooZS54WzFdLWUueFswXSkrInB4IixuLmhlaWdodD1yLmgqKGUueVsxXS1lLnlbMF0pKyJweCIsbi5sZWZ0PXIubCtlLnhbMF0qci53KyJweCIsbi50b3A9ci50KygxLWUueVsxXSkqci5oKyJweCIsdGhpcy54YXhpcy5fb2Zmc2V0PXIubCtlLnhbMF0qci53LHRoaXMueGF4aXMuX2xlbmd0aD1yLncqKGUueFsxXS1lLnhbMF0pLHRoaXMueWF4aXMuX29mZnNldD1yLnQrKDEtZS55WzFdKSpyLmgsdGhpcy55YXhpcy5fbGVuZ3RoPXIuaCooZS55WzFdLWUueVswXSl9LGcudXBkYXRlTGF5ZXJzPWZ1bmN0aW9uKHQpe3ZhciBlLHI9dFt0aGlzLmlkXS5sYXllcnMsbj10aGlzLmxheWVyTGlzdDtpZihyLmxlbmd0aCE9PW4ubGVuZ3RoKXtmb3IoZT0wO2U8bi5sZW5ndGg7ZSsrKW5bZV0uZGlzcG9zZSgpO2ZvcihuPXRoaXMubGF5ZXJMaXN0PVtdLGU9MDtlPHIubGVuZ3RoO2UrKyluLnB1c2gocCh0aGlzLGUscltlXSkpfWVsc2UgZm9yKGU9MDtlPHIubGVuZ3RoO2UrKyluW2VdLnVwZGF0ZShyW2VdKX0sZy5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5tYXAmJih0aGlzLm1hcC5yZW1vdmUoKSx0aGlzLm1hcD1udWxsLHRoaXMuY29udGFpbmVyLnJlbW92ZUNoaWxkKHRoaXMuZGl2KSl9LGcudG9JbWFnZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcC5zdG9wKCksdGhpcy5tYXAuZ2V0Q2FudmFzKCkudG9EYXRhVVJMKCl9LGcuc2V0T3B0aW9ucz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuIGluIHIpdGhpcy5tYXBbZV0odCxuLHJbbl0pfSxnLmdldE1hcExheWVycz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcC5nZXRTdHlsZSgpLmxheWVyc30sZy5hZGRMYXllcj1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMubWFwO2lmKCJzdHJpbmciPT10eXBlb2YgZSl7aWYoIiI9PT1lKXJldHVybiB2b2lkIHIuYWRkTGF5ZXIodCxlKTtmb3IodmFyIG49dGhpcy5nZXRNYXBMYXllcnMoKSxhPTA7YTxuLmxlbmd0aDthKyspaWYoZT09PW5bYV0uaWQpcmV0dXJuIHZvaWQgci5hZGRMYXllcih0LGUpO2kud2FybihbIlRyeWluZyB0byBhZGQgbGF5ZXIgd2l0aCAqYmVsb3cqIHZhbHVlIixlLCJyZWZlcmVuY2luZyBhIGxheWVyIHRoYXQgZG9lcyBub3QgZXhpc3QiLCJvciB0aGF0IGRvZXMgbm90IHlldCBleGlzdC4iXS5qb2luKCIgIikpfXIuYWRkTGF5ZXIodCl9LGcucHJvamVjdD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5tYXAucHJvamVjdChuZXcgbi5MbmdMYXQodFswXSx0WzFdKSl9LGcuZ2V0Vmlldz1mdW5jdGlvbigpe3ZhciB0PXRoaXMubWFwLGU9dC5nZXRDZW50ZXIoKSxyPXtsb246ZS5sbmcsbGF0OmUubGF0fSxuPXQuZ2V0Q2FudmFzKCksYT1uLndpZHRoLGk9bi5oZWlnaHQ7cmV0dXJue2NlbnRlcjpyLHpvb206dC5nZXRab29tKCksYmVhcmluZzp0LmdldEJlYXJpbmcoKSxwaXRjaDp0LmdldFBpdGNoKCksX2Rlcml2ZWQ6e2Nvb3JkaW5hdGVzOlt0LnVucHJvamVjdChbMCwwXSkudG9BcnJheSgpLHQudW5wcm9qZWN0KFthLDBdKS50b0FycmF5KCksdC51bnByb2plY3QoW2EsaV0pLnRvQXJyYXkoKSx0LnVucHJvamVjdChbMCxpXSkudG9BcnJheSgpXX19fSxnLmdldFZpZXdFZGl0cz1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5pZCxyPVsiY2VudGVyIiwiem9vbSIsImJlYXJpbmciLCJwaXRjaCJdLG49e30sYT0wO2E8ci5sZW5ndGg7YSsrKXt2YXIgaT1yW2FdO25bZSsiLiIraV09dFtpXX1yZXR1cm4gbn0sZy5nZXRWaWV3RWRpdHNXaXRoRGVyaXZlZD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmlkLHI9dGhpcy5nZXRWaWV3RWRpdHModCk7cmV0dXJuIHJbZSsiLl9kZXJpdmVkIl09dC5fZGVyaXZlZCxyfSxlLmV4cG9ydHM9ZH0seyIuLi8uLi9jb21wb25lbnRzL2RyYWdlbGVtZW50Ijo2MTAsIi4uLy4uL2NvbXBvbmVudHMvZngiOjYzMCwiLi4vLi4vbGliIjo3MTcsIi4uLy4uL2xpYi9nZW9fbG9jYXRpb25fdXRpbHMiOjcxMSwiLi4vLi4vcmVnaXN0cnkiOjg0NiwiLi4vY2FydGVzaWFuL2F4ZXMiOjc2NSwiLi4vY2FydGVzaWFuL3NlbGVjdCI6NzgyLCIuL2NvbnN0YW50cyI6ODE4LCIuL2xheWVycyI6ODIxLCJtYXBib3gtZ2wiOjQyOH1dLDgyNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5lZGl0VHlwZTtyZXR1cm57dDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjAsZWRpdFR5cGU6ZX0scjp7dmFsVHlwZToibnVtYmVyIixkZmx0OjAsZWRpdFR5cGU6ZX0sYjp7dmFsVHlwZToibnVtYmVyIixkZmx0OjAsZWRpdFR5cGU6ZX0sbDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjAsZWRpdFR5cGU6ZX0sZWRpdFR5cGU6ZX19fSx7fV0sODI2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksYT10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiLi4vcmVnaXN0cnkiKSxvPXQoIi4uL3Bsb3RfYXBpL3Bsb3Rfc2NoZW1hIikscz10KCIuLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIiksbD10KCIuLi9saWIiKSxjPXQoIi4uL2NvbXBvbmVudHMvY29sb3IiKSx1PXQoIi4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5CQUROVU0saD10KCIuL2NhcnRlc2lhbi9heGlzX2lkcyIpLGY9dCgiLi9hbmltYXRpb25fYXR0cmlidXRlcyIpLHA9dCgiLi9mcmFtZV9hdHRyaWJ1dGVzIiksZD10KCIuLi9wbG90cy9nZXRfZGF0YSIpLmdldE1vZHVsZUNhbGNEYXRhLGc9bC5yZWxpbmtQcml2YXRlS2V5cyx2PWwuXyxtPWUuZXhwb3J0cz17fTtsLmV4dGVuZEZsYXQobSxpKSxtLmF0dHJpYnV0ZXM9dCgiLi9hdHRyaWJ1dGVzIiksbS5hdHRyaWJ1dGVzLnR5cGUudmFsdWVzPW0uYWxsVHlwZXMsbS5mb250QXR0cnM9dCgiLi9mb250X2F0dHJpYnV0ZXMiKSxtLmxheW91dEF0dHJpYnV0ZXM9dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLG0uZm9udFdlaWdodD0ibm9ybWFsIjt2YXIgeT1tLnRyYW5zZm9ybXNSZWdpc3RyeSx4PXQoIi4vY29tbWFuZCIpO20uZXhlY3V0ZUFQSUNvbW1hbmQ9eC5leGVjdXRlQVBJQ29tbWFuZCxtLmNvbXB1dGVBUElDb21tYW5kQmluZGluZ3M9eC5jb21wdXRlQVBJQ29tbWFuZEJpbmRpbmdzLG0ubWFuYWdlQ29tbWFuZE9ic2VydmVyPXgubWFuYWdlQ29tbWFuZE9ic2VydmVyLG0uaGFzU2ltcGxlQVBJQ29tbWFuZEJpbmRpbmdzPXguaGFzU2ltcGxlQVBJQ29tbWFuZEJpbmRpbmdzLG0ucmVkcmF3VGV4dD1mdW5jdGlvbih0KXt2YXIgZT0odD1sLmdldEdyYXBoRGl2KHQpKS5fZnVsbExheW91dHx8e307aWYoISghKGUuX2hhcyYmZS5faGFzKCJwb2xhciIpKSYmdC5kYXRhJiZ0LmRhdGFbMF0mJnQuZGF0YVswXS5yKSlyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSl7c2V0VGltZW91dChmdW5jdGlvbigpe2kuZ2V0Q29tcG9uZW50TWV0aG9kKCJhbm5vdGF0aW9ucyIsImRyYXciKSh0KSxpLmdldENvbXBvbmVudE1ldGhvZCgibGVnZW5kIiwiZHJhdyIpKHQpLGkuZ2V0Q29tcG9uZW50TWV0aG9kKCJjb2xvcmJhciIsImRyYXciKSh0KSxlKG0ucHJldmlvdXNQcm9taXNlcyh0KSl9LDMwMCl9KX0sbS5yZXNpemU9ZnVuY3Rpb24odCl7dmFyIGU7dD1sLmdldEdyYXBoRGl2KHQpO3ZhciByPW5ldyBQcm9taXNlKGZ1bmN0aW9uKHIsbil7dCYmIWwuaXNIaWRkZW4odCl8fG4obmV3IEVycm9yKCJSZXNpemUgbXVzdCBiZSBwYXNzZWQgYSBkaXNwbGF5ZWQgcGxvdCBkaXYgZWxlbWVudC4iKSksdC5fcmVkcmF3VGltZXImJmNsZWFyVGltZW91dCh0Ll9yZWRyYXdUaW1lciksdC5fcmVzb2x2ZVJlc2l6ZSYmKGU9dC5fcmVzb2x2ZVJlc2l6ZSksdC5fcmVzb2x2ZVJlc2l6ZT1yLHQuX3JlZHJhd1RpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtpZighdC5sYXlvdXR8fHQubGF5b3V0LndpZHRoJiZ0LmxheW91dC5oZWlnaHR8fGwuaXNIaWRkZW4odCkpcih0KTtlbHNle2RlbGV0ZSB0LmxheW91dC53aWR0aCxkZWxldGUgdC5sYXlvdXQuaGVpZ2h0O3ZhciBlPXQuY2hhbmdlZDt0LmF1dG9wbGF5PSEwLGkuY2FsbCgicmVsYXlvdXQiLHQse2F1dG9zaXplOiEwfSkudGhlbihmdW5jdGlvbigpe3QuY2hhbmdlZD1lLHQuX3Jlc29sdmVSZXNpemU9PT1yJiYoZGVsZXRlIHQuX3Jlc29sdmVSZXNpemUscih0KSl9KX19LDEwMCl9KTtyZXR1cm4gZSYmZShyKSxyfSxtLnByZXZpb3VzUHJvbWlzZXM9ZnVuY3Rpb24odCl7aWYoKHQuX3Byb21pc2VzfHxbXSkubGVuZ3RoKXJldHVybiBQcm9taXNlLmFsbCh0Ll9wcm9taXNlcykudGhlbihmdW5jdGlvbigpe3QuX3Byb21pc2VzPVtdfSl9LG0uYWRkTGlua3M9ZnVuY3Rpb24odCl7aWYodC5fY29udGV4dC5zaG93TGlua3x8dC5fY29udGV4dC5zaG93U291cmNlcyl7dmFyIGU9dC5fZnVsbExheW91dCxyPWwuZW5zdXJlU2luZ2xlKGUuX3BhcGVyLCJ0ZXh0IiwianMtcGxvdC1saW5rLWNvbnRhaW5lciIsZnVuY3Rpb24odCl7dC5zdHlsZSh7ImZvbnQtZmFtaWx5IjonIk9wZW4gU2FucyIsIEFyaWFsLCBzYW5zLXNlcmlmJywiZm9udC1zaXplIjoiMTJweCIsZmlsbDpjLmRlZmF1bHRMaW5lLCJwb2ludGVyLWV2ZW50cyI6ImFsbCJ9KS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9bi5zZWxlY3QodGhpcyk7dC5hcHBlbmQoInRzcGFuIikuY2xhc3NlZCgianMtbGluay10by10b29sIiwhMCksdC5hcHBlbmQoInRzcGFuIikuY2xhc3NlZCgianMtbGluay1zcGFjZXIiLCEwKSx0LmFwcGVuZCgidHNwYW4iKS5jbGFzc2VkKCJqcy1zb3VyY2VsaW5rcyIsITApfSl9KSxhPXIubm9kZSgpLGk9e3k6ZS5fcGFwZXIuYXR0cigiaGVpZ2h0IiktOX07ZG9jdW1lbnQuYm9keS5jb250YWlucyhhKSYmYS5nZXRDb21wdXRlZFRleHRMZW5ndGgoKT49ZS53aWR0aC0yMD8oaVsidGV4dC1hbmNob3IiXT0ic3RhcnQiLGkueD01KTooaVsidGV4dC1hbmNob3IiXT0iZW5kIixpLng9ZS5fcGFwZXIuYXR0cigid2lkdGgiKS03KSxyLmF0dHIoaSk7dmFyIG89ci5zZWxlY3QoIi5qcy1saW5rLXRvLXRvb2wiKSxzPXIuc2VsZWN0KCIuanMtbGluay1zcGFjZXIiKSx1PXIuc2VsZWN0KCIuanMtc291cmNlbGlua3MiKTt0Ll9jb250ZXh0LnNob3dTb3VyY2VzJiZ0Ll9jb250ZXh0LnNob3dTb3VyY2VzKHQpLHQuX2NvbnRleHQuc2hvd0xpbmsmJmZ1bmN0aW9uKHQsZSl7ZS50ZXh0KCIiKTt2YXIgcj1lLmFwcGVuZCgiYSIpLmF0dHIoeyJ4bGluazp4bGluazpocmVmIjoiIyIsY2xhc3M6ImxpbmstLWltcHQgbGluay0tZW1iZWR2aWV3IiwiZm9udC13ZWlnaHQiOiJib2xkIn0pLnRleHQodC5fY29udGV4dC5saW5rVGV4dCsiICIrU3RyaW5nLmZyb21DaGFyQ29kZSgxODcpKTtpZih0Ll9jb250ZXh0LnNlbmREYXRhKXIub24oImNsaWNrIixmdW5jdGlvbigpe20uc2VuZERhdGFUb0Nsb3VkKHQpfSk7ZWxzZXt2YXIgbj13aW5kb3cubG9jYXRpb24ucGF0aG5hbWUuc3BsaXQoIi8iKSxhPXdpbmRvdy5sb2NhdGlvbi5zZWFyY2g7ci5hdHRyKHsieGxpbms6eGxpbms6c2hvdyI6Im5ldyIsInhsaW5rOnhsaW5rOmhyZWYiOiIvIituWzJdLnNwbGl0KCIuIilbMF0rIi8iK25bMV0rYX0pfX0odCxvKSxzLnRleHQoby50ZXh0KCkmJnUudGV4dCgpPyIgLSAiOiIiKX19LG0uc2VuZERhdGFUb0Nsb3VkPWZ1bmN0aW9uKHQpe3QuZW1pdCgicGxvdGx5X2JlZm9yZWV4cG9ydCIpO3ZhciBlPSh3aW5kb3cuUExPVExZRU5WfHx7fSkuQkFTRV9VUkx8fHQuX2NvbnRleHQucGxvdGx5U2VydmVyVVJMLHI9bi5zZWxlY3QodCkuYXBwZW5kKCJkaXYiKS5hdHRyKCJpZCIsImhpZGRlbmZvcm0iKS5zdHlsZSgiZGlzcGxheSIsIm5vbmUiKSxhPXIuYXBwZW5kKCJmb3JtIikuYXR0cih7YWN0aW9uOmUrIi9leHRlcm5hbCIsbWV0aG9kOiJwb3N0Iix0YXJnZXQ6Il9ibGFuayJ9KTtyZXR1cm4gYS5hcHBlbmQoImlucHV0IikuYXR0cih7dHlwZToidGV4dCIsbmFtZToiZGF0YSJ9KS5ub2RlKCkudmFsdWU9bS5ncmFwaEpzb24odCwhMSwia2VlcGRhdGEiKSxhLm5vZGUoKS5zdWJtaXQoKSxyLnJlbW92ZSgpLHQuZW1pdCgicGxvdGx5X2FmdGVyZXhwb3J0IiksITF9O3ZhciBiPVsiZGF5cyIsInNob3J0RGF5cyIsIm1vbnRocyIsInNob3J0TW9udGhzIiwicGVyaW9kcyIsImRhdGVUaW1lIiwiZGF0ZSIsInRpbWUiLCJkZWNpbWFsIiwidGhvdXNhbmRzIiwiZ3JvdXBpbmciLCJjdXJyZW5jeSJdLF89WyJ5ZWFyIiwibW9udGgiLCJkYXlNb250aCIsImRheU1vbnRoWWVhciJdO2Z1bmN0aW9uIHcodCxlKXt2YXIgcj10Ll9jb250ZXh0LmxvY2FsZSxuPSExLGE9e307ZnVuY3Rpb24gbyh0KXtmb3IodmFyIHI9ITAsaT0wO2k8ZS5sZW5ndGg7aSsrKXt2YXIgbz1lW2ldO2Fbb118fCh0W29dP2Fbb109dFtvXTpyPSExKX1yJiYobj0hMCl9Zm9yKHZhciBzPTA7czwyO3MrKyl7Zm9yKHZhciBsPXQuX2NvbnRleHQubG9jYWxlcyxjPTA7YzwyO2MrKyl7dmFyIHU9KGxbcl18fHt9KS5mb3JtYXQ7aWYodSYmKG8odSksbikpYnJlYWs7bD1pLmxvY2FsZVJlZ2lzdHJ5fXZhciBoPXIuc3BsaXQoIi0iKVswXTtpZihufHxoPT09cilicmVhaztyPWh9cmV0dXJuIG58fG8oaS5sb2NhbGVSZWdpc3RyeS5lbi5mb3JtYXQpLGF9ZnVuY3Rpb24gayh0LGUpe3ZhciByPXtfZnVsbExheW91dDplfSxuPSJ4Ij09PXQuX2lkLmNoYXJBdCgwKSxhPXQuX21haW5BeGlzLl9hbmNob3JBeGlzLGk9IiIsbz0iIixzPSIiO2lmKGEmJihzPWEuX21haW5BeGlzLl9pZCxpPW4/dC5faWQrczpzK3QuX2lkKSwhaXx8IWUuX3Bsb3RzW2ldKXtpPSIiO2Zvcih2YXIgbD10Ll9jb3VudGVyQXhlcyxjPTA7YzxsLmxlbmd0aDtjKyspe3ZhciB1PWxbY10sZj1uP3QuX2lkK3U6dSt0Ll9pZDtvfHwobz1mKTt2YXIgcD1oLmdldEZyb21JZChyLHUpO2lmKHMmJnAub3ZlcmxheWluZz09PXMpe2k9ZjticmVha319fXJldHVybiBpfHxvfWZ1bmN0aW9uIFQodCl7dmFyIGU9dC50cmFuc2Zvcm1zO2lmKEFycmF5LmlzQXJyYXkoZSkmJmUubGVuZ3RoKWZvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lW3JdLGE9bi5fbW9kdWxlfHx5W24udHlwZV07aWYoYSYmYS5tYWtlc0RhdGEpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gTSh0LGUscixuKXtmb3IodmFyIGE9dC50cmFuc2Zvcm1zLGk9W3RdLG89MDtvPGEubGVuZ3RoO28rKyl7dmFyIHM9YVtvXSxsPXlbcy50eXBlXTtsJiZsLnRyYW5zZm9ybSYmKGk9bC50cmFuc2Zvcm0oaSx7dHJhbnNmb3JtOnMsZnVsbFRyYWNlOnQsZnVsbERhdGE6ZSxsYXlvdXQ6cixmdWxsTGF5b3V0Om4sdHJhbnNmb3JtSW5kZXg6b30pKX1yZXR1cm4gaX1mdW5jdGlvbiBBKHQpe3ZhciBlPXQubWFyZ2luO2lmKCF0Ll9zaXplKXt2YXIgcj10Ll9zaXplPXtsOk1hdGgucm91bmQoZS5sKSxyOk1hdGgucm91bmQoZS5yKSx0Ok1hdGgucm91bmQoZS50KSxiOk1hdGgucm91bmQoZS5iKSxwOk1hdGgucm91bmQoZS5wYWQpfTtyLnc9TWF0aC5yb3VuZCh0LndpZHRoKS1yLmwtci5yLHIuaD1NYXRoLnJvdW5kKHQuaGVpZ2h0KS1yLnQtci5ifXQuX3B1c2htYXJnaW58fCh0Ll9wdXNobWFyZ2luPXt9KSx0Ll9wdXNobWFyZ2luSWRzfHwodC5fcHVzaG1hcmdpbklkcz17fSl9bS5zdXBwbHlEZWZhdWx0cz1mdW5jdGlvbih0LGUpe3ZhciByPWUmJmUuc2tpcFVwZGF0ZUNhbGMsYT10Ll9mdWxsTGF5b3V0fHx7fTtpZihhLl9za2lwRGVmYXVsdHMpZGVsZXRlIGEuX3NraXBEZWZhdWx0cztlbHNle3ZhciBvLHM9dC5fZnVsbExheW91dD17fSxjPXQubGF5b3V0fHx7fSx1PXQuX2Z1bGxEYXRhfHxbXSxoPXQuX2Z1bGxEYXRhPVtdLGY9dC5kYXRhfHxbXSxwPXQuY2FsY2RhdGF8fFtdLGQ9dC5fY29udGV4dHx8e307dC5fdHJhbnNpdGlvbkRhdGF8fG0uY3JlYXRlVHJhbnNpdGlvbkRhdGEodCkscy5fZGZsdFRpdGxlPXtwbG90OnYodCwiQ2xpY2sgdG8gZW50ZXIgUGxvdCB0aXRsZSIpLHg6dih0LCJDbGljayB0byBlbnRlciBYIGF4aXMgdGl0bGUiKSx5OnYodCwiQ2xpY2sgdG8gZW50ZXIgWSBheGlzIHRpdGxlIiksY29sb3JiYXI6dih0LCJDbGljayB0byBlbnRlciBDb2xvcnNjYWxlIHRpdGxlIiksYW5ub3RhdGlvbjp2KHQsIm5ldyB0ZXh0Iil9LHMuX3RyYWNlV29yZD12KHQsInRyYWNlIik7dmFyIHk9dyh0LGIpO2lmKHMuX21hcGJveEFjY2Vzc1Rva2VuPWQubWFwYm94QWNjZXNzVG9rZW4sYS5faW5pdGlhbEF1dG9TaXplSXNEb25lKXt2YXIgeD1hLndpZHRoLGs9YS5oZWlnaHQ7bS5zdXBwbHlMYXlvdXRHbG9iYWxEZWZhdWx0cyhjLHMseSksYy53aWR0aHx8KHMud2lkdGg9eCksYy5oZWlnaHR8fChzLmhlaWdodD1rKSxtLnNhbml0aXplTWFyZ2lucyhzKX1lbHNle20uc3VwcGx5TGF5b3V0R2xvYmFsRGVmYXVsdHMoYyxzLHkpO3ZhciBUPSFjLndpZHRofHwhYy5oZWlnaHQsTT1zLmF1dG9zaXplLFM9ZC5hdXRvc2l6YWJsZTtUJiYoTXx8Uyk/bS5wbG90QXV0b1NpemUodCxjLHMpOlQmJm0uc2FuaXRpemVNYXJnaW5zKHMpLCFNJiZUJiYoYy53aWR0aD1zLndpZHRoLGMuaGVpZ2h0PXMuaGVpZ2h0KX1zLl9kM2xvY2FsZT1mdW5jdGlvbih0LGUpe3JldHVybiB0LmRlY2ltYWw9ZS5jaGFyQXQoMCksdC50aG91c2FuZHM9ZS5jaGFyQXQoMSksbi5sb2NhbGUodCl9KHkscy5zZXBhcmF0b3JzKSxzLl9leHRyYUZvcm1hdD13KHQsXykscy5faW5pdGlhbEF1dG9TaXplSXNEb25lPSEwLHMuX2RhdGFMZW5ndGg9Zi5sZW5ndGgscy5fbW9kdWxlcz1bXSxzLl92aXNpYmxlTW9kdWxlcz1bXSxzLl9iYXNlUGxvdE1vZHVsZXM9W107dmFyIEU9cy5fc3VicGxvdHM9ZnVuY3Rpb24oKXt2YXIgdCxlLHI9aS5jb2xsZWN0YWJsZVN1YnBsb3RUeXBlcyxuPXt9O2lmKCFyKXtyPVtdO3ZhciBhPWkuc3VicGxvdHNSZWdpc3RyeTtmb3IodmFyIG8gaW4gYSl7dmFyIHM9YVtvXSxjPXMuYXR0cjtpZihjJiYoci5wdXNoKG8pLEFycmF5LmlzQXJyYXkoYykpKWZvcihlPTA7ZTxjLmxlbmd0aDtlKyspbC5wdXNoVW5pcXVlKHIsY1tlXSl9fWZvcih0PTA7dDxyLmxlbmd0aDt0KyspbltyW3RdXT1bXTtyZXR1cm4gbn0oKSxMPXMuX3NwbG9tQXhlcz17eDp7fSx5Ont9fSxDPXMuX3NwbG9tU3VicGxvdHM9e307cy5fc3Bsb21HcmlkRGZsdD17fSxzLl9zY2F0dGVyU3RhY2tPcHRzPXt9LHMuX2ZpcnN0U2NhdHRlcj17fSxzLl9hbGlnbm1lbnRPcHRzPXt9LHMuX2NvbG9yQXhlcz17fSxzLl9yZXF1ZXN0UmFuZ2VzbGlkZXI9e30scy5fdHJhY2VVaWRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixhPWUubGVuZ3RoLGk9W107Zm9yKHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG89dFtyXS5fZnVsbElucHV0O28hPT1uJiZpLnB1c2gobyksbj1vfXZhciBzPWkubGVuZ3RoLGM9bmV3IEFycmF5KGEpLHU9e307ZnVuY3Rpb24gaCh0LGUpe2NbZV09dCx1W3RdPTF9ZnVuY3Rpb24gZih0LGUpe2lmKHQmJiJzdHJpbmciPT10eXBlb2YgdCYmIXVbdF0pcmV0dXJuIGgodCxlKSwhMH1mb3Iocj0wO3I8YTtyKyspe3ZhciBwPWVbcl0udWlkOyJudW1iZXIiPT10eXBlb2YgcCYmKHA9U3RyaW5nKHApKSxmKHAscil8fChyPHMmJmYoaVtyXS51aWQscil8fGgobC5yYW5kc3RyKHUpLHIpKX1yZXR1cm4gY30odSxmKSxzLl9nbG9iYWxUcmFuc2Zvcm1zPSh0Ll9jb250ZXh0fHx7fSkuZ2xvYmFsVHJhbnNmb3JtcyxtLnN1cHBseURhdGFEZWZhdWx0cyhmLGgsYyxzKTt2YXIgUD1PYmplY3Qua2V5cyhMLngpLE89T2JqZWN0LmtleXMoTC55KTtpZihQLmxlbmd0aD4xJiZPLmxlbmd0aD4xKXtmb3IoaS5nZXRDb21wb25lbnRNZXRob2QoImdyaWQiLCJzaXplRGVmYXVsdHMiKShjLHMpLG89MDtvPFAubGVuZ3RoO28rKylsLnB1c2hVbmlxdWUoRS54YXhpcyxQW29dKTtmb3Iobz0wO288Ty5sZW5ndGg7bysrKWwucHVzaFVuaXF1ZShFLnlheGlzLE9bb10pO2Zvcih2YXIgeiBpbiBDKWwucHVzaFVuaXF1ZShFLmNhcnRlc2lhbix6KX1pZihzLl9oYXM9bS5faGFzUGxvdFR5cGUuYmluZChzKSx1Lmxlbmd0aD09PWgubGVuZ3RoKWZvcihvPTA7bzxoLmxlbmd0aDtvKyspZyhoW29dLHVbb10pO20uc3VwcGx5TGF5b3V0TW9kdWxlRGVmYXVsdHMoYyxzLGgsdC5fdHJhbnNpdGlvbkRhdGEpO3ZhciBJPXMuX3Zpc2libGVNb2R1bGVzLEQ9W107Zm9yKG89MDtvPEkubGVuZ3RoO28rKyl7dmFyIFI9SVtvXS5jcm9zc1RyYWNlRGVmYXVsdHM7UiYmbC5wdXNoVW5pcXVlKEQsUil9Zm9yKG89MDtvPEQubGVuZ3RoO28rKylEW29dKGgscyk7cy5faGFzT25seUxhcmdlU3Bsb21zPTE9PT1zLl9iYXNlUGxvdE1vZHVsZXMubGVuZ3RoJiYic3Bsb20iPT09cy5fYmFzZVBsb3RNb2R1bGVzWzBdLm5hbWUmJlAubGVuZ3RoPjE1JiZPLmxlbmd0aD4xNSYmMD09PXMuc2hhcGVzLmxlbmd0aCYmMD09PXMuaW1hZ2VzLmxlbmd0aCxzLl9oYXNDYXJ0ZXNpYW49cy5faGFzKCJjYXJ0ZXNpYW4iKSxzLl9oYXNHZW89cy5faGFzKCJnZW8iKSxzLl9oYXNHTDNEPXMuX2hhcygiZ2wzZCIpLHMuX2hhc0dMMkQ9cy5faGFzKCJnbDJkIikscy5faGFzVGVybmFyeT1zLl9oYXMoInRlcm5hcnkiKSxzLl9oYXNQaWU9cy5faGFzKCJwaWUiKSxtLmxpbmtTdWJwbG90cyhoLHMsdSxhKSxtLmNsZWFuUGxvdChoLHMsdSxhKSxhLl96b29tbGF5ZXImJiF0Ll9kcmFnZ2luZyYmYS5fem9vbWxheWVyLnNlbGVjdEFsbCgiLnNlbGVjdC1vdXRsaW5lIikucmVtb3ZlKCksZnVuY3Rpb24odCxlKXt2YXIgcixuPVtdO2UubWV0YSYmKHI9ZS5fbWV0YT17bWV0YTplLm1ldGEsbGF5b3V0OnttZXRhOmUubWV0YX19KTtmb3IodmFyIGE9MDthPHQubGVuZ3RoO2ErKyl7dmFyIGk9dFthXTtpLm1ldGE/bltpLmluZGV4XT1pLl9tZXRhPXttZXRhOmkubWV0YX06ZS5tZXRhJiYoaS5fbWV0YT17bWV0YTplLm1ldGF9KSxlLm1ldGEmJihpLl9tZXRhLmxheW91dD17bWV0YTplLm1ldGF9KX1uLmxlbmd0aCYmKHJ8fChyPWUuX21ldGE9e30pLHIuZGF0YT1uKX0oaCxzKSxnKHMsYSksaS5nZXRDb21wb25lbnRNZXRob2QoImNvbG9yc2NhbGUiLCJjcm9zc1RyYWNlRGVmYXVsdHMiKShoLHMpLHMuX3ByZUdVSXx8KHMuX3ByZUdVST17fSkscy5fdHJhY2VQcmVHVUl8fChzLl90cmFjZVByZUdVST17fSk7dmFyIEYsQj1zLl90cmFjZVByZUdVSSxOPXt9O2ZvcihGIGluIEIpTltGXT0ib2xkIjtmb3Iobz0wO288aC5sZW5ndGg7bysrKU5bRj1oW29dLl9mdWxsSW5wdXQudWlkXXx8KEJbRl09e30pLE5bRl09Im5ldyI7Zm9yKEYgaW4gTikib2xkIj09PU5bRl0mJmRlbGV0ZSBCW0ZdO0EocyksaS5nZXRDb21wb25lbnRNZXRob2QoInJhbmdlc2xpZGVyIiwibWFrZURhdGEiKShzKSxyfHxwLmxlbmd0aCE9PWgubGVuZ3RofHxtLnN1cHBseURlZmF1bHRzVXBkYXRlQ2FsYyhwLGgpfX0sbS5zdXBwbHlEZWZhdWx0c1VwZGF0ZUNhbGM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXSxhPSh0W3JdfHxbXSlbMF07aWYoYSYmYS50cmFjZSl7dmFyIGk9YS50cmFjZTtpZihpLl9oYXNDYWxjVHJhbnNmb3JtKXt2YXIgbyxzLGMsdT1pLl9hcnJheUF0dHJzO2ZvcihvPTA7bzx1Lmxlbmd0aDtvKyspcz11W29dLGM9bC5uZXN0ZWRQcm9wZXJ0eShpLHMpLmdldCgpLnNsaWNlKCksbC5uZXN0ZWRQcm9wZXJ0eShuLHMpLnNldChjKX1hLnRyYWNlPW59fX0sbS5jcmVhdGVUcmFuc2l0aW9uRGF0YT1mdW5jdGlvbih0KXt0Ll90cmFuc2l0aW9uRGF0YXx8KHQuX3RyYW5zaXRpb25EYXRhPXt9KSx0Ll90cmFuc2l0aW9uRGF0YS5fZnJhbWVzfHwodC5fdHJhbnNpdGlvbkRhdGEuX2ZyYW1lcz1bXSksdC5fdHJhbnNpdGlvbkRhdGEuX2ZyYW1lSGFzaHx8KHQuX3RyYW5zaXRpb25EYXRhLl9mcmFtZUhhc2g9e30pLHQuX3RyYW5zaXRpb25EYXRhLl9jb3VudGVyfHwodC5fdHJhbnNpdGlvbkRhdGEuX2NvdW50ZXI9MCksdC5fdHJhbnNpdGlvbkRhdGEuX2ludGVycnVwdENhbGxiYWNrc3x8KHQuX3RyYW5zaXRpb25EYXRhLl9pbnRlcnJ1cHRDYWxsYmFja3M9W10pfSxtLl9oYXNQbG90VHlwZT1mdW5jdGlvbih0KXt2YXIgZSxyPXRoaXMuX2Jhc2VQbG90TW9kdWxlc3x8W107Zm9yKGU9MDtlPHIubGVuZ3RoO2UrKylpZihyW2VdLm5hbWU9PT10KXJldHVybiEwO3ZhciBuPXRoaXMuX21vZHVsZXN8fFtdO2ZvcihlPTA7ZTxuLmxlbmd0aDtlKyspe3ZhciBhPW5bZV0ubmFtZTtpZihhPT09dClyZXR1cm4hMDt2YXIgbz1pLm1vZHVsZXNbYV07aWYobyYmby5jYXRlZ29yaWVzW3RdKXJldHVybiEwfXJldHVybiExfSxtLmNsZWFuUGxvdD1mdW5jdGlvbih0LGUscixuKXt2YXIgYSxpLG89bi5fYmFzZVBsb3RNb2R1bGVzfHxbXTtmb3IoYT0wO2E8by5sZW5ndGg7YSsrKXt2YXIgcz1vW2FdO3MuY2xlYW4mJnMuY2xlYW4odCxlLHIsbil9dmFyIGw9bi5faGFzJiZuLl9oYXMoImdsIiksYz1lLl9oYXMmJmUuX2hhcygiZ2wiKTtsJiYhYyYmdm9pZCAwIT09bi5fZ2xjb250YWluZXImJihuLl9nbGNvbnRhaW5lci5zZWxlY3RBbGwoIi5nbC1jYW52YXMiKS5yZW1vdmUoKSxuLl9nbGNvbnRhaW5lci5zZWxlY3RBbGwoIi5uby13ZWJnbCIpLnJlbW92ZSgpLG4uX2dsY2FudmFzPW51bGwpO3ZhciB1PSEhbi5faW5mb2xheWVyO3Q6Zm9yKGE9MDthPHIubGVuZ3RoO2ErKyl7dmFyIGg9clthXS51aWQ7Zm9yKGk9MDtpPHQubGVuZ3RoO2krKyl7aWYoaD09PXRbaV0udWlkKWNvbnRpbnVlIHR9dSYmbi5faW5mb2xheWVyLnNlbGVjdCgiLmNiIitoKS5yZW1vdmUoKX19LG0ubGlua1N1YnBsb3RzPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhLG8scz1uLl9wbG90c3x8e30sYz1lLl9wbG90cz17fSx1PWUuX3N1YnBsb3RzLGY9e19mdWxsRGF0YTp0LF9mdWxsTGF5b3V0OmV9LHA9dS5jYXJ0ZXNpYW4uY29uY2F0KHUuZ2wyZHx8W10pO2ZvcihhPTA7YTxwLmxlbmd0aDthKyspe3ZhciBkLGc9cFthXSx2PXNbZ10sbT1oLmdldEZyb21JZChmLGcsIngiKSx5PWguZ2V0RnJvbUlkKGYsZywieSIpO2Zvcih2P2Q9Y1tnXT12OihkPWNbZ109e30pLmlkPWcsbS5fY291bnRlckF4ZXMucHVzaCh5Ll9pZCkseS5fY291bnRlckF4ZXMucHVzaChtLl9pZCksbS5fc3VicGxvdHNXaXRoLnB1c2goZykseS5fc3VicGxvdHNXaXRoLnB1c2goZyksZC54YXhpcz1tLGQueWF4aXM9eSxkLl9oYXNDbGlwT25BeGlzRmFsc2U9ITEsbz0wO288dC5sZW5ndGg7bysrKXt2YXIgeD10W29dO2lmKHgueGF4aXM9PT1kLnhheGlzLl9pZCYmeC55YXhpcz09PWQueWF4aXMuX2lkJiYhMT09PXguY2xpcG9uYXhpcyl7ZC5faGFzQ2xpcE9uQXhpc0ZhbHNlPSEwO2JyZWFrfX19dmFyIGIsXz1oLmxpc3QoZixudWxsLCEwKTtmb3IoYT0wO2E8Xy5sZW5ndGg7YSsrKXt2YXIgdz1udWxsOyhiPV9bYV0pLm92ZXJsYXlpbmcmJih3PWguZ2V0RnJvbUlkKGYsYi5vdmVybGF5aW5nKSkmJncub3ZlcmxheWluZyYmKGIub3ZlcmxheWluZz0hMSx3PW51bGwpLGIuX21haW5BeGlzPXd8fGIsdyYmKGIuZG9tYWluPXcuZG9tYWluLnNsaWNlKCkpLGIuX2FuY2hvckF4aXM9ImZyZWUiPT09Yi5hbmNob3I/bnVsbDpoLmdldEZyb21JZChmLGIuYW5jaG9yKX1mb3IoYT0wO2E8Xy5sZW5ndGg7YSsrKWlmKChiPV9bYV0pLl9jb3VudGVyQXhlcy5zb3J0KGguaWRTb3J0KSxiLl9zdWJwbG90c1dpdGguc29ydChsLnN1YnBsb3RTb3J0KSxiLl9tYWluU3VicGxvdD1rKGIsZSksYi5fY291bnRlckF4ZXMubGVuZ3RoJiYoYi5zcGlrZW1vZGUmJi0xIT09Yi5zcGlrZW1vZGUuaW5kZXhPZigiYWNyb3NzIil8fGIuYXV0b21hcmdpbiYmYi5taXJyb3ImJiJmcmVlIiE9PWIuYW5jaG9yfHxpLmdldENvbXBvbmVudE1ldGhvZCgicmFuZ2VzbGlkZXIiLCJpc1Zpc2libGUiKShiKSkpe3ZhciBUPTEsTT0wO2ZvcihvPTA7bzxiLl9jb3VudGVyQXhlcy5sZW5ndGg7bysrKXt2YXIgQT1oLmdldEZyb21JZChmLGIuX2NvdW50ZXJBeGVzW29dKTtUPU1hdGgubWluKFQsQS5kb21haW5bMF0pLE09TWF0aC5tYXgoTSxBLmRvbWFpblsxXSl9VDxNJiYoYi5fY291bnRlckRvbWFpbk1pbj1ULGIuX2NvdW50ZXJEb21haW5NYXg9TSl9fSxtLmNsZWFyRXhwYW5kZWRUcmFjZURlZmF1bHRDb2xvcnM9ZnVuY3Rpb24odCl7dmFyIGUscixuO2ZvcihyPVtdLChlPXQuX21vZHVsZS5fY29sb3JBdHRycyl8fCh0Ll9tb2R1bGUuX2NvbG9yQXR0cnM9ZT1bXSxvLmNyYXdsKHQuX21vZHVsZS5hdHRyaWJ1dGVzLGZ1bmN0aW9uKHQsbixhLGkpe3JbaV09bixyLmxlbmd0aD1pKzEsImNvbG9yIj09PXQudmFsVHlwZSYmdm9pZCAwPT09dC5kZmx0JiZlLnB1c2goci5qb2luKCIuIikpfSkpLG49MDtuPGUubGVuZ3RoO24rKyl7bC5uZXN0ZWRQcm9wZXJ0eSh0LCJfaW5wdXQuIitlW25dKS5nZXQoKXx8bC5uZXN0ZWRQcm9wZXJ0eSh0LGVbbl0pLnNldChudWxsKX19LG0uc3VwcGx5RGF0YURlZmF1bHRzPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhLG8sYyx1PW4uX21vZHVsZXMsaD1uLl92aXNpYmxlTW9kdWxlcyxmPW4uX2Jhc2VQbG90TW9kdWxlcyxwPTAsZD0wO2Z1bmN0aW9uIHYodCl7ZS5wdXNoKHQpO3ZhciByPXQuX21vZHVsZTtyJiYobC5wdXNoVW5pcXVlKHUsciksITA9PT10LnZpc2libGUmJmwucHVzaFVuaXF1ZShoLHIpLGwucHVzaFVuaXF1ZShmLHQuX21vZHVsZS5iYXNlUGxvdE1vZHVsZSkscCsrLCExIT09dC5faW5wdXQudmlzaWJsZSYmZCsrKX1uLl90cmFuc2Zvcm1Nb2R1bGVzPVtdO3ZhciB5PXt9LHg9W10sYj0oci50ZW1wbGF0ZXx8e30pLmRhdGF8fHt9LF89cy50cmFjZVRlbXBsYXRlcihiKTtmb3IoYT0wO2E8dC5sZW5ndGg7YSsrKXtpZihjPXRbYV0sKG89Xy5uZXdUcmFjZShjKSkudWlkPW4uX3RyYWNlVWlkc1thXSxtLnN1cHBseVRyYWNlRGVmYXVsdHMoYyxvLGQsbixhKSxvLmluZGV4PWEsby5faW5wdXQ9YyxvLl9leHBhbmRlZEluZGV4PXAsby50cmFuc2Zvcm1zJiZvLnRyYW5zZm9ybXMubGVuZ3RoKWZvcih2YXIgdz0hMSE9PWMudmlzaWJsZSYmITE9PT1vLnZpc2libGUsaz1NKG8sZSxyLG4pLFQ9MDtUPGsubGVuZ3RoO1QrKyl7dmFyIEE9a1tUXSxTPXtfdGVtcGxhdGU6by5fdGVtcGxhdGUsdHlwZTpvLnR5cGUsdWlkOm8udWlkK1R9O3cmJiExPT09QS52aXNpYmxlJiZkZWxldGUgQS52aXNpYmxlLG0uc3VwcGx5VHJhY2VEZWZhdWx0cyhBLFMscCxuLGEpLGcoUyxBKSxTLmluZGV4PWEsUy5faW5wdXQ9YyxTLl9mdWxsSW5wdXQ9byxTLl9leHBhbmRlZEluZGV4PXAsUy5fZXhwYW5kZWRJbnB1dD1BLHYoUyl9ZWxzZSBvLl9mdWxsSW5wdXQ9byxvLl9leHBhbmRlZElucHV0PW8sdihvKTtpLnRyYWNlSXMobywiY2FycGV0QXhpcyIpJiYoeVtvLmNhcnBldF09byksaS50cmFjZUlzKG8sImNhcnBldERlcGVuZGVudCIpJiZ4LnB1c2goYSl9Zm9yKGE9MDthPHgubGVuZ3RoO2ErKylpZigobz1lW3hbYV1dKS52aXNpYmxlKXt2YXIgRT15W28uY2FycGV0XTtvLl9jYXJwZXQ9RSxFJiZFLnZpc2libGU/KG8ueGF4aXM9RS54YXhpcyxvLnlheGlzPUUueWF4aXMpOm8udmlzaWJsZT0hMX19LG0uc3VwcGx5QW5pbWF0aW9uRGVmYXVsdHM9ZnVuY3Rpb24odCl7dmFyIGU7dD10fHx7fTt2YXIgcj17fTtmdW5jdGlvbiBuKGUsbil7cmV0dXJuIGwuY29lcmNlKHR8fHt9LHIsZixlLG4pfWlmKG4oIm1vZGUiKSxuKCJkaXJlY3Rpb24iKSxuKCJmcm9tY3VycmVudCIpLEFycmF5LmlzQXJyYXkodC5mcmFtZSkpZm9yKHIuZnJhbWU9W10sZT0wO2U8dC5mcmFtZS5sZW5ndGg7ZSsrKXIuZnJhbWVbZV09bS5zdXBwbHlBbmltYXRpb25GcmFtZURlZmF1bHRzKHQuZnJhbWVbZV18fHt9KTtlbHNlIHIuZnJhbWU9bS5zdXBwbHlBbmltYXRpb25GcmFtZURlZmF1bHRzKHQuZnJhbWV8fHt9KTtpZihBcnJheS5pc0FycmF5KHQudHJhbnNpdGlvbikpZm9yKHIudHJhbnNpdGlvbj1bXSxlPTA7ZTx0LnRyYW5zaXRpb24ubGVuZ3RoO2UrKylyLnRyYW5zaXRpb25bZV09bS5zdXBwbHlBbmltYXRpb25UcmFuc2l0aW9uRGVmYXVsdHModC50cmFuc2l0aW9uW2VdfHx7fSk7ZWxzZSByLnRyYW5zaXRpb249bS5zdXBwbHlBbmltYXRpb25UcmFuc2l0aW9uRGVmYXVsdHModC50cmFuc2l0aW9ufHx7fSk7cmV0dXJuIHJ9LG0uc3VwcGx5QW5pbWF0aW9uRnJhbWVEZWZhdWx0cz1mdW5jdGlvbih0KXt2YXIgZT17fTtmdW5jdGlvbiByKHIsbil7cmV0dXJuIGwuY29lcmNlKHR8fHt9LGUsZi5mcmFtZSxyLG4pfXJldHVybiByKCJkdXJhdGlvbiIpLHIoInJlZHJhdyIpLGV9LG0uc3VwcGx5QW5pbWF0aW9uVHJhbnNpdGlvbkRlZmF1bHRzPWZ1bmN0aW9uKHQpe3ZhciBlPXt9O2Z1bmN0aW9uIHIocixuKXtyZXR1cm4gbC5jb2VyY2UodHx8e30sZSxmLnRyYW5zaXRpb24scixuKX1yZXR1cm4gcigiZHVyYXRpb24iKSxyKCJlYXNpbmciKSxlfSxtLnN1cHBseUZyYW1lRGVmYXVsdHM9ZnVuY3Rpb24odCl7dmFyIGU9e307ZnVuY3Rpb24gcihyLG4pe3JldHVybiBsLmNvZXJjZSh0LGUscCxyLG4pfXJldHVybiByKCJncm91cCIpLHIoIm5hbWUiKSxyKCJ0cmFjZXMiKSxyKCJiYXNlZnJhbWUiKSxyKCJkYXRhIikscigibGF5b3V0IiksZX0sbS5zdXBwbHlUcmFjZURlZmF1bHRzPWZ1bmN0aW9uKHQsZSxyLG4sYSl7dmFyIG8scz1uLmNvbG9yd2F5fHxjLmRlZmF1bHRzLHU9c1tyJXMubGVuZ3RoXTtmdW5jdGlvbiBoKHIsbil7cmV0dXJuIGwuY29lcmNlKHQsZSxtLmF0dHJpYnV0ZXMscixuKX12YXIgZj1oKCJ2aXNpYmxlIik7aCgidHlwZSIpLGgoIm5hbWUiLG4uX3RyYWNlV29yZCsiICIrYSksaCgidWlyZXZpc2lvbiIsbi51aXJldmlzaW9uKTt2YXIgcD1tLmdldE1vZHVsZShlKTtpZihlLl9tb2R1bGU9cCxwKXt2YXIgZD1wLmJhc2VQbG90TW9kdWxlLGc9ZC5hdHRyLHY9ZC5hdHRyaWJ1dGVzO2lmKGcmJnYpe3ZhciB5PW4uX3N1YnBsb3RzLHg9IiI7aWYoZnx8ImdsMmQiIT09ZC5uYW1lKXtpZihBcnJheS5pc0FycmF5KGcpKWZvcihvPTA7bzxnLmxlbmd0aDtvKyspe3ZhciBiPWdbb10sXz1sLmNvZXJjZSh0LGUsdixiKTt5W2JdJiZsLnB1c2hVbmlxdWUoeVtiXSxfKSx4Kz1ffWVsc2UgeD1sLmNvZXJjZSh0LGUsdixnKTt5W2QubmFtZV0mJmwucHVzaFVuaXF1ZSh5W2QubmFtZV0seCl9fX1yZXR1cm4gZiYmKGgoImN1c3RvbWRhdGEiKSxoKCJpZHMiKSxoKCJtZXRhIiksaS50cmFjZUlzKGUsInNob3dMZWdlbmQiKT8obC5jb2VyY2UodCxlLHAuYXR0cmlidXRlcy5zaG93bGVnZW5kP3AuYXR0cmlidXRlczptLmF0dHJpYnV0ZXMsInNob3dsZWdlbmQiKSxoKCJsZWdlbmRncm91cCIpLGUuX2RmbHRTaG93TGVnZW5kPSEwKTplLl9kZmx0U2hvd0xlZ2VuZD0hMSxwJiZwLnN1cHBseURlZmF1bHRzKHQsZSx1LG4pLGkudHJhY2VJcyhlLCJub09wYWNpdHkiKXx8aCgib3BhY2l0eSIpLGkudHJhY2VJcyhlLCJub3RMZWdlbmRJc29sYXRhYmxlIikmJihlLnZpc2libGU9ISFlLnZpc2libGUpLGkudHJhY2VJcyhlLCJub0hvdmVyIil8fChlLmhvdmVydGVtcGxhdGV8fGwuY29lcmNlSG92ZXJpbmZvKHQsZSxuKSwicGFyY2F0cyIhPT1lLnR5cGUmJmkuZ2V0Q29tcG9uZW50TWV0aG9kKCJmeCIsInN1cHBseURlZmF1bHRzIikodCxlLHUsbikpLHAmJnAuc2VsZWN0UG9pbnRzJiZoKCJzZWxlY3RlZHBvaW50cyIpLG0uc3VwcGx5VHJhbnNmb3JtRGVmYXVsdHModCxlLG4pKSxlfSxtLmhhc01ha2VzRGF0YVRyYW5zZm9ybT1ULG0uc3VwcGx5VHJhbnNmb3JtRGVmYXVsdHM9ZnVuY3Rpb24odCxlLHIpe2lmKGUuX2xlbmd0aHx8VCh0KSl7dmFyIG49ci5fZ2xvYmFsVHJhbnNmb3Jtc3x8W10sYT1yLl90cmFuc2Zvcm1Nb2R1bGVzfHxbXTtpZihBcnJheS5pc0FycmF5KHQudHJhbnNmb3Jtcyl8fDAhPT1uLmxlbmd0aClmb3IodmFyIGk9dC50cmFuc2Zvcm1zfHxbXSxvPW4uY29uY2F0KGkpLHM9ZS50cmFuc2Zvcm1zPVtdLGM9MDtjPG8ubGVuZ3RoO2MrKyl7dmFyIHUsaD1vW2NdLGY9aC50eXBlLHA9eVtmXSxkPSEoaC5fbW9kdWxlJiZoLl9tb2R1bGU9PT1wKSxnPXAmJiJmdW5jdGlvbiI9PXR5cGVvZiBwLnRyYW5zZm9ybTtwfHxsLndhcm4oIlVucmVjb2duaXplZCB0cmFuc2Zvcm0gdHlwZSAiK2YrIi4iKSxwJiZwLnN1cHBseURlZmF1bHRzJiYoZHx8Zyk/KCh1PXAuc3VwcGx5RGVmYXVsdHMoaCxlLHIsdCkpLnR5cGU9Zix1Ll9tb2R1bGU9cCxsLnB1c2hVbmlxdWUoYSxwKSk6dT1sLmV4dGVuZEZsYXQoe30saCkscy5wdXNoKHUpfX19LG0uc3VwcGx5TGF5b3V0R2xvYmFsRGVmYXVsdHM9ZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4ocixuKXtyZXR1cm4gbC5jb2VyY2UodCxlLG0ubGF5b3V0QXR0cmlidXRlcyxyLG4pfXZhciBhPXQudGVtcGxhdGU7bC5pc1BsYWluT2JqZWN0KGEpJiYoZS50ZW1wbGF0ZT1hLGUuX3RlbXBsYXRlPWEubGF5b3V0LGUuX2RhdGFUZW1wbGF0ZT1hLmRhdGEpO3ZhciBvPWwuY29lcmNlRm9udChuLCJmb250Iik7bigidGl0bGUudGV4dCIsZS5fZGZsdFRpdGxlLnBsb3QpLGwuY29lcmNlRm9udChuLCJ0aXRsZS5mb250Iix7ZmFtaWx5Om8uZmFtaWx5LHNpemU6TWF0aC5yb3VuZCgxLjQqby5zaXplKSxjb2xvcjpvLmNvbG9yfSksbigidGl0bGUueHJlZiIpLG4oInRpdGxlLnlyZWYiKSxuKCJ0aXRsZS54IiksbigidGl0bGUueSIpLG4oInRpdGxlLnhhbmNob3IiKSxuKCJ0aXRsZS55YW5jaG9yIiksbigidGl0bGUucGFkLnQiKSxuKCJ0aXRsZS5wYWQuciIpLG4oInRpdGxlLnBhZC5iIiksbigidGl0bGUucGFkLmwiKSxuKCJ1bmlmb3JtdGV4dC5tb2RlIikmJm4oInVuaWZvcm10ZXh0Lm1pbnNpemUiKSxuKCJhdXRvc2l6ZSIsISh0LndpZHRoJiZ0LmhlaWdodCkpLG4oIndpZHRoIiksbigiaGVpZ2h0IiksbigibWFyZ2luLmwiKSxuKCJtYXJnaW4uciIpLG4oIm1hcmdpbi50IiksbigibWFyZ2luLmIiKSxuKCJtYXJnaW4ucGFkIiksbigibWFyZ2luLmF1dG9leHBhbmQiKSx0LndpZHRoJiZ0LmhlaWdodCYmbS5zYW5pdGl6ZU1hcmdpbnMoZSksaS5nZXRDb21wb25lbnRNZXRob2QoImdyaWQiLCJzaXplRGVmYXVsdHMiKSh0LGUpLG4oInBhcGVyX2JnY29sb3IiKSxuKCJzZXBhcmF0b3JzIixyLmRlY2ltYWwrci50aG91c2FuZHMpLG4oImhpZGVzb3VyY2VzIiksbigiY29sb3J3YXkiKSxuKCJkYXRhcmV2aXNpb24iKTt2YXIgcz1uKCJ1aXJldmlzaW9uIik7bigiZWRpdHJldmlzaW9uIixzKSxuKCJzZWxlY3Rpb25yZXZpc2lvbiIscyksbigibW9kZWJhci5vcmllbnRhdGlvbiIpLG4oIm1vZGViYXIuYmdjb2xvciIsYy5hZGRPcGFjaXR5KGUucGFwZXJfYmdjb2xvciwuNSkpO3ZhciB1PWMuY29udHJhc3QoYy5yZ2IoZS5tb2RlYmFyLmJnY29sb3IpKTtuKCJtb2RlYmFyLmNvbG9yIixjLmFkZE9wYWNpdHkodSwuMykpLG4oIm1vZGViYXIuYWN0aXZlY29sb3IiLGMuYWRkT3BhY2l0eSh1LC43KSksbigibW9kZWJhci51aXJldmlzaW9uIixzKSxuKCJtZXRhIiksbC5pc1BsYWluT2JqZWN0KHQudHJhbnNpdGlvbikmJihuKCJ0cmFuc2l0aW9uLmR1cmF0aW9uIiksbigidHJhbnNpdGlvbi5lYXNpbmciKSxuKCJ0cmFuc2l0aW9uLm9yZGVyaW5nIikpLGkuZ2V0Q29tcG9uZW50TWV0aG9kKCJjYWxlbmRhcnMiLCJoYW5kbGVEZWZhdWx0cyIpKHQsZSwiY2FsZW5kYXIiKSxpLmdldENvbXBvbmVudE1ldGhvZCgiZngiLCJzdXBwbHlMYXlvdXRHbG9iYWxEZWZhdWx0cyIpKHQsZSxuKX0sbS5wbG90QXV0b1NpemU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGksbz10Ll9jb250ZXh0fHx7fSxzPW8uZnJhbWVNYXJnaW5zLGM9bC5pc1Bsb3REaXYodCk7aWYoYyYmdC5lbWl0KCJwbG90bHlfYXV0b3NpemUiKSxvLmZpbGxGcmFtZSluPXdpbmRvdy5pbm5lcldpZHRoLGk9d2luZG93LmlubmVySGVpZ2h0LGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiI7ZWxzZXt2YXIgdT1jP3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpOnt9O2lmKG49cGFyc2VGbG9hdCh1LndpZHRoKXx8cGFyc2VGbG9hdCh1Lm1heFdpZHRoKXx8ci53aWR0aCxpPXBhcnNlRmxvYXQodS5oZWlnaHQpfHxwYXJzZUZsb2F0KHUubWF4SGVpZ2h0KXx8ci5oZWlnaHQsYShzKSYmcz4wKXt2YXIgaD0xLTIqcztuPU1hdGgucm91bmQoaCpuKSxpPU1hdGgucm91bmQoaCppKX19dmFyIGY9bS5sYXlvdXRBdHRyaWJ1dGVzLndpZHRoLm1pbixwPW0ubGF5b3V0QXR0cmlidXRlcy5oZWlnaHQubWluO248ZiYmKG49ZiksaTxwJiYoaT1wKTt2YXIgZD0hZS53aWR0aCYmTWF0aC5hYnMoci53aWR0aC1uKT4xLGc9IWUuaGVpZ2h0JiZNYXRoLmFicyhyLmhlaWdodC1pKT4xOyhnfHxkKSYmKGQmJihyLndpZHRoPW4pLGcmJihyLmhlaWdodD1pKSksdC5faW5pdGlhbEF1dG9TaXplfHwodC5faW5pdGlhbEF1dG9TaXplPXt3aWR0aDpuLGhlaWdodDppfSksbS5zYW5pdGl6ZU1hcmdpbnMocil9LG0uc3VwcGx5TGF5b3V0TW9kdWxlRGVmYXVsdHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGEsbyxzLGM9aS5jb21wb25lbnRzUmVnaXN0cnksdT1lLl9iYXNlUGxvdE1vZHVsZXMsaD1pLnN1YnBsb3RzUmVnaXN0cnkuY2FydGVzaWFuO2ZvcihhIGluIGMpKHM9Y1thXSkuaW5jbHVkZUJhc2VQbG90JiZzLmluY2x1ZGVCYXNlUGxvdCh0LGUpO2Zvcih2YXIgZiBpbiB1Lmxlbmd0aHx8dS5wdXNoKGgpLGUuX2hhcygiY2FydGVzaWFuIikmJihpLmdldENvbXBvbmVudE1ldGhvZCgiZ3JpZCIsImNvbnRlbnREZWZhdWx0cyIpKHQsZSksaC5maW5hbGl6ZVN1YnBsb3RzKHQsZSkpLGUuX3N1YnBsb3RzKWUuX3N1YnBsb3RzW2ZdLnNvcnQobC5zdWJwbG90U29ydCk7Zm9yKG89MDtvPHUubGVuZ3RoO28rKykocz11W29dKS5zdXBwbHlMYXlvdXREZWZhdWx0cyYmcy5zdXBwbHlMYXlvdXREZWZhdWx0cyh0LGUscik7dmFyIHA9ZS5fbW9kdWxlcztmb3Iobz0wO288cC5sZW5ndGg7bysrKShzPXBbb10pLnN1cHBseUxheW91dERlZmF1bHRzJiZzLnN1cHBseUxheW91dERlZmF1bHRzKHQsZSxyKTt2YXIgZD1lLl90cmFuc2Zvcm1Nb2R1bGVzO2ZvcihvPTA7bzxkLmxlbmd0aDtvKyspKHM9ZFtvXSkuc3VwcGx5TGF5b3V0RGVmYXVsdHMmJnMuc3VwcGx5TGF5b3V0RGVmYXVsdHModCxlLHIsbik7Zm9yKGEgaW4gYykocz1jW2FdKS5zdXBwbHlMYXlvdXREZWZhdWx0cyYmcy5zdXBwbHlMYXlvdXREZWZhdWx0cyh0LGUscil9LG0ucHVyZ2U9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dHx8e307dm9pZCAwIT09ZS5fZ2xjb250YWluZXImJihlLl9nbGNvbnRhaW5lci5zZWxlY3RBbGwoIi5nbC1jYW52YXMiKS5yZW1vdmUoKSxlLl9nbGNvbnRhaW5lci5yZW1vdmUoKSxlLl9nbGNhbnZhcz1udWxsKSxlLl9tb2RlQmFyJiZlLl9tb2RlQmFyLmRlc3Ryb3koKSx0Ll90cmFuc2l0aW9uRGF0YSYmKHQuX3RyYW5zaXRpb25EYXRhLl9pbnRlcnJ1cHRDYWxsYmFja3MmJih0Ll90cmFuc2l0aW9uRGF0YS5faW50ZXJydXB0Q2FsbGJhY2tzLmxlbmd0aD0wKSx0Ll90cmFuc2l0aW9uRGF0YS5fYW5pbWF0aW9uUmFmJiZ3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUodC5fdHJhbnNpdGlvbkRhdGEuX2FuaW1hdGlvblJhZikpLGwuY2xlYXJUaHJvdHRsZSgpLGwuY2xlYXJSZXNwb25zaXZlKHQpLGRlbGV0ZSB0LmRhdGEsZGVsZXRlIHQubGF5b3V0LGRlbGV0ZSB0Ll9mdWxsRGF0YSxkZWxldGUgdC5fZnVsbExheW91dCxkZWxldGUgdC5jYWxjZGF0YSxkZWxldGUgdC5mcmFtZXdvcmssZGVsZXRlIHQuZW1wdHksZGVsZXRlIHQuZmlkLGRlbGV0ZSB0LnVuZG9xdWV1ZSxkZWxldGUgdC51bmRvbnVtLGRlbGV0ZSB0LmF1dG9wbGF5LGRlbGV0ZSB0LmNoYW5nZWQsZGVsZXRlIHQuX3Byb21pc2VzLGRlbGV0ZSB0Ll9yZWRyYXdUaW1lcixkZWxldGUgdC5faG1sdW1jb3VudCxkZWxldGUgdC5faG1waXhjb3VudCxkZWxldGUgdC5fdHJhbnNpdGlvbkRhdGEsZGVsZXRlIHQuX3RyYW5zaXRpb25pbmcsZGVsZXRlIHQuX2luaXRpYWxBdXRvU2l6ZSxkZWxldGUgdC5fdHJhbnNpdGlvbmluZ1dpdGhEdXJhdGlvbixkZWxldGUgdC5fZHJhZ2dpbmcsZGVsZXRlIHQuX2RyYWdnZWQsZGVsZXRlIHQuX2RyYWdkYXRhLGRlbGV0ZSB0Ll9ob3ZlcmRhdGEsZGVsZXRlIHQuX3NuYXBzaG90SW5Qcm9ncmVzcyxkZWxldGUgdC5fZWRpdGluZyxkZWxldGUgdC5fbW91c2VEb3duVGltZSxkZWxldGUgdC5fbGVnZW5kTW91c2VEb3duVGltZSx0LnJlbW92ZUFsbExpc3RlbmVycyYmdC5yZW1vdmVBbGxMaXN0ZW5lcnMoKX0sbS5zdHlsZT1mdW5jdGlvbih0KXt2YXIgZSxyPXQuX2Z1bGxMYXlvdXQuX3Zpc2libGVNb2R1bGVzLG49W107Zm9yKGU9MDtlPHIubGVuZ3RoO2UrKyl7dmFyIGE9cltlXTthLnN0eWxlJiZsLnB1c2hVbmlxdWUobixhLnN0eWxlKX1mb3IoZT0wO2U8bi5sZW5ndGg7ZSsrKW5bZV0odCl9LG0uc2FuaXRpemVNYXJnaW5zPWZ1bmN0aW9uKHQpe2lmKHQmJnQubWFyZ2luKXt2YXIgZSxyPXQud2lkdGgsbj10LmhlaWdodCxhPXQubWFyZ2luLGk9ci0oYS5sK2Euciksbz1uLShhLnQrYS5iKTtpPDAmJihlPShyLTEpLyhhLmwrYS5yKSxhLmw9TWF0aC5mbG9vcihlKmEubCksYS5yPU1hdGguZmxvb3IoZSphLnIpKSxvPDAmJihlPShuLTEpLyhhLnQrYS5iKSxhLnQ9TWF0aC5mbG9vcihlKmEudCksYS5iPU1hdGguZmxvb3IoZSphLmIpKX19LG0uY2xlYXJBdXRvTWFyZ2luSWRzPWZ1bmN0aW9uKHQpe3QuX2Z1bGxMYXlvdXQuX3B1c2htYXJnaW5JZHM9e319LG0uYWxsb3dBdXRvTWFyZ2luPWZ1bmN0aW9uKHQsZSl7dC5fZnVsbExheW91dC5fcHVzaG1hcmdpbklkc1tlXT0xfSxtLmF1dG9NYXJnaW49ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQuX2Z1bGxMYXlvdXQsYT1uLl9wdXNobWFyZ2luLGk9bi5fcHVzaG1hcmdpbklkcztpZighMSE9PW4ubWFyZ2luLmF1dG9leHBhbmQpe2lmKHIpe3ZhciBvPXIucGFkO2lmKHZvaWQgMD09PW8pe3ZhciBzPW4ubWFyZ2luO289TWF0aC5taW4oMTIscy5sLHMucixzLnQscy5iKX1yLmwrci5yPi41Km4ud2lkdGgmJihsLmxvZygiTWFyZ2luIHB1c2giLGUsImlzIHRvbyBiaWcgaW4geCwgZHJvcHBpbmciKSxyLmw9ci5yPTApLHIuYityLnQ+LjUqbi5oZWlnaHQmJihsLmxvZygiTWFyZ2luIHB1c2giLGUsImlzIHRvbyBiaWcgaW4geSwgZHJvcHBpbmciKSxyLmI9ci50PTApO3ZhciBjPXZvaWQgMCE9PXIueGw/ci54bDpyLngsdT12b2lkIDAhPT1yLnhyP3IueHI6ci54LGg9dm9pZCAwIT09ci55dD9yLnl0OnIueSxmPXZvaWQgMCE9PXIueWI/ci55YjpyLnk7YVtlXT17bDp7dmFsOmMsc2l6ZTpyLmwrb30scjp7dmFsOnUsc2l6ZTpyLnIrb30sYjp7dmFsOmYsc2l6ZTpyLmIrb30sdDp7dmFsOmgsc2l6ZTpyLnQrb319LGlbZV09MX1lbHNlIGRlbGV0ZSBhW2VdLGRlbGV0ZSBpW2VdO2lmKCFuLl9yZXBsb3R0aW5nKXJldHVybiBtLmRvQXV0b01hcmdpbih0KX19LG0uZG9BdXRvTWFyZ2luPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQ7ZS5fc2l6ZXx8KGUuX3NpemU9e30pLEEoZSk7dmFyIHI9ZS5fc2l6ZSxuPWUubWFyZ2luLG89bC5leHRlbmRGbGF0KHt9LHIpLHM9bi5sLGM9bi5yLHU9bi50LGg9bi5iLGY9ZS53aWR0aCxwPWUuaGVpZ2h0LGQ9ZS5fcHVzaG1hcmdpbixnPWUuX3B1c2htYXJnaW5JZHM7aWYoITEhPT1lLm1hcmdpbi5hdXRvZXhwYW5kKXtmb3IodmFyIHYgaW4gZClnW3ZdfHxkZWxldGUgZFt2XTtmb3IodmFyIHkgaW4gZC5iYXNlPXtsOnt2YWw6MCxzaXplOnN9LHI6e3ZhbDoxLHNpemU6Y30sdDp7dmFsOjEsc2l6ZTp1fSxiOnt2YWw6MCxzaXplOmh9fSxkKXt2YXIgeD1kW3ldLmx8fHt9LGI9ZFt5XS5ifHx7fSxfPXgudmFsLHc9eC5zaXplLGs9Yi52YWwsVD1iLnNpemU7Zm9yKHZhciBNIGluIGQpe2lmKGEodykmJmRbTV0ucil7dmFyIFM9ZFtNXS5yLnZhbCxFPWRbTV0uci5zaXplO2lmKFM+Xyl7dmFyIEw9KHcqUysoRS1mKSpfKS8oUy1fKSxDPShFKigxLV8pKyh3LWYpKigxLVMpKS8oUy1fKTtMPj0wJiZDPj0wJiZmLShMK0MpPjAmJkwrQz5zK2MmJihzPUwsYz1DKX19aWYoYShUKSYmZFtNXS50KXt2YXIgUD1kW01dLnQudmFsLE89ZFtNXS50LnNpemU7aWYoUD5rKXt2YXIgej0oVCpQKyhPLXApKmspLyhQLWspLEk9KE8qKDEtaykrKFQtcCkqKDEtUCkpLyhQLWspO3o+PTAmJkk+PTAmJnAtKEkreik+MCYmeitJPmgrdSYmKGg9eix1PUkpfX19fX1pZihyLmw9TWF0aC5yb3VuZChzKSxyLnI9TWF0aC5yb3VuZChjKSxyLnQ9TWF0aC5yb3VuZCh1KSxyLmI9TWF0aC5yb3VuZChoKSxyLnA9TWF0aC5yb3VuZChuLnBhZCksci53PU1hdGgucm91bmQoZiktci5sLXIucixyLmg9TWF0aC5yb3VuZChwKS1yLnQtci5iLCFlLl9yZXBsb3R0aW5nJiZtLmRpZE1hcmdpbkNoYW5nZShvLHIpKXsiX3JlZHJhd0Zyb21BdXRvTWFyZ2luQ291bnQiaW4gZT9lLl9yZWRyYXdGcm9tQXV0b01hcmdpbkNvdW50Kys6ZS5fcmVkcmF3RnJvbUF1dG9NYXJnaW5Db3VudD0xO3ZhciBEPTMqKDErT2JqZWN0LmtleXMoZykubGVuZ3RoKTtpZihlLl9yZWRyYXdGcm9tQXV0b01hcmdpbkNvdW50PEQpcmV0dXJuIGkuY2FsbCgicGxvdCIsdCk7bC53YXJuKCJUb28gbWFueSBhdXRvLW1hcmdpbiByZWRyYXdzLiIpfX07dmFyIFM9WyJsIiwiciIsInQiLCJiIiwicCIsInciLCJoIl07ZnVuY3Rpb24gRSh0LGUscil7dmFyIG49ITE7dmFyIGE9W20ucHJldmlvdXNQcm9taXNlcyxmdW5jdGlvbigpe2lmKHQuX3RyYW5zaXRpb25EYXRhKXJldHVybiB0Ll90cmFuc2l0aW9uaW5nPSExLGZ1bmN0aW9uKHQpe3ZhciBlPVByb21pc2UucmVzb2x2ZSgpO2lmKCF0KXJldHVybiBlO2Zvcig7dC5sZW5ndGg7KWU9ZS50aGVuKHQuc2hpZnQoKSk7cmV0dXJuIGV9KHQuX3RyYW5zaXRpb25EYXRhLl9pbnRlcnJ1cHRDYWxsYmFja3MpfSxyLnByZXBhcmVGbixtLnJlaG92ZXIsZnVuY3Rpb24oKXtyZXR1cm4gdC5lbWl0KCJwbG90bHlfdHJhbnNpdGlvbmluZyIsW10pLG5ldyBQcm9taXNlKGZ1bmN0aW9uKGEpe3QuX3RyYW5zaXRpb25pbmc9ITAsZS5kdXJhdGlvbj4wJiYodC5fdHJhbnNpdGlvbmluZ1dpdGhEdXJhdGlvbj0hMCksdC5fdHJhbnNpdGlvbkRhdGEuX2ludGVycnVwdENhbGxiYWNrcy5wdXNoKGZ1bmN0aW9uKCl7bj0hMH0pLHIucmVkcmF3JiZ0Ll90cmFuc2l0aW9uRGF0YS5faW50ZXJydXB0Q2FsbGJhY2tzLnB1c2goZnVuY3Rpb24oKXtyZXR1cm4gaS5jYWxsKCJyZWRyYXciLHQpfSksdC5fdHJhbnNpdGlvbkRhdGEuX2ludGVycnVwdENhbGxiYWNrcy5wdXNoKGZ1bmN0aW9uKCl7dC5lbWl0KCJwbG90bHlfdHJhbnNpdGlvbmludGVycnVwdGVkIixbXSl9KTt2YXIgbz0wLHM9MDtmdW5jdGlvbiBsKCl7cmV0dXJuIG8rKyxmdW5jdGlvbigpe3ZhciBlO3MrKyxufHxzIT09b3x8KGU9YSx0Ll90cmFuc2l0aW9uRGF0YSYmKGZ1bmN0aW9uKHQpe2lmKHQpZm9yKDt0Lmxlbmd0aDspdC5zaGlmdCgpfSh0Ll90cmFuc2l0aW9uRGF0YS5faW50ZXJydXB0Q2FsbGJhY2tzKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uKCl7aWYoci5yZWRyYXcpcmV0dXJuIGkuY2FsbCgicmVkcmF3Iix0KX0pLnRoZW4oZnVuY3Rpb24oKXt0Ll90cmFuc2l0aW9uaW5nPSExLHQuX3RyYW5zaXRpb25pbmdXaXRoRHVyYXRpb249ITEsdC5lbWl0KCJwbG90bHlfdHJhbnNpdGlvbmVkIixbXSl9KS50aGVuKGUpKSl9fXIucnVuRm4obCksc2V0VGltZW91dChsKCkpfSl9XSxvPWwuc3luY09yQXN5bmMoYSx0KTtyZXR1cm4gbyYmby50aGVufHwobz1Qcm9taXNlLnJlc29sdmUoKSksby50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHR9KX1tLmRpZE1hcmdpbkNoYW5nZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wO3I8Uy5sZW5ndGg7cisrKXt2YXIgbj1TW3JdLGk9dFtuXSxvPWVbbl07aWYoIWEoaSl8fE1hdGguYWJzKG8taSk+MSlyZXR1cm4hMH1yZXR1cm4hMX0sbS5ncmFwaEpzb249ZnVuY3Rpb24odCxlLHIsbixhKXsoYSYmZSYmIXQuX2Z1bGxEYXRhfHxhJiYhZSYmIXQuX2Z1bGxMYXlvdXQpJiZtLnN1cHBseURlZmF1bHRzKHQpO3ZhciBpPWE/dC5fZnVsbERhdGE6dC5kYXRhLG89YT90Ll9mdWxsTGF5b3V0OnQubGF5b3V0LHM9KHQuX3RyYW5zaXRpb25EYXRhfHx7fSkuX2ZyYW1lcztmdW5jdGlvbiBjKHQpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0KXJldHVybiBudWxsO2lmKGwuaXNQbGFpbk9iamVjdCh0KSl7dmFyIGUsbixhPXt9O2ZvcihlIGluIHQpaWYoImZ1bmN0aW9uIiE9dHlwZW9mIHRbZV0mJi0xPT09WyJfIiwiWyJdLmluZGV4T2YoZS5jaGFyQXQoMCkpKXtpZigia2VlcGRhdGEiPT09cil7aWYoInNyYyI9PT1lLnN1YnN0cihlLmxlbmd0aC0zKSljb250aW51ZX1lbHNlIGlmKCJrZWVwc3RyZWFtIj09PXIpe2lmKCJzdHJpbmciPT10eXBlb2Yobj10W2UrInNyYyJdKSYmbi5pbmRleE9mKCI6Iik+MCYmIWwuaXNQbGFpbk9iamVjdCh0LnN0cmVhbSkpY29udGludWV9ZWxzZSBpZigia2VlcGFsbCIhPT1yJiYic3RyaW5nIj09dHlwZW9mKG49dFtlKyJzcmMiXSkmJm4uaW5kZXhPZigiOiIpPjApY29udGludWU7YVtlXT1jKHRbZV0pfXJldHVybiBhfXJldHVybiBBcnJheS5pc0FycmF5KHQpP3QubWFwKGMpOmwuaXNUeXBlZEFycmF5KHQpP2wuc2ltcGxlTWFwKHQsbC5pZGVudGl0eSk6bC5pc0pTRGF0ZSh0KT9sLm1zMkRhdGVUaW1lTG9jYWwoK3QpOnR9dmFyIHU9e2RhdGE6KGl8fFtdKS5tYXAoZnVuY3Rpb24odCl7dmFyIHI9Yyh0KTtyZXR1cm4gZSYmZGVsZXRlIHIuZml0LHJ9KX07cmV0dXJuIGV8fCh1LmxheW91dD1jKG8pKSx0LmZyYW1ld29yayYmdC5mcmFtZXdvcmsuaXNQb2xhciYmKHU9dC5mcmFtZXdvcmsuZ2V0Q29uZmlnKCkpLHMmJih1LmZyYW1lcz1jKHMpKSwib2JqZWN0Ij09PW4/dTpKU09OLnN0cmluZ2lmeSh1KX0sbS5tb2RpZnlGcmFtZXM9ZnVuY3Rpb24odCxlKXt2YXIgcixuLGEsaT10Ll90cmFuc2l0aW9uRGF0YS5fZnJhbWVzLG89dC5fdHJhbnNpdGlvbkRhdGEuX2ZyYW1lSGFzaDtmb3Iocj0wO3I8ZS5sZW5ndGg7cisrKXN3aXRjaCgobj1lW3JdKS50eXBlKXtjYXNlInJlcGxhY2UiOmE9bi52YWx1ZTt2YXIgcz0oaVtuLmluZGV4XXx8e30pLm5hbWUsbD1hLm5hbWU7aVtuLmluZGV4XT1vW2xdPWEsbCE9PXMmJihkZWxldGUgb1tzXSxvW2xdPWEpO2JyZWFrO2Nhc2UiaW5zZXJ0IjpvWyhhPW4udmFsdWUpLm5hbWVdPWEsaS5zcGxpY2Uobi5pbmRleCwwLGEpO2JyZWFrO2Nhc2UiZGVsZXRlIjpkZWxldGUgb1soYT1pW24uaW5kZXhdKS5uYW1lXSxpLnNwbGljZShuLmluZGV4LDEpfXJldHVybiBQcm9taXNlLnJlc29sdmUoKX0sbS5jb21wdXRlRnJhbWU9ZnVuY3Rpb24odCxlKXt2YXIgcixuLGEsaSxvPXQuX3RyYW5zaXRpb25EYXRhLl9mcmFtZUhhc2g7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJjb21wdXRlRnJhbWUgbXVzdCBiZSBnaXZlbiBhIHN0cmluZyBmcmFtZSBuYW1lIik7dmFyIHM9b1tlLnRvU3RyaW5nKCldO2lmKCFzKXJldHVybiExO2Zvcih2YXIgbD1bc10sYz1bcy5uYW1lXTtzLmJhc2VmcmFtZSYmKHM9b1tzLmJhc2VmcmFtZS50b1N0cmluZygpXSkmJi0xPT09Yy5pbmRleE9mKHMubmFtZSk7KWwucHVzaChzKSxjLnB1c2gocy5uYW1lKTtmb3IodmFyIHU9e307cz1sLnBvcCgpOylpZihzLmxheW91dCYmKHUubGF5b3V0PW0uZXh0ZW5kTGF5b3V0KHUubGF5b3V0LHMubGF5b3V0KSkscy5kYXRhKXtpZih1LmRhdGF8fCh1LmRhdGE9W10pLCEobj1zLnRyYWNlcykpZm9yKG49W10scj0wO3I8cy5kYXRhLmxlbmd0aDtyKyspbltyXT1yO2Zvcih1LnRyYWNlc3x8KHUudHJhY2VzPVtdKSxyPTA7cjxzLmRhdGEubGVuZ3RoO3IrKyludWxsIT0oYT1uW3JdKSYmKC0xPT09KGk9dS50cmFjZXMuaW5kZXhPZihhKSkmJihpPXUuZGF0YS5sZW5ndGgsdS50cmFjZXNbaV09YSksdS5kYXRhW2ldPW0uZXh0ZW5kVHJhY2UodS5kYXRhW2ldLHMuZGF0YVtyXSkpfXJldHVybiB1fSxtLnJlY29tcHV0ZUZyYW1lSGFzaD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5fdHJhbnNpdGlvbkRhdGEuX2ZyYW1lSGFzaD17fSxyPXQuX3RyYW5zaXRpb25EYXRhLl9mcmFtZXMsbj0wO248ci5sZW5ndGg7bisrKXt2YXIgYT1yW25dO2EmJmEubmFtZSYmKGVbYS5uYW1lXT1hKX19LG0uZXh0ZW5kT2JqZWN0V2l0aENvbnRhaW5lcnM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGEsaSxvLHMsYyx1LGg9bC5leHRlbmREZWVwTm9BcnJheXMoe30sZXx8e30pLGY9bC5leHBhbmRPYmplY3RQYXRocyhoKSxwPXt9O2lmKHImJnIubGVuZ3RoKWZvcihpPTA7aTxyLmxlbmd0aDtpKyspdm9pZCAwPT09KGE9KG49bC5uZXN0ZWRQcm9wZXJ0eShmLHJbaV0pKS5nZXQoKSk/bC5uZXN0ZWRQcm9wZXJ0eShwLHJbaV0pLnNldChudWxsKToobi5zZXQobnVsbCksbC5uZXN0ZWRQcm9wZXJ0eShwLHJbaV0pLnNldChhKSk7aWYodD1sLmV4dGVuZERlZXBOb0FycmF5cyh0fHx7fSxmKSxyJiZyLmxlbmd0aClmb3IoaT0wO2k8ci5sZW5ndGg7aSsrKWlmKGM9bC5uZXN0ZWRQcm9wZXJ0eShwLHJbaV0pLmdldCgpKXtmb3IodT0ocz1sLm5lc3RlZFByb3BlcnR5KHQscltpXSkpLmdldCgpLEFycmF5LmlzQXJyYXkodSl8fCh1PVtdLHMuc2V0KHUpKSxvPTA7bzxjLmxlbmd0aDtvKyspe3ZhciBkPWNbb107dVtvXT1udWxsPT09ZD9udWxsOm0uZXh0ZW5kT2JqZWN0V2l0aENvbnRhaW5lcnModVtvXSxkKX1zLnNldCh1KX1yZXR1cm4gdH0sbS5kYXRhQXJyYXlDb250YWluZXJzPVsidHJhbnNmb3JtcyIsImRpbWVuc2lvbnMiXSxtLmxheW91dEFycmF5Q29udGFpbmVycz1pLmxheW91dEFycmF5Q29udGFpbmVycyxtLmV4dGVuZFRyYWNlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG0uZXh0ZW5kT2JqZWN0V2l0aENvbnRhaW5lcnModCxlLG0uZGF0YUFycmF5Q29udGFpbmVycyl9LG0uZXh0ZW5kTGF5b3V0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG0uZXh0ZW5kT2JqZWN0V2l0aENvbnRhaW5lcnModCxlLG0ubGF5b3V0QXJyYXlDb250YWluZXJzKX0sbS50cmFuc2l0aW9uPWZ1bmN0aW9uKHQsZSxyLG4sYSxpKXt2YXIgbz17cmVkcmF3OmEucmVkcmF3fSxzPXt9LGM9W107cmV0dXJuIG8ucHJlcGFyZUZuPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPUFycmF5LmlzQXJyYXkoZSk/ZS5sZW5ndGg6MCxpPW4uc2xpY2UoMCxhKSxvPTA7bzxpLmxlbmd0aDtvKyspe3ZhciB1PWlbb10saD10Ll9mdWxsRGF0YVt1XS5fbW9kdWxlO2lmKGgpe2lmKGguYW5pbWF0YWJsZSl7dmFyIGY9aC5iYXNlUGxvdE1vZHVsZS5uYW1lO3NbZl18fChzW2ZdPVtdKSxzW2ZdLnB1c2godSl9dC5kYXRhW2lbb11dPW0uZXh0ZW5kVHJhY2UodC5kYXRhW2lbb11dLGVbb10pfX12YXIgcD1sLmV4cGFuZE9iamVjdFBhdGhzKGwuZXh0ZW5kRGVlcE5vQXJyYXlzKHt9LHIpKSxkPS9eW3h5XWF4aXNbMC05XSokLztmb3IodmFyIGcgaW4gcClkLnRlc3QoZykmJmRlbGV0ZSBwW2ddLnJhbmdlO20uZXh0ZW5kTGF5b3V0KHQubGF5b3V0LHApLGRlbGV0ZSB0LmNhbGNkYXRhLG0uc3VwcGx5RGVmYXVsdHModCksbS5kb0NhbGNkYXRhKHQpO3ZhciB2PWwuZXhwYW5kT2JqZWN0UGF0aHMocik7aWYodil7dmFyIHk9dC5fZnVsbExheW91dC5fcGxvdHM7Zm9yKHZhciB4IGluIHkpe3ZhciBiPXlbeF0sXz1iLnhheGlzLHc9Yi55YXhpcyxrPV8ucmFuZ2Uuc2xpY2UoKSxUPXcucmFuZ2Uuc2xpY2UoKSxNPW51bGwsQT1udWxsLFM9bnVsbCxFPW51bGw7QXJyYXkuaXNBcnJheSh2W18uX25hbWUrIi5yYW5nZSJdKT9NPXZbXy5fbmFtZSsiLnJhbmdlIl0uc2xpY2UoKTpBcnJheS5pc0FycmF5KCh2W18uX25hbWVdfHx7fSkucmFuZ2UpJiYoTT12W18uX25hbWVdLnJhbmdlLnNsaWNlKCkpLEFycmF5LmlzQXJyYXkodlt3Ll9uYW1lKyIucmFuZ2UiXSk/QT12W3cuX25hbWUrIi5yYW5nZSJdLnNsaWNlKCk6QXJyYXkuaXNBcnJheSgodlt3Ll9uYW1lXXx8e30pLnJhbmdlKSYmKEE9dlt3Ll9uYW1lXS5yYW5nZS5zbGljZSgpKSxrJiZNJiYoXy5yMmwoa1swXSkhPT1fLnIybChNWzBdKXx8Xy5yMmwoa1sxXSkhPT1fLnIybChNWzFdKSkmJihTPXt4cjA6ayx4cjE6TX0pLFQmJkEmJih3LnIybChUWzBdKSE9PXcucjJsKEFbMF0pfHx3LnIybChUWzFdKSE9PXcucjJsKEFbMV0pKSYmKEU9e3lyMDpULHlyMTpBfSksKFN8fEUpJiZjLnB1c2gobC5leHRlbmRGbGF0KHtwbG90aW5mbzpifSxTLEUpKX19cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpfSxvLnJ1bkZuPWZ1bmN0aW9uKGUpe3ZhciBuLGEsbz10Ll9mdWxsTGF5b3V0Ll9iYXNlUGxvdE1vZHVsZXMsdT1jLmxlbmd0aDtpZihyKWZvcihhPTA7YTxvLmxlbmd0aDthKyspb1thXS50cmFuc2l0aW9uQXhlcyYmb1thXS50cmFuc2l0aW9uQXhlcyh0LGMsaSxlKTtmb3IodmFyIGggaW4gdT8oKG49bC5leHRlbmRGbGF0KHt9LGkpKS5kdXJhdGlvbj0wLGRlbGV0ZSBzLmNhcnRlc2lhbik6bj1pLHMpe3ZhciBmPXNbaF07dC5fZnVsbERhdGFbZlswXV0uX21vZHVsZS5iYXNlUGxvdE1vZHVsZS5wbG90KHQsZixuLGUpfX0sRSh0LGksbyl9LG0udHJhbnNpdGlvbkZyb21SZWFjdD1mdW5jdGlvbih0LGUscixuKXt2YXIgYT10Ll9mdWxsTGF5b3V0LGk9YS50cmFuc2l0aW9uLG89e30scz1bXTtyZXR1cm4gby5wcmVwYXJlRm49ZnVuY3Rpb24oKXt2YXIgdD1hLl9wbG90cztmb3IodmFyIGkgaW4gby5yZWRyYXc9ITEsInNvbWUiPT09ZS5hbmltJiYoby5yZWRyYXc9ITApLCJzb21lIj09PXIuYW5pbSYmKG8ucmVkcmF3PSEwKSx0KXt2YXIgYz10W2ldLHU9Yy54YXhpcyxoPWMueWF4aXMsZj1uW3UuX25hbWVdLnJhbmdlLnNsaWNlKCkscD1uW2guX25hbWVdLnJhbmdlLnNsaWNlKCksZD11LnJhbmdlLnNsaWNlKCksZz1oLnJhbmdlLnNsaWNlKCk7dS5zZXRTY2FsZSgpLGguc2V0U2NhbGUoKTt2YXIgdj1udWxsLG09bnVsbDt1LnIybChmWzBdKT09PXUucjJsKGRbMF0pJiZ1LnIybChmWzFdKT09PXUucjJsKGRbMV0pfHwodj17eHIwOmYseHIxOmR9KSxoLnIybChwWzBdKT09PWgucjJsKGdbMF0pJiZoLnIybChwWzFdKT09PWgucjJsKGdbMV0pfHwobT17eXIwOnAseXIxOmd9KSwodnx8bSkmJnMucHVzaChsLmV4dGVuZEZsYXQoe3Bsb3RpbmZvOmN9LHYsbSkpfXJldHVybiBQcm9taXNlLnJlc29sdmUoKX0sby5ydW5Gbj1mdW5jdGlvbihyKXtmb3IodmFyIG4sYSxvLGM9dC5fZnVsbERhdGEsdT10Ll9mdWxsTGF5b3V0Ll9iYXNlUGxvdE1vZHVsZXMsaD1bXSxmPTA7ZjxjLmxlbmd0aDtmKyspaC5wdXNoKGYpO2Z1bmN0aW9uIHAoKXtmb3IodmFyIGU9MDtlPHUubGVuZ3RoO2UrKyl1W2VdLnRyYW5zaXRpb25BeGVzJiZ1W2VdLnRyYW5zaXRpb25BeGVzKHQscyxuLHIpfWZ1bmN0aW9uIGQoKXtmb3IodmFyIGU9MDtlPHUubGVuZ3RoO2UrKyl1W2VdLnBsb3QodCxvLGEscil9cy5sZW5ndGgmJmUuYW5pbT8idHJhY2VzIGZpcnN0Ij09PWkub3JkZXJpbmc/KG49bC5leHRlbmRGbGF0KHt9LGkse2R1cmF0aW9uOjB9KSxvPWgsYT1pLHNldFRpbWVvdXQocCxpLmR1cmF0aW9uKSxkKCkpOihuPWksbz1udWxsLGE9bC5leHRlbmRGbGF0KHt9LGkse2R1cmF0aW9uOjB9KSxzZXRUaW1lb3V0KGQsbi5kdXJhdGlvbikscCgpKTpzLmxlbmd0aD8obj1pLHAoKSk6ZS5hbmltJiYobz1oLGE9aSxkKCkpfSxFKHQsaSxvKX0sbS5kb0NhbGNkYXRhPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixhLHMsYz1oLmxpc3QodCksZj10Ll9mdWxsRGF0YSxwPXQuX2Z1bGxMYXlvdXQsZD1uZXcgQXJyYXkoZi5sZW5ndGgpLGc9KHQuY2FsY2RhdGF8fFtdKS5zbGljZSgpO2Zvcih0LmNhbGNkYXRhPWQscC5fbnVtQm94ZXM9MCxwLl9udW1WaW9saW5zPTAscC5fdmlvbGluU2NhbGVHcm91cFN0YXRzPXt9LHQuX2htcGl4Y291bnQ9MCx0Ll9obWx1bWNvdW50PTAscC5fcGllY29sb3JtYXA9e30scC5fc3VuYnVyc3Rjb2xvcm1hcD17fSxwLl90cmVlbWFwY29sb3JtYXA9e30scC5fZnVubmVsYXJlYWNvbG9ybWFwPXt9LGE9MDthPGYubGVuZ3RoO2ErKylBcnJheS5pc0FycmF5KGUpJiYtMT09PWUuaW5kZXhPZihhKSYmKGRbYV09Z1thXSk7Zm9yKGE9MDthPGYubGVuZ3RoO2ErKykocj1mW2FdKS5fYXJyYXlBdHRycz1vLmZpbmRBcnJheUF0dHJpYnV0ZXMociksci5fZXh0cmVtZXM9e307dmFyIHY9cC5fc3VicGxvdHMucG9sYXJ8fFtdO2ZvcihhPTA7YTx2Lmxlbmd0aDthKyspYy5wdXNoKHBbdlthXV0ucmFkaWFsYXhpcyxwW3ZbYV1dLmFuZ3VsYXJheGlzKTtmb3IodmFyIG0gaW4gcC5fY29sb3JBeGVzKXt2YXIgeD1wW21dOyExIT09eC5jYXV0byYmKGRlbGV0ZSB4LmNtaW4sZGVsZXRlIHguY21heCl9dmFyIGI9ITE7ZnVuY3Rpb24gXyhlKXtpZihyPWZbZV0sbj1yLl9tb2R1bGUsITA9PT1yLnZpc2libGUmJnIudHJhbnNmb3Jtcyl7aWYobiYmbi5jYWxjKXt2YXIgYT1uLmNhbGModCxyKTthWzBdJiZhWzBdLnQmJmFbMF0udC5fc2NlbmUmJmRlbGV0ZSBhWzBdLnQuX3NjZW5lLmRpcnR5fWZvcihzPTA7czxyLnRyYW5zZm9ybXMubGVuZ3RoO3MrKyl7dmFyIGk9ci50cmFuc2Zvcm1zW3NdOyhuPXlbaS50eXBlXSkmJm4uY2FsY1RyYW5zZm9ybSYmKHIuX2hhc0NhbGNUcmFuc2Zvcm09ITAsYj0hMCxuLmNhbGNUcmFuc2Zvcm0odCxyLGkpKX19fWZ1bmN0aW9uIHcoZSxhKXtpZihyPWZbZV0sISEobj1yLl9tb2R1bGUpLmlzQ29udGFpbmVyPT09YSl7dmFyIGk9W107aWYoITA9PT1yLnZpc2libGUmJjAhPT1yLl9sZW5ndGgpe2RlbGV0ZSByLl9pbmRleFRvUG9pbnRzO3ZhciBvPXIudHJhbnNmb3Jtc3x8W107Zm9yKHM9by5sZW5ndGgtMTtzPj0wO3MtLSlpZihvW3NdLmVuYWJsZWQpe3IuX2luZGV4VG9Qb2ludHM9b1tzXS5faW5kZXhUb1BvaW50czticmVha31uJiZuLmNhbGMmJihpPW4uY2FsYyh0LHIpKX1BcnJheS5pc0FycmF5KGkpJiZpWzBdfHwoaT1be3g6dSx5OnV9XSksaVswXS50fHwoaVswXS50PXt9KSxpWzBdLnRyYWNlPXIsZFtlXT1pfX1mb3IoQyhjLGYscCksYT0wO2E8Zi5sZW5ndGg7YSsrKXcoYSwhMCk7Zm9yKGE9MDthPGYubGVuZ3RoO2ErKylfKGEpO2ZvcihiJiZDKGMsZixwKSxhPTA7YTxmLmxlbmd0aDthKyspdyhhLCEwKTtmb3IoYT0wO2E8Zi5sZW5ndGg7YSsrKXcoYSwhMSk7UCh0KTt2YXIgaz1mdW5jdGlvbih0LGUpe3ZhciByLG4sYSxvLHMsYz1bXTtmdW5jdGlvbiB1KHQscixuKXt2YXIgYT1yLl9pZC5jaGFyQXQoMCk7aWYoImhpc3RvZ3JhbTJkY29udG91ciI9PT10KXt2YXIgaT1yLl9jb3VudGVyQXhlc1swXSxvPWguZ2V0RnJvbUlkKGUsaSkscz0ieCI9PT1hfHwieCI9PT1pJiYiY2F0ZWdvcnkiPT09by50eXBlLGw9InkiPT09YXx8InkiPT09aSYmImNhdGVnb3J5Ij09PW8udHlwZTtyZXR1cm4gZnVuY3Rpb24odCxlKXtyZXR1cm4gMD09PXR8fDA9PT1lPy0xOnMmJnQ9PT1uW2VdLmxlbmd0aC0xPy0xOmwmJmU9PT1uLmxlbmd0aC0xPy0xOigieSI9PT1hP2U6dCktMX19cmV0dXJuIGZ1bmN0aW9uKHQsZSl7cmV0dXJuInkiPT09YT9lOnR9fXZhciBmPXttaW46ZnVuY3Rpb24odCl7cmV0dXJuIGwuYWdnTnVtcyhNYXRoLm1pbixudWxsLHQpfSxtYXg6ZnVuY3Rpb24odCl7cmV0dXJuIGwuYWdnTnVtcyhNYXRoLm1heCxudWxsLHQpfSxzdW06ZnVuY3Rpb24odCl7cmV0dXJuIGwuYWdnTnVtcyhmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9LG51bGwsdCl9LHRvdGFsOmZ1bmN0aW9uKHQpe3JldHVybiBsLmFnZ051bXMoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSxudWxsLHQpfSxtZWFuOmZ1bmN0aW9uKHQpe3JldHVybiBsLm1lYW4odCl9LG1lZGlhbjpmdW5jdGlvbih0KXtyZXR1cm4gbC5tZWRpYW4odCl9fTtmb3Iocj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgcD10W3JdO2lmKCJjYXRlZ29yeSI9PT1wLnR5cGUpe3ZhciBkPXAuY2F0ZWdvcnlvcmRlci5tYXRjaChMKTtpZihkKXt2YXIgZz1kWzFdLHY9ZFsyXSxtPVtdO2ZvcihuPTA7bjxwLl9jYXRlZ29yaWVzLmxlbmd0aDtuKyspbS5wdXNoKFtwLl9jYXRlZ29yaWVzW25dLFtdXSk7Zm9yKG49MDtuPHAuX3RyYWNlSW5kaWNlcy5sZW5ndGg7bisrKXt2YXIgeT1wLl90cmFjZUluZGljZXNbbl0seD1lLl9mdWxsRGF0YVt5XSxiPXAuX2lkLmNoYXJBdCgwKTtpZighMD09PXgudmlzaWJsZSl7dmFyIF89eC50eXBlO2kudHJhY2VJcyh4LCJoaXN0b2dyYW0iKSYmKGRlbGV0ZSB4Ll94YXV0b0JpbkZpbmlzaGVkLGRlbGV0ZSB4Ll95YXV0b0JpbkZpbmlzaGVkKTt2YXIgdz1lLmNhbGNkYXRhW3ldO2ZvcihhPTA7YTx3Lmxlbmd0aDthKyspe3ZhciBrLFQsTSxBPXdbYV07aWYoInNwbG9tIj09PV8pe3ZhciBTPXguX2F4ZXNEaW1bcC5faWRdO2lmKCJ5Ij09PWIpe3ZhciBFPXguX2RpYWdbU11bMF07RSYmKHA9ZS5fZnVsbExheW91dFtoLmlkMm5hbWUoRSldKX12YXIgQz1BLnRyYWNlLmRpbWVuc2lvbnNbU10udmFsdWVzO2ZvcihvPTA7bzxDLmxlbmd0aDtvKyspZm9yKGs9Q1tvXSxUPXAuX2NhdGVnb3JpZXNNYXBba10scz0wO3M8QS50cmFjZS5kaW1lbnNpb25zLmxlbmd0aDtzKyspaWYocyE9PVMpe3ZhciBQPUEudHJhY2UuZGltZW5zaW9uc1tzXTttW1RdWzFdLnB1c2goUC52YWx1ZXNbb10pfX1lbHNlIGlmKCJzY2F0dGVyZ2wiPT09Xyl7Zm9yKG89MDtvPEEudC54Lmxlbmd0aDtvKyspIngiPT09YiYmKGs9QS50Lnhbb10sVD1rLE09QS50Lnlbb10pLCJ5Ij09PWImJihrPUEudC55W29dLFQ9ayxNPUEudC54W29dKSxtW1RdWzFdLnB1c2goTSk7QS50JiZBLnQuX3NjZW5lJiZkZWxldGUgQS50Ll9zY2VuZS5kaXJ0eX1lbHNlIGlmKEEuaGFzT3duUHJvcGVydHkoInoiKSl7TT1BLno7dmFyIE89dSh4LnR5cGUscCxNKTtmb3Iobz0wO288TS5sZW5ndGg7bysrKWZvcihzPTA7czxNW29dLmxlbmd0aDtzKyspKFQ9TyhzLG8pKSsxJiZtW1RdWzFdLnB1c2goTVtvXVtzXSl9ZWxzZSBmb3IoIngiPT09Yj8oaz1BLnArMT9BLnA6QS54LE09QS5zfHxBLnZ8fEEueSk6InkiPT09YiYmKGs9QS5wKzE/QS5wOkEueSxNPUEuc3x8QS52fHxBLngpLEFycmF5LmlzQXJyYXkoTSl8fChNPVtNXSksbz0wO288TS5sZW5ndGg7bysrKW1ba11bMV0ucHVzaChNW29dKX19fXAuX2NhdGVnb3JpZXNWYWx1ZT1tO3ZhciB6PVtdO2ZvcihuPTA7bjxtLmxlbmd0aDtuKyspei5wdXNoKFttW25dWzBdLGZbZ10obVtuXVsxXSldKTt6LnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdFsxXS1lWzFdfSkscC5fY2F0ZWdvcmllc0FnZ3JlZ2F0ZWRWYWx1ZT16LHAuX2luaXRpYWxDYXRlZ29yaWVzPXoubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdfSksImRlc2NlbmRpbmciPT09diYmcC5faW5pdGlhbENhdGVnb3JpZXMucmV2ZXJzZSgpLGM9Yy5jb25jYXQocC5zb3J0QnlJbml0aWFsQ2F0ZWdvcmllcygpKX19fXJldHVybiBjfShjLHQpO2lmKGsubGVuZ3RoKXtmb3IocC5fbnVtQm94ZXM9MCxwLl9udW1WaW9saW5zPTAsYT0wO2E8ay5sZW5ndGg7YSsrKXcoa1thXSwhMCk7Zm9yKGE9MDthPGsubGVuZ3RoO2ErKyl3KGtbYV0sITEpO1AodCl9aS5nZXRDb21wb25lbnRNZXRob2QoImZ4IiwiY2FsYyIpKHQpLGkuZ2V0Q29tcG9uZW50TWV0aG9kKCJlcnJvcmJhcnMiLCJjYWxjIikodCl9O3ZhciBMPS8odG90YWx8c3VtfG1pbnxtYXh8bWVhbnxtZWRpYW4pIChhc2NlbmRpbmd8ZGVzY2VuZGluZykvO2Z1bmN0aW9uIEModCxlLHIpe3ZhciBuLGEsaSxvPXt9O2ZvcihuPTA7bjx0Lmxlbmd0aDtuKyspaT0oYT10W25dKS5faWQsYS5jbGVhckNhbGMoKSwibXVsdGljYXRlZ29yeSI9PT1hLnR5cGUmJmEuc2V0dXBNdWx0aUNhdGVnb3J5KGUpLG9bYS5faWRdPTE7dmFyIHM9ci5fYXhpc01hdGNoR3JvdXBzfHxbXTtmb3Iobj0wO248cy5sZW5ndGg7bisrKWZvcihpIGluIHNbbl0pb1tpXXx8KGE9cltoLmlkMm5hbWUoaSldKS5jbGVhckNhbGMoKX1mdW5jdGlvbiBQKHQpe3ZhciBlLHIsbixhPXQuX2Z1bGxMYXlvdXQsaT1hLl92aXNpYmxlTW9kdWxlcyxvPXt9O2ZvcihyPTA7cjxpLmxlbmd0aDtyKyspe3ZhciBzPWlbcl0sYz1zLmNyb3NzVHJhY2VDYWxjO2lmKGMpe3ZhciB1PXMuYmFzZVBsb3RNb2R1bGUubmFtZTtvW3VdP2wucHVzaFVuaXF1ZShvW3VdLGMpOm9bdV09W2NdfX1mb3IobiBpbiBvKXt2YXIgaD1vW25dLGY9YS5fc3VicGxvdHNbbl07aWYoQXJyYXkuaXNBcnJheShmKSlmb3IoZT0wO2U8Zi5sZW5ndGg7ZSsrKXt2YXIgcD1mW2VdLGQ9ImNhcnRlc2lhbiI9PT1uP2EuX3Bsb3RzW3BdOmFbcF07Zm9yKHI9MDtyPGgubGVuZ3RoO3IrKyloW3JdKHQsZCxwKX1lbHNlIGZvcihyPTA7cjxoLmxlbmd0aDtyKyspaFtyXSh0KX19bS5yZWhvdmVyPWZ1bmN0aW9uKHQpe3QuX2Z1bGxMYXlvdXQuX3JlaG92ZXImJnQuX2Z1bGxMYXlvdXQuX3JlaG92ZXIoKX0sbS5yZWRyYWc9ZnVuY3Rpb24odCl7dC5fZnVsbExheW91dC5fcmVkcmFnJiZ0Ll9mdWxsTGF5b3V0Ll9yZWRyYWcoKX0sbS5nZW5lcmFsVXBkYXRlUGVyVHJhY2VNb2R1bGU9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGEsaT1lLnRyYWNlSGFzaCxvPXt9O2ZvcihhPTA7YTxyLmxlbmd0aDthKyspe3ZhciBzPXJbYV0sYz1zWzBdLnRyYWNlO2MudmlzaWJsZSYmKG9bYy50eXBlXT1vW2MudHlwZV18fFtdLG9bYy50eXBlXS5wdXNoKHMpKX1mb3IodmFyIHUgaW4gaSlpZighb1t1XSl7dmFyIGg9aVt1XVswXTtoWzBdLnRyYWNlLnZpc2libGU9ITEsb1t1XT1baF19Zm9yKHZhciBmIGluIG8pe3ZhciBwPW9bZl07cFswXVswXS50cmFjZS5fbW9kdWxlLnBsb3QodCxlLGwuZmlsdGVyVmlzaWJsZShwKSxuKX1lLnRyYWNlSGFzaD1vfSxtLnBsb3RCYXNlUGxvdD1mdW5jdGlvbih0LGUscixuLGEpe3ZhciBvPWkuZ2V0TW9kdWxlKHQpLHM9ZChlLmNhbGNkYXRhLG8pWzBdO28ucGxvdChlLHMsbixhKX0sbS5jbGVhbkJhc2VQbG90PWZ1bmN0aW9uKHQsZSxyLG4sYSl7dmFyIGk9YS5faGFzJiZhLl9oYXModCksbz1yLl9oYXMmJnIuX2hhcyh0KTtpJiYhbyYmYVsiXyIrdCsibGF5ZXIiXS5zZWxlY3RBbGwoImcudHJhY2UiKS5yZW1vdmUoKX19LHsiLi4vY29tcG9uZW50cy9jb2xvciI6NTkyLCIuLi9jb25zdGFudHMvbnVtZXJpY2FsIjo2OTMsIi4uL2xpYiI6NzE3LCIuLi9wbG90X2FwaS9wbG90X3NjaGVtYSI6NzU0LCIuLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo3NTUsIi4uL3Bsb3RzL2dldF9kYXRhIjo4MDAsIi4uL3JlZ2lzdHJ5Ijo4NDYsIi4vYW5pbWF0aW9uX2F0dHJpYnV0ZXMiOjc2MCwiLi9hdHRyaWJ1dGVzIjo3NjIsIi4vY2FydGVzaWFuL2F4aXNfaWRzIjo3NjgsIi4vY29tbWFuZCI6Nzg5LCIuL2ZvbnRfYXR0cmlidXRlcyI6NzkxLCIuL2ZyYW1lX2F0dHJpYnV0ZXMiOjc5MiwiLi9sYXlvdXRfYXR0cmlidXRlcyI6ODE3LGQzOjE2NSwiZmFzdC1pc251bWVyaWMiOjIyOH1dLDgyNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHI6InN1YnBsb3QiLG5hbWU6InBvbGFyIixheGlzTmFtZXM6WyJhbmd1bGFyYXhpcyIsInJhZGlhbGF4aXMiXSxheGlzTmFtZTJkYXRhQXJyYXk6e2FuZ3VsYXJheGlzOiJ0aGV0YSIscmFkaWFsYXhpczoiciJ9LGxheWVyTmFtZXM6WyJkcmFnbGF5ZXIiLCJwbG90YmciLCJiYWNrcGxvdCIsImFuZ3VsYXItZ3JpZCIsInJhZGlhbC1ncmlkIiwiZnJvbnRwbG90IiwiYW5ndWxhci1saW5lIiwicmFkaWFsLWxpbmUiLCJhbmd1bGFyLWF4aXMiLCJyYWRpYWwtYXhpcyJdLHJhZGlhbERyYWdCb3hTaXplOjUwLGFuZ3VsYXJEcmFnQm94U2l6ZTozMCxjb3JuZXJMZW46MjUsY29ybmVySGFsZldpZHRoOjIsTUlORFJBRzo4LE1JTlpPT006MjAsT0ZGRURHRToyMH19LHt9XSw4Mjg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9saWIvcG9seWdvbiIpLnRlc3RlcixpPW4uZmluZEluZGV4T2ZNaW4sbz1uLmlzQW5nbGVJbnNpZGVTZWN0b3Iscz1uLmFuZ2xlRGVsdGEsbD1uLmFuZ2xlRGlzdDtmdW5jdGlvbiBjKHQsZSxyLG4pe3ZhciBhLGksbz1uWzBdLHM9blsxXSxsPWgoTWF0aC5zaW4oZSktTWF0aC5zaW4odCkpLGM9aChNYXRoLmNvcyhlKS1NYXRoLmNvcyh0KSksdT1NYXRoLnRhbihyKSxmPWgoMS91KSxwPWwvYyxkPXMtcCpvO3JldHVybiBmP2wmJmM/aT11KihhPWQvKHUtcCkpOmM/KGE9cypmLGk9cyk6KGE9byxpPW8qdSk6bCYmYz8oYT0wLGk9ZCk6Yz8oYT0wLGk9cyk6YT1pPU5hTixbYSxpXX1mdW5jdGlvbiB1KHQsZSxyLGEpe3JldHVybiBuLmlzRnVsbENpcmNsZShbZSxyXSk/ZnVuY3Rpb24odCxlKXt2YXIgcixuPWUubGVuZ3RoLGE9bmV3IEFycmF5KG4rMSk7Zm9yKHI9MDtyPG47cisrKXt2YXIgaT1lW3JdO2Fbcl09W3QqTWF0aC5jb3MoaSksdCpNYXRoLnNpbihpKV19cmV0dXJuIGFbcl09YVswXS5zbGljZSgpLGF9KHQsYSk6ZnVuY3Rpb24odCxlLHIsYSl7dmFyIHMsdSxoPWEubGVuZ3RoLGY9W107ZnVuY3Rpb24gcChlKXtyZXR1cm5bdCpNYXRoLmNvcyhlKSx0Kk1hdGguc2luKGUpXX1mdW5jdGlvbiBkKHQsZSxyKXtyZXR1cm4gYyh0LGUscixwKHQpKX1mdW5jdGlvbiBnKHQpe3JldHVybiBuLm1vZCh0LGgpfWZ1bmN0aW9uIHYodCl7cmV0dXJuIG8odCxbZSxyXSl9dmFyIG09aShhLGZ1bmN0aW9uKHQpe3JldHVybiB2KHQpP2wodCxlKToxLzB9KSx5PWQoYVttXSxhW2cobS0xKV0sZSk7Zm9yKGYucHVzaCh5KSxzPW0sdT0wO3U8aDtzKyssdSsrKXt2YXIgeD1hW2cocyldO2lmKCF2KHgpKWJyZWFrO2YucHVzaChwKHgpKX12YXIgYj1pKGEsZnVuY3Rpb24odCl7cmV0dXJuIHYodCk/bCh0LHIpOjEvMH0pLF89ZChhW2JdLGFbZyhiKzEpXSxyKTtyZXR1cm4gZi5wdXNoKF8pLGYucHVzaChbMCwwXSksZi5wdXNoKGZbMF0uc2xpY2UoKSksZn0odCxlLHIsYSl9ZnVuY3Rpb24gaCh0KXtyZXR1cm4gTWF0aC5hYnModCk+MWUtMTA/dDowfWZ1bmN0aW9uIGYodCxlLHIpe2U9ZXx8MCxyPXJ8fDA7Zm9yKHZhciBuPXQubGVuZ3RoLGE9bmV3IEFycmF5KG4pLGk9MDtpPG47aSsrKXt2YXIgbz10W2ldO2FbaV09W2Urb1swXSxyLW9bMV1dfXJldHVybiBhfWUuZXhwb3J0cz17aXNQdEluc2lkZVBvbHlnb246ZnVuY3Rpb24odCxlLHIsbixpKXtpZighbyhlLG4pKXJldHVybiExO3ZhciBzLGw7clswXTxyWzFdPyhzPXJbMF0sbD1yWzFdKToocz1yWzFdLGw9clswXSk7dmFyIGM9YSh1KHMsblswXSxuWzFdLGkpKSxoPWEodShsLG5bMF0sblsxXSxpKSksZj1bdCpNYXRoLmNvcyhlKSx0Kk1hdGguc2luKGUpXTtyZXR1cm4gaC5jb250YWlucyhmKSYmIWMuY29udGFpbnMoZil9LGZpbmRQb2x5Z29uT2Zmc2V0OmZ1bmN0aW9uKHQsZSxyLG4pe2Zvcih2YXIgYT0xLzAsaT0xLzAsbz11KHQsZSxyLG4pLHM9MDtzPG8ubGVuZ3RoO3MrKyl7dmFyIGw9b1tzXTthPU1hdGgubWluKGEsbFswXSksaT1NYXRoLm1pbihpLC1sWzFdKX1yZXR1cm5bYSxpXX0sZmluZEVuY2xvc2luZ1ZlcnRleEFuZ2xlczpmdW5jdGlvbih0LGUpe3ZhciByPWkoZSxmdW5jdGlvbihlKXt2YXIgcj1zKGUsdCk7cmV0dXJuIHI+MD9yOjEvMH0pLGE9bi5tb2QocisxLGUubGVuZ3RoKTtyZXR1cm5bZVtyXSxlW2FdXX0sZmluZEludGVyc2VjdGlvblhZOmMsZmluZFhZYXRMZW5ndGg6ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9LWUqcixpPWUqZSsxLG89MiooZSphLXIpLHM9YSphK3Iqci10KnQsbD1NYXRoLnNxcnQobypvLTQqaSpzKSxjPSgtbytsKS8oMippKSx1PSgtby1sKS8oMippKTtyZXR1cm5bW2MsZSpjK2Erbl0sW3UsZSp1K2Erbl1dfSxjbGFtcFRpbnk6aCxwYXRoUG9seWdvbjpmdW5jdGlvbih0LGUscixuLGEsaSl7cmV0dXJuIk0iK2YodSh0LGUscixuKSxhLGkpLmpvaW4oIkwiKX0scGF0aFBvbHlnb25Bbm51bHVzOmZ1bmN0aW9uKHQsZSxyLG4sYSxpLG8pe3ZhciBzLGw7dDxlPyhzPXQsbD1lKToocz1lLGw9dCk7dmFyIGM9Zih1KHMscixuLGEpLGksbyk7cmV0dXJuIk0iK2YodShsLHIsbixhKSxpLG8pLnJldmVyc2UoKS5qb2luKCJMIikrIk0iK2Muam9pbigiTCIpfX19LHsiLi4vLi4vbGliIjo3MTcsIi4uLy4uL2xpYi9wb2x5Z29uIjo3Mjl9XSw4Mjk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vZ2V0X2RhdGEiKS5nZXRTdWJwbG90Q2FsY0RhdGEsYT10KCIuLi8uLi9saWIiKS5jb3VudGVyUmVnZXgsaT10KCIuL3BvbGFyIiksbz10KCIuL2NvbnN0YW50cyIpLHM9by5hdHRyLGw9by5uYW1lLGM9YShsKSx1PXt9O3Vbc109e3ZhbFR5cGU6InN1YnBsb3RpZCIsZGZsdDpsLGVkaXRUeXBlOiJjYWxjIn0sZS5leHBvcnRzPXthdHRyOnMsbmFtZTpsLGlkUm9vdDpsLGlkUmVnZXg6YyxhdHRyUmVnZXg6YyxhdHRyaWJ1dGVzOnUsbGF5b3V0QXR0cmlidXRlczp0KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksc3VwcGx5TGF5b3V0RGVmYXVsdHM6dCgiLi9sYXlvdXRfZGVmYXVsdHMiKSxwbG90OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Ll9mdWxsTGF5b3V0LHI9dC5jYWxjZGF0YSxhPWUuX3N1YnBsb3RzW2xdLG89MDtvPGEubGVuZ3RoO28rKyl7dmFyIHM9YVtvXSxjPW4ocixsLHMpLHU9ZVtzXS5fc3VicGxvdDt1fHwodT1pKHQscyksZVtzXS5fc3VicGxvdD11KSx1LnBsb3QoYyxlLHQuX3Byb21pc2VzKX19LGNsZWFuOmZ1bmN0aW9uKHQsZSxyLG4pe2Zvcih2YXIgYT1uLl9zdWJwbG90c1tsXXx8W10saT1uLl9oYXMmJm4uX2hhcygiZ2wiKSxvPWUuX2hhcyYmZS5faGFzKCJnbCIpLHM9aSYmIW8sYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgdT1hW2NdLGg9blt1XS5fc3VicGxvdDtpZighZVt1XSYmaClmb3IodmFyIGYgaW4gaC5mcmFtZXdvcmsucmVtb3ZlKCksaC5sYXllcnNbInJhZGlhbC1heGlzLXRpdGxlIl0ucmVtb3ZlKCksaC5jbGlwUGF0aHMpaC5jbGlwUGF0aHNbZl0ucmVtb3ZlKCk7cyYmaC5fc2NlbmUmJihoLl9zY2VuZS5kZXN0cm95KCksaC5fc2NlbmU9bnVsbCl9fSx0b1NWRzp0KCIuLi9jYXJ0ZXNpYW4iKS50b1NWR319LHsiLi4vLi4vbGliIjo3MTcsIi4uL2NhcnRlc2lhbiI6Nzc2LCIuLi9nZXRfZGF0YSI6ODAwLCIuL2NvbnN0YW50cyI6ODI3LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo4MzAsIi4vbGF5b3V0X2RlZmF1bHRzIjo4MzEsIi4vcG9sYXIiOjgzOH1dLDgzMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiKSxhPXQoIi4uL2NhcnRlc2lhbi9sYXlvdXRfYXR0cmlidXRlcyIpLGk9dCgiLi4vZG9tYWluIikuYXR0cmlidXRlcyxvPXQoIi4uLy4uL2xpYiIpLmV4dGVuZEZsYXQscz10KCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIikub3ZlcnJpZGVBbGwsbD1zKHtjb2xvcjphLmNvbG9yLHNob3dsaW5lOm8oe30sYS5zaG93bGluZSx7ZGZsdDohMH0pLGxpbmVjb2xvcjphLmxpbmVjb2xvcixsaW5ld2lkdGg6YS5saW5ld2lkdGgsc2hvd2dyaWQ6byh7fSxhLnNob3dncmlkLHtkZmx0OiEwfSksZ3JpZGNvbG9yOmEuZ3JpZGNvbG9yLGdyaWR3aWR0aDphLmdyaWR3aWR0aH0sInBsb3QiLCJmcm9tLXJvb3QiKSxjPXMoe3RpY2ttb2RlOmEudGlja21vZGUsbnRpY2tzOmEubnRpY2tzLHRpY2swOmEudGljazAsZHRpY2s6YS5kdGljayx0aWNrdmFsczphLnRpY2t2YWxzLHRpY2t0ZXh0OmEudGlja3RleHQsdGlja3M6YS50aWNrcyx0aWNrbGVuOmEudGlja2xlbix0aWNrd2lkdGg6YS50aWNrd2lkdGgsdGlja2NvbG9yOmEudGlja2NvbG9yLHNob3d0aWNrbGFiZWxzOmEuc2hvd3RpY2tsYWJlbHMsc2hvd3RpY2twcmVmaXg6YS5zaG93dGlja3ByZWZpeCx0aWNrcHJlZml4OmEudGlja3ByZWZpeCxzaG93dGlja3N1ZmZpeDphLnNob3d0aWNrc3VmZml4LHRpY2tzdWZmaXg6YS50aWNrc3VmZml4LHNob3dleHBvbmVudDphLnNob3dleHBvbmVudCxleHBvbmVudGZvcm1hdDphLmV4cG9uZW50Zm9ybWF0LHNlcGFyYXRldGhvdXNhbmRzOmEuc2VwYXJhdGV0aG91c2FuZHMsdGlja2ZvbnQ6YS50aWNrZm9udCx0aWNrYW5nbGU6YS50aWNrYW5nbGUsdGlja2Zvcm1hdDphLnRpY2tmb3JtYXQsdGlja2Zvcm1hdHN0b3BzOmEudGlja2Zvcm1hdHN0b3BzLGxheWVyOmEubGF5ZXJ9LCJwbG90IiwiZnJvbS1yb290IiksdT17dmlzaWJsZTpvKHt9LGEudmlzaWJsZSx7ZGZsdDohMH0pLHR5cGU6byh7fSxhLnR5cGUse3ZhbHVlczpbIi0iLCJsaW5lYXIiLCJsb2ciLCJkYXRlIiwiY2F0ZWdvcnkiXX0pLGF1dG9yYW5nZTpvKHt9LGEuYXV0b3JhbmdlLHtlZGl0VHlwZToicGxvdCJ9KSxyYW5nZW1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInRvemVybyIsIm5vbm5lZ2F0aXZlIiwibm9ybWFsIl0sZGZsdDoidG96ZXJvIixlZGl0VHlwZToiY2FsYyJ9LHJhbmdlOm8oe30sYS5yYW5nZSx7aXRlbXM6W3t2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJwbG90IixpbXBsaWVkRWRpdHM6eyJeYXV0b3JhbmdlIjohMX19LHt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJwbG90IixpbXBsaWVkRWRpdHM6eyJeYXV0b3JhbmdlIjohMX19XSxlZGl0VHlwZToicGxvdCJ9KSxjYXRlZ29yeW9yZGVyOmEuY2F0ZWdvcnlvcmRlcixjYXRlZ29yeWFycmF5OmEuY2F0ZWdvcnlhcnJheSxhbmdsZTp7dmFsVHlwZToiYW5nbGUiLGVkaXRUeXBlOiJwbG90In0sc2lkZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiY2xvY2t3aXNlIiwiY291bnRlcmNsb2Nrd2lzZSJdLGRmbHQ6ImNsb2Nrd2lzZSIsZWRpdFR5cGU6InBsb3QifSx0aXRsZTp7dGV4dDpvKHt9LGEudGl0bGUudGV4dCx7ZWRpdFR5cGU6InBsb3QiLGRmbHQ6IiJ9KSxmb250Om8oe30sYS50aXRsZS5mb250LHtlZGl0VHlwZToicGxvdCJ9KSxlZGl0VHlwZToicGxvdCJ9LGhvdmVyZm9ybWF0OmEuaG92ZXJmb3JtYXQsdWlyZXZpc2lvbjp7dmFsVHlwZToiYW55IixlZGl0VHlwZToibm9uZSJ9LGVkaXRUeXBlOiJjYWxjIixfZGVwcmVjYXRlZDp7dGl0bGU6YS5fZGVwcmVjYXRlZC50aXRsZSx0aXRsZWZvbnQ6YS5fZGVwcmVjYXRlZC50aXRsZWZvbnR9fTtvKHUsbCxjKTt2YXIgaD17dmlzaWJsZTpvKHt9LGEudmlzaWJsZSx7ZGZsdDohMH0pLHR5cGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbIi0iLCJsaW5lYXIiLCJjYXRlZ29yeSJdLGRmbHQ6Ii0iLGVkaXRUeXBlOiJjYWxjIixfbm9UZW1wbGF0aW5nOiEwfSxjYXRlZ29yeW9yZGVyOmEuY2F0ZWdvcnlvcmRlcixjYXRlZ29yeWFycmF5OmEuY2F0ZWdvcnlhcnJheSx0aGV0YXVuaXQ6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInJhZGlhbnMiLCJkZWdyZWVzIl0sZGZsdDoiZGVncmVlcyIsZWRpdFR5cGU6ImNhbGMifSxwZXJpb2Q6e3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6ImNhbGMiLG1pbjowfSxkaXJlY3Rpb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImNvdW50ZXJjbG9ja3dpc2UiLCJjbG9ja3dpc2UiXSxkZmx0OiJjb3VudGVyY2xvY2t3aXNlIixlZGl0VHlwZToiY2FsYyJ9LHJvdGF0aW9uOnt2YWxUeXBlOiJhbmdsZSIsZWRpdFR5cGU6ImNhbGMifSxob3ZlcmZvcm1hdDphLmhvdmVyZm9ybWF0LHVpcmV2aXNpb246e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6Im5vbmUifSxlZGl0VHlwZToiY2FsYyJ9O28oaCxsLGMpLGUuZXhwb3J0cz17ZG9tYWluOmkoe25hbWU6InBvbGFyIixlZGl0VHlwZToicGxvdCJ9KSxzZWN0b3I6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGl0ZW1zOlt7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToicGxvdCJ9LHt2YWxUeXBlOiJudW1iZXIiLGVkaXRUeXBlOiJwbG90In1dLGRmbHQ6WzAsMzYwXSxlZGl0VHlwZToicGxvdCJ9LGhvbGU6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDowLGVkaXRUeXBlOiJwbG90In0sYmdjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJwbG90IixkZmx0Om4uYmFja2dyb3VuZH0scmFkaWFsYXhpczp1LGFuZ3VsYXJheGlzOmgsZ3JpZHNoYXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJjaXJjdWxhciIsImxpbmVhciJdLGRmbHQ6ImNpcmN1bGFyIixlZGl0VHlwZToicGxvdCJ9LHVpcmV2aXNpb246e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6Im5vbmUifSxlZGl0VHlwZToiY2FsYyJ9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyI6NTkxLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyI6NzQ4LCIuLi9jYXJ0ZXNpYW4vbGF5b3V0X2F0dHJpYnV0ZXMiOjc3NywiLi4vZG9tYWluIjo3OTB9XSw4MzE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksaT10KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIiksbz10KCIuLi9zdWJwbG90X2RlZmF1bHRzIikscz10KCIuLi9nZXRfZGF0YSIpLmdldFN1YnBsb3REYXRhLGw9dCgiLi4vY2FydGVzaWFuL3RpY2tfdmFsdWVfZGVmYXVsdHMiKSxjPXQoIi4uL2NhcnRlc2lhbi90aWNrX21hcmtfZGVmYXVsdHMiKSx1PXQoIi4uL2NhcnRlc2lhbi90aWNrX2xhYmVsX2RlZmF1bHRzIiksaD10KCIuLi9jYXJ0ZXNpYW4vY2F0ZWdvcnlfb3JkZXJfZGVmYXVsdHMiKSxmPXQoIi4uL2NhcnRlc2lhbi9saW5lX2dyaWRfZGVmYXVsdHMiKSxwPXQoIi4uL2NhcnRlc2lhbi9heGlzX2F1dG90eXBlIiksZD10KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksZz10KCIuL3NldF9jb252ZXJ0Iiksdj10KCIuL2NvbnN0YW50cyIpLG09di5heGlzTmFtZXM7ZnVuY3Rpb24geSh0LGUscixvKXt2YXIgcD1yKCJiZ2NvbG9yIik7by5iZ0NvbG9yPWEuY29tYmluZShwLG8ucGFwZXJfYmdjb2xvcik7dmFyIHk9cigic2VjdG9yIik7cigiaG9sZSIpO3ZhciBiLF89cyhvLmZ1bGxEYXRhLHYubmFtZSxvLmlkKSx3PW8ubGF5b3V0T3V0O2Z1bmN0aW9uIGsodCxlKXtyZXR1cm4gcihiKyIuIit0LGUpfWZvcih2YXIgVD0wO1Q8bS5sZW5ndGg7VCsrKXtiPW1bVF0sbi5pc1BsYWluT2JqZWN0KHRbYl0pfHwodFtiXT17fSk7dmFyIE09dFtiXSxBPWkubmV3Q29udGFpbmVyKGUsYik7QS5faWQ9QS5fbmFtZT1iLEEuX2F0dHI9by5pZCsiLiIrYixBLl90cmFjZUluZGljZXM9Xy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuX2V4cGFuZGVkSW5kZXh9KTt2YXIgUz12LmF4aXNOYW1lMmRhdGFBcnJheVtiXSxFPXgoTSxBLGssXyxTKTtoKE0sQSxrLHtheERhdGE6XyxkYXRhQXR0cjpTfSk7dmFyIEwsQyxQPWsoInZpc2libGUiKTtzd2l0Y2goZyhBLGUsdyksaygidWlyZXZpc2lvbiIsZS51aXJldmlzaW9uKSxQJiYoQz0oTD1rKCJjb2xvciIpKT09PU0uY29sb3I/TDpvLmZvbnQuY29sb3IpLEEuX209MSxiKXtjYXNlInJhZGlhbGF4aXMiOnZhciBPPWsoImF1dG9yYW5nZSIsIUEuaXNWYWxpZFJhbmdlKE0ucmFuZ2UpKTtNLmF1dG9yYW5nZT1PLCFPfHwibGluZWFyIiE9PUUmJiItIiE9PUV8fGsoInJhbmdlbW9kZSIpLCJyZXZlcnNlZCI9PT1PJiYoQS5fbT0tMSksaygicmFuZ2UiKSxBLmNsZWFuUmFuZ2UoInJhbmdlIix7ZGZsdFJhbmdlOlswLDFdfSksUCYmKGsoInNpZGUiKSxrKCJhbmdsZSIseVswXSksaygidGl0bGUudGV4dCIpLG4uY29lcmNlRm9udChrLCJ0aXRsZS5mb250Iix7ZmFtaWx5Om8uZm9udC5mYW1pbHksc2l6ZTpNYXRoLnJvdW5kKDEuMipvLmZvbnQuc2l6ZSksY29sb3I6Q30pKTticmVhaztjYXNlImFuZ3VsYXJheGlzIjppZigiZGF0ZSI9PT1FKXtuLmxvZygiUG9sYXIgcGxvdHMgZG8gbm90IHN1cHBvcnQgZGF0ZSBhbmd1bGFyIGF4ZXMgeWV0LiIpO2Zvcih2YXIgej0wO3o8Xy5sZW5ndGg7eisrKV9bel0udmlzaWJsZT0hMTtFPU0udHlwZT1BLnR5cGU9ImxpbmVhciJ9aygibGluZWFyIj09PUU/InRoZXRhdW5pdCI6InBlcmlvZCIpO3ZhciBJPWsoImRpcmVjdGlvbiIpO2soInJvdGF0aW9uIix7Y291bnRlcmNsb2Nrd2lzZTowLGNsb2Nrd2lzZTo5MH1bSV0pfWlmKFApbChNLEEsayxBLnR5cGUpLHUoTSxBLGssQS50eXBlLHt0aWNrU3VmZml4RGZsdDoiZGVncmVlcyI9PT1BLnRoZXRhdW5pdD8iXHhiMCI6dm9pZCAwfSksYyhNLEEsayx7b3V0ZXJUaWNrczohMH0pLGsoInNob3d0aWNrbGFiZWxzIikmJihuLmNvZXJjZUZvbnQoaywidGlja2ZvbnQiLHtmYW1pbHk6by5mb250LmZhbWlseSxzaXplOm8uZm9udC5zaXplLGNvbG9yOkN9KSxrKCJ0aWNrYW5nbGUiKSxrKCJ0aWNrZm9ybWF0IikpLGYoTSxBLGsse2RmbHRDb2xvcjpMLGJnQ29sb3I6by5iZ0NvbG9yLGJsZW5kOjYwLHNob3dMaW5lOiEwLHNob3dHcmlkOiEwLG5vWmVyb0xpbmU6ITAsYXR0cmlidXRlczpkW2JdfSksaygibGF5ZXIiKTsiY2F0ZWdvcnkiIT09RSYmaygiaG92ZXJmb3JtYXQiKSxBLl9pbnB1dD1NfSJjYXRlZ29yeSI9PT1lLmFuZ3VsYXJheGlzLnR5cGUmJnIoImdyaWRzaGFwZSIpfWZ1bmN0aW9uIHgodCxlLHIsbixhKXtpZigiLSI9PT1yKCJ0eXBlIikpe2Zvcih2YXIgaSxvPTA7bzxuLmxlbmd0aDtvKyspaWYobltvXS52aXNpYmxlKXtpPW5bb107YnJlYWt9aSYmaVthXSYmKGUudHlwZT1wKGlbYV0sImdyZWdvcmlhbiIpKSwiLSI9PT1lLnR5cGU/ZS50eXBlPSJsaW5lYXIiOnQudHlwZT1lLnR5cGV9cmV0dXJuIGUudHlwZX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe28odCxlLHIse3R5cGU6di5uYW1lLGF0dHJpYnV0ZXM6ZCxoYW5kbGVEZWZhdWx0czp5LGZvbnQ6ZS5mb250LHBhcGVyX2JnY29sb3I6ZS5wYXBlcl9iZ2NvbG9yLGZ1bGxEYXRhOnIsbGF5b3V0T3V0OmV9KX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTkyLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NzU1LCIuLi9jYXJ0ZXNpYW4vYXhpc19hdXRvdHlwZSI6NzY2LCIuLi9jYXJ0ZXNpYW4vY2F0ZWdvcnlfb3JkZXJfZGVmYXVsdHMiOjc2OSwiLi4vY2FydGVzaWFuL2xpbmVfZ3JpZF9kZWZhdWx0cyI6Nzc5LCIuLi9jYXJ0ZXNpYW4vdGlja19sYWJlbF9kZWZhdWx0cyI6Nzg0LCIuLi9jYXJ0ZXNpYW4vdGlja19tYXJrX2RlZmF1bHRzIjo3ODUsIi4uL2NhcnRlc2lhbi90aWNrX3ZhbHVlX2RlZmF1bHRzIjo3ODYsIi4uL2dldF9kYXRhIjo4MDAsIi4uL3N1YnBsb3RfZGVmYXVsdHMiOjg0MCwiLi9jb25zdGFudHMiOjgyNywiLi9sYXlvdXRfYXR0cmlidXRlcyI6ODMwLCIuL3NldF9jb252ZXJ0Ijo4Mzl9XSw4MzI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vLi4vdHJhY2VzL3NjYXR0ZXIvYXR0cmlidXRlcyIpLGE9bi5tYXJrZXIsaT10KCIuLi8uLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdDtbIkFyZWEgdHJhY2VzIGFyZSBkZXByZWNhdGVkISIsIlBsZWFzZSBzd2l0Y2ggdG8gdGhlICpiYXJwb2xhciogdHJhY2UgdHlwZS4iXS5qb2luKCIgIik7ZS5leHBvcnRzPXtyOmkoe30sbi5yLHt9KSx0Omkoe30sbi50LHt9KSxtYXJrZXI6e2NvbG9yOmkoe30sYS5jb2xvcix7fSksc2l6ZTppKHt9LGEuc2l6ZSx7fSksc3ltYm9sOmkoe30sYS5zeW1ib2wse30pLG9wYWNpdHk6aSh7fSxhLm9wYWNpdHkse30pLGVkaXRUeXBlOiJjYWxjIn19fSx7Ii4uLy4uLy4uL2xpYi9leHRlbmQiOjcwOCwiLi4vLi4vLi4vdHJhY2VzL3NjYXR0ZXIvYXR0cmlidXRlcyI6MTEyMH1dLDgzMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jYXJ0ZXNpYW4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LGk9dCgiLi4vLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyIpLm92ZXJyaWRlQWxsLG89WyJMZWdhY3kgcG9sYXIgY2hhcnRzIGFyZSBkZXByZWNhdGVkISIsIlBsZWFzZSBzd2l0Y2ggdG8gKnBvbGFyKiBzdWJwbG90cy4iXS5qb2luKCIgIikscz1hKHt9LG4uZG9tYWluLHt9KTtmdW5jdGlvbiBsKHQsZSl7cmV0dXJuIGEoe30sZSx7c2hvd2xpbmU6e3ZhbFR5cGU6ImJvb2xlYW4ifSxzaG93dGlja2xhYmVsczp7dmFsVHlwZToiYm9vbGVhbiJ9LHRpY2tvcmllbnRhdGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiaG9yaXpvbnRhbCIsInZlcnRpY2FsIl19LHRpY2tsZW46e3ZhbFR5cGU6Im51bWJlciIsbWluOjB9LHRpY2tjb2xvcjp7dmFsVHlwZToiY29sb3IifSx0aWNrc3VmZml4Ont2YWxUeXBlOiJzdHJpbmcifSxlbmRwYWRkaW5nOnt2YWxUeXBlOiJudW1iZXIiLGRlc2NyaXB0aW9uOm99LHZpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4ifX0pfWUuZXhwb3J0cz1pKHtyYWRpYWxheGlzOmwoMCx7cmFuZ2U6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGl0ZW1zOlt7dmFsVHlwZToibnVtYmVyIn0se3ZhbFR5cGU6Im51bWJlciJ9XX0sZG9tYWluOnMsb3JpZW50YXRpb246e3ZhbFR5cGU6Im51bWJlciJ9fSksYW5ndWxhcmF4aXM6bCgwLHtyYW5nZTp7dmFsVHlwZToiaW5mb19hcnJheSIsaXRlbXM6W3t2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MH0se3ZhbFR5cGU6Im51bWJlciIsZGZsdDozNjB9XX0sZG9tYWluOnN9KSxsYXlvdXQ6e2RpcmVjdGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiY2xvY2t3aXNlIiwiY291bnRlcmNsb2Nrd2lzZSJdfSxvcmllbnRhdGlvbjp7dmFsVHlwZToiYW5nbGUifX19LCJwbG90IiwibmVzdGVkIil9LHsiLi4vLi4vLi4vbGliL2V4dGVuZCI6NzA4LCIuLi8uLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIjo3NDgsIi4uLy4uL2NhcnRlc2lhbi9sYXlvdXRfYXR0cmlidXRlcyI6Nzc3fV0sODM0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiOyhlLmV4cG9ydHM9dCgiLi9taWNyb3BvbGFyIikpLm1hbmFnZXI9dCgiLi9taWNyb3BvbGFyX21hbmFnZXIiKX0seyIuL21pY3JvcG9sYXIiOjgzNSwiLi9taWNyb3BvbGFyX21hbmFnZXIiOjgzNn1dLDgzNTpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoImQzIiksYT10KCIuLi8uLi8uLi9saWIiKS5leHRlbmREZWVwQWxsLGk9dCgiLi4vLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCIpLk1JRF9TSElGVCxvPWUuZXhwb3J0cz17dmVyc2lvbjoiMC4yLjIifTtvLkF4aXM9ZnVuY3Rpb24oKXt2YXIgdCxlLHIscyxsPXtkYXRhOltdLGxheW91dDp7fX0sYz17fSx1PXt9LGg9bi5kaXNwYXRjaCgiaG92ZXIiKSxmPXt9O3JldHVybiBmLnJlbmRlcj1mdW5jdGlvbihjKXtyZXR1cm4gZnVuY3Rpb24oYyl7ZT1jfHxlO3ZhciBoPWwuZGF0YSxmPWwubGF5b3V0Oygic3RyaW5nIj09dHlwZW9mIGV8fGUubm9kZU5hbWUpJiYoZT1uLnNlbGVjdChlKSksZS5kYXR1bShoKS5lYWNoKGZ1bmN0aW9uKGUsbCl7dmFyIGM9ZS5zbGljZSgpO3U9e2RhdGE6by51dGlsLmNsb25lSnNvbihjKSxsYXlvdXQ6by51dGlsLmNsb25lSnNvbihmKX07dmFyIGg9MDtjLmZvckVhY2goZnVuY3Rpb24odCxlKXt0LmNvbG9yfHwodC5jb2xvcj1mLmRlZmF1bHRDb2xvclJhbmdlW2hdLGg9KGgrMSklZi5kZWZhdWx0Q29sb3JSYW5nZS5sZW5ndGgpLHQuc3Ryb2tlQ29sb3J8fCh0LnN0cm9rZUNvbG9yPSJMaW5lUGxvdCI9PT10Lmdlb21ldHJ5P3QuY29sb3I6bi5yZ2IodC5jb2xvcikuZGFya2VyKCkudG9TdHJpbmcoKSksdS5kYXRhW2VdLmNvbG9yPXQuY29sb3IsdS5kYXRhW2VdLnN0cm9rZUNvbG9yPXQuc3Ryb2tlQ29sb3IsdS5kYXRhW2VdLnN0cm9rZURhc2g9dC5zdHJva2VEYXNoLHUuZGF0YVtlXS5zdHJva2VTaXplPXQuc3Ryb2tlU2l6ZX0pO3ZhciBwPWMuZmlsdGVyKGZ1bmN0aW9uKHQsZSl7dmFyIHI9dC52aXNpYmxlO3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2Ygcnx8ITA9PT1yfSksZD0hMSxnPXAubWFwKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGQ9ZHx8InVuZGVmaW5lZCIhPXR5cGVvZiB0Lmdyb3VwSWQsdH0pO2lmKGQpe3ZhciB2PW4ubmVzdCgpLmtleShmdW5jdGlvbih0LGUpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgdC5ncm91cElkP3QuZ3JvdXBJZDoidW5zdGFja2VkIn0pLmVudHJpZXMoZyksbT1bXSx5PXYubWFwKGZ1bmN0aW9uKHQsZSl7aWYoInVuc3RhY2tlZCI9PT10LmtleSlyZXR1cm4gdC52YWx1ZXM7dmFyIHI9dC52YWx1ZXNbMF0uci5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm4gMH0pO3JldHVybiB0LnZhbHVlcy5mb3JFYWNoKGZ1bmN0aW9uKHQsZSxuKXt0LnlTdGFjaz1bcl0sbS5wdXNoKHIpLHI9by51dGlsLnN1bUFycmF5cyh0LnIscil9KSx0LnZhbHVlc30pO3A9bi5tZXJnZSh5KX1wLmZvckVhY2goZnVuY3Rpb24odCxlKXt0LnQ9QXJyYXkuaXNBcnJheSh0LnRbMF0pP3QudDpbdC50XSx0LnI9QXJyYXkuaXNBcnJheSh0LnJbMF0pP3QucjpbdC5yXX0pO3ZhciB4PU1hdGgubWluKGYud2lkdGgtZi5tYXJnaW4ubGVmdC1mLm1hcmdpbi5yaWdodCxmLmhlaWdodC1mLm1hcmdpbi50b3AtZi5tYXJnaW4uYm90dG9tKS8yO3g9TWF0aC5tYXgoMTAseCk7dmFyIGIsXz1bZi5tYXJnaW4ubGVmdCt4LGYubWFyZ2luLnRvcCt4XTtiPWQ/WzAsbi5tYXgoby51dGlsLnN1bUFycmF5cyhvLnV0aWwuYXJyYXlMYXN0KHApLnJbMF0sby51dGlsLmFycmF5TGFzdChtKSkpXTpuLmV4dGVudChvLnV0aWwuZmxhdHRlbkFycmF5KHAubWFwKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQucn0pKSksZi5yYWRpYWxBeGlzLmRvbWFpbiE9by5EQVRBRVhURU5UJiYoYlswXT0wKSxyPW4uc2NhbGUubGluZWFyKCkuZG9tYWluKGYucmFkaWFsQXhpcy5kb21haW4hPW8uREFUQUVYVEVOVCYmZi5yYWRpYWxBeGlzLmRvbWFpbj9mLnJhZGlhbEF4aXMuZG9tYWluOmIpLnJhbmdlKFswLHhdKSx1LmxheW91dC5yYWRpYWxBeGlzLmRvbWFpbj1yLmRvbWFpbigpO3ZhciB3LGs9by51dGlsLmZsYXR0ZW5BcnJheShwLm1hcChmdW5jdGlvbih0LGUpe3JldHVybiB0LnR9KSksVD0ic3RyaW5nIj09dHlwZW9mIGtbMF07VCYmKGs9by51dGlsLmRlZHVwbGljYXRlKGspLHc9ay5zbGljZSgpLGs9bi5yYW5nZShrLmxlbmd0aCkscD1wLm1hcChmdW5jdGlvbih0LGUpe3ZhciByPXQ7cmV0dXJuIHQudD1ba10sZCYmKHIueVN0YWNrPXQueVN0YWNrKSxyfSkpO3ZhciBNPXAuZmlsdGVyKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIkxpbmVQbG90Ij09PXQuZ2VvbWV0cnl8fCJEb3RQbG90Ij09PXQuZ2VvbWV0cnl9KS5sZW5ndGg9PT1wLmxlbmd0aCxBPW51bGw9PT1mLm5lZWRzRW5kU3BhY2luZz9UfHwhTTpmLm5lZWRzRW5kU3BhY2luZyxTPWYuYW5ndWxhckF4aXMuZG9tYWluJiZmLmFuZ3VsYXJBeGlzLmRvbWFpbiE9by5EQVRBRVhURU5UJiYhVCYmZi5hbmd1bGFyQXhpcy5kb21haW5bMF0+PTA/Zi5hbmd1bGFyQXhpcy5kb21haW46bi5leHRlbnQoayksRT1NYXRoLmFicyhrWzFdLWtbMF0pO00mJiFUJiYoRT0wKTt2YXIgTD1TLnNsaWNlKCk7QSYmVCYmKExbMV0rPUUpO3ZhciBDPWYuYW5ndWxhckF4aXMudGlja3NDb3VudHx8NDtDPjgmJihDPUMvKEMvOCkrQyU4KSxmLmFuZ3VsYXJBeGlzLnRpY2tzU3RlcCYmKEM9KExbMV0tTFswXSkvQyk7dmFyIFA9Zi5hbmd1bGFyQXhpcy50aWNrc1N0ZXB8fChMWzFdLUxbMF0pLyhDKihmLm1pbm9yVGlja3MrMSkpO3cmJihQPU1hdGgubWF4KE1hdGgucm91bmQoUCksMSkpLExbMl18fChMWzJdPVApO3ZhciBPPW4ucmFuZ2UuYXBwbHkodGhpcyxMKTtpZihPPU8ubWFwKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHBhcnNlRmxvYXQodC50b1ByZWNpc2lvbigxMikpfSkscz1uLnNjYWxlLmxpbmVhcigpLmRvbWFpbihMLnNsaWNlKDAsMikpLnJhbmdlKCJjbG9ja3dpc2UiPT09Zi5kaXJlY3Rpb24/WzAsMzYwXTpbMzYwLDBdKSx1LmxheW91dC5hbmd1bGFyQXhpcy5kb21haW49cy5kb21haW4oKSx1LmxheW91dC5hbmd1bGFyQXhpcy5lbmRQYWRkaW5nPUE/RTowLCJ1bmRlZmluZWQiPT10eXBlb2YodD1uLnNlbGVjdCh0aGlzKS5zZWxlY3QoInN2Zy5jaGFydC1yb290IikpfHx0LmVtcHR5KCkpe3ZhciB6PShuZXcgRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoIjxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBjbGFzcz0nY2hhcnQtcm9vdCc+JyArICc8ZyBjbGFzcz0nb3V0ZXItZ3JvdXAnPicgKyAnPGcgY2xhc3M9J2NoYXJ0LWdyb3VwJz4nICsgJzxjaXJjbGUgY2xhc3M9J2JhY2tncm91bmQtY2lyY2xlJz48L2NpcmNsZT4nICsgJzxnIGNsYXNzPSdnZW9tZXRyeS1ncm91cCc+PC9nPicgKyAnPGcgY2xhc3M9J3JhZGlhbCBheGlzLWdyb3VwJz4nICsgJzxjaXJjbGUgY2xhc3M9J291dHNpZGUtY2lyY2xlJz48L2NpcmNsZT4nICsgJzwvZz4nICsgJzxnIGNsYXNzPSdhbmd1bGFyIGF4aXMtZ3JvdXAnPjwvZz4nICsgJzxnIGNsYXNzPSdndWlkZXMtZ3JvdXAnPjxsaW5lPjwvbGluZT48Y2lyY2xlIHI9JzAnPjwvY2lyY2xlPjwvZz4nICsgJzwvZz4nICsgJzxnIGNsYXNzPSdsZWdlbmQtZ3JvdXAnPjwvZz4nICsgJzxnIGNsYXNzPSd0b29sdGlwcy1ncm91cCc+PC9nPicgKyAnPGcgY2xhc3M9J3RpdGxlLWdyb3VwJz48dGV4dD48L3RleHQ+PC9nPicgKyAnPC9nPicgKyAnPC9zdmc+IiwiYXBwbGljYXRpb24veG1sIiksST10aGlzLmFwcGVuZENoaWxkKHRoaXMub3duZXJEb2N1bWVudC5pbXBvcnROb2RlKHouZG9jdW1lbnRFbGVtZW50LCEwKSk7dD1uLnNlbGVjdChJKX10LnNlbGVjdCgiLmd1aWRlcy1ncm91cCIpLnN0eWxlKHsicG9pbnRlci1ldmVudHMiOiJub25lIn0pLHQuc2VsZWN0KCIuYW5ndWxhci5heGlzLWdyb3VwIikuc3R5bGUoeyJwb2ludGVyLWV2ZW50cyI6Im5vbmUifSksdC5zZWxlY3QoIi5yYWRpYWwuYXhpcy1ncm91cCIpLnN0eWxlKHsicG9pbnRlci1ldmVudHMiOiJub25lIn0pO3ZhciBELFI9dC5zZWxlY3QoIi5jaGFydC1ncm91cCIpLEY9e2ZpbGw6Im5vbmUiLHN0cm9rZTpmLnRpY2tDb2xvcn0sQj17ImZvbnQtc2l6ZSI6Zi5mb250LnNpemUsImZvbnQtZmFtaWx5IjpmLmZvbnQuZmFtaWx5LGZpbGw6Zi5mb250LmNvbG9yLCJ0ZXh0LXNoYWRvdyI6WyItMXB4IDBweCIsIjFweCAtMXB4IiwiLTFweCAxcHgiLCIxcHggMXB4Il0ubWFwKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIiAiK3QrIiAwICIrZi5mb250Lm91dGxpbmVDb2xvcn0pLmpvaW4oIiwiKX07aWYoZi5zaG93TGVnZW5kKXtEPXQuc2VsZWN0KCIubGVnZW5kLWdyb3VwIikuYXR0cih7dHJhbnNmb3JtOiJ0cmFuc2xhdGUoIitbeCxmLm1hcmdpbi50b3BdKyIpIn0pLnN0eWxlKHtkaXNwbGF5OiJibG9jayJ9KTt2YXIgTj1wLm1hcChmdW5jdGlvbih0LGUpe3ZhciByPW8udXRpbC5jbG9uZUpzb24odCk7cmV0dXJuIHIuc3ltYm9sPSJEb3RQbG90Ij09PXQuZ2VvbWV0cnk/dC5kb3RUeXBlfHwiY2lyY2xlIjoiTGluZVBsb3QiIT10Lmdlb21ldHJ5PyJzcXVhcmUiOiJsaW5lIixyLnZpc2libGVJbkxlZ2VuZD0idW5kZWZpbmVkIj09dHlwZW9mIHQudmlzaWJsZUluTGVnZW5kfHx0LnZpc2libGVJbkxlZ2VuZCxyLmNvbG9yPSJMaW5lUGxvdCI9PT10Lmdlb21ldHJ5P3Quc3Ryb2tlQ29sb3I6dC5jb2xvcixyfSk7by5MZWdlbmQoKS5jb25maWcoe2RhdGE6cC5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5uYW1lfHwiRWxlbWVudCIrZX0pLGxlZ2VuZENvbmZpZzphKHt9LG8uTGVnZW5kLmRlZmF1bHRDb25maWcoKS5sZWdlbmRDb25maWcse2NvbnRhaW5lcjpELGVsZW1lbnRzOk4scmV2ZXJzZU9yZGVyOmYubGVnZW5kLnJldmVyc2VPcmRlcn0pfSkoKTt2YXIgaj1ELm5vZGUoKS5nZXRCQm94KCk7eD1NYXRoLm1pbihmLndpZHRoLWoud2lkdGgtZi5tYXJnaW4ubGVmdC1mLm1hcmdpbi5yaWdodCxmLmhlaWdodC1mLm1hcmdpbi50b3AtZi5tYXJnaW4uYm90dG9tKS8yLHg9TWF0aC5tYXgoMTAseCksXz1bZi5tYXJnaW4ubGVmdCt4LGYubWFyZ2luLnRvcCt4XSxyLnJhbmdlKFswLHhdKSx1LmxheW91dC5yYWRpYWxBeGlzLmRvbWFpbj1yLmRvbWFpbigpLEQuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrW19bMF0reCxfWzFdLXhdKyIpIil9ZWxzZSBEPXQuc2VsZWN0KCIubGVnZW5kLWdyb3VwIikuc3R5bGUoe2Rpc3BsYXk6Im5vbmUifSk7dC5hdHRyKHt3aWR0aDpmLndpZHRoLGhlaWdodDpmLmhlaWdodH0pLnN0eWxlKHtvcGFjaXR5OmYub3BhY2l0eX0pLFIuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrXysiKSIpLnN0eWxlKHtjdXJzb3I6ImNyb3NzaGFpciJ9KTt2YXIgVj1bKGYud2lkdGgtKGYubWFyZ2luLmxlZnQrZi5tYXJnaW4ucmlnaHQrMip4KyhqP2oud2lkdGg6MCkpKS8yLChmLmhlaWdodC0oZi5tYXJnaW4udG9wK2YubWFyZ2luLmJvdHRvbSsyKngpKS8yXTtpZihWWzBdPU1hdGgubWF4KDAsVlswXSksVlsxXT1NYXRoLm1heCgwLFZbMV0pLHQuc2VsZWN0KCIub3V0ZXItZ3JvdXAiKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitWKyIpIiksZi50aXRsZSYmZi50aXRsZS50ZXh0KXt2YXIgVT10LnNlbGVjdCgiZy50aXRsZS1ncm91cCB0ZXh0Iikuc3R5bGUoQikudGV4dChmLnRpdGxlLnRleHQpLHE9VS5ub2RlKCkuZ2V0QkJveCgpO1UuYXR0cih7eDpfWzBdLXEud2lkdGgvMix5Ol9bMV0teC0yMH0pfXZhciBIPXQuc2VsZWN0KCIucmFkaWFsLmF4aXMtZ3JvdXAiKTtpZihmLnJhZGlhbEF4aXMuZ3JpZExpbmVzVmlzaWJsZSl7dmFyIEc9SC5zZWxlY3RBbGwoImNpcmNsZS5ncmlkLWNpcmNsZSIpLmRhdGEoci50aWNrcyg1KSk7Ry5lbnRlcigpLmFwcGVuZCgiY2lyY2xlIikuYXR0cih7Y2xhc3M6ImdyaWQtY2lyY2xlIn0pLnN0eWxlKEYpLEcuYXR0cigiciIsciksRy5leGl0KCkucmVtb3ZlKCl9SC5zZWxlY3QoImNpcmNsZS5vdXRzaWRlLWNpcmNsZSIpLmF0dHIoe3I6eH0pLnN0eWxlKEYpO3ZhciBZPXQuc2VsZWN0KCJjaXJjbGUuYmFja2dyb3VuZC1jaXJjbGUiKS5hdHRyKHtyOnh9KS5zdHlsZSh7ZmlsbDpmLmJhY2tncm91bmRDb2xvcixzdHJva2U6Zi5zdHJva2V9KTtmdW5jdGlvbiBXKHQsZSl7cmV0dXJuIHModCklMzYwK2Yub3JpZW50YXRpb259aWYoZi5yYWRpYWxBeGlzLnZpc2libGUpe3ZhciBYPW4uc3ZnLmF4aXMoKS5zY2FsZShyKS50aWNrcyg1KS50aWNrU2l6ZSg1KTtILmNhbGwoWCkuYXR0cih7dHJhbnNmb3JtOiJyb3RhdGUoIitmLnJhZGlhbEF4aXMub3JpZW50YXRpb24rIikifSksSC5zZWxlY3RBbGwoIi5kb21haW4iKS5zdHlsZShGKSxILnNlbGVjdEFsbCgiZz50ZXh0IikudGV4dChmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnRleHRDb250ZW50K2YucmFkaWFsQXhpcy50aWNrc1N1ZmZpeH0pLnN0eWxlKEIpLnN0eWxlKHsidGV4dC1hbmNob3IiOiJzdGFydCJ9KS5hdHRyKHt4OjAseTowLGR4OjAsZHk6MCx0cmFuc2Zvcm06ZnVuY3Rpb24odCxlKXtyZXR1cm4iaG9yaXpvbnRhbCI9PT1mLnJhZGlhbEF4aXMudGlja09yaWVudGF0aW9uPyJyb3RhdGUoIistZi5yYWRpYWxBeGlzLm9yaWVudGF0aW9uKyIpIHRyYW5zbGF0ZSgiK1swLEJbImZvbnQtc2l6ZSJdXSsiKSI6InRyYW5zbGF0ZSgiK1swLEJbImZvbnQtc2l6ZSJdXSsiKSJ9fSksSC5zZWxlY3RBbGwoImc+bGluZSIpLnN0eWxlKHtzdHJva2U6ImJsYWNrIn0pfXZhciBaPXQuc2VsZWN0KCIuYW5ndWxhci5heGlzLWdyb3VwIikuc2VsZWN0QWxsKCJnLmFuZ3VsYXItdGljayIpLmRhdGEoTyksSj1aLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgiYW5ndWxhci10aWNrIiwhMCk7Wi5hdHRyKHt0cmFuc2Zvcm06ZnVuY3Rpb24odCxlKXtyZXR1cm4icm90YXRlKCIrVyh0KSsiKSJ9fSkuc3R5bGUoe2Rpc3BsYXk6Zi5hbmd1bGFyQXhpcy52aXNpYmxlPyJibG9jayI6Im5vbmUifSksWi5leGl0KCkucmVtb3ZlKCksSi5hcHBlbmQoImxpbmUiKS5jbGFzc2VkKCJncmlkLWxpbmUiLCEwKS5jbGFzc2VkKCJtYWpvciIsZnVuY3Rpb24odCxlKXtyZXR1cm4gZSUoZi5taW5vclRpY2tzKzEpPT0wfSkuY2xhc3NlZCgibWlub3IiLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIShlJShmLm1pbm9yVGlja3MrMSk9PTApfSkuc3R5bGUoRiksSi5zZWxlY3RBbGwoIi5taW5vciIpLnN0eWxlKHtzdHJva2U6Zi5taW5vclRpY2tDb2xvcn0pLFouc2VsZWN0KCJsaW5lLmdyaWQtbGluZSIpLmF0dHIoe3gxOmYudGlja0xlbmd0aD94LWYudGlja0xlbmd0aDowLHgyOnh9KS5zdHlsZSh7ZGlzcGxheTpmLmFuZ3VsYXJBeGlzLmdyaWRMaW5lc1Zpc2libGU/ImJsb2NrIjoibm9uZSJ9KSxKLmFwcGVuZCgidGV4dCIpLmNsYXNzZWQoImF4aXMtdGV4dCIsITApLnN0eWxlKEIpO3ZhciBLPVouc2VsZWN0KCJ0ZXh0LmF4aXMtdGV4dCIpLmF0dHIoe3g6eCtmLmxhYmVsT2Zmc2V0LGR5OmkrImVtIix0cmFuc2Zvcm06ZnVuY3Rpb24odCxlKXt2YXIgcj1XKHQpLG49eCtmLmxhYmVsT2Zmc2V0LGE9Zi5hbmd1bGFyQXhpcy50aWNrT3JpZW50YXRpb247cmV0dXJuImhvcml6b250YWwiPT1hPyJyb3RhdGUoIistcisiICIrbisiIDApIjoicmFkaWFsIj09YT9yPDI3MCYmcj45MD8icm90YXRlKDE4MCAiK24rIiAwKSI6bnVsbDoicm90YXRlKCIrKHI8PTE4MCYmcj4wPy05MDo5MCkrIiAiK24rIiAwKSJ9fSkuc3R5bGUoeyJ0ZXh0LWFuY2hvciI6Im1pZGRsZSIsZGlzcGxheTpmLmFuZ3VsYXJBeGlzLmxhYmVsc1Zpc2libGU/ImJsb2NrIjoibm9uZSJ9KS50ZXh0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUlKGYubWlub3JUaWNrcysxKSE9MD8iIjp3P3dbdF0rZi5hbmd1bGFyQXhpcy50aWNrc1N1ZmZpeDp0K2YuYW5ndWxhckF4aXMudGlja3NTdWZmaXh9KS5zdHlsZShCKTtmLmFuZ3VsYXJBeGlzLnJld3JpdGVUaWNrcyYmSy50ZXh0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUlKGYubWlub3JUaWNrcysxKSE9MD8iIjpmLmFuZ3VsYXJBeGlzLnJld3JpdGVUaWNrcyh0aGlzLnRleHRDb250ZW50LGUpfSk7dmFyIFE9bi5tYXgoUi5zZWxlY3RBbGwoIi5hbmd1bGFyLXRpY2sgdGV4dCIpWzBdLm1hcChmdW5jdGlvbih0LGUpe3JldHVybiB0LmdldENUTSgpLmUrdC5nZXRCQm94KCkud2lkdGh9KSk7RC5hdHRyKHt0cmFuc2Zvcm06InRyYW5zbGF0ZSgiK1t4K1EsZi5tYXJnaW4udG9wXSsiKSJ9KTt2YXIgJD10LnNlbGVjdCgiZy5nZW9tZXRyeS1ncm91cCIpLnNlbGVjdEFsbCgiZyIpLnNpemUoKT4wLHR0PXQuc2VsZWN0KCJnLmdlb21ldHJ5LWdyb3VwIikuc2VsZWN0QWxsKCJnLmdlb21ldHJ5IikuZGF0YShwKTtpZih0dC5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoe2NsYXNzOmZ1bmN0aW9uKHQsZSl7cmV0dXJuImdlb21ldHJ5IGdlb21ldHJ5IitlfX0pLHR0LmV4aXQoKS5yZW1vdmUoKSxwWzBdfHwkKXt2YXIgZXQ9W107cC5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIG49e307bi5yYWRpYWxTY2FsZT1yLG4uYW5ndWxhclNjYWxlPXMsbi5jb250YWluZXI9dHQuZmlsdGVyKGZ1bmN0aW9uKHQscil7cmV0dXJuIHI9PWV9KSxuLmdlb21ldHJ5PXQuZ2VvbWV0cnksbi5vcmllbnRhdGlvbj1mLm9yaWVudGF0aW9uLG4uZGlyZWN0aW9uPWYuZGlyZWN0aW9uLG4uaW5kZXg9ZSxldC5wdXNoKHtkYXRhOnQsZ2VvbWV0cnlDb25maWc6bn0pfSk7dmFyIHJ0PW4ubmVzdCgpLmtleShmdW5jdGlvbih0LGUpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgdC5kYXRhLmdyb3VwSWR8fCJ1bnN0YWNrZWQifSkuZW50cmllcyhldCksbnQ9W107cnQuZm9yRWFjaChmdW5jdGlvbih0LGUpeyJ1bnN0YWNrZWQiPT09dC5rZXk/bnQ9bnQuY29uY2F0KHQudmFsdWVzLm1hcChmdW5jdGlvbih0LGUpe3JldHVyblt0XX0pKTpudC5wdXNoKHQudmFsdWVzKX0pLG50LmZvckVhY2goZnVuY3Rpb24odCxlKXt2YXIgcjtyPUFycmF5LmlzQXJyYXkodCk/dFswXS5nZW9tZXRyeUNvbmZpZy5nZW9tZXRyeTp0Lmdlb21ldHJ5Q29uZmlnLmdlb21ldHJ5O3ZhciBuPXQubWFwKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGEob1tyXS5kZWZhdWx0Q29uZmlnKCksdCl9KTtvW3JdKCkuY29uZmlnKG4pKCl9KX12YXIgYXQsaXQsb3Q9dC5zZWxlY3QoIi5ndWlkZXMtZ3JvdXAiKSxzdD10LnNlbGVjdCgiLnRvb2x0aXBzLWdyb3VwIiksbHQ9by50b29sdGlwUGFuZWwoKS5jb25maWcoe2NvbnRhaW5lcjpzdCxmb250U2l6ZTo4fSkoKSxjdD1vLnRvb2x0aXBQYW5lbCgpLmNvbmZpZyh7Y29udGFpbmVyOnN0LGZvbnRTaXplOjh9KSgpLHV0PW8udG9vbHRpcFBhbmVsKCkuY29uZmlnKHtjb250YWluZXI6c3QsaGFzVGljazohMH0pKCk7aWYoIVQpe3ZhciBodD1vdC5zZWxlY3QoImxpbmUiKS5hdHRyKHt4MTowLHkxOjAseTI6MH0pLnN0eWxlKHtzdHJva2U6ImdyZXkiLCJwb2ludGVyLWV2ZW50cyI6Im5vbmUifSk7Ui5vbigibW91c2Vtb3ZlLmFuZ3VsYXItZ3VpZGUiLGZ1bmN0aW9uKHQsZSl7dmFyIHI9by51dGlsLmdldE1vdXNlUG9zKFkpLmFuZ2xlO2h0LmF0dHIoe3gyOi14LHRyYW5zZm9ybToicm90YXRlKCIrcisiKSJ9KS5zdHlsZSh7b3BhY2l0eTouNX0pO3ZhciBuPShyKzE4MCszNjAtZi5vcmllbnRhdGlvbiklMzYwO2F0PXMuaW52ZXJ0KG4pO3ZhciBhPW8udXRpbC5jb252ZXJ0VG9DYXJ0ZXNpYW4oeCsxMixyKzE4MCk7bHQudGV4dChvLnV0aWwucm91bmQoYXQpKS5tb3ZlKFthWzBdK19bMF0sYVsxXStfWzFdXSl9KS5vbigibW91c2VvdXQuYW5ndWxhci1ndWlkZSIsZnVuY3Rpb24odCxlKXtvdC5zZWxlY3QoImxpbmUiKS5zdHlsZSh7b3BhY2l0eTowfSl9KX12YXIgZnQ9b3Quc2VsZWN0KCJjaXJjbGUiKS5zdHlsZSh7c3Ryb2tlOiJncmV5IixmaWxsOiJub25lIn0pO1Iub24oIm1vdXNlbW92ZS5yYWRpYWwtZ3VpZGUiLGZ1bmN0aW9uKHQsZSl7dmFyIG49by51dGlsLmdldE1vdXNlUG9zKFkpLnJhZGl1cztmdC5hdHRyKHtyOm59KS5zdHlsZSh7b3BhY2l0eTouNX0pLGl0PXIuaW52ZXJ0KG8udXRpbC5nZXRNb3VzZVBvcyhZKS5yYWRpdXMpO3ZhciBhPW8udXRpbC5jb252ZXJ0VG9DYXJ0ZXNpYW4obixmLnJhZGlhbEF4aXMub3JpZW50YXRpb24pO2N0LnRleHQoby51dGlsLnJvdW5kKGl0KSkubW92ZShbYVswXStfWzBdLGFbMV0rX1sxXV0pfSkub24oIm1vdXNlb3V0LnJhZGlhbC1ndWlkZSIsZnVuY3Rpb24odCxlKXtmdC5zdHlsZSh7b3BhY2l0eTowfSksdXQuaGlkZSgpLGx0LmhpZGUoKSxjdC5oaWRlKCl9KSx0LnNlbGVjdEFsbCgiLmdlb21ldHJ5LWdyb3VwIC5tYXJrIikub24oIm1vdXNlb3Zlci50b29sdGlwIixmdW5jdGlvbihlLHIpe3ZhciBhPW4uc2VsZWN0KHRoaXMpLGk9dGhpcy5zdHlsZS5maWxsLHM9ImJsYWNrIixsPXRoaXMuc3R5bGUub3BhY2l0eXx8MTtpZihhLmF0dHIoeyJkYXRhLW9wYWNpdHkiOmx9KSxpJiYibm9uZSIhPT1pKXthLmF0dHIoeyJkYXRhLWZpbGwiOml9KSxzPW4uaHNsKGkpLmRhcmtlcigpLnRvU3RyaW5nKCksYS5zdHlsZSh7ZmlsbDpzLG9wYWNpdHk6MX0pO3ZhciBjPXt0Om8udXRpbC5yb3VuZChlWzBdKSxyOm8udXRpbC5yb3VuZChlWzFdKX07VCYmKGMudD13W2VbMF1dKTt2YXIgdT0idDogIitjLnQrIiwgcjogIitjLnIsaD10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGY9dC5ub2RlKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscD1baC5sZWZ0K2gud2lkdGgvMi1WWzBdLWYubGVmdCxoLnRvcCtoLmhlaWdodC8yLVZbMV0tZi50b3BdO3V0LmNvbmZpZyh7Y29sb3I6c30pLnRleHQodSksdXQubW92ZShwKX1lbHNlIGk9dGhpcy5zdHlsZS5zdHJva2V8fCJibGFjayIsYS5hdHRyKHsiZGF0YS1zdHJva2UiOml9KSxzPW4uaHNsKGkpLmRhcmtlcigpLnRvU3RyaW5nKCksYS5zdHlsZSh7c3Ryb2tlOnMsb3BhY2l0eToxfSl9KS5vbigibW91c2Vtb3ZlLnRvb2x0aXAiLGZ1bmN0aW9uKHQsZSl7aWYoMCE9bi5ldmVudC53aGljaClyZXR1cm4hMTtuLnNlbGVjdCh0aGlzKS5hdHRyKCJkYXRhLWZpbGwiKSYmdXQuc2hvdygpfSkub24oIm1vdXNlb3V0LnRvb2x0aXAiLGZ1bmN0aW9uKHQsZSl7dXQuaGlkZSgpO3ZhciByPW4uc2VsZWN0KHRoaXMpLGE9ci5hdHRyKCJkYXRhLWZpbGwiKTthP3Iuc3R5bGUoe2ZpbGw6YSxvcGFjaXR5OnIuYXR0cigiZGF0YS1vcGFjaXR5Iil9KTpyLnN0eWxlKHtzdHJva2U6ci5hdHRyKCJkYXRhLXN0cm9rZSIpLG9wYWNpdHk6ci5hdHRyKCJkYXRhLW9wYWNpdHkiKX0pfSl9KX0oYyksdGhpc30sZi5jb25maWc9ZnVuY3Rpb24odCl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIGw7dmFyIGU9by51dGlsLmNsb25lSnNvbih0KTtyZXR1cm4gZS5kYXRhLmZvckVhY2goZnVuY3Rpb24odCxlKXtsLmRhdGFbZV18fChsLmRhdGFbZV09e30pLGEobC5kYXRhW2VdLG8uQXhpcy5kZWZhdWx0Q29uZmlnKCkuZGF0YVswXSksYShsLmRhdGFbZV0sdCl9KSxhKGwubGF5b3V0LG8uQXhpcy5kZWZhdWx0Q29uZmlnKCkubGF5b3V0KSxhKGwubGF5b3V0LGUubGF5b3V0KSx0aGlzfSxmLmdldExpdmVDb25maWc9ZnVuY3Rpb24oKXtyZXR1cm4gdX0sZi5nZXRpbnB1dENvbmZpZz1mdW5jdGlvbigpe3JldHVybiBjfSxmLnJhZGlhbFNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiByfSxmLmFuZ3VsYXJTY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gc30sZi5zdmc9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sbi5yZWJpbmQoZixoLCJvbiIpLGZ9LG8uQXhpcy5kZWZhdWx0Q29uZmlnPWZ1bmN0aW9uKHQsZSl7cmV0dXJue2RhdGE6W3t0OlsxLDIsMyw0XSxyOlsxMCwxMSwxMiwxM10sbmFtZToiTGluZTEiLGdlb21ldHJ5OiJMaW5lUGxvdCIsY29sb3I6bnVsbCxzdHJva2VEYXNoOiJzb2xpZCIsc3Ryb2tlQ29sb3I6bnVsbCxzdHJva2VTaXplOiIxIix2aXNpYmxlSW5MZWdlbmQ6ITAsb3BhY2l0eToxfV0sbGF5b3V0OntkZWZhdWx0Q29sb3JSYW5nZTpuLnNjYWxlLmNhdGVnb3J5MTAoKS5yYW5nZSgpLHRpdGxlOm51bGwsaGVpZ2h0OjQ1MCx3aWR0aDo1MDAsbWFyZ2luOnt0b3A6NDAscmlnaHQ6NDAsYm90dG9tOjQwLGxlZnQ6NDB9LGZvbnQ6e3NpemU6MTIsY29sb3I6ImdyYXkiLG91dGxpbmVDb2xvcjoid2hpdGUiLGZhbWlseToiVGFob21hLCBzYW5zLXNlcmlmIn0sZGlyZWN0aW9uOiJjbG9ja3dpc2UiLG9yaWVudGF0aW9uOjAsbGFiZWxPZmZzZXQ6MTAscmFkaWFsQXhpczp7ZG9tYWluOm51bGwsb3JpZW50YXRpb246LTQ1LHRpY2tzU3VmZml4OiIiLHZpc2libGU6ITAsZ3JpZExpbmVzVmlzaWJsZTohMCx0aWNrT3JpZW50YXRpb246Imhvcml6b250YWwiLHJld3JpdGVUaWNrczpudWxsfSxhbmd1bGFyQXhpczp7ZG9tYWluOlswLDM2MF0sdGlja3NTdWZmaXg6IiIsdmlzaWJsZTohMCxncmlkTGluZXNWaXNpYmxlOiEwLGxhYmVsc1Zpc2libGU6ITAsdGlja09yaWVudGF0aW9uOiJob3Jpem9udGFsIixyZXdyaXRlVGlja3M6bnVsbCx0aWNrc0NvdW50Om51bGwsdGlja3NTdGVwOm51bGx9LG1pbm9yVGlja3M6MCx0aWNrTGVuZ3RoOm51bGwsdGlja0NvbG9yOiJzaWx2ZXIiLG1pbm9yVGlja0NvbG9yOiIjZWVlIixiYWNrZ3JvdW5kQ29sb3I6Im5vbmUiLG5lZWRzRW5kU3BhY2luZzpudWxsLHNob3dMZWdlbmQ6ITAsbGVnZW5kOntyZXZlcnNlT3JkZXI6ITF9LG9wYWNpdHk6MX19fSxvLnV0aWw9e30sby5EQVRBRVhURU5UPSJkYXRhRXh0ZW50IixvLkFSRUE9IkFyZWFDaGFydCIsby5MSU5FPSJMaW5lUGxvdCIsby5ET1Q9IkRvdFBsb3QiLG8uQkFSPSJCYXJDaGFydCIsby51dGlsLl9vdmVycmlkZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgciBpbiB0KXIgaW4gZSYmKGVbcl09dFtyXSl9LG8udXRpbC5fZXh0ZW5kPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByIGluIHQpZVtyXT10W3JdfSxvLnV0aWwuX3JuZFNuZD1mdW5jdGlvbigpe3JldHVybiAyKk1hdGgucmFuZG9tKCktMSsoMipNYXRoLnJhbmRvbSgpLTEpKygyKk1hdGgucmFuZG9tKCktMSl9LG8udXRpbC5kYXRhRnJvbUVxdWF0aW9uMj1mdW5jdGlvbih0LGUpe3ZhciByPWV8fDY7cmV0dXJuIG4ucmFuZ2UoMCwzNjArcixyKS5tYXAoZnVuY3Rpb24oZSxyKXt2YXIgbj1lKk1hdGguUEkvMTgwO3JldHVybltlLHQobildfSl9LG8udXRpbC5kYXRhRnJvbUVxdWF0aW9uPWZ1bmN0aW9uKHQsZSxyKXt2YXIgYT1lfHw2LGk9W10sbz1bXTtuLnJhbmdlKDAsMzYwK2EsYSkuZm9yRWFjaChmdW5jdGlvbihlLHIpe3ZhciBuPWUqTWF0aC5QSS8xODAsYT10KG4pO2kucHVzaChlKSxvLnB1c2goYSl9KTt2YXIgcz17dDppLHI6b307cmV0dXJuIHImJihzLm5hbWU9ciksc30sby51dGlsLmVuc3VyZUFycmF5PWZ1bmN0aW9uKHQsZSl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiB0KXJldHVybiBudWxsO3ZhciByPVtdLmNvbmNhdCh0KTtyZXR1cm4gbi5yYW5nZShlKS5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm4gcltlXXx8clswXX0pfSxvLnV0aWwuZmlsbEFycmF5cz1mdW5jdGlvbih0LGUscil7cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihlLG4pe3RbZV09by51dGlsLmVuc3VyZUFycmF5KHRbZV0scil9KSx0fSxvLnV0aWwuY2xvbmVKc29uPWZ1bmN0aW9uKHQpe3JldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHQpKX0sby51dGlsLnZhbGlkYXRlS2V5cz1mdW5jdGlvbih0LGUpeyJzdHJpbmciPT10eXBlb2YgZSYmKGU9ZS5zcGxpdCgiLiIpKTt2YXIgcj1lLnNoaWZ0KCk7cmV0dXJuIHRbcl0mJighZS5sZW5ndGh8fG9iakhhc0tleXModFtyXSxlKSl9LG8udXRpbC5zdW1BcnJheXM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbi56aXAodCxlKS5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm4gbi5zdW0odCl9KX0sby51dGlsLmFycmF5TGFzdD1mdW5jdGlvbih0KXtyZXR1cm4gdFt0Lmxlbmd0aC0xXX0sby51dGlsLmFycmF5RXF1YWw9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9TWF0aC5tYXgodC5sZW5ndGgsZS5sZW5ndGgsMSk7ci0tID49MCYmdFtyXT09PWVbcl07KTtyZXR1cm4tMj09PXJ9LG8udXRpbC5mbGF0dGVuQXJyYXk9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdOyFvLnV0aWwuYXJyYXlFcXVhbChlLHQpOyllPXQsdD1bXS5jb25jYXQuYXBwbHkoW10sdCk7cmV0dXJuIHR9LG8udXRpbC5kZWR1cGxpY2F0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdC5maWx0ZXIoZnVuY3Rpb24odCxlLHIpe3JldHVybiByLmluZGV4T2YodCk9PWV9KX0sby51dGlsLmNvbnZlcnRUb0NhcnRlc2lhbj1mdW5jdGlvbih0LGUpe3ZhciByPWUqTWF0aC5QSS8xODA7cmV0dXJuW3QqTWF0aC5jb3MociksdCpNYXRoLnNpbihyKV19LG8udXRpbC5yb3VuZD1mdW5jdGlvbih0LGUpe3ZhciByPWV8fDIsbj1NYXRoLnBvdygxMCxyKTtyZXR1cm4gTWF0aC5yb3VuZCh0Km4pL259LG8udXRpbC5nZXRNb3VzZVBvcz1mdW5jdGlvbih0KXt2YXIgZT1uLm1vdXNlKHQubm9kZSgpKSxyPWVbMF0sYT1lWzFdLGk9e307cmV0dXJuIGkueD1yLGkueT1hLGkucG9zPWUsaS5hbmdsZT0xODAqKE1hdGguYXRhbjIoYSxyKStNYXRoLlBJKS9NYXRoLlBJLGkucmFkaXVzPU1hdGguc3FydChyKnIrYSphKSxpfSxvLnV0aWwuZHVwbGljYXRlc0NvdW50PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyPXt9LG49e30sYT0wLGk9dC5sZW5ndGg7YTxpO2ErKykoZT10W2FdKWluIHI/KHJbZV0rKyxuW2VdPXJbZV0pOnJbZV09MTtyZXR1cm4gbn0sby51dGlsLmR1cGxpY2F0ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5rZXlzKG8udXRpbC5kdXBsaWNhdGVzQ291bnQodCkpfSxvLnV0aWwudHJhbnNsYXRvcj1mdW5jdGlvbih0LGUscixuKXtpZihuKXt2YXIgYT1yLnNsaWNlKCk7cj1lLGU9YX12YXIgaT1lLnJlZHVjZShmdW5jdGlvbih0LGUpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgdClyZXR1cm4gdFtlXX0sdCk7InVuZGVmaW5lZCIhPXR5cGVvZiBpJiYoZS5yZWR1Y2UoZnVuY3Rpb24odCxyLG4pe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgdClyZXR1cm4gbj09PWUubGVuZ3RoLTEmJmRlbGV0ZSB0W3JdLHRbcl19LHQpLHIucmVkdWNlKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIHRbZV0mJih0W2VdPXt9KSxuPT09ci5sZW5ndGgtMSYmKHRbZV09aSksdFtlXX0sdCkpfSxvLlBvbHlDaGFydD1mdW5jdGlvbigpe3ZhciB0PVtvLlBvbHlDaGFydC5kZWZhdWx0Q29uZmlnKCldLGU9bi5kaXNwYXRjaCgiaG92ZXIiKSxyPXtzb2xpZDoibm9uZSIsZGFzaDpbNSwyXSxkb3Q6WzIsNV19O2Z1bmN0aW9uIGkoKXt2YXIgZT10WzBdLmdlb21ldHJ5Q29uZmlnLGE9ZS5jb250YWluZXI7InN0cmluZyI9PXR5cGVvZiBhJiYoYT1uLnNlbGVjdChhKSksYS5kYXR1bSh0KS5lYWNoKGZ1bmN0aW9uKHQsYSl7dmFyIGk9ISF0WzBdLmRhdGEueVN0YWNrLG89dC5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm4gaT9uLnppcCh0LmRhdGEudFswXSx0LmRhdGEuclswXSx0LmRhdGEueVN0YWNrWzBdKTpuLnppcCh0LmRhdGEudFswXSx0LmRhdGEuclswXSl9KSxzPWUuYW5ndWxhclNjYWxlLGw9ZS5yYWRpYWxTY2FsZS5kb21haW4oKVswXSxjPXtiYXI6ZnVuY3Rpb24ocixhLGkpe3ZhciBvPXRbaV0uZGF0YSxsPWUucmFkaWFsU2NhbGUoclsxXSktZS5yYWRpYWxTY2FsZSgwKSxjPWUucmFkaWFsU2NhbGUoclsyXXx8MCksdT1vLmJhcldpZHRoO24uc2VsZWN0KHRoaXMpLmF0dHIoe2NsYXNzOiJtYXJrIGJhciIsZDoiTSIrW1tsK2MsLXUvMl0sW2wrYyx1LzJdLFtjLHUvMl0sW2MsLXUvMl1dLmpvaW4oIkwiKSsiWiIsdHJhbnNmb3JtOmZ1bmN0aW9uKHQscil7cmV0dXJuInJvdGF0ZSgiKyhlLm9yaWVudGF0aW9uK3ModFswXSkpKyIpIn19KX19O2MuZG90PWZ1bmN0aW9uKHIsYSxpKXt2YXIgbz1yWzJdP1tyWzBdLHJbMV0rclsyXV06cixzPW4uc3ZnLnN5bWJvbCgpLnNpemUodFtpXS5kYXRhLmRvdFNpemUpLnR5cGUodFtpXS5kYXRhLmRvdFR5cGUpKHIsYSk7bi5zZWxlY3QodGhpcykuYXR0cih7Y2xhc3M6Im1hcmsgZG90IixkOnMsdHJhbnNmb3JtOmZ1bmN0aW9uKHQscil7dmFyIG4sYSxpLHM9KG49ZnVuY3Rpb24odCxyKXt2YXIgbj1lLnJhZGlhbFNjYWxlKHRbMV0pLGE9KGUuYW5ndWxhclNjYWxlKHRbMF0pK2Uub3JpZW50YXRpb24pKk1hdGguUEkvMTgwO3JldHVybntyOm4sdDphfX0obyksYT1uLnIqTWF0aC5jb3Mobi50KSxpPW4ucipNYXRoLnNpbihuLnQpLHt4OmEseTppfSk7cmV0dXJuInRyYW5zbGF0ZSgiK1tzLngscy55XSsiKSJ9fSl9O3ZhciB1PW4uc3ZnLmxpbmUucmFkaWFsKCkuaW50ZXJwb2xhdGUodFswXS5kYXRhLmxpbmVJbnRlcnBvbGF0aW9uKS5yYWRpdXMoZnVuY3Rpb24odCl7cmV0dXJuIGUucmFkaWFsU2NhbGUodFsxXSl9KS5hbmdsZShmdW5jdGlvbih0KXtyZXR1cm4gZS5hbmd1bGFyU2NhbGUodFswXSkqTWF0aC5QSS8xODB9KTtjLmxpbmU9ZnVuY3Rpb24ocixhLGkpe3ZhciBzPXJbMl0/b1tpXS5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm5bdFswXSx0WzFdK3RbMl1dfSk6b1tpXTtpZihuLnNlbGVjdCh0aGlzKS5lYWNoKGMuZG90KS5zdHlsZSh7b3BhY2l0eTpmdW5jdGlvbihlLHIpe3JldHVybit0W2ldLmRhdGEuZG90VmlzaWJsZX0sZmlsbDpkLnN0cm9rZShyLGEsaSl9KS5hdHRyKHtjbGFzczoibWFyayBkb3QifSksIShhPjApKXt2YXIgbD1uLnNlbGVjdCh0aGlzLnBhcmVudE5vZGUpLnNlbGVjdEFsbCgicGF0aC5saW5lIikuZGF0YShbMF0pO2wuZW50ZXIoKS5pbnNlcnQoInBhdGgiKSxsLmF0dHIoe2NsYXNzOiJsaW5lIixkOnUocyksdHJhbnNmb3JtOmZ1bmN0aW9uKHQscil7cmV0dXJuInJvdGF0ZSgiKyhlLm9yaWVudGF0aW9uKzkwKSsiKSJ9LCJwb2ludGVyLWV2ZW50cyI6Im5vbmUifSkuc3R5bGUoe2ZpbGw6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZC5maWxsKHIsYSxpKX0sImZpbGwtb3BhY2l0eSI6MCxzdHJva2U6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZC5zdHJva2UocixhLGkpfSwic3Ryb2tlLXdpZHRoIjpmdW5jdGlvbih0LGUpe3JldHVybiBkWyJzdHJva2Utd2lkdGgiXShyLGEsaSl9LCJzdHJva2UtZGFzaGFycmF5IjpmdW5jdGlvbih0LGUpe3JldHVybiBkWyJzdHJva2UtZGFzaGFycmF5Il0ocixhLGkpfSxvcGFjaXR5OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGQub3BhY2l0eShyLGEsaSl9LGRpc3BsYXk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZC5kaXNwbGF5KHIsYSxpKX19KX19O3ZhciBoPWUuYW5ndWxhclNjYWxlLnJhbmdlKCksZj1NYXRoLmFicyhoWzFdLWhbMF0pL29bMF0ubGVuZ3RoKk1hdGguUEkvMTgwLHA9bi5zdmcuYXJjKCkuc3RhcnRBbmdsZShmdW5jdGlvbih0KXtyZXR1cm4tZi8yfSkuZW5kQW5nbGUoZnVuY3Rpb24odCl7cmV0dXJuIGYvMn0pLmlubmVyUmFkaXVzKGZ1bmN0aW9uKHQpe3JldHVybiBlLnJhZGlhbFNjYWxlKGwrKHRbMl18fDApKX0pLm91dGVyUmFkaXVzKGZ1bmN0aW9uKHQpe3JldHVybiBlLnJhZGlhbFNjYWxlKGwrKHRbMl18fDApKStlLnJhZGlhbFNjYWxlKHRbMV0pfSk7Yy5hcmM9ZnVuY3Rpb24odCxyLGEpe24uc2VsZWN0KHRoaXMpLmF0dHIoe2NsYXNzOiJtYXJrIGFyYyIsZDpwLHRyYW5zZm9ybTpmdW5jdGlvbih0LHIpe3JldHVybiJyb3RhdGUoIisoZS5vcmllbnRhdGlvbitzKHRbMF0pKzkwKSsiKSJ9fSl9O3ZhciBkPXtmaWxsOmZ1bmN0aW9uKGUscixuKXtyZXR1cm4gdFtuXS5kYXRhLmNvbG9yfSxzdHJva2U6ZnVuY3Rpb24oZSxyLG4pe3JldHVybiB0W25dLmRhdGEuc3Ryb2tlQ29sb3J9LCJzdHJva2Utd2lkdGgiOmZ1bmN0aW9uKGUscixuKXtyZXR1cm4gdFtuXS5kYXRhLnN0cm9rZVNpemUrInB4In0sInN0cm9rZS1kYXNoYXJyYXkiOmZ1bmN0aW9uKGUsbixhKXtyZXR1cm4gclt0W2FdLmRhdGEuc3Ryb2tlRGFzaF19LG9wYWNpdHk6ZnVuY3Rpb24oZSxyLG4pe3JldHVybiB0W25dLmRhdGEub3BhY2l0eX0sZGlzcGxheTpmdW5jdGlvbihlLHIsbil7cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiB0W25dLmRhdGEudmlzaWJsZXx8dFtuXS5kYXRhLnZpc2libGU/ImJsb2NrIjoibm9uZSJ9fSxnPW4uc2VsZWN0KHRoaXMpLnNlbGVjdEFsbCgiZy5sYXllciIpLmRhdGEobyk7Zy5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoe2NsYXNzOiJsYXllciJ9KTt2YXIgdj1nLnNlbGVjdEFsbCgicGF0aC5tYXJrIikuZGF0YShmdW5jdGlvbih0LGUpe3JldHVybiB0fSk7di5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmF0dHIoe2NsYXNzOiJtYXJrIn0pLHYuc3R5bGUoZCkuZWFjaChjW2UuZ2VvbWV0cnlUeXBlXSksdi5leGl0KCkucmVtb3ZlKCksZy5leGl0KCkucmVtb3ZlKCl9KX1yZXR1cm4gaS5jb25maWc9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGUuZm9yRWFjaChmdW5jdGlvbihlLHIpe3Rbcl18fCh0W3JdPXt9KSxhKHRbcl0sby5Qb2x5Q2hhcnQuZGVmYXVsdENvbmZpZygpKSxhKHRbcl0sZSl9KSx0aGlzKTp0fSxpLmdldENvbG9yU2NhbGU9ZnVuY3Rpb24oKXt9LG4ucmViaW5kKGksZSwib24iKSxpfSxvLlBvbHlDaGFydC5kZWZhdWx0Q29uZmlnPWZ1bmN0aW9uKCl7cmV0dXJue2RhdGE6e25hbWU6Imdlb20xIix0OltbMSwyLDMsNF1dLHI6W1sxLDIsMyw0XV0sZG90VHlwZToiY2lyY2xlIixkb3RTaXplOjY0LGRvdFZpc2libGU6ITEsYmFyV2lkdGg6MjAsY29sb3I6IiNmZmE1MDAiLHN0cm9rZVNpemU6MSxzdHJva2VDb2xvcjoic2lsdmVyIixzdHJva2VEYXNoOiJzb2xpZCIsb3BhY2l0eToxLGluZGV4OjAsdmlzaWJsZTohMCx2aXNpYmxlSW5MZWdlbmQ6ITB9LGdlb21ldHJ5Q29uZmlnOntnZW9tZXRyeToiTGluZVBsb3QiLGdlb21ldHJ5VHlwZToiYXJjIixkaXJlY3Rpb246ImNsb2Nrd2lzZSIsb3JpZW50YXRpb246MCxjb250YWluZXI6ImJvZHkiLHJhZGlhbFNjYWxlOm51bGwsYW5ndWxhclNjYWxlOm51bGwsY29sb3JTY2FsZTpuLnNjYWxlLmNhdGVnb3J5MjAoKX19fSxvLkJhckNoYXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIG8uUG9seUNoYXJ0KCl9LG8uQmFyQ2hhcnQuZGVmYXVsdENvbmZpZz1mdW5jdGlvbigpe3JldHVybntnZW9tZXRyeUNvbmZpZzp7Z2VvbWV0cnlUeXBlOiJiYXIifX19LG8uQXJlYUNoYXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIG8uUG9seUNoYXJ0KCl9LG8uQXJlYUNoYXJ0LmRlZmF1bHRDb25maWc9ZnVuY3Rpb24oKXtyZXR1cm57Z2VvbWV0cnlDb25maWc6e2dlb21ldHJ5VHlwZToiYXJjIn19fSxvLkRvdFBsb3Q9ZnVuY3Rpb24oKXtyZXR1cm4gby5Qb2x5Q2hhcnQoKX0sby5Eb3RQbG90LmRlZmF1bHRDb25maWc9ZnVuY3Rpb24oKXtyZXR1cm57Z2VvbWV0cnlDb25maWc6e2dlb21ldHJ5VHlwZToiZG90Iixkb3RUeXBlOiJjaXJjbGUifX19LG8uTGluZVBsb3Q9ZnVuY3Rpb24oKXtyZXR1cm4gby5Qb2x5Q2hhcnQoKX0sby5MaW5lUGxvdC5kZWZhdWx0Q29uZmlnPWZ1bmN0aW9uKCl7cmV0dXJue2dlb21ldHJ5Q29uZmlnOntnZW9tZXRyeVR5cGU6ImxpbmUifX19LG8uTGVnZW5kPWZ1bmN0aW9uKCl7dmFyIHQ9by5MZWdlbmQuZGVmYXVsdENvbmZpZygpLGU9bi5kaXNwYXRjaCgiaG92ZXIiKTtmdW5jdGlvbiByKCl7dmFyIGU9dC5sZWdlbmRDb25maWcsaT10LmRhdGEubWFwKGZ1bmN0aW9uKHQscil7cmV0dXJuW10uY29uY2F0KHQpLm1hcChmdW5jdGlvbih0LG4pe3ZhciBpPWEoe30sZS5lbGVtZW50c1tyXSk7cmV0dXJuIGkubmFtZT10LGkuY29sb3I9W10uY29uY2F0KGUuZWxlbWVudHNbcl0uY29sb3IpW25dLGl9KX0pLG89bi5tZXJnZShpKTtvPW8uZmlsdGVyKGZ1bmN0aW9uKHQscil7cmV0dXJuIGUuZWxlbWVudHNbcl0mJihlLmVsZW1lbnRzW3JdLnZpc2libGVJbkxlZ2VuZHx8InVuZGVmaW5lZCI9PXR5cGVvZiBlLmVsZW1lbnRzW3JdLnZpc2libGVJbkxlZ2VuZCl9KSxlLnJldmVyc2VPcmRlciYmKG89by5yZXZlcnNlKCkpO3ZhciBzPWUuY29udGFpbmVyOygic3RyaW5nIj09dHlwZW9mIHN8fHMubm9kZU5hbWUpJiYocz1uLnNlbGVjdChzKSk7dmFyIGw9by5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5jb2xvcn0pLGM9ZS5mb250U2l6ZSx1PW51bGw9PWUuaXNDb250aW51b3VzPyJudW1iZXIiPT10eXBlb2Ygb1swXTplLmlzQ29udGludW91cyxoPXU/ZS5oZWlnaHQ6YypvLmxlbmd0aCxmPXMuY2xhc3NlZCgibGVnZW5kLWdyb3VwIiwhMCkuc2VsZWN0QWxsKCJzdmciKS5kYXRhKFswXSkscD1mLmVudGVyKCkuYXBwZW5kKCJzdmciKS5hdHRyKHt3aWR0aDozMDAsaGVpZ2h0OmgrYyx4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJ4bWxuczp4bGluayI6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHZlcnNpb246IjEuMSJ9KTtwLmFwcGVuZCgiZyIpLmNsYXNzZWQoImxlZ2VuZC1heGlzIiwhMCkscC5hcHBlbmQoImciKS5jbGFzc2VkKCJsZWdlbmQtbWFya3MiLCEwKTt2YXIgZD1uLnJhbmdlKG8ubGVuZ3RoKSxnPW4uc2NhbGVbdT8ibGluZWFyIjoib3JkaW5hbCJdKCkuZG9tYWluKGQpLnJhbmdlKGwpLHY9bi5zY2FsZVt1PyJsaW5lYXIiOiJvcmRpbmFsIl0oKS5kb21haW4oZClbdT8icmFuZ2UiOiJyYW5nZVBvaW50cyJdKFswLGhdKTtpZih1KXt2YXIgbT1mLnNlbGVjdCgiLmxlZ2VuZC1tYXJrcyIpLmFwcGVuZCgiZGVmcyIpLmFwcGVuZCgibGluZWFyR3JhZGllbnQiKS5hdHRyKHtpZDoiZ3JhZDEiLHgxOiIwJSIseTE6IjAlIix4MjoiMCUiLHkyOiIxMDAlIn0pLnNlbGVjdEFsbCgic3RvcCIpLmRhdGEobCk7bS5lbnRlcigpLmFwcGVuZCgic3RvcCIpLG0uYXR0cih7b2Zmc2V0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUvKGwubGVuZ3RoLTEpKjEwMCsiJSJ9fSkuc3R5bGUoeyJzdG9wLWNvbG9yIjpmdW5jdGlvbih0LGUpe3JldHVybiB0fX0pLGYuYXBwZW5kKCJyZWN0IikuY2xhc3NlZCgibGVnZW5kLW1hcmsiLCEwKS5hdHRyKHtoZWlnaHQ6ZS5oZWlnaHQsd2lkdGg6ZS5jb2xvckJhbmRXaWR0aCxmaWxsOiJ1cmwoI2dyYWQxKSJ9KX1lbHNle3ZhciB5PWYuc2VsZWN0KCIubGVnZW5kLW1hcmtzIikuc2VsZWN0QWxsKCJwYXRoLmxlZ2VuZC1tYXJrIikuZGF0YShvKTt5LmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZCgibGVnZW5kLW1hcmsiLCEwKSx5LmF0dHIoe3RyYW5zZm9ybTpmdW5jdGlvbih0LGUpe3JldHVybiJ0cmFuc2xhdGUoIitbYy8yLHYoZSkrYy8yXSsiKSJ9LGQ6ZnVuY3Rpb24odCxlKXt2YXIgcixhLGksbz10LnN5bWJvbDtyZXR1cm4gaT0zKihhPWMpLCJsaW5lIj09PShyPW8pPyJNIitbWy1hLzIsLWEvMTJdLFthLzIsLWEvMTJdLFthLzIsYS8xMl0sWy1hLzIsYS8xMl1dKyJaIjotMSE9bi5zdmcuc3ltYm9sVHlwZXMuaW5kZXhPZihyKT9uLnN2Zy5zeW1ib2woKS50eXBlKHIpLnNpemUoaSkoKTpuLnN2Zy5zeW1ib2woKS50eXBlKCJzcXVhcmUiKS5zaXplKGkpKCl9LGZpbGw6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZyhlKX19KSx5LmV4aXQoKS5yZW1vdmUoKX12YXIgeD1uLnN2Zy5heGlzKCkuc2NhbGUodikub3JpZW50KCJyaWdodCIpLGI9Zi5zZWxlY3QoImcubGVnZW5kLWF4aXMiKS5hdHRyKHt0cmFuc2Zvcm06InRyYW5zbGF0ZSgiK1t1P2UuY29sb3JCYW5kV2lkdGg6YyxjLzJdKyIpIn0pLmNhbGwoeCk7cmV0dXJuIGIuc2VsZWN0QWxsKCIuZG9tYWluIikuc3R5bGUoe2ZpbGw6Im5vbmUiLHN0cm9rZToibm9uZSJ9KSxiLnNlbGVjdEFsbCgibGluZSIpLnN0eWxlKHtmaWxsOiJub25lIixzdHJva2U6dT9lLnRleHRDb2xvcjoibm9uZSJ9KSxiLnNlbGVjdEFsbCgidGV4dCIpLnN0eWxlKHtmaWxsOmUudGV4dENvbG9yLCJmb250LXNpemUiOmUuZm9udFNpemV9KS50ZXh0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG9bZV0ubmFtZX0pLHJ9cmV0dXJuIHIuY29uZmlnPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhKHQsZSksdGhpcyk6dH0sbi5yZWJpbmQocixlLCJvbiIpLHJ9LG8uTGVnZW5kLmRlZmF1bHRDb25maWc9ZnVuY3Rpb24odCxlKXtyZXR1cm57ZGF0YTpbImEiLCJiIiwiYyJdLGxlZ2VuZENvbmZpZzp7ZWxlbWVudHM6W3tzeW1ib2w6ImxpbmUiLGNvbG9yOiJyZWQifSx7c3ltYm9sOiJzcXVhcmUiLGNvbG9yOiJ5ZWxsb3cifSx7c3ltYm9sOiJkaWFtb25kIixjb2xvcjoibGltZWdyZWVuIn1dLGhlaWdodDoxNTAsY29sb3JCYW5kV2lkdGg6MzAsZm9udFNpemU6MTIsY29udGFpbmVyOiJib2R5Iixpc0NvbnRpbnVvdXM6bnVsbCx0ZXh0Q29sb3I6ImdyZXkiLHJldmVyc2VPcmRlcjohMX19fSxvLnRvb2x0aXBQYW5lbD1mdW5jdGlvbigpe3ZhciB0LGUscixpPXtjb250YWluZXI6bnVsbCxoYXNUaWNrOiExLGZvbnRTaXplOjEyLGNvbG9yOiJ3aGl0ZSIscGFkZGluZzo1fSxzPSJ0b29sdGlwLSIrby50b29sdGlwUGFuZWwudWlkKyssbD0xMCxjPWZ1bmN0aW9uKCl7dmFyIG49KHQ9aS5jb250YWluZXIuc2VsZWN0QWxsKCJnLiIrcykuZGF0YShbMF0pKS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQocywhMCkuc3R5bGUoeyJwb2ludGVyLWV2ZW50cyI6Im5vbmUiLGRpc3BsYXk6Im5vbmUifSk7cmV0dXJuIHI9bi5hcHBlbmQoInBhdGgiKS5zdHlsZSh7ZmlsbDoid2hpdGUiLCJmaWxsLW9wYWNpdHkiOi45fSkuYXR0cih7ZDoiTTAgMCJ9KSxlPW4uYXBwZW5kKCJ0ZXh0IikuYXR0cih7ZHg6aS5wYWRkaW5nK2wsZHk6LjMqK2kuZm9udFNpemV9KSxjfTtyZXR1cm4gYy50ZXh0PWZ1bmN0aW9uKGEpe3ZhciBvPW4uaHNsKGkuY29sb3IpLmwscz1vPj0uNT8iI2FhYSI6IndoaXRlIix1PW8+PS41PyJibGFjayI6IndoaXRlIixoPWF8fCIiO2Uuc3R5bGUoe2ZpbGw6dSwiZm9udC1zaXplIjppLmZvbnRTaXplKyJweCJ9KS50ZXh0KGgpO3ZhciBmPWkucGFkZGluZyxwPWUubm9kZSgpLmdldEJCb3goKSxkPXtmaWxsOmkuY29sb3Isc3Ryb2tlOnMsInN0cm9rZS13aWR0aCI6IjJweCJ9LGc9cC53aWR0aCsyKmYrbCx2PXAuaGVpZ2h0KzIqZjtyZXR1cm4gci5hdHRyKHtkOiJNIitbW2wsLXYvMl0sW2wsLXYvNF0sW2kuaGFzVGljaz8wOmwsMF0sW2wsdi80XSxbbCx2LzJdLFtnLHYvMl0sW2csLXYvMl1dLmpvaW4oIkwiKSsiWiJ9KS5zdHlsZShkKSx0LmF0dHIoe3RyYW5zZm9ybToidHJhbnNsYXRlKCIrW2wsLXYvMisyKmZdKyIpIn0pLHQuc3R5bGUoe2Rpc3BsYXk6ImJsb2NrIn0pLGN9LGMubW92ZT1mdW5jdGlvbihlKXtpZih0KXJldHVybiB0LmF0dHIoe3RyYW5zZm9ybToidHJhbnNsYXRlKCIrW2VbMF0sZVsxXV0rIikifSkuc3R5bGUoe2Rpc3BsYXk6ImJsb2NrIn0pLGN9LGMuaGlkZT1mdW5jdGlvbigpe2lmKHQpcmV0dXJuIHQuc3R5bGUoe2Rpc3BsYXk6Im5vbmUifSksY30sYy5zaG93PWZ1bmN0aW9uKCl7aWYodClyZXR1cm4gdC5zdHlsZSh7ZGlzcGxheToiYmxvY2sifSksY30sYy5jb25maWc9ZnVuY3Rpb24odCl7cmV0dXJuIGEoaSx0KSxjfSxjfSxvLnRvb2x0aXBQYW5lbC51aWQ9MSxvLmFkYXB0ZXI9e30sby5hZGFwdGVyLnBsb3RseT1mdW5jdGlvbigpe3ZhciB0PXtjb252ZXJ0OmZ1bmN0aW9uKHQsZSl7dmFyIHI9e307aWYodC5kYXRhJiYoci5kYXRhPXQuZGF0YS5tYXAoZnVuY3Rpb24odCxyKXt2YXIgbj1hKHt9LHQpO3JldHVybltbbixbIm1hcmtlciIsImNvbG9yIl0sWyJjb2xvciJdXSxbbixbIm1hcmtlciIsIm9wYWNpdHkiXSxbIm9wYWNpdHkiXV0sW24sWyJtYXJrZXIiLCJsaW5lIiwiY29sb3IiXSxbInN0cm9rZUNvbG9yIl1dLFtuLFsibWFya2VyIiwibGluZSIsImRhc2giXSxbInN0cm9rZURhc2giXV0sW24sWyJtYXJrZXIiLCJsaW5lIiwid2lkdGgiXSxbInN0cm9rZVNpemUiXV0sW24sWyJtYXJrZXIiLCJzeW1ib2wiXSxbImRvdFR5cGUiXV0sW24sWyJtYXJrZXIiLCJzaXplIl0sWyJkb3RTaXplIl1dLFtuLFsibWFya2VyIiwiYmFyV2lkdGgiXSxbImJhcldpZHRoIl1dLFtuLFsibGluZSIsImludGVycG9sYXRpb24iXSxbImxpbmVJbnRlcnBvbGF0aW9uIl1dLFtuLFsic2hvd2xlZ2VuZCJdLFsidmlzaWJsZUluTGVnZW5kIl1dXS5mb3JFYWNoKGZ1bmN0aW9uKHQscil7by51dGlsLnRyYW5zbGF0b3IuYXBwbHkobnVsbCx0LmNvbmNhdChlKSl9KSxlfHxkZWxldGUgbi5tYXJrZXIsZSYmZGVsZXRlIG4uZ3JvdXBJZCxlPygiTGluZVBsb3QiPT09bi5nZW9tZXRyeT8obi50eXBlPSJzY2F0dGVyIiwhMD09PW4uZG90VmlzaWJsZT8oZGVsZXRlIG4uZG90VmlzaWJsZSxuLm1vZGU9ImxpbmVzK21hcmtlcnMiKTpuLm1vZGU9ImxpbmVzIik6IkRvdFBsb3QiPT09bi5nZW9tZXRyeT8obi50eXBlPSJzY2F0dGVyIixuLm1vZGU9Im1hcmtlcnMiKToiQXJlYUNoYXJ0Ij09PW4uZ2VvbWV0cnk/bi50eXBlPSJhcmVhIjoiQmFyQ2hhcnQiPT09bi5nZW9tZXRyeSYmKG4udHlwZT0iYmFyIiksZGVsZXRlIG4uZ2VvbWV0cnkpOigic2NhdHRlciI9PT1uLnR5cGU/ImxpbmVzIj09PW4ubW9kZT9uLmdlb21ldHJ5PSJMaW5lUGxvdCI6Im1hcmtlcnMiPT09bi5tb2RlP24uZ2VvbWV0cnk9IkRvdFBsb3QiOiJsaW5lcyttYXJrZXJzIj09PW4ubW9kZSYmKG4uZ2VvbWV0cnk9IkxpbmVQbG90IixuLmRvdFZpc2libGU9ITApOiJhcmVhIj09PW4udHlwZT9uLmdlb21ldHJ5PSJBcmVhQ2hhcnQiOiJiYXIiPT09bi50eXBlJiYobi5nZW9tZXRyeT0iQmFyQ2hhcnQiKSxkZWxldGUgbi5tb2RlLGRlbGV0ZSBuLnR5cGUpLG59KSwhZSYmdC5sYXlvdXQmJiJzdGFjayI9PT10LmxheW91dC5iYXJtb2RlKSl7dmFyIGk9by51dGlsLmR1cGxpY2F0ZXMoci5kYXRhLm1hcChmdW5jdGlvbih0LGUpe3JldHVybiB0Lmdlb21ldHJ5fSkpO3IuZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIG49aS5pbmRleE9mKHQuZ2VvbWV0cnkpOy0xIT1uJiYoci5kYXRhW2VdLmdyb3VwSWQ9bil9KX1pZih0LmxheW91dCl7dmFyIHM9YSh7fSx0LmxheW91dCk7aWYoW1tzLFsicGxvdF9iZ2NvbG9yIl0sWyJiYWNrZ3JvdW5kQ29sb3IiXV0sW3MsWyJzaG93bGVnZW5kIl0sWyJzaG93TGVnZW5kIl1dLFtzLFsicmFkaWFsYXhpcyJdLFsicmFkaWFsQXhpcyJdXSxbcyxbImFuZ3VsYXJheGlzIl0sWyJhbmd1bGFyQXhpcyJdXSxbcy5hbmd1bGFyYXhpcyxbInNob3dsaW5lIl0sWyJncmlkTGluZXNWaXNpYmxlIl1dLFtzLmFuZ3VsYXJheGlzLFsic2hvd3RpY2tsYWJlbHMiXSxbImxhYmVsc1Zpc2libGUiXV0sW3MuYW5ndWxhcmF4aXMsWyJudGlja3MiXSxbInRpY2tzQ291bnQiXV0sW3MuYW5ndWxhcmF4aXMsWyJ0aWNrb3JpZW50YXRpb24iXSxbInRpY2tPcmllbnRhdGlvbiJdXSxbcy5hbmd1bGFyYXhpcyxbInRpY2tzdWZmaXgiXSxbInRpY2tzU3VmZml4Il1dLFtzLmFuZ3VsYXJheGlzLFsicmFuZ2UiXSxbImRvbWFpbiJdXSxbcy5hbmd1bGFyYXhpcyxbImVuZHBhZGRpbmciXSxbImVuZFBhZGRpbmciXV0sW3MucmFkaWFsYXhpcyxbInNob3dsaW5lIl0sWyJncmlkTGluZXNWaXNpYmxlIl1dLFtzLnJhZGlhbGF4aXMsWyJ0aWNrb3JpZW50YXRpb24iXSxbInRpY2tPcmllbnRhdGlvbiJdXSxbcy5yYWRpYWxheGlzLFsidGlja3N1ZmZpeCJdLFsidGlja3NTdWZmaXgiXV0sW3MucmFkaWFsYXhpcyxbInJhbmdlIl0sWyJkb21haW4iXV0sW3MuYW5ndWxhckF4aXMsWyJzaG93bGluZSJdLFsiZ3JpZExpbmVzVmlzaWJsZSJdXSxbcy5hbmd1bGFyQXhpcyxbInNob3d0aWNrbGFiZWxzIl0sWyJsYWJlbHNWaXNpYmxlIl1dLFtzLmFuZ3VsYXJBeGlzLFsibnRpY2tzIl0sWyJ0aWNrc0NvdW50Il1dLFtzLmFuZ3VsYXJBeGlzLFsidGlja29yaWVudGF0aW9uIl0sWyJ0aWNrT3JpZW50YXRpb24iXV0sW3MuYW5ndWxhckF4aXMsWyJ0aWNrc3VmZml4Il0sWyJ0aWNrc1N1ZmZpeCJdXSxbcy5hbmd1bGFyQXhpcyxbInJhbmdlIl0sWyJkb21haW4iXV0sW3MuYW5ndWxhckF4aXMsWyJlbmRwYWRkaW5nIl0sWyJlbmRQYWRkaW5nIl1dLFtzLnJhZGlhbEF4aXMsWyJzaG93bGluZSJdLFsiZ3JpZExpbmVzVmlzaWJsZSJdXSxbcy5yYWRpYWxBeGlzLFsidGlja29yaWVudGF0aW9uIl0sWyJ0aWNrT3JpZW50YXRpb24iXV0sW3MucmFkaWFsQXhpcyxbInRpY2tzdWZmaXgiXSxbInRpY2tzU3VmZml4Il1dLFtzLnJhZGlhbEF4aXMsWyJyYW5nZSJdLFsiZG9tYWluIl1dLFtzLmZvbnQsWyJvdXRsaW5lY29sb3IiXSxbIm91dGxpbmVDb2xvciJdXSxbcy5sZWdlbmQsWyJ0cmFjZW9yZGVyIl0sWyJyZXZlcnNlT3JkZXIiXV0sW3MsWyJsYWJlbG9mZnNldCJdLFsibGFiZWxPZmZzZXQiXV0sW3MsWyJkZWZhdWx0Y29sb3JyYW5nZSJdLFsiZGVmYXVsdENvbG9yUmFuZ2UiXV1dLmZvckVhY2goZnVuY3Rpb24odCxyKXtvLnV0aWwudHJhbnNsYXRvci5hcHBseShudWxsLHQuY29uY2F0KGUpKX0pLGU/KCJ1bmRlZmluZWQiIT10eXBlb2Ygcy50aWNrTGVuZ3RoJiYocy5hbmd1bGFyYXhpcy50aWNrbGVuPXMudGlja0xlbmd0aCxkZWxldGUgcy50aWNrTGVuZ3RoKSxzLnRpY2tDb2xvciYmKHMuYW5ndWxhcmF4aXMudGlja2NvbG9yPXMudGlja0NvbG9yLGRlbGV0ZSBzLnRpY2tDb2xvcikpOihzLmFuZ3VsYXJBeGlzJiYidW5kZWZpbmVkIiE9dHlwZW9mIHMuYW5ndWxhckF4aXMudGlja2xlbiYmKHMudGlja0xlbmd0aD1zLmFuZ3VsYXJBeGlzLnRpY2tsZW4pLHMuYW5ndWxhckF4aXMmJiJ1bmRlZmluZWQiIT10eXBlb2Ygcy5hbmd1bGFyQXhpcy50aWNrY29sb3ImJihzLnRpY2tDb2xvcj1zLmFuZ3VsYXJBeGlzLnRpY2tjb2xvcikpLHMubGVnZW5kJiYiYm9vbGVhbiIhPXR5cGVvZiBzLmxlZ2VuZC5yZXZlcnNlT3JkZXImJihzLmxlZ2VuZC5yZXZlcnNlT3JkZXI9Im5vcm1hbCIhPXMubGVnZW5kLnJldmVyc2VPcmRlcikscy5sZWdlbmQmJiJib29sZWFuIj09dHlwZW9mIHMubGVnZW5kLnRyYWNlb3JkZXImJihzLmxlZ2VuZC50cmFjZW9yZGVyPXMubGVnZW5kLnRyYWNlb3JkZXI/InJldmVyc2VkIjoibm9ybWFsIixkZWxldGUgcy5sZWdlbmQucmV2ZXJzZU9yZGVyKSxzLm1hcmdpbiYmInVuZGVmaW5lZCIhPXR5cGVvZiBzLm1hcmdpbi50KXt2YXIgbD1bInQiLCJyIiwiYiIsImwiLCJwYWQiXSxjPVsidG9wIiwicmlnaHQiLCJib3R0b20iLCJsZWZ0IiwicGFkIl0sdT17fTtuLmVudHJpZXMocy5tYXJnaW4pLmZvckVhY2goZnVuY3Rpb24odCxlKXt1W2NbbC5pbmRleE9mKHQua2V5KV1dPXQudmFsdWV9KSxzLm1hcmdpbj11fWUmJihkZWxldGUgcy5uZWVkc0VuZFNwYWNpbmcsZGVsZXRlIHMubWlub3JUaWNrQ29sb3IsZGVsZXRlIHMubWlub3JUaWNrcyxkZWxldGUgcy5hbmd1bGFyYXhpcy50aWNrc0NvdW50LGRlbGV0ZSBzLmFuZ3VsYXJheGlzLnRpY2tzQ291bnQsZGVsZXRlIHMuYW5ndWxhcmF4aXMudGlja3NTdGVwLGRlbGV0ZSBzLmFuZ3VsYXJheGlzLnJld3JpdGVUaWNrcyxkZWxldGUgcy5hbmd1bGFyYXhpcy5udGlja3MsZGVsZXRlIHMucmFkaWFsYXhpcy50aWNrc0NvdW50LGRlbGV0ZSBzLnJhZGlhbGF4aXMudGlja3NDb3VudCxkZWxldGUgcy5yYWRpYWxheGlzLnRpY2tzU3RlcCxkZWxldGUgcy5yYWRpYWxheGlzLnJld3JpdGVUaWNrcyxkZWxldGUgcy5yYWRpYWxheGlzLm50aWNrcyksci5sYXlvdXQ9c31yZXR1cm4gcn19O3JldHVybiB0fX0seyIuLi8uLi8uLi9jb25zdGFudHMvYWxpZ25tZW50Ijo2ODYsIi4uLy4uLy4uL2xpYiI6NzE3LGQzOjE2NX1dLDgzNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGE9dCgiLi4vLi4vLi4vbGliIiksaT10KCIuLi8uLi8uLi9jb21wb25lbnRzL2NvbG9yIiksbz10KCIuL21pY3JvcG9sYXIiKSxzPXQoIi4vdW5kb19tYW5hZ2VyIiksbD1hLmV4dGVuZERlZXBBbGwsYz1lLmV4cG9ydHM9e307Yy5mcmFtZXdvcms9ZnVuY3Rpb24odCl7dmFyIGUscixhLGksdSxoPW5ldyBzO2Z1bmN0aW9uIGYocixzKXtyZXR1cm4gcyYmKHU9cyksbi5zZWxlY3Qobi5zZWxlY3QodSkubm9kZSgpLnBhcmVudE5vZGUpLnNlbGVjdEFsbCgiLnN2Zy1jb250YWluZXI+Kjpub3QoLmNoYXJ0LXJvb3QpIikucmVtb3ZlKCksZT1lP2woZSxyKTpyLGF8fChhPW8uQXhpcygpKSxpPW8uYWRhcHRlci5wbG90bHkoKS5jb252ZXJ0KGUpLGEuY29uZmlnKGkpLnJlbmRlcih1KSx0LmRhdGE9ZS5kYXRhLHQubGF5b3V0PWUubGF5b3V0LGMuZmlsbExheW91dCh0KSxlfXJldHVybiBmLmlzUG9sYXI9ITAsZi5zdmc9ZnVuY3Rpb24oKXtyZXR1cm4gYS5zdmcoKX0sZi5nZXRDb25maWc9ZnVuY3Rpb24oKXtyZXR1cm4gZX0sZi5nZXRMaXZlQ29uZmlnPWZ1bmN0aW9uKCl7cmV0dXJuIG8uYWRhcHRlci5wbG90bHkoKS5jb252ZXJ0KGEuZ2V0TGl2ZUNvbmZpZygpLCEwKX0sZi5nZXRMaXZlU2NhbGVzPWZ1bmN0aW9uKCl7cmV0dXJue3Q6YS5hbmd1bGFyU2NhbGUoKSxyOmEucmFkaWFsU2NhbGUoKX19LGYuc2V0VW5kb1BvaW50PWZ1bmN0aW9uKCl7dmFyIHQsbixhPXRoaXMsaT1vLnV0aWwuY2xvbmVKc29uKGUpO3Q9aSxuPXIsaC5hZGQoe3VuZG86ZnVuY3Rpb24oKXtuJiZhKG4pfSxyZWRvOmZ1bmN0aW9uKCl7YSh0KX19KSxyPW8udXRpbC5jbG9uZUpzb24oaSl9LGYudW5kbz1mdW5jdGlvbigpe2gudW5kbygpfSxmLnJlZG89ZnVuY3Rpb24oKXtoLnJlZG8oKX0sZn0sYy5maWxsTGF5b3V0PWZ1bmN0aW9uKHQpe3ZhciBlPW4uc2VsZWN0KHQpLnNlbGVjdEFsbCgiLnBsb3QtY29udGFpbmVyIikscj1lLnNlbGVjdEFsbCgiLnN2Zy1jb250YWluZXIiKSxhPXQuZnJhbWV3b3JrJiZ0LmZyYW1ld29yay5zdmcmJnQuZnJhbWV3b3JrLnN2ZygpLG89e3dpZHRoOjgwMCxoZWlnaHQ6NjAwLHBhcGVyX2JnY29sb3I6aS5iYWNrZ3JvdW5kLF9jb250YWluZXI6ZSxfcGFwZXJkaXY6cixfcGFwZXI6YX07dC5fZnVsbExheW91dD1sKG8sdC5sYXlvdXQpfX0seyIuLi8uLi8uLi9jb21wb25lbnRzL2NvbG9yIjo1OTIsIi4uLy4uLy4uL2xpYiI6NzE3LCIuL21pY3JvcG9sYXIiOjgzNSwiLi91bmRvX21hbmFnZXIiOjgzNyxkMzoxNjV9XSw4Mzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIHQsZT1bXSxyPS0xLG49ITE7ZnVuY3Rpb24gYSh0LGUpe3JldHVybiB0PyhuPSEwLHRbZV0oKSxuPSExLHRoaXMpOnRoaXN9cmV0dXJue2FkZDpmdW5jdGlvbih0KXtyZXR1cm4gbj90aGlzOihlLnNwbGljZShyKzEsZS5sZW5ndGgtciksZS5wdXNoKHQpLHI9ZS5sZW5ndGgtMSx0aGlzKX0sc2V0Q2FsbGJhY2s6ZnVuY3Rpb24oZSl7dD1lfSx1bmRvOmZ1bmN0aW9uKCl7dmFyIG49ZVtyXTtyZXR1cm4gbj8oYShuLCJ1bmRvIiksci09MSx0JiZ0KG4udW5kbyksdGhpcyk6dGhpc30scmVkbzpmdW5jdGlvbigpe3ZhciBuPWVbcisxXTtyZXR1cm4gbj8oYShuLCJyZWRvIikscis9MSx0JiZ0KG4ucmVkbyksdGhpcyk6dGhpc30sY2xlYXI6ZnVuY3Rpb24oKXtlPVtdLHI9LTF9LGhhc1VuZG86ZnVuY3Rpb24oKXtyZXR1cm4tMSE9PXJ9LGhhc1JlZG86ZnVuY3Rpb24oKXtyZXR1cm4gcjxlLmxlbmd0aC0xfSxnZXRDb21tYW5kczpmdW5jdGlvbigpe3JldHVybiBlfSxnZXRQcmV2aW91c0NvbW1hbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gZVtyLTFdfSxnZXRJbmRleDpmdW5jdGlvbigpe3JldHVybiByfX19fSx7fV0sODM4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksYT10KCJ0aW55Y29sb3IyIiksaT10KCIuLi8uLi9yZWdpc3RyeSIpLG89dCgiLi4vLi4vbGliIikscz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksbD10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxjPXQoIi4uL3Bsb3RzIiksdT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGg9dCgiLi4vY2FydGVzaWFuL3NldF9jb252ZXJ0IiksZj10KCIuL3NldF9jb252ZXJ0IikscD10KCIuLi9jYXJ0ZXNpYW4vYXV0b3JhbmdlIikuZG9BdXRvUmFuZ2UsZD10KCIuLi9jYXJ0ZXNpYW4vZHJhZ2JveCIpLGc9dCgiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudCIpLHY9dCgiLi4vLi4vY29tcG9uZW50cy9meCIpLG09dCgiLi4vLi4vY29tcG9uZW50cy90aXRsZXMiKSx5PXQoIi4uL2NhcnRlc2lhbi9zZWxlY3QiKS5wcmVwU2VsZWN0LHg9dCgiLi4vY2FydGVzaWFuL3NlbGVjdCIpLnNlbGVjdE9uQ2xpY2ssYj10KCIuLi9jYXJ0ZXNpYW4vc2VsZWN0IikuY2xlYXJTZWxlY3QsXz10KCIuLi8uLi9saWIvc2V0Y3Vyc29yIiksdz10KCIuLi8uLi9saWIvY2xlYXJfZ2xfY2FudmFzZXMiKSxrPXQoIi4uLy4uL3Bsb3RfYXBpL3N1YnJvdXRpbmVzIikucmVkcmF3UmVnbFRyYWNlcyxUPXQoIi4uLy4uL2NvbnN0YW50cy9hbGlnbm1lbnQiKS5NSURfU0hJRlQsTT10KCIuL2NvbnN0YW50cyIpLEE9dCgiLi9oZWxwZXJzIiksUz1vLl8sRT1vLm1vZCxMPW8uZGVnMnJhZCxDPW8ucmFkMmRlZztmdW5jdGlvbiBQKHQsZSl7dGhpcy5pZD1lLHRoaXMuZ2Q9dCx0aGlzLl9oYXNDbGlwT25BeGlzRmFsc2U9bnVsbCx0aGlzLnZhbmdsZXM9bnVsbCx0aGlzLnJhZGlhbEF4aXNBbmdsZT1udWxsLHRoaXMudHJhY2VIYXNoPXt9LHRoaXMubGF5ZXJzPXt9LHRoaXMuY2xpcFBhdGhzPXt9LHRoaXMuY2xpcElkcz17fSx0aGlzLnZpZXdJbml0aWFsPXt9O3ZhciByPXQuX2Z1bGxMYXlvdXQsbj0iY2xpcCIrci5fdWlkK2U7dGhpcy5jbGlwSWRzLmZvclRyYWNlcz1uKyItZm9yLXRyYWNlcyIsdGhpcy5jbGlwUGF0aHMuZm9yVHJhY2VzPXIuX2NsaXBzLmFwcGVuZCgiY2xpcFBhdGgiKS5hdHRyKCJpZCIsdGhpcy5jbGlwSWRzLmZvclRyYWNlcyksdGhpcy5jbGlwUGF0aHMuZm9yVHJhY2VzLmFwcGVuZCgicGF0aCIpLHRoaXMuZnJhbWV3b3JrPXIuX3BvbGFybGF5ZXIuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLGUpLHRoaXMucmFkaWFsVGlja0xheW91dD1udWxsLHRoaXMuYW5ndWxhclRpY2tMYXlvdXQ9bnVsbH12YXIgTz1QLnByb3RvdHlwZTtmdW5jdGlvbiB6KHQpe3ZhciBlPXQudGlja3MrU3RyaW5nKHQudGlja2xlbikrU3RyaW5nKHQuc2hvd3RpY2tsYWJlbHMpO3JldHVybiJzaWRlImluIHQmJihlKz10LnNpZGUpLGV9ZnVuY3Rpb24gSSh0LGUpe3JldHVybiBlW28uZmluZEluZGV4T2ZNaW4oZSxmdW5jdGlvbihlKXtyZXR1cm4gby5hbmdsZURpc3QodCxlKX0pXX1mdW5jdGlvbiBEKHQsZSxyKXtyZXR1cm4gZT8odC5hdHRyKCJkaXNwbGF5IixudWxsKSx0LmF0dHIocikpOnQmJnQuYXR0cigiZGlzcGxheSIsIm5vbmUiKSx0fWZ1bmN0aW9uIFIodCxlKXtyZXR1cm4idHJhbnNsYXRlKCIrdCsiLCIrZSsiKSJ9ZnVuY3Rpb24gRih0KXtyZXR1cm4icm90YXRlKCIrdCsiKSJ9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBQKHQsZSl9LE8ucGxvdD1mdW5jdGlvbih0LGUpe3ZhciByPWVbdGhpcy5pZF07dGhpcy5faGFzQ2xpcE9uQXhpc0ZhbHNlPSExO2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXtpZighMT09PXRbbl1bMF0udHJhY2UuY2xpcG9uYXhpcyl7dGhpcy5faGFzQ2xpcE9uQXhpc0ZhbHNlPSEwO2JyZWFrfX10aGlzLnVwZGF0ZUxheWVycyhlLHIpLHRoaXMudXBkYXRlTGF5b3V0KGUsciksYy5nZW5lcmFsVXBkYXRlUGVyVHJhY2VNb2R1bGUodGhpcy5nZCx0aGlzLHQsciksdGhpcy51cGRhdGVGeChlLHIpfSxPLnVwZGF0ZUxheWVycz1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMubGF5ZXJzLGE9ZS5yYWRpYWxheGlzLGk9ZS5hbmd1bGFyYXhpcyxvPU0ubGF5ZXJOYW1lcyxzPW8uaW5kZXhPZigiZnJvbnRwbG90IiksbD1vLnNsaWNlKDAscyksYz0iYmVsb3cgdHJhY2VzIj09PWkubGF5ZXIsdT0iYmVsb3cgdHJhY2VzIj09PWEubGF5ZXI7YyYmbC5wdXNoKCJhbmd1bGFyLWxpbmUiKSx1JiZsLnB1c2goInJhZGlhbC1saW5lIiksYyYmbC5wdXNoKCJhbmd1bGFyLWF4aXMiKSx1JiZsLnB1c2goInJhZGlhbC1heGlzIiksbC5wdXNoKCJmcm9udHBsb3QiKSxjfHxsLnB1c2goImFuZ3VsYXItbGluZSIpLHV8fGwucHVzaCgicmFkaWFsLWxpbmUiKSxjfHxsLnB1c2goImFuZ3VsYXItYXhpcyIpLHV8fGwucHVzaCgicmFkaWFsLWF4aXMiKTt2YXIgaD10aGlzLmZyYW1ld29yay5zZWxlY3RBbGwoIi5wb2xhcnN1YmxheWVyIikuZGF0YShsLFN0cmluZyk7aC5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIixmdW5jdGlvbih0KXtyZXR1cm4icG9sYXJzdWJsYXllciAiK3R9KS5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPXJbdF09bi5zZWxlY3QodGhpcyk7c3dpdGNoKHQpe2Nhc2UiZnJvbnRwbG90IjplLmFwcGVuZCgiZyIpLmNsYXNzZWQoImJhcmxheWVyIiwhMCksZS5hcHBlbmQoImciKS5jbGFzc2VkKCJzY2F0dGVybGF5ZXIiLCEwKTticmVhaztjYXNlImJhY2twbG90IjplLmFwcGVuZCgiZyIpLmNsYXNzZWQoIm1hcGxheWVyIiwhMCk7YnJlYWs7Y2FzZSJwbG90YmciOnIuYmc9ZS5hcHBlbmQoInBhdGgiKTticmVhaztjYXNlInJhZGlhbC1ncmlkIjpjYXNlImFuZ3VsYXItZ3JpZCI6ZS5zdHlsZSgiZmlsbCIsIm5vbmUiKTticmVhaztjYXNlInJhZGlhbC1saW5lIjplLmFwcGVuZCgibGluZSIpLnN0eWxlKCJmaWxsIiwibm9uZSIpO2JyZWFrO2Nhc2UiYW5ndWxhci1saW5lIjplLmFwcGVuZCgicGF0aCIpLnN0eWxlKCJmaWxsIiwibm9uZSIpfX0pLGgub3JkZXIoKX0sTy51cGRhdGVMYXlvdXQ9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmxheWVycyxuPXQuX3NpemUsYT1lLnJhZGlhbGF4aXMsaT1lLmFuZ3VsYXJheGlzLG89ZS5kb21haW4ueCxjPWUuZG9tYWluLnk7dGhpcy54T2Zmc2V0PW4ubCtuLncqb1swXSx0aGlzLnlPZmZzZXQ9bi50K24uaCooMS1jWzFdKTt2YXIgdT10aGlzLnhMZW5ndGg9bi53KihvWzFdLW9bMF0pLGg9dGhpcy55TGVuZ3RoPW4uaCooY1sxXS1jWzBdKSxmPWUuc2VjdG9yO3RoaXMuc2VjdG9ySW5SYWQ9Zi5tYXAoTCk7dmFyIHAsZCxnLHYsbSx5PXRoaXMuc2VjdG9yQkJveD1mdW5jdGlvbih0KXt2YXIgZSxyLG4sYSxpPXRbMF0sbz10WzFdLWkscz1FKGksMzYwKSxsPXMrbyxjPU1hdGguY29zKEwocykpLHU9TWF0aC5zaW4oTChzKSksaD1NYXRoLmNvcyhMKGwpKSxmPU1hdGguc2luKEwobCkpO2E9czw9OTAmJmw+PTkwfHxzPjkwJiZsPj00NTA/MTp1PD0wJiZmPD0wPzA6TWF0aC5tYXgodSxmKTtlPXM8PTE4MCYmbD49MTgwfHxzPjE4MCYmbD49NTQwPy0xOmM+PTAmJmg+PTA/MDpNYXRoLm1pbihjLGgpO3I9czw9MjcwJiZsPj0yNzB8fHM+MjcwJiZsPj02MzA/LTE6dT49MCYmZj49MD8wOk1hdGgubWluKHUsZik7bj1sPj0zNjA/MTpjPD0wJiZoPD0wPzA6TWF0aC5tYXgoYyxoKTtyZXR1cm5bZSxyLG4sYV19KGYpLHg9eVsyXS15WzBdLGI9eVszXS15WzFdLF89aC91LHc9TWF0aC5hYnMoYi94KTtfPnc/KHA9dSxtPShoLShkPXUqdykpL24uaC8yLGc9W29bMF0sb1sxXV0sdj1bY1swXSttLGNbMV0tbV0pOihkPWgsbT0odS0ocD1oL3cpKS9uLncvMixnPVtvWzBdK20sb1sxXS1tXSx2PVtjWzBdLGNbMV1dKSx0aGlzLnhMZW5ndGgyPXAsdGhpcy55TGVuZ3RoMj1kLHRoaXMueERvbWFpbjI9Zyx0aGlzLnlEb21haW4yPXY7dmFyIGs9dGhpcy54T2Zmc2V0Mj1uLmwrbi53KmdbMF0sVD10aGlzLnlPZmZzZXQyPW4udCtuLmgqKDEtdlsxXSksTT10aGlzLnJhZGl1cz1wL3gsQT10aGlzLmlubmVyUmFkaXVzPWUuaG9sZSpNLFM9dGhpcy5jeD1rLU0qeVswXSxDPXRoaXMuY3k9VCtNKnlbM10sUD10aGlzLmN4eD1TLWssTz10aGlzLmN5eT1DLVQ7dGhpcy5yYWRpYWxBeGlzPXRoaXMubW9ja0F4aXModCxlLGEse19pZDoieCIsc2lkZTp7Y291bnRlcmNsb2Nrd2lzZToidG9wIixjbG9ja3dpc2U6ImJvdHRvbSJ9W2Euc2lkZV0sZG9tYWluOltBL24udyxNL24ud119KSx0aGlzLmFuZ3VsYXJBeGlzPXRoaXMubW9ja0F4aXModCxlLGkse3NpZGU6InJpZ2h0Iixkb21haW46WzAsTWF0aC5QSV0sYXV0b3JhbmdlOiExfSksdGhpcy5kb0F1dG9SYW5nZSh0LGUpLHRoaXMudXBkYXRlQW5ndWxhckF4aXModCxlKSx0aGlzLnVwZGF0ZVJhZGlhbEF4aXModCxlKSx0aGlzLnVwZGF0ZVJhZGlhbEF4aXNUaXRsZSh0LGUpLHRoaXMueGF4aXM9dGhpcy5tb2NrQ2FydGVzaWFuQXhpcyh0LGUse19pZDoieCIsZG9tYWluOmd9KSx0aGlzLnlheGlzPXRoaXMubW9ja0NhcnRlc2lhbkF4aXModCxlLHtfaWQ6InkiLGRvbWFpbjp2fSk7dmFyIHo9dGhpcy5wYXRoU3VicGxvdCgpO3RoaXMuY2xpcFBhdGhzLmZvclRyYWNlcy5zZWxlY3QoInBhdGgiKS5hdHRyKCJkIix6KS5hdHRyKCJ0cmFuc2Zvcm0iLFIoUCxPKSksci5mcm9udHBsb3QuYXR0cigidHJhbnNmb3JtIixSKGssVCkpLmNhbGwobC5zZXRDbGlwVXJsLHRoaXMuX2hhc0NsaXBPbkF4aXNGYWxzZT9udWxsOnRoaXMuY2xpcElkcy5mb3JUcmFjZXMsdGhpcy5nZCksci5iZy5hdHRyKCJkIix6KS5hdHRyKCJ0cmFuc2Zvcm0iLFIoUyxDKSkuY2FsbChzLmZpbGwsZS5iZ2NvbG9yKX0sTy5tb2NrQXhpcz1mdW5jdGlvbih0LGUscixuKXt2YXIgYT1vLmV4dGVuZEZsYXQoe30scixuKTtyZXR1cm4gZihhLGUsdCksYX0sTy5tb2NrQ2FydGVzaWFuQXhpcz1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcyxhPXIuX2lkLGk9by5leHRlbmRGbGF0KHt0eXBlOiJsaW5lYXIifSxyKTtoKGksdCk7dmFyIHM9e3g6WzAsMl0seTpbMSwzXX07cmV0dXJuIGkuc2V0UmFuZ2U9ZnVuY3Rpb24oKXt2YXIgdD1uLnNlY3RvckJCb3gscj1zW2FdLG89bi5yYWRpYWxBeGlzLl9ybCxsPShvWzFdLW9bMF0pLygxLWUuaG9sZSk7aS5yYW5nZT1bdFtyWzBdXSpsLHRbclsxXV0qbF19LGkuaXNQdFdpdGhpblJhbmdlPSJ4Ij09PWE/ZnVuY3Rpb24odCl7cmV0dXJuIG4uaXNQdEluc2lkZSh0KX06ZnVuY3Rpb24oKXtyZXR1cm4hMH0saS5zZXRSYW5nZSgpLGkuc2V0U2NhbGUoKSxpfSxPLmRvQXV0b1JhbmdlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5nZCxuPXRoaXMucmFkaWFsQXhpcyxhPWUucmFkaWFsYXhpcztuLnNldFNjYWxlKCkscChyLG4pO3ZhciBpPW4ucmFuZ2U7YS5yYW5nZT1pLnNsaWNlKCksYS5faW5wdXQucmFuZ2U9aS5zbGljZSgpLG4uX3JsPVtuLnIybChpWzBdLG51bGwsImdyZWdvcmlhbiIpLG4ucjJsKGlbMV0sbnVsbCwiZ3JlZ29yaWFuIildfSxPLnVwZGF0ZVJhZGlhbEF4aXM9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLG49ci5nZCxhPXIubGF5ZXJzLGk9ci5yYWRpdXMsbD1yLmlubmVyUmFkaXVzLGM9ci5jeCxoPXIuY3ksZj1lLnJhZGlhbGF4aXMscD1FKGUuc2VjdG9yWzBdLDM2MCksZD1yLnJhZGlhbEF4aXMsZz1sPGk7ci5maWxsVmlld0luaXRpYWxLZXkoInJhZGlhbGF4aXMuYW5nbGUiLGYuYW5nbGUpLHIuZmlsbFZpZXdJbml0aWFsS2V5KCJyYWRpYWxheGlzLnJhbmdlIixkLnJhbmdlLnNsaWNlKCkpLGQuc2V0R2VvbWV0cnkoKSwiYXV0byI9PT1kLnRpY2thbmdsZSYmcD45MCYmcDw9MjcwJiYoZC50aWNrYW5nbGU9MTgwKTt2YXIgdj1mdW5jdGlvbih0KXtyZXR1cm4idHJhbnNsYXRlKCIrKGQubDJwKHQueCkrbCkrIiwwKSJ9LG09eihmKTtpZihyLnJhZGlhbFRpY2tMYXlvdXQhPT1tJiYoYVsicmFkaWFsLWF4aXMiXS5zZWxlY3RBbGwoIi54dGljayIpLnJlbW92ZSgpLHIucmFkaWFsVGlja0xheW91dD1tKSxnKXtkLnNldFNjYWxlKCk7dmFyIHk9dS5jYWxjVGlja3MoZCkseD11LmNsaXBFbmRzKGQseSksYj11LmdldFRpY2tTaWducyhkKVsyXTt1LmRyYXdUaWNrcyhuLGQse3ZhbHM6eSxsYXllcjphWyJyYWRpYWwtYXhpcyJdLHBhdGg6dS5tYWtlVGlja1BhdGgoZCwwLGIpLHRyYW5zRm46dixjcmlzcDohMX0pLHUuZHJhd0dyaWQobixkLHt2YWxzOngsbGF5ZXI6YVsicmFkaWFsLWdyaWQiXSxwYXRoOmZ1bmN0aW9uKHQpe3JldHVybiByLnBhdGhBcmMoZC5yMnAodC54KStsKX0sdHJhbnNGbjpvLm5vb3AsY3Jpc3A6ITF9KSx1LmRyYXdMYWJlbHMobixkLHt2YWxzOnksbGF5ZXI6YVsicmFkaWFsLWF4aXMiXSx0cmFuc0ZuOnYsbGFiZWxGbnM6dS5tYWtlTGFiZWxGbnMoZCwwKX0pfXZhciBfPXIucmFkaWFsQXhpc0FuZ2xlPXIudmFuZ2xlcz9DKEkoTChmLmFuZ2xlKSxyLnZhbmdsZXMpKTpmLmFuZ2xlLHc9UihjLGgpLGs9dytGKC1fKTtEKGFbInJhZGlhbC1heGlzIl0sZyYmKGYuc2hvd3RpY2tsYWJlbHN8fGYudGlja3MpLHt0cmFuc2Zvcm06a30pLEQoYVsicmFkaWFsLWdyaWQiXSxnJiZmLnNob3dncmlkLHt0cmFuc2Zvcm06d30pLEQoYVsicmFkaWFsLWxpbmUiXS5zZWxlY3QoImxpbmUiKSxnJiZmLnNob3dsaW5lLHt4MTpsLHkxOjAseDI6aSx5MjowLHRyYW5zZm9ybTprfSkuYXR0cigic3Ryb2tlLXdpZHRoIixmLmxpbmV3aWR0aCkuY2FsbChzLnN0cm9rZSxmLmxpbmVjb2xvcil9LE8udXBkYXRlUmFkaWFsQXhpc1RpdGxlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLmdkLGE9dGhpcy5yYWRpdXMsaT10aGlzLmN4LG89dGhpcy5jeSxzPWUucmFkaWFsYXhpcyxjPXRoaXMuaWQrInRpdGxlIix1PXZvaWQgMCE9PXI/cjp0aGlzLnJhZGlhbEF4aXNBbmdsZSxoPUwodSksZj1NYXRoLmNvcyhoKSxwPU1hdGguc2luKGgpLGQ9MDtpZihzLnRpdGxlKXt2YXIgZz1sLmJCb3godGhpcy5sYXllcnNbInJhZGlhbC1heGlzIl0ubm9kZSgpKS5oZWlnaHQsdj1zLnRpdGxlLmZvbnQuc2l6ZTtkPSJjb3VudGVyY2xvY2t3aXNlIj09PXMuc2lkZT8tZy0uNCp2OmcrLjgqdn10aGlzLmxheWVyc1sicmFkaWFsLWF4aXMtdGl0bGUiXT1tLmRyYXcobixjLHtwcm9wQ29udGFpbmVyOnMscHJvcE5hbWU6dGhpcy5pZCsiLnJhZGlhbGF4aXMudGl0bGUiLHBsYWNlaG9sZGVyOlMobiwiQ2xpY2sgdG8gZW50ZXIgcmFkaWFsIGF4aXMgdGl0bGUiKSxhdHRyaWJ1dGVzOnt4OmkrYS8yKmYrZCpwLHk6by1hLzIqcCtkKmYsInRleHQtYW5jaG9yIjoibWlkZGxlIn0sdHJhbnNmb3JtOntyb3RhdGU6LXV9fSl9LE8udXBkYXRlQW5ndWxhckF4aXM9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLG49ci5nZCxhPXIubGF5ZXJzLGk9ci5yYWRpdXMsbD1yLmlubmVyUmFkaXVzLGM9ci5jeCxoPXIuY3ksZj1lLmFuZ3VsYXJheGlzLHA9ci5hbmd1bGFyQXhpcztyLmZpbGxWaWV3SW5pdGlhbEtleSgiYW5ndWxhcmF4aXMucm90YXRpb24iLGYucm90YXRpb24pLHAuc2V0R2VvbWV0cnkoKSxwLnNldFNjYWxlKCk7dmFyIGQ9ZnVuY3Rpb24odCl7cmV0dXJuIHAudDJnKHQueCl9OyJsaW5lYXIiPT09cC50eXBlJiYicmFkaWFucyI9PT1wLnRoZXRhdW5pdCYmKHAudGljazA9QyhwLnRpY2swKSxwLmR0aWNrPUMocC5kdGljaykpO3ZhciBnPWZ1bmN0aW9uKHQpe3JldHVybiBSKGMraSpNYXRoLmNvcyh0KSxoLWkqTWF0aC5zaW4odCkpfSx2PXUubWFrZUxhYmVsRm5zKHAsMCkubGFiZWxTdGFuZG9mZixtPXt4Rm46ZnVuY3Rpb24odCl7dmFyIGU9ZCh0KTtyZXR1cm4gTWF0aC5jb3MoZSkqdn0seUZuOmZ1bmN0aW9uKHQpe3ZhciBlPWQodCkscj1NYXRoLnNpbihlKT4wPy4yOjE7cmV0dXJuLU1hdGguc2luKGUpKih2K3QuZm9udFNpemUqcikrTWF0aC5hYnMoTWF0aC5jb3MoZSkpKih0LmZvbnRTaXplKlQpfSxhbmNob3JGbjpmdW5jdGlvbih0KXt2YXIgZT1kKHQpLHI9TWF0aC5jb3MoZSk7cmV0dXJuIE1hdGguYWJzKHIpPC4xPyJtaWRkbGUiOnI+MD8ic3RhcnQiOiJlbmQifSxoZWlnaHRGbjpmdW5jdGlvbih0LGUscil7dmFyIG49ZCh0KTtyZXR1cm4tLjUqKDErTWF0aC5zaW4obikpKnJ9fSx5PXooZik7ci5hbmd1bGFyVGlja0xheW91dCE9PXkmJihhWyJhbmd1bGFyLWF4aXMiXS5zZWxlY3RBbGwoIi4iK3AuX2lkKyJ0aWNrIikucmVtb3ZlKCksci5hbmd1bGFyVGlja0xheW91dD15KTt2YXIgeCxiPXUuY2FsY1RpY2tzKHApO2lmKCJsaW5lYXIiPT09ZS5ncmlkc2hhcGU/KHg9Yi5tYXAoZCksby5hbmdsZURlbHRhKHhbMF0seFsxXSk8MCYmKHg9eC5zbGljZSgpLnJldmVyc2UoKSkpOng9bnVsbCxyLnZhbmdsZXM9eCwiY2F0ZWdvcnkiPT09cC50eXBlJiYoYj1iLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gby5pc0FuZ2xlSW5zaWRlU2VjdG9yKGQodCksci5zZWN0b3JJblJhZCl9KSkscC52aXNpYmxlKXt2YXIgXz0iaW5zaWRlIj09PXAudGlja3M/LTE6MSx3PShwLmxpbmV3aWR0aHx8MSkvMjt1LmRyYXdUaWNrcyhuLHAse3ZhbHM6YixsYXllcjphWyJhbmd1bGFyLWF4aXMiXSxwYXRoOiJNIitfKncrIiwwaCIrXypwLnRpY2tsZW4sdHJhbnNGbjpmdW5jdGlvbih0KXt2YXIgZT1kKHQpO3JldHVybiBnKGUpK0YoLUMoZSkpfSxjcmlzcDohMX0pLHUuZHJhd0dyaWQobixwLHt2YWxzOmIsbGF5ZXI6YVsiYW5ndWxhci1ncmlkIl0scGF0aDpmdW5jdGlvbih0KXt2YXIgZT1kKHQpLHI9TWF0aC5jb3MoZSksbj1NYXRoLnNpbihlKTtyZXR1cm4iTSIrW2MrbCpyLGgtbCpuXSsiTCIrW2MraSpyLGgtaSpuXX0sdHJhbnNGbjpvLm5vb3AsY3Jpc3A6ITF9KSx1LmRyYXdMYWJlbHMobixwLHt2YWxzOmIsbGF5ZXI6YVsiYW5ndWxhci1heGlzIl0scmVwb3NpdGlvbk9uVXBkYXRlOiEwLHRyYW5zRm46ZnVuY3Rpb24odCl7cmV0dXJuIGcoZCh0KSl9LGxhYmVsRm5zOm19KX1EKGFbImFuZ3VsYXItbGluZSJdLnNlbGVjdCgicGF0aCIpLGYuc2hvd2xpbmUse2Q6ci5wYXRoU3VicGxvdCgpLHRyYW5zZm9ybTpSKGMsaCl9KS5hdHRyKCJzdHJva2Utd2lkdGgiLGYubGluZXdpZHRoKS5jYWxsKHMuc3Ryb2tlLGYubGluZWNvbG9yKX0sTy51cGRhdGVGeD1mdW5jdGlvbih0LGUpe3RoaXMuZ2QuX2NvbnRleHQuc3RhdGljUGxvdHx8KHRoaXMudXBkYXRlQW5ndWxhckRyYWcodCksdGhpcy51cGRhdGVSYWRpYWxEcmFnKHQsZSwwKSx0aGlzLnVwZGF0ZVJhZGlhbERyYWcodCxlLDEpLHRoaXMudXBkYXRlTWFpbkRyYWcodCkpfSxPLnVwZGF0ZU1haW5EcmFnPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMscj1lLmdkLG89ZS5sYXllcnMscz10Ll96b29tbGF5ZXIsbD1NLk1JTlpPT00sYz1NLk9GRkVER0UsdT1lLnJhZGl1cyxoPWUuaW5uZXJSYWRpdXMsZj1lLmN4LHA9ZS5jeSxtPWUuY3h4LF89ZS5jeXksdz1lLnNlY3RvckluUmFkLGs9ZS52YW5nbGVzLFQ9ZS5yYWRpYWxBeGlzLFM9QS5jbGFtcFRpbnksRT1BLmZpbmRYWWF0TGVuZ3RoLEw9QS5maW5kRW5jbG9zaW5nVmVydGV4QW5nbGVzLEM9TS5jb3JuZXJIYWxmV2lkdGgsUD1NLmNvcm5lckxlbi8yLE89ZC5tYWtlRHJhZ2dlcihvLCJwYXRoIiwibWFpbmRyYWciLCJjcm9zc2hhaXIiKTtuLnNlbGVjdChPKS5hdHRyKCJkIixlLnBhdGhTdWJwbG90KCkpLmF0dHIoInRyYW5zZm9ybSIsUihmLHApKTt2YXIgeixJLEQsRixCLE4saixWLFUscT17ZWxlbWVudDpPLGdkOnIsc3VicGxvdDplLmlkLHBsb3RpbmZvOntpZDplLmlkLHhheGlzOmUueGF4aXMseWF4aXM6ZS55YXhpc30seGF4ZXM6W2UueGF4aXNdLHlheGVzOltlLnlheGlzXX07ZnVuY3Rpb24gSCh0LGUpe3JldHVybiBNYXRoLnNxcnQodCp0K2UqZSl9ZnVuY3Rpb24gRyh0LGUpe3JldHVybiBIKHQtbSxlLV8pfWZ1bmN0aW9uIFkodCxlKXtyZXR1cm4gTWF0aC5hdGFuMihfLWUsdC1tKX1mdW5jdGlvbiBXKHQsZSl7cmV0dXJuW3QqTWF0aC5jb3MoZSksdCpNYXRoLnNpbigtZSldfWZ1bmN0aW9uIFgodCxyKXtpZigwPT09dClyZXR1cm4gZS5wYXRoU2VjdG9yKDIqQyk7dmFyIG49UC90LGE9ci1uLGk9cituLG89TWF0aC5tYXgoMCxNYXRoLm1pbih0LHUpKSxzPW8tQyxsPW8rQztyZXR1cm4iTSIrVyhzLGEpKyJBIitbcyxzXSsiIDAsMCwwICIrVyhzLGkpKyJMIitXKGwsaSkrIkEiK1tsLGxdKyIgMCwwLDEgIitXKGwsYSkrIloifWZ1bmN0aW9uIFoodCxyLG4pe2lmKDA9PT10KXJldHVybiBlLnBhdGhTZWN0b3IoMipDKTt2YXIgYSxpLG89Vyh0LHIpLHM9Vyh0LG4pLGw9Uygob1swXStzWzBdKS8yKSxjPVMoKG9bMV0rc1sxXSkvMik7aWYobCYmYyl7dmFyIHU9Yy9sLGg9LTEvdSxmPUUoQyx1LGwsYyk7YT1FKFAsaCxmWzBdWzBdLGZbMF1bMV0pLGk9RShQLGgsZlsxXVswXSxmWzFdWzFdKX1lbHNle3ZhciBwLGQ7Yz8ocD1QLGQ9Qyk6KHA9QyxkPVApLGE9W1tsLXAsYy1kXSxbbCtwLGMtZF1dLGk9W1tsLXAsYytkXSxbbCtwLGMrZF1dfXJldHVybiJNIithLmpvaW4oIkwiKSsiTCIraS5yZXZlcnNlKCkuam9pbigiTCIpKyJaIn1mdW5jdGlvbiBKKHQsZSl7cmV0dXJuIGU9TWF0aC5tYXgoTWF0aC5taW4oZSx1KSxoKSx0PGM/dD0wOnUtdDxjP3Q9dTplPGM/ZT0wOnUtZTxjJiYoZT11KSxNYXRoLmFicyhlLXQpPmw/KHQ8ZT8oRD10LEY9ZSk6KEQ9ZSxGPXQpLCEwKTooRD1udWxsLEY9bnVsbCwhMSl9ZnVuY3Rpb24gSyh0LGUpe3Q9dHx8QixlPWV8fCJNMCwwWiIsVi5hdHRyKCJkIix0KSxVLmF0dHIoImQiLGUpLGQudHJhbnNpdGlvblpvb21ib3goVixVLE4saiksTj0hMDt2YXIgbj17fTtydChuKSxyLmVtaXQoInBsb3RseV9yZWxheW91dGluZyIsbil9ZnVuY3Rpb24gUSh0LHIpe3ZhciBuLGEsaT16K3Qsbz1JK3Iscz1HKHosSSksbD1NYXRoLm1pbihHKGksbyksdSksYz1ZKHosSSk7SihzLGwpJiYobj1CK2UucGF0aFNlY3RvcihGKSxEJiYobis9ZS5wYXRoU2VjdG9yKEQpKSxhPVgoRCxjKStYKEYsYykpLEsobixhKX1mdW5jdGlvbiAkKHQsZSxyLG4pe3ZhciBhPUEuZmluZEludGVyc2VjdGlvblhZKHIsbixyLFt0LW0sXy1lXSk7cmV0dXJuIEgoYVswXSxhWzFdKX1mdW5jdGlvbiB0dCh0LHIpe3ZhciBuLGEsaT16K3Qsbz1JK3Iscz1ZKHosSSksbD1ZKGksbyksYz1MKHMsayksaD1MKGwsayk7SigkKHosSSxjWzBdLGNbMV0pLE1hdGgubWluKCQoaSxvLGhbMF0saFsxXSksdSkpJiYobj1CK2UucGF0aFNlY3RvcihGKSxEJiYobis9ZS5wYXRoU2VjdG9yKEQpKSxhPVtaKEQsY1swXSxjWzFdKSxaKEYsY1swXSxjWzFdKV0uam9pbigiICIpKSxLKG4sYSl9ZnVuY3Rpb24gZXQoKXtpZihkLnJlbW92ZVpvb21ib3gociksbnVsbCE9PUQmJm51bGwhPT1GKXt2YXIgdD17fTtydCh0KSxkLnNob3dEb3VibGVDbGlja05vdGlmaWVyKHIpLGkuY2FsbCgiX2d1aVJlbGF5b3V0IixyLHQpfX1mdW5jdGlvbiBydCh0KXt2YXIgcj1ULl9ybCxuPShyWzFdLXJbMF0pLygxLWgvdSkvdSxhPVtyWzBdKyhELWgpKm4sclswXSsoRi1oKSpuXTt0W2UuaWQrIi5yYWRpYWxheGlzLnJhbmdlIl09YX1mdW5jdGlvbiBudCh0LG4pe3ZhciBhPXIuX2Z1bGxMYXlvdXQuY2xpY2ttb2RlO2lmKGQucmVtb3ZlWm9vbWJveChyKSwyPT09dCl7dmFyIG89e307Zm9yKHZhciBzIGluIGUudmlld0luaXRpYWwpb1tlLmlkKyIuIitzXT1lLnZpZXdJbml0aWFsW3NdO3IuZW1pdCgicGxvdGx5X2RvdWJsZWNsaWNrIixudWxsKSxpLmNhbGwoIl9ndWlSZWxheW91dCIscixvKX1hLmluZGV4T2YoInNlbGVjdCIpPi0xJiYxPT09dCYmeChuLHIsW2UueGF4aXNdLFtlLnlheGlzXSxlLmlkLHEpLGEuaW5kZXhPZigiZXZlbnQiKT4tMSYmdi5jbGljayhyLG4sZS5pZCl9cS5wcmVwRm49ZnVuY3Rpb24odCxuLGkpe3ZhciBvPXIuX2Z1bGxMYXlvdXQuZHJhZ21vZGUsbD1PLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKHo9bi1sLmxlZnQsST1pLWwudG9wLGspe3ZhciBjPUEuZmluZFBvbHlnb25PZmZzZXQodSx3WzBdLHdbMV0sayk7eis9bStjWzBdLEkrPV8rY1sxXX1zd2l0Y2gobyl7Y2FzZSJ6b29tIjpxLm1vdmVGbj1rP3R0OlEscS5jbGlja0ZuPW50LHEuZG9uZUZuPWV0LGZ1bmN0aW9uKCl7RD1udWxsLEY9bnVsbCxCPWUucGF0aFN1YnBsb3QoKSxOPSExO3ZhciB0PXIuX2Z1bGxMYXlvdXRbZS5pZF07aj1hKHQuYmdjb2xvcikuZ2V0THVtaW5hbmNlKCksKFY9ZC5tYWtlWm9vbWJveChzLGosZixwLEIpKS5hdHRyKCJmaWxsLXJ1bGUiLCJldmVub2RkIiksVT1kLm1ha2VDb3JuZXJzKHMsZixwKSxiKHIpfSgpO2JyZWFrO2Nhc2Uic2VsZWN0IjpjYXNlImxhc3NvIjp5KHQsbixpLHEsbyl9fSxPLm9ubW91c2Vtb3ZlPWZ1bmN0aW9uKHQpe3YuaG92ZXIocix0LGUuaWQpLHIuX2Z1bGxMYXlvdXQuX2xhc3Rob3Zlcj1PLHIuX2Z1bGxMYXlvdXQuX2hvdmVyc3VicGxvdD1lLmlkfSxPLm9ubW91c2VvdXQ9ZnVuY3Rpb24odCl7ci5fZHJhZ2dpbmd8fGcudW5ob3ZlcihyLHQpfSxnLmluaXQocSl9LE8udXBkYXRlUmFkaWFsRHJhZz1mdW5jdGlvbih0LGUscil7dmFyIGE9dGhpcyxzPWEuZ2QsbD1hLmxheWVycyxjPWEucmFkaXVzLHU9YS5pbm5lclJhZGl1cyxoPWEuY3gsZj1hLmN5LHA9YS5yYWRpYWxBeGlzLHY9TS5yYWRpYWxEcmFnQm94U2l6ZSxtPXYvMjtpZihwLnZpc2libGUpe3ZhciB5LHgsXyxUPUwoYS5yYWRpYWxBeGlzQW5nbGUpLEE9cC5fcmwsUz1BWzBdLEU9QVsxXSxQPUFbcl0sTz0uNzUqKEFbMV0tQVswXSkvKDEtZS5ob2xlKS9jO3I/KHk9aCsoYyttKSpNYXRoLmNvcyhUKSx4PWYtKGMrbSkqTWF0aC5zaW4oVCksXz0icmFkaWFsZHJhZyIpOih5PWgrKHUtbSkqTWF0aC5jb3MoVCkseD1mLSh1LW0pKk1hdGguc2luKFQpLF89InJhZGlhbGRyYWctaW5uZXIiKTt2YXIgeixCLE4saj1kLm1ha2VSZWN0RHJhZ2dlcihsLF8sImNyb3NzaGFpciIsLW0sLW0sdix2KSxWPXtlbGVtZW50OmosZ2Q6c307RChuLnNlbGVjdChqKSxwLnZpc2libGUmJnU8Yyx7dHJhbnNmb3JtOlIoeSx4KX0pLFYucHJlcEZuPWZ1bmN0aW9uKCl7ej1udWxsLEI9bnVsbCxOPW51bGwsVi5tb3ZlRm49VSxWLmRvbmVGbj1xLGIocyl9LFYuY2xhbXBGbj1mdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLnNxcnQodCp0K2UqZSk8TS5NSU5EUkFHJiYodD0wLGU9MCksW3QsZV19LGcuaW5pdChWKX1mdW5jdGlvbiBVKHQsZSl7aWYoeil6KHQsZSk7ZWxzZXt2YXIgbj1bdCwtZV0saT1bTWF0aC5jb3MoVCksTWF0aC5zaW4oVCldLGw9TWF0aC5hYnMoby5kb3QobixpKS9NYXRoLnNxcnQoby5kb3QobixuKSkpO2lzTmFOKGwpfHwoej1sPC41P0g6Ryl9dmFyIGM9e307IWZ1bmN0aW9uKHQpe251bGwhPT1CP3RbYS5pZCsiLnJhZGlhbGF4aXMuYW5nbGUiXT1COm51bGwhPT1OJiYodFthLmlkKyIucmFkaWFsYXhpcy5yYW5nZVsiK3IrIl0iXT1OKX0oYykscy5lbWl0KCJwbG90bHlfcmVsYXlvdXRpbmciLGMpfWZ1bmN0aW9uIHEoKXtudWxsIT09Qj9pLmNhbGwoIl9ndWlSZWxheW91dCIscyxhLmlkKyIucmFkaWFsYXhpcy5hbmdsZSIsQik6bnVsbCE9PU4mJmkuY2FsbCgiX2d1aVJlbGF5b3V0IixzLGEuaWQrIi5yYWRpYWxheGlzLnJhbmdlWyIrcisiXSIsTil9ZnVuY3Rpb24gSCh0LGUpe2lmKDAhPT1yKXt2YXIgbj15K3QsaT14K2U7Qj1NYXRoLmF0YW4yKGYtaSxuLWgpLGEudmFuZ2xlcyYmKEI9SShCLGEudmFuZ2xlcykpLEI9QyhCKTt2YXIgbz1SKGgsZikrRigtQik7bFsicmFkaWFsLWF4aXMiXS5hdHRyKCJ0cmFuc2Zvcm0iLG8pLGxbInJhZGlhbC1saW5lIl0uc2VsZWN0KCJsaW5lIikuYXR0cigidHJhbnNmb3JtIixvKTt2YXIgcz1hLmdkLl9mdWxsTGF5b3V0LGM9c1thLmlkXTthLnVwZGF0ZVJhZGlhbEF4aXNUaXRsZShzLGMsQil9fWZ1bmN0aW9uIEcodCxlKXt2YXIgbj1vLmRvdChbdCwtZV0sW01hdGguY29zKFQpLE1hdGguc2luKFQpXSk7aWYoTj1QLU8qbixPPjA9PShyP04+UzpOPEUpKXt2YXIgbD1zLl9mdWxsTGF5b3V0LGM9bFthLmlkXTtwLnJhbmdlW3JdPU4scC5fcmxbcl09TixhLnVwZGF0ZVJhZGlhbEF4aXMobCxjKSxhLnhheGlzLnNldFJhbmdlKCksYS54YXhpcy5zZXRTY2FsZSgpLGEueWF4aXMuc2V0UmFuZ2UoKSxhLnlheGlzLnNldFNjYWxlKCk7dmFyIHU9ITE7Zm9yKHZhciBoIGluIGEudHJhY2VIYXNoKXt2YXIgZj1hLnRyYWNlSGFzaFtoXSxkPW8uZmlsdGVyVmlzaWJsZShmKTtmWzBdWzBdLnRyYWNlLl9tb2R1bGUucGxvdChzLGEsZCxjKSxpLnRyYWNlSXMoaCwiZ2wiKSYmZC5sZW5ndGgmJih1PSEwKX11JiYodyhzKSxrKHMpKX1lbHNlIE49bnVsbH19LE8udXBkYXRlQW5ndWxhckRyYWc9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxyPWUuZ2QsYT1lLmxheWVycyxzPWUucmFkaXVzLGM9ZS5hbmd1bGFyQXhpcyx1PWUuY3gsaD1lLmN5LGY9ZS5jeHgscD1lLmN5eSx2PU0uYW5ndWxhckRyYWdCb3hTaXplLG09ZC5tYWtlRHJhZ2dlcihhLCJwYXRoIiwiYW5ndWxhcmRyYWciLCJtb3ZlIikseT17ZWxlbWVudDptLGdkOnJ9O2Z1bmN0aW9uIHgodCxlKXtyZXR1cm4gTWF0aC5hdGFuMihwK3YtZSx0LWYtdil9bi5zZWxlY3QobSkuYXR0cigiZCIsZS5wYXRoQW5udWx1cyhzLHMrdikpLmF0dHIoInRyYW5zZm9ybSIsUih1LGgpKS5jYWxsKF8sIm1vdmUiKTt2YXIgVCxBLFMsRSxMLFAsTz1hLmZyb250cGxvdC5zZWxlY3QoIi5zY2F0dGVybGF5ZXIiKS5zZWxlY3RBbGwoIi50cmFjZSIpLHo9Ty5zZWxlY3RBbGwoIi5wb2ludCIpLEk9Ty5zZWxlY3RBbGwoIi50ZXh0cG9pbnQiKTtmdW5jdGlvbiBEKHQscyl7dmFyIGQ9ZS5nZC5fZnVsbExheW91dCxnPWRbZS5pZF0sdj14KFQrdCxBK3MpLG09Qyh2LVApO2lmKEU9UyttLGEuZnJvbnRwbG90LmF0dHIoInRyYW5zZm9ybSIsUihlLnhPZmZzZXQyLGUueU9mZnNldDIpK0YoWy1tLGYscF0pKSxlLnZhbmdsZXMpe0w9ZS5yYWRpYWxBeGlzQW5nbGUrbTt2YXIgeT1SKHUsaCkrRigtbSksYj1SKHUsaCkrRigtTCk7YS5iZy5hdHRyKCJ0cmFuc2Zvcm0iLHkpLGFbInJhZGlhbC1ncmlkIl0uYXR0cigidHJhbnNmb3JtIix5KSxhWyJyYWRpYWwtYXhpcyJdLmF0dHIoInRyYW5zZm9ybSIsYiksYVsicmFkaWFsLWxpbmUiXS5zZWxlY3QoImxpbmUiKS5hdHRyKCJ0cmFuc2Zvcm0iLGIpLGUudXBkYXRlUmFkaWFsQXhpc1RpdGxlKGQsZyxMKX1lbHNlIGUuY2xpcFBhdGhzLmZvclRyYWNlcy5zZWxlY3QoInBhdGgiKS5hdHRyKCJ0cmFuc2Zvcm0iLFIoZixwKStGKG0pKTt6LmVhY2goZnVuY3Rpb24oKXt2YXIgdD1uLnNlbGVjdCh0aGlzKSxlPWwuZ2V0VHJhbnNsYXRlKHQpO3QuYXR0cigidHJhbnNmb3JtIixSKGUueCxlLnkpK0YoW21dKSl9KSxJLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1uLnNlbGVjdCh0aGlzKSxlPXQuc2VsZWN0KCJ0ZXh0Iikscj1sLmdldFRyYW5zbGF0ZSh0KTt0LmF0dHIoInRyYW5zZm9ybSIsRihbbSxlLmF0dHIoIngiKSxlLmF0dHIoInkiKV0pK1Ioci54LHIueSkpfSksYy5yb3RhdGlvbj1vLm1vZEhhbGYoRSwzNjApLGUudXBkYXRlQW5ndWxhckF4aXMoZCxnKSxlLl9oYXNDbGlwT25BeGlzRmFsc2UmJiFvLmlzRnVsbENpcmNsZShlLnNlY3RvckluUmFkKSYmTy5jYWxsKGwuaGlkZU91dHNpZGVSYW5nZVBvaW50cyxlKTt2YXIgXz0hMTtmb3IodmFyIE0gaW4gZS50cmFjZUhhc2gpaWYoaS50cmFjZUlzKE0sImdsIikpe3ZhciBEPWUudHJhY2VIYXNoW01dLE49by5maWx0ZXJWaXNpYmxlKEQpO0RbMF1bMF0udHJhY2UuX21vZHVsZS5wbG90KHIsZSxOLGcpLE4ubGVuZ3RoJiYoXz0hMCl9XyYmKHcociksayhyKSk7dmFyIGo9e307QihqKSxyLmVtaXQoInBsb3RseV9yZWxheW91dGluZyIsail9ZnVuY3Rpb24gQih0KXt0W2UuaWQrIi5hbmd1bGFyYXhpcy5yb3RhdGlvbiJdPUUsZS52YW5nbGVzJiYodFtlLmlkKyIucmFkaWFsYXhpcy5hbmdsZSJdPUwpfWZ1bmN0aW9uIE4oKXtJLnNlbGVjdCgidGV4dCIpLmF0dHIoInRyYW5zZm9ybSIsbnVsbCk7dmFyIHQ9e307Qih0KSxpLmNhbGwoIl9ndWlSZWxheW91dCIscix0KX15LnByZXBGbj1mdW5jdGlvbihuLGEsaSl7dmFyIG89dFtlLmlkXTtTPW8uYW5ndWxhcmF4aXMucm90YXRpb247dmFyIHM9bS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtUPWEtcy5sZWZ0LEE9aS1zLnRvcCxQPXgoVCxBKSx5Lm1vdmVGbj1ELHkuZG9uZUZuPU4sYihyKX0sZS52YW5nbGVzJiYhby5pc0Z1bGxDaXJjbGUoZS5zZWN0b3JJblJhZCkmJih5LnByZXBGbj1vLm5vb3AsXyhuLnNlbGVjdChtKSxudWxsKSksZy5pbml0KHkpfSxPLmlzUHRJbnNpZGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5zZWN0b3JJblJhZCxyPXRoaXMudmFuZ2xlcyxuPXRoaXMuYW5ndWxhckF4aXMuYzJnKHQudGhldGEpLGE9dGhpcy5yYWRpYWxBeGlzLGk9YS5jMmwodC5yKSxzPWEuX3JsO3JldHVybihyP0EuaXNQdEluc2lkZVBvbHlnb246by5pc1B0SW5zaWRlU2VjdG9yKShpLG4scyxlLHIpfSxPLnBhdGhBcmM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5zZWN0b3JJblJhZCxyPXRoaXMudmFuZ2xlcztyZXR1cm4ocj9BLnBhdGhQb2x5Z29uOm8ucGF0aEFyYykodCxlWzBdLGVbMV0scil9LE8ucGF0aFNlY3Rvcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnNlY3RvckluUmFkLHI9dGhpcy52YW5nbGVzO3JldHVybihyP0EucGF0aFBvbHlnb246by5wYXRoU2VjdG9yKSh0LGVbMF0sZVsxXSxyKX0sTy5wYXRoQW5udWx1cz1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuc2VjdG9ySW5SYWQsbj10aGlzLnZhbmdsZXM7cmV0dXJuKG4/QS5wYXRoUG9seWdvbkFubnVsdXM6by5wYXRoQW5udWx1cykodCxlLHJbMF0sclsxXSxuKX0sTy5wYXRoU3VicGxvdD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuaW5uZXJSYWRpdXMsZT10aGlzLnJhZGl1cztyZXR1cm4gdD90aGlzLnBhdGhBbm51bHVzKHQsZSk6dGhpcy5wYXRoU2VjdG9yKGUpfSxPLmZpbGxWaWV3SW5pdGlhbEtleT1mdW5jdGlvbih0LGUpe3QgaW4gdGhpcy52aWV3SW5pdGlhbHx8KHRoaXMudmlld0luaXRpYWxbdF09ZSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjU5MiwiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudCI6NjEwLCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjYxMywiLi4vLi4vY29tcG9uZW50cy9meCI6NjMwLCIuLi8uLi9jb21wb25lbnRzL3RpdGxlcyI6Njc5LCIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50Ijo2ODYsIi4uLy4uL2xpYiI6NzE3LCIuLi8uLi9saWIvY2xlYXJfZ2xfY2FudmFzZXMiOjcwMiwiLi4vLi4vbGliL3NldGN1cnNvciI6NzM3LCIuLi8uLi9wbG90X2FwaS9zdWJyb3V0aW5lcyI6NzU2LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NzY1LCIuLi8uLi9yZWdpc3RyeSI6ODQ2LCIuLi9jYXJ0ZXNpYW4vYXV0b3JhbmdlIjo3NjQsIi4uL2NhcnRlc2lhbi9kcmFnYm94Ijo3NzMsIi4uL2NhcnRlc2lhbi9zZWxlY3QiOjc4MiwiLi4vY2FydGVzaWFuL3NldF9jb252ZXJ0Ijo3ODMsIi4uL3Bsb3RzIjo4MjYsIi4vY29uc3RhbnRzIjo4MjcsIi4vaGVscGVycyI6ODI4LCIuL3NldF9jb252ZXJ0Ijo4MzksZDM6MTY1LHRpbnljb2xvcjI6NTM2fV0sODM5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vY2FydGVzaWFuL3NldF9jb252ZXJ0IiksaT1uLmRlZzJyYWQsbz1uLnJhZDJkZWc7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtzd2l0Y2goYSh0LHIpLHQuX2lkKXtjYXNlIngiOmNhc2UicmFkaWFsYXhpcyI6IWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5fc3VicGxvdDt0LnNldEdlb21ldHJ5PWZ1bmN0aW9uKCl7dmFyIGU9dC5fcmxbMF0sbj10Ll9ybFsxXSxhPXIuaW5uZXJSYWRpdXMsaT0oci5yYWRpdXMtYSkvKG4tZSksbz1hL2kscz1lPm4/ZnVuY3Rpb24odCl7cmV0dXJuIHQ8PTB9OmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0wfTt0LmMyZz1mdW5jdGlvbihyKXt2YXIgbj10LmMybChyKS1lO3JldHVybihzKG4pP246MCkrb30sdC5nMmM9ZnVuY3Rpb24ocil7cmV0dXJuIHQubDJjKHIrZS1vKX0sdC5nMnA9ZnVuY3Rpb24odCl7cmV0dXJuIHQqaX0sdC5jMnA9ZnVuY3Rpb24oZSl7cmV0dXJuIHQuZzJwKHQuYzJnKGUpKX19fSh0LGUpO2JyZWFrO2Nhc2UiYW5ndWxhcmF4aXMiOiFmdW5jdGlvbih0LGUpe3ZhciByPXQudHlwZTtpZigibGluZWFyIj09PXIpe3ZhciBhPXQuZDJjLHM9dC5jMmQ7dC5kMmM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24odCxlKXtyZXR1cm4iZGVncmVlcyI9PT1lP2kodCk6dH0oYSh0KSxlKX0sdC5jMmQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gcyhmdW5jdGlvbih0LGUpe3JldHVybiJkZWdyZWVzIj09PWU/byh0KTp0fSh0LGUpKX19dC5tYWtlQ2FsY2RhdGE9ZnVuY3Rpb24oZSxhKXt2YXIgaSxvLHM9ZVthXSxsPWUuX2xlbmd0aCxjPWZ1bmN0aW9uKHIpe3JldHVybiB0LmQyYyhyLGUudGhldGF1bml0KX07aWYocyl7aWYobi5pc1R5cGVkQXJyYXkocykmJiJsaW5lYXIiPT09cil7aWYobD09PXMubGVuZ3RoKXJldHVybiBzO2lmKHMuc3ViYXJyYXkpcmV0dXJuIHMuc3ViYXJyYXkoMCxsKX1mb3IoaT1uZXcgQXJyYXkobCksbz0wO288bDtvKyspaVtvXT1jKHNbb10pfWVsc2V7dmFyIHU9YSsiMCIsaD0iZCIrYSxmPXUgaW4gZT9jKGVbdV0pOjAscD1lW2hdP2MoZVtoXSk6KHQucGVyaW9kfHwyKk1hdGguUEkpL2w7Zm9yKGk9bmV3IEFycmF5KGwpLG89MDtvPGw7bysrKWlbb109ZitvKnB9cmV0dXJuIGl9LHQuc2V0R2VvbWV0cnk9ZnVuY3Rpb24oKXt2YXIgYSxzLGwsYyx1PWUuc2VjdG9yLGg9dS5tYXAoaSksZj17Y2xvY2t3aXNlOi0xLGNvdW50ZXJjbG9ja3dpc2U6MX1bdC5kaXJlY3Rpb25dLHA9aSh0LnJvdGF0aW9uKSxkPWZ1bmN0aW9uKHQpe3JldHVybiBmKnQrcH0sZz1mdW5jdGlvbih0KXtyZXR1cm4odC1wKS9mfTtzd2l0Y2gocil7Y2FzZSJsaW5lYXIiOnM9YT1uLmlkZW50aXR5LGM9aSxsPW8sdC5yYW5nZT1uLmlzRnVsbENpcmNsZShoKT9bdVswXSx1WzBdKzM2MF06aC5tYXAoZykubWFwKG8pO2JyZWFrO2Nhc2UiY2F0ZWdvcnkiOnZhciB2PXQuX2NhdGVnb3JpZXMubGVuZ3RoLG09dC5wZXJpb2Q/TWF0aC5tYXgodC5wZXJpb2Qsdik6djswPT09bSYmKG09MSkscz1jPWZ1bmN0aW9uKHQpe3JldHVybiAyKnQqTWF0aC5QSS9tfSxhPWw9ZnVuY3Rpb24odCl7cmV0dXJuIHQqbS9NYXRoLlBJLzJ9LHQucmFuZ2U9WzAsbV19dC5jMmc9ZnVuY3Rpb24odCl7cmV0dXJuIGQocyh0KSl9LHQuZzJjPWZ1bmN0aW9uKHQpe3JldHVybiBhKGcodCkpfSx0LnQyZz1mdW5jdGlvbih0KXtyZXR1cm4gZChjKHQpKX0sdC5nMnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGwoZyh0KSl9fX0odCxlKX19fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi9jYXJ0ZXNpYW4vc2V0X2NvbnZlcnQiOjc4M31dLDg0MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9saWIiKSxhPXQoIi4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKSxpPXQoIi4vZG9tYWluIikuZGVmYXVsdHM7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8pe3ZhciBzLGwsYz1vLnR5cGUsdT1vLmF0dHJpYnV0ZXMsaD1vLmhhbmRsZURlZmF1bHRzLGY9by5wYXJ0aXRpb258fCJ4IixwPWUuX3N1YnBsb3RzW2NdLGQ9cC5sZW5ndGgsZz1kJiZwWzBdLnJlcGxhY2UoL1xkKyQvLCIiKTtmdW5jdGlvbiB2KHQsZSl7cmV0dXJuIG4uY29lcmNlKHMsbCx1LHQsZSl9Zm9yKHZhciBtPTA7bTxkO20rKyl7dmFyIHk9cFttXTtzPXRbeV0/dFt5XTp0W3ldPXt9LGw9YS5uZXdDb250YWluZXIoZSx5LGcpLHYoInVpcmV2aXNpb24iLGUudWlyZXZpc2lvbik7dmFyIHg9e307eFtmXT1bbS9kLChtKzEpL2RdLGkobCxlLHYseCksby5pZD15LGgocyxsLHYsbyl9fX0seyIuLi9saWIiOjcxNywiLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NzU1LCIuL2RvbWFpbiI6NzkwfV0sODQxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO1snVmFyaWFibGVzIGFyZSBpbnNlcnRlZCB1c2luZyAle3ZhcmlhYmxlfSwgZm9yIGV4YW1wbGUgInk6ICV7eX0iLicsJ051bWJlcnMgYXJlIGZvcm1hdHRlZCB1c2luZyBkMy1mb3JtYXRcJ3Mgc3ludGF4ICV7dmFyaWFibGU6ZDMtZm9ybWF0fSwgZm9yIGV4YW1wbGUgIlByaWNlOiAle3k6JC4yZn0iLicsdCgiLi4vY29uc3RhbnRzL2RvY3MiKS5GT1JNQVRfTElOSywiZm9yIGRldGFpbHMgb24gdGhlIGZvcm1hdHRpbmcgc3ludGF4LiIsJ0RhdGVzIGFyZSBmb3JtYXR0ZWQgdXNpbmcgZDMtdGltZS1mb3JtYXRcJ3Mgc3ludGF4ICV7dmFyaWFibGV8ZDMtdGltZS1mb3JtYXR9LCBmb3IgZXhhbXBsZSAiRGF5OiAlezIwMTktMDEtMDF8JUF9Ii4nLHQoIi4uL2NvbnN0YW50cy9kb2NzIikuREFURV9GT1JNQVRfTElOSywiZm9yIGRldGFpbHMgb24gdGhlIGRhdGUgZm9ybWF0dGluZyBzeW50YXguIl0uam9pbigiICIpO2Z1bmN0aW9uIG4odCl7dmFyIGU9dC5kZXNjcmlwdGlvbj8iICIrdC5kZXNjcmlwdGlvbjoiIixyPXQua2V5c3x8W107aWYoci5sZW5ndGg+MCl7Zm9yKHZhciBuPVtdLGE9MDthPHIubGVuZ3RoO2ErKyluW2FdPSJgIityW2FdKyJgIjtlKz0iRmluYWxseSwgdGhlIHRlbXBsYXRlIHN0cmluZyBoYXMgYWNjZXNzIHRvICIsZT0xPT09ci5sZW5ndGg/InZhcmlhYmxlICIrblswXToidmFyaWFibGVzICIrbi5zbGljZSgwLC0xKS5qb2luKCIsICIpKyIgYW5kICIrbi5zbGljZSgtMSkrIi4ifXJldHVybiBlfXIuaG92ZXJ0ZW1wbGF0ZUF0dHJzPWZ1bmN0aW9uKHQsZSl7dD10fHx7fTtuKGU9ZXx8e30pO3ZhciByPXt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6dC5lZGl0VHlwZXx8Im5vbmUifTtyZXR1cm4hMSE9PXQuYXJyYXlPayYmKHIuYXJyYXlPaz0hMCkscn0sci50ZXh0dGVtcGxhdGVBdHRycz1mdW5jdGlvbih0LGUpe3Q9dHx8e307bihlPWV8fHt9KTt2YXIgcj17dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGVkaXRUeXBlOnQuZWRpdFR5cGV8fCJjYWxjIn07cmV0dXJuITEhPT10LmFycmF5T2smJihyLmFycmF5T2s9ITApLHJ9fSx7Ii4uL2NvbnN0YW50cy9kb2NzIjo2ODh9XSw4NDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi90ZXJuYXJ5IiksYT10KCIuLi8uLi9wbG90cy9nZXRfZGF0YSIpLmdldFN1YnBsb3RDYWxjRGF0YSxpPXQoIi4uLy4uL2xpYiIpLmNvdW50ZXJSZWdleDtyLm5hbWU9InRlcm5hcnkiO3ZhciBvPXIuYXR0cj0ic3VicGxvdCI7ci5pZFJvb3Q9InRlcm5hcnkiLHIuaWRSZWdleD1yLmF0dHJSZWdleD1pKCJ0ZXJuYXJ5IiksKHIuYXR0cmlidXRlcz17fSlbb109e3ZhbFR5cGU6InN1YnBsb3RpZCIsZGZsdDoidGVybmFyeSIsZWRpdFR5cGU6ImNhbGMifSxyLmxheW91dEF0dHJpYnV0ZXM9dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLHIuc3VwcGx5TGF5b3V0RGVmYXVsdHM9dCgiLi9sYXlvdXRfZGVmYXVsdHMiKSxyLnBsb3Q9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuX2Z1bGxMYXlvdXQscj10LmNhbGNkYXRhLGk9ZS5fc3VicGxvdHMudGVybmFyeSxvPTA7bzxpLmxlbmd0aDtvKyspe3ZhciBzPWlbb10sbD1hKHIsInRlcm5hcnkiLHMpLGM9ZVtzXS5fc3VicGxvdDtjfHwoYz1uZXcgbih7aWQ6cyxncmFwaERpdjp0LGNvbnRhaW5lcjplLl90ZXJuYXJ5bGF5ZXIubm9kZSgpfSxlKSxlW3NdLl9zdWJwbG90PWMpLGMucGxvdChsLGUsdC5fcHJvbWlzZXMpfX0sci5jbGVhbj1mdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGE9bi5fc3VicGxvdHMudGVybmFyeXx8W10saT0wO2k8YS5sZW5ndGg7aSsrKXt2YXIgbz1hW2ldLHM9bltvXS5fc3VicGxvdDshZVtvXSYmcyYmKHMucGxvdENvbnRhaW5lci5yZW1vdmUoKSxzLmNsaXBEZWYucmVtb3ZlKCkscy5jbGlwRGVmUmVsYXRpdmUucmVtb3ZlKCkscy5sYXllcnNbImEtdGl0bGUiXS5yZW1vdmUoKSxzLmxheWVyc1siYi10aXRsZSJdLnJlbW92ZSgpLHMubGF5ZXJzWyJjLXRpdGxlIl0ucmVtb3ZlKCkpfX19LHsiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3Bsb3RzL2dldF9kYXRhIjo4MDAsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjg0MywiLi9sYXlvdXRfZGVmYXVsdHMiOjg0NCwiLi90ZXJuYXJ5Ijo4NDV9XSw4NDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIiksYT10KCIuLi9kb21haW4iKS5hdHRyaWJ1dGVzLGk9dCgiLi4vY2FydGVzaWFuL2xheW91dF9hdHRyaWJ1dGVzIiksbz10KCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIikub3ZlcnJpZGVBbGwscz10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxsPXt0aXRsZTp7dGV4dDppLnRpdGxlLnRleHQsZm9udDppLnRpdGxlLmZvbnR9LGNvbG9yOmkuY29sb3IsdGlja21vZGU6aS50aWNrbW9kZSxudGlja3M6cyh7fSxpLm50aWNrcyx7ZGZsdDo2LG1pbjoxfSksdGljazA6aS50aWNrMCxkdGljazppLmR0aWNrLHRpY2t2YWxzOmkudGlja3ZhbHMsdGlja3RleHQ6aS50aWNrdGV4dCx0aWNrczppLnRpY2tzLHRpY2tsZW46aS50aWNrbGVuLHRpY2t3aWR0aDppLnRpY2t3aWR0aCx0aWNrY29sb3I6aS50aWNrY29sb3Isc2hvd3RpY2tsYWJlbHM6aS5zaG93dGlja2xhYmVscyxzaG93dGlja3ByZWZpeDppLnNob3d0aWNrcHJlZml4LHRpY2twcmVmaXg6aS50aWNrcHJlZml4LHNob3d0aWNrc3VmZml4Omkuc2hvd3RpY2tzdWZmaXgsdGlja3N1ZmZpeDppLnRpY2tzdWZmaXgsc2hvd2V4cG9uZW50Omkuc2hvd2V4cG9uZW50LGV4cG9uZW50Zm9ybWF0OmkuZXhwb25lbnRmb3JtYXQsc2VwYXJhdGV0aG91c2FuZHM6aS5zZXBhcmF0ZXRob3VzYW5kcyx0aWNrZm9udDppLnRpY2tmb250LHRpY2thbmdsZTppLnRpY2thbmdsZSx0aWNrZm9ybWF0OmkudGlja2Zvcm1hdCx0aWNrZm9ybWF0c3RvcHM6aS50aWNrZm9ybWF0c3RvcHMsaG92ZXJmb3JtYXQ6aS5ob3ZlcmZvcm1hdCxzaG93bGluZTpzKHt9LGkuc2hvd2xpbmUse2RmbHQ6ITB9KSxsaW5lY29sb3I6aS5saW5lY29sb3IsbGluZXdpZHRoOmkubGluZXdpZHRoLHNob3dncmlkOnMoe30saS5zaG93Z3JpZCx7ZGZsdDohMH0pLGdyaWRjb2xvcjppLmdyaWRjb2xvcixncmlkd2lkdGg6aS5ncmlkd2lkdGgsbGF5ZXI6aS5sYXllcixtaW46e3ZhbFR5cGU6Im51bWJlciIsZGZsdDowLG1pbjowfSxfZGVwcmVjYXRlZDp7dGl0bGU6aS5fZGVwcmVjYXRlZC50aXRsZSx0aXRsZWZvbnQ6aS5fZGVwcmVjYXRlZC50aXRsZWZvbnR9fSxjPWUuZXhwb3J0cz1vKHtkb21haW46YSh7bmFtZToidGVybmFyeSJ9KSxiZ2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpuLmJhY2tncm91bmR9LHN1bTp7dmFsVHlwZToibnVtYmVyIixkZmx0OjEsbWluOjB9LGFheGlzOmwsYmF4aXM6bCxjYXhpczpsfSwicGxvdCIsImZyb20tcm9vdCIpO2MudWlyZXZpc2lvbj17dmFsVHlwZToiYW55IixlZGl0VHlwZToibm9uZSJ9LGMuYWF4aXMudWlyZXZpc2lvbj1jLmJheGlzLnVpcmV2aXNpb249Yy5jYXhpcy51aXJldmlzaW9uPXt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJub25lIn19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIjo1OTEsIi4uLy4uL2xpYi9leHRlbmQiOjcwOCwiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyI6NzQ4LCIuLi9jYXJ0ZXNpYW4vbGF5b3V0X2F0dHJpYnV0ZXMiOjc3NywiLi4vZG9tYWluIjo3OTB9XSw4NDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGE9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLGk9dCgiLi4vLi4vbGliIiksbz10KCIuLi9zdWJwbG90X2RlZmF1bHRzIikscz10KCIuLi9jYXJ0ZXNpYW4vdGlja19sYWJlbF9kZWZhdWx0cyIpLGw9dCgiLi4vY2FydGVzaWFuL3RpY2tfbWFya19kZWZhdWx0cyIpLGM9dCgiLi4vY2FydGVzaWFuL3RpY2tfdmFsdWVfZGVmYXVsdHMiKSx1PXQoIi4uL2NhcnRlc2lhbi9saW5lX2dyaWRfZGVmYXVsdHMiKSxoPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxmPVsiYWF4aXMiLCJiYXhpcyIsImNheGlzIl07ZnVuY3Rpb24gcCh0LGUscixpKXt2YXIgbyxzLGwsYz1yKCJiZ2NvbG9yIiksdT1yKCJzdW0iKTtpLmJnQ29sb3I9bi5jb21iaW5lKGMsaS5wYXBlcl9iZ2NvbG9yKTtmb3IodmFyIGg9MDtoPGYubGVuZ3RoO2grKylzPXRbbz1mW2hdXXx8e30sKGw9YS5uZXdDb250YWluZXIoZSxvKSkuX25hbWU9byxkKHMsbCxpLGUpO3ZhciBwPWUuYWF4aXMsZz1lLmJheGlzLHY9ZS5jYXhpcztwLm1pbitnLm1pbit2Lm1pbj49dSYmKHAubWluPTAsZy5taW49MCx2Lm1pbj0wLHQuYWF4aXMmJmRlbGV0ZSB0LmFheGlzLm1pbix0LmJheGlzJiZkZWxldGUgdC5iYXhpcy5taW4sdC5jYXhpcyYmZGVsZXRlIHQuY2F4aXMubWluKX1mdW5jdGlvbiBkKHQsZSxyLG4pe3ZhciBhPWhbZS5fbmFtZV07ZnVuY3Rpb24gbyhyLG4pe3JldHVybiBpLmNvZXJjZSh0LGUsYSxyLG4pfW8oInVpcmV2aXNpb24iLG4udWlyZXZpc2lvbiksZS50eXBlPSJsaW5lYXIiO3ZhciBmPW8oImNvbG9yIikscD1mIT09YS5jb2xvci5kZmx0P2Y6ci5mb250LmNvbG9yLGQ9ZS5fbmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSxnPSJDb21wb25lbnQgIitkLHY9bygidGl0bGUudGV4dCIsZyk7ZS5faG92ZXJ0aXRsZT12PT09Zz92OmQsaS5jb2VyY2VGb250KG8sInRpdGxlLmZvbnQiLHtmYW1pbHk6ci5mb250LmZhbWlseSxzaXplOk1hdGgucm91bmQoMS4yKnIuZm9udC5zaXplKSxjb2xvcjpwfSksbygibWluIiksYyh0LGUsbywibGluZWFyIikscyh0LGUsbywibGluZWFyIix7fSksbCh0LGUsbyx7b3V0ZXJUaWNrczohMH0pLG8oInNob3d0aWNrbGFiZWxzIikmJihpLmNvZXJjZUZvbnQobywidGlja2ZvbnQiLHtmYW1pbHk6ci5mb250LmZhbWlseSxzaXplOnIuZm9udC5zaXplLGNvbG9yOnB9KSxvKCJ0aWNrYW5nbGUiKSxvKCJ0aWNrZm9ybWF0IikpLHUodCxlLG8se2RmbHRDb2xvcjpmLGJnQ29sb3I6ci5iZ0NvbG9yLGJsZW5kOjYwLHNob3dMaW5lOiEwLHNob3dHcmlkOiEwLG5vWmVyb0xpbmU6ITAsYXR0cmlidXRlczphfSksbygiaG92ZXJmb3JtYXQiKSxvKCJsYXllciIpfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7byh0LGUscix7dHlwZToidGVybmFyeSIsYXR0cmlidXRlczpoLGhhbmRsZURlZmF1bHRzOnAsZm9udDplLmZvbnQscGFwZXJfYmdjb2xvcjplLnBhcGVyX2JnY29sb3J9KX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTkyLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NzU1LCIuLi9jYXJ0ZXNpYW4vbGluZV9ncmlkX2RlZmF1bHRzIjo3NzksIi4uL2NhcnRlc2lhbi90aWNrX2xhYmVsX2RlZmF1bHRzIjo3ODQsIi4uL2NhcnRlc2lhbi90aWNrX21hcmtfZGVmYXVsdHMiOjc4NSwiLi4vY2FydGVzaWFuL3RpY2tfdmFsdWVfZGVmYXVsdHMiOjc4NiwiLi4vc3VicGxvdF9kZWZhdWx0cyI6ODQwLCIuL2xheW91dF9hdHRyaWJ1dGVzIjo4NDN9XSw4NDU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxhPXQoInRpbnljb2xvcjIiKSxpPXQoIi4uLy4uL3JlZ2lzdHJ5Iiksbz10KCIuLi8uLi9saWIiKSxzPW8uXyxsPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxjPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLHU9dCgiLi4vY2FydGVzaWFuL3NldF9jb252ZXJ0IiksaD10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxmPXQoIi4uL3Bsb3RzIikscD10KCIuLi9jYXJ0ZXNpYW4vYXhlcyIpLGQ9dCgiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudCIpLGc9dCgiLi4vLi4vY29tcG9uZW50cy9meCIpLHY9dCgiLi4vLi4vY29tcG9uZW50cy90aXRsZXMiKSxtPXQoIi4uL2NhcnRlc2lhbi9zZWxlY3QiKS5wcmVwU2VsZWN0LHk9dCgiLi4vY2FydGVzaWFuL3NlbGVjdCIpLnNlbGVjdE9uQ2xpY2sseD10KCIuLi9jYXJ0ZXNpYW4vc2VsZWN0IikuY2xlYXJTZWxlY3QsYj10KCIuLi9jYXJ0ZXNpYW4vY29uc3RhbnRzIik7ZnVuY3Rpb24gXyh0LGUpe3RoaXMuaWQ9dC5pZCx0aGlzLmdyYXBoRGl2PXQuZ3JhcGhEaXYsdGhpcy5pbml0KGUpLHRoaXMubWFrZUZyYW1ld29yayhlKSx0aGlzLmFUaWNrTGF5b3V0PW51bGwsdGhpcy5iVGlja0xheW91dD1udWxsLHRoaXMuY1RpY2tMYXlvdXQ9bnVsbH1lLmV4cG9ydHM9Xzt2YXIgdz1fLnByb3RvdHlwZTt3LmluaXQ9ZnVuY3Rpb24odCl7dGhpcy5jb250YWluZXI9dC5fdGVybmFyeWxheWVyLHRoaXMuZGVmcz10Ll9kZWZzLHRoaXMubGF5b3V0SWQ9dC5fdWlkLHRoaXMudHJhY2VIYXNoPXt9LHRoaXMubGF5ZXJzPXt9fSx3LnBsb3Q9ZnVuY3Rpb24odCxlKXt2YXIgcj1lW3RoaXMuaWRdLG49ZS5fc2l6ZTt0aGlzLl9oYXNDbGlwT25BeGlzRmFsc2U9ITE7Zm9yKHZhciBhPTA7YTx0Lmxlbmd0aDthKyspe2lmKCExPT09dFthXVswXS50cmFjZS5jbGlwb25heGlzKXt0aGlzLl9oYXNDbGlwT25BeGlzRmFsc2U9ITA7YnJlYWt9fXRoaXMudXBkYXRlTGF5ZXJzKHIpLHRoaXMuYWRqdXN0TGF5b3V0KHIsbiksZi5nZW5lcmFsVXBkYXRlUGVyVHJhY2VNb2R1bGUodGhpcy5ncmFwaERpdix0aGlzLHQsciksdGhpcy5sYXllcnMucGxvdGJnLnNlbGVjdCgicGF0aCIpLmNhbGwobC5maWxsLHIuYmdjb2xvcil9LHcubWFrZUZyYW1ld29yaz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmdyYXBoRGl2LHI9dFt0aGlzLmlkXSxuPXRoaXMuY2xpcElkPSJjbGlwIit0aGlzLmxheW91dElkK3RoaXMuaWQsYT10aGlzLmNsaXBJZFJlbGF0aXZlPSJjbGlwLXJlbGF0aXZlIit0aGlzLmxheW91dElkK3RoaXMuaWQ7dGhpcy5jbGlwRGVmPW8uZW5zdXJlU2luZ2xlQnlJZCh0Ll9jbGlwcywiY2xpcFBhdGgiLG4sZnVuY3Rpb24odCl7dC5hcHBlbmQoInBhdGgiKS5hdHRyKCJkIiwiTTAsMFoiKX0pLHRoaXMuY2xpcERlZlJlbGF0aXZlPW8uZW5zdXJlU2luZ2xlQnlJZCh0Ll9jbGlwcywiY2xpcFBhdGgiLGEsZnVuY3Rpb24odCl7dC5hcHBlbmQoInBhdGgiKS5hdHRyKCJkIiwiTTAsMFoiKX0pLHRoaXMucGxvdENvbnRhaW5lcj1vLmVuc3VyZVNpbmdsZSh0aGlzLmNvbnRhaW5lciwiZyIsdGhpcy5pZCksdGhpcy51cGRhdGVMYXllcnMociksYy5zZXRDbGlwVXJsKHRoaXMubGF5ZXJzLmJhY2twbG90LG4sZSksYy5zZXRDbGlwVXJsKHRoaXMubGF5ZXJzLmdyaWRzLG4sZSl9LHcudXBkYXRlTGF5ZXJzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubGF5ZXJzLHI9WyJkcmFnbGF5ZXIiLCJwbG90YmciLCJiYWNrcGxvdCIsImdyaWRzIl07ImJlbG93IHRyYWNlcyI9PT10LmFheGlzLmxheWVyJiZyLnB1c2goImFheGlzIiwiYWxpbmUiKSwiYmVsb3cgdHJhY2VzIj09PXQuYmF4aXMubGF5ZXImJnIucHVzaCgiYmF4aXMiLCJibGluZSIpLCJiZWxvdyB0cmFjZXMiPT09dC5jYXhpcy5sYXllciYmci5wdXNoKCJjYXhpcyIsImNsaW5lIiksci5wdXNoKCJmcm9udHBsb3QiKSwiYWJvdmUgdHJhY2VzIj09PXQuYWF4aXMubGF5ZXImJnIucHVzaCgiYWF4aXMiLCJhbGluZSIpLCJhYm92ZSB0cmFjZXMiPT09dC5iYXhpcy5sYXllciYmci5wdXNoKCJiYXhpcyIsImJsaW5lIiksImFib3ZlIHRyYWNlcyI9PT10LmNheGlzLmxheWVyJiZyLnB1c2goImNheGlzIiwiY2xpbmUiKTt2YXIgYT10aGlzLnBsb3RDb250YWluZXIuc2VsZWN0QWxsKCJnLnRvcGxldmVsIikuZGF0YShyLFN0cmluZyksaT1bImFncmlkIiwiYmdyaWQiLCJjZ3JpZCJdO2EuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsZnVuY3Rpb24odCl7cmV0dXJuInRvcGxldmVsICIrdH0pLmVhY2goZnVuY3Rpb24odCl7dmFyIHI9bi5zZWxlY3QodGhpcyk7ZVt0XT1yLCJmcm9udHBsb3QiPT09dD9yLmFwcGVuZCgiZyIpLmNsYXNzZWQoInNjYXR0ZXJsYXllciIsITApOiJiYWNrcGxvdCI9PT10P3IuYXBwZW5kKCJnIikuY2xhc3NlZCgibWFwbGF5ZXIiLCEwKToicGxvdGJnIj09PXQ/ci5hcHBlbmQoInBhdGgiKS5hdHRyKCJkIiwiTTAsMFoiKToiYWxpbmUiPT09dHx8ImJsaW5lIj09PXR8fCJjbGluZSI9PT10P3IuYXBwZW5kKCJwYXRoIik6ImdyaWRzIj09PXQmJmkuZm9yRWFjaChmdW5jdGlvbih0KXtlW3RdPXIuYXBwZW5kKCJnIikuY2xhc3NlZCgiZ3JpZCAiK3QsITApfSl9KSxhLm9yZGVyKCl9O3ZhciBrPU1hdGguc3FydCg0LzMpO3cuYWRqdXN0TGF5b3V0PWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixhLGksbyxzLGY9dGhpcyxwPXQuZG9tYWluLGQ9KHAueFswXStwLnhbMV0pLzIsZz0ocC55WzBdK3AueVsxXSkvMix2PXAueFsxXS1wLnhbMF0sbT1wLnlbMV0tcC55WzBdLHk9diplLncseD1tKmUuaCxiPXQuc3VtLF89dC5hYXhpcy5taW4sdz10LmJheGlzLm1pbixUPXQuY2F4aXMubWluO3k+ayp4P2E9KGk9eCkqazppPShhPXkpL2ssbz12KmEveSxzPW0qaS94LHI9ZS5sK2UudypkLWEvMixuPWUudCtlLmgqKDEtZyktaS8yLGYueDA9cixmLnkwPW4sZi53PWEsZi5oPWksZi5zdW09YixmLnhheGlzPXt0eXBlOiJsaW5lYXIiLHJhbmdlOltfKzIqVC1iLGItXy0yKnddLGRvbWFpbjpbZC1vLzIsZCtvLzJdLF9pZDoieCJ9LHUoZi54YXhpcyxmLmdyYXBoRGl2Ll9mdWxsTGF5b3V0KSxmLnhheGlzLnNldFNjYWxlKCksZi54YXhpcy5pc1B0V2l0aGluUmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIHQuYT49Zi5hYXhpcy5yYW5nZVswXSYmdC5hPD1mLmFheGlzLnJhbmdlWzFdJiZ0LmI+PWYuYmF4aXMucmFuZ2VbMV0mJnQuYjw9Zi5iYXhpcy5yYW5nZVswXSYmdC5jPj1mLmNheGlzLnJhbmdlWzFdJiZ0LmM8PWYuY2F4aXMucmFuZ2VbMF19LGYueWF4aXM9e3R5cGU6ImxpbmVhciIscmFuZ2U6W18sYi13LVRdLGRvbWFpbjpbZy1zLzIsZytzLzJdLF9pZDoieSJ9LHUoZi55YXhpcyxmLmdyYXBoRGl2Ll9mdWxsTGF5b3V0KSxmLnlheGlzLnNldFNjYWxlKCksZi55YXhpcy5pc1B0V2l0aGluUmFuZ2U9ZnVuY3Rpb24oKXtyZXR1cm4hMH07dmFyIE09Zi55YXhpcy5kb21haW5bMF0sQT1mLmFheGlzPWgoe30sdC5hYXhpcyx7cmFuZ2U6W18sYi13LVRdLHNpZGU6ImxlZnQiLHRpY2thbmdsZTooK3QuYWF4aXMudGlja2FuZ2xlfHwwKS0zMCxkb21haW46W00sTStzKmtdLGFuY2hvcjoiZnJlZSIscG9zaXRpb246MCxfaWQ6InkiLF9sZW5ndGg6YX0pO3UoQSxmLmdyYXBoRGl2Ll9mdWxsTGF5b3V0KSxBLnNldFNjYWxlKCk7dmFyIFM9Zi5iYXhpcz1oKHt9LHQuYmF4aXMse3JhbmdlOltiLV8tVCx3XSxzaWRlOiJib3R0b20iLGRvbWFpbjpmLnhheGlzLmRvbWFpbixhbmNob3I6ImZyZWUiLHBvc2l0aW9uOjAsX2lkOiJ4IixfbGVuZ3RoOmF9KTt1KFMsZi5ncmFwaERpdi5fZnVsbExheW91dCksUy5zZXRTY2FsZSgpO3ZhciBFPWYuY2F4aXM9aCh7fSx0LmNheGlzLHtyYW5nZTpbYi1fLXcsVF0sc2lkZToicmlnaHQiLHRpY2thbmdsZTooK3QuY2F4aXMudGlja2FuZ2xlfHwwKSszMCxkb21haW46W00sTStzKmtdLGFuY2hvcjoiZnJlZSIscG9zaXRpb246MCxfaWQ6InkiLF9sZW5ndGg6YX0pO3UoRSxmLmdyYXBoRGl2Ll9mdWxsTGF5b3V0KSxFLnNldFNjYWxlKCk7dmFyIEw9Ik0iK3IrIiwiKyhuK2kpKyJoIithKyJsLSIrYS8yKyIsLSIraSsiWiI7Zi5jbGlwRGVmLnNlbGVjdCgicGF0aCIpLmF0dHIoImQiLEwpLGYubGF5ZXJzLnBsb3RiZy5zZWxlY3QoInBhdGgiKS5hdHRyKCJkIixMKTt2YXIgQz0iTTAsIitpKyJoIithKyJsLSIrYS8yKyIsLSIraSsiWiI7Zi5jbGlwRGVmUmVsYXRpdmUuc2VsZWN0KCJwYXRoIikuYXR0cigiZCIsQyk7dmFyIFA9InRyYW5zbGF0ZSgiK3IrIiwiK24rIikiO2YucGxvdENvbnRhaW5lci5zZWxlY3RBbGwoIi5zY2F0dGVybGF5ZXIsLm1hcGxheWVyIikuYXR0cigidHJhbnNmb3JtIixQKSxmLmNsaXBEZWZSZWxhdGl2ZS5zZWxlY3QoInBhdGgiKS5hdHRyKCJ0cmFuc2Zvcm0iLG51bGwpO3ZhciBPPSJ0cmFuc2xhdGUoIisoci1TLl9vZmZzZXQpKyIsIisobitpKSsiKSI7Zi5sYXllcnMuYmF4aXMuYXR0cigidHJhbnNmb3JtIixPKSxmLmxheWVycy5iZ3JpZC5hdHRyKCJ0cmFuc2Zvcm0iLE8pO3ZhciB6PSJ0cmFuc2xhdGUoIisocithLzIpKyIsIituKyIpcm90YXRlKDMwKXRyYW5zbGF0ZSgwLCIrLUEuX29mZnNldCsiKSI7Zi5sYXllcnMuYWF4aXMuYXR0cigidHJhbnNmb3JtIix6KSxmLmxheWVycy5hZ3JpZC5hdHRyKCJ0cmFuc2Zvcm0iLHopO3ZhciBJPSJ0cmFuc2xhdGUoIisocithLzIpKyIsIituKyIpcm90YXRlKC0zMCl0cmFuc2xhdGUoMCwiKy1FLl9vZmZzZXQrIikiO2YubGF5ZXJzLmNheGlzLmF0dHIoInRyYW5zZm9ybSIsSSksZi5sYXllcnMuY2dyaWQuYXR0cigidHJhbnNmb3JtIixJKSxmLmRyYXdBeGVzKCEwKSxmLmxheWVycy5hbGluZS5zZWxlY3QoInBhdGgiKS5hdHRyKCJkIixBLnNob3dsaW5lPyJNIityKyIsIisobitpKSsibCIrYS8yKyIsLSIraToiTTAsMCIpLmNhbGwobC5zdHJva2UsQS5saW5lY29sb3J8fCIjMDAwIikuc3R5bGUoInN0cm9rZS13aWR0aCIsKEEubGluZXdpZHRofHwwKSsicHgiKSxmLmxheWVycy5ibGluZS5zZWxlY3QoInBhdGgiKS5hdHRyKCJkIixTLnNob3dsaW5lPyJNIityKyIsIisobitpKSsiaCIrYToiTTAsMCIpLmNhbGwobC5zdHJva2UsUy5saW5lY29sb3J8fCIjMDAwIikuc3R5bGUoInN0cm9rZS13aWR0aCIsKFMubGluZXdpZHRofHwwKSsicHgiKSxmLmxheWVycy5jbGluZS5zZWxlY3QoInBhdGgiKS5hdHRyKCJkIixFLnNob3dsaW5lPyJNIisocithLzIpKyIsIituKyJsIithLzIrIiwiK2k6Ik0wLDAiKS5jYWxsKGwuc3Ryb2tlLEUubGluZWNvbG9yfHwiIzAwMCIpLnN0eWxlKCJzdHJva2Utd2lkdGgiLChFLmxpbmV3aWR0aHx8MCkrInB4IiksZi5ncmFwaERpdi5fY29udGV4dC5zdGF0aWNQbG90fHxmLmluaXRJbnRlcmFjdGlvbnMoKSxjLnNldENsaXBVcmwoZi5sYXllcnMuZnJvbnRwbG90LGYuX2hhc0NsaXBPbkF4aXNGYWxzZT9udWxsOmYuY2xpcElkLGYuZ3JhcGhEaXYpfSx3LmRyYXdBeGVzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZ3JhcGhEaXYscj10aGlzLmlkLnN1YnN0cig3KSsidGl0bGUiLG49dGhpcy5sYXllcnMsYT10aGlzLmFheGlzLGk9dGhpcy5iYXhpcyxvPXRoaXMuY2F4aXM7aWYodGhpcy5kcmF3QXgoYSksdGhpcy5kcmF3QXgoaSksdGhpcy5kcmF3QXgobyksdCl7dmFyIGw9TWF0aC5tYXgoYS5zaG93dGlja2xhYmVscz9hLnRpY2tmb250LnNpemUvMjowLChvLnNob3d0aWNrbGFiZWxzPy43NSpvLnRpY2tmb250LnNpemU6MCkrKCJvdXRzaWRlIj09PW8udGlja3M/Ljg3Km8udGlja2xlbjowKSksYz0oaS5zaG93dGlja2xhYmVscz9pLnRpY2tmb250LnNpemU6MCkrKCJvdXRzaWRlIj09PWkudGlja3M/aS50aWNrbGVuOjApKzM7blsiYS10aXRsZSJdPXYuZHJhdyhlLCJhIityLHtwcm9wQ29udGFpbmVyOmEscHJvcE5hbWU6dGhpcy5pZCsiLmFheGlzLnRpdGxlIixwbGFjZWhvbGRlcjpzKGUsIkNsaWNrIHRvIGVudGVyIENvbXBvbmVudCBBIHRpdGxlIiksYXR0cmlidXRlczp7eDp0aGlzLngwK3RoaXMudy8yLHk6dGhpcy55MC1hLnRpdGxlLmZvbnQuc2l6ZS8zLWwsInRleHQtYW5jaG9yIjoibWlkZGxlIn19KSxuWyJiLXRpdGxlIl09di5kcmF3KGUsImIiK3Ise3Byb3BDb250YWluZXI6aSxwcm9wTmFtZTp0aGlzLmlkKyIuYmF4aXMudGl0bGUiLHBsYWNlaG9sZGVyOnMoZSwiQ2xpY2sgdG8gZW50ZXIgQ29tcG9uZW50IEIgdGl0bGUiKSxhdHRyaWJ1dGVzOnt4OnRoaXMueDAtYyx5OnRoaXMueTArdGhpcy5oKy44MyppLnRpdGxlLmZvbnQuc2l6ZStjLCJ0ZXh0LWFuY2hvciI6Im1pZGRsZSJ9fSksblsiYy10aXRsZSJdPXYuZHJhdyhlLCJjIityLHtwcm9wQ29udGFpbmVyOm8scHJvcE5hbWU6dGhpcy5pZCsiLmNheGlzLnRpdGxlIixwbGFjZWhvbGRlcjpzKGUsIkNsaWNrIHRvIGVudGVyIENvbXBvbmVudCBDIHRpdGxlIiksYXR0cmlidXRlczp7eDp0aGlzLngwK3RoaXMudytjLHk6dGhpcy55MCt0aGlzLmgrLjgzKm8udGl0bGUuZm9udC5zaXplK2MsInRleHQtYW5jaG9yIjoibWlkZGxlIn19KX19LHcuZHJhd0F4PWZ1bmN0aW9uKHQpe3ZhciBlLHI9dGhpcy5ncmFwaERpdixuPXQuX25hbWUsYT1uLmNoYXJBdCgwKSxpPXQuX2lkLHM9dGhpcy5sYXllcnNbbl0sbD1hKyJ0aWNrTGF5b3V0IixjPShlPXQpLnRpY2tzK1N0cmluZyhlLnRpY2tsZW4pK1N0cmluZyhlLnNob3d0aWNrbGFiZWxzKTt0aGlzW2xdIT09YyYmKHMuc2VsZWN0QWxsKCIuIitpKyJ0aWNrIikucmVtb3ZlKCksdGhpc1tsXT1jKSx0LnNldFNjYWxlKCk7dmFyIHU9cC5jYWxjVGlja3ModCksaD1wLmNsaXBFbmRzKHQsdSksZj1wLm1ha2VUcmFuc0ZuKHQpLGQ9cC5nZXRUaWNrU2lnbnModClbMl0sZz1vLmRlZzJyYWQoMzApLHY9ZCoodC5saW5ld2lkdGh8fDEpLzIsbT1kKnQudGlja2xlbix5PXRoaXMudyx4PXRoaXMuaCxiPSJiIj09PWE/Ik0wLCIrdisibCIrTWF0aC5zaW4oZykqbSsiLCIrTWF0aC5jb3MoZykqbToiTSIrdisiLDBsIitNYXRoLmNvcyhnKSptKyIsIistTWF0aC5zaW4oZykqbSxfPXthOiJNMCwwbCIreCsiLC0iK3kvMixiOiJNMCwwbC0iK3kvMisiLC0iK3gsYzoiTTAsMGwtIit4KyIsIit5LzJ9W2FdO3AuZHJhd1RpY2tzKHIsdCx7dmFsczoiaW5zaWRlIj09PXQudGlja3M/aDp1LGxheWVyOnMscGF0aDpiLHRyYW5zRm46ZixjcmlzcDohMX0pLHAuZHJhd0dyaWQocix0LHt2YWxzOmgsbGF5ZXI6dGhpcy5sYXllcnNbYSsiZ3JpZCJdLHBhdGg6Xyx0cmFuc0ZuOmYsY3Jpc3A6ITF9KSxwLmRyYXdMYWJlbHMocix0LHt2YWxzOnUsbGF5ZXI6cyx0cmFuc0ZuOmYsbGFiZWxGbnM6cC5tYWtlTGFiZWxGbnModCwwLDMwKX0pfTt2YXIgVD1iLk1JTlpPT00vMisuODcsTT0ibS0wLjg3LC41aCIrVCsidjNoLSIrKFQrNS4yKSsibCIrKFQvMisyLjYpKyIsLSIrKC44NypUKzQuNSkrImwyLjYsMS41bC0iK1QvMisiLCIrLjg3KlQrIloiLEE9Im0wLjg3LC41aC0iK1QrInYzaCIrKFQrNS4yKSsibC0iKyhULzIrMi42KSsiLC0iKyguODcqVCs0LjUpKyJsLTIuNiwxLjVsIitULzIrIiwiKy44NypUKyJaIixTPSJtMCwxbCIrVC8yKyIsIisuODcqVCsibDIuNiwtMS41bC0iKyhULzIrMi42KSsiLC0iKyguODcqVCs0LjUpKyJsLSIrKFQvMisyLjYpKyIsIisoLjg3KlQrNC41KSsibDIuNiwxLjVsIitULzIrIiwtIisuODcqVCsiWiIsRT0ibTAuNSwwLjVoNXYtMmgtNXYtNWgtMnY1aC01djJoNXY1aDJaIixMPSEwO2Z1bmN0aW9uIEModCl7bi5zZWxlY3QodCkuc2VsZWN0QWxsKCIuem9vbWJveCwuanMtem9vbWJveC1iYWNrZHJvcCwuanMtem9vbWJveC1tZW51LC56b29tYm94LWNvcm5lcnMiKS5yZW1vdmUoKX13LmluaXRJbnRlcmFjdGlvbnM9ZnVuY3Rpb24oKXt2YXIgdCxlLHIsbix1LGgsZixwLHYsXyx3PXRoaXMsVD13LmxheWVycy5wbG90Ymcuc2VsZWN0KCJwYXRoIikubm9kZSgpLFA9dy5ncmFwaERpdixPPVAuX2Z1bGxMYXlvdXQuX3pvb21sYXllcix6PXtlbGVtZW50OlQsZ2Q6UCxwbG90aW5mbzp7aWQ6dy5pZCx4YXhpczp3LnhheGlzLHlheGlzOncueWF4aXN9LHN1YnBsb3Q6dy5pZCxwcmVwRm46ZnVuY3Rpb24oaSxvLHMpe3oueGF4ZXM9W3cueGF4aXNdLHoueWF4ZXM9W3cueWF4aXNdO3ZhciBjPVAuX2Z1bGxMYXlvdXQuZHJhZ21vZGU7ei5taW5EcmFnPSJsYXNzbyI9PT1jPzE6dm9pZCAwLCJ6b29tIj09PWM/KHoubW92ZUZuPU4sei5jbGlja0ZuPUQsei5kb25lRm49aixmdW5jdGlvbihpLG8scyl7dmFyIGM9VC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0PW8tYy5sZWZ0LGU9cy1jLnRvcCxyPXthOncuYWF4aXMucmFuZ2VbMF0sYjp3LmJheGlzLnJhbmdlWzFdLGM6dy5jYXhpcy5yYW5nZVsxXX0sdT1yLG49dy5hYXhpcy5yYW5nZVsxXS1yLmEsaD1hKHcuZ3JhcGhEaXYuX2Z1bGxMYXlvdXRbdy5pZF0uYmdjb2xvcikuZ2V0THVtaW5hbmNlKCksZj0iTTAsIit3LmgrIkwiK3cudy8yKyIsIDBMIit3LncrIiwiK3cuaCsiWiIscD0hMSx2PU8uYXBwZW5kKCJwYXRoIikuYXR0cigiY2xhc3MiLCJ6b29tYm94IikuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrdy54MCsiLCAiK3cueTArIikiKS5zdHlsZSh7ZmlsbDpoPi4yPyJyZ2JhKDAsMCwwLDApIjoicmdiYSgyNTUsMjU1LDI1NSwwKSIsInN0cm9rZS13aWR0aCI6MH0pLmF0dHIoImQiLGYpLF89Ty5hcHBlbmQoInBhdGgiKS5hdHRyKCJjbGFzcyIsInpvb21ib3gtY29ybmVycyIpLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK3cueDArIiwgIit3LnkwKyIpIikuc3R5bGUoe2ZpbGw6bC5iYWNrZ3JvdW5kLHN0cm9rZTpsLmRlZmF1bHRMaW5lLCJzdHJva2Utd2lkdGgiOjEsb3BhY2l0eTowfSkuYXR0cigiZCIsIk0wLDBaIikseChQKX0oMCxvLHMpKToicGFuIj09PWM/KHoubW92ZUZuPVYsei5jbGlja0ZuPUQsei5kb25lRm49VSxyPXthOncuYWF4aXMucmFuZ2VbMF0sYjp3LmJheGlzLnJhbmdlWzFdLGM6dy5jYXhpcy5yYW5nZVsxXX0sdT1yLHgoUCkpOiJzZWxlY3QiIT09YyYmImxhc3NvIiE9PWN8fG0oaSxvLHMseixjKX19O2Z1bmN0aW9uIEkodCl7dmFyIGU9e307cmV0dXJuIGVbdy5pZCsiLmFheGlzLm1pbiJdPXQuYSxlW3cuaWQrIi5iYXhpcy5taW4iXT10LmIsZVt3LmlkKyIuY2F4aXMubWluIl09dC5jLGV9ZnVuY3Rpb24gRCh0LGUpe3ZhciByPVAuX2Z1bGxMYXlvdXQuY2xpY2ttb2RlO0MoUCksMj09PXQmJihQLmVtaXQoInBsb3RseV9kb3VibGVjbGljayIsbnVsbCksaS5jYWxsKCJfZ3VpUmVsYXlvdXQiLFAsSSh7YTowLGI6MCxjOjB9KSkpLHIuaW5kZXhPZigic2VsZWN0Iik+LTEmJjE9PT10JiZ5KGUsUCxbdy54YXhpc10sW3cueWF4aXNdLHcuaWQseiksci5pbmRleE9mKCJldmVudCIpPi0xJiZnLmNsaWNrKFAsZSx3LmlkKX1mdW5jdGlvbiBSKHQsZSl7cmV0dXJuIDEtZS93Lmh9ZnVuY3Rpb24gRih0LGUpe3JldHVybiAxLSh0Kyh3LmgtZSkvTWF0aC5zcXJ0KDMpKS93Lnd9ZnVuY3Rpb24gQih0LGUpe3JldHVybih0LSh3LmgtZSkvTWF0aC5zcXJ0KDMpKS93Lnd9ZnVuY3Rpb24gTihhLGkpe3ZhciBvPXQrYSxzPWUraSxsPU1hdGgubWF4KDAsTWF0aC5taW4oMSxSKDAsZSksUigwLHMpKSksYz1NYXRoLm1heCgwLE1hdGgubWluKDEsRih0LGUpLEYobyxzKSkpLGQ9TWF0aC5tYXgoMCxNYXRoLm1pbigxLEIodCxlKSxCKG8scykpKSxnPShsLzIrZCkqdy53LG09KDEtbC8yLWMpKncudyx5PShnK20pLzIseD1tLWcsVD0oMS1sKSp3LmgsTD1ULXgvazt4PGIuTUlOWk9PTT8odT1yLHYuYXR0cigiZCIsZiksXy5hdHRyKCJkIiwiTTAsMFoiKSk6KHU9e2E6ci5hK2wqbixiOnIuYitjKm4sYzpyLmMrZCpufSx2LmF0dHIoImQiLGYrIk0iK2crIiwiK1QrIkgiK20rIkwiK3krIiwiK0wrIkwiK2crIiwiK1QrIloiKSxfLmF0dHIoImQiLCJNIit0KyIsIitlK0UrIk0iK2crIiwiK1QrTSsiTSIrbSsiLCIrVCtBKyJNIit5KyIsIitMK1MpKSxwfHwodi50cmFuc2l0aW9uKCkuc3R5bGUoImZpbGwiLGg+LjI/InJnYmEoMCwwLDAsMC40KSI6InJnYmEoMjU1LDI1NSwyNTUsMC4zKSIpLmR1cmF0aW9uKDIwMCksXy50cmFuc2l0aW9uKCkuc3R5bGUoIm9wYWNpdHkiLDEpLmR1cmF0aW9uKDIwMCkscD0hMCksUC5lbWl0KCJwbG90bHlfcmVsYXlvdXRpbmciLEkodSkpfWZ1bmN0aW9uIGooKXtDKFApLHUhPT1yJiYoaS5jYWxsKCJfZ3VpUmVsYXlvdXQiLFAsSSh1KSksTCYmUC5kYXRhJiZQLl9jb250ZXh0LnNob3dUaXBzJiYoby5ub3RpZmllcihzKFAsIkRvdWJsZS1jbGljayB0byB6b29tIGJhY2sgb3V0IiksImxvbmciKSxMPSExKSl9ZnVuY3Rpb24gVih0LGUpe3ZhciBuPXQvdy54YXhpcy5fbSxhPWUvdy55YXhpcy5fbSxpPVsodT17YTpyLmEtYSxiOnIuYisobithKS8yLGM6ci5jLShuLWEpLzJ9KS5hLHUuYix1LmNdLnNvcnQoKSxvPWkuaW5kZXhPZih1LmEpLHM9aS5pbmRleE9mKHUuYiksbD1pLmluZGV4T2YodS5jKTtpWzBdPDAmJihpWzFdK2lbMF0vMjwwPyhpWzJdKz1pWzBdK2lbMV0saVswXT1pWzFdPTApOihpWzJdKz1pWzBdLzIsaVsxXSs9aVswXS8yLGlbMF09MCksdT17YTppW29dLGI6aVtzXSxjOmlbbF19LGU9KHIuYS11LmEpKncueWF4aXMuX20sdD0oci5jLXUuYy1yLmIrdS5iKSp3LnhheGlzLl9tKTt2YXIgaD0idHJhbnNsYXRlKCIrKHcueDArdCkrIiwiKyh3LnkwK2UpKyIpIjt3LnBsb3RDb250YWluZXIuc2VsZWN0QWxsKCIuc2NhdHRlcmxheWVyLC5tYXBsYXllciIpLmF0dHIoInRyYW5zZm9ybSIsaCk7dmFyIGY9InRyYW5zbGF0ZSgiKy10KyIsIistZSsiKSI7dy5jbGlwRGVmUmVsYXRpdmUuc2VsZWN0KCJwYXRoIikuYXR0cigidHJhbnNmb3JtIixmKSx3LmFheGlzLnJhbmdlPVt1LmEsdy5zdW0tdS5iLXUuY10sdy5iYXhpcy5yYW5nZT1bdy5zdW0tdS5hLXUuYyx1LmJdLHcuY2F4aXMucmFuZ2U9W3cuc3VtLXUuYS11LmIsdS5jXSx3LmRyYXdBeGVzKCExKSx3Ll9oYXNDbGlwT25BeGlzRmFsc2UmJncucGxvdENvbnRhaW5lci5zZWxlY3QoIi5zY2F0dGVybGF5ZXIiKS5zZWxlY3RBbGwoIi50cmFjZSIpLmNhbGwoYy5oaWRlT3V0c2lkZVJhbmdlUG9pbnRzLHcpLFAuZW1pdCgicGxvdGx5X3JlbGF5b3V0aW5nIixJKHUpKX1mdW5jdGlvbiBVKCl7aS5jYWxsKCJfZ3VpUmVsYXlvdXQiLFAsSSh1KSl9VC5vbm1vdXNlbW92ZT1mdW5jdGlvbih0KXtnLmhvdmVyKFAsdCx3LmlkKSxQLl9mdWxsTGF5b3V0Ll9sYXN0aG92ZXI9VCxQLl9mdWxsTGF5b3V0Ll9ob3ZlcnN1YnBsb3Q9dy5pZH0sVC5vbm1vdXNlb3V0PWZ1bmN0aW9uKHQpe1AuX2RyYWdnaW5nfHxkLnVuaG92ZXIoUCx0KX0sZC5pbml0KHopfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo1OTIsIi4uLy4uL2NvbXBvbmVudHMvZHJhZ2VsZW1lbnQiOjYxMCwiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo2MTMsIi4uLy4uL2NvbXBvbmVudHMvZngiOjYzMCwiLi4vLi4vY29tcG9uZW50cy90aXRsZXMiOjY3OSwiLi4vLi4vbGliIjo3MTcsIi4uLy4uL2xpYi9leHRlbmQiOjcwOCwiLi4vLi4vcmVnaXN0cnkiOjg0NiwiLi4vY2FydGVzaWFuL2F4ZXMiOjc2NSwiLi4vY2FydGVzaWFuL2NvbnN0YW50cyI6NzcxLCIuLi9jYXJ0ZXNpYW4vc2VsZWN0Ijo3ODIsIi4uL2NhcnRlc2lhbi9zZXRfY29udmVydCI6NzgzLCIuLi9wbG90cyI6ODI2LGQzOjE2NSx0aW55Y29sb3IyOjUzNn1dLDg0NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2xpYi9sb2dnZXJzIiksYT10KCIuL2xpYi9ub29wIiksaT10KCIuL2xpYi9wdXNoX3VuaXF1ZSIpLG89dCgiLi9saWIvaXNfcGxhaW5fb2JqZWN0Iikscz10KCIuL2xpYi9kb20iKS5hZGRTdHlsZVJ1bGUsbD10KCIuL2xpYi9leHRlbmQiKSxjPXQoIi4vcGxvdHMvYXR0cmlidXRlcyIpLHU9dCgiLi9wbG90cy9sYXlvdXRfYXR0cmlidXRlcyIpLGg9bC5leHRlbmRGbGF0LGY9bC5leHRlbmREZWVwQWxsO2Z1bmN0aW9uIHAodCl7dmFyIGU9dC5uYW1lLGE9dC5jYXRlZ29yaWVzLGk9dC5tZXRhO2lmKHIubW9kdWxlc1tlXSluLmxvZygiVHlwZSAiK2UrIiBhbHJlYWR5IHJlZ2lzdGVyZWQiKTtlbHNle3Iuc3VicGxvdHNSZWdpc3RyeVt0LmJhc2VQbG90TW9kdWxlLm5hbWVdfHxmdW5jdGlvbih0KXt2YXIgZT10Lm5hbWU7aWYoci5zdWJwbG90c1JlZ2lzdHJ5W2VdKXJldHVybiB2b2lkIG4ubG9nKCJQbG90IHR5cGUgIitlKyIgYWxyZWFkeSByZWdpc3RlcmVkLiIpO2Zvcih2YXIgYSBpbiBtKHQpLHIuc3VicGxvdHNSZWdpc3RyeVtlXT10LHIuY29tcG9uZW50c1JlZ2lzdHJ5KWIoYSx0Lm5hbWUpfSh0LmJhc2VQbG90TW9kdWxlKTtmb3IodmFyIG89e30sbD0wO2w8YS5sZW5ndGg7bCsrKW9bYVtsXV09ITAsci5hbGxDYXRlZ29yaWVzW2FbbF1dPSEwO2Zvcih2YXIgYyBpbiByLm1vZHVsZXNbZV09e19tb2R1bGU6dCxjYXRlZ29yaWVzOm99LGkmJk9iamVjdC5rZXlzKGkpLmxlbmd0aCYmKHIubW9kdWxlc1tlXS5tZXRhPWkpLHIuYWxsVHlwZXMucHVzaChlKSxyLmNvbXBvbmVudHNSZWdpc3RyeSl5KGMsZSk7dC5sYXlvdXRBdHRyaWJ1dGVzJiZoKHIudHJhY2VMYXlvdXRBdHRyaWJ1dGVzLHQubGF5b3V0QXR0cmlidXRlcyk7dmFyIHU9dC5iYXNlUGxvdE1vZHVsZSxmPXUubmFtZTtpZigibWFwYm94Ij09PWYpe3ZhciBwPXUuY29uc3RhbnRzLnN0eWxlUnVsZXM7Zm9yKHZhciBkIGluIHApcygiLmpzLXBsb3RseS1wbG90IC5wbG90bHkgLm1hcGJveGdsLSIrZCxwW2RdKX0iZ2VvIiE9PWYmJiJtYXBib3giIT09Znx8dm9pZCAwPT09dHlwZW9mIHdpbmRvd3x8dm9pZCAwIT09d2luZG93LlBsb3RseUdlb0Fzc2V0c3x8KHdpbmRvdy5QbG90bHlHZW9Bc3NldHM9e3RvcG9qc29uOnt9fSl9fWZ1bmN0aW9uIGQodCl7aWYoInN0cmluZyIhPXR5cGVvZiB0Lm5hbWUpdGhyb3cgbmV3IEVycm9yKCJDb21wb25lbnQgbW9kdWxlICpuYW1lKiBtdXN0IGJlIGEgc3RyaW5nLiIpO3ZhciBlPXQubmFtZTtmb3IodmFyIG4gaW4gci5jb21wb25lbnRzUmVnaXN0cnlbZV09dCx0LmxheW91dEF0dHJpYnV0ZXMmJih0LmxheW91dEF0dHJpYnV0ZXMuX2lzTGlua2VkVG9BcnJheSYmaShyLmxheW91dEFycmF5Q29udGFpbmVycyxlKSxtKHQpKSxyLm1vZHVsZXMpeShlLG4pO2Zvcih2YXIgYSBpbiByLnN1YnBsb3RzUmVnaXN0cnkpYihlLGEpO2Zvcih2YXIgbyBpbiByLnRyYW5zZm9ybXNSZWdpc3RyeSl4KGUsbyk7dC5zY2hlbWEmJnQuc2NoZW1hLmxheW91dCYmZih1LHQuc2NoZW1hLmxheW91dCl9ZnVuY3Rpb24gZyh0KXtpZigic3RyaW5nIiE9dHlwZW9mIHQubmFtZSl0aHJvdyBuZXcgRXJyb3IoIlRyYW5zZm9ybSBtb2R1bGUgKm5hbWUqIG11c3QgYmUgYSBzdHJpbmcuIik7dmFyIGU9IlRyYW5zZm9ybSBtb2R1bGUgIit0Lm5hbWUsYT0iZnVuY3Rpb24iPT10eXBlb2YgdC50cmFuc2Zvcm0saT0iZnVuY3Rpb24iPT10eXBlb2YgdC5jYWxjVHJhbnNmb3JtO2lmKCFhJiYhaSl0aHJvdyBuZXcgRXJyb3IoZSsiIGlzIG1pc3NpbmcgYSAqdHJhbnNmb3JtKiBvciAqY2FsY1RyYW5zZm9ybSogbWV0aG9kLiIpO2Zvcih2YXIgcyBpbiBhJiZpJiZuLmxvZyhbZSsiIGhhcyBib3RoIGEgKnRyYW5zZm9ybSogYW5kICpjYWxjVHJhbnNmb3JtKiBtZXRob2RzLiIsIlBsZWFzZSBub3RlIHRoYXQgYWxsICp0cmFuc2Zvcm0qIG1ldGhvZHMgYXJlIGV4ZWN1dGVkIiwiYmVmb3JlIGFsbCAqY2FsY1RyYW5zZm9ybSogbWV0aG9kcy4iXS5qb2luKCIgIikpLG8odC5hdHRyaWJ1dGVzKXx8bi5sb2coZSsiIHJlZ2lzdGVyZWQgd2l0aG91dCBhbiAqYXR0cmlidXRlcyogb2JqZWN0LiIpLCJmdW5jdGlvbiIhPXR5cGVvZiB0LnN1cHBseURlZmF1bHRzJiZuLmxvZyhlKyIgcmVnaXN0ZXJlZCB3aXRob3V0IGEgKnN1cHBseURlZmF1bHRzKiBtZXRob2QuIiksci50cmFuc2Zvcm1zUmVnaXN0cnlbdC5uYW1lXT10LHIuY29tcG9uZW50c1JlZ2lzdHJ5KXgocyx0Lm5hbWUpfWZ1bmN0aW9uIHYodCl7dmFyIGU9dC5uYW1lLG49ZS5zcGxpdCgiLSIpWzBdLGE9dC5kaWN0aW9uYXJ5LGk9dC5mb3JtYXQsbz1hJiZPYmplY3Qua2V5cyhhKS5sZW5ndGgscz1pJiZPYmplY3Qua2V5cyhpKS5sZW5ndGgsbD1yLmxvY2FsZVJlZ2lzdHJ5LGM9bFtlXTtpZihjfHwobFtlXT1jPXt9KSxuIT09ZSl7dmFyIHU9bFtuXTt1fHwobFtuXT11PXt9KSxvJiZ1LmRpY3Rpb25hcnk9PT1jLmRpY3Rpb25hcnkmJih1LmRpY3Rpb25hcnk9YSkscyYmdS5mb3JtYXQ9PT1jLmZvcm1hdCYmKHUuZm9ybWF0PWkpfW8mJihjLmRpY3Rpb25hcnk9YSkscyYmKGMuZm9ybWF0PWkpfWZ1bmN0aW9uIG0odCl7aWYodC5sYXlvdXRBdHRyaWJ1dGVzKXt2YXIgZT10LmxheW91dEF0dHJpYnV0ZXMuX2FycmF5QXR0clJlZ2V4cHM7aWYoZSlmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKylpKHIubGF5b3V0QXJyYXlSZWdleGVzLGVbbl0pfX1mdW5jdGlvbiB5KHQsZSl7dmFyIG49ci5jb21wb25lbnRzUmVnaXN0cnlbdF0uc2NoZW1hO2lmKG4mJm4udHJhY2VzKXt2YXIgYT1uLnRyYWNlc1tlXTthJiZmKHIubW9kdWxlc1tlXS5fbW9kdWxlLmF0dHJpYnV0ZXMsYSl9fWZ1bmN0aW9uIHgodCxlKXt2YXIgbj1yLmNvbXBvbmVudHNSZWdpc3RyeVt0XS5zY2hlbWE7aWYobiYmbi50cmFuc2Zvcm1zKXt2YXIgYT1uLnRyYW5zZm9ybXNbZV07YSYmZihyLnRyYW5zZm9ybXNSZWdpc3RyeVtlXS5hdHRyaWJ1dGVzLGEpfX1mdW5jdGlvbiBiKHQsZSl7dmFyIG49ci5jb21wb25lbnRzUmVnaXN0cnlbdF0uc2NoZW1hO2lmKG4mJm4uc3VicGxvdHMpe3ZhciBhPXIuc3VicGxvdHNSZWdpc3RyeVtlXSxpPWEubGF5b3V0QXR0cmlidXRlcyxvPSJzdWJwbG90Ij09PWEuYXR0cj9hLm5hbWU6YS5hdHRyO0FycmF5LmlzQXJyYXkobykmJihvPW9bMF0pO3ZhciBzPW4uc3VicGxvdHNbb107aSYmcyYmZihpLHMpfX1mdW5jdGlvbiBfKHQpe3JldHVybiJvYmplY3QiPT10eXBlb2YgdCYmKHQ9dC50eXBlKSx0fXIubW9kdWxlcz17fSxyLmFsbENhdGVnb3JpZXM9e30sci5hbGxUeXBlcz1bXSxyLnN1YnBsb3RzUmVnaXN0cnk9e30sci50cmFuc2Zvcm1zUmVnaXN0cnk9e30sci5jb21wb25lbnRzUmVnaXN0cnk9e30sci5sYXlvdXRBcnJheUNvbnRhaW5lcnM9W10sci5sYXlvdXRBcnJheVJlZ2V4ZXM9W10sci50cmFjZUxheW91dEF0dHJpYnV0ZXM9e30sci5sb2NhbGVSZWdpc3RyeT17fSxyLmFwaU1ldGhvZFJlZ2lzdHJ5PXt9LHIuY29sbGVjdGFibGVTdWJwbG90VHlwZXM9bnVsbCxyLnJlZ2lzdGVyPWZ1bmN0aW9uKHQpe2lmKHIuY29sbGVjdGFibGVTdWJwbG90VHlwZXM9bnVsbCwhdCl0aHJvdyBuZXcgRXJyb3IoIk5vIGFyZ3VtZW50IHBhc3NlZCB0byBQbG90bHkucmVnaXN0ZXIuIik7dCYmIUFycmF5LmlzQXJyYXkodCkmJih0PVt0XSk7Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspe3ZhciBuPXRbZV07aWYoIW4pdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIG1vZHVsZSB3YXMgYXR0ZW1wdGVkIHRvIGJlIHJlZ2lzdGVyZWQhIik7c3dpdGNoKG4ubW9kdWxlVHlwZSl7Y2FzZSJ0cmFjZSI6cChuKTticmVhaztjYXNlInRyYW5zZm9ybSI6ZyhuKTticmVhaztjYXNlImNvbXBvbmVudCI6ZChuKTticmVhaztjYXNlImxvY2FsZSI6dihuKTticmVhaztjYXNlImFwaU1ldGhvZCI6dmFyIGE9bi5uYW1lO3IuYXBpTWV0aG9kUmVnaXN0cnlbYV09bi5mbjticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiSW52YWxpZCBtb2R1bGUgd2FzIGF0dGVtcHRlZCB0byBiZSByZWdpc3RlcmVkISIpfX19LHIuZ2V0TW9kdWxlPWZ1bmN0aW9uKHQpe3ZhciBlPXIubW9kdWxlc1tfKHQpXTtyZXR1cm4hIWUmJmUuX21vZHVsZX0sci50cmFjZUlzPWZ1bmN0aW9uKHQsZSl7aWYoInZhcmlvdXMiPT09KHQ9Xyh0KSkpcmV0dXJuITE7dmFyIGE9ci5tb2R1bGVzW3RdO3JldHVybiBhfHwodCYmImFyZWEiIT09dCYmbi5sb2coIlVucmVjb2duaXplZCB0cmFjZSB0eXBlICIrdCsiLiIpLGE9ci5tb2R1bGVzW2MudHlwZS5kZmx0XSksISFhLmNhdGVnb3JpZXNbZV19LHIuZ2V0VHJhbnNmb3JtSW5kaWNlcz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1bXSxuPXQudHJhbnNmb3Jtc3x8W10sYT0wO2E8bi5sZW5ndGg7YSsrKW5bYV0udHlwZT09PWUmJnIucHVzaChhKTtyZXR1cm4gcn0sci5oYXNUcmFuc2Zvcm09ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC50cmFuc2Zvcm1zfHxbXSxuPTA7bjxyLmxlbmd0aDtuKyspaWYocltuXS50eXBlPT09ZSlyZXR1cm4hMDtyZXR1cm4hMX0sci5nZXRDb21wb25lbnRNZXRob2Q9ZnVuY3Rpb24odCxlKXt2YXIgbj1yLmNvbXBvbmVudHNSZWdpc3RyeVt0XTtyZXR1cm4gbiYmbltlXXx8YX0sci5jYWxsPWZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzWzBdLGU9W10uc2xpY2UuY2FsbChhcmd1bWVudHMsMSk7cmV0dXJuIHIuYXBpTWV0aG9kUmVnaXN0cnlbdF0uYXBwbHkobnVsbCxlKX19LHsiLi9saWIvZG9tIjo3MDYsIi4vbGliL2V4dGVuZCI6NzA4LCIuL2xpYi9pc19wbGFpbl9vYmplY3QiOjcxOCwiLi9saWIvbG9nZ2VycyI6NzIxLCIuL2xpYi9ub29wIjo3MjYsIi4vbGliL3B1c2hfdW5pcXVlIjo3MzEsIi4vcGxvdHMvYXR0cmlidXRlcyI6NzYyLCIuL3Bsb3RzL2xheW91dF9hdHRyaWJ1dGVzIjo4MTd9XSw4NDc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vcmVnaXN0cnkiKSxhPXQoIi4uL2xpYiIpLGk9YS5leHRlbmRGbGF0LG89YS5leHRlbmREZWVwO2Z1bmN0aW9uIHModCl7dmFyIGU7c3dpdGNoKHQpe2Nhc2UidGhlbWVzX190aHVtYiI6ZT17YXV0b3NpemU6ITAsd2lkdGg6MTUwLGhlaWdodDoxNTAsdGl0bGU6e3RleHQ6IiJ9LHNob3dsZWdlbmQ6ITEsbWFyZ2luOntsOjUscjo1LHQ6NSxiOjUscGFkOjB9LGFubm90YXRpb25zOltdfTticmVhaztjYXNlInRodW1ibmFpbCI6ZT17dGl0bGU6e3RleHQ6IiJ9LGhpZGVzb3VyY2VzOiEwLHNob3dsZWdlbmQ6ITEsYm9yZGVyd2lkdGg6MCxib3JkZXJjb2xvcjoiIixtYXJnaW46e2w6MSxyOjEsdDoxLGI6MSxwYWQ6MH0sYW5ub3RhdGlvbnM6W119O2JyZWFrO2RlZmF1bHQ6ZT17fX1yZXR1cm4gZX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcjt0LmZyYW1ld29yayYmdC5mcmFtZXdvcmsuaXNQb2xhciYmKHQ9dC5mcmFtZXdvcmsuZ2V0Q29uZmlnKCkpO3ZhciBhLGw9dC5kYXRhLGM9dC5sYXlvdXQsdT1vKFtdLGwpLGg9byh7fSxjLHMoZS50aWxlQ2xhc3MpKSxmPXQuX2NvbnRleHR8fHt9O2lmKGUud2lkdGgmJihoLndpZHRoPWUud2lkdGgpLGUuaGVpZ2h0JiYoaC5oZWlnaHQ9ZS5oZWlnaHQpLCJ0aHVtYm5haWwiPT09ZS50aWxlQ2xhc3N8fCJ0aGVtZXNfX3RodW1iIj09PWUudGlsZUNsYXNzKXtoLmFubm90YXRpb25zPVtdO3ZhciBwPU9iamVjdC5rZXlzKGgpO2ZvcihyPTA7cjxwLmxlbmd0aDtyKyspYT1wW3JdLFsieGF4aXMiLCJ5YXhpcyIsInpheGlzIl0uaW5kZXhPZihhLnNsaWNlKDAsNSkpPi0xJiYoaFtwW3JdXS50aXRsZT17dGV4dDoiIn0pO2ZvcihyPTA7cjx1Lmxlbmd0aDtyKyspe3ZhciBkPXVbcl07ZC5zaG93c2NhbGU9ITEsZC5tYXJrZXImJihkLm1hcmtlci5zaG93c2NhbGU9ITEpLG4udHJhY2VJcyhkLCJwaWUtbGlrZSIpJiYoZC50ZXh0cG9zaXRpb249Im5vbmUiKX19aWYoQXJyYXkuaXNBcnJheShlLmFubm90YXRpb25zKSlmb3Iocj0wO3I8ZS5hbm5vdGF0aW9ucy5sZW5ndGg7cisrKWguYW5ub3RhdGlvbnMucHVzaChlLmFubm90YXRpb25zW3JdKTt2YXIgZz1PYmplY3Qua2V5cyhoKS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQubWF0Y2goL15zY2VuZVxkKiQvKX0pO2lmKGcubGVuZ3RoKXt2YXIgdj17fTtmb3IoInRodW1ibmFpbCI9PT1lLnRpbGVDbGFzcyYmKHY9e3RpdGxlOnt0ZXh0OiIifSxzaG93YXhlc2xhYmVsczohMSxzaG93dGlja2xhYmVsczohMSxsaW5ldGlja2VuYWJsZTohMX0pLHI9MDtyPGcubGVuZ3RoO3IrKyl7dmFyIG09aFtnW3JdXTttLnhheGlzfHwobS54YXhpcz17fSksbS55YXhpc3x8KG0ueWF4aXM9e30pLG0uemF4aXN8fChtLnpheGlzPXt9KSxpKG0ueGF4aXMsdiksaShtLnlheGlzLHYpLGkobS56YXhpcyx2KSxtLl9zY2VuZT1udWxsfX12YXIgeT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtlLnRpbGVDbGFzcyYmKHkuY2xhc3NOYW1lPWUudGlsZUNsYXNzKTt2YXIgeD17Z2Q6eSx0ZDp5LGxheW91dDpoLGRhdGE6dSxjb25maWc6e3N0YXRpY1Bsb3Q6dm9pZCAwPT09ZS5zdGF0aWNQbG90fHxlLnN0YXRpY1Bsb3QscGxvdEdsUGl4ZWxSYXRpbzp2b2lkIDA9PT1lLnBsb3RHbFBpeGVsUmF0aW8/MjplLnBsb3RHbFBpeGVsUmF0aW8sZGlzcGxheWxvZ286ZS5kaXNwbGF5bG9nb3x8ITEsc2hvd0xpbms6ZS5zaG93TGlua3x8ITEsc2hvd1RpcHM6ZS5zaG93VGlwc3x8ITEsbWFwYm94QWNjZXNzVG9rZW46Zi5tYXBib3hBY2Nlc3NUb2tlbn19O3JldHVybiJ0cmFuc3BhcmVudCIhPT1lLnNldEJhY2tncm91bmQmJih4LmNvbmZpZy5zZXRCYWNrZ3JvdW5kPWUuc2V0QmFja2dyb3VuZHx8Im9wYXF1ZSIpLHguZ2QuZGVmYXVsdExheW91dD1zKGUudGlsZUNsYXNzKSx4fX0seyIuLi9saWIiOjcxNywiLi4vcmVnaXN0cnkiOjg0Nn1dLDg0ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9saWIiKSxhPXQoIi4uL3Bsb3RfYXBpL3RvX2ltYWdlIiksaT10KCIuL2ZpbGVzYXZlciIpLG89dCgiLi9oZWxwZXJzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI7cmV0dXJuIG4uaXNQbGFpbk9iamVjdCh0KXx8KHI9bi5nZXRHcmFwaERpdih0KSksKGU9ZXx8e30pLmZvcm1hdD1lLmZvcm1hdHx8InBuZyIsZS5pbWFnZURhdGFPbmx5PSEwLG5ldyBQcm9taXNlKGZ1bmN0aW9uKHMsbCl7ciYmci5fc25hcHNob3RJblByb2dyZXNzJiZsKG5ldyBFcnJvcigiU25hcHNob3R0aW5nIGFscmVhZHkgaW4gcHJvZ3Jlc3MuIikpLG4uaXNJRSgpJiYic3ZnIiE9PWUuZm9ybWF0JiZsKG5ldyBFcnJvcihvLk1TR19JRV9CQURfRk9STUFUKSksciYmKHIuX3NuYXBzaG90SW5Qcm9ncmVzcz0hMCk7dmFyIGM9YSh0LGUpLHU9ZS5maWxlbmFtZXx8dC5mbnx8Im5ld3Bsb3QiO3UrPSIuIitlLmZvcm1hdCxjLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHImJihyLl9zbmFwc2hvdEluUHJvZ3Jlc3M9ITEpLGkodCx1LGUuZm9ybWF0KX0pLnRoZW4oZnVuY3Rpb24odCl7cyh0KX0pLmNhdGNoKGZ1bmN0aW9uKHQpe3ImJihyLl9zbmFwc2hvdEluUHJvZ3Jlc3M9ITEpLGwodCl9KX0pfX0seyIuLi9saWIiOjcxNywiLi4vcGxvdF9hcGkvdG9faW1hZ2UiOjc1OCwiLi9maWxlc2F2ZXIiOjg0OSwiLi9oZWxwZXJzIjo4NTB9XSw4NDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vbGliIiksYT10KCIuL2hlbHBlcnMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxvPSJkb3dubG9hZCJpbiBpO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihzLGwpe3ZhciBjLHU7aWYobi5pc0lFOW9yQmVsb3coKSYmbChuZXcgRXJyb3IoIklFIDwgMTAgdW5zdXBwb3J0ZWQiKSksbi5pc1NhZmFyaSgpKXt2YXIgaD0ic3ZnIj09PXI/IiwiOiI7YmFzZTY0LCI7cmV0dXJuIGEub2N0ZXRTdHJlYW0oaCtlbmNvZGVVUklDb21wb25lbnQodCkpLHMoZSl9cmV0dXJuIG4uaXNJRSgpPyhjPWEuY3JlYXRlQmxvYih0LCJzdmciKSx3aW5kb3cubmF2aWdhdG9yLm1zU2F2ZUJsb2IoYyxlKSxjPW51bGwscyhlKSk6bz8oYz1hLmNyZWF0ZUJsb2IodCxyKSx1PWEuY3JlYXRlT2JqZWN0VVJMKGMpLGkuaHJlZj11LGkuZG93bmxvYWQ9ZSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGkpLGkuY2xpY2soKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGkpLGEucmV2b2tlT2JqZWN0VVJMKHUpLGM9bnVsbCxzKGUpKTp2b2lkIGwobmV3IEVycm9yKCJkb3dubG9hZCBlcnJvciIpKX0pfX0seyIuLi9saWIiOjcxNywiLi9oZWxwZXJzIjo4NTB9XSw4NTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vcmVnaXN0cnkiKTtyLmdldERlbGF5PWZ1bmN0aW9uKHQpe3JldHVybiB0Ll9oYXMmJih0Ll9oYXMoImdsM2QiKXx8dC5faGFzKCJnbDJkIil8fHQuX2hhcygibWFwYm94IikpPzUwMDowfSxyLmdldFJlZHJhd0Z1bmM9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dC5fZnVsbExheW91dHx8e307IShlLl9oYXMmJmUuX2hhcygicG9sYXIiKSkmJnQuZGF0YSYmdC5kYXRhWzBdJiZ0LmRhdGFbMF0ucnx8bi5nZXRDb21wb25lbnRNZXRob2QoImNvbG9yYmFyIiwiZHJhdyIpKHQpfX0sci5lbmNvZGVTVkc9ZnVuY3Rpb24odCl7cmV0dXJuImRhdGE6aW1hZ2Uvc3ZnK3htbCwiK2VuY29kZVVSSUNvbXBvbmVudCh0KX07dmFyIGE9d2luZG93LlVSTHx8d2luZG93LndlYmtpdFVSTDtyLmNyZWF0ZU9iamVjdFVSTD1mdW5jdGlvbih0KXtyZXR1cm4gYS5jcmVhdGVPYmplY3RVUkwodCl9LHIucmV2b2tlT2JqZWN0VVJMPWZ1bmN0aW9uKHQpe3JldHVybiBhLnJldm9rZU9iamVjdFVSTCh0KX0sci5jcmVhdGVCbG9iPWZ1bmN0aW9uKHQsZSl7aWYoInN2ZyI9PT1lKXJldHVybiBuZXcgd2luZG93LkJsb2IoW3RdLHt0eXBlOiJpbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgifSk7dmFyIHI9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQubGVuZ3RoLHI9bmV3IEFycmF5QnVmZmVyKGUpLG49bmV3IFVpbnQ4QXJyYXkociksYT0wO2E8ZTthKyspblthXT10LmNoYXJDb2RlQXQoYSk7cmV0dXJuIHJ9KHdpbmRvdy5hdG9iKHQpKTtyZXR1cm4gbmV3IHdpbmRvdy5CbG9iKFtyXSx7dHlwZToiaW1hZ2UvIitlfSl9LHIub2N0ZXRTdHJlYW09ZnVuY3Rpb24odCl7ZG9jdW1lbnQubG9jYXRpb24uaHJlZj0iZGF0YTphcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iK3R9LHIuSU1BR0VfVVJMX1BSRUZJWD0vXmRhdGE6aW1hZ2VcL1x3KztiYXNlNjQsLyxyLk1TR19JRV9CQURfRk9STUFUPSJTb3JyeSBJRSBkb2VzIG5vdCBzdXBwb3J0IGRvd25sb2FkaW5nIGZyb20gY2FudmFzLiBUcnkge2Zvcm1hdDonc3ZnJ30gaW5zdGVhZC4ifSx7Ii4uL3JlZ2lzdHJ5Ijo4NDZ9XSw4NTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9oZWxwZXJzIiksYT17Z2V0RGVsYXk6bi5nZXREZWxheSxnZXRSZWRyYXdGdW5jOm4uZ2V0UmVkcmF3RnVuYyxjbG9uZTp0KCIuL2Nsb25lcGxvdCIpLHRvU1ZHOnQoIi4vdG9zdmciKSxzdmdUb0ltZzp0KCIuL3N2Z3RvaW1nIiksdG9JbWFnZTp0KCIuL3RvaW1hZ2UiKSxkb3dubG9hZEltYWdlOnQoIi4vZG93bmxvYWQiKX07ZS5leHBvcnRzPWF9LHsiLi9jbG9uZXBsb3QiOjg0NywiLi9kb3dubG9hZCI6ODQ4LCIuL2hlbHBlcnMiOjg1MCwiLi9zdmd0b2ltZyI6ODUyLCIuL3RvaW1hZ2UiOjg1MywiLi90b3N2ZyI6ODU0fV0sODUyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2xpYiIpLGE9dCgiZXZlbnRzIikuRXZlbnRFbWl0dGVyLGk9dCgiLi9oZWxwZXJzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuZW1pdHRlcnx8bmV3IGEscj1uZXcgUHJvbWlzZShmdW5jdGlvbihhLG8pe3ZhciBzPXdpbmRvdy5JbWFnZSxsPXQuc3ZnLGM9dC5mb3JtYXR8fCJwbmciO2lmKG4uaXNJRSgpJiYic3ZnIiE9PWMpe3ZhciB1PW5ldyBFcnJvcihpLk1TR19JRV9CQURfRk9STUFUKTtyZXR1cm4gbyh1KSx0LnByb21pc2U/cjplLmVtaXQoImVycm9yIix1KX12YXIgaCxmLHA9dC5jYW52YXMsZD10LnNjYWxlfHwxLGc9dC53aWR0aHx8MzAwLHY9dC5oZWlnaHR8fDE1MCxtPWQqZyx5PWQqdix4PXAuZ2V0Q29udGV4dCgiMmQiKSxiPW5ldyBzOyJzdmciPT09Y3x8bi5pc0lFOW9yQmVsb3coKXx8bi5pc1NhZmFyaSgpP2Y9aS5lbmNvZGVTVkcobCk6KGg9aS5jcmVhdGVCbG9iKGwsInN2ZyIpLGY9aS5jcmVhdGVPYmplY3RVUkwoaCkpLHAud2lkdGg9bSxwLmhlaWdodD15LGIub25sb2FkPWZ1bmN0aW9uKCl7dmFyIHI7c3dpdGNoKGg9bnVsbCxpLnJldm9rZU9iamVjdFVSTChmKSwic3ZnIiE9PWMmJnguZHJhd0ltYWdlKGIsMCwwLG0seSksYyl7Y2FzZSJqcGVnIjpyPXAudG9EYXRhVVJMKCJpbWFnZS9qcGVnIik7YnJlYWs7Y2FzZSJwbmciOnI9cC50b0RhdGFVUkwoImltYWdlL3BuZyIpO2JyZWFrO2Nhc2Uid2VicCI6cj1wLnRvRGF0YVVSTCgiaW1hZ2Uvd2VicCIpO2JyZWFrO2Nhc2Uic3ZnIjpyPWY7YnJlYWs7ZGVmYXVsdDp2YXIgbj0iSW1hZ2UgZm9ybWF0IGlzIG5vdCBqcGVnLCBwbmcsIHN2ZyBvciB3ZWJwLiI7aWYobyhuZXcgRXJyb3IobikpLCF0LnByb21pc2UpcmV0dXJuIGUuZW1pdCgiZXJyb3IiLG4pfWEociksdC5wcm9taXNlfHxlLmVtaXQoInN1Y2Nlc3MiLHIpfSxiLm9uZXJyb3I9ZnVuY3Rpb24ocil7aWYoaD1udWxsLGkucmV2b2tlT2JqZWN0VVJMKGYpLG8ociksIXQucHJvbWlzZSlyZXR1cm4gZS5lbWl0KCJlcnJvciIscil9LGIuc3JjPWZ9KTtyZXR1cm4gdC5wcm9taXNlP3I6ZX19LHsiLi4vbGliIjo3MTcsIi4vaGVscGVycyI6ODUwLGV2ZW50czoxMDZ9XSw4NTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZXZlbnRzIikuRXZlbnRFbWl0dGVyLGE9dCgiLi4vcmVnaXN0cnkiKSxpPXQoIi4uL2xpYiIpLG89dCgiLi9oZWxwZXJzIikscz10KCIuL2Nsb25lcGxvdCIpLGw9dCgiLi90b3N2ZyIpLGM9dCgiLi9zdmd0b2ltZyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPW5ldyBuLHU9cyh0LHtmb3JtYXQ6InBuZyJ9KSxoPXUuZ2Q7aC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLGguc3R5bGUubGVmdD0iLTUwMDBweCIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChoKTt2YXIgZj1vLmdldFJlZHJhd0Z1bmMoaCk7cmV0dXJuIGEuY2FsbCgicGxvdCIsaCx1LmRhdGEsdS5sYXlvdXQsdS5jb25maWcpLnRoZW4oZikudGhlbihmdW5jdGlvbigpe3ZhciB0PW8uZ2V0RGVsYXkoaC5fZnVsbExheW91dCk7c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB0PWwoaCksbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtuLmlkPWkucmFuZHN0cigpLChyPWMoe2Zvcm1hdDplLmZvcm1hdCx3aWR0aDpoLl9mdWxsTGF5b3V0LndpZHRoLGhlaWdodDpoLl9mdWxsTGF5b3V0LmhlaWdodCxjYW52YXM6bixlbWl0dGVyOnIsc3ZnOnR9KSkuY2xlYW49ZnVuY3Rpb24oKXtoJiZkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGgpfX0sdCl9KS5jYXRjaChmdW5jdGlvbih0KXtyLmVtaXQoImVycm9yIix0KX0pLHJ9fSx7Ii4uL2xpYiI6NzE3LCIuLi9yZWdpc3RyeSI6ODQ2LCIuL2Nsb25lcGxvdCI6ODQ3LCIuL2hlbHBlcnMiOjg1MCwiLi9zdmd0b2ltZyI6ODUyLCIuL3Rvc3ZnIjo4NTQsZXZlbnRzOjEwNn1dLDg1NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGE9dCgiLi4vbGliIiksaT10KCIuLi9jb21wb25lbnRzL2RyYXdpbmciKSxvPXQoIi4uL2NvbXBvbmVudHMvY29sb3IiKSxzPXQoIi4uL2NvbnN0YW50cy94bWxuc19uYW1lc3BhY2VzIiksbD0vIi9nLGM9bmV3IFJlZ0V4cCgnKCJUT0JFU1RSSVBQRUQpfChUT0JFU1RSSVBQRUQiKScsImciKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciB1LGg9dC5fZnVsbExheW91dCxmPWguX3BhcGVyLHA9aC5fdG9wcGFwZXIsZD1oLndpZHRoLGc9aC5oZWlnaHQ7Zi5pbnNlcnQoInJlY3QiLCI6Zmlyc3QtY2hpbGQiKS5jYWxsKGkuc2V0UmVjdCwwLDAsZCxnKS5jYWxsKG8uZmlsbCxoLnBhcGVyX2JnY29sb3IpO3ZhciB2PWguX2Jhc2VQbG90TW9kdWxlc3x8W107Zm9yKHU9MDt1PHYubGVuZ3RoO3UrKyl7dmFyIG09dlt1XTttLnRvU1ZHJiZtLnRvU1ZHKHQpfWlmKHApe3ZhciB5PXAubm9kZSgpLmNoaWxkTm9kZXMseD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh5KTtmb3IodT0wO3U8eC5sZW5ndGg7dSsrKXt2YXIgYj14W3VdO2IuY2hpbGROb2Rlcy5sZW5ndGgmJmYubm9kZSgpLmFwcGVuZENoaWxkKGIpfX1pZihoLl9kcmFnZ2VycyYmaC5fZHJhZ2dlcnMucmVtb3ZlKCksZi5ub2RlKCkuc3R5bGUuYmFja2dyb3VuZD0iIixmLnNlbGVjdEFsbCgidGV4dCIpLmF0dHIoeyJkYXRhLXVuZm9ybWF0dGVkIjpudWxsLCJkYXRhLW1hdGgiOm51bGx9KS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9bi5zZWxlY3QodGhpcyk7aWYoImhpZGRlbiIhPT10aGlzLnN0eWxlLnZpc2liaWxpdHkmJiJub25lIiE9PXRoaXMuc3R5bGUuZGlzcGxheSl7dC5zdHlsZSh7dmlzaWJpbGl0eTpudWxsLGRpc3BsYXk6bnVsbH0pO3ZhciBlPXRoaXMuc3R5bGUuZm9udEZhbWlseTtlJiYtMSE9PWUuaW5kZXhPZignIicpJiZ0LnN0eWxlKCJmb250LWZhbWlseSIsZS5yZXBsYWNlKGwsIlRPQkVTVFJJUFBFRCIpKX1lbHNlIHQucmVtb3ZlKCl9KSxoLl9ncmFkaWVudFVybFF1ZXJ5UGFydHMpe3ZhciBfPVtdO2Zvcih2YXIgdyBpbiBoLl9ncmFkaWVudFVybFF1ZXJ5UGFydHMpXy5wdXNoKHcpO18ubGVuZ3RoJiZmLnNlbGVjdEFsbChfLmpvaW4oIiwiKSkuZWFjaChmdW5jdGlvbigpe3ZhciB0PW4uc2VsZWN0KHRoaXMpLGU9dGhpcy5zdHlsZS5maWxsO2UmJi0xIT09ZS5pbmRleE9mKCJ1cmwoIikmJnQuc3R5bGUoImZpbGwiLGUucmVwbGFjZShsLCJUT0JFU1RSSVBQRUQiKSk7dmFyIHI9dGhpcy5zdHlsZS5zdHJva2U7ciYmLTEhPT1yLmluZGV4T2YoInVybCgiKSYmdC5zdHlsZSgic3Ryb2tlIixyLnJlcGxhY2UobCwiVE9CRVNUUklQUEVEIikpfSl9InBkZiIhPT1lJiYiZXBzIiE9PWV8fGYuc2VsZWN0QWxsKCIjTWF0aEpheF9TVkdfZ2x5cGhzIHBhdGgiKS5hdHRyKCJzdHJva2Utd2lkdGgiLDApLGYubm9kZSgpLnNldEF0dHJpYnV0ZU5TKHMueG1sbnMsInhtbG5zIixzLnN2ZyksZi5ub2RlKCkuc2V0QXR0cmlidXRlTlMocy54bWxucywieG1sbnM6eGxpbmsiLHMueGxpbmspLCJzdmciPT09ZSYmciYmKGYuYXR0cigid2lkdGgiLHIqZCksZi5hdHRyKCJoZWlnaHQiLHIqZyksZi5hdHRyKCJ2aWV3Qm94IiwiMCAwICIrZCsiICIrZykpO3ZhciBrPShuZXcgd2luZG93LlhNTFNlcmlhbGl6ZXIpLnNlcmlhbGl6ZVRvU3RyaW5nKGYubm9kZSgpKTtyZXR1cm4gaz1mdW5jdGlvbih0KXt2YXIgZT1uLnNlbGVjdCgiYm9keSIpLmFwcGVuZCgiZGl2Iikuc3R5bGUoe2Rpc3BsYXk6Im5vbmUifSkuaHRtbCgiIikscj10LnJlcGxhY2UoLygmW147XSo7KS9naSxmdW5jdGlvbih0KXtyZXR1cm4iJmx0OyI9PT10PyImIzYwOyI6IiZydDsiPT09dD8iJiM2MjsiOi0xIT09dC5pbmRleE9mKCI8Iil8fC0xIT09dC5pbmRleE9mKCI+Iik/IiI6ZS5odG1sKHQpLnRleHQoKX0pO3JldHVybiBlLnJlbW92ZSgpLHJ9KGspLGs9KGs9ay5yZXBsYWNlKC8mKD8hXHcrO3xcI1swLTldKzt8IFwjeFswLTlBLUZdKzspL2csIiZhbXA7IikpLnJlcGxhY2UoYywiJyIpLGEuaXNJRSgpJiYoaz0oaz0oaz1rLnJlcGxhY2UoLyIvZ2ksIiciKSkucmVwbGFjZSgvKFwoJyMpKFteJ10qKSgnXCkpL2dpLCcoIiMkMiIpJykpLnJlcGxhY2UoLyhcXCcpL2dpLCciJykpLGt9fSx7Ii4uL2NvbXBvbmVudHMvY29sb3IiOjU5MiwiLi4vY29tcG9uZW50cy9kcmF3aW5nIjo2MTMsIi4uL2NvbnN0YW50cy94bWxuc19uYW1lc3BhY2VzIjo2OTQsIi4uL2xpYiI6NzE3LGQzOjE2NX1dLDg1NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl0W3JdLmk9cjtuLm1lcmdlQXJyYXkoZS50ZXh0LHQsInR4Iiksbi5tZXJnZUFycmF5KGUuaG92ZXJ0ZXh0LHQsImh0eCIpO3ZhciBhPWUubWFya2VyO2lmKGEpe24ubWVyZ2VBcnJheShhLm9wYWNpdHksdCwibW8iLCEwKSxuLm1lcmdlQXJyYXkoYS5jb2xvcix0LCJtYyIpO3ZhciBpPWEubGluZTtpJiYobi5tZXJnZUFycmF5KGkuY29sb3IsdCwibWxjIiksbi5tZXJnZUFycmF5Q2FzdFBvc2l0aXZlKGkud2lkdGgsdCwibWx3IikpfX19LHsiLi4vLi4vbGliIjo3MTd9XSw4NTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikuaG92ZXJ0ZW1wbGF0ZUF0dHJzLGk9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLnRleHR0ZW1wbGF0ZUF0dHJzLG89dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyIpLGw9dCgiLi9jb25zdGFudHMiKSxjPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LHU9cyh7ZWRpdFR5cGU6ImNhbGMiLGFycmF5T2s6ITAsY29sb3JFZGl0VHlwZToic3R5bGUifSksaD1jKHt9LG4ubWFya2VyLmxpbmUud2lkdGgse2RmbHQ6MH0pLGY9Yyh7d2lkdGg6aCxlZGl0VHlwZToiY2FsYyJ9LG8oIm1hcmtlci5saW5lIikpLHA9Yyh7bGluZTpmLGVkaXRUeXBlOiJjYWxjIn0sbygibWFya2VyIikse29wYWNpdHk6e3ZhbFR5cGU6Im51bWJlciIsYXJyYXlPazohMCxkZmx0OjEsbWluOjAsbWF4OjEsZWRpdFR5cGU6InN0eWxlIn19KTtlLmV4cG9ydHM9e3g6bi54LHgwOm4ueDAsZHg6bi5keCx5Om4ueSx5MDpuLnkwLGR5Om4uZHksdGV4dDpuLnRleHQsdGV4dHRlbXBsYXRlOmkoe2VkaXRUeXBlOiJwbG90In0se2tleXM6bC5ldmVudERhdGFLZXlzfSksaG92ZXJ0ZXh0Om4uaG92ZXJ0ZXh0LGhvdmVydGVtcGxhdGU6YSh7fSx7a2V5czpsLmV2ZW50RGF0YUtleXN9KSx0ZXh0cG9zaXRpb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImluc2lkZSIsIm91dHNpZGUiLCJhdXRvIiwibm9uZSJdLGRmbHQ6Im5vbmUiLGFycmF5T2s6ITAsZWRpdFR5cGU6ImNhbGMifSxpbnNpZGV0ZXh0YW5jaG9yOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJlbmQiLCJtaWRkbGUiLCJzdGFydCJdLGRmbHQ6ImVuZCIsZWRpdFR5cGU6InBsb3QifSx0ZXh0YW5nbGU6e3ZhbFR5cGU6ImFuZ2xlIixkZmx0OiJhdXRvIixlZGl0VHlwZToicGxvdCJ9LHRleHRmb250OmMoe30sdSx7fSksaW5zaWRldGV4dGZvbnQ6Yyh7fSx1LHt9KSxvdXRzaWRldGV4dGZvbnQ6Yyh7fSx1LHt9KSxjb25zdHJhaW50ZXh0Ont2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJpbnNpZGUiLCJvdXRzaWRlIiwiYm90aCIsIm5vbmUiXSxkZmx0OiJib3RoIixlZGl0VHlwZToiY2FsYyJ9LGNsaXBvbmF4aXM6Yyh7fSxuLmNsaXBvbmF4aXMse30pLG9yaWVudGF0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ2IiwiaCJdLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0sYmFzZTp7dmFsVHlwZToiYW55IixkZmx0Om51bGwsYXJyYXlPazohMCxlZGl0VHlwZToiY2FsYyJ9LG9mZnNldDp7dmFsVHlwZToibnVtYmVyIixkZmx0Om51bGwsYXJyYXlPazohMCxlZGl0VHlwZToiY2FsYyJ9LHdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6bnVsbCxtaW46MCxhcnJheU9rOiEwLGVkaXRUeXBlOiJjYWxjIn0sbWFya2VyOnAsb2Zmc2V0Z3JvdXA6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixlZGl0VHlwZToiY2FsYyJ9LGFsaWdubWVudGdyb3VwOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6ImNhbGMifSxzZWxlY3RlZDp7bWFya2VyOntvcGFjaXR5Om4uc2VsZWN0ZWQubWFya2VyLm9wYWNpdHksY29sb3I6bi5zZWxlY3RlZC5tYXJrZXIuY29sb3IsZWRpdFR5cGU6InN0eWxlIn0sdGV4dGZvbnQ6bi5zZWxlY3RlZC50ZXh0Zm9udCxlZGl0VHlwZToic3R5bGUifSx1bnNlbGVjdGVkOnttYXJrZXI6e29wYWNpdHk6bi51bnNlbGVjdGVkLm1hcmtlci5vcGFjaXR5LGNvbG9yOm4udW5zZWxlY3RlZC5tYXJrZXIuY29sb3IsZWRpdFR5cGU6InN0eWxlIn0sdGV4dGZvbnQ6bi51bnNlbGVjdGVkLnRleHRmb250LGVkaXRUeXBlOiJzdHlsZSJ9LHI6bi5yLHQ6bi50LF9kZXByZWNhdGVkOntiYXJkaXI6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLGVkaXRUeXBlOiJjYWxjIix2YWx1ZXM6WyJ2IiwiaCJdfX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjo1OTksIi4uLy4uL2xpYi9leHRlbmQiOjcwOCwiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIjo3OTEsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjg0MSwiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIjoxMTIwLCIuL2NvbnN0YW50cyI6ODU4fV0sODU3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvaGVscGVycyIpLmhhc0NvbG9yc2NhbGUsaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY2FsYyIpLG89dCgiLi9hcnJheXNfdG9fY2FsY2RhdGEiKSxzPXQoIi4uL3NjYXR0ZXIvY2FsY19zZWxlY3Rpb24iKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixsLGM9bi5nZXRGcm9tSWQodCxlLnhheGlzfHwieCIpLHU9bi5nZXRGcm9tSWQodCxlLnlheGlzfHwieSIpOyJoIj09PWUub3JpZW50YXRpb24/KHI9Yy5tYWtlQ2FsY2RhdGEoZSwieCIpLGw9dS5tYWtlQ2FsY2RhdGEoZSwieSIpKToocj11Lm1ha2VDYWxjZGF0YShlLCJ5IiksbD1jLm1ha2VDYWxjZGF0YShlLCJ4IikpO2Zvcih2YXIgaD1NYXRoLm1pbihsLmxlbmd0aCxyLmxlbmd0aCksZj1uZXcgQXJyYXkoaCkscD0wO3A8aDtwKyspZltwXT17cDpsW3BdLHM6cltwXX0sZS5pZHMmJihmW3BdLmlkPVN0cmluZyhlLmlkc1twXSkpO3JldHVybiBhKGUsIm1hcmtlciIpJiZpKHQsZSx7dmFsczplLm1hcmtlci5jb2xvcixjb250YWluZXJTdHI6Im1hcmtlciIsY0xldHRlcjoiYyJ9KSxhKGUsIm1hcmtlci5saW5lIikmJmkodCxlLHt2YWxzOmUubWFya2VyLmxpbmUuY29sb3IsY29udGFpbmVyU3RyOiJtYXJrZXIubGluZSIsY0xldHRlcjoiYyJ9KSxvKGYsZSkscyhmLGUpLGZ9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIjo2MDAsIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9oZWxwZXJzIjo2MDMsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo3NjUsIi4uL3NjYXR0ZXIvY2FsY19zZWxlY3Rpb24iOjExMjIsIi4vYXJyYXlzX3RvX2NhbGNkYXRhIjo4NTV9XSw4NTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtURVhUUEFEOjMsZXZlbnREYXRhS2V5czpbInZhbHVlIiwibGFiZWwiXX19LHt9XSw4NTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxhPXQoIi4uLy4uL2xpYiIpLmlzQXJyYXlPclR5cGVkQXJyYXksaT10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNLG89dCgiLi4vLi4vcmVnaXN0cnkiKSxzPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksbD10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiKS5nZXRBeGlzR3JvdXAsYz10KCIuL3NpZXZlLmpzIik7ZnVuY3Rpb24gdSh0LGUscixvLHUpe2lmKG8ubGVuZ3RoKXt2YXIgYixfLHcsaztzd2l0Y2goZnVuY3Rpb24odCxlKXt2YXIgcixpO2ZvcihyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBvLHM9ZVtyXSxsPXNbMF0udHJhY2UsYz0iZnVubmVsIj09PWwudHlwZT9sLl9iYXNlOmwuYmFzZSx1PSJoIj09PWwub3JpZW50YXRpb24/bC54Y2FsZW5kYXI6bC55Y2FsZW5kYXIsaD0iY2F0ZWdvcnkiPT09dC50eXBlfHwibXVsdGljYXRlZ29yeSI9PT10LnR5cGU/ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH06dC5kMmM7aWYoYShjKSl7Zm9yKGk9MDtpPE1hdGgubWluKGMubGVuZ3RoLHMubGVuZ3RoKTtpKyspbz1oKGNbaV0sMCx1KSxuKG8pPyhzW2ldLmI9K28sc1tpXS5oYXNCPTEpOnNbaV0uYj0wO2Zvcig7aTxzLmxlbmd0aDtpKyspc1tpXS5iPTB9ZWxzZXtvPWgoYywwLHUpO3ZhciBmPW4obyk7Zm9yKG89Zj9vOjAsaT0wO2k8cy5sZW5ndGg7aSsrKXNbaV0uYj1vLGYmJihzW2ldLmhhc0I9MSl9fX0ocixvKSx1Lm1vZGUpe2Nhc2Uib3ZlcmxheSI6aChlLHIsbyx1KTticmVhaztjYXNlImdyb3VwIjpmb3IoYj1bXSxfPVtdLHc9MDt3PG8ubGVuZ3RoO3crKyl2b2lkIDA9PT0oaz1vW3ddKVswXS50cmFjZS5vZmZzZXQ/Xy5wdXNoKGspOmIucHVzaChrKTtfLmxlbmd0aCYmZnVuY3Rpb24odCxlLHIsbixhKXt2YXIgbz1uZXcgYyhuLHtzZXBOZWdWYWw6ITEsb3ZlcmxhcE5vTWVyZ2U6IWEubm9ybX0pOyhmdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGE9dC5fZnVsbExheW91dCxpPXIucG9zaXRpb25zLG89ci5kaXN0aW5jdFBvc2l0aW9ucyxzPXIubWluRGlmZixjPXIudHJhY2VzLHU9Yy5sZW5ndGgsaD1pLmxlbmd0aCE9PW8ubGVuZ3RoLGY9cyooMS1uLmdhcCksdj1sKGEsZS5faWQpK2NbMF1bMF0udHJhY2Uub3JpZW50YXRpb24sbT1hLl9hbGlnbm1lbnRPcHRzW3ZdfHx7fSx5PTA7eTx1O3krKyl7dmFyIHgsYixfPWNbeV0sdz1fWzBdLnRyYWNlLGs9bVt3LmFsaWdubWVudGdyb3VwXXx8e30sVD1PYmplY3Qua2V5cyhrLm9mZnNldEdyb3Vwc3x8e30pLmxlbmd0aCxNPSh4PVQ/Zi9UOmg/Zi91OmYpKigxLShuLmdyb3VwZ2FwfHwwKSk7Yj1UPygoMip3Ll9vZmZzZXRJbmRleCsxLVQpKngtTSkvMjpoPygoMip5KzEtdSkqeC1NKS8yOi1NLzI7dmFyIEE9X1swXS50O0EuYmFyd2lkdGg9TSxBLnBvZmZzZXQ9YixBLmJhcmdyb3Vwd2lkdGg9ZixBLmJhcmRlbHRhPXN9ci5iaW5XaWR0aD1jWzBdWzBdLnQuYmFyd2lkdGgvMTAwLHAociksZChlLHIpLGcoZSxyLGgpfSkodCxlLG8sYSksZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQudHJhY2VzLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXSxhPW5bMF0udHJhY2U7aWYodm9pZCAwPT09YS5iYXNlKWZvcih2YXIgbz1uZXcgYyhbbl0se3NlcE5lZ1ZhbDohMCxvdmVybGFwTm9NZXJnZTohMH0pLHM9MDtzPG4ubGVuZ3RoO3MrKyl7dmFyIGw9bltzXTtpZihsLnAhPT1pKXt2YXIgdT1vLnB1dChsLnAsbC5iK2wucyk7dSYmKGwuYj11KX19fX0obyksYS5ub3JtPyhtKG8pLHkocixvLGEpKTp2KHIsbyl9KHQsZSxyLF8sdSksYi5sZW5ndGgmJmgoZSxyLGIsdSk7YnJlYWs7Y2FzZSJzdGFjayI6Y2FzZSJyZWxhdGl2ZSI6Zm9yKGI9W10sXz1bXSx3PTA7dzxvLmxlbmd0aDt3Kyspdm9pZCAwPT09KGs9b1t3XSlbMF0udHJhY2UuYmFzZT9fLnB1c2goayk6Yi5wdXNoKGspO18ubGVuZ3RoJiZmdW5jdGlvbih0LGUscixuLGEpe3ZhciBvPW5ldyBjKG4se3NlcE5lZ1ZhbDoicmVsYXRpdmUiPT09YS5tb2RlLG92ZXJsYXBOb01lcmdlOiEoYS5ub3JtfHwic3RhY2siPT09YS5tb2RlfHwicmVsYXRpdmUiPT09YS5tb2RlKX0pO2YoZSxvLGEpLGZ1bmN0aW9uKHQsZSxyKXt2YXIgbixhLG8sbCxjLHUsaD14KHQpLGY9ZS50cmFjZXM7Zm9yKGw9MDtsPGYubGVuZ3RoO2wrKylpZihuPWZbbF0sImZ1bm5lbCI9PT0oYT1uWzBdLnRyYWNlKS50eXBlKWZvcihjPTA7YzxuLmxlbmd0aDtjKyspKHU9bltjXSkucyE9PWkmJmUucHV0KHUucCwtLjUqdS5zKTtmb3IobD0wO2w8Zi5sZW5ndGg7bCsrKXtuPWZbbF0sYT1uWzBdLnRyYWNlLG89ImZ1bm5lbCI9PT1hLnR5cGU7dmFyIHA9W107Zm9yKGM9MDtjPG4ubGVuZ3RoO2MrKylpZigodT1uW2NdKS5zIT09aSl7dmFyIGQ7ZD1vP3Uuczp1LnMrdS5iO3ZhciBnPWUucHV0KHUucCxkKSx2PWcrZDt1LmI9Zyx1W2hdPXYsci5ub3JtfHwocC5wdXNoKHYpLHUuaGFzQiYmcC5wdXNoKGcpKX1yLm5vcm18fChhLl9leHRyZW1lc1t0Ll9pZF09cy5maW5kRXh0cmVtZXModCxwLHt0b3plcm86ITAscGFkZGVkOiEwfSkpfX0ocixvLGEpO2Zvcih2YXIgbD0wO2w8bi5sZW5ndGg7bCsrKWZvcih2YXIgdT1uW2xdLGg9MDtoPHUubGVuZ3RoO2grKyl7dmFyIHA9dVtoXTtpZihwLnMhPT1pKXt2YXIgZD1wLmIrcC5zPT09by5nZXQocC5wLHAucyk7ZCYmKHAuX291dG1vc3Q9ITApfX1hLm5vcm0mJnkocixvLGEpfSgwLGUscixfLHUpLGIubGVuZ3RoJiZoKGUscixiLHUpfSFmdW5jdGlvbih0LGUpe3ZhciByLGEsaSxvPXgoZSkscz17fSxsPTEvMCxjPS0xLzA7Zm9yKHI9MDtyPHQubGVuZ3RoO3IrKylmb3IoaT10W3JdLGE9MDthPGkubGVuZ3RoO2ErKyl7dmFyIHU9aVthXS5wO24odSkmJihsPU1hdGgubWluKGwsdSksYz1NYXRoLm1heChjLHUpKX12YXIgaD0xZTQvKGMtbCksZj1zLnJvdW5kPWZ1bmN0aW9uKHQpe3JldHVybiBTdHJpbmcoTWF0aC5yb3VuZChoKih0LWwpKSl9O2ZvcihyPTA7cjx0Lmxlbmd0aDtyKyspeyhpPXRbcl0pWzBdLnQuZXh0ZW50cz1zO3ZhciBwPWlbMF0udC5wb2Zmc2V0LGQ9QXJyYXkuaXNBcnJheShwKTtmb3IoYT0wO2E8aS5sZW5ndGg7YSsrKXt2YXIgZz1pW2FdLHY9Z1tvXS1nLncvMjtpZihuKHYpKXt2YXIgbT1nW29dK2cudy8yLHk9ZihnLnApO3NbeV0/c1t5XT1bTWF0aC5taW4odixzW3ldWzBdKSxNYXRoLm1heChtLHNbeV1bMV0pXTpzW3ldPVt2LG1dfWcucDA9Zy5wKyhkP3BbYV06cCksZy5wMT1nLnAwK2cudyxnLnMwPWcuYixnLnMxPWcuczArZy5zfX19KG8sZSl9fWZ1bmN0aW9uIGgodCxlLHIsbil7Zm9yKHZhciBhPTA7YTxyLmxlbmd0aDthKyspe3ZhciBpPXJbYV0sbz1uZXcgYyhbaV0se3NlcE5lZ1ZhbDohMSxvdmVybGFwTm9NZXJnZTohbi5ub3JtfSk7Zih0LG8sbiksbi5ub3JtPyhtKG8pLHkoZSxvLG4pKTp2KGUsbyl9fWZ1bmN0aW9uIGYodCxlLHIpe2Zvcih2YXIgbj1lLm1pbkRpZmYsYT1lLnRyYWNlcyxpPW4qKDEtci5nYXApLG89aSooMS0oci5ncm91cGdhcHx8MCkpLHM9LW8vMixsPTA7bDxhLmxlbmd0aDtsKyspe3ZhciBjPWFbbF1bMF0udDtjLmJhcndpZHRoPW8sYy5wb2Zmc2V0PXMsYy5iYXJncm91cHdpZHRoPWksYy5iYXJkZWx0YT1ufWUuYmluV2lkdGg9YVswXVswXS50LmJhcndpZHRoLzEwMCxwKGUpLGQodCxlKSxnKHQsZSl9ZnVuY3Rpb24gcCh0KXt2YXIgZSxyLGk9dC50cmFjZXM7Zm9yKGU9MDtlPGkubGVuZ3RoO2UrKyl7dmFyIG8scz1pW2VdLGw9c1swXSxjPWwudHJhY2UsdT1sLnQsaD1jLl9vZmZzZXR8fGMub2Zmc2V0LGY9dS5wb2Zmc2V0O2lmKGEoaCkpe2ZvcihvPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGgsMCxzLmxlbmd0aCkscj0wO3I8by5sZW5ndGg7cisrKW4ob1tyXSl8fChvW3JdPWYpO2ZvcihyPW8ubGVuZ3RoO3I8cy5sZW5ndGg7cisrKW8ucHVzaChmKTt1LnBvZmZzZXQ9b31lbHNlIHZvaWQgMCE9PWgmJih1LnBvZmZzZXQ9aCk7dmFyIHA9Yy5fd2lkdGh8fGMud2lkdGgsZD11LmJhcndpZHRoO2lmKGEocCkpe3ZhciBnPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHAsMCxzLmxlbmd0aCk7Zm9yKHI9MDtyPGcubGVuZ3RoO3IrKyluKGdbcl0pfHwoZ1tyXT1kKTtmb3Iocj1nLmxlbmd0aDtyPHMubGVuZ3RoO3IrKylnLnB1c2goZCk7aWYodS5iYXJ3aWR0aD1nLHZvaWQgMD09PWgpe2ZvcihvPVtdLHI9MDtyPHMubGVuZ3RoO3IrKylvLnB1c2goZisoZC1nW3JdKS8yKTt1LnBvZmZzZXQ9b319ZWxzZSB2b2lkIDAhPT1wJiYodS5iYXJ3aWR0aD1wLHZvaWQgMD09PWgmJih1LnBvZmZzZXQ9ZisoZC1wKS8yKSl9fWZ1bmN0aW9uIGQodCxlKXtmb3IodmFyIHI9ZS50cmFjZXMsbj14KHQpLGE9MDthPHIubGVuZ3RoO2ErKylmb3IodmFyIGk9clthXSxvPWlbMF0udCxzPW8ucG9mZnNldCxsPUFycmF5LmlzQXJyYXkocyksYz1vLmJhcndpZHRoLHU9QXJyYXkuaXNBcnJheShjKSxoPTA7aDxpLmxlbmd0aDtoKyspe3ZhciBmPWlbaF0scD1mLnc9dT9jW2hdOmM7ZltuXT1mLnArKGw/c1toXTpzKStwLzJ9fWZ1bmN0aW9uIGcodCxlLHIpe3ZhciBuPWUudHJhY2VzLGE9ZS5taW5EaWZmLzI7cy5taW5EdGljayh0LGUubWluRGlmZixlLmRpc3RpbmN0UG9zaXRpb25zWzBdLHIpO2Zvcih2YXIgaT0wO2k8bi5sZW5ndGg7aSsrKXt2YXIgbyxsLGMsdSxoPW5baV0sZj1oWzBdLHA9Zi50cmFjZSxkPVtdO2Zvcih1PTA7dTxoLmxlbmd0aDt1KyspbD0obz1oW3VdKS5wLWEsYz1vLnArYSxkLnB1c2gobCxjKTtpZihwLndpZHRofHxwLm9mZnNldCl7dmFyIGc9Zi50LHY9Zy5wb2Zmc2V0LG09Zy5iYXJ3aWR0aCx5PUFycmF5LmlzQXJyYXkodikseD1BcnJheS5pc0FycmF5KG0pO2Zvcih1PTA7dTxoLmxlbmd0aDt1Kyspe289aFt1XTt2YXIgYj15P3ZbdV06dixfPXg/bVt1XTptO2M9KGw9by5wK2IpK18sZC5wdXNoKGwsYyl9fXAuX2V4dHJlbWVzW3QuX2lkXT1zLmZpbmRFeHRyZW1lcyh0LGQse3BhZGRlZDohMX0pfX1mdW5jdGlvbiB2KHQsZSl7Zm9yKHZhciByPWUudHJhY2VzLG49eCh0KSxhPTA7YTxyLmxlbmd0aDthKyspe2Zvcih2YXIgaT1yW2FdLG89aVswXS50cmFjZSxsPVtdLGM9ITAsdT0wO3U8aS5sZW5ndGg7dSsrKXt2YXIgaD1pW3VdLGY9aC5iLHA9ZitoLnM7aFtuXT1wLGwucHVzaChwKSxoLmhhc0ImJmwucHVzaChmKSxoLmhhc0ImJmguYj4wJiZoLnM+MHx8KGM9ITEpfW8uX2V4dHJlbWVzW3QuX2lkXT1zLmZpbmRFeHRyZW1lcyh0LGwse3RvemVybzohYyxwYWRkZWQ6ITB9KX19ZnVuY3Rpb24gbSh0KXtmb3IodmFyIGU9dC50cmFjZXMscj0wO3I8ZS5sZW5ndGg7cisrKWZvcih2YXIgbj1lW3JdLGE9MDthPG4ubGVuZ3RoO2ErKyl7dmFyIG89blthXTtvLnMhPT1pJiZ0LnB1dChvLnAsby5iK28ucyl9fWZ1bmN0aW9uIHkodCxlLHIpe3ZhciBhPWUudHJhY2VzLG89eCh0KSxsPSJmcmFjdGlvbiI9PT1yLm5vcm0/MToxMDAsYz1sLzFlOSx1PXQubDJjKHQuYzJsKDApKSxoPSJzdGFjayI9PT1yLm1vZGU/bDp1O2Z1bmN0aW9uIGYoZSl7cmV0dXJuIG4odC5jMmwoZSkpJiYoZTx1LWN8fGU+aCtjfHwhbih1KSl9Zm9yKHZhciBwPTA7cDxhLmxlbmd0aDtwKyspe2Zvcih2YXIgZD1hW3BdLGc9ZFswXS50cmFjZSx2PVtdLG09ITAseT0hMSxiPTA7YjxkLmxlbmd0aDtiKyspe3ZhciBfPWRbYl07aWYoXy5zIT09aSl7dmFyIHc9TWF0aC5hYnMobC9lLmdldChfLnAsXy5zKSk7Xy5iKj13LF8ucyo9dzt2YXIgaz1fLmIsVD1rK18ucztfW29dPVQsdi5wdXNoKFQpLHk9eXx8ZihUKSxfLmhhc0ImJih2LnB1c2goaykseT15fHxmKGspKSxfLmhhc0ImJl8uYj4wJiZfLnM+MHx8KG09ITEpfX1nLl9leHRyZW1lc1t0Ll9pZF09cy5maW5kRXh0cmVtZXModCx2LHt0b3plcm86IW0scGFkZGVkOnl9KX19ZnVuY3Rpb24geCh0KXtyZXR1cm4gdC5faWQuY2hhckF0KDApfWUuZXhwb3J0cz17Y3Jvc3NUcmFjZUNhbGM6ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9ZS54YXhpcyxuPWUueWF4aXMsYT10Ll9mdWxsTGF5b3V0LGk9dC5fZnVsbERhdGEscz10LmNhbGNkYXRhLGw9W10sYz1bXSxoPTA7aDxpLmxlbmd0aDtoKyspe3ZhciBmPWlbaF07ITA9PT1mLnZpc2libGUmJm8udHJhY2VJcyhmLCJiYXIiKSYmZi54YXhpcz09PXIuX2lkJiZmLnlheGlzPT09bi5faWQmJigiaCI9PT1mLm9yaWVudGF0aW9uP2wucHVzaChzW2hdKTpjLnB1c2goc1toXSkpfXZhciBwPXttb2RlOmEuYmFybW9kZSxub3JtOmEuYmFybm9ybSxnYXA6YS5iYXJnYXAsZ3JvdXBnYXA6YS5iYXJncm91cGdhcH07dSh0LHIsbixjLHApLHUodCxuLHIsbCxwKX0sc2V0R3JvdXBQb3NpdGlvbnM6dX19LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NjkzLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjc2NSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIjo3NjgsIi4uLy4uL3JlZ2lzdHJ5Ijo4NDYsIi4vc2lldmUuanMiOjg2OSwiZmFzdC1pc251bWVyaWMiOjIyOH1dLDg2MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxpPXQoIi4uLy4uL3JlZ2lzdHJ5Iiksbz10KCIuLi9zY2F0dGVyL3h5X2RlZmF1bHRzIikscz10KCIuL3N0eWxlX2RlZmF1bHRzIiksbD10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiKS5nZXRBeGlzR3JvdXAsYz10KCIuL2F0dHJpYnV0ZXMiKSx1PW4uY29lcmNlRm9udDtmdW5jdGlvbiBoKHQsZSxyLG4pe3ZhciBhPWUub3JpZW50YXRpb24saT1lW3t2OiJ4IixoOiJ5In1bYV0rImF4aXMiXSxvPWwocixpKSthLHM9ci5fYWxpZ25tZW50T3B0c3x8e30sYz1uKCJhbGlnbm1lbnRncm91cCIpLHU9c1tvXTt1fHwodT1zW29dPXt9KTt2YXIgaD11W2NdO2g/aC50cmFjZXMucHVzaChlKTpoPXVbY109e3RyYWNlczpbZV0sYWxpZ25tZW50SW5kZXg6T2JqZWN0LmtleXModSkubGVuZ3RoLG9mZnNldEdyb3Vwczp7fX07dmFyIGY9bigib2Zmc2V0Z3JvdXAiKSxwPWgub2Zmc2V0R3JvdXBzLGQ9cFtmXTtmJiYoZHx8KGQ9cFtmXT17b2Zmc2V0SW5kZXg6T2JqZWN0LmtleXMocCkubGVuZ3RofSksZS5fb2Zmc2V0SW5kZXg9ZC5vZmZzZXRJbmRleCl9ZnVuY3Rpb24gZih0LGUscixhLGksbyl7dmFyIHM9ISghMT09PShvPW98fHt9KS5tb2R1bGVIYXNTZWxlY3RlZCksbD0hKCExPT09by5tb2R1bGVIYXNVbnNlbGVjdGVkKSxjPSEoITE9PT1vLm1vZHVsZUhhc0NvbnN0cmFpbiksaD0hKCExPT09by5tb2R1bGVIYXNDbGlwb25heGlzKSxmPSEoITE9PT1vLm1vZHVsZUhhc1RleHRhbmdsZSkscD0hKCExPT09by5tb2R1bGVIYXNJbnNpZGVhbmNob3IpLGQ9ISFvLmhhc1BhdGhiYXIsZz1BcnJheS5pc0FycmF5KGkpfHwiYXV0byI9PT1pLHY9Z3x8Imluc2lkZSI9PT1pLG09Z3x8Im91dHNpZGUiPT09aTtpZih2fHxtKXt2YXIgeT11KGEsInRleHRmb250IixyLmZvbnQpLHg9bi5leHRlbmRGbGF0KHt9LHkpLGI9ISh0LnRleHRmb250JiZ0LnRleHRmb250LmNvbG9yKTtpZihiJiZkZWxldGUgeC5jb2xvcix1KGEsImluc2lkZXRleHRmb250Iix4KSxkKXt2YXIgXz1uLmV4dGVuZEZsYXQoe30seSk7YiYmZGVsZXRlIF8uY29sb3IsdShhLCJwYXRoYmFyLnRleHRmb250IixfKX1tJiZ1KGEsIm91dHNpZGV0ZXh0Zm9udCIseSkscyYmYSgic2VsZWN0ZWQudGV4dGZvbnQuY29sb3IiKSxsJiZhKCJ1bnNlbGVjdGVkLnRleHRmb250LmNvbG9yIiksYyYmYSgiY29uc3RyYWludGV4dCIpLGgmJmEoImNsaXBvbmF4aXMiKSxmJiZhKCJ0ZXh0YW5nbGUiKSxhKCJ0ZXh0dGVtcGxhdGUiKX12JiZwJiZhKCJpbnNpZGV0ZXh0YW5jaG9yIil9ZS5leHBvcnRzPXtzdXBwbHlEZWZhdWx0czpmdW5jdGlvbih0LGUscixsKXtmdW5jdGlvbiB1KHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxjLHIsYSl9aWYobyh0LGUsbCx1KSl7dSgib3JpZW50YXRpb24iLGUueCYmIWUueT8iaCI6InYiKSx1KCJiYXNlIiksdSgib2Zmc2V0IiksdSgid2lkdGgiKSx1KCJ0ZXh0IiksdSgiaG92ZXJ0ZXh0IiksdSgiaG92ZXJ0ZW1wbGF0ZSIpO3ZhciBoPXUoInRleHRwb3NpdGlvbiIpO2YodCwwLGwsdSxoLHttb2R1bGVIYXNTZWxlY3RlZDohMCxtb2R1bGVIYXNVbnNlbGVjdGVkOiEwLG1vZHVsZUhhc0NvbnN0cmFpbjohMCxtb2R1bGVIYXNDbGlwb25heGlzOiEwLG1vZHVsZUhhc1RleHRhbmdsZTohMCxtb2R1bGVIYXNJbnNpZGVhbmNob3I6ITB9KSxzKHQsZSx1LHIsbCk7dmFyIHA9KGUubWFya2VyLmxpbmV8fHt9KS5jb2xvcixkPWkuZ2V0Q29tcG9uZW50TWV0aG9kKCJlcnJvcmJhcnMiLCJzdXBwbHlEZWZhdWx0cyIpO2QodCxlLHB8fGEuZGVmYXVsdExpbmUse2F4aXM6InkifSksZCh0LGUscHx8YS5kZWZhdWx0TGluZSx7YXhpczoieCIsaW5oZXJpdDoieSJ9KSxuLmNvZXJjZVNlbGVjdGlvbk1hcmtlck9wYWNpdHkoZSx1KX1lbHNlIGUudmlzaWJsZT0hMX0sY3Jvc3NUcmFjZURlZmF1bHRzOmZ1bmN0aW9uKHQsZSl7dmFyIHI7ZnVuY3Rpb24gYSh0KXtyZXR1cm4gbi5jb2VyY2Uoci5faW5wdXQscixjLHQpfWlmKCJncm91cCI9PT1lLmJhcm1vZGUpZm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspImJhciI9PT0ocj10W2ldKS50eXBlJiYoci5faW5wdXQsaCgwLHIsZSxhKSl9LGhhbmRsZUdyb3VwaW5nRGVmYXVsdHM6aCxoYW5kbGVUZXh0OmZ9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjU5MiwiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2lkcyI6NzY4LCIuLi8uLi9yZWdpc3RyeSI6ODQ2LCIuLi9zY2F0dGVyL3h5X2RlZmF1bHRzIjoxMTQ2LCIuL2F0dHJpYnV0ZXMiOjg1NiwiLi9zdHlsZV9kZWZhdWx0cyI6ODcxfV0sODYxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQueD0ieFZhbCJpbiBlP2UueFZhbDplLngsdC55PSJ5VmFsImluIGU/ZS55VmFsOmUueSxlLnhhJiYodC54YXhpcz1lLnhhKSxlLnlhJiYodC55YXhpcz1lLnlhKSwiaCI9PT1yLm9yaWVudGF0aW9uPyh0LmxhYmVsPXQueSx0LnZhbHVlPXQueCk6KHQubGFiZWw9dC54LHQudmFsdWU9dC55KSx0fX0se31dLDg2MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGE9dCgidGlueWNvbG9yMiIpLGk9dCgiLi4vLi4vbGliIikuaXNBcnJheU9yVHlwZWRBcnJheTtyLmNvZXJjZVN0cmluZz1mdW5jdGlvbih0LGUscil7aWYoInN0cmluZyI9PXR5cGVvZiBlKXtpZihlfHwhdC5ub0JsYW5rKXJldHVybiBlfWVsc2UgaWYoKCJudW1iZXIiPT10eXBlb2YgZXx8ITA9PT1lKSYmIXQuc3RyaWN0KXJldHVybiBTdHJpbmcoZSk7cmV0dXJuIHZvaWQgMCE9PXI/cjp0LmRmbHR9LHIuY29lcmNlTnVtYmVyPWZ1bmN0aW9uKHQsZSxyKXtpZihuKGUpKXtlPStlO3ZhciBhPXQubWluLGk9dC5tYXg7aWYoISh2b2lkIDAhPT1hJiZlPGF8fHZvaWQgMCE9PWkmJmU+aSkpcmV0dXJuIGV9cmV0dXJuIHZvaWQgMCE9PXI/cjp0LmRmbHR9LHIuY29lcmNlQ29sb3I9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBhKGUpLmlzVmFsaWQoKT9lOnZvaWQgMCE9PXI/cjp0LmRmbHR9LHIuY29lcmNlRW51bWVyYXRlZD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQuY29lcmNlTnVtYmVyJiYoZT0rZSksLTEhPT10LnZhbHVlcy5pbmRleE9mKGUpP2U6dm9pZCAwIT09cj9yOnQuZGZsdH0sci5nZXRWYWx1ZT1mdW5jdGlvbih0LGUpe3ZhciByO3JldHVybiBBcnJheS5pc0FycmF5KHQpP2U8dC5sZW5ndGgmJihyPXRbZV0pOnI9dCxyfSxyLmdldExpbmVXaWR0aD1mdW5jdGlvbih0LGUpe3JldHVybiAwPGUubWx3P2UubWx3OmkodC5tYXJrZXIubGluZS53aWR0aCk/MDp0Lm1hcmtlci5saW5lLndpZHRofX0seyIuLi8uLi9saWIiOjcxNywiZmFzdC1pc251bWVyaWMiOjIyOCx0aW55Y29sb3IyOjUzNn1dLDg2MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2Z4IiksYT10KCIuLi8uLi9yZWdpc3RyeSIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLG89dCgiLi4vLi4vbGliIikuZmlsbFRleHQscz10KCIuL2hlbHBlcnMiKS5nZXRMaW5lV2lkdGgsbD10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLmhvdmVyTGFiZWxUZXh0O2Z1bmN0aW9uIGModCxlLHIsYSl7dmFyIGkscyxjLHUsaCxmLHAsZD10LmNkLGc9ZFswXS50cmFjZSx2PWRbMF0udCxtPSJjbG9zZXN0Ij09PWEseT0id2F0ZXJmYWxsIj09PWcudHlwZSx4PXQubWF4SG92ZXJEaXN0YW5jZSxiPXQubWF4U3Bpa2VEaXN0YW5jZTtmdW5jdGlvbiBfKHQpe3JldHVybiB0W2NdLXQudy8yfWZ1bmN0aW9uIHcodCl7cmV0dXJuIHRbY10rdC53LzJ9dmFyIGs9bT9fOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1pbihfKHQpLHQucC12LmJhcmRlbHRhLzIpfSxUPW0/dzpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5tYXgodyh0KSx0LnArdi5iYXJkZWx0YS8yKX07ZnVuY3Rpb24gTSh0LGUpe3JldHVybiBuLmluYm94KHQtaSxlLWkseCtNYXRoLm1pbigxLE1hdGguYWJzKGUtdCkvcCktMSl9ZnVuY3Rpb24gQSh0KXtyZXR1cm4gTShrKHQpLFQodCkpfWZ1bmN0aW9uIFModCl7dmFyIGU9cyxyPXQuYixhPXRbdV07aWYoeSl7dmFyIGk9TWF0aC5hYnModC5yYXdTKXx8MDtlPjA/YSs9aTplPDAmJihhLT1pKX1yZXR1cm4gbi5pbmJveChyLWUsYS1lLHgrKGEtZSkvKGEtciktMSl9ImgiPT09Zy5vcmllbnRhdGlvbj8oaT1yLHM9ZSxjPSJ5Iix1PSJ4IixoPVMsZj1BKTooaT1lLHM9cixjPSJ4Iix1PSJ5IixmPVMsaD1BKTt2YXIgRT10W2MrImEiXSxMPXRbdSsiYSJdO3A9TWF0aC5hYnMoRS5yMmMoRS5yYW5nZVsxXSktRS5yMmMoRS5yYW5nZVswXSkpO3ZhciBDPW4uZ2V0RGlzdGFuY2VGdW5jdGlvbihhLGgsZixmdW5jdGlvbih0KXtyZXR1cm4oaCh0KStmKHQpKS8yfSk7aWYobi5nZXRDbG9zZXN0KGQsQyx0KSwhMSE9PXQuaW5kZXgpe218fChrPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1pbihfKHQpLHQucC12LmJhcmdyb3Vwd2lkdGgvMil9LFQ9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWF4KHcodCksdC5wK3YuYmFyZ3JvdXB3aWR0aC8yKX0pO3ZhciBQPWRbdC5pbmRleF0sTz1nLmJhc2U/UC5iK1AuczpQLnM7dFt1KyIwIl09dFt1KyIxIl09TC5jMnAoUFt1XSwhMCksdFt1KyJMYWJlbFZhbCJdPU87dmFyIHo9di5leHRlbnRzW3YuZXh0ZW50cy5yb3VuZChQLnApXTtyZXR1cm4gdFtjKyIwIl09RS5jMnAobT9rKFApOnpbMF0sITApLHRbYysiMSJdPUUuYzJwKG0/VChQKTp6WzFdLCEwKSx0W2MrIkxhYmVsVmFsIl09UC5wLHQubGFiZWxMYWJlbD1sKEUsdFtjKyJMYWJlbFZhbCJdKSx0LnZhbHVlTGFiZWw9bChMLHRbdSsiTGFiZWxWYWwiXSksdC5zcGlrZURpc3RhbmNlPShTKFApK2Z1bmN0aW9uKHQpe3JldHVybiBNKF8odCksdyh0KSl9KFApKS8yK2IteCx0W2MrIlNwaWtlIl09RS5jMnAoUC5wLCEwKSxvKFAsZyx0KSx0LmhvdmVydGVtcGxhdGU9Zy5ob3ZlcnRlbXBsYXRlLHR9fWZ1bmN0aW9uIHUodCxlKXt2YXIgcj1lLm1jY3x8dC5tYXJrZXIuY29sb3Isbj1lLm1sY2N8fHQubWFya2VyLmxpbmUuY29sb3IsYT1zKHQsZSk7cmV0dXJuIGkub3BhY2l0eShyKT9yOmkub3BhY2l0eShuKSYmYT9uOnZvaWQgMH1lLmV4cG9ydHM9e2hvdmVyUG9pbnRzOmZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPWModCxlLHIsbik7aWYoaSl7dmFyIG89aS5jZCxzPW9bMF0udHJhY2UsbD1vW2kuaW5kZXhdO3JldHVybiBpLmNvbG9yPXUocyxsKSxhLmdldENvbXBvbmVudE1ldGhvZCgiZXJyb3JiYXJzIiwiaG92ZXJJbmZvIikobCxzLGkpLFtpXX19LGhvdmVyT25CYXJzOmMsZ2V0VHJhY2VDb2xvcjp1fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo1OTIsIi4uLy4uL2NvbXBvbmVudHMvZngiOjYzMCwiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo3NjUsIi4uLy4uL3JlZ2lzdHJ5Ijo4NDYsIi4vaGVscGVycyI6ODYyfV0sODY0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxsYXlvdXRBdHRyaWJ1dGVzOnQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIikuc3VwcGx5RGVmYXVsdHMsY3Jvc3NUcmFjZURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKS5jcm9zc1RyYWNlRGVmYXVsdHMsc3VwcGx5TGF5b3V0RGVmYXVsdHM6dCgiLi9sYXlvdXRfZGVmYXVsdHMiKSxjYWxjOnQoIi4vY2FsYyIpLGNyb3NzVHJhY2VDYWxjOnQoIi4vY3Jvc3NfdHJhY2VfY2FsYyIpLmNyb3NzVHJhY2VDYWxjLGNvbG9yYmFyOnQoIi4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIiksYXJyYXlzVG9DYWxjZGF0YTp0KCIuL2FycmF5c190b19jYWxjZGF0YSIpLHBsb3Q6dCgiLi9wbG90IikucGxvdCxzdHlsZTp0KCIuL3N0eWxlIikuc3R5bGUsc3R5bGVPblNlbGVjdDp0KCIuL3N0eWxlIikuc3R5bGVPblNlbGVjdCxob3ZlclBvaW50czp0KCIuL2hvdmVyIikuaG92ZXJQb2ludHMsZXZlbnREYXRhOnQoIi4vZXZlbnRfZGF0YSIpLHNlbGVjdFBvaW50czp0KCIuL3NlbGVjdCIpLG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJiYXIiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbiIpLGNhdGVnb3JpZXM6WyJiYXItbGlrZSIsImNhcnRlc2lhbiIsInN2ZyIsImJhciIsIm9yaWVudGVkIiwiZXJyb3JCYXJzT0siLCJzaG93TGVnZW5kIiwiem9vbVNjYWxlIl0sYW5pbWF0YWJsZTohMCxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjc3NiwiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiOjExMzgsIi4vYXJyYXlzX3RvX2NhbGNkYXRhIjo4NTUsIi4vYXR0cmlidXRlcyI6ODU2LCIuL2NhbGMiOjg1NywiLi9jcm9zc190cmFjZV9jYWxjIjo4NTksIi4vZGVmYXVsdHMiOjg2MCwiLi9ldmVudF9kYXRhIjo4NjEsIi4vaG92ZXIiOjg2MywiLi9sYXlvdXRfYXR0cmlidXRlcyI6ODY1LCIuL2xheW91dF9kZWZhdWx0cyI6ODY2LCIuL3Bsb3QiOjg2NywiLi9zZWxlY3QiOjg2OCwiLi9zdHlsZSI6ODcwfV0sODY1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YmFybW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsic3RhY2siLCJncm91cCIsIm92ZXJsYXkiLCJyZWxhdGl2ZSJdLGRmbHQ6Imdyb3VwIixlZGl0VHlwZToiY2FsYyJ9LGJhcm5vcm06e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbIiIsImZyYWN0aW9uIiwicGVyY2VudCJdLGRmbHQ6IiIsZWRpdFR5cGU6ImNhbGMifSxiYXJnYXA6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZWRpdFR5cGU6ImNhbGMifSxiYXJncm91cGdhcDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0OjAsZWRpdFR5cGU6ImNhbGMifX19LHt9XSw4NjY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcmVnaXN0cnkiKSxhPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksaT10KCIuLi8uLi9saWIiKSxvPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIHMocixuKXtyZXR1cm4gaS5jb2VyY2UodCxlLG8scixuKX1mb3IodmFyIGw9ITEsYz0hMSx1PSExLGg9e30sZj1zKCJiYXJtb2RlIikscD0wO3A8ci5sZW5ndGg7cCsrKXt2YXIgZD1yW3BdO2lmKG4udHJhY2VJcyhkLCJiYXIiKSYmZC52aXNpYmxlKXtpZihsPSEwLCJncm91cCI9PT1mKXt2YXIgZz1kLnhheGlzK2QueWF4aXM7aFtnXSYmKHU9ITApLGhbZ109ITB9aWYoZC52aXNpYmxlJiYiaGlzdG9ncmFtIj09PWQudHlwZSkiY2F0ZWdvcnkiIT09YS5nZXRGcm9tSWQoe19mdWxsTGF5b3V0OmV9LGRbInYiPT09ZC5vcmllbnRhdGlvbj8ieGF4aXMiOiJ5YXhpcyJdKS50eXBlJiYoYz0hMCl9fWw/KCJvdmVybGF5IiE9PWYmJnMoImJhcm5vcm0iKSxzKCJiYXJnYXAiLGMmJiF1PzA6LjIpLHMoImJhcmdyb3VwZ2FwIikpOmRlbGV0ZSBlLmJhcm1vZGV9fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NzY1LCIuLi8uLi9yZWdpc3RyeSI6ODQ2LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo4NjV9XSw4Njc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxhPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuLi8uLi9saWIiKSxvPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLHM9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGw9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksYz10KCIuLi8uLi9yZWdpc3RyeSIpLHU9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKS50aWNrVGV4dCxoPXQoIi4vdW5pZm9ybV90ZXh0IiksZj1oLnJlY29yZE1pblRleHRTaXplLHA9aC5jbGVhck1pblRleHRTaXplLGQ9dCgiLi9zdHlsZSIpLGc9dCgiLi9oZWxwZXJzIiksdj10KCIuL2NvbnN0YW50cyIpLG09dCgiLi9hdHRyaWJ1dGVzIikseT1tLnRleHQseD1tLnRleHRwb3NpdGlvbixiPXQoIi4uLy4uL2NvbXBvbmVudHMvZngvaGVscGVycyIpLmFwcGVuZEFycmF5UG9pbnRWYWx1ZSxfPXYuVEVYVFBBRDtmdW5jdGlvbiB3KHQpe3JldHVybiB0LmlkfWZ1bmN0aW9uIGsodCl7aWYodC5pZHMpcmV0dXJuIHd9ZnVuY3Rpb24gVCh0LGUpe3JldHVybiB0PGU/MTotMX1mdW5jdGlvbiBNKHQsZSxyLG4pe3ZhciBhO3JldHVybiFlLnVuaWZvcm10ZXh0Lm1vZGUmJkEocik/KG4mJihhPW4oKSksdC50cmFuc2l0aW9uKCkuZHVyYXRpb24oci5kdXJhdGlvbikuZWFzZShyLmVhc2luZykuZWFjaCgiZW5kIixmdW5jdGlvbigpe2EmJmEoKX0pLmVhY2goImludGVycnVwdCIsZnVuY3Rpb24oKXthJiZhKCl9KSk6dH1mdW5jdGlvbiBBKHQpe3JldHVybiB0JiZ0LmR1cmF0aW9uPjB9ZnVuY3Rpb24gUyh0KXtyZXR1cm4iYXV0byI9PT10PzA6dH1mdW5jdGlvbiBFKHQsZSl7dmFyIHI9TWF0aC5QSS8xODAqZSxuPU1hdGguYWJzKE1hdGguc2luKHIpKSxhPU1hdGguYWJzKE1hdGguY29zKHIpKTtyZXR1cm57eDp0LndpZHRoKmErdC5oZWlnaHQqbix5OnQud2lkdGgqbit0LmhlaWdodCphfX1mdW5jdGlvbiBMKHQsZSxyLG4sYSxpKXt2YXIgbz0hIWkuaXNIb3Jpem9udGFsLHM9ISFpLmNvbnN0cmFpbmVkLGw9aS5hbmdsZXx8MCxjPWkuYW5jaG9yfHwiZW5kIix1PSJlbmQiPT09YyxoPSJzdGFydCI9PT1jLGY9KChpLmxlZnRUb1JpZ2h0fHwwKSsxKS8yLHA9MS1mLGQ9YS53aWR0aCxnPWEuaGVpZ2h0LHY9TWF0aC5hYnMoZS10KSxtPU1hdGguYWJzKG4tcikseT12PjIqXyYmbT4yKl8/XzowO3YtPTIqeSxtLT0yKnk7dmFyIHg9UyhsKTsiYXV0byIhPT1sfHxkPD12JiZnPD1tfHwhKGQ+dnx8Zz5tKXx8KGQ+bXx8Zz52KSYmZDxnPT12PG18fCh4Kz05MCk7dmFyIGI9RShhLHgpLHc9MTtzJiYodz1NYXRoLm1pbigxLHYvYi54LG0vYi55KSk7dmFyIGs9YS5sZWZ0KnArYS5yaWdodCpmLE09KGEudG9wK2EuYm90dG9tKS8yLEE9KHQrXykqcCsoZS1fKSpmLEw9KHIrbikvMixDPTAsUD0wO2lmKGh8fHUpe3ZhciBPPShvP2IueDpiLnkpLzIsej1vP1QodCxlKTpUKHIsbik7bz9oPyhBPXQreip5LEM9LXoqTyk6KEE9ZS16KnksQz16Kk8pOmg/KEw9cit6KnksUD0teipPKTooTD1uLXoqeSxQPXoqTyl9cmV0dXJue3RleHRYOmssdGV4dFk6TSx0YXJnZXRYOkEsdGFyZ2V0WTpMLGFuY2hvclg6QyxhbmNob3JZOlAsc2NhbGU6dyxyb3RhdGU6eH19ZS5leHBvcnRzPXtwbG90OmZ1bmN0aW9uKHQsZSxyLGgsdixtKXt2YXIgdz1lLnhheGlzLEM9ZS55YXhpcyxQPXQuX2Z1bGxMYXlvdXQ7dnx8KHY9e21vZGU6UC5iYXJtb2RlLG5vcm06UC5iYXJtb2RlLGdhcDpQLmJhcmdhcCxncm91cGdhcDpQLmJhcmdyb3VwZ2FwfSxwKCJiYXIiLFApKTt2YXIgTz1pLm1ha2VUcmFjZUdyb3VwcyhoLHIsInRyYWNlIGJhcnMiKS5lYWNoKGZ1bmN0aW9uKHIpe3ZhciBjPW4uc2VsZWN0KHRoaXMpLGg9clswXS50cmFjZSxwPSJ3YXRlcmZhbGwiPT09aC50eXBlLE89ImZ1bm5lbCI9PT1oLnR5cGUsej0iYmFyIj09PWgudHlwZXx8TyxJPTA7cCYmaC5jb25uZWN0b3IudmlzaWJsZSYmImJldHdlZW4iPT09aC5jb25uZWN0b3IubW9kZSYmKEk9aC5jb25uZWN0b3IubGluZS53aWR0aC8yKTt2YXIgRD0iaCI9PT1oLm9yaWVudGF0aW9uLFI9aS5lbnN1cmVTaW5nbGUoYywiZyIsInBvaW50cyIpLEY9ayhoKSxCPVIuc2VsZWN0QWxsKCJnLnBvaW50IikuZGF0YShpLmlkZW50aXR5LEYpO0IuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJwb2ludCIsITApLEIuZXhpdCgpLnJlbW92ZSgpLEIuZWFjaChmdW5jdGlvbihjLHApe3ZhciBrPW4uc2VsZWN0KHRoaXMpLE89ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9W10saT1bXSxvPW4/ZTpyLHM9bj9yOmU7cmV0dXJuIGFbMF09by5jMnAodC5zMCwhMCksaVswXT1zLmMycCh0LnAwLCEwKSxhWzFdPW8uYzJwKHQuczEsITApLGlbMV09cy5jMnAodC5wMSwhMCksbj9bYSxpXTpbaSxhXX0oYyx3LEMsRCksUj1PWzBdWzBdLEY9T1swXVsxXSxCPU9bMV1bMF0sTj1PWzFdWzFdLGo9IShSIT09RiYmQiE9PU4mJmEoUikmJmEoRikmJmEoQikmJmEoTikpO2omJnomJmcuZ2V0TGluZVdpZHRoKGgsYykmJihEP0YtUj09MDpOLUI9PTApJiYoaj0hMSksYy5pc0JsYW5rPWosaiYmRCYmKEY9UiksaiYmIUQmJihOPUIpO3ZhciBWLFUscT1EJiZSIT09RixIPSFEJiZCIT09TjtpZihJJiYhaiYmKEQ/KFItPVQoUixGKSpJLEYrPVQoUixGKSpJKTooQi09VChCLE4pKkksTis9VChCLE4pKkkpKSwid2F0ZXJmYWxsIj09PWgudHlwZSl7aWYoIWope3ZhciBHPWhbYy5kaXJdLm1hcmtlcjtWPUcubGluZS53aWR0aCxVPUcuY29sb3J9fWVsc2UgVj1nLmdldExpbmVXaWR0aChoLGMpLFU9Yy5tY3x8aC5tYXJrZXIuY29sb3I7dmFyIFk9bi5yb3VuZChWLzIlMSwyKTtmdW5jdGlvbiBXKHQpe3JldHVybiAwPT09di5nYXAmJjA9PT12Lmdyb3VwZ2FwP24ucm91bmQoTWF0aC5yb3VuZCh0KS1ZLDIpOnR9aWYoIXQuX2NvbnRleHQuc3RhdGljUGxvdCl7dmFyIFg9cy5vcGFjaXR5KFUpPDF8fFY+LjAxP1c6ZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5hYnModC1lKT49Mj9XKHQpOnQ+ZT9NYXRoLmNlaWwodCk6TWF0aC5mbG9vcih0KX07cSYmKFI9WChSLEYpLEY9WChGLFIpKSxIJiYoQj1YKEIsTiksTj1YKE4sQikpfXZhciBaPU0oaS5lbnN1cmVTaW5nbGUoaywicGF0aCIpLFAsdixtKTtpZihaLnN0eWxlKCJ2ZWN0b3ItZWZmZWN0Iiwibm9uLXNjYWxpbmctc3Ryb2tlIikuYXR0cigiZCIsIk0iK1IrIiwiK0IrIlYiK04rIkgiK0YrIlYiK0IrIloiKS5jYWxsKGwuc2V0Q2xpcFVybCxlLmxheWVyQ2xpcElkLHQpLCFQLnVuaWZvcm10ZXh0Lm1vZGUmJkEodikpe3ZhciBKPWwubWFrZVBvaW50U3R5bGVGbnMoaCk7bC5zaW5nbGVQb2ludFN0eWxlKGMsWixoLEosdCl9IWZ1bmN0aW9uKHQsZSxyLG4sYSxzLGMsaCxwLHYsbSl7dmFyIHcsaz1lLnhheGlzLEE9ZS55YXhpcyxDPXQuX2Z1bGxMYXlvdXQ7ZnVuY3Rpb24gUChlLHIsbil7dmFyIGE9aS5lbnN1cmVTaW5nbGUoZSwidGV4dCIpLnRleHQocikuYXR0cih7Y2xhc3M6ImJhcnRleHQgYmFydGV4dC0iK3csInRleHQtYW5jaG9yIjoibWlkZGxlIiwiZGF0YS1ub3RleCI6MX0pLmNhbGwobC5mb250LG4pLmNhbGwoby5jb252ZXJ0VG9Uc3BhbnMsdCk7cmV0dXJuIGF9dmFyIE89blswXS50cmFjZSx6PSJoIj09PU8ub3JpZW50YXRpb24sST1mdW5jdGlvbih0LGUscixuLGEpe3ZhciBvLHM9ZVswXS50cmFjZTtyZXR1cm4gbz1zLnRleHR0ZW1wbGF0ZT9mdW5jdGlvbih0LGUscixuLGEpe3ZhciBvPWVbMF0udHJhY2Uscz1pLmNhc3RPcHRpb24obyxyLCJ0ZXh0dGVtcGxhdGUiKTtpZighcylyZXR1cm4iIjt2YXIgbCxjLGgsZixwPSJ3YXRlcmZhbGwiPT09by50eXBlLGQ9ImZ1bm5lbCI9PT1vLnR5cGU7ZnVuY3Rpb24gZyh0KXtyZXR1cm4gdShmLCt0LCEwKS50ZXh0fSJoIj09PW8ub3JpZW50YXRpb24/KGw9InkiLGM9YSxoPSJ4IixmPW4pOihsPSJ4IixjPW4saD0ieSIsZj1hKTt2YXIgdixtPWVbcl0seT17fTt5LmxhYmVsPW0ucCx5LmxhYmVsTGFiZWw9eVtsKyJMYWJlbCJdPSh2PW0ucCx1KGMsdiwhMCkudGV4dCk7dmFyIHg9aS5jYXN0T3B0aW9uKG8sbS5pLCJ0ZXh0Iik7KDA9PT14fHx4KSYmKHkudGV4dD14KSx5LnZhbHVlPW0ucyx5LnZhbHVlTGFiZWw9eVtoKyJMYWJlbCJdPWcobS5zKTt2YXIgXz17fTtiKF8sbyxtLmkpLHAmJih5LmRlbHRhPSttLnJhd1N8fG0ucyx5LmRlbHRhTGFiZWw9Zyh5LmRlbHRhKSx5LmZpbmFsPW0udix5LmZpbmFsTGFiZWw9Zyh5LmZpbmFsKSx5LmluaXRpYWw9eS5maW5hbC15LmRlbHRhLHkuaW5pdGlhbExhYmVsPWcoeS5pbml0aWFsKSksZCYmKHkudmFsdWU9bS5zLHkudmFsdWVMYWJlbD1nKHkudmFsdWUpLHkucGVyY2VudEluaXRpYWw9bS5iZWdSLHkucGVyY2VudEluaXRpYWxMYWJlbD1pLmZvcm1hdFBlcmNlbnQobS5iZWdSKSx5LnBlcmNlbnRQcmV2aW91cz1tLmRpZlIseS5wZXJjZW50UHJldmlvdXNMYWJlbD1pLmZvcm1hdFBlcmNlbnQobS5kaWZSKSx5LnBlcmNlbnRUb3RhbD1tLnN1bVIseS5wZXJjZW5Ub3RhbExhYmVsPWkuZm9ybWF0UGVyY2VudChtLnN1bVIpKTt2YXIgdz1pLmNhc3RPcHRpb24obyxtLmksImN1c3RvbWRhdGEiKTtyZXR1cm4gdyYmKHkuY3VzdG9tZGF0YT13KSxpLnRleHR0ZW1wbGF0ZVN0cmluZyhzLHksdC5fZDNsb2NhbGUsXyx5LG8uX21ldGF8fHt9KX0odCxlLHIsbixhKTpzLnRleHRpbmZvP2Z1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPXRbMF0udHJhY2Usbz0iaCI9PT1hLm9yaWVudGF0aW9uLHM9IndhdGVyZmFsbCI9PT1hLnR5cGUsbD0iZnVubmVsIj09PWEudHlwZTtmdW5jdGlvbiBjKHQpe3ZhciBlPW8/cjpuO3JldHVybiB1KGUsK3QsITApLnRleHR9dmFyIGgsZixwPWEudGV4dGluZm8sZD10W2VdLGc9cC5zcGxpdCgiKyIpLHY9W10sbT1mdW5jdGlvbih0KXtyZXR1cm4tMSE9PWcuaW5kZXhPZih0KX07aWYobSgibGFiZWwiKSYmdi5wdXNoKChmPXRbZV0ucCx1KG8/bjpyLGYsITApLnRleHQpKSxtKCJ0ZXh0IikmJigwPT09KGg9aS5jYXN0T3B0aW9uKGEsZC5pLCJ0ZXh0IikpfHxoKSYmdi5wdXNoKGgpLHMpe3ZhciB5PStkLnJhd1N8fGQucyx4PWQudixiPXgteTttKCJpbml0aWFsIikmJnYucHVzaChjKGIpKSxtKCJkZWx0YSIpJiZ2LnB1c2goYyh5KSksbSgiZmluYWwiKSYmdi5wdXNoKGMoeCkpfWlmKGwpe20oInZhbHVlIikmJnYucHVzaChjKGQucykpO3ZhciBfPTA7bSgicGVyY2VudCBpbml0aWFsIikmJl8rKyxtKCJwZXJjZW50IHByZXZpb3VzIikmJl8rKyxtKCJwZXJjZW50IHRvdGFsIikmJl8rKzt2YXIgdz1fPjE7bSgicGVyY2VudCBpbml0aWFsIikmJihoPWkuZm9ybWF0UGVyY2VudChkLmJlZ1IpLHcmJihoKz0iIG9mIGluaXRpYWwiKSx2LnB1c2goaCkpLG0oInBlcmNlbnQgcHJldmlvdXMiKSYmKGg9aS5mb3JtYXRQZXJjZW50KGQuZGlmUiksdyYmKGgrPSIgb2YgcHJldmlvdXMiKSx2LnB1c2goaCkpLG0oInBlcmNlbnQgdG90YWwiKSYmKGg9aS5mb3JtYXRQZXJjZW50KGQuc3VtUiksdyYmKGgrPSIgb2YgdG90YWwiKSx2LnB1c2goaCkpfXJldHVybiB2LmpvaW4oIjxicj4iKX0oZSxyLG4sYSk6Zy5nZXRWYWx1ZShzLnRleHQsciksZy5jb2VyY2VTdHJpbmcoeSxvKX0oQyxuLGEsayxBKTt3PWZ1bmN0aW9uKHQsZSl7dmFyIHI9Zy5nZXRWYWx1ZSh0LnRleHRwb3NpdGlvbixlKTtyZXR1cm4gZy5jb2VyY2VFbnVtZXJhdGVkKHgscil9KE8sYSk7dmFyIEQ9InN0YWNrIj09PXYubW9kZXx8InJlbGF0aXZlIj09PXYubW9kZSxSPW5bYV0sRj0hRHx8Ui5fb3V0bW9zdDtpZihJJiYibm9uZSIhPT13JiYoIVIuaXNCbGFuayYmcyE9PWMmJmghPT1wfHwiYXV0byIhPT13JiYiaW5zaWRlIiE9PXcpKXt2YXIgQj1DLmZvbnQsTj1kLmdldEJhckNvbG9yKG5bYV0sTyksaj1kLmdldEluc2lkZVRleHRGb250KE8sYSxCLE4pLFY9ZC5nZXRPdXRzaWRlVGV4dEZvbnQoTyxhLEIpLFU9ci5kYXR1bSgpO3o/ImxvZyI9PT1rLnR5cGUmJlUuczA8PTAmJihzPWsucmFuZ2VbMF08ay5yYW5nZVsxXT8wOmsuX2xlbmd0aCk6ImxvZyI9PT1BLnR5cGUmJlUuczA8PTAmJihoPUEucmFuZ2VbMF08QS5yYW5nZVsxXT9BLl9sZW5ndGg6MCk7dmFyIHEsSCxHLFksVyxYPU1hdGguYWJzKGMtcyktMipfLFo9TWF0aC5hYnMocC1oKS0yKl87aWYoIm91dHNpZGUiPT09dyYmKEZ8fFIuaGFzQnx8KHc9Imluc2lkZSIpKSwiYXV0byI9PT13KWlmKEYpe3c9Imluc2lkZSIsVz1pLmVuc3VyZVVuaWZvcm1Gb250U2l6ZSh0LGopLHE9UChyLEksVyksSD1sLmJCb3gocS5ub2RlKCkpLEc9SC53aWR0aCxZPUguaGVpZ2h0O3ZhciBKPUc+MCYmWT4wLEs9Rzw9WCYmWTw9WixRPUc8PVomJlk8PVgsJD16P1g+PUcqKFovWSk6Wj49WSooWC9HKTtKJiYoS3x8UXx8JCk/dz0iaW5zaWRlIjoodz0ib3V0c2lkZSIscS5yZW1vdmUoKSxxPW51bGwpfWVsc2Ugdz0iaW5zaWRlIjtpZighcSl7Vz1pLmVuc3VyZVVuaWZvcm1Gb250U2l6ZSh0LCJvdXRzaWRlIj09PXc/VjpqKTt2YXIgdHQ9KHE9UChyLEksVykpLmF0dHIoInRyYW5zZm9ybSIpO2lmKHEuYXR0cigidHJhbnNmb3JtIiwiIiksSD1sLmJCb3gocS5ub2RlKCkpLEc9SC53aWR0aCxZPUguaGVpZ2h0LHEuYXR0cigidHJhbnNmb3JtIix0dCksRzw9MHx8WTw9MClyZXR1cm4gdm9pZCBxLnJlbW92ZSgpfXZhciBldCxydCxudD1PLnRleHRhbmdsZTsib3V0c2lkZSI9PT13PyhydD0iYm90aCI9PT1PLmNvbnN0cmFpbnRleHR8fCJvdXRzaWRlIj09PU8uY29uc3RyYWludGV4dCxldD1mdW5jdGlvbih0LGUscixuLGEsaSl7dmFyIG8scz0hIWkuaXNIb3Jpem9udGFsLGw9ISFpLmNvbnN0cmFpbmVkLGM9aS5hbmdsZXx8MCx1PWEud2lkdGgsaD1hLmhlaWdodCxmPU1hdGguYWJzKGUtdCkscD1NYXRoLmFicyhuLXIpO289cz9wPjIqXz9fOjA6Zj4yKl8/XzowO3ZhciBkPTE7bCYmKGQ9cz9NYXRoLm1pbigxLHAvaCk6TWF0aC5taW4oMSxmL3UpKTt2YXIgZz1TKGMpLHY9RShhLGcpLG09KHM/di54OnYueSkvMix5PShhLmxlZnQrYS5yaWdodCkvMix4PShhLnRvcCthLmJvdHRvbSkvMixiPSh0K2UpLzIsdz0ocituKS8yLGs9MCxNPTAsQT1zP1QoZSx0KTpUKHIsbik7cmV0dXJuIHM/KGI9ZS1BKm8saz1BKm0pOih3PW4rQSpvLE09LUEqbSkse3RleHRYOnksdGV4dFk6eCx0YXJnZXRYOmIsdGFyZ2V0WTp3LGFuY2hvclg6ayxhbmNob3JZOk0sc2NhbGU6ZCxyb3RhdGU6Z319KHMsYyxoLHAsSCx7aXNIb3Jpem9udGFsOnosY29uc3RyYWluZWQ6cnQsYW5nbGU6bnR9KSk6KHJ0PSJib3RoIj09PU8uY29uc3RyYWludGV4dHx8Imluc2lkZSI9PT1PLmNvbnN0cmFpbnRleHQsZXQ9TChzLGMsaCxwLEgse2lzSG9yaXpvbnRhbDp6LGNvbnN0cmFpbmVkOnJ0LGFuZ2xlOm50LGFuY2hvcjpPLmluc2lkZXRleHRhbmNob3J9KSksZXQuZm9udFNpemU9Vy5zaXplLGYoTy50eXBlLGV0LEMpLFIudHJhbnNmb3JtPWV0LE0ocSxDLHYsbSkuYXR0cigidHJhbnNmb3JtIixpLmdldFRleHRUcmFuc2Zvcm0oZXQpKX1lbHNlIHIuc2VsZWN0KCJ0ZXh0IikucmVtb3ZlKCl9KHQsZSxrLHIscCxSLEYsQixOLHYsbSksZS5sYXllckNsaXBJZCYmbC5oaWRlT3V0c2lkZVJhbmdlUG9pbnQoYyxrLnNlbGVjdCgidGV4dCIpLHcsQyxoLnhjYWxlbmRhcixoLnljYWxlbmRhcil9KTt2YXIgTj0hMT09PWguY2xpcG9uYXhpcztsLnNldENsaXBVcmwoYyxOP251bGw6ZS5sYXllckNsaXBJZCx0KX0pO2MuZ2V0Q29tcG9uZW50TWV0aG9kKCJlcnJvcmJhcnMiLCJwbG90IikodCxPLGUsdil9LHRvTW92ZUluc2lkZUJhcjpMfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo1OTIsIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjEzLCIuLi8uLi9jb21wb25lbnRzL2Z4L2hlbHBlcnMiOjYyNywiLi4vLi4vbGliIjo3MTcsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6NzQxLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NzY1LCIuLi8uLi9yZWdpc3RyeSI6ODQ2LCIuL2F0dHJpYnV0ZXMiOjg1NiwiLi9jb25zdGFudHMiOjg1OCwiLi9oZWxwZXJzIjo4NjIsIi4vc3R5bGUiOjg3MCwiLi91bmlmb3JtX3RleHQiOjg3MixkMzoxNjUsImZhc3QtaXNudW1lcmljIjoyMjh9XSw4Njg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuLGEpe3ZhciBpPWUuYzJwKG4/dC5zMDp0LnAwLCEwKSxvPWUuYzJwKG4/dC5zMTp0LnAxLCEwKSxzPXIuYzJwKG4/dC5wMDp0LnMwLCEwKSxsPXIuYzJwKG4/dC5wMTp0LnMxLCEwKTtyZXR1cm4gYT9bKGkrbykvMiwocytsKS8yXTpuP1tvLChzK2wpLzJdOlsoaStvKS8yLGxdfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLGE9dC5jZCxpPXQueGF4aXMsbz10LnlheGlzLHM9YVswXS50cmFjZSxsPSJmdW5uZWwiPT09cy50eXBlLGM9ImgiPT09cy5vcmllbnRhdGlvbix1PVtdO2lmKCExPT09ZSlmb3Iocj0wO3I8YS5sZW5ndGg7cisrKWFbcl0uc2VsZWN0ZWQ9MDtlbHNlIGZvcihyPTA7cjxhLmxlbmd0aDtyKyspe3ZhciBoPWFbcl0sZj0iY3QiaW4gaD9oLmN0Om4oaCxpLG8sYyxsKTtlLmNvbnRhaW5zKGYsITEscix0KT8odS5wdXNoKHtwb2ludE51bWJlcjpyLHg6aS5jMmQoaC54KSx5Om8uYzJkKGgueSl9KSxoLnNlbGVjdGVkPTEpOmguc2VsZWN0ZWQ9MH1yZXR1cm4gdX19LHt9XSw4Njk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWk7dmFyIG49dCgiLi4vLi4vbGliIikuZGlzdGluY3RWYWxzLGE9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTTtmdW5jdGlvbiBpKHQsZSl7dGhpcy50cmFjZXM9dCx0aGlzLnNlcE5lZ1ZhbD1lLnNlcE5lZ1ZhbCx0aGlzLm92ZXJsYXBOb01lcmdlPWUub3ZlcmxhcE5vTWVyZ2U7Zm9yKHZhciByPTEvMCxpPVtdLG89MDtvPHQubGVuZ3RoO28rKyl7Zm9yKHZhciBzPXRbb10sbD0wO2w8cy5sZW5ndGg7bCsrKXt2YXIgYz1zW2xdO2MucCE9PWEmJmkucHVzaChjLnApfXNbMF0mJnNbMF0ud2lkdGgxJiYocj1NYXRoLm1pbihzWzBdLndpZHRoMSxyKSl9dGhpcy5wb3NpdGlvbnM9aTt2YXIgdT1uKGkpO3RoaXMuZGlzdGluY3RQb3NpdGlvbnM9dS52YWxzLDE9PT11LnZhbHMubGVuZ3RoJiZyIT09MS8wP3RoaXMubWluRGlmZj1yOnRoaXMubWluRGlmZj1NYXRoLm1pbih1Lm1pbkRpZmYsciksdGhpcy5iaW5XaWR0aD10aGlzLm1pbkRpZmYsdGhpcy5iaW5zPXt9fWkucHJvdG90eXBlLnB1dD1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuZ2V0TGFiZWwodCxlKSxuPXRoaXMuYmluc1tyXXx8MDtyZXR1cm4gdGhpcy5iaW5zW3JdPW4rZSxufSxpLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmdldExhYmVsKHQsZSk7cmV0dXJuIHRoaXMuYmluc1tyXXx8MH0saS5wcm90b3R5cGUuZ2V0TGFiZWw9ZnVuY3Rpb24odCxlKXtyZXR1cm4oZTwwJiZ0aGlzLnNlcE5lZ1ZhbD8idiI6Il4iKSsodGhpcy5vdmVybGFwTm9NZXJnZT90Ok1hdGgucm91bmQodC90aGlzLmJpbldpZHRoKSl9fSx7Ii4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjY5MywiLi4vLi4vbGliIjo3MTd9XSw4NzA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLG89dCgiLi4vLi4vbGliIikscz10KCIuLi8uLi9yZWdpc3RyeSIpLGw9dCgiLi91bmlmb3JtX3RleHQiKS5yZXNpemVUZXh0LGM9dCgiLi9hdHRyaWJ1dGVzIiksdT1jLnRleHRmb250LGg9Yy5pbnNpZGV0ZXh0Zm9udCxmPWMub3V0c2lkZXRleHRmb250LHA9dCgiLi9oZWxwZXJzIik7ZnVuY3Rpb24gZCh0LGUscil7aS5wb2ludFN0eWxlKHQuc2VsZWN0QWxsKCJwYXRoIiksZSxyKSxnKHQsZSxyKX1mdW5jdGlvbiBnKHQsZSxyKXt0LnNlbGVjdEFsbCgidGV4dCIpLmVhY2goZnVuY3Rpb24odCl7dmFyIGE9bi5zZWxlY3QodGhpcykscz1vLmVuc3VyZVVuaWZvcm1Gb250U2l6ZShyLHYoYSx0LGUscikpO2kuZm9udChhLHMpfSl9ZnVuY3Rpb24gdih0LGUscixuKXt2YXIgYT1uLl9mdWxsTGF5b3V0LmZvbnQsaT1yLnRleHRmb250O2lmKHQuY2xhc3NlZCgiYmFydGV4dC1pbnNpZGUiKSl7dmFyIG89XyhlLHIpO2k9eShyLGUuaSxhLG8pfWVsc2UgdC5jbGFzc2VkKCJiYXJ0ZXh0LW91dHNpZGUiKSYmKGk9eChyLGUuaSxhKSk7cmV0dXJuIGl9ZnVuY3Rpb24gbSh0LGUscil7cmV0dXJuIGIodSx0LnRleHRmb250LGUscil9ZnVuY3Rpb24geSh0LGUscixuKXt2YXIgaT1tKHQsZSxyKTtyZXR1cm4odm9pZCAwPT09dC5faW5wdXQudGV4dGZvbnR8fHZvaWQgMD09PXQuX2lucHV0LnRleHRmb250LmNvbG9yfHxBcnJheS5pc0FycmF5KHQudGV4dGZvbnQuY29sb3IpJiZ2b2lkIDA9PT10LnRleHRmb250LmNvbG9yW2VdKSYmKGk9e2NvbG9yOmEuY29udHJhc3QobiksZmFtaWx5OmkuZmFtaWx5LHNpemU6aS5zaXplfSksYihoLHQuaW5zaWRldGV4dGZvbnQsZSxpKX1mdW5jdGlvbiB4KHQsZSxyKXt2YXIgbj1tKHQsZSxyKTtyZXR1cm4gYihmLHQub3V0c2lkZXRleHRmb250LGUsbil9ZnVuY3Rpb24gYih0LGUscixuKXtlPWV8fHt9O3ZhciBhPXAuZ2V0VmFsdWUoZS5mYW1pbHksciksaT1wLmdldFZhbHVlKGUuc2l6ZSxyKSxvPXAuZ2V0VmFsdWUoZS5jb2xvcixyKTtyZXR1cm57ZmFtaWx5OnAuY29lcmNlU3RyaW5nKHQuZmFtaWx5LGEsbi5mYW1pbHkpLHNpemU6cC5jb2VyY2VOdW1iZXIodC5zaXplLGksbi5zaXplKSxjb2xvcjpwLmNvZXJjZUNvbG9yKHQuY29sb3IsbyxuLmNvbG9yKX19ZnVuY3Rpb24gXyh0LGUpe3JldHVybiJ3YXRlcmZhbGwiPT09ZS50eXBlP2VbdC5kaXJdLm1hcmtlci5jb2xvcjp0Lm1jfHxlLm1hcmtlci5jb2xvcn1lLmV4cG9ydHM9e3N0eWxlOmZ1bmN0aW9uKHQpe3ZhciBlPW4uc2VsZWN0KHQpLnNlbGVjdEFsbCgiZy5iYXJsYXllciIpLnNlbGVjdEFsbCgiZy50cmFjZSIpO2wodCxlLCJiYXIiKTt2YXIgcj1lLnNpemUoKSxhPXQuX2Z1bGxMYXlvdXQ7ZS5zdHlsZSgib3BhY2l0eSIsZnVuY3Rpb24odCl7cmV0dXJuIHRbMF0udHJhY2Uub3BhY2l0eX0pLmVhY2goZnVuY3Rpb24odCl7KCJzdGFjayI9PT1hLmJhcm1vZGUmJnI+MXx8MD09PWEuYmFyZ2FwJiYwPT09YS5iYXJncm91cGdhcCYmIXRbMF0udHJhY2UubWFya2VyLmxpbmUud2lkdGgpJiZuLnNlbGVjdCh0aGlzKS5hdHRyKCJzaGFwZS1yZW5kZXJpbmciLCJjcmlzcEVkZ2VzIil9KSxlLnNlbGVjdEFsbCgiZy5wb2ludHMiKS5lYWNoKGZ1bmN0aW9uKGUpe2Qobi5zZWxlY3QodGhpcyksZVswXS50cmFjZSx0KX0pLHMuZ2V0Q29tcG9uZW50TWV0aG9kKCJlcnJvcmJhcnMiLCJzdHlsZSIpKGUpfSxzdHlsZVRleHRQb2ludHM6ZyxzdHlsZU9uU2VsZWN0OmZ1bmN0aW9uKHQsZSxyKXt2YXIgYT1lWzBdLnRyYWNlO2Euc2VsZWN0ZWRwb2ludHM/ZnVuY3Rpb24odCxlLHIpe2kuc2VsZWN0ZWRQb2ludFN0eWxlKHQuc2VsZWN0QWxsKCJwYXRoIiksZSksZnVuY3Rpb24odCxlLHIpe3QuZWFjaChmdW5jdGlvbih0KXt2YXIgYSxzPW4uc2VsZWN0KHRoaXMpO2lmKHQuc2VsZWN0ZWQpe2E9by5lbnN1cmVVbmlmb3JtRm9udFNpemUocix2KHMsdCxlLHIpKTt2YXIgbD1lLnNlbGVjdGVkLnRleHRmb250JiZlLnNlbGVjdGVkLnRleHRmb250LmNvbG9yO2wmJihhLmNvbG9yPWwpLGkuZm9udChzLGEpfWVsc2UgaS5zZWxlY3RlZFRleHRTdHlsZShzLGUpfSl9KHQuc2VsZWN0QWxsKCJ0ZXh0IiksZSxyKX0ocixhLHQpOihkKHIsYSx0KSxzLmdldENvbXBvbmVudE1ldGhvZCgiZXJyb3JiYXJzIiwic3R5bGUiKShyKSl9LGdldEluc2lkZVRleHRGb250OnksZ2V0T3V0c2lkZVRleHRGb250OngsZ2V0QmFyQ29sb3I6XyxyZXNpemVUZXh0Omx9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjU5MiwiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo2MTMsIi4uLy4uL2xpYiI6NzE3LCIuLi8uLi9yZWdpc3RyeSI6ODQ2LCIuL2F0dHJpYnV0ZXMiOjg1NiwiLi9oZWxwZXJzIjo4NjIsIi4vdW5pZm9ybV90ZXh0Ijo4NzIsZDM6MTY1fV0sODcxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9oZWxwZXJzIikuaGFzQ29sb3JzY2FsZSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixvLHMpe3IoIm1hcmtlci5jb2xvciIsbyksYSh0LCJtYXJrZXIiKSYmaSh0LGUscyxyLHtwcmVmaXg6Im1hcmtlci4iLGNMZXR0ZXI6ImMifSkscigibWFya2VyLmxpbmUuY29sb3IiLG4uZGVmYXVsdExpbmUpLGEodCwibWFya2VyLmxpbmUiKSYmaSh0LGUscyxyLHtwcmVmaXg6Im1hcmtlci5saW5lLiIsY0xldHRlcjoiYyJ9KSxyKCJtYXJrZXIubGluZS53aWR0aCIpLHIoIm1hcmtlci5vcGFjaXR5Iikscigic2VsZWN0ZWQubWFya2VyLmNvbG9yIikscigidW5zZWxlY3RlZC5tYXJrZXIuY29sb3IiKX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTkyLCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiOjYwMiwiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2hlbHBlcnMiOjYwM31dLDg3MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGE9dCgiLi4vLi4vbGliIik7ZnVuY3Rpb24gaSh0KXtyZXR1cm4iXyIrdCsiVGV4dF9taW5zaXplIn1lLmV4cG9ydHM9e3JlY29yZE1pblRleHRTaXplOmZ1bmN0aW9uKHQsZSxyKXtpZihyLnVuaWZvcm10ZXh0Lm1vZGUpe3ZhciBuPWkodCksYT1yLnVuaWZvcm10ZXh0Lm1pbnNpemUsbz1lLnNjYWxlKmUuZm9udFNpemU7ZS5oaWRlPW88YSxyW25dPXJbbl18fDEvMCxlLmhpZGV8fChyW25dPU1hdGgubWluKHJbbl0sTWF0aC5tYXgobyxhKSkpfX0sY2xlYXJNaW5UZXh0U2l6ZTpmdW5jdGlvbih0LGUpe2VbaSh0KV09dm9pZCAwfSxyZXNpemVUZXh0OmZ1bmN0aW9uKHQsZSxyKXt2YXIgaT10Ll9mdWxsTGF5b3V0LG89aVsiXyIrcisiVGV4dF9taW5zaXplIl07aWYobyl7dmFyIHMsbD0iaGlkZSI9PT1pLnVuaWZvcm10ZXh0Lm1vZGU7c3dpdGNoKHIpe2Nhc2UiZnVubmVsYXJlYSI6Y2FzZSJwaWUiOmNhc2Uic3VuYnVyc3QiOnM9Imcuc2xpY2UiO2JyZWFrO2Nhc2UidHJlZW1hcCI6cz0iZy5zbGljZSwgZy5wYXRoYmFyIjticmVhaztkZWZhdWx0OnM9ImcucG9pbnRzID4gZy5wb2ludCJ9ZS5zZWxlY3RBbGwocykuZWFjaChmdW5jdGlvbih0KXt2YXIgZT10LnRyYW5zZm9ybTtlJiYoZS5zY2FsZT1sJiZlLmhpZGU/MDpvL2UuZm9udFNpemUsbi5zZWxlY3QodGhpcykuc2VsZWN0KCJ0ZXh0IikuYXR0cigidHJhbnNmb3JtIixhLmdldFRleHRUcmFuc2Zvcm0oZSkpKX0pfX19fSx7Ii4uLy4uL2xpYiI6NzE3LGQzOjE2NX1dLDg3MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikuaG92ZXJ0ZW1wbGF0ZUF0dHJzLGE9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsaT10KCIuLi9zY2F0dGVycG9sYXIvYXR0cmlidXRlcyIpLG89dCgiLi4vYmFyL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9e3I6aS5yLHRoZXRhOmkudGhldGEscjA6aS5yMCxkcjppLmRyLHRoZXRhMDppLnRoZXRhMCxkdGhldGE6aS5kdGhldGEsdGhldGF1bml0OmkudGhldGF1bml0LGJhc2U6YSh7fSxvLmJhc2Use30pLG9mZnNldDphKHt9LG8ub2Zmc2V0LHt9KSx3aWR0aDphKHt9LG8ud2lkdGgse30pLHRleHQ6YSh7fSxvLnRleHQse30pLGhvdmVydGV4dDphKHt9LG8uaG92ZXJ0ZXh0LHt9KSxtYXJrZXI6by5tYXJrZXIsaG92ZXJpbmZvOmkuaG92ZXJpbmZvLGhvdmVydGVtcGxhdGU6bigpLHNlbGVjdGVkOm8uc2VsZWN0ZWQsdW5zZWxlY3RlZDpvLnVuc2VsZWN0ZWR9fSx7Ii4uLy4uL2xpYi9leHRlbmQiOjcwOCwiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyI6ODQxLCIuLi9iYXIvYXR0cmlidXRlcyI6ODU2LCIuLi9zY2F0dGVycG9sYXIvYXR0cmlidXRlcyI6MTE5M31dLDg3NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvaGVscGVycyIpLmhhc0NvbG9yc2NhbGUsYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY2FsYyIpLGk9dCgiLi4vYmFyL2FycmF5c190b19jYWxjZGF0YSIpLG89dCgiLi4vYmFyL2Nyb3NzX3RyYWNlX2NhbGMiKS5zZXRHcm91cFBvc2l0aW9ucyxzPXQoIi4uL3NjYXR0ZXIvY2FsY19zZWxlY3Rpb24iKSxsPXQoIi4uLy4uL3JlZ2lzdHJ5IikudHJhY2VJcyxjPXQoIi4uLy4uL2xpYiIpLmV4dGVuZEZsYXQ7ZS5leHBvcnRzPXtjYWxjOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQuX2Z1bGxMYXlvdXQsbz1lLnN1YnBsb3QsbD1yW29dLnJhZGlhbGF4aXMsYz1yW29dLmFuZ3VsYXJheGlzLHU9bC5tYWtlQ2FsY2RhdGEoZSwiciIpLGg9Yy5tYWtlQ2FsY2RhdGEoZSwidGhldGEiKSxmPWUuX2xlbmd0aCxwPW5ldyBBcnJheShmKSxkPXUsZz1oLHY9MDt2PGY7disrKXBbdl09e3A6Z1t2XSxzOmRbdl19O2Z1bmN0aW9uIG0odCl7dmFyIHI9ZVt0XTt2b2lkIDAhPT1yJiYoZVsiXyIrdF09QXJyYXkuaXNBcnJheShyKT9jLm1ha2VDYWxjZGF0YShlLHQpOmMuZDJjKHIsZS50aGV0YXVuaXQpKX1yZXR1cm4ibGluZWFyIj09PWMudHlwZSYmKG0oIndpZHRoIiksbSgib2Zmc2V0IikpLG4oZSwibWFya2VyIikmJmEodCxlLHt2YWxzOmUubWFya2VyLmNvbG9yLGNvbnRhaW5lclN0cjoibWFya2VyIixjTGV0dGVyOiJjIn0pLG4oZSwibWFya2VyLmxpbmUiKSYmYSh0LGUse3ZhbHM6ZS5tYXJrZXIubGluZS5jb2xvcixjb250YWluZXJTdHI6Im1hcmtlci5saW5lIixjTGV0dGVyOiJjIn0pLGkocCxlKSxzKHAsZSkscH0sY3Jvc3NUcmFjZUNhbGM6ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj10LmNhbGNkYXRhLGE9W10saT0wO2k8bi5sZW5ndGg7aSsrKXt2YXIgcz1uW2ldLHU9c1swXS50cmFjZTshMD09PXUudmlzaWJsZSYmbCh1LCJiYXIiKSYmdS5zdWJwbG90PT09ciYmYS5wdXNoKHMpfXZhciBoPWMoe30sZS5yYWRpYWxheGlzLHtfaWQ6IngifSksZj1lLmFuZ3VsYXJheGlzO28odCxmLGgsYSx7bW9kZTplLmJhcm1vZGUsbm9ybTplLmJhcm5vcm0sZ2FwOmUuYmFyZ2FwLGdyb3VwZ2FwOmUuYmFyZ3JvdXBnYXB9KX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIjo2MDAsIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9oZWxwZXJzIjo2MDMsIi4uLy4uL2xpYiI6NzE3LCIuLi8uLi9yZWdpc3RyeSI6ODQ2LCIuLi9iYXIvYXJyYXlzX3RvX2NhbGNkYXRhIjo4NTUsIi4uL2Jhci9jcm9zc190cmFjZV9jYWxjIjo4NTksIi4uL3NjYXR0ZXIvY2FsY19zZWxlY3Rpb24iOjExMjJ9XSw4NzU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi9zY2F0dGVycG9sYXIvZGVmYXVsdHMiKS5oYW5kbGVSVGhldGFEZWZhdWx0cyxpPXQoIi4uL2Jhci9zdHlsZV9kZWZhdWx0cyIpLG89dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMpe2Z1bmN0aW9uIGwocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLG8scixhKX1hKHQsZSxzLGwpPyhsKCJ0aGV0YXVuaXQiKSxsKCJiYXNlIiksbCgib2Zmc2V0IiksbCgid2lkdGgiKSxsKCJ0ZXh0IiksbCgiaG92ZXJ0ZXh0IiksbCgiaG92ZXJ0ZW1wbGF0ZSIpLGkodCxlLGwscixzKSxuLmNvZXJjZVNlbGVjdGlvbk1hcmtlck9wYWNpdHkoZSxsKSk6ZS52aXNpYmxlPSExfX0seyIuLi8uLi9saWIiOjcxNywiLi4vYmFyL3N0eWxlX2RlZmF1bHRzIjo4NzEsIi4uL3NjYXR0ZXJwb2xhci9kZWZhdWx0cyI6MTE5NSwiLi9hdHRyaWJ1dGVzIjo4NzN9XSw4NzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9meCIpLGE9dCgiLi4vLi4vbGliIiksaT10KCIuLi9iYXIvaG92ZXIiKS5nZXRUcmFjZUNvbG9yLG89YS5maWxsVGV4dCxzPXQoIi4uL3NjYXR0ZXJwb2xhci9ob3ZlciIpLm1ha2VIb3ZlclBvaW50VGV4dCxsPXQoIi4uLy4uL3Bsb3RzL3BvbGFyL2hlbHBlcnMiKS5pc1B0SW5zaWRlUG9seWdvbjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBjPXQuY2QsdT1jWzBdLnRyYWNlLGg9dC5zdWJwbG90LGY9aC5yYWRpYWxBeGlzLHA9aC5hbmd1bGFyQXhpcyxkPWgudmFuZ2xlcyxnPWQ/bDphLmlzUHRJbnNpZGVTZWN0b3Isdj10Lm1heEhvdmVyRGlzdGFuY2UsbT1wLl9wZXJpb2R8fDIqTWF0aC5QSSx5PU1hdGguYWJzKGYuZzJwKE1hdGguc3FydChlKmUrcipyKSkpLHg9TWF0aC5hdGFuMihyLGUpO2YucmFuZ2VbMF0+Zi5yYW5nZVsxXSYmKHgrPU1hdGguUEkpO2lmKG4uZ2V0Q2xvc2VzdChjLGZ1bmN0aW9uKHQpe3JldHVybiBnKHkseCxbdC5ycDAsdC5ycDFdLFt0LnRoZXRhZzAsdC50aGV0YWcxXSxkKT92K01hdGgubWluKDEsTWF0aC5hYnModC50aGV0YWcxLXQudGhldGFnMCkvbSktMSsodC5ycDEteSkvKHQucnAxLXQucnAwKS0xOjEvMH0sdCksITEhPT10LmluZGV4KXt2YXIgYj1jW3QuaW5kZXhdO3QueDA9dC54MT1iLmN0WzBdLHQueTA9dC55MT1iLmN0WzFdO3ZhciBfPWEuZXh0ZW5kRmxhdCh7fSxiLHtyOmIucyx0aGV0YTpiLnB9KTtyZXR1cm4gbyhiLHUsdCkscyhfLHUsaCx0KSx0LmhvdmVydGVtcGxhdGU9dS5ob3ZlcnRlbXBsYXRlLHQuY29sb3I9aSh1LGIpLHQueExhYmVsVmFsPXQueUxhYmVsVmFsPXZvaWQgMCxiLnM8MCYmKHQuaWRlYWxBbGlnbj0ibGVmdCIpLFt0XX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvZngiOjYzMCwiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3Bsb3RzL3BvbGFyL2hlbHBlcnMiOjgyOCwiLi4vYmFyL2hvdmVyIjo4NjMsIi4uL3NjYXR0ZXJwb2xhci9ob3ZlciI6MTE5N31dLDg3NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e21vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJiYXJwb2xhciIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvcG9sYXIiKSxjYXRlZ29yaWVzOlsicG9sYXIiLCJiYXIiLCJzaG93TGVnZW5kIl0sYXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxsYXlvdXRBdHRyaWJ1dGVzOnQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksc3VwcGx5TGF5b3V0RGVmYXVsdHM6dCgiLi9sYXlvdXRfZGVmYXVsdHMiKSxjYWxjOnQoIi4vY2FsYyIpLmNhbGMsY3Jvc3NUcmFjZUNhbGM6dCgiLi9jYWxjIikuY3Jvc3NUcmFjZUNhbGMscGxvdDp0KCIuL3Bsb3QiKSxjb2xvcmJhcjp0KCIuLi9zY2F0dGVyL21hcmtlcl9jb2xvcmJhciIpLGZvcm1hdExhYmVsczp0KCIuLi9zY2F0dGVycG9sYXIvZm9ybWF0X2xhYmVscyIpLHN0eWxlOnQoIi4uL2Jhci9zdHlsZSIpLnN0eWxlLHN0eWxlT25TZWxlY3Q6dCgiLi4vYmFyL3N0eWxlIikuc3R5bGVPblNlbGVjdCxob3ZlclBvaW50czp0KCIuL2hvdmVyIiksc2VsZWN0UG9pbnRzOnQoIi4uL2Jhci9zZWxlY3QiKSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9wb2xhciI6ODI5LCIuLi9iYXIvc2VsZWN0Ijo4NjgsIi4uL2Jhci9zdHlsZSI6ODcwLCIuLi9zY2F0dGVyL21hcmtlcl9jb2xvcmJhciI6MTEzOCwiLi4vc2NhdHRlcnBvbGFyL2Zvcm1hdF9sYWJlbHMiOjExOTYsIi4vYXR0cmlidXRlcyI6ODczLCIuL2NhbGMiOjg3NCwiLi9kZWZhdWx0cyI6ODc1LCIuL2hvdmVyIjo4NzYsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjg3OCwiLi9sYXlvdXRfZGVmYXVsdHMiOjg3OSwiLi9wbG90Ijo4ODB9XSw4Nzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtiYXJtb2RlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJzdGFjayIsIm92ZXJsYXkiXSxkZmx0OiJzdGFjayIsZWRpdFR5cGU6ImNhbGMifSxiYXJnYXA6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDouMSxtaW46MCxtYXg6MSxlZGl0VHlwZToiY2FsYyJ9fX0se31dLDg3OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBpLG89e307ZnVuY3Rpb24gcyhyLG8pe3JldHVybiBuLmNvZXJjZSh0W2ldfHx7fSxlW2ldLGEscixvKX1mb3IodmFyIGw9MDtsPHIubGVuZ3RoO2wrKyl7dmFyIGM9cltsXTsiYmFycG9sYXIiPT09Yy50eXBlJiYhMD09PWMudmlzaWJsZSYmKG9baT1jLnN1YnBsb3RdfHwocygiYmFybW9kZSIpLHMoImJhcmdhcCIpLG9baV09MSkpfX19LHsiLi4vLi4vbGliIjo3MTcsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjg3OH1dLDg4MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGE9dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4uLy4uL2xpYiIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIikscz10KCIuLi8uLi9wbG90cy9wb2xhci9oZWxwZXJzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbD1lLnhheGlzLGM9ZS55YXhpcyx1PWUucmFkaWFsQXhpcyxoPWUuYW5ndWxhckF4aXMsZj1mdW5jdGlvbih0KXt2YXIgZT10LmN4eCxyPXQuY3l5O2lmKHQudmFuZ2xlcylyZXR1cm4gZnVuY3Rpb24obixhLG8sbCl7dmFyIGMsdTtpLmFuZ2xlRGVsdGEobyxsKT4wPyhjPW8sdT1sKTooYz1sLHU9byk7dmFyIGg9cy5maW5kRW5jbG9zaW5nVmVydGV4QW5nbGVzKGMsdC52YW5nbGVzKVswXSxmPXMuZmluZEVuY2xvc2luZ1ZlcnRleEFuZ2xlcyh1LHQudmFuZ2xlcylbMV0scD1baCwoYyt1KS8yLGZdO3JldHVybiBzLnBhdGhQb2x5Z29uQW5udWx1cyhuLGEsYyx1LHAsZSxyKX07cmV0dXJuIGZ1bmN0aW9uKHQsbixhLG8pe3JldHVybiBpLnBhdGhBbm51bHVzKHQsbixhLG8sZSxyKX19KGUpLHA9ZS5sYXllcnMuZnJvbnRwbG90LnNlbGVjdCgiZy5iYXJsYXllciIpO2kubWFrZVRyYWNlR3JvdXBzKHAsciwidHJhY2UgYmFycyIpLmVhY2goZnVuY3Rpb24oKXt2YXIgcj1uLnNlbGVjdCh0aGlzKSxzPWkuZW5zdXJlU2luZ2xlKHIsImciLCJwb2ludHMiKS5zZWxlY3RBbGwoImcucG9pbnQiKS5kYXRhKGkuaWRlbnRpdHkpO3MuZW50ZXIoKS5hcHBlbmQoImciKS5zdHlsZSgidmVjdG9yLWVmZmVjdCIsIm5vbi1zY2FsaW5nLXN0cm9rZSIpLnN0eWxlKCJzdHJva2UtbWl0ZXJsaW1pdCIsMikuY2xhc3NlZCgicG9pbnQiLCEwKSxzLmV4aXQoKS5yZW1vdmUoKSxzLmVhY2goZnVuY3Rpb24odCl7dmFyIGUscj1uLnNlbGVjdCh0aGlzKSxvPXQucnAwPXUuYzJwKHQuczApLHM9dC5ycDE9dS5jMnAodC5zMSkscD10LnRoZXRhZzA9aC5jMmcodC5wMCksZD10LnRoZXRhZzE9aC5jMmcodC5wMSk7aWYoYShvKSYmYShzKSYmYShwKSYmYShkKSYmbyE9PXMmJnAhPT1kKXt2YXIgZz11LmMyZyh0LnMxKSx2PShwK2QpLzI7dC5jdD1bbC5jMnAoZypNYXRoLmNvcyh2KSksYy5jMnAoZypNYXRoLnNpbih2KSldLGU9ZihvLHMscCxkKX1lbHNlIGU9Ik0wLDBaIjtpLmVuc3VyZVNpbmdsZShyLCJwYXRoIikuYXR0cigiZCIsZSl9KSxvLnNldENsaXBVcmwocixlLl9oYXNDbGlwT25BeGlzRmFsc2U/ZS5jbGlwSWRzLmZvclRyYWNlczpudWxsLHQpfSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjEzLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vcGxvdHMvcG9sYXIvaGVscGVycyI6ODI4LGQzOjE2NSwiZmFzdC1pc251bWVyaWMiOjIyOH1dLDg4MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiKSxhPXQoIi4uL2Jhci9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiKSxvPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMscz10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxsPW4ubWFya2VyLGM9bC5saW5lO2UuZXhwb3J0cz17eTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSx4Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LHgwOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0seTA6e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSxkeDp7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToiY2FsYyJ9LGR5Ont2YWxUeXBlOiJudW1iZXIiLGVkaXRUeXBlOiJjYWxjIn0sbmFtZTp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LHExOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LG1lZGlhbjp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSxxMzp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSxsb3dlcmZlbmNlOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHVwcGVyZmVuY2U6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sbm90Y2hlZDp7dmFsVHlwZToiYm9vbGVhbiIsZWRpdFR5cGU6ImNhbGMifSxub3RjaHdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDouNSxkZmx0Oi4yNSxlZGl0VHlwZToiY2FsYyJ9LG5vdGNoc3Bhbjp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxib3hwb2ludHM6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImFsbCIsIm91dGxpZXJzIiwic3VzcGVjdGVkb3V0bGllcnMiLCExXSxlZGl0VHlwZToiY2FsYyJ9LGppdHRlcjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxlZGl0VHlwZToiY2FsYyJ9LHBvaW50cG9zOnt2YWxUeXBlOiJudW1iZXIiLG1pbjotMixtYXg6MixlZGl0VHlwZToiY2FsYyJ9LGJveG1lYW46e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbITAsInNkIiwhMV0sZWRpdFR5cGU6ImNhbGMifSxtZWFuOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHNkOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LG9yaWVudGF0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ2IiwiaCJdLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0scXVhcnRpbGVtZXRob2Q6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImxpbmVhciIsImV4Y2x1c2l2ZSIsImluY2x1c2l2ZSJdLGRmbHQ6ImxpbmVhciIsZWRpdFR5cGU6ImNhbGMifSx3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjAsZWRpdFR5cGU6ImNhbGMifSxtYXJrZXI6e291dGxpZXJjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6InJnYmEoMCwgMCwgMCwgMCkiLGVkaXRUeXBlOiJzdHlsZSJ9LHN5bWJvbDpzKHt9LGwuc3ltYm9sLHthcnJheU9rOiExLGVkaXRUeXBlOiJwbG90In0pLG9wYWNpdHk6cyh7fSxsLm9wYWNpdHkse2FycmF5T2s6ITEsZGZsdDoxLGVkaXRUeXBlOiJzdHlsZSJ9KSxzaXplOnMoe30sbC5zaXplLHthcnJheU9rOiExLGVkaXRUeXBlOiJjYWxjIn0pLGNvbG9yOnMoe30sbC5jb2xvcix7YXJyYXlPazohMSxlZGl0VHlwZToic3R5bGUifSksbGluZTp7Y29sb3I6cyh7fSxjLmNvbG9yLHthcnJheU9rOiExLGRmbHQ6aS5kZWZhdWx0TGluZSxlZGl0VHlwZToic3R5bGUifSksd2lkdGg6cyh7fSxjLndpZHRoLHthcnJheU9rOiExLGRmbHQ6MCxlZGl0VHlwZToic3R5bGUifSksb3V0bGllcmNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6InN0eWxlIn0sb3V0bGllcndpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MSxlZGl0VHlwZToic3R5bGUifSxlZGl0VHlwZToic3R5bGUifSxlZGl0VHlwZToicGxvdCJ9LGxpbmU6e2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6InN0eWxlIn0sd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoyLGVkaXRUeXBlOiJzdHlsZSJ9LGVkaXRUeXBlOiJwbG90In0sZmlsbGNvbG9yOm4uZmlsbGNvbG9yLHdoaXNrZXJ3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0Oi41LGVkaXRUeXBlOiJjYWxjIn0sb2Zmc2V0Z3JvdXA6YS5vZmZzZXRncm91cCxhbGlnbm1lbnRncm91cDphLmFsaWdubWVudGdyb3VwLHNlbGVjdGVkOnttYXJrZXI6bi5zZWxlY3RlZC5tYXJrZXIsZWRpdFR5cGU6InN0eWxlIn0sdW5zZWxlY3RlZDp7bWFya2VyOm4udW5zZWxlY3RlZC5tYXJrZXIsZWRpdFR5cGU6InN0eWxlIn0sdGV4dDpzKHt9LG4udGV4dCx7fSksaG92ZXJ0ZXh0OnMoe30sbi5ob3ZlcnRleHQse30pLGhvdmVydGVtcGxhdGU6byh7fSksaG92ZXJvbjp7dmFsVHlwZToiZmxhZ2xpc3QiLGZsYWdzOlsiYm94ZXMiLCJwb2ludHMiXSxkZmx0OiJib3hlcytwb2ludHMiLGVkaXRUeXBlOiJzdHlsZSJ9fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiOjU5MSwiLi4vLi4vbGliL2V4dGVuZCI6NzA4LCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo4NDEsIi4uL2Jhci9hdHRyaWJ1dGVzIjo4NTYsIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyI6MTEyMH1dLDg4MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGE9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxpPXQoIi4uLy4uL2xpYiIpLG89dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTSxzPWkuXztlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixsLG0seSx4LGIsXz10Ll9mdWxsTGF5b3V0LHc9YS5nZXRGcm9tSWQodCxlLnhheGlzfHwieCIpLGs9YS5nZXRGcm9tSWQodCxlLnlheGlzfHwieSIpLFQ9W10sTT0idmlvbGluIj09PWUudHlwZT8iX251bVZpb2xpbnMiOiJfbnVtQm94ZXMiOyJoIj09PWUub3JpZW50YXRpb24/KG09dyx5PSJ4Iix4PWssYj0ieSIpOihtPWsseT0ieSIseD13LGI9IngiKTt2YXIgQSxTLEUsTCxDLFAsTz1mdW5jdGlvbih0LGUscixhKXt2YXIgbyxzPWUrIjAiaW4gdCxsPSJkIitlIGluIHQ7aWYoZSBpbiB0fHxzJiZsKXJldHVybiByLm1ha2VDYWxjZGF0YSh0LGUpO289cz90W2UrIjAiXToibmFtZSJpbiB0JiYoImNhdGVnb3J5Ij09PXIudHlwZXx8bih0Lm5hbWUpJiYtMSE9PVsibGluZWFyIiwibG9nIl0uaW5kZXhPZihyLnR5cGUpfHxpLmlzRGF0ZVRpbWUodC5uYW1lKSYmImRhdGUiPT09ci50eXBlKT90Lm5hbWU6YTtmb3IodmFyIGM9Im11bHRpY2F0ZWdvcnkiPT09ci50eXBlP3IucjJjX2p1c3RfaW5kaWNlcyhvKTpyLmQyYyhvLDAsdFtlKyJjYWxlbmRhciJdKSx1PXQuX2xlbmd0aCxoPW5ldyBBcnJheSh1KSxmPTA7Zjx1O2YrKyloW2ZdPWM7cmV0dXJuIGh9KGUsYix4LF9bTV0pLHo9aS5kaXN0aW5jdFZhbHMoTyksST16LnZhbHMsRD16Lm1pbkRpZmYvMixSPSJhbGwiPT09KGUuYm94cG9pbnRzfHxlLnBvaW50cyk/aS5pZGVudGl0eTpmdW5jdGlvbih0KXtyZXR1cm4gdC52PEEubGZ8fHQudj5BLnVmfTtpZihlLl9oYXNQcmVDb21wU3RhdHMpe3ZhciBGPWVbeV0sQj1mdW5jdGlvbih0KXtyZXR1cm4gbS5kMmMoKGVbdF18fFtdKVtyXSl9LE49MS8wLGo9LTEvMDtmb3Iocj0wO3I8ZS5fbGVuZ3RoO3IrKyl7dmFyIFY9T1tyXTtpZihuKFYpKXtpZigoQT17fSkucG9zPUFbYl09VixBLnExPUIoInExIiksQS5tZWQ9QigibWVkaWFuIiksQS5xMz1CKCJxMyIpLFM9W10sRiYmaS5pc0FycmF5T3JUeXBlZEFycmF5KEZbcl0pKWZvcihsPTA7bDxGW3JdLmxlbmd0aDtsKyspKFA9bS5kMmMoRltyXVtsXSkpIT09byYmKGMoQz17djpQLGk6W3IsbF19LGUsW3IsbF0pLFMucHVzaChDKSk7aWYoQS5wdHM9Uy5zb3J0KHUpLEw9KEU9QVt5XT1TLm1hcChoKSkubGVuZ3RoLEEubWVkIT09byYmQS5xMSE9PW8mJkEucTMhPT1vJiZBLm1lZD49QS5xMSYmQS5xMz49QS5tZWQpe3ZhciBVPUIoImxvd2VyZmVuY2UiKTtBLmxmPVUhPT1vJiZVPD1BLnExP1U6ZihBLEUsTCk7dmFyIHE9QigidXBwZXJmZW5jZSIpO0EudWY9cSE9PW8mJnE+PUEucTM/cTpwKEEsRSxMKTt2YXIgSD1CKCJtZWFuIik7QS5tZWFuPUghPT1vP0g6TD9pLm1lYW4oRSxMKTooQS5xMStBLnEzKS8yO3ZhciBHPUIoInNkIik7QS5zZD1IIT09byYmRz49MD9HOkw/aS5zdGRldihFLEwsQS5tZWFuKTpBLnEzLUEucTEsQS5sbz1kKEEpLEEudW89ZyhBKTt2YXIgWT1CKCJub3RjaHNwYW4iKTtZPVkhPT1vJiZZPjA/WTp2KEEsTCksQS5sbj1BLm1lZC1ZLEEudW49QS5tZWQrWTt2YXIgVz1BLmxmLFg9QS51ZjtlLmJveHBvaW50cyYmRS5sZW5ndGgmJihXPU1hdGgubWluKFcsRVswXSksWD1NYXRoLm1heChYLEVbTC0xXSkpLGUubm90Y2hlZCYmKFc9TWF0aC5taW4oVyxBLmxuKSxYPU1hdGgubWF4KFgsQS51bikpLEEubWluPVcsQS5tYXg9WH1lbHNle3ZhciBaO2kud2FybihbIkludmFsaWQgaW5wdXQgLSBtYWtlIHN1cmUgdGhhdCBxMSA8PSBtZWRpYW4gPD0gcTMiLCJxMSA9ICIrQS5xMSwibWVkaWFuID0gIitBLm1lZCwicTMgPSAiK0EucTNdLmpvaW4oIlxuIikpLFo9QS5tZWQhPT1vP0EubWVkOkEucTEhPT1vP0EucTMhPT1vPyhBLnExK0EucTMpLzI6QS5xMTpBLnEzIT09bz9BLnEzOjAsQS5tZWQ9WixBLnExPUEucTM9WixBLmxmPUEudWY9WixBLm1lYW49QS5zZD1aLEEubG49QS51bj1aLEEubWluPUEubWF4PVp9Tj1NYXRoLm1pbihOLEEubWluKSxqPU1hdGgubWF4KGosQS5tYXgpLEEucHRzMj1TLmZpbHRlcihSKSxULnB1c2goQSl9fWUuX2V4dHJlbWVzW20uX2lkXT1hLmZpbmRFeHRyZW1lcyhtLFtOLGpdLHtwYWRkZWQ6ITB9KX1lbHNle3ZhciBKPW0ubWFrZUNhbGNkYXRhKGUseSksSz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10Lmxlbmd0aCxuPW5ldyBBcnJheShyKzEpLGE9MDthPHI7YSsrKW5bYV09dFthXS1lO3JldHVybiBuW3JdPXRbci0xXStlLG59KEksRCksUT1JLmxlbmd0aCwkPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodCkscj0wO3I8dDtyKyspZVtyXT1bXTtyZXR1cm4gZX0oUSk7Zm9yKHI9MDtyPGUuX2xlbmd0aDtyKyspaWYoUD1KW3JdLG4oUCkpe3ZhciB0dD1pLmZpbmRCaW4oT1tyXSxLKTt0dD49MCYmdHQ8USYmKGMoQz17djpQLGk6cn0sZSxyKSwkW3R0XS5wdXNoKEMpKX12YXIgZXQ9MS8wLHJ0PS0xLzAsbnQ9ZS5xdWFydGlsZW1ldGhvZCxhdD0iZXhjbHVzaXZlIj09PW50LGl0PSJpbmNsdXNpdmUiPT09bnQ7Zm9yKHI9MDtyPFE7cisrKWlmKCRbcl0ubGVuZ3RoPjApe3ZhciBvdCxzdDtpZigoQT17fSkucG9zPUFbYl09SVtyXSxTPUEucHRzPSRbcl0uc29ydCh1KSxMPShFPUFbeV09Uy5tYXAoaCkpLmxlbmd0aCxBLm1pbj1FWzBdLEEubWF4PUVbTC0xXSxBLm1lYW49aS5tZWFuKEUsTCksQS5zZD1pLnN0ZGV2KEUsTCxBLm1lYW4pLEEubWVkPWkuaW50ZXJwKEUsLjUpLEwlMiYmKGF0fHxpdCkpYXQ/KG90PUUuc2xpY2UoMCxMLzIpLHN0PUUuc2xpY2UoTC8yKzEpKTppdCYmKG90PUUuc2xpY2UoMCxMLzIrMSksc3Q9RS5zbGljZShMLzIpKSxBLnExPWkuaW50ZXJwKG90LC41KSxBLnEzPWkuaW50ZXJwKHN0LC41KTtlbHNlIEEucTE9aS5pbnRlcnAoRSwuMjUpLEEucTM9aS5pbnRlcnAoRSwuNzUpO0EubGY9ZihBLEUsTCksQS51Zj1wKEEsRSxMKSxBLmxvPWQoQSksQS51bz1nKEEpO3ZhciBsdD12KEEsTCk7QS5sbj1BLm1lZC1sdCxBLnVuPUEubWVkK2x0LGV0PU1hdGgubWluKGV0LEEubG4pLHJ0PU1hdGgubWF4KHJ0LEEudW4pLEEucHRzMj1TLmZpbHRlcihSKSxULnB1c2goQSl9ZS5fZXh0cmVtZXNbbS5faWRdPWEuZmluZEV4dHJlbWVzKG0sZS5ub3RjaGVkP0ouY29uY2F0KFtldCxydF0pOkose3BhZGRlZDohMH0pfXJldHVybiBmdW5jdGlvbih0LGUpe2lmKGkuaXNBcnJheU9yVHlwZWRBcnJheShlLnNlbGVjdGVkcG9pbnRzKSlmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl7Zm9yKHZhciBuPXRbcl0ucHRzfHxbXSxhPXt9LG89MDtvPG4ubGVuZ3RoO28rKylhW25bb10uaV09bztpLnRhZ1NlbGVjdGVkKG4sZSxhKX19KFQsZSksVC5sZW5ndGg+MD8oVFswXS50PXtudW06X1tNXSxkUG9zOkQscG9zTGV0dGVyOmIsdmFsTGV0dGVyOnksbGFiZWxzOnttZWQ6cyh0LCJtZWRpYW46IiksbWluOnModCwibWluOiIpLHExOnModCwicTE6IikscTM6cyh0LCJxMzoiKSxtYXg6cyh0LCJtYXg6IiksbWVhbjoic2QiPT09ZS5ib3htZWFuP3ModCwibWVhbiBceGIxIFx1MDNjMzoiKTpzKHQsIm1lYW46IiksbGY6cyh0LCJsb3dlciBmZW5jZToiKSx1ZjpzKHQsInVwcGVyIGZlbmNlOiIpfX0sX1tNXSsrLFQpOlt7dDp7ZW1wdHk6ITB9fV19O3ZhciBsPXt0ZXh0OiJ0eCIsaG92ZXJ0ZXh0OiJodHgifTtmdW5jdGlvbiBjKHQsZSxyKXtmb3IodmFyIG4gaW4gbClpLmlzQXJyYXlPclR5cGVkQXJyYXkoZVtuXSkmJihBcnJheS5pc0FycmF5KHIpP2kuaXNBcnJheU9yVHlwZWRBcnJheShlW25dW3JbMF1dKSYmKHRbbFtuXV09ZVtuXVtyWzBdXVtyWzFdXSk6dFtsW25dXT1lW25dW3JdKX1mdW5jdGlvbiB1KHQsZSl7cmV0dXJuIHQudi1lLnZ9ZnVuY3Rpb24gaCh0KXtyZXR1cm4gdC52fWZ1bmN0aW9uIGYodCxlLHIpe3JldHVybiAwPT09cj90LnExOk1hdGgubWluKHQucTEsZVtNYXRoLm1pbihpLmZpbmRCaW4oMi41KnQucTEtMS41KnQucTMsZSwhMCkrMSxyLTEpXSl9ZnVuY3Rpb24gcCh0LGUscil7cmV0dXJuIDA9PT1yP3QucTM6TWF0aC5tYXgodC5xMyxlW01hdGgubWF4KGkuZmluZEJpbigyLjUqdC5xMy0xLjUqdC5xMSxlKSwwKV0pfWZ1bmN0aW9uIGQodCl7cmV0dXJuIDQqdC5xMS0zKnQucTN9ZnVuY3Rpb24gZyh0KXtyZXR1cm4gNCp0LnEzLTMqdC5xMX1mdW5jdGlvbiB2KHQsZSl7cmV0dXJuIDA9PT1lPzA6MS41NyoodC5xMy10LnExKS9NYXRoLnNxcnQoZSl9fSx7Ii4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjY5MywiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo3NjUsImZhc3QtaXNudW1lcmljIjoyMjh9XSw4ODM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxhPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIikuZ2V0QXhpc0dyb3VwLG89WyJ2IiwiaCJdO2Z1bmN0aW9uIHModCxlLHIsbyl7dmFyIHMsbCxjLHU9ZS5jYWxjZGF0YSxoPWUuX2Z1bGxMYXlvdXQsZj1vLl9pZCxwPWYuY2hhckF0KDApLGQ9W10sZz0wO2ZvcihzPTA7czxyLmxlbmd0aDtzKyspZm9yKGM9dVtyW3NdXSxsPTA7bDxjLmxlbmd0aDtsKyspZC5wdXNoKG8uYzJsKGNbbF0ucG9zLCEwKSksZys9KGNbbF0ucHRzMnx8W10pLmxlbmd0aDtpZihkLmxlbmd0aCl7dmFyIHY9YS5kaXN0aW5jdFZhbHMoZCksbT12Lm1pbkRpZmYvMjtuLm1pbkR0aWNrKG8sdi5taW5EaWZmLHYudmFsc1swXSwhMCk7dmFyIHk9aFsidmlvbGluIj09PXQ/Il9udW1WaW9saW5zIjoiX251bUJveGVzIl0seD0iZ3JvdXAiPT09aFt0KyJtb2RlIl0mJnk+MSxiPTEtaFt0KyJnYXAiXSxfPTEtaFt0KyJncm91cGdhcCJdO2ZvcihzPTA7czxyLmxlbmd0aDtzKyspe3ZhciB3LGssVCxNLEEsUyxFPShjPXVbcltzXV0pWzBdLnRyYWNlLEw9Y1swXS50LEM9RS53aWR0aCxQPUUuc2lkZTtpZihDKXc9az1NPUMvMixUPTA7ZWxzZSBpZih3PW0seCl7dmFyIE89aShoLG8uX2lkKStFLm9yaWVudGF0aW9uLHo9KGguX2FsaWdubWVudE9wdHNbT118fHt9KVtFLmFsaWdubWVudGdyb3VwXXx8e30sST1PYmplY3Qua2V5cyh6Lm9mZnNldEdyb3Vwc3x8e30pLmxlbmd0aCxEPUl8fHk7az13KmIqXy9ELFQ9Mip3KigoKEk/RS5fb2Zmc2V0SW5kZXg6TC5udW0pKy41KS9ELS41KSpiLE09dypiL0R9ZWxzZSBrPXcqYipfLFQ9MCxNPXc7TC5kUG9zPXcsTC5iUG9zPVQsTC5iZFBvcz1rLEwud0hvdmVyPU07dmFyIFIsRixCLE4saixWLFU9VCtrLHE9Qm9vbGVhbihDKTtpZigicG9zaXRpdmUiPT09UD8oQT13KihDPzE6LjUpLFI9VSxTPVI9VCk6Im5lZ2F0aXZlIj09PVA/KEE9Uj1ULFM9dyooQz8xOi41KSxGPVUpOihBPVM9dyxSPUY9VSksKEUuYm94cG9pbnRzfHxFLnBvaW50cykmJmc+MCl7dmFyIEg9RS5wb2ludHBvcyxHPUUuaml0dGVyLFk9RS5tYXJrZXIuc2l6ZS8yLFc9MDtIK0c+PTAmJigoVz1VKihIK0cpKT5BPyhxPSEwLGo9WSxCPVcpOlc+UiYmKGo9WSxCPUEpKSxXPD1BJiYoQj1BKTt2YXIgWD0wO0gtRzw9MCYmKChYPS1VKihILUcpKT5TPyhxPSEwLFY9WSxOPVgpOlg+RiYmKFY9WSxOPVMpKSxYPD1TJiYoTj1TKX1lbHNlIEI9QSxOPVM7dmFyIFo9bmV3IEFycmF5KGMubGVuZ3RoKTtmb3IobD0wO2w8Yy5sZW5ndGg7bCsrKVpbbF09Y1tsXS5wb3M7RS5fZXh0cmVtZXNbZl09bi5maW5kRXh0cmVtZXMobyxaLHtwYWRkZWQ6cSx2cGFkbWludXM6Tix2cGFkcGx1czpCLHZwYWRMaW5lYXJpemVkOiEwLHBwYWRtaW51czp7eDpWLHk6an1bcF0scHBhZHBsdXM6e3g6aix5OlZ9W3BdfSl9fX1lLmV4cG9ydHM9e2Nyb3NzVHJhY2VDYWxjOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQuY2FsY2RhdGEsbj1lLnhheGlzLGE9ZS55YXhpcyxpPTA7aTxvLmxlbmd0aDtpKyspe2Zvcih2YXIgbD1vW2ldLGM9ImgiPT09bD9hOm4sdT1bXSxoPTA7aDxyLmxlbmd0aDtoKyspe3ZhciBmPXJbaF0scD1mWzBdLnQsZD1mWzBdLnRyYWNlOyEwIT09ZC52aXNpYmxlfHwiYm94IiE9PWQudHlwZSYmImNhbmRsZXN0aWNrIiE9PWQudHlwZXx8cC5lbXB0eXx8KGQub3JpZW50YXRpb258fCJ2IikhPT1sfHxkLnhheGlzIT09bi5faWR8fGQueWF4aXMhPT1hLl9pZHx8dS5wdXNoKGgpfXMoImJveCIsdCx1LGMpfX0sc2V0UG9zaXRpb25PZmZzZXQ6c319LHsiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo3NjUsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2lkcyI6NzY4fV0sODg0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vcmVnaXN0cnkiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxvPXQoIi4uL2Jhci9kZWZhdWx0cyIpLmhhbmRsZUdyb3VwaW5nRGVmYXVsdHMscz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19hdXRvdHlwZSIpLGw9dCgiLi9hdHRyaWJ1dGVzIik7ZnVuY3Rpb24gYyh0LGUscixpKXtmdW5jdGlvbiBvKHQpe3ZhciBlPTA7cmV0dXJuIHQmJnQubGVuZ3RoJiYoZSs9MSxuLmlzQXJyYXlPclR5cGVkQXJyYXkodFswXSkmJnRbMF0ubGVuZ3RoJiYoZSs9MSkpLGV9ZnVuY3Rpb24gYyhlKXtyZXR1cm4gbi52YWxpZGF0ZSh0W2VdLGxbZV0pfXZhciB1LGg9cigieSIpLGY9cigieCIpO2lmKCJib3giPT09ZS50eXBlKXt2YXIgcD1yKCJxMSIpLGQ9cigibWVkaWFuIiksZz1yKCJxMyIpO2UuX2hhc1ByZUNvbXBTdGF0cz1wJiZwLmxlbmd0aCYmZCYmZC5sZW5ndGgmJmcmJmcubGVuZ3RoLHU9TWF0aC5taW4obi5taW5Sb3dMZW5ndGgocCksbi5taW5Sb3dMZW5ndGgoZCksbi5taW5Sb3dMZW5ndGgoZykpfXZhciB2LG0seT1vKGgpLHg9byhmKSxiPXkmJm4ubWluUm93TGVuZ3RoKGgpLF89eCYmbi5taW5Sb3dMZW5ndGgoZik7aWYoZS5faGFzUHJlQ29tcFN0YXRzKXN3aXRjaChTdHJpbmcoeCkrU3RyaW5nKHkpKXtjYXNlIjAwIjp2YXIgdz1jKCJ4MCIpfHxjKCJkeCIpO3Y9KGMoInkwIil8fGMoImR5IikpJiYhdz8iaCI6InYiLG09dTticmVhaztjYXNlIjEwIjp2PSJ2IixtPU1hdGgubWluKHUsXyk7YnJlYWs7Y2FzZSIyMCI6dj0iaCIsbT1NYXRoLm1pbih1LGYubGVuZ3RoKTticmVhaztjYXNlIjAxIjp2PSJoIixtPU1hdGgubWluKHUsYik7YnJlYWs7Y2FzZSIwMiI6dj0idiIsbT1NYXRoLm1pbih1LGgubGVuZ3RoKTticmVhaztjYXNlIjEyIjp2PSJ2IixtPU1hdGgubWluKHUsXyxoLmxlbmd0aCk7YnJlYWs7Y2FzZSIyMSI6dj0iaCIsbT1NYXRoLm1pbih1LGYubGVuZ3RoLGIpO2JyZWFrO2Nhc2UiMTEiOm09MDticmVhaztjYXNlIjIyIjp2YXIgayxUPSExO2ZvcihrPTA7azxmLmxlbmd0aDtrKyspaWYoImNhdGVnb3J5Ij09PXMoZltrXSkpe1Q9ITA7YnJlYWt9aWYoVCl2PSJ2IixtPU1hdGgubWluKHUsXyxoLmxlbmd0aCk7ZWxzZXtmb3Ioaz0wO2s8aC5sZW5ndGg7aysrKWlmKCJjYXRlZ29yeSI9PT1zKGhba10pKXtUPSEwO2JyZWFrfVQ/KHY9ImgiLG09TWF0aC5taW4odSxmLmxlbmd0aCxiKSk6KHY9InYiLG09TWF0aC5taW4odSxfLGgubGVuZ3RoKSl9fWVsc2UgeT4wPyh2PSJ2IixtPXg+MD9NYXRoLm1pbihfLGIpOk1hdGgubWluKGIpKTp4PjA/KHY9ImgiLG09TWF0aC5taW4oXykpOm09MDtpZihtKXtlLl9sZW5ndGg9bTt2YXIgTT1yKCJvcmllbnRhdGlvbiIsdik7ZS5faGFzUHJlQ29tcFN0YXRzPyJ2Ij09PU0mJjA9PT14PyhyKCJ4MCIsMCkscigiZHgiLDEpKToiaCI9PT1NJiYwPT09eSYmKHIoInkwIiwwKSxyKCJkeSIsMSkpOiJ2Ij09PU0mJjA9PT14P3IoIngwIik6ImgiPT09TSYmMD09PXkmJnIoInkwIiksYS5nZXRDb21wb25lbnRNZXRob2QoImNhbGVuZGFycyIsImhhbmRsZVRyYWNlRGVmYXVsdHMiKSh0LGUsWyJ4IiwieSJdLGkpfWVsc2UgZS52aXNpYmxlPSExfWZ1bmN0aW9uIHUodCxlLHIsYSl7dmFyIGk9YS5wcmVmaXgsbz1uLmNvZXJjZTIodCxlLGwsIm1hcmtlci5vdXRsaWVyY29sb3IiKSxzPXIoIm1hcmtlci5saW5lLm91dGxpZXJjb2xvciIpLGM9Im91dGxpZXJzIjtlLl9oYXNQcmVDb21wU3RhdHM/Yz0iYWxsIjoob3x8cykmJihjPSJzdXNwZWN0ZWRvdXRsaWVycyIpO3ZhciB1PXIoaSsicG9pbnRzIixjKTt1PyhyKCJqaXR0ZXIiLCJhbGwiPT09dT8uMzowKSxyKCJwb2ludHBvcyIsImFsbCI9PT11Py0xLjU6MCkscigibWFya2VyLnN5bWJvbCIpLHIoIm1hcmtlci5vcGFjaXR5IikscigibWFya2VyLnNpemUiKSxyKCJtYXJrZXIuY29sb3IiLGUubGluZS5jb2xvcikscigibWFya2VyLmxpbmUuY29sb3IiKSxyKCJtYXJrZXIubGluZS53aWR0aCIpLCJzdXNwZWN0ZWRvdXRsaWVycyI9PT11JiYocigibWFya2VyLmxpbmUub3V0bGllcmNvbG9yIixlLm1hcmtlci5jb2xvcikscigibWFya2VyLmxpbmUub3V0bGllcndpZHRoIikpLHIoInNlbGVjdGVkLm1hcmtlci5jb2xvciIpLHIoInVuc2VsZWN0ZWQubWFya2VyLmNvbG9yIikscigic2VsZWN0ZWQubWFya2VyLnNpemUiKSxyKCJ1bnNlbGVjdGVkLm1hcmtlci5zaXplIikscigidGV4dCIpLHIoImhvdmVydGV4dCIpKTpkZWxldGUgZS5tYXJrZXI7dmFyIGg9cigiaG92ZXJvbiIpOyJhbGwiIT09aCYmLTE9PT1oLmluZGV4T2YoInBvaW50cyIpfHxyKCJob3ZlcnRlbXBsYXRlIiksbi5jb2VyY2VTZWxlY3Rpb25NYXJrZXJPcGFjaXR5KGUscil9ZS5leHBvcnRzPXtzdXBwbHlEZWZhdWx0czpmdW5jdGlvbih0LGUscixhKXtmdW5jdGlvbiBvKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxsLHIsYSl9aWYoYyh0LGUsbyxhKSwhMSE9PWUudmlzaWJsZSl7dmFyIHM9ZS5faGFzUHJlQ29tcFN0YXRzO3MmJihvKCJsb3dlcmZlbmNlIiksbygidXBwZXJmZW5jZSIpKSxvKCJsaW5lLmNvbG9yIiwodC5tYXJrZXJ8fHt9KS5jb2xvcnx8ciksbygibGluZS53aWR0aCIpLG8oImZpbGxjb2xvciIsaS5hZGRPcGFjaXR5KGUubGluZS5jb2xvciwuNSkpO3ZhciBoPSExO2lmKHMpe3ZhciBmPW8oIm1lYW4iKSxwPW8oInNkIik7ZiYmZi5sZW5ndGgmJihoPSEwLHAmJnAubGVuZ3RoJiYoaD0ic2QiKSl9bygiYm94bWVhbiIsaCksbygid2hpc2tlcndpZHRoIiksbygid2lkdGgiKSxvKCJxdWFydGlsZW1ldGhvZCIpO3ZhciBkPSExO2lmKHMpe3ZhciBnPW8oIm5vdGNoc3BhbiIpO2cmJmcubGVuZ3RoJiYoZD0hMCl9ZWxzZSBuLnZhbGlkYXRlKHQubm90Y2h3aWR0aCxsLm5vdGNod2lkdGgpJiYoZD0hMCk7bygibm90Y2hlZCIsZCkmJm8oIm5vdGNod2lkdGgiKSx1KHQsZSxvLHtwcmVmaXg6ImJveCJ9KX19LGNyb3NzVHJhY2VEZWZhdWx0czpmdW5jdGlvbih0LGUpe3ZhciByLGE7ZnVuY3Rpb24gaSh0KXtyZXR1cm4gbi5jb2VyY2UoYS5faW5wdXQsYSxsLHQpfWZvcih2YXIgcz0wO3M8dC5sZW5ndGg7cysrKXt2YXIgYz0oYT10W3NdKS50eXBlOyJib3giIT09YyYmInZpb2xpbiIhPT1jfHwocj1hLl9pbnB1dCwiZ3JvdXAiPT09ZVtjKyJtb2RlIl0mJm8ocixhLGUsaSkpfX0saGFuZGxlU2FtcGxlRGVmYXVsdHM6YyxoYW5kbGVQb2ludHNEZWZhdWx0czp1fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo1OTIsIi4uLy4uL2xpYiI6NzE3LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19hdXRvdHlwZSI6NzY2LCIuLi8uLi9yZWdpc3RyeSI6ODQ2LCIuLi9iYXIvZGVmYXVsdHMiOjg2MCwiLi9hdHRyaWJ1dGVzIjo4ODF9XSw4ODU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuaG92ZXJPbkJveCYmKHQuaG92ZXJPbkJveD1lLmhvdmVyT25Cb3gpLCJ4VmFsImluIGUmJih0Lng9ZS54VmFsKSwieVZhbCJpbiBlJiYodC55PWUueVZhbCksZS54YSYmKHQueGF4aXM9ZS54YSksZS55YSYmKHQueWF4aXM9ZS55YSksdH19LHt9XSw4ODY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxhPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9meCIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLHM9YS5maWxsVGV4dDtmdW5jdGlvbiBsKHQsZSxyLHMpe3ZhciBsLGMsdSxoLGYscCxkLGcsdixtLHkseCxiLF8sdz10LmNkLGs9dC54YSxUPXQueWEsTT13WzBdLnRyYWNlLEE9d1swXS50LFM9InZpb2xpbiI9PT1NLnR5cGUsRT1bXSxMPUEuYmRQb3MsQz1BLndIb3ZlcixQPWZ1bmN0aW9uKHQpe3JldHVybiB1LmMybCh0LnBvcykrQS5iUG9zLXUuYzJsKHApfTtTJiYiYm90aCIhPT1NLnNpZGU/KCJwb3NpdGl2ZSI9PT1NLnNpZGUmJih2PWZ1bmN0aW9uKHQpe3ZhciBlPVAodCk7cmV0dXJuIGkuaW5ib3goZSxlK0MsbSl9LHg9TCxiPTApLCJuZWdhdGl2ZSI9PT1NLnNpZGUmJih2PWZ1bmN0aW9uKHQpe3ZhciBlPVAodCk7cmV0dXJuIGkuaW5ib3goZS1DLGUsbSl9LHg9MCxiPUwpKToodj1mdW5jdGlvbih0KXt2YXIgZT1QKHQpO3JldHVybiBpLmluYm94KGUtQyxlK0MsbSl9LHg9Yj1MKSxfPVM/ZnVuY3Rpb24odCl7cmV0dXJuIGkuaW5ib3godC5zcGFuWzBdLWYsdC5zcGFuWzFdLWYsbSl9OmZ1bmN0aW9uKHQpe3JldHVybiBpLmluYm94KHQubWluLWYsdC5tYXgtZixtKX0sImgiPT09TS5vcmllbnRhdGlvbj8oZj1lLHA9cixkPV8sZz12LGw9InkiLHU9VCxjPSJ4IixoPWspOihmPXIscD1lLGQ9dixnPV8sbD0ieCIsdT1rLGM9InkiLGg9VCk7dmFyIE89TWF0aC5taW4oMSxML01hdGguYWJzKHUucjJjKHUucmFuZ2VbMV0pLXUucjJjKHUucmFuZ2VbMF0pKSk7ZnVuY3Rpb24geih0KXtyZXR1cm4oZCh0KStnKHQpKS8yfW09dC5tYXhIb3ZlckRpc3RhbmNlLU8seT10Lm1heFNwaWtlRGlzdGFuY2UtTzt2YXIgST1pLmdldERpc3RhbmNlRnVuY3Rpb24ocyxkLGcseik7aWYoaS5nZXRDbG9zZXN0KHcsSSx0KSwhMT09PXQuaW5kZXgpcmV0dXJuW107dmFyIEQ9d1t0LmluZGV4XSxSPU0ubGluZS5jb2xvcixGPShNLm1hcmtlcnx8e30pLmNvbG9yO28ub3BhY2l0eShSKSYmTS5saW5lLndpZHRoP3QuY29sb3I9UjpvLm9wYWNpdHkoRikmJk0uYm94cG9pbnRzP3QuY29sb3I9Rjp0LmNvbG9yPU0uZmlsbGNvbG9yLHRbbCsiMCJdPXUuYzJwKEQucG9zK0EuYlBvcy1iLCEwKSx0W2wrIjEiXT11LmMycChELnBvcytBLmJQb3MreCwhMCksdFtsKyJMYWJlbFZhbCJdPUQucG9zO3ZhciBCPWwrIlNwaWtlIjt0LnNwaWtlRGlzdGFuY2U9eihEKSp5L20sdFtCXT11LmMycChELnBvcywhMCk7dmFyIE49e30saj1bIm1lZCIsInExIiwicTMiLCJtaW4iLCJtYXgiXTsoTS5ib3htZWFufHwoTS5tZWFubGluZXx8e30pLnZpc2libGUpJiZqLnB1c2goIm1lYW4iKSwoTS5ib3hwb2ludHN8fE0ucG9pbnRzKSYmai5wdXNoKCJsZiIsInVmIik7Zm9yKHZhciBWPTA7VjxqLmxlbmd0aDtWKyspe3ZhciBVPWpbVl07aWYoVSBpbiBEJiYhKERbVV1pbiBOKSl7TltEW1VdXT0hMDt2YXIgcT1EW1VdLEg9aC5jMnAocSwhMCksRz1hLmV4dGVuZEZsYXQoe30sdCk7Ry5hdHRyPVUsR1tjKyIwIl09R1tjKyIxIl09SCxHW2MrIkxhYmVsVmFsIl09cSxHW2MrIkxhYmVsIl09KEEubGFiZWxzP0EubGFiZWxzW1VdKyIgIjoiIikrbi5ob3ZlckxhYmVsVGV4dChoLHEpLEcuaG92ZXJPbkJveD0hMCwibWVhbiI9PT1VJiYic2QiaW4gRCYmInNkIj09PU0uYm94bWVhbiYmKEdbYysiZXJyIl09RC5zZCksdC5uYW1lPSIiLHQuc3Bpa2VEaXN0YW5jZT12b2lkIDAsdFtCXT12b2lkIDAsRy5ob3ZlcnRlbXBsYXRlPSExLEUucHVzaChHKX19cmV0dXJuIEV9ZnVuY3Rpb24gYyh0LGUscil7Zm9yKHZhciBuLG8sbCxjPXQuY2QsdT10LnhhLGg9dC55YSxmPWNbMF0udHJhY2UscD11LmMycChlKSxkPWguYzJwKHIpLGc9aS5xdWFkcmF0dXJlKGZ1bmN0aW9uKHQpe3ZhciBlPU1hdGgubWF4KDMsdC5tcmN8fDApO3JldHVybiBNYXRoLm1heChNYXRoLmFicyh1LmMycCh0LngpLXApLWUsMS0zL2UpfSxmdW5jdGlvbih0KXt2YXIgZT1NYXRoLm1heCgzLHQubXJjfHwwKTtyZXR1cm4gTWF0aC5tYXgoTWF0aC5hYnMoaC5jMnAodC55KS1kKS1lLDEtMy9lKX0pLHY9ITEsbT0wO208Yy5sZW5ndGg7bSsrKXtvPWNbbV07Zm9yKHZhciB5PTA7eTwoby5wdHN8fFtdKS5sZW5ndGg7eSsrKXt2YXIgeD1nKGw9by5wdHNbeV0pO3g8PXQuZGlzdGFuY2UmJih0LmRpc3RhbmNlPXgsdj1bbSx5XSl9fWlmKCF2KXJldHVybiExO2w9KG89Y1t2WzBdXSkucHRzW3ZbMV1dO3ZhciBiLF89dS5jMnAobC54LCEwKSx3PWguYzJwKGwueSwhMCksaz1sLm1yY3x8MTtyZXR1cm4gbj1hLmV4dGVuZEZsYXQoe30sdCx7aW5kZXg6bC5pLGNvbG9yOihmLm1hcmtlcnx8e30pLmNvbG9yLG5hbWU6Zi5uYW1lLHgwOl8tayx4MTpfK2sseTA6dy1rLHkxOncrayxzcGlrZURpc3RhbmNlOnQuZGlzdGFuY2UsaG92ZXJ0ZW1wbGF0ZTpmLmhvdmVydGVtcGxhdGV9KSwiaCI9PT1mLm9yaWVudGF0aW9uPyhiPWgsbi54TGFiZWxWYWw9bC54LG4ueUxhYmVsVmFsPW8ucG9zKTooYj11LG4ueExhYmVsVmFsPW8ucG9zLG4ueUxhYmVsVmFsPWwueSksbltiLl9pZC5jaGFyQXQoMCkrIlNwaWtlIl09Yi5jMnAoby5wb3MsITApLHMobCxmLG4pLG59ZS5leHBvcnRzPXtob3ZlclBvaW50czpmdW5jdGlvbih0LGUscixuKXt2YXIgYSxpPXQuY2RbMF0udHJhY2UuaG92ZXJvbixvPVtdO3JldHVybi0xIT09aS5pbmRleE9mKCJib3hlcyIpJiYobz1vLmNvbmNhdChsKHQsZSxyLG4pKSksLTEhPT1pLmluZGV4T2YoInBvaW50cyIpJiYoYT1jKHQsZSxyKSksImNsb3Nlc3QiPT09bj9hP1thXTpvOmE/KG8ucHVzaChhKSxvKTpvfSxob3Zlck9uQm94ZXM6bCxob3Zlck9uUG9pbnRzOmN9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjU5MiwiLi4vLi4vY29tcG9uZW50cy9meCI6NjMwLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjc2NX1dLDg4NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksbGF5b3V0QXR0cmlidXRlczp0KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLnN1cHBseURlZmF1bHRzLGNyb3NzVHJhY2VEZWZhdWx0czp0KCIuL2RlZmF1bHRzIikuY3Jvc3NUcmFjZURlZmF1bHRzLHN1cHBseUxheW91dERlZmF1bHRzOnQoIi4vbGF5b3V0X2RlZmF1bHRzIikuc3VwcGx5TGF5b3V0RGVmYXVsdHMsY2FsYzp0KCIuL2NhbGMiKSxjcm9zc1RyYWNlQ2FsYzp0KCIuL2Nyb3NzX3RyYWNlX2NhbGMiKS5jcm9zc1RyYWNlQ2FsYyxwbG90OnQoIi4vcGxvdCIpLnBsb3Qsc3R5bGU6dCgiLi9zdHlsZSIpLnN0eWxlLHN0eWxlT25TZWxlY3Q6dCgiLi9zdHlsZSIpLnN0eWxlT25TZWxlY3QsaG92ZXJQb2ludHM6dCgiLi9ob3ZlciIpLmhvdmVyUG9pbnRzLGV2ZW50RGF0YTp0KCIuL2V2ZW50X2RhdGEiKSxzZWxlY3RQb2ludHM6dCgiLi9zZWxlY3QiKSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToiYm94IixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxjYXRlZ29yaWVzOlsiY2FydGVzaWFuIiwic3ZnIiwic3ltYm9scyIsIm9yaWVudGVkIiwiYm94LXZpb2xpbiIsInNob3dMZWdlbmQiLCJib3hMYXlvdXQiLCJ6b29tU2NhbGUiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjc3NiwiLi9hdHRyaWJ1dGVzIjo4ODEsIi4vY2FsYyI6ODgyLCIuL2Nyb3NzX3RyYWNlX2NhbGMiOjg4MywiLi9kZWZhdWx0cyI6ODg0LCIuL2V2ZW50X2RhdGEiOjg4NSwiLi9ob3ZlciI6ODg2LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo4ODgsIi4vbGF5b3V0X2RlZmF1bHRzIjo4ODksIi4vcGxvdCI6ODkwLCIuL3NlbGVjdCI6ODkxLCIuL3N0eWxlIjo4OTJ9XSw4ODg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtib3htb2RlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJncm91cCIsIm92ZXJsYXkiXSxkZmx0OiJvdmVybGF5IixlZGl0VHlwZToiY2FsYyJ9LGJveGdhcDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0Oi4zLGVkaXRUeXBlOiJjYWxjIn0sYm94Z3JvdXBnYXA6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDouMyxlZGl0VHlwZToiY2FsYyJ9fX0se31dLDg4OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9yZWdpc3RyeSIpLGE9dCgiLi4vLi4vbGliIiksaT10KCIuL2xheW91dF9hdHRyaWJ1dGVzIik7ZnVuY3Rpb24gbyh0LGUscixhLGkpe2Zvcih2YXIgbz1pKyJMYXlvdXQiLHM9ITEsbD0wO2w8ci5sZW5ndGg7bCsrKXt2YXIgYz1yW2xdO2lmKG4udHJhY2VJcyhjLG8pKXtzPSEwO2JyZWFrfX1zJiYoYShpKyJtb2RlIiksYShpKyJnYXAiKSxhKGkrImdyb3VwZ2FwIikpfWUuZXhwb3J0cz17c3VwcGx5TGF5b3V0RGVmYXVsdHM6ZnVuY3Rpb24odCxlLHIpe28oMCwwLHIsZnVuY3Rpb24ocixuKXtyZXR1cm4gYS5jb2VyY2UodCxlLGkscixuKX0sImJveCIpfSxfc3VwcGx5Om99fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi8uLi9yZWdpc3RyeSI6ODQ2LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo4ODh9XSw4OTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxhPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksbz01LHM9LjAxO2Z1bmN0aW9uIGwodCxlLHIsaSl7dmFyIG8scyxsPWUucG9zLGM9ZS52YWwsdT1pLmJQb3MsaD1pLndkUG9zfHwwLGY9aS5iUG9zUHhPZmZzZXR8fDAscD1yLndoaXNrZXJ3aWR0aHx8MCxkPXIubm90Y2hlZHx8ITEsZz1kPzEtMipyLm5vdGNod2lkdGg6MTtBcnJheS5pc0FycmF5KGkuYmRQb3MpPyhvPWkuYmRQb3NbMF0scz1pLmJkUG9zWzFdKToobz1pLmJkUG9zLHM9aS5iZFBvcyk7dmFyIHY9dC5zZWxlY3RBbGwoInBhdGguYm94IikuZGF0YSgidmlvbGluIiE9PXIudHlwZXx8ci5ib3gudmlzaWJsZT9hLmlkZW50aXR5OltdKTt2LmVudGVyKCkuYXBwZW5kKCJwYXRoIikuc3R5bGUoInZlY3Rvci1lZmZlY3QiLCJub24tc2NhbGluZy1zdHJva2UiKS5hdHRyKCJjbGFzcyIsImJveCIpLHYuZXhpdCgpLnJlbW92ZSgpLHYuZWFjaChmdW5jdGlvbih0KXtpZih0LmVtcHR5KXJldHVybiJNMCwwWiI7dmFyIGU9bC5jMmwodC5wb3MrdSwhMCksaT1sLmwycChlKStmLHY9bC5sMnAoZS1vKStmLG09bC5sMnAoZStzKStmLHk9bC5sMnAoZS1oKStmLHg9bC5sMnAoZStoKStmLGI9bC5sMnAoZS1vKmcpK2YsXz1sLmwycChlK3MqZykrZix3PWMuYzJwKHQucTEsITApLGs9Yy5jMnAodC5xMywhMCksVD1hLmNvbnN0cmFpbihjLmMycCh0Lm1lZCwhMCksTWF0aC5taW4odyxrKSsxLE1hdGgubWF4KHcsayktMSksTT12b2lkIDA9PT10LmxmfHwhMT09PXIuYm94cG9pbnRzLEE9Yy5jMnAoTT90Lm1pbjp0LmxmLCEwKSxTPWMuYzJwKE0/dC5tYXg6dC51ZiwhMCksRT1jLmMycCh0LmxuLCEwKSxMPWMuYzJwKHQudW4sITApOyJoIj09PXIub3JpZW50YXRpb24/bi5zZWxlY3QodGhpcykuYXR0cigiZCIsIk0iK1QrIiwiK2IrIlYiK18rIk0iK3crIiwiK3YrIlYiK20rKGQ/IkgiK0UrIkwiK1QrIiwiK18rIkwiK0wrIiwiK206IiIpKyJIIitrKyJWIit2KyhkPyJIIitMKyJMIitUKyIsIitiKyJMIitFKyIsIit2OiIiKSsiWk0iK3crIiwiK2krIkgiK0ErIk0iK2srIiwiK2krIkgiK1MrKDA9PT1wPyIiOiJNIitBKyIsIit5KyJWIit4KyJNIitTKyIsIit5KyJWIit4KSk6bi5zZWxlY3QodGhpcykuYXR0cigiZCIsIk0iK2IrIiwiK1QrIkgiK18rIk0iK3YrIiwiK3crIkgiK20rKGQ/IlYiK0UrIkwiK18rIiwiK1QrIkwiK20rIiwiK0w6IiIpKyJWIitrKyJIIit2KyhkPyJWIitMKyJMIitiKyIsIitUKyJMIit2KyIsIitFOiIiKSsiWk0iK2krIiwiK3crIlYiK0ErIk0iK2krIiwiK2srIlYiK1MrKDA9PT1wPyIiOiJNIit5KyIsIitBKyJIIit4KyJNIit5KyIsIitTKyJIIit4KSl9KX1mdW5jdGlvbiBjKHQsZSxyLG4pe3ZhciBsPWUueCxjPWUueSx1PW4uYmRQb3MsaD1uLmJQb3MsZj1yLmJveHBvaW50c3x8ci5wb2ludHM7YS5zZWVkUHNldWRvUmFuZG9tKCk7dmFyIHA9dC5zZWxlY3RBbGwoImcucG9pbnRzIikuZGF0YShmP2Z1bmN0aW9uKHQpe3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24odCl7dC50PW4sdC50cmFjZT1yfSksdH06W10pO3AuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsInBvaW50cyIpLHAuZXhpdCgpLnJlbW92ZSgpO3ZhciBkPXAuc2VsZWN0QWxsKCJwYXRoIikuZGF0YShmdW5jdGlvbih0KXt2YXIgZSxuLGk9dC5wdHMyLGw9TWF0aC5tYXgoKHQubWF4LXQubWluKS8xMCx0LnEzLXQucTEpLGM9MWUtOSpsLHA9bCpzLGQ9W10sZz0wO2lmKHIuaml0dGVyKXtpZigwPT09bClmb3IoZz0xLGQ9bmV3IEFycmF5KGkubGVuZ3RoKSxlPTA7ZTxpLmxlbmd0aDtlKyspZFtlXT0xO2Vsc2UgZm9yKGU9MDtlPGkubGVuZ3RoO2UrKyl7dmFyIHY9TWF0aC5tYXgoMCxlLW8pLG09aVt2XS52LHk9TWF0aC5taW4oaS5sZW5ndGgtMSxlK28pLHg9aVt5XS52OyJhbGwiIT09ZiYmKGlbZV0udjx0LmxmP3g9TWF0aC5taW4oeCx0LmxmKTptPU1hdGgubWF4KG0sdC51ZikpO3ZhciBiPU1hdGguc3FydChwKih5LXYpLyh4LW0rYykpfHwwO2I9YS5jb25zdHJhaW4oTWF0aC5hYnMoYiksMCwxKSxkLnB1c2goYiksZz1NYXRoLm1heChiLGcpfW49MipyLmppdHRlci8oZ3x8MSl9Zm9yKGU9MDtlPGkubGVuZ3RoO2UrKyl7dmFyIF89aVtlXSx3PV8udixrPXIuaml0dGVyP24qZFtlXSooYS5wc2V1ZG9SYW5kb20oKS0uNSk6MCxUPXQucG9zK2grdSooci5wb2ludHBvcytrKTsiaCI9PT1yLm9yaWVudGF0aW9uPyhfLnk9VCxfLng9dyk6KF8ueD1ULF8ueT13KSwic3VzcGVjdGVkb3V0bGllcnMiPT09ZiYmdzx0LnVvJiZ3PnQubG8mJihfLnNvPSEwKX1yZXR1cm4gaX0pO2QuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJwb2ludCIsITApLGQuZXhpdCgpLnJlbW92ZSgpLGQuY2FsbChpLnRyYW5zbGF0ZVBvaW50cyxsLGMpfWZ1bmN0aW9uIHUodCxlLHIsaSl7dmFyIG8scyxsPWUucG9zLGM9ZS52YWwsdT1pLmJQb3MsaD1pLmJQb3NQeE9mZnNldHx8MCxmPXIuYm94bWVhbnx8KHIubWVhbmxpbmV8fHt9KS52aXNpYmxlO0FycmF5LmlzQXJyYXkoaS5iZFBvcyk/KG89aS5iZFBvc1swXSxzPWkuYmRQb3NbMV0pOihvPWkuYmRQb3Mscz1pLmJkUG9zKTt2YXIgcD10LnNlbGVjdEFsbCgicGF0aC5tZWFuIikuZGF0YSgiYm94Ij09PXIudHlwZSYmci5ib3htZWFufHwidmlvbGluIj09PXIudHlwZSYmci5ib3gudmlzaWJsZSYmci5tZWFubGluZS52aXNpYmxlP2EuaWRlbnRpdHk6W10pO3AuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5hdHRyKCJjbGFzcyIsIm1lYW4iKS5zdHlsZSh7ZmlsbDoibm9uZSIsInZlY3Rvci1lZmZlY3QiOiJub24tc2NhbGluZy1zdHJva2UifSkscC5leGl0KCkucmVtb3ZlKCkscC5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPWwuYzJsKHQucG9zK3UsITApLGE9bC5sMnAoZSkraCxpPWwubDJwKGUtbykraCxwPWwubDJwKGUrcykraCxkPWMuYzJwKHQubWVhbiwhMCksZz1jLmMycCh0Lm1lYW4tdC5zZCwhMCksdj1jLmMycCh0Lm1lYW4rdC5zZCwhMCk7ImgiPT09ci5vcmllbnRhdGlvbj9uLnNlbGVjdCh0aGlzKS5hdHRyKCJkIiwiTSIrZCsiLCIraSsiViIrcCsoInNkIj09PWY/Im0wLDBMIitnKyIsIithKyJMIitkKyIsIitpKyJMIit2KyIsIithKyJaIjoiIikpOm4uc2VsZWN0KHRoaXMpLmF0dHIoImQiLCJNIitpKyIsIitkKyJIIitwKygic2QiPT09Zj8ibTAsMEwiK2ErIiwiK2crIkwiK2krIiwiK2QrIkwiK2ErIiwiK3YrIloiOiIiKSl9KX1lLmV4cG9ydHM9e3Bsb3Q6ZnVuY3Rpb24odCxlLHIsaSl7dmFyIG89ZS54YXhpcyxzPWUueWF4aXM7YS5tYWtlVHJhY2VHcm91cHMoaSxyLCJ0cmFjZSBib3hlcyIpLmVhY2goZnVuY3Rpb24odCl7dmFyIGUscixhPW4uc2VsZWN0KHRoaXMpLGk9dFswXSxoPWkudCxmPWkudHJhY2U7aC53ZFBvcz1oLmJkUG9zKmYud2hpc2tlcndpZHRoLCEwIT09Zi52aXNpYmxlfHxoLmVtcHR5P2EucmVtb3ZlKCk6KCJoIj09PWYub3JpZW50YXRpb24/KGU9cyxyPW8pOihlPW8scj1zKSxsKGEse3BvczplLHZhbDpyfSxmLGgpLGMoYSx7eDpvLHk6c30sZixoKSx1KGEse3BvczplLHZhbDpyfSxmLGgpKX0pfSxwbG90Qm94QW5kV2hpc2tlcnM6bCxwbG90UG9pbnRzOmMscGxvdEJveE1lYW46dX19LHsiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo2MTMsIi4uLy4uL2xpYiI6NzE3LGQzOjE2NX1dLDg5MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixuLGE9dC5jZCxpPXQueGF4aXMsbz10LnlheGlzLHM9W107aWYoITE9PT1lKWZvcihyPTA7cjxhLmxlbmd0aDtyKyspZm9yKG49MDtuPChhW3JdLnB0c3x8W10pLmxlbmd0aDtuKyspYVtyXS5wdHNbbl0uc2VsZWN0ZWQ9MDtlbHNlIGZvcihyPTA7cjxhLmxlbmd0aDtyKyspZm9yKG49MDtuPChhW3JdLnB0c3x8W10pLmxlbmd0aDtuKyspe3ZhciBsPWFbcl0ucHRzW25dLGM9aS5jMnAobC54KSx1PW8uYzJwKGwueSk7ZS5jb250YWlucyhbYyx1XSxudWxsLGwuaSx0KT8ocy5wdXNoKHtwb2ludE51bWJlcjpsLmkseDppLmMyZChsLngpLHk6by5jMmQobC55KX0pLGwuc2VsZWN0ZWQ9MSk6bC5zZWxlY3RlZD0wfXJldHVybiBzfX0se31dLDg5MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIik7ZS5leHBvcnRzPXtzdHlsZTpmdW5jdGlvbih0LGUscil7dmFyIG89cnx8bi5zZWxlY3QodCkuc2VsZWN0QWxsKCJnLnRyYWNlLmJveGVzIik7by5zdHlsZSgib3BhY2l0eSIsZnVuY3Rpb24odCl7cmV0dXJuIHRbMF0udHJhY2Uub3BhY2l0eX0pLG8uZWFjaChmdW5jdGlvbihlKXt2YXIgcj1uLnNlbGVjdCh0aGlzKSxvPWVbMF0udHJhY2Uscz1vLmxpbmUud2lkdGg7ZnVuY3Rpb24gbCh0LGUscixuKXt0LnN0eWxlKCJzdHJva2Utd2lkdGgiLGUrInB4IikuY2FsbChhLnN0cm9rZSxyKS5jYWxsKGEuZmlsbCxuKX12YXIgYz1yLnNlbGVjdEFsbCgicGF0aC5ib3giKTtpZigiY2FuZGxlc3RpY2siPT09by50eXBlKWMuZWFjaChmdW5jdGlvbih0KXtpZighdC5lbXB0eSl7dmFyIGU9bi5zZWxlY3QodGhpcykscj1vW3QuZGlyXTtsKGUsci5saW5lLndpZHRoLHIubGluZS5jb2xvcixyLmZpbGxjb2xvciksZS5zdHlsZSgib3BhY2l0eSIsby5zZWxlY3RlZHBvaW50cyYmIXQuc2VsZWN0ZWQ/LjM6MSl9fSk7ZWxzZXtsKGMscyxvLmxpbmUuY29sb3Isby5maWxsY29sb3IpLHIuc2VsZWN0QWxsKCJwYXRoLm1lYW4iKS5zdHlsZSh7InN0cm9rZS13aWR0aCI6cywic3Ryb2tlLWRhc2hhcnJheSI6MipzKyJweCwiK3MrInB4In0pLmNhbGwoYS5zdHJva2Usby5saW5lLmNvbG9yKTt2YXIgdT1yLnNlbGVjdEFsbCgicGF0aC5wb2ludCIpO2kucG9pbnRTdHlsZSh1LG8sdCl9fSl9LHN0eWxlT25TZWxlY3Q6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWVbMF0udHJhY2UsYT1yLnNlbGVjdEFsbCgicGF0aC5wb2ludCIpO24uc2VsZWN0ZWRwb2ludHM/aS5zZWxlY3RlZFBvaW50U3R5bGUoYSxuKTppLnBvaW50U3R5bGUoYSxuLHQpfX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTkyLCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjYxMyxkMzoxNjV9XSw4OTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIikuZXh0ZW5kRmxhdCxhPXQoIi4uL29obGMvYXR0cmlidXRlcyIpLGk9dCgiLi4vYm94L2F0dHJpYnV0ZXMiKTtmdW5jdGlvbiBvKHQpe3JldHVybntsaW5lOntjb2xvcjpuKHt9LGkubGluZS5jb2xvcix7ZGZsdDp0fSksd2lkdGg6aS5saW5lLndpZHRoLGVkaXRUeXBlOiJzdHlsZSJ9LGZpbGxjb2xvcjppLmZpbGxjb2xvcixlZGl0VHlwZToic3R5bGUifX1lLmV4cG9ydHM9e3g6YS54LG9wZW46YS5vcGVuLGhpZ2g6YS5oaWdoLGxvdzphLmxvdyxjbG9zZTphLmNsb3NlLGxpbmU6e3dpZHRoOm4oe30saS5saW5lLndpZHRoLHt9KSxlZGl0VHlwZToic3R5bGUifSxpbmNyZWFzaW5nOm8oYS5pbmNyZWFzaW5nLmxpbmUuY29sb3IuZGZsdCksZGVjcmVhc2luZzpvKGEuZGVjcmVhc2luZy5saW5lLmNvbG9yLmRmbHQpLHRleHQ6YS50ZXh0LGhvdmVydGV4dDphLmhvdmVydGV4dCx3aGlza2Vyd2lkdGg6bih7fSxpLndoaXNrZXJ3aWR0aCx7ZGZsdDowfSksaG92ZXJsYWJlbDphLmhvdmVybGFiZWx9fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi9ib3gvYXR0cmlidXRlcyI6ODgxLCIuLi9vaGxjL2F0dHJpYnV0ZXMiOjEwNjZ9XSw4OTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGk9dCgiLi4vb2hsYy9jYWxjIikuY2FsY0NvbW1vbjtmdW5jdGlvbiBvKHQsZSxyLG4pe3JldHVybnttaW46cixxMTpNYXRoLm1pbih0LG4pLG1lZDpuLHEzOk1hdGgubWF4KHQsbiksbWF4OmV9fWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQuX2Z1bGxMYXlvdXQscz1hLmdldEZyb21JZCh0LGUueGF4aXMpLGw9YS5nZXRGcm9tSWQodCxlLnlheGlzKSxjPXMubWFrZUNhbGNkYXRhKGUsIngiKSx1PWkodCxlLGMsbCxvKTtyZXR1cm4gdS5sZW5ndGg/KG4uZXh0ZW5kRmxhdCh1WzBdLnQse251bTpyLl9udW1Cb3hlcyxkUG9zOm4uZGlzdGluY3RWYWxzKGMpLm1pbkRpZmYvMixwb3NMZXR0ZXI6IngiLHZhbExldHRlcjoieSJ9KSxyLl9udW1Cb3hlcysrLHUpOlt7dDp7ZW1wdHk6ITB9fV19fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NzY1LCIuLi9vaGxjL2NhbGMiOjEwNjd9XSw4OTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksaT10KCIuLi9vaGxjL29obGNfZGVmYXVsdHMiKSxvPXQoIi4vYXR0cmlidXRlcyIpO2Z1bmN0aW9uIHModCxlLHIsbil7dmFyIGk9cihuKyIubGluZS5jb2xvciIpO3IobisiLmxpbmUud2lkdGgiLGUubGluZS53aWR0aCkscihuKyIuZmlsbGNvbG9yIixhLmFkZE9wYWNpdHkoaSwuNSkpfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhKXtmdW5jdGlvbiBsKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxvLHIsYSl9aSh0LGUsbCxhKT8obCgibGluZS53aWR0aCIpLHModCxlLGwsImluY3JlYXNpbmciKSxzKHQsZSxsLCJkZWNyZWFzaW5nIiksbCgidGV4dCIpLGwoImhvdmVydGV4dCIpLGwoIndoaXNrZXJ3aWR0aCIpLGEuX3JlcXVlc3RSYW5nZXNsaWRlcltlLnhheGlzXT0hMCk6ZS52aXNpYmxlPSExfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo1OTIsIi4uLy4uL2xpYiI6NzE3LCIuLi9vaGxjL29obGNfZGVmYXVsdHMiOjEwNzEsIi4vYXR0cmlidXRlcyI6ODkzfV0sODk2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bW9kdWxlVHlwZToidHJhY2UiLG5hbWU6ImNhbmRsZXN0aWNrIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxjYXRlZ29yaWVzOlsiY2FydGVzaWFuIiwic3ZnIiwic2hvd0xlZ2VuZCIsImNhbmRsZXN0aWNrIiwiYm94TGF5b3V0Il0sbWV0YTp7fSxhdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLGxheW91dEF0dHJpYnV0ZXM6dCgiLi4vYm94L2xheW91dF9hdHRyaWJ1dGVzIiksc3VwcGx5TGF5b3V0RGVmYXVsdHM6dCgiLi4vYm94L2xheW91dF9kZWZhdWx0cyIpLnN1cHBseUxheW91dERlZmF1bHRzLGNyb3NzVHJhY2VDYWxjOnQoIi4uL2JveC9jcm9zc190cmFjZV9jYWxjIikuY3Jvc3NUcmFjZUNhbGMsc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNhbGM6dCgiLi9jYWxjIikscGxvdDp0KCIuLi9ib3gvcGxvdCIpLnBsb3QsbGF5ZXJOYW1lOiJib3hsYXllciIsc3R5bGU6dCgiLi4vYm94L3N0eWxlIikuc3R5bGUsaG92ZXJQb2ludHM6dCgiLi4vb2hsYy9ob3ZlciIpLmhvdmVyUG9pbnRzLHNlbGVjdFBvaW50czp0KCIuLi9vaGxjL3NlbGVjdCIpfX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjc3NiwiLi4vYm94L2Nyb3NzX3RyYWNlX2NhbGMiOjg4MywiLi4vYm94L2xheW91dF9hdHRyaWJ1dGVzIjo4ODgsIi4uL2JveC9sYXlvdXRfZGVmYXVsdHMiOjg4OSwiLi4vYm94L3Bsb3QiOjg5MCwiLi4vYm94L3N0eWxlIjo4OTIsIi4uL29obGMvaG92ZXIiOjEwNjksIi4uL29obGMvc2VsZWN0IjoxMDczLCIuL2F0dHJpYnV0ZXMiOjg5MywiLi9jYWxjIjo4OTQsIi4vZGVmYXVsdHMiOjg5NX1dLDg5NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2F4aXNfZGVmYXVsdHMiKSxhPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaSxvKXtpKCJhIil8fChpKCJkYSIpLGkoImEwIikpLGkoImIiKXx8KGkoImRiIiksaSgiYjAiKSksZnVuY3Rpb24odCxlLHIsaSl7WyJhYXhpcyIsImJheGlzIl0uZm9yRWFjaChmdW5jdGlvbihvKXt2YXIgcz1vLmNoYXJBdCgwKSxsPXRbb118fHt9LGM9YS5uZXdDb250YWluZXIoZSxvKSx1PXt0aWNrZm9udDoieCIsaWQ6cysiYXhpcyIsbGV0dGVyOnMsZm9udDplLmZvbnQsbmFtZTpvLGRhdGE6dFtzXSxjYWxlbmRhcjplLmNhbGVuZGFyLGRmbHRDb2xvcjppLGJnQ29sb3I6ci5wYXBlcl9iZ2NvbG9yLGZ1bGxMYXlvdXQ6cn07bihsLGMsdSksYy5fY2F0ZWdvcmllcz1jLl9jYXRlZ29yaWVzfHxbXSx0W29dfHwiLSI9PT1sLnR5cGV8fCh0W29dPXt0eXBlOmwudHlwZX0pfSl9KHQsZSxyLG8pfX0seyIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo3NTUsIi4vYXhpc19kZWZhdWx0cyI6OTAyfV0sODk4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLmlzQXJyYXlPclR5cGVkQXJyYXk7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbiB0KGUscil7aWYoIW4oZSl8fHI+PTEwKXJldHVybiBudWxsO3ZhciBhPTEvMDt2YXIgaT0tMS8wO3ZhciBvPWUubGVuZ3RoO2Zvcih2YXIgcz0wO3M8bztzKyspe3ZhciBsPWVbc107aWYobihsKSl7dmFyIGM9dChsLHIrMSk7YyYmKGE9TWF0aC5taW4oY1swXSxhKSxpPU1hdGgubWF4KGNbMV0saSkpfWVsc2UgYT1NYXRoLm1pbihsLGEpLGk9TWF0aC5tYXgobCxpKX1yZXR1cm5bYSxpXX0odCwwKX19LHsiLi4vLi4vbGliIjo3MTd9XSw4OTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIiksYT10KCIuL2F4aXNfYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIiksbz1uKHtlZGl0VHlwZToiY2FsYyJ9KTtvLmZhbWlseS5kZmx0PSciT3BlbiBTYW5zIiwgdmVyZGFuYSwgYXJpYWwsIHNhbnMtc2VyaWYnLG8uc2l6ZS5kZmx0PTEyLG8uY29sb3IuZGZsdD1pLmRlZmF1bHRMaW5lLGUuZXhwb3J0cz17Y2FycGV0Ont2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJjYWxjIn0seDp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSx5Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LGE6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sYTA6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDowLGVkaXRUeXBlOiJjYWxjIn0sZGE6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoxLGVkaXRUeXBlOiJjYWxjIn0sYjp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxiMDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjAsZWRpdFR5cGU6ImNhbGMifSxkYjp7dmFsVHlwZToibnVtYmVyIixkZmx0OjEsZWRpdFR5cGU6ImNhbGMifSxjaGVhdGVyc2xvcGU6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoxLGVkaXRUeXBlOiJjYWxjIn0sYWF4aXM6YSxiYXhpczphLGZvbnQ6byxjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6aS5kZWZhdWx0TGluZSxlZGl0VHlwZToicGxvdCJ9LHRyYW5zZm9ybXM6dm9pZCAwfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiOjU5MSwiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIjo3OTEsIi4vYXhpc19hdHRyaWJ1dGVzIjo5MDF9XSw5MDA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIikuaXNBcnJheU9yVHlwZWRBcnJheTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSl7dmFyIGksbyxzLGwsYyx1LGgsZixwLGQsZyx2LG0seT1uKHIpPyJhIjoiYiIseD0oImEiPT09eT90LmFheGlzOnQuYmF4aXMpLnNtb290aGluZyxiPSJhIj09PXk/dC5hMmk6dC5iMmosXz0iYSI9PT15P3I6YSx3PSJhIj09PXk/YTpyLGs9ImEiPT09eT9lLmEubGVuZ3RoOmUuYi5sZW5ndGgsVD0iYSI9PT15P2UuYi5sZW5ndGg6ZS5hLmxlbmd0aCxNPU1hdGguZmxvb3IoImEiPT09eT90LmIyaih3KTp0LmEyaSh3KSksQT0iYSI9PT15P2Z1bmN0aW9uKGUpe3JldHVybiB0LmV2YWx4eShbXSxlLE0pfTpmdW5jdGlvbihlKXtyZXR1cm4gdC5ldmFseHkoW10sTSxlKX07eCYmKHM9TWF0aC5tYXgoMCxNYXRoLm1pbihULTIsTSkpLGw9TS1zLG89ImEiPT09eT9mdW5jdGlvbihlLHIpe3JldHVybiB0LmR4eWRpKFtdLGUscyxyLGwpfTpmdW5jdGlvbihlLHIpe3JldHVybiB0LmR4eWRqKFtdLHMsZSxsLHIpfSk7dmFyIFM9YihfWzBdKSxFPWIoX1sxXSksTD1TPEU/MTotMSxDPTFlLTgqKEUtUyksUD1MPjA/TWF0aC5mbG9vcjpNYXRoLmNlaWwsTz1MPjA/TWF0aC5jZWlsOk1hdGguZmxvb3Isej1MPjA/TWF0aC5taW46TWF0aC5tYXgsST1MPjA/TWF0aC5tYXg6TWF0aC5taW4sRD1QKFMrQyksUj1PKEUtQyksRj1bW2g9QShTKV1dO2ZvcihpPUQ7aSpMPFIqTDtpKz1MKWM9W10sZz1JKFMsaSksbT0odj16KEUsaStMKSktZyx1PU1hdGgubWF4KDAsTWF0aC5taW4oay0yLE1hdGguZmxvb3IoLjUqKGcrdikpKSksZj1BKHYpLHgmJihwPW8odSxnLXUpLGQ9byh1LHYtdSksYy5wdXNoKFtoWzBdK3BbMF0vMyptLGhbMV0rcFsxXS8zKm1dKSxjLnB1c2goW2ZbMF0tZFswXS8zKm0sZlsxXS1kWzFdLzMqbV0pKSxjLnB1c2goZiksRi5wdXNoKGMpLGg9ZjtyZXR1cm4gRn19LHsiLi4vLi4vbGliIjo3MTd9XSw5MDE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9sYXlvdXRfYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyIpLm92ZXJyaWRlQWxsO3QoIi4uLy4uL2NvbnN0YW50cy9kb2NzIikuRk9STUFUX0xJTkssdCgiLi4vLi4vY29uc3RhbnRzL2RvY3MiKS5USU1FX0ZPUk1BVF9MSU5LO2UuZXhwb3J0cz17Y29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToiY2FsYyJ9LHNtb290aGluZzp7dmFsVHlwZToibnVtYmVyIixkZmx0OjEsbWluOjAsbWF4OjEuMyxlZGl0VHlwZToiY2FsYyJ9LHRpdGxlOnt0ZXh0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6ImNhbGMifSxmb250Om4oe2VkaXRUeXBlOiJjYWxjIn0pLG9mZnNldDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjEwLGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMifSx0eXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyItIiwibGluZWFyIiwiZGF0ZSIsImNhdGVnb3J5Il0sZGZsdDoiLSIsZWRpdFR5cGU6ImNhbGMifSxhdXRvcmFuZ2U6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbITAsITEsInJldmVyc2VkIl0sZGZsdDohMCxlZGl0VHlwZToiY2FsYyJ9LHJhbmdlbW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsibm9ybWFsIiwidG96ZXJvIiwibm9ubmVnYXRpdmUiXSxkZmx0OiJub3JtYWwiLGVkaXRUeXBlOiJjYWxjIn0scmFuZ2U6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGVkaXRUeXBlOiJjYWxjIixpdGVtczpbe3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImNhbGMifSx7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYyJ9XX0sZml4ZWRyYW5nZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMSxlZGl0VHlwZToiY2FsYyJ9LGNoZWF0ZXJ0eXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJpbmRleCIsInZhbHVlIl0sZGZsdDoidmFsdWUiLGVkaXRUeXBlOiJjYWxjIn0sdGlja21vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImxpbmVhciIsImFycmF5Il0sZGZsdDoiYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sbnRpY2tzOnt2YWxUeXBlOiJpbnRlZ2VyIixtaW46MCxkZmx0OjAsZWRpdFR5cGU6ImNhbGMifSx0aWNrdmFsczp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSx0aWNrdGV4dDp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxzaG93dGlja2xhYmVsczp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsic3RhcnQiLCJlbmQiLCJib3RoIiwibm9uZSJdLGRmbHQ6InN0YXJ0IixlZGl0VHlwZToiY2FsYyJ9LHRpY2tmb250Om4oe2VkaXRUeXBlOiJjYWxjIn0pLHRpY2thbmdsZTp7dmFsVHlwZToiYW5nbGUiLGRmbHQ6ImF1dG8iLGVkaXRUeXBlOiJjYWxjIn0sdGlja3ByZWZpeDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGVkaXRUeXBlOiJjYWxjIn0sc2hvd3RpY2twcmVmaXg6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImFsbCIsImZpcnN0IiwibGFzdCIsIm5vbmUiXSxkZmx0OiJhbGwiLGVkaXRUeXBlOiJjYWxjIn0sdGlja3N1ZmZpeDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGVkaXRUeXBlOiJjYWxjIn0sc2hvd3RpY2tzdWZmaXg6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImFsbCIsImZpcnN0IiwibGFzdCIsIm5vbmUiXSxkZmx0OiJhbGwiLGVkaXRUeXBlOiJjYWxjIn0sc2hvd2V4cG9uZW50Ont2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhbGwiLCJmaXJzdCIsImxhc3QiLCJub25lIl0sZGZsdDoiYWxsIixlZGl0VHlwZToiY2FsYyJ9LGV4cG9uZW50Zm9ybWF0Ont2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJub25lIiwiZSIsIkUiLCJwb3dlciIsIlNJIiwiQiJdLGRmbHQ6IkIiLGVkaXRUeXBlOiJjYWxjIn0sc2VwYXJhdGV0aG91c2FuZHM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITEsZWRpdFR5cGU6ImNhbGMifSx0aWNrZm9ybWF0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6ImNhbGMifSx0aWNrZm9ybWF0c3RvcHM6byhpLnRpY2tmb3JtYXRzdG9wcywiY2FsYyIsImZyb20tcm9vdCIpLGNhdGVnb3J5b3JkZXI6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInRyYWNlIiwiY2F0ZWdvcnkgYXNjZW5kaW5nIiwiY2F0ZWdvcnkgZGVzY2VuZGluZyIsImFycmF5Il0sZGZsdDoidHJhY2UiLGVkaXRUeXBlOiJjYWxjIn0sY2F0ZWdvcnlhcnJheTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxsYWJlbHBhZGRpbmc6e3ZhbFR5cGU6ImludGVnZXIiLGRmbHQ6MTAsZWRpdFR5cGU6ImNhbGMifSxsYWJlbHByZWZpeDp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToiY2FsYyJ9LGxhYmVsc3VmZml4Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6ImNhbGMifSxzaG93bGluZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMSxlZGl0VHlwZToiY2FsYyJ9LGxpbmVjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6YS5kZWZhdWx0TGluZSxlZGl0VHlwZToiY2FsYyJ9LGxpbmV3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjEsZWRpdFR5cGU6ImNhbGMifSxncmlkY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToiY2FsYyJ9LGdyaWR3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjEsZWRpdFR5cGU6ImNhbGMifSxzaG93Z3JpZDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToiY2FsYyJ9LG1pbm9yZ3JpZGNvdW50Ont2YWxUeXBlOiJpbnRlZ2VyIixtaW46MCxkZmx0OjAsZWRpdFR5cGU6ImNhbGMifSxtaW5vcmdyaWR3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjEsZWRpdFR5cGU6ImNhbGMifSxtaW5vcmdyaWRjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6YS5saWdodExpbmUsZWRpdFR5cGU6ImNhbGMifSxzdGFydGxpbmU6e3ZhbFR5cGU6ImJvb2xlYW4iLGVkaXRUeXBlOiJjYWxjIn0sc3RhcnRsaW5lY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToiY2FsYyJ9LHN0YXJ0bGluZXdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MSxlZGl0VHlwZToiY2FsYyJ9LGVuZGxpbmU6e3ZhbFR5cGU6ImJvb2xlYW4iLGVkaXRUeXBlOiJjYWxjIn0sZW5kbGluZXdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MSxlZGl0VHlwZToiY2FsYyJ9LGVuZGxpbmVjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJjYWxjIn0sdGljazA6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDowLGVkaXRUeXBlOiJjYWxjIn0sZHRpY2s6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxLGVkaXRUeXBlOiJjYWxjIn0sYXJyYXl0aWNrMDp7dmFsVHlwZToiaW50ZWdlciIsbWluOjAsZGZsdDowLGVkaXRUeXBlOiJjYWxjIn0sYXJyYXlkdGljazp7dmFsVHlwZToiaW50ZWdlciIsbWluOjEsZGZsdDoxLGVkaXRUeXBlOiJjYWxjIn0sX2RlcHJlY2F0ZWQ6e3RpdGxlOnt2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJjYWxjIn0sdGl0bGVmb250Om4oe2VkaXRUeXBlOiJjYWxjIn0pLHRpdGxlb2Zmc2V0Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MTAsZWRpdFR5cGU6ImNhbGMifX0sZWRpdFR5cGU6ImNhbGMifX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiOjU5MSwiLi4vLi4vY29uc3RhbnRzL2RvY3MiOjY4OCwiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyI6NzQ4LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vbGF5b3V0X2F0dHJpYnV0ZXMiOjc3NywiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIjo3OTF9XSw5MDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIikuYWRkT3BhY2l0eSxpPXQoIi4uLy4uL3JlZ2lzdHJ5Iiksbz10KCIuLi8uLi9saWIiKSxzPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi90aWNrX3ZhbHVlX2RlZmF1bHRzIiksbD10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vdGlja19sYWJlbF9kZWZhdWx0cyIpLGM9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2NhdGVnb3J5X29yZGVyX2RlZmF1bHRzIiksdT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vc2V0X2NvbnZlcnQiKSxoPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2F1dG90eXBlIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgZj1yLmxldHRlcixwPXIuZm9udHx8e30sZD1uW2YrImF4aXMiXTtmdW5jdGlvbiBnKHIsbil7cmV0dXJuIG8uY29lcmNlKHQsZSxkLHIsbil9ZnVuY3Rpb24gdihyLG4pe3JldHVybiBvLmNvZXJjZTIodCxlLGQscixuKX1yLm5hbWUmJihlLl9uYW1lPXIubmFtZSxlLl9pZD1yLm5hbWUpO3ZhciBtPWcoInR5cGUiKTsoIi0iPT09bSYmKHIuZGF0YSYmZnVuY3Rpb24odCxlKXtpZigiLSIhPT10LnR5cGUpcmV0dXJuO3ZhciByPXQuX2lkLmNoYXJBdCgwKSxuPXRbcisiY2FsZW5kYXIiXTt0LnR5cGU9aChlLG4pfShlLHIuZGF0YSksIi0iPT09ZS50eXBlP2UudHlwZT0ibGluZWFyIjptPXQudHlwZT1lLnR5cGUpLGcoInNtb290aGluZyIpLGcoImNoZWF0ZXJ0eXBlIiksZygic2hvd3RpY2tsYWJlbHMiKSxnKCJsYWJlbHByZWZpeCIsZisiID0gIiksZygibGFiZWxzdWZmaXgiKSxnKCJzaG93dGlja3ByZWZpeCIpLGcoInNob3d0aWNrc3VmZml4IiksZygic2VwYXJhdGV0aG91c2FuZHMiKSxnKCJ0aWNrZm9ybWF0IiksZygiZXhwb25lbnRmb3JtYXQiKSxnKCJzaG93ZXhwb25lbnQiKSxnKCJjYXRlZ29yeW9yZGVyIiksZygidGlja21vZGUiKSxnKCJ0aWNrdmFscyIpLGcoInRpY2t0ZXh0IiksZygidGljazAiKSxnKCJkdGljayIpLCJhcnJheSI9PT1lLnRpY2ttb2RlJiYoZygiYXJyYXl0aWNrMCIpLGcoImFycmF5ZHRpY2siKSksZygibGFiZWxwYWRkaW5nIiksZS5faG92ZXJ0aXRsZT1mLCJkYXRlIj09PW0pJiZpLmdldENvbXBvbmVudE1ldGhvZCgiY2FsZW5kYXJzIiwiaGFuZGxlRGVmYXVsdHMiKSh0LGUsImNhbGVuZGFyIixyLmNhbGVuZGFyKTt1KGUsci5mdWxsTGF5b3V0KSxlLmMycD1vLmlkZW50aXR5O3ZhciB5PWcoImNvbG9yIixyLmRmbHRDb2xvcikseD15PT09dC5jb2xvcj95OnAuY29sb3I7ZygidGl0bGUudGV4dCIpJiYoby5jb2VyY2VGb250KGcsInRpdGxlLmZvbnQiLHtmYW1pbHk6cC5mYW1pbHksc2l6ZTpNYXRoLnJvdW5kKDEuMipwLnNpemUpLGNvbG9yOnh9KSxnKCJ0aXRsZS5vZmZzZXQiKSksZygidGlja2FuZ2xlIiksZygiYXV0b3JhbmdlIiwhZS5pc1ZhbGlkUmFuZ2UodC5yYW5nZSkpJiZnKCJyYW5nZW1vZGUiKSxnKCJyYW5nZSIpLGUuY2xlYW5SYW5nZSgpLGcoImZpeGVkcmFuZ2UiKSxzKHQsZSxnLG0pLGwodCxlLGcsbSxyKSxjKHQsZSxnLHtkYXRhOnIuZGF0YSxkYXRhQXR0cjpmfSk7dmFyIGI9digiZ3JpZGNvbG9yIixhKHksLjMpKSxfPXYoImdyaWR3aWR0aCIpLHc9Zygic2hvd2dyaWQiKTt3fHwoZGVsZXRlIGUuZ3JpZGNvbG9yLGRlbGV0ZSBlLmdyaWR3aWR0aCk7dmFyIGs9digic3RhcnRsaW5lY29sb3IiLHkpLFQ9digic3RhcnRsaW5ld2lkdGgiLF8pO2coInN0YXJ0bGluZSIsZS5zaG93Z3JpZHx8ISFrfHwhIVQpfHwoZGVsZXRlIGUuc3RhcnRsaW5lY29sb3IsZGVsZXRlIGUuc3RhcnRsaW5ld2lkdGgpO3ZhciBNPXYoImVuZGxpbmVjb2xvciIseSksQT12KCJlbmRsaW5ld2lkdGgiLF8pO3JldHVybiBnKCJlbmRsaW5lIixlLnNob3dncmlkfHwhIU18fCEhQSl8fChkZWxldGUgZS5lbmRsaW5lY29sb3IsZGVsZXRlIGUuZW5kbGluZXdpZHRoKSx3PyhnKCJtaW5vcmdyaWRjb3VudCIpLGcoIm1pbm9yZ3JpZHdpZHRoIixfKSxnKCJtaW5vcmdyaWRjb2xvciIsYShiLC4wNikpLGUubWlub3JncmlkY291bnR8fChkZWxldGUgZS5taW5vcmdyaWR3aWR0aCxkZWxldGUgZS5taW5vcmdyaWRjb2xvcikpOihkZWxldGUgZS5ncmlkY29sb3IsZGVsZXRlIGUuZ3JpZFdpZHRoKSwibm9uZSI9PT1lLnNob3d0aWNrbGFiZWxzJiYoZGVsZXRlIGUudGlja2ZvbnQsZGVsZXRlIGUudGlja2FuZ2xlLGRlbGV0ZSBlLnNob3dleHBvbmVudCxkZWxldGUgZS5leHBvbmVudGZvcm1hdCxkZWxldGUgZS50aWNrZm9ybWF0LGRlbGV0ZSBlLnNob3d0aWNrc3VmZml4LGRlbGV0ZSBlLnNob3d0aWNrcHJlZml4KSxlLnNob3d0aWNrc3VmZml4fHxkZWxldGUgZS50aWNrc3VmZml4LGUuc2hvd3RpY2twcmVmaXh8fGRlbGV0ZSBlLnRpY2twcmVmaXgsZygidGlja21vZGUiKSxlfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo1OTIsIi4uLy4uL2xpYiI6NzE3LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19hdXRvdHlwZSI6NzY2LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vY2F0ZWdvcnlfb3JkZXJfZGVmYXVsdHMiOjc2OSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL3NldF9jb252ZXJ0Ijo3ODMsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi90aWNrX2xhYmVsX2RlZmF1bHRzIjo3ODQsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi90aWNrX3ZhbHVlX2RlZmF1bHRzIjo3ODYsIi4uLy4uL3JlZ2lzdHJ5Ijo4NDYsIi4vYXR0cmlidXRlcyI6ODk5fV0sOTAzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksYT10KCIuLi8uLi9saWIiKS5pc0FycmF5MUQsaT10KCIuL2NoZWF0ZXJfYmFzaXMiKSxvPXQoIi4vYXJyYXlfbWlubWF4Iikscz10KCIuL2NhbGNfZ3JpZGxpbmVzIiksbD10KCIuL2NhbGNfbGFiZWxzIiksYz10KCIuL2NhbGNfY2xpcHBhdGgiKSx1PXQoIi4uL2hlYXRtYXAvY2xlYW5fMmRfYXJyYXkiKSxoPXQoIi4vc21vb3RoX2ZpbGxfMmRfYXJyYXkiKSxmPXQoIi4uL2hlYXRtYXAvY29udmVydF9jb2x1bW5feHl6IikscD10KCIuL3NldF9jb252ZXJ0Iik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bi5nZXRGcm9tSWQodCxlLnhheGlzKSxkPW4uZ2V0RnJvbUlkKHQsZS55YXhpcyksZz1lLmFheGlzLHY9ZS5iYXhpcyxtPWUueCx5PWUueSx4PVtdO20mJmEobSkmJngucHVzaCgieCIpLHkmJmEoeSkmJngucHVzaCgieSIpLHgubGVuZ3RoJiZmKGUsZyx2LCJhIiwiYiIseCk7dmFyIGI9ZS5fYT1lLl9hfHxlLmEsXz1lLl9iPWUuX2J8fGUuYjttPWUuX3h8fGUueCx5PWUuX3l8fGUueTt2YXIgdz17fTtpZihlLl9jaGVhdGVyKXt2YXIgaz0iaW5kZXgiPT09Zy5jaGVhdGVydHlwZT9iLmxlbmd0aDpiLFQ9ImluZGV4Ij09PXYuY2hlYXRlcnR5cGU/Xy5sZW5ndGg6XzttPWkoayxULGUuY2hlYXRlcnNsb3BlKX1lLl94PW09dShtKSxlLl95PXk9dSh5KSxoKG0sYixfKSxoKHksYixfKSxwKGUpLGUuc2V0U2NhbGUoKTt2YXIgTT1vKG0pLEE9byh5KSxTPS41KihNWzFdLU1bMF0pLEU9LjUqKE1bMV0rTVswXSksTD0uNSooQVsxXS1BWzBdKSxDPS41KihBWzFdK0FbMF0pO3JldHVybiBNPVtFLTEuMypTLEUrMS4zKlNdLEE9W0MtMS4zKkwsQysxLjMqTF0sZS5fZXh0cmVtZXNbci5faWRdPW4uZmluZEV4dHJlbWVzKHIsTSx7cGFkZGVkOiEwfSksZS5fZXh0cmVtZXNbZC5faWRdPW4uZmluZEV4dHJlbWVzKGQsQSx7cGFkZGVkOiEwfSkscyhlLCJhIiwiYiIpLHMoZSwiYiIsImEiKSxsKGUsZyksbChlLHYpLHcuY2xpcHNlZ21lbnRzPWMoZS5feGN0cmwsZS5feWN0cmwsZyx2KSx3Lng9bSx3Lnk9eSx3LmE9Yix3LmI9Xyxbd119fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NzY1LCIuLi9oZWF0bWFwL2NsZWFuXzJkX2FycmF5IjoxMDAyLCIuLi9oZWF0bWFwL2NvbnZlcnRfY29sdW1uX3h5eiI6MTAwNCwiLi9hcnJheV9taW5tYXgiOjg5OCwiLi9jYWxjX2NsaXBwYXRoIjo5MDQsIi4vY2FsY19ncmlkbGluZXMiOjkwNSwiLi9jYWxjX2xhYmVscyI6OTA2LCIuL2NoZWF0ZXJfYmFzaXMiOjkwOCwiLi9zZXRfY29udmVydCI6OTIxLCIuL3Ntb290aF9maWxsXzJkX2FycmF5Ijo5MjJ9XSw5MDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhLGksbyxzPVtdLGw9ISFyLnNtb290aGluZyxjPSEhbi5zbW9vdGhpbmcsdT10WzBdLmxlbmd0aC0xLGg9dC5sZW5ndGgtMTtmb3IoYT0wLGk9W10sbz1bXTthPD11O2ErKylpW2FdPXRbMF1bYV0sb1thXT1lWzBdW2FdO2ZvcihzLnB1c2goe3g6aSx5Om8sYmljdWJpYzpsfSksYT0wLGk9W10sbz1bXTthPD1oO2ErKylpW2FdPXRbYV1bdV0sb1thXT1lW2FdW3VdO2ZvcihzLnB1c2goe3g6aSx5Om8sYmljdWJpYzpjfSksYT11LGk9W10sbz1bXTthPj0wO2EtLSlpW3UtYV09dFtoXVthXSxvW3UtYV09ZVtoXVthXTtmb3Iocy5wdXNoKHt4OmkseTpvLGJpY3ViaWM6bH0pLGE9aCxpPVtdLG89W107YT49MDthLS0paVtoLWFdPXRbYV1bMF0sb1toLWFdPWVbYV1bMF07cmV0dXJuIHMucHVzaCh7eDppLHk6byxiaWN1YmljOmN9KSxzfX0se31dLDkwNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGE9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQ7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaSxvLHMsbCxjLHUsaCxmLHAsZCxnLHYsbSx5LHg9dFsiXyIrZV0sYj10W2UrImF4aXMiXSxfPWIuX2dyaWRsaW5lcz1bXSx3PWIuX21pbm9yZ3JpZGxpbmVzPVtdLGs9Yi5fYm91bmRhcnlsaW5lcz1bXSxUPXRbIl8iK3JdLE09dFtyKyJheGlzIl07ImFycmF5Ij09PWIudGlja21vZGUmJihiLnRpY2t2YWxzPXguc2xpY2UoKSk7dmFyIEE9dC5feGN0cmwsUz10Ll95Y3RybCxFPUFbMF0ubGVuZ3RoLEw9QS5sZW5ndGgsQz10Ll9hLmxlbmd0aCxQPXQuX2IubGVuZ3RoO24ucHJlcFRpY2tzKGIpLCJhcnJheSI9PT1iLnRpY2ttb2RlJiZkZWxldGUgYi50aWNrdmFsczt2YXIgTz1iLnNtb290aGluZz8zOjE7ZnVuY3Rpb24geihuKXt2YXIgYSxpLG8scyxsLGMsdSxoLHAsZCxnLHYsbT1bXSx5PVtdLHg9e307aWYoImIiPT09ZSlmb3IoaT10LmIyaihuKSxvPU1hdGguZmxvb3IoTWF0aC5tYXgoMCxNYXRoLm1pbihQLTIsaSkpKSxzPWktbyx4Lmxlbmd0aD1QLHguY3Jvc3NMZW5ndGg9Qyx4Lnh5PWZ1bmN0aW9uKGUpe3JldHVybiB0LmV2YWx4eShbXSxlLGkpfSx4LmR4eT1mdW5jdGlvbihlLHIpe3JldHVybiB0LmR4eWRpKFtdLGUsbyxyLHMpfSxhPTA7YTxDO2ErKyljPU1hdGgubWluKEMtMixhKSx1PWEtYyxoPXQuZXZhbHh5KFtdLGEsaSksTS5zbW9vdGhpbmcmJmE+MCYmKHA9dC5keHlkaShbXSxhLTEsbywwLHMpLG0ucHVzaChsWzBdK3BbMF0vMykseS5wdXNoKGxbMV0rcFsxXS8zKSxkPXQuZHh5ZGkoW10sYS0xLG8sMSxzKSxtLnB1c2goaFswXS1kWzBdLzMpLHkucHVzaChoWzFdLWRbMV0vMykpLG0ucHVzaChoWzBdKSx5LnB1c2goaFsxXSksbD1oO2Vsc2UgZm9yKGE9dC5hMmkobiksYz1NYXRoLmZsb29yKE1hdGgubWF4KDAsTWF0aC5taW4oQy0yLGEpKSksdT1hLWMseC5sZW5ndGg9Qyx4LmNyb3NzTGVuZ3RoPVAseC54eT1mdW5jdGlvbihlKXtyZXR1cm4gdC5ldmFseHkoW10sYSxlKX0seC5keHk9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gdC5keHlkaihbXSxjLGUsdSxyKX0saT0wO2k8UDtpKyspbz1NYXRoLm1pbihQLTIsaSkscz1pLW8saD10LmV2YWx4eShbXSxhLGkpLE0uc21vb3RoaW5nJiZpPjAmJihnPXQuZHh5ZGooW10sYyxpLTEsdSwwKSxtLnB1c2gobFswXStnWzBdLzMpLHkucHVzaChsWzFdK2dbMV0vMyksdj10LmR4eWRqKFtdLGMsaS0xLHUsMSksbS5wdXNoKGhbMF0tdlswXS8zKSx5LnB1c2goaFsxXS12WzFdLzMpKSxtLnB1c2goaFswXSkseS5wdXNoKGhbMV0pLGw9aDtyZXR1cm4geC5heGlzTGV0dGVyPWUseC5heGlzPWIseC5jcm9zc0F4aXM9TSx4LnZhbHVlPW4seC5jb25zdHZhcj1yLHguaW5kZXg9Zix4Lng9bSx4Lnk9eSx4LnNtb290aGluZz1NLnNtb290aGluZyx4fWZ1bmN0aW9uIEkobil7dmFyIGEsaSxvLHMsbCxjPVtdLHU9W10saD17fTtpZihoLmxlbmd0aD14Lmxlbmd0aCxoLmNyb3NzTGVuZ3RoPVQubGVuZ3RoLCJiIj09PWUpZm9yKG89TWF0aC5tYXgoMCxNYXRoLm1pbihQLTIsbikpLGw9TWF0aC5taW4oMSxNYXRoLm1heCgwLG4tbykpLGgueHk9ZnVuY3Rpb24oZSl7cmV0dXJuIHQuZXZhbHh5KFtdLGUsbil9LGguZHh5PWZ1bmN0aW9uKGUscil7cmV0dXJuIHQuZHh5ZGkoW10sZSxvLHIsbCl9LGE9MDthPEU7YSsrKWNbYV09QVtuKk9dW2FdLHVbYV09U1tuKk9dW2FdO2Vsc2UgZm9yKGk9TWF0aC5tYXgoMCxNYXRoLm1pbihDLTIsbikpLHM9TWF0aC5taW4oMSxNYXRoLm1heCgwLG4taSkpLGgueHk9ZnVuY3Rpb24oZSl7cmV0dXJuIHQuZXZhbHh5KFtdLG4sZSl9LGguZHh5PWZ1bmN0aW9uKGUscil7cmV0dXJuIHQuZHh5ZGooW10saSxlLHMscil9LGE9MDthPEw7YSsrKWNbYV09QVthXVtuKk9dLHVbYV09U1thXVtuKk9dO3JldHVybiBoLmF4aXNMZXR0ZXI9ZSxoLmF4aXM9YixoLmNyb3NzQXhpcz1NLGgudmFsdWU9eFtuXSxoLmNvbnN0dmFyPXIsaC5pbmRleD1uLGgueD1jLGgueT11LGguc21vb3RoaW5nPU0uc21vb3RoaW5nLGh9aWYoImFycmF5Ij09PWIudGlja21vZGUpe2ZvcihsPTVlLTE1LHU9KGM9W01hdGguZmxvb3IoKHgubGVuZ3RoLTEtYi5hcnJheXRpY2swKS9iLmFycmF5ZHRpY2sqKDErbCkpLE1hdGguY2VpbCgtYi5hcnJheXRpY2swL2IuYXJyYXlkdGljay8oMStsKSldLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC1lfSkpWzBdLTEsaD1jWzFdKzEsZj11O2Y8aDtmKyspKG89Yi5hcnJheXRpY2swK2IuYXJyYXlkdGljaypmKTwwfHxvPngubGVuZ3RoLTF8fF8ucHVzaChhKEkobykse2NvbG9yOmIuZ3JpZGNvbG9yLHdpZHRoOmIuZ3JpZHdpZHRofSkpO2ZvcihmPXU7ZjxoO2YrKylpZihzPWIuYXJyYXl0aWNrMCtiLmFycmF5ZHRpY2sqZixnPU1hdGgubWluKHMrYi5hcnJheWR0aWNrLHgubGVuZ3RoLTEpLCEoczwwfHxzPngubGVuZ3RoLTF8fGc8MHx8Zz54Lmxlbmd0aC0xKSlmb3Iodj14W3NdLG09eFtnXSxpPTA7aTxiLm1pbm9yZ3JpZGNvdW50O2krKykoeT1nLXMpPD0wfHwoZD12KyhtLXYpKihpKzEpLyhiLm1pbm9yZ3JpZGNvdW50KzEpKihiLmFycmF5ZHRpY2sveSkpPHhbMF18fGQ+eFt4Lmxlbmd0aC0xXXx8dy5wdXNoKGEoeihkKSx7Y29sb3I6Yi5taW5vcmdyaWRjb2xvcix3aWR0aDpiLm1pbm9yZ3JpZHdpZHRofSkpO2Iuc3RhcnRsaW5lJiZrLnB1c2goYShJKDApLHtjb2xvcjpiLnN0YXJ0bGluZWNvbG9yLHdpZHRoOmIuc3RhcnRsaW5ld2lkdGh9KSksYi5lbmRsaW5lJiZrLnB1c2goYShJKHgubGVuZ3RoLTEpLHtjb2xvcjpiLmVuZGxpbmVjb2xvcix3aWR0aDpiLmVuZGxpbmV3aWR0aH0pKX1lbHNle2ZvcihsPTVlLTE1LHU9KGM9W01hdGguZmxvb3IoKHhbeC5sZW5ndGgtMV0tYi50aWNrMCkvYi5kdGljayooMStsKSksTWF0aC5jZWlsKCh4WzBdLWIudGljazApL2IuZHRpY2svKDErbCkpXS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQtZX0pKVswXSxoPWNbMV0sZj11O2Y8PWg7ZisrKXA9Yi50aWNrMCtiLmR0aWNrKmYsXy5wdXNoKGEoeihwKSx7Y29sb3I6Yi5ncmlkY29sb3Isd2lkdGg6Yi5ncmlkd2lkdGh9KSk7Zm9yKGY9dS0xO2Y8aCsxO2YrKylmb3IocD1iLnRpY2swK2IuZHRpY2sqZixpPTA7aTxiLm1pbm9yZ3JpZGNvdW50O2krKykoZD1wK2IuZHRpY2sqKGkrMSkvKGIubWlub3JncmlkY291bnQrMSkpPHhbMF18fGQ+eFt4Lmxlbmd0aC0xXXx8dy5wdXNoKGEoeihkKSx7Y29sb3I6Yi5taW5vcmdyaWRjb2xvcix3aWR0aDpiLm1pbm9yZ3JpZHdpZHRofSkpO2Iuc3RhcnRsaW5lJiZrLnB1c2goYSh6KHhbMF0pLHtjb2xvcjpiLnN0YXJ0bGluZWNvbG9yLHdpZHRoOmIuc3RhcnRsaW5ld2lkdGh9KSksYi5lbmRsaW5lJiZrLnB1c2goYSh6KHhbeC5sZW5ndGgtMV0pLHtjb2xvcjpiLmVuZGxpbmVjb2xvcix3aWR0aDpiLmVuZGxpbmV3aWR0aH0pKX19fSx7Ii4uLy4uL2xpYi9leHRlbmQiOjcwOCwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjc2NX1dLDkwNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGE9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQ7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsaSxvLHM9ZS5fbGFiZWxzPVtdLGw9ZS5fZ3JpZGxpbmVzO2ZvcihyPTA7cjxsLmxlbmd0aDtyKyspbz1sW3JdLC0xIT09WyJzdGFydCIsImJvdGgiXS5pbmRleE9mKGUuc2hvd3RpY2tsYWJlbHMpJiYoaT1uLnRpY2tUZXh0KGUsby52YWx1ZSksYShpLHtwcmVmaXg6dm9pZCAwLHN1ZmZpeDp2b2lkIDAsZW5kQW5jaG9yOiEwLHh5Om8ueHkoMCksZHh5Om8uZHh5KDAsMCksYXhpczpvLmF4aXMsbGVuZ3RoOm8uY3Jvc3NBeGlzLmxlbmd0aCxmb250Om8uYXhpcy50aWNrZm9udCxpc0ZpcnN0OjA9PT1yLGlzTGFzdDpyPT09bC5sZW5ndGgtMX0pLHMucHVzaChpKSksLTEhPT1bImVuZCIsImJvdGgiXS5pbmRleE9mKGUuc2hvd3RpY2tsYWJlbHMpJiYoaT1uLnRpY2tUZXh0KGUsby52YWx1ZSksYShpLHtlbmRBbmNob3I6ITEseHk6by54eShvLmNyb3NzTGVuZ3RoLTEpLGR4eTpvLmR4eShvLmNyb3NzTGVuZ3RoLTIsMSksYXhpczpvLmF4aXMsbGVuZ3RoOm8uY3Jvc3NBeGlzLmxlbmd0aCxmb250Om8uYXhpcy50aWNrZm9udCxpc0ZpcnN0OjA9PT1yLGlzTGFzdDpyPT09bC5sZW5ndGgtMX0pLHMucHVzaChpKSl9fSx7Ii4uLy4uL2xpYi9leHRlbmQiOjcwOCwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjc2NX1dLDkwNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9dFswXS1lWzBdLGk9dFsxXS1lWzFdLG89clswXS1lWzBdLHM9clsxXS1lWzFdLGw9TWF0aC5wb3coYSphK2kqaSwuMjUpLGM9TWF0aC5wb3cobypvK3MqcywuMjUpLHU9KGMqYyphLWwqbCpvKSpuLGg9KGMqYyppLWwqbCpzKSpuLGY9YyoobCtjKSozLHA9bCoobCtjKSozO3JldHVybltbZVswXSsoZiYmdS9mKSxlWzFdKyhmJiZoL2YpXSxbZVswXS0ocCYmdS9wKSxlWzFdLShwJiZoL3ApXV19fSx7fV0sOTA4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLmlzQXJyYXlPclR5cGVkQXJyYXk7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgYSxpLG8scyxsLGMsdT1bXSxoPW4odCk/dC5sZW5ndGg6dCxmPW4oZSk/ZS5sZW5ndGg6ZSxwPW4odCk/dDpudWxsLGQ9bihlKT9lOm51bGw7cCYmKG89KHAubGVuZ3RoLTEpLyhwW3AubGVuZ3RoLTFdLXBbMF0pLyhoLTEpKSxkJiYocz0oZC5sZW5ndGgtMSkvKGRbZC5sZW5ndGgtMV0tZFswXSkvKGYtMSkpO3ZhciBnPTEvMCx2PS0xLzA7Zm9yKGk9MDtpPGY7aSsrKWZvcih1W2ldPVtdLGw9ZD8oZFtpXS1kWzBdKSpzOmkvKGYtMSksYT0wO2E8aDthKyspYz0ocD8ocFthXS1wWzBdKSpvOmEvKGgtMSkpLWwqcixnPU1hdGgubWluKGMsZyksdj1NYXRoLm1heChjLHYpLHVbaV1bYV09Yzt2YXIgbT0xLyh2LWcpLHk9LWcqbTtmb3IoaT0wO2k8ZjtpKyspZm9yKGE9MDthPGg7YSsrKXVbaV1bYV09bSp1W2ldW2FdK3k7cmV0dXJuIHV9fSx7Ii4uLy4uL2xpYiI6NzE3fV0sOTA5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vY2F0bXVsbF9yb20iKSxhPXQoIi4uLy4uL2xpYiIpLmVuc3VyZUFycmF5O2Z1bmN0aW9uIGkodCxlLHIpe3ZhciBuPS0uNSpyWzBdKzEuNSplWzBdLGE9LS41KnJbMV0rMS41KmVbMV07cmV0dXJuWygyKm4rdFswXSkvMywoMiphK3RbMV0pLzNdfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscixvLHMsbCl7dmFyIGMsdSxoLGYscCxkLGcsdixtLHkseD1yWzBdLmxlbmd0aCxiPXIubGVuZ3RoLF89cz8zKngtMjp4LHc9bD8zKmItMjpiO2Zvcih0PWEodCx3KSxlPWEoZSx3KSxoPTA7aDx3O2grKyl0W2hdPWEodFtoXSxfKSxlW2hdPWEoZVtoXSxfKTtmb3IodT0wLGY9MDt1PGI7dSsrLGYrPWw/MzoxKWZvcihwPXRbZl0sZD1lW2ZdLGc9clt1XSx2PW9bdV0sYz0wLGg9MDtjPHg7YysrLGgrPXM/MzoxKXBbaF09Z1tjXSxkW2hdPXZbY107aWYocylmb3IodT0wLGY9MDt1PGI7dSsrLGYrPWw/MzoxKXtmb3IoYz0xLGg9MztjPHgtMTtjKyssaCs9MyltPW4oW3JbdV1bYy0xXSxvW3VdW2MtMV1dLFtyW3VdW2NdLG9bdV1bY11dLFtyW3VdW2MrMV0sb1t1XVtjKzFdXSxzKSx0W2ZdW2gtMV09bVswXVswXSxlW2ZdW2gtMV09bVswXVsxXSx0W2ZdW2grMV09bVsxXVswXSxlW2ZdW2grMV09bVsxXVsxXTt5PWkoW3RbZl1bMF0sZVtmXVswXV0sW3RbZl1bMl0sZVtmXVsyXV0sW3RbZl1bM10sZVtmXVszXV0pLHRbZl1bMV09eVswXSxlW2ZdWzFdPXlbMV0seT1pKFt0W2ZdW18tMV0sZVtmXVtfLTFdXSxbdFtmXVtfLTNdLGVbZl1bXy0zXV0sW3RbZl1bXy00XSxlW2ZdW18tNF1dKSx0W2ZdW18tMl09eVswXSxlW2ZdW18tMl09eVsxXX1pZihsKWZvcihoPTA7aDxfO2grKyl7Zm9yKGY9MztmPHctMztmKz0zKW09bihbdFtmLTNdW2hdLGVbZi0zXVtoXV0sW3RbZl1baF0sZVtmXVtoXV0sW3RbZiszXVtoXSxlW2YrM11baF1dLGwpLHRbZi0xXVtoXT1tWzBdWzBdLGVbZi0xXVtoXT1tWzBdWzFdLHRbZisxXVtoXT1tWzFdWzBdLGVbZisxXVtoXT1tWzFdWzFdO3k9aShbdFswXVtoXSxlWzBdW2hdXSxbdFsyXVtoXSxlWzJdW2hdXSxbdFszXVtoXSxlWzNdW2hdXSksdFsxXVtoXT15WzBdLGVbMV1baF09eVsxXSx5PWkoW3Rbdy0xXVtoXSxlW3ctMV1baF1dLFt0W3ctM11baF0sZVt3LTNdW2hdXSxbdFt3LTRdW2hdLGVbdy00XVtoXV0pLHRbdy0yXVtoXT15WzBdLGVbdy0yXVtoXT15WzFdfWlmKHMmJmwpZm9yKGY9MTtmPHc7Zis9KGYrMSklMz09MD8yOjEpe2ZvcihoPTM7aDxfLTM7aCs9MyltPW4oW3RbZl1baC0zXSxlW2ZdW2gtM11dLFt0W2ZdW2hdLGVbZl1baF1dLFt0W2ZdW2grM10sZVtmXVtoKzNdXSxzKSx0W2ZdW2gtMV09LjUqKHRbZl1baC0xXSttWzBdWzBdKSxlW2ZdW2gtMV09LjUqKGVbZl1baC0xXSttWzBdWzFdKSx0W2ZdW2grMV09LjUqKHRbZl1baCsxXSttWzFdWzBdKSxlW2ZdW2grMV09LjUqKGVbZl1baCsxXSttWzFdWzFdKTt5PWkoW3RbZl1bMF0sZVtmXVswXV0sW3RbZl1bMl0sZVtmXVsyXV0sW3RbZl1bM10sZVtmXVszXV0pLHRbZl1bMV09LjUqKHRbZl1bMV0reVswXSksZVtmXVsxXT0uNSooZVtmXVsxXSt5WzFdKSx5PWkoW3RbZl1bXy0xXSxlW2ZdW18tMV1dLFt0W2ZdW18tM10sZVtmXVtfLTNdXSxbdFtmXVtfLTRdLGVbZl1bXy00XV0pLHRbZl1bXy0yXT0uNSoodFtmXVtfLTJdK3lbMF0pLGVbZl1bXy0yXT0uNSooZVtmXVtfLTJdK3lbMV0pfXJldHVyblt0LGVdfX0seyIuLi8uLi9saWIiOjcxNywiLi9jYXRtdWxsX3JvbSI6OTA3fV0sOTEwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17UkVMQVRJVkVfQ1VMTF9UT0xFUkFOQ0U6MWUtNn19LHt9XSw5MTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZSYmcj9mdW5jdGlvbihlLHIsbixhLGkpe3ZhciBvLHMsbCxjLHUsaDtlfHwoZT1bXSkscio9MyxuKj0zO3ZhciBmPWEqYSxwPTEtYSxkPXAqcCxnPXAqYSoyLHY9LTMqZCxtPTMqKGQtZykseT0zKihnLWYpLHg9MypmLGI9aSppLF89YippLHc9MS1pLGs9dyp3LFQ9ayp3O2ZvcihoPTA7aDx0Lmxlbmd0aDtoKyspbz12Kih1PXRbaF0pW25dW3JdK20qdVtuXVtyKzFdK3kqdVtuXVtyKzJdK3gqdVtuXVtyKzNdLHM9dip1W24rMV1bcl0rbSp1W24rMV1bcisxXSt5KnVbbisxXVtyKzJdK3gqdVtuKzFdW3IrM10sbD12KnVbbisyXVtyXSttKnVbbisyXVtyKzFdK3kqdVtuKzJdW3IrMl0reCp1W24rMl1bciszXSxjPXYqdVtuKzNdW3JdK20qdVtuKzNdW3IrMV0reSp1W24rM11bcisyXSt4KnVbbiszXVtyKzNdLGVbaF09VCpvKzMqKGsqaSpzK3cqYipsKStfKmM7cmV0dXJuIGV9OmU/ZnVuY3Rpb24oZSxyLG4sYSxpKXt2YXIgbyxzLGwsYztlfHwoZT1bXSkscio9Mzt2YXIgdT1hKmEsaD0xLWEsZj1oKmgscD1oKmEqMixkPS0zKmYsZz0zKihmLXApLHY9MyoocC11KSxtPTMqdSx5PTEtaTtmb3IobD0wO2w8dC5sZW5ndGg7bCsrKW89ZCooYz10W2xdKVtuXVtyXStnKmNbbl1bcisxXSt2KmNbbl1bcisyXSttKmNbbl1bciszXSxzPWQqY1tuKzFdW3JdK2cqY1tuKzFdW3IrMV0rdipjW24rMV1bcisyXSttKmNbbisxXVtyKzNdLGVbbF09eSpvK2kqcztyZXR1cm4gZX06cj9mdW5jdGlvbihlLHIsbixhLGkpe3ZhciBvLHMsbCxjLHUsaDtlfHwoZT1bXSksbio9Mzt2YXIgZj1pKmkscD1mKmksZD0xLWksZz1kKmQsdj1nKmQ7Zm9yKHU9MDt1PHQubGVuZ3RoO3UrKylvPShoPXRbdV0pW25dW3IrMV0taFtuXVtyXSxzPWhbbisxXVtyKzFdLWhbbisxXVtyXSxsPWhbbisyXVtyKzFdLWhbbisyXVtyXSxjPWhbbiszXVtyKzFdLWhbbiszXVtyXSxlW3VdPXYqbyszKihnKmkqcytkKmYqbCkrcCpjO3JldHVybiBlfTpmdW5jdGlvbihlLHIsbixhLGkpe3ZhciBvLHMsbCxjO2V8fChlPVtdKTt2YXIgdT0xLWk7Zm9yKGw9MDtsPHQubGVuZ3RoO2wrKylvPShjPXRbbF0pW25dW3IrMV0tY1tuXVtyXSxzPWNbbisxXVtyKzFdLWNbbisxXVtyXSxlW2xdPXUqbytpKnM7cmV0dXJuIGV9fX0se31dLDkxMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBlJiZyP2Z1bmN0aW9uKGUscixuLGEsaSl7dmFyIG8scyxsLGMsdSxoO2V8fChlPVtdKSxyKj0zLG4qPTM7dmFyIGY9YSphLHA9ZiphLGQ9MS1hLGc9ZCpkLHY9ZypkLG09aSppLHk9MS1pLHg9eSp5LGI9eSppKjIsXz0tMyp4LHc9MyooeC1iKSxrPTMqKGItbSksVD0zKm07Zm9yKGg9MDtoPHQubGVuZ3RoO2grKylvPV8qKHU9dFtoXSlbbl1bcl0rdyp1W24rMV1bcl0rayp1W24rMl1bcl0rVCp1W24rM11bcl0scz1fKnVbbl1bcisxXSt3KnVbbisxXVtyKzFdK2sqdVtuKzJdW3IrMV0rVCp1W24rM11bcisxXSxsPV8qdVtuXVtyKzJdK3cqdVtuKzFdW3IrMl0rayp1W24rMl1bcisyXStUKnVbbiszXVtyKzJdLGM9Xyp1W25dW3IrM10rdyp1W24rMV1bciszXStrKnVbbisyXVtyKzNdK1QqdVtuKzNdW3IrM10sZVtoXT12Km8rMyooZyphKnMrZCpmKmwpK3AqYztyZXR1cm4gZX06ZT9mdW5jdGlvbihlLHIsbixhLGkpe3ZhciBvLHMsbCxjLHUsaDtlfHwoZT1bXSkscio9Mzt2YXIgZj1pKmkscD1mKmksZD0xLWksZz1kKmQsdj1nKmQ7Zm9yKHU9MDt1PHQubGVuZ3RoO3UrKylvPShoPXRbdV0pW24rMV1bcl0taFtuXVtyXSxzPWhbbisxXVtyKzFdLWhbbl1bcisxXSxsPWhbbisxXVtyKzJdLWhbbl1bcisyXSxjPWhbbisxXVtyKzNdLWhbbl1bciszXSxlW3VdPXYqbyszKihnKmkqcytkKmYqbCkrcCpjO3JldHVybiBlfTpyP2Z1bmN0aW9uKGUscixuLGEsaSl7dmFyIG8scyxsLGM7ZXx8KGU9W10pLG4qPTM7dmFyIHU9MS1hLGg9aSppLGY9MS1pLHA9ZipmLGQ9ZippKjIsZz0tMypwLHY9MyoocC1kKSxtPTMqKGQtaCkseT0zKmg7Zm9yKGw9MDtsPHQubGVuZ3RoO2wrKylvPWcqKGM9dFtsXSlbbl1bcl0rdipjW24rMV1bcl0rbSpjW24rMl1bcl0reSpjW24rM11bcl0scz1nKmNbbl1bcisxXSt2KmNbbisxXVtyKzFdK20qY1tuKzJdW3IrMV0reSpjW24rM11bcisxXSxlW2xdPXUqbythKnM7cmV0dXJuIGV9OmZ1bmN0aW9uKGUscixuLGEsaSl7dmFyIG8scyxsLGM7ZXx8KGU9W10pO3ZhciB1PTEtYTtmb3IobD0wO2w8dC5sZW5ndGg7bCsrKW89KGM9dFtsXSlbbisxXVtyXS1jW25dW3JdLHM9Y1tuKzFdW3IrMV0tY1tuXVtyKzFdLGVbbF09dSpvK2EqcztyZXR1cm4gZX19fSx7fV0sOTEzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuLGEpe3ZhciBpPWUtMixvPXItMjtyZXR1cm4gbiYmYT9mdW5jdGlvbihlLHIsbil7dmFyIGEscyxsLGMsdSxoO2V8fChlPVtdKTt2YXIgZj1NYXRoLm1heCgwLE1hdGgubWluKE1hdGguZmxvb3IociksaSkpLHA9TWF0aC5tYXgoMCxNYXRoLm1pbihNYXRoLmZsb29yKG4pLG8pKSxkPU1hdGgubWF4KDAsTWF0aC5taW4oMSxyLWYpKSxnPU1hdGgubWF4KDAsTWF0aC5taW4oMSxuLXApKTtmKj0zLHAqPTM7dmFyIHY9ZCpkLG09dipkLHk9MS1kLHg9eSp5LGI9eCp5LF89ZypnLHc9XypnLGs9MS1nLFQ9ayprLE09VCprO2ZvcihoPTA7aDx0Lmxlbmd0aDtoKyspYT1iKih1PXRbaF0pW3BdW2ZdKzMqKHgqZCp1W3BdW2YrMV0reSp2KnVbcF1bZisyXSkrbSp1W3BdW2YrM10scz1iKnVbcCsxXVtmXSszKih4KmQqdVtwKzFdW2YrMV0reSp2KnVbcCsxXVtmKzJdKSttKnVbcCsxXVtmKzNdLGw9Yip1W3ArMl1bZl0rMyooeCpkKnVbcCsyXVtmKzFdK3kqdip1W3ArMl1bZisyXSkrbSp1W3ArMl1bZiszXSxjPWIqdVtwKzNdW2ZdKzMqKHgqZCp1W3ArM11bZisxXSt5KnYqdVtwKzNdW2YrMl0pK20qdVtwKzNdW2YrM10sZVtoXT1NKmErMyooVCpnKnMraypfKmwpK3cqYztyZXR1cm4gZX06bj9mdW5jdGlvbihlLHIsbil7ZXx8KGU9W10pO3ZhciBhLHMsbCxjLHUsaCxmPU1hdGgubWF4KDAsTWF0aC5taW4oTWF0aC5mbG9vcihyKSxpKSkscD1NYXRoLm1heCgwLE1hdGgubWluKE1hdGguZmxvb3IobiksbykpLGQ9TWF0aC5tYXgoMCxNYXRoLm1pbigxLHItZikpLGc9TWF0aC5tYXgoMCxNYXRoLm1pbigxLG4tcCkpO2YqPTM7dmFyIHY9ZCpkLG09dipkLHk9MS1kLHg9eSp5LGI9eCp5LF89MS1nO2Zvcih1PTA7dTx0Lmxlbmd0aDt1KyspYT1fKihoPXRbdV0pW3BdW2ZdK2cqaFtwKzFdW2ZdLHM9XypoW3BdW2YrMV0rZypoW3ArMV1bZisxXSxsPV8qaFtwXVtmKzJdK2cqaFtwKzFdW2YrMV0sYz1fKmhbcF1bZiszXStnKmhbcCsxXVtmKzFdLGVbdV09YiphKzMqKHgqZCpzK3kqdipsKSttKmM7cmV0dXJuIGV9OmE/ZnVuY3Rpb24oZSxyLG4pe2V8fChlPVtdKTt2YXIgYSxzLGwsYyx1LGgsZj1NYXRoLm1heCgwLE1hdGgubWluKE1hdGguZmxvb3IociksaSkpLHA9TWF0aC5tYXgoMCxNYXRoLm1pbihNYXRoLmZsb29yKG4pLG8pKSxkPU1hdGgubWF4KDAsTWF0aC5taW4oMSxyLWYpKSxnPU1hdGgubWF4KDAsTWF0aC5taW4oMSxuLXApKTtwKj0zO3ZhciB2PWcqZyxtPXYqZyx5PTEtZyx4PXkqeSxiPXgqeSxfPTEtZDtmb3IodT0wO3U8dC5sZW5ndGg7dSsrKWE9XyooaD10W3VdKVtwXVtmXStkKmhbcF1bZisxXSxzPV8qaFtwKzFdW2ZdK2QqaFtwKzFdW2YrMV0sbD1fKmhbcCsyXVtmXStkKmhbcCsyXVtmKzFdLGM9XypoW3ArM11bZl0rZCpoW3ArM11bZisxXSxlW3VdPWIqYSszKih4Kmcqcyt5KnYqbCkrbSpjO3JldHVybiBlfTpmdW5jdGlvbihlLHIsbil7ZXx8KGU9W10pO3ZhciBhLHMsbCxjLHU9TWF0aC5tYXgoMCxNYXRoLm1pbihNYXRoLmZsb29yKHIpLGkpKSxoPU1hdGgubWF4KDAsTWF0aC5taW4oTWF0aC5mbG9vcihuKSxvKSksZj1NYXRoLm1heCgwLE1hdGgubWluKDEsci11KSkscD1NYXRoLm1heCgwLE1hdGgubWluKDEsbi1oKSksZD0xLXAsZz0xLWY7Zm9yKGw9MDtsPHQubGVuZ3RoO2wrKylhPWcqKGM9dFtsXSlbaF1bdV0rZipjW2hdW3UrMV0scz1nKmNbaCsxXVt1XStmKmNbaCsxXVt1KzFdLGVbbF09ZCphK3AqcztyZXR1cm4gZX19fSx7fV0sOTE0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi94eV9kZWZhdWx0cyIpLGk9dCgiLi9hYl9kZWZhdWx0cyIpLG89dCgiLi9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbCl7ZnVuY3Rpb24gYyhyLGEpe3JldHVybiBuLmNvZXJjZSh0LGUsbyxyLGEpfWUuX2NsaXBQYXRoSWQ9ImNsaXAiK2UudWlkKyJjYXJwZXQiO3ZhciB1PWMoImNvbG9yIixzLmRlZmF1bHRMaW5lKTsobi5jb2VyY2VGb250KGMsImZvbnQiKSxjKCJjYXJwZXQiKSxpKHQsZSxsLGMsdSksZS5hJiZlLmIpPyhlLmEubGVuZ3RoPDMmJihlLmFheGlzLnNtb290aGluZz0wKSxlLmIubGVuZ3RoPDMmJihlLmJheGlzLnNtb290aGluZz0wKSxhKHQsZSxjKXx8KGUudmlzaWJsZT0hMSksZS5fY2hlYXRlciYmYygiY2hlYXRlcnNsb3BlIikpOmUudmlzaWJsZT0hMX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIjo1OTEsIi4uLy4uL2xpYiI6NzE3LCIuL2FiX2RlZmF1bHRzIjo4OTcsIi4vYXR0cmlidXRlcyI6ODk5LCIuL3h5X2RlZmF1bHRzIjo5MjN9XSw5MTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxwbG90OnQoIi4vcGxvdCIpLGNhbGM6dCgiLi9jYWxjIiksYW5pbWF0YWJsZTohMCxpc0NvbnRhaW5lcjohMCxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToiY2FycGV0IixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxjYXRlZ29yaWVzOlsiY2FydGVzaWFuIiwic3ZnIiwiY2FycGV0IiwiY2FycGV0QXhpcyIsIm5vdExlZ2VuZElzb2xhdGFibGUiLCJub011bHRpQ2F0ZWdvcnkiLCJub0hvdmVyIiwibm9Tb3J0aW5nQnlWYWx1ZSJdLG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL2NhcnRlc2lhbiI6Nzc2LCIuL2F0dHJpYnV0ZXMiOjg5OSwiLi9jYWxjIjo5MDMsIi4vZGVmYXVsdHMiOjkxNCwiLi9wbG90Ijo5MjB9XSw5MTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByLG49dC5fZnVsbERhdGEubGVuZ3RoLGE9MDthPG47YSsrKXt2YXIgaT10Ll9mdWxsRGF0YVthXTtpZihpLmluZGV4IT09ZS5pbmRleCYmKCJjYXJwZXQiPT09aS50eXBlJiYocnx8KHI9aSksaS5jYXJwZXQ9PT1lLmNhcnBldCkpKXJldHVybiBpfXJldHVybiByfX0se31dLDkxNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2lmKDA9PT10Lmxlbmd0aClyZXR1cm4iIjt2YXIgbixhPVtdLGk9cj8zOjE7Zm9yKG49MDtuPHQubGVuZ3RoO24rPWkpYS5wdXNoKHRbbl0rIiwiK2Vbbl0pLHImJm48dC5sZW5ndGgtaSYmKGEucHVzaCgiQyIpLGEucHVzaChbdFtuKzFdKyIsIitlW24rMV0sdFtuKzJdKyIsIitlW24rMl0rIiAiXS5qb2luKCIgIikpKTtyZXR1cm4gYS5qb2luKHI/IiI6IkwiKX19LHt9XSw5MTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIikuaXNBcnJheU9yVHlwZWRBcnJheTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBhO2ZvcihuKHQpP3QubGVuZ3RoPmUubGVuZ3RoJiYodD10LnNsaWNlKDAsZS5sZW5ndGgpKTp0PVtdLGE9MDthPGUubGVuZ3RoO2ErKyl0W2FdPXIoZVthXSk7cmV0dXJuIHR9fSx7Ii4uLy4uL2xpYiI6NzE3fV0sOTE5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuLGEsaSl7dmFyIG89YVswXSp0LmRwZHgoZSkscz1hWzFdKnQuZHBkeShyKSxsPTEsYz0xO2lmKGkpe3ZhciB1PU1hdGguc3FydChhWzBdKmFbMF0rYVsxXSphWzFdKSxoPU1hdGguc3FydChpWzBdKmlbMF0raVsxXSppWzFdKSxmPShhWzBdKmlbMF0rYVsxXSppWzFdKS91L2g7Yz1NYXRoLm1heCgwLGYpfXZhciBwPTE4MCpNYXRoLmF0YW4yKHMsbykvTWF0aC5QSTtyZXR1cm4gcDwtOTA/KHArPTE4MCxsPS1sKTpwPjkwJiYocC09MTgwLGw9LWwpLHthbmdsZTpwLGZsaXA6bCxwOnQuYzJwKG4sZSxyKSxvZmZzZXRNdWx0cGxpZXI6Y319fSx7fV0sOTIwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxpPXQoIi4vbWFwXzFkX2FycmF5Iiksbz10KCIuL21ha2VwYXRoIikscz10KCIuL29yaWVudF90ZXh0IiksbD10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSxjPXQoIi4uLy4uL2xpYiIpLHU9dCgiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCIpO2Z1bmN0aW9uIGgodCxlLHIsYSxzLGwpe3ZhciBjPSJjb25zdC0iK3MrIi1saW5lcyIsdT1yLnNlbGVjdEFsbCgiLiIrYykuZGF0YShsKTt1LmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZChjLCEwKS5zdHlsZSgidmVjdG9yLWVmZmVjdCIsIm5vbi1zY2FsaW5nLXN0cm9rZSIpLHUuZWFjaChmdW5jdGlvbihyKXt2YXIgYT1yLHM9YS54LGw9YS55LGM9aShbXSxzLHQuYzJwKSx1PWkoW10sbCxlLmMycCksaD0iTSIrbyhjLHUsYS5zbW9vdGhpbmcpO24uc2VsZWN0KHRoaXMpLmF0dHIoImQiLGgpLnN0eWxlKCJzdHJva2Utd2lkdGgiLGEud2lkdGgpLnN0eWxlKCJzdHJva2UiLGEuY29sb3IpLnN0eWxlKCJmaWxsIiwibm9uZSIpfSksdS5leGl0KCkucmVtb3ZlKCl9ZnVuY3Rpb24gZih0LGUscixpLG8sYyx1LGgpe3ZhciBmPWMuc2VsZWN0QWxsKCJ0ZXh0LiIraCkuZGF0YSh1KTtmLmVudGVyKCkuYXBwZW5kKCJ0ZXh0IikuY2xhc3NlZChoLCEwKTt2YXIgcD0wLGQ9e307cmV0dXJuIGYuZWFjaChmdW5jdGlvbihvLGMpe3ZhciB1O2lmKCJhdXRvIj09PW8uYXhpcy50aWNrYW5nbGUpdT1zKGksZSxyLG8ueHksby5keHkpO2Vsc2V7dmFyIGg9KG8uYXhpcy50aWNrYW5nbGUrMTgwKSpNYXRoLlBJLzE4MDt1PXMoaSxlLHIsby54eSxbTWF0aC5jb3MoaCksTWF0aC5zaW4oaCldKX1jfHwoZD17YW5nbGU6dS5hbmdsZSxmbGlwOnUuZmxpcH0pO3ZhciBmPShvLmVuZEFuY2hvcj8tMToxKSp1LmZsaXAsZz1uLnNlbGVjdCh0aGlzKS5hdHRyKHsidGV4dC1hbmNob3IiOmY+MD8ic3RhcnQiOiJlbmQiLCJkYXRhLW5vdGV4IjoxfSkuY2FsbChhLmZvbnQsby5mb250KS50ZXh0KG8udGV4dCkuY2FsbChsLmNvbnZlcnRUb1RzcGFucyx0KSx2PWEuYkJveCh0aGlzKTtnLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK3UucFswXSsiLCIrdS5wWzFdKyIpIHJvdGF0ZSgiK3UuYW5nbGUrIil0cmFuc2xhdGUoIitvLmF4aXMubGFiZWxwYWRkaW5nKmYrIiwiKy4zKnYuaGVpZ2h0KyIpIikscD1NYXRoLm1heChwLHYud2lkdGgrby5heGlzLmxhYmVscGFkZGluZyl9KSxmLmV4aXQoKS5yZW1vdmUoKSxkLm1heEV4dGVudD1wLGR9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEpe3ZhciBsPWUueGF4aXMsdT1lLnlheGlzLHA9dC5fZnVsbExheW91dC5fY2xpcHM7Yy5tYWtlVHJhY2VHcm91cHMoYSxyLCJ0cmFjZSIpLmVhY2goZnVuY3Rpb24oZSl7dmFyIHI9bi5zZWxlY3QodGhpcyksYT1lWzBdLGQ9YS50cmFjZSx2PWQuYWF4aXMsbT1kLmJheGlzLHk9Yy5lbnN1cmVTaW5nbGUociwiZyIsIm1pbm9ybGF5ZXIiKSx4PWMuZW5zdXJlU2luZ2xlKHIsImciLCJtYWpvcmxheWVyIiksYj1jLmVuc3VyZVNpbmdsZShyLCJnIiwiYm91bmRhcnlsYXllciIpLF89Yy5lbnN1cmVTaW5nbGUociwiZyIsImxhYmVsbGF5ZXIiKTtyLnN0eWxlKCJvcGFjaXR5IixkLm9wYWNpdHkpLGgobCx1LHgsdiwiYSIsdi5fZ3JpZGxpbmVzKSxoKGwsdSx4LG0sImIiLG0uX2dyaWRsaW5lcyksaChsLHUseSx2LCJhIix2Ll9taW5vcmdyaWRsaW5lcyksaChsLHUseSxtLCJiIixtLl9taW5vcmdyaWRsaW5lcyksaChsLHUsYix2LCJhLWJvdW5kYXJ5Iix2Ll9ib3VuZGFyeWxpbmVzKSxoKGwsdSxiLG0sImItYm91bmRhcnkiLG0uX2JvdW5kYXJ5bGluZXMpO3ZhciB3PWYodCxsLHUsZCxhLF8sdi5fbGFiZWxzLCJhLWxhYmVsIiksaz1mKHQsbCx1LGQsYSxfLG0uX2xhYmVscywiYi1sYWJlbCIpOyFmdW5jdGlvbih0LGUscixuLGEsaSxvLGwpe3ZhciB1LGgsZixwLGQ9Yy5hZ2dOdW1zKE1hdGgubWluLG51bGwsci5hKSx2PWMuYWdnTnVtcyhNYXRoLm1heCxudWxsLHIuYSksbT1jLmFnZ051bXMoTWF0aC5taW4sbnVsbCxyLmIpLHk9Yy5hZ2dOdW1zKE1hdGgubWF4LG51bGwsci5iKTt1PS41KihkK3YpLGg9bSxmPXIuYWIyeHkodSxoLCEwKSxwPXIuZHh5ZGFfcm91Z2godSxoKSx2b2lkIDA9PT1vLmFuZ2xlJiZjLmV4dGVuZEZsYXQobyxzKHIsYSxpLGYsci5keHlkYl9yb3VnaCh1LGgpKSk7Zyh0LGUscixuLGYscCxyLmFheGlzLGEsaSxvLCJhLXRpdGxlIiksdT1kLGg9LjUqKG0reSksZj1yLmFiMnh5KHUsaCwhMCkscD1yLmR4eWRiX3JvdWdoKHUsaCksdm9pZCAwPT09bC5hbmdsZSYmYy5leHRlbmRGbGF0KGwscyhyLGEsaSxmLHIuZHh5ZGFfcm91Z2godSxoKSkpO2codCxlLHIsbixmLHAsci5iYXhpcyxhLGksbCwiYi10aXRsZSIpfSh0LF8sZCxhLGwsdSx3LGspLGZ1bmN0aW9uKHQsZSxyLG4sYSl7dmFyIHMsbCx1LGgsZj1yLnNlbGVjdCgiIyIrdC5fY2xpcFBhdGhJZCk7Zi5zaXplKCl8fChmPXIuYXBwZW5kKCJjbGlwUGF0aCIpLmNsYXNzZWQoImNhcnBldGNsaXAiLCEwKSk7dmFyIHA9Yy5lbnN1cmVTaW5nbGUoZiwicGF0aCIsImNhcnBldGJvdW5kYXJ5IiksZD1lLmNsaXBzZWdtZW50cyxnPVtdO2ZvcihoPTA7aDxkLmxlbmd0aDtoKyspcz1kW2hdLGw9aShbXSxzLngsbi5jMnApLHU9aShbXSxzLnksYS5jMnApLGcucHVzaChvKGwsdSxzLmJpY3ViaWMpKTt2YXIgdj0iTSIrZy5qb2luKCJMIikrIloiO2YuYXR0cigiaWQiLHQuX2NsaXBQYXRoSWQpLHAuYXR0cigiZCIsdil9KGQsYSxwLGwsdSl9KX07dmFyIHA9dS5MSU5FX1NQQUNJTkcsZD0oMS11Lk1JRF9TSElGVCkvcCsxO2Z1bmN0aW9uIGcodCxlLHIsaSxvLGMsdSxoLGYsZyx2KXt2YXIgbT1bXTt1LnRpdGxlLnRleHQmJm0ucHVzaCh1LnRpdGxlLnRleHQpO3ZhciB5PWUuc2VsZWN0QWxsKCJ0ZXh0LiIrdikuZGF0YShtKSx4PWcubWF4RXh0ZW50O3kuZW50ZXIoKS5hcHBlbmQoInRleHQiKS5jbGFzc2VkKHYsITApLHkuZWFjaChmdW5jdGlvbigpe3ZhciBlPXMocixoLGYsbyxjKTstMT09PVsic3RhcnQiLCJib3RoIl0uaW5kZXhPZih1LnNob3d0aWNrbGFiZWxzKSYmKHg9MCk7dmFyIGk9dS50aXRsZS5mb250LnNpemU7eCs9aSt1LnRpdGxlLm9mZnNldDt2YXIgdj0oZy5hbmdsZSsoZy5mbGlwPDA/MTgwOjApLWUuYW5nbGUrNDUwKSUzNjAsbT12PjkwJiZ2PDI3MCx5PW4uc2VsZWN0KHRoaXMpO3kudGV4dCh1LnRpdGxlLnRleHQpLmNhbGwobC5jb252ZXJ0VG9Uc3BhbnMsdCksbSYmKHg9KC1sLmxpbmVDb3VudCh5KStkKSpwKmkteCkseS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitlLnBbMF0rIiwiK2UucFsxXSsiKSByb3RhdGUoIitlLmFuZ2xlKyIpIHRyYW5zbGF0ZSgwLCIreCsiKSIpLmNsYXNzZWQoInVzZXItc2VsZWN0LW5vbmUiLCEwKS5hdHRyKCJ0ZXh0LWFuY2hvciIsIm1pZGRsZSIpLmNhbGwoYS5mb250LHUudGl0bGUuZm9udCl9KSx5LmV4aXQoKS5yZW1vdmUoKX19LHsiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo2MTMsIi4uLy4uL2NvbnN0YW50cy9hbGlnbm1lbnQiOjY4NiwiLi4vLi4vbGliIjo3MTcsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6NzQxLCIuL21ha2VwYXRoIjo5MTcsIi4vbWFwXzFkX2FycmF5Ijo5MTgsIi4vb3JpZW50X3RleHQiOjkxOSxkMzoxNjV9XSw5MjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9jb25zdGFudHMiKSxhPXQoIi4uLy4uL2xpYi9zZWFyY2giKS5maW5kQmluLGk9dCgiLi9jb21wdXRlX2NvbnRyb2xfcG9pbnRzIiksbz10KCIuL2NyZWF0ZV9zcGxpbmVfZXZhbHVhdG9yIikscz10KCIuL2NyZWF0ZV9pX2Rlcml2YXRpdmVfZXZhbHVhdG9yIiksbD10KCIuL2NyZWF0ZV9qX2Rlcml2YXRpdmVfZXZhbHVhdG9yIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Escj10Ll9iLGM9ZS5sZW5ndGgsdT1yLmxlbmd0aCxoPXQuYWF4aXMsZj10LmJheGlzLHA9ZVswXSxkPWVbYy0xXSxnPXJbMF0sdj1yW3UtMV0sbT1lW2UubGVuZ3RoLTFdLWVbMF0seT1yW3IubGVuZ3RoLTFdLXJbMF0seD1tKm4uUkVMQVRJVkVfQ1VMTF9UT0xFUkFOQ0UsYj15Km4uUkVMQVRJVkVfQ1VMTF9UT0xFUkFOQ0U7cC09eCxkKz14LGctPWIsdis9Yix0LmlzVmlzaWJsZT1mdW5jdGlvbih0LGUpe3JldHVybiB0PnAmJnQ8ZCYmZT5nJiZlPHZ9LHQuaXNPY2NsdWRlZD1mdW5jdGlvbih0LGUpe3JldHVybiB0PHB8fHQ+ZHx8ZTxnfHxlPnZ9LHQuc2V0U2NhbGU9ZnVuY3Rpb24oKXt2YXIgZT10Ll94LHI9dC5feSxuPWkodC5feGN0cmwsdC5feWN0cmwsZSxyLGguc21vb3RoaW5nLGYuc21vb3RoaW5nKTt0Ll94Y3RybD1uWzBdLHQuX3ljdHJsPW5bMV0sdC5ldmFseHk9byhbdC5feGN0cmwsdC5feWN0cmxdLGMsdSxoLnNtb290aGluZyxmLnNtb290aGluZyksdC5keHlkaT1zKFt0Ll94Y3RybCx0Ll95Y3RybF0saC5zbW9vdGhpbmcsZi5zbW9vdGhpbmcpLHQuZHh5ZGo9bChbdC5feGN0cmwsdC5feWN0cmxdLGguc21vb3RoaW5nLGYuc21vb3RoaW5nKX0sdC5pMmE9ZnVuY3Rpb24odCl7dmFyIHI9TWF0aC5tYXgoMCxNYXRoLmZsb29yKHRbMF0pLGMtMiksbj10WzBdLXI7cmV0dXJuKDEtbikqZVtyXStuKmVbcisxXX0sdC5qMmI9ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5tYXgoMCxNYXRoLmZsb29yKHRbMV0pLGMtMiksbj10WzFdLWU7cmV0dXJuKDEtbikqcltlXStuKnJbZSsxXX0sdC5pajJhYj1mdW5jdGlvbihlKXtyZXR1cm5bdC5pMmEoZVswXSksdC5qMmIoZVsxXSldfSx0LmEyaT1mdW5jdGlvbih0KXt2YXIgcj1NYXRoLm1heCgwLE1hdGgubWluKGEodCxlKSxjLTIpKSxuPWVbcl0saT1lW3IrMV07cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5taW4oYy0xLHIrKHQtbikvKGktbikpKX0sdC5iMmo9ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5tYXgoMCxNYXRoLm1pbihhKHQsciksdS0yKSksbj1yW2VdLGk9cltlKzFdO3JldHVybiBNYXRoLm1heCgwLE1hdGgubWluKHUtMSxlKyh0LW4pLyhpLW4pKSl9LHQuYWIyaWo9ZnVuY3Rpb24oZSl7cmV0dXJuW3QuYTJpKGVbMF0pLHQuYjJqKGVbMV0pXX0sdC5pMmM9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gdC5ldmFseHkoW10sZSxyKX0sdC5hYjJ4eT1mdW5jdGlvbihuLGEsaSl7aWYoIWkmJihuPGVbMF18fG4+ZVtjLTFdfGE8clswXXx8YT5yW3UtMV0pKXJldHVyblshMSwhMV07dmFyIG89dC5hMmkobikscz10LmIyaihhKSxsPXQuZXZhbHh5KFtdLG8scyk7aWYoaSl7dmFyIGgsZixwLGQsZz0wLHY9MCxtPVtdO248ZVswXT8oaD0wLGY9MCxnPShuLWVbMF0pLyhlWzFdLWVbMF0pKTpuPmVbYy0xXT8oaD1jLTIsZj0xLGc9KG4tZVtjLTFdKS8oZVtjLTFdLWVbYy0yXSkpOmY9by0oaD1NYXRoLm1heCgwLE1hdGgubWluKGMtMixNYXRoLmZsb29yKG8pKSkpLGE8clswXT8ocD0wLGQ9MCx2PShhLXJbMF0pLyhyWzFdLXJbMF0pKTphPnJbdS0xXT8ocD11LTIsZD0xLHY9KGEtclt1LTFdKS8oclt1LTFdLXJbdS0yXSkpOmQ9cy0ocD1NYXRoLm1heCgwLE1hdGgubWluKHUtMixNYXRoLmZsb29yKHMpKSkpLGcmJih0LmR4eWRpKG0saCxwLGYsZCksbFswXSs9bVswXSpnLGxbMV0rPW1bMV0qZyksdiYmKHQuZHh5ZGoobSxoLHAsZixkKSxsWzBdKz1tWzBdKnYsbFsxXSs9bVsxXSp2KX1yZXR1cm4gbH0sdC5jMnA9ZnVuY3Rpb24odCxlLHIpe3JldHVybltlLmMycCh0WzBdKSxyLmMycCh0WzFdKV19LHQucDJ4PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm5bZS5wMmModFswXSksci5wMmModFsxXSldfSx0LmRhZGk9ZnVuY3Rpb24odCl7dmFyIHI9TWF0aC5tYXgoMCxNYXRoLm1pbihlLmxlbmd0aC0yLHQpKTtyZXR1cm4gZVtyKzFdLWVbcl19LHQuZGJkaj1mdW5jdGlvbih0KXt2YXIgZT1NYXRoLm1heCgwLE1hdGgubWluKHIubGVuZ3RoLTIsdCkpO3JldHVybiByW2UrMV0tcltlXX0sdC5keHlkYT1mdW5jdGlvbihlLHIsbixhKXt2YXIgaT10LmR4eWRpKG51bGwsZSxyLG4sYSksbz10LmRhZGkoZSxuKTtyZXR1cm5baVswXS9vLGlbMV0vb119LHQuZHh5ZGI9ZnVuY3Rpb24oZSxyLG4sYSl7dmFyIGk9dC5keHlkaihudWxsLGUscixuLGEpLG89dC5kYmRqKHIsYSk7cmV0dXJuW2lbMF0vbyxpWzFdL29dfSx0LmR4eWRhX3JvdWdoPWZ1bmN0aW9uKGUscixuKXt2YXIgYT1tKihufHwuMSksaT10LmFiMnh5KGUrYSxyLCEwKSxvPXQuYWIyeHkoZS1hLHIsITApO3JldHVyblsuNSooaVswXS1vWzBdKS9hLC41KihpWzFdLW9bMV0pL2FdfSx0LmR4eWRiX3JvdWdoPWZ1bmN0aW9uKGUscixuKXt2YXIgYT15KihufHwuMSksaT10LmFiMnh5KGUscithLCEwKSxvPXQuYWIyeHkoZSxyLWEsITApO3JldHVyblsuNSooaVswXS1vWzBdKS9hLC41KihpWzFdLW9bMV0pL2FdfSx0LmRwZHg9ZnVuY3Rpb24odCl7cmV0dXJuIHQuX219LHQuZHBkeT1mdW5jdGlvbih0KXtyZXR1cm4gdC5fbX19fSx7Ii4uLy4uL2xpYi9zZWFyY2giOjczNiwiLi9jb21wdXRlX2NvbnRyb2xfcG9pbnRzIjo5MDksIi4vY29uc3RhbnRzIjo5MTAsIi4vY3JlYXRlX2lfZGVyaXZhdGl2ZV9ldmFsdWF0b3IiOjkxMSwiLi9jcmVhdGVfal9kZXJpdmF0aXZlX2V2YWx1YXRvciI6OTEyLCIuL2NyZWF0ZV9zcGxpbmVfZXZhbHVhdG9yIjo5MTN9XSw5MjI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgYSxpLG8scz1bXSxsPVtdLGM9dFswXS5sZW5ndGgsdT10Lmxlbmd0aDtmdW5jdGlvbiBoKGUscil7dmFyIG4sYT0wLGk9MDtyZXR1cm4gZT4wJiZ2b2lkIDAhPT0obj10W3JdW2UtMV0pJiYoaSsrLGErPW4pLGU8Yy0xJiZ2b2lkIDAhPT0obj10W3JdW2UrMV0pJiYoaSsrLGErPW4pLHI+MCYmdm9pZCAwIT09KG49dFtyLTFdW2VdKSYmKGkrKyxhKz1uKSxyPHUtMSYmdm9pZCAwIT09KG49dFtyKzFdW2VdKSYmKGkrKyxhKz1uKSxhL01hdGgubWF4KDEsaSl9dmFyIGYscCxkLGcsdixtLHkseCxiLF8sdyxrPTA7Zm9yKGE9MDthPGM7YSsrKWZvcihpPTA7aTx1O2krKyl2b2lkIDA9PT10W2ldW2FdJiYocy5wdXNoKGEpLGwucHVzaChpKSx0W2ldW2FdPWgoYSxpKSksaz1NYXRoLm1heChrLE1hdGguYWJzKHRbaV1bYV0pKTtpZighcy5sZW5ndGgpcmV0dXJuIHQ7dmFyIFQ9MCxNPTAsQT1zLmxlbmd0aDtkb3tmb3IoVD0wLG89MDtvPEE7bysrKXthPXNbb10saT1sW29dO3ZhciBTLEUsTCxDLFAsTyx6PTAsST0wOzA9PT1hPyhMPWVbUD1NYXRoLm1pbihjLTEsMildLEM9ZVsxXSxTPXRbaV1bUF0sSSs9KEU9dFtpXVsxXSkrKEUtUykqKGVbMF0tQykvKEMtTCkseisrKTphPT09Yy0xJiYoTD1lW1A9TWF0aC5tYXgoMCxjLTMpXSxDPWVbYy0yXSxTPXRbaV1bUF0sSSs9KEU9dFtpXVtjLTJdKSsoRS1TKSooZVtjLTFdLUMpLyhDLUwpLHorKyksKDA9PT1hfHxhPT09Yy0xKSYmaT4wJiZpPHUtMSYmKGY9cltpKzFdLXJbaV0sSSs9KChwPXJbaV0tcltpLTFdKSp0W2krMV1bYV0rZip0W2ktMV1bYV0pLyhwK2YpLHorKyksMD09PWk/KEw9cltPPU1hdGgubWluKHUtMSwyKV0sQz1yWzFdLFM9dFtPXVthXSxJKz0oRT10WzFdW2FdKSsoRS1TKSooclswXS1DKS8oQy1MKSx6KyspOmk9PT11LTEmJihMPXJbTz1NYXRoLm1heCgwLHUtMyldLEM9clt1LTJdLFM9dFtPXVthXSxJKz0oRT10W3UtMl1bYV0pKyhFLVMpKihyW3UtMV0tQykvKEMtTCkseisrKSwoMD09PWl8fGk9PT11LTEpJiZhPjAmJmE8Yy0xJiYoZj1lW2ErMV0tZVthXSxJKz0oKHA9ZVthXS1lW2EtMV0pKnRbaV1bYSsxXStmKnRbaV1bYS0xXSkvKHArZikseisrKSx6P0kvPXo6KGQ9ZVthKzFdLWVbYV0sZz1lW2FdLWVbYS0xXSx4PSh2PXJbaSsxXS1yW2ldKSoobT1yW2ldLXJbaS0xXSkqKHYrbSksST0oKHk9ZCpnKihkK2cpKSoobSp0W2krMV1bYV0rdip0W2ktMV1bYV0pK3gqKGcqdFtpXVthKzFdK2QqdFtpXVthLTFdKSkvKHgqKGcrZCkreSoobSt2KSkpLFQrPShfPShiPUktdFtpXVthXSkvaykqXyx3PXo/MDouODUsdFtpXVthXSs9YiooMSt3KX1UPU1hdGguc3FydChUKX13aGlsZShNKys8MTAwJiZUPjFlLTUpO3JldHVybiBuLmxvZygiU21vb3RoZXIgY29udmVyZ2VkIHRvIixULCJhZnRlciIsTSwiaXRlcmF0aW9ucyIpLHR9fSx7Ii4uLy4uL2xpYiI6NzE3fV0sOTIzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLmlzQXJyYXkxRDtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBhPXIoIngiKSxpPWEmJmEubGVuZ3RoLG89cigieSIpLHM9byYmby5sZW5ndGg7aWYoIWkmJiFzKXJldHVybiExO2lmKGUuX2NoZWF0ZXI9IWEsaSYmIW4oYSl8fHMmJiFuKG8pKWUuX2xlbmd0aD1udWxsO2Vsc2V7dmFyIGw9aT9hLmxlbmd0aDoxLzA7cyYmKGw9TWF0aC5taW4obCxvLmxlbmd0aCkpLGUuYSYmZS5hLmxlbmd0aCYmKGw9TWF0aC5taW4obCxlLmEubGVuZ3RoKSksZS5iJiZlLmIubGVuZ3RoJiYobD1NYXRoLm1pbihsLGUuYi5sZW5ndGgpKSxlLl9sZW5ndGg9bH1yZXR1cm4hMH19LHsiLi4vLi4vbGliIjo3MTd9XSw5MjQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxhPXQoIi4uL3NjYXR0ZXJnZW8vYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxvPXQoIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyIpLmRlZmF1bHRMaW5lLGw9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsYz1hLm1hcmtlci5saW5lO2UuZXhwb3J0cz1sKHtsb2NhdGlvbnM6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sbG9jYXRpb25tb2RlOmEubG9jYXRpb25tb2RlLHo6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sZ2VvanNvbjpsKHt9LGEuZ2VvanNvbix7fSksZmVhdHVyZWlka2V5OmEuZmVhdHVyZWlka2V5LHRleHQ6bCh7fSxhLnRleHQse30pLGhvdmVydGV4dDpsKHt9LGEuaG92ZXJ0ZXh0LHt9KSxtYXJrZXI6e2xpbmU6e2NvbG9yOmwoe30sYy5jb2xvcix7ZGZsdDpzfSksd2lkdGg6bCh7fSxjLndpZHRoLHtkZmx0OjF9KSxlZGl0VHlwZToiY2FsYyJ9LG9wYWNpdHk6e3ZhbFR5cGU6Im51bWJlciIsYXJyYXlPazohMCxtaW46MCxtYXg6MSxkZmx0OjEsZWRpdFR5cGU6InN0eWxlIn0sZWRpdFR5cGU6ImNhbGMifSxzZWxlY3RlZDp7bWFya2VyOntvcGFjaXR5OmEuc2VsZWN0ZWQubWFya2VyLm9wYWNpdHksZWRpdFR5cGU6InBsb3QifSxlZGl0VHlwZToicGxvdCJ9LHVuc2VsZWN0ZWQ6e21hcmtlcjp7b3BhY2l0eTphLnVuc2VsZWN0ZWQubWFya2VyLm9wYWNpdHksZWRpdFR5cGU6InBsb3QifSxlZGl0VHlwZToicGxvdCJ9LGhvdmVyaW5mbzpsKHt9LG8uaG92ZXJpbmZvLHtlZGl0VHlwZToiY2FsYyIsZmxhZ3M6WyJsb2NhdGlvbiIsInoiLCJ0ZXh0IiwibmFtZSJdfSksaG92ZXJ0ZW1wbGF0ZTpuKCksc2hvd2xlZ2VuZDpsKHt9LG8uc2hvd2xlZ2VuZCx7ZGZsdDohMX0pfSxpKCIiLHtjTGV0dGVyOiJ6IixlZGl0VHlwZU92ZXJyaWRlOiJjYWxjIn0pKX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiOjU5MSwiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiOjU5OSwiLi4vLi4vbGliL2V4dGVuZCI6NzA4LCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIjo3NjIsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjg0MSwiLi4vc2NhdHRlcmdlby9hdHRyaWJ1dGVzIjoxMTYxfV0sOTI1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksYT10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiKSxvPXQoIi4uL3NjYXR0ZXIvYXJyYXlzX3RvX2NhbGNkYXRhIikscz10KCIuLi9zY2F0dGVyL2NhbGNfc2VsZWN0aW9uIik7ZnVuY3Rpb24gbCh0KXtyZXR1cm4gdCYmInN0cmluZyI9PXR5cGVvZiB0fWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLGM9ZS5fbGVuZ3RoLHU9bmV3IEFycmF5KGMpO3I9ZS5nZW9qc29uP2Z1bmN0aW9uKHQpe3JldHVybiBsKHQpfHxuKHQpfTpsO2Zvcih2YXIgaD0wO2g8YztoKyspe3ZhciBmPXVbaF09e30scD1lLmxvY2F0aW9uc1toXSxkPWUueltoXTtyKHApJiZuKGQpPyhmLmxvYz1wLGYuej1kKTooZi5sb2M9bnVsbCxmLno9YSksZi5pbmRleD1ofXJldHVybiBvKHUsZSksaSh0LGUse3ZhbHM6ZS56LGNvbnRhaW5lclN0cjoiIixjTGV0dGVyOiJ6In0pLHModSxlKSx1fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY2FsYyI6NjAwLCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo2OTMsIi4uL3NjYXR0ZXIvYXJyYXlzX3RvX2NhbGNkYXRhIjoxMTE5LCIuLi9zY2F0dGVyL2NhbGNfc2VsZWN0aW9uIjoxMTIyLCJmYXN0LWlzbnVtZXJpYyI6MjI4fV0sOTI2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIiksaT10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbyl7ZnVuY3Rpb24gcyhyLGEpe3JldHVybiBuLmNvZXJjZSh0LGUsaSxyLGEpfXZhciBsPXMoImxvY2F0aW9ucyIpLGM9cygieiIpO2lmKGwmJmwubGVuZ3RoJiZuLmlzQXJyYXlPclR5cGVkQXJyYXkoYykmJmMubGVuZ3RoKXtlLl9sZW5ndGg9TWF0aC5taW4obC5sZW5ndGgsYy5sZW5ndGgpO3ZhciB1LGg9cygiZ2VvanNvbiIpOygic3RyaW5nIj09dHlwZW9mIGgmJiIiIT09aHx8bi5pc1BsYWluT2JqZWN0KGgpKSYmKHU9Imdlb2pzb24taWQiKSwiZ2VvanNvbi1pZCI9PT1zKCJsb2NhdGlvbm1vZGUiLHUpJiZzKCJmZWF0dXJlaWRrZXkiKSxzKCJ0ZXh0IikscygiaG92ZXJ0ZXh0IikscygiaG92ZXJ0ZW1wbGF0ZSIpLHMoIm1hcmtlci5saW5lLndpZHRoIikmJnMoIm1hcmtlci5saW5lLmNvbG9yIikscygibWFya2VyLm9wYWNpdHkiKSxhKHQsZSxvLHMse3ByZWZpeDoiIixjTGV0dGVyOiJ6In0pLG4uY29lcmNlU2VsZWN0aW9uTWFya2VyT3BhY2l0eShlLHMpfWVsc2UgZS52aXNpYmxlPSExfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiOjYwMiwiLi4vLi4vbGliIjo3MTcsIi4vYXR0cmlidXRlcyI6OTI0fV0sOTI3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuLGEpe3QubG9jYXRpb249ZS5sb2NhdGlvbix0Lno9ZS56O3ZhciBpPW5bYV07cmV0dXJuIGkuZkluJiZpLmZJbi5wcm9wZXJ0aWVzJiYodC5wcm9wZXJ0aWVzPWkuZkluLnByb3BlcnRpZXMpLHQuY3Q9aS5jdCx0fX0se31dLDkyODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGE9dCgiLi9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9saWIiKS5maWxsVGV4dDtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBvLHMsbCxjLHU9dC5jZCxoPXVbMF0udHJhY2UsZj10LnN1YnBsb3Q7Zm9yKHM9MDtzPHUubGVuZ3RoO3MrKylpZihjPSExLChvPXVbc10pLl9wb2x5Z29ucyl7Zm9yKGw9MDtsPG8uX3BvbHlnb25zLmxlbmd0aDtsKyspby5fcG9seWdvbnNbbF0uY29udGFpbnMoW2Uscl0pJiYoYz0hYyksby5fcG9seWdvbnNbbF0uY29udGFpbnMoW2UrMzYwLHJdKSYmKGM9IWMpO2lmKGMpYnJlYWt9aWYoYyYmbylyZXR1cm4gdC54MD10LngxPXQueGEuYzJwKG8uY3QpLHQueTA9dC55MT10LnlhLmMycChvLmN0KSx0LmluZGV4PW8uaW5kZXgsdC5sb2NhdGlvbj1vLmxvYyx0Lno9by56LHQuekxhYmVsPW4udGlja1RleHQoZi5tb2NrQXhpcyxmLm1vY2tBeGlzLmMybChvLnopLCJob3ZlciIpLnRleHQsdC5ob3ZlcnRlbXBsYXRlPW8uaG92ZXJ0ZW1wbGF0ZSxmdW5jdGlvbih0LGUscil7aWYoZS5ob3ZlcnRlbXBsYXRlKXJldHVybjt2YXIgbj1yLmhpfHxlLmhvdmVyaW5mbyxvPVN0cmluZyhyLmxvYykscz0iYWxsIj09PW4/YS5ob3ZlcmluZm8uZmxhZ3M6bi5zcGxpdCgiKyIpLGw9LTEhPT1zLmluZGV4T2YoIm5hbWUiKSxjPS0xIT09cy5pbmRleE9mKCJsb2NhdGlvbiIpLHU9LTEhPT1zLmluZGV4T2YoInoiKSxoPS0xIT09cy5pbmRleE9mKCJ0ZXh0IiksZj1bXTshbCYmYz90Lm5hbWVPdmVycmlkZT1vOihsJiYodC5uYW1lT3ZlcnJpZGU9ZS5uYW1lKSxjJiZmLnB1c2gobykpO3UmJmYucHVzaCh0LnpMYWJlbCk7aCYmaShyLGUsZik7dC5leHRyYVRleHQ9Zi5qb2luKCI8YnI+Iil9KHQsaCxvLGYubW9ja0F4aXMpLFt0XX19LHsiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo3NjUsIi4vYXR0cmlidXRlcyI6OTI0fV0sOTI5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY29sb3JiYXI6dCgiLi4vaGVhdG1hcC9jb2xvcmJhciIpLGNhbGM6dCgiLi9jYWxjIiksY2FsY0dlb0pTT046dCgiLi9wbG90IikuY2FsY0dlb0pTT04scGxvdDp0KCIuL3Bsb3QiKS5wbG90LHN0eWxlOnQoIi4vc3R5bGUiKS5zdHlsZSxzdHlsZU9uU2VsZWN0OnQoIi4vc3R5bGUiKS5zdHlsZU9uU2VsZWN0LGhvdmVyUG9pbnRzOnQoIi4vaG92ZXIiKSxldmVudERhdGE6dCgiLi9ldmVudF9kYXRhIiksc2VsZWN0UG9pbnRzOnQoIi4vc2VsZWN0IiksbW9kdWxlVHlwZToidHJhY2UiLG5hbWU6ImNob3JvcGxldGgiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL2dlbyIpLGNhdGVnb3JpZXM6WyJnZW8iLCJub09wYWNpdHkiLCJzaG93TGVnZW5kIl0sbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvZ2VvIjo3OTUsIi4uL2hlYXRtYXAvY29sb3JiYXIiOjEwMDMsIi4vYXR0cmlidXRlcyI6OTI0LCIuL2NhbGMiOjkyNSwiLi9kZWZhdWx0cyI6OTI2LCIuL2V2ZW50X2RhdGEiOjkyNywiLi9ob3ZlciI6OTI4LCIuL3Bsb3QiOjkzMCwiLi9zZWxlY3QiOjkzMSwiLi9zdHlsZSI6OTMyfV0sOTMwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksYT10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL2xpYi9nZW9fbG9jYXRpb25fdXRpbHMiKSxvPXQoIi4uLy4uL2xpYi90b3BvanNvbl91dGlscyIpLmdldFRvcG9qc29uRmVhdHVyZXMscz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXV0b3JhbmdlIikuZmluZEV4dHJlbWVzLGw9dCgiLi9zdHlsZSIpLnN0eWxlO2UuZXhwb3J0cz17Y2FsY0dlb0pTT046ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dFswXS50cmFjZSxuPWVbci5nZW9dLGE9bi5fc3VicGxvdCxsPXIubG9jYXRpb25tb2RlLGM9ci5fbGVuZ3RoLHU9Imdlb2pzb24taWQiPT09bD9pLmV4dHJhY3RUcmFjZUZlYXR1cmUodCk6byhyLGEudG9wb2pzb24pLGg9W10sZj1bXSxwPTA7cDxjO3ArKyl7dmFyIGQ9dFtwXSxnPSJnZW9qc29uLWlkIj09PWw/ZC5mT3V0OmkubG9jYXRpb25Ub0ZlYXR1cmUobCxkLmxvYyx1KTtpZihnKXtkLmdlb2pzb249ZyxkLmN0PWcucHJvcGVydGllcy5jdCxkLl9wb2x5Z29ucz1pLmZlYXR1cmUycG9seWdvbnMoZyk7dmFyIHY9aS5jb21wdXRlQmJveChnKTtoLnB1c2godlswXSx2WzJdKSxmLnB1c2godlsxXSx2WzNdKX1lbHNlIGQuZ2VvanNvbj1udWxsfWlmKCJnZW9qc29uIj09PW4uZml0Ym91bmRzJiYiZ2VvanNvbi1pZCI9PT1sKXt2YXIgbT1pLmNvbXB1dGVCYm94KGkuZ2V0VHJhY2VHZW9qc29uKHIpKTtoPVttWzBdLG1bMl1dLGY9W21bMV0sbVszXV19dmFyIHk9e3BhZGRlZDohMH07ci5fZXh0cmVtZXMubG9uPXMobi5sb25heGlzLl9heCxoLHkpLHIuX2V4dHJlbWVzLmxhdD1zKG4ubGF0YXhpcy5fYXgsZix5KX0scGxvdDpmdW5jdGlvbih0LGUscil7dmFyIGk9ZS5sYXllcnMuYmFja3Bsb3Quc2VsZWN0KCIuY2hvcm9wbGV0aGxheWVyIik7YS5tYWtlVHJhY2VHcm91cHMoaSxyLCJ0cmFjZSBjaG9yb3BsZXRoIikuZWFjaChmdW5jdGlvbihlKXt2YXIgcj1uLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoInBhdGguY2hvcm9wbGV0aGxvY2F0aW9uIikuZGF0YShhLmlkZW50aXR5KTtyLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZCgiY2hvcm9wbGV0aGxvY2F0aW9uIiwhMCksci5leGl0KCkucmVtb3ZlKCksbCh0LGUpfSl9fX0seyIuLi8uLi9saWIiOjcxNywiLi4vLi4vbGliL2dlb19sb2NhdGlvbl91dGlscyI6NzExLCIuLi8uLi9saWIvdG9wb2pzb25fdXRpbHMiOjc0NCwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F1dG9yYW5nZSI6NzY0LCIuL3N0eWxlIjo5MzIsZDM6MTY1fV0sOTMxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLG4sYSxpLG8scz10LmNkLGw9dC54YXhpcyxjPXQueWF4aXMsdT1bXTtpZighMT09PWUpZm9yKHI9MDtyPHMubGVuZ3RoO3IrKylzW3JdLnNlbGVjdGVkPTA7ZWxzZSBmb3Iocj0wO3I8cy5sZW5ndGg7cisrKShhPShuPXNbcl0pLmN0KSYmKGk9bC5jMnAoYSksbz1jLmMycChhKSxlLmNvbnRhaW5zKFtpLG9dLG51bGwscix0KT8odS5wdXNoKHtwb2ludE51bWJlcjpyLGxvbjphWzBdLGxhdDphWzFdfSksbi5zZWxlY3RlZD0xKTpuLnNlbGVjdGVkPTApO3JldHVybiB1fX0se31dLDkzMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksbz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiKTtmdW5jdGlvbiBzKHQsZSl7dmFyIHI9ZVswXS50cmFjZSxzPWVbMF0ubm9kZTMuc2VsZWN0QWxsKCIuY2hvcm9wbGV0aGxvY2F0aW9uIiksbD1yLm1hcmtlcnx8e30sYz1sLmxpbmV8fHt9LHU9by5tYWtlQ29sb3JTY2FsZUZ1bmNGcm9tVHJhY2Uocik7cy5lYWNoKGZ1bmN0aW9uKHQpe24uc2VsZWN0KHRoaXMpLmF0dHIoImZpbGwiLHUodC56KSkuY2FsbChhLnN0cm9rZSx0Lm1sY3x8Yy5jb2xvcikuY2FsbChpLmRhc2hMaW5lLCIiLHQubWx3fHxjLndpZHRofHwwKS5zdHlsZSgib3BhY2l0eSIsbC5vcGFjaXR5KX0pLGkuc2VsZWN0ZWRQb2ludFN0eWxlKHMscix0KX1lLmV4cG9ydHM9e3N0eWxlOmZ1bmN0aW9uKHQsZSl7ZSYmcyh0LGUpfSxzdHlsZU9uU2VsZWN0OmZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXS5ub2RlMyxuPWVbMF0udHJhY2U7bi5zZWxlY3RlZHBvaW50cz9pLnNlbGVjdGVkUG9pbnRTdHlsZShyLnNlbGVjdEFsbCgiLmNob3JvcGxldGhsb2NhdGlvbiIpLG4sdCk6cyh0LGUpfX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTkyLCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiOjYwNCwiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo2MTMsZDM6MTY1fV0sOTMzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2Nob3JvcGxldGgvYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMsbz10KCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdDtlLmV4cG9ydHM9cyh7bG9jYXRpb25zOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHo6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sZ2VvanNvbjp7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYyJ9LGZlYXR1cmVpZGtleTpzKHt9LG4uZmVhdHVyZWlka2V5LHt9KSxiZWxvdzp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToicGxvdCJ9LHRleHQ6bi50ZXh0LGhvdmVydGV4dDpuLmhvdmVydGV4dCxtYXJrZXI6e2xpbmU6e2NvbG9yOnMoe30sbi5tYXJrZXIubGluZS5jb2xvcix7ZWRpdFR5cGU6InBsb3QifSksd2lkdGg6cyh7fSxuLm1hcmtlci5saW5lLndpZHRoLHtlZGl0VHlwZToicGxvdCJ9KSxlZGl0VHlwZToiY2FsYyJ9LG9wYWNpdHk6cyh7fSxuLm1hcmtlci5vcGFjaXR5LHtlZGl0VHlwZToicGxvdCJ9KSxlZGl0VHlwZToiY2FsYyJ9LHNlbGVjdGVkOnttYXJrZXI6e29wYWNpdHk6cyh7fSxuLnNlbGVjdGVkLm1hcmtlci5vcGFjaXR5LHtlZGl0VHlwZToicGxvdCJ9KSxlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJwbG90In0sdW5zZWxlY3RlZDp7bWFya2VyOntvcGFjaXR5OnMoe30sbi51bnNlbGVjdGVkLm1hcmtlci5vcGFjaXR5LHtlZGl0VHlwZToicGxvdCJ9KSxlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJwbG90In0saG92ZXJpbmZvOm4uaG92ZXJpbmZvLGhvdmVydGVtcGxhdGU6aSh7fSx7a2V5czpbInByb3BlcnRpZXMiXX0pLHNob3dsZWdlbmQ6cyh7fSxvLnNob3dsZWdlbmQse2RmbHQ6ITF9KX0sYSgiIix7Y0xldHRlcjoieiIsZWRpdFR5cGVPdmVycmlkZToiY2FsYyJ9KSl9LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiOjU5OSwiLi4vLi4vbGliL2V4dGVuZCI6NzA4LCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIjo3NjIsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjg0MSwiLi4vY2hvcm9wbGV0aC9hdHRyaWJ1dGVzIjo5MjR9XSw5MzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxhPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIiksbz10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxzPXQoIi4uLy4uL2xpYi9nZW9qc29uX3V0aWxzIikubWFrZUJsYW5rLGw9dCgiLi4vLi4vbGliL2dlb19sb2NhdGlvbl91dGlscyIpO2Z1bmN0aW9uIGModCl7dmFyIGUscj10WzBdLnRyYWNlLG49ci5fb3B0cztpZihyLnNlbGVjdGVkcG9pbnRzKXtmb3IodmFyIGk9by5tYWtlU2VsZWN0ZWRQb2ludFN0eWxlRm5zKHIpLHM9MDtzPHQubGVuZ3RoO3MrKyl7dmFyIGw9dFtzXTtsLmZPdXQmJihsLmZPdXQucHJvcGVydGllcy5tbzI9aS5zZWxlY3RlZE9wYWNpdHlGbihsKSl9ZT17dHlwZToiaWRlbnRpdHkiLHByb3BlcnR5OiJtbzIifX1lbHNlIGU9YS5pc0FycmF5T3JUeXBlZEFycmF5KHIubWFya2VyLm9wYWNpdHkpP3t0eXBlOiJpZGVudGl0eSIscHJvcGVydHk6Im1vIn06ci5tYXJrZXIub3BhY2l0eTtyZXR1cm4gYS5leHRlbmRGbGF0KG4uZmlsbC5wYWludCx7ImZpbGwtb3BhY2l0eSI6ZX0pLGEuZXh0ZW5kRmxhdChuLmxpbmUucGFpbnQseyJsaW5lLW9wYWNpdHkiOmV9KSxufWUuZXhwb3J0cz17Y29udmVydDpmdW5jdGlvbih0KXt2YXIgZT10WzBdLnRyYWNlLHI9ITA9PT1lLnZpc2libGUmJjAhPT1lLl9sZW5ndGgsbz17bGF5b3V0Ont2aXNpYmlsaXR5OiJub25lIn0scGFpbnQ6e319LHU9e2xheW91dDp7dmlzaWJpbGl0eToibm9uZSJ9LHBhaW50Ont9fSxoPWUuX29wdHM9e2ZpbGw6byxsaW5lOnUsZ2VvanNvbjpzKCl9O2lmKCFyKXJldHVybiBoO3ZhciBmPWwuZXh0cmFjdFRyYWNlRmVhdHVyZSh0KTtpZighZilyZXR1cm4gaDt2YXIgcCxkLGcsdj1pLm1ha2VDb2xvclNjYWxlRnVuY0Zyb21UcmFjZShlKSxtPWUubWFya2VyLHk9bS5saW5lfHx7fTthLmlzQXJyYXlPclR5cGVkQXJyYXkobS5vcGFjaXR5KSYmKHA9ZnVuY3Rpb24odCl7dmFyIGU9dC5tbztyZXR1cm4gbihlKT8rYS5jb25zdHJhaW4oZSwwLDEpOjB9KSxhLmlzQXJyYXlPclR5cGVkQXJyYXkoeS5jb2xvcikmJihkPWZ1bmN0aW9uKHQpe3JldHVybiB0Lm1sY30pLGEuaXNBcnJheU9yVHlwZWRBcnJheSh5LndpZHRoKSYmKGc9ZnVuY3Rpb24odCl7cmV0dXJuIHQubWx3fSk7Zm9yKHZhciB4PTA7eDx0Lmxlbmd0aDt4Kyspe3ZhciBiPXRbeF0sXz1iLmZPdXQ7aWYoXyl7dmFyIHc9Xy5wcm9wZXJ0aWVzO3cuZmM9dihiLnopLHAmJih3Lm1vPXAoYikpLGQmJih3Lm1sYz1kKGIpKSxnJiYody5tbHc9ZyhiKSksYi5jdD13LmN0LGIuX3BvbHlnb25zPWwuZmVhdHVyZTJwb2x5Z29ucyhfKX19dmFyIGs9cD97dHlwZToiaWRlbnRpdHkiLHByb3BlcnR5OiJtbyJ9Om0ub3BhY2l0eTtyZXR1cm4gYS5leHRlbmRGbGF0KG8ucGFpbnQseyJmaWxsLWNvbG9yIjp7dHlwZToiaWRlbnRpdHkiLHByb3BlcnR5OiJmYyJ9LCJmaWxsLW9wYWNpdHkiOmt9KSxhLmV4dGVuZEZsYXQodS5wYWludCx7ImxpbmUtY29sb3IiOmQ/e3R5cGU6ImlkZW50aXR5Iixwcm9wZXJ0eToibWxjIn06eS5jb2xvciwibGluZS13aWR0aCI6Zz97dHlwZToiaWRlbnRpdHkiLHByb3BlcnR5OiJtbHcifTp5LndpZHRoLCJsaW5lLW9wYWNpdHkiOmt9KSxvLmxheW91dC52aXNpYmlsaXR5PSJ2aXNpYmxlIix1LmxheW91dC52aXNpYmlsaXR5PSJ2aXNpYmxlIixoLmdlb2pzb249e3R5cGU6IkZlYXR1cmVDb2xsZWN0aW9uIixmZWF0dXJlczpmfSxjKHQpLGh9LGNvbnZlcnRPblNlbGVjdDpjfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiOjYwNCwiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo2MTMsIi4uLy4uL2xpYiI6NzE3LCIuLi8uLi9saWIvZ2VvX2xvY2F0aW9uX3V0aWxzIjo3MTEsIi4uLy4uL2xpYi9nZW9qc29uX3V0aWxzIjo3MTIsImZhc3QtaXNudW1lcmljIjoyMjh9XSw5MzU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiKSxpPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixvKXtmdW5jdGlvbiBzKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxpLHIsYSl9dmFyIGw9cygibG9jYXRpb25zIiksYz1zKCJ6IiksdT1zKCJnZW9qc29uIik7bi5pc0FycmF5T3JUeXBlZEFycmF5KGwpJiZsLmxlbmd0aCYmbi5pc0FycmF5T3JUeXBlZEFycmF5KGMpJiZjLmxlbmd0aCYmKCJzdHJpbmciPT10eXBlb2YgdSYmIiIhPT11fHxuLmlzUGxhaW5PYmplY3QodSkpPyhzKCJmZWF0dXJlaWRrZXkiKSxlLl9sZW5ndGg9TWF0aC5taW4obC5sZW5ndGgsYy5sZW5ndGgpLHMoImJlbG93IikscygidGV4dCIpLHMoImhvdmVydGV4dCIpLHMoImhvdmVydGVtcGxhdGUiKSxzKCJtYXJrZXIubGluZS53aWR0aCIpJiZzKCJtYXJrZXIubGluZS5jb2xvciIpLHMoIm1hcmtlci5vcGFjaXR5IiksYSh0LGUsbyxzLHtwcmVmaXg6IiIsY0xldHRlcjoieiJ9KSxuLmNvZXJjZVNlbGVjdGlvbk1hcmtlck9wYWNpdHkoZSxzKSk6ZS52aXNpYmxlPSExfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiOjYwMiwiLi4vLi4vbGliIjo3MTcsIi4vYXR0cmlidXRlcyI6OTMzfV0sOTM2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY29sb3JiYXI6dCgiLi4vaGVhdG1hcC9jb2xvcmJhciIpLGNhbGM6dCgiLi4vY2hvcm9wbGV0aC9jYWxjIikscGxvdDp0KCIuL3Bsb3QiKSxob3ZlclBvaW50czp0KCIuLi9jaG9yb3BsZXRoL2hvdmVyIiksZXZlbnREYXRhOnQoIi4uL2Nob3JvcGxldGgvZXZlbnRfZGF0YSIpLHNlbGVjdFBvaW50czp0KCIuLi9jaG9yb3BsZXRoL3NlbGVjdCIpLHN0eWxlT25TZWxlY3Q6ZnVuY3Rpb24odCxlKXtlJiZlWzBdLnRyYWNlLl9nbFRyYWNlLnVwZGF0ZU9uU2VsZWN0KGUpfSxnZXRCZWxvdzpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1lLmdldE1hcExheWVycygpLG49ci5sZW5ndGgtMjtuPj0wO24tLSl7dmFyIGE9cltuXS5pZDtpZigic3RyaW5nIj09dHlwZW9mIGEmJjA9PT1hLmluZGV4T2YoIndhdGVyIikpZm9yKHZhciBpPW4rMTtpPHIubGVuZ3RoO2krKylpZigic3RyaW5nIj09dHlwZW9mKGE9cltpXS5pZCkmJi0xPT09YS5pbmRleE9mKCJwbG90bHktIikpcmV0dXJuIGF9fSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToiY2hvcm9wbGV0aG1hcGJveCIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvbWFwYm94IiksY2F0ZWdvcmllczpbIm1hcGJveCIsImdsIiwibm9PcGFjaXR5Iiwic2hvd0xlZ2VuZCJdLG1ldGE6e2hyX25hbWU6ImNob3JvcGxldGhfbWFwYm94In19fSx7Ii4uLy4uL3Bsb3RzL21hcGJveCI6ODIwLCIuLi9jaG9yb3BsZXRoL2NhbGMiOjkyNSwiLi4vY2hvcm9wbGV0aC9ldmVudF9kYXRhIjo5MjcsIi4uL2Nob3JvcGxldGgvaG92ZXIiOjkyOCwiLi4vY2hvcm9wbGV0aC9zZWxlY3QiOjkzMSwiLi4vaGVhdG1hcC9jb2xvcmJhciI6MTAwMywiLi9hdHRyaWJ1dGVzIjo5MzMsIi4vZGVmYXVsdHMiOjkzNSwiLi9wbG90Ijo5Mzd9XSw5Mzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9jb252ZXJ0IikuY29udmVydCxhPXQoIi4vY29udmVydCIpLmNvbnZlcnRPblNlbGVjdCxpPXQoIi4uLy4uL3Bsb3RzL21hcGJveC9jb25zdGFudHMiKS50cmFjZUxheWVyUHJlZml4O2Z1bmN0aW9uIG8odCxlKXt0aGlzLnR5cGU9ImNob3JvcGxldGhtYXBib3giLHRoaXMuc3VicGxvdD10LHRoaXMudWlkPWUsdGhpcy5zb3VyY2VJZD0ic291cmNlLSIrZSx0aGlzLmxheWVyTGlzdD1bWyJmaWxsIixpK2UrIi1maWxsIl0sWyJsaW5lIixpK2UrIi1saW5lIl1dLHRoaXMuYmVsb3c9bnVsbH12YXIgcz1vLnByb3RvdHlwZTtzLnVwZGF0ZT1mdW5jdGlvbih0KXt0aGlzLl91cGRhdGUobih0KSl9LHMudXBkYXRlT25TZWxlY3Q9ZnVuY3Rpb24odCl7dGhpcy5fdXBkYXRlKGEodCkpfSxzLl91cGRhdGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5zdWJwbG90LHI9dGhpcy5sYXllckxpc3Qsbj1lLmJlbG93TG9va3VwWyJ0cmFjZS0iK3RoaXMudWlkXTtlLm1hcC5nZXRTb3VyY2UodGhpcy5zb3VyY2VJZCkuc2V0RGF0YSh0Lmdlb2pzb24pLG4hPT10aGlzLmJlbG93JiYodGhpcy5fcmVtb3ZlTGF5ZXJzKCksdGhpcy5fYWRkTGF5ZXJzKHQsbiksdGhpcy5iZWxvdz1uKTtmb3IodmFyIGE9MDthPHIubGVuZ3RoO2ErKyl7dmFyIGk9clthXSxvPWlbMF0scz1pWzFdLGw9dFtvXTtlLnNldE9wdGlvbnMocywic2V0TGF5b3V0UHJvcGVydHkiLGwubGF5b3V0KSwidmlzaWJsZSI9PT1sLmxheW91dC52aXNpYmlsaXR5JiZlLnNldE9wdGlvbnMocywic2V0UGFpbnRQcm9wZXJ0eSIsbC5wYWludCl9fSxzLl9hZGRMYXllcnM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dGhpcy5zdWJwbG90LG49dGhpcy5sYXllckxpc3QsYT10aGlzLnNvdXJjZUlkLGk9MDtpPG4ubGVuZ3RoO2krKyl7dmFyIG89bltpXSxzPW9bMF0sbD10W3NdO3IuYWRkTGF5ZXIoe3R5cGU6cyxpZDpvWzFdLHNvdXJjZTphLGxheW91dDpsLmxheW91dCxwYWludDpsLnBhaW50fSxlKX19LHMuX3JlbW92ZUxheWVycz1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLnN1YnBsb3QubWFwLGU9dGhpcy5sYXllckxpc3Qscj1lLmxlbmd0aC0xO3I+PTA7ci0tKXQucmVtb3ZlTGF5ZXIoZVtyXVsxXSl9LHMuZGlzcG9zZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc3VicGxvdC5tYXA7dGhpcy5fcmVtb3ZlTGF5ZXJzKCksdC5yZW1vdmVTb3VyY2UodGhpcy5zb3VyY2VJZCl9LGUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWVbMF0udHJhY2UsYT1uZXcgbyh0LHIudWlkKSxpPWEuc291cmNlSWQscz1uKGUpLGw9YS5iZWxvdz10LmJlbG93TG9va3VwWyJ0cmFjZS0iK3IudWlkXTtyZXR1cm4gdC5tYXAuYWRkU291cmNlKGkse3R5cGU6Imdlb2pzb24iLGRhdGE6cy5nZW9qc29ufSksYS5fYWRkTGF5ZXJzKHMsbCksZVswXS50cmFjZS5fZ2xUcmFjZT1hLGF9fSx7Ii4uLy4uL3Bsb3RzL21hcGJveC9jb25zdGFudHMiOjgxOCwiLi9jb252ZXJ0Ijo5MzR9XSw5Mzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMsaT10KCIuLi9tZXNoM2QvYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLHM9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsbD17eDp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSx5Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LHo6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0sdTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSx2Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHc6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sc2l6ZW1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInNjYWxlZCIsImFic29sdXRlIl0sZWRpdFR5cGU6ImNhbGMiLGRmbHQ6InNjYWxlZCJ9LHNpemVyZWY6e3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6ImNhbGMiLG1pbjowfSxhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLGVkaXRUeXBlOiJjYWxjIix2YWx1ZXM6WyJ0aXAiLCJ0YWlsIiwiY20iLCJjZW50ZXIiXSxkZmx0OiJjbSJ9LHRleHQ6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixhcnJheU9rOiEwLGVkaXRUeXBlOiJjYWxjIn0saG92ZXJ0ZXh0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsYXJyYXlPazohMCxlZGl0VHlwZToiY2FsYyJ9LGhvdmVydGVtcGxhdGU6YSh7ZWRpdFR5cGU6ImNhbGMifSx7a2V5czpbIm5vcm0iXX0pLHNob3dsZWdlbmQ6cyh7fSxvLnNob3dsZWdlbmQse2RmbHQ6ITF9KX07cyhsLG4oIiIse2NvbG9yQXR0cjoidS92L3cgbm9ybSIsc2hvd1NjYWxlRGZsdDohMCxlZGl0VHlwZU92ZXJyaWRlOiJjYWxjIn0pKTtbIm9wYWNpdHkiLCJsaWdodHBvc2l0aW9uIiwibGlnaHRpbmciXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2xbdF09aVt0XX0pLGwuaG92ZXJpbmZvPXMoe30sby5ob3ZlcmluZm8se2VkaXRUeXBlOiJjYWxjIixmbGFnczpbIngiLCJ5IiwieiIsInUiLCJ2IiwidyIsIm5vcm0iLCJ0ZXh0IiwibmFtZSJdLGRmbHQ6IngreSt6K25vcm0rdGV4dCtuYW1lIn0pLGwudHJhbnNmb3Jtcz12b2lkIDAsZS5leHBvcnRzPWx9LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiOjU5OSwiLi4vLi4vbGliL2V4dGVuZCI6NzA4LCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIjo3NjIsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjg0MSwiLi4vbWVzaDNkL2F0dHJpYnV0ZXMiOjEwNjF9XSw5Mzk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9ZS51LGE9ZS52LGk9ZS53LG89TWF0aC5taW4oZS54Lmxlbmd0aCxlLnkubGVuZ3RoLGUuei5sZW5ndGgsci5sZW5ndGgsYS5sZW5ndGgsaS5sZW5ndGgpLHM9LTEvMCxsPTEvMCxjPTA7YzxvO2MrKyl7dmFyIHU9cltjXSxoPWFbY10sZj1pW2NdLHA9TWF0aC5zcXJ0KHUqdStoKmgrZipmKTtzPU1hdGgubWF4KHMscCksbD1NYXRoLm1pbihsLHApfWUuX2xlbj1vLGUuX25vcm1NYXg9cyxuKHQsZSx7dmFsczpbbCxzXSxjb250YWluZXJTdHI6IiIsY0xldHRlcjoiYyJ9KX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiOjYwMH1dLDk0MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJnbC1jb25lM2QiKSxhPXQoImdsLWNvbmUzZCIpLmNyZWF0ZUNvbmVNZXNoLGk9dCgiLi4vLi4vbGliIikuc2ltcGxlTWFwLG89dCgiLi4vLi4vbGliL2dsX2Zvcm1hdF9jb2xvciIpLnBhcnNlQ29sb3JTY2FsZSxzPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLmV4dHJhY3RPcHRzLGw9dCgiLi4vLi4vcGxvdHMvZ2wzZC96aXAzIik7ZnVuY3Rpb24gYyh0LGUpe3RoaXMuc2NlbmU9dCx0aGlzLnVpZD1lLHRoaXMubWVzaD1udWxsLHRoaXMuZGF0YT1udWxsfXZhciB1PWMucHJvdG90eXBlO3UuaGFuZGxlUGljaz1mdW5jdGlvbih0KXtpZih0Lm9iamVjdD09PXRoaXMubWVzaCl7dmFyIGU9dC5pbmRleD10LmRhdGEuaW5kZXgscj10aGlzLmRhdGEueFtlXSxuPXRoaXMuZGF0YS55W2VdLGE9dGhpcy5kYXRhLnpbZV0saT10aGlzLmRhdGEudVtlXSxvPXRoaXMuZGF0YS52W2VdLHM9dGhpcy5kYXRhLndbZV07dC50cmFjZUNvb3JkaW5hdGU9W3IsbixhLGksbyxzLE1hdGguc3FydChpKmkrbypvK3MqcyldO3ZhciBsPXRoaXMuZGF0YS5ob3ZlcnRleHR8fHRoaXMuZGF0YS50ZXh0O3JldHVybiBBcnJheS5pc0FycmF5KGwpJiZ2b2lkIDAhPT1sW2VdP3QudGV4dExhYmVsPWxbZV06bCYmKHQudGV4dExhYmVsPWwpLCEwfX07dmFyIGg9e3hheGlzOjAseWF4aXM6MSx6YXhpczoyfSxmPXt0aXA6MSx0YWlsOjAsY206LjI1LGNlbnRlcjouNX0scD17dGlwOjEsdGFpbDoxLGNtOi43NSxjZW50ZXI6LjV9O2Z1bmN0aW9uIGQodCxlKXt2YXIgcj10LmZ1bGxTY2VuZUxheW91dCxhPXQuZGF0YVNjYWxlLGM9e307ZnVuY3Rpb24gdSh0LGUpe3ZhciBuPXJbZV0sbz1hW2hbZV1dO3JldHVybiBpKHQsZnVuY3Rpb24odCl7cmV0dXJuIG4uZDJsKHQpKm99KX1jLnZlY3RvcnM9bCh1KGUudSwieGF4aXMiKSx1KGUudiwieWF4aXMiKSx1KGUudywiemF4aXMiKSxlLl9sZW4pLGMucG9zaXRpb25zPWwodShlLngsInhheGlzIiksdShlLnksInlheGlzIiksdShlLnosInpheGlzIiksZS5fbGVuKTt2YXIgZD1zKGUpO2MuY29sb3JtYXA9byhlKSxjLnZlcnRleEludGVuc2l0eUJvdW5kcz1bZC5taW4vZS5fbm9ybU1heCxkLm1heC9lLl9ub3JtTWF4XSxjLmNvbmVPZmZzZXQ9ZltlLmFuY2hvcl0sInNjYWxlZCI9PT1lLnNpemVtb2RlP2MuY29uZVNpemU9ZS5zaXplcmVmfHwuNTpjLmNvbmVTaXplPWUuc2l6ZXJlZiYmZS5fbm9ybU1heD9lLnNpemVyZWYvZS5fbm9ybU1heDouNTt2YXIgZz1uKGMpLHY9ZS5saWdodHBvc2l0aW9uO3JldHVybiBnLmxpZ2h0UG9zaXRpb249W3YueCx2Lnksdi56XSxnLmFtYmllbnQ9ZS5saWdodGluZy5hbWJpZW50LGcuZGlmZnVzZT1lLmxpZ2h0aW5nLmRpZmZ1c2UsZy5zcGVjdWxhcj1lLmxpZ2h0aW5nLnNwZWN1bGFyLGcucm91Z2huZXNzPWUubGlnaHRpbmcucm91Z2huZXNzLGcuZnJlc25lbD1lLmxpZ2h0aW5nLmZyZXNuZWwsZy5vcGFjaXR5PWUub3BhY2l0eSxlLl9wYWQ9cFtlLmFuY2hvcl0qZy52ZWN0b3JTY2FsZSpnLmNvbmVTY2FsZSplLl9ub3JtTWF4LGd9dS51cGRhdGU9ZnVuY3Rpb24odCl7dGhpcy5kYXRhPXQ7dmFyIGU9ZCh0aGlzLnNjZW5lLHQpO3RoaXMubWVzaC51cGRhdGUoZSl9LHUuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuc2NlbmUuZ2xwbG90LnJlbW92ZSh0aGlzLm1lc2gpLHRoaXMubWVzaC5kaXNwb3NlKCl9LGUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQuZ2xwbG90LmdsLG49ZCh0LGUpLGk9YShyLG4pLG89bmV3IGModCxlLnVpZCk7cmV0dXJuIG8ubWVzaD1pLG8uZGF0YT1lLGkuX3RyYWNlPW8sdC5nbHBsb3QuYWRkKGkpLG99fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSI6NjA0LCIuLi8uLi9saWIiOjcxNywiLi4vLi4vbGliL2dsX2Zvcm1hdF9jb2xvciI6NzE0LCIuLi8uLi9wbG90cy9nbDNkL3ppcDMiOjgxNiwiZ2wtY29uZTNkIjoyNDV9XSw5NDE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiKSxpPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixvKXtmdW5jdGlvbiBzKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxpLHIsYSl9dmFyIGw9cygidSIpLGM9cygidiIpLHU9cygidyIpLGg9cygieCIpLGY9cygieSIpLHA9cygieiIpO2wmJmwubGVuZ3RoJiZjJiZjLmxlbmd0aCYmdSYmdS5sZW5ndGgmJmgmJmgubGVuZ3RoJiZmJiZmLmxlbmd0aCYmcCYmcC5sZW5ndGg/KHMoInNpemVyZWYiKSxzKCJzaXplbW9kZSIpLHMoImFuY2hvciIpLHMoImxpZ2h0aW5nLmFtYmllbnQiKSxzKCJsaWdodGluZy5kaWZmdXNlIikscygibGlnaHRpbmcuc3BlY3VsYXIiKSxzKCJsaWdodGluZy5yb3VnaG5lc3MiKSxzKCJsaWdodGluZy5mcmVzbmVsIikscygibGlnaHRwb3NpdGlvbi54IikscygibGlnaHRwb3NpdGlvbi55IikscygibGlnaHRwb3NpdGlvbi56IiksYSh0LGUsbyxzLHtwcmVmaXg6IiIsY0xldHRlcjoiYyJ9KSxzKCJ0ZXh0IikscygiaG92ZXJ0ZXh0IikscygiaG92ZXJ0ZW1wbGF0ZSIpLGUuX2xlbmd0aD1udWxsKTplLnZpc2libGU9ITF9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyI6NjAyLCIuLi8uLi9saWIiOjcxNywiLi9hdHRyaWJ1dGVzIjo5Mzh9XSw5NDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToiY29uZSIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvZ2wzZCIpLGNhdGVnb3JpZXM6WyJnbDNkIiwic2hvd0xlZ2VuZCJdLGF0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNvbG9yYmFyOnttaW46ImNtaW4iLG1heDoiY21heCJ9LGNhbGM6dCgiLi9jYWxjIikscGxvdDp0KCIuL2NvbnZlcnQiKSxldmVudERhdGE6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5ub3JtPWUudHJhY2VDb29yZGluYXRlWzZdLHR9LG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL2dsM2QiOjgwNSwiLi9hdHRyaWJ1dGVzIjo5MzgsIi4vY2FsYyI6OTM5LCIuL2NvbnZlcnQiOjk0MCwiLi9kZWZhdWx0cyI6OTQxfV0sOTQzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2hlYXRtYXAvYXR0cmlidXRlcyIpLGE9dCgiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nL2F0dHJpYnV0ZXMiKS5kYXNoLHM9dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIiksbD10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxjPXQoIi4uLy4uL2NvbnN0YW50cy9maWx0ZXJfb3BzIiksdT1jLkNPTVBBUklTT05fT1BTMixoPWMuSU5URVJWQUxfT1BTLGY9KHQoIi4uLy4uL2NvbnN0YW50cy9kb2NzIikuRk9STUFUX0xJTkssYS5saW5lKTtlLmV4cG9ydHM9bCh7ejpuLnoseDpuLngseDA6bi54MCxkeDpuLmR4LHk6bi55LHkwOm4ueTAsZHk6bi5keSx0ZXh0Om4udGV4dCxob3ZlcnRleHQ6bi5ob3ZlcnRleHQsdHJhbnNwb3NlOm4udHJhbnNwb3NlLHh0eXBlOm4ueHR5cGUseXR5cGU6bi55dHlwZSx6aG92ZXJmb3JtYXQ6bi56aG92ZXJmb3JtYXQsaG92ZXJ0ZW1wbGF0ZTpuLmhvdmVydGVtcGxhdGUsaG92ZXJvbmdhcHM6bi5ob3Zlcm9uZ2Fwcyxjb25uZWN0Z2FwczpsKHt9LG4uY29ubmVjdGdhcHMse30pLGZpbGxjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJjYWxjIn0sYXV0b2NvbnRvdXI6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6ImNhbGMiLGltcGxpZWRFZGl0czp7ImNvbnRvdXJzLnN0YXJ0Ijp2b2lkIDAsImNvbnRvdXJzLmVuZCI6dm9pZCAwLCJjb250b3Vycy5zaXplIjp2b2lkIDB9fSxuY29udG91cnM6e3ZhbFR5cGU6ImludGVnZXIiLGRmbHQ6MTUsbWluOjEsZWRpdFR5cGU6ImNhbGMifSxjb250b3Vyczp7dHlwZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsibGV2ZWxzIiwiY29uc3RyYWludCJdLGRmbHQ6ImxldmVscyIsZWRpdFR5cGU6ImNhbGMifSxzdGFydDp7dmFsVHlwZToibnVtYmVyIixkZmx0Om51bGwsZWRpdFR5cGU6InBsb3QiLGltcGxpZWRFZGl0czp7Il5hdXRvY29udG91ciI6ITF9fSxlbmQ6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDpudWxsLGVkaXRUeXBlOiJwbG90IixpbXBsaWVkRWRpdHM6eyJeYXV0b2NvbnRvdXIiOiExfX0sc2l6ZTp7dmFsVHlwZToibnVtYmVyIixkZmx0Om51bGwsbWluOjAsZWRpdFR5cGU6InBsb3QiLGltcGxpZWRFZGl0czp7Il5hdXRvY29udG91ciI6ITF9fSxjb2xvcmluZzp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZmlsbCIsImhlYXRtYXAiLCJsaW5lcyIsIm5vbmUiXSxkZmx0OiJmaWxsIixlZGl0VHlwZToiY2FsYyJ9LHNob3dsaW5lczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToicGxvdCJ9LHNob3dsYWJlbHM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITEsZWRpdFR5cGU6InBsb3QifSxsYWJlbGZvbnQ6cyh7ZWRpdFR5cGU6InBsb3QiLGNvbG9yRWRpdFR5cGU6InN0eWxlIn0pLGxhYmVsZm9ybWF0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6InBsb3QifSxvcGVyYXRpb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbXS5jb25jYXQodSkuY29uY2F0KGgpLGRmbHQ6Ij0iLGVkaXRUeXBlOiJjYWxjIn0sdmFsdWU6e3ZhbFR5cGU6ImFueSIsZGZsdDowLGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMiLGltcGxpZWRFZGl0czp7YXV0b2NvbnRvdXI6ITF9fSxsaW5lOntjb2xvcjpsKHt9LGYuY29sb3Ise2VkaXRUeXBlOiJzdHlsZStjb2xvcmJhcnMifSksd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZWRpdFR5cGU6InN0eWxlK2NvbG9yYmFycyJ9LGRhc2g6byxzbW9vdGhpbmc6bCh7fSxmLnNtb290aGluZyx7fSksZWRpdFR5cGU6InBsb3QifX0saSgiIix7Y0xldHRlcjoieiIsYXV0b0NvbG9yRGZsdDohMSxlZGl0VHlwZU92ZXJyaWRlOiJjYWxjIn0pKX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6NTk5LCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmcvYXR0cmlidXRlcyI6NjEyLCIuLi8uLi9jb25zdGFudHMvZG9jcyI6Njg4LCIuLi8uLi9jb25zdGFudHMvZmlsdGVyX29wcyI6Njg5LCIuLi8uLi9saWIvZXh0ZW5kIjo3MDgsIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyI6NzkxLCIuLi9oZWF0bWFwL2F0dHJpYnV0ZXMiOjFlMywiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIjoxMTIwfV0sOTQ0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLGE9dCgiLi4vaGVhdG1hcC9jYWxjIiksaT10KCIuL3NldF9jb250b3VycyIpLG89dCgiLi9lbmRfcGx1cyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWEodCxlKSxzPXJbMF0uejtpKGUscyk7dmFyIGwsYz1lLmNvbnRvdXJzLHU9bi5leHRyYWN0T3B0cyhlKTtpZigiaGVhdG1hcCI9PT1jLmNvbG9yaW5nJiZ1LmF1dG8mJiExPT09ZS5hdXRvY29udG91cil7dmFyIGg9Yy5zdGFydCxmPW8oYykscD1jLnNpemV8fDEsZD1NYXRoLmZsb29yKChmLWgpL3ApKzE7aXNGaW5pdGUocCl8fChwPTEsZD0xKTt2YXIgZz1oLXAvMjtsPVtnLGcrZCpwXX1lbHNlIGw9cztyZXR1cm4gbi5jYWxjKHQsZSx7dmFsczpsLGNMZXR0ZXI6InoifSkscn19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIjo2MDQsIi4uL2hlYXRtYXAvY2FsYyI6MTAwMSwiLi9lbmRfcGx1cyI6OTU0LCIuL3NldF9jb250b3VycyI6OTYyfV0sOTQ1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLG49dFswXSxhPW4uejtzd2l0Y2goZS50eXBlKXtjYXNlImxldmVscyI6dmFyIGk9TWF0aC5taW4oYVswXVswXSxhWzBdWzFdKTtmb3Iocj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgbz10W3JdO28ucHJlZml4Qm91bmRhcnk9IW8uZWRnZXBhdGhzLmxlbmd0aCYmKGk+by5sZXZlbHx8by5zdGFydHMubGVuZ3RoJiZpPT09by5sZXZlbCl9YnJlYWs7Y2FzZSJjb25zdHJhaW50IjppZihuLnByZWZpeEJvdW5kYXJ5PSExLG4uZWRnZXBhdGhzLmxlbmd0aClyZXR1cm47dmFyIHM9bi54Lmxlbmd0aCxsPW4ueS5sZW5ndGgsYz0tMS8wLHU9MS8wO2ZvcihyPTA7cjxsO3IrKyl1PU1hdGgubWluKHUsYVtyXVswXSksdT1NYXRoLm1pbih1LGFbcl1bcy0xXSksYz1NYXRoLm1heChjLGFbcl1bMF0pLGM9TWF0aC5tYXgoYyxhW3JdW3MtMV0pO2ZvcihyPTE7cjxzLTE7cisrKXU9TWF0aC5taW4odSxhWzBdW3JdKSx1PU1hdGgubWluKHUsYVtsLTFdW3JdKSxjPU1hdGgubWF4KGMsYVswXVtyXSksYz1NYXRoLm1heChjLGFbbC0xXVtyXSk7dmFyIGgsZixwPWUudmFsdWU7c3dpdGNoKGUuX29wZXJhdGlvbil7Y2FzZSI+IjpwPmMmJihuLnByZWZpeEJvdW5kYXJ5PSEwKTticmVhaztjYXNlIjwiOihwPHV8fG4uc3RhcnRzLmxlbmd0aCYmcD09PXUpJiYobi5wcmVmaXhCb3VuZGFyeT0hMCk7YnJlYWs7Y2FzZSJbXSI6aD1NYXRoLm1pbihwWzBdLHBbMV0pLCgoZj1NYXRoLm1heChwWzBdLHBbMV0pKTx1fHxoPmN8fG4uc3RhcnRzLmxlbmd0aCYmZj09PXUpJiYobi5wcmVmaXhCb3VuZGFyeT0hMCk7YnJlYWs7Y2FzZSJdWyI6aD1NYXRoLm1pbihwWzBdLHBbMV0pLGY9TWF0aC5tYXgocFswXSxwWzFdKSxoPHUmJmY+YyYmKG4ucHJlZml4Qm91bmRhcnk9ITApfX19fSx7fV0sOTQ2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLGE9dCgiLi9tYWtlX2NvbG9yX21hcCIpLGk9dCgiLi9lbmRfcGx1cyIpO2UuZXhwb3J0cz17bWluOiJ6bWluIixtYXg6InptYXgiLGNhbGM6ZnVuY3Rpb24odCxlLHIpe3ZhciBvPWUuY29udG91cnMscz1lLmxpbmUsbD1vLnNpemV8fDEsYz1vLmNvbG9yaW5nLHU9YShlLHtpc0NvbG9yYmFyOiEwfSk7aWYoImhlYXRtYXAiPT09Yyl7dmFyIGg9bi5leHRyYWN0T3B0cyhlKTtyLl9maWxsZ3JhZGllbnQ9aC5yZXZlcnNlc2NhbGU/bi5mbGlwU2NhbGUoaC5jb2xvcnNjYWxlKTpoLmNvbG9yc2NhbGUsci5fenJhbmdlPVtoLm1pbixoLm1heF19ZWxzZSJmaWxsIj09PWMmJihyLl9maWxsY29sb3I9dSk7ci5fbGluZT17Y29sb3I6ImxpbmVzIj09PWM/dTpzLmNvbG9yLHdpZHRoOiExIT09by5zaG93bGluZXM/cy53aWR0aDowLGRhc2g6cy5kYXNofSxyLl9sZXZlbHM9e3N0YXJ0Om8uc3RhcnQsZW5kOmkobyksc2l6ZTpsfX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSI6NjA0LCIuL2VuZF9wbHVzIjo5NTQsIi4vbWFrZV9jb2xvcl9tYXAiOjk1OX1dLDk0NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e0JPVFRPTVNUQVJUOlsxLDksMTMsMTA0LDcxM10sVE9QU1RBUlQ6WzQsNiw3LDEwNCw3MTNdLExFRlRTVEFSVDpbOCwxMiwxNCwyMDgsMTExNF0sUklHSFRTVEFSVDpbMiwzLDExLDIwOCwxMTE0XSxORVdERUxUQTpbbnVsbCxbLTEsMF0sWzAsLTFdLFstMSwwXSxbMSwwXSxudWxsLFswLC0xXSxbLTEsMF0sWzAsMV0sWzAsMV0sbnVsbCxbMCwxXSxbMSwwXSxbMSwwXSxbMCwtMV1dLENIT09TRVNBRERMRTp7MTA0Ols0LDFdLDIwODpbMiw4XSw3MTM6WzcsMTNdLDExMTQ6WzExLDE0XX0sU0FERExFUkVNQUlOREVSOnsxOjQsMjo4LDQ6MSw3OjEzLDg6MiwxMToxNCwxMzo3LDE0OjExfSxMQUJFTERJU1RBTkNFOjIsTEFCRUxJTkNSRUFTRToxMCxMQUJFTE1JTjozLExBQkVMTUFYOjEwLExBQkVMT1BUSU1JWkVSOntFREdFQ09TVDoxLEFOR0xFQ09TVDoxLE5FSUdIQk9SQ09TVDo1LFNBTUVMRVZFTEZBQ1RPUjoxMCxTQU1FTEVWRUxESVNUQU5DRTo1LE1BWENPU1Q6MTAwLElOSVRJQUxTRUFSQ0hQT0lOVFM6MTAsSVRFUkFUSU9OUzo1fX19LHt9XSw5NDg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxhPXQoIi4vbGFiZWxfZGVmYXVsdHMiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxvPWkuYWRkT3BhY2l0eSxzPWkub3BhY2l0eSxsPXQoIi4uLy4uL2NvbnN0YW50cy9maWx0ZXJfb3BzIiksYz1sLkNPTlNUUkFJTlRfUkVEVUNUSU9OLHU9bC5DT01QQVJJU09OX09QUzI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGksbCxoKXt2YXIgZixwLGQsZz1lLmNvbnRvdXJzLHY9cigiY29udG91cnMub3BlcmF0aW9uIik7KGcuX29wZXJhdGlvbj1jW3ZdLGZ1bmN0aW9uKHQsZSl7dmFyIHI7LTE9PT11LmluZGV4T2YoZS5vcGVyYXRpb24pPyh0KCJjb250b3Vycy52YWx1ZSIsWzAsMV0pLEFycmF5LmlzQXJyYXkoZS52YWx1ZSk/ZS52YWx1ZS5sZW5ndGg+Mj9lLnZhbHVlPWUudmFsdWUuc2xpY2UoMik6MD09PWUubGVuZ3RoP2UudmFsdWU9WzAsMV06ZS5sZW5ndGg8Mj8ocj1wYXJzZUZsb2F0KGUudmFsdWVbMF0pLGUudmFsdWU9W3IscisxXSk6ZS52YWx1ZT1bcGFyc2VGbG9hdChlLnZhbHVlWzBdKSxwYXJzZUZsb2F0KGUudmFsdWVbMV0pXTpuKGUudmFsdWUpJiYocj1wYXJzZUZsb2F0KGUudmFsdWUpLGUudmFsdWU9W3IscisxXSkpOih0KCJjb250b3Vycy52YWx1ZSIsMCksbihlLnZhbHVlKXx8KEFycmF5LmlzQXJyYXkoZS52YWx1ZSk/ZS52YWx1ZT1wYXJzZUZsb2F0KGUudmFsdWVbMF0pOmUudmFsdWU9MCkpfShyLGcpLCI9Ij09PXY/Zj1nLnNob3dsaW5lcz0hMDooZj1yKCJjb250b3Vycy5zaG93bGluZXMiKSxkPXIoImZpbGxjb2xvciIsbygodC5saW5lfHx7fSkuY29sb3J8fGwsLjUpKSksZikmJihwPXIoImxpbmUuY29sb3IiLGQmJnMoZCk/byhlLmZpbGxjb2xvciwxKTpsKSxyKCJsaW5lLndpZHRoIiwyKSxyKCJsaW5lLmRhc2giKSk7cigibGluZS5zbW9vdGhpbmciKSxhKHIsaSxwLGgpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo1OTIsIi4uLy4uL2NvbnN0YW50cy9maWx0ZXJfb3BzIjo2ODksIi4vbGFiZWxfZGVmYXVsdHMiOjk1OCwiZmFzdC1pc251bWVyaWMiOjIyOH1dLDk0OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb25zdGFudHMvZmlsdGVyX29wcyIpLGE9dCgiZmFzdC1pc251bWVyaWMiKTtmdW5jdGlvbiBpKHQsZSl7dmFyIHIsaT1BcnJheS5pc0FycmF5KGUpO2Z1bmN0aW9uIG8odCl7cmV0dXJuIGEodCk/K3Q6bnVsbH1yZXR1cm4tMSE9PW4uQ09NUEFSSVNPTl9PUFMyLmluZGV4T2YodCk/cj1vKGk/ZVswXTplKTotMSE9PW4uSU5URVJWQUxfT1BTLmluZGV4T2YodCk/cj1pP1tvKGVbMF0pLG8oZVsxXSldOltvKGUpLG8oZSldOi0xIT09bi5TRVRfT1BTLmluZGV4T2YodCkmJihyPWk/ZS5tYXAobyk6W28oZSldKSxyfWZ1bmN0aW9uIG8odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2U9aSh0LGUpO3ZhciByPU1hdGgubWluKGVbMF0sZVsxXSksbj1NYXRoLm1heChlWzBdLGVbMV0pO3JldHVybntzdGFydDpyLGVuZDpuLHNpemU6bi1yfX19ZnVuY3Rpb24gcyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJue3N0YXJ0OmU9aSh0LGUpLGVuZDoxLzAsc2l6ZToxLzB9fX1lLmV4cG9ydHM9eyJbXSI6bygiW10iKSwiXVsiOm8oIl1bIiksIj4iOnMoIj4iKSwiPCI6cygiPCIpLCI9IjpzKCI9Iil9fSx7Ii4uLy4uL2NvbnN0YW50cy9maWx0ZXJfb3BzIjo2ODksImZhc3QtaXNudW1lcmljIjoyMjh9XSw5NTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPW4oImNvbnRvdXJzLnN0YXJ0IiksaT1uKCJjb250b3Vycy5lbmQiKSxvPSExPT09YXx8ITE9PT1pLHM9cigiY29udG91cnMuc2l6ZSIpOyEobz9lLmF1dG9jb250b3VyPSEwOnIoImF1dG9jb250b3VyIiwhMSkpJiZzfHxyKCJuY29udG91cnMiKX19LHt9XSw5NTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIik7ZnVuY3Rpb24gYSh0KXtyZXR1cm4gbi5leHRlbmRGbGF0KHt9LHQse2VkZ2VwYXRoczpuLmV4dGVuZERlZXAoW10sdC5lZGdlcGF0aHMpLHBhdGhzOm4uZXh0ZW5kRGVlcChbXSx0LnBhdGhzKSxzdGFydHM6bi5leHRlbmREZWVwKFtdLHQuc3RhcnRzKX0pfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLGksbyxzPWZ1bmN0aW9uKHQpe3JldHVybiB0LnJldmVyc2UoKX0sbD1mdW5jdGlvbih0KXtyZXR1cm4gdH07c3dpdGNoKGUpe2Nhc2UiPSI6Y2FzZSI8IjpyZXR1cm4gdDtjYXNlIj4iOmZvcigxIT09dC5sZW5ndGgmJm4ud2FybigiQ29udG91ciBkYXRhIGludmFsaWQgZm9yIHRoZSBzcGVjaWZpZWQgaW5lcXVhbGl0eSBvcGVyYXRpb24uIiksaT10WzBdLHI9MDtyPGkuZWRnZXBhdGhzLmxlbmd0aDtyKyspaS5lZGdlcGF0aHNbcl09cyhpLmVkZ2VwYXRoc1tyXSk7Zm9yKHI9MDtyPGkucGF0aHMubGVuZ3RoO3IrKylpLnBhdGhzW3JdPXMoaS5wYXRoc1tyXSk7Zm9yKHI9MDtyPGkuc3RhcnRzLmxlbmd0aDtyKyspaS5zdGFydHNbcl09cyhpLnN0YXJ0c1tyXSk7cmV0dXJuIHQ7Y2FzZSJdWyI6dmFyIGM9cztzPWwsbD1jO2Nhc2UiW10iOmZvcigyIT09dC5sZW5ndGgmJm4ud2FybigiQ29udG91ciBkYXRhIGludmFsaWQgZm9yIHRoZSBzcGVjaWZpZWQgaW5lcXVhbGl0eSByYW5nZSBvcGVyYXRpb24uIiksaT1hKHRbMF0pLG89YSh0WzFdKSxyPTA7cjxpLmVkZ2VwYXRocy5sZW5ndGg7cisrKWkuZWRnZXBhdGhzW3JdPXMoaS5lZGdlcGF0aHNbcl0pO2ZvcihyPTA7cjxpLnBhdGhzLmxlbmd0aDtyKyspaS5wYXRoc1tyXT1zKGkucGF0aHNbcl0pO2ZvcihyPTA7cjxpLnN0YXJ0cy5sZW5ndGg7cisrKWkuc3RhcnRzW3JdPXMoaS5zdGFydHNbcl0pO2Zvcig7by5lZGdlcGF0aHMubGVuZ3RoOylpLmVkZ2VwYXRocy5wdXNoKGwoby5lZGdlcGF0aHMuc2hpZnQoKSkpO2Zvcig7by5wYXRocy5sZW5ndGg7KWkucGF0aHMucHVzaChsKG8ucGF0aHMuc2hpZnQoKSkpO2Zvcig7by5zdGFydHMubGVuZ3RoOylpLnN0YXJ0cy5wdXNoKGwoby5zdGFydHMuc2hpZnQoKSkpO3JldHVybltpXX19fSx7Ii4uLy4uL2xpYiI6NzE3fV0sOTUyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vaGVhdG1hcC94eXpfZGVmYXVsdHMiKSxpPXQoIi4vY29uc3RyYWludF9kZWZhdWx0cyIpLG89dCgiLi9jb250b3Vyc19kZWZhdWx0cyIpLHM9dCgiLi9zdHlsZV9kZWZhdWx0cyIpLGw9dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGMpe2Z1bmN0aW9uIHUocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLGwscixhKX1pZihhKHQsZSx1LGMpKXt1KCJ0ZXh0IiksdSgiaG92ZXJ0ZXh0IiksdSgiaG92ZXJ0ZW1wbGF0ZSIpLHUoImhvdmVyb25nYXBzIik7dmFyIGg9ImNvbnN0cmFpbnQiPT09dSgiY29udG91cnMudHlwZSIpO3UoImNvbm5lY3RnYXBzIixuLmlzQXJyYXkxRChlLnopKSxoP2kodCxlLHUsYyxyKToobyh0LGUsdSxmdW5jdGlvbihyKXtyZXR1cm4gbi5jb2VyY2UyKHQsZSxsLHIpfSkscyh0LGUsdSxjKSl9ZWxzZSBlLnZpc2libGU9ITF9fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi9oZWF0bWFwL3h5el9kZWZhdWx0cyI6MTAxNCwiLi9hdHRyaWJ1dGVzIjo5NDMsIi4vY29uc3RyYWludF9kZWZhdWx0cyI6OTQ4LCIuL2NvbnRvdXJzX2RlZmF1bHRzIjo5NTAsIi4vc3R5bGVfZGVmYXVsdHMiOjk2NH1dLDk1MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4vY29uc3RyYWludF9tYXBwaW5nIiksaT10KCIuL2VuZF9wbHVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG89ImNvbnN0cmFpbnQiPT09dC50eXBlP2FbdC5fb3BlcmF0aW9uXSh0LnZhbHVlKTp0LHM9by5zaXplLGw9W10sYz1pKG8pLHU9ci50cmFjZS5fY2FycGV0VHJhY2UsaD11P3t4YXhpczp1LmFheGlzLHlheGlzOnUuYmF4aXMseDpyLmEseTpyLmJ9Ont4YXhpczplLnhheGlzLHlheGlzOmUueWF4aXMseDpyLngseTpyLnl9LGY9by5zdGFydDtmPGM7Zis9cylpZihsLnB1c2gobi5leHRlbmRGbGF0KHtsZXZlbDpmLGNyb3NzaW5nczp7fSxzdGFydHM6W10sZWRnZXBhdGhzOltdLHBhdGhzOltdLHo6ci56LHNtb290aGluZzpyLnRyYWNlLmxpbmUuc21vb3RoaW5nfSxoKSksbC5sZW5ndGg+MWUzKXtuLndhcm4oIlRvbyBtYW55IGNvbnRvdXJzLCBjbGlwcGluZyBhdCAxMDAwIix0KTticmVha31yZXR1cm4gbH19LHsiLi4vLi4vbGliIjo3MTcsIi4vY29uc3RyYWludF9tYXBwaW5nIjo5NDksIi4vZW5kX3BsdXMiOjk1NH1dLDk1NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHQuZW5kK3Quc2l6ZS8xZTZ9fSx7fV0sOTU1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi9jb25zdGFudHMiKTtmdW5jdGlvbiBpKHQsZSxyLG4pe3JldHVybiBNYXRoLmFicyh0WzBdLWVbMF0pPHImJk1hdGguYWJzKHRbMV0tZVsxXSk8bn1mdW5jdGlvbiBvKHQsZSxyLG8sbCl7dmFyIGMsdT1lLmpvaW4oIiwiKSxoPXQuY3Jvc3NpbmdzW3VdLGY9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPTAsaT0wO3Q+MjAmJmU/MjA4PT09dHx8MTExND09PXQ/bj0wPT09clswXT8xOi0xOmk9MD09PXJbMV0/MTotMTotMSE9PWEuQk9UVE9NU1RBUlQuaW5kZXhPZih0KT9pPTE6LTEhPT1hLkxFRlRTVEFSVC5pbmRleE9mKHQpP249MTotMSE9PWEuVE9QU1RBUlQuaW5kZXhPZih0KT9pPS0xOm49LTE7cmV0dXJuW24saV19KGgscixlKSxwPVtzKHQsZSxbLWZbMF0sLWZbMV1dKV0sZD10LnoubGVuZ3RoLGc9dC56WzBdLmxlbmd0aCx2PWUuc2xpY2UoKSxtPWYuc2xpY2UoKTtmb3IoYz0wO2M8MWU0O2MrKyl7aWYoaD4yMD8oaD1hLkNIT09TRVNBRERMRVtoXVsoZlswXXx8ZlsxXSk8MD8wOjFdLHQuY3Jvc3NpbmdzW3VdPWEuU0FERExFUkVNQUlOREVSW2hdKTpkZWxldGUgdC5jcm9zc2luZ3NbdV0sIShmPWEuTkVXREVMVEFbaF0pKXtuLmxvZygiRm91bmQgYmFkIG1hcmNoaW5nIGluZGV4OiIsaCxlLHQubGV2ZWwpO2JyZWFrfXAucHVzaChzKHQsZSxmKSksZVswXSs9ZlswXSxlWzFdKz1mWzFdLHU9ZS5qb2luKCIsIiksaShwW3AubGVuZ3RoLTFdLHBbcC5sZW5ndGgtMl0sbyxsKSYmcC5wb3AoKTt2YXIgeT1mWzBdJiYoZVswXTwwfHxlWzBdPmctMil8fGZbMV0mJihlWzFdPDB8fGVbMV0+ZC0yKTtpZihlWzBdPT09dlswXSYmZVsxXT09PXZbMV0mJmZbMF09PT1tWzBdJiZmWzFdPT09bVsxXXx8ciYmeSlicmVhaztoPXQuY3Jvc3NpbmdzW3VdfTFlND09PWMmJm4ubG9nKCJJbmZpbml0ZSBsb29wIGluIGNvbnRvdXI/Iik7dmFyIHgsYixfLHcsayxULE0sQSxTLEUsTCxDLFAsTyx6LEk9aShwWzBdLHBbcC5sZW5ndGgtMV0sbyxsKSxEPTAsUj0uMip0LnNtb290aGluZyxGPVtdLEI9MDtmb3IoYz0xO2M8cC5sZW5ndGg7YysrKUM9cFtjXSxQPXBbYy0xXSxPPXZvaWQgMCx6PXZvaWQgMCxPPUNbMl0tUFsyXSx6PUNbM10tUFszXSxEKz1NPU1hdGguc3FydChPKk8reip6KSxGLnB1c2goTSk7dmFyIE49RC9GLmxlbmd0aCpSO2Z1bmN0aW9uIGoodCl7cmV0dXJuIHBbdCVwLmxlbmd0aF19Zm9yKGM9cC5sZW5ndGgtMjtjPj1CO2MtLSlpZigoeD1GW2NdKTxOKXtmb3IoXz0wLGI9Yy0xO2I+PUImJngrRltiXTxOO2ItLSl4Kz1GW2JdO2lmKEkmJmM9PT1wLmxlbmd0aC0yKWZvcihfPTA7XzxiJiZ4K0ZbX108TjtfKyspeCs9RltfXTtrPWMtYitfKzEsVD1NYXRoLmZsb29yKChjK2IrXysyKS8yKSx3PUl8fGMhPT1wLmxlbmd0aC0yP0l8fC0xIT09Yj9rJTI/aihUKTpbKGooVClbMF0raihUKzEpWzBdKS8yLChqKFQpWzFdK2ooVCsxKVsxXSkvMl06cFswXTpwW3AubGVuZ3RoLTFdLHAuc3BsaWNlKGIrMSxjLWIrMSx3KSxjPWIrMSxfJiYoQj1fKSxJJiYoYz09PXAubGVuZ3RoLTI/cFtfXT1wW3AubGVuZ3RoLTFdOjA9PT1jJiYocFtwLmxlbmd0aC0xXT1wWzBdKSl9Zm9yKHAuc3BsaWNlKDAsQiksYz0wO2M8cC5sZW5ndGg7YysrKXBbY10ubGVuZ3RoPTI7aWYoIShwLmxlbmd0aDwyKSlpZihJKXAucG9wKCksdC5wYXRocy5wdXNoKHApO2Vsc2V7cnx8bi5sb2coIlVuY2xvc2VkIGludGVyaW9yIGNvbnRvdXI/Iix0LmxldmVsLHYuam9pbigiLCIpLHAuam9pbigiTCIpKTt2YXIgVj0hMTtmb3IoQT0wO0E8dC5lZGdlcGF0aHMubGVuZ3RoO0ErKylpZihFPXQuZWRnZXBhdGhzW0FdLCFWJiZpKEVbMF0scFtwLmxlbmd0aC0xXSxvLGwpKXtwLnBvcCgpLFY9ITA7dmFyIFU9ITE7Zm9yKFM9MDtTPHQuZWRnZXBhdGhzLmxlbmd0aDtTKyspaWYoaSgoTD10LmVkZ2VwYXRoc1tTXSlbTC5sZW5ndGgtMV0scFswXSxvLGwpKXtVPSEwLHAuc2hpZnQoKSx0LmVkZ2VwYXRocy5zcGxpY2UoQSwxKSxTPT09QT90LnBhdGhzLnB1c2gocC5jb25jYXQoTCkpOihTPkEmJlMtLSx0LmVkZ2VwYXRoc1tTXT1MLmNvbmNhdChwLEUpKTticmVha31VfHwodC5lZGdlcGF0aHNbQV09cC5jb25jYXQoRSkpfWZvcihBPTA7QTx0LmVkZ2VwYXRocy5sZW5ndGgmJiFWO0ErKylpKChFPXQuZWRnZXBhdGhzW0FdKVtFLmxlbmd0aC0xXSxwWzBdLG8sbCkmJihwLnNoaWZ0KCksdC5lZGdlcGF0aHNbQV09RS5jb25jYXQocCksVj0hMCk7Vnx8dC5lZGdlcGF0aHMucHVzaChwKX19ZnVuY3Rpb24gcyh0LGUscil7dmFyIG49ZVswXStNYXRoLm1heChyWzBdLDApLGE9ZVsxXStNYXRoLm1heChyWzFdLDApLGk9dC56W2FdW25dLG89dC54YXhpcyxzPXQueWF4aXM7aWYoclsxXSl7dmFyIGw9KHQubGV2ZWwtaSkvKHQuelthXVtuKzFdLWkpO3JldHVybltvLmMycCgoMS1sKSp0Lnhbbl0rbCp0LnhbbisxXSwhMCkscy5jMnAodC55W2FdLCEwKSxuK2wsYV19dmFyIGM9KHQubGV2ZWwtaSkvKHQuelthKzFdW25dLWkpO3JldHVybltvLmMycCh0Lnhbbl0sITApLHMuYzJwKCgxLWMpKnQueVthXStjKnQueVthKzFdLCEwKSxuLGErY119ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgYSxpLHMsbDtmb3IoZT1lfHwuMDEscj1yfHwuMDEsaT0wO2k8dC5sZW5ndGg7aSsrKXtmb3Iocz10W2ldLGw9MDtsPHMuc3RhcnRzLmxlbmd0aDtsKyspbyhzLHMuc3RhcnRzW2xdLCJlZGdlIixlLHIpO2ZvcihhPTA7T2JqZWN0LmtleXMocy5jcm9zc2luZ3MpLmxlbmd0aCYmYTwxZTQ7KWErKyxvKHMsT2JqZWN0LmtleXMocy5jcm9zc2luZ3MpWzBdLnNwbGl0KCIsIikubWFwKE51bWJlciksdm9pZCAwLGUscik7MWU0PT09YSYmbi5sb2coIkluZmluaXRlIGxvb3AgaW4gY29udG91cj8iKX19fSx7Ii4uLy4uL2xpYiI6NzE3LCIuL2NvbnN0YW50cyI6OTQ3fV0sOTU2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxhPXQoIi4uL2hlYXRtYXAvaG92ZXIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaSxvKXt2YXIgcz1hKHQsZSxyLGksbywhMCk7cmV0dXJuIHMmJnMuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZT10LnRyYWNlOyJjb25zdHJhaW50Ij09PWUuY29udG91cnMudHlwZSYmKGUuZmlsbGNvbG9yJiZuLm9wYWNpdHkoZS5maWxsY29sb3IpP3QuY29sb3I9bi5hZGRPcGFjaXR5KGUuZmlsbGNvbG9yLDEpOmUuY29udG91cnMuc2hvd2xpbmVzJiZuLm9wYWNpdHkoZS5saW5lLmNvbG9yKSYmKHQuY29sb3I9bi5hZGRPcGFjaXR5KGUubGluZS5jb2xvciwxKSkpfSksc319LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTkyLCIuLi9oZWF0bWFwL2hvdmVyIjoxMDA3fV0sOTU3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY2FsYzp0KCIuL2NhbGMiKSxwbG90OnQoIi4vcGxvdCIpLnBsb3Qsc3R5bGU6dCgiLi9zdHlsZSIpLGNvbG9yYmFyOnQoIi4vY29sb3JiYXIiKSxob3ZlclBvaW50czp0KCIuL2hvdmVyIiksbW9kdWxlVHlwZToidHJhY2UiLG5hbWU6ImNvbnRvdXIiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbiIpLGNhdGVnb3JpZXM6WyJjYXJ0ZXNpYW4iLCJzdmciLCIyZE1hcCIsImNvbnRvdXIiLCJzaG93TGVnZW5kIl0sbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuIjo3NzYsIi4vYXR0cmlidXRlcyI6OTQzLCIuL2NhbGMiOjk0NCwiLi9jb2xvcmJhciI6OTQ2LCIuL2RlZmF1bHRzIjo5NTIsIi4vaG92ZXIiOjk1NiwiLi9wbG90Ijo5NjEsIi4vc3R5bGUiOjk2M31dLDk1ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSl7aWYoYXx8KGE9e30pLHQoImNvbnRvdXJzLnNob3dsYWJlbHMiKSl7dmFyIGk9ZS5mb250O24uY29lcmNlRm9udCh0LCJjb250b3Vycy5sYWJlbGZvbnQiLHtmYW1pbHk6aS5mYW1pbHksc2l6ZTppLnNpemUsY29sb3I6cn0pLHQoImNvbnRvdXJzLmxhYmVsZm9ybWF0Iil9ITEhPT1hLmhhc0hvdmVyJiZ0KCJ6aG92ZXJmb3JtYXQiKX19LHsiLi4vLi4vbGliIjo3MTd9XSw5NTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLGk9dCgiLi9lbmRfcGx1cyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10LmNvbnRvdXJzLHI9ZS5zdGFydCxvPWkoZSkscz1lLnNpemV8fDEsbD1NYXRoLmZsb29yKChvLXIpL3MpKzEsYz0ibGluZXMiPT09ZS5jb2xvcmluZz8wOjEsdT1hLmV4dHJhY3RPcHRzKHQpO2lzRmluaXRlKHMpfHwocz0xLGw9MSk7dmFyIGgsZixwPXUucmV2ZXJzZXNjYWxlP2EuZmxpcFNjYWxlKHUuY29sb3JzY2FsZSk6dS5jb2xvcnNjYWxlLGQ9cC5sZW5ndGgsZz1uZXcgQXJyYXkoZCksdj1uZXcgQXJyYXkoZCk7aWYoImhlYXRtYXAiPT09ZS5jb2xvcmluZyl7dmFyIG09dS5taW4seT11Lm1heDtmb3IoZj0wO2Y8ZDtmKyspaD1wW2ZdLGdbZl09aFswXSooeS1tKSttLHZbZl09aFsxXTt2YXIgeD1uLmV4dGVudChbbSx5LGUuc3RhcnQsZS5zdGFydCtzKihsLTEpXSksYj14W208eT8wOjFdLF89eFttPHk/MTowXTtiIT09bSYmKGcuc3BsaWNlKDAsMCxiKSx2LnNwbGljZSgwLDAsdlswXSkpLF8hPT15JiYoZy5wdXNoKF8pLHYucHVzaCh2W3YubGVuZ3RoLTFdKSl9ZWxzZSBmb3IoZj0wO2Y8ZDtmKyspaD1wW2ZdLGdbZl09KGhbMF0qKGwrYy0xKS1jLzIpKnMrcix2W2ZdPWhbMV07cmV0dXJuIGEubWFrZUNvbG9yU2NhbGVGdW5jKHtkb21haW46ZyxyYW5nZTp2fSx7bm9OdW1lcmljQ2hlY2s6ITB9KX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIjo2MDQsIi4vZW5kX3BsdXMiOjk1NCxkMzoxNjV9XSw5NjA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9jb25zdGFudHMiKTtmdW5jdGlvbiBhKHQsZSl7dmFyIHI9KGVbMF1bMF0+dD8wOjEpKyhlWzBdWzFdPnQ/MDoyKSsoZVsxXVsxXT50PzA6NCkrKGVbMV1bMF0+dD8wOjgpO3JldHVybiA1PT09cnx8MTA9PT1yP3Q+KGVbMF1bMF0rZVswXVsxXStlWzFdWzBdK2VbMV1bMV0pLzQ/NT09PXI/NzEzOjExMTQ6NT09PXI/MTA0OjIwODoxNT09PXI/MDpyfWUuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZSxyLGksbyxzLGwsYyx1LGgsZj10WzBdLnoscD1mLmxlbmd0aCxkPWZbMF0ubGVuZ3RoLGc9Mj09PXB8fDI9PT1kO2ZvcihyPTA7cjxwLTE7cisrKWZvcihvPVtdLDA9PT1yJiYobz1vLmNvbmNhdChuLkJPVFRPTVNUQVJUKSkscj09PXAtMiYmKG89by5jb25jYXQobi5UT1BTVEFSVCkpLGU9MDtlPGQtMTtlKyspZm9yKGk9by5zbGljZSgpLDA9PT1lJiYoaT1pLmNvbmNhdChuLkxFRlRTVEFSVCkpLGU9PT1kLTImJihpPWkuY29uY2F0KG4uUklHSFRTVEFSVCkpLHM9ZSsiLCIrcixsPVtbZltyXVtlXSxmW3JdW2UrMV1dLFtmW3IrMV1bZV0sZltyKzFdW2UrMV1dXSxoPTA7aDx0Lmxlbmd0aDtoKyspKGM9YSgodT10W2hdKS5sZXZlbCxsKSkmJih1LmNyb3NzaW5nc1tzXT1jLC0xIT09aS5pbmRleE9mKGMpJiYodS5zdGFydHMucHVzaChbZSxyXSksZyYmLTEhPT1pLmluZGV4T2YoYyxpLmluZGV4T2YoYykrMSkmJnUuc3RhcnRzLnB1c2goW2Uscl0pKSl9fSx7Ii4vY29uc3RhbnRzIjo5NDd9XSw5NjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxhPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksbz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiKSxzPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLGw9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxjPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9zZXRfY29udmVydCIpLHU9dCgiLi4vaGVhdG1hcC9wbG90IiksaD10KCIuL21ha2VfY3Jvc3NpbmdzIiksZj10KCIuL2ZpbmRfYWxsX3BhdGhzIikscD10KCIuL2VtcHR5X3BhdGhpbmZvIiksZD10KCIuL2NvbnZlcnRfdG9fY29uc3RyYWludHMiKSxnPXQoIi4vY2xvc2VfYm91bmRhcmllcyIpLHY9dCgiLi9jb25zdGFudHMiKSxtPXYuTEFCRUxPUFRJTUlaRVI7ZnVuY3Rpb24geSh0LGUpe3ZhciByLG4sbyxzLGwsYyx1LGg9IiIsZj0wLHA9dC5lZGdlcGF0aHMubWFwKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV9KSxkPSEwO2Z1bmN0aW9uIGcodCl7cmV0dXJuIE1hdGguYWJzKHRbMV0tZVsyXVsxXSk8LjAxfWZ1bmN0aW9uIHYodCl7cmV0dXJuIE1hdGguYWJzKHRbMF0tZVswXVswXSk8LjAxfWZ1bmN0aW9uIG0odCl7cmV0dXJuIE1hdGguYWJzKHRbMF0tZVsyXVswXSk8LjAxfWZvcig7cC5sZW5ndGg7KXtmb3IoYz1pLnNtb290aG9wZW4odC5lZGdlcGF0aHNbZl0sdC5zbW9vdGhpbmcpLGgrPWQ/YzpjLnJlcGxhY2UoL15NLywiTCIpLHAuc3BsaWNlKHAuaW5kZXhPZihmKSwxKSxyPXQuZWRnZXBhdGhzW2ZdW3QuZWRnZXBhdGhzW2ZdLmxlbmd0aC0xXSxzPS0xLG89MDtvPDQ7bysrKXtpZighcil7YS5sb2coIk1pc3NpbmcgZW5kPyIsZix0KTticmVha31mb3IodT1yLE1hdGguYWJzKHVbMV0tZVswXVsxXSk8LjAxJiYhbShyKT9uPWVbMV06dihyKT9uPWVbMF06ZyhyKT9uPWVbM106bShyKSYmKG49ZVsyXSksbD0wO2w8dC5lZGdlcGF0aHMubGVuZ3RoO2wrKyl7dmFyIHk9dC5lZGdlcGF0aHNbbF1bMF07TWF0aC5hYnMoclswXS1uWzBdKTwuMDE/TWF0aC5hYnMoclswXS15WzBdKTwuMDEmJih5WzFdLXJbMV0pKihuWzFdLXlbMV0pPj0wJiYobj15LHM9bCk6TWF0aC5hYnMoclsxXS1uWzFdKTwuMDE/TWF0aC5hYnMoclsxXS15WzFdKTwuMDEmJih5WzBdLXJbMF0pKihuWzBdLXlbMF0pPj0wJiYobj15LHM9bCk6YS5sb2coImVuZHB0IHRvIG5ld2VuZHB0IGlzIG5vdCB2ZXJ0LiBvciBob3J6LiIscixuLHkpfWlmKHI9bixzPj0wKWJyZWFrO2grPSJMIitufWlmKHM9PT10LmVkZ2VwYXRocy5sZW5ndGgpe2EubG9nKCJ1bmNsb3NlZCBwZXJpbWV0ZXIgcGF0aCIpO2JyZWFrfWY9cywoZD0tMT09PXAuaW5kZXhPZihmKSkmJihmPXBbMF0saCs9IloiKX1mb3IoZj0wO2Y8dC5wYXRocy5sZW5ndGg7ZisrKWgrPWkuc21vb3RoY2xvc2VkKHQucGF0aHNbZl0sdC5zbW9vdGhpbmcpO3JldHVybiBofWZ1bmN0aW9uIHgodCxlLHIsbil7dmFyIGk9ZS53aWR0aC8yLG89ZS5oZWlnaHQvMixzPXQueCxsPXQueSxjPXQudGhldGEsdT1NYXRoLmNvcyhjKSppLGg9TWF0aC5zaW4oYykqaSxmPShzPm4uY2VudGVyP24ucmlnaHQtczpzLW4ubGVmdCkvKHUrTWF0aC5hYnMoTWF0aC5zaW4oYykqbykpLHA9KGw+bi5taWRkbGU/bi5ib3R0b20tbDpsLW4udG9wKS8oTWF0aC5hYnMoaCkrTWF0aC5jb3MoYykqbyk7aWYoZjwxfHxwPDEpcmV0dXJuIDEvMDt2YXIgZD1tLkVER0VDT1NUKigxLyhmLTEpKzEvKHAtMSkpO2QrPW0uQU5HTEVDT1NUKmMqYztmb3IodmFyIGc9cy11LHY9bC1oLHk9cyt1LHg9bCtoLGI9MDtiPHIubGVuZ3RoO2IrKyl7dmFyIF89cltiXSx3PU1hdGguY29zKF8udGhldGEpKl8ud2lkdGgvMixrPU1hdGguc2luKF8udGhldGEpKl8ud2lkdGgvMixUPTIqYS5zZWdtZW50RGlzdGFuY2UoZyx2LHkseCxfLngtdyxfLnktayxfLngrdyxfLnkraykvKGUuaGVpZ2h0K18uaGVpZ2h0KSxNPV8ubGV2ZWw9PT1lLmxldmVsLEE9TT9tLlNBTUVMRVZFTERJU1RBTkNFOjE7aWYoVDw9QSlyZXR1cm4gMS8wO2QrPW0uTkVJR0hCT1JDT1NUKihNP20uU0FNRUxFVkVMRkFDVE9SOjEpLyhULUEpfXJldHVybiBkfWZ1bmN0aW9uIGIodCl7dmFyIGUscixuPXQudHJhY2UuX2VtcHR5cG9pbnRzLGE9W10saT10LnoubGVuZ3RoLG89dC56WzBdLmxlbmd0aCxzPVtdO2ZvcihlPTA7ZTxvO2UrKylzLnB1c2goMSk7Zm9yKGU9MDtlPGk7ZSsrKWEucHVzaChzLnNsaWNlKCkpO2ZvcihlPTA7ZTxuLmxlbmd0aDtlKyspYVsocj1uW2VdKVswXV1bclsxXV09MDtyZXR1cm4gdC56bWFzaz1hLGF9ci5wbG90PWZ1bmN0aW9uKHQsZSxvLHMpe3ZhciBsPWUueGF4aXMsYz1lLnlheGlzO2EubWFrZVRyYWNlR3JvdXBzKHMsbywiY29udG91ciIpLmVhY2goZnVuY3Rpb24obyl7dmFyIHM9bi5zZWxlY3QodGhpcyksbT1vWzBdLHg9bS50cmFjZSxfPW0ueCx3PW0ueSxrPXguY29udG91cnMsVD1wKGssZSxtKSxNPWEuZW5zdXJlU2luZ2xlKHMsImciLCJoZWF0bWFwY29sb3JpbmciKSxBPVtdOyJoZWF0bWFwIj09PWsuY29sb3JpbmcmJihBPVtvXSksdSh0LGUsQSxNKSxoKFQpLGYoVCk7dmFyIFM9bC5jMnAoX1swXSwhMCksRT1sLmMycChfW18ubGVuZ3RoLTFdLCEwKSxMPWMuYzJwKHdbMF0sITApLEM9Yy5jMnAod1t3Lmxlbmd0aC0xXSwhMCksUD1bW1MsQ10sW0UsQ10sW0UsTF0sW1MsTF1dLE89VDsiY29uc3RyYWludCI9PT1rLnR5cGUmJihPPWQoVCxrLl9vcGVyYXRpb24pKSxmdW5jdGlvbih0LGUscil7dmFyIG49YS5lbnN1cmVTaW5nbGUodCwiZyIsImNvbnRvdXJiZyIpLnNlbGVjdEFsbCgicGF0aCIpLmRhdGEoImZpbGwiPT09ci5jb2xvcmluZz9bMF06W10pO24uZW50ZXIoKS5hcHBlbmQoInBhdGgiKSxuLmV4aXQoKS5yZW1vdmUoKSxuLmF0dHIoImQiLCJNIitlLmpvaW4oIkwiKSsiWiIpLnN0eWxlKCJzdHJva2UiLCJub25lIil9KHMsUCxrKSxmdW5jdGlvbih0LGUscixpKXt2YXIgbz0iZmlsbCI9PT1pLmNvbG9yaW5nfHwiY29uc3RyYWludCI9PT1pLnR5cGUmJiI9IiE9PWkuX29wZXJhdGlvbixzPSJNIityLmpvaW4oIkwiKSsiWiI7byYmZyhlLGkpO3ZhciBsPWEuZW5zdXJlU2luZ2xlKHQsImciLCJjb250b3VyZmlsbCIpLnNlbGVjdEFsbCgicGF0aCIpLmRhdGEobz9lOltdKTtsLmVudGVyKCkuYXBwZW5kKCJwYXRoIiksbC5leGl0KCkucmVtb3ZlKCksbC5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPSh0LnByZWZpeEJvdW5kYXJ5P3M6IiIpK3kodCxyKTtlP24uc2VsZWN0KHRoaXMpLmF0dHIoImQiLGUpLnN0eWxlKCJzdHJva2UiLCJub25lIik6bi5zZWxlY3QodGhpcykucmVtb3ZlKCl9KX0ocyxPLFAsayksZnVuY3Rpb24odCxlLG8scyxsKXt2YXIgYz1hLmVuc3VyZVNpbmdsZSh0LCJnIiwiY29udG91cmxpbmVzIiksdT0hMSE9PWwuc2hvd2xpbmVzLGg9bC5zaG93bGFiZWxzLGY9dSYmaCxwPXIuY3JlYXRlTGluZXMoYyx1fHxoLGUpLGQ9ci5jcmVhdGVMaW5lQ2xpcChjLGYsbyxzLnRyYWNlLnVpZCksZz10LnNlbGVjdEFsbCgiZy5jb250b3VybGFiZWxzIikuZGF0YShoP1swXTpbXSk7aWYoZy5leGl0KCkucmVtb3ZlKCksZy5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoImNvbnRvdXJsYWJlbHMiLCEwKSxoKXt2YXIgbT1bXSx5PVtdO2EuY2xlYXJMb2NhdGlvbkNhY2hlKCk7dmFyIHg9ci5sYWJlbEZvcm1hdHRlcihvLHMpLGI9aS50ZXN0ZXIuYXBwZW5kKCJ0ZXh0IikuYXR0cigiZGF0YS1ub3RleCIsMSkuY2FsbChpLmZvbnQsbC5sYWJlbGZvbnQpLF89ZVswXS54YXhpcyx3PWVbMF0ueWF4aXMsaz1fLl9sZW5ndGgsVD13Ll9sZW5ndGgsTT1fLnJhbmdlLEE9dy5yYW5nZSxTPWEuYWdnTnVtcyhNYXRoLm1pbixudWxsLHMueCksRT1hLmFnZ051bXMoTWF0aC5tYXgsbnVsbCxzLngpLEw9YS5hZ2dOdW1zKE1hdGgubWluLG51bGwscy55KSxDPWEuYWdnTnVtcyhNYXRoLm1heCxudWxsLHMueSksUD1NYXRoLm1heChfLmMycChTLCEwKSwwKSxPPU1hdGgubWluKF8uYzJwKEUsITApLGspLHo9TWF0aC5tYXgody5jMnAoQywhMCksMCksST1NYXRoLm1pbih3LmMycChMLCEwKSxUKSxEPXt9O01bMF08TVsxXT8oRC5sZWZ0PVAsRC5yaWdodD1PKTooRC5sZWZ0PU8sRC5yaWdodD1QKSxBWzBdPEFbMV0/KEQudG9wPXosRC5ib3R0b209SSk6KEQudG9wPUksRC5ib3R0b209eiksRC5taWRkbGU9KEQudG9wK0QuYm90dG9tKS8yLEQuY2VudGVyPShELmxlZnQrRC5yaWdodCkvMixtLnB1c2goW1tELmxlZnQsRC50b3BdLFtELnJpZ2h0LEQudG9wXSxbRC5yaWdodCxELmJvdHRvbV0sW0QubGVmdCxELmJvdHRvbV1dKTt2YXIgUj1NYXRoLnNxcnQoayprK1QqVCksRj12LkxBQkVMRElTVEFOQ0UqUi9NYXRoLm1heCgxLGUubGVuZ3RoL3YuTEFCRUxJTkNSRUFTRSk7cC5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPXIuY2FsY1RleHRPcHRzKHQubGV2ZWwseCxiLG8pO24uc2VsZWN0KHRoaXMpLnNlbGVjdEFsbCgicGF0aCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1hLmdldFZpc2libGVTZWdtZW50KHRoaXMsRCxlLmhlaWdodC8yKTtpZih0JiYhKHQubGVuPChlLndpZHRoK2UuaGVpZ2h0KSp2LkxBQkVMTUlOKSlmb3IodmFyIG49TWF0aC5taW4oTWF0aC5jZWlsKHQubGVuL0YpLHYuTEFCRUxNQVgpLGk9MDtpPG47aSsrKXt2YXIgbz1yLmZpbmRCZXN0VGV4dExvY2F0aW9uKHRoaXMsdCxlLHksRCk7aWYoIW8pYnJlYWs7ci5hZGRMYWJlbERhdGEobyxlLHksbSl9fSl9KSxiLnJlbW92ZSgpLHIuZHJhd0xhYmVscyhnLHksbyxkLGY/bTpudWxsKX1oJiYhdSYmcC5yZW1vdmUoKX0ocyxULHQsbSxrKSxmdW5jdGlvbih0LGUscixuLG8pe3ZhciBzPW4udHJhY2UsbD1yLl9mdWxsTGF5b3V0Ll9jbGlwcyxjPSJjbGlwIitzLnVpZCx1PWwuc2VsZWN0QWxsKCIjIitjKS5kYXRhKHMuY29ubmVjdGdhcHM/W106WzBdKTtpZih1LmVudGVyKCkuYXBwZW5kKCJjbGlwUGF0aCIpLmNsYXNzZWQoImNvbnRvdXJjbGlwIiwhMCkuYXR0cigiaWQiLGMpLHUuZXhpdCgpLnJlbW92ZSgpLCExPT09cy5jb25uZWN0Z2Fwcyl7dmFyIHA9e2xldmVsOi45LGNyb3NzaW5nczp7fSxzdGFydHM6W10sZWRnZXBhdGhzOltdLHBhdGhzOltdLHhheGlzOmUueGF4aXMseWF4aXM6ZS55YXhpcyx4Om4ueCx5Om4ueSx6OmIobiksc21vb3RoaW5nOjB9O2goW3BdKSxmKFtwXSksZyhbcF0se3R5cGU6ImxldmVscyJ9KTt2YXIgZD1hLmVuc3VyZVNpbmdsZSh1LCJwYXRoIiwiIik7ZC5hdHRyKCJkIiwocC5wcmVmaXhCb3VuZGFyeT8iTSIrby5qb2luKCJMIikrIloiOiIiKSt5KHAsbykpfWVsc2UgYz1udWxsO2kuc2V0Q2xpcFVybCh0LGMscil9KHMsZSx0LG0sUCl9KX0sci5jcmVhdGVMaW5lcz1mdW5jdGlvbih0LGUscil7dmFyIG49clswXS5zbW9vdGhpbmcsYT10LnNlbGVjdEFsbCgiZy5jb250b3VybGV2ZWwiKS5kYXRhKGU/cjpbXSk7aWYoYS5leGl0KCkucmVtb3ZlKCksYS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoImNvbnRvdXJsZXZlbCIsITApLGUpe3ZhciBvPWEuc2VsZWN0QWxsKCJwYXRoLm9wZW5saW5lIikuZGF0YShmdW5jdGlvbih0KXtyZXR1cm4gdC5wZWRnZXBhdGhzfHx0LmVkZ2VwYXRoc30pO28uZXhpdCgpLnJlbW92ZSgpLG8uZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJvcGVubGluZSIsITApLG8uYXR0cigiZCIsZnVuY3Rpb24odCl7cmV0dXJuIGkuc21vb3Rob3Blbih0LG4pfSkuc3R5bGUoInN0cm9rZS1taXRlcmxpbWl0IiwxKS5zdHlsZSgidmVjdG9yLWVmZmVjdCIsIm5vbi1zY2FsaW5nLXN0cm9rZSIpO3ZhciBzPWEuc2VsZWN0QWxsKCJwYXRoLmNsb3NlZGxpbmUiKS5kYXRhKGZ1bmN0aW9uKHQpe3JldHVybiB0LnBwYXRoc3x8dC5wYXRoc30pO3MuZXhpdCgpLnJlbW92ZSgpLHMuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJjbG9zZWRsaW5lIiwhMCkscy5hdHRyKCJkIixmdW5jdGlvbih0KXtyZXR1cm4gaS5zbW9vdGhjbG9zZWQodCxuKX0pLnN0eWxlKCJzdHJva2UtbWl0ZXJsaW1pdCIsMSkuc3R5bGUoInZlY3Rvci1lZmZlY3QiLCJub24tc2NhbGluZy1zdHJva2UiKX1yZXR1cm4gYX0sci5jcmVhdGVMaW5lQ2xpcD1mdW5jdGlvbih0LGUscixuKXt2YXIgYT1lPyJjbGlwbGluZSIrbjpudWxsLG89ci5fZnVsbExheW91dC5fY2xpcHMuc2VsZWN0QWxsKCIjIithKS5kYXRhKGU/WzBdOltdKTtyZXR1cm4gby5leGl0KCkucmVtb3ZlKCksby5lbnRlcigpLmFwcGVuZCgiY2xpcFBhdGgiKS5jbGFzc2VkKCJjb250b3VybGluZWNsaXAiLCEwKS5hdHRyKCJpZCIsYSksaS5zZXRDbGlwVXJsKHQsYSxyKSxvfSxyLmxhYmVsRm9ybWF0dGVyPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5fZnVsbExheW91dCxuPWUudHJhY2UsYT1uLmNvbnRvdXJzO2lmKGEubGFiZWxmb3JtYXQpcmV0dXJuIHIuX2QzbG9jYWxlLm51bWJlckZvcm1hdChhLmxhYmVsZm9ybWF0KTt2YXIgaSxzPW8uZXh0cmFjdE9wdHMobik7aWYocyYmcy5jb2xvcmJhciYmcy5jb2xvcmJhci5fYXhpcylpPXMuY29sb3JiYXIuX2F4aXM7ZWxzZXtpZihpPXt0eXBlOiJsaW5lYXIiLF9pZDoieWNvbnRvdXIiLHNob3dleHBvbmVudDoiYWxsIixleHBvbmVudGZvcm1hdDoiQiJ9LCJjb25zdHJhaW50Ij09PWEudHlwZSl7dmFyIHU9YS52YWx1ZTtBcnJheS5pc0FycmF5KHUpP2kucmFuZ2U9W3VbMF0sdVt1Lmxlbmd0aC0xXV06aS5yYW5nZT1bdSx1XX1lbHNlIGkucmFuZ2U9W2Euc3RhcnQsYS5lbmRdLGkubnRpY2tzPShhLmVuZC1hLnN0YXJ0KS9hLnNpemU7aS5yYW5nZVswXT09PWkucmFuZ2VbMV0mJihpLnJhbmdlWzFdKz1pLnJhbmdlWzBdfHwxKSxpLm50aWNrc3x8KGkubnRpY2tzPTFlMyksYyhpLHIpLGwucHJlcFRpY2tzKGkpLGkuX3RtaW49bnVsbCxpLl90bWF4PW51bGx9cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBsLnRpY2tUZXh0KGksdCkudGV4dH19LHIuY2FsY1RleHRPcHRzPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPWUodCk7ci50ZXh0KGEpLmNhbGwocy5jb252ZXJ0VG9Uc3BhbnMsbik7dmFyIG89aS5iQm94KHIubm9kZSgpLCEwKTtyZXR1cm57dGV4dDphLHdpZHRoOm8ud2lkdGgsaGVpZ2h0Om8uaGVpZ2h0LGxldmVsOnQsZHk6KG8udG9wK28uYm90dG9tKS8yfX0sci5maW5kQmVzdFRleHRMb2NhdGlvbj1mdW5jdGlvbih0LGUscixuLGkpe3ZhciBvLHMsbCxjLHUsaD1yLndpZHRoO2UuaXNDbG9zZWQ/KHM9ZS5sZW4vbS5JTklUSUFMU0VBUkNIUE9JTlRTLG89ZS5taW4rcy8yLGw9ZS5tYXgpOihzPShlLmxlbi1oKS8obS5JTklUSUFMU0VBUkNIUE9JTlRTKzEpLG89ZS5taW4rcytoLzIsbD1lLm1heC0ocytoKS8yKTtmb3IodmFyIGY9MS8wLHA9MDtwPG0uSVRFUkFUSU9OUztwKyspe2Zvcih2YXIgZD1vO2Q8bDtkKz1zKXt2YXIgZz1hLmdldFRleHRMb2NhdGlvbih0LGUudG90YWwsZCxoKSx2PXgoZyxyLG4saSk7djxmJiYoZj12LHU9ZyxjPWQpfWlmKGY+MiptLk1BWENPU1QpYnJlYWs7cCYmKHMvPTIpLGw9KG89Yy1zLzIpKzEuNSpzfWlmKGY8PW0uTUFYQ09TVClyZXR1cm4gdX0sci5hZGRMYWJlbERhdGE9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9ZS53aWR0aC8yLGk9ZS5oZWlnaHQvMixvPXQueCxzPXQueSxsPXQudGhldGEsYz1NYXRoLnNpbihsKSx1PU1hdGguY29zKGwpLGg9YSp1LGY9aSpjLHA9YSpjLGQ9LWkqdSxnPVtbby1oLWYscy1wLWRdLFtvK2gtZixzK3AtZF0sW28raCtmLHMrcCtkXSxbby1oK2Yscy1wK2RdXTtyLnB1c2goe3RleHQ6ZS50ZXh0LHg6byx5OnMsZHk6ZS5keSx0aGV0YTpsLGxldmVsOmUubGV2ZWwsd2lkdGg6ZS53aWR0aCxoZWlnaHQ6ZS5oZWlnaHR9KSxuLnB1c2goZyl9LHIuZHJhd0xhYmVscz1mdW5jdGlvbih0LGUscixpLG8pe3ZhciBsPXQuc2VsZWN0QWxsKCJ0ZXh0IikuZGF0YShlLGZ1bmN0aW9uKHQpe3JldHVybiB0LnRleHQrIiwiK3QueCsiLCIrdC55KyIsIit0LnRoZXRhfSk7aWYobC5leGl0KCkucmVtb3ZlKCksbC5lbnRlcigpLmFwcGVuZCgidGV4dCIpLmF0dHIoeyJkYXRhLW5vdGV4IjoxLCJ0ZXh0LWFuY2hvciI6Im1pZGRsZSJ9KS5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPXQueCtNYXRoLnNpbih0LnRoZXRhKSp0LmR5LGE9dC55LU1hdGguY29zKHQudGhldGEpKnQuZHk7bi5zZWxlY3QodGhpcykudGV4dCh0LnRleHQpLmF0dHIoe3g6ZSx5OmEsdHJhbnNmb3JtOiJyb3RhdGUoIisxODAqdC50aGV0YS9NYXRoLlBJKyIgIitlKyIgIithKyIpIn0pLmNhbGwocy5jb252ZXJ0VG9Uc3BhbnMscil9KSxvKXtmb3IodmFyIGM9IiIsdT0wO3U8by5sZW5ndGg7dSsrKWMrPSJNIitvW3VdLmpvaW4oIkwiKSsiWiI7YS5lbnN1cmVTaW5nbGUoaSwicGF0aCIsIiIpLmF0dHIoImQiLGMpfX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIjo2MDQsIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjEzLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo3NDEsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo3NjUsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9zZXRfY29udmVydCI6NzgzLCIuLi9oZWF0bWFwL3Bsb3QiOjEwMTEsIi4vY2xvc2VfYm91bmRhcmllcyI6OTQ1LCIuL2NvbnN0YW50cyI6OTQ3LCIuL2NvbnZlcnRfdG9fY29uc3RyYWludHMiOjk1MSwiLi9lbXB0eV9wYXRoaW5mbyI6OTUzLCIuL2ZpbmRfYWxsX3BhdGhzIjo5NTUsIi4vbWFrZV9jcm9zc2luZ3MiOjk2MCxkMzoxNjV9XSw5NjI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxhPXQoIi4uLy4uL2xpYiIpO2Z1bmN0aW9uIGkodCxlLHIpe3ZhciBhPXt0eXBlOiJsaW5lYXIiLHJhbmdlOlt0LGVdfTtyZXR1cm4gbi5hdXRvVGlja3MoYSwoZS10KS8ocnx8MTUpKSxhfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQuY29udG91cnM7aWYodC5hdXRvY29udG91cil7dmFyIG89dC56bWluLHM9dC56bWF4Oyh0LnphdXRvfHx2b2lkIDA9PT1vKSYmKG89YS5hZ2dOdW1zKE1hdGgubWluLG51bGwsZSkpLCh0LnphdXRvfHx2b2lkIDA9PT1zKSYmKHM9YS5hZ2dOdW1zKE1hdGgubWF4LG51bGwsZSkpO3ZhciBsPWkobyxzLHQubmNvbnRvdXJzKTtyLnNpemU9bC5kdGljayxyLnN0YXJ0PW4udGlja0ZpcnN0KGwpLGwucmFuZ2UucmV2ZXJzZSgpLHIuZW5kPW4udGlja0ZpcnN0KGwpLHIuc3RhcnQ9PT1vJiYoci5zdGFydCs9ci5zaXplKSxyLmVuZD09PXMmJihyLmVuZC09ci5zaXplKSxyLnN0YXJ0PnIuZW5kJiYoci5zdGFydD1yLmVuZD0oci5zdGFydCtyLmVuZCkvMiksdC5faW5wdXQuY29udG91cnN8fCh0Ll9pbnB1dC5jb250b3Vycz17fSksYS5leHRlbmRGbGF0KHQuX2lucHV0LmNvbnRvdXJzLHtzdGFydDpyLnN0YXJ0LGVuZDpyLmVuZCxzaXplOnIuc2l6ZX0pLHQuX2lucHV0LmF1dG9jb250b3VyPSEwfWVsc2UgaWYoImNvbnN0cmFpbnQiIT09ci50eXBlKXt2YXIgYyx1PXIuc3RhcnQsaD1yLmVuZCxmPXQuX2lucHV0LmNvbnRvdXJzO2lmKHU+aCYmKHIuc3RhcnQ9Zi5zdGFydD1oLGg9ci5lbmQ9Zi5lbmQ9dSx1PXIuc3RhcnQpLCEoci5zaXplPjApKWM9dT09PWg/MTppKHUsaCx0Lm5jb250b3VycykuZHRpY2ssZi5zaXplPXIuc2l6ZT1jfX19LHsiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo3NjV9XSw5NjM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGk9dCgiLi4vaGVhdG1hcC9zdHlsZSIpLG89dCgiLi9tYWtlX2NvbG9yX21hcCIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1uLnNlbGVjdCh0KS5zZWxlY3RBbGwoImcuY29udG91ciIpO2Uuc3R5bGUoIm9wYWNpdHkiLGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdLnRyYWNlLm9wYWNpdHl9KSxlLmVhY2goZnVuY3Rpb24odCl7dmFyIGU9bi5zZWxlY3QodGhpcykscj10WzBdLnRyYWNlLGk9ci5jb250b3VycyxzPXIubGluZSxsPWkuc2l6ZXx8MSxjPWkuc3RhcnQsdT0iY29uc3RyYWludCI9PT1pLnR5cGUsaD0hdSYmImxpbmVzIj09PWkuY29sb3JpbmcsZj0hdSYmImZpbGwiPT09aS5jb2xvcmluZyxwPWh8fGY/byhyKTpudWxsO2Uuc2VsZWN0QWxsKCJnLmNvbnRvdXJsZXZlbCIpLmVhY2goZnVuY3Rpb24odCl7bi5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJwYXRoIikuY2FsbChhLmxpbmVHcm91cFN0eWxlLHMud2lkdGgsaD9wKHQubGV2ZWwpOnMuY29sb3Iscy5kYXNoKX0pO3ZhciBkPWkubGFiZWxmb250O2lmKGUuc2VsZWN0QWxsKCJnLmNvbnRvdXJsYWJlbHMgdGV4dCIpLmVhY2goZnVuY3Rpb24odCl7YS5mb250KG4uc2VsZWN0KHRoaXMpLHtmYW1pbHk6ZC5mYW1pbHksc2l6ZTpkLnNpemUsY29sb3I6ZC5jb2xvcnx8KGg/cCh0LmxldmVsKTpzLmNvbG9yKX0pfSksdSllLnNlbGVjdEFsbCgiZy5jb250b3VyZmlsbCBwYXRoIikuc3R5bGUoImZpbGwiLHIuZmlsbGNvbG9yKTtlbHNlIGlmKGYpe3ZhciBnO2Uuc2VsZWN0QWxsKCJnLmNvbnRvdXJmaWxsIHBhdGgiKS5zdHlsZSgiZmlsbCIsZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PWcmJihnPXQubGV2ZWwpLHAodC5sZXZlbCsuNSpsKX0pLHZvaWQgMD09PWcmJihnPWMpLGUuc2VsZWN0QWxsKCJnLmNvbnRvdXJiZyBwYXRoIikuc3R5bGUoImZpbGwiLHAoZy0uNSpsKSl9fSksaSh0KX19LHsiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo2MTMsIi4uL2hlYXRtYXAvc3R5bGUiOjEwMTIsIi4vbWFrZV9jb2xvcl9tYXAiOjk1OSxkMzoxNjV9XSw5NjQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIiksYT10KCIuL2xhYmVsX2RlZmF1bHRzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGksbyl7dmFyIHMsbD1yKCJjb250b3Vycy5jb2xvcmluZyIpLGM9IiI7ImZpbGwiPT09bCYmKHM9cigiY29udG91cnMuc2hvd2xpbmVzIikpLCExIT09cyYmKCJsaW5lcyIhPT1sJiYoYz1yKCJsaW5lLmNvbG9yIiwiIzAwMCIpKSxyKCJsaW5lLndpZHRoIiwuNSkscigibGluZS5kYXNoIikpLCJub25lIiE9PWwmJighMCE9PXQuc2hvd2xlZ2VuZCYmKGUuc2hvd2xlZ2VuZD0hMSksZS5fZGZsdFNob3dMZWdlbmQ9ITEsbih0LGUsaSxyLHtwcmVmaXg6IiIsY0xldHRlcjoieiJ9KSkscigibGluZS5zbW9vdGhpbmciKSxhKHIsaSxjLG8pfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiOjYwMiwiLi9sYWJlbF9kZWZhdWx0cyI6OTU4fV0sOTY1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2hlYXRtYXAvYXR0cmlidXRlcyIpLGE9dCgiLi4vY29udG91ci9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQscz1hLmNvbnRvdXJzO2UuZXhwb3J0cz1vKHtjYXJwZXQ6e3ZhbFR5cGU6InN0cmluZyIsZWRpdFR5cGU6ImNhbGMifSx6Om4ueixhOm4ueCxhMDpuLngwLGRhOm4uZHgsYjpuLnksYjA6bi55MCxkYjpuLmR5LHRleHQ6bi50ZXh0LGhvdmVydGV4dDpuLmhvdmVydGV4dCx0cmFuc3Bvc2U6bi50cmFuc3Bvc2UsYXR5cGU6bi54dHlwZSxidHlwZTpuLnl0eXBlLGZpbGxjb2xvcjphLmZpbGxjb2xvcixhdXRvY29udG91cjphLmF1dG9jb250b3VyLG5jb250b3VyczphLm5jb250b3Vycyxjb250b3Vyczp7dHlwZTpzLnR5cGUsc3RhcnQ6cy5zdGFydCxlbmQ6cy5lbmQsc2l6ZTpzLnNpemUsY29sb3Jpbmc6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImZpbGwiLCJsaW5lcyIsIm5vbmUiXSxkZmx0OiJmaWxsIixlZGl0VHlwZToiY2FsYyJ9LHNob3dsaW5lczpzLnNob3dsaW5lcyxzaG93bGFiZWxzOnMuc2hvd2xhYmVscyxsYWJlbGZvbnQ6cy5sYWJlbGZvbnQsbGFiZWxmb3JtYXQ6cy5sYWJlbGZvcm1hdCxvcGVyYXRpb246cy5vcGVyYXRpb24sdmFsdWU6cy52YWx1ZSxlZGl0VHlwZToiY2FsYyIsaW1wbGllZEVkaXRzOnthdXRvY29udG91cjohMX19LGxpbmU6e2NvbG9yOmEubGluZS5jb2xvcix3aWR0aDphLmxpbmUud2lkdGgsZGFzaDphLmxpbmUuZGFzaCxzbW9vdGhpbmc6YS5saW5lLnNtb290aGluZyxlZGl0VHlwZToicGxvdCJ9LHRyYW5zZm9ybXM6dm9pZCAwfSxpKCIiLHtjTGV0dGVyOiJ6IixhdXRvQ29sb3JEZmx0OiExfSkpfSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjo1OTksIi4uLy4uL2xpYi9leHRlbmQiOjcwOCwiLi4vY29udG91ci9hdHRyaWJ1dGVzIjo5NDMsIi4uL2hlYXRtYXAvYXR0cmlidXRlcyI6MWUzfV0sOTY2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIiksYT10KCIuLi8uLi9saWIiKSxpPXQoIi4uL2hlYXRtYXAvY29udmVydF9jb2x1bW5feHl6Iiksbz10KCIuLi9oZWF0bWFwL2NsZWFuXzJkX2FycmF5Iikscz10KCIuLi9oZWF0bWFwL2ludGVycDJkIiksbD10KCIuLi9oZWF0bWFwL2ZpbmRfZW1wdGllcyIpLGM9dCgiLi4vaGVhdG1hcC9tYWtlX2JvdW5kX2FycmF5IiksdT10KCIuL2RlZmF1bHRzIiksaD10KCIuLi9jYXJwZXQvbG9va3VwX2NhcnBldGlkIiksZj10KCIuLi9jb250b3VyL3NldF9jb250b3VycyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWUuX2NhcnBldFRyYWNlPWgodCxlKTtpZihyJiZyLnZpc2libGUmJiJsZWdlbmRvbmx5IiE9PXIudmlzaWJsZSl7aWYoIWUuYXx8IWUuYil7dmFyIHA9dC5kYXRhW3IuaW5kZXhdLGQ9dC5kYXRhW2UuaW5kZXhdO2QuYXx8KGQuYT1wLmEpLGQuYnx8KGQuYj1wLmIpLHUoZCxlLGUuX2RlZmF1bHRDb2xvcix0Ll9mdWxsTGF5b3V0KX12YXIgZz1mdW5jdGlvbih0LGUpe3ZhciByLHUsaCxmLHAsZCxnLHY9ZS5fY2FycGV0VHJhY2UsbT12LmFheGlzLHk9di5iYXhpczttLl9taW5EdGljaz0wLHkuX21pbkR0aWNrPTAsYS5pc0FycmF5MUQoZS56KSYmaShlLG0seSwiYSIsImIiLFsieiJdKTtyPWUuX2E9ZS5fYXx8ZS5hLGY9ZS5fYj1lLl9ifHxlLmIscj1yP20ubWFrZUNhbGNkYXRhKGUsIl9hIik6W10sZj1mP3kubWFrZUNhbGNkYXRhKGUsIl9iIik6W10sdT1lLmEwfHwwLGg9ZS5kYXx8MSxwPWUuYjB8fDAsZD1lLmRifHwxLGc9ZS5fej1vKGUuX3p8fGUueixlLnRyYW5zcG9zZSksZS5fZW1wdHlwb2ludHM9bChnKSxzKGcsZS5fZW1wdHlwb2ludHMpO3ZhciB4PWEubWF4Um93TGVuZ3RoKGcpLGI9InNjYWxlZCI9PT1lLnh0eXBlPyIiOnIsXz1jKGUsYix1LGgseCxtKSx3PSJzY2FsZWQiPT09ZS55dHlwZT8iIjpmLGs9YyhlLHcscCxkLGcubGVuZ3RoLHkpLFQ9e2E6XyxiOmssejpnfTsibGV2ZWxzIj09PWUuY29udG91cnMudHlwZSYmIm5vbmUiIT09ZS5jb250b3Vycy5jb2xvcmluZyYmbih0LGUse3ZhbHM6Zyxjb250YWluZXJTdHI6IiIsY0xldHRlcjoieiJ9KTtyZXR1cm5bVF19KHQsZSk7cmV0dXJuIGYoZSxlLl96KSxnfX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiOjYwMCwiLi4vLi4vbGliIjo3MTcsIi4uL2NhcnBldC9sb29rdXBfY2FycGV0aWQiOjkxNiwiLi4vY29udG91ci9zZXRfY29udG91cnMiOjk2MiwiLi4vaGVhdG1hcC9jbGVhbl8yZF9hcnJheSI6MTAwMiwiLi4vaGVhdG1hcC9jb252ZXJ0X2NvbHVtbl94eXoiOjEwMDQsIi4uL2hlYXRtYXAvZmluZF9lbXB0aWVzIjoxMDA2LCIuLi9oZWF0bWFwL2ludGVycDJkIjoxMDA5LCIuLi9oZWF0bWFwL21ha2VfYm91bmRfYXJyYXkiOjEwMTAsIi4vZGVmYXVsdHMiOjk2N31dLDk2NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4uL2hlYXRtYXAveHl6X2RlZmF1bHRzIiksaT10KCIuL2F0dHJpYnV0ZXMiKSxvPXQoIi4uL2NvbnRvdXIvY29uc3RyYWludF9kZWZhdWx0cyIpLHM9dCgiLi4vY29udG91ci9jb250b3Vyc19kZWZhdWx0cyIpLGw9dCgiLi4vY29udG91ci9zdHlsZV9kZWZhdWx0cyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixjKXtmdW5jdGlvbiB1KHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxpLHIsYSl9aWYodSgiY2FycGV0IiksdC5hJiZ0LmIpe2lmKCFhKHQsZSx1LGMsImEiLCJiIikpcmV0dXJuIHZvaWQoZS52aXNpYmxlPSExKTt1KCJ0ZXh0IiksImNvbnN0cmFpbnQiPT09dSgiY29udG91cnMudHlwZSIpP28odCxlLHUsYyxyLHtoYXNIb3ZlcjohMX0pOihzKHQsZSx1LGZ1bmN0aW9uKHIpe3JldHVybiBuLmNvZXJjZTIodCxlLGkscil9KSxsKHQsZSx1LGMse2hhc0hvdmVyOiExfSkpfWVsc2UgZS5fZGVmYXVsdENvbG9yPXIsZS5fbGVuZ3RoPW51bGx9fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi9jb250b3VyL2NvbnN0cmFpbnRfZGVmYXVsdHMiOjk0OCwiLi4vY29udG91ci9jb250b3Vyc19kZWZhdWx0cyI6OTUwLCIuLi9jb250b3VyL3N0eWxlX2RlZmF1bHRzIjo5NjQsIi4uL2hlYXRtYXAveHl6X2RlZmF1bHRzIjoxMDE0LCIuL2F0dHJpYnV0ZXMiOjk2NX1dLDk2ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNvbG9yYmFyOnQoIi4uL2NvbnRvdXIvY29sb3JiYXIiKSxjYWxjOnQoIi4vY2FsYyIpLHBsb3Q6dCgiLi9wbG90Iiksc3R5bGU6dCgiLi4vY29udG91ci9zdHlsZSIpLG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJjb250b3VyY2FycGV0IixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxjYXRlZ29yaWVzOlsiY2FydGVzaWFuIiwic3ZnIiwiY2FycGV0IiwiY29udG91ciIsInN5bWJvbHMiLCJzaG93TGVnZW5kIiwiaGFzTGluZXMiLCJjYXJwZXREZXBlbmRlbnQiLCJub0hvdmVyIiwibm9Tb3J0aW5nQnlWYWx1ZSJdLG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL2NhcnRlc2lhbiI6Nzc2LCIuLi9jb250b3VyL2NvbG9yYmFyIjo5NDYsIi4uL2NvbnRvdXIvc3R5bGUiOjk2MywiLi9hdHRyaWJ1dGVzIjo5NjUsIi4vY2FsYyI6OTY2LCIuL2RlZmF1bHRzIjo5NjcsIi4vcGxvdCI6OTY5fV0sOTY5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksYT10KCIuLi9jYXJwZXQvbWFwXzFkX2FycmF5IiksaT10KCIuLi9jYXJwZXQvbWFrZXBhdGgiKSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLHM9dCgiLi4vLi4vbGliIiksbD10KCIuLi9jb250b3VyL21ha2VfY3Jvc3NpbmdzIiksYz10KCIuLi9jb250b3VyL2ZpbmRfYWxsX3BhdGhzIiksdT10KCIuLi9jb250b3VyL3Bsb3QiKSxoPXQoIi4uL2NvbnRvdXIvY29uc3RhbnRzIiksZj10KCIuLi9jb250b3VyL2NvbnZlcnRfdG9fY29uc3RyYWludHMiKSxwPXQoIi4uL2NvbnRvdXIvZW1wdHlfcGF0aGluZm8iKSxkPXQoIi4uL2NvbnRvdXIvY2xvc2VfYm91bmRhcmllcyIpLGc9dCgiLi4vY2FycGV0L2xvb2t1cF9jYXJwZXRpZCIpLHY9dCgiLi4vY2FycGV0L2F4aXNfYWxpZ25lZF9saW5lIik7ZnVuY3Rpb24gbSh0LGUscil7dmFyIG49dC5nZXRQb2ludEF0TGVuZ3RoKGUpLGE9dC5nZXRQb2ludEF0TGVuZ3RoKHIpLGk9YS54LW4ueCxvPWEueS1uLnkscz1NYXRoLnNxcnQoaSppK28qbyk7cmV0dXJuW2kvcyxvL3NdfWZ1bmN0aW9uIHkodCl7dmFyIGU9TWF0aC5zcXJ0KHRbMF0qdFswXSt0WzFdKnRbMV0pO3JldHVyblt0WzBdL2UsdFsxXS9lXX1mdW5jdGlvbiB4KHQsZSl7dmFyIHI9TWF0aC5hYnModFswXSplWzBdK3RbMV0qZVsxXSk7cmV0dXJuIE1hdGguc3FydCgxLXIqcikvcn1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYil7dmFyIF89ZS54YXhpcyx3PWUueWF4aXM7cy5tYWtlVHJhY2VHcm91cHMoYixyLCJjb250b3VyIikuZWFjaChmdW5jdGlvbihyKXt2YXIgYj1uLnNlbGVjdCh0aGlzKSxrPXJbMF0sVD1rLnRyYWNlLE09VC5fY2FycGV0VHJhY2U9Zyh0LFQpLEE9dC5jYWxjZGF0YVtNLmluZGV4XVswXTtpZihNLnZpc2libGUmJiJsZWdlbmRvbmx5IiE9PU0udmlzaWJsZSl7dmFyIFM9ay5hLEU9ay5iLEw9VC5jb250b3VycyxDPXAoTCxlLGspLFA9ImNvbnN0cmFpbnQiPT09TC50eXBlLE89TC5fb3BlcmF0aW9uLHo9UD8iPSI9PT1PPyJsaW5lcyI6ImZpbGwiOkwuY29sb3JpbmcsST1bW1NbMF0sRVtFLmxlbmd0aC0xXV0sW1NbUy5sZW5ndGgtMV0sRVtFLmxlbmd0aC0xXV0sW1NbUy5sZW5ndGgtMV0sRVswXV0sW1NbMF0sRVswXV1dO2woQyk7dmFyIEQ9MWUtOCooU1tTLmxlbmd0aC0xXS1TWzBdKSxSPTFlLTgqKEVbRS5sZW5ndGgtMV0tRVswXSk7YyhDLEQsUik7dmFyIEYsQixOLGosVj1DOyJjb25zdHJhaW50Ij09PUwudHlwZSYmKFY9ZihDLE8pKSxmdW5jdGlvbih0LGUpe3ZhciByLG4sYSxpLG8scyxsLGMsdTtmb3Iocj0wO3I8dC5sZW5ndGg7cisrKXtmb3IoaT10W3JdLG89aS5wZWRnZXBhdGhzPVtdLHM9aS5wcGF0aHM9W10sbj0wO248aS5lZGdlcGF0aHMubGVuZ3RoO24rKyl7Zm9yKHU9aS5lZGdlcGF0aHNbbl0sbD1bXSxhPTA7YTx1Lmxlbmd0aDthKyspbFthXT1lKHVbYV0pO28ucHVzaChsKX1mb3Iobj0wO248aS5wYXRocy5sZW5ndGg7bisrKXtmb3IodT1pLnBhdGhzW25dLGM9W10sYT0wO2E8dS5sZW5ndGg7YSsrKWNbYV09ZSh1W2FdKTtzLnB1c2goYyl9fX0oQyxIKTt2YXIgVT1bXTtmb3Ioaj1BLmNsaXBzZWdtZW50cy5sZW5ndGgtMTtqPj0wO2otLSlGPUEuY2xpcHNlZ21lbnRzW2pdLEI9YShbXSxGLngsXy5jMnApLE49YShbXSxGLnksdy5jMnApLEIucmV2ZXJzZSgpLE4ucmV2ZXJzZSgpLFUucHVzaChpKEIsTixGLmJpY3ViaWMpKTt2YXIgcT0iTSIrVS5qb2luKCJMIikrIloiOyFmdW5jdGlvbih0LGUscixuLG8sbCl7dmFyIGMsdSxoLGYscD1zLmVuc3VyZVNpbmdsZSh0LCJnIiwiY29udG91cmJnIikuc2VsZWN0QWxsKCJwYXRoIikuZGF0YSgiZmlsbCIhPT1sfHxvP1tdOlswXSk7cC5lbnRlcigpLmFwcGVuZCgicGF0aCIpLHAuZXhpdCgpLnJlbW92ZSgpO3ZhciBkPVtdO2ZvcihmPTA7ZjxlLmxlbmd0aDtmKyspYz1lW2ZdLHU9YShbXSxjLngsci5jMnApLGg9YShbXSxjLnksbi5jMnApLGQucHVzaChpKHUsaCxjLmJpY3ViaWMpKTtwLmF0dHIoImQiLCJNIitkLmpvaW4oIkwiKSsiWiIpLnN0eWxlKCJzdHJva2UiLCJub25lIil9KGIsQS5jbGlwc2VnbWVudHMsXyx3LFAseiksZnVuY3Rpb24odCxlLHIsYSxpLGwsYyx1LGgsZixwKXt2YXIgZz0iZmlsbCI9PT1mO2cmJmQoaSx0LmNvbnRvdXJzKTt2YXIgbT1zLmVuc3VyZVNpbmdsZShlLCJnIiwiY29udG91cmZpbGwiKS5zZWxlY3RBbGwoInBhdGgiKS5kYXRhKGc/aTpbXSk7bS5lbnRlcigpLmFwcGVuZCgicGF0aCIpLG0uZXhpdCgpLnJlbW92ZSgpLG0uZWFjaChmdW5jdGlvbih0KXt2YXIgZT0odC5wcmVmaXhCb3VuZGFyeT9wOiIiKStmdW5jdGlvbih0LGUscixuLGEsaSxsLGMpe3ZhciB1LGgsZixwLGQsZyxtLHk9IiIseD1lLmVkZ2VwYXRocy5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm4gZX0pLGI9ITAsXz0xZS00Kk1hdGguYWJzKHJbMF1bMF0tclsyXVswXSksdz0xZS00Kk1hdGguYWJzKHJbMF1bMV0tclsyXVsxXSk7ZnVuY3Rpb24gayh0KXtyZXR1cm4gTWF0aC5hYnModFsxXS1yWzBdWzFdKTx3fWZ1bmN0aW9uIFQodCl7cmV0dXJuIE1hdGguYWJzKHRbMV0tclsyXVsxXSk8d31mdW5jdGlvbiBNKHQpe3JldHVybiBNYXRoLmFicyh0WzBdLXJbMF1bMF0pPF99ZnVuY3Rpb24gQSh0KXtyZXR1cm4gTWF0aC5hYnModFswXS1yWzJdWzBdKTxffWZ1bmN0aW9uIFModCxlKXt2YXIgcixuLG8scyx1PSIiO2ZvcihrKHQpJiYhQSh0KXx8VCh0KSYmIU0odCk/KHM9YS5hYXhpcyxvPXYoYSxpLFt0WzBdLGVbMF1dLC41Kih0WzFdK2VbMV0pKSk6KHM9YS5iYXhpcyxvPXYoYSxpLC41Kih0WzBdK2VbMF0pLFt0WzFdLGVbMV1dKSkscj0xO3I8by5sZW5ndGg7cisrKWZvcih1Kz1zLnNtb290aGluZz8iQyI6IkwiLG49MDtuPG9bcl0ubGVuZ3RoO24rKyl7dmFyIGg9b1tyXVtuXTt1Kz1bbC5jMnAoaFswXSksYy5jMnAoaFsxXSldKyIgIn1yZXR1cm4gdX11PTAsaD1udWxsO2Zvcig7eC5sZW5ndGg7KXt2YXIgRT1lLmVkZ2VwYXRoc1t1XVswXTtmb3IoaCYmKHkrPVMoaCxFKSksbT1vLnNtb290aG9wZW4oZS5lZGdlcGF0aHNbdV0ubWFwKG4pLGUuc21vb3RoaW5nKSx5Kz1iP206bS5yZXBsYWNlKC9eTS8sIkwiKSx4LnNwbGljZSh4LmluZGV4T2YodSksMSksaD1lLmVkZ2VwYXRoc1t1XVtlLmVkZ2VwYXRoc1t1XS5sZW5ndGgtMV0sZD0tMSxwPTA7cDw0O3ArKyl7aWYoIWgpe3MubG9nKCJNaXNzaW5nIGVuZD8iLHUsZSk7YnJlYWt9Zm9yKGsoaCkmJiFBKGgpP2Y9clsxXTpNKGgpP2Y9clswXTpUKGgpP2Y9clszXTpBKGgpJiYoZj1yWzJdKSxnPTA7ZzxlLmVkZ2VwYXRocy5sZW5ndGg7ZysrKXt2YXIgTD1lLmVkZ2VwYXRoc1tnXVswXTtNYXRoLmFicyhoWzBdLWZbMF0pPF8/TWF0aC5hYnMoaFswXS1MWzBdKTxfJiYoTFsxXS1oWzFdKSooZlsxXS1MWzFdKT49MCYmKGY9TCxkPWcpOk1hdGguYWJzKGhbMV0tZlsxXSk8dz9NYXRoLmFicyhoWzFdLUxbMV0pPHcmJihMWzBdLWhbMF0pKihmWzBdLUxbMF0pPj0wJiYoZj1MLGQ9Zyk6cy5sb2coImVuZHB0IHRvIG5ld2VuZHB0IGlzIG5vdCB2ZXJ0LiBvciBob3J6LiIsaCxmLEwpfWlmKGQ+PTApYnJlYWs7eSs9UyhoLGYpLGg9Zn1pZihkPT09ZS5lZGdlcGF0aHMubGVuZ3RoKXtzLmxvZygidW5jbG9zZWQgcGVyaW1ldGVyIHBhdGgiKTticmVha311PWQsKGI9LTE9PT14LmluZGV4T2YodSkpJiYodT14WzBdLHkrPVMoaCxmKSsiWiIsaD1udWxsKX1mb3IodT0wO3U8ZS5wYXRocy5sZW5ndGg7dSsrKXkrPW8uc21vb3RoY2xvc2VkKGUucGF0aHNbdV0ubWFwKG4pLGUuc21vb3RoaW5nKTtyZXR1cm4geX0oMCx0LGwsYyx1LGgscixhKTtlP24uc2VsZWN0KHRoaXMpLmF0dHIoImQiLGUpLnN0eWxlKCJzdHJva2UiLCJub25lIik6bi5zZWxlY3QodGhpcykucmVtb3ZlKCl9KX0oVCxiLF8sdyxWLEksSCxNLEEseixxKSxmdW5jdGlvbih0LGUscixhLGksbCxjKXt2YXIgZj1zLmVuc3VyZVNpbmdsZSh0LCJnIiwiY29udG91cmxpbmVzIikscD0hMSE9PWkuc2hvd2xpbmVzLGQ9aS5zaG93bGFiZWxzLGc9cCYmZCx2PXUuY3JlYXRlTGluZXMoZixwfHxkLGUpLGI9dS5jcmVhdGVMaW5lQ2xpcChmLGcscixhLnRyYWNlLnVpZCksXz10LnNlbGVjdEFsbCgiZy5jb250b3VybGFiZWxzIikuZGF0YShkP1swXTpbXSk7aWYoXy5leGl0KCkucmVtb3ZlKCksXy5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoImNvbnRvdXJsYWJlbHMiLCEwKSxkKXt2YXIgdz1sLnhheGlzLGs9bC55YXhpcyxUPXcuX2xlbmd0aCxNPWsuX2xlbmd0aCxBPVtbWzAsMF0sW1QsMF0sW1QsTV0sWzAsTV1dXSxTPVtdO3MuY2xlYXJMb2NhdGlvbkNhY2hlKCk7dmFyIEU9dS5sYWJlbEZvcm1hdHRlcihyLGEpLEw9by50ZXN0ZXIuYXBwZW5kKCJ0ZXh0IikuYXR0cigiZGF0YS1ub3RleCIsMSkuY2FsbChvLmZvbnQsaS5sYWJlbGZvbnQpLEM9e2xlZnQ6MCxyaWdodDpULGNlbnRlcjpULzIsdG9wOjAsYm90dG9tOk0sbWlkZGxlOk0vMn0sUD1NYXRoLnNxcnQoVCpUK00qTSksTz1oLkxBQkVMRElTVEFOQ0UqUC9NYXRoLm1heCgxLGUubGVuZ3RoL2guTEFCRUxJTkNSRUFTRSk7di5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPXUuY2FsY1RleHRPcHRzKHQubGV2ZWwsRSxMLHIpO24uc2VsZWN0KHRoaXMpLnNlbGVjdEFsbCgicGF0aCIpLmVhY2goZnVuY3Rpb24ocil7dmFyIG49cy5nZXRWaXNpYmxlU2VnbWVudCh0aGlzLEMsZS5oZWlnaHQvMik7aWYobiYmKGZ1bmN0aW9uKHQsZSxyLG4sYSxpKXtmb3IodmFyIG8scz0wO3M8ci5wZWRnZXBhdGhzLmxlbmd0aDtzKyspZT09PXIucGVkZ2VwYXRoc1tzXSYmKG89ci5lZGdlcGF0aHNbc10pO2lmKCFvKXJldHVybjt2YXIgbD1hLmFbMF0sYz1hLmFbYS5hLmxlbmd0aC0xXSx1PWEuYlswXSxoPWEuYlthLmIubGVuZ3RoLTFdO2Z1bmN0aW9uIGYodCxlKXt2YXIgcixuPTA7cmV0dXJuKE1hdGguYWJzKHRbMF0tbCk8LjF8fE1hdGguYWJzKHRbMF0tYyk8LjEpJiYocj15KGEuZHh5ZGJfcm91Z2godFswXSx0WzFdLC4xKSksbj1NYXRoLm1heChuLGkqeChlLHIpLzIpKSwoTWF0aC5hYnModFsxXS11KTwuMXx8TWF0aC5hYnModFsxXS1oKTwuMSkmJihyPXkoYS5keHlkYV9yb3VnaCh0WzBdLHRbMV0sLjEpKSxuPU1hdGgubWF4KG4saSp4KGUscikvMikpLG59dmFyIHA9bSh0LDAsMSksZD1tKHQsbi50b3RhbCxuLnRvdGFsLTEpLGc9ZihvWzBdLHApLHY9bi50b3RhbC1mKG9bby5sZW5ndGgtMV0sZCk7bi5taW48ZyYmKG4ubWluPWcpO24ubWF4PnYmJihuLm1heD12KTtuLmxlbj1uLm1heC1uLm1pbn0odGhpcyxyLHQsbixjLGUuaGVpZ2h0KSwhKG4ubGVuPChlLndpZHRoK2UuaGVpZ2h0KSpoLkxBQkVMTUlOKSkpZm9yKHZhciBhPU1hdGgubWluKE1hdGguY2VpbChuLmxlbi9PKSxoLkxBQkVMTUFYKSxpPTA7aTxhO2krKyl7dmFyIG89dS5maW5kQmVzdFRleHRMb2NhdGlvbih0aGlzLG4sZSxTLEMpO2lmKCFvKWJyZWFrO3UuYWRkTGFiZWxEYXRhKG8sZSxTLEEpfX0pfSksTC5yZW1vdmUoKSx1LmRyYXdMYWJlbHMoXyxTLHIsYixnP0E6bnVsbCl9ZCYmIXAmJnYucmVtb3ZlKCl9KGIsQyx0LGssTCxlLE0pLG8uc2V0Q2xpcFVybChiLE0uX2NsaXBQYXRoSWQsdCl9ZnVuY3Rpb24gSCh0KXt2YXIgZT1NLmFiMnh5KHRbMF0sdFsxXSwhMCk7cmV0dXJuW18uYzJwKGVbMF0pLHcuYzJwKGVbMV0pXX19KX19LHsiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo2MTMsIi4uLy4uL2xpYiI6NzE3LCIuLi9jYXJwZXQvYXhpc19hbGlnbmVkX2xpbmUiOjkwMCwiLi4vY2FycGV0L2xvb2t1cF9jYXJwZXRpZCI6OTE2LCIuLi9jYXJwZXQvbWFrZXBhdGgiOjkxNywiLi4vY2FycGV0L21hcF8xZF9hcnJheSI6OTE4LCIuLi9jb250b3VyL2Nsb3NlX2JvdW5kYXJpZXMiOjk0NSwiLi4vY29udG91ci9jb25zdGFudHMiOjk0NywiLi4vY29udG91ci9jb252ZXJ0X3RvX2NvbnN0cmFpbnRzIjo5NTEsIi4uL2NvbnRvdXIvZW1wdHlfcGF0aGluZm8iOjk1MywiLi4vY29udG91ci9maW5kX2FsbF9wYXRocyI6OTU1LCIuLi9jb250b3VyL21ha2VfY3Jvc3NpbmdzIjo5NjAsIi4uL2NvbnRvdXIvcGxvdCI6OTYxLGQzOjE2NX1dLDk3MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxpPXQoIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxvPXQoIi4uL3NjYXR0ZXJtYXBib3gvYXR0cmlidXRlcyIpLHM9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQ7ZS5leHBvcnRzPXMoe2xvbjpvLmxvbixsYXQ6by5sYXQsejp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxyYWRpdXM6e3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6InBsb3QiLGFycmF5T2s6ITAsbWluOjEsZGZsdDozMH0sYmVsb3c6e3ZhbFR5cGU6InN0cmluZyIsZWRpdFR5cGU6InBsb3QifSx0ZXh0Om8udGV4dCxob3ZlcnRleHQ6by5ob3ZlcnRleHQsaG92ZXJpbmZvOnMoe30saS5ob3ZlcmluZm8se2ZsYWdzOlsibG9uIiwibGF0IiwieiIsInRleHQiLCJuYW1lIl19KSxob3ZlcnRlbXBsYXRlOmEoKSxzaG93bGVnZW5kOnMoe30saS5zaG93bGVnZW5kLHtkZmx0OiExfSl9LG4oIiIse2NMZXR0ZXI6InoiLGVkaXRUeXBlT3ZlcnJpZGU6ImNhbGMifSkpfSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjo1OTksIi4uLy4uL2xpYi9leHRlbmQiOjcwOCwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6NzYyLCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo4NDEsIi4uL3NjYXR0ZXJtYXBib3gvYXR0cmlidXRlcyI6MTE4NH1dLDk3MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGE9dCgiLi4vLi4vbGliIikuaXNBcnJheU9yVHlwZWRBcnJheSxpPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5CQUROVU0sbz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY2FsYyIpLHM9dCgiLi4vLi4vbGliIikuXztlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9ZS5fbGVuZ3RoLGw9bmV3IEFycmF5KHIpLGM9ZS56LHU9YShjKSYmYy5sZW5ndGgsaD0wO2g8cjtoKyspe3ZhciBmPWxbaF09e30scD1lLmxvbltoXSxkPWUubGF0W2hdO2lmKGYubG9ubGF0PW4ocCkmJm4oZCk/WytwLCtkXTpbaSxpXSx1KXt2YXIgZz1jW2hdO2Yuej1uKGcpP2c6aX19cmV0dXJuIG8odCxlLHt2YWxzOnU/YzpbMCwxXSxjb250YWluZXJTdHI6IiIsY0xldHRlcjoieiJ9KSxyJiYobFswXS50PXtsYWJlbHM6e2xhdDpzKHQsImxhdDoiKSsiICIsbG9uOnModCwibG9uOiIpKyIgIn19KSxsfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY2FsYyI6NjAwLCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo2OTMsIi4uLy4uL2xpYiI6NzE3LCJmYXN0LWlzbnVtZXJpYyI6MjI4fV0sOTcyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksYT10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLHM9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTSxsPXQoIi4uLy4uL2xpYi9nZW9qc29uX3V0aWxzIikubWFrZUJsYW5rO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10WzBdLnRyYWNlLHI9ITA9PT1lLnZpc2libGUmJjAhPT1lLl9sZW5ndGgsYz1lLl9vcHRzPXtoZWF0bWFwOntsYXlvdXQ6e3Zpc2liaWxpdHk6Im5vbmUifSxwYWludDp7fX0sZ2VvanNvbjpsKCl9O2lmKCFyKXJldHVybiBjO3ZhciB1LGg9W10sZj1lLnoscD1lLnJhZGl1cyxkPWEuaXNBcnJheU9yVHlwZWRBcnJheShmKSYmZi5sZW5ndGgsZz1hLmlzQXJyYXlPclR5cGVkQXJyYXkocCk7Zm9yKHU9MDt1PHQubGVuZ3RoO3UrKyl7dmFyIHY9dFt1XSxtPXYubG9ubGF0O2lmKG1bMF0hPT1zKXt2YXIgeT17fTtpZihkKXt2YXIgeD12Lno7eS56PXghPT1zP3g6MH1nJiYoeS5yPW4ocFt1XSkmJnBbdV0+MD8rcFt1XTowKSxoLnB1c2goe3R5cGU6IkZlYXR1cmUiLGdlb21ldHJ5Ont0eXBlOiJQb2ludCIsY29vcmRpbmF0ZXM6bX0scHJvcGVydGllczp5fSl9fXZhciBiPW8uZXh0cmFjdE9wdHMoZSksXz1iLnJldmVyc2VzY2FsZT9vLmZsaXBTY2FsZShiLmNvbG9yc2NhbGUpOmIuY29sb3JzY2FsZSx3PV9bMF1bMV0saz1bImludGVycG9sYXRlIixbImxpbmVhciJdLFsiaGVhdG1hcC1kZW5zaXR5Il0sMCxpLm9wYWNpdHkodyk8MT93OmkuYWRkT3BhY2l0eSh3LDApXTtmb3IodT0xO3U8Xy5sZW5ndGg7dSsrKWsucHVzaChfW3VdWzBdLF9bdV1bMV0pO3ZhciBUPVsiaW50ZXJwb2xhdGUiLFsibGluZWFyIl0sWyJnZXQiLCJ6Il0sYi5taW4sMCxiLm1heCwxXTtyZXR1cm4gYS5leHRlbmRGbGF0KGMuaGVhdG1hcC5wYWludCx7ImhlYXRtYXAtd2VpZ2h0IjpkP1Q6MS8oYi5tYXgtYi5taW4pLCJoZWF0bWFwLWNvbG9yIjprLCJoZWF0bWFwLXJhZGl1cyI6Zz97dHlwZToiaWRlbnRpdHkiLHByb3BlcnR5OiJyIn06ZS5yYWRpdXMsImhlYXRtYXAtb3BhY2l0eSI6ZS5vcGFjaXR5fSksYy5nZW9qc29uPXt0eXBlOiJGZWF0dXJlQ29sbGVjdGlvbiIsZmVhdHVyZXM6aH0sYy5oZWF0bWFwLmxheW91dC52aXNpYmlsaXR5PSJ2aXNpYmxlIixjfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo1OTIsIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSI6NjA0LCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo2OTMsIi4uLy4uL2xpYiI6NzE3LCIuLi8uLi9saWIvZ2VvanNvbl91dGlscyI6NzEyLCJmYXN0LWlzbnVtZXJpYyI6MjI4fV0sOTczOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIiksaT10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbyl7ZnVuY3Rpb24gcyhyLGEpe3JldHVybiBuLmNvZXJjZSh0LGUsaSxyLGEpfXZhciBsPXMoImxvbiIpfHxbXSxjPXMoImxhdCIpfHxbXSx1PU1hdGgubWluKGwubGVuZ3RoLGMubGVuZ3RoKTt1PyhlLl9sZW5ndGg9dSxzKCJ6IikscygicmFkaXVzIikscygiYmVsb3ciKSxzKCJ0ZXh0IikscygiaG92ZXJ0ZXh0IikscygiaG92ZXJ0ZW1wbGF0ZSIpLGEodCxlLG8scyx7cHJlZml4OiIiLGNMZXR0ZXI6InoifSkpOmUudmlzaWJsZT0hMX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIjo2MDIsIi4uLy4uL2xpYiI6NzE3LCIuL2F0dHJpYnV0ZXMiOjk3MH1dLDk3NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5sb249ZS5sb24sdC5sYXQ9ZS5sYXQsdC56PWUueix0fX0se31dLDk3NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksaT10KCIuLi9zY2F0dGVybWFwYm94L2hvdmVyIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbz1pKHQsZSxyKTtpZihvKXt2YXIgcz1vWzBdLGw9cy5jZCxjPWxbMF0udHJhY2UsdT1sW3MuaW5kZXhdO2lmKGRlbGV0ZSBzLmNvbG9yLCJ6ImluIHUpe3ZhciBoPXMuc3VicGxvdC5tb2NrQXhpcztzLno9dS56LHMuekxhYmVsPWEudGlja1RleHQoaCxoLmMybCh1LnopLCJob3ZlciIpLnRleHR9cmV0dXJuIHMuZXh0cmFUZXh0PWZ1bmN0aW9uKHQsZSxyKXtpZih0LmhvdmVydGVtcGxhdGUpcmV0dXJuO3ZhciBhPShlLmhpfHx0LmhvdmVyaW5mbykuc3BsaXQoIisiKSxpPS0xIT09YS5pbmRleE9mKCJhbGwiKSxvPS0xIT09YS5pbmRleE9mKCJsb24iKSxzPS0xIT09YS5pbmRleE9mKCJsYXQiKSxsPWUubG9ubGF0LGM9W107ZnVuY3Rpb24gdSh0KXtyZXR1cm4gdCsiXHhiMCJ9aXx8byYmcz9jLnB1c2goIigiK3UobFswXSkrIiwgIit1KGxbMV0pKyIpIik6bz9jLnB1c2goci5sb24rdShsWzBdKSk6cyYmYy5wdXNoKHIubGF0K3UobFsxXSkpOyhpfHwtMSE9PWEuaW5kZXhPZigidGV4dCIpKSYmbi5maWxsVGV4dChlLHQsYyk7cmV0dXJuIGMuam9pbigiPGJyPiIpfShjLHUsbFswXS50LmxhYmVscyksW3NdfX19LHsiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo3NjUsIi4uL3NjYXR0ZXJtYXBib3gvaG92ZXIiOjExODl9XSw5NzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjb2xvcmJhcjp0KCIuLi9oZWF0bWFwL2NvbG9yYmFyIiksZm9ybWF0TGFiZWxzOnQoIi4uL3NjYXR0ZXJtYXBib3gvZm9ybWF0X2xhYmVscyIpLGNhbGM6dCgiLi9jYWxjIikscGxvdDp0KCIuL3Bsb3QiKSxob3ZlclBvaW50czp0KCIuL2hvdmVyIiksZXZlbnREYXRhOnQoIi4vZXZlbnRfZGF0YSIpLGdldEJlbG93OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPWUuZ2V0TWFwTGF5ZXJzKCksbj0wO248ci5sZW5ndGg7bisrKXt2YXIgYT1yW25dLGk9YS5pZDtpZigic3ltYm9sIj09PWEudHlwZSYmInN0cmluZyI9PXR5cGVvZiBpJiYtMT09PWkuaW5kZXhPZigicGxvdGx5LSIpKXJldHVybiBpfX0sbW9kdWxlVHlwZToidHJhY2UiLG5hbWU6ImRlbnNpdHltYXBib3giLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL21hcGJveCIpLGNhdGVnb3JpZXM6WyJtYXBib3giLCJnbCIsInNob3dMZWdlbmQiXSxtZXRhOntocl9uYW1lOiJkZW5zaXR5X21hcGJveCJ9fX0seyIuLi8uLi9wbG90cy9tYXBib3giOjgyMCwiLi4vaGVhdG1hcC9jb2xvcmJhciI6MTAwMywiLi4vc2NhdHRlcm1hcGJveC9mb3JtYXRfbGFiZWxzIjoxMTg4LCIuL2F0dHJpYnV0ZXMiOjk3MCwiLi9jYWxjIjo5NzEsIi4vZGVmYXVsdHMiOjk3MywiLi9ldmVudF9kYXRhIjo5NzQsIi4vaG92ZXIiOjk3NSwiLi9wbG90Ijo5Nzd9XSw5Nzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9jb252ZXJ0IiksYT10KCIuLi8uLi9wbG90cy9tYXBib3gvY29uc3RhbnRzIikudHJhY2VMYXllclByZWZpeDtmdW5jdGlvbiBpKHQsZSl7dGhpcy50eXBlPSJkZW5zaXR5bWFwYm94Iix0aGlzLnN1YnBsb3Q9dCx0aGlzLnVpZD1lLHRoaXMuc291cmNlSWQ9InNvdXJjZS0iK2UsdGhpcy5sYXllckxpc3Q9W1siaGVhdG1hcCIsYStlKyItaGVhdG1hcCJdXSx0aGlzLmJlbG93PW51bGx9dmFyIG89aS5wcm90b3R5cGU7by51cGRhdGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5zdWJwbG90LHI9dGhpcy5sYXllckxpc3QsYT1uKHQpLGk9ZS5iZWxvd0xvb2t1cFsidHJhY2UtIit0aGlzLnVpZF07ZS5tYXAuZ2V0U291cmNlKHRoaXMuc291cmNlSWQpLnNldERhdGEoYS5nZW9qc29uKSxpIT09dGhpcy5iZWxvdyYmKHRoaXMuX3JlbW92ZUxheWVycygpLHRoaXMuX2FkZExheWVycyhhLGkpLHRoaXMuYmVsb3c9aSk7Zm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspe3ZhciBzPXJbb10sbD1zWzBdLGM9c1sxXSx1PWFbbF07ZS5zZXRPcHRpb25zKGMsInNldExheW91dFByb3BlcnR5Iix1LmxheW91dCksInZpc2libGUiPT09dS5sYXlvdXQudmlzaWJpbGl0eSYmZS5zZXRPcHRpb25zKGMsInNldFBhaW50UHJvcGVydHkiLHUucGFpbnQpfX0sby5fYWRkTGF5ZXJzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXRoaXMuc3VicGxvdCxuPXRoaXMubGF5ZXJMaXN0LGE9dGhpcy5zb3VyY2VJZCxpPTA7aTxuLmxlbmd0aDtpKyspe3ZhciBvPW5baV0scz1vWzBdLGw9dFtzXTtyLmFkZExheWVyKHt0eXBlOnMsaWQ6b1sxXSxzb3VyY2U6YSxsYXlvdXQ6bC5sYXlvdXQscGFpbnQ6bC5wYWludH0sZSl9fSxvLl9yZW1vdmVMYXllcnM9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5zdWJwbG90Lm1hcCxlPXRoaXMubGF5ZXJMaXN0LHI9ZS5sZW5ndGgtMTtyPj0wO3ItLSl0LnJlbW92ZUxheWVyKGVbcl1bMV0pfSxvLmRpc3Bvc2U9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnN1YnBsb3QubWFwO3RoaXMuX3JlbW92ZUxheWVycygpLHQucmVtb3ZlU291cmNlKHRoaXMuc291cmNlSWQpfSxlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLnRyYWNlLGE9bmV3IGkodCxyLnVpZCksbz1hLnNvdXJjZUlkLHM9bihlKSxsPWEuYmVsb3c9dC5iZWxvd0xvb2t1cFsidHJhY2UtIityLnVpZF07cmV0dXJuIHQubWFwLmFkZFNvdXJjZShvLHt0eXBlOiJnZW9qc29uIixkYXRhOnMuZ2VvanNvbn0pLGEuX2FkZExheWVycyhzLGwpLGF9fSx7Ii4uLy4uL3Bsb3RzL21hcGJveC9jb25zdGFudHMiOjgxOCwiLi9jb252ZXJ0Ijo5NzJ9XSw5Nzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspdFtyXS5pPXI7bi5tZXJnZUFycmF5KGUudGV4dCx0LCJ0eCIpLG4ubWVyZ2VBcnJheShlLmhvdmVydGV4dCx0LCJodHgiKTt2YXIgYT1lLm1hcmtlcjtpZihhKXtuLm1lcmdlQXJyYXkoYS5vcGFjaXR5LHQsIm1vIiksbi5tZXJnZUFycmF5KGEuY29sb3IsdCwibWMiKTt2YXIgaT1hLmxpbmU7aSYmKG4ubWVyZ2VBcnJheShpLmNvbG9yLHQsIm1sYyIpLG4ubWVyZ2VBcnJheUNhc3RQb3NpdGl2ZShpLndpZHRoLHQsIm1sdyIpKX19fSx7Ii4uLy4uL2xpYiI6NzE3fV0sOTc5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2Jhci9hdHRyaWJ1dGVzIiksYT10KCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiKS5saW5lLGk9dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxzPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS50ZXh0dGVtcGxhdGVBdHRycyxsPXQoIi4vY29uc3RhbnRzIiksYz10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCx1PXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKTtlLmV4cG9ydHM9e3g6bi54LHgwOm4ueDAsZHg6bi5keCx5Om4ueSx5MDpuLnkwLGR5Om4uZHksaG92ZXJ0ZXh0Om4uaG92ZXJ0ZXh0LGhvdmVydGVtcGxhdGU6byh7fSx7a2V5czpsLmV2ZW50RGF0YUtleXN9KSxob3ZlcmluZm86Yyh7fSxpLmhvdmVyaW5mbyx7ZmxhZ3M6WyJuYW1lIiwieCIsInkiLCJ0ZXh0IiwicGVyY2VudCBpbml0aWFsIiwicGVyY2VudCBwcmV2aW91cyIsInBlcmNlbnQgdG90YWwiXX0pLHRleHRpbmZvOnt2YWxUeXBlOiJmbGFnbGlzdCIsZmxhZ3M6WyJsYWJlbCIsInRleHQiLCJwZXJjZW50IGluaXRpYWwiLCJwZXJjZW50IHByZXZpb3VzIiwicGVyY2VudCB0b3RhbCIsInZhbHVlIl0sZXh0cmFzOlsibm9uZSJdLGVkaXRUeXBlOiJwbG90IixhcnJheU9rOiExfSx0ZXh0dGVtcGxhdGU6cyh7ZWRpdFR5cGU6InBsb3QifSx7a2V5czpsLmV2ZW50RGF0YUtleXMuY29uY2F0KFsibGFiZWwiLCJ2YWx1ZSJdKX0pLHRleHQ6bi50ZXh0LHRleHRwb3NpdGlvbjpjKHt9LG4udGV4dHBvc2l0aW9uLHtkZmx0OiJhdXRvIn0pLGluc2lkZXRleHRhbmNob3I6Yyh7fSxuLmluc2lkZXRleHRhbmNob3Ise2RmbHQ6Im1pZGRsZSJ9KSx0ZXh0YW5nbGU6Yyh7fSxuLnRleHRhbmdsZSx7ZGZsdDowfSksdGV4dGZvbnQ6bi50ZXh0Zm9udCxpbnNpZGV0ZXh0Zm9udDpuLmluc2lkZXRleHRmb250LG91dHNpZGV0ZXh0Zm9udDpuLm91dHNpZGV0ZXh0Zm9udCxjb25zdHJhaW50ZXh0Om4uY29uc3RyYWludGV4dCxjbGlwb25heGlzOm4uY2xpcG9uYXhpcyxvcmllbnRhdGlvbjpjKHt9LG4ub3JpZW50YXRpb24se30pLG9mZnNldDpjKHt9LG4ub2Zmc2V0LHthcnJheU9rOiExfSksd2lkdGg6Yyh7fSxuLndpZHRoLHthcnJheU9rOiExfSksbWFya2VyOm4ubWFya2VyLGNvbm5lY3Rvcjp7ZmlsbGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6InN0eWxlIn0sbGluZTp7Y29sb3I6Yyh7fSxhLmNvbG9yLHtkZmx0OnUuZGVmYXVsdExpbmV9KSx3aWR0aDpjKHt9LGEud2lkdGgse2RmbHQ6MCxlZGl0VHlwZToicGxvdCJ9KSxkYXNoOmEuZGFzaCxlZGl0VHlwZToic3R5bGUifSx2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6InBsb3QifSxvZmZzZXRncm91cDpuLm9mZnNldGdyb3VwLGFsaWdubWVudGdyb3VwOm4uYWxpZ25tZW50Z3JvdXB9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjU5MiwiLi4vLi4vbGliL2V4dGVuZCI6NzA4LCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIjo3NjIsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjg0MSwiLi4vYmFyL2F0dHJpYnV0ZXMiOjg1NiwiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIjoxMTIwLCIuL2NvbnN0YW50cyI6OTgxfV0sOTgwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksYT10KCIuL2FycmF5c190b19jYWxjZGF0YSIpLGk9dCgiLi4vc2NhdHRlci9jYWxjX3NlbGVjdGlvbiIpLG89dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTTtmdW5jdGlvbiBzKHQpe3JldHVybiB0PT09bz8wOnR9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbCxjLHUsaD1uLmdldEZyb21JZCh0LGUueGF4aXN8fCJ4IiksZj1uLmdldEZyb21JZCh0LGUueWF4aXN8fCJ5Iik7ImgiPT09ZS5vcmllbnRhdGlvbj8ocj1oLm1ha2VDYWxjZGF0YShlLCJ4IiksbD1mLm1ha2VDYWxjZGF0YShlLCJ5IikpOihyPWYubWFrZUNhbGNkYXRhKGUsInkiKSxsPWgubWFrZUNhbGNkYXRhKGUsIngiKSk7dmFyIHAsZD1NYXRoLm1pbihsLmxlbmd0aCxyLmxlbmd0aCksZz1uZXcgQXJyYXkoZCk7Zm9yKGUuX2Jhc2U9W10sYz0wO2M8ZDtjKyspe3JbY108MCYmKHJbY109byk7dmFyIHY9ITE7cltjXSE9PW8mJmMrMTxkJiZyW2MrMV0hPT1vJiYodj0hMCksdT1nW2NdPXtwOmxbY10sczpyW2NdLGNOZXh0OnZ9LGUuX2Jhc2VbY109LS41KnUucyxlLmlkcyYmKHUuaWQ9U3RyaW5nKGUuaWRzW2NdKSksMD09PWMmJihnWzBdLnZUb3RhbD0wKSxnWzBdLnZUb3RhbCs9cyh1LnMpLHUuYmVnUj1zKHUucykvcyhnWzBdLnMpfWZvcihjPTA7YzxkO2MrKykodT1nW2NdKS5zIT09byYmKHUuc3VtUj11LnMvZ1swXS52VG90YWwsdS5kaWZSPXZvaWQgMCE9PXA/dS5zL3A6MSxwPXUucyk7cmV0dXJuIGEoZyxlKSxpKGcsZSksZ319LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NjkzLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NzY1LCIuLi9zY2F0dGVyL2NhbGNfc2VsZWN0aW9uIjoxMTIyLCIuL2FycmF5c190b19jYWxjZGF0YSI6OTc4fV0sOTgxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17ZXZlbnREYXRhS2V5czpbInBlcmNlbnRJbml0aWFsIiwicGVyY2VudFByZXZpb3VzIiwicGVyY2VudFRvdGFsIl19fSx7fV0sOTgyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2Jhci9jcm9zc190cmFjZV9jYWxjIikuc2V0R3JvdXBQb3NpdGlvbnM7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsYSxpPXQuX2Z1bGxMYXlvdXQsbz10Ll9mdWxsRGF0YSxzPXQuY2FsY2RhdGEsbD1lLnhheGlzLGM9ZS55YXhpcyx1PVtdLGg9W10sZj1bXTtmb3IoYT0wO2E8by5sZW5ndGg7YSsrKXt2YXIgcD1vW2FdLGQ9ImgiPT09cC5vcmllbnRhdGlvbjshMD09PXAudmlzaWJsZSYmcC54YXhpcz09PWwuX2lkJiZwLnlheGlzPT09Yy5faWQmJiJmdW5uZWwiPT09cC50eXBlJiYocj1zW2FdLGQ/Zi5wdXNoKHIpOmgucHVzaChyKSx1LnB1c2gocikpfXZhciBnPXttb2RlOmkuZnVubmVsbW9kZSxub3JtOmkuZnVubmVsbm9ybSxnYXA6aS5mdW5uZWxnYXAsZ3JvdXBnYXA6aS5mdW5uZWxncm91cGdhcH07Zm9yKG4odCxsLGMsaCxnKSxuKHQsYyxsLGYsZyksYT0wO2E8dS5sZW5ndGg7YSsrKXtyPXVbYV07Zm9yKHZhciB2PTA7djxyLmxlbmd0aDt2KyspdisxPHIubGVuZ3RoJiYoclt2XS5uZXh0UDA9clt2KzFdLnAwLHJbdl0ubmV4dFMwPXJbdisxXS5zMCxyW3ZdLm5leHRQMT1yW3YrMV0ucDEsclt2XS5uZXh0UzE9clt2KzFdLnMxKX19fSx7Ii4uL2Jhci9jcm9zc190cmFjZV9jYWxjIjo4NTl9XSw5ODM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi9iYXIvZGVmYXVsdHMiKS5oYW5kbGVHcm91cGluZ0RlZmF1bHRzLGk9dCgiLi4vYmFyL2RlZmF1bHRzIikuaGFuZGxlVGV4dCxvPXQoIi4uL3NjYXR0ZXIveHlfZGVmYXVsdHMiKSxzPXQoIi4vYXR0cmlidXRlcyIpLGw9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpO2UuZXhwb3J0cz17c3VwcGx5RGVmYXVsdHM6ZnVuY3Rpb24odCxlLHIsYSl7ZnVuY3Rpb24gYyhyLGEpe3JldHVybiBuLmNvZXJjZSh0LGUscyxyLGEpfWlmKG8odCxlLGEsYykpe2MoIm9yaWVudGF0aW9uIixlLnkmJiFlLng/InYiOiJoIiksYygib2Zmc2V0IiksYygid2lkdGgiKTt2YXIgdT1jKCJ0ZXh0Iik7YygiaG92ZXJ0ZXh0IiksYygiaG92ZXJ0ZW1wbGF0ZSIpO3ZhciBoPWMoInRleHRwb3NpdGlvbiIpO2kodCxlLGEsYyxoLHttb2R1bGVIYXNTZWxlY3RlZDohMSxtb2R1bGVIYXNVbnNlbGVjdGVkOiExLG1vZHVsZUhhc0NvbnN0cmFpbjohMCxtb2R1bGVIYXNDbGlwb25heGlzOiEwLG1vZHVsZUhhc1RleHRhbmdsZTohMCxtb2R1bGVIYXNJbnNpZGVhbmNob3I6ITB9KSwibm9uZSI9PT1lLnRleHRwb3NpdGlvbnx8ZS50ZXh0dGVtcGxhdGV8fGMoInRleHRpbmZvIixBcnJheS5pc0FycmF5KHUpPyJ0ZXh0K3ZhbHVlIjoidmFsdWUiKTt2YXIgZj1jKCJtYXJrZXIuY29sb3IiLHIpO2MoIm1hcmtlci5saW5lLmNvbG9yIixsLmRlZmF1bHRMaW5lKSxjKCJtYXJrZXIubGluZS53aWR0aCIpLGMoImNvbm5lY3Rvci52aXNpYmxlIikmJihjKCJjb25uZWN0b3IuZmlsbGNvbG9yIixmdW5jdGlvbih0KXt2YXIgZT1uLmlzQXJyYXlPclR5cGVkQXJyYXkodCk/IiMwMDAiOnQ7cmV0dXJuIGwuYWRkT3BhY2l0eShlLC41Kmwub3BhY2l0eShlKSl9KGYpKSxjKCJjb25uZWN0b3IubGluZS53aWR0aCIpJiYoYygiY29ubmVjdG9yLmxpbmUuY29sb3IiKSxjKCJjb25uZWN0b3IubGluZS5kYXNoIikpKX1lbHNlIGUudmlzaWJsZT0hMX0sY3Jvc3NUcmFjZURlZmF1bHRzOmZ1bmN0aW9uKHQsZSl7dmFyIHIsaTtmdW5jdGlvbiBvKHQpe3JldHVybiBuLmNvZXJjZShpLl9pbnB1dCxpLHMsdCl9aWYoImdyb3VwIj09PWUuZnVubmVsbW9kZSlmb3IodmFyIGw9MDtsPHQubGVuZ3RoO2wrKylyPShpPXRbbF0pLl9pbnB1dCxhKHIsaSxlLG8pfX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTkyLCIuLi8uLi9saWIiOjcxNywiLi4vYmFyL2RlZmF1bHRzIjo4NjAsIi4uL3NjYXR0ZXIveHlfZGVmYXVsdHMiOjExNDYsIi4vYXR0cmlidXRlcyI6OTc5fV0sOTg0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiB0Lng9InhWYWwiaW4gZT9lLnhWYWw6ZS54LHQueT0ieVZhbCJpbiBlP2UueVZhbDplLnksInBlcmNlbnRJbml0aWFsImluIGUmJih0LnBlcmNlbnRJbml0aWFsPWUucGVyY2VudEluaXRpYWwpLCJwZXJjZW50UHJldmlvdXMiaW4gZSYmKHQucGVyY2VudFByZXZpb3VzPWUucGVyY2VudFByZXZpb3VzKSwicGVyY2VudFRvdGFsImluIGUmJih0LnBlcmNlbnRUb3RhbD1lLnBlcmNlbnRUb3RhbCksZS54YSYmKHQueGF4aXM9ZS54YSksZS55YSYmKHQueWF4aXM9ZS55YSksdH19LHt9XSw5ODU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLm9wYWNpdHksYT10KCIuLi9iYXIvaG92ZXIiKS5ob3Zlck9uQmFycyxpPXQoIi4uLy4uL2xpYiIpLmZvcm1hdFBlcmNlbnQ7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8pe3ZhciBzPWEodCxlLHIsbyk7aWYocyl7dmFyIGw9cy5jZCxjPWxbMF0udHJhY2UsdT0iaCI9PT1jLm9yaWVudGF0aW9uLGg9bFtzLmluZGV4XTtzWyh1PyJ4IjoieSIpKyJMYWJlbFZhbCJdPWgucyxzLnBlcmNlbnRJbml0aWFsPWguYmVnUixzLnBlcmNlbnRJbml0aWFsTGFiZWw9aShoLmJlZ1IsMSkscy5wZXJjZW50UHJldmlvdXM9aC5kaWZSLHMucGVyY2VudFByZXZpb3VzTGFiZWw9aShoLmRpZlIsMSkscy5wZXJjZW50VG90YWw9aC5zdW1SLHMucGVyY2VudFRvdGFsTGFiZWw9aShoLnN1bVIsMSk7dmFyIGY9aC5oaXx8Yy5ob3ZlcmluZm8scD1bXTtpZihmJiYibm9uZSIhPT1mJiYic2tpcCIhPT1mKXt2YXIgZD0iYWxsIj09PWYsZz1mLnNwbGl0KCIrIiksdj1mdW5jdGlvbih0KXtyZXR1cm4gZHx8LTEhPT1nLmluZGV4T2YodCl9O3YoInBlcmNlbnQgaW5pdGlhbCIpJiZwLnB1c2gocy5wZXJjZW50SW5pdGlhbExhYmVsKyIgb2YgaW5pdGlhbCIpLHYoInBlcmNlbnQgcHJldmlvdXMiKSYmcC5wdXNoKHMucGVyY2VudFByZXZpb3VzTGFiZWwrIiBvZiBwcmV2aW91cyIpLHYoInBlcmNlbnQgdG90YWwiKSYmcC5wdXNoKHMucGVyY2VudFRvdGFsTGFiZWwrIiBvZiB0b3RhbCIpfXJldHVybiBzLmV4dHJhVGV4dD1wLmpvaW4oIjxicj4iKSxzLmNvbG9yPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5tYXJrZXIsYT1lLm1jfHxyLmNvbG9yLGk9ZS5tbGN8fHIubGluZS5jb2xvcixvPWUubWx3fHxyLmxpbmUud2lkdGg7aWYobihhKSlyZXR1cm4gYTtpZihuKGkpJiZvKXJldHVybiBpfShjLGgpLFtzXX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjU5MiwiLi4vLi4vbGliIjo3MTcsIi4uL2Jhci9ob3ZlciI6ODYzfV0sOTg2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxsYXlvdXRBdHRyaWJ1dGVzOnQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIikuc3VwcGx5RGVmYXVsdHMsY3Jvc3NUcmFjZURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKS5jcm9zc1RyYWNlRGVmYXVsdHMsc3VwcGx5TGF5b3V0RGVmYXVsdHM6dCgiLi9sYXlvdXRfZGVmYXVsdHMiKSxjYWxjOnQoIi4vY2FsYyIpLGNyb3NzVHJhY2VDYWxjOnQoIi4vY3Jvc3NfdHJhY2VfY2FsYyIpLHBsb3Q6dCgiLi9wbG90Iiksc3R5bGU6dCgiLi9zdHlsZSIpLnN0eWxlLGhvdmVyUG9pbnRzOnQoIi4vaG92ZXIiKSxldmVudERhdGE6dCgiLi9ldmVudF9kYXRhIiksc2VsZWN0UG9pbnRzOnQoIi4uL2Jhci9zZWxlY3QiKSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToiZnVubmVsIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxjYXRlZ29yaWVzOlsiYmFyLWxpa2UiLCJjYXJ0ZXNpYW4iLCJzdmciLCJvcmllbnRlZCIsInNob3dMZWdlbmQiLCJ6b29tU2NhbGUiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjc3NiwiLi4vYmFyL3NlbGVjdCI6ODY4LCIuL2F0dHJpYnV0ZXMiOjk3OSwiLi9jYWxjIjo5ODAsIi4vY3Jvc3NfdHJhY2VfY2FsYyI6OTgyLCIuL2RlZmF1bHRzIjo5ODMsIi4vZXZlbnRfZGF0YSI6OTg0LCIuL2hvdmVyIjo5ODUsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjk4NywiLi9sYXlvdXRfZGVmYXVsdHMiOjk4OCwiLi9wbG90Ijo5ODksIi4vc3R5bGUiOjk5MH1dLDk4NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2Z1bm5lbG1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInN0YWNrIiwiZ3JvdXAiLCJvdmVybGF5Il0sZGZsdDoic3RhY2siLGVkaXRUeXBlOiJjYWxjIn0sZnVubmVsZ2FwOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGVkaXRUeXBlOiJjYWxjIn0sZnVubmVsZ3JvdXBnYXA6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDowLGVkaXRUeXBlOiJjYWxjIn19fSx7fV0sOTg4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGk9ITE7ZnVuY3Rpb24gbyhyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsYSxyLGkpfWZvcih2YXIgcz0wO3M8ci5sZW5ndGg7cysrKXt2YXIgbD1yW3NdO2lmKGwudmlzaWJsZSYmImZ1bm5lbCI9PT1sLnR5cGUpe2k9ITA7YnJlYWt9fWkmJihvKCJmdW5uZWxtb2RlIiksbygiZnVubmVsZ2FwIiwuMiksbygiZnVubmVsZ3JvdXBnYXAiKSl9fSx7Ii4uLy4uL2xpYiI6NzE3LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo5ODd9XSw5ODk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxhPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksbz10KCIuLi9iYXIvcGxvdCIpLHM9dCgiLi4vYmFyL3VuaWZvcm1fdGV4dCIpLmNsZWFyTWluVGV4dFNpemU7ZnVuY3Rpb24gbCh0LGUscixuKXt2YXIgYT1bXSxpPVtdLG89bj9lOnIscz1uP3I6ZTtyZXR1cm4gYVswXT1vLmMycCh0LnMwLCEwKSxpWzBdPXMuYzJwKHQucDAsITApLGFbMV09by5jMnAodC5zMSwhMCksaVsxXT1zLmMycCh0LnAxLCEwKSxhWzJdPW8uYzJwKHQubmV4dFMwLCEwKSxpWzJdPXMuYzJwKHQubmV4dFAwLCEwKSxhWzNdPW8uYzJwKHQubmV4dFMxLCEwKSxpWzNdPXMuYzJwKHQubmV4dFAxLCEwKSxuP1thLGldOltpLGFdfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscixjKXt2YXIgdT10Ll9mdWxsTGF5b3V0O3MoImZ1bm5lbCIsdSksZnVuY3Rpb24odCxlLHIsbyl7dmFyIHM9ZS54YXhpcyxjPWUueWF4aXM7YS5tYWtlVHJhY2VHcm91cHMobyxyLCJ0cmFjZSBiYXJzIikuZWFjaChmdW5jdGlvbihyKXt2YXIgbz1uLnNlbGVjdCh0aGlzKSx1PXJbMF0udHJhY2UsaD1hLmVuc3VyZVNpbmdsZShvLCJnIiwicmVnaW9ucyIpO2lmKHUuY29ubmVjdG9yJiZ1LmNvbm5lY3Rvci52aXNpYmxlKXt2YXIgZj0iaCI9PT11Lm9yaWVudGF0aW9uLHA9aC5zZWxlY3RBbGwoImcucmVnaW9uIikuZGF0YShhLmlkZW50aXR5KTtwLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgicmVnaW9uIiwhMCkscC5leGl0KCkucmVtb3ZlKCk7dmFyIGQ9cC5zaXplKCk7cC5lYWNoKGZ1bmN0aW9uKHIsbyl7aWYobz09PWQtMXx8ci5jTmV4dCl7dmFyIHU9bChyLHMsYyxmKSxoPXVbMF0scD11WzFdLGc9IiI7dm9pZCAwIT09aFszXSYmdm9pZCAwIT09cFszXSYmKGcrPWY/Ik0iK2hbMF0rIiwiK3BbMV0rIkwiK2hbMl0rIiwiK3BbMl0rIkgiK2hbM10rIkwiK2hbMV0rIiwiK3BbMV0rIloiOiJNIitoWzFdKyIsIitwWzFdKyJMIitoWzJdKyIsIitwWzNdKyJWIitwWzJdKyJMIitoWzFdKyIsIitwWzBdKyJaIiksYS5lbnN1cmVTaW5nbGUobi5zZWxlY3QodGhpcyksInBhdGgiKS5hdHRyKCJkIixnKS5jYWxsKGkuc2V0Q2xpcFVybCxlLmxheWVyQ2xpcElkLHQpfX0pfWVsc2UgaC5yZW1vdmUoKX0pfSh0LGUscixjKSxmdW5jdGlvbih0LGUscixvKXt2YXIgcz1lLnhheGlzLGM9ZS55YXhpczthLm1ha2VUcmFjZUdyb3VwcyhvLHIsInRyYWNlIGJhcnMiKS5lYWNoKGZ1bmN0aW9uKHIpe3ZhciBvPW4uc2VsZWN0KHRoaXMpLHU9clswXS50cmFjZSxoPWEuZW5zdXJlU2luZ2xlKG8sImciLCJsaW5lcyIpO2lmKHUuY29ubmVjdG9yJiZ1LmNvbm5lY3Rvci52aXNpYmxlJiZ1LmNvbm5lY3Rvci5saW5lLndpZHRoKXt2YXIgZj0iaCI9PT11Lm9yaWVudGF0aW9uLHA9aC5zZWxlY3RBbGwoImcubGluZSIpLmRhdGEoYS5pZGVudGl0eSk7cC5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoImxpbmUiLCEwKSxwLmV4aXQoKS5yZW1vdmUoKTt2YXIgZD1wLnNpemUoKTtwLmVhY2goZnVuY3Rpb24ocixvKXtpZihvPT09ZC0xfHxyLmNOZXh0KXt2YXIgdT1sKHIscyxjLGYpLGg9dVswXSxwPXVbMV0sZz0iIjt2b2lkIDAhPT1oWzNdJiZ2b2lkIDAhPT1wWzNdJiYoZj8oZys9Ik0iK2hbMF0rIiwiK3BbMV0rIkwiK2hbMl0rIiwiK3BbMl0sZys9Ik0iK2hbMV0rIiwiK3BbMV0rIkwiK2hbM10rIiwiK3BbMl0pOihnKz0iTSIraFsxXSsiLCIrcFsxXSsiTCIraFsyXSsiLCIrcFszXSxnKz0iTSIraFsxXSsiLCIrcFswXSsiTCIraFsyXSsiLCIrcFsyXSkpLCIiPT09ZyYmKGc9Ik0wLDBaIiksYS5lbnN1cmVTaW5nbGUobi5zZWxlY3QodGhpcyksInBhdGgiKS5hdHRyKCJkIixnKS5jYWxsKGkuc2V0Q2xpcFVybCxlLmxheWVyQ2xpcElkLHQpfX0pfWVsc2UgaC5yZW1vdmUoKX0pfSh0LGUscixjKSxvLnBsb3QodCxlLHIsYyx7bW9kZTp1LmZ1bm5lbG1vZGUsbm9ybTp1LmZ1bm5lbG1vZGUsZ2FwOnUuZnVubmVsZ2FwLGdyb3VwZ2FwOnUuZnVubmVsZ3JvdXBnYXB9KX19LHsiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo2MTMsIi4uLy4uL2xpYiI6NzE3LCIuLi9iYXIvcGxvdCI6ODY3LCIuLi9iYXIvdW5pZm9ybV90ZXh0Ijo4NzIsZDM6MTY1fV0sOTkwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxvPXQoIi4uLy4uL2NvbnN0YW50cy9pbnRlcmFjdGlvbnMiKS5ERVNFTEVDVERJTSxzPXQoIi4uL2Jhci9zdHlsZSIpLGw9dCgiLi4vYmFyL3VuaWZvcm1fdGV4dCIpLnJlc2l6ZVRleHQsYz1zLnN0eWxlVGV4dFBvaW50cztlLmV4cG9ydHM9e3N0eWxlOmZ1bmN0aW9uKHQsZSxyKXt2YXIgcz1yfHxuLnNlbGVjdCh0KS5zZWxlY3RBbGwoImcuZnVubmVsbGF5ZXIiKS5zZWxlY3RBbGwoImcudHJhY2UiKTtsKHQscywiZnVubmVsIikscy5zdHlsZSgib3BhY2l0eSIsZnVuY3Rpb24odCl7cmV0dXJuIHRbMF0udHJhY2Uub3BhY2l0eX0pLHMuZWFjaChmdW5jdGlvbihlKXt2YXIgcj1uLnNlbGVjdCh0aGlzKSxzPWVbMF0udHJhY2U7ci5zZWxlY3RBbGwoIi5wb2ludCA+IHBhdGgiKS5lYWNoKGZ1bmN0aW9uKHQpe2lmKCF0LmlzQmxhbmspe3ZhciBlPXMubWFya2VyO24uc2VsZWN0KHRoaXMpLmNhbGwoaS5maWxsLHQubWN8fGUuY29sb3IpLmNhbGwoaS5zdHJva2UsdC5tbGN8fGUubGluZS5jb2xvcikuY2FsbChhLmRhc2hMaW5lLGUubGluZS5kYXNoLHQubWx3fHxlLmxpbmUud2lkdGgpLnN0eWxlKCJvcGFjaXR5IixzLnNlbGVjdGVkcG9pbnRzJiYhdC5zZWxlY3RlZD9vOjEpfX0pLGMocixzLHQpLHIuc2VsZWN0QWxsKCIucmVnaW9ucyIpLmVhY2goZnVuY3Rpb24oKXtuLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoInBhdGgiKS5zdHlsZSgic3Ryb2tlLXdpZHRoIiwwKS5jYWxsKGkuZmlsbCxzLmNvbm5lY3Rvci5maWxsY29sb3IpfSksci5zZWxlY3RBbGwoIi5saW5lcyIpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1zLmNvbm5lY3Rvci5saW5lO2EubGluZUdyb3VwU3R5bGUobi5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJwYXRoIiksdC53aWR0aCx0LmNvbG9yLHQuZGFzaCl9KX0pfX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTkyLCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjYxMywiLi4vLi4vY29uc3RhbnRzL2ludGVyYWN0aW9ucyI6NjkyLCIuLi9iYXIvc3R5bGUiOjg3MCwiLi4vYmFyL3VuaWZvcm1fdGV4dCI6ODcyLGQzOjE2NX1dLDk5MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9waWUvYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vcGxvdHMvZG9tYWluIikuYXR0cmlidXRlcyxvPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMscz10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikudGV4dHRlbXBsYXRlQXR0cnMsbD10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdDtlLmV4cG9ydHM9e2xhYmVsczpuLmxhYmVscyxsYWJlbDA6bi5sYWJlbDAsZGxhYmVsOm4uZGxhYmVsLHZhbHVlczpuLnZhbHVlcyxtYXJrZXI6e2NvbG9yczpuLm1hcmtlci5jb2xvcnMsbGluZTp7Y29sb3I6bCh7fSxuLm1hcmtlci5saW5lLmNvbG9yLHtkZmx0Om51bGx9KSx3aWR0aDpsKHt9LG4ubWFya2VyLmxpbmUud2lkdGgse2RmbHQ6MX0pLGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMifSx0ZXh0Om4udGV4dCxob3ZlcnRleHQ6bi5ob3ZlcnRleHQsc2NhbGVncm91cDpsKHt9LG4uc2NhbGVncm91cCx7fSksdGV4dGluZm86bCh7fSxuLnRleHRpbmZvLHtmbGFnczpbImxhYmVsIiwidGV4dCIsInZhbHVlIiwicGVyY2VudCJdfSksdGV4dHRlbXBsYXRlOnMoe2VkaXRUeXBlOiJwbG90In0se2tleXM6WyJsYWJlbCIsImNvbG9yIiwidmFsdWUiLCJ0ZXh0IiwicGVyY2VudCJdfSksaG92ZXJpbmZvOmwoe30sYS5ob3ZlcmluZm8se2ZsYWdzOlsibGFiZWwiLCJ0ZXh0IiwidmFsdWUiLCJwZXJjZW50IiwibmFtZSJdfSksaG92ZXJ0ZW1wbGF0ZTpvKHt9LHtrZXlzOlsibGFiZWwiLCJjb2xvciIsInZhbHVlIiwidGV4dCIsInBlcmNlbnQiXX0pLHRleHRwb3NpdGlvbjpsKHt9LG4udGV4dHBvc2l0aW9uLHt2YWx1ZXM6WyJpbnNpZGUiLCJub25lIl0sZGZsdDoiaW5zaWRlIn0pLHRleHRmb250Om4udGV4dGZvbnQsaW5zaWRldGV4dGZvbnQ6bi5pbnNpZGV0ZXh0Zm9udCx0aXRsZTp7dGV4dDpuLnRpdGxlLnRleHQsZm9udDpuLnRpdGxlLmZvbnQscG9zaXRpb246bCh7fSxuLnRpdGxlLnBvc2l0aW9uLHt2YWx1ZXM6WyJ0b3AgbGVmdCIsInRvcCBjZW50ZXIiLCJ0b3AgcmlnaHQiXSxkZmx0OiJ0b3AgY2VudGVyIn0pLGVkaXRUeXBlOiJwbG90In0sZG9tYWluOmkoe25hbWU6ImZ1bm5lbGFyZWEiLHRyYWNlOiEwLGVkaXRUeXBlOiJjYWxjIn0pLGFzcGVjdHJhdGlvOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MSxlZGl0VHlwZToicGxvdCJ9LGJhc2VyYXRpbzp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0Oi4zMzMsZWRpdFR5cGU6InBsb3QifX19LHsiLi4vLi4vbGliL2V4dGVuZCI6NzA4LCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIjo3NjIsIi4uLy4uL3Bsb3RzL2RvbWFpbiI6NzkwLCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo4NDEsIi4uL3BpZS9hdHRyaWJ1dGVzIjoxMDk0fV0sOTkyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIik7ci5uYW1lPSJmdW5uZWxhcmVhIixyLnBsb3Q9ZnVuY3Rpb24odCxlLGEsaSl7bi5wbG90QmFzZVBsb3Qoci5uYW1lLHQsZSxhLGkpfSxyLmNsZWFuPWZ1bmN0aW9uKHQsZSxhLGkpe24uY2xlYW5CYXNlUGxvdChyLm5hbWUsdCxlLGEsaSl9fSx7Ii4uLy4uL3Bsb3RzL3Bsb3RzIjo4MjZ9XSw5OTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vcGllL2NhbGMiKTtlLmV4cG9ydHM9e2NhbGM6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbi5jYWxjKHQsZSl9LGNyb3NzVHJhY2VDYWxjOmZ1bmN0aW9uKHQpe24uY3Jvc3NUcmFjZUNhbGModCx7dHlwZToiZnVubmVsYXJlYSJ9KX19fSx7Ii4uL3BpZS9jYWxjIjoxMDk2fV0sOTk0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9wbG90cy9kb21haW4iKS5kZWZhdWx0cyxvPXQoIi4uL2Jhci9kZWZhdWx0cyIpLmhhbmRsZVRleHQscz10KCIuLi9waWUvZGVmYXVsdHMiKS5oYW5kbGVMYWJlbHNBbmRWYWx1ZXM7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGwpe2Z1bmN0aW9uIGMocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGEscixpKX12YXIgdT1jKCJsYWJlbHMiKSxoPWMoInZhbHVlcyIpLGY9cyh1LGgpLHA9Zi5sZW47aWYoZS5faGFzTGFiZWxzPWYuaGFzTGFiZWxzLGUuX2hhc1ZhbHVlcz1mLmhhc1ZhbHVlcywhZS5faGFzTGFiZWxzJiZlLl9oYXNWYWx1ZXMmJihjKCJsYWJlbDAiKSxjKCJkbGFiZWwiKSkscCl7ZS5fbGVuZ3RoPXAsYygibWFya2VyLmxpbmUud2lkdGgiKSYmYygibWFya2VyLmxpbmUuY29sb3IiLGwucGFwZXJfYmdjb2xvciksYygibWFya2VyLmNvbG9ycyIpLGMoInNjYWxlZ3JvdXAiKTt2YXIgZCxnPWMoInRleHQiKSx2PWMoInRleHR0ZW1wbGF0ZSIpO2lmKHZ8fChkPWMoInRleHRpbmZvIixBcnJheS5pc0FycmF5KGcpPyJ0ZXh0K3BlcmNlbnQiOiJwZXJjZW50IikpLGMoImhvdmVydGV4dCIpLGMoImhvdmVydGVtcGxhdGUiKSx2fHxkJiYibm9uZSIhPT1kKXt2YXIgbT1jKCJ0ZXh0cG9zaXRpb24iKTtvKHQsZSxsLGMsbSx7bW9kdWxlSGFzU2VsZWN0ZWQ6ITEsbW9kdWxlSGFzVW5zZWxlY3RlZDohMSxtb2R1bGVIYXNDb25zdHJhaW46ITEsbW9kdWxlSGFzQ2xpcG9uYXhpczohMSxtb2R1bGVIYXNUZXh0YW5nbGU6ITEsbW9kdWxlSGFzSW5zaWRlYW5jaG9yOiExfSl9aShlLGwsYyksYygidGl0bGUudGV4dCIpJiYoYygidGl0bGUucG9zaXRpb24iKSxuLmNvZXJjZUZvbnQoYywidGl0bGUuZm9udCIsbC5mb250KSksYygiYXNwZWN0cmF0aW8iKSxjKCJiYXNlcmF0aW8iKX1lbHNlIGUudmlzaWJsZT0hMX19LHsiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3Bsb3RzL2RvbWFpbiI6NzkwLCIuLi9iYXIvZGVmYXVsdHMiOjg2MCwiLi4vcGllL2RlZmF1bHRzIjoxMDk3LCIuL2F0dHJpYnV0ZXMiOjk5MX1dLDk5NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e21vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJmdW5uZWxhcmVhIixiYXNlUGxvdE1vZHVsZTp0KCIuL2Jhc2VfcGxvdCIpLGNhdGVnb3JpZXM6WyJwaWUtbGlrZSIsImZ1bm5lbGFyZWEiLCJzaG93TGVnZW5kIl0sYXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxsYXlvdXRBdHRyaWJ1dGVzOnQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksc3VwcGx5TGF5b3V0RGVmYXVsdHM6dCgiLi9sYXlvdXRfZGVmYXVsdHMiKSxjYWxjOnQoIi4vY2FsYyIpLmNhbGMsY3Jvc3NUcmFjZUNhbGM6dCgiLi9jYWxjIikuY3Jvc3NUcmFjZUNhbGMscGxvdDp0KCIuL3Bsb3QiKSxzdHlsZTp0KCIuL3N0eWxlIiksc3R5bGVPbmU6dCgiLi4vcGllL3N0eWxlX29uZSIpLG1ldGE6e319fSx7Ii4uL3BpZS9zdHlsZV9vbmUiOjExMDUsIi4vYXR0cmlidXRlcyI6OTkxLCIuL2Jhc2VfcGxvdCI6OTkyLCIuL2NhbGMiOjk5MywiLi9kZWZhdWx0cyI6OTk0LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo5OTYsIi4vbGF5b3V0X2RlZmF1bHRzIjo5OTcsIi4vcGxvdCI6OTk4LCIuL3N0eWxlIjo5OTl9XSw5OTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vcGllL2xheW91dF9hdHRyaWJ1dGVzIikuaGlkZGVubGFiZWxzO2UuZXhwb3J0cz17aGlkZGVubGFiZWxzOm4sZnVubmVsYXJlYWNvbG9yd2F5Ont2YWxUeXBlOiJjb2xvcmxpc3QiLGVkaXRUeXBlOiJjYWxjIn0sZXh0ZW5kZnVubmVsYXJlYWNvbG9yczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToiY2FsYyJ9fX0seyIuLi9waWUvbGF5b3V0X2F0dHJpYnV0ZXMiOjExMDF9XSw5OTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuL2xheW91dF9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gcihyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsYSxyLGkpfXIoImhpZGRlbmxhYmVscyIpLHIoImZ1bm5lbGFyZWFjb2xvcndheSIsZS5jb2xvcndheSkscigiZXh0ZW5kZnVubmVsYXJlYWNvbG9ycyIpfX0seyIuLi8uLi9saWIiOjcxNywiLi9sYXlvdXRfYXR0cmlidXRlcyI6OTk2fV0sOTk4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxpPXQoIi4uLy4uL2xpYiIpLG89dCgiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIikscz10KCIuLi9iYXIvcGxvdCIpLnRvTW92ZUluc2lkZUJhcixsPXQoIi4uL2Jhci91bmlmb3JtX3RleHQiKSxjPWwucmVjb3JkTWluVGV4dFNpemUsdT1sLmNsZWFyTWluVGV4dFNpemUsaD10KCIuLi9waWUvaGVscGVycyIpLGY9dCgiLi4vcGllL3Bsb3QiKSxwPWYuYXR0YWNoRnhIYW5kbGVycyxkPWYuZGV0ZXJtaW5lSW5zaWRlVGV4dEZvbnQsZz1mLmxheW91dEFyZWFzLHY9Zi5wcmVyZW5kZXJUaXRsZXMsbT1mLnBvc2l0aW9uVGl0bGVPdXRzaWRlLHk9Zi5mb3JtYXRTbGljZUxhYmVsO2Z1bmN0aW9uIHgodCxlKXtyZXR1cm4ibCIrKGVbMF0tdFswXSkrIiwiKyhlWzFdLXRbMV0pfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQuX2Z1bGxMYXlvdXQ7dSgiZnVubmVsYXJlYSIsciksdihlLHQpLGcoZSxyLl9zaXplKSxpLm1ha2VUcmFjZUdyb3VwcyhyLl9mdW5uZWxhcmVhbGF5ZXIsZSwidHJhY2UiKS5lYWNoKGZ1bmN0aW9uKGUpe3ZhciBsPW4uc2VsZWN0KHRoaXMpLHU9ZVswXSxmPXUudHJhY2U7IWZ1bmN0aW9uKHQpe2lmKCF0Lmxlbmd0aClyZXR1cm47dmFyIGU9dFswXSxyPWUudHJhY2Usbj1yLmFzcGVjdHJhdGlvLGE9ci5iYXNlcmF0aW87YT4uOTk5JiYoYT0uOTk5KTt2YXIgaSxvPU1hdGgucG93KGEsMikscz1lLnZUb3RhbCxsPXMsYz1zKm8vKDEtbykvcztmdW5jdGlvbiB1KCl7dmFyIHQsZT17eDp0PU1hdGguc3FydChjKSx5Oi10fTtyZXR1cm5bZS54LGUueV19dmFyIGgsZixwPVtdO2ZvcihwLnB1c2godSgpKSxoPXQubGVuZ3RoLTE7aD4tMTtoLS0paWYoIShmPXRbaF0pLmhpZGRlbil7dmFyIGQ9Zi52L2w7Yys9ZCxwLnB1c2godSgpKX12YXIgZz0xLzAsdj0tMS8wO2ZvcihoPTA7aDxwLmxlbmd0aDtoKyspaT1wW2hdLGc9TWF0aC5taW4oZyxpWzFdKSx2PU1hdGgubWF4KHYsaVsxXSk7Zm9yKGg9MDtoPHAubGVuZ3RoO2grKylwW2hdWzFdLT0oditnKS8yO3ZhciBtPXBbcC5sZW5ndGgtMV1bMF0seT1lLnIseD0odi1nKS8yLGI9eS9tLF89eS94Km47Zm9yKGUucj1fKngsaD0wO2g8cC5sZW5ndGg7aCsrKXBbaF1bMF0qPWIscFtoXVsxXSo9Xzt2YXIgdz1bLShpPXBbMF0pWzBdLGlbMV1dLGs9W2lbMF0saVsxXV0sVD0wO2ZvcihoPXQubGVuZ3RoLTE7aD4tMTtoLS0paWYoIShmPXRbaF0pLmhpZGRlbil7dmFyIE09cFtUKz0xXVswXSxBPXBbVF1bMV07Zi5UTD1bLU0sQV0sZi5UUj1bTSxBXSxmLkJMPXcsZi5CUj1rLGYucHhtaWQ9KFM9Zi5UUixFPWYuQlIsWy41KihTWzBdK0VbMF0pLC41KihTWzFdK0VbMV0pXSksdz1mLlRMLGs9Zi5UUn12YXIgUyxFfShlKSxsLmVhY2goZnVuY3Rpb24oKXt2YXIgbD1uLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoImcuc2xpY2UiKS5kYXRhKGUpO2wuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJzbGljZSIsITApLGwuZXhpdCgpLnJlbW92ZSgpLGwuZWFjaChmdW5jdGlvbihsLGcpe2lmKGwuaGlkZGVuKW4uc2VsZWN0KHRoaXMpLnNlbGVjdEFsbCgicGF0aCxnIikucmVtb3ZlKCk7ZWxzZXtsLnBvaW50TnVtYmVyPWwuaSxsLmN1cnZlTnVtYmVyPWYuaW5kZXg7dmFyIHY9dS5jeCxtPXUuY3ksYj1uLnNlbGVjdCh0aGlzKSxfPWIuc2VsZWN0QWxsKCJwYXRoLnN1cmZhY2UiKS5kYXRhKFtsXSk7Xy5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQoInN1cmZhY2UiLCEwKS5zdHlsZSh7InBvaW50ZXItZXZlbnRzIjoiYWxsIn0pLGIuY2FsbChwLHQsZSk7dmFyIHc9Ik0iKyh2K2wuVFJbMF0pKyIsIisobStsLlRSWzFdKSt4KGwuVFIsbC5CUikreChsLkJSLGwuQkwpK3gobC5CTCxsLlRMKSsiWiI7Xy5hdHRyKCJkIix3KSx5KHQsbCx1KTt2YXIgaz1oLmNhc3RPcHRpb24oZi50ZXh0cG9zaXRpb24sbC5wdHMpLFQ9Yi5zZWxlY3RBbGwoImcuc2xpY2V0ZXh0IikuZGF0YShsLnRleHQmJiJub25lIiE9PWs/WzBdOltdKTtULmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgic2xpY2V0ZXh0IiwhMCksVC5leGl0KCkucmVtb3ZlKCksVC5lYWNoKGZ1bmN0aW9uKCl7dmFyIHU9aS5lbnN1cmVTaW5nbGUobi5zZWxlY3QodGhpcyksInRleHQiLCIiLGZ1bmN0aW9uKHQpe3QuYXR0cigiZGF0YS1ub3RleCIsMSl9KSxoPWkuZW5zdXJlVW5pZm9ybUZvbnRTaXplKHQsZChmLGwsci5mb250KSk7dS50ZXh0KGwudGV4dCkuYXR0cih7Y2xhc3M6InNsaWNldGV4dCIsdHJhbnNmb3JtOiIiLCJ0ZXh0LWFuY2hvciI6Im1pZGRsZSJ9KS5jYWxsKGEuZm9udCxoKS5jYWxsKG8uY29udmVydFRvVHNwYW5zLHQpO3ZhciBwLHkseCxiPWEuYkJveCh1Lm5vZGUoKSksXz1NYXRoLm1pbihsLkJMWzFdLGwuQlJbMV0pK20sdz1NYXRoLm1heChsLlRMWzFdLGwuVFJbMV0pK207eT1NYXRoLm1heChsLlRMWzBdLGwuQkxbMF0pK3YseD1NYXRoLm1pbihsLlRSWzBdLGwuQlJbMF0pK3YsKHA9cyh5LHgsXyx3LGIse2lzSG9yaXpvbnRhbDohMCxjb25zdHJhaW5lZDohMCxhbmdsZTowLGFuY2hvcjoibWlkZGxlIn0pKS5mb250U2l6ZT1oLnNpemUsYyhmLnR5cGUscCxyKSxlW2ddLnRyYW5zZm9ybT1wLHUuYXR0cigidHJhbnNmb3JtIixpLmdldFRleHRUcmFuc2Zvcm0ocCkpfSl9fSk7dmFyIGc9bi5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJnLnRpdGxldGV4dCIpLmRhdGEoZi50aXRsZS50ZXh0P1swXTpbXSk7Zy5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoInRpdGxldGV4dCIsITApLGcuZXhpdCgpLnJlbW92ZSgpLGcuZWFjaChmdW5jdGlvbigpe3ZhciBlPWkuZW5zdXJlU2luZ2xlKG4uc2VsZWN0KHRoaXMpLCJ0ZXh0IiwiIixmdW5jdGlvbih0KXt0LmF0dHIoImRhdGEtbm90ZXgiLDEpfSkscz1mLnRpdGxlLnRleHQ7Zi5fbWV0YSYmKHM9aS50ZW1wbGF0ZVN0cmluZyhzLGYuX21ldGEpKSxlLnRleHQocykuYXR0cih7Y2xhc3M6InRpdGxldGV4dCIsdHJhbnNmb3JtOiIiLCJ0ZXh0LWFuY2hvciI6Im1pZGRsZSJ9KS5jYWxsKGEuZm9udCxmLnRpdGxlLmZvbnQpLmNhbGwoby5jb252ZXJ0VG9Uc3BhbnMsdCk7dmFyIGw9bSh1LHIuX3NpemUpO2UuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrbC54KyIsIitsLnkrIikiKyhsLnNjYWxlPDE/InNjYWxlKCIrbC5zY2FsZSsiKSI6IiIpKyJ0cmFuc2xhdGUoIitsLnR4KyIsIitsLnR5KyIpIil9KX0pfSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjEzLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo3NDEsIi4uL2Jhci9wbG90Ijo4NjcsIi4uL2Jhci91bmlmb3JtX3RleHQiOjg3MiwiLi4vcGllL2hlbHBlcnMiOjEwOTksIi4uL3BpZS9wbG90IjoxMTAzLGQzOjE2NX1dLDk5OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGE9dCgiLi4vcGllL3N0eWxlX29uZSIpLGk9dCgiLi4vYmFyL3VuaWZvcm1fdGV4dCIpLnJlc2l6ZVRleHQ7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQuX2Z1bm5lbGFyZWFsYXllci5zZWxlY3RBbGwoIi50cmFjZSIpO2kodCxlLCJmdW5uZWxhcmVhIiksZS5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0udHJhY2Uscj1uLnNlbGVjdCh0aGlzKTtyLnN0eWxlKHtvcGFjaXR5OmUub3BhY2l0eX0pLHIuc2VsZWN0QWxsKCJwYXRoLnN1cmZhY2UiKS5lYWNoKGZ1bmN0aW9uKHQpe24uc2VsZWN0KHRoaXMpLmNhbGwoYSx0LGUpfSl9KX19LHsiLi4vYmFyL3VuaWZvcm1fdGV4dCI6ODcyLCIuLi9waWUvc3R5bGVfb25lIjoxMTA1LGQzOjE2NX1dLDEwMDA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikuaG92ZXJ0ZW1wbGF0ZUF0dHJzLG89dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxzPSh0KCIuLi8uLi9jb25zdGFudHMvZG9jcyIpLkZPUk1BVF9MSU5LLHQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0KTtlLmV4cG9ydHM9cyh7ejp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSx4OnMoe30sbi54LHtpbXBsaWVkRWRpdHM6e3h0eXBlOiJhcnJheSJ9fSkseDA6cyh7fSxuLngwLHtpbXBsaWVkRWRpdHM6e3h0eXBlOiJzY2FsZWQifX0pLGR4OnMoe30sbi5keCx7aW1wbGllZEVkaXRzOnt4dHlwZToic2NhbGVkIn19KSx5OnMoe30sbi55LHtpbXBsaWVkRWRpdHM6e3l0eXBlOiJhcnJheSJ9fSkseTA6cyh7fSxuLnkwLHtpbXBsaWVkRWRpdHM6e3l0eXBlOiJzY2FsZWQifX0pLGR5OnMoe30sbi5keSx7aW1wbGllZEVkaXRzOnt5dHlwZToic2NhbGVkIn19KSx0ZXh0Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGhvdmVydGV4dDp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSx0cmFuc3Bvc2U6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITEsZWRpdFR5cGU6ImNhbGMifSx4dHlwZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYXJyYXkiLCJzY2FsZWQiXSxlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LHl0eXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhcnJheSIsInNjYWxlZCJdLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0senNtb290aDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZmFzdCIsImJlc3QiLCExXSxkZmx0OiExLGVkaXRUeXBlOiJjYWxjIn0saG92ZXJvbmdhcHM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6Im5vbmUifSxjb25uZWN0Z2Fwczp7dmFsVHlwZToiYm9vbGVhbiIsZWRpdFR5cGU6ImNhbGMifSx4Z2FwOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MCxtaW46MCxlZGl0VHlwZToicGxvdCJ9LHlnYXA6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDowLG1pbjowLGVkaXRUeXBlOiJwbG90In0semhvdmVyZm9ybWF0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6Im5vbmUifSxob3ZlcnRlbXBsYXRlOmkoKSxzaG93bGVnZW5kOnMoe30sYS5zaG93bGVnZW5kLHtkZmx0OiExfSl9LHt0cmFuc2Zvcm1zOnZvaWQgMH0sbygiIix7Y0xldHRlcjoieiIsYXV0b0NvbG9yRGZsdDohMX0pKX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6NTk5LCIuLi8uLi9jb25zdGFudHMvZG9jcyI6Njg4LCIuLi8uLi9saWIvZXh0ZW5kIjo3MDgsIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiOjc2MiwiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyI6ODQxLCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiOjExMjB9XSwxMDAxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3JlZ2lzdHJ5IiksYT10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksbz10KCIuLi9oaXN0b2dyYW0yZC9jYWxjIikscz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY2FsYyIpLGw9dCgiLi9jb252ZXJ0X2NvbHVtbl94eXoiKSxjPXQoIi4vY2xlYW5fMmRfYXJyYXkiKSx1PXQoIi4vaW50ZXJwMmQiKSxoPXQoIi4vZmluZF9lbXB0aWVzIiksZj10KCIuL21ha2VfYm91bmRfYXJyYXkiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixwLGQsZyx2LG0seSx4LGIsXz1pLmdldEZyb21JZCh0LGUueGF4aXN8fCJ4Iiksdz1pLmdldEZyb21JZCh0LGUueWF4aXN8fCJ5Iiksaz1uLnRyYWNlSXMoZSwiY29udG91ciIpLFQ9bi50cmFjZUlzKGUsImhpc3RvZ3JhbSIpLE09bi50cmFjZUlzKGUsImdsMmQiKSxBPWs/ImJlc3QiOmUuenNtb290aDtpZihfLl9taW5EdGljaz0wLHcuX21pbkR0aWNrPTAsVClyPShiPW8odCxlKSkueCxwPWIueDAsZD1iLmR4LGc9Yi55LHY9Yi55MCxtPWIuZHkseT1iLno7ZWxzZXt2YXIgUz1lLno7YS5pc0FycmF5MUQoUyk/KGwoZSxfLHcsIngiLCJ5IixbInoiXSkscj1lLl94LGc9ZS5feSxTPWUuX3opOihyPWUuX3g9ZS54P18ubWFrZUNhbGNkYXRhKGUsIngiKTpbXSxnPWUuX3k9ZS55P3cubWFrZUNhbGNkYXRhKGUsInkiKTpbXSkscD1lLngwLGQ9ZS5keCx2PWUueTAsbT1lLmR5LHk9YyhTLGUsXyx3KSwoa3x8ZS5jb25uZWN0Z2FwcykmJihlLl9lbXB0eXBvaW50cz1oKHkpLHUoeSxlLl9lbXB0eXBvaW50cykpfWZ1bmN0aW9uIEUodCl7QT1lLl9pbnB1dC56c21vb3RoPWUuenNtb290aD0hMSxhLndhcm4oJ2Nhbm5vdCB1c2UgenNtb290aDogImZhc3QiOiAnK3QpfWlmKCJmYXN0Ij09PUEpaWYoImxvZyI9PT1fLnR5cGV8fCJsb2ciPT09dy50eXBlKUUoImxvZyBheGlzIGZvdW5kIik7ZWxzZSBpZighVCl7aWYoci5sZW5ndGgpe3ZhciBMPShyW3IubGVuZ3RoLTFdLXJbMF0pLyhyLmxlbmd0aC0xKSxDPU1hdGguYWJzKEwvMTAwKTtmb3IoeD0wO3g8ci5sZW5ndGgtMTt4KyspaWYoTWF0aC5hYnMoclt4KzFdLXJbeF0tTCk+Qyl7RSgieCBzY2FsZSBpcyBub3QgbGluZWFyIik7YnJlYWt9fWlmKGcubGVuZ3RoJiYiZmFzdCI9PT1BKXt2YXIgUD0oZ1tnLmxlbmd0aC0xXS1nWzBdKS8oZy5sZW5ndGgtMSksTz1NYXRoLmFicyhQLzEwMCk7Zm9yKHg9MDt4PGcubGVuZ3RoLTE7eCsrKWlmKE1hdGguYWJzKGdbeCsxXS1nW3hdLVApPk8pe0UoInkgc2NhbGUgaXMgbm90IGxpbmVhciIpO2JyZWFrfX19dmFyIHo9YS5tYXhSb3dMZW5ndGgoeSksST0ic2NhbGVkIj09PWUueHR5cGU/IiI6cixEPWYoZSxJLHAsZCx6LF8pLFI9InNjYWxlZCI9PT1lLnl0eXBlPyIiOmcsRj1mKGUsUix2LG0seS5sZW5ndGgsdyk7TXx8KGUuX2V4dHJlbWVzW18uX2lkXT1pLmZpbmRFeHRyZW1lcyhfLEQpLGUuX2V4dHJlbWVzW3cuX2lkXT1pLmZpbmRFeHRyZW1lcyh3LEYpKTt2YXIgQj17eDpELHk6Rix6OnksdGV4dDplLl90ZXh0fHxlLnRleHQsaG92ZXJ0ZXh0OmUuX2hvdmVydGV4dHx8ZS5ob3ZlcnRleHR9O2lmKEkmJkkubGVuZ3RoPT09RC5sZW5ndGgtMSYmKEIueENlbnRlcj1JKSxSJiZSLmxlbmd0aD09PUYubGVuZ3RoLTEmJihCLnlDZW50ZXI9UiksVCYmKEIueFJhbmdlcz1iLnhSYW5nZXMsQi55UmFuZ2VzPWIueVJhbmdlcyxCLnB0cz1iLnB0cyksa3x8cyh0LGUse3ZhbHM6eSxjTGV0dGVyOiJ6In0pLGsmJmUuY29udG91cnMmJiJoZWF0bWFwIj09PWUuY29udG91cnMuY29sb3Jpbmcpe3ZhciBOPXt0eXBlOiJjb250b3VyIj09PWUudHlwZT8iaGVhdG1hcCI6Imhpc3RvZ3JhbTJkIix4Y2FsZW5kYXI6ZS54Y2FsZW5kYXIseWNhbGVuZGFyOmUueWNhbGVuZGFyfTtCLnhmaWxsPWYoTixJLHAsZCx6LF8pLEIueWZpbGw9ZihOLFIsdixtLHkubGVuZ3RoLHcpfXJldHVybltCXX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiOjYwMCwiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo3NjUsIi4uLy4uL3JlZ2lzdHJ5Ijo4NDYsIi4uL2hpc3RvZ3JhbTJkL2NhbGMiOjEwMzIsIi4vY2xlYW5fMmRfYXJyYXkiOjEwMDIsIi4vY29udmVydF9jb2x1bW5feHl6IjoxMDA0LCIuL2ZpbmRfZW1wdGllcyI6MTAwNiwiLi9pbnRlcnAyZCI6MTAwOSwiLi9tYWtlX2JvdW5kX2FycmF5IjoxMDEwfV0sMTAwMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGE9dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixvKXt2YXIgcyxsLGMsdSxoLGY7ZnVuY3Rpb24gcCh0KXtpZihuKHQpKXJldHVybit0fWlmKGUmJmUudHJhbnNwb3NlKXtmb3Iocz0wLGg9MDtoPHQubGVuZ3RoO2grKylzPU1hdGgubWF4KHMsdFtoXS5sZW5ndGgpO2lmKDA9PT1zKXJldHVybiExO2M9ZnVuY3Rpb24odCl7cmV0dXJuIHQubGVuZ3RofSx1PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4odFtyXXx8W10pW2VdfX1lbHNlIHM9dC5sZW5ndGgsYz1mdW5jdGlvbih0LGUpe3JldHVybiB0W2VdLmxlbmd0aH0sdT1mdW5jdGlvbih0LGUscil7cmV0dXJuKHRbZV18fFtdKVtyXX07dmFyIGQ9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBlPT09aXx8cj09PWk/aTp1KHQsZSxyKX07ZnVuY3Rpb24gZyh0KXtpZihlJiYiY2FycGV0IiE9PWUudHlwZSYmImNvbnRvdXJjYXJwZXQiIT09ZS50eXBlJiZ0JiYiY2F0ZWdvcnkiPT09dC50eXBlJiZlWyJfIit0Ll9pZC5jaGFyQXQoMCldLmxlbmd0aCl7dmFyIHI9dC5faWQuY2hhckF0KDApLG49e30sbz1lWyJfIityKyJDYXRlZ29yeU1hcCJdfHxlW3JdO2ZvcihoPTA7aDxvLmxlbmd0aDtoKyspbltvW2hdXT1oO3JldHVybiBmdW5jdGlvbihlKXt2YXIgcj1uW3QuX2NhdGVnb3JpZXNbZV1dO3JldHVybiByKzE/cjppfX1yZXR1cm4gYS5pZGVudGl0eX12YXIgdj1nKHIpLG09ZyhvKTtvJiYiY2F0ZWdvcnkiPT09by50eXBlJiYocz1vLl9jYXRlZ29yaWVzLmxlbmd0aCk7dmFyIHk9bmV3IEFycmF5KHMpO2ZvcihoPTA7aDxzO2grKylmb3IobD1yJiYiY2F0ZWdvcnkiPT09ci50eXBlP3IuX2NhdGVnb3JpZXMubGVuZ3RoOmModCxoKSx5W2hdPW5ldyBBcnJheShsKSxmPTA7ZjxsO2YrKyl5W2hdW2ZdPXAoZCh0LG0oaCksdihmKSkpO3JldHVybiB5fX0seyIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo2OTMsIi4uLy4uL2xpYiI6NzE3LCJmYXN0LWlzbnVtZXJpYyI6MjI4fV0sMTAwMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e21pbjoiem1pbiIsbWF4OiJ6bWF4In19LHt9XSwxMDA0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaSxvLHMpe3ZhciBsLGMsdSxoLGY9dC5fbGVuZ3RoLHA9ZS5tYWtlQ2FsY2RhdGEodCxpKSxkPXIubWFrZUNhbGNkYXRhKHQsbyksZz10LnRleHQsdj12b2lkIDAhPT1nJiZuLmlzQXJyYXkxRChnKSxtPXQuaG92ZXJ0ZXh0LHk9dm9pZCAwIT09bSYmbi5pc0FycmF5MUQobSkseD1uLmRpc3RpbmN0VmFscyhwKSxiPXgudmFscyxfPW4uZGlzdGluY3RWYWxzKGQpLHc9Xy52YWxzLGs9W107Zm9yKGw9MDtsPHMubGVuZ3RoO2wrKylrW2xdPW4uaW5pdDJkQXJyYXkody5sZW5ndGgsYi5sZW5ndGgpO3YmJih1PW4uaW5pdDJkQXJyYXkody5sZW5ndGgsYi5sZW5ndGgpKSx5JiYoaD1uLmluaXQyZEFycmF5KHcubGVuZ3RoLGIubGVuZ3RoKSk7dmFyIFQ9bi5pbml0MmRBcnJheSh3Lmxlbmd0aCxiLmxlbmd0aCk7Zm9yKGw9MDtsPGY7bCsrKWlmKHBbbF0hPT1hJiZkW2xdIT09YSl7dmFyIE09bi5maW5kQmluKHBbbF0reC5taW5EaWZmLzIsYiksQT1uLmZpbmRCaW4oZFtsXStfLm1pbkRpZmYvMix3KTtmb3IoYz0wO2M8cy5sZW5ndGg7YysrKXt2YXIgUz10W3NbY11dO2tbY11bQV1bTV09U1tsXSxUW0FdW01dPWx9diYmKHVbQV1bTV09Z1tsXSkseSYmKGhbQV1bTV09bVtsXSl9Zm9yKHRbIl8iK2ldPWIsdFsiXyIrb109dyxjPTA7YzxzLmxlbmd0aDtjKyspdFsiXyIrc1tjXV09a1tjXTt2JiYodC5fdGV4dD11KSx5JiYodC5faG92ZXJ0ZXh0PWgpLGUmJiJjYXRlZ29yeSI9PT1lLnR5cGUmJih0WyJfIitpKyJDYXRlZ29yeU1hcCJdPWIubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBlLl9jYXRlZ29yaWVzW3RdfSkpLHImJiJjYXRlZ29yeSI9PT1yLnR5cGUmJih0WyJfIitvKyJDYXRlZ29yeU1hcCJdPXcubWFwKGZ1bmN0aW9uKHQpe3JldHVybiByLl9jYXRlZ29yaWVzW3RdfSkpLHQuX2FmdGVyMmJlZm9yZT1UfX0seyIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo2OTMsIi4uLy4uL2xpYiI6NzE3fV0sMTAwNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4veHl6X2RlZmF1bHRzIiksaT10KCIuL3N0eWxlX2RlZmF1bHRzIiksbz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiKSxzPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixsKXtmdW5jdGlvbiBjKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxzLHIsYSl9YSh0LGUsYyxsKT8oYygidGV4dCIpLGMoImhvdmVydGV4dCIpLGMoImhvdmVydGVtcGxhdGUiKSxpKHQsZSxjLGwpLGMoImhvdmVyb25nYXBzIiksYygiY29ubmVjdGdhcHMiLG4uaXNBcnJheTFEKGUueikmJiExIT09ZS56c21vb3RoKSxvKHQsZSxsLGMse3ByZWZpeDoiIixjTGV0dGVyOiJ6In0pKTplLnZpc2libGU9ITF9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyI6NjAyLCIuLi8uLi9saWIiOjcxNywiLi9hdHRyaWJ1dGVzIjoxZTMsIi4vc3R5bGVfZGVmYXVsdHMiOjEwMTMsIi4veHl6X2RlZmF1bHRzIjoxMDE0fV0sMTAwNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKS5tYXhSb3dMZW5ndGg7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlLHIsYSxpLG8scyxsLGMsdT1bXSxoPXt9LGY9W10scD10WzBdLGQ9W10sZz1bMCwwLDBdLHY9bih0KTtmb3Iocj0wO3I8dC5sZW5ndGg7cisrKWZvcihlPWQsZD1wLHA9dFtyKzFdfHxbXSxhPTA7YTx2O2ErKyl2b2lkIDA9PT1kW2FdJiYoKHM9KHZvaWQgMCE9PWRbYS0xXT8xOjApKyh2b2lkIDAhPT1kW2ErMV0/MTowKSsodm9pZCAwIT09ZVthXT8xOjApKyh2b2lkIDAhPT1wW2FdPzE6MCkpPygwPT09ciYmcysrLDA9PT1hJiZzKysscj09PXQubGVuZ3RoLTEmJnMrKyxhPT09ZC5sZW5ndGgtMSYmcysrLHM8NCYmKGhbW3IsYV1dPVtyLGEsc10pLHUucHVzaChbcixhLHNdKSk6Zi5wdXNoKFtyLGFdKSk7Zm9yKDtmLmxlbmd0aDspe2ZvcihsPXt9LGM9ITEsbz1mLmxlbmd0aC0xO28+PTA7by0tKShzPSgoaFtbKHI9KGk9ZltvXSlbMF0pLTEsYT1pWzFdXV18fGcpWzJdKyhoW1tyKzEsYV1dfHxnKVsyXSsoaFtbcixhLTFdXXx8ZylbMl0rKGhbW3IsYSsxXV18fGcpWzJdKS8yMCkmJihsW2ldPVtyLGEsc10sZi5zcGxpY2UobywxKSxjPSEwKTtpZighYyl0aHJvdyJmaW5kRW1wdGllcyBpdGVyYXRlZCB3aXRoIG5vIG5ldyBuZWlnaGJvcnMiO2ZvcihpIGluIGwpaFtpXT1sW2ldLHUucHVzaChsW2ldKX1yZXR1cm4gdS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGVbMl0tdFsyXX0pfX0seyIuLi8uLi9saWIiOjcxN31dLDEwMDc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9meCIpLGE9dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIikuZXh0cmFjdE9wdHM7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMsbCxjKXt2YXIgdSxoLGYscCxkPXQuY2RbMF0sZz1kLnRyYWNlLHY9dC54YSxtPXQueWEseT1kLngseD1kLnksYj1kLnosXz1kLnhDZW50ZXIsdz1kLnlDZW50ZXIsaz1kLnptYXNrLFQ9Zy56aG92ZXJmb3JtYXQsTT15LEE9eDtpZighMSE9PXQuaW5kZXgpe3RyeXtmPU1hdGgucm91bmQodC5pbmRleFsxXSkscD1NYXRoLnJvdW5kKHQuaW5kZXhbMF0pfWNhdGNoKGUpe3JldHVybiB2b2lkIGEuZXJyb3IoIkVycm9yIGhvdmVyaW5nIG9uIGhlYXRtYXAsIHBvaW50TnVtYmVyIG11c3QgYmUgW3Jvdyxjb2xdLCBmb3VuZDoiLHQuaW5kZXgpfWlmKGY8MHx8Zj49YlswXS5sZW5ndGh8fHA8MHx8cD5iLmxlbmd0aClyZXR1cm59ZWxzZXtpZihuLmluYm94KGUteVswXSxlLXlbeS5sZW5ndGgtMV0sMCk+MHx8bi5pbmJveChyLXhbMF0sci14W3gubGVuZ3RoLTFdLDApPjApcmV0dXJuO2lmKGMpe3ZhciBTO2ZvcihNPVsyKnlbMF0teVsxXV0sUz0xO1M8eS5sZW5ndGg7UysrKU0ucHVzaCgoeVtTXSt5W1MtMV0pLzIpO2ZvcihNLnB1c2goWzIqeVt5Lmxlbmd0aC0xXS15W3kubGVuZ3RoLTJdXSksQT1bMip4WzBdLXhbMV1dLFM9MTtTPHgubGVuZ3RoO1MrKylBLnB1c2goKHhbU10reFtTLTFdKS8yKTtBLnB1c2goWzIqeFt4Lmxlbmd0aC0xXS14W3gubGVuZ3RoLTJdXSl9Zj1NYXRoLm1heCgwLE1hdGgubWluKE0ubGVuZ3RoLTIsYS5maW5kQmluKGUsTSkpKSxwPU1hdGgubWF4KDAsTWF0aC5taW4oQS5sZW5ndGgtMixhLmZpbmRCaW4ocixBKSkpfXZhciBFPXYuYzJwKHlbZl0pLEw9di5jMnAoeVtmKzFdKSxDPW0uYzJwKHhbcF0pLFA9bS5jMnAoeFtwKzFdKTtjPyhMPUUsdT15W2ZdLFA9QyxoPXhbcF0pOih1PV8/X1tmXTooeVtmXSt5W2YrMV0pLzIsaD13P3dbcF06KHhbcF0reFtwKzFdKS8yLHYmJiJjYXRlZ29yeSI9PT12LnR5cGUmJih1PXlbZl0pLG0mJiJjYXRlZ29yeSI9PT1tLnR5cGUmJihoPXhbcF0pLGcuenNtb290aCYmKEU9TD12LmMycCh1KSxDPVA9bS5jMnAoaCkpKTt2YXIgTz1iW3BdW2ZdO2lmKGsmJiFrW3BdW2ZdJiYoTz12b2lkIDApLHZvaWQgMCE9PU98fGcuaG92ZXJvbmdhcHMpe3ZhciB6O0FycmF5LmlzQXJyYXkoZC5ob3ZlcnRleHQpJiZBcnJheS5pc0FycmF5KGQuaG92ZXJ0ZXh0W3BdKT96PWQuaG92ZXJ0ZXh0W3BdW2ZdOkFycmF5LmlzQXJyYXkoZC50ZXh0KSYmQXJyYXkuaXNBcnJheShkLnRleHRbcF0pJiYoej1kLnRleHRbcF1bZl0pO3ZhciBJPW8oZyksRD17dHlwZToibGluZWFyIixyYW5nZTpbSS5taW4sSS5tYXhdLGhvdmVyZm9ybWF0OlQsX3NlcGFyYXRvcnM6di5fc2VwYXJhdG9ycyxfbnVtRm9ybWF0OnYuX251bUZvcm1hdH0sUj1pLnRpY2tUZXh0KEQsTywiaG92ZXIiKS50ZXh0O3JldHVyblthLmV4dGVuZEZsYXQodCx7aW5kZXg6Zy5fYWZ0ZXIyYmVmb3JlP2cuX2FmdGVyMmJlZm9yZVtwXVtmXTpbcCxmXSxkaXN0YW5jZTp0Lm1heEhvdmVyRGlzdGFuY2Usc3Bpa2VEaXN0YW5jZTp0Lm1heFNwaWtlRGlzdGFuY2UseDA6RSx4MTpMLHkwOkMseTE6UCx4TGFiZWxWYWw6dSx5TGFiZWxWYWw6aCx6TGFiZWxWYWw6Tyx6TGFiZWw6Uix0ZXh0Onp9KV19fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiOjYwNCwiLi4vLi4vY29tcG9uZW50cy9meCI6NjMwLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjc2NX1dLDEwMDg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjYWxjOnQoIi4vY2FsYyIpLHBsb3Q6dCgiLi9wbG90IiksY29sb3JiYXI6dCgiLi9jb2xvcmJhciIpLHN0eWxlOnQoIi4vc3R5bGUiKSxob3ZlclBvaW50czp0KCIuL2hvdmVyIiksbW9kdWxlVHlwZToidHJhY2UiLG5hbWU6ImhlYXRtYXAiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbiIpLGNhdGVnb3JpZXM6WyJjYXJ0ZXNpYW4iLCJzdmciLCIyZE1hcCIsInNob3dMZWdlbmQiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjc3NiwiLi9hdHRyaWJ1dGVzIjoxZTMsIi4vY2FsYyI6MTAwMSwiLi9jb2xvcmJhciI6MTAwMywiLi9kZWZhdWx0cyI6MTAwNSwiLi9ob3ZlciI6MTAwNywiLi9wbG90IjoxMDExLCIuL3N0eWxlIjoxMDEyfV0sMTAwOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPVtbLTEsMF0sWzEsMF0sWzAsLTFdLFswLDFdXTtmdW5jdGlvbiBpKHQpe3JldHVybi41LS4yNSpNYXRoLm1pbigxLC41KnQpfWZ1bmN0aW9uIG8odCxlLHIpe3ZhciBuLGksbyxzLGwsYyx1LGgsZixwLGQsZyx2LG09MDtmb3Iocz0wO3M8ZS5sZW5ndGg7cysrKXtmb3IoaT0obj1lW3NdKVswXSxvPW5bMV0sZD10W2ldW29dLHA9MCxmPTAsbD0wO2w8NDtsKyspKHU9dFtpKyhjPWFbbF0pWzBdXSkmJnZvaWQgMCE9PShoPXVbbytjWzFdXSkmJigwPT09cD9nPXY9aDooZz1NYXRoLm1pbihnLGgpLHY9TWF0aC5tYXgodixoKSksZisrLHArPWgpO2lmKDA9PT1mKXRocm93Iml0ZXJhdGVJbnRlcnAyZCBvcmRlciBpcyB3cm9uZzogbm8gZGVmaW5lZCBuZWlnaGJvcnMiO3RbaV1bb109cC9mLHZvaWQgMD09PWQ/Zjw0JiYobT0xKToodFtpXVtvXT0oMStyKSp0W2ldW29dLXIqZCx2PmcmJihtPU1hdGgubWF4KG0sTWF0aC5hYnModFtpXVtvXS1kKS8odi1nKSkpKX1yZXR1cm4gbX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixhPTE7Zm9yKG8odCxlKSxyPTA7cjxlLmxlbmd0aCYmIShlW3JdWzJdPDQpO3IrKyk7Zm9yKGU9ZS5zbGljZShyKSxyPTA7cjwxMDAmJmE+LjAxO3IrKylhPW8odCxlLGkoYSkpO3JldHVybiBhPi4wMSYmbi5sb2coImludGVycDJkIGRpZG4ndCBjb252ZXJnZSBxdWlja2x5IixhKSx0fX0seyIuLi8uLi9saWIiOjcxN31dLDEwMTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcmVnaXN0cnkiKSxhPXQoIi4uLy4uL2xpYiIpLmlzQXJyYXlPclR5cGVkQXJyYXk7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGksbyxzKXt2YXIgbCxjLHUsaD1bXSxmPW4udHJhY2VJcyh0LCJjb250b3VyIikscD1uLnRyYWNlSXModCwiaGlzdG9ncmFtIiksZD1uLnRyYWNlSXModCwiZ2wyZCIpO2lmKGEoZSkmJmUubGVuZ3RoPjEmJiFwJiYiY2F0ZWdvcnkiIT09cy50eXBlKXt2YXIgZz1lLmxlbmd0aDtpZighKGc8PW8pKXJldHVybiBmP2Uuc2xpY2UoMCxvKTplLnNsaWNlKDAsbysxKTtpZihmfHxkKWg9ZS5zbGljZSgwLG8pO2Vsc2UgaWYoMT09PW8paD1bZVswXS0uNSxlWzBdKy41XTtlbHNle2ZvcihoPVsxLjUqZVswXS0uNSplWzFdXSx1PTE7dTxnO3UrKyloLnB1c2goLjUqKGVbdS0xXStlW3VdKSk7aC5wdXNoKDEuNSplW2ctMV0tLjUqZVtnLTJdKX1pZihnPG8pe3ZhciB2PWhbaC5sZW5ndGgtMV0sbT12LWhbaC5sZW5ndGgtMl07Zm9yKHU9Zzt1PG87dSsrKXYrPW0saC5wdXNoKHYpfX1lbHNle3ZhciB5PXRbcy5faWQuY2hhckF0KDApKyJjYWxlbmRhciJdO2lmKHApbD1zLnIyYyhyLDAseSk7ZWxzZSBpZihhKGUpJiYxPT09ZS5sZW5ndGgpbD1lWzBdO2Vsc2UgaWYodm9pZCAwPT09cilsPTA7ZWxzZXtsPSgibG9nIj09PXMudHlwZT9zLmQyYzpzLnIyYykociwwLHkpfWZvcihjPWl8fDEsdT1mfHxkPzA6LS41O3U8bzt1KyspaC5wdXNoKGwrYyp1KX1yZXR1cm4gaH19LHsiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3JlZ2lzdHJ5Ijo4NDZ9XSwxMDExOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksYT10KCJ0aW55Y29sb3IyIiksaT10KCIuLi8uLi9yZWdpc3RyeSIpLG89dCgiLi4vLi4vbGliIikscz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiKS5tYWtlQ29sb3JTY2FsZUZ1bmNGcm9tVHJhY2UsbD10KCIuLi8uLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyIpO2Z1bmN0aW9uIGModCxlKXt2YXIgcj1lLmxlbmd0aC0yLG49by5jb25zdHJhaW4oby5maW5kQmluKHQsZSksMCxyKSxhPWVbbl0saT1lW24rMV0scz1vLmNvbnN0cmFpbihuKyh0LWEpLyhpLWEpLS41LDAsciksbD1NYXRoLnJvdW5kKHMpLGM9TWF0aC5hYnMocy1sKTtyZXR1cm4gcyYmcyE9PXImJmM/e2JpbjA6bCxmcmFjOmMsYmluMTpNYXRoLnJvdW5kKGwrYy8ocy1sKSl9OntiaW4wOmwsYmluMTpsLGZyYWM6MH19ZnVuY3Rpb24gdSh0LGUpe3ZhciByPWUubGVuZ3RoLTEsbj1vLmNvbnN0cmFpbihvLmZpbmRCaW4odCxlKSwwLHIpLGE9ZVtuXSxpPSh0LWEpLyhlW24rMV0tYSl8fDA7cmV0dXJuIGk8PTA/e2JpbjA6bixiaW4xOm4sZnJhYzowfTppPC41P3tiaW4wOm4sYmluMTpuKzEsZnJhYzppfTp7YmluMDpuKzEsYmluMTpuLGZyYWM6MS1pfX1mdW5jdGlvbiBoKHQsZSxyKXt0W2VdPXJbMF0sdFtlKzFdPXJbMV0sdFtlKzJdPXJbMl0sdFtlKzNdPU1hdGgucm91bmQoMjU1KnJbM10pfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscixmKXt2YXIgcD1lLnhheGlzLGQ9ZS55YXhpcztvLm1ha2VUcmFjZUdyb3VwcyhmLHIsImhtIikuZWFjaChmdW5jdGlvbihlKXt2YXIgcixmLGcsdixtLHkseD1uLnNlbGVjdCh0aGlzKSxiPWVbMF0sXz1iLnRyYWNlLHc9Yi56LGs9Yi54LFQ9Yi55LE09Yi54Q2VudGVyLEE9Yi55Q2VudGVyLFM9aS50cmFjZUlzKF8sImNvbnRvdXIiKSxFPVM/ImJlc3QiOl8uenNtb290aCxMPXcubGVuZ3RoLEM9by5tYXhSb3dMZW5ndGgodyksUD0hMSxPPSExO2Zvcih5PTA7dm9pZCAwPT09ciYmeTxrLmxlbmd0aC0xOylyPXAuYzJwKGtbeV0pLHkrKztmb3IoeT1rLmxlbmd0aC0xO3ZvaWQgMD09PWYmJnk+MDspZj1wLmMycChrW3ldKSx5LS07Zm9yKGY8ciYmKGc9ZixmPXIscj1nLFA9ITApLHk9MDt2b2lkIDA9PT12JiZ5PFQubGVuZ3RoLTE7KXY9ZC5jMnAoVFt5XSkseSsrO2Zvcih5PVQubGVuZ3RoLTE7dm9pZCAwPT09bSYmeT4wOyltPWQuYzJwKFRbeV0pLHktLTtpZihtPHYmJihnPXYsdj1tLG09ZyxPPSEwKSxTJiYoTT1rLEE9VCxrPWIueGZpbGwsVD1iLnlmaWxsKSwiZmFzdCIhPT1FKXt2YXIgej0iYmVzdCI9PT1FPzA6LjU7cj1NYXRoLm1heCgteipwLl9sZW5ndGgsciksZj1NYXRoLm1pbigoMSt6KSpwLl9sZW5ndGgsZiksdj1NYXRoLm1heCgteipkLl9sZW5ndGgsdiksbT1NYXRoLm1pbigoMSt6KSpkLl9sZW5ndGgsbSl9dmFyIEk9TWF0aC5yb3VuZChmLXIpLEQ9TWF0aC5yb3VuZChtLXYpO2lmKEk8PTB8fEQ8PTApe3guc2VsZWN0QWxsKCJpbWFnZSIpLmRhdGEoW10pLmV4aXQoKS5yZW1vdmUoKX1lbHNle3ZhciBSLEY7ImZhc3QiPT09RT8oUj1DLEY9TCk6KFI9SSxGPUQpO3ZhciBCPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO0Iud2lkdGg9UixCLmhlaWdodD1GO3ZhciBOLGosVj1CLmdldENvbnRleHQoIjJkIiksVT1zKF8se25vTnVtZXJpY0NoZWNrOiEwLHJldHVybkFycmF5OiEwfSk7ImZhc3QiPT09RT8oTj1QP2Z1bmN0aW9uKHQpe3JldHVybiBDLTEtdH06by5pZGVudGl0eSxqPU8/ZnVuY3Rpb24odCl7cmV0dXJuIEwtMS10fTpvLmlkZW50aXR5KTooTj1mdW5jdGlvbih0KXtyZXR1cm4gby5jb25zdHJhaW4oTWF0aC5yb3VuZChwLmMycChrW3RdKS1yKSwwLEkpfSxqPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNvbnN0cmFpbihNYXRoLnJvdW5kKGQuYzJwKFRbdF0pLXYpLDAsRCl9KTt2YXIgcSxILEcsWSxXLFg9aigwKSxaPVtYLFhdLEo9UD8wOjEsSz1PPzA6MSxRPTAsJD0wLHR0PTAsZXQ9MDtpZihFKXt2YXIgcnQsbnQ9MDt0cnl7cnQ9bmV3IFVpbnQ4QXJyYXkoSSpEKjQpfWNhdGNoKHQpe3J0PW5ldyBBcnJheShJKkQqNCl9aWYoImJlc3QiPT09RSl7dmFyIGF0LGl0LG90LHN0PU18fGssbHQ9QXx8VCxjdD1uZXcgQXJyYXkoc3QubGVuZ3RoKSx1dD1uZXcgQXJyYXkobHQubGVuZ3RoKSxodD1uZXcgQXJyYXkoSSksZnQ9TT91OmMscHQ9QT91OmM7Zm9yKHk9MDt5PHN0Lmxlbmd0aDt5KyspY3RbeV09TWF0aC5yb3VuZChwLmMycChzdFt5XSktcik7Zm9yKHk9MDt5PGx0Lmxlbmd0aDt5KyspdXRbeV09TWF0aC5yb3VuZChkLmMycChsdFt5XSktdik7Zm9yKHk9MDt5PEk7eSsrKWh0W3ldPWZ0KHksY3QpO2ZvcihIPTA7SDxEO0grKylmb3IoaXQ9d1soYXQ9cHQoSCx1dCkpLmJpbjBdLG90PXdbYXQuYmluMV0seT0wO3k8STt5KyssbnQrPTQpaChydCxudCxXPVR0KGl0LG90LGh0W3ldLGF0KSl9ZWxzZSBmb3IoSD0wO0g8TDtIKyspZm9yKFk9d1tIXSxaPWooSCkseT0wO3k8STt5KyspVz1rdChZW3ldLDEpLGgocnQsbnQ9NCooWipJK04oeSkpLFcpO3ZhciBkdD1WLmNyZWF0ZUltYWdlRGF0YShJLEQpO3RyeXtkdC5kYXRhLnNldChydCl9Y2F0Y2godCl7dmFyIGd0PWR0LmRhdGEsdnQ9Z3QubGVuZ3RoO2ZvcihIPTA7SDx2dDtIKyspZ3RbSF09cnRbSF19Vi5wdXRJbWFnZURhdGEoZHQsMCwwKX1lbHNle3ZhciBtdD1fLnhnYXAseXQ9Xy55Z2FwLHh0PU1hdGguZmxvb3IobXQvMiksYnQ9TWF0aC5mbG9vcih5dC8yKTtmb3IoSD0wO0g8TDtIKyspaWYoWT13W0hdLFoucmV2ZXJzZSgpLFpbS109aihIKzEpLFpbMF0hPT1aWzFdJiZ2b2lkIDAhPT1aWzBdJiZ2b2lkIDAhPT1aWzFdKWZvcihxPVtHPU4oMCksR10seT0wO3k8Qzt5KyspcS5yZXZlcnNlKCkscVtKXT1OKHkrMSkscVswXSE9PXFbMV0mJnZvaWQgMCE9PXFbMF0mJnZvaWQgMCE9PXFbMV0mJihXPWt0KFlbeV0sKHFbMV0tcVswXSkqKFpbMV0tWlswXSkpLFYuZmlsbFN0eWxlPSJyZ2JhKCIrVy5qb2luKCIsIikrIikiLFYuZmlsbFJlY3QocVswXSt4dCxaWzBdK2J0LHFbMV0tcVswXS1tdCxaWzFdLVpbMF0teXQpKX0kPU1hdGgucm91bmQoJC9RKSx0dD1NYXRoLnJvdW5kKHR0L1EpLGV0PU1hdGgucm91bmQoZXQvUSk7dmFyIF90PWEoInJnYigiKyQrIiwiK3R0KyIsIitldCsiKSIpO3QuX2htcGl4Y291bnQ9KHQuX2htcGl4Y291bnR8fDApK1EsdC5faG1sdW1jb3VudD0odC5faG1sdW1jb3VudHx8MCkrUSpfdC5nZXRMdW1pbmFuY2UoKTt2YXIgd3Q9eC5zZWxlY3RBbGwoImltYWdlIikuZGF0YShlKTt3dC5lbnRlcigpLmFwcGVuZCgic3ZnOmltYWdlIikuYXR0cih7eG1sbnM6bC5zdmcscHJlc2VydmVBc3BlY3RSYXRpbzoibm9uZSJ9KSx3dC5hdHRyKHtoZWlnaHQ6RCx3aWR0aDpJLHg6cix5OnYsInhsaW5rOmhyZWYiOkIudG9EYXRhVVJMKCJpbWFnZS9wbmciKX0pfWZ1bmN0aW9uIGt0KHQsZSl7aWYodm9pZCAwIT09dCl7dmFyIHI9VSh0KTtyZXR1cm4gclswXT1NYXRoLnJvdW5kKHJbMF0pLHJbMV09TWF0aC5yb3VuZChyWzFdKSxyWzJdPU1hdGgucm91bmQoclsyXSksUSs9ZSwkKz1yWzBdKmUsdHQrPXJbMV0qZSxldCs9clsyXSplLHJ9cmV0dXJuWzAsMCwwLDBdfWZ1bmN0aW9uIFR0KHQsZSxyLG4pe3ZhciBhPXRbci5iaW4wXTtpZih2b2lkIDA9PT1hKXJldHVybiBrdCh2b2lkIDAsMSk7dmFyIGksbz10W3IuYmluMV0scz1lW3IuYmluMF0sbD1lW3IuYmluMV0sYz1vLWF8fDAsdT1zLWF8fDA7cmV0dXJuIGk9dm9pZCAwPT09bz92b2lkIDA9PT1sPzA6dm9pZCAwPT09cz8yKihsLWEpOjIqKDIqbC1zLWEpLzM6dm9pZCAwPT09bD92b2lkIDA9PT1zPzA6MiooMiphLW8tcykvMzp2b2lkIDA9PT1zPzIqKDIqbC1vLWEpLzM6bCthLW8tcyxrdChhK3IuZnJhYypjK24uZnJhYyoodStyLmZyYWMqaSkpfX0pfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiOjYwNCwiLi4vLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiOjY5NCwiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3JlZ2lzdHJ5Ijo4NDYsZDM6MTY1LHRpbnljb2xvcjI6NTM2fV0sMTAxMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtuLnNlbGVjdCh0KS5zZWxlY3RBbGwoIi5obSBpbWFnZSIpLnN0eWxlKCJvcGFjaXR5IixmdW5jdGlvbih0KXtyZXR1cm4gdC50cmFjZS5vcGFjaXR5fSl9fSx7ZDM6MTY1fV0sMTAxMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpeyExPT09cigienNtb290aCIpJiYocigieGdhcCIpLHIoInlnYXAiKSkscigiemhvdmVyZm9ybWF0Iil9fSx7fV0sMTAxNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGE9dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9yZWdpc3RyeSIpO2Z1bmN0aW9uIG8odCxlKXt2YXIgcj1lKHQpO3JldHVybiJzY2FsZWQiPT09KHI/ZSh0KyJ0eXBlIiwiYXJyYXkiKToic2NhbGVkIikmJihlKHQrIjAiKSxlKCJkIit0KSkscn1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIscyxsLGMpe3ZhciB1LGgsZj1yKCJ6Iik7aWYobD1sfHwieCIsYz1jfHwieSIsdm9pZCAwPT09Znx8IWYubGVuZ3RoKXJldHVybiAwO2lmKGEuaXNBcnJheTFEKHQueikpe3U9cihsKSxoPXIoYyk7dmFyIHA9YS5taW5Sb3dMZW5ndGgodSksZD1hLm1pblJvd0xlbmd0aChoKTtpZigwPT09cHx8MD09PWQpcmV0dXJuIDA7ZS5fbGVuZ3RoPU1hdGgubWluKHAsZCxmLmxlbmd0aCl9ZWxzZXtpZih1PW8obCxyKSxoPW8oYyxyKSwhZnVuY3Rpb24odCl7Zm9yKHZhciBlLHI9ITAsaT0hMSxvPSExLHM9MDtzPHQubGVuZ3RoO3MrKyl7aWYoZT10W3NdLCFhLmlzQXJyYXlPclR5cGVkQXJyYXkoZSkpe3I9ITE7YnJlYWt9ZS5sZW5ndGg+MCYmKGk9ITApO2Zvcih2YXIgbD0wO2w8ZS5sZW5ndGg7bCsrKWlmKG4oZVtsXSkpe289ITA7YnJlYWt9fXJldHVybiByJiZpJiZvfShmKSlyZXR1cm4gMDtyKCJ0cmFuc3Bvc2UiKSxlLl9sZW5ndGg9bnVsbH1yZXR1cm4gaS5nZXRDb21wb25lbnRNZXRob2QoImNhbGVuZGFycyIsImhhbmRsZVRyYWNlRGVmYXVsdHMiKSh0LGUsW2wsY10scyksITB9fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi8uLi9yZWdpc3RyeSI6ODQ2LCJmYXN0LWlzbnVtZXJpYyI6MjI4fV0sMTAxNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijtmb3IodmFyIG49dCgiLi4vaGVhdG1hcC9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsbz10KCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIikub3ZlcnJpZGVBbGwscz1bInoiLCJ4IiwieDAiLCJkeCIsInkiLCJ5MCIsImR5IiwidGV4dCIsInRyYW5zcG9zZSIsInh0eXBlIiwieXR5cGUiXSxsPXt9LGM9MDtjPHMubGVuZ3RoO2MrKyl7dmFyIHU9c1tjXTtsW3VdPW5bdV19aShsLGEoIiIse2NMZXR0ZXI6InoiLGF1dG9Db2xvckRmbHQ6ITF9KSksZS5leHBvcnRzPW8obCwiY2FsYyIsIm5lc3RlZCIpfSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjo1OTksIi4uLy4uL2xpYi9leHRlbmQiOjcwOCwiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyI6NzQ4LCIuLi9oZWF0bWFwL2F0dHJpYnV0ZXMiOjFlM31dLDEwMTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZ2wtaGVhdG1hcDJkIiksYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGk9dCgiLi4vLi4vbGliL3N0cjJyZ2JhcnJheSIpO2Z1bmN0aW9uIG8odCxlKXt0aGlzLnNjZW5lPXQsdGhpcy51aWQ9ZSx0aGlzLnR5cGU9ImhlYXRtYXBnbCIsdGhpcy5uYW1lPSIiLHRoaXMuaG92ZXJpbmZvPSJhbGwiLHRoaXMueERhdGE9W10sdGhpcy55RGF0YT1bXSx0aGlzLnpEYXRhPVtdLHRoaXMudGV4dExhYmVscz1bXSx0aGlzLmlkVG9JbmRleD1bXSx0aGlzLmJvdW5kcz1bMCwwLDAsMF0sdGhpcy5vcHRpb25zPXt6OltdLHg6W10seTpbXSxzaGFwZTpbMCwwXSxjb2xvckxldmVsczpbMF0sY29sb3JWYWx1ZXM6WzAsMCwwLDFdfSx0aGlzLmhlYXRtYXA9bih0LmdscGxvdCx0aGlzLm9wdGlvbnMpLHRoaXMuaGVhdG1hcC5fdHJhY2U9dGhpc312YXIgcz1vLnByb3RvdHlwZTtzLmhhbmRsZVBpY2s9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5vcHRpb25zLHI9ZS5zaGFwZSxuPXQucG9pbnRJZCxhPW4lclswXSxpPU1hdGguZmxvb3Iobi9yWzBdKSxvPW47cmV0dXJue3RyYWNlOnRoaXMsZGF0YUNvb3JkOnQuZGF0YUNvb3JkLHRyYWNlQ29vcmQ6W2UueFthXSxlLnlbaV0sZS56W29dXSx0ZXh0TGFiZWw6dGhpcy50ZXh0TGFiZWxzW25dLG5hbWU6dGhpcy5uYW1lLHBvaW50SW5kZXg6W2ksYV0saG92ZXJpbmZvOnRoaXMuaG92ZXJpbmZvfX0scy51cGRhdGU9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdO3RoaXMuaW5kZXg9dC5pbmRleCx0aGlzLm5hbWU9dC5uYW1lLHRoaXMuaG92ZXJpbmZvPXQuaG92ZXJpbmZvO3ZhciBuPXIuejt0aGlzLm9wdGlvbnMuej1bXS5jb25jYXQuYXBwbHkoW10sbik7dmFyIG89blswXS5sZW5ndGgscz1uLmxlbmd0aDt0aGlzLm9wdGlvbnMuc2hhcGU9W28sc10sdGhpcy5vcHRpb25zLng9ci54LHRoaXMub3B0aW9ucy55PXIueTt2YXIgbD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5jb2xvcnNjYWxlLHI9dC56bWluLG49dC56bWF4LGE9ZS5sZW5ndGgsbz1uZXcgQXJyYXkoYSkscz1uZXcgQXJyYXkoNCphKSxsPTA7bDxhO2wrKyl7dmFyIGM9ZVtsXSx1PWkoY1sxXSk7b1tsXT1yK2NbMF0qKG4tcik7Zm9yKHZhciBoPTA7aDw0O2grKylzWzQqbCtoXT11W2hdfXJldHVybntjb2xvckxldmVsczpvLGNvbG9yVmFsdWVzOnN9fSh0KTt0aGlzLm9wdGlvbnMuY29sb3JMZXZlbHM9bC5jb2xvckxldmVscyx0aGlzLm9wdGlvbnMuY29sb3JWYWx1ZXM9bC5jb2xvclZhbHVlcyx0aGlzLnRleHRMYWJlbHM9W10uY29uY2F0LmFwcGx5KFtdLHQudGV4dCksdGhpcy5oZWF0bWFwLnVwZGF0ZSh0aGlzLm9wdGlvbnMpO3ZhciBjPXRoaXMuc2NlbmUueGF4aXMsdT10aGlzLnNjZW5lLnlheGlzO3QuX2V4dHJlbWVzW2MuX2lkXT1hLmZpbmRFeHRyZW1lcyhjLHIueCksdC5fZXh0cmVtZXNbdS5faWRdPWEuZmluZEV4dHJlbWVzKHUsci55KX0scy5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5oZWF0bWFwLmRpc3Bvc2UoKX0sZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1uZXcgbyh0LGUudWlkKTtyZXR1cm4gbi51cGRhdGUoZSxyKSxufX0seyIuLi8uLi9saWIvc3RyMnJnYmFycmF5Ijo3NDAsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo3NjUsImdsLWhlYXRtYXAyZCI6MjU0fV0sMTAxNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi4vaGVhdG1hcC9kZWZhdWx0cyIpLGNvbG9yYmFyOnQoIi4uL2hlYXRtYXAvY29sb3JiYXIiKSxjYWxjOnQoIi4uL2hlYXRtYXAvY2FsYyIpLHBsb3Q6dCgiLi9jb252ZXJ0IiksbW9kdWxlVHlwZToidHJhY2UiLG5hbWU6ImhlYXRtYXBnbCIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvZ2wyZCIpLGNhdGVnb3JpZXM6WyJnbCIsImdsMmQiLCIyZE1hcCJdLG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL2dsMmQiOjgwMywiLi4vaGVhdG1hcC9jYWxjIjoxMDAxLCIuLi9oZWF0bWFwL2NvbG9yYmFyIjoxMDAzLCIuLi9oZWF0bWFwL2RlZmF1bHRzIjoxMDA1LCIuL2F0dHJpYnV0ZXMiOjEwMTUsIi4vY29udmVydCI6MTAxNn1dLDEwMTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vYmFyL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMsaT10KCIuL2Jpbl9hdHRyaWJ1dGVzIiksbz10KCIuL2NvbnN0YW50cyIpLHM9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQ7ZS5leHBvcnRzPXt4Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LHk6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0sdGV4dDpzKHt9LG4udGV4dCx7fSksaG92ZXJ0ZXh0OnMoe30sbi5ob3ZlcnRleHQse30pLG9yaWVudGF0aW9uOm4ub3JpZW50YXRpb24saGlzdGZ1bmM6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImNvdW50Iiwic3VtIiwiYXZnIiwibWluIiwibWF4Il0sZGZsdDoiY291bnQiLGVkaXRUeXBlOiJjYWxjIn0saGlzdG5vcm06e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbIiIsInBlcmNlbnQiLCJwcm9iYWJpbGl0eSIsImRlbnNpdHkiLCJwcm9iYWJpbGl0eSBkZW5zaXR5Il0sZGZsdDoiIixlZGl0VHlwZToiY2FsYyJ9LGN1bXVsYXRpdmU6e2VuYWJsZWQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITEsZWRpdFR5cGU6ImNhbGMifSxkaXJlY3Rpb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImluY3JlYXNpbmciLCJkZWNyZWFzaW5nIl0sZGZsdDoiaW5jcmVhc2luZyIsZWRpdFR5cGU6ImNhbGMifSxjdXJyZW50YmluOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJpbmNsdWRlIiwiZXhjbHVkZSIsImhhbGYiXSxkZmx0OiJpbmNsdWRlIixlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYWxjIn0sbmJpbnN4Ont2YWxUeXBlOiJpbnRlZ2VyIixtaW46MCxkZmx0OjAsZWRpdFR5cGU6ImNhbGMifSx4YmluczppKCJ4IiwhMCksbmJpbnN5Ont2YWxUeXBlOiJpbnRlZ2VyIixtaW46MCxkZmx0OjAsZWRpdFR5cGU6ImNhbGMifSx5YmluczppKCJ5IiwhMCksYXV0b2Jpbng6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6bnVsbCxlZGl0VHlwZToiY2FsYyJ9LGF1dG9iaW55Ont2YWxUeXBlOiJib29sZWFuIixkZmx0Om51bGwsZWRpdFR5cGU6ImNhbGMifSxiaW5ncm91cDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGVkaXRUeXBlOiJjYWxjIn0saG92ZXJ0ZW1wbGF0ZTphKHt9LHtrZXlzOm8uZXZlbnREYXRhS2V5c30pLG1hcmtlcjpuLm1hcmtlcixvZmZzZXRncm91cDpuLm9mZnNldGdyb3VwLGFsaWdubWVudGdyb3VwOm4uYWxpZ25tZW50Z3JvdXAsc2VsZWN0ZWQ6bi5zZWxlY3RlZCx1bnNlbGVjdGVkOm4udW5zZWxlY3RlZCxfZGVwcmVjYXRlZDp7YmFyZGlyOm4uX2RlcHJlY2F0ZWQuYmFyZGlyfX19LHsiLi4vLi4vbGliL2V4dGVuZCI6NzA4LCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo4NDEsIi4uL2Jhci9hdHRyaWJ1dGVzIjo4NTYsIi4vYmluX2F0dHJpYnV0ZXMiOjEwMjAsIi4vY29uc3RhbnRzIjoxMDI0fV0sMTAxOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5sZW5ndGgsbj0wLGE9MDthPHI7YSsrKWVbYV0/KHRbYV0vPWVbYV0sbis9dFthXSk6dFthXT1udWxsO3JldHVybiBufX0se31dLDEwMjA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJue3N0YXJ0Ont2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjIn0sZW5kOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjIn0sc2l6ZTp7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYWxjIn19fSx7fV0sMTAyMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpO2UuZXhwb3J0cz17Y291bnQ6ZnVuY3Rpb24odCxlLHIpe3JldHVybiByW3RdKyssMX0sc3VtOmZ1bmN0aW9uKHQsZSxyLGEpe3ZhciBpPWFbZV07cmV0dXJuIG4oaSk/KGk9TnVtYmVyKGkpLHJbdF0rPWksaSk6MH0sYXZnOmZ1bmN0aW9uKHQsZSxyLGEsaSl7dmFyIG89YVtlXTtyZXR1cm4gbihvKSYmKG89TnVtYmVyKG8pLHJbdF0rPW8saVt0XSsrKSwwfSxtaW46ZnVuY3Rpb24odCxlLHIsYSl7dmFyIGk9YVtlXTtpZihuKGkpKXtpZihpPU51bWJlcihpKSwhbihyW3RdKSlyZXR1cm4gclt0XT1pLGk7aWYoclt0XT5pKXt2YXIgbz1pLXJbdF07cmV0dXJuIHJbdF09aSxvfX1yZXR1cm4gMH0sbWF4OmZ1bmN0aW9uKHQsZSxyLGEpe3ZhciBpPWFbZV07aWYobihpKSl7aWYoaT1OdW1iZXIoaSksIW4oclt0XSkpcmV0dXJuIHJbdF09aSxpO2lmKHJbdF08aSl7dmFyIG89aS1yW3RdO3JldHVybiByW3RdPWksb319cmV0dXJuIDB9fX0seyJmYXN0LWlzbnVtZXJpYyI6MjI4fV0sMTAyMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIiksYT1uLk9ORUFWR1lFQVIsaT1uLk9ORUFWR01PTlRILG89bi5PTkVEQVkscz1uLk9ORUhPVVIsbD1uLk9ORU1JTixjPW4uT05FU0VDLHU9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKS50aWNrSW5jcmVtZW50O2Z1bmN0aW9uIGgodCxlLHIsbil7aWYodCplPD0wKXJldHVybiAxLzA7Zm9yKHZhciBhPU1hdGguYWJzKGUtdCksaT0iZGF0ZSI9PT1yLnR5cGUsbz1mKGEsaSkscz0wO3M8MTA7cysrKXt2YXIgbD1mKDgwKm8saSk7aWYobz09PWwpYnJlYWs7aWYoIXAobCx0LGUsaSxyLG4pKWJyZWFrO289bH1yZXR1cm4gb31mdW5jdGlvbiBmKHQsZSl7cmV0dXJuIGUmJnQ+Yz90Pm8/dD4xLjEqYT9hOnQ+MS4xKmk/aTpvOnQ+cz9zOnQ+bD9sOmM6TWF0aC5wb3coMTAsTWF0aC5mbG9vcihNYXRoLmxvZyh0KS9NYXRoLkxOMTApKX1mdW5jdGlvbiBwKHQsZSxyLG4saSxzKXtpZihuJiZ0Pm8pe3ZhciBsPWQoZSxpLHMpLGM9ZChyLGkscyksdT10PT09YT8wOjE7cmV0dXJuIGxbdV0hPT1jW3VdfXJldHVybiBNYXRoLmZsb29yKHIvdCktTWF0aC5mbG9vcihlL3QpPi4xfWZ1bmN0aW9uIGQodCxlLHIpe3ZhciBuPWUuYzJkKHQsYSxyKS5zcGxpdCgiLSIpO3JldHVybiIiPT09blswXSYmKG4udW5zaGlmdCgpLG5bMF09Ii0iK25bMF0pLG59ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIHMsbCxjPS0xLjEqZSxmPS0uMSplLHA9dC1mLGQ9clswXSxnPXJbMV0sdj1NYXRoLm1pbihoKGQrZixkK3AsbixpKSxoKGcrZixnK3AsbixpKSksbT1NYXRoLm1pbihoKGQrYyxkK2YsbixpKSxoKGcrYyxnK2YsbixpKSk7aWYodj5tJiZtPE1hdGguYWJzKGctZCkvNGUzPyhzPXYsbD0hMSk6KHM9TWF0aC5taW4odixtKSxsPSEwKSwiZGF0ZSI9PT1uLnR5cGUmJnM+byl7dmFyIHk9cz09PWE/MTo2LHg9cz09PWE/Ik0xMiI6Ik0xIjtyZXR1cm4gZnVuY3Rpb24oZSxyKXt2YXIgbz1uLmMyZChlLGEsaSkscz1vLmluZGV4T2YoIi0iLHkpO3M+MCYmKG89by5zdWJzdHIoMCxzKSk7dmFyIGM9bi5kMmMobywwLGkpO2lmKGM8ZSl7dmFyIGg9dShjLHgsITEsaSk7KGMraCkvMjxlK3QmJihjPWgpfXJldHVybiByJiZsP3UoYyx4LCEwLGkpOmN9fXJldHVybiBmdW5jdGlvbihlLHIpe3ZhciBuPXMqTWF0aC5yb3VuZChlL3MpO3JldHVybiBuK3MvMTA8ZSYmbisuOSpzPGUrdCYmKG4rPXMpLHImJmwmJihuLT1zKSxufX19LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NjkzLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NzY1fV0sMTAyMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGE9dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9yZWdpc3RyeSIpLG89dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxzPXQoIi4uL2Jhci9hcnJheXNfdG9fY2FsY2RhdGEiKSxsPXQoIi4vYmluX2Z1bmN0aW9ucyIpLGM9dCgiLi9ub3JtX2Z1bmN0aW9ucyIpLHU9dCgiLi9hdmVyYWdlIiksaD10KCIuL2Jpbl9sYWJlbF92YWxzIik7ZnVuY3Rpb24gZih0LGUscixzLGwpe3ZhciBjLHUsaCxwLGQsZyx2LG09cysiYmlucyIseT10Ll9mdWxsTGF5b3V0LHg9ZVsiXyIrcysiYmluZ3JvdXAiXSxiPXkuX2hpc3RvZ3JhbUJpbk9wdHNbeF0sXz0ib3ZlcmxheSI9PT15LmJhcm1vZGUsdz1mdW5jdGlvbih0KXtyZXR1cm4gci5yMmModCwwLHApfSxrPWZ1bmN0aW9uKHQpe3JldHVybiByLmMycih0LDAscCl9LFQ9ImRhdGUiPT09ci50eXBlP2Z1bmN0aW9uKHQpe3JldHVybiB0fHwwPT09dD9hLmNsZWFuRGF0ZSh0LG51bGwscCk6bnVsbH06ZnVuY3Rpb24odCl7cmV0dXJuIG4odCk/TnVtYmVyKHQpOm51bGx9O2Z1bmN0aW9uIE0odCxlLHIpe2VbdCsiRm91bmQiXT8oZVt0XT1UKGVbdF0pLG51bGw9PT1lW3RdJiYoZVt0XT1yW3RdKSk6KGdbdF09ZVt0XT1yW3RdLGEubmVzdGVkUHJvcGVydHkodVswXSxtKyIuIit0KS5zZXQoclt0XSkpfWlmKGVbIl8iK3MrImF1dG9CaW5GaW5pc2hlZCJdKWRlbGV0ZSBlWyJfIitzKyJhdXRvQmluRmluaXNoZWQiXTtlbHNle3U9Yi50cmFjZXM7dmFyIEE9W10sUz0hMCxFPSExLEw9ITE7Zm9yKGM9MDtjPHUubGVuZ3RoO2MrKylpZigoaD11W2NdKS52aXNpYmxlKXt2YXIgQz1iLmRpcnNbY107ZD1oWyJfIitDKyJwb3MwIl09ci5tYWtlQ2FsY2RhdGEoaCxDKSxBPWEuY29uY2F0KEEsZCksZGVsZXRlIGhbIl8iK3MrImF1dG9CaW5GaW5pc2hlZCJdLCEwPT09ZS52aXNpYmxlJiYoUz9TPSExOihkZWxldGUgaC5fYXV0b0JpbixoWyJfIitzKyJhdXRvQmluRmluaXNoZWQiXT0xKSxpLnRyYWNlSXMoaCwiMmRNYXAiKSYmKEU9ITApLCJoaXN0b2dyYW0yZGNvbnRvdXIiPT09aC50eXBlJiYoTD0hMCkpfXA9dVswXVtzKyJjYWxlbmRhciJdO3ZhciBQPW8uYXV0b0JpbihBLHIsYi5uYmlucyxFLHAsYi5zaXplRm91bmQmJmIuc2l6ZSksTz11WzBdLl9hdXRvQmluPXt9O2lmKGc9T1tiLmRpcnNbMF1dPXt9LEwmJihiLnNpemV8fChQLnN0YXJ0PWsoby50aWNrSW5jcmVtZW50KHcoUC5zdGFydCksUC5zaXplLCEwLHApKSksdm9pZCAwPT09Yi5lbmQmJihQLmVuZD1rKG8udGlja0luY3JlbWVudCh3KFAuZW5kKSxQLnNpemUsITEscCkpKSksXyYmIWkudHJhY2VJcyhlLCIyZE1hcCIpJiYwPT09UC5fZGF0YVNwYW4mJiJjYXRlZ29yeSIhPT1yLnR5cGUmJiJtdWx0aWNhdGVnb3J5IiE9PXIudHlwZSl7aWYobClyZXR1cm5bUCxkLCEwXTtQPWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIG8scyxsLGM9dC5fZnVsbExheW91dCx1PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPWUueGF4aXMsbj1lLnlheGlzLGE9ZS5vcmllbnRhdGlvbixpPVtdLG89dC5fZnVsbERhdGEscz0wO3M8by5sZW5ndGg7cysrKXt2YXIgbD1vW3NdOyJoaXN0b2dyYW0iPT09bC50eXBlJiYhMD09PWwudmlzaWJsZSYmbC5vcmllbnRhdGlvbj09PWEmJmwueGF4aXM9PT1yJiZsLnlheGlzPT09biYmaS5wdXNoKGwpfXJldHVybiBpfSh0LGUpLGg9ITEscD0xLzAsZD1bZV07Zm9yKG89MDtvPHUubGVuZ3RoO28rKylpZigocz11W29dKT09PWUpaD0hMDtlbHNlIGlmKGgpe3ZhciBnPWYodCxzLHIsbiwhMCksdj1nWzBdLG09Z1syXTtzWyJfIituKyJhdXRvQmluRmluaXNoZWQiXT0xLHNbIl8iK24rInBvczAiXT1nWzFdLG0/ZC5wdXNoKHMpOnA9TWF0aC5taW4ocCx2LnNpemUpfWVsc2UgbD1jLl9oaXN0b2dyYW1CaW5PcHRzW3NbIl8iK24rImJpbmdyb3VwIl1dLHA9TWF0aC5taW4ocCxsLnNpemV8fHNbaV0uc2l6ZSk7dmFyIHk9bmV3IEFycmF5KGQubGVuZ3RoKTtmb3Iobz0wO288ZC5sZW5ndGg7bysrKWZvcih2YXIgeD1kW29dWyJfIituKyJwb3MwIl0sYj0wO2I8eC5sZW5ndGg7YisrKWlmKHZvaWQgMCE9PXhbYl0pe3lbb109eFtiXTticmVha31pc0Zpbml0ZShwKXx8KHA9YS5kaXN0aW5jdFZhbHMoeSkubWluRGlmZik7Zm9yKG89MDtvPGQubGVuZ3RoO28rKyl7dmFyIF89KHM9ZFtvXSlbbisiY2FsZW5kYXIiXSx3PXtzdGFydDpyLmMycih5W29dLXAvMiwwLF8pLGVuZDpyLmMycih5W29dK3AvMiwwLF8pLHNpemU6cH07cy5faW5wdXRbaV09c1tpXT13LChsPWMuX2hpc3RvZ3JhbUJpbk9wdHNbc1siXyIrbisiYmluZ3JvdXAiXV0pJiZhLmV4dGVuZEZsYXQobCx3KX1yZXR1cm4gZVtpXX0odCxlLHIscyxtKX0odj1oLmN1bXVsYXRpdmV8fHt9KS5lbmFibGVkJiYiaW5jbHVkZSIhPT12LmN1cnJlbnRiaW4mJigiZGVjcmVhc2luZyI9PT12LmRpcmVjdGlvbj9QLnN0YXJ0PWsoby50aWNrSW5jcmVtZW50KHcoUC5zdGFydCksUC5zaXplLCEwLHApKTpQLmVuZD1rKG8udGlja0luY3JlbWVudCh3KFAuZW5kKSxQLnNpemUsITEscCkpKSxiLnNpemU9UC5zaXplLGIuc2l6ZUZvdW5kfHwoZy5zaXplPVAuc2l6ZSxhLm5lc3RlZFByb3BlcnR5KHVbMF0sbSsiLnNpemUiKS5zZXQoUC5zaXplKSksTSgic3RhcnQiLGIsUCksTSgiZW5kIixiLFApfWQ9ZVsiXyIrcysicG9zMCJdLGRlbGV0ZSBlWyJfIitzKyJwb3MwIl07dmFyIHo9ZS5faW5wdXRbbV18fHt9LEk9YS5leHRlbmRGbGF0KHt9LGIpLEQ9Yi5zdGFydCxSPXIucjJsKHouc3RhcnQpLEY9dm9pZCAwIT09UjtpZigoYi5zdGFydEZvdW5kfHxGKSYmUiE9PXIucjJsKEQpKXt2YXIgQj1GP1I6YS5hZ2dOdW1zKE1hdGgubWluLG51bGwsZCksTj17dHlwZToiY2F0ZWdvcnkiPT09ci50eXBlfHwibXVsdGljYXRlZ29yeSI9PT1yLnR5cGU/ImxpbmVhciI6ci50eXBlLHIybDpyLnIybCxkdGljazpiLnNpemUsdGljazA6RCxjYWxlbmRhcjpwLHJhbmdlOltCLG8udGlja0luY3JlbWVudChCLGIuc2l6ZSwhMSxwKV0ubWFwKHIubDJyKX0saj1vLnRpY2tGaXJzdChOKTtqPnIucjJsKEIpJiYoaj1vLnRpY2tJbmNyZW1lbnQoaixiLnNpemUsITAscCkpLEkuc3RhcnQ9ci5sMnIoaiksRnx8YS5uZXN0ZWRQcm9wZXJ0eShlLG0rIi5zdGFydCIpLnNldChJLnN0YXJ0KX12YXIgVj1iLmVuZCxVPXIucjJsKHouZW5kKSxxPXZvaWQgMCE9PVU7aWYoKGIuZW5kRm91bmR8fHEpJiZVIT09ci5yMmwoVikpe3ZhciBIPXE/VTphLmFnZ051bXMoTWF0aC5tYXgsbnVsbCxkKTtJLmVuZD1yLmwycihIKSxxfHxhLm5lc3RlZFByb3BlcnR5KGUsbSsiLnN0YXJ0Iikuc2V0KEkuZW5kKX12YXIgRz0iYXV0b2JpbiIrcztyZXR1cm4hMT09PWUuX2lucHV0W0ddJiYoZS5faW5wdXRbbV09YS5leHRlbmRGbGF0KHt9LGVbbV18fHt9KSxkZWxldGUgZS5faW5wdXRbR10sZGVsZXRlIGVbR10pLFtJLGRdfWUuZXhwb3J0cz17Y2FsYzpmdW5jdGlvbih0LGUpe3ZhciByLGkscCxkLGc9W10sdj1bXSxtPW8uZ2V0RnJvbUlkKHQsImgiPT09ZS5vcmllbnRhdGlvbj9lLnlheGlzOmUueGF4aXMpLHk9ImgiPT09ZS5vcmllbnRhdGlvbj8ieSI6IngiLHg9e3g6InkiLHk6IngifVt5XSxiPWVbeSsiY2FsZW5kYXIiXSxfPWUuY3VtdWxhdGl2ZSx3PWYodCxlLG0seSksaz13WzBdLFQ9d1sxXSxNPSJzdHJpbmciPT10eXBlb2Ygay5zaXplLEE9W10sUz1NP0E6ayxFPVtdLEw9W10sQz1bXSxQPTAsTz1lLmhpc3Rub3JtLHo9ZS5oaXN0ZnVuYyxJPS0xIT09Ty5pbmRleE9mKCJkZW5zaXR5Iik7Xy5lbmFibGVkJiZJJiYoTz1PLnJlcGxhY2UoLyA/ZGVuc2l0eSQvLCIiKSxJPSExKTt2YXIgRCxSPSJtYXgiPT09enx8Im1pbiI9PT16P251bGw6MCxGPWwuY291bnQsQj1jW09dLE49ITEsaj1mdW5jdGlvbih0KXtyZXR1cm4gbS5yMmModCwwLGIpfTtmb3IoYS5pc0FycmF5T3JUeXBlZEFycmF5KGVbeF0pJiYiY291bnQiIT09eiYmKEQ9ZVt4XSxOPSJhdmciPT09eixGPWxbel0pLHI9aihrLnN0YXJ0KSxwPWooay5lbmQpKyhyLW8udGlja0luY3JlbWVudChyLGsuc2l6ZSwhMSxiKSkvMWU2O3I8cCYmZy5sZW5ndGg8MWU2JiYoaT1vLnRpY2tJbmNyZW1lbnQocixrLnNpemUsITEsYiksZy5wdXNoKChyK2kpLzIpLHYucHVzaChSKSxDLnB1c2goW10pLEEucHVzaChyKSxJJiZFLnB1c2goMS8oaS1yKSksTiYmTC5wdXNoKDApLCEoaTw9cikpOylyPWk7QS5wdXNoKHIpLE18fCJkYXRlIiE9PW0udHlwZXx8KFM9e3N0YXJ0OmooUy5zdGFydCksZW5kOmooUy5lbmQpLHNpemU6Uy5zaXplfSk7dmFyIFYsVT12Lmxlbmd0aCxxPSEwLEg9MS8wLEc9MS8wLFk9e307Zm9yKHI9MDtyPFQubGVuZ3RoO3IrKyl7dmFyIFc9VFtyXTsoZD1hLmZpbmRCaW4oVyxTKSk+PTAmJmQ8VSYmKFArPUYoZCxyLHYsRCxMKSxxJiZDW2RdLmxlbmd0aCYmVyE9PVRbQ1tkXVswXV0mJihxPSExKSxDW2RdLnB1c2gociksWVtyXT1kLEg9TWF0aC5taW4oSCxXLUFbZF0pLEc9TWF0aC5taW4oRyxBW2QrMV0tVykpfXF8fChWPWgoSCxHLEEsbSxiKSksTiYmKFA9dSh2LEwpKSxCJiZCKHYsUCxFKSxfLmVuYWJsZWQmJmZ1bmN0aW9uKHQsZSxyKXt2YXIgbixhLGk7ZnVuY3Rpb24gbyhlKXtpPXRbZV0sdFtlXS89Mn1mdW5jdGlvbiBzKGUpe2E9dFtlXSx0W2VdPWkrYS8yLGkrPWF9aWYoImhhbGYiPT09cilpZigiaW5jcmVhc2luZyI9PT1lKWZvcihvKDApLG49MTtuPHQubGVuZ3RoO24rKylzKG4pO2Vsc2UgZm9yKG8odC5sZW5ndGgtMSksbj10Lmxlbmd0aC0yO24+PTA7bi0tKXMobik7ZWxzZSBpZigiaW5jcmVhc2luZyI9PT1lKXtmb3Iobj0xO248dC5sZW5ndGg7bisrKXRbbl0rPXRbbi0xXTsiZXhjbHVkZSI9PT1yJiYodC51bnNoaWZ0KDApLHQucG9wKCkpfWVsc2V7Zm9yKG49dC5sZW5ndGgtMjtuPj0wO24tLSl0W25dKz10W24rMV07ImV4Y2x1ZGUiPT09ciYmKHQucHVzaCgwKSx0LnNoaWZ0KCkpfX0odixfLmRpcmVjdGlvbixfLmN1cnJlbnRiaW4pO3ZhciBYPU1hdGgubWluKGcubGVuZ3RoLHYubGVuZ3RoKSxaPVtdLEo9MCxLPVgtMTtmb3Iocj0wO3I8WDtyKyspaWYodltyXSl7Sj1yO2JyZWFrfWZvcihyPVgtMTtyPj1KO3ItLSlpZih2W3JdKXtLPXI7YnJlYWt9Zm9yKHI9SjtyPD1LO3IrKylpZihuKGdbcl0pJiZuKHZbcl0pKXt2YXIgUT17cDpnW3JdLHM6dltyXSxiOjB9O18uZW5hYmxlZHx8KFEucHRzPUNbcl0scT9RLnBoMD1RLnBoMT1DW3JdLmxlbmd0aD9UW0Nbcl1bMF1dOmdbcl06KFEucGgwPVYoQVtyXSksUS5waDE9VihBW3IrMV0sITApKSksWi5wdXNoKFEpfXJldHVybiAxPT09Wi5sZW5ndGgmJihaWzBdLndpZHRoMT1vLnRpY2tJbmNyZW1lbnQoWlswXS5wLGsuc2l6ZSwhMSxiKS1aWzBdLnApLHMoWixlKSxhLmlzQXJyYXlPclR5cGVkQXJyYXkoZS5zZWxlY3RlZHBvaW50cykmJmEudGFnU2VsZWN0ZWQoWixlLFkpLFp9LGNhbGNBbGxBdXRvQmluczpmfX0seyIuLi8uLi9saWIiOjcxNywiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjc2NSwiLi4vLi4vcmVnaXN0cnkiOjg0NiwiLi4vYmFyL2FycmF5c190b19jYWxjZGF0YSI6ODU1LCIuL2F2ZXJhZ2UiOjEwMTksIi4vYmluX2Z1bmN0aW9ucyI6MTAyMSwiLi9iaW5fbGFiZWxfdmFscyI6MTAyMiwiLi9ub3JtX2Z1bmN0aW9ucyI6MTAzMCwiZmFzdC1pc251bWVyaWMiOjIyOH1dLDEwMjQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtldmVudERhdGFLZXlzOlsiYmluTnVtYmVyIl19fSx7fV0sMTAyNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2lkcyIpLGk9dCgiLi4vLi4vcmVnaXN0cnkiKS50cmFjZUlzLG89dCgiLi4vYmFyL2RlZmF1bHRzIikuaGFuZGxlR3JvdXBpbmdEZWZhdWx0cyxzPW4ubmVzdGVkUHJvcGVydHksbD1hLmdldEF4aXNHcm91cCxjPVt7YVN0cjp7eDoieGJpbnMuc3RhcnQiLHk6InliaW5zLnN0YXJ0In0sbmFtZToic3RhcnQifSx7YVN0cjp7eDoieGJpbnMuZW5kIix5OiJ5Ymlucy5lbmQifSxuYW1lOiJlbmQifSx7YVN0cjp7eDoieGJpbnMuc2l6ZSIseToieWJpbnMuc2l6ZSJ9LG5hbWU6InNpemUifSx7YVN0cjp7eDoibmJpbnN4Iix5OiJuYmluc3kifSxuYW1lOiJuYmlucyJ9XSx1PVsieCIsInkiXTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixoLGYscCxkLGcsdixtPWUuX2hpc3RvZ3JhbUJpbk9wdHM9e30seT1bXSx4PXt9LGI9W107ZnVuY3Rpb24gXyh0LGUpe3JldHVybiBuLmNvZXJjZShyLl9pbnB1dCxyLHIuX21vZHVsZS5hdHRyaWJ1dGVzLHQsZSl9ZnVuY3Rpb24gdyh0KXtyZXR1cm4idiI9PT10Lm9yaWVudGF0aW9uPyJ4IjoieSJ9ZnVuY3Rpb24gayh0LHIsaSl7dmFyIG89dC51aWQrIl9fIitpO3J8fChyPW8pO3ZhciBzPWZ1bmN0aW9uKHQscil7cmV0dXJuIGEuZ2V0RnJvbVRyYWNlKHtfZnVsbExheW91dDplfSx0LHIpLnR5cGV9KHQsaSksbD10W2krImNhbGVuZGFyIl18fCIiLGM9bVtyXSx1PSEwO2MmJihzPT09Yy5heFR5cGUmJmw9PT1jLmNhbGVuZGFyPyh1PSExLGMudHJhY2VzLnB1c2godCksYy5kaXJzLnB1c2goaSkpOihyPW8scyE9PWMuYXhUeXBlJiZuLndhcm4oWyJBdHRlbXB0ZWQgdG8gZ3JvdXAgdGhlIGJpbnMgb2YgdHJhY2UiLHQuaW5kZXgsInNldCBvbiBhIiwidHlwZToiK3MsImF4aXMiLCJ3aXRoIGJpbnMgb24iLCJ0eXBlOiIrYy5heFR5cGUsImF4aXMuIl0uam9pbigiICIpKSxsIT09Yy5jYWxlbmRhciYmbi53YXJuKFsiQXR0ZW1wdGVkIHRvIGdyb3VwIHRoZSBiaW5zIG9mIHRyYWNlIix0LmluZGV4LCJzZXQgd2l0aCBhIixsLCJjYWxlbmRhciIsIndpdGggYmlucyIsYy5jYWxlbmRhcj8ib24gYSAiK2MuY2FsZW5kYXIrIiBjYWxlbmRhciI6IncvbyBhIHNldCBjYWxlbmRhciJdLmpvaW4oIiAiKSkpKSx1JiYobVtyXT17dHJhY2VzOlt0XSxkaXJzOltpXSxheFR5cGU6cyxjYWxlbmRhcjp0W2krImNhbGVuZGFyIl18fCIifSksdFsiXyIraSsiYmluZ3JvdXAiXT1yfWZvcihkPTA7ZDx0Lmxlbmd0aDtkKyspcj10W2RdLGkociwiaGlzdG9ncmFtIikmJih5LnB1c2gociksZGVsZXRlIHIuX3hhdXRvQmluRmluaXNoZWQsZGVsZXRlIHIuX3lhdXRvQmluRmluaXNoZWQsaShyLCIyZE1hcCIpfHxvKHIuX2lucHV0LHIsZSxfKSk7dmFyIFQ9ZS5fYWxpZ25tZW50T3B0c3x8e307Zm9yKGQ9MDtkPHkubGVuZ3RoO2QrKyl7aWYocj15W2RdLGY9IiIsIWkociwiMmRNYXAiKSl7aWYocD13KHIpLCJncm91cCI9PT1lLmJhcm1vZGUmJnIuYWxpZ25tZW50Z3JvdXApe3ZhciBNPXJbcCsiYXhpcyJdLEE9bChlLE0pK3Iub3JpZW50YXRpb247KFRbQV18fHt9KVtyLmFsaWdubWVudGdyb3VwXSYmKGY9QSl9Znx8Im92ZXJsYXkiPT09ZS5iYXJtb2RlfHwoZj1sKGUsci54YXhpcykrbChlLHIueWF4aXMpK3cocikpfWY/KHhbZl18fCh4W2ZdPVtdKSx4W2ZdLnB1c2gocikpOmIucHVzaChyKX1mb3IoZiBpbiB4KWlmKDEhPT0oaD14W2ZdKS5sZW5ndGgpe3ZhciBTPSExO2ZvcihkPTA7ZDxoLmxlbmd0aDtkKyspe3I9aFtkXSxTPV8oImJpbmdyb3VwIik7YnJlYWt9Zm9yKGY9U3x8ZixkPTA7ZDxoLmxlbmd0aDtkKyspe3ZhciBFPShyPWhbZF0pLl9pbnB1dC5iaW5ncm91cDtFJiZFIT09ZiYmbi53YXJuKFsiVHJhY2UiLHIuaW5kZXgsIm11c3QgbWF0Y2giLCJ3aXRoaW4gYmluZ3JvdXAiLGYrIi4iLCJJZ25vcmluZyBpdHMgYmluZ3JvdXA6IixFLCJzZXR0aW5nLiJdLmpvaW4oIiAiKSksci5iaW5ncm91cD1mLGsocixmLHcocikpfX1lbHNlIGIucHVzaChoWzBdKTtmb3IoZD0wO2Q8Yi5sZW5ndGg7ZCsrKXtyPWJbZF07dmFyIEw9XygiYmluZ3JvdXAiKTtpZihpKHIsIjJkTWFwIikpZm9yKHY9MDt2PDI7disrKXt2YXIgQz1fKChwPXVbdl0pKyJiaW5ncm91cCIsTD9MKyJfXyIrcDpudWxsKTtrKHIsQyxwKX1lbHNlIGsocixMLHcocikpfWZvcihmIGluIG0pe3ZhciBQPW1bZl07Zm9yKGg9UC50cmFjZXMsZz0wO2c8Yy5sZW5ndGg7ZysrKXt2YXIgTyx6LEk9Y1tnXSxEPUkubmFtZTtpZigibmJpbnMiIT09RHx8IVAuc2l6ZUZvdW5kKXtmb3IoZD0wO2Q8aC5sZW5ndGg7ZCsrKXtpZihyPWhbZF0scD1QLmRpcnNbZF0sTz1JLmFTdHJbcF0sdm9pZCAwIT09cyhyLl9pbnB1dCxPKS5nZXQoKSl7UFtEXT1fKE8pLFBbRCsiRm91bmQiXT0hMDticmVha30oej0oci5fYXV0b0Jpbnx8e30pW3BdfHx7fSlbRF0mJnMocixPKS5zZXQoeltEXSl9aWYoInN0YXJ0Ij09PUR8fCJlbmQiPT09RClmb3IoO2Q8aC5sZW5ndGg7ZCsrKShyPWhbZF0pWyJfIitwKyJiaW5ncm91cCJdJiZfKE8sKHo9KHIuX2F1dG9CaW58fHt9KVtwXXx8e30pW0RdKTsibmJpbnMiIT09RHx8UC5zaXplRm91bmR8fFAubmJpbnNGb3VuZHx8KHI9aFswXSxQW0RdPV8oTykpfX19fX0seyIuLi8uLi9saWIiOjcxNywiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIjo3NjgsIi4uLy4uL3JlZ2lzdHJ5Ijo4NDYsIi4uL2Jhci9kZWZhdWx0cyI6ODYwfV0sMTAyNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9yZWdpc3RyeSIpLGE9dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksbz10KCIuLi9iYXIvc3R5bGVfZGVmYXVsdHMiKSxzPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixsKXtmdW5jdGlvbiBjKHIsbil7cmV0dXJuIGEuY29lcmNlKHQsZSxzLHIsbil9dmFyIHU9YygieCIpLGg9YygieSIpO2MoImN1bXVsYXRpdmUuZW5hYmxlZCIpJiYoYygiY3VtdWxhdGl2ZS5kaXJlY3Rpb24iKSxjKCJjdW11bGF0aXZlLmN1cnJlbnRiaW4iKSksYygidGV4dCIpLGMoImhvdmVydGV4dCIpLGMoImhvdmVydGVtcGxhdGUiKTt2YXIgZj1jKCJvcmllbnRhdGlvbiIsaCYmIXU/ImgiOiJ2IikscD0idiI9PT1mPyJ4IjoieSIsZD0idiI9PT1mPyJ5IjoieCIsZz11JiZoP01hdGgubWluKGEubWluUm93TGVuZ3RoKHUpJiZhLm1pblJvd0xlbmd0aChoKSk6YS5taW5Sb3dMZW5ndGgoZVtwXXx8W10pO2lmKGcpe2UuX2xlbmd0aD1nLG4uZ2V0Q29tcG9uZW50TWV0aG9kKCJjYWxlbmRhcnMiLCJoYW5kbGVUcmFjZURlZmF1bHRzIikodCxlLFsieCIsInkiXSxsKSxlW2RdJiZjKCJoaXN0ZnVuYyIpLGMoImhpc3Rub3JtIiksYygiYXV0b2JpbiIrcCksbyh0LGUsYyxyLGwpLGEuY29lcmNlU2VsZWN0aW9uTWFya2VyT3BhY2l0eShlLGMpO3ZhciB2PShlLm1hcmtlci5saW5lfHx7fSkuY29sb3IsbT1uLmdldENvbXBvbmVudE1ldGhvZCgiZXJyb3JiYXJzIiwic3VwcGx5RGVmYXVsdHMiKTttKHQsZSx2fHxpLmRlZmF1bHRMaW5lLHtheGlzOiJ5In0pLG0odCxlLHZ8fGkuZGVmYXVsdExpbmUse2F4aXM6IngiLGluaGVyaXQ6InkifSl9ZWxzZSBlLnZpc2libGU9ITF9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjU5MiwiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3JlZ2lzdHJ5Ijo4NDYsIi4uL2Jhci9zdHlsZV9kZWZhdWx0cyI6ODcxLCIuL2F0dHJpYnV0ZXMiOjEwMTh9XSwxMDI3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuLGEpe2lmKHQueD0ieFZhbCJpbiBlP2UueFZhbDplLngsdC55PSJ5VmFsImluIGU/ZS55VmFsOmUueSwiekxhYmVsVmFsImluIGUmJih0Lno9ZS56TGFiZWxWYWwpLGUueGEmJih0LnhheGlzPWUueGEpLGUueWEmJih0LnlheGlzPWUueWEpLCEoci5jdW11bGF0aXZlfHx7fSkuZW5hYmxlZCl7dmFyIGksbz1BcnJheS5pc0FycmF5KGEpP25bMF0ucHRzW2FbMF1dW2FbMV1dOm5bYV0ucHRzO2lmKHQucG9pbnROdW1iZXJzPW8sdC5iaW5OdW1iZXI9dC5wb2ludE51bWJlcixkZWxldGUgdC5wb2ludE51bWJlcixkZWxldGUgdC5wb2ludEluZGV4LHIuX2luZGV4VG9Qb2ludHMpe2k9W107Zm9yKHZhciBzPTA7czxvLmxlbmd0aDtzKyspaT1pLmNvbmNhdChyLl9pbmRleFRvUG9pbnRzW29bc11dKX1lbHNlIGk9bzt0LnBvaW50SW5kaWNlcz1pfXJldHVybiB0fX0se31dLDEwMjg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vYmFyL2hvdmVyIikuaG92ZXJQb2ludHMsYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLmhvdmVyTGFiZWxUZXh0O2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixpKXt2YXIgbz1uKHQsZSxyLGkpO2lmKG8pe3ZhciBzPSh0PW9bMF0pLmNkW3QuaW5kZXhdLGw9dC5jZFswXS50cmFjZTtpZighbC5jdW11bGF0aXZlLmVuYWJsZWQpe3ZhciBjPSJoIj09PWwub3JpZW50YXRpb24/InkiOiJ4Ijt0W2MrIkxhYmVsIl09YSh0W2MrImEiXSxzLnBoMCxzLnBoMSl9cmV0dXJuIGwuaG92ZXJtcGxhdGUmJih0LmhvdmVydGVtcGxhdGU9bC5ob3ZlcnRlbXBsYXRlKSxvfX19LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjc2NSwiLi4vYmFyL2hvdmVyIjo4NjN9XSwxMDI5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxsYXlvdXRBdHRyaWJ1dGVzOnQoIi4uL2Jhci9sYXlvdXRfYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjcm9zc1RyYWNlRGVmYXVsdHM6dCgiLi9jcm9zc190cmFjZV9kZWZhdWx0cyIpLHN1cHBseUxheW91dERlZmF1bHRzOnQoIi4uL2Jhci9sYXlvdXRfZGVmYXVsdHMiKSxjYWxjOnQoIi4vY2FsYyIpLmNhbGMsY3Jvc3NUcmFjZUNhbGM6dCgiLi4vYmFyL2Nyb3NzX3RyYWNlX2NhbGMiKS5jcm9zc1RyYWNlQ2FsYyxwbG90OnQoIi4uL2Jhci9wbG90IikucGxvdCxsYXllck5hbWU6ImJhcmxheWVyIixzdHlsZTp0KCIuLi9iYXIvc3R5bGUiKS5zdHlsZSxzdHlsZU9uU2VsZWN0OnQoIi4uL2Jhci9zdHlsZSIpLnN0eWxlT25TZWxlY3QsY29sb3JiYXI6dCgiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiKSxob3ZlclBvaW50czp0KCIuL2hvdmVyIiksc2VsZWN0UG9pbnRzOnQoIi4uL2Jhci9zZWxlY3QiKSxldmVudERhdGE6dCgiLi9ldmVudF9kYXRhIiksbW9kdWxlVHlwZToidHJhY2UiLG5hbWU6Imhpc3RvZ3JhbSIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuIiksY2F0ZWdvcmllczpbImJhci1saWtlIiwiY2FydGVzaWFuIiwic3ZnIiwiYmFyIiwiaGlzdG9ncmFtIiwib3JpZW50ZWQiLCJlcnJvckJhcnNPSyIsInNob3dMZWdlbmQiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjc3NiwiLi4vYmFyL2Nyb3NzX3RyYWNlX2NhbGMiOjg1OSwiLi4vYmFyL2xheW91dF9hdHRyaWJ1dGVzIjo4NjUsIi4uL2Jhci9sYXlvdXRfZGVmYXVsdHMiOjg2NiwiLi4vYmFyL3Bsb3QiOjg2NywiLi4vYmFyL3NlbGVjdCI6ODY4LCIuLi9iYXIvc3R5bGUiOjg3MCwiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiOjExMzgsIi4vYXR0cmlidXRlcyI6MTAxOCwiLi9jYWxjIjoxMDIzLCIuL2Nyb3NzX3RyYWNlX2RlZmF1bHRzIjoxMDI1LCIuL2RlZmF1bHRzIjoxMDI2LCIuL2V2ZW50X2RhdGEiOjEwMjcsIi4vaG92ZXIiOjEwMjh9XSwxMDMwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17cGVyY2VudDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10Lmxlbmd0aCxuPTEwMC9lLGE9MDthPHI7YSsrKXRbYV0qPW59LHByb2JhYmlsaXR5OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQubGVuZ3RoLG49MDtuPHI7bisrKXRbbl0vPWV9LGRlbnNpdHk6ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9dC5sZW5ndGg7bj1ufHwxO2Zvcih2YXIgaT0wO2k8YTtpKyspdFtpXSo9cltpXSpufSwicHJvYmFiaWxpdHkgZGVuc2l0eSI6ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9dC5sZW5ndGg7biYmKGUvPW4pO2Zvcih2YXIgaT0wO2k8YTtpKyspdFtpXSo9cltpXS9lfX19LHt9XSwxMDMxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2hpc3RvZ3JhbS9hdHRyaWJ1dGVzIiksYT10KCIuLi9oaXN0b2dyYW0vYmluX2F0dHJpYnV0ZXMiKSxpPXQoIi4uL2hlYXRtYXAvYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLHM9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxsPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIiksYz10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdDtlLmV4cG9ydHM9Yyh7eDpuLngseTpuLnksejp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxtYXJrZXI6e2NvbG9yOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYWxjIn0saGlzdG5vcm06bi5oaXN0bm9ybSxoaXN0ZnVuYzpuLmhpc3RmdW5jLG5iaW5zeDpuLm5iaW5zeCx4YmluczphKCJ4IiksbmJpbnN5Om4ubmJpbnN5LHliaW5zOmEoInkiKSxhdXRvYmlueDpuLmF1dG9iaW54LGF1dG9iaW55Om4uYXV0b2JpbnksYmluZ3JvdXA6Yyh7fSxuLmJpbmdyb3VwLHt9KSx4YmluZ3JvdXA6Yyh7fSxuLmJpbmdyb3VwLHt9KSx5YmluZ3JvdXA6Yyh7fSxuLmJpbmdyb3VwLHt9KSx4Z2FwOmkueGdhcCx5Z2FwOmkueWdhcCx6c21vb3RoOmkuenNtb290aCx6aG92ZXJmb3JtYXQ6aS56aG92ZXJmb3JtYXQsaG92ZXJ0ZW1wbGF0ZTpzKHt9LHtrZXlzOiJ6In0pLHNob3dsZWdlbmQ6Yyh7fSxvLnNob3dsZWdlbmQse2RmbHQ6ITF9KX0sbCgiIix7Y0xldHRlcjoieiIsYXV0b0NvbG9yRGZsdDohMX0pKX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6NTk5LCIuLi8uLi9saWIvZXh0ZW5kIjo3MDgsIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiOjc2MiwiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyI6ODQxLCIuLi9oZWF0bWFwL2F0dHJpYnV0ZXMiOjFlMywiLi4vaGlzdG9ncmFtL2F0dHJpYnV0ZXMiOjEwMTgsIi4uL2hpc3RvZ3JhbS9iaW5fYXR0cmlidXRlcyI6MTAyMH1dLDEwMzI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGk9dCgiLi4vaGlzdG9ncmFtL2Jpbl9mdW5jdGlvbnMiKSxvPXQoIi4uL2hpc3RvZ3JhbS9ub3JtX2Z1bmN0aW9ucyIpLHM9dCgiLi4vaGlzdG9ncmFtL2F2ZXJhZ2UiKSxsPXQoIi4uL2hpc3RvZ3JhbS9iaW5fbGFiZWxfdmFscyIpLGM9dCgiLi4vaGlzdG9ncmFtL2NhbGMiKS5jYWxjQWxsQXV0b0JpbnM7ZnVuY3Rpb24gdSh0LGUscixuKXt2YXIgYSxpPW5ldyBBcnJheSh0KTtpZihuKWZvcihhPTA7YTx0O2ErKylpW2FdPTEvKGVbYSsxXS1lW2FdKTtlbHNle3ZhciBvPTEvcjtmb3IoYT0wO2E8dDthKyspaVthXT1vfXJldHVybiBpfWZ1bmN0aW9uIGgodCxlKXtyZXR1cm57c3RhcnQ6dChlLnN0YXJ0KSxlbmQ6dChlLmVuZCksc2l6ZTplLnNpemV9fWZ1bmN0aW9uIGYodCxlLHIsbixhLGkpe3ZhciBvLHM9dC5sZW5ndGgtMSxjPW5ldyBBcnJheShzKSx1PWwocixuLHQsYSxpKTtmb3Iobz0wO288cztvKyspe3ZhciBoPShlfHxbXSlbb107Y1tvXT12b2lkIDA9PT1oP1t1KHRbb10pLHUodFtvKzFdLCEwKV06W2gsaF19cmV0dXJuIGN9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbCxwLGQsZz1hLmdldEZyb21JZCh0LGUueGF4aXMpLHY9YS5nZXRGcm9tSWQodCxlLnlheGlzKSxtPWUueGNhbGVuZGFyLHk9ZS55Y2FsZW5kYXIseD1mdW5jdGlvbih0KXtyZXR1cm4gZy5yMmModCwwLG0pfSxiPWZ1bmN0aW9uKHQpe3JldHVybiB2LnIyYyh0LDAseSl9LF89Yyh0LGUsZywieCIpLHc9X1swXSxrPV9bMV0sVD1jKHQsZSx2LCJ5IiksTT1UWzBdLEE9VFsxXSxTPWUuX2xlbmd0aDtrLmxlbmd0aD5TJiZrLnNwbGljZShTLGsubGVuZ3RoLVMpLEEubGVuZ3RoPlMmJkEuc3BsaWNlKFMsQS5sZW5ndGgtUyk7dmFyIEU9W10sTD1bXSxDPVtdLFA9InN0cmluZyI9PXR5cGVvZiB3LnNpemUsTz0ic3RyaW5nIj09dHlwZW9mIE0uc2l6ZSx6PVtdLEk9W10sRD1QP3o6dyxSPU8/STpNLEY9MCxCPVtdLE49W10saj1lLmhpc3Rub3JtLFY9ZS5oaXN0ZnVuYyxVPS0xIT09ai5pbmRleE9mKCJkZW5zaXR5IikscT0ibWF4Ij09PVZ8fCJtaW4iPT09Vj9udWxsOjAsSD1pLmNvdW50LEc9b1tqXSxZPSExLFc9W10sWD1bXSxaPSJ6ImluIGU/ZS56OiJtYXJrZXIiaW4gZSYmQXJyYXkuaXNBcnJheShlLm1hcmtlci5jb2xvcik/ZS5tYXJrZXIuY29sb3I6IiI7WiYmImNvdW50IiE9PVYmJihZPSJhdmciPT09VixIPWlbVl0pO3ZhciBKPXcuc2l6ZSxLPXgody5zdGFydCksUT14KHcuZW5kKSsoSy1hLnRpY2tJbmNyZW1lbnQoSyxKLCExLG0pKS8xZTY7Zm9yKHI9SztyPFE7cj1hLnRpY2tJbmNyZW1lbnQocixKLCExLG0pKUwucHVzaChxKSx6LnB1c2gociksWSYmQy5wdXNoKDApO3oucHVzaChyKTt2YXIgJCx0dD1MLmxlbmd0aCxldD0oci1LKS90dCxydD0oJD1LK2V0LzIsZy5jMnIoJCwwLG0pKSxudD1NLnNpemUsYXQ9YihNLnN0YXJ0KSxpdD1iKE0uZW5kKSsoYXQtYS50aWNrSW5jcmVtZW50KGF0LG50LCExLHkpKS8xZTY7Zm9yKHI9YXQ7cjxpdDtyPWEudGlja0luY3JlbWVudChyLG50LCExLHkpKXtFLnB1c2goTC5zbGljZSgpKSxJLnB1c2gocik7dmFyIG90PW5ldyBBcnJheSh0dCk7Zm9yKGw9MDtsPHR0O2wrKylvdFtsXT1bXTtOLnB1c2gob3QpLFkmJkIucHVzaChDLnNsaWNlKCkpfUkucHVzaChyKTt2YXIgc3Q9RS5sZW5ndGgsbHQ9KHItYXQpL3N0LGN0PWZ1bmN0aW9uKHQpe3JldHVybiB2LmMycih0LDAseSl9KGF0K2x0LzIpO1UmJihXPXUoTC5sZW5ndGgsRCxldCxQKSxYPXUoRS5sZW5ndGgsUixsdCxPKSksUHx8ImRhdGUiIT09Zy50eXBlfHwoRD1oKHgsRCkpLE98fCJkYXRlIiE9PXYudHlwZXx8KFI9aChiLFIpKTt2YXIgdXQ9ITAsaHQ9ITAsZnQ9bmV3IEFycmF5KHR0KSxwdD1uZXcgQXJyYXkoc3QpLGR0PTEvMCxndD0xLzAsdnQ9MS8wLG10PTEvMDtmb3Iocj0wO3I8UztyKyspe3ZhciB5dD1rW3JdLHh0PUFbcl07cD1uLmZpbmRCaW4oeXQsRCksZD1uLmZpbmRCaW4oeHQsUikscD49MCYmcDx0dCYmZD49MCYmZDxzdCYmKEYrPUgocCxyLEVbZF0sWixCW2RdKSxOW2RdW3BdLnB1c2gociksdXQmJih2b2lkIDA9PT1mdFtwXT9mdFtwXT15dDpmdFtwXSE9PXl0JiYodXQ9ITEpKSxodCYmKHZvaWQgMD09PXB0W2RdP3B0W2RdPXh0OnB0W2RdIT09eHQmJihodD0hMSkpLGR0PU1hdGgubWluKGR0LHl0LXpbcF0pLGd0PU1hdGgubWluKGd0LHpbcCsxXS15dCksdnQ9TWF0aC5taW4odnQseHQtSVtkXSksbXQ9TWF0aC5taW4obXQsSVtkKzFdLXh0KSl9aWYoWSlmb3IoZD0wO2Q8c3Q7ZCsrKUYrPXMoRVtkXSxCW2RdKTtpZihHKWZvcihkPTA7ZDxzdDtkKyspRyhFW2RdLEYsVyxYW2RdKTtyZXR1cm57eDprLHhSYW5nZXM6Zih6LHV0JiZmdCxkdCxndCxnLG0pLHgwOnJ0LGR4OmV0LHk6QSx5UmFuZ2VzOmYoSSxodCYmcHQsdnQsbXQsdix5KSx5MDpjdCxkeTpsdCx6OkUscHRzOk59fX0seyIuLi8uLi9saWIiOjcxNywiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjc2NSwiLi4vaGlzdG9ncmFtL2F2ZXJhZ2UiOjEwMTksIi4uL2hpc3RvZ3JhbS9iaW5fZnVuY3Rpb25zIjoxMDIxLCIuLi9oaXN0b2dyYW0vYmluX2xhYmVsX3ZhbHMiOjEwMjIsIi4uL2hpc3RvZ3JhbS9jYWxjIjoxMDIzLCIuLi9oaXN0b2dyYW0vbm9ybV9mdW5jdGlvbnMiOjEwMzB9XSwxMDMzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi9zYW1wbGVfZGVmYXVsdHMiKSxpPXQoIi4uL2hlYXRtYXAvc3R5bGVfZGVmYXVsdHMiKSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyIpLHM9dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGwpe2Z1bmN0aW9uIGMocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLHMscixhKX1hKHQsZSxjLGwpLCExIT09ZS52aXNpYmxlJiYoaSh0LGUsYyxsKSxvKHQsZSxsLGMse3ByZWZpeDoiIixjTGV0dGVyOiJ6In0pLGMoImhvdmVydGVtcGxhdGUiKSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyI6NjAyLCIuLi8uLi9saWIiOjcxNywiLi4vaGVhdG1hcC9zdHlsZV9kZWZhdWx0cyI6MTAxMywiLi9hdHRyaWJ1dGVzIjoxMDMxLCIuL3NhbXBsZV9kZWZhdWx0cyI6MTAzNn1dLDEwMzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vaGVhdG1hcC9ob3ZlciIpLGE9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKS5ob3ZlckxhYmVsVGV4dDtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaSxvLHMpe3ZhciBsPW4odCxlLHIsaSxvLHMpO2lmKGwpe3ZhciBjPSh0PWxbMF0pLmluZGV4LHU9Y1swXSxoPWNbMV0sZj10LmNkWzBdLHA9Zi54UmFuZ2VzW2hdLGQ9Zi55UmFuZ2VzW3VdO3JldHVybiB0LnhMYWJlbD1hKHQueGEscFswXSxwWzFdKSx0LnlMYWJlbD1hKHQueWEsZFswXSxkWzFdKSxsfX19LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjc2NSwiLi4vaGVhdG1hcC9ob3ZlciI6MTAwN31dLDEwMzU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjcm9zc1RyYWNlRGVmYXVsdHM6dCgiLi4vaGlzdG9ncmFtL2Nyb3NzX3RyYWNlX2RlZmF1bHRzIiksY2FsYzp0KCIuLi9oZWF0bWFwL2NhbGMiKSxwbG90OnQoIi4uL2hlYXRtYXAvcGxvdCIpLGxheWVyTmFtZToiaGVhdG1hcGxheWVyIixjb2xvcmJhcjp0KCIuLi9oZWF0bWFwL2NvbG9yYmFyIiksc3R5bGU6dCgiLi4vaGVhdG1hcC9zdHlsZSIpLGhvdmVyUG9pbnRzOnQoIi4vaG92ZXIiKSxldmVudERhdGE6dCgiLi4vaGlzdG9ncmFtL2V2ZW50X2RhdGEiKSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToiaGlzdG9ncmFtMmQiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbiIpLGNhdGVnb3JpZXM6WyJjYXJ0ZXNpYW4iLCJzdmciLCIyZE1hcCIsImhpc3RvZ3JhbSIsInNob3dMZWdlbmQiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjc3NiwiLi4vaGVhdG1hcC9jYWxjIjoxMDAxLCIuLi9oZWF0bWFwL2NvbG9yYmFyIjoxMDAzLCIuLi9oZWF0bWFwL3Bsb3QiOjEwMTEsIi4uL2hlYXRtYXAvc3R5bGUiOjEwMTIsIi4uL2hpc3RvZ3JhbS9jcm9zc190cmFjZV9kZWZhdWx0cyI6MTAyNSwiLi4vaGlzdG9ncmFtL2V2ZW50X2RhdGEiOjEwMjcsIi4vYXR0cmlidXRlcyI6MTAzMSwiLi9kZWZhdWx0cyI6MTAzMywiLi9ob3ZlciI6MTAzNH1dLDEwMzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcmVnaXN0cnkiKSxhPXQoIi4uLy4uL2xpYiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixpKXt2YXIgbz1yKCJ4Iikscz1yKCJ5IiksbD1hLm1pblJvd0xlbmd0aChvKSxjPWEubWluUm93TGVuZ3RoKHMpO2wmJmM/KGUuX2xlbmd0aD1NYXRoLm1pbihsLGMpLG4uZ2V0Q29tcG9uZW50TWV0aG9kKCJjYWxlbmRhcnMiLCJoYW5kbGVUcmFjZURlZmF1bHRzIikodCxlLFsieCIsInkiXSxpKSwocigieiIpfHxyKCJtYXJrZXIuY29sb3IiKSkmJnIoImhpc3RmdW5jIikscigiaGlzdG5vcm0iKSxyKCJhdXRvYmlueCIpLHIoImF1dG9iaW55IikpOmUudmlzaWJsZT0hMX19LHsiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3JlZ2lzdHJ5Ijo4NDZ9XSwxMDM3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2hpc3RvZ3JhbTJkL2F0dHJpYnV0ZXMiKSxhPXQoIi4uL2NvbnRvdXIvYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxvPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0O2UuZXhwb3J0cz1vKHt4Om4ueCx5Om4ueSx6Om4ueixtYXJrZXI6bi5tYXJrZXIsaGlzdG5vcm06bi5oaXN0bm9ybSxoaXN0ZnVuYzpuLmhpc3RmdW5jLG5iaW5zeDpuLm5iaW5zeCx4YmluczpuLnhiaW5zLG5iaW5zeTpuLm5iaW5zeSx5YmluczpuLnliaW5zLGF1dG9iaW54Om4uYXV0b2JpbngsYXV0b2Jpbnk6bi5hdXRvYmlueSxiaW5ncm91cDpuLmJpbmdyb3VwLHhiaW5ncm91cDpuLnhiaW5ncm91cCx5YmluZ3JvdXA6bi55YmluZ3JvdXAsYXV0b2NvbnRvdXI6YS5hdXRvY29udG91cixuY29udG91cnM6YS5uY29udG91cnMsY29udG91cnM6YS5jb250b3VycyxsaW5lOntjb2xvcjphLmxpbmUuY29sb3Isd2lkdGg6byh7fSxhLmxpbmUud2lkdGgse2RmbHQ6LjV9KSxkYXNoOmEubGluZS5kYXNoLHNtb290aGluZzphLmxpbmUuc21vb3RoaW5nLGVkaXRUeXBlOiJwbG90In0semhvdmVyZm9ybWF0Om4uemhvdmVyZm9ybWF0LGhvdmVydGVtcGxhdGU6bi5ob3ZlcnRlbXBsYXRlfSxpKCIiLHtjTGV0dGVyOiJ6IixlZGl0VHlwZU92ZXJyaWRlOiJjYWxjIn0pKX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6NTk5LCIuLi8uLi9saWIvZXh0ZW5kIjo3MDgsIi4uL2NvbnRvdXIvYXR0cmlidXRlcyI6OTQzLCIuLi9oaXN0b2dyYW0yZC9hdHRyaWJ1dGVzIjoxMDMxfV0sMTAzODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4uL2hpc3RvZ3JhbTJkL3NhbXBsZV9kZWZhdWx0cyIpLGk9dCgiLi4vY29udG91ci9jb250b3Vyc19kZWZhdWx0cyIpLG89dCgiLi4vY29udG91ci9zdHlsZV9kZWZhdWx0cyIpLHM9dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGwpe2Z1bmN0aW9uIGMocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLHMscixhKX1hKHQsZSxjLGwpLCExIT09ZS52aXNpYmxlJiYoaSh0LGUsYyxmdW5jdGlvbihyKXtyZXR1cm4gbi5jb2VyY2UyKHQsZSxzLHIpfSksbyh0LGUsYyxsKSxjKCJob3ZlcnRlbXBsYXRlIikpfX0seyIuLi8uLi9saWIiOjcxNywiLi4vY29udG91ci9jb250b3Vyc19kZWZhdWx0cyI6OTUwLCIuLi9jb250b3VyL3N0eWxlX2RlZmF1bHRzIjo5NjQsIi4uL2hpc3RvZ3JhbTJkL3NhbXBsZV9kZWZhdWx0cyI6MTAzNiwiLi9hdHRyaWJ1dGVzIjoxMDM3fV0sMTAzOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNyb3NzVHJhY2VEZWZhdWx0czp0KCIuLi9oaXN0b2dyYW0vY3Jvc3NfdHJhY2VfZGVmYXVsdHMiKSxjYWxjOnQoIi4uL2NvbnRvdXIvY2FsYyIpLHBsb3Q6dCgiLi4vY29udG91ci9wbG90IikucGxvdCxsYXllck5hbWU6ImNvbnRvdXJsYXllciIsc3R5bGU6dCgiLi4vY29udG91ci9zdHlsZSIpLGNvbG9yYmFyOnQoIi4uL2NvbnRvdXIvY29sb3JiYXIiKSxob3ZlclBvaW50czp0KCIuLi9jb250b3VyL2hvdmVyIiksbW9kdWxlVHlwZToidHJhY2UiLG5hbWU6Imhpc3RvZ3JhbTJkY29udG91ciIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuIiksY2F0ZWdvcmllczpbImNhcnRlc2lhbiIsInN2ZyIsIjJkTWFwIiwiY29udG91ciIsImhpc3RvZ3JhbSIsInNob3dMZWdlbmQiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjc3NiwiLi4vY29udG91ci9jYWxjIjo5NDQsIi4uL2NvbnRvdXIvY29sb3JiYXIiOjk0NiwiLi4vY29udG91ci9ob3ZlciI6OTU2LCIuLi9jb250b3VyL3Bsb3QiOjk2MSwiLi4vY29udG91ci9zdHlsZSI6OTYzLCIuLi9oaXN0b2dyYW0vY3Jvc3NfdHJhY2VfZGVmYXVsdHMiOjEwMjUsIi4vYXR0cmlidXRlcyI6MTAzNywiLi9kZWZhdWx0cyI6MTAzOH1dLDEwNDA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7Zm9yKHZhciBuPXQoIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMsaT10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxvPXQoIi4vY29uc3RhbnRzIikuY29sb3Jtb2RlbCxzPVsicmdiIiwicmdiYSIsImhzbCIsImhzbGEiXSxsPVtdLGM9W10sdT0wO3U8cy5sZW5ndGg7dSsrKWwucHVzaCgiRm9yIHRoZSBgIitzW3VdKyJgIGNvbG9ybW9kZWwsIGl0IGlzIFsiK29bc1t1XV0ubWluLmpvaW4oIiwgIikrIl0uIiksYy5wdXNoKCJGb3IgdGhlIGAiK3NbdV0rImAgY29sb3Jtb2RlbCwgaXQgaXMgWyIrb1tzW3VdXS5tYXguam9pbigiLCAiKSsiXS4iKTtlLmV4cG9ydHM9aSh7ejp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxjb2xvcm1vZGVsOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6cyxkZmx0OiJyZ2IiLGVkaXRUeXBlOiJjYWxjIn0sem1pbjp7dmFsVHlwZToiaW5mb19hcnJheSIsaXRlbXM6W3t2YWxUeXBlOiJudW1iZXIiLGVkaXRUeXBlOiJjYWxjIn0se3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6ImNhbGMifSx7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToiY2FsYyJ9LHt2YWxUeXBlOiJudW1iZXIiLGVkaXRUeXBlOiJjYWxjIn1dLGVkaXRUeXBlOiJjYWxjIn0sem1heDp7dmFsVHlwZToiaW5mb19hcnJheSIsaXRlbXM6W3t2YWxUeXBlOiJudW1iZXIiLGVkaXRUeXBlOiJjYWxjIn0se3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6ImNhbGMifSx7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToiY2FsYyJ9LHt2YWxUeXBlOiJudW1iZXIiLGVkaXRUeXBlOiJjYWxjIn1dLGVkaXRUeXBlOiJjYWxjIn0seDA6e3ZhbFR5cGU6ImFueSIsZGZsdDowLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0seTA6e3ZhbFR5cGU6ImFueSIsZGZsdDowLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0sZHg6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoxLGVkaXRUeXBlOiJjYWxjIn0sZHk6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoxLGVkaXRUeXBlOiJjYWxjIn0sdGV4dDp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6InBsb3QifSxob3ZlcnRleHQ6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJwbG90In0saG92ZXJpbmZvOmkoe30sbi5ob3ZlcmluZm8se2ZsYWdzOlsieCIsInkiLCJ6IiwiY29sb3IiLCJuYW1lIiwidGV4dCJdLGRmbHQ6IngreSt6K3RleHQrbmFtZSJ9KSxob3ZlcnRlbXBsYXRlOmEoe30se2tleXM6WyJ6IiwiY29sb3IiLCJjb2xvcm1vZGVsIl19KSx0cmFuc2Zvcm1zOnZvaWQgMH0pfSx7Ii4uLy4uL2xpYi9leHRlbmQiOjcwOCwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6NzYyLCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo4NDEsIi4vY29uc3RhbnRzIjoxMDQyfV0sMTA0MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4vY29uc3RhbnRzIiksaT10KCJmYXN0LWlzbnVtZXJpYyIpLG89dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxzPXQoIi4uLy4uL2xpYiIpLm1heFJvd0xlbmd0aDtmdW5jdGlvbiBsKHQsZSxyLGEpe3JldHVybiBmdW5jdGlvbihpKXtyZXR1cm4gbi5jb25zdHJhaW4oKGktdCkqZSxyLGEpfX1mdW5jdGlvbiBjKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiBuLmNvbnN0cmFpbihyLHQsZSl9fWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLG49by5nZXRGcm9tSWQodCxlLnhheGlzfHwieCIpLHU9by5nZXRGcm9tSWQodCxlLnlheGlzfHwieSIpLGg9bi5kMmMoZS54MCktZS5keC8yLGY9dS5kMmMoZS55MCktZS5keS8yLHA9ZS56Lmxlbmd0aCxkPXMoZS56KSxnPVtoLGgrZCplLmR4XSx2PVtmLGYrcCplLmR5XTtpZihuJiYibG9nIj09PW4udHlwZSlmb3Iocj0wO3I8ZDtyKyspZy5wdXNoKGgrciplLmR4KTtpZih1JiYibG9nIj09PXUudHlwZSlmb3Iocj0wO3I8cDtyKyspdi5wdXNoKGYrciplLmR5KTtyZXR1cm4gZS5fZXh0cmVtZXNbbi5faWRdPW8uZmluZEV4dHJlbWVzKG4sZyksZS5fZXh0cmVtZXNbdS5faWRdPW8uZmluZEV4dHJlbWVzKHUsdiksZS5fc2NhbGVyPWZ1bmN0aW9uKHQpe3ZhciBlPXQuY29sb3Jtb2RlbCxyPWUubGVuZ3RoLG49YS5jb2xvcm1vZGVsW2VdO3QuX3NBcnJheT1bXTtmb3IodmFyIG89MDtvPHI7bysrKW4ubWluW29dIT09dC56bWluW29dfHxuLm1heFtvXSE9PXQuem1heFtvXT90Ll9zQXJyYXkucHVzaChsKHQuem1pbltvXSwobi5tYXhbb10tbi5taW5bb10pLyh0LnptYXhbb10tdC56bWluW29dKSxuLm1pbltvXSxuLm1heFtvXSkpOnQuX3NBcnJheS5wdXNoKGMobi5taW5bb10sbi5tYXhbb10pKTtyZXR1cm4gZnVuY3Rpb24oZSl7Zm9yKHZhciBuPWUuc2xpY2UoMCxyKSxhPTA7YTxyO2ErKyl7dmFyIG89blthXTtpZighaShvKSlyZXR1cm4hMTtuW2FdPXQuX3NBcnJheVthXShvKX1yZXR1cm4gbn19KGUpLFt7eDA6aCx5MDpmLHo6ZS56LHc6ZCxoOnB9XX19LHsiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo3NjUsIi4vY29uc3RhbnRzIjoxMDQyLCJmYXN0LWlzbnVtZXJpYyI6MjI4fV0sMTA0MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2NvbG9ybW9kZWw6e3JnYjp7bWluOlswLDAsMF0sbWF4OlsyNTUsMjU1LDI1NV0sZm10OmZ1bmN0aW9uKHQpe3JldHVybiB0LnNsaWNlKDAsMyl9LHN1ZmZpeDpbIiIsIiIsIiJdfSxyZ2JhOnttaW46WzAsMCwwLDBdLG1heDpbMjU1LDI1NSwyNTUsMV0sZm10OmZ1bmN0aW9uKHQpe3JldHVybiB0LnNsaWNlKDAsNCl9LHN1ZmZpeDpbIiIsIiIsIiIsIiJdfSxoc2w6e21pbjpbMCwwLDBdLG1heDpbMzYwLDEwMCwxMDBdLGZtdDpmdW5jdGlvbih0KXt2YXIgZT10LnNsaWNlKDAsMyk7cmV0dXJuIGVbMV09ZVsxXSsiJSIsZVsyXT1lWzJdKyIlIixlfSxzdWZmaXg6WyJceGIwIiwiJSIsIiUiXX0saHNsYTp7bWluOlswLDAsMCwwXSxtYXg6WzM2MCwxMDAsMTAwLDFdLGZtdDpmdW5jdGlvbih0KXt2YXIgZT10LnNsaWNlKDAsNCk7cmV0dXJuIGVbMV09ZVsxXSsiJSIsZVsyXT1lWzJdKyIlIixlfSxzdWZmaXg6WyJceGIwIiwiJSIsIiUiLCIiXX19fX0se31dLDEwNDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuL2F0dHJpYnV0ZXMiKSxpPXQoIi4vY29uc3RhbnRzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gcihyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsYSxyLGkpfXZhciBvPXIoInoiKTtpZih2b2lkIDAhPT1vJiZvLmxlbmd0aCYmb1swXSYmb1swXS5sZW5ndGgpe3IoIngwIikscigieTAiKSxyKCJkeCIpLHIoImR5Iik7dmFyIHM9cigiY29sb3Jtb2RlbCIpO3IoInptaW4iLGkuY29sb3Jtb2RlbFtzXS5taW4pLHIoInptYXgiLGkuY29sb3Jtb2RlbFtzXS5tYXgpLHIoInRleHQiKSxyKCJob3ZlcnRleHQiKSxyKCJob3ZlcnRlbXBsYXRlIiksZS5fbGVuZ3RoPW51bGx9ZWxzZSBlLnZpc2libGU9ITF9fSx7Ii4uLy4uL2xpYiI6NzE3LCIuL2F0dHJpYnV0ZXMiOjEwNDAsIi4vY29uc3RhbnRzIjoxMDQyfV0sMTA0NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4ieFZhbCJpbiBlJiYodC54PWUueFZhbCksInlWYWwiaW4gZSYmKHQueT1lLnlWYWwpLGUueGEmJih0LnhheGlzPWUueGEpLGUueWEmJih0LnlheGlzPWUueWEpLHQuY29sb3I9ZS5jb2xvcix0LmNvbG9ybW9kZWw9ZS50cmFjZS5jb2xvcm1vZGVsLHR9fSx7fV0sMTA0NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2Z4IiksYT10KCIuLi8uLi9saWIiKSxpPXQoIi4vY29uc3RhbnRzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbz10LmNkWzBdLHM9by50cmFjZSxsPXQueGEsYz10LnlhO2lmKCEobi5pbmJveChlLW8ueDAsZS0oby54MCtvLncqcy5keCksMCk+MHx8bi5pbmJveChyLW8ueTAsci0oby55MCtvLmgqcy5keSksMCk+MCkpe3ZhciB1PU1hdGguZmxvb3IoKGUtby54MCkvcy5keCksaD1NYXRoLmZsb29yKE1hdGguYWJzKHItby55MCkvcy5keSk7aWYoby56W2hdW3VdKXt2YXIgZixwPW8uaGl8fHMuaG92ZXJpbmZvO2lmKHApe3ZhciBkPXAuc3BsaXQoIisiKTstMSE9PWQuaW5kZXhPZigiYWxsIikmJihkPVsiY29sb3IiXSksLTEhPT1kLmluZGV4T2YoImNvbG9yIikmJihmPSEwKX12YXIgZyx2PXMuY29sb3Jtb2RlbCxtPXYubGVuZ3RoLHk9cy5fc2NhbGVyKG8ueltoXVt1XSkseD1pLmNvbG9ybW9kZWxbdl0uc3VmZml4LGI9W107KHMuaG92ZXJ0ZW1wbGF0ZXx8ZikmJihiLnB1c2goIlsiK1t5WzBdK3hbMF0seVsxXSt4WzFdLHlbMl0reFsyXV0uam9pbigiLCAiKSksND09PW0mJmIucHVzaCgiLCAiK3lbM10reFszXSksYi5wdXNoKCJdIiksYj1iLmpvaW4oIiIpLHQuZXh0cmFUZXh0PXYudG9VcHBlckNhc2UoKSsiOiAiK2IpLEFycmF5LmlzQXJyYXkocy5ob3ZlcnRleHQpJiZBcnJheS5pc0FycmF5KHMuaG92ZXJ0ZXh0W2hdKT9nPXMuaG92ZXJ0ZXh0W2hdW3VdOkFycmF5LmlzQXJyYXkocy50ZXh0KSYmQXJyYXkuaXNBcnJheShzLnRleHRbaF0pJiYoZz1zLnRleHRbaF1bdV0pO3ZhciBfPWMuYzJwKG8ueTArKGgrLjUpKnMuZHkpLHc9by54MCsodSsuNSkqcy5keCxrPW8ueTArKGgrLjUpKnMuZHksVD0iWyIrby56W2hdW3VdLnNsaWNlKDAscy5jb2xvcm1vZGVsLmxlbmd0aCkuam9pbigiLCAiKSsiXSI7cmV0dXJuW2EuZXh0ZW5kRmxhdCh0LHtpbmRleDpbaCx1XSx4MDpsLmMycChvLngwK3Uqcy5keCkseDE6bC5jMnAoby54MCsodSsxKSpzLmR4KSx5MDpfLHkxOl8sY29sb3I6eSx4VmFsOncseExhYmVsVmFsOncseVZhbDprLHlMYWJlbFZhbDprLHpMYWJlbFZhbDpULHRleHQ6Zyxob3ZlcnRlbXBsYXRlTGFiZWxzOnt6TGFiZWw6VCxjb2xvckxhYmVsOmIsImNvbG9yWzBdTGFiZWwiOnlbMF0reFswXSwiY29sb3JbMV1MYWJlbCI6eVsxXSt4WzFdLCJjb2xvclsyXUxhYmVsIjp5WzJdK3hbMl0sImNvbG9yWzNdTGFiZWwiOnlbM10reFszXX19KV19fX19LHsiLi4vLi4vY29tcG9uZW50cy9meCI6NjMwLCIuLi8uLi9saWIiOjcxNywiLi9jb25zdGFudHMiOjEwNDJ9XSwxMDQ2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY2FsYzp0KCIuL2NhbGMiKSxwbG90OnQoIi4vcGxvdCIpLHN0eWxlOnQoIi4vc3R5bGUiKSxob3ZlclBvaW50czp0KCIuL2hvdmVyIiksZXZlbnREYXRhOnQoIi4vZXZlbnRfZGF0YSIpLG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJpbWFnZSIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuIiksY2F0ZWdvcmllczpbImNhcnRlc2lhbiIsInN2ZyIsIjJkTWFwIiwibm9Tb3J0aW5nQnlWYWx1ZSJdLGFuaW1hdGFibGU6ITEsbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuIjo3NzYsIi4vYXR0cmlidXRlcyI6MTA0MCwiLi9jYWxjIjoxMDQxLCIuL2RlZmF1bHRzIjoxMDQzLCIuL2V2ZW50X2RhdGEiOjEwNDQsIi4vaG92ZXIiOjEwNDUsIi4vcGxvdCI6MTA0NywiLi9zdHlsZSI6MTA0OH1dLDEwNDc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxhPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiKSxvPXQoIi4vY29uc3RhbnRzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMpe3ZhciBsPWUueGF4aXMsYz1lLnlheGlzO2EubWFrZVRyYWNlR3JvdXBzKHMsciwiaW0iKS5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlLHIscyx1LGgsZixwPW4uc2VsZWN0KHRoaXMpLGQ9dFswXSxnPWQudHJhY2Usdj1kLnosbT1kLngwLHk9ZC55MCx4PWQudyxiPWQuaCxfPWcuZHgsdz1nLmR5O2ZvcihmPTA7dm9pZCAwPT09ZSYmZjx4OyllPWwuYzJwKG0rZipfKSxmKys7Zm9yKGY9eDt2b2lkIDA9PT1yJiZmPjA7KXI9bC5jMnAobStmKl8pLGYtLTtmb3IoZj0wO3ZvaWQgMD09PXUmJmY8YjspdT1jLmMycCh5K2YqdyksZisrO2ZvcihmPWI7dm9pZCAwPT09aCYmZj4wOyloPWMuYzJwKHkrZip3KSxmLS07cjxlJiYocz1yLHI9ZSxlPXMpLGg8dSYmKHM9dSx1PWgsaD1zKTtlPU1hdGgubWF4KC0uNSpsLl9sZW5ndGgsZSkscj1NYXRoLm1pbigxLjUqbC5fbGVuZ3RoLHIpLHU9TWF0aC5tYXgoLS41KmMuX2xlbmd0aCx1KSxoPU1hdGgubWluKDEuNSpjLl9sZW5ndGgsaCk7dmFyIGs9TWF0aC5yb3VuZChyLWUpLFQ9TWF0aC5yb3VuZChoLXUpO2lmKGs8PTB8fFQ8PTApe3Auc2VsZWN0QWxsKCJpbWFnZSIpLmRhdGEoW10pLmV4aXQoKS5yZW1vdmUoKX1lbHNle3ZhciBNPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO00ud2lkdGg9ayxNLmhlaWdodD1UO3ZhciBBLFM9TS5nZXRDb250ZXh0KCIyZCIpLEU9ZnVuY3Rpb24odCl7cmV0dXJuIGEuY29uc3RyYWluKE1hdGgucm91bmQobC5jMnAobSt0Kl8pLWUpLDAsayl9LEw9ZnVuY3Rpb24odCl7cmV0dXJuIGEuY29uc3RyYWluKE1hdGgucm91bmQoYy5jMnAoeSt0KncpLXUpLDAsVCl9LEM9by5jb2xvcm1vZGVsW2cuY29sb3Jtb2RlbF0uZm10O2ZvcihmPTA7ZjxkLnc7ZisrKXt2YXIgUD1FKGYpLE89RShmKzEpO2lmKE8hPT1QJiYhaXNOYU4oTykmJiFpc05hTihQKSlmb3IodmFyIHo9MDt6PGQuaDt6Kyspe3ZhciBJPUwoeiksRD1MKHorMSk7RD09PUl8fGlzTmFOKEQpfHxpc05hTihJKXx8IXZbel1bZl18fChBPWcuX3NjYWxlcih2W3pdW2ZdKSxTLmZpbGxTdHlsZT1BP2cuY29sb3Jtb2RlbCsiKCIrQyhBKS5qb2luKCIsIikrIikiOiJyZ2JhKDAsMCwwLDApIixTLmZpbGxSZWN0KFAsSSxPLVAsRC1JKSl9fXZhciBSPXAuc2VsZWN0QWxsKCJpbWFnZSIpLmRhdGEodCk7Ui5lbnRlcigpLmFwcGVuZCgic3ZnOmltYWdlIikuYXR0cih7eG1sbnM6aS5zdmcscHJlc2VydmVBc3BlY3RSYXRpbzoibm9uZSJ9KSxSLmF0dHIoe2hlaWdodDpULHdpZHRoOmsseDplLHk6dSwieGxpbms6aHJlZiI6TS50b0RhdGFVUkwoImltYWdlL3BuZyIpfSl9fSl9fSx7Ii4uLy4uL2NvbnN0YW50cy94bWxuc19uYW1lc3BhY2VzIjo2OTQsIi4uLy4uL2xpYiI6NzE3LCIuL2NvbnN0YW50cyI6MTA0MixkMzoxNjV9XSwxMDQ4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe24uc2VsZWN0KHQpLnNlbGVjdEFsbCgiLmltIGltYWdlIikuc3R5bGUoIm9wYWNpdHkiLGZ1bmN0aW9uKHQpe3JldHVybiB0LnRyYWNlLm9wYWNpdHl9KX19LHtkMzoxNjV9XSwxMDQ5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LGE9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZERlZXAsaT10KCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIikub3ZlcnJpZGVBbGwsbz10KCIuLi8uLi9wbG90cy9mb250X2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyIpLGw9dCgiLi4vLi4vcGxvdHMvZG9tYWluIikuYXR0cmlidXRlcyxjPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9sYXlvdXRfYXR0cmlidXRlcyIpLHU9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLnRlbXBsYXRlZEFycmF5LGg9dCgiLi4vLi4vY29uc3RhbnRzL2RlbHRhLmpzIiksZj0odCgiLi4vLi4vY29uc3RhbnRzL2RvY3MiKS5GT1JNQVRfTElOSyxvKHtlZGl0VHlwZToicGxvdCIsY29sb3JFZGl0VHlwZToicGxvdCJ9KSkscD17Y29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToicGxvdCJ9LGxpbmU6e2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpzLmRlZmF1bHRMaW5lLGVkaXRUeXBlOiJwbG90In0sd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDowLGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6ImNhbGMifSx0aGlja25lc3M6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxLGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6ImNhbGMifSxkPXt2YWxUeXBlOiJpbmZvX2FycmF5IixpdGVtczpbe3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6InBsb3QifSx7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToicGxvdCJ9XSxlZGl0VHlwZToicGxvdCJ9LGc9dSgic3RlcCIsYSh7fSxwLHtyYW5nZTpkfSkpO2UuZXhwb3J0cz17bW9kZTp7dmFsVHlwZToiZmxhZ2xpc3QiLGVkaXRUeXBlOiJjYWxjIixmbGFnczpbIm51bWJlciIsImRlbHRhIiwiZ2F1Z2UiXSxkZmx0OiJudW1iZXIifSx2YWx1ZTp7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToiY2FsYyIsYW5pbTohMH0sYWxpZ246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImxlZnQiLCJjZW50ZXIiLCJyaWdodCJdLGVkaXRUeXBlOiJwbG90In0sZG9tYWluOmwoe25hbWU6ImluZGljYXRvciIsdHJhY2U6ITAsZWRpdFR5cGU6ImNhbGMifSksdGl0bGU6e3RleHQ6e3ZhbFR5cGU6InN0cmluZyIsZWRpdFR5cGU6InBsb3QifSxhbGlnbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsibGVmdCIsImNlbnRlciIsInJpZ2h0Il0sZWRpdFR5cGU6InBsb3QifSxmb250Om4oe30sZix7fSksZWRpdFR5cGU6InBsb3QifSxudW1iZXI6e3ZhbHVlZm9ybWF0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6InBsb3QifSxmb250Om4oe30sZix7fSkscHJlZml4Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6InBsb3QifSxzdWZmaXg6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJwbG90In0sZGVsdGE6e3JlZmVyZW5jZTp7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToiY2FsYyJ9LHBvc2l0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiXSxkZmx0OiJib3R0b20iLGVkaXRUeXBlOiJwbG90In0scmVsYXRpdmU6e3ZhbFR5cGU6ImJvb2xlYW4iLGVkaXRUeXBlOiJwbG90IixkZmx0OiExfSx2YWx1ZWZvcm1hdDp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToicGxvdCJ9LGluY3JlYXNpbmc6e3N5bWJvbDp7dmFsVHlwZToic3RyaW5nIixkZmx0OmguSU5DUkVBU0lORy5TWU1CT0wsZWRpdFR5cGU6InBsb3QifSxjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6aC5JTkNSRUFTSU5HLkNPTE9SLGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6InBsb3QifSxkZWNyZWFzaW5nOntzeW1ib2w6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDpoLkRFQ1JFQVNJTkcuU1lNQk9MLGVkaXRUeXBlOiJwbG90In0sY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmguREVDUkVBU0lORy5DT0xPUixlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJwbG90In0sZm9udDpuKHt9LGYse30pLGVkaXRUeXBlOiJjYWxjIn0sZ2F1Z2U6e3NoYXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIixlZGl0VHlwZToicGxvdCIsZGZsdDoiYW5ndWxhciIsdmFsdWVzOlsiYW5ndWxhciIsImJ1bGxldCJdfSxiYXI6YSh7fSxwLHtjb2xvcjp7ZGZsdDoiZ3JlZW4ifX0pLGJnY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToicGxvdCJ9LGJvcmRlcmNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpzLmRlZmF1bHRMaW5lLGVkaXRUeXBlOiJwbG90In0sYm9yZGVyd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxLGVkaXRUeXBlOiJwbG90In0sYXhpczppKHtyYW5nZTpkLHZpc2libGU6bih7fSxjLnZpc2libGUse2RmbHQ6ITB9KSx0aWNrbW9kZTpjLnRpY2ttb2RlLG50aWNrczpjLm50aWNrcyx0aWNrMDpjLnRpY2swLGR0aWNrOmMuZHRpY2ssdGlja3ZhbHM6Yy50aWNrdmFscyx0aWNrdGV4dDpjLnRpY2t0ZXh0LHRpY2tzOm4oe30sYy50aWNrcyx7ZGZsdDoib3V0c2lkZSJ9KSx0aWNrbGVuOmMudGlja2xlbix0aWNrd2lkdGg6Yy50aWNrd2lkdGgsdGlja2NvbG9yOmMudGlja2NvbG9yLHNob3d0aWNrbGFiZWxzOmMuc2hvd3RpY2tsYWJlbHMsdGlja2ZvbnQ6byh7fSksdGlja2FuZ2xlOmMudGlja2FuZ2xlLHRpY2tmb3JtYXQ6Yy50aWNrZm9ybWF0LHRpY2tmb3JtYXRzdG9wczpjLnRpY2tmb3JtYXRzdG9wcyx0aWNrcHJlZml4OmMudGlja3ByZWZpeCxzaG93dGlja3ByZWZpeDpjLnNob3d0aWNrcHJlZml4LHRpY2tzdWZmaXg6Yy50aWNrc3VmZml4LHNob3d0aWNrc3VmZml4OmMuc2hvd3RpY2tzdWZmaXgsc2VwYXJhdGV0aG91c2FuZHM6Yy5zZXBhcmF0ZXRob3VzYW5kcyxleHBvbmVudGZvcm1hdDpjLmV4cG9uZW50Zm9ybWF0LHNob3dleHBvbmVudDpjLnNob3dleHBvbmVudCxlZGl0VHlwZToicGxvdCJ9LCJwbG90Iiksc3RlcHM6Zyx0aHJlc2hvbGQ6e2xpbmU6e2NvbG9yOm4oe30scC5saW5lLmNvbG9yLHt9KSx3aWR0aDpuKHt9LHAubGluZS53aWR0aCx7ZGZsdDoxfSksZWRpdFR5cGU6InBsb3QifSx0aGlja25lc3M6bih7fSxwLnRoaWNrbmVzcyx7ZGZsdDouODV9KSx2YWx1ZTp7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToiY2FsYyIsZGZsdDohMX0sZWRpdFR5cGU6InBsb3QifSxlZGl0VHlwZToicGxvdCJ9fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiOjU5MSwiLi4vLi4vY29uc3RhbnRzL2RlbHRhLmpzIjo2ODcsIi4uLy4uL2NvbnN0YW50cy9kb2NzIjo2ODgsIi4uLy4uL2xpYi9leHRlbmQiOjcwOCwiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyI6NzQ4LCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo3NTUsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9sYXlvdXRfYXR0cmlidXRlcyI6Nzc3LCIuLi8uLi9wbG90cy9kb21haW4iOjc5MCwiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIjo3OTF9XSwxMDUwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIik7ci5uYW1lPSJpbmRpY2F0b3IiLHIucGxvdD1mdW5jdGlvbih0LGUsYSxpKXtuLnBsb3RCYXNlUGxvdChyLm5hbWUsdCxlLGEsaSl9LHIuY2xlYW49ZnVuY3Rpb24odCxlLGEsaSl7bi5jbGVhbkJhc2VQbG90KHIubmFtZSx0LGUsYSxpKX19LHsiLi4vLi4vcGxvdHMvcGxvdHMiOjgyNn1dLDEwNTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtjYWxjOmZ1bmN0aW9uKHQsZSl7dmFyIHI9W10sbj1lLnZhbHVlOyJudW1iZXIiIT10eXBlb2YgZS5fbGFzdFZhbHVlJiYoZS5fbGFzdFZhbHVlPWUudmFsdWUpO3ZhciBhPWUuX2xhc3RWYWx1ZSxpPWE7cmV0dXJuIGUuX2hhc0RlbHRhJiYibnVtYmVyIj09dHlwZW9mIGUuZGVsdGEucmVmZXJlbmNlJiYoaT1lLmRlbHRhLnJlZmVyZW5jZSksclswXT17eTpuLGxhc3RZOmEsZGVsdGE6bi1pLHJlbGF0aXZlRGVsdGE6KG4taSkvaX0scn19fSx7fV0sMTA1MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2RlZmF1bHROdW1iZXJGb250U2l6ZTo4MCxidWxsZXROdW1iZXJEb21haW5TaXplOi4yNSxidWxsZXRQYWRkaW5nOi4wMjUsaW5uZXJSYWRpdXM6Ljc1LHZhbHVlVGhpY2tuZXNzOi41LHRpdGxlUGFkZGluZzo1LGhvcml6b250YWxQYWRkaW5nOjEwfX0se31dLDEwNTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL3Bsb3RzL2RvbWFpbiIpLmRlZmF1bHRzLG89dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLHM9dCgiLi4vLi4vcGxvdHMvYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIiksbD10KCIuL2NvbnN0YW50cy5qcyIpLGM9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL3RpY2tfdmFsdWVfZGVmYXVsdHMiKSx1PXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi90aWNrX21hcmtfZGVmYXVsdHMiKSxoPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi90aWNrX2xhYmVsX2RlZmF1bHRzIik7ZnVuY3Rpb24gZih0LGUpe2Z1bmN0aW9uIHIocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGEuZ2F1Z2Uuc3RlcHMscixpKX1yKCJjb2xvciIpLHIoImxpbmUuY29sb3IiKSxyKCJsaW5lLndpZHRoIikscigicmFuZ2UiKSxyKCJ0aGlja25lc3MiKX1lLmV4cG9ydHM9e3N1cHBseURlZmF1bHRzOmZ1bmN0aW9uKHQsZSxyLHApe2Z1bmN0aW9uIGQocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGEscixpKX1pKGUscCxkKSxkKCJtb2RlIiksZS5faGFzTnVtYmVyPS0xIT09ZS5tb2RlLmluZGV4T2YoIm51bWJlciIpLGUuX2hhc0RlbHRhPS0xIT09ZS5tb2RlLmluZGV4T2YoImRlbHRhIiksZS5faGFzR2F1Z2U9LTEhPT1lLm1vZGUuaW5kZXhPZigiZ2F1Z2UiKTt2YXIgZz1kKCJ2YWx1ZSIpO2UuX3JhbmdlPVswLCJudW1iZXIiPT10eXBlb2YgZz8xLjUqZzoxXTt2YXIgdixtLHkseCxiLF8sdz1uZXcgQXJyYXkoMik7ZnVuY3Rpb24gayh0LGUpe3JldHVybiBuLmNvZXJjZSh5LHgsYS5nYXVnZSx0LGUpfWZ1bmN0aW9uIFQodCxlKXtyZXR1cm4gbi5jb2VyY2UoYixfLGEuZ2F1Z2UuYXhpcyx0LGUpfWlmKGUuX2hhc051bWJlciYmKGQoIm51bWJlci52YWx1ZWZvcm1hdCIpLGQoIm51bWJlci5mb250LmNvbG9yIixwLmZvbnQuY29sb3IpLGQoIm51bWJlci5mb250LmZhbWlseSIscC5mb250LmZhbWlseSksZCgibnVtYmVyLmZvbnQuc2l6ZSIpLHZvaWQgMD09PWUubnVtYmVyLmZvbnQuc2l6ZSYmKGUubnVtYmVyLmZvbnQuc2l6ZT1sLmRlZmF1bHROdW1iZXJGb250U2l6ZSx3WzBdPSEwKSxkKCJudW1iZXIucHJlZml4IiksZCgibnVtYmVyLnN1ZmZpeCIpLHY9ZS5udW1iZXIuZm9udC5zaXplKSxlLl9oYXNEZWx0YSYmKGQoImRlbHRhLmZvbnQuY29sb3IiLHAuZm9udC5jb2xvciksZCgiZGVsdGEuZm9udC5mYW1pbHkiLHAuZm9udC5mYW1pbHkpLGQoImRlbHRhLmZvbnQuc2l6ZSIpLHZvaWQgMD09PWUuZGVsdGEuZm9udC5zaXplJiYoZS5kZWx0YS5mb250LnNpemU9KGUuX2hhc051bWJlcj8uNToxKSoodnx8bC5kZWZhdWx0TnVtYmVyRm9udFNpemUpLHdbMV09ITApLGQoImRlbHRhLnJlZmVyZW5jZSIsZS52YWx1ZSksZCgiZGVsdGEucmVsYXRpdmUiKSxkKCJkZWx0YS52YWx1ZWZvcm1hdCIsZS5kZWx0YS5yZWxhdGl2ZT8iMiUiOiIiKSxkKCJkZWx0YS5pbmNyZWFzaW5nLnN5bWJvbCIpLGQoImRlbHRhLmluY3JlYXNpbmcuY29sb3IiKSxkKCJkZWx0YS5kZWNyZWFzaW5nLnN5bWJvbCIpLGQoImRlbHRhLmRlY3JlYXNpbmcuY29sb3IiKSxkKCJkZWx0YS5wb3NpdGlvbiIpLG09ZS5kZWx0YS5mb250LnNpemUpLGUuX3NjYWxlTnVtYmVycz0oIWUuX2hhc051bWJlcnx8d1swXSkmJighZS5faGFzRGVsdGF8fHdbMV0pfHwhMSxkKCJ0aXRsZS5mb250LmNvbG9yIixwLmZvbnQuY29sb3IpLGQoInRpdGxlLmZvbnQuZmFtaWx5IixwLmZvbnQuZmFtaWx5KSxkKCJ0aXRsZS5mb250LnNpemUiLC4yNSoodnx8bXx8bC5kZWZhdWx0TnVtYmVyRm9udFNpemUpKSxkKCJ0aXRsZS50ZXh0IiksZS5faGFzR2F1Z2Upeyh5PXQuZ2F1Z2UpfHwoeT17fSkseD1vLm5ld0NvbnRhaW5lcihlLCJnYXVnZSIpLGsoInNoYXBlIiksKGUuX2lzQnVsbGV0PSJidWxsZXQiPT09ZS5nYXVnZS5zaGFwZSl8fGQoInRpdGxlLmFsaWduIiwiY2VudGVyIiksKGUuX2lzQW5ndWxhcj0iYW5ndWxhciI9PT1lLmdhdWdlLnNoYXBlKXx8ZCgiYWxpZ24iLCJjZW50ZXIiKSxrKCJiZ2NvbG9yIixwLnBhcGVyX2JnY29sb3IpLGsoImJvcmRlcndpZHRoIiksaygiYm9yZGVyY29sb3IiKSxrKCJiYXIuY29sb3IiKSxrKCJiYXIubGluZS5jb2xvciIpLGsoImJhci5saW5lLndpZHRoIiksaygiYmFyLnRoaWNrbmVzcyIsbC52YWx1ZVRoaWNrbmVzcyooImJ1bGxldCI9PT1lLmdhdWdlLnNoYXBlPy41OjEpKSxzKHkseCx7bmFtZToic3RlcHMiLGhhbmRsZUl0ZW1EZWZhdWx0czpmfSksaygidGhyZXNob2xkLnZhbHVlIiksaygidGhyZXNob2xkLnRoaWNrbmVzcyIpLGsoInRocmVzaG9sZC5saW5lLndpZHRoIiksaygidGhyZXNob2xkLmxpbmUuY29sb3IiKSxiPXt9LHkmJihiPXkuYXhpc3x8e30pLF89by5uZXdDb250YWluZXIoeCwiYXhpcyIpLFQoInZpc2libGUiKSxlLl9yYW5nZT1UKCJyYW5nZSIsZS5fcmFuZ2UpO3ZhciBNPXtvdXRlclRpY2tzOiEwfTtjKGIsXyxULCJsaW5lYXIiKSxoKGIsXyxULCJsaW5lYXIiLE0pLHUoYixfLFQsTSl9ZWxzZSBkKCJ0aXRsZS5hbGlnbiIsImNlbnRlciIpLGQoImFsaWduIiwiY2VudGVyIiksZS5faXNBbmd1bGFyPWUuX2lzQnVsbGV0PSExO2UuX2xlbmd0aD1udWxsfX19LHsiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjc1NSwiLi4vLi4vcGxvdHMvYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIjo3NjEsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi90aWNrX2xhYmVsX2RlZmF1bHRzIjo3ODQsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi90aWNrX21hcmtfZGVmYXVsdHMiOjc4NSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL3RpY2tfdmFsdWVfZGVmYXVsdHMiOjc4NiwiLi4vLi4vcGxvdHMvZG9tYWluIjo3OTAsIi4vYXR0cmlidXRlcyI6MTA0OSwiLi9jb25zdGFudHMuanMiOjEwNTJ9XSwxMDU0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bW9kdWxlVHlwZToidHJhY2UiLG5hbWU6ImluZGljYXRvciIsYmFzZVBsb3RNb2R1bGU6dCgiLi9iYXNlX3Bsb3QiKSxjYXRlZ29yaWVzOlsic3ZnIiwibm9PcGFjaXR5Iiwibm9Ib3ZlciJdLGFuaW1hdGFibGU6ITAsYXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIikuc3VwcGx5RGVmYXVsdHMsY2FsYzp0KCIuL2NhbGMiKS5jYWxjLHBsb3Q6dCgiLi9wbG90IiksbWV0YTp7fX19LHsiLi9hdHRyaWJ1dGVzIjoxMDQ5LCIuL2Jhc2VfcGxvdCI6MTA1MCwiLi9jYWxjIjoxMDUxLCIuL2RlZmF1bHRzIjoxMDUzLCIuL3Bsb3QiOjEwNTV9XSwxMDU1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksYT10KCIuLi8uLi9saWIiKSxpPWEucmFkMmRlZyxvPXQoIi4uLy4uL2NvbnN0YW50cy9hbGlnbm1lbnQiKS5NSURfU0hJRlQscz10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxsPXQoIi4vY29uc3RhbnRzIiksYz10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSx1PXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksaD10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19kZWZhdWx0cyIpLGY9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL3Bvc2l0aW9uX2RlZmF1bHRzIikscD10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxkPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxnPXtsZWZ0OiJzdGFydCIsY2VudGVyOiJtaWRkbGUiLHJpZ2h0OiJlbmQifSx2PXtsZWZ0OjAsY2VudGVyOi41LHJpZ2h0OjF9LG09L1t5emFmcG5ceGI1bWtNR1RQRVpZXS87ZnVuY3Rpb24geSh0KXtyZXR1cm4gdCYmdC5kdXJhdGlvbj4wfWZ1bmN0aW9uIHgodCl7dC5lYWNoKGZ1bmN0aW9uKHQpe2Quc3Ryb2tlKG4uc2VsZWN0KHRoaXMpLHQubGluZS5jb2xvcil9KS5lYWNoKGZ1bmN0aW9uKHQpe2QuZmlsbChuLnNlbGVjdCh0aGlzKSx0LmNvbG9yKX0pLnN0eWxlKCJzdHJva2Utd2lkdGgiLGZ1bmN0aW9uKHQpe3JldHVybiB0LmxpbmUud2lkdGh9KX1mdW5jdGlvbiBiKHQsZSxyKXt2YXIgbj10Ll9mdWxsTGF5b3V0LGk9YS5leHRlbmRGbGF0KHt0eXBlOiJsaW5lYXIiLHRpY2tzOiJvdXRzaWRlIixyYW5nZTpyLHNob3dsaW5lOiEwfSxlKSxvPXt0eXBlOiJsaW5lYXIiLF9pZDoieCIrZS5faWR9LHM9e2xldHRlcjoieCIsZm9udDpuLmZvbnQsbm9Ib3ZlcjohMCxub1RpY2tzb246ITB9O2Z1bmN0aW9uIGwodCxlKXtyZXR1cm4gYS5jb2VyY2UoaSxvLHAsdCxlKX1yZXR1cm4gaChpLG8sbCxzLG4pLGYoaSxvLGwscyksb31mdW5jdGlvbiBfKHQsZSl7cmV0dXJuInRyYW5zbGF0ZSgiK3QrIiwiK2UrIikifWZ1bmN0aW9uIHcodCxlLHIpe3JldHVybltNYXRoLm1pbihlL3Qud2lkdGgsci90LmhlaWdodCksdCxlKyJ4IityXX1mdW5jdGlvbiBrKHQsZSxyLGEpe3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJ0ZXh0Iiksbz1uLnNlbGVjdChpKTtyZXR1cm4gby50ZXh0KHQpLmF0dHIoIngiLDApLmF0dHIoInkiLDApLmF0dHIoInRleHQtYW5jaG9yIixyKS5hdHRyKCJkYXRhLXVuZm9ybWF0dGVkIix0KS5jYWxsKGMuY29udmVydFRvVHNwYW5zLGEpLmNhbGwocy5mb250LGUpLHMuYkJveChvLm5vZGUoKSl9ZnVuY3Rpb24gVCh0LGUscixuLGksbyl7dmFyIHM9Il9jYWNoZSIrZTt0W3NdJiZ0W3NdLmtleT09PWl8fCh0W3NdPXtrZXk6aSx2YWx1ZTpyfSk7dmFyIGw9YS5hZ2dOdW1zKG8sbnVsbCxbdFtzXS52YWx1ZSxuXSwyKTtyZXR1cm4gdFtzXS52YWx1ZT1sLGx9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGgpe3ZhciBmLHA9dC5fZnVsbExheW91dDt5KHIpJiZoJiYoZj1oKCkpLGEubWFrZVRyYWNlR3JvdXBzKHAuX2luZGljYXRvcmxheWVyLGUsInRyYWNlIikuZWFjaChmdW5jdGlvbihlKXt2YXIgaCxNLEEsUyxFLEw9ZVswXS50cmFjZSxDPW4uc2VsZWN0KHRoaXMpLFA9TC5faGFzR2F1Z2UsTz1MLl9pc0FuZ3VsYXIsej1MLl9pc0J1bGxldCxJPUwuZG9tYWluLEQ9e3c6cC5fc2l6ZS53KihJLnhbMV0tSS54WzBdKSxoOnAuX3NpemUuaCooSS55WzFdLUkueVswXSksbDpwLl9zaXplLmwrcC5fc2l6ZS53KkkueFswXSxyOnAuX3NpemUucitwLl9zaXplLncqKDEtSS54WzFdKSx0OnAuX3NpemUudCtwLl9zaXplLmgqKDEtSS55WzFdKSxiOnAuX3NpemUuYitwLl9zaXplLmgqSS55WzBdfSxSPUQubCtELncvMixGPUQudCtELmgvMixCPU1hdGgubWluKEQudy8yLEQuaCksTj1sLmlubmVyUmFkaXVzKkIsaj1MLmFsaWdufHwiY2VudGVyIjtpZihNPUYsUCl7aWYoTyYmKGg9UixNPUYrQi8yLEE9ZnVuY3Rpb24odCl7cmV0dXJuIGU9dCxyPS45Kk4sbj1NYXRoLnNxcnQoZS53aWR0aC8yKihlLndpZHRoLzIpK2UuaGVpZ2h0KmUuaGVpZ2h0KSxbci9uLGUscl07dmFyIGUscixufSkseil7dmFyIFY9bC5idWxsZXRQYWRkaW5nLFU9MS1sLmJ1bGxldE51bWJlckRvbWFpblNpemUrVjtoPUQubCsoVSsoMS1VKSp2W2pdKSpELncsQT1mdW5jdGlvbih0KXtyZXR1cm4gdyh0LChsLmJ1bGxldE51bWJlckRvbWFpblNpemUtVikqRC53LEQuaCl9fX1lbHNlIGg9RC5sK3Zbal0qRC53LEE9ZnVuY3Rpb24odCl7cmV0dXJuIHcodCxELncsRC5oKX07IWZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBvLGwsaCxmPXJbMF0udHJhY2UscD1pLm51bWJlcnNYLHg9aS5udW1iZXJzWSx3PWYuYWxpZ258fCJjZW50ZXIiLE09Z1t3XSxBPWkudHJhbnNpdGlvbk9wdHMsUz1pLm9uQ29tcGxldGUsRT1hLmVuc3VyZVNpbmdsZShlLCJnIiwibnVtYmVycyIpLEw9W107Zi5faGFzTnVtYmVyJiZMLnB1c2goIm51bWJlciIpO2YuX2hhc0RlbHRhJiYoTC5wdXNoKCJkZWx0YSIpLCJsZWZ0Ij09PWYuZGVsdGEucG9zaXRpb24mJkwucmV2ZXJzZSgpKTt2YXIgQz1FLnNlbGVjdEFsbCgidGV4dCIpLmRhdGEoTCk7ZnVuY3Rpb24gUChlLHIsbixhKXtpZighZS5tYXRjaCgicyIpfHxuPj0wPT1hPj0wfHxyKG4pLnNsaWNlKC0xKS5tYXRjaChtKXx8cihhKS5zbGljZSgtMSkubWF0Y2gobSkpcmV0dXJuIHI7dmFyIGk9ZS5zbGljZSgpLnJlcGxhY2UoInMiLCJmIikucmVwbGFjZSgvXGQrLyxmdW5jdGlvbih0KXtyZXR1cm4gcGFyc2VJbnQodCktMX0pLG89Yih0LHt0aWNrZm9ybWF0Oml9KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguYWJzKHQpPDE/dS50aWNrVGV4dChvLHQpLnRleHQ6cih0KX19Qy5lbnRlcigpLmFwcGVuZCgidGV4dCIpLEMuYXR0cigidGV4dC1hbmNob3IiLGZ1bmN0aW9uKCl7cmV0dXJuIE19KS5hdHRyKCJjbGFzcyIsZnVuY3Rpb24odCl7cmV0dXJuIHR9KS5hdHRyKCJ4IixudWxsKS5hdHRyKCJ5IixudWxsKS5hdHRyKCJkeCIsbnVsbCkuYXR0cigiZHkiLG51bGwpLEMuZXhpdCgpLnJlbW92ZSgpO3ZhciBPLHo9Zi5tb2RlK2YuYWxpZ247Zi5faGFzRGVsdGEmJihPPWZ1bmN0aW9uKCl7dmFyIGU9Yih0LHt0aWNrZm9ybWF0OmYuZGVsdGEudmFsdWVmb3JtYXR9LGYuX3JhbmdlKTtlLnNldFNjYWxlKCksdS5wcmVwVGlja3MoZSk7dmFyIGE9ZnVuY3Rpb24odCl7cmV0dXJuIHUudGlja1RleHQoZSx0KS50ZXh0fSxpPWZ1bmN0aW9uKHQpe3ZhciBlPWYuZGVsdGEucmVsYXRpdmU/dC5yZWxhdGl2ZURlbHRhOnQuZGVsdGE7cmV0dXJuIGV9LG89ZnVuY3Rpb24odCxlKXtyZXR1cm4gMD09PXR8fCJudW1iZXIiIT10eXBlb2YgdHx8aXNOYU4odCk/Ii0iOih0PjA/Zi5kZWx0YS5pbmNyZWFzaW5nLnN5bWJvbDpmLmRlbHRhLmRlY3JlYXNpbmcuc3ltYm9sKStlKHQpfSxoPWZ1bmN0aW9uKHQpe3JldHVybiB0LmRlbHRhPj0wP2YuZGVsdGEuaW5jcmVhc2luZy5jb2xvcjpmLmRlbHRhLmRlY3JlYXNpbmcuY29sb3J9O3ZvaWQgMD09PWYuX2RlbHRhTGFzdFZhbHVlJiYoZi5fZGVsdGFMYXN0VmFsdWU9aShyWzBdKSk7dmFyIHA9RS5zZWxlY3QoInRleHQuZGVsdGEiKTtmdW5jdGlvbiBnKCl7cC50ZXh0KG8oaShyWzBdKSxhKSkuY2FsbChkLmZpbGwsaChyWzBdKSkuY2FsbChjLmNvbnZlcnRUb1RzcGFucyx0KX1wLmNhbGwocy5mb250LGYuZGVsdGEuZm9udCkuY2FsbChkLmZpbGwsaCh7ZGVsdGE6Zi5fZGVsdGFMYXN0VmFsdWV9KSkseShBKT9wLnRyYW5zaXRpb24oKS5kdXJhdGlvbihBLmR1cmF0aW9uKS5lYXNlKEEuZWFzaW5nKS50d2VlbigidGV4dCIsZnVuY3Rpb24oKXt2YXIgdD1uLnNlbGVjdCh0aGlzKSxlPWkoclswXSkscz1mLl9kZWx0YUxhc3RWYWx1ZSxsPVAoZi5kZWx0YS52YWx1ZWZvcm1hdCxhLHMsZSksYz1uLmludGVycG9sYXRlTnVtYmVyKHMsZSk7cmV0dXJuIGYuX2RlbHRhTGFzdFZhbHVlPWUsZnVuY3Rpb24oZSl7dC50ZXh0KG8oYyhlKSxsKSksdC5jYWxsKGQuZmlsbCxoKHtkZWx0YTpjKGUpfSkpfX0pLmVhY2goImVuZCIsZnVuY3Rpb24oKXtnKCksUyYmUygpfSkuZWFjaCgiaW50ZXJydXB0IixmdW5jdGlvbigpe2coKSxTJiZTKCl9KTpnKCk7cmV0dXJuIGw9ayhvKGkoclswXSksYSksZi5kZWx0YS5mb250LE0sdCkscH0oKSx6Kz1mLmRlbHRhLnBvc2l0aW9uK2YuZGVsdGEuZm9udC5zaXplK2YuZGVsdGEuZm9udC5mYW1pbHkrZi5kZWx0YS52YWx1ZWZvcm1hdCx6Kz1mLmRlbHRhLmluY3JlYXNpbmcuc3ltYm9sK2YuZGVsdGEuZGVjcmVhc2luZy5zeW1ib2wsaD1sKTtmLl9oYXNOdW1iZXImJighZnVuY3Rpb24oKXt2YXIgZT1iKHQse3RpY2tmb3JtYXQ6Zi5udW1iZXIudmFsdWVmb3JtYXR9LGYuX3JhbmdlKTtlLnNldFNjYWxlKCksdS5wcmVwVGlja3MoZSk7dmFyIGE9ZnVuY3Rpb24odCl7cmV0dXJuIHUudGlja1RleHQoZSx0KS50ZXh0fSxpPWYubnVtYmVyLnN1ZmZpeCxsPWYubnVtYmVyLnByZWZpeCxoPUUuc2VsZWN0KCJ0ZXh0Lm51bWJlciIpO2Z1bmN0aW9uIHAoKXt2YXIgZT0ibnVtYmVyIj09dHlwZW9mIHJbMF0ueT9sK2EoclswXS55KStpOiItIjtoLnRleHQoZSkuY2FsbChzLmZvbnQsZi5udW1iZXIuZm9udCkuY2FsbChjLmNvbnZlcnRUb1RzcGFucyx0KX15KEEpP2gudHJhbnNpdGlvbigpLmR1cmF0aW9uKEEuZHVyYXRpb24pLmVhc2UoQS5lYXNpbmcpLmVhY2goImVuZCIsZnVuY3Rpb24oKXtwKCksUyYmUygpfSkuZWFjaCgiaW50ZXJydXB0IixmdW5jdGlvbigpe3AoKSxTJiZTKCl9KS5hdHRyVHdlZW4oInRleHQiLGZ1bmN0aW9uKCl7dmFyIHQ9bi5zZWxlY3QodGhpcyksZT1uLmludGVycG9sYXRlTnVtYmVyKHJbMF0ubGFzdFksclswXS55KTtmLl9sYXN0VmFsdWU9clswXS55O3ZhciBvPVAoZi5udW1iZXIudmFsdWVmb3JtYXQsYSxyWzBdLmxhc3RZLHJbMF0ueSk7cmV0dXJuIGZ1bmN0aW9uKHIpe3QudGV4dChsK28oZShyKSkraSl9fSk6cCgpO289ayhsK2EoclswXS55KStpLGYubnVtYmVyLmZvbnQsTSx0KX0oKSx6Kz1mLm51bWJlci5mb250LnNpemUrZi5udW1iZXIuZm9udC5mYW1pbHkrZi5udW1iZXIudmFsdWVmb3JtYXQrZi5udW1iZXIuc3VmZml4K2YubnVtYmVyLnByZWZpeCxoPW8pO2lmKGYuX2hhc0RlbHRhJiZmLl9oYXNOdW1iZXIpe3ZhciBJLEQsUj1bKG8ubGVmdCtvLnJpZ2h0KS8yLChvLnRvcCtvLmJvdHRvbSkvMl0sRj1bKGwubGVmdCtsLnJpZ2h0KS8yLChsLnRvcCtsLmJvdHRvbSkvMl0sQj0uNzUqZi5kZWx0YS5mb250LnNpemU7ImxlZnQiPT09Zi5kZWx0YS5wb3NpdGlvbiYmKEk9VChmLCJkZWx0YVBvcyIsMCwtMSooby53aWR0aCp2W2YuYWxpZ25dK2wud2lkdGgqKDEtdltmLmFsaWduXSkrQikseixNYXRoLm1pbiksRD1SWzFdLUZbMV0saD17d2lkdGg6by53aWR0aCtsLndpZHRoK0IsaGVpZ2h0Ok1hdGgubWF4KG8uaGVpZ2h0LGwuaGVpZ2h0KSxsZWZ0OmwubGVmdCtJLHJpZ2h0Om8ucmlnaHQsdG9wOk1hdGgubWluKG8udG9wLGwudG9wK0QpLGJvdHRvbTpNYXRoLm1heChvLmJvdHRvbSxsLmJvdHRvbStEKX0pLCJyaWdodCI9PT1mLmRlbHRhLnBvc2l0aW9uJiYoST1UKGYsImRlbHRhUG9zIiwwLG8ud2lkdGgqKDEtdltmLmFsaWduXSkrbC53aWR0aCp2W2YuYWxpZ25dK0IseixNYXRoLm1heCksRD1SWzFdLUZbMV0saD17d2lkdGg6by53aWR0aCtsLndpZHRoK0IsaGVpZ2h0Ok1hdGgubWF4KG8uaGVpZ2h0LGwuaGVpZ2h0KSxsZWZ0Om8ubGVmdCxyaWdodDpsLnJpZ2h0K0ksdG9wOk1hdGgubWluKG8udG9wLGwudG9wK0QpLGJvdHRvbTpNYXRoLm1heChvLmJvdHRvbSxsLmJvdHRvbStEKX0pLCJib3R0b20iPT09Zi5kZWx0YS5wb3NpdGlvbiYmKEk9bnVsbCxEPWwuaGVpZ2h0LGg9e3dpZHRoOk1hdGgubWF4KG8ud2lkdGgsbC53aWR0aCksaGVpZ2h0Om8uaGVpZ2h0K2wuaGVpZ2h0LGxlZnQ6TWF0aC5taW4oby5sZWZ0LGwubGVmdCkscmlnaHQ6TWF0aC5tYXgoby5yaWdodCxsLnJpZ2h0KSx0b3A6by5ib3R0b20tby5oZWlnaHQsYm90dG9tOm8uYm90dG9tK2wuaGVpZ2h0fSksInRvcCI9PT1mLmRlbHRhLnBvc2l0aW9uJiYoST1udWxsLEQ9by50b3AsaD17d2lkdGg6TWF0aC5tYXgoby53aWR0aCxsLndpZHRoKSxoZWlnaHQ6by5oZWlnaHQrbC5oZWlnaHQsbGVmdDpNYXRoLm1pbihvLmxlZnQsbC5sZWZ0KSxyaWdodDpNYXRoLm1heChvLnJpZ2h0LGwucmlnaHQpLHRvcDpvLmJvdHRvbS1vLmhlaWdodC1sLmhlaWdodCxib3R0b206by5ib3R0b219KSxPLmF0dHIoe2R4OkksZHk6RH0pfShmLl9oYXNOdW1iZXJ8fGYuX2hhc0RlbHRhKSYmRS5hdHRyKCJ0cmFuc2Zvcm0iLGZ1bmN0aW9uKCl7dmFyIHQ9aS5udW1iZXJzU2NhbGVyKGgpO3orPXRbMl07dmFyIGUscj1UKGYsIm51bWJlcnNTY2FsZSIsMSx0WzBdLHosTWF0aC5taW4pO2YuX3NjYWxlTnVtYmVyc3x8KHI9MSksZT1mLl9pc0FuZ3VsYXI/eC1yKmguYm90dG9tOngtciooaC50b3AraC5ib3R0b20pLzIsZi5fbnVtYmVyc1RvcD1yKmgudG9wK2U7dmFyIG49aFt3XTsiY2VudGVyIj09PXcmJihuPShoLmxlZnQraC5yaWdodCkvMik7dmFyIGE9cC1yKm47cmV0dXJuIF8oYT1UKGYsIm51bWJlcnNUcmFuc2xhdGUiLDAsYSx6LE1hdGgubWF4KSxlKSsiIHNjYWxlKCIrcisiKSJ9KX0odCxDLGUse251bWJlcnNYOmgsbnVtYmVyc1k6TSxudW1iZXJzU2NhbGVyOkEsdHJhbnNpdGlvbk9wdHM6cixvbkNvbXBsZXRlOmZ9KSxQJiYoUz17cmFuZ2U6TC5nYXVnZS5heGlzLnJhbmdlLGNvbG9yOkwuZ2F1Z2UuYmdjb2xvcixsaW5lOntjb2xvcjpMLmdhdWdlLmJvcmRlcmNvbG9yLHdpZHRoOjB9LHRoaWNrbmVzczoxfSxFPXtyYW5nZTpMLmdhdWdlLmF4aXMucmFuZ2UsY29sb3I6InJnYmEoMCwgMCwgMCwgMCkiLGxpbmU6e2NvbG9yOkwuZ2F1Z2UuYm9yZGVyY29sb3Isd2lkdGg6TC5nYXVnZS5ib3JkZXJ3aWR0aH0sdGhpY2tuZXNzOjF9KTt2YXIgcT1DLnNlbGVjdEFsbCgiZy5hbmd1bGFyIikuZGF0YShPP2U6W10pO3EuZXhpdCgpLnJlbW92ZSgpO3ZhciBIPUMuc2VsZWN0QWxsKCJnLmFuZ3VsYXJheGlzIikuZGF0YShPP2U6W10pO0guZXhpdCgpLnJlbW92ZSgpLE8mJmZ1bmN0aW9uKHQsZSxyLGEpe3ZhciBzLGwsYyxoLGY9clswXS50cmFjZSxwPWEuc2l6ZSxkPWEucmFkaXVzLGc9YS5pbm5lclJhZGl1cyx2PWEuZ2F1Z2VCZyxtPWEuZ2F1Z2VPdXRsaW5lLHc9W3AubCtwLncvMixwLnQrcC5oLzIrZC8yXSxrPWEuZ2F1Z2UsVD1hLmxheWVyLE09YS50cmFuc2l0aW9uT3B0cyxBPWEub25Db21wbGV0ZSxTPU1hdGguUEkvMjtmdW5jdGlvbiBFKHQpe3ZhciBlPWYuZ2F1Z2UuYXhpcy5yYW5nZVswXSxyPWYuZ2F1Z2UuYXhpcy5yYW5nZVsxXSxuPSh0LWUpLyhyLWUpKk1hdGguUEktUztyZXR1cm4gbjwtUz8tUzpuPlM/UzpufWZ1bmN0aW9uIEwodCl7cmV0dXJuIG4uc3ZnLmFyYygpLmlubmVyUmFkaXVzKChnK2QpLzItdC8yKihkLWcpKS5vdXRlclJhZGl1cygoZytkKS8yK3QvMiooZC1nKSkuc3RhcnRBbmdsZSgtUyl9ZnVuY3Rpb24gQyh0KXt0LmF0dHIoImQiLGZ1bmN0aW9uKHQpe3JldHVybiBMKHQudGhpY2tuZXNzKS5zdGFydEFuZ2xlKEUodC5yYW5nZVswXSkpLmVuZEFuZ2xlKEUodC5yYW5nZVsxXSkpKCl9KX1rLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgiYW5ndWxhciIsITApLGsuYXR0cigidHJhbnNmb3JtIixfKHdbMF0sd1sxXSkpLFQuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJhbmd1bGFyYXhpcyIsITApLmNsYXNzZWQoImNyaXNwIiwhMCksVC5zZWxlY3RBbGwoImcueGFuZ3VsYXJheGlzdGljayxwYXRoLHRleHQiKS5yZW1vdmUoKSwocz1iKHQsZi5nYXVnZS5heGlzKSkudHlwZT0ibGluZWFyIixzLnJhbmdlPWYuZ2F1Z2UuYXhpcy5yYW5nZSxzLl9pZD0ieGFuZ3VsYXJheGlzIixzLnNldFNjYWxlKCk7dmFyIFA9ZnVuY3Rpb24odCl7cmV0dXJuKHMucmFuZ2VbMF0tdC54KS8ocy5yYW5nZVsxXS1zLnJhbmdlWzBdKSpNYXRoLlBJK01hdGguUEl9LE89e30sej11Lm1ha2VMYWJlbEZucyhzLDApLmxhYmVsU3RhbmRvZmY7Ty54Rm49ZnVuY3Rpb24odCl7dmFyIGU9UCh0KTtyZXR1cm4gTWF0aC5jb3MoZSkqen0sTy55Rm49ZnVuY3Rpb24odCl7dmFyIGU9UCh0KSxyPU1hdGguc2luKGUpPjA/LjI6MTtyZXR1cm4tTWF0aC5zaW4oZSkqKHordC5mb250U2l6ZSpyKStNYXRoLmFicyhNYXRoLmNvcyhlKSkqKHQuZm9udFNpemUqbyl9LE8uYW5jaG9yRm49ZnVuY3Rpb24odCl7dmFyIGU9UCh0KSxyPU1hdGguY29zKGUpO3JldHVybiBNYXRoLmFicyhyKTwuMT8ibWlkZGxlIjpyPjA/InN0YXJ0IjoiZW5kIn0sTy5oZWlnaHRGbj1mdW5jdGlvbih0LGUscil7dmFyIG49UCh0KTtyZXR1cm4tLjUqKDErTWF0aC5zaW4obikpKnJ9O3ZhciBJPWZ1bmN0aW9uKHQpe3JldHVybiBfKHdbMF0rZCpNYXRoLmNvcyh0KSx3WzFdLWQqTWF0aC5zaW4odCkpfTtjPWZ1bmN0aW9uKHQpe3JldHVybiBJKFAodCkpfTtpZihsPXUuY2FsY1RpY2tzKHMpLGg9dS5nZXRUaWNrU2lnbnMocylbMl0scy52aXNpYmxlKXtoPSJpbnNpZGUiPT09cy50aWNrcz8tMToxO3ZhciBEPShzLmxpbmV3aWR0aHx8MSkvMjt1LmRyYXdUaWNrcyh0LHMse3ZhbHM6bCxsYXllcjpULHBhdGg6Ik0iK2gqRCsiLDBoIitoKnMudGlja2xlbix0cmFuc0ZuOmZ1bmN0aW9uKHQpe3ZhciBlPVAodCk7cmV0dXJuIEkoZSkrInJvdGF0ZSgiKy1pKGUpKyIpIn19KSx1LmRyYXdMYWJlbHModCxzLHt2YWxzOmwsbGF5ZXI6VCx0cmFuc0ZuOmMsbGFiZWxGbnM6T30pfXZhciBSPVt2XS5jb25jYXQoZi5nYXVnZS5zdGVwcyksRj1rLnNlbGVjdEFsbCgiZy5iZy1hcmMiKS5kYXRhKFIpO0YuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJiZy1hcmMiLCEwKS5hcHBlbmQoInBhdGgiKSxGLnNlbGVjdCgicGF0aCIpLmNhbGwoQykuY2FsbCh4KSxGLmV4aXQoKS5yZW1vdmUoKTt2YXIgQj1MKGYuZ2F1Z2UuYmFyLnRoaWNrbmVzcyksTj1rLnNlbGVjdEFsbCgiZy52YWx1ZS1hcmMiKS5kYXRhKFtmLmdhdWdlLmJhcl0pO04uZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJ2YWx1ZS1hcmMiLCEwKS5hcHBlbmQoInBhdGgiKTt2YXIgaj1OLnNlbGVjdCgicGF0aCIpO3koTSk/KGoudHJhbnNpdGlvbigpLmR1cmF0aW9uKE0uZHVyYXRpb24pLmVhc2UoTS5lYXNpbmcpLmVhY2goImVuZCIsZnVuY3Rpb24oKXtBJiZBKCl9KS5lYWNoKCJpbnRlcnJ1cHQiLGZ1bmN0aW9uKCl7QSYmQSgpfSkuYXR0clR3ZWVuKCJkIiwoVj1CLFU9RShyWzBdLmxhc3RZKSxxPUUoclswXS55KSxmdW5jdGlvbigpe3ZhciB0PW4uaW50ZXJwb2xhdGUoVSxxKTtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIFYuZW5kQW5nbGUodChlKSkoKX19KSksZi5fbGFzdFZhbHVlPXJbMF0ueSk6ai5hdHRyKCJkIiwibnVtYmVyIj09dHlwZW9mIHJbMF0ueT9CLmVuZEFuZ2xlKEUoclswXS55KSk6Ik0wLDBaIik7dmFyIFYsVSxxO2ouY2FsbCh4KSxOLmV4aXQoKS5yZW1vdmUoKSxSPVtdO3ZhciBIPWYuZ2F1Z2UudGhyZXNob2xkLnZhbHVlO0gmJlIucHVzaCh7cmFuZ2U6W0gsSF0sY29sb3I6Zi5nYXVnZS50aHJlc2hvbGQuY29sb3IsbGluZTp7Y29sb3I6Zi5nYXVnZS50aHJlc2hvbGQubGluZS5jb2xvcix3aWR0aDpmLmdhdWdlLnRocmVzaG9sZC5saW5lLndpZHRofSx0aGlja25lc3M6Zi5nYXVnZS50aHJlc2hvbGQudGhpY2tuZXNzfSk7dmFyIEc9ay5zZWxlY3RBbGwoImcudGhyZXNob2xkLWFyYyIpLmRhdGEoUik7Ry5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoInRocmVzaG9sZC1hcmMiLCEwKS5hcHBlbmQoInBhdGgiKSxHLnNlbGVjdCgicGF0aCIpLmNhbGwoQykuY2FsbCh4KSxHLmV4aXQoKS5yZW1vdmUoKTt2YXIgWT1rLnNlbGVjdEFsbCgiZy5nYXVnZS1vdXRsaW5lIikuZGF0YShbbV0pO1kuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJnYXVnZS1vdXRsaW5lIiwhMCkuYXBwZW5kKCJwYXRoIiksWS5zZWxlY3QoInBhdGgiKS5jYWxsKEMpLmNhbGwoeCksWS5leGl0KCkucmVtb3ZlKCl9KHQsMCxlLHtyYWRpdXM6Qixpbm5lclJhZGl1czpOLGdhdWdlOnEsbGF5ZXI6SCxzaXplOkQsZ2F1Z2VCZzpTLGdhdWdlT3V0bGluZTpFLHRyYW5zaXRpb25PcHRzOnIsb25Db21wbGV0ZTpmfSk7dmFyIEc9Qy5zZWxlY3RBbGwoImcuYnVsbGV0IikuZGF0YSh6P2U6W10pO0cuZXhpdCgpLnJlbW92ZSgpO3ZhciBZPUMuc2VsZWN0QWxsKCJnLmJ1bGxldGF4aXMiKS5kYXRhKHo/ZTpbXSk7WS5leGl0KCkucmVtb3ZlKCkseiYmZnVuY3Rpb24odCxlLHIsbil7dmFyIGEsaSxvLHMsYyxoPXJbMF0udHJhY2UsZj1uLmdhdWdlLHA9bi5sYXllcixnPW4uZ2F1Z2VCZyx2PW4uZ2F1Z2VPdXRsaW5lLG09bi5zaXplLF89aC5kb21haW4sdz1uLnRyYW5zaXRpb25PcHRzLGs9bi5vbkNvbXBsZXRlO2YuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJidWxsZXQiLCEwKSxmLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK20ubCsiLCAiK20udCsiKSIpLHAuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJidWxsZXRheGlzIiwhMCkuY2xhc3NlZCgiY3Jpc3AiLCEwKSxwLnNlbGVjdEFsbCgiZy54YnVsbGV0YXhpc3RpY2sscGF0aCx0ZXh0IikucmVtb3ZlKCk7dmFyIFQ9bS5oLE09aC5nYXVnZS5iYXIudGhpY2tuZXNzKlQsQT1fLnhbMF0sUz1fLnhbMF0rKF8ueFsxXS1fLnhbMF0pKihoLl9oYXNOdW1iZXJ8fGguX2hhc0RlbHRhPzEtbC5idWxsZXROdW1iZXJEb21haW5TaXplOjEpOyhhPWIodCxoLmdhdWdlLmF4aXMpKS5faWQ9InhidWxsZXRheGlzIixhLmRvbWFpbj1bQSxTXSxhLnNldFNjYWxlKCksaT11LmNhbGNUaWNrcyhhKSxvPXUubWFrZVRyYW5zRm4oYSkscz11LmdldFRpY2tTaWducyhhKVsyXSxjPW0udCttLmgsYS52aXNpYmxlJiYodS5kcmF3VGlja3ModCxhLHt2YWxzOiJpbnNpZGUiPT09YS50aWNrcz91LmNsaXBFbmRzKGEsaSk6aSxsYXllcjpwLHBhdGg6dS5tYWtlVGlja1BhdGgoYSxjLHMpLHRyYW5zRm46b30pLHUuZHJhd0xhYmVscyh0LGEse3ZhbHM6aSxsYXllcjpwLHRyYW5zRm46byxsYWJlbEZuczp1Lm1ha2VMYWJlbEZucyhhLGMpfSkpO2Z1bmN0aW9uIEUodCl7dC5hdHRyKCJ3aWR0aCIsZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWF4KDAsYS5jMnAodC5yYW5nZVsxXSktYS5jMnAodC5yYW5nZVswXSkpfSkuYXR0cigieCIsZnVuY3Rpb24odCl7cmV0dXJuIGEuYzJwKHQucmFuZ2VbMF0pfSkuYXR0cigieSIsZnVuY3Rpb24odCl7cmV0dXJuLjUqKDEtdC50aGlja25lc3MpKlR9KS5hdHRyKCJoZWlnaHQiLGZ1bmN0aW9uKHQpe3JldHVybiB0LnRoaWNrbmVzcypUfSl9dmFyIEw9W2ddLmNvbmNhdChoLmdhdWdlLnN0ZXBzKSxDPWYuc2VsZWN0QWxsKCJnLmJnLWJ1bGxldCIpLmRhdGEoTCk7Qy5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoImJnLWJ1bGxldCIsITApLmFwcGVuZCgicmVjdCIpLEMuc2VsZWN0KCJyZWN0IikuY2FsbChFKS5jYWxsKHgpLEMuZXhpdCgpLnJlbW92ZSgpO3ZhciBQPWYuc2VsZWN0QWxsKCJnLnZhbHVlLWJ1bGxldCIpLmRhdGEoW2guZ2F1Z2UuYmFyXSk7UC5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoInZhbHVlLWJ1bGxldCIsITApLmFwcGVuZCgicmVjdCIpLFAuc2VsZWN0KCJyZWN0IikuYXR0cigiaGVpZ2h0IixNKS5hdHRyKCJ5IiwoVC1NKS8yKS5jYWxsKHgpLHkodyk/UC5zZWxlY3QoInJlY3QiKS50cmFuc2l0aW9uKCkuZHVyYXRpb24ody5kdXJhdGlvbikuZWFzZSh3LmVhc2luZykuZWFjaCgiZW5kIixmdW5jdGlvbigpe2smJmsoKX0pLmVhY2goImludGVycnVwdCIsZnVuY3Rpb24oKXtrJiZrKCl9KS5hdHRyKCJ3aWR0aCIsTWF0aC5tYXgoMCxhLmMycChNYXRoLm1pbihoLmdhdWdlLmF4aXMucmFuZ2VbMV0sclswXS55KSkpKTpQLnNlbGVjdCgicmVjdCIpLmF0dHIoIndpZHRoIiwibnVtYmVyIj09dHlwZW9mIHJbMF0ueT9NYXRoLm1heCgwLGEuYzJwKE1hdGgubWluKGguZ2F1Z2UuYXhpcy5yYW5nZVsxXSxyWzBdLnkpKSk6MCk7UC5leGl0KCkucmVtb3ZlKCk7dmFyIE89ci5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gaC5nYXVnZS50aHJlc2hvbGQudmFsdWV9KSx6PWYuc2VsZWN0QWxsKCJnLnRocmVzaG9sZC1idWxsZXQiKS5kYXRhKE8pO3ouZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJ0aHJlc2hvbGQtYnVsbGV0IiwhMCkuYXBwZW5kKCJsaW5lIiksei5zZWxlY3QoImxpbmUiKS5hdHRyKCJ4MSIsYS5jMnAoaC5nYXVnZS50aHJlc2hvbGQudmFsdWUpKS5hdHRyKCJ4MiIsYS5jMnAoaC5nYXVnZS50aHJlc2hvbGQudmFsdWUpKS5hdHRyKCJ5MSIsKDEtaC5nYXVnZS50aHJlc2hvbGQudGhpY2tuZXNzKS8yKlQpLmF0dHIoInkyIiwoMS0oMS1oLmdhdWdlLnRocmVzaG9sZC50aGlja25lc3MpLzIpKlQpLmNhbGwoZC5zdHJva2UsaC5nYXVnZS50aHJlc2hvbGQubGluZS5jb2xvcikuc3R5bGUoInN0cm9rZS13aWR0aCIsaC5nYXVnZS50aHJlc2hvbGQubGluZS53aWR0aCksei5leGl0KCkucmVtb3ZlKCk7dmFyIEk9Zi5zZWxlY3RBbGwoImcuZ2F1Z2Utb3V0bGluZSIpLmRhdGEoW3ZdKTtJLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgiZ2F1Z2Utb3V0bGluZSIsITApLmFwcGVuZCgicmVjdCIpLEkuc2VsZWN0KCJyZWN0IikuY2FsbChFKS5jYWxsKHgpLEkuZXhpdCgpLnJlbW92ZSgpfSh0LDAsZSx7Z2F1Z2U6RyxsYXllcjpZLHNpemU6RCxnYXVnZUJnOlMsZ2F1Z2VPdXRsaW5lOkUsdHJhbnNpdGlvbk9wdHM6cixvbkNvbXBsZXRlOmZ9KTt2YXIgVz1DLnNlbGVjdEFsbCgidGV4dC50aXRsZSIpLmRhdGEoZSk7Vy5leGl0KCkucmVtb3ZlKCksVy5lbnRlcigpLmFwcGVuZCgidGV4dCIpLmNsYXNzZWQoInRpdGxlIiwhMCksVy5hdHRyKCJ0ZXh0LWFuY2hvciIsZnVuY3Rpb24oKXtyZXR1cm4gej9nLnJpZ2h0OmdbTC50aXRsZS5hbGlnbl19KS50ZXh0KEwudGl0bGUudGV4dCkuY2FsbChzLmZvbnQsTC50aXRsZS5mb250KS5jYWxsKGMuY29udmVydFRvVHNwYW5zLHQpLFcuYXR0cigidHJhbnNmb3JtIixmdW5jdGlvbigpe3ZhciB0LGU9RC5sK0Qudyp2W0wudGl0bGUuYWxpZ25dLHI9bC50aXRsZVBhZGRpbmcsbj1zLmJCb3goVy5ub2RlKCkpO2lmKFApe2lmKE8paWYoTC5nYXVnZS5heGlzLnZpc2libGUpdD1zLmJCb3goSC5ub2RlKCkpLnRvcC1yLW4uYm90dG9tO2Vsc2UgdD1ELnQrRC5oLzItQi8yLW4uYm90dG9tLXI7eiYmKHQ9TS0obi50b3Arbi5ib3R0b20pLzIsZT1ELmwtbC5idWxsZXRQYWRkaW5nKkQudyl9ZWxzZSB0PUwuX251bWJlcnNUb3Atci1uLmJvdHRvbTtyZXR1cm4gXyhlLHQpfSl9KX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTkyLCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjYxMywiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCI6Njg2LCIuLi8uLi9saWIiOjcxNywiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo3NDEsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo3NjUsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2RlZmF1bHRzIjo3NjcsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9sYXlvdXRfYXR0cmlidXRlcyI6Nzc3LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vcG9zaXRpb25fZGVmYXVsdHMiOjc4MCwiLi9jb25zdGFudHMiOjEwNTIsZDM6MTY1fV0sMTA1NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxpPXQoIi4uL21lc2gzZC9hdHRyaWJ1dGVzIiksbz10KCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxsPXQoIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbDt2YXIgYz1lLmV4cG9ydHM9bChzKHt4Ont2YWxUeXBlOiJkYXRhX2FycmF5In0seTp7dmFsVHlwZToiZGF0YV9hcnJheSJ9LHo6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifSx2YWx1ZTp7dmFsVHlwZToiZGF0YV9hcnJheSJ9LGlzb21pbjp7dmFsVHlwZToibnVtYmVyIn0saXNvbWF4Ont2YWxUeXBlOiJudW1iZXIifSxzdXJmYWNlOntzaG93Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfSxjb3VudDp7dmFsVHlwZToiaW50ZWdlciIsZGZsdDoyLG1pbjoxfSxmaWxsOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MX0scGF0dGVybjp7dmFsVHlwZToiZmxhZ2xpc3QiLGZsYWdzOlsiQSIsIkIiLCJDIiwiRCIsIkUiXSxleHRyYXM6WyJhbGwiLCJvZGQiLCJldmVuIl0sZGZsdDoiYWxsIn19LHNwYWNlZnJhbWU6e3Nob3c6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LGZpbGw6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDouMTV9fSxzbGljZXM6e3g6e3Nob3c6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LGxvY2F0aW9uczp7dmFsVHlwZToiZGF0YV9hcnJheSIsZGZsdDpbXX0sZmlsbDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0OjF9fSx5OntzaG93Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxsb2NhdGlvbnM6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGRmbHQ6W119LGZpbGw6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxfX0sejp7c2hvdzp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sbG9jYXRpb25zOnt2YWxUeXBlOiJkYXRhX2FycmF5IixkZmx0OltdfSxmaWxsOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MX19fSxjYXBzOnt4OntzaG93Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfSxmaWxsOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MX19LHk6e3Nob3c6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITB9LGZpbGw6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxfX0sejp7c2hvdzp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMH0sZmlsbDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0OjF9fX0sdGV4dDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGFycmF5T2s6ITB9LGhvdmVydGV4dDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGFycmF5T2s6ITB9LGhvdmVydGVtcGxhdGU6YSgpLHNob3dsZWdlbmQ6cyh7fSxvLnNob3dsZWdlbmQse2RmbHQ6ITF9KX0sbigiIix7Y29sb3JBdHRyOiJgdmFsdWVgIixzaG93U2NhbGVEZmx0OiEwLGVkaXRUeXBlT3ZlcnJpZGU6ImNhbGMifSkse29wYWNpdHk6aS5vcGFjaXR5LGxpZ2h0cG9zaXRpb246aS5saWdodHBvc2l0aW9uLGxpZ2h0aW5nOmkubGlnaHRpbmcsZmxhdHNoYWRpbmc6aS5mbGF0c2hhZGluZyxjb250b3VyOmkuY29udG91cixob3ZlcmluZm86cyh7fSxvLmhvdmVyaW5mbyl9KSwiY2FsYyIsIm5lc3RlZCIpO2MuZmxhdHNoYWRpbmcuZGZsdD0hMCxjLmxpZ2h0aW5nLmZhY2Vub3JtYWxzZXBzaWxvbi5kZmx0PTAsYy54LmVkaXRUeXBlPWMueS5lZGl0VHlwZT1jLnouZWRpdFR5cGU9Yy52YWx1ZS5lZGl0VHlwZT0iY2FsYytjbGVhckF4aXNUeXBlcyIsYy50cmFuc2Zvcm1zPXZvaWQgMH0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6NTk5LCIuLi8uLi9saWIvZXh0ZW5kIjo3MDgsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjc0OCwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6NzYyLCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo4NDEsIi4uL21lc2gzZC9hdHRyaWJ1dGVzIjoxMDYxfV0sMTA1NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY2FsYyIpLGE9dCgiLi4vc3RyZWFtdHViZS9jYWxjIikucHJvY2Vzc0dyaWQsaT10KCIuLi9zdHJlYW10dWJlL2NhbGMiKS5maWx0ZXI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZS5fbGVuPU1hdGgubWluKGUueC5sZW5ndGgsZS55Lmxlbmd0aCxlLnoubGVuZ3RoLGUudmFsdWUubGVuZ3RoKSxlLl94PWkoZS54LGUuX2xlbiksZS5feT1pKGUueSxlLl9sZW4pLGUuX3o9aShlLnosZS5fbGVuKSxlLl92YWx1ZT1pKGUudmFsdWUsZS5fbGVuKTt2YXIgcj1hKGUpO2UuX2dyaWRGaWxsPXIuZmlsbCxlLl9Ycz1yLlhzLGUuX1lzPXIuWXMsZS5fWnM9ci5acyxlLl9sZW49ci5sZW47Zm9yKHZhciBvPTEvMCxzPS0xLzAsbD0wO2w8ZS5fbGVuO2wrKyl7dmFyIGM9ZS5fdmFsdWVbbF07bz1NYXRoLm1pbihvLGMpLHM9TWF0aC5tYXgocyxjKX1lLl9taW5WYWx1ZXM9byxlLl9tYXhWYWx1ZXM9cyxlLl92TWluPXZvaWQgMD09PWUuaXNvbWlufHxudWxsPT09ZS5pc29taW4/bzplLmlzb21pbixlLl92TWF4PXZvaWQgMD09PWUuaXNvbWF4fHxudWxsPT09ZS5pc29taW4/czplLmlzb21heCxuKHQsZSx7dmFsczpbZS5fdk1pbixlLl92TWF4XSxjb250YWluZXJTdHI6IiIsY0xldHRlcjoiYyJ9KX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiOjYwMCwiLi4vc3RyZWFtdHViZS9jYWxjIjoxMjI3fV0sMTA1ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJnbC1tZXNoM2QiKSxhPXQoIi4uLy4uL2xpYi9nbF9mb3JtYXRfY29sb3IiKS5wYXJzZUNvbG9yU2NhbGUsaT10KCIuLi8uLi9saWIvc3RyMnJnYmFycmF5Iiksbz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiKS5leHRyYWN0T3B0cyxzPXQoIi4uLy4uL3Bsb3RzL2dsM2QvemlwMyIpLGw9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9ZS5sZW5ndGgtMTtyPjA7ci0tKXt2YXIgbj1NYXRoLm1pbihlW3JdLGVbci0xXSksYT1NYXRoLm1heChlW3JdLGVbci0xXSk7aWYoYT5uJiZuPHQmJnQ8PWEpcmV0dXJue2lkOnIsZGlzdFJhdGlvOihhLXQpLyhhLW4pfX1yZXR1cm57aWQ6MCxkaXN0UmF0aW86MH19O2Z1bmN0aW9uIGModCxlLHIpe3RoaXMuc2NlbmU9dCx0aGlzLnVpZD1yLHRoaXMubWVzaD1lLHRoaXMubmFtZT0iIix0aGlzLmRhdGE9bnVsbCx0aGlzLnNob3dDb250b3VyPSExfXZhciB1PWMucHJvdG90eXBlO3UuaGFuZGxlUGljaz1mdW5jdGlvbih0KXtpZih0Lm9iamVjdD09PXRoaXMubWVzaCl7dmFyIGU9dC5kYXRhLmluZGV4LHI9dGhpcy5kYXRhLl9tZXNoWFtlXSxuPXRoaXMuZGF0YS5fbWVzaFlbZV0sYT10aGlzLmRhdGEuX21lc2haW2VdLGk9dGhpcy5kYXRhLl9Zcy5sZW5ndGgsbz10aGlzLmRhdGEuX1pzLmxlbmd0aCxzPWwocix0aGlzLmRhdGEuX1hzKS5pZCxjPWwobix0aGlzLmRhdGEuX1lzKS5pZCx1PWwoYSx0aGlzLmRhdGEuX1pzKS5pZCxoPXQuaW5kZXg9dStvKmMrbyppKnM7dC50cmFjZUNvb3JkaW5hdGU9W3RoaXMuZGF0YS5fbWVzaFhbaF0sdGhpcy5kYXRhLl9tZXNoWVtoXSx0aGlzLmRhdGEuX21lc2haW2hdLHRoaXMuZGF0YS5fdmFsdWVbaF1dO3ZhciBmPXRoaXMuZGF0YS5ob3ZlcnRleHR8fHRoaXMuZGF0YS50ZXh0O3JldHVybiBBcnJheS5pc0FycmF5KGYpJiZ2b2lkIDAhPT1mW2hdP3QudGV4dExhYmVsPWZbaF06ZiYmKHQudGV4dExhYmVsPWYpLCEwfX0sdS51cGRhdGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5zY2VuZSxyPWUuZnVsbFNjZW5lTGF5b3V0O2Z1bmN0aW9uIG4odCxlLHIsbil7cmV0dXJuIGUubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0LmQybChlLDAsbikqcn0pfXRoaXMuZGF0YT1mKHQpO3ZhciBsPXtwb3NpdGlvbnM6cyhuKHIueGF4aXMsdC5fbWVzaFgsZS5kYXRhU2NhbGVbMF0sdC54Y2FsZW5kYXIpLG4oci55YXhpcyx0Ll9tZXNoWSxlLmRhdGFTY2FsZVsxXSx0LnljYWxlbmRhciksbihyLnpheGlzLHQuX21lc2haLGUuZGF0YVNjYWxlWzJdLHQuemNhbGVuZGFyKSksY2VsbHM6cyh0Ll9tZXNoSSx0Ll9tZXNoSix0Ll9tZXNoSyksbGlnaHRQb3NpdGlvbjpbdC5saWdodHBvc2l0aW9uLngsdC5saWdodHBvc2l0aW9uLnksdC5saWdodHBvc2l0aW9uLnpdLGFtYmllbnQ6dC5saWdodGluZy5hbWJpZW50LGRpZmZ1c2U6dC5saWdodGluZy5kaWZmdXNlLHNwZWN1bGFyOnQubGlnaHRpbmcuc3BlY3VsYXIscm91Z2huZXNzOnQubGlnaHRpbmcucm91Z2huZXNzLGZyZXNuZWw6dC5saWdodGluZy5mcmVzbmVsLHZlcnRleE5vcm1hbHNFcHNpbG9uOnQubGlnaHRpbmcudmVydGV4bm9ybWFsc2Vwc2lsb24sZmFjZU5vcm1hbHNFcHNpbG9uOnQubGlnaHRpbmcuZmFjZW5vcm1hbHNlcHNpbG9uLG9wYWNpdHk6dC5vcGFjaXR5LGNvbnRvdXJFbmFibGU6dC5jb250b3VyLnNob3csY29udG91ckNvbG9yOmkodC5jb250b3VyLmNvbG9yKS5zbGljZSgwLDMpLGNvbnRvdXJXaWR0aDp0LmNvbnRvdXIud2lkdGgsdXNlRmFjZXROb3JtYWxzOnQuZmxhdHNoYWRpbmd9LGM9byh0KTtsLnZlcnRleEludGVuc2l0eT10Ll9tZXNoSW50ZW5zaXR5LGwudmVydGV4SW50ZW5zaXR5Qm91bmRzPVtjLm1pbixjLm1heF0sbC5jb2xvcm1hcD1hKHQpLHRoaXMubWVzaC51cGRhdGUobCl9LHUuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuc2NlbmUuZ2xwbG90LnJlbW92ZSh0aGlzLm1lc2gpLHRoaXMubWVzaC5kaXNwb3NlKCl9O3ZhciBoPVsieHl6IiwieHp5IiwieXh6IiwieXp4Iiwienh5Iiwienl4Il07ZnVuY3Rpb24gZih0KXt0Ll9tZXNoST1bXSx0Ll9tZXNoSj1bXSx0Ll9tZXNoSz1bXTt2YXIgZSxyLG4sYSxpLG8scyxjPXQuc3VyZmFjZS5zaG93LHU9dC5zcGFjZWZyYW1lLnNob3csZj10LnN1cmZhY2UuZmlsbCxwPXQuc3BhY2VmcmFtZS5maWxsLGQ9ITEsZz0hMSx2PTAsbT10Ll9Ycyx5PXQuX1lzLHg9dC5fWnMsYj1tLmxlbmd0aCxfPXkubGVuZ3RoLHc9eC5sZW5ndGgsaz1oLmluZGV4T2YodC5fZ3JpZEZpbGwucmVwbGFjZSgvLS9nLCIiKS5yZXBsYWNlKC9cKy9nLCIiKSksVD1mdW5jdGlvbih0LGUscil7c3dpdGNoKGspe2Nhc2UgNTpyZXR1cm4gcit3KmUrdypfKnQ7Y2FzZSA0OnJldHVybiByK3cqdCt3KmIqZTtjYXNlIDM6cmV0dXJuIGUrXypyK18qdyp0O2Nhc2UgMjpyZXR1cm4gZStfKnQrXypiKnI7Y2FzZSAxOnJldHVybiB0K2IqcitiKncqZTtkZWZhdWx0OnJldHVybiB0K2IqZStiKl8qcn19LE09dC5fbWluVmFsdWVzLEE9dC5fbWF4VmFsdWVzLFM9dC5fdk1pbixFPXQuX3ZNYXg7ZnVuY3Rpb24gTCh0LGUscyl7Zm9yKHZhciBsPW8ubGVuZ3RoLGM9cjtjPGw7YysrKWlmKHQ9PT1uW2NdJiZlPT09YVtjXSYmcz09PWlbY10pcmV0dXJuIGM7cmV0dXJuLTF9ZnVuY3Rpb24gQygpe3I9ZX1mdW5jdGlvbiBQKCl7bj1bXSxhPVtdLGk9W10sbz1bXSxlPTAsQygpfWZ1bmN0aW9uIE8odCxyLHMsbCl7cmV0dXJuIG4ucHVzaCh0KSxhLnB1c2gociksaS5wdXNoKHMpLG8ucHVzaChsKSwrK2UtMX1mdW5jdGlvbiB6KHQsZSxyKXtmb3IodmFyIG49W10sYT0wO2E8dC5sZW5ndGg7YSsrKW5bYV09dFthXSooMS1yKStyKmVbYV07cmV0dXJuIG59ZnVuY3Rpb24gSSh0KXtzPXR9ZnVuY3Rpb24gRCh0LGUpe3JldHVybiJhbGwiPT09dHx8bnVsbD09PXR8fHQuaW5kZXhPZihlKT4tMX1mdW5jdGlvbiBSKHQsZSl7cmV0dXJuIG51bGw9PT10P2U6dH1mdW5jdGlvbiBGKGUscixuKXtDKCk7dmFyIGEsaSxvLGw9W3JdLGM9W25dO2lmKHM+PTEpbD1bcl0sYz1bbl07ZWxzZSBpZihzPjApe3ZhciB1PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dFswXSxuPXRbMV0sYT10WzJdLGk9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj1bXSxhPTA7YTx0Lmxlbmd0aDthKyspblthXT0odFthXStlW2FdK3JbYV0pLzM7cmV0dXJuIG59KHIsbixhKSxvPU1hdGguc3FydCgxLXMpLGw9eihpLHIsbyksYz16KGksbixvKSx1PXooaSxhLG8pLGg9ZVswXSxmPWVbMV0scD1lWzJdO3JldHVybnt4eXp2OltbcixuLGNdLFtjLGwscl0sW24sYSx1XSxbdSxjLG5dLFthLHIsbF0sW2wsdSxhXV0sYWJjOltbaCxmLC0xXSxbLTEsLTEsaF0sW2YscCwtMV0sWy0xLC0xLGZdLFtwLGgsLTFdLFstMSwtMSxwXV19fShyLG4pO2w9dS54eXp2LGM9dS5hYmN9Zm9yKHZhciBoPTA7aDxsLmxlbmd0aDtoKyspe3I9bFtoXSxuPWNbaF07Zm9yKHZhciBmPVtdLHA9MDtwPDM7cCsrKXt2YXIgZD1yW3BdWzBdLGc9cltwXVsxXSxtPXJbcF1bMl0seT1yW3BdWzNdLHg9bltwXT4tMT9uW3BdOkwoZCxnLG0pO2ZbcF09eD4tMT94Ok8oZCxnLG0sUihlLHkpKX1hPWZbMF0saT1mWzFdLG89ZlsyXSx0Ll9tZXNoSS5wdXNoKGEpLHQuX21lc2hKLnB1c2goaSksdC5fbWVzaEsucHVzaChvKSwrK3Z9fWZ1bmN0aW9uIEIodCxlLHIsbil7dmFyIGE9dFszXTthPHImJihhPXIpLGE+biYmKGE9bik7Zm9yKHZhciBpPSh0WzNdLWEpLyh0WzNdLWVbM10rMWUtOSksbz1bXSxzPTA7czw0O3MrKylvW3NdPSgxLWkpKnRbc10raSplW3NdO3JldHVybiBvfWZ1bmN0aW9uIE4odCxlLHIpe3JldHVybiB0Pj1lJiZ0PD1yfWZ1bmN0aW9uIGoodCl7dmFyIGU9LjAwMSooRS1TKTtyZXR1cm4gdD49Uy1lJiZ0PD1FK2V9ZnVuY3Rpb24gVihlKXtmb3IodmFyIHI9W10sbj0wO248NDtuKyspe3ZhciBhPWVbbl07ci5wdXNoKFt0Ll94W2FdLHQuX3lbYV0sdC5felthXSx0Ll92YWx1ZVthXV0pfXJldHVybiByfXZhciBVPTM7ZnVuY3Rpb24gcSh0LGUscixuLGEsaSl7aXx8KGk9MSkscj1bLTEsLTEsLTFdO3ZhciBvPSExLHM9W04oZVswXVszXSxuLGEpLE4oZVsxXVszXSxuLGEpLE4oZVsyXVszXSxuLGEpXTtpZighc1swXSYmIXNbMV0mJiFzWzJdKXJldHVybiExO3ZhciBsPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gaihlWzBdWzNdKSYmaihlWzFdWzNdKSYmaihlWzJdWzNdKT8oRih0LGUsciksITApOmk8VSYmcSh0LGUscixTLEUsKytpKX07aWYoc1swXSYmc1sxXSYmc1syXSlyZXR1cm4gbCh0LGUscil8fG87dmFyIGM9ITE7cmV0dXJuW1swLDEsMl0sWzIsMCwxXSxbMSwyLDBdXS5mb3JFYWNoKGZ1bmN0aW9uKGkpe2lmKHNbaVswXV0mJnNbaVsxXV0mJiFzW2lbMl1dKXt2YXIgdT1lW2lbMF1dLGg9ZVtpWzFdXSxmPWVbaVsyXV0scD1CKGYsdSxuLGEpLGQ9QihmLGgsbixhKTtvPWwodCxbZCxwLHVdLFstMSwtMSxyW2lbMF1dXSl8fG8sbz1sKHQsW3UsaCxkXSxbcltpWzBdXSxyW2lbMV1dLC0xXSl8fG8sYz0hMH19KSxjP286KFtbMCwxLDJdLFsxLDIsMF0sWzIsMCwxXV0uZm9yRWFjaChmdW5jdGlvbihpKXtpZihzW2lbMF1dJiYhc1tpWzFdXSYmIXNbaVsyXV0pe3ZhciB1PWVbaVswXV0saD1lW2lbMV1dLGY9ZVtpWzJdXSxwPUIoaCx1LG4sYSksZD1CKGYsdSxuLGEpO289bCh0LFtkLHAsdV0sWy0xLC0xLHJbaVswXV1dKXx8byxjPSEwfX0pLG8pfWZ1bmN0aW9uIEgodCxlLHIsbil7dmFyIGE9ITEsaT1WKGUpLG89W04oaVswXVszXSxyLG4pLE4oaVsxXVszXSxyLG4pLE4oaVsyXVszXSxyLG4pLE4oaVszXVszXSxyLG4pXTtpZighKG9bMF18fG9bMV18fG9bMl18fG9bM10pKXJldHVybiBhO2lmKG9bMF0mJm9bMV0mJm9bMl0mJm9bM10pcmV0dXJuIGcmJihhPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1mdW5jdGlvbihuLGEsaSl7Rih0LFtlW25dLGVbYV0sZVtpXV0sW3Jbbl0sclthXSxyW2ldXSl9O24oMCwxLDIpLG4oMywwLDEpLG4oMiwzLDApLG4oMSwyLDMpfSh0LGksZSl8fGEpLGE7dmFyIHM9ITE7cmV0dXJuW1swLDEsMiwzXSxbMywwLDEsMl0sWzIsMywwLDFdLFsxLDIsMywwXV0uZm9yRWFjaChmdW5jdGlvbihsKXtpZihvW2xbMF1dJiZvW2xbMV1dJiZvW2xbMl1dJiYhb1tsWzNdXSl7dmFyIGM9aVtsWzBdXSx1PWlbbFsxXV0saD1pW2xbMl1dLGY9aVtsWzNdXTtpZihnKWE9Rih0LFtjLHUsaF0sW2VbbFswXV0sZVtsWzFdXSxlW2xbMl1dXSl8fGE7ZWxzZXt2YXIgcD1CKGYsYyxyLG4pLGQ9QihmLHUscixuKSx2PUIoZixoLHIsbik7YT1GKG51bGwsW3AsZCx2XSxbLTEsLTEsLTFdKXx8YX1zPSEwfX0pLHM/YTooW1swLDEsMiwzXSxbMSwyLDMsMF0sWzIsMywwLDFdLFszLDAsMSwyXSxbMCwyLDMsMV0sWzEsMywyLDBdXS5mb3JFYWNoKGZ1bmN0aW9uKGwpe2lmKG9bbFswXV0mJm9bbFsxXV0mJiFvW2xbMl1dJiYhb1tsWzNdXSl7dmFyIGM9aVtsWzBdXSx1PWlbbFsxXV0saD1pW2xbMl1dLGY9aVtsWzNdXSxwPUIoaCxjLHIsbiksZD1CKGgsdSxyLG4pLHY9QihmLHUscixuKSxtPUIoZixjLHIsbik7Zz8oYT1GKHQsW2MsbSxwXSxbZVtsWzBdXSwtMSwtMV0pfHxhLGE9Rih0LFt1LGQsdl0sW2VbbFsxXV0sLTEsLTFdKXx8YSk6YT1mdW5jdGlvbih0LGUscil7dmFyIG49ZnVuY3Rpb24obixhLGkpe0YodCxbZVtuXSxlW2FdLGVbaV1dLFtyW25dLHJbYV0scltpXV0pfTtuKDAsMSwyKSxuKDIsMywwKX0obnVsbCxbcCxkLHYsbV0sWy0xLC0xLC0xLC0xXSl8fGEscz0hMH19KSxzP2E6KFtbMCwxLDIsM10sWzEsMiwzLDBdLFsyLDMsMCwxXSxbMywwLDEsMl1dLmZvckVhY2goZnVuY3Rpb24obCl7aWYob1tsWzBdXSYmIW9bbFsxXV0mJiFvW2xbMl1dJiYhb1tsWzNdXSl7dmFyIGM9aVtsWzBdXSx1PWlbbFsxXV0saD1pW2xbMl1dLGY9aVtsWzNdXSxwPUIodSxjLHIsbiksZD1CKGgsYyxyLG4pLHY9QihmLGMscixuKTtnPyhhPUYodCxbYyxwLGRdLFtlW2xbMF1dLC0xLC0xXSl8fGEsYT1GKHQsW2MsZCx2XSxbZVtsWzBdXSwtMSwtMV0pfHxhLGE9Rih0LFtjLHYscF0sW2VbbFswXV0sLTEsLTFdKXx8YSk6YT1GKG51bGwsW3AsZCx2XSxbLTEsLTEsLTFdKXx8YSxzPSEwfX0pLGEpKX1mdW5jdGlvbiBHKHQsZSxyLG4sYSxpLG8scyxsLGMsdSl7dmFyIGg9ITE7cmV0dXJuIGQmJihEKHQsIkEiKSYmKGg9SChudWxsLFtlLHIsbixpXSxjLHUpfHxoKSxEKHQsIkIiKSYmKGg9SChudWxsLFtyLG4sYSxsXSxjLHUpfHxoKSxEKHQsIkMiKSYmKGg9SChudWxsLFtyLGksbyxsXSxjLHUpfHxoKSxEKHQsIkQiKSYmKGg9SChudWxsLFtuLGkscyxsXSxjLHUpfHxoKSxEKHQsIkUiKSYmKGg9SChudWxsLFtyLG4saSxsXSxjLHUpfHxoKSksZyYmKGg9SCh0LFtyLG4saSxsXSxjLHUpfHxoKSxofWZ1bmN0aW9uIFkodCxlLHIsbixhLGksbyxzKXtyZXR1cm5bITA9PT1zWzBdfHxxKHQsVihbZSxyLG5dKSxbZSxyLG5dLGksbyksITA9PT1zWzFdfHxxKHQsVihbbixhLGVdKSxbbixhLGVdLGksbyldfWZ1bmN0aW9uIFcodCxlLHIsbixhLGksbyxzLGwpe3JldHVybiBzP1kodCxlLHIsYSxuLGksbyxsKTpZKHQscixhLG4sZSxpLG8sbCl9ZnVuY3Rpb24gWCh0LGUscixuLGEsaSxvKXt2YXIgcyxsLGMsdSxoPSExLGY9ZnVuY3Rpb24oKXtoPXEodCxbcyxsLGNdLFstMSwtMSwtMV0sYSxpKXx8aCxoPXEodCxbYyx1LHNdLFstMSwtMSwtMV0sYSxpKXx8aH0scD1vWzBdLGQ9b1sxXSxnPW9bMl07cmV0dXJuIHAmJihzPXooVihbVChlLHItMCxuLTApXSlbMF0sVihbVChlLTEsci0wLG4tMCldKVswXSxwKSxsPXooVihbVChlLHItMCxuLTEpXSlbMF0sVihbVChlLTEsci0wLG4tMSldKVswXSxwKSxjPXooVihbVChlLHItMSxuLTEpXSlbMF0sVihbVChlLTEsci0xLG4tMSldKVswXSxwKSx1PXooVihbVChlLHItMSxuLTApXSlbMF0sVihbVChlLTEsci0xLG4tMCldKVswXSxwKSxmKCkpLGQmJihzPXooVihbVChlLTAscixuLTApXSlbMF0sVihbVChlLTAsci0xLG4tMCldKVswXSxkKSxsPXooVihbVChlLTAscixuLTEpXSlbMF0sVihbVChlLTAsci0xLG4tMSldKVswXSxkKSxjPXooVihbVChlLTEscixuLTEpXSlbMF0sVihbVChlLTEsci0xLG4tMSldKVswXSxkKSx1PXooVihbVChlLTEscixuLTApXSlbMF0sVihbVChlLTEsci0xLG4tMCldKVswXSxkKSxmKCkpLGcmJihzPXooVihbVChlLTAsci0wLG4pXSlbMF0sVihbVChlLTAsci0wLG4tMSldKVswXSxnKSxsPXooVihbVChlLTAsci0xLG4pXSlbMF0sVihbVChlLTAsci0xLG4tMSldKVswXSxnKSxjPXooVihbVChlLTEsci0xLG4pXSlbMF0sVihbVChlLTEsci0xLG4tMSldKVswXSxnKSx1PXooVihbVChlLTEsci0wLG4pXSlbMF0sVihbVChlLTEsci0wLG4tMSldKVswXSxnKSxmKCkpLGh9ZnVuY3Rpb24gWih0LGUscixuLGEsaSxvLHMsbCxjLHUsaCl7dmFyIGY9dDtyZXR1cm4gaD8oZCYmImV2ZW4iPT09dCYmKGY9bnVsbCksRyhmLGUscixuLGEsaSxvLHMsbCxjLHUpKTooZCYmIm9kZCI9PT10JiYoZj1udWxsKSxHKGYsbCxzLG8saSxhLG4scixlLGMsdSkpfWZ1bmN0aW9uIEoodCxlLHIsbixhKXtmb3IodmFyIGk9W10sbz0wLHM9MDtzPGUubGVuZ3RoO3MrKylmb3IodmFyIGw9ZVtzXSxjPTE7Yzx3O2MrKylmb3IodmFyIHU9MTt1PF87dSsrKWkucHVzaChXKHQsVChsLHUtMSxjLTEpLFQobCx1LTEsYyksVChsLHUsYy0xKSxUKGwsdSxjKSxyLG4sKGwrdStjKSUyLGEmJmFbb10/YVtvXTpbXSkpLG8rKztyZXR1cm4gaX1mdW5jdGlvbiBLKHQsZSxyLG4sYSl7Zm9yKHZhciBpPVtdLG89MCxzPTA7czxlLmxlbmd0aDtzKyspZm9yKHZhciBsPWVbc10sYz0xO2M8YjtjKyspZm9yKHZhciB1PTE7dTx3O3UrKylpLnB1c2goVyh0LFQoYy0xLGwsdS0xKSxUKGMsbCx1LTEpLFQoYy0xLGwsdSksVChjLGwsdSkscixuLChjK2wrdSklMixhJiZhW29dP2Fbb106W10pKSxvKys7cmV0dXJuIGl9ZnVuY3Rpb24gUSh0LGUscixuLGEpe2Zvcih2YXIgaT1bXSxvPTAscz0wO3M8ZS5sZW5ndGg7cysrKWZvcih2YXIgbD1lW3NdLGM9MTtjPF87YysrKWZvcih2YXIgdT0xO3U8Yjt1KyspaS5wdXNoKFcodCxUKHUtMSxjLTEsbCksVCh1LTEsYyxsKSxUKHUsYy0xLGwpLFQodSxjLGwpLHIsbiwodStjK2wpJTIsYSYmYVtvXT9hW29dOltdKSksbysrO3JldHVybiBpfWZ1bmN0aW9uICQodCxlLHIpe2Zvcih2YXIgbj0xO248dztuKyspZm9yKHZhciBhPTE7YTxfO2ErKylmb3IodmFyIGk9MTtpPGI7aSsrKVoodCxUKGktMSxhLTEsbi0xKSxUKGktMSxhLTEsbiksVChpLTEsYSxuLTEpLFQoaS0xLGEsbiksVChpLGEtMSxuLTEpLFQoaSxhLTEsbiksVChpLGEsbi0xKSxUKGksYSxuKSxlLHIsKGkrYStuKSUyKX1mdW5jdGlvbiB0dCh0LGUscil7ZD0hMCwkKHQsZSxyKSxkPSExfWZ1bmN0aW9uIGV0KHQsZSxyLG4sYSxpKXtmb3IodmFyIG89W10scz0wLGw9MDtsPGUubGVuZ3RoO2wrKylmb3IodmFyIGM9ZVtsXSx1PTE7dTx3O3UrKylmb3IodmFyIGg9MTtoPF87aCsrKW8ucHVzaChYKHQsYyxoLHUscixuLGFbbF0saSYmaVtzXSYmaVtzXSkpLHMrKztyZXR1cm4gb31mdW5jdGlvbiBydCh0LGUscixuLGEsaSl7Zm9yKHZhciBvPVtdLHM9MCxsPTA7bDxlLmxlbmd0aDtsKyspZm9yKHZhciBjPWVbbF0sdT0xO3U8Yjt1KyspZm9yKHZhciBoPTE7aDx3O2grKylvLnB1c2goWCh0LHUsYyxoLHIsbixhW2xdLGkmJmlbc10mJmlbc10pKSxzKys7cmV0dXJuIG99ZnVuY3Rpb24gbnQodCxlLHIsbixhLGkpe2Zvcih2YXIgbz1bXSxzPTAsbD0wO2w8ZS5sZW5ndGg7bCsrKWZvcih2YXIgYz1lW2xdLHU9MTt1PF87dSsrKWZvcih2YXIgaD0xO2g8YjtoKyspby5wdXNoKFgodCxoLHUsYyxyLG4sYVtsXSxpJiZpW3NdJiZpW3NdKSkscysrO3JldHVybiBvfWZ1bmN0aW9uIGF0KHQsZSl7Zm9yKHZhciByPVtdLG49dDtuPGU7bisrKXIucHVzaChuKTtyZXR1cm4gcn1yZXR1cm4gZnVuY3Rpb24oKXtpZihQKCksZnVuY3Rpb24oKXtmb3IodmFyIGU9MDtlPGI7ZSsrKWZvcih2YXIgcj0wO3I8XztyKyspZm9yKHZhciBuPTA7bjx3O24rKyl7dmFyIGE9VChlLHIsbik7Tyh0Ll94W2FdLHQuX3lbYV0sdC5felthXSx0Ll92YWx1ZVthXSl9fSgpLHUmJnAmJihJKHApLGc9ITAsJChudWxsLFMsRSksZz0hMSksYyYmZil7SShmKTtmb3IodmFyIGU9dC5zdXJmYWNlLnBhdHRlcm4scj10LnN1cmZhY2UuY291bnQscz0wO3M8cjtzKyspe3ZhciBoPTE9PT1yPy41OnMvKHItMSksZD0oMS1oKSpTK2gqRSxrPU1hdGguYWJzKGQtTSk+TWF0aC5hYnMoZC1BKT9bTSxkXTpbZCxBXTt0dChlLGtbMF0sa1sxXSl9fXZhciBMPVtbTWF0aC5taW4oUyxBKSxNYXRoLm1heChTLEEpXSxbTWF0aC5taW4oTSxFKSxNYXRoLm1heChNLEUpXV07WyJ4IiwieSIsInoiXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2Zvcih2YXIgcj1bXSxuPTA7bjxMLmxlbmd0aDtuKyspe3ZhciBhPTAsaT1MW25dWzBdLG89TFtuXVsxXSxzPXQuc2xpY2VzW2VdO2lmKHMuc2hvdyYmcy5maWxsKXtJKHMuZmlsbCk7dmFyIGM9W10sdT1bXSxoPVtdO2lmKHMubG9jYXRpb25zLmxlbmd0aClmb3IodmFyIGY9MDtmPHMubG9jYXRpb25zLmxlbmd0aDtmKyspe3ZhciBwPWwocy5sb2NhdGlvbnNbZl0sIngiPT09ZT9tOiJ5Ij09PWU/eTp4KTswPT09cC5kaXN0UmF0aW8/Yy5wdXNoKHAuaWQpOnAuaWQ+MCYmKHUucHVzaChwLmlkKSwieCI9PT1lP2gucHVzaChbcC5kaXN0UmF0aW8sMCwwXSk6InkiPT09ZT9oLnB1c2goWzAscC5kaXN0UmF0aW8sMF0pOmgucHVzaChbMCwwLHAuZGlzdFJhdGlvXSkpfWVsc2UgYz1hdCgxLCJ4Ij09PWU/Yi0xOiJ5Ij09PWU/Xy0xOnctMSk7dS5sZW5ndGg+MCYmKHJbYV09IngiPT09ZT9ldChudWxsLHUsaSxvLGgsclthXSk6InkiPT09ZT9ydChudWxsLHUsaSxvLGgsclthXSk6bnQobnVsbCx1LGksbyxoLHJbYV0pLGErKyksYy5sZW5ndGg+MCYmKHJbYV09IngiPT09ZT9KKG51bGwsYyxpLG8sclthXSk6InkiPT09ZT9LKG51bGwsYyxpLG8sclthXSk6UShudWxsLGMsaSxvLHJbYV0pLGErKyl9dmFyIGQ9dC5jYXBzW2VdO2Quc2hvdyYmZC5maWxsJiYoSShkLmZpbGwpLHJbYV09IngiPT09ZT9KKG51bGwsWzAsYi0xXSxpLG8sclthXSk6InkiPT09ZT9LKG51bGwsWzAsXy0xXSxpLG8sclthXSk6UShudWxsLFswLHctMV0saSxvLHJbYV0pLGErKyl9fSksMD09PXYmJlAoKSx0Ll9tZXNoWD1uLHQuX21lc2hZPWEsdC5fbWVzaFo9aSx0Ll9tZXNoSW50ZW5zaXR5PW8sdC5fWHM9bSx0Ll9Zcz15LHQuX1pzPXh9KCksdH1lLmV4cG9ydHM9e2ZpbmROZWFyZXN0T25BeGlzOmwsZ2VuZXJhdGVJc29NZXNoZXM6ZixjcmVhdGVJc29zdXJmYWNlVHJhY2U6ZnVuY3Rpb24odCxlKXt2YXIgcj10LmdscGxvdC5nbCxhPW4oe2dsOnJ9KSxpPW5ldyBjKHQsYSxlLnVpZCk7cmV0dXJuIGEuX3RyYWNlPWksaS51cGRhdGUoZSksdC5nbHBsb3QuYWRkKGEpLGl9fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiOjYwNCwiLi4vLi4vbGliL2dsX2Zvcm1hdF9jb2xvciI6NzE0LCIuLi8uLi9saWIvc3RyMnJnYmFycmF5Ijo3NDAsIi4uLy4uL3Bsb3RzL2dsM2QvemlwMyI6ODE2LCJnbC1tZXNoM2QiOjI4M31dLDEwNTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9yZWdpc3RyeSIpLGk9dCgiLi9hdHRyaWJ1dGVzIiksbz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiKTtmdW5jdGlvbiBzKHQsZSxyLG4saSl7dmFyIHM9aSgiaXNvbWluIiksbD1pKCJpc29tYXgiKTtudWxsIT1sJiZudWxsIT1zJiZzPmwmJihlLmlzb21pbj1udWxsLGUuaXNvbWF4PW51bGwpO3ZhciBjPWkoIngiKSx1PWkoInkiKSxoPWkoInoiKSxmPWkoInZhbHVlIik7YyYmYy5sZW5ndGgmJnUmJnUubGVuZ3RoJiZoJiZoLmxlbmd0aCYmZiYmZi5sZW5ndGg/KGEuZ2V0Q29tcG9uZW50TWV0aG9kKCJjYWxlbmRhcnMiLCJoYW5kbGVUcmFjZURlZmF1bHRzIikodCxlLFsieCIsInkiLCJ6Il0sbiksWyJ4IiwieSIsInoiXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPSJjYXBzLiIrdDtpKGUrIi5zaG93IikmJmkoZSsiLmZpbGwiKTt2YXIgcj0ic2xpY2VzLiIrdDtpKHIrIi5zaG93IikmJihpKHIrIi5maWxsIiksaShyKyIubG9jYXRpb25zIikpfSksaSgic3BhY2VmcmFtZS5zaG93IikmJmkoInNwYWNlZnJhbWUuZmlsbCIpLGkoInN1cmZhY2Uuc2hvdyIpJiYoaSgic3VyZmFjZS5jb3VudCIpLGkoInN1cmZhY2UuZmlsbCIpLGkoInN1cmZhY2UucGF0dGVybiIpKSxpKCJjb250b3VyLnNob3ciKSYmKGkoImNvbnRvdXIuY29sb3IiKSxpKCJjb250b3VyLndpZHRoIikpLFsidGV4dCIsImhvdmVydGV4dCIsImhvdmVydGVtcGxhdGUiLCJsaWdodGluZy5hbWJpZW50IiwibGlnaHRpbmcuZGlmZnVzZSIsImxpZ2h0aW5nLnNwZWN1bGFyIiwibGlnaHRpbmcucm91Z2huZXNzIiwibGlnaHRpbmcuZnJlc25lbCIsImxpZ2h0aW5nLnZlcnRleG5vcm1hbHNlcHNpbG9uIiwibGlnaHRpbmcuZmFjZW5vcm1hbHNlcHNpbG9uIiwibGlnaHRwb3NpdGlvbi54IiwibGlnaHRwb3NpdGlvbi55IiwibGlnaHRwb3NpdGlvbi56IiwiZmxhdHNoYWRpbmciLCJvcGFjaXR5Il0uZm9yRWFjaChmdW5jdGlvbih0KXtpKHQpfSksbyh0LGUsbixpLHtwcmVmaXg6IiIsY0xldHRlcjoiYyJ9KSxlLl9sZW5ndGg9bnVsbCk6ZS52aXNpYmxlPSExfWUuZXhwb3J0cz17c3VwcGx5RGVmYXVsdHM6ZnVuY3Rpb24odCxlLHIsYSl7cyh0LGUsMCxhLGZ1bmN0aW9uKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxpLHIsYSl9KX0sc3VwcGx5SXNvRGVmYXVsdHM6c319LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIjo2MDIsIi4uLy4uL2xpYiI6NzE3LCIuLi8uLi9yZWdpc3RyeSI6ODQ2LCIuL2F0dHJpYnV0ZXMiOjEwNTZ9XSwxMDYwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIikuc3VwcGx5RGVmYXVsdHMsY2FsYzp0KCIuL2NhbGMiKSxjb2xvcmJhcjp7bWluOiJjbWluIixtYXg6ImNtYXgifSxwbG90OnQoIi4vY29udmVydCIpLmNyZWF0ZUlzb3N1cmZhY2VUcmFjZSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToiaXNvc3VyZmFjZSIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvZ2wzZCIpLGNhdGVnb3JpZXM6WyJnbDNkIiwic2hvd0xlZ2VuZCJdLG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL2dsM2QiOjgwNSwiLi9hdHRyaWJ1dGVzIjoxMDU2LCIuL2NhbGMiOjEwNTcsIi4vY29udmVydCI6MTA1OCwiLi9kZWZhdWx0cyI6MTA1OX1dLDEwNjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMsaT10KCIuLi9zdXJmYWNlL2F0dHJpYnV0ZXMiKSxvPXQoIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0O2UuZXhwb3J0cz1zKHt4Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LHk6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0sejp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSxpOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGo6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sazp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSx0ZXh0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsYXJyYXlPazohMCxlZGl0VHlwZToiY2FsYyJ9LGhvdmVydGV4dDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGFycmF5T2s6ITAsZWRpdFR5cGU6ImNhbGMifSxob3ZlcnRlbXBsYXRlOmEoe2VkaXRUeXBlOiJjYWxjIn0pLGRlbGF1bmF5YXhpczp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsieCIsInkiLCJ6Il0sZGZsdDoieiIsZWRpdFR5cGU6ImNhbGMifSxhbHBoYWh1bGw6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDotMSxlZGl0VHlwZToiY2FsYyJ9LGludGVuc2l0eTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxpbnRlbnNpdHltb2RlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ2ZXJ0ZXgiLCJjZWxsIl0sZGZsdDoidmVydGV4IixlZGl0VHlwZToiY2FsYyJ9LGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6ImNhbGMifSx2ZXJ0ZXhjb2xvcjp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxmYWNlY29sb3I6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sdHJhbnNmb3Jtczp2b2lkIDB9LG4oIiIse2NvbG9yQXR0cjoiYGludGVuc2l0eWAiLHNob3dTY2FsZURmbHQ6ITAsZWRpdFR5cGVPdmVycmlkZToiY2FsYyJ9KSx7b3BhY2l0eTppLm9wYWNpdHksZmxhdHNoYWRpbmc6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITEsZWRpdFR5cGU6ImNhbGMifSxjb250b3VyOntzaG93OnMoe30saS5jb250b3Vycy54LnNob3cse30pLGNvbG9yOmkuY29udG91cnMueC5jb2xvcix3aWR0aDppLmNvbnRvdXJzLngud2lkdGgsZWRpdFR5cGU6ImNhbGMifSxsaWdodHBvc2l0aW9uOnt4OnMoe30saS5saWdodHBvc2l0aW9uLngse2RmbHQ6MWU1fSkseTpzKHt9LGkubGlnaHRwb3NpdGlvbi55LHtkZmx0OjFlNX0pLHo6cyh7fSxpLmxpZ2h0cG9zaXRpb24ueix7ZGZsdDowfSksZWRpdFR5cGU6ImNhbGMifSxsaWdodGluZzpzKHt2ZXJ0ZXhub3JtYWxzZXBzaWxvbjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0OjFlLTEyLGVkaXRUeXBlOiJjYWxjIn0sZmFjZW5vcm1hbHNlcHNpbG9uOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MWUtNixlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYWxjIn0saS5saWdodGluZyksaG92ZXJpbmZvOnMoe30sby5ob3ZlcmluZm8se2VkaXRUeXBlOiJjYWxjIn0pLHNob3dsZWdlbmQ6cyh7fSxvLnNob3dsZWdlbmQse2RmbHQ6ITF9KX0pfSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjo1OTksIi4uLy4uL2xpYi9leHRlbmQiOjcwOCwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6NzYyLCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo4NDEsIi4uL3N1cmZhY2UvYXR0cmlidXRlcyI6MTI0M31dLDEwNjI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtlLmludGVuc2l0eSYmbih0LGUse3ZhbHM6ZS5pbnRlbnNpdHksY29udGFpbmVyU3RyOiIiLGNMZXR0ZXI6ImMifSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIjo2MDB9XSwxMDYzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImdsLW1lc2gzZCIpLGE9dCgiZGVsYXVuYXktdHJpYW5ndWxhdGUiKSxpPXQoImFscGhhLXNoYXBlIiksbz10KCJjb252ZXgtaHVsbCIpLHM9dCgiLi4vLi4vbGliL2dsX2Zvcm1hdF9jb2xvciIpLnBhcnNlQ29sb3JTY2FsZSxsPXQoIi4uLy4uL2xpYi9zdHIycmdiYXJyYXkiKSxjPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLmV4dHJhY3RPcHRzLHU9dCgiLi4vLi4vcGxvdHMvZ2wzZC96aXAzIik7ZnVuY3Rpb24gaCh0LGUscil7dGhpcy5zY2VuZT10LHRoaXMudWlkPXIsdGhpcy5tZXNoPWUsdGhpcy5uYW1lPSIiLHRoaXMuY29sb3I9IiNmZmYiLHRoaXMuZGF0YT1udWxsLHRoaXMuc2hvd0NvbnRvdXI9ITF9dmFyIGY9aC5wcm90b3R5cGU7ZnVuY3Rpb24gcCh0KXtmb3IodmFyIGU9W10scj10Lmxlbmd0aCxuPTA7bjxyO24rKyllW25dPWwodFtuXSk7cmV0dXJuIGV9ZnVuY3Rpb24gZCh0LGUscixuKXtmb3IodmFyIGE9W10saT1lLmxlbmd0aCxvPTA7bzxpO28rKylhW29dPXQuZDJsKGVbb10sMCxuKSpyO3JldHVybiBhfWZ1bmN0aW9uIGcodCl7Zm9yKHZhciBlPVtdLHI9dC5sZW5ndGgsbj0wO248cjtuKyspZVtuXT1NYXRoLnJvdW5kKHRbbl0pO3JldHVybiBlfWZ1bmN0aW9uIHYodCxlKXtmb3IodmFyIHI9dC5sZW5ndGgsbj0wO248cjtuKyspaWYodFtuXTw9LS41fHx0W25dPj1lLS41KXJldHVybiExO3JldHVybiEwfWYuaGFuZGxlUGljaz1mdW5jdGlvbih0KXtpZih0Lm9iamVjdD09PXRoaXMubWVzaCl7dmFyIGU9dC5pbmRleD10LmRhdGEuaW5kZXg7dC5kYXRhLl9jZWxsQ2VudGVyP3QudHJhY2VDb29yZGluYXRlPXQuZGF0YS5kYXRhQ29vcmRpbmF0ZTp0LnRyYWNlQ29vcmRpbmF0ZT1bdGhpcy5kYXRhLnhbZV0sdGhpcy5kYXRhLnlbZV0sdGhpcy5kYXRhLnpbZV1dO3ZhciByPXRoaXMuZGF0YS5ob3ZlcnRleHR8fHRoaXMuZGF0YS50ZXh0O3JldHVybiBBcnJheS5pc0FycmF5KHIpJiZ2b2lkIDAhPT1yW2VdP3QudGV4dExhYmVsPXJbZV06ciYmKHQudGV4dExhYmVsPXIpLCEwfX0sZi51cGRhdGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5zY2VuZSxyPWUuZnVsbFNjZW5lTGF5b3V0O3RoaXMuZGF0YT10O3ZhciBuLGg9dC54Lmxlbmd0aCxmPXUoZChyLnhheGlzLHQueCxlLmRhdGFTY2FsZVswXSx0LnhjYWxlbmRhciksZChyLnlheGlzLHQueSxlLmRhdGFTY2FsZVsxXSx0LnljYWxlbmRhciksZChyLnpheGlzLHQueixlLmRhdGFTY2FsZVsyXSx0LnpjYWxlbmRhcikpO2lmKHQuaSYmdC5qJiZ0Lmspe2lmKHQuaS5sZW5ndGghPT10LmoubGVuZ3RofHx0LmoubGVuZ3RoIT09dC5rLmxlbmd0aHx8IXYodC5pLGgpfHwhdih0LmosaCl8fCF2KHQuayxoKSlyZXR1cm47bj11KGcodC5pKSxnKHQuaiksZyh0LmspKX1lbHNlIG49MD09PXQuYWxwaGFodWxsP28oZik6dC5hbHBoYWh1bGw+MD9pKHQuYWxwaGFodWxsLGYpOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVsieCIsInkiLCJ6Il0uaW5kZXhPZih0KSxuPVtdLGk9ZS5sZW5ndGgsbz0wO288aTtvKyspbltvXT1bZVtvXVsocisxKSUzXSxlW29dWyhyKzIpJTNdXTtyZXR1cm4gYShuKX0odC5kZWxhdW5heWF4aXMsZik7dmFyIG09e3Bvc2l0aW9uczpmLGNlbGxzOm4sbGlnaHRQb3NpdGlvbjpbdC5saWdodHBvc2l0aW9uLngsdC5saWdodHBvc2l0aW9uLnksdC5saWdodHBvc2l0aW9uLnpdLGFtYmllbnQ6dC5saWdodGluZy5hbWJpZW50LGRpZmZ1c2U6dC5saWdodGluZy5kaWZmdXNlLHNwZWN1bGFyOnQubGlnaHRpbmcuc3BlY3VsYXIscm91Z2huZXNzOnQubGlnaHRpbmcucm91Z2huZXNzLGZyZXNuZWw6dC5saWdodGluZy5mcmVzbmVsLHZlcnRleE5vcm1hbHNFcHNpbG9uOnQubGlnaHRpbmcudmVydGV4bm9ybWFsc2Vwc2lsb24sZmFjZU5vcm1hbHNFcHNpbG9uOnQubGlnaHRpbmcuZmFjZW5vcm1hbHNlcHNpbG9uLG9wYWNpdHk6dC5vcGFjaXR5LGNvbnRvdXJFbmFibGU6dC5jb250b3VyLnNob3csY29udG91ckNvbG9yOmwodC5jb250b3VyLmNvbG9yKS5zbGljZSgwLDMpLGNvbnRvdXJXaWR0aDp0LmNvbnRvdXIud2lkdGgsdXNlRmFjZXROb3JtYWxzOnQuZmxhdHNoYWRpbmd9O2lmKHQuaW50ZW5zaXR5KXt2YXIgeT1jKHQpO3RoaXMuY29sb3I9IiNmZmYiO3ZhciB4PXQuaW50ZW5zaXR5bW9kZTttW3grIkludGVuc2l0eSJdPXQuaW50ZW5zaXR5LG1beCsiSW50ZW5zaXR5Qm91bmRzIl09W3kubWluLHkubWF4XSxtLmNvbG9ybWFwPXModCl9ZWxzZSB0LnZlcnRleGNvbG9yPyh0aGlzLmNvbG9yPXQudmVydGV4Y29sb3JbMF0sbS52ZXJ0ZXhDb2xvcnM9cCh0LnZlcnRleGNvbG9yKSk6dC5mYWNlY29sb3I/KHRoaXMuY29sb3I9dC5mYWNlY29sb3JbMF0sbS5jZWxsQ29sb3JzPXAodC5mYWNlY29sb3IpKToodGhpcy5jb2xvcj10LmNvbG9yLG0ubWVzaENvbG9yPWwodC5jb2xvcikpO3RoaXMubWVzaC51cGRhdGUobSl9LGYuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuc2NlbmUuZ2xwbG90LnJlbW92ZSh0aGlzLm1lc2gpLHRoaXMubWVzaC5kaXNwb3NlKCl9LGUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQuZ2xwbG90LmdsLGE9bih7Z2w6cn0pLGk9bmV3IGgodCxhLGUudWlkKTtyZXR1cm4gYS5fdHJhY2U9aSxpLnVwZGF0ZShlKSx0LmdscGxvdC5hZGQoYSksaX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIjo2MDQsIi4uLy4uL2xpYi9nbF9mb3JtYXRfY29sb3IiOjcxNCwiLi4vLi4vbGliL3N0cjJyZ2JhcnJheSI6NzQwLCIuLi8uLi9wbG90cy9nbDNkL3ppcDMiOjgxNiwiYWxwaGEtc2hhcGUiOjY3LCJjb252ZXgtaHVsbCI6MTMyLCJkZWxhdW5heS10cmlhbmd1bGF0ZSI6MTY3LCJnbC1tZXNoM2QiOjI4M31dLDEwNjQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcmVnaXN0cnkiKSxhPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIiksbz10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIscyl7ZnVuY3Rpb24gbChyLG4pe3JldHVybiBhLmNvZXJjZSh0LGUsbyxyLG4pfWZ1bmN0aW9uIGModCl7dmFyIGU9dC5tYXAoZnVuY3Rpb24odCl7dmFyIGU9bCh0KTtyZXR1cm4gZSYmYS5pc0FycmF5T3JUeXBlZEFycmF5KGUpP2U6bnVsbH0pO3JldHVybiBlLmV2ZXJ5KGZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0Lmxlbmd0aD09PWVbMF0ubGVuZ3RofSkmJmV9YyhbIngiLCJ5IiwieiJdKT8oYyhbImkiLCJqIiwiayJdKSwoIWUuaXx8ZS5qJiZlLmspJiYoIWUuanx8ZS5rJiZlLmkpJiYoIWUua3x8ZS5pJiZlLmopPyhuLmdldENvbXBvbmVudE1ldGhvZCgiY2FsZW5kYXJzIiwiaGFuZGxlVHJhY2VEZWZhdWx0cyIpKHQsZSxbIngiLCJ5IiwieiJdLHMpLFsibGlnaHRpbmcuYW1iaWVudCIsImxpZ2h0aW5nLmRpZmZ1c2UiLCJsaWdodGluZy5zcGVjdWxhciIsImxpZ2h0aW5nLnJvdWdobmVzcyIsImxpZ2h0aW5nLmZyZXNuZWwiLCJsaWdodGluZy52ZXJ0ZXhub3JtYWxzZXBzaWxvbiIsImxpZ2h0aW5nLmZhY2Vub3JtYWxzZXBzaWxvbiIsImxpZ2h0cG9zaXRpb24ueCIsImxpZ2h0cG9zaXRpb24ueSIsImxpZ2h0cG9zaXRpb24ueiIsImZsYXRzaGFkaW5nIiwiYWxwaGFodWxsIiwiZGVsYXVuYXlheGlzIiwib3BhY2l0eSJdLmZvckVhY2goZnVuY3Rpb24odCl7bCh0KX0pLGwoImNvbnRvdXIuc2hvdyIpJiYobCgiY29udG91ci5jb2xvciIpLGwoImNvbnRvdXIud2lkdGgiKSksImludGVuc2l0eSJpbiB0PyhsKCJpbnRlbnNpdHkiKSxsKCJpbnRlbnNpdHltb2RlIiksaSh0LGUscyxsLHtwcmVmaXg6IiIsY0xldHRlcjoiYyJ9KSk6KGUuc2hvd3NjYWxlPSExLCJmYWNlY29sb3IiaW4gdD9sKCJmYWNlY29sb3IiKToidmVydGV4Y29sb3IiaW4gdD9sKCJ2ZXJ0ZXhjb2xvciIpOmwoImNvbG9yIixyKSksbCgidGV4dCIpLGwoImhvdmVydGV4dCIpLGwoImhvdmVydGVtcGxhdGUiKSxlLl9sZW5ndGg9bnVsbCk6ZS52aXNpYmxlPSExKTplLnZpc2libGU9ITF9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyI6NjAyLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vcmVnaXN0cnkiOjg0NiwiLi9hdHRyaWJ1dGVzIjoxMDYxfV0sMTA2NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNhbGM6dCgiLi9jYWxjIiksY29sb3JiYXI6e21pbjoiY21pbiIsbWF4OiJjbWF4In0scGxvdDp0KCIuL2NvbnZlcnQiKSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToibWVzaDNkIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9nbDNkIiksY2F0ZWdvcmllczpbImdsM2QiLCJzaG93TGVnZW5kIl0sbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvZ2wzZCI6ODA1LCIuL2F0dHJpYnV0ZXMiOjEwNjEsIi4vY2FsYyI6MTA2MiwiLi9jb252ZXJ0IjoxMDYzLCIuL2RlZmF1bHRzIjoxMDY0fV0sMTA2NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKS5leHRlbmRGbGF0LGE9dCgiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmcvYXR0cmlidXRlcyIpLmRhc2gsbz10KCIuLi8uLi9jb21wb25lbnRzL2Z4L2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL2NvbnN0YW50cy9kZWx0YS5qcyIpLGw9cy5JTkNSRUFTSU5HLkNPTE9SLGM9cy5ERUNSRUFTSU5HLkNPTE9SLHU9YS5saW5lO2Z1bmN0aW9uIGgodCl7cmV0dXJue2xpbmU6e2NvbG9yOm4oe30sdS5jb2xvcix7ZGZsdDp0fSksd2lkdGg6dS53aWR0aCxkYXNoOmksZWRpdFR5cGU6InN0eWxlIn0sZWRpdFR5cGU6InN0eWxlIn19ZS5leHBvcnRzPXt4Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LG9wZW46e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0saGlnaDp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxsb3c6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sY2xvc2U6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sbGluZTp7d2lkdGg6bih7fSx1LndpZHRoLHt9KSxkYXNoOm4oe30saSx7fSksZWRpdFR5cGU6InN0eWxlIn0saW5jcmVhc2luZzpoKGwpLGRlY3JlYXNpbmc6aChjKSx0ZXh0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsYXJyYXlPazohMCxlZGl0VHlwZToiY2FsYyJ9LGhvdmVydGV4dDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGFycmF5T2s6ITAsZWRpdFR5cGU6ImNhbGMifSx0aWNrd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4Oi41LGRmbHQ6LjMsZWRpdFR5cGU6ImNhbGMifSxob3ZlcmxhYmVsOm4oe30sby5ob3ZlcmxhYmVsLHtzcGxpdDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMSxlZGl0VHlwZToic3R5bGUifX0pfX0seyIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmcvYXR0cmlidXRlcyI6NjEyLCIuLi8uLi9jb21wb25lbnRzL2Z4L2F0dHJpYnV0ZXMiOjYyMiwiLi4vLi4vY29uc3RhbnRzL2RlbHRhLmpzIjo2ODcsIi4uLy4uL2xpYiI6NzE3LCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiOjExMjB9XSwxMDY3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGE9bi5fLGk9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxvPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5CQUROVU07ZnVuY3Rpb24gcyh0LGUscixuKXtyZXR1cm57bzp0LGg6ZSxsOnIsYzpufX1mdW5jdGlvbiBsKHQsZSxyLHMsbCl7Zm9yKHZhciBjPXMubWFrZUNhbGNkYXRhKGUsIm9wZW4iKSx1PXMubWFrZUNhbGNkYXRhKGUsImhpZ2giKSxoPXMubWFrZUNhbGNkYXRhKGUsImxvdyIpLGY9cy5tYWtlQ2FsY2RhdGEoZSwiY2xvc2UiKSxwPUFycmF5LmlzQXJyYXkoZS50ZXh0KSxkPUFycmF5LmlzQXJyYXkoZS5ob3ZlcnRleHQpLGc9ITAsdj1udWxsLG09W10seT0wO3k8ci5sZW5ndGg7eSsrKXt2YXIgeD1yW3ldLGI9Y1t5XSxfPXVbeV0sdz1oW3ldLGs9Zlt5XTtpZih4IT09byYmYiE9PW8mJl8hPT1vJiZ3IT09byYmayE9PW8pe2s9PT1iP251bGwhPT12JiZrIT09diYmKGc9az52KTpnPWs+Yix2PWs7dmFyIFQ9bChiLF8sdyxrKTtULnBvcz14LFQueWM9KGIraykvMixULmk9eSxULmRpcj1nPyJpbmNyZWFzaW5nIjoiZGVjcmVhc2luZyIsVC54PVQucG9zLFQueT1bdyxfXSxwJiYoVC50eD1lLnRleHRbeV0pLGQmJihULmh0eD1lLmhvdmVydGV4dFt5XSksbS5wdXNoKFQpfWVsc2UgbS5wdXNoKHtwb3M6eCxlbXB0eTohMH0pfXJldHVybiBlLl9leHRyZW1lc1tzLl9pZF09aS5maW5kRXh0cmVtZXMocyxuLmNvbmNhdChoLHUpLHtwYWRkZWQ6ITB9KSxtLmxlbmd0aCYmKG1bMF0udD17bGFiZWxzOntvcGVuOmEodCwib3BlbjoiKSsiICIsaGlnaDphKHQsImhpZ2g6IikrIiAiLGxvdzphKHQsImxvdzoiKSsiICIsY2xvc2U6YSh0LCJjbG9zZToiKSsiICJ9fSksbX1lLmV4cG9ydHM9e2NhbGM6ZnVuY3Rpb24odCxlKXt2YXIgcj1pLmdldEZyb21JZCh0LGUueGF4aXMpLGE9aS5nZXRGcm9tSWQodCxlLnlheGlzKSxvPWZ1bmN0aW9uKHQsZSxyKXt2YXIgYT1yLl9taW5EaWZmO2lmKCFhKXt2YXIgaSxvPXQuX2Z1bGxEYXRhLHM9W107Zm9yKGE9MS8wLGk9MDtpPG8ubGVuZ3RoO2krKyl7dmFyIGw9b1tpXTtpZigib2hsYyI9PT1sLnR5cGUmJiEwPT09bC52aXNpYmxlJiZsLnhheGlzPT09ZS5faWQpe3MucHVzaChsKTt2YXIgYz1lLm1ha2VDYWxjZGF0YShsLCJ4Iik7bC5feGNhbGM9Yzt2YXIgdT1uLmRpc3RpbmN0VmFscyhjKS5taW5EaWZmO3UmJmlzRmluaXRlKHUpJiYoYT1NYXRoLm1pbihhLHUpKX19Zm9yKGE9PT0xLzAmJihhPTEpLGk9MDtpPHMubGVuZ3RoO2krKylzW2ldLl9taW5EaWZmPWF9cmV0dXJuIGEqci50aWNrd2lkdGh9KHQscixlKSxjPWUuX21pbkRpZmY7ZS5fbWluRGlmZj1udWxsO3ZhciB1PWUuX3hjYWxjO2UuX3hjYWxjPW51bGw7dmFyIGg9bCh0LGUsdSxhLHMpO3JldHVybiBlLl9leHRyZW1lc1tyLl9pZF09aS5maW5kRXh0cmVtZXMocix1LHt2cGFkOmMvMn0pLGgubGVuZ3RoPyhuLmV4dGVuZEZsYXQoaFswXS50LHt3SG92ZXI6Yy8yLHRpY2tMZW46b30pLGgpOlt7dDp7ZW1wdHk6ITB9fV19LGNhbGNDb21tb246bH19LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NjkzLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjc2NX1dLDEwNjg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuL29obGNfZGVmYXVsdHMiKSxpPXQoIi4vYXR0cmlidXRlcyIpO2Z1bmN0aW9uIG8odCxlLHIsbil7cihuKyIubGluZS5jb2xvciIpLHIobisiLmxpbmUud2lkdGgiLGUubGluZS53aWR0aCkscihuKyIubGluZS5kYXNoIixlLmxpbmUuZGFzaCl9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMpe2Z1bmN0aW9uIGwocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLGkscixhKX1hKHQsZSxsLHMpPyhsKCJsaW5lLndpZHRoIiksbCgibGluZS5kYXNoIiksbyh0LGUsbCwiaW5jcmVhc2luZyIpLG8odCxlLGwsImRlY3JlYXNpbmciKSxsKCJ0ZXh0IiksbCgiaG92ZXJ0ZXh0IiksbCgidGlja3dpZHRoIikscy5fcmVxdWVzdFJhbmdlc2xpZGVyW2UueGF4aXNdPSEwKTplLnZpc2libGU9ITF9fSx7Ii4uLy4uL2xpYiI6NzE3LCIuL2F0dHJpYnV0ZXMiOjEwNjYsIi4vb2hsY19kZWZhdWx0cyI6MTA3MX1dLDEwNjk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxhPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9meCIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLHM9dCgiLi4vLi4vbGliIikuZmlsbFRleHQsbD10KCIuLi8uLi9jb25zdGFudHMvZGVsdGEuanMiKSxjPXtpbmNyZWFzaW5nOmwuSU5DUkVBU0lORy5TWU1CT0wsZGVjcmVhc2luZzpsLkRFQ1JFQVNJTkcuU1lNQk9MfTtmdW5jdGlvbiB1KHQsZSxyLG4pe3ZhciBhLHMsbD10LmNkLGM9dC54YSx1PWxbMF0udHJhY2UsaD1sWzBdLnQsZj11LnR5cGUscD0ib2hsYyI9PT1mPyJsIjoibWluIixkPSJvaGxjIj09PWY/ImgiOiJtYXgiLGc9aC5iUG9zfHwwLHY9ZnVuY3Rpb24odCl7cmV0dXJuIHQucG9zK2ctZX0sbT1oLmJkUG9zfHxoLnRpY2tMZW4seT1oLndIb3Zlcix4PU1hdGgubWluKDEsbS9NYXRoLmFicyhjLnIyYyhjLnJhbmdlWzFdKS1jLnIyYyhjLnJhbmdlWzBdKSkpO2Z1bmN0aW9uIGIodCl7dmFyIGU9dih0KTtyZXR1cm4gaS5pbmJveChlLXksZSt5LGEpfWZ1bmN0aW9uIF8odCl7dmFyIGU9dFtwXSxuPXRbZF07cmV0dXJuIGU9PT1ufHxpLmluYm94KGUtcixuLXIsYSl9ZnVuY3Rpb24gdyh0KXtyZXR1cm4oYih0KStfKHQpKS8yfWE9dC5tYXhIb3ZlckRpc3RhbmNlLXgscz10Lm1heFNwaWtlRGlzdGFuY2UteDt2YXIgaz1pLmdldERpc3RhbmNlRnVuY3Rpb24obixiLF8sdyk7aWYoaS5nZXRDbG9zZXN0KGwsayx0KSwhMT09PXQuaW5kZXgpcmV0dXJuIG51bGw7dmFyIFQ9bFt0LmluZGV4XTtpZihULmVtcHR5KXJldHVybiBudWxsO3ZhciBNPXVbVC5kaXJdLEE9TS5saW5lLmNvbG9yO3JldHVybiBvLm9wYWNpdHkoQSkmJk0ubGluZS53aWR0aD90LmNvbG9yPUE6dC5jb2xvcj1NLmZpbGxjb2xvcix0LngwPWMuYzJwKFQucG9zK2ctbSwhMCksdC54MT1jLmMycChULnBvcytnK20sITApLHQueExhYmVsVmFsPVQucG9zLHQuc3Bpa2VEaXN0YW5jZT13KFQpKnMvYSx0LnhTcGlrZT1jLmMycChULnBvcywhMCksdH1mdW5jdGlvbiBoKHQsZSxyLGkpe3ZhciBvPXQuY2Qscz10LnlhLGw9b1swXS50cmFjZSxjPW9bMF0udCxoPVtdLGY9dSh0LGUscixpKTtpZighZilyZXR1cm5bXTt2YXIgcD1vW2YuaW5kZXhdLmhpfHxsLmhvdmVyaW5mbyxkPXAuc3BsaXQoIisiKTtpZighKCJhbGwiPT09cHx8LTEhPT1kLmluZGV4T2YoInkiKSkpcmV0dXJuW107Zm9yKHZhciBnPVsiaGlnaCIsIm9wZW4iLCJjbG9zZSIsImxvdyJdLHY9e30sbT0wO208Zy5sZW5ndGg7bSsrKXt2YXIgeSx4PWdbbV0sYj1sW3hdW2YuaW5kZXhdLF89cy5jMnAoYiwhMCk7YiBpbiB2Pyh5PXZbYl0pLnlMYWJlbCs9Ijxicj4iK2MubGFiZWxzW3hdK24uaG92ZXJMYWJlbFRleHQocyxiKTooKHk9YS5leHRlbmRGbGF0KHt9LGYpKS55MD15LnkxPV8seS55TGFiZWxWYWw9Yix5LnlMYWJlbD1jLmxhYmVsc1t4XStuLmhvdmVyTGFiZWxUZXh0KHMsYikseS5uYW1lPSIiLGgucHVzaCh5KSx2W2JdPXkpfXJldHVybiBofWZ1bmN0aW9uIGYodCxlLHIsYSl7dmFyIGk9dC5jZCxvPXQueWEsbD1pWzBdLnRyYWNlLGg9aVswXS50LGY9dSh0LGUscixhKTtpZighZilyZXR1cm5bXTt2YXIgcD1pW2YuaW5kZXhdLGQ9Zi5pbmRleD1wLmksZz1wLmRpcjtmdW5jdGlvbiB2KHQpe3JldHVybiBoLmxhYmVsc1t0XStuLmhvdmVyTGFiZWxUZXh0KG8sbFt0XVtkXSl9dmFyIG09cC5oaXx8bC5ob3ZlcmluZm8seT1tLnNwbGl0KCIrIikseD0iYWxsIj09PW0sYj14fHwtMSE9PXkuaW5kZXhPZigieSIpLF89eHx8LTEhPT15LmluZGV4T2YoInRleHQiKSx3PWI/W3YoIm9wZW4iKSx2KCJoaWdoIiksdigibG93IiksdigiY2xvc2UiKSsiICAiK2NbZ11dOltdO3JldHVybiBfJiZzKHAsbCx3KSxmLmV4dHJhVGV4dD13LmpvaW4oIjxicj4iKSxmLnkwPWYueTE9by5jMnAocC55YywhMCksW2ZdfWUuZXhwb3J0cz17aG92ZXJQb2ludHM6ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIHQuY2RbMF0udHJhY2UuaG92ZXJsYWJlbC5zcGxpdD9oKHQsZSxyLG4pOmYodCxlLHIsbil9LGhvdmVyU3BsaXQ6aCxob3Zlck9uUG9pbnRzOmZ9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjU5MiwiLi4vLi4vY29tcG9uZW50cy9meCI6NjMwLCIuLi8uLi9jb25zdGFudHMvZGVsdGEuanMiOjY4NywiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo3NjV9XSwxMDcwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bW9kdWxlVHlwZToidHJhY2UiLG5hbWU6Im9obGMiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbiIpLGNhdGVnb3JpZXM6WyJjYXJ0ZXNpYW4iLCJzdmciLCJzaG93TGVnZW5kIl0sbWV0YTp7fSxhdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjYWxjOnQoIi4vY2FsYyIpLmNhbGMscGxvdDp0KCIuL3Bsb3QiKSxzdHlsZTp0KCIuL3N0eWxlIiksaG92ZXJQb2ludHM6dCgiLi9ob3ZlciIpLmhvdmVyUG9pbnRzLHNlbGVjdFBvaW50czp0KCIuL3NlbGVjdCIpfX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjc3NiwiLi9hdHRyaWJ1dGVzIjoxMDY2LCIuL2NhbGMiOjEwNjcsIi4vZGVmYXVsdHMiOjEwNjgsIi4vaG92ZXIiOjEwNjksIi4vcGxvdCI6MTA3MiwiLi9zZWxlY3QiOjEwNzMsIi4vc3R5bGUiOjEwNzR9XSwxMDcxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3JlZ2lzdHJ5IiksYT10KCIuLi8uLi9saWIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaSl7dmFyIG89cigieCIpLHM9cigib3BlbiIpLGw9cigiaGlnaCIpLGM9cigibG93IiksdT1yKCJjbG9zZSIpO2lmKHIoImhvdmVybGFiZWwuc3BsaXQiKSxuLmdldENvbXBvbmVudE1ldGhvZCgiY2FsZW5kYXJzIiwiaGFuZGxlVHJhY2VEZWZhdWx0cyIpKHQsZSxbIngiXSxpKSxzJiZsJiZjJiZ1KXt2YXIgaD1NYXRoLm1pbihzLmxlbmd0aCxsLmxlbmd0aCxjLmxlbmd0aCx1Lmxlbmd0aCk7cmV0dXJuIG8mJihoPU1hdGgubWluKGgsYS5taW5Sb3dMZW5ndGgobykpKSxlLl9sZW5ndGg9aCxofX19LHsiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3JlZ2lzdHJ5Ijo4NDZ9XSwxMDcyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksYT10KCIuLi8uLi9saWIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaSl7dmFyIG89ZS54YXhpcyxzPWUueWF4aXM7YS5tYWtlVHJhY2VHcm91cHMoaSxyLCJ0cmFjZSBvaGxjIikuZWFjaChmdW5jdGlvbih0KXt2YXIgZT1uLnNlbGVjdCh0aGlzKSxyPXRbMF0saT1yLnQ7aWYoITAhPT1yLnRyYWNlLnZpc2libGV8fGkuZW1wdHkpZS5yZW1vdmUoKTtlbHNle3ZhciBsPWkudGlja0xlbixjPWUuc2VsZWN0QWxsKCJwYXRoIikuZGF0YShhLmlkZW50aXR5KTtjLmVudGVyKCkuYXBwZW5kKCJwYXRoIiksYy5leGl0KCkucmVtb3ZlKCksYy5hdHRyKCJkIixmdW5jdGlvbih0KXtpZih0LmVtcHR5KXJldHVybiJNMCwwWiI7dmFyIGU9by5jMnAodC5wb3MsITApLHI9by5jMnAodC5wb3MtbCwhMCksbj1vLmMycCh0LnBvcytsLCEwKTtyZXR1cm4iTSIrcisiLCIrcy5jMnAodC5vLCEwKSsiSCIrZSsiTSIrZSsiLCIrcy5jMnAodC5oLCEwKSsiViIrcy5jMnAodC5sLCEwKSsiTSIrbisiLCIrcy5jMnAodC5jLCEwKSsiSCIrZX0pfX0pfX0seyIuLi8uLi9saWIiOjcxNyxkMzoxNjV9XSwxMDczOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLG49dC5jZCxhPXQueGF4aXMsaT10LnlheGlzLG89W10scz1uWzBdLnQuYlBvc3x8MDtpZighMT09PWUpZm9yKHI9MDtyPG4ubGVuZ3RoO3IrKyluW3JdLnNlbGVjdGVkPTA7ZWxzZSBmb3Iocj0wO3I8bi5sZW5ndGg7cisrKXt2YXIgbD1uW3JdO2UuY29udGFpbnMoW2EuYzJwKGwucG9zK3MpLGkuYzJwKGwueWMpXSxudWxsLGwuaSx0KT8oby5wdXNoKHtwb2ludE51bWJlcjpsLmkseDphLmMyZChsLnBvcykseTppLmMyZChsLnljKX0pLGwuc2VsZWN0ZWQ9MSk6bC5zZWxlY3RlZD0wfXJldHVybiBvfX0se31dLDEwNzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG89cnx8bi5zZWxlY3QodCkuc2VsZWN0QWxsKCJnLm9obGNsYXllciIpLnNlbGVjdEFsbCgiZy50cmFjZSIpO28uc3R5bGUoIm9wYWNpdHkiLGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdLnRyYWNlLm9wYWNpdHl9KSxvLmVhY2goZnVuY3Rpb24odCl7dmFyIGU9dFswXS50cmFjZTtuLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoInBhdGgiKS5lYWNoKGZ1bmN0aW9uKHQpe2lmKCF0LmVtcHR5KXt2YXIgcj1lW3QuZGlyXS5saW5lO24uc2VsZWN0KHRoaXMpLnN0eWxlKCJmaWxsIiwibm9uZSIpLmNhbGwoaS5zdHJva2Usci5jb2xvcikuY2FsbChhLmRhc2hMaW5lLHIuZGFzaCxyLndpZHRoKS5zdHlsZSgib3BhY2l0eSIsZS5zZWxlY3RlZHBvaW50cyYmIXQuc2VsZWN0ZWQ/LjM6MSl9fSl9KX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTkyLCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjYxMyxkMzoxNjV9XSwxMDc1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LGE9dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIiksbz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLHM9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxsPXQoIi4uLy4uL3Bsb3RzL2RvbWFpbiIpLmF0dHJpYnV0ZXMsYz1uKHtlZGl0VHlwZToiY2FsYyJ9LG8oImxpbmUiLHtlZGl0VHlwZU92ZXJyaWRlOiJjYWxjIn0pLHtzaGFwZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsibGluZWFyIiwiaHNwbGluZSJdLGRmbHQ6ImxpbmVhciIsZWRpdFR5cGU6InBsb3QifSxob3ZlcnRlbXBsYXRlOnMoe2VkaXRUeXBlOiJwbG90IixhcnJheU9rOiExfSx7a2V5czpbImNvdW50IiwicHJvYmFiaWxpdHkiXX0pfSk7ZS5leHBvcnRzPXtkb21haW46bCh7bmFtZToicGFyY2F0cyIsdHJhY2U6ITAsZWRpdFR5cGU6ImNhbGMifSksaG92ZXJpbmZvOm4oe30sYS5ob3ZlcmluZm8se2ZsYWdzOlsiY291bnQiLCJwcm9iYWJpbGl0eSJdLGVkaXRUeXBlOiJwbG90IixhcnJheU9rOiExfSksaG92ZXJvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiY2F0ZWdvcnkiLCJjb2xvciIsImRpbWVuc2lvbiJdLGRmbHQ6ImNhdGVnb3J5IixlZGl0VHlwZToicGxvdCJ9LGhvdmVydGVtcGxhdGU6cyh7ZWRpdFR5cGU6InBsb3QiLGFycmF5T2s6ITF9LHtrZXlzOlsiY291bnQiLCJwcm9iYWJpbGl0eSIsImNhdGVnb3J5IiwiY2F0ZWdvcnljb3VudCIsImNvbG9yY291bnQiLCJiYW5kY29sb3Jjb3VudCJdfSksYXJyYW5nZW1lbnQ6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInBlcnBlbmRpY3VsYXIiLCJmcmVlZm9ybSIsImZpeGVkIl0sZGZsdDoicGVycGVuZGljdWxhciIsZWRpdFR5cGU6InBsb3QifSxidW5kbGVjb2xvcnM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6InBsb3QifSxzb3J0cGF0aHM6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImZvcndhcmQiLCJiYWNrd2FyZCJdLGRmbHQ6ImZvcndhcmQiLGVkaXRUeXBlOiJwbG90In0sbGFiZWxmb250Omkoe2VkaXRUeXBlOiJjYWxjIn0pLHRpY2tmb250Omkoe2VkaXRUeXBlOiJjYWxjIn0pLGRpbWVuc2lvbnM6e19pc0xpbmtlZFRvQXJyYXk6ImRpbWVuc2lvbiIsbGFiZWw6e3ZhbFR5cGU6InN0cmluZyIsZWRpdFR5cGU6ImNhbGMifSxjYXRlZ29yeW9yZGVyOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0cmFjZSIsImNhdGVnb3J5IGFzY2VuZGluZyIsImNhdGVnb3J5IGRlc2NlbmRpbmciLCJhcnJheSJdLGRmbHQ6InRyYWNlIixlZGl0VHlwZToiY2FsYyJ9LGNhdGVnb3J5YXJyYXk6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sdGlja3RleHQ6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sdmFsdWVzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixkZmx0OltdLGVkaXRUeXBlOiJjYWxjIn0sZGlzcGxheWluZGV4Ont2YWxUeXBlOiJpbnRlZ2VyIixlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYWxjIix2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJjYWxjIn19LGxpbmU6Yyxjb3VudHM6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxLGFycmF5T2s6ITAsZWRpdFR5cGU6ImNhbGMifSxjdXN0b21kYXRhOnZvaWQgMCxob3ZlcmxhYmVsOnZvaWQgMCxpZHM6dm9pZCAwLGxlZ2VuZGdyb3VwOnZvaWQgMCxvcGFjaXR5OnZvaWQgMCxzZWxlY3RlZHBvaW50czp2b2lkIDAsc2hvd2xlZ2VuZDp2b2lkIDB9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjo1OTksIi4uLy4uL2xpYi9leHRlbmQiOjcwOCwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6NzYyLCIuLi8uLi9wbG90cy9kb21haW4iOjc5MCwiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIjo3OTEsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjg0MX1dLDEwNzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvZ2V0X2RhdGEiKS5nZXRNb2R1bGVDYWxjRGF0YSxhPXQoIi4vcGxvdCIpO3IubmFtZT0icGFyY2F0cyIsci5wbG90PWZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBvPW4odC5jYWxjZGF0YSwicGFyY2F0cyIpO2lmKG8ubGVuZ3RoKXt2YXIgcz1vWzBdO2EodCxzLHIsaSl9fSxyLmNsZWFuPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPW4uX2hhcyYmbi5faGFzKCJwYXJjYXRzIiksaT1lLl9oYXMmJmUuX2hhcygicGFyY2F0cyIpO2EmJiFpJiZuLl9wYXBlcmRpdi5zZWxlY3RBbGwoIi5wYXJjYXRzIikucmVtb3ZlKCl9fSx7Ii4uLy4uL3Bsb3RzL2dldF9kYXRhIjo4MDAsIi4vcGxvdCI6MTA4MX1dLDEwNzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliL2d1cCIpLndyYXAsYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvaGVscGVycyIpLmhhc0NvbG9yc2NhbGUsaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY2FsYyIpLG89dCgiLi4vLi4vbGliL2ZpbHRlcl91bmlxdWUuanMiKSxzPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGw9dCgiLi4vLi4vbGliIik7ZnVuY3Rpb24gYyh0LGUscil7dC52YWx1ZUluZHMucHVzaChlKSx0LmNvdW50Kz1yfWZ1bmN0aW9uIHUodCxlLHIpe3JldHVybntjYXRlZ29yeUluZHM6dCxjb2xvcjplLHJhd0NvbG9yOnIsdmFsdWVJbmRzOltdLGNvdW50OjB9fWZ1bmN0aW9uIGgodCxlLHIpe3QudmFsdWVJbmRzLnB1c2goZSksdC5jb3VudCs9cn1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1sLmZpbHRlclZpc2libGUoZS5kaW1lbnNpb25zKTtpZigwPT09ci5sZW5ndGgpcmV0dXJuW107dmFyIGYscCxkLGc9ci5tYXAoZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuInRyYWNlIj09PXQuY2F0ZWdvcnlvcmRlcj9lPW51bGw6ImFycmF5Ij09PXQuY2F0ZWdvcnlvcmRlcj9lPXQuY2F0ZWdvcnlhcnJheTooZT1vKHQudmFsdWVzKS5zb3J0KCksImNhdGVnb3J5IGRlc2NlbmRpbmciPT09dC5jYXRlZ29yeW9yZGVyJiYoZT1lLnJldmVyc2UoKSkpLGZ1bmN0aW9uKHQsZSl7ZT1udWxsPT1lP1tdOmUubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0fSk7dmFyIHI9e30sbj17fSxhPVtdO2UuZm9yRWFjaChmdW5jdGlvbih0LGUpe3JbdF09MCxuW3RdPWV9KTtmb3IodmFyIGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIG8scz10W2ldO3ZvaWQgMD09PXJbc10/KHJbc109MSxvPWUucHVzaChzKS0xLG5bc109byk6KHJbc10rKyxvPW5bc10pLGEucHVzaChvKX12YXIgbD1lLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gclt0XX0pO3JldHVybnt1bmlxdWVWYWx1ZXM6ZSx1bmlxdWVDb3VudHM6bCxpbmRzOmF9fSh0LnZhbHVlcyxlKX0pO2Y9bC5pc0FycmF5T3JUeXBlZEFycmF5KGUuY291bnRzKT9lLmNvdW50czpbZS5jb3VudHNdLGZ1bmN0aW9uKHQpe3ZhciBlO2lmKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodC5sZW5ndGgpLHI9MDtyPHQubGVuZ3RoO3IrKyl7aWYodFtyXTwwfHx0W3JdPj10Lmxlbmd0aClyZXR1cm4hMTtpZih2b2lkIDAhPT1lW3Rbcl1dKXJldHVybiExO2VbdFtyXV09ITB9cmV0dXJuITB9KHQubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRpc3BsYXlpbmRleH0pKSlmb3IoZT0wO2U8dC5sZW5ndGg7ZSsrKXRbZV0uX2Rpc3BsYXlpbmRleD10W2VdLmRpc3BsYXlpbmRleDtlbHNlIGZvcihlPTA7ZTx0Lmxlbmd0aDtlKyspdFtlXS5fZGlzcGxheWluZGV4PWV9KHIpLHIuZm9yRWFjaChmdW5jdGlvbih0LGUpeyFmdW5jdGlvbih0LGUpe3QuX2NhdGVnb3J5YXJyYXk9ZS51bmlxdWVWYWx1ZXMsbnVsbD09PXQudGlja3RleHR8fHZvaWQgMD09PXQudGlja3RleHQ/dC5fdGlja3RleHQ9W106dC5fdGlja3RleHQ9dC50aWNrdGV4dC5zbGljZSgpO2Zvcih2YXIgcj10Ll90aWNrdGV4dC5sZW5ndGg7cjxlLnVuaXF1ZVZhbHVlcy5sZW5ndGg7cisrKXQuX3RpY2t0ZXh0LnB1c2goZS51bmlxdWVWYWx1ZXNbcl0pfSh0LGdbZV0pfSk7dmFyIHYsbT1lLmxpbmU7bT8oYShlLCJsaW5lIikmJmkodCxlLHt2YWxzOmUubGluZS5jb2xvcixjb250YWluZXJTdHI6ImxpbmUiLGNMZXR0ZXI6ImMifSksdj1zLnRyeUNvbG9yc2NhbGUobSkpOnY9bC5pZGVudGl0eTt2YXIgeSx4LGIsXyx3LGs9clswXS52YWx1ZXMubGVuZ3RoLFQ9e30sTT1nLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5pbmRzfSk7Zm9yKGQ9MCx5PTA7eTxrO3krKyl7dmFyIEE9W107Zm9yKHg9MDt4PE0ubGVuZ3RoO3grKylBLnB1c2goTVt4XVt5XSk7cD1mW3klZi5sZW5ndGhdLGQrPXA7dmFyIFM9KGI9eSxfPXZvaWQgMCx3PXZvaWQgMCxsLmlzQXJyYXlPclR5cGVkQXJyYXkobS5jb2xvcik/dz1fPW0uY29sb3JbYiVtLmNvbG9yLmxlbmd0aF06Xz1tLmNvbG9yLHtjb2xvcjp2KF8pLHJhd0NvbG9yOnd9KSxFPUErIi0iK1MucmF3Q29sb3I7dm9pZCAwPT09VFtFXSYmKFRbRV09dShBLFMuY29sb3IsUy5yYXdDb2xvcikpLGgoVFtFXSx5LHApfXZhciBMLEM9ci5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm4gcj1lLG49dC5faW5kZXgsYT10Ll9kaXNwbGF5aW5kZXgsaT10LmxhYmVsLHtkaW1lbnNpb25JbmQ6cixjb250YWluZXJJbmQ6bixkaXNwbGF5SW5kOmEsZGltZW5zaW9uTGFiZWw6aSxjb3VudDpkLGNhdGVnb3JpZXM6W10sZHJhZ1g6bnVsbH07dmFyIHIsbixhLGl9KTtmb3IoeT0wO3k8azt5KyspZm9yKHA9Zlt5JWYubGVuZ3RoXSx4PTA7eDxDLmxlbmd0aDt4Kyspe3ZhciBQPUNbeF0uY29udGFpbmVySW5kLE89Z1t4XS5pbmRzW3ldLHo9Q1t4XS5jYXRlZ29yaWVzO2lmKHZvaWQgMD09PXpbT10pe3ZhciBJPWUuZGltZW5zaW9uc1tQXS5fY2F0ZWdvcnlhcnJheVtPXSxEPWUuZGltZW5zaW9uc1tQXS5fdGlja3RleHRbT107eltPXT17ZGltZW5zaW9uSW5kOngsY2F0ZWdvcnlJbmQ6TD1PLGNhdGVnb3J5VmFsdWU6SSxkaXNwbGF5SW5kOkwsY2F0ZWdvcnlMYWJlbDpELHZhbHVlSW5kczpbXSxjb3VudDowLGRyYWdZOm51bGx9fWMoeltPXSx5LHApfXJldHVybiBuKGZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10Lm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5jYXRlZ29yaWVzLmxlbmd0aH0pLnJlZHVjZShmdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLm1heCh0LGUpfSk7cmV0dXJue2RpbWVuc2lvbnM6dCxwYXRoczplLHRyYWNlOnZvaWQgMCxtYXhDYXRzOm4sY291bnQ6cn19KEMsVCxkKSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIjo2MDAsIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9oZWxwZXJzIjo2MDMsIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjEzLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vbGliL2ZpbHRlcl91bmlxdWUuanMiOjcwOSwiLi4vLi4vbGliL2d1cCI6NzE1fV0sMTA3ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9oZWxwZXJzIikuaGFzQ29sb3JzY2FsZSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyIpLG89dCgiLi4vLi4vcGxvdHMvZG9tYWluIikuZGVmYXVsdHMscz10KCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiKSxsPXQoIi4vYXR0cmlidXRlcyIpLGM9dCgiLi4vcGFyY29vcmRzL21lcmdlX2xlbmd0aCIpO2Z1bmN0aW9uIHUodCxlKXtmdW5jdGlvbiByKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxsLmRpbWVuc2lvbnMscixhKX12YXIgYT1yKCJ2YWx1ZXMiKSxpPXIoInZpc2libGUiKTtpZihhJiZhLmxlbmd0aHx8KGk9ZS52aXNpYmxlPSExKSxpKXtyKCJsYWJlbCIpLHIoImRpc3BsYXlpbmRleCIsZS5faW5kZXgpO3ZhciBvLHM9dC5jYXRlZ29yeWFycmF5LGM9QXJyYXkuaXNBcnJheShzKSYmcy5sZW5ndGg+MDtjJiYobz0iYXJyYXkiKTt2YXIgdT1yKCJjYXRlZ29yeW9yZGVyIixvKTsiYXJyYXkiPT09dT8ocigiY2F0ZWdvcnlhcnJheSIpLHIoInRpY2t0ZXh0IikpOihkZWxldGUgdC5jYXRlZ29yeWFycmF5LGRlbGV0ZSB0LnRpY2t0ZXh0KSxjfHwiYXJyYXkiIT09dXx8KGUuY2F0ZWdvcnlvcmRlcj0idHJhY2UiKX19ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGgpe2Z1bmN0aW9uIGYocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLGwscixhKX12YXIgcD1zKHQsZSx7bmFtZToiZGltZW5zaW9ucyIsaGFuZGxlSXRlbURlZmF1bHRzOnV9KSxkPWZ1bmN0aW9uKHQsZSxyLG8scyl7cygibGluZS5zaGFwZSIpLHMoImxpbmUuaG92ZXJ0ZW1wbGF0ZSIpO3ZhciBsPXMoImxpbmUuY29sb3IiLG8uY29sb3J3YXlbMF0pO2lmKGEodCwibGluZSIpJiZuLmlzQXJyYXlPclR5cGVkQXJyYXkobCkpe2lmKGwubGVuZ3RoKXJldHVybiBzKCJsaW5lLmNvbG9yc2NhbGUiKSxpKHQsZSxvLHMse3ByZWZpeDoibGluZS4iLGNMZXR0ZXI6ImMifSksbC5sZW5ndGg7ZS5saW5lLmNvbG9yPXJ9cmV0dXJuIDEvMH0odCxlLHIsaCxmKTtvKGUsaCxmKSxBcnJheS5pc0FycmF5KHApJiZwLmxlbmd0aHx8KGUudmlzaWJsZT0hMSksYyhlLHAsInZhbHVlcyIsZCksZigiaG92ZXJvbiIpLGYoImhvdmVydGVtcGxhdGUiKSxmKCJhcnJhbmdlbWVudCIpLGYoImJ1bmRsZWNvbG9ycyIpLGYoInNvcnRwYXRocyIpLGYoImNvdW50cyIpO3ZhciBnPXtmYW1pbHk6aC5mb250LmZhbWlseSxzaXplOk1hdGgucm91bmQoaC5mb250LnNpemUpLGNvbG9yOmguZm9udC5jb2xvcn07bi5jb2VyY2VGb250KGYsImxhYmVsZm9udCIsZyk7dmFyIHY9e2ZhbWlseTpoLmZvbnQuZmFtaWx5LHNpemU6TWF0aC5yb3VuZChoLmZvbnQuc2l6ZS8xLjIpLGNvbG9yOmguZm9udC5jb2xvcn07bi5jb2VyY2VGb250KGYsInRpY2tmb250Iix2KX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIjo2MDIsIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9oZWxwZXJzIjo2MDMsIi4uLy4uL2xpYiI6NzE3LCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiOjc2MSwiLi4vLi4vcGxvdHMvZG9tYWluIjo3OTAsIi4uL3BhcmNvb3Jkcy9tZXJnZV9sZW5ndGgiOjEwOTEsIi4vYXR0cmlidXRlcyI6MTA3NX1dLDEwNzk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjYWxjOnQoIi4vY2FsYyIpLHBsb3Q6dCgiLi9wbG90IiksY29sb3JiYXI6e2NvbnRhaW5lcjoibGluZSIsbWluOiJjbWluIixtYXg6ImNtYXgifSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToicGFyY2F0cyIsYmFzZVBsb3RNb2R1bGU6dCgiLi9iYXNlX3Bsb3QiKSxjYXRlZ29yaWVzOlsibm9PcGFjaXR5Il0sbWV0YTp7fX19LHsiLi9hdHRyaWJ1dGVzIjoxMDc1LCIuL2Jhc2VfcGxvdCI6MTA3NiwiLi9jYWxjIjoxMDc3LCIuL2RlZmF1bHRzIjoxMDc4LCIuL3Bsb3QiOjEwODF9XSwxMDgwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksYT10KCIuLi8uLi9wbG90X2FwaS9wbG90X2FwaSIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9meCIpLG89dCgiLi4vLi4vbGliIikscz10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxsPXQoInRpbnljb2xvcjIiKSxjPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpO2Z1bmN0aW9uIHUodCxlLHIsYSl7dmFyIGk9dC5tYXAoZnVuY3Rpb24odCxlLHIpe3ZhciBuLGE9clswXSxpPWUubWFyZ2lufHx7bDo4MCxyOjgwLHQ6MTAwLGI6ODB9LG89YS50cmFjZSxzPW8uZG9tYWluLGw9ZS53aWR0aCxjPWUuaGVpZ2h0LHU9TWF0aC5mbG9vcihsKihzLnhbMV0tcy54WzBdKSksaD1NYXRoLmZsb29yKGMqKHMueVsxXS1zLnlbMF0pKSxmPXMueFswXSpsK2kubCxwPWUuaGVpZ2h0LXMueVsxXSplLmhlaWdodCtpLnQsZD1vLmxpbmUuc2hhcGU7bj0iYWxsIj09PW8uaG92ZXJpbmZvP1siY291bnQiLCJwcm9iYWJpbGl0eSJdOihvLmhvdmVyaW5mb3x8IiIpLnNwbGl0KCIrIik7dmFyIGc9e3RyYWNlOm8sa2V5Om8udWlkLG1vZGVsOmEseDpmLHk6cCx3aWR0aDp1LGhlaWdodDpoLGhvdmVyb246by5ob3Zlcm9uLGhvdmVyaW5mb0l0ZW1zOm4sYXJyYW5nZW1lbnQ6by5hcnJhbmdlbWVudCxidW5kbGVjb2xvcnM6by5idW5kbGVjb2xvcnMsc29ydHBhdGhzOm8uc29ydHBhdGhzLGxhYmVsZm9udDpvLmxhYmVsZm9udCxjYXRlZ29yeWxhYmVsZm9udDpvLnRpY2tmb250LHBhdGhTaGFwZTpkLGRyYWdEaW1lbnNpb246bnVsbCxtYXJnaW46aSxwYXRoczpbXSxkaW1lbnNpb25zOltdLGdyYXBoRGl2OnQsdHJhY2VTZWxlY3Rpb246bnVsbCxwYXRoU2VsZWN0aW9uOm51bGwsZGltZW5zaW9uU2VsZWN0aW9uOm51bGx9O2EuZGltZW5zaW9ucyYmKEYoZyksUihnKSk7cmV0dXJuIGd9LmJpbmQoMCxlLHIpKSxsPWEuc2VsZWN0QWxsKCJnLnBhcmNhdHNsYXllciIpLmRhdGEoW251bGxdKTtsLmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJwYXJjYXRzbGF5ZXIiKS5zdHlsZSgicG9pbnRlci1ldmVudHMiLCJhbGwiKTt2YXIgdT1sLnNlbGVjdEFsbCgiZy50cmFjZS5wYXJjYXRzIikuZGF0YShpLGgpLHY9dS5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwidHJhY2UgcGFyY2F0cyIpO3UuYXR0cigidHJhbnNmb3JtIixmdW5jdGlvbih0KXtyZXR1cm4idHJhbnNsYXRlKCIrdC54KyIsICIrdC55KyIpIn0pLHYuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJwYXRocyIpO3ZhciBtPXUuc2VsZWN0KCJnLnBhdGhzIikuc2VsZWN0QWxsKCJwYXRoLnBhdGgiKS5kYXRhKGZ1bmN0aW9uKHQpe3JldHVybiB0LnBhdGhzfSxoKTttLmF0dHIoImZpbGwiLGZ1bmN0aW9uKHQpe3JldHVybiB0Lm1vZGVsLmNvbG9yfSk7dmFyIGI9bS5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmF0dHIoImNsYXNzIiwicGF0aCIpLmF0dHIoInN0cm9rZS1vcGFjaXR5IiwwKS5hdHRyKCJmaWxsIixmdW5jdGlvbih0KXtyZXR1cm4gdC5tb2RlbC5jb2xvcn0pLmF0dHIoImZpbGwtb3BhY2l0eSIsMCk7eChiKSxtLmF0dHIoImQiLGZ1bmN0aW9uKHQpe3JldHVybiB0LnN2Z0R9KSxiLmVtcHR5KCl8fG0uc29ydChwKSxtLmV4aXQoKS5yZW1vdmUoKSxtLm9uKCJtb3VzZW92ZXIiLGQpLm9uKCJtb3VzZW91dCIsZykub24oImNsaWNrIix5KSx2LmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwiZGltZW5zaW9ucyIpO3ZhciBrPXUuc2VsZWN0KCJnLmRpbWVuc2lvbnMiKS5zZWxlY3RBbGwoImcuZGltZW5zaW9uIikuZGF0YShmdW5jdGlvbih0KXtyZXR1cm4gdC5kaW1lbnNpb25zfSxoKTtrLmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJkaW1lbnNpb24iKSxrLmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24odCl7cmV0dXJuInRyYW5zbGF0ZSgiK3QueCsiLCAwKSJ9KSxrLmV4aXQoKS5yZW1vdmUoKTt2YXIgVD1rLnNlbGVjdEFsbCgiZy5jYXRlZ29yeSIpLmRhdGEoZnVuY3Rpb24odCl7cmV0dXJuIHQuY2F0ZWdvcmllc30saCksTT1ULmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJjYXRlZ29yeSIpO1QuYXR0cigidHJhbnNmb3JtIixmdW5jdGlvbih0KXtyZXR1cm4idHJhbnNsYXRlKDAsICIrdC55KyIpIn0pLE0uYXBwZW5kKCJyZWN0IikuYXR0cigiY2xhc3MiLCJjYXRyZWN0IikuYXR0cigicG9pbnRlci1ldmVudHMiLCJub25lIiksVC5zZWxlY3QoInJlY3QuY2F0cmVjdCIpLmF0dHIoImZpbGwiLCJub25lIikuYXR0cigid2lkdGgiLGZ1bmN0aW9uKHQpe3JldHVybiB0LndpZHRofSkuYXR0cigiaGVpZ2h0IixmdW5jdGlvbih0KXtyZXR1cm4gdC5oZWlnaHR9KSxfKE0pO3ZhciBBPVQuc2VsZWN0QWxsKCJyZWN0LmJhbmRyZWN0IikuZGF0YShmdW5jdGlvbih0KXtyZXR1cm4gdC5iYW5kc30saCk7QS5lYWNoKGZ1bmN0aW9uKCl7by5yYWlzZVRvVG9wKHRoaXMpfSksQS5hdHRyKCJmaWxsIixmdW5jdGlvbih0KXtyZXR1cm4gdC5jb2xvcn0pO3ZhciBPPUEuZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5hdHRyKCJjbGFzcyIsImJhbmRyZWN0IikuYXR0cigic3Ryb2tlLW9wYWNpdHkiLDApLmF0dHIoImZpbGwiLGZ1bmN0aW9uKHQpe3JldHVybiB0LmNvbG9yfSkuYXR0cigiZmlsbC1vcGFjaXR5IiwwKTtBLmF0dHIoImZpbGwiLGZ1bmN0aW9uKHQpe3JldHVybiB0LmNvbG9yfSkuYXR0cigid2lkdGgiLGZ1bmN0aW9uKHQpe3JldHVybiB0LndpZHRofSkuYXR0cigiaGVpZ2h0IixmdW5jdGlvbih0KXtyZXR1cm4gdC5oZWlnaHR9KS5hdHRyKCJ5IixmdW5jdGlvbih0KXtyZXR1cm4gdC55fSkuYXR0cigiY3Vyc29yIixmdW5jdGlvbih0KXtyZXR1cm4iZml4ZWQiPT09dC5wYXJjYXRzVmlld01vZGVsLmFycmFuZ2VtZW50PyJkZWZhdWx0IjoicGVycGVuZGljdWxhciI9PT10LnBhcmNhdHNWaWV3TW9kZWwuYXJyYW5nZW1lbnQ/Im5zLXJlc2l6ZSI6Im1vdmUifSksdyhPKSxBLmV4aXQoKS5yZW1vdmUoKSxNLmFwcGVuZCgidGV4dCIpLmF0dHIoImNsYXNzIiwiY2F0bGFiZWwiKS5hdHRyKCJwb2ludGVyLWV2ZW50cyIsIm5vbmUiKTt2YXIgej1lLl9mdWxsTGF5b3V0LnBhcGVyX2JnY29sb3I7VC5zZWxlY3QoInRleHQuY2F0bGFiZWwiKS5hdHRyKCJ0ZXh0LWFuY2hvciIsZnVuY3Rpb24odCl7cmV0dXJuIGYodCk/InN0YXJ0IjoiZW5kIn0pLmF0dHIoImFsaWdubWVudC1iYXNlbGluZSIsIm1pZGRsZSIpLnN0eWxlKCJ0ZXh0LXNoYWRvdyIseisiIC0xcHggIDFweCAycHgsICIreisiIDFweCAgMXB4IDJweCwgIit6KyIgIDFweCAtMXB4IDJweCwgIit6KyIgLTFweCAtMXB4IDJweCIpLnN0eWxlKCJmaWxsIiwicmdiKDAsIDAsIDApIikuYXR0cigieCIsZnVuY3Rpb24odCl7cmV0dXJuIGYodCk/dC53aWR0aCs1Oi01fSkuYXR0cigieSIsZnVuY3Rpb24odCl7cmV0dXJuIHQuaGVpZ2h0LzJ9KS50ZXh0KGZ1bmN0aW9uKHQpe3JldHVybiB0Lm1vZGVsLmNhdGVnb3J5TGFiZWx9KS5lYWNoKGZ1bmN0aW9uKHQpe3MuZm9udChuLnNlbGVjdCh0aGlzKSx0LnBhcmNhdHNWaWV3TW9kZWwuY2F0ZWdvcnlsYWJlbGZvbnQpLGMuY29udmVydFRvVHNwYW5zKG4uc2VsZWN0KHRoaXMpLGUpfSksTS5hcHBlbmQoInRleHQiKS5hdHRyKCJjbGFzcyIsImRpbWxhYmVsIiksVC5zZWxlY3QoInRleHQuZGltbGFiZWwiKS5hdHRyKCJ0ZXh0LWFuY2hvciIsIm1pZGRsZSIpLmF0dHIoImFsaWdubWVudC1iYXNlbGluZSIsImJhc2VsaW5lIikuYXR0cigiY3Vyc29yIixmdW5jdGlvbih0KXtyZXR1cm4iZml4ZWQiPT09dC5wYXJjYXRzVmlld01vZGVsLmFycmFuZ2VtZW50PyJkZWZhdWx0IjoiZXctcmVzaXplIn0pLmF0dHIoIngiLGZ1bmN0aW9uKHQpe3JldHVybiB0LndpZHRoLzJ9KS5hdHRyKCJ5IiwtNSkudGV4dChmdW5jdGlvbih0LGUpe3JldHVybiAwPT09ZT90LnBhcmNhdHNWaWV3TW9kZWwubW9kZWwuZGltZW5zaW9uc1t0Lm1vZGVsLmRpbWVuc2lvbkluZF0uZGltZW5zaW9uTGFiZWw6bnVsbH0pLmVhY2goZnVuY3Rpb24odCl7cy5mb250KG4uc2VsZWN0KHRoaXMpLHQucGFyY2F0c1ZpZXdNb2RlbC5sYWJlbGZvbnQpfSksVC5zZWxlY3RBbGwoInJlY3QuYmFuZHJlY3QiKS5vbigibW91c2VvdmVyIixTKS5vbigibW91c2VvdXQiLEUpLFQuZXhpdCgpLnJlbW92ZSgpLGsuY2FsbChuLmJlaGF2aW9yLmRyYWcoKS5vcmlnaW4oZnVuY3Rpb24odCl7cmV0dXJue3g6dC54LHk6MH19KS5vbigiZHJhZ3N0YXJ0IixMKS5vbigiZHJhZyIsQykub24oImRyYWdlbmQiLFApKSx1LmVhY2goZnVuY3Rpb24odCl7dC50cmFjZVNlbGVjdGlvbj1uLnNlbGVjdCh0aGlzKSx0LnBhdGhTZWxlY3Rpb249bi5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJnLnBhdGhzIikuc2VsZWN0QWxsKCJwYXRoLnBhdGgiKSx0LmRpbWVuc2lvblNlbGVjdGlvbj1uLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoImcuZGltZW5zaW9ucyIpLnNlbGVjdEFsbCgiZy5kaW1lbnNpb24iKX0pLHUuZXhpdCgpLnJlbW92ZSgpfWZ1bmN0aW9uIGgodCl7cmV0dXJuIHQua2V5fWZ1bmN0aW9uIGYodCl7dmFyIGU9dC5wYXJjYXRzVmlld01vZGVsLmRpbWVuc2lvbnMubGVuZ3RoLHI9dC5wYXJjYXRzVmlld01vZGVsLmRpbWVuc2lvbnNbZS0xXS5tb2RlbC5kaW1lbnNpb25JbmQ7cmV0dXJuIHQubW9kZWwuZGltZW5zaW9uSW5kPT09cn1mdW5jdGlvbiBwKHQsZSl7cmV0dXJuIHQubW9kZWwucmF3Q29sb3I+ZS5tb2RlbC5yYXdDb2xvcj8xOnQubW9kZWwucmF3Q29sb3I8ZS5tb2RlbC5yYXdDb2xvcj8tMTowfWZ1bmN0aW9uIGQodCl7aWYoIXQucGFyY2F0c1ZpZXdNb2RlbC5kcmFnRGltZW5zaW9uJiYtMT09PXQucGFyY2F0c1ZpZXdNb2RlbC5ob3ZlcmluZm9JdGVtcy5pbmRleE9mKCJza2lwIikpe28ucmFpc2VUb1RvcCh0aGlzKSxiKG4uc2VsZWN0KHRoaXMpKTt2YXIgZT12KHQpLHI9bSh0KTtpZih0LnBhcmNhdHNWaWV3TW9kZWwuZ3JhcGhEaXYuZW1pdCgicGxvdGx5X2hvdmVyIix7cG9pbnRzOmUsZXZlbnQ6bi5ldmVudCxjb25zdHJhaW50czpyfSksLTE9PT10LnBhcmNhdHNWaWV3TW9kZWwuaG92ZXJpbmZvSXRlbXMuaW5kZXhPZigibm9uZSIpKXt2YXIgYSxzLGMsdT1uLm1vdXNlKHRoaXMpWzBdLGg9dC5wYXJjYXRzVmlld01vZGVsLmdyYXBoRGl2LGY9dC5wYXJjYXRzVmlld01vZGVsLnRyYWNlLHA9aC5fZnVsbExheW91dCxkPXAuX3BhcGVyZGl2Lm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxnPXQucGFyY2F0c1ZpZXdNb2RlbC5ncmFwaERpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtmb3IoYz0wO2M8dC5sZWZ0WHMubGVuZ3RoLTE7YysrKWlmKHQubGVmdFhzW2NdK3QuZGltV2lkdGhzW2NdLTI8PXUmJnU8PXQubGVmdFhzW2MrMV0rMil7dmFyIHk9dC5wYXJjYXRzVmlld01vZGVsLmRpbWVuc2lvbnNbY10seD10LnBhcmNhdHNWaWV3TW9kZWwuZGltZW5zaW9uc1tjKzFdO2E9KHkueCt5LndpZHRoK3gueCkvMixzPSh0LnRvcFlzW2NdK3QudG9wWXNbYysxXSt0LmhlaWdodCkvMjticmVha312YXIgXz10LnBhcmNhdHNWaWV3TW9kZWwueCthLHc9dC5wYXJjYXRzVmlld01vZGVsLnkrcyxrPWwubW9zdFJlYWRhYmxlKHQubW9kZWwuY29sb3IsWyJibGFjayIsIndoaXRlIl0pLFQ9dC5tb2RlbC5jb3VudCxNPVQvdC5wYXJjYXRzVmlld01vZGVsLm1vZGVsLmNvdW50LEE9e2NvdW50TGFiZWw6VCxwcm9iYWJpbGl0eUxhYmVsOk0udG9GaXhlZCgzKX0sUz1bXTstMSE9PXQucGFyY2F0c1ZpZXdNb2RlbC5ob3ZlcmluZm9JdGVtcy5pbmRleE9mKCJjb3VudCIpJiZTLnB1c2goWyJDb3VudDoiLEEuY291bnRMYWJlbF0uam9pbigiICIpKSwtMSE9PXQucGFyY2F0c1ZpZXdNb2RlbC5ob3ZlcmluZm9JdGVtcy5pbmRleE9mKCJwcm9iYWJpbGl0eSIpJiZTLnB1c2goWyJQOiIsQS5wcm9iYWJpbGl0eUxhYmVsXS5qb2luKCIgIikpO3ZhciBFPVMuam9pbigiPGJyPiIpLEw9bi5tb3VzZShoKVswXTtpLmxvbmVIb3Zlcih7dHJhY2U6Zix4Ol8tZC5sZWZ0K2cubGVmdCx5OnctZC50b3ArZy50b3AsdGV4dDpFLGNvbG9yOnQubW9kZWwuY29sb3IsYm9yZGVyQ29sb3I6ImJsYWNrIixmb250RmFtaWx5OidNb25hY28sICJDb3VyaWVyIE5ldyIsIG1vbm9zcGFjZScsZm9udFNpemU6MTAsZm9udENvbG9yOmssaWRlYWxBbGlnbjpMPF8/InJpZ2h0IjoibGVmdCIsaG92ZXJ0ZW1wbGF0ZTooZi5saW5lfHx7fSkuaG92ZXJ0ZW1wbGF0ZSxob3ZlcnRlbXBsYXRlTGFiZWxzOkEsZXZlbnREYXRhOlt7ZGF0YTpmLl9pbnB1dCxmdWxsRGF0YTpmLGNvdW50OlQscHJvYmFiaWxpdHk6TX1dfSx7Y29udGFpbmVyOnAuX2hvdmVybGF5ZXIubm9kZSgpLG91dGVyQ29udGFpbmVyOnAuX3BhcGVyLm5vZGUoKSxnZDpofSl9fX1mdW5jdGlvbiBnKHQpe2lmKCF0LnBhcmNhdHNWaWV3TW9kZWwuZHJhZ0RpbWVuc2lvbiYmKHgobi5zZWxlY3QodGhpcykpLGkubG9uZVVuaG92ZXIodC5wYXJjYXRzVmlld01vZGVsLmdyYXBoRGl2Ll9mdWxsTGF5b3V0Ll9ob3ZlcmxheWVyLm5vZGUoKSksdC5wYXJjYXRzVmlld01vZGVsLnBhdGhTZWxlY3Rpb24uc29ydChwKSwtMT09PXQucGFyY2F0c1ZpZXdNb2RlbC5ob3ZlcmluZm9JdGVtcy5pbmRleE9mKCJza2lwIikpKXt2YXIgZT12KHQpLHI9bSh0KTt0LnBhcmNhdHNWaWV3TW9kZWwuZ3JhcGhEaXYuZW1pdCgicGxvdGx5X3VuaG92ZXIiLHtwb2ludHM6ZSxldmVudDpuLmV2ZW50LGNvbnN0cmFpbnRzOnJ9KX19ZnVuY3Rpb24gdih0KXtmb3IodmFyIGU9W10scj1PKHQucGFyY2F0c1ZpZXdNb2RlbCksbj0wO248dC5tb2RlbC52YWx1ZUluZHMubGVuZ3RoO24rKyl7dmFyIGE9dC5tb2RlbC52YWx1ZUluZHNbbl07ZS5wdXNoKHtjdXJ2ZU51bWJlcjpyLHBvaW50TnVtYmVyOmF9KX1yZXR1cm4gZX1mdW5jdGlvbiBtKHQpe2Zvcih2YXIgZT17fSxyPXQucGFyY2F0c1ZpZXdNb2RlbC5tb2RlbC5kaW1lbnNpb25zLG49MDtuPHIubGVuZ3RoO24rKyl7dmFyIGE9cltuXSxpPWEuY2F0ZWdvcmllc1t0Lm1vZGVsLmNhdGVnb3J5SW5kc1tuXV07ZVthLmNvbnRhaW5lckluZF09aS5jYXRlZ29yeVZhbHVlfXJldHVybiB2b2lkIDAhPT10Lm1vZGVsLnJhd0NvbG9yJiYoZS5jb2xvcj10Lm1vZGVsLnJhd0NvbG9yKSxlfWZ1bmN0aW9uIHkodCl7aWYoLTE9PT10LnBhcmNhdHNWaWV3TW9kZWwuaG92ZXJpbmZvSXRlbXMuaW5kZXhPZigic2tpcCIpKXt2YXIgZT12KHQpLHI9bSh0KTt0LnBhcmNhdHNWaWV3TW9kZWwuZ3JhcGhEaXYuZW1pdCgicGxvdGx5X2NsaWNrIix7cG9pbnRzOmUsZXZlbnQ6bi5ldmVudCxjb25zdHJhaW50czpyfSl9fWZ1bmN0aW9uIHgodCl7dC5hdHRyKCJmaWxsIixmdW5jdGlvbih0KXtyZXR1cm4gdC5tb2RlbC5jb2xvcn0pLmF0dHIoImZpbGwtb3BhY2l0eSIsLjYpLmF0dHIoInN0cm9rZSIsImxpZ2h0Z3JheSIpLmF0dHIoInN0cm9rZS13aWR0aCIsLjIpLmF0dHIoInN0cm9rZS1vcGFjaXR5IiwxKX1mdW5jdGlvbiBiKHQpe3QuYXR0cigiZmlsbC1vcGFjaXR5IiwuOCkuYXR0cigic3Ryb2tlIixmdW5jdGlvbih0KXtyZXR1cm4gbC5tb3N0UmVhZGFibGUodC5tb2RlbC5jb2xvcixbImJsYWNrIiwid2hpdGUiXSl9KS5hdHRyKCJzdHJva2Utd2lkdGgiLC4zKX1mdW5jdGlvbiBfKHQpe3Quc2VsZWN0KCJyZWN0LmNhdHJlY3QiKS5hdHRyKCJzdHJva2UiLCJibGFjayIpLmF0dHIoInN0cm9rZS13aWR0aCIsMSkuYXR0cigic3Ryb2tlLW9wYWNpdHkiLDEpfWZ1bmN0aW9uIHcodCl7dC5hdHRyKCJzdHJva2UiLCJibGFjayIpLmF0dHIoInN0cm9rZS13aWR0aCIsLjIpLmF0dHIoInN0cm9rZS1vcGFjaXR5IiwxKS5hdHRyKCJmaWxsLW9wYWNpdHkiLDEpfWZ1bmN0aW9uIGsodCl7dmFyIGU9dC5wYXJjYXRzVmlld01vZGVsLnBhdGhTZWxlY3Rpb24scj10LmNhdGVnb3J5Vmlld01vZGVsLm1vZGVsLmRpbWVuc2lvbkluZCxuPXQuY2F0ZWdvcnlWaWV3TW9kZWwubW9kZWwuY2F0ZWdvcnlJbmQ7cmV0dXJuIGUuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlLm1vZGVsLmNhdGVnb3J5SW5kc1tyXT09PW4mJmUubW9kZWwuY29sb3I9PT10LmNvbG9yfSl9ZnVuY3Rpb24gVCh0LGUscil7dmFyIGE9bi5zZWxlY3QodCkuZGF0dW0oKSxpPWEuY2F0ZWdvcnlWaWV3TW9kZWwubW9kZWwsbz1hLnBhcmNhdHNWaWV3TW9kZWwuZ3JhcGhEaXYscz1uLnNlbGVjdCh0LnBhcmVudE5vZGUpLnNlbGVjdEFsbCgicmVjdC5iYW5kcmVjdCIpLGw9W107cy5lYWNoKGZ1bmN0aW9uKHQpe2sodCkuZWFjaChmdW5jdGlvbih0KXtBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShsLHYodCkpfSl9KTt2YXIgYz17fTtjW2kuZGltZW5zaW9uSW5kXT1pLmNhdGVnb3J5VmFsdWUsby5lbWl0KGUse3BvaW50czpsLGV2ZW50OnIsY29uc3RyYWludHM6Y30pfWZ1bmN0aW9uIE0odCxlLHIpe3ZhciBhPW4uc2VsZWN0KHQpLmRhdHVtKCksaT1hLmNhdGVnb3J5Vmlld01vZGVsLm1vZGVsLG89YS5wYXJjYXRzVmlld01vZGVsLmdyYXBoRGl2LHM9ayhhKSxsPVtdO3MuZWFjaChmdW5jdGlvbih0KXtBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShsLHYodCkpfSk7dmFyIGM9e307Y1tpLmRpbWVuc2lvbkluZF09aS5jYXRlZ29yeVZhbHVlLHZvaWQgMCE9PWEucmF3Q29sb3ImJihjLmNvbG9yPWEucmF3Q29sb3IpLG8uZW1pdChlLHtwb2ludHM6bCxldmVudDpyLGNvbnN0cmFpbnRzOmN9KX1mdW5jdGlvbiBBKHQsZSl7dmFyIHIsYSxpPW4uc2VsZWN0KGUucGFyZW50Tm9kZSkuc2VsZWN0KCJyZWN0LmNhdHJlY3QiKSxvPWkubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHM9aS5kYXR1bSgpLGw9cy5wYXJjYXRzVmlld01vZGVsLGM9bC5tb2RlbC5kaW1lbnNpb25zW3MubW9kZWwuZGltZW5zaW9uSW5kXSx1PWwudHJhY2UsaD1vLnRvcCtvLmhlaWdodC8yO2wuZGltZW5zaW9ucy5sZW5ndGg+MSYmYy5kaXNwbGF5SW5kPT09bC5kaW1lbnNpb25zLmxlbmd0aC0xPyhyPW8ubGVmdCxhPSJsZWZ0Iik6KHI9by5sZWZ0K28ud2lkdGgsYT0icmlnaHQiKTt2YXIgZj1zLm1vZGVsLmNvdW50LHA9cy5tb2RlbC5jYXRlZ29yeUxhYmVsLGQ9Zi9zLnBhcmNhdHNWaWV3TW9kZWwubW9kZWwuY291bnQsZz17Y291bnRMYWJlbDpmLGNhdGVnb3J5TGFiZWw6cCxwcm9iYWJpbGl0eUxhYmVsOmQudG9GaXhlZCgzKX0sdj1bXTstMSE9PXMucGFyY2F0c1ZpZXdNb2RlbC5ob3ZlcmluZm9JdGVtcy5pbmRleE9mKCJjb3VudCIpJiZ2LnB1c2goWyJDb3VudDoiLGcuY291bnRMYWJlbF0uam9pbigiICIpKSwtMSE9PXMucGFyY2F0c1ZpZXdNb2RlbC5ob3ZlcmluZm9JdGVtcy5pbmRleE9mKCJwcm9iYWJpbGl0eSIpJiZ2LnB1c2goWyJQKCIrZy5jYXRlZ29yeUxhYmVsKyIpOiIsZy5wcm9iYWJpbGl0eUxhYmVsXS5qb2luKCIgIikpO3ZhciBtPXYuam9pbigiPGJyPiIpO3JldHVybnt0cmFjZTp1LHg6ci10LmxlZnQseTpoLXQudG9wLHRleHQ6bSxjb2xvcjoibGlnaHRncmF5Iixib3JkZXJDb2xvcjoiYmxhY2siLGZvbnRGYW1pbHk6J01vbmFjbywgIkNvdXJpZXIgTmV3IiwgbW9ub3NwYWNlJyxmb250U2l6ZToxMixmb250Q29sb3I6ImJsYWNrIixpZGVhbEFsaWduOmEsaG92ZXJ0ZW1wbGF0ZTp1LmhvdmVydGVtcGxhdGUsaG92ZXJ0ZW1wbGF0ZUxhYmVsczpnLGV2ZW50RGF0YTpbe2RhdGE6dS5faW5wdXQsZnVsbERhdGE6dSxjb3VudDpmLGNhdGVnb3J5OnAscHJvYmFiaWxpdHk6ZH1dfX1mdW5jdGlvbiBTKHQpe2lmKCF0LnBhcmNhdHNWaWV3TW9kZWwuZHJhZ0RpbWVuc2lvbiYmLTE9PT10LnBhcmNhdHNWaWV3TW9kZWwuaG92ZXJpbmZvSXRlbXMuaW5kZXhPZigic2tpcCIpKXtpZihuLm1vdXNlKHRoaXMpWzFdPC0xKXJldHVybjt2YXIgZSxyPXQucGFyY2F0c1ZpZXdNb2RlbC5ncmFwaERpdixhPXIuX2Z1bGxMYXlvdXQscz1hLl9wYXBlcmRpdi5ub2RlKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYz10LnBhcmNhdHNWaWV3TW9kZWwuaG92ZXJvbjtpZigiY29sb3IiPT09Yz8oIWZ1bmN0aW9uKHQpe3ZhciBlPW4uc2VsZWN0KHQpLmRhdHVtKCkscj1rKGUpO2Iociksci5lYWNoKGZ1bmN0aW9uKCl7by5yYWlzZVRvVG9wKHRoaXMpfSksbi5zZWxlY3QodC5wYXJlbnROb2RlKS5zZWxlY3RBbGwoInJlY3QuYmFuZHJlY3QiKS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQuY29sb3I9PT1lLmNvbG9yfSkuZWFjaChmdW5jdGlvbigpe28ucmFpc2VUb1RvcCh0aGlzKSxuLnNlbGVjdCh0aGlzKS5hdHRyKCJzdHJva2UiLCJibGFjayIpLmF0dHIoInN0cm9rZS13aWR0aCIsMS41KX0pfSh0aGlzKSxNKHRoaXMsInBsb3RseV9ob3ZlciIsbi5ldmVudCkpOighZnVuY3Rpb24odCl7bi5zZWxlY3QodC5wYXJlbnROb2RlKS5zZWxlY3RBbGwoInJlY3QuYmFuZHJlY3QiKS5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPWsodCk7YihlKSxlLmVhY2goZnVuY3Rpb24oKXtvLnJhaXNlVG9Ub3AodGhpcyl9KX0pLG4uc2VsZWN0KHQucGFyZW50Tm9kZSkuc2VsZWN0KCJyZWN0LmNhdHJlY3QiKS5hdHRyKCJzdHJva2UiLCJibGFjayIpLmF0dHIoInN0cm9rZS13aWR0aCIsMi41KX0odGhpcyksVCh0aGlzLCJwbG90bHlfaG92ZXIiLG4uZXZlbnQpKSwtMT09PXQucGFyY2F0c1ZpZXdNb2RlbC5ob3ZlcmluZm9JdGVtcy5pbmRleE9mKCJub25lIikpImNhdGVnb3J5Ij09PWM/ZT1BKHMsdGhpcyk6ImNvbG9yIj09PWM/ZT1mdW5jdGlvbih0LGUpe3ZhciByLGEsaT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89bi5zZWxlY3QoZSkuZGF0dW0oKSxzPW8uY2F0ZWdvcnlWaWV3TW9kZWwsYz1zLnBhcmNhdHNWaWV3TW9kZWwsdT1jLm1vZGVsLmRpbWVuc2lvbnNbcy5tb2RlbC5kaW1lbnNpb25JbmRdLGg9Yy50cmFjZSxmPWkueStpLmhlaWdodC8yO2MuZGltZW5zaW9ucy5sZW5ndGg+MSYmdS5kaXNwbGF5SW5kPT09Yy5kaW1lbnNpb25zLmxlbmd0aC0xPyhyPWkubGVmdCxhPSJsZWZ0Iik6KHI9aS5sZWZ0K2kud2lkdGgsYT0icmlnaHQiKTt2YXIgcD1zLm1vZGVsLmNhdGVnb3J5TGFiZWwsZD1vLnBhcmNhdHNWaWV3TW9kZWwubW9kZWwuY291bnQsZz0wO28uY2F0ZWdvcnlWaWV3TW9kZWwuYmFuZHMuZm9yRWFjaChmdW5jdGlvbih0KXt0LmNvbG9yPT09by5jb2xvciYmKGcrPXQuY291bnQpfSk7dmFyIHY9cy5tb2RlbC5jb3VudCxtPTA7Yy5wYXRoU2VsZWN0aW9uLmVhY2goZnVuY3Rpb24odCl7dC5tb2RlbC5jb2xvcj09PW8uY29sb3ImJihtKz10Lm1vZGVsLmNvdW50KX0pO3ZhciB5PWcvZCx4PWcvbSxiPWcvdixfPXtjb3VudExhYmVsOmQsY2F0ZWdvcnlMYWJlbDpwLHByb2JhYmlsaXR5TGFiZWw6eS50b0ZpeGVkKDMpfSx3PVtdOy0xIT09cy5wYXJjYXRzVmlld01vZGVsLmhvdmVyaW5mb0l0ZW1zLmluZGV4T2YoImNvdW50IikmJncucHVzaChbIkNvdW50OiIsXy5jb3VudExhYmVsXS5qb2luKCIgIikpLC0xIT09cy5wYXJjYXRzVmlld01vZGVsLmhvdmVyaW5mb0l0ZW1zLmluZGV4T2YoInByb2JhYmlsaXR5IikmJih3LnB1c2goIlAoY29sb3IgXHUyMjI5ICIrcCsiKTogIitfLnByb2JhYmlsaXR5TGFiZWwpLHcucHVzaCgiUCgiK3ArIiB8IGNvbG9yKTogIit4LnRvRml4ZWQoMykpLHcucHVzaCgiUChjb2xvciB8ICIrcCsiKTogIitiLnRvRml4ZWQoMykpKTt2YXIgaz13LmpvaW4oIjxicj4iKSxUPWwubW9zdFJlYWRhYmxlKG8uY29sb3IsWyJibGFjayIsIndoaXRlIl0pO3JldHVybnt0cmFjZTpoLHg6ci10LmxlZnQseTpmLXQudG9wLHRleHQ6ayxjb2xvcjpvLmNvbG9yLGJvcmRlckNvbG9yOiJibGFjayIsZm9udEZhbWlseTonTW9uYWNvLCAiQ291cmllciBOZXciLCBtb25vc3BhY2UnLGZvbnRDb2xvcjpULGZvbnRTaXplOjEwLGlkZWFsQWxpZ246YSxob3ZlcnRlbXBsYXRlOmguaG92ZXJ0ZW1wbGF0ZSxob3ZlcnRlbXBsYXRlTGFiZWxzOl8sZXZlbnREYXRhOlt7ZGF0YTpoLl9pbnB1dCxmdWxsRGF0YTpoLGNhdGVnb3J5OnAsY291bnQ6ZCxwcm9iYWJpbGl0eTp5LGNhdGVnb3J5Y291bnQ6dixjb2xvcmNvdW50Om0sYmFuZGNvbG9yY291bnQ6Z31dfX0ocyx0aGlzKToiZGltZW5zaW9uIj09PWMmJihlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9W107cmV0dXJuIG4uc2VsZWN0KGUucGFyZW50Tm9kZS5wYXJlbnROb2RlKS5zZWxlY3RBbGwoImcuY2F0ZWdvcnkiKS5zZWxlY3QoInJlY3QuY2F0cmVjdCIpLmVhY2goZnVuY3Rpb24oKXtyLnB1c2goQSh0LHRoaXMpKX0pLHJ9KHMsdGhpcykpLGUmJmkubG9uZUhvdmVyKGUse2NvbnRhaW5lcjphLl9ob3ZlcmxheWVyLm5vZGUoKSxvdXRlckNvbnRhaW5lcjphLl9wYXBlci5ub2RlKCksZ2Q6cn0pfX1mdW5jdGlvbiBFKHQpe3ZhciBlPXQucGFyY2F0c1ZpZXdNb2RlbDtpZighZS5kcmFnRGltZW5zaW9uJiYoeChlLnBhdGhTZWxlY3Rpb24pLF8oZS5kaW1lbnNpb25TZWxlY3Rpb24uc2VsZWN0QWxsKCJnLmNhdGVnb3J5IikpLHcoZS5kaW1lbnNpb25TZWxlY3Rpb24uc2VsZWN0QWxsKCJnLmNhdGVnb3J5Iikuc2VsZWN0QWxsKCJyZWN0LmJhbmRyZWN0IikpLGkubG9uZVVuaG92ZXIoZS5ncmFwaERpdi5fZnVsbExheW91dC5faG92ZXJsYXllci5ub2RlKCkpLGUucGF0aFNlbGVjdGlvbi5zb3J0KHApLC0xPT09ZS5ob3ZlcmluZm9JdGVtcy5pbmRleE9mKCJza2lwIikpKXsiY29sb3IiPT09dC5wYXJjYXRzVmlld01vZGVsLmhvdmVyb24/TSh0aGlzLCJwbG90bHlfdW5ob3ZlciIsbi5ldmVudCk6VCh0aGlzLCJwbG90bHlfdW5ob3ZlciIsbi5ldmVudCl9fWZ1bmN0aW9uIEwodCl7ImZpeGVkIiE9PXQucGFyY2F0c1ZpZXdNb2RlbC5hcnJhbmdlbWVudCYmKHQuZHJhZ0RpbWVuc2lvbkRpc3BsYXlJbmQ9dC5tb2RlbC5kaXNwbGF5SW5kLHQuaW5pdGlhbERyYWdEaW1lbnNpb25EaXNwbGF5SW5kcz10LnBhcmNhdHNWaWV3TW9kZWwubW9kZWwuZGltZW5zaW9ucy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuZGlzcGxheUluZH0pLHQuZHJhZ0hhc01vdmVkPSExLHQuZHJhZ0NhdGVnb3J5RGlzcGxheUluZD1udWxsLG4uc2VsZWN0KHRoaXMpLnNlbGVjdEFsbCgiZy5jYXRlZ29yeSIpLnNlbGVjdCgicmVjdC5jYXRyZWN0IikuZWFjaChmdW5jdGlvbihlKXt2YXIgcj1uLm1vdXNlKHRoaXMpWzBdLGE9bi5tb3VzZSh0aGlzKVsxXTstMjw9ciYmcjw9ZS53aWR0aCsyJiYtMjw9YSYmYTw9ZS5oZWlnaHQrMiYmKHQuZHJhZ0NhdGVnb3J5RGlzcGxheUluZD1lLm1vZGVsLmRpc3BsYXlJbmQsdC5pbml0aWFsRHJhZ0NhdGVnb3J5RGlzcGxheUluZHM9dC5tb2RlbC5jYXRlZ29yaWVzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5kaXNwbGF5SW5kfSksZS5tb2RlbC5kcmFnWT1lLnksby5yYWlzZVRvVG9wKHRoaXMucGFyZW50Tm9kZSksbi5zZWxlY3QodGhpcy5wYXJlbnROb2RlKS5zZWxlY3RBbGwoInJlY3QuYmFuZHJlY3QiKS5lYWNoKGZ1bmN0aW9uKGUpe2UueTxhJiZhPD1lLnkrZS5oZWlnaHQmJih0LnBvdGVudGlhbENsaWNrQmFuZD10aGlzKX0pKX0pLHQucGFyY2F0c1ZpZXdNb2RlbC5kcmFnRGltZW5zaW9uPXQsaS5sb25lVW5ob3Zlcih0LnBhcmNhdHNWaWV3TW9kZWwuZ3JhcGhEaXYuX2Z1bGxMYXlvdXQuX2hvdmVybGF5ZXIubm9kZSgpKSl9ZnVuY3Rpb24gQyh0KXtpZigiZml4ZWQiIT09dC5wYXJjYXRzVmlld01vZGVsLmFycmFuZ2VtZW50JiYodC5kcmFnSGFzTW92ZWQ9ITAsbnVsbCE9PXQuZHJhZ0RpbWVuc2lvbkRpc3BsYXlJbmQpKXt2YXIgZT10LmRyYWdEaW1lbnNpb25EaXNwbGF5SW5kLHI9ZS0xLGE9ZSsxLGk9dC5wYXJjYXRzVmlld01vZGVsLmRpbWVuc2lvbnNbZV07aWYobnVsbCE9PXQuZHJhZ0NhdGVnb3J5RGlzcGxheUluZCl7dmFyIG89aS5jYXRlZ29yaWVzW3QuZHJhZ0NhdGVnb3J5RGlzcGxheUluZF07by5tb2RlbC5kcmFnWSs9bi5ldmVudC5keTt2YXIgcz1vLm1vZGVsLmRyYWdZLGw9by5tb2RlbC5kaXNwbGF5SW5kLGM9aS5jYXRlZ29yaWVzLHU9Y1tsLTFdLGg9Y1tsKzFdO3ZvaWQgMCE9PXUmJnM8dS55K3UuaGVpZ2h0LzImJihvLm1vZGVsLmRpc3BsYXlJbmQ9dS5tb2RlbC5kaXNwbGF5SW5kLHUubW9kZWwuZGlzcGxheUluZD1sKSx2b2lkIDAhPT1oJiZzK28uaGVpZ2h0PmgueStoLmhlaWdodC8yJiYoby5tb2RlbC5kaXNwbGF5SW5kPWgubW9kZWwuZGlzcGxheUluZCxoLm1vZGVsLmRpc3BsYXlJbmQ9bCksdC5kcmFnQ2F0ZWdvcnlEaXNwbGF5SW5kPW8ubW9kZWwuZGlzcGxheUluZH1pZihudWxsPT09dC5kcmFnQ2F0ZWdvcnlEaXNwbGF5SW5kfHwiZnJlZWZvcm0iPT09dC5wYXJjYXRzVmlld01vZGVsLmFycmFuZ2VtZW50KXtpLm1vZGVsLmRyYWdYPW4uZXZlbnQueDt2YXIgZj10LnBhcmNhdHNWaWV3TW9kZWwuZGltZW5zaW9uc1tyXSxwPXQucGFyY2F0c1ZpZXdNb2RlbC5kaW1lbnNpb25zW2FdO3ZvaWQgMCE9PWYmJmkubW9kZWwuZHJhZ1g8Zi54K2Yud2lkdGgmJihpLm1vZGVsLmRpc3BsYXlJbmQ9Zi5tb2RlbC5kaXNwbGF5SW5kLGYubW9kZWwuZGlzcGxheUluZD1lKSx2b2lkIDAhPT1wJiZpLm1vZGVsLmRyYWdYK2kud2lkdGg+cC54JiYoaS5tb2RlbC5kaXNwbGF5SW5kPXAubW9kZWwuZGlzcGxheUluZCxwLm1vZGVsLmRpc3BsYXlJbmQ9dC5kcmFnRGltZW5zaW9uRGlzcGxheUluZCksdC5kcmFnRGltZW5zaW9uRGlzcGxheUluZD1pLm1vZGVsLmRpc3BsYXlJbmR9Rih0LnBhcmNhdHNWaWV3TW9kZWwpLFIodC5wYXJjYXRzVmlld01vZGVsKSxJKHQucGFyY2F0c1ZpZXdNb2RlbCkseih0LnBhcmNhdHNWaWV3TW9kZWwpfX1mdW5jdGlvbiBQKHQpe2lmKCJmaXhlZCIhPT10LnBhcmNhdHNWaWV3TW9kZWwuYXJyYW5nZW1lbnQmJm51bGwhPT10LmRyYWdEaW1lbnNpb25EaXNwbGF5SW5kKXtuLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoInRleHQiKS5hdHRyKCJmb250LXdlaWdodCIsIm5vcm1hbCIpO3ZhciBlPXt9LHI9Tyh0LnBhcmNhdHNWaWV3TW9kZWwpLGk9dC5wYXJjYXRzVmlld01vZGVsLm1vZGVsLmRpbWVuc2lvbnMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRpc3BsYXlJbmR9KSxvPXQuaW5pdGlhbERyYWdEaW1lbnNpb25EaXNwbGF5SW5kcy5zb21lKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQhPT1pW2VdfSk7byYmaS5mb3JFYWNoKGZ1bmN0aW9uKHIsbil7dmFyIGE9dC5wYXJjYXRzVmlld01vZGVsLm1vZGVsLmRpbWVuc2lvbnNbbl0uY29udGFpbmVySW5kO2VbImRpbWVuc2lvbnNbIithKyJdLmRpc3BsYXlpbmRleCJdPXJ9KTt2YXIgcz0hMTtpZihudWxsIT09dC5kcmFnQ2F0ZWdvcnlEaXNwbGF5SW5kKXt2YXIgbD10Lm1vZGVsLmNhdGVnb3JpZXMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRpc3BsYXlJbmR9KTtpZihzPXQuaW5pdGlhbERyYWdDYXRlZ29yeURpc3BsYXlJbmRzLnNvbWUoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWxbZV19KSl7dmFyIGM9dC5tb2RlbC5jYXRlZ29yaWVzLnNsaWNlKCkuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiB0LmRpc3BsYXlJbmQtZS5kaXNwbGF5SW5kfSksdT1jLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5jYXRlZ29yeVZhbHVlfSksaD1jLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5jYXRlZ29yeUxhYmVsfSk7ZVsiZGltZW5zaW9uc1siK3QubW9kZWwuY29udGFpbmVySW5kKyJdLmNhdGVnb3J5YXJyYXkiXT1bdV0sZVsiZGltZW5zaW9uc1siK3QubW9kZWwuY29udGFpbmVySW5kKyJdLnRpY2t0ZXh0Il09W2hdLGVbImRpbWVuc2lvbnNbIit0Lm1vZGVsLmNvbnRhaW5lckluZCsiXS5jYXRlZ29yeW9yZGVyIl09ImFycmF5In19aWYoLTE9PT10LnBhcmNhdHNWaWV3TW9kZWwuaG92ZXJpbmZvSXRlbXMuaW5kZXhPZigic2tpcCIpJiYhdC5kcmFnSGFzTW92ZWQmJnQucG90ZW50aWFsQ2xpY2tCYW5kJiYoImNvbG9yIj09PXQucGFyY2F0c1ZpZXdNb2RlbC5ob3Zlcm9uP00odC5wb3RlbnRpYWxDbGlja0JhbmQsInBsb3RseV9jbGljayIsbi5ldmVudC5zb3VyY2VFdmVudCk6VCh0LnBvdGVudGlhbENsaWNrQmFuZCwicGxvdGx5X2NsaWNrIixuLmV2ZW50LnNvdXJjZUV2ZW50KSksdC5tb2RlbC5kcmFnWD1udWxsLG51bGwhPT10LmRyYWdDYXRlZ29yeURpc3BsYXlJbmQpdC5wYXJjYXRzVmlld01vZGVsLmRpbWVuc2lvbnNbdC5kcmFnRGltZW5zaW9uRGlzcGxheUluZF0uY2F0ZWdvcmllc1t0LmRyYWdDYXRlZ29yeURpc3BsYXlJbmRdLm1vZGVsLmRyYWdZPW51bGwsdC5kcmFnQ2F0ZWdvcnlEaXNwbGF5SW5kPW51bGw7dC5kcmFnRGltZW5zaW9uRGlzcGxheUluZD1udWxsLHQucGFyY2F0c1ZpZXdNb2RlbC5kcmFnRGltZW5zaW9uPW51bGwsdC5kcmFnSGFzTW92ZWQ9bnVsbCx0LnBvdGVudGlhbENsaWNrQmFuZD1udWxsLEYodC5wYXJjYXRzVmlld01vZGVsKSxSKHQucGFyY2F0c1ZpZXdNb2RlbCksbi50cmFuc2l0aW9uKCkuZHVyYXRpb24oMzAwKS5lYXNlKCJjdWJpYy1pbi1vdXQiKS5lYWNoKGZ1bmN0aW9uKCl7SSh0LnBhcmNhdHNWaWV3TW9kZWwsITApLHoodC5wYXJjYXRzVmlld01vZGVsLCEwKX0pLmVhY2goImVuZCIsZnVuY3Rpb24oKXsob3x8cykmJmEucmVzdHlsZSh0LnBhcmNhdHNWaWV3TW9kZWwuZ3JhcGhEaXYsZSxbcl0pfSl9fWZ1bmN0aW9uIE8odCl7Zm9yKHZhciBlLHI9dC5ncmFwaERpdi5fZnVsbERhdGEsbj0wO248ci5sZW5ndGg7bisrKWlmKHQua2V5PT09cltuXS51aWQpe2U9bjticmVha31yZXR1cm4gZX1mdW5jdGlvbiB6KHQsZSl7dmFyIHI7dm9pZCAwPT09ZSYmKGU9ITEpLHQucGF0aFNlbGVjdGlvbi5kYXRhKGZ1bmN0aW9uKHQpe3JldHVybiB0LnBhdGhzfSxoKSwocj10LnBhdGhTZWxlY3Rpb24sZT9yLnRyYW5zaXRpb24oKTpyKS5hdHRyKCJkIixmdW5jdGlvbih0KXtyZXR1cm4gdC5zdmdEfSl9ZnVuY3Rpb24gSSh0LGUpe2Z1bmN0aW9uIHIodCl7cmV0dXJuIGU/dC50cmFuc2l0aW9uKCk6dH12b2lkIDA9PT1lJiYoZT0hMSksdC5kaW1lbnNpb25TZWxlY3Rpb24uZGF0YShmdW5jdGlvbih0KXtyZXR1cm4gdC5kaW1lbnNpb25zfSxoKTt2YXIgYT10LmRpbWVuc2lvblNlbGVjdGlvbi5zZWxlY3RBbGwoImcuY2F0ZWdvcnkiKS5kYXRhKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNhdGVnb3JpZXN9LGgpO3IodC5kaW1lbnNpb25TZWxlY3Rpb24pLmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24odCl7cmV0dXJuInRyYW5zbGF0ZSgiK3QueCsiLCAwKSJ9KSxyKGEpLmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24odCl7cmV0dXJuInRyYW5zbGF0ZSgwLCAiK3QueSsiKSJ9KSxhLnNlbGVjdCgiLmRpbWxhYmVsIikudGV4dChmdW5jdGlvbih0LGUpe3JldHVybiAwPT09ZT90LnBhcmNhdHNWaWV3TW9kZWwubW9kZWwuZGltZW5zaW9uc1t0Lm1vZGVsLmRpbWVuc2lvbkluZF0uZGltZW5zaW9uTGFiZWw6bnVsbH0pLGEuc2VsZWN0KCIuY2F0bGFiZWwiKS5hdHRyKCJ0ZXh0LWFuY2hvciIsZnVuY3Rpb24odCl7cmV0dXJuIGYodCk/InN0YXJ0IjoiZW5kIn0pLmF0dHIoIngiLGZ1bmN0aW9uKHQpe3JldHVybiBmKHQpP3Qud2lkdGgrNTotNX0pLmVhY2goZnVuY3Rpb24odCl7dmFyIGUscjtmKHQpPyhlPXQud2lkdGgrNSxyPSJzdGFydCIpOihlPS01LHI9ImVuZCIpLG4uc2VsZWN0KHRoaXMpLnNlbGVjdEFsbCgidHNwYW4iKS5hdHRyKCJ4IixlKS5hdHRyKCJ0ZXh0LWFuY2hvciIscil9KTt2YXIgaT1hLnNlbGVjdEFsbCgicmVjdC5iYW5kcmVjdCIpLmRhdGEoZnVuY3Rpb24odCl7cmV0dXJuIHQuYmFuZHN9LGgpLHM9aS5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmF0dHIoImNsYXNzIiwiYmFuZHJlY3QiKS5hdHRyKCJjdXJzb3IiLCJtb3ZlIikuYXR0cigic3Ryb2tlLW9wYWNpdHkiLDApLmF0dHIoImZpbGwiLGZ1bmN0aW9uKHQpe3JldHVybiB0LmNvbG9yfSkuYXR0cigiZmlsbC1vcGFjaXR5IiwwKTtpLmF0dHIoImZpbGwiLGZ1bmN0aW9uKHQpe3JldHVybiB0LmNvbG9yfSkuYXR0cigid2lkdGgiLGZ1bmN0aW9uKHQpe3JldHVybiB0LndpZHRofSkuYXR0cigiaGVpZ2h0IixmdW5jdGlvbih0KXtyZXR1cm4gdC5oZWlnaHR9KS5hdHRyKCJ5IixmdW5jdGlvbih0KXtyZXR1cm4gdC55fSksdyhzKSxpLmVhY2goZnVuY3Rpb24oKXtvLnJhaXNlVG9Ub3AodGhpcyl9KSxpLmV4aXQoKS5yZW1vdmUoKX1mdW5jdGlvbiBEKHQsZSxyLGEsaSl7dmFyIG8scyxsPVtdLGM9W107Zm9yKHM9MDtzPHIubGVuZ3RoLTE7cysrKW89bi5pbnRlcnBvbGF0ZU51bWJlcihyW3NdK3Rbc10sdFtzKzFdKSxsLnB1c2gobyhpKSksYy5wdXNoKG8oMS1pKSk7dmFyIHU9Ik0gIit0WzBdKyIsIitlWzBdO2Zvcih1Kz0ibCIrclswXSsiLDAgIixzPTE7czxyLmxlbmd0aDtzKyspdSs9IkMiK2xbcy0xXSsiLCIrZVtzLTFdKyIgIitjW3MtMV0rIiwiK2Vbc10rIiAiK3Rbc10rIiwiK2Vbc10sdSs9ImwiK3Jbc10rIiwwICI7Zm9yKHUrPSJsMCwiK2ErIiAiLHUrPSJsIC0iK3Jbci5sZW5ndGgtMV0rIiwwICIscz1yLmxlbmd0aC0yO3M+PTA7cy0tKXUrPSJDIitjW3NdKyIsIisoZVtzKzFdK2EpKyIgIitsW3NdKyIsIisoZVtzXSthKSsiICIrKHRbc10rcltzXSkrIiwiKyhlW3NdK2EpLHUrPSJsLSIrcltzXSsiLDAgIjtyZXR1cm4gdSs9IloifWZ1bmN0aW9uIFIodCl7dmFyIGU9dC5kaW1lbnNpb25zLHI9dC5tb2RlbCxuPWUubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNhdGVnb3JpZXMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0Lnl9KX0pLGE9dC5tb2RlbC5kaW1lbnNpb25zLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5jYXRlZ29yaWVzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5kaXNwbGF5SW5kfSl9KSxpPXQubW9kZWwuZGltZW5zaW9ucy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuZGlzcGxheUluZH0pLG89dC5kaW1lbnNpb25zLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5tb2RlbC5kaW1lbnNpb25JbmR9KSxzPWUubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0Lnh9KSxsPWUubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LndpZHRofSksYz1bXTtmb3IodmFyIHUgaW4gci5wYXRocylyLnBhdGhzLmhhc093blByb3BlcnR5KHUpJiZjLnB1c2goci5wYXRoc1t1XSk7ZnVuY3Rpb24gaCh0KXt2YXIgZT10LmNhdGVnb3J5SW5kcy5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm4gYVtlXVt0XX0pO3JldHVybiBvLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0pfWMuc29ydChmdW5jdGlvbihlLHIpe3ZhciBuPWgoZSksYT1oKHIpO3JldHVybiJiYWNrd2FyZCI9PT10LnNvcnRwYXRocyYmKG4ucmV2ZXJzZSgpLGEucmV2ZXJzZSgpKSxuLnB1c2goZS52YWx1ZUluZHNbMF0pLGEucHVzaChyLnZhbHVlSW5kc1swXSksdC5idW5kbGVjb2xvcnMmJihuLnVuc2hpZnQoZS5yYXdDb2xvciksYS51bnNoaWZ0KHIucmF3Q29sb3IpKSxuPGE/LTE6bj5hPzE6MH0pO2Zvcih2YXIgZj1uZXcgQXJyYXkoYy5sZW5ndGgpLHA9ZVswXS5tb2RlbC5jb3VudCxkPWVbMF0uY2F0ZWdvcmllcy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuaGVpZ2h0fSkucmVkdWNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZX0pLGc9MDtnPGMubGVuZ3RoO2crKyl7dmFyIHYsbT1jW2ddO3Y9cD4wP2QqKG0uY291bnQvcCk6MDtmb3IodmFyIHkseD1uZXcgQXJyYXkobi5sZW5ndGgpLGI9MDtiPG0uY2F0ZWdvcnlJbmRzLmxlbmd0aDtiKyspe3ZhciBfPW0uY2F0ZWdvcnlJbmRzW2JdLHc9YVtiXVtfXSxrPWlbYl07eFtrXT1uW2tdW3ddLG5ba11bd10rPXY7dmFyIFQ9dC5kaW1lbnNpb25zW2tdLmNhdGVnb3JpZXNbd10sTT1ULmJhbmRzLmxlbmd0aCxBPVQuYmFuZHNbTS0xXTtpZih2b2lkIDA9PT1BfHxtLnJhd0NvbG9yIT09QS5yYXdDb2xvcil7dmFyIFM9dm9pZCAwPT09QT8wOkEueStBLmhlaWdodDtULmJhbmRzLnB1c2goe2tleTpTLGNvbG9yOm0uY29sb3IscmF3Q29sb3I6bS5yYXdDb2xvcixoZWlnaHQ6dix3aWR0aDpULndpZHRoLGNvdW50Om0uY291bnQseTpTLGNhdGVnb3J5Vmlld01vZGVsOlQscGFyY2F0c1ZpZXdNb2RlbDp0fSl9ZWxzZXt2YXIgRT1ULmJhbmRzW00tMV07RS5oZWlnaHQrPXYsRS5jb3VudCs9bS5jb3VudH19eT0iaHNwbGluZSI9PT10LnBhdGhTaGFwZT9EKHMseCxsLHYsLjUpOkQocyx4LGwsdiwwKSxmW2ddPXtrZXk6bS52YWx1ZUluZHNbMF0sbW9kZWw6bSxoZWlnaHQ6dixsZWZ0WHM6cyx0b3BZczp4LGRpbVdpZHRoczpsLHN2Z0Q6eSxwYXJjYXRzVmlld01vZGVsOnR9fXQucGF0aHM9Zn1mdW5jdGlvbiBGKHQpe3ZhciBlPXQubW9kZWwuZGltZW5zaW9ucy5tYXAoZnVuY3Rpb24odCl7cmV0dXJue2Rpc3BsYXlJbmQ6dC5kaXNwbGF5SW5kLGRpbWVuc2lvbkluZDp0LmRpbWVuc2lvbkluZH19KTtlLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5kaXNwbGF5SW5kLWUuZGlzcGxheUluZH0pO3ZhciByPVtdO2Zvcih2YXIgbiBpbiBlKXt2YXIgYT1lW25dLmRpbWVuc2lvbkluZCxpPXQubW9kZWwuZGltZW5zaW9uc1thXTtyLnB1c2goQih0LGkpKX10LmRpbWVuc2lvbnM9cn1mdW5jdGlvbiBCKHQsZSl7dmFyIHIsbj10Lm1vZGVsLmRpbWVuc2lvbnMubGVuZ3RoLGE9ZS5kaXNwbGF5SW5kO3I9NDArKG4+MT8odC53aWR0aC04MC0xNikvKG4tMSk6MCkqYTt2YXIgaSxvLHMsbCxjLHU9W10saD10Lm1vZGVsLm1heENhdHMsZj1lLmNhdGVnb3JpZXMubGVuZ3RoLHA9ZS5jb3VudCxkPXQuaGVpZ2h0LTgqKGgtMSksZz04KihoLWYpLzIsdj1lLmNhdGVnb3JpZXMubWFwKGZ1bmN0aW9uKHQpe3JldHVybntkaXNwbGF5SW5kOnQuZGlzcGxheUluZCxjYXRlZ29yeUluZDp0LmNhdGVnb3J5SW5kfX0pO2Zvcih2LnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5kaXNwbGF5SW5kLWUuZGlzcGxheUluZH0pLGM9MDtjPGY7YysrKWw9dltjXS5jYXRlZ29yeUluZCxvPWUuY2F0ZWdvcmllc1tsXSxpPXA+MD9vLmNvdW50L3AqZDowLHM9e2tleTpvLnZhbHVlSW5kc1swXSxtb2RlbDpvLHdpZHRoOjE2LGhlaWdodDppLHk6bnVsbCE9PW8uZHJhZ1k/by5kcmFnWTpnLGJhbmRzOltdLHBhcmNhdHNWaWV3TW9kZWw6dH0sZz1nK2krOCx1LnB1c2gocyk7cmV0dXJue2tleTplLmRpbWVuc2lvbkluZCx4Om51bGwhPT1lLmRyYWdYP2UuZHJhZ1g6cix5OjAsd2lkdGg6MTYsbW9kZWw6ZSxjYXRlZ29yaWVzOnUscGFyY2F0c1ZpZXdNb2RlbDp0LGRyYWdDYXRlZ29yeURpc3BsYXlJbmQ6bnVsbCxkcmFnRGltZW5zaW9uRGlzcGxheUluZDpudWxsLGluaXRpYWxEcmFnRGltZW5zaW9uRGlzcGxheUluZHM6bnVsbCxpbml0aWFsRHJhZ0NhdGVnb3J5RGlzcGxheUluZHM6bnVsbCxkcmFnSGFzTW92ZWQ6bnVsbCxwb3RlbnRpYWxDbGlja0JhbmQ6bnVsbH19ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4pe3Uocix0LG4sZSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjEzLCIuLi8uLi9jb21wb25lbnRzL2Z4Ijo2MzAsIi4uLy4uL2xpYiI6NzE3LCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjc0MSwiLi4vLi4vcGxvdF9hcGkvcGxvdF9hcGkiOjc1MixkMzoxNjUsdGlueWNvbG9yMjo1MzZ9XSwxMDgxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vcGFyY2F0cyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhKXt2YXIgaT10Ll9mdWxsTGF5b3V0LG89aS5fcGFwZXIscz1pLl9zaXplO24odCxvLGUse3dpZHRoOnMudyxoZWlnaHQ6cy5oLG1hcmdpbjp7dDpzLnQscjpzLnIsYjpzLmIsbDpzLmx9fSxyLGEpfX0seyIuL3BhcmNhdHMiOjEwODB9XSwxMDgyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vcGxvdHMvZG9tYWluIikuYXR0cmlidXRlcyxzPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LGw9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLnRlbXBsYXRlZEFycmF5O2UuZXhwb3J0cz17ZG9tYWluOm8oe25hbWU6InBhcmNvb3JkcyIsdHJhY2U6ITAsZWRpdFR5cGU6InBsb3QifSksbGFiZWxhbmdsZTp7dmFsVHlwZToiYW5nbGUiLGRmbHQ6MCxlZGl0VHlwZToicGxvdCJ9LGxhYmVsc2lkZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsidG9wIiwiYm90dG9tIl0sZGZsdDoidG9wIixlZGl0VHlwZToicGxvdCJ9LGxhYmVsZm9udDppKHtlZGl0VHlwZToicGxvdCJ9KSx0aWNrZm9udDppKHtlZGl0VHlwZToicGxvdCJ9KSxyYW5nZWZvbnQ6aSh7ZWRpdFR5cGU6InBsb3QifSksZGltZW5zaW9uczpsKCJkaW1lbnNpb24iLHtsYWJlbDp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToicGxvdCJ9LHRpY2t2YWxzOnMoe30sYS50aWNrdmFscyx7ZWRpdFR5cGU6InBsb3QifSksdGlja3RleHQ6cyh7fSxhLnRpY2t0ZXh0LHtlZGl0VHlwZToicGxvdCJ9KSx0aWNrZm9ybWF0OnMoe30sYS50aWNrZm9ybWF0LHtlZGl0VHlwZToicGxvdCJ9KSx2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJwbG90In0scmFuZ2U6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGl0ZW1zOlt7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToicGxvdCJ9LHt2YWxUeXBlOiJudW1iZXIiLGVkaXRUeXBlOiJwbG90In1dLGVkaXRUeXBlOiJwbG90In0sY29uc3RyYWludHJhbmdlOnt2YWxUeXBlOiJpbmZvX2FycmF5IixmcmVlTGVuZ3RoOiEwLGRpbWVuc2lvbnM6IjEtMiIsaXRlbXM6W3t2YWxUeXBlOiJudW1iZXIiLGVkaXRUeXBlOiJwbG90In0se3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6InBsb3QifV0sZWRpdFR5cGU6InBsb3QifSxtdWx0aXNlbGVjdDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToicGxvdCJ9LHZhbHVlczp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxlZGl0VHlwZToiY2FsYyJ9KSxsaW5lOnMoe2VkaXRUeXBlOiJjYWxjIn0sbigibGluZSIse2NvbG9yc2NhbGVEZmx0OiJWaXJpZGlzIixhdXRvQ29sb3JEZmx0OiExLGVkaXRUeXBlT3ZlcnJpZGU6ImNhbGMifSkpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6NTk5LCIuLi8uLi9saWIvZXh0ZW5kIjo3MDgsIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjc1NSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2xheW91dF9hdHRyaWJ1dGVzIjo3NzcsIi4uLy4uL3Bsb3RzL2RvbWFpbiI6NzkwLCIuLi8uLi9wbG90cy9mb250X2F0dHJpYnV0ZXMiOjc5MX1dLDEwODM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9jb25zdGFudHMiKSxhPXQoImQzIiksaT10KCIuLi8uLi9saWIvZ3VwIikua2V5RnVuLG89dCgiLi4vLi4vbGliL2d1cCIpLnJlcGVhdCxzPXQoIi4uLy4uL2xpYiIpLnNvcnRlckFzYyxsPW4uYmFyLnNuYXBSYXRpbztmdW5jdGlvbiBjKHQsZSl7cmV0dXJuIHQqKDEtbCkrZSpsfXZhciB1PW4uYmFyLnNuYXBDbG9zZTtmdW5jdGlvbiBoKHQsZSl7cmV0dXJuIHQqKDEtdSkrZSp1fWZ1bmN0aW9uIGYodCxlLHIsbil7aWYoZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKylpZih0Pj1lW3JdWzBdJiZ0PD1lW3JdWzFdKXJldHVybiEwO3JldHVybiExfShyLG4pKXJldHVybiByO3ZhciBhPXQ/LTE6MSxpPTAsbz1lLmxlbmd0aC0xO2lmKGE8MCl7dmFyIHM9aTtpPW8sbz1zfWZvcih2YXIgbD1lW2ldLHU9bCxmPWk7YSpmPGEqbztmKz1hKXt2YXIgcD1mK2EsZD1lW3BdO2lmKGEqcjxhKmgobCxkKSlyZXR1cm4gYyhsLHUpO2lmKGEqcjxhKmR8fHA9PT1vKXJldHVybiBjKGQsbCk7dT1sLGw9ZH19ZnVuY3Rpb24gcCh0KXt0LmF0dHIoIngiLC1uLmJhci5jYXB0dXJlV2lkdGgvMikuYXR0cigid2lkdGgiLG4uYmFyLmNhcHR1cmVXaWR0aCl9ZnVuY3Rpb24gZCh0KXt0LmF0dHIoInZpc2liaWxpdHkiLCJ2aXNpYmxlIikuc3R5bGUoInZpc2liaWxpdHkiLCJ2aXNpYmxlIikuYXR0cigiZmlsbCIsInllbGxvdyIpLmF0dHIoIm9wYWNpdHkiLDApfWZ1bmN0aW9uIGcodCl7aWYoIXQuYnJ1c2guZmlsdGVyU3BlY2lmaWVkKXJldHVybiIwLCIrdC5oZWlnaHQ7Zm9yKHZhciBlLHIsbixhPXYodC5icnVzaC5maWx0ZXIuZ2V0Q29uc29saWRhdGVkKCksdC5oZWlnaHQpLGk9WzBdLG89YS5sZW5ndGg/YVswXVswXTpudWxsLHM9MDtzPGEubGVuZ3RoO3MrKylyPShlPWFbc10pWzFdLWVbMF0saS5wdXNoKG8pLGkucHVzaChyKSwobj1zKzEpPGEubGVuZ3RoJiYobz1hW25dWzBdLWVbMV0pO3JldHVybiBpLnB1c2godC5oZWlnaHQpLGl9ZnVuY3Rpb24gdih0LGUpe3JldHVybiB0Lm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWF4KDAsdCplKX0pLnNvcnQocyl9KX1mdW5jdGlvbiBtKCl7YS5zZWxlY3QoZG9jdW1lbnQuYm9keSkuc3R5bGUoImN1cnNvciIsbnVsbCl9ZnVuY3Rpb24geSh0KXt0LmF0dHIoInN0cm9rZS1kYXNoYXJyYXkiLGcpfWZ1bmN0aW9uIHgodCxlKXt2YXIgcj1hLnNlbGVjdCh0KS5zZWxlY3RBbGwoIi5oaWdobGlnaHQsIC5oaWdobGlnaHQtc2hhZG93Iik7eShlP3IudHJhbnNpdGlvbigpLmR1cmF0aW9uKG4uYmFyLnNuYXBEdXJhdGlvbikuZWFjaCgiZW5kIixlKTpyKX1mdW5jdGlvbiBiKHQsZSl7dmFyIHIsYT10LmJydXNoLGk9TmFOLG89e307aWYoYS5maWx0ZXJTcGVjaWZpZWQpe3ZhciBzPXQuaGVpZ2h0LGw9YS5maWx0ZXIuZ2V0Q29uc29saWRhdGVkKCksYz12KGwscyksdT1OYU4saD1OYU4sZj1OYU47Zm9yKHI9MDtyPD1jLmxlbmd0aDtyKyspe3ZhciBwPWNbcl07aWYocCYmcFswXTw9ZSYmZTw9cFsxXSl7dT1yO2JyZWFrfWlmKGg9cj9yLTE6TmFOLHAmJnBbMF0+ZSl7Zj1yO2JyZWFrfX1pZihpPXUsaXNOYU4oaSkmJihpPWlzTmFOKGgpfHxpc05hTihmKT9pc05hTihoKT9mOmg6ZS1jW2hdWzFdPGNbZl1bMF0tZT9oOmYpLCFpc05hTihpKSl7dmFyIGQ9Y1tpXSxnPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bi5iYXIuaGFuZGxlSGVpZ2h0O2lmKCEoZT50WzFdK3J8fGU8dFswXS1yKSlyZXR1cm4gZT49LjkqdFsxXSsuMSp0WzBdPyJuIjplPD0uOSp0WzBdKy4xKnRbMV0/InMiOiJucyJ9KGQsZSk7ZyYmKG8uaW50ZXJ2YWw9bFtpXSxvLmludGVydmFsUGl4PWQsby5yZWdpb249Zyl9fWlmKHQub3JkaW5hbCYmIW8ucmVnaW9uKXt2YXIgbT10LnVuaXRUaWNrdmFscyx5PXQudW5pdFRvUGFkZGVkUHguaW52ZXJ0KGUpO2ZvcihyPTA7cjxtLmxlbmd0aDtyKyspe3ZhciB4PVsuMjUqbVtNYXRoLm1heChyLTEsMCldKy43NSptW3JdLC4yNSptW01hdGgubWluKHIrMSxtLmxlbmd0aC0xKV0rLjc1Km1bcl1dO2lmKHk+PXhbMF0mJnk8PXhbMV0pe28uY2xpY2thYmxlT3JkaW5hbFJhbmdlPXg7YnJlYWt9fX1yZXR1cm4gb31mdW5jdGlvbiBfKHQsZSl7YS5ldmVudC5zb3VyY2VFdmVudC5zdG9wUHJvcGFnYXRpb24oKTt2YXIgcj1lLmhlaWdodC1hLm1vdXNlKHQpWzFdLTIqbi52ZXJ0aWNhbFBhZGRpbmcsaT1lLmJydXNoLnN2Z0JydXNoO2kud2FzRHJhZ2dlZD0hMCxpLl9kcmFnZ2luZz0hMCxpLmdyYWJiaW5nQmFyP2kubmV3RXh0ZW50PVtyLWkuZ3JhYlBvaW50LHIraS5iYXJMZW5ndGgtaS5ncmFiUG9pbnRdLm1hcChlLnVuaXRUb1BhZGRlZFB4LmludmVydCk6aS5uZXdFeHRlbnQ9W2kuc3RhcnRFeHRlbnQsZS51bml0VG9QYWRkZWRQeC5pbnZlcnQocildLnNvcnQocyksZS5icnVzaC5maWx0ZXJTcGVjaWZpZWQ9ITAsaS5leHRlbnQ9aS5zdGF5aW5nSW50ZXJ2YWxzLmNvbmNhdChbaS5uZXdFeHRlbnRdKSxpLmJydXNoQ2FsbGJhY2soZSkseCh0LnBhcmVudE5vZGUpfWZ1bmN0aW9uIHcodCxlKXt2YXIgcj1iKGUsZS5oZWlnaHQtYS5tb3VzZSh0KVsxXS0yKm4udmVydGljYWxQYWRkaW5nKSxpPSJjcm9zc2hhaXIiO3IuY2xpY2thYmxlT3JkaW5hbFJhbmdlP2k9InBvaW50ZXIiOnIucmVnaW9uJiYoaT1yLnJlZ2lvbisiLXJlc2l6ZSIpLGEuc2VsZWN0KGRvY3VtZW50LmJvZHkpLnN0eWxlKCJjdXJzb3IiLGkpfWZ1bmN0aW9uIGsodCl7dC5vbigibW91c2Vtb3ZlIixmdW5jdGlvbih0KXthLmV2ZW50LnByZXZlbnREZWZhdWx0KCksdC5wYXJlbnQuaW5CcnVzaERyYWd8fHcodGhpcyx0KX0pLm9uKCJtb3VzZWxlYXZlIixmdW5jdGlvbih0KXt0LnBhcmVudC5pbkJydXNoRHJhZ3x8bSgpfSkuY2FsbChhLmJlaGF2aW9yLmRyYWcoKS5vbigiZHJhZ3N0YXJ0IixmdW5jdGlvbih0KXshZnVuY3Rpb24odCxlKXthLmV2ZW50LnNvdXJjZUV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO3ZhciByPWUuaGVpZ2h0LWEubW91c2UodClbMV0tMipuLnZlcnRpY2FsUGFkZGluZyxpPWUudW5pdFRvUGFkZGVkUHguaW52ZXJ0KHIpLG89ZS5icnVzaCxzPWIoZSxyKSxsPXMuaW50ZXJ2YWwsYz1vLnN2Z0JydXNoO2lmKGMud2FzRHJhZ2dlZD0hMSxjLmdyYWJiaW5nQmFyPSJucyI9PT1zLnJlZ2lvbixjLmdyYWJiaW5nQmFyKXt2YXIgdT1sLm1hcChlLnVuaXRUb1BhZGRlZFB4KTtjLmdyYWJQb2ludD1yLXVbMF0tbi52ZXJ0aWNhbFBhZGRpbmcsYy5iYXJMZW5ndGg9dVsxXS11WzBdfWMuY2xpY2thYmxlT3JkaW5hbFJhbmdlPXMuY2xpY2thYmxlT3JkaW5hbFJhbmdlLGMuc3RheWluZ0ludGVydmFscz1lLm11bHRpc2VsZWN0JiZvLmZpbHRlclNwZWNpZmllZD9vLmZpbHRlci5nZXRDb25zb2xpZGF0ZWQoKTpbXSxsJiYoYy5zdGF5aW5nSW50ZXJ2YWxzPWMuc3RheWluZ0ludGVydmFscy5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHRbMF0hPT1sWzBdJiZ0WzFdIT09bFsxXX0pKSxjLnN0YXJ0RXh0ZW50PXMucmVnaW9uP2xbInMiPT09cy5yZWdpb24/MTowXTppLGUucGFyZW50LmluQnJ1c2hEcmFnPSEwLGMuYnJ1c2hTdGFydENhbGxiYWNrKCl9KHRoaXMsdCl9KS5vbigiZHJhZyIsZnVuY3Rpb24odCl7Xyh0aGlzLHQpfSkub24oImRyYWdlbmQiLGZ1bmN0aW9uKHQpeyFmdW5jdGlvbih0LGUpe3ZhciByPWUuYnJ1c2gsbj1yLmZpbHRlcixpPXIuc3ZnQnJ1c2g7aS5fZHJhZ2dpbmd8fCh3KHQsZSksXyh0LGUpLGUuYnJ1c2guc3ZnQnJ1c2gud2FzRHJhZ2dlZD0hMSksaS5fZHJhZ2dpbmc9ITEsYS5ldmVudC5zb3VyY2VFdmVudC5zdG9wUHJvcGFnYXRpb24oKTt2YXIgbz1pLmdyYWJiaW5nQmFyO2lmKGkuZ3JhYmJpbmdCYXI9ITEsaS5ncmFiTG9jYXRpb249dm9pZCAwLGUucGFyZW50LmluQnJ1c2hEcmFnPSExLG0oKSwhaS53YXNEcmFnZ2VkKXJldHVybiBpLndhc0RyYWdnZWQ9dm9pZCAwLGkuY2xpY2thYmxlT3JkaW5hbFJhbmdlP3IuZmlsdGVyU3BlY2lmaWVkJiZlLm11bHRpc2VsZWN0P2kuZXh0ZW50LnB1c2goaS5jbGlja2FibGVPcmRpbmFsUmFuZ2UpOihpLmV4dGVudD1baS5jbGlja2FibGVPcmRpbmFsUmFuZ2VdLHIuZmlsdGVyU3BlY2lmaWVkPSEwKTpvPyhpLmV4dGVudD1pLnN0YXlpbmdJbnRlcnZhbHMsMD09PWkuZXh0ZW50Lmxlbmd0aCYmTShyKSk6TShyKSxpLmJydXNoQ2FsbGJhY2soZSkseCh0LnBhcmVudE5vZGUpLHZvaWQgaS5icnVzaEVuZENhbGxiYWNrKHIuZmlsdGVyU3BlY2lmaWVkP24uZ2V0Q29uc29saWRhdGVkKCk6W10pO3ZhciBzPWZ1bmN0aW9uKCl7bi5zZXQobi5nZXRDb25zb2xpZGF0ZWQoKSl9O2lmKGUub3JkaW5hbCl7dmFyIGw9ZS51bml0VGlja3ZhbHM7bFtsLmxlbmd0aC0xXTxsWzBdJiZsLnJldmVyc2UoKSxpLm5ld0V4dGVudD1bZigwLGwsaS5uZXdFeHRlbnRbMF0saS5zdGF5aW5nSW50ZXJ2YWxzKSxmKDEsbCxpLm5ld0V4dGVudFsxXSxpLnN0YXlpbmdJbnRlcnZhbHMpXTt2YXIgYz1pLm5ld0V4dGVudFsxXT5pLm5ld0V4dGVudFswXTtpLmV4dGVudD1pLnN0YXlpbmdJbnRlcnZhbHMuY29uY2F0KGM/W2kubmV3RXh0ZW50XTpbXSksaS5leHRlbnQubGVuZ3RofHxNKHIpLGkuYnJ1c2hDYWxsYmFjayhlKSxjP3godC5wYXJlbnROb2RlLHMpOihzKCkseCh0LnBhcmVudE5vZGUpKX1lbHNlIHMoKTtpLmJydXNoRW5kQ2FsbGJhY2soci5maWx0ZXJTcGVjaWZpZWQ/bi5nZXRDb25zb2xpZGF0ZWQoKTpbXSl9KHRoaXMsdCl9KSl9ZnVuY3Rpb24gVCh0LGUpe3JldHVybiB0WzBdLWVbMF19ZnVuY3Rpb24gTSh0KXt0LmZpbHRlclNwZWNpZmllZD0hMSx0LnN2Z0JydXNoLmV4dGVudD1bWy0xLzAsMS8wXV19ZnVuY3Rpb24gQSh0KXtmb3IodmFyIGUscj10LnNsaWNlKCksbj1bXSxhPXIuc2hpZnQoKTthOyl7Zm9yKGU9YS5zbGljZSgpOyhhPXIuc2hpZnQoKSkmJmFbMF08PWVbMV07KWVbMV09TWF0aC5tYXgoZVsxXSxhWzFdKTtuLnB1c2goZSl9cmV0dXJuIG59ZS5leHBvcnRzPXttYWtlQnJ1c2g6ZnVuY3Rpb24odCxlLHIsbixhLGkpe3ZhciBvLGw9ZnVuY3Rpb24oKXt2YXIgdCxlLHI9W107cmV0dXJue3NldDpmdW5jdGlvbihuKXsxPT09KHI9bi5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuc2xpY2UoKS5zb3J0KHMpfSkuc29ydChUKSkubGVuZ3RoJiZyWzBdWzBdPT09LTEvMCYmclswXVsxXT09PTEvMCYmKHI9W1swLC0xXV0pLHQ9QShyKSxlPXIucmVkdWNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuW01hdGgubWluKHRbMF0sZVswXSksTWF0aC5tYXgodFsxXSxlWzFdKV19LFsxLzAsLTEvMF0pfSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gci5zbGljZSgpfSxnZXRDb25zb2xpZGF0ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdH0sZ2V0Qm91bmRzOmZ1bmN0aW9uKCl7cmV0dXJuIGV9fX0oKTtyZXR1cm4gbC5zZXQocikse2ZpbHRlcjpsLGZpbHRlclNwZWNpZmllZDplLHN2Z0JydXNoOntleHRlbnQ6W10sYnJ1c2hTdGFydENhbGxiYWNrOm4sYnJ1c2hDYWxsYmFjazoobz1hLGZ1bmN0aW9uKHQpe3ZhciBlPXQuYnJ1c2gscj1mdW5jdGlvbih0KXtyZXR1cm4gdC5zdmdCcnVzaC5leHRlbnQubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnNsaWNlKCl9KX0oZSkuc2xpY2UoKTtlLmZpbHRlci5zZXQociksbygpfSksYnJ1c2hFbmRDYWxsYmFjazppfX19LGVuc3VyZUF4aXNCcnVzaDpmdW5jdGlvbih0KXt2YXIgZT10LnNlbGVjdEFsbCgiLiIrbi5jbi5heGlzQnJ1c2gpLmRhdGEobyxpKTtlLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChuLmNuLmF4aXNCcnVzaCwhMCksZnVuY3Rpb24odCl7dmFyIGU9dC5zZWxlY3RBbGwoIi5iYWNrZ3JvdW5kIikuZGF0YShvKTtlLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuY2xhc3NlZCgiYmFja2dyb3VuZCIsITApLmNhbGwocCkuY2FsbChkKS5zdHlsZSgicG9pbnRlci1ldmVudHMiLCJhdXRvIikuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKDAgIituLnZlcnRpY2FsUGFkZGluZysiKSIpLGUuY2FsbChrKS5hdHRyKCJoZWlnaHQiLGZ1bmN0aW9uKHQpe3JldHVybiB0LmhlaWdodC1uLnZlcnRpY2FsUGFkZGluZ30pO3ZhciByPXQuc2VsZWN0QWxsKCIuaGlnaGxpZ2h0LXNoYWRvdyIpLmRhdGEobyk7ci5lbnRlcigpLmFwcGVuZCgibGluZSIpLmNsYXNzZWQoImhpZ2hsaWdodC1zaGFkb3ciLCEwKS5hdHRyKCJ4Iiwtbi5iYXIud2lkdGgvMikuYXR0cigic3Ryb2tlLXdpZHRoIixuLmJhci53aWR0aCtuLmJhci5zdHJva2VXaWR0aCkuYXR0cigic3Ryb2tlIixuLmJhci5zdHJva2VDb2xvcikuYXR0cigib3BhY2l0eSIsbi5iYXIuc3Ryb2tlT3BhY2l0eSkuYXR0cigic3Ryb2tlLWxpbmVjYXAiLCJidXR0Iiksci5hdHRyKCJ5MSIsZnVuY3Rpb24odCl7cmV0dXJuIHQuaGVpZ2h0fSkuY2FsbCh5KTt2YXIgYT10LnNlbGVjdEFsbCgiLmhpZ2hsaWdodCIpLmRhdGEobyk7YS5lbnRlcigpLmFwcGVuZCgibGluZSIpLmNsYXNzZWQoImhpZ2hsaWdodCIsITApLmF0dHIoIngiLC1uLmJhci53aWR0aC8yKS5hdHRyKCJzdHJva2Utd2lkdGgiLG4uYmFyLndpZHRoLW4uYmFyLnN0cm9rZVdpZHRoKS5hdHRyKCJzdHJva2UiLG4uYmFyLmZpbGxDb2xvcikuYXR0cigib3BhY2l0eSIsbi5iYXIuZmlsbE9wYWNpdHkpLmF0dHIoInN0cm9rZS1saW5lY2FwIiwiYnV0dCIpLGEuYXR0cigieTEiLGZ1bmN0aW9uKHQpe3JldHVybiB0LmhlaWdodH0pLmNhbGwoeSl9KGUpfSxjbGVhblJhbmdlczpmdW5jdGlvbih0LGUpe2lmKEFycmF5LmlzQXJyYXkodFswXSk/KHQ9dC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuc29ydChzKX0pLHQ9ZS5tdWx0aXNlbGVjdD9BKHQuc29ydChUKSk6W3RbMF1dKTp0PVt0LnNvcnQocyldLGUudGlja3ZhbHMpe3ZhciByPWUudGlja3ZhbHMuc2xpY2UoKS5zb3J0KHMpO2lmKCEodD10Lm1hcChmdW5jdGlvbih0KXt2YXIgZT1bZigwLHIsdFswXSxbXSksZigxLHIsdFsxXSxbXSldO2lmKGVbMV0+ZVswXSlyZXR1cm4gZX0pLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdH0pKS5sZW5ndGgpcmV0dXJufXJldHVybiB0Lmxlbmd0aD4xP3Q6dFswXX19fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi8uLi9saWIvZ3VwIjo3MTUsIi4vY29uc3RhbnRzIjoxMDg2LGQzOjE2NX1dLDEwODQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxhPXQoIi4uLy4uL3Bsb3RzL2dldF9kYXRhIikuZ2V0TW9kdWxlQ2FsY0RhdGEsaT10KCIuL3Bsb3QiKSxvPXQoIi4uLy4uL2NvbnN0YW50cy94bWxuc19uYW1lc3BhY2VzIik7ci5uYW1lPSJwYXJjb29yZHMiLHIucGxvdD1mdW5jdGlvbih0KXt2YXIgZT1hKHQuY2FsY2RhdGEsInBhcmNvb3JkcyIpWzBdO2UubGVuZ3RoJiZpKHQsZSl9LHIuY2xlYW49ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9bi5faGFzJiZuLl9oYXMoInBhcmNvb3JkcyIpLGk9ZS5faGFzJiZlLl9oYXMoInBhcmNvb3JkcyIpO2EmJiFpJiYobi5fcGFwZXJkaXYuc2VsZWN0QWxsKCIucGFyY29vcmRzIikucmVtb3ZlKCksbi5fZ2xpbWFnZXMuc2VsZWN0QWxsKCIqIikucmVtb3ZlKCkpfSxyLnRvU1ZHPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQuX2dsaW1hZ2VzLHI9bi5zZWxlY3QodCkuc2VsZWN0QWxsKCIuc3ZnLWNvbnRhaW5lciIpO3IuZmlsdGVyKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU9PT1yLnNpemUoKS0xfSkuc2VsZWN0QWxsKCIuZ2wtY2FudmFzLWNvbnRleHQsIC5nbC1jYW52YXMtZm9jdXMiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50b0RhdGFVUkwoImltYWdlL3BuZyIpO2UuYXBwZW5kKCJzdmc6aW1hZ2UiKS5hdHRyKHt4bWxuczpvLnN2ZywieGxpbms6aHJlZiI6dCxwcmVzZXJ2ZUFzcGVjdFJhdGlvOiJub25lIix4OjAseTowLHdpZHRoOnRoaXMud2lkdGgsaGVpZ2h0OnRoaXMuaGVpZ2h0fSl9KSx3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe24uc2VsZWN0QWxsKCIjZmlsdGVyQmFyUGF0dGVybiIpLmF0dHIoImlkIiwiZmlsdGVyQmFyUGF0dGVybiIpfSw2MCl9fSx7Ii4uLy4uL2NvbnN0YW50cy94bWxuc19uYW1lc3BhY2VzIjo2OTQsIi4uLy4uL3Bsb3RzL2dldF9kYXRhIjo4MDAsIi4vcGxvdCI6MTA5MyxkMzoxNjV9XSwxMDg1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLmlzQXJyYXlPclR5cGVkQXJyYXksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiKSxpPXQoIi4uLy4uL2xpYi9ndXAiKS53cmFwO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLG87cmV0dXJuIGEuaGFzQ29sb3JzY2FsZShlLCJsaW5lIikmJm4oZS5saW5lLmNvbG9yKT8ocj1lLmxpbmUuY29sb3Isbz1hLmV4dHJhY3RPcHRzKGUubGluZSkuY29sb3JzY2FsZSxhLmNhbGModCxlLHt2YWxzOnIsY29udGFpbmVyU3RyOiJsaW5lIixjTGV0dGVyOiJjIn0pKToocj1mdW5jdGlvbih0KXtmb3IodmFyIGU9bmV3IEFycmF5KHQpLHI9MDtyPHQ7cisrKWVbcl09LjU7cmV0dXJuIGV9KGUuX2xlbmd0aCksbz1bWzAsZS5saW5lLmNvbG9yXSxbMSxlLmxpbmUuY29sb3JdXSksaSh7bGluZUNvbG9yOnIsY3NjYWxlOm99KX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIjo2MDQsIi4uLy4uL2xpYiI6NzE3LCIuLi8uLi9saWIvZ3VwIjo3MTV9XSwxMDg2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bWF4RGltZW5zaW9uQ291bnQ6NjAsb3ZlcmRyYWc6NDUsdmVydGljYWxQYWRkaW5nOjIsdGlja0Rpc3RhbmNlOjUwLGNhbnZhc1BpeGVsUmF0aW86MSxibG9ja0xpbmVDb3VudDo1ZTMsbGF5ZXJzOlsiY29udGV4dExpbmVMYXllciIsImZvY3VzTGluZUxheWVyIiwicGlja0xpbmVMYXllciJdLGF4aXNUaXRsZU9mZnNldDoyOCxheGlzRXh0ZW50T2Zmc2V0OjEwLGRlc2VsZWN0ZWRMaW5lQ29sb3I6IiM3NzciLGJhcjp7d2lkdGg6NCxjYXB0dXJlV2lkdGg6MTAsZmlsbENvbG9yOiJtYWdlbnRhIixmaWxsT3BhY2l0eToxLHNuYXBEdXJhdGlvbjoxNTAsc25hcFJhdGlvOi4yNSxzbmFwQ2xvc2U6LjAxLHN0cm9rZUNvbG9yOiJ3aGl0ZSIsc3Ryb2tlT3BhY2l0eToxLHN0cm9rZVdpZHRoOjEsaGFuZGxlSGVpZ2h0OjgsaGFuZGxlT3BhY2l0eToxLGhhbmRsZU92ZXJsYXA6MH0sY246e2F4aXNFeHRlbnRUZXh0OiJheGlzLWV4dGVudC10ZXh0IixwYXJjb29yZHNMaW5lTGF5ZXJzOiJwYXJjb29yZHMtbGluZS1sYXllcnMiLHBhcmNvb3Jkc0xpbmVMYXllcjoicGFyY29vcmRzLWxpbmVzIixwYXJjb29yZHM6InBhcmNvb3JkcyIscGFyY29vcmRzQ29udHJvbFZpZXc6InBhcmNvb3Jkcy1jb250cm9sLXZpZXciLHlBeGlzOiJ5LWF4aXMiLGF4aXNPdmVybGF5czoiYXhpcy1vdmVybGF5cyIsYXhpczoiYXhpcyIsYXhpc0hlYWRpbmc6ImF4aXMtaGVhZGluZyIsYXhpc1RpdGxlOiJheGlzLXRpdGxlIixheGlzRXh0ZW50OiJheGlzLWV4dGVudCIsYXhpc0V4dGVudFRvcDoiYXhpcy1leHRlbnQtdG9wIixheGlzRXh0ZW50VG9wVGV4dDoiYXhpcy1leHRlbnQtdG9wLXRleHQiLGF4aXNFeHRlbnRCb3R0b206ImF4aXMtZXh0ZW50LWJvdHRvbSIsYXhpc0V4dGVudEJvdHRvbVRleHQ6ImF4aXMtZXh0ZW50LWJvdHRvbS10ZXh0IixheGlzQnJ1c2g6ImF4aXMtYnJ1c2gifSxpZDp7ZmlsdGVyQmFyUGF0dGVybjoiZmlsdGVyLWJhci1wYXR0ZXJuIn19fSx7fV0sMTA4NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9oZWxwZXJzIikuaGFzQ29sb3JzY2FsZSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyIpLG89dCgiLi4vLi4vcGxvdHMvZG9tYWluIikuZGVmYXVsdHMscz10KCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiKSxsPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksYz10KCIuL2F0dHJpYnV0ZXMiKSx1PXQoIi4vYXhpc2JydXNoIiksaD10KCIuL2NvbnN0YW50cyIpLm1heERpbWVuc2lvbkNvdW50LGY9dCgiLi9tZXJnZV9sZW5ndGgiKTtmdW5jdGlvbiBwKHQsZSxyLGEpe2Z1bmN0aW9uIGkocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLGMuZGltZW5zaW9ucyxyLGEpfXZhciBvPWkoInZhbHVlcyIpLHM9aSgidmlzaWJsZSIpO2lmKG8mJm8ubGVuZ3RofHwocz1lLnZpc2libGU9ITEpLHMpe2koImxhYmVsIiksaSgidGlja3ZhbHMiKSxpKCJ0aWNrdGV4dCIpLGkoInRpY2tmb3JtYXQiKTt2YXIgaD1pKCJyYW5nZSIpO2UuX2F4PXtfaWQ6InkiLHR5cGU6ImxpbmVhciIsc2hvd2V4cG9uZW50OiJhbGwiLGV4cG9uZW50Zm9ybWF0OiJCIixyYW5nZTpofSxsLnNldENvbnZlcnQoZS5fYXgsYS5sYXlvdXQpLGkoIm11bHRpc2VsZWN0Iik7dmFyIGY9aSgiY29uc3RyYWludHJhbmdlIik7ZiYmKGUuY29uc3RyYWludHJhbmdlPXUuY2xlYW5SYW5nZXMoZixlKSl9fWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscixsKXtmdW5jdGlvbiB1KHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxjLHIsYSl9dmFyIGQ9dC5kaW1lbnNpb25zO0FycmF5LmlzQXJyYXkoZCkmJmQubGVuZ3RoPmgmJihuLmxvZygicGFyY29vcmRzIHRyYWNlcyBzdXBwb3J0IHVwIHRvICIraCsiIGRpbWVuc2lvbnMgYXQgdGhlIG1vbWVudCIpLGQuc3BsaWNlKGgpKTt2YXIgZz1zKHQsZSx7bmFtZToiZGltZW5zaW9ucyIsbGF5b3V0OmwsaGFuZGxlSXRlbURlZmF1bHRzOnB9KSx2PWZ1bmN0aW9uKHQsZSxyLG8scyl7dmFyIGw9cygibGluZS5jb2xvciIscik7aWYoYSh0LCJsaW5lIikmJm4uaXNBcnJheU9yVHlwZWRBcnJheShsKSl7aWYobC5sZW5ndGgpcmV0dXJuIHMoImxpbmUuY29sb3JzY2FsZSIpLGkodCxlLG8scyx7cHJlZml4OiJsaW5lLiIsY0xldHRlcjoiYyJ9KSxsLmxlbmd0aDtlLmxpbmUuY29sb3I9cn1yZXR1cm4gMS8wfSh0LGUscixsLHUpO28oZSxsLHUpLEFycmF5LmlzQXJyYXkoZykmJmcubGVuZ3RofHwoZS52aXNpYmxlPSExKSxmKGUsZywidmFsdWVzIix2KTt2YXIgbT17ZmFtaWx5OmwuZm9udC5mYW1pbHksc2l6ZTpNYXRoLnJvdW5kKGwuZm9udC5zaXplLzEuMiksY29sb3I6bC5mb250LmNvbG9yfTtuLmNvZXJjZUZvbnQodSwibGFiZWxmb250IixtKSxuLmNvZXJjZUZvbnQodSwidGlja2ZvbnQiLG0pLG4uY29lcmNlRm9udCh1LCJyYW5nZWZvbnQiLG0pLHUoImxhYmVsYW5nbGUiKSx1KCJsYWJlbHNpZGUiKX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIjo2MDIsIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9oZWxwZXJzIjo2MDMsIi4uLy4uL2xpYiI6NzE3LCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiOjc2MSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjc2NSwiLi4vLi4vcGxvdHMvZG9tYWluIjo3OTAsIi4vYXR0cmlidXRlcyI6MTA4MiwiLi9heGlzYnJ1c2giOjEwODMsIi4vY29uc3RhbnRzIjoxMDg2LCIuL21lcmdlX2xlbmd0aCI6MTA5MX1dLDEwODg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIikuaXNUeXBlZEFycmF5O3IuY29udmVydFR5cGVkQXJyYXk9ZnVuY3Rpb24odCl7cmV0dXJuIG4odCk/QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCk6dH0sci5pc09yZGluYWw9ZnVuY3Rpb24odCl7cmV0dXJuISF0LnRpY2t2YWxzfSxyLmlzVmlzaWJsZT1mdW5jdGlvbih0KXtyZXR1cm4gdC52aXNpYmxlfHwhKCJ2aXNpYmxlImluIHQpfX0seyIuLi8uLi9saWIiOjcxN31dLDEwODk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjYWxjOnQoIi4vY2FsYyIpLHBsb3Q6dCgiLi9wbG90IiksY29sb3JiYXI6e2NvbnRhaW5lcjoibGluZSIsbWluOiJjbWluIixtYXg6ImNtYXgifSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToicGFyY29vcmRzIixiYXNlUGxvdE1vZHVsZTp0KCIuL2Jhc2VfcGxvdCIpLGNhdGVnb3JpZXM6WyJnbCIsInJlZ2wiLCJub09wYWNpdHkiLCJub0hvdmVyIl0sbWV0YTp7fX19LHsiLi9hdHRyaWJ1dGVzIjoxMDgyLCIuL2Jhc2VfcGxvdCI6MTA4NCwiLi9jYWxjIjoxMDg1LCIuL2RlZmF1bHRzIjoxMDg3LCIuL3Bsb3QiOjEwOTN9XSwxMDkwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImdsc2xpZnkiKSxhPW4oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG52YXJ5aW5nIHZlYzQgZnJhZ0NvbG9yO1xuXG5hdHRyaWJ1dGUgdmVjNCBwMDFfMDQsIHAwNV8wOCwgcDA5XzEyLCBwMTNfMTYsXG4gICAgICAgICAgICAgICBwMTdfMjAsIHAyMV8yNCwgcDI1XzI4LCBwMjlfMzIsXG4gICAgICAgICAgICAgICBwMzNfMzYsIHAzN180MCwgcDQxXzQ0LCBwNDVfNDgsXG4gICAgICAgICAgICAgICBwNDlfNTIsIHA1M181NiwgcDU3XzYwLCBjb2xvcnM7XG5cbnVuaWZvcm0gbWF0NCBkaW0wQSwgZGltMUEsIGRpbTBCLCBkaW0xQiwgZGltMEMsIGRpbTFDLCBkaW0wRCwgZGltMUQsXG4gICAgICAgICAgICAgbG9BLCBoaUEsIGxvQiwgaGlCLCBsb0MsIGhpQywgbG9ELCBoaUQ7XG5cbnVuaWZvcm0gdmVjMiByZXNvbHV0aW9uLCB2aWV3Qm94UG9zLCB2aWV3Qm94U2l6ZTtcbnVuaWZvcm0gc2FtcGxlcjJEIG1hc2ssIHBhbGV0dGU7XG51bmlmb3JtIGZsb2F0IG1hc2tIZWlnaHQ7XG51bmlmb3JtIGZsb2F0IGRyd0xheWVyOyAvLyAwOiBjb250ZXh0LCAxOiBmb2N1cywgMjogcGlja1xudW5pZm9ybSB2ZWM0IGNvbnRleHRDb2xvcjtcblxuYm9vbCBpc1BpY2sgICAgPSAoZHJ3TGF5ZXIgPiAxLjUpO1xuYm9vbCBpc0NvbnRleHQgPSAoZHJ3TGF5ZXIgPCAwLjUpO1xuXG5jb25zdCB2ZWM0IFpFUk9TID0gdmVjNCgwLjAsIDAuMCwgMC4wLCAwLjApO1xuY29uc3QgdmVjNCBVTklUUyA9IHZlYzQoMS4wLCAxLjAsIDEuMCwgMS4wKTtcblxuZmxvYXQgdmFsKG1hdDQgcCwgbWF0NCB2KSB7XG4gICAgcmV0dXJuIGRvdChtYXRyaXhDb21wTXVsdChwLCB2KSAqIFVOSVRTLCBVTklUUyk7XG59XG5cbmZsb2F0IGF4aXNZKGZsb2F0IHJhdGlvLCBtYXQ0IEEsIG1hdDQgQiwgbWF0NCBDLCBtYXQ0IEQpIHtcbiAgICBmbG9hdCB5MSA9IHZhbChBLCBkaW0wQSkgKyB2YWwoQiwgZGltMEIpICsgdmFsKEMsIGRpbTBDKSArIHZhbChELCBkaW0wRCk7XG4gICAgZmxvYXQgeTIgPSB2YWwoQSwgZGltMUEpICsgdmFsKEIsIGRpbTFCKSArIHZhbChDLCBkaW0xQykgKyB2YWwoRCwgZGltMUQpO1xuICAgIHJldHVybiB5MSAqICgxLjAgLSByYXRpbykgKyB5MiAqIHJhdGlvO1xufVxuXG5pbnQgaU1vZChpbnQgYSwgaW50IGIpIHtcbiAgICByZXR1cm4gYSAtIGIgKiAoYSAvIGIpO1xufVxuXG5ib29sIGZPdXRzaWRlKGZsb2F0IHAsIGZsb2F0IGxvLCBmbG9hdCBoaSkge1xuICAgIHJldHVybiAobG8gPCBoaSkgJiYgKGxvID4gcCB8fCBwID4gaGkpO1xufVxuXG5ib29sIHZPdXRzaWRlKHZlYzQgcCwgdmVjNCBsbywgdmVjNCBoaSkge1xuICAgIHJldHVybiAoXG4gICAgICAgIGZPdXRzaWRlKHBbMF0sIGxvWzBdLCBoaVswXSkgfHxcbiAgICAgICAgZk91dHNpZGUocFsxXSwgbG9bMV0sIGhpWzFdKSB8fFxuICAgICAgICBmT3V0c2lkZShwWzJdLCBsb1syXSwgaGlbMl0pIHx8XG4gICAgICAgIGZPdXRzaWRlKHBbM10sIGxvWzNdLCBoaVszXSlcbiAgICApO1xufVxuXG5ib29sIG1PdXRzaWRlKG1hdDQgcCwgbWF0NCBsbywgbWF0NCBoaSkge1xuICAgIHJldHVybiAoXG4gICAgICAgIHZPdXRzaWRlKHBbMF0sIGxvWzBdLCBoaVswXSkgfHxcbiAgICAgICAgdk91dHNpZGUocFsxXSwgbG9bMV0sIGhpWzFdKSB8fFxuICAgICAgICB2T3V0c2lkZShwWzJdLCBsb1syXSwgaGlbMl0pIHx8XG4gICAgICAgIHZPdXRzaWRlKHBbM10sIGxvWzNdLCBoaVszXSlcbiAgICApO1xufVxuXG5ib29sIG91dHNpZGVCb3VuZGluZ0JveChtYXQ0IEEsIG1hdDQgQiwgbWF0NCBDLCBtYXQ0IEQpIHtcbiAgICByZXR1cm4gbU91dHNpZGUoQSwgbG9BLCBoaUEpIHx8XG4gICAgICAgICAgIG1PdXRzaWRlKEIsIGxvQiwgaGlCKSB8fFxuICAgICAgICAgICBtT3V0c2lkZShDLCBsb0MsIGhpQykgfHxcbiAgICAgICAgICAgbU91dHNpZGUoRCwgbG9ELCBoaUQpO1xufVxuXG5ib29sIG91dHNpZGVSYXN0ZXJNYXNrKG1hdDQgQSwgbWF0NCBCLCBtYXQ0IEMsIG1hdDQgRCkge1xuICAgIG1hdDQgcG50c1s0XTtcbiAgICBwbnRzWzBdID0gQTtcbiAgICBwbnRzWzFdID0gQjtcbiAgICBwbnRzWzJdID0gQztcbiAgICBwbnRzWzNdID0gRDtcblxuICAgIGZvcihpbnQgaSA9IDA7IGkgPCA0OyArK2kpIHtcbiAgICAgICAgZm9yKGludCBqID0gMDsgaiA8IDQ7ICsraikge1xuICAgICAgICAgICAgZm9yKGludCBrID0gMDsgayA8IDQ7ICsraykge1xuICAgICAgICAgICAgICAgIGlmKDAgPT0gaU1vZChcbiAgICAgICAgICAgICAgICAgICAgaW50KDI1NS4wICogdGV4dHVyZTJEKG1hc2ssXG4gICAgICAgICAgICAgICAgICAgICAgICB2ZWMyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmbG9hdChpICogMiArIGogLyAyKSArIDAuNSkgLyA4LjAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBudHNbaV1bal1ba10gKiAobWFza0hlaWdodCAtIDEuMCkgKyAxLjApIC8gbWFza0hlaWdodFxuICAgICAgICAgICAgICAgICAgICAgICAgKSlbM11cbiAgICAgICAgICAgICAgICAgICAgKSAvIGludChwb3coMi4wLCBmbG9hdChpTW9kKGogKiA0ICsgaywgOCkpKSksXG4gICAgICAgICAgICAgICAgICAgIDJcbiAgICAgICAgICAgICAgICApKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5cbnZlYzQgcG9zaXRpb24oYm9vbCBpc0NvbnRleHQsIGZsb2F0IHYsIG1hdDQgQSwgbWF0NCBCLCBtYXQ0IEMsIG1hdDQgRCkge1xuICAgIGZsb2F0IHggPSAwLjUgKiBzaWduKHYpICsgMC41O1xuICAgIGZsb2F0IHkgPSBheGlzWSh4LCBBLCBCLCBDLCBEKTtcbiAgICBmbG9hdCB6ID0gMS4wIC0gYWJzKHYpO1xuXG4gICAgeiArPSBpc0NvbnRleHQgPyAwLjAgOiAyLjAgKiBmbG9hdChcbiAgICAgICAgb3V0c2lkZUJvdW5kaW5nQm94KEEsIEIsIEMsIEQpIHx8XG4gICAgICAgIG91dHNpZGVSYXN0ZXJNYXNrKEEsIEIsIEMsIEQpXG4gICAgKTtcblxuICAgIHJldHVybiB2ZWM0KFxuICAgICAgICAyLjAgKiAodmVjMih4LCB5KSAqIHZpZXdCb3hTaXplICsgdmlld0JveFBvcykgLyByZXNvbHV0aW9uIC0gMS4wLFxuICAgICAgICB6LFxuICAgICAgICAxLjBcbiAgICApO1xufVxuXG52b2lkIG1haW4oKSB7XG4gICAgbWF0NCBBID0gbWF0NChwMDFfMDQsIHAwNV8wOCwgcDA5XzEyLCBwMTNfMTYpO1xuICAgIG1hdDQgQiA9IG1hdDQocDE3XzIwLCBwMjFfMjQsIHAyNV8yOCwgcDI5XzMyKTtcbiAgICBtYXQ0IEMgPSBtYXQ0KHAzM18zNiwgcDM3XzQwLCBwNDFfNDQsIHA0NV80OCk7XG4gICAgbWF0NCBEID0gbWF0NChwNDlfNTIsIHA1M181NiwgcDU3XzYwLCBaRVJPUyk7XG5cbiAgICBmbG9hdCB2ID0gY29sb3JzWzNdO1xuXG4gICAgZ2xfUG9zaXRpb24gPSBwb3NpdGlvbihpc0NvbnRleHQsIHYsIEEsIEIsIEMsIEQpO1xuXG4gICAgZnJhZ0NvbG9yID1cbiAgICAgICAgaXNDb250ZXh0ID8gdmVjNChjb250ZXh0Q29sb3IpIDpcbiAgICAgICAgaXNQaWNrID8gdmVjNChjb2xvcnMucmdiLCAxLjApIDogdGV4dHVyZTJEKHBhbGV0dGUsIHZlYzIoYWJzKHYpLCAwLjUpKTtcbn1cbiJdKSxpPW4oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG52YXJ5aW5nIHZlYzQgZnJhZ0NvbG9yO1xuXG52b2lkIG1haW4oKSB7XG4gICAgZ2xfRnJhZ0NvbG9yID0gZnJhZ0NvbG9yO1xufVxuIl0pLG89dCgiLi9jb25zdGFudHMiKS5tYXhEaW1lbnNpb25Db3VudCxzPXQoIi4uLy4uL2xpYiIpLGw9MWUtNixjPTIwNDgsdT1uZXcgVWludDhBcnJheSg0KSxoPW5ldyBVaW50OEFycmF5KDQpLGY9e3NoYXBlOlsyNTYsMV0sZm9ybWF0OiJyZ2JhIix0eXBlOiJ1aW50OCIsbWFnOiJuZWFyZXN0IixtaW46Im5lYXJlc3QifTtmdW5jdGlvbiBwKHQsZSxyLG4sYSl7dmFyIGk9dC5fZ2w7aS5lbmFibGUoaS5TQ0lTU09SX1RFU1QpLGkuc2Npc3NvcihlLHIsbixhKSx0LmNsZWFyKHtjb2xvcjpbMCwwLDAsMF0sZGVwdGg6MX0pfWZ1bmN0aW9uIGQodCxlLHIsbixhLGkpe3ZhciBvPWkua2V5O3IuZHJhd0NvbXBsZXRlZHx8KCFmdW5jdGlvbih0KXt0LnJlYWQoe3g6MCx5OjAsd2lkdGg6MSxoZWlnaHQ6MSxkYXRhOnV9KX0odCksci5kcmF3Q29tcGxldGVkPSEwKSxmdW5jdGlvbiBzKGwpe3ZhciBjPU1hdGgubWluKG4sYS1sKm4pOzA9PT1sJiYod2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHIuY3VycmVudFJhZnNbb10pLGRlbGV0ZSByLmN1cnJlbnRSYWZzW29dLHAodCxpLnNjaXNzb3JYLGkuc2Npc3NvclksaS5zY2lzc29yV2lkdGgsaS52aWV3Qm94U2l6ZVsxXSkpLHIuY2xlYXJPbmx5fHwoaS5jb3VudD0yKmMsaS5vZmZzZXQ9MipsKm4sZShpKSxsKm4rYzxhJiYoci5jdXJyZW50UmFmc1tvXT13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7cyhsKzEpfSkpLHIuZHJhd0NvbXBsZXRlZD0hMSl9KDApfWZ1bmN0aW9uIGcodCxlKXtmb3IodmFyIHI9bmV3IEFycmF5KDI1Niksbj0wO248MjU2O24rKylyW25dPXQobi8yNTUpLmNvbmNhdChlKTtyZXR1cm4gcn1mdW5jdGlvbiB2KHQsZSl7cmV0dXJuKHQ+Pj44KmUpJTI1Ni8yNTV9ZnVuY3Rpb24gbSh0LGUscil7Zm9yKHZhciBuPW5ldyBBcnJheSg4KmUpLGE9MCxpPTA7aTxlO2krKylmb3IodmFyIG89MDtvPDI7bysrKWZvcih2YXIgcz0wO3M8NDtzKyspe3ZhciBsPTQqdCtzLGM9cls2NCppK2xdOzYzPT09bCYmMD09PW8mJihjKj0tMSksblthKytdPWN9cmV0dXJuIG59ZnVuY3Rpb24geSh0KXt2YXIgZT0iMCIrdDtyZXR1cm4gZS5zdWJzdHIoZS5sZW5ndGgtMil9ZnVuY3Rpb24geCh0KXtyZXR1cm4gdDxvPyJwIit5KHQrMSkrIl8iK3kodCs0KToiY29sb3JzIn1mdW5jdGlvbiBiKHQsZSxyLG4sYSxpLG8sbCxjLHUsaCxmLHApe2Zvcih2YXIgZD1bW10sW11dLGc9MDtnPDY0O2crKylkWzBdW2ddPWc9PT1hPzE6MCxkWzFdW2ddPWc9PT1pPzE6MDt2YXIgdj10LmxpbmVzLmNhbnZhc092ZXJkcmFnLG09dC5kb21haW4seT10LmNhbnZhc1dpZHRoLHg9dC5jYW52YXNIZWlnaHQsYj10LmRlc2VsZWN0ZWRMaW5lcy5jb2xvcjtyZXR1cm4gcy5leHRlbmRGbGF0KHtrZXk6aCxyZXNvbHV0aW9uOlt5LHhdLHZpZXdCb3hQb3M6W28rdixsXSx2aWV3Qm94U2l6ZTpbYyx1XSxpMDphLGkxOmksZGltMEE6ZFswXS5zbGljZSgwLDE2KSxkaW0wQjpkWzBdLnNsaWNlKDE2LDMyKSxkaW0wQzpkWzBdLnNsaWNlKDMyLDQ4KSxkaW0wRDpkWzBdLnNsaWNlKDQ4LDY0KSxkaW0xQTpkWzFdLnNsaWNlKDAsMTYpLGRpbTFCOmRbMV0uc2xpY2UoMTYsMzIpLGRpbTFDOmRbMV0uc2xpY2UoMzIsNDgpLGRpbTFEOmRbMV0uc2xpY2UoNDgsNjQpLGRyd0xheWVyOmYsY29udGV4dENvbG9yOltiWzBdLzI1NSxiWzFdLzI1NSxiWzJdLzI1NSxiWzNdPDE/YlszXTpNYXRoLm1heCgxLzI1NSxNYXRoLnBvdygxL3QubGluZXMuY29sb3IubGVuZ3RoLDEvMykpXSxzY2lzc29yWDoobj09PWU/MDpvK3YpKyh0LnBhZC5sLXYpK3QubGF5b3V0V2lkdGgqbS54WzBdLHNjaXNzb3JXaWR0aDoobj09PXI/eS1vK3Y6YysuNSkrKG49PT1lP28rdjowKSxzY2lzc29yWTpsK3QucGFkLmIrdC5sYXlvdXRIZWlnaHQqbS55WzBdLHNjaXNzb3JIZWlnaHQ6dSx2aWV3cG9ydFg6dC5wYWQubC12K3QubGF5b3V0V2lkdGgqbS54WzBdLHZpZXdwb3J0WTp0LnBhZC5iK3QubGF5b3V0SGVpZ2h0Km0ueVswXSx2aWV3cG9ydFdpZHRoOnksdmlld3BvcnRIZWlnaHQ6eH0scCl9ZnVuY3Rpb24gXyh0KXt2YXIgZT1jLTEscj1NYXRoLm1heCgwLE1hdGguZmxvb3IodFswXSplKSwwKSxuPU1hdGgubWluKGUsTWF0aC5jZWlsKHRbMV0qZSksZSk7cmV0dXJuW01hdGgubWluKHIsbiksTWF0aC5tYXgocixuKV19ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbix1LHksdyxrPWUuY29udGV4dCxUPWUucGljayxNPWUucmVnbCxBPXtjdXJyZW50UmFmczp7fSxkcmF3Q29tcGxldGVkOiEwLGNsZWFyT25seTohMX0sUz1mdW5jdGlvbih0KXtmb3IodmFyIGU9e30scj0wO3I8PW87cis9NCllW3gocildPXQuYnVmZmVyKHt1c2FnZToiZHluYW1pYyIsdHlwZToiZmxvYXQiLGRhdGE6bmV3IFVpbnQ4QXJyYXkoMCl9KTtyZXR1cm4gZX0oTSksRT1NLnRleHR1cmUoZiksTD1bXTtQKGUpO3ZhciBDPU0oe3Byb2ZpbGU6ITEsYmxlbmQ6e2VuYWJsZTprLGZ1bmM6e3NyY1JHQjoic3JjIGFscGhhIixkc3RSR0I6Im9uZSBtaW51cyBzcmMgYWxwaGEiLHNyY0FscGhhOjEsZHN0QWxwaGE6MX0sZXF1YXRpb246e3JnYjoiYWRkIixhbHBoYToiYWRkIn0sY29sb3I6WzAsMCwwLDBdfSxkZXB0aDp7ZW5hYmxlOiFrLG1hc2s6ITAsZnVuYzoibGVzcyIscmFuZ2U6WzAsMV19LGN1bGw6e2VuYWJsZTohMCxmYWNlOiJiYWNrIn0sc2Npc3Nvcjp7ZW5hYmxlOiEwLGJveDp7eDpNLnByb3AoInNjaXNzb3JYIikseTpNLnByb3AoInNjaXNzb3JZIiksd2lkdGg6TS5wcm9wKCJzY2lzc29yV2lkdGgiKSxoZWlnaHQ6TS5wcm9wKCJzY2lzc29ySGVpZ2h0Iil9fSx2aWV3cG9ydDp7eDpNLnByb3AoInZpZXdwb3J0WCIpLHk6TS5wcm9wKCJ2aWV3cG9ydFkiKSx3aWR0aDpNLnByb3AoInZpZXdwb3J0V2lkdGgiKSxoZWlnaHQ6TS5wcm9wKCJ2aWV3cG9ydEhlaWdodCIpfSxkaXRoZXI6ITEsdmVydDphLGZyYWc6aSxwcmltaXRpdmU6ImxpbmVzIixsaW5lV2lkdGg6MSxhdHRyaWJ1dGVzOlMsdW5pZm9ybXM6e3Jlc29sdXRpb246TS5wcm9wKCJyZXNvbHV0aW9uIiksdmlld0JveFBvczpNLnByb3AoInZpZXdCb3hQb3MiKSx2aWV3Qm94U2l6ZTpNLnByb3AoInZpZXdCb3hTaXplIiksZGltMEE6TS5wcm9wKCJkaW0wQSIpLGRpbTFBOk0ucHJvcCgiZGltMUEiKSxkaW0wQjpNLnByb3AoImRpbTBCIiksZGltMUI6TS5wcm9wKCJkaW0xQiIpLGRpbTBDOk0ucHJvcCgiZGltMEMiKSxkaW0xQzpNLnByb3AoImRpbTFDIiksZGltMEQ6TS5wcm9wKCJkaW0wRCIpLGRpbTFEOk0ucHJvcCgiZGltMUQiKSxsb0E6TS5wcm9wKCJsb0EiKSxoaUE6TS5wcm9wKCJoaUEiKSxsb0I6TS5wcm9wKCJsb0IiKSxoaUI6TS5wcm9wKCJoaUIiKSxsb0M6TS5wcm9wKCJsb0MiKSxoaUM6TS5wcm9wKCJoaUMiKSxsb0Q6TS5wcm9wKCJsb0QiKSxoaUQ6TS5wcm9wKCJoaUQiKSxwYWxldHRlOkUsY29udGV4dENvbG9yOk0ucHJvcCgiY29udGV4dENvbG9yIiksbWFzazpNLnByb3AoIm1hc2tUZXh0dXJlIiksZHJ3TGF5ZXI6TS5wcm9wKCJkcndMYXllciIpLG1hc2tIZWlnaHQ6TS5wcm9wKCJtYXNrSGVpZ2h0Iil9LG9mZnNldDpNLnByb3AoIm9mZnNldCIpLGNvdW50Ok0ucHJvcCgiY291bnQiKX0pO2Z1bmN0aW9uIFAodCl7cj10Lm1vZGVsLG49dC52aWV3TW9kZWwsdT1uLmRpbWVuc2lvbnMuc2xpY2UoKSx5PXVbMF0/dVswXS52YWx1ZXMubGVuZ3RoOjA7dmFyIGU9ci5saW5lcyxhPVQ/ZS5jb2xvci5tYXAoZnVuY3Rpb24odCxyKXtyZXR1cm4gci9lLmNvbG9yLmxlbmd0aH0pOmUuY29sb3IsaT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuLGE9bmV3IEFycmF5KHQqKG8rNCkpLGk9MCxzPTA7czx0O3MrKyl7Zm9yKHZhciBjPTA7YzxvO2MrKylhW2krK109YzxlLmxlbmd0aD9lW2NdLnBhZGRlZFVuaXRWYWx1ZXNbc106LjU7YVtpKytdPXYocywyKSxhW2krK109dihzLDEpLGFbaSsrXT12KHMsMCksYVtpKytdPShuPXJbc10sTWF0aC5tYXgobCxNYXRoLm1pbigxLWwsbikpKX1yZXR1cm4gYX0oeSx1LGEpOyFmdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPTA7bjw9bztuKz00KXRbeChuKV0obShuLzQsZSxyKSl9KFMseSxpKSxrfHxUfHwoRT1NLnRleHR1cmUocy5leHRlbmRGbGF0KHtkYXRhOmcoci51bml0VG9Db2xvciwyNTUpfSxmKSkpfXJldHVybntyZW5kZXI6ZnVuY3Rpb24odCxlLG4pe3ZhciBhLGksbyxzPXQubGVuZ3RoLGw9MS8wLGg9LTEvMDtmb3IoYT0wO2E8czthKyspdFthXS5kaW0wLmNhbnZhc1g8bCYmKGw9dFthXS5kaW0wLmNhbnZhc1gsaT1hKSx0W2FdLmRpbTEuY2FudmFzWD5oJiYoaD10W2FdLmRpbTEuY2FudmFzWCxvPWEpOzA9PT1zJiZwKE0sMCwwLHIuY2FudmFzV2lkdGgsci5jYW52YXNIZWlnaHQpO3ZhciBmPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixhPVtbXSxbXV07Zm9yKG49MDtuPDY0O24rKyl7dmFyIGk9IXQmJm48dS5sZW5ndGg/dVtuXS5icnVzaC5maWx0ZXIuZ2V0Qm91bmRzKCk6Wy0xLzAsMS8wXTthWzBdW25dPWlbMF0sYVsxXVtuXT1pWzFdfXZhciBvPTgqYyxzPW5ldyBBcnJheShvKTtmb3IoZT0wO2U8bztlKyspc1tlXT0yNTU7aWYoIXQpZm9yKGU9MDtlPHUubGVuZ3RoO2UrKyl7dmFyIGw9ZSU4LGg9KGUtbCkvOCxmPU1hdGgucG93KDIsbCkscD11W2VdLmJydXNoLmZpbHRlci5nZXQoKTtpZighKHAubGVuZ3RoPDIpKXt2YXIgZD1fKHBbMF0pWzFdO2ZvcihyPTE7cjxwLmxlbmd0aDtyKyspe3ZhciBnPV8ocFtyXSk7Zm9yKG49ZCsxO248Z1swXTtuKyspc1s4Km4raF0mPX5mO2Q9TWF0aC5tYXgoZCxnWzFdKX19fXZhciB2PXtzaGFwZTpbOCxjXSxmb3JtYXQ6ImFscGhhIix0eXBlOiJ1aW50OCIsbWFnOiJuZWFyZXN0IixtaW46Im5lYXJlc3QiLGRhdGE6c307cmV0dXJuIHc/dyh2KTp3PU0udGV4dHVyZSh2KSx7bWFza1RleHR1cmU6dyxtYXNrSGVpZ2h0OmMsbG9BOmFbMF0uc2xpY2UoMCwxNiksbG9COmFbMF0uc2xpY2UoMTYsMzIpLGxvQzphWzBdLnNsaWNlKDMyLDQ4KSxsb0Q6YVswXS5zbGljZSg0OCw2NCksaGlBOmFbMV0uc2xpY2UoMCwxNiksaGlCOmFbMV0uc2xpY2UoMTYsMzIpLGhpQzphWzFdLnNsaWNlKDMyLDQ4KSxoaUQ6YVsxXS5zbGljZSg0OCw2NCl9fShrKTtmb3IoYT0wO2E8czthKyspe3ZhciBnPXRbYV0sdj1nLmRpbTAuY3Jvc3NmaWx0ZXJEaW1lbnNpb25JbmRleCxtPWcuZGltMS5jcm9zc2ZpbHRlckRpbWVuc2lvbkluZGV4LHg9Zy5jYW52YXNYLFM9Zy5jYW52YXNZLEU9eCtnLnBhbmVsU2l6ZVg7aWYoZXx8IUxbdl18fExbdl1bMF0hPT14fHxMW3ZdWzFdIT09RSl7TFt2XT1beCxFXTt2YXIgUD1iKHIsaSxvLGEsdixtLHgsUyxnLnBhbmVsU2l6ZVgsZy5wYW5lbFNpemVZLGcuZGltMC5jcm9zc2ZpbHRlckRpbWVuc2lvbkluZGV4LGs/MDpUPzI6MSxmKTtBLmNsZWFyT25seT1uO3ZhciBPPWU/ci5saW5lcy5ibG9ja0xpbmVDb3VudDp5O2QoTSxDLEEsTyx5LFApfX19LHJlYWRQaXhlbDpmdW5jdGlvbih0LGUpe3JldHVybiBNLnJlYWQoe3g6dCx5OmUsd2lkdGg6MSxoZWlnaHQ6MSxkYXRhOmh9KSxofSxyZWFkUGl4ZWxzOmZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPW5ldyBVaW50OEFycmF5KDQqcipuKTtyZXR1cm4gTS5yZWFkKHt4OnQseTplLHdpZHRoOnIsaGVpZ2h0Om4sZGF0YTphfSksYX0sZGVzdHJveTpmdW5jdGlvbigpe2Zvcih2YXIgZSBpbiB0LnN0eWxlWyJwb2ludGVyLWV2ZW50cyJdPSJub25lIixFLmRlc3Ryb3koKSx3JiZ3LmRlc3Ryb3koKSxTKVNbZV0uZGVzdHJveSgpfSx1cGRhdGU6UH19fSx7Ii4uLy4uL2xpYiI6NzE3LCIuL2NvbnN0YW50cyI6MTA4NixnbHNsaWZ5OjQxMX1dLDEwOTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhLGk7Zm9yKG58fChuPTEvMCksYT0wO2E8ZS5sZW5ndGg7YSsrKShpPWVbYV0pLnZpc2libGUmJihuPU1hdGgubWluKG4saVtyXS5sZW5ndGgpKTtmb3Iobj09PTEvMCYmKG49MCksdC5fbGVuZ3RoPW4sYT0wO2E8ZS5sZW5ndGg7YSsrKShpPWVbYV0pLnZpc2libGUmJihpLl9sZW5ndGg9bik7cmV0dXJuIG59fSx7fV0sMTA5MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGE9dCgiY29sb3ItcmdiYSIpLGk9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxvPXQoIi4uLy4uL2xpYiIpLHM9dCgiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIiksbD10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxjPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLHU9dCgiLi4vLi4vbGliL2d1cCIpLGg9dS5rZXlGdW4sZj11LnJlcGVhdCxwPXUudW53cmFwLGQ9dCgiLi9oZWxwZXJzIiksZz10KCIuL2NvbnN0YW50cyIpLHY9dCgiLi9heGlzYnJ1c2giKSxtPXQoIi4vbGluZXMiKTtmdW5jdGlvbiB5KHQsZSxyKXtyZXR1cm4gby5hZ2dOdW1zKHQsbnVsbCxlLHIpfWZ1bmN0aW9uIHgodCxlKXtyZXR1cm4gXyh5KE1hdGgubWluLHQsZSkseShNYXRoLm1heCx0LGUpKX1mdW5jdGlvbiBiKHQpe3ZhciBlPXQucmFuZ2U7cmV0dXJuIGU/XyhlWzBdLGVbMV0pOngodC52YWx1ZXMsdC5fbGVuZ3RoKX1mdW5jdGlvbiBfKHQsZSl7cmV0dXJuIWlzTmFOKHQpJiZpc0Zpbml0ZSh0KXx8KHQ9MCksIWlzTmFOKGUpJiZpc0Zpbml0ZShlKXx8KGU9MCksdD09PWUmJigwPT09dD8odC09MSxlKz0xKToodCo9LjksZSo9MS4xKSksW3QsZV19ZnVuY3Rpb24gdyh0LGUscixhLGkpe3ZhciBvLHMsbD1iKHIpO3JldHVybiBhP24uc2NhbGUub3JkaW5hbCgpLmRvbWFpbihhLm1hcCgobz1uLmZvcm1hdChyLnRpY2tmb3JtYXQpLHM9aSxzP2Z1bmN0aW9uKHQsZSl7dmFyIHI9c1tlXTtyZXR1cm4gbnVsbD09cj9vKHQpOnJ9Om8pKSkucmFuZ2UoYS5tYXAoZnVuY3Rpb24ocil7dmFyIG49KHItbFswXSkvKGxbMV0tbFswXSk7cmV0dXJuIHQtZStuKigyKmUtdCl9KSk6bi5zY2FsZS5saW5lYXIoKS5kb21haW4obCkucmFuZ2UoW3QtZSxlXSl9ZnVuY3Rpb24gayh0KXtpZih0LnRpY2t2YWxzKXt2YXIgZT1iKHQpO3JldHVybiBuLnNjYWxlLm9yZGluYWwoKS5kb21haW4odC50aWNrdmFscykucmFuZ2UodC50aWNrdmFscy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuKHQtZVswXSkvKGVbMV0tZVswXSl9KSl9fWZ1bmN0aW9uIFQodCl7dmFyIGU9dC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHRbMF19KSxyPXQubWFwKGZ1bmN0aW9uKHQpe3ZhciBlPWEodFsxXSk7cmV0dXJuIG4ucmdiKCJyZ2IoIitlWzBdKyIsIitlWzFdKyIsIitlWzJdKyIpIil9KSxpPSJyZ2IiLnNwbGl0KCIiKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIG4uc2NhbGUubGluZWFyKCkuY2xhbXAoITApLmRvbWFpbihlKS5yYW5nZShyLm1hcCgoYT10LGZ1bmN0aW9uKHQpe3JldHVybiB0W2FdfSkpKTt2YXIgYX0pO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gaS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUodCl9KX19ZnVuY3Rpb24gTSh0KXtyZXR1cm4gdC5kaW1lbnNpb25zLnNvbWUoZnVuY3Rpb24odCl7cmV0dXJuIHQuYnJ1c2guZmlsdGVyU3BlY2lmaWVkfSl9ZnVuY3Rpb24gQSh0LGUscil7dmFyIGE9ci53aWR0aCxpPXIuaGVpZ2h0LHM9ci5kaW1lbnNpb25zLGw9ci5jYW52YXNQaXhlbFJhdGlvLGM9ZnVuY3Rpb24odCl7cmV0dXJuIGEqdC9NYXRoLm1heCgxLHIuY29sQ291bnQtMSl9LHU9Zy52ZXJ0aWNhbFBhZGRpbmcvaSxoPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4uc2NhbGUubGluZWFyKCkucmFuZ2UoW2UsdC1lXSl9KGksZy52ZXJ0aWNhbFBhZGRpbmcpLGY9e2tleTpyLmtleSx4U2NhbGU6Yyxtb2RlbDpyLGluQnJ1c2hEcmFnOiExfSxwPXt9O3JldHVybiBmLmRpbWVuc2lvbnM9cy5maWx0ZXIoZC5pc1Zpc2libGUpLm1hcChmdW5jdGlvbihhLHMpe3ZhciBtPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4uc2NhbGUubGluZWFyKCkuZG9tYWluKGIodCkpLnJhbmdlKFtlLDEtZV0pfShhLHUpLHk9cFthLmxhYmVsXTtwW2EubGFiZWxdPSh5fHwwKSsxO3ZhciB4PWEubGFiZWwrKHk/Il9fIit5OiIiKSxfPWEuY29uc3RyYWludHJhbmdlLFQ9XyYmXy5sZW5ndGg7VCYmIUFycmF5LmlzQXJyYXkoX1swXSkmJihfPVtfXSk7dmFyIEE9VD9fLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5tYXAobSl9KTpbWy0xLzAsMS8wXV0sUz1hLnZhbHVlcztTLmxlbmd0aD5hLl9sZW5ndGgmJihTPVMuc2xpY2UoMCxhLl9sZW5ndGgpKTt2YXIgRSxMPWEudGlja3ZhbHM7ZnVuY3Rpb24gQyh0LGUpe3JldHVybnt2YWw6dCx0ZXh0OkVbZV19fWZ1bmN0aW9uIFAodCxlKXtyZXR1cm4gdC52YWwtZS52YWx9aWYoQXJyYXkuaXNBcnJheShMKSYmTC5sZW5ndGgpe0U9YS50aWNrdGV4dCxBcnJheS5pc0FycmF5KEUpJiZFLmxlbmd0aD9FLmxlbmd0aD5MLmxlbmd0aD9FPUUuc2xpY2UoMCxMLmxlbmd0aCk6TC5sZW5ndGg+RS5sZW5ndGgmJihMPUwuc2xpY2UoMCxFLmxlbmd0aCkpOkU9TC5tYXAobi5mb3JtYXQoYS50aWNrZm9ybWF0KSk7Zm9yKHZhciBPPTE7TzxMLmxlbmd0aDtPKyspaWYoTFtPXTxMW08tMV0pe2Zvcih2YXIgej1MLm1hcChDKS5zb3J0KFApLEk9MDtJPEwubGVuZ3RoO0krKylMW0ldPXpbSV0udmFsLEVbSV09eltJXS50ZXh0O2JyZWFrfX1lbHNlIEw9dm9pZCAwO3JldHVybiBTPWQuY29udmVydFR5cGVkQXJyYXkoUykse2tleTp4LGxhYmVsOmEubGFiZWwsdGlja0Zvcm1hdDphLnRpY2tmb3JtYXQsdGlja3ZhbHM6TCx0aWNrdGV4dDpFLG9yZGluYWw6ZC5pc09yZGluYWwoYSksbXVsdGlzZWxlY3Q6YS5tdWx0aXNlbGVjdCx4SW5kZXg6cyxjcm9zc2ZpbHRlckRpbWVuc2lvbkluZGV4OnMsdmlzaWJsZUluZGV4OmEuX2luZGV4LGhlaWdodDppLHZhbHVlczpTLHBhZGRlZFVuaXRWYWx1ZXM6Uy5tYXAobSksdW5pdFRpY2t2YWxzOkwmJkwubWFwKG0pLHhTY2FsZTpjLHg6YyhzKSxjYW52YXNYOmMocykqbCx1bml0VG9QYWRkZWRQeDpoLGRvbWFpblNjYWxlOncoaSxnLnZlcnRpY2FsUGFkZGluZyxhLEwsRSksb3JkaW5hbFNjYWxlOmsoYSkscGFyZW50OmYsbW9kZWw6cixicnVzaDp2Lm1ha2VCcnVzaCh0LFQsQSxmdW5jdGlvbigpe3QubGluZVBpY2tBY3RpdmUoITEpfSxmdW5jdGlvbigpe3ZhciBlPWY7ZS5mb2N1c0xheWVyJiZlLmZvY3VzTGF5ZXIucmVuZGVyKGUucGFuZWxzLCEwKTt2YXIgcj1NKGUpOyF0LmNvbnRleHRTaG93bigpJiZyPyhlLmNvbnRleHRMYXllciYmZS5jb250ZXh0TGF5ZXIucmVuZGVyKGUucGFuZWxzLCEwKSx0LmNvbnRleHRTaG93bighMCkpOnQuY29udGV4dFNob3duKCkmJiFyJiYoZS5jb250ZXh0TGF5ZXImJmUuY29udGV4dExheWVyLnJlbmRlcihlLnBhbmVscywhMCwhMCksdC5jb250ZXh0U2hvd24oITEpKX0sZnVuY3Rpb24ocil7aWYoZi5mb2N1c0xheWVyLnJlbmRlcihmLnBhbmVscywhMCksZi5waWNrTGF5ZXImJmYucGlja0xheWVyLnJlbmRlcihmLnBhbmVscywhMCksdC5saW5lUGlja0FjdGl2ZSghMCksZSYmZS5maWx0ZXJDaGFuZ2VkKXt2YXIgbj1tLmludmVydCxpPXIubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm1hcChuKS5zb3J0KG8uc29ydGVyQXNjKX0pLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXS1lWzBdfSk7ZS5maWx0ZXJDaGFuZ2VkKGYua2V5LGEuX2luZGV4LGkpfX0pfX0pLGZ9ZnVuY3Rpb24gUyh0KXt0LmNsYXNzZWQoZy5jbi5heGlzRXh0ZW50VGV4dCwhMCkuYXR0cigidGV4dC1hbmNob3IiLCJtaWRkbGUiKS5zdHlsZSgiY3Vyc29yIiwiZGVmYXVsdCIpLnN0eWxlKCJ1c2VyLXNlbGVjdCIsIm5vbmUiKX1mdW5jdGlvbiBFKHQsZSl7dmFyIHI9InRvcCI9PT1lPzE6LTEsbj10Kk1hdGguUEkvMTgwO3JldHVybntkaXI6cixkeDpNYXRoLnNpbihuKSxkeTpNYXRoLmNvcyhuKSxkZWdyZWVzOnR9fWZ1bmN0aW9uIEwodCxlKXtmb3IodmFyIHI9ZS5wYW5lbHN8fChlLnBhbmVscz1bXSksbj10LmRhdGEoKSxhPTA7YTxuLmxlbmd0aC0xO2ErKyl7dmFyIGk9clthXXx8KHJbYV09e30pLG89blthXSxzPW5bYSsxXTtpLmRpbTA9byxpLmRpbTE9cyxpLmNhbnZhc1g9by5jYW52YXNYLGkucGFuZWxTaXplWD1zLmNhbnZhc1gtby5jYW52YXNYLGkucGFuZWxTaXplWT1lLm1vZGVsLmNhbnZhc0hlaWdodCxpLnk9MCxpLmNhbnZhc1k9MH19ZnVuY3Rpb24gQyh0LGUpe3JldHVybiBpLnRpY2tUZXh0KHQuX2F4LGUsITEpLnRleHR9ZnVuY3Rpb24gUCh0LGUpe2lmKHQub3JkaW5hbClyZXR1cm4iIjt2YXIgcj10LmRvbWFpblNjYWxlLmRvbWFpbigpLG49cltlP3IubGVuZ3RoLTE6MF07cmV0dXJuIEModC5tb2RlbC5kaW1lbnNpb25zW3QudmlzaWJsZUluZGV4XSxuKX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsdSl7dmFyIHk9dC5fZnVsbExheW91dCx3PXkuX3RvcHBhcGVyLGs9eS5fZ2xjb250YWluZXI7IWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKWZvcih2YXIgcj0wO3I8dFtlXS5sZW5ndGg7cisrKWZvcih2YXIgbj10W2VdW3JdLnRyYWNlLGE9bi5kaW1lbnNpb25zLG89MDtvPGEubGVuZ3RoO28rKyl7dmFyIHM9YVtvXS52YWx1ZXMsbD1hW29dLl9heDtsJiYobC5yYW5nZT9sLnJhbmdlPV8obC5yYW5nZVswXSxsLnJhbmdlWzFdKTpsLnJhbmdlPXgocyxuLl9sZW5ndGgpLGwuZHRpY2t8fChsLmR0aWNrPS4wMSooTWF0aC5hYnMobC5yYW5nZVsxXS1sLnJhbmdlWzBdKXx8MSkpLGwudGlja2Zvcm1hdD1hW29dLnRpY2tmb3JtYXQsaS5jYWxjVGlja3MobCksbC5jbGVhblJhbmdlKCkpfX0oZSk7dmFyIE8seixJPShPPSEwLHo9ITEse2xpbmVQaWNrQWN0aXZlOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP089ISF0Ok99LGNvbnRleHRTaG93bjpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD96PSEhdDp6fX0pLEQ9ZS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHAodCkudHJhY2UudmlzaWJsZX0pLm1hcChmdW5jdGlvbih0LGUscil7dmFyIGk9cChlKSxzPWkudHJhY2UsbD1kLmNvbnZlcnRUeXBlZEFycmF5KGkubGluZUNvbG9yKSx1PXMubGluZSxoPXtjb2xvcjphKGcuZGVzZWxlY3RlZExpbmVDb2xvcil9LGY9Yy5leHRyYWN0T3B0cyh1KSx2PWYucmV2ZXJzZXNjYWxlP2MuZmxpcFNjYWxlKGkuY3NjYWxlKTppLmNzY2FsZSxtPXMuZG9tYWluLHk9cy5kaW1lbnNpb25zLHg9dC53aWR0aCxfPXMubGFiZWxhbmdsZSx3PXMubGFiZWxzaWRlLGs9cy5sYWJlbGZvbnQsTT1zLnRpY2tmb250LEE9cy5yYW5nZWZvbnQsUz1vLmV4dGVuZERlZXBOb0FycmF5cyh7fSx1LHtjb2xvcjpsLm1hcChuLnNjYWxlLmxpbmVhcigpLmRvbWFpbihiKHt2YWx1ZXM6bCxyYW5nZTpbZi5taW4sZi5tYXhdLF9sZW5ndGg6cy5fbGVuZ3RofSkpKSxibG9ja0xpbmVDb3VudDpnLmJsb2NrTGluZUNvdW50LGNhbnZhc092ZXJkcmFnOmcub3ZlcmRyYWcqZy5jYW52YXNQaXhlbFJhdGlvfSksRT1NYXRoLmZsb29yKHgqKG0ueFsxXS1tLnhbMF0pKSxMPU1hdGguZmxvb3IodC5oZWlnaHQqKG0ueVsxXS1tLnlbMF0pKSxDPXQubWFyZ2lufHx7bDo4MCxyOjgwLHQ6MTAwLGI6ODB9LFA9RSxPPUw7cmV0dXJue2tleTpyLGNvbENvdW50OnkuZmlsdGVyKGQuaXNWaXNpYmxlKS5sZW5ndGgsZGltZW5zaW9uczp5LHRpY2tEaXN0YW5jZTpnLnRpY2tEaXN0YW5jZSx1bml0VG9Db2xvcjpUKHYpLGxpbmVzOlMsZGVzZWxlY3RlZExpbmVzOmgsbGFiZWxBbmdsZTpfLGxhYmVsU2lkZTp3LGxhYmVsRm9udDprLHRpY2tGb250Ok0scmFuZ2VGb250OkEsbGF5b3V0V2lkdGg6eCxsYXlvdXRIZWlnaHQ6dC5oZWlnaHQsZG9tYWluOm0sdHJhbnNsYXRlWDptLnhbMF0qeCx0cmFuc2xhdGVZOnQuaGVpZ2h0LW0ueVsxXSp0LmhlaWdodCxwYWQ6QyxjYW52YXNXaWR0aDpQKmcuY2FudmFzUGl4ZWxSYXRpbysyKlMuY2FudmFzT3ZlcmRyYWcsY2FudmFzSGVpZ2h0Ok8qZy5jYW52YXNQaXhlbFJhdGlvLHdpZHRoOlAsaGVpZ2h0Ok8sY2FudmFzUGl4ZWxSYXRpbzpnLmNhbnZhc1BpeGVsUmF0aW99fS5iaW5kKDAscikpLm1hcChBLmJpbmQoMCxJLHUpKTtrLmVhY2goZnVuY3Rpb24odCxlKXtyZXR1cm4gby5leHRlbmRGbGF0KHQsRFtlXSl9KTt2YXIgUj1rLnNlbGVjdEFsbCgiLmdsLWNhbnZhcyIpLmVhY2goZnVuY3Rpb24odCl7dC52aWV3TW9kZWw9RFswXSx0Lm1vZGVsPXQudmlld01vZGVsP3Qudmlld01vZGVsLm1vZGVsOm51bGx9KSxGPW51bGw7Ui5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQucGlja30pLnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsImF1dG8iKS5vbigibW91c2Vtb3ZlIixmdW5jdGlvbih0KXtpZihJLmxpbmVQaWNrQWN0aXZlKCkmJnQubGluZUxheWVyJiZ1JiZ1LmhvdmVyKXt2YXIgZT1uLmV2ZW50LHI9dGhpcy53aWR0aCxhPXRoaXMuaGVpZ2h0LGk9bi5tb3VzZSh0aGlzKSxvPWlbMF0scz1pWzFdO2lmKG88MHx8czwwfHxvPj1yfHxzPj1hKXJldHVybjt2YXIgbD10LmxpbmVMYXllci5yZWFkUGl4ZWwobyxhLTEtcyksYz0wIT09bFszXSxoPWM/bFsyXSsyNTYqKGxbMV0rMjU2KmxbMF0pOm51bGwsZj17eDpvLHk6cyxjbGllbnRYOmUuY2xpZW50WCxjbGllbnRZOmUuY2xpZW50WSxkYXRhSW5kZXg6dC5tb2RlbC5rZXksY3VydmVOdW1iZXI6aH07aCE9PUYmJihjP3UuaG92ZXIoZik6dS51bmhvdmVyJiZ1LnVuaG92ZXIoZiksRj1oKX19KSxSLnN0eWxlKCJvcGFjaXR5IixmdW5jdGlvbih0KXtyZXR1cm4gdC5waWNrPzA6MX0pLHcuc3R5bGUoImJhY2tncm91bmQiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDApIik7dmFyIEI9dy5zZWxlY3RBbGwoIi4iK2cuY24ucGFyY29vcmRzKS5kYXRhKEQsaCk7Qi5leGl0KCkucmVtb3ZlKCksQi5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoZy5jbi5wYXJjb29yZHMsITApLnN0eWxlKCJzaGFwZS1yZW5kZXJpbmciLCJjcmlzcEVkZ2VzIikuc3R5bGUoInBvaW50ZXItZXZlbnRzIiwibm9uZSIpLEIuYXR0cigidHJhbnNmb3JtIixmdW5jdGlvbih0KXtyZXR1cm4idHJhbnNsYXRlKCIrdC5tb2RlbC50cmFuc2xhdGVYKyIsIit0Lm1vZGVsLnRyYW5zbGF0ZVkrIikifSk7dmFyIE49Qi5zZWxlY3RBbGwoIi4iK2cuY24ucGFyY29vcmRzQ29udHJvbFZpZXcpLmRhdGEoZixoKTtOLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChnLmNuLnBhcmNvb3Jkc0NvbnRyb2xWaWV3LCEwKSxOLmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24odCl7cmV0dXJuInRyYW5zbGF0ZSgiK3QubW9kZWwucGFkLmwrIiwiK3QubW9kZWwucGFkLnQrIikifSk7dmFyIGo9Ti5zZWxlY3RBbGwoIi4iK2cuY24ueUF4aXMpLmRhdGEoZnVuY3Rpb24odCl7cmV0dXJuIHQuZGltZW5zaW9uc30saCk7ai5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoZy5jbi55QXhpcywhMCksTi5lYWNoKGZ1bmN0aW9uKHQpe0woaix0KX0pLFIuZWFjaChmdW5jdGlvbih0KXtpZih0LnZpZXdNb2RlbCl7IXQubGluZUxheWVyfHx1P3QubGluZUxheWVyPW0odGhpcyx0KTp0LmxpbmVMYXllci51cGRhdGUodCksKHQua2V5fHwwPT09dC5rZXkpJiYodC52aWV3TW9kZWxbdC5rZXldPXQubGluZUxheWVyKTt2YXIgZT0hdC5jb250ZXh0fHx1O3QubGluZUxheWVyLnJlbmRlcih0LnZpZXdNb2RlbC5wYW5lbHMsZSl9fSksai5hdHRyKCJ0cmFuc2Zvcm0iLGZ1bmN0aW9uKHQpe3JldHVybiJ0cmFuc2xhdGUoIit0LnhTY2FsZSh0LnhJbmRleCkrIiwgMCkifSksai5jYWxsKG4uYmVoYXZpb3IuZHJhZygpLm9yaWdpbihmdW5jdGlvbih0KXtyZXR1cm4gdH0pLm9uKCJkcmFnIixmdW5jdGlvbih0KXt2YXIgZT10LnBhcmVudDtJLmxpbmVQaWNrQWN0aXZlKCExKSx0Lng9TWF0aC5tYXgoLWcub3ZlcmRyYWcsTWF0aC5taW4odC5tb2RlbC53aWR0aCtnLm92ZXJkcmFnLG4uZXZlbnQueCkpLHQuY2FudmFzWD10LngqdC5tb2RlbC5jYW52YXNQaXhlbFJhdGlvLGouc29ydChmdW5jdGlvbih0LGUpe3JldHVybiB0LngtZS54fSkuZWFjaChmdW5jdGlvbihlLHIpe2UueEluZGV4PXIsZS54PXQ9PT1lP2UueDplLnhTY2FsZShlLnhJbmRleCksZS5jYW52YXNYPWUueCplLm1vZGVsLmNhbnZhc1BpeGVsUmF0aW99KSxMKGosZSksai5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIDAhPT1NYXRoLmFicyh0LnhJbmRleC1lLnhJbmRleCl9KS5hdHRyKCJ0cmFuc2Zvcm0iLGZ1bmN0aW9uKHQpe3JldHVybiJ0cmFuc2xhdGUoIit0LnhTY2FsZSh0LnhJbmRleCkrIiwgMCkifSksbi5zZWxlY3QodGhpcykuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrdC54KyIsIDApIiksai5lYWNoKGZ1bmN0aW9uKHIsbixhKXthPT09dC5wYXJlbnQua2V5JiYoZS5kaW1lbnNpb25zW25dPXIpfSksZS5jb250ZXh0TGF5ZXImJmUuY29udGV4dExheWVyLnJlbmRlcihlLnBhbmVscywhMSwhTShlKSksZS5mb2N1c0xheWVyLnJlbmRlciYmZS5mb2N1c0xheWVyLnJlbmRlcihlLnBhbmVscyl9KS5vbigiZHJhZ2VuZCIsZnVuY3Rpb24odCl7dmFyIGU9dC5wYXJlbnQ7dC54PXQueFNjYWxlKHQueEluZGV4KSx0LmNhbnZhc1g9dC54KnQubW9kZWwuY2FudmFzUGl4ZWxSYXRpbyxMKGosZSksbi5zZWxlY3QodGhpcykuYXR0cigidHJhbnNmb3JtIixmdW5jdGlvbih0KXtyZXR1cm4idHJhbnNsYXRlKCIrdC54KyIsIDApIn0pLGUuY29udGV4dExheWVyJiZlLmNvbnRleHRMYXllci5yZW5kZXIoZS5wYW5lbHMsITEsIU0oZSkpLGUuZm9jdXNMYXllciYmZS5mb2N1c0xheWVyLnJlbmRlcihlLnBhbmVscyksZS5waWNrTGF5ZXImJmUucGlja0xheWVyLnJlbmRlcihlLnBhbmVscywhMCksSS5saW5lUGlja0FjdGl2ZSghMCksdSYmdS5heGVzTW92ZWQmJnUuYXhlc01vdmVkKGUua2V5LGUuZGltZW5zaW9ucy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuY3Jvc3NmaWx0ZXJEaW1lbnNpb25JbmRleH0pKX0pKSxqLmV4aXQoKS5yZW1vdmUoKTt2YXIgVj1qLnNlbGVjdEFsbCgiLiIrZy5jbi5heGlzT3ZlcmxheXMpLmRhdGEoZixoKTtWLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChnLmNuLmF4aXNPdmVybGF5cywhMCksVi5zZWxlY3RBbGwoIi4iK2cuY24uYXhpcykucmVtb3ZlKCk7dmFyIFU9Vi5zZWxlY3RBbGwoIi4iK2cuY24uYXhpcykuZGF0YShmLGgpO1UuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKGcuY24uYXhpcywhMCksVS5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPXQubW9kZWwuaGVpZ2h0L3QubW9kZWwudGlja0Rpc3RhbmNlLHI9dC5kb21haW5TY2FsZSxhPXIuZG9tYWluKCk7bi5zZWxlY3QodGhpcykuY2FsbChuLnN2Zy5heGlzKCkub3JpZW50KCJsZWZ0IikudGlja1NpemUoNCkub3V0ZXJUaWNrU2l6ZSgyKS50aWNrcyhlLHQudGlja0Zvcm1hdCkudGlja1ZhbHVlcyh0Lm9yZGluYWw/YTpudWxsKS50aWNrRm9ybWF0KGZ1bmN0aW9uKGUpe3JldHVybiBkLmlzT3JkaW5hbCh0KT9lOkModC5tb2RlbC5kaW1lbnNpb25zW3QudmlzaWJsZUluZGV4XSxlKX0pLnNjYWxlKHIpKSxsLmZvbnQoVS5zZWxlY3RBbGwoInRleHQiKSx0Lm1vZGVsLnRpY2tGb250KX0pLFUuc2VsZWN0QWxsKCIuZG9tYWluLCAudGljaz5saW5lIikuYXR0cigiZmlsbCIsIm5vbmUiKS5hdHRyKCJzdHJva2UiLCJibGFjayIpLmF0dHIoInN0cm9rZS1vcGFjaXR5IiwuMjUpLmF0dHIoInN0cm9rZS13aWR0aCIsIjFweCIpLFUuc2VsZWN0QWxsKCJ0ZXh0Iikuc3R5bGUoInRleHQtc2hhZG93IiwiMXB4IDFweCAxcHggI2ZmZiwgLTFweCAtMXB4IDFweCAjZmZmLCAxcHggLTFweCAxcHggI2ZmZiwgLTFweCAxcHggMXB4ICNmZmYiKS5zdHlsZSgiY3Vyc29yIiwiZGVmYXVsdCIpLnN0eWxlKCJ1c2VyLXNlbGVjdCIsIm5vbmUiKTt2YXIgcT1WLnNlbGVjdEFsbCgiLiIrZy5jbi5heGlzSGVhZGluZykuZGF0YShmLGgpO3EuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKGcuY24uYXhpc0hlYWRpbmcsITApO3ZhciBIPXEuc2VsZWN0QWxsKCIuIitnLmNuLmF4aXNUaXRsZSkuZGF0YShmLGgpO0guZW50ZXIoKS5hcHBlbmQoInRleHQiKS5jbGFzc2VkKGcuY24uYXhpc1RpdGxlLCEwKS5hdHRyKCJ0ZXh0LWFuY2hvciIsIm1pZGRsZSIpLnN0eWxlKCJjdXJzb3IiLCJldy1yZXNpemUiKS5zdHlsZSgidXNlci1zZWxlY3QiLCJub25lIikuc3R5bGUoInBvaW50ZXItZXZlbnRzIiwiYXV0byIpLEgudGV4dChmdW5jdGlvbih0KXtyZXR1cm4gdC5sYWJlbH0pLmVhY2goZnVuY3Rpb24oZSl7dmFyIHI9bi5zZWxlY3QodGhpcyk7bC5mb250KHIsZS5tb2RlbC5sYWJlbEZvbnQpLHMuY29udmVydFRvVHNwYW5zKHIsdCl9KS5hdHRyKCJ0cmFuc2Zvcm0iLGZ1bmN0aW9uKHQpe3ZhciBlPUUodC5tb2RlbC5sYWJlbEFuZ2xlLHQubW9kZWwubGFiZWxTaWRlKSxyPWcuYXhpc1RpdGxlT2Zmc2V0O3JldHVybihlLmRpcj4wPyIiOiJ0cmFuc2xhdGUoMCwiKygyKnIrdC5tb2RlbC5oZWlnaHQpKyIpIikrInJvdGF0ZSgiK2UuZGVncmVlcysiKXRyYW5zbGF0ZSgiKy1yKmUuZHgrIiwiKy1yKmUuZHkrIikifSkuYXR0cigidGV4dC1hbmNob3IiLGZ1bmN0aW9uKHQpe3ZhciBlPUUodC5tb2RlbC5sYWJlbEFuZ2xlLHQubW9kZWwubGFiZWxTaWRlKTtyZXR1cm4gMipNYXRoLmFicyhlLmR4KT5NYXRoLmFicyhlLmR5KT9lLmRpciplLmR4PDA/InN0YXJ0IjoiZW5kIjoibWlkZGxlIn0pO3ZhciBHPVYuc2VsZWN0QWxsKCIuIitnLmNuLmF4aXNFeHRlbnQpLmRhdGEoZixoKTtHLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChnLmNuLmF4aXNFeHRlbnQsITApO3ZhciBZPUcuc2VsZWN0QWxsKCIuIitnLmNuLmF4aXNFeHRlbnRUb3ApLmRhdGEoZixoKTtZLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChnLmNuLmF4aXNFeHRlbnRUb3AsITApLFkuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKDAsIistZy5heGlzRXh0ZW50T2Zmc2V0KyIpIik7dmFyIFc9WS5zZWxlY3RBbGwoIi4iK2cuY24uYXhpc0V4dGVudFRvcFRleHQpLmRhdGEoZixoKTtXLmVudGVyKCkuYXBwZW5kKCJ0ZXh0IikuY2xhc3NlZChnLmNuLmF4aXNFeHRlbnRUb3BUZXh0LCEwKS5jYWxsKFMpLFcudGV4dChmdW5jdGlvbih0KXtyZXR1cm4gUCh0LCEwKX0pLmVhY2goZnVuY3Rpb24odCl7bC5mb250KG4uc2VsZWN0KHRoaXMpLHQubW9kZWwucmFuZ2VGb250KX0pO3ZhciBYPUcuc2VsZWN0QWxsKCIuIitnLmNuLmF4aXNFeHRlbnRCb3R0b20pLmRhdGEoZixoKTtYLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChnLmNuLmF4aXNFeHRlbnRCb3R0b20sITApLFguYXR0cigidHJhbnNmb3JtIixmdW5jdGlvbih0KXtyZXR1cm4idHJhbnNsYXRlKDAsIisodC5tb2RlbC5oZWlnaHQrZy5heGlzRXh0ZW50T2Zmc2V0KSsiKSJ9KTt2YXIgWj1YLnNlbGVjdEFsbCgiLiIrZy5jbi5heGlzRXh0ZW50Qm90dG9tVGV4dCkuZGF0YShmLGgpO1ouZW50ZXIoKS5hcHBlbmQoInRleHQiKS5jbGFzc2VkKGcuY24uYXhpc0V4dGVudEJvdHRvbVRleHQsITApLmF0dHIoImR5IiwiMC43NWVtIikuY2FsbChTKSxaLnRleHQoZnVuY3Rpb24odCl7cmV0dXJuIFAodCwhMSl9KS5lYWNoKGZ1bmN0aW9uKHQpe2wuZm9udChuLnNlbGVjdCh0aGlzKSx0Lm1vZGVsLnJhbmdlRm9udCl9KSx2LmVuc3VyZUF4aXNCcnVzaChWKX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIjo2MDQsIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjEzLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vbGliL2d1cCI6NzE1LCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjc0MSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjc2NSwiLi9heGlzYnJ1c2giOjEwODMsIi4vY29uc3RhbnRzIjoxMDg2LCIuL2hlbHBlcnMiOjEwODgsIi4vbGluZXMiOjEwOTAsImNvbG9yLXJnYmEiOjEyNCxkMzoxNjV9XSwxMDkzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vcGFyY29vcmRzIiksYT10KCIuLi8uLi9saWIvcHJlcGFyZV9yZWdsIiksaT10KCIuL2hlbHBlcnMiKS5pc1Zpc2libGU7ZnVuY3Rpb24gbyh0LGUscil7dmFyIG49ZS5pbmRleE9mKHIpLGE9dC5pbmRleE9mKG4pO3JldHVybi0xPT09YSYmKGErPWUubGVuZ3RoKSxhfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQuX2Z1bGxMYXlvdXQ7aWYoYSh0KSl7dmFyIHM9e30sbD17fSxjPXt9LHU9e30saD1yLl9zaXplO2UuZm9yRWFjaChmdW5jdGlvbihlLHIpe3ZhciBuPWVbMF0udHJhY2U7Y1tyXT1uLmluZGV4O3ZhciBhPXVbcl09bi5fZnVsbElucHV0LmluZGV4O3Nbcl09dC5kYXRhW2FdLmRpbWVuc2lvbnMsbFtyXT10LmRhdGFbYV0uZGltZW5zaW9ucy5zbGljZSgpfSk7bih0LGUse3dpZHRoOmgudyxoZWlnaHQ6aC5oLG1hcmdpbjp7dDpoLnQscjpoLnIsYjpoLmIsbDpoLmx9fSx7ZmlsdGVyQ2hhbmdlZDpmdW5jdGlvbihlLG4sYSl7dmFyIGk9bFtlXVtuXSxvPWEubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnNsaWNlKCl9KSxzPSJkaW1lbnNpb25zWyIrbisiXS5jb25zdHJhaW50cmFuZ2UiLGg9ci5fdHJhY2VQcmVHVUlbdC5fZnVsbERhdGFbY1tlXV0uX2Z1bGxJbnB1dC51aWRdO2lmKHZvaWQgMD09PWhbc10pe3ZhciBmPWkuY29uc3RyYWludHJhbmdlO2hbc109Znx8bnVsbH12YXIgcD10Ll9mdWxsRGF0YVtjW2VdXS5kaW1lbnNpb25zW25dO28ubGVuZ3RoPygxPT09by5sZW5ndGgmJihvPW9bMF0pLGkuY29uc3RyYWludHJhbmdlPW8scC5jb25zdHJhaW50cmFuZ2U9by5zbGljZSgpLG89W29dKTooZGVsZXRlIGkuY29uc3RyYWludHJhbmdlLGRlbGV0ZSBwLmNvbnN0cmFpbnRyYW5nZSxvPW51bGwpO3ZhciBkPXt9O2Rbc109byx0LmVtaXQoInBsb3RseV9yZXN0eWxlIixbZCxbdVtlXV1dKX0saG92ZXI6ZnVuY3Rpb24oZSl7dC5lbWl0KCJwbG90bHlfaG92ZXIiLGUpfSx1bmhvdmVyOmZ1bmN0aW9uKGUpe3QuZW1pdCgicGxvdGx5X3VuaG92ZXIiLGUpfSxheGVzTW92ZWQ6ZnVuY3Rpb24oZSxyKXt2YXIgbj1mdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbihyLG4pe3JldHVybiBvKHQsZSxyKS1vKHQsZSxuKX19KHIsbFtlXS5maWx0ZXIoaSkpO3NbZV0uc29ydChuKSxsW2VdLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4haSh0KX0pLnNvcnQoZnVuY3Rpb24odCl7cmV0dXJuIGxbZV0uaW5kZXhPZih0KX0pLmZvckVhY2goZnVuY3Rpb24odCl7c1tlXS5zcGxpY2Uoc1tlXS5pbmRleE9mKHQpLDEpLHNbZV0uc3BsaWNlKGxbZV0uaW5kZXhPZih0KSwwLHQpfSksdC5lbWl0KCJwbG90bHlfcmVzdHlsZSIsW3tkaW1lbnNpb25zOltzW2VdXX0sW3VbZV1dXSl9fSl9fX0seyIuLi8uLi9saWIvcHJlcGFyZV9yZWdsIjo3MzAsIi4vaGVscGVycyI6MTA4OCwiLi9wYXJjb29yZHMiOjEwOTJ9XSwxMDk0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL3Bsb3RzL2RvbWFpbiIpLmF0dHJpYnV0ZXMsaT10KCIuLi8uLi9wbG90cy9mb250X2F0dHJpYnV0ZXMiKSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyIpLHM9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxsPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS50ZXh0dGVtcGxhdGVBdHRycyxjPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LHU9aSh7ZWRpdFR5cGU6InBsb3QiLGFycmF5T2s6ITAsY29sb3JFZGl0VHlwZToicGxvdCJ9KTtlLmV4cG9ydHM9e2xhYmVsczp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxsYWJlbDA6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDowLGVkaXRUeXBlOiJjYWxjIn0sZGxhYmVsOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MSxlZGl0VHlwZToiY2FsYyJ9LHZhbHVlczp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxtYXJrZXI6e2NvbG9yczp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxsaW5lOntjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6by5kZWZhdWx0TGluZSxhcnJheU9rOiEwLGVkaXRUeXBlOiJzdHlsZSJ9LHdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MCxhcnJheU9rOiEwLGVkaXRUeXBlOiJzdHlsZSJ9LGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMifSx0ZXh0Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToicGxvdCJ9LGhvdmVydGV4dDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGFycmF5T2s6ITAsZWRpdFR5cGU6InN0eWxlIn0sc2NhbGVncm91cDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGVkaXRUeXBlOiJjYWxjIn0sdGV4dGluZm86e3ZhbFR5cGU6ImZsYWdsaXN0IixmbGFnczpbImxhYmVsIiwidGV4dCIsInZhbHVlIiwicGVyY2VudCJdLGV4dHJhczpbIm5vbmUiXSxlZGl0VHlwZToiY2FsYyJ9LGhvdmVyaW5mbzpjKHt9LG4uaG92ZXJpbmZvLHtmbGFnczpbImxhYmVsIiwidGV4dCIsInZhbHVlIiwicGVyY2VudCIsIm5hbWUiXX0pLGhvdmVydGVtcGxhdGU6cyh7fSx7a2V5czpbImxhYmVsIiwiY29sb3IiLCJ2YWx1ZSIsInBlcmNlbnQiLCJ0ZXh0Il19KSx0ZXh0dGVtcGxhdGU6bCh7ZWRpdFR5cGU6InBsb3QifSx7a2V5czpbImxhYmVsIiwiY29sb3IiLCJ2YWx1ZSIsInBlcmNlbnQiLCJ0ZXh0Il19KSx0ZXh0cG9zaXRpb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImluc2lkZSIsIm91dHNpZGUiLCJhdXRvIiwibm9uZSJdLGRmbHQ6ImF1dG8iLGFycmF5T2s6ITAsZWRpdFR5cGU6InBsb3QifSx0ZXh0Zm9udDpjKHt9LHUse30pLGluc2lkZXRleHRvcmllbnRhdGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiaG9yaXpvbnRhbCIsInJhZGlhbCIsInRhbmdlbnRpYWwiLCJhdXRvIl0sZGZsdDoiYXV0byIsZWRpdFR5cGU6InBsb3QifSxpbnNpZGV0ZXh0Zm9udDpjKHt9LHUse30pLG91dHNpZGV0ZXh0Zm9udDpjKHt9LHUse30pLGF1dG9tYXJnaW46e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITEsZWRpdFR5cGU6InBsb3QifSx0aXRsZTp7dGV4dDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGVkaXRUeXBlOiJwbG90In0sZm9udDpjKHt9LHUse30pLHBvc2l0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0b3AgbGVmdCIsInRvcCBjZW50ZXIiLCJ0b3AgcmlnaHQiLCJtaWRkbGUgY2VudGVyIiwiYm90dG9tIGxlZnQiLCJib3R0b20gY2VudGVyIiwiYm90dG9tIHJpZ2h0Il0sZWRpdFR5cGU6InBsb3QifSxlZGl0VHlwZToicGxvdCJ9LGRvbWFpbjphKHtuYW1lOiJwaWUiLHRyYWNlOiEwLGVkaXRUeXBlOiJjYWxjIn0pLGhvbGU6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDowLGVkaXRUeXBlOiJjYWxjIn0sc29ydDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToiY2FsYyJ9LGRpcmVjdGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiY2xvY2t3aXNlIiwiY291bnRlcmNsb2Nrd2lzZSJdLGRmbHQ6ImNvdW50ZXJjbG9ja3dpc2UiLGVkaXRUeXBlOiJjYWxjIn0scm90YXRpb246e3ZhbFR5cGU6Im51bWJlciIsbWluOi0zNjAsbWF4OjM2MCxkZmx0OjAsZWRpdFR5cGU6ImNhbGMifSxwdWxsOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MCxhcnJheU9rOiEwLGVkaXRUeXBlOiJjYWxjIn0sX2RlcHJlY2F0ZWQ6e3RpdGxlOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6ImNhbGMifSx0aXRsZWZvbnQ6Yyh7fSx1LHt9KSx0aXRsZXBvc2l0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0b3AgbGVmdCIsInRvcCBjZW50ZXIiLCJ0b3AgcmlnaHQiLCJtaWRkbGUgY2VudGVyIiwiYm90dG9tIGxlZnQiLCJib3R0b20gY2VudGVyIiwiYm90dG9tIHJpZ2h0Il0sZWRpdFR5cGU6ImNhbGMifX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyI6NTkxLCIuLi8uLi9saWIvZXh0ZW5kIjo3MDgsIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiOjc2MiwiLi4vLi4vcGxvdHMvZG9tYWluIjo3OTAsIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyI6NzkxLCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo4NDF9XSwxMDk1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIik7ci5uYW1lPSJwaWUiLHIucGxvdD1mdW5jdGlvbih0LGUsYSxpKXtuLnBsb3RCYXNlUGxvdChyLm5hbWUsdCxlLGEsaSl9LHIuY2xlYW49ZnVuY3Rpb24odCxlLGEsaSl7bi5jbGVhbkJhc2VQbG90KHIubmFtZSx0LGUsYSxpKX19LHsiLi4vLi4vcGxvdHMvcGxvdHMiOjgyNn1dLDEwOTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxhPXQoInRpbnljb2xvcjIiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxvPXt9O2Z1bmN0aW9uIHModCl7cmV0dXJuIGZ1bmN0aW9uKGUscil7cmV0dXJuISFlJiYoISEoZT1hKGUpKS5pc1ZhbGlkKCkmJihlPWkuYWRkT3BhY2l0eShlLGUuZ2V0QWxwaGEoKSksdFtyXXx8KHRbcl09ZSksZSkpfX1mdW5jdGlvbiBsKHQsZSl7dmFyIHIsbj1KU09OLnN0cmluZ2lmeSh0KSxpPWVbbl07aWYoIWkpe2ZvcihpPXQuc2xpY2UoKSxyPTA7cjx0Lmxlbmd0aDtyKyspaS5wdXNoKGEodFtyXSkubGlnaHRlbigyMCkudG9IZXhTdHJpbmcoKSk7Zm9yKHI9MDtyPHQubGVuZ3RoO3IrKylpLnB1c2goYSh0W3JdKS5kYXJrZW4oMjApLnRvSGV4U3RyaW5nKCkpO2Vbbl09aX1yZXR1cm4gaX1lLmV4cG9ydHM9e2NhbGM6ZnVuY3Rpb24odCxlKXt2YXIgcixhLGk9W10sbz10Ll9mdWxsTGF5b3V0LGw9by5oaWRkZW5sYWJlbHN8fFtdLGM9ZS5sYWJlbHMsdT1lLm1hcmtlci5jb2xvcnN8fFtdLGg9ZS52YWx1ZXMsZj1lLl9sZW5ndGgscD1lLl9oYXNWYWx1ZXMmJmY7aWYoZS5kbGFiZWwpZm9yKGM9bmV3IEFycmF5KGYpLHI9MDtyPGY7cisrKWNbcl09U3RyaW5nKGUubGFiZWwwK3IqZS5kbGFiZWwpO3ZhciBkPXt9LGc9cyhvWyJfIitlLnR5cGUrImNvbG9ybWFwIl0pLHY9MCxtPSExO2ZvcihyPTA7cjxmO3IrKyl7dmFyIHkseCxiO2lmKHApe2lmKHk9aFtyXSwhbih5KSljb250aW51ZTtpZigoeT0reSk8MCljb250aW51ZX1lbHNlIHk9MTt2b2lkIDAhPT0oeD1jW3JdKSYmIiIhPT14fHwoeD1yKTt2YXIgXz1kW3g9U3RyaW5nKHgpXTt2b2lkIDA9PT1fPyhkW3hdPWkubGVuZ3RoLChiPS0xIT09bC5pbmRleE9mKHgpKXx8KHYrPXkpLGkucHVzaCh7djp5LGxhYmVsOngsY29sb3I6Zyh1W3JdLHgpLGk6cixwdHM6W3JdLGhpZGRlbjpifSkpOihtPSEwLChhPWlbX10pLnYrPXksYS5wdHMucHVzaChyKSxhLmhpZGRlbnx8KHYrPXkpLCExPT09YS5jb2xvciYmdVtyXSYmKGEuY29sb3I9Zyh1W3JdLHgpKSl9cmV0dXJuKCJmdW5uZWxhcmVhIj09PWUudHlwZT9tOmUuc29ydCkmJmkuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiBlLnYtdC52fSksaVswXSYmKGlbMF0udlRvdGFsPXYpLGl9LGNyb3NzVHJhY2VDYWxjOmZ1bmN0aW9uKHQsZSl7dmFyIHI9KGV8fHt9KS50eXBlO3J8fChyPSJwaWUiKTt2YXIgbj10Ll9mdWxsTGF5b3V0LGE9dC5jYWxjZGF0YSxpPW5bcisiY29sb3J3YXkiXSxzPW5bIl8iK3IrImNvbG9ybWFwIl07blsiZXh0ZW5kIityKyJjb2xvcnMiXSYmKGk9bChpLG8pKTtmb3IodmFyIGM9MCx1PTA7dTxhLmxlbmd0aDt1Kyspe3ZhciBoPWFbdV07aWYoaFswXS50cmFjZS50eXBlPT09cilmb3IodmFyIGY9MDtmPGgubGVuZ3RoO2YrKyl7dmFyIHA9aFtmXTshMT09PXAuY29sb3ImJihzW3AubGFiZWxdP3AuY29sb3I9c1twLmxhYmVsXTooc1twLmxhYmVsXT1wLmNvbG9yPWlbYyVpLmxlbmd0aF0sYysrKSl9fX0sbWFrZVB1bGxDb2xvckZuOnMsZ2VuZXJhdGVFeHRlbmRlZENvbG9yczpsfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo1OTIsImZhc3QtaXNudW1lcmljIjoyMjgsdGlueWNvbG9yMjo1MzZ9XSwxMDk3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksYT10KCIuLi8uLi9saWIiKSxpPXQoIi4vYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vcGxvdHMvZG9tYWluIikuZGVmYXVsdHMscz10KCIuLi9iYXIvZGVmYXVsdHMiKS5oYW5kbGVUZXh0O2Z1bmN0aW9uIGwodCxlKXt2YXIgcj1BcnJheS5pc0FycmF5KHQpLGk9YS5pc0FycmF5T3JUeXBlZEFycmF5KGUpLG89TWF0aC5taW4ocj90Lmxlbmd0aDoxLzAsaT9lLmxlbmd0aDoxLzApO2lmKGlzRmluaXRlKG8pfHwobz0wKSxvJiZpKXtmb3IodmFyIHMsbD0wO2w8bztsKyspe3ZhciBjPWVbbF07aWYobihjKSYmYz4wKXtzPSEwO2JyZWFrfX1zfHwobz0wKX1yZXR1cm57aGFzTGFiZWxzOnIsaGFzVmFsdWVzOmksbGVuOm99fWUuZXhwb3J0cz17aGFuZGxlTGFiZWxzQW5kVmFsdWVzOmwsc3VwcGx5RGVmYXVsdHM6ZnVuY3Rpb24odCxlLHIsbil7ZnVuY3Rpb24gYyhyLG4pe3JldHVybiBhLmNvZXJjZSh0LGUsaSxyLG4pfXZhciB1PWwoYygibGFiZWxzIiksYygidmFsdWVzIikpLGg9dS5sZW47aWYoZS5faGFzTGFiZWxzPXUuaGFzTGFiZWxzLGUuX2hhc1ZhbHVlcz11Lmhhc1ZhbHVlcywhZS5faGFzTGFiZWxzJiZlLl9oYXNWYWx1ZXMmJihjKCJsYWJlbDAiKSxjKCJkbGFiZWwiKSksaCl7ZS5fbGVuZ3RoPWgsYygibWFya2VyLmxpbmUud2lkdGgiKSYmYygibWFya2VyLmxpbmUuY29sb3IiKSxjKCJtYXJrZXIuY29sb3JzIiksYygic2NhbGVncm91cCIpO3ZhciBmLHA9YygidGV4dCIpLGQ9YygidGV4dHRlbXBsYXRlIik7aWYoZHx8KGY9YygidGV4dGluZm8iLEFycmF5LmlzQXJyYXkocCk/InRleHQrcGVyY2VudCI6InBlcmNlbnQiKSksYygiaG92ZXJ0ZXh0IiksYygiaG92ZXJ0ZW1wbGF0ZSIpLGR8fGYmJiJub25lIiE9PWYpe3ZhciBnPWMoInRleHRwb3NpdGlvbiIpO3ModCxlLG4sYyxnLHttb2R1bGVIYXNTZWxlY3RlZDohMSxtb2R1bGVIYXNVbnNlbGVjdGVkOiExLG1vZHVsZUhhc0NvbnN0cmFpbjohMSxtb2R1bGVIYXNDbGlwb25heGlzOiExLG1vZHVsZUhhc1RleHRhbmdsZTohMSxtb2R1bGVIYXNJbnNpZGVhbmNob3I6ITF9KSwoQXJyYXkuaXNBcnJheShnKXx8ImF1dG8iPT09Z3x8Im91dHNpZGUiPT09ZykmJmMoImF1dG9tYXJnaW4iKSwoImluc2lkZSI9PT1nfHwiYXV0byI9PT1nfHxBcnJheS5pc0FycmF5KGcpKSYmYygiaW5zaWRldGV4dG9yaWVudGF0aW9uIil9byhlLG4sYyk7dmFyIHY9YygiaG9sZSIpO2lmKGMoInRpdGxlLnRleHQiKSl7dmFyIG09YygidGl0bGUucG9zaXRpb24iLHY/Im1pZGRsZSBjZW50ZXIiOiJ0b3AgY2VudGVyIik7dnx8Im1pZGRsZSBjZW50ZXIiIT09bXx8KGUudGl0bGUucG9zaXRpb249InRvcCBjZW50ZXIiKSxhLmNvZXJjZUZvbnQoYywidGl0bGUuZm9udCIsbi5mb250KX1jKCJzb3J0IiksYygiZGlyZWN0aW9uIiksYygicm90YXRpb24iKSxjKCJwdWxsIil9ZWxzZSBlLnZpc2libGU9ITF9fX0seyIuLi8uLi9saWIiOjcxNywiLi4vLi4vcGxvdHMvZG9tYWluIjo3OTAsIi4uL2Jhci9kZWZhdWx0cyI6ODYwLCIuL2F0dHJpYnV0ZXMiOjEwOTQsImZhc3QtaXNudW1lcmljIjoyMjh9XSwxMDk4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvZngvaGVscGVycyIpLmFwcGVuZEFycmF5TXVsdGlQb2ludFZhbHVlcztlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj17Y3VydmVOdW1iZXI6ZS5pbmRleCxwb2ludE51bWJlcnM6dC5wdHMsZGF0YTplLl9pbnB1dCxmdWxsRGF0YTplLGxhYmVsOnQubGFiZWwsY29sb3I6dC5jb2xvcix2YWx1ZTp0LnYscGVyY2VudDp0LnBlcmNlbnQsdGV4dDp0LnRleHQsdjp0LnZ9O3JldHVybiAxPT09dC5wdHMubGVuZ3RoJiYoci5wb2ludE51bWJlcj1yLmk9dC5wdHNbMF0pLG4ocixlLHQucHRzKSwiZnVubmVsYXJlYSI9PT1lLnR5cGUmJihkZWxldGUgci52LGRlbGV0ZSByLmkpLHJ9fSx7Ii4uLy4uL2NvbXBvbmVudHMvZngvaGVscGVycyI6NjI3fV0sMTA5OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKTtyLmZvcm1hdFBpZVBlcmNlbnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj0oMTAwKnQpLnRvUHJlY2lzaW9uKDMpO3JldHVybi0xIT09ci5sYXN0SW5kZXhPZigiLiIpJiYocj1yLnJlcGxhY2UoL1suXT8wKyQvLCIiKSksbi5udW1TZXBhcmF0ZShyLGUpKyIlIn0sci5mb3JtYXRQaWVWYWx1ZT1mdW5jdGlvbih0LGUpe3ZhciByPXQudG9QcmVjaXNpb24oMTApO3JldHVybi0xIT09ci5sYXN0SW5kZXhPZigiLiIpJiYocj1yLnJlcGxhY2UoL1suXT8wKyQvLCIiKSksbi5udW1TZXBhcmF0ZShyLGUpfSxyLmdldEZpcnN0RmlsbGVkPWZ1bmN0aW9uKHQsZSl7aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49dFtlW3JdXTtpZihufHwwPT09bnx8IiI9PT1uKXJldHVybiBufX0sci5jYXN0T3B0aW9uPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/ci5nZXRGaXJzdEZpbGxlZCh0LGUpOnR8fHZvaWQgMH19LHsiLi4vLi4vbGliIjo3MTd9XSwxMTAwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIikuc3VwcGx5RGVmYXVsdHMsc3VwcGx5TGF5b3V0RGVmYXVsdHM6dCgiLi9sYXlvdXRfZGVmYXVsdHMiKSxsYXlvdXRBdHRyaWJ1dGVzOnQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxjYWxjOnQoIi4vY2FsYyIpLmNhbGMsY3Jvc3NUcmFjZUNhbGM6dCgiLi9jYWxjIikuY3Jvc3NUcmFjZUNhbGMscGxvdDp0KCIuL3Bsb3QiKS5wbG90LHN0eWxlOnQoIi4vc3R5bGUiKSxzdHlsZU9uZTp0KCIuL3N0eWxlX29uZSIpLG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJwaWUiLGJhc2VQbG90TW9kdWxlOnQoIi4vYmFzZV9wbG90IiksY2F0ZWdvcmllczpbInBpZS1saWtlIiwicGllIiwic2hvd0xlZ2VuZCJdLG1ldGE6e319fSx7Ii4vYXR0cmlidXRlcyI6MTA5NCwiLi9iYXNlX3Bsb3QiOjEwOTUsIi4vY2FsYyI6MTA5NiwiLi9kZWZhdWx0cyI6MTA5NywiLi9sYXlvdXRfYXR0cmlidXRlcyI6MTEwMSwiLi9sYXlvdXRfZGVmYXVsdHMiOjExMDIsIi4vcGxvdCI6MTEwMywiLi9zdHlsZSI6MTEwNCwiLi9zdHlsZV9vbmUiOjExMDV9XSwxMTAxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17aGlkZGVubGFiZWxzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHBpZWNvbG9yd2F5Ont2YWxUeXBlOiJjb2xvcmxpc3QiLGVkaXRUeXBlOiJjYWxjIn0sZXh0ZW5kcGllY29sb3JzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJjYWxjIn19fSx7fV0sMTEwMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxhLHIsaSl9cigiaGlkZGVubGFiZWxzIikscigicGllY29sb3J3YXkiLGUuY29sb3J3YXkpLHIoImV4dGVuZHBpZWNvbG9ycyIpfX0seyIuLi8uLi9saWIiOjcxNywiLi9sYXlvdXRfYXR0cmlidXRlcyI6MTEwMX1dLDExMDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxhPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2Z4Iiksbz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIikscz10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxsPXQoIi4uLy4uL2xpYiIpLGM9dCgiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIiksdT10KCIuLi9iYXIvdW5pZm9ybV90ZXh0IiksaD11LnJlY29yZE1pblRleHRTaXplLGY9dS5jbGVhck1pblRleHRTaXplLHA9dCgiLi9oZWxwZXJzIiksZD10KCIuL2V2ZW50X2RhdGEiKSxnPXQoIi4uLy4uL2xpYiIpLmlzVmFsaWRUZXh0VmFsdWU7ZnVuY3Rpb24gdih0LGUscil7dmFyIGE9clswXSxvPWEudHJhY2Uscz1hLmN4LGM9YS5jeTsiX2hhc0hvdmVyTGFiZWwiaW4gb3x8KG8uX2hhc0hvdmVyTGFiZWw9ITEpLCJfaGFzSG92ZXJFdmVudCJpbiBvfHwoby5faGFzSG92ZXJFdmVudD0hMSksdC5vbigibW91c2VvdmVyIixmdW5jdGlvbih0KXt2YXIgcj1lLl9mdWxsTGF5b3V0LHU9ZS5fZnVsbERhdGFbby5pbmRleF07aWYoIWUuX2RyYWdnaW5nJiYhMSE9PXIuaG92ZXJtb2RlKXt2YXIgaD11LmhvdmVyaW5mbztpZihBcnJheS5pc0FycmF5KGgpJiYoaD1pLmNhc3RIb3ZlcmluZm8oe2hvdmVyaW5mbzpbcC5jYXN0T3B0aW9uKGgsdC5wdHMpXSxfbW9kdWxlOm8uX21vZHVsZX0sciwwKSksImFsbCI9PT1oJiYoaD0ibGFiZWwrdGV4dCt2YWx1ZStwZXJjZW50K25hbWUiKSx1LmhvdmVydGVtcGxhdGV8fCJub25lIiE9PWgmJiJza2lwIiE9PWgmJmgpe3ZhciBmPXQuckluc2NyaWJlZHx8MCxnPXMrdC5weG1pZFswXSooMS1mKSx2PWMrdC5weG1pZFsxXSooMS1mKSxtPXIuc2VwYXJhdG9ycyx5PVtdO2lmKGgmJi0xIT09aC5pbmRleE9mKCJsYWJlbCIpJiZ5LnB1c2godC5sYWJlbCksdC50ZXh0PXAuY2FzdE9wdGlvbih1LmhvdmVydGV4dHx8dS50ZXh0LHQucHRzKSxoJiYtMSE9PWguaW5kZXhPZigidGV4dCIpKXt2YXIgeD10LnRleHQ7bC5pc1ZhbGlkVGV4dFZhbHVlKHgpJiZ5LnB1c2goeCl9dC52YWx1ZT10LnYsdC52YWx1ZUxhYmVsPXAuZm9ybWF0UGllVmFsdWUodC52LG0pLGgmJi0xIT09aC5pbmRleE9mKCJ2YWx1ZSIpJiZ5LnB1c2godC52YWx1ZUxhYmVsKSx0LnBlcmNlbnQ9dC52L2EudlRvdGFsLHQucGVyY2VudExhYmVsPXAuZm9ybWF0UGllUGVyY2VudCh0LnBlcmNlbnQsbSksaCYmLTEhPT1oLmluZGV4T2YoInBlcmNlbnQiKSYmeS5wdXNoKHQucGVyY2VudExhYmVsKTt2YXIgYj11LmhvdmVybGFiZWwsXz1iLmZvbnQ7aS5sb25lSG92ZXIoe3RyYWNlOm8seDA6Zy1mKmEucix4MTpnK2YqYS5yLHk6dix0ZXh0Onkuam9pbigiPGJyPiIpLG5hbWU6dS5ob3ZlcnRlbXBsYXRlfHwtMSE9PWguaW5kZXhPZigibmFtZSIpP3UubmFtZTp2b2lkIDAsaWRlYWxBbGlnbjp0LnB4bWlkWzBdPDA/ImxlZnQiOiJyaWdodCIsY29sb3I6cC5jYXN0T3B0aW9uKGIuYmdjb2xvcix0LnB0cyl8fHQuY29sb3IsYm9yZGVyQ29sb3I6cC5jYXN0T3B0aW9uKGIuYm9yZGVyY29sb3IsdC5wdHMpLGZvbnRGYW1pbHk6cC5jYXN0T3B0aW9uKF8uZmFtaWx5LHQucHRzKSxmb250U2l6ZTpwLmNhc3RPcHRpb24oXy5zaXplLHQucHRzKSxmb250Q29sb3I6cC5jYXN0T3B0aW9uKF8uY29sb3IsdC5wdHMpLG5hbWVMZW5ndGg6cC5jYXN0T3B0aW9uKGIubmFtZWxlbmd0aCx0LnB0cyksdGV4dEFsaWduOnAuY2FzdE9wdGlvbihiLmFsaWduLHQucHRzKSxob3ZlcnRlbXBsYXRlOnAuY2FzdE9wdGlvbih1LmhvdmVydGVtcGxhdGUsdC5wdHMpLGhvdmVydGVtcGxhdGVMYWJlbHM6dCxldmVudERhdGE6W2QodCx1KV19LHtjb250YWluZXI6ci5faG92ZXJsYXllci5ub2RlKCksb3V0ZXJDb250YWluZXI6ci5fcGFwZXIubm9kZSgpLGdkOmV9KSxvLl9oYXNIb3ZlckxhYmVsPSEwfW8uX2hhc0hvdmVyRXZlbnQ9ITAsZS5lbWl0KCJwbG90bHlfaG92ZXIiLHtwb2ludHM6W2QodCx1KV0sZXZlbnQ6bi5ldmVudH0pfX0pLHQub24oIm1vdXNlb3V0IixmdW5jdGlvbih0KXt2YXIgcj1lLl9mdWxsTGF5b3V0LGE9ZS5fZnVsbERhdGFbby5pbmRleF0scz1uLnNlbGVjdCh0aGlzKS5kYXR1bSgpO28uX2hhc0hvdmVyRXZlbnQmJih0Lm9yaWdpbmFsRXZlbnQ9bi5ldmVudCxlLmVtaXQoInBsb3RseV91bmhvdmVyIix7cG9pbnRzOltkKHMsYSldLGV2ZW50Om4uZXZlbnR9KSxvLl9oYXNIb3ZlckV2ZW50PSExKSxvLl9oYXNIb3ZlckxhYmVsJiYoaS5sb25lVW5ob3ZlcihyLl9ob3ZlcmxheWVyLm5vZGUoKSksby5faGFzSG92ZXJMYWJlbD0hMSl9KSx0Lm9uKCJjbGljayIsZnVuY3Rpb24odCl7dmFyIHI9ZS5fZnVsbExheW91dCxhPWUuX2Z1bGxEYXRhW28uaW5kZXhdO2UuX2RyYWdnaW5nfHwhMT09PXIuaG92ZXJtb2RlfHwoZS5faG92ZXJkYXRhPVtkKHQsYSldLGkuY2xpY2soZSxuLmV2ZW50KSl9KX1mdW5jdGlvbiBtKHQsZSxyKXt2YXIgbj1wLmNhc3RPcHRpb24odC5pbnNpZGV0ZXh0Zm9udC5jb2xvcixlLnB0cyk7IW4mJnQuX2lucHV0LnRleHRmb250JiYobj1wLmNhc3RPcHRpb24odC5faW5wdXQudGV4dGZvbnQuY29sb3IsZS5wdHMpKTt2YXIgYT1wLmNhc3RPcHRpb24odC5pbnNpZGV0ZXh0Zm9udC5mYW1pbHksZS5wdHMpfHxwLmNhc3RPcHRpb24odC50ZXh0Zm9udC5mYW1pbHksZS5wdHMpfHxyLmZhbWlseSxpPXAuY2FzdE9wdGlvbih0Lmluc2lkZXRleHRmb250LnNpemUsZS5wdHMpfHxwLmNhc3RPcHRpb24odC50ZXh0Zm9udC5zaXplLGUucHRzKXx8ci5zaXplO3JldHVybntjb2xvcjpufHxvLmNvbnRyYXN0KGUuY29sb3IpLGZhbWlseTphLHNpemU6aX19ZnVuY3Rpb24geSh0LGUpe2Zvcih2YXIgcixuLGE9MDthPHQubGVuZ3RoO2ErKylpZigobj0ocj10W2FdWzBdKS50cmFjZSkudGl0bGUudGV4dCl7dmFyIGk9bi50aXRsZS50ZXh0O24uX21ldGEmJihpPWwudGVtcGxhdGVTdHJpbmcoaSxuLl9tZXRhKSk7dmFyIG89cy50ZXN0ZXIuYXBwZW5kKCJ0ZXh0IikuYXR0cigiZGF0YS1ub3RleCIsMSkudGV4dChpKS5jYWxsKHMuZm9udCxuLnRpdGxlLmZvbnQpLmNhbGwoYy5jb252ZXJ0VG9Uc3BhbnMsZSksdT1zLmJCb3goby5ub2RlKCksITApO3IudGl0bGVCb3g9e3dpZHRoOnUud2lkdGgsaGVpZ2h0OnUuaGVpZ2h0fSxvLnJlbW92ZSgpfX1mdW5jdGlvbiB4KHQsZSxyKXt2YXIgbixhPU1hdGguc3FydCh0LndpZHRoKnQud2lkdGgrdC5oZWlnaHQqdC5oZWlnaHQpLGk9ZS5oYWxmYW5nbGUsbz1lLm1pZGFuZ2xlLHM9ZS5yaW5nLGw9ZS5ySW5zY3JpYmVkLGM9ci5yfHxlLnJweDEsdT1yLnRyYWNlLmluc2lkZXRleHRvcmllbnRhdGlvbixoPSJob3Jpem9udGFsIj09PXUsZj0idGFuZ2VudGlhbCI9PT11LHA9InJhZGlhbCI9PT11LGQ9ImF1dG8iPT09dSxnPTE9PT1zJiZNYXRoLmFicyhlLnN0YXJ0YW5nbGUtZS5zdG9wYW5nbGUpPT09MipNYXRoLlBJLHY9W107aWYoIWQpe3ZhciBtLHk9ZnVuY3Rpb24ocixhKXtpZihmdW5jdGlvbih0LGUpe3ZhciByPXQuc3RhcnRhbmdsZSxuPXQuc3RvcGFuZ2xlO3JldHVybiByPmUmJmU+bnx8cjxlJiZlPG59KGUscikpe3ZhciBpPU1hdGguYWJzKHItZS5zdGFydGFuZ2xlKSxvPU1hdGguYWJzKHItZS5zdG9wYW5nbGUpLGw9aTxvP2k6bzsobj0idGFuIj09PWE/Xyh0LGMscyxsLDApOmIodCxjLHMsbCxNYXRoLlBJLzIpKS50ZXh0UG9zQW5nbGU9cix2LnB1c2gobil9fTtpZihofHxmKXtmb3IobT00O20+PS00O20tPTIpeShNYXRoLlBJKm0sInRhbiIpO2ZvcihtPTQ7bT49LTQ7bS09Mil5KE1hdGguUEkqKG0rMSksInRhbiIpfWlmKGh8fHApe2ZvcihtPTQ7bT49LTQ7bS09Mil5KE1hdGguUEkqKG0rMS41KSwicmFkIik7Zm9yKG09NDttPj0tNDttLT0yKXkoTWF0aC5QSSoobSsuNSksInJhZCIpfX1pZihnfHxkfHxoKXtpZigobj17c2NhbGU6bCpjKjIvYSxyQ2VudGVyOjEtbCxyb3RhdGU6MH0pLnRleHRQb3NBbmdsZT0oZS5zdGFydGFuZ2xlK2Uuc3RvcGFuZ2xlKS8yLG4uc2NhbGU+PTEpcmV0dXJuIG47di5wdXNoKG4pfShkfHxwKSYmKChuPWIodCxjLHMsaSxvKSkudGV4dFBvc0FuZ2xlPShlLnN0YXJ0YW5nbGUrZS5zdG9wYW5nbGUpLzIsdi5wdXNoKG4pKSwoZHx8ZikmJigobj1fKHQsYyxzLGksbykpLnRleHRQb3NBbmdsZT0oZS5zdGFydGFuZ2xlK2Uuc3RvcGFuZ2xlKS8yLHYucHVzaChuKSk7Zm9yKHZhciB4PTAsdz0wLGs9MDtrPHYubGVuZ3RoO2srKyl7dmFyIFQ9dltrXS5zY2FsZTtpZih3PFQmJih3PVQseD1rKSwhZCYmdz49MSlicmVha31yZXR1cm4gdlt4XX1mdW5jdGlvbiBiKHQsZSxyLG4sYSl7dmFyIGk9dC53aWR0aC90LmhlaWdodCxvPVQoaSxuLGUscik7cmV0dXJue3NjYWxlOjIqby90LmhlaWdodCxyQ2VudGVyOncoaSxvL2UpLHJvdGF0ZTprKGEpfX1mdW5jdGlvbiBfKHQsZSxyLG4sYSl7dmFyIGk9dC5oZWlnaHQvdC53aWR0aCxvPVQoaSxuLGUscik7cmV0dXJue3NjYWxlOjIqby90LndpZHRoLHJDZW50ZXI6dyhpLG8vZSkscm90YXRlOmsoYStNYXRoLlBJLzIpfX1mdW5jdGlvbiB3KHQsZSl7cmV0dXJuIE1hdGguY29zKGUpLXQqZX1mdW5jdGlvbiBrKHQpe3JldHVybigxODAvTWF0aC5QSSp0KzcyMCklMTgwLTkwfWZ1bmN0aW9uIFQodCxlLHIsbil7dmFyIGE9dCsxLygyKk1hdGgudGFuKGUpKTtyZXR1cm4gcipNYXRoLm1pbigxLyhNYXRoLnNxcnQoYSphKy41KSthKSxuLyhNYXRoLnNxcnQodCp0K24vMikrdCkpfWZ1bmN0aW9uIE0odCxlKXtyZXR1cm4gdC52IT09ZS52VG90YWx8fGUudHJhY2UuaG9sZT9NYXRoLm1pbigxLygxKzEvTWF0aC5zaW4odC5oYWxmYW5nbGUpKSx0LnJpbmcvMik6MX1mdW5jdGlvbiBBKHQsZSl7dmFyIHI9ZS5weG1pZFswXSxuPWUucHhtaWRbMV0sYT10LndpZHRoLzIsaT10LmhlaWdodC8yO3JldHVybiByPDAmJihhKj0tMSksbjwwJiYoaSo9LTEpLHtzY2FsZToxLHJDZW50ZXI6MSxyb3RhdGU6MCx4OmErTWF0aC5hYnMoaSkqKGE+MD8xOi0xKS8yLHk6aS8oMStyKnIvKG4qbikpLG91dHNpZGU6ITB9fWZ1bmN0aW9uIFModCxlKXt2YXIgcixuLGEsaT10LnRyYWNlLG89e3g6dC5jeCx5OnQuY3l9LHM9e3R4OjAsdHk6MH07cy50eSs9aS50aXRsZS5mb250LnNpemUsYT1MKGkpLC0xIT09aS50aXRsZS5wb3NpdGlvbi5pbmRleE9mKCJ0b3AiKT8oby55LT0oMSthKSp0LnIscy50eS09dC50aXRsZUJveC5oZWlnaHQpOi0xIT09aS50aXRsZS5wb3NpdGlvbi5pbmRleE9mKCJib3R0b20iKSYmKG8ueSs9KDErYSkqdC5yKTt2YXIgbCxjLHU9KGw9dC5yLGM9dC50cmFjZS5hc3BlY3RyYXRpbyxsLyh2b2lkIDA9PT1jPzE6YykpLGg9ZS53KihpLmRvbWFpbi54WzFdLWkuZG9tYWluLnhbMF0pLzI7cmV0dXJuLTEhPT1pLnRpdGxlLnBvc2l0aW9uLmluZGV4T2YoImxlZnQiKT8oaCs9dSxvLngtPSgxK2EpKnUscy50eCs9dC50aXRsZUJveC53aWR0aC8yKTotMSE9PWkudGl0bGUucG9zaXRpb24uaW5kZXhPZigiY2VudGVyIik/aCo9MjotMSE9PWkudGl0bGUucG9zaXRpb24uaW5kZXhPZigicmlnaHQiKSYmKGgrPXUsby54Kz0oMSthKSp1LHMudHgtPXQudGl0bGVCb3gud2lkdGgvMikscj1oL3QudGl0bGVCb3gud2lkdGgsbj1FKHQsZSkvdC50aXRsZUJveC5oZWlnaHQse3g6by54LHk6by55LHNjYWxlOk1hdGgubWluKHIsbiksdHg6cy50eCx0eTpzLnR5fX1mdW5jdGlvbiBFKHQsZSl7dmFyIHI9dC50cmFjZSxuPWUuaCooci5kb21haW4ueVsxXS1yLmRvbWFpbi55WzBdKTtyZXR1cm4gTWF0aC5taW4odC50aXRsZUJveC5oZWlnaHQsbi8yKX1mdW5jdGlvbiBMKHQpe3ZhciBlLHI9dC5wdWxsO2lmKCFyKXJldHVybiAwO2lmKEFycmF5LmlzQXJyYXkocikpZm9yKHI9MCxlPTA7ZTx0LnB1bGwubGVuZ3RoO2UrKyl0LnB1bGxbZV0+ciYmKHI9dC5wdWxsW2VdKTtyZXR1cm4gcn1mdW5jdGlvbiBDKHQsZSl7Zm9yKHZhciByPVtdLG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGE9dFtuXVswXSxpPWEudHJhY2Usbz1pLmRvbWFpbixzPWUudyooby54WzFdLW8ueFswXSksbD1lLmgqKG8ueVsxXS1vLnlbMF0pO2kudGl0bGUudGV4dCYmIm1pZGRsZSBjZW50ZXIiIT09aS50aXRsZS5wb3NpdGlvbiYmKGwtPUUoYSxlKSk7dmFyIGM9cy8yLHU9bC8yOyJmdW5uZWxhcmVhIiE9PWkudHlwZXx8aS5zY2FsZWdyb3VwfHwodS89aS5hc3BlY3RyYXRpbyksYS5yPU1hdGgubWluKGMsdSkvKDErTChpKSksYS5jeD1lLmwrZS53KihpLmRvbWFpbi54WzFdK2kuZG9tYWluLnhbMF0pLzIsYS5jeT1lLnQrZS5oKigxLWkuZG9tYWluLnlbMF0pLWwvMixpLnRpdGxlLnRleHQmJi0xIT09aS50aXRsZS5wb3NpdGlvbi5pbmRleE9mKCJib3R0b20iKSYmKGEuY3ktPUUoYSxlKSksaS5zY2FsZWdyb3VwJiYtMT09PXIuaW5kZXhPZihpLnNjYWxlZ3JvdXApJiZyLnB1c2goaS5zY2FsZWdyb3VwKX0hZnVuY3Rpb24odCxlKXtmb3IodmFyIHIsbixhLGk9MDtpPGUubGVuZ3RoO2krKyl7dmFyIG89MS8wLHM9ZVtpXTtmb3Iobj0wO248dC5sZW5ndGg7bisrKWlmKHI9dFtuXVswXSwoYT1yLnRyYWNlKS5zY2FsZWdyb3VwPT09cyl7dmFyIGw7aWYoInBpZSI9PT1hLnR5cGUpbD1yLnIqci5yO2Vsc2UgaWYoImZ1bm5lbGFyZWEiPT09YS50eXBlKXt2YXIgYyx1O2EuYXNwZWN0cmF0aW8+MT8oYz1yLnIsdT1jL2EuYXNwZWN0cmF0aW8pOih1PXIucixjPXUqYS5hc3BlY3RyYXRpbyksYyo9KDErYS5iYXNlcmF0aW8pLzIsbD1jKnV9bz1NYXRoLm1pbihvLGwvci52VG90YWwpfWZvcihuPTA7bjx0Lmxlbmd0aDtuKyspaWYocj10W25dWzBdLChhPXIudHJhY2UpLnNjYWxlZ3JvdXA9PT1zKXt2YXIgaD1vKnIudlRvdGFsOyJmdW5uZWxhcmVhIj09PWEudHlwZSYmKGgvPSgxK2EuYmFzZXJhdGlvKS8yLGgvPWEuYXNwZWN0cmF0aW8pLHIucj1NYXRoLnNxcnQoaCl9fX0odCxyKX1mdW5jdGlvbiBQKHQsZSl7cmV0dXJuW3QqTWF0aC5zaW4oZSksLXQqTWF0aC5jb3MoZSldfWZ1bmN0aW9uIE8odCxlLHIpe3ZhciBuPXQuX2Z1bGxMYXlvdXQsYT1yLnRyYWNlLGk9YS50ZXh0dGVtcGxhdGUsbz1hLnRleHRpbmZvO2lmKCFpJiZvJiYibm9uZSIhPT1vKXt2YXIgcyxjPW8uc3BsaXQoIisiKSx1PWZ1bmN0aW9uKHQpe3JldHVybi0xIT09Yy5pbmRleE9mKHQpfSxoPXUoImxhYmVsIiksZj11KCJ0ZXh0IiksZD11KCJ2YWx1ZSIpLHY9dSgicGVyY2VudCIpLG09bi5zZXBhcmF0b3JzO2lmKHM9aD9bZS5sYWJlbF06W10sZil7dmFyIHk9cC5nZXRGaXJzdEZpbGxlZChhLnRleHQsZS5wdHMpO2coeSkmJnMucHVzaCh5KX1kJiZzLnB1c2gocC5mb3JtYXRQaWVWYWx1ZShlLnYsbSkpLHYmJnMucHVzaChwLmZvcm1hdFBpZVBlcmNlbnQoZS52L3IudlRvdGFsLG0pKSxlLnRleHQ9cy5qb2luKCI8YnI+Iil9aWYoaSl7dmFyIHg9bC5jYXN0T3B0aW9uKGEsZS5pLCJ0ZXh0dGVtcGxhdGUiKTtpZih4KXt2YXIgYj1mdW5jdGlvbih0KXtyZXR1cm57bGFiZWw6dC5sYWJlbCx2YWx1ZTp0LnYsdmFsdWVMYWJlbDpwLmZvcm1hdFBpZVZhbHVlKHQudixuLnNlcGFyYXRvcnMpLHBlcmNlbnQ6dC52L3IudlRvdGFsLHBlcmNlbnRMYWJlbDpwLmZvcm1hdFBpZVBlcmNlbnQodC52L3IudlRvdGFsLG4uc2VwYXJhdG9ycyksY29sb3I6dC5jb2xvcix0ZXh0OnQudGV4dCxjdXN0b21kYXRhOmwuY2FzdE9wdGlvbihhLHQuaSwiY3VzdG9tZGF0YSIpfX0oZSksXz1wLmdldEZpcnN0RmlsbGVkKGEudGV4dCxlLnB0cyk7KGcoXyl8fCIiPT09XykmJihiLnRleHQ9XyksZS50ZXh0PWwudGV4dHRlbXBsYXRlU3RyaW5nKHgsYix0Ll9mdWxsTGF5b3V0Ll9kM2xvY2FsZSxiLGEuX21ldGF8fHt9KX1lbHNlIGUudGV4dD0iIn19ZnVuY3Rpb24geih0LGUpe3ZhciByPXQucm90YXRlLG49dC5zY2FsZTtuPjEmJihuPTEpO3ZhciBhPXIqTWF0aC5QSS8xODAsaT1NYXRoLmNvcyhhKSxvPU1hdGguc2luKGEpLHM9KGUubGVmdCtlLnJpZ2h0KS8yLGw9KGUudG9wK2UuYm90dG9tKS8yO3QudGV4dFg9cyppLWwqbyx0LnRleHRZPXMqbytsKmksdC5ub0NlbnRlcj0hMH1lLmV4cG9ydHM9e3Bsb3Q6ZnVuY3Rpb24odCxlKXt2YXIgcj10Ll9mdWxsTGF5b3V0LGk9ci5fc2l6ZTtmKCJwaWUiLHIpLHkoZSx0KSxDKGUsaSk7dmFyIHU9bC5tYWtlVHJhY2VHcm91cHMoci5fcGllbGF5ZXIsZSwidHJhY2UiKS5lYWNoKGZ1bmN0aW9uKGUpe3ZhciB1PW4uc2VsZWN0KHRoaXMpLGY9ZVswXSxkPWYudHJhY2U7IWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixhPXRbMF0saT1hLnIsbz1hLnRyYWNlLHM9by5yb3RhdGlvbipNYXRoLlBJLzE4MCxsPTIqTWF0aC5QSS9hLnZUb3RhbCxjPSJweDAiLHU9InB4MSI7aWYoImNvdW50ZXJjbG9ja3dpc2UiPT09by5kaXJlY3Rpb24pe2ZvcihlPTA7ZTx0Lmxlbmd0aCYmdFtlXS5oaWRkZW47ZSsrKTtpZihlPT09dC5sZW5ndGgpcmV0dXJuO3MrPWwqdFtlXS52LGwqPS0xLGM9InB4MSIsdT0icHgwIn1mb3Iobj1QKGkscyksZT0wO2U8dC5sZW5ndGg7ZSsrKShyPXRbZV0pLmhpZGRlbnx8KHJbY109bixyLnN0YXJ0YW5nbGU9cyxzKz1sKnIudi8yLHIucHhtaWQ9UChpLHMpLHIubWlkYW5nbGU9cyxzKz1sKnIudi8yLG49UChpLHMpLHIuc3RvcGFuZ2xlPXMsclt1XT1uLHIubGFyZ2VBcmM9ci52PmEudlRvdGFsLzI/MTowLHIuaGFsZmFuZ2xlPU1hdGguUEkqTWF0aC5taW4oci52L2EudlRvdGFsLC41KSxyLnJpbmc9MS1vLmhvbGUsci5ySW5zY3JpYmVkPU0ocixhKSl9KGUpLHUuYXR0cigic3Ryb2tlLWxpbmVqb2luIiwicm91bmQiKSx1LmVhY2goZnVuY3Rpb24oKXt2YXIgZz1uLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoImcuc2xpY2UiKS5kYXRhKGUpO2cuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJzbGljZSIsITApLGcuZXhpdCgpLnJlbW92ZSgpO3ZhciB5PVtbW10sW11dLFtbXSxbXV1dLGI9ITE7Zy5lYWNoKGZ1bmN0aW9uKGEsaSl7aWYoYS5oaWRkZW4pbi5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJwYXRoLGciKS5yZW1vdmUoKTtlbHNle2EucG9pbnROdW1iZXI9YS5pLGEuY3VydmVOdW1iZXI9ZC5pbmRleCx5W2EucHhtaWRbMV08MD8wOjFdW2EucHhtaWRbMF08MD8wOjFdLnB1c2goYSk7dmFyIG89Zi5jeCx1PWYuY3ksZz1uLnNlbGVjdCh0aGlzKSxfPWcuc2VsZWN0QWxsKCJwYXRoLnN1cmZhY2UiKS5kYXRhKFthXSk7aWYoXy5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQoInN1cmZhY2UiLCEwKS5zdHlsZSh7InBvaW50ZXItZXZlbnRzIjoiYWxsIn0pLGcuY2FsbCh2LHQsZSksZC5wdWxsKXt2YXIgdz0rcC5jYXN0T3B0aW9uKGQucHVsbCxhLnB0cyl8fDA7dz4wJiYobys9dyphLnB4bWlkWzBdLHUrPXcqYS5weG1pZFsxXSl9YS5jeEZpbmFsPW8sYS5jeUZpbmFsPXU7dmFyIGs9ZC5ob2xlO2lmKGEudj09PWYudlRvdGFsKXt2YXIgVD0iTSIrKG8rYS5weDBbMF0pKyIsIisodSthLnB4MFsxXSkrQyhhLnB4MCxhLnB4bWlkLCEwLDEpK0MoYS5weG1pZCxhLnB4MCwhMCwxKSsiWiI7az9fLmF0dHIoImQiLCJNIisobytrKmEucHgwWzBdKSsiLCIrKHUrayphLnB4MFsxXSkrQyhhLnB4MCxhLnB4bWlkLCExLGspK0MoYS5weG1pZCxhLnB4MCwhMSxrKSsiWiIrVCk6Xy5hdHRyKCJkIixUKX1lbHNle3ZhciBNPUMoYS5weDAsYS5weDEsITAsMSk7aWYoayl7dmFyIFM9MS1rO18uYXR0cigiZCIsIk0iKyhvK2sqYS5weDFbMF0pKyIsIisodStrKmEucHgxWzFdKStDKGEucHgxLGEucHgwLCExLGspKyJsIitTKmEucHgwWzBdKyIsIitTKmEucHgwWzFdK00rIloiKX1lbHNlIF8uYXR0cigiZCIsIk0iK28rIiwiK3UrImwiK2EucHgwWzBdKyIsIithLnB4MFsxXStNKyJaIil9Tyh0LGEsZik7dmFyIEU9cC5jYXN0T3B0aW9uKGQudGV4dHBvc2l0aW9uLGEucHRzKSxMPWcuc2VsZWN0QWxsKCJnLnNsaWNldGV4dCIpLmRhdGEoYS50ZXh0JiYibm9uZSIhPT1FP1swXTpbXSk7TC5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoInNsaWNldGV4dCIsITApLEwuZXhpdCgpLnJlbW92ZSgpLEwuZWFjaChmdW5jdGlvbigpe3ZhciBnPWwuZW5zdXJlU2luZ2xlKG4uc2VsZWN0KHRoaXMpLCJ0ZXh0IiwiIixmdW5jdGlvbih0KXt0LmF0dHIoImRhdGEtbm90ZXgiLDEpfSksdj1sLmVuc3VyZVVuaWZvcm1Gb250U2l6ZSh0LCJvdXRzaWRlIj09PUU/ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXAuY2FzdE9wdGlvbih0Lm91dHNpZGV0ZXh0Zm9udC5jb2xvcixlLnB0cyl8fHAuY2FzdE9wdGlvbih0LnRleHRmb250LmNvbG9yLGUucHRzKXx8ci5jb2xvcixhPXAuY2FzdE9wdGlvbih0Lm91dHNpZGV0ZXh0Zm9udC5mYW1pbHksZS5wdHMpfHxwLmNhc3RPcHRpb24odC50ZXh0Zm9udC5mYW1pbHksZS5wdHMpfHxyLmZhbWlseSxpPXAuY2FzdE9wdGlvbih0Lm91dHNpZGV0ZXh0Zm9udC5zaXplLGUucHRzKXx8cC5jYXN0T3B0aW9uKHQudGV4dGZvbnQuc2l6ZSxlLnB0cyl8fHIuc2l6ZTtyZXR1cm57Y29sb3I6bixmYW1pbHk6YSxzaXplOml9fShkLGEsci5mb250KTptKGQsYSxyLmZvbnQpKTtnLnRleHQoYS50ZXh0KS5hdHRyKHtjbGFzczoic2xpY2V0ZXh0Iix0cmFuc2Zvcm06IiIsInRleHQtYW5jaG9yIjoibWlkZGxlIn0pLmNhbGwocy5mb250LHYpLmNhbGwoYy5jb252ZXJ0VG9Uc3BhbnMsdCk7dmFyIHksXz1zLmJCb3goZy5ub2RlKCkpO2lmKCJvdXRzaWRlIj09PUUpeT1BKF8sYSk7ZWxzZSBpZih5PXgoXyxhLGYpLCJhdXRvIj09PUUmJnkuc2NhbGU8MSl7dmFyIHc9bC5lbnN1cmVVbmlmb3JtRm9udFNpemUodCxkLm91dHNpZGV0ZXh0Zm9udCk7Zy5jYWxsKHMuZm9udCx3KSx5PUEoXz1zLmJCb3goZy5ub2RlKCkpLGEpfXZhciBrPXkudGV4dFBvc0FuZ2xlLFQ9dm9pZCAwPT09az9hLnB4bWlkOlAoZi5yLGspO2lmKHkudGFyZ2V0WD1vK1RbMF0qeS5yQ2VudGVyKyh5Lnh8fDApLHkudGFyZ2V0WT11K1RbMV0qeS5yQ2VudGVyKyh5Lnl8fDApLHooeSxfKSx5Lm91dHNpZGUpe3ZhciBNPXkudGFyZ2V0WTthLnlMYWJlbE1pbj1NLV8uaGVpZ2h0LzIsYS55TGFiZWxNaWQ9TSxhLnlMYWJlbE1heD1NK18uaGVpZ2h0LzIsYS5sYWJlbEV4dHJhWD0wLGEubGFiZWxFeHRyYVk9MCxiPSEwfXkuZm9udFNpemU9di5zaXplLGgoZC50eXBlLHksciksZVtpXS50cmFuc2Zvcm09eSxnLmF0dHIoInRyYW5zZm9ybSIsbC5nZXRUZXh0VHJhbnNmb3JtKHkpKX0pfWZ1bmN0aW9uIEModCxlLHIsbil7dmFyIGk9biooZVswXS10WzBdKSxvPW4qKGVbMV0tdFsxXSk7cmV0dXJuImEiK24qZi5yKyIsIituKmYucisiIDAgIithLmxhcmdlQXJjKyhyPyIgMSAiOiIgMCAiKStpKyIsIitvfX0pO3ZhciBfPW4uc2VsZWN0KHRoaXMpLnNlbGVjdEFsbCgiZy50aXRsZXRleHQiKS5kYXRhKGQudGl0bGUudGV4dD9bMF06W10pO2lmKF8uZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJ0aXRsZXRleHQiLCEwKSxfLmV4aXQoKS5yZW1vdmUoKSxfLmVhY2goZnVuY3Rpb24oKXt2YXIgZSxyPWwuZW5zdXJlU2luZ2xlKG4uc2VsZWN0KHRoaXMpLCJ0ZXh0IiwiIixmdW5jdGlvbih0KXt0LmF0dHIoImRhdGEtbm90ZXgiLDEpfSksYT1kLnRpdGxlLnRleHQ7ZC5fbWV0YSYmKGE9bC50ZW1wbGF0ZVN0cmluZyhhLGQuX21ldGEpKSxyLnRleHQoYSkuYXR0cih7Y2xhc3M6InRpdGxldGV4dCIsdHJhbnNmb3JtOiIiLCJ0ZXh0LWFuY2hvciI6Im1pZGRsZSJ9KS5jYWxsKHMuZm9udCxkLnRpdGxlLmZvbnQpLmNhbGwoYy5jb252ZXJ0VG9Uc3BhbnMsdCksZT0ibWlkZGxlIGNlbnRlciI9PT1kLnRpdGxlLnBvc2l0aW9uP2Z1bmN0aW9uKHQpe3ZhciBlPU1hdGguc3FydCh0LnRpdGxlQm94LndpZHRoKnQudGl0bGVCb3gud2lkdGgrdC50aXRsZUJveC5oZWlnaHQqdC50aXRsZUJveC5oZWlnaHQpO3JldHVybnt4OnQuY3gseTp0LmN5LHNjYWxlOnQudHJhY2UuaG9sZSp0LnIqMi9lLHR4OjAsdHk6LXQudGl0bGVCb3guaGVpZ2h0LzIrdC50cmFjZS50aXRsZS5mb250LnNpemV9fShmKTpTKGYsaSksci5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitlLngrIiwiK2UueSsiKSIrKGUuc2NhbGU8MT8ic2NhbGUoIitlLnNjYWxlKyIpIjoiIikrInRyYW5zbGF0ZSgiK2UudHgrIiwiK2UudHkrIikiKX0pLGImJmZ1bmN0aW9uKHQsZSl7dmFyIHIsbixhLGksbyxzLGwsYyx1LGgsZixkLGc7ZnVuY3Rpb24gdih0LGUpe3JldHVybiB0LnB4bWlkWzFdLWUucHhtaWRbMV19ZnVuY3Rpb24gbSh0LGUpe3JldHVybiBlLnB4bWlkWzFdLXQucHhtaWRbMV19ZnVuY3Rpb24geSh0LHIpe3J8fChyPXt9KTt2YXIgYSxjLHUsZixkLGcsdj1yLmxhYmVsRXh0cmFZKyhuP3IueUxhYmVsTWF4OnIueUxhYmVsTWluKSxtPW4/dC55TGFiZWxNaW46dC55TGFiZWxNYXgseT1uP3QueUxhYmVsTWF4OnQueUxhYmVsTWluLHg9dC5jeUZpbmFsK28odC5weDBbMV0sdC5weDFbMV0pLGI9di1tO2lmKGIqbD4wJiYodC5sYWJlbEV4dHJhWT1iKSxBcnJheS5pc0FycmF5KGUucHVsbCkpZm9yKGM9MDtjPGgubGVuZ3RoO2MrKykodT1oW2NdKT09PXR8fChwLmNhc3RPcHRpb24oZS5wdWxsLHQucHRzKXx8MCk+PShwLmNhc3RPcHRpb24oZS5wdWxsLHUucHRzKXx8MCl8fCgodC5weG1pZFsxXS11LnB4bWlkWzFdKSpsPjA/KGY9dS5jeUZpbmFsK28odS5weDBbMV0sdS5weDFbMV0pLChiPWYtbS10LmxhYmVsRXh0cmFZKSpsPjAmJih0LmxhYmVsRXh0cmFZKz1iKSk6KHkrdC5sYWJlbEV4dHJhWS14KSpsPjAmJihhPTMqcypNYXRoLmFicyhjLWguaW5kZXhPZih0KSksZD11LmN4RmluYWwraSh1LnB4MFswXSx1LnB4MVswXSksKGc9ZCthLSh0LmN4RmluYWwrdC5weG1pZFswXSktdC5sYWJlbEV4dHJhWCkqcz4wJiYodC5sYWJlbEV4dHJhWCs9ZykpKX1mb3Iobj0wO248MjtuKyspZm9yKGE9bj92Om0sbz1uP01hdGgubWF4Ok1hdGgubWluLGw9bj8xOi0xLHI9MDtyPDI7cisrKXtmb3IoaT1yP01hdGgubWF4Ok1hdGgubWluLHM9cj8xOi0xLChjPXRbbl1bcl0pLnNvcnQoYSksdT10WzEtbl1bcl0saD11LmNvbmNhdChjKSxkPVtdLGY9MDtmPGMubGVuZ3RoO2YrKyl2b2lkIDAhPT1jW2ZdLnlMYWJlbE1pZCYmZC5wdXNoKGNbZl0pO2ZvcihnPSExLGY9MDtuJiZmPHUubGVuZ3RoO2YrKylpZih2b2lkIDAhPT11W2ZdLnlMYWJlbE1pZCl7Zz11W2ZdO2JyZWFrfWZvcihmPTA7ZjxkLmxlbmd0aDtmKyspe3ZhciB4PWYmJmRbZi0xXTtnJiYhZiYmKHg9ZykseShkW2ZdLHgpfX19KHksZCksZnVuY3Rpb24odCxlKXt0LmVhY2goZnVuY3Rpb24odCl7dmFyIHI9bi5zZWxlY3QodGhpcyk7aWYodC5sYWJlbEV4dHJhWHx8dC5sYWJlbEV4dHJhWSl7dmFyIGE9ci5zZWxlY3QoImcuc2xpY2V0ZXh0IHRleHQiKTt0LnRyYW5zZm9ybS50YXJnZXRYKz10LmxhYmVsRXh0cmFYLHQudHJhbnNmb3JtLnRhcmdldFkrPXQubGFiZWxFeHRyYVksYS5hdHRyKCJ0cmFuc2Zvcm0iLGwuZ2V0VGV4dFRyYW5zZm9ybSh0LnRyYW5zZm9ybSkpO3ZhciBpPXQuY3hGaW5hbCt0LnB4bWlkWzBdLHM9dC5jeUZpbmFsK3QucHhtaWRbMV0sYz0iTSIraSsiLCIrcyx1PSh0LnlMYWJlbE1heC10LnlMYWJlbE1pbikqKHQucHhtaWRbMF08MD8tMToxKS80O2lmKHQubGFiZWxFeHRyYVgpe3ZhciBoPXQubGFiZWxFeHRyYVgqdC5weG1pZFsxXS90LnB4bWlkWzBdLGY9dC55TGFiZWxNaWQrdC5sYWJlbEV4dHJhWS0odC5jeUZpbmFsK3QucHhtaWRbMV0pO01hdGguYWJzKGgpPk1hdGguYWJzKGYpP2MrPSJsIitmKnQucHhtaWRbMF0vdC5weG1pZFsxXSsiLCIrZisiSCIrKGkrdC5sYWJlbEV4dHJhWCt1KTpjKz0ibCIrdC5sYWJlbEV4dHJhWCsiLCIraCsidiIrKGYtaCkrImgiK3V9ZWxzZSBjKz0iViIrKHQueUxhYmVsTWlkK3QubGFiZWxFeHRyYVkpKyJoIit1O2wuZW5zdXJlU2luZ2xlKHIsInBhdGgiLCJ0ZXh0bGluZSIpLmNhbGwoby5zdHJva2UsZS5vdXRzaWRldGV4dGZvbnQuY29sb3IpLmF0dHIoeyJzdHJva2Utd2lkdGgiOk1hdGgubWluKDIsZS5vdXRzaWRldGV4dGZvbnQuc2l6ZS84KSxkOmMsZmlsbDoibm9uZSJ9KX1lbHNlIHIuc2VsZWN0KCJwYXRoLnRleHRsaW5lIikucmVtb3ZlKCl9KX0oZyxkKSxiJiZkLmF1dG9tYXJnaW4pe3ZhciB3PXMuYkJveCh1Lm5vZGUoKSksaz1kLmRvbWFpbixUPWkudyooay54WzFdLWsueFswXSksTT1pLmgqKGsueVsxXS1rLnlbMF0pLEU9KC41KlQtZi5yKS9pLncsTD0oLjUqTS1mLnIpL2kuaDthLmF1dG9NYXJnaW4odCwicGllLiIrZC51aWQrIi5hdXRvbWFyZ2luIix7eGw6ay54WzBdLUUseHI6ay54WzFdK0UseWI6ay55WzBdLUwseXQ6ay55WzFdK0wsbDpNYXRoLm1heChmLmN4LWYuci13LmxlZnQsMCkscjpNYXRoLm1heCh3LnJpZ2h0LShmLmN4K2YuciksMCksYjpNYXRoLm1heCh3LmJvdHRvbS0oZi5jeStmLnIpLDApLHQ6TWF0aC5tYXgoZi5jeS1mLnItdy50b3AsMCkscGFkOjV9KX19KX0pO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt1LnNlbGVjdEFsbCgidHNwYW4iKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9bi5zZWxlY3QodGhpcyk7dC5hdHRyKCJkeSIpJiZ0LmF0dHIoImR5Iix0LmF0dHIoImR5IikpfSl9LDApfSxmb3JtYXRTbGljZUxhYmVsOk8sdHJhbnNmb3JtSW5zaWRlVGV4dDp4LGRldGVybWluZUluc2lkZVRleHRGb250Om0scG9zaXRpb25UaXRsZU91dHNpZGU6UyxwcmVyZW5kZXJUaXRsZXM6eSxsYXlvdXRBcmVhczpDLGF0dGFjaEZ4SGFuZGxlcnM6dixjb21wdXRlVHJhbnNmb3JtOnp9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjU5MiwiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo2MTMsIi4uLy4uL2NvbXBvbmVudHMvZngiOjYzMCwiLi4vLi4vbGliIjo3MTcsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6NzQxLCIuLi8uLi9wbG90cy9wbG90cyI6ODI2LCIuLi9iYXIvdW5pZm9ybV90ZXh0Ijo4NzIsIi4vZXZlbnRfZGF0YSI6MTA5OCwiLi9oZWxwZXJzIjoxMDk5LGQzOjE2NX1dLDExMDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxhPXQoIi4vc3R5bGVfb25lIiksaT10KCIuLi9iYXIvdW5pZm9ybV90ZXh0IikucmVzaXplVGV4dDtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dC5fcGllbGF5ZXIuc2VsZWN0QWxsKCIudHJhY2UiKTtpKHQsZSwicGllIiksZS5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0udHJhY2Uscj1uLnNlbGVjdCh0aGlzKTtyLnN0eWxlKHtvcGFjaXR5OmUub3BhY2l0eX0pLHIuc2VsZWN0QWxsKCJwYXRoLnN1cmZhY2UiKS5lYWNoKGZ1bmN0aW9uKHQpe24uc2VsZWN0KHRoaXMpLmNhbGwoYSx0LGUpfSl9KX19LHsiLi4vYmFyL3VuaWZvcm1fdGV4dCI6ODcyLCIuL3N0eWxlX29uZSI6MTEwNSxkMzoxNjV9XSwxMTA1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxhPXQoIi4vaGVscGVycyIpLmNhc3RPcHRpb247ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT1yLm1hcmtlci5saW5lLG89YShpLmNvbG9yLGUucHRzKXx8bi5kZWZhdWx0TGluZSxzPWEoaS53aWR0aCxlLnB0cyl8fDA7dC5zdHlsZSgic3Ryb2tlLXdpZHRoIixzKS5jYWxsKG4uZmlsbCxlLmNvbG9yKS5jYWxsKG4uc3Ryb2tlLG8pfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo1OTIsIi4vaGVscGVycyI6MTA5OX1dLDExMDY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPXt4Om4ueCx5Om4ueSx4eTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxpbmRpY2VzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHhib3VuZHM6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0seWJvdW5kczp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSx0ZXh0Om4udGV4dCxtYXJrZXI6e2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsYXJyYXlPazohMSxlZGl0VHlwZToiY2FsYyJ9LG9wYWNpdHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxLGFycmF5T2s6ITEsZWRpdFR5cGU6ImNhbGMifSxibGVuZDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDpudWxsLGVkaXRUeXBlOiJjYWxjIn0sc2l6ZW1pbjp7dmFsVHlwZToibnVtYmVyIixtaW46LjEsbWF4OjIsZGZsdDouNSxlZGl0VHlwZToiY2FsYyJ9LHNpemVtYXg6e3ZhbFR5cGU6Im51bWJlciIsbWluOi4xLGRmbHQ6MjAsZWRpdFR5cGU6ImNhbGMifSxib3JkZXI6e2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsYXJyYXlPazohMSxlZGl0VHlwZToiY2FsYyJ9LGFyZWFyYXRpbzp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0OjAsZWRpdFR5cGU6ImNhbGMifSxlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYWxjIn0sdHJhbnNmb3Jtczp2b2lkIDB9fSx7Ii4uL3NjYXR0ZXIvYXR0cmlidXRlcyI6MTEyMH1dLDExMDc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZ2wtcG9pbnRjbG91ZDJkIiksYT10KCIuLi8uLi9saWIvc3RyMnJnYmFycmF5IiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXV0b3JhbmdlIikuZmluZEV4dHJlbWVzLG89dCgiLi4vc2NhdHRlci9nZXRfdHJhY2VfY29sb3IiKTtmdW5jdGlvbiBzKHQsZSl7dGhpcy5zY2VuZT10LHRoaXMudWlkPWUsdGhpcy50eXBlPSJwb2ludGNsb3VkIix0aGlzLnBpY2tYRGF0YT1bXSx0aGlzLnBpY2tZRGF0YT1bXSx0aGlzLnhEYXRhPVtdLHRoaXMueURhdGE9W10sdGhpcy50ZXh0TGFiZWxzPVtdLHRoaXMuY29sb3I9InJnYigwLCAwLCAwKSIsdGhpcy5uYW1lPSIiLHRoaXMuaG92ZXJpbmZvPSJhbGwiLHRoaXMuaWRUb0luZGV4PW5ldyBJbnQzMkFycmF5KDApLHRoaXMuYm91bmRzPVswLDAsMCwwXSx0aGlzLnBvaW50Y2xvdWRPcHRpb25zPXtwb3NpdGlvbnM6bmV3IEZsb2F0MzJBcnJheSgwKSxpZFRvSW5kZXg6dGhpcy5pZFRvSW5kZXgsc2l6ZW1pbjouNSxzaXplbWF4OjEyLGNvbG9yOlswLDAsMCwxXSxhcmVhUmF0aW86MSxib3JkZXJDb2xvcjpbMCwwLDAsMV19LHRoaXMucG9pbnRjbG91ZD1uKHQuZ2xwbG90LHRoaXMucG9pbnRjbG91ZE9wdGlvbnMpLHRoaXMucG9pbnRjbG91ZC5fdHJhY2U9dGhpc312YXIgbD1zLnByb3RvdHlwZTtsLmhhbmRsZVBpY2s9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5pZFRvSW5kZXhbdC5wb2ludElkXTtyZXR1cm57dHJhY2U6dGhpcyxkYXRhQ29vcmQ6dC5kYXRhQ29vcmQsdHJhY2VDb29yZDp0aGlzLnBpY2tYWURhdGE/W3RoaXMucGlja1hZRGF0YVsyKmVdLHRoaXMucGlja1hZRGF0YVsyKmUrMV1dOlt0aGlzLnBpY2tYRGF0YVtlXSx0aGlzLnBpY2tZRGF0YVtlXV0sdGV4dExhYmVsOkFycmF5LmlzQXJyYXkodGhpcy50ZXh0TGFiZWxzKT90aGlzLnRleHRMYWJlbHNbZV06dGhpcy50ZXh0TGFiZWxzLGNvbG9yOnRoaXMuY29sb3IsbmFtZTp0aGlzLm5hbWUscG9pbnRJbmRleDplLGhvdmVyaW5mbzp0aGlzLmhvdmVyaW5mb319LGwudXBkYXRlPWZ1bmN0aW9uKHQpe3RoaXMuaW5kZXg9dC5pbmRleCx0aGlzLnRleHRMYWJlbHM9dC50ZXh0LHRoaXMubmFtZT10Lm5hbWUsdGhpcy5ob3ZlcmluZm89dC5ob3ZlcmluZm8sdGhpcy5ib3VuZHM9WzEvMCwxLzAsLTEvMCwtMS8wXSx0aGlzLnVwZGF0ZUZhc3QodCksdGhpcy5jb2xvcj1vKHQse30pfSxsLnVwZGF0ZUZhc3Q9ZnVuY3Rpb24odCl7dmFyIGUscixuLG8scyxsLGM9dGhpcy54RGF0YT10aGlzLnBpY2tYRGF0YT10LngsdT10aGlzLnlEYXRhPXRoaXMucGlja1lEYXRhPXQueSxoPXRoaXMucGlja1hZRGF0YT10Lnh5LGY9dC54Ym91bmRzJiZ0Lnlib3VuZHMscD10LmluZGljZXMsZD10aGlzLmJvdW5kcztpZihoKXtpZihuPWgsZT1oLmxlbmd0aD4+PjEsZilkWzBdPXQueGJvdW5kc1swXSxkWzJdPXQueGJvdW5kc1sxXSxkWzFdPXQueWJvdW5kc1swXSxkWzNdPXQueWJvdW5kc1sxXTtlbHNlIGZvcihsPTA7bDxlO2wrKylvPW5bMipsXSxzPW5bMipsKzFdLG88ZFswXSYmKGRbMF09byksbz5kWzJdJiYoZFsyXT1vKSxzPGRbMV0mJihkWzFdPXMpLHM+ZFszXSYmKGRbM109cyk7aWYocClyPXA7ZWxzZSBmb3Iocj1uZXcgSW50MzJBcnJheShlKSxsPTA7bDxlO2wrKylyW2xdPWx9ZWxzZSBmb3IoZT1jLmxlbmd0aCxuPW5ldyBGbG9hdDMyQXJyYXkoMiplKSxyPW5ldyBJbnQzMkFycmF5KGUpLGw9MDtsPGU7bCsrKW89Y1tsXSxzPXVbbF0scltsXT1sLG5bMipsXT1vLG5bMipsKzFdPXMsbzxkWzBdJiYoZFswXT1vKSxvPmRbMl0mJihkWzJdPW8pLHM8ZFsxXSYmKGRbMV09cykscz5kWzNdJiYoZFszXT1zKTt0aGlzLmlkVG9JbmRleD1yLHRoaXMucG9pbnRjbG91ZE9wdGlvbnMuaWRUb0luZGV4PXIsdGhpcy5wb2ludGNsb3VkT3B0aW9ucy5wb3NpdGlvbnM9bjt2YXIgZz1hKHQubWFya2VyLmNvbG9yKSx2PWEodC5tYXJrZXIuYm9yZGVyLmNvbG9yKSxtPXQub3BhY2l0eSp0Lm1hcmtlci5vcGFjaXR5O2dbM10qPW0sdGhpcy5wb2ludGNsb3VkT3B0aW9ucy5jb2xvcj1nO3ZhciB5PXQubWFya2VyLmJsZW5kO2lmKG51bGw9PT15KXt5PWMubGVuZ3RoPDEwMHx8dS5sZW5ndGg8MTAwfXRoaXMucG9pbnRjbG91ZE9wdGlvbnMuYmxlbmQ9eSx2WzNdKj1tLHRoaXMucG9pbnRjbG91ZE9wdGlvbnMuYm9yZGVyQ29sb3I9djt2YXIgeD10Lm1hcmtlci5zaXplbWluLGI9TWF0aC5tYXgodC5tYXJrZXIuc2l6ZW1heCx0Lm1hcmtlci5zaXplbWluKTt0aGlzLnBvaW50Y2xvdWRPcHRpb25zLnNpemVNaW49eCx0aGlzLnBvaW50Y2xvdWRPcHRpb25zLnNpemVNYXg9Yix0aGlzLnBvaW50Y2xvdWRPcHRpb25zLmFyZWFSYXRpbz10Lm1hcmtlci5ib3JkZXIuYXJlYXJhdGlvLHRoaXMucG9pbnRjbG91ZC51cGRhdGUodGhpcy5wb2ludGNsb3VkT3B0aW9ucyk7dmFyIF89dGhpcy5zY2VuZS54YXhpcyx3PXRoaXMuc2NlbmUueWF4aXMsaz1iLzJ8fC41O3QuX2V4dHJlbWVzW18uX2lkXT1pKF8sW2RbMF0sZFsyXV0se3BwYWQ6a30pLHQuX2V4dHJlbWVzW3cuX2lkXT1pKHcsW2RbMV0sZFszXV0se3BwYWQ6a30pfSxsLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnBvaW50Y2xvdWQuZGlzcG9zZSgpfSxlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1uZXcgcyh0LGUudWlkKTtyZXR1cm4gci51cGRhdGUoZSkscn19LHsiLi4vLi4vbGliL3N0cjJyZ2JhcnJheSI6NzQwLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXV0b3JhbmdlIjo3NjQsIi4uL3NjYXR0ZXIvZ2V0X3RyYWNlX2NvbG9yIjoxMTMwLCJnbC1wb2ludGNsb3VkMmQiOjI5NX1dLDExMDg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIGkocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGEscixpKX1pKCJ4IiksaSgieSIpLGkoInhib3VuZHMiKSxpKCJ5Ym91bmRzIiksdC54eSYmdC54eSBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheSYmKGUueHk9dC54eSksdC5pbmRpY2VzJiZ0LmluZGljZXMgaW5zdGFuY2VvZiBJbnQzMkFycmF5JiYoZS5pbmRpY2VzPXQuaW5kaWNlcyksaSgidGV4dCIpLGkoIm1hcmtlci5jb2xvciIsciksaSgibWFya2VyLm9wYWNpdHkiKSxpKCJtYXJrZXIuYmxlbmQiKSxpKCJtYXJrZXIuc2l6ZW1pbiIpLGkoIm1hcmtlci5zaXplbWF4IiksaSgibWFya2VyLmJvcmRlci5jb2xvciIsciksaSgibWFya2VyLmJvcmRlci5hcmVhcmF0aW8iKSxlLl9sZW5ndGg9bnVsbH19LHsiLi4vLi4vbGliIjo3MTcsIi4vYXR0cmlidXRlcyI6MTEwNn1dLDExMDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjYWxjOnQoIi4uL3NjYXR0ZXIzZC9jYWxjIikscGxvdDp0KCIuL2NvbnZlcnQiKSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToicG9pbnRjbG91ZCIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvZ2wyZCIpLGNhdGVnb3JpZXM6WyJnbCIsImdsMmQiLCJzaG93TGVnZW5kIl0sbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvZ2wyZCI6ODAzLCIuLi9zY2F0dGVyM2QvY2FsYyI6MTE0OCwiLi9hdHRyaWJ1dGVzIjoxMTA2LCIuL2NvbnZlcnQiOjExMDcsIi4vZGVmYXVsdHMiOjExMDh9XSwxMTEwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIiksbz10KCIuLi8uLi9jb21wb25lbnRzL2Z4L2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL3Bsb3RzL2RvbWFpbiIpLmF0dHJpYnV0ZXMsbD10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikuaG92ZXJ0ZW1wbGF0ZUF0dHJzLGM9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSx1PXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKS50ZW1wbGF0ZWRBcnJheSxoPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LGY9dCgiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyIpLm92ZXJyaWRlQWxsO3QoIi4uLy4uL2NvbnN0YW50cy9kb2NzIikuRk9STUFUX0xJTks7KGUuZXhwb3J0cz1mKHtob3ZlcmluZm86aCh7fSxhLmhvdmVyaW5mbyx7ZmxhZ3M6W10sYXJyYXlPazohMX0pLGhvdmVybGFiZWw6by5ob3ZlcmxhYmVsLGRvbWFpbjpzKHtuYW1lOiJzYW5rZXkiLHRyYWNlOiEwfSksb3JpZW50YXRpb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInYiLCJoIl0sZGZsdDoiaCJ9LHZhbHVlZm9ybWF0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6Ii4zcyJ9LHZhbHVlc3VmZml4Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiJ9LGFycmFuZ2VtZW50Ont2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJzbmFwIiwicGVycGVuZGljdWxhciIsImZyZWVmb3JtIiwiZml4ZWQiXSxkZmx0OiJzbmFwIn0sdGV4dGZvbnQ6bih7fSksbm9kZTp7bGFiZWw6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGRmbHQ6W119LGdyb3Vwczp7dmFsVHlwZToiaW5mb19hcnJheSIsaW1wbGllZEVkaXRzOnt4OltdLHk6W119LGRpbWVuc2lvbnM6MixmcmVlTGVuZ3RoOiEwLGRmbHQ6W10saXRlbXM6e3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6ImNhbGMifX0seDp7dmFsVHlwZToiZGF0YV9hcnJheSIsZGZsdDpbXX0seTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZGZsdDpbXX0sY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixhcnJheU9rOiEwfSxsaW5lOntjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6aS5kZWZhdWx0TGluZSxhcnJheU9rOiEwfSx3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0Oi41LGFycmF5T2s6ITB9fSxwYWQ6e3ZhbFR5cGU6Im51bWJlciIsYXJyYXlPazohMSxtaW46MCxkZmx0OjIwfSx0aGlja25lc3M6e3ZhbFR5cGU6Im51bWJlciIsYXJyYXlPazohMSxtaW46MSxkZmx0OjIwfSxob3ZlcmluZm86e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImFsbCIsIm5vbmUiLCJza2lwIl0sZGZsdDoiYWxsIn0saG92ZXJsYWJlbDpvLmhvdmVybGFiZWwsaG92ZXJ0ZW1wbGF0ZTpsKHt9LHtrZXlzOlsidmFsdWUiLCJsYWJlbCJdfSl9LGxpbms6e2xhYmVsOnt2YWxUeXBlOiJkYXRhX2FycmF5IixkZmx0OltdfSxjb2xvcjp7dmFsVHlwZToiY29sb3IiLGFycmF5T2s6ITB9LGxpbmU6e2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDppLmRlZmF1bHRMaW5lLGFycmF5T2s6ITB9LHdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MCxhcnJheU9rOiEwfX0sc291cmNlOnt2YWxUeXBlOiJkYXRhX2FycmF5IixkZmx0OltdfSx0YXJnZXQ6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGRmbHQ6W119LHZhbHVlOnt2YWxUeXBlOiJkYXRhX2FycmF5IixkZmx0OltdfSxob3ZlcmluZm86e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImFsbCIsIm5vbmUiLCJza2lwIl0sZGZsdDoiYWxsIn0saG92ZXJsYWJlbDpvLmhvdmVybGFiZWwsaG92ZXJ0ZW1wbGF0ZTpsKHt9LHtrZXlzOlsidmFsdWUiLCJsYWJlbCJdfSksY29sb3JzY2FsZXM6dSgiY29uY2VudHJhdGlvbnNjYWxlcyIse2VkaXRUeXBlOiJjYWxjIixsYWJlbDp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToiY2FsYyIsZGZsdDoiIn0sY21heDp7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToiY2FsYyIsZGZsdDoxfSxjbWluOnt2YWxUeXBlOiJudW1iZXIiLGVkaXRUeXBlOiJjYWxjIixkZmx0OjB9LGNvbG9yc2NhbGU6aChjKCkuY29sb3JzY2FsZSx7ZGZsdDpbWzAsIndoaXRlIl0sWzEsImJsYWNrIl1dfSl9KX19LCJjYWxjIiwibmVzdGVkIikpLnRyYW5zZm9ybXM9dm9pZCAwfSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyI6NTkxLCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6NTk5LCIuLi8uLi9jb21wb25lbnRzL2Z4L2F0dHJpYnV0ZXMiOjYyMiwiLi4vLi4vY29uc3RhbnRzL2RvY3MiOjY4OCwiLi4vLi4vbGliL2V4dGVuZCI6NzA4LCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIjo3NDgsIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjc1NSwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6NzYyLCIuLi8uLi9wbG90cy9kb21haW4iOjc5MCwiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIjo3OTEsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjg0MX1dLDExMTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyIpLm92ZXJyaWRlQWxsLGE9dCgiLi4vLi4vcGxvdHMvZ2V0X2RhdGEiKS5nZXRNb2R1bGVDYWxjRGF0YSxpPXQoIi4vcGxvdCIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9meC9sYXlvdXRfYXR0cmlidXRlcyIpLHM9dCgiLi4vLi4vbGliL3NldGN1cnNvciIpLGw9dCgiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudCIpLGM9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL3NlbGVjdCIpLnByZXBTZWxlY3QsdT10KCIuLi8uLi9saWIiKSxoPXQoIi4uLy4uL3JlZ2lzdHJ5Iik7ZnVuY3Rpb24gZih0LGUpe3ZhciByPXQuX2Z1bGxEYXRhW2VdLG49dC5fZnVsbExheW91dCxhPW4uZHJhZ21vZGUsaT0icGFuIj09PW4uZHJhZ21vZGU/Im1vdmUiOiJjcm9zc2hhaXIiLG89ci5fYmdSZWN0O2lmKCJwYW4iIT09YSYmInpvb20iIT09YSl7cyhvLGkpO3ZhciBmPXtfaWQ6IngiLGMycDp1LmlkZW50aXR5LF9vZmZzZXQ6ci5fc2Fua2V5LnRyYW5zbGF0ZVgsX2xlbmd0aDpyLl9zYW5rZXkud2lkdGh9LHA9e19pZDoieSIsYzJwOnUuaWRlbnRpdHksX29mZnNldDpyLl9zYW5rZXkudHJhbnNsYXRlWSxfbGVuZ3RoOnIuX3NhbmtleS5oZWlnaHR9LGQ9e2dkOnQsZWxlbWVudDpvLm5vZGUoKSxwbG90aW5mbzp7aWQ6ZSx4YXhpczpmLHlheGlzOnAsZmlsbFJhbmdlSXRlbXM6dS5ub29wfSxzdWJwbG90OmUseGF4ZXM6W2ZdLHlheGVzOltwXSxkb25lRm5Db21wbGV0ZWQ6ZnVuY3Rpb24ocil7dmFyIG4sYT10Ll9mdWxsRGF0YVtlXSxpPWEubm9kZS5ncm91cHMuc2xpY2UoKSxvPVtdO2Z1bmN0aW9uIHModCl7Zm9yKHZhciBlPWEuX3NhbmtleS5ncmFwaC5ub2RlcyxyPTA7cjxlLmxlbmd0aDtyKyspaWYoZVtyXS5wb2ludE51bWJlcj09PXQpcmV0dXJuIGVbcl19Zm9yKHZhciBsPTA7bDxyLmxlbmd0aDtsKyspe3ZhciBjPXMocltsXS5wb2ludE51bWJlcik7aWYoYylpZihjLmdyb3VwKXtmb3IodmFyIHU9MDt1PGMuY2hpbGRyZW5Ob2Rlcy5sZW5ndGg7dSsrKW8ucHVzaChjLmNoaWxkcmVuTm9kZXNbdV0ucG9pbnROdW1iZXIpO2lbYy5wb2ludE51bWJlci1hLm5vZGUuX2NvdW50XT0hMX1lbHNlIG8ucHVzaChjLnBvaW50TnVtYmVyKX1uPWkuZmlsdGVyKEJvb2xlYW4pLmNvbmNhdChbb10pLGguY2FsbCgiX2d1aVJlc3R5bGUiLHQseyJub2RlLmdyb3VwcyI6W25dfSxlKX0scHJlcEZuOmZ1bmN0aW9uKHQsZSxyKXtjKHQsZSxyLGQsYSl9fTtsLmluaXQoZCl9fXIubmFtZT0ic2Fua2V5IixyLmJhc2VMYXlvdXRBdHRyT3ZlcnJpZGVzPW4oe2hvdmVybGFiZWw6by5ob3ZlcmxhYmVsfSwicGxvdCIsIm5lc3RlZCIpLHIucGxvdD1mdW5jdGlvbih0KXt2YXIgZT1hKHQuY2FsY2RhdGEsInNhbmtleSIpWzBdO2kodCxlKSxyLnVwZGF0ZUZ4KHQpfSxyLmNsZWFuPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPW4uX2hhcyYmbi5faGFzKCJzYW5rZXkiKSxpPWUuX2hhcyYmZS5faGFzKCJzYW5rZXkiKTthJiYhaSYmKG4uX3BhcGVyZGl2LnNlbGVjdEFsbCgiLnNhbmtleSIpLnJlbW92ZSgpLG4uX3BhcGVyZGl2LnNlbGVjdEFsbCgiLmJnc2Fua2V5IikucmVtb3ZlKCkpfSxyLnVwZGF0ZUZ4PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8dC5fZnVsbERhdGEubGVuZ3RoO2UrKylmKHQsZSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhZ2VsZW1lbnQiOjYxMCwiLi4vLi4vY29tcG9uZW50cy9meC9sYXlvdXRfYXR0cmlidXRlcyI6NjMxLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vbGliL3NldGN1cnNvciI6NzM3LCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIjo3NDgsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9zZWxlY3QiOjc4MiwiLi4vLi4vcGxvdHMvZ2V0X2RhdGEiOjgwMCwiLi4vLi4vcmVnaXN0cnkiOjg0NiwiLi9wbG90IjoxMTE2fV0sMTExMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJzdHJvbmdseS1jb25uZWN0ZWQtY29tcG9uZW50cyIpLGE9dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9saWIvZ3VwIikud3JhcCxvPWEuaXNBcnJheU9yVHlwZWRBcnJheSxzPWEuaXNJbmRleCxsPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpO2Z1bmN0aW9uIGModCl7dmFyIGUscj10Lm5vZGUsaT10LmxpbmssYz1bXSx1PW8oaS5jb2xvciksaD17fSxmPXt9LHA9aS5jb2xvcnNjYWxlcy5sZW5ndGg7Zm9yKGU9MDtlPHA7ZSsrKXt2YXIgZD1pLmNvbG9yc2NhbGVzW2VdLGc9bC5leHRyYWN0U2NhbGUoZCx7Y0xldHRlcjoiYyJ9KSx2PWwubWFrZUNvbG9yU2NhbGVGdW5jKGcpO2ZbZC5sYWJlbF09dn12YXIgbT0wO2ZvcihlPTA7ZTxpLnZhbHVlLmxlbmd0aDtlKyspaS5zb3VyY2VbZV0+bSYmKG09aS5zb3VyY2VbZV0pLGkudGFyZ2V0W2VdPm0mJihtPWkudGFyZ2V0W2VdKTt2YXIgeSx4PW0rMTt0Lm5vZGUuX2NvdW50PXg7dmFyIGI9dC5ub2RlLmdyb3VwcyxfPXt9O2ZvcihlPTA7ZTxiLmxlbmd0aDtlKyspe3ZhciB3PWJbZV07Zm9yKHk9MDt5PHcubGVuZ3RoO3krKyl7dmFyIGs9d1t5XSxUPXgrZTtfLmhhc093blByb3BlcnR5KGspP2Eud2FybigiTm9kZSAiK2srIiBpcyBhbHJlYWR5IHBhcnQgb2YgYSBncm91cC4iKTpfW2tdPVR9fXZhciBNPXtzb3VyY2U6W10sdGFyZ2V0OltdfTtmb3IoZT0wO2U8aS52YWx1ZS5sZW5ndGg7ZSsrKXt2YXIgQT1pLnZhbHVlW2VdLFM9aS5zb3VyY2VbZV0sRT1pLnRhcmdldFtlXTtpZihBPjAmJnMoUyx4KSYmcyhFLHgpJiYoIV8uaGFzT3duUHJvcGVydHkoUyl8fCFfLmhhc093blByb3BlcnR5KEUpfHxfW1NdIT09X1tFXSkpe18uaGFzT3duUHJvcGVydHkoRSkmJihFPV9bRV0pLF8uaGFzT3duUHJvcGVydHkoUykmJihTPV9bU10pLEU9K0UsaFtTPStTXT1oW0VdPSEwO3ZhciBMPSIiO2kubGFiZWwmJmkubGFiZWxbZV0mJihMPWkubGFiZWxbZV0pO3ZhciBDPW51bGw7TCYmZi5oYXNPd25Qcm9wZXJ0eShMKSYmKEM9ZltMXSksYy5wdXNoKHtwb2ludE51bWJlcjplLGxhYmVsOkwsY29sb3I6dT9pLmNvbG9yW2VdOmkuY29sb3IsY29uY2VudHJhdGlvbnNjYWxlOkMsc291cmNlOlMsdGFyZ2V0OkUsdmFsdWU6K0F9KSxNLnNvdXJjZS5wdXNoKFMpLE0udGFyZ2V0LnB1c2goRSl9fXZhciBQPXgrYi5sZW5ndGgsTz1vKHIuY29sb3IpLHo9W107Zm9yKGU9MDtlPFA7ZSsrKWlmKGhbZV0pe3ZhciBJPXIubGFiZWxbZV07ei5wdXNoKHtncm91cDplPngtMSxjaGlsZHJlbk5vZGVzOltdLHBvaW50TnVtYmVyOmUsbGFiZWw6SSxjb2xvcjpPP3IuY29sb3JbZV06ci5jb2xvcn0pfXZhciBEPSExO3JldHVybiBmdW5jdGlvbih0LGUscil7Zm9yKHZhciBpPWEuaW5pdDJkQXJyYXkodCwwKSxvPTA7bzxNYXRoLm1pbihlLmxlbmd0aCxyLmxlbmd0aCk7bysrKWlmKGEuaXNJbmRleChlW29dLHQpJiZhLmlzSW5kZXgocltvXSx0KSl7aWYoZVtvXT09PXJbb10pcmV0dXJuITA7aVtlW29dXS5wdXNoKHJbb10pfXJldHVybiBuKGkpLmNvbXBvbmVudHMuc29tZShmdW5jdGlvbih0KXtyZXR1cm4gdC5sZW5ndGg+MX0pfShQLE0uc291cmNlLE0udGFyZ2V0KSYmKEQ9ITApLHtjaXJjdWxhcjpELGxpbmtzOmMsbm9kZXM6eixncm91cHM6Yixncm91cExvb2t1cDpffX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1jKGUpO3JldHVybiBpKHtjaXJjdWxhcjpyLmNpcmN1bGFyLF9ub2RlczpyLm5vZGVzLF9saW5rczpyLmxpbmtzLF9ncm91cHM6ci5ncm91cHMsX2dyb3VwTG9va3VwOnIuZ3JvdXBMb29rdXB9KX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIjo2MDQsIi4uLy4uL2xpYiI6NzE3LCIuLi8uLi9saWIvZ3VwIjo3MTUsInN0cm9uZ2x5LWNvbm5lY3RlZC1jb21wb25lbnRzIjo1Mjl9XSwxMTEzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bm9kZVRleHRPZmZzZXRIb3Jpem9udGFsOjQsbm9kZVRleHRPZmZzZXRWZXJ0aWNhbDozLG5vZGVQYWRBY3Jvc3M6MTAsc2Fua2V5SXRlcmF0aW9uczo1MCxmb3JjZUl0ZXJhdGlvbnM6NSxmb3JjZVRpY2tzUGVyRnJhbWU6MTAsZHVyYXRpb246NTAwLGVhc2U6ImxpbmVhciIsY246e3NhbmtleToic2Fua2V5IixzYW5rZXlMaW5rczoic2Fua2V5LWxpbmtzIixzYW5rZXlMaW5rOiJzYW5rZXktbGluayIsc2Fua2V5Tm9kZVNldDoic2Fua2V5LW5vZGUtc2V0IixzYW5rZXlOb2RlOiJzYW5rZXktbm9kZSIsbm9kZVJlY3Q6Im5vZGUtcmVjdCIsbm9kZUNhcHR1cmU6Im5vZGUtY2FwdHVyZSIsbm9kZUNlbnRlcmVkOiJub2RlLWVudGVyZWQiLG5vZGVMYWJlbEd1aWRlOiJub2RlLWxhYmVsLWd1aWRlIixub2RlTGFiZWw6Im5vZGUtbGFiZWwiLG5vZGVMYWJlbFRleHRQYXRoOiJub2RlLWxhYmVsLXRleHQtcGF0aCJ9fX0se31dLDExMTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxvPXQoInRpbnljb2xvcjIiKSxzPXQoIi4uLy4uL3Bsb3RzL2RvbWFpbiIpLmRlZmF1bHRzLGw9dCgiLi4vLi4vY29tcG9uZW50cy9meC9ob3ZlcmxhYmVsX2RlZmF1bHRzIiksYz10KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIiksdT10KCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiKTtmdW5jdGlvbiBoKHQsZSl7ZnVuY3Rpb24gcihyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsYS5saW5rLmNvbG9yc2NhbGVzLHIsaSl9cigibGFiZWwiKSxyKCJjbWluIikscigiY21heCIpLHIoImNvbG9yc2NhbGUiKX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsZil7ZnVuY3Rpb24gcChyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsYSxyLGkpfXZhciBkPW4uZXh0ZW5kRGVlcChmLmhvdmVybGFiZWwsdC5ob3ZlcmxhYmVsKSxnPXQubm9kZSx2PWMubmV3Q29udGFpbmVyKGUsIm5vZGUiKTtmdW5jdGlvbiBtKHQsZSl7cmV0dXJuIG4uY29lcmNlKGcsdixhLm5vZGUsdCxlKX1tKCJsYWJlbCIpLG0oImdyb3VwcyIpLG0oIngiKSxtKCJ5IiksbSgicGFkIiksbSgidGhpY2tuZXNzIiksbSgibGluZS5jb2xvciIpLG0oImxpbmUud2lkdGgiKSxtKCJob3ZlcmluZm8iLHQuaG92ZXJpbmZvKSxsKGcsdixtLGQpLG0oImhvdmVydGVtcGxhdGUiKTt2YXIgeT1mLmNvbG9yd2F5O20oImNvbG9yIix2LmxhYmVsLm1hcChmdW5jdGlvbih0LGUpe3JldHVybiBpLmFkZE9wYWNpdHkoZnVuY3Rpb24odCl7cmV0dXJuIHlbdCV5Lmxlbmd0aF19KGUpLC44KX0pKTt2YXIgeD10Lmxpbmt8fHt9LGI9Yy5uZXdDb250YWluZXIoZSwibGluayIpO2Z1bmN0aW9uIF8odCxlKXtyZXR1cm4gbi5jb2VyY2UoeCxiLGEubGluayx0LGUpfV8oImxhYmVsIiksXygic291cmNlIiksXygidGFyZ2V0IiksXygidmFsdWUiKSxfKCJsaW5lLmNvbG9yIiksXygibGluZS53aWR0aCIpLF8oImhvdmVyaW5mbyIsdC5ob3ZlcmluZm8pLGwoeCxiLF8sZCksXygiaG92ZXJ0ZW1wbGF0ZSIpO3ZhciB3LGs9byhmLnBhcGVyX2JnY29sb3IpLmdldEx1bWluYW5jZSgpPC4zMzM/InJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KSI6InJnYmEoMCwgMCwgMCwgMC4yKSI7XygiY29sb3IiLG4ucmVwZWF0KGssYi52YWx1ZS5sZW5ndGgpKSx1KHgsYix7bmFtZToiY29sb3JzY2FsZXMiLGhhbmRsZUl0ZW1EZWZhdWx0czpofSkscyhlLGYscCkscCgib3JpZW50YXRpb24iKSxwKCJ2YWx1ZWZvcm1hdCIpLHAoInZhbHVlc3VmZml4Iiksdi54Lmxlbmd0aCYmdi55Lmxlbmd0aCYmKHc9ImZyZWVmb3JtIikscCgiYXJyYW5nZW1lbnQiLHcpLG4uY29lcmNlRm9udChwLCJ0ZXh0Zm9udCIsbi5leHRlbmRGbGF0KHt9LGYuZm9udCkpLGUuX2xlbmd0aD1udWxsfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo1OTIsIi4uLy4uL2NvbXBvbmVudHMvZngvaG92ZXJsYWJlbF9kZWZhdWx0cyI6NjI5LCIuLi8uLi9saWIiOjcxNywiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NzU1LCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiOjc2MSwiLi4vLi4vcGxvdHMvZG9tYWluIjo3OTAsIi4vYXR0cmlidXRlcyI6MTExMCx0aW55Y29sb3IyOjUzNn1dLDExMTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjYWxjOnQoIi4vY2FsYyIpLHBsb3Q6dCgiLi9wbG90IiksbW9kdWxlVHlwZToidHJhY2UiLG5hbWU6InNhbmtleSIsYmFzZVBsb3RNb2R1bGU6dCgiLi9iYXNlX3Bsb3QiKSxzZWxlY3RQb2ludHM6dCgiLi9zZWxlY3QuanMiKSxjYXRlZ29yaWVzOlsibm9PcGFjaXR5Il0sbWV0YTp7fX19LHsiLi9hdHRyaWJ1dGVzIjoxMTEwLCIuL2Jhc2VfcGxvdCI6MTExMSwiLi9jYWxjIjoxMTEyLCIuL2RlZmF1bHRzIjoxMTE0LCIuL3Bsb3QiOjExMTYsIi4vc2VsZWN0LmpzIjoxMTE4fV0sMTExNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGE9dCgiLi9yZW5kZXIiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvZngiKSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxzPXQoIi4uLy4uL2xpYiIpLGw9dCgiLi9jb25zdGFudHMiKS5jbixjPXMuXztmdW5jdGlvbiB1KHQpe3JldHVybiIiIT09dH1mdW5jdGlvbiBoKHQsZSl7cmV0dXJuIHQuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0LmtleT09PWUudHJhY2VJZH0pfWZ1bmN0aW9uIGYodCxlKXtuLnNlbGVjdCh0KS5zZWxlY3QoInBhdGgiKS5zdHlsZSgiZmlsbC1vcGFjaXR5IixlKSxuLnNlbGVjdCh0KS5zZWxlY3QoInJlY3QiKS5zdHlsZSgiZmlsbC1vcGFjaXR5IixlKX1mdW5jdGlvbiBwKHQpe24uc2VsZWN0KHQpLnNlbGVjdCgidGV4dC5uYW1lIikuc3R5bGUoImZpbGwiLCJibGFjayIpfWZ1bmN0aW9uIGQodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybi0xIT09dC5ub2RlLnNvdXJjZUxpbmtzLmluZGV4T2YoZS5saW5rKXx8LTEhPT10Lm5vZGUudGFyZ2V0TGlua3MuaW5kZXhPZihlLmxpbmspfX1mdW5jdGlvbiBnKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4tMSE9PWUubm9kZS5zb3VyY2VMaW5rcy5pbmRleE9mKHQubGluayl8fC0xIT09ZS5ub2RlLnRhcmdldExpbmtzLmluZGV4T2YodC5saW5rKX19ZnVuY3Rpb24gdih0LGUscil7ZSYmciYmaChyLGUpLnNlbGVjdEFsbCgiLiIrbC5zYW5rZXlMaW5rKS5maWx0ZXIoZChlKSkuY2FsbCh5LmJpbmQoMCxlLHIsITEpKX1mdW5jdGlvbiBtKHQsZSxyKXtlJiZyJiZoKHIsZSkuc2VsZWN0QWxsKCIuIitsLnNhbmtleUxpbmspLmZpbHRlcihkKGUpKS5jYWxsKHguYmluZCgwLGUsciwhMSkpfWZ1bmN0aW9uIHkodCxlLHIsbil7dmFyIGE9bi5kYXR1bSgpLmxpbmsubGFiZWw7bi5zdHlsZSgiZmlsbC1vcGFjaXR5IixmdW5jdGlvbih0KXtpZighdC5saW5rLmNvbmNlbnRyYXRpb25zY2FsZSlyZXR1cm4uNH0pLGEmJmgoZSx0KS5zZWxlY3RBbGwoIi4iK2wuc2Fua2V5TGluaykuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0LmxpbmsubGFiZWw9PT1hfSkuc3R5bGUoImZpbGwtb3BhY2l0eSIsZnVuY3Rpb24odCl7aWYoIXQubGluay5jb25jZW50cmF0aW9uc2NhbGUpcmV0dXJuLjR9KSxyJiZoKGUsdCkuc2VsZWN0QWxsKCIuIitsLnNhbmtleU5vZGUpLmZpbHRlcihnKHQpKS5jYWxsKHYpfWZ1bmN0aW9uIHgodCxlLHIsbil7dmFyIGE9bi5kYXR1bSgpLmxpbmsubGFiZWw7bi5zdHlsZSgiZmlsbC1vcGFjaXR5IixmdW5jdGlvbih0KXtyZXR1cm4gdC50aW55Q29sb3JBbHBoYX0pLGEmJmgoZSx0KS5zZWxlY3RBbGwoIi4iK2wuc2Fua2V5TGluaykuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0LmxpbmsubGFiZWw9PT1hfSkuc3R5bGUoImZpbGwtb3BhY2l0eSIsZnVuY3Rpb24odCl7cmV0dXJuIHQudGlueUNvbG9yQWxwaGF9KSxyJiZoKGUsdCkuc2VsZWN0QWxsKGwuc2Fua2V5Tm9kZSkuZmlsdGVyKGcodCkpLmNhbGwobSl9ZnVuY3Rpb24gYih0LGUpe3ZhciByPXQuaG92ZXJsYWJlbHx8e30sbj1zLm5lc3RlZFByb3BlcnR5KHIsZSkuZ2V0KCk7cmV0dXJuIUFycmF5LmlzQXJyYXkobikmJm59ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQuX2Z1bGxMYXlvdXQscz1yLl9wYXBlcixoPXIuX3NpemUsZD0wO2Q8dC5fZnVsbERhdGEubGVuZ3RoO2QrKylpZih0Ll9mdWxsRGF0YVtkXS52aXNpYmxlJiZ0Ll9mdWxsRGF0YVtkXS50eXBlPT09bC5zYW5rZXkmJiF0Ll9mdWxsRGF0YVtkXS5fdmlld0luaXRpYWwpe3ZhciBnPXQuX2Z1bGxEYXRhW2RdLm5vZGU7dC5fZnVsbERhdGFbZF0uX3ZpZXdJbml0aWFsPXtub2RlOntncm91cHM6Zy5ncm91cHMuc2xpY2UoKSx4OmcueC5zbGljZSgpLHk6Zy55LnNsaWNlKCl9fX12YXIgXz1jKHQsInNvdXJjZToiKSsiICIsdz1jKHQsInRhcmdldDoiKSsiICIsaz1jKHQsImNvbmNlbnRyYXRpb246IikrIiAiLFQ9Yyh0LCJpbmNvbWluZyBmbG93IGNvdW50OiIpKyIgIixNPWModCwib3V0Z29pbmcgZmxvdyBjb3VudDoiKSsiICI7YSh0LHMsZSx7d2lkdGg6aC53LGhlaWdodDpoLmgsbWFyZ2luOnt0OmgudCxyOmgucixiOmguYixsOmgubH19LHtsaW5rRXZlbnRzOntob3ZlcjpmdW5jdGlvbihlLHIsYSl7ITEhPT10Ll9mdWxsTGF5b3V0LmhvdmVybW9kZSYmKG4uc2VsZWN0KGUpLmNhbGwoeS5iaW5kKDAscixhLCEwKSksInNraXAiIT09ci5saW5rLnRyYWNlLmxpbmsuaG92ZXJpbmZvJiYoci5saW5rLmZ1bGxEYXRhPXIubGluay50cmFjZSx0LmVtaXQoInBsb3RseV9ob3ZlciIse2V2ZW50Om4uZXZlbnQscG9pbnRzOltyLmxpbmtdfSkpKX0sZm9sbG93OmZ1bmN0aW9uKGUsYSl7aWYoITEhPT10Ll9mdWxsTGF5b3V0LmhvdmVybW9kZSl7dmFyIHM9YS5saW5rLnRyYWNlLmxpbms7aWYoIm5vbmUiIT09cy5ob3ZlcmluZm8mJiJza2lwIiE9PXMuaG92ZXJpbmZvKXtmb3IodmFyIGw9W10sYz0wLGg9MDtoPGEuZmxvdy5saW5rcy5sZW5ndGg7aCsrKXt2YXIgZD1hLmZsb3cubGlua3NbaF07aWYoImNsb3Nlc3QiIT09dC5fZnVsbExheW91dC5ob3Zlcm1vZGV8fGEubGluay5wb2ludE51bWJlcj09PWQucG9pbnROdW1iZXIpe2EubGluay5wb2ludE51bWJlcj09PWQucG9pbnROdW1iZXImJihjPWgpLGQuZnVsbERhdGE9ZC50cmFjZSxzPWEubGluay50cmFjZS5saW5rO3ZhciBnPW0oZCksdj17dmFsdWVMYWJlbDpuLmZvcm1hdChhLnZhbHVlRm9ybWF0KShkLnZhbHVlKSthLnZhbHVlU3VmZml4fTtsLnB1c2goe3g6Z1swXSx5OmdbMV0sbmFtZTp2LnZhbHVlTGFiZWwsdGV4dDpbZC5sYWJlbHx8IiIsXytkLnNvdXJjZS5sYWJlbCx3K2QudGFyZ2V0LmxhYmVsLGQuY29uY2VudHJhdGlvbnNjYWxlP2srbi5mb3JtYXQoIiUwLjJmIikoZC5mbG93LmxhYmVsQ29uY2VudHJhdGlvbik6IiJdLmZpbHRlcih1KS5qb2luKCI8YnI+IiksY29sb3I6YihzLCJiZ2NvbG9yIil8fG8uYWRkT3BhY2l0eShkLmNvbG9yLDEpLGJvcmRlckNvbG9yOmIocywiYm9yZGVyY29sb3IiKSxmb250RmFtaWx5OmIocywiZm9udC5mYW1pbHkiKSxmb250U2l6ZTpiKHMsImZvbnQuc2l6ZSIpLGZvbnRDb2xvcjpiKHMsImZvbnQuY29sb3IiKSxuYW1lTGVuZ3RoOmIocywibmFtZWxlbmd0aCIpLHRleHRBbGlnbjpiKHMsImFsaWduIiksaWRlYWxBbGlnbjpuLmV2ZW50Lng8Z1swXT8icmlnaHQiOiJsZWZ0Iixob3ZlcnRlbXBsYXRlOnMuaG92ZXJ0ZW1wbGF0ZSxob3ZlcnRlbXBsYXRlTGFiZWxzOnYsZXZlbnREYXRhOltkXX0pfX1pLmxvbmVIb3ZlcihsLHtjb250YWluZXI6ci5faG92ZXJsYXllci5ub2RlKCksb3V0ZXJDb250YWluZXI6ci5fcGFwZXIubm9kZSgpLGdkOnQsYW5jaG9ySW5kZXg6Y30pLmVhY2goZnVuY3Rpb24oKXthLmxpbmsuY29uY2VudHJhdGlvbnNjYWxlfHxmKHRoaXMsLjY1KSxwKHRoaXMpfSl9fWZ1bmN0aW9uIG0odCl7dmFyIGUscjt0LmNpcmN1bGFyPyhlPSh0LmNpcmN1bGFyUGF0aERhdGEubGVmdElubmVyRXh0ZW50K3QuY2lyY3VsYXJQYXRoRGF0YS5yaWdodElubmVyRXh0ZW50KS8yLHI9dC5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsRnVsbEV4dGVudCk6KGU9KHQuc291cmNlLngxK3QudGFyZ2V0LngwKS8yLHI9KHQueTArdC55MSkvMik7dmFyIG49W2Uscl07cmV0dXJuInYiPT09dC50cmFjZS5vcmllbnRhdGlvbiYmbi5yZXZlcnNlKCksblswXSs9YS5wYXJlbnQudHJhbnNsYXRlWCxuWzFdKz1hLnBhcmVudC50cmFuc2xhdGVZLG59fSx1bmhvdmVyOmZ1bmN0aW9uKGUsYSxvKXshMSE9PXQuX2Z1bGxMYXlvdXQuaG92ZXJtb2RlJiYobi5zZWxlY3QoZSkuY2FsbCh4LmJpbmQoMCxhLG8sITApKSwic2tpcCIhPT1hLmxpbmsudHJhY2UubGluay5ob3ZlcmluZm8mJihhLmxpbmsuZnVsbERhdGE9YS5saW5rLnRyYWNlLHQuZW1pdCgicGxvdGx5X3VuaG92ZXIiLHtldmVudDpuLmV2ZW50LHBvaW50czpbYS5saW5rXX0pKSxpLmxvbmVVbmhvdmVyKHIuX2hvdmVybGF5ZXIubm9kZSgpKSl9LHNlbGVjdDpmdW5jdGlvbihlLHIpe3ZhciBhPXIubGluazthLm9yaWdpbmFsRXZlbnQ9bi5ldmVudCx0Ll9ob3ZlcmRhdGE9W2FdLGkuY2xpY2sodCx7dGFyZ2V0OiEwfSl9fSxub2RlRXZlbnRzOntob3ZlcjpmdW5jdGlvbihlLHIsYSl7ITEhPT10Ll9mdWxsTGF5b3V0LmhvdmVybW9kZSYmKG4uc2VsZWN0KGUpLmNhbGwodixyLGEpLCJza2lwIiE9PXIubm9kZS50cmFjZS5ub2RlLmhvdmVyaW5mbyYmKHIubm9kZS5mdWxsRGF0YT1yLm5vZGUudHJhY2UsdC5lbWl0KCJwbG90bHlfaG92ZXIiLHtldmVudDpuLmV2ZW50LHBvaW50czpbci5ub2RlXX0pKSl9LGZvbGxvdzpmdW5jdGlvbihlLGEpe2lmKCExIT09dC5fZnVsbExheW91dC5ob3Zlcm1vZGUpe3ZhciBvPWEubm9kZS50cmFjZS5ub2RlO2lmKCJub25lIiE9PW8uaG92ZXJpbmZvJiYic2tpcCIhPT1vLmhvdmVyaW5mbyl7dmFyIHM9bi5zZWxlY3QoZSkuc2VsZWN0KCIuIitsLm5vZGVSZWN0KSxjPXQuX2Z1bGxMYXlvdXQuX3BhcGVyZGl2Lm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxoPXMubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGQ9aC5sZWZ0LTItYy5sZWZ0LGc9aC5yaWdodCsyLWMubGVmdCx2PWgudG9wK2guaGVpZ2h0LzQtYy50b3AsbT17dmFsdWVMYWJlbDpuLmZvcm1hdChhLnZhbHVlRm9ybWF0KShhLm5vZGUudmFsdWUpK2EudmFsdWVTdWZmaXh9O2Eubm9kZS5mdWxsRGF0YT1hLm5vZGUudHJhY2U7dmFyIHk9aS5sb25lSG92ZXIoe3gwOmQseDE6Zyx5OnYsbmFtZTpuLmZvcm1hdChhLnZhbHVlRm9ybWF0KShhLm5vZGUudmFsdWUpK2EudmFsdWVTdWZmaXgsdGV4dDpbYS5ub2RlLmxhYmVsLFQrYS5ub2RlLnRhcmdldExpbmtzLmxlbmd0aCxNK2Eubm9kZS5zb3VyY2VMaW5rcy5sZW5ndGhdLmZpbHRlcih1KS5qb2luKCI8YnI+IiksY29sb3I6YihvLCJiZ2NvbG9yIil8fGEudGlueUNvbG9ySHVlLGJvcmRlckNvbG9yOmIobywiYm9yZGVyY29sb3IiKSxmb250RmFtaWx5OmIobywiZm9udC5mYW1pbHkiKSxmb250U2l6ZTpiKG8sImZvbnQuc2l6ZSIpLGZvbnRDb2xvcjpiKG8sImZvbnQuY29sb3IiKSxuYW1lTGVuZ3RoOmIobywibmFtZWxlbmd0aCIpLHRleHRBbGlnbjpiKG8sImFsaWduIiksaWRlYWxBbGlnbjoibGVmdCIsaG92ZXJ0ZW1wbGF0ZTpvLmhvdmVydGVtcGxhdGUsaG92ZXJ0ZW1wbGF0ZUxhYmVsczptLGV2ZW50RGF0YTpbYS5ub2RlXX0se2NvbnRhaW5lcjpyLl9ob3ZlcmxheWVyLm5vZGUoKSxvdXRlckNvbnRhaW5lcjpyLl9wYXBlci5ub2RlKCksZ2Q6dH0pO2YoeSwuODUpLHAoeSl9fX0sdW5ob3ZlcjpmdW5jdGlvbihlLGEsbyl7ITEhPT10Ll9mdWxsTGF5b3V0LmhvdmVybW9kZSYmKG4uc2VsZWN0KGUpLmNhbGwobSxhLG8pLCJza2lwIiE9PWEubm9kZS50cmFjZS5ub2RlLmhvdmVyaW5mbyYmKGEubm9kZS5mdWxsRGF0YT1hLm5vZGUudHJhY2UsdC5lbWl0KCJwbG90bHlfdW5ob3ZlciIse2V2ZW50Om4uZXZlbnQscG9pbnRzOlthLm5vZGVdfSkpLGkubG9uZVVuaG92ZXIoci5faG92ZXJsYXllci5ub2RlKCkpKX0sc2VsZWN0OmZ1bmN0aW9uKGUscixhKXt2YXIgbz1yLm5vZGU7by5vcmlnaW5hbEV2ZW50PW4uZXZlbnQsdC5faG92ZXJkYXRhPVtvXSxuLnNlbGVjdChlKS5jYWxsKG0scixhKSxpLmNsaWNrKHQse3RhcmdldDohMH0pfX19KX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTkyLCIuLi8uLi9jb21wb25lbnRzL2Z4Ijo2MzAsIi4uLy4uL2xpYiI6NzE3LCIuL2NvbnN0YW50cyI6MTExMywiLi9yZW5kZXIiOjExMTcsZDM6MTY1fV0sMTExNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2NvbnN0YW50cyIpLGE9dCgiZDMiKSxpPXQoInRpbnljb2xvcjIiKSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxzPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGw9dCgiQHBsb3RseS9kMy1zYW5rZXkiKSxjPXQoIkBwbG90bHkvZDMtc2Fua2V5LWNpcmN1bGFyIiksdT10KCJkMy1mb3JjZSIpLGg9dCgiLi4vLi4vbGliIiksZj10KCIuLi8uLi9saWIvZ3VwIikscD1mLmtleUZ1bixkPWYucmVwZWF0LGc9Zi51bndyYXAsdj10KCJkMy1pbnRlcnBvbGF0ZSIpLmludGVycG9sYXRlTnVtYmVyLG09dCgiLi4vLi4vcmVnaXN0cnkiKTtmdW5jdGlvbiB5KCl7dmFyIHQ9LjU7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKGUubGluay5jaXJjdWxhcilyZXR1cm4gcj1lLmxpbmssbj1yLndpZHRoLzIsYT1yLmNpcmN1bGFyUGF0aERhdGEsInRvcCI9PT1yLmNpcmN1bGFyTGlua1R5cGU/Ik0gIithLnRhcmdldFgrIiAiKyhhLnRhcmdldFkrbikrIiBMIithLnJpZ2h0SW5uZXJFeHRlbnQrIiAiKyhhLnRhcmdldFkrbikrIkEiKyhhLnJpZ2h0TGFyZ2VBcmNSYWRpdXMrbikrIiAiKyhhLnJpZ2h0U21hbGxBcmNSYWRpdXMrbikrIiAwIDAgMSAiKyhhLnJpZ2h0RnVsbEV4dGVudC1uKSsiICIrKGEudGFyZ2V0WS1hLnJpZ2h0U21hbGxBcmNSYWRpdXMpKyJMIisoYS5yaWdodEZ1bGxFeHRlbnQtbikrIiAiK2EudmVydGljYWxSaWdodElubmVyRXh0ZW50KyJBIisoYS5yaWdodExhcmdlQXJjUmFkaXVzK24pKyIgIisoYS5yaWdodExhcmdlQXJjUmFkaXVzK24pKyIgMCAwIDEgIithLnJpZ2h0SW5uZXJFeHRlbnQrIiAiKyhhLnZlcnRpY2FsRnVsbEV4dGVudC1uKSsiTCIrYS5sZWZ0SW5uZXJFeHRlbnQrIiAiKyhhLnZlcnRpY2FsRnVsbEV4dGVudC1uKSsiQSIrKGEubGVmdExhcmdlQXJjUmFkaXVzK24pKyIgIisoYS5sZWZ0TGFyZ2VBcmNSYWRpdXMrbikrIiAwIDAgMSAiKyhhLmxlZnRGdWxsRXh0ZW50K24pKyIgIithLnZlcnRpY2FsTGVmdElubmVyRXh0ZW50KyJMIisoYS5sZWZ0RnVsbEV4dGVudCtuKSsiICIrKGEuc291cmNlWS1hLmxlZnRTbWFsbEFyY1JhZGl1cykrIkEiKyhhLmxlZnRMYXJnZUFyY1JhZGl1cytuKSsiICIrKGEubGVmdFNtYWxsQXJjUmFkaXVzK24pKyIgMCAwIDEgIithLmxlZnRJbm5lckV4dGVudCsiICIrKGEuc291cmNlWStuKSsiTCIrYS5zb3VyY2VYKyIgIisoYS5zb3VyY2VZK24pKyJMIithLnNvdXJjZVgrIiAiKyhhLnNvdXJjZVktbikrIkwiK2EubGVmdElubmVyRXh0ZW50KyIgIisoYS5zb3VyY2VZLW4pKyJBIisoYS5sZWZ0TGFyZ2VBcmNSYWRpdXMtbikrIiAiKyhhLmxlZnRTbWFsbEFyY1JhZGl1cy1uKSsiIDAgMCAwICIrKGEubGVmdEZ1bGxFeHRlbnQtbikrIiAiKyhhLnNvdXJjZVktYS5sZWZ0U21hbGxBcmNSYWRpdXMpKyJMIisoYS5sZWZ0RnVsbEV4dGVudC1uKSsiICIrYS52ZXJ0aWNhbExlZnRJbm5lckV4dGVudCsiQSIrKGEubGVmdExhcmdlQXJjUmFkaXVzLW4pKyIgIisoYS5sZWZ0TGFyZ2VBcmNSYWRpdXMtbikrIiAwIDAgMCAiK2EubGVmdElubmVyRXh0ZW50KyIgIisoYS52ZXJ0aWNhbEZ1bGxFeHRlbnQrbikrIkwiK2EucmlnaHRJbm5lckV4dGVudCsiICIrKGEudmVydGljYWxGdWxsRXh0ZW50K24pKyJBIisoYS5yaWdodExhcmdlQXJjUmFkaXVzLW4pKyIgIisoYS5yaWdodExhcmdlQXJjUmFkaXVzLW4pKyIgMCAwIDAgIisoYS5yaWdodEZ1bGxFeHRlbnQrbikrIiAiK2EudmVydGljYWxSaWdodElubmVyRXh0ZW50KyJMIisoYS5yaWdodEZ1bGxFeHRlbnQrbikrIiAiKyhhLnRhcmdldFktYS5yaWdodFNtYWxsQXJjUmFkaXVzKSsiQSIrKGEucmlnaHRMYXJnZUFyY1JhZGl1cy1uKSsiICIrKGEucmlnaHRTbWFsbEFyY1JhZGl1cy1uKSsiIDAgMCAwICIrYS5yaWdodElubmVyRXh0ZW50KyIgIisoYS50YXJnZXRZLW4pKyJMIithLnRhcmdldFgrIiAiKyhhLnRhcmdldFktbikrIloiOiJNICIrYS50YXJnZXRYKyIgIisoYS50YXJnZXRZLW4pKyIgTCIrYS5yaWdodElubmVyRXh0ZW50KyIgIisoYS50YXJnZXRZLW4pKyJBIisoYS5yaWdodExhcmdlQXJjUmFkaXVzK24pKyIgIisoYS5yaWdodFNtYWxsQXJjUmFkaXVzK24pKyIgMCAwIDAgIisoYS5yaWdodEZ1bGxFeHRlbnQtbikrIiAiKyhhLnRhcmdldFkrYS5yaWdodFNtYWxsQXJjUmFkaXVzKSsiTCIrKGEucmlnaHRGdWxsRXh0ZW50LW4pKyIgIithLnZlcnRpY2FsUmlnaHRJbm5lckV4dGVudCsiQSIrKGEucmlnaHRMYXJnZUFyY1JhZGl1cytuKSsiICIrKGEucmlnaHRMYXJnZUFyY1JhZGl1cytuKSsiIDAgMCAwICIrYS5yaWdodElubmVyRXh0ZW50KyIgIisoYS52ZXJ0aWNhbEZ1bGxFeHRlbnQrbikrIkwiK2EubGVmdElubmVyRXh0ZW50KyIgIisoYS52ZXJ0aWNhbEZ1bGxFeHRlbnQrbikrIkEiKyhhLmxlZnRMYXJnZUFyY1JhZGl1cytuKSsiICIrKGEubGVmdExhcmdlQXJjUmFkaXVzK24pKyIgMCAwIDAgIisoYS5sZWZ0RnVsbEV4dGVudCtuKSsiICIrYS52ZXJ0aWNhbExlZnRJbm5lckV4dGVudCsiTCIrKGEubGVmdEZ1bGxFeHRlbnQrbikrIiAiKyhhLnNvdXJjZVkrYS5sZWZ0U21hbGxBcmNSYWRpdXMpKyJBIisoYS5sZWZ0TGFyZ2VBcmNSYWRpdXMrbikrIiAiKyhhLmxlZnRTbWFsbEFyY1JhZGl1cytuKSsiIDAgMCAwICIrYS5sZWZ0SW5uZXJFeHRlbnQrIiAiKyhhLnNvdXJjZVktbikrIkwiK2Euc291cmNlWCsiICIrKGEuc291cmNlWS1uKSsiTCIrYS5zb3VyY2VYKyIgIisoYS5zb3VyY2VZK24pKyJMIithLmxlZnRJbm5lckV4dGVudCsiICIrKGEuc291cmNlWStuKSsiQSIrKGEubGVmdExhcmdlQXJjUmFkaXVzLW4pKyIgIisoYS5sZWZ0U21hbGxBcmNSYWRpdXMtbikrIiAwIDAgMSAiKyhhLmxlZnRGdWxsRXh0ZW50LW4pKyIgIisoYS5zb3VyY2VZK2EubGVmdFNtYWxsQXJjUmFkaXVzKSsiTCIrKGEubGVmdEZ1bGxFeHRlbnQtbikrIiAiK2EudmVydGljYWxMZWZ0SW5uZXJFeHRlbnQrIkEiKyhhLmxlZnRMYXJnZUFyY1JhZGl1cy1uKSsiICIrKGEubGVmdExhcmdlQXJjUmFkaXVzLW4pKyIgMCAwIDEgIithLmxlZnRJbm5lckV4dGVudCsiICIrKGEudmVydGljYWxGdWxsRXh0ZW50LW4pKyJMIithLnJpZ2h0SW5uZXJFeHRlbnQrIiAiKyhhLnZlcnRpY2FsRnVsbEV4dGVudC1uKSsiQSIrKGEucmlnaHRMYXJnZUFyY1JhZGl1cy1uKSsiICIrKGEucmlnaHRMYXJnZUFyY1JhZGl1cy1uKSsiIDAgMCAxICIrKGEucmlnaHRGdWxsRXh0ZW50K24pKyIgIithLnZlcnRpY2FsUmlnaHRJbm5lckV4dGVudCsiTCIrKGEucmlnaHRGdWxsRXh0ZW50K24pKyIgIisoYS50YXJnZXRZK2EucmlnaHRTbWFsbEFyY1JhZGl1cykrIkEiKyhhLnJpZ2h0TGFyZ2VBcmNSYWRpdXMtbikrIiAiKyhhLnJpZ2h0U21hbGxBcmNSYWRpdXMtbikrIiAwIDAgMSAiK2EucmlnaHRJbm5lckV4dGVudCsiICIrKGEudGFyZ2V0WStuKSsiTCIrYS50YXJnZXRYKyIgIisoYS50YXJnZXRZK24pKyJaIjt2YXIgcixuLGEsaT1lLmxpbmsuc291cmNlLngxLG89ZS5saW5rLnRhcmdldC54MCxzPXYoaSxvKSxsPXModCksYz1zKDEtdCksdT1lLmxpbmsueTAtZS5saW5rLndpZHRoLzIsaD1lLmxpbmsueTArZS5saW5rLndpZHRoLzIsZj1lLmxpbmsueTEtZS5saW5rLndpZHRoLzIscD1lLmxpbmsueTErZS5saW5rLndpZHRoLzI7cmV0dXJuIk0iK2krIiwiK3UrIkMiK2wrIiwiK3UrIiAiK2MrIiwiK2YrIiAiK28rIiwiK2YrIkwiK28rIiwiK3ArIkMiK2MrIiwiK3ArIiAiK2wrIiwiK2grIiAiK2krIiwiK2grIloifX1mdW5jdGlvbiB4KHQpe3QuYXR0cigidHJhbnNmb3JtIixmdW5jdGlvbih0KXtyZXR1cm4idHJhbnNsYXRlKCIrdC5ub2RlLngwLnRvRml4ZWQoMykrIiwgIit0Lm5vZGUueTAudG9GaXhlZCgzKSsiKSJ9KX1mdW5jdGlvbiBiKHQpe3QuY2FsbCh4KX1mdW5jdGlvbiBfKHQsZSl7dC5jYWxsKGIpLGUuYXR0cigiZCIseSgpKX1mdW5jdGlvbiB3KHQpe3QuYXR0cigid2lkdGgiLGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5vZGUueDEtdC5ub2RlLngwfSkuYXR0cigiaGVpZ2h0IixmdW5jdGlvbih0KXtyZXR1cm4gdC52aXNpYmxlSGVpZ2h0fSl9ZnVuY3Rpb24gayh0KXtyZXR1cm4gdC5saW5rLndpZHRoPjF8fHQubGlua0xpbmVXaWR0aD4wfWZ1bmN0aW9uIFQodCl7cmV0dXJuInRyYW5zbGF0ZSgiK3QudHJhbnNsYXRlWCsiLCIrdC50cmFuc2xhdGVZKyIpIisodC5ob3Jpem9udGFsPyJtYXRyaXgoMSAwIDAgMSAwIDApIjoibWF0cml4KDAgMSAxIDAgMCAwKSIpfWZ1bmN0aW9uIE0odCl7cmV0dXJuInRyYW5zbGF0ZSgiKyh0Lmhvcml6b250YWw/MDp0LmxhYmVsWSkrIiAiKyh0Lmhvcml6b250YWw/dC5sYWJlbFk6MCkrIikifWZ1bmN0aW9uIEEodCl7cmV0dXJuIGEuc3ZnLmxpbmUoKShbW3QuaG9yaXpvbnRhbD90LmxlZnQ/LXQuc2l6ZUFjcm9zczp0LnZpc2libGVXaWR0aCtuLm5vZGVUZXh0T2Zmc2V0SG9yaXpvbnRhbDpuLm5vZGVUZXh0T2Zmc2V0SG9yaXpvbnRhbCwwXSxbdC5ob3Jpem9udGFsP3QubGVmdD8tbi5ub2RlVGV4dE9mZnNldEhvcml6b250YWw6dC5zaXplQWNyb3NzOnQudmlzaWJsZUhlaWdodC1uLm5vZGVUZXh0T2Zmc2V0SG9yaXpvbnRhbCwwXV0pfWZ1bmN0aW9uIFModCl7cmV0dXJuIHQuaG9yaXpvbnRhbD8ibWF0cml4KDEgMCAwIDEgMCAwKSI6Im1hdHJpeCgwIDEgMSAwIDAgMCkifWZ1bmN0aW9uIEUodCl7cmV0dXJuIHQuaG9yaXpvbnRhbD8ic2NhbGUoMSAxKSI6InNjYWxlKC0xIDEpIn1mdW5jdGlvbiBMKHQpe3JldHVybiB0LmRhcmtCYWNrZ3JvdW5kJiYhdC5ob3Jpem9udGFsPyJyZ2IoMjU1LDI1NSwyNTUpIjoicmdiKDAsMCwwKSJ9ZnVuY3Rpb24gQyh0KXtyZXR1cm4gdC5ob3Jpem9udGFsJiZ0LmxlZnQ/IjEwMCUiOiIwJSJ9ZnVuY3Rpb24gUCh0LGUscil7dC5vbigiLmJhc2ljIixudWxsKS5vbigibW91c2VvdmVyLmJhc2ljIixmdW5jdGlvbih0KXt0LmludGVyYWN0aW9uU3RhdGUuZHJhZ0luUHJvZ3Jlc3N8fHQucGFydE9mR3JvdXB8fChyLmhvdmVyKHRoaXMsdCxlKSx0LmludGVyYWN0aW9uU3RhdGUuaG92ZXJlZD1bdGhpcyx0XSl9KS5vbigibW91c2Vtb3ZlLmJhc2ljIixmdW5jdGlvbih0KXt0LmludGVyYWN0aW9uU3RhdGUuZHJhZ0luUHJvZ3Jlc3N8fHQucGFydE9mR3JvdXB8fChyLmZvbGxvdyh0aGlzLHQpLHQuaW50ZXJhY3Rpb25TdGF0ZS5ob3ZlcmVkPVt0aGlzLHRdKX0pLm9uKCJtb3VzZW91dC5iYXNpYyIsZnVuY3Rpb24odCl7dC5pbnRlcmFjdGlvblN0YXRlLmRyYWdJblByb2dyZXNzfHx0LnBhcnRPZkdyb3VwfHwoci51bmhvdmVyKHRoaXMsdCxlKSx0LmludGVyYWN0aW9uU3RhdGUuaG92ZXJlZD0hMSl9KS5vbigiY2xpY2suYmFzaWMiLGZ1bmN0aW9uKHQpe3QuaW50ZXJhY3Rpb25TdGF0ZS5ob3ZlcmVkJiYoci51bmhvdmVyKHRoaXMsdCxlKSx0LmludGVyYWN0aW9uU3RhdGUuaG92ZXJlZD0hMSksdC5pbnRlcmFjdGlvblN0YXRlLmRyYWdJblByb2dyZXNzfHx0LnBhcnRPZkdyb3VwfHxyLnNlbGVjdCh0aGlzLHQsZSl9KX1mdW5jdGlvbiBPKHQsZSxyLGkpe3ZhciBvPWEuYmVoYXZpb3IuZHJhZygpLm9yaWdpbihmdW5jdGlvbih0KXtyZXR1cm57eDp0Lm5vZGUueDArdC52aXNpYmxlV2lkdGgvMix5OnQubm9kZS55MCt0LnZpc2libGVIZWlnaHQvMn19KS5vbigiZHJhZ3N0YXJ0IixmdW5jdGlvbihhKXtpZigiZml4ZWQiIT09YS5hcnJhbmdlbWVudCYmKGguZW5zdXJlU2luZ2xlKGkuX2Z1bGxMYXlvdXQuX2luZm9sYXllciwiZyIsImRyYWdjb3ZlciIsZnVuY3Rpb24odCl7aS5fZnVsbExheW91dC5fZHJhZ0NvdmVyPXR9KSxoLnJhaXNlVG9Ub3AodGhpcyksYS5pbnRlcmFjdGlvblN0YXRlLmRyYWdJblByb2dyZXNzPWEubm9kZSxJKGEubm9kZSksYS5pbnRlcmFjdGlvblN0YXRlLmhvdmVyZWQmJihyLm5vZGVFdmVudHMudW5ob3Zlci5hcHBseSgwLGEuaW50ZXJhY3Rpb25TdGF0ZS5ob3ZlcmVkKSxhLmludGVyYWN0aW9uU3RhdGUuaG92ZXJlZD0hMSksInNuYXAiPT09YS5hcnJhbmdlbWVudCkpe3ZhciBvPWEudHJhY2VJZCsifCIrYS5rZXk7YS5mb3JjZUxheW91dHNbb10/YS5mb3JjZUxheW91dHNbb10uYWxwaGEoMSk6ZnVuY3Rpb24odCxlLHIsYSl7IWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXRbZV0ueT0odFtlXS55MCt0W2VdLnkxKS8yLHRbZV0ueD0odFtlXS54MCt0W2VdLngxKS8yfShyLmdyYXBoLm5vZGVzKTt2YXIgaT1yLmdyYXBoLm5vZGVzLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC5vcmlnaW5hbFg9PT1yLm5vZGUub3JpZ2luYWxYfSkuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiF0LnBhcnRPZkdyb3VwfSk7ci5mb3JjZUxheW91dHNbZV09dS5mb3JjZVNpbXVsYXRpb24oaSkuYWxwaGFEZWNheSgwKS5mb3JjZSgiY29sbGlkZSIsdS5mb3JjZUNvbGxpZGUoKS5yYWRpdXMoZnVuY3Rpb24odCl7cmV0dXJuIHQuZHkvMityLm5vZGVQYWQvMn0pLnN0cmVuZ3RoKDEpLml0ZXJhdGlvbnMobi5mb3JjZUl0ZXJhdGlvbnMpKS5mb3JjZSgiY29uc3RyYWluIixmdW5jdGlvbih0LGUscixhKXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIHQ9MCxpPTA7aTxyLmxlbmd0aDtpKyspe3ZhciBvPXJbaV07bz09PWEuaW50ZXJhY3Rpb25TdGF0ZS5kcmFnSW5Qcm9ncmVzcz8oby54PW8ubGFzdERyYWdnZWRYLG8ueT1vLmxhc3REcmFnZ2VkWSk6KG8udng9KG8ub3JpZ2luYWxYLW8ueCkvbi5mb3JjZVRpY2tzUGVyRnJhbWUsby55PU1hdGgubWluKGEuc2l6ZS1vLmR5LzIsTWF0aC5tYXgoby5keS8yLG8ueSkpKSx0PU1hdGgubWF4KHQsTWF0aC5hYnMoby52eCksTWF0aC5hYnMoby52eSkpfSFhLmludGVyYWN0aW9uU3RhdGUuZHJhZ0luUHJvZ3Jlc3MmJnQ8LjEmJmEuZm9yY2VMYXlvdXRzW2VdLmFscGhhKCk+MCYmYS5mb3JjZUxheW91dHNbZV0uYWxwaGEoMCl9fSgwLGUsaSxyKSkuc3RvcCgpfSgwLG8sYSksZnVuY3Rpb24odCxlLHIsYSxpKXt3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uIG8oKXt2YXIgcztmb3Iocz0wO3M8bi5mb3JjZVRpY2tzUGVyRnJhbWU7cysrKXIuZm9yY2VMYXlvdXRzW2FdLnRpY2soKTt2YXIgbD1yLmdyYXBoLm5vZGVzO2lmKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXRbZV0ueTA9dFtlXS55LXRbZV0uZHkvMix0W2VdLnkxPXRbZV0ueTArdFtlXS5keSx0W2VdLngwPXRbZV0ueC10W2VdLmR4LzIsdFtlXS54MT10W2VdLngwK3RbZV0uZHh9KGwpLHIuc2Fua2V5LnVwZGF0ZShyLmdyYXBoKSxfKHQuZmlsdGVyKEQocikpLGUpLHIuZm9yY2VMYXlvdXRzW2FdLmFscGhhKCk+MCl3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKG8pO2Vsc2V7dmFyIGM9ci5ub2RlLm9yaWdpbmFsWDtyLm5vZGUueDA9Yy1yLnZpc2libGVXaWR0aC8yLHIubm9kZS54MT1jK3IudmlzaWJsZVdpZHRoLzIseihyLGkpfX0pfSh0LGUsYSxvLGkpfX0pLm9uKCJkcmFnIixmdW5jdGlvbihyKXtpZigiZml4ZWQiIT09ci5hcnJhbmdlbWVudCl7dmFyIG49YS5ldmVudC54LGk9YS5ldmVudC55OyJzbmFwIj09PXIuYXJyYW5nZW1lbnQ/KHIubm9kZS54MD1uLXIudmlzaWJsZVdpZHRoLzIsci5ub2RlLngxPW4rci52aXNpYmxlV2lkdGgvMixyLm5vZGUueTA9aS1yLnZpc2libGVIZWlnaHQvMixyLm5vZGUueTE9aStyLnZpc2libGVIZWlnaHQvMik6KCJmcmVlZm9ybSI9PT1yLmFycmFuZ2VtZW50JiYoci5ub2RlLngwPW4tci52aXNpYmxlV2lkdGgvMixyLm5vZGUueDE9bityLnZpc2libGVXaWR0aC8yKSxpPU1hdGgubWF4KDAsTWF0aC5taW4oci5zaXplLXIudmlzaWJsZUhlaWdodC8yLGkpKSxyLm5vZGUueTA9aS1yLnZpc2libGVIZWlnaHQvMixyLm5vZGUueTE9aStyLnZpc2libGVIZWlnaHQvMiksSShyLm5vZGUpLCJzbmFwIiE9PXIuYXJyYW5nZW1lbnQmJihyLnNhbmtleS51cGRhdGUoci5ncmFwaCksXyh0LmZpbHRlcihEKHIpKSxlKSl9fSkub24oImRyYWdlbmQiLGZ1bmN0aW9uKHQpe2lmKCJmaXhlZCIhPT10LmFycmFuZ2VtZW50KXt0LmludGVyYWN0aW9uU3RhdGUuZHJhZ0luUHJvZ3Jlc3M9ITE7Zm9yKHZhciBlPTA7ZTx0Lm5vZGUuY2hpbGRyZW5Ob2Rlcy5sZW5ndGg7ZSsrKXQubm9kZS5jaGlsZHJlbk5vZGVzW2VdLng9dC5ub2RlLngsdC5ub2RlLmNoaWxkcmVuTm9kZXNbZV0ueT10Lm5vZGUueTsic25hcCIhPT10LmFycmFuZ2VtZW50JiZ6KHQsaSl9fSk7dC5vbigiLmRyYWciLG51bGwpLmNhbGwobyl9ZnVuY3Rpb24geih0LGUpe2Zvcih2YXIgcj1bXSxuPVtdLGE9MDthPHQuZ3JhcGgubm9kZXMubGVuZ3RoO2ErKyl7dmFyIGk9KHQuZ3JhcGgubm9kZXNbYV0ueDArdC5ncmFwaC5ub2Rlc1thXS54MSkvMixvPSh0LmdyYXBoLm5vZGVzW2FdLnkwK3QuZ3JhcGgubm9kZXNbYV0ueTEpLzI7ci5wdXNoKGkvdC5maWd1cmUud2lkdGgpLG4ucHVzaChvL3QuZmlndXJlLmhlaWdodCl9bS5jYWxsKCJfZ3VpUmVzdHlsZSIsZSx7Im5vZGUueCI6W3JdLCJub2RlLnkiOltuXX0sdC50cmFjZS5pbmRleCkudGhlbihmdW5jdGlvbigpe2UuX2Z1bGxMYXlvdXQuX2RyYWdDb3ZlciYmZS5fZnVsbExheW91dC5fZHJhZ0NvdmVyLnJlbW92ZSgpfSl9ZnVuY3Rpb24gSSh0KXt0Lmxhc3REcmFnZ2VkWD10LngwK3QuZHgvMix0Lmxhc3REcmFnZ2VkWT10LnkwK3QuZHkvMn1mdW5jdGlvbiBEKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZS5ub2RlLm9yaWdpbmFsWD09PXQubm9kZS5vcmlnaW5hbFh9fWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscix1LGYpe3ZhciB2PSExO2guZW5zdXJlU2luZ2xlKHQuX2Z1bGxMYXlvdXQuX2luZm9sYXllciwiZyIsImZpcnN0LXJlbmRlciIsZnVuY3Rpb24oKXt2PSEwfSk7dmFyIG09dC5fZnVsbExheW91dC5fZHJhZ0NvdmVyLGI9ci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIGcodCkudHJhY2UudmlzaWJsZX0pLm1hcChmdW5jdGlvbih0LGUscil7dmFyIGEsbz1nKGUpLHM9by50cmFjZSx1PXMuZG9tYWluLGY9ImgiPT09cy5vcmllbnRhdGlvbixwPXMubm9kZS5wYWQsZD1zLm5vZGUudGhpY2tuZXNzLHY9dC53aWR0aCoodS54WzFdLXUueFswXSksbT10LmhlaWdodCoodS55WzFdLXUueVswXSkseT1vLl9ub2Rlcyx4PW8uX2xpbmtzLGI9by5jaXJjdWxhcjsoYT1iP2Muc2Fua2V5Q2lyY3VsYXIoKS5jaXJjdWxhckxpbmtHYXAoMCk6bC5zYW5rZXkoKSkuaXRlcmF0aW9ucyhuLnNhbmtleUl0ZXJhdGlvbnMpLnNpemUoZj9bdixtXTpbbSx2XSkubm9kZVdpZHRoKGQpLm5vZGVQYWRkaW5nKHApLm5vZGVJZChmdW5jdGlvbih0KXtyZXR1cm4gdC5wb2ludE51bWJlcn0pLm5vZGVzKHkpLmxpbmtzKHgpO3ZhciBfLHcsayxUPWEoKTtmb3IodmFyIE0gaW4gYS5ub2RlUGFkZGluZygpPHAmJmgud2Fybigibm9kZS5wYWQgd2FzIHJlZHVjZWQgdG8gIixhLm5vZGVQYWRkaW5nKCksIiB0byBmaXQgd2l0aGluIHRoZSBmaWd1cmUuIiksby5fZ3JvdXBMb29rdXApe3ZhciBBLFM9cGFyc2VJbnQoby5fZ3JvdXBMb29rdXBbTV0pO2ZvcihfPTA7XzxULm5vZGVzLmxlbmd0aDtfKyspaWYoVC5ub2Rlc1tfXS5wb2ludE51bWJlcj09PVMpe0E9VC5ub2Rlc1tfXTticmVha31pZihBKXt2YXIgRT17cG9pbnROdW1iZXI6cGFyc2VJbnQoTSkseDA6QS54MCx4MTpBLngxLHkwOkEueTAseTE6QS55MSxwYXJ0T2ZHcm91cDohMCxzb3VyY2VMaW5rczpbXSx0YXJnZXRMaW5rczpbXX07VC5ub2Rlcy51bnNoaWZ0KEUpLEEuY2hpbGRyZW5Ob2Rlcy51bnNoaWZ0KEUpfX1pZihmdW5jdGlvbigpe2ZvcihfPTA7XzxULm5vZGVzLmxlbmd0aDtfKyspe3ZhciB0LGUscj1ULm5vZGVzW19dLG49e307Zm9yKHc9MDt3PHIudGFyZ2V0TGlua3MubGVuZ3RoO3crKyl0PShlPXIudGFyZ2V0TGlua3Nbd10pLnNvdXJjZS5wb2ludE51bWJlcisiOiIrZS50YXJnZXQucG9pbnROdW1iZXIsbi5oYXNPd25Qcm9wZXJ0eSh0KXx8KG5bdF09W10pLG5bdF0ucHVzaChlKTt2YXIgYT1PYmplY3Qua2V5cyhuKTtmb3Iodz0wO3c8YS5sZW5ndGg7dysrKXt2YXIgbz1uW3Q9YVt3XV0scz0wLGw9e307Zm9yKGs9MDtrPG8ubGVuZ3RoO2srKylsWyhlPW9ba10pLmxhYmVsXXx8KGxbZS5sYWJlbF09MCksbFtlLmxhYmVsXSs9ZS52YWx1ZSxzKz1lLnZhbHVlO2ZvcihrPTA7azxvLmxlbmd0aDtrKyspKGU9b1trXSkuZmxvdz17dmFsdWU6cyxsYWJlbENvbmNlbnRyYXRpb246bFtlLmxhYmVsXS9zLGNvbmNlbnRyYXRpb246ZS52YWx1ZS9zLGxpbmtzOm99LGUuY29uY2VudHJhdGlvbnNjYWxlJiYoZS5jb2xvcj1pKGUuY29uY2VudHJhdGlvbnNjYWxlKGUuZmxvdy5sYWJlbENvbmNlbnRyYXRpb24pKSl9dmFyIGM9MDtmb3Iodz0wO3c8ci5zb3VyY2VMaW5rcy5sZW5ndGg7dysrKWMrPXIuc291cmNlTGlua3Nbd10udmFsdWU7Zm9yKHc9MDt3PHIuc291cmNlTGlua3MubGVuZ3RoO3crKykoZT1yLnNvdXJjZUxpbmtzW3ddKS5jb25jZW50cmF0aW9uT3V0PWUudmFsdWUvYzt2YXIgdT0wO2Zvcih3PTA7dzxyLnRhcmdldExpbmtzLmxlbmd0aDt3KyspdSs9ci50YXJnZXRMaW5rc1t3XS52YWx1ZTtmb3Iodz0wO3c8ci50YXJnZXRMaW5rcy5sZW5ndGg7dysrKShlPXIudGFyZ2V0TGlua3Nbd10pLmNvbmNlbnJhdGlvbkluPWUudmFsdWUvdX19KCkscy5ub2RlLngubGVuZ3RoJiZzLm5vZGUueS5sZW5ndGgpe2ZvcihfPTA7XzxNYXRoLm1pbihzLm5vZGUueC5sZW5ndGgscy5ub2RlLnkubGVuZ3RoLFQubm9kZXMubGVuZ3RoKTtfKyspaWYocy5ub2RlLnhbX10mJnMubm9kZS55W19dKXt2YXIgTD1bcy5ub2RlLnhbX10qdixzLm5vZGUueVtfXSptXTtULm5vZGVzW19dLngwPUxbMF0tZC8yLFQubm9kZXNbX10ueDE9TFswXStkLzI7dmFyIEM9VC5ub2Rlc1tfXS55MS1ULm5vZGVzW19dLnkwO1Qubm9kZXNbX10ueTA9TFsxXS1DLzIsVC5ub2Rlc1tfXS55MT1MWzFdK0MvMn0ic25hcCI9PT1zLmFycmFuZ2VtZW50JiZmdW5jdGlvbih0KXt0LmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGUscixuLGE9MCxpPXQubGVuZ3RoO2Zvcih0LnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC55MC1lLnkwfSksbj0wO248aTsrK24pKGU9dFtuXSkueTA+PWF8fChyPWEtZS55MCk+MWUtNiYmKGUueTArPXIsZS55MSs9ciksYT1lLnkxK3B9KX0oZnVuY3Rpb24odCl7dmFyIGUscixuPXQubWFwKGZ1bmN0aW9uKHQsZSl7cmV0dXJue3gwOnQueDAsaW5kZXg6ZX19KS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQueDAtZS54MH0pLGE9W10saT0tMSxvPS0xLzA7Zm9yKF89MDtfPG4ubGVuZ3RoO18rKyl7dmFyIHM9dFtuW19dLmluZGV4XTtzLngwPm8rZCYmKGkrPTEsZT1zLngwKSxvPXMueDAsYVtpXXx8KGFbaV09W10pLGFbaV0ucHVzaChzKSxyPWUtcy54MCxzLngwKz1yLHMueDErPXJ9cmV0dXJuIGF9KHk9VC5ub2RlcykpLGEudXBkYXRlKFQpfXJldHVybntjaXJjdWxhcjpiLGtleTpyLHRyYWNlOnMsZ3VpZDpoLnJhbmRzdHIoKSxob3Jpem9udGFsOmYsd2lkdGg6dixoZWlnaHQ6bSxub2RlUGFkOnMubm9kZS5wYWQsbm9kZUxpbmVDb2xvcjpzLm5vZGUubGluZS5jb2xvcixub2RlTGluZVdpZHRoOnMubm9kZS5saW5lLndpZHRoLGxpbmtMaW5lQ29sb3I6cy5saW5rLmxpbmUuY29sb3IsbGlua0xpbmVXaWR0aDpzLmxpbmsubGluZS53aWR0aCx2YWx1ZUZvcm1hdDpzLnZhbHVlZm9ybWF0LHZhbHVlU3VmZml4OnMudmFsdWVzdWZmaXgsdGV4dEZvbnQ6cy50ZXh0Zm9udCx0cmFuc2xhdGVYOnUueFswXSp0LndpZHRoK3QubWFyZ2luLmwsdHJhbnNsYXRlWTp0LmhlaWdodC11LnlbMV0qdC5oZWlnaHQrdC5tYXJnaW4udCxkcmFnUGFyYWxsZWw6Zj9tOnYsZHJhZ1BlcnBlbmRpY3VsYXI6Zj92Om0sYXJyYW5nZW1lbnQ6cy5hcnJhbmdlbWVudCxzYW5rZXk6YSxncmFwaDpULGZvcmNlTGF5b3V0czp7fSxpbnRlcmFjdGlvblN0YXRlOntkcmFnSW5Qcm9ncmVzczohMSxob3ZlcmVkOiExfX19LmJpbmQobnVsbCx1KSksXz1lLnNlbGVjdEFsbCgiLiIrbi5jbi5zYW5rZXkpLmRhdGEoYixwKTtfLmV4aXQoKS5yZW1vdmUoKSxfLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChuLmNuLnNhbmtleSwhMCkuc3R5bGUoImJveC1zaXppbmciLCJjb250ZW50LWJveCIpLnN0eWxlKCJwb3NpdGlvbiIsImFic29sdXRlIikuc3R5bGUoImxlZnQiLDApLnN0eWxlKCJzaGFwZS1yZW5kZXJpbmciLCJnZW9tZXRyaWNQcmVjaXNpb24iKS5zdHlsZSgicG9pbnRlci1ldmVudHMiLCJhdXRvIikuYXR0cigidHJhbnNmb3JtIixUKSxfLmVhY2goZnVuY3Rpb24oZSxyKXt0Ll9mdWxsRGF0YVtyXS5fc2Fua2V5PWU7dmFyIG49ImJnc2Fua2V5LSIrZS50cmFjZS51aWQrIi0iK3I7aC5lbnN1cmVTaW5nbGUodC5fZnVsbExheW91dC5fZHJhZ2dlcnMsInJlY3QiLG4pLHQuX2Z1bGxEYXRhW3JdLl9iZ1JlY3Q9YS5zZWxlY3QoIi4iK24pLHQuX2Z1bGxEYXRhW3JdLl9iZ1JlY3Quc3R5bGUoInBvaW50ZXItZXZlbnRzIiwiYWxsIikuYXR0cigid2lkdGgiLGUud2lkdGgpLmF0dHIoImhlaWdodCIsZS5oZWlnaHQpLmF0dHIoIngiLGUudHJhbnNsYXRlWCkuYXR0cigieSIsZS50cmFuc2xhdGVZKS5jbGFzc2VkKCJiZ3NhbmtleSIsITApLnN0eWxlKHtmaWxsOiJ0cmFuc3BhcmVudCIsInN0cm9rZS13aWR0aCI6MH0pfSksXy50cmFuc2l0aW9uKCkuZWFzZShuLmVhc2UpLmR1cmF0aW9uKG4uZHVyYXRpb24pLmF0dHIoInRyYW5zZm9ybSIsVCk7dmFyIHo9Xy5zZWxlY3RBbGwoIi4iK24uY24uc2Fua2V5TGlua3MpLmRhdGEoZCxwKTt6LmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChuLmNuLnNhbmtleUxpbmtzLCEwKS5zdHlsZSgiZmlsbCIsIm5vbmUiKTt2YXIgST16LnNlbGVjdEFsbCgiLiIrbi5jbi5zYW5rZXlMaW5rKS5kYXRhKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdyYXBoLmxpbmtzLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC52YWx1ZX0pLm1hcChmdW5jdGlvbih0LGUscil7dmFyIG49aShlLmNvbG9yKSxhPWUuc291cmNlLmxhYmVsKyJ8IitlLnRhcmdldC5sYWJlbCsiX18iK3I7cmV0dXJuIGUudHJhY2U9dC50cmFjZSxlLmN1cnZlTnVtYmVyPXQudHJhY2UuaW5kZXgse2NpcmN1bGFyOnQuY2lyY3VsYXIsa2V5OmEsdHJhY2VJZDp0LmtleSxwb2ludE51bWJlcjplLnBvaW50TnVtYmVyLGxpbms6ZSx0aW55Q29sb3JIdWU6by50aW55UkdCKG4pLHRpbnlDb2xvckFscGhhOm4uZ2V0QWxwaGEoKSxsaW5rUGF0aDp5LGxpbmtMaW5lQ29sb3I6dC5saW5rTGluZUNvbG9yLGxpbmtMaW5lV2lkdGg6dC5saW5rTGluZVdpZHRoLHZhbHVlRm9ybWF0OnQudmFsdWVGb3JtYXQsdmFsdWVTdWZmaXg6dC52YWx1ZVN1ZmZpeCxzYW5rZXk6dC5zYW5rZXkscGFyZW50OnQsaW50ZXJhY3Rpb25TdGF0ZTp0LmludGVyYWN0aW9uU3RhdGUsZmxvdzplLmZsb3d9fS5iaW5kKG51bGwsdCkpfSxwKTtJLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZChuLmNuLnNhbmtleUxpbmssITApLmNhbGwoUCxfLGYubGlua0V2ZW50cyksSS5zdHlsZSgic3Ryb2tlIixmdW5jdGlvbih0KXtyZXR1cm4gayh0KT9vLnRpbnlSR0IoaSh0LmxpbmtMaW5lQ29sb3IpKTp0LnRpbnlDb2xvckh1ZX0pLnN0eWxlKCJzdHJva2Utb3BhY2l0eSIsZnVuY3Rpb24odCl7cmV0dXJuIGsodCk/by5vcGFjaXR5KHQubGlua0xpbmVDb2xvcik6dC50aW55Q29sb3JBbHBoYX0pLnN0eWxlKCJmaWxsIixmdW5jdGlvbih0KXtyZXR1cm4gdC50aW55Q29sb3JIdWV9KS5zdHlsZSgiZmlsbC1vcGFjaXR5IixmdW5jdGlvbih0KXtyZXR1cm4gdC50aW55Q29sb3JBbHBoYX0pLnN0eWxlKCJzdHJva2Utd2lkdGgiLGZ1bmN0aW9uKHQpe3JldHVybiBrKHQpP3QubGlua0xpbmVXaWR0aDoxfSkuYXR0cigiZCIseSgpKSxJLnN0eWxlKCJvcGFjaXR5IixmdW5jdGlvbigpe3JldHVybiB0Ll9jb250ZXh0LnN0YXRpY1Bsb3R8fHZ8fG0/MTowfSkudHJhbnNpdGlvbigpLmVhc2Uobi5lYXNlKS5kdXJhdGlvbihuLmR1cmF0aW9uKS5zdHlsZSgib3BhY2l0eSIsMSksSS5leGl0KCkudHJhbnNpdGlvbigpLmVhc2Uobi5lYXNlKS5kdXJhdGlvbihuLmR1cmF0aW9uKS5zdHlsZSgib3BhY2l0eSIsMCkucmVtb3ZlKCk7dmFyIEQ9Xy5zZWxlY3RBbGwoIi4iK24uY24uc2Fua2V5Tm9kZVNldCkuZGF0YShkLHApO0QuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKG4uY24uc2Fua2V5Tm9kZVNldCwhMCksRC5zdHlsZSgiY3Vyc29yIixmdW5jdGlvbih0KXtzd2l0Y2godC5hcnJhbmdlbWVudCl7Y2FzZSJmaXhlZCI6cmV0dXJuImRlZmF1bHQiO2Nhc2UicGVycGVuZGljdWxhciI6cmV0dXJuIm5zLXJlc2l6ZSI7ZGVmYXVsdDpyZXR1cm4ibW92ZSJ9fSk7dmFyIFI9RC5zZWxlY3RBbGwoIi4iK24uY24uc2Fua2V5Tm9kZSkuZGF0YShmdW5jdGlvbih0KXt2YXIgZT10LmdyYXBoLm5vZGVzO3JldHVybiBmdW5jdGlvbih0KXt2YXIgZSxyPVtdO2ZvcihlPTA7ZTx0Lmxlbmd0aDtlKyspdFtlXS5vcmlnaW5hbFg9KHRbZV0ueDArdFtlXS54MSkvMix0W2VdLm9yaWdpbmFsWT0odFtlXS55MCt0W2VdLnkxKS8yLC0xPT09ci5pbmRleE9mKHRbZV0ub3JpZ2luYWxYKSYmci5wdXNoKHRbZV0ub3JpZ2luYWxYKTtmb3Ioci5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQtZX0pLGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdLm9yaWdpbmFsTGF5ZXJJbmRleD1yLmluZGV4T2YodFtlXS5vcmlnaW5hbFgpLHRbZV0ub3JpZ2luYWxMYXllcj10W2VdLm9yaWdpbmFsTGF5ZXJJbmRleC8oci5sZW5ndGgtMSl9KGUpLGUubWFwKGZ1bmN0aW9uKHQsZSl7dmFyIHI9aShlLmNvbG9yKSxhPW4ubm9kZVBhZEFjcm9zcyxzPXQubm9kZVBhZC8yO2UuZHg9ZS54MS1lLngwLGUuZHk9ZS55MS1lLnkwO3ZhciBsPWUuZHgsYz1NYXRoLm1heCguNSxlLmR5KSx1PSJub2RlXyIrZS5wb2ludE51bWJlcjtyZXR1cm4gZS5ncm91cCYmKHU9aC5yYW5kc3RyKCkpLGUudHJhY2U9dC50cmFjZSxlLmN1cnZlTnVtYmVyPXQudHJhY2UuaW5kZXgse2luZGV4OmUucG9pbnROdW1iZXIsa2V5OnUscGFydE9mR3JvdXA6ZS5wYXJ0T2ZHcm91cHx8ITEsZ3JvdXA6ZS5ncm91cCx0cmFjZUlkOnQua2V5LHRyYWNlOnQudHJhY2Usbm9kZTplLG5vZGVQYWQ6dC5ub2RlUGFkLG5vZGVMaW5lQ29sb3I6dC5ub2RlTGluZUNvbG9yLG5vZGVMaW5lV2lkdGg6dC5ub2RlTGluZVdpZHRoLHRleHRGb250OnQudGV4dEZvbnQsc2l6ZTp0Lmhvcml6b250YWw/dC5oZWlnaHQ6dC53aWR0aCx2aXNpYmxlV2lkdGg6TWF0aC5jZWlsKGwpLHZpc2libGVIZWlnaHQ6Yyx6b25lWDotYSx6b25lWTotcyx6b25lV2lkdGg6bCsyKmEsem9uZUhlaWdodDpjKzIqcyxsYWJlbFk6dC5ob3Jpem9udGFsP2UuZHkvMisxOmUuZHgvMisxLGxlZnQ6MT09PWUub3JpZ2luYWxMYXllcixzaXplQWNyb3NzOnQud2lkdGgsZm9yY2VMYXlvdXRzOnQuZm9yY2VMYXlvdXRzLGhvcml6b250YWw6dC5ob3Jpem9udGFsLGRhcmtCYWNrZ3JvdW5kOnIuZ2V0QnJpZ2h0bmVzcygpPD0xMjgsdGlueUNvbG9ySHVlOm8udGlueVJHQihyKSx0aW55Q29sb3JBbHBoYTpyLmdldEFscGhhKCksdmFsdWVGb3JtYXQ6dC52YWx1ZUZvcm1hdCx2YWx1ZVN1ZmZpeDp0LnZhbHVlU3VmZml4LHNhbmtleTp0LnNhbmtleSxncmFwaDp0LmdyYXBoLGFycmFuZ2VtZW50OnQuYXJyYW5nZW1lbnQsdW5pcXVlTm9kZUxhYmVsUGF0aElkOlt0Lmd1aWQsdC5rZXksdV0uam9pbigiXyIpLGludGVyYWN0aW9uU3RhdGU6dC5pbnRlcmFjdGlvblN0YXRlLGZpZ3VyZTp0fX0uYmluZChudWxsLHQpKX0scCk7Ui5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQobi5jbi5zYW5rZXlOb2RlLCEwKS5jYWxsKHgpLnN0eWxlKCJvcGFjaXR5IixmdW5jdGlvbihlKXtyZXR1cm4hdC5fY29udGV4dC5zdGF0aWNQbG90JiYhdnx8ZS5wYXJ0T2ZHcm91cD8wOjF9KSxSLmNhbGwoUCxfLGYubm9kZUV2ZW50cykuY2FsbChPLEksZix0KSxSLnRyYW5zaXRpb24oKS5lYXNlKG4uZWFzZSkuZHVyYXRpb24obi5kdXJhdGlvbikuY2FsbCh4KS5zdHlsZSgib3BhY2l0eSIsZnVuY3Rpb24odCl7cmV0dXJuIHQucGFydE9mR3JvdXA/MDoxfSksUi5leGl0KCkudHJhbnNpdGlvbigpLmVhc2Uobi5lYXNlKS5kdXJhdGlvbihuLmR1cmF0aW9uKS5zdHlsZSgib3BhY2l0eSIsMCkucmVtb3ZlKCk7dmFyIEY9Ui5zZWxlY3RBbGwoIi4iK24uY24ubm9kZVJlY3QpLmRhdGEoZCk7Ri5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmNsYXNzZWQobi5jbi5ub2RlUmVjdCwhMCkuY2FsbCh3KSxGLnN0eWxlKCJzdHJva2Utd2lkdGgiLGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5vZGVMaW5lV2lkdGh9KS5zdHlsZSgic3Ryb2tlIixmdW5jdGlvbih0KXtyZXR1cm4gby50aW55UkdCKGkodC5ub2RlTGluZUNvbG9yKSl9KS5zdHlsZSgic3Ryb2tlLW9wYWNpdHkiLGZ1bmN0aW9uKHQpe3JldHVybiBvLm9wYWNpdHkodC5ub2RlTGluZUNvbG9yKX0pLnN0eWxlKCJmaWxsIixmdW5jdGlvbih0KXtyZXR1cm4gdC50aW55Q29sb3JIdWV9KS5zdHlsZSgiZmlsbC1vcGFjaXR5IixmdW5jdGlvbih0KXtyZXR1cm4gdC50aW55Q29sb3JBbHBoYX0pLEYudHJhbnNpdGlvbigpLmVhc2Uobi5lYXNlKS5kdXJhdGlvbihuLmR1cmF0aW9uKS5jYWxsKHcpO3ZhciBCPVIuc2VsZWN0QWxsKCIuIituLmNuLm5vZGVDYXB0dXJlKS5kYXRhKGQpO0IuZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5jbGFzc2VkKG4uY24ubm9kZUNhcHR1cmUsITApLnN0eWxlKCJmaWxsLW9wYWNpdHkiLDApLEIuYXR0cigieCIsZnVuY3Rpb24odCl7cmV0dXJuIHQuem9uZVh9KS5hdHRyKCJ5IixmdW5jdGlvbih0KXtyZXR1cm4gdC56b25lWX0pLmF0dHIoIndpZHRoIixmdW5jdGlvbih0KXtyZXR1cm4gdC56b25lV2lkdGh9KS5hdHRyKCJoZWlnaHQiLGZ1bmN0aW9uKHQpe3JldHVybiB0LnpvbmVIZWlnaHR9KTt2YXIgTj1SLnNlbGVjdEFsbCgiLiIrbi5jbi5ub2RlQ2VudGVyZWQpLmRhdGEoZCk7Ti5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQobi5jbi5ub2RlQ2VudGVyZWQsITApLmF0dHIoInRyYW5zZm9ybSIsTSksTi50cmFuc2l0aW9uKCkuZWFzZShuLmVhc2UpLmR1cmF0aW9uKG4uZHVyYXRpb24pLmF0dHIoInRyYW5zZm9ybSIsTSk7dmFyIGo9Ti5zZWxlY3RBbGwoIi4iK24uY24ubm9kZUxhYmVsR3VpZGUpLmRhdGEoZCk7ai5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQobi5jbi5ub2RlTGFiZWxHdWlkZSwhMCkuYXR0cigiaWQiLGZ1bmN0aW9uKHQpe3JldHVybiB0LnVuaXF1ZU5vZGVMYWJlbFBhdGhJZH0pLmF0dHIoImQiLEEpLmF0dHIoInRyYW5zZm9ybSIsUyksai50cmFuc2l0aW9uKCkuZWFzZShuLmVhc2UpLmR1cmF0aW9uKG4uZHVyYXRpb24pLmF0dHIoImQiLEEpLmF0dHIoInRyYW5zZm9ybSIsUyk7dmFyIFY9Ti5zZWxlY3RBbGwoIi4iK24uY24ubm9kZUxhYmVsKS5kYXRhKGQpO1YuZW50ZXIoKS5hcHBlbmQoInRleHQiKS5jbGFzc2VkKG4uY24ubm9kZUxhYmVsLCEwKS5hdHRyKCJ0cmFuc2Zvcm0iLEUpLnN0eWxlKCJ1c2VyLXNlbGVjdCIsIm5vbmUiKS5zdHlsZSgiY3Vyc29yIiwiZGVmYXVsdCIpLnN0eWxlKCJmaWxsIiwiYmxhY2siKSxWLnN0eWxlKCJ0ZXh0LXNoYWRvdyIsZnVuY3Rpb24odCl7cmV0dXJuIHQuaG9yaXpvbnRhbD8iLTFweCAxcHggMXB4ICNmZmYsIDFweCAxcHggMXB4ICNmZmYsIDFweCAtMXB4IDFweCAjZmZmLCAtMXB4IC0xcHggMXB4ICNmZmYiOiJub25lIn0pLmVhY2goZnVuY3Rpb24odCl7cy5mb250KFYsdC50ZXh0Rm9udCl9KSxWLnRyYW5zaXRpb24oKS5lYXNlKG4uZWFzZSkuZHVyYXRpb24obi5kdXJhdGlvbikuYXR0cigidHJhbnNmb3JtIixFKTt2YXIgVT1WLnNlbGVjdEFsbCgiLiIrbi5jbi5ub2RlTGFiZWxUZXh0UGF0aCkuZGF0YShkKTtVLmVudGVyKCkuYXBwZW5kKCJ0ZXh0UGF0aCIpLmNsYXNzZWQobi5jbi5ub2RlTGFiZWxUZXh0UGF0aCwhMCkuYXR0cigiYWxpZ25tZW50LWJhc2VsaW5lIiwibWlkZGxlIikuYXR0cigieGxpbms6aHJlZiIsZnVuY3Rpb24odCl7cmV0dXJuIiMiK3QudW5pcXVlTm9kZUxhYmVsUGF0aElkfSkuYXR0cigic3RhcnRPZmZzZXQiLEMpLnN0eWxlKCJmaWxsIixMKSxVLnRleHQoZnVuY3Rpb24odCl7cmV0dXJuIHQuaG9yaXpvbnRhbHx8dC5ub2RlLmR5PjU/dC5ub2RlLmxhYmVsOiIifSkuYXR0cigidGV4dC1hbmNob3IiLGZ1bmN0aW9uKHQpe3JldHVybiB0Lmhvcml6b250YWwmJnQubGVmdD8iZW5kIjoic3RhcnQifSksVS50cmFuc2l0aW9uKCkuZWFzZShuLmVhc2UpLmR1cmF0aW9uKG4uZHVyYXRpb24pLmF0dHIoInN0YXJ0T2Zmc2V0IixDKS5zdHlsZSgiZmlsbCIsTCl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjU5MiwiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo2MTMsIi4uLy4uL2xpYiI6NzE3LCIuLi8uLi9saWIvZ3VwIjo3MTUsIi4uLy4uL3JlZ2lzdHJ5Ijo4NDYsIi4vY29uc3RhbnRzIjoxMTEzLCJAcGxvdGx5L2QzLXNhbmtleSI6NTYsIkBwbG90bHkvZDMtc2Fua2V5LWNpcmN1bGFyIjo1NSxkMzoxNjUsImQzLWZvcmNlIjoxNTgsImQzLWludGVycG9sYXRlIjoxNjAsdGlueWNvbG9yMjo1MzZ9XSwxMTE4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1bXSxuPXQuY2RbMF0udHJhY2UsYT1uLl9zYW5rZXkuZ3JhcGgubm9kZXMsaT0wO2k8YS5sZW5ndGg7aSsrKXt2YXIgbz1hW2ldO2lmKCFvLnBhcnRPZkdyb3VwKXt2YXIgcz1bKG8ueDArby54MSkvMiwoby55MCtvLnkxKS8yXTsidiI9PT1uLm9yaWVudGF0aW9uJiZzLnJldmVyc2UoKSxlJiZlLmNvbnRhaW5zKHMsITEsaSx0KSYmci5wdXNoKHtwb2ludE51bWJlcjpvLnBvaW50TnVtYmVyfSl9fXJldHVybiByfX0se31dLDExMTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspdFtyXS5pPXI7bi5tZXJnZUFycmF5KGUudGV4dCx0LCJ0eCIpLG4ubWVyZ2VBcnJheShlLnRleHR0ZW1wbGF0ZSx0LCJ0eHQiKSxuLm1lcmdlQXJyYXkoZS5ob3ZlcnRleHQsdCwiaHR4Iiksbi5tZXJnZUFycmF5KGUuY3VzdG9tZGF0YSx0LCJkYXRhIiksbi5tZXJnZUFycmF5KGUudGV4dHBvc2l0aW9uLHQsInRwIiksZS50ZXh0Zm9udCYmKG4ubWVyZ2VBcnJheUNhc3RQb3NpdGl2ZShlLnRleHRmb250LnNpemUsdCwidHMiKSxuLm1lcmdlQXJyYXkoZS50ZXh0Zm9udC5jb2xvcix0LCJ0YyIpLG4ubWVyZ2VBcnJheShlLnRleHRmb250LmZhbWlseSx0LCJ0ZiIpKTt2YXIgYT1lLm1hcmtlcjtpZihhKXtuLm1lcmdlQXJyYXlDYXN0UG9zaXRpdmUoYS5zaXplLHQsIm1zIiksbi5tZXJnZUFycmF5Q2FzdFBvc2l0aXZlKGEub3BhY2l0eSx0LCJtbyIpLG4ubWVyZ2VBcnJheShhLnN5bWJvbCx0LCJteCIpLG4ubWVyZ2VBcnJheShhLmNvbG9yLHQsIm1jIik7dmFyIGk9YS5saW5lO2EubGluZSYmKG4ubWVyZ2VBcnJheShpLmNvbG9yLHQsIm1sYyIpLG4ubWVyZ2VBcnJheUNhc3RQb3NpdGl2ZShpLndpZHRoLHQsIm1sdyIpKTt2YXIgbz1hLmdyYWRpZW50O28mJiJub25lIiE9PW8udHlwZSYmKG4ubWVyZ2VBcnJheShvLnR5cGUsdCwibWd0Iiksbi5tZXJnZUFycmF5KG8uY29sb3IsdCwibWdjIikpfX19LHsiLi4vLi4vbGliIjo3MTd9XSwxMTIwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS50ZXh0dGVtcGxhdGVBdHRycyxhPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMsaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmcvYXR0cmlidXRlcyIpLmRhc2gsbD10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxjPXQoIi4vY29uc3RhbnRzIiksdT10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdDtlLmV4cG9ydHM9e3g6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIixhbmltOiEwfSx4MDp7dmFsVHlwZToiYW55IixkZmx0OjAsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMiLGFuaW06ITB9LGR4Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MSxlZGl0VHlwZToiY2FsYyIsYW5pbTohMH0seTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMiLGFuaW06ITB9LHkwOnt2YWxUeXBlOiJhbnkiLGRmbHQ6MCxlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyIsYW5pbTohMH0sZHk6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoxLGVkaXRUeXBlOiJjYWxjIixhbmltOiEwfSxzdGFja2dyb3VwOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6ImNhbGMifSxvcmllbnRhdGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsidiIsImgiXSxlZGl0VHlwZToiY2FsYyJ9LGdyb3Vwbm9ybTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiIiwiZnJhY3Rpb24iLCJwZXJjZW50Il0sZGZsdDoiIixlZGl0VHlwZToiY2FsYyJ9LHN0YWNrZ2Fwczp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiaW5mZXIgemVybyIsImludGVycG9sYXRlIl0sZGZsdDoiaW5mZXIgemVybyIsZWRpdFR5cGU6ImNhbGMifSx0ZXh0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsYXJyYXlPazohMCxlZGl0VHlwZToiY2FsYyJ9LHRleHR0ZW1wbGF0ZTpuKHt9LHt9KSxob3ZlcnRleHQ6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixhcnJheU9rOiEwLGVkaXRUeXBlOiJzdHlsZSJ9LG1vZGU6e3ZhbFR5cGU6ImZsYWdsaXN0IixmbGFnczpbImxpbmVzIiwibWFya2VycyIsInRleHQiXSxleHRyYXM6WyJub25lIl0sZWRpdFR5cGU6ImNhbGMifSxob3Zlcm9uOnt2YWxUeXBlOiJmbGFnbGlzdCIsZmxhZ3M6WyJwb2ludHMiLCJmaWxscyJdLGVkaXRUeXBlOiJzdHlsZSJ9LGhvdmVydGVtcGxhdGU6YSh7fSx7a2V5czpjLmV2ZW50RGF0YUtleXN9KSxsaW5lOntjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJzdHlsZSIsYW5pbTohMH0sd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoyLGVkaXRUeXBlOiJzdHlsZSIsYW5pbTohMH0sc2hhcGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImxpbmVhciIsInNwbGluZSIsImh2IiwidmgiLCJodmgiLCJ2aHYiXSxkZmx0OiJsaW5lYXIiLGVkaXRUeXBlOiJwbG90In0sc21vb3RoaW5nOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLjMsZGZsdDoxLGVkaXRUeXBlOiJwbG90In0sZGFzaDp1KHt9LHMse2VkaXRUeXBlOiJzdHlsZSJ9KSxzaW1wbGlmeTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJwbG90In0sY29ubmVjdGdhcHM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITEsZWRpdFR5cGU6ImNhbGMifSxjbGlwb25heGlzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJwbG90In0sZmlsbDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsibm9uZSIsInRvemVyb3kiLCJ0b3plcm94IiwidG9uZXh0eSIsInRvbmV4dHgiLCJ0b3NlbGYiLCJ0b25leHQiXSxlZGl0VHlwZToiY2FsYyJ9LGZpbGxjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJzdHlsZSIsYW5pbTohMH0sbWFya2VyOnUoe3N5bWJvbDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOmwuc3ltYm9sTGlzdCxkZmx0OiJjaXJjbGUiLGFycmF5T2s6ITAsZWRpdFR5cGU6InN0eWxlIn0sb3BhY2l0eTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxhcnJheU9rOiEwLGVkaXRUeXBlOiJzdHlsZSIsYW5pbTohMH0sc2l6ZTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjYsYXJyYXlPazohMCxlZGl0VHlwZToiY2FsYyIsYW5pbTohMH0sbWF4ZGlzcGxheWVkOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MCxlZGl0VHlwZToicGxvdCJ9LHNpemVyZWY6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoxLGVkaXRUeXBlOiJjYWxjIn0sc2l6ZW1pbjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjAsZWRpdFR5cGU6ImNhbGMifSxzaXplbW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZGlhbWV0ZXIiLCJhcmVhIl0sZGZsdDoiZGlhbWV0ZXIiLGVkaXRUeXBlOiJjYWxjIn0sbGluZTp1KHt3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxhcnJheU9rOiEwLGVkaXRUeXBlOiJzdHlsZSIsYW5pbTohMH0sZWRpdFR5cGU6ImNhbGMifSxpKCJtYXJrZXIubGluZSIse2FuaW06ITB9KSksZ3JhZGllbnQ6e3R5cGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInJhZGlhbCIsImhvcml6b250YWwiLCJ2ZXJ0aWNhbCIsIm5vbmUiXSxhcnJheU9rOiEwLGRmbHQ6Im5vbmUiLGVkaXRUeXBlOiJjYWxjIn0sY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixhcnJheU9rOiEwLGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMifSxlZGl0VHlwZToiY2FsYyJ9LGkoIm1hcmtlciIse2FuaW06ITB9KSksc2VsZWN0ZWQ6e21hcmtlcjp7b3BhY2l0eTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxlZGl0VHlwZToic3R5bGUifSxjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJzdHlsZSJ9LHNpemU6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZWRpdFR5cGU6InN0eWxlIn0sZWRpdFR5cGU6InN0eWxlIn0sdGV4dGZvbnQ6e2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6InN0eWxlIn0sZWRpdFR5cGU6InN0eWxlIn0sZWRpdFR5cGU6InN0eWxlIn0sdW5zZWxlY3RlZDp7bWFya2VyOntvcGFjaXR5Ont2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGVkaXRUeXBlOiJzdHlsZSJ9LGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6InN0eWxlIn0sc2l6ZTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxlZGl0VHlwZToic3R5bGUifSxlZGl0VHlwZToic3R5bGUifSx0ZXh0Zm9udDp7Y29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToic3R5bGUifSxlZGl0VHlwZToic3R5bGUifSxlZGl0VHlwZToic3R5bGUifSx0ZXh0cG9zaXRpb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInRvcCBsZWZ0IiwidG9wIGNlbnRlciIsInRvcCByaWdodCIsIm1pZGRsZSBsZWZ0IiwibWlkZGxlIGNlbnRlciIsIm1pZGRsZSByaWdodCIsImJvdHRvbSBsZWZ0IiwiYm90dG9tIGNlbnRlciIsImJvdHRvbSByaWdodCJdLGRmbHQ6Im1pZGRsZSBjZW50ZXIiLGFycmF5T2s6ITAsZWRpdFR5cGU6ImNhbGMifSx0ZXh0Zm9udDpvKHtlZGl0VHlwZToiY2FsYyIsY29sb3JFZGl0VHlwZToic3R5bGUiLGFycmF5T2s6ITB9KSxyOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHQ6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn19fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjo1OTksIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjEzLCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmcvYXR0cmlidXRlcyI6NjEyLCIuLi8uLi9saWIvZXh0ZW5kIjo3MDgsIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyI6NzkxLCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo4NDEsIi4vY29uc3RhbnRzIjoxMTI0fV0sMTEyMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGE9dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLG89dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTSxzPXQoIi4vc3VidHlwZXMiKSxsPXQoIi4vY29sb3JzY2FsZV9jYWxjIiksYz10KCIuL2FycmF5c190b19jYWxjZGF0YSIpLHU9dCgiLi9jYWxjX3NlbGVjdGlvbiIpO2Z1bmN0aW9uIGgodCxlLHIsbixhLG8sbCl7dmFyIGM9ZS5fbGVuZ3RoLHU9dC5fZnVsbExheW91dCxoPXIuX2lkLGY9bi5faWQscD11Ll9maXJzdFNjYXR0ZXJbZChlKV09PT1lLnVpZCx2PShnKGUsdSxyLG4pfHx7fSkub3JpZW50YXRpb24sbT1lLmZpbGw7ci5fbWluRHRpY2s9MCxuLl9taW5EdGljaz0wO3ZhciB5PXtwYWRkZWQ6ITB9LHg9e3BhZGRlZDohMH07bCYmKHkucHBhZD14LnBwYWQ9bCk7dmFyIGI9YzwyfHxhWzBdIT09YVtjLTFdfHxvWzBdIT09b1tjLTFdO2ImJigidG96ZXJveCI9PT1tfHwidG9uZXh0eCI9PT1tJiYocHx8ImgiPT09dikpP3kudG96ZXJvPSEwOihlLmVycm9yX3l8fHt9KS52aXNpYmxlfHwidG9uZXh0eSIhPT1tJiYidG96ZXJveSIhPT1tJiYocy5oYXNNYXJrZXJzKGUpfHxzLmhhc1RleHQoZSkpfHwoeS5wYWRkZWQ9ITEseS5wcGFkPTApLGImJigidG96ZXJveSI9PT1tfHwidG9uZXh0eSI9PT1tJiYocHx8InYiPT09dikpP3gudG96ZXJvPSEwOiJ0b25leHR4IiE9PW0mJiJ0b3plcm94IiE9PW18fCh4LnBhZGRlZD0hMSksaCYmKGUuX2V4dHJlbWVzW2hdPWkuZmluZEV4dHJlbWVzKHIsYSx5KSksZiYmKGUuX2V4dHJlbWVzW2ZdPWkuZmluZEV4dHJlbWVzKG4sbyx4KSl9ZnVuY3Rpb24gZih0LGUpe2lmKHMuaGFzTWFya2Vycyh0KSl7dmFyIHIsbj10Lm1hcmtlcixvPTEuNioodC5tYXJrZXIuc2l6ZXJlZnx8MSk7aWYocj0iYXJlYSI9PT10Lm1hcmtlci5zaXplbW9kZT9mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5tYXgoTWF0aC5zcXJ0KCh0fHwwKS9vKSwzKX06ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWF4KCh0fHwwKS9vLDMpfSxhLmlzQXJyYXlPclR5cGVkQXJyYXkobi5zaXplKSl7dmFyIGw9e3R5cGU6ImxpbmVhciJ9O2kuc2V0Q29udmVydChsKTtmb3IodmFyIGM9bC5tYWtlQ2FsY2RhdGEodC5tYXJrZXIsInNpemUiKSx1PW5ldyBBcnJheShlKSxoPTA7aDxlO2grKyl1W2hdPXIoY1toXSk7cmV0dXJuIHV9cmV0dXJuIHIobi5zaXplKX19ZnVuY3Rpb24gcCh0LGUpe3ZhciByPWQoZSksbj10Ll9maXJzdFNjYXR0ZXI7bltyXXx8KG5bcl09ZS51aWQpfWZ1bmN0aW9uIGQodCl7dmFyIGU9dC5zdGFja2dyb3VwO3JldHVybiB0LnhheGlzK3QueWF4aXMrdC50eXBlKyhlPyItIitlOiIiKX1mdW5jdGlvbiBnKHQsZSxyLG4pe3ZhciBhPXQuc3RhY2tncm91cDtpZihhKXt2YXIgaT1lLl9zY2F0dGVyU3RhY2tPcHRzW3IuX2lkK24uX2lkXVthXSxvPSJ2Ij09PWkub3JpZW50YXRpb24/bjpyO3JldHVybiJsaW5lYXIiPT09by50eXBlfHwibG9nIj09PW8udHlwZT9pOnZvaWQgMH19ZS5leHBvcnRzPXtjYWxjOmZ1bmN0aW9uKHQsZSl7dmFyIHIscyxkLHYsbSx5LHg9dC5fZnVsbExheW91dCxiPWkuZ2V0RnJvbUlkKHQsZS54YXhpc3x8IngiKSxfPWkuZ2V0RnJvbUlkKHQsZS55YXhpc3x8InkiKSx3PWIubWFrZUNhbGNkYXRhKGUsIngiKSxrPV8ubWFrZUNhbGNkYXRhKGUsInkiKSxUPWUuX2xlbmd0aCxNPW5ldyBBcnJheShUKSxBPWUuaWRzLFM9ZyhlLHgsYixfKSxFPSExO3AoeCxlKTt2YXIgTCxDPSJ4IixQPSJ5Ijtmb3IoUz8oYS5wdXNoVW5pcXVlKFMudHJhY2VJbmRpY2VzLGUuX2V4cGFuZGVkSW5kZXgpLChyPSJ2Ij09PVMub3JpZW50YXRpb24pPyhQPSJzIixMPSJ4Iik6KEM9InMiLEw9InkiKSxtPSJpbnRlcnBvbGF0ZSI9PT1TLnN0YWNrZ2Fwcyk6aCh0LGUsYixfLHcsayxmKGUsVCkpLHM9MDtzPFQ7cysrKXt2YXIgTz1NW3NdPXt9LHo9bih3W3NdKSxJPW4oa1tzXSk7eiYmST8oT1tDXT13W3NdLE9bUF09a1tzXSk6UyYmKHI/ejpJKT8oT1tMXT1yP3dbc106a1tzXSxPLmdhcD0hMCxtPyhPLnM9byxFPSEwKTpPLnM9MCk6T1tDXT1PW1BdPW8sQSYmKE8uaWQ9U3RyaW5nKEFbc10pKX1pZihjKE0sZSksbCh0LGUpLHUoTSxlKSxTKXtmb3Iocz0wO3M8TS5sZW5ndGg7KU1bc11bTF09PT1vP00uc3BsaWNlKHMsMSk6cysrO2lmKGEuc29ydChNLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbTF0tZVtMXXx8dC5pLWUuaX0pLEUpe2ZvcihzPTA7czxNLmxlbmd0aC0xJiZNW3NdLmdhcDspcysrO2ZvcigoeT1NW3NdLnMpfHwoeT1NW3NdLnM9MCksZD0wO2Q8cztkKyspTVtkXS5zPXk7Zm9yKHY9TS5sZW5ndGgtMTt2PnMmJk1bdl0uZ2FwOyl2LS07Zm9yKHk9TVt2XS5zLGQ9TS5sZW5ndGgtMTtkPnY7ZC0tKU1bZF0ucz15O2Zvcig7czx2OylpZihNWysrc10uZ2FwKXtmb3IoZD1zKzE7TVtkXS5nYXA7KWQrKztmb3IodmFyIEQ9TVtzLTFdW0xdLFI9TVtzLTFdLnMsRj0oTVtkXS5zLVIpLyhNW2RdW0xdLUQpO3M8ZDspTVtzXS5zPVIrKE1bc11bTF0tRCkqRixzKyt9fX1yZXR1cm4gTX0sY2FsY01hcmtlclNpemU6ZixjYWxjQXhpc0V4cGFuc2lvbjpoLHNldEZpcnN0U2NhdHRlcjpwLGdldFN0YWNrT3B0czpnfX0seyIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo2OTMsIi4uLy4uL2xpYiI6NzE3LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NzY1LCIuL2FycmF5c190b19jYWxjZGF0YSI6MTExOSwiLi9jYWxjX3NlbGVjdGlvbiI6MTEyMiwiLi9jb2xvcnNjYWxlX2NhbGMiOjExMjMsIi4vc3VidHlwZXMiOjExNDQsImZhc3QtaXNudW1lcmljIjoyMjh9XSwxMTIyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe24uaXNBcnJheU9yVHlwZWRBcnJheShlLnNlbGVjdGVkcG9pbnRzKSYmbi50YWdTZWxlY3RlZCh0LGUpfX0seyIuLi8uLi9saWIiOjcxN31dLDExMjM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2hlbHBlcnMiKS5oYXNDb2xvcnNjYWxlLGE9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiKSxpPXQoIi4vc3VidHlwZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpLmhhc0xpbmVzKGUpJiZuKGUsImxpbmUiKSYmYSh0LGUse3ZhbHM6ZS5saW5lLmNvbG9yLGNvbnRhaW5lclN0cjoibGluZSIsY0xldHRlcjoiYyJ9KSxpLmhhc01hcmtlcnMoZSkmJihuKGUsIm1hcmtlciIpJiZhKHQsZSx7dmFsczplLm1hcmtlci5jb2xvcixjb250YWluZXJTdHI6Im1hcmtlciIsY0xldHRlcjoiYyJ9KSxuKGUsIm1hcmtlci5saW5lIikmJmEodCxlLHt2YWxzOmUubWFya2VyLmxpbmUuY29sb3IsY29udGFpbmVyU3RyOiJtYXJrZXIubGluZSIsY0xldHRlcjoiYyJ9KSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIjo2MDAsIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9oZWxwZXJzIjo2MDMsIi4vc3VidHlwZXMiOjExNDR9XSwxMTI0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17UFRTX0xJTkVTT05MWToyMCxtaW5Ub2xlcmFuY2U6LjIsdG9sZXJhbmNlR3Jvd3RoOjEwLG1heFNjcmVlbnNBd2F5OjIwLGV2ZW50RGF0YUtleXM6W119fSx7fV0sMTEyNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2NhbGMiKTtmdW5jdGlvbiBhKHQsZSxyLG4sYSxpLG8pe2Fbbl09ITA7dmFyIHM9e2k6bnVsbCxnYXA6ITAsczowfTtpZihzW29dPXIsdC5zcGxpY2UoZSwwLHMpLGUmJnI9PT10W2UtMV1bb10pe3ZhciBsPXRbZS0xXTtzLnM9bC5zLHMuaT1sLmkscy5nYXA9bC5nYXB9ZWxzZSBpJiYocy5zPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPXRbZS0xXSxpPXRbZSsxXTtyZXR1cm4gaT9hP2EucysoaS5zLWEucykqKHItYVtuXSkvKGlbbl0tYVtuXSk6aS5zOmEuc30odCxlLHIsbykpO2V8fCh0WzBdLnQ9dFsxXS50LHRbMF0udHJhY2U9dFsxXS50cmFjZSxkZWxldGUgdFsxXS50LGRlbGV0ZSB0WzFdLnRyYWNlKX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1lLnhheGlzLGk9ZS55YXhpcyxvPXIuX2lkK2kuX2lkLHM9dC5fZnVsbExheW91dC5fc2NhdHRlclN0YWNrT3B0c1tvXTtpZihzKXt2YXIgbCxjLHUsaCxmLHAsZCxnLHYsbSx5LHgsYixfLHcsaz10LmNhbGNkYXRhO2Zvcih2YXIgVCBpbiBzKXt2YXIgTT0obT1zW1RdKS50cmFjZUluZGljZXM7aWYoTS5sZW5ndGgpe2Zvcih5PSJpbnRlcnBvbGF0ZSI9PT1tLnN0YWNrZ2Fwcyx4PW0uZ3JvdXBub3JtLCJ2Ij09PW0ub3JpZW50YXRpb24/KGI9IngiLF89InkiKTooYj0ieSIsXz0ieCIpLHc9bmV3IEFycmF5KE0ubGVuZ3RoKSxsPTA7bDx3Lmxlbmd0aDtsKyspd1tsXT0hMTtwPWtbTVswXV07dmFyIEE9bmV3IEFycmF5KHAubGVuZ3RoKTtmb3IobD0wO2w8cC5sZW5ndGg7bCsrKUFbbF09cFtsXVtiXTtmb3IobD0xO2w8TS5sZW5ndGg7bCsrKXtmb3IoZj1rW01bbF1dLGM9dT0wO2M8Zi5sZW5ndGg7YysrKXtmb3IoZD1mW2NdW2JdO2Q+QVt1XSYmdTxBLmxlbmd0aDt1KyspYShmLGMsQVt1XSxsLHcseSxiKSxjKys7aWYoZCE9PUFbdV0pe2ZvcihoPTA7aDxsO2grKylhKGtbTVtoXV0sdSxkLGgsdyx5LGIpO0Euc3BsaWNlKHUsMCxkKX11Kyt9Zm9yKDt1PEEubGVuZ3RoO3UrKylhKGYsYyxBW3VdLGwsdyx5LGIpLGMrK312YXIgUz1BLmxlbmd0aDtmb3IoYz0wO2M8cC5sZW5ndGg7YysrKXtmb3IoZz1wW2NdW19dPXBbY10ucyxsPTE7bDxNLmxlbmd0aDtsKyspKGY9a1tNW2xdXSlbMF0udHJhY2UuX3Jhd0xlbmd0aD1mWzBdLnRyYWNlLl9sZW5ndGgsZlswXS50cmFjZS5fbGVuZ3RoPVMsZys9ZltjXS5zLGZbY11bX109ZztpZih4KWZvcih2PSgiZnJhY3Rpb24iPT09eD9nOmcvMTAwKXx8MSxsPTA7bDxNLmxlbmd0aDtsKyspe3ZhciBFPWtbTVtsXV1bY107RVtfXS89dixFLnNOb3JtPUUucy92fX1mb3IobD0wO2w8TS5sZW5ndGg7bCsrKXt2YXIgTD0oZj1rW01bbF1dKVswXS50cmFjZSxDPW4uY2FsY01hcmtlclNpemUoTCxMLl9yYXdMZW5ndGgpLFA9QXJyYXkuaXNBcnJheShDKTtpZihDJiZ3W2xdfHxQKXt2YXIgTz1DO2ZvcihDPW5ldyBBcnJheShTKSxjPTA7YzxTO2MrKylDW2NdPWZbY10uZ2FwPzA6UD9PW2ZbY10uaV06T312YXIgej1uZXcgQXJyYXkoUyksST1uZXcgQXJyYXkoUyk7Zm9yKGM9MDtjPFM7YysrKXpbY109ZltjXS54LElbY109ZltjXS55O24uY2FsY0F4aXNFeHBhbnNpb24odCxMLHIsaSx6LEksQyksZlswXS50Lm9yaWVudGF0aW9uPW0ub3JpZW50YXRpb259fX19fX0seyIuL2NhbGMiOjExMjF9XSwxMTI2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKyl7dmFyIHI9dFtlXTtpZigic2NhdHRlciI9PT1yLnR5cGUpe3ZhciBuPXIuZmlsbDtpZigibm9uZSIhPT1uJiYidG9zZWxmIiE9PW4mJihyLm9wYWNpdHk9dm9pZCAwLCJ0b25leHR5Ij09PW58fCJ0b25leHR4Ij09PW4pKWZvcih2YXIgYT1lLTE7YT49MDthLS0pe3ZhciBpPXRbYV07aWYoInNjYXR0ZXIiPT09aS50eXBlJiZpLnhheGlzPT09ci54YXhpcyYmaS55YXhpcz09PXIueWF4aXMpe2kub3BhY2l0eT12b2lkIDA7YnJlYWt9fX19fX0se31dLDExMjc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9yZWdpc3RyeSIpLGk9dCgiLi9hdHRyaWJ1dGVzIiksbz10KCIuL2NvbnN0YW50cyIpLHM9dCgiLi9zdWJ0eXBlcyIpLGw9dCgiLi94eV9kZWZhdWx0cyIpLGM9dCgiLi9zdGFja19kZWZhdWx0cyIpLHU9dCgiLi9tYXJrZXJfZGVmYXVsdHMiKSxoPXQoIi4vbGluZV9kZWZhdWx0cyIpLGY9dCgiLi9saW5lX3NoYXBlX2RlZmF1bHRzIikscD10KCIuL3RleHRfZGVmYXVsdHMiKSxkPXQoIi4vZmlsbGNvbG9yX2RlZmF1bHRzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGcpe2Z1bmN0aW9uIHYocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLGkscixhKX12YXIgbT1sKHQsZSxnLHYpO2lmKG18fChlLnZpc2libGU9ITEpLGUudmlzaWJsZSl7dmFyIHk9Yyh0LGUsZyx2KSx4PSF5JiZtPG8uUFRTX0xJTkVTT05MWT8ibGluZXMrbWFya2VycyI6ImxpbmVzIjt2KCJ0ZXh0IiksdigiaG92ZXJ0ZXh0IiksdigibW9kZSIseCkscy5oYXNMaW5lcyhlKSYmKGgodCxlLHIsZyx2KSxmKHQsZSx2KSx2KCJjb25uZWN0Z2FwcyIpLHYoImxpbmUuc2ltcGxpZnkiKSkscy5oYXNNYXJrZXJzKGUpJiZ1KHQsZSxyLGcsdix7Z3JhZGllbnQ6ITB9KSxzLmhhc1RleHQoZSkmJih2KCJ0ZXh0dGVtcGxhdGUiKSxwKHQsZSxnLHYpKTt2YXIgYj1bXTsocy5oYXNNYXJrZXJzKGUpfHxzLmhhc1RleHQoZSkpJiYodigiY2xpcG9uYXhpcyIpLHYoIm1hcmtlci5tYXhkaXNwbGF5ZWQiKSxiLnB1c2goInBvaW50cyIpKSx2KCJmaWxsIix5P3kuZmlsbERmbHQ6Im5vbmUiKSwibm9uZSIhPT1lLmZpbGwmJihkKHQsZSxyLHYpLHMuaGFzTGluZXMoZSl8fGYodCxlLHYpKTt2YXIgXz0oZS5saW5lfHx7fSkuY29sb3Isdz0oZS5tYXJrZXJ8fHt9KS5jb2xvcjsidG9uZXh0IiE9PWUuZmlsbCYmInRvc2VsZiIhPT1lLmZpbGx8fGIucHVzaCgiZmlsbHMiKSx2KCJob3Zlcm9uIixiLmpvaW4oIisiKXx8InBvaW50cyIpLCJmaWxscyIhPT1lLmhvdmVyb24mJnYoImhvdmVydGVtcGxhdGUiKTt2YXIgaz1hLmdldENvbXBvbmVudE1ldGhvZCgiZXJyb3JiYXJzIiwic3VwcGx5RGVmYXVsdHMiKTtrKHQsZSxffHx3fHxyLHtheGlzOiJ5In0pLGsodCxlLF98fHd8fHIse2F4aXM6IngiLGluaGVyaXQ6InkifSksbi5jb2VyY2VTZWxlY3Rpb25NYXJrZXJPcGFjaXR5KGUsdil9fX0seyIuLi8uLi9saWIiOjcxNywiLi4vLi4vcmVnaXN0cnkiOjg0NiwiLi9hdHRyaWJ1dGVzIjoxMTIwLCIuL2NvbnN0YW50cyI6MTEyNCwiLi9maWxsY29sb3JfZGVmYXVsdHMiOjExMjgsIi4vbGluZV9kZWZhdWx0cyI6MTEzMywiLi9saW5lX3NoYXBlX2RlZmF1bHRzIjoxMTM1LCIuL21hcmtlcl9kZWZhdWx0cyI6MTEzOSwiLi9zdGFja19kZWZhdWx0cyI6MTE0MiwiLi9zdWJ0eXBlcyI6MTE0NCwiLi90ZXh0X2RlZmF1bHRzIjoxMTQ1LCIuL3h5X2RlZmF1bHRzIjoxMTQ2fV0sMTEyODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksYT10KCIuLi8uLi9saWIiKS5pc0FycmF5T3JUeXBlZEFycmF5O2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixpKXt2YXIgbz0hMTtpZihlLm1hcmtlcil7dmFyIHM9ZS5tYXJrZXIuY29sb3IsbD0oZS5tYXJrZXIubGluZXx8e30pLmNvbG9yO3MmJiFhKHMpP289czpsJiYhYShsKSYmKG89bCl9aSgiZmlsbGNvbG9yIixuLmFkZE9wYWNpdHkoKGUubGluZXx8e30pLmNvbG9yfHxvfHxyLC41KSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjU5MiwiLi4vLi4vbGliIjo3MTd9XSwxMTI5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgYT17fSxpPXtfZnVsbExheW91dDpyfSxvPW4uZ2V0RnJvbVRyYWNlKGksZSwieCIpLHM9bi5nZXRGcm9tVHJhY2UoaSxlLCJ5Iik7cmV0dXJuIGEueExhYmVsPW4udGlja1RleHQobyx0LngsITApLnRleHQsYS55TGFiZWw9bi50aWNrVGV4dChzLHQueSwhMCkudGV4dCxhfX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NzY1fV0sMTEzMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksYT10KCIuL3N1YnR5cGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsaTtpZigibGluZXMiPT09dC5tb2RlKXJldHVybihyPXQubGluZS5jb2xvcikmJm4ub3BhY2l0eShyKT9yOnQuZmlsbGNvbG9yO2lmKCJub25lIj09PXQubW9kZSlyZXR1cm4gdC5maWxsP3QuZmlsbGNvbG9yOiIiO3ZhciBvPWUubWNjfHwodC5tYXJrZXJ8fHt9KS5jb2xvcixzPWUubWxjY3x8KCh0Lm1hcmtlcnx8e30pLmxpbmV8fHt9KS5jb2xvcjtyZXR1cm4oaT1vJiZuLm9wYWNpdHkobyk/bzpzJiZuLm9wYWNpdHkocykmJihlLm1sd3x8KCh0Lm1hcmtlcnx8e30pLmxpbmV8fHt9KS53aWR0aCk/czoiIik/bi5vcGFjaXR5KGkpPC4zP24uYWRkT3BhY2l0eShpLC4zKTppOihyPSh0LmxpbmV8fHt9KS5jb2xvcikmJm4ub3BhY2l0eShyKSYmYS5oYXNMaW5lcyh0KSYmdC5saW5lLndpZHRoP3I6dC5maWxsY29sb3J9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjU5MiwiLi9zdWJ0eXBlcyI6MTE0NH1dLDExMzE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2Z4IiksaT10KCIuLi8uLi9yZWdpc3RyeSIpLG89dCgiLi9nZXRfdHJhY2VfY29sb3IiKSxzPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxsPW4uZmlsbFRleHQ7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGMpe3ZhciB1PXQuY2QsaD11WzBdLnRyYWNlLGY9dC54YSxwPXQueWEsZD1mLmMycChlKSxnPXAuYzJwKHIpLHY9W2QsZ10sbT1oLmhvdmVyb258fCIiLHk9LTEhPT1oLm1vZGUuaW5kZXhPZigibWFya2VycyIpPzM6LjU7aWYoLTEhPT1tLmluZGV4T2YoInBvaW50cyIpKXt2YXIgeD1mdW5jdGlvbih0KXt2YXIgZT1NYXRoLm1heCh5LHQubXJjfHwwKSxyPWYuYzJwKHQueCktZCxuPXAuYzJwKHQueSktZztyZXR1cm4gTWF0aC5tYXgoTWF0aC5zcXJ0KHIqcituKm4pLWUsMS15L2UpfSxiPWEuZ2V0RGlzdGFuY2VGdW5jdGlvbihjLGZ1bmN0aW9uKHQpe3ZhciBlPU1hdGgubWF4KDMsdC5tcmN8fDApLHI9MS0xL2Usbj1NYXRoLmFicyhmLmMycCh0LngpLWQpO3JldHVybiBuPGU/cipuL2U6bi1lK3J9LGZ1bmN0aW9uKHQpe3ZhciBlPU1hdGgubWF4KDMsdC5tcmN8fDApLHI9MS0xL2Usbj1NYXRoLmFicyhwLmMycCh0LnkpLWcpO3JldHVybiBuPGU/cipuL2U6bi1lK3J9LHgpO2lmKGEuZ2V0Q2xvc2VzdCh1LGIsdCksITEhPT10LmluZGV4KXt2YXIgXz11W3QuaW5kZXhdLHc9Zi5jMnAoXy54LCEwKSxrPXAuYzJwKF8ueSwhMCksVD1fLm1yY3x8MTt0LmluZGV4PV8uaTt2YXIgTT11WzBdLnQub3JpZW50YXRpb24sQT1NJiYoXy5zTm9ybXx8Xy5zKSxTPSJoIj09PU0/QTpfLngsRT0idiI9PT1NP0E6Xy55O3JldHVybiBuLmV4dGVuZEZsYXQodCx7Y29sb3I6byhoLF8pLHgwOnctVCx4MTp3K1QseExhYmVsVmFsOlMseTA6ay1ULHkxOmsrVCx5TGFiZWxWYWw6RSxzcGlrZURpc3RhbmNlOngoXyksaG92ZXJ0ZW1wbGF0ZTpoLmhvdmVydGVtcGxhdGV9KSxsKF8saCx0KSxpLmdldENvbXBvbmVudE1ldGhvZCgiZXJyb3JiYXJzIiwiaG92ZXJJbmZvIikoXyxoLHQpLFt0XX19aWYoLTEhPT1tLmluZGV4T2YoImZpbGxzIikmJmguX3BvbHlnb25zKXt2YXIgTCxDLFAsTyx6LEksRCxSLEYsQj1oLl9wb2x5Z29ucyxOPVtdLGo9ITEsVj0xLzAsVT0tMS8wLHE9MS8wLEg9LTEvMDtmb3IoTD0wO0w8Qi5sZW5ndGg7TCsrKShQPUJbTF0pLmNvbnRhaW5zKHYpJiYoaj0haixOLnB1c2goUCkscT1NYXRoLm1pbihxLFAueW1pbiksSD1NYXRoLm1heChILFAueW1heCkpO2lmKGope3ZhciBHPSgocT1NYXRoLm1heChxLDApKSsoSD1NYXRoLm1pbihILHAuX2xlbmd0aCkpKS8yO2ZvcihMPTA7TDxOLmxlbmd0aDtMKyspZm9yKE89TltMXS5wdHMsQz0xO0M8Ty5sZW5ndGg7QysrKShSPU9bQy0xXVsxXSk+RyE9KEY9T1tDXVsxXSk+PUcmJihJPU9bQy0xXVswXSxEPU9bQ11bMF0sRi1SJiYoej1JKyhELUkpKihHLVIpLyhGLVIpLFY9TWF0aC5taW4oVix6KSxVPU1hdGgubWF4KFUseikpKTtWPU1hdGgubWF4KFYsMCksVT1NYXRoLm1pbihVLGYuX2xlbmd0aCk7dmFyIFk9cy5kZWZhdWx0TGluZTtyZXR1cm4gcy5vcGFjaXR5KGguZmlsbGNvbG9yKT9ZPWguZmlsbGNvbG9yOnMub3BhY2l0eSgoaC5saW5lfHx7fSkuY29sb3IpJiYoWT1oLmxpbmUuY29sb3IpLG4uZXh0ZW5kRmxhdCh0LHtkaXN0YW5jZTp0Lm1heEhvdmVyRGlzdGFuY2UseDA6Vix4MTpVLHkwOkcseTE6Ryxjb2xvcjpZLGhvdmVydGVtcGxhdGU6ITF9KSxkZWxldGUgdC5pbmRleCxoLnRleHQmJiFBcnJheS5pc0FycmF5KGgudGV4dCk/dC50ZXh0PVN0cmluZyhoLnRleHQpOnQudGV4dD1oLm5hbWUsW3RdfX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjU5MiwiLi4vLi4vY29tcG9uZW50cy9meCI6NjMwLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vcmVnaXN0cnkiOjg0NiwiLi9nZXRfdHJhY2VfY29sb3IiOjExMzB9XSwxMTMyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vc3VidHlwZXMiKTtlLmV4cG9ydHM9e2hhc0xpbmVzOm4uaGFzTGluZXMsaGFzTWFya2VyczpuLmhhc01hcmtlcnMsaGFzVGV4dDpuLmhhc1RleHQsaXNCdWJibGU6bi5pc0J1YmJsZSxhdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjcm9zc1RyYWNlRGVmYXVsdHM6dCgiLi9jcm9zc190cmFjZV9kZWZhdWx0cyIpLGNhbGM6dCgiLi9jYWxjIikuY2FsYyxjcm9zc1RyYWNlQ2FsYzp0KCIuL2Nyb3NzX3RyYWNlX2NhbGMiKSxhcnJheXNUb0NhbGNkYXRhOnQoIi4vYXJyYXlzX3RvX2NhbGNkYXRhIikscGxvdDp0KCIuL3Bsb3QiKSxjb2xvcmJhcjp0KCIuL21hcmtlcl9jb2xvcmJhciIpLGZvcm1hdExhYmVsczp0KCIuL2Zvcm1hdF9sYWJlbHMiKSxzdHlsZTp0KCIuL3N0eWxlIikuc3R5bGUsc3R5bGVPblNlbGVjdDp0KCIuL3N0eWxlIikuc3R5bGVPblNlbGVjdCxob3ZlclBvaW50czp0KCIuL2hvdmVyIiksc2VsZWN0UG9pbnRzOnQoIi4vc2VsZWN0IiksYW5pbWF0YWJsZTohMCxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToic2NhdHRlciIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuIiksY2F0ZWdvcmllczpbImNhcnRlc2lhbiIsInN2ZyIsInN5bWJvbHMiLCJlcnJvckJhcnNPSyIsInNob3dMZWdlbmQiLCJzY2F0dGVyLWxpa2UiLCJ6b29tU2NhbGUiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjc3NiwiLi9hcnJheXNfdG9fY2FsY2RhdGEiOjExMTksIi4vYXR0cmlidXRlcyI6MTEyMCwiLi9jYWxjIjoxMTIxLCIuL2Nyb3NzX3RyYWNlX2NhbGMiOjExMjUsIi4vY3Jvc3NfdHJhY2VfZGVmYXVsdHMiOjExMjYsIi4vZGVmYXVsdHMiOjExMjcsIi4vZm9ybWF0X2xhYmVscyI6MTEyOSwiLi9ob3ZlciI6MTEzMSwiLi9tYXJrZXJfY29sb3JiYXIiOjExMzgsIi4vcGxvdCI6MTE0MCwiLi9zZWxlY3QiOjExNDEsIi4vc3R5bGUiOjExNDMsIi4vc3VidHlwZXMiOjExNDR9XSwxMTMzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLmlzQXJyYXlPclR5cGVkQXJyYXksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvaGVscGVycyIpLmhhc0NvbG9yc2NhbGUsaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbyxzLGwpe3ZhciBjPSh0Lm1hcmtlcnx8e30pLmNvbG9yOyhzKCJsaW5lLmNvbG9yIixyKSxhKHQsImxpbmUiKSk/aSh0LGUsbyxzLHtwcmVmaXg6ImxpbmUuIixjTGV0dGVyOiJjIn0pOnMoImxpbmUuY29sb3IiLCFuKGMpJiZjfHxyKTtzKCJsaW5lLndpZHRoIiksKGx8fHt9KS5ub0Rhc2h8fHMoImxpbmUuZGFzaCIpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiOjYwMiwiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2hlbHBlcnMiOjYwMywiLi4vLi4vbGliIjo3MTd9XSwxMTM0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKSxhPW4uQkFETlVNLGk9bi5MT0dfQ0xJUCxvPWkrLjUscz1pLS41LGw9dCgiLi4vLi4vbGliIiksYz1sLnNlZ21lbnRzSW50ZXJzZWN0LHU9bC5jb25zdHJhaW4saD10KCIuL2NvbnN0YW50cyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLG4saSxmLHAsZCxnLHYsbSx5LHgsYixfLHcsayxULE0sQSxTPWUueGF4aXMsRT1lLnlheGlzLEw9ImxvZyI9PT1TLnR5cGUsQz0ibG9nIj09PUUudHlwZSxQPVMuX2xlbmd0aCxPPUUuX2xlbmd0aCx6PWUuY29ubmVjdEdhcHMsST1lLmJhc2VUb2xlcmFuY2UsRD1lLnNoYXBlLFI9ImxpbmVhciI9PT1ELEY9ZS5maWxsJiYibm9uZSIhPT1lLmZpbGwsQj1bXSxOPWgubWluVG9sZXJhbmNlLGo9dC5sZW5ndGgsVj1uZXcgQXJyYXkoaiksVT0wO2Z1bmN0aW9uIHEocil7dmFyIG49dFtyXTtpZighbilyZXR1cm4hMTt2YXIgaT1lLmxpbmVhcml6ZWQ/Uy5sMnAobi54KTpTLmMycChuLngpLGw9ZS5saW5lYXJpemVkP0UubDJwKG4ueSk6RS5jMnAobi55KTtpZihpPT09YSl7aWYoTCYmKGk9Uy5jMnAobi54LCEwKSksaT09PWEpcmV0dXJuITE7QyYmbD09PWEmJihpKj1NYXRoLmFicyhTLl9tKk8qKFMuX20+MD9vOnMpLyhFLl9tKlAqKEUuX20+MD9vOnMpKSkpLGkqPTFlM31pZihsPT09YSl7aWYoQyYmKGw9RS5jMnAobi55LCEwKSksbD09PWEpcmV0dXJuITE7bCo9MWUzfXJldHVybltpLGxdfWZ1bmN0aW9uIEgodCxlLHIsbil7dmFyIGE9ci10LGk9bi1lLG89LjUtdCxzPS41LWUsbD1hKmEraSppLGM9YSpvK2kqcztpZihjPjAmJmM8bCl7dmFyIHU9byppLXMqYTtpZih1KnU8bClyZXR1cm4hMH19ZnVuY3Rpb24gRyh0LGUpe3ZhciByPXRbMF0vUCxuPXRbMV0vTyxhPU1hdGgubWF4KDAsLXIsci0xLC1uLG4tMSk7cmV0dXJuIGEmJnZvaWQgMCE9PU0mJkgocixuLE0sQSkmJihhPTApLGEmJmUmJkgocixuLGVbMF0vUCxlWzFdL08pJiYoYT0wKSwoMStoLnRvbGVyYW5jZUdyb3d0aCphKSpJfWZ1bmN0aW9uIFkodCxlKXt2YXIgcj10WzBdLWVbMF0sbj10WzFdLWVbMV07cmV0dXJuIE1hdGguc3FydChyKnIrbipuKX12YXIgVyxYLFosSixLLFEsJCx0dD1oLm1heFNjcmVlbnNBd2F5LGV0PS1QKnR0LHJ0PVAqKDErdHQpLG50PS1PKnR0LGF0PU8qKDErdHQpLGl0PVtbZXQsbnQscnQsbnRdLFtydCxudCxydCxhdF0sW3J0LGF0LGV0LGF0XSxbZXQsYXQsZXQsbnRdXTtmdW5jdGlvbiBvdCh0KXtpZih0WzBdPGV0fHx0WzBdPnJ0fHx0WzFdPG50fHx0WzFdPmF0KXJldHVyblt1KHRbMF0sZXQscnQpLHUodFsxXSxudCxhdCldfWZ1bmN0aW9uIHN0KHQsZSl7cmV0dXJuIHRbMF09PT1lWzBdJiYodFswXT09PWV0fHx0WzBdPT09cnQpfHwodFsxXT09PWVbMV0mJih0WzFdPT09bnR8fHRbMV09PT1hdCl8fHZvaWQgMCl9ZnVuY3Rpb24gbHQodCxlLHIpe3JldHVybiBmdW5jdGlvbihuLGEpe3ZhciBpPW90KG4pLG89b3QoYSkscz1bXTtpZihpJiZvJiZzdChpLG8pKXJldHVybiBzO2kmJnMucHVzaChpKSxvJiZzLnB1c2gobyk7dmFyIGM9MipsLmNvbnN0cmFpbigoblt0XSthW3RdKS8yLGUsciktKChpfHxuKVt0XSsob3x8YSlbdF0pO2MmJigoaSYmbz9jPjA9PWlbdF0+b1t0XT9pOm86aXx8bylbdF0rPWMpO3JldHVybiBzfX1mdW5jdGlvbiBjdCh0KXt2YXIgZT10WzBdLHI9dFsxXSxuPWU9PT1WW1UtMV1bMF0sYT1yPT09VltVLTFdWzFdO2lmKCFufHwhYSlpZihVPjEpe3ZhciBpPWU9PT1WW1UtMl1bMF0sbz1yPT09VltVLTJdWzFdO24mJihlPT09ZXR8fGU9PT1ydCkmJmk/bz9VLS06VltVLTFdPXQ6YSYmKHI9PT1udHx8cj09PWF0KSYmbz9pP1UtLTpWW1UtMV09dDpWW1UrK109dH1lbHNlIFZbVSsrXT10fWZ1bmN0aW9uIHV0KHQpe1ZbVS0xXVswXSE9PXRbMF0mJlZbVS0xXVsxXSE9PXRbMV0mJmN0KFtaLEpdKSxjdCh0KSxLPW51bGwsWj1KPTB9ZnVuY3Rpb24gaHQodCl7aWYoTT10WzBdL1AsQT10WzFdL08sVz10WzBdPGV0P2V0OnRbMF0+cnQ/cnQ6MCxYPXRbMV08bnQ/bnQ6dFsxXT5hdD9hdDowLFd8fFgpe2lmKFUpaWYoSyl7dmFyIGU9JChLLHQpO2UubGVuZ3RoPjEmJih1dChlWzBdKSxWW1UrK109ZVsxXSl9ZWxzZSBRPSQoVltVLTFdLHQpWzBdLFZbVSsrXT1RO2Vsc2UgVltVKytdPVtXfHx0WzBdLFh8fHRbMV1dO3ZhciByPVZbVS0xXTtXJiZYJiYoclswXSE9PVd8fHJbMV0hPT1YKT8oSyYmKFohPT1XJiZKIT09WD9jdChaJiZKPyhuPUssaT0oYT10KVswXS1uWzBdLG89KGFbMV0tblsxXSkvaSwoblsxXSphWzBdLWFbMV0qblswXSkvaT4wP1tvPjA/ZXQ6cnQsYXRdOltvPjA/cnQ6ZXQsbnRdKTpbWnx8VyxKfHxYXSk6WiYmSiYmY3QoW1osSl0pKSxjdChbVyxYXSkpOlotVyYmSi1YJiZjdChbV3x8WixYfHxKXSksSz10LFo9VyxKPVh9ZWxzZSBLJiZ1dCgkKEssdClbMF0pLFZbVSsrXT10O3ZhciBuLGEsaSxvfWZvcigibGluZWFyIj09PUR8fCJzcGxpbmUiPT09RD8kPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVtdLG49MCxhPTA7YTw0O2ErKyl7dmFyIGk9aXRbYV0sbz1jKHRbMF0sdFsxXSxlWzBdLGVbMV0saVswXSxpWzFdLGlbMl0saVszXSk7byYmKCFufHxNYXRoLmFicyhvLngtclswXVswXSk+MXx8TWF0aC5hYnMoby55LXJbMF1bMV0pPjEpJiYobz1bby54LG8ueV0sbiYmWShvLHQpPFkoclswXSx0KT9yLnVuc2hpZnQobyk6ci5wdXNoKG8pLG4rKyl9cmV0dXJuIHJ9OiJodiI9PT1EfHwidmgiPT09RD8kPWZ1bmN0aW9uKHQsZSl7dmFyIHI9W10sbj1vdCh0KSxhPW90KGUpO3JldHVybiBuJiZhJiZzdChuLGEpP3I6KG4mJnIucHVzaChuKSxhJiZyLnB1c2goYSkscil9OiJodmgiPT09RD8kPWx0KDAsZXQscnQpOiJ2aHYiPT09RCYmKCQ9bHQoMSxudCxhdCkpLHI9MDtyPGo7cisrKWlmKG49cShyKSl7Zm9yKFU9MCxLPW51bGwsaHQobikscisrO3I8ajtyKyspe2lmKCEoZj1xKHIpKSl7aWYoeiljb250aW51ZTticmVha31pZihSJiZlLnNpbXBsaWZ5KXt2YXIgZnQ9cShyKzEpO2lmKHk9WShmLG4pLEYmJigwPT09VXx8VT09PWotMSl8fCEoeTxHKGYsZnQpKk4pKXtmb3Iodj1bKGZbMF0tblswXSkveSwoZlsxXS1uWzFdKS95XSxwPW4seD15LGI9dz1rPTAsZz0hMSxpPWYscisrO3I8dC5sZW5ndGg7cisrKXtpZihkPWZ0LGZ0PXEocisxKSwhZCl7aWYoeiljb250aW51ZTticmVha31pZihUPShtPVtkWzBdLW5bMF0sZFsxXS1uWzFdXSlbMF0qdlsxXS1tWzFdKnZbMF0sdz1NYXRoLm1pbih3LFQpLChrPU1hdGgubWF4KGssVCkpLXc+RyhkLGZ0KSlicmVhaztpPWQsKF89bVswXSp2WzBdK21bMV0qdlsxXSk+eD8oeD1fLGY9ZCxnPSExKTpfPGImJihiPV8scD1kLGc9ITApfWlmKGc/KGh0KGYpLGkhPT1wJiZodChwKSk6KHAhPT1uJiZodChwKSxpIT09ZiYmaHQoZikpLGh0KGkpLHI+PXQubGVuZ3RofHwhZClicmVhaztodChkKSxuPWR9fWVsc2UgaHQoZil9SyYmY3QoW1p8fEtbMF0sSnx8S1sxXV0pLEIucHVzaChWLnNsaWNlKDAsVSkpfXJldHVybiBCfX0seyIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo2OTMsIi4uLy4uL2xpYiI6NzE3LCIuL2NvbnN0YW50cyI6MTEyNH1dLDExMzU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXsic3BsaW5lIj09PXIoImxpbmUuc2hhcGUiKSYmcigibGluZS5zbW9vdGhpbmciKX19LHt9XSwxMTM2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXt0b25leHR4OjEsdG9uZXh0eToxLHRvbmV4dDoxfTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBhLGksbyxzLGwsYz17fSx1PSExLGg9LTEsZj0wLHA9LTE7Zm9yKGk9MDtpPHIubGVuZ3RoO2krKykobz0oYT1yW2ldWzBdLnRyYWNlKS5zdGFja2dyb3VwfHwiIik/byBpbiBjP2w9Y1tvXToobD1jW29dPWYsZisrKTphLmZpbGwgaW4gbiYmcD49MD9sPXA6KGw9cD1mLGYrKyksbDxoJiYodT0hMCksYS5fZ3JvdXBJbmRleD1oPWw7dmFyIGQ9ci5zbGljZSgpO3UmJmQuc29ydChmdW5jdGlvbih0LGUpe3ZhciByPXRbMF0udHJhY2Usbj1lWzBdLnRyYWNlO3JldHVybiByLl9ncm91cEluZGV4LW4uX2dyb3VwSW5kZXh8fHIuaW5kZXgtbi5pbmRleH0pO3ZhciBnPXt9O2ZvcihpPTA7aTxkLmxlbmd0aDtpKyspbz0oYT1kW2ldWzBdLnRyYWNlKS5zdGFja2dyb3VwfHwiIiwhMD09PWEudmlzaWJsZT8oYS5fbmV4dHRyYWNlPW51bGwsYS5maWxsIGluIG4mJihzPWdbb10sYS5fcHJldnRyYWNlPXN8fG51bGwscyYmKHMuX25leHR0cmFjZT1hKSksYS5fb3duZmlsbD1hLmZpbGwmJigidG96ZXJvIj09PWEuZmlsbC5zdWJzdHIoMCw2KXx8InRvc2VsZiI9PT1hLmZpbGx8fCJ0byI9PT1hLmZpbGwuc3Vic3RyKDAsMikmJiFhLl9wcmV2dHJhY2UpLGdbb109YSk6YS5fcHJldnRyYWNlPWEuX25leHR0cmFjZT1hLl9vd25maWxsPW51bGw7cmV0dXJuIGR9fSx7fV0sMTEzNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10Lm1hcmtlcixyPWUuc2l6ZXJlZnx8MSxhPWUuc2l6ZW1pbnx8MCxpPSJhcmVhIj09PWUuc2l6ZW1vZGU/ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguc3FydCh0L3IpfTpmdW5jdGlvbih0KXtyZXR1cm4gdC9yfTtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9aSh0LzIpO3JldHVybiBuKGUpJiZlPjA/TWF0aC5tYXgoZSxhKTowfX19LHsiZmFzdC1pc251bWVyaWMiOjIyOH1dLDExMzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtjb250YWluZXI6Im1hcmtlciIsbWluOiJjbWluIixtYXg6ImNtYXgifX0se31dLDExMzk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2hlbHBlcnMiKS5oYXNDb2xvcnNjYWxlLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIiksbz10KCIuL3N1YnR5cGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMsbCxjKXt2YXIgdT1vLmlzQnViYmxlKHQpLGg9KHQubGluZXx8e30pLmNvbG9yOyhjPWN8fHt9LGgmJihyPWgpLGwoIm1hcmtlci5zeW1ib2wiKSxsKCJtYXJrZXIub3BhY2l0eSIsdT8uNzoxKSxsKCJtYXJrZXIuc2l6ZSIpLGwoIm1hcmtlci5jb2xvciIsciksYSh0LCJtYXJrZXIiKSYmaSh0LGUscyxsLHtwcmVmaXg6Im1hcmtlci4iLGNMZXR0ZXI6ImMifSksYy5ub1NlbGVjdHx8KGwoInNlbGVjdGVkLm1hcmtlci5jb2xvciIpLGwoInVuc2VsZWN0ZWQubWFya2VyLmNvbG9yIiksbCgic2VsZWN0ZWQubWFya2VyLnNpemUiKSxsKCJ1bnNlbGVjdGVkLm1hcmtlci5zaXplIikpLGMubm9MaW5lfHwobCgibWFya2VyLmxpbmUuY29sb3IiLGgmJiFBcnJheS5pc0FycmF5KGgpJiZlLm1hcmtlci5jb2xvciE9PWg/aDp1P24uYmFja2dyb3VuZDpuLmRlZmF1bHRMaW5lKSxhKHQsIm1hcmtlci5saW5lIikmJmkodCxlLHMsbCx7cHJlZml4OiJtYXJrZXIubGluZS4iLGNMZXR0ZXI6ImMifSksbCgibWFya2VyLmxpbmUud2lkdGgiLHU/MTowKSksdSYmKGwoIm1hcmtlci5zaXplcmVmIiksbCgibWFya2VyLnNpemVtaW4iKSxsKCJtYXJrZXIuc2l6ZW1vZGUiKSksYy5ncmFkaWVudCkmJigibm9uZSIhPT1sKCJtYXJrZXIuZ3JhZGllbnQudHlwZSIpJiZsKCJtYXJrZXIuZ3JhZGllbnQuY29sb3IiKSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjU5MiwiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIjo2MDIsIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9oZWxwZXJzIjo2MDMsIi4vc3VidHlwZXMiOjExNDR9XSwxMTQwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksYT10KCIuLi8uLi9yZWdpc3RyeSIpLGk9dCgiLi4vLi4vbGliIiksbz1pLmVuc3VyZVNpbmdsZSxzPWkuaWRlbnRpdHksbD10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxjPXQoIi4vc3VidHlwZXMiKSx1PXQoIi4vbGluZV9wb2ludHMiKSxoPXQoIi4vbGlua190cmFjZXMiKSxmPXQoIi4uLy4uL2xpYi9wb2x5Z29uIikudGVzdGVyO2Z1bmN0aW9uIHAodCxlLHIsaCxwLGQsZyl7dmFyIHY7IWZ1bmN0aW9uKHQsZSxyLGEsbyl7dmFyIHM9ci54YXhpcyxsPXIueWF4aXMsdT1uLmV4dGVudChpLnNpbXBsZU1hcChzLnJhbmdlLHMucjJjKSksaD1uLmV4dGVudChpLnNpbXBsZU1hcChsLnJhbmdlLGwucjJjKSksZj1hWzBdLnRyYWNlO2lmKCFjLmhhc01hcmtlcnMoZikpcmV0dXJuO3ZhciBwPWYubWFya2VyLm1heGRpc3BsYXllZDtpZigwPT09cClyZXR1cm47dmFyIGQ9YS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQueD49dVswXSYmdC54PD11WzFdJiZ0Lnk+PWhbMF0mJnQueTw9aFsxXX0pLGc9TWF0aC5jZWlsKGQubGVuZ3RoL3ApLHY9MDtvLmZvckVhY2goZnVuY3Rpb24odCxyKXt2YXIgbj10WzBdLnRyYWNlO2MuaGFzTWFya2VycyhuKSYmbi5tYXJrZXIubWF4ZGlzcGxheWVkPjAmJnI8ZSYmdisrfSk7dmFyIG09TWF0aC5yb3VuZCh2KmcvMytNYXRoLmZsb29yKHYvMykqZy83LjEpO2EuZm9yRWFjaChmdW5jdGlvbih0KXtkZWxldGUgdC52aXN9KSxkLmZvckVhY2goZnVuY3Rpb24odCxlKXswPT09TWF0aC5yb3VuZCgoZSttKSVnKSYmKHQudmlzPSEwKX0pfSgwLGUscixoLHApO3ZhciBtPSEhZyYmZy5kdXJhdGlvbj4wO2Z1bmN0aW9uIHkodCl7cmV0dXJuIG0/dC50cmFuc2l0aW9uKCk6dH12YXIgeD1yLnhheGlzLGI9ci55YXhpcyxfPWhbMF0udHJhY2Usdz1fLmxpbmUsaz1uLnNlbGVjdChkKSxUPW8oaywiZyIsImVycm9yYmFycyIpLE09byhrLCJnIiwibGluZXMiKSxBPW8oaywiZyIsInBvaW50cyIpLFM9byhrLCJnIiwidGV4dCIpO2lmKGEuZ2V0Q29tcG9uZW50TWV0aG9kKCJlcnJvcmJhcnMiLCJwbG90IikodCxULHIsZyksITA9PT1fLnZpc2libGUpe3ZhciBFLEw7eShrKS5zdHlsZSgib3BhY2l0eSIsXy5vcGFjaXR5KTt2YXIgQz1fLmZpbGwuY2hhckF0KF8uZmlsbC5sZW5ndGgtMSk7IngiIT09QyYmInkiIT09QyYmKEM9IiIpLGhbMF1bci5pc1JhbmdlUGxvdD8ibm9kZVJhbmdlUGxvdDMiOiJub2RlMyJdPWs7dmFyIFAsTyx6PSIiLEk9W10sRD1fLl9wcmV2dHJhY2U7RCYmKHo9RC5fcHJldlJldnBhdGh8fCIiLEw9RC5fbmV4dEZpbGwsST1ELl9wb2x5Z29ucyk7dmFyIFIsRixCLE4saixWLFUscT0iIixIPSIiLEc9W10sWT1pLm5vb3A7aWYoRT1fLl9vd25GaWxsLGMuaGFzTGluZXMoXyl8fCJub25lIiE9PV8uZmlsbCl7Zm9yKEwmJkwuZGF0dW0oaCksLTEhPT1bImh2IiwidmgiLCJodmgiLCJ2aHYiXS5pbmRleE9mKHcuc2hhcGUpPyhSPWwuc3RlcHMody5zaGFwZSksRj1sLnN0ZXBzKHcuc2hhcGUuc3BsaXQoIiIpLnJldmVyc2UoKS5qb2luKCIiKSkpOlI9Rj0ic3BsaW5lIj09PXcuc2hhcGU/ZnVuY3Rpb24odCl7dmFyIGU9dFt0Lmxlbmd0aC0xXTtyZXR1cm4gdC5sZW5ndGg+MSYmdFswXVswXT09PWVbMF0mJnRbMF1bMV09PT1lWzFdP2wuc21vb3RoY2xvc2VkKHQuc2xpY2UoMSksdy5zbW9vdGhpbmcpOmwuc21vb3Rob3Blbih0LHcuc21vb3RoaW5nKX06ZnVuY3Rpb24odCl7cmV0dXJuIk0iK3Quam9pbigiTCIpfSxCPWZ1bmN0aW9uKHQpe3JldHVybiBGKHQucmV2ZXJzZSgpKX0sRz11KGgse3hheGlzOngseWF4aXM6Yixjb25uZWN0R2FwczpfLmNvbm5lY3RnYXBzLGJhc2VUb2xlcmFuY2U6TWF0aC5tYXgody53aWR0aHx8MSwzKS80LHNoYXBlOncuc2hhcGUsc2ltcGxpZnk6dy5zaW1wbGlmeSxmaWxsOl8uZmlsbH0pLFU9Xy5fcG9seWdvbnM9bmV3IEFycmF5KEcubGVuZ3RoKSx2PTA7djxHLmxlbmd0aDt2KyspXy5fcG9seWdvbnNbdl09ZihHW3ZdKTtHLmxlbmd0aCYmKE49R1swXVswXSxWPShqPUdbRy5sZW5ndGgtMV0pW2oubGVuZ3RoLTFdKSxZPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtpZihQPVIoZSksTz1CKGUpLHE/Qz8ocSs9IkwiK1Auc3Vic3RyKDEpLEg9TysiTCIrSC5zdWJzdHIoMSkpOihxKz0iWiIrUCxIPU8rIloiK0gpOihxPVAsSD1PKSxjLmhhc0xpbmVzKF8pJiZlLmxlbmd0aD4xKXt2YXIgcj1uLnNlbGVjdCh0aGlzKTtpZihyLmRhdHVtKGgpLHQpeShyLnN0eWxlKCJvcGFjaXR5IiwwKS5hdHRyKCJkIixQKS5jYWxsKGwubGluZUdyb3VwU3R5bGUpKS5zdHlsZSgib3BhY2l0eSIsMSk7ZWxzZXt2YXIgYT15KHIpO2EuYXR0cigiZCIsUCksbC5zaW5nbGVMaW5lU3R5bGUoaCxhKX19fX19dmFyIFc9TS5zZWxlY3RBbGwoIi5qcy1saW5lIikuZGF0YShHKTt5KFcuZXhpdCgpKS5zdHlsZSgib3BhY2l0eSIsMCkucmVtb3ZlKCksVy5lYWNoKFkoITEpKSxXLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZCgianMtbGluZSIsITApLnN0eWxlKCJ2ZWN0b3ItZWZmZWN0Iiwibm9uLXNjYWxpbmctc3Ryb2tlIikuY2FsbChsLmxpbmVHcm91cFN0eWxlKS5lYWNoKFkoITApKSxsLnNldENsaXBVcmwoVyxyLmxheWVyQ2xpcElkLHQpLEcubGVuZ3RoPyhFPyhFLmRhdHVtKGgpLE4mJlYmJihDPygieSI9PT1DP05bMV09VlsxXT1iLmMycCgwLCEwKToieCI9PT1DJiYoTlswXT1WWzBdPXguYzJwKDAsITApKSx5KEUpLmF0dHIoImQiLCJNIitWKyJMIitOKyJMIitxLnN1YnN0cigxKSkuY2FsbChsLnNpbmdsZUZpbGxTdHlsZSkpOnkoRSkuYXR0cigiZCIscSsiWiIpLmNhbGwobC5zaW5nbGVGaWxsU3R5bGUpKSk6TCYmKCJ0b25leHQiPT09Xy5maWxsLnN1YnN0cigwLDYpJiZxJiZ6PygidG9uZXh0Ij09PV8uZmlsbD95KEwpLmF0dHIoImQiLHErIloiK3orIloiKS5jYWxsKGwuc2luZ2xlRmlsbFN0eWxlKTp5KEwpLmF0dHIoImQiLHErIkwiK3ouc3Vic3RyKDEpKyJaIikuY2FsbChsLnNpbmdsZUZpbGxTdHlsZSksXy5fcG9seWdvbnM9Xy5fcG9seWdvbnMuY29uY2F0KEkpKTooWihMKSxfLl9wb2x5Z29ucz1udWxsKSksXy5fcHJldlJldnBhdGg9SCxfLl9wcmV2UG9seWdvbnM9VSk6KEU/WihFKTpMJiZaKEwpLF8uX3BvbHlnb25zPV8uX3ByZXZSZXZwYXRoPV8uX3ByZXZQb2x5Z29ucz1udWxsKSxBLmRhdHVtKGgpLFMuZGF0dW0oaCksZnVuY3Rpb24oZSxhLGkpe3ZhciBvLHU9aVswXS50cmFjZSxoPWMuaGFzTWFya2Vycyh1KSxmPWMuaGFzVGV4dCh1KSxwPXR0KHUpLGQ9ZXQsZz1ldDtpZihofHxmKXt2YXIgdj1zLF89dS5zdGFja2dyb3VwLHc9XyYmImluZmVyIHplcm8iPT09dC5fZnVsbExheW91dC5fc2NhdHRlclN0YWNrT3B0c1t4Ll9pZCtiLl9pZF1bX10uc3RhY2tnYXBzO3UubWFya2VyLm1heGRpc3BsYXllZHx8dS5fbmVlZHNDdWxsP3Y9dz9LOko6XyYmIXcmJih2PVEpLGgmJihkPXYpLGYmJihnPXYpfXZhciBrLFQ9KG89ZS5zZWxlY3RBbGwoInBhdGgucG9pbnQiKS5kYXRhKGQscCkpLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZCgicG9pbnQiLCEwKTttJiZULmNhbGwobC5wb2ludFN0eWxlLHUsdCkuY2FsbChsLnRyYW5zbGF0ZVBvaW50cyx4LGIpLnN0eWxlKCJvcGFjaXR5IiwwKS50cmFuc2l0aW9uKCkuc3R5bGUoIm9wYWNpdHkiLDEpLG8ub3JkZXIoKSxoJiYoaz1sLm1ha2VQb2ludFN0eWxlRm5zKHUpKSxvLmVhY2goZnVuY3Rpb24oZSl7dmFyIGE9bi5zZWxlY3QodGhpcyksaT15KGEpO2wudHJhbnNsYXRlUG9pbnQoZSxpLHgsYik/KGwuc2luZ2xlUG9pbnRTdHlsZShlLGksdSxrLHQpLHIubGF5ZXJDbGlwSWQmJmwuaGlkZU91dHNpZGVSYW5nZVBvaW50KGUsaSx4LGIsdS54Y2FsZW5kYXIsdS55Y2FsZW5kYXIpLHUuY3VzdG9tZGF0YSYmYS5jbGFzc2VkKCJwbG90bHktY3VzdG9tZGF0YSIsbnVsbCE9PWUuZGF0YSYmdm9pZCAwIT09ZS5kYXRhKSk6aS5yZW1vdmUoKX0pLG0/by5leGl0KCkudHJhbnNpdGlvbigpLnN0eWxlKCJvcGFjaXR5IiwwKS5yZW1vdmUoKTpvLmV4aXQoKS5yZW1vdmUoKSwobz1hLnNlbGVjdEFsbCgiZyIpLmRhdGEoZyxwKSkuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJ0ZXh0cG9pbnQiLCEwKS5hcHBlbmQoInRleHQiKSxvLm9yZGVyKCksby5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPW4uc2VsZWN0KHRoaXMpLGE9eShlLnNlbGVjdCgidGV4dCIpKTtsLnRyYW5zbGF0ZVBvaW50KHQsYSx4LGIpP3IubGF5ZXJDbGlwSWQmJmwuaGlkZU91dHNpZGVSYW5nZVBvaW50KHQsZSx4LGIsdS54Y2FsZW5kYXIsdS55Y2FsZW5kYXIpOmUucmVtb3ZlKCl9KSxvLnNlbGVjdEFsbCgidGV4dCIpLmNhbGwobC50ZXh0UG9pbnRTdHlsZSx1LHQpLmVhY2goZnVuY3Rpb24odCl7dmFyIGU9eC5jMnAodC54KSxyPWIuYzJwKHQueSk7bi5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJ0c3Bhbi5saW5lIikuZWFjaChmdW5jdGlvbigpe3kobi5zZWxlY3QodGhpcykpLmF0dHIoe3g6ZSx5OnJ9KX0pfSksby5leGl0KCkucmVtb3ZlKCl9KEEsUyxoKTt2YXIgWD0hMT09PV8uY2xpcG9uYXhpcz9udWxsOnIubGF5ZXJDbGlwSWQ7bC5zZXRDbGlwVXJsKEEsWCx0KSxsLnNldENsaXBVcmwoUyxYLHQpfWZ1bmN0aW9uIFoodCl7eSh0KS5hdHRyKCJkIiwiTTAsMFoiKX1mdW5jdGlvbiBKKHQpe3JldHVybiB0LmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4hdC5nYXAmJnQudmlzfSl9ZnVuY3Rpb24gSyh0KXtyZXR1cm4gdC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQudmlzfSl9ZnVuY3Rpb24gUSh0KXtyZXR1cm4gdC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIXQuZ2FwfSl9ZnVuY3Rpb24gJCh0KXtyZXR1cm4gdC5pZH1mdW5jdGlvbiB0dCh0KXtpZih0LmlkcylyZXR1cm4gJH1mdW5jdGlvbiBldCgpe3JldHVybiExfX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSxpLGMpe3ZhciB1LGYsZD0haSxnPSEhaSYmaS5kdXJhdGlvbj4wLHY9aCh0LGUscik7KCh1PWEuc2VsZWN0QWxsKCJnLnRyYWNlIikuZGF0YSh2LGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdLnRyYWNlLnVpZH0pKS5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIixmdW5jdGlvbih0KXtyZXR1cm4idHJhY2Ugc2NhdHRlciB0cmFjZSIrdFswXS50cmFjZS51aWR9KS5zdHlsZSgic3Ryb2tlLW1pdGVybGltaXQiLDIpLHUub3JkZXIoKSxmdW5jdGlvbih0LGUscil7ZS5lYWNoKGZ1bmN0aW9uKGUpe3ZhciBhPW8obi5zZWxlY3QodGhpcyksImciLCJmaWxscyIpO2wuc2V0Q2xpcFVybChhLHIubGF5ZXJDbGlwSWQsdCk7dmFyIGk9ZVswXS50cmFjZSxjPVtdO2kuX293bmZpbGwmJmMucHVzaCgiX293bkZpbGwiKSxpLl9uZXh0dHJhY2UmJmMucHVzaCgiX25leHRGaWxsIik7dmFyIHU9YS5zZWxlY3RBbGwoImciKS5kYXRhKGMscyk7dS5lbnRlcigpLmFwcGVuZCgiZyIpLHUuZXhpdCgpLmVhY2goZnVuY3Rpb24odCl7aVt0XT1udWxsfSkucmVtb3ZlKCksdS5vcmRlcigpLmVhY2goZnVuY3Rpb24odCl7aVt0XT1vKG4uc2VsZWN0KHRoaXMpLCJwYXRoIiwianMtZmlsbCIpfSl9KX0odCx1LGUpLGcpPyhjJiYoZj1jKCkpLG4udHJhbnNpdGlvbigpLmR1cmF0aW9uKGkuZHVyYXRpb24pLmVhc2UoaS5lYXNpbmcpLmVhY2goImVuZCIsZnVuY3Rpb24oKXtmJiZmKCl9KS5lYWNoKCJpbnRlcnJ1cHQiLGZ1bmN0aW9uKCl7ZiYmZigpfSkuZWFjaChmdW5jdGlvbigpe2Euc2VsZWN0QWxsKCJnLnRyYWNlIikuZWFjaChmdW5jdGlvbihyLG4pe3AodCxuLGUscix2LHRoaXMsaSl9KX0pKTp1LmVhY2goZnVuY3Rpb24ocixuKXtwKHQsbixlLHIsdix0aGlzLGkpfSk7ZCYmdS5leGl0KCkucmVtb3ZlKCksYS5zZWxlY3RBbGwoInBhdGg6bm90KFtkXSkiKS5yZW1vdmUoKX19LHsiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo2MTMsIi4uLy4uL2xpYiI6NzE3LCIuLi8uLi9saWIvcG9seWdvbiI6NzI5LCIuLi8uLi9yZWdpc3RyeSI6ODQ2LCIuL2xpbmVfcG9pbnRzIjoxMTM0LCIuL2xpbmtfdHJhY2VzIjoxMTM2LCIuL3N1YnR5cGVzIjoxMTQ0LGQzOjE2NX1dLDExNDE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9zdWJ0eXBlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLGEsaSxvLHM9dC5jZCxsPXQueGF4aXMsYz10LnlheGlzLHU9W10saD1zWzBdLnRyYWNlO2lmKCFuLmhhc01hcmtlcnMoaCkmJiFuLmhhc1RleHQoaCkpcmV0dXJuW107aWYoITE9PT1lKWZvcihyPTA7cjxzLmxlbmd0aDtyKyspc1tyXS5zZWxlY3RlZD0wO2Vsc2UgZm9yKHI9MDtyPHMubGVuZ3RoO3IrKylhPXNbcl0saT1sLmMycChhLngpLG89Yy5jMnAoYS55KSxudWxsIT09YS5pJiZlLmNvbnRhaW5zKFtpLG9dLCExLHIsdCk/KHUucHVzaCh7cG9pbnROdW1iZXI6YS5pLHg6bC5jMmQoYS54KSx5OmMuYzJkKGEueSl9KSxhLnNlbGVjdGVkPTEpOmEuc2VsZWN0ZWQ9MDtyZXR1cm4gdX19LHsiLi9zdWJ0eXBlcyI6MTE0NH1dLDExNDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49WyJvcmllbnRhdGlvbiIsImdyb3Vwbm9ybSIsInN0YWNrZ2FwcyJdO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhKXt2YXIgaT1yLl9zY2F0dGVyU3RhY2tPcHRzLG89YSgic3RhY2tncm91cCIpO2lmKG8pe3ZhciBzPWUueGF4aXMrZS55YXhpcyxsPWlbc107bHx8KGw9aVtzXT17fSk7dmFyIGM9bFtvXSx1PSExO2M/Yy50cmFjZXMucHVzaChlKTooYz1sW29dPXt0cmFjZUluZGljZXM6W10sdHJhY2VzOltlXX0sdT0hMCk7Zm9yKHZhciBoPXtvcmllbnRhdGlvbjplLngmJiFlLnk/ImgiOiJ2In0sZj0wO2Y8bi5sZW5ndGg7ZisrKXt2YXIgcD1uW2ZdLGQ9cCsiRm91bmQiO2lmKCFjW2RdKXt2YXIgZz12b2lkIDAhPT10W3BdLHY9Im9yaWVudGF0aW9uIj09PXA7aWYoKGd8fHUpJiYoY1twXT1hKHAsaFtwXSksdiYmKGMuZmlsbERmbHQ9ImgiPT09Y1twXT8idG9uZXh0eCI6InRvbmV4dHkiKSxnJiYoY1tkXT0hMCwhdSYmKGRlbGV0ZSBjLnRyYWNlc1swXVtwXSx2KSkpKWZvcih2YXIgbT0wO208Yy50cmFjZXMubGVuZ3RoLTE7bSsrKXt2YXIgeT1jLnRyYWNlc1ttXTt5Ll9pbnB1dC5maWxsIT09eS5maWxsJiYoeS5maWxsPWMuZmlsbERmbHQpfX19cmV0dXJuIGN9fX0se31dLDExNDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGk9dCgiLi4vLi4vcmVnaXN0cnkiKTtmdW5jdGlvbiBvKHQsZSxyKXthLnBvaW50U3R5bGUodC5zZWxlY3RBbGwoInBhdGgucG9pbnQiKSxlLHIpfWZ1bmN0aW9uIHModCxlLHIpe2EudGV4dFBvaW50U3R5bGUodC5zZWxlY3RBbGwoInRleHQiKSxlLHIpfWUuZXhwb3J0cz17c3R5bGU6ZnVuY3Rpb24odCl7dmFyIGU9bi5zZWxlY3QodCkuc2VsZWN0QWxsKCJnLnRyYWNlLnNjYXR0ZXIiKTtlLnN0eWxlKCJvcGFjaXR5IixmdW5jdGlvbih0KXtyZXR1cm4gdFswXS50cmFjZS5vcGFjaXR5fSksZS5zZWxlY3RBbGwoImcucG9pbnRzIikuZWFjaChmdW5jdGlvbihlKXtvKG4uc2VsZWN0KHRoaXMpLGUudHJhY2V8fGVbMF0udHJhY2UsdCl9KSxlLnNlbGVjdEFsbCgiZy50ZXh0IikuZWFjaChmdW5jdGlvbihlKXtzKG4uc2VsZWN0KHRoaXMpLGUudHJhY2V8fGVbMF0udHJhY2UsdCl9KSxlLnNlbGVjdEFsbCgiZy50cmFjZSBwYXRoLmpzLWxpbmUiKS5jYWxsKGEubGluZUdyb3VwU3R5bGUpLGUuc2VsZWN0QWxsKCJnLnRyYWNlIHBhdGguanMtZmlsbCIpLmNhbGwoYS5maWxsR3JvdXBTdHlsZSksaS5nZXRDb21wb25lbnRNZXRob2QoImVycm9yYmFycyIsInN0eWxlIikoZSl9LHN0eWxlUG9pbnRzOm8sc3R5bGVUZXh0OnMsc3R5bGVPblNlbGVjdDpmdW5jdGlvbih0LGUscil7dmFyIG49ZVswXS50cmFjZTtuLnNlbGVjdGVkcG9pbnRzPyhhLnNlbGVjdGVkUG9pbnRTdHlsZShyLnNlbGVjdEFsbCgicGF0aC5wb2ludCIpLG4pLGEuc2VsZWN0ZWRUZXh0U3R5bGUoci5zZWxlY3RBbGwoInRleHQiKSxuKSk6KG8ocixuLHQpLHMocixuLHQpKX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjEzLCIuLi8uLi9yZWdpc3RyeSI6ODQ2LGQzOjE2NX1dLDExNDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIik7ZS5leHBvcnRzPXtoYXNMaW5lczpmdW5jdGlvbih0KXtyZXR1cm4gdC52aXNpYmxlJiZ0Lm1vZGUmJi0xIT09dC5tb2RlLmluZGV4T2YoImxpbmVzIil9LGhhc01hcmtlcnM6ZnVuY3Rpb24odCl7cmV0dXJuIHQudmlzaWJsZSYmKHQubW9kZSYmLTEhPT10Lm1vZGUuaW5kZXhPZigibWFya2VycyIpfHwic3Bsb20iPT09dC50eXBlKX0saGFzVGV4dDpmdW5jdGlvbih0KXtyZXR1cm4gdC52aXNpYmxlJiZ0Lm1vZGUmJi0xIT09dC5tb2RlLmluZGV4T2YoInRleHQiKX0saXNCdWJibGU6ZnVuY3Rpb24odCl7cmV0dXJuIG4uaXNQbGFpbk9iamVjdCh0Lm1hcmtlcikmJm4uaXNBcnJheU9yVHlwZWRBcnJheSh0Lm1hcmtlci5zaXplKX19fSx7Ii4uLy4uL2xpYiI6NzE3fV0sMTE0NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSxpKXtpPWl8fHt9LGEoInRleHRwb3NpdGlvbiIpLG4uY29lcmNlRm9udChhLCJ0ZXh0Zm9udCIsci5mb250KSxpLm5vU2VsZWN0fHwoYSgic2VsZWN0ZWQudGV4dGZvbnQuY29sb3IiKSxhKCJ1bnNlbGVjdGVkLnRleHRmb250LmNvbG9yIikpfX0seyIuLi8uLi9saWIiOjcxN31dLDExNDY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9yZWdpc3RyeSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixpKXt2YXIgbyxzPWkoIngiKSxsPWkoInkiKTtpZihhLmdldENvbXBvbmVudE1ldGhvZCgiY2FsZW5kYXJzIiwiaGFuZGxlVHJhY2VEZWZhdWx0cyIpKHQsZSxbIngiLCJ5Il0scikscyl7dmFyIGM9bi5taW5Sb3dMZW5ndGgocyk7bD9vPU1hdGgubWluKGMsbi5taW5Sb3dMZW5ndGgobCkpOihvPWMsaSgieTAiKSxpKCJkeSIpKX1lbHNle2lmKCFsKXJldHVybiAwO289bi5taW5Sb3dMZW5ndGgobCksaSgieDAiKSxpKCJkeCIpfXJldHVybiBlLl9sZW5ndGg9byxvfX0seyIuLi8uLi9saWIiOjcxNywiLi4vLi4vcmVnaXN0cnkiOjg0Nn1dLDExNDc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxvPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS50ZXh0dGVtcGxhdGVBdHRycyxzPXQoIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxsPXQoIi4uLy4uL2NvbnN0YW50cy9nbDNkX2Rhc2hlcyIpLGM9dCgiLi4vLi4vY29uc3RhbnRzL2dsM2RfbWFya2VycyIpLHU9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsaD10KCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIikub3ZlcnJpZGVBbGwsZj1uLmxpbmUscD1uLm1hcmtlcixkPXAubGluZSxnPXUoe3dpZHRoOmYud2lkdGgsZGFzaDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOk9iamVjdC5rZXlzKGwpLGRmbHQ6InNvbGlkIn19LGEoImxpbmUiKSk7dmFyIHY9ZS5leHBvcnRzPWgoe3g6bi54LHk6bi55LHo6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifSx0ZXh0OnUoe30sbi50ZXh0LHt9KSx0ZXh0dGVtcGxhdGU6byh7fSx7fSksaG92ZXJ0ZXh0OnUoe30sbi5ob3ZlcnRleHQse30pLGhvdmVydGVtcGxhdGU6aSgpLG1vZGU6dSh7fSxuLm1vZGUse2RmbHQ6ImxpbmVzK21hcmtlcnMifSksc3VyZmFjZWF4aXM6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbLTEsMCwxLDJdLGRmbHQ6LTF9LHN1cmZhY2Vjb2xvcjp7dmFsVHlwZToiY29sb3IifSxwcm9qZWN0aW9uOnt4OntzaG93Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxvcGFjaXR5Ont2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MX0sc2NhbGU6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEwLGRmbHQ6Mi8zfX0seTp7c2hvdzp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sb3BhY2l0eTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0OjF9LHNjYWxlOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxMCxkZmx0OjIvM319LHo6e3Nob3c6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LG9wYWNpdHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxfSxzY2FsZTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MTAsZGZsdDoyLzN9fX0sY29ubmVjdGdhcHM6bi5jb25uZWN0Z2FwcyxsaW5lOmcsbWFya2VyOnUoe3N5bWJvbDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOk9iamVjdC5rZXlzKGMpLGRmbHQ6ImNpcmNsZSIsYXJyYXlPazohMH0sc2l6ZTp1KHt9LHAuc2l6ZSx7ZGZsdDo4fSksc2l6ZXJlZjpwLnNpemVyZWYsc2l6ZW1pbjpwLnNpemVtaW4sc2l6ZW1vZGU6cC5zaXplbW9kZSxvcGFjaXR5OnUoe30scC5vcGFjaXR5LHthcnJheU9rOiExfSksY29sb3JiYXI6cC5jb2xvcmJhcixsaW5lOnUoe3dpZHRoOnUoe30sZC53aWR0aCx7YXJyYXlPazohMX0pfSxhKCJtYXJrZXIubGluZSIpKX0sYSgibWFya2VyIikpLHRleHRwb3NpdGlvbjp1KHt9LG4udGV4dHBvc2l0aW9uLHtkZmx0OiJ0b3AgY2VudGVyIn0pLHRleHRmb250Ontjb2xvcjpuLnRleHRmb250LmNvbG9yLHNpemU6bi50ZXh0Zm9udC5zaXplLGZhbWlseTp1KHt9LG4udGV4dGZvbnQuZmFtaWx5LHthcnJheU9rOiExfSl9LGhvdmVyaW5mbzp1KHt9LHMuaG92ZXJpbmZvKX0sImNhbGMiLCJuZXN0ZWQiKTt2LnguZWRpdFR5cGU9di55LmVkaXRUeXBlPXYuei5lZGl0VHlwZT0iY2FsYytjbGVhckF4aXNUeXBlcyJ9LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiOjU5OSwiLi4vLi4vY29uc3RhbnRzL2dsM2RfZGFzaGVzIjo2OTAsIi4uLy4uL2NvbnN0YW50cy9nbDNkX21hcmtlcnMiOjY5MSwiLi4vLi4vbGliL2V4dGVuZCI6NzA4LCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIjo3NDgsIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiOjc2MiwiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyI6ODQxLCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiOjExMjB9XSwxMTQ4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXIvYXJyYXlzX3RvX2NhbGNkYXRhIiksYT10KCIuLi9zY2F0dGVyL2NvbG9yc2NhbGVfY2FsYyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPVt7eDohMSx5OiExLHRyYWNlOmUsdDp7fX1dO3JldHVybiBuKHIsZSksYSh0LGUpLHJ9fSx7Ii4uL3NjYXR0ZXIvYXJyYXlzX3RvX2NhbGNkYXRhIjoxMTE5LCIuLi9zY2F0dGVyL2NvbG9yc2NhbGVfY2FsYyI6MTEyM31dLDExNDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcmVnaXN0cnkiKTtmdW5jdGlvbiBhKHQsZSxyLGEpe2lmKCFlfHwhZS52aXNpYmxlKXJldHVybiBudWxsO2Zvcih2YXIgaT1uLmdldENvbXBvbmVudE1ldGhvZCgiZXJyb3JiYXJzIiwibWFrZUNvbXB1dGVFcnJvciIpKGUpLG89bmV3IEFycmF5KHQubGVuZ3RoKSxzPTA7czx0Lmxlbmd0aDtzKyspe3ZhciBsPWkoK3Rbc10scyk7aWYoImxvZyI9PT1hLnR5cGUpe3ZhciBjPWEuYzJsKHRbc10pLHU9dFtzXS1sWzBdLGg9dFtzXStsWzFdO2lmKG9bc109WyhhLmMybCh1LCEwKS1jKSpyLChhLmMybChoLCEwKS1jKSpyXSx1PjApe3ZhciBmPWEuYzJsKHUpO2EuX2xvd2VyTG9nRXJyb3JCb3VuZHx8KGEuX2xvd2VyTG9nRXJyb3JCb3VuZD1mKSxhLl9sb3dlckVycm9yQm91bmQ9TWF0aC5taW4oYS5fbG93ZXJMb2dFcnJvckJvdW5kLGYpfX1lbHNlIG9bc109Wy1sWzBdKnIsbFsxXSpyXX1yZXR1cm4gb31lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPVthKHQueCx0LmVycm9yX3gsZVswXSxyLnhheGlzKSxhKHQueSx0LmVycm9yX3ksZVsxXSxyLnlheGlzKSxhKHQueix0LmVycm9yX3osZVsyXSxyLnpheGlzKV0saT1mdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKylpZih0W2VdKXJldHVybiB0W2VdLmxlbmd0aDtyZXR1cm4gMH0obik7aWYoMD09PWkpcmV0dXJuIG51bGw7Zm9yKHZhciBvPW5ldyBBcnJheShpKSxzPTA7czxpO3MrKyl7Zm9yKHZhciBsPVtbMCwwLDBdLFswLDAsMF1dLGM9MDtjPDM7YysrKWlmKG5bY10pZm9yKHZhciB1PTA7dTwyO3UrKylsW3VdW2NdPW5bY11bc11bdV07b1tzXT1sfXJldHVybiBvfX0seyIuLi8uLi9yZWdpc3RyeSI6ODQ2fV0sMTE1MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJnbC1saW5lM2QiKSxhPXQoImdsLXNjYXR0ZXIzZCIpLGk9dCgiZ2wtZXJyb3IzZCIpLG89dCgiZ2wtbWVzaDNkIikscz10KCJkZWxhdW5heS10cmlhbmd1bGF0ZSIpLGw9dCgiLi4vLi4vbGliIiksYz10KCIuLi8uLi9saWIvc3RyMnJnYmFycmF5IiksdT10KCIuLi8uLi9saWIvZ2xfZm9ybWF0X2NvbG9yIikuZm9ybWF0Q29sb3IsaD10KCIuLi9zY2F0dGVyL21ha2VfYnViYmxlX3NpemVfZnVuYyIpLGY9dCgiLi4vLi4vY29uc3RhbnRzL2dsM2RfZGFzaGVzIikscD10KCIuLi8uLi9jb25zdGFudHMvZ2wzZF9tYXJrZXJzIiksZD10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGc9dCgiLi4vLi4vY29tcG9uZW50cy9meC9oZWxwZXJzIikuYXBwZW5kQXJyYXlQb2ludFZhbHVlLHY9dCgiLi9jYWxjX2Vycm9ycyIpO2Z1bmN0aW9uIG0odCxlKXt0aGlzLnNjZW5lPXQsdGhpcy51aWQ9ZSx0aGlzLmxpbmVQbG90PW51bGwsdGhpcy5zY2F0dGVyUGxvdD1udWxsLHRoaXMuZXJyb3JCYXJzPW51bGwsdGhpcy50ZXh0TWFya2Vycz1udWxsLHRoaXMuZGVsYXVuYXlNZXNoPW51bGwsdGhpcy5jb2xvcj1udWxsLHRoaXMubW9kZT0iIix0aGlzLmRhdGFQb2ludHM9W10sdGhpcy5heGVzQm91bmRzPVtbLTEvMCwtMS8wLC0xLzBdLFsxLzAsMS8wLDEvMF1dLHRoaXMudGV4dExhYmVscz1udWxsLHRoaXMuZGF0YT1udWxsfXZhciB5PW0ucHJvdG90eXBlO2Z1bmN0aW9uIHgodCl7cmV0dXJuIG51bGw9PXQ/MDp0LmluZGV4T2YoImxlZnQiKT4tMT8tMTp0LmluZGV4T2YoInJpZ2h0Iik+LTE/MTowfWZ1bmN0aW9uIGIodCl7cmV0dXJuIG51bGw9PXQ/MDp0LmluZGV4T2YoInRvcCIpPi0xPy0xOnQuaW5kZXhPZigiYm90dG9tIik+LTE/MTowfWZ1bmN0aW9uIF8odCxlKXtyZXR1cm4gZSg0KnQpfWZ1bmN0aW9uIHcodCl7cmV0dXJuIHBbdF19ZnVuY3Rpb24gayh0LGUscixuLGEpe3ZhciBpPW51bGw7aWYobC5pc0FycmF5T3JUeXBlZEFycmF5KHQpKXtpPVtdO2Zvcih2YXIgbz0wO288ZTtvKyspdm9pZCAwPT09dFtvXT9pW29dPW46aVtvXT1yKHRbb10sYSl9ZWxzZSBpPXIodCxsLmlkZW50aXR5KTtyZXR1cm4gaX1mdW5jdGlvbiBUKHQsZSl7dmFyIHIsbixhLGksbyxzLGY9W10scD10LmZ1bGxTY2VuZUxheW91dCxtPXQuZGF0YVNjYWxlLHk9cC54YXhpcyxUPXAueWF4aXMsTT1wLnpheGlzLEE9ZS5tYXJrZXIsUz1lLmxpbmUsRT1lLnh8fFtdLEw9ZS55fHxbXSxDPWUuenx8W10sUD1FLmxlbmd0aCxPPWUueGNhbGVuZGFyLHo9ZS55Y2FsZW5kYXIsST1lLnpjYWxlbmRhcjtmb3Iobz0wO288UDtvKyspcj15LmQybChFW29dLDAsTykqbVswXSxuPVQuZDJsKExbb10sMCx6KSptWzFdLGE9TS5kMmwoQ1tvXSwwLEkpKm1bMl0sZltvXT1bcixuLGFdO2lmKEFycmF5LmlzQXJyYXkoZS50ZXh0KSlzPWUudGV4dDtlbHNlIGlmKHZvaWQgMCE9PWUudGV4dClmb3Iocz1uZXcgQXJyYXkoUCksbz0wO288UDtvKyspc1tvXT1lLnRleHQ7ZnVuY3Rpb24gRCh0LGUpe3ZhciByPXBbdF07cmV0dXJuIGQudGlja1RleHQocixyLmQybChlKSwhMCkudGV4dH12YXIgUj1lLnRleHR0ZW1wbGF0ZTtpZihSKXt2YXIgRj10LmZ1bGxMYXlvdXQuX2QzbG9jYWxlLEI9QXJyYXkuaXNBcnJheShSKSxOPUI/TWF0aC5taW4oUi5sZW5ndGgsUCk6UCxqPUI/ZnVuY3Rpb24odCl7cmV0dXJuIFJbdF19OmZ1bmN0aW9uKCl7cmV0dXJuIFJ9O2ZvcihzPW5ldyBBcnJheShOKSxvPTA7bzxOO28rKyl7dmFyIFY9e3g6RVtvXSx5Okxbb10sejpDW29dfSxVPXt4TGFiZWw6RCgieGF4aXMiLEVbb10pLHlMYWJlbDpEKCJ5YXhpcyIsTFtvXSksekxhYmVsOkQoInpheGlzIixDW29dKX0scT17fTtnKHEsZSxvKTt2YXIgSD1lLl9tZXRhfHx7fTtzW29dPWwudGV4dHRlbXBsYXRlU3RyaW5nKGoobyksVSxGLHEsVixIKX19aWYoaT17cG9zaXRpb246Zixtb2RlOmUubW9kZSx0ZXh0OnN9LCJsaW5lImluIGUmJihpLmxpbmVDb2xvcj11KFMsMSxQKSxpLmxpbmVXaWR0aD1TLndpZHRoLGkubGluZURhc2hlcz1TLmRhc2gpLCJtYXJrZXIiaW4gZSl7dmFyIEc9aChlKTtpLnNjYXR0ZXJDb2xvcj11KEEsMSxQKSxpLnNjYXR0ZXJTaXplPWsoQS5zaXplLFAsXywyMCxHKSxpLnNjYXR0ZXJNYXJrZXI9ayhBLnN5bWJvbCxQLHcsIlx1MjVjZiIpLGkuc2NhdHRlckxpbmVXaWR0aD1BLmxpbmUud2lkdGgsaS5zY2F0dGVyTGluZUNvbG9yPXUoQS5saW5lLDEsUCksaS5zY2F0dGVyQW5nbGU9MH0idGV4dHBvc2l0aW9uImluIGUmJihpLnRleHRPZmZzZXQ9ZnVuY3Rpb24odCl7dmFyIGU9WzAsMF07aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyllW3JdPVswLDBdLHRbcl0mJihlW3JdWzBdPXgodFtyXSksZVtyXVsxXT1iKHRbcl0pKTtlbHNlIGVbMF09eCh0KSxlWzFdPWIodCk7cmV0dXJuIGV9KGUudGV4dHBvc2l0aW9uKSxpLnRleHRDb2xvcj11KGUudGV4dGZvbnQsMSxQKSxpLnRleHRTaXplPWsoZS50ZXh0Zm9udC5zaXplLFAsbC5pZGVudGl0eSwxMiksaS50ZXh0Rm9udD1lLnRleHRmb250LmZhbWlseSxpLnRleHRBbmdsZT0wKTt2YXIgWT1bIngiLCJ5IiwieiJdO2ZvcihpLnByb2plY3Q9WyExLCExLCExXSxpLnByb2plY3RTY2FsZT1bMSwxLDFdLGkucHJvamVjdE9wYWNpdHk9WzEsMSwxXSxvPTA7bzwzOysrbyl7dmFyIFc9ZS5wcm9qZWN0aW9uW1lbb11dOyhpLnByb2plY3Rbb109Vy5zaG93KSYmKGkucHJvamVjdE9wYWNpdHlbb109Vy5vcGFjaXR5LGkucHJvamVjdFNjYWxlW29dPVcuc2NhbGUpfWkuZXJyb3JCb3VuZHM9dihlLG0scCk7dmFyIFg9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVswLDAsMF0scj1bWzAsMCwwXSxbMCwwLDBdLFswLDAsMF1dLG49WzEsMSwxXSxhPTA7YTwzO2ErKyl7dmFyIGk9dFthXTtpJiYhMSE9PWkuY29weV96c3R5bGUmJiExIT09dFsyXS52aXNpYmxlJiYoaT10WzJdKSxpJiZpLnZpc2libGUmJihlW2FdPWkud2lkdGgvMixyW2FdPWMoaS5jb2xvciksblthXT1pLnRoaWNrbmVzcyl9cmV0dXJue2NhcFNpemU6ZSxjb2xvcjpyLGxpbmVXaWR0aDpufX0oW2UuZXJyb3JfeCxlLmVycm9yX3ksZS5lcnJvcl96XSk7cmV0dXJuIGkuZXJyb3JDb2xvcj1YLmNvbG9yLGkuZXJyb3JMaW5lV2lkdGg9WC5saW5lV2lkdGgsaS5lcnJvckNhcFNpemU9WC5jYXBTaXplLGkuZGVsYXVuYXlBeGlzPWUuc3VyZmFjZWF4aXMsaS5kZWxhdW5heUNvbG9yPWMoZS5zdXJmYWNlY29sb3IpLGl9ZnVuY3Rpb24gTSh0KXtpZihBcnJheS5pc0FycmF5KHQpKXt2YXIgZT10WzBdO3JldHVybiBBcnJheS5pc0FycmF5KGUpJiYodD1lKSwicmdiKCIrdC5zbGljZSgwLDMpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCgyNTUqdCl9KSsiKSJ9cmV0dXJuIG51bGx9eS5oYW5kbGVQaWNrPWZ1bmN0aW9uKHQpe2lmKHQub2JqZWN0JiYodC5vYmplY3Q9PT10aGlzLmxpbmVQbG90fHx0Lm9iamVjdD09PXRoaXMuZGVsYXVuYXlNZXNofHx0Lm9iamVjdD09PXRoaXMudGV4dE1hcmtlcnN8fHQub2JqZWN0PT09dGhpcy5zY2F0dGVyUGxvdCkpe3ZhciBlPXQuaW5kZXg9dC5kYXRhLmluZGV4O3JldHVybiB0Lm9iamVjdC5oaWdobGlnaHQmJnQub2JqZWN0LmhpZ2hsaWdodChudWxsKSx0aGlzLnNjYXR0ZXJQbG90JiYodC5vYmplY3Q9dGhpcy5zY2F0dGVyUGxvdCx0aGlzLnNjYXR0ZXJQbG90LmhpZ2hsaWdodCh0LmRhdGEpKSx0LnRleHRMYWJlbD0iIix0aGlzLnRleHRMYWJlbHMmJihBcnJheS5pc0FycmF5KHRoaXMudGV4dExhYmVscyk/KHRoaXMudGV4dExhYmVsc1tlXXx8MD09PXRoaXMudGV4dExhYmVsc1tlXSkmJih0LnRleHRMYWJlbD10aGlzLnRleHRMYWJlbHNbZV0pOnQudGV4dExhYmVsPXRoaXMudGV4dExhYmVscyksdC50cmFjZUNvb3JkaW5hdGU9W3RoaXMuZGF0YS54W2VdLHRoaXMuZGF0YS55W2VdLHRoaXMuZGF0YS56W2VdXSwhMH19LHkudXBkYXRlPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbCxjLHU9dGhpcy5zY2VuZS5nbHBsb3QuZ2wsaD1mLnNvbGlkO3RoaXMuZGF0YT10O3ZhciBwPVQodGhpcy5zY2VuZSx0KTsibW9kZSJpbiBwJiYodGhpcy5tb2RlPXAubW9kZSksImxpbmVEYXNoZXMiaW4gcCYmcC5saW5lRGFzaGVzIGluIGYmJihoPWZbcC5saW5lRGFzaGVzXSksdGhpcy5jb2xvcj1NKHAuc2NhdHRlckNvbG9yKXx8TShwLmxpbmVDb2xvciksdGhpcy5kYXRhUG9pbnRzPXAucG9zaXRpb24sZT17Z2w6dGhpcy5zY2VuZS5nbHBsb3QuZ2wscG9zaXRpb246cC5wb3NpdGlvbixjb2xvcjpwLmxpbmVDb2xvcixsaW5lV2lkdGg6cC5saW5lV2lkdGh8fDEsZGFzaGVzOmhbMF0sZGFzaFNjYWxlOmhbMV0sb3BhY2l0eTp0Lm9wYWNpdHksY29ubmVjdEdhcHM6dC5jb25uZWN0Z2Fwc30sLTEhPT10aGlzLm1vZGUuaW5kZXhPZigibGluZXMiKT90aGlzLmxpbmVQbG90P3RoaXMubGluZVBsb3QudXBkYXRlKGUpOih0aGlzLmxpbmVQbG90PW4oZSksdGhpcy5saW5lUGxvdC5fdHJhY2U9dGhpcyx0aGlzLnNjZW5lLmdscGxvdC5hZGQodGhpcy5saW5lUGxvdCkpOnRoaXMubGluZVBsb3QmJih0aGlzLnNjZW5lLmdscGxvdC5yZW1vdmUodGhpcy5saW5lUGxvdCksdGhpcy5saW5lUGxvdC5kaXNwb3NlKCksdGhpcy5saW5lUGxvdD1udWxsKTt2YXIgZD10Lm9wYWNpdHk7aWYodC5tYXJrZXImJnQubWFya2VyLm9wYWNpdHkmJihkKj10Lm1hcmtlci5vcGFjaXR5KSxyPXtnbDp0aGlzLnNjZW5lLmdscGxvdC5nbCxwb3NpdGlvbjpwLnBvc2l0aW9uLGNvbG9yOnAuc2NhdHRlckNvbG9yLHNpemU6cC5zY2F0dGVyU2l6ZSxnbHlwaDpwLnNjYXR0ZXJNYXJrZXIsb3BhY2l0eTpkLG9ydGhvZ3JhcGhpYzohMCxsaW5lV2lkdGg6cC5zY2F0dGVyTGluZVdpZHRoLGxpbmVDb2xvcjpwLnNjYXR0ZXJMaW5lQ29sb3IscHJvamVjdDpwLnByb2plY3QscHJvamVjdFNjYWxlOnAucHJvamVjdFNjYWxlLHByb2plY3RPcGFjaXR5OnAucHJvamVjdE9wYWNpdHl9LC0xIT09dGhpcy5tb2RlLmluZGV4T2YoIm1hcmtlcnMiKT90aGlzLnNjYXR0ZXJQbG90P3RoaXMuc2NhdHRlclBsb3QudXBkYXRlKHIpOih0aGlzLnNjYXR0ZXJQbG90PWEociksdGhpcy5zY2F0dGVyUGxvdC5fdHJhY2U9dGhpcyx0aGlzLnNjYXR0ZXJQbG90LmhpZ2hsaWdodFNjYWxlPTEsdGhpcy5zY2VuZS5nbHBsb3QuYWRkKHRoaXMuc2NhdHRlclBsb3QpKTp0aGlzLnNjYXR0ZXJQbG90JiYodGhpcy5zY2VuZS5nbHBsb3QucmVtb3ZlKHRoaXMuc2NhdHRlclBsb3QpLHRoaXMuc2NhdHRlclBsb3QuZGlzcG9zZSgpLHRoaXMuc2NhdHRlclBsb3Q9bnVsbCksYz17Z2w6dGhpcy5zY2VuZS5nbHBsb3QuZ2wscG9zaXRpb246cC5wb3NpdGlvbixnbHlwaDpwLnRleHQsY29sb3I6cC50ZXh0Q29sb3Isc2l6ZTpwLnRleHRTaXplLGFuZ2xlOnAudGV4dEFuZ2xlLGFsaWdubWVudDpwLnRleHRPZmZzZXQsZm9udDpwLnRleHRGb250LG9ydGhvZ3JhcGhpYzohMCxsaW5lV2lkdGg6MCxwcm9qZWN0OiExLG9wYWNpdHk6dC5vcGFjaXR5fSx0aGlzLnRleHRMYWJlbHM9dC5ob3ZlcnRleHR8fHQudGV4dCwtMSE9PXRoaXMubW9kZS5pbmRleE9mKCJ0ZXh0Iik/dGhpcy50ZXh0TWFya2Vycz90aGlzLnRleHRNYXJrZXJzLnVwZGF0ZShjKToodGhpcy50ZXh0TWFya2Vycz1hKGMpLHRoaXMudGV4dE1hcmtlcnMuX3RyYWNlPXRoaXMsdGhpcy50ZXh0TWFya2Vycy5oaWdobGlnaHRTY2FsZT0xLHRoaXMuc2NlbmUuZ2xwbG90LmFkZCh0aGlzLnRleHRNYXJrZXJzKSk6dGhpcy50ZXh0TWFya2VycyYmKHRoaXMuc2NlbmUuZ2xwbG90LnJlbW92ZSh0aGlzLnRleHRNYXJrZXJzKSx0aGlzLnRleHRNYXJrZXJzLmRpc3Bvc2UoKSx0aGlzLnRleHRNYXJrZXJzPW51bGwpLGw9e2dsOnRoaXMuc2NlbmUuZ2xwbG90LmdsLHBvc2l0aW9uOnAucG9zaXRpb24sY29sb3I6cC5lcnJvckNvbG9yLGVycm9yOnAuZXJyb3JCb3VuZHMsbGluZVdpZHRoOnAuZXJyb3JMaW5lV2lkdGgsY2FwU2l6ZTpwLmVycm9yQ2FwU2l6ZSxvcGFjaXR5OnQub3BhY2l0eX0sdGhpcy5lcnJvckJhcnM/cC5lcnJvckJvdW5kcz90aGlzLmVycm9yQmFycy51cGRhdGUobCk6KHRoaXMuc2NlbmUuZ2xwbG90LnJlbW92ZSh0aGlzLmVycm9yQmFycyksdGhpcy5lcnJvckJhcnMuZGlzcG9zZSgpLHRoaXMuZXJyb3JCYXJzPW51bGwpOnAuZXJyb3JCb3VuZHMmJih0aGlzLmVycm9yQmFycz1pKGwpLHRoaXMuZXJyb3JCYXJzLl90cmFjZT10aGlzLHRoaXMuc2NlbmUuZ2xwbG90LmFkZCh0aGlzLmVycm9yQmFycykpLHAuZGVsYXVuYXlBeGlzPj0wKXt2YXIgZz1mdW5jdGlvbih0LGUscil7dmFyIG4sYT0ocisxKSUzLGk9KHIrMiklMyxvPVtdLGw9W107Zm9yKG49MDtuPHQubGVuZ3RoOysrbil7dmFyIGM9dFtuXTshaXNOYU4oY1thXSkmJmlzRmluaXRlKGNbYV0pJiYhaXNOYU4oY1tpXSkmJmlzRmluaXRlKGNbaV0pJiYoby5wdXNoKFtjW2FdLGNbaV1dKSxsLnB1c2gobikpfXZhciB1PXMobyk7Zm9yKG49MDtuPHUubGVuZ3RoOysrbilmb3IodmFyIGg9dVtuXSxmPTA7ZjxoLmxlbmd0aDsrK2YpaFtmXT1sW2hbZl1dO3JldHVybntwb3NpdGlvbnM6dCxjZWxsczp1LG1lc2hDb2xvcjplfX0ocC5wb3NpdGlvbixwLmRlbGF1bmF5Q29sb3IscC5kZWxhdW5heUF4aXMpO2cub3BhY2l0eT10Lm9wYWNpdHksdGhpcy5kZWxhdW5heU1lc2g/dGhpcy5kZWxhdW5heU1lc2gudXBkYXRlKGcpOihnLmdsPXUsdGhpcy5kZWxhdW5heU1lc2g9byhnKSx0aGlzLmRlbGF1bmF5TWVzaC5fdHJhY2U9dGhpcyx0aGlzLnNjZW5lLmdscGxvdC5hZGQodGhpcy5kZWxhdW5heU1lc2gpKX1lbHNlIHRoaXMuZGVsYXVuYXlNZXNoJiYodGhpcy5zY2VuZS5nbHBsb3QucmVtb3ZlKHRoaXMuZGVsYXVuYXlNZXNoKSx0aGlzLmRlbGF1bmF5TWVzaC5kaXNwb3NlKCksdGhpcy5kZWxhdW5heU1lc2g9bnVsbCl9LHkuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMubGluZVBsb3QmJih0aGlzLnNjZW5lLmdscGxvdC5yZW1vdmUodGhpcy5saW5lUGxvdCksdGhpcy5saW5lUGxvdC5kaXNwb3NlKCkpLHRoaXMuc2NhdHRlclBsb3QmJih0aGlzLnNjZW5lLmdscGxvdC5yZW1vdmUodGhpcy5zY2F0dGVyUGxvdCksdGhpcy5zY2F0dGVyUGxvdC5kaXNwb3NlKCkpLHRoaXMuZXJyb3JCYXJzJiYodGhpcy5zY2VuZS5nbHBsb3QucmVtb3ZlKHRoaXMuZXJyb3JCYXJzKSx0aGlzLmVycm9yQmFycy5kaXNwb3NlKCkpLHRoaXMudGV4dE1hcmtlcnMmJih0aGlzLnNjZW5lLmdscGxvdC5yZW1vdmUodGhpcy50ZXh0TWFya2VycyksdGhpcy50ZXh0TWFya2Vycy5kaXNwb3NlKCkpLHRoaXMuZGVsYXVuYXlNZXNoJiYodGhpcy5zY2VuZS5nbHBsb3QucmVtb3ZlKHRoaXMuZGVsYXVuYXlNZXNoKSx0aGlzLmRlbGF1bmF5TWVzaC5kaXNwb3NlKCkpfSxlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1uZXcgbSh0LGUudWlkKTtyZXR1cm4gci51cGRhdGUoZSkscn19LHsiLi4vLi4vY29tcG9uZW50cy9meC9oZWxwZXJzIjo2MjcsIi4uLy4uL2NvbnN0YW50cy9nbDNkX2Rhc2hlcyI6NjkwLCIuLi8uLi9jb25zdGFudHMvZ2wzZF9tYXJrZXJzIjo2OTEsIi4uLy4uL2xpYiI6NzE3LCIuLi8uLi9saWIvZ2xfZm9ybWF0X2NvbG9yIjo3MTQsIi4uLy4uL2xpYi9zdHIycmdiYXJyYXkiOjc0MCwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjc2NSwiLi4vc2NhdHRlci9tYWtlX2J1YmJsZV9zaXplX2Z1bmMiOjExMzcsIi4vY2FsY19lcnJvcnMiOjExNDksImRlbGF1bmF5LXRyaWFuZ3VsYXRlIjoxNjcsImdsLWVycm9yM2QiOjI1MCwiZ2wtbGluZTNkIjoyNTgsImdsLW1lc2gzZCI6MjgzLCJnbC1zY2F0dGVyM2QiOjMwMH1dLDExNTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcmVnaXN0cnkiKSxhPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vc2NhdHRlci9zdWJ0eXBlcyIpLG89dCgiLi4vc2NhdHRlci9tYXJrZXJfZGVmYXVsdHMiKSxzPXQoIi4uL3NjYXR0ZXIvbGluZV9kZWZhdWx0cyIpLGw9dCgiLi4vc2NhdHRlci90ZXh0X2RlZmF1bHRzIiksYz10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsdSl7ZnVuY3Rpb24gaChyLG4pe3JldHVybiBhLmNvZXJjZSh0LGUsYyxyLG4pfWlmKGZ1bmN0aW9uKHQsZSxyLGEpe3ZhciBpPTAsbz1yKCJ4Iikscz1yKCJ5IiksbD1yKCJ6Iik7bi5nZXRDb21wb25lbnRNZXRob2QoImNhbGVuZGFycyIsImhhbmRsZVRyYWNlRGVmYXVsdHMiKSh0LGUsWyJ4IiwieSIsInoiXSxhKSxvJiZzJiZsJiYoaT1NYXRoLm1pbihvLmxlbmd0aCxzLmxlbmd0aCxsLmxlbmd0aCksZS5fbGVuZ3RoPWUuX3hsZW5ndGg9ZS5feWxlbmd0aD1lLl96bGVuZ3RoPWkpO3JldHVybiBpfSh0LGUsaCx1KSl7aCgidGV4dCIpLGgoImhvdmVydGV4dCIpLGgoImhvdmVydGVtcGxhdGUiKSxoKCJtb2RlIiksaS5oYXNMaW5lcyhlKSYmKGgoImNvbm5lY3RnYXBzIikscyh0LGUscix1LGgpKSxpLmhhc01hcmtlcnMoZSkmJm8odCxlLHIsdSxoLHtub1NlbGVjdDohMH0pLGkuaGFzVGV4dChlKSYmKGgoInRleHR0ZW1wbGF0ZSIpLGwodCxlLHUsaCx7bm9TZWxlY3Q6ITB9KSk7dmFyIGY9KGUubGluZXx8e30pLmNvbG9yLHA9KGUubWFya2VyfHx7fSkuY29sb3I7aCgic3VyZmFjZWF4aXMiKT49MCYmaCgic3VyZmFjZWNvbG9yIixmfHxwKTtmb3IodmFyIGQ9WyJ4IiwieSIsInoiXSxnPTA7ZzwzOysrZyl7dmFyIHY9InByb2plY3Rpb24uIitkW2ddO2godisiLnNob3ciKSYmKGgodisiLm9wYWNpdHkiKSxoKHYrIi5zY2FsZSIpKX12YXIgbT1uLmdldENvbXBvbmVudE1ldGhvZCgiZXJyb3JiYXJzIiwic3VwcGx5RGVmYXVsdHMiKTttKHQsZSxmfHxwfHxyLHtheGlzOiJ6In0pLG0odCxlLGZ8fHB8fHIse2F4aXM6InkiLGluaGVyaXQ6InoifSksbSh0LGUsZnx8cHx8cix7YXhpczoieCIsaW5oZXJpdDoieiJ9KX1lbHNlIGUudmlzaWJsZT0hMX19LHsiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3JlZ2lzdHJ5Ijo4NDYsIi4uL3NjYXR0ZXIvbGluZV9kZWZhdWx0cyI6MTEzMywiLi4vc2NhdHRlci9tYXJrZXJfZGVmYXVsdHMiOjExMzksIi4uL3NjYXR0ZXIvc3VidHlwZXMiOjExNDQsIi4uL3NjYXR0ZXIvdGV4dF9kZWZhdWx0cyI6MTE0NSwiLi9hdHRyaWJ1dGVzIjoxMTQ3fV0sMTE1MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e3Bsb3Q6dCgiLi9jb252ZXJ0IiksYXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxtYXJrZXJTeW1ib2xzOnQoIi4uLy4uL2NvbnN0YW50cy9nbDNkX21hcmtlcnMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY29sb3JiYXI6W3tjb250YWluZXI6Im1hcmtlciIsbWluOiJjbWluIixtYXg6ImNtYXgifSx7Y29udGFpbmVyOiJsaW5lIixtaW46ImNtaW4iLG1heDoiY21heCJ9XSxjYWxjOnQoIi4vY2FsYyIpLG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJzY2F0dGVyM2QiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL2dsM2QiKSxjYXRlZ29yaWVzOlsiZ2wzZCIsInN5bWJvbHMiLCJzaG93TGVnZW5kIiwic2NhdHRlci1saWtlIl0sbWV0YTp7fX19LHsiLi4vLi4vY29uc3RhbnRzL2dsM2RfbWFya2VycyI6NjkxLCIuLi8uLi9wbG90cy9nbDNkIjo4MDUsIi4vYXR0cmlidXRlcyI6MTE0NywiLi9jYWxjIjoxMTQ4LCIuL2NvbnZlcnQiOjExNTAsIi4vZGVmYXVsdHMiOjExNTF9XSwxMTUzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxvPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS50ZXh0dGVtcGxhdGVBdHRycyxzPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIiksbD10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxjPW4ubWFya2VyLHU9bi5saW5lLGg9Yy5saW5lO2UuZXhwb3J0cz17Y2FycGV0Ont2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJjYWxjIn0sYTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxiOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LG1vZGU6bCh7fSxuLm1vZGUse2RmbHQ6Im1hcmtlcnMifSksdGV4dDpsKHt9LG4udGV4dCx7fSksdGV4dHRlbXBsYXRlOm8oe2VkaXRUeXBlOiJwbG90In0se2tleXM6WyJhIiwiYiIsInRleHQiXX0pLGhvdmVydGV4dDpsKHt9LG4uaG92ZXJ0ZXh0LHt9KSxsaW5lOntjb2xvcjp1LmNvbG9yLHdpZHRoOnUud2lkdGgsZGFzaDp1LmRhc2gsc2hhcGU6bCh7fSx1LnNoYXBlLHt2YWx1ZXM6WyJsaW5lYXIiLCJzcGxpbmUiXX0pLHNtb290aGluZzp1LnNtb290aGluZyxlZGl0VHlwZToiY2FsYyJ9LGNvbm5lY3RnYXBzOm4uY29ubmVjdGdhcHMsZmlsbDpsKHt9LG4uZmlsbCx7dmFsdWVzOlsibm9uZSIsInRvc2VsZiIsInRvbmV4dCJdLGRmbHQ6Im5vbmUifSksZmlsbGNvbG9yOm4uZmlsbGNvbG9yLG1hcmtlcjpsKHtzeW1ib2w6Yy5zeW1ib2wsb3BhY2l0eTpjLm9wYWNpdHksbWF4ZGlzcGxheWVkOmMubWF4ZGlzcGxheWVkLHNpemU6Yy5zaXplLHNpemVyZWY6Yy5zaXplcmVmLHNpemVtaW46Yy5zaXplbWluLHNpemVtb2RlOmMuc2l6ZW1vZGUsbGluZTpsKHt3aWR0aDpoLndpZHRoLGVkaXRUeXBlOiJjYWxjIn0scygibWFya2VyLmxpbmUiKSksZ3JhZGllbnQ6Yy5ncmFkaWVudCxlZGl0VHlwZToiY2FsYyJ9LHMoIm1hcmtlciIpKSx0ZXh0Zm9udDpuLnRleHRmb250LHRleHRwb3NpdGlvbjpuLnRleHRwb3NpdGlvbixzZWxlY3RlZDpuLnNlbGVjdGVkLHVuc2VsZWN0ZWQ6bi51bnNlbGVjdGVkLGhvdmVyaW5mbzpsKHt9LGEuaG92ZXJpbmZvLHtmbGFnczpbImEiLCJiIiwidGV4dCIsIm5hbWUiXX0pLGhvdmVyb246bi5ob3Zlcm9uLGhvdmVydGVtcGxhdGU6aSgpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6NTk5LCIuLi8uLi9saWIvZXh0ZW5kIjo3MDgsIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiOjc2MiwiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyI6ODQxLCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiOjExMjB9XSwxMTU0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksYT10KCIuLi9zY2F0dGVyL2NvbG9yc2NhbGVfY2FsYyIpLGk9dCgiLi4vc2NhdHRlci9hcnJheXNfdG9fY2FsY2RhdGEiKSxvPXQoIi4uL3NjYXR0ZXIvY2FsY19zZWxlY3Rpb24iKSxzPXQoIi4uL3NjYXR0ZXIvY2FsYyIpLmNhbGNNYXJrZXJTaXplLGw9dCgiLi4vY2FycGV0L2xvb2t1cF9jYXJwZXRpZCIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWUuX2NhcnBldFRyYWNlPWwodCxlKTtpZihyJiZyLnZpc2libGUmJiJsZWdlbmRvbmx5IiE9PXIudmlzaWJsZSl7dmFyIGM7ZS54YXhpcz1yLnhheGlzLGUueWF4aXM9ci55YXhpczt2YXIgdSxoLGY9ZS5fbGVuZ3RoLHA9bmV3IEFycmF5KGYpLGQ9ITE7Zm9yKGM9MDtjPGY7YysrKWlmKHU9ZS5hW2NdLGg9ZS5iW2NdLG4odSkmJm4oaCkpe3ZhciBnPXIuYWIyeHkoK3UsK2gsITApLHY9ci5pc1Zpc2libGUoK3UsK2gpO3Z8fChkPSEwKSxwW2NdPXt4OmdbMF0seTpnWzFdLGE6dSxiOmgsdmlzOnZ9fWVsc2UgcFtjXT17eDohMSx5OiExfTtyZXR1cm4gZS5fbmVlZHNDdWxsPWQscFswXS5jYXJwZXQ9cixwWzBdLnRyYWNlPWUscyhlLGYpLGEodCxlKSxpKHAsZSksbyhwLGUpLHB9fX0seyIuLi9jYXJwZXQvbG9va3VwX2NhcnBldGlkIjo5MTYsIi4uL3NjYXR0ZXIvYXJyYXlzX3RvX2NhbGNkYXRhIjoxMTE5LCIuLi9zY2F0dGVyL2NhbGMiOjExMjEsIi4uL3NjYXR0ZXIvY2FsY19zZWxlY3Rpb24iOjExMjIsIi4uL3NjYXR0ZXIvY29sb3JzY2FsZV9jYWxjIjoxMTIzLCJmYXN0LWlzbnVtZXJpYyI6MjI4fV0sMTE1NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4uL3NjYXR0ZXIvY29uc3RhbnRzIiksaT10KCIuLi9zY2F0dGVyL3N1YnR5cGVzIiksbz10KCIuLi9zY2F0dGVyL21hcmtlcl9kZWZhdWx0cyIpLHM9dCgiLi4vc2NhdHRlci9saW5lX2RlZmF1bHRzIiksbD10KCIuLi9zY2F0dGVyL2xpbmVfc2hhcGVfZGVmYXVsdHMiKSxjPXQoIi4uL3NjYXR0ZXIvdGV4dF9kZWZhdWx0cyIpLHU9dCgiLi4vc2NhdHRlci9maWxsY29sb3JfZGVmYXVsdHMiKSxoPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixmKXtmdW5jdGlvbiBwKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxoLHIsYSl9cCgiY2FycGV0IiksZS54YXhpcz0ieCIsZS55YXhpcz0ieSI7dmFyIGQ9cCgiYSIpLGc9cCgiYiIpLHY9TWF0aC5taW4oZC5sZW5ndGgsZy5sZW5ndGgpO2lmKHYpe2UuX2xlbmd0aD12LHAoInRleHQiKSxwKCJ0ZXh0dGVtcGxhdGUiKSxwKCJob3ZlcnRleHQiKSxwKCJtb2RlIix2PGEuUFRTX0xJTkVTT05MWT8ibGluZXMrbWFya2VycyI6ImxpbmVzIiksaS5oYXNMaW5lcyhlKSYmKHModCxlLHIsZixwKSxsKHQsZSxwKSxwKCJjb25uZWN0Z2FwcyIpKSxpLmhhc01hcmtlcnMoZSkmJm8odCxlLHIsZixwLHtncmFkaWVudDohMH0pLGkuaGFzVGV4dChlKSYmYyh0LGUsZixwKTt2YXIgbT1bXTsoaS5oYXNNYXJrZXJzKGUpfHxpLmhhc1RleHQoZSkpJiYocCgibWFya2VyLm1heGRpc3BsYXllZCIpLG0ucHVzaCgicG9pbnRzIikpLHAoImZpbGwiKSwibm9uZSIhPT1lLmZpbGwmJih1KHQsZSxyLHApLGkuaGFzTGluZXMoZSl8fGwodCxlLHApKSwidG9uZXh0IiE9PWUuZmlsbCYmInRvc2VsZiIhPT1lLmZpbGx8fG0ucHVzaCgiZmlsbHMiKSwiZmlsbHMiIT09cCgiaG92ZXJvbiIsbS5qb2luKCIrIil8fCJwb2ludHMiKSYmcCgiaG92ZXJ0ZW1wbGF0ZSIpLG4uY29lcmNlU2VsZWN0aW9uTWFya2VyT3BhY2l0eShlLHApfWVsc2UgZS52aXNpYmxlPSExfX0seyIuLi8uLi9saWIiOjcxNywiLi4vc2NhdHRlci9jb25zdGFudHMiOjExMjQsIi4uL3NjYXR0ZXIvZmlsbGNvbG9yX2RlZmF1bHRzIjoxMTI4LCIuLi9zY2F0dGVyL2xpbmVfZGVmYXVsdHMiOjExMzMsIi4uL3NjYXR0ZXIvbGluZV9zaGFwZV9kZWZhdWx0cyI6MTEzNSwiLi4vc2NhdHRlci9tYXJrZXJfZGVmYXVsdHMiOjExMzksIi4uL3NjYXR0ZXIvc3VidHlwZXMiOjExNDQsIi4uL3NjYXR0ZXIvdGV4dF9kZWZhdWx0cyI6MTE0NSwiLi9hdHRyaWJ1dGVzIjoxMTUzfV0sMTE1NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbixhKXt2YXIgaT1uW2FdO3JldHVybiB0LmE9aS5hLHQuYj1pLmIsdC55PWkueSx0fX0se31dLDExNTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9e30sbj1lLl9jYXJwZXQsYT1uLmFiMmlqKFt0LmEsdC5iXSksaT1NYXRoLmZsb29yKGFbMF0pLG89YVswXS1pLHM9TWF0aC5mbG9vcihhWzFdKSxsPWFbMV0tcyxjPW4uZXZhbHh5KFtdLGkscyxvLGwpO3JldHVybiByLnlMYWJlbD1jWzFdLnRvRml4ZWQoMykscn19LHt9XSwxMTU4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXIvaG92ZXIiKSxhPXQoIi4uLy4uL2xpYiIpLmZpbGxUZXh0O2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixpKXt2YXIgbz1uKHQsZSxyLGkpO2lmKG8mJiExIT09b1swXS5pbmRleCl7dmFyIHM9b1swXTtpZih2b2lkIDA9PT1zLmluZGV4KXt2YXIgbD0xLXMueTAvdC55YS5fbGVuZ3RoLGM9dC54YS5fbGVuZ3RoLHU9YypsLzIsaD1jLXU7cmV0dXJuIHMueDA9TWF0aC5tYXgoTWF0aC5taW4ocy54MCxoKSx1KSxzLngxPU1hdGgubWF4KE1hdGgubWluKHMueDEsaCksdSksb312YXIgZj1zLmNkW3MuaW5kZXhdO3MuYT1mLmEscy5iPWYuYixzLnhMYWJlbFZhbD12b2lkIDAscy55TGFiZWxWYWw9dm9pZCAwO3ZhciBwPXMudHJhY2UsZD1wLl9jYXJwZXQsZz1wLl9tb2R1bGUuZm9ybWF0TGFiZWxzKGYscCk7cy55TGFiZWw9Zy55TGFiZWwsZGVsZXRlIHMudGV4dDt2YXIgdj1bXTtpZighcC5ob3ZlcnRlbXBsYXRlKXt2YXIgbT0oZi5oaXx8cC5ob3ZlcmluZm8pLnNwbGl0KCIrIik7LTEhPT1tLmluZGV4T2YoImFsbCIpJiYobT1bImEiLCJiIiwidGV4dCJdKSwtMSE9PW0uaW5kZXhPZigiYSIpJiZ5KGQuYWF4aXMsZi5hKSwtMSE9PW0uaW5kZXhPZigiYiIpJiZ5KGQuYmF4aXMsZi5iKSx2LnB1c2goInk6ICIrcy55TGFiZWwpLC0xIT09bS5pbmRleE9mKCJ0ZXh0IikmJmEoZixwLHYpLHMuZXh0cmFUZXh0PXYuam9pbigiPGJyPiIpfXJldHVybiBvfWZ1bmN0aW9uIHkodCxlKXt2YXIgcjtyPXQubGFiZWxwcmVmaXgmJnQubGFiZWxwcmVmaXgubGVuZ3RoPjA/dC5sYWJlbHByZWZpeC5yZXBsYWNlKC8gPSAkLywiIik6dC5faG92ZXJ0aXRsZSx2LnB1c2gocisiOiAiK2UudG9GaXhlZCgzKSt0LmxhYmVsc3VmZml4KX19fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi9zY2F0dGVyL2hvdmVyIjoxMTMxfV0sMTE1OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNvbG9yYmFyOnQoIi4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIiksZm9ybWF0TGFiZWxzOnQoIi4vZm9ybWF0X2xhYmVscyIpLGNhbGM6dCgiLi9jYWxjIikscGxvdDp0KCIuL3Bsb3QiKSxzdHlsZTp0KCIuLi9zY2F0dGVyL3N0eWxlIikuc3R5bGUsc3R5bGVPblNlbGVjdDp0KCIuLi9zY2F0dGVyL3N0eWxlIikuc3R5bGVPblNlbGVjdCxob3ZlclBvaW50czp0KCIuL2hvdmVyIiksc2VsZWN0UG9pbnRzOnQoIi4uL3NjYXR0ZXIvc2VsZWN0IiksZXZlbnREYXRhOnQoIi4vZXZlbnRfZGF0YSIpLG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJzY2F0dGVyY2FycGV0IixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxjYXRlZ29yaWVzOlsic3ZnIiwiY2FycGV0Iiwic3ltYm9scyIsInNob3dMZWdlbmQiLCJjYXJwZXREZXBlbmRlbnQiLCJ6b29tU2NhbGUiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjc3NiwiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiOjExMzgsIi4uL3NjYXR0ZXIvc2VsZWN0IjoxMTQxLCIuLi9zY2F0dGVyL3N0eWxlIjoxMTQzLCIuL2F0dHJpYnV0ZXMiOjExNTMsIi4vY2FsYyI6MTE1NCwiLi9kZWZhdWx0cyI6MTE1NSwiLi9ldmVudF9kYXRhIjoxMTU2LCIuL2Zvcm1hdF9sYWJlbHMiOjExNTcsIi4vaG92ZXIiOjExNTgsIi4vcGxvdCI6MTE2MH1dLDExNjA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9wbG90IiksYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8pe3ZhciBzLGwsYyx1PXJbMF1bMF0uY2FycGV0LGg9e3hheGlzOmEuZ2V0RnJvbUlkKHQsdS54YXhpc3x8IngiKSx5YXhpczphLmdldEZyb21JZCh0LHUueWF4aXN8fCJ5IikscGxvdDplLnBsb3R9O2ZvcihuKHQsaCxyLG8pLHM9MDtzPHIubGVuZ3RoO3MrKylsPXJbc11bMF0udHJhY2UsYz1vLnNlbGVjdEFsbCgiZy50cmFjZSIrbC51aWQrIiAuanMtbGluZSIpLGkuc2V0Q2xpcFVybChjLHJbc11bMF0uY2FycGV0Ll9jbGlwUGF0aElkLHQpfX0seyIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjYxMywiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjc2NSwiLi4vc2NhdHRlci9wbG90IjoxMTQwfV0sMTE2MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikuaG92ZXJ0ZW1wbGF0ZUF0dHJzLGE9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLnRleHR0ZW1wbGF0ZUF0dHJzLGk9dCgiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIiksbz10KCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLGw9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nL2F0dHJpYnV0ZXMiKS5kYXNoLGM9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsdT10KCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIikub3ZlcnJpZGVBbGwsaD1pLm1hcmtlcixmPWkubGluZSxwPWgubGluZTtlLmV4cG9ydHM9dSh7bG9uOnt2YWxUeXBlOiJkYXRhX2FycmF5In0sbGF0Ont2YWxUeXBlOiJkYXRhX2FycmF5In0sbG9jYXRpb25zOnt2YWxUeXBlOiJkYXRhX2FycmF5In0sbG9jYXRpb25tb2RlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJJU08tMyIsIlVTQS1zdGF0ZXMiLCJjb3VudHJ5IG5hbWVzIiwiZ2VvanNvbi1pZCJdLGRmbHQ6IklTTy0zIn0sZ2VvanNvbjp7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYyJ9LGZlYXR1cmVpZGtleTp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToiY2FsYyIsZGZsdDoiaWQifSxtb2RlOmMoe30saS5tb2RlLHtkZmx0OiJtYXJrZXJzIn0pLHRleHQ6Yyh7fSxpLnRleHQse30pLHRleHR0ZW1wbGF0ZTphKHtlZGl0VHlwZToicGxvdCJ9LHtrZXlzOlsibGF0IiwibG9uIiwibG9jYXRpb24iLCJ0ZXh0Il19KSxob3ZlcnRleHQ6Yyh7fSxpLmhvdmVydGV4dCx7fSksdGV4dGZvbnQ6aS50ZXh0Zm9udCx0ZXh0cG9zaXRpb246aS50ZXh0cG9zaXRpb24sbGluZTp7Y29sb3I6Zi5jb2xvcix3aWR0aDpmLndpZHRoLGRhc2g6bH0sY29ubmVjdGdhcHM6aS5jb25uZWN0Z2FwcyxtYXJrZXI6Yyh7c3ltYm9sOmguc3ltYm9sLG9wYWNpdHk6aC5vcGFjaXR5LHNpemU6aC5zaXplLHNpemVyZWY6aC5zaXplcmVmLHNpemVtaW46aC5zaXplbWluLHNpemVtb2RlOmguc2l6ZW1vZGUsY29sb3JiYXI6aC5jb2xvcmJhcixsaW5lOmMoe3dpZHRoOnAud2lkdGh9LHMoIm1hcmtlci5saW5lIikpLGdyYWRpZW50OmguZ3JhZGllbnR9LHMoIm1hcmtlciIpKSxmaWxsOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJub25lIiwidG9zZWxmIl0sZGZsdDoibm9uZSJ9LGZpbGxjb2xvcjppLmZpbGxjb2xvcixzZWxlY3RlZDppLnNlbGVjdGVkLHVuc2VsZWN0ZWQ6aS51bnNlbGVjdGVkLGhvdmVyaW5mbzpjKHt9LG8uaG92ZXJpbmZvLHtmbGFnczpbImxvbiIsImxhdCIsImxvY2F0aW9uIiwidGV4dCIsIm5hbWUiXX0pLGhvdmVydGVtcGxhdGU6bigpfSwiY2FsYyIsIm5lc3RlZCIpfSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjo1OTksIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZy9hdHRyaWJ1dGVzIjo2MTIsIi4uLy4uL2xpYi9leHRlbmQiOjcwOCwiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyI6NzQ4LCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIjo3NjIsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjg0MSwiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIjoxMTIwfV0sMTE2MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGE9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTSxpPXQoIi4uL3NjYXR0ZXIvY29sb3JzY2FsZV9jYWxjIiksbz10KCIuLi9zY2F0dGVyL2FycmF5c190b19jYWxjZGF0YSIpLHM9dCgiLi4vc2NhdHRlci9jYWxjX3NlbGVjdGlvbiIpLGw9dCgiLi4vLi4vbGliIikuXztmdW5jdGlvbiBjKHQpe3JldHVybiB0JiYic3RyaW5nIj09dHlwZW9mIHR9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsdT1BcnJheS5pc0FycmF5KGUubG9jYXRpb25zKSxoPXU/ZS5sb2NhdGlvbnMubGVuZ3RoOmUuX2xlbmd0aCxmPW5ldyBBcnJheShoKTtyPWUuZ2VvanNvbj9mdW5jdGlvbih0KXtyZXR1cm4gYyh0KXx8bih0KX06Yztmb3IodmFyIHA9MDtwPGg7cCsrKXt2YXIgZD1mW3BdPXt9O2lmKHUpe3ZhciBnPWUubG9jYXRpb25zW3BdO2QubG9jPXIoZyk/ZzpudWxsfWVsc2V7dmFyIHY9ZS5sb25bcF0sbT1lLmxhdFtwXTtuKHYpJiZuKG0pP2QubG9ubGF0PVsrdiwrbV06ZC5sb25sYXQ9W2EsYV19fXJldHVybiBvKGYsZSksaSh0LGUpLHMoZixlKSxoJiYoZlswXS50PXtsYWJlbHM6e2xhdDpsKHQsImxhdDoiKSsiICIsbG9uOmwodCwibG9uOiIpKyIgIn19KSxmfX0seyIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo2OTMsIi4uLy4uL2xpYiI6NzE3LCIuLi9zY2F0dGVyL2FycmF5c190b19jYWxjZGF0YSI6MTExOSwiLi4vc2NhdHRlci9jYWxjX3NlbGVjdGlvbiI6MTEyMiwiLi4vc2NhdHRlci9jb2xvcnNjYWxlX2NhbGMiOjExMjMsImZhc3QtaXNudW1lcmljIjoyMjh9XSwxMTYzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vc2NhdHRlci9zdWJ0eXBlcyIpLGk9dCgiLi4vc2NhdHRlci9tYXJrZXJfZGVmYXVsdHMiKSxvPXQoIi4uL3NjYXR0ZXIvbGluZV9kZWZhdWx0cyIpLHM9dCgiLi4vc2NhdHRlci90ZXh0X2RlZmF1bHRzIiksbD10KCIuLi9zY2F0dGVyL2ZpbGxjb2xvcl9kZWZhdWx0cyIpLGM9dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHUpe2Z1bmN0aW9uIGgocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLGMscixhKX12YXIgZixwPWgoImxvY2F0aW9ucyIpO2lmKHAmJnAubGVuZ3RoKXt2YXIgZCxnPWgoImdlb2pzb24iKTsoInN0cmluZyI9PXR5cGVvZiBnJiYiIiE9PWd8fG4uaXNQbGFpbk9iamVjdChnKSkmJihkPSJnZW9qc29uLWlkIiksImdlb2pzb24taWQiPT09aCgibG9jYXRpb25tb2RlIixkKSYmaCgiZmVhdHVyZWlka2V5IiksZj1wLmxlbmd0aH1lbHNle3ZhciB2PWgoImxvbiIpfHxbXSxtPWgoImxhdCIpfHxbXTtmPU1hdGgubWluKHYubGVuZ3RoLG0ubGVuZ3RoKX1mPyhlLl9sZW5ndGg9ZixoKCJ0ZXh0IiksaCgiaG92ZXJ0ZXh0IiksaCgiaG92ZXJ0ZW1wbGF0ZSIpLGgoIm1vZGUiKSxhLmhhc0xpbmVzKGUpJiYobyh0LGUscix1LGgpLGgoImNvbm5lY3RnYXBzIikpLGEuaGFzTWFya2VycyhlKSYmaSh0LGUscix1LGgse2dyYWRpZW50OiEwfSksYS5oYXNUZXh0KGUpJiYoaCgidGV4dHRlbXBsYXRlIikscyh0LGUsdSxoKSksaCgiZmlsbCIpLCJub25lIiE9PWUuZmlsbCYmbCh0LGUscixoKSxuLmNvZXJjZVNlbGVjdGlvbk1hcmtlck9wYWNpdHkoZSxoKSk6ZS52aXNpYmxlPSExfX0seyIuLi8uLi9saWIiOjcxNywiLi4vc2NhdHRlci9maWxsY29sb3JfZGVmYXVsdHMiOjExMjgsIi4uL3NjYXR0ZXIvbGluZV9kZWZhdWx0cyI6MTEzMywiLi4vc2NhdHRlci9tYXJrZXJfZGVmYXVsdHMiOjExMzksIi4uL3NjYXR0ZXIvc3VidHlwZXMiOjExNDQsIi4uL3NjYXR0ZXIvdGV4dF9kZWZhdWx0cyI6MTE0NSwiLi9hdHRyaWJ1dGVzIjoxMTYxfV0sMTE2NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbixhKXt0Lmxvbj1lLmxvbix0LmxhdD1lLmxhdCx0LmxvY2F0aW9uPWUubG9jP2UubG9jOm51bGw7dmFyIGk9blthXTtyZXR1cm4gaS5mSW4mJmkuZkluLnByb3BlcnRpZXMmJih0LnByb3BlcnRpZXM9aS5mSW4ucHJvcGVydGllcyksdH19LHt9XSwxMTY1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgYT17fSxpPXJbZS5nZW9dLl9zdWJwbG90Lm1vY2tBeGlzLG89dC5sb25sYXQ7cmV0dXJuIGEubG9uTGFiZWw9bi50aWNrVGV4dChpLGkuYzJsKG9bMF0pLCEwKS50ZXh0LGEubGF0TGFiZWw9bi50aWNrVGV4dChpLGkuYzJsKG9bMV0pLCEwKS50ZXh0LGF9fSx7Ii4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo3NjV9XSwxMTY2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvZngiKSxhPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5CQUROVU0saT10KCIuLi9zY2F0dGVyL2dldF90cmFjZV9jb2xvciIpLG89dCgiLi4vLi4vbGliIikuZmlsbFRleHQscz10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBsPXQuY2QsYz1sWzBdLnRyYWNlLHU9dC54YSxoPXQueWEsZj10LnN1YnBsb3QscD1mLnByb2plY3Rpb24uaXNMb25MYXRPdmVyRWRnZXMsZD1mLnByb2plY3Q7aWYobi5nZXRDbG9zZXN0KGwsZnVuY3Rpb24odCl7dmFyIG49dC5sb25sYXQ7aWYoblswXT09PWEpcmV0dXJuIDEvMDtpZihwKG4pKXJldHVybiAxLzA7dmFyIGk9ZChuKSxvPWQoW2Uscl0pLHM9TWF0aC5hYnMoaVswXS1vWzBdKSxsPU1hdGguYWJzKGlbMV0tb1sxXSksYz1NYXRoLm1heCgzLHQubXJjfHwwKTtyZXR1cm4gTWF0aC5tYXgoTWF0aC5zcXJ0KHMqcytsKmwpLWMsMS0zL2MpfSx0KSwhMSE9PXQuaW5kZXgpe3ZhciBnPWxbdC5pbmRleF0sdj1nLmxvbmxhdCxtPVt1LmMycCh2KSxoLmMycCh2KV0seT1nLm1yY3x8MTt0LngwPW1bMF0teSx0LngxPW1bMF0reSx0LnkwPW1bMV0teSx0LnkxPW1bMV0reSx0LmxvYz1nLmxvYyx0Lmxvbj12WzBdLHQubGF0PXZbMV07dmFyIHg9e307eFtjLmdlb109e19zdWJwbG90OmZ9O3ZhciBiPWMuX21vZHVsZS5mb3JtYXRMYWJlbHMoZyxjLHgpO3JldHVybiB0LmxvbkxhYmVsPWIubG9uTGFiZWwsdC5sYXRMYWJlbD1iLmxhdExhYmVsLHQuY29sb3I9aShjLGcpLHQuZXh0cmFUZXh0PWZ1bmN0aW9uKHQsZSxyLG4pe2lmKHQuaG92ZXJ0ZW1wbGF0ZSlyZXR1cm47dmFyIGE9ZS5oaXx8dC5ob3ZlcmluZm8saT0iYWxsIj09PWE/cy5ob3ZlcmluZm8uZmxhZ3M6YS5zcGxpdCgiKyIpLGw9LTEhPT1pLmluZGV4T2YoImxvY2F0aW9uIikmJkFycmF5LmlzQXJyYXkodC5sb2NhdGlvbnMpLGM9LTEhPT1pLmluZGV4T2YoImxvbiIpLHU9LTEhPT1pLmluZGV4T2YoImxhdCIpLGg9LTEhPT1pLmluZGV4T2YoInRleHQiKSxmPVtdO2Z1bmN0aW9uIHAodCl7cmV0dXJuIHQrIlx4YjAifWw/Zi5wdXNoKGUubG9jKTpjJiZ1P2YucHVzaCgiKCIrcChyLmxvbkxhYmVsKSsiLCAiK3Aoci5sYXRMYWJlbCkrIikiKTpjP2YucHVzaChuLmxvbitwKHIubG9uTGFiZWwpKTp1JiZmLnB1c2gobi5sYXQrcChyLmxhdExhYmVsKSk7aCYmbyhlLHQsZik7cmV0dXJuIGYuam9pbigiPGJyPiIpfShjLGcsdCxsWzBdLnQubGFiZWxzKSx0LmhvdmVydGVtcGxhdGU9Yy5ob3ZlcnRlbXBsYXRlLFt0XX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvZngiOjYzMCwiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NjkzLCIuLi8uLi9saWIiOjcxNywiLi4vc2NhdHRlci9nZXRfdHJhY2VfY29sb3IiOjExMzAsIi4vYXR0cmlidXRlcyI6MTE2MX1dLDExNjc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjb2xvcmJhcjp0KCIuLi9zY2F0dGVyL21hcmtlcl9jb2xvcmJhciIpLGZvcm1hdExhYmVsczp0KCIuL2Zvcm1hdF9sYWJlbHMiKSxjYWxjOnQoIi4vY2FsYyIpLGNhbGNHZW9KU09OOnQoIi4vcGxvdCIpLmNhbGNHZW9KU09OLHBsb3Q6dCgiLi9wbG90IikucGxvdCxzdHlsZTp0KCIuL3N0eWxlIiksc3R5bGVPblNlbGVjdDp0KCIuLi9zY2F0dGVyL3N0eWxlIikuc3R5bGVPblNlbGVjdCxob3ZlclBvaW50czp0KCIuL2hvdmVyIiksZXZlbnREYXRhOnQoIi4vZXZlbnRfZGF0YSIpLHNlbGVjdFBvaW50czp0KCIuL3NlbGVjdCIpLG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJzY2F0dGVyZ2VvIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9nZW8iKSxjYXRlZ29yaWVzOlsiZ2VvIiwic3ltYm9scyIsInNob3dMZWdlbmQiLCJzY2F0dGVyLWxpa2UiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9nZW8iOjc5NSwiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiOjExMzgsIi4uL3NjYXR0ZXIvc3R5bGUiOjExNDMsIi4vYXR0cmlidXRlcyI6MTE2MSwiLi9jYWxjIjoxMTYyLCIuL2RlZmF1bHRzIjoxMTYzLCIuL2V2ZW50X2RhdGEiOjExNjQsIi4vZm9ybWF0X2xhYmVscyI6MTE2NSwiLi9ob3ZlciI6MTE2NiwiLi9wbG90IjoxMTY4LCIuL3NlbGVjdCI6MTE2OSwiLi9zdHlsZSI6MTE3MH1dLDExNjg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxhPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vbGliL3RvcG9qc29uX3V0aWxzIikuZ2V0VG9wb2pzb25GZWF0dXJlcyxvPXQoIi4uLy4uL2xpYi9nZW9qc29uX3V0aWxzIikscz10KCIuLi8uLi9saWIvZ2VvX2xvY2F0aW9uX3V0aWxzIiksbD10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXV0b3JhbmdlIikuZmluZEV4dHJlbWVzLGM9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTSx1PXQoIi4uL3NjYXR0ZXIvY2FsYyIpLmNhbGNNYXJrZXJTaXplLGg9dCgiLi4vc2NhdHRlci9zdWJ0eXBlcyIpLGY9dCgiLi9zdHlsZSIpO2UuZXhwb3J0cz17Y2FsY0dlb0pTT046ZnVuY3Rpb24odCxlKXt2YXIgcixuLGE9dFswXS50cmFjZSxvPWVbYS5nZW9dLGg9by5fc3VicGxvdCxmPWEuX2xlbmd0aDtpZihBcnJheS5pc0FycmF5KGEubG9jYXRpb25zKSl7dmFyIHA9YS5sb2NhdGlvbm1vZGUsZD0iZ2VvanNvbi1pZCI9PT1wP3MuZXh0cmFjdFRyYWNlRmVhdHVyZSh0KTppKGEsaC50b3BvanNvbik7Zm9yKHI9MDtyPGY7cisrKXtuPXRbcl07dmFyIGc9Imdlb2pzb24taWQiPT09cD9uLmZPdXQ6cy5sb2NhdGlvblRvRmVhdHVyZShwLG4ubG9jLGQpO24ubG9ubGF0PWc/Zy5wcm9wZXJ0aWVzLmN0OltjLGNdfX12YXIgdixtLHk9e3BhZGRlZDohMH07aWYoImdlb2pzb24iPT09by5maXRib3VuZHMmJiJnZW9qc29uLWlkIj09PWEubG9jYXRpb25tb2RlKXt2YXIgeD1zLmNvbXB1dGVCYm94KHMuZ2V0VHJhY2VHZW9qc29uKGEpKTt2PVt4WzBdLHhbMl1dLG09W3hbMV0seFszXV19ZWxzZXtmb3Iodj1uZXcgQXJyYXkoZiksbT1uZXcgQXJyYXkoZikscj0wO3I8ZjtyKyspbj10W3JdLHZbcl09bi5sb25sYXRbMF0sbVtyXT1uLmxvbmxhdFsxXTt5LnBwYWQ9dShhLGYpfWEuX2V4dHJlbWVzLmxvbj1sKG8ubG9uYXhpcy5fYXgsdix5KSxhLl9leHRyZW1lcy5sYXQ9bChvLmxhdGF4aXMuX2F4LG0seSl9LHBsb3Q6ZnVuY3Rpb24odCxlLHIpe3ZhciBpPWUubGF5ZXJzLmZyb250cGxvdC5zZWxlY3QoIi5zY2F0dGVybGF5ZXIiKSxzPWEubWFrZVRyYWNlR3JvdXBzKGksciwidHJhY2Ugc2NhdHRlcmdlbyIpO2Z1bmN0aW9uIGwodCxlKXt0LmxvbmxhdFswXT09PWMmJm4uc2VsZWN0KGUpLnJlbW92ZSgpfXMuc2VsZWN0QWxsKCIqIikucmVtb3ZlKCkscy5lYWNoKGZ1bmN0aW9uKGUpe3ZhciByPW4uc2VsZWN0KHRoaXMpLGk9ZVswXS50cmFjZTtpZihoLmhhc0xpbmVzKGkpfHwibm9uZSIhPT1pLmZpbGwpe3ZhciBzPW8uY2FsY1RyYWNlVG9MaW5lQ29vcmRzKGUpLGM9Im5vbmUiIT09aS5maWxsP28ubWFrZVBvbHlnb24ocyk6by5tYWtlTGluZShzKTtyLnNlbGVjdEFsbCgicGF0aC5qcy1saW5lIikuZGF0YShbe2dlb2pzb246Yyx0cmFjZTppfV0pLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZCgianMtbGluZSIsITApLnN0eWxlKCJzdHJva2UtbWl0ZXJsaW1pdCIsMil9aC5oYXNNYXJrZXJzKGkpJiZyLnNlbGVjdEFsbCgicGF0aC5wb2ludCIpLmRhdGEoYS5pZGVudGl0eSkuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJwb2ludCIsITApLmVhY2goZnVuY3Rpb24odCl7bCh0LHRoaXMpfSksaC5oYXNUZXh0KGkpJiZyLnNlbGVjdEFsbCgiZyIpLmRhdGEoYS5pZGVudGl0eSkuZW50ZXIoKS5hcHBlbmQoImciKS5hcHBlbmQoInRleHQiKS5lYWNoKGZ1bmN0aW9uKHQpe2wodCx0aGlzKX0pLGYodCxlKX0pfX19LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NjkzLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vbGliL2dlb19sb2NhdGlvbl91dGlscyI6NzExLCIuLi8uLi9saWIvZ2VvanNvbl91dGlscyI6NzEyLCIuLi8uLi9saWIvdG9wb2pzb25fdXRpbHMiOjc0NCwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F1dG9yYW5nZSI6NzY0LCIuLi9zY2F0dGVyL2NhbGMiOjExMjEsIi4uL3NjYXR0ZXIvc3VidHlwZXMiOjExNDQsIi4vc3R5bGUiOjExNzAsZDM6MTY1fV0sMTE2OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9zY2F0dGVyL3N1YnR5cGVzIiksYT10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLGksbyxzLGwsYz10LmNkLHU9dC54YXhpcyxoPXQueWF4aXMsZj1bXSxwPWNbMF0udHJhY2U7aWYoIW4uaGFzTWFya2VycyhwKSYmIW4uaGFzVGV4dChwKSlyZXR1cm5bXTtpZighMT09PWUpZm9yKGw9MDtsPGMubGVuZ3RoO2wrKyljW2xdLnNlbGVjdGVkPTA7ZWxzZSBmb3IobD0wO2w8Yy5sZW5ndGg7bCsrKShpPShyPWNbbF0pLmxvbmxhdClbMF0hPT1hJiYobz11LmMycChpKSxzPWguYzJwKGkpLGUuY29udGFpbnMoW28sc10sbnVsbCxsLHQpPyhmLnB1c2goe3BvaW50TnVtYmVyOmwsbG9uOmlbMF0sbGF0OmlbMV19KSxyLnNlbGVjdGVkPTEpOnIuc2VsZWN0ZWQ9MCk7cmV0dXJuIGZ9fSx7Ii4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjY5MywiLi4vc2NhdHRlci9zdWJ0eXBlcyI6MTE0NH1dLDExNzA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLG89dCgiLi4vc2NhdHRlci9zdHlsZSIpLHM9by5zdHlsZVBvaW50cyxsPW8uc3R5bGVUZXh0O2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2UmJmZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXS50cmFjZSxvPWVbMF0ubm9kZTM7by5zdHlsZSgib3BhY2l0eSIsZVswXS50cmFjZS5vcGFjaXR5KSxzKG8scix0KSxsKG8scix0KSxvLnNlbGVjdEFsbCgicGF0aC5qcy1saW5lIikuc3R5bGUoImZpbGwiLCJub25lIikuZWFjaChmdW5jdGlvbih0KXt2YXIgZT1uLnNlbGVjdCh0aGlzKSxyPXQudHJhY2Usbz1yLmxpbmV8fHt9O2UuY2FsbChpLnN0cm9rZSxvLmNvbG9yKS5jYWxsKGEuZGFzaExpbmUsby5kYXNofHwiIixvLndpZHRofHwwKSwibm9uZSIhPT1yLmZpbGwmJmUuY2FsbChpLmZpbGwsci5maWxsY29sb3IpfSl9KHQsZSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjU5MiwiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo2MTMsIi4uL3NjYXR0ZXIvc3R5bGUiOjExNDMsZDM6MTY1fV0sMTE3MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIiksYT10KCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIiksbz10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxzPXQoIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbCxsPXQoIi4vY29uc3RhbnRzIikuREFTSEVTLGM9YS5saW5lLHU9YS5tYXJrZXIsaD11LmxpbmUsZj1lLmV4cG9ydHM9cyh7eDphLngseDA6YS54MCxkeDphLmR4LHk6YS55LHkwOmEueTAsZHk6YS5keSx0ZXh0OmEudGV4dCxob3ZlcnRleHQ6YS5ob3ZlcnRleHQsdGV4dHBvc2l0aW9uOmEudGV4dHBvc2l0aW9uLHRleHRmb250OmEudGV4dGZvbnQsbW9kZTp7dmFsVHlwZToiZmxhZ2xpc3QiLGZsYWdzOlsibGluZXMiLCJtYXJrZXJzIiwidGV4dCJdLGV4dHJhczpbIm5vbmUiXX0sbGluZTp7Y29sb3I6Yy5jb2xvcix3aWR0aDpjLndpZHRoLHNoYXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJsaW5lYXIiLCJodiIsInZoIiwiaHZoIiwidmh2Il0sZGZsdDoibGluZWFyIixlZGl0VHlwZToicGxvdCJ9LGRhc2g6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpPYmplY3Qua2V5cyhsKSxkZmx0OiJzb2xpZCJ9fSxtYXJrZXI6byh7fSxpKCJtYXJrZXIiKSx7c3ltYm9sOnUuc3ltYm9sLHNpemU6dS5zaXplLHNpemVyZWY6dS5zaXplcmVmLHNpemVtaW46dS5zaXplbWluLHNpemVtb2RlOnUuc2l6ZW1vZGUsb3BhY2l0eTp1Lm9wYWNpdHksY29sb3JiYXI6dS5jb2xvcmJhcixsaW5lOm8oe30saSgibWFya2VyLmxpbmUiKSx7d2lkdGg6aC53aWR0aH0pfSksY29ubmVjdGdhcHM6YS5jb25uZWN0Z2FwcyxmaWxsOm8oe30sYS5maWxsLHtkZmx0OiJub25lIn0pLGZpbGxjb2xvcjphLmZpbGxjb2xvcixzZWxlY3RlZDp7bWFya2VyOmEuc2VsZWN0ZWQubWFya2VyLHRleHRmb250OmEuc2VsZWN0ZWQudGV4dGZvbnR9LHVuc2VsZWN0ZWQ6e21hcmtlcjphLnVuc2VsZWN0ZWQubWFya2VyLHRleHRmb250OmEudW5zZWxlY3RlZC50ZXh0Zm9udH0sb3BhY2l0eTpuLm9wYWNpdHl9LCJjYWxjIiwibmVzdGVkIik7Zi54LmVkaXRUeXBlPWYueS5lZGl0VHlwZT1mLngwLmVkaXRUeXBlPWYueTAuZWRpdFR5cGU9ImNhbGMrY2xlYXJBeGlzVHlwZXMiLGYuaG92ZXJ0ZW1wbGF0ZT1hLmhvdmVydGVtcGxhdGUsZi50ZXh0dGVtcGxhdGU9YS50ZXh0dGVtcGxhdGV9LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiOjU5OSwiLi4vLi4vbGliL2V4dGVuZCI6NzA4LCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIjo3NDgsIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiOjc2MiwiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIjoxMTIwLCIuL2NvbnN0YW50cyI6MTE3M31dLDExNzI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgicG9pbnQtY2x1c3RlciIpLGE9dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiKSxvPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9hdXRvcmFuZ2UiKS5maW5kRXh0cmVtZXMscz10KCIuLi9zY2F0dGVyL2NhbGMiKSxsPXMuY2FsY01hcmtlclNpemUsYz1zLmNhbGNBeGlzRXhwYW5zaW9uLHU9cy5zZXRGaXJzdFNjYXR0ZXIsaD10KCIuLi9zY2F0dGVyL2NvbG9yc2NhbGVfY2FsYyIpLGY9dCgiLi9jb252ZXJ0IikscD10KCIuL3NjZW5lX3VwZGF0ZSIpLGQ9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTSxnPXQoIi4vY29uc3RhbnRzIikuVE9PX01BTllfUE9JTlRTO2Z1bmN0aW9uIHYodCxlLHIpe3ZhciBuPXQuX2V4dHJlbWVzW2UuX2lkXSxhPW8oZSxyLl9ibmRzLHtwYWRkZWQ6ITB9KTtuLm1pbj1uLm1pbi5jb25jYXQoYS5taW4pLG4ubWF4PW4ubWF4LmNvbmNhdChhLm1heCl9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbyxzLG09dC5fZnVsbExheW91dCx5PWkuZ2V0RnJvbUlkKHQsZS54YXhpcykseD1pLmdldEZyb21JZCh0LGUueWF4aXMpLGI9bS5fcGxvdHNbZS54YXhpcytlLnlheGlzXSxfPWUuX2xlbmd0aCx3PV8+PWcsaz0yKl8sVD17fSxNPWUuX3g9eS5tYWtlQ2FsY2RhdGEoZSwieCIpLEE9ZS5feT14Lm1ha2VDYWxjZGF0YShlLCJ5IiksUz1uZXcgQXJyYXkoayk7Zm9yKHI9MDtyPF87cisrKW89TVtyXSxzPUFbcl0sU1syKnJdPW89PT1kP05hTjpvLFNbMipyKzFdPXM9PT1kP05hTjpzO2lmKCJsb2ciPT09eS50eXBlKWZvcihyPTA7cjxrO3IrPTIpU1tyXT15LmMybChTW3JdKTtpZigibG9nIj09PXgudHlwZSlmb3Iocj0xO3I8aztyKz0yKVNbcl09eC5jMmwoU1tyXSk7aWYodyYmImxvZyIhPT15LnR5cGUmJiJsb2ciIT09eC50eXBlKVQudHJlZT1uKFMpO2Vsc2V7dmFyIEU9VC5pZHM9bmV3IEFycmF5KF8pO2ZvcihyPTA7cjxfO3IrKylFW3JdPXJ9aCh0LGUpO3ZhciBMLEM9ZnVuY3Rpb24odCxlLHIsbixpLG8pe3ZhciBzPWYuc3R5bGUodCxyKTtzLm1hcmtlciYmKHMubWFya2VyLnBvc2l0aW9ucz1uKTtzLmxpbmUmJm4ubGVuZ3RoPjEmJmEuZXh0ZW5kRmxhdChzLmxpbmUsZi5saW5lUG9zaXRpb25zKHQscixuKSk7aWYocy5lcnJvclh8fHMuZXJyb3JZKXt2YXIgbD1mLmVycm9yQmFyUG9zaXRpb25zKHQscixuLGksbyk7cy5lcnJvclgmJmEuZXh0ZW5kRmxhdChzLmVycm9yWCxsLngpLHMuZXJyb3JZJiZhLmV4dGVuZEZsYXQocy5lcnJvclksbC55KX1zLnRleHQmJihhLmV4dGVuZEZsYXQocy50ZXh0LHtwb3NpdGlvbnM6bn0sZi50ZXh0UG9zaXRpb24odCxyLHMudGV4dCxzLm1hcmtlcikpLGEuZXh0ZW5kRmxhdChzLnRleHRTZWwse3Bvc2l0aW9uczpufSxmLnRleHRQb3NpdGlvbih0LHIscy50ZXh0LHMubWFya2VyU2VsKSksYS5leHRlbmRGbGF0KHMudGV4dFVuc2VsLHtwb3NpdGlvbnM6bn0sZi50ZXh0UG9zaXRpb24odCxyLHMudGV4dCxzLm1hcmtlclVuc2VsKSkpO3JldHVybiBzfSh0LDAsZSxTLE0sQSksUD1wKHQsYik7cmV0dXJuIHUobSxlKSx3P0MubWFya2VyJiYoTD0yKihDLm1hcmtlci5zaXplQXZnfHxNYXRoLm1heChDLm1hcmtlci5zaXplLDMpKSk6TD1sKGUsXyksYyh0LGUseSx4LE0sQSxMKSxDLmVycm9yWCYmdihlLHksQy5lcnJvclgpLEMuZXJyb3JZJiZ2KGUseCxDLmVycm9yWSksQy5maWxsJiYhUC5maWxsMmQmJihQLmZpbGwyZD0hMCksQy5tYXJrZXImJiFQLnNjYXR0ZXIyZCYmKFAuc2NhdHRlcjJkPSEwKSxDLmxpbmUmJiFQLmxpbmUyZCYmKFAubGluZTJkPSEwKSwhQy5lcnJvclgmJiFDLmVycm9yWXx8UC5lcnJvcjJkfHwoUC5lcnJvcjJkPSEwKSxDLnRleHQmJiFQLmdsVGV4dCYmKFAuZ2xUZXh0PSEwKSxDLm1hcmtlciYmKEMubWFya2VyLnNuYXA9XyksUC5saW5lT3B0aW9ucy5wdXNoKEMubGluZSksUC5lcnJvclhPcHRpb25zLnB1c2goQy5lcnJvclgpLFAuZXJyb3JZT3B0aW9ucy5wdXNoKEMuZXJyb3JZKSxQLmZpbGxPcHRpb25zLnB1c2goQy5maWxsKSxQLm1hcmtlck9wdGlvbnMucHVzaChDLm1hcmtlciksUC5tYXJrZXJTZWxlY3RlZE9wdGlvbnMucHVzaChDLm1hcmtlclNlbCksUC5tYXJrZXJVbnNlbGVjdGVkT3B0aW9ucy5wdXNoKEMubWFya2VyVW5zZWwpLFAudGV4dE9wdGlvbnMucHVzaChDLnRleHQpLFAudGV4dFNlbGVjdGVkT3B0aW9ucy5wdXNoKEMudGV4dFNlbCksUC50ZXh0VW5zZWxlY3RlZE9wdGlvbnMucHVzaChDLnRleHRVbnNlbCksUC5zZWxlY3RCYXRjaC5wdXNoKFtdKSxQLnVuc2VsZWN0QmF0Y2gucHVzaChbXSksVC5fc2NlbmU9UCxULmluZGV4PVAuY291bnQsVC54PU0sVC55PUEsVC5wb3NpdGlvbnM9UyxQLmNvdW50KyssW3t4OiExLHk6ITEsdDpULHRyYWNlOmV9XX19LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NjkzLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F1dG9yYW5nZSI6NzY0LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiOjc2OCwiLi4vc2NhdHRlci9jYWxjIjoxMTIxLCIuLi9zY2F0dGVyL2NvbG9yc2NhbGVfY2FsYyI6MTEyMywiLi9jb25zdGFudHMiOjExNzMsIi4vY29udmVydCI6MTE3NCwiLi9zY2VuZV91cGRhdGUiOjExODIsInBvaW50LWNsdXN0ZXIiOjQ3MX1dLDExNzM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtUT09fTUFOWV9QT0lOVFM6MWU1LFNZTUJPTF9TREZfU0laRToyMDAsU1lNQk9MX1NJWkU6MjAsU1lNQk9MX1NUUk9LRToxLERPVF9SRTovLWRvdC8sT1BFTl9SRTovLW9wZW4vLERBU0hFUzp7c29saWQ6WzFdLGRvdDpbMSwxXSxkYXNoOls0LDFdLGxvbmdkYXNoOls4LDFdLGRhc2hkb3Q6WzQsMSwxLDFdLGxvbmdkYXNoZG90Ols4LDEsMSwxXX19fSx7fV0sMTE3NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGE9dCgic3ZnLXBhdGgtc2RmIiksaT10KCJjb2xvci1ub3JtYWxpemUiKSxvPXQoIi4uLy4uL3JlZ2lzdHJ5Iikscz10KCIuLi8uLi9saWIiKSxsPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGM9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIiksdT10KCIuLi8uLi9saWIvZ2xfZm9ybWF0X2NvbG9yIikuZm9ybWF0Q29sb3IsaD10KCIuLi9zY2F0dGVyL3N1YnR5cGVzIiksZj10KCIuLi9zY2F0dGVyL21ha2VfYnViYmxlX3NpemVfZnVuYyIpLHA9dCgiLi9oZWxwZXJzIiksZD10KCIuL2NvbnN0YW50cyIpLGc9dCgiLi4vLi4vY29uc3RhbnRzL2ludGVyYWN0aW9ucyIpLkRFU0VMRUNURElNLHY9e3N0YXJ0OjEsbGVmdDoxLGVuZDotMSxyaWdodDotMSxtaWRkbGU6MCxjZW50ZXI6MCxib3R0b206MSx0b3A6LTF9LG09dCgiLi4vLi4vY29tcG9uZW50cy9meC9oZWxwZXJzIikuYXBwZW5kQXJyYXlQb2ludFZhbHVlO2Z1bmN0aW9uIHkodCxlKXt2YXIgcixhPXQuX2Z1bGxMYXlvdXQsaT1lLl9sZW5ndGgsbz1lLnRleHRmb250LGw9ZS50ZXh0cG9zaXRpb24sYz1BcnJheS5pc0FycmF5KGwpP2w6W2xdLHU9by5jb2xvcixoPW8uc2l6ZSxmPW8uZmFtaWx5LHA9e30sZD1lLnRleHR0ZW1wbGF0ZTtpZihkKXtwLnRleHQ9W107dmFyIGc9YS5fZDNsb2NhbGUsdj1BcnJheS5pc0FycmF5KGQpLHk9dj9NYXRoLm1pbihkLmxlbmd0aCxpKTppLHg9dj9mdW5jdGlvbih0KXtyZXR1cm4gZFt0XX06ZnVuY3Rpb24oKXtyZXR1cm4gZH07Zm9yKHI9MDtyPHk7cisrKXt2YXIgYj17aTpyfSxfPWUuX21vZHVsZS5mb3JtYXRMYWJlbHMoYixlLGEpLHc9e307bSh3LGUscik7dmFyIGs9ZS5fbWV0YXx8e307cC50ZXh0LnB1c2gocy50ZXh0dGVtcGxhdGVTdHJpbmcoeChyKSxfLGcsdyxiLGspKX19ZWxzZSBBcnJheS5pc0FycmF5KGUudGV4dCkmJmUudGV4dC5sZW5ndGg8aT9wLnRleHQ9ZS50ZXh0LnNsaWNlKCk6cC50ZXh0PWUudGV4dDtpZihBcnJheS5pc0FycmF5KHAudGV4dCkpZm9yKHI9cC50ZXh0Lmxlbmd0aDtyPGk7cisrKXAudGV4dFtyXT0iIjtmb3IocC5vcGFjaXR5PWUub3BhY2l0eSxwLmZvbnQ9e30scC5hbGlnbj1bXSxwLmJhc2VsaW5lPVtdLHI9MDtyPGMubGVuZ3RoO3IrKyl7dmFyIFQ9Y1tyXS5zcGxpdCgvXHMrLyk7c3dpdGNoKFRbMV0pe2Nhc2UibGVmdCI6cC5hbGlnbi5wdXNoKCJyaWdodCIpO2JyZWFrO2Nhc2UicmlnaHQiOnAuYWxpZ24ucHVzaCgibGVmdCIpO2JyZWFrO2RlZmF1bHQ6cC5hbGlnbi5wdXNoKFRbMV0pfXN3aXRjaChUWzBdKXtjYXNlInRvcCI6cC5iYXNlbGluZS5wdXNoKCJib3R0b20iKTticmVhaztjYXNlImJvdHRvbSI6cC5iYXNlbGluZS5wdXNoKCJ0b3AiKTticmVhaztkZWZhdWx0OnAuYmFzZWxpbmUucHVzaChUWzBdKX19aWYoQXJyYXkuaXNBcnJheSh1KSlmb3IocC5jb2xvcj1uZXcgQXJyYXkoaSkscj0wO3I8aTtyKyspcC5jb2xvcltyXT11W3JdO2Vsc2UgcC5jb2xvcj11O2lmKHMuaXNBcnJheU9yVHlwZWRBcnJheShoKXx8QXJyYXkuaXNBcnJheShmKSlmb3IocC5mb250PW5ldyBBcnJheShpKSxyPTA7cjxpO3IrKyl7dmFyIE09cC5mb250W3JdPXt9O00uc2l6ZT1zLmlzVHlwZWRBcnJheShoKT9oW3JdOkFycmF5LmlzQXJyYXkoaCk/bihoW3JdKT9oW3JdOjA6aCxNLmZhbWlseT1BcnJheS5pc0FycmF5KGYpP2Zbcl06Zn1lbHNlIHAuZm9udD17c2l6ZTpoLGZhbWlseTpmfTtyZXR1cm4gcH1mdW5jdGlvbiB4KHQpe3ZhciBlLHIsbj10Ll9sZW5ndGgsYT10Lm1hcmtlcixvPXt9LGw9cy5pc0FycmF5T3JUeXBlZEFycmF5KGEuc3ltYm9sKSxjPXMuaXNBcnJheU9yVHlwZWRBcnJheShhLmNvbG9yKSxoPXMuaXNBcnJheU9yVHlwZWRBcnJheShhLmxpbmUuY29sb3IpLGQ9cy5pc0FycmF5T3JUeXBlZEFycmF5KGEub3BhY2l0eSksZz1zLmlzQXJyYXlPclR5cGVkQXJyYXkoYS5zaXplKSx2PXMuaXNBcnJheU9yVHlwZWRBcnJheShhLmxpbmUud2lkdGgpO2lmKGx8fChyPXAuaXNPcGVuU3ltYm9sKGEuc3ltYm9sKSksbHx8Y3x8aHx8ZCl7by5jb2xvcnM9bmV3IEFycmF5KG4pLG8uYm9yZGVyQ29sb3JzPW5ldyBBcnJheShuKTt2YXIgbT11KGEsYS5vcGFjaXR5LG4pLHk9dShhLmxpbmUsYS5vcGFjaXR5LG4pO2lmKCFBcnJheS5pc0FycmF5KHlbMF0pKXt2YXIgeD15O2Zvcih5PUFycmF5KG4pLGU9MDtlPG47ZSsrKXlbZV09eH1pZighQXJyYXkuaXNBcnJheShtWzBdKSl7dmFyIGI9bTtmb3IobT1BcnJheShuKSxlPTA7ZTxuO2UrKyltW2VdPWJ9Zm9yKG8uY29sb3JzPW0sby5ib3JkZXJDb2xvcnM9eSxlPTA7ZTxuO2UrKyl7aWYobCl7dmFyIF89YS5zeW1ib2xbZV07cj1wLmlzT3BlblN5bWJvbChfKX1yJiYoeVtlXT1tW2VdLnNsaWNlKCksbVtlXT1tW2VdLnNsaWNlKCksbVtlXVszXT0wKX1vLm9wYWNpdHk9dC5vcGFjaXR5fWVsc2Ugcj8oby5jb2xvcj1pKGEuY29sb3IsInVpbnQ4Iiksby5jb2xvclszXT0wLG8uYm9yZGVyQ29sb3I9aShhLmNvbG9yLCJ1aW50OCIpKTooby5jb2xvcj1pKGEuY29sb3IsInVpbnQ4Iiksby5ib3JkZXJDb2xvcj1pKGEubGluZS5jb2xvciwidWludDgiKSksby5vcGFjaXR5PXQub3BhY2l0eSphLm9wYWNpdHk7aWYobClmb3Ioby5tYXJrZXJzPW5ldyBBcnJheShuKSxlPTA7ZTxuO2UrKylvLm1hcmtlcnNbZV09RShhLnN5bWJvbFtlXSk7ZWxzZSBvLm1hcmtlcj1FKGEuc3ltYm9sKTt2YXIgdyxrPWYodCk7aWYoZ3x8dil7dmFyIFQsTT1vLnNpemVzPW5ldyBBcnJheShuKSxBPW8uYm9yZGVyU2l6ZXM9bmV3IEFycmF5KG4pLFM9MDtpZihnKXtmb3IoZT0wO2U8bjtlKyspTVtlXT1rKGEuc2l6ZVtlXSksUys9TVtlXTtUPVMvbn1lbHNlIGZvcih3PWsoYS5zaXplKSxlPTA7ZTxuO2UrKylNW2VdPXc7aWYodilmb3IoZT0wO2U8bjtlKyspQVtlXT1hLmxpbmUud2lkdGhbZV0vMjtlbHNlIGZvcih3PWEubGluZS53aWR0aC8yLGU9MDtlPG47ZSsrKUFbZV09dztvLnNpemVBdmc9VH1lbHNlIG8uc2l6ZT1rKGEmJmEuc2l6ZXx8MTApLG8uYm9yZGVyU2l6ZXM9ayhhLmxpbmUud2lkdGgpO3JldHVybiBvfWZ1bmN0aW9uIGIodCxlKXt2YXIgcj10Lm1hcmtlcixuPXt9O3JldHVybiBlPyhlLm1hcmtlciYmZS5tYXJrZXIuc3ltYm9sP249eChzLmV4dGVuZEZsYXQoe30scixlLm1hcmtlcikpOmUubWFya2VyJiYoZS5tYXJrZXIuc2l6ZSYmKG4uc2l6ZT1lLm1hcmtlci5zaXplLzIpLGUubWFya2VyLmNvbG9yJiYobi5jb2xvcnM9ZS5tYXJrZXIuY29sb3IpLHZvaWQgMCE9PWUubWFya2VyLm9wYWNpdHkmJihuLm9wYWNpdHk9ZS5tYXJrZXIub3BhY2l0eSkpLG4pOm59ZnVuY3Rpb24gXyh0LGUscil7dmFyIG49e307aWYoIXIpcmV0dXJuIG47aWYoci50ZXh0Zm9udCl7dmFyIGE9e29wYWNpdHk6MSx0ZXh0OmUudGV4dCx0ZXh0dGVtcGxhdGU6ZS50ZXh0dGVtcGxhdGUsdGV4dHBvc2l0aW9uOmUudGV4dHBvc2l0aW9uLHRleHRmb250OnMuZXh0ZW5kRmxhdCh7fSxlLnRleHRmb250KX07ci50ZXh0Zm9udCYmcy5leHRlbmRGbGF0KGEudGV4dGZvbnQsci50ZXh0Zm9udCksbj15KHQsYSl9cmV0dXJuIG59ZnVuY3Rpb24gdyh0LGUpe3ZhciByPXtjYXBTaXplOjIqZS53aWR0aCxsaW5lV2lkdGg6ZS50aGlja25lc3MsY29sb3I6ZS5jb2xvcn07cmV0dXJuIGUuY29weV95c3R5bGUmJihyPXQuZXJyb3JfeSkscn12YXIgaz1kLlNZTUJPTF9TREZfU0laRSxUPWQuU1lNQk9MX1NJWkUsTT1kLlNZTUJPTF9TVFJPS0UsQT17fSxTPWwuc3ltYm9sRnVuY3NbMF0oLjA1KlQpO2Z1bmN0aW9uIEUodCl7aWYoImNpcmNsZSI9PT10KXJldHVybiBudWxsO3ZhciBlLHIsbj1sLnN5bWJvbE51bWJlcih0KSxpPWwuc3ltYm9sRnVuY3NbbiUxMDBdLG89ISFsLnN5bWJvbE5vRG90W24lMTAwXSxzPSEhbC5zeW1ib2xOb0ZpbGxbbiUxMDBdLGM9cC5pc0RvdFN5bWJvbCh0KTtyZXR1cm4gQVt0XT9BW3RdOihlPWMmJiFvP2koMS4xKlQpK1M6aShUKSxyPWEoZSx7dzprLGg6ayx2aWV3Qm94OlstVCwtVCxULFRdLHN0cm9rZTpzP006LU19KSxBW3RdPXIscnx8bnVsbCl9ZS5leHBvcnRzPXtzdHlsZTpmdW5jdGlvbih0LGUpe3ZhciByLG49e21hcmtlcjp2b2lkIDAsbWFya2VyU2VsOnZvaWQgMCxtYXJrZXJVbnNlbDp2b2lkIDAsbGluZTp2b2lkIDAsZmlsbDp2b2lkIDAsZXJyb3JYOnZvaWQgMCxlcnJvclk6dm9pZCAwLHRleHQ6dm9pZCAwLHRleHRTZWw6dm9pZCAwLHRleHRVbnNlbDp2b2lkIDB9O2lmKCEwIT09ZS52aXNpYmxlKXJldHVybiBuO2lmKGguaGFzVGV4dChlKSYmKG4udGV4dD15KHQsZSksbi50ZXh0U2VsPV8odCxlLGUuc2VsZWN0ZWQpLG4udGV4dFVuc2VsPV8odCxlLGUudW5zZWxlY3RlZCkpLGguaGFzTWFya2VycyhlKSYmKG4ubWFya2VyPXgoZSksbi5tYXJrZXJTZWw9YihlLGUuc2VsZWN0ZWQpLG4ubWFya2VyVW5zZWw9YihlLGUudW5zZWxlY3RlZCksIWUudW5zZWxlY3RlZCYmcy5pc0FycmF5T3JUeXBlZEFycmF5KGUubWFya2VyLm9wYWNpdHkpKSl7dmFyIGE9ZS5tYXJrZXIub3BhY2l0eTtmb3Iobi5tYXJrZXJVbnNlbC5vcGFjaXR5PW5ldyBBcnJheShhLmxlbmd0aCkscj0wO3I8YS5sZW5ndGg7cisrKW4ubWFya2VyVW5zZWwub3BhY2l0eVtyXT1nKmFbcl19aWYoaC5oYXNMaW5lcyhlKSl7bi5saW5lPXtvdmVybGF5OiEwLHRoaWNrbmVzczplLmxpbmUud2lkdGgsY29sb3I6ZS5saW5lLmNvbG9yLG9wYWNpdHk6ZS5vcGFjaXR5fTt2YXIgaT0oZC5EQVNIRVNbZS5saW5lLmRhc2hdfHxbMV0pLnNsaWNlKCk7Zm9yKHI9MDtyPGkubGVuZ3RoOysrcilpW3JdKj1lLmxpbmUud2lkdGg7bi5saW5lLmRhc2hlcz1pfXJldHVybiBlLmVycm9yX3gmJmUuZXJyb3JfeC52aXNpYmxlJiYobi5lcnJvclg9dyhlLGUuZXJyb3JfeCkpLGUuZXJyb3JfeSYmZS5lcnJvcl95LnZpc2libGUmJihuLmVycm9yWT13KGUsZS5lcnJvcl95KSksZS5maWxsJiYibm9uZSIhPT1lLmZpbGwmJihuLmZpbGw9e2Nsb3NlZDohMCxmaWxsOmUuZmlsbGNvbG9yLHRoaWNrbmVzczowfSksbn0sbWFya2VyU3R5bGU6eCxtYXJrZXJTZWxlY3Rpb246YixsaW5lUG9zaXRpb25zOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbixhLGk9ci5sZW5ndGgsbz1pLzI7aWYoaC5oYXNMaW5lcyhlKSYmbylpZigiaHYiPT09ZS5saW5lLnNoYXBlKXtmb3Iobj1bXSxhPTA7YTxvLTE7YSsrKWlzTmFOKHJbMiphXSl8fGlzTmFOKHJbMiphKzFdKT9uLnB1c2goTmFOLE5hTixOYU4sTmFOKToobi5wdXNoKHJbMiphXSxyWzIqYSsxXSksaXNOYU4oclsyKmErMl0pfHxpc05hTihyWzIqYSszXSk/bi5wdXNoKE5hTixOYU4pOm4ucHVzaChyWzIqYSsyXSxyWzIqYSsxXSkpO24ucHVzaChyW2ktMl0scltpLTFdKX1lbHNlIGlmKCJodmgiPT09ZS5saW5lLnNoYXBlKXtmb3Iobj1bXSxhPTA7YTxvLTE7YSsrKWlmKGlzTmFOKHJbMiphXSl8fGlzTmFOKHJbMiphKzFdKXx8aXNOYU4oclsyKmErMl0pfHxpc05hTihyWzIqYSszXSkpaXNOYU4oclsyKmFdKXx8aXNOYU4oclsyKmErMV0pP24ucHVzaChOYU4sTmFOKTpuLnB1c2goclsyKmFdLHJbMiphKzFdKSxuLnB1c2goTmFOLE5hTik7ZWxzZXt2YXIgcz0oclsyKmFdK3JbMiphKzJdKS8yO24ucHVzaChyWzIqYV0sclsyKmErMV0scyxyWzIqYSsxXSxzLHJbMiphKzNdKX1uLnB1c2gocltpLTJdLHJbaS0xXSl9ZWxzZSBpZigidmh2Ij09PWUubGluZS5zaGFwZSl7Zm9yKG49W10sYT0wO2E8by0xO2ErKylpZihpc05hTihyWzIqYV0pfHxpc05hTihyWzIqYSsxXSl8fGlzTmFOKHJbMiphKzJdKXx8aXNOYU4oclsyKmErM10pKWlzTmFOKHJbMiphXSl8fGlzTmFOKHJbMiphKzFdKT9uLnB1c2goTmFOLE5hTik6bi5wdXNoKHJbMiphXSxyWzIqYSsxXSksbi5wdXNoKE5hTixOYU4pO2Vsc2V7dmFyIGw9KHJbMiphKzFdK3JbMiphKzNdKS8yO24ucHVzaChyWzIqYV0sclsyKmErMV0sclsyKmFdLGwsclsyKmErMl0sbCl9bi5wdXNoKHJbaS0yXSxyW2ktMV0pfWVsc2UgaWYoInZoIj09PWUubGluZS5zaGFwZSl7Zm9yKG49W10sYT0wO2E8by0xO2ErKylpc05hTihyWzIqYV0pfHxpc05hTihyWzIqYSsxXSk/bi5wdXNoKE5hTixOYU4sTmFOLE5hTik6KG4ucHVzaChyWzIqYV0sclsyKmErMV0pLGlzTmFOKHJbMiphKzJdKXx8aXNOYU4oclsyKmErM10pP24ucHVzaChOYU4sTmFOKTpuLnB1c2goclsyKmFdLHJbMiphKzNdKSk7bi5wdXNoKHJbaS0yXSxyW2ktMV0pfWVsc2Ugbj1yO3ZhciBjPSExO2ZvcihhPTA7YTxuLmxlbmd0aDthKyspaWYoaXNOYU4oblthXSkpe2M9ITA7YnJlYWt9dmFyIHU9Y3x8bi5sZW5ndGg+ZC5UT09fTUFOWV9QT0lOVFM/InJlY3QiOmguaGFzTWFya2VycyhlKT8icmVjdCI6InJvdW5kIjtpZihjJiZlLmNvbm5lY3RnYXBzKXt2YXIgZj1uWzBdLHA9blsxXTtmb3IoYT0wO2E8bi5sZW5ndGg7YSs9Milpc05hTihuW2FdKXx8aXNOYU4oblthKzFdKT8oblthXT1mLG5bYSsxXT1wKTooZj1uW2FdLHA9blthKzFdKX1yZXR1cm57am9pbjp1LHBvc2l0aW9uczpufX0sZXJyb3JCYXJQb3NpdGlvbnM6ZnVuY3Rpb24odCxlLHIsYSxpKXt2YXIgcz1vLmdldENvbXBvbmVudE1ldGhvZCgiZXJyb3JiYXJzIiwibWFrZUNvbXB1dGVFcnJvciIpLGw9Yy5nZXRGcm9tSWQodCxlLnhheGlzKSx1PWMuZ2V0RnJvbUlkKHQsZS55YXhpcyksaD1yLmxlbmd0aC8yLGY9e307ZnVuY3Rpb24gcCh0LGEpe3ZhciBpPWEuX2lkLmNoYXJBdCgwKSxvPWVbImVycm9yXyIraV07aWYobyYmby52aXNpYmxlJiYoImxpbmVhciI9PT1hLnR5cGV8fCJsb2ciPT09YS50eXBlKSl7Zm9yKHZhciBsPXMobyksYz17eDowLHk6MX1baV0sdT17eDpbMCwxLDIsM10seTpbMiwzLDAsMV19W2ldLHA9bmV3IEZsb2F0NjRBcnJheSg0KmgpLGQ9MS8wLGc9LTEvMCx2PTAsbT0wO3Y8aDt2KyssbSs9NCl7dmFyIHk9dFt2XTtpZihuKHkpKXt2YXIgeD1yWzIqditjXSxiPWwoeSx2KSxfPWJbMF0sdz1iWzFdO2lmKG4oXykmJm4odykpe3ZhciBrPXktXyxUPXkrdztwW20rdVswXV09eC1hLmMybChrKSxwW20rdVsxXV09YS5jMmwoVCkteCxwW20rdVsyXV09MCxwW20rdVszXV09MCxkPU1hdGgubWluKGQseS1fKSxnPU1hdGgubWF4KGcseSt3KX19fWZbaV09e3Bvc2l0aW9uczpyLGVycm9yczpwLF9ibmRzOltkLGddfX19cmV0dXJuIHAoYSxsKSxwKGksdSksZn0sdGV4dFBvc2l0aW9uOmZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhLGk9ZS5fbGVuZ3RoLG89e307aWYoaC5oYXNNYXJrZXJzKGUpKXt2YXIgcz1yLmZvbnQsbD1yLmFsaWduLGM9ci5iYXNlbGluZTtmb3Ioby5vZmZzZXQ9bmV3IEFycmF5KGkpLGE9MDthPGk7YSsrKXt2YXIgdT1uLnNpemVzP24uc2l6ZXNbYV06bi5zaXplLGY9QXJyYXkuaXNBcnJheShzKT9zW2FdLnNpemU6cy5zaXplLHA9QXJyYXkuaXNBcnJheShsKT9sLmxlbmd0aD4xP2xbYV06bFswXTpsLGQ9QXJyYXkuaXNBcnJheShjKT9jLmxlbmd0aD4xP2NbYV06Y1swXTpjLGc9dltwXSxtPXZbZF0seT11P3UvLjgrMTowLHg9LW0qeS0uNSptO28ub2Zmc2V0W2FdPVtnKnkvZix4L2ZdfX1yZXR1cm4gb319fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjEzLCIuLi8uLi9jb21wb25lbnRzL2Z4L2hlbHBlcnMiOjYyNywiLi4vLi4vY29uc3RhbnRzL2ludGVyYWN0aW9ucyI6NjkyLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vbGliL2dsX2Zvcm1hdF9jb2xvciI6NzE0LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiOjc2OCwiLi4vLi4vcmVnaXN0cnkiOjg0NiwiLi4vc2NhdHRlci9tYWtlX2J1YmJsZV9zaXplX2Z1bmMiOjExMzcsIi4uL3NjYXR0ZXIvc3VidHlwZXMiOjExNDQsIi4vY29uc3RhbnRzIjoxMTczLCIuL2hlbHBlcnMiOjExNzgsImNvbG9yLW5vcm1hbGl6ZSI6MTIyLCJmYXN0LWlzbnVtZXJpYyI6MjI4LCJzdmctcGF0aC1zZGYiOjUzNH1dLDExNzU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9yZWdpc3RyeSIpLGk9dCgiLi9oZWxwZXJzIiksbz10KCIuL2F0dHJpYnV0ZXMiKSxzPXQoIi4uL3NjYXR0ZXIvY29uc3RhbnRzIiksbD10KCIuLi9zY2F0dGVyL3N1YnR5cGVzIiksYz10KCIuLi9zY2F0dGVyL3h5X2RlZmF1bHRzIiksdT10KCIuLi9zY2F0dGVyL21hcmtlcl9kZWZhdWx0cyIpLGg9dCgiLi4vc2NhdHRlci9saW5lX2RlZmF1bHRzIiksZj10KCIuLi9zY2F0dGVyL2ZpbGxjb2xvcl9kZWZhdWx0cyIpLHA9dCgiLi4vc2NhdHRlci90ZXh0X2RlZmF1bHRzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGQpe2Z1bmN0aW9uIGcocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLG8scixhKX12YXIgdj0hIXQubWFya2VyJiZpLmlzT3BlblN5bWJvbCh0Lm1hcmtlci5zeW1ib2wpLG09bC5pc0J1YmJsZSh0KSx5PWModCxlLGQsZyk7aWYoeSl7dmFyIHg9eTxzLlBUU19MSU5FU09OTFk/ImxpbmVzK21hcmtlcnMiOiJsaW5lcyI7ZygidGV4dCIpLGcoImhvdmVydGV4dCIpLGcoImhvdmVydGVtcGxhdGUiKSxnKCJtb2RlIix4KSxsLmhhc0xpbmVzKGUpJiYoZygiY29ubmVjdGdhcHMiKSxoKHQsZSxyLGQsZyksZygibGluZS5zaGFwZSIpKSxsLmhhc01hcmtlcnMoZSkmJih1KHQsZSxyLGQsZyksZygibWFya2VyLmxpbmUud2lkdGgiLHZ8fG0/MTowKSksbC5oYXNUZXh0KGUpJiYoZygidGV4dHRlbXBsYXRlIikscCh0LGUsZCxnKSk7dmFyIGI9KGUubGluZXx8e30pLmNvbG9yLF89KGUubWFya2VyfHx7fSkuY29sb3I7ZygiZmlsbCIpLCJub25lIiE9PWUuZmlsbCYmZih0LGUscixnKTt2YXIgdz1hLmdldENvbXBvbmVudE1ldGhvZCgiZXJyb3JiYXJzIiwic3VwcGx5RGVmYXVsdHMiKTt3KHQsZSxifHxffHxyLHtheGlzOiJ5In0pLHcodCxlLGJ8fF98fHIse2F4aXM6IngiLGluaGVyaXQ6InkifSksbi5jb2VyY2VTZWxlY3Rpb25NYXJrZXJPcGFjaXR5KGUsZyl9ZWxzZSBlLnZpc2libGU9ITF9fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi8uLi9yZWdpc3RyeSI6ODQ2LCIuLi9zY2F0dGVyL2NvbnN0YW50cyI6MTEyNCwiLi4vc2NhdHRlci9maWxsY29sb3JfZGVmYXVsdHMiOjExMjgsIi4uL3NjYXR0ZXIvbGluZV9kZWZhdWx0cyI6MTEzMywiLi4vc2NhdHRlci9tYXJrZXJfZGVmYXVsdHMiOjExMzksIi4uL3NjYXR0ZXIvc3VidHlwZXMiOjExNDQsIi4uL3NjYXR0ZXIvdGV4dF9kZWZhdWx0cyI6MTE0NSwiLi4vc2NhdHRlci94eV9kZWZhdWx0cyI6MTE0NiwiLi9hdHRyaWJ1dGVzIjoxMTcxLCIuL2hlbHBlcnMiOjExNzh9XSwxMTc2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGk9dCgiLi4vLi4vY29uc3RhbnRzL2ludGVyYWN0aW9ucyIpLkRFU0VMRUNURElNO2UuZXhwb3J0cz17c3R5bGVUZXh0U2VsZWN0aW9uOmZ1bmN0aW9uKHQpe3ZhciBlLHIsbz10WzBdLHM9by50cmFjZSxsPW8udCxjPWwuX3NjZW5lLHU9bC5pbmRleCxoPWMuc2VsZWN0QmF0Y2hbdV0sZj1jLnVuc2VsZWN0QmF0Y2hbdV0scD1jLnRleHRPcHRpb25zW3VdLGQ9Yy50ZXh0U2VsZWN0ZWRPcHRpb25zW3VdfHx7fSxnPWMudGV4dFVuc2VsZWN0ZWRPcHRpb25zW3VdfHx7fSx2PW4uZXh0ZW5kRmxhdCh7fSxwKTtpZihoLmxlbmd0aHx8Zi5sZW5ndGgpe3ZhciBtPWQuY29sb3IseT1nLmNvbG9yLHg9cC5jb2xvcixiPUFycmF5LmlzQXJyYXkoeCk7Zm9yKHYuY29sb3I9bmV3IEFycmF5KHMuX2xlbmd0aCksZT0wO2U8aC5sZW5ndGg7ZSsrKXI9aFtlXSx2LmNvbG9yW3JdPW18fChiP3hbcl06eCk7Zm9yKGU9MDtlPGYubGVuZ3RoO2UrKyl7cj1mW2VdO3ZhciBfPWI/eFtyXTp4O3YuY29sb3Jbcl09eXx8KG0/XzphLmFkZE9wYWNpdHkoXyxpKSl9fWMuZ2xUZXh0W3VdLnVwZGF0ZSh2KX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjU5MiwiLi4vLi4vY29uc3RhbnRzL2ludGVyYWN0aW9ucyI6NjkyLCIuLi8uLi9saWIiOjcxN31dLDExNzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9mb3JtYXRfbGFiZWxzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgYT10Lmk7cmV0dXJuIngiaW4gdHx8KHQueD1lLl94W2FdKSwieSJpbiB0fHwodC55PWUuX3lbYV0pLG4odCxlLHIpfX0seyIuLi9zY2F0dGVyL2Zvcm1hdF9sYWJlbHMiOjExMjl9XSwxMTc4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vY29uc3RhbnRzIik7ci5pc09wZW5TeW1ib2w9ZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P24uT1BFTl9SRS50ZXN0KHQpOnQlMjAwPjEwMH0sci5pc0RvdFN5bWJvbD1mdW5jdGlvbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/bi5ET1RfUkUudGVzdCh0KTp0PjIwMH19LHsiLi9jb25zdGFudHMiOjExNzN9XSwxMTc5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3JlZ2lzdHJ5IiksYT10KCIuLi8uLi9saWIiKSxpPXQoIi4uL3NjYXR0ZXIvZ2V0X3RyYWNlX2NvbG9yIik7ZnVuY3Rpb24gbyh0LGUscixvKXt2YXIgcz10LnhhLGw9dC55YSxjPXQuZGlzdGFuY2UsdT10LmR4eSxoPXQuaW5kZXgsZj17cG9pbnROdW1iZXI6aCx4OmVbaF0seTpyW2hdfTtmLnR4PUFycmF5LmlzQXJyYXkoby50ZXh0KT9vLnRleHRbaF06by50ZXh0LGYuaHR4PUFycmF5LmlzQXJyYXkoby5ob3ZlcnRleHQpP28uaG92ZXJ0ZXh0W2hdOm8uaG92ZXJ0ZXh0LGYuZGF0YT1BcnJheS5pc0FycmF5KG8uY3VzdG9tZGF0YSk/by5jdXN0b21kYXRhW2hdOm8uY3VzdG9tZGF0YSxmLnRwPUFycmF5LmlzQXJyYXkoby50ZXh0cG9zaXRpb24pP28udGV4dHBvc2l0aW9uW2hdOm8udGV4dHBvc2l0aW9uO3ZhciBwPW8udGV4dGZvbnQ7cCYmKGYudHM9YS5pc0FycmF5T3JUeXBlZEFycmF5KHAuc2l6ZSk/cC5zaXplW2hdOnAuc2l6ZSxmLnRjPUFycmF5LmlzQXJyYXkocC5jb2xvcik/cC5jb2xvcltoXTpwLmNvbG9yLGYudGY9QXJyYXkuaXNBcnJheShwLmZhbWlseSk/cC5mYW1pbHlbaF06cC5mYW1pbHkpO3ZhciBkPW8ubWFya2VyO2QmJihmLm1zPWEuaXNBcnJheU9yVHlwZWRBcnJheShkLnNpemUpP2Quc2l6ZVtoXTpkLnNpemUsZi5tbz1hLmlzQXJyYXlPclR5cGVkQXJyYXkoZC5vcGFjaXR5KT9kLm9wYWNpdHlbaF06ZC5vcGFjaXR5LGYubXg9YS5pc0FycmF5T3JUeXBlZEFycmF5KGQuc3ltYm9sKT9kLnN5bWJvbFtoXTpkLnN5bWJvbCxmLm1jPWEuaXNBcnJheU9yVHlwZWRBcnJheShkLmNvbG9yKT9kLmNvbG9yW2hdOmQuY29sb3IpO3ZhciBnPWQmJmQubGluZTtnJiYoZi5tbGM9QXJyYXkuaXNBcnJheShnLmNvbG9yKT9nLmNvbG9yW2hdOmcuY29sb3IsZi5tbHc9YS5pc0FycmF5T3JUeXBlZEFycmF5KGcud2lkdGgpP2cud2lkdGhbaF06Zy53aWR0aCk7dmFyIHY9ZCYmZC5ncmFkaWVudDt2JiYibm9uZSIhPT12LnR5cGUmJihmLm1ndD1BcnJheS5pc0FycmF5KHYudHlwZSk/di50eXBlW2hdOnYudHlwZSxmLm1nYz1BcnJheS5pc0FycmF5KHYuY29sb3IpP3YuY29sb3JbaF06di5jb2xvcik7dmFyIG09cy5jMnAoZi54LCEwKSx5PWwuYzJwKGYueSwhMCkseD1mLm1yY3x8MSxiPW8uaG92ZXJsYWJlbDtiJiYoZi5oYmc9QXJyYXkuaXNBcnJheShiLmJnY29sb3IpP2IuYmdjb2xvcltoXTpiLmJnY29sb3IsZi5oYmM9QXJyYXkuaXNBcnJheShiLmJvcmRlcmNvbG9yKT9iLmJvcmRlcmNvbG9yW2hdOmIuYm9yZGVyY29sb3IsZi5odHM9YS5pc0FycmF5T3JUeXBlZEFycmF5KGIuZm9udC5zaXplKT9iLmZvbnQuc2l6ZVtoXTpiLmZvbnQuc2l6ZSxmLmh0Yz1BcnJheS5pc0FycmF5KGIuZm9udC5jb2xvcik/Yi5mb250LmNvbG9yW2hdOmIuZm9udC5jb2xvcixmLmh0Zj1BcnJheS5pc0FycmF5KGIuZm9udC5mYW1pbHkpP2IuZm9udC5mYW1pbHlbaF06Yi5mb250LmZhbWlseSxmLmhubD1hLmlzQXJyYXlPclR5cGVkQXJyYXkoYi5uYW1lbGVuZ3RoKT9iLm5hbWVsZW5ndGhbaF06Yi5uYW1lbGVuZ3RoKTt2YXIgXz1vLmhvdmVyaW5mbztfJiYoZi5oaT1BcnJheS5pc0FycmF5KF8pP19baF06Xyk7dmFyIHc9by5ob3ZlcnRlbXBsYXRlO3cmJihmLmh0PUFycmF5LmlzQXJyYXkodyk/d1toXTp3KTt2YXIgaz17fTtrW3QuaW5kZXhdPWY7dmFyIFQ9YS5leHRlbmRGbGF0KHt9LHQse2NvbG9yOmkobyxmKSx4MDptLXgseDE6bSt4LHhMYWJlbFZhbDpmLngseTA6eS14LHkxOnkreCx5TGFiZWxWYWw6Zi55LGNkOmssZGlzdGFuY2U6YyxzcGlrZURpc3RhbmNlOnUsaG92ZXJ0ZW1wbGF0ZTpmLmh0fSk7cmV0dXJuIGYuaHR4P1QudGV4dD1mLmh0eDpmLnR4P1QudGV4dD1mLnR4Om8udGV4dCYmKFQudGV4dD1vLnRleHQpLGEuZmlsbFRleHQoZixvLFQpLG4uZ2V0Q29tcG9uZW50TWV0aG9kKCJlcnJvcmJhcnMiLCJob3ZlckluZm8iKShmLG8sVCksVH1lLmV4cG9ydHM9e2hvdmVyUG9pbnRzOmZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhLGkscyxsLGMsdSxoLGYscCxkPXQuY2QsZz1kWzBdLnQsdj1kWzBdLnRyYWNlLG09dC54YSx5PXQueWEseD1nLngsYj1nLnksXz1tLmMycChlKSx3PXkuYzJwKHIpLGs9dC5kaXN0YW5jZTtpZihnLnRyZWUpe3ZhciBUPW0ucDJjKF8tayksTT1tLnAyYyhfK2spLEE9eS5wMmMody1rKSxTPXkucDJjKHcrayk7YT0ieCI9PT1uP2cudHJlZS5yYW5nZShNYXRoLm1pbihULE0pLE1hdGgubWluKHkuX3JsWzBdLHkuX3JsWzFdKSxNYXRoLm1heChULE0pLE1hdGgubWF4KHkuX3JsWzBdLHkuX3JsWzFdKSk6Zy50cmVlLnJhbmdlKE1hdGgubWluKFQsTSksTWF0aC5taW4oQSxTKSxNYXRoLm1heChULE0pLE1hdGgubWF4KEEsUykpfWVsc2UgYT1nLmlkczt2YXIgRT1rO2lmKCJ4Ij09PW4pZm9yKGM9MDtjPGEubGVuZ3RoO2MrKylzPXhbYVtjXV0sKHU9TWF0aC5hYnMobS5jMnAocyktXykpPEUmJihFPXUsaD15LmMycChiW2FbY11dKS13LHA9TWF0aC5zcXJ0KHUqdStoKmgpLGk9YVtjXSk7ZWxzZSBmb3IoYz1hLmxlbmd0aC0xO2M+LTE7Yy0tKXM9eFthW2NdXSxsPWJbYVtjXV0sdT1tLmMycChzKS1fLGg9eS5jMnAobCktdywoZj1NYXRoLnNxcnQodSp1K2gqaCkpPEUmJihFPXA9ZixpPWFbY10pO3JldHVybiB0LmluZGV4PWksdC5kaXN0YW5jZT1FLHQuZHh5PXAsdm9pZCAwPT09aT9bdF06W28odCx4LGIsdildfSxjYWxjSG92ZXI6b319LHsiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3JlZ2lzdHJ5Ijo4NDYsIi4uL3NjYXR0ZXIvZ2V0X3RyYWNlX2NvbG9yIjoxMTMwfV0sMTE4MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2hvdmVyIik7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToic2NhdHRlcmdsIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxjYXRlZ29yaWVzOlsiZ2wiLCJyZWdsIiwiY2FydGVzaWFuIiwic3ltYm9scyIsImVycm9yQmFyc09LIiwic2hvd0xlZ2VuZCIsInNjYXR0ZXItbGlrZSJdLGF0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNyb3NzVHJhY2VEZWZhdWx0czp0KCIuLi9zY2F0dGVyL2Nyb3NzX3RyYWNlX2RlZmF1bHRzIiksY29sb3JiYXI6dCgiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiKSxmb3JtYXRMYWJlbHM6dCgiLi9mb3JtYXRfbGFiZWxzIiksY2FsYzp0KCIuL2NhbGMiKSxwbG90OnQoIi4vcGxvdCIpLGhvdmVyUG9pbnRzOm4uaG92ZXJQb2ludHMsc2VsZWN0UG9pbnRzOnQoIi4vc2VsZWN0IiksbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuIjo3NzYsIi4uL3NjYXR0ZXIvY3Jvc3NfdHJhY2VfZGVmYXVsdHMiOjExMjYsIi4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIjoxMTM4LCIuL2F0dHJpYnV0ZXMiOjExNzEsIi4vY2FsYyI6MTE3MiwiLi9kZWZhdWx0cyI6MTE3NSwiLi9mb3JtYXRfbGFiZWxzIjoxMTc3LCIuL2hvdmVyIjoxMTc5LCIuL3Bsb3QiOjExODEsIi4vc2VsZWN0IjoxMTgzfV0sMTE4MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJyZWdsLXNjYXR0ZXIyZCIpLGE9dCgicmVnbC1saW5lMmQiKSxpPXQoInJlZ2wtZXJyb3IyZCIpLG89dCgiZ2wtdGV4dCIpLHM9dCgiLi4vLi4vbGliIiksbD10KCIuLi8uLi9saWIvcHJlcGFyZV9yZWdsIiksYz10KCIuLi9zY2F0dGVyL3N1YnR5cGVzIiksdT10KCIuLi9zY2F0dGVyL2xpbmtfdHJhY2VzIiksaD10KCIuL2VkaXRfc3R5bGUiKS5zdHlsZVRleHRTZWxlY3Rpb247ZnVuY3Rpb24gZih0LGUscil7dmFyIG49dC5fc2l6ZSxhPXQud2lkdGgsaT10LmhlaWdodDtyZXR1cm5bbi5sK2UuZG9tYWluWzBdKm4udyxuLmIrci5kb21haW5bMF0qbi5oLGEtbi5yLSgxLWUuZG9tYWluWzFdKSpuLncsaS1uLnQtKDEtci5kb21haW5bMV0pKm4uaF19ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtpZihyLmxlbmd0aCl7dmFyIHAsZCxnPXQuX2Z1bGxMYXlvdXQsdj1lLl9zY2VuZSxtPWUueGF4aXMseT1lLnlheGlzO2lmKHYpaWYobCh0LFsiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIsIk9FU19lbGVtZW50X2luZGV4X3VpbnQiXSkpe3ZhciB4PXYuY291bnQsYj1nLl9nbGNhbnZhcy5kYXRhKClbMF0ucmVnbDtpZih1KHQsZSxyKSx2LmRpcnR5KXtpZighMD09PXYuZXJyb3IyZCYmKHYuZXJyb3IyZD1pKGIpKSwhMD09PXYubGluZTJkJiYodi5saW5lMmQ9YShiKSksITA9PT12LnNjYXR0ZXIyZCYmKHYuc2NhdHRlcjJkPW4oYikpLCEwPT09di5maWxsMmQmJih2LmZpbGwyZD1hKGIpKSwhMD09PXYuZ2xUZXh0KWZvcih2LmdsVGV4dD1uZXcgQXJyYXkoeCkscD0wO3A8eDtwKyspdi5nbFRleHRbcF09bmV3IG8oYik7aWYodi5nbFRleHQpe2lmKHg+di5nbFRleHQubGVuZ3RoKXt2YXIgXz14LXYuZ2xUZXh0Lmxlbmd0aDtmb3IocD0wO3A8XztwKyspdi5nbFRleHQucHVzaChuZXcgbyhiKSl9ZWxzZSBpZih4PHYuZ2xUZXh0Lmxlbmd0aCl7dmFyIHc9di5nbFRleHQubGVuZ3RoLXg7di5nbFRleHQuc3BsaWNlKHgsdykuZm9yRWFjaChmdW5jdGlvbih0KXt0LmRlc3Ryb3koKX0pfWZvcihwPTA7cDx4O3ArKyl2LmdsVGV4dFtwXS51cGRhdGUodi50ZXh0T3B0aW9uc1twXSl9aWYodi5saW5lMmQmJih2LmxpbmUyZC51cGRhdGUodi5saW5lT3B0aW9ucyksdi5saW5lT3B0aW9ucz12LmxpbmVPcHRpb25zLm1hcChmdW5jdGlvbih0KXtpZih0JiZ0LnBvc2l0aW9ucyl7Zm9yKHZhciBlPXQucG9zaXRpb25zLHI9MDtyPGUubGVuZ3RoJiYoaXNOYU4oZVtyXSl8fGlzTmFOKGVbcisxXSkpOylyKz0yO2Zvcih2YXIgbj1lLmxlbmd0aC0yO24+ciYmKGlzTmFOKGVbbl0pfHxpc05hTihlW24rMV0pKTspbi09Mjt0LnBvc2l0aW9ucz1lLnNsaWNlKHIsbisyKX1yZXR1cm4gdH0pLHYubGluZTJkLnVwZGF0ZSh2LmxpbmVPcHRpb25zKSksdi5lcnJvcjJkKXt2YXIgaz0odi5lcnJvclhPcHRpb25zfHxbXSkuY29uY2F0KHYuZXJyb3JZT3B0aW9uc3x8W10pO3YuZXJyb3IyZC51cGRhdGUoayl9di5zY2F0dGVyMmQmJnYuc2NhdHRlcjJkLnVwZGF0ZSh2Lm1hcmtlck9wdGlvbnMpLHYuZmlsbE9yZGVyPXMucmVwZWF0KG51bGwseCksdi5maWxsMmQmJih2LmZpbGxPcHRpb25zPXYuZmlsbE9wdGlvbnMubWFwKGZ1bmN0aW9uKHQsZSl7dmFyIG49cltlXTtpZih0JiZuJiZuWzBdJiZuWzBdLnRyYWNlKXt2YXIgYSxpLG89blswXSxzPW8udHJhY2UsbD1vLnQsYz12LmxpbmVPcHRpb25zW2VdLHU9W107cy5fb3duZmlsbCYmdS5wdXNoKGUpLHMuX25leHR0cmFjZSYmdS5wdXNoKGUrMSksdS5sZW5ndGgmJih2LmZpbGxPcmRlcltlXT11KTt2YXIgaCxmLHA9W10sZD1jJiZjLnBvc2l0aW9uc3x8bC5wb3NpdGlvbnM7aWYoInRvemVyb3kiPT09cy5maWxsKXtmb3IoaD0wO2g8ZC5sZW5ndGgmJmlzTmFOKGRbaCsxXSk7KWgrPTI7Zm9yKGY9ZC5sZW5ndGgtMjtmPmgmJmlzTmFOKGRbZisxXSk7KWYtPTI7MCE9PWRbaCsxXSYmKHA9W2RbaF0sMF0pLHA9cC5jb25jYXQoZC5zbGljZShoLGYrMikpLDAhPT1kW2YrMV0mJihwPXAuY29uY2F0KFtkW2ZdLDBdKSl9ZWxzZSBpZigidG96ZXJveCI9PT1zLmZpbGwpe2ZvcihoPTA7aDxkLmxlbmd0aCYmaXNOYU4oZFtoXSk7KWgrPTI7Zm9yKGY9ZC5sZW5ndGgtMjtmPmgmJmlzTmFOKGRbZl0pOylmLT0yOzAhPT1kW2hdJiYocD1bMCxkW2grMV1dKSxwPXAuY29uY2F0KGQuc2xpY2UoaCxmKzIpKSwwIT09ZFtmXSYmKHA9cC5jb25jYXQoWzAsZFtmKzFdXSkpfWVsc2UgaWYoInRvc2VsZiI9PT1zLmZpbGx8fCJ0b25leHQiPT09cy5maWxsKXtmb3IocD1bXSxhPTAsaT0wO2k8ZC5sZW5ndGg7aSs9MikoaXNOYU4oZFtpXSl8fGlzTmFOKGRbaSsxXSkpJiYoKHA9cC5jb25jYXQoZC5zbGljZShhLGkpKSkucHVzaChkW2FdLGRbYSsxXSksYT1pKzIpO3A9cC5jb25jYXQoZC5zbGljZShhKSksYSYmcC5wdXNoKGRbYV0sZFthKzFdKX1lbHNle3ZhciBnPXMuX25leHR0cmFjZTtpZihnKXt2YXIgbT12LmxpbmVPcHRpb25zW2UrMV07aWYobSl7dmFyIHk9bS5wb3NpdGlvbnM7aWYoInRvbmV4dHkiPT09cy5maWxsKXtmb3IocD1kLnNsaWNlKCksZT1NYXRoLmZsb29yKHkubGVuZ3RoLzIpO2UtLTspe3ZhciB4PXlbMiplXSxiPXlbMiplKzFdO2lzTmFOKHgpfHxpc05hTihiKXx8cC5wdXNoKHgsYil9dC5maWxsPWcuZmlsbGNvbG9yfX19fWlmKHMuX3ByZXZ0cmFjZSYmInRvbmV4dCI9PT1zLl9wcmV2dHJhY2UuZmlsbCl7dmFyIF89di5saW5lT3B0aW9uc1tlLTFdLnBvc2l0aW9ucyx3PXAubGVuZ3RoLzIsaz1bYT13XTtmb3IoaT0wO2k8Xy5sZW5ndGg7aSs9MikoaXNOYU4oX1tpXSl8fGlzTmFOKF9baSsxXSkpJiYoay5wdXNoKGkvMit3KzEpLGE9aSsyKTtwPXAuY29uY2F0KF8pLHQuaG9sZT1rfXJldHVybiB0LmZpbGxtb2RlPXMuZmlsbCx0Lm9wYWNpdHk9cy5vcGFjaXR5LHQucG9zaXRpb25zPXAsdH19KSx2LmZpbGwyZC51cGRhdGUodi5maWxsT3B0aW9ucykpfXZhciBUPWcuZHJhZ21vZGUsTT0ibGFzc28iPT09VHx8InNlbGVjdCI9PT1ULEE9Zy5jbGlja21vZGUuaW5kZXhPZigic2VsZWN0Iik+LTE7Zm9yKHA9MDtwPHg7cCsrKXt2YXIgUz1yW3BdWzBdLEU9Uy50cmFjZSxMPVMudCxDPUwuaW5kZXgsUD1FLl9sZW5ndGgsTz1MLngsej1MLnk7aWYoRS5zZWxlY3RlZHBvaW50c3x8TXx8QSl7aWYoTXx8KE09ITApLEUuc2VsZWN0ZWRwb2ludHMpe3ZhciBJPXYuc2VsZWN0QmF0Y2hbQ109cy5zZWxJbmRpY2VzMnNlbFBvaW50cyhFKSxEPXt9O2ZvcihkPTA7ZDxJLmxlbmd0aDtkKyspRFtJW2RdXT0xO3ZhciBSPVtdO2ZvcihkPTA7ZDxQO2QrKylEW2RdfHxSLnB1c2goZCk7di51bnNlbGVjdEJhdGNoW0NdPVJ9dmFyIEY9TC54cHg9bmV3IEFycmF5KFApLEI9TC55cHg9bmV3IEFycmF5KFApO2ZvcihkPTA7ZDxQO2QrKylGW2RdPW0uYzJwKE9bZF0pLEJbZF09eS5jMnAoeltkXSl9ZWxzZSBMLnhweD1MLnlweD1udWxsfWlmKE0pe2lmKHYuc2VsZWN0MmR8fCh2LnNlbGVjdDJkPW4oZy5fZ2xjYW52YXMuZGF0YSgpWzFdLnJlZ2wpKSx2LnNjYXR0ZXIyZCl7dmFyIE49bmV3IEFycmF5KHgpO2ZvcihwPTA7cDx4O3ArKylOW3BdPXYuc2VsZWN0QmF0Y2hbcF0ubGVuZ3RofHx2LnVuc2VsZWN0QmF0Y2hbcF0ubGVuZ3RoP3YubWFya2VyVW5zZWxlY3RlZE9wdGlvbnNbcF06e307di5zY2F0dGVyMmQudXBkYXRlKE4pfXYuc2VsZWN0MmQmJih2LnNlbGVjdDJkLnVwZGF0ZSh2Lm1hcmtlck9wdGlvbnMpLHYuc2VsZWN0MmQudXBkYXRlKHYubWFya2VyU2VsZWN0ZWRPcHRpb25zKSksdi5nbFRleHQmJnIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZT0oKHR8fFtdKVswXXx8e30pLnRyYWNlfHx7fTtjLmhhc1RleHQoZSkmJmgodCl9KX1lbHNlIHYuc2NhdHRlcjJkJiZ2LnNjYXR0ZXIyZC51cGRhdGUodi5tYXJrZXJPcHRpb25zKTt2YXIgaj17dmlld3BvcnQ6ZihnLG0seSkscmFuZ2U6WyhtLl9ybHx8bS5yYW5nZSlbMF0sKHkuX3JsfHx5LnJhbmdlKVswXSwobS5fcmx8fG0ucmFuZ2UpWzFdLCh5Ll9ybHx8eS5yYW5nZSlbMV1dfSxWPXMucmVwZWF0KGosdi5jb3VudCk7di5maWxsMmQmJnYuZmlsbDJkLnVwZGF0ZShWKSx2LmxpbmUyZCYmdi5saW5lMmQudXBkYXRlKFYpLHYuZXJyb3IyZCYmdi5lcnJvcjJkLnVwZGF0ZShWLmNvbmNhdChWKSksdi5zY2F0dGVyMmQmJnYuc2NhdHRlcjJkLnVwZGF0ZShWKSx2LnNlbGVjdDJkJiZ2LnNlbGVjdDJkLnVwZGF0ZShWKSx2LmdsVGV4dCYmdi5nbFRleHQuZm9yRWFjaChmdW5jdGlvbih0KXt0LnVwZGF0ZShqKX0pfWVsc2Ugdi5pbml0KCl9fX0seyIuLi8uLi9saWIiOjcxNywiLi4vLi4vbGliL3ByZXBhcmVfcmVnbCI6NzMwLCIuLi9zY2F0dGVyL2xpbmtfdHJhY2VzIjoxMTM2LCIuLi9zY2F0dGVyL3N1YnR5cGVzIjoxMTQ0LCIuL2VkaXRfc3R5bGUiOjExNzYsImdsLXRleHQiOjMxOSwicmVnbC1lcnJvcjJkIjo0OTIsInJlZ2wtbGluZTJkIjo0OTMsInJlZ2wtc2NhdHRlcjJkIjo0OTl9XSwxMTgyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWUuX3NjZW5lLGE9e2NvdW50OjAsZGlydHk6ITAsbGluZU9wdGlvbnM6W10sZmlsbE9wdGlvbnM6W10sbWFya2VyT3B0aW9uczpbXSxtYXJrZXJTZWxlY3RlZE9wdGlvbnM6W10sbWFya2VyVW5zZWxlY3RlZE9wdGlvbnM6W10sZXJyb3JYT3B0aW9uczpbXSxlcnJvcllPcHRpb25zOltdLHRleHRPcHRpb25zOltdLHRleHRTZWxlY3RlZE9wdGlvbnM6W10sdGV4dFVuc2VsZWN0ZWRPcHRpb25zOltdLHNlbGVjdEJhdGNoOltdLHVuc2VsZWN0QmF0Y2g6W119LGk9e2ZpbGwyZDohMSxzY2F0dGVyMmQ6ITEsZXJyb3IyZDohMSxsaW5lMmQ6ITEsZ2xUZXh0OiExLHNlbGVjdDJkOiExfTtyZXR1cm4gZS5fc2NlbmV8fCgocj1lLl9zY2VuZT17fSkuaW5pdD1mdW5jdGlvbigpe24uZXh0ZW5kRmxhdChyLGksYSl9LHIuaW5pdCgpLHIudXBkYXRlPWZ1bmN0aW9uKHQpe3ZhciBlPW4ucmVwZWF0KHQsci5jb3VudCk7aWYoci5maWxsMmQmJnIuZmlsbDJkLnVwZGF0ZShlKSxyLnNjYXR0ZXIyZCYmci5zY2F0dGVyMmQudXBkYXRlKGUpLHIubGluZTJkJiZyLmxpbmUyZC51cGRhdGUoZSksci5lcnJvcjJkJiZyLmVycm9yMmQudXBkYXRlKGUuY29uY2F0KGUpKSxyLnNlbGVjdDJkJiZyLnNlbGVjdDJkLnVwZGF0ZShlKSxyLmdsVGV4dClmb3IodmFyIGE9MDthPHIuY291bnQ7YSsrKXIuZ2xUZXh0W2FdLnVwZGF0ZSh0KX0sci5kcmF3PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXIuY291bnQsZT1yLmZpbGwyZCxhPXIuZXJyb3IyZCxpPXIubGluZTJkLG89ci5zY2F0dGVyMmQscz1yLmdsVGV4dCxsPXIuc2VsZWN0MmQsYz1yLnNlbGVjdEJhdGNoLHU9ci51bnNlbGVjdEJhdGNoLGg9MDtoPHQ7aCsrKXtpZihlJiZyLmZpbGxPcmRlcltoXSYmZS5kcmF3KHIuZmlsbE9yZGVyW2hdKSxpJiZyLmxpbmVPcHRpb25zW2hdJiZpLmRyYXcoaCksYSYmKHIuZXJyb3JYT3B0aW9uc1toXSYmYS5kcmF3KGgpLHIuZXJyb3JZT3B0aW9uc1toXSYmYS5kcmF3KGgrdCkpLG8mJnIubWFya2VyT3B0aW9uc1toXSlpZih1W2hdLmxlbmd0aCl7dmFyIGY9bi5yZXBlYXQoW10sci5jb3VudCk7ZltoXT11W2hdLG8uZHJhdyhmKX1lbHNlIGNbaF0ubGVuZ3RofHxvLmRyYXcoaCk7c1toXSYmci50ZXh0T3B0aW9uc1toXSYmc1toXS5yZW5kZXIoKX1sJiZsLmRyYXcoYyksci5kaXJ0eT0hMX0sci5kZXN0cm95PWZ1bmN0aW9uKCl7ci5maWxsMmQmJnIuZmlsbDJkLmRlc3Ryb3kmJnIuZmlsbDJkLmRlc3Ryb3koKSxyLnNjYXR0ZXIyZCYmci5zY2F0dGVyMmQuZGVzdHJveSYmci5zY2F0dGVyMmQuZGVzdHJveSgpLHIuZXJyb3IyZCYmci5lcnJvcjJkLmRlc3Ryb3kmJnIuZXJyb3IyZC5kZXN0cm95KCksci5saW5lMmQmJnIubGluZTJkLmRlc3Ryb3kmJnIubGluZTJkLmRlc3Ryb3koKSxyLnNlbGVjdDJkJiZyLnNlbGVjdDJkLmRlc3Ryb3kmJnIuc2VsZWN0MmQuZGVzdHJveSgpLHIuZ2xUZXh0JiZyLmdsVGV4dC5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuZGVzdHJveSYmdC5kZXN0cm95KCl9KSxyLmxpbmVPcHRpb25zPW51bGwsci5maWxsT3B0aW9ucz1udWxsLHIubWFya2VyT3B0aW9ucz1udWxsLHIubWFya2VyU2VsZWN0ZWRPcHRpb25zPW51bGwsci5tYXJrZXJVbnNlbGVjdGVkT3B0aW9ucz1udWxsLHIuZXJyb3JYT3B0aW9ucz1udWxsLHIuZXJyb3JZT3B0aW9ucz1udWxsLHIudGV4dE9wdGlvbnM9bnVsbCxyLnRleHRTZWxlY3RlZE9wdGlvbnM9bnVsbCxyLnRleHRVbnNlbGVjdGVkT3B0aW9ucz1udWxsLHIuc2VsZWN0QmF0Y2g9bnVsbCxyLnVuc2VsZWN0QmF0Y2g9bnVsbCxlLl9zY2VuZT1udWxsfSksci5kaXJ0eXx8bi5leHRlbmRGbGF0KHIsYSkscn19LHsiLi4vLi4vbGliIjo3MTd9XSwxMTgzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXIvc3VidHlwZXMiKSxhPXQoIi4vZWRpdF9zdHlsZSIpLnN0eWxlVGV4dFNlbGVjdGlvbjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10LmNkLGk9W10sbz1yWzBdLnRyYWNlLHM9clswXS50LGw9by5fbGVuZ3RoLGM9cy54LHU9cy55LGg9cy5fc2NlbmUsZj1zLmluZGV4O2lmKCFoKXJldHVybiBpO3ZhciBwPW4uaGFzVGV4dChvKSxkPW4uaGFzTWFya2VycyhvKSxnPSFkJiYhcDtpZighMCE9PW8udmlzaWJsZXx8ZylyZXR1cm4gaTt2YXIgdj1bXSxtPVtdO2lmKCExIT09ZSYmIWUuZGVnZW5lcmF0ZSlmb3IodmFyIHk9MDt5PGw7eSsrKWUuY29udGFpbnMoW3MueHB4W3ldLHMueXB4W3ldXSwhMSx5LHQpPyh2LnB1c2goeSksaS5wdXNoKHtwb2ludE51bWJlcjp5LHg6Y1t5XSx5OnVbeV19KSk6bS5wdXNoKHkpO2lmKGQpe3ZhciB4PWguc2NhdHRlcjJkO2lmKHYubGVuZ3RofHxtLmxlbmd0aCl7aWYoIWguc2VsZWN0QmF0Y2hbZl0ubGVuZ3RoJiYhaC51bnNlbGVjdEJhdGNoW2ZdLmxlbmd0aCl7dmFyIGI9bmV3IEFycmF5KGguY291bnQpO2JbZl09aC5tYXJrZXJVbnNlbGVjdGVkT3B0aW9uc1tmXSx4LnVwZGF0ZS5hcHBseSh4LGIpfX1lbHNle3ZhciBfPW5ldyBBcnJheShoLmNvdW50KTtfW2ZdPWgubWFya2VyT3B0aW9uc1tmXSx4LnVwZGF0ZS5hcHBseSh4LF8pfX1yZXR1cm4gaC5zZWxlY3RCYXRjaFtmXT12LGgudW5zZWxlY3RCYXRjaFtmXT1tLHAmJmEociksaX19LHsiLi4vc2NhdHRlci9zdWJ0eXBlcyI6MTE0NCwiLi9lZGl0X3N0eWxlIjoxMTc2fV0sMTE4NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikuaG92ZXJ0ZW1wbGF0ZUF0dHJzLGE9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLnRleHR0ZW1wbGF0ZUF0dHJzLGk9dCgiLi4vc2NhdHRlcmdlby9hdHRyaWJ1dGVzIiksbz10KCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL3Bsb3RzL21hcGJveC9sYXlvdXRfYXR0cmlidXRlcyIpLGw9dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLGM9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSx1PXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LGg9dCgiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyIpLm92ZXJyaWRlQWxsLGY9aS5saW5lLHA9aS5tYXJrZXI7ZS5leHBvcnRzPWgoe2xvbjppLmxvbixsYXQ6aS5sYXQsbW9kZTp1KHt9LG8ubW9kZSx7ZGZsdDoibWFya2VycyJ9KSx0ZXh0OnUoe30sby50ZXh0LHt9KSx0ZXh0dGVtcGxhdGU6YSh7ZWRpdFR5cGU6InBsb3QifSx7a2V5czpbImxhdCIsImxvbiIsInRleHQiXX0pLGhvdmVydGV4dDp1KHt9LG8uaG92ZXJ0ZXh0LHt9KSxsaW5lOntjb2xvcjpmLmNvbG9yLHdpZHRoOmYud2lkdGh9LGNvbm5lY3RnYXBzOm8uY29ubmVjdGdhcHMsbWFya2VyOnUoe3N5bWJvbDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiJjaXJjbGUiLGFycmF5T2s6ITB9LG9wYWNpdHk6cC5vcGFjaXR5LHNpemU6cC5zaXplLHNpemVyZWY6cC5zaXplcmVmLHNpemVtaW46cC5zaXplbWluLHNpemVtb2RlOnAuc2l6ZW1vZGV9LGMoIm1hcmtlciIpKSxmaWxsOmkuZmlsbCxmaWxsY29sb3I6by5maWxsY29sb3IsdGV4dGZvbnQ6cy5sYXllcnMuc3ltYm9sLnRleHRmb250LHRleHRwb3NpdGlvbjpzLmxheWVycy5zeW1ib2wudGV4dHBvc2l0aW9uLGJlbG93Ont2YWxUeXBlOiJzdHJpbmcifSxzZWxlY3RlZDp7bWFya2VyOm8uc2VsZWN0ZWQubWFya2VyfSx1bnNlbGVjdGVkOnttYXJrZXI6by51bnNlbGVjdGVkLm1hcmtlcn0saG92ZXJpbmZvOnUoe30sbC5ob3ZlcmluZm8se2ZsYWdzOlsibG9uIiwibGF0IiwidGV4dCIsIm5hbWUiXX0pLGhvdmVydGVtcGxhdGU6bigpfSwiY2FsYyIsIm5lc3RlZCIpfSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjo1OTksIi4uLy4uL2xpYi9leHRlbmQiOjcwOCwiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyI6NzQ4LCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIjo3NjIsIi4uLy4uL3Bsb3RzL21hcGJveC9sYXlvdXRfYXR0cmlidXRlcyI6ODIyLCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo4NDEsIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyI6MTEyMCwiLi4vc2NhdHRlcmdlby9hdHRyaWJ1dGVzIjoxMTYxfV0sMTE4NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGE9dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNLG89dCgiLi4vLi4vbGliL2dlb2pzb25fdXRpbHMiKSxzPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLGw9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksYz10KCIuLi9zY2F0dGVyL21ha2VfYnViYmxlX3NpemVfZnVuYyIpLHU9dCgiLi4vc2NhdHRlci9zdWJ0eXBlcyIpLGg9dCgiLi4vLi4vcGxvdHMvbWFwYm94L2NvbnZlcnRfdGV4dF9vcHRzIiksZj10KCIuLi8uLi9jb21wb25lbnRzL2Z4L2hlbHBlcnMiKS5hcHBlbmRBcnJheVBvaW50VmFsdWUscD10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKS5ORVdMSU5FUyxkPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLkJSX1RBR19BTEw7ZnVuY3Rpb24gZygpe3JldHVybntnZW9qc29uOm8ubWFrZUJsYW5rKCksbGF5b3V0Ont2aXNpYmlsaXR5OiJub25lIn0scGFpbnQ6e319fWZ1bmN0aW9uIHYodCl7cmV0dXJuIGEuaXNBcnJheU9yVHlwZWRBcnJheSh0KT9mdW5jdGlvbih0KXtyZXR1cm4gdH06dD9mdW5jdGlvbigpe3JldHVybiB0fTptfWZ1bmN0aW9uIG0oKXtyZXR1cm4iIn1mdW5jdGlvbiB5KHQpe3JldHVybiB0WzBdPT09aX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixpPWVbMF0udHJhY2UseD0hMD09PWkudmlzaWJsZSYmMCE9PWkuX2xlbmd0aCxiPSJub25lIiE9PWkuZmlsbCxfPXUuaGFzTGluZXMoaSksdz11Lmhhc01hcmtlcnMoaSksaz11Lmhhc1RleHQoaSksVD13JiYiY2lyY2xlIj09PWkubWFya2VyLnN5bWJvbCxNPXcmJiJjaXJjbGUiIT09aS5tYXJrZXIuc3ltYm9sLEE9ZygpLFM9ZygpLEU9ZygpLEw9ZygpLEM9e2ZpbGw6QSxsaW5lOlMsY2lyY2xlOkUsc3ltYm9sOkx9O2lmKCF4KXJldHVybiBDO2lmKChifHxfKSYmKHI9by5jYWxjVHJhY2VUb0xpbmVDb29yZHMoZSkpLGImJihBLmdlb2pzb249by5tYWtlUG9seWdvbihyKSxBLmxheW91dC52aXNpYmlsaXR5PSJ2aXNpYmxlIixhLmV4dGVuZEZsYXQoQS5wYWludCx7ImZpbGwtY29sb3IiOmkuZmlsbGNvbG9yfSkpLF8mJihTLmdlb2pzb249by5tYWtlTGluZShyKSxTLmxheW91dC52aXNpYmlsaXR5PSJ2aXNpYmxlIixhLmV4dGVuZEZsYXQoUy5wYWludCx7ImxpbmUtd2lkdGgiOmkubGluZS53aWR0aCwibGluZS1jb2xvciI6aS5saW5lLmNvbG9yLCJsaW5lLW9wYWNpdHkiOmkub3BhY2l0eX0pKSxUKXt2YXIgUD1mdW5jdGlvbih0KXt2YXIgZSxyLGksbyx1PXRbMF0udHJhY2UsaD11Lm1hcmtlcixmPXUuc2VsZWN0ZWRwb2ludHMscD1hLmlzQXJyYXlPclR5cGVkQXJyYXkoaC5jb2xvciksZD1hLmlzQXJyYXlPclR5cGVkQXJyYXkoaC5zaXplKSxnPWEuaXNBcnJheU9yVHlwZWRBcnJheShoLm9wYWNpdHkpO2Z1bmN0aW9uIHYodCl7cmV0dXJuIHUub3BhY2l0eSp0fXAmJihyPXMuaGFzQ29sb3JzY2FsZSh1LCJtYXJrZXIiKT9zLm1ha2VDb2xvclNjYWxlRnVuY0Zyb21UcmFjZShoKTphLmlkZW50aXR5KTtkJiYoaT1jKHUpKTtnJiYobz1mdW5jdGlvbih0KXt2YXIgZT1uKHQpPythLmNvbnN0cmFpbih0LDAsMSk6MDtyZXR1cm4gdihlKX0pO3ZhciBtLHg9W107Zm9yKGU9MDtlPHQubGVuZ3RoO2UrKyl7dmFyIGI9dFtlXSxfPWIubG9ubGF0O2lmKCF5KF8pKXt2YXIgdz17fTtyJiYody5tY2M9Yi5tY2M9cihiLm1jKSksaSYmKHcubXJjPWIubXJjPWkoYi5tcykpLG8mJih3Lm1vPW8oYi5tbykpLGYmJih3LnNlbGVjdGVkPWIuc2VsZWN0ZWR8fDApLHgucHVzaCh7dHlwZToiRmVhdHVyZSIsZ2VvbWV0cnk6e3R5cGU6IlBvaW50Iixjb29yZGluYXRlczpffSxwcm9wZXJ0aWVzOnd9KX19aWYoZilmb3IobT1sLm1ha2VTZWxlY3RlZFBvaW50U3R5bGVGbnModSksZT0wO2U8eC5sZW5ndGg7ZSsrKXt2YXIgaz14W2VdLnByb3BlcnRpZXM7bS5zZWxlY3RlZE9wYWNpdHlGbiYmKGsubW89dihtLnNlbGVjdGVkT3BhY2l0eUZuKGspKSksbS5zZWxlY3RlZENvbG9yRm4mJihrLm1jYz1tLnNlbGVjdGVkQ29sb3JGbihrKSksbS5zZWxlY3RlZFNpemVGbiYmKGsubXJjPW0uc2VsZWN0ZWRTaXplRm4oaykpfXJldHVybntnZW9qc29uOnt0eXBlOiJGZWF0dXJlQ29sbGVjdGlvbiIsZmVhdHVyZXM6eH0sbWNjOnB8fG0mJm0uc2VsZWN0ZWRDb2xvckZuP3t0eXBlOiJpZGVudGl0eSIscHJvcGVydHk6Im1jYyJ9OmguY29sb3IsbXJjOmR8fG0mJm0uc2VsZWN0ZWRTaXplRm4/e3R5cGU6ImlkZW50aXR5Iixwcm9wZXJ0eToibXJjIn06KFQ9aC5zaXplLFQvMiksbW86Z3x8bSYmbS5zZWxlY3RlZE9wYWNpdHlGbj97dHlwZToiaWRlbnRpdHkiLHByb3BlcnR5OiJtbyJ9OnYoaC5vcGFjaXR5KX07dmFyIFR9KGUpO0UuZ2VvanNvbj1QLmdlb2pzb24sRS5sYXlvdXQudmlzaWJpbGl0eT0idmlzaWJsZSIsYS5leHRlbmRGbGF0KEUucGFpbnQseyJjaXJjbGUtY29sb3IiOlAubWNjLCJjaXJjbGUtcmFkaXVzIjpQLm1yYywiY2lyY2xlLW9wYWNpdHkiOlAubW99KX1pZigoTXx8aykmJihMLmdlb2pzb249ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9ZS5fZnVsbExheW91dCxuPXRbMF0udHJhY2UsaT0obi5tYXJrZXJ8fHt9KS5zeW1ib2wsbz0iY2lyY2xlIiE9PWk/dihpKTptLHM9dS5oYXNUZXh0KG4pP3Yobi50ZXh0KTptLGw9W10sYz0wO2M8dC5sZW5ndGg7YysrKXt2YXIgaD10W2NdO2lmKCF5KGgubG9ubGF0KSl7dmFyIGcseD1uLnRleHR0ZW1wbGF0ZTtpZih4KXt2YXIgYj1BcnJheS5pc0FycmF5KHgpP3hbY118fCIiOngsXz1uLl9tb2R1bGUuZm9ybWF0TGFiZWxzKGgsbixyKSx3PXt9O2YodyxuLGguaSk7dmFyIGs9bi5fbWV0YXx8e307Zz1hLnRleHR0ZW1wbGF0ZVN0cmluZyhiLF8sci5fZDNsb2NhbGUsdyxoLGspfWVsc2UgZz1zKGgudHgpO2cmJihnPWcucmVwbGFjZShwLCIiKS5yZXBsYWNlKGQsIlxuIikpLGwucHVzaCh7dHlwZToiRmVhdHVyZSIsZ2VvbWV0cnk6e3R5cGU6IlBvaW50Iixjb29yZGluYXRlczpoLmxvbmxhdH0scHJvcGVydGllczp7c3ltYm9sOm8oaC5teCksdGV4dDpnfX0pfX1yZXR1cm57dHlwZToiRmVhdHVyZUNvbGxlY3Rpb24iLGZlYXR1cmVzOmx9fShlLHQpLGEuZXh0ZW5kRmxhdChMLmxheW91dCx7dmlzaWJpbGl0eToidmlzaWJsZSIsImljb24taW1hZ2UiOiJ7c3ltYm9sfS0xNSIsInRleHQtZmllbGQiOiJ7dGV4dH0ifSksTSYmKGEuZXh0ZW5kRmxhdChMLmxheW91dCx7Imljb24tc2l6ZSI6aS5tYXJrZXIuc2l6ZS8xMH0pLGEuZXh0ZW5kRmxhdChMLnBhaW50LHsiaWNvbi1vcGFjaXR5IjppLm9wYWNpdHkqaS5tYXJrZXIub3BhY2l0eSwiaWNvbi1jb2xvciI6aS5tYXJrZXIuY29sb3J9KSksaykpe3ZhciBPPShpLm1hcmtlcnx8e30pLnNpemUsej1oKGkudGV4dHBvc2l0aW9uLE8pO2EuZXh0ZW5kRmxhdChMLmxheW91dCx7InRleHQtc2l6ZSI6aS50ZXh0Zm9udC5zaXplLCJ0ZXh0LWFuY2hvciI6ei5hbmNob3IsInRleHQtb2Zmc2V0Ijp6Lm9mZnNldH0pLGEuZXh0ZW5kRmxhdChMLnBhaW50LHsidGV4dC1jb2xvciI6aS50ZXh0Zm9udC5jb2xvciwidGV4dC1vcGFjaXR5IjppLm9wYWNpdHl9KX1yZXR1cm4gQ319LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIjo2MDQsIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjEzLCIuLi8uLi9jb21wb25lbnRzL2Z4L2hlbHBlcnMiOjYyNywiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NjkzLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vbGliL2dlb2pzb25fdXRpbHMiOjcxMiwiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo3NDEsIi4uLy4uL3Bsb3RzL21hcGJveC9jb252ZXJ0X3RleHRfb3B0cyI6ODE5LCIuLi9zY2F0dGVyL21ha2VfYnViYmxlX3NpemVfZnVuYyI6MTEzNywiLi4vc2NhdHRlci9zdWJ0eXBlcyI6MTE0NCwiZmFzdC1pc251bWVyaWMiOjIyOH1dLDExODY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi9zY2F0dGVyL3N1YnR5cGVzIiksaT10KCIuLi9zY2F0dGVyL21hcmtlcl9kZWZhdWx0cyIpLG89dCgiLi4vc2NhdHRlci9saW5lX2RlZmF1bHRzIikscz10KCIuLi9zY2F0dGVyL3RleHRfZGVmYXVsdHMiKSxsPXQoIi4uL3NjYXR0ZXIvZmlsbGNvbG9yX2RlZmF1bHRzIiksYz10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsdSl7ZnVuY3Rpb24gaChyLGEpe3JldHVybiBuLmNvZXJjZSh0LGUsYyxyLGEpfWlmKGZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1yKCJsb24iKXx8W10sYT1yKCJsYXQiKXx8W10saT1NYXRoLm1pbihuLmxlbmd0aCxhLmxlbmd0aCk7cmV0dXJuIGUuX2xlbmd0aD1pLGl9KDAsZSxoKSl7aWYoaCgidGV4dCIpLGgoInRleHR0ZW1wbGF0ZSIpLGgoImhvdmVydGV4dCIpLGgoImhvdmVydGVtcGxhdGUiKSxoKCJtb2RlIiksaCgiYmVsb3ciKSxhLmhhc0xpbmVzKGUpJiYobyh0LGUscix1LGgse25vRGFzaDohMH0pLGgoImNvbm5lY3RnYXBzIikpLGEuaGFzTWFya2VycyhlKSl7aSh0LGUscix1LGgse25vTGluZTohMH0pO3ZhciBmPWUubWFya2VyOyJjaXJjbGUiIT09Zi5zeW1ib2wmJihuLmlzQXJyYXlPclR5cGVkQXJyYXkoZi5zaXplKSYmKGYuc2l6ZT1mLnNpemVbMF0pLG4uaXNBcnJheU9yVHlwZWRBcnJheShmLmNvbG9yKSYmKGYuY29sb3I9Zi5jb2xvclswXSkpfWEuaGFzVGV4dChlKSYmcyh0LGUsdSxoLHtub1NlbGVjdDohMH0pLGgoImZpbGwiKSwibm9uZSIhPT1lLmZpbGwmJmwodCxlLHIsaCksbi5jb2VyY2VTZWxlY3Rpb25NYXJrZXJPcGFjaXR5KGUsaCl9ZWxzZSBlLnZpc2libGU9ITF9fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi9zY2F0dGVyL2ZpbGxjb2xvcl9kZWZhdWx0cyI6MTEyOCwiLi4vc2NhdHRlci9saW5lX2RlZmF1bHRzIjoxMTMzLCIuLi9zY2F0dGVyL21hcmtlcl9kZWZhdWx0cyI6MTEzOSwiLi4vc2NhdHRlci9zdWJ0eXBlcyI6MTE0NCwiLi4vc2NhdHRlci90ZXh0X2RlZmF1bHRzIjoxMTQ1LCIuL2F0dHJpYnV0ZXMiOjExODR9XSwxMTg3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiB0Lmxvbj1lLmxvbix0LmxhdD1lLmxhdCx0fX0se31dLDExODg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBhPXt9LGk9cltlLnN1YnBsb3RdLl9zdWJwbG90Lm1vY2tBeGlzLG89dC5sb25sYXQ7cmV0dXJuIGEubG9uTGFiZWw9bi50aWNrVGV4dChpLGkuYzJsKG9bMF0pLCEwKS50ZXh0LGEubGF0TGFiZWw9bi50aWNrVGV4dChpLGkuYzJsKG9bMV0pLCEwKS50ZXh0LGF9fSx7Ii4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo3NjV9XSwxMTg5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvZngiKSxhPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vc2NhdHRlci9nZXRfdHJhY2VfY29sb3IiKSxvPWEuZmlsbFRleHQscz10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGw9dC5jZCxjPWxbMF0udHJhY2UsdT10LnhhLGg9dC55YSxmPXQuc3VicGxvdCxwPTM2MCooZT49MD9NYXRoLmZsb29yKChlKzE4MCkvMzYwKTpNYXRoLmNlaWwoKGUtMTgwKS8zNjApKSxkPWUtcDtpZihuLmdldENsb3Nlc3QobCxmdW5jdGlvbih0KXt2YXIgZT10LmxvbmxhdDtpZihlWzBdPT09cylyZXR1cm4gMS8wO3ZhciBuPWEubW9kSGFsZihlWzBdLDM2MCksaT1lWzFdLG89Zi5wcm9qZWN0KFtuLGldKSxsPW8ueC11LmMycChbZCxpXSksYz1vLnktaC5jMnAoW24scl0pLHA9TWF0aC5tYXgoMyx0Lm1yY3x8MCk7cmV0dXJuIE1hdGgubWF4KE1hdGguc3FydChsKmwrYypjKS1wLDEtMy9wKX0sdCksITEhPT10LmluZGV4KXt2YXIgZz1sW3QuaW5kZXhdLHY9Zy5sb25sYXQsbT1bYS5tb2RIYWxmKHZbMF0sMzYwKStwLHZbMV1dLHk9dS5jMnAobSkseD1oLmMycChtKSxiPWcubXJjfHwxO3QueDA9eS1iLHQueDE9eStiLHQueTA9eC1iLHQueTE9eCtiO3ZhciBfPXt9O19bYy5zdWJwbG90XT17X3N1YnBsb3Q6Zn07dmFyIHc9Yy5fbW9kdWxlLmZvcm1hdExhYmVscyhnLGMsXyk7cmV0dXJuIHQubG9uTGFiZWw9dy5sb25MYWJlbCx0LmxhdExhYmVsPXcubGF0TGFiZWwsdC5jb2xvcj1pKGMsZyksdC5leHRyYVRleHQ9ZnVuY3Rpb24odCxlLHIpe2lmKHQuaG92ZXJ0ZW1wbGF0ZSlyZXR1cm47dmFyIG49KGUuaGl8fHQuaG92ZXJpbmZvKS5zcGxpdCgiKyIpLGE9LTEhPT1uLmluZGV4T2YoImFsbCIpLGk9LTEhPT1uLmluZGV4T2YoImxvbiIpLHM9LTEhPT1uLmluZGV4T2YoImxhdCIpLGw9ZS5sb25sYXQsYz1bXTtmdW5jdGlvbiB1KHQpe3JldHVybiB0KyJceGIwIn1hfHxpJiZzP2MucHVzaCgiKCIrdShsWzBdKSsiLCAiK3UobFsxXSkrIikiKTppP2MucHVzaChyLmxvbit1KGxbMF0pKTpzJiZjLnB1c2goci5sYXQrdShsWzFdKSk7KGF8fC0xIT09bi5pbmRleE9mKCJ0ZXh0IikpJiZvKGUsdCxjKTtyZXR1cm4gYy5qb2luKCI8YnI+Iil9KGMsZyxsWzBdLnQubGFiZWxzKSx0LmhvdmVydGVtcGxhdGU9Yy5ob3ZlcnRlbXBsYXRlLFt0XX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvZngiOjYzMCwiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NjkzLCIuLi8uLi9saWIiOjcxNywiLi4vc2NhdHRlci9nZXRfdHJhY2VfY29sb3IiOjExMzB9XSwxMTkwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY29sb3JiYXI6dCgiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiKSxmb3JtYXRMYWJlbHM6dCgiLi9mb3JtYXRfbGFiZWxzIiksY2FsYzp0KCIuLi9zY2F0dGVyZ2VvL2NhbGMiKSxwbG90OnQoIi4vcGxvdCIpLGhvdmVyUG9pbnRzOnQoIi4vaG92ZXIiKSxldmVudERhdGE6dCgiLi9ldmVudF9kYXRhIiksc2VsZWN0UG9pbnRzOnQoIi4vc2VsZWN0Iiksc3R5bGVPblNlbGVjdDpmdW5jdGlvbih0LGUpe2UmJmVbMF0udHJhY2UuX2dsVHJhY2UudXBkYXRlKGUpfSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToic2NhdHRlcm1hcGJveCIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvbWFwYm94IiksY2F0ZWdvcmllczpbIm1hcGJveCIsImdsIiwic3ltYm9scyIsInNob3dMZWdlbmQiLCJzY2F0dGVyLWxpa2UiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9tYXBib3giOjgyMCwiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiOjExMzgsIi4uL3NjYXR0ZXJnZW8vY2FsYyI6MTE2MiwiLi9hdHRyaWJ1dGVzIjoxMTg0LCIuL2RlZmF1bHRzIjoxMTg2LCIuL2V2ZW50X2RhdGEiOjExODcsIi4vZm9ybWF0X2xhYmVscyI6MTE4OCwiLi9ob3ZlciI6MTE4OSwiLi9wbG90IjoxMTkxLCIuL3NlbGVjdCI6MTE5Mn1dLDExOTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9jb252ZXJ0IiksYT10KCIuLi8uLi9wbG90cy9tYXBib3gvY29uc3RhbnRzIikudHJhY2VMYXllclByZWZpeCxpPVsiZmlsbCIsImxpbmUiLCJjaXJjbGUiLCJzeW1ib2wiXTtmdW5jdGlvbiBvKHQsZSl7dGhpcy50eXBlPSJzY2F0dGVybWFwYm94Iix0aGlzLnN1YnBsb3Q9dCx0aGlzLnVpZD1lLHRoaXMuc291cmNlSWRzPXtmaWxsOiJzb3VyY2UtIitlKyItZmlsbCIsbGluZToic291cmNlLSIrZSsiLWxpbmUiLGNpcmNsZToic291cmNlLSIrZSsiLWNpcmNsZSIsc3ltYm9sOiJzb3VyY2UtIitlKyItc3ltYm9sIn0sdGhpcy5sYXllcklkcz17ZmlsbDphK2UrIi1maWxsIixsaW5lOmErZSsiLWxpbmUiLGNpcmNsZTphK2UrIi1jaXJjbGUiLHN5bWJvbDphK2UrIi1zeW1ib2wifSx0aGlzLmJlbG93PW51bGx9dmFyIHM9by5wcm90b3R5cGU7cy5hZGRTb3VyY2U9ZnVuY3Rpb24odCxlKXt0aGlzLnN1YnBsb3QubWFwLmFkZFNvdXJjZSh0aGlzLnNvdXJjZUlkc1t0XSx7dHlwZToiZ2VvanNvbiIsZGF0YTplLmdlb2pzb259KX0scy5zZXRTb3VyY2VEYXRhPWZ1bmN0aW9uKHQsZSl7dGhpcy5zdWJwbG90Lm1hcC5nZXRTb3VyY2UodGhpcy5zb3VyY2VJZHNbdF0pLnNldERhdGEoZS5nZW9qc29uKX0scy5hZGRMYXllcj1mdW5jdGlvbih0LGUscil7dGhpcy5zdWJwbG90LmFkZExheWVyKHt0eXBlOnQsaWQ6dGhpcy5sYXllcklkc1t0XSxzb3VyY2U6dGhpcy5zb3VyY2VJZHNbdF0sbGF5b3V0OmUubGF5b3V0LHBhaW50OmUucGFpbnR9LHIpfSxzLnVwZGF0ZT1mdW5jdGlvbih0KXt2YXIgZSxyLGEsbz10aGlzLnN1YnBsb3Qscz1vLm1hcCxsPW4oby5nZCx0KSxjPW8uYmVsb3dMb29rdXBbInRyYWNlLSIrdGhpcy51aWRdO2lmKGMhPT10aGlzLmJlbG93KXtmb3IoZT1pLmxlbmd0aC0xO2U+PTA7ZS0tKXI9aVtlXSxzLnJlbW92ZUxheWVyKHRoaXMubGF5ZXJJZHNbcl0pO2ZvcihlPTA7ZTxpLmxlbmd0aDtlKyspYT1sW3I9aVtlXV0sdGhpcy5hZGRMYXllcihyLGEsYyk7dGhpcy5iZWxvdz1jfWZvcihlPTA7ZTxpLmxlbmd0aDtlKyspYT1sW3I9aVtlXV0sby5zZXRPcHRpb25zKHRoaXMubGF5ZXJJZHNbcl0sInNldExheW91dFByb3BlcnR5IixhLmxheW91dCksInZpc2libGUiPT09YS5sYXlvdXQudmlzaWJpbGl0eSYmKHRoaXMuc2V0U291cmNlRGF0YShyLGEpLG8uc2V0T3B0aW9ucyh0aGlzLmxheWVySWRzW3JdLCJzZXRQYWludFByb3BlcnR5IixhLnBhaW50KSk7dFswXS50cmFjZS5fZ2xUcmFjZT10aGlzfSxzLmRpc3Bvc2U9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5zdWJwbG90Lm1hcCxlPWkubGVuZ3RoLTE7ZT49MDtlLS0pe3ZhciByPWlbZV07dC5yZW1vdmVMYXllcih0aGlzLmxheWVySWRzW3JdKSx0LnJlbW92ZVNvdXJjZSh0aGlzLnNvdXJjZUlkc1tyXSl9fSxlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9ZVswXS50cmFjZSxhPW5ldyBvKHQsci51aWQpLHM9bih0LmdkLGUpLGw9YS5iZWxvdz10LmJlbG93TG9va3VwWyJ0cmFjZS0iK3IudWlkXSxjPTA7YzxpLmxlbmd0aDtjKyspe3ZhciB1PWlbY10saD1zW3VdO2EuYWRkU291cmNlKHUsaCksYS5hZGRMYXllcih1LGgsbCl9cmV0dXJuIGVbMF0udHJhY2UuX2dsVHJhY2U9YSxhfX0seyIuLi8uLi9wbG90cy9tYXBib3gvY29uc3RhbnRzIjo4MTgsIi4vY29udmVydCI6MTE4NX1dLDExOTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi9zY2F0dGVyL3N1YnR5cGVzIiksaT10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLG89dC5jZCxzPXQueGF4aXMsbD10LnlheGlzLGM9W10sdT1vWzBdLnRyYWNlO2lmKCFhLmhhc01hcmtlcnModSkpcmV0dXJuW107aWYoITE9PT1lKWZvcihyPTA7cjxvLmxlbmd0aDtyKyspb1tyXS5zZWxlY3RlZD0wO2Vsc2UgZm9yKHI9MDtyPG8ubGVuZ3RoO3IrKyl7dmFyIGg9b1tyXSxmPWgubG9ubGF0O2lmKGZbMF0hPT1pKXt2YXIgcD1bbi5tb2RIYWxmKGZbMF0sMzYwKSxmWzFdXSxkPVtzLmMycChwKSxsLmMycChwKV07ZS5jb250YWlucyhkLG51bGwscix0KT8oYy5wdXNoKHtwb2ludE51bWJlcjpyLGxvbjpmWzBdLGxhdDpmWzFdfSksaC5zZWxlY3RlZD0xKTpoLnNlbGVjdGVkPTB9fXJldHVybiBjfX0seyIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo2OTMsIi4uLy4uL2xpYiI6NzE3LCIuLi9zY2F0dGVyL3N1YnR5cGVzIjoxMTQ0fV0sMTE5MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikuaG92ZXJ0ZW1wbGF0ZUF0dHJzLGE9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLnRleHR0ZW1wbGF0ZUF0dHJzLGk9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsbz10KCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxsPW8ubGluZTtlLmV4cG9ydHM9e21vZGU6by5tb2RlLHI6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0sdGhldGE6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0scjA6e3ZhbFR5cGU6ImFueSIsZGZsdDowLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0sZHI6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoxLGVkaXRUeXBlOiJjYWxjIn0sdGhldGEwOnt2YWxUeXBlOiJhbnkiLGRmbHQ6MCxlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LGR0aGV0YTp7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToiY2FsYyJ9LHRoZXRhdW5pdDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsicmFkaWFucyIsImRlZ3JlZXMiLCJncmFkaWFucyJdLGRmbHQ6ImRlZ3JlZXMiLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0sdGV4dDpvLnRleHQsdGV4dHRlbXBsYXRlOmEoe2VkaXRUeXBlOiJwbG90In0se2tleXM6WyJyIiwidGhldGEiLCJ0ZXh0Il19KSxob3ZlcnRleHQ6by5ob3ZlcnRleHQsbGluZTp7Y29sb3I6bC5jb2xvcix3aWR0aDpsLndpZHRoLGRhc2g6bC5kYXNoLHNoYXBlOmkoe30sbC5zaGFwZSx7dmFsdWVzOlsibGluZWFyIiwic3BsaW5lIl19KSxzbW9vdGhpbmc6bC5zbW9vdGhpbmcsZWRpdFR5cGU6ImNhbGMifSxjb25uZWN0Z2FwczpvLmNvbm5lY3RnYXBzLG1hcmtlcjpvLm1hcmtlcixjbGlwb25heGlzOmkoe30sby5jbGlwb25heGlzLHtkZmx0OiExfSksdGV4dHBvc2l0aW9uOm8udGV4dHBvc2l0aW9uLHRleHRmb250Om8udGV4dGZvbnQsZmlsbDppKHt9LG8uZmlsbCx7dmFsdWVzOlsibm9uZSIsInRvc2VsZiIsInRvbmV4dCJdLGRmbHQ6Im5vbmUifSksZmlsbGNvbG9yOm8uZmlsbGNvbG9yLGhvdmVyaW5mbzppKHt9LHMuaG92ZXJpbmZvLHtmbGFnczpbInIiLCJ0aGV0YSIsInRleHQiLCJuYW1lIl19KSxob3Zlcm9uOm8uaG92ZXJvbixob3ZlcnRlbXBsYXRlOm4oKSxzZWxlY3RlZDpvLnNlbGVjdGVkLHVuc2VsZWN0ZWQ6by51bnNlbGVjdGVkfX0seyIuLi8uLi9saWIvZXh0ZW5kIjo3MDgsIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiOjc2MiwiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyI6ODQxLCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiOjExMjB9XSwxMTk0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksYT10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNLGk9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxvPXQoIi4uL3NjYXR0ZXIvY29sb3JzY2FsZV9jYWxjIikscz10KCIuLi9zY2F0dGVyL2FycmF5c190b19jYWxjZGF0YSIpLGw9dCgiLi4vc2NhdHRlci9jYWxjX3NlbGVjdGlvbiIpLGM9dCgiLi4vc2NhdHRlci9jYWxjIikuY2FsY01hcmtlclNpemU7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQuX2Z1bGxMYXlvdXQsdT1lLnN1YnBsb3QsaD1yW3VdLnJhZGlhbGF4aXMsZj1yW3VdLmFuZ3VsYXJheGlzLHA9aC5tYWtlQ2FsY2RhdGEoZSwiciIpLGQ9Zi5tYWtlQ2FsY2RhdGEoZSwidGhldGEiKSxnPWUuX2xlbmd0aCx2PW5ldyBBcnJheShnKSxtPTA7bTxnO20rKyl7dmFyIHk9cFttXSx4PWRbbV0sYj12W21dPXt9O24oeSkmJm4oeCk/KGIucj15LGIudGhldGE9eCk6Yi5yPWF9dmFyIF89YyhlLGcpO3JldHVybiBlLl9leHRyZW1lcy54PWkuZmluZEV4dHJlbWVzKGgscCx7cHBhZDpffSksbyh0LGUpLHModixlKSxsKHYsZSksdn19LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NjkzLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NzY1LCIuLi9zY2F0dGVyL2FycmF5c190b19jYWxjZGF0YSI6MTExOSwiLi4vc2NhdHRlci9jYWxjIjoxMTIxLCIuLi9zY2F0dGVyL2NhbGNfc2VsZWN0aW9uIjoxMTIyLCIuLi9zY2F0dGVyL2NvbG9yc2NhbGVfY2FsYyI6MTEyMywiZmFzdC1pc251bWVyaWMiOjIyOH1dLDExOTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi9zY2F0dGVyL3N1YnR5cGVzIiksaT10KCIuLi9zY2F0dGVyL21hcmtlcl9kZWZhdWx0cyIpLG89dCgiLi4vc2NhdHRlci9saW5lX2RlZmF1bHRzIikscz10KCIuLi9zY2F0dGVyL2xpbmVfc2hhcGVfZGVmYXVsdHMiKSxsPXQoIi4uL3NjYXR0ZXIvdGV4dF9kZWZhdWx0cyIpLGM9dCgiLi4vc2NhdHRlci9maWxsY29sb3JfZGVmYXVsdHMiKSx1PXQoIi4uL3NjYXR0ZXIvY29uc3RhbnRzIikuUFRTX0xJTkVTT05MWSxoPXQoIi4vYXR0cmlidXRlcyIpO2Z1bmN0aW9uIGYodCxlLHIsbil7dmFyIGEsaT1uKCJyIiksbz1uKCJ0aGV0YSIpO2lmKGkpbz9hPU1hdGgubWluKGkubGVuZ3RoLG8ubGVuZ3RoKTooYT1pLmxlbmd0aCxuKCJ0aGV0YTAiKSxuKCJkdGhldGEiKSk7ZWxzZXtpZighbylyZXR1cm4gMDthPWUudGhldGEubGVuZ3RoLG4oInIwIiksbigiZHIiKX1yZXR1cm4gZS5fbGVuZ3RoPWEsYX1lLmV4cG9ydHM9e2hhbmRsZVJUaGV0YURlZmF1bHRzOmYsc3VwcGx5RGVmYXVsdHM6ZnVuY3Rpb24odCxlLHIscCl7ZnVuY3Rpb24gZChyLGEpe3JldHVybiBuLmNvZXJjZSh0LGUsaCxyLGEpfXZhciBnPWYoMCxlLDAsZCk7aWYoZyl7ZCgidGhldGF1bml0IiksZCgibW9kZSIsZzx1PyJsaW5lcyttYXJrZXJzIjoibGluZXMiKSxkKCJ0ZXh0IiksZCgiaG92ZXJ0ZXh0IiksImZpbGxzIiE9PWUuaG92ZXJvbiYmZCgiaG92ZXJ0ZW1wbGF0ZSIpLGEuaGFzTGluZXMoZSkmJihvKHQsZSxyLHAsZCkscyh0LGUsZCksZCgiY29ubmVjdGdhcHMiKSksYS5oYXNNYXJrZXJzKGUpJiZpKHQsZSxyLHAsZCx7Z3JhZGllbnQ6ITB9KSxhLmhhc1RleHQoZSkmJihkKCJ0ZXh0dGVtcGxhdGUiKSxsKHQsZSxwLGQpKTt2YXIgdj1bXTsoYS5oYXNNYXJrZXJzKGUpfHxhLmhhc1RleHQoZSkpJiYoZCgiY2xpcG9uYXhpcyIpLGQoIm1hcmtlci5tYXhkaXNwbGF5ZWQiKSx2LnB1c2goInBvaW50cyIpKSxkKCJmaWxsIiksIm5vbmUiIT09ZS5maWxsJiYoYyh0LGUscixkKSxhLmhhc0xpbmVzKGUpfHxzKHQsZSxkKSksInRvbmV4dCIhPT1lLmZpbGwmJiJ0b3NlbGYiIT09ZS5maWxsfHx2LnB1c2goImZpbGxzIiksZCgiaG92ZXJvbiIsdi5qb2luKCIrIil8fCJwb2ludHMiKSxuLmNvZXJjZVNlbGVjdGlvbk1hcmtlck9wYWNpdHkoZSxkKX1lbHNlIGUudmlzaWJsZT0hMX19fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi9zY2F0dGVyL2NvbnN0YW50cyI6MTEyNCwiLi4vc2NhdHRlci9maWxsY29sb3JfZGVmYXVsdHMiOjExMjgsIi4uL3NjYXR0ZXIvbGluZV9kZWZhdWx0cyI6MTEzMywiLi4vc2NhdHRlci9saW5lX3NoYXBlX2RlZmF1bHRzIjoxMTM1LCIuLi9zY2F0dGVyL21hcmtlcl9kZWZhdWx0cyI6MTEzOSwiLi4vc2NhdHRlci9zdWJ0eXBlcyI6MTE0NCwiLi4vc2NhdHRlci90ZXh0X2RlZmF1bHRzIjoxMTQ1LCIuL2F0dHJpYnV0ZXMiOjExOTN9XSwxMTk2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBpLG8scz17fSxsPXJbZS5zdWJwbG90XS5fc3VicGxvdDtsPyhpPWwucmFkaWFsQXhpcyxvPWwuYW5ndWxhckF4aXMpOihpPShsPXJbZS5zdWJwbG90XSkucmFkaWFsYXhpcyxvPWwuYW5ndWxhcmF4aXMpO3ZhciBjPWkuYzJsKHQucik7cy5yTGFiZWw9YS50aWNrVGV4dChpLGMsITApLnRleHQ7dmFyIHU9ImRlZ3JlZXMiPT09by50aGV0YXVuaXQ/bi5yYWQyZGVnKHQudGhldGEpOnQudGhldGE7cmV0dXJuIHMudGhldGFMYWJlbD1hLnRpY2tUZXh0KG8sdSwhMCkudGV4dCxzfX0seyIuLi8uLi9saWIiOjcxNywiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjc2NX1dLDExOTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9ob3ZlciIpO2Z1bmN0aW9uIGEodCxlLHIsbil7dmFyIGE9ci5yYWRpYWxBeGlzLGk9ci5hbmd1bGFyQXhpczthLl9ob3ZlcnRpdGxlPSJyIixpLl9ob3ZlcnRpdGxlPSJcdTAzYjgiO3ZhciBvPXt9O29bZS5zdWJwbG90XT17X3N1YnBsb3Q6cn07dmFyIHM9ZS5fbW9kdWxlLmZvcm1hdExhYmVscyh0LGUsbyk7bi5yTGFiZWw9cy5yTGFiZWwsbi50aGV0YUxhYmVsPXMudGhldGFMYWJlbDt2YXIgbD10LmhpfHxlLmhvdmVyaW5mbyxjPVtdO2Z1bmN0aW9uIHUodCxlKXtjLnB1c2godC5faG92ZXJ0aXRsZSsiOiAiK2UpfWlmKCFlLmhvdmVydGVtcGxhdGUpe3ZhciBoPWwuc3BsaXQoIisiKTstMSE9PWguaW5kZXhPZigiYWxsIikmJihoPVsiciIsInRoZXRhIiwidGV4dCJdKSwtMSE9PWguaW5kZXhPZigiciIpJiZ1KGEsbi5yTGFiZWwpLC0xIT09aC5pbmRleE9mKCJ0aGV0YSIpJiZ1KGksbi50aGV0YUxhYmVsKSwtMSE9PWguaW5kZXhPZigidGV4dCIpJiZuLnRleHQmJihjLnB1c2gobi50ZXh0KSxkZWxldGUgbi50ZXh0KSxuLmV4dHJhVGV4dD1jLmpvaW4oIjxicj4iKX19ZS5leHBvcnRzPXtob3ZlclBvaW50czpmdW5jdGlvbih0LGUscixpKXt2YXIgbz1uKHQsZSxyLGkpO2lmKG8mJiExIT09b1swXS5pbmRleCl7dmFyIHM9b1swXTtpZih2b2lkIDA9PT1zLmluZGV4KXJldHVybiBvO3ZhciBsPXQuc3VicGxvdCxjPXMuY2Rbcy5pbmRleF0sdT1zLnRyYWNlO2lmKGwuaXNQdEluc2lkZShjKSlyZXR1cm4gcy54TGFiZWxWYWw9dm9pZCAwLHMueUxhYmVsVmFsPXZvaWQgMCxhKGMsdSxsLHMpLHMuaG92ZXJ0ZW1wbGF0ZT11LmhvdmVydGVtcGxhdGUsb319LG1ha2VIb3ZlclBvaW50VGV4dDphfX0seyIuLi9zY2F0dGVyL2hvdmVyIjoxMTMxfV0sMTE5ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e21vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJzY2F0dGVycG9sYXIiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL3BvbGFyIiksY2F0ZWdvcmllczpbInBvbGFyIiwic3ltYm9scyIsInNob3dMZWdlbmQiLCJzY2F0dGVyLWxpa2UiXSxhdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKS5zdXBwbHlEZWZhdWx0cyxjb2xvcmJhcjp0KCIuLi9zY2F0dGVyL21hcmtlcl9jb2xvcmJhciIpLGZvcm1hdExhYmVsczp0KCIuL2Zvcm1hdF9sYWJlbHMiKSxjYWxjOnQoIi4vY2FsYyIpLHBsb3Q6dCgiLi9wbG90Iiksc3R5bGU6dCgiLi4vc2NhdHRlci9zdHlsZSIpLnN0eWxlLHN0eWxlT25TZWxlY3Q6dCgiLi4vc2NhdHRlci9zdHlsZSIpLnN0eWxlT25TZWxlY3QsaG92ZXJQb2ludHM6dCgiLi9ob3ZlciIpLmhvdmVyUG9pbnRzLHNlbGVjdFBvaW50czp0KCIuLi9zY2F0dGVyL3NlbGVjdCIpLG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL3BvbGFyIjo4MjksIi4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIjoxMTM4LCIuLi9zY2F0dGVyL3NlbGVjdCI6MTE0MSwiLi4vc2NhdHRlci9zdHlsZSI6MTE0MywiLi9hdHRyaWJ1dGVzIjoxMTkzLCIuL2NhbGMiOjExOTQsIi4vZGVmYXVsdHMiOjExOTUsIi4vZm9ybWF0X2xhYmVscyI6MTE5NiwiLi9ob3ZlciI6MTE5NywiLi9wbG90IjoxMTk5fV0sMTE5OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9zY2F0dGVyL3Bsb3QiKSxhPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5CQUROVU07ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGk9ZS5sYXllcnMuZnJvbnRwbG90LnNlbGVjdCgiZy5zY2F0dGVybGF5ZXIiKSxvPXt4YXhpczplLnhheGlzLHlheGlzOmUueWF4aXMscGxvdDplLmZyYW1ld29yayxsYXllckNsaXBJZDplLl9oYXNDbGlwT25BeGlzRmFsc2U/ZS5jbGlwSWRzLmZvclRyYWNlczpudWxsfSxzPWUucmFkaWFsQXhpcyxsPWUuYW5ndWxhckF4aXMsYz0wO2M8ci5sZW5ndGg7YysrKWZvcih2YXIgdT1yW2NdLGg9MDtoPHUubGVuZ3RoO2grKyl7dmFyIGY9dVtoXSxwPWYucjtpZihwPT09YSlmLng9Zi55PWE7ZWxzZXt2YXIgZD1zLmMyZyhwKSxnPWwuYzJnKGYudGhldGEpO2YueD1kKk1hdGguY29zKGcpLGYueT1kKk1hdGguc2luKGcpfX1uKHQsbyxyLGkpfX0seyIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo2OTMsIi4uL3NjYXR0ZXIvcGxvdCI6MTE0MH1dLDEyMDA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlcnBvbGFyL2F0dHJpYnV0ZXMiKSxhPXQoIi4uL3NjYXR0ZXJnbC9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikudGV4dHRlbXBsYXRlQXR0cnM7ZS5leHBvcnRzPXttb2RlOm4ubW9kZSxyOm4ucix0aGV0YTpuLnRoZXRhLHIwOm4ucjAsZHI6bi5kcix0aGV0YTA6bi50aGV0YTAsZHRoZXRhOm4uZHRoZXRhLHRoZXRhdW5pdDpuLnRoZXRhdW5pdCx0ZXh0Om4udGV4dCx0ZXh0dGVtcGxhdGU6aSh7ZWRpdFR5cGU6InBsb3QifSx7a2V5czpbInIiLCJ0aGV0YSIsInRleHQiXX0pLGhvdmVydGV4dDpuLmhvdmVydGV4dCxob3ZlcnRlbXBsYXRlOm4uaG92ZXJ0ZW1wbGF0ZSxsaW5lOmEubGluZSxjb25uZWN0Z2FwczphLmNvbm5lY3RnYXBzLG1hcmtlcjphLm1hcmtlcixmaWxsOmEuZmlsbCxmaWxsY29sb3I6YS5maWxsY29sb3IsdGV4dHBvc2l0aW9uOmEudGV4dHBvc2l0aW9uLHRleHRmb250OmEudGV4dGZvbnQsaG92ZXJpbmZvOm4uaG92ZXJpbmZvLHNlbGVjdGVkOm4uc2VsZWN0ZWQsdW5zZWxlY3RlZDpuLnVuc2VsZWN0ZWR9fSx7Ii4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjg0MSwiLi4vc2NhdHRlcmdsL2F0dHJpYnV0ZXMiOjExNzEsIi4uL3NjYXR0ZXJwb2xhci9hdHRyaWJ1dGVzIjoxMTkzfV0sMTIwMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9zY2F0dGVyL2NvbG9yc2NhbGVfY2FsYyIpLGE9dCgiLi4vc2NhdHRlci9jYWxjIikuY2FsY01hcmtlclNpemUsaT10KCIuLi9zY2F0dGVyZ2wvY29udmVydCIpLG89dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxzPXQoIi4uL3NjYXR0ZXJnbC9jb25zdGFudHMiKS5UT09fTUFOWV9QT0lOVFM7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5fZnVsbExheW91dCxsPWUuc3VicGxvdCxjPXJbbF0ucmFkaWFsYXhpcyx1PXJbbF0uYW5ndWxhcmF4aXMsaD1lLl9yPWMubWFrZUNhbGNkYXRhKGUsInIiKSxmPWUuX3RoZXRhPXUubWFrZUNhbGNkYXRhKGUsInRoZXRhIikscD1lLl9sZW5ndGgsZD17fTtwPGgubGVuZ3RoJiYoaD1oLnNsaWNlKDAscCkpLHA8Zi5sZW5ndGgmJihmPWYuc2xpY2UoMCxwKSksZC5yPWgsZC50aGV0YT1mLG4odCxlKTt2YXIgZyx2PWQub3B0cz1pLnN0eWxlKHQsZSk7cmV0dXJuIHA8cz9nPWEoZSxwKTp2Lm1hcmtlciYmKGc9Mioodi5tYXJrZXIuc2l6ZUF2Z3x8TWF0aC5tYXgodi5tYXJrZXIuc2l6ZSwzKSkpLGUuX2V4dHJlbWVzLng9by5maW5kRXh0cmVtZXMoYyxoLHtwcGFkOmd9KSxbe3g6ITEseTohMSx0OmQsdHJhY2U6ZX1dfX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NzY1LCIuLi9zY2F0dGVyL2NhbGMiOjExMjEsIi4uL3NjYXR0ZXIvY29sb3JzY2FsZV9jYWxjIjoxMTIzLCIuLi9zY2F0dGVyZ2wvY29uc3RhbnRzIjoxMTczLCIuLi9zY2F0dGVyZ2wvY29udmVydCI6MTE3NH1dLDEyMDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi9zY2F0dGVyL3N1YnR5cGVzIiksaT10KCIuLi9zY2F0dGVycG9sYXIvZGVmYXVsdHMiKS5oYW5kbGVSVGhldGFEZWZhdWx0cyxvPXQoIi4uL3NjYXR0ZXIvbWFya2VyX2RlZmF1bHRzIikscz10KCIuLi9zY2F0dGVyL2xpbmVfZGVmYXVsdHMiKSxsPXQoIi4uL3NjYXR0ZXIvdGV4dF9kZWZhdWx0cyIpLGM9dCgiLi4vc2NhdHRlci9maWxsY29sb3JfZGVmYXVsdHMiKSx1PXQoIi4uL3NjYXR0ZXIvY29uc3RhbnRzIikuUFRTX0xJTkVTT05MWSxoPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixmKXtmdW5jdGlvbiBwKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxoLHIsYSl9dmFyIGQ9aSh0LGUsZixwKTtkPyhwKCJ0aGV0YXVuaXQiKSxwKCJtb2RlIixkPHU/ImxpbmVzK21hcmtlcnMiOiJsaW5lcyIpLHAoInRleHQiKSxwKCJob3ZlcnRleHQiKSwiZmlsbHMiIT09ZS5ob3Zlcm9uJiZwKCJob3ZlcnRlbXBsYXRlIiksYS5oYXNMaW5lcyhlKSYmKHModCxlLHIsZixwKSxwKCJjb25uZWN0Z2FwcyIpKSxhLmhhc01hcmtlcnMoZSkmJm8odCxlLHIsZixwKSxhLmhhc1RleHQoZSkmJihwKCJ0ZXh0dGVtcGxhdGUiKSxsKHQsZSxmLHApKSxwKCJmaWxsIiksIm5vbmUiIT09ZS5maWxsJiZjKHQsZSxyLHApLG4uY29lcmNlU2VsZWN0aW9uTWFya2VyT3BhY2l0eShlLHApKTplLnZpc2libGU9ITF9fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi9zY2F0dGVyL2NvbnN0YW50cyI6MTEyNCwiLi4vc2NhdHRlci9maWxsY29sb3JfZGVmYXVsdHMiOjExMjgsIi4uL3NjYXR0ZXIvbGluZV9kZWZhdWx0cyI6MTEzMywiLi4vc2NhdHRlci9tYXJrZXJfZGVmYXVsdHMiOjExMzksIi4uL3NjYXR0ZXIvc3VidHlwZXMiOjExNDQsIi4uL3NjYXR0ZXIvdGV4dF9kZWZhdWx0cyI6MTE0NSwiLi4vc2NhdHRlcnBvbGFyL2RlZmF1bHRzIjoxMTk1LCIuL2F0dHJpYnV0ZXMiOjEyMDB9XSwxMjAzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXJwb2xhci9mb3JtYXRfbGFiZWxzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgYT10Lmk7cmV0dXJuInIiaW4gdHx8KHQucj1lLl9yW2FdKSwidGhldGEiaW4gdHx8KHQudGhldGE9ZS5fdGhldGFbYV0pLG4odCxlLHIpfX0seyIuLi9zY2F0dGVycG9sYXIvZm9ybWF0X2xhYmVscyI6MTE5Nn1dLDEyMDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlcmdsL2hvdmVyIiksYT10KCIuLi9zY2F0dGVycG9sYXIvaG92ZXIiKS5tYWtlSG92ZXJQb2ludFRleHQ7ZS5leHBvcnRzPXtob3ZlclBvaW50czpmdW5jdGlvbih0LGUscixpKXt2YXIgbz10LmNkWzBdLnQscz1vLnIsbD1vLnRoZXRhLGM9bi5ob3ZlclBvaW50cyh0LGUscixpKTtpZihjJiYhMSE9PWNbMF0uaW5kZXgpe3ZhciB1PWNbMF07aWYodm9pZCAwPT09dS5pbmRleClyZXR1cm4gYzt2YXIgaD10LnN1YnBsb3QsZj11LmNkW3UuaW5kZXhdLHA9dS50cmFjZTtpZihmLnI9c1t1LmluZGV4XSxmLnRoZXRhPWxbdS5pbmRleF0saC5pc1B0SW5zaWRlKGYpKXJldHVybiB1LnhMYWJlbFZhbD12b2lkIDAsdS55TGFiZWxWYWw9dm9pZCAwLGEoZixwLGgsdSksY319fX0seyIuLi9zY2F0dGVyZ2wvaG92ZXIiOjExNzksIi4uL3NjYXR0ZXJwb2xhci9ob3ZlciI6MTE5N31dLDEyMDU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToic2NhdHRlcnBvbGFyZ2wiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL3BvbGFyIiksY2F0ZWdvcmllczpbImdsIiwicmVnbCIsInBvbGFyIiwic3ltYm9scyIsInNob3dMZWdlbmQiLCJzY2F0dGVyLWxpa2UiXSxhdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjb2xvcmJhcjp0KCIuLi9zY2F0dGVyL21hcmtlcl9jb2xvcmJhciIpLGZvcm1hdExhYmVsczp0KCIuL2Zvcm1hdF9sYWJlbHMiKSxjYWxjOnQoIi4vY2FsYyIpLHBsb3Q6dCgiLi9wbG90IiksaG92ZXJQb2ludHM6dCgiLi9ob3ZlciIpLmhvdmVyUG9pbnRzLHNlbGVjdFBvaW50czp0KCIuLi9zY2F0dGVyZ2wvc2VsZWN0IiksbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvcG9sYXIiOjgyOSwiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiOjExMzgsIi4uL3NjYXR0ZXJnbC9zZWxlY3QiOjExODMsIi4vYXR0cmlidXRlcyI6MTIwMCwiLi9jYWxjIjoxMjAxLCIuL2RlZmF1bHRzIjoxMjAyLCIuL2Zvcm1hdF9sYWJlbHMiOjEyMDMsIi4vaG92ZXIiOjEyMDQsIi4vcGxvdCI6MTIwNn1dLDEyMDY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgicG9pbnQtY2x1c3RlciIpLGE9dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4uL3NjYXR0ZXJnbC9wbG90Iiksbz10KCIuLi9zY2F0dGVyZ2wvc2NlbmVfdXBkYXRlIikscz10KCIuLi9zY2F0dGVyZ2wvY29udmVydCIpLGw9dCgiLi4vLi4vbGliIiksYz10KCIuLi9zY2F0dGVyZ2wvY29uc3RhbnRzIikuVE9PX01BTllfUE9JTlRTO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7aWYoci5sZW5ndGgpe3ZhciB1PWUucmFkaWFsQXhpcyxoPWUuYW5ndWxhckF4aXMsZj1vKHQsZSk7cmV0dXJuIHIuZm9yRWFjaChmdW5jdGlvbihyKXtpZihyJiZyWzBdJiZyWzBdLnRyYWNlKXt2YXIgaSxvPXJbMF0scD1vLnRyYWNlLGQ9by50LGc9cC5fbGVuZ3RoLHY9ZC5yLG09ZC50aGV0YSx5PWQub3B0cyx4PXYuc2xpY2UoKSxiPW0uc2xpY2UoKTtmb3IoaT0wO2k8di5sZW5ndGg7aSsrKWUuaXNQdEluc2lkZSh7cjp2W2ldLHRoZXRhOm1baV19KXx8KHhbaV09TmFOLGJbaV09TmFOKTt2YXIgXz1uZXcgQXJyYXkoMipnKSx3PUFycmF5KGcpLGs9QXJyYXkoZyk7Zm9yKGk9MDtpPGc7aSsrKXt2YXIgVCxNLEE9eFtpXTtpZihhKEEpKXt2YXIgUz11LmMyZyhBKSxFPWguYzJnKGJbaV0scC50aGV0YXVuaXQpO1Q9UypNYXRoLmNvcyhFKSxNPVMqTWF0aC5zaW4oRSl9ZWxzZSBUPU09TmFOO3dbaV09X1syKmldPVQsa1tpXT1fWzIqaSsxXT1NfWQudHJlZT1uKF8pLHkubWFya2VyJiZnPj1jJiYoeS5tYXJrZXIuY2x1c3Rlcj1kLnRyZWUpLHkubWFya2VyJiYoeS5tYXJrZXJTZWwucG9zaXRpb25zPXkubWFya2VyVW5zZWwucG9zaXRpb25zPXkubWFya2VyLnBvc2l0aW9ucz1fKSx5LmxpbmUmJl8ubGVuZ3RoPjEmJmwuZXh0ZW5kRmxhdCh5LmxpbmUscy5saW5lUG9zaXRpb25zKHQscCxfKSkseS50ZXh0JiYobC5leHRlbmRGbGF0KHkudGV4dCx7cG9zaXRpb25zOl99LHMudGV4dFBvc2l0aW9uKHQscCx5LnRleHQseS5tYXJrZXIpKSxsLmV4dGVuZEZsYXQoeS50ZXh0U2VsLHtwb3NpdGlvbnM6X30scy50ZXh0UG9zaXRpb24odCxwLHkudGV4dCx5Lm1hcmtlclNlbCkpLGwuZXh0ZW5kRmxhdCh5LnRleHRVbnNlbCx7cG9zaXRpb25zOl99LHMudGV4dFBvc2l0aW9uKHQscCx5LnRleHQseS5tYXJrZXJVbnNlbCkpKSx5LmZpbGwmJiFmLmZpbGwyZCYmKGYuZmlsbDJkPSEwKSx5Lm1hcmtlciYmIWYuc2NhdHRlcjJkJiYoZi5zY2F0dGVyMmQ9ITApLHkubGluZSYmIWYubGluZTJkJiYoZi5saW5lMmQ9ITApLHkudGV4dCYmIWYuZ2xUZXh0JiYoZi5nbFRleHQ9ITApLGYubGluZU9wdGlvbnMucHVzaCh5LmxpbmUpLGYuZmlsbE9wdGlvbnMucHVzaCh5LmZpbGwpLGYubWFya2VyT3B0aW9ucy5wdXNoKHkubWFya2VyKSxmLm1hcmtlclNlbGVjdGVkT3B0aW9ucy5wdXNoKHkubWFya2VyU2VsKSxmLm1hcmtlclVuc2VsZWN0ZWRPcHRpb25zLnB1c2goeS5tYXJrZXJVbnNlbCksZi50ZXh0T3B0aW9ucy5wdXNoKHkudGV4dCksZi50ZXh0U2VsZWN0ZWRPcHRpb25zLnB1c2goeS50ZXh0U2VsKSxmLnRleHRVbnNlbGVjdGVkT3B0aW9ucy5wdXNoKHkudGV4dFVuc2VsKSxmLnNlbGVjdEJhdGNoLnB1c2goW10pLGYudW5zZWxlY3RCYXRjaC5wdXNoKFtdKSxkLng9dyxkLnk9ayxkLnJhd3g9dyxkLnJhd3k9ayxkLnI9dixkLnRoZXRhPW0sZC5wb3NpdGlvbnM9XyxkLl9zY2VuZT1mLGQuaW5kZXg9Zi5jb3VudCxmLmNvdW50Kyt9fSksaSh0LGUscil9fX0seyIuLi8uLi9saWIiOjcxNywiLi4vc2NhdHRlcmdsL2NvbnN0YW50cyI6MTE3MywiLi4vc2NhdHRlcmdsL2NvbnZlcnQiOjExNzQsIi4uL3NjYXR0ZXJnbC9wbG90IjoxMTgxLCIuLi9zY2F0dGVyZ2wvc2NlbmVfdXBkYXRlIjoxMTgyLCJmYXN0LWlzbnVtZXJpYyI6MjI4LCJwb2ludC1jbHVzdGVyIjo0NzF9XSwxMjA3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMsYT10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikudGV4dHRlbXBsYXRlQXR0cnMsaT10KCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiKSxvPXQoIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIiksbD10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmcvYXR0cmlidXRlcyIpLmRhc2gsYz10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCx1PWkubWFya2VyLGg9aS5saW5lLGY9dS5saW5lO2UuZXhwb3J0cz17YTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxiOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGM6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sc3VtOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MCxtaW46MCxlZGl0VHlwZToiY2FsYyJ9LG1vZGU6Yyh7fSxpLm1vZGUse2RmbHQ6Im1hcmtlcnMifSksdGV4dDpjKHt9LGkudGV4dCx7fSksdGV4dHRlbXBsYXRlOmEoe2VkaXRUeXBlOiJwbG90In0se2tleXM6WyJhIiwiYiIsImMiLCJ0ZXh0Il19KSxob3ZlcnRleHQ6Yyh7fSxpLmhvdmVydGV4dCx7fSksbGluZTp7Y29sb3I6aC5jb2xvcix3aWR0aDpoLndpZHRoLGRhc2g6bCxzaGFwZTpjKHt9LGguc2hhcGUse3ZhbHVlczpbImxpbmVhciIsInNwbGluZSJdfSksc21vb3RoaW5nOmguc21vb3RoaW5nLGVkaXRUeXBlOiJjYWxjIn0sY29ubmVjdGdhcHM6aS5jb25uZWN0Z2FwcyxjbGlwb25heGlzOmkuY2xpcG9uYXhpcyxmaWxsOmMoe30saS5maWxsLHt2YWx1ZXM6WyJub25lIiwidG9zZWxmIiwidG9uZXh0Il0sZGZsdDoibm9uZSJ9KSxmaWxsY29sb3I6aS5maWxsY29sb3IsbWFya2VyOmMoe3N5bWJvbDp1LnN5bWJvbCxvcGFjaXR5OnUub3BhY2l0eSxtYXhkaXNwbGF5ZWQ6dS5tYXhkaXNwbGF5ZWQsc2l6ZTp1LnNpemUsc2l6ZXJlZjp1LnNpemVyZWYsc2l6ZW1pbjp1LnNpemVtaW4sc2l6ZW1vZGU6dS5zaXplbW9kZSxsaW5lOmMoe3dpZHRoOmYud2lkdGgsZWRpdFR5cGU6ImNhbGMifSxzKCJtYXJrZXIubGluZSIpKSxncmFkaWVudDp1LmdyYWRpZW50LGVkaXRUeXBlOiJjYWxjIn0scygibWFya2VyIikpLHRleHRmb250OmkudGV4dGZvbnQsdGV4dHBvc2l0aW9uOmkudGV4dHBvc2l0aW9uLHNlbGVjdGVkOmkuc2VsZWN0ZWQsdW5zZWxlY3RlZDppLnVuc2VsZWN0ZWQsaG92ZXJpbmZvOmMoe30sby5ob3ZlcmluZm8se2ZsYWdzOlsiYSIsImIiLCJjIiwidGV4dCIsIm5hbWUiXX0pLGhvdmVyb246aS5ob3Zlcm9uLGhvdmVydGVtcGxhdGU6bigpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6NTk5LCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmcvYXR0cmlidXRlcyI6NjEyLCIuLi8uLi9saWIvZXh0ZW5kIjo3MDgsIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiOjc2MiwiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyI6ODQxLCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiOjExMjB9XSwxMjA4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksYT10KCIuLi9zY2F0dGVyL2NvbG9yc2NhbGVfY2FsYyIpLGk9dCgiLi4vc2NhdHRlci9hcnJheXNfdG9fY2FsY2RhdGEiKSxvPXQoIi4uL3NjYXR0ZXIvY2FsY19zZWxlY3Rpb24iKSxzPXQoIi4uL3NjYXR0ZXIvY2FsYyIpLmNhbGNNYXJrZXJTaXplLGw9WyJhIiwiYiIsImMiXSxjPXthOlsiYiIsImMiXSxiOlsiYSIsImMiXSxjOlsiYSIsImIiXX07ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsdSxoLGYscCxkLGc9dC5fZnVsbExheW91dFtlLnN1YnBsb3RdLnN1bSx2PWUuc3VtfHxnLG09e2E6ZS5hLGI6ZS5iLGM6ZS5jfTtmb3Iocj0wO3I8bC5sZW5ndGg7cisrKWlmKCFtW2g9bFtyXV0pe2ZvcihwPW1bY1toXVswXV0sZD1tW2NbaF1bMV1dLGY9bmV3IEFycmF5KHAubGVuZ3RoKSx1PTA7dTxwLmxlbmd0aDt1KyspZlt1XT12LXBbdV0tZFt1XTttW2hdPWZ9dmFyIHkseCxiLF8sdyxrLFQ9ZS5fbGVuZ3RoLE09bmV3IEFycmF5KFQpO2ZvcihyPTA7cjxUO3IrKyl5PW0uYVtyXSx4PW0uYltyXSxiPW0uY1tyXSxuKHkpJiZuKHgpJiZuKGIpPygxIT09KF89Zy8oKHk9K3kpKyh4PSt4KSsoYj0rYikpKSYmKHkqPV8seCo9XyxiKj1fKSxrPXksdz1iLXgsTVtyXT17eDp3LHk6ayxhOnksYjp4LGM6Yn0pOk1bcl09e3g6ITEseTohMX07cmV0dXJuIHMoZSxUKSxhKHQsZSksaShNLGUpLG8oTSxlKSxNfX0seyIuLi9zY2F0dGVyL2FycmF5c190b19jYWxjZGF0YSI6MTExOSwiLi4vc2NhdHRlci9jYWxjIjoxMTIxLCIuLi9zY2F0dGVyL2NhbGNfc2VsZWN0aW9uIjoxMTIyLCIuLi9zY2F0dGVyL2NvbG9yc2NhbGVfY2FsYyI6MTEyMywiZmFzdC1pc251bWVyaWMiOjIyOH1dLDEyMDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi9zY2F0dGVyL2NvbnN0YW50cyIpLGk9dCgiLi4vc2NhdHRlci9zdWJ0eXBlcyIpLG89dCgiLi4vc2NhdHRlci9tYXJrZXJfZGVmYXVsdHMiKSxzPXQoIi4uL3NjYXR0ZXIvbGluZV9kZWZhdWx0cyIpLGw9dCgiLi4vc2NhdHRlci9saW5lX3NoYXBlX2RlZmF1bHRzIiksYz10KCIuLi9zY2F0dGVyL3RleHRfZGVmYXVsdHMiKSx1PXQoIi4uL3NjYXR0ZXIvZmlsbGNvbG9yX2RlZmF1bHRzIiksaD10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsZil7ZnVuY3Rpb24gcChyLGEpe3JldHVybiBuLmNvZXJjZSh0LGUsaCxyLGEpfXZhciBkLGc9cCgiYSIpLHY9cCgiYiIpLG09cCgiYyIpO2lmKGc/KGQ9Zy5sZW5ndGgsdj8oZD1NYXRoLm1pbihkLHYubGVuZ3RoKSxtJiYoZD1NYXRoLm1pbihkLG0ubGVuZ3RoKSkpOmQ9bT9NYXRoLm1pbihkLG0ubGVuZ3RoKTowKTp2JiZtJiYoZD1NYXRoLm1pbih2Lmxlbmd0aCxtLmxlbmd0aCkpLGQpe2UuX2xlbmd0aD1kLHAoInN1bSIpLHAoInRleHQiKSxwKCJob3ZlcnRleHQiKSwiZmlsbHMiIT09ZS5ob3Zlcm9uJiZwKCJob3ZlcnRlbXBsYXRlIikscCgibW9kZSIsZDxhLlBUU19MSU5FU09OTFk/ImxpbmVzK21hcmtlcnMiOiJsaW5lcyIpLGkuaGFzTGluZXMoZSkmJihzKHQsZSxyLGYscCksbCh0LGUscCkscCgiY29ubmVjdGdhcHMiKSksaS5oYXNNYXJrZXJzKGUpJiZvKHQsZSxyLGYscCx7Z3JhZGllbnQ6ITB9KSxpLmhhc1RleHQoZSkmJihwKCJ0ZXh0dGVtcGxhdGUiKSxjKHQsZSxmLHApKTt2YXIgeT1bXTsoaS5oYXNNYXJrZXJzKGUpfHxpLmhhc1RleHQoZSkpJiYocCgiY2xpcG9uYXhpcyIpLHAoIm1hcmtlci5tYXhkaXNwbGF5ZWQiKSx5LnB1c2goInBvaW50cyIpKSxwKCJmaWxsIiksIm5vbmUiIT09ZS5maWxsJiYodSh0LGUscixwKSxpLmhhc0xpbmVzKGUpfHxsKHQsZSxwKSksInRvbmV4dCIhPT1lLmZpbGwmJiJ0b3NlbGYiIT09ZS5maWxsfHx5LnB1c2goImZpbGxzIikscCgiaG92ZXJvbiIseS5qb2luKCIrIil8fCJwb2ludHMiKSxuLmNvZXJjZVNlbGVjdGlvbk1hcmtlck9wYWNpdHkoZSxwKX1lbHNlIGUudmlzaWJsZT0hMX19LHsiLi4vLi4vbGliIjo3MTcsIi4uL3NjYXR0ZXIvY29uc3RhbnRzIjoxMTI0LCIuLi9zY2F0dGVyL2ZpbGxjb2xvcl9kZWZhdWx0cyI6MTEyOCwiLi4vc2NhdHRlci9saW5lX2RlZmF1bHRzIjoxMTMzLCIuLi9zY2F0dGVyL2xpbmVfc2hhcGVfZGVmYXVsdHMiOjExMzUsIi4uL3NjYXR0ZXIvbWFya2VyX2RlZmF1bHRzIjoxMTM5LCIuLi9zY2F0dGVyL3N1YnR5cGVzIjoxMTQ0LCIuLi9zY2F0dGVyL3RleHRfZGVmYXVsdHMiOjExNDUsIi4vYXR0cmlidXRlcyI6MTIwN31dLDEyMTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4sYSl7aWYoZS54YSYmKHQueGF4aXM9ZS54YSksZS55YSYmKHQueWF4aXM9ZS55YSksblthXSl7dmFyIGk9blthXTt0LmE9aS5hLHQuYj1pLmIsdC5jPWkuY31lbHNlIHQuYT1lLmEsdC5iPWUuYix0LmM9ZS5jO3JldHVybiB0fX0se31dLDEyMTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBhPXt9LGk9cltlLnN1YnBsb3RdLl9zdWJwbG90O3JldHVybiBhLmFMYWJlbD1uLnRpY2tUZXh0KGkuYWF4aXMsdC5hLCEwKS50ZXh0LGEuYkxhYmVsPW4udGlja1RleHQoaS5iYXhpcyx0LmIsITApLnRleHQsYS5jTGFiZWw9bi50aWNrVGV4dChpLmNheGlzLHQuYywhMCkudGV4dCxhfX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NzY1fV0sMTIxMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9zY2F0dGVyL2hvdmVyIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEpe3ZhciBpPW4odCxlLHIsYSk7aWYoaSYmITEhPT1pWzBdLmluZGV4KXt2YXIgbz1pWzBdO2lmKHZvaWQgMD09PW8uaW5kZXgpe3ZhciBzPTEtby55MC90LnlhLl9sZW5ndGgsbD10LnhhLl9sZW5ndGgsYz1sKnMvMix1PWwtYztyZXR1cm4gby54MD1NYXRoLm1heChNYXRoLm1pbihvLngwLHUpLGMpLG8ueDE9TWF0aC5tYXgoTWF0aC5taW4oby54MSx1KSxjKSxpfXZhciBoPW8uY2Rbby5pbmRleF0sZj1vLnRyYWNlLHA9by5zdWJwbG90O28uYT1oLmEsby5iPWguYixvLmM9aC5jLG8ueExhYmVsVmFsPXZvaWQgMCxvLnlMYWJlbFZhbD12b2lkIDA7dmFyIGQ9e307ZFtmLnN1YnBsb3RdPXtfc3VicGxvdDpwfTt2YXIgZz1mLl9tb2R1bGUuZm9ybWF0TGFiZWxzKGgsZixkKTtvLmFMYWJlbD1nLmFMYWJlbCxvLmJMYWJlbD1nLmJMYWJlbCxvLmNMYWJlbD1nLmNMYWJlbDt2YXIgdj1oLmhpfHxmLmhvdmVyaW5mbyxtPVtdO2lmKCFmLmhvdmVydGVtcGxhdGUpe3ZhciB5PXYuc3BsaXQoIisiKTstMSE9PXkuaW5kZXhPZigiYWxsIikmJih5PVsiYSIsImIiLCJjIl0pLC0xIT09eS5pbmRleE9mKCJhIikmJngocC5hYXhpcyxvLmFMYWJlbCksLTEhPT15LmluZGV4T2YoImIiKSYmeChwLmJheGlzLG8uYkxhYmVsKSwtMSE9PXkuaW5kZXhPZigiYyIpJiZ4KHAuY2F4aXMsby5jTGFiZWwpfXJldHVybiBvLmV4dHJhVGV4dD1tLmpvaW4oIjxicj4iKSxvLmhvdmVydGVtcGxhdGU9Zi5ob3ZlcnRlbXBsYXRlLGl9ZnVuY3Rpb24geCh0LGUpe20ucHVzaCh0Ll9ob3ZlcnRpdGxlKyI6ICIrZSl9fX0seyIuLi9zY2F0dGVyL2hvdmVyIjoxMTMxfV0sMTIxMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNvbG9yYmFyOnQoIi4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIiksZm9ybWF0TGFiZWxzOnQoIi4vZm9ybWF0X2xhYmVscyIpLGNhbGM6dCgiLi9jYWxjIikscGxvdDp0KCIuL3Bsb3QiKSxzdHlsZTp0KCIuLi9zY2F0dGVyL3N0eWxlIikuc3R5bGUsc3R5bGVPblNlbGVjdDp0KCIuLi9zY2F0dGVyL3N0eWxlIikuc3R5bGVPblNlbGVjdCxob3ZlclBvaW50czp0KCIuL2hvdmVyIiksc2VsZWN0UG9pbnRzOnQoIi4uL3NjYXR0ZXIvc2VsZWN0IiksZXZlbnREYXRhOnQoIi4vZXZlbnRfZGF0YSIpLG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJzY2F0dGVydGVybmFyeSIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvdGVybmFyeSIpLGNhdGVnb3JpZXM6WyJ0ZXJuYXJ5Iiwic3ltYm9scyIsInNob3dMZWdlbmQiLCJzY2F0dGVyLWxpa2UiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy90ZXJuYXJ5Ijo4NDIsIi4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIjoxMTM4LCIuLi9zY2F0dGVyL3NlbGVjdCI6MTE0MSwiLi4vc2NhdHRlci9zdHlsZSI6MTE0MywiLi9hdHRyaWJ1dGVzIjoxMjA3LCIuL2NhbGMiOjEyMDgsIi4vZGVmYXVsdHMiOjEyMDksIi4vZXZlbnRfZGF0YSI6MTIxMCwiLi9mb3JtYXRfbGFiZWxzIjoxMjExLCIuL2hvdmVyIjoxMjEyLCIuL3Bsb3QiOjEyMTR9XSwxMjE0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXIvcGxvdCIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGE9ZS5wbG90Q29udGFpbmVyO2Euc2VsZWN0KCIuc2NhdHRlcmxheWVyIikuc2VsZWN0QWxsKCIqIikucmVtb3ZlKCk7dmFyIGk9e3hheGlzOmUueGF4aXMseWF4aXM6ZS55YXhpcyxwbG90OmEsbGF5ZXJDbGlwSWQ6ZS5faGFzQ2xpcE9uQXhpc0ZhbHNlP2UuY2xpcElkUmVsYXRpdmU6bnVsbH0sbz1lLmxheWVycy5mcm9udHBsb3Quc2VsZWN0KCJnLnNjYXR0ZXJsYXllciIpO24odCxpLHIsbyl9fSx7Ii4uL3NjYXR0ZXIvcGxvdCI6MTE0MH1dLDEyMTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxvPXQoIi4uL3NjYXR0ZXJnbC9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vY29uc3RhbnRzIikuaWRSZWdleCxsPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKS50ZW1wbGF0ZWRBcnJheSxjPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LHU9bi5tYXJrZXIsaD11LmxpbmUsZj1jKGEoIm1hcmtlci5saW5lIix7ZWRpdFR5cGVPdmVycmlkZToiY2FsYyJ9KSx7d2lkdGg6Yyh7fSxoLndpZHRoLHtlZGl0VHlwZToiY2FsYyJ9KSxlZGl0VHlwZToiY2FsYyJ9KSxwPWMoYSgibWFya2VyIikse3N5bWJvbDp1LnN5bWJvbCxzaXplOmMoe30sdS5zaXplLHtlZGl0VHlwZToibWFya2VyU2l6ZSJ9KSxzaXplcmVmOnUuc2l6ZXJlZixzaXplbWluOnUuc2l6ZW1pbixzaXplbW9kZTp1LnNpemVtb2RlLG9wYWNpdHk6dS5vcGFjaXR5LGNvbG9yYmFyOnUuY29sb3JiYXIsbGluZTpmLGVkaXRUeXBlOiJjYWxjIn0pO2Z1bmN0aW9uIGQodCl7cmV0dXJue3ZhbFR5cGU6ImluZm9fYXJyYXkiLGZyZWVMZW5ndGg6ITAsZWRpdFR5cGU6ImNhbGMiLGl0ZW1zOnt2YWxUeXBlOiJzdWJwbG90aWQiLHJlZ2V4OnNbdF0sZWRpdFR5cGU6InBsb3QifX19cC5jb2xvci5lZGl0VHlwZT1wLmNtaW4uZWRpdFR5cGU9cC5jbWF4LmVkaXRUeXBlPSJzdHlsZSIsZS5leHBvcnRzPXtkaW1lbnNpb25zOmwoImRpbWVuc2lvbiIse3Zpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6ImNhbGMifSxsYWJlbDp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToiY2FsYyJ9LHZhbHVlczp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSxheGlzOnt0eXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJsaW5lYXIiLCJsb2ciLCJkYXRlIiwiY2F0ZWdvcnkiXSxlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LG1hdGNoZXM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITEsZWRpdFR5cGU6ImNhbGMifSxlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0pLHRleHQ6Yyh7fSxvLnRleHQse30pLGhvdmVydGV4dDpjKHt9LG8uaG92ZXJ0ZXh0LHt9KSxob3ZlcnRlbXBsYXRlOmkoKSxtYXJrZXI6cCx4YXhlczpkKCJ4IikseWF4ZXM6ZCgieSIpLGRpYWdvbmFsOnt2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMifSxzaG93dXBwZXJoYWxmOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJjYWxjIn0sc2hvd2xvd2VyaGFsZjp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToiY2FsYyJ9LHNlbGVjdGVkOnttYXJrZXI6by5zZWxlY3RlZC5tYXJrZXIsZWRpdFR5cGU6ImNhbGMifSx1bnNlbGVjdGVkOnttYXJrZXI6by51bnNlbGVjdGVkLm1hcmtlcixlZGl0VHlwZToiY2FsYyJ9LG9wYWNpdHk6by5vcGFjaXR5fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6NTk5LCIuLi8uLi9saWIvZXh0ZW5kIjo3MDgsIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjc1NSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2NvbnN0YW50cyI6NzcxLCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo4NDEsIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyI6MTEyMCwiLi4vc2NhdHRlcmdsL2F0dHJpYnV0ZXMiOjExNzF9XSwxMjE2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInJlZ2wtbGluZTJkIiksYT10KCIuLi8uLi9yZWdpc3RyeSIpLGk9dCgiLi4vLi4vbGliL3ByZXBhcmVfcmVnbCIpLG89dCgiLi4vLi4vcGxvdHMvZ2V0X2RhdGEiKS5nZXRNb2R1bGVDYWxjRGF0YSxzPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbiIpLGw9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIikuZ2V0RnJvbUlkLGM9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKS5zaG91bGRTaG93WmVyb0xpbmUsdT0ic3Bsb20iO2Z1bmN0aW9uIGgodCxlLHIpe2Zvcih2YXIgbj1yLm1hdHJpeE9wdGlvbnMuZGF0YS5sZW5ndGgsYT1lLl92aXNpYmxlRGltcyxpPXIudmlld09wdHMucmFuZ2VzPW5ldyBBcnJheShuKSxvPTA7bzxhLmxlbmd0aDtvKyspe3ZhciBzPWFbb10sYz1pW29dPW5ldyBBcnJheSg0KSx1PWwodCxlLl9kaWFnW3NdWzBdKTt1JiYoY1swXT11LnIybCh1LnJhbmdlWzBdKSxjWzJdPXUucjJsKHUucmFuZ2VbMV0pKTt2YXIgaD1sKHQsZS5fZGlhZ1tzXVsxXSk7aCYmKGNbMV09aC5yMmwoaC5yYW5nZVswXSksY1szXT1oLnIybChoLnJhbmdlWzFdKSl9ci5zZWxlY3RCYXRjaC5sZW5ndGh8fHIudW5zZWxlY3RCYXRjaC5sZW5ndGg/ci5tYXRyaXgudXBkYXRlKHtyYW5nZXM6aX0se3JhbmdlczppfSk6ci5tYXRyaXgudXBkYXRlKHtyYW5nZXM6aX0pfWZ1bmN0aW9uIGYodCl7dmFyIGU9dC5fZnVsbExheW91dCxyPWUuX2dsY2FudmFzLmRhdGEoKVswXS5yZWdsLGE9ZS5fc3Bsb21HcmlkO2F8fChhPWUuX3NwbG9tR3JpZD1uKHIpKSxhLnVwZGF0ZShmdW5jdGlvbih0KXt2YXIgZSxyPXQuX2Z1bGxMYXlvdXQsbj1yLl9zaXplLGE9WzAsMCxyLndpZHRoLHIuaGVpZ2h0XSxpPXt9O2Z1bmN0aW9uIG8odCxlLHIsbixvLHMpe3ZhciBsPWVbdCsiY29sb3IiXSxjPWVbdCsid2lkdGgiXSx1PVN0cmluZyhsK2MpO3UgaW4gaT9pW3VdLmRhdGEucHVzaChOYU4sTmFOLHIsbixvLHMpOmlbdV09e2RhdGE6W3IsbixvLHNdLGpvaW46InJlY3QiLHRoaWNrbmVzczpjLGNvbG9yOmwsdmlld3BvcnQ6YSxyYW5nZTphLG92ZXJsYXk6ITF9fWZvcihlIGluIHIuX3NwbG9tU3VicGxvdHMpe3ZhciBzLGwsdT1yLl9wbG90c1tlXSxoPXUueGF4aXMsZj11LnlheGlzLHA9aC5fZ3JpZFZhbHMsZD1mLl9ncmlkVmFscyxnPW4uYitmLmRvbWFpblswXSpuLmgsdj0tZi5fbSxtPS12KmYucjJsKGYucmFuZ2VbMF0sZi5jYWxlbmRhcik7aWYoaC5zaG93Z3JpZClmb3IoZT0wO2U8cC5sZW5ndGg7ZSsrKXM9aC5fb2Zmc2V0K2gubDJwKHBbZV0ueCksbygiZ3JpZCIsaCxzLGcscyxnK2YuX2xlbmd0aCk7aWYoZi5zaG93Z3JpZClmb3IoZT0wO2U8ZC5sZW5ndGg7ZSsrKWw9ZyttK3YqZFtlXS54LG8oImdyaWQiLGYsaC5fb2Zmc2V0LGwsaC5fb2Zmc2V0K2guX2xlbmd0aCxsKTtjKHQsaCxmKSYmKHM9aC5fb2Zmc2V0K2gubDJwKDApLG8oInplcm9saW5lIixoLHMsZyxzLGcrZi5fbGVuZ3RoKSksYyh0LGYsaCkmJihsPWcrbSswLG8oInplcm9saW5lIixmLGguX29mZnNldCxsLGguX29mZnNldCtoLl9sZW5ndGgsbCkpfXZhciB5PVtdO2ZvcihlIGluIGkpeS5wdXNoKGlbZV0pO3JldHVybiB5fSh0KSl9ZS5leHBvcnRzPXtuYW1lOnUsYXR0cjpzLmF0dHIsYXR0clJlZ2V4OnMuYXR0clJlZ2V4LGxheW91dEF0dHJpYnV0ZXM6cy5sYXlvdXRBdHRyaWJ1dGVzLHN1cHBseUxheW91dERlZmF1bHRzOnMuc3VwcGx5TGF5b3V0RGVmYXVsdHMsZHJhd0ZyYW1ld29yazpzLmRyYXdGcmFtZXdvcmsscGxvdDpmdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0LHI9YS5nZXRNb2R1bGUodSksbj1vKHQuY2FsY2RhdGEscilbMF07aSh0LFsiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIsIk9FU19lbGVtZW50X2luZGV4X3VpbnQiXSkmJihlLl9oYXNPbmx5TGFyZ2VTcGxvbXMmJmYodCksci5wbG90KHQse30sbikpfSxkcmFnOmZ1bmN0aW9uKHQpe3ZhciBlPXQuY2FsY2RhdGEscj10Ll9mdWxsTGF5b3V0O3IuX2hhc09ubHlMYXJnZVNwbG9tcyYmZih0KTtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGE9ZVtuXVswXS50cmFjZSxpPXIuX3NwbG9tU2NlbmVzW2EudWlkXTsic3Bsb20iPT09YS50eXBlJiZpJiZpLm1hdHJpeCYmaCh0LGEsaSl9fSx1cGRhdGVHcmlkOmYsY2xlYW46ZnVuY3Rpb24odCxlLHIsbil7dmFyIGEsaT17fTtpZihuLl9zcGxvbVNjZW5lcyl7Zm9yKGE9MDthPHQubGVuZ3RoO2ErKyl7dmFyIG89dFthXTsic3Bsb20iPT09by50eXBlJiYoaVtvLnVpZF09MSl9Zm9yKGE9MDthPHIubGVuZ3RoO2ErKyl7dmFyIGw9clthXTtpZighaVtsLnVpZF0pe3ZhciBjPW4uX3NwbG9tU2NlbmVzW2wudWlkXTtjJiZjLmRlc3Ryb3kmJmMuZGVzdHJveSgpLG4uX3NwbG9tU2NlbmVzW2wudWlkXT1udWxsLGRlbGV0ZSBuLl9zcGxvbVNjZW5lc1tsLnVpZF19fX0wPT09T2JqZWN0LmtleXMobi5fc3Bsb21TY2VuZXN8fHt9KS5sZW5ndGgmJmRlbGV0ZSBuLl9zcGxvbVNjZW5lcyxuLl9zcGxvbUdyaWQmJiFlLl9oYXNPbmx5TGFyZ2VTcGxvbXMmJm4uX2hhc09ubHlMYXJnZVNwbG9tcyYmKG4uX3NwbG9tR3JpZC5kZXN0cm95KCksbi5fc3Bsb21HcmlkPW51bGwsZGVsZXRlIG4uX3NwbG9tR3JpZCkscy5jbGVhbih0LGUscixuKX0sdXBkYXRlRng6cy51cGRhdGVGeCx0b1NWRzpzLnRvU1ZHfX0seyIuLi8uLi9saWIvcHJlcGFyZV9yZWdsIjo3MzAsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbiI6Nzc2LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NzY1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiOjc2OCwiLi4vLi4vcGxvdHMvZ2V0X2RhdGEiOjgwMCwiLi4vLi4vcmVnaXN0cnkiOjg0NiwicmVnbC1saW5lMmQiOjQ5M31dLDEyMTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiKSxpPXQoIi4uL3NjYXR0ZXIvY2FsYyIpLmNhbGNNYXJrZXJTaXplLG89dCgiLi4vc2NhdHRlci9jYWxjIikuY2FsY0F4aXNFeHBhbnNpb24scz10KCIuLi9zY2F0dGVyL2NvbG9yc2NhbGVfY2FsYyIpLGw9dCgiLi4vc2NhdHRlcmdsL2NvbnZlcnQiKS5tYXJrZXJTZWxlY3Rpb24sYz10KCIuLi9zY2F0dGVyZ2wvY29udmVydCIpLm1hcmtlclN0eWxlLHU9dCgiLi9zY2VuZV91cGRhdGUiKSxoPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5CQUROVU0sZj10KCIuLi9zY2F0dGVyZ2wvY29uc3RhbnRzIikuVE9PX01BTllfUE9JTlRTO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLHAsZCxnLHYsbSx5PWUuZGltZW5zaW9ucyx4PWUuX2xlbmd0aCxiPXt9LF89Yi5jZGF0YT1bXSx3PWIuZGF0YT1bXSxrPWUuX3Zpc2libGVEaW1zPVtdO2Z1bmN0aW9uIFQodCxyKXtmb3IodmFyIGE9dC5tYWtlQ2FsY2RhdGEoe3Y6ci52YWx1ZXMsdmNhbGVuZGFyOmUuY2FsZW5kYXJ9LCJ2IiksaT0wO2k8YS5sZW5ndGg7aSsrKWFbaV09YVtpXT09PWg/TmFOOmFbaV07Xy5wdXNoKGEpLHcucHVzaCgibG9nIj09PXQudHlwZT9uLnNpbXBsZU1hcChhLHQuYzJsKTphKX1mb3Iocj0wO3I8eS5sZW5ndGg7cisrKWlmKChkPXlbcl0pLnZpc2libGUpe2lmKGc9YS5nZXRGcm9tSWQodCxlLl9kaWFnW3JdWzBdKSx2PWEuZ2V0RnJvbUlkKHQsZS5fZGlhZ1tyXVsxXSksZyYmdiYmZy50eXBlIT09di50eXBlKXtuLmxvZygiU2tpcHBpbmcgc3Bsb20gZGltZW5zaW9uICIrcisiIHdpdGggY29uZmxpY3RpbmcgYXhpcyB0eXBlcyIpO2NvbnRpbnVlfWc/KFQoZyxkKSx2JiYiY2F0ZWdvcnkiPT09di50eXBlJiYodi5fY2F0ZWdvcmllcz1nLl9jYXRlZ29yaWVzLnNsaWNlKCkpKTpUKHYsZCksay5wdXNoKHIpfWZvcihzKHQsZSksbi5leHRlbmRGbGF0KGIsYyhlKSksbT1fLmxlbmd0aCp4PmY/MiooYi5zaXplQXZnfHxNYXRoLm1heChiLnNpemUsMykpOmkoZSx4KSxwPTA7cDxrLmxlbmd0aDtwKyspZD15W3I9a1twXV0sZz1hLmdldEZyb21JZCh0LGUuX2RpYWdbcl1bMF0pfHx7fSx2PWEuZ2V0RnJvbUlkKHQsZS5fZGlhZ1tyXVsxXSl8fHt9LG8odCxlLGcsdixfW3BdLF9bcF0sbSk7dmFyIE09dSh0LGUpO3JldHVybiBNLm1hdHJpeHx8KE0ubWF0cml4PSEwKSxNLm1hdHJpeE9wdGlvbnM9YixNLnNlbGVjdGVkT3B0aW9ucz1sKGUsZS5zZWxlY3RlZCksTS51bnNlbGVjdGVkT3B0aW9ucz1sKGUsZS51bnNlbGVjdGVkKSxbe3g6ITEseTohMSx0Ont9LHRyYWNlOmV9XX19LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NjkzLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIjo3NjgsIi4uL3NjYXR0ZXIvY2FsYyI6MTEyMSwiLi4vc2NhdHRlci9jb2xvcnNjYWxlX2NhbGMiOjExMjMsIi4uL3NjYXR0ZXJnbC9jb25zdGFudHMiOjExNzMsIi4uL3NjYXR0ZXJnbC9jb252ZXJ0IjoxMTc0LCIuL3NjZW5lX3VwZGF0ZSI6MTIyNH1dLDEyMTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiKSxpPXQoIi4vYXR0cmlidXRlcyIpLG89dCgiLi4vc2NhdHRlci9zdWJ0eXBlcyIpLHM9dCgiLi4vc2NhdHRlci9tYXJrZXJfZGVmYXVsdHMiKSxsPXQoIi4uL3BhcmNvb3Jkcy9tZXJnZV9sZW5ndGgiKSxjPXQoIi4uL3NjYXR0ZXJnbC9oZWxwZXJzIikuaXNPcGVuU3ltYm9sO2Z1bmN0aW9uIHUodCxlKXtmdW5jdGlvbiByKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxpLmRpbWVuc2lvbnMscixhKX1yKCJsYWJlbCIpO3ZhciBhPXIoInZhbHVlcyIpO2EmJmEubGVuZ3RoP3IoInZpc2libGUiKTplLnZpc2libGU9ITEscigiYXhpcy50eXBlIikscigiYXhpcy5tYXRjaGVzIil9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGgpe2Z1bmN0aW9uIGYocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLGkscixhKX12YXIgcD1hKHQsZSx7bmFtZToiZGltZW5zaW9ucyIsaGFuZGxlSXRlbURlZmF1bHRzOnV9KSxkPWYoImRpYWdvbmFsLnZpc2libGUiKSxnPWYoInNob3d1cHBlcmhhbGYiKSx2PWYoInNob3dsb3dlcmhhbGYiKTtpZihsKGUscCwidmFsdWVzIikmJihkfHxnfHx2KSl7ZigidGV4dCIpLGYoImhvdmVydGV4dCIpLGYoImhvdmVydGVtcGxhdGUiKSxzKHQsZSxyLGgsZik7dmFyIG09YyhlLm1hcmtlci5zeW1ib2wpLHk9by5pc0J1YmJsZShlKTtmKCJtYXJrZXIubGluZS53aWR0aCIsbXx8eT8xOjApLGZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhLGksbz1lLmRpbWVuc2lvbnMscz1vLmxlbmd0aCxsPWUuc2hvd3VwcGVyaGFsZixjPWUuc2hvd2xvd2VyaGFsZix1PWUuZGlhZ29uYWwudmlzaWJsZSxoPW5ldyBBcnJheShzKSxmPW5ldyBBcnJheShzKTtmb3IoYT0wO2E8czthKyspe3ZhciBwPWE/YSsxOiIiO2hbYV09IngiK3AsZlthXT0ieSIrcH12YXIgZD1uKCJ4YXhlcyIsaCksZz1uKCJ5YXhlcyIsZiksdj1lLl9kaWFnPW5ldyBBcnJheShzKTtlLl94YXhlcz17fSxlLl95YXhlcz17fTt2YXIgbT1bXSx5PVtdO2Z1bmN0aW9uIHgodCxuLGEsaSl7aWYodCl7dmFyIG89dC5jaGFyQXQoMCkscz1yLl9zcGxvbUF4ZXNbb107aWYoZVsiXyIrbysiYXhlcyJdW3RdPTEsaS5wdXNoKHQpLCEodCBpbiBzKSl7dmFyIGw9c1t0XT17fTthJiYobC5sYWJlbD1hLmxhYmVsfHwiIixhLnZpc2libGUmJmEuYXhpcyYmKGEuYXhpcy50eXBlJiYobC50eXBlPWEuYXhpcy50eXBlKSxhLmF4aXMubWF0Y2hlcyYmKGwubWF0Y2hlcz1uKSkpfX19dmFyIGI9IXUmJiFjLF89IXUmJiFsO2ZvcihlLl9heGVzRGltPXt9LGE9MDthPHM7YSsrKXt2YXIgdz1vW2FdLGs9MD09PWEsVD1hPT09cy0xLE09ayYmYnx8VCYmXz92b2lkIDA6ZFthXSxBPWsmJl98fFQmJmI/dm9pZCAwOmdbYV07eChNLEEsdyxtKSx4KEEsTSx3LHkpLHZbYV09W00sQV0sZS5fYXhlc0RpbVtNXT1hLGUuX2F4ZXNEaW1bQV09YX1mb3IoYT0wO2E8bS5sZW5ndGg7YSsrKWZvcihpPTA7aTx5Lmxlbmd0aDtpKyspe3ZhciBTPW1bYV0reVtpXTthPmkmJmw/ci5fc3Bsb21TdWJwbG90c1tTXT0xOmE8aSYmYz9yLl9zcGxvbVN1YnBsb3RzW1NdPTE6YSE9PWl8fCF1JiZjJiZsfHwoci5fc3Bsb21TdWJwbG90c1tTXT0xKX0oIWN8fCF1JiZsJiZjKSYmKHIuX3NwbG9tR3JpZERmbHQueHNpZGU9ImJvdHRvbSIsci5fc3Bsb21HcmlkRGZsdC55c2lkZT0ibGVmdCIpfSgwLGUsaCxmKSxuLmNvZXJjZVNlbGVjdGlvbk1hcmtlck9wYWNpdHkoZSxmKX1lbHNlIGUudmlzaWJsZT0hMX19LHsiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3Bsb3RzL2FycmF5X2NvbnRhaW5lcl9kZWZhdWx0cyI6NzYxLCIuLi9wYXJjb29yZHMvbWVyZ2VfbGVuZ3RoIjoxMDkxLCIuLi9zY2F0dGVyL21hcmtlcl9kZWZhdWx0cyI6MTEzOSwiLi4vc2NhdHRlci9zdWJ0eXBlcyI6MTE0NCwiLi4vc2NhdHRlcmdsL2hlbHBlcnMiOjExNzgsIi4vYXR0cmlidXRlcyI6MTIxNX1dLDEyMTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi9zY2F0dGVyL2NvbG9yc2NhbGVfY2FsYyIpLGk9dCgiLi4vc2NhdHRlcmdsL2NvbnZlcnQiKS5tYXJrZXJTdHlsZTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1lLnRyYWNlLG89dC5fZnVsbExheW91dC5fc3Bsb21TY2VuZXNbci51aWRdO2lmKG8pe2EodCxyKSxuLmV4dGVuZEZsYXQoby5tYXRyaXhPcHRpb25zLGkocikpO3ZhciBzPW4uZXh0ZW5kRmxhdCh7fSxvLm1hdHJpeE9wdGlvbnMsby52aWV3T3B0cyk7by5tYXRyaXgudXBkYXRlKHMsbnVsbCl9fX0seyIuLi8uLi9saWIiOjcxNywiLi4vc2NhdHRlci9jb2xvcnNjYWxlX2NhbGMiOjExMjMsIi4uL3NjYXR0ZXJnbC9jb252ZXJ0IjoxMTc0fV0sMTIyMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmdldERpbUluZGV4PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPWUuX2lkLG49e3g6MCx5OjF9W3IuY2hhckF0KDApXSxhPXQuX3Zpc2libGVEaW1zLGk9MDtpPGEubGVuZ3RoO2krKyl7dmFyIG89YVtpXTtpZih0Ll9kaWFnW29dW25dPT09cilyZXR1cm4gaX1yZXR1cm4hMX19LHt9XSwxMjIxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vaGVscGVycyIpLGE9dCgiLi4vc2NhdHRlcmdsL2hvdmVyIikuY2FsY0hvdmVyO2UuZXhwb3J0cz17aG92ZXJQb2ludHM6ZnVuY3Rpb24odCxlLHIpe3ZhciBpPXQuY2RbMF0udHJhY2Usbz10LnNjZW5lLm1hdHJpeE9wdGlvbnMuY2RhdGEscz10LnhhLGw9dC55YSxjPXMuYzJwKGUpLHU9bC5jMnAociksaD10LmRpc3RhbmNlLGY9bi5nZXREaW1JbmRleChpLHMpLHA9bi5nZXREaW1JbmRleChpLGwpO2lmKCExPT09Znx8ITE9PT1wKXJldHVyblt0XTtmb3IodmFyIGQsZyx2PW9bZl0sbT1vW3BdLHk9aCx4PTA7eDx2Lmxlbmd0aDt4Kyspe3ZhciBiPXZbeF0sXz1tW3hdLHc9cy5jMnAoYiktYyxrPWwuYzJwKF8pLXUsVD1NYXRoLnNxcnQodyp3K2sqayk7VDx5JiYoeT1nPVQsZD14KX1yZXR1cm4gdC5pbmRleD1kLHQuZGlzdGFuY2U9eSx0LmR4eT1nLHZvaWQgMD09PWQ/W3RdOlthKHQsdixtLGkpXX19fSx7Ii4uL3NjYXR0ZXJnbC9ob3ZlciI6MTE3OSwiLi9oZWxwZXJzIjoxMjIwfV0sMTIyMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9yZWdpc3RyeSIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9ncmlkIik7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToic3Bsb20iLGJhc2VQbG90TW9kdWxlOnQoIi4vYmFzZV9wbG90IiksY2F0ZWdvcmllczpbImdsIiwicmVnbCIsImNhcnRlc2lhbiIsInN5bWJvbHMiLCJzaG93TGVnZW5kIiwic2NhdHRlci1saWtlIl0sYXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY29sb3JiYXI6dCgiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiKSxjYWxjOnQoIi4vY2FsYyIpLHBsb3Q6dCgiLi9wbG90IiksaG92ZXJQb2ludHM6dCgiLi9ob3ZlciIpLmhvdmVyUG9pbnRzLHNlbGVjdFBvaW50czp0KCIuL3NlbGVjdCIpLGVkaXRTdHlsZTp0KCIuL2VkaXRfc3R5bGUiKSxtZXRhOnt9fSxuLnJlZ2lzdGVyKGEpfSx7Ii4uLy4uL2NvbXBvbmVudHMvZ3JpZCI6NjM0LCIuLi8uLi9yZWdpc3RyeSI6ODQ2LCIuLi9zY2F0dGVyL21hcmtlcl9jb2xvcmJhciI6MTEzOCwiLi9hdHRyaWJ1dGVzIjoxMjE1LCIuL2Jhc2VfcGxvdCI6MTIxNiwiLi9jYWxjIjoxMjE3LCIuL2RlZmF1bHRzIjoxMjE4LCIuL2VkaXRfc3R5bGUiOjEyMTksIi4vaG92ZXIiOjEyMjEsIi4vcGxvdCI6MTIyMywiLi9zZWxlY3QiOjEyMjV9XSwxMjIzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInJlZ2wtc3Bsb20iKSxhPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIik7ZnVuY3Rpb24gbyh0LGUpe3ZhciByLG8scyxsLGMsdT10Ll9mdWxsTGF5b3V0LGg9dS5fc2l6ZSxmPWUudHJhY2UscD1lLnQsZD11Ll9zcGxvbVNjZW5lc1tmLnVpZF0sZz1kLm1hdHJpeE9wdGlvbnMsdj1nLmNkYXRhLG09dS5fZ2xjYW52YXMuZGF0YSgpWzBdLnJlZ2wseT11LmRyYWdtb2RlO2lmKDAhPT12Lmxlbmd0aCl7Zy5sb3dlcj1mLnNob3d1cHBlcmhhbGYsZy51cHBlcj1mLnNob3dsb3dlcmhhbGYsZy5kaWFnb25hbD1mLmRpYWdvbmFsLnZpc2libGU7dmFyIHg9Zi5fdmlzaWJsZURpbXMsYj12Lmxlbmd0aCxfPWQudmlld09wdHM9e307Zm9yKF8ucmFuZ2VzPW5ldyBBcnJheShiKSxfLmRvbWFpbnM9bmV3IEFycmF5KGIpLGM9MDtjPHgubGVuZ3RoO2MrKyl7cz14W2NdO3ZhciB3PV8ucmFuZ2VzW2NdPW5ldyBBcnJheSg0KSxrPV8uZG9tYWluc1tjXT1uZXcgQXJyYXkoNCk7KHI9aS5nZXRGcm9tSWQodCxmLl9kaWFnW3NdWzBdKSkmJih3WzBdPXIuX3JsWzBdLHdbMl09ci5fcmxbMV0sa1swXT1yLmRvbWFpblswXSxrWzJdPXIuZG9tYWluWzFdKSwobz1pLmdldEZyb21JZCh0LGYuX2RpYWdbc11bMV0pKSYmKHdbMV09by5fcmxbMF0sd1szXT1vLl9ybFsxXSxrWzFdPW8uZG9tYWluWzBdLGtbM109by5kb21haW5bMV0pfV8udmlld3BvcnQ9W2gubCxoLmIsaC53K2gubCxoLmgraC5iXSwhMD09PWQubWF0cml4JiYoZC5tYXRyaXg9bihtKSk7dmFyIFQ9dS5jbGlja21vZGUuaW5kZXhPZigic2VsZWN0Iik+LTEsTT0hMDtpZigibGFzc28iPT09eXx8InNlbGVjdCI9PT15fHwhIWYuc2VsZWN0ZWRwb2ludHN8fFQpe3ZhciBBPWYuX2xlbmd0aDtpZihmLnNlbGVjdGVkcG9pbnRzKXtkLnNlbGVjdEJhdGNoPWYuc2VsZWN0ZWRwb2ludHM7dmFyIFM9Zi5zZWxlY3RlZHBvaW50cyxFPXt9O2ZvcihzPTA7czxTLmxlbmd0aDtzKyspRVtTW3NdXT0hMDt2YXIgTD1bXTtmb3Iocz0wO3M8QTtzKyspRVtzXXx8TC5wdXNoKHMpO2QudW5zZWxlY3RCYXRjaD1MfXZhciBDPXAueHB4PW5ldyBBcnJheShiKSxQPXAueXB4PW5ldyBBcnJheShiKTtmb3IoYz0wO2M8eC5sZW5ndGg7YysrKXtpZihzPXhbY10scj1pLmdldEZyb21JZCh0LGYuX2RpYWdbc11bMF0pKWZvcihDW2NdPW5ldyBBcnJheShBKSxsPTA7bDxBO2wrKylDW2NdW2xdPXIuYzJwKHZbY11bbF0pO2lmKG89aS5nZXRGcm9tSWQodCxmLl9kaWFnW3NdWzFdKSlmb3IoUFtjXT1uZXcgQXJyYXkoQSksbD0wO2w8QTtsKyspUFtjXVtsXT1vLmMycCh2W2NdW2xdKX1pZihkLnNlbGVjdEJhdGNoLmxlbmd0aHx8ZC51bnNlbGVjdEJhdGNoLmxlbmd0aCl7dmFyIE89YS5leHRlbmRGbGF0KHt9LGcsZC51bnNlbGVjdGVkT3B0aW9ucyxfKSx6PWEuZXh0ZW5kRmxhdCh7fSxnLGQuc2VsZWN0ZWRPcHRpb25zLF8pO2QubWF0cml4LnVwZGF0ZShPLHopLE09ITF9fWVsc2UgcC54cHg9cC55cHg9bnVsbDtpZihNKXt2YXIgST1hLmV4dGVuZEZsYXQoe30sZyxfKTtkLm1hdHJpeC51cGRhdGUoSSxudWxsKX19fWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7aWYoci5sZW5ndGgpZm9yKHZhciBuPTA7bjxyLmxlbmd0aDtuKyspbyh0LHJbbl1bMF0pfX0seyIuLi8uLi9saWIiOjcxNywiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIjo3NjgsInJlZ2wtc3Bsb20iOjUwMH1dLDEyMjQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5fZnVsbExheW91dCxhPWUudWlkLGk9ci5fc3Bsb21TY2VuZXM7aXx8KGk9ci5fc3Bsb21TY2VuZXM9e30pO3ZhciBvPXtkaXJ0eTohMH0scz1pW2UudWlkXTtyZXR1cm4gc3x8KChzPWlbYV09bi5leHRlbmRGbGF0KHt9LG8se21hdHJpeDohMSxzZWxlY3RCYXRjaDpbXSx1bnNlbGVjdEJhdGNoOltdfSkpLmRyYXc9ZnVuY3Rpb24oKXtzLm1hdHJpeCYmcy5tYXRyaXguZHJhdyYmKHMuc2VsZWN0QmF0Y2gubGVuZ3RofHxzLnVuc2VsZWN0QmF0Y2gubGVuZ3RoP3MubWF0cml4LmRyYXcocy51bnNlbGVjdEJhdGNoLHMuc2VsZWN0QmF0Y2gpOnMubWF0cml4LmRyYXcoKSkscy5kaXJ0eT0hMX0scy5kZXN0cm95PWZ1bmN0aW9uKCl7cy5tYXRyaXgmJnMubWF0cml4LmRlc3Ryb3kmJnMubWF0cml4LmRlc3Ryb3koKSxzLm1hdHJpeE9wdGlvbnM9bnVsbCxzLnNlbGVjdEJhdGNoPW51bGwscy51bnNlbGVjdEJhdGNoPW51bGwscz1udWxsfSkscy5kaXJ0eXx8bi5leHRlbmRGbGF0KHMsbyksc319LHsiLi4vLi4vbGliIjo3MTd9XSwxMjI1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vc2NhdHRlci9zdWJ0eXBlcyIpLGk9dCgiLi9oZWxwZXJzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5jZCxvPXJbMF0udHJhY2Uscz1yWzBdLnQsbD10LnNjZW5lLGM9bC5tYXRyaXhPcHRpb25zLmNkYXRhLHU9dC54YXhpcyxoPXQueWF4aXMsZj1bXTtpZighbClyZXR1cm4gZjt2YXIgcD0hYS5oYXNNYXJrZXJzKG8pJiYhYS5oYXNUZXh0KG8pO2lmKCEwIT09by52aXNpYmxlfHxwKXJldHVybiBmO3ZhciBkPWkuZ2V0RGltSW5kZXgobyx1KSxnPWkuZ2V0RGltSW5kZXgobyxoKTtpZighMT09PWR8fCExPT09ZylyZXR1cm4gZjt2YXIgdj1zLnhweFtkXSxtPXMueXB4W2ddLHk9Y1tkXSx4PWNbZ10sYj1bXSxfPVtdO2lmKCExIT09ZSYmIWUuZGVnZW5lcmF0ZSlmb3IodmFyIHc9MDt3PHkubGVuZ3RoO3crKyllLmNvbnRhaW5zKFt2W3ddLG1bd11dLG51bGwsdyx0KT8oYi5wdXNoKHcpLGYucHVzaCh7cG9pbnROdW1iZXI6dyx4Onlbd10seTp4W3ddfSkpOl8ucHVzaCh3KTt2YXIgaz1sLm1hdHJpeE9wdGlvbnM7cmV0dXJuIGIubGVuZ3RofHxfLmxlbmd0aD9sLnNlbGVjdEJhdGNoLmxlbmd0aHx8bC51bnNlbGVjdEJhdGNoLmxlbmd0aHx8bC5tYXRyaXgudXBkYXRlKGwudW5zZWxlY3RlZE9wdGlvbnMsbi5leHRlbmRGbGF0KHt9LGssbC5zZWxlY3RlZE9wdGlvbnMsbC52aWV3T3B0cykpOmwubWF0cml4LnVwZGF0ZShrLG51bGwpLGwuc2VsZWN0QmF0Y2g9YixsLnVuc2VsZWN0QmF0Y2g9XyxmfX0seyIuLi8uLi9saWIiOjcxNywiLi4vc2NhdHRlci9zdWJ0eXBlcyI6MTE0NCwiLi9oZWxwZXJzIjoxMjIwfV0sMTIyNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxpPXQoIi4uL21lc2gzZC9hdHRyaWJ1dGVzIiksbz10KCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxsPXt4Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LHk6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0sejp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSx1Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHY6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sdzp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxzdGFydHM6e3g6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0seTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSx6Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYWxjIn0sbWF4ZGlzcGxheWVkOnt2YWxUeXBlOiJpbnRlZ2VyIixtaW46MCxkZmx0OjFlMyxlZGl0VHlwZToiY2FsYyJ9LHNpemVyZWY6e3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6ImNhbGMiLG1pbjowLGRmbHQ6MX0sdGV4dDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGVkaXRUeXBlOiJjYWxjIn0saG92ZXJ0ZXh0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6ImNhbGMifSxob3ZlcnRlbXBsYXRlOmEoe2VkaXRUeXBlOiJjYWxjIn0se2tleXM6WyJ0dWJleCIsInR1YmV5IiwidHViZXoiLCJ0dWJldSIsInR1YmV2IiwidHViZXciLCJub3JtIiwiZGl2ZXJnZW5jZSJdfSksc2hvd2xlZ2VuZDpzKHt9LG8uc2hvd2xlZ2VuZCx7ZGZsdDohMX0pfTtzKGwsbigiIix7Y29sb3JBdHRyOiJ1L3YvdyBub3JtIixzaG93U2NhbGVEZmx0OiEwLGVkaXRUeXBlT3ZlcnJpZGU6ImNhbGMifSkpO1sib3BhY2l0eSIsImxpZ2h0cG9zaXRpb24iLCJsaWdodGluZyJdLmZvckVhY2goZnVuY3Rpb24odCl7bFt0XT1pW3RdfSksbC5ob3ZlcmluZm89cyh7fSxvLmhvdmVyaW5mbyx7ZWRpdFR5cGU6ImNhbGMiLGZsYWdzOlsieCIsInkiLCJ6IiwidSIsInYiLCJ3Iiwibm9ybSIsImRpdmVyZ2VuY2UiLCJ0ZXh0IiwibmFtZSJdLGRmbHQ6IngreSt6K25vcm0rdGV4dCtuYW1lIn0pLGwudHJhbnNmb3Jtcz12b2lkIDAsZS5leHBvcnRzPWx9LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiOjU5OSwiLi4vLi4vbGliL2V4dGVuZCI6NzA4LCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIjo3NjIsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjg0MSwiLi4vbWVzaDNkL2F0dHJpYnV0ZXMiOjEwNjF9XSwxMjI3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiKTtmdW5jdGlvbiBpKHQpe3ZhciBlLHIsYSxpLHMsbCxjLHUsaCxmLHAsZCxnPXQuX3gsdj10Ll95LG09dC5feix5PXQuX2xlbix4PS0xLzAsYj0xLzAsXz0tMS8wLHc9MS8wLGs9LTEvMCxUPTEvMCxNPSIiO2Zvcih5JiYoYz1nWzBdLGg9dlswXSxwPW1bMF0pLHk+MSYmKHU9Z1t5LTFdLGY9dlt5LTFdLGQ9bVt5LTFdKSxlPTA7ZTx5O2UrKyl4PU1hdGgubWF4KHgsZ1tlXSksYj1NYXRoLm1pbihiLGdbZV0pLF89TWF0aC5tYXgoXyx2W2VdKSx3PU1hdGgubWluKHcsdltlXSksaz1NYXRoLm1heChrLG1bZV0pLFQ9TWF0aC5taW4oVCxtW2VdKSxpfHxnW2VdPT09Y3x8KGk9ITAsTSs9IngiKSxzfHx2W2VdPT09aHx8KHM9ITAsTSs9InkiKSxsfHxtW2VdPT09cHx8KGw9ITAsTSs9InoiKTtpfHwoTSs9IngiKSxzfHwoTSs9InkiKSxsfHwoTSs9InoiKTt2YXIgQT1vKHQuX3gpLFM9byh0Ll95KSxFPW8odC5feik7TT0oTT0oTT1NLnJlcGxhY2UoIngiLChjPnU/Ii0iOiIrIikrIngiKSkucmVwbGFjZSgieSIsKGg+Zj8iLSI6IisiKSsieSIpKS5yZXBsYWNlKCJ6IiwocD5kPyItIjoiKyIpKyJ6Iik7dmFyIEw9ZnVuY3Rpb24oKXt5PTAsQT1bXSxTPVtdLEU9W119OygheXx8eTxBLmxlbmd0aCpTLmxlbmd0aCpFLmxlbmd0aCkmJkwoKTt2YXIgQz1mdW5jdGlvbih0KXtyZXR1cm4ieCI9PT10P2c6InkiPT09dD92Om19LFA9ZnVuY3Rpb24odCl7cmV0dXJuIngiPT09dD9BOiJ5Ij09PXQ/UzpFfSxPPWZ1bmN0aW9uKHQpe3JldHVybiB0W3ktMV08dFswXT8tMToxfSx6PUMoTVsxXSksST1DKE1bM10pLEQ9QyhNWzVdKSxSPVAoTVsxXSkubGVuZ3RoLEY9UChNWzNdKS5sZW5ndGgsQj1QKE1bNV0pLmxlbmd0aCxOPSExLGo9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBSKihGKnQrZSkrcn0sVj1PKEMoTVsxXSkpLFU9TyhDKE1bM10pKSxxPU8oQyhNWzVdKSk7Zm9yKGU9MDtlPEItMTtlKyspe2ZvcihyPTA7cjxGLTE7cisrKXtmb3IoYT0wO2E8Ui0xO2ErKyl7dmFyIEg9aihlLHIsYSksRz1qKGUscixhKzEpLFk9aihlLHIrMSxhKSxXPWooZSsxLHIsYSk7aWYoeltIXSpWPHpbR10qViYmSVtIXSpVPElbWV0qVSYmRFtIXSpxPERbV10qcXx8KE49ITApLE4pYnJlYWt9aWYoTilicmVha31pZihOKWJyZWFrfXJldHVybiBOJiYobi53YXJuKCJFbmNvdW50ZXJlZCBhcmJpdHJhcnkgY29vcmRpbmF0ZXMhIFVuYWJsZSB0byBpbnB1dCBkYXRhIGdyaWQuIiksTCgpKSx7eE1pbjpiLHlNaW46dyx6TWluOlQseE1heDp4LHlNYXg6Xyx6TWF4OmssWHM6QSxZczpTLFpzOkUsbGVuOnksZmlsbDpNfX1mdW5jdGlvbiBvKHQpe3JldHVybiBuLmRpc3RpbmN0VmFscyh0KS52YWxzfWZ1bmN0aW9uIHModCxlKXtpZih2b2lkIDA9PT1lJiYoZT10Lmxlbmd0aCksbi5pc1R5cGVkQXJyYXkodCkpcmV0dXJuIHQuc3ViYXJyYXkoMCxlKTtmb3IodmFyIHI9W10sYT0wO2E8ZTthKyspclthXT0rdFthXTtyZXR1cm4gcn1lLmV4cG9ydHM9e2NhbGM6ZnVuY3Rpb24odCxlKXtlLl9sZW49TWF0aC5taW4oZS51Lmxlbmd0aCxlLnYubGVuZ3RoLGUudy5sZW5ndGgsZS54Lmxlbmd0aCxlLnkubGVuZ3RoLGUuei5sZW5ndGgpLGUuX3U9cyhlLnUsZS5fbGVuKSxlLl92PXMoZS52LGUuX2xlbiksZS5fdz1zKGUudyxlLl9sZW4pLGUuX3g9cyhlLngsZS5fbGVuKSxlLl95PXMoZS55LGUuX2xlbiksZS5fej1zKGUueixlLl9sZW4pO3ZhciByPWkoZSk7ZS5fZ3JpZEZpbGw9ci5maWxsLGUuX1hzPXIuWHMsZS5fWXM9ci5ZcyxlLl9acz1yLlpzLGUuX2xlbj1yLmxlbjt2YXIgbixvLGwsYz0wO2Uuc3RhcnRzJiYobj1zKGUuc3RhcnRzLnh8fFtdKSxvPXMoZS5zdGFydHMueXx8W10pLGw9cyhlLnN0YXJ0cy56fHxbXSksYz1NYXRoLm1pbihuLmxlbmd0aCxvLmxlbmd0aCxsLmxlbmd0aCkpLGUuX3N0YXJ0c1g9bnx8W10sZS5fc3RhcnRzWT1vfHxbXSxlLl9zdGFydHNaPWx8fFtdO3ZhciB1LGg9MCxmPTEvMDtmb3IodT0wO3U8ZS5fbGVuO3UrKyl7dmFyIHA9ZS5fdVt1XSxkPWUuX3ZbdV0sZz1lLl93W3VdLHY9TWF0aC5zcXJ0KHAqcCtkKmQrZypnKTtoPU1hdGgubWF4KGgsdiksZj1NYXRoLm1pbihmLHYpfWZvcihhKHQsZSx7dmFsczpbZixoXSxjb250YWluZXJTdHI6IiIsY0xldHRlcjoiYyJ9KSx1PTA7dTxjO3UrKyl7dmFyIG09blt1XTtyLnhNYXg9TWF0aC5tYXgoci54TWF4LG0pLHIueE1pbj1NYXRoLm1pbihyLnhNaW4sbSk7dmFyIHk9b1t1XTtyLnlNYXg9TWF0aC5tYXgoci55TWF4LHkpLHIueU1pbj1NYXRoLm1pbihyLnlNaW4seSk7dmFyIHg9bFt1XTtyLnpNYXg9TWF0aC5tYXgoci56TWF4LHgpLHIuek1pbj1NYXRoLm1pbihyLnpNaW4seCl9ZS5fc2xlbj1jLGUuX25vcm1NYXg9aCxlLl94Ym5kcz1bci54TWluLHIueE1heF0sZS5feWJuZHM9W3IueU1pbixyLnlNYXhdLGUuX3pibmRzPVtyLnpNaW4sci56TWF4XX0sZmlsdGVyOnMscHJvY2Vzc0dyaWQ6aX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiOjYwMCwiLi4vLi4vbGliIjo3MTd9XSwxMjI4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImdsLXN0cmVhbXR1YmUzZCIpLGE9bi5jcmVhdGVUdWJlTWVzaCxpPXQoIi4uLy4uL2xpYiIpLG89dCgiLi4vLi4vbGliL2dsX2Zvcm1hdF9jb2xvciIpLnBhcnNlQ29sb3JTY2FsZSxzPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLmV4dHJhY3RPcHRzLGw9dCgiLi4vLi4vcGxvdHMvZ2wzZC96aXAzIiksYz17eGF4aXM6MCx5YXhpczoxLHpheGlzOjJ9O2Z1bmN0aW9uIHUodCxlKXt0aGlzLnNjZW5lPXQsdGhpcy51aWQ9ZSx0aGlzLm1lc2g9bnVsbCx0aGlzLmRhdGE9bnVsbH12YXIgaD11LnByb3RvdHlwZTtmdW5jdGlvbiBmKHQpe3ZhciBlPXQubGVuZ3RoO3JldHVybiBlPjI/dC5zbGljZSgxLGUtMSk6Mj09PWU/Wyh0WzBdK3RbMV0pLzJdOnR9ZnVuY3Rpb24gcCh0KXt2YXIgZT10Lmxlbmd0aDtyZXR1cm4gMT09PWU/Wy41LC41XTpbdFsxXS10WzBdLHRbZS0xXS10W2UtMl1dfWZ1bmN0aW9uIGQodCxlKXt2YXIgcj10LmZ1bGxTY2VuZUxheW91dCxhPXQuZGF0YVNjYWxlLHU9ZS5fbGVuLGg9e307ZnVuY3Rpb24gZCh0LGUpe3ZhciBuPXJbZV0sbz1hW2NbZV1dO3JldHVybiBpLnNpbXBsZU1hcCh0LGZ1bmN0aW9uKHQpe3JldHVybiBuLmQybCh0KSpvfSl9aWYoaC52ZWN0b3JzPWwoZChlLl91LCJ4YXhpcyIpLGQoZS5fdiwieWF4aXMiKSxkKGUuX3csInpheGlzIiksdSksIXUpcmV0dXJue3Bvc2l0aW9uczpbXSxjZWxsczpbXX07dmFyIGc9ZChlLl9YcywieGF4aXMiKSx2PWQoZS5fWXMsInlheGlzIiksbT1kKGUuX1pzLCJ6YXhpcyIpO2lmKGgubWVzaGdyaWQ9W2csdixtXSxoLmdyaWRGaWxsPWUuX2dyaWRGaWxsLGUuX3NsZW4paC5zdGFydGluZ1Bvc2l0aW9ucz1sKGQoZS5fc3RhcnRzWCwieGF4aXMiKSxkKGUuX3N0YXJ0c1ksInlheGlzIiksZChlLl9zdGFydHNaLCJ6YXhpcyIpKTtlbHNle2Zvcih2YXIgeT12WzBdLHg9ZihnKSxiPWYobSksXz1uZXcgQXJyYXkoeC5sZW5ndGgqYi5sZW5ndGgpLHc9MCxrPTA7azx4Lmxlbmd0aDtrKyspZm9yKHZhciBUPTA7VDxiLmxlbmd0aDtUKyspX1t3KytdPVt4W2tdLHksYltUXV07aC5zdGFydGluZ1Bvc2l0aW9ucz1ffWguY29sb3JtYXA9byhlKSxoLnR1YmVTaXplPWUuc2l6ZXJlZixoLm1heExlbmd0aD1lLm1heGRpc3BsYXllZDt2YXIgTT1kKGUuX3hibmRzLCJ4YXhpcyIpLEE9ZChlLl95Ym5kcywieWF4aXMiKSxTPWQoZS5femJuZHMsInpheGlzIiksRT1wKGcpLEw9cCh2KSxDPXAobSksUD1bW01bMF0tRVswXSxBWzBdLUxbMF0sU1swXS1DWzBdXSxbTVsxXStFWzFdLEFbMV0rTFsxXSxTWzFdK0NbMV1dXSxPPW4oaCxQKSx6PXMoZSk7Ty52ZXJ0ZXhJbnRlbnNpdHlCb3VuZHM9W3oubWluL2UuX25vcm1NYXgsei5tYXgvZS5fbm9ybU1heF07dmFyIEk9ZS5saWdodHBvc2l0aW9uO3JldHVybiBPLmxpZ2h0UG9zaXRpb249W0kueCxJLnksSS56XSxPLmFtYmllbnQ9ZS5saWdodGluZy5hbWJpZW50LE8uZGlmZnVzZT1lLmxpZ2h0aW5nLmRpZmZ1c2UsTy5zcGVjdWxhcj1lLmxpZ2h0aW5nLnNwZWN1bGFyLE8ucm91Z2huZXNzPWUubGlnaHRpbmcucm91Z2huZXNzLE8uZnJlc25lbD1lLmxpZ2h0aW5nLmZyZXNuZWwsTy5vcGFjaXR5PWUub3BhY2l0eSxlLl9wYWQ9Ty50dWJlU2NhbGUqZS5zaXplcmVmKjIsT31oLmhhbmRsZVBpY2s9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5zY2VuZS5mdWxsU2NlbmVMYXlvdXQscj10aGlzLnNjZW5lLmRhdGFTY2FsZTtmdW5jdGlvbiBuKHQsbil7dmFyIGE9ZVtuXSxpPXJbY1tuXV07cmV0dXJuIGEubDJjKHQpL2l9aWYodC5vYmplY3Q9PT10aGlzLm1lc2gpe3ZhciBhPXQuZGF0YS5wb3NpdGlvbixpPXQuZGF0YS52ZWxvY2l0eTtyZXR1cm4gdC50cmFjZUNvb3JkaW5hdGU9W24oYVswXSwieGF4aXMiKSxuKGFbMV0sInlheGlzIiksbihhWzJdLCJ6YXhpcyIpLG4oaVswXSwieGF4aXMiKSxuKGlbMV0sInlheGlzIiksbihpWzJdLCJ6YXhpcyIpLHQuZGF0YS5pbnRlbnNpdHkqdGhpcy5kYXRhLl9ub3JtTWF4LHQuZGF0YS5kaXZlcmdlbmNlXSx0LnRleHRMYWJlbD10aGlzLmRhdGEuaG92ZXJ0ZXh0fHx0aGlzLmRhdGEudGV4dCwhMH19LGgudXBkYXRlPWZ1bmN0aW9uKHQpe3RoaXMuZGF0YT10O3ZhciBlPWQodGhpcy5zY2VuZSx0KTt0aGlzLm1lc2gudXBkYXRlKGUpfSxoLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnNjZW5lLmdscGxvdC5yZW1vdmUodGhpcy5tZXNoKSx0aGlzLm1lc2guZGlzcG9zZSgpfSxlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10LmdscGxvdC5nbCxuPWQodCxlKSxpPWEocixuKSxvPW5ldyB1KHQsZS51aWQpO3JldHVybiBvLm1lc2g9aSxvLmRhdGE9ZSxpLl90cmFjZT1vLHQuZ2xwbG90LmFkZChpKSxvfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiOjYwNCwiLi4vLi4vbGliIjo3MTcsIi4uLy4uL2xpYi9nbF9mb3JtYXRfY29sb3IiOjcxNCwiLi4vLi4vcGxvdHMvZ2wzZC96aXAzIjo4MTYsImdsLXN0cmVhbXR1YmUzZCI6MzE1fV0sMTIyOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyIpLGk9dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8pe2Z1bmN0aW9uIHMocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLGkscixhKX12YXIgbD1zKCJ1IiksYz1zKCJ2IiksdT1zKCJ3IiksaD1zKCJ4IiksZj1zKCJ5IikscD1zKCJ6Iik7bCYmbC5sZW5ndGgmJmMmJmMubGVuZ3RoJiZ1JiZ1Lmxlbmd0aCYmaCYmaC5sZW5ndGgmJmYmJmYubGVuZ3RoJiZwJiZwLmxlbmd0aD8ocygic3RhcnRzLngiKSxzKCJzdGFydHMueSIpLHMoInN0YXJ0cy56IikscygibWF4ZGlzcGxheWVkIikscygic2l6ZXJlZiIpLHMoImxpZ2h0aW5nLmFtYmllbnQiKSxzKCJsaWdodGluZy5kaWZmdXNlIikscygibGlnaHRpbmcuc3BlY3VsYXIiKSxzKCJsaWdodGluZy5yb3VnaG5lc3MiKSxzKCJsaWdodGluZy5mcmVzbmVsIikscygibGlnaHRwb3NpdGlvbi54IikscygibGlnaHRwb3NpdGlvbi55IikscygibGlnaHRwb3NpdGlvbi56IiksYSh0LGUsbyxzLHtwcmVmaXg6IiIsY0xldHRlcjoiYyJ9KSxzKCJ0ZXh0IikscygiaG92ZXJ0ZXh0IikscygiaG92ZXJ0ZW1wbGF0ZSIpLGUuX2xlbmd0aD1udWxsKTplLnZpc2libGU9ITF9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyI6NjAyLCIuLi8uLi9saWIiOjcxNywiLi9hdHRyaWJ1dGVzIjoxMjI2fV0sMTIzMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e21vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJzdHJlYW10dWJlIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9nbDNkIiksY2F0ZWdvcmllczpbImdsM2QiLCJzaG93TGVnZW5kIl0sYXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY29sb3JiYXI6e21pbjoiY21pbiIsbWF4OiJjbWF4In0sY2FsYzp0KCIuL2NhbGMiKS5jYWxjLHBsb3Q6dCgiLi9jb252ZXJ0IiksZXZlbnREYXRhOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQudHViZXg9dC54LHQudHViZXk9dC55LHQudHViZXo9dC56LHQudHViZXU9ZS50cmFjZUNvb3JkaW5hdGVbM10sdC50dWJldj1lLnRyYWNlQ29vcmRpbmF0ZVs0XSx0LnR1YmV3PWUudHJhY2VDb29yZGluYXRlWzVdLHQubm9ybT1lLnRyYWNlQ29vcmRpbmF0ZVs2XSx0LmRpdmVyZ2VuY2U9ZS50cmFjZUNvb3JkaW5hdGVbN10sZGVsZXRlIHQueCxkZWxldGUgdC55LGRlbGV0ZSB0LnosdH0sbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvZ2wzZCI6ODA1LCIuL2F0dHJpYnV0ZXMiOjEyMjYsIi4vY2FsYyI6MTIyNywiLi9jb252ZXJ0IjoxMjI4LCIuL2RlZmF1bHRzIjoxMjI5fV0sMTIzMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikuaG92ZXJ0ZW1wbGF0ZUF0dHJzLGk9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLnRleHR0ZW1wbGF0ZUF0dHJzLG89dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL3Bsb3RzL2RvbWFpbiIpLmF0dHJpYnV0ZXMsbD10KCIuLi9waWUvYXR0cmlidXRlcyIpLGM9dCgiLi9jb25zdGFudHMiKSx1PXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0O2UuZXhwb3J0cz17bGFiZWxzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHBhcmVudHM6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sdmFsdWVzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGJyYW5jaHZhbHVlczp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsicmVtYWluZGVyIiwidG90YWwiXSxkZmx0OiJyZW1haW5kZXIiLGVkaXRUeXBlOiJjYWxjIn0sY291bnQ6e3ZhbFR5cGU6ImZsYWdsaXN0IixmbGFnczpbImJyYW5jaGVzIiwibGVhdmVzIl0sZGZsdDoibGVhdmVzIixlZGl0VHlwZToiY2FsYyJ9LGxldmVsOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJwbG90IixhbmltOiEwfSxtYXhkZXB0aDp7dmFsVHlwZToiaW50ZWdlciIsZWRpdFR5cGU6InBsb3QiLGRmbHQ6LTF9LG1hcmtlcjp1KHtjb2xvcnM6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sbGluZTp7Y29sb3I6dSh7fSxsLm1hcmtlci5saW5lLmNvbG9yLHtkZmx0Om51bGx9KSx3aWR0aDp1KHt9LGwubWFya2VyLmxpbmUud2lkdGgse2RmbHQ6MX0pLGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMifSxvKCJtYXJrZXIiLHtjb2xvckF0dHI6ImNvbG9ycyIsYW5pbTohMX0pKSxsZWFmOntvcGFjaXR5Ont2YWxUeXBlOiJudW1iZXIiLGVkaXRUeXBlOiJzdHlsZSIsbWluOjAsbWF4OjF9LGVkaXRUeXBlOiJwbG90In0sdGV4dDpsLnRleHQsdGV4dGluZm86e3ZhbFR5cGU6ImZsYWdsaXN0IixmbGFnczpbImxhYmVsIiwidGV4dCIsInZhbHVlIiwiY3VycmVudCBwYXRoIiwicGVyY2VudCByb290IiwicGVyY2VudCBlbnRyeSIsInBlcmNlbnQgcGFyZW50Il0sZXh0cmFzOlsibm9uZSJdLGVkaXRUeXBlOiJwbG90In0sdGV4dHRlbXBsYXRlOmkoe2VkaXRUeXBlOiJwbG90In0se2tleXM6Yy5ldmVudERhdGFLZXlzLmNvbmNhdChbImxhYmVsIiwidmFsdWUiXSl9KSxob3ZlcnRleHQ6bC5ob3ZlcnRleHQsaG92ZXJpbmZvOnUoe30sbi5ob3ZlcmluZm8se2ZsYWdzOlsibGFiZWwiLCJ0ZXh0IiwidmFsdWUiLCJuYW1lIiwiY3VycmVudCBwYXRoIiwicGVyY2VudCByb290IiwicGVyY2VudCBlbnRyeSIsInBlcmNlbnQgcGFyZW50Il0sZGZsdDoibGFiZWwrdGV4dCt2YWx1ZStuYW1lIn0pLGhvdmVydGVtcGxhdGU6YSh7fSx7a2V5czpjLmV2ZW50RGF0YUtleXN9KSx0ZXh0Zm9udDpsLnRleHRmb250LGluc2lkZXRleHRvcmllbnRhdGlvbjpsLmluc2lkZXRleHRvcmllbnRhdGlvbixpbnNpZGV0ZXh0Zm9udDpsLmluc2lkZXRleHRmb250LG91dHNpZGV0ZXh0Zm9udDp1KHt9LGwub3V0c2lkZXRleHRmb250LHt9KSxkb21haW46cyh7bmFtZToic3VuYnVyc3QiLHRyYWNlOiEwLGVkaXRUeXBlOiJjYWxjIn0pfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6NTk5LCIuLi8uLi9saWIvZXh0ZW5kIjo3MDgsIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiOjc2MiwiLi4vLi4vcGxvdHMvZG9tYWluIjo3OTAsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjg0MSwiLi4vcGllL2F0dHJpYnV0ZXMiOjEwOTQsIi4vY29uc3RhbnRzIjoxMjM0fV0sMTIzMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9wbG90cyIpO3IubmFtZT0ic3VuYnVyc3QiLHIucGxvdD1mdW5jdGlvbih0LGUsYSxpKXtuLnBsb3RCYXNlUGxvdChyLm5hbWUsdCxlLGEsaSl9LHIuY2xlYW49ZnVuY3Rpb24odCxlLGEsaSl7bi5jbGVhbkJhc2VQbG90KHIubmFtZSx0LGUsYSxpKX19LHsiLi4vLi4vcGxvdHMvcGxvdHMiOjgyNn1dLDEyMzM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMtaGllcmFyY2h5IiksYT10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiLi4vLi4vbGliIiksbz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiKS5tYWtlQ29sb3JTY2FsZUZ1bmNGcm9tVHJhY2Uscz10KCIuLi9waWUvY2FsYyIpLm1ha2VQdWxsQ29sb3JGbixsPXQoIi4uL3BpZS9jYWxjIikuZ2VuZXJhdGVFeHRlbmRlZENvbG9ycyxjPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLmNhbGMsdT10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQUxNT1NUX0VRVUFMLGg9e30sZj17fTtyLmNhbGM9ZnVuY3Rpb24odCxlKXt2YXIgcixsLGgsZixwLGQsZz10Ll9mdWxsTGF5b3V0LHY9ZS5pZHMsbT1pLmlzQXJyYXlPclR5cGVkQXJyYXkodikseT1lLmxhYmVscyx4PWUucGFyZW50cyxiPWUudmFsdWVzLF89aS5pc0FycmF5T3JUeXBlZEFycmF5KGIpLHc9W10saz17fSxUPXt9LE09ZnVuY3Rpb24odCl7cmV0dXJuIHR8fCJudW1iZXIiPT10eXBlb2YgdH0sQT1mdW5jdGlvbih0KXtyZXR1cm4hX3x8YShiW3RdKSYmYlt0XT49MH07bT8ocj1NYXRoLm1pbih2Lmxlbmd0aCx4Lmxlbmd0aCksbD1mdW5jdGlvbih0KXtyZXR1cm4gTSh2W3RdKSYmQSh0KX0saD1mdW5jdGlvbih0KXtyZXR1cm4gU3RyaW5nKHZbdF0pfSk6KHI9TWF0aC5taW4oeS5sZW5ndGgseC5sZW5ndGgpLGw9ZnVuY3Rpb24odCl7cmV0dXJuIE0oeVt0XSkmJkEodCl9LGg9ZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZyh5W3RdKX0pLF8mJihyPU1hdGgubWluKHIsYi5sZW5ndGgpKTtmb3IodmFyIFM9MDtTPHI7UysrKWlmKGwoUykpe3ZhciBFPWgoUyksTD1NKHhbU10pP1N0cmluZyh4W1NdKToiIixDPXtpOlMsaWQ6RSxwaWQ6TCxsYWJlbDpNKHlbU10pP1N0cmluZyh5W1NdKToiIn07XyYmKEMudj0rYltTXSksdy5wdXNoKEMpLHA9RSxrW2Y9TF0/a1tmXS5wdXNoKHApOmtbZl09W3BdLFRbcF09MX1pZihrWyIiXSl7aWYoa1siIl0ubGVuZ3RoPjEpe2Zvcih2YXIgUD1pLnJhbmRzdHIoKSxPPTA7Tzx3Lmxlbmd0aDtPKyspIiI9PT13W09dLnBpZCYmKHdbT10ucGlkPVApO3cudW5zaGlmdCh7aGFzTXVsdGlwbGVSb290czohMCxpZDpQLHBpZDoiIixsYWJlbDoiIn0pfX1lbHNle3ZhciB6LEk9W107Zm9yKHogaW4gaylUW3pdfHxJLnB1c2goeik7aWYoMSE9PUkubGVuZ3RoKXJldHVybiBpLndhcm4oIk11bHRpcGxlIGltcGxpZWQgcm9vdHMsIGNhbm5vdCBidWlsZCAiK2UudHlwZSsiIGhpZXJhcmNoeS4iKTt6PUlbMF0sdy51bnNoaWZ0KHtoYXNJbXBsaWVkUm9vdDohMCxpZDp6LHBpZDoiIixsYWJlbDp6fSl9dHJ5e2Q9bi5zdHJhdGlmeSgpLmlkKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkfSkucGFyZW50SWQoZnVuY3Rpb24odCl7cmV0dXJuIHQucGlkfSkodyl9Y2F0Y2godCl7cmV0dXJuIGkud2FybigiRmFpbGVkIHRvIGJ1aWxkICIrZS50eXBlKyIgaGllcmFyY2h5LiBFcnJvcjogIit0Lm1lc3NhZ2UpfXZhciBEPW4uaGllcmFyY2h5KGQpLFI9ITE7aWYoXylzd2l0Y2goZS5icmFuY2h2YWx1ZXMpe2Nhc2UicmVtYWluZGVyIjpELnN1bShmdW5jdGlvbih0KXtyZXR1cm4gdC5kYXRhLnZ9KTticmVhaztjYXNlInRvdGFsIjpELmVhY2goZnVuY3Rpb24odCl7dmFyIGU9dC5kYXRhLmRhdGEscj1lLnY7aWYodC5jaGlsZHJlbil7dmFyIG49dC5jaGlsZHJlbi5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlLmRhdGEuZGF0YS52fSwwKTtpZigoZS5oYXNJbXBsaWVkUm9vdHx8ZS5oYXNNdWx0aXBsZVJvb3RzKSYmKHI9bikscjxuKnUpcmV0dXJuIFI9ITAsaS53YXJuKFsiVG90YWwgdmFsdWUgZm9yIG5vZGUiLHQuZGF0YS5kYXRhLmlkLCJpcyBzbWFsbGVyIHRoYW4gdGhlIHN1bSBvZiBpdHMgY2hpbGRyZW4uIiwiXG5wYXJlbnQgdmFsdWUgPSIsciwiXG5jaGlsZHJlbiBzdW0gPSIsbl0uam9pbigiICIpKX10LnZhbHVlPXJ9KX1lbHNlIWZ1bmN0aW9uIHQoZSxyLG4pe3ZhciBhPTA7dmFyIGk9ZS5jaGlsZHJlbjtpZihpKXtmb3IodmFyIG89aS5sZW5ndGgscz0wO3M8bztzKyspYSs9dChpW3NdLHIsbik7bi5icmFuY2hlcyYmYSsrfWVsc2Ugbi5sZWF2ZXMmJmErKztlLnZhbHVlPWUuZGF0YS5kYXRhLnZhbHVlPWE7ci5fdmFsdWVzfHwoci5fdmFsdWVzPVtdKTtyLl92YWx1ZXNbZS5kYXRhLmRhdGEuaV09YTtyZXR1cm4gYX0oRCxlLHticmFuY2hlczotMSE9PWUuY291bnQuaW5kZXhPZigiYnJhbmNoZXMiKSxsZWF2ZXM6LTEhPT1lLmNvdW50LmluZGV4T2YoImxlYXZlcyIpfSk7aWYoIVIpe3ZhciBGLEI7RC5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUudmFsdWUtdC52YWx1ZX0pO3ZhciBOPWUubWFya2VyLmNvbG9yc3x8W10saj0hIU4ubGVuZ3RoO3JldHVybiBlLl9oYXNDb2xvcnNjYWxlPyhqfHwoTj1fP2UudmFsdWVzOmUuX3ZhbHVlcyksYyh0LGUse3ZhbHM6Tixjb250YWluZXJTdHI6Im1hcmtlciIsY0xldHRlcjoiYyJ9KSxCPW8oZS5tYXJrZXIpKTpGPXMoZ1siXyIrZS50eXBlKyJjb2xvcm1hcCJdKSxELmVhY2goZnVuY3Rpb24odCl7dmFyIHI9dC5kYXRhLmRhdGE7ci5jb2xvcj1lLl9oYXNDb2xvcnNjYWxlP0IoTltyLmldKTpGKE5bci5pXSxyLmlkKX0pLHdbMF0uaGllcmFyY2h5PUQsd319LHIuX3J1bkNyb3NzVHJhY2VDYWxjPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5fZnVsbExheW91dCxuPWUuY2FsY2RhdGEsYT1yW3QrImNvbG9yd2F5Il0saT1yWyJfIit0KyJjb2xvcm1hcCJdO3JbImV4dGVuZCIrdCsiY29sb3JzIl0mJihhPWwoYSwidHJlZW1hcCI9PT10P2Y6aCkpO3ZhciBvPTA7ZnVuY3Rpb24gcyh0KXt2YXIgZT10LmRhdGEuZGF0YSxyPWUuaWQ7ITE9PT1lLmNvbG9yJiYoaVtyXT9lLmNvbG9yPWlbcl06dC5wYXJlbnQ/dC5wYXJlbnQucGFyZW50P2UuY29sb3I9dC5wYXJlbnQuZGF0YS5kYXRhLmNvbG9yOihpW3JdPWUuY29sb3I9YVtvJWEubGVuZ3RoXSxvKyspOmUuY29sb3I9InJnYmEoMCwwLDAsMCkiKX1mb3IodmFyIGM9MDtjPG4ubGVuZ3RoO2MrKyl7dmFyIHU9bltjXVswXTt1LnRyYWNlLnR5cGU9PT10JiZ1LmhpZXJhcmNoeSYmdS5oaWVyYXJjaHkuZWFjaChzKX19LHIuY3Jvc3NUcmFjZUNhbGM9ZnVuY3Rpb24odCl7cmV0dXJuIHIuX3J1bkNyb3NzVHJhY2VDYWxjKCJzdW5idXJzdCIsdCl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSI6NjA0LCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo2OTMsIi4uLy4uL2xpYiI6NzE3LCIuLi9waWUvY2FsYyI6MTA5NiwiZDMtaGllcmFyY2h5IjoxNTksImZhc3QtaXNudW1lcmljIjoyMjh9XSwxMjM0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17Q0xJQ0tfVFJBTlNJVElPTl9USU1FOjc1MCxDTElDS19UUkFOU0lUSU9OX0VBU0lORzoibGluZWFyIixldmVudERhdGFLZXlzOlsiY3VycmVudFBhdGgiLCJyb290IiwiZW50cnkiLCJwZXJjZW50Um9vdCIsInBlcmNlbnRFbnRyeSIsInBlcmNlbnRQYXJlbnQiXX19LHt9XSwxMjM1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9wbG90cy9kb21haW4iKS5kZWZhdWx0cyxvPXQoIi4uL2Jhci9kZWZhdWx0cyIpLmhhbmRsZVRleHQscz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiKSxsPXMuaGFzQ29sb3JzY2FsZSxjPXMuaGFuZGxlRGVmYXVsdHM7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMpe2Z1bmN0aW9uIHUocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGEscixpKX12YXIgaD11KCJsYWJlbHMiKSxmPXUoInBhcmVudHMiKTtpZihoJiZoLmxlbmd0aCYmZiYmZi5sZW5ndGgpe3ZhciBwPXUoInZhbHVlcyIpO3AmJnAubGVuZ3RoP3UoImJyYW5jaHZhbHVlcyIpOnUoImNvdW50IiksdSgibGV2ZWwiKSx1KCJtYXhkZXB0aCIpLHUoIm1hcmtlci5saW5lLndpZHRoIikmJnUoIm1hcmtlci5saW5lLmNvbG9yIixzLnBhcGVyX2JnY29sb3IpLHUoIm1hcmtlci5jb2xvcnMiKTt2YXIgZD1lLl9oYXNDb2xvcnNjYWxlPWwodCwibWFya2VyIiwiY29sb3JzIil8fCh0Lm1hcmtlcnx8e30pLmNvbG9yYXhpcztkJiZjKHQsZSxzLHUse3ByZWZpeDoibWFya2VyLiIsY0xldHRlcjoiYyJ9KSx1KCJsZWFmLm9wYWNpdHkiLGQ/MTouNyk7dmFyIGc9dSgidGV4dCIpO3UoInRleHR0ZW1wbGF0ZSIpLGUudGV4dHRlbXBsYXRlfHx1KCJ0ZXh0aW5mbyIsQXJyYXkuaXNBcnJheShnKT8idGV4dCtsYWJlbCI6ImxhYmVsIiksdSgiaG92ZXJ0ZXh0IiksdSgiaG92ZXJ0ZW1wbGF0ZSIpO28odCxlLHMsdSwiYXV0byIse21vZHVsZUhhc1NlbGVjdGVkOiExLG1vZHVsZUhhc1Vuc2VsZWN0ZWQ6ITEsbW9kdWxlSGFzQ29uc3RyYWluOiExLG1vZHVsZUhhc0NsaXBvbmF4aXM6ITEsbW9kdWxlSGFzVGV4dGFuZ2xlOiExLG1vZHVsZUhhc0luc2lkZWFuY2hvcjohMX0pLHUoImluc2lkZXRleHRvcmllbnRhdGlvbiIpLGkoZSxzLHUpLGUuX2xlbmd0aD1udWxsfWVsc2UgZS52aXNpYmxlPSExfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiOjYwNCwiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3Bsb3RzL2RvbWFpbiI6NzkwLCIuLi9iYXIvZGVmYXVsdHMiOjg2MCwiLi9hdHRyaWJ1dGVzIjoxMjMxfV0sMTIzNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGE9dCgiLi4vLi4vcmVnaXN0cnkiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvZngvaGVscGVycyIpLmFwcGVuZEFycmF5UG9pbnRWYWx1ZSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvZngiKSxzPXQoIi4uLy4uL2xpYiIpLGw9dCgiLi4vLi4vbGliL2V2ZW50cyIpLGM9dCgiLi9oZWxwZXJzIiksdT10KCIuLi9waWUvaGVscGVycyIpLmZvcm1hdFBpZVZhbHVlO2Z1bmN0aW9uIGgodCxlLHIpe2Zvcih2YXIgbj10LmRhdGEuZGF0YSxhPXtjdXJ2ZU51bWJlcjplLmluZGV4LHBvaW50TnVtYmVyOm4uaSxkYXRhOmUuX2lucHV0LGZ1bGxEYXRhOmV9LG89MDtvPHIubGVuZ3RoO28rKyl7dmFyIHM9cltvXTtzIGluIHQmJihhW3NdPXRbc10pfXJldHVybiJwYXJlbnRTdHJpbmciaW4gdCYmIWMuaXNIaWVyYXJjaHlSb290KHQpJiYoYS5wYXJlbnQ9dC5wYXJlbnRTdHJpbmcpLGkoYSxlLG4uaSksYX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaSxmKXt2YXIgcD1pWzBdLGQ9cC50cmFjZSxnPXAuaGllcmFyY2h5LHY9InN1bmJ1cnN0Ij09PWQudHlwZSxtPSJ0cmVlbWFwIj09PWQudHlwZTsiX2hhc0hvdmVyTGFiZWwiaW4gZHx8KGQuX2hhc0hvdmVyTGFiZWw9ITEpLCJfaGFzSG92ZXJFdmVudCJpbiBkfHwoZC5faGFzSG92ZXJFdmVudD0hMSk7dC5vbigibW91c2VvdmVyIixmdW5jdGlvbihhKXt2YXIgaT1yLl9mdWxsTGF5b3V0O2lmKCFyLl9kcmFnZ2luZyYmITEhPT1pLmhvdmVybW9kZSl7dmFyIGw9ci5fZnVsbERhdGFbZC5pbmRleF0seT1hLmRhdGEuZGF0YSx4PXkuaSxiPWMuaXNIaWVyYXJjaHlSb290KGEpLF89Yy5nZXRQYXJlbnQoZyxhKSx3PWMuZ2V0VmFsdWUoYSksaz1mdW5jdGlvbih0KXtyZXR1cm4gcy5jYXN0T3B0aW9uKGwseCx0KX0sVD1rKCJob3ZlcnRlbXBsYXRlIiksTT1vLmNhc3RIb3ZlcmluZm8obCxpLHgpLEE9aS5zZXBhcmF0b3JzO2lmKFR8fE0mJiJub25lIiE9PU0mJiJza2lwIiE9PU0pe3ZhciBTLEU7diYmKFM9cC5jeCthLnB4bWlkWzBdKigxLWEuckluc2NyaWJlZCksRT1wLmN5K2EucHhtaWRbMV0qKDEtYS5ySW5zY3JpYmVkKSksbSYmKFM9YS5faG92ZXJYLEU9YS5faG92ZXJZKTt2YXIgTCxDPXt9LFA9W10sTz1bXSx6PWZ1bmN0aW9uKHQpe3JldHVybi0xIT09UC5pbmRleE9mKHQpfTtNJiYoUD0iYWxsIj09PU0/bC5fbW9kdWxlLmF0dHJpYnV0ZXMuaG92ZXJpbmZvLmZsYWdzOk0uc3BsaXQoIisiKSksQy5sYWJlbD15LmxhYmVsLHooImxhYmVsIikmJkMubGFiZWwmJk8ucHVzaChDLmxhYmVsKSx5Lmhhc093blByb3BlcnR5KCJ2IikmJihDLnZhbHVlPXkudixDLnZhbHVlTGFiZWw9dShDLnZhbHVlLEEpLHooInZhbHVlIikmJk8ucHVzaChDLnZhbHVlTGFiZWwpKSxDLmN1cnJlbnRQYXRoPWEuY3VycmVudFBhdGg9Yy5nZXRQYXRoKGEuZGF0YSkseigiY3VycmVudCBwYXRoIikmJiFiJiZPLnB1c2goQy5jdXJyZW50UGF0aCk7dmFyIEk9W10sRD1mdW5jdGlvbigpey0xPT09SS5pbmRleE9mKEwpJiYoTy5wdXNoKEwpLEkucHVzaChMKSl9O0MucGVyY2VudFBhcmVudD1hLnBlcmNlbnRQYXJlbnQ9dy9jLmdldFZhbHVlKF8pLEMucGFyZW50PWEucGFyZW50U3RyaW5nPWMuZ2V0UHRMYWJlbChfKSx6KCJwZXJjZW50IHBhcmVudCIpJiYoTD1jLmZvcm1hdFBlcmNlbnQoQy5wZXJjZW50UGFyZW50LEEpKyIgb2YgIitDLnBhcmVudCxEKCkpLEMucGVyY2VudEVudHJ5PWEucGVyY2VudEVudHJ5PXcvYy5nZXRWYWx1ZShlKSxDLmVudHJ5PWEuZW50cnk9Yy5nZXRQdExhYmVsKGUpLCF6KCJwZXJjZW50IGVudHJ5Iil8fGJ8fGEub25QYXRoYmFyfHwoTD1jLmZvcm1hdFBlcmNlbnQoQy5wZXJjZW50RW50cnksQSkrIiBvZiAiK0MuZW50cnksRCgpKSxDLnBlcmNlbnRSb290PWEucGVyY2VudFJvb3Q9dy9jLmdldFZhbHVlKGcpLEMucm9vdD1hLnJvb3Q9Yy5nZXRQdExhYmVsKGcpLHooInBlcmNlbnQgcm9vdCIpJiYhYiYmKEw9Yy5mb3JtYXRQZXJjZW50KEMucGVyY2VudFJvb3QsQSkrIiBvZiAiK0Mucm9vdCxEKCkpLEMudGV4dD1rKCJob3ZlcnRleHQiKXx8aygidGV4dCIpLHooInRleHQiKSYmKEw9Qy50ZXh0LHMuaXNWYWxpZFRleHRWYWx1ZShMKSYmTy5wdXNoKEwpKTt2YXIgUj17dHJhY2U6bCx5OkUsdGV4dDpPLmpvaW4oIjxicj4iKSxuYW1lOlR8fHooIm5hbWUiKT9sLm5hbWU6dm9pZCAwLGNvbG9yOmsoImhvdmVybGFiZWwuYmdjb2xvciIpfHx5LmNvbG9yLGJvcmRlckNvbG9yOmsoImhvdmVybGFiZWwuYm9yZGVyY29sb3IiKSxmb250RmFtaWx5OmsoImhvdmVybGFiZWwuZm9udC5mYW1pbHkiKSxmb250U2l6ZTprKCJob3ZlcmxhYmVsLmZvbnQuc2l6ZSIpLGZvbnRDb2xvcjprKCJob3ZlcmxhYmVsLmZvbnQuY29sb3IiKSxuYW1lTGVuZ3RoOmsoImhvdmVybGFiZWwubmFtZWxlbmd0aCIpLHRleHRBbGlnbjprKCJob3ZlcmxhYmVsLmFsaWduIiksaG92ZXJ0ZW1wbGF0ZTpULGhvdmVydGVtcGxhdGVMYWJlbHM6QyxldmVudERhdGE6W2goYSxsLGYuZXZlbnREYXRhS2V5cyldfTt2JiYoUi54MD1TLWEuckluc2NyaWJlZCphLnJweDEsUi54MT1TK2Euckluc2NyaWJlZCphLnJweDEsUi5pZGVhbEFsaWduPWEucHhtaWRbMF08MD8ibGVmdCI6InJpZ2h0IiksbSYmKFIueD1TLFIuaWRlYWxBbGlnbj1TPDA/ImxlZnQiOiJyaWdodCIpLG8ubG9uZUhvdmVyKFIse2NvbnRhaW5lcjppLl9ob3ZlcmxheWVyLm5vZGUoKSxvdXRlckNvbnRhaW5lcjppLl9wYXBlci5ub2RlKCksZ2Q6cn0pLGQuX2hhc0hvdmVyTGFiZWw9ITB9aWYobSl7dmFyIEY9dC5zZWxlY3QoInBhdGguc3VyZmFjZSIpO2Yuc3R5bGVPbmUoRixhLGwse2hvdmVyZWQ6ITB9KX1kLl9oYXNIb3ZlckV2ZW50PSEwLHIuZW1pdCgicGxvdGx5X2hvdmVyIix7cG9pbnRzOltoKGEsbCxmLmV2ZW50RGF0YUtleXMpXSxldmVudDpuLmV2ZW50fSl9fSksdC5vbigibW91c2VvdXQiLGZ1bmN0aW9uKGUpe3ZhciBhPXIuX2Z1bGxMYXlvdXQsaT1yLl9mdWxsRGF0YVtkLmluZGV4XSxzPW4uc2VsZWN0KHRoaXMpLmRhdHVtKCk7aWYoZC5faGFzSG92ZXJFdmVudCYmKGUub3JpZ2luYWxFdmVudD1uLmV2ZW50LHIuZW1pdCgicGxvdGx5X3VuaG92ZXIiLHtwb2ludHM6W2gocyxpLGYuZXZlbnREYXRhS2V5cyldLGV2ZW50Om4uZXZlbnR9KSxkLl9oYXNIb3ZlckV2ZW50PSExKSxkLl9oYXNIb3ZlckxhYmVsJiYoby5sb25lVW5ob3ZlcihhLl9ob3ZlcmxheWVyLm5vZGUoKSksZC5faGFzSG92ZXJMYWJlbD0hMSksbSl7dmFyIGw9dC5zZWxlY3QoInBhdGguc3VyZmFjZSIpO2Yuc3R5bGVPbmUobCxzLGkse2hvdmVyZWQ6ITF9KX19KSx0Lm9uKCJjbGljayIsZnVuY3Rpb24odCl7dmFyIGU9ci5fZnVsbExheW91dCxpPXIuX2Z1bGxEYXRhW2QuaW5kZXhdLHM9diYmKGMuaXNIaWVyYXJjaHlSb290KHQpfHxjLmlzTGVhZih0KSksdT1jLmdldFB0SWQodCkscD1jLmlzRW50cnkodCk/Yy5maW5kRW50cnlXaXRoQ2hpbGQoZyx1KTpjLmZpbmRFbnRyeVdpdGhMZXZlbChnLHUpLG09Yy5nZXRQdElkKHApLHk9e3BvaW50czpbaCh0LGksZi5ldmVudERhdGFLZXlzKV0sZXZlbnQ6bi5ldmVudH07c3x8KHkubmV4dExldmVsPW0pO3ZhciB4PWwudHJpZ2dlckhhbmRsZXIociwicGxvdGx5XyIrZC50eXBlKyJjbGljayIseSk7aWYoITEhPT14JiZlLmhvdmVybW9kZSYmKHIuX2hvdmVyZGF0YT1baCh0LGksZi5ldmVudERhdGFLZXlzKV0sby5jbGljayhyLG4uZXZlbnQpKSwhcyYmITEhPT14JiYhci5fZHJhZ2dpbmcmJiFyLl90cmFuc2l0aW9uaW5nKXthLmNhbGwoIl9zdG9yZURpcmVjdEdVSUVkaXQiLGksZS5fdHJhY2VQcmVHVUlbaS51aWRdLHtsZXZlbDppLmxldmVsfSk7dmFyIGI9e2RhdGE6W3tsZXZlbDptfV0sdHJhY2VzOltkLmluZGV4XX0sXz17ZnJhbWU6e3JlZHJhdzohMSxkdXJhdGlvbjpmLnRyYW5zaXRpb25UaW1lfSx0cmFuc2l0aW9uOntkdXJhdGlvbjpmLnRyYW5zaXRpb25UaW1lLGVhc2luZzpmLnRyYW5zaXRpb25FYXNpbmd9LG1vZGU6ImltbWVkaWF0ZSIsZnJvbWN1cnJlbnQ6ITB9O28ubG9uZVVuaG92ZXIoZS5faG92ZXJsYXllci5ub2RlKCkpLGEuY2FsbCgiYW5pbWF0ZSIscixiLF8pfX0pfX0seyIuLi8uLi9jb21wb25lbnRzL2Z4Ijo2MzAsIi4uLy4uL2NvbXBvbmVudHMvZngvaGVscGVycyI6NjI3LCIuLi8uLi9saWIiOjcxNywiLi4vLi4vbGliL2V2ZW50cyI6NzA3LCIuLi8uLi9yZWdpc3RyeSI6ODQ2LCIuLi9waWUvaGVscGVycyI6MTA5OSwiLi9oZWxwZXJzIjoxMjM3LGQzOjE2NX1dLDEyMzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksaT10KCIuLi8uLi9saWIvc2V0Y3Vyc29yIiksbz10KCIuLi9waWUvaGVscGVycyIpO2Z1bmN0aW9uIHModCl7cmV0dXJuIHQuZGF0YS5kYXRhLnBpZH1yLmZpbmRFbnRyeVdpdGhMZXZlbD1mdW5jdGlvbih0LGUpe3ZhciBuO3JldHVybiBlJiZ0LmVhY2hBZnRlcihmdW5jdGlvbih0KXtpZihyLmdldFB0SWQodCk9PT1lKXJldHVybiBuPXQuY29weSgpfSksbnx8dH0sci5maW5kRW50cnlXaXRoQ2hpbGQ9ZnVuY3Rpb24odCxlKXt2YXIgbjtyZXR1cm4gdC5lYWNoQWZ0ZXIoZnVuY3Rpb24odCl7Zm9yKHZhciBhPXQuY2hpbGRyZW58fFtdLGk9MDtpPGEubGVuZ3RoO2krKyl7dmFyIG89YVtpXTtpZihyLmdldFB0SWQobyk9PT1lKXJldHVybiBuPXQuY29weSgpfX0pLG58fHR9LHIuaXNFbnRyeT1mdW5jdGlvbih0KXtyZXR1cm4hdC5wYXJlbnR9LHIuaXNMZWFmPWZ1bmN0aW9uKHQpe3JldHVybiF0LmNoaWxkcmVufSxyLmdldFB0SWQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQuZGF0YS5kYXRhLmlkfSxyLmdldFB0TGFiZWw9ZnVuY3Rpb24odCl7cmV0dXJuIHQuZGF0YS5kYXRhLmxhYmVsfSxyLmdldFZhbHVlPWZ1bmN0aW9uKHQpe3JldHVybiB0LnZhbHVlfSxyLmlzSGllcmFyY2h5Um9vdD1mdW5jdGlvbih0KXtyZXR1cm4iIj09PXModCl9LHIuc2V0U2xpY2VDdXJzb3I9ZnVuY3Rpb24odCxlLG4pe3ZhciBhPW4uaXNUcmFuc2l0aW9uaW5nO2lmKCFhKXt2YXIgbz10LmRhdHVtKCk7YT1uLmhpZGVPblJvb3QmJnIuaXNIaWVyYXJjaHlSb290KG8pfHxuLmhpZGVPbkxlYXZlcyYmci5pc0xlYWYobyl9aSh0LGE/bnVsbDoicG9pbnRlciIpfSxyLmdldEluc2lkZVRleHRGb250S2V5PWZ1bmN0aW9uKHQsZSxyLGEsaSl7dmFyIG89KGl8fHt9KS5vblBhdGhiYXI/InBhdGhiYXIudGV4dGZvbnQiOiJpbnNpZGV0ZXh0Zm9udCIscz1yLmRhdGEuZGF0YS5pO3JldHVybiBuLmNhc3RPcHRpb24oZSxzLG8rIi4iK3QpfHxuLmNhc3RPcHRpb24oZSxzLCJ0ZXh0Zm9udC4iK3QpfHxhLnNpemV9LHIuZ2V0T3V0c2lkZVRleHRGb250S2V5PWZ1bmN0aW9uKHQsZSxyLGEpe3ZhciBpPXIuZGF0YS5kYXRhLmk7cmV0dXJuIG4uY2FzdE9wdGlvbihlLGksIm91dHNpZGV0ZXh0Zm9udC4iK3QpfHxuLmNhc3RPcHRpb24oZSxpLCJ0ZXh0Zm9udC4iK3QpfHxhLnNpemV9LHIuaXNPdXRzaWRlVGV4dD1mdW5jdGlvbih0LGUpe3JldHVybiF0Ll9oYXNDb2xvcnNjYWxlJiZyLmlzSGllcmFyY2h5Um9vdChlKX0sci5kZXRlcm1pbmVUZXh0Rm9udD1mdW5jdGlvbih0LGUsaSxvKXtyZXR1cm4gci5pc091dHNpZGVUZXh0KHQsZSk/ZnVuY3Rpb24odCxlLG4pe3JldHVybntjb2xvcjpyLmdldE91dHNpZGVUZXh0Rm9udEtleSgiY29sb3IiLHQsZSxuKSxmYW1pbHk6ci5nZXRPdXRzaWRlVGV4dEZvbnRLZXkoImZhbWlseSIsdCxlLG4pLHNpemU6ci5nZXRPdXRzaWRlVGV4dEZvbnRLZXkoInNpemUiLHQsZSxuKX19KHQsZSxpKTpmdW5jdGlvbih0LGUsaSxvKXt2YXIgcz0ob3x8e30pLm9uUGF0aGJhcixsPWUuZGF0YS5kYXRhLGM9bC5pLHU9bi5jYXN0T3B0aW9uKHQsYywocz8icGF0aGJhci50ZXh0Zm9udCI6Imluc2lkZXRleHRmb250IikrIi5jb2xvciIpO3JldHVybiF1JiZ0Ll9pbnB1dC50ZXh0Zm9udCYmKHU9bi5jYXN0T3B0aW9uKHQuX2lucHV0LGMsInRleHRmb250LmNvbG9yIikpLHtjb2xvcjp1fHxhLmNvbnRyYXN0KGwuY29sb3IpLGZhbWlseTpyLmdldEluc2lkZVRleHRGb250S2V5KCJmYW1pbHkiLHQsZSxpLG8pLHNpemU6ci5nZXRJbnNpZGVUZXh0Rm9udEtleSgic2l6ZSIsdCxlLGksbyl9fSh0LGUsaSxvKX0sci5oYXNUcmFuc2l0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiEhKHQmJnQuZHVyYXRpb24+MCl9LHIuZ2V0TWF4RGVwdGg9ZnVuY3Rpb24odCl7cmV0dXJuIHQubWF4ZGVwdGg+PTA/dC5tYXhkZXB0aDoxLzB9LHIuaXNIZWFkZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm4hKHIuaXNMZWFmKHQpfHx0LmRlcHRoPT09ZS5fbWF4RGVwdGgtMSl9LHIuZ2V0UGFyZW50PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIuZmluZEVudHJ5V2l0aExldmVsKHQscyhlKSl9LHIubGlzdFBhdGg9ZnVuY3Rpb24odCxlKXt2YXIgbj10LnBhcmVudDtpZighbilyZXR1cm5bXTt2YXIgYT1lP1tuLmRhdGFbZV1dOltuXTtyZXR1cm4gci5saXN0UGF0aChuLGUpLmNvbmNhdChhKX0sci5nZXRQYXRoPWZ1bmN0aW9uKHQpe3JldHVybiByLmxpc3RQYXRoKHQsImxhYmVsIikuam9pbigiLyIpKyIvIn0sci5mb3JtYXRWYWx1ZT1vLmZvcm1hdFBpZVZhbHVlLHIuZm9ybWF0UGVyY2VudD1mdW5jdGlvbih0LGUpe3ZhciByPW4uZm9ybWF0UGVyY2VudCh0LDApO3JldHVybiIwJSI9PT1yJiYocj1vLmZvcm1hdFBpZVBlcmNlbnQodCxlKSkscn19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTkyLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vbGliL3NldGN1cnNvciI6NzM3LCIuLi9waWUvaGVscGVycyI6MTA5OX1dLDEyMzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToic3VuYnVyc3QiLGJhc2VQbG90TW9kdWxlOnQoIi4vYmFzZV9wbG90IiksY2F0ZWdvcmllczpbXSxhbmltYXRhYmxlOiEwLGF0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksbGF5b3V0QXR0cmlidXRlczp0KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLHN1cHBseUxheW91dERlZmF1bHRzOnQoIi4vbGF5b3V0X2RlZmF1bHRzIiksY2FsYzp0KCIuL2NhbGMiKS5jYWxjLGNyb3NzVHJhY2VDYWxjOnQoIi4vY2FsYyIpLmNyb3NzVHJhY2VDYWxjLHBsb3Q6dCgiLi9wbG90IikucGxvdCxzdHlsZTp0KCIuL3N0eWxlIikuc3R5bGUsY29sb3JiYXI6dCgiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiKSxtZXRhOnt9fX0seyIuLi9zY2F0dGVyL21hcmtlcl9jb2xvcmJhciI6MTEzOCwiLi9hdHRyaWJ1dGVzIjoxMjMxLCIuL2Jhc2VfcGxvdCI6MTIzMiwiLi9jYWxjIjoxMjMzLCIuL2RlZmF1bHRzIjoxMjM1LCIuL2xheW91dF9hdHRyaWJ1dGVzIjoxMjM5LCIuL2xheW91dF9kZWZhdWx0cyI6MTI0MCwiLi9wbG90IjoxMjQxLCIuL3N0eWxlIjoxMjQyfV0sMTIzOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e3N1bmJ1cnN0Y29sb3J3YXk6e3ZhbFR5cGU6ImNvbG9ybGlzdCIsZWRpdFR5cGU6ImNhbGMifSxleHRlbmRzdW5idXJzdGNvbG9yczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToiY2FsYyJ9fX0se31dLDEyNDA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuL2xheW91dF9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gcihyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsYSxyLGkpfXIoInN1bmJ1cnN0Y29sb3J3YXkiLGUuY29sb3J3YXkpLHIoImV4dGVuZHN1bmJ1cnN0Y29sb3JzIil9fSx7Ii4uLy4uL2xpYiI6NzE3LCIuL2xheW91dF9hdHRyaWJ1dGVzIjoxMjM5fV0sMTI0MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGE9dCgiZDMtaGllcmFyY2h5IiksaT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxvPXQoIi4uLy4uL2xpYiIpLHM9dCgiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIiksbD10KCIuLi9iYXIvdW5pZm9ybV90ZXh0IiksYz1sLnJlY29yZE1pblRleHRTaXplLHU9bC5jbGVhck1pblRleHRTaXplLGg9dCgiLi4vcGllL3Bsb3QiKSxmPWguY29tcHV0ZVRyYW5zZm9ybSxwPWgudHJhbnNmb3JtSW5zaWRlVGV4dCxkPXQoIi4vc3R5bGUiKS5zdHlsZU9uZSxnPXQoIi4uL2Jhci9zdHlsZSIpLnJlc2l6ZVRleHQsdj10KCIuL2Z4IiksbT10KCIuL2NvbnN0YW50cyIpLHk9dCgiLi9oZWxwZXJzIik7ZnVuY3Rpb24geCh0LGUsbCx1KXt2YXIgaD10Ll9mdWxsTGF5b3V0LGc9IWgudW5pZm9ybXRleHQubW9kZSYmeS5oYXNUcmFuc2l0aW9uKHUpLHg9bi5zZWxlY3QobCkuc2VsZWN0QWxsKCJnLnNsaWNlIiksXz1lWzBdLHc9Xy50cmFjZSxrPV8uaGllcmFyY2h5LFQ9eS5maW5kRW50cnlXaXRoTGV2ZWwoayx3LmxldmVsKSxNPXkuZ2V0TWF4RGVwdGgodyksQT1oLl9zaXplLFM9dy5kb21haW4sRT1BLncqKFMueFsxXS1TLnhbMF0pLEw9QS5oKihTLnlbMV0tUy55WzBdKSxDPS41Kk1hdGgubWluKEUsTCksUD1fLmN4PUEubCtBLncqKFMueFsxXStTLnhbMF0pLzIsTz1fLmN5PUEudCtBLmgqKDEtUy55WzBdKS1MLzI7aWYoIVQpcmV0dXJuIHgucmVtb3ZlKCk7dmFyIHo9bnVsbCxJPXt9O2cmJnguZWFjaChmdW5jdGlvbih0KXtJW3kuZ2V0UHRJZCh0KV09e3JweDA6dC5ycHgwLHJweDE6dC5ycHgxLHgwOnQueDAseDE6dC54MSx0cmFuc2Zvcm06dC50cmFuc2Zvcm19LCF6JiZ5LmlzRW50cnkodCkmJih6PXQpfSk7dmFyIEQ9ZnVuY3Rpb24odCl7cmV0dXJuIGEucGFydGl0aW9uKCkuc2l6ZShbMipNYXRoLlBJLHQuaGVpZ2h0KzFdKSh0KX0oVCkuZGVzY2VuZGFudHMoKSxSPVQuaGVpZ2h0KzEsRj0wLEI9TTtfLmhhc011bHRpcGxlUm9vdHMmJnkuaXNIaWVyYXJjaHlSb290KFQpJiYoRD1ELnNsaWNlKDEpLFItPTEsRj0xLEIrPTEpLEQ9RC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQueTE8PUJ9KTt2YXIgTj1NYXRoLm1pbihSLE0pLGo9ZnVuY3Rpb24odCl7cmV0dXJuKHQtRikvTipDfSxWPWZ1bmN0aW9uKHQsZSl7cmV0dXJuW3QqTWF0aC5jb3MoZSksLXQqTWF0aC5zaW4oZSldfSxVPWZ1bmN0aW9uKHQpe3JldHVybiBvLnBhdGhBbm51bHVzKHQucnB4MCx0LnJweDEsdC54MCx0LngxLFAsTyl9LHE9ZnVuY3Rpb24odCl7cmV0dXJuIFArYih0KVswXSoodC50cmFuc2Zvcm0uckNlbnRlcnx8MCkrKHQudHJhbnNmb3JtLnh8fDApfSxIPWZ1bmN0aW9uKHQpe3JldHVybiBPK2IodClbMV0qKHQudHJhbnNmb3JtLnJDZW50ZXJ8fDApKyh0LnRyYW5zZm9ybS55fHwwKX07KHg9eC5kYXRhKEQseS5nZXRQdElkKSkuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJzbGljZSIsITApLGc/eC5leGl0KCkudHJhbnNpdGlvbigpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1uLnNlbGVjdCh0aGlzKTt0LnNlbGVjdCgicGF0aC5zdXJmYWNlIikudHJhbnNpdGlvbigpLmF0dHJUd2VlbigiZCIsZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24odCl7dmFyIGUscj15LmdldFB0SWQodCksYT1JW3JdLGk9SVt5LmdldFB0SWQoVCldO2lmKGkpe3ZhciBvPXQueDE+aS54MT8yKk1hdGguUEk6MDtlPXQucnB4MTxpLnJweDE/e3JweDA6MCxycHgxOjB9Ont4MDpvLHgxOm99fWVsc2V7dmFyIHMsbD15LmdldFB0SWQodC5wYXJlbnQpO3guZWFjaChmdW5jdGlvbih0KXtpZih5LmdldFB0SWQodCk9PT1sKXJldHVybiBzPXR9KTt2YXIgYyx1PXMuY2hpbGRyZW47dS5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7aWYoeS5nZXRQdElkKHQpPT09cilyZXR1cm4gYz1lfSk7dmFyIGg9dS5sZW5ndGgsZj1uLmludGVycG9sYXRlKHMueDAscy54MSk7ZT17cnB4MDpDLHJweDE6Qyx4MDpmKGMvaCkseDE6ZigoYysxKS9oKX19cmV0dXJuIG4uaW50ZXJwb2xhdGUoYSxlKX0odCk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBVKGUodCkpfX0pLHQuc2VsZWN0KCJnLnNsaWNldGV4dCIpLmF0dHIoIm9wYWNpdHkiLDApfSkucmVtb3ZlKCk6eC5leGl0KCkucmVtb3ZlKCkseC5vcmRlcigpO3ZhciBHPW51bGw7aWYoZyYmeil7dmFyIFk9eS5nZXRQdElkKHopO3guZWFjaChmdW5jdGlvbih0KXtudWxsPT09RyYmeS5nZXRQdElkKHQpPT09WSYmKEc9dC54MSl9KX12YXIgVz14O2Z1bmN0aW9uIFgodCl7dmFyIGU9dC5wYXJlbnQscj1JW3kuZ2V0UHRJZChlKV0sYT17fTtpZihyKXt2YXIgaT1lLmNoaWxkcmVuLG89aS5pbmRleE9mKHQpLHM9aS5sZW5ndGgsbD1uLmludGVycG9sYXRlKHIueDAsci54MSk7YS54MD1sKG8vcyksYS54MT1sKG8vcyl9ZWxzZSBhLngwPWEueDE9MDtyZXR1cm4gYX1nJiYoVz1XLnRyYW5zaXRpb24oKS5lYWNoKCJlbmQiLGZ1bmN0aW9uKCl7dmFyIGU9bi5zZWxlY3QodGhpcyk7eS5zZXRTbGljZUN1cnNvcihlLHQse2hpZGVPblJvb3Q6ITAsaGlkZU9uTGVhdmVzOiEwLGlzVHJhbnNpdGlvbmluZzohMX0pfSkpLFcuZWFjaChmdW5jdGlvbihhKXt2YXIgbD1uLnNlbGVjdCh0aGlzKSx1PW8uZW5zdXJlU2luZ2xlKGwsInBhdGgiLCJzdXJmYWNlIixmdW5jdGlvbih0KXt0LnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpfSk7YS5ycHgwPWooYS55MCksYS5ycHgxPWooYS55MSksYS54bWlkPShhLngwK2EueDEpLzIsYS5weG1pZD1WKGEucnB4MSxhLnhtaWQpLGEubWlkYW5nbGU9LShhLnhtaWQtTWF0aC5QSS8yKSxhLnN0YXJ0YW5nbGU9LShhLngwLU1hdGguUEkvMiksYS5zdG9wYW5nbGU9LShhLngxLU1hdGguUEkvMiksYS5oYWxmYW5nbGU9LjUqTWF0aC5taW4oby5hbmdsZURlbHRhKGEueDAsYS54MSl8fE1hdGguUEksTWF0aC5QSSksYS5yaW5nPTEtYS5ycHgwL2EucnB4MSxhLnJJbnNjcmliZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10LnJweDAmJm8uaXNGdWxsQ2lyY2xlKFt0LngwLHQueDFdKT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMS8oMSsxL01hdGguc2luKHQuaGFsZmFuZ2xlKSksdC5yaW5nLzIpKX0oYSksZz91LnRyYW5zaXRpb24oKS5hdHRyVHdlZW4oImQiLGZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKHQpe3ZhciBlLHI9SVt5LmdldFB0SWQodCldLGE9e3gwOnQueDAseDE6dC54MSxycHgwOnQucnB4MCxycHgxOnQucnB4MX07aWYocillPXI7ZWxzZSBpZih6KWlmKHQucGFyZW50KWlmKEcpe3ZhciBpPXQueDE+Rz8yKk1hdGguUEk6MDtlPXt4MDppLHgxOml9fWVsc2UgZT17cnB4MDpDLHJweDE6Q30sby5leHRlbmRGbGF0KGUsWCh0KSk7ZWxzZSBlPXtycHgwOjAscnB4MTowfTtlbHNlIGU9e3gwOjAseDE6MH07cmV0dXJuIG4uaW50ZXJwb2xhdGUoZSxhKX0odCk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBVKGUodCkpfX0pOnUuYXR0cigiZCIsVSksbC5jYWxsKHYsVCx0LGUse2V2ZW50RGF0YUtleXM6bS5ldmVudERhdGFLZXlzLHRyYW5zaXRpb25UaW1lOm0uQ0xJQ0tfVFJBTlNJVElPTl9USU1FLHRyYW5zaXRpb25FYXNpbmc6bS5DTElDS19UUkFOU0lUSU9OX0VBU0lOR30pLmNhbGwoeS5zZXRTbGljZUN1cnNvcix0LHtoaWRlT25Sb290OiEwLGhpZGVPbkxlYXZlczohMCxpc1RyYW5zaXRpb25pbmc6dC5fdHJhbnNpdGlvbmluZ30pLHUuY2FsbChkLGEsdyk7dmFyIHg9by5lbnN1cmVTaW5nbGUobCwiZyIsInNsaWNldGV4dCIpLGI9by5lbnN1cmVTaW5nbGUoeCwidGV4dCIsIiIsZnVuY3Rpb24odCl7dC5hdHRyKCJkYXRhLW5vdGV4IiwxKX0pLGs9by5lbnN1cmVVbmlmb3JtRm9udFNpemUodCx5LmRldGVybWluZVRleHRGb250KHcsYSxoLmZvbnQpKTtiLnRleHQoci5mb3JtYXRTbGljZUxhYmVsKGEsVCx3LGUsaCkpLmNsYXNzZWQoInNsaWNldGV4dCIsITApLmF0dHIoInRleHQtYW5jaG9yIiwibWlkZGxlIikuY2FsbChpLmZvbnQsaykuY2FsbChzLmNvbnZlcnRUb1RzcGFucyx0KTt2YXIgTT1pLmJCb3goYi5ub2RlKCkpO2EudHJhbnNmb3JtPXAoTSxhLF8pLGEudHJhbnNmb3JtLnRhcmdldFg9cShhKSxhLnRyYW5zZm9ybS50YXJnZXRZPUgoYSk7dmFyIEE9ZnVuY3Rpb24odCxlKXt2YXIgcj10LnRyYW5zZm9ybTtyZXR1cm4gZihyLGUpLHIuZm9udFNpemU9ay5zaXplLGMody50eXBlLHIsaCksby5nZXRUZXh0VHJhbnNmb3JtKHIpfTtnP2IudHJhbnNpdGlvbigpLmF0dHJUd2VlbigidHJhbnNmb3JtIixmdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbih0KXt2YXIgZSxyPUlbeS5nZXRQdElkKHQpXSxhPXQudHJhbnNmb3JtO2lmKHIpZT1yO2Vsc2UgaWYoZT17cnB4MTp0LnJweDEsdHJhbnNmb3JtOnt0ZXh0UG9zQW5nbGU6YS50ZXh0UG9zQW5nbGUsc2NhbGU6MCxyb3RhdGU6YS5yb3RhdGUsckNlbnRlcjphLnJDZW50ZXIseDphLngseTphLnl9fSx6KWlmKHQucGFyZW50KWlmKEcpe3ZhciBpPXQueDE+Rz8yKk1hdGguUEk6MDtlLngwPWUueDE9aX1lbHNlIG8uZXh0ZW5kRmxhdChlLFgodCkpO2Vsc2UgZS54MD1lLngxPTA7ZWxzZSBlLngwPWUueDE9MDt2YXIgcz1uLmludGVycG9sYXRlKGUudHJhbnNmb3JtLnRleHRQb3NBbmdsZSx0LnRyYW5zZm9ybS50ZXh0UG9zQW5nbGUpLGw9bi5pbnRlcnBvbGF0ZShlLnJweDEsdC5ycHgxKSx1PW4uaW50ZXJwb2xhdGUoZS54MCx0LngwKSxmPW4uaW50ZXJwb2xhdGUoZS54MSx0LngxKSxwPW4uaW50ZXJwb2xhdGUoZS50cmFuc2Zvcm0uc2NhbGUsYS5zY2FsZSksZD1uLmludGVycG9sYXRlKGUudHJhbnNmb3JtLnJvdGF0ZSxhLnJvdGF0ZSksZz0wPT09YS5yQ2VudGVyPzM6MD09PWUudHJhbnNmb3JtLnJDZW50ZXI/MS8zOjEsdj1uLmludGVycG9sYXRlKGUudHJhbnNmb3JtLnJDZW50ZXIsYS5yQ2VudGVyKTtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9bCh0KSxyPXUodCksbj1mKHQpLGk9ZnVuY3Rpb24odCl7cmV0dXJuIHYoTWF0aC5wb3codCxnKSl9KHQpLG89VihlLChyK24pLzIpLG09cyh0KSx5PXtweG1pZDpvLHJweDE6ZSx0cmFuc2Zvcm06e3RleHRQb3NBbmdsZTptLHJDZW50ZXI6aSx4OmEueCx5OmEueX19O3JldHVybiBjKHcudHlwZSxhLGgpLHt0cmFuc2Zvcm06e3RhcmdldFg6cSh5KSx0YXJnZXRZOkgoeSksc2NhbGU6cCh0KSxyb3RhdGU6ZCh0KSxyQ2VudGVyOml9fX19KHQpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gQShlKHQpLE0pfX0pOmIuYXR0cigidHJhbnNmb3JtIixBKGEsTSkpfSl9ZnVuY3Rpb24gYih0KXtyZXR1cm4gZT10LnJweDEscj10LnRyYW5zZm9ybS50ZXh0UG9zQW5nbGUsW2UqTWF0aC5zaW4ociksLWUqTWF0aC5jb3MocildO3ZhciBlLHJ9ci5wbG90PWZ1bmN0aW9uKHQsZSxyLGEpe3ZhciBpLG8scz10Ll9mdWxsTGF5b3V0LGw9cy5fc3VuYnVyc3RsYXllcixjPSFyLGg9IXMudW5pZm9ybXRleHQubW9kZSYmeS5oYXNUcmFuc2l0aW9uKHIpOyh1KCJzdW5idXJzdCIscyksKGk9bC5zZWxlY3RBbGwoImcudHJhY2Uuc3VuYnVyc3QiKS5kYXRhKGUsZnVuY3Rpb24odCl7cmV0dXJuIHRbMF0udHJhY2UudWlkfSkpLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgidHJhY2UiLCEwKS5jbGFzc2VkKCJzdW5idXJzdCIsITApLmF0dHIoInN0cm9rZS1saW5lam9pbiIsInJvdW5kIiksaS5vcmRlcigpLGgpPyhhJiYobz1hKCkpLG4udHJhbnNpdGlvbigpLmR1cmF0aW9uKHIuZHVyYXRpb24pLmVhc2Uoci5lYXNpbmcpLmVhY2goImVuZCIsZnVuY3Rpb24oKXtvJiZvKCl9KS5lYWNoKCJpbnRlcnJ1cHQiLGZ1bmN0aW9uKCl7byYmbygpfSkuZWFjaChmdW5jdGlvbigpe2wuc2VsZWN0QWxsKCJnLnRyYWNlIikuZWFjaChmdW5jdGlvbihlKXt4KHQsZSx0aGlzLHIpfSl9KSk6KGkuZWFjaChmdW5jdGlvbihlKXt4KHQsZSx0aGlzLHIpfSkscy51bmlmb3JtdGV4dC5tb2RlJiZnKHQscy5fc3VuYnVyc3RsYXllci5zZWxlY3RBbGwoIi50cmFjZSIpLCJzdW5idXJzdCIpKTtjJiZpLmV4aXQoKS5yZW1vdmUoKX0sci5mb3JtYXRTbGljZUxhYmVsPWZ1bmN0aW9uKHQsZSxyLG4sYSl7dmFyIGk9ci50ZXh0dGVtcGxhdGUscz1yLnRleHRpbmZvO2lmKCEoaXx8cyYmIm5vbmUiIT09cykpcmV0dXJuIiI7dmFyIGw9YS5zZXBhcmF0b3JzLGM9blswXSx1PXQuZGF0YS5kYXRhLGg9Yy5oaWVyYXJjaHksZj15LmlzSGllcmFyY2h5Um9vdCh0KSxwPXkuZ2V0UGFyZW50KGgsdCksZD15LmdldFZhbHVlKHQpO2lmKCFpKXt2YXIgZyx2PXMuc3BsaXQoIisiKSxtPWZ1bmN0aW9uKHQpe3JldHVybi0xIT09di5pbmRleE9mKHQpfSx4PVtdO2lmKG0oImxhYmVsIikmJnUubGFiZWwmJngucHVzaCh1LmxhYmVsKSx1Lmhhc093blByb3BlcnR5KCJ2IikmJm0oInZhbHVlIikmJngucHVzaCh5LmZvcm1hdFZhbHVlKHUudixsKSksIWYpe20oImN1cnJlbnQgcGF0aCIpJiZ4LnB1c2goeS5nZXRQYXRoKHQuZGF0YSkpO3ZhciBiPTA7bSgicGVyY2VudCBwYXJlbnQiKSYmYisrLG0oInBlcmNlbnQgZW50cnkiKSYmYisrLG0oInBlcmNlbnQgcm9vdCIpJiZiKys7dmFyIF89Yj4xO2lmKGIpe3ZhciB3LGs9ZnVuY3Rpb24odCl7Zz15LmZvcm1hdFBlcmNlbnQodyxsKSxfJiYoZys9IiBvZiAiK3QpLHgucHVzaChnKX07bSgicGVyY2VudCBwYXJlbnQiKSYmIWYmJih3PWQveS5nZXRWYWx1ZShwKSxrKCJwYXJlbnQiKSksbSgicGVyY2VudCBlbnRyeSIpJiYodz1kL3kuZ2V0VmFsdWUoZSksaygiZW50cnkiKSksbSgicGVyY2VudCByb290IikmJih3PWQveS5nZXRWYWx1ZShoKSxrKCJyb290IikpfX1yZXR1cm4gbSgidGV4dCIpJiYoZz1vLmNhc3RPcHRpb24ocix1LmksInRleHQiKSxvLmlzVmFsaWRUZXh0VmFsdWUoZykmJngucHVzaChnKSkseC5qb2luKCI8YnI+Iil9dmFyIFQ9by5jYXN0T3B0aW9uKHIsdS5pLCJ0ZXh0dGVtcGxhdGUiKTtpZighVClyZXR1cm4iIjt2YXIgTT17fTt1LmxhYmVsJiYoTS5sYWJlbD11LmxhYmVsKSx1Lmhhc093blByb3BlcnR5KCJ2IikmJihNLnZhbHVlPXUudixNLnZhbHVlTGFiZWw9eS5mb3JtYXRWYWx1ZSh1LnYsbCkpLE0uY3VycmVudFBhdGg9eS5nZXRQYXRoKHQuZGF0YSksZnx8KE0ucGVyY2VudFBhcmVudD1kL3kuZ2V0VmFsdWUocCksTS5wZXJjZW50UGFyZW50TGFiZWw9eS5mb3JtYXRQZXJjZW50KE0ucGVyY2VudFBhcmVudCxsKSxNLnBhcmVudD15LmdldFB0TGFiZWwocCkpLE0ucGVyY2VudEVudHJ5PWQveS5nZXRWYWx1ZShlKSxNLnBlcmNlbnRFbnRyeUxhYmVsPXkuZm9ybWF0UGVyY2VudChNLnBlcmNlbnRFbnRyeSxsKSxNLmVudHJ5PXkuZ2V0UHRMYWJlbChlKSxNLnBlcmNlbnRSb290PWQveS5nZXRWYWx1ZShoKSxNLnBlcmNlbnRSb290TGFiZWw9eS5mb3JtYXRQZXJjZW50KE0ucGVyY2VudFJvb3QsbCksTS5yb290PXkuZ2V0UHRMYWJlbChoKSx1Lmhhc093blByb3BlcnR5KCJjb2xvciIpJiYoTS5jb2xvcj11LmNvbG9yKTt2YXIgQT1vLmNhc3RPcHRpb24ocix1LmksInRleHQiKTtyZXR1cm4oby5pc1ZhbGlkVGV4dFZhbHVlKEEpfHwiIj09PUEpJiYoTS50ZXh0PUEpLE0uY3VzdG9tZGF0YT1vLmNhc3RPcHRpb24ocix1LmksImN1c3RvbWRhdGEiKSxvLnRleHR0ZW1wbGF0ZVN0cmluZyhULE0sYS5fZDNsb2NhbGUsTSxyLl9tZXRhfHx7fSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjEzLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo3NDEsIi4uL2Jhci9zdHlsZSI6ODcwLCIuLi9iYXIvdW5pZm9ybV90ZXh0Ijo4NzIsIi4uL3BpZS9wbG90IjoxMTAzLCIuL2NvbnN0YW50cyI6MTIzNCwiLi9meCI6MTIzNiwiLi9oZWxwZXJzIjoxMjM3LCIuL3N0eWxlIjoxMjQyLGQzOjE2NSwiZDMtaGllcmFyY2h5IjoxNTl9XSwxMjQyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksaT10KCIuLi8uLi9saWIiKSxvPXQoIi4uL2Jhci91bmlmb3JtX3RleHQiKS5yZXNpemVUZXh0O2Z1bmN0aW9uIHModCxlLHIpe3ZhciBuPWUuZGF0YS5kYXRhLG89IWUuY2hpbGRyZW4scz1uLmksbD1pLmNhc3RPcHRpb24ocixzLCJtYXJrZXIubGluZS5jb2xvciIpfHxhLmRlZmF1bHRMaW5lLGM9aS5jYXN0T3B0aW9uKHIscywibWFya2VyLmxpbmUud2lkdGgiKXx8MDt0LnN0eWxlKCJzdHJva2Utd2lkdGgiLGMpLmNhbGwoYS5maWxsLG4uY29sb3IpLmNhbGwoYS5zdHJva2UsbCkuc3R5bGUoIm9wYWNpdHkiLG8/ci5sZWFmLm9wYWNpdHk6bnVsbCl9ZS5leHBvcnRzPXtzdHlsZTpmdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0Ll9zdW5idXJzdGxheWVyLnNlbGVjdEFsbCgiLnRyYWNlIik7byh0LGUsInN1bmJ1cnN0IiksZS5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPW4uc2VsZWN0KHRoaXMpLHI9dFswXS50cmFjZTtlLnN0eWxlKCJvcGFjaXR5IixyLm9wYWNpdHkpLGUuc2VsZWN0QWxsKCJwYXRoLnN1cmZhY2UiKS5lYWNoKGZ1bmN0aW9uKHQpe24uc2VsZWN0KHRoaXMpLmNhbGwocyx0LHIpfSl9KX0sc3R5bGVPbmU6c319LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTkyLCIuLi8uLi9saWIiOjcxNywiLi4vYmFyL3VuaWZvcm1fdGV4dCI6ODcyLGQzOjE2NX1dLDEyNDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMsbz10KCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxsPXQoIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbDtmdW5jdGlvbiBjKHQpe3JldHVybntzaG93Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxzdGFydDp7dmFsVHlwZToibnVtYmVyIixkZmx0Om51bGwsZWRpdFR5cGU6InBsb3QifSxlbmQ6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDpudWxsLGVkaXRUeXBlOiJwbG90In0sc2l6ZTp7dmFsVHlwZToibnVtYmVyIixkZmx0Om51bGwsbWluOjAsZWRpdFR5cGU6InBsb3QifSxwcm9qZWN0Ont4Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSx5Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSx6Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfX0sY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0Om4uZGVmYXVsdExpbmV9LHVzZWNvbG9ybWFwOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSx3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MSxtYXg6MTYsZGZsdDoyfSxoaWdobGlnaHQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITB9LGhpZ2hsaWdodGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpuLmRlZmF1bHRMaW5lfSxoaWdobGlnaHR3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MSxtYXg6MTYsZGZsdDoyfX19dmFyIHU9ZS5leHBvcnRzPWwocyh7ejp7dmFsVHlwZToiZGF0YV9hcnJheSJ9LHg6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifSx5Ont2YWxUeXBlOiJkYXRhX2FycmF5In0sdGV4dDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGFycmF5T2s6ITB9LGhvdmVydGV4dDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGFycmF5T2s6ITB9LGhvdmVydGVtcGxhdGU6aSgpLGNvbm5lY3RnYXBzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExLGVkaXRUeXBlOiJjYWxjIn0sc3VyZmFjZWNvbG9yOnt2YWxUeXBlOiJkYXRhX2FycmF5In19LGEoIiIse2NvbG9yQXR0cjoieiBvciBzdXJmYWNlY29sb3IiLHNob3dTY2FsZURmbHQ6ITAsYXV0b0NvbG9yRGZsdDohMSxlZGl0VHlwZU92ZXJyaWRlOiJjYWxjIn0pLHtjb250b3Vyczp7eDpjKCkseTpjKCksejpjKCl9LGhpZGVzdXJmYWNlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxsaWdodHBvc2l0aW9uOnt4Ont2YWxUeXBlOiJudW1iZXIiLG1pbjotMWU1LG1heDoxZTUsZGZsdDoxMH0seTp7dmFsVHlwZToibnVtYmVyIixtaW46LTFlNSxtYXg6MWU1LGRmbHQ6MWU0fSx6Ont2YWxUeXBlOiJudW1iZXIiLG1pbjotMWU1LG1heDoxZTUsZGZsdDowfX0sbGlnaHRpbmc6e2FtYmllbnQ6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDouOH0sZGlmZnVzZTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0Oi44fSxzcGVjdWxhcjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MixkZmx0Oi4wNX0scm91Z2huZXNzOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6LjV9LGZyZXNuZWw6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjUsZGZsdDouMn19LG9wYWNpdHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxfSxfZGVwcmVjYXRlZDp7emF1dG86cyh7fSxhLnphdXRvLHt9KSx6bWluOnMoe30sYS56bWluLHt9KSx6bWF4OnMoe30sYS56bWF4LHt9KX0saG92ZXJpbmZvOnMoe30sby5ob3ZlcmluZm8pLHNob3dsZWdlbmQ6cyh7fSxvLnNob3dsZWdlbmQse2RmbHQ6ITF9KX0pLCJjYWxjIiwibmVzdGVkIik7dS54LmVkaXRUeXBlPXUueS5lZGl0VHlwZT11LnouZWRpdFR5cGU9ImNhbGMrY2xlYXJBeGlzVHlwZXMiLHUudHJhbnNmb3Jtcz12b2lkIDB9LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTkyLCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6NTk5LCIuLi8uLi9saWIvZXh0ZW5kIjo3MDgsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjc0OCwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6NzYyLCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo4NDF9XSwxMjQ0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZS5zdXJmYWNlY29sb3I/bih0LGUse3ZhbHM6ZS5zdXJmYWNlY29sb3IsY29udGFpbmVyU3RyOiIiLGNMZXR0ZXI6ImMifSk6bih0LGUse3ZhbHM6ZS56LGNvbnRhaW5lclN0cjoiIixjTGV0dGVyOiJjIn0pfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY2FsYyI6NjAwfV0sMTI0NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJnbC1zdXJmYWNlM2QiKSxhPXQoIm5kYXJyYXkiKSxpPXQoIm5kYXJyYXktaG9tb2dyYXBoeSIpLG89dCgibmRhcnJheS1maWxsIikscz10KCIuLi8uLi9saWIiKS5pc0FycmF5T3JUeXBlZEFycmF5LGw9dCgiLi4vLi4vbGliL2dsX2Zvcm1hdF9jb2xvciIpLnBhcnNlQ29sb3JTY2FsZSxjPXQoIi4uLy4uL2xpYi9zdHIycmdiYXJyYXkiKSx1PXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLmV4dHJhY3RPcHRzLGg9dCgiLi4vaGVhdG1hcC9pbnRlcnAyZCIpLGY9dCgiLi4vaGVhdG1hcC9maW5kX2VtcHRpZXMiKTtmdW5jdGlvbiBwKHQsZSxyKXt0aGlzLnNjZW5lPXQsdGhpcy51aWQ9cix0aGlzLnN1cmZhY2U9ZSx0aGlzLmRhdGE9bnVsbCx0aGlzLnNob3dDb250b3VyPVshMSwhMSwhMV0sdGhpcy5jb250b3VyU3RhcnQ9W251bGwsbnVsbCxudWxsXSx0aGlzLmNvbnRvdXJFbmQ9W251bGwsbnVsbCxudWxsXSx0aGlzLmNvbnRvdXJTaXplPVswLDAsMF0sdGhpcy5taW5WYWx1ZXM9WzEvMCwxLzAsMS8wXSx0aGlzLm1heFZhbHVlcz1bLTEvMCwtMS8wLC0xLzBdLHRoaXMuZGF0YVNjYWxlWD0xLHRoaXMuZGF0YVNjYWxlWT0xLHRoaXMucmVmaW5lRGF0YT0hMCx0aGlzLm9iamVjdE9mZnNldD1bMCwwLDBdfXZhciBkPXAucHJvdG90eXBlO2QuZ2V0WGF0PWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPXModGhpcy5kYXRhLngpP3ModGhpcy5kYXRhLnhbMF0pP3RoaXMuZGF0YS54W2VdW3RdOnRoaXMuZGF0YS54W3RdOnQ7cmV0dXJuIHZvaWQgMD09PXI/YTpuLmQybChhLDAscil9LGQuZ2V0WWF0PWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPXModGhpcy5kYXRhLnkpP3ModGhpcy5kYXRhLnlbMF0pP3RoaXMuZGF0YS55W2VdW3RdOnRoaXMuZGF0YS55W2VdOmU7cmV0dXJuIHZvaWQgMD09PXI/YTpuLmQybChhLDAscil9LGQuZ2V0WmF0PWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPXRoaXMuZGF0YS56W2VdW3RdO3JldHVybiBudWxsPT09YSYmdGhpcy5kYXRhLmNvbm5lY3RnYXBzJiZ0aGlzLmRhdGEuX2ludGVycG9sYXRlZFomJihhPXRoaXMuZGF0YS5faW50ZXJwb2xhdGVkWltlXVt0XSksdm9pZCAwPT09cj9hOm4uZDJsKGEsMCxyKX0sZC5oYW5kbGVQaWNrPWZ1bmN0aW9uKHQpe2lmKHQub2JqZWN0PT09dGhpcy5zdXJmYWNlKXt2YXIgZT0odC5kYXRhLmluZGV4WzBdLTEpL3RoaXMuZGF0YVNjYWxlWC0xLHI9KHQuZGF0YS5pbmRleFsxXS0xKS90aGlzLmRhdGFTY2FsZVktMSxuPU1hdGgubWF4KE1hdGgubWluKE1hdGgucm91bmQoZSksdGhpcy5kYXRhLnpbMF0ubGVuZ3RoLTEpLDApLGE9TWF0aC5tYXgoTWF0aC5taW4oTWF0aC5yb3VuZChyKSx0aGlzLmRhdGEuX3lsZW5ndGgtMSksMCk7dC5pbmRleD1bbixhXSx0LnRyYWNlQ29vcmRpbmF0ZT1bdGhpcy5nZXRYYXQobixhKSx0aGlzLmdldFlhdChuLGEpLHRoaXMuZ2V0WmF0KG4sYSldLHQuZGF0YUNvb3JkaW5hdGU9W3RoaXMuZ2V0WGF0KG4sYSx0aGlzLmRhdGEueGNhbGVuZGFyLHRoaXMuc2NlbmUuZnVsbFNjZW5lTGF5b3V0LnhheGlzKSx0aGlzLmdldFlhdChuLGEsdGhpcy5kYXRhLnljYWxlbmRhcix0aGlzLnNjZW5lLmZ1bGxTY2VuZUxheW91dC55YXhpcyksdGhpcy5nZXRaYXQobixhLHRoaXMuZGF0YS56Y2FsZW5kYXIsdGhpcy5zY2VuZS5mdWxsU2NlbmVMYXlvdXQuemF4aXMpXTtmb3IodmFyIGk9MDtpPDM7aSsrKXt2YXIgbz10LmRhdGFDb29yZGluYXRlW2ldO251bGwhPW8mJih0LmRhdGFDb29yZGluYXRlW2ldKj10aGlzLnNjZW5lLmRhdGFTY2FsZVtpXSl9dmFyIHM9dGhpcy5kYXRhLmhvdmVydGV4dHx8dGhpcy5kYXRhLnRleHQ7cmV0dXJuIEFycmF5LmlzQXJyYXkocykmJnNbYV0mJnZvaWQgMCE9PXNbYV1bbl0/dC50ZXh0TGFiZWw9c1thXVtuXTp0LnRleHRMYWJlbD1zfHwiIix0LmRhdGEuZGF0YUNvb3JkaW5hdGU9dC5kYXRhQ29vcmRpbmF0ZS5zbGljZSgpLHRoaXMuc3VyZmFjZS5oaWdobGlnaHQodC5kYXRhKSx0aGlzLnNjZW5lLmdscGxvdC5zcGlrZXMucG9zaXRpb249dC5kYXRhQ29vcmRpbmF0ZSwhMH19O3ZhciBnPVsyLDMsNSw3LDExLDEzLDE3LDE5LDIzLDI5LDMxLDM3LDQxLDQzLDQ3LDUzLDU5LDYxLDY3LDcxLDczLDc5LDgzLDg5LDk3LDEwMSwxMDMsMTA3LDEwOSwxMTMsMTI3LDEzMSwxMzcsMTM5LDE0OSwxNTEsMTU3LDE2MywxNjcsMTczLDE3OSwxODEsMTkxLDE5MywxOTcsMTk5LDIxMSwyMjMsMjI3LDIyOSwyMzMsMjM5LDI0MSwyNTEsMjU3LDI2MywyNjksMjcxLDI3NywyODEsMjgzLDI5MywzMDcsMzExLDMxMywzMTcsMzMxLDMzNywzNDcsMzQ5LDM1MywzNTksMzY3LDM3MywzNzksMzgzLDM4OSwzOTcsNDAxLDQwOSw0MTksNDIxLDQzMSw0MzMsNDM5LDQ0Myw0NDksNDU3LDQ2MSw0NjMsNDY3LDQ3OSw0ODcsNDkxLDQ5OSw1MDMsNTA5LDUyMSw1MjMsNTQxLDU0Nyw1NTcsNTYzLDU2OSw1NzEsNTc3LDU4Nyw1OTMsNTk5LDYwMSw2MDcsNjEzLDYxNyw2MTksNjMxLDY0MSw2NDMsNjQ3LDY1Myw2NTksNjYxLDY3Myw2NzcsNjgzLDY5MSw3MDEsNzA5LDcxOSw3MjcsNzMzLDczOSw3NDMsNzUxLDc1Nyw3NjEsNzY5LDc3Myw3ODcsNzk3LDgwOSw4MTEsODIxLDgyMyw4MjcsODI5LDgzOSw4NTMsODU3LDg1OSw4NjMsODc3LDg4MSw4ODMsODg3LDkwNyw5MTEsOTE5LDkyOSw5MzcsOTQxLDk0Nyw5NTMsOTY3LDk3MSw5NzcsOTgzLDk5MSw5OTcsMTAwOSwxMDEzLDEwMTksMTAyMSwxMDMxLDEwMzMsMTAzOSwxMDQ5LDEwNTEsMTA2MSwxMDYzLDEwNjksMTA4NywxMDkxLDEwOTMsMTA5NywxMTAzLDExMDksMTExNywxMTIzLDExMjksMTE1MSwxMTUzLDExNjMsMTE3MSwxMTgxLDExODcsMTE5MywxMjAxLDEyMTMsMTIxNywxMjIzLDEyMjksMTIzMSwxMjM3LDEyNDksMTI1OSwxMjc3LDEyNzksMTI4MywxMjg5LDEyOTEsMTI5NywxMzAxLDEzMDMsMTMwNywxMzE5LDEzMjEsMTMyNywxMzYxLDEzNjcsMTM3MywxMzgxLDEzOTksMTQwOSwxNDIzLDE0MjcsMTQyOSwxNDMzLDE0MzksMTQ0NywxNDUxLDE0NTMsMTQ1OSwxNDcxLDE0ODEsMTQ4MywxNDg3LDE0ODksMTQ5MywxNDk5LDE1MTEsMTUyMywxNTMxLDE1NDMsMTU0OSwxNTUzLDE1NTksMTU2NywxNTcxLDE1NzksMTU4MywxNTk3LDE2MDEsMTYwNywxNjA5LDE2MTMsMTYxOSwxNjIxLDE2MjcsMTYzNywxNjU3LDE2NjMsMTY2NywxNjY5LDE2OTMsMTY5NywxNjk5LDE3MDksMTcyMSwxNzIzLDE3MzMsMTc0MSwxNzQ3LDE3NTMsMTc1OSwxNzc3LDE3ODMsMTc4NywxNzg5LDE4MDEsMTgxMSwxODIzLDE4MzEsMTg0NywxODYxLDE4NjcsMTg3MSwxODczLDE4NzcsMTg3OSwxODg5LDE5MDEsMTkwNywxOTEzLDE5MzEsMTkzMywxOTQ5LDE5NTEsMTk3MywxOTc5LDE5ODcsMTk5MywxOTk3LDE5OTksMjAwMywyMDExLDIwMTcsMjAyNywyMDI5LDIwMzksMjA1MywyMDYzLDIwNjksMjA4MSwyMDgzLDIwODcsMjA4OSwyMDk5LDIxMTEsMjExMywyMTI5LDIxMzEsMjEzNywyMTQxLDIxNDMsMjE1MywyMTYxLDIxNzksMjIwMywyMjA3LDIyMTMsMjIyMSwyMjM3LDIyMzksMjI0MywyMjUxLDIyNjcsMjI2OSwyMjczLDIyODEsMjI4NywyMjkzLDIyOTcsMjMwOSwyMzExLDIzMzMsMjMzOSwyMzQxLDIzNDcsMjM1MSwyMzU3LDIzNzEsMjM3NywyMzgxLDIzODMsMjM4OSwyMzkzLDIzOTksMjQxMSwyNDE3LDI0MjMsMjQzNywyNDQxLDI0NDcsMjQ1OSwyNDY3LDI0NzMsMjQ3NywyNTAzLDI1MjEsMjUzMSwyNTM5LDI1NDMsMjU0OSwyNTUxLDI1NTcsMjU3OSwyNTkxLDI1OTMsMjYwOSwyNjE3LDI2MjEsMjYzMywyNjQ3LDI2NTcsMjY1OSwyNjYzLDI2NzEsMjY3NywyNjgzLDI2ODcsMjY4OSwyNjkzLDI2OTksMjcwNywyNzExLDI3MTMsMjcxOSwyNzI5LDI3MzEsMjc0MSwyNzQ5LDI3NTMsMjc2NywyNzc3LDI3ODksMjc5MSwyNzk3LDI4MDEsMjgwMywyODE5LDI4MzMsMjgzNywyODQzLDI4NTEsMjg1NywyODYxLDI4NzksMjg4NywyODk3LDI5MDMsMjkwOSwyOTE3LDI5MjcsMjkzOSwyOTUzLDI5NTcsMjk2MywyOTY5LDI5NzEsMjk5OV07ZnVuY3Rpb24gdih0LGUpe2lmKHQ8ZSlyZXR1cm4gMDtmb3IodmFyIHI9MDswPT09TWF0aC5mbG9vcih0JWUpOyl0Lz1lLHIrKztyZXR1cm4gcn1mdW5jdGlvbiBtKHQpe2Zvcih2YXIgZT1bXSxyPTA7cjxnLmxlbmd0aDtyKyspe3ZhciBuPWdbcl07ZS5wdXNoKHYodCxuKSl9cmV0dXJuIGV9ZnVuY3Rpb24geSh0KXtmb3IodmFyIGU9bSh0KSxyPXQsbj0wO248Zy5sZW5ndGg7bisrKWlmKGVbbl0+MCl7cj1nW25dO2JyZWFrfXJldHVybiByfWZ1bmN0aW9uIHgodCxlKXtpZighKHQ8MXx8ZTwxKSl7Zm9yKHZhciByPW0odCksbj1tKGUpLGE9MSxpPTA7aTxnLmxlbmd0aDtpKyspYSo9TWF0aC5wb3coZ1tpXSxNYXRoLm1heChyW2ldLG5baV0pKTtyZXR1cm4gYX19ZC5jYWxjWG51bXM9ZnVuY3Rpb24odCl7dmFyIGUscj1bXTtmb3IoZT0xO2U8dDtlKyspe3ZhciBuPXRoaXMuZ2V0WGF0KGUtMSwwKSxhPXRoaXMuZ2V0WGF0KGUsMCk7cltlLTFdPWEhPT1uJiZudWxsIT1uJiZudWxsIT1hP01hdGguYWJzKGEtbik6MH12YXIgaT0wO2ZvcihlPTE7ZTx0O2UrKylpKz1yW2UtMV07Zm9yKGU9MTtlPHQ7ZSsrKTA9PT1yW2UtMV0/cltlLTFdPTE6cltlLTFdPU1hdGgucm91bmQoaS9yW2UtMV0pO3JldHVybiByfSxkLmNhbGNZbnVtcz1mdW5jdGlvbih0KXt2YXIgZSxyPVtdO2ZvcihlPTE7ZTx0O2UrKyl7dmFyIG49dGhpcy5nZXRZYXQoMCxlLTEpLGE9dGhpcy5nZXRZYXQoMCxlKTtyW2UtMV09YSE9PW4mJm51bGwhPW4mJm51bGwhPWE/TWF0aC5hYnMoYS1uKTowfXZhciBpPTA7Zm9yKGU9MTtlPHQ7ZSsrKWkrPXJbZS0xXTtmb3IoZT0xO2U8dDtlKyspMD09PXJbZS0xXT9yW2UtMV09MTpyW2UtMV09TWF0aC5yb3VuZChpL3JbZS0xXSk7cmV0dXJuIHJ9O3ZhciBiPVsxLDIsNCw2LDEyLDI0LDM2LDQ4LDYwLDEyMCwxODAsMjQwLDM2MCw3MjAsODQwLDEyNjBdLF89Yls5XSx3PWJbMTNdO2Z1bmN0aW9uIGsodCxlKXtmb3IodmFyIHI9ITEsbj0wO248dC5sZW5ndGg7bisrKWlmKGU9PT10W25dKXtyPSEwO2JyZWFrfSExPT09ciYmdC5wdXNoKGUpfWQuZXN0aW1hdGVTY2FsZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0xK2Z1bmN0aW9uKHQpe2lmKDAhPT10Lmxlbmd0aCl7Zm9yKHZhciBlPTEscj0wO3I8dC5sZW5ndGg7cisrKWU9eChlLHRbcl0pO3JldHVybiBlfX0oMD09PWU/dGhpcy5jYWxjWG51bXModCk6dGhpcy5jYWxjWW51bXModCkpO3I8Xzspcio9Mjtmb3IoO3I+dzspci0tLHIvPXkociksKytyPF8mJihyPXcpO3ZhciBuPU1hdGgucm91bmQoci90KTtyZXR1cm4gbj4xP246MX0sZC5yZWZpbmVDb29yZHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMuZGF0YVNjYWxlWCxyPXRoaXMuZGF0YVNjYWxlWSxuPXRbMF0uc2hhcGVbMF0sbz10WzBdLnNoYXBlWzFdLHM9MHxNYXRoLmZsb29yKHRbMF0uc2hhcGVbMF0qZSsxKSxsPTB8TWF0aC5mbG9vcih0WzBdLnNoYXBlWzFdKnIrMSksYz0xK24rMSx1PTErbysxLGg9YShuZXcgRmxvYXQzMkFycmF5KGMqdSksW2MsdV0pLGY9MDtmPHQubGVuZ3RoOysrZil7dGhpcy5zdXJmYWNlLnBhZEZpZWxkKGgsdFtmXSk7dmFyIHA9YShuZXcgRmxvYXQzMkFycmF5KHMqbCksW3MsbF0pO2kocCxoLFtlLDAsMCwwLHIsMCwwLDAsMV0pLHRbZl09cH19LGQuc2V0Q29udG91ckxldmVscz1mdW5jdGlvbigpe3ZhciB0LGUscixuPVtbXSxbXSxbXV0sYT1bITEsITEsITFdLGk9ITE7Zm9yKHQ9MDt0PDM7Kyt0KWlmKHRoaXMuc2hvd0NvbnRvdXJbdF0mJihpPSEwLHRoaXMuY29udG91clNpemVbdF0+MCYmbnVsbCE9PXRoaXMuY29udG91clN0YXJ0W3RdJiZudWxsIT09dGhpcy5jb250b3VyRW5kW3RdJiZ0aGlzLmNvbnRvdXJFbmRbdF0+dGhpcy5jb250b3VyU3RhcnRbdF0pKWZvcihhW3RdPSEwLGU9dGhpcy5jb250b3VyU3RhcnRbdF07ZTx0aGlzLmNvbnRvdXJFbmRbdF07ZSs9dGhpcy5jb250b3VyU2l6ZVt0XSlyPWUqdGhpcy5zY2VuZS5kYXRhU2NhbGVbdF0sayhuW3RdLHIpO2lmKGkpe3ZhciBvPVtbXSxbXSxbXV07Zm9yKHQ9MDt0PDM7Kyt0KXRoaXMuc2hvd0NvbnRvdXJbdF0mJihvW3RdPWFbdF0/blt0XTp0aGlzLnNjZW5lLmNvbnRvdXJMZXZlbHNbdF0pO3RoaXMuc3VyZmFjZS51cGRhdGUoe2xldmVsczpvfSl9fSxkLnVwZGF0ZT1mdW5jdGlvbih0KXt2YXIgZSxyLG4saSxzPXRoaXMuc2NlbmUscD1zLmZ1bGxTY2VuZUxheW91dCxkPXRoaXMuc3VyZmFjZSxnPXQub3BhY2l0eSx2PWwodCxnKSxtPXMuZGF0YVNjYWxlLHk9dC56WzBdLmxlbmd0aCx4PXQuX3lsZW5ndGgsYj1zLmNvbnRvdXJMZXZlbHM7dGhpcy5kYXRhPXQ7dmFyIF89W107Zm9yKGU9MDtlPDM7ZSsrKWZvcihfW2VdPVtdLHI9MDtyPHk7cisrKV9bZV1bcl09W107Zm9yKHI9MDtyPHk7cisrKWZvcihuPTA7bjx4O24rKylfWzBdW3JdW25dPXRoaXMuZ2V0WGF0KHIsbix0LnhjYWxlbmRhcixwLnhheGlzKSxfWzFdW3JdW25dPXRoaXMuZ2V0WWF0KHIsbix0LnljYWxlbmRhcixwLnlheGlzKSxfWzJdW3JdW25dPXRoaXMuZ2V0WmF0KHIsbix0LnpjYWxlbmRhcixwLnpheGlzKTtpZih0LmNvbm5lY3RnYXBzKWZvcih0Ll9lbXB0eXBvaW50cz1mKF9bMl0pLGgoX1syXSx0Ll9lbXB0eXBvaW50cyksdC5faW50ZXJwb2xhdGVkWj1bXSxyPTA7cjx5O3IrKylmb3IodC5faW50ZXJwb2xhdGVkWltyXT1bXSxuPTA7bjx4O24rKyl0Ll9pbnRlcnBvbGF0ZWRaW3JdW25dPV9bMl1bcl1bbl07Zm9yKGU9MDtlPDM7ZSsrKWZvcihyPTA7cjx5O3IrKylmb3Iobj0wO248eDtuKyspbnVsbD09KGk9X1tlXVtyXVtuXSk/X1tlXVtyXVtuXT1OYU46aT1fW2VdW3JdW25dKj1tW2VdO2ZvcihlPTA7ZTwzO2UrKylmb3Iocj0wO3I8eTtyKyspZm9yKG49MDtuPHg7bisrKW51bGwhPShpPV9bZV1bcl1bbl0pJiYodGhpcy5taW5WYWx1ZXNbZV0+aSYmKHRoaXMubWluVmFsdWVzW2VdPWkpLHRoaXMubWF4VmFsdWVzW2VdPGkmJih0aGlzLm1heFZhbHVlc1tlXT1pKSk7Zm9yKGU9MDtlPDM7ZSsrKXRoaXMub2JqZWN0T2Zmc2V0W2VdPS41Kih0aGlzLm1pblZhbHVlc1tlXSt0aGlzLm1heFZhbHVlc1tlXSk7Zm9yKGU9MDtlPDM7ZSsrKWZvcihyPTA7cjx5O3IrKylmb3Iobj0wO248eDtuKyspbnVsbCE9KGk9X1tlXVtyXVtuXSkmJihfW2VdW3JdW25dLT10aGlzLm9iamVjdE9mZnNldFtlXSk7dmFyIGs9W2EobmV3IEZsb2F0MzJBcnJheSh5KngpLFt5LHhdKSxhKG5ldyBGbG9hdDMyQXJyYXkoeSp4KSxbeSx4XSksYShuZXcgRmxvYXQzMkFycmF5KHkqeCksW3kseF0pXTtvKGtbMF0sZnVuY3Rpb24odCxlKXtyZXR1cm4gX1swXVt0XVtlXX0pLG8oa1sxXSxmdW5jdGlvbih0LGUpe3JldHVybiBfWzFdW3RdW2VdfSksbyhrWzJdLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIF9bMl1bdF1bZV19KSxfPVtdO3ZhciBUPXtjb2xvcm1hcDp2LGxldmVsczpbW10sW10sW11dLHNob3dDb250b3VyOlshMCwhMCwhMF0sc2hvd1N1cmZhY2U6IXQuaGlkZXN1cmZhY2UsY29udG91clByb2plY3Q6W1shMSwhMSwhMV0sWyExLCExLCExXSxbITEsITEsITFdXSxjb250b3VyV2lkdGg6WzEsMSwxXSxjb250b3VyQ29sb3I6W1sxLDEsMSwxXSxbMSwxLDEsMV0sWzEsMSwxLDFdXSxjb250b3VyVGludDpbMSwxLDFdLGR5bmFtaWNDb2xvcjpbWzEsMSwxLDFdLFsxLDEsMSwxXSxbMSwxLDEsMV1dLGR5bmFtaWNXaWR0aDpbMSwxLDFdLGR5bmFtaWNUaW50OlsxLDEsMV0sb3BhY2l0eTp0Lm9wYWNpdHl9LE09dSh0KTtpZihULmludGVuc2l0eUJvdW5kcz1bTS5taW4sTS5tYXhdLHQuc3VyZmFjZWNvbG9yKXt2YXIgQT1hKG5ldyBGbG9hdDMyQXJyYXkoeSp4KSxbeSx4XSk7byhBLGZ1bmN0aW9uKGUscil7cmV0dXJuIHQuc3VyZmFjZWNvbG9yW3JdW2VdfSksay5wdXNoKEEpfWVsc2UgVC5pbnRlbnNpdHlCb3VuZHNbMF0qPW1bMl0sVC5pbnRlbnNpdHlCb3VuZHNbMV0qPW1bMl07KHc8a1swXS5zaGFwZVswXXx8dzxrWzBdLnNoYXBlWzFdKSYmKHRoaXMucmVmaW5lRGF0YT0hMSksITA9PT10aGlzLnJlZmluZURhdGEmJih0aGlzLmRhdGFTY2FsZVg9dGhpcy5lc3RpbWF0ZVNjYWxlKGtbMF0uc2hhcGVbMF0sMCksdGhpcy5kYXRhU2NhbGVZPXRoaXMuZXN0aW1hdGVTY2FsZShrWzBdLnNoYXBlWzFdLDEpLDE9PT10aGlzLmRhdGFTY2FsZVgmJjE9PT10aGlzLmRhdGFTY2FsZVl8fHRoaXMucmVmaW5lQ29vcmRzKGspKSx0LnN1cmZhY2Vjb2xvciYmKFQuaW50ZW5zaXR5PWsucG9wKCkpO3ZhciBTPVshMCwhMCwhMF0sRT1bIngiLCJ5IiwieiJdO2ZvcihlPTA7ZTwzOysrZSl7dmFyIEw9dC5jb250b3Vyc1tFW2VdXTtTW2VdPUwuaGlnaGxpZ2h0LFQuc2hvd0NvbnRvdXJbZV09TC5zaG93fHxMLmhpZ2hsaWdodCxULnNob3dDb250b3VyW2VdJiYoVC5jb250b3VyUHJvamVjdFtlXT1bTC5wcm9qZWN0LngsTC5wcm9qZWN0LnksTC5wcm9qZWN0LnpdLEwuc2hvdz8odGhpcy5zaG93Q29udG91cltlXT0hMCxULmxldmVsc1tlXT1iW2VdLGQuaGlnaGxpZ2h0Q29sb3JbZV09VC5jb250b3VyQ29sb3JbZV09YyhMLmNvbG9yKSxMLnVzZWNvbG9ybWFwP2QuaGlnaGxpZ2h0VGludFtlXT1ULmNvbnRvdXJUaW50W2VdPTA6ZC5oaWdobGlnaHRUaW50W2VdPVQuY29udG91clRpbnRbZV09MSxULmNvbnRvdXJXaWR0aFtlXT1MLndpZHRoLHRoaXMuY29udG91clN0YXJ0W2VdPUwuc3RhcnQsdGhpcy5jb250b3VyRW5kW2VdPUwuZW5kLHRoaXMuY29udG91clNpemVbZV09TC5zaXplKToodGhpcy5zaG93Q29udG91cltlXT0hMSx0aGlzLmNvbnRvdXJTdGFydFtlXT1udWxsLHRoaXMuY29udG91ckVuZFtlXT1udWxsLHRoaXMuY29udG91clNpemVbZV09MCksTC5oaWdobGlnaHQmJihULmR5bmFtaWNDb2xvcltlXT1jKEwuaGlnaGxpZ2h0Y29sb3IpLFQuZHluYW1pY1dpZHRoW2VdPUwuaGlnaGxpZ2h0d2lkdGgpKX0oZnVuY3Rpb24odCl7dmFyIGU9dFswXS5yZ2Iscj10W3QubGVuZ3RoLTFdLnJnYjtyZXR1cm4gZVswXT09PXJbMF0mJmVbMV09PT1yWzFdJiZlWzJdPT09clsyXSYmZVszXT09PXJbM119KSh2KSYmKFQudmVydGV4Q29sb3I9ITApLFQub2JqZWN0T2Zmc2V0PXRoaXMub2JqZWN0T2Zmc2V0LFQuY29vcmRzPWssZC51cGRhdGUoVCksZC52aXNpYmxlPXQudmlzaWJsZSxkLmVuYWJsZUR5bmFtaWM9UyxkLmVuYWJsZUhpZ2hsaWdodD1TLGQuc25hcFRvRGF0YT0hMCwibGlnaHRpbmciaW4gdCYmKGQuYW1iaWVudExpZ2h0PXQubGlnaHRpbmcuYW1iaWVudCxkLmRpZmZ1c2VMaWdodD10LmxpZ2h0aW5nLmRpZmZ1c2UsZC5zcGVjdWxhckxpZ2h0PXQubGlnaHRpbmcuc3BlY3VsYXIsZC5yb3VnaG5lc3M9dC5saWdodGluZy5yb3VnaG5lc3MsZC5mcmVzbmVsPXQubGlnaHRpbmcuZnJlc25lbCksImxpZ2h0cG9zaXRpb24iaW4gdCYmKGQubGlnaHRQb3NpdGlvbj1bdC5saWdodHBvc2l0aW9uLngsdC5saWdodHBvc2l0aW9uLnksdC5saWdodHBvc2l0aW9uLnpdKSxnJiZnPDEmJihkLnN1cHBvcnRzVHJhbnNwYXJlbmN5PSEwKX0sZC5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5zY2VuZS5nbHBsb3QucmVtb3ZlKHRoaXMuc3VyZmFjZSksdGhpcy5zdXJmYWNlLmRpc3Bvc2UoKX0sZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5nbHBsb3QuZ2wsYT1uKHtnbDpyfSksaT1uZXcgcCh0LGEsZS51aWQpO3JldHVybiBhLl90cmFjZT1pLGkudXBkYXRlKGUpLHQuZ2xwbG90LmFkZChhKSxpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiOjYwNCwiLi4vLi4vbGliIjo3MTcsIi4uLy4uL2xpYi9nbF9mb3JtYXRfY29sb3IiOjcxNCwiLi4vLi4vbGliL3N0cjJyZ2JhcnJheSI6NzQwLCIuLi9oZWF0bWFwL2ZpbmRfZW1wdGllcyI6MTAwNiwiLi4vaGVhdG1hcC9pbnRlcnAyZCI6MTAwOSwiZ2wtc3VyZmFjZTNkIjozMTgsbmRhcnJheTo0NTIsIm5kYXJyYXktZmlsbCI6NDQyLCJuZGFycmF5LWhvbW9ncmFwaHkiOjQ0NH1dLDEyNDY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcmVnaXN0cnkiKSxhPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIiksbz10KCIuL2F0dHJpYnV0ZXMiKTtmdW5jdGlvbiBzKHQsZSxyKXtlIGluIHQmJiEociBpbiB0KSYmKHRbcl09dFtlXSl9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGwpe3ZhciBjLHU7ZnVuY3Rpb24gaChyLG4pe3JldHVybiBhLmNvZXJjZSh0LGUsbyxyLG4pfXZhciBmPWgoIngiKSxwPWgoInkiKSxkPWgoInoiKTtpZighZHx8IWQubGVuZ3RofHxmJiZmLmxlbmd0aDwxfHxwJiZwLmxlbmd0aDwxKWUudmlzaWJsZT0hMTtlbHNle2UuX3hsZW5ndGg9QXJyYXkuaXNBcnJheShmKSYmYS5pc0FycmF5T3JUeXBlZEFycmF5KGZbMF0pP2QubGVuZ3RoOmRbMF0ubGVuZ3RoLGUuX3lsZW5ndGg9ZC5sZW5ndGgsbi5nZXRDb21wb25lbnRNZXRob2QoImNhbGVuZGFycyIsImhhbmRsZVRyYWNlRGVmYXVsdHMiKSh0LGUsWyJ4IiwieSIsInoiXSxsKSxoKCJ0ZXh0IiksaCgiaG92ZXJ0ZXh0IiksaCgiaG92ZXJ0ZW1wbGF0ZSIpLFsibGlnaHRpbmcuYW1iaWVudCIsImxpZ2h0aW5nLmRpZmZ1c2UiLCJsaWdodGluZy5zcGVjdWxhciIsImxpZ2h0aW5nLnJvdWdobmVzcyIsImxpZ2h0aW5nLmZyZXNuZWwiLCJsaWdodHBvc2l0aW9uLngiLCJsaWdodHBvc2l0aW9uLnkiLCJsaWdodHBvc2l0aW9uLnoiLCJoaWRlc3VyZmFjZSIsImNvbm5lY3RnYXBzIiwib3BhY2l0eSJdLmZvckVhY2goZnVuY3Rpb24odCl7aCh0KX0pO3ZhciBnPWgoInN1cmZhY2Vjb2xvciIpLHY9WyJ4IiwieSIsInoiXTtmb3IoYz0wO2M8MzsrK2Mpe3ZhciBtPSJjb250b3Vycy4iK3ZbY10seT1oKG0rIi5zaG93IikseD1oKG0rIi5oaWdobGlnaHQiKTtpZih5fHx4KWZvcih1PTA7dTwzOysrdSloKG0rIi5wcm9qZWN0LiIrdlt1XSk7eSYmKGgobSsiLmNvbG9yIiksaChtKyIud2lkdGgiKSxoKG0rIi51c2Vjb2xvcm1hcCIpKSx4JiYoaChtKyIuaGlnaGxpZ2h0Y29sb3IiKSxoKG0rIi5oaWdobGlnaHR3aWR0aCIpKSxoKG0rIi5zdGFydCIpLGgobSsiLmVuZCIpLGgobSsiLnNpemUiKX1nfHwocyh0LCJ6bWluIiwiY21pbiIpLHModCwiem1heCIsImNtYXgiKSxzKHQsInphdXRvIiwiY2F1dG8iKSksaSh0LGUsbCxoLHtwcmVmaXg6IiIsY0xldHRlcjoiYyJ9KSxlLl9sZW5ndGg9bnVsbH19fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyI6NjAyLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vcmVnaXN0cnkiOjg0NiwiLi9hdHRyaWJ1dGVzIjoxMjQzfV0sMTI0NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNvbG9yYmFyOnttaW46ImNtaW4iLG1heDoiY21heCJ9LGNhbGM6dCgiLi9jYWxjIikscGxvdDp0KCIuL2NvbnZlcnQiKSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToic3VyZmFjZSIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvZ2wzZCIpLGNhdGVnb3JpZXM6WyJnbDNkIiwiMmRNYXAiLCJzaG93TGVnZW5kIl0sbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvZ2wzZCI6ODA1LCIuL2F0dHJpYnV0ZXMiOjEyNDMsIi4vY2FsYyI6MTI0NCwiLi9jb252ZXJ0IjoxMjQ1LCIuL2RlZmF1bHRzIjoxMjQ2fV0sMTI0ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2Fubm90YXRpb25zL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LGk9dCgiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyIpLm92ZXJyaWRlQWxsLG89dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9wbG90cy9kb21haW4iKS5hdHRyaWJ1dGVzO3QoIi4uLy4uL2NvbnN0YW50cy9kb2NzIikuRk9STUFUX0xJTks7KGUuZXhwb3J0cz1pKHtkb21haW46cyh7bmFtZToidGFibGUiLHRyYWNlOiEwfSksY29sdW1ud2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsYXJyYXlPazohMCxkZmx0Om51bGx9LGNvbHVtbm9yZGVyOnt2YWxUeXBlOiJkYXRhX2FycmF5In0saGVhZGVyOnt2YWx1ZXM6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGRmbHQ6W119LGZvcm1hdDp7dmFsVHlwZToiZGF0YV9hcnJheSIsZGZsdDpbXX0scHJlZml4Ont2YWxUeXBlOiJzdHJpbmciLGFycmF5T2s6ITAsZGZsdDpudWxsfSxzdWZmaXg6e3ZhbFR5cGU6InN0cmluZyIsYXJyYXlPazohMCxkZmx0Om51bGx9LGhlaWdodDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjI4fSxhbGlnbjphKHt9LG4uYWxpZ24se2FycmF5T2s6ITB9KSxsaW5lOnt3aWR0aDp7dmFsVHlwZToibnVtYmVyIixhcnJheU9rOiEwLGRmbHQ6MX0sY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixhcnJheU9rOiEwLGRmbHQ6ImdyZXkifX0sZmlsbDp7Y29sb3I6e3ZhbFR5cGU6ImNvbG9yIixhcnJheU9rOiEwLGRmbHQ6IndoaXRlIn19LGZvbnQ6YSh7fSxvKHthcnJheU9rOiEwfSkpfSxjZWxsczp7dmFsdWVzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixkZmx0OltdfSxmb3JtYXQ6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGRmbHQ6W119LHByZWZpeDp7dmFsVHlwZToic3RyaW5nIixhcnJheU9rOiEwLGRmbHQ6bnVsbH0sc3VmZml4Ont2YWxUeXBlOiJzdHJpbmciLGFycmF5T2s6ITAsZGZsdDpudWxsfSxoZWlnaHQ6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoyMH0sYWxpZ246YSh7fSxuLmFsaWduLHthcnJheU9rOiEwfSksbGluZTp7d2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsYXJyYXlPazohMCxkZmx0OjF9LGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsYXJyYXlPazohMCxkZmx0OiJncmV5In19LGZpbGw6e2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsYXJyYXlPazohMCxkZmx0OiJ3aGl0ZSJ9fSxmb250OmEoe30sbyh7YXJyYXlPazohMH0pKX19LCJjYWxjIiwiZnJvbS1yb290IikpLnRyYW5zZm9ybXM9dm9pZCAwfSx7Ii4uLy4uL2NvbXBvbmVudHMvYW5ub3RhdGlvbnMvYXR0cmlidXRlcyI6NTc1LCIuLi8uLi9jb25zdGFudHMvZG9jcyI6Njg4LCIuLi8uLi9saWIvZXh0ZW5kIjo3MDgsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjc0OCwiLi4vLi4vcGxvdHMvZG9tYWluIjo3OTAsIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyI6NzkxfV0sMTI0OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9nZXRfZGF0YSIpLmdldE1vZHVsZUNhbGNEYXRhLGE9dCgiLi9wbG90Iik7ci5uYW1lPSJ0YWJsZSIsci5wbG90PWZ1bmN0aW9uKHQpe3ZhciBlPW4odC5jYWxjZGF0YSwidGFibGUiKVswXTtlLmxlbmd0aCYmYSh0LGUpfSxyLmNsZWFuPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPW4uX2hhcyYmbi5faGFzKCJ0YWJsZSIpLGk9ZS5faGFzJiZlLl9oYXMoInRhYmxlIik7YSYmIWkmJm4uX3BhcGVyZGl2LnNlbGVjdEFsbCgiLnRhYmxlIikucmVtb3ZlKCl9fSx7Ii4uLy4uL3Bsb3RzL2dldF9kYXRhIjo4MDAsIi4vcGxvdCI6MTI1Nn1dLDEyNTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliL2d1cCIpLndyYXA7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7cmV0dXJuIG4oe30pfX0seyIuLi8uLi9saWIvZ3VwIjo3MTV9XSwxMjUxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17Y2VsbFBhZDo4LGNvbHVtbkV4dGVudE9mZnNldDoxMCxjb2x1bW5UaXRsZU9mZnNldDoyOCxlbXB0eUhlYWRlckhlaWdodDoxNixsYXRleENoZWNrOi9eXCQuKlwkJC8sZ29sZGVuUmF0aW86MS42MTgsbGluZUJyZWFrZXI6Ijxicj4iLG1heERpbWVuc2lvbkNvdW50OjYwLG92ZXJkcmFnOjQ1LHJlbGVhc2VUcmFuc2l0aW9uRHVyYXRpb246MTIwLHJlbGVhc2VUcmFuc2l0aW9uRWFzZToiY3ViaWMtb3V0IixzY3JvbGxiYXJDYXB0dXJlV2lkdGg6MTgsc2Nyb2xsYmFySGlkZURlbGF5OjFlMyxzY3JvbGxiYXJIaWRlRHVyYXRpb246MWUzLHNjcm9sbGJhck9mZnNldDo1LHNjcm9sbGJhcldpZHRoOjgsdHJhbnNpdGlvbkR1cmF0aW9uOjEwMCx0cmFuc2l0aW9uRWFzZToiY3ViaWMtb3V0Iix1cGxpZnQ6NSx3cmFwU3BhY2VyOiIgIix3cmFwU3BsaXRDaGFyYWN0ZXI6IiAiLGNuOnt0YWJsZToidGFibGUiLHRhYmxlQ29udHJvbFZpZXc6InRhYmxlLWNvbnRyb2wtdmlldyIsc2Nyb2xsQmFja2dyb3VuZDoic2Nyb2xsLWJhY2tncm91bmQiLHlDb2x1bW46InktY29sdW1uIixjb2x1bW5CbG9jazoiY29sdW1uLWJsb2NrIixzY3JvbGxBcmVhQ2xpcDoic2Nyb2xsLWFyZWEtY2xpcCIsc2Nyb2xsQXJlYUNsaXBSZWN0OiJzY3JvbGwtYXJlYS1jbGlwLXJlY3QiLGNvbHVtbkJvdW5kYXJ5OiJjb2x1bW4tYm91bmRhcnkiLGNvbHVtbkJvdW5kYXJ5Q2xpcHBhdGg6ImNvbHVtbi1ib3VuZGFyeS1jbGlwcGF0aCIsY29sdW1uQm91bmRhcnlSZWN0OiJjb2x1bW4tYm91bmRhcnktcmVjdCIsY29sdW1uQ2VsbHM6ImNvbHVtbi1jZWxscyIsY29sdW1uQ2VsbDoiY29sdW1uLWNlbGwiLGNlbGxSZWN0OiJjZWxsLXJlY3QiLGNlbGxUZXh0OiJjZWxsLXRleHQiLGNlbGxUZXh0SG9sZGVyOiJjZWxsLXRleHQtaG9sZGVyIixzY3JvbGxiYXJLaXQ6InNjcm9sbGJhci1raXQiLHNjcm9sbGJhcjoic2Nyb2xsYmFyIixzY3JvbGxiYXJTbGlkZXI6InNjcm9sbGJhci1zbGlkZXIiLHNjcm9sbGJhckdseXBoOiJzY3JvbGxiYXItZ2x5cGgiLHNjcm9sbGJhckNhcHR1cmVab25lOiJzY3JvbGxiYXItY2FwdHVyZS16b25lIn19fSx7fV0sMTI1MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2NvbnN0YW50cyIpLGE9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsaT10KCJmYXN0LWlzbnVtZXJpYyIpO2Z1bmN0aW9uIG8odCl7aWYoQXJyYXkuaXNBcnJheSh0KSl7Zm9yKHZhciBlPTAscj0wO3I8dC5sZW5ndGg7cisrKWU9TWF0aC5tYXgoZSxvKHRbcl0pKTtyZXR1cm4gZX1yZXR1cm4gdH1mdW5jdGlvbiBzKHQsZSl7cmV0dXJuIHQrZX1mdW5jdGlvbiBsKHQpe3ZhciBlLHI9dC5zbGljZSgpLG49MS8wLGE9MDtmb3IoZT0wO2U8ci5sZW5ndGg7ZSsrKUFycmF5LmlzQXJyYXkocltlXSl8fChyW2VdPVtyW2VdXSksbj1NYXRoLm1pbihuLHJbZV0ubGVuZ3RoKSxhPU1hdGgubWF4KGEscltlXS5sZW5ndGgpO2lmKG4hPT1hKWZvcihlPTA7ZTxyLmxlbmd0aDtlKyspe3ZhciBpPWEtcltlXS5sZW5ndGg7aSYmKHJbZV09cltlXS5jb25jYXQoYyhpKSkpfXJldHVybiByfWZ1bmN0aW9uIGModCl7Zm9yKHZhciBlPW5ldyBBcnJheSh0KSxyPTA7cjx0O3IrKyllW3JdPSIiO3JldHVybiBlfWZ1bmN0aW9uIHUodCl7cmV0dXJuIHQuY2FsY2RhdGEuY29sdW1ucy5yZWR1Y2UoZnVuY3Rpb24oZSxyKXtyZXR1cm4gci54SW5kZXg8dC54SW5kZXg/ZStyLmNvbHVtbldpZHRoOmV9LDApfWZ1bmN0aW9uIGgodCxlKXtyZXR1cm4gT2JqZWN0LmtleXModCkubWFwKGZ1bmN0aW9uKHIpe3JldHVybiBhKHt9LHRbcl0se2F1eGlsaWFyeUJsb2NrczplfSl9KX1mdW5jdGlvbiBmKHQsZSl7Zm9yKHZhciByLG49e30sYT0wLGk9MCxvPXtmaXJzdFJvd0luZGV4Om51bGwsbGFzdFJvd0luZGV4Om51bGwscm93czpbXX0scz0wLGw9MCxjPTA7Yzx0Lmxlbmd0aDtjKyspcj10W2NdLG8ucm93cy5wdXNoKHtyb3dJbmRleDpjLHJvd0hlaWdodDpyfSksKChpKz1yKT49ZXx8Yz09PXQubGVuZ3RoLTEpJiYoblthXT1vLG8ua2V5PWwrKyxvLmZpcnN0Um93SW5kZXg9cyxvLmxhc3RSb3dJbmRleD1jLG89e2ZpcnN0Um93SW5kZXg6bnVsbCxsYXN0Um93SW5kZXg6bnVsbCxyb3dzOltdfSxhKz1pLHM9YysxLGk9MCk7cmV0dXJuIG59ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bChlLmNlbGxzLnZhbHVlcykscD1mdW5jdGlvbih0KXtyZXR1cm4gdC5zbGljZShlLmhlYWRlci52YWx1ZXMubGVuZ3RoLHQubGVuZ3RoKX0sZD1sKGUuaGVhZGVyLnZhbHVlcyk7ZC5sZW5ndGgmJiFkWzBdLmxlbmd0aCYmKGRbMF09WyIiXSxkPWwoZCkpO3ZhciBnPWQuY29uY2F0KHAocikubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIGMoKGRbMF18fFsiIl0pLmxlbmd0aCl9KSksdj1lLmRvbWFpbixtPU1hdGguZmxvb3IodC5fZnVsbExheW91dC5fc2l6ZS53Kih2LnhbMV0tdi54WzBdKSkseT1NYXRoLmZsb29yKHQuX2Z1bGxMYXlvdXQuX3NpemUuaCoodi55WzFdLXYueVswXSkpLHg9ZS5oZWFkZXIudmFsdWVzLmxlbmd0aD9nWzBdLm1hcChmdW5jdGlvbigpe3JldHVybiBlLmhlYWRlci5oZWlnaHR9KTpbbi5lbXB0eUhlYWRlckhlaWdodF0sYj1yLmxlbmd0aD9yWzBdLm1hcChmdW5jdGlvbigpe3JldHVybiBlLmNlbGxzLmhlaWdodH0pOltdLF89eC5yZWR1Y2UocywwKSx3PWYoYix5LV8rbi51cGxpZnQpLGs9aChmKHgsXyksW10pLFQ9aCh3LGspLE09e30sQT1lLl9mdWxsSW5wdXQuY29sdW1ub3JkZXIuY29uY2F0KHAoci5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm4gZX0pKSksUz1nLm1hcChmdW5jdGlvbih0LHIpe3ZhciBuPUFycmF5LmlzQXJyYXkoZS5jb2x1bW53aWR0aCk/ZS5jb2x1bW53aWR0aFtNYXRoLm1pbihyLGUuY29sdW1ud2lkdGgubGVuZ3RoLTEpXTplLmNvbHVtbndpZHRoO3JldHVybiBpKG4pP051bWJlcihuKToxfSksRT1TLnJlZHVjZShzLDApO1M9Uy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQvRSptfSk7dmFyIEw9TWF0aC5tYXgobyhlLmhlYWRlci5saW5lLndpZHRoKSxvKGUuY2VsbHMubGluZS53aWR0aCkpLEM9e2tleTplLnVpZCt0Ll9jb250ZXh0LnN0YXRpY1Bsb3QsdHJhbnNsYXRlWDp2LnhbMF0qdC5fZnVsbExheW91dC5fc2l6ZS53LHRyYW5zbGF0ZVk6dC5fZnVsbExheW91dC5fc2l6ZS5oKigxLXYueVsxXSksc2l6ZTp0Ll9mdWxsTGF5b3V0Ll9zaXplLHdpZHRoOm0sbWF4TGluZVdpZHRoOkwsaGVpZ2h0OnksY29sdW1uT3JkZXI6QSxncm91cEhlaWdodDp5LHJvd0Jsb2NrczpULGhlYWRlclJvd0Jsb2NrczprLHNjcm9sbFk6MCxjZWxsczphKHt9LGUuY2VsbHMse3ZhbHVlczpyfSksaGVhZGVyQ2VsbHM6YSh7fSxlLmhlYWRlcix7dmFsdWVzOmd9KSxnZENvbHVtbnM6Zy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHRbMF19KSxnZENvbHVtbnNPcmlnaW5hbE9yZGVyOmcubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdfSkscHJldlBhZ2VzOlswLDBdLHNjcm9sbGJhclN0YXRlOntzY3JvbGxiYXJTY3JvbGxJblByb2dyZXNzOiExfSxjb2x1bW5zOmcubWFwKGZ1bmN0aW9uKHQsZSl7dmFyIHI9TVt0XTtyZXR1cm4gTVt0XT0ocnx8MCkrMSx7a2V5OnQrIl9fIitNW3RdLGxhYmVsOnQsc3BlY0luZGV4OmUseEluZGV4OkFbZV0seFNjYWxlOnUseDp2b2lkIDAsY2FsY2RhdGE6dm9pZCAwLGNvbHVtbldpZHRoOlNbZV19fSl9O3JldHVybiBDLmNvbHVtbnMuZm9yRWFjaChmdW5jdGlvbih0KXt0LmNhbGNkYXRhPUMsdC54PXUodCl9KSxDfX0seyIuLi8uLi9saWIvZXh0ZW5kIjo3MDgsIi4vY29uc3RhbnRzIjoxMjUxLCJmYXN0LWlzbnVtZXJpYyI6MjI4fV0sMTI1MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdDtyLnNwbGl0VG9QYW5lbHM9ZnVuY3Rpb24odCl7dmFyIGU9WzAsMF0scj1uKHt9LHQse2tleToiaGVhZGVyIix0eXBlOiJoZWFkZXIiLHBhZ2U6MCxwcmV2UGFnZXM6ZSxjdXJyZW50UmVwYWludDpbbnVsbCxudWxsXSxkcmFnSGFuZGxlOiEwLHZhbHVlczp0LmNhbGNkYXRhLmhlYWRlckNlbGxzLnZhbHVlc1t0LnNwZWNJbmRleF0scm93QmxvY2tzOnQuY2FsY2RhdGEuaGVhZGVyUm93QmxvY2tzLGNhbGNkYXRhOm4oe30sdC5jYWxjZGF0YSx7Y2VsbHM6dC5jYWxjZGF0YS5oZWFkZXJDZWxsc30pfSk7cmV0dXJuW24oe30sdCx7a2V5OiJjZWxsczEiLHR5cGU6ImNlbGxzIixwYWdlOjAscHJldlBhZ2VzOmUsY3VycmVudFJlcGFpbnQ6W251bGwsbnVsbF0sZHJhZ0hhbmRsZTohMSx2YWx1ZXM6dC5jYWxjZGF0YS5jZWxscy52YWx1ZXNbdC5zcGVjSW5kZXhdLHJvd0Jsb2Nrczp0LmNhbGNkYXRhLnJvd0Jsb2Nrc30pLG4oe30sdCx7a2V5OiJjZWxsczIiLHR5cGU6ImNlbGxzIixwYWdlOjEscHJldlBhZ2VzOmUsY3VycmVudFJlcGFpbnQ6W251bGwsbnVsbF0sZHJhZ0hhbmRsZTohMSx2YWx1ZXM6dC5jYWxjZGF0YS5jZWxscy52YWx1ZXNbdC5zcGVjSW5kZXhdLHJvd0Jsb2Nrczp0LmNhbGNkYXRhLnJvd0Jsb2Nrc30pLHJdfSxyLnNwbGl0VG9DZWxscz1mdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbih0KXt2YXIgZT10LnJvd0Jsb2Nrc1t0LnBhZ2VdLHI9ZT9lLnJvd3NbMF0ucm93SW5kZXg6MCxuPWU/citlLnJvd3MubGVuZ3RoOjA7cmV0dXJuW3Isbl19KHQpO3JldHVybih0LnZhbHVlc3x8W10pLnNsaWNlKGVbMF0sZVsxXSkubWFwKGZ1bmN0aW9uKHIsbil7cmV0dXJue2tleVdpdGhpbkJsb2NrOm4rKCJzdHJpbmciPT10eXBlb2YgciYmci5tYXRjaCgvWzwkJj4gXS8pPyJfa2V5YnVzdGVyXyIrTWF0aC5yYW5kb20oKToiIiksa2V5OmVbMF0rbixjb2x1bW46dCxjYWxjZGF0YTp0LmNhbGNkYXRhLHBhZ2U6dC5wYWdlLHJvd0Jsb2Nrczp0LnJvd0Jsb2Nrcyx2YWx1ZTpyfX0pfX0seyIuLi8uLi9saWIvZXh0ZW5kIjo3MDh9XSwxMjU0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9wbG90cy9kb21haW4iKS5kZWZhdWx0cztlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbyl7ZnVuY3Rpb24gcyhyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsYSxyLGkpfWkoZSxvLHMpLHMoImNvbHVtbndpZHRoIikscygiaGVhZGVyLnZhbHVlcyIpLHMoImhlYWRlci5mb3JtYXQiKSxzKCJoZWFkZXIuYWxpZ24iKSxzKCJoZWFkZXIucHJlZml4IikscygiaGVhZGVyLnN1ZmZpeCIpLHMoImhlYWRlci5oZWlnaHQiKSxzKCJoZWFkZXIubGluZS53aWR0aCIpLHMoImhlYWRlci5saW5lLmNvbG9yIikscygiaGVhZGVyLmZpbGwuY29sb3IiKSxuLmNvZXJjZUZvbnQocywiaGVhZGVyLmZvbnQiLG4uZXh0ZW5kRmxhdCh7fSxvLmZvbnQpKSxmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10LmNvbHVtbm9yZGVyfHxbXSxuPXQuaGVhZGVyLnZhbHVlcy5sZW5ndGgsYT1yLnNsaWNlKDAsbiksaT1hLnNsaWNlKCkuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiB0LWV9KSxvPWEubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBpLmluZGV4T2YodCl9KSxzPW8ubGVuZ3RoO3M8bjtzKyspby5wdXNoKHMpO2UoImNvbHVtbm9yZGVyIixvKX0oZSxzKSxzKCJjZWxscy52YWx1ZXMiKSxzKCJjZWxscy5mb3JtYXQiKSxzKCJjZWxscy5hbGlnbiIpLHMoImNlbGxzLnByZWZpeCIpLHMoImNlbGxzLnN1ZmZpeCIpLHMoImNlbGxzLmhlaWdodCIpLHMoImNlbGxzLmxpbmUud2lkdGgiKSxzKCJjZWxscy5saW5lLmNvbG9yIikscygiY2VsbHMuZmlsbC5jb2xvciIpLG4uY29lcmNlRm9udChzLCJjZWxscy5mb250IixuLmV4dGVuZEZsYXQoe30sby5mb250KSksZS5fbGVuZ3RoPW51bGx9fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi8uLi9wbG90cy9kb21haW4iOjc5MCwiLi9hdHRyaWJ1dGVzIjoxMjQ4fV0sMTI1NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNhbGM6dCgiLi9jYWxjIikscGxvdDp0KCIuL3Bsb3QiKSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToidGFibGUiLGJhc2VQbG90TW9kdWxlOnQoIi4vYmFzZV9wbG90IiksY2F0ZWdvcmllczpbIm5vT3BhY2l0eSJdLG1ldGE6e319fSx7Ii4vYXR0cmlidXRlcyI6MTI0OCwiLi9iYXNlX3Bsb3QiOjEyNDksIi4vY2FsYyI6MTI1MCwiLi9kZWZhdWx0cyI6MTI1NCwiLi9wbG90IjoxMjU2fV0sMTI1NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2NvbnN0YW50cyIpLGE9dCgiZDMiKSxpPXQoIi4uLy4uL2xpYi9ndXAiKSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLHM9dCgiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIiksbD10KCIuLi8uLi9saWIiKS5yYWlzZVRvVG9wLGM9dCgiLi4vLi4vbGliIikuY2FuY2VsVHJhbnNpdGlvbix1PXQoIi4vZGF0YV9wcmVwYXJhdGlvbl9oZWxwZXIiKSxoPXQoIi4vZGF0YV9zcGxpdF9oZWxwZXJzIiksZj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIik7ZnVuY3Rpb24gcCh0KXtyZXR1cm4gTWF0aC5jZWlsKHQuY2FsY2RhdGEubWF4TGluZVdpZHRoLzIpfWZ1bmN0aW9uIGQodCxlKXtyZXR1cm4iY2xpcCIrdC5fZnVsbExheW91dC5fdWlkKyJfc2Nyb2xsQXJlYUJvdHRvbUNsaXBfIitlLmtleX1mdW5jdGlvbiBnKHQsZSl7cmV0dXJuImNsaXAiK3QuX2Z1bGxMYXlvdXQuX3VpZCsiX2NvbHVtbkJvdW5kYXJ5Q2xpcHBhdGhfIitlLmNhbGNkYXRhLmtleSsiXyIrZS5zcGVjSW5kZXh9ZnVuY3Rpb24gdih0KXtyZXR1cm5bXS5jb25jYXQuYXBwbHkoW10sdC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHR9KSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0Ll9fZGF0YV9ffSl9ZnVuY3Rpb24gbSh0LGUscil7dmFyIG89dC5zZWxlY3RBbGwoIi4iK24uY24uc2Nyb2xsYmFyS2l0KS5kYXRhKGkucmVwZWF0LGkua2V5RnVuKTtvLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChuLmNuLnNjcm9sbGJhcktpdCwhMCkuc3R5bGUoInNoYXBlLXJlbmRlcmluZyIsImdlb21ldHJpY1ByZWNpc2lvbiIpLG8uZWFjaChmdW5jdGlvbih0KXt2YXIgZT10LnNjcm9sbGJhclN0YXRlO2UudG90YWxIZWlnaHQ9ZnVuY3Rpb24odCl7dmFyIGU9dC5yb3dCbG9ja3M7cmV0dXJuIHooZSxlLmxlbmd0aC0xKSsoZS5sZW5ndGg/SShlW2UubGVuZ3RoLTFdLDEvMCk6MSl9KHQpLGUuc2Nyb2xsYWJsZUFyZWFIZWlnaHQ9dC5ncm91cEhlaWdodC1NKHQpLGUuY3VycmVudGx5VmlzaWJsZUhlaWdodD1NYXRoLm1pbihlLnRvdGFsSGVpZ2h0LGUuc2Nyb2xsYWJsZUFyZWFIZWlnaHQpLGUucmF0aW89ZS5jdXJyZW50bHlWaXNpYmxlSGVpZ2h0L2UudG90YWxIZWlnaHQsZS5iYXJMZW5ndGg9TWF0aC5tYXgoZS5yYXRpbyplLmN1cnJlbnRseVZpc2libGVIZWlnaHQsbi5nb2xkZW5SYXRpbypuLnNjcm9sbGJhcldpZHRoKSxlLmJhcldpZ2dsZVJvb209ZS5jdXJyZW50bHlWaXNpYmxlSGVpZ2h0LWUuYmFyTGVuZ3RoLGUud2lnZ2xlUm9vbT1NYXRoLm1heCgwLGUudG90YWxIZWlnaHQtZS5zY3JvbGxhYmxlQXJlYUhlaWdodCksZS50b3BZPTA9PT1lLmJhcldpZ2dsZVJvb20/MDp0LnNjcm9sbFkvZS53aWdnbGVSb29tKmUuYmFyV2lnZ2xlUm9vbSxlLmJvdHRvbVk9ZS50b3BZK2UuYmFyTGVuZ3RoLGUuZHJhZ011bHRpcGxpZXI9ZS53aWdnbGVSb29tL2UuYmFyV2lnZ2xlUm9vbX0pLmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24odCl7cmV0dXJuInRyYW5zbGF0ZSgiKyh0LndpZHRoK24uc2Nyb2xsYmFyV2lkdGgvMituLnNjcm9sbGJhck9mZnNldCkrIiAiK00odCkrIikifSk7dmFyIHM9by5zZWxlY3RBbGwoIi4iK24uY24uc2Nyb2xsYmFyKS5kYXRhKGkucmVwZWF0LGkua2V5RnVuKTtzLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChuLmNuLnNjcm9sbGJhciwhMCk7dmFyIGw9cy5zZWxlY3RBbGwoIi4iK24uY24uc2Nyb2xsYmFyU2xpZGVyKS5kYXRhKGkucmVwZWF0LGkua2V5RnVuKTtsLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChuLmNuLnNjcm9sbGJhclNsaWRlciwhMCksbC5hdHRyKCJ0cmFuc2Zvcm0iLGZ1bmN0aW9uKHQpe3JldHVybiJ0cmFuc2xhdGUoMCAiKyh0LnNjcm9sbGJhclN0YXRlLnRvcFl8fDApKyIpIn0pO3ZhciBjPWwuc2VsZWN0QWxsKCIuIituLmNuLnNjcm9sbGJhckdseXBoKS5kYXRhKGkucmVwZWF0LGkua2V5RnVuKTtjLmVudGVyKCkuYXBwZW5kKCJsaW5lIikuY2xhc3NlZChuLmNuLnNjcm9sbGJhckdseXBoLCEwKS5hdHRyKCJzdHJva2UiLCJibGFjayIpLmF0dHIoInN0cm9rZS13aWR0aCIsbi5zY3JvbGxiYXJXaWR0aCkuYXR0cigic3Ryb2tlLWxpbmVjYXAiLCJyb3VuZCIpLmF0dHIoInkxIixuLnNjcm9sbGJhcldpZHRoLzIpLGMuYXR0cigieTIiLGZ1bmN0aW9uKHQpe3JldHVybiB0LnNjcm9sbGJhclN0YXRlLmJhckxlbmd0aC1uLnNjcm9sbGJhcldpZHRoLzJ9KS5hdHRyKCJzdHJva2Utb3BhY2l0eSIsZnVuY3Rpb24odCl7cmV0dXJuIHQuY29sdW1uRHJhZ0luUHJvZ3Jlc3N8fCF0LnNjcm9sbGJhclN0YXRlLmJhcldpZ2dsZVJvb218fHI/MDouNH0pLGMudHJhbnNpdGlvbigpLmRlbGF5KDApLmR1cmF0aW9uKDApLGMudHJhbnNpdGlvbigpLmRlbGF5KG4uc2Nyb2xsYmFySGlkZURlbGF5KS5kdXJhdGlvbihuLnNjcm9sbGJhckhpZGVEdXJhdGlvbikuYXR0cigic3Ryb2tlLW9wYWNpdHkiLDApO3ZhciB1PXMuc2VsZWN0QWxsKCIuIituLmNuLnNjcm9sbGJhckNhcHR1cmVab25lKS5kYXRhKGkucmVwZWF0LGkua2V5RnVuKTt1LmVudGVyKCkuYXBwZW5kKCJsaW5lIikuY2xhc3NlZChuLmNuLnNjcm9sbGJhckNhcHR1cmVab25lLCEwKS5hdHRyKCJzdHJva2UiLCJ3aGl0ZSIpLmF0dHIoInN0cm9rZS1vcGFjaXR5IiwuMDEpLmF0dHIoInN0cm9rZS13aWR0aCIsbi5zY3JvbGxiYXJDYXB0dXJlV2lkdGgpLmF0dHIoInN0cm9rZS1saW5lY2FwIiwiYnV0dCIpLmF0dHIoInkxIiwwKS5vbigibW91c2Vkb3duIixmdW5jdGlvbihyKXt2YXIgbj1hLmV2ZW50LnksaT10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89ci5zY3JvbGxiYXJTdGF0ZSxzPW4taS50b3AsbD1hLnNjYWxlLmxpbmVhcigpLmRvbWFpbihbMCxvLnNjcm9sbGFibGVBcmVhSGVpZ2h0XSkucmFuZ2UoWzAsby50b3RhbEhlaWdodF0pLmNsYW1wKCEwKTtvLnRvcFk8PXMmJnM8PW8uYm90dG9tWXx8UyhlLHQsbnVsbCxsKHMtby5iYXJMZW5ndGgvMikpKHIpfSkuY2FsbChhLmJlaGF2aW9yLmRyYWcoKS5vcmlnaW4oZnVuY3Rpb24odCl7cmV0dXJuIGEuZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCksdC5zY3JvbGxiYXJTdGF0ZS5zY3JvbGxiYXJTY3JvbGxJblByb2dyZXNzPSEwLHR9KS5vbigiZHJhZyIsUyhlLHQpKS5vbigiZHJhZ2VuZCIsZnVuY3Rpb24oKXt9KSksdS5hdHRyKCJ5MiIsZnVuY3Rpb24odCl7cmV0dXJuIHQuc2Nyb2xsYmFyU3RhdGUuc2Nyb2xsYWJsZUFyZWFIZWlnaHR9KSxlLl9jb250ZXh0LnN0YXRpY1Bsb3QmJihjLnJlbW92ZSgpLHUucmVtb3ZlKCkpfWZ1bmN0aW9uIHkodCxlLHIscyl7dmFyIGw9ZnVuY3Rpb24odCl7dmFyIGU9dC5zZWxlY3RBbGwoIi4iK24uY24uY29sdW1uQ2VsbCkuZGF0YShoLnNwbGl0VG9DZWxscyxmdW5jdGlvbih0KXtyZXR1cm4gdC5rZXlXaXRoaW5CbG9ja30pO3JldHVybiBlLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChuLmNuLmNvbHVtbkNlbGwsITApLGUuZXhpdCgpLnJlbW92ZSgpLGV9KGZ1bmN0aW9uKHQpe3ZhciBlPXQuc2VsZWN0QWxsKCIuIituLmNuLmNvbHVtbkNlbGxzKS5kYXRhKGkucmVwZWF0LGkua2V5RnVuKTtyZXR1cm4gZS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQobi5jbi5jb2x1bW5DZWxscywhMCksZS5leGl0KCkucmVtb3ZlKCksZX0ocikpOyFmdW5jdGlvbih0KXt0LmVhY2goZnVuY3Rpb24odCxlKXt2YXIgcj10LmNhbGNkYXRhLmNlbGxzLmZvbnQsbj10LmNvbHVtbi5zcGVjSW5kZXgsYT17c2l6ZTpfKHIuc2l6ZSxuLGUpLGNvbG9yOl8oci5jb2xvcixuLGUpLGZhbWlseTpfKHIuZmFtaWx5LG4sZSl9O3Qucm93TnVtYmVyPXQua2V5LHQuYWxpZ249Xyh0LmNhbGNkYXRhLmNlbGxzLmFsaWduLG4sZSksdC5jZWxsQm9yZGVyV2lkdGg9Xyh0LmNhbGNkYXRhLmNlbGxzLmxpbmUud2lkdGgsbixlKSx0LmZvbnQ9YX0pfShsKSxmdW5jdGlvbih0KXt0LmF0dHIoIndpZHRoIixmdW5jdGlvbih0KXtyZXR1cm4gdC5jb2x1bW4uY29sdW1uV2lkdGh9KS5hdHRyKCJzdHJva2Utd2lkdGgiLGZ1bmN0aW9uKHQpe3JldHVybiB0LmNlbGxCb3JkZXJXaWR0aH0pLmVhY2goZnVuY3Rpb24odCl7dmFyIGU9YS5zZWxlY3QodGhpcyk7Zi5zdHJva2UoZSxfKHQuY2FsY2RhdGEuY2VsbHMubGluZS5jb2xvcix0LmNvbHVtbi5zcGVjSW5kZXgsdC5yb3dOdW1iZXIpKSxmLmZpbGwoZSxfKHQuY2FsY2RhdGEuY2VsbHMuZmlsbC5jb2xvcix0LmNvbHVtbi5zcGVjSW5kZXgsdC5yb3dOdW1iZXIpKX0pfShmdW5jdGlvbih0KXt2YXIgZT10LnNlbGVjdEFsbCgiLiIrbi5jbi5jZWxsUmVjdCkuZGF0YShpLnJlcGVhdCxmdW5jdGlvbih0KXtyZXR1cm4gdC5rZXlXaXRoaW5CbG9ja30pO3JldHVybiBlLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuY2xhc3NlZChuLmNuLmNlbGxSZWN0LCEwKSxlfShsKSk7dmFyIGM9ZnVuY3Rpb24odCl7dmFyIGU9dC5zZWxlY3RBbGwoIi4iK24uY24uY2VsbFRleHQpLmRhdGEoaS5yZXBlYXQsZnVuY3Rpb24odCl7cmV0dXJuIHQua2V5V2l0aGluQmxvY2t9KTtyZXR1cm4gZS5lbnRlcigpLmFwcGVuZCgidGV4dCIpLmNsYXNzZWQobi5jbi5jZWxsVGV4dCwhMCkuc3R5bGUoImN1cnNvciIsZnVuY3Rpb24oKXtyZXR1cm4iYXV0byJ9KS5vbigibW91c2Vkb3duIixmdW5jdGlvbigpe2EuZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCl9KSxlfShmdW5jdGlvbih0KXt2YXIgZT10LnNlbGVjdEFsbCgiLiIrbi5jbi5jZWxsVGV4dEhvbGRlcikuZGF0YShpLnJlcGVhdCxmdW5jdGlvbih0KXtyZXR1cm4gdC5rZXlXaXRoaW5CbG9ja30pO3JldHVybiBlLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChuLmNuLmNlbGxUZXh0SG9sZGVyLCEwKS5zdHlsZSgic2hhcGUtcmVuZGVyaW5nIiwiZ2VvbWV0cmljUHJlY2lzaW9uIiksZX0obCkpOyFmdW5jdGlvbih0KXt0LmVhY2goZnVuY3Rpb24odCl7by5mb250KGEuc2VsZWN0KHRoaXMpLHQuZm9udCl9KX0oYykseChjLGUscyx0KSxPKGwpfWZ1bmN0aW9uIHgodCxlLHIsaSl7dC50ZXh0KGZ1bmN0aW9uKHQpe3ZhciBlPXQuY29sdW1uLnNwZWNJbmRleCxyPXQucm93TnVtYmVyLGk9dC52YWx1ZSxvPSJzdHJpbmciPT10eXBlb2YgaSxzPW8mJmkubWF0Y2goLzxicj4vaSksbD0hb3x8czt0Lm1heUhhdmVNYXJrdXA9byYmaS5tYXRjaCgvWzwmPl0vKTt2YXIgYyx1PSJzdHJpbmciPT10eXBlb2YoYz1pKSYmYy5tYXRjaChuLmxhdGV4Q2hlY2spO3QubGF0ZXg9dTt2YXIgaCxmLHA9dT8iIjpfKHQuY2FsY2RhdGEuY2VsbHMucHJlZml4LGUscil8fCIiLGQ9dT8iIjpfKHQuY2FsY2RhdGEuY2VsbHMuc3VmZml4LGUscil8fCIiLGc9dT9udWxsOl8odC5jYWxjZGF0YS5jZWxscy5mb3JtYXQsZSxyKXx8bnVsbCx2PXArKGc/YS5mb3JtYXQoZykodC52YWx1ZSk6dC52YWx1ZSkrZDtpZih0LndyYXBwaW5nTmVlZGVkPSF0LndyYXBwZWQmJiFsJiYhdSYmKGg9Yih2KSksdC5jZWxsSGVpZ2h0TWF5SW5jcmVhc2U9c3x8dXx8dC5tYXlIYXZlTWFya3VwfHwodm9pZCAwPT09aD9iKHYpOmgpLHQubmVlZHNDb252ZXJ0VG9Uc3BhbnM9dC5tYXlIYXZlTWFya3VwfHx0LndyYXBwaW5nTmVlZGVkfHx0LmxhdGV4LHQud3JhcHBpbmdOZWVkZWQpe3ZhciBtPSgiICI9PT1uLndyYXBTcGxpdENoYXJhY3Rlcj92LnJlcGxhY2UoLzxhIGhyZWY9L2dpLCI8YV9ocmVmPSIpOnYpLnNwbGl0KG4ud3JhcFNwbGl0Q2hhcmFjdGVyKSx5PSIgIj09PW4ud3JhcFNwbGl0Q2hhcmFjdGVyP20ubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlcGxhY2UoLzxhX2hyZWY9L2dpLCI8YSBocmVmPSIpfSk6bTt0LmZyYWdtZW50cz15Lm1hcChmdW5jdGlvbih0KXtyZXR1cm57dGV4dDp0LHdpZHRoOm51bGx9fSksdC5mcmFnbWVudHMucHVzaCh7ZnJhZ21lbnQ6bi53cmFwU3BhY2VyLHdpZHRoOm51bGx9KSxmPXkuam9pbihuLmxpbmVCcmVha2VyKStuLmxpbmVCcmVha2VyK24ud3JhcFNwYWNlcn1lbHNlIGRlbGV0ZSB0LmZyYWdtZW50cyxmPXY7cmV0dXJuIGZ9KS5hdHRyKCJkeSIsZnVuY3Rpb24odCl7cmV0dXJuIHQubmVlZHNDb252ZXJ0VG9Uc3BhbnM/MDoiMC43NWVtIn0pLmVhY2goZnVuY3Rpb24odCl7dmFyIG89YS5zZWxlY3QodGhpcyksbD10LndyYXBwaW5nTmVlZGVkP0w6Qzt0Lm5lZWRzQ29udmVydFRvVHNwYW5zP3MuY29udmVydFRvVHNwYW5zKG8saSxsKHIsdGhpcyxlLGksdCkpOmEuc2VsZWN0KHRoaXMucGFyZW50Tm9kZSkuYXR0cigidHJhbnNmb3JtIixmdW5jdGlvbih0KXtyZXR1cm4idHJhbnNsYXRlKCIrUCh0KSsiICIrbi5jZWxsUGFkKyIpIn0pLmF0dHIoInRleHQtYW5jaG9yIixmdW5jdGlvbih0KXtyZXR1cm57bGVmdDoic3RhcnQiLGNlbnRlcjoibWlkZGxlIixyaWdodDoiZW5kIn1bdC5hbGlnbl19KX0pfWZ1bmN0aW9uIGIodCl7cmV0dXJuLTEhPT10LmluZGV4T2Yobi53cmFwU3BsaXRDaGFyYWN0ZXIpfWZ1bmN0aW9uIF8odCxlLHIpe2lmKEFycmF5LmlzQXJyYXkodCkpe3ZhciBuPXRbTWF0aC5taW4oZSx0Lmxlbmd0aC0xKV07cmV0dXJuIEFycmF5LmlzQXJyYXkobik/bltNYXRoLm1pbihyLG4ubGVuZ3RoLTEpXTpufXJldHVybiB0fWZ1bmN0aW9uIHcodCxlLHIpe3QudHJhbnNpdGlvbigpLmVhc2Uobi5yZWxlYXNlVHJhbnNpdGlvbkVhc2UpLmR1cmF0aW9uKG4ucmVsZWFzZVRyYW5zaXRpb25EdXJhdGlvbikuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrZS54KyIgIityKyIpIil9ZnVuY3Rpb24gayh0KXtyZXR1cm4iY2VsbHMiPT09dC50eXBlfWZ1bmN0aW9uIFQodCl7cmV0dXJuImhlYWRlciI9PT10LnR5cGV9ZnVuY3Rpb24gTSh0KXtyZXR1cm4odC5yb3dCbG9ja3MubGVuZ3RoP3Qucm93QmxvY2tzWzBdLmF1eGlsaWFyeUJsb2NrczpbXSkucmVkdWNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrSShlLDEvMCl9LDApfWZ1bmN0aW9uIEEodCxlLHIpe3ZhciBuPXYoZSlbMF07aWYodm9pZCAwIT09bil7dmFyIGE9bi5yb3dCbG9ja3MsaT1uLmNhbGNkYXRhLG89eihhLGEubGVuZ3RoKSxzPW4uY2FsY2RhdGEuZ3JvdXBIZWlnaHQtTShuKSxsPWkuc2Nyb2xsWT1NYXRoLm1heCgwLE1hdGgubWluKG8tcyxpLnNjcm9sbFkpKSxjPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49W10sYT0wLGk9MDtpPHQubGVuZ3RoO2krKyl7Zm9yKHZhciBvPXRbaV0scz1vLnJvd3MsbD0wLGM9MDtjPHMubGVuZ3RoO2MrKylsKz1zW2NdLnJvd0hlaWdodDtvLmFsbFJvd3NIZWlnaHQ9bCxlPGErbCYmZStyPmEmJm4ucHVzaChpKSxhKz1sfXJldHVybiBufShhLGwscyk7MT09PWMubGVuZ3RoJiYoY1swXT09PWEubGVuZ3RoLTE/Yy51bnNoaWZ0KGNbMF0tMSk6Yy5wdXNoKGNbMF0rMSkpLGNbMF0lMiYmYy5yZXZlcnNlKCksZS5lYWNoKGZ1bmN0aW9uKHQsZSl7dC5wYWdlPWNbZV0sdC5zY3JvbGxZPWx9KSxlLmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24odCl7cmV0dXJuInRyYW5zbGF0ZSgwICIrKHoodC5yb3dCbG9ja3MsdC5wYWdlKS10LnNjcm9sbFkpKyIpIn0pLHQmJihFKHQscixlLGMsbi5wcmV2UGFnZXMsbiwwKSxFKHQscixlLGMsbi5wcmV2UGFnZXMsbiwxKSxtKHIsdCkpfX1mdW5jdGlvbiBTKHQsZSxyLGkpe3JldHVybiBmdW5jdGlvbihvKXt2YXIgcz1vLmNhbGNkYXRhP28uY2FsY2RhdGE6byxsPWUuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBzLmtleT09PXQua2V5fSksYz1yfHxzLnNjcm9sbGJhclN0YXRlLmRyYWdNdWx0aXBsaWVyLHU9cy5zY3JvbGxZO3Muc2Nyb2xsWT12b2lkIDA9PT1pP3Muc2Nyb2xsWStjKmEuZXZlbnQuZHk6aTt2YXIgaD1sLnNlbGVjdEFsbCgiLiIrbi5jbi55Q29sdW1uKS5zZWxlY3RBbGwoIi4iK24uY24uY29sdW1uQmxvY2spLmZpbHRlcihrKTtyZXR1cm4gQSh0LGgsbCkscy5zY3JvbGxZPT09dX19ZnVuY3Rpb24gRSh0LGUscixuLGEsaSxvKXtuW29dIT09YVtvXSYmKGNsZWFyVGltZW91dChpLmN1cnJlbnRSZXBhaW50W29dKSxpLmN1cnJlbnRSZXBhaW50W29dPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgaT1yLmZpbHRlcihmdW5jdGlvbih0LGUpe3JldHVybiBlPT09byYmbltlXSE9PWFbZV19KTt5KHQsZSxpLHIpLGFbb109bltvXX0pKX1mdW5jdGlvbiBMKHQsZSxyLGkpe3JldHVybiBmdW5jdGlvbigpe3ZhciBvPWEuc2VsZWN0KGUucGFyZW50Tm9kZSk7by5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPXQuZnJhZ21lbnRzO28uc2VsZWN0QWxsKCJ0c3Bhbi5saW5lIikuZWFjaChmdW5jdGlvbih0LHIpe2Vbcl0ud2lkdGg9dGhpcy5nZXRDb21wdXRlZFRleHRMZW5ndGgoKX0pO3ZhciByLGEsaT1lW2UubGVuZ3RoLTFdLndpZHRoLHM9ZS5zbGljZSgwLC0xKSxsPVtdLGM9MCx1PXQuY29sdW1uLmNvbHVtbldpZHRoLTIqbi5jZWxsUGFkO2Zvcih0LnZhbHVlPSIiO3MubGVuZ3RoOyljKyhhPShyPXMuc2hpZnQoKSkud2lkdGgraSk+dSYmKHQudmFsdWUrPWwuam9pbihuLndyYXBTcGFjZXIpK24ubGluZUJyZWFrZXIsbD1bXSxjPTApLGwucHVzaChyLnRleHQpLGMrPWE7YyYmKHQudmFsdWUrPWwuam9pbihuLndyYXBTcGFjZXIpKSx0LndyYXBwZWQ9ITB9KSxvLnNlbGVjdEFsbCgidHNwYW4ubGluZSIpLnJlbW92ZSgpLHgoby5zZWxlY3QoIi4iK24uY24uY2VsbFRleHQpLHIsdCxpKSxhLnNlbGVjdChlLnBhcmVudE5vZGUucGFyZW50Tm9kZSkuY2FsbChPKX19ZnVuY3Rpb24gQyh0LGUscixpLG8pe3JldHVybiBmdW5jdGlvbigpe2lmKCFvLnNldHRsZWRZKXt2YXIgcz1hLnNlbGVjdChlLnBhcmVudE5vZGUpLGw9UihvKSxjPW8ua2V5LWwuZmlyc3RSb3dJbmRleCx1PWwucm93c1tjXS5yb3dIZWlnaHQsaD1vLmNlbGxIZWlnaHRNYXlJbmNyZWFzZT9lLnBhcmVudE5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0KzIqbi5jZWxsUGFkOnUsZj1NYXRoLm1heChoLHUpO2YtbC5yb3dzW2NdLnJvd0hlaWdodCYmKGwucm93c1tjXS5yb3dIZWlnaHQ9Zix0LnNlbGVjdEFsbCgiLiIrbi5jbi5jb2x1bW5DZWxsKS5jYWxsKE8pLEEobnVsbCx0LmZpbHRlcihrKSwwKSxtKHIsaSwhMCkpLHMuYXR0cigidHJhbnNmb3JtIixmdW5jdGlvbigpe3ZhciB0PXRoaXMucGFyZW50Tm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxlPWEuc2VsZWN0KHRoaXMucGFyZW50Tm9kZSkuc2VsZWN0KCIuIituLmNuLmNlbGxSZWN0KS5ub2RlKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscj10aGlzLnRyYW5zZm9ybS5iYXNlVmFsLmNvbnNvbGlkYXRlKCksaT1lLnRvcC10LnRvcCsocj9yLm1hdHJpeC5mOm4uY2VsbFBhZCk7cmV0dXJuInRyYW5zbGF0ZSgiK1AobyxhLnNlbGVjdCh0aGlzLnBhcmVudE5vZGUpLnNlbGVjdCgiLiIrbi5jbi5jZWxsVGV4dEhvbGRlcikubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKSsiICIraSsiKSJ9KSxvLnNldHRsZWRZPSEwfX19ZnVuY3Rpb24gUCh0LGUpe3N3aXRjaCh0LmFsaWduKXtjYXNlImxlZnQiOnJldHVybiBuLmNlbGxQYWQ7Y2FzZSJyaWdodCI6cmV0dXJuIHQuY29sdW1uLmNvbHVtbldpZHRoLShlfHwwKS1uLmNlbGxQYWQ7Y2FzZSJjZW50ZXIiOnJldHVybih0LmNvbHVtbi5jb2x1bW5XaWR0aC0oZXx8MCkpLzI7ZGVmYXVsdDpyZXR1cm4gbi5jZWxsUGFkfX1mdW5jdGlvbiBPKHQpe3QuYXR0cigidHJhbnNmb3JtIixmdW5jdGlvbih0KXt2YXIgZT10LnJvd0Jsb2Nrc1swXS5hdXhpbGlhcnlCbG9ja3MucmVkdWNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrSShlLDEvMCl9LDApO3JldHVybiJ0cmFuc2xhdGUoMCAiKyhJKFIodCksdC5rZXkpK2UpKyIpIn0pLnNlbGVjdEFsbCgiLiIrbi5jbi5jZWxsUmVjdCkuYXR0cigiaGVpZ2h0IixmdW5jdGlvbih0KXtyZXR1cm4oZT1SKHQpLHI9dC5rZXksZS5yb3dzW3ItZS5maXJzdFJvd0luZGV4XSkucm93SGVpZ2h0O3ZhciBlLHJ9KX1mdW5jdGlvbiB6KHQsZSl7Zm9yKHZhciByPTAsbj1lLTE7bj49MDtuLS0pcis9RCh0W25dKTtyZXR1cm4gcn1mdW5jdGlvbiBJKHQsZSl7Zm9yKHZhciByPTAsbj0wO248dC5yb3dzLmxlbmd0aCYmdC5yb3dzW25dLnJvd0luZGV4PGU7bisrKXIrPXQucm93c1tuXS5yb3dIZWlnaHQ7cmV0dXJuIHJ9ZnVuY3Rpb24gRCh0KXt2YXIgZT10LmFsbFJvd3NIZWlnaHQ7aWYodm9pZCAwIT09ZSlyZXR1cm4gZTtmb3IodmFyIHI9MCxuPTA7bjx0LnJvd3MubGVuZ3RoO24rKylyKz10LnJvd3Nbbl0ucm93SGVpZ2h0O3JldHVybiB0LmFsbFJvd3NIZWlnaHQ9cixyfWZ1bmN0aW9uIFIodCl7cmV0dXJuIHQucm93QmxvY2tzW3QucGFnZV19ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9IXQuX2NvbnRleHQuc3RhdGljUGxvdCxzPXQuX2Z1bGxMYXlvdXQuX3BhcGVyLnNlbGVjdEFsbCgiLiIrbi5jbi50YWJsZSkuZGF0YShlLm1hcChmdW5jdGlvbihlKXt2YXIgcj1pLnVud3JhcChlKS50cmFjZTtyZXR1cm4gdSh0LHIpfSksaS5rZXlGdW4pO3MuZXhpdCgpLnJlbW92ZSgpLHMuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKG4uY24udGFibGUsITApLmF0dHIoIm92ZXJmbG93IiwidmlzaWJsZSIpLnN0eWxlKCJib3gtc2l6aW5nIiwiY29udGVudC1ib3giKS5zdHlsZSgicG9zaXRpb24iLCJhYnNvbHV0ZSIpLnN0eWxlKCJsZWZ0IiwwKS5zdHlsZSgib3ZlcmZsb3ciLCJ2aXNpYmxlIikuc3R5bGUoInNoYXBlLXJlbmRlcmluZyIsImNyaXNwRWRnZXMiKS5zdHlsZSgicG9pbnRlci1ldmVudHMiLCJhbGwiKSxzLmF0dHIoIndpZHRoIixmdW5jdGlvbih0KXtyZXR1cm4gdC53aWR0aCt0LnNpemUubCt0LnNpemUucn0pLmF0dHIoImhlaWdodCIsZnVuY3Rpb24odCl7cmV0dXJuIHQuaGVpZ2h0K3Quc2l6ZS50K3Quc2l6ZS5ifSkuYXR0cigidHJhbnNmb3JtIixmdW5jdGlvbih0KXtyZXR1cm4idHJhbnNsYXRlKCIrdC50cmFuc2xhdGVYKyIsIit0LnRyYW5zbGF0ZVkrIikifSk7dmFyIGY9cy5zZWxlY3RBbGwoIi4iK24uY24udGFibGVDb250cm9sVmlldykuZGF0YShpLnJlcGVhdCxpLmtleUZ1bikseD1mLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChuLmNuLnRhYmxlQ29udHJvbFZpZXcsITApLnN0eWxlKCJib3gtc2l6aW5nIiwiY29udGVudC1ib3giKTtyJiZ4Lm9uKCJtb3VzZW1vdmUiLGZ1bmN0aW9uKGUpe2YuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBlPT09dH0pLmNhbGwobSx0KX0pLm9uKCJtb3VzZXdoZWVsIixmdW5jdGlvbihlKXtpZighZS5zY3JvbGxiYXJTdGF0ZS53aGVlbGluZyl7ZS5zY3JvbGxiYXJTdGF0ZS53aGVlbGluZz0hMDt2YXIgcj1lLnNjcm9sbFkrYS5ldmVudC5kZWx0YVk7Uyh0LGYsbnVsbCxyKShlKXx8KGEuZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCksYS5ldmVudC5wcmV2ZW50RGVmYXVsdCgpKSxlLnNjcm9sbGJhclN0YXRlLndoZWVsaW5nPSExfX0pLmNhbGwobSx0LCEwKSxmLmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24odCl7cmV0dXJuInRyYW5zbGF0ZSgiK3Quc2l6ZS5sKyIgIit0LnNpemUudCsiKSJ9KTt2YXIgYj1mLnNlbGVjdEFsbCgiLiIrbi5jbi5zY3JvbGxCYWNrZ3JvdW5kKS5kYXRhKGkucmVwZWF0LGkua2V5RnVuKTtiLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuY2xhc3NlZChuLmNuLnNjcm9sbEJhY2tncm91bmQsITApLmF0dHIoImZpbGwiLCJub25lIiksYi5hdHRyKCJ3aWR0aCIsZnVuY3Rpb24odCl7cmV0dXJuIHQud2lkdGh9KS5hdHRyKCJoZWlnaHQiLGZ1bmN0aW9uKHQpe3JldHVybiB0LmhlaWdodH0pLGYuZWFjaChmdW5jdGlvbihlKXtvLnNldENsaXBVcmwoYS5zZWxlY3QodGhpcyksZCh0LGUpLHQpfSk7dmFyIF89Zi5zZWxlY3RBbGwoIi4iK24uY24ueUNvbHVtbikuZGF0YShmdW5jdGlvbih0KXtyZXR1cm4gdC5jb2x1bW5zfSxpLmtleUZ1bik7Xy5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQobi5jbi55Q29sdW1uLCEwKSxfLmV4aXQoKS5yZW1vdmUoKSxfLmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24odCl7cmV0dXJuInRyYW5zbGF0ZSgiK3QueCsiIDApIn0pLHImJl8uY2FsbChhLmJlaGF2aW9yLmRyYWcoKS5vcmlnaW4oZnVuY3Rpb24oZSl7cmV0dXJuIHcoYS5zZWxlY3QodGhpcyksZSwtbi51cGxpZnQpLGwodGhpcyksZS5jYWxjZGF0YS5jb2x1bW5EcmFnSW5Qcm9ncmVzcz0hMCxtKGYuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBlLmNhbGNkYXRhLmtleT09PXQua2V5fSksdCksZX0pLm9uKCJkcmFnIixmdW5jdGlvbih0KXt2YXIgZT1hLnNlbGVjdCh0aGlzKSxyPWZ1bmN0aW9uKGUpe3JldHVybih0PT09ZT9hLmV2ZW50Lng6ZS54KStlLmNvbHVtbldpZHRoLzJ9O3QueD1NYXRoLm1heCgtbi5vdmVyZHJhZyxNYXRoLm1pbih0LmNhbGNkYXRhLndpZHRoK24ub3ZlcmRyYWctdC5jb2x1bW5XaWR0aCxhLmV2ZW50LngpKSx2KF8pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZS5jYWxjZGF0YS5rZXk9PT10LmNhbGNkYXRhLmtleX0pLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gcih0KS1yKGUpfSkuZm9yRWFjaChmdW5jdGlvbihlLHIpe2UueEluZGV4PXIsZS54PXQ9PT1lP2UueDplLnhTY2FsZShlKX0pLF8uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiB0IT09ZX0pLnRyYW5zaXRpb24oKS5lYXNlKG4udHJhbnNpdGlvbkVhc2UpLmR1cmF0aW9uKG4udHJhbnNpdGlvbkR1cmF0aW9uKS5hdHRyKCJ0cmFuc2Zvcm0iLGZ1bmN0aW9uKHQpe3JldHVybiJ0cmFuc2xhdGUoIit0LngrIiAwKSJ9KSxlLmNhbGwoYykuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrdC54KyIgLSIrbi51cGxpZnQrIiApIil9KS5vbigiZHJhZ2VuZCIsZnVuY3Rpb24oZSl7dmFyIHI9YS5zZWxlY3QodGhpcyksbj1lLmNhbGNkYXRhO2UueD1lLnhTY2FsZShlKSxlLmNhbGNkYXRhLmNvbHVtbkRyYWdJblByb2dyZXNzPSExLHcocixlLDApLGZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lLmdkQ29sdW1uc09yaWdpbmFsT3JkZXI7ZS5nZENvbHVtbnMuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiByW24uaW5kZXhPZih0KV0tcltuLmluZGV4T2YoZSldfSksZS5jb2x1bW5vcmRlcj1yLHQuZW1pdCgicGxvdGx5X3Jlc3R5bGUiKX0odCxuLG4uY29sdW1ucy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQueEluZGV4fSkpfSkpLF8uZWFjaChmdW5jdGlvbihlKXtvLnNldENsaXBVcmwoYS5zZWxlY3QodGhpcyksZyh0LGUpLHQpfSk7dmFyIE09Xy5zZWxlY3RBbGwoIi4iK24uY24uY29sdW1uQmxvY2spLmRhdGEoaC5zcGxpdFRvUGFuZWxzLGkua2V5RnVuKTtNLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChuLmNuLmNvbHVtbkJsb2NrLCEwKS5hdHRyKCJpZCIsZnVuY3Rpb24odCl7cmV0dXJuIHQua2V5fSksTS5zdHlsZSgiY3Vyc29yIixmdW5jdGlvbih0KXtyZXR1cm4gdC5kcmFnSGFuZGxlPyJldy1yZXNpemUiOnQuY2FsY2RhdGEuc2Nyb2xsYmFyU3RhdGUuYmFyV2lnZ2xlUm9vbT8ibnMtcmVzaXplIjoiZGVmYXVsdCJ9KTt2YXIgRT1NLmZpbHRlcihUKSxMPU0uZmlsdGVyKGspO3ImJkwuY2FsbChhLmJlaGF2aW9yLmRyYWcoKS5vcmlnaW4oZnVuY3Rpb24odCl7cmV0dXJuIGEuZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCksdH0pLm9uKCJkcmFnIixTKHQsZiwtMSkpLm9uKCJkcmFnZW5kIixmdW5jdGlvbigpe30pKSx5KHQsZixFLE0pLHkodCxmLEwsTSk7dmFyIEM9Zi5zZWxlY3RBbGwoIi4iK24uY24uc2Nyb2xsQXJlYUNsaXApLmRhdGEoaS5yZXBlYXQsaS5rZXlGdW4pO0MuZW50ZXIoKS5hcHBlbmQoImNsaXBQYXRoIikuY2xhc3NlZChuLmNuLnNjcm9sbEFyZWFDbGlwLCEwKS5hdHRyKCJpZCIsZnVuY3Rpb24oZSl7cmV0dXJuIGQodCxlKX0pO3ZhciBQPUMuc2VsZWN0QWxsKCIuIituLmNuLnNjcm9sbEFyZWFDbGlwUmVjdCkuZGF0YShpLnJlcGVhdCxpLmtleUZ1bik7UC5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmNsYXNzZWQobi5jbi5zY3JvbGxBcmVhQ2xpcFJlY3QsITApLmF0dHIoIngiLC1uLm92ZXJkcmFnKS5hdHRyKCJ5Iiwtbi51cGxpZnQpLmF0dHIoImZpbGwiLCJub25lIiksUC5hdHRyKCJ3aWR0aCIsZnVuY3Rpb24odCl7cmV0dXJuIHQud2lkdGgrMipuLm92ZXJkcmFnfSkuYXR0cigiaGVpZ2h0IixmdW5jdGlvbih0KXtyZXR1cm4gdC5oZWlnaHQrbi51cGxpZnR9KSxfLnNlbGVjdEFsbCgiLiIrbi5jbi5jb2x1bW5Cb3VuZGFyeSkuZGF0YShpLnJlcGVhdCxpLmtleUZ1bikuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKG4uY24uY29sdW1uQm91bmRhcnksITApO3ZhciBPPV8uc2VsZWN0QWxsKCIuIituLmNuLmNvbHVtbkJvdW5kYXJ5Q2xpcHBhdGgpLmRhdGEoaS5yZXBlYXQsaS5rZXlGdW4pO08uZW50ZXIoKS5hcHBlbmQoImNsaXBQYXRoIikuY2xhc3NlZChuLmNuLmNvbHVtbkJvdW5kYXJ5Q2xpcHBhdGgsITApLE8uYXR0cigiaWQiLGZ1bmN0aW9uKGUpe3JldHVybiBnKHQsZSl9KTt2YXIgej1PLnNlbGVjdEFsbCgiLiIrbi5jbi5jb2x1bW5Cb3VuZGFyeVJlY3QpLmRhdGEoaS5yZXBlYXQsaS5rZXlGdW4pO3ouZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5jbGFzc2VkKG4uY24uY29sdW1uQm91bmRhcnlSZWN0LCEwKS5hdHRyKCJmaWxsIiwibm9uZSIpLHouYXR0cigid2lkdGgiLGZ1bmN0aW9uKHQpe3JldHVybiB0LmNvbHVtbldpZHRoKzIqcCh0KX0pLmF0dHIoImhlaWdodCIsZnVuY3Rpb24odCl7cmV0dXJuIHQuY2FsY2RhdGEuaGVpZ2h0KzIqcCh0KStuLnVwbGlmdH0pLmF0dHIoIngiLGZ1bmN0aW9uKHQpe3JldHVybi1wKHQpfSkuYXR0cigieSIsZnVuY3Rpb24odCl7cmV0dXJuLXAodCl9KSxBKG51bGwsTCxmKX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTkyLCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjYxMywiLi4vLi4vbGliIjo3MTcsIi4uLy4uL2xpYi9ndXAiOjcxNSwiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo3NDEsIi4vY29uc3RhbnRzIjoxMjUxLCIuL2RhdGFfcHJlcGFyYXRpb25faGVscGVyIjoxMjUyLCIuL2RhdGFfc3BsaXRfaGVscGVycyI6MTI1MyxkMzoxNjV9XSwxMjU3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMsYT10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikudGV4dHRlbXBsYXRlQXR0cnMsaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vcGxvdHMvZG9tYWluIikuYXR0cmlidXRlcyxzPXQoIi4uL3BpZS9hdHRyaWJ1dGVzIiksbD10KCIuLi9zdW5idXJzdC9hdHRyaWJ1dGVzIiksYz10KCIuL2NvbnN0YW50cyIpLHU9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQ7ZS5leHBvcnRzPXtsYWJlbHM6bC5sYWJlbHMscGFyZW50czpsLnBhcmVudHMsdmFsdWVzOmwudmFsdWVzLGJyYW5jaHZhbHVlczpsLmJyYW5jaHZhbHVlcyxjb3VudDpsLmNvdW50LGxldmVsOmwubGV2ZWwsbWF4ZGVwdGg6bC5tYXhkZXB0aCx0aWxpbmc6e3BhY2tpbmc6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInNxdWFyaWZ5IiwiYmluYXJ5IiwiZGljZSIsInNsaWNlIiwic2xpY2UtZGljZSIsImRpY2Utc2xpY2UiXSxkZmx0OiJzcXVhcmlmeSIsZWRpdFR5cGU6InBsb3QifSxzcXVhcmlmeXJhdGlvOnt2YWxUeXBlOiJudW1iZXIiLG1pbjoxLGRmbHQ6MSxlZGl0VHlwZToicGxvdCJ9LGZsaXA6e3ZhbFR5cGU6ImZsYWdsaXN0IixmbGFnczpbIngiLCJ5Il0sZGZsdDoiIixlZGl0VHlwZToicGxvdCJ9LHBhZDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjMsZWRpdFR5cGU6InBsb3QifSxlZGl0VHlwZToiY2FsYyJ9LG1hcmtlcjp1KHtwYWQ6e3Q6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZWRpdFR5cGU6InBsb3QifSxsOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGVkaXRUeXBlOiJwbG90In0scjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxlZGl0VHlwZToicGxvdCJ9LGI6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZWRpdFR5cGU6InBsb3QifSxlZGl0VHlwZToiY2FsYyJ9LGNvbG9yczpsLm1hcmtlci5jb2xvcnMsZGVwdGhmYWRlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyEwLCExLCJyZXZlcnNlZCJdLGVkaXRUeXBlOiJzdHlsZSJ9LGxpbmU6bC5tYXJrZXIubGluZSxlZGl0VHlwZToiY2FsYyJ9LGkoIm1hcmtlciIse2NvbG9yQXR0cjoiY29sb3JzIixhbmltOiExfSkpLHBhdGhiYXI6e3Zpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6InBsb3QifSxzaWRlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0b3AiLCJib3R0b20iXSxkZmx0OiJ0b3AiLGVkaXRUeXBlOiJwbG90In0sZWRnZXNoYXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyI+IiwiPCIsInwiLCIvIiwiXFwiXSxkZmx0OiI+IixlZGl0VHlwZToicGxvdCJ9LHRoaWNrbmVzczp7dmFsVHlwZToibnVtYmVyIixtaW46MTIsZWRpdFR5cGU6InBsb3QifSx0ZXh0Zm9udDp1KHt9LHMudGV4dGZvbnQse30pLGVkaXRUeXBlOiJjYWxjIn0sdGV4dDpzLnRleHQsdGV4dGluZm86bC50ZXh0aW5mbyx0ZXh0dGVtcGxhdGU6YSh7ZWRpdFR5cGU6InBsb3QifSx7a2V5czpjLmV2ZW50RGF0YUtleXMuY29uY2F0KFsibGFiZWwiLCJ2YWx1ZSJdKX0pLGhvdmVydGV4dDpzLmhvdmVydGV4dCxob3ZlcmluZm86bC5ob3ZlcmluZm8saG92ZXJ0ZW1wbGF0ZTpuKHt9LHtrZXlzOmMuZXZlbnREYXRhS2V5c30pLHRleHRmb250OnMudGV4dGZvbnQsaW5zaWRldGV4dGZvbnQ6cy5pbnNpZGV0ZXh0Zm9udCxvdXRzaWRldGV4dGZvbnQ6dSh7fSxzLm91dHNpZGV0ZXh0Zm9udCx7fSksdGV4dHBvc2l0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0b3AgbGVmdCIsInRvcCBjZW50ZXIiLCJ0b3AgcmlnaHQiLCJtaWRkbGUgbGVmdCIsIm1pZGRsZSBjZW50ZXIiLCJtaWRkbGUgcmlnaHQiLCJib3R0b20gbGVmdCIsImJvdHRvbSBjZW50ZXIiLCJib3R0b20gcmlnaHQiXSxkZmx0OiJ0b3AgbGVmdCIsZWRpdFR5cGU6InBsb3QifSxkb21haW46byh7bmFtZToidHJlZW1hcCIsdHJhY2U6ITAsZWRpdFR5cGU6ImNhbGMifSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjo1OTksIi4uLy4uL2xpYi9leHRlbmQiOjcwOCwiLi4vLi4vcGxvdHMvZG9tYWluIjo3OTAsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjg0MSwiLi4vcGllL2F0dHJpYnV0ZXMiOjEwOTQsIi4uL3N1bmJ1cnN0L2F0dHJpYnV0ZXMiOjEyMzEsIi4vY29uc3RhbnRzIjoxMjYwfV0sMTI1ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9wbG90cyIpO3IubmFtZT0idHJlZW1hcCIsci5wbG90PWZ1bmN0aW9uKHQsZSxhLGkpe24ucGxvdEJhc2VQbG90KHIubmFtZSx0LGUsYSxpKX0sci5jbGVhbj1mdW5jdGlvbih0LGUsYSxpKXtuLmNsZWFuQmFzZVBsb3Qoci5uYW1lLHQsZSxhLGkpfX0seyIuLi8uLi9wbG90cy9wbG90cyI6ODI2fV0sMTI1OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9zdW5idXJzdC9jYWxjIik7ci5jYWxjPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4uY2FsYyh0LGUpfSxyLmNyb3NzVHJhY2VDYWxjPWZ1bmN0aW9uKHQpe3JldHVybiBuLl9ydW5Dcm9zc1RyYWNlQ2FsYygidHJlZW1hcCIsdCl9fSx7Ii4uL3N1bmJ1cnN0L2NhbGMiOjEyMzN9XSwxMjYwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17Q0xJQ0tfVFJBTlNJVElPTl9USU1FOjc1MCxDTElDS19UUkFOU0lUSU9OX0VBU0lORzoicG9seSIsZXZlbnREYXRhS2V5czpbImN1cnJlbnRQYXRoIiwicm9vdCIsImVudHJ5IiwicGVyY2VudFJvb3QiLCJwZXJjZW50RW50cnkiLCJwZXJjZW50UGFyZW50Il0sZ2FwV2l0aFBhdGhiYXI6MX19LHt9XSwxMjYxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksbz10KCIuLi8uLi9wbG90cy9kb21haW4iKS5kZWZhdWx0cyxzPXQoIi4uL2Jhci9kZWZhdWx0cyIpLmhhbmRsZVRleHQsbD10KCIuLi9iYXIvY29uc3RhbnRzIikuVEVYVFBBRCxjPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLHU9Yy5oYXNDb2xvcnNjYWxlLGg9Yy5oYW5kbGVEZWZhdWx0cztlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYyl7ZnVuY3Rpb24gZihyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsYSxyLGkpfXZhciBwPWYoImxhYmVscyIpLGQ9ZigicGFyZW50cyIpO2lmKHAmJnAubGVuZ3RoJiZkJiZkLmxlbmd0aCl7dmFyIGc9ZigidmFsdWVzIik7ZyYmZy5sZW5ndGg/ZigiYnJhbmNodmFsdWVzIik6ZigiY291bnQiKSxmKCJsZXZlbCIpLGYoIm1heGRlcHRoIiksInNxdWFyaWZ5Ij09PWYoInRpbGluZy5wYWNraW5nIikmJmYoInRpbGluZy5zcXVhcmlmeXJhdGlvIiksZigidGlsaW5nLmZsaXAiKSxmKCJ0aWxpbmcucGFkIik7dmFyIHY9ZigidGV4dCIpO2YoInRleHR0ZW1wbGF0ZSIpLGUudGV4dHRlbXBsYXRlfHxmKCJ0ZXh0aW5mbyIsQXJyYXkuaXNBcnJheSh2KT8idGV4dCtsYWJlbCI6ImxhYmVsIiksZigiaG92ZXJ0ZXh0IiksZigiaG92ZXJ0ZW1wbGF0ZSIpO3ZhciBtPWYoInBhdGhiYXIudmlzaWJsZSIpO3ModCxlLGMsZiwiYXV0byIse2hhc1BhdGhiYXI6bSxtb2R1bGVIYXNTZWxlY3RlZDohMSxtb2R1bGVIYXNVbnNlbGVjdGVkOiExLG1vZHVsZUhhc0NvbnN0cmFpbjohMSxtb2R1bGVIYXNDbGlwb25heGlzOiExLG1vZHVsZUhhc1RleHRhbmdsZTohMSxtb2R1bGVIYXNJbnNpZGVhbmNob3I6ITF9KSxmKCJ0ZXh0cG9zaXRpb24iKTt2YXIgeT0tMSE9PWUudGV4dHBvc2l0aW9uLmluZGV4T2YoImJvdHRvbSIpO2YoIm1hcmtlci5saW5lLndpZHRoIikmJmYoIm1hcmtlci5saW5lLmNvbG9yIixjLnBhcGVyX2JnY29sb3IpO3ZhciB4PWYoIm1hcmtlci5jb2xvcnMiKSxiPWUuX2hhc0NvbG9yc2NhbGU9dSh0LCJtYXJrZXIiLCJjb2xvcnMiKXx8KHQubWFya2VyfHx7fSkuY29sb3JheGlzO2I/aCh0LGUsYyxmLHtwcmVmaXg6Im1hcmtlci4iLGNMZXR0ZXI6ImMifSk6ZigibWFya2VyLmRlcHRoZmFkZSIsISh4fHxbXSkubGVuZ3RoKTt2YXIgXz0yKmUudGV4dGZvbnQuc2l6ZTtmKCJtYXJrZXIucGFkLnQiLHk/Xy80Ol8pLGYoIm1hcmtlci5wYWQubCIsXy80KSxmKCJtYXJrZXIucGFkLnIiLF8vNCksZigibWFya2VyLnBhZC5iIix5P186Xy80KSxiJiZoKHQsZSxjLGYse3ByZWZpeDoibWFya2VyLiIsY0xldHRlcjoiYyJ9KSxlLl9ob3ZlcmVkPXttYXJrZXI6e2xpbmU6e3dpZHRoOjIsY29sb3I6aS5jb250cmFzdChjLnBhcGVyX2JnY29sb3IpfX19LG0mJihmKCJwYXRoYmFyLnRoaWNrbmVzcyIsZS5wYXRoYmFyLnRleHRmb250LnNpemUrMipsKSxmKCJwYXRoYmFyLnNpZGUiKSxmKCJwYXRoYmFyLmVkZ2VzaGFwZSIpKSxvKGUsYyxmKSxlLl9sZW5ndGg9bnVsbH1lbHNlIGUudmlzaWJsZT0hMX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTkyLCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiOjYwNCwiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3Bsb3RzL2RvbWFpbiI6NzkwLCIuLi9iYXIvY29uc3RhbnRzIjo4NTgsIi4uL2Jhci9kZWZhdWx0cyI6ODYwLCIuL2F0dHJpYnV0ZXMiOjEyNTd9XSwxMjYyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksYT10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLG89dCgiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIikscz10KCIuL3BhcnRpdGlvbiIpLGw9dCgiLi9zdHlsZSIpLnN0eWxlT25lLGM9dCgiLi9jb25zdGFudHMiKSx1PXQoIi4uL3N1bmJ1cnN0L2hlbHBlcnMiKSxoPXQoIi4uL3N1bmJ1cnN0L2Z4Iik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGYscCl7dmFyIGQ9cC5iYXJEaWZZLGc9cC53aWR0aCx2PXAuaGVpZ2h0LG09cC52aWV3WCx5PXAudmlld1kseD1wLnBhdGhTbGljZSxiPXAudG9Nb3ZlSW5zaWRlU2xpY2UsXz1wLnN0clRyYW5zZm9ybSx3PXAuaGFzVHJhbnNpdGlvbixrPXAuaGFuZGxlU2xpY2VzRXhpdCxUPXAubWFrZVVwZGF0ZVNsaWNlSW50ZXJwb2xhdG9yLE09cC5tYWtlVXBkYXRlVGV4dEludGVycG9sYXRvcixBPXt9LFM9dC5fZnVsbExheW91dCxFPWVbMF0sTD1FLnRyYWNlLEM9RS5oaWVyYXJjaHksUD1nL0wuX2VudHJ5RGVwdGgsTz11Lmxpc3RQYXRoKHIuZGF0YSwiaWQiKSx6PXMoQy5jb3B5KCksW2csdl0se3BhY2tpbmc6ImRpY2UiLHBhZDp7aW5uZXI6MCx0b3A6MCxsZWZ0OjAscmlnaHQ6MCxib3R0b206MH19KS5kZXNjZW5kYW50cygpOyh6PXouZmlsdGVyKGZ1bmN0aW9uKHQpe3ZhciBlPU8uaW5kZXhPZih0LmRhdGEuaWQpO3JldHVybi0xIT09ZSYmKHQueDA9UCplLHQueDE9UCooZSsxKSx0LnkwPWQsdC55MT1kK3YsdC5vblBhdGhiYXI9ITAsITApfSkpLnJldmVyc2UoKSwoZj1mLmRhdGEoeix1LmdldFB0SWQpKS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoInBhdGhiYXIiLCEwKSxrKGYsITAsQSxbZyx2XSx4KSxmLm9yZGVyKCk7dmFyIEk9Zjt3JiYoST1JLnRyYW5zaXRpb24oKS5lYWNoKCJlbmQiLGZ1bmN0aW9uKCl7dmFyIGU9bi5zZWxlY3QodGhpcyk7dS5zZXRTbGljZUN1cnNvcihlLHQse2hpZGVPblJvb3Q6ITEsaGlkZU9uTGVhdmVzOiExLGlzVHJhbnNpdGlvbmluZzohMX0pfSkpLEkuZWFjaChmdW5jdGlvbihzKXtzLl9ob3Zlclg9bShzLngxLU1hdGgubWluKGcsdikvMikscy5faG92ZXJZPXkocy55MS12LzIpO3ZhciBmPW4uc2VsZWN0KHRoaXMpLHA9YS5lbnN1cmVTaW5nbGUoZiwicGF0aCIsInN1cmZhY2UiLGZ1bmN0aW9uKHQpe3Quc3R5bGUoInBvaW50ZXItZXZlbnRzIiwiYWxsIil9KTt3P3AudHJhbnNpdGlvbigpLmF0dHJUd2VlbigiZCIsZnVuY3Rpb24odCl7dmFyIGU9VCh0LCEwLEEsW2csdl0pO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4geChlKHQpKX19KTpwLmF0dHIoImQiLHgpLGYuY2FsbChoLHIsdCxlLHtzdHlsZU9uZTpsLGV2ZW50RGF0YUtleXM6Yy5ldmVudERhdGFLZXlzLHRyYW5zaXRpb25UaW1lOmMuQ0xJQ0tfVFJBTlNJVElPTl9USU1FLHRyYW5zaXRpb25FYXNpbmc6Yy5DTElDS19UUkFOU0lUSU9OX0VBU0lOR30pLmNhbGwodS5zZXRTbGljZUN1cnNvcix0LHtoaWRlT25Sb290OiExLGhpZGVPbkxlYXZlczohMSxpc1RyYW5zaXRpb25pbmc6dC5fdHJhbnNpdGlvbmluZ30pLHAuY2FsbChsLHMsTCx7aG92ZXJlZDohMX0pLHMuX3RleHQ9KHUuZ2V0UHRMYWJlbChzKXx8IiIpLnNwbGl0KCI8YnI+Iikuam9pbigiICIpfHwiIjt2YXIgZD1hLmVuc3VyZVNpbmdsZShmLCJnIiwic2xpY2V0ZXh0Iiksaz1hLmVuc3VyZVNpbmdsZShkLCJ0ZXh0IiwiIixmdW5jdGlvbih0KXt0LmF0dHIoImRhdGEtbm90ZXgiLDEpfSksRT1hLmVuc3VyZVVuaWZvcm1Gb250U2l6ZSh0LHUuZGV0ZXJtaW5lVGV4dEZvbnQoTCxzLFMuZm9udCx7b25QYXRoYmFyOiEwfSkpO2sudGV4dChzLl90ZXh0fHwiICIpLmNsYXNzZWQoInNsaWNldGV4dCIsITApLmF0dHIoInRleHQtYW5jaG9yIiwic3RhcnQiKS5jYWxsKGkuZm9udCxFKS5jYWxsKG8uY29udmVydFRvVHNwYW5zLHQpLHMudGV4dEJCPWkuYkJveChrLm5vZGUoKSkscy50cmFuc2Zvcm09YihzLHtmb250U2l6ZTpFLnNpemUsb25QYXRoYmFyOiEwfSkscy50cmFuc2Zvcm0uZm9udFNpemU9RS5zaXplLHc/ay50cmFuc2l0aW9uKCkuYXR0clR3ZWVuKCJ0cmFuc2Zvcm0iLGZ1bmN0aW9uKHQpe3ZhciBlPU0odCwhMCxBLFtnLHZdKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIF8oZSh0KSl9fSk6ay5hdHRyKCJ0cmFuc2Zvcm0iLF8ocykpfSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjEzLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo3NDEsIi4uL3N1bmJ1cnN0L2Z4IjoxMjM2LCIuLi9zdW5idXJzdC9oZWxwZXJzIjoxMjM3LCIuL2NvbnN0YW50cyI6MTI2MCwiLi9wYXJ0aXRpb24iOjEyNjcsIi4vc3R5bGUiOjEyNjksZDM6MTY1fV0sMTI2MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGE9dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxvPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLHM9dCgiLi9wYXJ0aXRpb24iKSxsPXQoIi4vc3R5bGUiKS5zdHlsZU9uZSxjPXQoIi4vY29uc3RhbnRzIiksdT10KCIuLi9zdW5idXJzdC9oZWxwZXJzIiksaD10KCIuLi9zdW5idXJzdC9meCIpLGY9dCgiLi4vc3VuYnVyc3QvcGxvdCIpLmZvcm1hdFNsaWNlTGFiZWw7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHAsZCl7dmFyIGc9ZC53aWR0aCx2PWQuaGVpZ2h0LG09ZC52aWV3WCx5PWQudmlld1kseD1kLnBhdGhTbGljZSxiPWQudG9Nb3ZlSW5zaWRlU2xpY2UsXz1kLnN0clRyYW5zZm9ybSx3PWQuaGFzVHJhbnNpdGlvbixrPWQuaGFuZGxlU2xpY2VzRXhpdCxUPWQubWFrZVVwZGF0ZVNsaWNlSW50ZXJwb2xhdG9yLE09ZC5tYWtlVXBkYXRlVGV4dEludGVycG9sYXRvcixBPWQucHJldkVudHJ5LFM9dC5fZnVsbExheW91dCxFPWVbMF0udHJhY2UsTD0tMSE9PUUudGV4dHBvc2l0aW9uLmluZGV4T2YoImxlZnQiKSxDPS0xIT09RS50ZXh0cG9zaXRpb24uaW5kZXhPZigicmlnaHQiKSxQPS0xIT09RS50ZXh0cG9zaXRpb24uaW5kZXhPZigiYm90dG9tIiksTz0hUCYmIUUubWFya2VyLnBhZC50fHxQJiYhRS5tYXJrZXIucGFkLmIsej1zKHIsW2csdl0se3BhY2tpbmc6RS50aWxpbmcucGFja2luZyxzcXVhcmlmeXJhdGlvOkUudGlsaW5nLnNxdWFyaWZ5cmF0aW8sZmxpcFg6RS50aWxpbmcuZmxpcC5pbmRleE9mKCJ4Iik+LTEsZmxpcFk6RS50aWxpbmcuZmxpcC5pbmRleE9mKCJ5Iik+LTEscGFkOntpbm5lcjpFLnRpbGluZy5wYWQsdG9wOkUubWFya2VyLnBhZC50LGxlZnQ6RS5tYXJrZXIucGFkLmwscmlnaHQ6RS5tYXJrZXIucGFkLnIsYm90dG9tOkUubWFya2VyLnBhZC5ifX0pLmRlc2NlbmRhbnRzKCksST0xLzAsRD0tMS8wO3ouZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZT10LmRlcHRoO2U+PUUuX21heERlcHRoPyh0LngwPXQueDE9KHQueDArdC54MSkvMix0LnkwPXQueTE9KHQueTArdC55MSkvMik6KEk9TWF0aC5taW4oSSxlKSxEPU1hdGgubWF4KEQsZSkpfSkscD1wLmRhdGEoeix1LmdldFB0SWQpLEUuX21heFZpc2libGVMYXllcnM9aXNGaW5pdGUoRCk/RC1JKzE6MCxwLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgic2xpY2UiLCEwKSxrKHAsITEse30sW2csdl0seCkscC5vcmRlcigpO3ZhciBSPW51bGw7aWYodyYmQSl7dmFyIEY9dS5nZXRQdElkKEEpO3AuZWFjaChmdW5jdGlvbih0KXtudWxsPT09UiYmdS5nZXRQdElkKHQpPT09RiYmKFI9e3gwOnQueDAseDE6dC54MSx5MDp0LnkwLHkxOnQueTF9KX0pfXZhciBCPWZ1bmN0aW9uKCl7cmV0dXJuIFJ8fHt4MDowLHgxOmcseTA6MCx5MTp2fX0sTj1wO3JldHVybiB3JiYoTj1OLnRyYW5zaXRpb24oKS5lYWNoKCJlbmQiLGZ1bmN0aW9uKCl7dmFyIGU9bi5zZWxlY3QodGhpcyk7dS5zZXRTbGljZUN1cnNvcihlLHQse2hpZGVPblJvb3Q6ITAsaGlkZU9uTGVhdmVzOiExLGlzVHJhbnNpdGlvbmluZzohMX0pfSkpLE4uZWFjaChmdW5jdGlvbihzKXt2YXIgcD11LmlzSGVhZGVyKHMsRSk7cy5faG92ZXJYPW0ocy54MS1FLm1hcmtlci5wYWQucikscy5faG92ZXJZPXkoUD9zLnkxLUUubWFya2VyLnBhZC5iLzI6cy55MCtFLm1hcmtlci5wYWQudC8yKTt2YXIgZD1uLnNlbGVjdCh0aGlzKSxrPWEuZW5zdXJlU2luZ2xlKGQsInBhdGgiLCJzdXJmYWNlIixmdW5jdGlvbih0KXt0LnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpfSk7dz9rLnRyYW5zaXRpb24oKS5hdHRyVHdlZW4oImQiLGZ1bmN0aW9uKHQpe3ZhciBlPVQodCwhMSxCKCksW2csdl0pO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4geChlKHQpKX19KTprLmF0dHIoImQiLHgpLGQuY2FsbChoLHIsdCxlLHtzdHlsZU9uZTpsLGV2ZW50RGF0YUtleXM6Yy5ldmVudERhdGFLZXlzLHRyYW5zaXRpb25UaW1lOmMuQ0xJQ0tfVFJBTlNJVElPTl9USU1FLHRyYW5zaXRpb25FYXNpbmc6Yy5DTElDS19UUkFOU0lUSU9OX0VBU0lOR30pLmNhbGwodS5zZXRTbGljZUN1cnNvcix0LHtpc1RyYW5zaXRpb25pbmc6dC5fdHJhbnNpdGlvbmluZ30pLGsuY2FsbChsLHMsRSx7aG92ZXJlZDohMX0pLHMueDA9PT1zLngxfHxzLnkwPT09cy55MT9zLl90ZXh0PSIiOnMuX3RleHQ9cD9PPyIiOnUuZ2V0UHRMYWJlbChzKXx8IiI6ZihzLHIsRSxlLFMpfHwiIjt2YXIgQT1hLmVuc3VyZVNpbmdsZShkLCJnIiwic2xpY2V0ZXh0Iiksej1hLmVuc3VyZVNpbmdsZShBLCJ0ZXh0IiwiIixmdW5jdGlvbih0KXt0LmF0dHIoImRhdGEtbm90ZXgiLDEpfSksST1hLmVuc3VyZVVuaWZvcm1Gb250U2l6ZSh0LHUuZGV0ZXJtaW5lVGV4dEZvbnQoRSxzLFMuZm9udCkpO3oudGV4dChzLl90ZXh0fHwiICIpLmNsYXNzZWQoInNsaWNldGV4dCIsITApLmF0dHIoInRleHQtYW5jaG9yIixDPyJlbmQiOkx8fHA/InN0YXJ0IjoibWlkZGxlIikuY2FsbChpLmZvbnQsSSkuY2FsbChvLmNvbnZlcnRUb1RzcGFucyx0KSxzLnRleHRCQj1pLmJCb3goei5ub2RlKCkpLHMudHJhbnNmb3JtPWIocyx7Zm9udFNpemU6SS5zaXplLGlzSGVhZGVyOnB9KSxzLnRyYW5zZm9ybS5mb250U2l6ZT1JLnNpemUsdz96LnRyYW5zaXRpb24oKS5hdHRyVHdlZW4oInRyYW5zZm9ybSIsZnVuY3Rpb24odCl7dmFyIGU9TSh0LCExLEIoKSxbZyx2XSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBfKGUodCkpfX0pOnouYXR0cigidHJhbnNmb3JtIixfKHMpKX0pLFJ9fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjEzLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo3NDEsIi4uL3N1bmJ1cnN0L2Z4IjoxMjM2LCIuLi9zdW5idXJzdC9oZWxwZXJzIjoxMjM3LCIuLi9zdW5idXJzdC9wbG90IjoxMjQxLCIuL2NvbnN0YW50cyI6MTI2MCwiLi9wYXJ0aXRpb24iOjEyNjcsIi4vc3R5bGUiOjEyNjksZDM6MTY1fV0sMTI2NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e21vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJ0cmVlbWFwIixiYXNlUGxvdE1vZHVsZTp0KCIuL2Jhc2VfcGxvdCIpLGNhdGVnb3JpZXM6W10sYW5pbWF0YWJsZTohMCxhdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLGxheW91dEF0dHJpYnV0ZXM6dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxzdXBwbHlMYXlvdXREZWZhdWx0czp0KCIuL2xheW91dF9kZWZhdWx0cyIpLGNhbGM6dCgiLi9jYWxjIikuY2FsYyxjcm9zc1RyYWNlQ2FsYzp0KCIuL2NhbGMiKS5jcm9zc1RyYWNlQ2FsYyxwbG90OnQoIi4vcGxvdCIpLHN0eWxlOnQoIi4vc3R5bGUiKS5zdHlsZSxjb2xvcmJhcjp0KCIuLi9zY2F0dGVyL21hcmtlcl9jb2xvcmJhciIpLG1ldGE6e319fSx7Ii4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIjoxMTM4LCIuL2F0dHJpYnV0ZXMiOjEyNTcsIi4vYmFzZV9wbG90IjoxMjU4LCIuL2NhbGMiOjEyNTksIi4vZGVmYXVsdHMiOjEyNjEsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjEyNjUsIi4vbGF5b3V0X2RlZmF1bHRzIjoxMjY2LCIuL3Bsb3QiOjEyNjgsIi4vc3R5bGUiOjEyNjl9XSwxMjY1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17dHJlZW1hcGNvbG9yd2F5Ont2YWxUeXBlOiJjb2xvcmxpc3QiLGVkaXRUeXBlOiJjYWxjIn0sZXh0ZW5kdHJlZW1hcGNvbG9yczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToiY2FsYyJ9fX0se31dLDEyNjY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuL2xheW91dF9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gcihyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsYSxyLGkpfXIoInRyZWVtYXBjb2xvcndheSIsZS5jb2xvcndheSkscigiZXh0ZW5kdHJlZW1hcGNvbG9ycyIpfX0seyIuLi8uLi9saWIiOjcxNywiLi9sYXlvdXRfYXR0cmlidXRlcyI6MTI2NX1dLDEyNjc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMtaGllcmFyY2h5Iik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgYSxpPXIuZmxpcFgsbz1yLmZsaXBZLHM9ImRpY2Utc2xpY2UiPT09ci5wYWNraW5nLGw9ci5wYWRbbz8iYm90dG9tIjoidG9wIl0sYz1yLnBhZFtpPyJyaWdodCI6ImxlZnQiXSx1PXIucGFkW2k/ImxlZnQiOiJyaWdodCJdLGg9ci5wYWRbbz8idG9wIjoiYm90dG9tIl07cyYmKGE9YyxjPWwsbD1hLGE9dSx1PWgsaD1hKTt2YXIgZj1uLnRyZWVtYXAoKS50aWxlKGZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQpe2Nhc2Uic3F1YXJpZnkiOnJldHVybiBuLnRyZWVtYXBTcXVhcmlmeS5yYXRpbyhlKTtjYXNlImJpbmFyeSI6cmV0dXJuIG4udHJlZW1hcEJpbmFyeTtjYXNlImRpY2UiOnJldHVybiBuLnRyZWVtYXBEaWNlO2Nhc2Uic2xpY2UiOnJldHVybiBuLnRyZWVtYXBTbGljZTtkZWZhdWx0OnJldHVybiBuLnRyZWVtYXBTbGljZURpY2V9fShyLnBhY2tpbmcsci5zcXVhcmlmeXJhdGlvKSkucGFkZGluZ0lubmVyKHIucGFkLmlubmVyKS5wYWRkaW5nTGVmdChjKS5wYWRkaW5nUmlnaHQodSkucGFkZGluZ1RvcChsKS5wYWRkaW5nQm90dG9tKGgpLnNpemUocz9bZVsxXSxlWzBdXTplKSh0KTtyZXR1cm4oc3x8aXx8bykmJmZ1bmN0aW9uIHQoZSxyLG4pe3ZhciBhO24uc3dhcFhZJiYoYT1lLngwLGUueDA9ZS55MCxlLnkwPWEsYT1lLngxLGUueDE9ZS55MSxlLnkxPWEpO24uZmxpcFgmJihhPWUueDAsZS54MD1yWzBdLWUueDEsZS54MT1yWzBdLWEpO24uZmxpcFkmJihhPWUueTAsZS55MD1yWzFdLWUueTEsZS55MT1yWzFdLWEpO3ZhciBpPWUuY2hpbGRyZW47aWYoaSlmb3IodmFyIG89MDtvPGkubGVuZ3RoO28rKyl0KGlbb10scixuKX0oZixlLHtzd2FwWFk6cyxmbGlwWDppLGZsaXBZOm99KSxmfX0seyJkMy1oaWVyYXJjaHkiOjE1OX1dLDEyNjg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxhPXQoIi4uL3N1bmJ1cnN0L2hlbHBlcnMiKSxpPXQoIi4uLy4uL2xpYiIpLG89dCgiLi4vYmFyL2NvbnN0YW50cyIpLlRFWFRQQUQscz10KCIuLi9iYXIvcGxvdCIpLnRvTW92ZUluc2lkZUJhcixsPXQoIi4uL2Jhci91bmlmb3JtX3RleHQiKSxjPWwucmVjb3JkTWluVGV4dFNpemUsdT1sLmNsZWFyTWluVGV4dFNpemUsaD10KCIuLi9iYXIvc3R5bGUiKS5yZXNpemVUZXh0LGY9dCgiLi9jb25zdGFudHMiKSxwPXQoIi4vZHJhd19kZXNjZW5kYW50cyIpLGQ9dCgiLi9kcmF3X2FuY2VzdG9ycyIpO2Z1bmN0aW9uIGcodCl7cmV0dXJuIGEuaXNIaWVyYXJjaHlSb290KHQpPyIiOmEuZ2V0UHRJZCh0KX1mdW5jdGlvbiB2KHQsZSxyLGwpe3ZhciB1PXQuX2Z1bGxMYXlvdXQsaD1lWzBdLHY9aC50cmFjZSxtPWguaGllcmFyY2h5LHk9YS5maW5kRW50cnlXaXRoTGV2ZWwobSx2LmxldmVsKSx4PW4uc2VsZWN0KHIpLGI9eC5zZWxlY3RBbGwoImcucGF0aGJhciIpLF89eC5zZWxlY3RBbGwoImcuc2xpY2UiKTtpZigheSlyZXR1cm4gYi5yZW1vdmUoKSx2b2lkIF8ucmVtb3ZlKCk7dmFyIHc9YS5pc0hpZXJhcmNoeVJvb3QoeSksaz0hdS51bmlmb3JtdGV4dC5tb2RlJiZhLmhhc1RyYW5zaXRpb24obCksVD1hLmdldE1heERlcHRoKHYpLE09dS5fc2l6ZSxBPXYuZG9tYWluLFM9TS53KihBLnhbMV0tQS54WzBdKSxFPU0uaCooQS55WzFdLUEueVswXSksTD1TLEM9di5wYXRoYmFyLnRoaWNrbmVzcyxQPXYubWFya2VyLmxpbmUud2lkdGgrZi5nYXBXaXRoUGF0aGJhcixPPXYucGF0aGJhci52aXNpYmxlP3YucGF0aGJhci5zaWRlLmluZGV4T2YoImJvdHRvbSIpPi0xP0UrUDotKEMrUCk6MCx6PXt4MDpMLHgxOkwseTA6Tyx5MTpPK0N9LEk9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXYudGlsaW5nLnBhZCxhPWZ1bmN0aW9uKHQpe3JldHVybiB0LW48PWUueDB9LGk9ZnVuY3Rpb24odCl7cmV0dXJuIHQrbj49ZS54MX0sbz1mdW5jdGlvbih0KXtyZXR1cm4gdC1uPD1lLnkwfSxzPWZ1bmN0aW9uKHQpe3JldHVybiB0K24+PWUueTF9O3JldHVybnt4MDphKHQueDAtbik/MDppKHQueDAtbik/clswXTp0LngwLHgxOmEodC54MStuKT8wOmkodC54MStuKT9yWzBdOnQueDEseTA6byh0LnkwLW4pPzA6cyh0LnkwLW4pP3JbMV06dC55MCx5MTpvKHQueTErbik/MDpzKHQueTErbik/clsxXTp0LnkxfX0sRD1udWxsLFI9e30sRj17fSxCPW51bGwsTj1mdW5jdGlvbih0LGUpe3JldHVybiBlP1JbZyh0KV06RltnKHQpXX0saj1mdW5jdGlvbih0LGUscixuKXtpZihlKXJldHVybiBSW2cobSldfHx6O3ZhciBhPUZbdi5sZXZlbF18fHI7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiB0LmRhdGEuZGVwdGgteS5kYXRhLmRlcHRoPFR9KHQpP0kodCxhLG4pOnt9fTtoLmhhc011bHRpcGxlUm9vdHMmJncmJlQrKyx2Ll9tYXhEZXB0aD1ULHYuX2JhY2tncm91bmRDb2xvcj11LnBhcGVyX2JnY29sb3Isdi5fZW50cnlEZXB0aD15LmRhdGEuZGVwdGgsdi5fYXRSb290TGV2ZWw9dzt2YXIgVj0tUy8yK00ubCtNLncqKEEueFsxXStBLnhbMF0pLzIsVT0tRS8yK00udCtNLmgqKDEtKEEueVsxXStBLnlbMF0pLzIpLHE9ZnVuY3Rpb24odCl7cmV0dXJuIFYrdH0sSD1mdW5jdGlvbih0KXtyZXR1cm4gVSt0fSxHPUgoMCksWT1xKDApLFc9ZnVuY3Rpb24odCl7cmV0dXJuIFkrdH0sWD1mdW5jdGlvbih0KXtyZXR1cm4gRyt0fTtmdW5jdGlvbiBaKHQsZSl7cmV0dXJuIHQrIiwiK2V9dmFyIEo9VygwKSxLPWZ1bmN0aW9uKHQpe3QueD1NYXRoLm1heChKLHQueCl9LFE9di5wYXRoYmFyLmVkZ2VzaGFwZSwkPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC54MCxuPXQueDEsYT10LnkwLGk9dC55MSxsPXQudGV4dEJCLGg9ZnVuY3Rpb24odCl7cmV0dXJuLTEhPT12LnRleHRwb3NpdGlvbi5pbmRleE9mKHQpfSxmPWgoImJvdHRvbSIpLHA9aCgidG9wIil8fGUuaXNIZWFkZXImJiFmPyJzdGFydCI6Zj8iZW5kIjoibWlkZGxlIixkPWgoInJpZ2h0IiksZz1oKCJsZWZ0Iil8fGUub25QYXRoYmFyPy0xOmQ/MTowLG09di5tYXJrZXIucGFkO2lmKGUuaXNIZWFkZXIpe2lmKChyKz1tLmwtbyk+PShuLT1tLnItbykpe3ZhciB5PShyK24pLzI7cj15LG49eX12YXIgeDtmP2E8KHg9aS1tLmIpJiZ4PGkmJihhPXgpOmE8KHg9YSttLnQpJiZ4PGkmJihpPXgpfXZhciBiPXMocixuLGEsaSxsLHtpc0hvcml6b250YWw6ITEsY29uc3RyYWluZWQ6ITAsYW5nbGU6MCxhbmNob3I6cCxsZWZ0VG9SaWdodDpnfSk7cmV0dXJuIGIuZm9udFNpemU9ZS5mb250U2l6ZSxiLnRhcmdldFg9cShiLnRhcmdldFgpLGIudGFyZ2V0WT1IKGIudGFyZ2V0WSksaXNOYU4oYi50YXJnZXRYKXx8aXNOYU4oYi50YXJnZXRZKT97fToociE9PW4mJmEhPT1pJiZjKHYudHlwZSxiLHUpLHtzY2FsZTpiLnNjYWxlLHJvdGF0ZTpiLnJvdGF0ZSx0ZXh0WDpiLnRleHRYLHRleHRZOmIudGV4dFksYW5jaG9yWDpiLmFuY2hvclgsYW5jaG9yWTpiLmFuY2hvclksdGFyZ2V0WDpiLnRhcmdldFgsdGFyZ2V0WTpiLnRhcmdldFl9KX0sdHQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIsbj0wLGE9dDshciYmbjxUOyluKyssKGE9YS5wYXJlbnQpP3I9TihhLGUpOm49VDtyZXR1cm4gcnx8e319LGV0PWZ1bmN0aW9uKHQsZSxyLGEpe3ZhciBvLHM9Tih0LGUpO2lmKHMpbz1zO2Vsc2UgaWYoZSlvPXo7ZWxzZSBpZihEKWlmKHQucGFyZW50KXt2YXIgbD1CfHxyO2wmJiFlP289SSh0LGwsYSk6KG89e30saS5leHRlbmRGbGF0KG8sdHQodCxlKSkpfWVsc2Ugbz10O2Vsc2Ugbz17fTtyZXR1cm4gbi5pbnRlcnBvbGF0ZShvLHt4MDp0LngwLHgxOnQueDEseTA6dC55MCx5MTp0LnkxfSl9LHJ0PWZ1bmN0aW9uKHQsZSxyLG8pe3ZhciBzPU4odCxlKSxsPXt9LGg9aih0LGUscixvKTtpLmV4dGVuZEZsYXQobCx7dHJhbnNmb3JtOiQoe3gwOmgueDAseDE6aC54MSx5MDpoLnkwLHkxOmgueTEsdGV4dEJCOnQudGV4dEJCLF90ZXh0OnQuX3RleHR9LHtpc0hlYWRlcjphLmlzSGVhZGVyKHQsdil9KX0pLHM/bD1zOnQucGFyZW50JiZpLmV4dGVuZEZsYXQobCx0dCh0LGUpKTt2YXIgZj10LnRyYW5zZm9ybTtyZXR1cm4gdC54MCE9PXQueDEmJnQueTAhPT10LnkxJiZjKHYudHlwZSxmLHUpLG4uaW50ZXJwb2xhdGUobCx7dHJhbnNmb3JtOntzY2FsZTpmLnNjYWxlLHJvdGF0ZTpmLnJvdGF0ZSx0ZXh0WDpmLnRleHRYLHRleHRZOmYudGV4dFksYW5jaG9yWDpmLmFuY2hvclgsYW5jaG9yWTpmLmFuY2hvclksdGFyZ2V0WDpmLnRhcmdldFgsdGFyZ2V0WTpmLnRhcmdldFl9fSl9LG50PWZ1bmN0aW9uKHQsZSxyLGEsaSl7dmFyIG89YVswXSxzPWFbMV07az90LmV4aXQoKS50cmFuc2l0aW9uKCkuZWFjaChmdW5jdGlvbigpe3ZhciB0PW4uc2VsZWN0KHRoaXMpO3Quc2VsZWN0KCJwYXRoLnN1cmZhY2UiKS50cmFuc2l0aW9uKCkuYXR0clR3ZWVuKCJkIixmdW5jdGlvbih0KXt2YXIgcj1mdW5jdGlvbih0LGUscixhKXt2YXIgaSxvPU4odCxlKTtpZihlKWk9ejtlbHNle3ZhciBzPU4oeSxlKTtpPXM/SSh0LHMsYSk6e319cmV0dXJuIG4uaW50ZXJwb2xhdGUobyxpKX0odCxlLDAsW28sc10pO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gaShyKHQpKX19KSx0LnNlbGVjdCgiZy5zbGljZXRleHQiKS5hdHRyKCJvcGFjaXR5IiwwKX0pLnJlbW92ZSgpOnQuZXhpdCgpLnJlbW92ZSgpfSxhdD1mdW5jdGlvbih0KXt2YXIgZT10LnRyYW5zZm9ybTtyZXR1cm4gdC54MCE9PXQueDEmJnQueTAhPT10LnkxJiZjKHYudHlwZSxlLHUpLGkuZ2V0VGV4dFRyYW5zZm9ybSh7dGV4dFg6ZS50ZXh0WCx0ZXh0WTplLnRleHRZLGFuY2hvclg6ZS5hbmNob3JYLGFuY2hvclk6ZS5hbmNob3JZLHRhcmdldFg6ZS50YXJnZXRYLHRhcmdldFk6ZS50YXJnZXRZLHNjYWxlOmUuc2NhbGUscm90YXRlOmUucm90YXRlfSl9O2smJihiLmVhY2goZnVuY3Rpb24odCl7UltnKHQpXT17eDA6dC54MCx4MTp0LngxLHkwOnQueTAseTE6dC55MX0sdC50cmFuc2Zvcm0mJihSW2codCldLnRyYW5zZm9ybT17dGV4dFg6dC50cmFuc2Zvcm0udGV4dFgsdGV4dFk6dC50cmFuc2Zvcm0udGV4dFksYW5jaG9yWDp0LnRyYW5zZm9ybS5hbmNob3JYLGFuY2hvclk6dC50cmFuc2Zvcm0uYW5jaG9yWSx0YXJnZXRYOnQudHJhbnNmb3JtLnRhcmdldFgsdGFyZ2V0WTp0LnRyYW5zZm9ybS50YXJnZXRZLHNjYWxlOnQudHJhbnNmb3JtLnNjYWxlLHJvdGF0ZTp0LnRyYW5zZm9ybS5yb3RhdGV9KX0pLF8uZWFjaChmdW5jdGlvbih0KXtGW2codCldPXt4MDp0LngwLHgxOnQueDEseTA6dC55MCx5MTp0LnkxfSx0LnRyYW5zZm9ybSYmKEZbZyh0KV0udHJhbnNmb3JtPXt0ZXh0WDp0LnRyYW5zZm9ybS50ZXh0WCx0ZXh0WTp0LnRyYW5zZm9ybS50ZXh0WSxhbmNob3JYOnQudHJhbnNmb3JtLmFuY2hvclgsYW5jaG9yWTp0LnRyYW5zZm9ybS5hbmNob3JZLHRhcmdldFg6dC50cmFuc2Zvcm0udGFyZ2V0WCx0YXJnZXRZOnQudHJhbnNmb3JtLnRhcmdldFksc2NhbGU6dC50cmFuc2Zvcm0uc2NhbGUscm90YXRlOnQudHJhbnNmb3JtLnJvdGF0ZX0pLCFEJiZhLmlzRW50cnkodCkmJihEPXQpfSkpLEI9cCh0LGUseSxfLHt3aWR0aDpTLGhlaWdodDpFLHZpZXdYOnEsdmlld1k6SCxwYXRoU2xpY2U6ZnVuY3Rpb24odCl7dmFyIGU9cSh0LngwKSxyPXEodC54MSksbj1IKHQueTApLGE9SCh0LnkxKSxpPXItZSxvPWEtbjtpZighaXx8IW8pcmV0dXJuIiI7cmV0dXJuIk0iK1ooZSxuKzApKyJMIitaKHItMCxuKSsiTCIrWihyLGEtMCkrIkwiK1ooZSswLGEpKyJaIn0sdG9Nb3ZlSW5zaWRlU2xpY2U6JCxwcmV2RW50cnk6RCxtYWtlVXBkYXRlU2xpY2VJbnRlcnBvbGF0b3I6ZXQsbWFrZVVwZGF0ZVRleHRJbnRlcnBvbGF0b3I6cnQsaGFuZGxlU2xpY2VzRXhpdDpudCxoYXNUcmFuc2l0aW9uOmssc3RyVHJhbnNmb3JtOmF0fSksdi5wYXRoYmFyLnZpc2libGU/ZCh0LGUseSxiLHtiYXJEaWZZOk8sd2lkdGg6TCxoZWlnaHQ6Qyx2aWV3WDpXLHZpZXdZOlgscGF0aFNsaWNlOmZ1bmN0aW9uKHQpe3ZhciBlPVcoTWF0aC5tYXgoTWF0aC5taW4odC54MCx0LngwKSwwKSkscj1XKE1hdGgubWluKE1hdGgubWF4KHQueDEsdC54MSksTCkpLG49WCh0LnkwKSxhPVgodC55MSksaT1DLzIsbz17fSxzPXt9O28ueD1lLHMueD1yLG8ueT1zLnk9KG4rYSkvMjt2YXIgbD17eDplLHk6bn0sYz17eDpyLHk6bn0sdT17eDpyLHk6YX0saD17eDplLHk6YX07cmV0dXJuIj4iPT09UT8obC54LT1pLGMueC09aSx1LngtPWksaC54LT1pKToiLyI9PT1RPyh1LngtPWksaC54LT1pLG8ueC09aS8yLHMueC09aS8yKToiXFwiPT09UT8obC54LT1pLGMueC09aSxvLngtPWkvMixzLngtPWkvMik6IjwiPT09USYmKG8ueC09aSxzLngtPWkpLEsobCksSyhoKSxLKG8pLEsoYyksSyh1KSxLKHMpLCJNIitaKGwueCxsLnkpKyJMIitaKGMueCxjLnkpKyJMIitaKHMueCxzLnkpKyJMIitaKHUueCx1LnkpKyJMIitaKGgueCxoLnkpKyJMIitaKG8ueCxvLnkpKyJaIn0sdG9Nb3ZlSW5zaWRlU2xpY2U6JCxtYWtlVXBkYXRlU2xpY2VJbnRlcnBvbGF0b3I6ZXQsbWFrZVVwZGF0ZVRleHRJbnRlcnBvbGF0b3I6cnQsaGFuZGxlU2xpY2VzRXhpdDpudCxoYXNUcmFuc2l0aW9uOmssc3RyVHJhbnNmb3JtOmF0fSk6Yi5yZW1vdmUoKX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaSl7dmFyIG8scyxsPXQuX2Z1bGxMYXlvdXQsYz1sLl90cmVlbWFwbGF5ZXIsZj0hcjsodSgidHJlZW1hcCIsbCksKG89Yy5zZWxlY3RBbGwoImcudHJhY2UudHJlZW1hcCIpLmRhdGEoZSxmdW5jdGlvbih0KXtyZXR1cm4gdFswXS50cmFjZS51aWR9KSkuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJ0cmFjZSIsITApLmNsYXNzZWQoInRyZWVtYXAiLCEwKSxvLm9yZGVyKCksIWwudW5pZm9ybXRleHQubW9kZSYmYS5oYXNUcmFuc2l0aW9uKHIpKT8oaSYmKHM9aSgpKSxuLnRyYW5zaXRpb24oKS5kdXJhdGlvbihyLmR1cmF0aW9uKS5lYXNlKHIuZWFzaW5nKS5lYWNoKCJlbmQiLGZ1bmN0aW9uKCl7cyYmcygpfSkuZWFjaCgiaW50ZXJydXB0IixmdW5jdGlvbigpe3MmJnMoKX0pLmVhY2goZnVuY3Rpb24oKXtjLnNlbGVjdEFsbCgiZy50cmFjZSIpLmVhY2goZnVuY3Rpb24oZSl7dih0LGUsdGhpcyxyKX0pfSkpOihvLmVhY2goZnVuY3Rpb24oZSl7dih0LGUsdGhpcyxyKX0pLGwudW5pZm9ybXRleHQubW9kZSYmaCh0LGwuX3RyZWVtYXBsYXllci5zZWxlY3RBbGwoIi50cmFjZSIpLCJ0cmVlbWFwIikpO2YmJm8uZXhpdCgpLnJlbW92ZSgpfX0seyIuLi8uLi9saWIiOjcxNywiLi4vYmFyL2NvbnN0YW50cyI6ODU4LCIuLi9iYXIvcGxvdCI6ODY3LCIuLi9iYXIvc3R5bGUiOjg3MCwiLi4vYmFyL3VuaWZvcm1fdGV4dCI6ODcyLCIuLi9zdW5idXJzdC9oZWxwZXJzIjoxMjM3LCIuL2NvbnN0YW50cyI6MTI2MCwiLi9kcmF3X2FuY2VzdG9ycyI6MTI2MiwiLi9kcmF3X2Rlc2NlbmRhbnRzIjoxMjYzLGQzOjE2NX1dLDEyNjk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxpPXQoIi4uLy4uL2xpYiIpLG89dCgiLi4vc3VuYnVyc3QvaGVscGVycyIpLHM9dCgiLi4vYmFyL3VuaWZvcm1fdGV4dCIpLnJlc2l6ZVRleHQ7ZnVuY3Rpb24gbCh0LGUscixuKXt2YXIgcyxsLGM9KG58fHt9KS5ob3ZlcmVkLHU9ZS5kYXRhLmRhdGEsaD11LmksZj11LmNvbG9yLHA9by5pc0hpZXJhcmNoeVJvb3QoZSksZD0xO2lmKGMpcz1yLl9ob3ZlcmVkLm1hcmtlci5saW5lLmNvbG9yLGw9ci5faG92ZXJlZC5tYXJrZXIubGluZS53aWR0aDtlbHNlIGlmKHAmJiJyZ2JhKDAsMCwwLDApIj09PWYpZD0wLHM9InJnYmEoMCwwLDAsMCkiLGw9MDtlbHNlIGlmKHM9aS5jYXN0T3B0aW9uKHIsaCwibWFya2VyLmxpbmUuY29sb3IiKXx8YS5kZWZhdWx0TGluZSxsPWkuY2FzdE9wdGlvbihyLGgsIm1hcmtlci5saW5lLndpZHRoIil8fDAsIXIuX2hhc0NvbG9yc2NhbGUmJiFlLm9uUGF0aGJhcil7dmFyIGc9ci5tYXJrZXIuZGVwdGhmYWRlO2lmKGcpe3ZhciB2LG09YS5jb21iaW5lKGEuYWRkT3BhY2l0eShyLl9iYWNrZ3JvdW5kQ29sb3IsLjc1KSxmKTtpZighMD09PWcpe3ZhciB5PW8uZ2V0TWF4RGVwdGgocik7dj1pc0Zpbml0ZSh5KT9vLmlzTGVhZihlKT8wOnIuX21heFZpc2libGVMYXllcnMtKGUuZGF0YS5kZXB0aC1yLl9lbnRyeURlcHRoKTplLmRhdGEuaGVpZ2h0KzF9ZWxzZSB2PWUuZGF0YS5kZXB0aC1yLl9lbnRyeURlcHRoLHIuX2F0Um9vdExldmVsfHx2Kys7aWYodj4wKWZvcih2YXIgeD0wO3g8djt4Kyspe3ZhciBiPS41KngvdjtmPWEuY29tYmluZShhLmFkZE9wYWNpdHkobSxiKSxmKX19fXQuc3R5bGUoInN0cm9rZS13aWR0aCIsbCkuY2FsbChhLmZpbGwsZikuY2FsbChhLnN0cm9rZSxzKS5zdHlsZSgib3BhY2l0eSIsZCl9ZS5leHBvcnRzPXtzdHlsZTpmdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0Ll90cmVlbWFwbGF5ZXIuc2VsZWN0QWxsKCIudHJhY2UiKTtzKHQsZSwidHJlZW1hcCIpLGUuZWFjaChmdW5jdGlvbih0KXt2YXIgZT1uLnNlbGVjdCh0aGlzKSxyPXRbMF0udHJhY2U7ZS5zdHlsZSgib3BhY2l0eSIsci5vcGFjaXR5KSxlLnNlbGVjdEFsbCgicGF0aC5zdXJmYWNlIikuZWFjaChmdW5jdGlvbih0KXtuLnNlbGVjdCh0aGlzKS5jYWxsKGwsdCxyLHtob3ZlcmVkOiExfSl9KX0pfSxzdHlsZU9uZTpsfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo1OTIsIi4uLy4uL2xpYiI6NzE3LCIuLi9iYXIvdW5pZm9ybV90ZXh0Ijo4NzIsIi4uL3N1bmJ1cnN0L2hlbHBlcnMiOjEyMzcsZDM6MTY1fV0sMTI3MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9ib3gvYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQ7ZS5leHBvcnRzPXt5Om4ueSx4Om4ueCx4MDpuLngwLHkwOm4ueTAsbmFtZTphKHt9LG4ubmFtZSx7fSksb3JpZW50YXRpb246YSh7fSxuLm9yaWVudGF0aW9uLHt9KSxiYW5kd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZWRpdFR5cGU6ImNhbGMifSxzY2FsZWdyb3VwOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6ImNhbGMifSxzY2FsZW1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbIndpZHRoIiwiY291bnQiXSxkZmx0OiJ3aWR0aCIsZWRpdFR5cGU6ImNhbGMifSxzcGFubW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsic29mdCIsImhhcmQiLCJtYW51YWwiXSxkZmx0OiJzb2Z0IixlZGl0VHlwZToiY2FsYyJ9LHNwYW46e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGl0ZW1zOlt7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYyJ9LHt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjIn1dLGVkaXRUeXBlOiJjYWxjIn0sbGluZTp7Y29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToic3R5bGUifSx3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjIsZWRpdFR5cGU6InN0eWxlIn0sZWRpdFR5cGU6InBsb3QifSxmaWxsY29sb3I6bi5maWxsY29sb3IscG9pbnRzOmEoe30sbi5ib3hwb2ludHMse30pLGppdHRlcjphKHt9LG4uaml0dGVyLHt9KSxwb2ludHBvczphKHt9LG4ucG9pbnRwb3Mse30pLHdpZHRoOmEoe30sbi53aWR0aCx7fSksbWFya2VyOm4ubWFya2VyLHRleHQ6bi50ZXh0LGhvdmVydGV4dDpuLmhvdmVydGV4dCxob3ZlcnRlbXBsYXRlOm4uaG92ZXJ0ZW1wbGF0ZSxib3g6e3Zpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITEsZWRpdFR5cGU6InBsb3QifSx3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0Oi4yNSxlZGl0VHlwZToicGxvdCJ9LGZpbGxjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJzdHlsZSJ9LGxpbmU6e2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6InN0eWxlIn0sd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZWRpdFR5cGU6InN0eWxlIn0sZWRpdFR5cGU6InN0eWxlIn0sZWRpdFR5cGU6InBsb3QifSxtZWFubGluZTp7dmlzaWJsZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMSxlZGl0VHlwZToicGxvdCJ9LGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6InN0eWxlIn0sd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZWRpdFR5cGU6InN0eWxlIn0sZWRpdFR5cGU6InBsb3QifSxzaWRlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJib3RoIiwicG9zaXRpdmUiLCJuZWdhdGl2ZSJdLGRmbHQ6ImJvdGgiLGVkaXRUeXBlOiJjYWxjIn0sb2Zmc2V0Z3JvdXA6bi5vZmZzZXRncm91cCxhbGlnbm1lbnRncm91cDpuLmFsaWdubWVudGdyb3VwLHNlbGVjdGVkOm4uc2VsZWN0ZWQsdW5zZWxlY3RlZDpuLnVuc2VsZWN0ZWQsaG92ZXJvbjp7dmFsVHlwZToiZmxhZ2xpc3QiLGZsYWdzOlsidmlvbGlucyIsInBvaW50cyIsImtkZSJdLGRmbHQ6InZpb2xpbnMrcG9pbnRzK2tkZSIsZXh0cmFzOlsiYWxsIl0sZWRpdFR5cGU6InN0eWxlIn19fSx7Ii4uLy4uL2xpYi9leHRlbmQiOjcwOCwiLi4vYm94L2F0dHJpYnV0ZXMiOjg4MX1dLDEyNzE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGk9dCgiLi4vYm94L2NhbGMiKSxvPXQoIi4vaGVscGVycyIpLHM9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTTtmdW5jdGlvbiBsKHQsZSxyKXt2YXIgYT1lLm1heC1lLm1pbjtpZighYSlyZXR1cm4gdC5iYW5kd2lkdGg/dC5iYW5kd2lkdGg6MDtpZih0LmJhbmR3aWR0aClyZXR1cm4gTWF0aC5tYXgodC5iYW5kd2lkdGgsYS8xZTQpO3ZhciBpPXIubGVuZ3RoLG89bi5zdGRldihyLGktMSxlLm1lYW4pO3JldHVybiBNYXRoLm1heChmdW5jdGlvbih0LGUscil7cmV0dXJuIDEuMDU5Kk1hdGgubWluKGUsci8xLjM0OSkqTWF0aC5wb3codCwtLjIpfShpLG8sZS5xMy1lLnExKSxhLzEwMCl9ZnVuY3Rpb24gYyh0LGUscixuKXt2YXIgaSxvPXQuc3Bhbm1vZGUsbD10LnNwYW58fFtdLGM9W2UubWluLGUubWF4XSx1PVtlLm1pbi0yKm4sZS5tYXgrMipuXTtmdW5jdGlvbiBoKG4pe3ZhciBhPWxbbl0saT0ibXVsdGljYXRlZ29yeSI9PT1yLnR5cGU/ci5yMmMoYSk6ci5kMmMoYSwwLHRbZS52YWxMZXR0ZXIrImNhbGVuZGFyIl0pO3JldHVybiBpPT09cz91W25dOml9dmFyIGY9e3R5cGU6ImxpbmVhciIscmFuZ2U6aT0ic29mdCI9PT1vP3U6ImhhcmQiPT09bz9jOltoKDApLGgoMSldfTtyZXR1cm4gYS5zZXRDb252ZXJ0KGYpLGYuY2xlYW5SYW5nZSgpLGl9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9aSh0LGUpO2lmKHJbMF0udC5lbXB0eSlyZXR1cm4gcjtmb3IodmFyIHM9dC5fZnVsbExheW91dCx1PWEuZ2V0RnJvbUlkKHQsZVsiaCI9PT1lLm9yaWVudGF0aW9uPyJ4YXhpcyI6InlheGlzIl0pLGg9MS8wLGY9LTEvMCxwPTAsZD0wLGc9MDtnPHIubGVuZ3RoO2crKyl7dmFyIHY9cltnXSxtPXYucHRzLm1hcChvLmV4dHJhY3RWYWwpLHk9di5iYW5kd2lkdGg9bChlLHYsbSkseD12LnNwYW49YyhlLHYsdSx5KTtpZih2Lm1pbj09PXYubWF4JiYwPT09eSl4PXYuc3Bhbj1bdi5taW4sdi5tYXhdLHYuZGVuc2l0eT1be3Y6MSx0OnhbMF19XSx2LmJhbmR3aWR0aD15LHA9TWF0aC5tYXgocCwxKTtlbHNle3ZhciBiPXhbMV0teFswXSxfPU1hdGguY2VpbChiLyh5LzMpKSx3PWIvXztpZighaXNGaW5pdGUodyl8fCFpc0Zpbml0ZShfKSlyZXR1cm4gbi5lcnJvcigiU29tZXRoaW5nIHdlbnQgd3Jvbmcgd2l0aCBjb21wdXRpbmcgdGhlIHZpb2xpbiBzcGFuIiksclswXS50LmVtcHR5PSEwLHI7dmFyIGs9by5tYWtlS0RFKHYsZSxtKTt2LmRlbnNpdHk9bmV3IEFycmF5KF8pO2Zvcih2YXIgVD0wLE09eFswXTtNPHhbMV0rdy8yO1QrKyxNKz13KXt2YXIgQT1rKE0pO3YuZGVuc2l0eVtUXT17djpBLHQ6TX0scD1NYXRoLm1heChwLEEpfX1kPU1hdGgubWF4KGQsbS5sZW5ndGgpLGg9TWF0aC5taW4oaCx4WzBdKSxmPU1hdGgubWF4KGYseFsxXSl9dmFyIFM9YS5maW5kRXh0cmVtZXModSxbaCxmXSx7cGFkZGVkOiEwfSk7aWYoZS5fZXh0cmVtZXNbdS5faWRdPVMsZS53aWR0aClyWzBdLnQubWF4S0RFPXA7ZWxzZXt2YXIgRT1zLl92aW9saW5TY2FsZUdyb3VwU3RhdHMsTD1lLnNjYWxlZ3JvdXAsQz1FW0xdO0M/KEMubWF4S0RFPU1hdGgubWF4KEMubWF4S0RFLHApLEMubWF4Q291bnQ9TWF0aC5tYXgoQy5tYXhDb3VudCxkKSk6RVtMXT17bWF4S0RFOnAsbWF4Q291bnQ6ZH19cmV0dXJuIHJbMF0udC5sYWJlbHMua2RlPW4uXyh0LCJrZGU6Iikscn19LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NjkzLCIuLi8uLi9saWIiOjcxNywiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjc2NSwiLi4vYm94L2NhbGMiOjg4MiwiLi9oZWxwZXJzIjoxMjc0fV0sMTI3MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9ib3gvY3Jvc3NfdHJhY2VfY2FsYyIpLnNldFBvc2l0aW9uT2Zmc2V0LGE9WyJ2IiwiaCJdO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10LmNhbGNkYXRhLGk9ZS54YXhpcyxvPWUueWF4aXMscz0wO3M8YS5sZW5ndGg7cysrKXtmb3IodmFyIGw9YVtzXSxjPSJoIj09PWw/bzppLHU9W10saD0wO2g8ci5sZW5ndGg7aCsrKXt2YXIgZj1yW2hdLHA9ZlswXS50LGQ9ZlswXS50cmFjZTshMCE9PWQudmlzaWJsZXx8InZpb2xpbiIhPT1kLnR5cGV8fHAuZW1wdHl8fGQub3JpZW50YXRpb24hPT1sfHxkLnhheGlzIT09aS5faWR8fGQueWF4aXMhPT1vLl9pZHx8dS5wdXNoKGgpfW4oInZpb2xpbiIsdCx1LGMpfX19LHsiLi4vYm94L2Nyb3NzX3RyYWNlX2NhbGMiOjg4M31dLDEyNzM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksaT10KCIuLi9ib3gvZGVmYXVsdHMiKSxvPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixzKXtmdW5jdGlvbiBsKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxvLHIsYSl9ZnVuY3Rpb24gYyhyLGEpe3JldHVybiBuLmNvZXJjZTIodCxlLG8scixhKX1pZihpLmhhbmRsZVNhbXBsZURlZmF1bHRzKHQsZSxsLHMpLCExIT09ZS52aXNpYmxlKXtsKCJiYW5kd2lkdGgiKSxsKCJzaWRlIiksbCgid2lkdGgiKXx8KGwoInNjYWxlZ3JvdXAiLGUubmFtZSksbCgic2NhbGVtb2RlIikpO3ZhciB1LGg9bCgic3BhbiIpO0FycmF5LmlzQXJyYXkoaCkmJih1PSJtYW51YWwiKSxsKCJzcGFubW9kZSIsdSk7dmFyIGY9bCgibGluZS5jb2xvciIsKHQubWFya2VyfHx7fSkuY29sb3J8fHIpLHA9bCgibGluZS53aWR0aCIpLGQ9bCgiZmlsbGNvbG9yIixhLmFkZE9wYWNpdHkoZS5saW5lLmNvbG9yLC41KSk7aS5oYW5kbGVQb2ludHNEZWZhdWx0cyh0LGUsbCx7cHJlZml4OiIifSk7dmFyIGc9YygiYm94LndpZHRoIiksdj1jKCJib3guZmlsbGNvbG9yIixkKSxtPWMoImJveC5saW5lLmNvbG9yIixmKSx5PWMoImJveC5saW5lLndpZHRoIixwKTtsKCJib3gudmlzaWJsZSIsQm9vbGVhbihnfHx2fHxtfHx5KSl8fChlLmJveD17dmlzaWJsZTohMX0pO3ZhciB4PWMoIm1lYW5saW5lLmNvbG9yIixmKSxiPWMoIm1lYW5saW5lLndpZHRoIixwKTtsKCJtZWFubGluZS52aXNpYmxlIixCb29sZWFuKHh8fGIpKXx8KGUubWVhbmxpbmU9e3Zpc2libGU6ITF9KX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjU5MiwiLi4vLi4vbGliIjo3MTcsIi4uL2JveC9kZWZhdWx0cyI6ODg0LCIuL2F0dHJpYnV0ZXMiOjEyNzB9XSwxMjc0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGE9ZnVuY3Rpb24odCl7cmV0dXJuIDEvTWF0aC5zcXJ0KDIqTWF0aC5QSSkqTWF0aC5leHAoLS41KnQqdCl9O3IubWFrZUtERT1mdW5jdGlvbih0LGUscil7dmFyIG49ci5sZW5ndGgsaT1hLG89dC5iYW5kd2lkdGgscz0xLyhuKm8pO3JldHVybiBmdW5jdGlvbih0KXtmb3IodmFyIGU9MCxhPTA7YTxuO2ErKyllKz1pKCh0LXJbYV0pL28pO3JldHVybiBzKmV9fSxyLmdldFBvc2l0aW9uT25LZGVQYXRoPWZ1bmN0aW9uKHQsZSxyKXt2YXIgYSxpOyJoIj09PWUub3JpZW50YXRpb24/KGE9InkiLGk9IngiKTooYT0ieCIsaT0ieSIpO3ZhciBvPW4uZmluZFBvaW50T25QYXRoKHQucGF0aCxyLGkse3BhdGhMZW5ndGg6dC5wYXRoTGVuZ3RofSkscz10LnBvc0NlbnRlclB4LGw9b1thXTtyZXR1cm5bbCwiYm90aCI9PT1lLnNpZGU/MipzLWw6c119LHIuZ2V0S2RlVmFsdWU9ZnVuY3Rpb24odCxlLG4pe3ZhciBhPXQucHRzLm1hcChyLmV4dHJhY3RWYWwpO3JldHVybiByLm1ha2VLREUodCxlLGEpKG4pL3QucG9zRGVuc2l0eVNjYWxlfSxyLmV4dHJhY3RWYWw9ZnVuY3Rpb24odCl7cmV0dXJuIHQudn19LHsiLi4vLi4vbGliIjo3MTd9XSwxMjc1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxpPXQoIi4uL2JveC9ob3ZlciIpLG89dCgiLi9oZWxwZXJzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMsbCl7dmFyIGMsdSxoPXQuY2QsZj1oWzBdLnRyYWNlLHA9Zi5ob3Zlcm9uLGQ9LTEhPT1wLmluZGV4T2YoInZpb2xpbnMiKSxnPS0xIT09cC5pbmRleE9mKCJrZGUiKSx2PVtdO2lmKGR8fGcpe3ZhciBtPWkuaG92ZXJPbkJveGVzKHQsZSxyLHMpO2lmKGcmJm0ubGVuZ3RoPjApe3ZhciB5LHgsYixfLHcsaz10LnhhLFQ9dC55YTsiaCI9PT1mLm9yaWVudGF0aW9uPyh3PWUseT0ieSIsYj1ULHg9IngiLF89ayk6KHc9cix5PSJ4IixiPWsseD0ieSIsXz1UKTt2YXIgTT1oW3QuaW5kZXhdO2lmKHc+PU0uc3BhblswXSYmdzw9TS5zcGFuWzFdKXt2YXIgQT1uLmV4dGVuZEZsYXQoe30sdCksUz1fLmMycCh3LCEwKSxFPW8uZ2V0S2RlVmFsdWUoTSxmLHcpLEw9by5nZXRQb3NpdGlvbk9uS2RlUGF0aChNLGYsUyksQz1iLl9vZmZzZXQsUD1iLl9sZW5ndGg7QVt5KyIwIl09TFswXSxBW3krIjEiXT1MWzFdLEFbeCsiMCJdPUFbeCsiMSJdPVMsQVt4KyJMYWJlbCJdPXgrIjogIithLmhvdmVyTGFiZWxUZXh0KF8sdykrIiwgIitoWzBdLnQubGFiZWxzLmtkZSsiICIrRS50b0ZpeGVkKDMpLEEuc3Bpa2VEaXN0YW5jZT1tWzBdLnNwaWtlRGlzdGFuY2U7dmFyIE89eSsiU3Bpa2UiO0FbT109bVswXVtPXSxtWzBdLnNwaWtlRGlzdGFuY2U9dm9pZCAwLG1bMF1bT109dm9pZCAwLEEuaG92ZXJ0ZW1wbGF0ZT0hMSx2LnB1c2goQSksKHU9e3N0cm9rZTp0LmNvbG9yfSlbeSsiMSJdPW4uY29uc3RyYWluKEMrTFswXSxDLEMrUCksdVt5KyIyIl09bi5jb25zdHJhaW4oQytMWzFdLEMsQytQKSx1W3grIjEiXT11W3grIjIiXT1fLl9vZmZzZXQrU319ZCYmKHY9di5jb25jYXQobSkpfS0xIT09cC5pbmRleE9mKCJwb2ludHMiKSYmKGM9aS5ob3Zlck9uUG9pbnRzKHQsZSxyKSk7dmFyIHo9bC5zZWxlY3RBbGwoIi52aW9saW5saW5lLSIrZi51aWQpLmRhdGEodT9bMF06W10pO3JldHVybiB6LmVudGVyKCkuYXBwZW5kKCJsaW5lIikuY2xhc3NlZCgidmlvbGlubGluZS0iK2YudWlkLCEwKS5hdHRyKCJzdHJva2Utd2lkdGgiLDEuNSksei5leGl0KCkucmVtb3ZlKCksei5hdHRyKHUpLCJjbG9zZXN0Ij09PXM/Yz9bY106djpjPyh2LnB1c2goYyksdik6dn19LHsiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo3NjUsIi4uL2JveC9ob3ZlciI6ODg2LCIuL2hlbHBlcnMiOjEyNzR9XSwxMjc2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxsYXlvdXRBdHRyaWJ1dGVzOnQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY3Jvc3NUcmFjZURlZmF1bHRzOnQoIi4uL2JveC9kZWZhdWx0cyIpLmNyb3NzVHJhY2VEZWZhdWx0cyxzdXBwbHlMYXlvdXREZWZhdWx0czp0KCIuL2xheW91dF9kZWZhdWx0cyIpLGNhbGM6dCgiLi9jYWxjIiksY3Jvc3NUcmFjZUNhbGM6dCgiLi9jcm9zc190cmFjZV9jYWxjIikscGxvdDp0KCIuL3Bsb3QiKSxzdHlsZTp0KCIuL3N0eWxlIiksc3R5bGVPblNlbGVjdDp0KCIuLi9zY2F0dGVyL3N0eWxlIikuc3R5bGVPblNlbGVjdCxob3ZlclBvaW50czp0KCIuL2hvdmVyIiksc2VsZWN0UG9pbnRzOnQoIi4uL2JveC9zZWxlY3QiKSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToidmlvbGluIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxjYXRlZ29yaWVzOlsiY2FydGVzaWFuIiwic3ZnIiwic3ltYm9scyIsIm9yaWVudGVkIiwiYm94LXZpb2xpbiIsInNob3dMZWdlbmQiLCJ2aW9saW5MYXlvdXQiLCJ6b29tU2NhbGUiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjc3NiwiLi4vYm94L2RlZmF1bHRzIjo4ODQsIi4uL2JveC9zZWxlY3QiOjg5MSwiLi4vc2NhdHRlci9zdHlsZSI6MTE0MywiLi9hdHRyaWJ1dGVzIjoxMjcwLCIuL2NhbGMiOjEyNzEsIi4vY3Jvc3NfdHJhY2VfY2FsYyI6MTI3MiwiLi9kZWZhdWx0cyI6MTI3MywiLi9ob3ZlciI6MTI3NSwiLi9sYXlvdXRfYXR0cmlidXRlcyI6MTI3NywiLi9sYXlvdXRfZGVmYXVsdHMiOjEyNzgsIi4vcGxvdCI6MTI3OSwiLi9zdHlsZSI6MTI4MH1dLDEyNzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vYm94L2xheW91dF9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9saWIiKS5leHRlbmRGbGF0O2UuZXhwb3J0cz17dmlvbGlubW9kZTphKHt9LG4uYm94bW9kZSx7fSksdmlvbGluZ2FwOmEoe30sbi5ib3hnYXAse30pLHZpb2xpbmdyb3VwZ2FwOmEoe30sbi5ib3hncm91cGdhcCx7fSl9fSx7Ii4uLy4uL2xpYiI6NzE3LCIuLi9ib3gvbGF5b3V0X2F0dHJpYnV0ZXMiOjg4OH1dLDEyNzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksaT10KCIuLi9ib3gvbGF5b3V0X2RlZmF1bHRzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtpLl9zdXBwbHkodCxlLHIsZnVuY3Rpb24ocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGEscixpKX0sInZpb2xpbiIpfX0seyIuLi8uLi9saWIiOjcxNywiLi4vYm94L2xheW91dF9kZWZhdWx0cyI6ODg5LCIuL2xheW91dF9hdHRyaWJ1dGVzIjoxMjc3fV0sMTI3OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGE9dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxvPXQoIi4uL2JveC9wbG90Iikscz10KCIuLi9zY2F0dGVyL2xpbmVfcG9pbnRzIiksbD10KCIuL2hlbHBlcnMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYyl7dmFyIHU9dC5fZnVsbExheW91dCxoPWUueGF4aXMsZj1lLnlheGlzO2Z1bmN0aW9uIHAodCl7dmFyIGU9cyh0LHt4YXhpczpoLHlheGlzOmYsY29ubmVjdEdhcHM6ITAsYmFzZVRvbGVyYW5jZTouNzUsc2hhcGU6InNwbGluZSIsc2ltcGxpZnk6ITAsbGluZWFyaXplZDohMH0pO3JldHVybiBpLnNtb290aG9wZW4oZVswXSwxKX1hLm1ha2VUcmFjZUdyb3VwcyhjLHIsInRyYWNlIHZpb2xpbnMiKS5lYWNoKGZ1bmN0aW9uKHQpe3ZhciByPW4uc2VsZWN0KHRoaXMpLGk9dFswXSxzPWkudCxjPWkudHJhY2U7aWYoITAhPT1jLnZpc2libGV8fHMuZW1wdHkpci5yZW1vdmUoKTtlbHNle3ZhciBkPXMuYlBvcyxnPXMuYmRQb3Msdj1lW3MudmFsTGV0dGVyKyJheGlzIl0sbT1lW3MucG9zTGV0dGVyKyJheGlzIl0seT0iYm90aCI9PT1jLnNpZGUseD15fHwicG9zaXRpdmUiPT09Yy5zaWRlLGI9eXx8Im5lZ2F0aXZlIj09PWMuc2lkZSxfPXIuc2VsZWN0QWxsKCJwYXRoLnZpb2xpbiIpLmRhdGEoYS5pZGVudGl0eSk7Xy5lbnRlcigpLmFwcGVuZCgicGF0aCIpLnN0eWxlKCJ2ZWN0b3ItZWZmZWN0Iiwibm9uLXNjYWxpbmctc3Ryb2tlIikuYXR0cigiY2xhc3MiLCJ2aW9saW4iKSxfLmV4aXQoKS5yZW1vdmUoKSxfLmVhY2goZnVuY3Rpb24odCl7dmFyIGUscixhLGksbyxsLGgsZixfPW4uc2VsZWN0KHRoaXMpLHc9dC5kZW5zaXR5LGs9dy5sZW5ndGgsVD1tLmMybCh0LnBvcytkLCEwKSxNPW0ubDJwKFQpO2lmKGMud2lkdGgpZT1zLm1heEtERS9nO2Vsc2V7dmFyIEE9dS5fdmlvbGluU2NhbGVHcm91cFN0YXRzW2Muc2NhbGVncm91cF07ZT0iY291bnQiPT09Yy5zY2FsZW1vZGU/QS5tYXhLREUvZyooQS5tYXhDb3VudC90LnB0cy5sZW5ndGgpOkEubWF4S0RFL2d9aWYoeCl7Zm9yKGg9bmV3IEFycmF5KGspLG89MDtvPGs7bysrKShmPWhbb109e30pW3MucG9zTGV0dGVyXT1UK3dbb10udi9lLGZbcy52YWxMZXR0ZXJdPXYuYzJsKHdbb10udCwhMCk7cj1wKGgpfWlmKGIpe2ZvcihoPW5ldyBBcnJheShrKSxsPTAsbz1rLTE7bDxrO2wrKyxvLS0pKGY9aFtsXT17fSlbcy5wb3NMZXR0ZXJdPVQtd1tvXS52L2UsZltzLnZhbExldHRlcl09di5jMmwod1tvXS50LCEwKTthPXAoaCl9aWYoeSlpPXIrIkwiK2Euc3Vic3RyKDEpKyJaIjtlbHNle3ZhciBTPVtNLHYuYzJwKHdbMF0udCldLEU9W00sdi5jMnAod1trLTFdLnQpXTsiaCI9PT1jLm9yaWVudGF0aW9uJiYoUy5yZXZlcnNlKCksRS5yZXZlcnNlKCkpLGk9eD8iTSIrUysiTCIrci5zdWJzdHIoMSkrIkwiK0U6Ik0iK0UrIkwiK2Euc3Vic3RyKDEpKyJMIitTfV8uYXR0cigiZCIsaSksdC5wb3NDZW50ZXJQeD1NLHQucG9zRGVuc2l0eVNjYWxlPWUqZyx0LnBhdGg9Xy5ub2RlKCksdC5wYXRoTGVuZ3RoPXQucGF0aC5nZXRUb3RhbExlbmd0aCgpLyh5PzI6MSl9KTt2YXIgdyxrLFQsTT1jLmJveCxBPU0ud2lkdGgsUz0oTS5saW5lfHx7fSkud2lkdGg7eT8odz1nKkEsaz0wKTp4Pyh3PVswLGcqQS8yXSxrPVMqe3g6MSx5Oi0xfVtzLnBvc0xldHRlcl0pOih3PVtnKkEvMiwwXSxrPVMqe3g6LTEseToxfVtzLnBvc0xldHRlcl0pLG8ucGxvdEJveEFuZFdoaXNrZXJzKHIse3BvczptLHZhbDp2fSxjLHtiUG9zOmQsYmRQb3M6dyxiUG9zUHhPZmZzZXQ6a30pLG8ucGxvdEJveE1lYW4ocix7cG9zOm0sdmFsOnZ9LGMse2JQb3M6ZCxiZFBvczp3LGJQb3NQeE9mZnNldDprfSksIWMuYm94LnZpc2libGUmJmMubWVhbmxpbmUudmlzaWJsZSYmKFQ9YS5pZGVudGl0eSk7dmFyIEU9ci5zZWxlY3RBbGwoInBhdGgubWVhbmxpbmUiKS5kYXRhKFR8fFtdKTtFLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuYXR0cigiY2xhc3MiLCJtZWFubGluZSIpLnN0eWxlKCJmaWxsIiwibm9uZSIpLnN0eWxlKCJ2ZWN0b3ItZWZmZWN0Iiwibm9uLXNjYWxpbmctc3Ryb2tlIiksRS5leGl0KCkucmVtb3ZlKCksRS5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPXYuYzJwKHQubWVhbiwhMCkscj1sLmdldFBvc2l0aW9uT25LZGVQYXRoKHQsYyxlKTtuLnNlbGVjdCh0aGlzKS5hdHRyKCJkIiwiaCI9PT1jLm9yaWVudGF0aW9uPyJNIitlKyIsIityWzBdKyJWIityWzFdOiJNIityWzBdKyIsIitlKyJIIityWzFdKX0pLG8ucGxvdFBvaW50cyhyLHt4OmgseTpmfSxjLHMpfX0pfX0seyIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjYxMywiLi4vLi4vbGliIjo3MTcsIi4uL2JveC9wbG90Ijo4OTAsIi4uL3NjYXR0ZXIvbGluZV9wb2ludHMiOjExMzQsIi4vaGVscGVycyI6MTI3NCxkMzoxNjV9XSwxMjgwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksaT10KCIuLi9zY2F0dGVyL3N0eWxlIikuc3R5bGVQb2ludHM7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPW4uc2VsZWN0KHQpLnNlbGVjdEFsbCgiZy50cmFjZS52aW9saW5zIik7ZS5zdHlsZSgib3BhY2l0eSIsZnVuY3Rpb24odCl7cmV0dXJuIHRbMF0udHJhY2Uub3BhY2l0eX0pLGUuZWFjaChmdW5jdGlvbihlKXt2YXIgcj1lWzBdLnRyYWNlLG89bi5zZWxlY3QodGhpcykscz1yLmJveHx8e30sbD1zLmxpbmV8fHt9LGM9ci5tZWFubGluZXx8e30sdT1jLndpZHRoO28uc2VsZWN0QWxsKCJwYXRoLnZpb2xpbiIpLnN0eWxlKCJzdHJva2Utd2lkdGgiLHIubGluZS53aWR0aCsicHgiKS5jYWxsKGEuc3Ryb2tlLHIubGluZS5jb2xvcikuY2FsbChhLmZpbGwsci5maWxsY29sb3IpLG8uc2VsZWN0QWxsKCJwYXRoLmJveCIpLnN0eWxlKCJzdHJva2Utd2lkdGgiLGwud2lkdGgrInB4IikuY2FsbChhLnN0cm9rZSxsLmNvbG9yKS5jYWxsKGEuZmlsbCxzLmZpbGxjb2xvcik7dmFyIGg9eyJzdHJva2Utd2lkdGgiOnUrInB4Iiwic3Ryb2tlLWRhc2hhcnJheSI6Mip1KyJweCwiK3UrInB4In07by5zZWxlY3RBbGwoInBhdGgubWVhbiIpLnN0eWxlKGgpLmNhbGwoYS5zdHJva2UsYy5jb2xvciksby5zZWxlY3RBbGwoInBhdGgubWVhbmxpbmUiKS5zdHlsZShoKS5jYWxsKGEuc3Ryb2tlLGMuY29sb3IpLGkobyxyLHQpfSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjU5MiwiLi4vc2NhdHRlci9zdHlsZSI6MTE0MyxkMzoxNjV9XSwxMjgxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIiksYT10KCIuLi9pc29zdXJmYWNlL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxvPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LHM9dCgiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyIpLm92ZXJyaWRlQWxsLGw9ZS5leHBvcnRzPXMobyh7eDphLngseTphLnksejphLnosdmFsdWU6YS52YWx1ZSxpc29taW46YS5pc29taW4saXNvbWF4OmEuaXNvbWF4LHN1cmZhY2U6YS5zdXJmYWNlLHNwYWNlZnJhbWU6e3Nob3c6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LGZpbGw6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxfX0sc2xpY2VzOmEuc2xpY2VzLGNhcHM6YS5jYXBzLHRleHQ6YS50ZXh0LGhvdmVydGV4dDphLmhvdmVydGV4dCxob3ZlcnRlbXBsYXRlOmEuaG92ZXJ0ZW1wbGF0ZX0sbigiIix7Y29sb3JBdHRyOiJgdmFsdWVgIixzaG93U2NhbGVEZmx0OiEwLGVkaXRUeXBlT3ZlcnJpZGU6ImNhbGMifSkse2NvbG9yYmFyOmEuY29sb3JiYXIsb3BhY2l0eTphLm9wYWNpdHksb3BhY2l0eXNjYWxlOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjIn0sbGlnaHRwb3NpdGlvbjphLmxpZ2h0cG9zaXRpb24sbGlnaHRpbmc6YS5saWdodGluZyxmbGF0c2hhZGluZzphLmZsYXRzaGFkaW5nLGNvbnRvdXI6YS5jb250b3VyLGhvdmVyaW5mbzpvKHt9LGkuaG92ZXJpbmZvKSxzaG93bGVnZW5kOm8oe30saS5zaG93bGVnZW5kLHtkZmx0OiExfSl9KSwiY2FsYyIsIm5lc3RlZCIpO2wueC5lZGl0VHlwZT1sLnkuZWRpdFR5cGU9bC56LmVkaXRUeXBlPWwudmFsdWUuZWRpdFR5cGU9ImNhbGMrY2xlYXJBeGlzVHlwZXMiLGwudHJhbnNmb3Jtcz12b2lkIDB9LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiOjU5OSwiLi4vLi4vbGliL2V4dGVuZCI6NzA4LCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIjo3NDgsIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiOjc2MiwiLi4vaXNvc3VyZmFjZS9hdHRyaWJ1dGVzIjoxMDU2fV0sMTI4MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJnbC1tZXNoM2QiKSxhPXQoIi4uLy4uL2xpYi9nbF9mb3JtYXRfY29sb3IiKS5wYXJzZUNvbG9yU2NhbGUsaT10KCIuLi8uLi9saWIvc3RyMnJnYmFycmF5Iiksbz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiKS5leHRyYWN0T3B0cyxzPXQoIi4uLy4uL3Bsb3RzL2dsM2QvemlwMyIpLGw9dCgiLi4vaXNvc3VyZmFjZS9jb252ZXJ0IikuZmluZE5lYXJlc3RPbkF4aXMsYz10KCIuLi9pc29zdXJmYWNlL2NvbnZlcnQiKS5nZW5lcmF0ZUlzb01lc2hlcztmdW5jdGlvbiB1KHQsZSxyKXt0aGlzLnNjZW5lPXQsdGhpcy51aWQ9cix0aGlzLm1lc2g9ZSx0aGlzLm5hbWU9IiIsdGhpcy5kYXRhPW51bGwsdGhpcy5zaG93Q29udG91cj0hMX12YXIgaD11LnByb3RvdHlwZTtoLmhhbmRsZVBpY2s9ZnVuY3Rpb24odCl7aWYodC5vYmplY3Q9PT10aGlzLm1lc2gpe3ZhciBlPXQuZGF0YS5pbmRleCxyPXRoaXMuZGF0YS5fbWVzaFhbZV0sbj10aGlzLmRhdGEuX21lc2hZW2VdLGE9dGhpcy5kYXRhLl9tZXNoWltlXSxpPXRoaXMuZGF0YS5fWXMubGVuZ3RoLG89dGhpcy5kYXRhLl9acy5sZW5ndGgscz1sKHIsdGhpcy5kYXRhLl9YcykuaWQsYz1sKG4sdGhpcy5kYXRhLl9ZcykuaWQsdT1sKGEsdGhpcy5kYXRhLl9acykuaWQsaD10LmluZGV4PXUrbypjK28qaSpzO3QudHJhY2VDb29yZGluYXRlPVt0aGlzLmRhdGEuX21lc2hYW2hdLHRoaXMuZGF0YS5fbWVzaFlbaF0sdGhpcy5kYXRhLl9tZXNoWltoXSx0aGlzLmRhdGEuX3ZhbHVlW2hdXTt2YXIgZj10aGlzLmRhdGEuaG92ZXJ0ZXh0fHx0aGlzLmRhdGEudGV4dDtyZXR1cm4gQXJyYXkuaXNBcnJheShmKSYmdm9pZCAwIT09ZltoXT90LnRleHRMYWJlbD1mW2hdOmYmJih0LnRleHRMYWJlbD1mKSwhMH19LGgudXBkYXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuc2NlbmUscj1lLmZ1bGxTY2VuZUxheW91dDtmdW5jdGlvbiBuKHQsZSxyLG4pe3JldHVybiBlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdC5kMmwoZSwwLG4pKnJ9KX10aGlzLmRhdGE9Yyh0KTt2YXIgbD17cG9zaXRpb25zOnMobihyLnhheGlzLHQuX21lc2hYLGUuZGF0YVNjYWxlWzBdLHQueGNhbGVuZGFyKSxuKHIueWF4aXMsdC5fbWVzaFksZS5kYXRhU2NhbGVbMV0sdC55Y2FsZW5kYXIpLG4oci56YXhpcyx0Ll9tZXNoWixlLmRhdGFTY2FsZVsyXSx0LnpjYWxlbmRhcikpLGNlbGxzOnModC5fbWVzaEksdC5fbWVzaEosdC5fbWVzaEspLGxpZ2h0UG9zaXRpb246W3QubGlnaHRwb3NpdGlvbi54LHQubGlnaHRwb3NpdGlvbi55LHQubGlnaHRwb3NpdGlvbi56XSxhbWJpZW50OnQubGlnaHRpbmcuYW1iaWVudCxkaWZmdXNlOnQubGlnaHRpbmcuZGlmZnVzZSxzcGVjdWxhcjp0LmxpZ2h0aW5nLnNwZWN1bGFyLHJvdWdobmVzczp0LmxpZ2h0aW5nLnJvdWdobmVzcyxmcmVzbmVsOnQubGlnaHRpbmcuZnJlc25lbCx2ZXJ0ZXhOb3JtYWxzRXBzaWxvbjp0LmxpZ2h0aW5nLnZlcnRleG5vcm1hbHNlcHNpbG9uLGZhY2VOb3JtYWxzRXBzaWxvbjp0LmxpZ2h0aW5nLmZhY2Vub3JtYWxzZXBzaWxvbixvcGFjaXR5OnQub3BhY2l0eSxvcGFjaXR5c2NhbGU6dC5vcGFjaXR5c2NhbGUsY29udG91ckVuYWJsZTp0LmNvbnRvdXIuc2hvdyxjb250b3VyQ29sb3I6aSh0LmNvbnRvdXIuY29sb3IpLnNsaWNlKDAsMyksY29udG91cldpZHRoOnQuY29udG91ci53aWR0aCx1c2VGYWNldE5vcm1hbHM6dC5mbGF0c2hhZGluZ30sdT1vKHQpO2wudmVydGV4SW50ZW5zaXR5PXQuX21lc2hJbnRlbnNpdHksbC52ZXJ0ZXhJbnRlbnNpdHlCb3VuZHM9W3UubWluLHUubWF4XSxsLmNvbG9ybWFwPWEodCksdGhpcy5tZXNoLnVwZGF0ZShsKX0saC5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5zY2VuZS5nbHBsb3QucmVtb3ZlKHRoaXMubWVzaCksdGhpcy5tZXNoLmRpc3Bvc2UoKX0sZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5nbHBsb3QuZ2wsYT1uKHtnbDpyfSksaT1uZXcgdSh0LGEsZS51aWQpO3JldHVybiBhLl90cmFjZT1pLGkudXBkYXRlKGUpLHQuZ2xwbG90LmFkZChhKSxpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiOjYwNCwiLi4vLi4vbGliL2dsX2Zvcm1hdF9jb2xvciI6NzE0LCIuLi8uLi9saWIvc3RyMnJnYmFycmF5Ijo3NDAsIi4uLy4uL3Bsb3RzL2dsM2QvemlwMyI6ODE2LCIuLi9pc29zdXJmYWNlL2NvbnZlcnQiOjEwNTgsImdsLW1lc2gzZCI6MjgzfV0sMTI4MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxhPXQoIi4vYXR0cmlidXRlcyIpLGk9dCgiLi4vaXNvc3VyZmFjZS9kZWZhdWx0cyIpLnN1cHBseUlzb0RlZmF1bHRzO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixvKXtmdW5jdGlvbiBzKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxhLHIsaSl9aSh0LGUscixvLHMpO3ZhciBsPXMoIm9wYWNpdHlzY2FsZSIpOyJtYXgiPT09bD9lLm9wYWNpdHlzY2FsZT1bWzAsLjFdLFsxLDFdXToibWluIj09PWw/ZS5vcGFjaXR5c2NhbGU9W1swLDFdLFsxLC4xXV06ImV4dHJlbWVzIj09PWw/ZS5vcGFjaXR5c2NhbGU9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9W10sbj0wO248MzI7bisrKXt2YXIgYT1uLzMxLGk9ZSsoMS1lKSooMS1NYXRoLnBvdyhNYXRoLnNpbih0KmEqTWF0aC5QSSksMikpO3IucHVzaChbYSxNYXRoLm1heCgxLE1hdGgubWluKDAsaSkpXSl9cmV0dXJuIHJ9KDEsLjEpOmZ1bmN0aW9uKHQpe3ZhciBlPTA7aWYoIUFycmF5LmlzQXJyYXkodCl8fHQubGVuZ3RoPDIpcmV0dXJuITE7aWYoIXRbMF18fCF0W3QubGVuZ3RoLTFdKXJldHVybiExO2lmKDAhPSt0WzBdWzBdfHwxIT0rdFt0Lmxlbmd0aC0xXVswXSlyZXR1cm4hMTtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG49dFtyXTtpZigyIT09bi5sZW5ndGh8fCtuWzBdPGUpcmV0dXJuITE7ZT0rblswXX1yZXR1cm4hMH0obCl8fChlLm9wYWNpdHlzY2FsZT12b2lkIDApfX0seyIuLi8uLi9saWIiOjcxNywiLi4vaXNvc3VyZmFjZS9kZWZhdWx0cyI6MTA1OSwiLi9hdHRyaWJ1dGVzIjoxMjgxfV0sMTI4NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNhbGM6dCgiLi4vaXNvc3VyZmFjZS9jYWxjIiksY29sb3JiYXI6e21pbjoiY21pbiIsbWF4OiJjbWF4In0scGxvdDp0KCIuL2NvbnZlcnQiKSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToidm9sdW1lIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9nbDNkIiksY2F0ZWdvcmllczpbImdsM2QiLCJzaG93TGVnZW5kIl0sbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvZ2wzZCI6ODA1LCIuLi9pc29zdXJmYWNlL2NhbGMiOjEwNTcsIi4vYXR0cmlidXRlcyI6MTI4MSwiLi9jb252ZXJ0IjoxMjgyLCIuL2RlZmF1bHRzIjoxMjgzfV0sMTI4NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9iYXIvYXR0cmlidXRlcyIpLGE9dCgiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIikubGluZSxpPXQoIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxvPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMscz10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikudGV4dHRlbXBsYXRlQXR0cnMsbD10KCIuL2NvbnN0YW50cyIpLGM9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsdT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIik7ZnVuY3Rpb24gaCh0KXtyZXR1cm57bWFya2VyOntjb2xvcjpjKHt9LG4ubWFya2VyLmNvbG9yLHthcnJheU9rOiExLGVkaXRUeXBlOiJzdHlsZSJ9KSxsaW5lOntjb2xvcjpjKHt9LG4ubWFya2VyLmxpbmUuY29sb3Ise2FycmF5T2s6ITEsZWRpdFR5cGU6InN0eWxlIn0pLHdpZHRoOmMoe30sbi5tYXJrZXIubGluZS53aWR0aCx7YXJyYXlPazohMSxlZGl0VHlwZToic3R5bGUifSksZWRpdFR5cGU6InN0eWxlIn0sZWRpdFR5cGU6InN0eWxlIn0sZWRpdFR5cGU6InN0eWxlIn19ZS5leHBvcnRzPXttZWFzdXJlOnt2YWxUeXBlOiJkYXRhX2FycmF5IixkZmx0OltdLGVkaXRUeXBlOiJjYWxjIn0sYmFzZTp7dmFsVHlwZToibnVtYmVyIixkZmx0Om51bGwsYXJyYXlPazohMSxlZGl0VHlwZToiY2FsYyJ9LHg6bi54LHgwOm4ueDAsZHg6bi5keCx5Om4ueSx5MDpuLnkwLGR5Om4uZHksaG92ZXJ0ZXh0Om4uaG92ZXJ0ZXh0LGhvdmVydGVtcGxhdGU6byh7fSx7a2V5czpsLmV2ZW50RGF0YUtleXN9KSxob3ZlcmluZm86Yyh7fSxpLmhvdmVyaW5mbyx7ZmxhZ3M6WyJuYW1lIiwieCIsInkiLCJ0ZXh0IiwiaW5pdGlhbCIsImRlbHRhIiwiZmluYWwiXX0pLHRleHRpbmZvOnt2YWxUeXBlOiJmbGFnbGlzdCIsZmxhZ3M6WyJsYWJlbCIsInRleHQiLCJpbml0aWFsIiwiZGVsdGEiLCJmaW5hbCJdLGV4dHJhczpbIm5vbmUiXSxlZGl0VHlwZToicGxvdCIsYXJyYXlPazohMX0sdGV4dHRlbXBsYXRlOnMoe2VkaXRUeXBlOiJwbG90In0se2tleXM6bC5ldmVudERhdGFLZXlzLmNvbmNhdChbImxhYmVsIl0pfSksdGV4dDpuLnRleHQsdGV4dHBvc2l0aW9uOm4udGV4dHBvc2l0aW9uLGluc2lkZXRleHRhbmNob3I6bi5pbnNpZGV0ZXh0YW5jaG9yLHRleHRhbmdsZTpuLnRleHRhbmdsZSx0ZXh0Zm9udDpuLnRleHRmb250LGluc2lkZXRleHRmb250Om4uaW5zaWRldGV4dGZvbnQsb3V0c2lkZXRleHRmb250Om4ub3V0c2lkZXRleHRmb250LGNvbnN0cmFpbnRleHQ6bi5jb25zdHJhaW50ZXh0LGNsaXBvbmF4aXM6bi5jbGlwb25heGlzLG9yaWVudGF0aW9uOm4ub3JpZW50YXRpb24sb2Zmc2V0Om4ub2Zmc2V0LHdpZHRoOm4ud2lkdGgsaW5jcmVhc2luZzpoKCksZGVjcmVhc2luZzpoKCksdG90YWxzOmgoKSxjb25uZWN0b3I6e2xpbmU6e2NvbG9yOmMoe30sYS5jb2xvcix7ZGZsdDp1LmRlZmF1bHRMaW5lfSksd2lkdGg6Yyh7fSxhLndpZHRoLHtlZGl0VHlwZToicGxvdCJ9KSxkYXNoOmEuZGFzaCxlZGl0VHlwZToicGxvdCJ9LG1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInNwYW5uaW5nIiwiYmV0d2VlbiJdLGRmbHQ6ImJldHdlZW4iLGVkaXRUeXBlOiJwbG90In0sdmlzaWJsZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJwbG90In0sb2Zmc2V0Z3JvdXA6bi5vZmZzZXRncm91cCxhbGlnbm1lbnRncm91cDpuLmFsaWdubWVudGdyb3VwfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo1OTIsIi4uLy4uL2xpYi9leHRlbmQiOjcwOCwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6NzYyLCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo4NDEsIi4uL2Jhci9hdHRyaWJ1dGVzIjo4NTYsIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyI6MTEyMCwiLi9jb25zdGFudHMiOjEyODd9XSwxMjg2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksYT10KCIuLi8uLi9saWIiKS5tZXJnZUFycmF5LGk9dCgiLi4vc2NhdHRlci9jYWxjX3NlbGVjdGlvbiIpLG89dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTTtmdW5jdGlvbiBzKHQpe3JldHVybiJhIj09PXR8fCJhYnNvbHV0ZSI9PT10fWZ1bmN0aW9uIGwodCl7cmV0dXJuInQiPT09dHx8InRvdGFsIj09PXR9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsYyx1PW4uZ2V0RnJvbUlkKHQsZS54YXhpc3x8IngiKSxoPW4uZ2V0RnJvbUlkKHQsZS55YXhpc3x8InkiKTsiaCI9PT1lLm9yaWVudGF0aW9uPyhyPXUubWFrZUNhbGNkYXRhKGUsIngiKSxjPWgubWFrZUNhbGNkYXRhKGUsInkiKSk6KHI9aC5tYWtlQ2FsY2RhdGEoZSwieSIpLGM9dS5tYWtlQ2FsY2RhdGEoZSwieCIpKTtmb3IodmFyIGYscD1NYXRoLm1pbihjLmxlbmd0aCxyLmxlbmd0aCksZD1uZXcgQXJyYXkocCksZz0wLHY9ITEsbT0wO208cDttKyspe3ZhciB5PXJbbV18fDAseD0hMTsoclttXSE9PW98fGwoZS5tZWFzdXJlW21dKXx8cyhlLm1lYXN1cmVbbV0pKSYmbSsxPHAmJihyW20rMV0hPT1vfHxsKGUubWVhc3VyZVttKzFdKXx8cyhlLm1lYXN1cmVbbSsxXSkpJiYoeD0hMCk7dmFyIGI9ZFttXT17aTptLHA6Y1ttXSxzOnkscmF3Uzp5LGNOZXh0Onh9O3MoZS5tZWFzdXJlW21dKT8oZz1iLnMsYi5pc1N1bT0hMCxiLmRpcj0idG90YWxzIixiLnM9Zyk6bChlLm1lYXN1cmVbbV0pPyhiLmlzU3VtPSEwLGIuZGlyPSJ0b3RhbHMiLGIucz1nKTooYi5pc1N1bT0hMSxiLmRpcj1iLnJhd1M8MD8iZGVjcmVhc2luZyI6ImluY3JlYXNpbmciLGY9Yi5zLGIucz1nK2YsZys9ZiksInRvdGFscyI9PT1iLmRpciYmKHY9ITApLGUuaWRzJiYoYi5pZD1TdHJpbmcoZS5pZHNbbV0pKSxiLnY9KGUuYmFzZXx8MCkrZ31yZXR1cm4gZC5sZW5ndGgmJihkWzBdLmhhc1RvdGFscz12KSxhKGUudGV4dCxkLCJ0eCIpLGEoZS5ob3ZlcnRleHQsZCwiaHR4IiksaShkLGUpLGR9fSx7Ii4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjY5MywiLi4vLi4vbGliIjo3MTcsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo3NjUsIi4uL3NjYXR0ZXIvY2FsY19zZWxlY3Rpb24iOjExMjJ9XSwxMjg3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17ZXZlbnREYXRhS2V5czpbImluaXRpYWwiLCJkZWx0YSIsImZpbmFsIl19fSx7fV0sMTI4ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9iYXIvY3Jvc3NfdHJhY2VfY2FsYyIpLnNldEdyb3VwUG9zaXRpb25zO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLGEsaT10Ll9mdWxsTGF5b3V0LG89dC5fZnVsbERhdGEscz10LmNhbGNkYXRhLGw9ZS54YXhpcyxjPWUueWF4aXMsdT1bXSxoPVtdLGY9W107Zm9yKGE9MDthPG8ubGVuZ3RoO2ErKyl7dmFyIHA9b1thXTshMD09PXAudmlzaWJsZSYmcC54YXhpcz09PWwuX2lkJiZwLnlheGlzPT09Yy5faWQmJiJ3YXRlcmZhbGwiPT09cC50eXBlJiYocj1zW2FdLCJoIj09PXAub3JpZW50YXRpb24/Zi5wdXNoKHIpOmgucHVzaChyKSx1LnB1c2gocikpfXZhciBkPXttb2RlOmkud2F0ZXJmYWxsbW9kZSxub3JtOmkud2F0ZXJmYWxsbm9ybSxnYXA6aS53YXRlcmZhbGxnYXAsZ3JvdXBnYXA6aS53YXRlcmZhbGxncm91cGdhcH07Zm9yKG4odCxsLGMsaCxkKSxuKHQsYyxsLGYsZCksYT0wO2E8dS5sZW5ndGg7YSsrKXtyPXVbYV07Zm9yKHZhciBnPTA7ZzxyLmxlbmd0aDtnKyspe3ZhciB2PXJbZ107ITE9PT12LmlzU3VtJiYodi5zMCs9MD09PWc/MDpyW2ctMV0ucyksZysxPHIubGVuZ3RoJiYocltnXS5uZXh0UDA9cltnKzFdLnAwLHJbZ10ubmV4dFMwPXJbZysxXS5zMCl9fX19LHsiLi4vYmFyL2Nyb3NzX3RyYWNlX2NhbGMiOjg1OX1dLDEyODk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuLi9iYXIvZGVmYXVsdHMiKS5oYW5kbGVHcm91cGluZ0RlZmF1bHRzLGk9dCgiLi4vYmFyL2RlZmF1bHRzIikuaGFuZGxlVGV4dCxvPXQoIi4uL3NjYXR0ZXIveHlfZGVmYXVsdHMiKSxzPXQoIi4vYXR0cmlidXRlcyIpLGw9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGM9dCgiLi4vLi4vY29uc3RhbnRzL2RlbHRhLmpzIiksdT1jLklOQ1JFQVNJTkcuQ09MT1IsaD1jLkRFQ1JFQVNJTkcuQ09MT1IsZj0iIzQ0OTlGRiI7ZnVuY3Rpb24gcCh0LGUscil7dChlKyIubWFya2VyLmNvbG9yIixyKSx0KGUrIi5tYXJrZXIubGluZS5jb2xvciIsbC5kZWZhdWx0TGluZSksdChlKyIubWFya2VyLmxpbmUud2lkdGgiKX1lLmV4cG9ydHM9e3N1cHBseURlZmF1bHRzOmZ1bmN0aW9uKHQsZSxyLGEpe2Z1bmN0aW9uIGwocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLHMscixhKX1pZihvKHQsZSxhLGwpKXtsKCJtZWFzdXJlIiksbCgib3JpZW50YXRpb24iLGUueCYmIWUueT8iaCI6InYiKSxsKCJiYXNlIiksbCgib2Zmc2V0IiksbCgid2lkdGgiKSxsKCJ0ZXh0IiksbCgiaG92ZXJ0ZXh0IiksbCgiaG92ZXJ0ZW1wbGF0ZSIpO3ZhciBjPWwoInRleHRwb3NpdGlvbiIpO2kodCxlLGEsbCxjLHttb2R1bGVIYXNTZWxlY3RlZDohMSxtb2R1bGVIYXNVbnNlbGVjdGVkOiExLG1vZHVsZUhhc0NvbnN0cmFpbjohMCxtb2R1bGVIYXNDbGlwb25heGlzOiEwLG1vZHVsZUhhc1RleHRhbmdsZTohMCxtb2R1bGVIYXNJbnNpZGVhbmNob3I6ITB9KSwibm9uZSIhPT1lLnRleHRwb3NpdGlvbiYmKGwoInRleHR0ZW1wbGF0ZSIpLGUudGV4dHRlbXBsYXRlfHxsKCJ0ZXh0aW5mbyIpKSxwKGwsImluY3JlYXNpbmciLHUpLHAobCwiZGVjcmVhc2luZyIsaCkscChsLCJ0b3RhbHMiLGYpLGwoImNvbm5lY3Rvci52aXNpYmxlIikmJihsKCJjb25uZWN0b3IubW9kZSIpLGwoImNvbm5lY3Rvci5saW5lLndpZHRoIikmJihsKCJjb25uZWN0b3IubGluZS5jb2xvciIpLGwoImNvbm5lY3Rvci5saW5lLmRhc2giKSkpfWVsc2UgZS52aXNpYmxlPSExfSxjcm9zc1RyYWNlRGVmYXVsdHM6ZnVuY3Rpb24odCxlKXt2YXIgcixpO2Z1bmN0aW9uIG8odCl7cmV0dXJuIG4uY29lcmNlKGkuX2lucHV0LGkscyx0KX1pZigiZ3JvdXAiPT09ZS53YXRlcmZhbGxtb2RlKWZvcih2YXIgbD0wO2w8dC5sZW5ndGg7bCsrKXI9KGk9dFtsXSkuX2lucHV0LGEocixpLGUsbyl9fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo1OTIsIi4uLy4uL2NvbnN0YW50cy9kZWx0YS5qcyI6Njg3LCIuLi8uLi9saWIiOjcxNywiLi4vYmFyL2RlZmF1bHRzIjo4NjAsIi4uL3NjYXR0ZXIveHlfZGVmYXVsdHMiOjExNDYsIi4vYXR0cmlidXRlcyI6MTI4NX1dLDEyOTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQueD0ieFZhbCJpbiBlP2UueFZhbDplLngsdC55PSJ5VmFsImluIGU/ZS55VmFsOmUueSwiaW5pdGlhbCJpbiBlJiYodC5pbml0aWFsPWUuaW5pdGlhbCksImRlbHRhImluIGUmJih0LmRlbHRhPWUuZGVsdGEpLCJmaW5hbCJpbiBlJiYodC5maW5hbD1lLmZpbmFsKSxlLnhhJiYodC54YXhpcz1lLnhhKSxlLnlhJiYodC55YXhpcz1lLnlhKSx0fX0se31dLDEyOTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKS5ob3ZlckxhYmVsVGV4dCxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKS5vcGFjaXR5LGk9dCgiLi4vYmFyL2hvdmVyIikuaG92ZXJPbkJhcnMsbz10KCIuLi8uLi9jb25zdGFudHMvZGVsdGEuanMiKSxzPW8uSU5DUkVBU0lORy5TWU1CT0wsbD1vLkRFQ1JFQVNJTkcuU1lNQk9MO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixvKXt2YXIgYz1pKHQsZSxyLG8pO2lmKGMpe3ZhciB1PWMuY2QsaD11WzBdLnRyYWNlLGY9ImgiPT09aC5vcmllbnRhdGlvbixwPWY/dC54YTp0LnlhLGQ9dVtjLmluZGV4XSxnPWQuaXNTdW0/ZC5iK2QuczpkLnJhd1M7aWYoIWQuaXNTdW0pe2MuaW5pdGlhbD1kLmIrZC5zLWcsYy5kZWx0YT1nLGMuZmluYWw9Yy5pbml0aWFsK2MuZGVsdGE7dmFyIHY9dyhNYXRoLmFicyhjLmRlbHRhKSk7Yy5kZWx0YUxhYmVsPWc8MD8iKCIrdisiKSI6dixjLmZpbmFsTGFiZWw9dyhjLmZpbmFsKSxjLmluaXRpYWxMYWJlbD13KGMuaW5pdGlhbCl9dmFyIG09ZC5oaXx8aC5ob3ZlcmluZm8seT1bXTtpZihtJiYibm9uZSIhPT1tJiYic2tpcCIhPT1tKXt2YXIgeD0iYWxsIj09PW0sYj1tLnNwbGl0KCIrIiksXz1mdW5jdGlvbih0KXtyZXR1cm4geHx8LTEhPT1iLmluZGV4T2YodCl9O2QuaXNTdW18fCghXygiZmluYWwiKXx8XyhmPyJ4IjoieSIpfHx5LnB1c2goYy5maW5hbExhYmVsKSxfKCJkZWx0YSIpJiYoZzwwP3kucHVzaChjLmRlbHRhTGFiZWwrIiAiK2wpOnkucHVzaChjLmRlbHRhTGFiZWwrIiAiK3MpKSxfKCJpbml0aWFsIikmJnkucHVzaCgiSW5pdGlhbDogIitjLmluaXRpYWxMYWJlbCkpfXJldHVybiB5Lmxlbmd0aCYmKGMuZXh0cmFUZXh0PXkuam9pbigiPGJyPiIpKSxjLmNvbG9yPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dFtlLmRpcl0ubWFya2VyLG49ci5jb2xvcixpPXIubGluZS5jb2xvcixvPXIubGluZS53aWR0aDtpZihhKG4pKXJldHVybiBuO2lmKGEoaSkmJm8pcmV0dXJuIGl9KGgsZCksW2NdfWZ1bmN0aW9uIHcodCl7cmV0dXJuIG4ocCx0KX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjU5MiwiLi4vLi4vY29uc3RhbnRzL2RlbHRhLmpzIjo2ODcsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo3NjUsIi4uL2Jhci9ob3ZlciI6ODYzfV0sMTI5MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksbGF5b3V0QXR0cmlidXRlczp0KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLnN1cHBseURlZmF1bHRzLGNyb3NzVHJhY2VEZWZhdWx0czp0KCIuL2RlZmF1bHRzIikuY3Jvc3NUcmFjZURlZmF1bHRzLHN1cHBseUxheW91dERlZmF1bHRzOnQoIi4vbGF5b3V0X2RlZmF1bHRzIiksY2FsYzp0KCIuL2NhbGMiKSxjcm9zc1RyYWNlQ2FsYzp0KCIuL2Nyb3NzX3RyYWNlX2NhbGMiKSxwbG90OnQoIi4vcGxvdCIpLHN0eWxlOnQoIi4vc3R5bGUiKS5zdHlsZSxob3ZlclBvaW50czp0KCIuL2hvdmVyIiksZXZlbnREYXRhOnQoIi4vZXZlbnRfZGF0YSIpLHNlbGVjdFBvaW50czp0KCIuLi9iYXIvc2VsZWN0IiksbW9kdWxlVHlwZToidHJhY2UiLG5hbWU6IndhdGVyZmFsbCIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuIiksY2F0ZWdvcmllczpbImJhci1saWtlIiwiY2FydGVzaWFuIiwic3ZnIiwib3JpZW50ZWQiLCJzaG93TGVnZW5kIiwiem9vbVNjYWxlIl0sbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuIjo3NzYsIi4uL2Jhci9zZWxlY3QiOjg2OCwiLi9hdHRyaWJ1dGVzIjoxMjg1LCIuL2NhbGMiOjEyODYsIi4vY3Jvc3NfdHJhY2VfY2FsYyI6MTI4OCwiLi9kZWZhdWx0cyI6MTI4OSwiLi9ldmVudF9kYXRhIjoxMjkwLCIuL2hvdmVyIjoxMjkxLCIuL2xheW91dF9hdHRyaWJ1dGVzIjoxMjkzLCIuL2xheW91dF9kZWZhdWx0cyI6MTI5NCwiLi9wbG90IjoxMjk1LCIuL3N0eWxlIjoxMjk2fV0sMTI5MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e3dhdGVyZmFsbG1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImdyb3VwIiwib3ZlcmxheSJdLGRmbHQ6Imdyb3VwIixlZGl0VHlwZToiY2FsYyJ9LHdhdGVyZmFsbGdhcDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxlZGl0VHlwZToiY2FsYyJ9LHdhdGVyZmFsbGdyb3VwZ2FwOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MCxlZGl0VHlwZToiY2FsYyJ9fX0se31dLDEyOTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksYT10KCIuL2xheW91dF9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT0hMTtmdW5jdGlvbiBvKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxhLHIsaSl9Zm9yKHZhciBzPTA7czxyLmxlbmd0aDtzKyspe3ZhciBsPXJbc107aWYobC52aXNpYmxlJiYid2F0ZXJmYWxsIj09PWwudHlwZSl7aT0hMDticmVha319aSYmKG8oIndhdGVyZmFsbG1vZGUiKSxvKCJ3YXRlcmZhbGxnYXAiLC4yKSxvKCJ3YXRlcmZhbGxncm91cGdhcCIpKX19LHsiLi4vLi4vbGliIjo3MTcsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjEyOTN9XSwxMjk1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksYT10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLG89dCgiLi4vYmFyL3Bsb3QiKSxzPXQoIi4uL2Jhci91bmlmb3JtX3RleHQiKS5jbGVhck1pblRleHRTaXplO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixsKXt2YXIgYz10Ll9mdWxsTGF5b3V0O3MoIndhdGVyZmFsbCIsYyksby5wbG90KHQsZSxyLGwse21vZGU6Yy53YXRlcmZhbGxtb2RlLG5vcm06Yy53YXRlcmZhbGxtb2RlLGdhcDpjLndhdGVyZmFsbGdhcCxncm91cGdhcDpjLndhdGVyZmFsbGdyb3VwZ2FwfSksZnVuY3Rpb24odCxlLHIsbyl7dmFyIHM9ZS54YXhpcyxsPWUueWF4aXM7YS5tYWtlVHJhY2VHcm91cHMobyxyLCJ0cmFjZSBiYXJzIikuZWFjaChmdW5jdGlvbihyKXt2YXIgbz1uLnNlbGVjdCh0aGlzKSxjPXJbMF0udHJhY2UsdT1hLmVuc3VyZVNpbmdsZShvLCJnIiwibGluZXMiKTtpZihjLmNvbm5lY3RvciYmYy5jb25uZWN0b3IudmlzaWJsZSl7dmFyIGg9ImgiPT09Yy5vcmllbnRhdGlvbixmPWMuY29ubmVjdG9yLm1vZGUscD11LnNlbGVjdEFsbCgiZy5saW5lIikuZGF0YShhLmlkZW50aXR5KTtwLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgibGluZSIsITApLHAuZXhpdCgpLnJlbW92ZSgpO3ZhciBkPXAuc2l6ZSgpO3AuZWFjaChmdW5jdGlvbihyLG8pe2lmKG89PT1kLTF8fHIuY05leHQpe3ZhciBjPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPVtdLGk9W10sbz1uP2U6cixzPW4/cjplO3JldHVybiBhWzBdPW8uYzJwKHQuczAsITApLGlbMF09cy5jMnAodC5wMCwhMCksYVsxXT1vLmMycCh0LnMxLCEwKSxpWzFdPXMuYzJwKHQucDEsITApLGFbMl09by5jMnAodC5uZXh0UzAsITApLGlbMl09cy5jMnAodC5uZXh0UDAsITApLG4/W2EsaV06W2ksYV19KHIscyxsLGgpLHU9Y1swXSxwPWNbMV0sZz0iIjsic3Bhbm5pbmciPT09ZiYmIXIuaXNTdW0mJm8+MCYmKGcrPWg/Ik0iK3VbMF0rIiwiK3BbMV0rIlYiK3BbMF06Ik0iK3VbMV0rIiwiK3BbMF0rIkgiK3VbMF0pLCJiZXR3ZWVuIiE9PWYmJihyLmlzU3VtfHxvPGQtMSkmJihnKz1oPyJNIit1WzFdKyIsIitwWzBdKyJWIitwWzFdOiJNIit1WzBdKyIsIitwWzFdKyJIIit1WzFdKSx2b2lkIDAhPT11WzJdJiZ2b2lkIDAhPT1wWzJdJiYoZys9aD8iTSIrdVsxXSsiLCIrcFsxXSsiViIrcFsyXToiTSIrdVsxXSsiLCIrcFsxXSsiSCIrdVsyXSksIiI9PT1nJiYoZz0iTTAsMFoiKSxhLmVuc3VyZVNpbmdsZShuLnNlbGVjdCh0aGlzKSwicGF0aCIpLmF0dHIoImQiLGcpLmNhbGwoaS5zZXRDbGlwVXJsLGUubGF5ZXJDbGlwSWQsdCl9fSl9ZWxzZSB1LnJlbW92ZSgpfSl9KHQsZSxyLGwpfX0seyIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjYxMywiLi4vLi4vbGliIjo3MTcsIi4uL2Jhci9wbG90Ijo4NjcsIi4uL2Jhci91bmlmb3JtX3RleHQiOjg3MixkMzoxNjV9XSwxMjk2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxvPXQoIi4uLy4uL2NvbnN0YW50cy9pbnRlcmFjdGlvbnMiKS5ERVNFTEVDVERJTSxzPXQoIi4uL2Jhci9zdHlsZSIpLGw9dCgiLi4vYmFyL3VuaWZvcm1fdGV4dCIpLnJlc2l6ZVRleHQsYz1zLnN0eWxlVGV4dFBvaW50cztlLmV4cG9ydHM9e3N0eWxlOmZ1bmN0aW9uKHQsZSxyKXt2YXIgcz1yfHxuLnNlbGVjdCh0KS5zZWxlY3RBbGwoImcud2F0ZXJmYWxsbGF5ZXIiKS5zZWxlY3RBbGwoImcudHJhY2UiKTtsKHQscywid2F0ZXJmYWxsIikscy5zdHlsZSgib3BhY2l0eSIsZnVuY3Rpb24odCl7cmV0dXJuIHRbMF0udHJhY2Uub3BhY2l0eX0pLHMuZWFjaChmdW5jdGlvbihlKXt2YXIgcj1uLnNlbGVjdCh0aGlzKSxzPWVbMF0udHJhY2U7ci5zZWxlY3RBbGwoIi5wb2ludCA+IHBhdGgiKS5lYWNoKGZ1bmN0aW9uKHQpe2lmKCF0LmlzQmxhbmspe3ZhciBlPXNbdC5kaXJdLm1hcmtlcjtuLnNlbGVjdCh0aGlzKS5jYWxsKGkuZmlsbCxlLmNvbG9yKS5jYWxsKGkuc3Ryb2tlLGUubGluZS5jb2xvcikuY2FsbChhLmRhc2hMaW5lLGUubGluZS5kYXNoLGUubGluZS53aWR0aCkuc3R5bGUoIm9wYWNpdHkiLHMuc2VsZWN0ZWRwb2ludHMmJiF0LnNlbGVjdGVkP286MSl9fSksYyhyLHMsdCksci5zZWxlY3RBbGwoIi5saW5lcyIpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1zLmNvbm5lY3Rvci5saW5lO2EubGluZUdyb3VwU3R5bGUobi5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJwYXRoIiksdC53aWR0aCx0LmNvbG9yLHQuZGFzaCl9KX0pfX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTkyLCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjYxMywiLi4vLi4vY29uc3RhbnRzL2ludGVyYWN0aW9ucyI6NjkyLCIuLi9iYXIvc3R5bGUiOjg3MCwiLi4vYmFyL3VuaWZvcm1fdGV4dCI6ODcyLGQzOjE2NX1dLDEyOTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxhPXQoIi4uL2xpYiIpLGk9dCgiLi4vcGxvdF9hcGkvcGxvdF9zY2hlbWEiKSxvPXQoIi4vaGVscGVycyIpLnBvaW50c0FjY2Vzc29yRnVuY3Rpb24scz10KCIuLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNO3IubW9kdWxlVHlwZT0idHJhbnNmb3JtIixyLm5hbWU9ImFnZ3JlZ2F0ZSI7dmFyIGw9ci5hdHRyaWJ1dGVzPXtlbmFibGVkOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJjYWxjIn0sZ3JvdXBzOnt2YWxUeXBlOiJzdHJpbmciLHN0cmljdDohMCxub0JsYW5rOiEwLGFycmF5T2s6ITAsZGZsdDoieCIsZWRpdFR5cGU6ImNhbGMifSxhZ2dyZWdhdGlvbnM6e19pc0xpbmtlZFRvQXJyYXk6ImFnZ3JlZ2F0aW9uIix0YXJnZXQ6e3ZhbFR5cGU6InN0cmluZyIsZWRpdFR5cGU6ImNhbGMifSxmdW5jOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJjb3VudCIsInN1bSIsImF2ZyIsIm1lZGlhbiIsIm1vZGUiLCJybXMiLCJzdGRkZXYiLCJtaW4iLCJtYXgiLCJmaXJzdCIsImxhc3QiLCJjaGFuZ2UiLCJyYW5nZSJdLGRmbHQ6ImZpcnN0IixlZGl0VHlwZToiY2FsYyJ9LGZ1bmNtb2RlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJzYW1wbGUiLCJwb3B1bGF0aW9uIl0sZGZsdDoic2FtcGxlIixlZGl0VHlwZToiY2FsYyJ9LGVuYWJsZWQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6ImNhbGMifSxlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYWxjIn0sYz1sLmFnZ3JlZ2F0aW9ucztmdW5jdGlvbiB1KHQsZSxyLGkpe2lmKGkuZW5hYmxlZCl7Zm9yKHZhciBvPWkudGFyZ2V0LGw9YS5uZXN0ZWRQcm9wZXJ0eShlLG8pLGM9bC5nZXQoKSx1PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5mdW5jLG49ZS5kMmMsYT1lLmMyZDtzd2l0Y2gocil7Y2FzZSJjb3VudCI6cmV0dXJuIGg7Y2FzZSJmaXJzdCI6cmV0dXJuIGY7Y2FzZSJsYXN0IjpyZXR1cm4gcDtjYXNlInN1bSI6cmV0dXJuIGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTAsaT0wO2k8ZS5sZW5ndGg7aSsrKXt2YXIgbz1uKHRbZVtpXV0pO28hPT1zJiYocis9byl9cmV0dXJuIGEocil9O2Nhc2UiYXZnIjpyZXR1cm4gZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MCxpPTAsbz0wO288ZS5sZW5ndGg7bysrKXt2YXIgbD1uKHRbZVtvXV0pO2whPT1zJiYocis9bCxpKyspfXJldHVybiBpP2Eoci9pKTpzfTtjYXNlIm1pbiI6cmV0dXJuIGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTEvMCxpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciBvPW4odFtlW2ldXSk7byE9PXMmJihyPU1hdGgubWluKHIsbykpfXJldHVybiByPT09MS8wP3M6YShyKX07Y2FzZSJtYXgiOnJldHVybiBmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0tMS8wLGk9MDtpPGUubGVuZ3RoO2krKyl7dmFyIG89bih0W2VbaV1dKTtvIT09cyYmKHI9TWF0aC5tYXgocixvKSl9cmV0dXJuIHI9PT0tMS8wP3M6YShyKX07Y2FzZSJyYW5nZSI6cmV0dXJuIGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTEvMCxpPS0xLzAsbz0wO288ZS5sZW5ndGg7bysrKXt2YXIgbD1uKHRbZVtvXV0pO2whPT1zJiYocj1NYXRoLm1pbihyLGwpLGk9TWF0aC5tYXgoaSxsKSl9cmV0dXJuIGk9PT0tMS8wfHxyPT09MS8wP3M6YShpLXIpfTtjYXNlImNoYW5nZSI6cmV0dXJuIGZ1bmN0aW9uKHQsZSl7dmFyIHI9bih0W2VbMF1dKSxpPW4odFtlW2UubGVuZ3RoLTFdXSk7cmV0dXJuIHI9PT1zfHxpPT09cz9zOmEoaS1yKX07Y2FzZSJtZWRpYW4iOnJldHVybiBmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1bXSxpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciBvPW4odFtlW2ldXSk7byE9PXMmJnIucHVzaChvKX1pZighci5sZW5ndGgpcmV0dXJuIHM7ci5zb3J0KCk7dmFyIGw9KHIubGVuZ3RoLTEpLzI7cmV0dXJuIGEoKHJbTWF0aC5mbG9vcihsKV0rcltNYXRoLmNlaWwobCldKS8yKX07Y2FzZSJtb2RlIjpyZXR1cm4gZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9e30saT0wLG89cyxsPTA7bDxlLmxlbmd0aDtsKyspe3ZhciBjPW4odFtlW2xdXSk7aWYoYyE9PXMpe3ZhciB1PXJbY109KHJbY118fDApKzE7dT5pJiYoaT11LG89Yyl9fXJldHVybiBpP2Eobyk6c307Y2FzZSJybXMiOnJldHVybiBmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wLGk9MCxvPTA7bzxlLmxlbmd0aDtvKyspe3ZhciBsPW4odFtlW29dXSk7bCE9PXMmJihyKz1sKmwsaSsrKX1yZXR1cm4gaT9hKE1hdGguc3FydChyL2kpKTpzfTtjYXNlInN0ZGRldiI6cmV0dXJuIGZ1bmN0aW9uKGUscil7dmFyIGEsaT0wLG89MCxsPTEsYz1zO2ZvcihhPTA7YTxyLmxlbmd0aCYmYz09PXM7YSsrKWM9bihlW3JbYV1dKTtpZihjPT09cylyZXR1cm4gcztmb3IoO2E8ci5sZW5ndGg7YSsrKXt2YXIgdT1uKGVbclthXV0pO2lmKHUhPT1zKXt2YXIgaD11LWM7aSs9aCxvKz1oKmgsbCsrfX12YXIgZj0ic2FtcGxlIj09PXQuZnVuY21vZGU/bC0xOmw7cmV0dXJuIGY/TWF0aC5zcXJ0KChvLWkqaS9sKS9mKTowfX19KGksbi5nZXREYXRhQ29udmVyc2lvbnModCxlLG8sYykpLGQ9bmV3IEFycmF5KHIubGVuZ3RoKSxnPTA7ZzxyLmxlbmd0aDtnKyspZFtnXT11KGMscltnXSk7bC5zZXQoZCksImNvdW50Ij09PWkuZnVuYyYmYS5wdXNoVW5pcXVlKGUuX2FycmF5QXR0cnMsbyl9fWZ1bmN0aW9uIGgodCxlKXtyZXR1cm4gZS5sZW5ndGh9ZnVuY3Rpb24gZih0LGUpe3JldHVybiB0W2VbMF1dfWZ1bmN0aW9uIHAodCxlKXtyZXR1cm4gdFtlW2UubGVuZ3RoLTFdXX1yLnN1cHBseURlZmF1bHRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbj17fTtmdW5jdGlvbiBvKGUscil7cmV0dXJuIGEuY29lcmNlKHQsbixsLGUscil9aWYoIW8oImVuYWJsZWQiKSlyZXR1cm4gbjt2YXIgcz1pLmZpbmRBcnJheUF0dHJpYnV0ZXMoZSksdT17fTtmb3Iocj0wO3I8cy5sZW5ndGg7cisrKXVbc1tyXV09MTt2YXIgaD1vKCJncm91cHMiKTtpZighQXJyYXkuaXNBcnJheShoKSl7aWYoIXVbaF0pcmV0dXJuIG4uZW5hYmxlZD0hMSxuO3VbaF09MH12YXIgZixwPXQuYWdncmVnYXRpb25zfHxbXSxkPW4uYWdncmVnYXRpb25zPW5ldyBBcnJheShwLmxlbmd0aCk7ZnVuY3Rpb24gZyh0LGUpe3JldHVybiBhLmNvZXJjZShwW3JdLGYsYyx0LGUpfWZvcihyPTA7cjxwLmxlbmd0aDtyKyspe2Y9e19pbmRleDpyfTt2YXIgdj1nKCJ0YXJnZXQiKSxtPWcoImZ1bmMiKTtnKCJlbmFibGVkIikmJnYmJih1W3ZdfHwiY291bnQiPT09bSYmdm9pZCAwPT09dVt2XSk/KCJzdGRkZXYiPT09bSYmZygiZnVuY21vZGUiKSx1W3ZdPTAsZFtyXT1mKTpkW3JdPXtlbmFibGVkOiExLF9pbmRleDpyfX1mb3Iocj0wO3I8cy5sZW5ndGg7cisrKXVbc1tyXV0mJmQucHVzaCh7dGFyZ2V0OnNbcl0sZnVuYzpjLmZ1bmMuZGZsdCxlbmFibGVkOiEwLF9pbmRleDotMX0pO3JldHVybiBufSxyLmNhbGNUcmFuc2Zvcm09ZnVuY3Rpb24odCxlLHIpe2lmKHIuZW5hYmxlZCl7dmFyIG49ci5ncm91cHMsaT1hLmdldFRhcmdldEFycmF5KGUse3RhcmdldDpufSk7aWYoaSl7dmFyIHMsbCxjLGgsZj17fSxwPXt9LGQ9W10sZz1vKGUudHJhbnNmb3JtcyxyKSx2PWkubGVuZ3RoO2ZvcihlLl9sZW5ndGgmJih2PU1hdGgubWluKHYsZS5fbGVuZ3RoKSkscz0wO3M8djtzKyspdm9pZCAwPT09KGM9ZltsPWlbc11dKT8oZltsXT1kLmxlbmd0aCxoPVtzXSxkLnB1c2goaCkscFtmW2xdXT1nKHMpKTooZFtjXS5wdXNoKHMpLHBbZltsXV09KHBbZltsXV18fFtdKS5jb25jYXQoZyhzKSkpO3IuX2luZGV4VG9Qb2ludHM9cDt2YXIgbT1yLmFnZ3JlZ2F0aW9ucztmb3Iocz0wO3M8bS5sZW5ndGg7cysrKXUodCxlLGQsbVtzXSk7InN0cmluZyI9PXR5cGVvZiBuJiZ1KHQsZSxkLHt0YXJnZXQ6bixmdW5jOiJmaXJzdCIsZW5hYmxlZDohMH0pLGUuX2xlbmd0aD1kLmxlbmd0aH19fX0seyIuLi9jb25zdGFudHMvbnVtZXJpY2FsIjo2OTMsIi4uL2xpYiI6NzE3LCIuLi9wbG90X2FwaS9wbG90X3NjaGVtYSI6NzU0LCIuLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NzY1LCIuL2hlbHBlcnMiOjEzMDB9XSwxMjk4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2xpYiIpLGE9dCgiLi4vcmVnaXN0cnkiKSxpPXQoIi4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksbz10KCIuL2hlbHBlcnMiKS5wb2ludHNBY2Nlc3NvckZ1bmN0aW9uLHM9dCgiLi4vY29uc3RhbnRzL2ZpbHRlcl9vcHMiKSxsPXMuQ09NUEFSSVNPTl9PUFMsYz1zLklOVEVSVkFMX09QUyx1PXMuU0VUX09QUztyLm1vZHVsZVR5cGU9InRyYW5zZm9ybSIsci5uYW1lPSJmaWx0ZXIiLHIuYXR0cmlidXRlcz17ZW5hYmxlZDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToiY2FsYyJ9LHRhcmdldDp7dmFsVHlwZToic3RyaW5nIixzdHJpY3Q6ITAsbm9CbGFuazohMCxhcnJheU9rOiEwLGRmbHQ6IngiLGVkaXRUeXBlOiJjYWxjIn0sb3BlcmF0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6W10uY29uY2F0KGwpLmNvbmNhdChjKS5jb25jYXQodSksZGZsdDoiPSIsZWRpdFR5cGU6ImNhbGMifSx2YWx1ZTp7dmFsVHlwZToiYW55IixkZmx0OjAsZWRpdFR5cGU6ImNhbGMifSxwcmVzZXJ2ZWdhcHM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITEsZWRpdFR5cGU6ImNhbGMifSxlZGl0VHlwZToiY2FsYyJ9LHIuc3VwcGx5RGVmYXVsdHM9ZnVuY3Rpb24odCl7dmFyIGU9e307ZnVuY3Rpb24gaShhLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsci5hdHRyaWJ1dGVzLGEsaSl9aWYoaSgiZW5hYmxlZCIpKXt2YXIgbz1pKCJ0YXJnZXQiKTtpZihuLmlzQXJyYXlPclR5cGVkQXJyYXkobykmJjA9PT1vLmxlbmd0aClyZXR1cm4gZS5lbmFibGVkPSExLGU7aSgicHJlc2VydmVnYXBzIiksaSgib3BlcmF0aW9uIiksaSgidmFsdWUiKTt2YXIgcz1hLmdldENvbXBvbmVudE1ldGhvZCgiY2FsZW5kYXJzIiwiaGFuZGxlRGVmYXVsdHMiKTtzKHQsZSwidmFsdWVjYWxlbmRhciIsbnVsbCkscyh0LGUsInRhcmdldGNhbGVuZGFyIixudWxsKX1yZXR1cm4gZX0sci5jYWxjVHJhbnNmb3JtPWZ1bmN0aW9uKHQsZSxyKXtpZihyLmVuYWJsZWQpe3ZhciBhPW4uZ2V0VGFyZ2V0QXJyYXkoZSxyKTtpZihhKXt2YXIgcz1yLnRhcmdldCxoPWEubGVuZ3RoO2UuX2xlbmd0aCYmKGg9TWF0aC5taW4oaCxlLl9sZW5ndGgpKTt2YXIgZj1yLnRhcmdldGNhbGVuZGFyLHA9ZS5fYXJyYXlBdHRycyxkPXIucHJlc2VydmVnYXBzO2lmKCJzdHJpbmciPT10eXBlb2Ygcyl7dmFyIGc9bi5uZXN0ZWRQcm9wZXJ0eShlLHMrImNhbGVuZGFyIikuZ2V0KCk7ZyYmKGY9Zyl9dmFyIHYsbSx5PWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10Lm9wZXJhdGlvbixhPXQudmFsdWUsaT1BcnJheS5pc0FycmF5KGEpO2Z1bmN0aW9uIG8odCl7cmV0dXJuLTEhPT10LmluZGV4T2Yobil9dmFyIHMsaD1mdW5jdGlvbihyKXtyZXR1cm4gZShyLDAsdC52YWx1ZWNhbGVuZGFyKX0sZj1mdW5jdGlvbih0KXtyZXR1cm4gZSh0LDAscil9O28obCk/cz1oKGk/YVswXTphKTpvKGMpP3M9aT9baChhWzBdKSxoKGFbMV0pXTpbaChhKSxoKGEpXTpvKHUpJiYocz1pP2EubWFwKGgpOltoKGEpXSk7c3dpdGNoKG4pe2Nhc2UiPSI6cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBmKHQpPT09c307Y2FzZSIhPSI6cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBmKHQpIT09c307Y2FzZSI8IjpyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGYodCk8c307Y2FzZSI8PSI6cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBmKHQpPD1zfTtjYXNlIj4iOnJldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZih0KT5zfTtjYXNlIj49IjpyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGYodCk+PXN9O2Nhc2UiW10iOnJldHVybiBmdW5jdGlvbih0KXt2YXIgZT1mKHQpO3JldHVybiBlPj1zWzBdJiZlPD1zWzFdfTtjYXNlIigpIjpyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9Zih0KTtyZXR1cm4gZT5zWzBdJiZlPHNbMV19O2Nhc2UiWykiOnJldHVybiBmdW5jdGlvbih0KXt2YXIgZT1mKHQpO3JldHVybiBlPj1zWzBdJiZlPHNbMV19O2Nhc2UiKF0iOnJldHVybiBmdW5jdGlvbih0KXt2YXIgZT1mKHQpO3JldHVybiBlPnNbMF0mJmU8PXNbMV19O2Nhc2UiXVsiOnJldHVybiBmdW5jdGlvbih0KXt2YXIgZT1mKHQpO3JldHVybiBlPD1zWzBdfHxlPj1zWzFdfTtjYXNlIikoIjpyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9Zih0KTtyZXR1cm4gZTxzWzBdfHxlPnNbMV19O2Nhc2UiXSgiOnJldHVybiBmdW5jdGlvbih0KXt2YXIgZT1mKHQpO3JldHVybiBlPD1zWzBdfHxlPnNbMV19O2Nhc2UiKVsiOnJldHVybiBmdW5jdGlvbih0KXt2YXIgZT1mKHQpO3JldHVybiBlPHNbMF18fGU+PXNbMV19O2Nhc2Uie30iOnJldHVybiBmdW5jdGlvbih0KXtyZXR1cm4tMSE9PXMuaW5kZXhPZihmKHQpKX07Y2FzZSJ9eyI6cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybi0xPT09cy5pbmRleE9mKGYodCkpfX19KHIsaS5nZXREYXRhVG9Db29yZEZ1bmModCxlLHMsYSksZikseD17fSxiPXt9LF89MDtkPyh2PWZ1bmN0aW9uKHQpe3hbdC5hc3RyXT1uLmV4dGVuZERlZXAoW10sdC5nZXQoKSksdC5zZXQobmV3IEFycmF5KGgpKX0sbT1mdW5jdGlvbih0LGUpe3ZhciByPXhbdC5hc3RyXVtlXTt0LmdldCgpW2VdPXJ9KToodj1mdW5jdGlvbih0KXt4W3QuYXN0cl09bi5leHRlbmREZWVwKFtdLHQuZ2V0KCkpLHQuc2V0KFtdKX0sbT1mdW5jdGlvbih0LGUpe3ZhciByPXhbdC5hc3RyXVtlXTt0LmdldCgpLnB1c2gocil9KSxUKHYpO2Zvcih2YXIgdz1vKGUudHJhbnNmb3JtcyxyKSxrPTA7azxoO2srKyl7eShhW2tdKT8oVChtLGspLGJbXysrXT13KGspKTpkJiZfKyt9ci5faW5kZXhUb1BvaW50cz1iLGUuX2xlbmd0aD1ffX1mdW5jdGlvbiBUKHQscil7Zm9yKHZhciBhPTA7YTxwLmxlbmd0aDthKyspe3Qobi5uZXN0ZWRQcm9wZXJ0eShlLHBbYV0pLHIpfX19fSx7Ii4uL2NvbnN0YW50cy9maWx0ZXJfb3BzIjo2ODksIi4uL2xpYiI6NzE3LCIuLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NzY1LCIuLi9yZWdpc3RyeSI6ODQ2LCIuL2hlbHBlcnMiOjEzMDB9XSwxMjk5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2xpYiIpLGE9dCgiLi4vcGxvdF9hcGkvcGxvdF9zY2hlbWEiKSxpPXQoIi4uL3Bsb3RzL3Bsb3RzIiksbz10KCIuL2hlbHBlcnMiKS5wb2ludHNBY2Nlc3NvckZ1bmN0aW9uO2Z1bmN0aW9uIHModCxlKXt2YXIgcixzLGwsYyx1LGgsZixwLGQsZyx2PWUudHJhbnNmb3JtLG09ZS50cmFuc2Zvcm1JbmRleCx5PXQudHJhbnNmb3Jtc1ttXS5ncm91cHMseD1vKHQudHJhbnNmb3Jtcyx2KTtpZighbi5pc0FycmF5T3JUeXBlZEFycmF5KHkpfHwwPT09eS5sZW5ndGgpcmV0dXJuW3RdO3ZhciBiPW4uZmlsdGVyVW5pcXVlKHkpLF89bmV3IEFycmF5KGIubGVuZ3RoKSx3PXkubGVuZ3RoLGs9YS5maW5kQXJyYXlBdHRyaWJ1dGVzKHQpLFQ9di5zdHlsZXN8fFtdLE09e307Zm9yKHI9MDtyPFQubGVuZ3RoO3IrKylNW1Rbcl0udGFyZ2V0XT1UW3JdLnZhbHVlO3Yuc3R5bGVzJiYoZz1uLmtleWVkQ29udGFpbmVyKHYsInN0eWxlcyIsInRhcmdldCIsInZhbHVlLm5hbWUiKSk7dmFyIEE9e30sUz17fTtmb3Iocj0wO3I8Yi5sZW5ndGg7cisrKXtBW2g9YltyXV09cixTW2hdPTAsKGY9X1tyXT1uLmV4dGVuZERlZXBOb0FycmF5cyh7fSx0KSkuX2dyb3VwPWgsZi50cmFuc2Zvcm1zW21dLl9pbmRleFRvUG9pbnRzPXt9O3ZhciBFPW51bGw7Zm9yKGcmJihFPWcuZ2V0KGgpKSxmLm5hbWU9RXx8IiI9PT1FP0U6bi50ZW1wbGF0ZVN0cmluZyh2Lm5hbWVmb3JtYXQse3RyYWNlOnQubmFtZSxncm91cDpofSkscD1mLnRyYW5zZm9ybXMsZi50cmFuc2Zvcm1zPVtdLHM9MDtzPHAubGVuZ3RoO3MrKylmLnRyYW5zZm9ybXNbc109bi5leHRlbmREZWVwTm9BcnJheXMoe30scFtzXSk7Zm9yKHM9MDtzPGsubGVuZ3RoO3MrKyluLm5lc3RlZFByb3BlcnR5KGYsa1tzXSkuc2V0KFtdKX1mb3IobD0wO2w8ay5sZW5ndGg7bCsrKXtmb3IoYz1rW2xdLHM9MCxkPVtdO3M8Yi5sZW5ndGg7cysrKWRbc109bi5uZXN0ZWRQcm9wZXJ0eShfW3NdLGMpLmdldCgpO2Zvcih1PW4ubmVzdGVkUHJvcGVydHkodCxjKS5nZXQoKSxzPTA7czx3O3MrKylkW0FbeVtzXV1dLnB1c2godVtzXSl9Zm9yKHM9MDtzPHc7cysrKXsoZj1fW0FbeVtzXV1dKS50cmFuc2Zvcm1zW21dLl9pbmRleFRvUG9pbnRzW1NbeVtzXV1dPXgocyksU1t5W3NdXSsrfWZvcihyPTA7cjxiLmxlbmd0aDtyKyspaD1iW3JdLGY9X1tyXSxpLmNsZWFyRXhwYW5kZWRUcmFjZURlZmF1bHRDb2xvcnMoZiksZj1uLmV4dGVuZERlZXBOb0FycmF5cyhmLE1baF18fHt9KTtyZXR1cm4gX31yLm1vZHVsZVR5cGU9InRyYW5zZm9ybSIsci5uYW1lPSJncm91cGJ5IixyLmF0dHJpYnV0ZXM9e2VuYWJsZWQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6ImNhbGMifSxncm91cHM6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGRmbHQ6W10sZWRpdFR5cGU6ImNhbGMifSxuYW1lZm9ybWF0Ont2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJjYWxjIn0sc3R5bGVzOntfaXNMaW5rZWRUb0FycmF5OiJzdHlsZSIsdGFyZ2V0Ont2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJjYWxjIn0sdmFsdWU6e3ZhbFR5cGU6ImFueSIsZGZsdDp7fSxlZGl0VHlwZToiY2FsYyIsX2NvbXBhcmVBc0pTT046ITB9LGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMifSxyLnN1cHBseURlZmF1bHRzPWZ1bmN0aW9uKHQsZSxhKXt2YXIgaSxvPXt9O2Z1bmN0aW9uIHMoZSxhKXtyZXR1cm4gbi5jb2VyY2UodCxvLHIuYXR0cmlidXRlcyxlLGEpfWlmKCFzKCJlbmFibGVkIikpcmV0dXJuIG87cygiZ3JvdXBzIikscygibmFtZWZvcm1hdCIsYS5fZGF0YUxlbmd0aD4xPyIle2dyb3VwfSAoJXt0cmFjZX0pIjoiJXtncm91cH0iKTt2YXIgbD10LnN0eWxlcyxjPW8uc3R5bGVzPVtdO2lmKGwpZm9yKGk9MDtpPGwubGVuZ3RoO2krKyl7dmFyIHU9Y1tpXT17fTtuLmNvZXJjZShsW2ldLGNbaV0sci5hdHRyaWJ1dGVzLnN0eWxlcywidGFyZ2V0Iik7dmFyIGg9bi5jb2VyY2UobFtpXSxjW2ldLHIuYXR0cmlidXRlcy5zdHlsZXMsInZhbHVlIik7bi5pc1BsYWluT2JqZWN0KGgpP3UudmFsdWU9bi5leHRlbmREZWVwKHt9LGgpOmgmJmRlbGV0ZSB1LnZhbHVlfXJldHVybiBvfSxyLnRyYW5zZm9ybT1mdW5jdGlvbih0LGUpe3ZhciByLG4sYSxpPVtdO2ZvcihuPTA7bjx0Lmxlbmd0aDtuKyspZm9yKHI9cyh0W25dLGUpLGE9MDthPHIubGVuZ3RoO2ErKylpLnB1c2goclthXSk7cmV0dXJuIGl9fSx7Ii4uL2xpYiI6NzE3LCIuLi9wbG90X2FwaS9wbG90X3NjaGVtYSI6NzU0LCIuLi9wbG90cy9wbG90cyI6ODI2LCIuL2hlbHBlcnMiOjEzMDB9XSwxMzAwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3IucG9pbnRzQWNjZXNzb3JGdW5jdGlvbj1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcixuLGE9MDthPHQubGVuZ3RoJiYocj10W2FdKSE9PWU7YSsrKXIuX2luZGV4VG9Qb2ludHMmJiExIT09ci5lbmFibGVkJiYobj1yLl9pbmRleFRvUG9pbnRzKTtyZXR1cm4gbj9mdW5jdGlvbih0KXtyZXR1cm4gblt0XX06ZnVuY3Rpb24odCl7cmV0dXJuW3RdfX19LHt9XSwxMzAxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2xpYiIpLGE9dCgiLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxpPXQoIi4vaGVscGVycyIpLnBvaW50c0FjY2Vzc29yRnVuY3Rpb247ci5tb2R1bGVUeXBlPSJ0cmFuc2Zvcm0iLHIubmFtZT0ic29ydCIsci5hdHRyaWJ1dGVzPXtlbmFibGVkOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJjYWxjIn0sdGFyZ2V0Ont2YWxUeXBlOiJzdHJpbmciLHN0cmljdDohMCxub0JsYW5rOiEwLGFycmF5T2s6ITAsZGZsdDoieCIsZWRpdFR5cGU6ImNhbGMifSxvcmRlcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYXNjZW5kaW5nIiwiZGVzY2VuZGluZyJdLGRmbHQ6ImFzY2VuZGluZyIsZWRpdFR5cGU6ImNhbGMifSxlZGl0VHlwZToiY2FsYyJ9LHIuc3VwcGx5RGVmYXVsdHM9ZnVuY3Rpb24odCl7dmFyIGU9e307ZnVuY3Rpb24gYShhLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsci5hdHRyaWJ1dGVzLGEsaSl9cmV0dXJuIGEoImVuYWJsZWQiKSYmKGEoInRhcmdldCIpLGEoIm9yZGVyIikpLGV9LHIuY2FsY1RyYW5zZm9ybT1mdW5jdGlvbih0LGUscil7aWYoci5lbmFibGVkKXt2YXIgbz1uLmdldFRhcmdldEFycmF5KGUscik7aWYobyl7dmFyIHM9ci50YXJnZXQsbD1vLmxlbmd0aDtlLl9sZW5ndGgmJihsPU1hdGgubWluKGwsZS5fbGVuZ3RoKSk7dmFyIGMsdSxoPWUuX2FycmF5QXR0cnMsZj1mdW5jdGlvbih0LGUscixuKXt2YXIgYSxpPW5ldyBBcnJheShuKSxvPW5ldyBBcnJheShuKTtmb3IoYT0wO2E8bjthKyspaVthXT17djplW2FdLGk6YX07Zm9yKGkuc29ydChmdW5jdGlvbih0LGUpe3N3aXRjaCh0Lm9yZGVyKXtjYXNlImFzY2VuZGluZyI6cmV0dXJuIGZ1bmN0aW9uKHQscil7cmV0dXJuIGUodC52KS1lKHIudil9O2Nhc2UiZGVzY2VuZGluZyI6cmV0dXJuIGZ1bmN0aW9uKHQscil7cmV0dXJuIGUoci52KS1lKHQudil9fX0odCxyKSksYT0wO2E8bjthKyspb1thXT1pW2FdLmk7cmV0dXJuIG99KHIsbyxhLmdldERhdGFUb0Nvb3JkRnVuYyh0LGUscyxvKSxsKSxwPWkoZS50cmFuc2Zvcm1zLHIpLGQ9e307Zm9yKGM9MDtjPGgubGVuZ3RoO2MrKyl7dmFyIGc9bi5uZXN0ZWRQcm9wZXJ0eShlLGhbY10pLHY9Zy5nZXQoKSxtPW5ldyBBcnJheShsKTtmb3IodT0wO3U8bDt1KyspbVt1XT12W2ZbdV1dO2cuc2V0KG0pfWZvcih1PTA7dTxsO3UrKylkW3VdPXAoZlt1XSk7ci5faW5kZXhUb1BvaW50cz1kLGUuX2xlbmd0aD1sfX19fSx7Ii4uL2xpYiI6NzE3LCIuLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NzY1LCIuL2hlbHBlcnMiOjEzMDB9XX0se30sWzI2XSkoMjYpfSk7"></script>
<script src="data:application/javascript;base64,JChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICAgIGlmICh0eXBlb2YgJCgnW2RhdGEtdG9nZ2xlPSJ0b29sdGlwIl0nKS50b29sdGlwID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgJCgnW2RhdGEtdG9nZ2xlPSJ0b29sdGlwIl0nKS50b29sdGlwKCk7CiAgICB9CiAgICBpZiAoJCgnW2RhdGEtdG9nZ2xlPSJwb3BvdmVyIl0nKS5wb3BvdmVyID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgJCgnW2RhdGEtdG9nZ2xlPSJwb3BvdmVyIl0nKS5wb3BvdmVyKCk7CiAgICB9Cn0pOwo="></script>
<link href="data:text/css,%0A%2Elightable%2Dminimal%20%7B%0Aborder%2Dcollapse%3A%20separate%3B%0Aborder%2Dspacing%3A%2016px%201px%3B%0Awidth%3A%20100%25%3B%0Amargin%2Dbottom%3A%2010px%3B%0A%7D%0A%2Elightable%2Dminimal%20td%20%7B%0Amargin%2Dleft%3A%205px%3B%0Amargin%2Dright%3A%205px%3B%0A%7D%0A%2Elightable%2Dminimal%20th%20%7B%0Amargin%2Dleft%3A%205px%3B%0Amargin%2Dright%3A%205px%3B%0A%7D%0A%2Elightable%2Dminimal%20thead%20tr%3Alast%2Dchild%20th%20%7B%0Aborder%2Dbottom%3A%202px%20solid%20%2300000050%3B%0Aempty%2Dcells%3A%20hide%3B%0A%7D%0A%2Elightable%2Dminimal%20tbody%20tr%3Afirst%2Dchild%20td%20%7B%0Apadding%2Dtop%3A%200%2E5em%3B%0A%7D%0A%2Elightable%2Dminimal%2Elightable%2Dhover%20tbody%20tr%3Ahover%20%7B%0Abackground%2Dcolor%3A%20%23f5f5f5%3B%0A%7D%0A%2Elightable%2Dminimal%2Elightable%2Dstriped%20tbody%20tr%3Anth%2Dchild%28even%29%20%7B%0Abackground%2Dcolor%3A%20%23f5f5f5%3B%0A%7D%0A%2Elightable%2Dclassic%20%7B%0Aborder%2Dtop%3A%200%2E16em%20solid%20%23111111%3B%0Aborder%2Dbottom%3A%200%2E16em%20solid%20%23111111%3B%0Awidth%3A%20100%25%3B%0Amargin%2Dbottom%3A%2010px%3B%0Amargin%3A%2010px%205px%3B%0A%7D%0A%2Elightable%2Dclassic%20tfoot%20tr%20td%20%7B%0Aborder%3A%200%3B%0A%7D%0A%2Elightable%2Dclassic%20tfoot%20tr%3Afirst%2Dchild%20td%20%7B%0Aborder%2Dtop%3A%200%2E14em%20solid%20%23111111%3B%0A%7D%0A%2Elightable%2Dclassic%20caption%20%7B%0Acolor%3A%20%23222222%3B%0A%7D%0A%2Elightable%2Dclassic%20td%20%7B%0Apadding%2Dleft%3A%205px%3B%0Apadding%2Dright%3A%205px%3B%0Acolor%3A%20%23222222%3B%0A%7D%0A%2Elightable%2Dclassic%20th%20%7B%0Apadding%2Dleft%3A%205px%3B%0Apadding%2Dright%3A%205px%3B%0Afont%2Dweight%3A%20normal%3B%0Acolor%3A%20%23222222%3B%0A%7D%0A%2Elightable%2Dclassic%20thead%20tr%3Alast%2Dchild%20th%20%7B%0Aborder%2Dbottom%3A%200%2E10em%20solid%20%23111111%3B%0A%7D%0A%2Elightable%2Dclassic%2Elightable%2Dhover%20tbody%20tr%3Ahover%20%7B%0Abackground%2Dcolor%3A%20%23F9EEC1%3B%0A%7D%0A%2Elightable%2Dclassic%2Elightable%2Dstriped%20tbody%20tr%3Anth%2Dchild%28even%29%20%7B%0Abackground%2Dcolor%3A%20%23f5f5f5%3B%0A%7D%0A%2Elightable%2Dclassic%2D2%20%7B%0Aborder%2Dtop%3A%203px%20double%20%23111111%3B%0Aborder%2Dbottom%3A%203px%20double%20%23111111%3B%0Awidth%3A%20100%25%3B%0Amargin%2Dbottom%3A%2010px%3B%0A%7D%0A%2Elightable%2Dclassic%2D2%20tfoot%20tr%20td%20%7B%0Aborder%3A%200%3B%0A%7D%0A%2Elightable%2Dclassic%2D2%20tfoot%20tr%3Afirst%2Dchild%20td%20%7B%0Aborder%2Dtop%3A%203px%20double%20%23111111%3B%0A%7D%0A%2Elightable%2Dclassic%2D2%20caption%20%7B%0Acolor%3A%20%23222222%3B%0A%7D%0A%2Elightable%2Dclassic%2D2%20td%20%7B%0Apadding%2Dleft%3A%205px%3B%0Apadding%2Dright%3A%205px%3B%0Acolor%3A%20%23222222%3B%0A%7D%0A%2Elightable%2Dclassic%2D2%20th%20%7B%0Apadding%2Dleft%3A%205px%3B%0Apadding%2Dright%3A%205px%3B%0Afont%2Dweight%3A%20normal%3B%0Acolor%3A%20%23222222%3B%0A%7D%0A%2Elightable%2Dclassic%2D2%20tbody%20tr%3Alast%2Dchild%20td%20%7B%0Aborder%2Dbottom%3A%203px%20double%20%23111111%3B%0A%7D%0A%2Elightable%2Dclassic%2D2%20thead%20tr%3Alast%2Dchild%20th%20%7B%0Aborder%2Dbottom%3A%201px%20solid%20%23111111%3B%0A%7D%0A%2Elightable%2Dclassic%2D2%2Elightable%2Dhover%20tbody%20tr%3Ahover%20%7B%0Abackground%2Dcolor%3A%20%23F9EEC1%3B%0A%7D%0A%2Elightable%2Dclassic%2D2%2Elightable%2Dstriped%20tbody%20tr%3Anth%2Dchild%28even%29%20%7B%0Abackground%2Dcolor%3A%20%23f5f5f5%3B%0A%7D%0A%2Elightable%2Dmaterial%20%7B%0Amin%2Dwidth%3A%20100%25%3B%0Awhite%2Dspace%3A%20nowrap%3B%0Atable%2Dlayout%3A%20fixed%3B%0Afont%2Dfamily%3A%20Roboto%2C%20sans%2Dserif%3B%0Aborder%3A%201px%20solid%20%23EEE%3B%0Aborder%2Dcollapse%3A%20collapse%3B%0Amargin%2Dbottom%3A%2010px%3B%0A%7D%0A%2Elightable%2Dmaterial%20tfoot%20tr%20td%20%7B%0Aborder%3A%200%3B%0A%7D%0A%2Elightable%2Dmaterial%20tfoot%20tr%3Afirst%2Dchild%20td%20%7B%0Aborder%2Dtop%3A%201px%20solid%20%23EEE%3B%0A%7D%0A%2Elightable%2Dmaterial%20th%20%7B%0Aheight%3A%2056px%3B%0Apadding%2Dleft%3A%2016px%3B%0Apadding%2Dright%3A%2016px%3B%0A%7D%0A%2Elightable%2Dmaterial%20td%20%7B%0Aheight%3A%2052px%3B%0Apadding%2Dleft%3A%2016px%3B%0Apadding%2Dright%3A%2016px%3B%0Aborder%2Dtop%3A%201px%20solid%20%23eeeeee%3B%0A%7D%0A%2Elightable%2Dmaterial%2Elightable%2Dhover%20tbody%20tr%3Ahover%20%7B%0Abackground%2Dcolor%3A%20%23f5f5f5%3B%0A%7D%0A%2Elightable%2Dmaterial%2Elightable%2Dstriped%20tbody%20tr%3Anth%2Dchild%28even%29%20%7B%0Abackground%2Dcolor%3A%20%23f5f5f5%3B%0A%7D%0A%2Elightable%2Dmaterial%2Elightable%2Dstriped%20tbody%20td%20%7B%0Aborder%3A%200%3B%0A%7D%0A%2Elightable%2Dmaterial%2Elightable%2Dstriped%20thead%20tr%3Alast%2Dchild%20th%20%7B%0Aborder%2Dbottom%3A%201px%20solid%20%23ddd%3B%0A%7D%0A%2Elightable%2Dmaterial%2Ddark%20%7B%0Amin%2Dwidth%3A%20100%25%3B%0Awhite%2Dspace%3A%20nowrap%3B%0Atable%2Dlayout%3A%20fixed%3B%0Afont%2Dfamily%3A%20Roboto%2C%20sans%2Dserif%3B%0Aborder%3A%201px%20solid%20%23FFFFFF12%3B%0Aborder%2Dcollapse%3A%20collapse%3B%0Amargin%2Dbottom%3A%2010px%3B%0Abackground%2Dcolor%3A%20%23363640%3B%0A%7D%0A%2Elightable%2Dmaterial%2Ddark%20tfoot%20tr%20td%20%7B%0Aborder%3A%200%3B%0A%7D%0A%2Elightable%2Dmaterial%2Ddark%20tfoot%20tr%3Afirst%2Dchild%20td%20%7B%0Aborder%2Dtop%3A%201px%20solid%20%23FFFFFF12%3B%0A%7D%0A%2Elightable%2Dmaterial%2Ddark%20th%20%7B%0Aheight%3A%2056px%3B%0Apadding%2Dleft%3A%2016px%3B%0Apadding%2Dright%3A%2016px%3B%0Acolor%3A%20%23FFFFFF60%3B%0A%7D%0A%2Elightable%2Dmaterial%2Ddark%20td%20%7B%0Aheight%3A%2052px%3B%0Apadding%2Dleft%3A%2016px%3B%0Apadding%2Dright%3A%2016px%3B%0Acolor%3A%20%23FFFFFF%3B%0Aborder%2Dtop%3A%201px%20solid%20%23FFFFFF12%3B%0A%7D%0A%2Elightable%2Dmaterial%2Ddark%2Elightable%2Dhover%20tbody%20tr%3Ahover%20%7B%0Abackground%2Dcolor%3A%20%23FFFFFF12%3B%0A%7D%0A%2Elightable%2Dmaterial%2Ddark%2Elightable%2Dstriped%20tbody%20tr%3Anth%2Dchild%28even%29%20%7B%0Abackground%2Dcolor%3A%20%23FFFFFF12%3B%0A%7D%0A%2Elightable%2Dmaterial%2Ddark%2Elightable%2Dstriped%20tbody%20td%20%7B%0Aborder%3A%200%3B%0A%7D%0A%2Elightable%2Dmaterial%2Ddark%2Elightable%2Dstriped%20thead%20tr%3Alast%2Dchild%20th%20%7B%0Aborder%2Dbottom%3A%201px%20solid%20%23FFFFFF12%3B%0A%7D%0A%2Elightable%2Dpaper%20%7B%0Awidth%3A%20100%25%3B%0Amargin%2Dbottom%3A%2010px%3B%0Acolor%3A%20%23444%3B%0A%7D%0A%2Elightable%2Dpaper%20tfoot%20tr%20td%20%7B%0Aborder%3A%200%3B%0A%7D%0A%2Elightable%2Dpaper%20tfoot%20tr%3Afirst%2Dchild%20td%20%7B%0Aborder%2Dtop%3A%201px%20solid%20%2300000020%3B%0A%7D%0A%2Elightable%2Dpaper%20thead%20tr%3Alast%2Dchild%20th%20%7B%0Acolor%3A%20%23666%3B%0Avertical%2Dalign%3A%20bottom%3B%0Aborder%2Dbottom%3A%201px%20solid%20%2300000020%3B%0Aline%2Dheight%3A%201%2E15em%3B%0Apadding%3A%2010px%205px%3B%0A%7D%0A%2Elightable%2Dpaper%20td%20%7B%0Avertical%2Dalign%3A%20middle%3B%0Aborder%2Dbottom%3A%201px%20solid%20%2300000010%3B%0Aline%2Dheight%3A%201%2E15em%3B%0Apadding%3A%207px%205px%3B%0A%7D%0A%2Elightable%2Dpaper%2Elightable%2Dhover%20tbody%20tr%3Ahover%20%7B%0Abackground%2Dcolor%3A%20%23F9EEC1%3B%0A%7D%0A%2Elightable%2Dpaper%2Elightable%2Dstriped%20tbody%20tr%3Anth%2Dchild%28even%29%20%7B%0Abackground%2Dcolor%3A%20%2300000008%3B%0A%7D%0A%2Elightable%2Dpaper%2Elightable%2Dstriped%20tbody%20td%20%7B%0Aborder%3A%200%3B%0A%7D%0A" rel="stylesheet" />

<style type="text/css">
  code{white-space: pre-wrap;}
  span.smallcaps{font-variant: small-caps;}
  span.underline{text-decoration: underline;}
  div.column{display: inline-block; vertical-align: top; width: 50%;}
  div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
  ul.task-list{list-style: none;}
    </style>


<style type="text/css">
  code {
    white-space: pre;
  }
  .sourceCode {
    overflow: visible;
  }
</style>
<style type="text/css" data-origin="pandoc">
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
  { counter-reset: source-line 0; }
pre.numberSource code > span
  { position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
  { content: counter(source-line);
    position: relative; left: -1em; text-align: right; vertical-align: baseline;
    border: none; display: inline-block;
    -webkit-touch-callout: none; -webkit-user-select: none;
    -khtml-user-select: none; -moz-user-select: none;
    -ms-user-select: none; user-select: none;
    padding: 0 4px; width: 4em;
    color: #aaaaaa;
  }
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa;  padding-left: 4px; }
div.sourceCode
  {   }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #ff0000; } /* Alert */
code span.an { color: #008000; } /* Annotation */
code span.at { } /* Attribute */
code span.bu { } /* BuiltIn */
code span.cf { color: #0000ff; } /* ControlFlow */
code span.ch { color: #008080; } /* Char */
code span.cn { } /* Constant */
code span.co { color: #008000; } /* Comment */
code span.cv { color: #008000; } /* CommentVar */
code span.do { color: #008000; } /* Documentation */
code span.er { color: #ff0000; font-weight: bold; } /* Error */
code span.ex { } /* Extension */
code span.im { } /* Import */
code span.in { color: #008000; } /* Information */
code span.kw { color: #0000ff; } /* Keyword */
code span.op { } /* Operator */
code span.ot { color: #ff4000; } /* Other */
code span.pp { color: #ff4000; } /* Preprocessor */
code span.sc { color: #008080; } /* SpecialChar */
code span.ss { color: #008080; } /* SpecialString */
code span.st { color: #008080; } /* String */
code span.va { } /* Variable */
code span.vs { color: #008080; } /* VerbatimString */
code span.wa { color: #008000; font-weight: bold; } /* Warning */

.sourceCode .row {
  width: 100%;
}
.sourceCode {
  overflow-x: auto;
}
.code-folding-btn {
  margin-right: -30px;
}
</style>
<script>
// apply pandoc div.sourceCode style to pre.sourceCode instead
(function() {
  var sheets = document.styleSheets;
  for (var i = 0; i < sheets.length; i++) {
    if (sheets[i].ownerNode.dataset["origin"] !== "pandoc") continue;
    try { var rules = sheets[i].cssRules; } catch (e) { continue; }
    for (var j = 0; j < rules.length; j++) {
      var rule = rules[j];
      // check if there is a div.sourceCode rule
      if (rule.type !== rule.STYLE_RULE || rule.selectorText !== "div.sourceCode") continue;
      var style = rule.style.cssText;
      // check if color or background-color is set
      if (rule.style.color === '' && rule.style.backgroundColor === '') continue;
      // replace div.sourceCode by a pre.sourceCode rule
      sheets[i].deleteRule(j);
      sheets[i].insertRule('pre.sourceCode{' + style + '}', j);
    }
  }
})();
</script>




<link rel="stylesheet" href="data:text/css,body%20%7B%0Afont%2Dfamily%3A%20%22%E6%B8%B8%E3%82%B4%E3%82%B7%E3%83%83%E3%82%AF%22%2C%20%22Yu%20Gothic%20UI%22%2C%20%22Meiryo%20UI%22%2C%20%22Hiragino%20Kaku%20Gothic%20ProN%22%2C%20%22sans%2Dserif%22%3B%0Afont%2Dsize%3A12pt%3B%0A%7D%0Ah1%2Ch2%2Ch3%2Ch4%2Ch5%2Ch6%20%7B%0Afont%2Dweight%3Abold%3B%09margin%3A%202em%200%200%2E3em%200%3B%0A%7D%0Ah1%20%7B%0Afont%2Dsize%3A%2020px%3B%0A%7D%0Ah2%20%7B%0Afont%2Dsize%3A%2020px%3B%0A%7D%0Ah3%20%7B%0Afont%2Dsize%3A%2018px%3B%0A%7D%0Ah4%20%7B%0Afont%2Dsize%3A%2016px%3B%0A%7D%0A%2Emath%20%7B%0Afont%2Dsize%3A%2012px%3B%0A%7D%0Att%2C%20code%2C%20pre%20%7B%0Afont%2Dfamily%3A%20%27DejaVu%20Sans%20Mono%27%2C%20%27Droid%20Sans%20Mono%27%2C%20%27Lucida%20Console%27%2C%20Consolas%2C%20Monaco%2C%20monospace%3B%0A%7D%0A%0Aspan%2Eco%20%7B%0Afont%2Dfamily%3A%20%22%E6%B8%B8%E3%82%B4%E3%82%B7%E3%83%83%E3%82%AF%22%2C%20%22Yu%20Gothic%20UI%22%2C%20%22Meiryo%20UI%22%2C%20%22Hiragino%20Kaku%20Gothic%20ProN%22%2C%20%22sans%2Dserif%22%3B%0Acolor%3A%20%230B6138%3B%0Afont%2Dstyle%3A%20normal%3B%0A%7D%0A%20blockquote%20%7B%0Afont%2Dsize%3A%2014px%3B%0A%7D%0A%0Aem%20%7B%0Afont%2Dstyle%3A%20normal%3B%0A%7D%0A%0A" type="text/css" />



<style type="text/css">
.main-container {
  max-width: 940px;
  margin-left: auto;
  margin-right: auto;
}
img {
  max-width:100%;
}
.tabbed-pane {
  padding-top: 12px;
}
.html-widget {
  margin-bottom: 20px;
}
button.code-folding-btn:focus {
  outline: none;
}
summary {
  display: list-item;
}
pre code {
  padding: 0;
}
</style>



<!-- tabsets -->

<style type="text/css">
.tabset-dropdown > .nav-tabs {
  display: inline-table;
  max-height: 500px;
  min-height: 44px;
  overflow-y: auto;
  border: 1px solid #ddd;
  border-radius: 4px;
}

.tabset-dropdown > .nav-tabs > li.active:before {
  content: "";
  font-family: 'Glyphicons Halflings';
  display: inline-block;
  padding: 10px;
  border-right: 1px solid #ddd;
}

.tabset-dropdown > .nav-tabs.nav-tabs-open > li.active:before {
  content: "";
  border: none;
}

.tabset-dropdown > .nav-tabs.nav-tabs-open:before {
  content: "";
  font-family: 'Glyphicons Halflings';
  display: inline-block;
  padding: 10px;
  border-right: 1px solid #ddd;
}

.tabset-dropdown > .nav-tabs > li.active {
  display: block;
}

.tabset-dropdown > .nav-tabs > li > a,
.tabset-dropdown > .nav-tabs > li > a:focus,
.tabset-dropdown > .nav-tabs > li > a:hover {
  border: none;
  display: inline-block;
  border-radius: 4px;
  background-color: transparent;
}

.tabset-dropdown > .nav-tabs.nav-tabs-open > li {
  display: block;
  float: none;
}

.tabset-dropdown > .nav-tabs > li {
  display: none;
}
</style>

<!-- code folding -->
<style type="text/css">
.code-folding-btn { margin-bottom: 4px; }
</style>



<style type="text/css">

#TOC {
  margin: 25px 0px 20px 0px;
}
@media (max-width: 768px) {
#TOC {
  position: relative;
  width: 100%;
}
}

@media print {
.toc-content {
  /* see https://github.com/w3c/csswg-drafts/issues/4434 */
  float: right;
}
}

.toc-content {
  padding-left: 30px;
  padding-right: 40px;
}

div.main-container {
  max-width: 1200px;
}

div.tocify {
  width: 20%;
  max-width: 260px;
  max-height: 85%;
}

@media (min-width: 768px) and (max-width: 991px) {
  div.tocify {
    width: 25%;
  }
}

@media (max-width: 767px) {
  div.tocify {
    width: 100%;
    max-width: none;
  }
}

.tocify ul, .tocify li {
  line-height: 20px;
}

.tocify-subheader .tocify-item {
  font-size: 0.90em;
}

.tocify .list-group-item {
  border-radius: 0px;
}


</style>



</head>

<body>


<div class="container-fluid main-container">


<!-- setup 3col/9col grid for toc_float and main content  -->
<div class="row">
<div class="col-xs-12 col-sm-4 col-md-3">
<div id="TOC" class="tocify">
</div>
</div>

<div class="toc-content col-xs-12 col-sm-8 col-md-9">




<div id="header">

<div class="btn-group pull-right float-right">
<button type="button" class="btn btn-default btn-xs btn-secondary btn-sm dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span>Code</span> <span class="caret"></span></button>
<ul class="dropdown-menu dropdown-menu-right" style="min-width: 50px;">
<li><a id="rmd-show-all-code" href="#">Show All Code</a></li>
<li><a id="rmd-hide-all-code" href="#">Hide All Code</a></li>
</ul>
</div>



<h1 class="title toc-ignore">COVID-19 employment shock and second-tier safetynet</h1>
<h4 class="author"></h4>
<h4 class="date">2022-01-20</h4>

</div>


<div id="rmd-settings" class="section level1" number="1">
<h1><span class="header-section-number">1</span> Rmd Settings</h1>
</div>
<div id="contents" class="section level1" number="2">
<h1><span class="header-section-number">2</span> Contents</h1>
<p>covid_on_unemp_benefit_numberのOLSとWLS</p>
</div>
<div id="read-functions関数の読み込み" class="section level1" number="3">
<h1><span class="header-section-number">3</span> Read functions/関数の読み込み</h1>
<div class="sourceCode" id="cb1"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">source</span>(<span class="st">&quot;functions.R&quot;</span>)</span></code></pre></div>
</div>
<div id="read-data分析用データの読み込み" class="section level1" number="4">
<h1><span class="header-section-number">4</span> Read data/分析用データの読み込み</h1>
<div class="sourceCode" id="cb2"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a>df_analysis <span class="ot">&lt;-</span> readr<span class="sc">::</span><span class="fu">read_csv</span>(<span class="st">&quot;output/df_analysis.csv&quot;</span>)</span></code></pre></div>
<pre><code>## Parsed with column specification:
## cols(
##   .default = col_double(),
##   prefec_kanji = col_character(),
##   prefecture = col_character(),
##   date = col_date(format = &quot;&quot;),
##   prefec = col_character(),
##   prefec_kanji2 = col_character()
## )</code></pre>
<pre><code>## See spec(...) for full column specifications.</code></pre>
</div>
<div id="main-figures-in-the-paper" class="section level1" number="5">
<h1><span class="header-section-number">5</span> Main figures in the paper</h1>
<ul>
<li>We firstly provide estimations and figures used in the main text.</li>
<li>These chunks are copied and pasted from subsequent outcome-based result sections.</li>
<li>Actual graphs and tables in the paper are generated and saved in the subsequent chunks, not the chunks in this section. But they are identical.</li>
</ul>
<div id="wls-no-trends-figure-5-a-tablec.5-1" class="section level2" number="5.1">
<h2><span class="header-section-number">5.1</span> WLS, no trends, Figure 5 (a) &amp; TableC.5 (1)</h2>
<ul>
<li>Y=Emergency Small Amount Funds, without covariates</li>
</ul>
<div class="sourceCode" id="cb5"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb5-2"><a href="#cb5-2" aria-hidden="true" tabindex="-1"></a>estimation_results <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_WLS_notrend</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb5-3"><a href="#cb5-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>koguchi_number, </span>
<span id="cb5-4"><a href="#cb5-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>unemploy_shock_diff2)</span>
<span id="cb5-5"><a href="#cb5-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb5-6"><a href="#cb5-6" aria-hidden="true" tabindex="-1"></a>texreg<span class="sc">::</span><span class="fu">screenreg</span>(<span class="at">l =</span> estimation_results, <span class="at">include.ci =</span> <span class="cn">FALSE</span>, <span class="at">digits=</span><span class="dv">3</span>)</span></code></pre></div>
<pre><code>## 14 coefficients  not defined because the design matrix is rank deficient</code></pre>
<pre><code>## 
## ===================================
##                         Model 1    
## -----------------------------------
## treat_var:date_2018_01             
##                                    
## treat_var:date_2018_02             
##                                    
## treat_var:date_2018_03             
##                                    
## treat_var:date_2018_04             
##                                    
## treat_var:date_2018_05             
##                                    
## treat_var:date_2018_06             
##                                    
## treat_var:date_2018_07             
##                                    
## treat_var:date_2018_08             
##                                    
## treat_var:date_2018_09             
##                                    
## treat_var:date_2018_10             
##                                    
## treat_var:date_2018_11             
##                                    
## treat_var:date_2018_12             
##                                    
## treat_var:date_2019_01     0.057   
##                           (0.085)  
## treat_var:date_2019_02     0.014   
##                           (0.064)  
## treat_var:date_2019_03     0.012   
##                           (0.108)  
## treat_var:date_2019_04     0.039   
##                           (0.069)  
## treat_var:date_2019_05    -0.097   
##                           (0.065)  
## treat_var:date_2019_06     0.071   
##                           (0.052)  
## treat_var:date_2019_07     0.059   
##                           (0.097)  
## treat_var:date_2019_08     0.107   
##                           (0.067)  
## treat_var:date_2019_09     0.032   
##                           (0.083)  
## treat_var:date_2019_10     0.093   
##                           (0.063)  
## treat_var:date_2019_11     0.013   
##                           (0.094)  
## treat_var:date_2019_12    -0.001   
##                           (0.084)  
## treat_var:date_2020_02             
##                                    
## treat_var:date_2020_03             
##                                    
## treat_var:date_2020_04    18.723   
##                          (21.950)  
## treat_var:date_2020_05    73.840   
##                          (42.803)  
## treat_var:date_2020_06    88.768 **
##                          (32.722)  
## treat_var:date_2020_07    34.689   
##                          (21.224)  
## treat_var:date_2020_08    27.162   
##                          (14.477)  
## treat_var:date_2020_09    21.875   
##                          (15.342)  
## -----------------------------------
## R^2                        0.813   
## Adj. R^2                   0.795   
## Num. obs.                893       
## RMSE                    1383.945   
## N Clusters                47       
## ===================================
## *** p &lt; 0.001; ** p &lt; 0.01; * p &lt; 0.05</code></pre>
<div class="sourceCode" id="cb8"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb8-2"><a href="#cb8-2" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_loan</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb8-3"><a href="#cb8-3" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;unemploy_shock_diff2&quot;</span>,</span>
<span id="cb8-4"><a href="#cb8-4" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;koguchi_number_WLS&quot;</span>)</span>
<span id="cb8-5"><a href="#cb8-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb8-6"><a href="#cb8-6" aria-hidden="true" tabindex="-1"></a><span class="co"># graph</span></span>
<span id="cb8-7"><a href="#cb8-7" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_WLS <span class="ot">&lt;-</span> <span class="fu">event_study_graph_2nd_safetynet</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb8-8"><a href="#cb8-8" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;koguchi_number_WLS&quot;</span>)</span>
<span id="cb8-9"><a href="#cb8-9" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb8-10"><a href="#cb8-10" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_koguchi_number_WLS)</span></code></pre></div>
<pre><code>## Warning: `group_by_()` is deprecated as of dplyr 0.7.0.
## Please use `group_by()` instead.
## See vignette(&#39;programming&#39;) for more help
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_warnings()` to see where this warning was generated.</code></pre>
<div id="htmlwidget-60aa9e71621cccb63499" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-60aa9e71621cccb63499">{"x":{"data":[{"x":[1,2,3,4,5,6,7,8,9,10,11,12,16,17,18,19,20,21,13,14,15],"y":[0.0573625251960301,0.0140757773702234,0.0118002713058374,0.038927570181194,-0.096881819426315,0.0714612162332458,0.059043744294744,0.107455287758807,0.0318676349441418,0.0933963352438028,0.0127163581335807,-0.00105177459732886,18.7233790500787,73.8398236797581,88.7678161647878,34.6888537893124,27.161723333362,21.8749531304157,0,null,null],"text":["month: 2019-01<br />estimate:  0.057362525<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-02<br />estimate:  0.014075777<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-03<br />estimate:  0.011800271<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-04<br />estimate:  0.038927570<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-05<br />estimate: -0.096881819<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-06<br />estimate:  0.071461216<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-07<br />estimate:  0.059043744<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-08<br />estimate:  0.107455288<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-09<br />estimate:  0.031867635<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-10<br />estimate:  0.093396335<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-11<br />estimate:  0.012716358<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-12<br />estimate: -0.001051775<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-04<br />estimate: 18.723379050<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-05<br />estimate: 73.839823680<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-06<br />estimate: 88.767816165<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-07<br />estimate: 34.688853789<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-08<br />estimate: 27.161723333<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-09<br />estimate: 21.874953130<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-01<br />estimate:  0.000000000<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-02<br />estimate:           NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-03<br />estimate:           NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,0,255,1)","opacity":1,"size":9.4488188976378,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(0,0,255,1)"}},"hoveron":"points","name":"unemploy_shock_diff2","legendgroup":"unemploy_shock_diff2","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"y":[0.0573625251960301,0.0140757773702234,0.0118002713058374,0.038927570181194,-0.096881819426315,0.0714612162332458,0.059043744294744,0.107455287758807,0.0318676349441418,0.0933963352438028,0.0127163581335807,-0.00105177459732886,0,null,null,18.7233790500787,73.8398236797581,88.7678161647878,34.6888537893124,27.161723333362,21.8749531304157],"text":["month: 2019-01<br />estimate:  0.057362525<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-02<br />estimate:  0.014075777<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-03<br />estimate:  0.011800271<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-04<br />estimate:  0.038927570<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-05<br />estimate: -0.096881819<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-06<br />estimate:  0.071461216<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-07<br />estimate:  0.059043744<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-08<br />estimate:  0.107455288<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-09<br />estimate:  0.031867635<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-10<br />estimate:  0.093396335<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-11<br />estimate:  0.012716358<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-12<br />estimate: -0.001051775<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-01<br />estimate:  0.000000000<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-02<br />estimate:           NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-03<br />estimate:           NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-04<br />estimate: 18.723379050<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-05<br />estimate: 73.839823680<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-06<br />estimate: 88.767816165<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-07<br />estimate: 34.688853789<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-08<br />estimate: 27.161723333<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-09<br />estimate: 21.874953130<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,0,255,1)","dash":"solid"},"hoveron":"points","name":"unemploy_shock_diff2","legendgroup":"unemploy_shock_diff2","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1,2,3,4,5,6,7,8,9,10,11,12,16,17,18,19,20,21,13,14,15],"y":[0.0573625251960301,0.0140757773702234,0.0118002713058374,0.038927570181194,-0.096881819426315,0.0714612162332458,0.059043744294744,0.107455287758807,0.0318676349441418,0.0933963352438028,0.0127163581335807,-0.00105177459732886,18.7233790500787,73.8398236797581,88.7678161647878,34.6888537893124,27.161723333362,21.8749531304157,0,null,null],"text":["ci_lower:  -0.085657233<br />ci_upper:   0.20038228<br />width: 0.5<br />colour: black<br />month: 2019-01<br />estimate:  0.057362525<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.093642004<br />ci_upper:   0.12179356<br />width: 0.5<br />colour: black<br />month: 2019-02<br />estimate:  0.014075777<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.170029411<br />ci_upper:   0.19362995<br />width: 0.5<br />colour: black<br />month: 2019-03<br />estimate:  0.011800271<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.076288083<br />ci_upper:   0.15414322<br />width: 0.5<br />colour: black<br />month: 2019-04<br />estimate:  0.038927570<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.206759069<br />ci_upper:   0.01299543<br />width: 0.5<br />colour: black<br />month: 2019-05<br />estimate: -0.096881819<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.016013240<br />ci_upper:   0.15893567<br />width: 0.5<br />colour: black<br />month: 2019-06<br />estimate:  0.071461216<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.104154889<br />ci_upper:   0.22224238<br />width: 0.5<br />colour: black<br />month: 2019-07<br />estimate:  0.059043744<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.005774916<br />ci_upper:   0.22068549<br />width: 0.5<br />colour: black<br />month: 2019-08<br />estimate:  0.107455288<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.108126454<br />ci_upper:   0.17186172<br />width: 0.5<br />colour: black<br />month: 2019-09<br />estimate:  0.031867635<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.012713846<br />ci_upper:   0.19950652<br />width: 0.5<br />colour: black<br />month: 2019-10<br />estimate:  0.093396335<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.144746677<br />ci_upper:   0.17017939<br />width: 0.5<br />colour: black<br />month: 2019-11<br />estimate:  0.012716358<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.142462777<br />ci_upper:   0.14035923<br />width: 0.5<br />colour: black<br />month: 2019-12<br />estimate: -0.001051775<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower: -18.123275286<br />ci_upper:  55.57003339<br />width: 0.5<br />colour: black<br />month: 2020-04<br />estimate: 18.723379050<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:   1.988352566<br />ci_upper: 145.69129479<br />width: 0.5<br />colour: black<br />month: 2020-05<br />estimate: 73.839823680<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  33.838122012<br />ci_upper: 143.69751032<br />width: 0.5<br />colour: black<br />month: 2020-06<br />estimate: 88.767816165<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.938911033<br />ci_upper:  70.31661861<br />width: 0.5<br />colour: black<br />month: 2020-07<br />estimate: 34.688853789<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:   2.859342823<br />ci_upper:  51.46410384<br />width: 0.5<br />colour: black<br />month: 2020-08<br />estimate: 27.161723333<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -3.878792070<br />ci_upper:  47.62869833<br />width: 0.5<br />colour: black<br />month: 2020-09<br />estimate: 21.874953130<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:   0.000000000<br />ci_upper:   0.00000000<br />width: 0.5<br />colour: black<br />month: 2020-01<br />estimate:  0.000000000<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5<br />colour: black<br />month: 2020-02<br />estimate:           NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5<br />colour: black<br />month: 2020-03<br />estimate:           NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.143019757987242,0.107717781764957,0.181829682258756,0.115215653270855,0.109877249119469,0.0874744557407098,0.163198633234481,0.113230203406324,0.139994088751044,0.106110181560812,0.157463035015633,0.141411002900065,36.8466543361544,71.8514711137661,54.9296941530923,35.6277648219561,24.3023805106647,25.7537452008236,0,null,null],"arrayminus":[0.143019757987242,0.107717781764957,0.181829682258756,0.115215653270855,0.109877249119469,0.0874744557407098,0.163198633234481,0.113230203406324,0.139994088751044,0.106110181560812,0.157463035015633,0.141411002900065,36.8466543361544,71.8514711137661,54.9296941530923,35.6277648219561,24.3023805106647,25.7537452008236,0,null,null],"type":"data","width":1.18867924528302,"symmetric":false,"color":"rgba(0,0,0,1)"},"name":"unemploy_shock_diff2","legendgroup":"unemploy_shock_diff2","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-26.3140037900556,153.882023297504],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":38.854296388543},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"koguchi_number_WLS","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-26.3140037900556,153.882023297504],"tickmode":"array","ticktext":["0","50","100","150"],"tickvals":[0,50,100,150],"categoryorder":"array","categoryarray":["0","50","100","150"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","showSendToCloud":false},"source":"A","attrs":{"44116e56dea3":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"4411932d7ed":{"x":{},"y":{},"colour":{},"shape":{}},"441168fe0d52":{"ymin":{},"ymax":{},"width":{},"colour":{},"x":{},"y":{},"colour.1":{},"shape":{}},"44117f1cb857":{"yintercept":{}},"4411368a98f3":{"xintercept":{}}},"cur_data":"44116e56dea3","visdat":{"44116e56dea3":["function (y) ","x"],"4411932d7ed":["function (y) ","x"],"441168fe0d52":["function (y) ","x"],"44117f1cb857":["function (y) ","x"],"4411368a98f3":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<div id="wls-no-trends-figure-5-b-tablec.6-1" class="section level2" number="5.2">
<h2><span class="header-section-number">5.2</span> WLS, no trends, Figure 5 (b) &amp; TableC.6 (1)</h2>
<ul>
<li>Y=emergency small amount funds, with covariates</li>
</ul>
<div class="sourceCode" id="cb10"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb10-1"><a href="#cb10-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb10-2"><a href="#cb10-2" aria-hidden="true" tabindex="-1"></a>estimation_results <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_WLS_notrend_covar8Xcovid_months</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb10-3"><a href="#cb10-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>koguchi_number, </span>
<span id="cb10-4"><a href="#cb10-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>unemploy_shock_diff2)</span>
<span id="cb10-5"><a href="#cb10-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb10-6"><a href="#cb10-6" aria-hidden="true" tabindex="-1"></a>texreg<span class="sc">::</span><span class="fu">screenreg</span>(<span class="at">l =</span> estimation_results, <span class="at">include.ci =</span> <span class="cn">FALSE</span>, <span class="at">digits=</span><span class="dv">3</span>)</span></code></pre></div>
<pre><code>## 30 coefficients  not defined because the design matrix is rank deficient</code></pre>
<pre><code>## 
## ===================================================================
##                                                         Model 1    
## -------------------------------------------------------------------
## treat_var:date_2018_01                                             
##                                                                    
## treat_var:date_2018_02                                             
##                                                                    
## treat_var:date_2018_03                                             
##                                                                    
## treat_var:date_2018_04                                             
##                                                                    
## treat_var:date_2018_05                                             
##                                                                    
## treat_var:date_2018_06                                             
##                                                                    
## treat_var:date_2018_07                                             
##                                                                    
## treat_var:date_2018_08                                             
##                                                                    
## treat_var:date_2018_09                                             
##                                                                    
## treat_var:date_2018_10                                             
##                                                                    
## treat_var:date_2018_11                                             
##                                                                    
## treat_var:date_2018_12                                             
##                                                                    
## treat_var:date_2019_01                                     0.036   
##                                                           (0.078)  
## treat_var:date_2019_02                                    -0.007   
##                                                           (0.059)  
## treat_var:date_2019_03                                    -0.010   
##                                                           (0.097)  
## treat_var:date_2019_04                                     0.017   
##                                                           (0.059)  
## treat_var:date_2019_05                                    -0.118   
##                                                           (0.061)  
## treat_var:date_2019_06                                     0.050   
##                                                           (0.053)  
## treat_var:date_2019_07                                     0.038   
##                                                           (0.089)  
## treat_var:date_2019_08                                     0.086   
##                                                           (0.063)  
## treat_var:date_2019_09                                     0.010   
##                                                           (0.070)  
## treat_var:date_2019_10                                     0.072   
##                                                           (0.058)  
## treat_var:date_2019_11                                    -0.009   
##                                                           (0.088)  
## treat_var:date_2019_12                                    -0.023   
##                                                           (0.076)  
## treat_var:date_2020_02                                             
##                                                                    
## treat_var:date_2020_03                                             
##                                                                    
## treat_var:date_2020_04                                     4.941   
##                                                          (27.175)  
## treat_var:date_2020_05                                    60.029   
##                                                          (50.569)  
## treat_var:date_2020_06                                    49.230   
##                                                          (52.096)  
## treat_var:date_2020_07                                    13.609   
##                                                          (28.076)  
## treat_var:date_2020_08                                    20.326   
##                                                          (20.236)  
## treat_var:date_2020_09                                    36.598   
##                                                          (24.363)  
## date_2020_02:google_mobility_index_2020may                         
##                                                                    
## date_2020_03:google_mobility_index_2020may                         
##                                                                    
## date_2020_04:google_mobility_index_2020may                 1.374   
##                                                           (5.938)  
## date_2020_05:google_mobility_index_2020may                -1.316   
##                                                           (5.877)  
## date_2020_06:google_mobility_index_2020may                 0.190   
##                                                           (5.507)  
## date_2020_07:google_mobility_index_2020may                -1.502   
##                                                           (3.394)  
## date_2020_08:google_mobility_index_2020may                -0.620   
##                                                           (2.187)  
## date_2020_09:google_mobility_index_2020may                -0.651   
##                                                           (2.125)  
## date_2020_02:infection_rate_cumulative2020jun                      
##                                                                    
## date_2020_03:infection_rate_cumulative2020jun                      
##                                                                    
## date_2020_04:infection_rate_cumulative2020jun              2.682   
##                                                           (3.117)  
## date_2020_05:infection_rate_cumulative2020jun              5.174   
##                                                           (6.194)  
## date_2020_06:infection_rate_cumulative2020jun              3.776   
##                                                           (6.488)  
## date_2020_07:infection_rate_cumulative2020jun              2.125   
##                                                           (3.619)  
## date_2020_08:infection_rate_cumulative2020jun              1.278   
##                                                           (2.270)  
## date_2020_09:infection_rate_cumulative2020jun              0.788   
##                                                           (2.313)  
## date_2020_02:death_rate_cumulative2020jun                          
##                                                                    
## date_2020_03:death_rate_cumulative2020jun                          
##                                                                    
## date_2020_04:death_rate_cumulative2020jun                 -6.274   
##                                                          (36.847)  
## date_2020_05:death_rate_cumulative2020jun                -29.915   
##                                                          (67.166)  
## date_2020_06:death_rate_cumulative2020jun                -34.880   
##                                                          (74.220)  
## date_2020_07:death_rate_cumulative2020jun                -16.860   
##                                                          (41.147)  
## date_2020_08:death_rate_cumulative2020jun                -12.132   
##                                                          (24.683)  
## date_2020_09:death_rate_cumulative2020jun                -12.020   
##                                                          (24.989)  
## date_2020_02:Population_per_1_km_2_of_inhabitable_area             
##                                                                    
## date_2020_03:Population_per_1_km_2_of_inhabitable_area             
##                                                                    
## date_2020_04:Population_per_1_km_2_of_inhabitable_area    -0.008   
##                                                           (0.011)  
## date_2020_05:Population_per_1_km_2_of_inhabitable_area     0.007   
##                                                           (0.014)  
## date_2020_06:Population_per_1_km_2_of_inhabitable_area     0.010   
##                                                           (0.011)  
## date_2020_07:Population_per_1_km_2_of_inhabitable_area     0.003   
##                                                           (0.007)  
## date_2020_08:Population_per_1_km_2_of_inhabitable_area     0.003   
##                                                           (0.004)  
## date_2020_09:Population_per_1_km_2_of_inhabitable_area     0.002   
##                                                           (0.005)  
## date_2020_02:Secondary_industry_ratio                              
##                                                                    
## date_2020_03:Secondary_industry_ratio                              
##                                                                    
## date_2020_04:Secondary_industry_ratio                   -667.459   
##                                                         (446.247)  
## date_2020_05:Secondary_industry_ratio                   -985.886   
##                                                         (591.684)  
## date_2020_06:Secondary_industry_ratio                   -238.691   
##                                                         (522.896)  
## date_2020_07:Secondary_industry_ratio                   -383.631   
##                                                         (315.677)  
## date_2020_08:Secondary_industry_ratio                   -244.567   
##                                                         (222.485)  
## date_2020_09:Secondary_industry_ratio                   -165.786   
##                                                         (202.636)  
## date_2020_02:Tertiary_industry_ratio                               
##                                                                    
## date_2020_03:Tertiary_industry_ratio                               
##                                                                    
## date_2020_04:Tertiary_industry_ratio                    -455.123   
##                                                         (538.518)  
## date_2020_05:Tertiary_industry_ratio                    -887.245   
##                                                         (741.675)  
## date_2020_06:Tertiary_industry_ratio                    -122.924   
##                                                         (808.567)  
## date_2020_07:Tertiary_industry_ratio                    -428.676   
##                                                         (466.001)  
## date_2020_08:Tertiary_industry_ratio                    -288.427   
##                                                         (292.744)  
## date_2020_09:Tertiary_industry_ratio                    -281.342   
##                                                         (284.385)  
## date_2020_02:Total_population                                      
##                                                                    
## date_2020_03:Total_population                                      
##                                                                    
## date_2020_04:Total_population                             -0.026   
##                                                           (0.072)  
## date_2020_05:Total_population                             -0.266 * 
##                                                           (0.102)  
## date_2020_06:Total_population                             -0.181 * 
##                                                           (0.081)  
## date_2020_07:Total_population                             -0.124 * 
##                                                           (0.052)  
## date_2020_08:Total_population                             -0.101 * 
##                                                           (0.038)  
## date_2020_09:Total_population                             -0.101 **
##                                                           (0.029)  
## date_2020_02:Ratio_of_aged_population                              
##                                                                    
## date_2020_03:Ratio_of_aged_population                              
##                                                                    
## date_2020_04:Ratio_of_aged_population                     -2.168   
##                                                           (2.963)  
## date_2020_05:Ratio_of_aged_population                     -6.500   
##                                                           (3.924)  
## date_2020_06:Ratio_of_aged_population                     -7.335 * 
##                                                           (3.259)  
## date_2020_07:Ratio_of_aged_population                     -5.744 **
##                                                           (2.079)  
## date_2020_08:Ratio_of_aged_population                     -4.188 **
##                                                           (1.544)  
## date_2020_09:Ratio_of_aged_population                     -3.826 **
##                                                           (1.300)  
## -------------------------------------------------------------------
## R^2                                                        0.889   
## Adj. R^2                                                   0.870   
## Num. obs.                                                893       
## RMSE                                                    1099.816   
## N Clusters                                                47       
## ===================================================================
## *** p &lt; 0.001; ** p &lt; 0.01; * p &lt; 0.05</code></pre>
<div class="sourceCode" id="cb13"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb13-1"><a href="#cb13-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb13-2"><a href="#cb13-2" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_loan</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb13-3"><a href="#cb13-3" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;unemploy_shock_diff2&quot;</span>,</span>
<span id="cb13-4"><a href="#cb13-4" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;koguchi_number_WLS&quot;</span>)</span>
<span id="cb13-5"><a href="#cb13-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb13-6"><a href="#cb13-6" aria-hidden="true" tabindex="-1"></a><span class="co"># graph</span></span>
<span id="cb13-7"><a href="#cb13-7" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_WLS_covar <span class="ot">&lt;-</span> <span class="fu">event_study_graph_2nd_safetynet</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb13-8"><a href="#cb13-8" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;koguchi_number_WLS&quot;</span>)</span>
<span id="cb13-9"><a href="#cb13-9" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_koguchi_number_WLS_covar)</span></code></pre></div>
<div id="htmlwidget-870bf8ce4a66a2f5bd3a" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-870bf8ce4a66a2f5bd3a">{"x":{"data":[{"x":[1,2,3,4,5,6,7,8,9,10,11,12,16,17,18,19,20,21,13,14,15],"y":[0.0358486677023289,-0.00743808012342677,-0.00971358618781997,0.0174137126874584,-0.118395676919997,0.0499473587395947,0.0375298868010878,0.0859414302651481,0.0103537774504467,0.0718824777501185,-0.00879749936009087,-0.0225656320909287,4.94073392099602,60.0292126542308,49.2299080086332,13.6089688309212,20.3255093274692,36.598359837827,0,null,null],"text":["month: 2019-01<br />estimate:  0.035848668<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-02<br />estimate: -0.007438080<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-03<br />estimate: -0.009713586<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-04<br />estimate:  0.017413713<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-05<br />estimate: -0.118395677<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-06<br />estimate:  0.049947359<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-07<br />estimate:  0.037529887<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-08<br />estimate:  0.085941430<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-09<br />estimate:  0.010353777<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-10<br />estimate:  0.071882478<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-11<br />estimate: -0.008797499<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-12<br />estimate: -0.022565632<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-04<br />estimate:  4.940733921<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-05<br />estimate: 60.029212654<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-06<br />estimate: 49.229908009<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-07<br />estimate: 13.608968831<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-08<br />estimate: 20.325509327<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-09<br />estimate: 36.598359838<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-01<br />estimate:  0.000000000<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-02<br />estimate:           NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-03<br />estimate:           NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,0,255,1)","opacity":1,"size":9.4488188976378,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(0,0,255,1)"}},"hoveron":"points","name":"unemploy_shock_diff2","legendgroup":"unemploy_shock_diff2","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"y":[0.0358486677023289,-0.00743808012342677,-0.00971358618781997,0.0174137126874584,-0.118395676919997,0.0499473587395947,0.0375298868010878,0.0859414302651481,0.0103537774504467,0.0718824777501185,-0.00879749936009087,-0.0225656320909287,0,null,null,4.94073392099602,60.0292126542308,49.2299080086332,13.6089688309212,20.3255093274692,36.598359837827],"text":["month: 2019-01<br />estimate:  0.035848668<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-02<br />estimate: -0.007438080<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-03<br />estimate: -0.009713586<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-04<br />estimate:  0.017413713<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-05<br />estimate: -0.118395677<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-06<br />estimate:  0.049947359<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-07<br />estimate:  0.037529887<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-08<br />estimate:  0.085941430<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-09<br />estimate:  0.010353777<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-10<br />estimate:  0.071882478<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-11<br />estimate: -0.008797499<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-12<br />estimate: -0.022565632<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-01<br />estimate:  0.000000000<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-02<br />estimate:           NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-03<br />estimate:           NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-04<br />estimate:  4.940733921<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-05<br />estimate: 60.029212654<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-06<br />estimate: 49.229908009<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-07<br />estimate: 13.608968831<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-08<br />estimate: 20.325509327<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-09<br />estimate: 36.598359838<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,0,255,1)","dash":"solid"},"hoveron":"points","name":"unemploy_shock_diff2","legendgroup":"unemploy_shock_diff2","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1,2,3,4,5,6,7,8,9,10,11,12,16,17,18,19,20,21,13,14,15],"y":[0.0358486677023289,-0.00743808012342677,-0.00971358618781997,0.0174137126874584,-0.118395676919997,0.0499473587395947,0.0375298868010878,0.0859414302651481,0.0103537774504467,0.0718824777501185,-0.00879749936009087,-0.0225656320909287,4.94073392099602,60.0292126542308,49.2299080086332,13.6089688309212,20.3255093274692,36.598359837827,0,null,null],"text":["ci_lower:  -0.09560202<br />ci_upper:   0.16729936<br />width: 0.5<br />colour: black<br />month: 2019-01<br />estimate:  0.035848668<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.10729379<br />ci_upper:   0.09241763<br />width: 0.5<br />colour: black<br />month: 2019-02<br />estimate: -0.007438080<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.17171422<br />ci_upper:   0.15228705<br />width: 0.5<br />colour: black<br />month: 2019-03<br />estimate: -0.009713586<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.08081772<br />ci_upper:   0.11564514<br />width: 0.5<br />colour: black<br />month: 2019-04<br />estimate:  0.017413713<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.22068111<br />ci_upper:  -0.01611024<br />width: 0.5<br />colour: black<br />month: 2019-05<br />estimate: -0.118395677<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.03870325<br />ci_upper:   0.13859797<br />width: 0.5<br />colour: black<br />month: 2019-06<br />estimate:  0.049947359<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.11239736<br />ci_upper:   0.18745713<br />width: 0.5<br />colour: black<br />month: 2019-07<br />estimate:  0.037529887<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.01986176<br />ci_upper:   0.19174462<br />width: 0.5<br />colour: black<br />month: 2019-08<br />estimate:  0.085941430<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.10656914<br />ci_upper:   0.12727669<br />width: 0.5<br />colour: black<br />month: 2019-09<br />estimate:  0.010353777<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.02605927<br />ci_upper:   0.16982422<br />width: 0.5<br />colour: black<br />month: 2019-10<br />estimate:  0.071882478<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.15594635<br />ci_upper:   0.13835135<br />width: 0.5<br />colour: black<br />month: 2019-11<br />estimate: -0.008797499<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.15068488<br />ci_upper:   0.10555361<br />width: 0.5<br />colour: black<br />month: 2019-12<br />estimate: -0.022565632<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower: -40.67751004<br />ci_upper:  50.55897788<br />width: 0.5<br />colour: black<br />month: 2020-04<br />estimate:  4.940733921<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower: -24.85946779<br />ci_upper: 144.91789310<br />width: 0.5<br />colour: black<br />month: 2020-05<br />estimate: 60.029212654<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower: -38.22083531<br />ci_upper: 136.68065133<br />width: 0.5<br />colour: black<br />month: 2020-06<br />estimate: 49.229908009<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower: -33.52127287<br />ci_upper:  60.73921053<br />width: 0.5<br />colour: black<br />month: 2020-07<br />estimate: 13.608968831<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower: -13.64422105<br />ci_upper:  54.29523970<br />width: 0.5<br />colour: black<br />month: 2020-08<br />estimate: 20.325509327<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -4.29867321<br />ci_upper:  77.49539289<br />width: 0.5<br />colour: black<br />month: 2020-09<br />estimate: 36.598359838<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:   0.00000000<br />ci_upper:   0.00000000<br />width: 0.5<br />colour: black<br />month: 2020-01<br />estimate:  0.000000000<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:           NA<br />ci_upper:           NA<br />width: 0.5<br />colour: black<br />month: 2020-02<br />estimate:           NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:           NA<br />ci_upper:           NA<br />width: 0.5<br />colour: black<br />month: 2020-03<br />estimate:           NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.131450691472918,0.0998557118701538,0.1620006358316,0.0982314277589815,0.10228543403959,0.0886506077578202,0.149927241884912,0.105803190869054,0.116922915332016,0.0979417428413504,0.147148847833049,0.128119245450327,45.6182439600609,84.8886804487866,87.4507433225061,47.1302416960222,33.9697303758902,40.8970330480158,0,null,null],"arrayminus":[0.131450691472918,0.0998557118701538,0.1620006358316,0.0982314277589815,0.10228543403959,0.0886506077578202,0.149927241884912,0.105803190869054,0.116922915332016,0.0979417428413504,0.147148847833049,0.128119245450327,45.6182439600609,84.8886804487866,87.4507433225061,47.1302416960222,33.9697303758902,40.8970330480158,0,null,null],"type":"data","width":1.18867924528302,"symmetric":false,"color":"rgba(0,0,0,1)"},"name":"unemploy_shock_diff2","legendgroup":"unemploy_shock_diff2","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-49.957280196169,154.197663260122],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":38.854296388543},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"koguchi_number_WLS","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-49.957280196169,154.197663260122],"tickmode":"array","ticktext":["0","50","100","150"],"tickvals":[0,50,100,150],"categoryorder":"array","categoryarray":["0","50","100","150"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","showSendToCloud":false},"source":"A","attrs":{"4411154a0315":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"44112e10629e":{"x":{},"y":{},"colour":{},"shape":{}},"441135ba8ab2":{"ymin":{},"ymax":{},"width":{},"colour":{},"x":{},"y":{},"colour.1":{},"shape":{}},"441169e7c7ac":{"yintercept":{}},"44116fe62385":{"xintercept":{}}},"cur_data":"4411154a0315","visdat":{"4411154a0315":["function (y) ","x"],"44112e10629e":["function (y) ","x"],"441135ba8ab2":["function (y) ","x"],"441169e7c7ac":["function (y) ","x"],"44116fe62385":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<div id="wls-no-trends-figure-5-c-table-c.5-3" class="section level2" number="5.3">
<h2><span class="header-section-number">5.3</span> WLS, no trends, Figure 5 (c) &amp; Table C.5 (3)</h2>
<ul>
<li>Y=General Support Funds, without covariates</li>
</ul>
<div class="sourceCode" id="cb14"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb14-1"><a href="#cb14-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb14-2"><a href="#cb14-2" aria-hidden="true" tabindex="-1"></a>estimation_results <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_WLS_notrend</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb14-3"><a href="#cb14-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>sogo_number, </span>
<span id="cb14-4"><a href="#cb14-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>unemploy_shock_diff2)</span>
<span id="cb14-5"><a href="#cb14-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb14-6"><a href="#cb14-6" aria-hidden="true" tabindex="-1"></a>texreg<span class="sc">::</span><span class="fu">screenreg</span>(<span class="at">l =</span> estimation_results, <span class="at">include.ci =</span> <span class="cn">FALSE</span>, <span class="at">digits=</span><span class="dv">3</span>)</span></code></pre></div>
<pre><code>## 14 coefficients  not defined because the design matrix is rank deficient</code></pre>
<pre><code>## 
## ===================================
##                         Model 1    
## -----------------------------------
## treat_var:date_2018_01             
##                                    
## treat_var:date_2018_02             
##                                    
## treat_var:date_2018_03             
##                                    
## treat_var:date_2018_04             
##                                    
## treat_var:date_2018_05             
##                                    
## treat_var:date_2018_06             
##                                    
## treat_var:date_2018_07             
##                                    
## treat_var:date_2018_08             
##                                    
## treat_var:date_2018_09             
##                                    
## treat_var:date_2018_10             
##                                    
## treat_var:date_2018_11             
##                                    
## treat_var:date_2018_12             
##                                    
## treat_var:date_2019_01     0.034   
##                           (0.029)  
## treat_var:date_2019_02     0.018   
##                           (0.033)  
## treat_var:date_2019_03     0.029   
##                           (0.031)  
## treat_var:date_2019_04     0.024   
##                           (0.032)  
## treat_var:date_2019_05     0.000   
##                           (0.032)  
## treat_var:date_2019_06     0.015   
##                           (0.030)  
## treat_var:date_2019_07     0.028   
##                           (0.030)  
## treat_var:date_2019_08     0.014   
##                           (0.039)  
## treat_var:date_2019_09     0.003   
##                           (0.028)  
## treat_var:date_2019_10     0.006   
##                           (0.028)  
## treat_var:date_2019_11     0.019   
##                           (0.032)  
## treat_var:date_2019_12     0.015   
##                           (0.032)  
## treat_var:date_2020_02             
##                                    
## treat_var:date_2020_03             
##                                    
## treat_var:date_2020_04    -0.395   
##                           (1.539)  
## treat_var:date_2020_05     9.879   
##                          (12.245)  
## treat_var:date_2020_06    54.387   
##                          (29.934)  
## treat_var:date_2020_07    82.444 * 
##                          (31.787)  
## treat_var:date_2020_08    52.064 **
##                          (16.912)  
## treat_var:date_2020_09    43.071   
##                          (23.620)  
## -----------------------------------
## R^2                        0.748   
## Adj. R^2                   0.722   
## Num. obs.                893       
## RMSE                    1078.193   
## N Clusters                47       
## ===================================
## *** p &lt; 0.001; ** p &lt; 0.01; * p &lt; 0.05</code></pre>
<div class="sourceCode" id="cb17"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb17-1"><a href="#cb17-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb17-2"><a href="#cb17-2" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_loan</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb17-3"><a href="#cb17-3" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;unemploy_shock_diff2&quot;</span>,</span>
<span id="cb17-4"><a href="#cb17-4" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;sogo_number_WLS&quot;</span>)</span>
<span id="cb17-5"><a href="#cb17-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb17-6"><a href="#cb17-6" aria-hidden="true" tabindex="-1"></a><span class="co"># graph</span></span>
<span id="cb17-7"><a href="#cb17-7" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_WLS <span class="ot">&lt;-</span> <span class="fu">event_study_graph_2nd_safetynet</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb17-8"><a href="#cb17-8" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;sogo_number_WLS&quot;</span>)</span>
<span id="cb17-9"><a href="#cb17-9" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_sogo_number_WLS)</span></code></pre></div>
<div id="htmlwidget-d3bb21458bc462eb9580" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-d3bb21458bc462eb9580">{"x":{"data":[{"x":[1,2,3,4,5,6,7,8,9,10,11,12,16,17,18,19,20,21,13,14,15],"y":[0.0337478619793714,0.0180430578804831,0.0288330323734627,0.0238445111000303,0.000125788913230451,0.0150908599140323,0.0284155920051958,0.0142093333254465,0.00276603369118078,0.00588668923971625,0.0194310916916791,0.0146625138217047,-0.394628974941462,9.878505469004,54.386851254724,82.4444344684692,52.0641278026676,43.0709713928697,0,null,null],"text":["month: 2019-01<br />estimate:  0.0337478620<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-02<br />estimate:  0.0180430579<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-03<br />estimate:  0.0288330324<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-04<br />estimate:  0.0238445111<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-05<br />estimate:  0.0001257889<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-06<br />estimate:  0.0150908599<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-07<br />estimate:  0.0284155920<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-08<br />estimate:  0.0142093333<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-09<br />estimate:  0.0027660337<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-10<br />estimate:  0.0058866892<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-11<br />estimate:  0.0194310917<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-12<br />estimate:  0.0146625138<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-04<br />estimate: -0.3946289749<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-05<br />estimate:  9.8785054690<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-06<br />estimate: 54.3868512547<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-07<br />estimate: 82.4444344685<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-08<br />estimate: 52.0641278027<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-09<br />estimate: 43.0709713929<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-01<br />estimate:  0.0000000000<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-02<br />estimate:            NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-03<br />estimate:            NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,0,255,1)","opacity":1,"size":9.4488188976378,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(0,0,255,1)"}},"hoveron":"points","name":"unemploy_shock_diff2","legendgroup":"unemploy_shock_diff2","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"y":[0.0337478619793714,0.0180430578804831,0.0288330323734627,0.0238445111000303,0.000125788913230451,0.0150908599140323,0.0284155920051958,0.0142093333254465,0.00276603369118078,0.00588668923971625,0.0194310916916791,0.0146625138217047,0,null,null,-0.394628974941462,9.878505469004,54.386851254724,82.4444344684692,52.0641278026676,43.0709713928697],"text":["month: 2019-01<br />estimate:  0.0337478620<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-02<br />estimate:  0.0180430579<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-03<br />estimate:  0.0288330324<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-04<br />estimate:  0.0238445111<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-05<br />estimate:  0.0001257889<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-06<br />estimate:  0.0150908599<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-07<br />estimate:  0.0284155920<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-08<br />estimate:  0.0142093333<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-09<br />estimate:  0.0027660337<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-10<br />estimate:  0.0058866892<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-11<br />estimate:  0.0194310917<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-12<br />estimate:  0.0146625138<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-01<br />estimate:  0.0000000000<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-02<br />estimate:            NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-03<br />estimate:            NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-04<br />estimate: -0.3946289749<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-05<br />estimate:  9.8785054690<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-06<br />estimate: 54.3868512547<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-07<br />estimate: 82.4444344685<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-08<br />estimate: 52.0641278027<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-09<br />estimate: 43.0709713929<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,0,255,1)","dash":"solid"},"hoveron":"points","name":"unemploy_shock_diff2","legendgroup":"unemploy_shock_diff2","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1,2,3,4,5,6,7,8,9,10,11,12,16,17,18,19,20,21,13,14,15],"y":[0.0337478619793714,0.0180430578804831,0.0288330323734627,0.0238445111000303,0.000125788913230451,0.0150908599140323,0.0284155920051958,0.0142093333254465,0.00276603369118078,0.00588668923971625,0.0194310916916791,0.0146625138217047,-0.394628974941462,9.878505469004,54.386851254724,82.4444344684692,52.0641278026676,43.0709713928697,0,null,null],"text":["ci_lower:  -0.01534466<br />ci_upper:   0.08284039<br />width: 0.5<br />colour: black<br />month: 2019-01<br />estimate:  0.0337478620<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.03691263<br />ci_upper:   0.07299875<br />width: 0.5<br />colour: black<br />month: 2019-02<br />estimate:  0.0180430579<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.02283888<br />ci_upper:   0.08050495<br />width: 0.5<br />colour: black<br />month: 2019-03<br />estimate:  0.0288330324<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.02953254<br />ci_upper:   0.07722156<br />width: 0.5<br />colour: black<br />month: 2019-04<br />estimate:  0.0238445111<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.05281445<br />ci_upper:   0.05306603<br />width: 0.5<br />colour: black<br />month: 2019-05<br />estimate:  0.0001257889<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.03602751<br />ci_upper:   0.06620923<br />width: 0.5<br />colour: black<br />month: 2019-06<br />estimate:  0.0150908599<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.02112183<br />ci_upper:   0.07795301<br />width: 0.5<br />colour: black<br />month: 2019-07<br />estimate:  0.0284155920<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.05184697<br />ci_upper:   0.08026564<br />width: 0.5<br />colour: black<br />month: 2019-08<br />estimate:  0.0142093333<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.04389515<br />ci_upper:   0.04942722<br />width: 0.5<br />colour: black<br />month: 2019-09<br />estimate:  0.0027660337<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.04089130<br />ci_upper:   0.05266468<br />width: 0.5<br />colour: black<br />month: 2019-10<br />estimate:  0.0058866892<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.03420547<br />ci_upper:   0.07306766<br />width: 0.5<br />colour: black<br />month: 2019-11<br />estimate:  0.0194310917<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.03844828<br />ci_upper:   0.06777331<br />width: 0.5<br />colour: black<br />month: 2019-12<br />estimate:  0.0146625138<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -2.97839920<br />ci_upper:   2.18914125<br />width: 0.5<br />colour: black<br />month: 2020-04<br />estimate: -0.3946289749<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower: -10.67610438<br />ci_upper:  30.43311532<br />width: 0.5<br />colour: black<br />month: 2020-05<br />estimate:  9.8785054690<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:   4.13809239<br />ci_upper: 104.63561012<br />width: 0.5<br />colour: black<br />month: 2020-06<br />estimate: 54.3868512547<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  29.08439123<br />ci_upper: 135.80447771<br />width: 0.5<br />colour: black<br />month: 2020-07<br />estimate: 82.4444344685<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  23.67410885<br />ci_upper:  80.45414675<br />width: 0.5<br />colour: black<br />month: 2020-08<br />estimate: 52.0641278027<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:   3.42172000<br />ci_upper:  82.72022279<br />width: 0.5<br />colour: black<br />month: 2020-09<br />estimate: 43.0709713929<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:   0.00000000<br />ci_upper:   0.00000000<br />width: 0.5<br />colour: black<br />month: 2020-01<br />estimate:  0.0000000000<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:           NA<br />ci_upper:           NA<br />width: 0.5<br />colour: black<br />month: 2020-02<br />estimate:            NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:           NA<br />ci_upper:           NA<br />width: 0.5<br />colour: black<br />month: 2020-03<br />estimate:            NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.0490925261144702,0.0549556884954669,0.0516719163798192,0.0533770484481773,0.0529402368292525,0.0511183686062427,0.0495374192803846,0.0660563051478514,0.0466611861987706,0.0467779920521257,0.0536365635692878,0.0531107975025588,2.58377022802406,20.5546098506973,50.2487588694128,53.3600432424928,28.3900189495909,39.6492513941364,0,null,null],"arrayminus":[0.0490925261144702,0.054955688495467,0.0516719163798192,0.0533770484481773,0.0529402368292525,0.0511183686062427,0.0495374192803846,0.0660563051478514,0.0466611861987706,0.0467779920521257,0.0536365635692878,0.0531107975025588,2.58377022802406,20.5546098506973,50.2487588694128,53.3600432424928,28.3900189495909,39.6492513941364,0,null,null],"type":"data","width":1.18867924528302,"symmetric":false,"color":"rgba(0,0,0,1)"},"name":"unemploy_shock_diff2","legendgroup":"unemploy_shock_diff2","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-18.0001334863261,143.128506815595],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":38.854296388543},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"sogo_number_WLS","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-18.0001334863261,143.128506815595],"tickmode":"array","ticktext":["0","50","100"],"tickvals":[0,50,100],"categoryorder":"array","categoryarray":["0","50","100"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","showSendToCloud":false},"source":"A","attrs":{"44115d86c54b":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"44113b02eee5":{"x":{},"y":{},"colour":{},"shape":{}},"44113d921aa7":{"ymin":{},"ymax":{},"width":{},"colour":{},"x":{},"y":{},"colour.1":{},"shape":{}},"44114313e985":{"yintercept":{}},"441150483d2a":{"xintercept":{}}},"cur_data":"44115d86c54b","visdat":{"44115d86c54b":["function (y) ","x"],"44113b02eee5":["function (y) ","x"],"44113d921aa7":["function (y) ","x"],"44114313e985":["function (y) ","x"],"441150483d2a":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<div id="wls-no-trends-figure-5d-table-c.6-3" class="section level2" number="5.4">
<h2><span class="header-section-number">5.4</span> WLS, no trends, Figure 5(d) &amp; Table C.6 (3)</h2>
<ul>
<li>Y=General Support Funds, with covariates</li>
</ul>
<div class="sourceCode" id="cb18"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb18-1"><a href="#cb18-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb18-2"><a href="#cb18-2" aria-hidden="true" tabindex="-1"></a>estimation_results <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_WLS_notrend_covar8Xcovid_months</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb18-3"><a href="#cb18-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>sogo_number, </span>
<span id="cb18-4"><a href="#cb18-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>unemploy_shock_diff2)</span>
<span id="cb18-5"><a href="#cb18-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb18-6"><a href="#cb18-6" aria-hidden="true" tabindex="-1"></a>texreg<span class="sc">::</span><span class="fu">screenreg</span>(<span class="at">l =</span> estimation_results, <span class="at">include.ci =</span> <span class="cn">FALSE</span>, <span class="at">digits=</span><span class="dv">3</span>)</span></code></pre></div>
<pre><code>## 30 coefficients  not defined because the design matrix is rank deficient</code></pre>
<pre><code>## 
## ====================================================================
##                                                         Model 1     
## --------------------------------------------------------------------
## treat_var:date_2018_01                                              
##                                                                     
## treat_var:date_2018_02                                              
##                                                                     
## treat_var:date_2018_03                                              
##                                                                     
## treat_var:date_2018_04                                              
##                                                                     
## treat_var:date_2018_05                                              
##                                                                     
## treat_var:date_2018_06                                              
##                                                                     
## treat_var:date_2018_07                                              
##                                                                     
## treat_var:date_2018_08                                              
##                                                                     
## treat_var:date_2018_09                                              
##                                                                     
## treat_var:date_2018_10                                              
##                                                                     
## treat_var:date_2018_11                                              
##                                                                     
## treat_var:date_2018_12                                              
##                                                                     
## treat_var:date_2019_01                                     0.010    
##                                                           (0.014)   
## treat_var:date_2019_02                                    -0.005    
##                                                           (0.017)   
## treat_var:date_2019_03                                     0.006    
##                                                           (0.018)   
## treat_var:date_2019_04                                     0.001    
##                                                           (0.018)   
## treat_var:date_2019_05                                    -0.023    
##                                                           (0.015)   
## treat_var:date_2019_06                                    -0.008    
##                                                           (0.014)   
## treat_var:date_2019_07                                     0.005    
##                                                           (0.016)   
## treat_var:date_2019_08                                    -0.009    
##                                                           (0.024)   
## treat_var:date_2019_09                                    -0.021    
##                                                           (0.011)   
## treat_var:date_2019_10                                    -0.017    
##                                                           (0.012)   
## treat_var:date_2019_11                                    -0.004    
##                                                           (0.017)   
## treat_var:date_2019_12                                    -0.009    
##                                                           (0.018)   
## treat_var:date_2020_02                                              
##                                                                     
## treat_var:date_2020_03                                              
##                                                                     
## treat_var:date_2020_04                                     0.002    
##                                                           (3.346)   
## treat_var:date_2020_05                                     9.231    
##                                                          (18.599)   
## treat_var:date_2020_06                                    62.337    
##                                                          (34.330)   
## treat_var:date_2020_07                                    87.776 *  
##                                                          (39.148)   
## treat_var:date_2020_08                                    35.863    
##                                                          (20.370)   
## treat_var:date_2020_09                                    26.989    
##                                                          (20.992)   
## date_2020_02:google_mobility_index_2020may                          
##                                                                     
## date_2020_03:google_mobility_index_2020may                          
##                                                                     
## date_2020_04:google_mobility_index_2020may                 0.350    
##                                                           (0.457)   
## date_2020_05:google_mobility_index_2020may                 0.799    
##                                                           (2.800)   
## date_2020_06:google_mobility_index_2020may                -1.830    
##                                                           (3.952)   
## date_2020_07:google_mobility_index_2020may                -1.842    
##                                                           (3.728)   
## date_2020_08:google_mobility_index_2020may                -1.614    
##                                                           (2.724)   
## date_2020_09:google_mobility_index_2020may                -1.268    
##                                                           (2.734)   
## date_2020_02:infection_rate_cumulative2020jun                       
##                                                                     
## date_2020_03:infection_rate_cumulative2020jun                       
##                                                                     
## date_2020_04:infection_rate_cumulative2020jun              0.440    
##                                                           (0.383)   
## date_2020_05:infection_rate_cumulative2020jun              4.519    
##                                                           (2.555)   
## date_2020_06:infection_rate_cumulative2020jun              6.506    
##                                                           (4.384)   
## date_2020_07:infection_rate_cumulative2020jun              5.190    
##                                                           (4.263)   
## date_2020_08:infection_rate_cumulative2020jun              1.447    
##                                                           (2.444)   
## date_2020_09:infection_rate_cumulative2020jun              3.951    
##                                                           (2.747)   
## date_2020_02:death_rate_cumulative2020jun                           
##                                                                     
## date_2020_03:death_rate_cumulative2020jun                           
##                                                                     
## date_2020_04:death_rate_cumulative2020jun                 -5.812    
##                                                           (4.122)   
## date_2020_05:death_rate_cumulative2020jun                -46.616    
##                                                          (27.742)   
## date_2020_06:death_rate_cumulative2020jun                -65.417    
##                                                          (46.193)   
## date_2020_07:death_rate_cumulative2020jun                -54.131    
##                                                          (46.086)   
## date_2020_08:death_rate_cumulative2020jun                 -9.899    
##                                                          (28.325)   
## date_2020_09:death_rate_cumulative2020jun                -33.765    
##                                                          (31.096)   
## date_2020_02:Population_per_1_km_2_of_inhabitable_area              
##                                                                     
## date_2020_03:Population_per_1_km_2_of_inhabitable_area              
##                                                                     
## date_2020_04:Population_per_1_km_2_of_inhabitable_area     0.000    
##                                                           (0.001)   
## date_2020_05:Population_per_1_km_2_of_inhabitable_area    -0.001    
##                                                           (0.005)   
## date_2020_06:Population_per_1_km_2_of_inhabitable_area     0.002    
##                                                           (0.009)   
## date_2020_07:Population_per_1_km_2_of_inhabitable_area     0.008    
##                                                           (0.008)   
## date_2020_08:Population_per_1_km_2_of_inhabitable_area     0.008    
##                                                           (0.004)   
## date_2020_09:Population_per_1_km_2_of_inhabitable_area     0.007    
##                                                           (0.005)   
## date_2020_02:Secondary_industry_ratio                               
##                                                                     
## date_2020_03:Secondary_industry_ratio                               
##                                                                     
## date_2020_04:Secondary_industry_ratio                    -14.136    
##                                                          (39.326)   
## date_2020_05:Secondary_industry_ratio                    -68.471    
##                                                         (237.688)   
## date_2020_06:Secondary_industry_ratio                   -408.113    
##                                                         (354.335)   
## date_2020_07:Secondary_industry_ratio                   -687.034    
##                                                         (398.726)   
## date_2020_08:Secondary_industry_ratio                   -477.582    
##                                                         (268.957)   
## date_2020_09:Secondary_industry_ratio                   -576.146    
##                                                         (291.902)   
## date_2020_02:Tertiary_industry_ratio                                
##                                                                     
## date_2020_03:Tertiary_industry_ratio                                
##                                                                     
## date_2020_04:Tertiary_industry_ratio                      23.022    
##                                                          (61.903)   
## date_2020_05:Tertiary_industry_ratio                      88.732    
##                                                         (416.443)   
## date_2020_06:Tertiary_industry_ratio                    -470.488    
##                                                         (531.856)   
## date_2020_07:Tertiary_industry_ratio                    -884.672    
##                                                         (551.372)   
## date_2020_08:Tertiary_industry_ratio                    -430.582    
##                                                         (374.634)   
## date_2020_09:Tertiary_industry_ratio                    -620.040    
##                                                         (362.674)   
## date_2020_02:Total_population                                       
##                                                                     
## date_2020_03:Total_population                                       
##                                                                     
## date_2020_04:Total_population                             -0.006    
##                                                           (0.004)   
## date_2020_05:Total_population                             -0.069 *  
##                                                           (0.026)   
## date_2020_06:Total_population                             -0.176 ***
##                                                           (0.049)   
## date_2020_07:Total_population                             -0.227 ***
##                                                           (0.057)   
## date_2020_08:Total_population                             -0.158 ***
##                                                           (0.042)   
## date_2020_09:Total_population                             -0.177 ***
##                                                           (0.042)   
## date_2020_02:Ratio_of_aged_population                               
##                                                                     
## date_2020_03:Ratio_of_aged_population                               
##                                                                     
## date_2020_04:Ratio_of_aged_population                      0.034    
##                                                           (0.238)   
## date_2020_05:Ratio_of_aged_population                     -1.031    
##                                                           (1.270)   
## date_2020_06:Ratio_of_aged_population                     -3.120    
##                                                           (1.943)   
## date_2020_07:Ratio_of_aged_population                     -5.840 *  
##                                                           (2.446)   
## date_2020_08:Ratio_of_aged_population                     -4.436 *  
##                                                           (1.686)   
## date_2020_09:Ratio_of_aged_population                     -4.909 ** 
##                                                           (1.669)   
## --------------------------------------------------------------------
## R^2                                                        0.874    
## Adj. R^2                                                   0.852    
## Num. obs.                                                893        
## RMSE                                                     786.426    
## N Clusters                                                47        
## ====================================================================
## *** p &lt; 0.001; ** p &lt; 0.01; * p &lt; 0.05</code></pre>
<div class="sourceCode" id="cb21"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb21-1"><a href="#cb21-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb21-2"><a href="#cb21-2" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_loan</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb21-3"><a href="#cb21-3" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;unemploy_shock_diff2&quot;</span>,</span>
<span id="cb21-4"><a href="#cb21-4" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;sogo_number_WLS&quot;</span>)</span>
<span id="cb21-5"><a href="#cb21-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb21-6"><a href="#cb21-6" aria-hidden="true" tabindex="-1"></a><span class="co"># graph</span></span>
<span id="cb21-7"><a href="#cb21-7" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_WLS_covar <span class="ot">&lt;-</span> <span class="fu">event_study_graph_2nd_safetynet</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb21-8"><a href="#cb21-8" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;sogo_number_WLS&quot;</span>)</span>
<span id="cb21-9"><a href="#cb21-9" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_sogo_number_WLS_covar)</span></code></pre></div>
<div id="htmlwidget-9c0028c3bebaa1e040d6" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-9c0028c3bebaa1e040d6">{"x":{"data":[{"x":[1,2,3,4,5,6,7,8,9,10,11,12,16,17,18,19,20,21,13,14,15],"y":[0.0104766113976507,-0.00522819270122313,0.00556178179175872,0.000573260518239497,-0.0231454616685285,-0.00818039066761939,0.00514434142348301,-0.00906191725623989,-0.0205052168905478,-0.017384561342032,-0.00384015889004329,-0.00860873675993934,0.00207081609250334,9.23116054114745,62.3372147650886,87.7762648187545,35.8632919766309,26.9889397662744,0,null,null],"text":["month: 2019-01<br />estimate:  0.0104766114<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-02<br />estimate: -0.0052281927<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-03<br />estimate:  0.0055617818<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-04<br />estimate:  0.0005732605<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-05<br />estimate: -0.0231454617<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-06<br />estimate: -0.0081803907<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-07<br />estimate:  0.0051443414<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-08<br />estimate: -0.0090619173<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-09<br />estimate: -0.0205052169<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-10<br />estimate: -0.0173845613<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-11<br />estimate: -0.0038401589<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-12<br />estimate: -0.0086087368<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-04<br />estimate:  0.0020708161<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-05<br />estimate:  9.2311605411<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-06<br />estimate: 62.3372147651<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-07<br />estimate: 87.7762648188<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-08<br />estimate: 35.8632919766<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-09<br />estimate: 26.9889397663<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-01<br />estimate:  0.0000000000<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-02<br />estimate:            NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-03<br />estimate:            NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,0,255,1)","opacity":1,"size":9.4488188976378,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(0,0,255,1)"}},"hoveron":"points","name":"unemploy_shock_diff2","legendgroup":"unemploy_shock_diff2","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"y":[0.0104766113976507,-0.00522819270122313,0.00556178179175872,0.000573260518239497,-0.0231454616685285,-0.00818039066761939,0.00514434142348301,-0.00906191725623989,-0.0205052168905478,-0.017384561342032,-0.00384015889004329,-0.00860873675993934,0,null,null,0.00207081609250334,9.23116054114745,62.3372147650886,87.7762648187545,35.8632919766309,26.9889397662744],"text":["month: 2019-01<br />estimate:  0.0104766114<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-02<br />estimate: -0.0052281927<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-03<br />estimate:  0.0055617818<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-04<br />estimate:  0.0005732605<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-05<br />estimate: -0.0231454617<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-06<br />estimate: -0.0081803907<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-07<br />estimate:  0.0051443414<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-08<br />estimate: -0.0090619173<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-09<br />estimate: -0.0205052169<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-10<br />estimate: -0.0173845613<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-11<br />estimate: -0.0038401589<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-12<br />estimate: -0.0086087368<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-01<br />estimate:  0.0000000000<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-02<br />estimate:            NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-03<br />estimate:            NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-04<br />estimate:  0.0020708161<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-05<br />estimate:  9.2311605411<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-06<br />estimate: 62.3372147651<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-07<br />estimate: 87.7762648188<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-08<br />estimate: 35.8632919766<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-09<br />estimate: 26.9889397663<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,0,255,1)","dash":"solid"},"hoveron":"points","name":"unemploy_shock_diff2","legendgroup":"unemploy_shock_diff2","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1,2,3,4,5,6,7,8,9,10,11,12,16,17,18,19,20,21,13,14,15],"y":[0.0104766113976507,-0.00522819270122313,0.00556178179175872,0.000573260518239497,-0.0231454616685285,-0.00818039066761939,0.00514434142348301,-0.00906191725623989,-0.0205052168905478,-0.017384561342032,-0.00384015889004329,-0.00860873675993934,0.00207081609250334,9.23116054114745,62.3372147650886,87.7762648187545,35.8632919766309,26.9889397662744,0,null,null],"text":["ci_lower:  -0.01358205<br />ci_upper:   0.034535269<br />width: 0.5<br />colour: black<br />month: 2019-01<br />estimate:  0.0104766114<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.03364503<br />ci_upper:   0.023188641<br />width: 0.5<br />colour: black<br />month: 2019-02<br />estimate: -0.0052281927<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.02478140<br />ci_upper:   0.035904960<br />width: 0.5<br />colour: black<br />month: 2019-03<br />estimate:  0.0055617818<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.02963036<br />ci_upper:   0.030776882<br />width: 0.5<br />colour: black<br />month: 2019-04<br />estimate:  0.0005732605<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.04907300<br />ci_upper:   0.002782073<br />width: 0.5<br />colour: black<br />month: 2019-05<br />estimate: -0.0231454617<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.03247308<br />ci_upper:   0.016112299<br />width: 0.5<br />colour: black<br />month: 2019-06<br />estimate: -0.0081803907<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.02134513<br />ci_upper:   0.031633809<br />width: 0.5<br />colour: black<br />month: 2019-07<br />estimate:  0.0051443414<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.04969249<br />ci_upper:   0.031568653<br />width: 0.5<br />colour: black<br />month: 2019-08<br />estimate: -0.0090619173<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.03912168<br />ci_upper:  -0.001888750<br />width: 0.5<br />colour: black<br />month: 2019-09<br />estimate: -0.0205052169<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.03758053<br />ci_upper:   0.002811409<br />width: 0.5<br />colour: black<br />month: 2019-10<br />estimate: -0.0173845613<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.03240045<br />ci_upper:   0.024720136<br />width: 0.5<br />colour: black<br />month: 2019-11<br />estimate: -0.0038401589<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.03847947<br />ci_upper:   0.021261999<br />width: 0.5<br />colour: black<br />month: 2019-12<br />estimate: -0.0086087368<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -5.61537912<br />ci_upper:   5.619520749<br />width: 0.5<br />colour: black<br />month: 2020-04<br />estimate:  0.0020708161<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower: -21.99072866<br />ci_upper:  40.453049742<br />width: 0.5<br />colour: black<br />month: 2020-05<br />estimate:  9.2311605411<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:   4.70946175<br />ci_upper: 119.964967785<br />width: 0.5<br />colour: black<br />month: 2020-06<br />estimate: 62.3372147651<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  22.06085957<br />ci_upper: 153.491670068<br />width: 0.5<br />colour: black<br />month: 2020-07<br />estimate: 87.7762648188<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:   1.66959075<br />ci_upper:  70.056993202<br />width: 0.5<br />colour: black<br />month: 2020-08<br />estimate: 35.8632919766<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -8.24982359<br />ci_upper:  62.227703123<br />width: 0.5<br />colour: black<br />month: 2020-09<br />estimate: 26.9889397663<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:   0.00000000<br />ci_upper:   0.000000000<br />width: 0.5<br />colour: black<br />month: 2020-01<br />estimate:  0.0000000000<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:           NA<br />ci_upper:            NA<br />width: 0.5<br />colour: black<br />month: 2020-02<br />estimate:            NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:           NA<br />ci_upper:            NA<br />width: 0.5<br />colour: black<br />month: 2020-03<br />estimate:            NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.0240586574753853,0.0284168332241819,0.0303431778901075,0.0302036209936453,0.0259275343648722,0.0242926892490366,0.0264894679414158,0.0406305706696541,0.0186164667430677,0.0201959698737196,0.0285602948092007,0.0298707355170201,5.61744993248863,31.2218892004184,57.6277530196732,65.7154052490224,34.1937012253616,35.2387633564545,0,null,null],"arrayminus":[0.0240586574753853,0.0284168332241819,0.0303431778901075,0.0302036209936453,0.0259275343648722,0.0242926892490366,0.0264894679414158,0.0406305706696541,0.0186164667430677,0.0201959698737196,0.0285602948092007,0.0298707355170201,5.61744993248863,31.2218892004184,57.6277530196732,65.7154052490224,34.1937012253616,35.2387633564545,0,null,null],"type":"data","width":1.18867924528302,"symmetric":false,"color":"rgba(0,0,0,1)"},"name":"unemploy_shock_diff2","legendgroup":"unemploy_shock_diff2","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-30.7648485956233,162.265790004129],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":38.854296388543},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"sogo_number_WLS","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-30.7648485956233,162.265790004129],"tickmode":"array","ticktext":["0","50","100","150"],"tickvals":[3.5527136788005e-15,50,100,150],"categoryorder":"array","categoryarray":["0","50","100","150"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","showSendToCloud":false},"source":"A","attrs":{"44113ae55a46":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"44112789c7df":{"x":{},"y":{},"colour":{},"shape":{}},"441146a115c0":{"ymin":{},"ymax":{},"width":{},"colour":{},"x":{},"y":{},"colour.1":{},"shape":{}},"4411799b1479":{"yintercept":{}},"4411345d524e":{"xintercept":{}}},"cur_data":"44113ae55a46","visdat":{"44113ae55a46":["function (y) ","x"],"44112789c7df":["function (y) ","x"],"441146a115c0":["function (y) ","x"],"4411799b1479":["function (y) ","x"],"4411345d524e":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<div id="wls-no-trends-figure-5-e-table-c.5-5" class="section level2" number="5.5">
<h2><span class="header-section-number">5.5</span> WLS, no trends, Figure 5 (e) &amp; Table C.5 (5)</h2>
<ul>
<li>Y=Housing Security Benefit, without covariates</li>
</ul>
<div class="sourceCode" id="cb22"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb22-1"><a href="#cb22-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb22-2"><a href="#cb22-2" aria-hidden="true" tabindex="-1"></a>estimation_results  <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_jukyo_WLS</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb22-3"><a href="#cb22-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>jukyo_number, </span>
<span id="cb22-4"><a href="#cb22-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>unemploy_shock_diff2)</span>
<span id="cb22-5"><a href="#cb22-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb22-6"><a href="#cb22-6" aria-hidden="true" tabindex="-1"></a>texreg<span class="sc">::</span><span class="fu">screenreg</span>(<span class="at">l =</span> estimation_results , <span class="at">include.ci =</span> <span class="cn">FALSE</span>, <span class="at">digits=</span><span class="dv">3</span>)</span></code></pre></div>
<pre><code>## 
## ==================================
##                         Model 1   
## ----------------------------------
## treat_var:date_2019_01    0.118 * 
##                          (0.058)  
## treat_var:date_2019_02    0.108   
##                          (0.070)  
## treat_var:date_2020_04    1.103   
##                          (0.730)  
## treat_var:date_2020_05   15.311 * 
##                          (6.970)  
## treat_var:date_2020_06   27.584 **
##                          (9.358)  
## treat_var:date_2020_07   15.334 **
##                          (5.316)  
## treat_var:date_2020_08    6.615 * 
##                          (2.999)  
## treat_var:date_2020_09    4.442 * 
##                          (2.152)  
## ----------------------------------
## R^2                       0.785   
## Adj. R^2                  0.749   
## Num. obs.               423       
## RMSE                    363.049   
## N Clusters               47       
## ==================================
## *** p &lt; 0.001; ** p &lt; 0.01; * p &lt; 0.05</code></pre>
<div class="sourceCode" id="cb24"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb24-1"><a href="#cb24-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb24-2"><a href="#cb24-2" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_jukyo</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb24-3"><a href="#cb24-3" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;unemploy_shock_diff2&quot;</span>,</span>
<span id="cb24-4"><a href="#cb24-4" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;jukyo_number_WLS&quot;</span>)</span>
<span id="cb24-5"><a href="#cb24-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb24-6"><a href="#cb24-6" aria-hidden="true" tabindex="-1"></a><span class="co"># Event study graph</span></span>
<span id="cb24-7"><a href="#cb24-7" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_WLS <span class="ot">&lt;-</span> <span class="fu">event_study_graph_jukyo</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb24-8"><a href="#cb24-8" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;jukyo_number_WLS&quot;</span>)</span>
<span id="cb24-9"><a href="#cb24-9" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb24-10"><a href="#cb24-10" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_jukyo_number_WLS)</span></code></pre></div>
<div id="htmlwidget-59e59c30df34b54a2cbb" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-59e59c30df34b54a2cbb">{"x":{"data":[{"x":[1,2,16,17,18,19,20,21,3,4,5,6,7,8,9,10,11,12,13,14,15],"y":[0.117502480457477,0.107578801495555,1.10260400563082,15.3111452953042,27.583867514515,15.3335398491714,6.61460757002231,4.44172090712996,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["month: 2019-01<br />estimate:  0.1175025<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-02<br />estimate:  0.1075788<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-04<br />estimate:  1.1026040<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-05<br />estimate: 15.3111453<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-06<br />estimate: 27.5838675<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-07<br />estimate: 15.3335398<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-08<br />estimate:  6.6146076<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-09<br />estimate:  4.4417209<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-03<br />estimate:  0.0000000<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-04<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-05<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-06<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-07<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-08<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-09<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-10<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-11<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-12<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-01<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-02<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-03<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,0,255,1)","opacity":1,"size":9.4488188976378,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(0,0,255,1)"}},"hoveron":"points","name":"unemploy_shock_diff2","legendgroup":"unemploy_shock_diff2","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"y":[0.117502480457477,0.107578801495555,0,null,null,null,null,null,null,null,null,null,null,null,null,1.10260400563082,15.3111452953042,27.583867514515,15.3335398491714,6.61460757002231,4.44172090712996],"text":["month: 2019-01<br />estimate:  0.1175025<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-02<br />estimate:  0.1075788<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-03<br />estimate:  0.0000000<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-04<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-05<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-06<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-07<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-08<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-09<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-10<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-11<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-12<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-01<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-02<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-03<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-04<br />estimate:  1.1026040<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-05<br />estimate: 15.3111453<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-06<br />estimate: 27.5838675<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-07<br />estimate: 15.3335398<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-08<br />estimate:  6.6146076<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-09<br />estimate:  4.4417209<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,0,255,1)","dash":"solid"},"hoveron":"points","name":"unemploy_shock_diff2","legendgroup":"unemploy_shock_diff2","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1,2,16,17,18,19,20,21,3,4,5,6,7,8,9,10,11,12,13,14,15],"y":[0.117502480457477,0.107578801495555,1.10260400563082,15.3111452953042,27.583867514515,15.3335398491714,6.61460757002231,4.44172090712996,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["ci_lower:  0.02095645<br />ci_upper:  0.2140485<br />width: 0.5<br />colour: black<br />month: 2019-01<br />estimate:  0.1175025<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower: -0.01037220<br />ci_upper:  0.2255298<br />width: 0.5<br />colour: black<br />month: 2019-02<br />estimate:  0.1075788<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower: -0.12256161<br />ci_upper:  2.3277696<br />width: 0.5<br />colour: black<br />month: 2020-04<br />estimate:  1.1026040<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  3.61157476<br />ci_upper: 27.0107158<br />width: 0.5<br />colour: black<br />month: 2020-05<br />estimate: 15.3111453<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower: 11.87500958<br />ci_upper: 43.2927255<br />width: 0.5<br />colour: black<br />month: 2020-06<br />estimate: 27.5838675<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  6.41038366<br />ci_upper: 24.2566960<br />width: 0.5<br />colour: black<br />month: 2020-07<br />estimate: 15.3335398<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  1.57969850<br />ci_upper: 11.6495166<br />width: 0.5<br />colour: black<br />month: 2020-08<br />estimate:  6.6146076<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  0.82848316<br />ci_upper:  8.0549587<br />width: 0.5<br />colour: black<br />month: 2020-09<br />estimate:  4.4417209<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  0.00000000<br />ci_upper:  0.0000000<br />width: 0.5<br />colour: black<br />month: 2019-03<br />estimate:  0.0000000<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />colour: black<br />month: 2019-04<br />estimate:         NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />colour: black<br />month: 2019-05<br />estimate:         NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />colour: black<br />month: 2019-06<br />estimate:         NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />colour: black<br />month: 2019-07<br />estimate:         NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />colour: black<br />month: 2019-08<br />estimate:         NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />colour: black<br />month: 2019-09<br />estimate:         NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />colour: black<br />month: 2019-10<br />estimate:         NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />colour: black<br />month: 2019-11<br />estimate:         NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />colour: black<br />month: 2019-12<br />estimate:         NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />colour: black<br />month: 2020-01<br />estimate:         NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />colour: black<br />month: 2020-02<br />estimate:         NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />colour: black<br />month: 2020-03<br />estimate:         NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.0965460256172193,0.117951002400574,1.22516561347945,11.6995705325855,15.7088579376959,8.9231561842299,5.03490906753243,3.61323775137512,0,null,null,null,null,null,null,null,null,null,null,null,null],"arrayminus":[0.0965460256172193,0.117951002400574,1.22516561347945,11.6995705325855,15.7088579376959,8.9231561842299,5.03490906753243,3.61323775137512,0,null,null,null,null,null,null,null,null,null,null,null,null],"type":"data","width":1.18867924528302,"symmetric":false,"color":"rgba(0,0,0,1)"},"name":"unemploy_shock_diff2","legendgroup":"unemploy_shock_diff2","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-2.29332596085161,45.4634898052139],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":30.8841843088418},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"jukyo_number_WLS","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-2.29332596085161,45.4634898052139],"tickmode":"array","ticktext":["0","10","20","30","40"],"tickvals":[0,10,20,30,40],"categoryorder":"array","categoryarray":["0","10","20","30","40"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","showSendToCloud":false},"source":"A","attrs":{"441133cecdbc":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"44114e250c36":{"x":{},"y":{},"colour":{},"shape":{}},"44116244d54e":{"ymin":{},"ymax":{},"width":{},"colour":{},"x":{},"y":{},"colour.1":{},"shape":{}},"441115102649":{"yintercept":{}},"441157418d6c":{"xintercept":{}}},"cur_data":"441133cecdbc","visdat":{"441133cecdbc":["function (y) ","x"],"44114e250c36":["function (y) ","x"],"44116244d54e":["function (y) ","x"],"441115102649":["function (y) ","x"],"441157418d6c":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<div id="wls-no-trends-figure-5-f-table-c.6-5" class="section level2" number="5.6">
<h2><span class="header-section-number">5.6</span> WLS, no trends, Figure 5 (f) &amp; Table C.6 (5)</h2>
<ul>
<li>Y=Housing Security Benefit, with covariates</li>
</ul>
<div class="sourceCode" id="cb25"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb25-1"><a href="#cb25-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb25-2"><a href="#cb25-2" aria-hidden="true" tabindex="-1"></a>estimation_results  <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_jukyo_WLS_covar8Xcovid_months</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb25-3"><a href="#cb25-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>jukyo_number, </span>
<span id="cb25-4"><a href="#cb25-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>unemploy_shock_diff2)</span>
<span id="cb25-5"><a href="#cb25-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb25-6"><a href="#cb25-6" aria-hidden="true" tabindex="-1"></a>texreg<span class="sc">::</span><span class="fu">screenreg</span>(<span class="at">l =</span> estimation_results , <span class="at">include.ci =</span> <span class="cn">FALSE</span>, <span class="at">digits=</span><span class="dv">3</span>)</span></code></pre></div>
<pre><code>## 
## ====================================================================
##                                                         Model 1     
## --------------------------------------------------------------------
## treat_var:date_2019_01                                     0.118    
##                                                           (0.062)   
## treat_var:date_2019_02                                     0.108    
##                                                           (0.075)   
## treat_var:date_2020_04                                    -1.072    
##                                                           (0.807)   
## treat_var:date_2020_05                                    -5.270    
##                                                           (3.709)   
## treat_var:date_2020_06                                    -4.337    
##                                                           (2.750)   
## treat_var:date_2020_07                                    -1.145    
##                                                           (2.236)   
## treat_var:date_2020_08                                    -1.958    
##                                                           (0.986)   
## treat_var:date_2020_09                                    -1.155    
##                                                           (0.682)   
## date_2020_04:google_mobility_index_2020may                -0.024    
##                                                           (0.148)   
## date_2020_05:google_mobility_index_2020may                -0.060    
##                                                           (0.712)   
## date_2020_06:google_mobility_index_2020may                -1.568 *  
##                                                           (0.752)   
## date_2020_07:google_mobility_index_2020may                -0.943    
##                                                           (0.591)   
## date_2020_08:google_mobility_index_2020may                -0.504 *  
##                                                           (0.241)   
## date_2020_09:google_mobility_index_2020may                -0.319    
##                                                           (0.164)   
## date_2020_04:infection_rate_cumulative2020jun              0.002    
##                                                           (0.073)   
## date_2020_05:infection_rate_cumulative2020jun              0.551    
##                                                           (0.445)   
## date_2020_06:infection_rate_cumulative2020jun              0.415    
##                                                           (0.404)   
## date_2020_07:infection_rate_cumulative2020jun              0.406    
##                                                           (0.313)   
## date_2020_08:infection_rate_cumulative2020jun              0.291 *  
##                                                           (0.141)   
## date_2020_09:infection_rate_cumulative2020jun              0.209    
##                                                           (0.133)   
## date_2020_04:death_rate_cumulative2020jun                  0.478    
##                                                           (0.679)   
## date_2020_05:death_rate_cumulative2020jun                  0.226    
##                                                           (4.439)   
## date_2020_06:death_rate_cumulative2020jun                 -2.383    
##                                                           (4.129)   
## date_2020_07:death_rate_cumulative2020jun                 -3.733    
##                                                           (3.080)   
## date_2020_08:death_rate_cumulative2020jun                 -2.790    
##                                                           (1.546)   
## date_2020_09:death_rate_cumulative2020jun                 -1.978    
##                                                           (1.304)   
## date_2020_04:Population_per_1_km_2_of_inhabitable_area     0.000    
##                                                           (0.000)   
## date_2020_05:Population_per_1_km_2_of_inhabitable_area     0.003 ** 
##                                                           (0.001)   
## date_2020_06:Population_per_1_km_2_of_inhabitable_area     0.005 ***
##                                                           (0.001)   
## date_2020_07:Population_per_1_km_2_of_inhabitable_area     0.002    
##                                                           (0.001)   
## date_2020_08:Population_per_1_km_2_of_inhabitable_area     0.000    
##                                                           (0.000)   
## date_2020_09:Population_per_1_km_2_of_inhabitable_area     0.000    
##                                                           (0.000)   
## date_2020_04:Secondary_industry_ratio                    -23.782 *  
##                                                          (11.709)   
## date_2020_05:Secondary_industry_ratio                   -127.705    
##                                                          (65.888)   
## date_2020_06:Secondary_industry_ratio                   -109.665 ** 
##                                                          (36.380)   
## date_2020_07:Secondary_industry_ratio                    -15.060    
##                                                          (43.782)   
## date_2020_08:Secondary_industry_ratio                    -37.852 ** 
##                                                          (13.144)   
## date_2020_09:Secondary_industry_ratio                    -30.531 ** 
##                                                          (10.076)   
## date_2020_04:Tertiary_industry_ratio                     -12.907    
##                                                          (12.016)   
## date_2020_05:Tertiary_industry_ratio                     -56.344    
##                                                          (75.774)   
## date_2020_06:Tertiary_industry_ratio                     -49.819    
##                                                          (50.876)   
## date_2020_07:Tertiary_industry_ratio                     -14.300    
##                                                          (54.598)   
## date_2020_08:Tertiary_industry_ratio                     -31.769    
##                                                          (19.553)   
## date_2020_09:Tertiary_industry_ratio                     -33.438 *  
##                                                          (13.683)   
## date_2020_04:Total_population                             -0.002    
##                                                           (0.001)   
## date_2020_05:Total_population                             -0.026 *  
##                                                           (0.011)   
## date_2020_06:Total_population                             -0.026 ** 
##                                                           (0.008)   
## date_2020_07:Total_population                             -0.003    
##                                                           (0.007)   
## date_2020_08:Total_population                             -0.003    
##                                                           (0.002)   
## date_2020_09:Total_population                             -0.003    
##                                                           (0.002)   
## date_2020_04:Ratio_of_aged_population                     -0.054    
##                                                           (0.088)   
## date_2020_05:Ratio_of_aged_population                     -0.913 *  
##                                                           (0.415)   
## date_2020_06:Ratio_of_aged_population                     -0.504    
##                                                           (0.361)   
## date_2020_07:Ratio_of_aged_population                     -0.102    
##                                                           (0.272)   
## date_2020_08:Ratio_of_aged_population                     -0.165    
##                                                           (0.118)   
## date_2020_09:Ratio_of_aged_population                     -0.145    
##                                                           (0.091)   
## --------------------------------------------------------------------
## R^2                                                        0.972    
## Adj. R^2                                                   0.963    
## Num. obs.                                                423        
## RMSE                                                     140.039    
## N Clusters                                                47        
## ====================================================================
## *** p &lt; 0.001; ** p &lt; 0.01; * p &lt; 0.05</code></pre>
<div class="sourceCode" id="cb27"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb27-1"><a href="#cb27-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb27-2"><a href="#cb27-2" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_jukyo</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb27-3"><a href="#cb27-3" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;unemploy_shock_diff2&quot;</span>,</span>
<span id="cb27-4"><a href="#cb27-4" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;jukyo_number_WLS&quot;</span>)</span>
<span id="cb27-5"><a href="#cb27-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb27-6"><a href="#cb27-6" aria-hidden="true" tabindex="-1"></a><span class="co"># Event study graph</span></span>
<span id="cb27-7"><a href="#cb27-7" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_WLS_covar <span class="ot">&lt;-</span> <span class="fu">event_study_graph_jukyo</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb27-8"><a href="#cb27-8" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;jukyo_number_WLS&quot;</span>)</span>
<span id="cb27-9"><a href="#cb27-9" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_jukyo_number_WLS_covar)</span></code></pre></div>
<div id="htmlwidget-19d6282643c84df61b19" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-19d6282643c84df61b19">{"x":{"data":[{"x":[1,2,16,17,18,19,20,21,3,4,5,6,7,8,9,10,11,12,13,14,15],"y":[0.117502480457485,0.107578801495557,-1.07163584195625,-5.27037877436258,-4.33719465732501,-1.1449910286866,-1.95842718198216,-1.1545667850312,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["month: 2019-01<br />estimate:  0.1175025<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-02<br />estimate:  0.1075788<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-04<br />estimate: -1.0716358<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-05<br />estimate: -5.2703788<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-06<br />estimate: -4.3371947<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-07<br />estimate: -1.1449910<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-08<br />estimate: -1.9584272<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-09<br />estimate: -1.1545668<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-03<br />estimate:  0.0000000<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-04<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-05<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-06<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-07<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-08<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-09<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-10<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-11<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-12<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-01<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-02<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-03<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,0,255,1)","opacity":1,"size":9.4488188976378,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(0,0,255,1)"}},"hoveron":"points","name":"unemploy_shock_diff2","legendgroup":"unemploy_shock_diff2","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"y":[0.117502480457485,0.107578801495557,0,null,null,null,null,null,null,null,null,null,null,null,null,-1.07163584195625,-5.27037877436258,-4.33719465732501,-1.1449910286866,-1.95842718198216,-1.1545667850312],"text":["month: 2019-01<br />estimate:  0.1175025<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-02<br />estimate:  0.1075788<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-03<br />estimate:  0.0000000<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-04<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-05<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-06<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-07<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-08<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-09<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-10<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-11<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2019-12<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-01<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-02<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-03<br />estimate:         NA<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-04<br />estimate: -1.0716358<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-05<br />estimate: -5.2703788<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-06<br />estimate: -4.3371947<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-07<br />estimate: -1.1449910<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-08<br />estimate: -1.9584272<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","month: 2020-09<br />estimate: -1.1545668<br />label: blue<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,0,255,1)","dash":"solid"},"hoveron":"points","name":"unemploy_shock_diff2","legendgroup":"unemploy_shock_diff2","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1,2,16,17,18,19,20,21,3,4,5,6,7,8,9,10,11,12,13,14,15],"y":[0.117502480457485,0.107578801495557,-1.07163584195625,-5.27037877436258,-4.33719465732501,-1.1449910286866,-1.95842718198216,-1.1545667850312,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["ci_lower:   0.01379541<br />ci_upper:  0.22120955<br />width: 0.5<br />colour: black<br />month: 2019-01<br />estimate:  0.1175025<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -0.01912090<br />ci_upper:  0.23427850<br />width: 0.5<br />colour: black<br />month: 2019-02<br />estimate:  0.1075788<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -2.42643506<br />ci_upper:  0.28316338<br />width: 0.5<br />colour: black<br />month: 2020-04<br />estimate: -1.0716358<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower: -11.49599951<br />ci_upper:  0.95524196<br />width: 0.5<br />colour: black<br />month: 2020-05<br />estimate: -5.2703788<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -8.95396365<br />ci_upper:  0.27957434<br />width: 0.5<br />colour: black<br />month: 2020-06<br />estimate: -4.3371947<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -4.89836014<br />ci_upper:  2.60837808<br />width: 0.5<br />colour: black<br />month: 2020-07<br />estimate: -1.1449910<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -3.61406169<br />ci_upper: -0.30279267<br />width: 0.5<br />colour: black<br />month: 2020-08<br />estimate: -1.9584272<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:  -2.29894966<br />ci_upper: -0.01018391<br />width: 0.5<br />colour: black<br />month: 2020-09<br />estimate: -1.1545668<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:   0.00000000<br />ci_upper:  0.00000000<br />width: 0.5<br />colour: black<br />month: 2019-03<br />estimate:  0.0000000<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:           NA<br />ci_upper:          NA<br />width: 0.5<br />colour: black<br />month: 2019-04<br />estimate:         NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:           NA<br />ci_upper:          NA<br />width: 0.5<br />colour: black<br />month: 2019-05<br />estimate:         NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:           NA<br />ci_upper:          NA<br />width: 0.5<br />colour: black<br />month: 2019-06<br />estimate:         NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:           NA<br />ci_upper:          NA<br />width: 0.5<br />colour: black<br />month: 2019-07<br />estimate:         NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:           NA<br />ci_upper:          NA<br />width: 0.5<br />colour: black<br />month: 2019-08<br />estimate:         NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:           NA<br />ci_upper:          NA<br />width: 0.5<br />colour: black<br />month: 2019-09<br />estimate:         NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:           NA<br />ci_upper:          NA<br />width: 0.5<br />colour: black<br />month: 2019-10<br />estimate:         NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:           NA<br />ci_upper:          NA<br />width: 0.5<br />colour: black<br />month: 2019-11<br />estimate:         NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:           NA<br />ci_upper:          NA<br />width: 0.5<br />colour: black<br />month: 2019-12<br />estimate:         NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:           NA<br />ci_upper:          NA<br />width: 0.5<br />colour: black<br />month: 2020-01<br />estimate:         NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:           NA<br />ci_upper:          NA<br />width: 0.5<br />colour: black<br />month: 2020-02<br />estimate:         NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2","ci_lower:           NA<br />ci_upper:          NA<br />width: 0.5<br />colour: black<br />month: 2020-03<br />estimate:         NA<br />label: black<br />label: unemploy_shock_diff2<br />label: unemploy_shock_diff2"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.103707067460696,0.126699700841116,1.35479921867115,6.22562073479571,4.61676899560999,3.75336910940808,1.65563450754365,1.14438287602938,0,null,null,null,null,null,null,null,null,null,null,null,null],"arrayminus":[0.103707067460696,0.126699700841116,1.35479921867115,6.22562073479571,4.61676899560999,3.75336910940808,1.65563450754365,1.14438287602938,0,null,null,null,null,null,null,null,null,null,null,null,null],"type":"data","width":1.18867924528302,"symmetric":false,"color":"rgba(0,0,0,1)"},"name":"unemploy_shock_diff2","legendgroup":"unemploy_shock_diff2","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-12.2012183886523,3.31359696021547],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":38.854296388543},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"jukyo_number_WLS","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-12.2012183886523,3.31359696021547],"tickmode":"array","ticktext":["-12","-8","-4","0"],"tickvals":[-12,-8,-4,0],"categoryorder":"array","categoryarray":["-12","-8","-4","0"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","showSendToCloud":false},"source":"A","attrs":{"441165db4a43":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"44111fe8a8f3":{"x":{},"y":{},"colour":{},"shape":{}},"441163abf9e2":{"ymin":{},"ymax":{},"width":{},"colour":{},"x":{},"y":{},"colour.1":{},"shape":{}},"44112fa2978d":{"yintercept":{}},"44115b8bc269":{"xintercept":{}}},"cur_data":"441165db4a43","visdat":{"441165db4a43":["function (y) ","x"],"44111fe8a8f3":["function (y) ","x"],"441163abf9e2":["function (y) ","x"],"44112fa2978d":["function (y) ","x"],"44115b8bc269":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
</div>
<div id="y-emergency-small-amount-funds緊急小口の決定件数" class="section level1" number="6">
<h1><span class="header-section-number">6</span> Y = emergency small amount funds/緊急小口の決定件数</h1>
<div id="ols-no-trends" class="section level2" number="6.1">
<h2><span class="header-section-number">6.1</span> OLS, no trends</h2>
<div class="sourceCode" id="cb28"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb28-1"><a href="#cb28-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb28-2"><a href="#cb28-2" aria-hidden="true" tabindex="-1"></a>estimation_results <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_OLS_notrend</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb28-3"><a href="#cb28-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>koguchi_number, </span>
<span id="cb28-4"><a href="#cb28-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>unemploy_shock_diff2)</span>
<span id="cb28-5"><a href="#cb28-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb28-6"><a href="#cb28-6" aria-hidden="true" tabindex="-1"></a><span class="co">#texreg::screenreg(l = estimation_results, include.ci = FALSE, digits=3)</span></span>
<span id="cb28-7"><a href="#cb28-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb28-8"><a href="#cb28-8" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb28-9"><a href="#cb28-9" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_loan</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb28-10"><a href="#cb28-10" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;unemploy_shock_diff2&quot;</span>,</span>
<span id="cb28-11"><a href="#cb28-11" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;koguchi_number_OLS&quot;</span>)</span>
<span id="cb28-12"><a href="#cb28-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb28-13"><a href="#cb28-13" aria-hidden="true" tabindex="-1"></a><span class="co"># graph</span></span>
<span id="cb28-14"><a href="#cb28-14" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_OLS <span class="ot">&lt;-</span> <span class="fu">event_study_graph_2nd_safetynet</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb28-15"><a href="#cb28-15" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;koguchi_number_OLS&quot;</span>)</span>
<span id="cb28-16"><a href="#cb28-16" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_OLS </span></code></pre></div>
<pre><code>## Warning: Removed 2 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,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QIDARAQEBitw0UUXpaeffrqa7Q1veENaaaWVqvs2xrbAz3/+8/SPf/yjepMbbLBBWnHFFav7w7nhvTacmqO3rAsuuCD961//qt7AhhtumJZffvnqvo3eELj77rtT/M5eccUV6dFHH01/+9vf0hNPPJGmTJmSlltuuerPOuusk972trelCRMmdNTwW2+9Nd188801ZbzrXe9KkyZNqjnWzZ177rknzZw5M1111VXVe37qqafSK1/5yrTYYovlP6uttlp+v29605vSxIn+t6ubz0PZBAgQIECAAAECBJoJzNWXpWYnHSfQSGCttdaq+aPzlFNOSXvuuWejSx0bgwJrrLFGuv3226t39p3vfCftuuuu1f3h3PBeG07N0VtWfMESwbVK+v73v5923nnnyq7XERSYM2dOOuOMM9JXvvKVdOedd7bdkmWXXTbttdde6cMf/nCaNm1a2/mKFx555JHpkEMOKR7Kv5yJ4GO3049//ON02GGH1XwWDlRnBILf+973psMPPzxNnTp1oMudJ0CAAAECBAgQIEBgGAUMgR9GTEURIECAAIHxIhA9H9dcc820++67Dyr4GT4PPPBA+sxnPpOWWWaZtP/++6cXX3xxVLBFIH7jjTdOO+2006CCn3Fz0XP+m9/8Zlp55ZXz11FxwxpJgAABAgQIECBAYIwICICOkQfpNggQIECAQFkCX/ziF9PWW2+d/vznP7escp555ml5ftasWenYY49Nm2++eXryySdbXjvSJx966KG02Wab5UP8O2nL3//+9/TRj340HXrooZ0UIy8BAgQIECBAgAABAoMQMBnVILBcSoAAAQIExrPAf/7zn3zY+llnndWPYa655kr/+7//mwdG3/KWt6RXvepV+VyYzz33XLr33nvzn4svvjh997vfTXGsmC6//PK07rrrpp/+9Kfp9a9/ffFUT2z/+9//TjNmzEgPPvhgv/ZstNFG6d3vfnd+v3HPSy65ZHrmmWfSX//61/zn6quvTjFtQ30v1yOOOCItscQSeTC0X6EOECBAgAABAgQIECAwrAICoMPKqTACBIZTYO+9906PP/54tcgIkEgECIycwIEHHpgaBT/f+ta3pqOOOiqtvfba/Ro333zzpde85jX5zzve8Y4UvUdj7uiYw7MYCI2AYfSw/NOf/pSWXnrpfuWM5IFTTz2135D3+Dz6+te/nt74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Vak9LhBDzWOOzfiJFAsuxXD0dlPM31ZM66yzTj5faPGYbQIECBAgQIAAAQIECBAgQIAAgZEXsAjSyD8DLRgBgfq52GJuzJhHsJ10xhlnpJjvs5je+973FndtEyBAgAABAgQIECBAgAABAgQI9IiAAGiPPAjNKFcghqsvssgi1UpjRfdY3f2iiy6qHqvfeOaZZ/JV1T/84Q/nCwhVzq+55pppjz32qOx6JUCAAAECBAgQIECAAAECBAgQ6CEBiyD10MPQlHIFYsj7FltskebMmVNTcQQ03/SmN+UrFS+44IL5ytKxknEERyMIWkzzzjtvuuGGG1LkkcoTOOuss9Ldd99dWoUR9I6VqyUCIyngfT+S+uomQIAAAQIECBAgQGA0CwiAjuanp+0dCxx33HHpk5/85JDKWXLJJdO5556bNt544yHll2noAjNmzEiXXHLJ0AsYZM6rrroqbbjhhoPM5XICwyvgfT+8nkojQIAAAQIECBAgQGD8CBgCP36etTttILDffvul888/P6233noNzjY+NGHChLTDDjukm2++WfCzMZGjBAgQIECAAAECBAgQIECAAIGeEbAKfM88Cg0ZKYFtt902xU+sBP+9730v3Xvvven+++9PDz/8cHrppZfy1d2XWmqptMwyy6R3vOMdaeedd05LLLHESDVXvZnAjjvumF7/+teXZrH00kuXVpeKCDQT8L5vJuM4AQIECBAgQIAAAQIEWgsYAt/ax9lxLBALI/373/9OCy+88DhWcOsECBAgQIAAAQIECBAgQIAAgdEtIAA6up+f1hMgQIAAAQIECBAgQIAAAQIECBAg0ELAHKAtcJwiQIAAAQIECBAgQIAAAQIECBAgQGB0CwiAju7np/UECBAgQIAAAQIECBAgQIAAAQIECLQQEABtgeMUAQIECBAgQIAAAQIECBAgQIAAAQKjW0AAdHQ/P60nQIAAAQIECBAgQIAAAQIECBAgQKCFgABoCxynCBAgQIAAAQIECBAgQIAAAQIECBAY3QICoKP7+Wk9AQIECBAgQIAAAQIECBAgQIAAAQItBARAW+A4RYAAAQIECBAgQIAAAQIECBAgQIDA6BYQAB3dz0/rCRAgQIAAAQIECBAgQIAAAQIECBBoISAA2gLHKQIECBAgQIAAAQIECBAgQIAAAQIERreAAOjofn5aT4AAAQIECBAgQIAAAQIECBAgQIBACwEB0BY4ThEgQIAAAQIECBAgQIAAAQIECBAgMLoFBEBH9/PTegIECBAgQIAAAQIECBAgQIAAAQIEWggIgLbAcYoAAQIECBAgQIAAAQIECBAgQIAAgdEtIAA6up+f1hMgQIAAAQIECBAgQIAAAQIECBAg0EJAALQFjlMECBAgQIAAAQIECBAgQIAAAQIECIxuAQHQ0f38tJ4AAQIECBAgQIAAAQIECBAgQIAAgRYCAqAtcJwiQIAAAQIECBAgQIAAAQIECBAgQGB0C0wc3c3X+m4LHHPMMenaa6+tVvO1r30trbjiitV9GwQIECBAgAABAgTGisDzzz+fzjrrrIa3s9NOO6WFF1644TkHCRAgQIAAgd4WmKsvS73dRK0bSYEddtghnXfeedUm/P73v0/rrLNOdd8GAQIECBAgQIAAgbEi8OSTT6YNN9yw4e3MnDkzTZ8+veE5BwkQIECAAIHeFjAEvrefj9YRIECAAAECBAgQIECAAAECBAgQINCBgABoB3iyEiBAgAABAgQIECBAgAABAgQIECDQ2wICoL39fLSOAAECBAgQIECAAAECBAgQIECAAIEOBARAO8CTlQABAgQIECBAgAABAgQIECBAgACB3hYQAO3t56N1BAgQIECAAAECBAgQIECAAAECBAh0ICAA2gGerAQIECBAgAABAgQIECBAgAABAgQI9LaAAGhvPx+tI0CAAAECBAgQIECAAAECBAgQIECgAwEB0A7wZCVAgAABAgQIECBAgAABAgQIECBAoLcFBEB7+/loHQECBAgQIECAAAECBAgQIECAAAECHQgIgHaAJysBAgQIECBAgAABAgQIECBAgAABAr0tIADa289H6wgQIECAAAECBAgQIECAAAECBAgQ6EBAALQDPFkJECBAgAABAgQIECBAgAABAgQIEOhtAQHQ3n4+WkeAAAECBAgQIECAAAECBAgQIECAQAcCAqAd4MlKgAABAgQIECBAgAABAgQIECBAgEBvCwiA9vbz0ToCBAgQIECAAAECBAgQIECAAAECBDoQEADtAE9WAgQIECBAgAABAgQIECBAgAABAgR6W0AAtLefj9YRIECAAAECBAgQIECAAAECBAgQINCBgABoB3iyEiBAgAABAgQIECBAgAABAgQIECDQ2wICoL39fLSOAAECBAgQIECAAAECBAgQIECAAIEOBARAO8CTlQABAgQIECBAgAABAgQIECBAgACB3haY2NvN0zoCBAgQIECAAAECBAiUIzDPPPOkzTbbrGFl888/f8PjDhIgQIAAAQK9LyAA2vvPSAsJECBAgAABAgQIEChBYKGFFkonn3xyCTWpggABAgQIEChTwBD4MrXVRYAAAQIECBAgQIAAAQIECBAgQIBAqQICoKVyq4wAAQIECBAgQIAAAQIECBAgQIAAgTIFBEDL1FYXAQIECBAgQIAAAQIECBAgQIAAAQKlCgiAlsqtMgIECBAgQIAAAQIECBAgQIAAAQIEyhQQAC1TW10ECBAgQIAAAQIECBAgQIAAAQIECJQqYBX4UrlVRoAAAQIECBAgQIAAAQIECBQFbrjhhjRz5szioZrtiRMnpkMOOaTmmB0CBAgMRkAAdDBariVAgAABAgQIECBAgAABAgSGVeB3v/tdOvzww5uWOe+88wqANtVxggCBdgQMgW9HyTUECBAgQIAAAQIECBAgQIAAAQIECIxKAT1AR+Vj02gCBAgQIECAAAECBAgQIDA2BGbMmJF+8IMf5Dfz9a9/PV199dX59lFHHZWWX375NGHChLFxo+6CAIERExAAHTF6FRMgQIAAAQIECBAgQIAAAQLTp09P8RPpwgsvrAZA3/rWt6a1114bEAECBDoWMAS+Y0IFECBAgAABAgQIECBAgAABAgQIECDQqwICoL36ZLSLAAECBAgQIECAAAECBAgQIECAAIGOBQRAOyZUAAECBAgQIECAAAECBAgQIECAAAECvSogANqrT0a7CBAgQIAAAQIECBAgQIAAAQIECBDoWEAAtGNCBRAgQIAAAQIECBAgQIAAAQIECBAg0KsCAqC9+mS0iwABAgQIECBAgAABAgQIECBAgACBjgUEQDsmVAABAgQIECBAgAABAgQIECBAgAABAr0qIADaq09GuwgQIECAAAECBAgQIECAAAECBAgQ6FhAALRjQgUQIECAAAECBAgQIECAAAECBAgQINCrAgKgvfpktIsAAQIECBAgQIAAAQIECBAgQIAAgY4FBEA7JlQAAQIECBAgQIAAAQIECBAgQIAAAQK9KiAA2qtPRrsIECBAgAABAgQIECBAgAABAgQIEOhYQAC0Y0IFECBAgAABAgQIECBAgAABAgQIECDQqwITe7Vh2kWAAAECBAgQIECAAIEyBWbPnp1uuOGGhlWutdZaab755mt4zkECBAgQIECgtwUEQHv7+WgdAQIECBAgQIAAAQIlCTzzzDNpt912a1jbzJkz0/Tp0xuec5AAAQIECBDobQFD4Hv7+WgdAQIECBAgQIAAAQIECBAgQIAAAQIdCAiAdoAnKwECBAgQIECAAAECBAgQIECAAAECvS0gANrbz0frCBAgQIAAAQIECBAgQIAAAQIECBDoQEAAtAM8WQkQIECAAAECBAgQIECAAAECBAgQ6G0BAdDefj5aR4AAAQIECBAgQIAAAQIECBAgQIBABwICoB3gyUqAAAECBAgQIECAAAECBAgQIECAQG8LCID29vPROgIECBAgQIAAAQIECBAgQIAAAQIEOhAQAO0AT1YCBAgQIECAAAECBAgQIECAAAECBHpbQAC0t5+P1hEgQIAAAQIECBAgQIAAAQIECBAg0IGAAGgHeLISIECAAAECBAgQIECAAAECBAgQINDbAgKgvf18tI4AAQIECBAgQIAAAQIECBAgQIAAgQ4EBEA7wJOVAAECBAgQIECAAAECBAgQIECAAIHeFhAA7e3no3UECBAgQIAAAQIECBAgQIAAAQIECHQgIADaAZ6sBAgQIECAAAECBAgQIECAAAECBAj0toAAaG8/H60jQIAAAQIECBAgQIAAAQIECBAgQKADAQHQDvBkJUCAAAECBAgQIECAAAECBAgQIECgtwUEQHv7+WgdAQIECBAgQIAAAQIECBAgQIAAAQIdCAiAdoAnKwECBAgQIECAAAECBAgQIECAAAECvS0gANrbz0frCBAgQIAAAQIECBAgQIAAAQIECBDoQEAAtAM8WQkQIECAAAECBAgQIECAAAECBAgQ6G0BAdDefj5aR4AAAQIECBAgQIAAAQIECBAgQIBABwICoB3gyUqAAAECBAgQIECAAAECBAgQIECAQG8LCID29vPROgIECBAgQIAAAQIECBAgQIAAAQIEOhCY2EFeWQkQIECAAAECBAgQIDBmBCZOnJjWXnvthvczefLkhscdJECAAAECBHpfQAC095+RFhIgQIAAAQIECBAgUILAlClT0rnnnltCTaogQIAAAQIEyhQwBL5MbXURIECAAAECBAgQIECAAAECBAgQIFCqgABoqdwqI0CAAAECBAgQIECAAAECBAgQIECgTAEB0DK11UWAAAECBAgQIECAAAECBAgQIECAQKkCAqClcquMAAECBAgQIECAAAECBAgQIECAAIEyBQRAy9RWFwECBAgQIECAAAECBAgQIECAAAECpQoIgJbKrTICBAgQIECAAAECBAgQIECAAAECBMoUEAAtU1tdBAgQIECAAAECBAgQIECAAAECBAiUKiAAWiq3yggQIECAAAECBAgQIECAAAECBAgQKFNAALRMbXURIECAAAECBAgQIECAAAECBAgQIFCqgABoqdwqI0CAAAECBAgQIECAAAECBAgQIECgTAEB0DK11UWAAAECBAgQIECAAAECBAgQIECAQKkCAqClcquMAAECBAgQIECAAAECBAgQIECAAIEyBQRAy9RWFwECBAgQIECAAAECBAgQIECAAAECpQpMLLU2lREgQIAAAQIECBAgQIAAAQIExpHAE088kR577LGmdzxp0qS06qqrNj3vBAECnQsIgHZuqAQCBAgQIECAAAECBAgQIECAQEOBU089NR166KENz8XBJZZYIj366KNNzztBgEDnAgKggzQ84IAD0vXXX5/23XfftMMOOwyY++qrr07XXHPNgNfFBZMnT0777LNP02vnzJmTfvGLX6RLL700Pfjgg+m5555Lq622WlpzzTXTBhts4BujpnJOECBAgAABAgQIECBAgAABAgQIjFcBAdBBPPnzzjsvD34OIku65JJL0m9+85u2ssw///xNA6DRZX7//fdP9913X01ZN9xwQ4qfM888Mx188MFpxowZNeftECBAgAABAgQIECBAgAABAiMnsPrqq6cdd9wxb8CVV15ZHQ6/5ZZbpgUWWCBNmTJl5BqnZgLjREAAtM0H/atf/Sodf/zxbV798mV33XXXyztD3Hr22WfTgQceWA1+Tp8+PW244YZp2rRp6eabb05XXHFFmj17djriiCNSXLv99tsPsSbZCBAgQIAAAQIECBAgQIAAgeEUiL/RK3+nv+1tb8tHdkb5J510UlphhRWGsyplESDQREAAtAlM5fCsWbPS6aefnn74wx+mvr6+yuG2Xp9//vn00EMP5deuu+666ZBDDmmZb+655254/owzzkj33HNPfm7TTTfN5w6JSZIjbbPNNumWW25Jn/rUp/Lg54knnpg22mijNHXq1Py8/xAgQIAAAQIECBAgQIAAAQIECBAYzwKNI27jWaRw79G7cpdddknnnntueumllwpn2tuMoGUlaBpd3hdddNGWPwsvvHC/gp955pl04YUX5scXW2yxmuBn5eLXvva11QmVY57QyvWV814JECBAgAABAgQIECBAgAABAgQIjFcBAdAGTz6Clscee2w+H2elB+eyyy7b1qJHxeKKw99XWWWV4qm2ty+77LIUPUkjbbvttqnS87O+gBgSv8wyy+SHIwD64osv1l9inwABAgQIECBAgAABAgQIECBAgMC4ExAAbfDIo7fn+eefXz2z1VZb5cPgY+7NSpprrrkqm01fhyMAeuutt1bLX3/99avbjTZimH2kp556Kt14442NLnGMAAECBAgQIECAAAECBAgQIECAwLgSMAdoi8e93nrr5UPgY4j5UFIlABorui2++OJ5EdG79PHHH0+veMUr0itf+coBi73tttvyayLguuKKK7a8vhigvffee9NAAdOWhTlJgAABAgQIECBAgAABAgQIECBAYAwICIA2eIixGNEpp5yS1lhjjQZn2zsUc3FGEDJSDH//05/+lL773e/mCxa98MIL+fGY0zPmBt1rr73S0ksvnR+r/8/DDz+cH4oV3ydObP24KkHWyPDAAw/UF2WfAAECBAgQIECAAIEWAjGN1J133tnwiuiMMO+88zY85yABAgQIECDQ2wKtI2q93fautS56W3YS/IyGRQBy9uzZeRtjlfaPfOQj/dr7t7/9LcXPddddl/bee++0/fbb11wTc39WFl9qtEBSzcXZTvQ0raRYPKmd9Nvf/jY98sgjTS99+umn856qzz77rHlFmyo5QYAAAQIECBAgMBYE/vGPf6Ttttuu4a3MnDkzFUdcNbzIQQIECBAgQKAnBQRAu/RYKsPfo/gIZE6ePDm9/vWvT2uttVZaZJFF0n333Zcuv/zyPPgYPUKPO+64tOCCC6bNN9+82qIIOlZSO982F6+p9DKt5G/2es455+TtaHY+jkfP0gcffFAAtBWScwQIECBAgAABAgQIECBAgAABAj0pIADapcdSDIBOnTo1X1V++eWXr6lt1113TSeeeGL62c9+lh8/4YQTUixkVOnt+dxzz1Wvn2eeearbzTaK18yaNavZZY4TIECAAAECBAgQIECAAAECBAgQGDcCAqBdetTbbLNNPoz+0UcfTZtssklacskl+9UUvUL333//dMcdd6QImP7zn/9MP/rRj9Kee+6ZX1uc8zPmFB0oxZxFlVQMhlaOeSVAgAABAgQIECBAgAABAgQIECAw3gQEQLv0xF/1qlel+BkoTZgwIe22227p4IMPzi8t9hyNleIrqTKfaGW/0Wvxmvnnn7/RJf2OxRxHa6+9dr/jlQNnn312ipXo//Of/1QOeSVAgAABAgQIECBAgAABAgQIECAwagQEQHvgURUnU6+sHB/Nmm+++aqtK84HWj1Yt1EcMt9uAHSLLbaoK6V295JLLkmxEJJEgAABAgQIECBAgAABAgQIECBAYDQKzD0aGz3W2jxt2rTqLcUw+EqKRY0WXXTRfDdWix8oPf7449VLYqEliQABAgQIECBAgAABAgQIECBAgMB4FxAA7dI7IHpsPvTQQ+mee+4ZsIZicHOZZZapub6ycFL07vz73/9ec65+J+qrpNVWW62y6ZUAAQIECBAgQIAAAQIECBAgQIDAuBUQAO3Co49g5VZbbZXe8573pD322CMNtCL7/fffX23FsssuW92OjdVXX726/8c//rG63WjjlltuqR4u5qsetEGAAAECBAgQIECAAAECBAgQIEBgnAkIgHbhgcfcnZUAZCxMdP05uooPAABAAElEQVT117es5Zxzzqmef/Ob31zdjo1YQb6SLr744spmv9cY/n7TTTflx1dZZZVkCHw/IgcIECBAgAABAgQIECBAgAABAgTGoYAAaJceejGQecIJJ6R//etfDWv6yU9+km6++eb83EorrZQ233zzmuviWAQ0I1111VWpURA0epgeffTRac6cOfl1O++8c/7qPwQIECBAgAABAgQIECBAgAABAgTGu4AAaJfeATvttFNac80189Jjjs/dd989XX311SmGx7/44ovprrvuSkceeWSK4GikeeaZJ3384x9Pc801V75f/M9+++1X3Y08Z555ZnrkkUfycmLY+/77759+//vf59dEz9ONN964er0NAgQIECBAgAABAgQIECBAgAABAuNZYOJ4vvlu3vvEiRPT4Ycfngc1Y3Gihx9+OH3605/Oq4xzEQStpMUWWywPhq666qqVQzWva6yxRl7WUUcdlV544YX07W9/O/+ZMGFCtddnZFh66aXTMccck+aeW1y7BtAOAQIECBAgQIAAAQIECBAgQIDAuBUQKevio582bVo666yz0t57753mn3/+ak2V4OeUKVPSpptumgczmwU/K5k222yzdOqpp+bD4SsBzsqQ9wio7rjjjvn5KFMiQIAAAQIECBAgQIAAAQIECBAgQOC/AnqADuKdsPXWW6f4GUyaNGlSeu9735ve/e53p8ceeyw98MADKRZGWnnlldMSSywxmKLSCiuskAdLoxdoDKGPhY+WWmqpFCvHL7DAAoMqy8UECBAgQIAAAQIECBAgQIAAAQIExoOAAGhJTzl6bUawMn46TZMnT87nF63MMdppefITIECAAAECBAgQIECAAAECBAgQGKsChsCP1SfrvggQIECAAAECBAgQIECAAAECBAgQSAKg3gQECBAgQIAAAQIECBAgQIAAAQIECIxZAQHQMfto3RgBAgQIECBAgAABAgQIECBAgAABAgKg3gMECBAgQIAAAQIECBAgQIAAAQIECIxZAQHQMfto3RgBAgQIECBAgAABAgQIECBAgAABAgKg3gMECBAgQIAAAQIECBAgQIAAAQIECIxZAQHQMfto3RgBAgQIECBAgAABAgQIECBAgAABAgKg3gMECBAgQIAAAQIECBAgQIAAAQIECIxZgYlj9s7cGAECBAgQIECAAAECBAYhMPfcc6fll1++YY5JkyY1PO4gAQIECBAg0PsCAqC9/4y0kAABAgQIECBAgACBEgQWWWSR9Mtf/rKEmlRBgAABAgQIlClgCHyZ2uoiQIAAAQIECBAgQIAAAQIECBAgQKBUAQHQUrlVRoAAAQIECBAgQIAAAQIECBAgQIBAmQICoGVqq4sAAQIECBAgQIAAAQIECBAgQIAAgVIFBEBL5VYZAQIECBAgQIAAAQIECBAgQIAAAQJlCgiAlqmtLgIECBAgQIAAAQIECBAgQIAAAQIEShUQAC2VW2UECBAgQIAAAQIECBAgQIAAAQIECJQpIABapra6CBAgQIAAAQIECBAgQIAAAQIECBAoVUAAtFRulREgQIAAAQIECBAgQIAAAQIECBAgUKaAAGiZ2uoiQIAAAQIECBAgQIAAAQIECBAgQKBUAQHQUrlVRoAAAQIECBAgQIAAAQIECBAgQIBAmQICoGVqq4sAAQIECBAgQIAAAQIECBAgQIAAgVIFBEBL5VYZAQIECBAgQIAAAQIECBAgQIAAAQJlCgiAlqmtLgIECBAgQIAAAQIECBAgQIAAAQIEShUQAC2VW2UECBAgQIAAAQIECBAgQIAAAQIECJQpIABapra6CBAgQIAAAQIECBAgQIAAAQIECBAoVUAAtFRulREgQIAAAQIECBAgQIAAAQIECBAgUKaAAGiZ2uoiQIAAAQIECBAgQIAAAQIECBAgQKBUAQHQUrlVRoAAAQIECBAgQIAAAQIECBAgQIBAmQICoGVqq4sAAQIECBAgQIAAAQIECBAgQIAAgVIFBEBL5VYZAQIECBAgQIAAAQIECBAgQIAAAQJlCgiAlqmtLgIECBAgQIAAAQIECBAgQIAAAQIEShUQAC2VW2UECBAgQIAAAQIECBAgQIAAAQIECJQpIABapra6CBAgQIAAAQIECBAgQIAAAQIECBAoVWBiqbWpjAABAgQIECBAgAABAj0q8NJLL6XHH3+8YeumTZuWJk7051NDHAcJECBAgECPC/gXvMcfkOYRIECAAAECBAgQIFCOwNNPP5022WSThpXNnDkzTZ8+veE5BwkQIECAAIHeFjAEvrefj9YRIECAAAECBAgQIECAAAECBAgQINCBgABoB3iyEiBAgAABAgQIECBAgAABAgQIECDQ2wICoL39fLSOAAECBAgQIECAAAECBAgQIECAAIEOBARAO8CTlQABAgQIECBAgAABAgQIECBAgACB3hYQAO3t56N1BAgQIECAAAECBAgQIECAAAECBAh0ICAA2gGerAQIECBAgAABAgQIECBAgAABAgQI9LaAAGhvPx+tI0CAAAECBAgQIECAAAECBAgQIECgAwEB0A7wZCVAgAABAgQIECBAgAABAgQIECBAoLcFBEB7+/loHQECBAgQIECAAAECBAgQIECAAAECHQgIgHaAJysBAgQIECBAgAABAgQIECBAgAABAr0tIADa289H6wgQIECAAAECBAgQIECAAAECBAgQ6EBAALQDPFkJECBAgAABAgQIECBAgAABAgQIEOhtAQHQ3n4+WkeAAAECBAgQIECAAAECBAgQIECAQAcCAqAd4MlKgAABAgQIECBAgAABAgQIECBAgEBvCwiA9vbz0ToCBAgQIECAAAECBAgQIECAAAECBDoQEADtAE9WAgQIECBAgAABAgQIECBAgAABAgR6W0AAtLefj9YRIECAAAECBAgQIECAAAECBAgQINCBgABoB3iyEiBAgAABAgQIECBAgAABAgQIECDQ2wICoL39fLSOAAECBAgQIECAAAECBAgQIECAAIEOBARAO8CTlQABAgQIECBAgAABAgQIECBAgACB3hYQAO3t56N1BAgQIECAAAECBAgQIECAAAECBAh0ICAA2gGerAQIECBAgAABAgQIECBAgAABAgQI9LaAAGhvPx+tI0CAAAECBAgQIECAAAECBAgQIECgA4GJHeSVlQABAgQIECBAgAABAmNGYO65505TpkxpeD9xTiJAgAABAgRGp4AA6Oh8blpNgAABAgQIECBAgMAwCyyyyCLp+uuvH+ZSFUeAAAECBAiMtICvMUf6CaifAAECBAgQIECAAAECBAgQIECAAIGuCQiAdo1WwQQIECBAgAABAgQIECBAgAABAgQIjLSAAOhIPwH1EyBAgAABAgQIECBAgAABAgQIECDQNQEB0K7RKpgAAQIECBAgQIAAAQIECBAgQIAAgZEWEAAd6SegfgIECBAgQIAAAQIECBAgQIAAAQIEuiYgANo1WgUTIECAAAECBAgQIECAAAECBAgQIDDSAgKgI/0E1E+AAAECBAgQIECAAAECBAgQIECAQNcEBEC7RqtgAgQIECBAgAABAgQIECBAgAABAgRGWkAAdKSfgPoJECBAgAABAgQIECBAgAABAgQIEOiagABo12gVTIAAAQIECBAgQIAAAQIECBAgQIDASAsIgI70E1A/AQIECBAgQIAAAQIECBAgQIAAAQJdExAA7RqtggkQIECAAAECBAgQIECAAAECBAgQGGkBAdCRfgLqJ0CAAAECBAgQIECAAAECBAgQIECgawICoF2jVTABAgQIECBAgAABAgQIECBAgAABAiMtIAA60k9A/QQIECBAgAABAgQIECBAgAABAgQIdE1AALRrtAomQIAAAQIECBAgQIAAAQIECBAgQGCkBQRAR/oJqJ8AAQIECBAgQIAAAQIECBAgQIAAga4JCIB2jVbBBAgQIECAAAECBAgQIECAAAECBAiMtIAA6Eg/AfUTIECAAAECBAgQIECAAAECBAgQINA1AQHQrtEqmAABAgQIECBAgAABAgQIECBAgACBkRYQAB3pJ6B+AgQIECBAgAABAgQIECBAgAABAgS6JiAA2jVaBRMgQIAAAQIECBAgQIAAAQIECBAgMNICAqAj/QTUT4AAAQIECBAgQIAAAQIECBAgQIBA1wQmdq1kBRMgQIAAAQIECBAgQGCUCTz//PMNWzx58uQ011xzNTznIAECBAgQINDbAgKgvf18tI4AAQIECBAgQIAAgZIEnnzyybThhhs2rG3mzJlp+vTpDc85SIAAAQIECPS2gCHwvf18tI4AAQIECBAgQIAAAQIECBAgQIAAgQ4EBEA7wJOVAAECBAgQIECAAAECBAgQIECAAIHeFhAA7e3no3UECBAgQIAAAQIECBAgQIAAAQIECHQgIADaAZ6sBAgQIECAAAECBAgQIECAAAECBAj0toAAaG8/H60jQIAAAQIECBAgQIAAAQIECBAgQKADAQHQDvBkJUCAAAECBAgQIECAAAECBAgQIECgtwUEQHv7+WgdAQIECBAgQIAAAQIECBAgQIAAAQIdCAiAdoAnKwECBAgQIECAAAECBAgQIECAAAECvS0gANrbz0frCBAgQIAAAQIECBAgQIAAAQIECBDoQEAAtAM8WQkQIECAAAECBAgQIECAAAECBAgQ6G0BAdDefj5aR4AAAQIECBAgQIAAAQIECBAgQIBABwICoB3gyUqAAAECBAgQIECAAAECBAgQIECAQG8LCID29vPROgIECBAgQIAAAQIECBAgQIAAAQIEOhAQAO0AT1YCBAgQIECAAAECBAgQIECAAAECBHpbQAC0t5+P1hEgQIAAAQIECBAgQIAAAQIECBAg0IGAAGgHeLISIECAAAECBAgQIECAAAECBAgQINDbAgKgvf18tI4AAQIECBAgQIAAAQIECBAgQIAAgQ4EBEA7wJOVAAECBAgQIECAAAECBAgQIECAAIHeFhAA7e3no3UECBAgQIAAAQIECBAgQIAAAQIECHQgIADaAZ6sBAgQIECAAAECBAgQIECAAAECBAj0toAAaG8/H60jQIAAAQIECBAgQIAAAQIECBAgQKADAQHQDvBkJUCAAAECBAgQIECAAAECBAgQIECgtwUEQHv7+WgdAQIECBAgQIAAAQIECBAgQIAAAQIdCAiAdoAnKwECBAgQIECAAAECBAgQIECAAAECvS0wsbebp3UECBAgQIAAAQIECBAoR2Dq1KnpL3/5SzmVqYUAAQIECBAoTUAP0NKoVUSAAAECBAgQIECAAAECBAgQIECAQNkCAqBli6uPAAECBAgQIECAAAECBAgQIECAAIHSBARAS6NWEQECBAgQIECAAAECBAgQIECAAAECZQsIgJYtrj4CBAgQIECAAAECBAgQIECAAAECBEoTEAAtjVpFBAgQIECAAAECBAgQIECAAAECBAiULSAAWra4+ggQIECAAAECBAgQIECAAAECBAgQKE1AALQ0ahURIECAAAECBAgQIECAAAECBAgQIFC2gABo2eLqI0CAAAECBAgQIECAAAECBAgQIECgNAEB0NKoVUSAAAECBAgQIECAAAECBAgQIECAQNkCAqBli6uPAAECBAgQIECAAAECBAgQIECAAIHSBARAS6NWEQECBAgQIECAAAECBAgQIECAAAECZQsIgJYtrj4CBAgQIECAAAECBAgQIECAAAECBEoTEAAtjVpFBAgQIECAAAECBAgQIECAAAECBAiULSAAWra4+ggQIECAAAECBAgQIECAAAECBAgQKE1AALQ0ahURIECAAAECBAgQIECAAAECBAgQIFC2gABo2eLqI0CAAAECBAgQIECAAAECBAgQIECgNAEB0NKoVUSAAAECBAgQIECAAAECBAgQIECAQNkCAqBli6uPAAECBAgQIECAAAECBAgQIECAAIHSBARAS6NWEQECBAgQIECAAAECBAgQIECAAAECZQsIgJYtrj4CBAgQIECAAAECBAgQIECAAAECBEoTEAAtjVpFBAgQIECAAAECBAgQIECAAAECBAiULSAAWra4+ggQIECAAAECBAgQIECAAAECBAgQKE1AALQ0ahURIECAAAECBAgQIECAAAECBAgQIFC2gABo2eLqI0CAAAECBAgQIECAAAECBAgQIECgNIGJpdWkIgIECBAgQIAAAQIECPSwwFNPPZU23XTThi08//zz04orrtjwnIMECBAgQIBAbwsIgPb289E6AgQIECBAgAABAgRKEujr60uzZs1qWFuckwgQIECAAIHRKWAI/Oh8blpNgAABAgQIECBAgAABAgQIECBAgEAbAgKgbSC5hAABAgQIECBAgAABAgQIECBAgACB0SkgADo6n5tWEyBAgAABAgQIECBAgAABAgQIECDQhoA5QNtAKl5ywAEHpOuvvz7tu+++aYcddiiearo9Z86c9Itf/CJdeuml6cEHH0zPPfdcWm211dKaa66ZNthgg7Tqqqs2zVs8MVzlFMu0TYAAAQIECBAgQIAAAQIECBAgQGAsCwiADuLpnnfeeXnwcxBZ0hNPPJH233//dN9999Vku+GGG1L8nHnmmenggw9OM2bMqDlfvzNc5dSXa58AAQIECBAgQIAAAQIECBAgQIDAWBYQAG3z6f7qV79Kxx9/fJtX//eyZ599Nh144IHV4Of06dPThhtumKZNm5ZuvvnmdMUVV6TZs2enI444IsW122+/fcPyh6uchoU7SIAAAQIECBAgQIAAAQIECBAgQGAMCwiADvBwZ82alU4//fT0wx/+MPX19Q1wde3pM844I91zzz35wU033TQdeuihadKkSfn+Nttsk2655Zb0qU99Kg9+nnjiiWmjjTZKU6dOrS0k2xuucvoV7AABAgQIECBAgAABAgQIECBAgACBMS5gEaQWDzh6ae6yyy7p3HPPTS+99FKLK/ufeuaZZ9KFF16Yn1hsscVqgp+Vq1/72tfmx2M/5vesXF85H6/DVU6xTNsECBAgQIAAAQIECBAgQIAAAQIExouAAGiDJx09PY899ti0zz77pIceeii/Ytlll2170aPIcNlll6Xnn38+z7vttttWe37mBwr/iSHxyyyzTH4kAqAvvvhi4ezwlVNTqB0CBAgQIECAAAECBAgQIECAAAEC40RAALTBg47enueff371zFZbbZUPg485PCtprrnmqmw2fL311lurx9dff/3qdqONddddNz/81FNPpRtvvLHmkuEqp6ZQOwQIECBAgAABAgQIECBAgAABAgTGiYAAaIsHvd5666VvfOMb6dOf/nSaPHlyiyv7n7rtttvygxEoXXHFFftfUDhSDKzee++9hTMpDVc5NYXaIUCAAAECBAgQIECAAAECBAgQIDBOBCyC1OBBzz333OmUU05Ja6yxRoOz7R16+OGH8wtjxfeJE1szL7744tVCH3jggep2bAxXOTWF2iFAgAABAgQIECBAgAABAgQIECAwTgRaR+bGCUL9bUavzU6CnzH3Z2XRpIUXXri++H77U6ZMqR6LRY8qabjKqZTX6HXPPfdMl19+eaNT1WMrr7xyevDBB6tzmlZP2CBAgAABAgQIECBAgAABAgQIECDQ4wKGwHfhAT377LPVUuedd97qdrON4jUvvPBC9bLhKqdaoA0CBAgQIECAAAECBAgQIECAAAEC40xAALQLD/y5556rljrPPPNUt5ttFK+ZNWtW9bLhKqdaoA0CBAgQIECAAAECBAgQIECAAAEC40zAEPguPPDinJ9z5swZsIYXX3yxek0xGDpc5VQLb7Cx6KKLpiWXXLLBmf8eevLJJ1MEYvv6+ppe4wQBAgQIECBAgAABAgQIECBAgACBXhUQAO3Ck3nFK15RLXX27NnV7WYbxWvmn3/+6mXDVU61wAYbX/rSlxocffnQDjvskM4777yXD9giQIAAAQIECBAgQIAAAQIECBAgMIoEDIHvwsOab775qqUW5/GsHqzbKA51LwZAh6ucuursEiBAgAABAgQIECBAgAABAgQIEBg3AgKgXXjUsahRDC2P9Le//W3AGh5//PHqNYssskh1e7jKqRZogwABAgQIECBAgAABAgQIECBAgMA4ExAA7dIDX3755fOSo3fn3//+95a1PPTQQ9Xzq622WnU7NoarnJpC7RAgQIAAAQIECBAgQIAAAQIECBAYJwICoF160Kuvvnq15D/+8Y/V7UYbt9xyS/VwMV8cLO53Uk61AhsECBAgQIAAAQIECBAgQIAAAQIExpGAAGiXHvYmm2xSLfniiy+ubtdvxPD3m266KT+8yiqrpOIQ+Dg4XOXU12ufAAECBAgQIECAAAECBAgQIECAwHgQEADt0lNeaaWVUgQ0I1111VWpURB01qxZ6eijj05z5szJr9t5553z1+J/hqucYpm2CRAgQIAAAQIECBAgQIAAAQIECIwXgYnj5UZH4j7322+/tNdee+VVH3nkkemxxx5Lm2++eVpsscXS7bffnk477bRUGdYeQ9033njjhs0crnIaFu4gAQIECBAgQIAAAQK5QCxket111zXUWGihhRoed5AAAQIECBDofQEB0C4+ozXWWCMdfvjh6aijjkovvPBC+va3v53/TJgwodrrM6pfeuml0zHHHJPmnrtxh9zhKqeLt6poAgQIECBAgAABAqNeYK655koLL7zwqL8PN0CAAAECBAjUCjSOuNVeY68Dgc022yydeuqp+XD4SoCzMuR94sSJaccdd8zPT5kypWUtw1VOy0qcJECAAAECBAgQIECAAAECBAgQIDDGBPQAHcQD3XrrrVP8DDatsMIKec/P6AV61113pVj4aKmllkrLLrtsWmCBBdoubrjKabtCFxIgQIAAAQIECBAgQIAAAQIECBAY5QICoCU+wMmTJ6c111wz/+mk2uEqp5M2yEuAAAECBAgQIECAAAECBAgQIEBgNAgYAj8anpI2EiBAgAABAgQIECBAgAABAgQIECAwJAEB0CGxyUSAAAECBAgQIECAAAECBAgQIECAwGgQEAAdDU9JGwkQIECAAAECBAgQIECAAAECBAgQGJKAAOiQ2GQiQIAAAQIECBAgQIAAAQIECBAgQGA0CAiAjoanpI0ECBAgQIAAAQIECBAgQIAAAQIECAxJQAB0SGwyESBAgAABAgQIECBAgAABAgQIECAwGgQEQEfDU9JGAgQIECBAgAABAgQIECBAgAABAgSGJCAAOiQ2mQgQIECAAAECBAgQIECAAAECBAgQGA0CAqCj4SlpIwECBAgQIECAAAECBAgQIECAAAECQxIQAB0Sm0wECBAgQIAAAQIECBAgQIAAAQIECIwGAQHQ0fCUtJEAAQIECBAgQIAAAQIECBAgQIAAgSEJCIAOiU0mAgQIECBAgAABAgQIECBAgAABAgRGg4AA6Gh4StpIgAABAgQIECBAgAABAgQIECBAgMCQBARAh8QmEwECBAgQIECAAAECBAgQIECAAAECo0FAAHQ0PCVtJECAAAECBAgQIECAAAECBAgQIEBgSAICoENik4kAAQIECBAgQIAAAQIECBAgQIAAgdEgIAA6Gp6SNhIgQIAAAQIECBAgQIAAAQIECBAgMCQBAdAhsclEgAABAgQIECBAgAABAgQIECBAgMBoEJg4GhqpjQQIECBAgAABAgQIECBAgAABAr0ncNJJJ6Vzzz23acNe/epXp3POOafpeScIlCEgAFqGsjoIECBAgAABAgQIECBAgAABAmNQ4P7770/XXHNN0zt7+umnm55zgkBZAgKgZUmrhwABAgQIECBAgACBnhaIP9K32267hm0888wz03LLLdfwnIMECBAgQIBAbwsIgPb289E6AgQIECBAgAABAgRKEnjppZfSY4891rC2F198seFxBwkQIDDeBb7whS+kgw8+OGeYMWNG+sMf/pBv33333WnKlClpwoQJ453I/feAgABoDzwETSBAgAABAgQIECBAgAABAgQIjEaB+eabL8VPpEmTJlVvYZFFFkkLL7xwdd8GgZEUsAr8SOqrmwABAgQIECBAgAABAgQIECBAgACBrgoIgHaVV+EECBAgQIAAAQIECBAgQIAAAQIECIykgADoSOqrmwABAgQIECBAgAABAgQIECBAgACBrgoIgHaVV+EECBAgQIAAAQIECBAgQIAAAQIECIykgADoSOqrmwABAgQIECBAgAABAgQIEEgXX5zSBz6Q0gUXvIzx/venlC0wnh577OVjtggQIDAUAQHQoajJQ4AAAQIECBAgQIAAAQIECHQs8OijKb3lLSltsUVK3/teSs8++3KRt9+e0uc/n9L06SmdeOLLx0fj1k03pXTQQSldd93Lrf/4x1M6++yUZs9++ZgtAgS6IyAA2h1XpRIgQIAAAQIECBAgQIAAAQItBP7615TWWy+l3/ymxUXZqQiKfuITKe27b+vrevHs3/+e0rveldLaa6f05S+nFPuVNHNmSu97X0qrrpryHrCV414JEBh+AQHQ4TdVIgECBAgQIECAAAECBAgQINBC4D//SWmbbVJ6+OEWF9WdOuGElE4/ve5gD+/Gva2/fko/+lHrRt53X0pve1tK3/pW6+ucJUBg6AICoEO3k5MAAQIECBAgQIAAAQIECBAYgsBpp6X0xz8OPuPBB6f0r38NPl/ZOSLAu+22Kd19d3s1v/RSSnvvndLll7d3vasIEBicwMTBXe5qAgQIECBAgAABAgQIECBAgEBnAiefPLT8TzyR0tJLp/TKV6Y0adLQfuaZp3m+iVmUpNX5qHOg83FNzGf6+98P7h7nzEnpYx/7b2B4woTB5XU1AQKtBQRAW/s4S4AAAQIECBAgQIAAAQIECAyjQAwNv+22oRcYPUBHQy/QodxhuFx6aUozZgwltzwECDQTMAS+mYzjBAgQIECAAAECBAgQIECAwLALPPDAsBc5pgq86KIxdTtuhkBPCAiA9sRj0AgCBAgQIECAAAECBAgQIDA+BGKot9Rc4N57m59zhgCBoQkIgA7NTS4CBAgQIECAAAECBAgQIEBgCAKvetUQMo2jLC+8MI5u1q0SKElAALQkaNUQIECAAAECBAgQIECAAAECKS23XEorrECimcBSSzU74zgBAkMVsAjSUOXkI0CAAAECBAgQIECAAAECBIYk8KEPpfTZzw4+6+TJKR1/fEqveEVK//nPf39mz355u3JsMK9Dyf/ii4Nve7s5Nt643StdR4BAuwICoO1KuY4AAQIECBAgQIAAAQIECBAYFoF9903pW99K6f77B1fc4YentOeeg8vTrasrQdZGAdTPfCalH/948DUvuGBK2247+HxyECDQWsAQ+NY+zhIgQIAAAQIECBAgQIAAAQLDLDDffCldcEFKCy3UfsE77pjSgQe2f323r5w0KaW4jylTUpo27f+xdydwV4/5/8ff7aXSrrSQiErZMoiiRbIMkp2xN34ihknoPz8zY0ZjDGMwmJ+ZSWLsYxlMKSGkQRgiipBUJEuL9uX8v59znPs+931f37PdZ/l+z3ldj8fpnHNd1/f7va7n99x39/25r0Wyqes77ijtsov0pz9JFszMNI0bJ7VunelR1EcAgVQCBEBTCVGOAAIIIIAAAggggAACCCCAAAI5F9hjD+m661Kftq4Xubj8cumBB6Q6dVLXD0KNTp2k++6TrO3ppoEDpSuvTLc29RBAIBOBDL4UMzktdRFAAAEEEEAAAQQQQAABBBBAAIHkAnPn+pfbSMiRI6V33pFuuEGqV8+/bhBLjj5aevrp2AjRdNq3zz6ZBUzTOSd1EEAgJkAAlE8CAggggAACCCCAAAIIIIAAAggURWD6dP/LPvtsbJ3Q3r396wS95IgjpAULpCuukLp0Sd5aGzGaz82Vkl+dUgRKW4AAaGnfX3qHAAIIIIAAAggggAACCCCAQCAFLDD44YeBbFpOG9WmjXT99dKiRdKgQf6nXrZMeuop/3JKEEAgewF2gc/ejiMRQAABBBBAAAEEEECghARatWqlKVOmOHvUuXNnZz6ZCCCQvcAzz2R/bFiPbNw4ecv//nfpuOOS16EUAQQyFyAAmrkZRyCAAAIIIIAAAggggEAJCtTzFhjs1q1bCfaMLiEQTIGpU4PZrmK2ykyWLJFsEyUSAgjkToAp8Lmz5EwIIIAAAggggAACCCCAAAIIIJCGwKZN0osvplGxzKps2SLddVeZdZruIlAAAQKgBUDmEggggAACCCCAAAIIIIAAAgggUCnw0kvS6tWV78vxld+A84kTpUikHEXoMwL5EyAAmj9bzowAAggggAACCCCAAAIIIIAAAg4Bv+nv9ctoob6TT3bAeFmffio995y7jFwEEMhOgABodm4chQACCCCAAAIIIIAAAggggAACWQr4bYDUoUOWJwzhYbbZUYMG7obbZkgkBBDInQAB0NxZciYEEEAAAQQQQAABBBBAAAEEEEghsGyZ9N577kodO7rzSzG3TRvp2GPdPXviCenbb91l5CKAQOYCBEAzN+MIBBBAAAEEEEAAAQQQQAABBBDIUmDyZP81LstpBKjxjRzpRtywQbrnHncZuQggkLkAAdDMzTgCAQQQQAABBBBAAAEEEEAAAQSyFPCb/t6zp9SsWZYnDelhQ4dKXbq4G89u8G4XchHIRoAAaDZqHIMAAggggAACCCCAAAIIIIAAAhkL2O7mzz/vPmzYMHd+KefW9aIy557r7uG770qvveYuIxcBBDITIACamRe1EUAAAQQQQAABBBBAAAEEEEAgSwEL6H39tfvgww9355d67jnnSBYIdSU2Q3KpkIdA5gI+X2KZn4gjEEAAAQQQQAABBBBAAAEEEEAAgWQCftPfGzWSBgxIdmTplu24o2RT4V3poYekNWtcJeQhgEAmAgRAM9GiLgIIIIAAAggggAACCCCAAAIIZC0wdar70IEDpW22cZeVQ67fZkirV0sPPlgOAvQRgfwKEADNry9nRwABBBBAAAEEEEAAAQQQQAABT2DlSmn2bDdFuU5/j2scc4zUtm38XdVnpsFX9eAdAtkIEADNRo1jEEAAAQQQQAABBBBAAAEEEEAgIwGb/r5li/uQctwAKVGiYUPpzDMTcypfv/qq9P77le95hQACmQsQAM3cjCMQQAABBBBAAAEEEEAAAQQQQCBDAb/p7506ST17ZniyEqx+3nn+nWIUqL8NJQikI0AANB0l6iCAAAIIIIAAAggggAACCCCAQK0Epk93H37UUe78csvt1Us68EB3r++9V9q40V1GLgIIpBYgAJraiBoIIIAAAggggAACCCCAAAIIIFALgXfflT7/3H2Ccp/+nqjitxnS119LTzyRWJPXCCCQiQAB0Ey0qIsAAggggAACCCCAAAIIIIAAAhkL2PqfrlSvnjRokKukPPNOOklq3tzdd6bBu13IRSAdAQKg6ShRBwEEEEAAAQQQQAABBBBAAAEEshbwC4DalO9WrbI+bckd2LSpdMop7m4995z02WfuMnIRQCC5AAHQ5D6UIoAAAggggAACCCCAAAIIIIBALQTWrZNmzXKfgOnvNV38psFv3SrddVfN+uQggEBqAQKgqY2ogQACCCCAAAIIIIAAAggggAACWQrYyMX1690HH364O7+cc/fbT+rd2y0wcaJkgVASAghkJkAANDMvaiOAAAIIIIAAAggggAACCCCAQAYCftPf27SR9t47gxOVUdWf/tTdWdtIaupUdxm5CCDgL0AA1N+GEgQQQAABBBBAAAEEEEAAAQQQqKWAX8DORn/WJSrh1P3JT6RGjZxFYjMktwu5CCQT4FtNMh3KEEAAAQQQQAABBBBAAAEEEEAg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WyE4RUoMbnbp0qVK7fjaoTa68zsbY54k2fXiqWfPnvGXPCOAAAIIIIAAAggggAACCCDgFLCRn88+6yzSEUe488ktDwFvxT55ezc705w50uzZziIyEQikAAHQPNwWC1YeddRROvXUU3X++eenXD9z4cKFFa3YYYcdKl7bi169elW8f+eddypeu17Mse9AP6TE4+J5PCOAAAIIIIAAAggggAACCCCQKGBrfyZMJkwsko0AJJW3gLdlierUcRtMmODOJxeBIAoQAM3DXbG1O+MBSNuY6LXXXkt6lfvvv7+ivH///hWv7cXAgQMr3k/1m5fg1bDp7//973+jdXfbbTcxBb6CjRcIIIAAAggggAACCCCAAAI+An6/ZjZoIA0a5HMQ2WUj0LWrNGSIu7sPPCB5479ICIRCgABonm5TYiDzlltu0erVq51X+uc//6m33347Wta9e3cNHTq0Sj3Ls4CmpZkzZ8oVBLUd2n//+99ry5Yt0Xqnn3569Jl/EEAAAQQQQAABBBBAAAEEEEgmYBsgudKAAVKzZq4S8spNwDZDcqVVq6SHH3aVkIdA8AQIgObpnpx00knq06dP9Oy2xudPf/pTvfLKK95fR9Zq8+bN+uijjzR+/HhZcNRSw4YNdckll3hDy2uOLb/sssuidewfO2bSpElaunRp9Dw27X3MmDF64403onVs5OkhhxxSUZ8XCCCAAAIIIIAAAggggAACCLgEbJzOq6+6SsT0dzdLWeYOHy5vg2Z319kMye1CbvAE6gevSaXRovr16+uaa66JBjVtc6IlS5boqquuinbOyiwIGk/bbbddNLDZo0ePeFaV59133z16ruuuu07r16/X373vMPao561IHB/1aQd06tRJ119/verWJa5dBZA3CCCAAAIIIIAAAggggAACNQSmT5c2baqRHc04/HB3PrnlJ9CokXTGGdLNN9fsuzfOS/PmST7hjJoHkINAkQSIlOURvl27drrnnns0atQoNW3atOJK8eBny5YtvTVVBkWDmX7Bz/hBgwcP1p133hmdDh8PcMaDnxZQPfHEE6Pldk4SAggggAACCCCAAAIIIIAAAqkE/Ka/d+ggb0ZjqqMpLyeB887z7y2bIfnbUBIcAUaA5vleNPBWjj7ttNN0yimn6Msvv9SiRYtkGyPtuuuu6mD/q2SQunXrFg2W2ihQm0JvGx917NhR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rFlj9af8pXHjxmaHHXYwm222WVUBkA3OmzfPLFu2zGh7xYoVVpamTZuaZs2amZYtW1Z9niL7XbBggVm1apX9U57p5NPvpptuWlU621AS++2335qGDRuaevXqFSSy3suvvvrKXiP96o9QeQKUPSl7Vt7qin/ihlD21DdQ5Rb9NW/e3Gy55ZaJrRu9/fbbNp36Tvfq1at4BXtyB33jPvroI/ut22abbUynTp3s97JaxNsQyp5OF/XWrQ9uh18IQKB8BCZNmmTGjx9vZs2aZb7++mvrOOrevbs5+OCDzS677BLpweeff76ZPHmyjeucH5EurFAkFa7nz59vK+gtWrSo9dT333/f/PWvfzUvvvhi2jk5QI899lhzzDHHFFyxSrtRQnbkuDjggANsak4++WTz85//PCEpS0/Gq6++aqQTBdmhHEZhQZXef/zjH+bvf/+7USEtM8gReuaZZ5of/vCHmacSsa/37amnnjJTpkwxgwcPNjvuuGNaulQ5v/fee82//vUv8+WXX6adk8Npn332Mccdd5x19KadjHHniy++MIcffrhNgd6fyy67zOy8884xpqi8j1bB7N133zWffPKJdfbusccetZwoEyZMMLfffruZO3duWmLatWtnfvOb35gf/OAHaceTtKNGoQceeMC88sor9huRr2imiof03bNnT3PggQeaJk2aJEmc0LS89dZb5uGHHzYzZsywDt5cMsrJq/d0p512MoMGDUpsRTBUUM8OKv+87bbbbKOeKnf6TnTr1s3svvvu9ru98cYb55VY5Z7TTjvNxjv11FNtPpz3IiKUhABlT2PLOZQ9S2JOJbnJhlL2FCzJqvqaGvsuuOCCWvxUBv/Tn/5k3njjDaOydmpQHfGggw6yf/XrJ2fQ7tVXX23+/e9/26T+5Cc/McOGDTONGjVKTbo322vXrjWffvqpLZdJP+q0o4b11PD555+bMWPGmCeffNIovgtqLNx///3NOeecU6u86uLE/bshlD3DGOMADaPCMQiUkIBaLq+99lozceLE0LuqJ8VRRx1lTj/9dJOvIpFUB6icEzfffLORA0JOUH2oe/ToYQYOHGgOO+wwK7c+8kOGDLG9mkJBrD+45557mosuuqjqK7vV4gAdOXKkeeSRR6w65JgI64krh/Z5551ne9Vl05s7LgfTlVdemagWTzlbLr744sCx+b//+7/m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" width="672" /></p>
<div class="sourceCode" id="cb30"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb30-1"><a href="#cb30-1" aria-hidden="true" tabindex="-1"></a>estimates_koguchi_number_OLS <span class="ot">&lt;-</span> df_estimates 　 <span class="co">#for robustness check</span></span></code></pre></div>
</div>
<div id="wls-no-trends-figure-5-a-tablec.5-1-1" class="section level2" number="6.2">
<h2><span class="header-section-number">6.2</span> WLS, no trends, Figure 5 (a) &amp; TableC.5 (1)</h2>
<div class="sourceCode" id="cb31"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb31-1"><a href="#cb31-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb31-2"><a href="#cb31-2" aria-hidden="true" tabindex="-1"></a>estimation_results <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_WLS_notrend</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb31-3"><a href="#cb31-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>koguchi_number, </span>
<span id="cb31-4"><a href="#cb31-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>unemploy_shock_diff2)</span>
<span id="cb31-5"><a href="#cb31-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb31-6"><a href="#cb31-6" aria-hidden="true" tabindex="-1"></a>texreg<span class="sc">::</span><span class="fu">screenreg</span>(<span class="at">l =</span> estimation_results, <span class="at">include.ci =</span> <span class="cn">FALSE</span>, <span class="at">digits=</span><span class="dv">3</span>)</span></code></pre></div>
<pre><code>## 14 coefficients  not defined because the design matrix is rank deficient</code></pre>
<pre><code>## 
## ===================================
##                         Model 1    
## -----------------------------------
## treat_var:date_2018_01             
##                                    
## treat_var:date_2018_02             
##                                    
## treat_var:date_2018_03             
##                                    
## treat_var:date_2018_04             
##                                    
## treat_var:date_2018_05             
##                                    
## treat_var:date_2018_06             
##                                    
## treat_var:date_2018_07             
##                                    
## treat_var:date_2018_08             
##                                    
## treat_var:date_2018_09             
##                                    
## treat_var:date_2018_10             
##                                    
## treat_var:date_2018_11             
##                                    
## treat_var:date_2018_12             
##                                    
## treat_var:date_2019_01     0.057   
##                           (0.085)  
## treat_var:date_2019_02     0.014   
##                           (0.064)  
## treat_var:date_2019_03     0.012   
##                           (0.108)  
## treat_var:date_2019_04     0.039   
##                           (0.069)  
## treat_var:date_2019_05    -0.097   
##                           (0.065)  
## treat_var:date_2019_06     0.071   
##                           (0.052)  
## treat_var:date_2019_07     0.059   
##                           (0.097)  
## treat_var:date_2019_08     0.107   
##                           (0.067)  
## treat_var:date_2019_09     0.032   
##                           (0.083)  
## treat_var:date_2019_10     0.093   
##                           (0.063)  
## treat_var:date_2019_11     0.013   
##                           (0.094)  
## treat_var:date_2019_12    -0.001   
##                           (0.084)  
## treat_var:date_2020_02             
##                                    
## treat_var:date_2020_03             
##                                    
## treat_var:date_2020_04    18.723   
##                          (21.950)  
## treat_var:date_2020_05    73.840   
##                          (42.803)  
## treat_var:date_2020_06    88.768 **
##                          (32.722)  
## treat_var:date_2020_07    34.689   
##                          (21.224)  
## treat_var:date_2020_08    27.162   
##                          (14.477)  
## treat_var:date_2020_09    21.875   
##                          (15.342)  
## -----------------------------------
## R^2                        0.813   
## Adj. R^2                   0.795   
## Num. obs.                893       
## RMSE                    1383.945   
## N Clusters                47       
## ===================================
## *** p &lt; 0.001; ** p &lt; 0.01; * p &lt; 0.05</code></pre>
<div class="sourceCode" id="cb34"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb34-1"><a href="#cb34-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb34-2"><a href="#cb34-2" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_loan</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb34-3"><a href="#cb34-3" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;unemploy_shock_diff2&quot;</span>,</span>
<span id="cb34-4"><a href="#cb34-4" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;koguchi_number_WLS&quot;</span>)</span>
<span id="cb34-5"><a href="#cb34-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb34-6"><a href="#cb34-6" aria-hidden="true" tabindex="-1"></a><span class="co"># graph</span></span>
<span id="cb34-7"><a href="#cb34-7" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_WLS <span class="ot">&lt;-</span> <span class="fu">event_study_graph_2nd_safetynet</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb34-8"><a href="#cb34-8" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;koguchi_number_WLS&quot;</span>)</span>
<span id="cb34-9"><a href="#cb34-9" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_WLS </span></code></pre></div>
<pre><code>## Warning: Removed 2 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABUAAAAPACAYAAAD0ZtPZAAAEDmlDQ1BrQ0dDb2xvclNwYWNlR2VuZXJpY1JHQgAAOI2NVV1oHFUUPpu5syskzoPUpqaSDv41lLRsUtGE2uj+ZbNt3CyTbLRBkMns3Z1pJjPj/KRpKT4UQRDBqOCT4P9bwSchaqvtiy2itFCiBIMo+ND6R6HSFwnruTOzu5O4a73L3PnmnO9+595z7t4LkLgsW5beJQIsGq4t5dPis8fmxMQ6dMF90A190C0rjpUqlSYBG+PCv9rt7yDG3tf2t/f/Z+uuUEcBiN2F2Kw4yiLiZQD+FcWyXYAEQfvICddi+AnEO2ycIOISw7UAVxieD/Cyz5mRMohfRSwoqoz+xNuIB+cj9loEB3Pw2448NaitKSLLRck2q5pOI9O9g/t/tkXda8Tbg0+PszB9FN8DuPaXKnKW4YcQn1Xk3HSIry5ps8UQ/2W5aQnxIwBdu7yFcgrxPsRjVXu8HOh0qao30cArp9SZZxDfg3h1wTzKxu5E/LUxX5wKdX5SnAzmDx4A4OIqLbB69yMesE1pKojLjVdoNsfyiPi45hZmAn3uLWdpOtfQOaVmikEs7ovj8hFWpz7EV6mel0L9Xy23FMYlPYZenAx0yDB1/PX6dledmQjikjkXCxqMJS9WtfFCyH9XtSekEF+2dH+P4tzITduTygGfv58a5VCTH5PtXD7EFZiNyUDBhHnsFTBgE0SQIA9pfFtgo6cKGuhooeilaKH41eDs38Ip+f4At1Rq/sjr6NEwQqb/I/DQqsLvaFUjvAx+eWirddAJZnAj1DFJL0mSg/gcIpPkMBkhoyCSJ8lTZIxk0TpKDjXHliJzZPO50dR5ASNSnzeLvIvod0HG/mdkmOC0z8VKnzcQ2M/Yz2vKldduXjp9bleLu0ZWn7vWc+l0JGcaai10yNrUnXLP/8Jf59ewX+c3Wgz+B34Df+vbVrc16zTMVgp9um9bxEfzPU5kPqUtVWxhs6OiWTVW+gIfywB9uXi7CGcGW/zk98k/kmvJ95IfJn/j3uQ+4c5zn3Kfcd+AyF3gLnJfcl9xH3OfR2rUee80a+6vo7EK5mmXUdyfQlrYLTwoZIU9wsPCZEtP6BWGhAlhL3p2N6sTjRdduwbHsG9kq32sgBepc+xurLPW4T9URpYGJ3ym4+8zA05u44QjST8ZIoVtu3qE7fWmdn5LPdqvgcZz8Ww8BWJ8X3w0PhQ/wnCDGd+LvlHs8dRy6bLLDuKMaZ20tZrqisPJ5ONiCq8yKhYM5cCgKOu66Lsc0aYOtZdo5QCwezI4wm9J/v0X23mlZXOfBjj8Jzv3WrY5D+CsA9D7aMs2gGfjve8ArD6mePZSeCfEYt8CONWDw8FXTxrPqx/r9Vt4biXeANh8vV7/+/16ffMD1N8AuKD/A/8leAvFY9bLAAAAOGVYSWZNTQAqAAAACAABh2kABAAAAAEAAAAaAAAAAAACoAIABAAAAAEAAAVAoAMABAAAAAEAAAPAAAAAALYRw1EAAEAASURBVHgB7N0HnCRVnTjwx7LASg5LFv5HTi4KSFaSksQThANFDMgpiJ4BQZQTTAeHcIKCp4JkVJIKiAJKEjkynCJBBSRIUqIKLrDrwvzrV1431TXVPd3TMz09M9/3+Qxd9eq9V1Xf6ullfv3CXANZShIBAgQIECBAgAABAgQIECBAgAABAgQmoMCUCXhPbokAAQIECBAgQIAAAQIECBAgQIAAAQK5gACoNwIBAgQIECBAgAABAgQIECBAgAABAhNWQAB0wj5aN0aAAAECBAgQIECAAAECBAgQIECAgACo9wABAgQIECBAgAABAgQIECBAgAABAhNWQAB0wj5aN0aAAAECBAgQIECAAAECBAgQIECAgACo9wABAgQIECBAgAABAgQIECBAgAABAhNWQAB0wj5aN0aAAAECBAgQIECAAAECBAgQIECAgACo9wABAgQIECBAgAABAgQIECBAgAABAhNWQAB0wj5aN0aAAAECBAgQIECAAAECBAgQIECAgACo9wABAgQIECBAgAABAgQIECBAgAABAhNWQAB0wj5aN0aAAAECBAgQIECAAAECBAgQIECAgACo9wABAgQIECBAgAABAgQIECBAgAABAhNWQAB0wj5aN0aAAAECBAgQIECAAAECBAgQIECAgACo9wABAgQIECBAgAABAgQIECBAgAABAhNWQAB0wj5aN0aAAAECBAgQIECAAAECBAgQIECAgACo9wABAgQIECBAgAABAgQIECBAgAABAhNWQAB0wj5aN0aAAAECBAgQIECAAAECBAgQIECAgACo9wABAgQIECBAgAABAgQIECBAgAABAhNWQAB0wj5aN0aAAAECBAgQIECAAAECBAgQIECAwFQEBDoVuOSSS9IzzzxTr7bxxhun1VZbrb5vY2IL/OQnP0l/+ctf6je56aabplVWWaW+P5Ib3msjqTl+2/rRj36UnnvuufoNbL755mmllVaq79sYeYEHHnggXXfddQ0Nb7PNNmm55ZZryGtn56WXXkrnnHNOGhgYaCi+9tprp/XXX78hr92diy66KD377LP14ssvv3zaeuut6/uxceedd6bbbrutIe8d73hHmmeeeRryRnPnvvvuSxdffHG69tpr0x//+Mf0xBNPpKeffjotssgiaamllsp/1lprrfSWt7wlbbbZZmnqVP9bNprPQ9sECBAgQIAAAQKTV2Cu7A+Sxr9IJq+FO29TYL311mv4o/KEE05I++23X5u1FRvvAuuss076zW9+U7+NU089Nb3//e+v74/khvfaSGqO37biC5bf//739Rv47ne/m/baa6/6vo2RF7j99tvTa1/72oaGv/KVr6QDDzywIa+dneuvvz5F0LqcImB51VVXlbOH3H/hhRfyAOLf//73etnPfOYz6cgjj6zvx8YRRxyRDj300Ia8+PImgo+jnb7//e+nL3zhCw2flUOdc9FFF03vete70he/+MU0ffr0oYo7ToAAAQIECBAgQIBABwKGwHeApSgBAgQIEJgMAjNmzMh7JxbvtdwjtHis1fZPf/rTysPR3t/+9rfKY60yb7jhhlQMfkbZ7bbbrlWVnh2LQP2WW26Z9thjj46Cn3GBEZz95je/mVZfffX8tWcX7UQECBAgQIAAAQIEJoGAAOgkeMhukQABAgQIdCIw11xzpRjyXkwjHQCdPXt2uvLKK4unaGv7mmuuaSi3wAILVPYwbSjUg51HHnkkNytfX6en/vOf/5w+8pGPpMMOO6zTqsoTIECAAAECBAgQINBEQAC0CYxsAgQIECAwmQXe/OY3N9x+zF957733NuQNtfPUU0+l//3f/60XmzKl8X87mvUOrVeo2PjFL37RkLvVVluleeedtyGv1zvRk3X77bdPDz/88KBTb7HFFnmPzpi39Je//GU+F+jdd9+dLrvssnTSSSelvffeu3Luz8MPPzx94xvfGNSeDAIECBAgQIAAAQIEOhcw237nZmoQINAjgf333z89/vjj9bO9/vWvr2/bIEBgdAXe9KY3DTpB9ALtZNG7CPK9/PLL9Xb23HPP9L3vfa++32kA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s2ZDh9N6662XNtpooxG7iOg1HV+u3H777fnvazyHmEc45geu/bTzJciIXZCGxo1AzC0d751HH300f+/EvKBPP/10/qVUvIeWXXbZ/DO4PE/0uLlBF0qAAAECBAgQIEBgHAgIgI6Dh+QS+08ggrHlgGH07IyFkiQCBAgQIECAAAECBAgQIECAAIH+ERg8OWD/XJsrITBqAkcddVTKFmFJq6++ev4Twy7XX3/9ts933XXXNZSNOQM7HXbf0IAdAgQIECBAgAABAgQIECBAgACBUREQAB0VVo32u0AMNY85NuMnUiy4FMPR200xP1sxbbDBBk0XSymWs02AAAECBAgQIECAAAECBAgQINBbAYsg9dbb2fpEoDzXWsyNGfMItpNOO+20FPN9FtO73vWu4q5tAgQIECBAgAABAgQIECBAgACBPhEQAO2TB+EyeisQw9UXX3zx+kljRfdY3f2SSy6p55U3nn322XxV9Q984AP5AkK14zNmzEj77rtvbdcrAQIECBAgQIAAAQIECBAgQIBAHwlYBKmPHoZL6a1ADHnfYYcd0ksvvdRw4ghobrbZZmnFFVdMCy20UL6y9EMPPZQHRyMIWkzzzTdfuuWWW1LUkXoncOaZZ6bf//73PTthBL3j/SARGEsB7/ux1HduAgQIECBAgAABAgTGs4AA6Hh+eq69a4GvfvWr6ZOf/OSw2ll22WXT2Wefnbbccsth1Vdp+AKxaNVll102/AY6rHnttdemzTffvMNaihMYWQHv+5H11BoBAgQIECBAgAABApNHwBD4yfOs3WmFwAEHHJAuuOCCtOGGG1Ycrc6ae+6502677ZZuu+02wc9qIrkECBAgQIAAAQIECBAgQIAAgb4RsAp83zwKFzJWArvsskuKn1gJ/jvf+U66//7704MPPpgeffTR9PLLL+eruy+33HJphRVWSG9729vSXnvtlZZZZpmxulznzQR233339LrXva5nFssvv3zPzuVEBJoJeN83k5FPgAABAgQIECBAgACB1gKGwLf2cXQSC8TCSH/729/SYostNokV3DoBAgQIECBAgAABAgQIECBAYHwLCICO7+fn6gkQIECAAAECBAgQIECAAAECBAgQaCFgDtAWOA4RIECAAAECBAgQIECAAAECBAgQIDC+BQRAx/fzc/UECBAgQIAAAQIECBAgQIAAAQIECLQQEABtgeMQAQIECBAgQIAAAQIECBAgQIAAAQLjW0AAdHw/P1dPgAABAgQIECBAgAABAgQIECBAgEALAQHQFjgOESBAgAABAgQIECBAgAABAgQIECAwvgUEQMf383P1BAgQIECAAAECBAgQIECAAAECBAi0EBAAbYHjEAECBAgQIECAAAECBAgQIECAAAEC41tAAHR8Pz9XT4AAAQIECBAgQIAAAQIECBAgQIBACwEB0BY4DhEgQIAAAQIECBAgQIAAAQIECBAgML4FBEDH9/Nz9QQIECBAgAABAgQIECBAgAABAgQItBAQAG2B4xABAgQIECBAgAABAgQIECBAgAABAuNbQAB0fD8/V0+AAAECBAgQIECAAAECBAgQIECAQAsBAdAWOA4RIECAAAECBAgQIECAAAECBAgQIDC+BQRAx/fzc/UECBAgQIAAAQIECBAgQIAAAQIECLQQEABtgeMQAQIECBAgQIAAAQIECBAgQIAAAQLjW0AAdHw/P1dPgAABAgQIECBAgAABAgQIECBAgEALAQHQFjgOESBAgAABAgQIECBAgAABAgQIECAwvgWmju/Ld/WjLXDUUUelG264oX6aY445Jq2yyir1fRsECBAgQIAAAQIEJorACy+8kM4888zK29ljjz3SYostVnlMJgECBAgQINDfAnMNZKm/L9HVjaXAbrvtls4///z6Jdx6661pgw02qO/bIECAAAECBAgQIDBRBJ566qm0+eabV97OxRdfnFZdddXKYzIJECBAgACB/hYwBL6/n4+rI0CAAAECBAgQIECAAAECBAgQIECgCwEB0C7wVCVAgAABAgQIECBAgAABAgQIECBAoL8FzAHa4fM56KCD0k033ZQ+8YlPpBgePlS67rrr0vXXXz9Usfz4tGnT0kc/+tGmZV966aV06aWXpiuuuCI9/PDD6fnnn09rrbVWmjFjRtp0003Tmmuu2bSuAwQIECBAgAABAgQIECBAgAABAgQmo4AAaAdPPebCjOBnJ+myyy5LV111VVtVFlhggaYB0CeffDIdeOCB6YEHHmho65Zbbknxc8YZZ6RDDjkkbb/99g3H7RAgQIAAAQIECBAgQIAAAQIECBCYzAICoG0+/csvvzx97Wtfa7P0K8XuvffeV3aGuTVz5sz0qU99qh78jMnXY3L2JZdcMt12223pmmuuSbNnz06HH354irK77rrrMM+kGgECBAgQIECAAAECBAgQIECAAIGJJSAAOsTznDVrVjrllFPSueeemwYGBoYo3Xj4hRdeSI888kie+frXvz4deuihjQVKe1OmVE/Jetppp6X77rsvL7311lunww47LM0zzzz5/s4775xuv/32dPDBB+fBz+OPPz5tscUWafr06aXW7RIgQIAAAQIECBAgQIAAAQIECBCYfALVEbfJ51B5x9G7cu+9905nn312evnllyvLtMqMoGUtaLr22munJZZYouXPYostNqi5Z599Nl100UV5/lJLLdUQ/KwVXnfddfP82I95Qmvla8e9EiBAgAABAgQIECBAgAABAgQIEJisAgKgFU8+gpbHHntsPh9nrQfniiuu2NaiR8XmisPf11hjjeKhtrd//vOfp+hJGmmXXXap9/wsNxBD4ldYYYU8OwKgc+bMKRexT4AAAQIECBAgQIAAAQIECBAgQGDSCQiAVjzy6O15wQUX1I/stNNO+TD4mHuzluaaa67aZtPXkQiA3nnnnfX2N9poo/p21UYMs4/09NNPp1/+8pdVReQRIECAAAECBAgQIECAAAECBAgQmFQC5gBt8bg33HDDfAh8DDEfTqoFQBdddNG09NJL501E79LHH388vepVr0qLLLLIkM3eddddeZkIuK6yyiotyxcDtPfff38aKmDasjEHCRAgQIAAAQIECBAgQIAAAQIECEwAAQHQiocYixGdcMIJaZ111qk42l5WzMUZQchIMfz9jjvuSKeffnq+YNGLL76Y58ecnjE36Ic+9KG0/PLL53nl/zz66KN5Vqz4PnVq68dVC7JGhYceeqjcVOX+M888Ux9iX1UgVpeP88b91OYzrSonjwABAgQIECBAgAABAgQIECBAgEA/CrSOqPXjFffgmqK3ZTfBz7jECEBG8DBSrNL+4Q9/ON8u/ueJJ55I8XPjjTem/fffP+26667Fw3lgsrb4UtUCSQ2Fs53oaVpLsXhSO+mQQw5JV199dcuiK6+8cnr44YdbBkpbNuAgAQIECBAgQIAAAQIECBAgQIAAgTESEAAdJfja8PdoPhYxmjZtWnrd616X1ltvvbT44ounBx54IA88PvbYYyl6hH71q19NCy20UNp2223rVzRz5sz69nzzzVffbrZRLFPrZdqsrHwCBAgQIECAAAECBAgQIECAAAECk0FAAHSUnnIxADp9+vR8VfmVVlqp4Wzvf//70/HHH59+/OMf5/nHHXdcioWMar09n3/++Xr5eeedt77dbKNYZtasWc2KySdAgAABAgQIECBAgAABAgQIECAwaQQEQEfpUe+88875MPo//vGPaauttkrLLrvsoDNFr9ADDzww/e53v0sRMP3rX/+azjvvvLTffvvlZYtzfsYcnEOlOXPm1IsUg6H1zIqN1VZbLT333HMVR/6R9dvf/jY99dRTqTYUv2lBBwgQIECAAAECBAgQIECAAAECBAj0oYAA6Cg9lFe/+tUpfoZKc889d9pnn31SzMUZqdhzNFaKr6XafKK1/arXYpkFFligqsigvIMOOmhQXjFjt912S7fddlsxyzYBAgQIECBAgAABAgQIECBAgACBcSMwZdxc6QS+0FVXXbV+d7WV4yNj/vnnr+cX5wOtZ5Y2ikPm2w2AlpqwS4AAAQIECBAgQIAAAQIECBAgQGBCCQiA9sHjXHLJJetXEcPgaykWNVpiiSXy3Vgtfqj0+OOP14vEQksSAQIECBAgQIAAAQIECBAgQIAAgckuIAA6Su+A6LH5yCOPpPvuu2/IMxSDmyussEJD+drCSdG7889//nPDsfJOnK+W1lprrdqmVwIECBAgQIAAAQIECBAgQIAAAQKTVkAAdBQefQQrd9ppp7TnnnumfffdNw21IvuDDz5Yv4oVV1yxvh0ba6+9dn3/17/+dX27auP222+vZxfr1TNtECBAgAABAgQIECBAgAABAgQIEJhkAhZBGoUHHnN3RgDyjjvuSLEw0U033ZS22GKLpmc666yz6sfe8IY31LdjI1aQP/PMM/O8n/3sZ/l+Q4H/24nh77/61a/yvTXWWCMZAl+lJI8AAQIECBAgQIBAc4F55503bbPNNpUFzLFfySKTAAECBAiMCwEB0FF6TBHIjABopOOOOy6tt956aaGFFhp0th/84Af1VdZXW221tO222zaUibwIaN59993p2muvTREE3X777RvKRA/TL3/5y+mll17K8/faa6+G43YIECBAgAABAgQIEBhaYOGFF07f+ta3hi6oBAECBAgQIDCuBAyBH6XHtccee6QZM2bkrcccnx/84AfTddddl2J4/Jw5c9K9996bjjjiiDw4GoXi2+aPfexjaa655hp0RQcccEA9L+qcccYZ6bHHHsvbiWHvBx54YLr11lvzMtHzdMstt6yXt0GAAAECBAgQIECAAAECBAgQIEBgMgvoATpKT3/q1Knpi1/8Yh7UjMWJHn300fSZz3wmP1sciyBoLS211FJ5MHTNNdesZTW8rrPOOnlbRx55ZHrxxRfTySefnP/MPffc9V6fUWH55ZdPRx11VJoyRVy7AdAOAQIECBAgQIAAAQIECBAgQIDApBUQKRvFR7/kkkvm83fuv//+qThnUC34ueiii6att946D2Y2C37WLi/mIjrxxBPz4fC1AGdtyHsEVHfffff8eLQpESBAgAABAgQIECBAgAABAgQIECDwD4G5BrIEY/QFXn755fSnP/0pPfTQQ/nCSKuvvnpaZpllhnXi6AUaQ+hj4aPlllsuxcrxCy644LDaGqrSbrvtls4///x6sRhqv8EGG9T3bRAgQIAAAQIECBAgQIAAAQIECBDoZwFD4Hv0dKLXZgQr46fbNG3atHx+0doco922pz4BAgQIECBAgAABAgQIECBAgACBiSogADpRn6z7IkCAAAECBAgQIECAAAEC40DglltuSRdffHHTK41p3w499NCmxx0gQIDAUAICoEMJOU6AAAECBAgQIECAAAECBAiMmsDNN9+cL/zb7ATzzTefAGgzHPkECLQlYBGktpgUIkCAAAECBAgQIECAAAECBAgQIEBgPAroAToen5prJkCAAAECBAgQIECAAAECE0Rg++23T+ecc05+N1//+tfTddddl28feeSRaaWVVkpzzz33BLlTt0GAwFgJCICOlbzzEiBAgAABAgQIECBAgAABAmnVVVfNf4LioosuqgdAt9tuu7T++usTIkCAQNcChsB3TagBAgQIECBAgAABAgQIECBAgAABAgT6VUAAtF+fjOsiQIAAAQIECBAgQIAAAQIECBAgQKBrAUPguybUAAECBAgQIECAAAECBAgQIECgWmD27Nlp1qxZ1Qez3ClTpqQFFlig6XEHCBDoXkAP0O4NtUCAAAECBAgQIECAAAECBAgQqBQ4+uij08ILL9z0J+ZAlQgQGF0BAdDR9dU6AQIECBAgQIAAAQIECBAgQIAAAQJjKGAI/BjiOzUBAgQIECBAgAABAgQIECAwsQWWW265tOGGG+Y3ec8996S//vWv+faMGTPStGnT0vTp0yc2gLsj0AcCAqB98BBcAgECBAgQIECAAAECBAgQIDAxBfbZZ58UP5He8pa3pEsvvTTfvvDCC9PKK6+cb/sPAQKjK2AI/Oj6ap0AAQIECBAgQIAAAQIECBAgQIAAgTEUEAAdQ3ynJkCAAAECBAgQIECAAAECBAgQIEBgdAUEQEfXV+sECBAgQIAAAQIECBAgQIAAAQIECIyhgADoGOI7NQECBAgQIECAAAECBAgQIECAAAECoysgADq6vlonQIAAAQIECBAgQIAAAQIECBAgQGAMBQRAxxDfqQkQIECAAAECBAgQIECAAAECBAgQGF2BqaPbvNYJECBAgAABAgQIECAwPgRmz56dbrnllsqLXW+99dL8889feUwmAQIECBAg0N8CAqD9/XxcHQECBAgQIECAAAECPRJ49tln0z777FN5tosvvjituuqqlcdkEiBAgAABAv0tYAh8fz8fV0eAAAECBAgQIECAAAECBAgQIECAQBcCAqBd4KlKgAABAgQIECBAgAABAgQIECBAgEB/CwiA9vfzcXUECBAgQIAAAQIECBAgQIAAAQIECHQhIADaBZ6qBAgQIECAAAECBAgQIECAAAECBAj0t4AAaH8/H1dHgAABAgQIECBAgAABAgQIECBAgEAXAgKgXeCpSoAAAQIECBAgQIAAAQIECBAgQIBAfwsIgPb383F1BAgQIECAAAECBAgQIECAAAECBAh0ISAA2gWeqgQIECBAgAABAgQIECBAgAABAgQI9LeAAGh/Px9XR4AAAQIECBAgQIAAAQIECBAgQIBAFwICoF3gqUqAAAECBAgQIECAAAECBAgQIECAQH8LCID29/NxdQQIECBAgAABAgQIECBAgAABAgQIdCEgANoFnqoECBAgQIAAAQIECBAgQIAAAQIECPS3gABofz8fV0eAAAECBAgQIECAAAECBAgQIECAQBcCAqBd4KlKgAABAgQIECBAgAABAgQIECBAgEB/CwiA9vfzcXUECBAgQIAAAQIECBAgQIAAAQIECHQhIADaBZ6qBAgQIECAAAECBAgQIECAAAECBAj0t4AAaH8/H1dHgAABAgQIECBAgAABAgQIECBAgEAXAgKgXeCpSoAAAQIECBAgQIAAAQIECBAgQIBAfwsIgPb383F1BAgQIECAAAECBAgQIECAAAECBAh0ISAA2gWeqgQIECBAgAABAgQIECBAgAABAgQI9LeAAGh/Px9XR4AAAQIECBAgQIAAAQIECBAgQIBAFwICoF3gqUqAAAECBAgQIECAAAECBAgQIECAQH8LCID29/NxdQQIECBAgAABAgQIECBAgAABAgQIdCEwtYu6qhIgQIAAAQIECBAgQGDCCEydOjWtv/76lfczbdq0ynyZBAgQIECAQP8LCID2/zNyhQQIECBAgAABAgQI9EBg0UUXTWeffXYPzuQUBAgQIECAQC8FDIHvpbZzESBAgAABAgQIECBAgAABAgQIECDQUwEB0J5yOxkBAgQIECBAgAABAgQIECBAgAABAr0UEADtpbZzESBAgAABAgQIECBAgAABAgQIECDQUwEB0J5yOxkBAgQIECBAgAABAgQIECBAgAABAr0UEADtpbZzESBAgAABAgQIECBAgAABAgQIECDQUwEB0J5yOxkBAgQIECBAgAABAgQIECBAgAABAr0UEADtpbZzESBAgAABAgQIECBAgAABAgQIECDQUwEB0J5yOxkBAgQIECBAgAABAgQIECBAgAABAr0UEADtpbZzESBAgAABAgQIECBAgAABAgQIECDQUwEB0J5yOxkBAgQIECBAgAABAgQIECBAgAABAr0UEADtpbYZaXFIAABAAElEQVRzESBAgAABAgQIECBAgAABAgQIECDQUwEB0J5yOxkBAgQIECBAgAABAgQIECBAgAABAr0UEADtpbZzESBAgAABAgQIECBAgAABAgQIECDQUwEB0J5yOxkBAgQIECBAgAABAgQIECBAgAABAr0UEADtpbZzESBAgAABAgQIECBAgAABAgQIECDQUwEB0J5yOxkBAgQIECBAgAABAgQIECBAgAABAr0UEADtpbZzESBAgAABAgQIECBAgAABAgQIECDQUwEB0J5yOxkBAgQIECBAgAABAgQIECBAgAABAr0UEADtpbZzESBAgAABAgQIECBAgAABAgQIECDQUwEB0J5yOxkBAgQIECBAgAABAgQIECBAgAABAr0UEADtpbZzESBAgAABAgQIECBAgAABAgQIECDQUwEB0J5yOxkBAgQIECBAgAABAgQIECBAgAABAr0UEADtpbZzESBAgAABAgQIECBAgAABAgQIECDQU4GpPT2bkxEgQIAAAQIECBAgQKBPBebMmZPuueeeyqtbZZVV0nzzzVd5TCYBAgQIECDQ3wICoP39fFwdAQIECBAgQIAAAQI9EvjLX/6S3v72t1ee7eKLL06rrrpq5TGZBAgQIECAQH8LGALf38/H1REgQIAAAQIECBAgQIAAAQIECBAg0IWAAGgXeKoSIECAAAECBAgQIECAAAECBAgQINDfAgKg/f18XB0BAgQIECBAgAABAgQIECBAgAABAl0ICIB2gacqAQIECBAgQIAAAQIECBAgQIAAAQL9LSAA2t/Px9URIECAAAECBAgQIECAAAECBAgQINCFgABoF3iqEiBAgAABAgQIECBAgAABAgQIECDQ3wICoP39fFwdAQIECBAgQIAAAQIECBAgQIAAAQJdCAiAdoGnKgECBAgQIECAAAECBAgQIECAAAEC/S0gANrfz8fVESBAgAABAgQIECBAgAABAgQIECDQhYAAaBd4qhIgQIAAAQIECBAgQIAAAQIECBAg0N8CAqD9/XxcHQECBAgQIECAAAECBAgQIECAAAECXQgIgHaBpyoBAgQIECBAgAABAgQIECBAgAABAv0tIADa38/H1REgQIAAAQIECBAgQIAAAQIECBAg0IWAAGgXeKoSIECAAAECBAgQIECAAAECBAgQINDfAgKg/f18XB0BAgQIECBAgAABAgQIECBAgAABAl0ICIB2gacqAQIECBAgQIAAAQIECBAgQIAAAQL9LSAA2t/Px9URIECAAAECBAgQIECAAAECBAgQINCFgABoF3iqEiBAgAABAgQIECBAgAABAgQIECDQ3wICoP39fFwdAQIECBAgQIAAAQIECBAgQIAAAQJdCAiAdoGnKgECBAgQIECAAAECBAgQIECAAAEC/S0gANrfz8fVESBAgAABAgQIECBAgAABAgQIECDQhYAAaBd4qhIgQIAAAQIECBAgQIAAAQIECBAg0N8CAqD9/XxcHQECBAgQIECAAAECBAgQIECAAAECXQhM7aKuqgQIECBAgAABAgQIEJgwAlOmTEkrrbRS5f3MM888lfkyCRAgQIAAgf4XEADt/2fkCgkQIECAAAECBAgQ6IHA4osvnn7605/24ExOQYAAAQIECPRSwBD4Xmo7FwECBAgQIECAAAECBAgQIECAAAECPRUQAO0pt5MRIECAAAECBAgQIECAAAECBAgQINBLAQHQXmo7FwECBAgQIECAAAECBAgQIECAAAECPRUQAO0pt5MRIECAAAECBAgQIECAAAECBAgQINBLAQHQXmo7FwECBAgQIECAAAECBAgQIECAAAECPRUQAO0pt5MRIECAAAECBAgQIECAAAECBAgQINBLAQHQXmo7FwECBAgQIECAAAECBAgQIECAAAECPRUQAO0pt5MRIECAAAECBAgQIECAAAECBAgQINBLAQHQXmo7FwECBAgQIECAAAECBAgQIECAAAECPRUQAO0pt5MRIECAAAECBAgQIECAAAECBAgQINBLAQHQXmo7FwECBAgQIECAAAECBAgQIECAAAECPRUQAO0pt5MRIECAAAECBAgQIECAAAECBAgQINBLAQHQXmo7FwECBAgQIECAAAECBAgQIECAAAECPRUQAO0pt5MRIECAAAECBAgQIECAAAECBAgQINBLAQHQXmo7FwECBAgQIECAAAECBAgQIECAAAECPRUQAO0pt5MRIECAAAECBAgQIECAAAECBAgQINBLAQHQXmo7FwECBAgQIECAAAECBAgQIECAAAECPRUQAO0pt5MRIECAAAECBAgQIECAAAECBAgQINBLAQHQXmo7FwECBAgQIECAAAECBAgQIECAAAECPRUQAO0pt5MRIECAAAECBAgQIECAAAECBAgQINBLAQHQXmo7FwECBAgQIECAAAECBAgQIECAAAECPRUQAO0pt5MRIECAAAECBAgQIECAAAECBAgQINBLAQHQXmo7FwECBAgQIECAAAECBAgQIECAAAECPRWY2tOzORkBAgQIECBAgAABAgT6VODll19Ojz/+eOXVLbnkkmnqVH8+VeLIJECAAAECfS7gX/A+f0AujwABAgQIECBAgACB3gg888wzaauttqo82cUXX5xWXXXVymMyCRAgQIAAgf4WMAS+v5+PqyNAgAABAgQIECBAgAABAgQIECBAoAsBAdAu8FQlQIAAAQIECBAgQIAAAQIECBAgQKC/BQRA+/v5uDoCBAgQIECAAAECBAgQIECAAAECBLoQEADtAk9VAgQIECBAgAABAgQIECBAgAABAgT6W0AAtL+fj6sjQIAAAQIECBAgQIAAAQIECBAgQKALAQHQLvBUJUCAAAECBAgQIECAAAECBAgQIECgvwUEQPv7+bg6AgQIECBAgAABAgQIECBAgAABAgS6EBAA7QJPVQIECBAgQIAAAQIECBAgQIAAAQIE+ltAALS/n4+rI0CAAAECBAgQIECAAAECBAgQIECgCwEB0C7wVCVAgAABAgQIECBAgAABAgQIECBAoL8FBED7+/m4OgIECBAgQIAAAQIECBAgQIAAAQIEuhAQAO0CT1UCBAgQIECAAAECBAgQIECAAAECBPpbQAC0v5+PqyNAgAABAgQIECBAgAABAgQIECBAoAsBAdAu8FQlQIAAAQIECBAgQIAAAQIECBAgQKC/BQRA+/v5uDoCBAgQIECAAAECBAgQIECAAAECBLoQEADtAk9VAgQIECBAgAABAgQIECBAgAABAgT6W0AAtL+fj6sjQIAAAQIECBAgQIAAAQIECBAgQKALAQHQLvBUJUCAAAECBAgQIECAAAECBAgQIECgvwUEQPv7+bg6AgQIECBAgAABAgQIECBAgAABAgS6EBAA7QJPVQIECBAgQIAAAQIECBAgQIAAAQIE+ltAALS/n4+rI0CAAAECBAgQIECAAAECBAgQIECgCwEB0C7wVCVAgAABAgQIECBAgAABAgQIECBAoL8FBED7+/m4OgIECBAgQIAAAQIECBAgQIAAAQIEuhCY2kVdVQkQIECAAAECBAgQIDBhBKZMmZIWXXTRyvuJYxIBAgQIECAwPgUEQMfnc3PVBAgQIECAAAECBAiMsMDiiy+ebrrpphFuVXMECBAgQIDAWAv4GnOsn4DzEyBAgAABAgQIECBAgAABAgQIECAwagICoKNGq2ECBAgQIECAAAECBAgQIECAAAECBMZaQAB0rJ+A8xMgQIAAAQIECBAgQIAAAQIECBAgMGoCAqCjRqthAgQIECBAgAABAgQIECBAgAABAgTGWkAAdKyfgPMTIECAAAECBAgQIECAAAECBAgQIDBqAgKgo0arYQIECBAgQIAAAQIECBAgQIAAAQIExlpAAHSsn4DzEyBAgAABAgQIECBAgAABAgQIECAwagICoKNGq2ECBAgQIECAAAECBAgQIECAAAECBMZaQAB0rJ+A8xMgQIAAAQIECBAgQIAAAQIECBAgMGoCAqCjRqthAgQIECBAgAABAgQIECBAgAABAgTGWkAAdKyfgPMTIECAAAECBAgQIECAAAECBAgQIDBqAgKgo0arYQIECBAgQIAAAQIECBAgQIAAAQIExlpAAHSsn4DzEyBAgAABAgQIECBAgAABAgQIECAwagICoKNGq2ECBAgQIECAAAECBAgQIECAAAECBMZaQAB0rJ+A8xMgQIAAAQIECBAgQIAAAQIECBAgMGoCAqCjRqthAgQIECBAgAABAgQIECBAgAABAgTGWkAAdKyfgPMTIECAAAECBAgQIECAAAECBAgQIDBqAlNHreUJ2vBBBx2UbrrppvSJT3wi7bbbbm3d5UsvvZQuvfTSdMUVV6SHH344Pf/882mttdZKM2bMSJtuumlac801e9pOWydTiAABAgQIECBAgAABAgQIECBAgMAEEBAA7eAhnn/++Xnws4Mq6cknn0wHHnhgeuCBBxqq3XLLLSl+zjjjjHTIIYek7bffvuF4eWek2im3a58AAQIECBAgQIAAAQIECBAgQIDARBYQAG3z6V5++eXpa1/7Wpul/1Fs5syZ6VOf+lQ9+LnqqqumzTffPC255JLptttuS9dcc02aPXt2Ovzww1OU3XXXXSvbH6l2KhuXSYAAAQIECBAgQIAAAQIECBAgQGACCwiADvFwZ82alU455ZR07rnnpoGBgSFKNx4+7bTT0n333Zdnbr311umwww5L88wzT76/8847p9tvvz0dfPDBefDz+OOPT1tssUWaPn16YyPZ3ki1M6hhGQQIECBAgAABAgQIECBAgAABAgQmuIBFkFo84Oiluffee6ezzz47vfzyyy1KDj707LPPposuuig/sNRSSzUEP2ul11133Tw/9mOe0Fr52vF4Hal2im3aJkCAAAECBAgQIECAAAECBAgQIDBZBARAK5509PQ89thj00c/+tH0yCOP5CVWXHHFthc9igo///nP0wsvvJDX3WWXXeo9P/OMwn9iSPwKK6yQ50QAdM6cOYWjI9dOQ6N2CBAgQIAAAQIECBAgQIAAAQIECEwSAQHQigcdvT0vuOCC+pGddtopHwYfc3jW0lxzzVXbrHy988476/kbbbRRfbtq4/Wvf32e/fTTT6df/vKXDUVGqp2GRu0QIECAAAECBAgQIFApEJ0Yqn46nQ6rsnGZBAgQIECAwJgImAO0BfuGG26YD4GPoeqdprvuuiuvEoHSVVZZpWX1YmD1/vvvT8WA6Ui10/ICHCRAgAABAgQIECBAID311FP5oqVVFBdffHEq/n97VRl5BAgQIECAQH8KCIBWPJcpU6akE044Ia2zzjoVR9vLevTRR/OCseL71KmtmZdeeul6ow899FB9OzZGqp2GRgs7v/nNb9IzzzxTyGncfO6559L888+fXnzxxY7nQW1syR4BAgQIECBAgAABAgQIECBAgACB3gu0jsz1/nr64ozRa7Ob4GcMmaktmrTYYosNeU+LLrpovUwselRLI9VOrb2q1+OOOy5dffXVVYfqea9+9avTww8/XJ/TtH7ABgECBAgQIECAAAECBAgQIECAAIE+FzAH6Cg8oJkzZ9ZbnW+++erbzTaKZaKnZS2NVDu19rwSIECAAAECBAgQIECAAAECBAgQmGwCAqCj8MSff/75eqvzzjtvfbvZRrHMrFmz6sVGqp16gzYIECBAgAABAgQIECBAgAABAgQITDIBQ+BH4YEX5/x86aWXhjzDnDlz6mWKwdCRaqfeeMXGG9/4xhTzlDZLV1xxRXrggQdS8RqblZVPgAABAgQIECBAgAABAgQIECBAoN8EBEBH4Ym86lWvqrc6e/bs+nazjWKZBRZYoF5spNqpN1ix8e53v7si95Ws3/72t+mmm256JcMWAQIECBAgQIAAAQIECBAgQIAAgXEkYAj8KDysWDW9lorzeNbyyq/Foe7FAOhItVM+n30CBAgQIECAAAECBAgQIECAAAECk0VAAHQUnnQsarTEEkvkLT/xxBNDnuHxxx+vl1l88cXr2yPVTr1BGwQIECBAgAABAgQIECBAgAABAgQmmYAA6Cg98JVWWilvOXp3/vnPf255lkceeaR+fK211qpvx8ZItdPQqB0CBAgQIECAAAECBAgQIECAAAECk0RAAHSUHvTaa69db/nXv/51fbtq4/bbb69nF+tFZnG/m3bqJ7BBgAABAgQIECBAgAABAgQIECBAYBIJCICO0sPeaqut6i3/7Gc/q2+XN2L4+69+9as8e4011kjFIfCROVLtlM9rnwABAgQIECBAgAABAgQIECBAgMBkEBAAHaWnvNpqq6UIaEa69tprU1UQdNasWenLX/5yeumll/Jye+21V/5a/M9ItVNs0zYBAgQIECBAgAABAgQIECBAgACBySIgADqKT/qAAw6ot37EEUekM844Iz322GNpzpw5KYa9H3jggenWW2/Ny8RQ9y233LJevrgxUu0U27RNgAABAgQIECBAgAABAgQIECBAYDIITJ0MNzlW97jOOuukL37xi+nII49ML774Yjr55JPzn7nnnrve6zOubfnll09HHXVUmjKlOh49Uu2MlYPzEiBAgAABAgQIECBAgAABAgQIEBgrgeqI21hdzQQ87zbbbJNOPPHEfDh8LcBZG/I+derUtPvuu+fHF1100ZZ3P1LttDyJgwQIECBAgAABAgQIECBAgAABAgQmmIAeoB080Le+9a0pfjpNK6+8ct7zM3qB3nvvvSkWPlpuueXSiiuumBZccMG2mxupdto+oYIECBAgQIAAAQIECBAgQIAAAQIExrmAAGgPH+C0adPSjBkz8p9uTjtS7XRzDeoSIECAAAECBAgQIECAAAECBAgQGA8ChsCPh6fkGgkQIECAAAECBAgQIECAAAECBAgQGJaAAOiw2FQiQIAAAQIECBAgQIAAAQIECBAgQGA8CAiAjoen5BoJECBAgAABAgQIECBAgAABAgQIEBiWgADosNhUIkCAAAECBAgQIECAAAECBAgQIEBgPAgIgI6Hp+QaCRAgQIAAAQIECBAgQIAAAQIECBAYloAA6LDYVCJAgAABAgQIECBAgAABAgQIECBAYDwICICOh6fkGgkQIECAAAECBAgQIECAAAECBAgQGJbA1GHVUokAAQIECBAgQIAAAQITTGD69Onp7rvvnmB35XYIECBAgAABPUC9BwgQIECAAAECBAgQIECAAAECBAgQmLACAqAT9tG6MQIECBAgQIAAAQIECBAgQIAAAQIEBEC9BwgQIECAAAECBAgQIECAAAECBAgQmLACAqAT9tG6MQIECBAgQIAAAQIECBAgQIAAAQIEBEC9BwgQIECAAAECBAgQIECAAAECBAgQmLACAqAT9tG6MQIECBAgQIAAAQIECBAgQIAAAQIEBEC9BwgQIECAAAECBAgQIECAAAECBAgQmLACAqAT9tG6MQIECBAgQIAAAQIECBAgQIAAAQIEBEC9BwgQIECAAAECBAgQIECAAAECBAgQmLACAqAT9tG6MQIECBAgQIAAAQIECBAgQIAAAQIEBEC9BwgQIECAAAECBAgQIECAAAECBAgQmLACAqAT9tG6MQIECBAgQIAAAQIECBAgQKBfBJ58MqUnnnjlau6665VtWwQIjK6AAOjo+mqdAAECBAgQIECAAAECBAgQmMQCt96a0vbbp7TMMin97/++AvG2t6W0wgopHX98Sn//+yv5tggQGHkBAdCRN9UiAQIECBAgQIAAAQIECBAgQCAdfXRKG2+c0mWXpfTyy4NBHnkkpY9/PKUttkjpT38afFwOAQIjIyAAOjKOWiFAgAABAgQIECBAgAABAgQI1AWOOSalT3+6OvBZL/R/GzfemNJ226X0t7+Vj9gnQGAkBARAR0JRGwQIECBAgAABAgQIECBAgACB/xO4/faUDj64M4477ui8TmdnUJrA5BUQAJ28z96dEyBAgAABAgQIECBAgAABAqMg8PnPt9fzs3zqk05K6Q9/KOfaJ0CgWwEB0G4F1SdAgAABAgQIECBAgAABAgQI/J/Ac8+ldOmlw+OYMyel888fXl21CBBoLiAA2tzGEQIECBAgQIAAAQIECBAgQIBARwIx/H3WrI6qNBS++eaGXTsECIyAgADoCCBqggABAgQIECBAgAABAgQIECAQAo8/3p3DE090V19tAgQGCwiADjaRQ4AAAQIECBAgQIAAAQIECBAYlsCiiw6rWr3SIovUN20QIDBCAgKgIwSpGQIECBAgQIAAAQIECBAgQIDAGmt0Z7Dmmt3VV5sAgcECAqCDTeQQIECAAAECBAgQIECAAAECBIYlsNxyKS255LCq5pV22WX4ddUkQKBaQAC02kUuAQIECBAgQIAAAQIECBAgQKAjgYGBlD7ykZSefLKjavXC22yT0kYb1XdtECAwQgJTR6gdzRAgQIAAAQIECBAgQGBcCzz99NNp6623rryHCy64IK2yyiqVx2QSIEAgBCL4+eEPp3TCCcPziLk/v/nN4dVViwCB1gICoK19HCVAgAABAgQIECBAYJIIDGTRi1mzZlXebRyTCBAg0EwgPiL23z+lE09sVqJ1/rzzpnThhSl1O39o67M4SmDyChgCP3mfvTsnQIAAAQIECBAgQIAAAQIEuhToNvgZp485Q7faqssLUZ0AgaYCAqBNaRwgQIAAAQIECBAgQIAAAQIECDQXiODnhz7UuufnfPOldN55KZ11VkrTp1e39eijKf3mN9XH5BIg0L2AAGj3hlogQIAAAQIECBAgQIAAAQIEJplALfj57W83v/EIfmZTCKfdd09pzz1Teu1rm5f92c+aH3OEAIHuBARAu/NTmwABAgQIECBAgAABAgQIEJhkAhH83G+/lIYKfsa8njvu+ApOzPXZLAmANpORT6B7AQHQ7g21QIAAAQIECBAgQIAAAQIECEwSgQh+7rtvSied1PyGo+dnBD932KF5mfKRa69Nafbscq59AgRGQkAAdCQUtUGAAAECBAgQIECAAAECBAhM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IIAAAggggAACCCCAAAIVFgha/7Ndu0ywqsLV4/YxE9i4MX+Fp0+XxoyRvvIVafXq/GU5ikBjChAAbUxdro0AAggggAACCCCAAAIIIIBAhASC1v8cOVJq0SJCFaUqkRe45RbpnnsKq+aDD0rHHCPVFzAt7GqUQqB4AQKgxZtxBgIIIIAAAggggAACCCCAAAKxE/j0U+mFF9zVzjeV2X0GudUsMGuWdMEFxQk88YR0443FnUNpBMolQAC0XJJcBwEEEEAAAQQQQAABBBBAAIEIC4wfHzwCj/U/I9xxEazaj38c/FrKV91rr5WWLctXgmMINI4AAdDGceWqCCCAAAIIIIAAAggggAACCERKIGj9z549JduwhoRAIQIffywFLaVQ3/nLl0uPPVZfKY4jUH4BAqDlN+WKCCCAAAIIIIAAAggggAACCEROIChoxfT3yHVVpCv03HOljf70GzVtmv+I7wiEJ0AANDxr7oQAAggggAACCCCAAAIIIIBARQRef1166y33rQmAul3IdQu8/747v9Dc994rtCTlECifAAHQ8llyJQQQQAABBBBAAAEEEEAAAQQiKRA0+rNJE2nUqEhWmUpFVKB9+4ZVbMIE6aGHpFSqYdfhbASKEWheTGHKIoAAAggggAACCCCAAAIIIIBA/ASC1v/cay9pq63i15441XjixIkabztQeem1116rqfrPf/5zderUSe29iOJFF11Ukx/1B337NqyGS5dKxxwj7bmndMUV0pgxDbseZyNQiAAB0EKUKIMAAggggAACCCCAAAKJF1ixYoV+8pOfONtpwYkePXo4j5GJQNQFNm6UbNSdK7H7u0ulvHlTpkzR1VdfnXPRX//61+k8e2+JUwB0jz0k2zhr0aKcJhWV8dJL0lFHSQMHZgKhRx5Z1OkURqAoAQKgRXFRGAEEEEAAAQQQQAABBJIqsHbtWj3++OPO5n3nO99x5pOJQBwEZsyQli1z15T1P90u5AYL2LIJ558vff/7wWWKOTJrVmYUqI1G/ulPpSOOKOZsyiJQmAAB0MKcKIUAAggggAACCCCAAAIIIIBALAWC1v9s00bad99YNilWlT7uuOPUr1+/wDq3bt068FhUD5x9tvTAA5IF18uVXnxR+tKXpEGDpCuvlA4/vFxX5joISARAeRUggAACCCCAAAIIIIAAAgggkGCBoPU/DzhAatUq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H+cIAggg4AtceKH08MPSSy/5OfV/HzBAauj6ofXfpfFKEABtPFuujAACCCCAAAIIIIAAAjESWLNmje677z5njU866SQCoE4ZMhtTIJWSzjors3tzffdZtUqy3Z6PPba+khxHAIFqF2jTRnr0Uemww6S5c+vXsHU/H3ssvqM/rYVMga+/nymBAAIIIIAAAggggAACCCCAQOgCl15aWPDTKrZpk+TF6fXss6FXkxsigEAMBXr2lKZNk77/fallS3cDWrSQvvtdafp0afvt3WXikksANC49RT0RQAABBBBAAAEEEEAAAQSqRmDOHOm664prrq0T+s1vSvk2SiruipRGAIEkC9jSGbfcklle43e/k2yTI0sWEL3rLumdd6Rf/Urq0CGTH+d/CYDGufeoOwIIIIAAAggggAACCCCAQCIFrr02M6qz2MbNny/94x/FnkV5BBCoZgFb4vq002oDnTZF/vTTpe7dk6NCADQ5fUlLEEAAAQQQQAABBBBAAAEEEiCwfr30+OOlN8TWAiUhgAACCNQKEACtteARAggggAACCCCAAAIIIIAAAhUXePddafny0qvx8suln8uZCCCAQBIFCIAmsVdpEwIIIIAAAggggAACCCCAQGwFPv20YVVv6PkNuztnI4AAAtETIAAavT6hRggggAACCCCAAAIIIIAAAlUs0K1bwxrf0PMbdnfORgABBKInQAA0en1CjRBAAAEEEEAAAQQQQAABBKpYYOutpW22KR1g0KDSz+VMBBBAIIkCBECT2Ku0CQEEEEAAAQQQQAABBBBAILYCTZpIxx9fevVPOKH0czkTAQQQSKIAAdAk9iptQgABBBBAAAEEEEAAAQQQiLXARRdJbdsW34RRo6QDDij+PM5AAAEEkixAADTJvUvbEEAAAQQQQAABBBBAAAEEYilg0+Dvvru4qnfvLt17b3HnUBoBBBCoBgECoNXQy7QRAQQQQAABBBBAAAEEEEAgdgInnijdc4/UsmX9Vd9xR+mpp6ReveovSwkEEECg2gQIgFZbj9NeBBBAAAEEEEAAAQQQQACB2Ah84xvSiy9KRx4pNWuWW+2OHaWLL5ZmzZIGDMg9Tg4CCCCAgEQAlFcBAggggAACCCCAAAIIIIAAAhEWsMDmww9LH3wgHX54bUVvuklaskS69lrJAqEkBBBAAAG3AAFQtwu5CCCAAAIIIIAAAggggAACCERKoEsXyaa6+2nPPaUWLfxnfEcAAQQQCBIgABokQz4CCCCAAAIIIIAAAggggAACCCCAAAIIxF6AAGjsu5AGIIAAAggggAACCCCAAAIIIIAAAggggECQAAHQIBnyEUAAAQQQQAABBBBAAAEEEEAAAQQQQCD2AgRAY9+FNAABBBBAAAEEEEAAAQQQQAABBBBAAAEEggQIgAbJkI8AAggggAACCCCAAAIIIIAAAggggAACsRcgABr7LqQBCCCAAAIIIIAAAggggAACCCCAAAIIIBAkQAA0SIZ8BBBAAAEEEEAAAQQQQAABBBBAAAEEEIi9AAHQ2HchDUAAAQQQQAABBBBAAAEEEEAAAQQQQACBIIHmQQfIRwABBBBAAAEEEEAAAQSqSaBt27a64IILnE3u0qWLM59MBBBAAAEEEIi+AAHQ6PcRNUQAAQQQQAABBBBAAIEQBLbYYgudfvrpIdyJWyCAAAIIIIBAmAJMgQ9Tm3shgAACCCCAAAIIIIAAAggggAACCCCAQKgCBEBD5eZmCCCAAAIIIIAAAggggAACCCCAAAIIIBCmAAHQMLW5FwIIIIAAAggggAACCCCAAAIIIIAAAgiEKkAANFRuboYAAggggAACCCCAAAIIIIAAAggggAACYQoQAA1Tm3shgAACCCCAAAIIIIAAAggggAACCCCAQKgCBEBD5eZmCCCAAAIIIIAAAggggAACCCCAAAIIIBCmAAHQMLW5FwIIIIAAAggggAACCCCAAAIIIIAAAgiEKkAANFRuboYAAggggAACCCCAAAIIIIAAAggggAACYQoQAA1Tm3shgAACCCCAAAIIIIAAAggggAACCCCAQKgCBEBD5eZmCCCAAAIIIIAAAggggAACCCCAAAIIIBCmAAHQMLW5FwIIIIAAAggggAACCCCAAAIIIIAAAgiEKkAANFRuboYAAggggAACCCCAAAIIIIAAAggggAACYQoQAA1Tm3shgAACCCCAAAIIIIAAAggggAACCCCAQKgCBEBD5eZmCCCAAAIIIIAAAggggAACCCCAAAIIIBCmAAHQMLW5FwIIIIAAAggggAACCCCAAAIIIIAAAgiEKkAANFRuboYAAggggAACCCCAAAIIIIAAAggggAACYQoQAA1Tm3shgAACCCCAAAIIIIAAAggggAACCCCAQKgCBEBD5eZmCCCA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zDRr1syJZz766COvGpBat26d1sD5wQcfeNUAobwztYFs9uzZXjmw9e1zDRByzEs+n8KWW24ZOOjVMCb79CXIQZhaNlPjpvIXX4IaVlLl861upIbNVPn0Xfdp6gk13qbKp3KZyme+hMy6kcrVKl/7EtS4qfzTBd/qRiqXpdaNVK9V/daXwBB4XzRZZjmuueYaM3PmzDI/Jfz26rH02muvBSebN29uevToEexX+4Y+6m+88UYgRsuWLU23bt2C/Wrf0Ef9rbfeCsRQhbBLly7BfrVvfPXVV+bdd98NxFCFadtttw32q31DBZbUSpEKbFtttVW1ixWkf968eebjjz8O9rfZZpu0Qk1woko35DBLrTRst912ZosttqhSaWon+8MPP0xrUOnatWuaQ7T2FdV15L333ksbfbHjjjumOUSrS5raqX3nnXfSGhx22WWXtBEfta+oriNvvvlm2rzpe+yxR1qP8+qSpnZqZ8yYkeaQ79Wrl0nt0Vv7iuo6onnv3YgHOdT69OlTXQLkSa3mM3U9ruXo3XPPPfNcUT2n1SNy6tSpQYLlkNltt92C/WrfkEN32rRpgRhyWOy0007BfrVvyKGr/MUFNXZ2797d7Vb979KlS9Pq1Rreu/3221e9XE4AOctmzZrldk3btm1Np06dgv1q35BD8P333w/E8K1uJGd8aoPR1ltvbdq3bx/IW+mN0aNHm9Qe/cU+HwdosQS5vuwE5KAYMGBA8JyePXuau+++O9iv9g1VAA855JBAjH322cfcfPPNwX61b6gAetJJJwViSFY51H0JTz75pBkyZEggzsknn2x+97vfBfvVvqE5gC+88MJADMk6dOjQYL/aN26//XZz1VVXBWIMHz7c/PSnPw32q33jhhtuMCo4uHD11VebQw891O1W/e+ll15qxo4dG8jxl7/8xey7777BfrVvnHvuuebRRx8NxJCsPjkpTj/9dPPss88G8o0bN87ssMMOwX61bxx77LFpDbjPPfecrQhWu1wu/QcccEBaA9n06dPTery6eNX6269fv2BEhxyEcXUEKBe/nXfeOehxrd7YL774YrkeVfH7qvOEGlRckPNlwoQJbrfqf9U4/cMf/jCQY9dddzX33XdfsF/tG3IuDRo0KBBDst56663BfrVvyHl93HHHBWIceOCBZtSoUcF+tW8888wz5he/+EUgxvHHH28uvvjiYL/aNx555BFz3nnnBWKcccYZZtiwYcF+tW/84x//MJdffnkghmT92c9+FuxX+0bNxETVLgnphwAEIAABCEAAAhCAAAQgAAEIQAACEIAABCCQQQAHaAYQdiEAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAF/COAA9UeXSAIBCEAAAhCAAAQgAAEIQAACEIAABCAAAQhkEMABmgGEXQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQMAfAjhA/dElkkAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIZBHCAZgBhFwIQgAAEIAABCEAAAhCAAAQgAAEIQAACEPCHQEN/REESXwk0adLEDBo0KBCvc+fOwbYPGy1atEiTb6eddvJBrECGzTffPE2+3XbbLTjnw0a7du3S5OvRo4cPYgUybLXVVmny7bDDDsE5HzaUn6TmL506dfJBrEAG6StVvo4dOwbnfNhQfpkqX9u2bX0QK5BB+eWaNWuC/c022yzY9mGjd+/epmnTpoEo+h76FPbee2+z5ZZbBiI1btw42PZho3///qZbt26BKA0aNAi2fdjYf//9zeLFi60oDRv6V2U64IADzLfffmvla968uQ8qC2SoX7++198G5SWp375tt902kN2HjWbNmqXJ1717dx/ECmTQtzxVf3vssUdwzoeNNm3apMnnW922Q4cOafJ17drVB7UFMig/SbXP7bbbLjjnw0a9deuDD4IgAwQgAAEIQAACEIAABCAAAQhAAAIQgAAEIACBTAIMgc8kwj4EIAABCEAAAhCAAAQgAAEIQAACEIAABCDgDQEcoN6oEkEgAAEIQAACEIAABCAAAQhAAAIQgAAEIACBTAI4QDOJsA8BCEAAAhCAAAQgAAEIQAACEIAABCAAAQh4QwAHqDeqRBAIQAACEIAABCAAAQhAAAIQgAAEIAABCEAgkwAO0Ewi7EMAAhCAAAQgAAEIQAACEIAABCAAAQhAAALeEMAB6o0qEQQCEIAABCAAAQhAAAIQgAAEIAABCEAAAhDIJIADNJMI+xCAAAQgAAEIQAACEIAABCAAAQhAAAIQgIA3BHCAeqNKBIEABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQyCTTMPMA+BCBQfgKrV682G220UcEPWrx4sfnmm2/sdW3atCn4+qRcsHDhQjNnzhyzcuVKs/3225vNN988KUkrSTq+++478/rrr9t7tW3b1rRv374k9437JtLXhx9+aD744AMjW9xqq63M1ltvbX8bNGgQd/JK8vylS5daGSWr3rEOHTrU6V0tSWJy3ET5wPPPP29j7LbbbqZ169Y5Ym84p9asWWP1p/ylcePGZocddjCbbbZZVQGQDc6bN88sW7bMaHvFihVWlqZNm5pmzZqZli1bVn2eIvtdsGCBWbVqlf1Tnunk0++mm25aVTrbUBL77bffmoYNG5p69eoVJLLey6+++speI/3qj1B5ApQ9KXtW3uqKf+KGUPbUN1DlFv01b97cbLnllomtG7399ts2nfpO9+rVq3gFe3IHfeM++ugj+63bZpttTKdOnez3slrE2xDKnk4X9datD26HXwhAoHwEJk2aZMaPH29mzZplvv76a+s46t69uzn44IPNLrvsEunB559/vpk8ebKN65wfkS6sUCQVrufPn28r6C1atKj11Pfff9/89a9/NS+++GLaOTlAjz32WHPMMccUXLFKu1FCduS4OOCAA2xqTj75ZPPzn/88ISlLT8arr75qpBMF2aEcRmFBld5//OMf5u9//7tRIS0zyBF65plnmh/+8IeZpxKxr/ftqaeeMlOmTDGDBw82O+64Y1q6VDm/9957zb/+9S/z5Zdfpp2Tw2mfffYxxx13nHX0pp2MceeLL74whx9+uE2B3p/LLrvM7LzzzjGmqLyPVsHs3XffNZ988ol19u6xxx61nCgTJkwwt99+u5k7d25aYtq1a2d+85vfmB/84Adpx5O0o0ahBx54wLzyyiv2G5GvaKaKh/Tds2dPc+CBB5omTZokSZzQtLz11lvm4YcfNjNmzLAO3lwyysmr93SnnXYygwYNSmxFMFRQzw4q/7zttttso54qd/pOdOvWzey+++72u73xxhvnlVjlntNOO83GO/XUU20+nPciIpSEAGVPY8s5lD1LYk4lucmGUvYULMmq+poa+y644IJa/FQG/9Of/mTeeOMNo7J2alAd8aCDDrJ/9esnZ9Du1Vdfbf7973/bpP7kJz8xw4YNM40aNUpNujfba9euNZ9++qktl0k/6rSjhvXU8Pnnn5sxY8aYJ5980ii+C2os3H///c0555xTq7zq4sT9uyGUPcMY4wANo8IxCJSQgFour732WjNx4sTQu6onxVFHHWVOP/10k68ikVQHqJwTN998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admypbXPiLgSFw350F/ijDIlQdgn9pliDoncXLhwoVmyZIlZtWqV+eabb8xGG21kvw/6RrRo0cJsvPHGiUx31EQhH/qLaitxxMM+sc847C7qM322T33vFixYYL99+v7J9+LqRvrddNNNo2JKdDwcoIlWz4aXuGeeecZMmjTJTJs2zXwr/F9uAAAzgElEQVT99dc5AWiOvu22287ssssuZuDAgaZHjx454yfhJPLVaAH91bBIypbP9qkCywMPPGBeeeUVM2vWLJNv9hd95HfeeWfTs2dPc+CBB5omTZokRU2h6UC+dCzoL51H3HvYZ7oGsM90HnHvqRFswoQJ5oknnjAffPCBWblyZdYkaS60zp07mx133NHsvffeZq+99jKa3y7JAflqtIP+algkZQv7rNEE9lnDIilbvtvnW2+9ZR5++GEzY8YM2zkkV/1IHUT07dtpp53MoEGDzOabb54UNRWUDuYALQgXkctFQL09r776ajN9+vQ6P0IF0V/+8pdmm222qfM9ynUh8uUni/7yMypXDN/t85///Kf529/+lrNSm4utPvgnn3yyOfLIIxNZ0UW+XNozBv3l5lPus9hnbsLYZ24+5Tz71VdfmTvuuMM6P3M5PXOloVOnTuaMM86wztBc8eI4h3z5qaO//IzKFQP7zE8W+8zPqFwxfLdPdTgbO3as7RRSF4aNGjUyBxxwgDnzzDPt6Lm63COua3CAxkWe5wYE1NVahUf1EHFBLQpbbrmlUeYzf/58s3btWntKTrJu3brZYzr+/vvv22Hy7rrmzZub66+/3uywww7uUOy/yIf+nBFin45E5X7l+FQF1wUNZezYsaPRh1uO3+XLl9tTGtIoJ6em3VDeMnfuXPPee++5y+yvWjvPP/98k6QV4pEP/TkjxT4dicr98v5V7/unqRiGDBlie3ymWozKn23btrUNJ/ou6JuhYYAaGqieQJ9//rn9Rnz77bfBZeoBqnsdffTRwbG4N5CvpZ2qAP0Z23CLfVb2jeT94/1zFpfE78O4cePMNddc45Jof/W9a9eundliiy3sFIPKO9UjefXq1fb7J5+MfBqLFi1Ku04jIkaOHGmvSzuR4B0coAlWzoaQNHWzHjx4sHU0yKnwk5/8xPzsZz8zrVq1CsRXofPee+81d911ly2E6oXdc8897fk1a9aY559/3vz73/82U6dOtcfk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" width="672" /></p>
<div class="sourceCode" id="cb36"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb36-1"><a href="#cb36-1" aria-hidden="true" tabindex="-1"></a>estimates_koguchi_number_WLS <span class="ot">&lt;-</span> df_estimates 　 <span class="co">#for robustness check</span></span>
<span id="cb36-2"><a href="#cb36-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb36-3"><a href="#cb36-3" aria-hidden="true" tabindex="-1"></a>results_koguchi_number_WLS <span class="ot">&lt;-</span> estimation_results <span class="co"># for only-post DID table</span></span></code></pre></div>
</div>
<div id="wls-no-trends-post-covid-month-dummies-tablec.5-2" class="section level2" number="6.3">
<h2><span class="header-section-number">6.3</span> WLS, no trends, post-covid-month dummies, TableC.5 (2)</h2>
<div class="sourceCode" id="cb37"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb37-1"><a href="#cb37-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb37-2"><a href="#cb37-2" aria-hidden="true" tabindex="-1"></a>estimation_results <span class="ot">&lt;-</span> <span class="fu">dynamic_onlypost_DID_WLS_notrend</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb37-3"><a href="#cb37-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>koguchi_number, </span>
<span id="cb37-4"><a href="#cb37-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>unemploy_shock_diff2)</span>
<span id="cb37-5"><a href="#cb37-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb37-6"><a href="#cb37-6" aria-hidden="true" tabindex="-1"></a>texreg<span class="sc">::</span><span class="fu">screenreg</span>(<span class="at">l =</span> estimation_results , <span class="at">include.ci =</span> <span class="cn">FALSE</span>, <span class="at">digits=</span><span class="dv">3</span>)</span></code></pre></div>
<pre><code>## 2 coefficients  not defined because the design matrix is rank deficient</code></pre>
<pre><code>## 
## ===================================
##                         Model 1    
## -----------------------------------
## treat_var:date_2020_02             
##                                    
## treat_var:date_2020_03             
##                                    
## treat_var:date_2020_04    18.693   
##                          (21.755)  
## treat_var:date_2020_05    73.809   
##                          (42.459)  
## treat_var:date_2020_06    88.737 **
##                          (32.461)  
## treat_var:date_2020_07    34.658   
##                          (21.043)  
## treat_var:date_2020_08    27.131   
##                          (14.347)  
## treat_var:date_2020_09    21.844   
##                          (15.209)  
## -----------------------------------
## R^2                        0.813   
## Adj. R^2                   0.798   
## Num. obs.                893       
## RMSE                    1373.807   
## N Clusters                47       
## ===================================
## *** p &lt; 0.001; ** p &lt; 0.01; * p &lt; 0.05</code></pre>
<div class="sourceCode" id="cb40"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb40-1"><a href="#cb40-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb40-2"><a href="#cb40-2" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_main</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb40-3"><a href="#cb40-3" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;unemploy_shock_diff2&quot;</span>,</span>
<span id="cb40-4"><a href="#cb40-4" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;koguchi_number_WLS&quot;</span>)</span>
<span id="cb40-5"><a href="#cb40-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb40-6"><a href="#cb40-6" aria-hidden="true" tabindex="-1"></a><span class="co"># Event study graph</span></span>
<span id="cb40-7"><a href="#cb40-7" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_WLS_onlypost <span class="ot">&lt;-</span> <span class="fu">event_study_graph_2nd_safetynet</span>(<span class="at">data =</span> df_estimates ,</span>
<span id="cb40-8"><a href="#cb40-8" aria-hidden="true" tabindex="-1"></a>                                          <span class="at">graph_title =</span> <span class="st">&quot;koguchi_number_WLS&quot;</span>)</span>
<span id="cb40-9"><a href="#cb40-9" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb40-10"><a href="#cb40-10" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_koguchi_number_WLS_onlypost)</span></code></pre></div>
<div id="htmlwidget-0a317d9d7b2533605fa5" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-0a317d9d7b2533605fa5">{"x":{"data":[{"x":[2,3,4,5,6,7,1],"y":[18.6925913771241,73.8090360068035,88.7370284918332,34.6580661163577,27.1309356604073,21.844165457461,0],"text":["month: 2020-04<br />estimate: 18.69259<br />label: blue<br />label: <br />label: ","month: 2020-05<br />estimate: 73.80904<br />label: blue<br />label: <br />label: ","month: 2020-06<br />estimate: 88.73703<br />label: blue<br />label: <br />label: ","month: 2020-07<br />estimate: 34.65807<br />label: blue<br />label: <br />label: ","month: 2020-08<br />estimate: 27.13094<br />label: blue<br />label: <br />label: ","month: 2020-09<br />estimate: 21.84417<br />label: blue<br />label: <br />label: ","month: 2020-01<br />estimate:  0.00000<br />label: blue<br />label: <br />label: "],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,0,255,1)","opacity":1,"size":9.4488188976378,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(0,0,255,1)"}},"hoveron":"points","legendgroup":"","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1,2,3,4,5,6,7],"y":[0,18.6925913771241,73.8090360068035,88.7370284918332,34.6580661163577,27.1309356604073,21.844165457461],"text":["month: 2020-01<br />estimate:  0.00000<br />label: blue<br />label: <br />label: ","month: 2020-04<br />estimate: 18.69259<br />label: blue<br />label: <br />label: ","month: 2020-05<br />estimate: 73.80904<br />label: blue<br />label: <br />label: ","month: 2020-06<br />estimate: 88.73703<br />label: blue<br />label: <br />label: ","month: 2020-07<br />estimate: 34.65807<br />label: blue<br />label: <br />label: ","month: 2020-08<br />estimate: 27.13094<br />label: blue<br />label: <br />label: ","month: 2020-09<br />estimate: 21.84417<br />label: blue<br />label: <br />label: "],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,0,255,1)","dash":"solid"},"hoveron":"points","legendgroup":"","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[2,3,4,5,6,7,1],"y":[18.6925913771241,73.8090360068035,88.7370284918332,34.6580661163577,27.1309356604073,21.844165457461,0],"text":["ci_lower: -17.8274062<br />ci_upper:  55.21259<br />width: 0.5<br />colour: black<br />month: 2020-04<br />estimate: 18.69259<br />label: black<br />label: <br />label: ","ci_lower:   2.5353659<br />ci_upper: 145.08271<br />width: 0.5<br />colour: black<br />month: 2020-05<br />estimate: 73.80904<br />label: black<br />label: <br />label: ","ci_lower:  34.2459203<br />ci_upper: 143.22814<br />width: 0.5<br />colour: black<br />month: 2020-06<br />estimate: 88.73703<br />label: black<br />label: <br />label: ","ci_lower:  -0.6651729<br />ci_upper:  69.98131<br />width: 0.5<br />colour: black<br />month: 2020-07<br />estimate: 34.65807<br />label: black<br />label: <br />label: ","ci_lower:   3.0476497<br />ci_upper:  51.21422<br />width: 0.5<br />colour: black<br />month: 2020-08<br />estimate: 27.13094<br />label: black<br />label: <br />label: ","ci_lower:  -3.6866963<br />ci_upper:  47.37503<br />width: 0.5<br />colour: black<br />month: 2020-09<br />estimate: 21.84417<br />label: black<br />label: <br />label: ","ci_lower:   0.0000000<br />ci_upper:   0.00000<br />width: 0.5<br />colour: black<br />month: 2020-01<br />estimate:  0.00000<br />label: black<br />label: <br />label: "],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[36.5199976105956,71.2736701397055,54.4911082083998,35.3232389804172,24.0832859798048,25.5308617324349,0],"arrayminus":[36.5199976105957,71.2736701397054,54.4911082083993,35.3232389804173,24.0832859798047,25.5308617324348,0],"type":"data","width":3.50000000000001,"symmetric":false,"color":"rgba(0,0,0,1)"},"legendgroup":"","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,7.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-25.9729118524706,153.228211765508],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":38.854296388543},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"koguchi_number_WLS","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,7.6],"tickmode":"array","ticktext":["2020-01","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7],"categoryorder":"array","categoryarray":["2020-01","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-25.9729118524706,153.228211765508],"tickmode":"array","ticktext":["0","50","100","150"],"tickvals":[0,50,100,150],"categoryorder":"array","categoryarray":["0","50","100","150"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","showSendToCloud":false},"source":"A","attrs":{"441167e85a77":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"4411478b6fec":{"x":{},"y":{},"colour":{},"shape":{}},"4411136113a6":{"ymin":{},"ymax":{},"width":{},"colour":{},"x":{},"y":{},"colour.1":{},"shape":{}},"44114a51013a":{"yintercept":{}},"4411c27acf4":{"xintercept":{}}},"cur_data":"441167e85a77","visdat":{"441167e85a77":["function (y) ","x"],"4411478b6fec":["function (y) ","x"],"4411136113a6":["function (y) ","x"],"44114a51013a":["function (y) ","x"],"4411c27acf4":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
<div class="sourceCode" id="cb41"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb41-1"><a href="#cb41-1" aria-hidden="true" tabindex="-1"></a>estimates_koguchi_number_WLS_onlypost <span class="ot">&lt;-</span> df_estimates <span class="co">#for robustness check</span></span>
<span id="cb41-2"><a href="#cb41-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb41-3"><a href="#cb41-3" aria-hidden="true" tabindex="-1"></a>results_koguchi_number_WLS_onlypost <span class="ot">&lt;-</span> estimation_results <span class="co"># for only-post DID table</span></span></code></pre></div>
</div>
</div>
<div id="y-emergency-small-amount-funds緊急小口の決定件数-with-covar" class="section level1" number="7">
<h1><span class="header-section-number">7</span> Y = emergency small amount funds/緊急小口の決定件数 with covar</h1>
<div id="ols-no-trends-1" class="section level2" number="7.1">
<h2><span class="header-section-number">7.1</span> OLS, no trends</h2>
<div class="sourceCode" id="cb42"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb42-1"><a href="#cb42-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb42-2"><a href="#cb42-2" aria-hidden="true" tabindex="-1"></a>estimation_results <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_OLS_notrend_covar8Xcovid_months</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb42-3"><a href="#cb42-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>koguchi_number, </span>
<span id="cb42-4"><a href="#cb42-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>unemploy_shock_diff2)</span>
<span id="cb42-5"><a href="#cb42-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb42-6"><a href="#cb42-6" aria-hidden="true" tabindex="-1"></a><span class="co">#texreg::screenreg(l = estimation_results, include.ci = FALSE, digits=3)</span></span>
<span id="cb42-7"><a href="#cb42-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb42-8"><a href="#cb42-8" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb42-9"><a href="#cb42-9" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_loan</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb42-10"><a href="#cb42-10" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;unemploy_shock_diff2&quot;</span>,</span>
<span id="cb42-11"><a href="#cb42-11" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;koguchi_number_OLS&quot;</span>)</span>
<span id="cb42-12"><a href="#cb42-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb42-13"><a href="#cb42-13" aria-hidden="true" tabindex="-1"></a><span class="co"># graph</span></span>
<span id="cb42-14"><a href="#cb42-14" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_OLS_covar <span class="ot">&lt;-</span> <span class="fu">event_study_graph_2nd_safetynet</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb42-15"><a href="#cb42-15" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;koguchi_number_OLS&quot;</span>)</span>
<span id="cb42-16"><a href="#cb42-16" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_OLS_covar</span></code></pre></div>
<pre><code>## Warning: Removed 2 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,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QGAKAgLNBC644IJ4+umnq4fWX3/9WHHFFav7Nia3wHnnnRfPPPNMtZEbbLBBLL/88tX9Tm14n3VKcuLXc84558Q//vGPakOmTZsWyy67bHXfRm8I3HPPPZG/t1dddVU89thj8de//jWeeOKJmG+++WKZZZap/qyzzjrxvve9L2aZZZZR3fitt94aN998c10d2267bcw666x1eWO5c++998b5558fV199dbXNTz31VLzuda+LRRZZpPzzpje9qdzeDTfcMKZM8b9WY/k81E2AAAECBAgQIEBgJAIzlYo0khOdM7kF1lprrbo/Or/3ve/FrrvuOrkbrXVVgVVXXTVuv/326v6pp54aO+64Y3W/UxveZ52SnPj15BcsGVyrpP/6r/+KHXbYobLrdRwFXn311fjRj34Uxx9/fNx1111t38kb3vCG2G233eJTn/pULLzwwm2fV1vwmGOOicMOO6w2q/zlTAYfxzqdffbZceSRR9Z9Fg51zQwEb7/99nHUUUfFQgstNFRxxwkQIECAAAECBAgQ6JKAIfBdgnYZAgQIECAw0QSy5+Pqq68eO++887CCn9nOhx56KA499NBYaqml4rOf/Wy88sorE6L5GYjfaKONYpttthlW8DMblz3nv/Od78Qb3/jG8uuEaLCbJECAAAECBAgQINAHAgKgffCQNZEAAQIECAxX4Itf/GJsscUWcccddwx66myzzTbo8RdffDFOOOGE2HTTTePJJ58ctOx4H3z44Ydjk002KQ/xH829/O1vf4tPf/rT8fnPf3401TiXAAECBAgQIECAAIEOCZioqkOQqiFAgAABApNB4OWXXy4PWz/ttNMGNGemmWaKd7/73eXA6Lve9a5Ycskly3NhPv/883HfffeVfy6++OL48Y9/HJlXm6644opYd91149e//nWsueaatYd6Yvu5556LzTbbLP7nf/5nwP284x3viO22267c3mzzYostFs8++2w8+OCD5Z9rrrkmctqGxl6uRx99dCy66KLlYOiASmUQIECAAAECBAgQINA1AQHQrlG7EAECjQK77757/OUvf6lmZ3BEIkBgfAUOOOCAaBb8fM973hPHHntsrL322gNucM4554zVVlut/LPllltG9h7NuaNzDs/aQGgGDLOH5Z/+9KdYYoklBtQznhknn3zygCHv+Zn0zW9+M9761rcOuLUMbOZQ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d9h97fm2CRAgQIAAAQIECBAgQIAAAQIEui8gANp9c1fskkAONc85NvMnUy64lMPR2005f1ttWmeddcrzhdbm2SZAgAABAgQIECBAgAABAgQIEOhtAYsg9fbzcXejEGiciy3nxsx5BNtJP/rRjyLn+6xN22+/fe2ubQIECBAgQIAAAQIECBAgQIAAgQkgIAA6AR6SWxyZQA5XX2CBBaon54ruubr7BRdcUM1r3Hj22WfLq6p/6lOfKi8gVDm++uqrxy677FLZ9UqAAAECBAgQIECAAAECBAgQIDBBBCyCNEEelNscmUAOeZ8+fXq8+uqrdRVkQHPDDTcsr1Q8zzzzlFeWzpWMMziaQdDaNPvss8eNN94YeY7UPYHTTjst7rnnnq5dMIPeuXK1RGA8Bbzvx1PftQkQIECAAAECBAgQmKwCAqCT9clqV1XgxBNPjP3226+6P5yNxRZbLM4888zYaKONhnOash0Q2GyzzeKSSy7pQE3tVXH11VfHtGnT2iusFIExEvC+HyNY1RIgQIAAAQIECBAg0NcChsD39ePvj8bvu+++8atf/SrWW2+9ths8yyyzxIc//OG4+eabBT/bVlOQAAECBAgQIECAAAECBAgQINB7AlaB771n4o7GQGCrrbaK/MmV4E8//fS477774oEHHohHHnkkXnvttfLq7osvvngstdRSseWWW8YOO+wQiy666BjciSrbFdh6661jzTXXbLf4qMstscQSo65DBQRGK+B9P1pB5xMgQIAAAQIECBAgQGCggCHwA03k9JFALoz03HPPxfzzz99HrdZUAgQIECBAgAABAgQIECBAgED/CAiA9s+z1lICBAgQIECAAAECBAgQIECAAAECfSdgDtC+e+QaTIAAAQIECBAgQIAAAQIECBAgQKB/BARA++dZaykBAgQIECBAgAABAgQIECBAgACBvhMQAO27R67BBAgQIECAAAECBAgQIECAAAECBPpHQAC0f561lhIgQIAAAQIECBAgQIAAAQIECBDoOwEB0L575BpMgAABAgQIECBAgAABAgQIECBAoH8EBED751lrKQECBAgQIECAAAECBAgQIECAAIG+ExAA7btHrsEECBAgQIAAAQIECBAgQIAAAQIE+kdAALR/nrWWEiBAgAABAgQIECBAgAABAgQIEOg7AQHQvnvkGkyAAAECBAgQIECAAAECBAgQIECgfwQEQPvnWWspAQIECBAgQIAAAQIECBAgQIAAgb4TEADtu0euwQQIECBAgAABAgQIECBAgAABAgT6R0AAtH+etZYSIECAAAECBAgQIECAAAECBAgQ6DsBAdC+e+QaTIAAAQIECBAgQIAAAQIECBAgQKB/BARA++dZaykBAgQIECBAgAABAgQIECBAgACBvhMQAO27R67BBAgQIECAAAECBAgQIECAAAECBPpHQAC0f561lhIgQIAAAQIECBAgQIAAAQIECBDoOwEB0L575BpMgAABAgQIECBAgAABAgQIECBAoH8EpvRPU7W0lcA+++wTDzzwQPXwGWecEXPOOWd13wYBAgQIECBAgACBySzw/e9/P0ql0oAmbr755rHkkksOyJdBgAABAgQITCwBAdCJ9bzG5G5/97vfxS233FKt++WXX65u2yBAgAABAgQIECAw2QVOOOGEpgHQ1VZbTQB0sj987SNAgACBvhAwBL4vHrNGEiBAgAABAgQIECBAgAABAgQIEOhPAQHQ/nzuWk2AAAECBAgQIECAAAECBAgQIECgLwQEQPviMWskAQIECBAgQIAAAQIECBAgQIAAgf4UEADtz+eu1QQIECBAgAABAgQIECBAgAABAgT6QkAAtC8es0YSIECAAAECBAgQIECAAAECBAgQ6E8BAdD+fO5aTYAAAQIECBAgQIAAAQIECBAgQKAvBARA++IxayQBAgQIECBAgAABAgQIECBAgACB/hQQAO3P567VBAgQIECAAAECBAgQIECAAAECBPpCQAC0Lx6zRhIgQIAAAQIECBAgQIAAAQIECBDoTwEB0P587lpNgAABAgQIECBAgAABAgQIECBAoC8EBED74jFrJAECBAgQIECAAAECBAgQIECAAIH+FBAA7c/nrtUECBAgQIAAAQIECBAgQIAAAQIE+kJAALQvHrNGEiBAgAABAgQIECBAgAABAgQIEOhPAQHQ/nzuWk2AAAECBAgQIECAAAECBAgQIECgLwQEQPviMWskAQIECBAgQIAAAQIECBAgQIAAgf4UEADtz+eu1QQIECBAgAABAgQIECBAgAABAgT6QkAAtC8es0YSIECAAAECBAgQIECAAAECBAgQ6E8BAdD+fO5aTYAAAQIECBAgQIAAAQIECBAgQKAvBARA++IxayQBAgQIECBAgAABAgQIECBAgACB/hQQAO3P567VBAgQIECAAAECBAgQIECAAAECBPpCYEpftFIjCRAgQIAAAQIECBAg0ELgXe96V7z22msDji644IID8mQQIECAAAECE09AAHTiPTN3TIAAAQIECBAgQIBABwW+/e1vd7A2VREgQIAAAQK9JmAIfK89EfdDgAABAgQIECBAgAABAgQIECBAgEDHBARAO0apIgIECBAgQIAAAQIECBAgQIAAAQIEek1AALTXnoj7IUCAAAECBAgQIECAAAECBAgQIECgYwICoB2jVBEBAgQIECBAgAABAgQIECBAgAABAr0mIADaa0/E/RAgQIAAAQIECBAgQIAAAQIECBAg0DEBq8B3jFJFBAgQIECAAAECBAgQIECAwHAEjjrqqCiVSi1P2WyzzWKDDTZoedwBAgQItCMgANqOkjIECBAgQIAAAQIECBAgQIBAxwWGCoDOO++8AqAdV1chgf4TMAS+/565FhMgQIAAAQIECBAgQIAAAQIECBDoGwE9QPvmUWsoAQIECBAgQIAAAQIECBDoLYGf/vSn5SHw999/fxxyyCHlm9twww1j7733Lm+vtdZavXXD7oYAgQkpIAA6IR+bmyZAgAABAgQIECBAgAABAhNfYJtttik34qabbqoGQJdeeunYdtttJ37jtIAAgZ4RMAS+Zx6FGyFAgAABAgQIECBAgAABAgQIECBAoNMCAqCdFlUfAQIECBAgQIAAAQIECBAgQIAAAQI9IyAA2jOPwo0QIECAAAECBAgQIECAAAECBAgQINBpAQHQTouqjwABAgQIECBAgAABAgQIECBAgACBnhEQAO2ZR+FGCBAgQIAAAQIECBAgQIAAAQIECBDotIAAaKdF1UeAAAECBAgQIECAAAECBAgQIECAQM8ICID2zKNwIwQIECBAgAABAgQIECBAgAABAgQIdFpAALTTouojQIAAAQIECBAgQIAAAQIECBAgQKBnBARAe+ZRuBECBAgQIECAAAECBAgQIECAAAECBDotIADaaVH1ESBAgAABAgQIECBAgAABAgQIECDQMwICoD3zKNwIAQIECBAgQIAAAQIECBAgQIAAAQKdFpjS6QrVR4AAAQIECBAgQIAAAQIECBAgEHHzzTfHU0891ZJiwQUXjDXXXLPlcQcIEOiMgABoZxzVQoAAAQIECBAgQIAAAQIECBCoEzj44IPj4osvrsur3Zk+fXpceOGFtVm2CRAYAwEB0DFAVSUBAgQIECBAgAABAhNH4Nprr41SqTTghlddddWYb775BuTLIECAAAECBCaWgADoxHpe7pYAAQIECBAgQIAAgQ4L7LTTTk0DoKeeempMmzatw1dTHQEC/SSw5ZZbxgorrFBu8imnnBIvvvhiTJ06NT75yU+W81ZZZZV+4tBWAuMmIAA6bvQuTIAAAQIECBAgQIAAAQIECExmgT322KPavJ/+9KflAOjcc88d3/rWt6r5NggQGHsBq8CPvbErECBAgAABAgQIECBAgAABAgQIECAwTgICoOME77IECBAgQIAAAQIECBAgQIAAAQIECIy9gADo2Bu7AgECBAgQIECAAAECBAgQIECAAAEC4yQgADpO8C5LgAABAgQIECBAgAABAgQIECBAgMDYCwiAjr2xKxAgQIAAAQIECBAgQIAAAQIECBAgME4CAqDjBO+yBAgQIECAAAECBAgQIECAAAECBAiMvYAA6NgbuwIBAgQIECBAgAABAgQIECBAgAABAuMkIAA6TvAuS4AAAQIECBAgQIAAAQIECBAgQIDA2AsIgI69sSsQIECAAAECBAgQIECAAAECBAgQIDBOAgKg4wTvsgQIECBAgAABAgQIECBAgAABAgQIjL2AAOjYG7sCAQIECBAgQIAAAQIECBAgQIAAAQLjJCAAOk7wLkuAAAECBAgQIECAAAECBAgQIECAwNgLCICOvbErECBAgAABAgQIECBAgAABAgQIECAwTgICoOME77IECBAgQIAAAQIECBAgQIAAAQIECIy9gADo2Bu7AgECBAgQIECAAAECBAgQIECAAAEC4yQgADpO8C5LgAABAgQIECBAgAABAgQIECBAgMDYCwiAjr2xKxAgQIAAAQIECBAgQIAAAQIECBAgME4CAqDjBO+yBAgQIECAAAECBAgQIECAAAECBAiMvYAA6NgbuwIBAgQIECBAgAABAgQIECBAgAABAuMkIAA6TvAuS4AAAQIECBAgQIAAAQIECBAgQIDA2AsIgI69sSsQIECAAAECBAgQIECAAAECBAgQIDBOAgKg4wTvsgQIECBAgAABAgQIECBAgAABAgQIjL3AlLG/hCsQIECAAAECBAgQIECgdwXWXnvtKJVKA25wnnnmGZAngwABAgQIEJh4AgKgE++ZuWMCBAgQIECAAAECBDoocMYZZ3SwNlURIECAAAECvSZgCHyvPRH3Q4AAAQIECBAgQIAAAQIECBAgQIBAxwQEQDtGqSICBAgQIECAAAECBAgQIECAAAECBHpNQAC0156I+yFAgAABAgQIECBAgAABAgQIECBAoGMCAqAdo1QRAQIECBAgQIAAAQIECBAgQIAAAQK9JiAA2mtPxP0QIECAAAECBAgQIECAAAECBAgQINAxAQHQjlGqiAABAgQIECBAgAABAgQIECBAgACBXhMQAO21J+J+CBAgQIAAAQIECBAgQIAAAQIECBDomIAAaMcoVUSAAAECBAgQIECAAAECBAgQIECAQK8JCID22hNxPwQIECBAgAABAgQIECBAgAABAgQIdExAALRjlCoiQIAAAQIECBAgQIAAAQIECBAgQKDXBARAe+2JuB8CBAgQIECAAAECBAgQIECAAAECBDomIADaMUoVESBAgAABAgQIECBAgAABAgQIECDQawICoL32RNwPAQIECBAgQIAAAQIECBAgQIAAAQIdExAA7RiliggQIECAAAECBAgQIECAAAECBAgQ6DUBAdBeeyLuhwABAgQIECBAgAABAgQIECBAgACBjgkIgHaMUkUECBAgQIAAAQIECBAgQIAAAQIECPSagABorz0R90OAAAECBAgQIECAAAECBAgQIECAQMcEBEA7RqkiAgQIECBAgAABAgQIECBAgAABAgR6TUAAtNeeiPshQIAAAQIECBAgQIAAAQIECBAgQKBjAgKgHaNUEQECBAgQIECAAAECBAgQIECAAAECvSYgANprT8T9ECBAgAABAgQIECBAgAABAgQIECDQMQEB0I5RqogAAQIECBAgQIAAAQIECBAgQIAAgV4TEADttSfifggQIECAAAECBAgQIECAAAECBAgQ6JjAlI7VpCICBAgQIECAAAECBAhMQIE77rgjSqXSgDt/wxveEHPPPfeAfBkECBAgQIDAxBIQAJ1Yz8vdEiBAgAABAgQIECDQYYEPfvCDTQOgp556akybNq3DV1MdAQIECBAg0G0BQ+C7Le56BAgQIECAAAECBAgQIECAAAECBAh0TUAAtGvULkSAAAECBAgQIECAAAECBAgQIECAQLcFBEC7Le56BAgQIECAAAECBAgQIECAAAECBAh0TUAAtGvULkSAAAECBAgQIECAAAECBAgQIECAQLcFBEC7Le56BAgQIECAAAECBAgQIECAAAECBAh0TUAAtGvULkSAAAECBAgQIECAAAECBAgQIECAQLcFBEC7Le56BAgQIECAAAECBAgQIECAAAECBAh0TUAAtGvULkSAAAECBAgQIECAAAECBAgQIECAQLcFBEC7Le56BAgQIECAAAECBAgQIECAAAECBAh0TUAAtGvULkSAAAECBAgQIECAAAECBAgQIECAQLcFBEC7Le56BAgQIECAAAECBAgQIECAAAECBAh0TUAAtGvULkSAAAECBAgQIECAAAECBAgQIECAQLcFBEC7Le56BAgQIECAAAECBAgQIECAAAECBAh0TUAAtGvULkSAAAECBAgQIECAAAECBAgQIECAQLcFBEC7Le56BAgQIECAAAECBAgQIECAAAECBAh0TUAAtGvULkSAAAECBAgQIECAAAECBAgQIECAQLcFBEC7Le56BAgQIECAAAECBAgQIECAAAECBAh0TUAAtGvULkSAAAECBAgQIECAAAECBAgQIECAQLcFBEC7Le56BAgQIECAAAECBAgQIECAAAECBAh0TUAAtGvULkSAAAECBAgQIECAAAECBAgQIECAQLcFBEC7Le56BAgQIECAAAECBAgQIECAAAECBAh0TUAAtGvULkSAAAECBAgQIECAAAECBAgQIECAQLcFBEC7Le56BAgQIECAAAECBAgQIECAAAECBAh0TWBK167kQgQIECBAgAABAgQIEOhBgWWXXTZKpdKAO5tjjjkG5MkgQIAAAQIEJp6AAOjEe2bumAABAgQIECBAgACBDgpceOGFHaxNVQQIECBAgECvCRgC32tPxP0QIECAAAECBAgQIECAAAECBAgQINAxAQHQjlGqiAABAgQIECBAgAABAgQIECBAgACBXhMQAO21J+J+CBAgQIAAAQIECBAgQIAAAQIECBDomIAAaMcoVUSAAAECBAgQIECAAAECBAgQIECAQK8JCID22hNxPwQIECBAgAABAgQIECBAgAABAgQIdExAALRjlCoiQIAAAQIECBAgQIAAAQIECBAgQKDXBARAe+2JuB8CBAgQIECAAAECBAgQIECAAAECBDomIADaMUoVESBAgAABAgQIECBAgAABAgQIECDQawICoL32RNwPAQIECBAgQIAAAQIECBAgQIAAAQIdExAA7RiliggQIECAAAECBAgQIECAAAECBAgQ6DUBAdBeeyLuhwABAgQIECBAgAABAgQIECBAgACBjgkIgHaMUkUECBAgQIAAAQIECBAgQIAAAQIECPSagABorz0R90OAAAECBAgQIECAAAECBAgQIECAQMcEBEA7RqkiAgQIECBAgAABAgQIECBAgAABAgR6TUAAtNeeiPshQIAAAQIECBAgQIAAAQIECBAgQKBjAgKgHaNUEQECBAgQIECAAAECBAgQIECAAAECvSYgANprT8T9ECBAgAABAgQIECBAgAABAgQIECDQMQEB0I5RqogAAQIECBAgQIAAAQIECBAgQIAAgV4TEADttSfifggQIECAAAECBAgQIECAAAECBAgQ6JiAAGjHKFVEgAABAgQIECBAgAABAgQIECBAgECvCQiA9toTcT8ECBAgQIAAAQIECBAgQIAAAQIECHRMQAC0Y5QqIkCAAAECBAgQIECAAAECBAgQIECg1wQEQHvtibgfAgQIECBAgAABAgQIECBAgAABAgQ6JjClYzWpiAABAgQIECBAgAABAhNQ4LHHHmt61wsssEDMPvvsTY/JJECAAAECBCZC0nX9AABAAElEQVSOgADoxHlW7pQAAQIECBAgQIAAgTEQ2HjjjaNUKg2o+dRTT41p06YNyJdBgAABAgQITCwBQ+An1vNytwQIECBAgAABAgQIECBAgAABAgQIDENAAHQYWIoSIECAAAECBAgQIECAAAECBAgQIDCxBAyB78Dzuuaaa+Laa69tq6apU6fGXnvt1bLsI488Eqeffnr8+c9/jtxeZJFFYrXVVovVV189Ntlkk5hjjjlanusAAQIECBAgQIAAAQIECBAgQIAAAQL1AgKg9R4j2rvkkkvi8ssvb+vcueaaq2UA9Mwzz4yTTz45Xn311WpdDz74YOTP+eefH+eee24cf/zxMc8881SP2yBAgAABAgQIECBAgAABAgQIECBAoLWAIfCtbdo+cvfdd7ddtlXBDHB+5zvfKQc/Z5tttpg+fXrsv//+8bGPfSyWX3758mm33XZb7LnnnvH000+3qkY+AQIECBAgQIAAAQIECBAgQIAAAQI1AnqA1mCMZPOFF16Ihx9+uHzquuuuG4cddtig1cw888CY89/+9rc44YQTyudlD9Fjjz021lprrWo9O+64Yxx99NFx2WWXxX333Rc//vGPY7/99qset0GAAAECBAgQIECAAAECBAgQIECAQHMBAdDmLm3n3nvvvVEqlcrlV1lllVhwwQXbPrdS8Oyzz46XXnqpvLv77rvXBT8zc8qUKXH44YeX5wS9884746KLLorddtst5pxzzkoVXgkQIECAAAECBAgQIECAAAECBAgQaCIwsDtik0KyWgvUDn9faaWVWhcc5EgOf8+UCxy9733va1oye45uu+225WPZ6zSDoBIBAgQIECBAgAABAgQIECBAgAABAoMLCIAO7jPk0dEGQB977LHqnJ457H3WWWdtec111lmneiwXXpIIECBAgAABAgQIECBAgAABAgQIEBhcQAB0cJ8hj1YCoPPNN1+8/vWvL5fPIfGPP/54/P3vfx/y/FzYqJJWWGGFymbT1/nnn786xD7nApUIECBAgAABAgQIECBAgAABAgQIEBhcwBygg/sMevTVV18tL0qUhXL4+5/+9KfyAkW33HJL/Otf/yqfu8gii0TODZpzdi6xxBID6qssoJQHFl988QHHGzMyyPrUU09FDoN/8sknY6GFFmosMmD/1ltvrd7PgINFxmuvvVYefp/3XJnPtFk5eQQIECBAgAABAgQIECBAgAABAgQmmoAA6Cie2EMPPVRdvCiDnnvssceA2v76179G/vzhD3+IXODoQx/6UF2Zf/7zn9X97OE5VMqeppX07LPPthUAPeCAA6qB2sq5ja9LLbVUucwrr7zSeMg+AQIECBAgQIAAAQIECBAgQIAAgQkrIAA6ikdXGf6eVWSPzKlTp8aaa65ZXsV9gQUWiPvvvz+uuOKKePTRR8s9ME888cSYZ555YtNNN61etTYAOvvss1fzW23Ulqn0Mm1VVj4BAgQIECBAgAABAgQIECBAgACBfhcQAB3FO6A2AJpD0U844YRYdtll62rccccd4xvf+Eace+655fyTTjop1l133aj09nz++eer5WebbbbqdquN2jIvvvhiq2LyCRAgQIAAAQIECBAgQIAAAQIECBAoBARAR/E2+MAHPhCrrrpq5Eru73znO2OxxRYbUFv2Cv3sZz8bd955Z2TANBdGOuuss2LXXXctl50y5d+PIOcUHSrVlqkNhg523iabbBKrrbZayyLnnXdePPPMM+W5QFsWcoAAAQIECBAgQIAAAQIECBAgQIDABBT4d/RtAt78eN/ykksuGfkzVJpllllip512ikMOOaRctLbn6BxzzFE9/aWXXqput9qo7fU511xztSpWl59zgA6WLrnkkvKq9YOVcYwAAQIECBAgQIAAAQIECBAgQIDARBSYeSLe9ES85xVWWKF62/fdd191uzaIWTsfaLVAw0btkPnacxuK2SVAgAABAgQIECBAgAABAgQIECBAoBAQAO3S22DhhReuXimHwVfS4osvXtksrxZf3WmxkSvKZ8pepfPOO2+LUrIJECBAgAABAgQIECBAgAABAgQIEEgBQ+BH8T7IHpt/+9vfIoelL7/88oPWVAlcZqGlllqqWnaZZZapbj/yyCPV7WYbr7zySnWo+nLLLRe1K8I3Ky+PAAECBAgQIECAAAECBAgQIECAQL8LCICO8B2QQ9E333zzyEWJcjGiCy64YNCA5AMPPFC90hve8Ibqdg6Nn3XWWePll1+Om2++uZrfbOP2228vl8tjq6yySrMi8ggQIECAAAECBAgQIECAAAECBAgQqBEwBL4GYzibc845ZzUImYsXXX/99YOefsYZZ1SPv+1tb6tuZz3rr79+ef/++++Pu+66q3qscePiiy+uZm244YbVbRsECBAgQIAAAQIECBAgQIAAAQIECDQXEABt7tJWbm0g86STTop//OMfTc/7+c9/Xu3dueKKK8amm25aV26LLbao7h9//PFN67nuuuvi/PPPL5dbdtllY4MNNqieY4MAAQIECBAgQIAAAQIECBAgQIAAgeYCAqDNXdrK3WabbWL11Vcvl805Pnfeeee45pprIofH53ydd999dxxzzDGRwdFMOVR+7733jplmmqm8X/nPtGnTqr1A77zzznKZP/7xj+W5RZ944ok4++yz45BDDikPt89zd9tttwF1VOrySoAAAQIECBAgQIAAAQIECBAgQIDAvwXMAfpvi2FvTZkyJY466qhywPLhhx+OXMTo4IMPLteTxzIIWkmLLLJIORi68sorV7LqXg8//PA48sgj48Ybb4x77rkn9tlnn/JK7znHaG3ac889w/D3WhHbBAgQIECAAAECBEYnMP/888drr702oJKcq18iQIAAAQIEJr6AAOgon+HCCy8cp512WrmXZr7myvCZKsHP+eabL9Zaa63Yd999I//HqlWad95546tf/Wqccsop8etf/7o8DL42+JmrvmfPT0PfWwnKJ0CAAAECBAgQIDAygZxuSiJAgAABAgQmr4AAaAeebX4zvP3228d2220Xjz/+eDz00EORCyO98Y1vjEUXXbTtK8w888yxyy67lH8effTR8hD62WefPZZaaqlYbLHFIo9LBAgQIECAAAECBAgQIECAAAECBAi0LyAA2r7VkCUzQLn44ouXf4YsPESBTtUzxGUcJkCAAAECBAgQIECAAAECBAgQIDCpBXQpnNSPV+MIECBAgAABAgQIECBAgAABAgQI9LeAAGh/P3+tJ0CAAAECBAgQIECAAAECBAgQIDCpBQRAJ/Xj1TgCBAgQIECAAAECBAgQIECAAAEC/S0gANrfz1/rCRAgQIAAAQIECBAgQIAAAQIECExqAQHQSf14NY4AAQIECBAgQIAAAQIECBAgQIBAfwsIgPb389d6AgQIECBAgAABAgQIECBAgAABApNaQAB0Uj9ejSNAgAABAgQIECBAgAABAgQIECDQ3wICoP39/LWeAAECBAgQIECAAAECBAgQIECAwKQWEACd1I9X4wgQIECAAAECBAgQIECAAAECBAj0t4AAaH8/f60nQIAAAQIECBAgQIAAAQIECBAgMKkFBEAn9ePVOAIECBAgQIAAAQIECBAgQIAAAQL9LSAA2t/PX+sJECBAgAABAgQIECBAgAABAgQITGoBAdBJ/Xg1jgABAgQIECBAgAABAgQIECBAgEB/CwiA9vfz13oCBAgQIECAAAECBAgQIECAAAECk1pAAHRSP16NI0CAAAECBAgQIECAAAECBAgQINDfAgKg/f38tZ4AAQIECBAgQIAAAQIECBAgQIDApBaYMqlbp3EECBAgQIAAAQIECBAgQIAAAQJjInDjjTfG5Zdf3rLumWaaKQ488MCWxx0g0C0BAdBuSbsOAQIECBAgQIAAAQIECBAgQGASCVx11VVx8MEHt2zRzDPPLADaUseBbgoYAt9NbdciQIAAAQIECBAgQIAAAQIECBAgQKCrAnqAdpXbxQgQIECAAAECBAgQIECAAAECk0Ng+vTpscACC5Qb873vfS9uuOGG8vYRRxwRSy+9dOQQeIlALwgIgPbCU3APBAgQIECAAAECBAgQIECAAIEJJrDqqqtG/mS65JJLqgHQD3zgA7HWWmtNsNa43cksIAA6mZ+uthEgQIAAAQIECBAgMKTAv/71ryiVSgPKzT777JHz10kECBAgQIDAxBYQAJ3Yz8/dEyBAgAABAgQIECAwSoE111yzaQD01FNPjWnTpo2ydqcTIECAAIHeFbjjjjvi5ZdfbnmDiyyySCy66KItj0+UAwKgE+VJuU8CBAgQIECAAAECBAgQIECAAAECHRTYeOON4y9/+UvLGg866KD48pe/3PL4RDlgPMdEeVLukwABAgQIECBAgAABAgQIECBAgACBYQvoATpsMicQIECAAAECBAgQIECAAAECBAgQmPgCuWDVM888E88//3ycd9555QblsPd3vvOd5e011lhj4jeyaIEA6KR4jBpBgAABAgQIECBAgAABAgQIECBAYHgCJ598cvmEhx9+uBoAXX311eNnP/vZ8Crq8dKGwPf4A3J7BAgQIECAAAECBAgQIECAAAECBAiMXEAAdOR2ziRAgAABAgQIECBAgAABAgQIECBAoMcFBEB7/AG5PQIECBAgQIAAAQIECBAgQIAAAQIERi4gADpyO2cSIECAAAECBAgQIECAAAECBAgQINDjAgKgPf6A3B4BAgQIECBAgAABAgQIECBAgAABAiMXEAAduZ0zCRAgQIAAAQIECBAgQIAAAQIECBDocQEB0B5/QG6PAAECBAgQIECAAAECBAgQIECAAIGRCwiAjtzOmQQIECBAgAABAgQIECBAgAABAgQI9LiAAGiPPyC3R4AAAQIECBAgQIAAAQIECBAgQIDAyAUEQEdu50wCBAgQIECAAAECBAgQIECAAAECBHpcQAC0xx+Q2yNAgAABAgQIECBAgAABAgQIECBAYOQCAqAjt3MmAQIECBAgQIAAAQIECBAgQIAAAQI9LiAA2uMPyO0RIECAAAECBAgQIECAAAECBAgQIDByAQHQkds5kwABAgQIECBAgAABAgQIECBAgACBHhcQAO3xB+T2CBAgQIAAAQIECBAgQIAAAQIECBAYuYAA6MjtnEmAAAECBAgQIECAAAECBAgQIECAQI8LCID2+ANyewQIECBAgAABAgQIECBAgAABAgQIjFxgyshPdSYBAgQIECBAgAABAgQIECBAgACBySnw4IMPxh577DFo44499thYY401Bi3j4PgLCICO/zNwBwQIECBAgAABAgQIECBAgAABAj0m8Oyzz8YFF1ww6F199rOfHfS4g70hYAh8bzwHd0GAAAECBAgQIECAAAECBAgQIECAwBgI6AE6BqiqJECAAAEC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ECBAgAABAgQIEBiGwIsvRlx1VfMTJtP8n40tfN3rIr71rRlD/08+OWL22WeUmDKlseSM/ewFuvfezY/JJUBgdAICoKPzczYBAgQIECBAgAABAgQIECAwiMCVV0a88ELzApM5AFpp8aKLRuyyS0QOjc+UgdGllpqx3fjf3/0u4qyzGnPtEyAwWgEB0NEKOp8AAQIECBAgQIAAAQIECBBoKdBq+Pt880Wst17L0ybtgZlmivja11o374ADWgeMW5/lCAECgwkIgA6m4xgBAgQIECBAgAABAgQIECAwKoGLLmp++qabRuTq5/2Ytt46YqONmrf8oYcijj22+TG5BAiMTEAAdGRuziJAgAABAgQIECBAgAABAgSGEHjkkYjbb29eqB+Gvzdv+Yzcb3yjdQD4q1+NePDBwc52jACB4QgIgA5HS1kCBAgQIECAAAECBAgQIECgbYFWvT+zgve8p+1qJmXBNdaI2H335k3LOVP33bf5MbkECAxfQAB0+GbOIECAAAECBAgQIECAAAECBNoQaDX/56qrtl4IqI1qJ02RL3whYsEFmzfnV7+KuOyy5sfkEiAwPAEB0OF5KU2AAAECBAgQIECAAAECBAi0IfDaa60DeP0+/L3CN//8EcccU9kb+PqZz0S88srAfDkECAxPQAB0eF5KEyBAgAABAgQIECBAgAABAm0I3HBDxNNPNy8oAPpvl513jlhzzX/v127ddlvEt75Vm2ObAIGRCAiAjkTNOQQIECBAgAABAgQIECBAgMCgAq2Gv0+dGvH2tw96al8dnLmIzOSCSK3SUUdFPPFEq6PyCRBoR0AAtB0lZQgQIECAAAECBAgQIECAAIFhCbQKgG60UcQccwyrqklfOAPC22/fvJnPPBNxyCHNj8klQKA9gSntFVOKAAECBAgQIECAAAECk1Pguuuua9qwueeeu2m+TAIEhhbIoF0OgW+WDH9vphLxla9EnHNOxD//OfD4j340Y8X4ddYZeEwOAQJDC+gBOrSREgQIECBAgAABAgQITGKB+YtVSJr9zDrrrJO41ZpGYGwFLr004tVXm19DALS5yxJLRHzuc82P5YJSe+8dUSo1Py6XAIHBBQRAB/dxlAABAgQIECBAgAABAgQIEBimQKvh70suGbHKKsOsrI+K77dfxPLLN2/wtddGnH5682NyCRAYXEAAdHAfRwkQIECA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/4t4z3siZs5cUMLyyzf67t57G9cRbW5Zb72Iiy+OuOmmiH/5l2Zuve8FQOvdf2pPgAABAgQIECBAgAABAgQ6IjBvXsT555cXZfp7uctUyZ02rTEFOu/L0mGHjX4qdlk5Uz1v/vyI/BFip50i1lwz4sADI/7619GpZB+97nUR3/teRF7S4uijI57//OHLyFG+b37zgn1y5OdWW0Us0kVRwxkLmucRAQIECBAgQIAAAQIECBAgMFUFLr88Yu7c8tYLgJa7TKXcl7+8MYIwp1EPTg8/HHHppQtyr722sSp5q4Dpgj09SoEMVJ58csS3vhVx661jM5k9u7Eo0gc/2P61Pcd2pnoe1UWx3Hp2gFoTIECAAAECBAgQIECAAIEqCLSa/j5rVkReP1AikFOyl1663CGnbDdTTpvO61UedVTEE080c933F8gR1z/5SWPk5dprRxxyyOiDnzlC8w1viPjv/4647bbGtVrbXdiof12mwmMB0KnQy9pIgAABAgQIECBAgAABAgRGEGgVAN1mm4HXDRyhGJu7WGDVVSP+4z/aa+Ddd0d88pMRr3hFxO23t3fMVNjr5psjDj44Yq21GgsR/e//RmQwdDQpjz300Ihbbok466yIt7wlYoY53sMS4hmWx0YCBAgQIECAAAECBAgQIND9Ajn1PVeELkumv5epTN28XPX9S1+K6D/icziNq65qLOKTl1hYbrnh9uzebU8/HfE//xPxzW9GnHdeRK7sPtqUAc43vSlijz0idtihu67POVqLsewvADoWNccQIECAAAECBAgQIECAAIEuEsigTKtRaAKgXdTRHWhKjua8//7RFZQL+eyzT8R3vjO646q0d66U3kx//3vz0fD3118fceKJEaeeGtH/+OGPGrh13XUjPvCBiN13j8gRuNLYBEyBH5ubowgQIECAAAECBAgQIECAQNcItJr+nitRv+AFXdNMDemAQK74/swzoy/ojDMirrlm9MdN5hF5/dK8jul66zVWZG/WJVdWz2non/lMxD/+0cxt3OcxGeh9zWsaq6/n8aMNfi62WMQuu0T84hcRN9wQcdBBgp8DlUf/zAjQ0Zs5ggABAgQIECBAgACBLhJ429veVox8G3oBts8U32xf/OIXd1FLNYVAa4Fzzy3fllNtJQJNgZzKnQvujDW97GURGVRffvmIFVZo3Moe989baqmxnm3hjsvA45vfHPGXv5SXkyNhDz004qSTGtPbF120McX9tNMiHnig/JiRcjfcMCJXcX/veyNWXHGkvW0fjYAA6Gi07EuAAAECBAgQIECAQNcJXHvttcX12IZekO3RRx/turZqEIEygRyVd8cdZVsiTH8vd5mquRkMfOihsbf+8ccjclr4aFIGFjMgmgHBZmC0eZ9B1LLHmTdz5mjOMnDfXFF9663bG7mZ+26+eetLSAwseeizWbMi3v72iD33bJxz6B5yOiEgANoJRWUQIECAAAECBAgQIECAAIGaCrSa/j59esR229W0Uao9LgLtLnzUyZPnqNM872jPvcQS7Y0w7R9AzUWacrGhd72rveBns50lkwiam1rev+hFjQWN/uVfIpZdtuVuNnRIQAC0Q5CKIUCAAAECBAgQIECAAAECdRRoFQDdckuBmTr253jWuU6Buscei8hbTlUfTcrAaR43Himn87/znY3A5xZbjMcZlNlKQAC0lYx8AgQIECBAgAABAgQIECDQ5QI5Jfn//q+8kaa/l7tM5dxcDChHSI5lEaS6uI1H8DOnyO+xR2Nk6dJL10Wiu+opANpd/ak1BAgQIECAAAECBAgQIECgbYELL4zIVavLkgBomcrUzltmmYhttok4//yp7dBO69Nq110bgU/r6bUjNr77CICOr6/SCRAgQIAAAQIECBAgQIBAZQVaTX/P6yLmit0SgcECBx00tgBojh499NCIuXMj7r+/ccvV0gc/zkWWStalG1yNyj7Pqe177x3xjndE5HR6qRoCAqDV6Ae1IECAAAECBAgQIECAAAECEy7QKgA6Z07EIotMeHWcsAYCuTDW7rtHnHxy+5XNlc6/972Il7505GPmz49oBkab9xkkbT5u3vfPy8ePPjpy2ROxx0UXRSy22EScyTlGIyAAOhot+xIgQIAAAQIECBAgQIAAgS4RuOOOiD//ubwxpr+Xu8htCPznfzZGcv74xyOLLLlk+8HPLC0D7yuu2LiNXPqCPZ56qvWo0v7B0sEB1CefXFDGwj5aay3Bz4U1HK/jBUDHS1a5BAgQIECAAAECBAgQIECgwgLnnNO6cttv33qbLQRyhOOPfhRx7LERhx3WCIaWqbz2tRHHHx+x8cZlWzubl3WaPbtxG03JOXK0f4A0g7s//OFoSliw75vetOCxR9USMKC9Wv2hNgQIECBAgAABAgQIECBAYEIEWk1/z2DV6qtPSBWcpMYC06ZFfOxjEbfd1hjhuf76Cxrz4Q9H/O53Eb/85cQEPxecefSPcoRqjtzMhYpyev9XvhKReaNNM4ohhh/5yGiPsv9ECQiATpS08xAgQIAAAQIECBAgQIAAgYoIzJvXeiEb098r0kk1qcZSS0XsvHPEZpstqPAee0S85CULntfp0aqrRhxxxOhrnItDbbDB6I9zxMQICIBOjLOzECBAgAABAgQIECBAgACByghcfnnracsCoJXpJhWZJIF99434+MfbP/l73xvxmc+0v789J15AAHTizZ2RAAECBAgQIECAAAECBAhMqkCr63/mat2vetWkVs3JCVRC4Etfijj11IgcEdoqLbdcY8r8KadE5CUBpOoKCIBWt2/UjAABAgQIECBAgAABAgQIjItAq+t/brNNxMyZ43JKhRKoncBuu0X89a8Rp58e8cpXLqh+Xi/0pJMibr45Yp99FuR7VF0Bq8BXt2/UjAABAgQIECBAgAABAgQIdFxg7tyIK68sL3aHHcrz5RKYqgK5INKuu0Y89VTEr3/dUHjXuyJ2332qitSz3UaA1rPf1JoAAQIECBAgQIAAAQIECIxJ4LzzInIRpLLk+p9lKvIIEKi7gABo3XtQ/QkQIECAAAECBAgQIECAwCgEWk1/X3PNiA03HEVBdiVAgEBNBARAa9JRqkmAAAECBAgQIECAAAECBDohcO655aWY/l7uIpcAgfoLCIDWvw+1gAABAgQIECBAgAABAgQItCVwzTURd9xRvqvp7+UucgkQqL+AAGj9+1ALCBAgQIAAAQIECBAgQIBAWwKtpr9Pnx6x3XZtFWEnAgQI1E5AALR2XabCBAgQIECAAAECBAgQIEBgbALnnFN+3JZbRiy7bPk2uQQIEKi7gABo3XtQ/QkQIECAAAECBAgQIECAQBsCjz8ecdFF5Tua/l7uIpcAge4QEADtjn7UCgIECBAgQIAAAQIECBAgMKzAhRdGPPFE+S4WQCp3kUuAQHcICIB2Rz9qBQECBAgQIECAAAECBAgQGFag1fU/l18+YvPNhz3URgIECNRaYEata6/yBAgQIECAAAECBAgQWEiBM844o7SE9ddfvzRfJoG6CrQKgM6ZE7GI4VF17Vb1JkCgDQEB0DaQ7EKAAAECBAgQIECAQPcKvPSlL+3exmkZgWcFbr894s9/Ludw/c9yF7kECHSPgN94uqcvtYQAAQIECBAgQIAAAQIECJQKtBr9mTtvv33pITIJECDQNQICoF3TlRpCgAABAgQIECBAgAABAgTKBVoFQDfeOGL11cuPkUuAAIFuERAA7Zae1A4CBAgQIECAAAECBAgQIFAiMG9exC9+UbKhyDL9vdxFLgEC3SUgANpd/ak1BAgQIECAAAECBAgQIEBggMBll0U8+OCArL4nAqB9FB4QINDFAgKgXdy5mkaAAAECBAgQIECAAAECBFpNf581K+JVr+JDgACB7hcQAO3+PtZCAgQIECBAgAABAgQIEJjCAq0CoK95TcTMmVMYRtMJEJgyAgKgU6arNZQAAQIECBAgQIAAAQIEpprA3LkRV1xR3mrT38td5BIg0H0CAqDd16daRIAAAQIECBAgQIAAAQIEegXOOy9i/vxyDAHQche5BAh0n4AAaPf1qRYRIECAAAECBAgQIECAAIFegVbT39daK2LDDSERIEBgaggIgE6NftZKAgQIECBAgAABAgQIEJiCAueeW95ooz/LXeQSINCdAgKg3dmvWkWAAAECBAgQIECAAAECU1zgT3+KuOOOcgQB0HIXuQQIdKeAAGh39qtWESBAgAABAgQIECBAgMAUF2g1/X369IjttpviOJpPgMCUEhAAnVLdrbEECBAgQIAAAQIECBAgMFUEWgVAX/7yiGWXnSoK2kmAAIGIGRCqJXDnnXfGaaedFn/5y18iH6+88sqx8cYbxyabbBLbbrttzJo1q1oVVhsCBAgQIECAAAECBAgQqJzA449HXHRRebVMfy93kUuAQPcKCIBWqG/PPPPM+MY3vhHz5s3rq9Wtt94aeTvrrLPipz/9aRx11FGx9NJL9233gAABAgQIECBAgAABAgQIDBa48MKIJ54YnNt4LgBa7iKXAIHuFRAArUjfZoDz61//em9tFltssd7Rnjny8957741LLrkkbrzxxrjmmmtin332iS9/+cux/PLLV6Tmna3G/PkRi7gwQ2dRJ6i0W26J4jUaMXduxEorRbz4xRGrrDJBJ5/A0zzzTDF03ifnBIo71WgEHnss4r77IlZYIWLJJUdzZD32zb8Rf/97xBJLRPFjYD3qrJYDBfKL+COPNF6j3fj3/umnG+/BnFZq0s7AvveMAIGJF2g1/T2/Sm6++cTXxxkJECAwmQK+xk+m/rPnnltEjI455pjeZ0sW31iPOOKIeMlLXtJXs9133z0OP/zwOP/88+Omm26KU045JT7+8Y/3ba/7g1/+Moo2RfzqVxF3390ILq29dsQOO0TstVfEhhvWvYURGTS77LIo+i/iyScjVlst4pWv7I7r7vzXf0Xx+oy46qqB/ZRfbF/1qojPfCZim20GbqvTswy4fPe7EcUA7bj00sYX2/xSu8EGEf/8zxF77x2x6qp1atHwde3paWyfNm34/eq29Q9/iPjf/434618jHn00YvbsiK23jvinf4pYaqm6tWZgfTMg+KUvReR7MdvXTM97XsROO0Xsv3+9f4zIz8+TToo4/fSI3/ym8XmabcwfWt74xoiPfjRi002bra7n/f33Nz5j8otqMemjmAkSseaajcUp3v3uiNVXr2e7mrW++eYofryN+MlPGu3L/Fx842Uvi3jnOyM+9KGImTObe9fvPgO6xx8f8f3vR/zxjxHNz9H8v8xb3tJ4D66xRv3a1b/GxZWZ4jvfafxf7a67Iorf6mOddRr/V3vPeyKWW67/3vV8fNttEWefHXHLLY3/q+X7Lv//IkhUz/5U64ZAqwDonDkGnXiNECAwBQV6pEkXKKa992y99da9tx//+Mel9Smmxfd88IMf7N1nzpw5PY8++mjpfmPJfNGLXpQhj77bgw8+OJZiRn3M/ff39Lzxjfk1ofVtxoyengMO6Ol55plRF1+JAx5+uKfn4IN7epZbbmgbF120p2ennXp6rruuElUddSUee6ynZ+edh7arrD+zD4uXcO1S9k3x9hj2Nbrkkj09X/ta7Zo2oMK/+U1P8fnS07P22j09+bpcbLGeXxalrAAAQABJREFUnnXX7en58Id7en73uwG71u7JNdf09Gy3Xes+zPfmMcf09MyfX7um9Vb4jDN6epZeunX78v2Yr9FTT61n+7L/Ntxw+PYtskhPz0c+0tPz9NP1bONxx/X0LLNM6zbOnNnTc8gh9fwMzR75whcanyllfxuaeWut1dNz6aX17L+f/7ynZ6WVWvdftjH78CtfqWf7Hn+8p2fvvXt6pk9v3cZll+3pOeGEerYva3399T09O+7Yun0vfGFPz9ln17d9at5dAl8oPlSb39tOPvnkYRt3222tX9cnnTTsoZO28be//W1f+971rndNWj3G88QrrLBCbxtXXHHF8TzN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2wgQIECAAAECBAgQIECAwMQKvP71EWecMbZz5rF1S5///Oejp6cn7rrrrr6qX3PNNfG5z32u9/mcOXNiiy226NvmAQECBMYiIAA6FjXHECBAgAABAgQIECBAgACBcRDYe++xBUBz+vuee45Dhca5yIMPPrg3ANr/NFdffXXkLdOsWbMEQPvjeEyAwJgETIEfE5uDCBAgQIAAAQIECBAgQIBA5wW22iri3e8efbkf+UjEhhuO/jhHECBAYCoIGAE6FXpZGwkQIECAAAECBAgQIECgNgLf/GbETTdFXHppe1X+p3+KOPLI9vat2l6nnXbakBGg/eu42Wab9X/qMQECBMYkIAA6JjYHESBAgAABAgQIECBAgACB8RFYYomIX/0qYt99I771rSgChOXnyVXjP/rRiCOOiFjYFeTLzzD+ubvuuuv4n8QZCBCY8gKmwE/5lwAAAgQIECBAgAABAgQIEKiawMyZETkS9KqrInJ6+yqrLKjhmmtGfPKTEddeG3HUUfUNfi5okUcECBAYXwEjQMfXV+kECBAgQIAAAQIECFRcYP/994/58+cPqeVee+0Vz3/+84fkyyAwkQIvelHEscdGzJ4dceCBjTN/9rMR73vfRNbCuQgQIFBvAQHQevef2hMgQIAAAQIECBAgsJACZ511Vuk1CN/+9rcLgC6krcMJECBAgEAVBEyBr0IvqAMBAgQIECBAgAABAgQIECBAgAABAuMiIAA6LqwKJUCAAAECBAgQIECAAAECBAgQIECgCgICoFXoBXUgQIAAAQIECBAgQIAAAQIECBAgQGBcBARAx4VVoQQIECBAgAABAgQIECBAgAABAgQIVEFAALQKvaAOBAgQIECAAAECBAgQIECAAAECBAiMi4AA6LiwKpQAAQIECBAgQIAAAQIECBAgQIAAgSoICIBWoRfUgQABAgQIECBAgAABAgQIECBAgACBcREQAB0XVoUSIECAAAECBAgQIECAAAECBAgQIFAFAQHQKvSCOhAgQIAAAQIECBAgQIAAAQIECBAgMC4CAqDjwqpQAgQIECBAgAABAgQIECBAgAABAgSqIDCjCpVQBwIECBAgQIAAAQIECBAgQIBAtwlcfPHFcc899/Q268knn+y7/+EPf9j7eNVVV42tt96625qtPQQqJyAAWrkuUSECBAgQIECAAAECBAgQIECgGwQOP/zw+PnPfz6gKY888ki84x3v6M3bYYcd4uyzzx6w3RMCBDovYAp8502VSIAAAQIECBAgQIAAAQIECBAgQIBARQSMAK1IR6gGAQIECBAgQIAAAQIECBAg0F0C7373u+NlL3tZy0atv/76LbfZQGAiBPbZZ5946KGH4tFHH+073TXXXBPvec97ep+/+c1vjp133rlvW10fCIDWtefUmwABAgQIECBAgAABAgQIEKi0wG677Vbp+qkcgbwe7d/+9rcBEHnd2tNPP703b/XVV++KAKgp8AO62BMCBAgQIECAAAECBAgQIECAAAECBLpJwAjQbupNbSFAgAABAgQIECBAgAABAgQIECDQpkAu0vX000+33Hv27Nktt9VpgwBonXpLXQkQIECAAAECBAgQIECAAAECBAh0SGDTTTftUEnVLsYU+Gr3j9oRIECAAAECBAgQIECAAAECBAgQILAQAgKgC4HnUAIECBAgQIAAAQIECBAgQIAAAQIEqi0gAFrt/lE7AgQIECBAgAABAgQIECBAgAABAgQWQkAAdCHwHEqAAAECBAgQIECAAAECBAgQIECAQLUFBECr3T9qR4AAAQIECBAgQIAAAQIECBAgQIDAQghYBX4h8BxKgAABAgQIECBAgED9BT73uc9FT0/PkIast956Q/JkECBAgAABAvUTEACtX5+pMQECBAgQIECAAAECHRTYaaedOliaoggQIECAAIGqCZgCX7UeUR8CBAgQIECAAAECBAgQIECAAAECBDomIADaMUoFESBAgAABAgQIECBAgAABAgQIECBQNQEB0Kr1iPoQIECAAAECBAgQIECAAAECBAgQINAxAQHQjlEqiAABAgQIECBAgAABAgQIECBAgACBqgkIgFatR9SHAAECBAgQIECAAAECBAgQIECAAIGOCQiAdoxSQQQIECBAgAABAgQIECBAgAABAgQIVE1AALRqPaI+BAgQIECAAAECBAgQIECAAAECBAh0TEAAtGOUCiJAgAABAgQIECBAgAABAgQIECBAoGoCAqBV6xH1IUCAAAECBAgQIECAAAECBAgQIECgYwICoB2jVBABAgQIECBAgAABAgQIECBAgAABAlUTEACtWo+oDwECBAgQIECAAAECBAgQIECAAAECHROY0bGSFESAAAECBAgQIECAAAECBAgQIECgSwTuuOOOOPDAA3tbc+ONN/a16swzz4yrr7669/mnPvWp2Gijjfq2eVBNAQHQavaLWhEgQIAAAQIECBAgQIAAAQIECEyiwNy5c+M73/nOkBpcddVVkbdM73//+wVAhwhVL8MU+Or1iRoRIECAAAECBAgQIECAAAECBAgQINAhASNAOwSpGAIECBAgQIAAAQIECBAgQIAAge4RWG+99eLKK68ctkEbbLDBsNttrIaAAGg1+kEtCBAgQIAAAQIECBAgQIAAAQIEKiQwa9as2GyzzSpUI1UZq4Ap8GOVcxwBAgQIECBAgAABAgQIECBAgAABApUXEACtfBepIAECBAgQIECAAAECBAgQIECAAAECYxUQAB2rnOMIECBAgAABAgQIECBAgAABAgQIEKi8gABo5btIBQkQIECAAAECBAgQIECAAAECBAgQGKuAAOhY5RxHgAABAgQIECBAgAABAgQIECBAgEDlBQRAK99FKkiAAAECBAgQIECAAAECBAgQIECAwFgFBEDHKuc4AgQIECBAgAABAgQIECBAgAABAgQqLzCj8jVUQQIECBAgQIAAAQIECIyjwGGHHRY9PT1DzrDrrrvGuuuuOyRfBgECBAgQIFAvAQHQevWX2hIgQIAAAQIECBAg0GGB73znO6UB0O22204AtMPWiiNAgAABApMhYAr8ZKg7JwECBAgQIECAAAECBAgQIECAAAECEyIgADohzE5CgAABAgQIECBAgAABAgQIECBAgMBkCAiAToa6cxIgQIAAAQIECBAgQIAAAQIECBAgMCECAqATwuwkBAgQIECAAAECBAgQIECAAAECBAhMhoAA6GSoOycBAgQIECBAgAABAgQIECBAgAABAhMiYBX4CWF2EgIECBAgQIAAAQIECBAgQIBAdwk89thj8fDDD/c26vHHH+9r3H333Rf33HNPTJs2LVZZZZW+fA8ITJaAAOhkyTsvAQIECBAgQIAAAQIECBAgQKDGAieccEIccMABQ1qw/fbb9+YtssgiMW/evCHbZRCYaAFT4Cda3PkIECBAgAABAgQIECBAgAABAgQIEJgwASNAJ4zaiQgQIECAAAECBAgQIECAAAEC3SOw5pprxjbbbNOyQTkCVCJQBQEB0Cr0gjoQIECAAAECBAgQIECAAAECBGomsPPOO0feJAJVFxCKr3oPqR8BAgQIECBAgAABAgQIECBAgAABAmMWEAAdM50DCRAgQIAAAQIECBAgQIAAAQIECBCouoAAaNV7SP0IECBAgAABAgQIECBAgAABAgQIEBizgADomOkcSIAAAQIECBAgQIAAAQIECBAgQIBA1QUEQKveQ+pHgAABAgQIECBAgAABAgQIECBAgMCYBQRAx0znQAIECBAgQIAAAQIECBAgQIAAAQIEqi4gAFr1HlI/AgQIECBAgAABAgQIECBAgAABAgTGLCAAOmY6BxIgQIAAAQIECBAgQIAAAQIECBAgUHUBAdCq95D6ESBAgAABAgQIECBAgAABAgQIECAwZgEB0DHTOZAAAQIECBAgQIAAAQIECBAgQIAAgaoLCIBWvYfUjwABAgQIECBAgAABAgQIECBAgACBMQsIgI6ZzoEECBAgQIAAAQIECBAgQIAAAQIECFRdQAC06j2kfgQIECBAgAABAgQIECBAgAABAgQIjFlgxpiPdCABAgQIECBAgAABAgS6QOATn/hE9PT0DGnJ2muvPSRPBgECBAgQIFA/AQHQ+vWZGhMgQIAAAQIECBAg0EGBD3zgAx0sTVEECBAgQIBA1QRMga9aj6gPAQIECBAgQIAAAQIECBAgQIAAAQIdExAA7RilgggQIECAAAECBAgQIECAAAECBAgQqJqAAGjVekR9CBAgQIAAAQIECBAgQIAAAQIECBDomIAAaMcoFUSAAAECBAgQIECAAAECBAgQIECAQNUEBECr1iPqQ4AAAQIECBAgQIAAAQIECBAgQIBAxwQEQDtGqSACBAgQIECAAAECBAgQIECAAAECBKomIABatR5RHwIECBAgQIAAAQIECBAgQIAAAQIEOiYgANoxSgURIECAAAECBAgQIECAAAECBAgQIFA1AQHQqvWI+hAgQIAAAQIECBAgQIAAAQIECBAg0DEBAdCOUSqIAAECBAgQIECAAAECBAgQIECAAIGqCQiAVq1H1IcAAQIECBAgQIAAAQIECBAgQIAAgY4JCIB2jFJBBAgQIECAAAECBAgQIECAAAECBAhUTUAAtGo9oj4ECBAgQIAAAQIECBAgQIAAAQIECHRMQAC0Y5QKIkCAAAECBAgQIECAAAECBAgQIECgagICoFXrEfUhQIAAAQIECBAgQIAAAQIECBAgQKBjAgKgHaNUEAECBAgQIECAAAECBAgQIECAAAECVRMQAK1aj6gPAQIECBAgQIAAAQIECBAgQIAAAQIdExAA7RilgggQIECAAAECBAgQIECAAAECBAgQqJqAAGjVekR9CBAgQIAAAQIECBAgQIAAAQIECBDomIAAaMcoFUSAAAECBAgQIECAAAECBAgQIECAQNUEBECr1iPqQ4AAAQIECBAgQIAAAQIECBAgQIBAxwQEQDtGqSACBAgQIECAAAECBAgQIECAAAECBKomIABatR5RHwIECBAgQIAAAQIECBAgQIAAAQIEOiYwo2MlKYgAAQIECBAgQIAAAQI1FPjqV78aPT09Q2r+lre8JdZcc80h+TIIECBAgACBegkIgNarv9SWAAECBAgQIECAAIEOC7QKgL70pS8VAO2wteIIECBAgMBkCJgCPxnqzkmAAAECBAgQIECAAAECBAgQIECAwIQICIBOCLOTECBAgAABAgQIECBAgAABAgQIECAwGQICoJOh7pwECBAgQIAAAQIECBAgQIAAAQIECEyIgADohDA7CQECBAgQIECAAAECBAgQIECAAAECkyEgADoZ6s5JgAABAgQIECBAgAABAgQIECBAgMCECAiATgizkxAgQIAAAQIECBAgQIAAAQIECBAgMBkCAqCToe6cBAgQIECAAAECBAgQIECAAAECBAhMiIAA6IQwOwkBAgQIECBAgAABAgQIECBAgAABApMhIAA6GerOSYAAAQIECBAgQIAAAQIECBAgQIDAhAgIgE4Is5MQIECAAAECBAgQIECAAAECBAgQIDAZAgKgk6HunAQIECBAgAABAgQIECBAgAABAgQITIiAAOiEMDsJAQIECBAgQIAAAQIECBAgQIAAAQKTISAAOhnqzkmAAAECBAgQIECAAAECBAgQIECAwIQICIBOCLOTECBAgAABAgQIECBAgAABAgQIECAwGQICoJOh7pwECBAgQIAAAQIECBAgQIAAAQIECEyIgADohDA7CQECBAgQIECAAAECBAgQIECAAAECkyEgADoZ6s5JgAABAgQIECBAgAABAgQIECBAgMCECAiATgizkxAgQIAAAQIECBAgQIAAAQIECBAgMBkCAqCToe6cBAgQIECAAAECBAgQIECAAAECBAhMiIAA6IQwOwkBAgQIECBAgAABAgQIECBAgAABApMhIAA6GerOSYAAAQIECBAgQIAAAQIECBAgQIDAhAgIgE4Is5MQIECAAAECBAgQIECAAAECBAgQIDAZAgKgk6HunAQIECBAgAABAgQIECBAgAABAgQITIjAjAk5i5MQIECAAAECBAgQIECgogIf/OAHo6enZ0jtVl999SF5MggQIECAAIH6CQiA1q/P1JgAAQIECBAgQIAAgQ4KHHDAAR0sTVEECBAgQIBA1QRMga9aj6gPAQIECBAgQIAAAQIECBAgQIAAAQIdExAA7RilgggQIECAAAECBAgQIECAAAECBAgQqJqAAGjVekR9CBAgQIAAAQIECBAgQIAAAQIECBDomIAAaMcoFUSAAAECBAgQIECAAAECBAgQIECAQNUEBECr1iPqQ4AAAQIECBAgQIAAAQIECBAgQIBAxwQEQDtGqSACBAgQIECAAAECBAgQIECAAAECBKomIABatR5RHwIECBAgQIAAAQIECBAgQIAAAQIEOiYgANoxSgURIECAAAECBAgQIECAAAECBAgQIFA1AQHQqvWI+hAgQIAAAQIECBAgQIAAAQIECBAg0DEBAdCOUSqIAAECBAgQIECAAAECBAgQIECAAIGqCQiAVq1H1IcAAQIECBAgQIAAAQIECBAgQIAAgY4JCIB2jFJBBAgQIECAAAECBAgQIECAAAECBAhUTUAAtGo9oj4ECBAgQIAAAQIECBAgQIAAAQIECHRMQAC0Y5QKIkCAAAECBAgQIECAAAECBAgQIECgagICoFXrEfUhQIAAAQIECBAgQIAAAQIECBAgQKBjAgKgHaNUEAECBAgQIECAAAECBAgQIECAAAECVRMQAK1aj6gPAQIECBAgQIAAAQIECBAgQIAAAQIdExAA7RilgggQIECAAAECBAgQIECAAAECBAgQqJqAAGjVekR9CBAgQIAAAQIECBAgQIAAAQIECBDomIAAaMcoFUSAAAECBAgQIECAAAECBAgQIECAQNUEBECr1iPqQ4AAAQIECBAgQIAAAQIECBAgQIBAxwQEQDtGqSACBAgQIECAAAECBAgQIECAAAECBKomIABatR5RHwIECBAgQIAAAQIECBAgQIAAAQIEOiYwo2MlKYgAAQIECBAgQIAAAQI1FDj99NNLa73ddtvF7NmzS7fJJECAAAECBOojIABan75SUwIECBAgQIAAAQIExkHg8MMPj56eniElr7POOgKgQ1RkECBAgACB+gmYAl+/PlNjAgQIECBAgAABAgQIECBAgAABAgTaFBAAbRPKbgQIECBAgAABAgQIECBAgAABAgQI1E9AALR+fabGBAgQIECAAAECBAgQIECAAAECBAi0KSAA2iaU3QgQIECAAAECBAgQIECAAAECBAgQqJ+AAGj9+kyNCRAgQIAAAQIECBAgQIAAAQIECBBoU0AAtE0ouxEgQIAAAQIECBAgQIAAAQIECBAgUD8BAdD69ZkaEyBAgAABAgQIECBAgAABAgQIECDQpoAAaJtQdiNAgAABAgQIECBAgAABAgQIECBAoH4CAqD16zM1JkCAAAECBAgQIECAAAECBAgQIECgTQEB0Dah7EaAAAECBAgQIECAAAECBAgQIECAQP0EBEDr12dqTIAAAQIECBAgQIAAAQIECBAgQIBAmwICoG1C2Y0AAQIECBAgQIAAAQIECBAgQIAAgfoJCIDWr8/UmAABAgQIECBAgAABAgQIECBAgACBNgUEQNuEshsBAgQIECBAgAABAgQIECBAgAABAvUTEACtX5+pMQECBAgQIECAAAECBAgQIECAAAECbQoIgLYJZTcCBAgQIECAAAECBAgQIECAAAECBOonIABavz5TYwIECBAgQIAAAQIECBAgQIAAAQIE2hQQAG0Tym4ECBAgQIAAAQIECBAgQIAAAQIECNRPQAC0fn2mxgQIECBAgAABAgQIECBAgAABAgQItCkgANomlN0IECBAgAABAgQIECBAgAABAgQIEKifgABo/fpMjQkQIECAAAECBAgQIECAAAECBAgQaFNAALRNKLsRIECAAAECBAgQIECAAAECBAgQIFA/AQHQ+vWZGhMgQIAAAQIECBAgQIAAAQIECBAg0KbAjDb3sxsBAgQIECBAgAABAgS6UuDtb397zJ8/f0jbVllllSF5MggQIECAAIH6CQiA1q/P1JgAAQIECBAgQIAAgQ4KHH744R0sTVEECBAgQIBA1QRMga9aj6gPAQIECBAgQIAAAQIECBAgQIAAAQIdEzACtAOUl1xySfz6179uq6SZM2fGvvvu23LfO++8M0477bT4y1/+Evl45ZVXjo033jg22WST2HbbbWPWrFktj7WBAAECBAgQIECAAAECBAgQIECAAIGBAgKgAz3G9Ozcc8+NX/7yl20du+SSS7YMgJ555pnxjW98I+bNm9dX1q233hp5O+uss+KnP/1pHHXUUbH00kv3bfeAAAECBAgQIECAAAECBAgQIECAAIHWAqbAt7Zpe8sNN9zQ9r6tdswA59e//vXe4Odiiy0WO+ywQxxwwAGx2267xbrrrtt72DXXXBP77LNPPPDAA62KkU+AAAECBAgQIECAAAECBAgQIECAQD8BI0D7YYzl4eOPPx533HFH76Gbb755HHzwwcMWs8giQ2POc+fOjWOOOab3uBwhesQRR8RLXvKSvnJ23333yAuzn3/++XHTTTfFKaecEh//+Mf7tntAgAABAgQIECBAgAABAgQIECBAgEC5gABouUvbuTfeeGP09PT07r/RRhvFCius0PaxzR1/8IMfxFNPPdX79MMf/vCA4GdmzpgxIw455JDea4Jed911cc4558Ree+0VSyyxRLMI9wQIECBAgAABAgQIECBAgAABAgQIlAgMHY5YspOs1gL9p78///nPb73jMFty+numXODoDW94Q+meOXJ0l1126d2Wo04zCCoRIECAAAECBAgQIECAAAECBAgQIDC8gADo8D4jbl3YAOjdd9/dd03PnPa+6KKLtjznZptt1rctF16SCBAgQIAAAQIECBAgQIAAAQIECBAYXkAAdHifEbc2A6DLLrtsrLLKKr3755T4e+65Jx566KERj8+FjZppvfXWaz4svV9uueX6ptjntUAlAgQIECBAgAABAgQIECBAgAABAgSGF3AN0OF9ht06b9683kWJcqec/v7HP/6xd4Giq6++Op544oneY1deeeXIa4PmNTtXX331IeU1F1DKDautttqQ7YMzMsh6//33R06Dv++++2LFFVccvIvnBAgQIECAAAECBAgQIECAAAECBAg8KyAAuhAvhdtuu61v8aIMeu69995DSrv33nsjb5deemnkAkdve9vbBuzz6KOP9j3PEZ4jpRxp2kwPP/xwWwHQ//iP/+gdkdo8bvB9LsCUwdkctZpBXYkAAQIECBAgQIAAAQIECBAgQIBAtwgIgC5ETzanv2cROSJz5syZ8eIXv7h3Fffll18+br755rjgggvirrvu6h0R+uUvfzmWXnrpmDNnTt9Z+wdAF1988b78Vg/679McZdpq32b+lVde2TdStZk3+H7JJZeMadOmDc72nAABAgQIECBAgAABAgQIECBAgECtBQRAF6L7+gdAcyr6McccE+uss86AEnffffc4/vjj46c//Wlv/nHHHRebb755NEd7PvbYY337L7bYYn2PWz3ov8+TTz7Zajf5BAgQIECAAAECBAgQIECAAAECBAgUAgKgC/Ey2HHHHeOFL3xh5Erur3nNa2L27NlDSstRofvvv39cd911kQHTXBjp+9//fnzoQx/q3XfGjAVd0M708/779A+GDjmxDAIECBAgQIAAAQIECBAgQIAAAQIEBED7vwbOP//8+PnPf94/a8jjAw44IHJho0xrrLFG723IToMypk+fHu9///vjoIMO6t3Sf+TorFmz+vbOa3GOlPqP+sxp6+2kb3zjG33XKi3b/61vfWtcf/318cwzz5RtlkeAAAECBAgQIECAAAECBAgQIECgtgILhh/Wtgmdq3iuyP6b3/xm2ALbve7m4ELWW2+9vqybbrqp73H/IGb/64H27TDoQf8p8/2PHbTbgKdrrbXWgOeDnyyyyCLDBkgH7+85AQIECBAgQIAAAQIECBAgQIAAgboICIBOUE+ttNJKfWfKafDNtNpqqzUf9q4W3/ekxYNcUT5Tjip9znOe02Iv2QQIECBAgAABAgQIECBQd4H8/pcL62a6+uqre+/zn8svvzyWWGKJ3uc77LCD74Z9Mh4QIECgXEAAtJ/LTjvtFK9//ev75Qx9mIsdNVOO2Jw7d27ktPR11123mV163wxc5sY111yzb5+111677/Gdd97Z97jsQU5Rv+eee3o3Pe95z4v+K8KX7S+PAAECBAgQIECAAAECBOor8Mc//jF22WWXIQ044YQTIm+Zcp+NN954yD4yCBAgQGCBgADoAotYaqmlem/9slo+zKnob3zjGyMXJcrFiH72s58NG5C85ZZb+srqPyU9p8Yvuuii8fTTT8dVV13Vt0/Zg2uvvbZ3v9y20UYble0ijwABAgQIECBAgAABAgQIECBAgACBfgICoP0wRvMwpxtkEDJ/bcvFiy677LJ49atf3bKIM844o2/b1ltv3fc4y9lyyy3j4osvjptvvrl3MaINNtigb3v/B/0XaHrlK1/Zf5PHBAgQIECAAAECBAgQINBlAjnz75BDDhm2Vc1FeofdyUYCBAhMcQEB0IV4AWQgMwOgmY477rh4yUteEksvvfSQEn/4wx/2je5cf/31Y86cOQP2edOb3tQbAM3Mo446Ko455pgh5eTiTGeddVbvceuss0684hWvGFCGJwQIECBAgAABAgQIECDQXQL53e8zn/lMdzVKawgQIDAJAotMwjm75pQ777xzbLLJJr3tyWt87rHHHnHJJZdETo/P63XecMMN8bnPfa43OJo75VT5/fbbL6ZNmzbAYKuttuodBZqZ1113Xe8+v/3tb3uvLfr3v/89fvCDH8RBBx3UO90+j91rr72GlDGgQE8IECBAgAABAgQIECBAgAABAgQIEOgVmNZTJBZjF8gAZQY177jjjgGFzJgxozcI2szMaQkZDN1www2bWQPuH3744Tj00EPjiiuu6MvPld7zGqP907777hsZeO1k2nTTTQesKPjggw/GMsss08lTKIsAAQIECBAgQIAAAQIECBAgQIDApAgIgHaAPRcwylGa3/72tyNXhu+fll122d6p8R/72MdiueWW679pyOP58+fHiSeeGD/+8Y/jkUceGbA9r/2SIz/HY+q7AOgAak8IECBAgAABAgSmmEDzUlODm73FFlvESiutNDjbcwIECBAgQKBmAgKgHeywDGDec889cdttt/UujJSLGa266qpjOsNdd93VO4V+8cUXjzXXXDNmz54diywyPlcsEAAdUxc5iAABAgQIECBAoEsEcpZW2cS4k046KfJyVRIBAgQIECBQbwGLIHWw/zJAudpqq/XeFrbYTpWzsPVwPAECBAgQIECAAAECBAgQIECAAIE6C4zPkMI6i6g7AQIECBAgQIAAAQIECBAgQIAAAQJdIyAA2jVdqSEECBAgQIAAAQIECBAgQIAAAQIECAwWEAAdLOI5AQIECBAgQIAAAQIECBAgQIAAAQJdIyAA2jVdqSEECBAgQIAAAQIECBAgQIAAAQIECAwWEAAdLOI5AQIECBAgQIAAAQIECBAgQIAAAQJdIyAA2jVdqSEECBAgQIAAAQIECBAgQIAAAQIECAwWEAAdLOI5AQIECBAgQIAAAQIECBAgQIAAAQJdIyAA2jVdqSEECBAgQIAAAQIECBAgQIAAAQIECAwWEAAdLOI5AQIECBAgQIAAAQIECBAgQIAAAQJdIyAA2jVdqSEECBAgQIAAAQIECBAgQIAAAQIECAwWEAAdLOI5AQIECBAgQIAAAQIECBAgQIAAAQJdIyAA2jVdqSEECBAgQIAAAQIECK+Oju8AAEAASURBVBAgQIAAAQIECAwWEAAdLOI5AQIECBAgQIAAAQIECBAgQIAAAQJdIyAA2jVdqSEECBAgQIAAAQIECBAgQIAAAQIECAwWEAAdLOI5AQIECBAgQIAAAQIECBAgQIAAAQJdIyAA2jVdqSEECBAgQIAAAQIECBAgQIAAAQIECAwWEAAdLOI5AQIECBAgQIAAAQIECBAgQIAAAQJdIyAA2jVdqSEECBAgQIAAAQIECBAgQIAAAQIECAwWEAAdLOI5AQIECBAgQIAAAQIECBAgQIAAAQJdIyAA2jVdqSEECBAgQIAAAQIECBAgQIAAAQIECAwWmDE4w3MCF198cSy11FIgCBAgQIAAAQIECEwJgcceeyx6enqGtPX3v/99PPPMM0PyZRAgQIAAAQLjK7DVVlvFjBmdC1tOK/7QD/1LP75tUHrFBDbddNO4+uqrK1Yr1SFAgAABAgQIECBAgAABAgQIEJiKAvfdd1+ssMIKHWt650KpHauSgiZa4LWvfW2ss846ce6558bjjz8+0afvO9+SSy7Z93j+/PmTWpe+inTwwaxZs2KRRRZcdaLVSIMOnnJCi1p00UVjscUW6zvnk08+2VUjJrLvsg+bKUeDZBu7KfV/D+ZvY/ka7aY0c+bMmD59el+T8vMuP2u6JeWvo4svvnhfc5566ql4+umn+57X/cG0adNiiSWW6GvGvHnz4oknnuh73g0Psn3ZzmZ69NFHmw+74j5fn/1/xc/+y37slpSfL/k500z5/sv3YTel/n8npsL/1brtPZj/T8v/rzWT/6s1Jepz3/89OBX+r9bt35f8X60+771mTafa/9W67vtSsyPdT12BY489trfxa6+9dtx6662TApHBpdVXX73v3PkfssmqS18lOvxgxRVXHBBAu/HGG7vqi99znvOcAb/O3H333fHII490WHHyissv7v1fow8//HDcc889k1ehcTjz7Nmz+4L0GeC96aabxuEsk1fk8ssvP+DyHrf8//bOBG6rMf//V6tSUoYikRIqhEkaakaW5jfSmCnSWGbQz5gM/jTGICYGP2t2MmJsg4w1kqlmRrZJliKKGjutQlJEUf/nfZnrdt9P93Ke9T7nez7X6/U897nPdp/P+/pey/le27vvmnJOMHVJ27ZtM4CXLl3qli1blvme9A0cZ9lpEMfEggULki4r5/nbtWuXcU7wYvvGG2/kHE/6l9atW7uNN944I2P+/PmmGlpoJGvfvn1G3yeffOLouWAlVK6r4cB+//33rcjzOjbbbLMcJ/abb75pqqGMuhplYQjW62rLly93S5YsCXJNfJLHhIYyi3U1enplO3mt1dXQll1X+/DDD92nn35qwjYRQQNLdl1t5cqVbuHChWb0IWTzzTfPNOamoa72wQcfmOqYpiHwppJjzcSceuqpZauoU4C/+OKLGQG8RDA031KYPXu2oxAI4fvf/35Oj8mwP6mfZI7Zzohtt93W8SJhJeDwfO211zJycGh36dIl893CxnPPPZeZ/4wKTM+ePS3IymiYO3duTiVz5513zqlkZ05M6AYOeV4UQth6661znDFhf1I/aYGeNWtW5vFxpHXr1i3z3cLGzJkzc5zyP/jBDyzIymig4Q/HfAjEX7ZDNOxP6ifOThxmIdCo1LFjx/A18Z+V62r0gunRo0fidWULePXVV112r0/Kwewek9nnJnEbh3W2M4J6DPUZKwGH5+uvv56RQz2U+qilMH369IycNNTVyGOyR39kxCd0g0aH7E4+lBGUFVYCPXazp9aj4bNr165W5HkdM2bMyIywojGid+/epvRRj8luvC13XW3MmDG1+r4mB6gpc02uGByD2c6W7bff3k2YMCG5gvI8+ZAhQ3IKBBabsuQgpCfxDTfckFF+ySWXuJ///OeZ70nfwEF/xBFHZGQcdNBB7rLLLst8t7Cx0047ZQp0WuCnTZtmQVZGw/Dhw93UqVMz3x9++GFTlbK//vWv7oILLsjoO/30092wYcMy35O+QY/kAw44ICODSdFvueWWzHcLG3vvvXdOz/J58+ZZkJXRcNZZZ7n7778/8/3WW291e+21V+Z70jcmTpzofve732VkHHvsse60007LfE/6Br2Usl/0eKklH7UUBg8e7ObMmZOR9Oyzz+b0mMwcSOjG5Zdf7saOHZt5+tGjR7uf/vSnme9J38A5eNRRR2VkDBo0yF188cWZ7xY2cEaE6XvoSfj0009bkJXR8Otf/9o99dRTme/kq5Y6HFDuZdvkmWee6Y4++uiM3qRvMHJl4MCBGRk/+tGP3E033ZT5bmGjb9++mcZcRidllxkW9PH+MH78+IyUO+64I6fszxxI6MZ3ExImVIAeWwREQAREQAREQAREQAREQAREQAREQAREQAREQAQKEZADtBAZ7RcBERABERABERABERABERABERABERABERABEUg8ATlAEx+FEiACIiACIiACIiACIiACIiACIiACIiACIiACIlCIgByghchovwiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIQOIJyAGa+CiUABEQAREQAREQAREQAREQAREQAREQAREQAREQgUIE5AAtREb7RUAEREAEREAEREAEREAEREAEREAEREAEREAEEk+gceIVSIAJAo0bN3YDBgzIaGnfvn1m28pG3759XYcOHTJymjVrltm2sLHDDjvkxGG2Vgv6Ntlkkxx9u+66qwVZORpIg2vWrPH7WrVqlXPMwpdevXq55s2bZ6RY07jNNtvk2Gjnzp0zWi1stGzZMkdf165dLcjK0bDffvu5ZcuW+X0NGjTIOWbhS48ePdwXX3yRkbLppptmti1sbLnlljk22q1bNwuyMhqaNm2ao89aOY9Q6modO3bM0Zz5YmCDfDO7vo3NWgrkKdn6dtllF0vyvBb0rV271m+3bt3anD7qapT3IWy00UZh08QndbNsG+3UqZMJXUEE8ZWtr3v37uGQmc/999/fLV++3OvBh2Et8I67evXqjCxrdbUG6ypCRp02REAEREAEREAEREAEREAEREAEREAEREAEREAERMAQAQ2BNxSZkiICIiACIiACIiACIiACIiACIiACIiACIiACIpBLQA7QXB76JgIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiYIiAHKCGIlNSREAEREAEREAEREAEREAEREAEREAEREAEREAEcgnIAZrLQ99EQAREQAREQAREQAREQAREQAREQAREQAREQAQMEZAD1FBkSooIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiEAuATlAc3nomwiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgCECcoAaikxJEQEREAEREAEREAEREAEREAEREAEREAEREAERyCUgB2guD30TAREQAREQAREQAREQAREQAREQAREQAREQAREwRKCxIS2SIgKxIrBmzRrXuHFj16BBgyo919dff+0++eQTf02LFi0cf0kMq1evdvPnz3eLFi1ym222mevcubPnkUQthZ75m2++ca+88oo/3K5dO9e+fftCpyZq/6pVq9w777zj3n77bbd8+XK31VZbua233tp/NmrUKFFaij3sihUrvE70tm3b1m255ZauadOmxS4py7GvvvrKPf300/63d911V7fpppuW5Tni+KPkle+++67PMzt27Og6deqUuHwGOySfXLlypWP7iy++cM2aNfN5f8uWLV3r1q0Tn7dgw0uWLHFffvml/yPvpGxDH58bb7xxHM1Lz1RBgLK8OvkiZQfxTiB/VSgPgbTXRaH+0UcfuQULFjjK+u22285973vfK09k1NGvWq2Lrlu3zi1evNjXRSnnN9poI0c5v80225gqM5JSF8V8X3/9dZ+WKLN79epVRxadvNuqLpqsOGtQkbmsS9Yj62lFIL4EPv30U3fLLbd4pxiFNS+xXbt2dbvttpv7xS9+4TbYYIOSDz9v3jx37LHH+vOOOeYYN2zYsJLX1PcJy5Yt844xKiKVHbxUxO677z531113OXiEgDN4l112cb///e9dhw4dwu5Ef+KwOOCAA7yGX/3qV+7Xv/51LPXMmDHDvfXWW/7ZDjroIG+X+R6UF6W//vWv7o477nDEY+WAI/T44493P/zhDysfis13bO6f//ynmz59uk873bt3z3k2Ghjuueced//997uPP/445xjOmH322ccddthh3tmbc7CMX5YuXeoGDx7sn4AXt/PPP9/tvPPOZXyiuv3ptWvXug8++MCRF2KTvLBuv/32OT/64YcfurFjx7p//OMfjvNDIJ/Zf//93SmnnBLrxiNeyB944AH34osvep2lqmK8bBDnPXv2dAceeKBr3rx5kBzbz9dee82NHz/ezZo1yzt4i2nEyUta3WmnndyAAQPMOShiG0kFHmzq1Klu4sSJ3jbJU2kA69atm6P86NGjR4Grcneffvrpbtq0aX5naMDJPUPf6opAWuqiOOdxkJF/tGrVaj2c1HtuvPFG9+yzz+YcoxylTj506ND16rA5JybkS1LqojSAPfLII57qtttu68uzQoj/85//uIsuusi9+eab651CQ/xPf/pTX8dr06bNesfjsMNiXRSul1xyiXv00Uc9YuJgxIgRrkmTJnFAXuvPoLro+kiTWBddX4VzcoDmo6J9IlANAi+88IK74IILMr03K98Cp9+ZZ55Z8uUhzg5QXmL+8pe/ZJxpm2yyifvBD37gfvnLX2acmhdffLF/caqsP3znxZ0CMzgOw/4kfial0jl69Gj38MMPe8Q4JPL1fuAl4g9/+IPvEVkqLohzKqY4m+IUcLScc845Gcfm//3f/7kf/ehHmUekVyvH+SwW6O104oknukGDBhU7rd6OZTtA+VG4k4Zw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UF2tue8Yovel+ObP1m3Uur40lBPZqUcO0Gwa2hYBERABERABERABERABERABERABERABERABETBFoLEpNRJjhsBdd93lV1NH0CmnnBLrIeHVgb5w4UJ34403+ktZKIkVci0F6/qIK+s2al2fdRu1ri8NadB6HFrXlwYbVTlBLCc3KA0mN+7CkysNBhLJ/FQaTGa8ZT+10mA2jWRsywGajHhK3VMyf2ZYWGD48OHm9K9YscI9/vjjXhcr31tzgFrXR8RZt1Hr+qzbqHV9aUiD1uPQur402KjKCWI5uUFpMLlxF55caTCQSOan0mAy4y37qZUGs2kkY7thMh5TTykCIiACIiACIiACIiACIiACIiACIiACIiACIiACVScgB2jVmekKERABERABERABERABERABERABERABERABERCBhBCQAzQhEaXHFAEREAEREAEREAEREAEREAEREAEREAEREAERqDoBOUCrzkxXiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIJISAHKAJiSg9pgiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIQNUJyAFadWa6QgREQAREQAREQAREQAREQAREQAREQAREQAREICEEGifkOfWYKSPQoEED16hRI6+abYsh6GvY0GY7hHV91m3Uuj7yFOs2al2fbDT5JaNsNNlxqDSY7Pjj6ZUGkx2HSoPJjj+lweTHn9Jg8uKwwbqKkLzH1hOLgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIQGkCNrueldatM0RABERABERABERABERABERABERABERABERABFJAQEPgUxDJcZVI5+P58+e75cuXu5UrV7oVK1a4b775xrVs2TLz1759e7fhhhvGVULJ50LTokWLMvq++OIL16xZM9eiRQuvsXXr1g6NSQ3W9Vm3Uev6SFfWbdS6PtloS6dyIt4lpHUbta4vWNdXX33llixZ4r788kv/R3001NX43HjjjcOpify0ro9I+eijj9xnn33m4w+9TZs29XFI/LVq1cptsMEGiYy78NDW9Vm3Uev6lAaTn8ekwUaxUzlAQ6miz3oj8MQTT7ipU6e6mTNnuk8//bTo7zI/5rbbbut69Ojh+vfv73bcccei58fhIBWUBx54wL344otu3rx5jpeHYoFK9c477+x69uzpDjzwQNe8efNip5f9mHV9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O1jXB9+gMfRiqilz7sNK8YQ4xaF1fUqD0S03TnkMT600GD3uODOueYzVNBg1duQAjUpK51WbQKhU/Otf/3Kvv/560fusWLHCr8zISa1bt3YMB68cWBE+hPDSHL6X4zPo47evu+66ko9w//33Zxy4O+yww3rn80L073//2++XvvXw1MmOEIfWbdS6PoxDadC5pOUxxFta0qBsFAKyURjEtS5juZxo0KAB6N1VV12VqYf5HdX4xyrir7zyir+S1cjLHchDLeuDb6gzVyw65YJjqLrced8I9QU6I7Rv3766t6q166zrs26j1vVh6NZt1Lq+NNholAxZDtAolHROjQhUrJDpr8exx6TlocJY+aafffaZO//88zPd68Mw8OzzZs6c6RcJYl+HDh0c82mWO+CkJUMh8EJz9dVXu1WrVuV9LBybY8eO9ceoqO66664557H40yWXXJLpIcrCUeUO1vXB17qNWtdn3Uat60tDGrQeh9b1pcFGrZcT1BdZZJNQsQK4X5DynXfe8d+r8o8ROnfffbevq3EdjfUVq4lX5RZ1cq51fUD75S9/6Yesr1692p155pnu4Ycf9usBVBXoG2+84X73u99lFjD9+c9/XtVb1Mn51vVZt1Hr+jB66zZqXV8abDRK5tyApeGjnKhzRKAmBM477zz3j3/8I3MLJh5nsSN6OH7++eeOxX7Gjx/vGB5IYG6K22+/3W266ab++/Tp0/13hmYFk7344ov9ROj+hDL/4/mPPfbYTEVss802cwMGDHAdO3Z0bdq08RPkP//88y57pVAy2eOOO84/OUNwLr30Ul8pDwxohbrpppsyLfrllGhdH2yt26h1fdZt1Lq+NKRB63FoXV8abNR6OfHRRx+5k046yWXPr77NNtv4xmiGduLI33DDDf2c7swNiaMNh+eyZcvckiVL3Lx589ysWbMyC3RyzpVXXunyNdhjL/UdrOuD57hx49yYMWMyaFlfAP5dunTxvTipczMnf9OmTf3wduKQ9wzmLlywYIF7+eWXXbbjm44Go0ePjjyHf+aH62jDuj7rNmpdH2Zv3Uat60uDjZbKnuUALUVIx2uFAENNTjzxRO/oLHXDJk2aeGdU6I3A+bS233DDDf5Sek4effTRbtiwYaVuVa/HaYmmIhzmEyr24zh/GYKVvYrl/vvvn5n7E8fphRdemJkXr9i96uuYdX3WbdS6PtKBdRu1rk82mpubq5yIXzlo3Uat6yOF0cg8cuTIzGrGuaku+jeGTY8YMcL1798/+kX1cKZ1fSBk+oErrrjCO6hrgrR3795u1KhRvtNFTe5T29da12fdRq3rw96t26h1fWmw0WL5shygxejoWK0SYAg8jkx6dtIimy/svvvuflin8IsaAAAobklEQVTKVlttlXN40qRJfrhRjx493JFHHuniMDQ85wH/+4UFnC677DL32muv5Tvsexb8+te/doMHD16vtXno0KF+TiqGUnEOrdpxC9b1WbdR6/pIL9Zt1Lo+2ahTOVFRV4hzOWjdRq3rC/UqRhZRJ2VapigN1+E6pl/ad9993SGHHOJH+IT9cfu0ro9euffdd593xLCgR9RAJwscnwMHDozNKLJ8z25dH5qt26h1fdZt1Lq+NKTBfHkr++QALURG++uMAF2v586d69599133/vvv+5ZXhiB17tzZde/ePe/v0iuBoUYMTYp7WLt2rXeAoo8/np2h/vTq3HHHHQtWmBme07Zt27jLc9b1EQHWbdS6Pus2al1fGtKg9Ti0ri8NNmq9nCAOCQxxZ2g7f/SKWblypR8yjSO4WbNmvjGaYdWhnooDNEnBuj7iYtGiRY4pspjagOHu/H3xxRd+lBWdCVq0aOGHxxOHDJVPwrtEto1Z12fdRq3rUxpMfh6TBhvNzlPlAM2moW0REAEREAEREAEREAEREAEREAEREAEREAEREAFTBLQKvKnolBgREAEREAEREAEREAEREAEREAEREAEREAEREIFsAo2zv2hbBERABERABERABERABERABNJAYM2aNX6oNAtsViUwRD7MPckQa/7iGKzrgznrCrDqe1XD8uXLM4uPxnkKKuv6rNuodX1Kg4VznqTkMWmw0exYkgM0m4a2RUAEREAEREAEREAEREAEzBJgrs9bbrnFL4DEXO3M9dm1a1e32267uV/84hdugw02KKn9rbfecscee6w/75hjjnHDhg0reU19nWBdHxynTp3qF0AKc7cy1363bt3cQQcd5FgwNUq48MIL3bRp0/ypTz/9dJRL6u0c6/qs26h1fSQE6zZqXV8abLRQhi0HaCEy2i8CIiACIiACIiACIiACImCGwAsvvOAuuOCCTO9NhLFozowZM/zfpEmT3JlnnhnZiRY3MNb1rVq1yl1++eVu8uTJOehZVJW/KVOmuCFDhrjjjjsukiM75yYx+GJdH4it26h1fdZt1Lq+NKTBUlm55gAtRUjHRUAEREAEREAEREAEREAEEk1gyZIlbuTIkTnOz3bt2vmV3oMwVhI/8cQT3e233x52JebTuj4iYuzYsTnOT3rvbrHFFpk4Wrdunbv33nsdvXIXLlyY2Z+UDev6rNuodX2kI+s2al1fGmy0VH6vHqClCOm4CIiACIiACIiACIiACIhAoglce+217ssvv/Qa+vfv70466STXpk0bh9Ns7ty57s9//rObOXOm/37zzTc75kULw9yTINy6vjfeeMM9+OCDPiqItz/84Q9ur732cg0bNnQrV650jzzyiLvjjjt8j94PPvjAxy9M2rdvn4Toc9b1EQnWbdS6Pus2al1fGtJglMxeDtAolHROjQgMHDjQVyZrdJMCF0+cOLHAkfrbfffdd7u77rqrTn7w8MMPd0cccUSd3DvqTa3rg4N1G7Wuz7qNWteXhjRoPQ6t60uDjVovJz766CP35JNPEpWuX79+btSoUX6bfyyAxPyRV199tXvggQf8J05ReoE2b9687PWwzIMW2bCuD+njx493a9eudY0aNXJXXHGF69KlS4ZIy5YtHXXmH//4x+73v/+9Y47WDz/80J1yyinesb3JJptkzo3rhnV91m3Uuj7SjXUbta4vDTYaJX+XAzQKJZ1TIwKfffZZnTlAa/RgtXQxqzOisS7CV199VRe3rdI9resDhnUbta7Puo1a15eGNGg9Dq3rS4ONWi8n3nvvPaLRh+OPPz5srvd58MEHO5xl5513nmOld3qFskI4PUbjHKzrgz0LVhH233//HOen3/nff5tuuqm7/vrr3RlnnOFefvllt2jRIt9TlJ55OLPjHKzrs26j1vWRdqzbqHV9abDRKHm8HKBRKOmcGhGgInLRRRc5hqOEQOWSISsWwmGHHeaH3jDnED0GCKwgutFGG9VY3oYbbljje9T0Btb1wce6jVrXZ91GretLQxq0HofW9aXBRq2XEyyQQ6BuVmpI9D777OPrqH/84x99vY7VwnGssUp8XIN1fXAPGnfYYYei0dCiRQs3evRod/LJJ7s5c+Y4Voqnx+/FF1/se48WvbiMB9OiT2nQuSTmMSSNtNio9TzGahqMmn3LARqVlM6rNoGdd97Z3Xjjje7UU091r7/+ur/PgQce6Fdo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OW/dRq3rS0MazJfK5ADNR0X7REAEREAEREAEREAEREAEREAEREAEREAEREAETBDQEHgT0SgRIiACIiACIiACIiACIiACIiACIiACIiACIiAC+QjIAZqPivaJgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiYICAHqIlolAgREAEREAEREAEREAEREAEREAEREAEREAEREIF8BOQAzUdF+0RABERABERABERABERABERABERABERABERABEwQkAPURDRKhAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIQD4CcoDmo6J9IiACIiACIiACIiACIiACIiACIiACIiACIiACJgjIAWoiGiVCBERABERABERABERABERABERABERABERABEQgHwE5QPNR0T4REAEREAEREAEREAEREAEREAEREAEREAEREAETBOQANRGNEiECIiACIiACIiACIiACIiACIiACIiACIiACIpCPgByg+ahonwiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAkCcoCaiEaJEAEREAEREAEREAEREAEREAEREAEREAEREAERyEdADtB8VLRPBERABERABERABERABERABERABERABERABETABAE5QE1Eo0SIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAjkIyAHaD4q2icCIiACIiACIiACIiACIiACIiACIiACIiACImCCgBygJqJRIkRABERABERABERABERABERABERABERABERABPIRkAM0HxXtEwEREAEREAEREAEREAEREAEREAEREAEREAERMEFADlAT0SgRIiACIiACIiACIiACIiACIiACIiACIiACIiAC+QjIAZqPivaJgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiYICAHqIlolAgREAEREAEREAEREAEREAEREAEREAEREAEREIF8BOQAzUdF+0RABERABERABERABERABERABERABERABERABEwQkAPURDRKhAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIQD4CcoDmo6J9IiACIiACIiACIiACIiACIiACIiACIiACIiACJgjIAWoiGiVCBERABERABERABERABERABERABERABERABEQgHwE5QPNR0T4REAEREAEREAEREAEREAEREAEREAEREAEREAETBOQANRGNEiECIiACIiACIiACIiACIiACIiACIiACIiACIpCPgByg+ahonwiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAkCcoCaiEaJEAEREAEREAEREAEREAEREAEREAEREAEREAERyEdADtB8VLRPBERABERABERABERABERABERABERABERABETABAE5QE1Eo0SIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAjkIyAHaD4q2icCIiACIiACIiACIiACIiACIiACIiACIiACImCCgBygJqJRIkRABERABERABERABERABERABERABERABERABPIRkAM0HxXtEwEREAEREAEREAEREAEREAEREAEREAEREAERMEFADlAT0SgRIiACIiACIiACIiACIiACIiACIiACIiACIiAC+QjIAZqPivaJgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiYICAHqIlolAgREAEREAEREAEREAEREAEREAEREAEREAEREIF8BOQAzUdF+0RABERABERABERABERABERABERABERABERABEwQkAPURDRKhAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIQD4CcoDmo6J9IiACIiACIiACIiACIiACIiACIiACIiACIiACJgjIAWoiGiVCBERABERABERABERABERABERABERABERABEQgHwE5QPNR0T4REAEREAEREAEREAEREAEREAEREAEREAEREAETBOQANRGNEiECIiACIiACIiACIiACIiACIiACIiACIiACIpCPgByg+ahonwiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAkCcoCaiEaJEAEREAEREAEREAEREAEREAEREAEREAEREAERyEdADtB8VLRPBERABERABERABERABERABERABERABERABETABAE5QE1Eo0SIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAjkIyAHaD4q2icCIiACIiACIiACIiACIiACIiACIiACIiACImCCgBygJqJRIkRABERABERABERABERABERABERABERABERABPIRkAM0HxXtEwEREAEREAEREAEREAEREAEREAEREAEREAERMEFADlAT0SgRIiACIiACIiACIiACIiACIiACIiACIiACIiAC+QjIAZqPivaJgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiYICAHqIlolAgREAEREAEREAEREAEREAEREAEREAEREAEREIF8BOQAzUdF+0RABERABERABERABERABERABERABERABERABEwQkAPURDRKhAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIQD4CcoDmo6J9IiACIiACIiACIiACIiACIiACIiACIiACIiACJgjIAWoiGiVCBERABERABERABERABERABERABERABERABEQgHwE5QPNR0T4REAEREAEREAEREAEREAEREAEREAEREAEREAETBOQANRGNEiECIiACIiACIiACIiACIiACIiACIiACIiACIpCPgByg+ahonwiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAkCcoCaiEaJEAEREAEREAEREAEREAEREAEREAEREAEREAERyEdADtB8VLRPBERABERABERABERABERABERABERABERABETABAE5QE1Eo0SIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAjkIyAHaD4q2icCIiACIiACIiACIiACIiACIiACIiACIiACImCCgBygJqJRIkRABERABERABERABERABERABERABERABERABPIRkAM0HxXtEwEREAEREAEREAEREAEREAEREAEREAEREAERMEFADlAT0SgRIiACIiACIiACIiACIiACIiACIiACIiACIiAC+QjIAZqPivaJgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiYIPD/AZ6l5k6G2fJHAAAAAElFTkSuQmCC" width="672" /></p>
<div class="sourceCode" id="cb44"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb44-1"><a href="#cb44-1" aria-hidden="true" tabindex="-1"></a>estimates_koguchi_number_OLS_covar <span class="ot">&lt;-</span> df_estimates 　 <span class="co">#for robustness check</span></span></code></pre></div>
</div>
<div id="wls-no-trends-figure-5-b-tablec.6-1-1" class="section level2" number="7.2">
<h2><span class="header-section-number">7.2</span> WLS, no trends, Figure 5 (b) &amp; TableC.6 (1)</h2>
<div class="sourceCode" id="cb45"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb45-1"><a href="#cb45-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb45-2"><a href="#cb45-2" aria-hidden="true" tabindex="-1"></a>estimation_results <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_WLS_notrend_covar8Xcovid_months</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb45-3"><a href="#cb45-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>koguchi_number, </span>
<span id="cb45-4"><a href="#cb45-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>unemploy_shock_diff2)</span>
<span id="cb45-5"><a href="#cb45-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb45-6"><a href="#cb45-6" aria-hidden="true" tabindex="-1"></a>texreg<span class="sc">::</span><span class="fu">screenreg</span>(<span class="at">l =</span> estimation_results, <span class="at">include.ci =</span> <span class="cn">FALSE</span>, <span class="at">digits=</span><span class="dv">3</span>)</span></code></pre></div>
<pre><code>## 30 coefficients  not defined because the design matrix is rank deficient</code></pre>
<pre><code>## 
## ===================================================================
##                                                         Model 1    
## -------------------------------------------------------------------
## treat_var:date_2018_01                                             
##                                                                    
## treat_var:date_2018_02                                             
##                                                                    
## treat_var:date_2018_03                                             
##                                                                    
## treat_var:date_2018_04                                             
##                                                                    
## treat_var:date_2018_05                                             
##                                                                    
## treat_var:date_2018_06                                             
##                                                                    
## treat_var:date_2018_07                                             
##                                                                    
## treat_var:date_2018_08                                             
##                                                                    
## treat_var:date_2018_09                                             
##                                                                    
## treat_var:date_2018_10                                             
##                                                                    
## treat_var:date_2018_11                                             
##                                                                    
## treat_var:date_2018_12                                             
##                                                                    
## treat_var:date_2019_01                                     0.036   
##                                                           (0.078)  
## treat_var:date_2019_02                                    -0.007   
##                                                           (0.059)  
## treat_var:date_2019_03                                    -0.010   
##                                                           (0.097)  
## treat_var:date_2019_04                                     0.017   
##                                                           (0.059)  
## treat_var:date_2019_05                                    -0.118   
##                                                           (0.061)  
## treat_var:date_2019_06                                     0.050   
##                                                           (0.053)  
## treat_var:date_2019_07                                     0.038   
##                                                           (0.089)  
## treat_var:date_2019_08                                     0.086   
##                                                           (0.063)  
## treat_var:date_2019_09                                     0.010   
##                                                           (0.070)  
## treat_var:date_2019_10                                     0.072   
##                                                           (0.058)  
## treat_var:date_2019_11                                    -0.009   
##                                                           (0.088)  
## treat_var:date_2019_12                                    -0.023   
##                                                           (0.076)  
## treat_var:date_2020_02                                             
##                                                                    
## treat_var:date_2020_03                                             
##                                                                    
## treat_var:date_2020_04                                     4.941   
##                                                          (27.175)  
## treat_var:date_2020_05                                    60.029   
##                                                          (50.569)  
## treat_var:date_2020_06                                    49.230   
##                                                          (52.096)  
## treat_var:date_2020_07                                    13.609   
##                                                          (28.076)  
## treat_var:date_2020_08                                    20.326   
##                                                          (20.236)  
## treat_var:date_2020_09                                    36.598   
##                                                          (24.363)  
## date_2020_02:google_mobility_index_2020may                         
##                                                                    
## date_2020_03:google_mobility_index_2020may                         
##                                                                    
## date_2020_04:google_mobility_index_2020may                 1.374   
##                                                           (5.938)  
## date_2020_05:google_mobility_index_2020may                -1.316   
##                                                           (5.877)  
## date_2020_06:google_mobility_index_2020may                 0.190   
##                                                           (5.507)  
## date_2020_07:google_mobility_index_2020may                -1.502   
##                                                           (3.394)  
## date_2020_08:google_mobility_index_2020may                -0.620   
##                                                           (2.187)  
## date_2020_09:google_mobility_index_2020may                -0.651   
##                                                           (2.125)  
## date_2020_02:infection_rate_cumulative2020jun                      
##                                                                    
## date_2020_03:infection_rate_cumulative2020jun                      
##                                                                    
## date_2020_04:infection_rate_cumulative2020jun              2.682   
##                                                           (3.117)  
## date_2020_05:infection_rate_cumulative2020jun              5.174   
##                                                           (6.194)  
## date_2020_06:infection_rate_cumulative2020jun              3.776   
##                                                           (6.488)  
## date_2020_07:infection_rate_cumulative2020jun              2.125   
##                                                           (3.619)  
## date_2020_08:infection_rate_cumulative2020jun              1.278   
##                                                           (2.270)  
## date_2020_09:infection_rate_cumulative2020jun              0.788   
##                                                           (2.313)  
## date_2020_02:death_rate_cumulative2020jun                          
##                                                                    
## date_2020_03:death_rate_cumulative2020jun                          
##                                                                    
## date_2020_04:death_rate_cumulative2020jun                 -6.274   
##                                                          (36.847)  
## date_2020_05:death_rate_cumulative2020jun                -29.915   
##                                                          (67.166)  
## date_2020_06:death_rate_cumulative2020jun                -34.880   
##                                                          (74.220)  
## date_2020_07:death_rate_cumulative2020jun                -16.860   
##                                                          (41.147)  
## date_2020_08:death_rate_cumulative2020jun                -12.132   
##                                                          (24.683)  
## date_2020_09:death_rate_cumulative2020jun                -12.020   
##                                                          (24.989)  
## date_2020_02:Population_per_1_km_2_of_inhabitable_area             
##                                                                    
## date_2020_03:Population_per_1_km_2_of_inhabitable_area             
##                                                                    
## date_2020_04:Population_per_1_km_2_of_inhabitable_area    -0.008   
##                                                           (0.011)  
## date_2020_05:Population_per_1_km_2_of_inhabitable_area     0.007   
##                                                           (0.014)  
## date_2020_06:Population_per_1_km_2_of_inhabitable_area     0.010   
##                                                           (0.011)  
## date_2020_07:Population_per_1_km_2_of_inhabitable_area     0.003   
##                                                           (0.007)  
## date_2020_08:Population_per_1_km_2_of_inhabitable_area     0.003   
##                                                           (0.004)  
## date_2020_09:Population_per_1_km_2_of_inhabitable_area     0.002   
##                                                           (0.005)  
## date_2020_02:Secondary_industry_ratio                              
##                                                                    
## date_2020_03:Secondary_industry_ratio                              
##                                                                    
## date_2020_04:Secondary_industry_ratio                   -667.459   
##                                                         (446.247)  
## date_2020_05:Secondary_industry_ratio                   -985.886   
##                                                         (591.684)  
## date_2020_06:Secondary_industry_ratio                   -238.691   
##                                                         (522.896)  
## date_2020_07:Secondary_industry_ratio                   -383.631   
##                                                         (315.677)  
## date_2020_08:Secondary_industry_ratio                   -244.567   
##                                                         (222.485)  
## date_2020_09:Secondary_industry_ratio                   -165.786   
##                                                         (202.636)  
## date_2020_02:Tertiary_industry_ratio                               
##                                                                    
## date_2020_03:Tertiary_industry_ratio                               
##                                                                    
## date_2020_04:Tertiary_industry_ratio                    -455.123   
##                                                         (538.518)  
## date_2020_05:Tertiary_industry_ratio                    -887.245   
##                                                         (741.675)  
## date_2020_06:Tertiary_industry_ratio                    -122.924   
##                                                         (808.567)  
## date_2020_07:Tertiary_industry_ratio                    -428.676   
##                                                         (466.001)  
## date_2020_08:Tertiary_industry_ratio                    -288.427   
##                                                         (292.744)  
## date_2020_09:Tertiary_industry_ratio                    -281.342   
##                                                         (284.385)  
## date_2020_02:Total_population                                      
##                                                                    
## date_2020_03:Total_population                                      
##                                                                    
## date_2020_04:Total_population                             -0.026   
##                                                           (0.072)  
## date_2020_05:Total_population                             -0.266 * 
##                                                           (0.102)  
## date_2020_06:Total_population                             -0.181 * 
##                                                           (0.081)  
## date_2020_07:Total_population                             -0.124 * 
##                                                           (0.052)  
## date_2020_08:Total_population                             -0.101 * 
##                                                           (0.038)  
## date_2020_09:Total_population                             -0.101 **
##                                                           (0.029)  
## date_2020_02:Ratio_of_aged_population                              
##                                                                    
## date_2020_03:Ratio_of_aged_population                              
##                                                                    
## date_2020_04:Ratio_of_aged_population                     -2.168   
##                                                           (2.963)  
## date_2020_05:Ratio_of_aged_population                     -6.500   
##                                                           (3.924)  
## date_2020_06:Ratio_of_aged_population                     -7.335 * 
##                                                           (3.259)  
## date_2020_07:Ratio_of_aged_population                     -5.744 **
##                                                           (2.079)  
## date_2020_08:Ratio_of_aged_population                     -4.188 **
##                                                           (1.544)  
## date_2020_09:Ratio_of_aged_population                     -3.826 **
##                                                           (1.300)  
## -------------------------------------------------------------------
## R^2                                                        0.889   
## Adj. R^2                                                   0.870   
## Num. obs.                                                893       
## RMSE                                                    1099.816   
## N Clusters                                                47       
## ===================================================================
## *** p &lt; 0.001; ** p &lt; 0.01; * p &lt; 0.05</code></pre>
<div class="sourceCode" id="cb48"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb48-1"><a href="#cb48-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb48-2"><a href="#cb48-2" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_loan</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb48-3"><a href="#cb48-3" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;unemploy_shock_diff2&quot;</span>,</span>
<span id="cb48-4"><a href="#cb48-4" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;koguchi_number_WLS&quot;</span>)</span>
<span id="cb48-5"><a href="#cb48-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb48-6"><a href="#cb48-6" aria-hidden="true" tabindex="-1"></a><span class="co"># graph</span></span>
<span id="cb48-7"><a href="#cb48-7" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_WLS_covar <span class="ot">&lt;-</span> <span class="fu">event_study_graph_2nd_safetynet</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb48-8"><a href="#cb48-8" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;koguchi_number_WLS&quot;</span>)</span>
<span id="cb48-9"><a href="#cb48-9" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_WLS_covar </span></code></pre></div>
<pre><code>## Warning: Removed 2 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABUAAAAPACAYAAAD0ZtPZAAAEDmlDQ1BrQ0dDb2xvclNwYWNlR2VuZXJpY1JHQgAAOI2NVV1oHFUUPpu5syskzoPUpqaSDv41lLRsUtGE2uj+ZbNt3CyTbLRBkMns3Z1pJjPj/KRpKT4UQRDBqOCT4P9bwSchaqvtiy2itFCiBIMo+ND6R6HSFwnruTOzu5O4a73L3PnmnO9+595z7t4LkLgsW5beJQIsGq4t5dPis8fmxMQ6dMF90A190C0rjpUqlSYBG+PCv9rt7yDG3tf2t/f/Z+uuUEcBiN2F2Kw4yiLiZQD+FcWyXYAEQfvICddi+AnEO2ycIOISw7UAVxieD/Cyz5mRMohfRSwoqoz+xNuIB+cj9loEB3Pw2448NaitKSLLRck2q5pOI9O9g/t/tkXda8Tbg0+PszB9FN8DuPaXKnKW4YcQn1Xk3HSIry5ps8UQ/2W5aQnxIwBdu7yFcgrxPsRjVXu8HOh0qao30cArp9SZZxDfg3h1wTzKxu5E/LUxX5wKdX5SnAzmDx4A4OIqLbB69yMesE1pKojLjVdoNsfyiPi45hZmAn3uLWdpOtfQOaVmikEs7ovj8hFWpz7EV6mel0L9Xy23FMYlPYZenAx0yDB1/PX6dledmQjikjkXCxqMJS9WtfFCyH9XtSekEF+2dH+P4tzITduTygGfv58a5VCTH5PtXD7EFZiNyUDBhHnsFTBgE0SQIA9pfFtgo6cKGuhooeilaKH41eDs38Ip+f4At1Rq/sjr6NEwQqb/I/DQqsLvaFUjvAx+eWirddAJZnAj1DFJL0mSg/gcIpPkMBkhoyCSJ8lTZIxk0TpKDjXHliJzZPO50dR5ASNSnzeLvIvod0HG/mdkmOC0z8VKnzcQ2M/Yz2vKldduXjp9bleLu0ZWn7vWc+l0JGcaai10yNrUnXLP/8Jf59ewX+c3Wgz+B34Df+vbVrc16zTMVgp9um9bxEfzPU5kPqUtVWxhs6OiWTVW+gIfywB9uXi7CGcGW/zk98k/kmvJ95IfJn/j3uQ+4c5zn3Kfcd+AyF3gLnJfcl9xH3OfR2rUee80a+6vo7EK5mmXUdyfQlrYLTwoZIU9wsPCZEtP6BWGhAlhL3p2N6sTjRdduwbHsG9kq32sgBepc+xurLPW4T9URpYGJ3ym4+8zA05u44QjST8ZIoVtu3qE7fWmdn5LPdqvgcZz8Ww8BWJ8X3w0PhQ/wnCDGd+LvlHs8dRy6bLLDuKMaZ20tZrqisPJ5ONiCq8yKhYM5cCgKOu66Lsc0aYOtZdo5QCwezI4wm9J/v0X23mlZXOfBjj8Jzv3WrY5D+CsA9D7aMs2gGfjve8ArD6mePZSeCfEYt8CONWDw8FXTxrPqx/r9Vt4biXeANh8vV7/+/16ffMD1N8AuKD/A/8leAvFY9bLAAAAOGVYSWZNTQAqAAAACAABh2kABAAAAAEAAAAaAAAAAAACoAIABAAAAAEAAAVAoAMABAAAAAEAAAPAAAAAALYRw1EAAEAASURBVHgB7N0HmCRV2TDss7DIKkHSEoUXZIkrSBIFlKAvoqKSBAOfCRVERUUwoKCiIGAARRFMJAOIAoouKiIqEgURCSoZEQQkqCBh912Yv57y77a6prqne3qmtmfmPtc1dIVT55y6q6eXefqEaUNZShIBAgQIECBAgAABAgQIECBAgAABAgQmocBCk/Ce3BIBAgQIECBAgAABAgQIECBAgAABAgRyAQFQbwQCBAgQIECAAAECBAgQIECAAAECBCatgADopH20bowAAQIECBAgQIAAAQIECBAgQIAAAQFQ7wECBAgQIECAAAECBAgQIECAAAECBCatgADopH20bowAAQIECBAgQIAAAQIECBAgQIAAAQFQ7wECBAgQIECAAAECBAgQIECAAAECBCatgADopH20bowAAQIECBAgQIAAAQIECBAgQIAAAQFQ7wECBAgQIECAAAECBAgQIECAAAECBCatgADopH20bowAAQIECBAgQIAAAQIECBAgQIAAAQFQ7wECBAgQIECAAAECBAgQIECAAAECBCatgADopH20bowAAQIECBAgQIAAAQIECBAgQIAAAQFQ7wECBAgQIECAAAECBAgQIECAAAECBCatgADopH20bowAAQIECBAgQIAAAQIECBAgQIAAAQFQ7wECBAgQIECAAAECBAgQIECAAAECBCatgADopH20bowAAQIECBAgQIAAAQIECBAgQIAAAQFQ7wECBAgQIECAAAECBAgQIECAAAECBCatgADopH20bowAAQIECBAgQIAAAQIECBAgQIAAAQFQ7wECBAgQIECAAAECBAgQIECAAAECBCatgADopH20bowAAQIECBAgQIAAAQIECBAgQIAAgekICPQqcO6556YHH3ywedlzn/vctNZaazX3bUxugR//+Mfpn//8Z/Mmt9hii7Tmmms298dyw3ttLDUnblk//OEP08MPP9y8ga222iqtscYazX0bYy9w2223pYsvvril4Be+8IVp5ZVXbjnWzc4TTzyRTj/99DQ0NNSSff3110+bbLJJy7Fud84555z00EMPNbOvssoqabvttmvux8Z1112Xrr766pZjr371q9MiiyzScmw8d2655ZY0Z86cdNFFF6W77747/f3vf08PPPBAevrTn56WX375/Ge99dZLL3vZy9KWW26Zpk/3v2Xj+TyUTYAAAQIECBAgMHUFpmV/kLT+RTJ1Ldx5lwIbb7xxyx+VJ5xwQtpnn326vFq2iS4we/bs9Mc//rF5GyeeeGJ685vf3Nwfyw3vtbHUnLhlxRcsN998c/MGvvWtb6U999yzuW9j7AWuueaa9OxnP7ul4M9+9rPpgAMOaDnWzc4ll1ySImhdThGwvOCCC8qHR9x/7LHH8gDi//3f/zXzfuhDH0pHHHFEcz82Dj/88HTwwQe3HIsvbyL4ON7pe9/7Xvr4xz/e8lk5Up1LLbVUet3rXpcOPfTQtNxyy42U3XkCBAgQIECAAAECBHoQMAS+ByxZCRAgQIDAVBDYYIMN8t6JxXst9wgtnuu0/dOf/rTydJT373//u/Jcp4OXXnppKgY/I++LX/ziTpfUdi4C9dtss03aY489egp+RgMjOPvlL385rb322vlrbY1WEQECBAgQIECAAIEpICAAOgUeslskQIAAAQK9CEybNi3FkPdiGusA6Lx589IvfvGLYhVdbV944YUt+RZbbLHKHqYtmWrYufPOO3Ozcvt6rfof//hHeuc735kOOeSQXi+VnwABAgQIECBAgACBNgICoG1gHCZAgAABAlNZ4H//939bbj/mr7zppptajo20c//996ff/e53zWwLLdT6vx3teoc2L6jY+PWvf91ydNttt01PecpTWo7VvRM9WXfYYYf017/+dVjVW2+9dd6jM+Ytveqqq/K5QG+44YZ03nnnpa997WvpTW96U+Xcn4cddlg67rjjhpXnAAECBAgQIECAAAECvQuYbb93M1cQIFCTwL777pvuvffeZm2bbbZZc9sGAQLjK/CiF71oWAXRC7SXRe8iyPfkk082y3nta1+bvv3tbzf3ew2ARq/Ryy67rHl9bAzC8PevfOUrw4a8x+fVF7/4xfS85z2vpb2xs+KKK+ZD3WP7rW99a/roRz+aPvaxj6VvfvObcaiZYs7VXXfdNa200krNYzYIECBAgAABAgQIEOhdQAC0dzNXECBQk8Dee+9dU02qIUCgLLD66qunWbNmtSxAFauZR4/FblM5wLnffvuln//85/lq6FHG7bffnv785z+nddddt6sif/vb36bHH3+8Je+CDoBGUPboo49uadMaa6yRzj333DRz5syW4+12Iv+pp56aoqzvfve7zWxz587Ny/7MZz7TPGaDAAECBAgQIECAAIHeBVrHovV+vSsIECBAgACBSSpQHgbfyzygQ0ND6Wc/+1lTZokllkibbrpp2n777ZvHYqMcJG05Wdopz6+52mqrdR08LRU1ZrsRlP3b3/7WUt7xxx/fdfCzeOE3vvGNtM466xQPpehdWl70qSWDHQIECBAgQIAAAQIERhQQAB2RSAYCBAgQIDA1BcoB0Ji78oEHHugKI+a7jHlDG+n5z39+PtdlucfmT37yk0aWEV/L83+Wg6kjFjAOGcrzok6fPj294AUvGFVNsaDTXnvt1XLtww8/nG688caWY3YIECBAgAABAgQIEOhNwBD43rzkXsAC0Qsm/tj84x//mO6555603HLL5XOpPec5z0nxh+NYpAcffDDdcsst6dZbb02xgMcKK6yQz3n37Gc/eyyKX6Bl3HHHHfmQ07/85S/pkUceSc985jPzIa7Riyr+aB+rdP311+d/sN99991pxowZaZVVVsnnu4thnlMhXXvttem2225Ld911V+4a8/1ttNFGadVVV52Qtz9//vx8IZt430RAa/nll8/vZeONN86fb6ebisVhYhGcuDaGLq+99tppvfXWy3+vOl3Xy7l4L19yySUpVuF+7LHH8vkSY57KZz3rWb0UM2LeKD+ebcxLG0GpZZddNv/82XzzzdPiiy8+4vW9ZAjnCPZFsDHuJT5/4vOu7rTddtulWLioMY9n9OqMXqCvfOUrR2xKuWdnI1hZDoBGr85HH300Pe1pT+tYZrwP4zkXUyw8tKBTeeGjpZdeesR76dTmcPrgBz/YkiU+U2fPnt1yzA4BAgQIECBAgAABAj0IZH/MSAR6EsgCOUPZW6z5c8IJJ4x4fRb8GMr+gB/KAmHNn2c84xlD3/nOd0a8NguaDB1xxBFD2RxxQ1mQrllvsQ3ZCsBDWU+loR/84AcjltcuQ/ZH+NDLX/7yoWnTplXWkc2FN/S5z31uKPsjPC8iW6yieS9xX1/4whfaFT2UBWJa8l5wwQVt81adWHPNNVuuz4IAVdkqj/3jH/8YOvbYY/M2FM2K24ssssjQG97whqEs6FtZRvHg+uuv3+Jz4okn5qezueuGPvvZzw5lwZqW88V6nvvc5w5lqx4PZcGUYpFtt7NASct9h/mCTllAqNmmeE80UrxPDz/88I73v8kmmwydfPLJXd9/Xe+b4j3F822kLHg59JGPfGQoW4Cl8plmAbmhgw46aOhf//pX45Lma/zOZ3O4DmWBwcprs2D40Jw5c5r5O22Ec/F99K1vfSvPngXYh974xjcOZV9+tJxv5M0C/EOf/OQnh7IvTjoV3/FcFpgbOuqoo4Y23HDDyjqirvj8ifdq1pOxY1nlk1ngtPleis/HRorPu6c+9akt9cXvaNxrNl9mI1ttr9liPi1t+cAHPtBV3VmPz5brsi+umteVPbt5L1x++eUt5WWB2aEsQNwss7yRraLekj+e1T//+c9ytr73syHqw+rJguWjLjc+H/fZZ5+hAw88MP+3Lz4zF8RzH/UNuJAAAQIECBAgQIDAAAqkAWyTJg24QK8B0KzX4VAEOxpBiXiNIGO2Ou6Id/rDH/5wKIJ/xWtH2t5iiy2Gbr755hHLbmSIIE8EPkcqt3E+glgRKIzAb+NYvMYf2+3SMsss05I3WxyjXdbK41kvypbrf/WrX1XmKx/83ve+N5TNu9dybbHN5e0Isrzzne8cimBmu1QVAL3uuuuGsl59XdeT9doaynq4tauiebzX91rzwnHcKN5/1mMtr+maa67pGGAuO8d7NOtpPGIr63rfFO9pqaWWytsVgfMtt9yyq2cazynrkd28n3POOWco6wXX1bXZquDNLxWaBZQ2qgKgETDrto5sOPJQNkdjqdSRd3/0ox8NxRc15efXaT8CoUWLTrVkPa+bZWe9avOsEbDtVP6XvvSlTkWOy7msN2JLm+J9MVKKQGPxC6us93PLJe9///tbyswWR2o5X7WTLQTUck0EkDulugKgv/jFL1raFc8vWyiqU9OcI0CAAAECBAgQIECgZgFzgGZ/qUjjJxBDgGMIZQwHbqQYThmLOrzrXe9qHBr2GkMdX/WqV6WddtopH44+LEOHA5deemnKehqm8mIZVZfEcPcXvehF6cc//nHV6cpjMa9d3FMM6R3UFMNVs555affdd8+H6nbbzphi4LjjjktZ76NuL0lXXnll2mabbdKf/vSnrq+JhVF23XXX5rDari8cwIxZsD1/P2RB4K5bF+/Rl770pfEFVNfX1Jnxvvvuy++pPNy4XRuuvvrqtMcee+Snzz777Pz3Ngugtsvecvy0007LPw9aDo6w03j/dFvHb37zmxTD9bMvDkYo+b+nsy9o8vuIYe+9pPPOOy8973nPy1c27+W6yJv1cEwf+9jH2l6W9TRNWcC47fnxOlGeBzSmNIjVyTul888/P8XneCOVh6qX97uZB7Q8/2d5KH2jrrpft95665QFyluqzXp6p6ynbD60v+WEHQIECBAgQIAAAQIEFoiAAOgCYZ8alcb8jxEojPk0G2nhhRdOJ510Unrb297WOFT5mg2dTWeeeWbLuazXaNpzzz3zYEn8AR7B1QhcRsAg6yXakjfmzdtxxx07BuUi+BTz2EXQoZhmzpyZDjnkkJT10sxX9o357rKh7ynmGW2kCH4eeeSRjd2Bez366KMr2/ea17wmff3rX0+///3vU9ZDK5+bMRu2nmLOumKKZ5QNwy0earv95S9/ubkoSgS3s960+TOOYEUEQbLh9/n7oFzARRddlLLebOXDE2o/Ajxxv41FYeI9GoHdT3/60/n754wzzkhvf/vb8zkcyzcW77uf//zn5cMLfD8CW7GASwQ1I8W8jHEPEaiMLxVOOeWUFL+fca/FFOeyKQDS61//+mZgN+aujED86aefniLAFfMaVs2l+9GPfjR1G8yMOrOpEJoBuAgKvvvd705nnXVWis+cmKMzvmDZdttti83L5+2MgFnx86glQ2Enyo8y44uEYtp5553TqaeemtvElydxz/HZkPWILGbL59ndZZddelq5O95L8blYrDPrkZ2yofDNsuO9lvUKbu7XtbHVVlu1zPUa75H44qNTKs//WQ54xoJIxTk/44uETs8mXOIzo5gGJQAa8ye/973vLTYt3856rOaB0f333z+fN7X4bIdldoAAAQIECBAgQIAAgfEVqLnHqeomgUA3w5Jjbr511lmnZVhgDIfMgigjCmQBupbrst+AoWyxkY7zBcYchLvtttuw62JYdszhV5ViLsYou/gTQyqzBS2qsufD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l19+eT7/Z9SaDR1OG2+8cdp8883HrBHRazq+XLnmmmvy39d4DjGPcMwP3Pjp5kuQMWuQgiaMQMwtHe+du+66K3/vxLygDzzwQP6lVLyHVlpppfwzuDxP9IS5QQ0lQIAAAQIECBAgMAEEBEAnwEPSxMETiGBsOWAYPTtjoSSJAAECBAgQIECAAAECBAgQIEBgcASGTw44OG3TEgLjJnDUUUelbBGWtPbaa+c/Mexyk0026bq+iy++uCVvzBnY67D7lgLsECBAgAABAgQIECBAgAABAgQIjIuAAOi4sCp00AViqHnMsRk/kWLBpRiO3m2K+dmKadNNN227WEoxn20CBAgQIECAAAECBAgQIECAAIF6BSyCVK+32gZEoDzXWsyNGfMIdpNOOumkFPN9FtPrXve64q5tAgQIECBAgAABAgQIECBAgACBAREQAB2QB6EZ9QrEcPVlllmmWWms6B6ru5977rnNY+WNhx56KF9V/a1vfWu+gFDj/AYbbJD23nvvxq5XAgQIECBAgAABAgQIECBAgACBARKwCNIAPQxNqVcghry/5CUvSU888URLxRHQ3HLLLdNqq62WllhiiXxl6TvuuCMPjkYQtJgWXXTRdMUVV6S4RqpP4NRTT00333xzbRVG0DveDxKBBSngfb8g9dVNgAABAgQIECBAgMBEFhAAnchPT9v7FjjmmGPS+973vlGVs9JKK6XTTjstbbPNNqO63kWjF4hFq84777zRF9DjlRdddFHaaquterxKdgJjK+B9P7aeSiNAgAABAgQIECBAYOoIGAI/dZ61O60Q2H///dPZZ5+dnvOc51ScrT608MILp9122y1dffXVgp/VRI4SIECAAAECBAgQIECAAAECBAZGwCrwA/MoNGRBCey8884pfmIl+G9+85vp1ltvTbfffnu666670pNPPpmv7r7yyiunVVddNb3yla9Me+65Z1pxxRUXVHPVmwnsvvvuaaONNqrNYpVVVqmtLhURaCfgfd9OxnECBAgQIECAAAECBAh0FjAEvrOPs1NYIBZG+ve//52WXnrpKazg1gkQIECAAAECBAgQIECAAAECE1tAAHRiPz+tJ0CAAAECBAgQIECAAAECBAgQIECgg4A5QDvgOEWAAAECBAgQIECAAAECBAgQIECAwMQWEACd2M9P6wkQIECAAAECBAgQIECAAAECBAgQ6CAgANoBxykCBAgQIECAAAECBAgQIECAAAECBCa2gADoxH5+Wk+AAAECBAgQIECAAAECBAgQIECAQAcBAdAOOE4RIECAAAECBAgQIECAAAECBAgQIDCxBQRAJ/bz03oCBAgQIECAAAECBAgQIECAAAECBDoICIB2wHGKAAECBAgQIECAAAECBAgQIECAAIGJLSAAOrGfn9YTIECAAAECBAgQIECAAAECBAgQINBBQAC0A45TBAgQIECAAAECBAgQIECAAAECBAhMbAEB0In9/LSeAAECBAgQIECAAAECBAgQIECAAIEOAgKgHXCcIkCAAAECBAgQIECAAAECBAgQIEBgYgsIgE7s56f1BAgQIECAAAECBAgQIECAAAECBAh0EBAA7YDjFAECBAgQIECAAAECBAgQIECAAAECE1tAAHRiPz+tJ0CAAAECBAgQIECAAAECBAgQIECgg4AAaAccpwgQIECAAAECBAgQIECAAAECBAgQmNgCAqAT+/lpPQECBAgQIECAAAECBAgQIECAAAECHQQEQDvgOEWAAAECBAgQIECAAAECBAgQIECAwMQWmD6xm6/14y1w1FFHpUsvvbRZzec+97m05pprNvdtECBAgAABAgQIEJgsAo899lg69dRTK29njz32SEsvvXTlOQcJECBAgACBwRaYNpSlwW6i1i1Igd122y2dddZZzSZceeWVadNNN23u2yBAgAABAgQIECAwWQTuv//+tNVWW1Xezpw5c9KsWbMqzzlIgAABAgQIDLaAIfCD/Xy0jgABAgQIECBAgAABAgQIECBAgACBPgQMge8R78ADD0yXX355eu9735uid+RI6eKLL06XXHLJSNny8zNmzEj77bdf27xPPPFE+slPfpLOP//89Ne//jU9+uijab311ksbbLBB2mKLLdK6667b9lonCBAgQIAAAQIECBAgQIAAAQIECExFAQHQHp56DAWP4Gcv6bzzzksXXHBBV5cstthibQOg9913XzrggAPSbbfd1lLWFVdckeLnlFNOSQcddFDaYYcdWs7bIUCAAAECBAgQIECAAAECBAgQIDCVBQRAu3z6P//5z9PnP//5LnP/N9tNN930351Rbj3yyCPp/e9/fzP4GXMPxdxEM2fOTFdffXW68MIL07x589Jhhx2WIu+uu+46yppcRoAAAQIECBAgQIAAAQIECBAgQGByCQiAjvA8586dm77xjW+k7373u6nX9aJiFck777wzr2GzzTZLBx98cMfaFlqoekrWk046Kd1yyy35tdttt1065JBD0iKLLJLv77TTTumaa65JH/jAB/Lg57HHHpu23nrrtNxyy3Wsy0kCBAgQIECAAAECBAgQIECAAAECU0GgOuI2Fe68i3uM3pVvetOb0mmnnZaefPLJLq5ozRJBy0bQdP3110/LLrtsx5+ll166tYBs76GHHkrnnHNOfnz55ZdvCX42Mm+44Yb58diPeUIb+RvnvRIgQIAAAQIECBAgQIAAAQIECBCYqgICoBVPPoKWRx99dD4fZ6MH52qrrdbVokfF4orD39dZZ53iqa63f/nLX6boSRpp5513bvb8LBcQQ+JXXXXV/HAEQOfPn1/OYp8AAQIECBAgQIAAAQIECBAgQIDAlBMQAK145NHb8+yzz26e2XHHHfNh8DH3ZiNNmzatsdn2dSwCoNddd12z/M0337y5XbURw+wjPfDAA+mqq66qyuIYAQIECBAgQIAAAQIECBAgQIAAgSklYA7QDo/7Oc95Tj4EPoaYjyY1AqBLLbVUWmGFFfIionfpvffem5761Kempz/96SMWe/311+d5IuC65pprdsxfDNDeeuutaaSAacfCnCRAgAABAgQIECBAgAABAgQIECAwCQQEQCseYixGdMIJJ6TZs2dXnO3uUMzFGUHISDH8/dprr00nn3xyvmDR448/nh+POT1jbtC3v/3taZVVVsmPlf9z11135Ydixffp0zs/rkaQNS644447ykXZJ0CAAAECBAgQIECAAAECBAgQIDDlBDpH1KYcx39uOHpb9hP8jFIiADlv3ry8wFil/R3veMd/Ci/89+9//3uKn8suuyztu+++addddy2cTfncn43Fl6oWSGrJnO1ET9NGisWTuklHHnlk+t3vftc2ayzkFHOLRjvnzp3bNp8TBAgQIECAAAECBAgQIECAAAECBAZRQAB0nJ5KY/h7FB+LGM2YMSNttNFGaeONN07LLLNMuu2229KvfvWr9Le//S1Fj9BjjjkmLbHEEmn77bdvtuiRRx5pbi+66KLN7XYbxTyNXqbt8jaORzsiQNspxXD96BUrESBAgAABAgQIECBAgAABAgQIEJhoAgKg4/TEigHQ5ZZbLl9Vfo011mip7c1vfnM69thj049+9KP8+Be+8IUUCxk1ens++uijzfxPecpTmtvtNop59NZsp+Q4AQIECBAgQIAAAQIECBAgQIDAVBIQAB2np73TTjvlw+jvvvvutO2226aVVlppWE3RK/SAAw5If/7zn1METP/1r3+lM844I+2zzz553uKcnzGn6Ehp/vz5zSzFYGjzoA0CBAgQIECAAAECBAgQIECAAAECU0xAAHScHvgznvGMFD8jpYUXXjjttdde6aCDDsqzFnuOxtDzRmrMJ9rYr3ot5llsscWqsgw79pnPfKbj3J5vectb0rnnnpu6CcAOK9wBAgQIECBAgAABAgQIECBAgAABAgtYQAB0AT+AqH7WrFnNVjRWjo8DT3va05rHi/OBNg+WNopD5rsNgC655JKlUlp3F1lkEcHPVhJ7BAgQIECAAAECBAgQIECAAAECE0jAyjYD8LBmzpzZbEUMg2+kWNRo2WWXzXdjFfaR0r333tvMEgstSQQIECBAgAABAgQIECBAgAABAgSmuoAA6Di9A6LH5p133pluueWWEWsoBjdXXXXVlvyNhZOid+c//vGPlnPlnaivkdZbb73GplcCBAgQIECAAAECBAgQIECAAAECU1ZAAHQcHn0EK3fcccf02te+Nu29994d59iM6m+//fZmK1ZbbbXmdmysv/76zf0//OEPze2qjWuuuaZ5uHhd86ANAgQIECBAgAABAgQIECBAgAABAlNMQAB0HB54zN3ZCEDGwkSXX355x1q+853vNM8///nPb27HRqwg30g/+9nPGpvDXmP4++9///v8+DrrrJMMgR9G5AABAgQIECBAgAABAgQIECBAgMAUFLAI0jg99AhkXnvttXnpX/jCF9LGG2+cllhiiWG1ff/7309XX311fnyttdZK22+/fUueOBYBzRtuuCFddNFFKYKgO+ywQ0ueuXPnpiOPPLK5WNGee+7Zct4OAQIECBAgQIAAAQIjCzzlKU9JL3zhCyszdrvIaOXFDhIgQIAAAQILVEAAdJz499hjjzxgGUHQmOPzbW97W9pvv/3yQGj8j9Vtt92WzjjjjPTTn/40b0Ece/e7352mTZs2rEX7779/evvb354fP/zww9M999yTB0qXX3759Mc//jF99atfTY3h8dHzdJttthlWhgMECBAgQIAAAQIECHQWWHLJJdPxxx/fOZOzBAgQIECAwIQTEAAdp0c2ffr0dOihh+ZBzVic6K677kof+tCH8tri3Pz585s1RyAzApvrrrtu81hxY/bs2XlZRxxxRHr88cfT17/+9fxn4YUXbvb6jPyrrLJKOuqoo9JCC5nZoOhnmwABAgQIECBAgAABAgQIECBAYOoKiJSN47OfOXNmOvXUU9O+++6bikNmGsHPpZZaKm233XZ5MLNd8LPRvBiK85WvfCUfDt8IcD7xxBP56Qio7r777vn5KFMiQIAAAQIECBAgQIAAAQIECBAgQOA/AtOGsgRj/AWefPLJfOj6HXfckWJhpLXXXjutuOKKo6o4eoHedNNNKRY+WnnllVOsHL/44ouPqqyRLtptt93SWWed1cx25ZVXpk033bS5b4MAAQIECBAgQIAAAQIECBAgQIDAIAsYAl/T04lemxGsjJ9+04wZM9IGG2yQ//RblusJECBAgAABAgQIECBAgAABAgQITGYBQ+An89N1bwQIECBAgAABAgQIECBAgAABAgSmuIAeoFP8DeD2CRAgQIAAAQIECBAgQIDAghS44oor0pw5c9o2Ida9OPjgg9ued4IAAQIjCQiAjiTkPAECBAgQIECAAAECBAgQIDBuAr/97W/ToYce2rb8RRddVAC0rY4TBAh0I2AIfDdK8hAgQIAAAQIECBAgQIAAAQIECBAgMCEF9ACdkI9NowkQIECAAAECBAgQIECAwOQQ2GGHHdLpp5+e38wXv/jFdPHFF+fbRxxxRFpjjTXSwgsvPDlu1F0QILDABARAFxi9igkQIECAAAECBAgQIECAAIFZs2al+Il0zjnnNAOgL37xi9Mmm2wCiAABAn0LGALfN6ECCBAgQIAAAQIECBAgQIAAAQIECBAYVAEB0EF9MtpFgAABAgQIECBAgAABAgQIECBAgEDfAgKgfRMqgAABAgQIECBAgAABAgQIECBAgACBQRUQAB3UJ6NdBAgQIECAAAECBAgQIECAAAECBAj0LSAA2jehAggQIECAAAECBAgQIECAAAECBAgQGFQBAdBBfTLaRYAAAQIECBAgQIAAAQIECBAgQIBA3wICoH0TKoAAAQIECBAgQIAAAQIECBAgQIAAgUEVEAAd1CejXQQIECBAgAABAgQIECBAgAABAgQI9C0gANo3oQIIECBAgAABAgQIECBAgAABAgQIEBhUAQHQQX0y2kWAAAECBAgQIECAAAECBAgQIECAQN8CAqB9EyqAAAECBAgQIECAAAECBAgQIECAAIFBFRAAHdQno10ECBAgQIAAAQIECBAgQIAAAQIECPQtIADaN6ECCBAgQIAAAQIECBAgQIAAAQIECBAYVIHpg9ow7SJAgAABAgQIECBAgECdAvPmzUtXXHFFZZUbb7xxetrTnlZ5zkECBAgQIEBgsAUEQAf7+WgdAQIECBAgQIAAAQI1CTz00ENpr732qqxtzpw5adasWZXnHCRAgAABAgQGW8AQ+MF+PlpHgAABAgQIECBAgAABAgQIECBAgEAfAgKgfeC5lAABAgQIECBAgAABAgQIECBAgACBwRYQAB3s56N1BAgQIECAAAECBAgQIECAAAECBAj0ISAA2geeSwkQIECAAAECBAgQIECAAAECBAgQGGwBAdDBfj5aR4AAAQIECBAgQIAAAQIECBAgQIBAHwICoH3guZQAAQIECBAgQIAAAQIECBAgQIAAgcEWEAAd7OejdQQIECBAgAABAgQIECBAgAABAgQI9CEwvY9rXUqAAAECBAgQIECAAAECBAgQINBB4E9/+lO67rrr2uaYMWNGesUrXtH2vBMECPQvIADav6ESCBAgQIAAAQIECBAgQIAAAQKVAmeeeWY65JBDKs/FwRVXXDHdfffdbc87QYBA/wKGwPdvqAQCBAgQIECAAAECBAgQIECAAAECBAZUQA/QAX0wmkWAAAECBAgQIECAAAECBAhMfIEXvOAFzR6g3/nOd9Itt9yS39S73vWutPTSS6clllhi4t+kOyAw4AICoAP+gDSPAAECBAgQIECAAAECBAgQmLgC22yzTYqfSFdeeWUzALr//vunZz7zmRP3xrScwAQSMAR+Aj0sTSVAgAABAgQIECBAgAABAgQIECBAoDcBAdDevOQmQIAAAQIECBAgQIAAAQIECBAgQGACCQiATqCHpakECBAgQIAAAQIECBAgQIAAAQIECPQmIADam5fcBAgQIECAAAECBAgQIECAAAECBAhMIAEB0An0sDSVAAECBAgQIECAAAECBAgQIECAAIHeBARAe/OSmwABAgQIECBAgAABAgQIECBAgACBCSQgADqBHpamEiBAgAABAgQIECBAgAABAgQIECDQm4AAaG9echMgQIAAAQIECBAgQIAAAQIECBAgMIEEBEAn0MPSVAIECBAgQIAAAQIECBAgQIAAAQIEehMQAO3NS24CBAgQIECAAAECBAgQIECAAAECBCaQgADoBHpYmkqAAAECBAgQIECAAAECBAgQIECAQG8C03vLLjcBAgQIECBAgAABAgQmp8D06dPTJptsUnlzM2bMqDzuIAECBAgQIDD4AgKgg/+MtJAAAQIECBAgQIAAgRoEllpqqXTaaafVUJMqCBAgQIAAgToFDIGvU1tdBAgQIECAAAECBAgQIECAAAECBAjUKiAAWiu3yggQIECAAAECBAgQIECAAAECBAgQqFNAALRObXURIECAAAECBAgQIECAAAECBAgQIFCrgABordwqI0CAAAECBAgQIECAAAECBAgQIECgTgEB0Dq11UWAAAECBAgQIECAAAECBAgQIECAQK0CAqC1cquMAAECBAgQIECAAAECBAgQIECAAIE6BQRA69RWFwECBAgQIECAAAECBAgQIECAAAECtQoIgNbKrTICBAgQIECAAAECBAgQIECAAAECBOoUEACtU1tdBAgQIECAAAECBAgQIECAAAECBAjUKiAAWiu3yggQIECAAAECBAgQIECAAAECBAgQqFNAALRObXURIEC6/2hTAABAAElEQVSAAAECBAgQIECAAAECBAgQIFCrgABordwqI0CAAAECBAgQIECAAAECBAgQIECgTgEB0Dq11UWAAAECBAgQIECAAAECBAgQIECAQK0CAqC1cquMAAECBAgQIECAAAECBAgQIECAAIE6BQRA69RWFwECBAgQIECAAAECBAgQIECAAAECtQoIgNbKrTICBAgQIECAAAECBAgQIECAAAECBOoUEACtU1tdBAgQIECAAAECBAgQIECAAAECBAjUKiAAWiu3yggQIECAAAECBAgQIECAAAECBAgQqFNAALRObXURIECAAAECBAgQIECAAAECBAgQIFCrgABordwqI0CAAAECBAgQIECAAAECBAgQIECgTgEB0Dq11UWAAAECBAgQIECAAAECBAgQIECAQK0CAqC1cquMAAECBAgQIECAAAECBAgQIECAAIE6BQRA69RWFwECBAgQIECAAAECBAgQIECAAAECtQpMr7U2lREgQIAAAQIECBAgQGBABebPn59uvPHGytatueaaadFFF6085yABAgQIECAw2AICoIP9fLSOAAECBAgQIECAAIGaBP75z3+mXXbZpbK2OXPmpFmzZlWec5AAAQIECBAYbAFD4Af7+WgdAQIECBAgQIAAAQIECBAgQIAAAQJ9CAiA9oHnUgIECBAgQIAAAQIECBAgQIAAAQIEBltAAHSwn4/WESBAgAABAgQIECBAgAABAgQIECDQh4AAaB94LiVAgAABAgQIECBAgAABAgQIECBAYLAFBEAH+/loHQECBAgQIECAAAECBAgQIECAAAECfQgIgPaB51ICBAgQIECAAAECBAgQIECAAAECBAZbQAB0sJ+P1hEgQIAAAQIECBAgQIAAAQIECBAg0IeAAGgfeC4lQIAAAQIECBAgQIAAAQIECBAgQGCwBQRAB/v5aB0BAgQIECBAgAABAgQIECBAgAABAn0ICID2gedSAgQIECBAgAABAgQIECBAgAABAgQGW0AAdLCfj9YRIECAAAECBAgQIECAAAECBAgQINCHgABoH3guJUCAAAECBAgQIECAAAECBAgQIEBgsAUEQAf7+WgdAQIECBAgQIAAAQIECBAgQIAAAQJ9CAiA9oHnUgIECBAgQIAAAQIECBAgQIAAAQIEBltAAHSwn4/WESBAgAABAgQIECBAgAABAgQIECDQh4AAaB94LiVAgAABAgQIECBAgAABAgQIECBAYLAFBEAH+/loHQECBAgQIECAAAECBAgQIECAAAECfQgIgPaB51ICBAgQIECAAAECBAgQIECAAAECBAZbQAB0sJ+P1hEgQIAAAQIECBAgQIAAAQIECBAg0IeAAGgfeC4lQIAAAQIECBAgQIAAAQIECBAgQGCwBQRAB/v5aB0BAgQIECBAgAABAgQIECBAgAABAn0ICID2gedSAgQIECBAgAABAgQIECBAgAABAgQGW0AAdLCfj9YRIECAAAECBAgQIECAAAECBAgQINCHwPQ+rnUpAQIECBAgQIAAAQIEJo3AQgstlNZYY43K+1lkkUUqjztIgAABAgQIDL6AAOjgPyMtJECAAAECBAgQIECgBoFlllkm/fSnP62hJlUQIECAAAECdQoYAl+ntroIECBAgAABAgQIECBAgAABAgQIEKhVQAC0Vm6VESBAgAABAgQIECBAgAABAgQIECBQp4AAaJ3a6iJAgAABAgQIECBAgAABAgQIECBAoFYBAdBauVVGgAABAgQIECBAgAABAgQIECBAgECdAgKgdWqriwABAgQIECBAgAABAgQIECBAgACBWgUEQGvlVhkBAgQIECBAgAABAgQIECBAgAABAnUKCIDWqa0uAgQIECBAgAABAgQIECBAgAABAgRqFRAArZVbZQQIECBAgAABAgQIECBAgAABAgQI1CkgAFqntroIECBAgAABAgQIECBAgAABAgQIEKhVQAC0Vm6VESBAgAABAgQIECBAgAABAgQIECBQp4AAaJ3a6iJAgAABAgQIECBAgAABAgQIECBAoFYBAdBauVVGgAABAgQIECBAgAABAgQIECBAgECdAgKgdWqriwABAgQIECBAgAABAgQIECBAgACBWgUEQGvlVhkBAgQIECBAgAABAgQIECBAgAABAnUKCIDWqa0uAgQIECBAgAABAgQIECBAgAABAgRqFRAArZVbZQQIECBAgAABAgQIECBAgAABAgQI1CkgAFqntroIECBAgAABAgQIECBAgAABAgQIEKhVQAC0Vm6VESBAgAABAgQIECBAgAABAgQIECBQp4AAaJ3a6iJAgAABAgQIECBAgAABAgQIECBAoFYBAdBauVVGgAABAgQIECBAgAABAgQIECBAgECdAgKgdWqriwABAgQIECBAgAABAgQIECBAgACBWgUEQGvlVhkBAgQIECBAgAABAgQIECBAgAABAnUKCIDWqa0uAgQIECBAgAABAgQIECBAgAABAgRqFZhea20qI0CAAAECBAgQIECAwIAKPPnkk+nee++tbN3MmTPT9On+fKrEcZAAAQIECAy4gH/BB/wBaR4BAgQIECBAgAABAvUIPPjgg2nbbbetrGzOnDlp1qxZleccJECAAAECBAZbwBD4wX4+WkeAAAECBAgQIECAAAECBAgQIECAQB8CAqB94LmUAAECBAgQIECAAAECBAgQIECAAIHBFhAAHezno3UECBAgQIAAAQIECBAgQIAAAQIECPQhIADaB55LCRAgQIAAAQIECBAgQIAAAQIECBAYbAEB0MF+PlpHgAABAgQIECBAgAABAgQIECBAgEAfAgKgfeC5lAABAgQIECBAgAABAgQIECBAgACBwRYQAB3s56N1BAgQIECAAAECBAgQIECAAAECBAj0ISAA2geeSwkQIECAAAECBAgQIECAAAECBAgQGGwBAdDBfj5aR4AAAQIECBAgQIAAAQIECBAgQIBAHwICoH3guZQAAQIECBAgQIAAAQIECBAgQIAAgcEWEAAd7OejdQQIECBAgAABAgQIECBAgAABAgQI9CEgANoHnksJECBAgAABAgQIECBAgAABAgQIEBhsAQHQwX4+WkeAAAECBAgQIECAAAECBAgQIECAQB8CAqB94LmUAAECBAgQIECAAAECBAgQIECAAIHBFhAAHezno3UECBAgQIAAAQIECBAgQIAAAQIECPQhIADaB55LCRAgQIAAAQIECBAgQIAAAQIECBAYbAEB0MF+PlpHgAABAgQIECBAgAABAgQIECBAgEAfAgKgfeC5lAABAgQIECBAgAABAgQIECBAgACBwRYQAB3s56N1BAgQIECAAAECBAgQIECAAAECBAj0ITC9j2un5KUHHnhguvzyy9N73/vetNtuu3Vl8MQTT6Sf/OQn6fzzz09//etf06OPPprWW2+9tMEGG6QtttgirbvuurWW01VlMhEgQIAAAQIECBAgQIAAAQIECBCYBAICoD08xLPOOisPfvZwSbrvvvvSAQcckG677baWy6644ooUP6eccko66KCD0g477NByvrwzVuWUy7VPgAABAgQIECBAgAABAgQIECBAYDILCIB2+XR//vOfp89//vNd5v5PtkceeSS9//3vbwY/Z82albbaaqs0c+bMdPXVV6cLL7wwzZs3Lx122GEp8u66666V5Y9VOZWFO0iAAAECBAgQIECAAAECBAgQIEBgEgsIgI7wcOfOnZu+8Y1vpO9+97tpaGhohNytp0866aR0yy235Ae32267dMghh6RFFlkk399pp53SNddckz7wgQ/kwc9jjz02bb311mm55ZZrLSTbG6tyhhXsAAECBAgQIECAAAECBAgQIECAAIFJLmARpA4POHppvulNb0qnnXZaevLJJzvkHH7qoYceSuecc05+Yvnll28JfjZyb7jhhvnx2I95Qhv5G+fjdazKKZZpmwABAgQIECBAgACB4QILLbRQWmqppSp/4pxEgAABAgQITEwBPUArnlv09DzmmGPS2Wef3Ty72mqrpec85znpzDPPbB7rtPHLX/4yPfbYY3mWnXfeudnzs3xNDIlfddVV88WRIgD6hje8IU2f/t/HMlbllOu1T4AAAQIECBAgQIBAq8AyyyzT85z/rSXYI0CAAAECBAZRwNeYFU8lensWg5877rhjPgw+5vBspGnTpjU2K1+vu+665vHNN9+8uV21sdlmm+WHH3jggXTVVVe1ZBmrcloKtUOAAAECBAgQIECAAAECBAgQIEBgiggIgHZ40NHj87jjjksf+tCH0owZMzrkHH7q+uuvzw9GoHTNNdccnqFwpBhYvfXWWwtnUhqrcloKtUOAAAECBAgQIECAAAECBAgQIEBgigj8d6z1FLnhbm4z5vc54YQT0uzZs7vJXpnnrrvuyo/Hiu/FIe1VmVdYYYXm4TvuuKO5HRtjVU5LoXYIECBAgAABAgQIECBAgAABAgQITBEBAdCKBx29NvsJfsbcn41Fk5ZeeumKGloPxUTrjRSLHjXSWJXTKK/q9eCDD06XXnpp1an82L333ptWX331dM8996THH3+8bT4nCBAgQIAAAQIECBAgQIAAAQIECAyigADoODyVRx55pFnqoosu2txut1HMUwwyjlU57eqN4/fdd1+68847O2VJT3nKU9JIc552LMBJAgQIECBAgAABAgQIECBAgAABAgtIwByg4wD/6KOPNkuN4OFIqZhn7ty5zexjVU6zQBsECBAgQIAAAQIECBAgQIAAAQIEppiAAOg4PPDinJ9PPPHEiDXMnz+/macYDB2rcpqF2yBAgAABAgQIECBAgAABAgQIECAwxQQMgR+HB/7Upz61Weq8efOa2+02inkWW2yxZraxKqdZYMXG8ccfn4aGhirO/OfQ7rvvns4+++y2550gQIAAAQIECBAgQIAAAQIECBAgMMgCAqDj8HSe9rSnNUstzuPZPFjaKA51LwZAx6qcUnUtu7Hifadk7s9OOs4RIECAAAECBAgQIECAAAECBAgMukDn6Negt35A2xeLGi277LJ56/7+97+P2MpYab2RlllmmcZmGqtymgXaIECAAAECBAgQIECAAAECBAgQIDDFBARAx+mBr7HGGnnJ0bvzH//4R8daiquwr7feei15x6qclkLtECBAgAABAgQIECBAgAABAgQIEJgiAgKg4/Sg119//WbJf/jDH5rbVRvXXHNN83DxujhY3O+nnGYFNggQIECAAAECBAgQIECAAAECBAhMIQEB0HF62Ntuu22z5J/97GfN7fJGDH///e9/nx9eZ511UnEIfBwcq3LK9donQIAAAQIECBAgQIAAAQIECBAgMBUEBEDH6SmvtdZaKQKakS666KJUFQSdO3duOvLII9MTTzyR59tzzz3z1+J/xqqcYpm2CRAgQIAAAQIECBAgQIAAAQIECEwVAQHQcXzS+++/f7P0ww8/PJ1yyinpb3/7W5o/f36KYe8HHHBAuvLKK/M8MdR9m222aeYvboxVOcUybRMgQIAAAQIECBAgQIAAAQIECBCYCgLTp8JNLqh7nD17djr00EPTEUcckR5//PH09a9/Pf9ZeOGFm70+o22rrLJKOuqoo9JCC1XHo8eqnAXloF4CBAgQIECAAAECBAgQIECAAAECC0qgOuK2oFozCet94QtfmL7yla/kw+EbAc7GkPfp06en3XffPT+/1FJLdbz7sSqnYyVOEiBAgAABAgQIECBAgAABAgQIEJhkAnqA9vBAX/7yl6f46TU985nPzHt+Ri/Qm266KcXCRyuvvHJabbXV0uKLL951cWNVTtcVykiAAAECBAgQIECAAAECBAgQIEBgggsIgNb4AGfMmJE22GCD/KefaseqnH7a4FoCBAgQIECAAAECBAgQIECAAAECE0HAEPiJ8JS0kQABAgQIECBAgAABAgQIECBAgACBUQkIgI6KzUUECBAgQIAAAQIECBAgQIAAAQIECEwEAQHQifCUtJEAAQIECBAgQIAAAQIECBAgQIAAgVEJCICOis1FBAgQIECAAAECBAgQIECAAAECBAhMBAGLIE2Ep6SNBAgQIECAAAECBAjUIvDYY49V1hMLkU6bNq3ynIMECBAgQIDAYAsIgA7289E6AgQIECBAgAABAgRqErj//vvTVlttVVnbnDlz0qxZsyrPOUiAAAECBAgMtoAh8IP9fLSOAAECBAgQIECAAAECBAgQIECAAIE+BARA+8BzKQECBAgQIECAAAECBAgQIECAAAECgy0gADrYz0frCBAgQIAAAQIECBAgQIAAAQIECBDoQ0AAtA88lxIgQIAAAQIECBAgQIAAAQIECBAgMNgCAqCD/Xy0jgABAgQIECBAgAABAgQIECBAgACBPgQEQPvAcykBAgQIECBAgAABAgQIECBAgAABAoMtIAA62M9H6wgQIECAAAECBAgQIECAAAECBAgQ6ENAALQPPJcSIECAAAECBAgQIECAAAECBAgQIDDYAgKgg/18tI4AAQIECBAgQIAAAQIECBAgQIAAgT4EBED7wHMpAQIECBAgQIAAAQIECBAgQIAAAQKDLSAAOtjPR+sIECBAgAABAgQIECBAgAABAgQIEOhDQAC0DzyXEiBAgAABAgQIECBAgAABAgQIECAw2AICoIP9fLSOAAECBAgQIECAAAECBAgQIECAAIE+BARA+8BzKQECBAgQIECAAAECBAgQIECAAAECgy0gADrYz0frCBAgQIAAAQIECBAgQIAAAQIECBDoQ0AAtA88lxIgQIAAAQIECBAgQIAAAQIECBAgMNgCAqCD/Xy0jgABAgQIECBAgAABAgQIECBAgACBPgQEQPvAcykBAgQIECBAgAABAgQIECBAgAABAoMtIAA62M9H6wgQIECAAAECBAgQIECAAAECBAgQ6ENAALQPPJcSIECAAAECBAgQIECAAAECBAgQIDDYAgKgg/18tI4AAQIECBAgQIAAAQIECBAgQIAAgT4EBED7wHMpAQIECBAgQIAAAQIECBAgQIAAAQKDLSAAOtjPR+sIECBAgAABAgQIECBAgAABAgQIEOhDQAC0DzyXEiBAgAABAgQIECBAgAABAgQIECAw2ALTB7t5WkeAAAECBAgQIECAAIF6BJZbbrl0ww031FOZWggQIECAAIHaBPQArY1aRQQIECBAgAABAgQIECBAgAABAgQI1C0gAFq3uPoIECBAgAABAgQIECBAgAABAgQIEKhNQAC0NmoVESBAgAABAgQIECBAgAABAgQIECBQt4AAaN3i6iNAgAABAgQIECBAgAABAgQIECBAoDYBAdDaqFVEgAABAgQIECBAgAABAgQIECBAgEDdAgKgdYurjwABAgQIECBAgAABAgQIECBAgACB2gQEQGujVhEBAgQIECBAgAABAgQIECBAgAABAnULCIDWLa4+AgQIECBAgAABAgQIECBAgAABAgRqExAArY1aRQQIECBAgAABAgQIECBAgAABAgQI1C0gAFq3uPoIECBAgAABAgQIECBAgAABAgQIEKhNQAC0NmoVESBAgAABAgQIECBAgAABAgQIECBQt4AAaN3i6iNAgAABAgQIECBAgAABAgQIECBAoDYBAdDaqFVEgAABAgQIECBAgAABAgQIECBAgEDdAgKgdYurjwABAgQIECBAgAABAgQIECBAgACB2gQEQGujVhEBAgQIECBAgAABAgQIECBAgAABAnULCIDWLa4+AgQIECBAgAABAgQIECBAgAABAgRqExAArY1aRQQIECBAgAABAgQIECBAgAABAgQI1C0gAFq3uPoIECBAgAABAgQIECBAgAABAgQIEKhNQAC0NmoVESBAgAABAgQIECBAgAABAgQIECBQt4AAaN3i6iNAgAABAgQIECBAgAABAgQIECBAoDYBAdDaqFVEgAABAgQIECBAgAABAgQIECBAgEDdAgKgdYurjwABAgQIECBAgAABAgQIECBAgACB2gQEQGujVhEBAgQIECBAgAABAgQIECBAgAABAnULCIDWLa4+AgQIECBAgAABAgQIECBAgAABAgRqE5heW00qIkCAAAECBAgQIECAwAALPPDAA2m77barbOHZZ5+d1lxzzcpzDhIgQIAAAQKDLSAAOtjPR+sIECBAgAABAgQIEKhJYGhoKM2dO7eytjgnESBAgAABAhNTwBD4ifnctJoAAQIECBAgQIAAAQIECBAgQIAAgS4E9ADtAkkWAgQIECBAgAABAgQIECBAgAABApNN4P7770+PPvpo29t66lOfmmbOnNn2/EQ5IQA6UZ6UdhIgQIAAAQIECBAgQIAAAQIECBAYQ4G99947xTzX7dLLXvayNGfOnHanJ8xxQ+AnzKPSUAIECBAgQIAAAQIECBAgQIAAAQIEehXQA7RXMfkJECBAgAABAgQIECBAgAABAgQITAKBjTbaKP373//O7+TXv/51mjdvXpo+fXrabrvt8mMbb7zxJLjLlARAJ8VjdBMECBAgQIAAAQIECBAgQIAAAQIEehP46Ec/2rxgxRVXTPfee29afPHF03nnndc8Phk2DIGfDE/RPRAgQIAAAQIECBAgQIAAAQIECBAgUCkgAFrJ4iABAgQIECBAgAABAgQIECBAgAABApNBQAB0MjxF90CAAAECBAgQIECAAAECBAgQIECAQKWAAGgli4MECBAgQIAAAQIECBAgQIAAAQIECEwGAQHQyfAU3QMBAgQIECBAgAABAgQIECBAgAABApUCAqCVLA4SIECAAAECBAgQIECAAAECBAgQIDAZBARAJ8NTdA8ECBAgQIAAAQIECBAgQIAAAQIECFQKCIBWsjhIgAABAgQIECBAgAABAgQIECBAgMBkEBAAnQxP0T0QIECAAAECBAgQIECAAAECBAgQIFApIABayeIgAQIECBAgQIAAAQIECBAgQIAAAQKTQUAAdDI8RfdAgAABAgQIECBAgAABAgQIECBAgEClgABoJYuDBAgQIECAAAECBAgQIECAAAECBAhMBgEB0MnwFN0DAQIECBAgQIAAAQIECBAgQIAAAQKVAgKglSwOEiBAgAABAgQIECBAgAABAgQIECAwGQQEQCfDU3QPBAgQIECAAAECBAgQIECAAAECBAhUCgiAVrI4SIAAAQIECBAgQIAAAQIECBAgQIDAZBAQAJ0MT9E9ECBAgAABAgQIECBAgAABAgQIECBQKTC98qiDBAgQIECAAAECBAgQmGICyy67bLrssssq73rJJZesPO4gAQIECBAgMPgCAqCD/4y0kAABAgQIECBAgACBGgSmTZuWll566RpqUgUBAgQIECBQp4Ah8HVqq4sAAQIECBAgQIAAAQIECBAgQIAAgVoFBEBr5VYZAQIECBAgQIAAAQIECBAgQIAAAQJ1CgiA1qmtLgIECBAgQIAAAQIECBAgQIAAAQIEahUQAK2VW2UECBAgQIAAAQIECBAgQIAAAQIECNQpIABap7a6CBAgQIAAAQIECBAgQIAAAQIECBCoVUAAtFZulREgQIAAAQIECBAgQIAAAQIECBAgUKeAAGid2uoiQIAAAQIECBAgQIAAAQIECBAgQKBWAQHQWrlVRoAAAQIECBAgQIAAAQIECBAgQIBAnQICoHVqq4sAAQIECBAgQIAAAQIECBAgQIAAgVoFBEBr5VYZAQIECBAgQIAAAQIECBAgQIAAAQJ1CgiA1qmtLgIECBAgQIAAAQIECBAgQIAAAQIEahUQAK2VW2UECBAgQIAAAQIECBAgQIAAAQIECNQpIABap7a6CBAgQIAAAQIECBAgQIAAAQIECBCoVUAAtFZulREgQIAAAQIECBAgQIAAAQIECBAgUKeAAGid2uoiQIAAAQIECBAgQIAAAQIECBAgQKBWAQHQWrlVRoAAAQIECBAgQIAAAQIECBAgQIBAnQICoHVqq4sAAQIECBAgQIAAAQIECBAgQIAAgVoFBEBr5VYZAQIECBAgQIAAAQIECBAgQIAAAQJ1CgiA1qmtLgIECBAgQIAAAQIECBAgQIAAAQIEahUQAK2VW2UECBAgQIAAAQIECBAgQIAAAQIECNQpIABap7a6CBAgQIAAAQIECBAgQIAAAQIECBCoVUAAtFZulREgQIAAAQIECBAgQIAAAQIECBAgUKeAAGid2uoiQIAAAQIECBAgQIAAAQIECBAgQKBWgem11qYyAgQIECBAgAABAgQIDKjAgw8+mHbZZZfK1p1yyilp9dVXrzznIAECBAgQIDDYAgKgg/18tI4AAQIECBAgQIAAgZoEnnzyyXTPPfdU1jZ//vzK4w4SIECAAAECgy9gCPzgPyMtJECAAAECBAgQIECAAAECBAgQIEBglAICoKOEcxkBAgQIECBAgAABAgQIECBAgAABAoMvIAA6+M9ICwkQIECAAAECBAgQIECAwJQQyGaikAgQIDDmAgKgY06qQAIECBAgQIAAAQIECBAgQKBbgXnzUjruuJS22CKl00//71XbbpvS61+f0lVX/feYLQIECIxGQAB0NGquIUCAAAECBAgQIECAAAECBPoWuPbalGbPTuld70rpsstai3v44ZS+9a2UNtsspf32S8laZK0+9ggQ6F5AALR7KzkJECBAgAABAgQIECBAgACBMRKInp1bbpnSzTd3LnBoKKUvfSmlV70qJUPkO1s5S4BAtYAAaLWLowQIECBAgAABAgQIECBAgMA4Cfz73yntvHNK8dpt+uEPUzriiG5zy0eAAIH/Ckz/76YtAgQIECBAgAABAgQIECBAgMD4Cxx9dEp//Wvv9UQA9G1vS2n55Xu/1hXjI3DUUUelE088sW3ha665Zjr33HPbnneCQB0CAqB1KKuDAAECBAgQIECAAAECBAgQaAqcdFJzs6eNRx5J6Ywz/jNnaE8XyjxuAvfdd1+68cYb25a/0EIGH7fFcaI2Ae/C2qhVRIAAAQIECBAgQIAAAQIECNx2W0q33z56hwsuGP21rhx7gWnTpqXGT7n0dsfL+ewTGG8BAdDxFlY+AQIECBAgQIAAAQIECBAg0BS4887m5qg2+r1+VJW6qK3AZz7zmWxxqifzn+c973nNfA8++GB+7I9//GPzmA0CC0pAAHRByauXAAECBAgQIECAAAECBAhMQYHpfU7GZ0T1FHzTuGUCfQoIgPYJ6HICBAgQIECAAAECBAgQIECge4HVV+8+b1XO6FB44YVVZxwjQIBAtYAAaLWLowQIECBAgAABAgQIECBAgMA4CKy0Ukobbjj6gh9+OKVtt01p771T+uc/R1+OKwkQmDoCAqBT51m7UwIECBAgQIAAAQIECBAgMBAC73hHf80YGkrpa19Lab31UjrzzP7KcjUBApNfQAB08j9jd0iAAAECBAgQIECAAAECBAZK4C1vSWnTTftv0j33pPSqV6W0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GjRokLdjnLdlXFqytT9X2W8LL7k2SEqrWvbURpoGyTZPyib98Y9/1KRJk0KrWhtsZKkFYoO1SEMrU4AAAggggAACCCCAAAIIIIBAmsArr0jz56dlpD1NyvT3tCav9dRGr06dKl13nT/Vvarrec6cKXlv0fXww2tdhhcIIFANAgRAqwHRdYpg+ruVWeCwYcOG3vof22uHHXbwdo9rqS+++MJbBHqivv76a28tlGXep0c3ar311tOBBx5YfrrFixeXP1933XXLn4c9Sa8TjDINqxvkW9vSrxPkpz/GdRpFeht5jgACCCCAAAIIIIAAAggUq4DNKjz77LPLumfvI4Pp8LZRbrAZbqYZg7VlE7b7uw1W3W+/2mpV9V3XJmoOHy4deaR0xhmSN1i3SunRR6ULL7SZpFU6DQcjgEAFAQKgFUCq62V6AHQDb1XjG264QVtuueVapz/llFN0880365lnninLv+mmm2QbGQWjPW0KQ5AaNGgQPA19TK/zsy02QkIAAQQQQAABBBBAAAEEEEi8wE477ST7svT73/++PABqz23tzzgnW9fSlWwtzcaNXSXJzLMtOV56Sbr3Xum886QffsivH962IWWbJo0Ykd/xHIUAAm4BAqBulyrn/sYby7/tttvqm2++0b777quNNtqo0jltVOjgwYM1ffr0sh3jFy5cqMcff9z71Mj72MhL6Z/g2ZqimdKKFSvKq6QHQ8szHU8ae79xbORpWLLRob/88ktYMfkIIIAAAggggAACCCCAAAIIOAVs36bPPnMWqW9fd37Sc71xTt6sT8nWN803/ec/+R7JcQggECZAADRMpor5m2yyiewrU6pbt65OPfVUjVj98U76yNH0BayD9USjzpdep4mtypxFsqn3UemII47wPn16KqoKZQgggAACCCCAAAIIIIAAAghUEgib/m4bH9kI0GJNWYxfiux62JqpkQdRiAACkQIJ3G8tsj+JLLRNhoIU7Bxvr210ZpAyrdNp9dKnzGcbAA3OzyMCCCCAAAIIIIAAAggggAAC1SkQFgDdc0+pTZvqvFK8zmUjQKuSWrWqytEciwACLgFGgLpUCpzXunXr8ivaNPgg2aZGrbyffAsWLCjbLT7ID3ucO3dueZFttERCAAEEEEAAAQQQQACB7AW+//57nXzyyc4DRo0aVb7ZjLMCmQggsJbAnDnS22+vlVX+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EEAAAQQQQAABBBBAAAEEEEAgCwECoFkgUQUBBBBAAAEEEEAAAQQQQAABBBBAAAEEkilAADSZ941WI4AAAggggAACCCCAAAIIIIAAAggggEAWAgRAs0CiCgIIIIAAAggggAACCCCAAAIIIIAAAggkU4AAaDLvG61GAAEEEEAAAQQQQAABBBBAAAEEEEAAgSwECIBmgUQVBBBAAAEEEEAAAQQQQAABBBBAAAEEEEimAAHQZN43Wo0AAggggAACCCCAAAIIIIAAAggggAACWQgQAM0CiSoIIIAAAggggAACCCCAAAIIIIAAAgggkEwBAqDJvG+0GgEEEEAAAQQQQAABBBBAAAEEEEAAAQSyECAAmgUSVRBAAAEEEEAAAQQQQAABBBBAAAEEEEAgmQIEQJN532g1AggggAACCCCAAAIIIIAAAggggAACCGQhQAA0CySqIIAAAggggAACCCCAAAIIIIAAAggggEAyBQiAJvO+0WoEEEAAAQQQQAABBBBAAAEEEEAAAQQQyEKAAGgWSFRBAAEEEEAAAQQQQAABBBBAAAEEEEAAgWQKEABN5n2j1QgggAACCCCAAAIIIIAAAggggAACCCCQhQAB0CyQqIIAAggggAACCCCAAAIIIIAAAggggAACyRQgAJrM+0arEUAAAQQQQAABBBBAAAEEEEAAAQQQQCALAQKgWSBRBQEEEEAAAQQQQAABBBBAAAEEEEAAAQSSKUAANJn3jVYjgAACCCCAAAIIIIAAAggggAACCCCAQBYCBECzQKIKAggggAACCCCAAAIIIIAAAggggAACCCRToF4ym02rEUAAAQQQQAABBBBAAIHqFViyZIlGjx7tPOnxxx+vli1bOsvIRAABBBBAAIF4CxAAjff9oXUIIIAAAggggAACCCBQIAELgI4aNcp5tV69ehEAdcqQiQACCCCAQPwFmAIf/3tECxFAAAEEEEAAAQQQQAABBBBAAAEEEEAgTwECoHnCcRgCCCCAAAIIIIAAAggggAACCCCAAAIIxF+AKfDxv0e0EAEEEEAAAQQQQAABBBBAAAEEEECgFgT+8Y9/6J133im78rffflvegosuuqjs+aabbqoBAwaU5/MkngIEQON5X2gVAggggAACCCCAAAIIIIAAAggggEAtC4wdO1b33HNPpVZceumlZXm77747AdBKOvHLYAp8/O4JLUIAAQQQQAABBBBAAAEEEEAAAQQQQACBahJgBGg1QXIaBBBAAAEEEEAAAQQQQAABBBBAAIHiEhg0aJB69uwZ2qkNNtggtIyC+AgQAI3PvaAlCCCAAAIIIIAAAggggAACCCCAAAIxEth5551lX6RkCzAFPtn3j9YjgAACCCCAAAIIIIAAAggggAACCCCAQIQAAdAIHIoQQAABBBBAAAEEEEAAAQQQQAABBBBAINkCBECTff9oPQIIIIAAAggggAACCCCAAAIIIIAAAghECBAAjcChCAEEEEAAAQQQQAABBBBAAAEEEEAAAQSSLUAANNn3j9YjgAACCCCAAAIIIIAAAggggAACCCCAQIQAAdAIHIoQQAABBBBAAAEEEEAAAQQQQAABBBBAINkCBECTff9oPQIIIIAAAggggAACCCCAAAIIIIAAAghECBAAjcChCAEEEEAAAQQQQAABBBBAAAEEEEAAAQSSLUAANNn3j9YjgAACCCCAAAIIIIAAAggggAACCCCAQIQAAdAIHIoQQAABBBBAAAEEEEAAAQQQQAABBBBAINkCBECTff9oPQIIIIAAAggggAACCCCAAAIIIIAAAghECBAAjcChCAEEEEAAAQQQQAABBBBAAAEEEEAAAQSSLUAANNn3j9YjgAACCCCAAAIIIIAAAggggAACCCCAQIQAAdAIHIoQQAABBBBAAAEEEEAAAQQQQAABBBBAINkCBECTff9oPQIIIIAAAggggAACCCCAAAIIIIAAAghECBAAjcChCAEEEEAAAQQQQAABBBBAAAEEEEAAAQSSLVAv2c2n9QgggAACCCCAAAIIIIBA9Qg0atRIAwYMcJ6sefPmznwyEUAAAQQQQCD+AgRA43+PaCECCCCAAAIIIIAAAggUQKBJkyYaMmRIAa7EJRBAAAEEEECgkAJMgS+kNtdCAAEEEEAAAQQQQAABBBBAAAEEEEAAgYIKEAAtKDcXQwABBBBAAAEEEEAAAQQQQAABBBBAAIFCChAALaQ210IAAQQQQAABBBBAAAEEEEAAAQQQQACBggoQAC0oNxdDAAEEEEAAAQQQQAABBBBAAAEEEEAAgUIKEAAtpDbXQgABBBBAAAEEEEAAAQQQQAABBBBAAIGCChAALSg3F0MAAQQQQAABBBBAAAEEEEAAAQQQQACBQgoQAC2kNtdCAAEEEEAAAQQQQAABBBBAAAEEEEAAgYIKEAAtKDcXQwABBBBAAAEEEEAAAQQQQAABBBBAAIFCChAALaQ210IAAQQQQAABBBBAAAEEEEAAAQQQQACBggoQAC0oNxdDAAEEEEAAAQQQQAABBBBAAAEEEEAAgUIKEAAtpDbXQgABBBBAAAEEEEAAAQQQQAABBBBAAIGCChAALSg3F0MAAQQQQAABBBBAAAEEEEAAAQQQQACBQgoQAC2kNtdCAAEEEEAAAQQQQAABBBBAAAEEEEAAgYIKEAAtKDcXQwABBBBAAAEEEEAAAQQQQAABBBBAAIFCCtQr5MW4FgIIIIAAAggggAACCCCAAAIIIJAu8NZbb+mZZ54py3rvvffKi2677TZttNFGqlevni666KLyfJ4ggAACuQoQAM1VjPoIIIAAAggggAACCCCAAAIIIFBtAlOmTNHll19e6XyjR48uy1t33XUJgFbSIQMBBHIRYAp8LlrURQABBBBAAAEEEEAAAQQQQAABBBBAAIFECTACNFG3i8YigAACCCCAAAIIIIAAAgggUFwCBx98sJ544onQTtWtWze0jAIEEEAgGwECoNkoUQcBBBBAAAEEEEAAAQQQQAABBGpEoH379rIvEgIIIFBTAkyBrylZzosAAggggAACCCCAAAIIIIAAAggggAACtS5AALTWbwENQAABBBBAAAEEEEAAAQQQQAABBBBAAIGaEiAAWlOynBcBBBBAAAEEEEAAAQQQQAABBBBAAAEEal2AAGit3wIagAACCCCAAAIIIIAAAggggAACCCCAAAI1JcAmSDUly3kRQAABBBBAAAEEEEAgUQJLly7V3//+d2ebDznkEDVv3txZRiYCCCCAAAIIxFuAAGi87w+tQwABBBBAAAEEEEAAgQIJLF68WJdddpnzarvtthsBUKcMmQgggAACCMRfgCnw8b9HtBABBBBAAAEEEEAAAQQQQAABBBBAAAEE8hQgAJonHIchgAACCCCAAAIIIIAAAggggAACCCCAQPwFCIDG/x7RQgQQQAABBBBAAAEEEEAAAQQQQAABBBDIU4AAaJ5wHIYAAggggAACCCCAAAIIIIAAAggggAAC8RcgABr/e0QLEUAAAQQQQAABBKql/X0AAEAASURBVBBAAAEEEEAAAQQQQCBPAQKgecJxGAIIIIAAAggggAACCCCAAAIIIIAAAgjEX4AAaPzvES1E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OqtyxdR0EosXL67InxzacQfkK163SdCfz98+vRvIFz2HoOwZnVW5YmKf0Ulin9FZlSumz/bpe90hqg3gAI1KingVIfD666/b+w4YMMA0bty45GcMHjw4uMcnn3wSbMe1gXyFkUd/hfEqNbbP9ukKMMpXdtlll1JRGfUi7devn71PEvIW5CtMpeivMF6lxj7iiCPsdDaa28sFOaLbtWtX8p/m7Y07IF/xekyC/nz+9undQL7CcgjKnoXxKjU29lkYQeyzMF6lxvbZPn2vO0TVfekep6hPIh4EQgi4HlquZ1VIlIIOtW7d2s7t5xZLKujiCkRGvsKgor/CeJUa22f7dLLJppo2bVoqKnu9FmZTSEIPJuSzqijoH/orCFdJkeXs1IKE3bt3t72nv//+e/se3njjjdYBWtLNE3Ax8iVACSUkweWflD2jQaRsFo1TuWJhn4WRxD4L41VqbOyzMIJJsk+nO1/rRlE1Qw/QqKSIVxECnTt3tvd1LRKlPkT3kfNTQQudxB2QrzANoL/CeJUa22f7dLJpRfdyTYfx6quvWuRJyluQL/pbgP6isypXzJ/85Cfmt7/9rb3dokWLzEUXXWTkDPUlIF9tatJ9Hyh7RtMfZbNonMoVC/ssjCT2WRivUmNjn4URTJJ9Ot35WneIqhkcoFFJEa8iBHr06GHv++STTxpXOS32QUuWLDHXX3+9vbxVq1amU6dOxd6qbNchX3SU6C86q3LF9Nk+5aR0w2+vueYao1U1SwmaFP21116zt+jZs2cptyrLtchXGEb0Vxivcsbed999Tf/+/e0tp06dau6+++5y3j72eyFf7CooOAE+f/sEA/mimwRlz+isyhUT+4xOEvuMzqpcMX22T9/rDlFtoNEFa0LUyMSDQLkJdO3a1dx///3WOfHMM88YOS61IFKjRo0KetSsWbPsCvLvvPOOve6www4zffr0KegelYiMfNGoor9onMody2f7bNmypZk3b56RbWnOTuUNGo7btm3bgjBquLscNtdee629rk2bNubUU081LVq0KOg+5Y6MfNGIor9onCoda7vttjMPP/yw/da//fbb5oADDjBNmjSp9GOrdn/kqxrqsjzI52+fACFfNDOh7BmNU7ljYZ/RiGKf0TiVO5bP9ul73SGqLTRYvSZEjUw8CFSCwJ133mlGjx4d3FqLVeywww7WWaFenHJY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e6Fh0aJFdhVnXde+fftCL69afOQLR43+wrlU+6jP9vntt9/aqTQaNGhQEFYNkXdzE2sKDv0lMSBfuFbQXziXah/FPsOJY5/hXKp91Odvn1giX7hFUfYM51Lto9hnOHHsM5xLtY/6bJ++l80ybYUh8JlE2I+NwMSJE+0CSG5uvk022cT06tXL7LvvvmbbbbeNlK4zzzzTTJo0ycZ99tlnI11TrUjIl580+svPqFIxfLZPzfV588032wWQPvzwQzvXZ8+ePc0OO+xgDj/8cLPuuuvmxap86YQTTrDxjj/+eDN06NC811QrAvKhP+yzWm9b/efw/tX2++fzt0/Winz139nMI5Q9M4lUbx/7zM8a+8zPqFIxfLZP38suuWyCHqC56HCuKgRWrFhhrrzySjN+/Pi053388cdGfxMmTDCHHHKIOfHEEyM5KtJukoAd5EN/CTDDrEnw3T5feuklc/HFFwe9NwVCi6q98sor9u+xxx4zZ599duRGlqwgYzqBfOgvJtOL9FjsE/uMZCgxRPL924d8lD1jeK0iPxL7xD4jG0sMEX23T9/LZvlMhjlA8xHifMUJjBkzJs35qZWYN9poo+C5q1evNnfffbdRr6tPP/00OF4rG8iH/pJsqz7b5/z5883IkSPTnJ8dOnSwK707ncyePdsMGzbM3Hbbbe5QzfwinzHoL7nmin1in8m1TmN8/vaJO/JR9uT9i48A7x/vX3zWl/vJvpfNckv/w1l6gEahRJyKEZg1a5a577777P3btm1rzjjjDLPLLruYhg0bmqVLl5qHHnrI/OMf/7A9tj755BMzfPhwc91115lOnTpVLE3lvDHyob9y2lO57+W7fSqvWLlypcW255572vxD+YwaVd5++21zww03mKlTp9r9m266yWgOHDfMvdysK3E/5EN/lbCrct0T+8Q+y2VL5b6P798+5KPsWe53ppz3wz6xz3LaU7nv5bt9+l42i2IP9ACNQok4FSPwwAMPmO+//940atTIXHXVVWbgwIHW+akHtmzZ0hx55JHm9ttvN5tvvrlNw2effWZOO+20tB5dFUtcGW6MfOivDGZUsVv4bJ8LFiwwTz/9tGU3ePBgc9555xk5PxW0AJLmF7722mttfuIWRFIv0LFjx9o4Sf+HfOgvyTaKfWKfSbZPn7994o58lD15/+IjwPvH+xef9eV+su9ls9zS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" width="672" /></p>
<div class="sourceCode" id="cb50"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb50-1"><a href="#cb50-1" aria-hidden="true" tabindex="-1"></a>estimates_koguchi_number_WLS_covar <span class="ot">&lt;-</span> df_estimates 　 <span class="co">#for robustness check</span></span>
<span id="cb50-2"><a href="#cb50-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb50-3"><a href="#cb50-3" aria-hidden="true" tabindex="-1"></a>results_koguchi_number_WLS_covar <span class="ot">&lt;-</span> estimation_results <span class="co"># for only-post DID table</span></span></code></pre></div>
</div>
<div id="wls-no-trends-post-covid-month-dummies-tablec.6-2" class="section level2" number="7.3">
<h2><span class="header-section-number">7.3</span> WLS, no trends, post-covid-month dummies, TableC.6 (2)</h2>
<div class="sourceCode" id="cb51"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb51-1"><a href="#cb51-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb51-2"><a href="#cb51-2" aria-hidden="true" tabindex="-1"></a>estimation_results <span class="ot">&lt;-</span> <span class="fu">dynamic_onlypost_DID_WLS_notrend_covar8Xcovid_months</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb51-3"><a href="#cb51-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>koguchi_number, </span>
<span id="cb51-4"><a href="#cb51-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>unemploy_shock_diff2)</span>
<span id="cb51-5"><a href="#cb51-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb51-6"><a href="#cb51-6" aria-hidden="true" tabindex="-1"></a>texreg<span class="sc">::</span><span class="fu">screenreg</span>(<span class="at">l =</span> estimation_results , <span class="at">include.ci =</span> <span class="cn">FALSE</span>, <span class="at">digits=</span><span class="dv">3</span>)</span></code></pre></div>
<pre><code>## 18 coefficients  not defined because the design matrix is rank deficient</code></pre>
<pre><code>## 
## ===================================================================
##                                                         Model 1    
## -------------------------------------------------------------------
## treat_var:date_2020_02                                             
##                                                                    
## treat_var:date_2020_03                                             
##                                                                    
## treat_var:date_2020_04                                     4.930   
##                                                          (26.958)  
## treat_var:date_2020_05                                    60.018   
##                                                          (50.170)  
## treat_var:date_2020_06                                    49.219   
##                                                          (51.683)  
## treat_var:date_2020_07                                    13.598   
##                                                          (27.849)  
## treat_var:date_2020_08                                    20.315   
##                                                          (20.073)  
## treat_var:date_2020_09                                    36.587   
##                                                          (24.173)  
## date_2020_02:google_mobility_index_2020may                         
##                                                                    
## date_2020_03:google_mobility_index_2020may                         
##                                                                    
## date_2020_04:google_mobility_index_2020may                 1.374   
##                                                           (5.892)  
## date_2020_05:google_mobility_index_2020may                -1.316   
##                                                           (5.831)  
## date_2020_06:google_mobility_index_2020may                 0.190   
##                                                           (5.464)  
## date_2020_07:google_mobility_index_2020may                -1.502   
##                                                           (3.367)  
## date_2020_08:google_mobility_index_2020may                -0.620   
##                                                           (2.170)  
## date_2020_09:google_mobility_index_2020may                -0.651   
##                                                           (2.108)  
## date_2020_02:infection_rate_cumulative2020jun                      
##                                                                    
## date_2020_03:infection_rate_cumulative2020jun                      
##                                                                    
## date_2020_04:infection_rate_cumulative2020jun              2.682   
##                                                           (3.092)  
## date_2020_05:infection_rate_cumulative2020jun              5.174   
##                                                           (6.146)  
## date_2020_06:infection_rate_cumulative2020jun              3.776   
##                                                           (6.438)  
## date_2020_07:infection_rate_cumulative2020jun              2.125   
##                                                           (3.591)  
## date_2020_08:infection_rate_cumulative2020jun              1.278   
##                                                           (2.253)  
## date_2020_09:infection_rate_cumulative2020jun              0.788   
##                                                           (2.295)  
## date_2020_02:death_rate_cumulative2020jun                          
##                                                                    
## date_2020_03:death_rate_cumulative2020jun                          
##                                                                    
## date_2020_04:death_rate_cumulative2020jun                 -6.274   
##                                                          (36.560)  
## date_2020_05:death_rate_cumulative2020jun                -29.915   
##                                                          (66.644)  
## date_2020_06:death_rate_cumulative2020jun                -34.880   
##                                                          (73.642)  
## date_2020_07:death_rate_cumulative2020jun                -16.860   
##                                                          (40.827)  
## date_2020_08:death_rate_cumulative2020jun                -12.132   
##                                                          (24.491)  
## date_2020_09:death_rate_cumulative2020jun                -12.020   
##                                                          (24.794)  
## date_2020_02:Population_per_1_km_2_of_inhabitable_area             
##                                                                    
## date_2020_03:Population_per_1_km_2_of_inhabitable_area             
##                                                                    
## date_2020_04:Population_per_1_km_2_of_inhabitable_area    -0.008   
##                                                           (0.011)  
## date_2020_05:Population_per_1_km_2_of_inhabitable_area     0.007   
##                                                           (0.013)  
## date_2020_06:Population_per_1_km_2_of_inhabitable_area     0.010   
##                                                           (0.011)  
## date_2020_07:Population_per_1_km_2_of_inhabitable_area     0.003   
##                                                           (0.007)  
## date_2020_08:Population_per_1_km_2_of_inhabitable_area     0.003   
##                                                           (0.004)  
## date_2020_09:Population_per_1_km_2_of_inhabitable_area     0.002   
##                                                           (0.005)  
## date_2020_02:Secondary_industry_ratio                              
##                                                                    
## date_2020_03:Secondary_industry_ratio                              
##                                                                    
## date_2020_04:Secondary_industry_ratio                   -667.459   
##                                                         (442.774)  
## date_2020_05:Secondary_industry_ratio                   -985.886   
##                                                         (587.080)  
## date_2020_06:Secondary_industry_ratio                   -238.691   
##                                                         (518.826)  
## date_2020_07:Secondary_industry_ratio                   -383.631   
##                                                         (313.221)  
## date_2020_08:Secondary_industry_ratio                   -244.567   
##                                                         (220.753)  
## date_2020_09:Secondary_industry_ratio                   -165.786   
##                                                         (201.059)  
## date_2020_02:Tertiary_industry_ratio                               
##                                                                    
## date_2020_03:Tertiary_industry_ratio                               
##                                                                    
## date_2020_04:Tertiary_industry_ratio                    -455.123   
##                                                         (534.328)  
## date_2020_05:Tertiary_industry_ratio                    -887.245   
##                                                         (735.903)  
## date_2020_06:Tertiary_industry_ratio                    -122.924   
##                                                         (802.274)  
## date_2020_07:Tertiary_industry_ratio                    -428.676   
##                                                         (462.374)  
## date_2020_08:Tertiary_industry_ratio                    -288.427   
##                                                         (290.466)  
## date_2020_09:Tertiary_industry_ratio                    -281.342   
##                                                         (282.172)  
## date_2020_02:Total_population                                      
##                                                                    
## date_2020_03:Total_population                                      
##                                                                    
## date_2020_04:Total_population                             -0.026   
##                                                           (0.072)  
## date_2020_05:Total_population                             -0.266 * 
##                                                           (0.101)  
## date_2020_06:Total_population                             -0.181 * 
##                                                           (0.080)  
## date_2020_07:Total_population                             -0.124 * 
##                                                           (0.052)  
## date_2020_08:Total_population                             -0.101 * 
##                                                           (0.038)  
## date_2020_09:Total_population                             -0.101 **
##                                                           (0.029)  
## date_2020_02:Ratio_of_aged_population                              
##                                                                    
## date_2020_03:Ratio_of_aged_population                              
##                                                                    
## date_2020_04:Ratio_of_aged_population                     -2.168   
##                                                           (2.940)  
## date_2020_05:Ratio_of_aged_population                     -6.500   
##                                                           (3.893)  
## date_2020_06:Ratio_of_aged_population                     -7.335 * 
##                                                           (3.234)  
## date_2020_07:Ratio_of_aged_population                     -5.744 **
##                                                           (2.063)  
## date_2020_08:Ratio_of_aged_population                     -4.188 **
##                                                           (1.532)  
## date_2020_09:Ratio_of_aged_population                     -3.826 **
##                                                           (1.290)  
## -------------------------------------------------------------------
## R^2                                                        0.889   
## Adj. R^2                                                   0.872   
## Num. obs.                                                893       
## RMSE                                                    1091.258   
## N Clusters                                                47       
## ===================================================================
## *** p &lt; 0.001; ** p &lt; 0.01; * p &lt; 0.05</code></pre>
<div class="sourceCode" id="cb54"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb54-1"><a href="#cb54-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb54-2"><a href="#cb54-2" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_main</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb54-3"><a href="#cb54-3" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;unemploy_shock_diff2&quot;</span>,</span>
<span id="cb54-4"><a href="#cb54-4" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;koguchi_number_WLS&quot;</span>)</span>
<span id="cb54-5"><a href="#cb54-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb54-6"><a href="#cb54-6" aria-hidden="true" tabindex="-1"></a><span class="co"># Event study graph</span></span>
<span id="cb54-7"><a href="#cb54-7" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_WLS_covar_onlypost <span class="ot">&lt;-</span> <span class="fu">event_study_graph_2nd_safetynet</span>(<span class="at">data =</span> df_estimates ,</span>
<span id="cb54-8"><a href="#cb54-8" aria-hidden="true" tabindex="-1"></a>                                          <span class="at">graph_title =</span> <span class="st">&quot;koguchi_number_WLS&quot;</span>)</span>
<span id="cb54-9"><a href="#cb54-9" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb54-10"><a href="#cb54-10" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_koguchi_number_WLS_covar_onlypost)</span></code></pre></div>
<div id="htmlwidget-eea8871f06748067e1fd" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-eea8871f06748067e1fd">{"x":{"data":[{"x":[2,3,4,5,6,7,1],"y":[4.92980666015904,60.0182853933937,49.2189807477961,13.5980415700841,20.3145820666322,36.5874325769899,0],"text":["month: 2020-04<br />estimate:  4.929807<br />label: blue<br />label: <br />label: ","month: 2020-05<br />estimate: 60.018285<br />label: blue<br />label: <br />label: ","month: 2020-06<br />estimate: 49.218981<br />label: blue<br />label: <br />label: ","month: 2020-07<br />estimate: 13.598042<br />label: blue<br />label: <br />label: ","month: 2020-08<br />estimate: 20.314582<br />label: blue<br />label: <br />label: ","month: 2020-09<br />estimate: 36.587433<br />label: blue<br />label: <br />label: ","month: 2020-01<br />estimate:  0.000000<br />label: blue<br />label: <br />label: "],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,0,255,1)","opacity":1,"size":9.4488188976378,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(0,0,255,1)"}},"hoveron":"points","legendgroup":"","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1,2,3,4,5,6,7],"y":[0,4.92980666015904,60.0182853933937,49.2189807477961,13.5980415700841,20.3145820666322,36.5874325769899],"text":["month: 2020-01<br />estimate:  0.000000<br />label: blue<br />label: <br />label: ","month: 2020-04<br />estimate:  4.929807<br />label: blue<br />label: <br />label: ","month: 2020-05<br />estimate: 60.018285<br />label: blue<br />label: <br />label: ","month: 2020-06<br />estimate: 49.218981<br />label: blue<br />label: <br />label: ","month: 2020-07<br />estimate: 13.598042<br />label: blue<br />label: <br />label: ","month: 2020-08<br />estimate: 20.314582<br />label: blue<br />label: <br />label: ","month: 2020-09<br />estimate: 36.587433<br />label: blue<br />label: <br />label: "],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,0,255,1)","dash":"solid"},"hoveron":"points","legendgroup":"","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[2,3,4,5,6,7,1],"y":[4.92980666015904,60.0182853933937,49.2189807477961,13.5980415700841,20.3145820666322,36.5874325769899,0],"text":["ci_lower: -40.324137<br />ci_upper:  50.18375<br />width: 0.5<br />colour: black<br />month: 2020-04<br />estimate:  4.929807<br />label: black<br />label: <br />label: ","ci_lower: -24.200155<br />ci_upper: 144.23673<br />width: 0.5<br />colour: black<br />month: 2020-05<br />estimate: 60.018285<br />label: black<br />label: <br />label: ","ci_lower: -37.538641<br />ci_upper: 135.97660<br />width: 0.5<br />colour: black<br />month: 2020-06<br />estimate: 49.218981<br />label: black<br />label: <br />label: ","ci_lower: -33.150904<br />ci_upper:  60.34699<br />width: 0.5<br />colour: black<br />month: 2020-07<br />estimate: 13.598042<br />label: black<br />label: <br />label: ","ci_lower: -13.381776<br />ci_upper:  54.01094<br />width: 0.5<br />colour: black<br />month: 2020-08<br />estimate: 20.314582<br />label: black<br />label: <br />label: ","ci_lower:  -3.991113<br />ci_upper:  77.16598<br />width: 0.5<br />colour: black<br />month: 2020-09<br />estimate: 36.587433<br />label: black<br />label: <br />label: ","ci_lower:   0.000000<br />ci_upper:   0.00000<br />width: 0.5<br />colour: black<br />month: 2020-01<br />estimate:  0.000000<br />label: black<br />label: <br />label: "],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[45.2539435480797,84.2184402348753,86.7576212595819,46.7489454314688,33.6963576158125,40.5785458076783,0],"arrayminus":[45.2539435480796,84.2184402348752,86.7576212595822,46.7489454314689,33.6963576158126,40.5785458076782,0],"type":"data","width":3.50000000000001,"symmetric":false,"color":"rgba(0,0,0,1)"},"legendgroup":"","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,7.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-49.5521800137301,153.464768754078],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":38.854296388543},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"koguchi_number_WLS","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,7.6],"tickmode":"array","ticktext":["2020-01","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7],"categoryorder":"array","categoryarray":["2020-01","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-49.5521800137301,153.464768754078],"tickmode":"array","ticktext":["0","50","100","150"],"tickvals":[0,50,100,150],"categoryorder":"array","categoryarray":["0","50","100","150"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","showSendToCloud":false},"source":"A","attrs":{"4411a4f4b6d":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"44115be0e664":{"x":{},"y":{},"colour":{},"shape":{}},"4411a35de5c":{"ymin":{},"ymax":{},"width":{},"colour":{},"x":{},"y":{},"colour.1":{},"shape":{}},"441156996f40":{"yintercept":{}},"44117356ff2a":{"xintercept":{}}},"cur_data":"4411a4f4b6d","visdat":{"4411a4f4b6d":["function (y) ","x"],"44115be0e664":["function (y) ","x"],"4411a35de5c":["function (y) ","x"],"441156996f40":["function (y) ","x"],"44117356ff2a":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
<div class="sourceCode" id="cb55"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb55-1"><a href="#cb55-1" aria-hidden="true" tabindex="-1"></a>estimates_koguchi_number_WLS_covar_onlypost <span class="ot">&lt;-</span> df_estimates <span class="co">#for robustness check</span></span>
<span id="cb55-2"><a href="#cb55-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb55-3"><a href="#cb55-3" aria-hidden="true" tabindex="-1"></a>results_koguchi_number_WLS_covar_onlypost <span class="ot">&lt;-</span> estimation_results <span class="co"># for only-post DID table</span></span></code></pre></div>
</div>
</div>
<div id="y-general-support-funds総合支援の決定件数" class="section level1" number="8">
<h1><span class="header-section-number">8</span> Y= general support funds/総合支援の決定件数</h1>
<div id="ols-no-trends-2" class="section level2" number="8.1">
<h2><span class="header-section-number">8.1</span> OLS, no trends</h2>
<div class="sourceCode" id="cb56"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb56-1"><a href="#cb56-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb56-2"><a href="#cb56-2" aria-hidden="true" tabindex="-1"></a>estimation_results <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_OLS_notrend</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb56-3"><a href="#cb56-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>sogo_number, </span>
<span id="cb56-4"><a href="#cb56-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>unemploy_shock_diff2)</span>
<span id="cb56-5"><a href="#cb56-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb56-6"><a href="#cb56-6" aria-hidden="true" tabindex="-1"></a><span class="co">#texreg::screenreg(l = estimation_results, include.ci = FALSE, digits=3)</span></span>
<span id="cb56-7"><a href="#cb56-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb56-8"><a href="#cb56-8" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb56-9"><a href="#cb56-9" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_loan</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb56-10"><a href="#cb56-10" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;unemploy_shock_diff2&quot;</span>,</span>
<span id="cb56-11"><a href="#cb56-11" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;sogo_number_OLS&quot;</span>)</span>
<span id="cb56-12"><a href="#cb56-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb56-13"><a href="#cb56-13" aria-hidden="true" tabindex="-1"></a><span class="co"># graph</span></span>
<span id="cb56-14"><a href="#cb56-14" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_OLS <span class="ot">&lt;-</span> <span class="fu">event_study_graph_2nd_safetynet</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb56-15"><a href="#cb56-15" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;sogo_number_OLS&quot;</span>)</span>
<span id="cb56-16"><a href="#cb56-16" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_OLS </span></code></pre></div>
<pre><code>## Warning: Removed 2 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,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AAECBAgQIECAAIEpCAgQIEBg7Ahcfvnl6U9/+lOjw9tuu23acMMNG9dOekNg/vz56aqrrkrXX399+u1vf5ueeOKJ9OSTT6Zp06alDTbYoPG15ZZbpt133z0ttdRSQ+74nXfemW677bam8m95y1vS0ksv3ZQ20hf33XdfmjdvXrrhhhsaz/z000+nF7/4xWmNNdbIvzbddNP8eV/3utelKVP8X5CRfifqJ0CAAAECBAgQIEDgrwKTatkBgwABAgTGhsDLXvayFMG1+vHlL385HXDAAfVL30dR4IUXXkgXXnhh+tSnPpXuueeejnuy/vrrp8MOOywddNBBafXVV++4XD3jKaeckk444YT6Zf79D3/4Qx54bEocoYuvf/3r6aMf/Wi6++67O24hAsFve9vb0kknnZRWW221jsvJSIAAAQIECBAgQIAAgaEImAI/FDVlCBAgQIBAQSBGPs6ePTsdfPDBgwp+RhUPPvhgOv7449N6662XjjrqqLR48eJCzb17GoH47bffPu23336DCn7GE0WA9tOf/nTaaKON8u+9+5R6RoAAAQIECBAgQIDAeBAQAB0Pb9EzECBAgMCoCXz84x9Pe+65Z/rFL37Rbx+WWWaZfu8vXLgwnXnmmWmXXXZJTz31VL95R/vmww8/nHbaaad8in83ffn973+f3vve96YTTzyxm2qUJUCAAAECBAgQIECAQL8CFuDql8dNAgQIECBQLvCXv/wln7Z+0UUX9ckwadKk9Pd///d5YHTnnXdO6667bj4l/bnnnkv3339//vXtb387felLX0qRVjy+//3vp1e/+tXpf/7nf9IrX/nK4q2eOP/zn/+cdt111/TQQw/16c92222X3vrWt+bPG8+89tprp2eeeSb95je/yb9uvPHGFMs2tI5yPfnkk9Naa62VB0P7VCqBAAECBAgQIECAAAECXQpYA7RLQMUJECBQpYA1QKvU7r+tD3zgA+mcc87pk+kf/uEf0ic+8Yn0qle9qs+91oTf/e536YILLkixjmdrIHTllVdOP//5z9P06dNbizVdV70G6BlnnJGOPvropj5EwPa8885Lr33ta5vSyy4eeOCB9JGPfCRdfPHFTbeXXXbZFPciaOogQIAAAQIECBAgQIDAcAqYAj+cmuoiQIAAgQkhcOmll/YJfsZO7rEBUozs7CT4GVCrrLJKvv7nD37wg3wEZBEvpofHxki9dCxatCifpl/s04YbbpjveN9J8DPKRf4YNRs71ReP+hIAxTTnBAgQIECAAAECBAgQGA4BAdDhUFQHAQIECEwYgUcffTQdeOCBTc8bU96/9rWv9RkZ2ZSpn4sYQXnzzTfnmwIVs33rW99Kn/vc54pJo3r+4x//OMXzF4/zzz9/SLvXf+ELX0gbb7xxsar0mc98JsXSAg4CBAgQIECAAAECBAgMp4AA6HBqqosAAQIExr3AWWedlf74xz82PeeHP/zhtO+++zalDfbiJS95SfrP//zPNHly83+aY2f4Rx55ZLDVjUj+e++9t6neKVOmpL/7u79rSuv0YoUVVugTSP7Tn/6U7rnnnk6rkI8AAQIECBAgQIAAAQIdCdgEqSMmmQYSiGDAfffdl+bPn58ef/zxNG3atLTaaqvlo3te+tKXDlS84/sxMij+AX733Xenxx57LG8jNs7YaqutUvxjejiOWJMvniU2KomdmNdcc80U6y6+4hWvGI7q+9RRxTP1abTChFjDMNb1iwBOBEvifcXGLuutt16FvRi+pmLzlv/93//NN3R54okn0hprrJE/yxZbbJGmTp3ab0OxeUy97PPPP5+P9tt0003zz1i/BQdx89lnn0033XRTil26FyxYkK+nGJ/fl7/85YOoZeCsUX+82/h5j6DVqquumr/brbfeOq244ooDV9BhjjCO6eFPP/104+cwfreM1hG/62KUYvGYNWtWOumkk4pJQz6PkaDve9/70rnnntuoI3xjvcwPfehDjbTROmnd+CjWKV1++eWH3J3Y8f6DH/xgU/m77rorhamDAAECBAgQIECAAAECwyZQcxAYokAWXKllgYDaJptsUss+kG2/svXeaocffnjtwQcfHFJLWaColm0okreTBdBK21lmmWVq2Y7LtWzX5CG1EYWuv/762p577lnLprKWtjFz5sxatvlHLQuA5W1kAYlatjlJ4yvbDKXjtqt6po47NMSMO+64Y+P5w6d+xPNlG7PUssBbqWV8XrI1EmvZDti1JUuW1Iu1/Z4F7xrthPn3vve9tnnLbsyYMaOpfBYgLMuWpxWfabPNNmvky4KXtWyUXy3boKX0mbKgXO24446rZQGyRpn6SbYDdu2QQw6pZYHB0rLxMzJv3rx69n6/h3Px5y3bUTvP/9vf/rb2jne8o5b9IaDpfj1v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PDbcis9GtiZv/tnIlgdI2XrQ+YZz8RlZe+21U7Y+aP5Hph59bbpFgAABAgQIECBAgMA4FBAAHYcv1SONvEAELltHpMbIxBjp6iBAgAABAgQIECBAgAABAgQIEOgdgfI5pL3TPz0hMCICp59+esp23s7X69too41StqNxetWrXtVxW7GGYvGIdRIHO+2+WN45AQIECBAgQIAAAQIECBAgQIDAyAgIgI6Mq1p7XCCmSscakfEVR2y4FNOpOz1izbriseWWW7bdIKaYzzkBAgQIECBAgAABAgQIECBAgEC1AjZBqtZbaz0i8PKXv7ypJ9dff32KtRM7OS688MIU630Wj7e97W3FS+cECBAgQIAAAQIECBAgQIAAAQI9IiAA2iMvQjeqFYjp6qusskqj0djRPXZ3v+qqqxpprSfPPPNMOvXUU9NBBx2UinuHzZ49Ox1yyCGt2V0TIECAAAECBAgQIECAAAECBAj0gIBNkHrgJejC6AjElPfddtstxS72xSMCmq973evy3Zljx+bYTTt2b47gaARBi8eyyy6bbr311hRlRuu46KKL0vz58ytrPgLAsXO1g8BoCfjMj5a8dgkQIECAAAECBAgQIDA2BQRAx+Z70+thEjjrrLPSkUceOaTa1l577XTJJZek7bfffkjlh6tQbOB0zTXXDFd1A9Zzww03pG233XbAfDIQGCkBn/mRklUvAQIECBAgQIAAAQIExqeAKfDj8716qg4FjjjiiHTZZZelrbbaqsMSKS211FJpzpw56bbbbhv14GfHnZaRAAECBAgQIECAAAECBAgQIDBBBewCP0FfvMf+m8Dee++d4it2gr/44ovT/fffn37961+nRx55JC1ZsiTf3X2dddZJ6623XnrTm96UDjjggLTWWmv9rYJRPnvzm9+cXvnKV1bWi+nTp1fWloYIlAn4zJepSCNAgAABAgQIECBAgACBdgKmwLeTkT7hBWJjpD//+c9p5ZVXnvAWAAgQIECAAAECBAgQIECAAAECY1VAAHSsvjn9JkCAAAECBAgQIECAAAECBAgQIEBgQAFrgA5IJAMBAgQIECBAgAABAgQIECBAgAABAmNVQAB0rL45/SZAgAABAgQIECBAgAABAgQIECBAYEABAdABiWQgQIAAAQIECBAgQIAAAQIECBAgQGCsCgiAjtU3p98ECBAgQIAAAQIECBAgQIAAAQIECAwoIAA6IJEMBAgQIECAAAECBAgQIECAAAECBAiMVQEB0LH65vSbAAECBAgQIECAAAECBAgQIECAAIEBBQRABySSgQABAgQIECBAgAABAgQIECBAgACBsSogADpW35x+EyBAgAABAgQIECBAgAABAgQIECAwoIAA6IBEMhAgQIAAAQIECBAgQIAAAQIECBAgMFYFBEDH6pvTbwIECBAgQIAAAQIECBAgQIAAAQIEBhQQAB2QSAYCBAgQIECAAAECBAgQIECAAAECBMaqgADoWH1z+k2AAAECBAgQIECAAAECBAgQIECAwIACAqADEslAgAABAgQIECBAgAABAgQIECBAgMBYFRAAHatvTr8JECBAgAABAgQIECBAgAABAgQIEBhQQAB0QCIZCBAgQIAAAQIECBAgQIAAAQIECBAYqwICoGP1zek3AQIECBAgQIAAAQIECBAgQIAAAQIDCgiADkgkAwECBAgQIECAAAECBAgQIECAAAECY1VgyljtuH5XI3D66aenH/3oR43GzjjjjDRjxozGtRMCBAgQIECAAAEC40VgwYIF6aKLLip9nP322y+tvPLKpfckEiBAgAABAr0tMKmWHb3dRb0bTYE5c+akSy+9tNGFn/zkJ2nLLbdsXDshQIAAAQIECBAgMF4EnnrqqbTtttuWPs68efPSzJkzS+9JJECAAAECBHpbwBT43n4/ekeAAAECBAgQIECAAAECBAgQIECAQBcCAqBd4ClKgAABAgQIECBAgAABAgQIECBAgEBvCwiA9vb70TsCBAgQIECAAAECBAgQIECAAAECBLoQEADtAk9RAgQIECBAgAABAgQIECBAgAABAgR6W0AAtLffj94RIECAAAECBAgQIECAAAECBAgQINCFwJQuyk7IokcffXS65ZZb0gc+8IEUO6QPdNx4443ppptuGihbfn/q1Knp8MMPb5v3hRdeSFdffXW69tpr00MPPZSee+65tOmmm6bZs2enbbbZJm2yySZty7pBgAABAgQIECBAgAABAgQIECBAYCIKCIAO4q1feumlefBzEEXSNddck773ve91VGSFFVZoGwB98skn01FHHZUeeOCBprpuvfXWFF9z585Nxx13XNp1112b7rsgQIAAAQIECBAgQIAAAQIECBAgMJEFBEA7fPvf+c530tlnn91h7r9lu/fee/92McSzZ599Nh1zzDGN4OfMmTPTtttum1ZfffV02223peuvvz4tWrQonXzyySny7rvvvkNsSTECBAgQIECAAAECBAgQIECAAAEC40tAAHSA97lw4cL0hS98IX31q19NtVptgNzNtxcsWJAefvjhPPHVr351OuGEE5oztFxNnly+JOuFF16Y7rvvvjz3jjvumE488cS09NJL59d77bVXuuOOO9Kxxx6bBz/PPffctN1226XVVlutpXaXBAgQIECAAAECBAgQIECAAAECBCaeQHnEbeI5lD5xjK585zvfmS655JK0ZMmS0jz9JUbQsh403WyzzdKqq67a79fKK6/cp7pnnnkmXXHFFXn6Gmus0RT8rGfefPPN8/S4jnVC6/nr930nQIAAAQIECBAgQIAAAQIECBAgMFEFBEBL3nwELc8888x8Pc76CM7111+/o02PitUVp79vvPHGxVsdn1933XUpRpLGsffeezdGfrZWEFPi11tvvTw5AqCLFy9uzeKaAAECBAgQIECAAAECBAgQIECAwIQTEAAteeUx2vOyyy5r3Nljjz3yafCx9mb9mDRpUv207ffhCIDeeeedjfq33nrrxnnZSUyzj+Ppp59OP/3pT8uySCNAgAABAgQIECBAgAABAgQIECAwoQSsAdrP695qq63yKfAxxXwoRz0AOm3atLTmmmvmVcTo0scffzwtt9xy6cUvfvGA1d511115ngi4zpgxo9/8xQDt/fffnwYKmPZbmZsECBAgQIAAAQIECBAgQIAAAQIExoGAAGjJS4zNiC644II0a9askrudJcVanBGEjCOmv//85z9PX/rSl/INi55//vk8Pdb0jLVBDzvssDR9+vQ8rfV/HnnkkTwpdnyfMqX/11UPskaBBx98sLWq0uvbb789Pfnkk6X3IjHWIF1hhRXyafhDWQe1bcVuECBAgAABAgQIECBAgAABAgQIEKhAoP+IWgUd6MUmYrRlN8HPeKYIQC5atCh/vNil/V/+5V/6POoTTzyR4uvmm29O73nPe9K+++7blCfW/qwHHcs2SGrKnF3ESNP6EYHLTo5Pf/rT6fvf/36/WSM4+9BDDzXWIu03s5sECBAgQIAAAQIECBAgQIAAAQIEekhAAHSEXkZ9+ntUH4HMqVOnple+8pVpiy22SKusskp64IEH8sDjo48+mmJE6FlnnZVe9KIXpV122aXRo2effbZxvuyyyzbO250U89RHmbbLK50AAQIECBAgQIAAAQIECBAgQIDARBAQAB2ht1wMgK622mr5rvIbbrhhU2vvete70rnnnpuuvPLKPP2cc85JsZFRfbTnc88918i/zDLLNM7bnRTzLFy4sF026QQIECBAgAABAgQIECBAgAABAgQmjIAA6Ai96r322iufRv/b3/427bDDDmnttdfu01KMCj3qqKPSL3/5yxQB0z/+8Y/pa1/7Wjr00EPzvMU1P2NN0YGOxYsXN7IUg6GNxJKTnXfeOa233nold/6aNG/evHTfffelYt1tM7tBgAABAgQIECBAgAABAgQIECBAoMcEBEBH6IWsu+66Kb4GOpZaaql04IEHpuOOOy7PWhw5GjvF14/6eqL167LvxTyxcVEnx3777ddvtp/97Gf5GqX9ZnKTAAECBAgQIECAAAECBAgQIECAQI8KTO7Rfk2obs2cObPxvPWd4yNh+eWXb6QX1wNtJLacFKfMdxoAbanCJQECBAgQIECAAAECBAgQIECAAIFxJWAEaA+8ztVXX73Ri5gGXz9iU6NVV101Pf300/lu8fX0dt8ff/zxxq3YaMlBgAABAgQIECBAgEDnArGM1E477VRawACDUhaJBAgQIEBgTAgIgI7Qa4oRm7///e9TbEY0Y8aMflt54oknGvdb1+OMjZMiABqjO6O++gZJjQKFk4cffrhxtemmmzbOnRAgQIAAAQIECBAgMLDASiutlM4///yBM8pBgAABAgQIjCkBU+BH4HVFsHKPPfZI+++/fzrkkEPyIGh/zfz6179u3F5//fUb53Gy2WabNa5vv/32xnnZyR133NFILpZrJDohQIAAAQIECBAgQIAAAQIECBAgMMEEBEBH4IXH2p31AGRsTHTLLbf028pXvvKVxv3Xv/71jfM4iR3k68e3v/3t+mmf7zH9PTYsimPjjTdOpsD3IZJAgAABAgQIECBAgAABAgQIECAwAQUEQEfopRcDmeecc07605/+VNrSN77xjXTbbbfl9172spelXXbZpSlfpEVAM44bbrghlQVBY5r9aaedll544YU83wEHHJB/9z8ECBAgQIAAAQIECBAgQIAAAQIEJrqAAOgIfQL222+/NHv27Lz2WOPz4IMPTjfeeGO+lufixYvTvffem0455ZQUwdE4YsH1f/3Xf02TJk3Kr4v/c8QRRzQuo8zcuXPTo48+mqKemPZ+1FFHpZ/85Cd5nhh5uv322zfyOyFAgAABAgQIECBAgAABAgQIECAwkQVsgjRCb3/KlCnppJNOyoOasTnRI488kj70oQ/lrcW9CF7WjzXWWCMPhm6yySb1pKbvs2bNyuv6xCc+kZ5//vn0+c9/Pv9aaqmlGqM+o8D06dPT6aefniZPFtduAnRBgAABAgQIECBAgAABAgQIECAwYQUEQEfw1a+++urpoosuSl//+tfz77EzfBz14Oe0adPSFltskWKEZ3+7u0eZnXbaKW2wwQbp1FNPzUePLlmypBH8jIDqPvvsk97xjnekF7/4xZHdQYAAAQIECBAgQIAAAQIECBAYcYFrrrkm3XTTTW3bidjIe9/73rb33SBQhcCkWnZU0dBEbyMClo899lh68MEHU2yMtNFGG6W11lprSCwxCjSm0MfGR+uss06KneNXXHHFIdU1UKE5c+akSy+9tJEtptpvueWWjWsnBAgQIECAAAECBAgQIECAwMQVOProo9MZZ5zRFiBmu/7iF79oe98NAlUIGAFahXLWRkxLj2BlfHV7TJ06NV9ftL7GaLf1KU+AAAECBAgQIECAAAECBAgQIEBgvAoIgI7XN+u5CBAgQIAAAQIECBAgQIAAAQIjLPD2t789bbXVVnkrJ5xwQpo/f35+HvuXxGzVlVZaaYR7oHoCAwsIgA5sJAcBAgQIECBAgAABAgQIECBAgECJwCte8YoUX3GcffbZjQDovvvuO+B+JyXVSSIwIgK2Cx8RVpUSIECAAAECBAgQIECAAAECBAgQINALAgKgvfAW9IEAAQIECBAgQIAAAQIECBAgQIAAgREREAAdEVaVEiBAgAABAgQIECBAgAABAgQIECDQCwICoL3wFvSBAAECBAgQIECAAAECBAgQIECAAIERERAAHRFWlRIgQIAAAQIECBAgQIAAAQIECBAg0AsCAqC98Bb0gQABAgQIECBAgAABAgQIECBAgACBEREQAB0RVpUSIECAAAECBAgQIECAAAECBAgQINALAgKgvfAW9IEAAQIECBAgQIAAAQIECBAgQIAAgREREAAdEVaVEiBAgAABAgQIECBAgAABAgQIECDQCwICoL3wFvSBAAECBAgQIECAAAECBAgQIECAAIERERAAHRFWlRIgQIAAAQIECBAgQIAAAQIECBAg0AsCAqC98Bb0gQABAgQIECBAgAABAgQIECBAgACBEREQAB0RVpUSIECAAAECBAgQIECAAAECBAgQINALAlN6oRP6QIAAAQIECBAgQIAAgdEWWLRoUbr11ltLu7HFFluk5ZdfvvSeRAIECBAgQKC3BQRAe/v96B0BAgQIECBAgAABAhUJPPPMM+nAAw8sbW3evHlp5syZpfckEiBAgAABAr0tYAp8b78fvSNAgAABAgQIECBAgAABAgQIECBAoAsBAdAu8BQlQIAAAQIECBAgQIAAAQIECBAgQKC3BQRAe/v96B0BAgQIECBAgAABAgQIECBAgAABAl0ICIB2gacoAQIECBAgQIAAAQIECBAgQIAAAQK9LSAA2tvvR+8IECBAgAABAgQIECBAgAABAgQIEOhCQAC0CzxFCRAgQIAAAQIECBAgQIAAAQIECBDobQEB0N5+P3pHgAABAgQIECBAgAABAgQIECBAgEAXAgKgXeApSoAAAQIECBAgQIAAAQIECBAgQIBAbwsIgPb2+9E7AgQIECBAgAABAgQIECBAgAABAgS6EBAA7QJPUQIECBAgQIAAAQIECBAgQIAAAQIEeltAALS334/eESBAgAABAgQIECBAgAABAgQIECDQhYAAaBd4ihIgQIAAAQIECBAgQIAAAQIECBAg0NsCAqC9/X70jgABAgQIECBAgAABAgQIECBAgACBLgQEQLvAU5QAAQIECBAgQIAAAQIECBAgQIAAgd4WEADt7fejdwQIECBAgAABAgQIECBAgAABAgQIdCEgANoFnqIECBAgQIAAAQIECBAgQIAAAQIECPS2gABob78fvSNAgAABAgQIECBAgAABAgQIECBAoAsBAdAu8BQlQIAAAQIECBAgQIAAAQIECBAgQKC3BQRAe/v96B0BAgQIECBAgAABAgQIECBAgAABAl0ICIB2gacoAQIECBAgQIAAAQIECBAgQIAAAQK9LSAA2tvvR+8IECBAgAABAgQIECBAgAABAgQIEOhCQAC0CzxFCRAgQIAAAQIECBAgQIAAAQIECBDobQEB0N5+P3pHgAABAgQIECBAgAABAgQIECBAgEAXAlO6KKsoAQIECBAgQIAAAQIExo3AlClT0qte9arS55k6dWppukQCBAgQIECg9wUEQHv/HekhAQIECBAgQIAAAQIVCEybNi1dcsklFbSkCQIECBAgQKBKAVPgq9TWFgECBAgQIECAAAECBAgQIECAAAEClQoIgFbKrTECBAgQIECAAAECBAgQIECAAAECBKoUEACtUltbBAgQIECAAAECBAgQIECAAAECBAhUKiAAWim3xggQIECAAAECBAgQIECAAAECBAgQqFJAALRKbW0RIECAAAECBAgQIECAAAECBAgQIFCpgABopdwaI0CAAAECBAgQIECAAAECBAgQIECgSgEB0Cq1tUWAAAECBAgQIECAAAECBAgQIECAQKUCAqCVcmuMAAECBAgQIECAAAECBAgQIECAAIEqBQRAq9TWFgECBAgQIECAAAECBAgQIECAAAEClQoIgFbKrTECBAgQIECAAAECBAgQIECAAAECBKoUEACtUltbBAgQIECAAAECBAgQIECAAAECBAhUKiAAWim3xggQIECAAAECBAgQIECAAAECBAgQqFJAALRKbW0RIECAAAECBAgQIECAAAECBAgQIFCpgABopdwaI0CAAAECBAgQIECAAAECBAgQIECgSgEB0Cq1tUWAAAECBAgQIECAAAECBAgQIECAQKUCAqCVcmuMAAECBAgQIECAAAECBAgQIECAAIEqBQRAq9TWFgECBAgQIECAAAECBAgQIECAAAEClQoIgFbKrTECBAgQIECAAAECBAgQIECAAAECBKoUEACtUltbBAgQIECAAAECBAgQIECAAAECBAhUKiAAWim3xggQIECAAAECBAgQIECAAAECBAgQqFJAALRKbW0RIECAAAECBAgQIECAAAECBAgQIFCpgABopdwaI0CAAAECBAgQIECAAAECBAgQIECgSgEB0Cq1tUWAAAECBAgQIECAAAECBAgQIECAQKUCUyptTWMECBAgQIAAAQIECBDoUYHFixene+65p7R3M2bMSMsuu2zpPYkECBAgQIBAbwsIgPb2+9E7AgQIECBAgAABAgQqEvjDH/6Q9tlnn9LW5s2bl2bOnFl6TyIBAgQIECDQ2wKmwPf2+9E7AgQIECBAgAABAgQIECBAgAABAgS6EBAA7QJPUQIECBAgQIAAAQIECBAgQIAAAQIEeltAALS334/eESBAgAABAgQIECBAgAABAgQIECDQhYAAaBd4ihIgQIAAAQIECBAgQIAAAQIECBAg0NsCAqC9/X70jgABAgQIECBAgAABAgQIECBAgACBLgQEQLvAU5QAAQIECBAgQIAAAQIECBAgQIAAgd4WEADt7fejdwQIECBAgAABAgQIECBAgAABAgQIdCEgANoFnqIECBAgQIAAAQIECBAgQIAAAQIECPS2gABob78fvSNAgAABAgQIECBAgAABAgQIECBAoAsBAdAu8BQlQIAAAQIECBAgQIAAAQIECBAgQKC3BQRAe/v96B0BAgQIECBAgAABAgQIECBAgAABAl0ICIB2gacoAQIECBAgQIAAAQIECBAgQIAAAQK9LSAA2tvvR+8IECBAgAABAgQIECBAgAABAgQIEOhCQAC0CzxFCRAgQIAAAQIECBAgQIAAAQIECBDobQEB0N5+P3pHgAABAgQIECBAgAABAgQIECBAgEAXAgKgXeApSoAAAQIECBAgQIAAAQIECBAgQIBAbwsIgPb2+9E7AgQIECBAgAABAgQIECBAgAABAgS6EBAA7QJPUQIECBAgQIAAAQIECBAgQIAAAQIEeltAALS334/eESBAgAABAgQIECBAgAABAgQIECDQhYAAaBd4ihIgQIAAAQIECBAgQIAAAQIECBAg0NsCAqC9/X7RvNi9AABAAElEQVT0jgABAgQIECBAgAABAgQIECBAgACBLgQEQLvAU5QAAQIECBAgQIAAAQIECBAgQIAAgd4WEADt7fejdwQIECBAgAABAgQIECBAgAABAgQIdCEwpYuyihIgQIAAAQIECBAgQGDcCEyePDltuOGGpc+z9NJLl6ZLJECAAAECBHpfQAC099+RHhIgQIAAAQIECBAgUIHAKquskr71rW9V0JImCBAgQIAAgSoFTIGvUltbBAgQIECAAAECBAgQIECAAAECBAhUKiAAWim3xggQIECAAAECBAgQIECAAAECBAgQqFJAALRKbW0RIECAAAECBAgQIECAAAECBAgQIFCpgABopdwaI0CAAAECBAgQIECAAAECBAgQIECgSgEB0Cq1tUWAAAECBAgQIECAAAECBAgQIECAQKUCAqCVcmuMAAECBAgQIECAAAECBAgQIECAAIEqBQRAq9TWFgECBAgQIECAAAECBAgQIECAAAEClQoIgFbKrTECBAgQIECAAAECBAgQIECAAAECBKoUEACtUltbBAgQIECAAAECBAgQIECAAAECBAhUKiAAWim3xggQIECAAAECBAgQIECAAAECBAgQqFJAALRKbW0RIECAAAECBAgQIECAAAECBAgQIFCpgABopdwaI0CAAAECBAgQIECAAAECBAgQIECgSgEB0Cq1tUWAAAECBAgQIECAAAECBAgQIECAQKUCAqCVcmuMAAECBAgQIECAAAECBAgQIECAAIEqBQRAq9TWFgECBAgQIECAAAECBAgQIECAAAEClQoIgFbKrTECBAgQIECAAAECBAgQIECAAAECBKoUEACtUltbBAgQIECAAAECBAgQIECAAAECBAhUKiAAWim3xggQIECAAAECBAgQIECAAAECBAgQqFJAALRKbW0RIECAAAECBAgQIECAAAECBAgQIFCpgABopdwaI0CAAAECBAgQIECAAAECBAgQIECgSgEB0Cq1tUWAAAECBAgQIECAAAECBAgQIECAQKUCAqCVcmuMAAECBAgQIECAAAECBAgQIECAAIEqBQRAq9TWFgECBAgQIECAAAECBAgQIECAAAEClQpMqbQ1jREgQIAAAQIECBAgQKBHBZYsWZIef/zx0t6tvvrqacoU/3wqxZFIgAABAgR6XMB/wXv8BekeAQIECBAgQIAAAQLVCPzud79LO+ywQ2lj8+bNSzNnziy9J5EAAQIECBDobQFT4Hv7/egdAQIECBAgQIAAAQIECBAgQIAAAQJdCAiAdoGnKAECBAgQIECAAAECBAgQIECAAAECvS0gANrb70fvCBAgQIAAAQIECBAgQIAAAQIECBDoQkAAtAs8RQkQIECAAAECBAgQIECAAAECBAgQ6G0BAdDefj96R4AAAQIECBAgQIAAAQIECBAgQIBAFwICoF3gKUqAAAECBAgQIECAAAECBAgQIECAQG8LCID29vvROwIECBAgQIAAAQIECBAgQIAAAQIEuhAQAO0CT1ECBAgQIECAAAECBAgQIECAAAECBHpbQAC0t9+P3hEgQIAAAQIECBAgQIAAAQIECBAg0IWAAGgXeIoSIECAAAECBAgQIECAAAECBAgQINDbAgKgvf1+9I4AAQIECBAgQIAAAQIECBAgQIAAgS4EBEC7wFOUAAECBAgQIECAAAECBAgQIECAAIHeFhAA7e33o3cECBAgQIAAAQIECBAgQIAAAQIECHQhIADaBZ6iBAgQIECAAAECBAgQIECAAAECBAj0toAAaG+/H70jQIAAAQIECBAgQIAAAQIECBAgQKALAQHQLvAUJUCAAAECBAgQIECAAAECBAgQIECgtwUEQHv7/egdAQIECBAgQIAAAQIECBAgQIAAAQJdCAiAdoGnKAECBAgQIECAAAECBAgQIECAAAECvS0gANrb70fvCBAgQIAAAQIECBAgQIAAAQIECBDoQkAAtAs8RQkQIECAAAECBAgQIECAAAECBAgQ6G0BAdDefj96R4AAAQIECBAgQIAAAQIECBAgQIBAFwICoF3gKUqAAAECBAgQIECAAAECBAgQIECAQG8LCID29vvROwIECBAgQIAAAQIECBAgQIAAAQIEuhCY0kVZRQkQIECAAAECBAgQIDBuBCZPnpymTZtW+jxxz0GAAAECBAiMTQEB0LH53vSaAAECBAgQIECAAIFhFlhllVXSLbfcMsy1qo4AAQIECBAYbQF/xhztN6B9AgQIECBAgAABAgQIECBAgAABAgRGTMAI0BGjVTEBAgQIECBAgAABAgQIECAw0QV+8IMfpO9+97ttGV70ohelY445pu19NwgQ6F5AALR7QzUQIECAAAECBAgQIECAAAECBEoFfvjDH6aPf/zjpfcica211hIAbavjBoHhETAFfngc1UKAAAECBAgQIECAAAECBAgQIECAQA8KGAHagy9FlwgQIECAAAECBAgQIECAAIHxITBnzpy08cYb5w9z6qmnpttuuy0/P++889Kaa66Zpk6dOj4e1FMQ6GEBAdAefjm6RoAAAQIECBAgQIAAAQIECIxtgU033TTFVxwXXnhhIwC6++67p5e+9KVj++H0nsAYETAFfoy8KN0kQIAAAQIECBAgQIAAAQIECBAgQGDwAgKggzdTggABAgQIECBAgAABAgQIECBAgACBMSIgADpGXpRuEiBAgAABAgQIECBAgAABAgQIECAweAEB0MGbKUGAAAECBAgQIECAAAECBAgQIECAwBgREAAdIy9KNwkQIECAAAECBAgQIECAAAECBAgQGLyAAOjgzZQgQIAAAQIECBAgQIAAAQIECBAgQGCMCAiAjpEXpZsECBAgQIAAAQIECBAgQIAAAQIECAxeQAB08GZKECBAgAABAgQIECBAgAABAgQIECAwRgQEQMfIi9JNAgQIECBAgAABAgQIECBAgAABAgQGLyAAOngzJQgQIECAAAECBAgQIECAAAECBAgQGCMCAqBj5EXpJgECBAgQIECAAAECBAgQIECAAAECgxcQAB28mRIECBAgQIAAAQIECBAgQIAAAQIECIwRAQHQMfKidJMAAQIECBAgQIAAAQIECBAgQIAAgcELCIAO3kwJAgQIECBAgAABAgQIECBAgAABAgTGiIAA6Bh5UbpJgAABAgQIECBAgAABAgQIECBAgMDgBQRAB2+mBAECBAgQIECAAAECBAgQIECAAAECY0RAAHSMvCjdJECAAAECBAgQIECAAAECBAgQIEBg8AJTBl9ECQIECBAgQIAAAQIECIxPgQULFpQ+2NSpU9OkSZNK70kkQIAAAQIEeltAALS334/eESBAgAABAgQIECBQkcBTTz2Vtt1229LW5s2bl2bOnFl6TyIBAgQIECDQ2wKmwPf2+9E7AgQIECBAgAABAgQIECBAgAABAgS6EBAA7QJPUQIECBAgQIAAAQIECBAgQIAAAQIEeltAALS334/eESBAgAABAgQIECBAgAABAgQIECDQhYAAaBd4ihIgQIAAAQIECBAgQIAAAQIECBAg0NsCAqC9/X70jgABAgQIECBAgAABAgQIECBAgACBLgQEQLvAU5QAAQIECBAgQIAAAQIECBAgQIAAgd4WEADt7fejdwQIECBAgAABAgQIECBAgAABAgQIdCEgANoFnqIECBAgQIAAAQIECBAgQIAAAQIECPS2gABob78fvSNAgAABAgQIECBAgAABAgQIECBAoAsBAdAu8BQlQIAAAQIECBAgQIAAAQIECBAgQKC3BQRAe/v96B0BAgQIECBAgAABAgQIECBAgAABAl0ITOmi7IQsevTRR6dbbrklfeADH0hz5szpyOCFF15IV199dbr22mvTQw89lJ577rm06aabptmzZ6dtttkmbbLJJpXW01FjMhEgQIAAAQIECBAgQIAAAQIECBAYBwICoIN4iZdeemke/BxEkfTkk0+mo446Kj3wwANNxW699dYUX3Pnzk3HHXdc2nXXXZvut14MVz2t9bomQIAAAQIECBAgQIAAAQIECBAgMJ4FBEA7fLvf+c530tlnn91h7r9me/bZZ9MxxxzTCH7OnDkzbbvttmn11VdPt912W7r++uvTokWL0sknn5wi77777lta/3DVU1q5RAIECBAgQIAAAQIECBAgQIAAAQLjWEAAdICXu3DhwvSFL3whffWrX021Wm2A3M23L7zwwnTffffliTvuuGM68cQT09JLL51f77XXXumOO+5Ixx57bB78PPfcc9N2222XVlttteZKsqvhqqdPxRIIECBAgAABAgQIECBAgAABAgQIjHMBmyD184JjlOY73/nOdMkll6QlS5b0k7PvrWeeeSZdccUV+Y011lijKfhZz7355pvn6XEd64TW89fvx/fhqqdYp3MCBAgQIECAAAECBAgQIECAAAECE0VAALTkTcdIzzPPPDMdfvjh6eGHH85zrL/++h1vehQFrrvuurRgwYK87N57790Y+ZknFP4npsSvt956eUoEQBcvXly4O3z1NFXqggABAgQIECBAgAABAgQIECBAgMAEERAALXnRMdrzsssua9zZY4898mnwsYZn/Zg0aVL9tPT7nXfe2UjfeuutG+dlJ69+9avz5Keffjr99Kc/bcoyXPU0VeqCAAECBAgQIECAAAECBAgQIECAwAQREADt50VvtdVW6T/+4z/Shz70oTR16tR+cva9ddddd+WJESidMWNG3wyFlGJg9f777y/cSWm46mmq1AUBAgQIECBAgAABAgQIECBAgACBCSJgE6SSFz158uR0wQUXpFmzZpXc7SzpkUceyTPGju9TpvTPvOaaazYqffDBBxvncTJc9TRV6oIAAQIECBAgQIAAAQIECBAgQIDABBHoPzI3QRBaHzNGbXYT/Iy1P+ubJq288sqt1fe5njZtWiMtNj2qH8NVT72+su+xM/0tt9xSditP++1vf5s22GCD9Nhjj6Xnn3++bT43CBAgQIAAAQIECBAgQIAAAQIECPSigADoCLyVZ599tlHrsssu2zhvd1LMUwwyDlc97dqN9CeeeCL95je/6S9LWmaZZdJAa572W4GbBAgQIECAAAECBAgQIECAAAECBEZJwBqgIwD/3HPPNWqN4OFARzHPwoULG9mHq55GhU4IECBAgAABAgQIECBAgAABAgQITDABAdAReOHFNT9feOGFAVtYvHhxI08xGDpc9TQqd0KAAAECBAgQIECAAAECBAgQIEBgggmYAj8CL3y55ZZr1Lpo0aLGebuTYp4VVlihkW246mlUWHISu9zX1ystuZ3e8pa3pP/5n/8puyWNAAECBAgQIECAwLgSWG211dKvfvWrcfVMHoYAAQIECBBISQB0BD4Fyy+/fKPW4jqejcSWk+JU92IAdLjqaWmu6bI4yrTpxv9dTJ5skHCZizQCBAgQIECAAAECBAgQIECAAIGxISC6NQLvKTY1WnXVVfOaY5OhgY7HH3+8kWWVVVZpnA9XPY0KnRAgQIAAAQIECBAgQIAAAQIECBCYYAICoCP0wjfccMO85hjd+fvf/77fVh5++OHG/U033bRxHifDVU9TpS4IECBAgAABAgQIECBAgAABAgQITBABAdARetGbbbZZo+bbb7+9cV52cscddzSSi+UisXjdTT2NBpwQIECAAAECBAgQIECAAAECBAgQmEACAqAj9LJ32GGHRs3f/va3G+etJzH9/Wc/+1mevPHGG6fiFPhIHK56Wtt1TYAAAQIECBAgQIAAAQIECBAgQGAiCAiAjtBbftnLXpYioBnHDTfckMqCoAsXLkynnXZaeuGFF/J8BxxwQP69+D/DVU+xTucECBAgQIAAAQIECBAgQIAAAQIEJoqAAOgIvukjjjiiUfspp5yS5s6dmx599NG0ePHiFNPejzrqqPSTn/wkzxNT3bfffvtG/uLJcNVTrNM5AQIECBAgQIAAAQIECBAgQIAAgYkgMGUiPORoPeOsWbPSSSedlD7xiU+k559/Pn3+85/Pv5ZaaqnGqM/o2/Tp09Ppp5+eJk8uj0cPVz2j5aBdAgQIECBAgAABAgQIECBAgAABAqMlUB5xG63ejMN2d9ppp/SZz3wmnw5fD3DWp7xPmTIlvfnNb87vT5s2rd+nH656+m3ETQIECBAgQIAAAQIECBAgQIAAAQLjTMAI0EG80D333DPF12CPl770pfnIzxgFeu+996bY+GidddZJ66+/flpxxRU7rm646um4QRkJECBAgAABAgQIECBAgAABAhNY4Ec/+lGaP39+W4HVV1897bbbbm3vu9EbAgKgFb6HqVOnptmzZ+df3TQ7XPV00wdlCRAgQIAAAQIECBAgQIAAAQLjXSCWM/ziF7/Y9jG32WYbAdC2Or1zwxT43nkXekKAAAECBAgQIECAAAECBAgQIECAwDALGAE6zKCqI0CAAAECBAgQIECAAAECBAgQGB8C++67b5oxY0b+MGeddVZ66qmn8vNTTjkl/77uuuuOjwcd508hADrOX7DHI0CAAAECBAgQIECAAAECBAgQGJrAHnvskeIrjosvvrgRAD3++OOHVqFSoyJgCvyosGuUAAECBAgQIECAAAECBAgQIECAAIEqBARAq1DWBgECBAgQIECAAAECBAgQIECAAAECoyIgADoq7BolQIAAAQIECBAgQIAAAQIECBAgQKAKAQHQKpS1QYAAAQIECBAgQIAAAQIECBAgQIDAqAgIgI4Ku0YJECBAgAABAgQIECBAgAABAgQIEKhCQAC0CmVtECBAgAABAgQIECBAgAABAgQIECAwKgICoKPCrlECBAgQIECAAAECBAgQIECAAAECBKoQEACtQlkbBAgQIECAAAECBAgQIECAAAECBAiMioAA6Kiwa5QAAQIECBAgQIAAAQIECBAgQIAAgSoEBECrUNYGAQIECBAgQIAAAQIECBAgQIAAAQKjIjBlVFrVKAECBAgQIECAAAECBHpM4Omnn0477rhjaa8uu+yyNGPGjNJ7EgkQIECAAIHeFhAA7e33o3cECBAgQIAAAQIECFQkUKvV0sKFC0tbi3sOAgQIECBAYGwKmAI/Nt+bXhMgQIAAAQIECBAgQIAAAQIECBAg0IGAAGgHSLIQIECAAAECBAgQIECAAAECBAgQIDA2BQRAx+Z702sCBAgQIECAAAECBAgQIECAAAECBDoQEADtAEkWAgQIECBAgAABAgQIECBAgAABAgTGpoAA6Nh8b3pNgAABAgQIECBAgAABAgQIECBAgEAHAgKgHSDJQoAAAQIECBAgQIAAAQIECBAgQIDA2BQQAB2b702vCRAgQIAAAQIECBAgQIAAAQIECBDoQGBKB3lkIUCAAAECBAgQIECAAAECBAgQIEBgnAncdddd6cknn2z7VKuuumqaPXt22/tj5YYA6Fh5U/pJgAABAgQIECBAgAABAgQIECBAYBgFTjzxxHTZZZe1rXH33XdP8+bNa3t/rNwwBX6svCn9JECAAAECBAgQIECAAAECBAgQIEBg0AJGgA6aTAECBAgQIECAAAECBAgQIECAAAECY19g1113TWuuuWb+IHPnzk0LFixIyyyzTDrwwAPztJe//OVj/yGzJxAAHRev0UMQIECAAAECBAgQIECAAAECBAgQGJzAoYce2igQU+EjALr88sun888/v5E+Hk5MgR8Pb9EzECBAgAABAgQIECBAgAABAgQIECBQKiAAWsoikQABAgQIECBAgAABAgQIECBAgACB8SAgADoe3qJnIECAAAECBAgQIECAAAECBAgQIECgVEAAtJRFIgECBAgQIECAAAECBAgQIECAAAEC40FAAHQ8vEXPQIAAAQIECBAgQIAAAQIECBAgQIBAqYAAaCmLRAIECBAgQIAAAQIECBAgQIAAAQIExoOAAOh4eIuegQABAgQIECBAgAABAgQIECBAgACBUgEB0FIWiQQIECBAgAABAgQIECBAgAABAgQIjAcBAdDx8BY9AwECBAgQIECAAAECBAgQIECAAAECpQICoKUsEgkQIECAAAECBAgQIECAAAECBAgQGA8CAqDj4S16BgIECBAgQIAAAQIECBAgQIAAAQIESgWmlKZKJECAAAECBAgQIECAwAQTWHXVVdPNN99c+tQrrbRSabpEAgQIECBAoPcFBEB7/x3pIQECBAgQIECAAAECFQhMmjQprbzyyhW0pAkCBAgQIECgSgFT4KvU1hYBAgQIECBAgAABAgQIECBAgAABApUKCIBWyq0xAgQIECBAgAABAgQIECBAgAABAgSqFBAArVJbWwQIECBAgAABAgQIECBAgAABAgQIVCogAFopt8YIECBAgAABAgQIECBAgAABAgQIEKhSQAC0Sm1tESBAgAABAgQIECBAgAABAgQIECBQqYAAaKXcGiNAgAABAgQIECBAgAABAgQIECBAoEoBAdAqtbVFgAABAgQIECBAgAABAgQIECBAgEClAgKglXJrjAABAgQIECBAgAABAgQIECBAgACBKgUEQKvU1hYBAgQIECBAgAABAgQIECBAgAABApUKCIBWyq0xAgQIECBAgAABAgQIECBAgAABAgSqFBAArVJbWwQIECBAgAABAgQIECBAgAABAgQIVCogAFopt8YIECBAgAABAgQIECBAgAABAgQIEKhSQAC0Sm1tESBAgAABAgQIECBAgAABAgTGkcBf/pLSZz+b0s47p/TjH//twV7/+pROPDGlxx//W5ozAqMlIAA6WvLaJUCAAAECBAgQIECAAAECBAiMYYH//d+UNt00pUMPTel730tpyZK/Pczdd6d08skpzZyZ0uc+97d0ZwRGQ0AAdDTUtUmAAAECBAgQIECAAAECBAgQGMMC11+f0t/9XUr33df/Q/z5zykdckhKJ53Ufz53CYykgADoSOqqmwABAgQIECBAgAABAgQIECAwzgRiWvucOSktWND5g330oyldeWXn+eUkMJwCAqDDqakuAgQIECBAgAABAgQIECBAgMA4F/jYx1J66qnBP+SRR6a0ePHgyylBoFsBAdBuBZUnQIAAAQIECBAgQIAAAQIECEwQgYULU7rooqE97Pz5KV133dDKKkWgGwEB0G70lCVAgAABAgQIECBAgAABAgQITCCBm29OKdb1HOpx7bVDLakcgaELCIAO3U5JAgQIECBAgAABAgQIECBAgMCEEnjwwe4et9vy3bWu9EQVEACdqG/ecxMgQIAAAQIECBAgQIAAAQIEBikwadIgC7Rk77Z8S3UuCXQkIADaEZNMBAgQIECAAAECBAgQIECAAAEC66/fnUG35btrXemJKiAAOlHfvOcmQIAAAQIECBAgQIAAAQIECAxS4LWvTWnFFQdZqJB9l10KF04JVCQwpaJ2NEOAAAECBAgQIECAAIGeFvjd736X9tlnn9I+zp07N22wwQal9yQSIEBgIgkss0xK06en9KtfDf6pN9oope23H3w5JQh0KyAA2q2g8gQIECBAgAABAgQIjAuBJUuWpMcee6z0WRYvXlyaLpEAAQITTeC444YW/AynM89MaYpI1ET7yPTE85oC3xOvQScIECBAgAABAgQIECBAgAABAr0tcMEFKZ122tD6uMUWKe2xx9DKKkWgWwEB0G4FlSdAgAABAgQIECBAgAABAgQIjHOBK69M6X3vG/pD3nlnSo88MvTyShLoRkAAtBs9ZQkQIECAAAECBAgQIECAAAEC41zgxz9O6a1vTemFF8ofdOmlU9p665SWWqr8fqT+5S8pnXVW+/vuEBhJAQHQkdRVNwECBAgQIECAAAECBAgQIEBgDAvMn5/Snnum9Nxz5Q8RQc9vfCOlW25JaautyvPUUz/3uZT++Mf6le8EqhMQAK3OWksECBAgQIAAAQIECBAgQIAAgTEj8OSTKb3hDSnF93bHeeel9KY3tbvbnP7MMynFOqIOAlULCIBWLa49AgQIECBAgAABAgQIECBAgECPC8SIzze+MaUYAdruOP74lN7znvK7K69cnn7uuSktWlR+TyqBkRIQAB0pWfUSIECAAAECBAgQIECAAAECBMagQKz1GWt+xrT2dscBB6R08snt7qZ08MHl9x59NKUvf7n8nlQCIyUgADpSsuolQIAAAQIECBAgQIAAAQIECIxBgdjtPXZ9b3fsvHNKF16Y0qRJ7XKkdNBBKS23XPn9M85IqVYrvyeVwEgICICOhKo6CRAg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AAEEEMhCwG/6e7duUteuWZyIqgggEBoBAqChGSoaigACCCCAAAIIIIAAAggggAACtRHYskWaNs19Bqa/u13IRSAKAgRAozCK9AEBBBBAAAEEEEAAAQQQQAABBNIKvPmm9PXX7moEQN0u5CIQBQECoFEYRfqAAAIIIIAAAggggAACCCCAAAJpBWz9T1dq0EA6+GBXCXkIIBAFAQKgURhF+oAAAggggAACCCCAAAIIIIAAAmkF/Nb/7N9fatw47eFUQACBkAoQAA3pwNFsBBBAAAEEEEAAAQQQQAABBBDIXGDFCmn2bHd9pr+7XchFICoCBECjMpL0AwEEEEAAAQQQQAABBBBAAAEEfAWmTpU2b3YXEwB1u5CLQFQECIBGZSTpBwIIIIAAAggggAACCCCAAAII+Ar4TX/v0kXq0cP3MAoQQCACAgRAIzCIdAEBBBBAAAEEEEAAAQQQQAABBFILPPecu3zIEHc+uQggEB0BAqDRGUt6ggACCCCAAAIIIIAAAggggAACDoG335b++19HgZfF9He3C7kIREmAAGiURpO+IIAAAggggAACCCCAAAIIIIBANQG/6e9lZdKAAdWqk4EAAhETIAAasQGlOwgggAACCCCAAAIIIIAAAgggsLXAlClbP08+69dP2nbb5DO+I4BAVAW8zzpICCCAAAIIIIAAAggggAACTZs21TXXXOOEaNeunTOfTAQQCL7AqlXSq6+628n0d7cLuQhETYAAaNRGlP4ggAACCCCAAAIIIIBAjQQaNmyoH/3oRzU6loMQQCC4AtOmSRs3uttHANTtQi4CURNgCnzURpT+IIAAAggggAACCCCAAAIIIIBAuYDf+p/t20u9e5dX4wECCERYgABohAeXriGAAAIIIIAAAggggAACCCBQ6gLPPecWGDJEqlPHXUYuAghES4AAaLTGk94ggAACCCCAAAIIIIAAAggggMB3Ah98IH32mZuD6e9uF3IRiKIAAdAojip9QgABBBBAAAEEEEAAAQQQQAAB+U1/38aLhhx6KEAIIFAqAgRAS2Wk6ScCCCCAAAIIIIAAAggggAACJSbgFwDt00dq3brEMOguAiUsQAC0hAefriOAAAIIIIAAAggggAACCCAQVYF166SZM929s/U/SQggUDoCBEBLZ6zpKQIIIIAAAggggAACCCCAAAIlI/DCC9L69e7usv6n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CCCAAAIIIIAAAggggAACVQTWrpWOOUZaurRKwXdPy7xboiZNknbc0V1OLgIIIBAVAe4AjcpI0g8EEEAAAQQQQAABBBBAAIFICuy7777e+p2JBTwneRHLmTNnxvtpd4V27949/rh+/frV+n766dLcudWyyzP++EdpwIDypzxAAAEEIitAADSyQ0vHEEAAAQQQQAABBBBAAAEEoiCw8847y74sffDBB+UB0GHezkUDBw50dvHqqxN3dzoLvcyzz069LqjfceQjgAACYRRgCnwYR402I4AAAggggAACCCCAAAIIIOAjYGt6XnGFT6GX3a+fdNtt/uWUIIAAAlETIAAatRGlPwgggAACCCCAAAIIIIAAAiUr8N570imnSLGYm6BLF2nyZKlePXc5uQgggEAUBQiARnFU6RMCCCCAAAIIIIAAAggggEDJCSxbJnmz4rV6tbvrjRsndnxv185dTi4CCCAQVQECoFEdWfqFAAIIIIAAAggggAACCCBQMgKbNknHHy998ol/l++7T9pjD/9yShBAAIGoChAAjerI0i8EEEAAAQQQQAABBBBAAIGSERg1Snr+ef/uXn65dNxx/uWUIIAAAlEWIAAa5dGlbwgggAACCCCAAAIIIIAAApEXuPNOacIE/24ec4x05ZX+5ZQggAACURcgABr1EaZ/CCCAAAIIIIAAAggggAACkRV4+WXp/PP9u9erl/TXv0p16vjXoQQBBBCIukBZ1DsYpf5t3rxZU6ZM0bRp0/TFF19o7dq12mWXXbTbbrvpgAMOUI8ePaLUXfqCAAIIIIAAAggggAACCCDwncD06dL990t//3sFyWmnScuXSxs3VuRVftS6tfTUU1LTppVzeYwAAgiUngAB0JCM+VdffaXRo0fr008/3arFb775puxr4sSJuvTSSzV48OCtynmCAAIIIIAAAggggAACCCAQXoGvv5ZOPVX65z+r92Hhwup5yZwy793+o49KO+yQzOE7AgggULoCBEBDMPZr1qzRmDFjyoOfO+20k/r27au2bdvq7bff1syZM7VhwwZdffXVsrrDhw8PQa+ya+KSJdKiRVLDhlKXLlKTJtkdH/TaixdL//1vol+dO0uNGgW9xdm1b8UKycawWTOpQwepbt3sjg967aVLJftq3lzabrvo9W/LFul//0v0L2pjZ68t69uyZZLdIdGiRdBfbdm175tvpI8+kuxn0PsvQ927R+v3i/dfn+yN38qVUrt2iZ+/KE7vs37Wr5/d2Iel9rp18ma0SK1aRW9qpt2NZX+7rF+feG3a/4FRSva6tP5ZP+3/vqj9bRalsaIv4Raw9wkHHijvvWD2/fjjH6VDDsn+OI5AAAEEoijAGqAhGNV7771XCxYsiLf0EO9/sL/85S8666yzNGzYMP3mN7/R+PHjvT86ExHBW265RV/bR4QRSF4sV9dck3jDbkGzvfaSdt01EaA49FDp6afD3Ul7w37FFVLXrlLHjon+WXDCAjBHHCHZFJcwJ+vfb3+bGD97Y+ut1qBOnRJvck86SZozJ8y9k7ybsr0PJqTvfU9q317eUhSJ4LwF0U45Rfr3v8Pdv9Wrpeuuk/bZR2rQIBEctABMz56S7SBq/Q9zsjfttlOqfaDSsqXkfa4U/27jefHFiTf1Ye6frQU2ZIjUpo20777SYYdJe+6ZeH7CCdL774e5d4nfH8cfn3hd2u9Q+//Bfr/Yl42rfeAS5mSvz8suS/xesQ/+7GfQfo/a/w22hpu3Ik6o07x50rnnSttvLzVunHhdWj8HDJDuvlvatCnU3fOWKpKOPlradlvp+9+Xt0RR4rG9Ti0Y8e234e6f/f11+OGJDzXtrrJu3RKP999fuuOO8I/f3Ln+4zN7tn8ZJQjkQ8A+hLZ7W2oS/DznnNTrguajvZwTAQQQCLRAjBRogZUrV8YGDRoU69evX8y7szPm3enpbO/LL78cr2P17r77bmedmmTaNb0XcPnX7Nmza3KarI95/fVYbPvtY951U38NHRqLffNN1qcv+gEzZsRibdum7pv1/eSTY7G1a4ve3KwbMG1aLNamTer+1akTi40aFYtt2pT16Yt+wOOPx2Lbbpu6f9tsE4tddlkstmVL0ZubdQOmTo3F2rVL3b9mzWKx++/P+tSBOMB+RTZqlLp/jRvHYvfeG4jmZtUI+3kaOTJ13+x3S926sdi4cVmdOhCVN2+OxUaPjsXs90eq/x+aNo3FHn00EE3OuhE33xyL2esvVf969YrF5s3L+tRFP8DG7xe/SLz+UvVvl13C2b81a2Kx449PPXbW765dY7F33y36cGTdgP/9LxY74oj0/evZMxabPz/r0xf9APt766c/tdfnV7Fu3bo5v+rXn+/9PR6LeX+ekxAoiID9reX+fXm+l598jzatWh37O/SLLwrSxJxd5I033oh5N/fEv3p5/9El+3fOOefE86666qqcXYsTIYCAv0D79u3jP38tWrTwrxTSEu/PMFKQBZ544onywOb9aaINJ510Uryud2dobOPGjTnpVjECoBb8TBecqPyHQJ8+sdi6dTnpbkFOMn16LFavnt8fM9XzBw6MeeNZkKbl5CLPPhuLlZVV70flMav82HvZhio9+GD64Evl/nl/s4UqTZqUPjhRuX833RSq7sVuvDHz16b1c/z4cPXP3rxXHp90j8P2XiKb/lmQ9K9/Ddf4jRmT+fjZhzBvvRWe/tmHQSeemF3/3nknPP1bvz4W69s38/7Zh0hvvx2e/q1eHYvtvnvm/WvdOlxBUPs78sADE/1LFwC136u77RaLWUCYhEC+Bfx/r6QOgNrr9IYb8t263J5/woQJ5UHPZPCz8vcGDRrk9oKcDQEEnAJRDoAyBd77rRrk9N5775U3r0+fPuWPXQ/2sbmqXlrmLWY3J6Tzi23arU3zsDXBMk1vvCFvg6hMaxe3nq0zeNxx/rs0ulpnU+FtKnkYkk3bPPHE7Ka/PfSQdOutYeid9J//SGeemQgpZdpib8UKb5OyTGsXt57177TTsptee8kl0osvFrfdmV7dpoXbsgXZJOvfK69kc0Tx6t53X/avNVuG46WXitfmbK58113Z9c9CGd5qMfGf22yuU6y69rtw3LjMr27ru3or4cTXP838qOLVvOkm6eGHM79+sn+2HE4Y0tix0qxZmbd01Srphz/M7u+dzM+e+5ojRkjvvJP5ee3vHft7LizLNZx/fsXv+lisofdzdazza/PmZnEEW+bmpz/N3IOaCNREwH5PvPpqTY5MHPPcczU/liMRQACBKAqURbFTUerT+98t1FbH29Whqy10liLZ5kjJ9MknnyhdwDRZN0jfbW2sL7/MvkV//rO0++6JRfizP7pwR9jaZsuXZ3+9669PrH9qa8C5UrpNPwpV7i1HK3vTmm2yte5snbRcbqBgwY9cv/G66qrEZhbZ9s+CaLaOra1xZ6nyeCQfV/1euV7VsuTzVHVSlfkd//OfJzYjsWMzTbY2lb0xfuSRiiPMvnIKyvPzzpOsvdkkew2dfbY0YULiqGRf7Hvlx1bqep5pXjbHJ+tWPretmWhrl2ab7BwW1P/tb92vSztf5ddL1eeVyzJ5XNPjbc3EbIPXdi07zsbPAr3WvmQbk4+D8tw2k7G1S7NNtgHUr34l2e+Y5Ouh8jkyzbNjMq3rqlf1ePs528b7iD1Z1zYa85Yszzp99plkgUUbw+S5ql6r6nO/en756Y634+x1kup4G4fbbrMzZZdsTT/7vWvr8gY5zZ+fWHs22zZakNBen7YeqiXXz10yv+r3yj+b2ZQl62Zz/AcfSPfcY0cm0pYtTb11hH+ffOr7/cknE+u1DxzoW4UCBGolYL9bsv27pfIF/+//Kj8L/uPBgwd7H5T5f1JWN4o7cQZ/WGghApES8CaIVf6TLlJ9i0RnDj74YO8/vi3e7rbtNHny5JR9ev311703Qd67IC8d7f21OdbeNdQyHXvssXr88cfLz+KtAaq99967/HmuH9hC+vaHNgkBBBBAAAEEEEAAgSAL2GZslT8ADHJbaVv4BOw+mF69/Np9gVeQ/OTF23lN1SPxO+8sffSR3/HkI4AAAm6BDt6dO0u8HUW9NUC1YsUKd6WQ5paFtN0l0ex13jxwC35aamnbFKdJ9gJNpm8yvA1vlHfLycyZM5OHVfu+du3a+J2ni7y5zdaehd5HkZm0pdqJMsiwJtt/1PaVSDbv1P5DT5V+7RWGdSUHb267Xk7ROfvx9G6NDG2a6rV8TorWN/LKvFtfQpv+7rXc+8vUNzX3Si70LQ1+wTNeE73bk3xTO6/Ee+cX2vQ3r+XerRW+qbNXcpJvafALvNvGtSRFM3t4Zd5tdaFNN3gtT/UH2Z5e+Y9C2zvpQa/t61O0394R75eiPOhF9qbdu73aN+3vlfTxLQ12gfXrujRNPNQrD2v/bJrHd7fE+/ZyqFfiG7XxPSoYBTZNx/5/T5WGeIXbxSvYn+nepCsSAnkTOPLIre9Ar7iQ/Z1yxHdPN3jfq78Q7cYSXp8VYjxCAIHMBPr3769V3hocjRo18n6HVP/dktlZclNrxx13zM2JvjsLd4DmlDO3J/v666+99aF+GD9p7969velVyU/53Nf5zJsrduqpp8YL99tvP91wg71BTJ3OPfdczZgxI3Ulr/SLL76IB0DtnJWn2qc9kAoIIIAAAggggAACCCCAAAIIIIAAAghkITB06FBvCR1vLaIcpbDeOpej7gf7NHb3ZTLVr18/+dD3e+U639rCZyQEEEAAAQQQQAABBBBAAAEEEEAAAQRKXMDm2JICKlBWVjE8mzPYzWWT7YLxXaocDE3mub43btxYTZs2dRXF8ywIu3HjxvJyu/tzt912K3+eywfJTS4qFvte5J1+XppL2DSysKbPvIanWpjHxn9AWDvntftD7yvVgq62I9CgEPfvPa/tn6VofzOv7OAU5UEvmuE1MNXq+W28cm9eVmjTLK/lqaaIe7tW6cDQ9i6x/IS384xv6uiV7OJbGvyCF7wmptpxratXHtYpuKb/V+8r1RT43l55mKfA/81rf6op8Ht55T29rzCmmNfof6Rp+O5eeZc0dYJabB+wT03TOJveb79Dw5hsCvwTaRp+uFeemAJvmzdel27FgzRnoxiBVAL2vsheY9U3iZ3kHTbzu0NtyaXuW53mcO9letRRW2XxBAEEEMhI4FfeDoa2pKLFiq633ZiLmHJ596d1oyLCVsROcWm3gK25kEwbbIvYNKlynSYZbqc93rbtTpGqboLUqVMn5XodhsqXX7NG3pT8ZI6t99Av+STtd7tJtlLMOG39TCrkeouw9d772YpzWv8yD3Ba32xXXUsV50g8r/pvrsrtbnPXuVx51dtl/StesrYnvXLRCutzRXDezljc/uWiT6nPQf9S+SRnYtj35GOrn3xcOd/vcdX6VZ9XPle6MnttLrf37eUp8/Gz67RtW9H2yj/fmTy2S2ZSz69OJsfbZ4D2+7MiZd6/imPC9Og3YWpsDdpq63dHOV0U5c55fQvzhyfphsZ+t+yTrlJ5+QkneH8NRP3XUXlveVAsAS8WoQMO8D62XVK5BQu9J1O+yxjtfa94IR7hLQ16/vkSm6ZX9uIxAghkKmBLJCY3Qcpn7CfT9uSyHgHQXGrm+FwWcU+mNRYZTJMqT5nPNACa5pQFL/65tydORQA088u3by99/LG8u1kzP6YYNe+9VzrjjOyvvMMO3v2UH0oW5A1ysg+IfvGL7Fu4667Su+8G/w+1y7w9qX7/++z7Z3+0vvJKIoDqCgIl85Lfk1ew58m8qt+tTtW85PNUZanqeEsCa/Lk5NUz/+4tOaynn64IoCWPTAbwgvL85JOlJ59Mtibz7z/6kTRpUvX+ZX6GwtS03YgffTT7a9nP7LXXZn9coY/o2zfxc5TtdX/jxRJ/+9vqRyU/0LCfieSX1Uo+Tv6sFOK5rXjzgx9UfXNbvc2unBEjpLFjK0qq/twlS1z5mebZOTKta/XsK+lnx65enXjzvmyZPcsu2e/c886rOKZyOzJ5bEdmUs+vjn2QVrkvrnorV0q22UhNNkp97DHp2GMr+hfER//9b2KDygz+FK3W/KnezaL9+yeyk47JnynLrZxX9XlNy5LnyfT4996Thgyxo7JPZ4d5L7nsu8sRRRKw9wFvvCEdd1ziu18z7PfTz34m2f0tBD/9lMhHAIFSFiAAGuDRb9CggVq3bq1l3juGpUuXpm2pRemTqVWrVsmHofo+bJg3qfZI6Zlnsmv2TTcFP/hpPfrpT6V77vH2fn858/7ZHzO33hr84Kf1aORIaeJEb+GCeZn3z/5Au+WWcPyhZoGihx/ObkdN78c43j8TyeUdqZkLZ17zxhuladMkezOfabKgvL0+7Q7CoCfr3wsveBOnv8m8pc2by5v6sXUAJfOjC1tz3Djp+efl/Z+R+XV33lm69NLM6xezpv2esCBoNktcW1DqkkvcrQ7az6P9P2ZB+mzS9tsngtf2Og16stdnth8A9vJWMRg9Ovj//7VpI1n/zjoru1E47LDgBz+tRx07Jj5EGDMmu/7ZhzLWx6Anb3KTzjxTuvvu7Fp6zDHSwIHZHUNtBGoq0KWL9Npr0iOPSPffL/3rX1Jy9TN722f75l5wgbTHHjW9AschgAAC0RfwPtcmBVlgB/vIz0t2d+eKNLcWLFy4sLwru+yyS/njsD3429+8yUf7ZN5qu7vnxz/OvH4xa9obbrvDLtPhseCnBW0sKByG1LBh4k5AezORSbL+WVAjLG8gtt1Weuopye44ziTZsgV21282r+dMzpuvOt/7XuJORxvHTJK9nu+4Q9p330xqF79O166J/lVaXSRlo6ye3fn53a/hlHWDUGjj9/e/S5kGwzp3Tvy82us6DGnvvRMfsNSrl1lrt/OW6LOf16DPDEj2xv4fs2BfpsnGze5oznS8Mz1vvuqdfrpkszwyTcnxC/rMh2R/LICWzfj17p34QC15fNC/2wcJ2QSwbeaDfeAbljRhgrfq84GZt9aWw7cPfEkIFFLA/m4+8UTp2Wclm7WTTPa3yl13EfxMevAdAQSyF1juraX1pbfYsH0l95/Z4k2XSubZTXlRSARAAz6Ku9rc4O/SO++8k3zo/P6uzSH+LlU+LpkXlu/2pm7mzMR/7Kmmb7RrJz34oHtqY5D7au22T3BPOSX1XWV2Z8/jj0ujRgW5N9XbZmthvfmmZIuvp0rWP3vzblN1wpR69kz0b8CA1K22YJt9On/SSanrBa3U7taZMUOy9qdKHTokgkunnZaqVvDKBg9O/H5J9yGE/ep96aVw3L1UWdmmUb/+unTQQZVzqz8ePjzxOu7evXpZkHNsvb3p0xPTjVO1037/2O+hsPXvhhukP/5RShekt99Dr74qWVA4TMmmZd58s5RumfKDD06MX1g+fEiOgY2ffSjUokUyp/p3C2D85CfSrFlSy5bVy4OcY3dIWh9Tfahgf7fZsgx2N3q6cQ5SX+2DP5sBYf+n2RilSrZkgc3kCcuHR6n6QhkCCCCAAAImcJY3jcX2e7Gvr7/+Oo5iGyEl835if7xEINWJeSkC/YhsF+bPn+994n5GvH/9+vXz1mm71tlXm/5+gvfO0KL13b13fHfZx4A5SFU3QZo9e7b3hqtw77j+8x/J7gh98UVp0aLEm0ILsNni3hZYSvVHeA66n/dTWMz6oYcSb4RsjS17s7DTToldG+2Nfro3wXlvYC0vYAEk658FfG2FhmbNEoGLoUMTUz3D3j+bTm1TkSzQYqtU2JteC6zZUg429S/TO9VqyZyXwzduTEyxsjUl586V9x9h4s26TUm1aVY21TNMb26rItmmOtY3uyPbfg7tQ01vxRHtvntiSqqt+5nqA5iq5wvic/v5sztC338/sUGSLVOw1/+3dx7wVhRn/x+qIEWwAAIWEBXFjsCrkD9YyBvR2LFrlBijEaIksRGjRo0tiBqVGDSWRNRorIiCGrEFESsqKvZGsyEgRUT539/wzrnnnLvnnD11d4fvfD73ni2zu/N8n2d3Zp5pO62eQ0xyJjlo2J8aiO67b/X8yJq2QY1L6o2sb6eGyic5aLVf9UhTD1bNb611ENXTU73q1PtHDWhJts9581Y7Ch980Jj33jNGc0tqmHVdMcdOA1DqfIxx0bkWJNMQVfXSev/91dM2qEerGiaOPtoY9f5MclB+rt6PkyYZ8+GHxii/0MiP3XZb7dzt2TPJ0q3O0+XIfuSR+pW31ein0SrK+wo1MCVbelKfFALD68a7X3vttTa5j9V57/dIynCqpAAmnRBYwwgcWNc74l5VHHKEIXUOmInFzlOY415RHnyTupwAAEAASURBVMYBGiX9kM+WN36WPIF14eyzzzb/qy5MaeHbugnRzjzzTCPnpML5559fVwitK4VWIETtAK2ACNwCAhCAAAQgkFgCaqbWvKdhp6ZIrKAkHAIxJKDGMr2DmtKGAIE4EcABGidtkBYIJJ/AeeedVzf6ra73RI7Qr27V24tKWQ04x/2iOkx2HhX5Ip47sm4M9In/twTqn/70JzOvruvE4MGD63q7dKhbbOYNM27cOOOGx2vo+0CNHSNAAAIQgAAEIJB4AhqOi/Mz8WpEgIQSSHJP64QiJ9kQgAAEIBABATlA14SAAzQBWu5VN9nXH//4Rzv8ffny5XZ4u4a4N6krlbkJaiVGl7pJFS+99NK6laYbJ0AqkggBCEAAAhCAAAQgAAEIQAACEIAABCAAgeoTwFNWfcYVecLudSuu/K1uQiLN7+kcnM752bRuXM7QoUPt+Xb5Zt6vSEq4CQQgAAEIQAACEIAABCAAAQhAAAIQgAAEkkOAHqDJ0ZXpXrf6j3p+qheoFkfSwked62bV33jjjesWA2qdIElIKgQgAAEIQAACEIAABCAAAQhAAAIQgAAEakMAB2htOFf0KS3qJgPbdttt7V9Fb8zNIAABCEAAAhCAAAQgAAEIQCB2BD7++GMzbdo0my51hnHhiSeeMF9++aXd1QK2miaNAAEIQAACDQngAG3IhCMQgAAEIAABCEAAAhCAAAQgAIHYEHjmmWfMkUce2SA9F154YerY0qVLTcuWLVP7bEAAAhCAQD0B5gCtZ8EWBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQg4BkBeoB6plDEgQAEIAABCEAAAhCAAAQgAAG/CGgKtHPOOSevUM2aNct7npMQgAAE1mQCOEDXZO0jOwQgAAEIQAACEIAABCAAAQjEngBrQMReRSQQAhCIOQGGwMdcQSQPAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQKJ0ADtDS2XElBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgEHMCDIGPuYJIHgQgAAEIQAACEIAABCBQGwLffvuteeyxxwIfNnDgQNO6devAcxyEAAQgAAEIQCDeBHCAxls/pA4CEIAABCAAAQhAAAIQqBGBxYsXm9/85jeBT5s4caLp0aNH4DkOQgACEIAABCAQbwIMgY+3fkgdBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgUAYBHKBlwONSCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAIN4EcIDGWz+kDgIQgAAEIAABCEAAAhCAAAQgAAEIQAACECiDAA7QMuBxKQQgAAEIQAACEIAABCAAAQhAAAIQgAAEIBBvAjhA460fUgcBCEAAAhCAAAQgAAEIQAACEIAABCAAAQiUQQAHaBnwuBQCEIAABCAAAQhAAAIQgAAEIAABCEAAAhCINwEcoPHWD6mDAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEyiCAA7QMeFwKAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIxJsADtB464fUQQACEIAABCAAAQhAAAIQgAAEIAABCEAAAmUQwAFaBjwuhQAEIAABCEAAAhCAAAQgAAEIQAACEIAABOJNAAdovPVD6iAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAIEyCOAALQMel0IAAhCAAAQgAAEIQAACEIAABCAAAQhAAALxJoADNN76IXUQgAAEIAABCEAAAhCAAAQgAAEIQAACEIBAGQRwgJYBj0shAAEIQAACEIAABCAAAQhAAAIQgAAEIACBeBPAARpv/ZA6CEAAAhCAAAQgAAEIQAACEIAABCAAAQhAoAwCOEDLgMelEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAQLwJ4ACNt35IHQQgAAEIQAACEIAABCAAAQhAAAIQgAAEIFAGARygZcDjUghAAAIQgAAEIAABCEAAAhCAAAQgAAEIQCDeBHCAxls/pA4CEIAABCAAAQhAAAIQgAAEIAABCEAAAhAogwAO0DLgcSkEIAABCEAAAhCAAAQgAAEIQAACEIAABCAQbwI4QOOtH1IHAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIlEGgaRnXcukaSODFF18033zzzRooOSJDAAIQgAAEIAABCPhO4OuvvzZLly4NFPO5554zs2fPDjzHQQhAAAIQgAAEKkugf//+pmnTyrktG62qC5VNInfzicBBBx1k7rnnHp9EQhYIQAACEIAABCAAAQhAAAIQgAAEIACBGBP44osvzHrrrVexFFbOlVqxJHGjOBHo27ev+f77781///tfI+OLIjRq1MisvfbaqUcrPcuXL0/tJ32jcePGpmXLlikxfJdv5cqV5ttvv03Jm/SNJk2amBYtWqTE+O6778yKFStS+0nfUIvbWmutlRJDsklGX0KzZs1M8+bNU+L4Lp/ePb2DvgTpTjp0QXmDvqG+BL176a3ey5YtMz/88IMv4tlvp76hLqjXnU/t8srblce74Lt8S5YscaJ68auyp8qgLvgmX6tWrZxo9r3L1es1FSlhG+ny6bup76cvIbtu5Lt81I2SZbnUjZKlr+zU+l73wwGarXH2MwicccYZdn/PPfc0//nPfzLO1WpHH9EuXbqkHqcCzCeffJLaT/qGPjLp8mmKgTlz5iRdrFT6VYFPl2/hwoVm/vz5qfNJ35DzM12+BQsWmM8//zzpYqXSrwpgp06dUvtffvml0Z8vQRWkDh06pMT57LPPjIY/+hLatm2b0Wo6b948s2jRIl/EM+uss45p3759Sh4NTfXJSSHZpEMXlPf5VIlfd911TevWrZ145sMPP/SqAWn99dfPaOB8//33vWqA0LczvYHsnXfe8cqBrbzPNUDIMS/5fAobbrhhykGvhjHZpy9BDsL0spkaN/V98SWoYSVdPt/qRmrYTJdP+bpPU0+o8TZdPpXLVD7zJWTXjVSuVvnal6DGTX0/XfCtbqRyWXrdSPVa1W99CQyB90WTVZbjsssuMzNnzqzyU4Jvrx5LL7/8cupkmzZtTK9evVL7Sd9Qpv7aa6+lxGjXrp3p2bNnaj/pG8rU33jjjZQYqhD26NEjtZ/0ja+++sq8/fbbKTFUYdp0001T+0nfUIElvVKkAttGG22UdLFS6Z87d6756KOPUvubbLJJRqEmdSKhG3KYpVcaNttsM7PBBhskVJqGyf7ggw8yGlS23HLLDIdowyuSdeTdd9/NGH2x9dZbZzhEkyVNw9S+9dZbGQ0O2223XcaIj4ZXJOvI66+/njFv+k477ZTR4zxZ0jRM7YwZMzIc8n369DHpPXobXpGsI5r33o14kEOtX79+yRKgQGo1n6nrcS1H784771zgiuScVo/I6dOnpxIsh8wOO+yQ2k/6hhy6L730UkoMOSy22Wab1H7SN+TQ1ffFBTV2brXVVm438b+LFy/OqFdreO/mm2+eeLmcAHKWzZo1y+2ajh07mm7duqX2k74hh+B7772XEsO3upGc8ekNRhtvvLHp3LlzSt5ab4wdO9ak9+gv9/k4QMslyPVVJyAHxaBBg1LP6d27t7nttttS+0nfUAVwv/32S4mx2267meuuuy61n/QNFUCPPvrolBiSVQ51X8Kjjz5qhg8fnhLnmGOOMb///e9T+0nf0BzAZ511VkoMyTpixIjUftI3brrpJnPJJZekxBg1apT52c9+ltpP+sZVV11lVHBw4dJLLzX777+/20387/nnn2/Gjx+fkuOvf/2r2X333VP7Sd847bTTzAMPPJASQ7L65KQ44YQTzJNPPpmSb8KECWaLLbZI7Sd947DDDstowH3qqadsRTDpcrn077XXXhkNZK+88kpGj1cXL6m/AwYMSI3okIMwqo4A1eK37bbbpnpcqzf2s88+W61H1fy+6jyhBhUX5HyZNGmS2038rxqnf/SjH6Xk2H777c2dd96Z2k/6hpxLQ4YMSYkhWW+44YbUftI35Lw+/PDDU2LsvffeZsyYMan9pG888cQT5pe//GVKjCOOOMKce+65qf2kb9x///3m9NNPT4lx4oknmpEjR6b2k77xz3/+01x44YUpMSTrz3/+89R+0jfqJyZKuiSkHwIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIBAFgEcoFlA2IUABCAAAQhAAAIQgAAEIAABCEAAAhCAAAT8IYAD1B9dIgkEIAABCEAAAhCAAAQgAAEIQAACEIAABCCQRQAHaBYQdiEAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAF/COAA9UeXSAIBCEAAAhCAAAQgAAEIQAACEIAABCAAAQhkEcABmgWEXQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQMAfAk39EQVJfCXQsmVLM2TIkJR43bt3T237sNG2bdsM+bbZZhsfxErJsN5662XIt8MOO6TO+bDRqVOnDPl69erlg1gpGTbaaKMM+bbYYovUOR829D1J/75069bNB7FSMkhf6fJ17do1dc6HDX0v0+Xr2LGjD2KlZND3cuXKlan9ddddN7Xtw0bfvn1Nq1atUqIoP/Qp7LrrrmbDDTdMidSiRYvUtg8bAwcOND179kyJ0qRJk9S2Dxt77rmnWbhwoRWlaVP/qkx77bWX+e6776x8bdq08UFlKRkaN27sdd6gb0l63rfpppumZPdho3Xr1hnybbXVVj6IlZJBeXm6/nbaaafUOR82OnTokCGfb3XbLl26ZMi35ZZb+qC2lAz6nqTb52abbZY658NGo1V1wQdBkAECEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAQDYBhsBnE2EfAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQ8IYADlBvVIkgEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAQDYBHKDZRNiHAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEvCGAA9QbVSIIBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgkE0AB2g2EfYhAAEIQAACEIAABCAAAQhAAAIQgAAEIAABbwjgAPVGlQgCAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIZBPAAZpNhH0IQAACEIAABCAAAQhAAAIQgAAEIAABCEDAGwI4QL1RJYJAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAAC2QSaZh9gHwIQqD6BFStWmObNmxf9oIULF5pvv/3WXtehQ4eir4/LBV988YWZPXu2WbZsmdl8883NeuutF5ekVSQd33//vXn11VftvTp27Gg6d+5ckftGfRPp64MPPjDvv/++kS1utNFGZuONN7a/TZo0iTp5FXn+4sWLrYySVe9Yly5dSnpXK5KYPDfRd+Dpp5+2MXbYYQez/vrr54m95pxauXKl1Z++Ly1atDBbbLGFWXfddRMFQDY4d+5c88033xhtL1261MrSqlUr07p1a9OuXbvEf1Nkv/PnzzfLly+3f/pmOvn0u8466yRKZ2tKYr/77jvTtGlT06hRo6JE1nv51Vdf2WukX/0Rak+Asidlz9pbXflPXBPKnsoDVW7RX5s2bcyGG24Y27rRm2++adOpfLpPnz7lK9iTOyiP+/DDD21et8kmm5hu3brZ/DIp4q0JZU+ni0ar6oLb4RcCEKgegSlTppiJEyeaWbNmma+//to6jrbaaiuz7777mu222y7Ug8844wwzdepUG9c5P0JdWKNIKlzPmzfPVtDbtm3b4Knvvfee+dvf/maeffbZjHNygB522GHm0EMPLbpilXGjmOzIcbHXXnvZ1BxzzDHmF7/4RUxSlpmMF1980UgnCrJDOYyCgiq9//znP80//vEPo0JadpAj9KSTTjI/+tGPsk/FYl/v22OPPWamTZtmhg0bZrbeeuuMdKlyfscdd5h///vf5ssvv8w4J4fTbrvtZg4//HDr6M04GeHO559/bg488ECbAr0/F1xwgdl2220jTFF1H62C2dtvv20+/vhj6+zdaaedGjhRJk2aZG666SYzZ86cjMR06tTJ/Pa3vzX/8z//k3E8TjtqFLr77rvNCy+8YPOIQkUzVTyk7969e5u9997btGzZMk7iBKbljTfeMPfdd5+ZMWOGdfDmk1FOXr2n22yzjRkyZEhsK4KBgnp2UN/PG2+80TbqqXKnfKJnz55mxx13tPn2WmutVVBilXuOP/54G++4446z3+GCFxGhIgQoexpbzqHsWRFzqshN1pSyp2BJVtXX1Nh35plnNuCnMvhf/vIX89prrxmVtdOD6oj77LOP/WvcOD6Ddi+99FLz4IMP2qT+9Kc/NSNHjjTNmjVLT7o32z/88IP55JNPbLlM+lGnHTWsp4fPPvvMjBs3zjz66KNG8V1QY+Gee+5pTj311AblVRcn6t81oewZxBgHaBAVjkGgggTUcnn55ZebyZMnB95VPSmGDh1qTjjhBFOoIhFXB6icE9ddd52RA0JOUGXUvXr1MoMHDzYHHHCAlVuZ/PDhw22vpkAQdQd33nlnc/bZZye+spsUB+jo0aPN/fffb9Uhx0RQT1w5tE8//XTbqy6X3txxOZguvvjiWLV4ytly7rnnphybf/rTn8z/+3//zyXZyqXz6tmaL6jHtuzX2XO+uLU4l+4A1fNU0FIhVI5sn4Kc03JqygGf7jBTD4lf//rX5ic/+YkVV+dVAM0XpDsxKrb3Wr57VuLcv/71L/P3v//d9ogv5X5yFqqh5eCDD46dbJJHDpjx48fbCkQp8qlipQYlNbKoQYJQOwLPP/+8ufDCC1O9N7Of3LVrV3PWWWcVbMTFAZpNrvr7lD0pe8a18X1NKHtqlMNVV11lJkyYYF/2zTbbzNx8880ZL/71119v88agjgXpEdXYed5559lRSenHo9pOd4AqDarvKZ/wbSTSO++8Y/74xz+ajz76KAO16qrnn3++7amrsrjqBtkN7+kXaCSg+KjhME7B97JnPtZN6l6o8/JF4BwEIFAegbFjx6YyQN1JvSc22GCDDEfgzJkzbSVxl112sR/UXE9ULza1RCmoJ1scgjL53/3ud7aF02XiclSoRUw9Pdu3b2/UiqkWMB1TkKN3yy23tK1oukYOVAVlIO+++27KqWEPRvjv008/NQsWLLDDvTXkO+yfehG6Qs+mm25qh1FnXyunRdRBvYlVMVVQD9y11147I0nS46hRo8xbb72VOq7Wz379+pkBAwYY9ayT400tiAriJedvXHraSbaTTz7ZLFmyJJV+vWM9evSw+6ognnLKKRmFG8mnIeXqlS0nm4Yfq+Vedip71nQG7vrUTSPYULpUeHFBrc7S5+uvv257zQX1wHZxk/Ir56ecnGpVzw5qaHnmmWfsN0Q91NQD1gXpTvap747s0313ZMcqoOvbE5cgx6cct5JVQY52DZ3S9AuyO9cjRN9MffNle2qokFPQDSlWvOeee84OKe/fv3+snKD6Dqrgn96zWrLIcaZ3TfLoV3+aTkPvl4ZH632TXAqybb3Lev+kV4ZPWyxV/6cpCvT9dPmzHqiKnPTh7HXRokXm4Ycfto2e+m7mCtL/Aw88YE+r56j+CNUlQNmTsqem8KHsWd33LNfd1bCeXnZR3U+dXVxQ3qh31DXsulEdGlIuvaXn8SrDqCfp//7v/8aip+V///tfOyLHySInoHqEqg6h8lXcGpldOov5VfnyN7/5ja0DZl+nuurLL79sR9/84Q9/SNWjVDZT/UflMJU19e6pHKM6iPSnDgoqk8Yh+F72LMQ4HloolErOQyChBNR6dM8999jUyxGonnS77rqrrSzIUaQKgYYV6+Mox+aIESPM1VdfnZj53VRJPeecc+zQDQmp3jmq0MqxJEemzqsFVJUk18NOwwHUCyvdQSMH8EUXXWSHt2oIqHqSup5dUapelT/nZCg1Heph6XpZpt8jjlMYpKdP2xqS+8orr9jDmkdRw4jTe0+6+C+99JIZM2aMdSTqGhWA3BQALk4UvxpWJBtUUMHxyCOPtHPyuLRcc801qQYFtc7Lka8ht+lBjra77rrL9kKUs//Pf/6zdQDrfY5LUO8AOStUSFaPLfUG1N8RRxwRi8JyqZw0JYGGhSloiLemIpCDTMPgH3/8ceuEufbaa61TRnHkNFQP8mznyvTp0416/updVk91TdUQB/09+eSTqR4hcgiqF4Hyh/TKg5y2bnic5hVWD2s31ExzhanSoT85gR966CE7d+avfvUr4Yg8qOen3hcFOT3VA3ePPfawzs4wcwarUiXd3X777fbbormHf//73xfs6Ru54J4kQGUR54TWaA6VT/TeqMIuu9S7pG+/9m+44QbrrHfD3D1BkFgxKHtS9qTsGd3rq3rMU089ZRMgp5hGL6SXndVZQPm6gkbMHXXUUeboo49uMA2V3uMrrrjCloM0ik5OK5UT4hRUp1PnHNVjlVaNdlRZWo2aSQ3qYKBeyq6hT9PxaNolNf6psVm60JQ+0qF0rbD//vsblb3SpyMSE9WB1Ugop+ktt9xiR3tGzcX3smcYvgyBD0OJOFUjoLlNXOtXpR+i+TajDqr8ycmpyp4qCEE9x9R7TpmFPqgKmvhaFYughTviNgRejko5FhTkYFJrmetFKGfDaaedltFKqJYxVyG2F6X9Uy8TFQDUU0QtZ/fee2/a2Wg299tvv7IdoLlSHgcHaKFhSBo+5Xp/ylm4/fbb5xLHtpIee+yxllfQUJ+cF1bphN4npUdBcwhqmGZ6kGNUNiunpir1Kpjkc4qpgKehMAqarkK2GmVIHwKvVmWlSb0gVThzQT105fSV/KUsuubuE8WvCo5ymKkxRXPMahoRfRtdkH7VO1SNKwqqRGiOt1xDjFRIVcOLggqpmtM16qC5ENVQJPmUP7hvZ3a6VOhWD3r1OJATWEOv0oOc33JOaeEkOUfVM1ijDKIOBx10kHXKq0KgipGGyZUS9I4q71MPCgXJLw5Rhttuu80OXaxGGtRwofc2yqByiZvuY9CgQRk9rNPTpQYvVfBcOe7EE08MTHvchsBT9jR25AZlT2N7OFP2TH+rq7/tc9lT9NRQJweoGv7ktNSojvSQPmVPoTmRlf/pu6qygjqZqG6Ua77+9GdUczt9CLymz1JHCR1TeU1Bjbhq7FRDvBYCSlpQeUx1AoVf/vKXNk9zDdNyisrxmV5H1cgUNU4HBeWNKquKkcpCchC7ewXFr8Ux38ueYRg2DhOJOBCoFgFVXqv1V600F3PfD+sWDFBQC1mQ81Pn5OxTLyY3fEyVWPUUdRmJ4sQ1uOEdcnhpcu/0CrwcuCrkqADgQr6WSzenn+Kq8qWh51GHn/3sZxmOI2Veu+++u83Ylbnn+ktv6dUQ+KB4UctW6PlyEKrHlYJkzuf8VBw5D5XJK8juVWiLMqiXoAvqyZsdNKePS6MqP/mcn7pW77BagBVcr1i7E5N/Gj6lxgXJ6lqgNX+rHIdaXEy9WF1vrpgkOW8y1GPcfQP1bUl3fupCfXPUq8IF9VDL5fxUHM3ZpD8F2WfUQQ0LqtAoaJqJ9G9ndtrk3FUcBfWqVI/59KBhyeqtJ+enhsy7UQfpcWq9rd7IbuoB6a9U56fSrTxElQv18FXQ0LSog3qGV6vs4r5LUcqYPudZ+nuWnSY5udUw5Ib1qfHWlQuy48Zpv1q6033jENw3jrLnam1Q9qwvr8bBPvOlIellT8nmyp9aICjb+anzbuopldtUz8gXlP+pAVRBIwddZ5l819T6nOo4chq6eoKcfuo0IAeonMFO3lqnq9TnqXengsqM6p2b7rBUXqcGZ41GckH7uYKuVQcFBZVpXbkoV/xqH/e97BmWH0Pgw5IiXlUIyPGnio2b11IPkeNMFT4fgssEC805pznN5CzUfISq3Cqz0NDySy65xPYejSsLN6xdzgdXAUpPq5xK6mWnXrByymiOt3whfeiq7l3IKZXvXpU4p1W2lSb1OJKzQpmXCiDqTSjHda6gOG74i5yhcZ2IPlf6dVzOM1XyFTSXYpjgHIQqwGroTvZw8jD3qFQcpV9BzqH06Rbc/dXQ4EL2qvDuePavhppryKe7d/b5qPdV0NJcriqM6tv6n//8xyZJDQpqsdaE+xr+rfdVBbugdzZqGdzzXQVeDSOa0zMo9O3bN3U4jI3qO6yeoO7eqYsj2HBp0HcxjP2pN68cgCo8ywma7VCUneuYnPOu4SICsVKP1Fy0CrIxDesvN4iT9K3h/unlhXLvW+r16kGs7/ydd96Z6v2oiqrstdyQzxle7r3DXu/KLpInvaIXdL1646rMprnQVPHVdDbKH9Pz86DrojxG2XM1fcqeqzmk2yplzyjfzOSXPUXPlRFzDQN35U+VScJMB6PyjeKpbK17Z+f/0Wps9dNVv9NIsUceecTOberm/VZdSH9qtFbZU40yKq/EObjyWa6yixqb9c3QsHbVLwrlkbIDlc+VP+r7EqX8TjZfy55h7QoHaFhSxKsKATkUNGxRcwu++eab9hl77713qrWkKg+t4U3d/CFhhiuo8iSHp4Y6aG63adOmmSuvvNKyqWGSi3qUJnhWyDfc0jl/9bFNb0ULepAcnhqqK8ebhvjGIWj4hhYpkfPojjvusHPSqVVTQ8fUM9LXkO58Tt/OJ68WdnL6UyEtSgeoJpFXkPNP0ytkOyacXeaTJ/ucmw82LI/s62u1r/fxvPPOs3MSaRiPm6NIDnwVTvUnXcmh1L17dztESb8qlBV6R2slg5xLCvmcQfqmuJCtX3c8/dc1rGl+p6iDsyV99126CqVJMsoBqkJ3UFCBXA5QzS8WdXC9HFQ5CJP/hUmv5lJTiEMPSelNvco0skONuJqmQHIqn8jXOBZGzjjEcWUXyRkmDBw40PaKUUOLrlWvH/UGLdToGebe1YhD2bOeKmXP1SNYXNmFsme9bUSxlV6+St/Ol5Y4lT2VTpU/1VMzV2OkRqu8/fbb+UTKOKe6lpyfCmGZZNyghjs//vGP7WKFmopHU6S4eqJ46E/5gr6/avhV/Uplz03rRsqll+dqmNzAR7nyZ74FF116w5Q99RCV86RDN7Ip8ME1OOh72TMsQj+62YWVlnixJKCPh+YHc8MEbr311tRcX7FMcBGJ0sIWCh+GHHKpTFxDVvWroLlV5HSLa1CvJIV8FW5VgFRx1UfXZSq55NFcdq7XoXNg5Ypby+Nq7dO8gZrrTL2w5FDTCo/qGVpIplqms5LPkuPJtVJmD7nN9Ry1asdFf244tAocWrEyO8hJ4WzMDXfJjpO+r5ZbrbKuUIrzNP1etdrWtBr6tmoOKvUKTXe0adEcOUJVGNX8ilqdVL21Nd/RE088Uask5nyOc5zom6C0BoX0CkSuikb6dZpDU0GF7aiDk0+y5XJopqdRTiU3LDlXgds5BvMV2tPvWc1t927pu+96u5T7PKe/XL1qyr1/KddrsT414Cqooqd5eOUMTXpwZRc1IIXN4/QNOeSQQ6zoyiM1B3gcprLJpQvKnvVkKHtS9qy3hmi3kl72FD1X/nQjwbKJuqHiKsM4x2Z2nPR9V/bUsS222CL9VCy3pUPNM6mFLDV8P3sKIy1uKQepOv1oeLicppqqSdPlxCG48lm+ofuu/KnyW6HppSSv03PU5U8nm69lz7D2gwM0LCniVZWAKmz68Lku4qpEaBGMpAdXiZCjIezcUKo4KlNwi5ZoqJYWG4pjcE5rLTiVq1eVnDBy5Go+GNdilksWzVPoQtSZhEtH+q96WN188812CIeOa64zzd/jFudIj5u0bQ3xdw4Ul3bNX6Qg+eQALBTSnfUuky10TbXOy1HteoypF6Qq8tlh0KBB9pAaXVwrdXYct69FT9yQHle4defi/qsCs3qE6j2Us6Z3796Bw67UMi1ncBhnYrVlTn//NawqO8ghqNEDLuhdzJdnyAnnRhmk39tdX+vfdCdekHzZ6VFFwvXKC3LA65xz9Ef97intbsiXtjWSwaVd+6UE5TGvvvqqvTRu758WIevXr59Nm6bI0LD4pAdXdpEc6sUTNmgOYvUGVVDFUCMlwjpQwz6jkvEoe9bTpOy5mkUc8od6razeouyZTSRzP05lT6XMTWujcofKjtlBZTB9e+SEUvkzX1AjsJyFCvouayGkpASNitA80dKP5inXdq4REsovXBkmavncN2DChAmBHZi0iK0rj6hupHj5wuOPP25PaxqD9Lw13zXVOud72TMstyZ1laLzwkYmHgSqSUAOCzkJVQFXRVzOMtdKVs3nVvPecmLK8afWITmY+vTpU9AJqPSIhYYGaK43BS36oI+shua43pbDhg2z56L8p56R+rDL8SC9aV7BXL2PNBdceg+07HTL+SlHleTUfVSpjGPQcDE5zpSJyTGoAowc1GIgZ6/kVC/I8ePH2+TLhlXYiWNQq7Jr4ZSTXmlW7z85iuQw1PBOZfTaloM7fc7FdHmkMxXQtLKlggrr++23X3qUSLbV6iz71HdFckhnWnHbBaVTQ3LEQEOHNdek633t4shxo17ZTp9yLqmSL9uPMkgfrlAsh1j//v0LJkffVDmP1Gtt//33t3O76lujhifZsWuhFhf9RRnUO0t60XyP0pFa2zU/tPQxY8YM2/tax1QZUIFaUy5o6pBddtmlwdymOq5J6uWIkazqzZ1v2o5ayK1067uuHpKab1E95vStCLIrVQo0R7R6Fir9miYlfRic8hctgOUaYjQ/Za5F92ohm54h+aQTzQUsHUpXSlN6usOkRY0yciiq972C3k/NlZ0rnwlzz2rEke5UCZJ9apEBraAepMtqPLsa99TUBZqGR99+9V7Rt1NDFQsF2ae+RbJFlVfUaCQ7V2Op6w0Vh+9LuhyUPetpUPak7FlvDdXb8r3sqfrb9OnT7fdTUxCpfCWnqJsORj0kVd5U/VCNZjqueT6z60gafaX8Tk5QBS1IF4ceoCqTuB6Qmnde8uQLyhc0YvB//ud/bE9P/W5aNxJH+bjKsumN13Go26p8qPnGVSZW47rSqfKzypL333+/LY+o3qOyt/I4V39woyLTWWhaHNe5R+VTjbSKMvhe9gzLtlGdAgt36wl7N+JBoEwCcnyqR51azVQA10ej0Ie1zEdW/fKRI0em5uBTpX7AgAH2o6mWsEJBH1pVfF1QJuJeWTl04hDkWNDHX0HOQTn7lIEF9VLKTq8q/3K8abEWVRoV1EKmXpbKHOMeVChRb2U5ZBSUZi0EoQmx99prL3tM84XGdREkOfbUKzBs0Lxucp65oF6T6h2kCq4cHQoqwGnIddQOGJfGv/71rxkt8HIAqreWnNWq7MlmNZWBWnPlvJaTV4VXBRU+5Qx2PWMVV4UZd949I4pfORe0SJeCGgs03LScIOea9KnCnAp72UOWyrl3qdeqR8DRRx+dmlYh6D7HH3+8zSM096CC3j19WzXhvuTRt0kNSaqAKMjx64Ys2wMR/lNPW6VfK7crqNA9ZMgQ6yySo1COQ1Wi9H65IB5uRVEVzi+77DI7NYOTT99d2ajyiqiDnGfKH1yjndKjb6TePfU20xQbyt/1Xum7r4YjvWsaNq1vqxzg+ra6ypHiaEqHqJ3zubjee++9ZsyYMfa0ppLQ6rFJDvomqrHHBc3bpnmdlbcV+gbKHjX0UY0XCullFw2NjEMl18mlX8qe6TSMreRT9sxkEqc9yp7xL3tKRz//+c9To4tUrlLjkBYLVS88rQCvxQJVh1BersZ5fWNVhtF0Nyp/qgzkgsreKoPHIVx66aXWQai0qA7hRluVmjY14qo+qDJDrkUvS713qdfp+6c6eK6g+rw6Rshn4aZ60RomqgOrUV51h+effz5V/1c5R51E4lC29r3smUtn6cdxgKbTYDsWBPTRd/OdaJEZVWSTHJSBadXw9GGlqgS63nKFZHvooYdsJdf1znLx4+IAVaZ19tln214iLm2qBKq3a6Egx4RWu3dBFdxf//rXKceOOx7nXzmONMTlhhtusIUYyaAWUddjMM4OUKXd9c5SD2U5MfXnnCnZ3DVX5D777JM6rGtUmU0Pcav4673R0Jt77rkn1XiQnt6w2yq8qPCpFY/jECrtAI2DTEFpUM9yOajV8p4dpAvNxSvHmRakcT0SsuO5ffXe1bB5tYDHJaiALade9vc9KH3qZajh5HLUu6AVVZ2DXr3stAJ3HIbAu/TpWzJq1KiM/MGdK+ZXlQ01JmoV2bgGNU4qL1CPFvVU1ZyYSQ8animHuvIKF/Q+hvkOque9hsC7qSfc9XF0gCptlD2dhlb/UvbM5BG3Pcqe8S57yl70TbnwwgszGgFLsSPl/XLIuR6kpdyjktdU2gFaybRV6l5qmFZ50Y20Sr+veoOqA4kc1uohqjwxX1ADoMovGhkSl+B72bMQZxyghQhxHgIVIKAKqubyfPjhh+1weA3xVqU3bJDzVB9bN+eIrouLA1Rp0bC/m266yQ4F1+q/+rBquGqhoB4+6gGloBaz8+pm5FBGn8QgWZQJajhreoizAzQ9nenbaoV1zlA5OeVYkgNKzpf04fyK5zJ09diWI1xDPOIYpB8VZNSbTr19wgZNY/GjH/3I9uJ1C7uEvbaa8dYUB6gYSl/qKS4dyg7VU1IOmF133TXV01Et8GpMcb3Rs9nLTjX0PS4ViPT06R3TEHY5e4OCekmqF7l6/GYPkdPCAfr+at5FxVHBPI5Bw6nlHFQeFsbZ62TQ0Gs1hB588MFFD5939+C3PALSmezzw/9bzHHs2LG24hfmrrJNTWGg8oFbKCKuDtAw8iQtDmXPYI1R9gzmEvVRH8ueaqBVA7ymynI94sNyVqOm8j5NKRWHUR0u3WuCA9TJql66zz33XKqBXb13VZ5M7/Wq6W9Ux3ejVdy1+tWweHWe0MiXuIU1oeyZizkO0FxkOA6BKhBQZUAFL30kc82nmO+xykA1zE4VkcmTJ+eLGsk59YBRJb5Xr16hnq85+eSUUm9RzY+T3rMp1A1iFslVNqQjF5LoAHVpT/9Vrybpxy3OpXOyZ/UOkv7UEqpeknEPqoSrQPPBBx/YP/VQk4PNySdnk3oIqpe25rzTcCUNXYpbUHrdvEIa9qw5lQjGaKVwzbmlnvfqNaipGPQ9ivtIAvXm0bdT33b9aU5Q9eRUBUjpzzV3phqcNJVDUoK+kcoD9ad3T3mA8kN9S+SclgNXsrr3Tw5QQjwIyDmhBgaVXdTgVUyQnY4bN872BNYQ+mOPPbaYy4lbJgHKnpkAKXtm8ojzniubJb3sKcbqIKG8T+VPlVGU96n8qd6GyvtU/lQDr8orqhPFZSqpbPvQKE037dUhhxwS24bX7HRXc19lNjXUa/oCTb+kaWLkLNWUPdJrXMOaUvbM5o8DNJsI+xCAAATKJKDeTq6HrnpEat5XAgQgAAEIQAACEIAABKpBgLJnNahyTwhAwDcCOEB90yjyQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAikC9TPppw6xAYH4ENCQK02kr2GrGjqnIRAajqo/DcFKwpDbfDSRL/5DptGfn++fvidapVPfFv1pXkJ9VzT8Xb9aoTPJAfnQX5Ltl7RDIEoClM0om0Vpf4WejX1in4VsJMrz2Gdy7dP3uoN7L3CAOhL8xoKA5nrRPJeaR0ML/+RbrESrbWuOPs2TosUwNNQ4TpNEBwFFvnoq6K+eRVy2fLdPzbF43333mRkzZpi5c+fmXRVeqzjr27LNNtuYIUOGZEx4Hhd9ZacD+eqJoL96FmxBAAL5Cfie9yFfvf4pe9aziMsW9lmvCeyznkVctny3T9/rDkF2xBD4ICocqzmBr776ytx8883W+ZnP6ZkvYZpw+MQTT7TO0HzxojiHfIWpo7/CjKoVw3f7nDJlihk/frydfL4Uhs2aNTNauOOkk06yPURLuUc1r0G+/HTRX34+nIXAmkrA97wP+QpbNmXPwoyqFQP7LEwW+yzMqFoxfLdP3+sO+ewCB2g+OpyrCQGtnDZ8+HDb4zP9geutt57p2LGjUU8eDXXX8HcNU1X3bLXGaFXRefPm2dXz3HXqAap7aVW6uATkQ3/OFrFPR6J2vxMmTDCXXXZZxgP1PenUqZNdbVOrM+rbolb3FStW2O+LCj0aHr9gwYKM69TjfPTo0fa6jBMR7iAf+nPmF0f7dGnjFwJxI0DZjLKZs0nKZo5E7X55/3j/nLXx/jkStfv1ve5QiCQO0EKEOF9VAurtOXLkSDNz5kz7nJ49e5pDDz3U9O7d27Rv377gs1euXGnUdXvy5Mlm4sSJ1kGqi+Tw0JD4qAPy5dcA+svPp9pnfbdPtW6ee+65dqi7nJ4HHHCA2WOPPczmm29uHZ6F+H7++edm+vTp5vbbbzcfffSRjb7VVluZcePGFbq0JueRLz9m9JefD2chsKYS8D3vQ778lk3ZMz+fap/FPvMTxj7z86n2Wd/t0/e6Qxj7wAEahhJxqkZATstLLrnE3l+OiXPOOcc0bty4pOc9++yz5qyzzrJOUPWEuemmm0q+V0kJCLgI+QKg5DiE/nKAqeJh3+3zoIMOsj3FW7Zsaa644grTq1evkmiq1/kZZ5xhXnzxRXv9+eefb3bbbbeS7lXJi5AvHE30F45TJWPddtttdtqJSt7T3euII44wRx55pNuN5Bf5SsceB/35nvchX3j7pOwZnlWlYmKf4Ulin+FZVSqm7/bpe90hjB2U5mkKc2fiQCAEgddff93G2myzzczZZ59dlsNSPT5PPvlkez8toKRFTqIOyBdeA+gvPKtKxfTZPjVFhv4UzjzzzJKdn7pevUcvvvhi06FDB+2aZ555xv5G+Q/5wtNHf+FZVSqmppNYtGhRVf7k0I46IF/puo2D/nzO+/RuIF/4LwRlz/CsKhUT+wxPEvsMz6pSMX22T9/rDmFtAAdoWFLEqwqB1157zd63f//+pmnTpmU/Y9CgQal7fPLJJ6ntqDaQrzjy6K84XuXG9tk+XQFG35Vdd921XFRGvUj79u1r7xOHbwvyFadS9Fccr3JjH3744XY6G83t5YIc0euvv37Zf5q3N+qAfKXrMQ768znv07uBfMV9ISh7Fser3NjYZ3EEsc/ieJUb22f79L3uEFb35Xucwj6JeBAIIOB6aLmeVQFRijrUtm1bO7efWyypqIurEBn5ioOK/orjVW5sn+3TySabatGiRbmo7PVamE0hDj2YkM+qoqh/6K8oXGVFlrNTCxL26NHD9p7+4Ycf7Ht4/fXXWwdoWTePwcXIFwMllJEE9/2k7BkOImWzcJwqFQv7LI4k9lkcr3JjY5/FEYyTfTrd+Vo3CqsZeoCGJUW8qhDo0qWLva9rkSj3IbqPnJ8KWugk6oB8xWkA/RXHq9zYPtunk00ruldqOoyXX37ZIo/TtwX5wr8F6C88q0rF/MlPfmJ++9vf2tstXLjQXHDBBUbOUF8C8iVTky5/oOwZTn+UzcJxqlQs7LM4kthncbzKjY19FkcwTvbpdOdr3SGsZnCAhiVFvKoQ2HLLLe19H3/8ceMqp6U+aPHixeaaa66xl7dp08Z07ty51FtV7DrkC48S/YVnVamYPtunnJRu+O2VV15ptKpmOUGTor/66qv2Fj179iznVhW5FvmKw4j+iuNVydj77ruv6devn73lSy+9ZO68885K3j7yeyFf5CooOgE+532CgXzhTYKyZ3hWlYqJfYYniX2GZ1WpmD7bp+91h7A20OS8uhA2MvEgUGkC3bp1M/fee691Tjz11FNGjkstiNSkSZOiHvXOO+/YFeTffvtte92hhx5qevfuXdQ9qhEZ+cJRRX/hOFU6ls/22bp1azNv3jwj29Kcnfo2aDhu+/bti8Ko4e5y2Fx11VX2unbt2plTTjnFtGrVqqj7VDoy8oUjiv7Ccap2rO23395MmDDB5vVvvfWWOeCAA0yzZs2q/dia3R/5aoa6Ig/yOe8TIOQLZyaUPcNxqnQs7DMcUewzHKdKx/LZPn2vO4S1hUar6kLYyMSDQDUI3H777Wbs2LGpW2uxih133NE6K9SLUw4LzbfVvHlzO7xdq68uWbLErvA8e/Zs88orr5gPPvggdX2fPn3M6NGjy1pRPnWzCmwgH/rDPivwIpVwiy+++MKMGDHCfPrpp6mrN910U7PDDjsYDQPp2LGj0YIc+r6o0UXfFjnMFixYYObPn29mzZplZsyYYb83uoHiXHHFFfb7lLphhBvIh/7ibJ/Zr4YaO8eMGWMP//KXvzRHHXVUdpRE7yNfstRH2YyyGWWz6N5Z3j/eP96/aN4/3+sOYajiAA1DiThVJ6DhiaoYyQFRTtAwu3POOcdoct84BeQLpw30F45TpWP5bJ9ff/21GTVqVGpV3FLZqXf6yJEjzeDBg0u9RVWuQ75wWNFfOE7VjKX29ttuu80sXbrUqCf10KFDq/m4mt8b+WqOvOwH+pz3CQ7yhTMRyp7hOFU6FvYZjij2GY5TpWP5bJ++1x0K2QIO0EKEOF8zAup1ddddd9kCmybnDRs0jE6Zwz777GP69+8f9rKax0O+YOToL5hLrY/6bp/Tpk2zzhfN4+kWSgvDuGvXrmb33Xc3Bx98cNHD58Pcv1JxkC+YJPoL5sJRCEBgNQHf8z7kC7Z0yp7BXGp9FPsMJo59BnOp9VHf7dP3ukMue8EBmosMxyMloFWbZ86caYeuari7/tRrpGnTpkZD5DX/nobHazir5vXTMNYkBeRDf3G2V5/tU0PcNbRdf2oB/eabb+z3RYsktWjRwn5fNO2Gvi3du3c3cqAlKSBfS+uoRn9JslrSCoF4EPA57xNh5KPsGY83LTgV2Cf2GWwZ8Tjqs336XnfItiAcoNlE2IcABCAAAQhAAAIQgAAEIAABCEAAAhCAAAS8IdDUG0kQZI0hMH78eLuiswQ+9dRTYz0stRSlIF8p1OJzDfqLjy6KTcmcOXPM3/72N3uZFkrSStU+BeRLtjbRH/qLMwHf7ZO8Pc7WVzht6K8wozjHQH9x1k7htKG/woziGsPHvL1xXGGTLgjkIqA5/B5//HH7t3z58lzREnsc+RKrOptw9Jdc/S1evDj1bXnjjTeSK0iOlCNfDjAJOYz+EqKoHMlEfznAJOQweXtCFJUjmegvB5iEHEZ/CVFUjmSivxxgEnDYx7ILDtAEGB5JhAAEIAABCEAAAhCAAAQgAAEIQAACEIAABEojgAO0NG5cBQEIQAACEIAABCAAAQhAAAIQgAAEIAABCCSAAA7QBCiJJEIAAhCAAAQgAAEIQAACEIAABCAAAQhAAAKlEcABWho3roIABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQSQAAHaAKURBIhAAEIQAACEIAABCAAAQhAAAIQgAAEIACB0gjgAC2NG1dBAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACCSDQNAFpJIkQyCDQqFEj06RJE3tM274F5Eu2RtFfsvXnvi2NG/vZPoh82GecCWCfcdZO4bT5rD/y9sL6j3MM9Bdn7RROG/orzCjOMdBfnLVTOG2+5e2NVtWFwmITAwIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIBA8gj42cUleXogxRCAAAQgAAEIQAACEIAABCAAAQhAAAIQgEAVCDAEvgpQuWX5BNQx+dNPPzULFy4033zzjVm8eLH5/vvvTevWrVN/nTt3NmuvvXb5D4vgDsjX2qC/CAwv5CN9t099T+bOnZv6tixdutS0aNHCtGrVyn5f2rVrZ+0zJK7YRUM+9Bc7o0xLEPaJfaaZQyw3v/jiC7No0SKzfPly8+2335rmzZvb/EF5RNu2bc1aa60Vy3SHTRTyob+wthJFPOwT+4zC7sI+02f7VH43f/58m/cp/5PvxdWN9LvOOuuExRTreDhAY62eNS9xTzzxhJkyZYp56aWXzNdff50XgObo22yzzcx2221nBg8ebHr16pU3fhxOIl+9FtBfPYu4bPlsnyqw3H333eaFF14ws2bNMoVmf1Emv+2225revXubvffe27Rs2TIuagpMB/JlYkF/mTyi3sM+MzWAfWbyiHpPjWCTJk0yjzzyiHn//ffNsmXLciZJc6F1797dbL311mbXXXc1u+yyi9H8dnEOyFevHfRXzyIuW9hnvSawz3oWcdny3T7feOMNc99995kZM2bYziH56kfqIKK8b5tttjFDhgwx6623XlzUVFQ6mAO0KFxErhYB9fa89NJLzSuvvFLyI1QQ/dWvfmU22WSTku9RrQuRrzBZ9FeYUbVi+G6f//rXv8zf//73vJXafGyV4R9zzDHm4IMPjmVFF/nyac8Y9JefT7XPYp/5CWOf+flU8+xXX31lbr75Zuv8zOf0zJeGbt26mRNPPNE6Q/PFi+Ic8hWmjv4KM6pWDOyzMFnsszCjasXw3T7V4Wz8+PG2U0gpDJs1a2b22msvc9JJJ9nRc6XcI6prcIBGRZ7npgioq7UKj+oh4oJaFDbccEOjj8+8efPMDz/8YE/JSdazZ097TMffe+89O0zeXdemTRtz5ZVXmi222MIdivwX+dCfM0Ls05Go3a8cn6rguqChjF27djXKuOX4XbJkiT2lIY1ycmraDX1b5syZY9599113mf1Va+cZZ5xh4rRCPPKhP2ek2KcjUbtf3r/kvn+aimH48OG2x2e6xaj82bFjR9twonxBeYaGAWpooHoCffbZZzaP+O6771KXqQeo7nXIIYekjkW9gXzt7FQF6M/Yhlvss7ZvJO8f75+zuDjmDxMmTDCXXXaZS6L9VX7XqVMns8EGG9gpBvXtVI/kFStW2PxPPhn5NBYsWJBxnUZEjB492l6XcSLGOzhAY6ycNSFp6mY9bNgw62iQU+GnP/2p+fnPf27at2+fEl+FzjvuuMPceuutthCqF3bnnXe251euXGmefvpp8+CDD5rp06fbY3IyyeHRoUOH1D2i2kA+Yz+a6A/7jOIdfPLJJ83ZZ59tHy2npyoAakRJH6741ltvmb/85S/mtddeM/369TMXX3yxdY7qotmzZ9tvi74vbkqOww8/3PY0j0Ke7GcinzHo70Fro9hn9ttR/X3ev+S+f+rtOXLkSDNz5kxrKGpYP/TQQ+2UJ+nlz1xWpLKnhg1OnjzZTJw40ZZNFVflUw2JjzogX34NoL/8fKp9FvvMTxj7zM+n2md9t0/1/Dz33HPtVGByeh5wwAFmjz32MJtvvrl1eBbi+/nnn1ufy+23324++ugjG32rrbYy48aNK3RpfM7XOWgIEIiMQF0FYtWAAQPs3wMPPJA3HXVz99l4e+6556q6gmeDuHVOz9S9Lr/88gbnoziAfPXU0R/2WW8Ntdk69thj7Tehzmm5qq6nZ86H1vXuWTVixAgb9w9/+EODeHU9QlcNHTrUnt9tt91W1fUAahAnigPIt5o6+sM+ef8qT8Dn70tdo1aqvFhXEVylb0ipYerUqasGDhxo71c3iqCse5WahuzrkC+bSO599JebTbXOYJ/hyWKf4VlVKqbv9nnggQfa/Kpu/ZRVr7/+esnY6hZJWnXKKaek8tLHH3+85HvV+sLG8XHFkpI1kUDdR8aK3adPH9v7Mx8DLUaiuSa0KpmGnWWHn/3sZ2a//fazh3VfDVWKOiBfvQbQH/ZZbw3V31LPQDeEfdSoUXY4R66nqve54iioZdT1CnLxNRzy6quvtj1DNezxnnvucaci+0W+evToD/ust4babPH+1XNO4vtXV+mzAmghTY0SkAylBvX4PPnkk+3lWkBp7ty5pd6qYtchX3iU6C88q0rFxD7Dk8Q+w7OqVEyf7VNTuOhP4cwzzyxrAWn1HtWoOTfi9plnnqmUCqp+n9Jz/KonjQesCQRc12k3pL2QzNtvv72N8txzz6Xm7ku/Rl24FeSk+OSTT9JPRbKNfJnY0R/2mWkR1dv78MMP7c21ertWLCwUNO+Ny8TlBM0OcoL26tXLHlYlN+qAfJkaQH/YZ6ZFVHeP9y+Tb9LeP00kvkm2AAAtc0lEQVR5otC/f3/TtGnTTGFK2Bs0aFDqqjiUPZEvpY5QG+gvFKaKRcI+i0OJfRbHq9zYPtunc+4q39OUYOUG1bH69u1rbxOHvC+sPDhAw5IiXlUIfPnll/a+eoHCBM3v6UJQK/s222yTKsxqgZOoA/JlagD9YZ+ZFlG9PU3WraAWyrC9e5x9agGkoLDjjjvaw3H4tiBfQw2hP+yzoVVU5wjvX0OuSXr/XA8Y1+jVUJrijrRt2zY1d5rmrY86IF9xGkB/xfEqNzb2WRxB7LM4XuXG9tk+nWyyqRYtWpSLyl6vhQMV4pD32YSE+IcDNAQkolSPwMYbb2xvnj3kNNcT3ZBWnXeF7fS4mjhafwqtWrVKPxXJNvJlYkd/2GemRVRvz717Whwml0Mz/en6brge20HfFsV1mXucvi3It1qL6A/7TH+fq73N9yWTcNLevy5dulgBXG+YTGmK39N9tFK8ghaSiDogX3EaQH/F8So3NvZZHEHsszhe5cb22T6dbGrEDepIVgq7l19+2V4Wh7wvbPpxgIYlRbyqEHAvy3/+8x/z5ptv5n3G4sWL7WqbitSuXTujIanZQSvCu+AqKG4/il/kq6eO/ozBPuvtodpb7t3Tc6655pqCj/v3v/+dajzZcsstG8RXBf+///2vPR6nb4sShHzGoD/ss8FLW8UDfF8y4Sbt/XPf+LpFG4yrvGVKFH5PZRv3DVbjWefOncNfXKWYyBceLPoLz6pSMbHP8CSxz/CsKhXTZ/tU2aVRo0YW1ZVXXpmq95TKbuLEiebVV1+1l/fs2bPU29T8OhygNUfOA9MJ1K0Ab3flXNBE9O4lSo+j7UWLFpkLLrggNXGvG4qaHu+ll16yC5XoWNeuXY3mpIo6IN9qDaA/Y7DP2r6NaiBxTgo5nq+66iqzbNmywETIsTlu3Dh7TgWDHXbYISOeFl679NJLUz1EtWhb1AH56jWA/rDPemuozRbvXz3nJL5/Rx99tB2yvmLFCnPWWWeZ+++/384dXy9VuK133nnH/OY3v0ktuLf//vuHu7DKsZAvHGD0F45TpWNhn+GIYp/hOFU6ls/2Kd+IFpRWmDp1ql0A9oMPPigaoUbE3XbbbbZupIvVMW3gwIFF3yeqCxpp2fmoHs5zISAC559/vnn00UdTMDTZsxbLUS+rJUuWGC04ct999xkN9VTQvBW33HKLWX/99e3+tGnT7L6G0TtzvuSSS+zk9jZCxP+QD/3JXrHP2r+I+nYcf/zxqYrtBhtsYIYMGWI22WQT0759e7tQ2vTp0036yoUq+Jxwwgk2sRrSeNlll9lCgvv+qGX4+uuvT7Wg1l6q+ici3ycG/WGf9W9Ebbd4/5L9/t1+++1m7NixKaPRXPRqXO/Ro4ftxak8QnNIN2/e3A5vl7NUZVLNoTZ79mzzyiuvmPSKoxrGRo8eHXrO6dSDq7SBfOgP+6zSyxXitrx/vH9xff+++OILM2LECJO+nsGmm25qO39oiLwaeNdee22b/zVp0sQo75PDc8GCBWb+/Plm1qxZZsaMGanFqBXniiuusPlniFcjFlFwgMZCDWt2ItS9f/jw4dbRWYhEs2bNrMPU9axUfLVA/PWvf7WXqvfWsccea4YNG1boVjU7j3z1qNEf9llvDbXZUs8eZcxufrZ8T1XDi4aEpK8KvOeee6bm/pTj9KKLLrKNM/nuU8tzyFdPG/1hn/XWUJst3r96zkl8/zR8b8yYMbaCVy9J8Vv9+vUz55xzjm2gL/7q6l2BfOHYor9wnCodC/sMRxT7DMep0rF8tk916hg1apRxK96Xyk7TvowcOdIMHjy41FtEch0O0Eiw89BsAhoCL0emesqppSEo7Lzzznao0UYbbZRxetKkSbYL9nbbbWeOOuooE4fhqRkJrNtBPmPQH/aZ/V7Ual+Lb/35z382b7zxRuAj1dL5i1/8whx44IENeu8ceuih9v3V0A7FUS+huAXkQ3/YZ3RvJe9fst8/9Wq566677BzzWhgibFCDrhwT++yzT2xGHAWlHfmCqBiD/oK51Poo9hlMHPsM5lLro77bp0bRyv+iKQjDdBRx/DXV4O67724OPvhgO6LOHU/KLw7QpGhqDUmnumW/9dZb5sMPPzQff/yxbU1Xt+zu3bubrbfeOpCCeliq+7WcGHEPyNdQQ+ivIZOojvhsnz/88IN1gOrboj/ZnabZUK/OXr165czANdyxQ4cOUakk9HORr30gK/QXiKXmB7FP7LPmRlfCA7Uqrqar0dBADXfX39KlS+2oADV+tWrVyg6PV7lUQ+WTUO5Mx4B86C/dHuK2jX1in3GzyfT0+GyfGuKuoe36U+/Qb775xuZ/6sDVokUL2/lD08I4n4wcoEkOOECTrD3SDgEIQAACEIAABCAAAQhAAAIQgAAEIAABCOQlwCrwefFwEgIQgAAEIAABCEAAAhCAAAQgAAEIQAACEEgygaZJTjxphwAEIAABCEAAAhCAAAQgUC4BzUGvVd+LDQsXLkwtlhfnKVOQL1iz6C+YS62PYp/BxLHPYC61PuqzfX733Xd2qhctJl1M0BB5N3e2pojRXxICQ+CToCXSCAEIQAACEIAABCAAAQhUlMCUKVPsAkhu7jPNDb3VVluZfffd12hxzTDhjDPOMFOnTrVRn3766TCX1CwO8hVGjf4KM6pWDOyzMFnsszCjasXw2T411+eNN95oF0DS2gia67Nnz55mxx13NIcddphZa621CmJVvnn88cfbeMcdd5wZNmxYwWviEIEeoHHQAmmAAAQgAAEIQAACEIAABGpCYNmyZebyyy83kydPznieFuDU3yOPPGKGDh1qTjjhhFAVwYybxGAH+dBfDMwwZxKwT+wzp3HE4ITv9vn888+bCy+8MNV7U8i16N+LL75o/yZNmmTOOuus0I2AMVBZUUlgDtCicBEZAhCAAAQgAAEIQAACEEgygXHjxmU4P9X7ZcMNN0yJtGrVKnPnnXca9WqZM2dO6nhSNpAP/cXZVrFP7BP7jIbA/PnzzahRozKcnx07drQrvbsUffrpp2b48OHmlltucYe8+sUB6pU6EQYCEIAABCAAAQhAAAIQyEXgnXfeMffcc4893b59e3PxxRdbZ6gcng8//LA56aSTUnOZffLJJ2bEiBGJcoIiH/rLZftxOI59Yp9xsMNcafDdPq+++mqzfPlyK/7gwYPNAw88YP7973/bPFANEzvttJM9p0bAG264wf7lYpXU4wyBT6rmPEn3PvvsY/SCVSNMnDixGrct6p7IVxSujMjoLwNHVXZ8ts/bbrvNjB8/vircjjjiCHPkkUdW5d5hb4p8YUk1jIf+GjKp9BHss3Si2Gfp7MJeed9995kffvjBNGnSxIwZM8b06NEjdWnr1q2NdPDjH//Y/O53vzPvvfee+eyzz8ypp55qrrvuOrPuuuum4sZ1A/nQX1xtU+nCPrFP7DMaAl988YV58skn7cMHDRpkzjnnnFRCtACS5r++6qqrzN13321/5aNRL9CWLVtGXu9JJbQCGzhAKwCRW5ROYNGiRVVzgJaeqspdiXyVYxnFndBfFNQr80yt1ij9VSN8++231bhtUfdEvqJwZURGfxk4qrKDfZaOFfssnV3YK7Xgg8Kee+6Z4fy0B//v3/rrr2+uvfZac+aZZ5pXXnnFzJ0715x++ulGvWdUGYxzQD5j0F98LRT7xD7ja53G+GyfH330UQq9RjrkCgcddJBt7Dv//PONVnpX41+HDh2Meoz6EHCA+qDFBMugwqWGHmmIkQtqXW/c2I/ZGZDPaTWZv+gvmXpTqg8//HDzzTff2DncXC9zrWjYpk2bsoVae+21y75HuTdAvtIJor/S2YW9EvsMS6phPOyzIZNKH9EiRwpbbrll3lu3atXKjB492pxyyilm5syZRiveqsfMJZdcYnuP5r04wpPItxo++ovQCPM8GvvEPtX7Pq7BZ/t0sqku1Llz57wq2G233aw/5g9/+IPtrHbRRRfZhiWtEp/0gAM06RpMePq33XZb87e//c389re/NW+++aaVZu+997arbiZcNJt85Eu2FtFfcvUnZ6cm8NbQRjWyaLijFrm4/vrrbQaeXMlWpxz5kq1B9If+4kzAd/tUjxYF5QmFgljI4XniiSea2bNnm2nTppkrr7zSllsLXRvVeeSrJ4/+6lnEZQv7rNcE9lnPIi5bPtunk012FyYMHDjQzoH9l7/8xfYE/f3vf297g2688cZhLo9tHD+62cUWLwkLQ0CtEFdccYXZZJNNbPRbb73VvPjii2EuTUQc5EuEmnImEv3lRJOIEz/5yU9SFdWFCxeaCy64wDpDE5H4EIlEvhCQYhwF/cVYOSGShv5CQIphlK5du9pUffh/Q+ELJbFdu3bm8ssvN/pV0ByGd9xxR6HLIjuPfJno0V8mj6j3sM9MDWCfmTyi3vPZPp1smgtUo+TChKFDh5pDDjnERl28eLE57bTTzIIFC8JcGts4OEBjq5o1K2EapqJ5ljQBr4arykmxZMkSbyAgX7JVif6Srb99993X9OvXzwrx0ksv2WHxyZYoM/XIl8kjaXvoL2kay0wv+svkkYQ9Vwl85JFHQs8V3aVLF9sTtHnz5lZETZEzadKkWIqLfA3Vgv4aMonqCPbZkDz22ZBJVEd8tk8nm9hqoaOw4eSTTzbqDaowZ84cu0BgWAdq2GfUMl6T8+pCLR/IsyCQi4Am19WiJW+88YZZtmyZnWR+++23zxU9cceRL3Eqy0gw+svAkbgdfUsmTJhgh3C89dZb5oADDjDNmjVLnBy5Eox8ucgk4zj6S4aecqUS/eUiE8/jcmI+9thjZvny5ebdd981ffr0CbWwkcoB3bp1M1OmTLGCPfPMM7bR/vPPPzeffvqpPTZs2LDIhUa+YBWgP2Owz2DbqORR3r9gmrx/0b9/bdu2tdO4qAfoa6+9ZuQQ7d69e7DC0o6qg1r//v3tCF3ld19++aVR/qfRu0899ZSNqblBkzI/KA7QNOWyGT0BVSJUKFWrggqlPjopkC96Oys1BdhnqeSiv65169ZGf88++6zRCtXq1bvddttFn7AKpQD5KgQyotugv4jAV+ix6K9CIGt0m4022shW/tSTRfN6Tpw40Wh13M8++8xsvfXWeVOhCp8W65w6daqNpxXidQ8X4uBgQj6njYa/6C96Bz322dAu3RHsE/t0tlCNXzkyZWMPPfSQnQ7siSeeMC+88ILN/9Zff33Tvn37nI9t2rSpGTBggJk+fbodAq9pxZ5++ulUfBygKRRsQKA4AuqRpcKnCpc9e/Y0G2ywgd0u7i7xjY188dVNmJShvzCU4htH3xRN/K1vjBwWvXr1im9iS0gZ8pUALUaXoL8YKaOEpKC/EqBFeIkawDQliuYyU6OYGt3nzZtnDjzwwIKpkq47depkG9Q0bVN6iIMDVOlBvnStZG6jv0weUexhn7mpY5+52dTqjM/22bFjR6Neyi+//LIdwaCGv9dff9323tQIh3xBCwfuvvvu9lr1Ik0PSXKANqrLuDNz7nRJ2IYABCAAAQhAAAIQgAAEIOAZgW+//dZoLs+HH37YDoffeeed7aKcYcV8//337eJIr776auqS9B4xqYMRbSBffvDoLz+fap/FPvMTxj7z86n2Wd/tU/nWn//8Z+MWAxw7dqzZdtttQ2HVavJ33nmnuemmm2zeqYuOO+64WEyxEUYAHKBhKBEHAhCAAAQgAAEIQAACEPCOgCpzs2bNsotv9u3bt2j5tBjSvffeayuSkydPLvr6al+AfPkJo7/8fKp9FvvMTxj7zM+n2md9t0/15NRULsr7NEdoMUG9R8eNG2enlNlrr73MscceW8zlkcXFARoZeh4MAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIVJtA42o/gPtDAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIiKQNOoHsxzIRCGgLplL1q0yM4vobk4NGmvVm/Wn7ppa0GTJAfkQ39xtl+f7VPfk/nz59tvy/Lly833339vvytaHEnfl3XWWSfOqimYNuRDfwWNJMII2Cf2GaH5FXy0z3mfhEc+yp4FX4III2Cf2GeE5lfw0T7bp+9lM6dcHKCOBL+xILB06VKjuU4eeeQRo8mfly1bljNdTZo0Md27d7crOu+6665ml112MY0aNcoZPw4nkK9eC+ivnkVctny3zzfeeMPcd999ZsaMGWbu3Ll29cNc7Nu1a2e/Ldtss40ZMmSIWW+99XJFjc1x5KtXBfqrZxGXLeyzXhPYZz2LOGz5nvchX72VUfasZxGXLeyzXhPYZz2LuGz5bp++l82C7Ig5QIOocKzmBL766itz8803W+dnPqdnvoR169bNnHjiiUbO0LgF5CusEfRXmFG1Yvhun1OmTDHjx4+3i1yUwrBZs2ZGk3ufdNJJRj1E4xaQL79G0F9+PtU+i33mJ4x95udTzbO+533IV9h6KHsWZlStGNhnYbLYZ2FG1Yrhu336XjbLZxc4QPPR4VxNCCxevNgMHz7c9vhMf6B6XHXs2NGop4SGumv4u4apqnu2WmO08ti8efPMd999l7pMPUB1r0MOOSR1LOoN5EN/zgaxT0eidr8TJkwwl112WcYD9T3p1KmT2WCDDczaa69tvy1qdV+xYoX9vqjQo+HxCxYsyLhOPc5Hjx5tr8s4EeEO8qE/Z37YpyNRu1/ev+S+f5TNKJu5LwVlM0eidr+8f7x/ztp4/xyJ2v36XnYpRBIHaCFCnK8qAfX2HDlypJk5c6Z9Ts+ePc2hhx5qevfubdq3b1/w2StXrjTquj158mQzceJE6yDVRXJ4aEh81AH58msA/eXnU+2zvtunWjfPPfdcO9RdTs8DDjjA7LHHHmbzzTc3cngWCp9//rmZPn26uf32281HH31ko2+11VZm3LhxhS6tyXnky48Z/eXnU+2z2Gd+wthnfj7VPOt73od8+a2Hsmd+PtU+i33mJ4x95udT7bO+26fvZbNQ9rGKAIEICTz44IOrBgwYYP/qHBWr6np4lpyaqVOnrho4cKC91zHHHFPWvUpORNaFyJcFJM8u+ssDp0qnfLfPAw880H4PBg8evOr1118vmWLdIkmrTjnllNS36vHHHy/5XpW8EPnC0UR/4ThVOhb2GY4o9hmOUyVj+Z73IV94a6HsGZ5VpWJin+FJYp/hWVUqpu/26XvZLIwdNA7lJSUSBKpEoM4pYe+82WabmbPPPts0bly6SarH58knn2zvpwWUtMhJ1AH5wmsA/YVnVamYPtunpsjQn8KZZ55pevXqVTI29R69+OKLTYcOHew9nnnmmZLvVakLkS88SfQXnlWlYmKf4Ulin+FZVSqmz3mfGCFfeEuh7BmeVaViYp/hSWKf4VlVKqbP9ul72SysDZTubQr7BOJBIA+B1157zZ7t37+/adq0aZ6Y4U4NGjQoFfGTTz5JbUe1gXzFkUd/xfEqN7bP9ukKMPquVGJhtJYtW5q+ffta5HH4tiBfcdaP/orjVW5s7LM4gthncbzKje1z3ic2yFechVD2LI5XubGxz+IIYp/F8So3ts/26XvZLKzucYCGJUW8qhBwPbRcz6pyH9K2bdvU3H5aLCnqgHzFaQD9Fcer3Ng+26eTTTbVokWLclHZ67Uwm0Kcvi3IZ1US6h/6C4WpIpF4/4rHiH0Wz6zUK5x9UvYMR5CyWThOlYqFfRZHEvssjle5sbHP4gjGyT6d7nytO4TVDA7QsKSIVxUCXbp0sfd1LRLlPkT30UrxClroJOqAfMVpAP0Vx6vc2D7bp5NNK7pXajqMl19+2SKP07cF+cK/BegvPKtyY/L+FU8Q+yyeWalXOPuk7BmOIGWzcJwqFQv7LI4k9lkcr3JjY5/FEYyTfTrd+Vp3CKsZHKBhSRGvKgS23HJLe9+6RUWMK/yX+qDFixeba665xl7epk0b07lz51JvVbHrkC88SvQXnlWlYvpsn3JSNmrUyKK68sorjVbVLCdMnDjRvPrqq/YWPXv2LOdWFbkW+YrDiP6K41VubOyzOILYZ3G8yo3tc94nNsgX3kIoe4ZnVamY2Gd4kthneFaViumzffpeNgtrA03OqwthIxMPApUm0K1bN3Pvvfda58RTTz1l5LjUgkhNmjQp6lHvvPOOOeecc8zbb79trzv00ENN7969i7pHNSIjXziq6C8cp0rH8tk+W7dubebNm2dkW5qzU9+GHj16mPbt2xeFUcPd77zzTnPVVVfZ69q1a2fqVoQ3rVq1Kuo+lY6MfOGIor9wnCodC/sMRxT7DMep0rF8zvvECvnCWQxlz3CcKh0L+wxHFPsMx6nSsXy2T9/LZmFtoZGWig8bmXgQqAaB22+/3YwdOzZ1ay0GsOOOO1pnhXpxymGhVVKbN29uh7evWLHCLFmyxK7wPHv2bPPKK6+YDz74IHV9nz59zOjRo8taUT51swpsIB/6wz4r8CKVcIsvvvjCjBgxwnz66aepqzfddFOzww47GA0D6dixo1l77bXt90WNLvq2yCGxYMECM3/+fDNr1iwzY8YM+73RDRTniiuusN+n1A0j3EA+9Id9RvcC8v4l+/2jbEbZjLJZdN9P3j/eP96/aN4/38suYajiAA1DiThVJ6DhX2PGjLEOiHIe1q9fP9sTVJP7xikgXzhtoL9wnCody2f7/Prrr82oUaNSq+KWyk6900eOHGkGDx5c6i2qch3yhcOK/sJxqnQs7DMcUewzHKdKx/I57xMr5AtnMZQ9w3GqdCzsMxxR7DMcp0rH8tk+fS+bFbIFHKCFCHG+ZgTU6+quu+6yBTZNzhs2NGvWzChz2GeffUz//v3DXlbzeMgXjBz9BXOp9VHf7XPatGnmtttus/N4uoXSwjDu2rWr2X333c3BBx9c9PD5MPevVBzkCyaJ/oK51Poo9hlMHPsM5lLLo77nfcgXbE2UPYO51Poo9hlMHPsM5lLro77bp+9ls1z2ggM0FxmOR0pAqzbPnDnTDl3VcHf9LV261DRt2tRoiLzm39PweA1n1bx+GsaapIB86C/O9uqzfWqIu4a2608toN988439vmiRpBYtWtjvi6bd0Lele/fuRg6KJAXka2kd1egvnlaLfWKf8bTM1anyOe+ThMhH2ZP3LzoCvH+8f9FZX/4n+142y5YeB2g2EfYhAAEIQAACEIAABCAAAQhAAAIQgAAEIAABbwg09kYSBIEABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgkEWgadY+uxCIBQGtxqxV34sNCxcutKs467oOHToUe3nN4iNfMGr0F8yl1kd9ts/vvvvOTqXRqFGjorBqiLybm1hTcOgvjgH5grWC/oK51Poo9hlMHPsM5lLroz7nfWKJfMEWRdkzmEutj2KfwcSxz2AutT7qs336XjbLthWGwGcTYT8yAlOmTLELILm5+TbeeGOz1VZbmX333ddst912odJ1xhlnmKlTp9q4Tz/9dKhrahUJ+QqTRn+FGVUrhs/2qbk+b7zxRrsA0ocffmjn+uzZs6fZcccdzWGHHWbWWmutglj1XTr++ONtvOOOO84MGzas4DW1ioB86A/7rNXb1vA5vH/Jfv98zvtkrcjX8J3NPkLZM5tI7faxz8Kssc/CjKoVw2f79L3sks8m6AGajw7nakJg2bJl5vLLLzeTJ0/OeN7HH39s9PfII4+YoUOHmhNOOCGUoyLjJjHYQT70FwMzzJkE3+3z+eefNxdeeGGq96ZAaFG1F1980f5NmjTJnHXWWaEbWXKCjOgE8qG/iEwv1GOxT+wzlKFEEMn3vA/5KHtG8FqFfiT2iX2GNpYIIvpun76XzQqZDHOAFiLE+aoTGDduXIbzUysxb7jhhqnnrlq1ytx5551Gva7mzJmTOp6UDeRDf3G2VZ/tc/78+WbUqFEZzs+OHTvald6dTj799FMzfPhwc8stt7hDiflFPmPQX3zNFfvEPuNrncb4nPeJO/JR9uT9i44A7x/vX3TWl//JvpfN8ku/+iw9QMNQIk7VCLzzzjvmnnvusfdv3769Of30082uu+5qGjdubL755hvzwAMPmH/84x+2x9Ynn3xiRowYYa6++mrTuXPnqqWpkjdGPvRXSXuq9L18t099K5YvX26xDR482H4/9J1Ro8pbb71lrrvuOvPSSy/Z/RtuuMFoDhw3zL3SrKtxP+RDf9Wwq0rdE/vEPitlS5W+j+95H/JR9qz0O1PJ+2Gf2Gcl7anS9/LdPn0vm4WxB3qAhqFEnKoRuO+++8wPP/xgmjRpYsaMGWMGDBhgnZ96YOvWrc0RRxxhbr31VrPZZpvZNHz22Wfm1FNPzejRVbXEVeDGyIf+KmBGVbuFz/b5xRdfmCeffNKyGzRokDnnnHOMnJ8KWgBJ8wtfddVV9nviFkRSL9Dx48fbOHH/h3zoL842in1in3G2T5/zPnFHPsqevH/REeD94/2LzvryP9n3sll+6evP4gCtZ8FWBAS0IInCnnvuaXr06GG3s/+tv/765tprrzU77LCDPTV37lzbU1Tzc8Q9IJ8x6C++VuqzfX700Ucp8CeddFJqO3vjoIMOMn/84x/tyvA6p16hjz76aHa02O0j32qVoL/YmaZNEPaJfcbTMlenyue8TxIiH2VP3r/oCPD+8f5FZ335n+x72Sy/9PVncYDWs2ArAgJa5Ehhyy23zPv0Vq1amdGjR5tevXrZeFrxVj26vv/++7zXRX0S+VZrAP1FbYnBz/fZPp1sbdq0KThlxm677WbOO+882zNUpC666CLz8ssvB0OLyVHkq1cE+qtnEZct7LNeE9hnPYu4bDn7pOxJ2TouNpmeDuxzNQ3qDulWEZ9t7DO59ul052vdKOxbggM0LCniVYXAypUr7X218FGhsNZaa5lLLrnEdOnSxUadNm2aufLKKwtdFul55KvHj/7qWcRly2f7dLLJ7sKEgQMH2jlCFVfX/v73vzeuoBDm+lrHQb5M4ugvk0fUe9hnpgawz0weUe85+6TsaQxls6itseHzsc96JthnPYu4bGGf9ZpImn063flaN6rXTP4tHKD5+XC2ygS6du1qn+CGCxR6XLt27czll19u9KugeVbuuOOOQpdFdh75MtGjv0weUe/5bJ9ONs13owXVwoShQ4eaQw45xEZdvHixOe2008yCBQvCXFrzOMjXEDn6a8gkqiPYZ0Py2GdDJlEdcfZJ2XO1BiibRWWJwc/FPjO5YJ+ZPKLewz4zNZAk+3S687VulKmZ3Hs4QHOz4UwNCLgX8ZFHHjGLFi0K9UT1AFVP0ObNm9v4mh900qRJoa6tdSTka0gc/TVkEtURn+3TySa2d999d2jEJ598slFvLYU5c+aY3/3ud6EdqKEfUoGIyBcMEf0Fc6n1UewzmDj2Gcyl1kedfVL2rCdP2ayeRdRb2GdDDWCfDZlEdQT7bEg+KfbpdCcJfKwbNdRM8JEmdfOenRd8iqMQqD4BOTEfe+wxs3z5cvPuu++aPn36mJYtWxZ8cIcOHUy3bt3MlClTbNxnnnnGrFq1ynz++efm008/tceGDRtW8D7VjoB8wYTRnzHYZ7BtVOpo27ZtjabJUCvna6+9ZpTpd+/eveDttSJ8//79zYsvvmi/J19++aXR92WTTTYxTz31lL1+xx13NPqLMiBfMH30Z6xtYp/B9lGpo7x/wSST8v5RNgvWH2UzymbBllHZo7x/wTx5/3j/gi2jckd9L7uEJYUDNCwp4lWFwEYbbWSdE+ppNXv2bDNx4kSjFco+++wzs/XWW+d9phwS6667rpk6daqN98orr9h7uIvi4GBCPqeNhr/oL3oHvc/2qYq4bOyhhx4yP/zwg3niiSfMCy+8YL8v66+/vmnfvn1Do/y/I02bNjUDBgww06dPt0PgFy5caJ5++ulU/Dg4QJEP/WGfqVey5hu8f8l+/3zO+/QyIF/uTwJlT8qeua2jMmd4/3Jz5P2L9v3zveyS2/Iyz+AAzeTBXgQEtttuO/PSSy9ZR8OKFStsT9B58+aZAw88sGBqevbsaTp16mSeffZZ2wM0/YI4OECVHuRL10rmNvrL5BHFns/22bFjRztVhlZ0Vw9xNay8/vrrtoecepDnC1ocY/fdd7erwasXaXqIgwNU6UG+dK1kbqO/aHsoY598X+L+/fQ579P7h3yZeUL6HmXPdBrRbGOfubljn7nZ1OqMz/bpe90hjI00DhOJOBCoJoHOnTubcePGmQMOOMC4FTnVQytsGDJkiLnxxhttYS/sNbWMh3z5aaO//HyqfdZ3+zzqqKPM1VdfbTbddNMUyrDfFw0VGTt2rDnppJNS36bUTWKygXy5FYH+crOp1RnsMzdp7DM3m1qc8T3vQ778VkTZMz+fap/FPvMTxj7z86n2Wd/t0/eyWSH7aFTXK2ZVoUich0CtCKxcudLMmjXLLFmyxPTt27fox2oxpHvvvddoZc/JkycXfX21L0C+/ITRX34+1T7ru32qJ6emytC3Rc6HYoJ6j6qhRvOJ7rXXXubYY48t5vKaxEW+3JjRX242tTqDfeYmjX3mZlOLM77nfciX34ooe+bnU+2z2Gd+wthnfj7VPuu7ffpeNguyDxygQVQ4BgEIQAACEIAABCAAAQhAAAIQgAAEIAABCHhBgCHwXqgRISAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAIEgAjhAg6hwDAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEPCCAA5QL9SIEBCAAAQgAAEIQAACEIAABCAAAQhAAAIQgEAQARygQVQ4BgEIQAACEIAABCAAAQhAAAIQgAAEIAABCHhBAAeoF2pECAhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQCCIAA7QICocgwAEIAABCEAAAhCAAAQgAAEIQAACEIAABLwggAPUCzUiBAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIBBEAAdoEBWOQQACEIAABCAAAQhAAAIQgAAEIAABCEAAAl4QwAHqhRoRAgIQgAAEIAABCEAAAhCAAAQgAAEIQAACEAgigAM0iArHIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAS8I4AD1Qo0IAQEIQAACEIAABCAAAQhAAAIQgAAEIAABCAQRwAEaRIVjEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAgBcEcIB6oUaEgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABIII4AANosIxCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAwAsCOEC9UCNCQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAkEEcIAGUeEYBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQg4AUBHKBeqBEhIAABCEAAAhCAAAQgAAEIQAACEIAABCAAgSACOECDqHAMAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQ8IIADlAv1IgQEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAQBABHKBBVDgGAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIeEEAB6gXakQICEAAAhCAAAQgAAEIQAACEIAABCAAAQhAIIgADtAgKhyDAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEvCCAA9QLNSIEBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgEEQAB2gQFY5BAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACXhDAAeqFGhECAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQCCKAAzSICscgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABLwjgAPVCjQgBAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIBBHAARpEhWMQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAFwRwgHqhRoSAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEggjgAA2iwjEIQAACEIAABCAAAQhAAAIQgAAEIAABCEDACwI4QL1QI0JAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACQQRwgAZR4RgEIAABCEAAAhCAAAQgAAEIQAACEIAABCDgBQEcoF6oESEgAAEIQAACEIAABCAAAQhAAAIQgAAEIACBIAI4QIOocAwCEIAABCAAAQhAAAIQgAAEIAABCEAAAhDwggAOUC/UiBAQgAAEIAABCEAAAhCAAAQgAAEIQAACEIBAEAEcoEFUOAYBCEAAAhCAAAQgAAEIQAACEIAABCAAAQh4QQAHqBdqRAgIQAACEIAABCAAAQhAAAIQgAAEIAABCEAgiAAO0CAqHIMABCAAAQhAAAIQgAAEIAABCEAAAhCAAAS8IIAD1As1IgQEIAABCEAAAhCAAAQgAAEIQAACEIAABCAQRAAHaBAVjkEAAhCAAAQgAAEIQAACEIAABCAAAQhAAAJeEMAB6oUaEQICEIAABCAAAQhAAAIQgAAEIAABCEAAAhAIIoADNIgKxyAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEvCOAA9UKNCAEBCEAAAhCAAAQgAAEIQAACEIAABCAAAQgEEcABGkSFYxCAAAQgAAEIQAACEIAABCAAAQhAAAIQgIAXBHCAeqFGhIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAASCCOAADaLCMQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQMALAjhAvVAjQkAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAJBBHCABlHhGAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIOAFARygXqgRISAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAIEgAjhAg6hwDAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEPCCAA5QL9SIEBCAAAQgAAEIQAACEIAABCAAAQhAAAIQgEAQARygQVQ4BgEIQAACEIAABCAAAQhAAAIQgAAEIAABCHhBAAeoF2pECAhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQCCIAA7QICocgwAEIAABCEAAAhCAAAQgAAEIQAACEIAABLwggAPUCzUiBAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIBBEAAdoEBWOQQACEIAABCAAAQhAAAIQgAAEIAABCEAAAl4QwAHqhRoRAgIQgAAEIAABCEAAAhCAAAQgAAEIQAACEAgigAM0iArHIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAS8I4AD1Qo0IAQEIQAACEIAABCAAAQhAAAIQgAAEIAABCAQRwAEaRIVjEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAgBcEcIB6oUaEgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABIII4AANosIxCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAwAsCOEC9UCNCQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAkEEcIAGUeEYBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQg4AUBHKBeqBEhIAABCEAAAhCAAAQgAAEIQAACEIAABCAAgSACOECDqHAMAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQ8ILA/wdiE0SgEv7KTwAAAABJRU5ErkJggg==" width="672" /></p>
<div class="sourceCode" id="cb58"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb58-1"><a href="#cb58-1" aria-hidden="true" tabindex="-1"></a>estimates_sogo_number_OLS <span class="ot">&lt;-</span> df_estimates 　 <span class="co">#for robustness check</span></span></code></pre></div>
</div>
<div id="wls-no-trends-figure-5-c-table-c.5-3-1" class="section level2" number="8.2">
<h2><span class="header-section-number">8.2</span> WLS, no trends, Figure 5 (c) &amp; Table C.5 (3)</h2>
<div class="sourceCode" id="cb59"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb59-1"><a href="#cb59-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb59-2"><a href="#cb59-2" aria-hidden="true" tabindex="-1"></a>estimation_results <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_WLS_notrend</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb59-3"><a href="#cb59-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>sogo_number, </span>
<span id="cb59-4"><a href="#cb59-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>unemploy_shock_diff2)</span>
<span id="cb59-5"><a href="#cb59-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb59-6"><a href="#cb59-6" aria-hidden="true" tabindex="-1"></a>texreg<span class="sc">::</span><span class="fu">screenreg</span>(<span class="at">l =</span> estimation_results, <span class="at">include.ci =</span> <span class="cn">FALSE</span>, <span class="at">digits=</span><span class="dv">3</span>)</span></code></pre></div>
<pre><code>## 14 coefficients  not defined because the design matrix is rank deficient</code></pre>
<pre><code>## 
## ===================================
##                         Model 1    
## -----------------------------------
## treat_var:date_2018_01             
##                                    
## treat_var:date_2018_02             
##                                    
## treat_var:date_2018_03             
##                                    
## treat_var:date_2018_04             
##                                    
## treat_var:date_2018_05             
##                                    
## treat_var:date_2018_06             
##                                    
## treat_var:date_2018_07             
##                                    
## treat_var:date_2018_08             
##                                    
## treat_var:date_2018_09             
##                                    
## treat_var:date_2018_10             
##                                    
## treat_var:date_2018_11             
##                                    
## treat_var:date_2018_12             
##                                    
## treat_var:date_2019_01     0.034   
##                           (0.029)  
## treat_var:date_2019_02     0.018   
##                           (0.033)  
## treat_var:date_2019_03     0.029   
##                           (0.031)  
## treat_var:date_2019_04     0.024   
##                           (0.032)  
## treat_var:date_2019_05     0.000   
##                           (0.032)  
## treat_var:date_2019_06     0.015   
##                           (0.030)  
## treat_var:date_2019_07     0.028   
##                           (0.030)  
## treat_var:date_2019_08     0.014   
##                           (0.039)  
## treat_var:date_2019_09     0.003   
##                           (0.028)  
## treat_var:date_2019_10     0.006   
##                           (0.028)  
## treat_var:date_2019_11     0.019   
##                           (0.032)  
## treat_var:date_2019_12     0.015   
##                           (0.032)  
## treat_var:date_2020_02             
##                                    
## treat_var:date_2020_03             
##                                    
## treat_var:date_2020_04    -0.395   
##                           (1.539)  
## treat_var:date_2020_05     9.879   
##                          (12.245)  
## treat_var:date_2020_06    54.387   
##                          (29.934)  
## treat_var:date_2020_07    82.444 * 
##                          (31.787)  
## treat_var:date_2020_08    52.064 **
##                          (16.912)  
## treat_var:date_2020_09    43.071   
##                          (23.620)  
## -----------------------------------
## R^2                        0.748   
## Adj. R^2                   0.722   
## Num. obs.                893       
## RMSE                    1078.193   
## N Clusters                47       
## ===================================
## *** p &lt; 0.001; ** p &lt; 0.01; * p &lt; 0.05</code></pre>
<div class="sourceCode" id="cb62"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb62-1"><a href="#cb62-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb62-2"><a href="#cb62-2" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_loan</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb62-3"><a href="#cb62-3" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;unemploy_shock_diff2&quot;</span>,</span>
<span id="cb62-4"><a href="#cb62-4" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;sogo_number_WLS&quot;</span>)</span>
<span id="cb62-5"><a href="#cb62-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb62-6"><a href="#cb62-6" aria-hidden="true" tabindex="-1"></a><span class="co"># graph</span></span>
<span id="cb62-7"><a href="#cb62-7" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_WLS <span class="ot">&lt;-</span> <span class="fu">event_study_graph_2nd_safetynet</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb62-8"><a href="#cb62-8" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;sogo_number_WLS&quot;</span>)</span>
<span id="cb62-9"><a href="#cb62-9" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_WLS </span></code></pre></div>
<pre><code>## Warning: Removed 2 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,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QIDAZAQECBAg0D8CP/jBD9LTTz9db/Dmm2+eVl555fq1k7EXuPfee9Mvf/nLhgdvs802afnll29Ia+fixRdfTBdffHGqVCoN2ddee+204YYbNqS1e3HZZZelp556qp59hRVWSFtvvXX9+tZbb00333xz/TpO3v72t6cFFligIW28L+6+++40c+bMdN1116W//OUv6W9/+1t6/PHH00tf+tL0spe9rPpnrbXWStttt1163etelyZP9n9RxvudeD4BAgQIECBAgACBiSIwKftHWOO/wiZKz/WTAAECfSiw2mqrpbvuuqve8gsvvDDttdde9WsnYy/w+9//Pr361a9uePDnP//59LGPfawhrZ2L66+/PkXQuvmIgOXVV1/dnDzi9axZs6oBxBdeeKGe98gjj0wnnnhi/fr4449PxxxzTP06Tp588slquYbEcbr4zne+kz71qU+l2267re0apk2blvbcc8/06U9/Oi211FJtl5ORAAECBAgQIECAAAECRQKmwBepSCNAgAABAv8nsO6661ZHJ+ZBmkeE5u8Nd/7jH/+48HY875///GfhveESf/WrX6V88DPyvulNbxquSGn3IlC/5ZZbpj322KOj4Gc0MAK0X/rSl9Lqq69e/Syt0SoiQIAAAQIECBAgQGAgBQRAB/K16hQBAgQIjJXApEmTUkx5zx9jHQCdPXt2+tnPfpavoq3za6+9tiHfYostVjjCtCFTCRcPPvhg1ay5fZ1W/fe//z0dcMAB6dhjj+20qPwECBAgQIAAAQIECBCoCwiA1imcECBAgACBYoF/+7d/a7gR61feeeedDWkjXTz22GPpf/7nf+rZ5puv8T/BrUaH1gsUnPz3f/93Q+pWW22VFlxwwYa0si9iJOub3/zm9MADDwypeosttqiO6Ix1S2+66abqWqC33357uvLKK9NXv/rVtM8++xSu/Xncccels846a8jzJBAgQIAAAQIECBAgQKAdgcZ/fbVTQh4CBAgQIDDBBLbddtshPe50FGgE+ebOnVt/zjvf+c76eZx0GgCNUaM33HBDwzN6Yfr7OeecM2TK+2te85oU0/UjYPvBD34w7bDDDmmDDTZIyy67bHWa+xvf+Mb0/ve/P339619Pd9xxR9p7770b+hUXseZqbJ7kIECAAAECBAgQIECAQKcCAqCdislPgAABAhNOYKWVVkrTp09v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gc8IWt19993p1FNPTe0GrTttUy/lz68DWmtXtpRH7XRUn0UB0LFY/3NUjRllod1226369+Y3vvGN6oZ006ZNa+tJsf5nrOscf//HeqD9EPRtq2MyESBAgAABAgQIECAwTwQmxZjXeVKzSgdGIDatiI2KsvU/q3/iPEZnZtNs07LLLlvdITmCL90ezz33XHWX9rvuuiv97W9/S9n6hdWRRfHsGPU5FnV00sboX7SjdvzoRz9KERju5Oi1PnXS9nmdN3aBv+qqq6rfvUcffTQttdRSKVs7M2XrXaZWo5PndZvLqD8268rW3k0PPvhgtbps6nCKUdubbLLJmFUfm4TFbvDxC42wj3cRP+urrLJK/U87vxAYswZ5UN8IxIZc8d3J1uytfncee+yxlK0XXd2QLr5Dyy23XMrWB63+EqpvOqWhBAgQIECAAAECBAj0vIAAaM+/Ig3sRYEIXDaPSI2RiTHS1UGAAAECBAgQIECAAAECBAgQINA7AsVzSHunfVpCYFwETj755JTtpJxWX3316p+Yarrhhhu2XVe263ND3lgnsdNp9w0PcEGAAAECBAgQIECAAAECBAgQIDAuAgKg48Lqob0uEFOlY43I+BNHbLgU06nbPWJNuvyx0UYbtdwgJp/POQECBAgQIECAAAECBAgQIECAQLkCNkEq11ttPSLwqle9qqEl1157bYq1E9s5vv71r6dY7zN/7LnnnvlL5wQIECBAgAABAgQIECBAgAABAj0iIADaIy9CM8oViOnqSyyxRL3S2NE9dne//PLL62nNJ0899VQ64YQT0vvf//6U3zts3XXXTfvuu29zdtcECBAgQIAAAQIECBAgQIAAAQI9IGATpB54CZowbwRiyvtb3vKWFLvY548IaL7uda9LK664YnrJS15S3U07driP4GgEQfPHQgstlH7729+mKDOvjgsuuCDdddddpVUfAeCwcRCYVwK+8/NKXr0ECBAgQIAAAQIECBDoTwEB0P58b1o9RgIzZsxIhxxyyKiettxyy6WLLroobbnllqMqP1aFYgOnK6+8cqweN+JzrrvuurT55puPmE8GAuMl4Ds/XrKeS4AAAQIECBAgQIAAgcEUMAV+MN+rXrUpcPDBB6dLL700bbzxxm2WSGn++edPu+22W7r55pvnefCz7UbLSIAAAQIECBAgQIAAAQIECBCYoAJ2gZ+gL163/yWw8847p/gTO8F/85vfTPfcc0+677770kMPPZTmzp1b3d19+eWXT694xSvSjjvumPbaa6+07LLL/usB8/hs9913T+uvv35prVhhhRVKq0tFBIoEfOeLVKQRIECAAAECBAgQIECAQCsBU+BbyUif8AKxMdI///nPtPjii094CwAECBAgQIAAAQIECBAgQIAAgX4VEADt1zen3QQIECBAgAABAgQIECBAgAABAgQIjChgDdARiWQgQIAAAQIECBAgQIAAAQIECBAgQKBfBQRA+/XNaTcBAgQIECBAgAABAgQIECBAgAABAiMKCICOSCQDAQIECBAgQIAAAQIECBAgQIAAAQL9KiAA2q9vTrsJECBAgAABAgQIECBAgAABAgQIEBhRQAB0RCIZCBAgQIAAAQIECBAgQIAAAQIECBDoVwEB0H59c9pNgAABAgQIECBAgAABAgQIECBAgMCIAgKgIxLJQIAAAQIECBAgQIAAAQIECBAgQIBAvwoIgPbrm9NuAgQIECBAgAABAgQIECBAgAABAgRGFBAAHZFIBgIECBAgQIAAAQIECBAgQIAAAQIE+lVAALRf35x2EyBAgAABAgQIECBAgAABAgQIECAwooAA6IhEMhAgQIAAAQIECBAgQIAAAQIECBAg0K8CAqD9+ua0mwABAgQIECBAgAABAgQIECBAgACBEQUEQEckkoEAAQIECBAgQIAAAQIECBAgQIAAgX4VEADt1zen3QQIECBAgAABAgQIECBAgAABAgQIjCggADoikQwECBAgQIAAAQIECBAgQIAAAQIECPSrgABov7457SZAgAABAgQIECBAgAABAgQIECBAYEQBAdARiWQgQIAAAQIECBAgQIAAAQIECBAgQKBfBSb3a8O1uxyBk08+Of3qV7+qV3bqqaemVVddtX7thAABAgQIECBAgMCgCMyaNStdcMEFhd3ZY4890uKLL154TyIBAgQIECDQ2wKTKtnR203UunkpsNtuu6VLLrmk3oQbb7wxbbTRRvVrJwQIECBAgAABAgQGReCxxx5Lm2++eWF3Zs6cmaZPn154TyIBAgQIECDQ2wKmwPf2+9E6AgQIECBAgAABAgQIECBAgAABAgS6EBAA7QJPUQIECBAgQIAAAQIECBAgQIAAAQIEeltAALS334/WESBAgAABAgQIECBAgAABAgQIECDQhYAAaBd4ihIgQIAAAQIECBAgQIAAAQIECBAg0NsCAqC9/X60jgABAgQIECBAgAABAgQIECBAgACBLgQEQLvAU5QAAQIECBAgQIAAAQIECBAgQIAAgd4WEADt7fejdQQIECBAgAABAgQIECBAgAABAgQIdCEgANoFnqIECBAgQIAAAQIECBAgQIAAAQIECPS2gABob78frSNAgAABAgQIECBAgAABAgQIECBAoAsBAdAu8BQlQIAAAQIECBAgQIAAAQIECBAgQKC3BQRAe/v9aB0BAgQIECBAgAABAgQIECBAgAABAl0ICIB2gacoAQIECBAgQIAAAQIECBAgQIAAAQK9LSAA2tvvR+sIECBAgAABAgQIECBAgAABAgQIEOhCQAC0CzxFCRAgQIAAAQIECBAgQIAAAQIECBDobQEB0N5+P1pHgAABAgQIECBAgAABAgQIECBAgEAXAgKgXeApSoAAAQIECBAgQIAAAQIECBAgQIBAbwsIgPb2+9E6AgQIECBAgAABAgQIECBAgAABAgS6EBAA7QJPUQIECBAgQIAAAQIECBAgQIAAAQIEeltAALS334/WESBAgAABAgQIECBAgAABAgQIECDQhYAAaBd4ihIgQIAAAQIECBAgQIAAAQIECBAg0NsCk3u7eVpHgAABAgQIECBAgACBcgQWXHDBtM022xRWtthiixWmSyRAgAABAgR6X0AAtPffkRYSIECAAAECBAgQIFCCwNSpU9OXv/zlEmpSBQECBAgQIFCmgCnwZWqriwABAgQIECBAgAABAgQIECBAgACBUgUEQEvlVhkBAgQIECBAgAABAgQIECBAgAABAmUKCICWqa0uAgQIECBAgAABAgQIECBAgAABAgRKFRAALZVbZQQIECBAgAABAgQIECBAgAABAgQIlCkgAFqmtroIECBAgAABAgQIECBAgAABAgQIEChVwC7wpXKrjAABAgQIECBAgAABAgQIECAwOAJXXnlluv7661t2aOmll04HHHBAy/tuEChDQAC0DGV1ECBAgAABAgQIECBAgAABAgQGUCACoKeeemrLnq255poCoC113ChLwBT4sqTVQ4AAAQIECBAgQIAAAQIECBAgQIBA6QJGgJZOrkICBAgQIECAAAECBAgQIECAwGAI7L333mnjjTeuduaYY45Jd911V/X8a1/7WpoyZUqaOnXqYHRUL/paQAC0r1+fxhMgQIAAAQIECBAgQIAAAQIE5p3Aq1/96hR/4jj99NPrAdBdd901Lb744vOuYWomkBMwBT6H4ZQAAQIECBAgQIAAAQIECBAgQIAAgcESEAAdrPepNwQIECBAgAABAgQIECBAgAABAgQI5AQEQHMYTgkQIECAAAECBAgQIECAAAECBAgQGCwBAdDBep96Q4AAAQIECBAgQIAAAQIECBAgQIBATkAANIfhlAABAgQIECBAgAABAgQIECBAgACBwRIQAB2s96k3BAgQIECAAAECBAgQIECAAAECBAjkBARAcxhOCRAgQIAAAQIECBAgQIAAAQIECBAYLAEB0MF6n3pDgAABAgQIECBAgAABAgQIECBAgEBOQAA0h+GUAAECBAgQIECAAAECBAgQIECAAIHBEhAAHaz3qTcECBAgQIAAAQIECBAgQIAAAQIECOQEBEBzGE4JECBAgAABAgQIECBAgAABAgQIEBgsAQHQwXqfekOAAAECBAgQIECAAAECBAgQIECAQE5AADSH4ZQAAQIECBAgQIAAAQIECBAgQIAAgcESmDxY3dEbAgQIECBAgAABAgQIjE5g9uzZ6be//W1h4Q022CAtuuiihfckEiBAgAABAr0tIADa2+9H6wgQIECAAAECBAgQKEngqaeeSu9973sLa5s5c2aaPn164T2JBAgQIECAQG8LmALf2+9H6wgQIECAAAECBAgQIECAAAECBAgQ6EJAALQLPEUJECBAgAABAgQIECBAgAABAgQIEOhtAQHQ3n4/WkeAAAECBAgQIECAAAECBAgQIECAQBcCAqBd4ClKgAABAgQIECBAgAABAgQIECBAgEBvCwiA9vb70ToCBAgQIECAAAECBAgQIECAAAECBLoQEADtAk9RAgQIECBAgAABAgQIECBAgAABAgR6W0AAtLffj9YRIECAAAECBAgQIECAAAECBAgQINCFgABoF3iKEiBAgAABAgQIECBAgAABAgQIECDQ2wICoL39frSOAAECBAgQIECAAAECBAgQIECAAIEuBARAu8BTlAABAgQIECBAgAABAgQIECBAgACB3hYQAO3t96N1BAgQIECAAAECBAgQIECAAAECBAh0ISAA2gWeogQIECBAgAABAgQIECBAgAABAgQI9LaAAGhvvx+tI0CAAAECBAgQIECAAAECBAgQIECgCwEB0C7wFCVAgAABAgQIECBAgAABAgQIECBAoLcFBEB7+/1oHQECBAgQIECAAAECBAgQIECAAAECXQgIgHaBpygBAgQIECBAgAABAgQIECBAgAABAr0tIADa2+9H6wgQIECAAAECBAgQIECAAAECBAgQ6EJAALQLPEUJECBAgAABAgQIECBAgAABAgQIEOhtAQHQ3n4/WkeAAAECBAgQIECAAAECBAgQIECAQBcCAqBd4ClKgAABAgQIECBAgAABAgQIECBAgEBvCwiA9vb70ToCBAgQIECAAAECBAgQIECAAAECBLoQEADtAk9RAgQIECBAgAABAgQIECBAgAABAgR6W0AAtLffj9YRIECAAAECBAgQIECAAAECBAgQINCFwOQuyipKgAABAgQIECBAgACBgRGYPHly2nDDDQv7s/DCCxemSyRAgAABAgR6X0AAtPffkRYSIECAAAECBAgQIFCCwLRp09JFF11UQk2qIECAAAECBMoUMAW+TG11ESBAgAABAgQIECBAgAABAgQIECBQqoAAaKncKiNAgAABAgQIECBAgAABAgQIECBAoEwBAdAytdVFgAABAgQIECBAgAABAgQIECBAgECpAgKgpXKrjAABAgQIECBAgAABAgQIECBAgACBMgUEQMvUVhcBAgQIECBAgAABAgQIECBAgAABAqUKCICWyq0yAgQIECBAgAABAgQIECBAgAABAgTKFBAALVNbXQQIECBAgAABAgQIECBAgAABAgQIlCogAFoqt8oIECBAgAABAgQIECBAgAABAgQIEChTQAC0TG11ESBAgAABAgQIECBAgAABAgQIECBQqoAAaKncKiNAgAABAgQIECBAgAABAgQIECBAoEwBAdAytdVFgAABAgQIECBAgAABAgQIECBAgECpAgKgpXKrjAABAgQIECBAgAABAgQIECBAgACBMgUEQMvUVhcBAgQIECBAgAABAgQIECBAgAABAqUKCICWyq0yAgQIECBAgAABAgQIECBAgAABAgTKFBAALVNbXQQIECBAgAABAgQIECBAgAABAgQIlCogAFoqt8oIECBAgAABAgQIECBAgAABAgQIEChTQAC0TG11ESBAgAABAgQIECBAgAABAgQIECBQqoAAaKncKiNAgAABAgQIECBAgAABAgQIECBAoEwBAdAytdVFgAABAgQIECBAgAABAgQIECBAgECpAgKgpXKrjAABAgQIECBAgAABAgQIECBAgACBMgUEQMvUVhcBAgQIECBAgAABAgQIECBAgAABAqUKCICWyq0yAgQIECBAgAABAgQIECBAgAABAgTKFBAALVNbXQQIECBAgAABAgQIECBAgAABAgQIlCowudTaVEaAAAECBAgQIECAAIEeFZgzZ0664447Clu36qqrpoUWWqjwnkQCBAgQIECgtwUEQHv7/WgdAQIECBAgQIAAAQIlCTz55JNpl112Kaxt5syZafr06YX3JBIgQIAAAQK9LWAKfG+/H60jQIAAAQIECBAgQIAAAQIECBAgQKALAQHQLvAUJUCAAAECBAgQIECAAAECBAgQIECgtwUEQHv7/WgdAQIECBAgQIAAAQIECBAgQIAAAQJdCAiAdoGnKAECBAgQIECAAAECBAgQIECAAAECvS0gANrb70frCBAgQIAAAQIECBAgQIAAAQIECBDoQkAAtAs8RQkQIECAAAECBAgQIECAAAECBAgQ6G0BAdDefj9aR4AAAQIECBAgQIAAAQIECBAgQIBAFwICoF3gKUqAAAECBAgQIECAAAECBAgQIECAQG8LCID29vvROgIECBAgQIAAAQIECBAgQIAAAQIEuhAQAO0CT1ECBAgQIECAAAECBAgQIECAAAECBHpbQAC0t9+P1hEgQIAAAQIECBAgQIAAAQIECBAg0IWAAGgXeIoSIECAAAECBAgQIECAAAECBAgQINDbAgKgvf1+tI4AAQIECBAgQIAAAQIECBAgQIAAgS4EBEC7wFOUAAECBAgQIECAAAECBAgQIECAAIHeFhAA7e33o3UECBAgQIAAAQIECBAgQIAAAQIECHQhIADaBZ6iBAgQIECAAAECBAgQIECAAAECBAj0toAAaG+/H60jQIAAAQIECBAgQIAAAQIECBAgQKALAQHQLvAUJUCAAAECBAgQIECAAAECBAgQIECgtwUEQHv7/WgdAQIECBAgQIAAAQIECBAgQIAAAQJdCAiAdoGnKAECBAgQIECAAAECBAgQIECAAAECvS0gANrb70frCBAgQIAAAQIECBAgQIAAAQIECBDoQkAAtAs8RQkQIECAAAECBAgQIECAAAECBAgQ6G0BAdDefj9aR4AAAQIECBAgQIAAAQIECBAgQIBAFwKTuyirKAECBAgQIECAAAECBAZGYL755ksrr7xyYX8WWGCBwnSJBAgQIECAQO8LCID2/jvSQgIECBAgQIAAAQIEShBYYokl0o9//OMSalIFAQIECBAgUKaAKfBlaquLAAECBAgQIECAAAECBAgQIECAAIFSBQRAS+VWGQECBAgQIECAAAECBAgQIECAAAECZQoIgJaprS4CBAgQIECAAAECBAgQIECAAAECBEoVEAAtlVtlBAgQIECAAAECBAgQIECAAAECBAiUKSAAWqa2uggQIECAAAECBAgQIECAAAECBAgQKFVAALRUbpURIECAAAECBAgQIECAAAECBAgQIFCmgABomdrqIkCAAAECBAgQIECAAAECBAgQIECgVAEB0FK5VUaAAAECBAgQIECAAAECBAgQIECAQJkCAqBlaquLAAECBAgQIECAAAECBAgQIECAAIFSBQRAS+VWGQECBAgQIECAAAECBAgQIECAAAECZQoIgJaprS4CBAgQIECAAAECBAgQIECAAAECBEoVEAAtlVtlBAgQIECAAAECBAgQIECAAAECBAiUKSAAWqa2uggQIECAAAECBAgQIECAAAECBAgQKFVAALRUbpURIECAAAECBAgQIECAAAECBAgQIFCmgABomdrqIkCAAAECBAgQIECAAAECBAgQIECgVAEB0FK5VUaAAAECBAgQIECAAAECBAgQIECAQJkCAqBlaquLAAECBAgQIECAAAECBAgQIECAAIFSBQRAS+VWGQECBAgQIECAAAECBAgQIECAAAECZQoIgJaprS4CBAgQIECAAAECBAgQIECAAAECBEoVEAAtlVtlBAgQIECAAAECBAgQIECAAAECBAiUKSAAWqa2uggQIECAAAECBAgQIECAAAECBAgQKFVAALRUbpURIECAAAECBAgQIECAAAECBAgQIFCmgABomdrqIkCAAAECBAgQIECAAAECBAgQIECgVIHJpdamMgIECBAgQIAAAQIECPSowNy5c9MjjzxS2Lqll146TZ7sn0+FOBIJECBAgECPC/gveI+/IM0jQIAAAQIECBAgQKAcgSeeeCJttdVWhZXNnDkzTZ8+vfCeRAIECBAgQKC3BUyB7+33o3UECBAgQIAAAQIECBAgQIAAAQIECHQhIADaBZ6iBAgQIECAAAECBAgQIECAAAECBAj0toAAaG+/H60jQIAAAQIECBAgQIAAAQIECBAgQKALAQHQLvAUJUCAAAECBAgQIECAAAECBAgQIECgtwUEQHv7/WgdAQIECBAgQIAAAQIECBAgQIAAAQJdCAiAdoGnKAECBAgQIECAAAECBAgQIECAAAECvS0gANrb70frCBAgQIAAAQIECBAgQIAAAQIECBDoQkAAtAs8RQkQIECAAAECBAgQIECAAAECBAgQ6G0BAdDefj9aR4AAAQIECBAgQIAAAQIECBAgQIBAFwICoF3gKUqAAAECBAgQIECAAAECBAgQIECAQG8LTO7t5mkdAQIECBAgQIAAAQIECBAgQKB/Be6///503333tezAggsumDbddNOW990gQKB7AQHQ7g09gQABAgQIECBAgAABAgQIECBQKHDBBRekY489tvBeJC677LLpL3/5S8v7bhAg0L2AKfDdG3oCAQIECBAgQIAAAQIECBAgQIAAAQI9KmAEaI++GM0iQIAAAQIECBAgQIAAAQIE+l9gww03TPvuu2+1I1dccUV64IEHqufveMc70tSpU9NLX/rS/u+kHhDocQEB0B5/QZpHgAABAgQIECBAgAABAgQI9K/Adtttl+JPHPG07jBpAABAAElEQVRZC4Aef/zxaZVVVunfjmk5gT4SMAW+j16WphIgQIAAAQIECBAgQIAAAQIECBAg0JmAAGhnXnITIECAAAECBAgQIECAAAECBAgQINBHAgKgffSyNJUAAQIECBAgQIAAAQIECBAgQIAAgc4EBEA785KbAAECBAgQIECAAAECBAgQIECAAIE+EhAA7aOXpakECBAgQIAAAQIECBAgQIAAAQIECHQmIADamZfcBAgQIECAAAECBAgQIECAAAECBAj0kcDkPmprTzT10EMPTb/+9a/TRz/60bTbbru11aYXX3wxXXHFFemqq65KDzzwQHr22WfTWmutldZdd9202WabpTXXXLPU57RVmUwECBAgQIAAAQIECBAgQIAAAQIEBkBAALSDl3jJJZdUg58dFEmPPvpo+tjHPpbuvffehmK//e1vU/w5//zz01FHHZXe/OY3N9xvvhir5zQ/1zUBAgQIECBAgAABAgQIECBAgACBQRYQAG3z7f70pz9Np59+epu5/zfbM888kw477LB68HP69Olp8803T0svvXS6+eab07XXXptmz56djjvuuBR5d91118Lnj9VzCh8ukQABAgQIECBAgACBqsB8882Xpk2bVqgR9xwECBAgQIBAfwoIgI7w3p5//vl07rnnpm9961upUqmMkLvx9te//vV09913VxO33nrrdOyxx6YFFliger3TTjul3//+9+nwww+vBj+/8IUvpC222CIttdRSjQ/JrsbqOUMeLIEAAQIECBAgQIAAgbrAEkss0fGMr3phJwQIECBAgEDPCvg15jCvJkZp7rPPPumiiy5Kc+fOHSbn0FtPPfVUuuyyy6o3XvaylzUEP2u511tvvWp6XMc6obX8tfvxOVbPyT/TOQECBAgQIECAAAECBAgQIECAAIGJIiAAWvCmY6Tnaaedlg488MD04IMPVnOsuOKKbW96FAWuueaaNGvWrGrZnXfeuT7ys5qQ+5+YEv+KV7yimhIB0Dlz5uTujt1zGh7qggABAgQIECBAgAABAgQIECBAgMAEERAALXjRMdrz0ksvrd/Zfvvtq9PgYw3P2jFp0qTaaeHnrbfeWk/fZJNN6udFJ695zWuqyY8//ni66aabGrKM1XMaHuqCAAECBAgQIECAAAECBAgQIECAwAQREAAd5kVvvPHG6ayzzkpHHnlkWnjhhYfJOfTWH//4x2piBEpXXXXVoRlyKfnA6j333JO7k9JYPafhoS4IECBAgAABAgQIECBAgAABAgQITBABmyAVvOjY4fHss89O66yzTsHd9pIeeuihasbY8X3y5OGZl1lmmfpD77///vp5nIzVcxoemrv45S9/mR5++OFcSuPpE088kaZOnVrdqCnWKXUQIECAAAECBAgQIECAAAECBAgQ6CeB4SNz/dSTMWxrjNrsJvgZa3/WNk1afPHFR2zZtGnT6nli06PaMVbPqT2v6POCCy5IP//5z4tu1dOWXXbZ9MADD9TXNK3fcEKAAAECBAgQIECAAAECBAgQIECgxwVMgR+HF/TMM8/Un7rQQgvVz1ud5PM899xz9Wxj9Zz6A50QIECAAAECBAgQIECAAAECBAgQmGACAqDj8MKfffbZ+lMXXHDB+nmrk3ye559/vp5trJ5Tf6ATAgQIECBAgAABAgQIECBAgAABAhNMwBT4cXjh+TU/21k3c86cOfVW5IOhY/Wc+sMLTnbccce03nrrFdz536SLL7443XbbbemFF15omccNAgQIECBAgAABAgQIECBAgAABAr0qIAA6Dm9mkUUWqT919uzZ9fNWJ/k8iy22WD3bWD2n/sCCk+23374g9V9JV199dbruuuv+leCMAAECBAgQIECAAAECBAgQIECAQB8JmAI/Di9r0UUXrT81v45nPbHpJD/VPR8AHavnNFXnkgABAgQIECBAgAABAgQIECBAgMCEERAAHYdXHZsaLbnkktUn/+1vfxuxhkceeaSeZ4kllqifj9Vz6g90QoAAAQIECBAgQIAAAQIECBAgQGCCCQiAjtMLX3nllatPjtGdf//734et5cEHH6zfX2utterncTJWz2l4qAsCBAgQIECAAAECBAgQIECAAAECE0RAAHScXvTaa69df/Itt9xSPy86+f3vf19PzpeLxPx1N8+pV+CEAAECBAgQIECAAAECBAgQIECAwAQSEAAdp5e91VZb1Z/8k5/8pH7efBLT33/3u99Vk9dYY42UnwIfiWP1nOZ6XRMgQIAAAQIECBAgQIAAAQIECBCYCAICoOP0lldbbbUUAc04Yhf1oiDo888/n0466aT04osvVvPttdde1c/8/4zVc/LPdE6AAAECBAgQIECAAAECBAgQIEBgoggIgI7jmz744IPrTz/++OPT+eefnx5++OE0Z86cFNPeP/axj6Ubb7yxmiemum+55Zb1/PmTsXpO/pnOCRAgQIAAAQIECBAgQIAAAQIECEwEgckToZPzqo/rrLNO+vSnP51OPPHE9Nxzz6Wvfe1r1T/zzz9/fdRntG2FFVZIJ598cppvvuJ49Fg9Z145qJcAAQIECBAgQIAAAQIECBAgQIDAvBIojrjNq9YMYL3bbLNNOuecc6rT4WsBztqU98mTJ6fdd9+9en/atGnD9n6snjNsJW4SIECAAAECBAgQIECAAAECBAgQGDABI0A7eKFve9vbUvzp9FhllVWqIz9jFOidd96ZYuOj5ZdfPq244oppypQpbT9urJ7TdoUyEiBAgAABAgQIECBAgAABAgQIEOhzAQHQEl/gwgsvnNZdd93qn26qHavndNMGZQkQIECAAAECBAgQIECAAAECBAj0g4Ap8P3wlrSRAAECBAgQIECAAAECBAgQIECAAIFRCQiAjopNIQIECBAgQIAAAQIECBAgQIAAAQIE+kHAFPh+eEvaSIAAAQIECBAgQIBAKQKzZs0qrCeWoZo0aVLhPYkECBAgQIBAbwsIgPb2+9E6AgQIECBAgAABAgRKEnjsscfS5ptvXljbzJkz0/Tp0wvvSSRAgAABAgR6W8AU+N5+P1pHgAABAgQIECBAgAABAgQIECBAgEAXAgKgXeApSoAAAQIECBAgQIAAAQIECBAgQIBAbwsIgPb2+9E6AgQIECBAgAABAgQIECBAgAABAgS6EBAA7QJPUQIECBAgQIAAAQIECBAgQIAAAQIEeltAALS334/WESBAgAABAgQIECBAgAABAgQIECDQhYAAaBd4ihIgQIAAAQIECBAgQIAAAQIECBAg0NsCAqC9/X60jgABAgQIECBAgAABAgQIECBAgACBLgQEQLvAU5QAAQIECBAgQIAAAQIECBAgQIAAgd4WEADt7fejdQQIECBAgAABAgQIECBAgAABAgQIdCEgANoFnqIECBAgQIAAAQIECBAgQIAAAQIECPS2gABob78frSNAgAABAgQIECBAgAABAgQIECBAoAsBAdAu8BQlQIAAAQIECBAgQIAAAQIECBAgQKC3BQRAe/v9aB0BAgQIECBAgAABAgQIECBAgAABAl0ICIB2gacoAQIECBAgQIAAAQIECBAgQIAAAQK9LSAA2tvvR+sIECBAgAABAgQIECBAgAABAgQIEOhCQAC0CzxFCRAgQIAAAQIECBAgQIAAAQIECBDobQEB0N5+P1pHgAABAgQIECBAgAABAgQIECBAgEAXAgKgXeApSoAAAQIECBAgQIAAAQIECBAgQIBAbwsIgPb2+9E6AgQIECBAgAABAgQIECBAgAABAgS6EBAA7QJPUQIECBAgQIAAAQIECBAgQIAAAQIEeltAALS334/WESBAgAABAgQIECBAgAABAgQIECDQhYAAaBd4ihIgQIAAAQIECBAgQIAAAQIECBAg0NsCAqC9/X60jgABAgQIECBAgAABAgQIECBAgACBLgQEQLvAU5QAAQIECBAgQIAAAQIECBAgQIAAgd4WmNzbzdM6AgQIECBAgAABAgQIlCOw1FJLpdtvv72cytRCgAABAgQIlCZgBGhp1CoiQIAAAQIECBAgQIAAAQIECBAgQKBsAQHQssXVR4AAAQIECBAgQIAAAQIECBAgQIBAaQICoKVRq4gAAQIECBAgQIAAAQIECBAgQIAAgbIFBEDLFlcfAQIECBAgQIAAAQIECBAgQIAAAQKlCQiAlkatIgIECBAgQIAAAQIECBAgQIAAAQIEyhYQAC1bXH0ECBAgQIAAAQIECBAgQIAAAQIECJQmIABaGrWKCBAgQIAAAQIECBAgQIAAAQIECBAoW0AAtGxx9REgQIAAAQIECBAgQIAAAQIECBAgUJqAAGhp1CoiQIAAAQIECBAgQIAAAQIECBAgQKBsAQHQssXVR4AAAQIECBAgQIAAAQIECBAgQIBAaQICoKVRq4gAAQIECBAgQIAAAQIECBAgQIAAgbIFBEDLFlcfAQIECBAgQIAAAQIECBAgQIAAAQKlCQiAlkatIgIECBAgQIAAAQIECBAgQIAAAQIEyhYQAC1bXH0ECBAgQIAAAQIECBAgQIAAAQIECJQmIABaGrWKCBAgQIAAAQIECBAgQIAAAQIECBAoW0AAtGxx9REgQIAAAQIECBAgQIAAAQIECBAgUJqAAGhp1CoiQIAAAQIECBAgQIAAAQIECBAgQKBsAQHQssXVR4AAAQIECBAgQIAAAQIECBAgQIBAaQICoKVRq4gAAQIECBAgQIAAAQIECBAgQIAAgbIFBEDLFlcfAQIECBAgQIAAAQIECBAgQIAAAQKlCQiAlkatIgIECBAgQIAAAQIECBAgQIAAAQIEyhYQAC1bXH0ECBAgQIAAAQIECBAgQIAAgQEUmDt3ADulSwMhIAA6EK9RJwgQIECAAAECBAgQIECAAAEC5Qv8858pnXhiSuuvn9JvfvOv+tdeO6UPfSilu+/+V5ozAvNKQAB0XsmrlwABAgQIECBAgAABAgQIECDQxwLXXJPS9OkpHX10Srfc0tiRv/41pS9/OaW11krppJMa77kiULbA5LIrVB8BAgQIECBAgAABAgR6UeDxxx9PW2+9dWHTLr300rTqqqsW3pNIgACBiSgwc2ZKO++c0pw5w/f+hRdSOuqolCIgevrpw+d1l8B4CRgBOl6ynkuAAAECBAgQIECAQF8JVCqV9Pzzzxf+iXsOAgQIEPhfgQceSGnPPUcOfua9zjgjpYsuyqc4J1CegABoedZqIkCAAAECBAgQIECAAAECBAj0vcAnPpHSU0913o0jjkhp9uzOyylBoFsBU+C7FVSeAAECBAgQIECAAAECBAgQIDBBBJ59NqVvfWt0nY2Ro1ddldJ2242uvFJjLzBjxoxs86rc7lVNVWywwQbp8MMPb0rtv0sB0P57Z1pMgAABAgQIECBAgAABAgQIEJgnAjfckNKsWaOv+uqrBUBHrzf2JX/xi1+kWOe61fFUNtR3EAKgpsC3esPSCRAgQIAAAQIECBAgQIAAAQIEGgQefLDhsuOLbst3XKECBDIBI0B9DQgQIECAAAECBAgQIECAAAECBNoSmNxlJKnb8m01Uqa2BU477bT0iVjUNTu23Xbb9MQTT6QpU6akGBkax9SpU6uf/f4/XX5t+7372k+AAAECBAgQIECAAAECBAgQINCuwCtf2W7O4nzdli9+qtTRCqy00kr1ogsssED1fHIWpV5//fXr6YNwYgr8ILxFfSBAgAABAgQIECBAgAABAgQIlCDw2temNG3a6Ct6y1tGX1ZJAqMVEAAdrZxyBAgQIECAAAECBAgQIECAAIEJJhBT2Pfdd3SdXm+9lDbffHRllSLQjYAAaDd6yhIgQIAAAQIECBAgQIAAAQIEJpjAUUeltMIKnXV6viwCdcYZKcWng0DZAr52ZYurjwABAgQIECBAgAABAgQIECDQxwIxBX677TrrwDbbpLTVVp2VkZvAWAnYBGmsJD2HAAECBAgQIECAAAECBAgQIDABBJ55JqXvfa+zjt50U0rPPpvSoot2Vm5e537wwQfT448/3rIZiy22WJo+fXrL+270hoAAaG+8B60gQIAAAQIECBAgQIAAAQIECPSFwFlnpfTEE501NfJ//espHXBAZ+Xmde5PfvKT6bzzzmvZjM022yxdf/31Le+70RsCpsD3xnvQCgIECBAgQIAAAQIECBAgQIBAzws8//z/ruVZ1ND55y9K/VfamWemVKn869oZgbIEjAAtS1o9BAgQIECAAAECBAgQIECAAIE+Fzj33JQefri4E8sum9JDDxXfi9Tbb09p5syU3va21nl67c4mm2ySnok5/9lx+eWXp6effrp6/va3v736ufrqq1c//U9vCwiA9vb70ToCBAgQIECAAAECBAgQIECAQE8IvPhiSqeeWtyURRZJaZll/hUAjd3e584dmnfGjP4KgO63334p/sSx1lprpT/96U/V84svvrj66X/6Q8AU+P54T1pJgAABAgQIECBAgAABAgQIEJinAv/5nyndc09xE/bdN6UFF/zXvZ12+td5/uzqq1O69dZ8inMC4y8gADr+xmogQIAAAQIECBAgQIAAAQIECPS1QKzdecopxV1YYIGUDjmk8d7/DZpsTPy/q1ajSAszSyQwBgIC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oB0BAdB2lOQhQIAAAQIECBAgQIAAAQIECAyAwB13pHTppcUd2XjjlLbZpvheGanve19KU6YU13TGGcXpUgm0IyAA2o6SPAQIECBAgAABAgQIECBAgACBARCItT/nzi3uyDHHFKeXlfrSl6YUQdCi49ZbU7ryyqI70giMLDB55CxyECBAgAABAgQIECBAYPAFnnjiibTLLrsUdvT8889PK620UuE9iQQIEOgXgfvvT+m//qu4tWuvndIOOxTfKzP1wANTOvPM4iDtjBkpvelNZbZGXYMiIAA6KG9SPwgQIECAAAECBAgQ6EpgbjYk6q9//WvhM+bMmVOYLpEAAQL9JHDKKSm98EJxiz/+8ZQmTSq+V2bqqqumtOOOKX3/+0NrjY2bbr89pTXWGHpPCoHhBEyBH07HPQIECBAgQIAAAQIECBAgQIDAAAj87W8pnXdecUdWXjmlPfYovjcvUg8+uLjWSiWlGAXqINCpgABop2LyEyBAgAABAgQIECBAgAABAgT6TODUU1OaNau40UcemdLkHpojvMUWKW2wQXFbv/nNlLIVSxwEOhIQAO2IS2YCBAgQIECAAAECBAgQIECAQH8J/OMfKZ19dnGbl1supXe/u/jevEw95JDi2p99tnVfiktIJZCSAKhvAQECBAgQIECAAAECBAgQIEBggAW+8IWUnnqquIOHHprSQgsV35uXqTElf9lli1vwpS+1Xsu0uITUiS4gADrRvwH6T4AAAQIECBAgQIAAAQIECAysQIyYjF3Vi44llkhp332L7sz7tAUXTOnDHy5ux0MPpfTtbxffk0qgSEAAtEhFGgECBAgQIECAAAECBAgQIEBgAATOOSelRx8t7shHP5rSlCnF93ohdb/9Ulp44eKWnH56cbpUAkUCAqBFKtIIECBAgAABAgQIECBAgAABAn0uMHt2SqedVtyJCHwecEDxvV5JXWqplN71ruLW3HhjSr/4RfE9qQSaBQRAm0VcEyBAgAABAgQIECBAgAABAgQGQOD881N68MHijnzoQynFFPhePz7ykdYtNAq0tY07jQICoI0erggQIECAAAECBAgQIECAAAECfS8wd25Kn/tccTdi06OY/t4PxzrrpPTmNxe39Ac/SOm++4rvSSWQFxAAzWs4J0CAAAECBAgQIECAAAECBAgMgMC3vpXSnXcWd+R970tpueWK7/Vi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nq0Vut9+ienTffoE16MkvwK2tqcLvdQqffaZXAxI6tWrVodzUA4FCIDmENdOPWHCBL3wwgtpXaVFixaBAdB58+bpwgsv1IwZMyqd680335T9e/DBB916E0N1wAEHVCrnCQIIIIAAAggggAACCCCAAAII5F9g7lzp7beDrzt1qrTDDsHllBRG4KWXsruL88UXCYAWZuRSX5UAaGqfrEs/s/B/lmnJkiVuQd2Ly4Kfnd1KvHvuuafatWund999Vy+//LK7NXulrr76alndww8/PMsrcjgCCCCAAAIIIIAAAggggAACCGQj8OyzqQNpbhIoKYQCc+Zk16hsj8/u6hwdJEAANEimDvKXLVum2bNnx8+022676fLLL0951voBi30MHz5cX3zxRfzYvn376oorrlCjRo3izw855BC9//77GjJkSDz4efvtt6t3795q27ZtymtRiAACCCCAAAIIIIAAAggggAACuROwACgpegK2NEE2aV24JptTcGwOBFheNweoyVNa0DIWi8Wf7uDua2/Tpk3KfxtssEHy0LKvP//8s5555pn48/bt21cKfiYrde3aNZ5vz22d0GT9ZDlfEUAAAQQQQAABBBBAAAEEEEAgfwIrVsgth5e/63GluhPYfPPszuUm6ro9W7I7B0fXvQAB0Lo3LTtjxenv2267bVl+Jg9edItH2J2klg499NCyOz+rnsOmxG+66abxbAuArl69umoVniOAAAIIIIAAAggggAACCCCAQB4E3N7FWrw4DxfiEnUusPfeUrNmtT/t5MnSzjtL9pUUHgECoDkci7oIgH7wwQdlLezRo0fZY98Dm2Zvaf78+XrnnXd8VchDAAEEEEAAAQQQQAABBBBAAIEcCwRNf2/IQoQ5ls/+9M2bSyeckN15Pv9c6tNHuugiafny7M7F0XUjQAC0bhy9Z0kGQFu3bq2NNtooXsemxH/33XdauHCh95iqmdOnT49n1atXT1tttVXV4krPbXOkZPryyy+TD/mKAAIIIIAAAggggAACCCCAAAJ5FBg3zn8xt7IdKQICf/yjtPHG2TV07Vrp5pulbt2kKVOyOxdHZy/AZw/ZG3rPYGtxJoOQNv192rRpeuCBB+IbFi1fF/63NT1tbdDTTjtNm2yyifc8c9ZtH2Y7vjes4aOiZJDVTvT11197z0cmAggggAACCCCAAAIIIIAAAgjk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4INYgQzKL1evXh3sb7zxxsG2Dxv9+vUzLVq0CETR99CnsMcee5jNNtssEKlZs2bBtg8be+65p+nZs2cgSqNGjYJtHzb23Xdfs3jxYitK48b+VZn2228/880331j5WrVq5YPKAhkaNmzo9bdBeUnqt69r166B7D5stGzZMk2+Xr16+SBWIIO+5an623XXXYNzPmy0b98+TT7f6radO3dOk69Hjx4+qC2QQflJqn1utdVWwTkfNhqsXRd8EAQZIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhkEmAIfCYR9iEAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAFvCOAA9UaVCAIBCEAAAhCAAAQgAAEIQAACEIAABCAAAQhkEsABmkmEfQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQMAbAjhAvVElgkAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAKZBHCAZhJhHwIQgAAEIAABCEAAAhCAAAQgAAEIQAACEPCGAA5Qb1SJIBCAAAQgAAEIQAACEIAABCAAAQhAAAIQgEAmARygmUTYhwAEIAABCEAAAhCAAAQgAAEIQAACEIAABLwhgAPUG1UiCAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIJBJoHHmAfYhAIHKE1i1apVp2rRpwQ9avHix+frrr+117du3L/j6pFywcOFCM2fOHLNixQqzzTbbmE022SQpSStLOr799lvz2muv2Xt16NDBdOrUqSz3jfsm0teHH35oPvjgAyNb3Hzzzc0WW2xhfxs1ahR38sry/KVLl1oZJavesc6dOxf1rpYlMTluonzg2WeftTF23nln065duxyx159Tq1evtvpT/tKsWTOz7bbbmo033rimAMgG582bZ5YtW2a0/dVXX1lZWrRoYVq2bGnatGlT83mK7HfBggVm5cqV9k95ppNPvxtttFFN6Wx9Sew333xjGjdubBo0aFCQyHovv/jiC3uN9Ks/QvUJUPak7Fl9qyv9ietD2VPfQJVb9NeqVSuz2WabJbZu9NZbb9l06jvdt2/f0hXsyR30jfvoo4/st27LLbc03bp1s9/LWhFvfSh7Ol00WLsuuB1+IQCByhGYPHmymTBhgpk1a5b58ssvreOoV69e5sADDzQ77rhjpAefc845ZsqUKTauc35EurBKkVS4nj9/vq2gt27dut5T33//ffPnP//ZPP/882nn5AA9+uijzVFHHVVwxSrtRgnZkeNiv/32s6k54YQTzM9+9rOEpCw9Ga+88oqRThRkh3IYhQVVev/2t7+Zv/71r0aFtMwgR+hpp51mvv/972eeSsS+3rd//etf5oUXXjBDhw412223XVq6VDm/5557zD/+8Q/z+eefp52Tw2mvvfYyxxxzjHX0pp2Mceezzz4zhx56qE2B3p9LL73U7LDDDjGmqLKPVsHsnXfeMf/973+ts3fXXXet50SZOHGiue2228zcuXPTEtOxY0fz61//2nzve99LO56kHTUK3X///ebll1+234h8RTNVPKTvPn36mP333980b948SeKEpuXNN980Dz30kJkxY4Z18OaSUU5evafbb7+9GTJkSGIrgqGCenZQ+eett95qG/VUudN3omfPnmaXXXax3+0NNtggr8Qq95x88sk23kknnWTz4bwXEaEsBCh7GlvOoexZFnMqy03Wl7KnYElW1dfU2HfuuefW46cy+B/+8Afz+uuvG5W1U4PqiAcccID9a9gwOYN2r7rqKvPPf/7TJvVHP/qRGTFihGnSpElq0r3ZXrNmjfnkk09suUz6UacdNaynhk8//dSMHTvWPPHEE0bxXVBj4b777mvOPPPMeuVVFyfu3/Wh7BnGGAdoGBWOQaCMBNRyec0115hJkyaF3lU9KY444ghzyimnmHwViaQ6QOWcuOmmm4wcEHKC6kPdu3dvM3jwYHPIIYdYufWRHzZsmO3VFApi3cHddtvNXHDBBTVf2a0VB+ioUaPMww8/bNUhx0RYT1w5tM8++2zbqy6b3txxOZiuuOKKRLV4ytly0UUXBY7N//3f/zX/7//9P5dkK5fOq2drrqAe27JfZ8+54lbjXKoDVM9TQUuFUDmyfQpyTsupKQd8qsNMPSR++ctfmh/+8IdWXJ1XATRXkO7EqNDea7nuWY5zf//7381f/vIX2yO+mPvJWaiGlsMPPzxxskkeOWDGjRtnKxDFyKeKlRqU1MiiBglC9Qi89NJL5rLLLgt6b2Y+uUuXLua8887L24iLAzSTXOX3KXtS9kxq4/v6UPbUKIfrr7/ejB8/3r7sW221lbn99tvTXvybb77ZfhvDOhakRlRj58UXX2xHJaUej2s71QGqNKi+p++EbyOR3n33XfO73/3OfPzxx2moVVe95JJLbE9dlcVV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" width="672" /></p>
<div class="sourceCode" id="cb64"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb64-1"><a href="#cb64-1" aria-hidden="true" tabindex="-1"></a>estimates_sogo_number_WLS <span class="ot">&lt;-</span> df_estimates 　 <span class="co">#for robustness check</span></span>
<span id="cb64-2"><a href="#cb64-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb64-3"><a href="#cb64-3" aria-hidden="true" tabindex="-1"></a>results_sogo_number_WLS <span class="ot">&lt;-</span> estimation_results <span class="co"># for only-post DID table</span></span></code></pre></div>
</div>
<div id="wls-no-trends-post-covid-month-dummies-table-c.5-4" class="section level2" number="8.3">
<h2><span class="header-section-number">8.3</span> WLS, no trends, post-covid-month dummies, Table C.5 (4)</h2>
<div class="sourceCode" id="cb65"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb65-1"><a href="#cb65-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb65-2"><a href="#cb65-2" aria-hidden="true" tabindex="-1"></a>estimation_results <span class="ot">&lt;-</span> <span class="fu">dynamic_onlypost_DID_WLS_notrend</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb65-3"><a href="#cb65-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>sogo_number, </span>
<span id="cb65-4"><a href="#cb65-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>unemploy_shock_diff2)</span>
<span id="cb65-5"><a href="#cb65-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb65-6"><a href="#cb65-6" aria-hidden="true" tabindex="-1"></a>texreg<span class="sc">::</span><span class="fu">screenreg</span>(<span class="at">l =</span> estimation_results , <span class="at">include.ci =</span> <span class="cn">FALSE</span>, <span class="at">digits=</span><span class="dv">3</span>)</span></code></pre></div>
<pre><code>## 2 coefficients  not defined because the design matrix is rank deficient</code></pre>
<pre><code>## 
## ===================================
##                         Model 1    
## -----------------------------------
## treat_var:date_2020_02             
##                                    
## treat_var:date_2020_03             
##                                    
## treat_var:date_2020_04    -0.410   
##                           (1.522)  
## treat_var:date_2020_05     9.863   
##                          (12.136)  
## treat_var:date_2020_06    54.371   
##                          (29.696)  
## treat_var:date_2020_07    82.429 * 
##                          (31.538)  
## treat_var:date_2020_08    52.048 **
##                          (16.772)  
## treat_var:date_2020_09    43.055   
##                          (23.427)  
## -----------------------------------
## R^2                        0.748   
## Adj. R^2                   0.726   
## Num. obs.                893       
## RMSE                    1070.294   
## N Clusters                47       
## ===================================
## *** p &lt; 0.001; ** p &lt; 0.01; * p &lt; 0.05</code></pre>
<div class="sourceCode" id="cb68"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb68-1"><a href="#cb68-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb68-2"><a href="#cb68-2" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_main</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb68-3"><a href="#cb68-3" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;unemploy_shock_diff2&quot;</span>,</span>
<span id="cb68-4"><a href="#cb68-4" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;sogo_number_WLS&quot;</span>)</span>
<span id="cb68-5"><a href="#cb68-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb68-6"><a href="#cb68-6" aria-hidden="true" tabindex="-1"></a><span class="co"># Event study graph</span></span>
<span id="cb68-7"><a href="#cb68-7" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_WLS_onlypost <span class="ot">&lt;-</span> <span class="fu">event_study_graph_2nd_safetynet</span>(<span class="at">data =</span> df_estimates ,</span>
<span id="cb68-8"><a href="#cb68-8" aria-hidden="true" tabindex="-1"></a>                                          <span class="at">graph_title =</span> <span class="st">&quot;sogo_number_WLS&quot;</span>)</span>
<span id="cb68-9"><a href="#cb68-9" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb68-10"><a href="#cb68-10" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_sogo_number_WLS_onlypost)</span></code></pre></div>
<div id="htmlwidget-df7d6bd24d5bdc177429" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-df7d6bd24d5bdc177429">{"x":{"data":[{"x":[2,3,4,5,6,7,1],"y":[-0.410405167572699,9.86272927637272,54.3710750620927,82.4286582758379,52.0483516100363,43.0551952002383,0],"text":["month: 2020-04<br />estimate: -0.4104052<br />label: blue<br />label: <br />label: ","month: 2020-05<br />estimate:  9.8627293<br />label: blue<br />label: <br />label: ","month: 2020-06<br />estimate: 54.3710751<br />label: blue<br />label: <br />label: ","month: 2020-07<br />estimate: 82.4286583<br />label: blue<br />label: <br />label: ","month: 2020-08<br />estimate: 52.0483516<br />label: blue<br />label: <br />label: ","month: 2020-09<br />estimate: 43.0551952<br />label: blue<br />label: <br />label: ","month: 2020-01<br />estimate:  0.0000000<br />label: blue<br />label: <br />label: "],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,0,255,1)","opacity":1,"size":9.4488188976378,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(0,0,255,1)"}},"hoveron":"points","legendgroup":"","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1,2,3,4,5,6,7],"y":[0,-0.410405167572699,9.86272927637272,54.3710750620927,82.4286582758379,52.0483516100363,43.0551952002383],"text":["month: 2020-01<br />estimate:  0.0000000<br />label: blue<br />label: <br />label: ","month: 2020-04<br />estimate: -0.4104052<br />label: blue<br />label: <br />label: ","month: 2020-05<br />estimate:  9.8627293<br />label: blue<br />label: <br />label: ","month: 2020-06<br />estimate: 54.3710751<br />label: blue<br />label: <br />label: ","month: 2020-07<br />estimate: 82.4286583<br />label: blue<br />label: <br />label: ","month: 2020-08<br />estimate: 52.0483516<br />label: blue<br />label: <br />label: ","month: 2020-09<br />estimate: 43.0551952<br />label: blue<br />label: <br />label: "],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,0,255,1)","dash":"solid"},"hoveron":"points","legendgroup":"","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[2,3,4,5,6,7,1],"y":[-0.410405167572699,9.86272927637272,54.3710750620927,82.4286582758379,52.0483516100363,43.0551952002383,0],"text":["ci_lower:  -2.964992<br />ci_upper:   2.144182<br />width: 0.5<br />colour: black<br />month: 2020-04<br />estimate: -0.4104052<br />label: black<br />label: <br />label: ","ci_lower: -10.509958<br />ci_upper:  30.235417<br />width: 0.5<br />colour: black<br />month: 2020-05<br />estimate:  9.8627293<br />label: black<br />label: <br />label: ","ci_lower:   4.521987<br />ci_upper: 104.220164<br />width: 0.5<br />colour: black<br />month: 2020-06<br />estimate: 54.3710751<br />label: black<br />label: <br />label: ","ci_lower:  29.487778<br />ci_upper: 135.369539<br />width: 0.5<br />colour: black<br />month: 2020-07<br />estimate: 82.4286583<br />label: black<br />label: <br />label: ","ci_lower:  23.894040<br />ci_upper:  80.202663<br />width: 0.5<br />colour: black<br />month: 2020-08<br />estimate: 52.0483516<br />label: black<br />label: <br />label: ","ci_lower:   3.728400<br />ci_upper:  82.381990<br />width: 0.5<br />colour: black<br />month: 2020-09<br />estimate: 43.0551952<br />label: black<br />label: <br />label: ","ci_lower:   0.000000<br />ci_upper:   0.000000<br />width: 0.5<br />colour: black<br />month: 2020-01<br />estimate:  0.0000000<br />label: black<br />label: <br />label: "],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[2.55458714009532,20.3726874162719,49.8490885404933,52.9408803717251,28.154311565086,39.3267947314416,0],"arrayminus":[2.55458714009532,20.3726874162718,49.8490885404935,52.9408803717251,28.1543115650859,39.3267947314415,0],"type":"data","width":3.50000000000001,"symmetric":false,"color":"rgba(0,0,0,1)"},"legendgroup":"","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,7.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-17.8039329792722,142.663513486936],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":38.854296388543},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"sogo_number_WLS","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,7.6],"tickmode":"array","ticktext":["2020-01","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7],"categoryorder":"array","categoryarray":["2020-01","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-17.8039329792722,142.663513486936],"tickmode":"array","ticktext":["0","50","100"],"tickvals":[0,50,100],"categoryorder":"array","categoryarray":["0","50","100"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","showSendToCloud":false},"source":"A","attrs":{"441175de1432":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"441147001b12":{"x":{},"y":{},"colour":{},"shape":{}},"441157f15f28":{"ymin":{},"ymax":{},"width":{},"colour":{},"x":{},"y":{},"colour.1":{},"shape":{}},"4411279e6833":{"yintercept":{}},"441110cb0097":{"xintercept":{}}},"cur_data":"441175de1432","visdat":{"441175de1432":["function (y) ","x"],"441147001b12":["function (y) ","x"],"441157f15f28":["function (y) ","x"],"4411279e6833":["function (y) ","x"],"441110cb0097":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
<div class="sourceCode" id="cb69"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb69-1"><a href="#cb69-1" aria-hidden="true" tabindex="-1"></a>estimates_sogo_number_WLS_onlypost <span class="ot">&lt;-</span> df_estimates <span class="co">#for robustness check</span></span>
<span id="cb69-2"><a href="#cb69-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb69-3"><a href="#cb69-3" aria-hidden="true" tabindex="-1"></a>results_sogo_number_WLS_onlypost <span class="ot">&lt;-</span> estimation_results <span class="co"># for only-post DID table</span></span></code></pre></div>
</div>
</div>
<div id="y-general-support-funds総合支援の決定件数-with-covar" class="section level1" number="9">
<h1><span class="header-section-number">9</span> Y= general support funds/総合支援の決定件数 with covar</h1>
<div id="ols-no-trends-3" class="section level2" number="9.1">
<h2><span class="header-section-number">9.1</span> OLS, no trends</h2>
<div class="sourceCode" id="cb70"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb70-1"><a href="#cb70-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb70-2"><a href="#cb70-2" aria-hidden="true" tabindex="-1"></a>estimation_results <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_OLS_notrend_covar8Xcovid_months</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb70-3"><a href="#cb70-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>sogo_number, </span>
<span id="cb70-4"><a href="#cb70-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>unemploy_shock_diff2)</span>
<span id="cb70-5"><a href="#cb70-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb70-6"><a href="#cb70-6" aria-hidden="true" tabindex="-1"></a><span class="co">#texreg::screenreg(l = estimation_results, include.ci = FALSE, digits=3)</span></span>
<span id="cb70-7"><a href="#cb70-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb70-8"><a href="#cb70-8" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb70-9"><a href="#cb70-9" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_loan</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb70-10"><a href="#cb70-10" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;unemploy_shock_diff2&quot;</span>,</span>
<span id="cb70-11"><a href="#cb70-11" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;sogo_number_OLS&quot;</span>)</span>
<span id="cb70-12"><a href="#cb70-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb70-13"><a href="#cb70-13" aria-hidden="true" tabindex="-1"></a><span class="co"># graph</span></span>
<span id="cb70-14"><a href="#cb70-14" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_OLS_covar <span class="ot">&lt;-</span> <span class="fu">event_study_graph_2nd_safetynet</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb70-15"><a href="#cb70-15" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;sogo_number_OLS&quot;</span>)</span>
<span id="cb70-16"><a href="#cb70-16" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_OLS_covar</span></code></pre></div>
<pre><code>## Warning: Removed 2 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABUAAAAPACAYAAAD0ZtPZAAAEDmlDQ1BrQ0dDb2xvclNwYWNlR2VuZXJpY1JHQgAAOI2NVV1oHFUUPpu5syskzoPUpqaSDv41lLRsUtGE2uj+ZbNt3CyTbLRBkMns3Z1pJjPj/KRpKT4UQRDBqOCT4P9bwSchaqvtiy2itFCiBIMo+ND6R6HSFwnruTOzu5O4a73L3PnmnO9+595z7t4LkLgsW5beJQIsGq4t5dPis8fmxMQ6dMF90A190C0rjpUqlSYBG+PCv9rt7yDG3tf2t/f/Z+uuUEcBiN2F2Kw4yiLiZQD+FcWyXYAEQfvICddi+AnEO2ycIOISw7UAVxieD/Cyz5mRMohfRSwoqoz+xNuIB+cj9loEB3Pw2448NaitKSLLRck2q5pOI9O9g/t/tkXda8Tbg0+PszB9FN8DuPaXKnKW4YcQn1Xk3HSIry5ps8UQ/2W5aQnxIwBdu7yFcgrxPsRjVXu8HOh0qao30cArp9SZZxDfg3h1wTzKxu5E/LUxX5wKdX5SnAzmDx4A4OIqLbB69yMesE1pKojLjVdoNsfyiPi45hZmAn3uLWdpOtfQOaVmikEs7ovj8hFWpz7EV6mel0L9Xy23FMYlPYZenAx0yDB1/PX6dledmQjikjkXCxqMJS9WtfFCyH9XtSekEF+2dH+P4tzITduTygGfv58a5VCTH5PtXD7EFZiNyUDBhHnsFTBgE0SQIA9pfFtgo6cKGuhooeilaKH41eDs38Ip+f4At1Rq/sjr6NEwQqb/I/DQqsLvaFUjvAx+eWirddAJZnAj1DFJL0mSg/gcIpPkMBkhoyCSJ8lTZIxk0TpKDjXHliJzZPO50dR5ASNSnzeLvIvod0HG/mdkmOC0z8VKnzcQ2M/Yz2vKldduXjp9bleLu0ZWn7vWc+l0JGcaai10yNrUnXLP/8Jf59ewX+c3Wgz+B34Df+vbVrc16zTMVgp9um9bxEfzPU5kPqUtVWxhs6OiWTVW+gIfywB9uXi7CGcGW/zk98k/kmvJ95IfJn/j3uQ+4c5zn3Kfcd+AyF3gLnJfcl9xH3OfR2rUee80a+6vo7EK5mmXUdyfQlrYLTwoZIU9wsPCZEtP6BWGhAlhL3p2N6sTjRdduwbHsG9kq32sgBepc+xurLPW4T9URpYGJ3ym4+8zA05u44QjST8ZIoVtu3qE7fWmdn5LPdqvgcZz8Ww8BWJ8X3w0PhQ/wnCDGd+LvlHs8dRy6bLLDuKMaZ20tZrqisPJ5ONiCq8yKhYM5cCgKOu66Lsc0aYOtZdo5QCwezI4wm9J/v0X23mlZXOfBjj8Jzv3WrY5D+CsA9D7aMs2gGfjve8ArD6mePZSeCfEYt8CONWDw8FXTxrPqx/r9Vt4biXeANh8vV7/+/16ffMD1N8AuKD/A/8leAvFY9bLAAAAOGVYSWZNTQAqAAAACAABh2kABAAAAAEAAAAaAAAAAAACoAIABAAAAAEAAAVAoAMABAAAAAEAAAPAAAAAALYRw1EAAEAASURBVHgB7N0J3G1T3TjwxXV1uaprvpdLlCleFUmmP1JIZpVCSl7jKwkVilfKUHnxkgZpQtFrKoqQIlyR4mbOTK4xKTLdXOe/f1vn6Qz7nOc88zn7+a7P53H2XnvtYX3Xec71/M4a5qpkKUkECBAgQIAAAQIECBAgQIAAAQIECBAoocDcJayTKhEgQIAAAQIECBAgQIAAAQIECBAgQCAXEAD1RiBAgAABAgQIECBAgAABAgQIECBAoLQCAqClbVoVI0CAAAECBAgQIECAAAECBAgQIEBAANR7gAABAgQIECBAgAABAgQIECBAgACB0goIgJa2aVWMAAECBAgQIECAAAECBAgQIECAAAEBUO8BAgQIECBAgAABAgQIECBAgAABAgRKKyAAWtqmVTECBAgQIECAAAECBAgQIECAAAECBARAvQcIECBAgAABAgQIECBAgAABAgQIECitgABoaZtWxQgQIECAAAECBAgQIECAAAECBAgQEAD1HiBAgAABAgQIECBAgAABAgQIECBAoLQCAqClbVoVI0CAAAECBAgQIECAAAECBAgQIEBAANR7gAABAgQIECBAgAABAgQIECBAgACB0goIgJa2aVWMAAECBAgQIECAAAECBAgQIECAAAEBUO8BAgQIECBAgAABAgQIECBAgAABAgRKKyAAWtqmVTECBAgQIECAAAECBAgQIECAAAECBARAvQcIECBAgAABAgQIECBAgAABAgQIECitgABoaZtWxQgQIECAAAECBAgQIECAAAECBAgQEAD1HiBAgAABAgQIECBAgAABAgQIECBAoLQCAqClbVoVI0CAAAECBAgQIECAAAECBAgQIEBgHgQECBAgMPICF1xwQXr22Wf7brTuuuumZZddtm/fRncI3HPPPeniiy9OV111VXr00UfTE088kZ588sk0ZcqUtMwyy/T9vP3tb0/ve9/70oQJE4b04LfeemuaOXNm3TU+9KEPpYkTJ9bljeTOvffemy666KJ0zTXX9NX5qaeeSq9//evTYostlv+8+c1vzuu7zjrrpHnm8b8OI9kerk2AAAECBAgQIECAwPALzFXJ0vBf1hUJECBAoFZg+eWXTxFcq6Yf/vCHaaeddqrueh1DgTlz5qTvf//76dhjj0133XVXx0+y9NJLp7322ivttttuadFFF+34vNqCRx11VDr00ENrs9Lf/va3PPhYlzkCO+ecc076whe+kG6//faOrx6B4B133DEdccQRaZFFFun4PAUJECBAgAABAgQIECAwlgKGwI+lvnsTIECAwJgKRM/HVVddNe2+++4DCn7GQz/00EPpc5/7XFpqqaXSgQcemF5++eUxrUunN49A/AYbbJC23377AQU/4/oRnP3GN76RVlhhhfy103sqR4AAAQIECBAgQIAAgbEUEAAdS333JkCAAIExE/jSl76Utthii3THHXe0fYZ555237fGXXnopHX/88WnjjTdOf/nLX9qWHeuDDz/8cNpoo43yIf5DeZann3467bPPPumwww4bymWcS4AAAQIECBAgQIAAgVERMJHXqDC7CQECBAh0i8A///nPfNj66aef3vRIc801V3rPe96TB0bf/e53p+nTp+fD0Z9//vl033335T+XXnpp+sEPfpAirzZdeeWVaY011kg//elP09ve9rbaQ12x/Y9//CNtuumm6c9//nPT86y//vrpwx/+cF7fqPO0adPSM888kx588MH8Z8aMGSmmbWjs5XrkkUemqVOn5sHQpovKIECAAAECBAgQIECAQJcImAO0SxrCYxAgUG4Bc4B2T/t+6lOfSieeeGLTA22yySbpmGOOSauvvnrTscaMv/71r+lb3/pWijk8GwOhCy64YLrlllvSkksu2Xha0/5ozgF63HHHpU9/+tN1zxAB26997WtprbXWqssv2rn//vvT4Ycfns4444y6w695zWtSHIugqUSAAAECBAgQIECAAIFuFDAEvhtbxTMRIECAwIgInH/++U3Bz1jJPRZAip6dnQQ/48EWWmihfP7P3/zmN3kPyNqHjeHhsTBSN6XZs2fnw/Rrn2nZZZfNV7zvJPgZ50X56DUbq9TXpuoUALV5tgkQIECAAAECBAgQINBNAgKg3dQanoUAAQIERkzgkUceSbvuumvd9WPI+9lnn93UM7KuUJud6EF53XXX5YsC1Ra75JJL0qmnnlqbNabbv/vd71LUvzZ985vfHNTq9d/97nfTiiuuWHupdMopp6SYWkAiQIAAAQIECBAgQIBANwoIgHZjq3gmAgQIEBh2gRNOOCH9/e9/r7vu5z//+bTddtvV5Q105w1veEP60Y9+lOaeu/6f1FgZftasWQO93IiUv/vuu+uuO88886T/9//+X11epzuTJ09uCiQ/++yz6a677ur0EsoRIECAAAECBAgQIEBgVAUsgjSq3N13swgG3Hvvvemee+5Jjz/+eJoyZUpaZJFF8t49b3zjG4ftgaNnUPwBfvvtt6fHHnssv0csnPGOd7wjxR/Tw5ViXr6oTyxWEqsxL7744inmXnzrW986XLfou85o1anvhqO8EXMYxrx+EcCJYEm0VyzsstRSS43ykwzP7WLxlj/84Q/5gi5PPPFEWmyxxfK6rLbaamnSpEltbxKLx1TPffHFF/Pefm9+85vz91fbEwdw8LnnnkvXXnttilW6X3jhhXw+xXjv/sd//McArtJ/0bh+tG38vkfQauGFF87bds0110wLLLBA/xcYQIlwjiHiTz31VN/vYXy+jEWKz7ropVibVllllXTEEUfUZg16O3qCfuITn0gnnXRS3zXCN+bLPPjgg/vyxmqjceGjmKd0/vnnH/TjxIr3Bx10UN35t912WwpTiQABAgQIECBAgAABAl0nUJHGnUAWXKlkgYDKSiutVMnekC1/svneKvvuu2/loYceGpRRFiiqZAuK5PfJAmiF95l33nkr2YrLlWzV5EHdo3rSVVddVdliiy0q2XDWwvsst9xylWwBkEoWBMtPyYISlWyBkr6fbEGU6qXavo5mndo+yBAPvutd7+qre9hUU9QvW5SlkgXeCh3j/ZLNkVjJVsCuvPLKK9XTWr5mwbu++4T3r3/965Zliw686U1vqjs/CxAWFcvzauu08sor95XLgpeVrJdfJVugpbBOWUCucsghh1SyAFnfOdWNbAXsyh577FHJAoOF58bvyEUXXVQt3vY1nGt/37IVtfPyjz76aOVjH/tYJfsioO54tWz2RUTlS1/6UiULuLe9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xebiPTJt2rSUzQ+af8HUxU3n0QgQIECAAAECBAgQIFAoIABayCKzzAIRvGzslRq9E6O3q0SAAAECBAgQIECAAAECBAgQIFAugeKxqOWqo9qUTOArX/lKylbfzufsW2GFFVK2qnFaffXVO65lzKNYm2KuxMEMva+9hm0CBAgQIECAAAECBAgQIECAAIHuFBAA7c528VRtBGK4dMwTGT+RYtGlGFLdaYp562rT29/+9paLxNSWs02AAAECBAgQIECAAAECBAgQINB7AhZB6r02G/dP/B//8R91BldddVWK+RM7Sd///vdTzPdZm3bcccfaXdsECBAgQIAAAQIECBAgQIAAAQIlEhAALVFjjpeqxHD1hRZaqK+6saJ7rO5+8cUX9+U1bjzzzDPp6KOPTrvttluqXfdr1VVXTXvssUdjcfsECBAgQIAAAQIECBAgQIAAAQIlEbAIUkkacrxVI4a8v/e9702xkn1tioDmOuusk6/QHKs2x4rasYJzBEcjCFqbXvOa16QbbrghxTljkU4//fR0zz33jNqtI/gbK1dLBMZKwHt+rOTdlwABAgQIECBAgAABAuNbQAB0fLd/T9f+hBNOSAcccMCg6jBt2rR01llnpQ022GBQ5w/HSbF402WXXTYcl+roGtdcc01ad911OyqrEIGREPCeHwlV1yRAgAABAgQIECBAgACB/gQMge9PyPGuFdh///3TT37yk/SOd7yj42ecMGFCev/7359mzpw5psHPjh9YQQIECBAgQIAAAQIECBAgQIAAgSEJWAV+SHxOHmuBbbbZJsVPrAR/xhlnpPvuuy898MADadasWemVV17JV3dfYokl0lJLLZW22mqrtNNOO6WpU6eO9WPn9//gBz+Y3va2t43asyy55JKjdi83IlAk4D1fpCKPAAECBAgQIECAAAECBEZawBD4kRZ2/TERiIWR/vGPf6QFF1xwTO7vpgQIECBAgAABAgQIECBAgAABAt0hIADaHe3gKQgQIECAAAECBAgQIECAAAECBAgQGAEBc4COAKpLEiBAgAABAgQIECBAgAABAgQIECDQHQICoN3RDp6CAAECBAgQIECAAAECBAgQIECAAIEREBAAHQFUlyRAgAABAgQIECBAgAABAgQIECBAoDsEBEC7ox08BQECBAgQIECAAAECBAgQIECAAAECIyAgADoCqC5JgAABAgQIECBAgAABAgQIECBAgEB3CAiAdkc7eAoCBAgQIECAAAECBAgQIECAAAECBEZAQAB0BFBdkgABAgQIECBAgAABAgQIECBAgACB7hAQAO2OdvAUBAgQIECAAAECBAgQIECAAAECBAiMgIAA6AiguiQBAgQIECBAgAABAgQIECBAgAABAt0hIADaHe3gKQgQIECAAAECBAgQIECAAAECBAgQGAEBAdARQHVJAgQIECBAgAABAgQIECBAgAABAgS6Q0AAtDvawVMQIECAAAECBAgQIECAAAECBAgQIDACAgKgI4DqkgQIECBAgAABAgQIECBAgAABAgQIdIeAAGh3tIOnIECAAAECBAgQIECAAAECBAgQIEBgBAQEQEcA1SUJECBAgAABAgQIECBAgAABAgQIEOgOAQHQ7mgHT0GAAAECBAgQIECAAAECBAgQIECAwAgICICOAKpLEiBAgAABAgQIECBAgAABAgQIECDQHQLzdMdjeIrhFjjvvPPSGWec0XfZvffeO2266aZ9+zYIECBAgAABAgQIjEeBBx54IF166aVNVZ84cWLaddddm/JlECBAgAABAr0vIADa+21YWIO77rorXXDBBX3HNttss75tGwQIECBAgAABAgTGq8A999yTjj/++KbqT548WQC0SUUGAQIECBAoh4Ah8OVoR7UgQIAAAQIECBAgQIAAAQIECBAgQKBAQAC0AEUWAQIECBAgQIAAAQIECBAgQIAAAQLlEBAALUc7qgUBAgQIECBAgAABAgQIECBAgAABAgUCAqAFKLIIECBAgAABAgQIECBAgAABAgQIECiHgABoOdpRLQgQIECAAAECBAgQIECAAAECBAgQKBAQAC1AkUWAAAECBAgQIECAAAECBAgQIECAQDkEBEDL0Y5qQYAAAQIECBAgQIAAAQIECBAgQIBAgYAAaAGKLAIECBAgQIAAAQIECBAgQIAAAQIEyiEgAFqOdlQLAgQIECBAgAABAgQIECBAgAABAgQKBARAC1BkESBAgAABAgQIECBAgAABAgQIECBQDgEB0HK0o1oQIECAAAECBAgQIECAAAECBAgQIFAgIABagCKLAAECBAgQIECAAAECBAgQIECAAIFyCAiAlqMd1YIAAQIECBAgQIAAAQIECBAgQIAAgQIBAdACFFkECBAgQIAAAQIECBAgQIAAAQIECJRDQAC0HO2oFgQIECBAgAABAgQIECBAgAABAgQIFAgIgBagyCJAgAABAgQIECBAgAABAgQIECBAoBwCAqDlaEe1IECAAAECBAgQIECAAAECBAgQIECgQEAAtABFFgECBAgQIECAAAECBAgQIECAAAEC5RAQAC1HO6oFAQIECBAgQIAAAQIECBAgQIAAAQIFAgKgBSiyCBAgQIAAAQIECBAgQIAAAQIECBAoh8A85aiGWhAgQIAAAQIECBAgQKB/gUUXXTRttNFGTQUnTZrUlCeDAAECBAgQKIeAAGg52lEtCBAgQIAAAQIECBDoQOCtb31r+uY3v9lBSUUIECBAgACBsggYAl+WllQPAgQIECBAgAABAgQIECBAgAABAgSaBARAm0hkECBAgAABAgQIECBAgAABAgQIECBQFgEB0LK0pHoQIECAAAECBAgQIECAAAECBAgQINAkIADaRCKDAAECBAgQIECAAAECBAgQIECAAIGyCAiAlqUl1YMAAQIECBAgQIAAAQIECBAgQIAAgSYBq8A3kcggQIAAAQIECBAgQIAAAQIECBBoJ3DqqaemWbNmtSyy3HLLpY985CMtjztAYDQFBEBHU9u9CBAgQIAAAQIECBAgQIAAAQIlEPj2t7+dfv/737esyaabbioA2lLHgdEWMAR+tMXdjwABAgQIECBAgAABAgQIECBAgACBURPQA3TUqN2IAAECBAgQIECAAAECBAgQIFAOgaOPPjr99a9/zSvz0Y9+NM2ePTstvPDC6etf/3qeN23atHJUVC1KISAAWopmVAkCBAgQIECAAAECBAgQIECAwOgJbLzxxn0323XXXfMA6Pzzz58+9KEP9eXbINAtAobAd0tLeA4CBAgQIECAAAECBAgQIECAAAECBIZdQAB02EldkAABAgQIECBAgAABAgQIECBAgACBbhEQAO2WlvAcBAgQIECAAAECBAgQIECAAAECBAgMu4AA6LCTuiABAgQIECBAgAABAgQIECBAgAABAt0iIADaLS3hOQgQIECAAAECBAgQIECAAAECBAgQGHYBAdBhJ3VBAgQIECBAgAABAgQIECBAgAABAgS6RUAAtFtawnMQIECAAAECBAgQIECAAAECBAgQIDDsAgKgw07qggQIECBAgAABAgQIECBAgAABAgQIdIuAAGi3tITnIECAAAECBAgQIECAAAECBAgQIEBg2AUEQIed1AUJECBAgAABAgQIECBAgAABAgQIEOgWAQHQbmkJz0GAAAECBAgQIECAAAECBAgQIECAwLALCIAOO6kLEiBAgAABAgQIECBAgAABAgQIECDQLQICoN3SEp6DAAECBAgQIECAAAECBAgQIECAAIFhF5hn2K/oggQIECBAgAABAgQIEOhSgb/+9a/pjjvuaHq6CRMmpLXWWqspXwYBAgQIECDQ+wICoL3fhmpAgAABAgQIECBAgECHAjfeeGPaZ599mkpPnjw5xTGJAAECBAgQKJ+AIfDla1M1IkCAAAECBAgQIECAAAECBAgQIEDgXwICoN4KBAgQIECAAAECBAgQIECAAAECBAiUVkAAtLRNq2IECBAgQIAAAQIECBAgQIAAAQIECAiAeg8QIECAAAECBAgQIECAAAECBAgQIFBaAQHQ0jatihEgQIAAAQIECBAgQIAAAQIECBAgIADqPUCAAAECBAgQIECAAAECBAgQIECAQGkFBEBL27QqRoAAAQIECBAgQIAAAQIECBAgQICAAKj3AAECBAgQIECAAAECBAgQIECAAAECpRUQAC1t06oYAQIECBAgQIAAAQIECBAgQIAAAQICoN4DBAgQIECAAAECBAgQIECAAAECBAiUVkAAtLRNq2IECBAgQIAAAQIECBAgQIAAAQIECAiAeg8QIECAAAECBAgQIECAAAECBAgQIFBaAQHQ0jatihEgQIAAAQIECBAgQIAAAQIECBAgIADqPUCAAAECBAgQIECAAAECBAgQIECAQGkFBEBL27QqRoAAAQIECBAgQIAAAQIECBAgQICAAKj3AAECBAgQIECAAAECBAgQIECAAAECpRUQAC1t06oYAQIECBAgQIAAAQIECBAgQIAAAQICoN4DBAgQIECAAAECBAgQIECAAAECBAiUVkAAtLRNq2IECBAgQIAAAQIECBAgQIAAAQIECAiAeg8QIECAAAECBAgQIECAAAECBAgQIFBaAQHQ0jatihEgQIAAAQIECBAgQIAAAQIECBAgIADqPUCAAAECBAgQIECAAAECBAgQIECAQGkFBEBL27QqRoAAAQIECBAgQIAAAQIECBAgQIDAPAgIECBAgAABAgQIECAwXgSmTJmSVl999abqTpo0qSlPBgECBAgQIFAOAQHQcrSjWhAgQIAAAQIECBAg0IHAGmuskc4666wOSipCgAABAgQIlEXAEPiytKR6ECBAgAABAgQIECBAgAABAgQIECDQJCAA2kQigwABAgQIECBAgAABAgQIECBAgACBsggIgJalJdWDAAECBAgQIECAAAECBAgQIECAAIEmAQHQJhIZBAgQIECAAAECBAgQIECAAAECBAiURUAAtCwtqR4ECBAgQIAAAQIECBAgQIAAAQIECDQJCIA2kcggQIAAAQIECBAgQIAAAQIECBAgQKAsAgKgZWlJ9SBAgAABAgQIECBAgAABAgQIECBAoElAALSJRAYBAgQIECBAgAABAgQIECBAgAABAmUREAAtS0uqBwECBAgQIECAAAECBAgQIECAAAECTQICoE0kMggQIECAAAECBAgQIECAAAECBAgQKIuAAGhZWlI9CBAgQIAAAQIECBAgQIAAAQIECBBoEhAAbSKRQYAAAQIECBAgQIAAAQIECBAgQIBAWQQEQMvSkupBgAABAgQIECBAgAABAgQIECBAgECTgABoE4kMAgQIECBAgAABAgQIECBAgAABAgTKIiAAWpaWVA8CBAgQIECAAAECBAgQIECAAAECBJoEBECbSGQQIECAAAECBAgQIECAAAECBAgQIFAWAQHQsrSkehAgQIAAAQIECBAgQIAAAQIECBAg0CQgANpEIoMAAQIECBAgQIAAAQIECBAgQIAAgbIICICWpSXVgwABAgQIECBAgAABAgQIECBAgACBJgEB0CYSGQQIECBAgAABAgQIECBAgAABAgQIlEVAALQsLakeBAgQIECAAAECBAgQIECAAAECBAg0CQiANpHIIECAAAECBAgQIECAAAECBAgQIECgLAICoGVpSfUgQIAAAQIECBAgQIAAAQIECBAgQKBJYJ6mHBkECBAgQIAAAQIECBAoqcCzzz6b/vznPzfVbu65504rrbRSU74MAgQIECBAoPcFBEB7vw3VgAABAgQIECBAgACBDgWuv/76tM8++zSVnjx5crrxxhub8mUQIECAAAECvS8gANrQhscee2yaM2dOQ27/uwsvvHDafffdmwrOmDEjXXvttU35RRmTJk1K++67b9EheQQIECBAgAABAgQIECBAgAABAgQIDEJAALQB7aKLLhpUAHTppZcuDIBedtll6de//nXDXYp341tnAdBiG7kECBAgQIAAAQIECBAgQIAAAQIEBiNgEaTBqBWc87rXva4gN6W77767MF8mAQIECBAgQIAAAQIECBAgQIAAAQIjL6AHaIPx+eef35BTvPvwww+n/fffP82ePTvNP//86eCDD24q+MILL6QoF2mNNdZIhx56aFOZ2oyYeF0iQIAAAQIECBAgQIAAAQIECBAgQGD4BARAGywXWmihhpzm3ZdeeimdcMIJefAzjh522GHpDW94Q1PBe++9N1UqlTx/5ZVXTjFPqESAAAECBAgQIECAAAECBAgQIECAwOgJ6HI4COsTTzwx3XPPPfmZO+ywQ1pvvfUKr1I7/H3FFVcsLCOTAAECBAgQIECAAAECBAgQIECAAIGRExAAHaDtH/7wh/Szn/0sP2vq1Klp1113bXkFAdCWNA4QIECAAAECBAgQIECAAAECBAgQGBUBAdABML/88sv50PfqKTEH6KRJk6q7Ta/VAOiUKVPS4osvnh+PIfGPPfZY+vvf/95UXgYBAgQIECBAgAABAgQIECBAgAABAsMrYA7QAXiec8456cEHH8zPWH/99dM666zT8uw5c+ak++67Lz8ew99vueWW9IMf/CDdfPPN6cUXX8zzF1tssRRzg+61115pySWXbHmtogOPPvpomjVrVtGhPO/xxx/Pg7MRtI0fiQABAgQIECBAgAABAgQIECBAgMB4FBAA7bDVn3vuuXTaaaflpeeaa660xx57tD3zoYce6lskKYKe//Vf/9VU/oknnkjxc91116W99947bbfddk1lWmWce+656eSTT251OM9feuml05NPPpmefvrptuUcJECAAAECBAgQIECAAAECBAgQIFBWAQHQDlv2ggsuSBEEjbThhhsWrvpee6nq8PfIe+GFF/LemG9729vSaqutlmKl+fvvvz9deeWV6ZFHHsl7hMaq8q997WvTxhtvXHsZ2wQIECBAgAABAgQIECBAgAABAgQIDEFAALQDvH/+85/p7LPP7iv50Y9+tG+71UZtAHSRRRZJxx9/fFp22WXrin/84x9PJ510Ut+iSrG6/BprrJEWXHDBunJ2CBAgQIAAAQIECBAgQIAAAQIECBAYnIAAaAdul112WXrqqafykjHv53LLLdfvWVtvvXVaZZVVUszVGT1Gp02b1nROLKB04IEHpjvvvDNFwDQWRopA65577tlUtjFjpZVWSltuuWVjdt/+bbfdlmbOnNk3DL/vgA0CBAgQIECAAAECBAgQIECAAAEC40hAALSDxr700kv7Sm2++eZ92+02pk+fnuKnvzRhwoS06667pkMOOSQvWttztN25MVS+3XD5Y445Jl1yySXtLuEYAQIECBAgQIAAAQIECBAgQIAAgdILzF36Gg6xgrGA0B//+Mf8KgsssEBaa621hnjF5tNre5RWV45vLiWHAAECBAgQIECAAAECBAgQIECAAIGBCgiA9iN29dVXp1deeSUvtcEGG6R55523nzMGfnjRRRftOymGwUsECBAgQIAAAQIECBAgQIAAAQIECAyPgCHw/TheddVVfSXe85739G33txErxkfv0Zdeeim96U1valv8iSee6Du+1FJL9W3bIECAAAECBAgQIECAAAECBAgQIEBgaAICoG38KpVKuvXWW/tKrLzyyn3b7Taef/75FHOFzpkzJ+8xevHFF6fXvOY1LU954IEH+o4tvfTSfds2CBAgQIAAAQIECBAgQIAAAQIECBAYmoAAaBu/Bx98MEVPzkiLLbZYmn/++duU/vehKBfB0ltuuSVfhf36669P66+//r8LNGydeeaZfTnrrbde37YNAgQIECBAgAABAgQIECBAoPcEbr/99lTb2amxBvPMM0/aZJNNGrPtEyAwQgICoG1gb7vttr6jb3zjG/u2O9mIQGYEQCOdeOKJabXVVkuvfe1rm04999xz08yZM/P85Zdfvu3K7k0nyyBAgAABAgQIECBAgAABAgS6TuCUU05JJ510UsvnivjAM8880/K4AwQIDK+ARZDaeEYP0GoaaAB0++23T6uuump+eszxufvuu6cZM2akGB7/8ssvp7vvvjsdddRReXA0CsXiSp/85CfTXHPNVb2lVwIECBAgQIAAAQIECBAgQIAAAQIEhiigB2gbwL/+9a99R5dddtm+7U42ojv7EUcckQc1H3744TRr1qx08MEH56fGsQiCVlMMr49g6EorrVTN8kqAAAECBAgQIECAAAECBAj0qMC73vWuNGHChPzpzzvvvPTQQw/l27vttls+OnTSpEk9WjOPTaA3BQRA27TbU0891Xd0oD1A48RFF100nX766emcc87JX6vziVaDn1OmTMmHxu+///5pwQUX7LuXDQIECBAgQIAAAQIECBAgQKB3BbbZZpsUP5FierxqAPTwww9P06dP792KeXICPSogANqm4U444YQ2Rzs7NHHixLTjjjumD3/4w+mxxx7LP/Rmz56dVlhhhTR16tTOLqIUAQIECBAgQIAAAQLDIhALlhaN7ppvvvmG5fouQoAAAQIECHSfgADoKLXJ3HPPnZZYYon8Z5Ru6TYECBAgQIAAAQIECDQIrLPOOumSSy5pyLVLgAABAgQIlFnAIkhlbl11I0CAAAECBAgQIECAAAECBAgQIDDOBQRAx/kbQPUJECBAgAABAgQIECBAgAABAgQIlFlAALTMratuBAgQIECAAAECBAgQIECAAAECBMa5gADoOH8DqD4BAgQIECBAgAABAgQIECBAgACBMgsIgJa5ddWNAAECBAgQIECAAAECBAgQIECAwDgXEAAd528A1SdAgAABAgQIECBAgAABAgQIECBQZgEB0DK3rroRIECAAAECBAgQIECAAAECBAgQGOcCAqDj/A2g+gQIECBAgAABAgQIECBAgAABAgTKLCAAWubWVTcCBAgQIECAAAECBAgQIECAAAEC41xAAHScvwFUnwABAgQIECBAgAABAgQIECBAgECZBQRAy9y66kaAAAECBAgQIECAAAECBAgQIEBgnAuMfo9FAABAAElEQVQIgI7zN4DqEyBAgAABAgQIECBAgAABAgQIECizgABomVtX3QgQIECAAAECBAgQIECAAAECBAiMcwEB0HH+BlB9AgQIECBAgAABAgQIECBAgAABAmUWEAAtc+uqGwECBAgQIECAAAECBAgQIECAAIFxLiAAOs7fAKpPgAABAgQIECBAgAABAgQIECBAoMwCAqBlbl11I0CAAAECBAgQIECAAAECBAgQIDDOBQRAx/kbQPUJECBAgAABAgQIECBAgAABAgQIlFlAALTMratuBAgQIECAAAECBAgQIECAAAECBMa5gADoOH8DqD4BAgQIECBAgAABAgQIECBAgACBMgsIgJa5ddWNAAECBAgQIECAAAECBAgQIECAwDgXEAAd528A1SdAgAABAgQIECBAgAABAgQIECBQZgEB0DK3rroRIECAAAECBAgQIECAAAECBAgQGOcC84zz+qs+AQIECBAgQIAAAQLjSODFF19MTz/9dFON55prrjR16tSmfBkECBAgQIBA7wsIgPZ+G6oBAQIECBAgQIAAAQIdClxzzTVpn332aSo9efLkdOONNzblyyBAgAABAgR6X8AQ+N5vQzUgQIAAAQIECBAgQIAAAQIECBAgQKCFgABoCxjZBAgQIECAAAECBAgQIECAAAECBAj0voAAaO+3oRoQIECAAAECBAgQIECAAAECBAgQINBCQAC0BYxsAgQIECBAgAABAgQIECBAgAABAgR6X0AAtPfbUA0IECBAgAABAgQIECBAgAABAgQIEGghIADaAkY2AQIECBAgQIAAAQIECBAgQIAAAQK9LyAA2vttqAYECBAgQIAAAQIECBAgQIAAAQIECLQQEABtASObAAECBAgQIECAAAECBAgQIECAAIHeFxAA7f02VAMCBAgQIECAAAECBAgQIECAAAECBFoICIC2gJFNgAABAgQIECBAgAABAgQIECBAgEDvCwiA9n4bqgEBAgQIECBAgAABAgQIECBAgAABAi0EBEBbwMgmQIAAAQIECBAgQIAAAQIECBAgQKD3BQRAe78N1YAAAQIECBAgQIAAAQIECBAgQIAAgRYCAqAtYGQTIECAAAECBAgQIECAAAECBAgQIND7AgKgvd+GakCAAAECBAgQIECAAAECBAgQIECAQAsBAdAWMLIJECBAgAABAgQIECBAgAABAgQIEOh9AQHQ3m9DNSBAgAABAgQIECBAgAABAgQIECBAoIWAAGgLGNkECBAgQIAAAQIECBAgQIAAAQIECPS+gABo77ehGhAgQIAAAQIECBAgQIAAAQIECBAg0EJAALQFjGwCBAgQIECAAAECBAgQIECAAAECBHpfQAC099tQDQgQIECAAAECBAgQIECAAAECBAgQaCEgANoCRjYBAgQIECBAgAABAgQIECBAgAABAr0vIADa+22oBgQIECBAgAABAgQIECBAgAABAgQItBCYp0W+bAIECBAgQIAAAQIECJROYOLEiWnKlClN9Zo8eXJTngwCBAgQIECgHAICoOVoR7UgQIAAAQIECBAgQKADgQ022CBdf/31HZRUhAABAgQIECiLgCHwZWlJ9SBAgAABAgQIECBAgAABAgQIECBAoElAALSJRAYBAgQIECBAgAABAgQIECBAgAABAmUREAAtS0uqBwECBAgQIECAAAECBAgQIECAAAECTQICoE0kMggQIECAAAECBAgQIECAAAECBAgQKIuAAGhZWlI9CBAgQIAAAQIECBAgQIAAAQIECBBoEhAAbSKRQYAAAQIECBAgQIAAAQIECBAgQIBAWQQEQMvSkupBgAABAgQIECBAgAABAgQIECBAgECTgABoE4kMAgQIECBAgAABAgQIECBAgAABAgTKIiAAWpaWVA8CBAgQIECAAAECBAgQIECAAAECBJoEBECbSGQQIECAAAECBAgQIECAAAECBAgQIFAWAQHQsrSkehAgQIAAAQIECBAgQIAAAQIECBAg0CQgANpEIoMAAQIECBAgQIAAAQIECBAgQIAAgbIICICWpSXVgwABAgQIECBAgAABAgQIECBAgACBJgEB0CYSGQQIECBAgAABAgQIECBAgAABAgQIlEVAALQsLakeBAgQIECAAAECBAgQIECAAAECBAg0CQiANpHIIECAAAECBAgQIECAAAECBAgQIECgLAICoGVpSfUgQIAAAQIECBAgQIAAAQIECBAgQKBJQAC0iUQGAQIECBAgQIAAAQIECBAgQIAAAQJlERAALUtLqgcBAgQIECBAgAABAgQIECBAgAABAk0CAqBNJDIIECBAgAABAgQIECBAgAABAgQIECiLgABoWVpSPQgQIECAAAECBAgQIECAAAECBAgQaBIQAG0ikUGAAAECBAgQIECAAAECBAgQIECAQFkEBEDL0pLqQYAAAQIECBAgQIAAAQIECBAgQIBAk8A8TTkyCBAgQIAAAQIECBAgUFKBOXPmpNmzZzfVbq655kqTJk1qypdBgAABAgQI9L6AAGjvt6EaECBAgAABAgQIECDQocAVV1yR9tlnn6bSkydPTjfeeGNTvgwCBAgQIECg9wUMge/9NlQDAgQIECBAgAABAgQIECBAgAABAgRaCAiAtoCRTYAAAQIECBAgQIAAAQIECBAgQIBA7wsIgPZ+G6oBAQIECBAgQIAAAQIECBAgQIAAAQItBARAW8DIJkCAAAECBAgQIECAAAECBAgQIECg9wUEQHu/DdWAAAECBAgQIECAAAECBAgQIECAAIEWAgKgLWBkEyBAgAABAgQIECBAgAABAgQIECDQ+wICoL3fhmpAgAABAgQIECBAgAABAgQIECBAgEALAQHQFjCyCRAgQIAAAQIECBAgQIAAAQIECBDofQEB0N5vQzUgQIAAAQIECBAgQIAAAQIECBAgQKCFgABoCxjZBAgQIECAAAECBAgQIECAAAECBAj0voAAaO+3oRoQIECAAAECBAgQIECAAAECBAgQINBCQAC0BYxsAgQIECBAgAABAgQIECBAgAABAgR6X0AAtPfbUA0IECBAgAABAgQIECBAgAABAgQIEGghIADaAkY2AQIECBAgQIAAAQIECBAgQIAAAQK9LyAA2vttqAYECBAgQIAAAQIECBAgQIAAAQIECLQQEABtASObAAECBAgQIECAAAECBAgQIECAAIHeFxAA7f02VAMCBAgQIECAAAECBAgQIECAAAECBFoICIC2gJFNgAABAgQIECBAgAABAgQIECBAgEDvCwiA9n4bqgEBAgQIECBAgAABAgQIECBAgAABAi0EBEBbwMgmQIAAAQIECBAgQIAAAQIECBAgQKD3BQRAe78N1YAAAQIECBAgQIAAAQIECBAgQIAAgRYCAqAtYGQTIECAAAECBAgQIECAAAECBAgQIND7AgKgvd+GakCAAAECBAgQIECAAAECBAgQIECAQAsBAdAWMLIJECBAgAABAgQIECBAgAABAgQIEOh9gXl6vwpqQIAAAQIECBAgQIAAgc4E3vOe96Q//elPnRVWigABAgQIECiFgB6gpWhGlSBAgAABAgQIECBAgAABAgQIECBAoEhAALRIRR4BAgQIECBAgAABAgQIECBAgAABAqUQEAAtRTOqBAECBAgQIECAAAECBAgQIECAAAECRQICoEUq8ggQIECAAAECBAgQIECAAAECBAgQKIWAAGgpmlElCBAgQIAAAQIECBAgQIAAAQIECBAoEhAALVKRR4AAAQIECBAgQIAAAQIECBAgQIBAKQQEQEvRjCpBgAABAgQIECBAgAABAgQIECBAgECRgABokYo8AgQIECBAgAABAgQIECBAgAABAgRKISAAWopmVAkCBAgQIECAAAECBAgQIECAAAECBIoEBECLVOQRIECAAAECBAgQIECAAAECBAgQIFAKAQHQUjSjShAgQIAAAQIECBAgQIAAAQIERk/g+edTOumklDbcMKXYjjRrVkqbbJLSt7+d0uzZr+b5L4FuEBAA7YZW8AwECBAgQIAAAQIECBAgQIAAgR4RuPTSlJZbLqX99kvpN7/590O/8kpKv/xlSnvumdKKK6Y0Y8a/j9kiMJYCAqBjqe/eBAgQIECAAAECBAgQIECAAIEeEvjhD1PafPOUHn20/UM/8EBKG22U0kUXtS/nKIHREBAAHQ1l9yBAgAABAgQIECBAgAABAgQI9LjATTeltNtuKc2Z01lFYhj8DjukdO+9nZVXisBICQiAjpSs6xIgQIAAAQIECBAgQIAAAQIESiRw4IEpvfTSwCr07LMpHXzwwM5RmsBwCwiADreo6xEgQIAAAQIECBAgQIAAAQIESiZw110pXXHF4Cp1/vkpPfnk4M51FoHhEBAAHQ5F1yBAgAABAgQIECBAgAABAgQIlFjgsssGX7lYHOlXvxr8+c4kMFQBAdChCjqfAAECBAgQIECAAAECBAgQIFBygYceGloFH3xwaOc7m8BQBARAh6LnXAIECBAgQIAAAQIECBAgQIDAOBCIXpxDSUM9fyj3di4BAVDvAQIECBAgQIAAAQIECBAgQIAAgbYCU6e2PdzvwaWW6reIAgRGTEAAdMRoXZgAAQIECBAgQIAAAQIECBAg0PsCsQDSqacOvh5zzZXSu989+POdSWCoAgKgQxV0PgECBAgQIECAAAECBAgQIECgpAJnn53SGmukFEHQwab3vS+ladMGe7bzCAxdQAB06IauQIAAAQIECBAgQIAAAQIECBAolcDs2Sl98pMpfehDKT377OCrNmlSSl/5yuDPdyaB4RCYZzgu4hoECBAgQIAAAQIECBAgQIAAAQLlELj//pS23z6l3/9+6PX53vdSWmWVoV/HFQgMRUAAdCh6ziVAgAABAgQIECBAoKcErrjiirTffvs1PfPkyZPTb3/726Z8GQQIEBhvAhdckNIuu6T0t7+1r3nM61mptC8zYUJKm27avoyjBEZDwBD40VB2DwIECBAgQIAAAQIEukJgzpw56aWXXir86YoH9BAECBAYI4GXX07ps59NaZtt+g9+RlDzzjtTOvzwlFZdtfUDZx+56ayzWh93hMBoCQiAjpa0+xAgQIAAAQIECBAgQIAAAQIEulDg4YdT2mCDlI49tv3DRY/OI45I6Re/SGmFFVL6whdSuvnmlOabr/V5Z57Z+pgjBEZLwBD4FtIzZsxI1157bYuj9dmTshl999133/rMmr34lvkX2afD5Zdfnv785z+n559/Pr35zW/OviVZNa299tpppZVWqiltkwABAgQIECBAgAABAgQIECAwOgKXXJLSzjun9Je/tL/f1KkpRTDzXe9qLhfD4VulmF1k1qyUllyyVQn5BEZeQAC0hfFll12Wfv3rX7c4Wp8d8wW1CoA++eST6cADD0z3xwzCNemGG25I8XPaaaelQw45JJsTw6QYNTw2CRAgQIAAAQIECBAgQIAAgREUiOHp0YPzqKP6n8tzww1fHcoeQdCBppgn9Ic/TOmggwZ6pvIEhk9AALSF5d13393iSOfZzz33XPrMZz7TF/xcbrnl0rrrrpsWXXTRNHPmzHTVVVel2bNnpyOPPDJF2e22267ziytJgAABAgQIECBAgAABAgQIEBiEwGOPpbTDDildeWX7k6NnZ9ZnK33xiynF8Pf+0sSJKf3zn82loueoAGizi5zRExAALbB+4YUX0sMxAUaW1lhjjXTooYcWlPp31txzF0+l+v3vfz/de++9ecF3ZX3EDzvssDQxPg2ytPXWW2fzZNycTTD82Tz4edJJJ6X1118/LbLIIvlx/yFAgAABAgQIECBAgAABAgQIDLfAFVe8Gvx8/PH2V47wxBlnpPTe97YvV3t0/vlT+vvfa3Ne3Y55Qu+669V5Q5uPyiEw8gLFkbuRv29X3yGClpXoo52llVdeOS288MJtfxZccMGm+jzzzDPpwgsvzPMXW2yxuuBntfBb3vKWPD/2Y57Qavnqca8ECBAgQIAAAQIECBAgQIAAgeEQiDBHDHffeOOU+gt+rrNOSjfdNLDgZzxjBEBbpdNPb3VEPoGRFxAALTCuHf6+4oorFpToP+uK7CuV6EkaaZtttunr+dl4ZgyJX2qppfLsCIC+/PLLjUXsEyBAgAABAgQIECBAgAABAgQGLRALHG22WcpGuEYHrPaXOeCAlH7zm5SmT29frujoPNk44/XWKzqS0rnnFufLJTAaAgKgBcrDEQC99dZb+6685ppr9m0XbcQw+0hPPfVUuvHGG4uKyCNAgAABAgQIECBAgAABAgQIDFhgxoyUVlstpUsvbX/qlCkp/fSnKR13XEoRyBxsirlFi9Kf/pTS735XdEQegZEXEAAtMK4GQKdkv/2LL754XiKGxD+WzRL896LJLAqucdttt+W5c2UzBr/pTW8qKPHvrFgcqZruu+++6qZXAgQIECBAgAABAgQIECBAgMCgBSKYueGGKVvnpP0lol9W9MfKlisZcor1nVsslZJiMSSJwFgIDCGmPxaPO/L3jLk4q0HIGP5+yy23pB/84Af5gkUvvvhi/gAxp2fMDbrXXnulJZdcsvChZs2alefHiu/z9PPVSTXIGic89NBDhddrzHz00UfTI4880pjdt/94NqHHpEmT8iH1htX3sdggQIAAAQIECBAgQIAAAQKlF3j66ZR22SVla430X9X/+q+UTjghpXnn7b9sJyWmTk1pk01SuuSS5tLnnffqvWJ1eYnAaAoIgDZoRwBy9uzZeW6s0v5f8UnQkJ544okUP9ddd13ae++903bx9UZNirk/X3nllTynaIGkmqL5ZvQ0raZYPKmTdG42ecbJJ5/ctujSSy+dnnzyyfR0fPJJBAgQIECAAAECBAgQIECAQOkFbrghpe23T+mBB9pX9bWvTek733m1bPuSAz8aw+CLAqDREzVWod9oo4Ff0xkEhiIgANqgVx3+HtkRyIxelG9729uy+TJWSwsttFC6//7705VXXpn3voweoSdkX5O8NvvU2DiWUftXeu6556qb6TWveU3fdquN2jLVXqatysonQIAAAQIECBAgQIAAAQIECBQJfP3rKcUiRv/q11VUJM97y1teXZRo+eVbFhnSga22erVHadFzxDD4XgiAxmjaZZZZpq3Dpz/96fSpT32qbRkHu0NAALShHWoDoIssskg6/vjj07LLLltX6uMf/3g66aST0s9+9rM8/8QTT0yxkFG1t+fzzz/fV37eDvqQ15Z56aWX+s61QYAAAQIECBAgQIAAAQIECBDoTyAGk+62W0rnnNNfyZR23TWlCJRm/b1GLMVA1wiCFq38HgstfetbQ1toacQevObCsRZMdXrDmuy6zU5H8dadZGdMBARAG9i3zmb8XWWVVVLMsblhNlPwtGnTGkrEh8SkdOCBB6Y777wzRcA0FkY6++yz05577pmXrZ3zM+YU7S/VztFZGwxtd17MT7rFFlu0LBKLMP3xj3/sG87fsqADBAgQIECAAAECBAgQIECAQM8KZH/6pw9+MGXxifZVmH/+VwOPO+/cvtxwHY1h8EUB0KeeSumii4ZnwaXhetai68Si1pMnT84PRWynOmJ3woQJeVwoDnQawym6vrzRFRAAbfCePn16ip/+Urzhd82+NjnkkEPyorU9R+ebb76+06vzifZlFGzUlqn+chUUq8vaJJtROH5apWOOOSZdeumlrQ7LJ0CAAAECBAgQIECAAAECBHpcIObw3HfflAXn2lfkzW9+NRiZrec8ammzzVJaYIGU/vGP5luedVb3B0Cjc9s//vXw0cEspkeM9IEPfCD9+Mc/bq6UnK4WmLur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decze6reFxAA7f02VAMCBAgQIECAAAECBAgQIEBgjAX+539Suv/+oT3EAQek9JvfpLTUUkO7Tjefvc02KU2cWPyEhsEXu8gduoAA6NANXYEAAQIECBAgQIAAAQIECBAYxwKvvJLSKacMHmDy5FcXTTruuNbBwcFfvbvOXGihlN73vuJnOvfclObMKT4ml8BQBARAh6LnXAIECBAgQIAAAQIECBAgQGDcC/zxjyk9/vjgGT7wgZS23nrw5/fama2Gwf/lLyldemmv1cbz9oKAAGgvtJJnJECAAAECBAgQIECAAAECBLpWIOavHEr629+GcnbvnbvFFinNP3/xcxsGX+wid2gCAqBD83M2AQIECBAgQIAAAQIECBAgMM4Fhjpse6jn9xp/BD+33bb4qS+8MKUXXyw+JpfAYAUEQAcr5zwCBAgQIECAAAECBAgQIECAQCYw1EWLpk8ff4ythsE/80xKEQSVCAyngADocGq6FgECBAgQIECAAAECBAgQIDDuBFZfPaUpUwZf7Xe/e/Dn9uqZ73lPSrEgUlE688yiXHkEBi8gADp4O2cSIECAAAECBAgQIECAAAECBNI886T00Y8ODmLq1Narog/uir1x1rzzprT99sXPGgshRU9QicBwCQiADpek6xAgQIAAAQIECBAgQIAAAQLjVuDQQ1NaZJGBV/+YY1ovCDTwq/XWGTvsUPy8MQfouecWH5NLYDACAqCDUXMOAQIECBAgQIAAAQIECBAgQKBGYNFFUzrvvJQmTarJ7Gdz771T2mWXfgqV+PB666U0bVpxBQ2DL3aROzgBAdDBuTmLAAECBAgQIECAAAECBAgQIFAnsP76KX33u3VZhTsTJ6Z05JEpfeMbhYfHTebcWVRqp52Kq3vllSk9+WTxMbkEBiogADpQMeUJECBAgAABAgQIECBAgAABAi0EnnqqxYEsO+b73GeflO64I6XPf751ufF0pNUw+DlzUjrrrPEkoa4jKSAAOpK6rk2AAAECBAgQIECAAAECBAiMK4Errmhd3RtuSOnkk1N605talxlvR1ZfvbWHYfDj7d0wcvUVAB05W1cmQIAAAQIECBAgQIAAAQIExpFApZLSNdeMowoPU1V33rn4Qr/7XUoPPlh8TC6BgQgIgA5ES1kCBAgQIECAAAECBAgQIECAQAuBW24xb2ULmrbZ229ffDgCyv+fvfsAk6woFwb8LbvLAiuSQREQECQoIoiAxF0QEAMqKAiYrwHMCcWrXAOKOcD1mi4GEEFAVJAfUIG9IEEUYQEFQZLkIBIlh/9808zs7Mw5Pd0T+3S/9Ty7011V55yqt3pCf11V54gjysvkEmhHQAC0HS11CRAgQIAAAQIECBAgQIAAAQIVAs2Wv1ccIrsQWG+9iBe8oJzimGPK8+WOXeC8886LNdZYo+m/s88+e+wX6oAzzOiANmgCAQIECBAgQIAAAQIECBAgQKD2Annncml0AnkzpD//efixF18ckTNrN9hgeJmcsQk8+OCDce211zY9yQMPPNC0vC6FAqB1GSntJECAAAECBAgQIEBgzAJnFZvzfaLk1stLLLFEnHzyyWM+vxMQINC7Avb/HNvYv/a1EfvtF5GOQ1PeDOkLXxia6/lYBRZZZJGYNWtW32kee+yxePTRR/seT58+PWbMaIQMs043pO7oRTeMhD4QIECAAAECBAgQIDDhAjnb5ZZbbhn279Zbb53wa7sAAQLdLZAzFf/5z+7u40T2brXVIrbZpvwKxx5bni93bAJbb7115O/F/HfIIYcMnOzrX//6QP522203kF/nBwKgdR49bSdAgAABAgQIECBAgAABAgQ6QqBq/89p0zqiebVoRC6DL0tXXRVx7rllJfIItCYgANqak1oECBAgQIAAAQIECBAgQIAAgUqBqv0/l1qq8hAFQwR23TWKpddDMp98msvgJQKjFRAAHa2c4wgQIECAAAECBAgQIECAAAEChUCz/T+XWQZRqwIrrBCx007ltY87LuLxx8vL5BIYSUAAdCQh5QQIECBAgAABAgQIECBAgACBJgLz50fccUd5BQHQcpeq3Kpl8DffHHHqqVVHySfQXEAAtLmPUgIECBAgQIAAAQIECBAgQIBAU4Gq5e8zZ0ZYAt+UbljhLrtELLbYsOy+jKOOKs+XS2AkAQHQkYSUEyBAgAABAgQIECBAgAABAgSaCFQFQDffPGL69CYHKhomsOSSEa985bDsvoxf/Sri4YfLy+QSaCYgANpMRxkBAgQIECBAgAABAgQIECBAoIlAs/0/58xpcqCiSoGqZfB33RVx4omVhykgUCkgAFpJo4AAAQIECBAgQIAAAQIECBAg0Fzgwgsj/vWv8jpz55bny20u8JKXVG8dYBl8czul5QICoOUucgkQIECAAAECBAgQIECAAAECIwpULX9fdNGIzTYb8XAVSgRmzYp4zWtKCoqsk06KuO++8jK5BKoEBECrZOQTIECAAAECBAgQIECAAAECBEYQmDevvELu/7nEEuVlckcW2Guv8jr33x/xi1+Ul8klUCUgAFolI58AAQIECBAgQIAAAQIECBAg0ETg8ccjzj67vILl7+UureZuu23EiiuW17YMvtxFbrWAAGi1jRICBAgQIECAAAECBAgQIECAQKVA7v95553lxXPmlOfLbU1g+vSIqpshnXZaxB13tHYetQikgACo1wEBAgQIECBAgAABAgQIECBAYBQCVcvf7f85CsySQ6qWwT/ySMTRR5ccIItAhYAAaAWMbAIECBAgQIAAAQIECBAgQIBAM4GqGyBtsUXE4os3O1JZKwKbbhqx+urlNS2DL3eRWy4gAFruIpcAAQIECBAgQIAAAQIECBAgUCnQbP9Py98r2dou2Hvv8kNy79Ubbigvk0tgqIAA6FARzwkQIECAAAECBAgQIECAAAECIwhccEHEXXeVVxIALXcZTe4ee5Qf9cQTEUceWV4ml8BQAQHQoSKeEyBAgAABAgQIECBAgAABAgRGEKja/3PWrIjNNhvhYMUtC2ywQcTznlde3TL4che5wwUEQIebyCFAgAABAgQIECBAgAABAgQINBVotv/nYos1PVRhmwJVN0OaPz/iiivaPJnqPSkgANqTw67TBAgQIECAAAECBAgQIECAwGgF7P85WrnRHbf77tXHHXFEdZkSAv0CAqD9Er4SIECAAAECBAgQIECAAAECBFoQOP/8iLvvLq84Z055vtzRC6yxRsQWW5Qff/TR5flyCQwWEAAdrOExAQIECBAgQIAAAQIECBAgQGAEgarl77n/56abjnCw4lEJVC2DzyXwf/rTqE7poB4SEADtocHWVQIECBAgQIAAAQIECBAgQGDsAlUB0C23jLD/59h9y86w224R06eXlUS4GVK5i9wFAgKgCyw8IkCAAAECBAgQIECAAAECBAg0FXjssYizzy6vYvl7uct45D7taRHbb19+pmOPjXjiifIyuQRSYAYGAgQIECBAgAABAgQI9IrAi170ojj55JOHdXeRRcwNGYYigwCBUoHc//Oee0qLYu7c8ny54yOQy+B/+9vh57rhhoiclct/uI2choAAqFcCAQIECBAgQIAAAQI9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jog45ZQoJs41ltI3r610tAICoC3K/fCHP4wf/ehHA7Vz9uZb3/rWgedDH6xSbBaR/0ZK04sNI/I8H8/viiINnjna7Ngdd9wx8l9V+sIXvhC/+c1vqorlEyBAgAABAgQIECBAgACBrhWoWv6eN64Zsjizaw10bOoEFik2nHz3uxt3ks+vJ5zQvC05Y/mNb4z4yU8ivvvdiDXXbF5fafsCxZBIzQTyLuoZTOwPfi5SvIo/Uty6q1nws9n5ysrWWmutgez+O8cPZHhAgAABAgQIECBAgAABAgQItCVQFQCdM6et06hMYEwCOS/u+OMjivtYFyuDRz5V3homb7L0la9Esfp45PpqtC4gANrE6t///nfst99+kUvfM+WS9YMOOihyeft4phVWWGHgdLkMXiJAgAABAgQIECBAgAABAgRGJ3D77bktXPmxAqDlLnInVuA1r2m8JvNO8dOmNb/W/fdHcbPtiBe+MOLPf25eV2nrAgKgFVZ33XVXMV353XH++ef31VhuueXiW9/6Vmy55ZYVRyycncHTG264Ia666qqFC0qe3XbbbQO5q6666sBjDwgQIECAAAECBAgQIECAAIH2BHL2Z9X+nwKg7VmqPX4CSy8d8b3vRZxxRkRxW5cR04UXRmy2WRSrkCMyKCqNTUAAtMTv3mKH2g996EMDwcu8e/v3ildp3niolXR/8crMGxTtueee8Y4ivP/QQw81Pezaa68dKF9ttdUGHntAgAABAgQIECBAgAABAgQItCdQtfw99/585jPbO5faBMZbYOuto7hpdcQBB0Qsumjzs+cy+K99LYqbbEdxn5fmdZU2FxAALfH5WvHq6r8Z0brrrts383OllVYqqVmetcQSS8T666/fV/jwww/HeeedV17xydwjjzxyoHyrrbYaeOwBAQIECBAgQIAAAQIECBAg0J7AvHnl9c3+LHeRO/kCs2ZFfPazERdcELHFFiNfP+fNveQlEa9/fURu8SC1LyAAOsQsl7yfdtppfbm57P2LX/xiPPWpTx1Sa+SngwOZBx98cOSs0rL085//PObPn99XtPbaa8cOO+xQVk0eAQIECBAgQIAAAQIECBAgMIJA7jB32WXllebOLc+XS2CqBHJm51lnRfzP/0QRexq5FT/9acR660UcfvjIddVYWGDGwk97+9kjjzwSX//61wcQcibnl770pYHnzR5suumm8Zrc1fbJtPvuuxcv4rPikksuidzj8+1vf3u8973vjY022qiY4rxoXHPNNXHMMcfEKaec0ndE5r3vfe8rNsMdYTfc/gv4SoAAAQIECBAgQIBA2wIbbrhhfPvb3x523IwZ3hoNQ5FBoIYCVcvfsyvbblvDDmly1wtkGOhd74rihttR3Iumcdf4Zp2+446IN70p4ic/aewpuuaazWor6xfwW75fovh6QTH3+Prrrx/IyceDnw8UlDxYdtllF8rNP6A+85nP9AU182ZIN954Y+y///59dbLs0UcfHai/4oorxuc///nI5fYSAQIECBAgQIAAAQITJ7DCCivE9ttvP3EXcGYCBKZUoGr5ewaJ3HJjSofGxUcQeMYzIn71q4jjjotiAl3EzTc3P+DUUyOe+9yIT386ivvYRPgcr7mXJfCDfHJW5nim/OPq8GJe8r777huzZ88eOHV/8HPp4hZgc4s5+Iceeqjg54COBwQIECBAgAABAgQIECBAYHQCVTNALX8fnaejJl9gt90a2zi8851RrBJufv0HHoj42MciXvjCiD//uXndXi81A3TQK+B1r3td5L/xTDNnzoy99tqr77y33HJLXHfddZE3Rnr2s58dT3va08bzUs5FgAABAgQIECBAgAABAgR6VuDWWyP+9rfy7s+ZU54vl0AnCiy1VMR3vxux994R73hH9eu6v+15a5nNNot4//sbN1caNAevv0rPfzUDdJJeAossskisvPLKsfnmm8c222wj+DlJ7i5DgAABAgQIECBAgAABAr0hUDX7M3tv/8/eeA10Wy+33jqKG2dH/Nd/RXE/mea9e+yxKO5r01gW/+TtZpof0GOlAqA9NuC6S4AAAQIECBAgQIAAAQIEulGgav/PtdaKWHXVbuyxPvWCwKxZUdxjJuLCCyO22GLkHl97bcTOOzdmj95++8j1e6WGAGivjLR+EiBAgAABAgQIECBAgACBLhaomgFq+XsXD3oPdW399SPOOivi29+OeOpTR+74kUdGrLdexGGHjVy3F2oIgPbCKOsjAQIECBAgQIAAAQIECBDoYoHilhtx+eXlHRQALXeRWz+BvClScZ/tuPTSiFe9auT233FHxJvfHPHiF0dcddXI9bu5hgBoN4+uvhEgQIAAAQIECBAgQIAAgR4QqFr+nl23/2cPvAB6rIvPeEbEL38ZcdxxUdxvZuTOn3ZaxAYbRHzpSxGPPjpy/W6sIQDajaOqTwQIECBAgAABAgQIECBAoIcEqpa/r712xCqr9BCErvaUwK67NmaD7rNPRM4ObZYeeCBi//0jNtkk4vzzF675yCMLzxDN2aIPP7xwnbo/EwCt+whqPwECBAgQIECAAAECBAgQ6HGBqgCo5e89/sLoge4vtVTEd74TceaZjT0/R+ryRRdFbL55xIc+FPGPf0R84AMRK6wQ8bWvLTjykEMaee99b0S33EhJAHTB+HpEgAABAgQIECBAgAABAgQI1Ezg5psjrriivNECoOUucrtPYKutIubPj/jUpyIWXbR5/x57LOIb34hYc82Igw+OuPvu4fXvuSfiW9+KeM5zGjdfGl6jXjkCoPUaL60lQIAAAQIECBAgQIAAAQIEBgk02/9TAHQQlIddL5CBz09/uhEI3XLLkbv7+OMj18kZoDvtFHHhhSPX7eQaAqCdPDraRoAAAQIECBAgQIAAAQIECDQVqFr+/uxnt3aDmKYnV0ighgLrrRfx+983lsbnEvmxpvvvj9h994jcK7SuSQC0riOn3QQIECBAgAABAgQIECBAgEBUzQA1+9OLo5cF8qZIeXOkSy+NePWrxy5x5ZURP/7x2M8zVWcQAJ0qedclQIAAAQIECBAgQIAAAQIExiRw000RGZgpS3PnluXKI9BbAiuvHPGLXzT+5eOxpJ/9bCxHT+2xAqBT6+/qBAgQIECAAAECBAgQIECAwCgFqmZ/5um23XaUJ3UYgS4UyFmgl10WMWvW6Dv3xz+O/tipPlIAdKpHwPUJECBAgAABAgQIECBAgACBUQlUBUDXWSfi6U8f1SkdRKBrBRZfPOKhh0bfvfvui8j9QOuYBEDrOGraTIAAAQIECBAgQIAAAQIECETVDZAsf/fiIDBcYObMiAyCjjaN9fjRXnc8jhMAHQ9F5yBAgAABAgQIECBAgAABAgQmVeDGGyOuuqr8knPmlOfLJdDrAuuuO3qBnFmdN1eqYxIAreOoaTMBAgQIECBAgAABAgQIEOhxgdNPrwaw/2e1jZLeFthll9H3fyzHjv6q43OkAOj4ODoLAQIECBAgQIAAAQIECBAgMIkCVcvf11sv4mlPm8SGuBSBGgm8+90RSy7ZfoNnz45473vbP65TjhAA7ZSR0A4CBAgQIECAAAECBAgQIECgZYGqAKjl7y0TqtiDAiusEPGNb7Tf8a9+td4fLAiAtj/mjiBAgAABAgQIECBAgAABAgSmUOD66yOuvrq8AQKg5S5yCfQL/Md/RHz2s/3PRv56wAER++wzcr1OriEA2smjo20ECBAgQIAAAQIECBAgQIDAMIF584ZlDWTY/3OAwgMClQIZ1DzhhIi11qqsEmuuGfHLX7YXLK0+29SWzJjay7s6AQIECBAgQIAAAQIEJk/gkksuiR/+8IfDLrjYYovFF77whWH5MggQ6EyBquXv668fsdJKndlmrSLQaQKveEXEzjtH5A3FvvKViFNPbbRw7tyIj340YvvtI2bO7LRWj649AqCjc3MUAQIECBAgQIAAAQI1FLj11lvjpJNOGtby2cXdHQRAh7HIINCxAlUB0E5Z/n7GGWfE/Pnz+/yuu+66Accf/OAHsfTSS8eiiy4a++6770C+BwSmSmBGERnccceIq65aEAB91asiXvKSqWrRxFxXAHRiXJ2VAAECBAgQIECAAAECBAgQmACBjCdec035iTslAPqLX/wiDjnkkGGN/PSnP92Xt2RxG24B0GE8MghMmIAA6ITROjEBAgQIECBAgAABAgQIECAw3gL2/xxv0dGd749//GPcc889fQc/9thjfV8ffPDBYhl1Yx31csstFxtttNHoTu4oAuMsIAA6zqBOR4AAAQIECBAgQIAAAQIECEycQNXy9+c8J2LFFSfuuu2ceffdd4/11luv8pBcAl/39O53vzvOP//8hbpx++23xw477NCXt9NOO8Upp5yyULknBKZKQAB0quRdlwABAgQIECBAgAABAgQIEGhboCoA2inL37NDW265Zd+/tjvnAAIEJkRAAHRCWJ2UAAECBAgQIECAAAECBAgQGG+Ba6+NyH9lKe9cLU2eQM5y3XzzzSsv2GwGbOVBCghMkIAA6ATBOi0BAgQIECBAgAABAgQIECAwvgJVsz+nTYvYZpvxvZazNRfYb7/9mldQSqCDBBbpoLZoCgECBAgQIECAAAECBAgQIECgUqDqBki5/+cKK1QepoAAgR4XEADt8ReA7hMgQIAAAQIECBAgQIAAgboInHFGeUstfy93kUuAQENAANQrgQABAgQIECBAgAABAgQIEOh4gWuuifjHP8qb2Uk3QCpvoVwCBKZSQAB0KvVdmwABAgQIECBAgAABAgQIEGhJwP6fLTGpRIBAiYAAaAmKLAIECBAgQIAAAQIECBAgQKCzBKr2/9xgg4jll++stmoNAQKdJSAA2lnjoTUECBAgQIAAAQIECBAgQIBAiUDV/p+Wv5dgySJAYCEBAdCFODwhQIAAAQIECBAgQIAAAQIEOk3g6qsjrruuvFUCoOUucgkQWCAgALrAwiMCBAgQIECAAAECBAgQIECgAwWqlr9PmxaxzTYd2GBNIkCgowQEQDtqODSGAAECBAgQIECAAAECBAgQGCpQdQOk5z0vYrnlhtb2nAABAgsLCIAu7OEZAQIECBAgQIAAAQIECBAg0GECVQFQy987bKA0h0CHCgiAdujAaBYBAgQIECBAgAABAgQIECAQceWVETfcUC4hAFruIpcAgYUFBEAX9vCMAAECBAgQIECAAAECBAgQ6CCBqtmf9v/soEHSFAIdLiAA2uEDpHkECBAgQIAAAQIECBAgQKCXBaoCoBtuGLHssr0so+8ECLQqIADaqpR6BAgQIECAAAECBAgQIECAwKQLVAVALX+f9KFwQQK1FRAAre3QaTgBAgQIECBAgAABAgQIEOhugb//PeLGG8v7OHdueb5cAgQIDBUQAB0q4jkBAgQIECBAgAABAgQIECDQEQJVsz8XKaIZW2/dEU3UCAIEaiAgAFqDQdJEAgQIECBAgAABAgQIECDQiwLz5pX3Ovf/XGaZ8jK5BAgQGCowY2iG5wQIECBAgAABAgQIEOhWgfXXXz8+//nPD+vejBneGg1DkUGgAwTOOKO8EZa/l7vIJUCgXMBv+XIXuQQIECBAgAABAgQIdKHAyiuvHK95zWu6sGe6RKD7BK64IuKmm8r7NWdOeb5cAgQIlAlYAl+mIo8AAQIECBAgQIAAAQIECBCYUgH7f04pv4sT6CoBAdCuGk6dIUCAAAECBAgQIECAAAEC3SFQtf/nRhtFLL10d/RRLwgQmBwBAdDJcXYVAgQIECBAgAABAgQIECBAoA2Bqv0/LX9vA1FVAgT6BARAvRAIECBAgAABAgQIECBAgACBjhK4/PKIm28ub5IAaLmLXAIEqgUEQKttlBAgQIAAAQIECBAgQIAAAQJTIFC1/H369Iitt56CBrkkAQK1FhAArfXwaTwBAgQIECBAgAABAgQIEOg+gaobIOX+n0st1X391SMCBCZWQAB0Yn2dnQABAgQIECBAgAABAgQIEGhTwP6fbYKpToBAUwEB0KY8CgkQIECAAAECBAgQIECAAIHJFLjssohbbim/4pw55flyCRAg0ExAALSZjjICBAgQIECAAAECBAgQIEBgUgWqlr/b/3NSh8HFCHSVgABoVw2nzhAgQIAAAQIECBAgQIAAgXoLVAVAN9444qlPrXfftJ4AgakREACdGndXJUCAAAECBAgQIECAAAECBEoE7P9ZgiKLAIExCQiAjonPwQQIECBAgAABAgQIECBAgMB4CVx6acStt5afbe7c8ny5BAgQGElAAHQkIeUECBAgQIAAAQIECBAgQIDApAhULX/P/T+32mpSmuAiBAh0oYAAaBcOqi4RIECAAAECBAgQIECAAIE6CsybV97qF7wgYskly8vkEiBAYCQBAdCRhJQTIECAAAECBAgQIECAAAECkyJQtf+n5e+Twu8iBLpWQAC0a4dWxwgQIECAAAECBAgQIECAQH0Err8+4vbby9s7Z055vlwCBAi0IiAA2oqSOgQIECBAgAABAgQIECBAgMCECuQNkMrSjBn2/yxzkUeAQOsCAqCtW6lJgAABAgQIECBAgAABAgQITJDAX/9afuJNNol4ylPKy+QSIECgFQEB0FaU1CFAgAABAgQIECBAgAABAgQmVKBqBqjl7xPK7uQEekJAALQnhlknCRAgQIAAAQIECBAgQIBAZwvce295+wRAy13kEiDQuoAAaOtWahIgQIAAAQIECBAgQIAAAQKTKJD7f2655SRe0KUIEOhKAQHQrhxWnSJAgAABAgQIECBAgAABAvUXeOEL7f9Z/1HUAwJTLyAAOvVjoAUECBAgQIAAAQIECBAgQIBAiYDl7yUosggQaFugmEwuESBAgAABAgQIECBAoDcE/va3v8UxxxwzrLOLLrpo7L///sPyZRAgMLUCAqBT6+/qBLpFQAC0W0ZSPwgQIECAAAECBAgQGFHghhtuiJ/+9KfD6s2ePVsAdJiKDAJTKzBzpv0/p3YEXJ1A9whYAt89Y6knBAgQIECAAAECBAgQIECgawRy/8/iswmJAAECYxYQAB0zoRMQIECAAAECBAgQIECAAAECoxF44onqoyx/r7ZRQoBAewICoO15qU2AAAECBAgQIECAAAECBAiMk8Ctt1afaO7c6jIlBAgQaEfAHqDtaKlLgAABAgQIECBAgAABAgQIjFngxBMjfvSjiBNOKD9V7v+5xRblZXIJECDQroAAaLti6hMgQIAAAQIECBAgQIAAAQKjErj99og994w47bTmhy+zTMQi1qw2R1JKgEDLAn6ctEylIgECBAgQIECAAAECBAgQIDBagdtui9hss5GDn3n+rLvjjhEPPTTaqzmOAAECCwQEQBdYeESAAAECBAgQIECAAAECBAhMkMDuu0dcc03rJ//97yM+9KHW66tJgACBKgEB0CoZ+QQIECBAgAABAgQIECBAgMC4CBx3XMQZZ7R/qu99L+LSS9s/zhEECBAYLCAAOljDYwIECBAgQIAAAQIECBAgQGDcBQ49dHSnfOyxxs2SRne0owgQINAQEAD1SiBAgAABAgQIECBAgAABAgQmTODxxyNOP330pz/11NEf60gCBAikgACo1wEBAgQIECBAgAABAgQIECAwYQJ5Q6OHHx796a+/fvTHOpIAAQIpMAMDAQIECBAgQIAAAQIECBAg0BkCDxeRwosuuqhpY9ZYY41Yfvnlm9bppMJp08bWmrEeP7arO5oAgW4QEADthlHUBwIECBAgQIAAAQIECBDoCoFbbrklNt1006Z9+f73vx9vf/vbm9bppMIVVohYbLGIBx8cXaue+czRHecoAgQI9AtYAt8v4SsBAgQIECBAgAABAgQIECAw7gIPPBDx1KeO/rQ77jj6Yx1JgACBFDAD1OuAAAECBAgQIECAAAECBAh0iMDs2bPjDW94Q19rbrzxxuLmQY27B6277rrxwhe+sC9/7bXX7pDWjtyMW2+NePnLI3If0NGkmTMj3vrW0RzpGAIECCwQEABdYOERAQIECBAgQIAAAQIECBCYUoHlllsuDj/88L42nHLKKQMB0J122im++c1vTmnb2r34ZZdFvPSlEdde2+6RC+q///0Ra6214LlHBAgQGI2AJfCjUXMMAQIECBAgQIAAAQIECBAgUClw5pkRW245tuDnzjtHfOELlZdQQIAAgZYFBEBbplKRAAECBAgQIECAAAECBAgQGEngqKMidtgh4s47R6pZXj59esQHPhBxwgnFvn3WrZYjySVAoC0BAdC2uFQmQIAAAQIECBAgQIAAAQIEqgS+9KWIvfeOePjhqhoRq60WxTL/iLe8JWKppRbUe/rTI3LJ+yWXRHzjG4KfC2Q8IkBgrAI+SxmroOMJECBAgAABAgQIECBAgECPCzz2WMS73x3xve81h9h444gTT4zIYGfe62mVVSIOPLBxTG5xuvvuzY9XSoAAgdEICICORs0xBAgQIECAAAECBAgQIECAQJ/AffdF7LFHxEknNQfJGyIdfXTEU57SvJ5SAgQIjLeAJfDjLep8BAgQIECAAAECBAgQIECgRwRuvjli221HDn6+4x2NPT0FP3vkhaGbBDpMQAC0wwZEcwgQIECAAAECBAgQIECAQB0ELr00YvPNIy64oLq106ZFfP7zjaXxeXMjiQABAlMhYAn8VKi7JgECBAgQIECAAAECUyKw9tprx3777Tfs2jNnzhyWJ4MAgWqBefMidt014q67qussumjEj38cseee1XWUECBAYDIEBEAnQ9k1CBAgQIAAAQIECBDoCIFnPvOZ8ba3va0j2qIRBOoqcMQREf/xH83v9L7MMhG//GVjeXxd+6ndBAh0j4Al8N0zlnpCgAABAgQIECBAgAABAgQmVOCggxp3b3/44erLrL56xNlnC35WCykhQGCyBcwAnWxx1yNAgAABAgQIECBAgAABAjUTePTRiH33jTj00OYN32STiBNPjFhppeb1lBIgQGAyBQRAJ1PbtQgQIECAAAECBAgQIECAQM0E7r03YvfdI045pXnDX/7yiJ/9LGL27Ob1lBIgQGCyBSyBn2xx1yNAgAABAgQIECBAgAABAjURuOmmiG22GTn4mbNDf/Urwc+aDKtmEug5AQHQnhtyHSZAgAABAgQIECBAgAABAiML/OUvEZtvHjF/fnXdadMivvjFiG9/O2L69Op6SggQIDCVApbAT6W+axMgQIAAAQIECBAgQIAAgQ4UOO20iN12i7j77urGzZoVcdhhEXvsUV1HCQECBDpBwAzQThgFbSBAgAABAgQIECBAgAABAh0icPjhETvv3Dz4ueyyEaeeKvjZIUOmGQQIjCAgADoCkGICBAgQIECAAAECBAgQINArAgceGPGmN0U88kh1j9dYI+KccyK22qq6jhICBAh0koAl8J00GtpCgAABAgQIECBAgAABAgSmQODRRyPe8Y6IH/2o+cU33TTi17+OWHHF5vWUEiBAoJMEBEA7aTS0hQABAgQIECBAgAABAgQITLLAPfdEvOY1Eb/7XfML77JLxFFHRSyxRPN6SgkQINBpApbAd9qIaA8BAgQIECBAgAABAgQIEJgkgRtvjNh665GDn+95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CBAgQIAAAQIECBAgMAYBAdAx4DmUAAECBAgQIECAAAECBAgQIECAAIHOFhAA7ezx0ToCBAgQIECAAAECBAgQIECAAAECBMYgIAA6BjyHEiBAgAABAgQIECBAgAABAgQIECDQ2QICoJ09PlpHgAABAgQIECBAgAABAgQIECBAgMAYBARAx4DnUAIECBAgQIAAAQIECBAgQIAAAQIEOltAALSzx0frCBAgQIAAAQIECBAgQIAAAQIECBAYg4AA6BjwHEqAAAECBAgQIECAAAECBAgQIECAQGcLCIB29vhoHQECBAgQIECAAAECBAgQIECAAAECYxCYMYZjHUqAAAECBAgQIECAAIFaCVx//fVxxhlnDGvzzJkzY4899hiWL4MAAQIECBCov4AAaP3HUA8IECBAgAABAgQIEGhR4PLLL48DDzxwWO3Zs2cLgA5TkUGAAAECBLpDwBL47hhHvSBAgAABAgQIECBAgAABAgQIECBAoERAALQERRYBAgQIECBAgAABAgQIECBAgAABAt0hIADaHeOoFwQIECBAgAABAgQIECBAgAABAgQIlAgIgJagyCJAgAABAgQIECBAgAABAgQIECBAoDsEBEC7Yxz1ggABAgQIECBAgAABAgQIECBAgACBEgEB0BIUWQQIECBAgAABAgQIECBAgAABAgQIdIfAjO7ohl4QIECAAAECBAgQIECAAIH6C9x9993x9a9/va8jV1555UCHzj333PjUpz7V93yXXXaJF7zgBQNlHhAgQIBAcwEB0OY+SgkQIECAAAECBAgQIECAwKQJZAD0s5/97LDr/fGPf4z8l2mVVVYRAB0mJIMAAQLVApbAV9soIUCAAAECBAgQIECAAAECBAgQIECg5gJmgNZ8ADWfAAECBAgQIECAAAECBLpHYPnll4+jjz66aYc22WSTpuUKCRAgQGBhAQHQhT08I0CAAAECBAgQIECAAAECUyawxBJLxO677z5l13dhAgQIdKOAJfDdOKr6RIAAAQIECBAgQIAAAQIECBAgQIBAn4AAqBcCAQIECBAgQIAAAQIECBAgQIAAAQJdKyAA2rVDq2MECBAgQIAAAQIECBAgQIAAAQIECAiAei7geyoAAEAASURBVA0QIECAAAECBAgQIECAAAECBAgQINC1AgKgXTu0OkaAAAECBAgQIECAAAECBAgQIECAgACo1wABAgQIECBAgAABAgQIECBAgAABAl0rIADatUOrYwQIECBAgAABAgQIECBAgAABAgQICIB6DRAgQIAAAQIECBAgQIAAAQIECBAg0LUCAqBdO7Q6RoAAAQIECBAgQIAAAQIECBAgQICAAKjXAAECBAgQIECAAAECBAgQIECAAAECXSsgANq1Q6tjBAgQIECAAAECBAgQIECAAAECBAgIgHoNECBAgAABAgQIECBAgAABAgQIECDQtQIzurZnOkaAAAECBAgQIECAAIEhAiuvvHLstttuQ3IjZs2aNSxPBgECBAgQINAdAgKg3TGOekGAAAECBAgQIECAQAsC66+/fhx00EEt1FSFAAECBAgQ6BYBS+C7ZST1gwABAgQIECBAgAABAgQIECBAgACBYQICoMNIZBAgQIAAAQIECBAgQIAAAQIECBAg0C0CAqDdMpL6QYAAAQIECBAgQIAAAQIECBAgQIDAMAEB0GEkMggQIECAAAECBAgQIECAAAECBAgQ6BYBAdBuGUn9IECAAAECBAgQIECAAAECBAgQIEBgmIAA6DASGQQIECBAgAABAgQIECBAgAABAgQIdIuAAGi3jKR+ECBAgAABAgQIECBAgAABAgQIECAwTEAAdBiJDAIECBAgQIAAAQIECBAgQIAAAQIEukVAALRbRlI/CBAgQIAAAQIECBAgQIAAAQIECBAYJiAAOoxEBgECBAgQIECAAAECBAgQIECAAAEC3SIgANotI6kfBAgQIECAAAECBAgQIECAAAECBAgMExAAHUYigwABAgQIECBAgAABAgQIECBAgACBbhEQAO2WkdQPAgQIECBAgAABAgQIECBAgAABAgSGCQiADiORQYAAAQIECBAgQIAAAQIECBAgQIBAtwgIgHbLSOoHAQIECBAgQIAAAQIECBAgQIAAAQLDBARAh5HIIECAAAECBAgQIECAAAECBAgQIECgWwRmdEtH9IMAAQIECBAg8P/bOw+4K4qzbw9VEERQBASUIiqKjaCYAPms5FU0JlZssRBjNGIUNUbRoFFfW1AxligaS15bNCpRMYCJPWhQUEQUe6EjiggIosL3/MfMsuc8e87Z87SzO3vN7wdny+w+e19z31PuaRCAAAQgAAEIQCD5BGbPnm1eeOEF+6EzZ84MPthd04V99tnHtGnTJrjHAQQgAIHaEMABWht6PAsB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XLNo0SKrbKo3lNsuqayWFv7rWamjqnxUGurfBhtsYDbddFOz8cYbFwZTwTvUUQvDV/tebSqlY4sWLcxWW21lNtpoo8IPJPBOVuqoDn2jKoHXuhN+IQCBaAKff/65ue2226xDTA1xZXC9e/c2ffv2NYcffrhZb731oh8MXX3rrbfMCSecYK8cf/zxZtiwYaG7yTlcsmSJdYrJ0ZBfmVJh/cADD5i7777biIkLcgjvuOOO5qyzzjJdu3Z1l1P9KyfFvvvua2U45phjzC9+8YvEyjN16lTz3nvv2e874IADrH5Gfayc9//3f/9n/vKXv1jnS34cOUJPPvlk88Mf/jD/VmLOpXf//Oc/zYsvvmhtaNttt835NlVE7rvvPvO3v/3NfPrppzn35ITZY489zBFHHGGdvTk3K3zyySefmIMOOsh+hSrAF198sdl+++0r/FX19+fXrFljZs+ebZQvSi+33HJLW2kM/0U17MaOHWueeOIJo/guKL/Ze++9zemnn574jqSnn37aPPXUU2batGk5eaaTJfzbuHFjs8UWW5gddtjBDB482PTp0yd8O7HHb7zxhhk3bpyZPn267RQrVq1s27atkc1ut912ZsiQIYlt7CUWdj18mPRz/Pjx1haVv6ozbJtttjEqS6SLccJvf/tbM3nyZBvVdeTEeY44dUcgK+lIHXWdzvzxj3+0dXJdUfqrbExiyFIdVfwlr/JBdQSec8451ZJE9XWl3YwZM2z9JxxBee/+++9v/6lOkJSQtTqquKuj+u233zYff/yxHZTwve99r1qdc8KECeb222838+bNy0mqTp06mTPPPNN8//vfz7metJMs1FGjmOMAjaLCNQiECLz00kvmkksuCUZvhm7ZQzn8zj333JINhaQ7QFVY//nPfw4caeq9Usb9s5/9LHBqXn755bahlM/Anbds2dKMGDEicBy662n8TZMDdPTo0ebvf/+7xSxHRFQP8oIFC8zZZ59teylLpYfS/bLLLktcZVoOlgsuuCBwbP7v//6v+X//7/8F4qgHVvf1WyxohNPw4cPNgQceWCxag94LVy71h9WQkS3JCeFbeOedd8zvf/9789FHH+WItvPOO5uLLrrIjoQQD6VRfqUy/IBGZitvVmdU0oJGyF9xxRXm1VdfrfGnDRgwwPzqV78y6oxKYlCDW51hKttqEpo1a2bLCnW6qHOC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gc0339ze1+ZFhRrf4RdoMXk3Ss012sP3dewqI61atcq/VZFzZKyOPc3pmL/0QnXpvrvilnbQWZSuioH+KSRNV32VEVu06pbzH7ZorB1iizlqUe8n2GJ1xNhiMm2xS5cuNrHcqJ7qKVfeFb2nah1R+5A24ElC8F1GJ586XqIc7zVJg1deeSWRaZgFGbHF+BqbtPwGW4yfduGYSc1vfLbFMP9CxzhAC5HhelEC4crf9ddfXzSubv7tb38LnEZbb711tfhqQPz73/+2110Dq1qkBr6AjNWBpzkd//Wvf5k333yzulChK8uWLbO7vepS27ZtjZZmyA/aEd6FpOmqrzJii07j1v1ii8Zgi+v0oaGOsMXqpLHFZNqiq2tWbXZjXCO0eurFu6K6gavrqmO0c+fO8R6s51i+y6j8plGjRpbimDFjgnZETbGOHz/evPbaa/bx3r171/Q1dfpcFmT0XU+lEL7LmAU9zYKMvutp3MwZB2hcUsTLISDHkDIKBTVCr732WrNy5cqcOO5Ejs2xY8faU1VkdtppJ3fL/mrDmSuuuCIYIarNapIQkDE3FdKajlW7v1tB5GTXRgiu8psrnTFffPGFufjii4MF992SDOF406ZNsxt26VrXrl2N1n5LQvBdRmwxV8uwRWOwxVydaKgzbDGXNLaYXFv82c9+Zqesr1692px77rnm73//u10vODcFS5+988475owzzgg2/vzpT39a+qEGiuG7jKpjaWNKhcmTJ9sNVT/44IOy6WqG2T333GPbGnpYHdy77bZb2e+pjweyIKPveiq98F3GLOhpFmT0XU/j5tGNtFV83MjEg0CYgDYrOuGEE4IK5SabbGKGDBliunXrZtq1a2c3iJkyZYoJ77QowzvxxBPtazSV6Morr7SVGk2lV1DPxC233BL0+NqLFfwPGf1Ix4suusg88cQTgSZpMwNtdqQRnCtWrDBK53Hjxhmnh1p758477zTt27e3z7z44ov2XFPMXZZ5+eWX280VgpdW+MB3GbFFbFEmhi1WOKOp+vPYIraYFlu89957zY033hgYjdYCV+dmr1697ChO1VW1ln3z5s3t9HY5S1Un0Hp3c+fONa+++qoJO9zUQT969OjYa98Hf7geD3yXcfHixebUU0814TXXu3fvbgdTaFquOmXWX399m45NmjQxSkM5PJcsWWIWLlxo3nrrLTN9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AhCAAAQgAAEIQAACUQRwgEZR4RoEIAABCEAAAhCAAAQgAAEIQAACEIAABCDgBQEcoF4kI0JAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACUQRwgEZR4RoEIAABCEAAAhCAAAQgAAEIQAACEIAABCDgBQEcoF4kI0JAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACUQRwgEZR4RoEIAABCEAAAhCAAAQgAAEIQAACEIAABCDgBQEcoF4kI0JAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACUQRwgEZR4RoEIAABCEAAAhCAAAQgAAEIQAACEIAABCDgBQEcoF4kI0JAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACUQRwgEZR4RoEIAABCEAAAhCAAAQgAAEIQAACEIAABCDgBQEcoF4kI0JAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACUQRwgEZR4RoEIAABCEAAAhCAAAQgAAEIQAACEIAABCDgBQEcoF4kI0JAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACUQRwgEZR4RoEIAABCEAAAhCAAAQgAAEIQAACEIAABCDgBQEcoF4kI0JAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACUQRwgEZR4RoEIAABCEAAAhCAAAQgAAEIQAACEIAABCDgBQEcoF4kI0JAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACUQRwgEZR4RoEIAABCEAAAhCAAAQgAAEIQAACEIAABCDgBQEcoF4kI0JAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACUQRwgEZR4RoEIAABCEAAAhCAAAQgAAEIQAACEIAABCDgBQEcoF4kI0JAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACUQRwgEZR4RoEIAABCEAAAhCAAAQgAAEIQAACEIAABCDgBQEcoF4kI0JAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACUQRwgEZR4RoEIAABCEAAAhCAAAQgAAEIQAACEIAABCDgBQEcoF4kI0JAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACUQRwgEZR4RoEIAABCEAAAhCAAAQgAAEIQAACEIAABCDgBQEcoF4kI0JAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACUQRwgEZR4RoEIAABCEAAAhCAAAQgAAEIQAACEIAABCDgBQEcoF4kI0JAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACUQRwgEZR4RoEIAABCEAAAhCAAAQgAAEIQAACEIAABCDgBQEcoF4kI0JAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACUQRwgEZR4RoEIAABCEAAAhCAAAQgAAEIQAACEIAABCDgBQEcoF4kI0JAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACUQRwgEZR4RoEIAABCEAAAhCAAAQgAAEIQAACEIAABCDgBQEcoF4kI0JAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACUQRwgEZR4RoEIAABCEAAAhCAAAQgAAEIQAACEIAABCDgBQEcoF4kI0JAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACUQRwgEZR4RoEIAABCEAAAhCAAAQgAAEIQAACEIAABCDgBQEcoF4kI0JAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACUQRwgEZR4RoEIAABCEAAAhCAAAQgAAEIQAACEIAABCDgBQEcoF4kI0JAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACUQRwgEZR4RoEIAABCEAAAhCAAAQgAAEIQAACEIAABCDgBQEcoF4kI0JAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACUQRwgEZR4RoEIAABCEAAAhCAAAQgAAEIQAACEIAABCDgBQEcoF4kI0JAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACUQRwgEZR4RoEIAABCEAAAhCAAAQgAAEIQAACEIAABCDgBQEcoF4kI0JAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACUQRwgEZR4RoEIAABCEAAAhCAAAQgAAEIQAACEIAABCDgBYH/D0N9dgeF7OtDAAAAAElFTkSuQmCC" width="672" /></p>
<div class="sourceCode" id="cb72"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb72-1"><a href="#cb72-1" aria-hidden="true" tabindex="-1"></a>estimates_sogo_number_OLS_covar <span class="ot">&lt;-</span> df_estimates 　 <span class="co">#for robustness check</span></span></code></pre></div>
</div>
<div id="wls-no-trends-figure-5d-table-c.6-3-1" class="section level2" number="9.2">
<h2><span class="header-section-number">9.2</span> WLS, no trends, Figure 5(d) &amp; Table C.6 (3)</h2>
<div class="sourceCode" id="cb73"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb73-1"><a href="#cb73-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb73-2"><a href="#cb73-2" aria-hidden="true" tabindex="-1"></a>estimation_results <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_WLS_notrend_covar8Xcovid_months</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb73-3"><a href="#cb73-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>sogo_number, </span>
<span id="cb73-4"><a href="#cb73-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>unemploy_shock_diff2)</span>
<span id="cb73-5"><a href="#cb73-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb73-6"><a href="#cb73-6" aria-hidden="true" tabindex="-1"></a>texreg<span class="sc">::</span><span class="fu">screenreg</span>(<span class="at">l =</span> estimation_results, <span class="at">include.ci =</span> <span class="cn">FALSE</span>, <span class="at">digits=</span><span class="dv">3</span>)</span></code></pre></div>
<pre><code>## 30 coefficients  not defined because the design matrix is rank deficient</code></pre>
<pre><code>## 
## ====================================================================
##                                                         Model 1     
## --------------------------------------------------------------------
## treat_var:date_2018_01                                              
##                                                                     
## treat_var:date_2018_02                                              
##                                                                     
## treat_var:date_2018_03                                              
##                                                                     
## treat_var:date_2018_04                                              
##                                                                     
## treat_var:date_2018_05                                              
##                                                                     
## treat_var:date_2018_06                                              
##                                                                     
## treat_var:date_2018_07                                              
##                                                                     
## treat_var:date_2018_08                                              
##                                                                     
## treat_var:date_2018_09                                              
##                                                                     
## treat_var:date_2018_10                                              
##                                                                     
## treat_var:date_2018_11                                              
##                                                                     
## treat_var:date_2018_12                                              
##                                                                     
## treat_var:date_2019_01                                     0.010    
##                                                           (0.014)   
## treat_var:date_2019_02                                    -0.005    
##                                                           (0.017)   
## treat_var:date_2019_03                                     0.006    
##                                                           (0.018)   
## treat_var:date_2019_04                                     0.001    
##                                                           (0.018)   
## treat_var:date_2019_05                                    -0.023    
##                                                           (0.015)   
## treat_var:date_2019_06                                    -0.008    
##                                                           (0.014)   
## treat_var:date_2019_07                                     0.005    
##                                                           (0.016)   
## treat_var:date_2019_08                                    -0.009    
##                                                           (0.024)   
## treat_var:date_2019_09                                    -0.021    
##                                                           (0.011)   
## treat_var:date_2019_10                                    -0.017    
##                                                           (0.012)   
## treat_var:date_2019_11                                    -0.004    
##                                                           (0.017)   
## treat_var:date_2019_12                                    -0.009    
##                                                           (0.018)   
## treat_var:date_2020_02                                              
##                                                                     
## treat_var:date_2020_03                                              
##                                                                     
## treat_var:date_2020_04                                     0.002    
##                                                           (3.346)   
## treat_var:date_2020_05                                     9.231    
##                                                          (18.599)   
## treat_var:date_2020_06                                    62.337    
##                                                          (34.330)   
## treat_var:date_2020_07                                    87.776 *  
##                                                          (39.148)   
## treat_var:date_2020_08                                    35.863    
##                                                          (20.370)   
## treat_var:date_2020_09                                    26.989    
##                                                          (20.992)   
## date_2020_02:google_mobility_index_2020may                          
##                                                                     
## date_2020_03:google_mobility_index_2020may                          
##                                                                     
## date_2020_04:google_mobility_index_2020may                 0.350    
##                                                           (0.457)   
## date_2020_05:google_mobility_index_2020may                 0.799    
##                                                           (2.800)   
## date_2020_06:google_mobility_index_2020may                -1.830    
##                                                           (3.952)   
## date_2020_07:google_mobility_index_2020may                -1.842    
##                                                           (3.728)   
## date_2020_08:google_mobility_index_2020may                -1.614    
##                                                           (2.724)   
## date_2020_09:google_mobility_index_2020may                -1.268    
##                                                           (2.734)   
## date_2020_02:infection_rate_cumulative2020jun                       
##                                                                     
## date_2020_03:infection_rate_cumulative2020jun                       
##                                                                     
## date_2020_04:infection_rate_cumulative2020jun              0.440    
##                                                           (0.383)   
## date_2020_05:infection_rate_cumulative2020jun              4.519    
##                                                           (2.555)   
## date_2020_06:infection_rate_cumulative2020jun              6.506    
##                                                           (4.384)   
## date_2020_07:infection_rate_cumulative2020jun              5.190    
##                                                           (4.263)   
## date_2020_08:infection_rate_cumulative2020jun              1.447    
##                                                           (2.444)   
## date_2020_09:infection_rate_cumulative2020jun              3.951    
##                                                           (2.747)   
## date_2020_02:death_rate_cumulative2020jun                           
##                                                                     
## date_2020_03:death_rate_cumulative2020jun                           
##                                                                     
## date_2020_04:death_rate_cumulative2020jun                 -5.812    
##                                                           (4.122)   
## date_2020_05:death_rate_cumulative2020jun                -46.616    
##                                                          (27.742)   
## date_2020_06:death_rate_cumulative2020jun                -65.417    
##                                                          (46.193)   
## date_2020_07:death_rate_cumulative2020jun                -54.131    
##                                                          (46.086)   
## date_2020_08:death_rate_cumulative2020jun                 -9.899    
##                                                          (28.325)   
## date_2020_09:death_rate_cumulative2020jun                -33.765    
##                                                          (31.096)   
## date_2020_02:Population_per_1_km_2_of_inhabitable_area              
##                                                                     
## date_2020_03:Population_per_1_km_2_of_inhabitable_area              
##                                                                     
## date_2020_04:Population_per_1_km_2_of_inhabitable_area     0.000    
##                                                           (0.001)   
## date_2020_05:Population_per_1_km_2_of_inhabitable_area    -0.001    
##                                                           (0.005)   
## date_2020_06:Population_per_1_km_2_of_inhabitable_area     0.002    
##                                                           (0.009)   
## date_2020_07:Population_per_1_km_2_of_inhabitable_area     0.008    
##                                                           (0.008)   
## date_2020_08:Population_per_1_km_2_of_inhabitable_area     0.008    
##                                                           (0.004)   
## date_2020_09:Population_per_1_km_2_of_inhabitable_area     0.007    
##                                                           (0.005)   
## date_2020_02:Secondary_industry_ratio                               
##                                                                     
## date_2020_03:Secondary_industry_ratio                               
##                                                                     
## date_2020_04:Secondary_industry_ratio                    -14.136    
##                                                          (39.326)   
## date_2020_05:Secondary_industry_ratio                    -68.471    
##                                                         (237.688)   
## date_2020_06:Secondary_industry_ratio                   -408.113    
##                                                         (354.335)   
## date_2020_07:Secondary_industry_ratio                   -687.034    
##                                                         (398.726)   
## date_2020_08:Secondary_industry_ratio                   -477.582    
##                                                         (268.957)   
## date_2020_09:Secondary_industry_ratio                   -576.146    
##                                                         (291.902)   
## date_2020_02:Tertiary_industry_ratio                                
##                                                                     
## date_2020_03:Tertiary_industry_ratio                                
##                                                                     
## date_2020_04:Tertiary_industry_ratio                      23.022    
##                                                          (61.903)   
## date_2020_05:Tertiary_industry_ratio                      88.732    
##                                                         (416.443)   
## date_2020_06:Tertiary_industry_ratio                    -470.488    
##                                                         (531.856)   
## date_2020_07:Tertiary_industry_ratio                    -884.672    
##                                                         (551.372)   
## date_2020_08:Tertiary_industry_ratio                    -430.582    
##                                                         (374.634)   
## date_2020_09:Tertiary_industry_ratio                    -620.040    
##                                                         (362.674)   
## date_2020_02:Total_population                                       
##                                                                     
## date_2020_03:Total_population                                       
##                                                                     
## date_2020_04:Total_population                             -0.006    
##                                                           (0.004)   
## date_2020_05:Total_population                             -0.069 *  
##                                                           (0.026)   
## date_2020_06:Total_population                             -0.176 ***
##                                                           (0.049)   
## date_2020_07:Total_population                             -0.227 ***
##                                                           (0.057)   
## date_2020_08:Total_population                             -0.158 ***
##                                                           (0.042)   
## date_2020_09:Total_population                             -0.177 ***
##                                                           (0.042)   
## date_2020_02:Ratio_of_aged_population                               
##                                                                     
## date_2020_03:Ratio_of_aged_population                               
##                                                                     
## date_2020_04:Ratio_of_aged_population                      0.034    
##                                                           (0.238)   
## date_2020_05:Ratio_of_aged_population                     -1.031    
##                                                           (1.270)   
## date_2020_06:Ratio_of_aged_population                     -3.120    
##                                                           (1.943)   
## date_2020_07:Ratio_of_aged_population                     -5.840 *  
##                                                           (2.446)   
## date_2020_08:Ratio_of_aged_population                     -4.436 *  
##                                                           (1.686)   
## date_2020_09:Ratio_of_aged_population                     -4.909 ** 
##                                                           (1.669)   
## --------------------------------------------------------------------
## R^2                                                        0.874    
## Adj. R^2                                                   0.852    
## Num. obs.                                                893        
## RMSE                                                     786.426    
## N Clusters                                                47        
## ====================================================================
## *** p &lt; 0.001; ** p &lt; 0.01; * p &lt; 0.05</code></pre>
<div class="sourceCode" id="cb76"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb76-1"><a href="#cb76-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb76-2"><a href="#cb76-2" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_loan</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb76-3"><a href="#cb76-3" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;unemploy_shock_diff2&quot;</span>,</span>
<span id="cb76-4"><a href="#cb76-4" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;sogo_number_WLS&quot;</span>)</span>
<span id="cb76-5"><a href="#cb76-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb76-6"><a href="#cb76-6" aria-hidden="true" tabindex="-1"></a><span class="co"># graph</span></span>
<span id="cb76-7"><a href="#cb76-7" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_WLS_covar <span class="ot">&lt;-</span> <span class="fu">event_study_graph_2nd_safetynet</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb76-8"><a href="#cb76-8" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;sogo_number_WLS&quot;</span>)</span>
<span id="cb76-9"><a href="#cb76-9" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_WLS_covar</span></code></pre></div>
<pre><code>## Warning: Removed 2 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABUAAAAPACAYAAAD0ZtPZAAAEDmlDQ1BrQ0dDb2xvclNwYWNlR2VuZXJpY1JHQgAAOI2NVV1oHFUUPpu5syskzoPUpqaSDv41lLRsUtGE2uj+ZbNt3CyTbLRBkMns3Z1pJjPj/KRpKT4UQRDBqOCT4P9bwSchaqvtiy2itFCiBIMo+ND6R6HSFwnruTOzu5O4a73L3PnmnO9+595z7t4LkLgsW5beJQIsGq4t5dPis8fmxMQ6dMF90A190C0rjpUqlSYBG+PCv9rt7yDG3tf2t/f/Z+uuUEcBiN2F2Kw4yiLiZQD+FcWyXYAEQfvICddi+AnEO2ycIOISw7UAVxieD/Cyz5mRMohfRSwoqoz+xNuIB+cj9loEB3Pw2448NaitKSLLRck2q5pOI9O9g/t/tkXda8Tbg0+PszB9FN8DuPaXKnKW4YcQn1Xk3HSIry5ps8UQ/2W5aQnxIwBdu7yFcgrxPsRjVXu8HOh0qao30cArp9SZZxDfg3h1wTzKxu5E/LUxX5wKdX5SnAzmDx4A4OIqLbB69yMesE1pKojLjVdoNsfyiPi45hZmAn3uLWdpOtfQOaVmikEs7ovj8hFWpz7EV6mel0L9Xy23FMYlPYZenAx0yDB1/PX6dledmQjikjkXCxqMJS9WtfFCyH9XtSekEF+2dH+P4tzITduTygGfv58a5VCTH5PtXD7EFZiNyUDBhHnsFTBgE0SQIA9pfFtgo6cKGuhooeilaKH41eDs38Ip+f4At1Rq/sjr6NEwQqb/I/DQqsLvaFUjvAx+eWirddAJZnAj1DFJL0mSg/gcIpPkMBkhoyCSJ8lTZIxk0TpKDjXHliJzZPO50dR5ASNSnzeLvIvod0HG/mdkmOC0z8VKnzcQ2M/Yz2vKldduXjp9bleLu0ZWn7vWc+l0JGcaai10yNrUnXLP/8Jf59ewX+c3Wgz+B34Df+vbVrc16zTMVgp9um9bxEfzPU5kPqUtVWxhs6OiWTVW+gIfywB9uXi7CGcGW/zk98k/kmvJ95IfJn/j3uQ+4c5zn3Kfcd+AyF3gLnJfcl9xH3OfR2rUee80a+6vo7EK5mmXUdyfQlrYLTwoZIU9wsPCZEtP6BWGhAlhL3p2N6sTjRdduwbHsG9kq32sgBepc+xurLPW4T9URpYGJ3ym4+8zA05u44QjST8ZIoVtu3qE7fWmdn5LPdqvgcZz8Ww8BWJ8X3w0PhQ/wnCDGd+LvlHs8dRy6bLLDuKMaZ20tZrqisPJ5ONiCq8yKhYM5cCgKOu66Lsc0aYOtZdo5QCwezI4wm9J/v0X23mlZXOfBjj8Jzv3WrY5D+CsA9D7aMs2gGfjve8ArD6mePZSeCfEYt8CONWDw8FXTxrPqx/r9Vt4biXeANh8vV7/+/16ffMD1N8AuKD/A/8leAvFY9bLAAAAOGVYSWZNTQAqAAAACAABh2kABAAAAAEAAAAaAAAAAAACoAIABAAAAAEAAAVAoAMABAAAAAEAAAPAAAAAALYRw1EAAEAASURBVHgB7N0JvGTjnTDgt1ujRaPR9pCgrR2xtol0YssYETsfI4wvy5cQMYkICSbMSIaIjD0LQiZIJrIyiBCExAg6TAiy2I011lhC69a6vvM/mSqn6p66t+5Sdavufc7v16lz3vNu5zl1W/p/32VCJTuSgwABAgQIECBAgAABAgQIECBAgAABAmNQYOIYfCaPRIAAAQIECBAgQIAAAQIECBAgQIAAgVxAANQXgQABAgQIECBAgAABAgQIECBAgACBMSsgADpmX60HI0CAAAECBAgQIECAAAECBAgQIEBAANR3gAABAgQIECBAgAABAgQIECBAgACBMSsgADpmX60HI0CAAAECBAgQIECAAAECBAgQIEBAANR3gAABAgQIECBAgAABAgQIECBAgACBMSsgADpmX60HI0CAAAECBAgQIECAAAECBAgQIEBAANR3gAABAgQIECBAgAABAgQIECBAgACBMSsgADpmX60HI0CAAAECBAgQIECAAAECBAgQIEBAANR3gAABAgQIECBAgAABAgQIECBAgACBMSsgADpmX60HI0CAAAECBAgQIECAAAECBAgQIEBAANR3gAABAgQIECBAgAABAgQIECBAgACBMSsgADpmX60HI0CAAAECBAgQIECAAAECBAgQIEBAANR3gAABAgQIECBAgAABAgQIECBAgACBMSsgADpmX60HI0CAAAECBAgQIECAAAECBAgQIEBAANR3gAABAgQIECBAgAABAgQIECBAgACBMSsgADpmX60HI0CAAAECBAgQIECAAAECBAgQIEBAANR3gAABAgQIECBAgAABAgQIECBAgACBMSsgADpmX60HI0CAAAECBAgQIECAAAECBAgQIEBgEgICBAgQ6B2BSy65JL300ku1Ds+aNSutvvrqtWsnIy/w4IMPpl/96ld1FW+77bZp5ZVXrktr5eL1119P3/ve91KlUqnLvv7666dNNtmkLq3Vi0svvTS9+OKLteyrrLJK2mabbWrXd911V7r99ttr13Hy93//92nhhReuS2v3xf33358uv/zydMMNN6QnnngiPfXUU+nZZ59NSy21VFp++eXzP+utt1563/vel975znemSZP8X5R2vxP1EyBAgAABAgQIEBgvAhOyf4TV/ytsvDy55yRAgEAPCqy11lrpvvvuq/X8O9/5Ttpvv/1q105GXuCOO+5IG264YV3FJ510UjrssMPq0lq5uPHGG1MErRuPCFhee+21jckDXs+ZMycPIL722mu1vEceeWQ64YQTatfHH398Ovroo2vXcfL888/n5eoS23Txwx/+MB177LHp97//fcstTJ06Ne27777p85//fJo2bVrL5WQkQIAAAQIECBAgQIBAmYAp8GUq0ggQIECAwP8KbLDBBvnoxCJI44jQ4r3+zq+88srS21HfX/7yl9J7/SXedNNNqRj8jLx/93d/11+Rjt2LQP1WW22V9t5770EFP6ODEaD9+te/ntZee+38s2Od1hABAgQIECBAgAABAmNSQAB0TL5WD0WAAAECIyUwYcKEFFPei8dIB0DnzZuXfv7znxebaOn8+uuvr8u3+OKLl44wrcvUgYtHH300N2vs32Cb/vOf/5wOPvjgdMwxxwy2qPwECBAgQIAAAQIECBCoCQiA1iicECBAgACBcoG//du/rbsR61fee++9dWkDXTzzzDPpv//7v2vZJk6s/09ws9GhtQIlJ7/85S/rUrfeeuu0yCKL1KV1+iJGsm6//fbpkUce6dP0lltumY/ojHVLf/Ob3+Rrgd59993pqquuSuecc0764Ac/WLr253HHHZe+9rWv9alPAgECBAgQIECAAAECBFoRqP/XVysl5CFAgAABAuNM4D3veU+fJx7sKNAI8i1YsKBWz/vf//7aeZwMNgAao0Zvvvnmujq6Yfr72Wef3WfK+2abbZZiun4EbA866KC08847p4033jituOKK+TT37bbbLn3kIx9J3/rWt9I999yT9t9//7rniotYczU2T3IQIECAAAECBAgQIEBgsAICoIMVk58AAQIExp3AW9/61jR9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Bt6utjpV75JLLjnkpgY7ZXwoDbXyPWyst3HDpMYAaDE4Wi37+OOPp2zH+EH/mTNnTrWK/HOsjACNIG0xwB3LCDz55JN1zzrYAGiMzt18881rdcRI3MYRn8XrCJY2TsWvFe7BkxgRvttuu6V///d/z9cNjTVnG39JEqP3Y21QBwECBAgQIECAAAECBAYjIAA6GC15c4EYrXbyySenGPG0xx579PkHahlTjMaMoGlMlW8cwVTN37jJRUwLLo58quZr5bO403XkL05DjVFGxaOVdeiK+avnrfStU89U7dNof0ZAZqwdw5me3gmLoQTvY+Ok4tH4M9H4vS3mHe55bIgz0NG4NuxA+Ufrfn+jQCMgev/999e6Fusnt/ILgsYRncVp8FFnBKKrx9/8zd8M+e/Iah3d+hnfgeOOOy5dccUV+Y7yxX7GJnplv1wq5nFOgAABAgQIECBAgACBooAp8EUN54MSiE1RfvzjH+f/EI3pijHa6dprr039beASU9EjaBAB1NgduHhMmTKleJli5FiM9mlMr8vU5KJxlGdxJ+7GEXMxOjRGrMZI0MEcrWzm0tj3dj3TYPo9HvPGSLqxekSwcsUVVxzU4xWXhIiCjWvmlgVVd9111zSc0bDVDm666abV057/jL/LYrRi9bjpppvyXwrF9WBHf1briADoscceW72sW/OyOPozMnTb+p/xXYwlRuL7FX/ie7XxxhvXnmUoJzHC9ZhjjklHHHFErXhMhf/tb387pka/1h7OCQECBAgQIECAAAECbREQAG0L6/iqNDY6OfDAA/M/8+fPTzfeeGO+y3oEAGINu8Z1HSPPIYccklZaaaW011571bAaN2aJGzFaLEaNDvZoHGVWHBFatmlMBDPXXXfdQTXz8MMPD5i/U880YEfGWIb4DrV6RLDktddeazV7z+WLNTYHGwD9n//5n7rnbAyAxlquMfW4OHL6Yx/7WHrve99bV268X0RwLkbEV/+Ou+WWW2okjTu4N47srGVsOIld4uPvjeoyBBHoi18qRfC5uKN8FOu2AOguu+xS18f99tsvfec732l4wsFfxn9figHQqCFG146l6f+DV1GCAAECBAgQIECAAIHBCJgCPxgteQcUiF18t9xyy3yTpJj2HiMxTz/99FS2q3NsllQ8ikHKanpjoKaaPtBnY7niiLYYAdq423Arozkb22wlANqpZ2rs21i/LgbmBnrWdk7nHqjtTtx/5plnBt1M489H489nLGXQGBQdaMOvQXdiDBSIpQRianv1iL/zFixYkP8pBitjs593v/vd1Wz9foZ9cWp9BFdj0584inU2rhfab6UdurneeuvVtTR79uy666FexHIjxVH8UU9xXeeh1qscAQIECBAgQIAAAQLjR0AAdPy86xF/0laCUBEgiKnuETyJjZCKR6QVpybHSM8IFBSPWPNusEcEIB588MG6YsXNSmJjmsZp8MUd4+sKNrmIoFpjG2VZO/VMZW2PpbTGjVDmzp3b8uOVBberI/ZarqSLM8bGRIM5YsRo4zIVjQHQqK9xpHSM5nb0FSgGK2PJjj/+8Y/pzjvvrI3gjBJbb711Gsxaw40jOyMAGmt/FtcUre4Y37dHo5fSGACNv79jRsBwjxjB3fiLjMYA/XDbUJ4AAQIECBAgQIAAgbEtIAA6tt/viD5djOY56KCD0jbbbJNPX28MaPbXWOzue/jhh9dliWnMxbU6Y1RmbOpRPM4+++y6IGnxXrPz//iP/+gzOmjnnXeuy944dfK0005Lr7zySl2e/i5iDdOYWj3Q0clnGqgvvXx/8uTJdd2PdQZbPZptutVq+W7P973vfW9QXTzzzDPr8kdgrnFX+MjQGAD9xS9+kV544YW6sgNdxDqQsZlN1LXddtulj370o3WjGAcq3wv3IxBZPGIafHGkZtxrdfp7tZ7G/DEN/uabb67ezj8bg6R1N0fpIgK9jce//uu/NiYN+jrWlm5c9qLx+znoShUgQIAAAQIECBAgQGBcCQiAjqvXPbyHjbXuzjrrrBSBkAhAxSinxrU2+2shpmwWj4kTJ/aZ1rj77rsXs6QY3fbtb3+7Lq2/ixgpVNxAJPJGcKcxsPq5z32ubkTWk08+mT9bf3VX78WU45jW3+rRqWdqtT+9mK9xKYH47rVyxEjPH/zgB61k7dk8N9xwQ2plOYZ4wBhFd+qpp9Y96wEHHJDiZ7HxiPUci0d8748++uhi0oDnscxFrGV57733pmuuuSZ985vfHPR6pQM2MsoZYsmPGFVePSIA2rhZUWNAs5q32Wf8nVUcTdkrAdCNNtooD3QXnyvWgo5NjIZ6xGjv+Pu6eETwcyhrQxfrcE6AAAECBAgQIECAwPgS6Puv3vH1/J52EAKbb755n6njxx13XMs1XHXVVXV5Yxp648i+D3/4w/kGIMWMEdBsnLJbvF88//rXv54eeOCBYlLae++9841KiokxJT4CP8Xj+OOP7zNyq3g/zqMf0ceXXnqp8VbT6049U9MOjIEbxWBQPE4ENaubxPT3eBGwL25M01/eXr0XQd4YWRlLPwx0nHDCCXVTiWOznX/5l38pLfaud70r7bvvvnX3YvRoq8tFRNAufh6Lx/ve97601lprFZN6/nzKlCnpHe94R+05GkeAxt9z66yzTu1+qyfFoOldd92VYof56hGGUW83HkcddVSfbsV/Jw4++OC6716fTCUJsaTAbrvt1uc795nPfKY0aF9ShSQCBAgQIECAAAECBAjkAgKgvgiDEiju2h4FY0TXGWecMWAdEfxsHDX5kY98pE+5xRdfPB155JF16bFhyyabbJLvKF93o3AR0yM/+9nPpkMPPbSQmlLsZt1s1No//dM/1a05GptqxNT4GLVWFkyKgE5M+7/sssvq2hjoopPPNFBfevV+BJGLRyxXsMcee/S7DMG//du/pX/8x38sFhuz5/HzFctTNNvtPn4+Yi3eL3/5y3UG8bOx7LLL1qUVL8IwAnzVI9bsjansA027v+eee/Jp3y+//HK1aP55yCGH1F2PlYviOqC33nprPkK++mzFQGY1rZXPYrlw/NWvflUrNhLT3+OXOcP50+yXQLFEygc+8IFaX6snEQyPwO2XvvSlFN+PZkd8x+J+/Pci1vmMEaTFY/3110//9//+32KScwIECBAgQIAAAQIECAwskI0echBoWSBbs7OSTc+sZN+suj9bbLFFJQsMVrKpuJXsH7B5fc8++2wlWze08g//8A+VbGfjuvzZlOZKtp5gabtZ8LHy3ve+ty5/tJeNFq1kAZvK1VdfXcmClXk7v//97yvnn39+JRut1id/tJkFDUrbqCZmwds+5aKtbM3SSvYP+cqnP/3pyt///d9XVl999T75srUT69KyUU7Vavt8dvKZ+jTexoQsGFFn8O///u+Dai2bxlpX/txzz21avjFvvKd4L1lgpZKNSqw89thj+fftK1/5SqXYr2zphsrb3/72unauu+66pu0Uy0YbrT5TNlqtro0om43ca9pO8call15aV/bNb35z8XbdebZhUV3eeL5oK/7MnDmz8qMf/aiSBafyMtkGUJULL7ywstVWW9XyVPNGPdn04rq6yy6yoGmf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Tl+8x35DYLfddkvxJ3aC//a3v50eeOCB9NBDD6XHHnssLViwIN/dfeWVV06rrrpq2mWXXdJ+++2XVlxxxTcqGOWzvfbaK2200UYd68Uqq6zSsbY0RKBMwHe+TEUaAQIECBAgQIAAAQIECDQTMAW+mYz0cS8QGyP95S9/SUsvvfS4twBAgAABAgQIECBAgAABAgQIEOhVAQHQXn1z+k2AAAECBAgQIECAAAECBAgQIECAwIAC1gAdkEgGAgQIECBAgAABAgQIECBAgAABAgR6VUAAtFffnH4TIECAAAECBAgQIECAAAECBAgQIDCggADogEQyECBAgAABAgQIECBAgAABAgQIECDQqwICoL365vSbAAECBAgQIECAAAECBAgQIECAAIEBBQRABySSgQABAgQIECBAgAABAgQIECBAgACBXhUQAO3VN6ffBAgQIECAAAECBAgQIECAAAECBAgMKCAAOiCRDAQIECBAgAABAgQIECBAgAABAgQI9KqAAGivvjn9JkCAAAECBAgQIECAAAECBAgQIEBgQAEB0AGJZCBAgAABAgQIECBAgAABAgQIECBAoFcFBEB79c3pNwECBAgQIECAAAECBAgQIECAAAECAwoIgA5IJAMBAgQIECBAgAABAgQIECBAgAABAr0qIADaq29OvwkQIECAAAECBAgQIECAAAECBAgQGFBAAHRAIhkIECBAgAABAgQIECBAgAABAgQIEOhVAQHQXn1z+k2AAAECBAgQIECAAAECBAgQIECAwIACAqADEslAgAABAgQIECBAgAABAgQIECBAgECvCgiA9uqb028CBAgQIECAAAECBAgQIECAAAECBAYUEAAdkEgGAgQIECBAgAABAgQIECBAgAABAgR6VWBSr3ZcvzsjcOKJJ6abbrqp1tjJJ5+c1lxzzdq1EwIECBAgQIAAAQJjRWDOnDnpggsuKH2cvffeOy299NKl9yQSIECAAAEC3S0woZId3d1FvRtNgT333DNddNFFtS7ceuutadNNN61dOyFAgAABAgQIECAwVgSeeeaZNGvWrNLHufzyy9P06dNL70kkQIAAAQIEulvAFPjufj96R4AAAQIECBAgQIAAAQIECBAgQIDAMAQEQIeBpygBAgQIECBAgAABAgQIECBAgAABAt0tIADa3e9H7wgQIECAAAECBAgQIECAAAECBAgQGIaAAOgw8BQlQIAAAQIECBAgQIAAAQIECBAgQKC7BQRAu/v96B0BAgQIECBAgAABAgQIECBAgAABAsMQEAAdBp6iBAgQIECAAAECBAgQIECAAAECBAh0t4AAaHe/H70jQIAAAQIECBAgQIAAAQIECBAgQGAYAgKgw8BTlAABAgQIECBAgAABAgQIECBAgACB7hYQAO3u96N3BAgQIECAAAECBAgQIECAAAECBAgMQ0AAdBh4ihIgQIAAAQIECBAgQIAAAQIECBAg0N0CAqDd/X70jgABAgQIECBAgAABAgQIECBAgACBYQgIgA4DT1ECBAgQIECAAAECBAgQIECAAAECBLpbQAC0u9+P3hEgQIAAAQIECBAgQIAAAQIECBAgMAwBAdBh4ClKgAABAgQIECBAgAABAgQIECBAgEB3CwiAdvf70TsCBAgQIECAAAECBAgQIECAAAECBIYhIAA6DDxFCRAgQIAAAQIECBAgQIAAAQIECBDobgEB0O5+P3pHgAABAgQIECBAgAABAgQIECBAgMAwBARAh4GnKAECBAgQIECAAAECBAgQIECAAAEC3S0gANrd70fvCBAgQIAAAQIECBAgQIAAAQIECBAYhoAA6DDwFCVAgAABAgQIECBAgAABAgQIECBAoLsFJnV39/SOAAECBAgQIECAAAECnRFYZJFF0rbbblva2OKLL16aLpEAAQIECBDofgEB0O5/R3pIgAABAgQIECBAgEAHBJZccsl05plndqAlTRAgQIAAAQKdFDAFvpPa2iJAgAABAgQIECBAgAABAgQIECBAoKMCAqAd5dYYAQIECBAgQIAAAQIECBAgQIAAAQKdFBAA7aS2tggQIECAAAECBAgQIECAAAECBAgQ6KiAAGhHuTVGgAABAgQIECBAgAABAgQIECBAgEAnBQRAO6mtLQIECBAgQIAAAQIECBAgQIAAAQIEOipgF/iOcmuMAAECBAgQIECAAAECBAgQIDB2BK666qp04403Nn2g5ZZbLh188MFN77tBoBMCAqCdUNYGAQIECBAgQIAAAQIECBAgQGAMCkQA9OSTT276ZOuuu64AaFMdNzolYAp8p6S1Q4AAAQIECBAgQIAAAQIECBAgQIBAxwWMAB0k+eGHH55mz56dPvWpT6U999xzwNK/+tWv+h0KXqxg8uTJ6ROf+EQxqe789ddfT1dccUW65ppr0iOPPJJeeeWVtN5666UNNtggbbHFFil+q+IgQIAAAQIECBAgQIAAAQIECHRKYP/9908zZ87Mmzv66KPTfffdl5+fe+65acqUKWnJJZfsVFe0Q6CpgABoU5q+Ny666KI8+Nn3TvOUGAp+7bXXNs9QuLP44os3DYA+/fTT6bDDDksPPvhgoURKt9xyS/7n/PPPT0cddVTafvvt6+67IECAAAECBAgQIECAAAECBAi0S2DDDTdM8SeO0047rRYA3WOPPdLSSy/drmbVS2BQAgKgLXJdffXV+Q9yi9lr2e69997a+VBPXn755fSZz3ymFvycPn16mjVrVoqFhG+//fZ0/fXXp3nz5qXjjjsuRd74S8ZBgAABAgQIECBAgAABAgQIECBAgEBKAqADfAvmzp2bvvnNb6bvf//7qVKpDJC7/vacOXPSo48+miduttlmKYaC93dMnFi+JOu3vvWtdP/99+dFt9lmm3TMMcekhRdeOL/edddd0x133JE++9nP5sHPM844I2255ZZp2rRp/TXlHgECBAgQIECAAAECBAgQIECAAIFxIVAecRsXjz7wQ8boyg9+8IPpwgsvTAsWLBi4QEOOCFpWg6brr79+WnbZZfv9UzY0/MUXX0yXXnppXvPyyy9fF/ysNvf2t789T4/rWCe0mr963ycBAgQIECBAgAABAgQIECBAgACB8SogAFry5iNoecopp+TrcVZHcK622motbXpUrK44/X2dddYp3mr5/LrrrksxkjSO3XbbrTbys7GCmBK/6qqr5skRAJ0/f35jFtcECBAgQIAAAQIECBAgQIAAAQIExp2AAGjJK4/RnhdffHHtzo477phPg4+1N6vHhAkTqqdNP0ciAHrXXXfV6t98881r52UnMc0+jmeffTb95je/KcsijQABAgQIECBAgAABAgQIECBAgMC4ErAGaD+ve+bMmfkU+JhiPpSjGgCdOnVqWmGFFfIqYnTpk08+mRZbbLG01FJLDVjt7373uzxPBFzXXHPNfvMXA7QPPPBAGihg2m9lbhIgQIAAAQIECBAgQIAAAQIECBAYAwICoCUvMTYjOuuss9KMGTNK7raWFGtxRhAyjpj+fuedd6bzzjsv37Do1VdfzdNjTc9YG/RjH/tYWmWVVfK0xv957LHH8qTY8X3SpP5fVzXIGgUefvjhxqpcEyBAgAABAgQIECBAgAABAgQIEBh3Av1H1MYdx18fOEZbDif4GbVEAHLevHl5hbFL+8c//vG/Vl7436eeeirFn5tvvjkddNBBaY899ijcTfnan9XNl8o2SKrLnF3ESNPqEZsntXIce+yxafbs2U2zRgD2LW95Sz5qtRq4bZrZDQIECBAgQIAAAQIECBAgQIAAAQJdJiAA2qYXUp3+HtXHJkaTJ09OG220Udp4443TMssskx588MH0i1/8Ij3++OMpAounnnpqWmKJJdJ2221X69HLL79cO1900UVr581OinlaDVY+8cQTtZGq/dXbypqnzcpLJ0CAAAECBAgQIECAAAECBAgQIDBaAgKgbZIvBkCnTZuW7yq/+uqr17X2oQ99KJ1xxhnpsssuy9NPP/30FBsZVUd7vvLKK7X8iyyySO282Ukxz9y5c5tlk06AAAECBAgQIECAAAECBAgQIEBg3AgIgLbpVe+66675NPoYYbn11lunlVZaqU9LMSr0sMMOS3/84x9TBExfeOGF9IMf/CAdeOCBed7imp+xpuhAx/z582tZisHQWqITAgQIECBAgAABAgQIECBAgAABAuNMQAC0TS/8zW9+c4o/Ax0LLbRQ+vCHP5yOOuqoPGtx5GjsFF89quuJVq/LPot5Fl988bIsfdK+8pWvpP6Cq/vuu2+65JJLUuxe7yBAgAABAgQIECBAgAABAgQIECDQawICoF3wxqZPn17rRXXn+Eh405veVEsvrgdaS2w4KU6ZbzUAOtBI0YkTJwp+Nji7JECAAAECBAgQIECAAAECBAgQ6B0BAdAueFfLLbdcrRcxDb56xKZGyy67bHr22Wfz3eKr6c0+n3zyydqt2GjJQYAAAQIECBAgQIBA6wIxo+qWW24pLRCbmRYHKJRmkkiAAAECBAh0pYAAaJteS4zY/POf/5xiM6I111yz31aeeuqp2v1VV121dh4nsXFSBEBjdGfUV90gqS7T/148+uijteT11luvdu6EAAECBAgQIECAAIGBBV588cV8eaqynJdffnkqztwqyyONAAECBAgQ6E6Bid3Zrd7uVQQrd9xxx/T+978/HXDAAXkQtL8neuihh2q3V1tttdp5nKy//vq169/+9re187KTO+64o5ZcLFdLdEKAAAECBAgQIECAAAECBAgQIEBgnAkIgLbhhcfUmGoAMqbRzJ49u99Wvvvd79buv+td76qdx0nsIF89fvazn1VP+3zG9PfbbrstT19nnXWSKfB9iCQQIECAAAECBAgQIECAAAECBAiMQwEB0Da99GIg8/TTT08vvfRSaUs/+tGP0u23357fW2uttdJ2221Xly/SIqAZxw033JDKgqAxzf5LX/pSbTf3/fbbr64OFwQIECBAgAABAgQIECBAgAABAgTGq4AAaJve/N5775022GCDvPZY4/OjH/1o+tWvfpWv5Tl//vx07733puOPPz5FcDSO2I39k5/8ZJowYUJ+XfyfQw89tHYZZc4///z0+OOPp6gnpr0fdthh6dZbb83zxMjTrbbaqpbfCQECBAgQIECAAAECBAgQIECAAIHxLGATpDa9/UmTJqXPf/7zeVAzNid67LHH0pFHHpm3FvcieFk9ll9++TwYuu6661aT6j5nzJiR13XCCSekV199NZ177rn5n4UWWqg26jMKrLLKKunEE09MEyeKa9cBuiBAgAABAgQIECBAgAABAgQIEBi3AiJlbXz1yy23XLrgggvSQQcdlBZffPFaS9Xg59SpU9M222yTBzObBT+rhbbddtt09tln59PhqwHO119/Pb8dAdW99torvx91OggQIECAAAECBAgQIECAAAECBAgQ+KuAEaCD+CbstNNOKf4M5lh44YXTvvvum/bZZ5/0pz/9KT388MMpNkZae+2104orrjiYqtIaa6yRB0tjFGhMoY+Nj1ZeeeUUO8dPmTJlUHXJTIAAAQIECBAgQIAAAQIECBAgQGA8CAiAdugtx6jNCFbGn+EekydPztcXra4xOtz6lCdAgAABAgQIECBAgAABAgQIECAwVgVMgR+rb9ZzESBAgAABAgQIECBAgAABAgQIECCQBEB9CQgQIECAAAECBAgQIECAAAECBAgQGLMCAqBj9tV6MAIECBAgQIAAAQIECBAgQIAAAQIEBEB9BwgQIECAAAECBAgQIECAAAECBAgQGLMCAqBj9tV6MAIECBAgQIAAAQIECBAgQIAAAQIEBEB9BwgQIECAAAECBAgQIECAAAECBAgQGLMCAqBj9tV6MAIECBAgQIAAAQIECBAgQIAAAQIEBEB9BwgQIECAAAECBAgQIECAAAECBAgQGLMCAqBj9tV6MAIECBAgQIAAAQIECBAgQIAAAQIEBEB9BwgQIECAAAECBAgQIECAAAECBAgQGLMCAqBj9tV6MAIECBAgQIAAAQIECBAgQIAAAQIEBEB9BwgQIECAAAECBAgQIECAAAECBAgQGLMCAqBj9tV6MAIECBAgQIAAAQIECBAgQIAAAQIEBEB9BwgQIECAAAECBAgQIECAAAECBAgQGLMCAqBj9tV6MAIECBAgQIAAAQIECBAgQIAAAQIEJiEgQIAAAQIECBAgQIAAgZQmTZqUNtlkk1KKyZMnl6ZLJECAAAECBLpfQAC0+9+RHhIgQIAAAQIECBAg0AGBqVOnpgsvvLADLWmCAAECBAgQ6KSAKfCd1NYWAQIECBAgQIAAAQIECBAgQIAAAQIdFRAA7Si3xggQIECAAAECBAgQIECAAAECBAgQ6KSAAGgntbVFgAABAgQIECBAgAABAgQIECBAgEBHBQRAO8qtMQIECBAgQIAAAQIECBAgQIAAAQIEOikgANpJbW0RIECAAAECBAgQIECAAAECBAgQINBRAQHQjnJrjAABAgQIECBAgAABAgQIECBAgACBTgoIgHZSW1sECBAgQIAAAQIECBAgQIAAAQIECHRUQAC0o9waI0CAAAECBAgQIECAAAECBAgQIECgkwICoJ3U1hYBAgQIECBAgAABAgQIECBAgAABAh0VEADtKLfGCBAgQIAAAQIECBAgQIAAAQIECBDopIAAaCe1tUWAAAECBAgQIECAAAECBAgQIECAQEcFBEA7yq0xAgQIECBAgAABAgQIECBAgAABAgQ6KSAA2kltbREgQIAAAQIECBAgQIAAAQIECBAg0FEBAdCOcmuMAAECBAgQIECAAAECBAgQIECAAIFOCgiAdlJbWwQIECBAgAABAgQIECBAgAABAgQIdFRAALSj3BojQIAAAQIECBAgQIAAAQIECBAgQKCTAgKgndTWFgECBAgQIECAAAECBAgQIECAAAECHRUQAO0ot8YIECBAgAABAgQIECBAgAABAgQIEOikgABoJ7W1RYAAAQIECBAgQIAAAQIECBAgQIBARwUEQDvKrTECBAgQIECAAAECBAgQIECAAAECBDopIADaSW1tESBAgAABAgQIECBAgAABAgQIECDQUQEB0I5ya4wAAQIECBAgQIAAAQIECBAgQIAAgU4KCIB2UltbBAgQIECAAAECBAgQIECAAAECBAh0VGBSR1vTGAECBAgQIECAAAECBLpUYP78+emee+4p7d2aa66ZFl100dJ7EgkQIECAAIHuFhAA7e73o3cECBAgQIAAAQIECHRI4Pnnn0+77757aWuXX355mj59euk9iQQIECBAgEB3C5gC393vR+8IECBAgAABAgQIECBAgAABAgQIEBiGgADoMPAUJUCAAAECBAgQIECAAAECBAgQIECguwUEQLv7/egdAQIECBAgQIAAAQIECBAgQIAAAQLDEBAAHQaeogQIECBAgAABAgQIECBAgAABAgQIdLeAAGh3vx+9I0CAAAECBAgQIECAAAECBAgQIEBgGAICoMPAU5QAAQIECBAgQIAAAQIECBAgQIAAge4WEADt7vejdwQIECBAgAABAgQIECBAgAABAgQIDENAAHQYeIoSIECAAAECBAgQIECAAAECBAgQINDdAgKg3f1+9I4AAQIECBAgQIAAAQIECBAgQIAAgWEICIAOA09RAgQIECBAgAABAgQIECBAgAABAgS6W0AAtLvfj94RIECAAAECBAgQIECAAAECBAgQIDAMAQHQYeApSoAAAQIECBAgQIAAAQIECBAgQIBAdwsIgHb3+9E7AgQIECBAgAABAgQIECAWacffAABAAElEQVRAgAABAgSGISAAOgw8RQkQIECAAAECBAgQIECAAAECBAgQ6G4BAdDufj96R4AAAQIECBAgQIAAAQIECBAgQIDAMAQEQIeBpygBAgQIECBAgAABAgQIECBAgAABAt0tIADa3e9H7wgQIECAAAECBAgQIECAAAECBAgQGIaAAOgw8BQlQIAAAQIECBAgQIAAAQIECBAgQKC7BQRAu/v96B0BAgQIECBAgAABAgQIECBAgAABAsMQEAAdBp6iBAgQIECAAAECBAgQIECAAAECBAh0t4AAaHe/H70jQIAAAQIECBAgQIAAAQIECBAgQGAYAgKgw8BTlAABAgQIECBAgAABAgQIECBAgACB7hYQAO3u96N3BAgQIECAAAECBAgQIECAAAECBAgMQ2DSMMoqSoAAAQIECBAgQIAAgTEjMHHixLT66quXPs/CCy9cmi6RAAECBAgQ6H4BAdDuf0d6SIAAAQIECBAgQIBABwSWWWaZdOWVV3agJU0QIECAAAECnRQwBb6T2toiQIAAAQIECBAgQIAAAQIECBAgQKCjAgKgHeXWGAECBAgQIECAAAECBAgQIECAAAECnRQQAO2ktrYIECBAgAABAgQIECBAgAABAgQIEOiogABoR7k1RoAAAQIECBAgQIAAAQIECBAgQIBAJwUEQDuprS0CBAgQIECAAAECBAgQIECAAAECBDoqIADaUW6NESBAgAABAgQIECBAgAABAgQIECDQSQEB0E5qa4sAAQIECBAgQIAAAQIECBAgQIAAgY4KCIB2lFtjBAgQIECAAAECBAgQIECAAAECBAh0UkAAtJPa2iJAgAABAgQIECBAgAABAgQIECBAoKMCAqAd5dYYAQIECBAgQIAAAQIECBAgQIAAAQKdFBAA7aS2tggQIECAAAECBAgQIECAAAECBAgQ6KiAAGhHuTVGgAABAgQIECBAgAABAgQIECBAgEAnBQRAO6mtLQIECBAgQIAAAQIECBAgQIAAAQIEOiogANpRbo0RIECAAAECBAgQIECAAAECBAgQINBJAQHQTmpriwABAgQIECBAgAABAgQIECBAgACBjgoIgHaUW2MECBAgQIAAAQIECBAgQIAAAQIECHRSQAC0k9raIkCAAAECBAgQIECAAAECBAgQIECgowICoB3l1hgBAgQIECBAgAABAgQIECBAgAABAp0UEADtpLa2CBAgQIAAAQIECBAgQIAAAQIECBDoqIAAaEe5NUaAAAECBAgQIECAAAECBAgQIECAQCcFBEA7qa0tAgQIECBAgAABAgQIECBAgAABAgQ6KiAA2lFujREgQIAAAQIECBAgQIAAAQIECBAg0EmBSZ1sTFsECBAgQIAAAQIECBAgQIAAgfEk8POf/zxdeeWVTR95ySWXTMccc0zT+24QIDB8AQHQ4RuqgQABAgQIECBAgACBMSCwYMGC9OSTT5Y+yXLLLZcmTfLPp1IciQQI9Ctw0003pZNOOqlpnhVXXFEAtKmOGwRGRsB/wUfGUS0ECBAgQIAAAQIECPS4wHPPPZe23nrr0qe4/PLL0/Tp00vvSSRAgAABAgS6W0AAtLvfj94RIECAAAECBAgQIECAAAECPSywzz77pI022ih/gmOPPTb993//d35+zjnnpBj9OXny5B5+Ol0n0BsCAqC98Z70kgABAgQIECBAgAABAgQIEOhBgRg9Xh1B/vWvf732BNtuu21aY401atdOCBBon4Bd4Ntnq2YCBAgQIECAAAECBAgQIECAAAECBEZZQAB0lF+A5gkQIECAAAECBAgQIECAAAECBAgQaJ+AAGj7bNVMgAABAgQIECBAgAABAgQIECBAgMAoCwiAjvIL0DwBAgQIECBAgAABAgQIECBAgAABAu0TEABtn62aCRAgQIAAAQIECBAgQIAAAQIECBAYZQEB0FF+AZonQIAAAQIECBAgQIAAAQIECBAgQKB9AgKg7bNVMwECBAgQIECAAAECBAgQIECAAAECoywgADrKL0DzBAgQIECAAAECBAgQIECAAAECBAi0T0AAtH22aiZAgAABAgQIECBAgAABAgQIECBAYJQFBEBH+QVongABAgQIECBAgAABAgQIECBAgACB9gkIgLbPVs0ECBAgQIAAAQIECBAgQIAAAQIECIyygADoKL8AzRMgQIAAAQIECBAgQIAAAQIECBAg0D4BAdD22aqZAAECBAgQIECAAAECBAgQIECAAIFRFhAAHeUXoHkCBAgQIECAAAECBAgQIECAAAECBNonIADaPls1EyBAgAABAgQIECBAgAABAgQIECAwygICoKP8AjRPgAABAgQIECBAgAABAgQIECBAgED7BARA22erZgIECBAgQIAAAQIECBAgQIAAAQIERllAAHSUX4DmCRAgQIAAAQIECBAgQIAAAQIECBBon4AAaPts1UyAAAECBAgQIECAAAECBAgQIECAwCgLCICO8gvQPAECBAgQIECAAAECBAgQIECAAAEC7RMQAG2frZoJECBAgAABAgQIECBAgAABAgQIEBhlgUmj3L7mCRAgQIAAAQIECBAg0BUCEydOTFOnTi3tS9xzECBAgAABAr0pIADam+9NrwkQIECAAAECBAgQGGGBZZZZJs2ePXuEa1UdAQIECBAgMNoCfo052m9A+wQIECBAgAABAgQIECBAgAABAgQItE1AALRttComQIAAAQIECBAgQIAAAQIECBAgQGC0BQRAR/sNaJ8AAQIECBAgQIAAAQIECBAgQIAAgbYJCIC2jVbFBAgQIECAAAECBAgQIECAAAECBAiMtoAA6Gi/Ae0TIECAAAECBAgQIECAAAECBAgQINA2AQHQttGqmAABAgQIECBAgAABAgQIECBAgACB0RYQAB3tN6B9AgQIECBAgAABAgQIECBAgAABAgTaJiAA2jZaFRMgQIAAAQIECBAgQIAAAQIECBAgMNoCAqCj/Qa0T4AAAQIECBAgQIAAAQIECBAgQIBA2wQEQNtGq2ICBAgQIECAAAECBAgQIECAAAECBEZbQAB0tN+A9gkQIECAAAECBAgQIECAAAECBAgQaJuAAGjbaFVMgAABAgQIECBAgAABAgQIECBAgMBoCwiAjvYb0D4BAgQIECBAgAABAgQIECBAgAABAm0TEABtG62KCRAgQIAAAQIECBAgQIAAAQIECBAYbQEB0NF+A9onQIAAAQIECBAgQIAAAQIECBAgQKBtAgKgbaNVMQECBAgQIECAAAECBAgQIECAAAECoy0gADrab0D7BAgQIECAAAECBAgQIECAAAECBAi0TUAAtG20KiZAgAABAgQIECBAgAABAgQIECBAYLQFBEBH+w1onwABAgQIECBAgAABAgQIECBAgACBtgkIgLaNVsUECBAgQIAAAQIECBAgQIAAAQIECIy2gADoaL8B7RMgQIAAAQIECBAgQIAAAQIECBAg0DYBAdC20aqYAAECBAgQIECAAAECBAgQIECAAIHRFhAAHe03oH0CBAgQIECAAAECBAgQIECAAAECBNomMKltNauYAAECBAgQIECAAAECPSYwZ86c0h5Pnjw5TZgwofSeRAIECBAgQKC7BQRAu/v96B0BAgQIECBAgAABAh0SeOaZZ9KsWbNKW7v88svT9OnTS+9JJECAAAECBLpbwBT47n4/ekeAAAECBAgQIECAAAECBAgQIECAwDAEBECHgacoAQIECBAgQIAAAQIECBAgQIAAAQLdLSAA2t3vR+8IECBAgAABAgQIECBAgAABAgQIEBiGgADoMPAUJUCAAAECBAgQIECAAAECBAgQIECguwUEQLv7/egdAQIECBAgQIAAAQIECBAgQIAAAQLDEBAAHQaeogQIECBAgAABAgQIECBAgAABAgQIdLeAAGh3vx+9I0CAAAECBAgQIECAAAECBAgQIEBgGAKThlF2XBY9/PDD0+zZs9OnPvWptOeee7Zk8Prrr6crrrgiXXPNNemRRx5Jr7zySlpvvfXSBhtskLbYYou07rrrdrSelhqTiQABAgQIECBAgAABAgQIECBAgMAYEBAAHcRLvOiii/Lg5yCKpKeffjoddthh6cEHH6wrdsstt6T4c/7556ejjjoqbb/99nX3Gy9Gqp7Gel0TIECAAAECBAgQIECAAAECBAgQGMsCAqAtvt2rr746nXbaaS3m/mu2l19+OX3mM5+pBT+nT5+eZs2alZZbbrl0++23p+uvvz7NmzcvHXfccSny7rHHHqX1j1Q9pZVLJECAAAECBAgQIECAAAECBAgQIDCGBQRAB3i5c+fOTd/85jfT97///VSpVAbIXX/7W9/6Vrr//vvzxG222SYdc8wxaeGFF86vd91113THHXekz372s3nw84wzzkhbbrllmjZtWn0l2dVI1dOnYgkECBAgQIAAAQIECBAgQIAAAQIExriATZD6ecExSvODH/xguvDCC9OCBQv6ydn31osvvpguvfTS/Mbyyy9fF/ys5n7729+ep8d1rBNazV+9H58jVU+xTucECBAgQIAAAQIECBAgQIAAAQIExouAAGjJm46Rnqecckr6xCc+kR599NE8x2qrrdbypkdR4Lrrrktz5szJy+622261kZ95QuF/Ykr8qquumqdEAHT+/PmFuyNXT12lLggQIECAAAECBAgQIECAAAECBAiMEwEB0JIXHaM9L7744tqdHXfcMZ8GH2t4Vo8JEyZUT0s/77rrrlr65ptvXjsvO9lss83y5GeffTb95je/qcsyUvXUVeqCAAECBAgQIECAAAECBAgQIECAwDgREADt50XPnDkzfe1rX0tHHnlkmjx5cj85+9763e9+lydGoHTNNdfsm6GQUgysPvDAA4U7KY1UPXWVuiBAgAABAgQIECBAgAABAgQIECAwTgRsglTyoidOnJjOOuusNGPGjJK7rSU99thjecbY8X3SpP6ZV1hhhVqlDz/8cO08TkaqnrpKXRAgQIAAAQIECBAgQIAAAQIECBAYJwL9R+bGCULjY8aozeEEP2Ptz+qmSUsvvXRj9X2up06dWkuLTY+qx0jVU62v7POXv/xlbZ3TsvsxLX+ppZbKd6pvXJ+0LL80AgQIECBAgAABAgQIECBAgAABAt0kIADahrfx8ssv12pddNFFa+fNTop5Xn311Vq2kaqnVmHJyXe/+930i1/8ouTOG0kxQvWRRx7ps0HTGzmcESBAgAABAgQIECBAgAABAgQIEOhOAWuAtuG9vPLKK7VaF1lkkdp5s5Ninrlz59ayjVQ9tQqdECBAgAABAgQIECBAgAABAgQIEBhnAgKgbXjhxTU/X3/99QFbKE4tLwZDR6qeATsgAwECBAgQIECAAAECBAgQIECAAIExKmAKfBte7GKLLVardd68ebXzZifFPIsvvngt20jVU6uw5GTPPfdMm222WcmdvyZ9+9vfTnfddVd67bXXmuZxgwABAgQIECBAgAABAgQIECBAgEC3CgiAtuHNvOlNb6rVWlzHs5bYcFKc6l4MgI5UPQ3N1V3+3d/9Xd1148WVV16Z/vznPzcmuyZAgAABAgQIECBAgAABAgQIECDQEwKmwLfhNcWmRssuu2xe81NPPTVgC08++WQtzzLLLFM7H6l6ahU6IUCAAAECBAgQIECAAAECBAgQIDDOBARA2/TCV1999bzmGN050AjKRx99tNaL9dZbr3YeJyNVT12lLggQIECAAAECBAgQIECAAAECBAiMEwEB0Da96PXXX79W829/+9vaednJHXfcUUsulovE4vVw6qk14IQAAQIECBAgQIAAgVKBadOmpbvvvrv0z/Tp00vLSCRAgAABAgS6X0AAtE3vaOutt67V/LOf/ax23ngS099vu+22PHmdddZJxSnwkThS9TS265oAAQIECBAgQIAAAQIECBAgQIDAeBAQAG3TW15rrbVSBDTjuOGGG1JZEHTu3LnpS1/6Unr99dfzfPvtt1/+WfyfkaqnWKdzAgQIECBAgAABAgQIECBAgAABAuNFQAC0jW/60EMPrdV+/PHHp/PPPz89/vjjaf78+SmmvR922GHp1ltvzfPEVPetttqqlr94MlL1FOt0ToAAAQIECBAgQIAAAQIECBAgQGA8CEwaDw85Ws84Y8aM9PnPfz6dcMIJ6dVXX03nnntu/mehhRaqjfqMvq2yyirpxBNPTBMnlsejR6qe0XLQLgECBAgQIECAAAECBAgQIECAAIHREiiPuI1Wb8Zgu9tuu206++yz8+nw1QBndcr7pEmT0l577ZXfnzp1ar9PP1L19NuImwQIECBAgAABAgQIECBAgAABAgTGmIARoIN4oTvttFOKP4M91lhjjXzkZ4wCvffee1NsfLTyyiun1VZbLU2ZMqXl6kaqnpYblJEAAQIECBAgQIAAAQIECBAgQIBAjwsIgHbwBU6ePDltsMEG+Z/hNDtS9QynD8oSIECAAAECBAgQIECAAAECBAgQ6AUBU+B74S3pIwECBAgQIECAAAECBAgQIECAAAECQxIQAB0Sm0IECBAgQIAAAQIECBAgQIAAAQIECPSCgABoL7wlfSRAgAABAgQIECBAgAABAgQIECBAYEgCAqBDYlOIAAECBAgQIECAAAECBAgQIECAAIFeEBAA7YW3pI8ECBAgQIAAAQIECBAgQIAAAQIECAxJQAB0SGwKESBAgAABAgQIECBAgAABAgQIECDQCwICoL3wlvSRAAECBAgQIECAAAECBAgQIECAAIEhCQiADolNIQIECBAgQIAAAQIECBAgQIAAAQIEekFAALQX3pI+EiBAgAABAgQIECBAgAABAgQIECAwJAEB0CGxKUSAAAECBAgQIECAAAECBAgQIECAQC8ICID2wlvSRwIECBAgQIAAAQIECBAgQIAAAQIEhiQgADokNoUIECBAgAABAgQIECBAgAABAgQIEOgFAQHQXnhL+kiAAAECBAgQIECAAAECBAgQIECAwJAEBECHxKYQAQIECBAgQIAAAQIECBAgQIAAAQK9ICAA2gtvSR8JECBAgAABAgQIECBAgAABAgQIEBiSgADokNgUIkCAAAECBAgQIECAAAECBAgQIECgFwQEQHvhLekjAQIECBAgQIAAAQIECBAgQIAAAQJDEpg0pFIKESBAgAABAgQIECBAYIwJPPvss2mbbbYpfaqLL744rbnmmqX3JBIgQIAAAQLdLSAA2t3vR+8IECBAgAABAgQIEOiQQKVSSXPnzi1tLe45CBAgQIAAgd4UMAW+N9+bXhMgQIAAAQIECBAgQIAAAQIECBAg0IKAAGgLSLIQIECAAAECBAgQIECAAAECBAgQINCbAgKgvfne9JoAAQIECBAgQIAAAQIECBAg0BUCN96Y0iGHpHTXXW9056MfTen7309p/vw30pwRGC0BAdDRktcuAQIECBAgQIAAAQIECBAgQKCHBZ54IqUdd0xp1qyUzjgjpb/85Y2H+fGPU9pnn5RmzEjp+uvfSHdGYDQEBEBHQ12bBAgQIECAAAECBAgQIECAAIEeFrj33pRmzkzppz/t/yHuuSelv/3blC68sP987hJop4AAaDt11U2AAAECBAgQIECAAAECBAgQGGMCL7+c0s47p/TYY6092GuvpfShD6V0yy2t5ZeLwEgLCICOtKj6CBAgQIAAAQIECBAgQIAAAQJjWODkk1O6++7BPeDcuSl98pODKyM3gZESEAAdKUn1ECBAgAABAgQIECBAgAABAgTGuMCCBSl99atDe8ibb05p9uyhlVWKwHAEBECHo6csAQIECBAgQIAAAQIECBAgQGAcCcQ09qefHvoDD7Rm6NBrVpJAcwEB0OY27hAgQIAAAQIECBAgQIAAAQIECBQEHnywcDGE0+GWH0KTihBIAqC+BAQIECBAgAABAgQIECBAgAABAi0JvPpqS9maZhpu+aYVu0GgHwEB0H5w3CJAgAABAgQIECBAgAABAgQIEHhDYOWV3zgfytlwyw+lTWUICID6DhAgQIAAAQIECBAgQIAAAQIECLQksMUWKS2ySEtZSzNttVVpskQCbRUQAG0rr8oJECBAgAABAgQIECBAgAABAmNHYIklUtptt6E9z/LLp7T99kMrqxSB4QgIgA5HT1kCBAgQIECAAAECBAgQIECAwDgT+MIXUpowYfAPHeXe9KbBl1OCwHAFBECHK6g8AQIECBAgQIAAAQIECBAgQGAcCfzsZylVKoN74H/4h5QOPHBwZeQmMFICAqAjJakeAgQIECBAgAABAgQIECBAgMAYF3jssZSOPnpwDxnT5s87b3Bl5CYwkgICoCOpqS4CBAgQIECAAAECBAgQIECAwBgWOPjglF56aXAPGPnvvHNwZeQmMJICAqAjqakuAgQIECBAgAABAgQIECBAgMAYFbjoopQuuaT84RZbLKV11y2/F6nNyjUv4Q6BkRMQAB05SzURIECAAAECBAgQIECAAAECBMakQIziPOSQ5o923HEpTZ3a/L4AaHMbd9ovIADafmMtECBAgAABAgQIECBAgAABAgR6WuCoo1J69NHyR9hoo5Q++cnye9XU225L6ZFHqlc+CXRWQAC0s95aI0CAAAECBAgQIECAAAECBAj0lMCvf53SmWeWd3liFlk655yUJk0qv19M/c//LF45J9A5AQHQzllriQABAgQIECBAgAABAgQIECDQUwLz56d0wAEpLVhQ3u2YFr/ZZuX3GlNNg28Ucd0pgRbi853qinYIECBAgAABAgQIECAwegLLLrtsuvnmm0s7sOSSS5amSyRAgMBYFzjppJR++9vyp1x11ZS+8IXye2Wp11+f0gsvpLTUUmV3pRFon4AAaPts1UyAAAECBAgQIECAQA8JTJgwIS299NI91GNdJUCAQHsFHnig/wDnV7+a0pQprffhtddSuvzylPbdt/UychIYCQFT4EdCUR0ECBAgQIAAAQIECBAgQIAAgTEmcNBBKc2ZU/5Qe+2V0i67lN+L1JVXLr9nGny5i9T2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ffFFaf36UpKgr+kKEABNV4z6CCCAAAIIIIAAAggggAACCCCAQBKBG26QLAiabnrwQemHH9I9qnTq+wVAzWzKlNJxoKfpCxAATd+MIxBAAAEEEEAAAQQQQAABBBBAAAGngO30/thjzqIaM5cvl8aOrbFayVbo00fackt395kG73YhNyZQBgQCCCCAAAIIIIAAAggggAACCCCAQHYEZs2SLJCZaXrlFelnP8v06OI+rn59adAg6amnqvfTAsf33CPVqVO9jBx/gW+++UarV6/2rdCkSRO1adPGtzwsBQRAw3KnaCcCCCCAAAIIIIAAAgjkVGDFihX6xS9+4bzG3Xffre23395ZRiYCCCCQKJDOpkeJx8Uff/ll/BHfXQI2Dd4VADW3GTOkffZxHUWen8C5556r5557zq9YgwcP1rhx43zLw1JAADQsd4p2IoAAAggggAACCCCAQE4FNnnzVj/++GPnNdalu5OJ8yxkIoBAKQjYKMXapDIiNUn5bASoGW/YUL2aTYMnAFrdhRyJHyteBQgggAACCCCAAAIIIIAAAggggECWBHbcsXYn6tChdscX+9G2BqitBfryy9V7OmaMdN111fPJ8Rfo2bOn1q5dG60wefJkrV+/XmVeFL5///7RvH2KJKJMANT/NUAJAggggAACCCCAAAIIIIAAAgggkJZA167SDjtIixaldVh55YEDyx/ywEfApsG7AqBz5kgLFkg77eRzINnVBEaOHFme17ZtW3399ddq1qyZxo8fX55fDA/qFkMn6AMCCCCAAAIIIIAAAggggAACCCAQFIFf/SqzlnTsKBEArdlu2DD/OjYKlIRAVQECoFVFeI4AAggggAACCCCAAAIIIIAAAgjUQuA3v5F23TW9E9ju5XfeGVvfMr0jS6+27Um3997ufts6oCQEqgoQAK0qwnMEEEAAAQQQQAABBBBAAAEEEECgFgKNG0vPPy+1apX6SW66STryyNTrl3pNmwbvSm++KS1f7iohr5QFCICW8t2n7wgggAACCCCAAAIIIIAAAgggkBOBzp1TC2huvbX0xBPSiBE5aUbRntQvALppk/TCC0XbbTqWoQAB0AzhOAwBBBBAAAEEEEAAAQQQQAABBBBIJvDGG/6lvXpJd9whffqpdPLJ/vUocQv06CF16OAuYxq826WUcwmAlvLdp+8IIIAAAggggAACCCCA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S7fcUv2qa9dKL74oHXdc9TJyilOAEaA5vK8WtIzY4hJe6tq1q7baaqukXy1btqzWmh9++EFjfxpTv423jVli8DNeuUePHtF8e24jQeP14+V8RwABBBBAAAEEEEAAAQQQQACB7Ar47f5uO5DvvXd2r8XZMhPYf3+pTRv3sewG73Yp1lwCoDm8s4nT37vYwhMZpClTpshGklo62vvoIj7ys+qpDjroIG2//fbRbAuAbty4sWoVniOAAAIIIIAAAggggAACCCCAQBYENm+OjSB0ncqmXftM8HRVJy+HAnYf/Ebjjhtng8hyeHFOHSgBAqA5vB3ZCIDOmTOnvIX77bdf+WPXA5tmb2nZsmV6//33XVXIQwABBBBAAAEEEEAAAQQQQACBWgpMnSp98437JH4BN3dtcnMt4LcO6PLl0htv5PrqnD8oAgRAc3gn4gHQFi1aeEOuY2OubUr8kiVL9P3336d05f/85z/RenXq1FGnTp2SHmObI8XT/Pnz4w/5jgACCCCAAAIIIIAAAggggAACWRTwm/7esKHUr18WL8Spai3g7R2tJk3cp2EavNulGHPZBClHd9XW4owHIW36++zZs/XII49ENyxaa6vtesnW9LS1Qc8991xtt912zpZ8+eWX0fzWrVurrCz57YoHWe2ARYsWOc9HJgIIIIAAAggggAACCCCAAAII1E7ALwDav7/UtGntzs3R2RVo1EgaMEB67rnq57UA6B13VM8np/gEkkfUiq+/eeuRBSDXr18fvZ7t0v6rX/2q2rW/8cbL29e0adN03nnn6dhjj61Ux9b+3GwLi3jJtUFSpcreExtpGk+2eVIqyYKvts5osrTzzjtHd7OPr0WarC5lCCCAAAIIIIAAAggggAACCBSzwIIF0kcfuXs4bJg7n9zCCtg0eFcA1O6lN15N3bsXtn1cPfcCBEBzZByf/m6nt8BhI+8jhz333FN77bWXWrVqpQXeT9mrr76qxYsXy0aE3uF95LDFFluov31c9FNavXp1/KEa2jj6GlJinfgo0xoOKd+lPlk9m35PQgABBBBAAAEEEEAAAQQQQAABacwYf4VBg/zLKCmcwJAhUr167k2PbBQoAdDC3Zt8XZkAaI6kEwOgW2+9tUaNGqWddtqp0tVOP/10/elPf9LzP42dHz16tGwjo/hozzVr1pTXb9CgQfljvweJddatW+dX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FFzgo48+0vPPPx9tx/vvv1/enqefflozZsyIPr/44otVVsZb/HIcHiCAAAIJAvx2TMDgIQIIIIAAAggggAACCCCAAAJBE5g5c6ZGjBhRrVl//etfy/MuuOACAqDlGjxAAAEEKgswBb6yB88QQAABBBBAAAEEEEAAAQQQQAABBBBAoIgEGAFaRDeTriCAAAIIIIAAAggggAACCBSfwAEHHKCHHnooaccaNGiQtJxCBBBAoJQFCICW8t2n7wgggAACCCCAAAIIIIAAAoEX6Nixo+yLhAACCCCQmQBT4DNz4ygEEEAAAQQQQAABBBBAAAEEEEAAAQQQCIEAAdAQ3CSaiAACCCCAAAIIIIAAAggggAACCCCAAAKZCRAAzcyNoxBAAAEEEEAAAQQQQAABBBBAAAEEEEAgBAIEQENwk2giAggggAACCCCAAAIIIIAAAggggAACCGQmwCZImblxFAIIIIAAAggggAACCCCAAAIIIIAAAqEWmDVrlr7++utoH9atWxf9vmHDBk2cODH6uHXr1tprr71C3UdrPAHQ0N9COoAAAggggAACCCCAAAIIIIAAAggggED6Atdcc42ee+65SgeuXr1aAwYMiOYNHjxY48aNq1QexidMgQ/jXaPNCCCAAAIIIIAAAggggAACCCCAAAIIIJCSACNAU2KiEgIIIIAAAggggAACCCCAAAIIIIAAAsUlMGTIELVv3963U926dfMtC1MBAdAw3S3aigACCCCAAAIIIIAAAggggAACCCCAQJYEzjjjjCydKdinIQAa7PtD6xBAAAEEEEAAAQQQQCBPAj/++KP+9a9/Oa82dOhQtWjRwllGJgIIIIAAAggEW4AAaLDvD61DAAEEEEAAAQQQQACBPAnYpg/XXXed82oHHHAAAVCnDJkIIIAAAggEX4BNkIJ/j2ghAggggAACCCCAAAIIIIAAAggggAACCGQoQAA0QzgOQwABBBBAAAEEEEAAAQQQQAABBBBAAIHgCxAADf49ooUIIIAAAggggAACCCCAAAIIIIAAAgggkKEAAdAM4TgMAQQQQAABBBBAAAEEEEAAAQQQQAABBIIvQAA0+PeIFiKAAAIIIIAAAggggAACCFvesOMAAEAASURBVCCAAAIIIIBAhgIEQDOE4zAEEEAAAQQQQAABBBBAAAEEEEAAAQQQCL4AAdDg3yNaiAACCCCA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NBXDsGHDbI/PVItR+bNDhw624UTfBX0zNAxQQwPVE+ijjz6y34gvv/wyuEw9QHWvI488MjgW9wbytbFTFaA/Yxtusc/qvpG8f7x/zuKS+H2YMGGCufLKK10S7a++dx07djSbbrqpnWJQead6JK9du9Z+/+STkU9j6dKladdpRMTo0aPMnkAoAAAw2UlEQVTtdWknEryDAzTByvkuJE3drIcOHWodDXIq/OhHPzI//elPTdu2bQPxVei86667zO23324LoXphd999d3v+q6++Mk8//bT517/+ZaZPn26Pyckkh0f79u2De8S1gXzGZproD/uM4x188sknzfnnn28fLaenKgBqREkdrvjmm2+aP/7xj+bVV181/fr1M5dddpl1juqi+fPn27xF+YubkuOYY46xPc3jkCfzmchnDPr7l7VR7DPz7aj8Pu9f7b5/6u05YsQIM3v2bGsoalg/6qij7JQnqeXPbFaksqeGDU6ePNlMnDjRlk0VV+VTDYmPOyBfbg2gv9x8Kn0W+8xNGPvMzafSZ323T/X8vOCCC+xUYHJ6HnLIIWafffYx22yzjXV45uP78ccfW5/LnXfeaebOnWuj9+rVy4wbNy7fpck5v95BQ4BAbATWVyDWDRgwwP499NBDOdOxfu4+G2/fffddt77gWS/ueqdncK+rrrqq3vk4DiBfHXX0h33WWUN1tk488USbJ6x3Wq5b39Mz60PX9+5ZN3z4cBv3d7/7Xb1463uErjviiCPs+b322mvd+h5A9eLEcQD5vqWO/rBP3r/yE/A5f1nfqBWUF9dXBNcpDyk2TJs2bd3AgQPt/daPIijpXsWmIfM65Mskkn0f/WVnU6kz2Gd0sthndFblium7fR566KH2e7V+/ZR1r732WtHY1i+StO6MM84IvqWPP/540feq9oUNk+OKJSXfRQLrMxkrdp8+fWzvz1wMtBiJ5prQqmQadpYZfvKTn5iDDjrIHtZ9NVQp7oB8dRpAf9hnnTVUfks9A90Q9pEjR9rhHNmeqt7niqOgllHXK8jF13DI6667zvYM1bDH++67z52K7Rf56tCjP+yzzhqqs8X7V8e5Ft+/9ZU+K4AW0tQoAclQbFCPz9NPP91ergWUFi5cWOytynYd8kVHif6isypXTOwzOknsMzqrcsX02T41hYv+FM4999ySFpBW71GNmnMjbp955ply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" width="672" /></p>
<div class="sourceCode" id="cb78"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb78-1"><a href="#cb78-1" aria-hidden="true" tabindex="-1"></a>estimates_sogo_number_WLS_covar <span class="ot">&lt;-</span> df_estimates 　 <span class="co">#for robustness check</span></span>
<span id="cb78-2"><a href="#cb78-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb78-3"><a href="#cb78-3" aria-hidden="true" tabindex="-1"></a>results_sogo_number_WLS_covar <span class="ot">&lt;-</span> estimation_results <span class="co"># for only-post DID table</span></span></code></pre></div>
</div>
<div id="wls-no-trends-post-covid-month-dummies-table-c.6-4" class="section level2" number="9.3">
<h2><span class="header-section-number">9.3</span> WLS, no trends, post-covid-month dummies, Table C.6 (4)</h2>
<div class="sourceCode" id="cb79"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb79-1"><a href="#cb79-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb79-2"><a href="#cb79-2" aria-hidden="true" tabindex="-1"></a>estimation_results <span class="ot">&lt;-</span> <span class="fu">dynamic_onlypost_DID_WLS_notrend_covar8Xcovid_months</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb79-3"><a href="#cb79-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>sogo_number, </span>
<span id="cb79-4"><a href="#cb79-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>unemploy_shock_diff2)</span>
<span id="cb79-5"><a href="#cb79-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb79-6"><a href="#cb79-6" aria-hidden="true" tabindex="-1"></a>texreg<span class="sc">::</span><span class="fu">screenreg</span>(<span class="at">l =</span> estimation_results , <span class="at">include.ci =</span> <span class="cn">FALSE</span>, <span class="at">digits=</span><span class="dv">3</span>)</span></code></pre></div>
<pre><code>## 18 coefficients  not defined because the design matrix is rank deficient</code></pre>
<pre><code>## 
## ====================================================================
##                                                         Model 1     
## --------------------------------------------------------------------
## treat_var:date_2020_02                                              
##                                                                     
## treat_var:date_2020_03                                              
##                                                                     
## treat_var:date_2020_04                                     0.008    
##                                                           (3.318)   
## treat_var:date_2020_05                                     9.237    
##                                                          (18.451)   
## treat_var:date_2020_06                                    62.343    
##                                                          (34.059)   
## treat_var:date_2020_07                                    87.782 *  
##                                                          (38.840)   
## treat_var:date_2020_08                                    35.869    
##                                                          (20.207)   
## treat_var:date_2020_09                                    26.995    
##                                                          (20.825)   
## date_2020_02:google_mobility_index_2020may                          
##                                                                     
## date_2020_03:google_mobility_index_2020may                          
##                                                                     
## date_2020_04:google_mobility_index_2020may                 0.350    
##                                                           (0.454)   
## date_2020_05:google_mobility_index_2020may                 0.799    
##                                                           (2.779)   
## date_2020_06:google_mobility_index_2020may                -1.830    
##                                                           (3.922)   
## date_2020_07:google_mobility_index_2020may                -1.842    
##                                                           (3.699)   
## date_2020_08:google_mobility_index_2020may                -1.614    
##                                                           (2.703)   
## date_2020_09:google_mobility_index_2020may                -1.268    
##                                                           (2.713)   
## date_2020_02:infection_rate_cumulative2020jun                       
##                                                                     
## date_2020_03:infection_rate_cumulative2020jun                       
##                                                                     
## date_2020_04:infection_rate_cumulative2020jun              0.440    
##                                                           (0.380)   
## date_2020_05:infection_rate_cumulative2020jun              4.519    
##                                                           (2.535)   
## date_2020_06:infection_rate_cumulative2020jun              6.506    
##                                                           (4.350)   
## date_2020_07:infection_rate_cumulative2020jun              5.190    
##                                                           (4.230)   
## date_2020_08:infection_rate_cumulative2020jun              1.447    
##                                                           (2.425)   
## date_2020_09:infection_rate_cumulative2020jun              3.951    
##                                                           (2.726)   
## date_2020_02:death_rate_cumulative2020jun                           
##                                                                     
## date_2020_03:death_rate_cumulative2020jun                           
##                                                                     
## date_2020_04:death_rate_cumulative2020jun                 -5.812    
##                                                           (4.089)   
## date_2020_05:death_rate_cumulative2020jun                -46.616    
##                                                          (27.526)   
## date_2020_06:death_rate_cumulative2020jun                -65.417    
##                                                          (45.834)   
## date_2020_07:death_rate_cumulative2020jun                -54.131    
##                                                          (45.728)   
## date_2020_08:death_rate_cumulative2020jun                 -9.899    
##                                                          (28.105)   
## date_2020_09:death_rate_cumulative2020jun                -33.765    
##                                                          (30.854)   
## date_2020_02:Population_per_1_km_2_of_inhabitable_area              
##                                                                     
## date_2020_03:Population_per_1_km_2_of_inhabitable_area              
##                                                                     
## date_2020_04:Population_per_1_km_2_of_inhabitable_area     0.000    
##                                                           (0.001)   
## date_2020_05:Population_per_1_km_2_of_inhabitable_area    -0.001    
##                                                           (0.005)   
## date_2020_06:Population_per_1_km_2_of_inhabitable_area     0.002    
##                                                           (0.009)   
## date_2020_07:Population_per_1_km_2_of_inhabitable_area     0.008    
##                                                           (0.008)   
## date_2020_08:Population_per_1_km_2_of_inhabitable_area     0.008    
##                                                           (0.004)   
## date_2020_09:Population_per_1_km_2_of_inhabitable_area     0.007    
##                                                           (0.005)   
## date_2020_02:Secondary_industry_ratio                               
##                                                                     
## date_2020_03:Secondary_industry_ratio                               
##                                                                     
## date_2020_04:Secondary_industry_ratio                    -14.136    
##                                                          (39.020)   
## date_2020_05:Secondary_industry_ratio                    -68.471    
##                                                         (235.838)   
## date_2020_06:Secondary_industry_ratio                   -408.113    
##                                                         (351.577)   
## date_2020_07:Secondary_industry_ratio                   -687.034    
##                                                         (395.623)   
## date_2020_08:Secondary_industry_ratio                   -477.582    
##                                                         (266.863)   
## date_2020_09:Secondary_industry_ratio                   -576.146    
##                                                         (289.630)   
## date_2020_02:Tertiary_industry_ratio                                
##                                                                     
## date_2020_03:Tertiary_industry_ratio                                
##                                                                     
## date_2020_04:Tertiary_industry_ratio                      23.022    
##                                                          (61.421)   
## date_2020_05:Tertiary_industry_ratio                      88.732    
##                                                         (413.203)   
## date_2020_06:Tertiary_industry_ratio                    -470.488    
##                                                         (527.717)   
## date_2020_07:Tertiary_industry_ratio                    -884.672    
##                                                         (547.081)   
## date_2020_08:Tertiary_industry_ratio                    -430.582    
##                                                         (371.719)   
## date_2020_09:Tertiary_industry_ratio                    -620.040    
##                                                         (359.852)   
## date_2020_02:Total_population                                       
##                                                                     
## date_2020_03:Total_population                                       
##                                                                     
## date_2020_04:Total_population                             -0.006    
##                                                           (0.004)   
## date_2020_05:Total_population                             -0.069 ** 
##                                                           (0.026)   
## date_2020_06:Total_population                             -0.176 ***
##                                                           (0.049)   
## date_2020_07:Total_population                             -0.227 ***
##                                                           (0.056)   
## date_2020_08:Total_population                             -0.158 ***
##                                                           (0.041)   
## date_2020_09:Total_population                             -0.177 ***
##                                                           (0.042)   
## date_2020_02:Ratio_of_aged_population                               
##                                                                     
## date_2020_03:Ratio_of_aged_population                               
##                                                                     
## date_2020_04:Ratio_of_aged_population                      0.034    
##                                                           (0.236)   
## date_2020_05:Ratio_of_aged_population                     -1.031    
##                                                           (1.260)   
## date_2020_06:Ratio_of_aged_population                     -3.120    
##                                                           (1.928)   
## date_2020_07:Ratio_of_aged_population                     -5.840 *  
##                                                           (2.427)   
## date_2020_08:Ratio_of_aged_population                     -4.436 *  
##                                                           (1.673)   
## date_2020_09:Ratio_of_aged_population                     -4.909 ** 
##                                                           (1.656)   
## --------------------------------------------------------------------
## R^2                                                        0.874    
## Adj. R^2                                                   0.855    
## Num. obs.                                                893        
## RMSE                                                     780.306    
## N Clusters                                                47        
## ====================================================================
## *** p &lt; 0.001; ** p &lt; 0.01; * p &lt; 0.05</code></pre>
<div class="sourceCode" id="cb82"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb82-1"><a href="#cb82-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb82-2"><a href="#cb82-2" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_main</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb82-3"><a href="#cb82-3" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;unemploy_shock_diff2&quot;</span>,</span>
<span id="cb82-4"><a href="#cb82-4" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;sogo_number_WLS&quot;</span>)</span>
<span id="cb82-5"><a href="#cb82-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb82-6"><a href="#cb82-6" aria-hidden="true" tabindex="-1"></a><span class="co"># Event study graph</span></span>
<span id="cb82-7"><a href="#cb82-7" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_WLS_covar_onlypost <span class="ot">&lt;-</span> <span class="fu">event_study_graph_2nd_safetynet</span>(<span class="at">data =</span> df_estimates ,</span>
<span id="cb82-8"><a href="#cb82-8" aria-hidden="true" tabindex="-1"></a>                                          <span class="at">graph_title =</span> <span class="st">&quot;sogo_number_WLS&quot;</span>)</span>
<span id="cb82-9"><a href="#cb82-9" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb82-10"><a href="#cb82-10" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_sogo_number_WLS_covar_onlypost)</span></code></pre></div>
<div id="htmlwidget-90691e479aff42bf6c4c" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-90691e479aff42bf6c4c">{"x":{"data":[{"x":[2,3,4,5,6,7,1],"y":[0.00778031517870947,9.23687004023369,62.3429242641748,87.7819743178407,35.869001475717,26.9946492653605,0],"text":["month: 2020-04<br />estimate:  0.007780315<br />label: blue<br />label: <br />label: ","month: 2020-05<br />estimate:  9.236870040<br />label: blue<br />label: <br />label: ","month: 2020-06<br />estimate: 62.342924264<br />label: blue<br />label: <br />label: ","month: 2020-07<br />estimate: 87.781974318<br />label: blue<br />label: <br />label: ","month: 2020-08<br />estimate: 35.869001476<br />label: blue<br />label: <br />label: ","month: 2020-09<br />estimate: 26.994649265<br />label: blue<br />label: <br />label: ","month: 2020-01<br />estimate:  0.000000000<br />label: blue<br />label: <br />label: "],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,0,255,1)","opacity":1,"size":9.4488188976378,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(0,0,255,1)"}},"hoveron":"points","legendgroup":"","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1,2,3,4,5,6,7],"y":[0,0.00778031517870947,9.23687004023369,62.3429242641748,87.7819743178407,35.869001475717,26.9946492653605],"text":["month: 2020-01<br />estimate:  0.000000000<br />label: blue<br />label: <br />label: ","month: 2020-04<br />estimate:  0.007780315<br />label: blue<br />label: <br />label: ","month: 2020-05<br />estimate:  9.236870040<br />label: blue<br />label: <br />label: ","month: 2020-06<br />estimate: 62.342924264<br />label: blue<br />label: <br />label: ","month: 2020-07<br />estimate: 87.781974318<br />label: blue<br />label: <br />label: ","month: 2020-08<br />estimate: 35.869001476<br />label: blue<br />label: <br />label: ","month: 2020-09<br />estimate: 26.994649265<br />label: blue<br />label: <br />label: "],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,0,255,1)","dash":"solid"},"hoveron":"points","legendgroup":"","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[2,3,4,5,6,7,1],"y":[0.00778031517870947,9.23687004023369,62.3429242641748,87.7819743178407,35.869001475717,26.9946492653605,0],"text":["ci_lower:  -5.561613<br />ci_upper:   5.577174<br />width: 0.5<br />colour: black<br />month: 2020-04<br />estimate:  0.007780315<br />label: black<br />label: <br />label: ","ci_lower: -21.736419<br />ci_upper:  40.210159<br />width: 0.5<br />colour: black<br />month: 2020-05<br />estimate:  9.236870040<br />label: black<br />label: <br />label: ","ci_lower:   5.168844<br />ci_upper: 119.517004<br />width: 0.5<br />colour: black<br />month: 2020-06<br />estimate: 62.342924264<br />label: black<br />label: <br />label: ","ci_lower:  22.582776<br />ci_upper: 152.981173<br />width: 0.5<br />colour: black<br />month: 2020-07<br />estimate: 87.781974318<br />label: black<br />label: <br />label: ","ci_lower:   1.947986<br />ci_upper:  69.790017<br />width: 0.5<br />colour: black<br />month: 2020-08<br />estimate: 35.869001476<br />label: black<br />label: <br />label: ","ci_lower:  -7.963365<br />ci_upper:  61.952664<br />width: 0.5<br />colour: black<br />month: 2020-09<br />estimate: 26.994649265<br />label: black<br />label: <br />label: ","ci_lower:   0.000000<br />ci_upper:   0.000000<br />width: 0.5<br />colour: black<br />month: 2020-01<br />estimate:  0.000000000<br />label: black<br />label: <br />label: "],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[5.56939324523616,30.9732893336687,57.1740801302582,65.1991987779843,33.921015025159,34.9580144359888,0],"arrayminus":[5.56939324523616,30.9732893336688,57.1740801302578,65.1991987779841,33.921015025159,34.9580144359888,0],"type":"data","width":3.50000000000001,"symmetric":false,"color":"rgba(0,0,0,1)"},"legendgroup":"","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,7.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-30.4722989128981,161.717052715288],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":38.854296388543},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"sogo_number_WLS","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,7.6],"tickmode":"array","ticktext":["2020-01","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7],"categoryorder":"array","categoryarray":["2020-01","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-30.4722989128981,161.717052715288],"tickmode":"array","ticktext":["0","50","100","150"],"tickvals":[-3.5527136788005e-15,50,100,150],"categoryorder":"array","categoryarray":["0","50","100","150"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","showSendToCloud":false},"source":"A","attrs":{"44115a7fc8a0":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"44117b4caeca":{"x":{},"y":{},"colour":{},"shape":{}},"441167678f03":{"ymin":{},"ymax":{},"width":{},"colour":{},"x":{},"y":{},"colour.1":{},"shape":{}},"44113fde42fe":{"yintercept":{}},"441119005274":{"xintercept":{}}},"cur_data":"44115a7fc8a0","visdat":{"44115a7fc8a0":["function (y) ","x"],"44117b4caeca":["function (y) ","x"],"441167678f03":["function (y) ","x"],"44113fde42fe":["function (y) ","x"],"441119005274":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
<div class="sourceCode" id="cb83"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb83-1"><a href="#cb83-1" aria-hidden="true" tabindex="-1"></a>estimates_sogo_number_WLS_covar_onlypost <span class="ot">&lt;-</span> df_estimates <span class="co">#for robustness check</span></span>
<span id="cb83-2"><a href="#cb83-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb83-3"><a href="#cb83-3" aria-hidden="true" tabindex="-1"></a>results_sogo_number_WLS_covar_onlypost <span class="ot">&lt;-</span> estimation_results <span class="co"># for only-post DID table</span></span></code></pre></div>
</div>
</div>
<div id="y-housing-security-benefit住居確保給付金の決定件数" class="section level1" number="10">
<h1><span class="header-section-number">10</span> Y = housing security benefit/住居確保給付金の決定件数</h1>
<div id="ols-no-trends-4" class="section level2" number="10.1">
<h2><span class="header-section-number">10.1</span> OLS, no trends</h2>
<div class="sourceCode" id="cb84"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb84-1"><a href="#cb84-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb84-2"><a href="#cb84-2" aria-hidden="true" tabindex="-1"></a>estimation_results  <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_jukyo_OLS</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb84-3"><a href="#cb84-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>jukyo_number, </span>
<span id="cb84-4"><a href="#cb84-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>unemploy_shock_diff2)</span>
<span id="cb84-5"><a href="#cb84-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb84-6"><a href="#cb84-6" aria-hidden="true" tabindex="-1"></a><span class="co">#texreg::screenreg(l = estimation_results , include.ci = FALSE, digits=3)</span></span>
<span id="cb84-7"><a href="#cb84-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb84-8"><a href="#cb84-8" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb84-9"><a href="#cb84-9" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_jukyo</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb84-10"><a href="#cb84-10" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;unemploy_shock_diff2&quot;</span>,</span>
<span id="cb84-11"><a href="#cb84-11" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;jukyo_number_OLS&quot;</span>)</span>
<span id="cb84-12"><a href="#cb84-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb84-13"><a href="#cb84-13" aria-hidden="true" tabindex="-1"></a><span class="co"># Event study graph</span></span>
<span id="cb84-14"><a href="#cb84-14" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_OLS <span class="ot">&lt;-</span> <span class="fu">event_study_graph_jukyo</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb84-15"><a href="#cb84-15" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;jukyo_number_OLS&quot;</span>)</span>
<span id="cb84-16"><a href="#cb84-16" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_OLS </span></code></pre></div>
<pre><code>## Warning: Removed 12 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABUAAAAPACAYAAAD0ZtPZAAAEDmlDQ1BrQ0dDb2xvclNwYWNlR2VuZXJpY1JHQgAAOI2NVV1oHFUUPpu5syskzoPUpqaSDv41lLRsUtGE2uj+ZbNt3CyTbLRBkMns3Z1pJjPj/KRpKT4UQRDBqOCT4P9bwSchaqvtiy2itFCiBIMo+ND6R6HSFwnruTOzu5O4a73L3PnmnO9+595z7t4LkLgsW5beJQIsGq4t5dPis8fmxMQ6dMF90A190C0rjpUqlSYBG+PCv9rt7yDG3tf2t/f/Z+uuUEcBiN2F2Kw4yiLiZQD+FcWyXYAEQfvICddi+AnEO2ycIOISw7UAVxieD/Cyz5mRMohfRSwoqoz+xNuIB+cj9loEB3Pw2448NaitKSLLRck2q5pOI9O9g/t/tkXda8Tbg0+PszB9FN8DuPaXKnKW4YcQn1Xk3HSIry5ps8UQ/2W5aQnxIwBdu7yFcgrxPsRjVXu8HOh0qao30cArp9SZZxDfg3h1wTzKxu5E/LUxX5wKdX5SnAzmDx4A4OIqLbB69yMesE1pKojLjVdoNsfyiPi45hZmAn3uLWdpOtfQOaVmikEs7ovj8hFWpz7EV6mel0L9Xy23FMYlPYZenAx0yDB1/PX6dledmQjikjkXCxqMJS9WtfFCyH9XtSekEF+2dH+P4tzITduTygGfv58a5VCTH5PtXD7EFZiNyUDBhHnsFTBgE0SQIA9pfFtgo6cKGuhooeilaKH41eDs38Ip+f4At1Rq/sjr6NEwQqb/I/DQqsLvaFUjvAx+eWirddAJZnAj1DFJL0mSg/gcIpPkMBkhoyCSJ8lTZIxk0TpKDjXHliJzZPO50dR5ASNSnzeLvIvod0HG/mdkmOC0z8VKnzcQ2M/Yz2vKldduXjp9bleLu0ZWn7vWc+l0JGcaai10yNrUnXLP/8Jf59ewX+c3Wgz+B34Df+vbVrc16zTMVgp9um9bxEfzPU5kPqUtVWxhs6OiWTVW+gIfywB9uXi7CGcGW/zk98k/kmvJ95IfJn/j3uQ+4c5zn3Kfcd+AyF3gLnJfcl9xH3OfR2rUee80a+6vo7EK5mmXUdyfQlrYLTwoZIU9wsPCZEtP6BWGhAlhL3p2N6sTjRdduwbHsG9kq32sgBepc+xurLPW4T9URpYGJ3ym4+8zA05u44QjST8ZIoVtu3qE7fWmdn5LPdqvgcZz8Ww8BWJ8X3w0PhQ/wnCDGd+LvlHs8dRy6bLLDuKMaZ20tZrqisPJ5ONiCq8yKhYM5cCgKOu66Lsc0aYOtZdo5QCwezI4wm9J/v0X23mlZXOfBjj8Jzv3WrY5D+CsA9D7aMs2gGfjve8ArD6mePZSeCfEYt8CONWDw8FXTxrPqx/r9Vt4biXeANh8vV7/+/16ffMD1N8AuKD/A/8leAvFY9bLAAAAOGVYSWZNTQAqAAAACAABh2kABAAAAAEAAAAaAAAAAAACoAIABAAAAAEAAAVAoAMABAAAAAEAAAPAAAAAALYRw1EAAEAASURBVHgB7N0HuBxV/TDgE0ggEHqVTlCkCRFUSlSa8AcCkhAsiB0LaOwCFsSKFUVFFBEEFBULIqGDINJBJCJSBIN0RXoLhJpvf/u56+zuzL17++7se57nujNnzpTznrmL+d1Txi2opCQRIECAAAECBAgQIECAAAECBAgQIECghAILlbBOqkSAAAECBAgQIECAAAECBAgQIECAAIGqgACoF4EAAQIECBAgQIAAAQIECBAgQIAAgdIKCICWtmlVjAABAgQIECBAgAABAgQIECBAgAABAVDvAAECBAgQIECAAAECBAgQIECAAAECpRUQAC1t06oYAQIECBAgQIAAAQIECBAgQIAAAQICoN4BAgQIECBAgAABAgQIECBAgAABAgRKKyAAWtqmVTECBAgQIECAAAECBAgQIECAAAECBARAvQMECBAgQIAAAQIECBAgQIAAAQIECJRWQAC0tE2rYgQIECBAgAABAgQIECBAgAABAgQICIB6BwgQIECAAAECBAgQIECAAAECBAgQKK2AAGhpm1bFCBAgQIAAAQIECBAgQIAAAQIECBAQAPUOECBAgAABAgQIECBAgAABAgQIECBQWgEB0NI2rYoRIECAAAECBAgQIECAAAECBAgQICAA6h0gQIAAAQIECBAgQIAAAQIECBAgQKC0AgKgpW1aFSNAgAABAgQIECBAgAABAgQIECBAQADUO0CAAAECBAgQIECAAAECBAgQIECAQGkFBEBL27QqRoAAAQIECBAgQIAAAQIECBAgQICAAKh3gAABAgQIECBAgAABAgQIECBAgACB0goIgJa2aVWMAAECBAgQIECAAAECBAgQIECAAIHxCHpHYPbs2emxxx6rV/iVr3xlmjx5cn1/LDbOPPPM9OCDD9ZvvcUWW6R11123vm+DQK8IdOLvZ6/YD6Sec+fOTfG9ddFFF6V///vf6d5770333XdfWmaZZdLaa69d/3nZy16Wpk2blhZeeOGBXL6h7HXXXZeuueaahrw3vvGNacKECQ15I71zyy23pDPOOCNdcskl9To/8MADaemll04rrbRS9WeDDTao1nfq1Klp/Hj/12Kk28T1CRAgQIAAAQIECBAYmMC4BZU0sFOU7laBCCzGP95r6Wc/+1l685vfXNsdk89NN9204R/4P/zhD9O+++47Js/ipgTGUqATfz/H0qOT7v3cc8+l4447Lh166KHp5ptvbvvR1lxzzbTffvuld7/73WnFFVds+7xawS9/+cvpM5/5TG23+vnwww9XA48NmSO085vf/CZ9/vOfTzfccEPbd4hA8N57752+8IUvpBVWWKHt8xQkQIAAAQIECBAgQIDASAoYAj+Suq5NgAABAl0tED0fN9544/Se97xnQMHPqPQdd9yRPv3pT6c11lgjffzjH0/PPvtsV1jEH8q22Wab9IY3vGFAwc+oXARof/CDH6QXv/jF1c+uqLCHJECAAAECBAgQIECg9AICoKVvYhUkQIAAgcEIfOlLX0q77bZbuvHGG/s8fZFFFunz+FNPPZUOO+ywtOOOO6b777+/z7JjffCuu+5K22+/fXWI/1Ce5aGHHkqzZs1KBx988FAu41wCBAgQIECAAAECBAgMi4CJuoaF0UUIECBAoCwCzzzzTHXY+k9/+tOWKo0bNy7tsMMO1cDoa17zmrT66qtXh6Q/8cQT6Z///Gf155xzzknHH398irxs+uMf/5he/vKXp1NOOSW99KUvzR7qiO3HH3887bTTTunOO+9seZ6tt9467bXXXtX6Rp1XWWWV9Oijj6bbb7+9+nPppZemmFaluZfrIYcckl7wghdUg6EtF5VBgAABAgQIECBAgACBURIQAB0l6E64TQzhjIUramnDDTesbfokQIAAgf8KHHDAASkv+Pl///d/6atf/WrabLPNWqwWX3zx9JKXvKT6s/vuu6foPRpzGsc8ntlAaAQMo4fl3/72t7Taaqu1XGcsM4466qiWIe8RsP3e976Xttxyy5ZHi8BmDHWPFPOcfvazn02f+9zn0gknnNBQNob/z5w5sxo0bThghwABAgQIECBAgAABAqMkIAA6StCdcJsDDzywEx7DMxAgQKBjBU4++eT03e9+t+H5YiX3r33ta2n//fdvyO9rZ7nllqvO/xlB09e+9rXpnnvuqReP4eERMDzrrLPqeWO98fTTT1eH6WefY/LkydUV79tdwCnKR+A4rvWrX/2qfqnaFACxiJREgAABAgQIECBAgACBsRAwB+hYqLsnAQIECHScwL/+9a+0zz77NDxXDHn/9a9/PaDgZ/YC0YPyiiuuqPeUrB07++yz09FHH13bHfPPP/3pTynqn01HHnnkoFav//GPf5zWW2+97KVS9C6NqQUkAgQIECBAgAABAgQIjIWAAOhYqLsnAQIECHScwLe//e30yCOPNDzXQQcdVB2+3ZA5wJ211lor/fznP08LLdT4n9wYGn733XcP8GojU/wf//hHw4XHjx+fXv3qVzfktbszadKklkDyY489lm6++eZ2L6EcAQIECBAgQIAAAQIEhlXAEPhh5XQxAv8TiN5OEVS44YYbqsNfV1hhhepiIK94xStSBAi6PcUchrfeems1gBPBkpgPMBZ2WWONNbqyarF4y9VXX11d0OXee+9NK620UrUum266aZo4cWKfdYrFY2rnzp8/v9rbb4MNNkgrr7xyn+cN5OC8efPSZZddlmKV7ieffLI6n+K6665bnXNyINfpr2xcP9r2P//5T4qg1fLLL19t28033zwtscQS/Z3e9vEwvvDCC6vzEkc9pkyZkuJ3ZKxSBD6jl2I2bbTRRukLX/hCNmvQ29ET9AMf+EA6/PDD69cI35gv85Of/GQ9b6w2mhc+WnbZZVPMazrYFCvef+ITn2g4/frrr09hKhEgQIAAAQIECBAgQGC0BQRAR1t8DO8XvXkiYFVLsbDFHnvsUdtt+Nx4441TzFNXS/GP9O2226622+/ni170ohSBoFr6zW9+k7baaqva7pA+77jjjhSLjNx///3168Qw1W984xvpTW96U/W5Y5GS7HDL+If4Bz/4wXr5djd22WWXajCoVj4WQHnrW99a2235jLnuohfZT37ykzR37tyWFZHjhEUWWSTFisoRDJk+fXrLNTohIxZpqfXWWmyxxaqB3HiuqN+3vvWt6grXzT3Gas8d9h/60IfS2972thTt0lcazfcsW6ell146RTAmUgQWo12PPfbY9O9//7vlcSMoFwuIRZBqqaWWajge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IECAAAECvSSQv6x3Lwn0SF2PPPLIhpouvfTS1UWAGjJLthOrNj/88MPVhTkee+yx9Kc//Sl973vfSxdddFG9pksttVR63/veV9+3QYAAAQIECBAgQIAAAQIECBAgUC4BAdBytWe9Noceemg6+eSTqys333TTTdXVe+sHKxt77rlnmjBhQjardNuXXnpp6m9uz4MPPjhFMLgT009/+tPqKvKj9WxhFStXSwTGSsA7P1by7kuAAAECBAgQIECAAIFyCwiAlrR9zzvvvHTFFVdUf5qrOG7cuPSOd7yjObt0+/0F86ZOnZo+9rGPdWy9f/7zn6dzzz131J5vp512EgAdNW03yhPwzuepyCNAgAABAgQIECBAgACBoQqYA3Sogh14/oIFC9KVV16Z+2QTJ05Mv/zlL9OrX/3q3ONlylxrrbUKq7Plllum0047LS20kF+BQiQHCBAgQIAAAQIECBAgQIAAAQIlENADtASN2FyF++67L730pS9N//znP9Pdd9+dosfn+uuvnzbddNP0/ve/P2211VbNp5RyP3qAzpgxI11zzTXptttuS+PHj0/rrrtu2m+//dJ73vOetNhii3V0vV//+tdX23G0HnK11VYbrVu5D4FcAe98LotMAgQIECBAgAABAgQIEBiiwLhKb8EFQ7yG0ztY4KmnnkrPP/98xwf7RpowFkFafPHFrfY+0tCuT4AAAQIECBAgQIAAAQIECBDoMAEB0A5rEI9DgAABAgQIECBAgAABAgQIECBAgMDwCZgAcfgsXYkAAQIECBAgQIAAAQIECBAgQIAAgQ4TEADtsAbxOAQIECBAgAABAgQIECBAgAABAgQIDJ+AAOjwWboSAQIECBAgQIAAAQIECBAgQIAAAQIdJiAA2mEN4nEIECBAgAABAgQIECBAgAABAgQIEBg+AQHQ4bN0JQIECBAgQIAAAQIECBAgQIAAAQIEOkxAALTDGsTjECBAgAABAgQIECBAgAABAgQIECAwfAICoMNn6UoECBAgQIAAAQIECBAgQIAAAQIECHSYgABohzWIxyFAgAABAgQIECBAgAABAgQIECBAYPgEBECHz9KVCBAgQIAAAQIECBAgQIAAAQIECBDoMAEB0A5rEI9DgAABAgQIECBAgAABAgQIECBAgMDwCQiADp+lKxEgQIAAAQIECBAgQIAAAQIECBAg0GECAqAd1iAehwABAgQIECBAgAABAgQIECBAgACB4RMQAB0+S1ciQIAAAQIECBAgQIAAAQIECBAgQKDDBARAO6xBPA4BAgQIECBAgAABAgQIECBAgAABAsMnIAA6fJauRIAAAQIECBAgQIAAAQIECBAgQIBAhwkIgHZYg3gcAgQIECBAgAABAgQIECBAgAABAgSGT0AAdPgsXYkAAQIECBAgQIAAAQIECBAgQIAAgQ4TGN9hz+Nxhkngt7/9bTrhhBPqV3vf+96Xdtppp/q+DQIECBAgQIAAAQK9KHDbbbelc845p6XqEyZMSPvss09LvgwCBAgQIECg+wUEQLu/DXNrcPPNN6fZs2fXj+2yyy71bRsECBAgQIAAAQIEelVg7ty56bDDDmup/qRJkwRAW1RkECBAgACBcggYAl+OdlQLAgQIECBAgAABAgQIECBAgAABAgRyBARAc1BkESBAgAABAgQIECBAgAABAgQIECBQDgEB0HK0o1oQIECAAAECBAgQIECAAAECBAgQIJAjIACagyKLAAECBAgQIECAAAECBAgQIECAAIFyCAiAlqMd1YIAAQIECBAgQIAAAQIECBAgQIAAgRwBAdAcFFkECBAgQIAAAQIECBAgQIAAAQIECJRDQAC0HO2oFgQIECBAgAABAgQIECBAgAABAgQI5AgIgOagyCJAgAABAgQIECBAgAABAgQIECBAoBwCAqDlaEe1IECAAAECBAgQIECAAAECBAgQIEAgR0AANAdFFgECBAgQIECAAAECBAgQIECAAAEC5RAQAC1HO6oFAQIECBAgQIAAAQIECBAgQIAAAQI5AgKgOSiyCBAgQIAAAQIECBAgQIAAAQIECBAoh4AAaDnaUS0IECBAgAABAgQIECBAgAABAgQIEMgREADNQZFFgAABAgQIECBAgAABAgQIECBAgEA5BARAy9GOakGAAAECBAgQIECAAAECBAgQIECAQI6AAGgOiiwCBAgQIECAAAECBAgQIECAAAECBMohIABajnZUCwIECBAgQIAAAQIECBAgQIAAAQIEcgQEQHNQZBEgQIAAAQIECBAgQIAAAQIECBAgUA4BAdBytKNaECBAgAABAgQIECBAgAABAgQIECCQIyAAmoMiiwABAgQIECBAgAABAgQIECBAgACBcgiML0c11IIAAQIECBAgQIAAAQL9C6y44opp++23byk4ceLEljwZBAgQIECAQDkEBEDL0Y5qQYAAAQIECBAgQIBAGwJTpkxJRx55ZBslFSFAgAABAgTKImAIfFlaUj0IECBAgAABAgQIECBAgAABAgQIEGgREABtIZFBgAABAgQIECBAgAABAgQIECBAgEBZBARAy9KS6kGAAAECBAgQIECAAAECBAgQIECAQIuAAGgLiQwCBAgQIECAAAECBAgQIECAAAECBMoiIABalpZUDwIECBAgQIAAAQIECBAgQIAAAQIEWgSsAt9CIoMAAQIECBAgQIAAAQIECBAgMHiBs88+O11xxRWFF1h00UXTpz71qcLjDhAgMLwCAqDD6+lqBAgQIECAAAECBAgQIECAQI8LnHXWWenwww8vVFhyySUFQAt1HCAw/AKGwA+/qSsSIECAAAECBAgQIECAAAECBAgQINAhAnqAdkhDeAwCBAgQIECAAAECBAgQIECgHALveMc70tSpU6uVOeSQQ9J1111X3f7+97+fll9++TRhwoRyVFQtCHSJgABolzSUxyRAgAABAgQIECBAgAABAgS6Q2DTTTdN8RPpmGOOqQdAd99997T66qt3RyU8JYESCRgCX6LGVBUCBAgQIECAAAECBAgQIECAAAECBBoFBEAbPewRIECAAAECBAgQIECAAAECBAgQIFAiAQHQEjWmqhAgQIAAAQIECBAgQIAAAQIECBAg0CggANroYY8AAQIECBAgQIAAAQIECBAgQIAAgRIJCICWqDFVhQABAgQIECBAgAABAgQIECBAgACBRgEB0EYPewQIECBAgAABAgQIECBAgAABAgQIlEhAALREjakqBAgQIECAAAECBAgQIECAAAECBAg0CgiANnrYI0CAAAECBAgQIECAAAECBAgQIECgRAICoCVqTFUhQIAAAQIECBAgQIAAAQIECBAgQKBRQAC00cMeAQIECBAgQIAAAQIECBAgQIAAAQIlEhAALVFjqgoBAgQIECBAgAABAgQIECBAgAABAo0CAqCNHvYIECBAgAABAgQIECBAgAABAgQIECiRgABoiRpTVQgQIECAAAECBAgQIECAAAECBAgQaBQY37hrjwABAgQIECBAgAABAuUVePDBB9ONN97YUsGFF144bbnlli35MggQIECAAIHuFxAA7f42VAMCBAgQIECAAAECBNoUmDNnTpo1a1ZL6UmTJqU4JhEgQIAAAQLlEzAEvnxtqkYECBAgQIAAAQIECBAgQIAAAQIECPxXQADUq0CAAAECBAgQIECAAAECBAgQIECAQGkFBEBL27QqRoAAAQIECBAgQIAAAQIECBAgQICAAKh3gAABAgQIECBAgAABAgQIECBAgACB0goIgJa2aVWMAAECBAgQIECAAAECBAgQIECAAAEBUO8AAQIECBAgQIAAAQIECBAgQIAAAQKlFRAALW3TqhgBAgQIECBAgAABAgQIECBAgAABAgKg3gECBAgQIECAAAECBAgQIECAAAECBEorIABa2qZVMQIECBAgQIAAAQIECBAgQIAAAQIEBEC9AwQIECBAgAABAgQIECBAgAABAgQIlFZAALS0TatiBAgQIECAAAECBAgQIECAAAECBAgIgHoHCBAgQIAAAQIECBAgQIAAAQIECBAorYAAaGmbVsUIECBAgAABAgQIECBAgAABAgQIEBAA9Q4QIECAAAECBAgQIECAAAECBAgQIFBaAQHQ0jatihEgQIAAAQIECBAgQIAAAQIECBAgIADqHSBAgAABAgQIECBAgAABAgQIECBAoLQCAqClbVoVI0CAAAECBAgQIECAAAECBAgQIEBAANQ7QIAAAQIECBAgQIAAAQIECBAgQIBAaQUEQEvbtCpGgAABAgQIECBAgAABAgQIECBAgIAAqHeAAAECBAgQIECAAAECBAgQIECAAIHSCgiAlrZpVYwAAQIECBAgQIAAAQIECBAgQIAAAQFQ7wABAgQIECBAgAABAgQIECBAgAABAqUVEAAtbdOqGAECBAgQIECAAAECBAgQIECAAAEC4xEQIECAAAECBAgQIECgVwSWWWaZtNlmm7VUd+LEiS15MggQIECAAIFyCAiAlqMd1YIAAQIECBAgQIAAgTYEXv7yl6cTTzyxjZKKECBAgAABAmURMAS+LC2pHgQIECBAgAABAgQIECBAgAABAgQItAgIgLaQyCBAgAABAgQIECBAgAABAgQIECBAoCwCAqBlaUn1IECAAAECBAgQIECAAAECBAgQIECgRUAAtIVEBgECBAgQIECAAAECBAgQIECAAAECZREQAC1LS6oHAQIECBAgQIAAAQIECBAgQIAAAQItAgKgLSQyCBAgQIAAAQIECBAgQIAAAQIECBAoi4AAaFlaUj0IECBAgAABAgQIECBAgAABAgQIEGgREABtIZFBgAABAgQIECBAgAABAgQIECBAgEBZBARAy9KS6kGAAAECBAgQIECAAAECBAgQIECAQIuAAGgLiQwCBAgQIECAAAECBAgQIECAAAECBMoiIABalpZUDwIECBAgQIAAAQIECBAgQIAAAQIEWgQEQFtIZBAgQIAAAQIECBAgQIAAAQIECBAgUBYBAdCytKR6ECBAgAABAgQIECBAgAABAgQIECDQIiAA2kIigwABAgQIECBAgAABAgQIECBAgACBsggIgJalJdWDAAECBAgQIECAAAECBAgQIECAAIEWAQHQFhIZBAgQIECAAAECBAgQIECAAAECBAiURUAAtCwtqR4ECBAgQIAAAQIECBAgQIAAAQIECLQICIC2kMggQIAAAQIECBAgQIAAAQIECBAgQKAsAgKgZWlJ9SBAgAABAgQIECBAgAABAgQIECBAoEVAALSFRAYBAgQIECBAgAABAgQIECBAgAABAmUREAAtS0uqBwECBAgQIECAAAECBAgQIECAAAECLQICoC0kMggQIECAAAECBAgQIECAAAECBAgQKIuAAGhZWlI9CBAgQIAAAQIECBAgQIAAAQIECBBoERjfkiODAAECBAgQIECAAAECJRV47LHH0p133tlSu4UWWiitv/76LfkyCBAgQIAAge4XEADt/jZUAwIECBAgQIAAAQIE2hS48sor06xZs1pKT5o0Kc2ZM6clXwYBAgQIECDQ/QKGwHd/G6oBAQIECBAgQIAAAQIECBAgQIAAAQIFAgKgBTCyCRAgQIAAAQIECBAgQIAAAQIECBDofgEB0O5vQzUgQIAAAQIECBAgQIAAAQIECBAgQKBAQAC0AEY2AQIECBAgQIAAAQIECBAgQIAAAQLdLyAA2v1tqAYECBAgQIAAAQIECBAgQIAAAQIECBQICIAWwMgmQIAAAQIECBAgQIAAAQIECBAgQKD7BQRAu78N1YAAAQIECBAgQIAAAQIECBAgQIAAgQIBAdACGNkECBAgQIAAAQIECBAgQIAAAQIECHS/gABo97ehGhAgQIAAAQIECBAgQIAAAQIECBAgUCAgAFoAI5sAAQIECBAgQIAAAQIECBAgQIAAge4XEADt/jZUAwIECBAgQIAAAQIECBAgQIAAAQIECgQEQAtgZBMgQIAAAQIECBAgQIAAAQIECBAg0P0CAqDd34ZqQIAAAQIECBAgQIAAAQIECBAgQIBAgYAAaAGMbAIECBAgQIAAAQIECBAgQIAAAQIEul9AALT721ANCBAgQIAAAQIECBAgQIAAAQIECBAoEBAALYCRTYAAAQIECBAgQIAAAQIECBAgQIBA9wsIgHZ/G6oBAQIECBAgQIAAAQIECBAgQIAAAQIFAgKgBTCyCRAgQIAAAQIECBAgQIAAAQIECBDofgEB0O5vQzUgQIAAAQIECBAgQIAAAQIECBAgQKBAQAC0AEY2AQIECBAgQIAAAQIECBAgQIAAAQLdLyAA2v1tqAYECBAgQIAAAQIECBAgQIAAAQIECBQICIAWwMgmQIAAAQIECBAgQIAAAQIECBAgQKD7BQRAu78N1YAAAQIECBAgQIAAAQIECBAgQIAAgQKB8QX5sgkQIECAAAECBAgQIFA6gcUXXzxNnjy5pV6LLbZYS54MAgQIECBAoBwCAqDlaEe1IECAAAECBAgQIECgDYGpU6ems88+u42SihAgQIAAAQJlETAEviwtqR4ECBAgQIAAAQIECBAgQIAAAQIECLQICIC2kMggQIAAAQIECBAgQIAAAQIECBAgQKAsAgKgZWlJ9SBAgAABAgQIECBAgAABAgQIECBAoEVAALSFRAYBAgQIECBAgAABAgQIECBAgAABAmUREAAtS0uqBwECBAgQIECAAAECBAgQIECAAAECLQICoC0kMggQIECAAAECBAgQIECAAAECBAgQKIuAAGhZWlI9CBAgQIAAAQIECBAgQIAAAQIECBBoERAAbSGRQYAAAQIECBAgQIAAAQIECBAgQIBAWQQEQMvSkupBgAABAgQIECBAgAABAgQIECBAgECLgABoC4kMAgQIECBAgAABAgQIECBAgAABAgTKIiAAWpaWVA8CBAgQIECAAAECBAgQIECAAAECBFoEBEBbSGQQIECAAAECBAgQIECAAAECBAgQIFAWAQHQsrSkehAgQIAAAQIECBAgQIAAAQIECBAg0CIgANpCIoMAAQIECBAgQIAAAQIECBAgQIAAgbIICICWpSXVgwABAgQIECBAgAABAgQIECBAgACBFgEB0BYSGQQIECBAgAABAgQIECBAgAABAgQIlEVAALQsLakeBAgQIECAAAECBAgQIECAAAECBAi0CAiAtpDIIECAAAECBAgQIECAAAECBAgQIECgLAICoGVpSfUgQIAAAQIECBAgQIAAAQIECBAgQKBFQAC0hUQGAQIECBAgQIAAAQIECBAgQIAAAQJlERAALUtLqgcBAgQIECBAgAABAgQIECBAgAABAi0CAqAtJDIIECBAgAABAgQIECBAgAABAgQIECiLgABoWVpSPQgQIECAAAECBAgQIECAAAECBAgQaBEY35IjgwABAgQIECBAgAABAiUVmD9/fnrooYdaajdu3Lj0ghe8oCVfBgECBAgQIND9AgKg3d+GakCAAAECBAgQIECAQJsCl1xySZo1a1ZL6UmTJqU5c+a05MsgQIAAAQIEul/AEPjub0M1IECAAAECBAgQIECAAAECBAgQIECgQEAAtABGNgECBAgQIECAAAECBAgQIECAAAEC3S8gANr9bagGBAgQIECAAAECBAgQIECAAAECBAgUCAiAFsDIJkCAAAECBAgQIECAAAECBAgQIECg+wUEQLu/DdWAAAECBAgQIECAAAECBAgQIECAAIECAQHQAhjZBAgQIECAAAECBAgQIECAAAECBAh0v4AAaPe3oRoQIECAAAECBAgQIECAAAECBAgQIFAgIABaACObAAECBAgQIECAAAECBAgQIECAAIHuFxAA7f42VAMCBAgQIECAAAECBAgQIECAAAECBAoEBEALYGQTIECAAAECBAgQIECAAAECBAgQIND9AgKg3d+GakCAAAECBAgQIECAAAECBAgQIECAQIGAAGgBjGwCBAgQIECAAAECBAgQIECAAAECBLpfQAC0+9tQDQgQIECAAAECBAgQIECAAAECBAgQKBAQAC2AkU2AAAECBAgQIECAAAECBAgQIECAQPcLCIB2fxuqAQECBAgQIECAAAECBAgQIECAAAECBQICoAUwsgkQIECAAAECBAgQIECAAAECBAgQ6H4BAdDub0M1IECAAAECBAgQIECAAAECBAgQIECgQEAAtABGNgECBAgQIECAAAECBAgQIECAAAEC3S8gANr9bagGBAgQIECAAAECBAgQIECAAAECBAgUCAiAFsDIJkCAAAECBAgQIECAAAECBAgQIECg+wUEQLu/DdWAAAECBAgQIECAAAECBAgQIECAAIECAQHQAhjZBAgQIECAAAECBAgQIECAAAECBAh0v4AAaPe3oRoQIECAAAECBAgQIECAAAECBAgQIFAgML4gXzYBAgQIECBAgAABAgRKJzBhwoS0zDLLtNRr0qRJLXkyCBAgQIAAgXIICICWox3VggABAgQIECBAgACBNgS22WabdOWVV7ZRUhECBAgQIECgLAKGwJelJdWDAAECBAgQIECAAAECBAgQIECAAIEWAQHQFhIZBAgQIECAAAECBAgQIECAAAECBAiURUAAtCwtqR4ECBAgQIAAAQIECBAgQIAAAQIECLQICIC2kMggQIAAAQIECBAgQIAAAQIECBAgQKAsAgKgZWlJ9SBAgAABAgQIECBAgAABAgQIECBAoEVAALSFRAYBAgQIECBAgAABAgQIECBAgAABAmUREAAtS0uqBwECBAgQIECAAAECBAgQIECAAAECLQICoC0kMggQIECAAAECBAgQIECAAAECBAgQKIuAAGhZWlI9CBAgQIAAAQIECBAgQIAAAQIECBBoERAAbSGRQYAAAQIECBAgQIAAAQIECBAgQIBAWQQEQMvSkupBgAABAgQIECBAgAABAgQIECBAgECLgABoC4kMAgQIECBAgAABAgQIECBAgAABAgTKIiAAWpaWVA8CBAgQIECAAAECBAgQIECAAAHyYugZAABAAElEQVQCBFoEBEBbSGQQIECAAAECBAgQIECAAAECBAgQIFAWAQHQsrSkehAgQIAAAQIECBAgQIAAAQIECBAg0CIgANpCIoMAAQIECBAgQIAAAQIECBAgQIAAgbIICICWpSXVgwABAgQIECBAgAABAgQIECBAgACBFoHxLTky6gKPPPJI+tWvfpVuuummdNddd6X7778/rbrqqmmNNdZIU6ZMSTNnzkwTJkyoly/aeO6559JZZ52VzjvvvHTnnXemJ554Im2wwQZp4403TltttVVaf/31i06VT4AAAQIECBAgQIAAAQIECBAgQIDAEAQEQAvwfvOb36Rjjz02Pf744w0lbrvtthQ/F198cZo9e3Y64IAD0qabbtpQJrtz3333pY9//OPp1ltvzWanq666qvrzk5/8JH3qU59KO+20U8NxOwQIECBAgAABAgQIECBAgAABAgQIDF1AADTH8Nxzz02HH354/cgWW2xR7fG5wgorVHuCXnTRRdUgaPTm3H///dMxxxyTJk+eXC9f25g3b141QFoLfr7oRS9Kr3zlK9OKK66YrrnmmhTXefrpp9MhhxySomz0KJUIECBAgAABAgQIECBAgAABAgQIEBg+AQHQJst//etf6Zvf/GY1d+GFF05f/OIX09Zbb91Q6p3vfGc64ogj0m9/+9tqADPKHH300Wn8+EbO4447Lt1yyy3Vc7fbbrt08MEH14fMT58+PV177bXpwAMPrAY/I+Aa94kgq0SAAAECBAgQIECAAAECBAgQIECAwPAIWASpyfH8889PTz75ZDV37733bgl+xoEIdH7wgx+sz905d+7c6jyh2Us9+uij6dRTT61mrbTSSg3Bz1q5TTbZpJof+zFPaK187bhPAgQIECBAgAABAgQIECBAgAABAgSGJiAA2uQXQ9Nraffdd69ttnxG79Btt922nn/zzTfXt2PjggsuqAdSZ8yYUe/52VCoshND4mNRpUgRAH322Wer2/6HAAECBAgQIECAAAECBAgQIECAAIGhCwiANhkut9xyacMNN6wGJVdeeeWmo427yy+/fD0jFjvKpuuuu66+u/nmm9e38zZe/vKXV7MfeOCBNGfOnLwi8ggQIECAAAECBAgQGAaBGHkVI76af+bPnz8MV3cJAgQIECBAoBMFGiet7MQnHOVnOuigg9q+Ywx9r6UXvvCFtc3q5/XXX1/9HDduXGo+1lCwshOLI9XSP//5z9RfwLRW1icBAgQIECBAgAABAgMTiJFas2bNajlp0qRJOiO0qMggQIAAAQLlENADdJDt+MQTT6RYLb6WNthgg9pm9fPuu++ufsaK782LIzUUrOxke5recccdzYftEyBAgAABAgQIECBAgAABAgQIECAwSAE9QAcJd/zxx6eHHnqoenb02Fx11VXrV4rhNM8//3x1f9lll63nF20ss8wy9UOxeFI76bzzzkvxU5T+9re/VQOrjz/+eHWV+aJy8gkQIECAAAECBAgQIECAAAECBAiUWUAAdBCte+aZZ6YTTzyxeubiiy+eDjzwwIarzJs3r76/6KKL1reLNrJl2p176MYbb0y/+93vii5ZzV966aXT008/LQDap5KDBAgQIECAAAECBAgQIECAAAECZRYwBH6ArXvppZemb3zjG/WzPvShDzUMYY8DMTy+lhZZZJHaZuFntsxTTz1VWM4BAgQIECBAgAABAgQIECBAgAABAgQGJqAH6AC8oudnBD9j5chIb3/729Ouu+7acoXsnJ+1si2FMhnPPvtsfS8bDK1n2iBAgAABAgQIECBAgAAB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c7gTgW4SEADtptbyrAQIECBAgAABAgQIECBAgMCwCZx0UkoLFuRfbvfd8/PHOnfq1JRWXDH/KYqG8+eXHlrutttum5ZaaqnCn5mdGkEeWrWd3aUC47v0uT02AQIECBAgQIAAAQIECBAgQGBIAkUBwylTUlp33SFdesROXnjhlKZPT+mYY1pvccYZKcWCSONHIdozb9689Nhjj7U+xH9znjAev9DGgdEX0AN09M3dkQABAgQIECBAgAABAgQIEBhjgQceSOmSS/IfomiYeX7p0c+dMSP/ng89lNIFF+QfG+7cFSvdUFddddXqz7hYMaqSFlpooXre8ssvP9y3dD0CgxYYhb8JDPrZnEiAAAECBAgQIECAAAECBAgQGBGBWDX9uefyL93pAdAddkhpiSVSevzx1uePXq077tiaP9w5Z555Zv2SkyZNqizA9ERl0ajV0h133FHPt0GgUwQEQDulJTwHAQIECBAgQIAAAQIjLnBJpbvXQQcd1HKfxRdfPJ111lkt+TIIECivQNHw97XXTmmTTTq73osumtK0aSn9+tetzzl7dkrf/35K/+2U2VpADoEeFBAA7cFGV2UCBAgQIECAAAECvSowf/78dM8997RUP3ovSQQI9I5AZfrKdP75+fV93evy8zstN3qp5gVA//WvlK68MqUtt+y0J/Y8BMZOwBygY2fvzgQIECBAgAABAgQIECBAgMAYCJx+ekqVv4fkpm5ZvDx6gC6ySG4VUlHv1vzScgmUX0AAtPxtrIYECBAgQIAAAQIECBAgQIBARuDkkzM7mc2VV05piy0yGR28udRSKb3mNfkPGPObSgQI/E9AAPR/FrYIECBAgAABAgQIECBAgACBkgs8/XRKZ5+dX8no/VlZyLxrUtFiTTffnNL113dNNTwogREX6KJf6xG3cAMCBAgQIECAAAECBAgQIECg5ALnnpvSo4/mV7IooJhfeuxzd9+9OGBrGPzYt48n6BwBAdDOaQtPQoAAAQIECBAgQIAAAQIECIywQFFgcOmlU9pmmxG++TBfPobsT52af9GieuaXlkug3AICoOVuX7UjQIAAAQIECBAgQIAAAQIE/ivw/PMpxQJIeSl6UxYtKpRXvlPyinqtzpmT0h13dMpTeg4CYysgADq2/u5OgAABAgQIECBAgAABAgQIjJLARReldO+9+TcrCiTml+6c3Bkz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QIAAAQItKVCUyNtll4jx41uSpHPQo0YV74F67rkRCxd2VnVCoCkFJECbcloNigABAgQIECBAgAABAgQItI7ArFkRN96YH2/R8u987eaNFjk8/njEX/7SvOM2MgJJQALUzwEBAgQIECBAgAABAgQIECBQaoG0/H3RovwQ9tsvH2+16FveErHCCvlRFz09m68tSqB8AhKg5ZszPSZAgAABAgQIECBAgAABAgS6CBQl8LbaKmLChC4VW/h0pZUipk/PA5x9dj4uSqBZBCRAm2UmjYMAAQIECBAgQIAAAQIECLSgwOzZEVdemR940bLvfO3mjxZ53HdfxG23Nf/4jbB1BSRAW3fujZwAAQIECBAgQIAAAQIECJRe4JxzIhYsyA/jgAPy8VaN7rNPxPDh+dEXPUWbry1KoFwCEqDlmi+9JUCAAAECBAgQIECAAAECBLoIpP0/c8eGG0akJfCOJQKrrRax++5LPnc9kwDtquG82QQkQJttRo2HAAECBAgQIECAAAECBAi0iMCLL0ZcfHF+sAcemI+3erRoGfytt0bcf3+r6xh/swpIgDbrzBoXAQIECBAgQIAAAQIECBBocoHzz4+YOzc/yKJEX75260T33bd4rJ4CLbZRUm4BCdByz5/eEyBAgAABAgQIECBAgACBlhUoStituWbE5Mkty9LjwDfYIGK77fJVijzztUUJlEdAArQ8c6WnBAgQIECAAAECBAgQIECAwGKBV16JuPDCPEd6+nM5GY88TiVa9HTsX/4S8cQThZcpIFBaAX8clHbqdJwAAQIECBAgQIAAAQIECLSuwIwZEc8/nx9/UYIvX7v1okU+CxdGnHNO63kYcfMLjGj+IRohAQIECBAgQIAAAQIE2gWuu+66+Na3vtWNY/To0XHGGWd0iwsQINC4AkXLtceOjZg6tXH73Qg922KLiI03jrjnnu69Sa4f/Wj3uAiBMgtIgJZ59vSdAAECBAgQIECAAIE+Cbzwwgtx1113dbtmzJgx3WICBAg0rkB6UvHcc/P922efiJEj82WiSwTSU6Df/vaSzx1nF18cUfmjMlZeuSPiO4HyC1gCX/45NAICBAgQIECAAAECBAgQINBSAldeGfHkk/khH3BAPi66tEDRMvi0t+r55y9d1ycCZReQAC37DOo/AQIECBAgQIAAAQIECBBoMYEzz8wPeMUVI/baK18murTAzjtHrL320rGOT0XbC3SU+06gbAISoGWbMf0lQIAAAQIECBAgQIAAAQItLlD0op63vCXCjhbV/XAMGxax3375uhdeGDFvXr5MlEAZBSRAyzhr+kyAAAECBAgQIECAAAECBFpU4IYbIh58MD/4omXd+dqiRV5pD9CLLuJDoHkEJECbZy6NhAABAgQIECBAgAABAgQINL1A0fLsEZXXPO+9d9MPv6YDnDIlYpVV8k0WOedrixJobAEJ0MaeH70jQIAAAQIECBAgQIAAAQIEuggUJeamTo0YN65LRae9CowcGfH2t+ernXdexMKF+TJRAmUTkAAt24zpLwECBAgQIECAAAECBAgQaFGBmTMj7rwzP/ii5dz52qIdAkVuTzwRcfXVHbV8J1BuAQnQcs+f3hMgQIAAAQIECBAgQIAAgZYRKHr7e3qhz777tgxDTQf65jdHrLhivsmip23ztUUJNK6ABGjjzo2eESBAgAABAgQIECBAgAABAl0EihKgkydHjB/fpaLTqgXGjInYa698dQnQvIto+QQkQMs3Z3pMgAABAgQIECBAgAABAgRaTmDWrIgbb8wP+4AD8nHR6gSKlsE/8EDELbdU14ZaBBpZQAK0kWdH3wgQIECAAAECBAgQIECAAIE2gfT056JFeYz99svHRasTSC9CGj48X9dToHkX0XIJSICWa770lgABAgQIECBAgAABAgQItKRAUSJu0qSICRNakqRmg37tayP22CPfXJF7vrYogcYUkABtzHnRKwIECBAgQIAAAQIECBAgQGCxwOzZEVdemeew/D3v0tdo0TL422+PuPfevramPoHGEpAAbaz50BsCBAgQIECAAAECBAgQIEBgGYFzzolYsGCZ4OKPRYm7fG3RIoGethHwFGiRmnhZBCRAyzJT+kmAAAECBAgQIECAAAECBFpUoCgBt+GGEVtv3aIoNR72eutF7LBDvtEi/3xtUQKNJyAB2nhzokcECBAgQIAAAQIECBAgQIDAYoEXX4y46KI8h+XveZf+Rouepr322oh//rO/rbqOwNALSIAO/RzoAQECBAgQIECAAAECBAgQIFAgcMEFEXPn5gslQPMu/Y0WJUAXLoxI2xA4CJRVQAK0rDOn3wQIECBAgAABAgQIECBAoAUEzjwzP8g114yYPDlfJto/gYkTIzbdNH+tZfB5F9FyCEiAlmOe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sD9HWkKd9pT84hf7c7Vrai3w1a9G3H1331qt/LEb3/lOxH/9V9+uU5tALQUkQGupqS0CBAgQIECAAAECBBpa4Omnn45rrrmmWx/HjBnTLSZAgEDtBC68sP9tXXCBBGj/9Wp3ZXr6s7+/JzrhhIgjjogYNap2/dESgb4IWALfFy11CRAgQIAAAQIECBAgQIAAgT4JzJ4d8dxzfbpkqcr33bfURx+GSCAlsdPenv050vxffnl/rnQNgdoISIDWxlErBAgQIECAAAECBAgQIECAQEYgvRl8IMdArx/IvV27RODOO5ec9+dsoNf3556uIdAhYAl8h0SV3z/3uc/FddddF4ccckgceOCBVV21YMGCuLDyq5KLLrooHn744XjppZdi4sSJMWnSpNhll11is802q6odlQgQIECAAAECBAgQIECAQNkE1lwzYvjwiMo/jft1jB/fr8tcVGOBgTzFm7qSltA7CAyVgARoH+TPPPPMtuRnHy6JJ598Mg477LC4//77l7rs+uuvj/T1i1/8Io466qh485vfvFS5DwQIECBAgAABAgQIECBAoBkERlQyD5Vnf+Kqq/o3mj326N91rqqtwBprDKy9gV4/sLu7utUFJECr/AmYMWNGnHzyyVXWbq82Z86cOPzwwzuTnxMmTIjddtstVl999bjlllviiiuuqOyf8Up84xvfiFT3gAMO6FP7KhMgQIAAAQIECBAgQIAAgTIIfOAD/U+ApmsdQy+w444D68NArx/Y3V3d6gISoL38BMybNy9+9rOfxe9+97tYtGhRL7WXLj799NPj3nvvbQtOnTo1vvSlL8XIkSPbPu+7775x2223Vd6CdkRb8vO73/1u7FH5tdZqq622dCM+ESBAgAABAgQIECBAgACBkgt85CMRp5wS8fe/920g++8fseuufbtG7foITJkSkZ7ifOKJvrdfeR4stt++79e5gkCtBLwEqQfJ9JTmhz/84TjjjDNi4cKFPdTsXvT888/Hueee21awRuVPiK7Jz47aW221VVs8fU77hHbU7yj3nQABAgQIECBAgAABAgQININAWgZf2VUuVlml+tFssklUHkiqvr6a9RUYNSoqOYz+3ePoo/t3nasI1EpAAjQjmZ70PPHEE+NTn/pUzJo1q63G+uuvX/VLj9IFl156abz88stt1+63336dT362Bbr8Jy2JX2+99doiKQE6f/78LqVOCRAgQIAAAQIECBAgQIBAcwhsumlUXg5c3Vh23z3iyisjVl21uvpqDY7AJz8Zsc8+fbtX2sP1Pe/p2zVqE6i1gARoRjQ97XnWWWd1luy9995ty+DTHp4dx7BhwzpOs9//9re/dcZ32mmnzvPcyQ477NAWnj17dtx00025KmIECBAgQIAAAQIECBAgQKD0Ao8/3vMQ0suS/ud/Ii6/vH25dc+1lQ62wHKVLNJvfxuVB8Sqv/OLL1ZfV00C9RKQAO1BdsfKDr0/+MEP4sgjj4wVVlihh5rdi+644462YEqUbrTRRt0rdIl0Tazed999XUqcEiBAgAABAgQIECBAgACB5hHo6QnQ006L+MtfIt73vohenjlqHpASjmT06Ij//d+I3/wmYuLE3geQnvOqvFfaQWBIBSq7cDiWFViu8iuNH/3oR7HFFlssW1T150ceeaStbnrj+4i02UkPx5prrtlZ+tBDD3WeOyFAgAABAgQIECBAgAABAs0k0FMCdMyYZhppc48lJajf+972r7vuith664hXXike87HHRkyfXlyuhEC9BXrOzNX77g3afnpqcyDJz7T3Z8dLk1atYsOSVbrsAp1enlTN8dvKM+fp5UxFxxOV17KlfUufffbZqLbNorbECRAgQIAAAQIECBAgQIDAQAXS28O77BY30OZc3yACm20WlQe/2hOgafHs3LndO3bJJRE33uhN8N1lRAZLQAK0DtJz5szpbHX55ZfvPC866Vpnbu5PisyFTz75ZNyVfs3Sw5GW7Q8fPryHGooIECBAgAABAgQIECBAgMDgCKSnPyvvHHY0scDKK+cToGnI3/pWxB/+0MSDN7SGFpAArcP0vPTSS52tjho1qvO86KRrnXnz5hVVEydAgAABAgQIECBAgAABAqUV6Gn5e2kHVdDxn/3sZ/HHP/6xrfTWW2/trHXwwQfHiiuu2Pb1m7SJZpMd6QnQ3XaLuPrq7gM7++yIe+6J2Hjj7mUiBOotIAFaB+Gue34uWLCg1zvMnz+/s07XZGhn0AkBAgQIECBAgAABAgQIECi5wMUXl3wAfej+bbfdFmenjN8yx5///Oe2yMrpUckmPSrvkY599uk+uIULI9JeoJXcsIPAoAtIgNaBPP02p+N4paddgBdX6lpnTJW7Pn/sYx+LD37wgx236fb9pJNOiqOPPrqyvMD6gm44AgQIECBAgAABAgQIECAwqAIzZ0Z45++gkg/ZzfbeO2LzzSP+/vfuXfj1ryO+8Y2ItdfuXiZCoJ4CEqB10B09enRnq133A+0MLnPSdcl8tQnQtG9o171Dl2myrazjRUzLlvlMgAABAgQIECBAgAABAgQGU6CVlr8n1y9+8YvxiU98opC4md/Xkd4Qf9RRER/4QPfhp13/Tjgh4jvf6V4mQqCeAhKgddBNicnXvva1MXv27EhvY+/tePzxxzurjBs3rvPcCQECBAgQIECAAAECBAgQaAaBogRoehLwsceaYYRLj2GNNdaI9NWqx7vfnZLA+ad+f/rTiC99KWKVVVpVx7iHQmC5obhpK9xzww03bBtmerrzmWee6XHIs2bN6iyfOHFi57kTAgQIECBAgAABAgQIECBQdoH0aozLLsuP4vWvz8dFyy0wcmTE4Yfnx/DCCxHf/36+TJRAvQQkQOsku3na8GLx0fWNbx2xrt/T5sgdR9frOmK+EyBAgAABAgQIECBAgACBsgpcf33Es8/me7/42aF8oWipBT7ykaisjs0P4Xvfi5g7N18mSqAeAhKg9VCttDllypTOljve8tYZ6HKSlr/ffPPNbZFNN900LIHvguOUAAECBAgQIECAAAECBEovULT8fYUVItZbr/TDM4ACgfR6lEMOyRem3QJPPTVfJkqgHgISoPVQrbS58cYbR0popuOqq66KXBJ0XmX332OPPTYWpPUAleN973tf23f/IUCAAAECBAgQIECAAAECzSJQlADdY4+IEd5M0izTnB3HJz8ZMWZMtihOPDEq+ZB8mSiBWgtIgNZatEt7n/3sZzs/ffOb34xf/OIX8eijj8b8+fMjLXs/7LDD4oYbbmirk5a+77nnnp31nRAgQIAAAQIECBAgQIAAgbILVF6LEddemx/Fm96Uj4s2j0B6z/PHP54fz/33R5xxRr5MlECtBfyupdaiXdrbYost4mtf+1occ8wxlb0t5lYe7z617Wv48OGdT32m6uuss04cd9xxsdxy8tFd+JwSIECAAAECBAgQqLnA1ltvHT/84Q+7tTvCY2jdTAQI1ELgiisiKosfs0dKgJ51VrZIsIkE0jL4tOfnq692H9Txx0e8//3d4yIEai0gAVpr0WXae+Mb3xive93r4lvf+lbcc889sXDhws7kZ/pL1v777x8f+tCHYuzY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OPjgg5tqTAZDoK8Ct90W8cQT+askQPMuoq0hsOqqAxvnX/7SvoXEsGEDa8fVtRewBL72plokQIAAAQIECBAgQIAAAQINK1C0/2d6EHqPPRq22zpGoO4CW2wxsFt85SsRO+0UccUVA2vH1bUXkACtvakWCRAgQIAAAQIECBAgQIBAwwoU7f85eXLESis1bLd1jEDdBfbbb+C3uOGGiD33jDjwwIh77x14e1qojYAEaG0ctUKAAAECBAgQIECAAAECBBpe4JVXIq68Mt/N6dPzcVECrSKQEpdveENtRnvmmRGbbx5x2GERzz5bmza10n8BCdD+27mSAAECBAgQIECAAAECBAiUSiDtUfjSS/ku2/8z7yLaWgI/+UnEa15TmzGnXziceGLEhAkR3/texPz5tWlXK30XkADtu5krCBAgQIAAAQIECBAgQIBAKQWKlr+nhM+OO5ZySDpNoKYCEydGnHtuxLhx1TVbzQuPZs+O+PSnI7bcMuK886prV63aCkiA1tZTawQIECBAgAABAgQIECBAoGEFihKgU6ZEjBjRsN3WMQKDKpCWwqe9PA84oPi248dH/OxnEXfdFfGOdxTX61oyc2Z73WnTIm65pWuJ83oLSIDWW1j7BAgQIECAAAECBAgQIECgAQSee649qZPriuXvORWxVhbYcMOIP/wh4r77Ij7/+SUSaV/PP/854oEHIj7ykYhNNok455yISy6J2HbbJfV6Okt1t98+4t/+LeKxx3qqqaxWAhKgtZLUDgECBAgQIECAAAECBAgQaGCBlHRZsCDfQQnQvIsogZQIfe97lzhMmhSx114RI0cuiaWzqVPbf8Fw2mkR6enQ3o6FCyNS3Y03jjj66OK9eXtrR3l1AhKg1TmpRYAAAQIECBAgQIAAAQIESi1QtPw9JWvSvocOAgQGJrBcJct20EERd98d8eUvR4we3Xt7c+a0101Pkv7qVxGLFvV+jRp9F5AA7buZKwgQIECAAAECBAgQIECAQOkEihKg06eXbig6TKChBcaMifja19oToR/8YEQ1L0p65JGIVDe9jOyKKxp6eKXsnARoKadNpwkQIECAAAECBAgQIECAQPUCDz/cnozJXWH5e05FjMDABdZZJ+IXv2hfGp9erFTNceONEaluegHTP/5RzRXqVCMgAVqNkjoECBAgQIAAAQIECBAgQKDEAjNmFHc+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27H88u0J07337q1mY5dLgDb2/OgdAQIECBAgQIAAAQIECBCoSuCyyyLmz89XlQDNu4gSaFWB97434q9/jdhrr2KB9OfGtddGfOADxXXKUiIBWpaZ0k8CBAgQIECAAAECBAgQINCDwIwZ+cK1147YYot8mSgBAq0rMGlSxJ//HPHAAxHve98Sh3e/O+K++yLSnynbbLMkXuYzCdAyz56+EyBAgAABAgQIECBAgACBxQJF+39Om4aIAAECxQIbbBCx225LynfdNWLDDZd8boYzCdBmmEVjIECAAAECBAgQIECAAIGWFnjkkYi77soTTJ+ej4sSIECgVQQkQFtlpo2TAAECBAgQIECAAAECBJpWoOjpzzRgT4A27bQbGAECVQpIgFYJpRoBAgQIECBAgAABAgQIEGhUgaIE6MSJEeus06i91i8CBAgMjoAE6OA4uwsBAgQIECBAgAABAgQIEKibwMUX55v29ve8iygBAq0lIAHaWvNttAQIECBAgAABAgQIECDQZAJ/+1vEY4/lByUBmncRJUCgtQQkQFtrvo2WAAECBAgQIECAAAECBJpMoGj5+4gREVOmNNlgDYcAAQL9EJAA7QeaSwgQIECAAAECBAgQIECAQKMIFCVAd9op4jWvaZRe6gcBAgSGTkACdOjs3ZkAAQIECBAgQIAAAQIECAxI4NVXIy6/PN+E5e95F1ECBFpPoPJAvIMAAQIECBAgQIAAAQKtIfC6170uDj744G6DHTVqVLeYAIEyCFx3XcSLL+Z7KgGadxElQKD1BCRAW2/OjZgAAQIECBAgQIBAywpMmDAhDj/88JYdv4E3n8CMGfkxrbRSxOTJ+TJRAgR6F1iwYEHnL8yefvrpzguuq/zW4aCDDmr7vP/++8c73vGOzjInjSsgAdq4c6NnBAgQIECAAAECBAgQIECgR4Gi/T/33DNi5MgeL1VIgEAPAgsXLoyf//zn3Wo88MADnfENN9xQArSbUGMG7AHamPOiVwQIECBAgAABAgQIECBAoEeBF16I+Otf81Usf8+7iBIg0JoCngBtzXk3agIECBAgQIAAAQIECBAoucBll0XMn58fhARo3kWUQLUCI0aMiGuuuabH6uutt16P5QobR0ACtHHmQk8IECBAgAABAgQIECBAgEDVAkXL39daK2LLLatuRkUCBDICw4YNq+yjayPdDE0pQ5bAl3LadJoAAQIECBAgQIAAAQIEWl2g6AVI06a1uozxEyBAYGkBCdClPXwiQIAAAQIECBAgQIAAAQINL/DooxF33pnvpuXveRdRAgRaV0ACtHXn3sgJECBAgAABAgQIECBAoKQCRcvf03AkQEs6qbpNgEDdBCRA60arYQIECBAgQIAAAQIECBAgUB+BogToZptFrLtufe6pVQIECJRVQAK0rDOn3wQIECBAgAABAgQIECDQsgJFCVBPf7bsj4SBEyDQg4C3wPeAo4gAAQIECBAgQIAAAQIECAymwKxZs2Kz9BhnD8dRR30/Hnvsw9kaEqBZFkECBFpcQAK0xX8ADJ8AAQIECBAgQIAAAQIEGkdg4cKFMWfOnB47dNttr2bLhw+PmDIlWyRIgACBlhawBL6lp9/gCRAgQIAAAQIECBAgQKCRBEaMGFHZw3Pdtq/VVluts2srrbRSZ/yee1bqjHc92WmniLFju0Ya8/zcc8+N8ePHt32ddNJJnZ38+Mc/3hmfOXNmZ9wJAQIEBirgCdCBCrqeAAECBAgQIECAAAECBAjUSCAlBh9++OG21v70pz/FW9/61rbzf/u3f4uTTz455s+PGDcuf7OyLH9/+eWXK0v4H+s2iGeffTbSVzpefTX/lGu3iwQIECBQhYAEaBVIqhAgQIAAAQIECBAgQIAAgUYQuO66iBdeyPekLAnQkSNHxsorr5wfxOLo8LSe30GAAIEaCUiA1ghSMwQIECBAgAABAgQIECBAoN4CRW9/HzMmYvLket+9Nu0fcMABkb4cBAgQGCwBe4AOlrT7ECBAgAABAgQIECBAgACBAQrMmJFvYI89IkaNypeJEiBAoNUFJEBb/SfA+AkQIECAAAECBAgQIECgFAJp6XtaAp87pk/PRcUIECBAIAlIgPo5IECAAAECBAgQIECAAAECJRC4/PJoewlSrqtl2f8z13cxAgQI1FtAArTewtonQIAAAQIECBAgQIAAAQI1ECja/3PNNSO23LIGN9AEAQIEmlTAS5CadGINiwABAgQIECBAgAABAgSaS6AoATptWsSwYc01VqMhQKD+AnPmzIl77rmn7UYPP/xw5w1nzZoVt9xyS9vnCRMmxEorrdRZVtYTCdCyzpx+EyBAgAABAgQIECBAgEDLCFTyFHHHHfnhWv6edxElQKBngRtuuCGmTJnSrdLxxx8f6SsdMypvXntTE/whYwl8t2kWIECAAAECBAgQIECAAAECjSXw0EPF/WmC3ETx4JQQIECgBgKeAK0BoiYIECBAgAABAgQIECBAgEA9BYoSoJtuGrHeevW8s7YJEGhWgTXWWCPe85739Di8tdZaq8fyshRKgJZlpvSTAAECBAgQIECAAIEBC6Q9zi5Pr9Je5hg5cmS8+93vXibqI4HGEeiyPd9SnfL051IcPhAg0AeBiRMnxhlnnNGHK8pbVQK0vHOn5wQIECBAgAABAgQI9FFg5syZcfTRR3e7asyYMRKg3VQEGkkg7QGaOyRAcypiBAgQWFrAHqBLe/hEgAABAgQIECBAgAABAgRKITB8eMTUqaXoqk4SIEBgSAUkQIeU380JECBAgAABAgQIECBAgED/BHbYIWLs2P5d6yoCBAi0koAEaCvNtrESIECAAAECBAgQIECAQNMITJ/eNEMxEAIECNRVQAK0rrwaJ0CAAAECBAgQIECAAAEC9RGw/2d9XLVKgEDzCUiANt+cGhEBAgQIECBAgAABAgQINLnA6NERu+zS5IM0PAIECNRIQAK0RpCaIUCAAAECBAgQIECAAAECgyWwxx4Ro0YN1t3chwABAuUWGFHu7us9AQIECBAgQIAAAQIECBBoLoFXX434058ifvCD4nFZ/l5so4QAAQLLCkiALiviMwECBAgQIECAAAECBAgQGCKBCy+M+PSnI/7xj547MG1az+VKCRAgQGCJgCXwSyycESBAgAABAgQIECBAgACBIRM4+eSIt7+99+Rn6uBXvhKRnhR1ECBAgEDvAhKgvRupQYAAAQIECBAgQIAAAQIE6ipw1lkRhx4asXBhdbc599z2J0Wrq60WAQIEWltAArS159/oCRAgQIAAAQIECBAgQGCIBV56KeI//zNi0aK+deRHP4q49tq+XaM2AQIEWlFAArQVZ92YCRAgQIAAAQIECBAgQKBhBH7964hHH+1fd044oX/XuYoAAQKtJOAlSK0020Mw1nnzIu69N+KppyLGjYvYaKOIFVccgo64JQECBAgQIECAAAECBBpU4I9/7H/H0tvi016gI0f2vw1XEiBAoNkFJEAHYYYXLFgQF1Ze5XfRRRfFww8/HC9V1jdMnDgxJk2aFLvssktsttlmg9CLwb3F3/8e8Y1vRJx3XsSLLy659+jREW99a8R//VfENtssiZf5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aVvJWh0SoLWS7NLOS13WHY8aNapLSf60a51581LSzEGAAAECBAgQIECAQD0E1llnncoLHN9Vj6a1SYAAAQIECDSogARoHSYm/fa441iwIC2R7vmYP39+Z4WuydDOYOZk5ZVXjrXXXjtT0h5KS+mfrbzRpmMp/vrrrx/bbbddYf1aFKTV+1/6Ut+WYlSGEUcfHZH2smn0I+1qkMb38MMdPb2qctLT/KZl/pW9ASrHm98cse22ESm//eqr+e8db7bv6Xu6vqO8y49N2z1q/5+nKk2e20uzb6iUb9JWJz3s/JOfWALfC5hiAgQIECBAgAABAlUL3HbbbXHCCSe01d+rsia+69OgVTeiIgECBEooUMunP9Pwl2TqSojRqF1eMb12e/HxSspW9XJ0rTNmTHUvzvnwhz8c6avoOOaYY+ILX/hCZ/G4SoZxvbSjdp2PL3+5fa+aytajvR5p69PzK9tlbr11r1UbpsLHPhYxdWpEe/LxvVX1K+WdDz00ooqHgatqr6NSSshWtptt+0oPHafzjhcfdZwv+71rvWXL0ue774547LGOO6Sfl0rWtspj//0jKnl2BwECBAgQIECAAAECNRK444474rLLLmtrbevKP5wG4990Neq6ZggQINBQAhKgdZiO0V1eid51P9CiW3VdMl9tArSoraGOb7NNxPXXR3z0oxEzZhT3ZvfdI049tfLsYPvDg8UVG6zkDZUHHn/604iDD648+9nTw5+L+z1hQsQ559Q++ZmaT/uupnx5lTnzqiTvvTdi4sT2p1SruqBLpU98ossHpwQIECBAgAABAgQIECBAgACBBhGopFActRZILzV67Wtf29bsE0+kN2n3fDz++OOdFdKTmmU/Ntgg4v/9v4irr4747Gfbn5icNCliypSIT30q4tJLI664onzJz455SQ/e/vnPlcXt7avbO8Ldvv/Lv0Rcd13EumklfEmONKb0tGpfj333jZg+va9XqU+AAAECBAgQIECAAAECBAgQqL+AJ0DrZLzhhhvG7NmzK0uSX4pnnnkmVl111cI7zZo1q7NsYnr8rkmOXXeNSF/NeEybFnHnnRF/+EPEeee1Lx1Pe6CutVbE5MqL09/znvY9P8s49m9+M+Lvf28fVzX9T0/9/vKX1dRUhwABAgQIECBAgAABAgQIECAw+AKeAK2T+eabb97Z8q233tp5njtJG1t3HF2v64j53pgCI0e2Jzp//ev2Zf8zZ0ZcfnnEcceVN/mZpIcPjzjrrIgjjqhsEtzLr0je976IK6+MeM1rGnOO9IoAAQIECBAgQIAAAQIECBAgIAFap5+BKVOmdLb857ReuuBIy99vvvnmttJNN9208jb08i+BLxiqcIkEUhI0JXLTk6CHHx6x1VbtSc6032jlxzTSfp9//WvE//xPxEorlWhgukqAAAECBAgQIECAAAECBAi0nIAEaJ2mfOONN64kiiqZospx1VVXVfaM7J4EnTdvXhx77LGVl+m0v03nfelxOgeBBhKo/BjHt78dkR5ifu65iBdfjLjrrogf/jBixx0bqKO6QoAAAQIECBAgQIAAAQIECBAoEJAALYCpRfiz6Q1Ai49vVjZW/MUvfhGPPvpozJ8/P9Ky98MOOyxuuOGGthpp6fuee+7ZUd13AgQIECBAgAABAgQIECBAgAABAgRqINDLDn81uEMLN7HFFlvE1772tTjmmGNi7ty5ceqpp7Z9Da+sL+546jPxrLPOOpXlxsfFcsvJR7fwj4uhEyBAgAABAgQIECBAgAABAgQI1EFAxq0OqF2bfOMb3xg//vGP25bDdyQ4O5KfIypvmHnXu97VVr7KKqt0vcw5AQIECBAgQIAAAQIECBAgQIAAAQI1EPAEaA0Qe2vi9a9/fduTn+kp0HvuuSfSi4/Gjx8f66+/fuUFMt4g05ufcgIECBAgQIAAAQIECBAgQIAAAQL9FZAA7a9cP65bYYUVYtKkSW1f/bjcJQQIECBAgAABAgQIECBAgAABAgQI9FHAEvg+gqlOgAABAgQIECBAgAABAgQIECBAgEB5BCRAyzNXekqAAAECBAgQIECAAAECBAgQIECAQB8FJED7CKY6AQIECBAgQIAAAQIECBAgQIAAAQLlEbAHaHnmSk8JECBAgAABAgQIECBAoMkFXnrppfjjH//YNspbbrmlc7R33313/P73v2/7vMMOO0R62a6DAAECBKoTkACtzkktAgQIECBAgAABAgQIECBQd4Gnnnoq3v3ud3e7z4UXXhjpKx0/+clPJEC7CQkQIECgWMAS+GIbJQQIECBAgAABAgQIECBAgAABAgQIlFzAE6Aln0DdJ0CAAAECBAgQIECAAIHmERg7dmx8+ctf7nFA2223XY/lCgkQIEBgaQEJ0KU9fCJAgAABAgQIECBAgAABAkMmkBKgX/va14bs/m5MgACBZhSwBL4ZZ9WYCBAgQIAAAQIECBAgQIAAAQIECBBoE5AA9YNAgAABAgQIECBAgAABAgQIECBAgEDTClgC37RTa2AECBAgQIAAAQIECCwr8Pjjj8cNN9ywbDiGDx8eb3nLW7rFBQgQIECAAIHyC0iAln8OjYAAAQIECBAgQIAAgSoFbr/99jj00EO71R4zZowEaDcVAQIECBAg0BwClsA3xzwaBQECBAgQIECAAAECBAgQIECAAAECGQEJ0AyKEAECBAgQIECAAAECBAgQIECAAAECzSEgAdoc82gUBAgQIECAAAECBAgQIECAAAECBAhkBCRAMyhCBAgQIECAAAECBAgQIECAAAECBAg0h4AEaHPMo1EQIECAAAECBAgQIECAAAECBAgQIJARkADNoAgRIECAAAECBAgQIECAAAECBAgQINAcAhKgzTGPRkGAAAECBAgQIECAAAECBAgQIECAQEZAAjSDIkSAAAECBAgQIECAAAECBAgQIECAQHMISIA2xzwaBQECBAgQIECAAAECBAgQIECAAAECGQEJ0AyKEAECBAgQIECAAAECBAgQIECAAAECzSEgAdoc82gUBAgQIECAAAECBAgQIECAAAECBAhkBCRAMyhCBAgQIECAAAECBAgQIECAAAECBAg0h4AEaHPMo1EQIECAAAECBAgQIECAAAECBAgQIJARkADNoAgRIECAAAECBAgQIECAAAECBAgQINAcAhKgzTGPRkGAAAECBAgQIECAAAECBAgQIECAQEZAAjSDIkSAAAECBAgQIECAAAECBAgQIECAQHMISIA2xzwaBQECBAgQIECAAAECBAgQIECAAAECGQEJ0AyKEAECBAgQIECAAAECBAgQIECAAAECzSEgAdoc82gUBAgQIECAAAECBAgQIECAAAECBAhkBCRAMyhCBAgQIECAAAECBAgQIECAAAECBAg0h4AEaHPMo1EQIECAAAECBAgQIECAAAECBAgQIJARGJGJCTWhwN133x2XX355E47MkAgQIECAAAECBAhUL3DrrbfGSy+91O2ChQsX+vtyNxUBAgQIECAwNAK77bZbjBhRu7TlsEWVY2iG4q71FDjmmGPiC1/4Qj1voW0CBAgQIECAAAECBAgQIECAAIH/3955wFtRnP1/qIIggiIgoBRR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b3579+6dI2OvXr28kc0JMmDAANOsWTN3anzU1X322cd8+umnVsawrIHQKT9Q/hmuo0pvfQsqB8My9u3b1zcRzQ477JAjY+fOnb2TcejQoaZHjx6BXC1btgyOfThQ/hLW006dOvkgVo4MHTt2zJFxl112ybnvw4na+eF09LE9NWjQINOmTZsgudq1axcc+3Lwve99z6xatcqKozayb6FJVXXwTSjkgQAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAgAn4N4yJNIQABCEAAAhCAAAQgAAEIQAACEIAABCAAAQiECOAADcHgEAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEPCLAA5Qv9ITaSAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAIEQARygIRgcQgACEIAABCAAAQhAAAIQgAAEIAABCEAAAn4RwAHqV3oiDQQgAAEIQAACEIAABCAAAQhAAAIQgAAEIBAigAM0BINDCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAwC8COED9Sk+kgQAEIAABCEAAAhCAAAQgAAEIQAACEIAABEIEcICGYHAIAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEI+EWguV/iIA0EGp7Al19+aZo3b26aNGlS1h/76quvzCeffGKfadOmjdG/tIa1a9eaefPmmYULF5rNNtvM9O7d2zJJqzxR3/3111+b1157zd7q3Lmz6dq1a1S0VF5bvXq1effdd80777xjli9fbrbYYguz5ZZb2t9mzZqlUqaoj16xYoWVU/J26tTJdOvWzbRs2TIqasWvffHFF+bZZ5+137HLLruYjh07VvybkvIByjffe+89m3/26NHD9OrVK3X5TVVVlc0zZW8rV6400k3lMW3btg3+KY/ZcMMNk4K9Vt8hPV68eLFZs2aN/ScZVdZJTv1uvPHGtXovDzUOAZXttckjpddKewXltYTKEsh6OmahjioNmz9/vlmyZIlVNtUbym2XVFZLC//1rNRRVT4qDfVvo402MptvvrnZdNNNC4Op4B3qqIXhq32vNpXSsVWrVmabbbYxm2yySeEHEngnK3VUh75JtcBV7oRfCEAgmsCnn35qbrvtNusQU0NcGVzfvn1N//79zY9//GOzwQYbRD8Yuvrmm2+a448/3l457rjjzMiRI0N3k3O4bNky6xSToyG/MqXC+oEHHjB33323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AAEIQAACEICAFwRwgHqRjAgBAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIRBHAARpFhWsQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAFwRwgHqRjAgBAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIRBHAARpFhWsQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAFwRwgHqRjAgBAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIRBHAARpFhWsQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAFwRwgHqRjAgBAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIRBHAARpFhWsQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAFwRwgHqRjAgBAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIRBHAARpFhWsQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAFwRwgHqRjAgBAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIRBHAARpFhWsQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAFwRwgHqRjAgBAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIRBHAARpFhWsQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAFwRwgHqRjAgBAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIRBHAARpFhWsQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAFwRwgHqRjAgBAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIRBHAARpFhWsQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAFwRwgHqRjAgBAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIRBHAARpFhWsQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAFwRwgHqRjAgBAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIRBHAARpFhWsQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAFwRwgHqRjAgBAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIRBHAARpFhWsQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAFwRwgHqRjAgBAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIRBHAARpFhWsQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAFwRwgHqRjAgBAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIRBHAARpFhWsQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAFwRwgHqRjAgBAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIRBHAARpFhWsQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAFwRwgHqRjAgBAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIRBHAARpFhWsQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAFwRwgHqRjAgBAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIRBHAARpFhWsQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAFwRwgHqRjAgBAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIRBHAARpFhWsQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAFwRwgHqRjAgBAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIRBHAARpFhWsQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAFwRwgHqRjAgBAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIRBHAARpFhWsQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAFwRwgHqRjAgBAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIRBHAARpFhWsQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAFwT+P8f3yqHm2qizAAAAAElFTkSuQmCC" width="672" /></p>
<div class="sourceCode" id="cb86"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb86-1"><a href="#cb86-1" aria-hidden="true" tabindex="-1"></a>estimates_jukyo_number_OLS <span class="ot">&lt;-</span> df_estimates 　 <span class="co">#for robustness check</span></span></code></pre></div>
</div>
<div id="wls-no-trends-figure-5-e-table-c.5-5-1" class="section level2" number="10.2">
<h2><span class="header-section-number">10.2</span> WLS, no trends, Figure 5 (e) &amp; Table C.5 (5)</h2>
<div class="sourceCode" id="cb87"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb87-1"><a href="#cb87-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb87-2"><a href="#cb87-2" aria-hidden="true" tabindex="-1"></a>estimation_results  <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_jukyo_WLS</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb87-3"><a href="#cb87-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>jukyo_number, </span>
<span id="cb87-4"><a href="#cb87-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>unemploy_shock_diff2)</span>
<span id="cb87-5"><a href="#cb87-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb87-6"><a href="#cb87-6" aria-hidden="true" tabindex="-1"></a>texreg<span class="sc">::</span><span class="fu">screenreg</span>(<span class="at">l =</span> estimation_results , <span class="at">include.ci =</span> <span class="cn">FALSE</span>, <span class="at">digits=</span><span class="dv">3</span>)</span></code></pre></div>
<pre><code>## 
## ==================================
##                         Model 1   
## ----------------------------------
## treat_var:date_2019_01    0.118 * 
##                          (0.058)  
## treat_var:date_2019_02    0.108   
##                          (0.070)  
## treat_var:date_2020_04    1.103   
##                          (0.730)  
## treat_var:date_2020_05   15.311 * 
##                          (6.970)  
## treat_var:date_2020_06   27.584 **
##                          (9.358)  
## treat_var:date_2020_07   15.334 **
##                          (5.316)  
## treat_var:date_2020_08    6.615 * 
##                          (2.999)  
## treat_var:date_2020_09    4.442 * 
##                          (2.152)  
## ----------------------------------
## R^2                       0.785   
## Adj. R^2                  0.749   
## Num. obs.               423       
## RMSE                    363.049   
## N Clusters               47       
## ==================================
## *** p &lt; 0.001; ** p &lt; 0.01; * p &lt; 0.05</code></pre>
<div class="sourceCode" id="cb89"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb89-1"><a href="#cb89-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb89-2"><a href="#cb89-2" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_jukyo</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb89-3"><a href="#cb89-3" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;unemploy_shock_diff2&quot;</span>,</span>
<span id="cb89-4"><a href="#cb89-4" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;jukyo_number_WLS&quot;</span>)</span>
<span id="cb89-5"><a href="#cb89-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb89-6"><a href="#cb89-6" aria-hidden="true" tabindex="-1"></a><span class="co"># Event study graph</span></span>
<span id="cb89-7"><a href="#cb89-7" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_WLS <span class="ot">&lt;-</span> <span class="fu">event_study_graph_jukyo</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb89-8"><a href="#cb89-8" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;jukyo_number_WLS&quot;</span>)</span>
<span id="cb89-9"><a href="#cb89-9" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_WLS </span></code></pre></div>
<pre><code>## Warning: Removed 12 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABUAAAAPACAYAAAD0ZtPZAAAEDmlDQ1BrQ0dDb2xvclNwYWNlR2VuZXJpY1JHQgAAOI2NVV1oHFUUPpu5syskzoPUpqaSDv41lLRsUtGE2uj+ZbNt3CyTbLRBkMns3Z1pJjPj/KRpKT4UQRDBqOCT4P9bwSchaqvtiy2itFCiBIMo+ND6R6HSFwnruTOzu5O4a73L3PnmnO9+595z7t4LkLgsW5beJQIsGq4t5dPis8fmxMQ6dMF90A190C0rjpUqlSYBG+PCv9rt7yDG3tf2t/f/Z+uuUEcBiN2F2Kw4yiLiZQD+FcWyXYAEQfvICddi+AnEO2ycIOISw7UAVxieD/Cyz5mRMohfRSwoqoz+xNuIB+cj9loEB3Pw2448NaitKSLLRck2q5pOI9O9g/t/tkXda8Tbg0+PszB9FN8DuPaXKnKW4YcQn1Xk3HSIry5ps8UQ/2W5aQnxIwBdu7yFcgrxPsRjVXu8HOh0qao30cArp9SZZxDfg3h1wTzKxu5E/LUxX5wKdX5SnAzmDx4A4OIqLbB69yMesE1pKojLjVdoNsfyiPi45hZmAn3uLWdpOtfQOaVmikEs7ovj8hFWpz7EV6mel0L9Xy23FMYlPYZenAx0yDB1/PX6dledmQjikjkXCxqMJS9WtfFCyH9XtSekEF+2dH+P4tzITduTygGfv58a5VCTH5PtXD7EFZiNyUDBhHnsFTBgE0SQIA9pfFtgo6cKGuhooeilaKH41eDs38Ip+f4At1Rq/sjr6NEwQqb/I/DQqsLvaFUjvAx+eWirddAJZnAj1DFJL0mSg/gcIpPkMBkhoyCSJ8lTZIxk0TpKDjXHliJzZPO50dR5ASNSnzeLvIvod0HG/mdkmOC0z8VKnzcQ2M/Yz2vKldduXjp9bleLu0ZWn7vWc+l0JGcaai10yNrUnXLP/8Jf59ewX+c3Wgz+B34Df+vbVrc16zTMVgp9um9bxEfzPU5kPqUtVWxhs6OiWTVW+gIfywB9uXi7CGcGW/zk98k/kmvJ95IfJn/j3uQ+4c5zn3Kfcd+AyF3gLnJfcl9xH3OfR2rUee80a+6vo7EK5mmXUdyfQlrYLTwoZIU9wsPCZEtP6BWGhAlhL3p2N6sTjRdduwbHsG9kq32sgBepc+xurLPW4T9URpYGJ3ym4+8zA05u44QjST8ZIoVtu3qE7fWmdn5LPdqvgcZz8Ww8BWJ8X3w0PhQ/wnCDGd+LvlHs8dRy6bLLDuKMaZ20tZrqisPJ5ONiCq8yKhYM5cCgKOu66Lsc0aYOtZdo5QCwezI4wm9J/v0X23mlZXOfBjj8Jzv3WrY5D+CsA9D7aMs2gGfjve8ArD6mePZSeCfEYt8CONWDw8FXTxrPqx/r9Vt4biXeANh8vV7/+/16ffMD1N8AuKD/A/8leAvFY9bLAAAAOGVYSWZNTQAqAAAACAABh2kABAAAAAEAAAAaAAAAAAACoAIABAAAAAEAAAVAoAMABAAAAAEAAAPAAAAAALYRw1EAAEAASURBVHgB7N0HvBxVvTjwE0ggJJRgaIKAoSZgqEp91CcPRAQEFQXbXywodhREREVBQKwgAooFFaWID1BEEAWR3qVJJxA6UiSUBBLuf3/z3GV2dufe3Xtvkt293/P5XHfmzDln53xnbt7jd08Z1VdJSSJAgAABAgQIECBAgAABAgQIECBAgEAPCizQg33SJQIECBAgQIAAAQIECBAgQIAAAQIECGQCAqBeBAIECBAgQIAAAQIECBAgQIAAAQIEelZAALRnH62OESBAgAABAgQIECBAgAABAgQIECAgAOodIECAAAECBAgQIECAAAECBAgQIECgZwUEQHv20eoYAQIECBAgQIAAAQIECBAgQIAAAQICoN4BAgQIECBAgAABAgQIECBAgAABAgR6VkAAtGcfrY4RIECAAAECBAgQIECAAAECBAgQICAA6h0gQIAAAQIECBAgQIAAAQIECBAgQKBnBQRAe/bR6hgBAgQIECBAgAABAgQIECBAgAABAgKg3gECBAgQIECAAAECBAgQIECAAAECBHpWQAC0Zx+tjhEgQIAAAQIECBAgQIAAAQIECBAgIADqHSBAgAABAgQIECBAgAABAgQIECBAoGcFBEB79tHqGAECBAgQIECAAAECBAgQIECAAAECAqDeAQIECBAgQIAAAQIECBAgQIAAAQIEelZAALRnH62OESBAgAABAgQIECBAgAABAgQIECAgAOodIECAAAECBAgQIECAAAECBAgQIECgZwUEQHv20eoYAQIECBAgQIAAAQIECBAgQIAAAQICoN4BAgQIECBAgAABAgQIECBAgAABAgR6VkAAtGcfrY4RIECAAAECBAgQIECAAAECBAgQIDAawcgROOuss9KMGTNqHd58883TpEmTaufz4+CPf/xjevLJJ2tfvfHGG6fVV1+9du6AwEgR6MTfz163v/fee9Oll15a181tt902Lb/88nV5rZzMmTMnnXLKKamvr6+u+FprrZU22GCDurxWT84+++z0zDPP1IqvsMIKaZtttqmd33zzzemGG26oncfBHnvskcaMGVOXN7dP7r777nTOOeekSy65JD388MPpscceS0888URaYokl0jLLLJP9TJkyJe24445ps802S6NH+3895vYz0T4BAgQIECBAgAABAvUCoyr/sVb/X2v11531kEAEFu+6665aj371q1+lvfbaq3Y+Pw7WX3/9uv+AP/7449NHPvKR+XErvpPAfBXoxN/P+QoyD778xhtvTOuuu27dN33rW99K++23X11eKyeXXXZZij8qFVMELP/6178Wswc8f+GFF7IA4ksvvVQr+4UvfCEdfvjhtfPDDjssfelLX6qdx8HTTz+d1avLnEsnp59+evrqV7+abr311pa/YcKECWnPPfdMhxxySFpqqaVarqcgAQIECBAgQIAAAQIEhiJgCvxQ9NQlQIAAga4VmDp1ajY6Md+B4ojQ/LX+jv/0pz81vRztPfvss02v9Zd5+eWXp3zwM8r+z//8T39V5tm1+EPaVlttld7xjne0FfyMG4wA7Q9/+MO0xhprZJ/z7KZ9EQECBAgQIECAAAECI1pAAHREP36dJ0CAwMgVGDVqVIop7/k03AHQF198Mf3lL3/Jf0VLxxdffHFdufHjxzcdYVpXaB6cPPDAA5lZ8f7a/eqnnnoq7bvvvunggw9ut6ryBAgQIECAAAECBAgQaFtAALRtMhUIECBAoFcE3vjGN9Z1JdavvPPOO+vyBjr517/+la699tpasQUWqP8/rWWjQ2sVmhz87W9/q8vdeuut00ILLVSXN69PYiTr9ttvn6ZPn97w1VtuuWU2ojPWLb3uuuuytUBvv/32dP7556cf//jH6f3vf3/TtT8PPfTQdOyxxza0J4MAAQIECBAgQIAAAQLDKWAnguHU7PC2PvShD2UbU1RvMzbnkAgQIDCSBf77v/+7ofsxCrSdzdgiyPfyyy/X2nnXu96VTj755Np5uwHQGDV6xRVX1OrHQSdMfz/hhBMapry//vWvT8ccc0zaZJNN6u43TpZbbrlsqnscf/CDH0xf/vKX01e+8pX0y1/+MrJqKdZc3W233dKrX/3qWp4DAgQIECBAgAABAgQIDKeAAOhwanZ4W/vvv3+H36HbI0CAwLwVeO1rX5tWW221ug3iYjfzGLHYaioGOD/xiU+kP//5z9lu6NHGtGnT0m233ZYmT57cUpNXXXVVmjlzZl3Z+R0AjaDsd77znbp7mjRpUvrjH/+Yll566br8spMo/4tf/CJFW6eeemqt2KxZs7K2jzrqqFqeAwIECBAgQIAAAQIECAynQP08veFsWVsECBAgQKALBIrT4NtZB7Svry+dd955tV4utthiacMNN0zbbbddLS8OikHSuouFk+L6miuttFLLwdNCU8N2GkHZhx56qK694447ruXgZ77iT37yk7Tmmmvms1KMLi1u+lRXwAkBAgQIECBAgAABAgSGICAAOgQ8VQkQIECg+wWKAdBYu/KJJ55oqWOx3mWsG1pN//Vf/5WtdVkcsXnuuedWiwz4WVz/sxhMHbCBuVCguC7q6NGj0xZbbDGob4oNnT7wgQ/U1Z0xY0a644476vKcECBAgAABAgQIECBAYLgETIEfLkntECgIxGimCBrceuut6ZFHHklLLbVUtibeG97whhQBgG5PN910U7r33nvTgw8+mAV8Yr2/9dZbL6244opd2bXZs2dnG9ncd999WUBrmWWWyfqy/vrrp7Fjx/bbp9gcJjbBiboxdXmNNdZIU6ZMScsuu2y/9dq5+Nxzz6XLLrssxS7cL7zwQrZeYqxT+brXva6dZgYsG+3Hs3300UdTBKUmTpyYvbcbbbRRWnTRRQes32qBCBpGoC8CjdGPddddN/sdabX+cJbbZpttUmxcVF3HM0Z1xijQnXfeecCvKY7srAYriwHQGNX5/PPPp3HjxvXbZryH8ZzzKTYemt+puPHRkksuOWBf+rvncDrggAPqitxyyy1p7bXXrstzQoAAAQIECBAgQIAAgeEQEAAdDsUuaSNG60TAqppi44q3vvWt1dO6z6lTp6annnqqlhebVkSQoNUUa+rl17A7/fTT06abbtpq9X7L3X///VlgInZerqZRo0alb37zmyk2H4n73mCDDeqmU8Z/aMe6fO2mN73pTVkwqFrv8MMPT+95z3uqpw2fsZbdd7/73XTSSSdlawpGMKOYYifn2DH54x//eNpll12KlzvifNttt62NxlpkkUVqu2JH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aHFt6WI7zgkQIECAAAECBAgQIDA3BARA54Zqh7YZa19Omzatdnex9t8ee+xROx9JB7HJS2zUUU277LJLtvFL9dwnAQIECBAgQIAAAQIECBAgQIBAbwiYAt8bz7GlXvz73/+uK9ffbr91BXvw5Gc/+1ldrz74wQ/WnTshQIAAAQIECBAgQIAAAQIECBDoDQEB0N54ji314plnnqkrF1PYR2KKKfyxiUc1xVTi4nqi1Ws+CRAgQIAAAQIECBAgQIAAAQIEultAALS7n1/Ldx877RZ3SJ84cWLL9XulYKzNGZu9xHp11RS7bY+EzVyq/fVJgAABAgQIECBAgAABAgQIEBhJAs239R5JAiOkr8cdd1xdT5dYYolsE6C6zB47ue2229LTTz+dbbwxY8aMdNVVV6VjjjkmXXzxxbWeLr744umjH/1o7dwBAQIECBAgQIAAAQIECBAgQIBAbwkIgPbW86z15qijjkq/+93vsp2bb7/99mx33trFysHuu++exowZk8/queNLL700DbS258EHH5wiGNyJ6Re/+EW2i/y8urewWmmllebV1/keAg0C3vkGEhkECBAgQIAAAQIECBAgMAwCAqDDgNiJTVxwwQXpiiuuyH6K9zdq1Kj0/ve/v5jdc+cDBfM222yz9NnPfrZj+33yySen888/f57d3/bbby8AOs+0fVEzAe98MxV5BAgQIECAAAECBAgQIDBUAWuADlWwA+v39fWlK6+8sumdjR07Np1yyilpiy22aHq9lzJXXnnl0u5ssskm6fe//31aYAG/AqVILhAgQIAAAQIECBAgQIAAAQIEekDACNAeeIjFLjz++ONpvfXWS/fcc0968MEHU4z4nDx5clp//fXTxz72sbTpppsWq/TkeYwA3XXXXdMNN9yQpk2blkaPHp1WX331tM8++6QPfehDaZFFFunofr/97W/PnuO8uskVVlhhXn2V7yHQVMA735RFJgECBAgQIECAAAECBAgMUWBUZbRg3xDbUL2DBWbNmpVefvnljg/2zW3C2ARp3Lhxdnuf29DaJ0CAAAECBAgQIECAAAECBAh0mIAAaIc9ELdDgAABAgQIECBAgAABAgQIECBAgMDwCVgAcfgstUSAAAECBAgQIECAAAECBAgQIECAQIcJCIB22ANxOwQIECBAgAABAgQIECBAgAABAgQIDJ+AAOjwWWqJAAECBAgQIECAAAECBAgQIECAAIEOExAA7bAH4nYIECBAgAABAgQIECBAgAABAgQIEBg+AQHQ4bPUEgECBAgQIECAAAECBAgQIECAAAECHSYgANphD8TtECBAgAABAgQIECBAgAABAgQIECAwfAICoMNnqSUCBAgQIECAAAECBAgQIECAAAECBDpMQAC0wx6I2yFAgAABAgQIECBAgAABAgQIECBAYPgEBECHz1JLBAgQIECAAAECBAgQIECAAAECBAh0mIAAaIc9ELdDgAABAgQIECBAgAABAgQIECBAgMDwCQiADp+llggQIECAAAECBAgQIECAAAECBAgQ6DABAdAOeyBuhwABAgQIECBAgAABAgQIECBAgACB4RMQAB0+Sy0RIECAAAECBAgQIECAAAECBAgQINBhAgKgHfZA3A4BAgQIECBAgAABAgQIECBAgAABAsMnIAA6fJZaIkCAAAECBAgQIECAAAECBAgQIECgwwQEQDvsgbgdAgQIECBAgAABAgQIECBAgAABAgSGT0AAdPgstUSAAAECBAgQIECAAAECBAgQIECAQIcJjO6w+3E7wyRwxhlnpF/+8pe11j760Y+m7bffvnbugAABAgQIECBAgMBIFJg2bVo677zzGro+ZsyY9IEPfKAhXwYBAgQIECDQ/QICoN3/DJv24I477khnnXVW7dqb3vSm2rEDAgQIECBAgAABAiNV4K677krf+c53Gro/fvx4AdAGFRkECBAgQKA3BEyB743nqBcECBAgQIAAAQIECBAgQIAAAQIECDQREABtgiKLAAECBAgQIECAAAECBAgQIECAAIHeEBAA7Y3nqBcECBAgQIAAAQIECBAgQIAAAQIECDQREABtgiKLAAECBAgQIECAAAECBAgQIECAAIHeEBAA7Y3nqBcECBAgQIAAAQIECBAgQIAAAQIECDQREABtgiKLAAECBAgQIECAAAECBAgQIECAAIHeEBAA7Y3nqBcECBAgQIAAAQIECBAgQIAAAQIECDQREABtgiKLAAECBAgQIECAAAECBAgQIECAAIHeEBAA7Y3nqBcECBAgQIAAAQIECBAgQIAAAQIECDQREABtgiKLAAECBAgQIECAAAECBAgQIECAAIHeEBAA7Y3nqBcECBAgQIAAAQIECBAgQIAAAQIECDQREABtgiKLAAECBAgQIECAAAECBAgQIECAAIHeEBAA7Y3nqBcECBAgQIAAAQIECBAgQIAAAQIECDQREABtgiKLAAECBAgQIECAAAECBAgQIECAAIHeEBAA7Y3nqBcECBAgQIAAAQIECBAgQIAAAQIECDQREABtgiKLAAECBAgQIECAAAECBAgQIECAAIHeEBAA7Y3nqBcECBAgQIAAAQIECBAgQIAAAQIECDQREABtgiKLAAECBAgQIECAAAECBAgQIECAAIHeEBAA7Y3nqBcECBAgQIAAAQIECBAgQIAAAQIECDQREABtgiKLAAECBAgQIECAAAECBAgQIECAAIHeEBjdG93QCwIECBAgQIAAAQIECAwssPTSS6dtt922oeDYsWMb8mQQIECAAAECvSEgANobz1EvCBAgQIAAAQIECBBoQWDddddNxx13XAslFSFAgAABAgR6RcAU+F55kvpBgAABAgQIECBAgAABAgQIECBAgECDgABoA4kMAgQIECBAgAABAgQIECBAgAABAgR6RUAAtFeepH4QIECAAAECBAgQIECAAAECBAgQINAgIADaQCKDAAECBAgQIECAAAECBAgQIECAAIFeERAA7ZUnqR8ECBAgQIAAAQIECBAgQIAAAQIECDQI2AW+gUQGAQIECBAgQIAAAQIECBAgQGDwAn/605/SFVdcUdrAwgsvnA488MDS6y4QIDC8AgKgw+upNQIECBAgQIAAAQIECBAgQGCEC5x77rnp6KOPLlVYbLHFBEBLdVwgMPwCpsAPv6kWCRAgQIAAAQIECBAgQIAAAQIECBDoEAEjQDvkQbgNAgQIECBAgAABAgQIECBAoDcE3v/+96fNNtss68yhhx6abr755uz42GOPTRMnTkxjxozpjY7qBYEuERAA7ZIH5TYJECBAgAABAgQIECBAgACB7hBYf/31U/xEOvHEE2sB0J133jm95jWv6Y5OuEsCPSRgCnwPPUxdIUCAAAECBAgQIECAAAECBAgQIECgXkAAtN7DGQECBAgQIECAAAECBAgQIECAAAECPSQgANpDD1NXCBAgQIAAAQIECBAgQIAAAQIECBCoFxAArfdwRoAAAQIECBAgQIAAAQIECBAgQIBADwkIgPbQw9QVAgQIECBAgAABAgQIECBAgAABAgTqBQRA6z2cESBAgAABAgQIECBAgAABAgQIECDQQwICoD30MHWFAAECBAgQIECAAAECBAgQIECAAIF6AQHQeg9nBAgQIECAAAECBAgQIECAAAECBAj0kIAAaA89TF0hQIAAAQIECBAgQIAAAQIECBAgQKBeQAC03sMZAQIECBAgQIAAAQIECBAgQIAAAQI9JCAA2kMPU1cIECBAgAABAgQIECBAgAABAgQIEKgXEACt93BGgAABAgQIECBAgAABAgQIECBAgEAPCQiA9tDD1BUCBAgQIECAAAECBAgQIECAAAECBOoFRtefOiNAgAABAgQIECBAgEDvCjz55JPpn//8Z0MHF1xwwbTJJps05MsgQIAAAQIEul9AALT7n6EeECBAgAABAgQIECDQosB1112X9t1334bS48ePT3FNIkCAAAECBHpPwBT43numekSAAAECBAgQIECAAAECBAgQIECAwH8EBEC9CgQIECBAgAABAgQIECBAgAABAgQI9KyAAGjPPlodI0CAAAECBAgQIECAAAECBAgQIEBAANQ7QIAAAQIECBAgQIAAAQIECBAgQIBAzwoIgPbso9UxAgQIECBAgAABAgQIECBAgAABAgQEQL0DBAgQIECAAAECBAgQIECAAAECBAj0rIAAaM8+Wh0jQIAAAQIECBAgQIAAAQIECBAgQEAA1DtAgAABAgQIECBAgAABAgQIECBAgEDPCgiA9uyj1TECBAgQIECAAAECBAgQIECAAAECBARAvQMECBAgQIAAAQIECBAgQIAAAQIECPSsgABozz5aHSNAgAABAgQIECBAgAABAgQIECBAQADUO0CAAAECBAgQIECAAAECBAgQIECAQM8KCID27KPVMQIECBAgQIAAAQIECBAgQIAAAQIEBEC9AwQIECBAgAABAgQIECBAgAABAgQI9KyAAGjPPlodI0CAAAECBAgQIECAAAECBAgQIEBAANQ7QIAAAQIECBAgQIAAAQIECBAgQIBAzwoIgPbso9UxAgQIECBAgAABAgQIECBAgAABAgRGI2hP4Lnnnkv77rtvevLJJ9MWW2yRPv/5zw/YwJw5c9K5556bLrjggjR9+vT0/PPPpylTpqSpU6emTTfdNE2ePHnANhQgQIAAAQIECBAgQIAAAQIECBAgQKB9AQHQNs2++93vprvvvjur9eyzzw5Y+/HHH0/77bdfuvfee+vKXn311Sl+TjrppHTggQem7bffvu66EwIECBAgQIAAAQIECBAgQIAAAQIEhi4gANqG4V//+td03nnntVwjRovGCNFq8HO11VZLm2++eVp66aXTDTfckC6++OL04osvpkMPPTRF2d12263lthUkQIAAAQIECBAgQIAAAQIECBAgQGBgAQHQgY2yEo899lj61re+1WLp/yv2s5/9rDZadJtttkkHH3xwGjNmTHZxl112STfeeGPaf//9s+Dn0Ucfnbbccsu01FJLtfUdChMgQIAAAQIECBAgQIAAAQIECBAgUC5gE6Rym9qVvr6+9I1vfCPNmDEjLbLIIrX8/g6eeeaZdPbZZ2dFlllmmbrgZ7XeOuusk+XHeawTWi1fve6TAAECBAgQIECAAAECBAgQIECAAIGhCQiAtuB36qmnpmuvvTaNGjUqfeITn6jViPOydOGFF6YXXnghu7zrrrvWRn4Wy8eU+BVXXDHLjgDo7Nmzi0WcEyBAgAABAgQIECBAgAABAgQIECAwSAFT4AeAu+uuu9KPfvSjrNSee+6Z1l133QFq/N/lm2++uVZuo402qh03O3j961+f7Q7/xBNPpOuuuy4NVL5ZG/IIECBAgAABAgQIEBhYYMKECWmDDTZoKDh27NiGPBkECBAgQIBAbwgIgPbzHGODoq997WvppZdeSrGB0d57750efvjhfmq8cumWW27JTmKU6KqrrvrKhSZH0XY13XPPPQKgVQyfBAgQIECAAAECBIZZIAYf/OY3vxnmVjVHgAABAgQIdLKAKfD9PJ3jjz8+28E9Ni7Kb2DUT5XapQcffDA7jh3fR4/uP8687LLL1urdf//9tWMHBAgQIECAAAECBAgQIECAAAECBAgMTaD/yNzQ2u7q2ldffXU6/fTTsz58+MMfTqusskrL/Ym1P19++eWs/JJLLjlgvZiGU02xeVIr6aKLLkqxzmhZuv7661NsvvTss8+m559/vqyYfAIECBAgQIAAAQIECBAgQIAAAQI9LSAA2uTxRhDysMMOy66sv/76aY899mhSqjzrueeeq11ceOGFa8dlB/kyM2fOLCtWl3/TTTelU045pS6veBKB1Zi+LwBalHFOgAABAgQIECBAgAABAgQIECAwUgRMgW/ypL/5zW+m2JBo/Pjx6aCDDsp2f29SrDQrH3BcaKGFSstVL+TLzJo1q5rtkwABAgQIECBAgAABAgQIECBAgACBIQoIgBYA//jHP6a//e1vWe6nP/3plF+fs1C09DS/5uecOXNKy1UvzJ49u3qY8sHQWqYDAgQIECBAgAABAgQIECBAgAABAgQGJWAKfI7toYceSt/73veynK233jrtsMMOuautHy6yyCK1wrGT/EApXyZGnbaSdt5557TOOuuUFj3ttNPSz3/+82wKfGkhFwgQIECAAAECBAgQIECAAAECBAj0uIAA6H8ecIzU/PrXv55iA6PFF1887bPPPmnGjBkNjz+/vmesr1kts+CCC6Zx48Zl5aufcZIv39DYfzLyU+ZbDYCuvPLKKX7K0mWXXWbtzzIc+QQIECBAgAABAgQIECBAgAABAiNGQAD0P4/63//+d7r55puzs9gE6Z3vfOeAL8HFF1+c4ifSeuutl4455pjsODY1mjhxYraO6GOPPZbl9fc/jz76aO3yq171qtqxAwIECBAgQIAAAQIECBAgQIAAAQIEhiZgDdCh+ZXWnjRpUnYtRnc+9dRTpeXiwgMPPFC7PmXKlNqxAwIECBAgQIAAAQIECBAgQIAAAQIEhiZgBOh//MaOHZve+973DqgZI0XPOuusrNxrX/vatOWWW2bHyy+/fF3dtdZaK11zzTVZ3j/+8Y8Ua4qWpRtvvLF2KepJBAgQIECAAAECBAgQIECAAAECBAgMj4AA6H8cY93OD33oQwOq3n///bUA6KqrrlpaJwKev/jFL7L2zjvvvNIAaEx/v/7667Nya665ZjIFfsBHoAABAgQIECBAgAABAgQIECBAgACBlgVMgW+Zqr2Cq6++eoqAZqRLLrkkRRC0mGbNmpWOOOKIFBswRdprr72KRZwTIECAAAECBAgQIECAAAECBAgQIDAEAQHQIeANVPUzn/lMrchhhx2WTjrppPTQQw+l2bNnp5j2vt9++9WmycfU96222qpW3gEBAgQIECBAgAABAgQIECBAgAABAkMXMAV+6IalLay99trpkEMOSYcffniaOXNmOvHEE7OfBRdcsDbqMyqvsMIK6cgjj0wLLCAeXYrpAgECBAgQIECAAAECBAgQIECAAIFBCIi4DQKtnSrbbrttOuGEE7Lp8NUAZ3XK++jRo9Pb3/727PqECRPaaVZZAgQIECBAgAABAgQIECBAgAABAgRaEDACtAWkfJGVVlop/f3vf89nDXi8yiqrZCM/YxTonXfemWLjo9g1PtpadNFFB6yvAAECBAgQIECAAAECBAgQIECAAAECgxMQAB2c26BqjR07Nk2dOjX7GVQDKhEgQIAAAQIECBAgQIAAAQIECBAg0JaAKfBtcSlMgAABAgQIECBAgAABAgQIECBAgEA3CQiAdtPTcq8ECBAgQIAAAQIECBAgQIAAAQIECLQlIADaFpfCBAgQIECAAAECBAgQIECAAAECBAh0k4AAaDc9LfdKgAABAgQIECBAgAABAgQIECBAgEBbAgKgbXEpTIAAAQIECBAgQIAAAQIECBAgQIBANwkIgHbT03KvBAgQIECAAAECBAgQIECAAAECBAi0JTC6rdIKEyBAgAABAgQIECBAoIsFZsyYkaZPn97QgwUWWCBNnjy5IV8GAQIECBAg0P0CAqDd/wz1gAABAgQIECBAgACBFgWuvPLKtO+++zaUHj9+fLruuusa8mUQIECAAAEC3S9gCnz3P0M9IECAAAECBAgQIECAAAECBAgQIECgREAAtARGNgECBAgQIECAAAECBAgQIECAAAEC3S8gANr9z1APCBAgQIAAAQIECBAgQIAAAQIECBAoERAALYGRTYAAAQIECBAgQIAAAQIECBAgQIBA9wsIgHb/M9QDAgQIECBAgAABAgQIECBAgAABAgRKBARAS2BkEyBAgAABAgQIECBAgAABAgQIECDQ/QICoN3/DPWAAAECBAgQIECAAAECBAgQIECAAIESAQHQEhjZBAgQIECAAAECBAgQIECAAAECBAh0v4AAaPc/Qz0gQIAAAQIECBAgQIAAAQIECBAgQKBEQAC0BEY2AQIECBAgQIAAAQIECBAgQIAAAQLdLyAA2v3PUA8IECBAgAABAgQIECBAgAABAgQIECgREAAtgZFNgAABAgQIECBAgAABAgQIECBAgED3CwiAdv8z1AMCBAgQIECAAAECBAgQIECAAAECBEoEBEBLYGQTIECAAAECBAgQIECAAAECBAgQIND9AgKg3f8M9YAAAQIECBAgQIAAAQIECBAgQIAAgRIBAdASGNkECBAgQIAAAQIECBAgQIAAAQIECHS/gABo9z9DPSBAgAABAgQIECBAgAABAgQIECBAoERAALQERjYBAgQIECBAgAABAgQIECBAgAABAt0vIADa/c9QDwgQIECAAAECBAgQIECAAAECBAgQKBEQAC2BkU2AAAECBAgQIECAAAECBAgQIECAQPcLCIB2/zPUAwIECBAgQIAAAQIECBAgQIAAAQIESgQEQEtgZBMgQIAAAQIECBAgQIAAAQIECBAg0P0CAqDd/wz1gAABAgQIECBAgAABAgQIECBAgACBEoHRJfmyCRAgQIAAAQIECBAg0HMC48aNS5MmTWro1yKLLNKQJ4MAAQIECBDoDQEB0N54jnpBgAABAgQIECBAgEALAptttln605/+1EJJRQgQIECAAIFeETAFvleepH4QIECAAAECBAgQIECAAAECBAgQINAgIADaQCKDAAECBAgQIECAAAECBAgQIECAAIFeERAA7ZUnqR8ECBAgQIAAAQIECBAgQIAAAQIECDQICIA2kMggQIAAAQIECBAgQIAAAQIECBAgQKBXBARAe+VJ6gcBAgQIECBAgAABAgQIECBAgAABAg0CAqANJDIIECBAgAABAgQIECBAgAABAgQIEOgVAQHQXnmS+kGAAAECBAgQIECAAAECBAgQIECAQIOAAGgDiQwCBAgQIECAAAECBAgQIECAAAECBHpFQAC0V56kfhAgQIAAAQIECBAgQIAAAQIECBAg0CAgANpAIoMAAQIECBAgQICkT0K5AABAAElEQVQAAQIECBAgQIAAgV4READtlSepHwQIECBAgAABAgQIECBAgAABAgQINAgIgDaQyCBAgAABAgQIECBAgAABAgQIECBAoFcEBEB75UnqBwECBAgQIECAAAECBAgQIECAAAECDQICoA0kMggQIECAAAECBAgQIECAAAECBAgQ6BUBAdBeeZL6QYAAAQIECBAgQIAAAQIECBAgQIBAg4AAaAOJDAIECBAgQIAAAQIECBAgQIAAAQIEekVAALRXnqR+ECBAgAABAgQIECBAgAABAgQIECDQICAA2kAigwABAgQIECBAgAABAgQIECBAgACBXhEQAO2VJ6kfBAgQIECAAAECBAgQIECAAAECBAg0CAiANpDIIECAAAECBAgQIECAAAECBAgQIECgVwQEQHvlSeoHAQIECBAgQIAAAQIECBAgQIAAAQINAgKgDSQyCBAgQIAAAQIECBAgQIAAAQIECBDoFQEB0F55kvpBgAABAgQIECBAgAABAgQIECBAgECDwOiGHBkECBAgQIAAAQIECBDoUYGZM2emp556qqF3o0aNSsstt1xDvgwCBAgQIECg+wUEQLv/GeoBAQIECBAgQIAAAQItClxyySVp3333bSg9fvz4dN111zXkyyBAgAABAgS6X8AU+O5/hnpAgAABAgQIECBAgAABAgQIECBAgECJgABoCYxsAgQIECBAgAABAgQIECBAgAABAgS6X0AAtPufoR4QIECAAAECBAgQIECAAAECBAgQIFAiIABaAiObAAECBAgQIECAAAECBAgQIECAAIHuFxAA7f5nqAcECBAgQIAAAQIECBAgQIAAAQIECJQICICWwMgmQIAAAQIECBAgQIAAAQIECBAgQKD7BQRAu/8Z6gEBAgQIECBAgAABAgQIECBAgAABAiUCAqAlMLIJECBAgAABAgQIECBAgAABAgQIEOh+AQHQ7n+GekCAAAECBAgQIECAAAECBAgQIECAQImAAGgJjGwCBAgQIECAAAECBAgQIECAAAECBLpfQAC0+5+hHhAgQIAAAQIECBAgQIAAAQIECBAgUCIgAFoCI5sAAQIECBAgQIAAAQIECBAgQIAAge4XEADt/meoBwQIECBAgAABAgQIECBAgAABAgQIlAgIgJbAyCZAgAABAgQIECBAgAABAgQIECBAoPsFBEC7/xnqAQECBAgQIECAAAECBAgQIECAAAECJQICoCUwsgkQIECAAAECBAgQIECAAAECBAgQ6H4BAdDuf4Z6QIAAAQIECBAgQIAAAQIECBAgQIBAiYAAaAmMbAIECBAgQIAAAQIECBAgQIAAAQIEul9AALT7n6EeECBAgAABAgQIECBAgAABAgQIECBQIiAAWgIjmwABAgQIECBAgAABAgQIECBAgACB7hcQAO3+Z6gHBAgQIECAAAECBAgQIECAAAECBAiUCAiAlsDIJkCAAAECBAgQIECAAAECBAgQIECg+wUEQLv/GeoBAQIECBAgQIAAAQIECBAgQIAAAQIlAqNL8mUTIECAAAECBAgQIECg5wTGjBmTJkyY0NCv8ePHN+TJIECAAAECBHpDQAC0N56jXhAgQIAAAQIECBAg0ILAVlttla688soWSipCgAABAgQI9IqAKfC98iT1gwABAgQIECBAgAABAgQIECBAgACBBgEB0AYSGQQIECBAgAABAgQIECBAgAABAgQI9IqAAGivPEn9IECAAAECBAgQIECAAAECBAgQIECgQUAAtIFEBgECBAgQIECAAAECBAgQIECAAAECvSIgANorT1I/CBAgQIAAAQIECBAgQIAAAQIECBBoEBAAbSCRQYAAAQIECBAgQIAAAQIECBAgQIBArwgIgPbKk9QPAgQIECBAgAABAgQIECBAgAABAgQaBARAG0hkECBAgAABAgQIECBAgAABAgQIECDQKwICoL3yJPWDAAECBAgQIECAAAECBAgQIECAAIEGAQHQBhIZBAgQIECAAAECBAgQIECAAAECBAj0ioAAaK88Sf0gQIAAAQIECBAgQIAAAQIECBAgQKBBQAC0gUQGAQIECBAgQIAAAQIECBAgQIAAAQK9IiAA2itPUj8IECBAgAABAgQIECBAgAABAgQIEGgQEABtIJFBgAABAgQIECBAgAABAgQIECBAgECvCAiA9sqT1A8CBAgQIECAAAECBAgQIECAAAECBBoEBEAbSGQQIECAAAECBAgQIECAAAECBAgQINArAgKgvfIk9YMAAQIECBAgQIAAAQIECBAgQIAAgQYBAdAGEhkECBAgQIAAAQIECBAgQIAAAQIECPSKgABorzxJ/SBAgAABAgQIECBAgAABAgQIECBAoEFAALSBRAYBAgQIECBAgAABAgQIECBAgAABAr0iIADaK09SPwgQIECAAAECBAgQIECAAAECBAgQaBAQAG0gkUGAAAECBAgQIECAAAECBAgQIECAQK8ICID2ypPUDwIECBAgQIAAAQIECBAgQIAAAQIEGgRGN+TIIECAAAECBAgQIECAQI8KzJkzJ7344osNvRs1alQaO3ZsQ74MAgQIECBAoPsFBEC7/xnqAQECBAgQIECAAAECLQpceOGFad99920oPX78+HTdddc15MsgQIAAAQIEul/AFPjuf4Z6QIAAAQIECBAgQIAAAQIECBAgQIBAiYAAaAmMbAIECBAgQIAAAQIECBAgQIAAAQIEul9AALT7n6EeECBAgAABAgQIECBAgAABAgQIECBQIiAAWgIjmwABAgQIECBAgAABAgQIECBAgACB7hcQAO3+Z6gHBAgQIECAAAECBAgQIECAAAECBAiUCAiAlsDIJkCAAAECBAgQIECAAAECBAgQIECg+wUEQLv/GeoBAQIECBAgQIAAAQIECBAgQIAAAQIlAgKgJTCyCRAgQIAAAQIECBAgQIAAAQIECBDofoHR3d+FudeDp556Kp188snp1ltvTffff3968cUX07LLLps23njjtPPOO6eVVlqppS+fM2dOOvfcc9MFF1yQpk+fnp5//vk0ZcqUNHXq1LTpppumyZMnt9SOQgQIECBAgAABAgQIECBAgAABAgQItCcgAFridfbZZ6djjz02C1bmi0ybNi3Fz1lnnZUOPfTQLBiav148fvzxx9N+++2X7r333rpLV199dYqfk046KR144IFp++23r7vuhAABAgQIECBAgAABAgQIECBAgACBoQsIgDYxvOyyy9JRRx1Vu7Ltttum9dZbLy200ELpn//8Z/rDH/6QZs6cmQ444IB00EEHpe22265WNn/w3HPPpc9//vO14Odqq62WNt9887T00kunG264IV188cXZqNIIpEbZ3XbbLV/dMQECBAgQIECAAAECBAgQIECAAAECQxQQAC0APvPMM+lrX/taljtq1Kh0+OGHZ0HLarE3v/nN2fT3j33sY2nWrFnpsMMOS+uss042Nb5apvr5s5/9LN19993Z6TbbbJMOPvjgNGbMmOx8l112STfeeGPaf//9s+Dn0Ucfnbbccsu01FJLVav7JECAAAECBAgQIECAAAECBAgQIEBgiAI2QSoA/u1vf8sCkpG9++671wU/q0XXWGON9J73vCc7ra7vWb1W/YxAakyjj7TMMsvUBT+rZSJwGkHRSNFOtXz1uk8CBAgQIECAAAECBAgQIECAAAECBIYmIABa8IsAaDXtsMMO1cOGzwheVlOsCVpMF154YXrhhRey7F133bU28rNYLqbEr7jiill2BEBnz55dLOKcAAECBAgQIECAAAECBAgQIECAAIFBCpgCX4CLKe/33Xdftm5njPQsS7GTezVNnDixelj7vPnmm2vHG220Ue242cHrX//6bHf4J554Il133XVpoPLN2pBHgAABAgQIECBAgAABAgQIECBAgECjgBGgBZNYozM2K4qNjWIN0LIUO7hX06abblo9rH3ecsst2XG0seqqq9bymx3E91XTPffcUz30SYAAAQIECBAgQIAAAQIECBAgQIDAEAUEQAcBGLvAn3HGGVnN2LQodogvpgcffDDLih3fR4/uf6DtsssuW6t+//33144dECBAgAABAgQIECBAgAABAgQIECAwNIH+I3NDa7tnasfU9NixPYKaf/3rX9Odd96Z9W3y5MnZLvHFAGes/fnyyy9nZZZccskBHSZMmFArE5sntZIuuuiiFOuMlqXrr78+23zp2WefTfnp+mXl5RMgQIAAAQIECBAgQIAAAQIECBDoRQEB0Bae6qWXXpqOOuqoupKxs3usFxojQIvpueeeq2UtvPDCteOyg3yZmTNnlhWry7/pppvSKaecUpdXPInA6ksvvSQAWoRxToAAAQIECBAgQIAAAQIECBAgMGIETIFv4VE//PDD2S7uMZ29mh577LG0xx57pOOPPz719fVVs7PP/IjLhRZaqO5as5N8mVmzZjUrIo8AAQIECBAgQIAAAQIECBAgQIAAgUEIGAHaAtqee+6ZPvjBD6YFF1wwG00Z0+CPPfbYFNPLTz755PT000+nL3zhC7WW8lPi58yZU8svO5g9e3btUj4YWst0QIAAAQIECBAgQIAAAQIECBAgQIDAoAQEQFtgW2yxxWqlxo0bl3baaae01lprpb333jtF8PKcc85Ju+yyS5oyZUpWbpFFFqmVf/HFF2vHZQf5MuPHjy8rVpe/8847p3XWWacuL39y2mmnpZNOOinl285fd0yAAAECBAgQIECAAAECBAgQIEBgJAgIgA7yKa+yyirZFPgYARopdoavBkAjSFpN+fVAq3nFz/yU+VYDoCuvvHKKn7J02WWXpVa+u6y+fAIECBAgQIAAAQIECBAgQIAAAQK9IGAN0CE8xfXWW69W+4EHHqgdx6ZGEydOzM5jrdCB0qOPPlor8qpXvap27IAAAQIECBAgQIAAAQIECBAgQIAAgaEJGAGa83v55ZfTI488kh566KEUxxtttFHuauNhPlhZ3L190qRJ6YknnsjWDH3qqafSkksu2djAf3LywdPqKNLSwi4QIECAAAECBAgQIDBogTe+8Y3p9ttvH3R9FQkQIECAAIHuExAAzT2zl156Kb373e9O8Rnrfp599tkpv6FRrmh2eO+999ayVltttdpxHMQaoddcc02W949//CNtvfXW2XGz/7nxxhtr2VFPIkCAAAECBAgQIECAAAECBAgQIEBgeARMgc85xtT1ddddN8uZMWNGuuqqq3JXGw///Oc/1zLXXHPN2nEc5AOe5513Xt21/ElMf7/++uuzrGgjP6o0X84xAQIECBAgQIAAAQIECBAgQIAAAQLtCwiAFsy22mqrWs53v/vd0o2EzjzzzHTllVdmZZdZZpm0zTbb1OrFweqrr56qQdFLLrkkNQuCzpo1Kx1xxBFpzpw5Wd299tqrrg0nBAgQIECAAAECBAgQIECAAAECBAgMTUAAtOC3yy67pI033jjLjfVA99lnnyzQGWt8zp49O919993pG9/4Rvr2t7+dlRk1alT60pe+lE2ZLzSVPvOZz9SyDjvssHTSSSdl64tGOzHtfb/99qtNk4+p7/nga62iAwIECBAgQIAAAQIECBAgQIAAAQIEBi1gDdACXTWg+elPfzoLdk6bNi197nOfS5G/4IILZkHQapVx48alT37yk2n99devZtV9rr322umQQw5Jhx9+eIoA6oknnpj9RDvVUZ9RYYUVVkhHHnlkWmAB8eg6QCcECBAgQIAAAQIECBAgQIAAAQIEhigg4tYEcMKECVmg8hOf+EQaP358VqKvr68W/IwAZozW/NWvfpXe/OY3N2nhlaxtt902nXDCCdl0+GqAsxr8jA2W3v72t2fX4zslAgQIECBAgAABAgQIECBAgAABAgSGV8AI0BLPCE6+4x3vSG9729uyaev33XdfijU7J02alFZcccV+d4cvNrnKKqtkAdUYBXrnnXem2Pho+eWXTyuttFJadNFFi8WdEyBAgAABAgQIECBAgAABAgQIECAwTAICoANAxqjN17zmNdnPAEUHvDx27Ng0derU7GfAwgoQIECAAAECBAgQIECAAAECBAgQIDBkAVPgh0yoAQIECBAgQIAAAQIECBAgQIAAAQIEOlVAALRTn4z7IkCAAAECBAgQIECAAAECBAgQIEBgyAICoEMm1AABAgQIECBAgAABAgQIECBAgAABAp0qIADaqU/GfREgQIAAAQIECBAgQIAAAQIECBAgMGQBAdAhE2qAAAECBAgQIECAAAECBAgQIECAAIFOFRAA7dQn474IECBAgAABAgQIECBAgAABAgQIEBiygADokAk1QIAAAQIECBAgQIAAAQIECBAgQIBApwoIgHbqk3FfBAgQIECAAAECBAgQIECAAAECBAgMWUAAdMiEGiBAgAABAgQIECBAgAABAgQIECBAoFMFBEA79cm4LwIECBAgQIAAAQIECBAgQIAAAQIEhiwgADpkQg0QIECAAAECBAgQIECAAAECBAgQINCpAgKgnfpk3BcBAgQIECBAgAABAgQIECBAgAABAkMWEAAdMqEGCBAgQIAAAQIECBAgQIAAAQL1AjNnpvT736d0112v5P/ylyk98MAr544IEJg3AgKg88bZtxAgQIAAAQIECBAgQIAAAQIjQODll1M6+uiUVlwxpZ13TmnatFc6/cUvprTSSim9+90pPfTQK/mOCBCYuwICoHPXV+sECBAgQIAAAQIECBAgQIDACBF44YWU3vrWlD71qZT+9a/mne7rS+nkk1PacMOUrr22eRm5BAgMr4AA6PB6ao0AAQIECBAgQIAAAQIECBAYoQJ7753S2We31vlHHklpxx1Tuv/+1sorRYDA4AVGD76qmgQIECBAgAABAgQIEOgugQsvvLAyMqsyNKuQxo8fny6//PJCrlMCBAi0LnDmmSn95jetl4+Sjz2W0ic/mVLUlQgQmHsCAqBzz1bLBAgQIECAAAECBAh0mMCcOXPSrFmzGu5q9Gj/adSAIoMAgbYEDjusreK1wmedldLNN6f0utfVshwQIDDMAqbADzOo5ggQIECAAAECBAgQIECAAIGRJRA7u19zzeD7bATo4O3UJNCKgABoK0rKECBAgAABAgQIECBAgAABAgRKBG65peRCi9lDrd/i1yhGYMQKCICO2Eev4wQIECBAgAABAgQIECBAgMBwCDz11NBaGWr9oX272gR6X0AAtPefsR4SIECAAAECBAgQIECAAAECc1FgmWWG1vjSSw+tvtoECPQvIADav4+rBAgQIECAAAECBAgQIECAAIF+BdZdN6UFF+y3SL8XN9yw38suEiAwRAEB0CECqk6AAAECBAgQIECAAAECBAiMbIGJE1PadtvBGUTg9K1vHVxdtQgQaE1AALQ1J6UIECBAgAABAgQIECBAgAABAqUChxxSeqnfC3vvndLKK/dbxEUCBIYoIAA6REDVCRAgQIAAAQIECBAgQIAAAQKbbprSQQe15zBlSkpHHdVeHaUJEGhfQAC0fTM1CBAgQIAAAQIECBAgQIAAAQINAl//ekprr92Q3TRjgUpE5uyzU1p88aaXZRIgMIwCAqDDiKkpAgQIECBAgAABAgQIECBAoH+BM888My211FL9/tx22239N9KhV+fMSenhh1u7uZdfTunGG1srqxQBAkMTGD206moTIECAAAECBAgQIECAAAECBFoXmDVrVnriiSf6rTB79ux+r3fqxfPPT+nJJ1u/u9/+NqXddmu9vJIECAxOQAB0cG5qESBAgAABAgQIECBAgAABAoMQWHjhhbPRn1H1ueeeSy+88ELWymKLLZbiWqTRo7szXBEBzXbSOeekVIkHV/rdTi1lCRBoV8AU+HbFlCdAgAABAgQIECBAgAABAgQGLbDrrrumxx9/PPv53Oc+V2vnxBNPrOVPnjy5lt8tBzH9Pdb0bCc980xK553XTg1lCRAYjIAA6GDU1CFAgAABAgQIECBAgAABAgQI5AT+8pdUmdqfy2jxsN1Roy02qxgBAjkBAdAchkMCBAgQIECAAAECBAgQIECAwGAEygKZsdt7f+n3v0/ppZf6K+EaAQJDFRjg13CozatPgAABAgQIECBAgAABAgQIEOhtgdjRPQKZzdLSSzfLfSXv6adTis2TJAIE5p6AAOjcs9UyAQIECBAgQIAAAQIECBAgMAIELroopUcead7RZZZ5JX/RRV85zh+VjR7Nl3FMgMDgBQRAB2+nJgECBAgQIECAAAECBAgQIEAgnXFGc4SxY1OaOPGVa9tt98px/ig2T5o9O5/jmACB4RQQAB1OTW0RIECAAAECBAgQIECAAAECI0qgry+ls85q3uU3vzml0aNfuRbnzdKTT6YUmyhJBAjMHQEB0LnjqlUCBAgQIECAAAECBAgQIEBgBAhccklKDz7YvKNve1t9/pZbpmQafL2JMwLzQkAAdF4o+w4CBAgQIECAAAECBAgQIECgJwXK1u9caKGU3vSm+i4vskhKb3lLfV71LEaRzplTPfNJgMBwCgiADqemtggQIECAAAECBAgQIECAAIERJVA2/T2Cn0ss0UhRHBVaLfH44ynFZkoSAQLDLyAAOvymWiRAgAABAgQIECBAgAABAgRGgMDll6d0333NO1oW6Nxhh5TGjWte5/TTm+fLJUBgaAK5pXiH1pDaBAgQIECAAAECBAgQ6HSBLSsL8F1xxRUNtzlq1KiGPBkECBAYSKBs+ntsfFS24VEEP+Nas2BnjCb94Q9TWsBwtYHoXSfQloBfqba4FCZAgAABAgQIECBAoJsFFqosyrfkkks2/EyYMKGbu+XeCRCYTwJnntn8i7ffPlX+nWl+LXLLRoc+8khKF19cXs8VAgQGJyAAOjg3tQgQIECAAAECBAgQIECAAIERLHD11Sndc09zgLIAZ7X0jjumNHZs9az+s2xUaX0pZwQItCMgANqOlrIECBAgQIAAAQIECBAgQIAAgYpAWaBywQVT2mmn/okWXbRxh/hqjf/935T6+qpnPgkQGA4BAdDhUNQGAQIECBAgQIAAAQIECBAgMKIEyqa///d/p7TUUgNTlI0SfeihlC69dOD6ShAg0LqAAGjrVkoSIECAAAECBAgQIECAAAECBNL116d0xx3NIcoCm8XSMUp04YWLuf93Xja6tHlpuQQIDCQgADqQkOsECBAgQIAAAQIECBAgQIAAgZxAWYAydm/feedcwX4OF188pdgsqVn63e9Mg2/mIo/AYAUEQAcrpx4BAgQIECBAgAABAgQIECAwIgXKpr9vvXVKyy7bOknZaNHp01O64orW21GSAIH+BQRA+/dxlQABAgQIECBAgAABAgQIECBQE7jpppRuvbV2WndQFtCsK5Q7ectbUhozJpeROywbZZor4pAAgRYFBEBbhFKMAAECBAgQIECAAAECBAgQIFAWmBw1KqVddmnPZ8KElLbbrnmdmAYvESAwPAICoMPjqBUCBAgQIECAAAECBAgQIEBgBAiccUbzTm6xRUrLL9/8Wn+5ZaNGp01L6eqr+6vpGgECrQoIgLYqpRwBAgQIECBAgAABAgQIECAwogXuvDOlW25pTlAWyGxe+pXc2DRp9OhXzvNHZaNN82UcEyAwsIAA6MBGShAgQIAAAQIECBAgQIAAAQIE0qmnliO0O/292tLEiSltu231rP7TNPh6D2cEBisgADpYOfUIECBAgAABAgQIECBAgACBESVQNiJzs81SWmmlwVO8/e3N6951V0rXX9/8mlwCBFoXEABt3UpJAgQIECBAgAABAgQIECBAYIQK3HtvSv/4R/POD3b6e7W1GD264ILVs/rPsqBrfSlnBAj0JyAA2p+OawQIECBAgAABAgQIECBAgACBikB/09933XVoREsvndLWWzdvo2zTpeal5RIg0ExAALSZijwCBAgQIECAAAECBAgQIECAQE6gbCTmRhulNGlSruAgD8tGkd5+e0o33jjIRlUjQCATEAD1IhAgQIAAAQIECBAgQIAAAQIE+hGYPj2la69tXqAscNm8dHlujCJdoCRKUxZ8LW/NFQIE8gIlv1r5Io4JECBAgAABAgQIECBAgAABAiNXYG5Of6+qLrdcSltsUT2r/7QbfL2HMwLtCgiAtiumPAECBAgQIECAAAECBAgQIDCiBMpGYG6wQUqrrz58FGWjSW+5JaVbbx2+79ESgZEmIAA60p64/hIgQIAAAQIECBAgQIAAAQItCzz0UEpXXdW8+O67N88fbO5b35rSqFHNa5cFYZuXlkuAQF5AADSv4ZgAAQIECBAgQIAAAQIECBAgkBM47bSU+vpyGbnDCFgOZ1phhZQ237x5iwKgzV3kEmhFQAC0FSVlCBAgQIAAAQIECBAgQIAAgREpUBZ4nDo1pSlThp+kbBr8TTeldOedw/99WiQwEgQEQEfCU9ZHAgQIECBAgAABAgQIECBAoG2BRx9N6fLLm1crC1Q2L916bn+jSmM0qkSAQPsCo9uvogYBAgQIECBAgAABAgQIECBAoPcFTj89pZdfbt7PuRUAXWmllDbZJKUrrmj83hiNetBBjfnzI+fJJ59ML730UulXL7zwwmnChAml110gMC8FBEDnpbbvIkCAAAECBAgQIEBgvgpccsklleBBY/Rg3Lhx6dxzz52v9+bLCRDoPIGy6e9rrJHSWmvNvfuN4GqzAOgNN6R0zz0prbLK3PvuVlvefvvt0zXXXFNaPK7/6U9/Kr3uAoF5KWAK/LzU9l0ECBAgQIAAAQIECMxXgZkzZ6ZHHnmk4efRmOcqESBAICfwr3+lVPmbSdO0xx5Ns4ctc7fdypuKUakSAQLtCRgB2p6X0gQIECBAgAABAgQIECBAgMAIEDjjjJTmzGne0bk1/b36bZMmpfT616fKCMtqziufMSr1gANeOZ9fRxtuuGEaP3589vV///vfK0sFvJxi2vsmMX+/ktZZZ53s0/8Q6AQBAdBOeArugQABAgQIECBAgAABAgQIEOgogbLp7zH9fF7E9iLI2iwAGnn33ZfSyivPX67jjz++dgMRCH3++efTMsssky666KJavgMCnSJgCnynPAn3QYAAAQIECBAgQIAAAQIECHSEwP9n707gpCrOvY//YYaBYZNdBdkEVFAQERfcWIUICAqiXJP7itG88dXIqxFQr68mRFxQIQmoNwsuJCFEvYIriKCAGyqKAkpARVSQVUF2BmaYt6vHaXqmq2a6p9fT53c+HzLnPFWnTtX3jN7rQ52qHTukxYvtXUn25++lTx0+vPQs8qcrORtZkwgCCBgBEqD8HiCAAAIIIIAAAggggAACCCCAAAJhArNmKbDDeVgg7DTZn7+XPqp9e+m000qvyv4kAVrWgysEKhMgAVqZEOUIIIAAAggggAACCCCAAAIIIOArAVeCsVUrqVu31FG4kq3vvSdt2JC6fvAkBLwuQALU62+Q/iOAAAIIIIAAAggggAACCCCAQMIEdu2SXn/d3lyqPn8vfbrrM/jiYsmVpC29l58IIHBEgAToEQvOEEAAAQQQQAABBBBAAAEEEEDA5wKzZ0sHD9oRXDMy7bXjj554otS5s70dEqB2F6II2ARIgNpUiCGAAAIIIIAAAggggAACCCCAgC8FXInFFi2kM85IPYkr6bpkibRpU+r7wxMR8KIACVAvvjX6jAACCCCAAAIIIIAAAggggAACCRfYs0dasMDe7OWXS9Wq2cuSGXUlQA8flp59NplPpm0EskeABGj2vEtGggACCCCAAAIIIIAAAggggAACcQg8/7x04IC9Add6nPbaiYt26iSddJK9PddsVXttogj4V4AEqH/fPSNHAAEEEEAAAQQQQAABBBBAAIEwAVdC8ZhjpB49wiqm+NTMPrUdb70lbd1qKyGGAALhAiRAwzU4RwABBBBAAAEEEEAAAQQQQAABXwrs2ye9+qp96OYz9OppzKC4PoMvKpJmzbL3mSgCCBwRSOM/vkc6wRkCCCCAAAIIIIAAAggggAACCCCQToEXX5RMEtR2uBKQtrrJiJmd4Dt0sLf8zDP2OFEEEDgiQAL0iAVnCCCAAAIIIIAAAggggAACCCDgUwHX5+9Nm0rnnZd+lBEj7H144w3p++/tZUQRQKBEgAQovwkIIIAAAggggAACCCCAAAIIIOBrAbPx0Suv2AnM5kc5OfayVEZds1ALC/kMPpXvgWd5U4AEqDffG71GAAEEEEAAAQQQQAABBBBAAIEECcyZI+3ZY2/MlXi0105e9LTTpLZt7e27Zq/aaxNFwH8CJED9984ZMQIIIIAAAggggAACCCCAAAIIhAm4EoiNGkk9e4ZVTPOp6zP4hQulHTvS3Dkej0AGC5AAzeCXQ9cQQAABBBBAAAEEEEAAAQQQQCC5AgcPSi+/bH/GsGFSbq69LB1R12zUQ4ek555LR494JgLeECAB6o33RC8RQAABBBBAAAEEEEAAAQQQQCAJAmbtz1277A27Eo722smPnnGG1KqV/TmuWaz22kQR8JcACVB/vW9GiwACCCCAAAIIIIAAAggggAACYQKuxOFRR0m9e4dVzJBT12fwCxZIO3dmSCfpBgIZJkACNMNeCN1BAAEEEEAAAQQQQAABBBBAAIHUCJhPx196yf6sSy+V8vLsZemMumalmk/5n38+nT3j2QhkrgAJ0Mx9N/QMAQQQQAABBBBAAAEEEEAAAQSSKDB/vnvzIFeiMYndiarps86SWrSwV3XNZrXXJoqAfwRIgPrnXTNSBBBAAAEEEEAAAQQQQAABBBAIE3AlDOvVk/r1C6uYQafVqkmu5KxJ6O7enUGdpSsIZIhABu1lliEidAMBBBBAAAEEEEAAAQSyVqBHjx6aO3duxPiqV2duSAQKAQSyXKCoSHrxRfsghw6Vata0l2VC1CRA//jHyJ4cOFAypiuvjCwjgoCfBUiA+vntM3YEEEAAAQQQQAABBHwmUKdOHR1//PE+GzXDRQABm8Brr0nffWcrcc+wtNdOffScc6RjjpE2b458tpnVSgI00oWIvwX4a05/v39GjwACCCCAAAIIIIAAAggggIAvBVyfvwf+nkT9+2c2iZm0Pny4vY+vvCLt3WsvI4qAXwVIgPr1zTNuBBBAAAEEEEAAAQQQQAABBHwqcPiw9MIL9sEPHizl59vLMik6YoS9N/v3Sy+/bC8jioBfBUiA+vXNM24EEEAAAQQQQAABBBBAAAEEfCqwaJG0ZYt98K4Nhuy10xc97zypWTP7812zW+21iSKQ/QIkQLP/HTNCBBBAAAEEEEAAAQQQQAABBBAIE3AlCM3Mz4suCquYwac5OdKwYfYOzpkjmZmgHAggUCJAApTfBAQQQAABBBBAAAEEEEAAAQQQ8I1AcbH0/PP24Q4cKJk1QL1yuGarmjVATRKUAwEESgRIgPKbgAACCCCAAAIIIIAAAggggAACvhF4801p40b7cF0JRXvt9Ed79pQaN7b3wzXL1V6bKALZLUACNLvfL6NDAAEEEEAAAQQQQAABBBBAAIEwgWefDbsIO61ZUzIzQL105OZKl15q77HZCKmgwF5GFAG/CZAA9dsbZ7wIIIAAAggggAACCCCAAAII+FTAfP4+e7Z98D/5iVS/vr0sk6OuWau7d0uvvJLJPadvCKROgARo6qx5EgIIIIAAAggggAACCCCAAAIIpFHg3Xel9evtHXAlEu21Myfap4/UsKG9P3wGb3ch6j8BEqD+e+eMGAEEEEAAAQQQQAABBBBAAAFfCrgSgjVqSIMHe5PE9P2SS+x9f/FF6eBBexlRBPwkQALUT2+bsSKAAAIIIIAAAggggAACCCDgYwHX5+/9+0sNGngXxjV7dedOaf58746LniOQKAESoImSpB0EEEAAAQQQQAABBBBAAAEEEMhYgaVLpXXr7N1zJRDttTMv2q+fdNRR9n4984w9ThQBPwmQAPXT22asCCCAAAIIIIAAAggggAACCPhUwPX5u9lJ/eKLvY2SlycNGWIfwwsvSIcO2cuIIuAXARKgfnnTjBMBBBBAAAEEEEAAAQQQQAABHwvMmmUffN++UuPG9jIvRV2zWHfskF57zUsjoa8IJF6ABGjiTWkRAQQQQAABBBBAAAEEEEAAAQQySOCjj6QvvrB3yJU4tNfO3KhZx7RuXXv/XLNf7bWJIpB9AiRAs++dMiIEEEAAAQQQQAABBBBAAAEEEAgTcCUAqweyIq5Px8Nu98RprVruT/mff14qKvLEMOgkAkkRIAGaFFYaRQABBBBAAAEEEEAAAQQQQACBTBFwff7eq5fUrFmm9DL+frhms373nbRwYfzt0wICXhUgAerVN0e/EUAAAQQQQAABBBBAAAEEEECgUoGVK6XVq+3VXAlDe+3Mj150kVSnjr2frlmw9tpEEcguARKg2fU+GQ0CCCCAAAIIIIAAAggggAACCIQJuBJ/1apJl1wSVjELTvPzpUGD7AOZPVs6fNheRhSBbBcgAZrtb5jxIYAAAggggAACCCCAAAIIIOBjAVcC9PzzpWOPzT4Y16zWrVulxYuzb7yMCIFoBEiARqNEHQQQQAABBBBAAAEEEEAAAQQQ8JzAZ59Jq1bZu+1KFNpreyc6cKBkZoLaDlcy2FaXGALZJEACNJveJmNBAAEEEEAAAQQQQAABBBBAAIGQwFNPhU7LnJjP3y+9tEwoay7MGqBmLVDbwWfwNhVifhAgAeqHt8wYEUAAAQQQQAABBBBAAAEEEPChwLPP2gfdo4d03HH2smyIuma3btokvf12NoyQMSAQm0BubNX9VXvnzp16KvDXRWvWrNGGDRv03XffqXnz5mrZsqVOPfVUDRs2TDVq1KgUpaioSHPnztWCBQu0fv167du3Tx07dlTnzp3VI/Bv3ZNOOqnSNqiAAAIIIIAAAggggAAC8Qu89957uvfeeyMaql27tmbOnBkRJ4AAAt4VWLtWWr7c3n9XgtBe23vRwYOlmjWlgoLIvpvP4M36pxwI+EmABKjjbT/zzDN6/PHHtWfPnjI1vvrqK5k/b775pp5//nmNHTtWp512Wpk64Rfbtm3TLbfconXr1oWHtXTp0uCf6dOn6/bbb9eAAQPKlHOBAAIIIIAAAggggAACiRfYvXu3Vq9eHdFwHfPNKAcCCGSVQOA/651Htn7+XjrgevUUyDNIL7xQGjnyc9Ys6Q9/kMwyABwI+EWABKjlTb/66quaMmVKqOSss84Kzvhs0qRJcCboG2+8EUyCmtmcY8aM0bRp09S2bdtQ/dKTvXv3BhOkpcnP9u3b69xzz1XTpk318ccfy7Rz8OBBTZgwQaaumVHKgQACCCCAAAIIIIAAAggggAAC8Qu4Nvw580ypTZv428/0FkaMsCdAAx+46t13FfgiNdNHQP8QSJwACdBylhs3btRDDz0UjObk5Oh3v/udLrjggjK1rr76aj388MN6NrCYiElgmjp//etflZtblvOJJ57QWjPnPnD07t1bd955Z+iT+aFDh2rFihUaN25cMPlpEq7mOSbJyoEAAggggAACCCCAAAIIIIAAAlUX+Ppr6cMP7fdn++fvpaO++GIpL0+BvEVp5MhPkxwmAXrEg7PsF2ATpHLv+LXXXtP+/fuD0SuvvDIi+WkKTKLzxhtvDK3d+cUXXwTXCQ1vateuXYGp5iVzzZs1a1Ym+Vlar0uXLsG4uTbrhJbWLy3nJwIIIIAAAggggAACCCCAAAIIxC7g58/fS7WOOkq68MLSq7I/XZtDla3FFQLZI0ACtNy7NJ+mlx5DhgwpPY34aWaH9urVKxT/7LPPQufmZOHChaFE6iWXXBKa+VmmUuDCfBJvNlUyh0mAFhYWBs/5HwQQQAABBBBAAAEEEEAAAQQQqJqA6/P3bt2kwOp0vjlcs13NDNn33/cNAwNFQCRAy/0SNGrUSJ06dQomJY8++uhypWUvGzduHAqYzY7Cj08++SR0eaZZYKSCo3v37sHS77//XsuWLaugJkUIIIAAAggggAACCCCAAAIIIFCRwLffupN7roRgRe15uczM6yq3Wl9oOK4kcagCJwhkkUDZRSuzaGBVHcodd9wR9a3m0/fSo127dqWnwZ+ffvpp8Ge1wLZq5cvKVAxcmM2RSo8vv/xSlSVMS+vyEwEEEEAAAQQQQAABBBBAAAEEygqYz9+Li8vGSq/8tvdwYI6X+vaV5s0rFTjy03wG/8ADR645QyCbBZgBWsW3u2/fPpnd4kuPjh07lp4Gf35r/sopcJgd38tvjhQsCPuf8Jmm33zzTVgJpwgggAACCCCAAAIIIIAAAgggEIuAa2ZjYBsOnXhiLC1lR13XrNfA/KvAV6jZMUZGgUBlAswArUzIUf7kk09qx44dwVIzY7N58+ahmmYTpcOHDwevGzZsGIq7Tho0aBAqMpsnRXMsXrw4uM6oq675lN5svrRnzx6ZZC0HAggggAACCCCAAAIIIIAAAtkusHmztGSJfZTDh9vj2R4NbEui664zmy9HjtQki826qBwIZLsACdAqvOE5c+Zo5syZwTtr166tcePGlWll7969oeuaNWuGzl0n4XUOHDjgqlYmvmLFilAfyhSEXZjE6qFDh0iAhplwigACCCCAAAIIIIAAAgggkL0CJqH343ykiEG6ZkJGVMyyQJMmUu/e0oIFkQMzn8Hfe29knAgC2SbAJ/AxvtG33347sEbGkUUyRo8erfBP2E1z4TMu8/LyKn1CeJ2CgoJK61MBAQQQQAABBBBAAAEEEEAAAQQiBVyfv5tP3wP7Hfv2cCV/P/tMCsyv4kAg6wVIgMbwis3MT7NJUtGP88avuuoqDRo0KKKF8DU/S+tGVAoLFBYWhq7Ck6GhICcIIIAAAggggAACCCCAAAIIIFChwLZt0ltv2atcfrk97peo+Qy+uiMDZDaN4kAg2wX4BD7KN/z444/riSeeCNW++uqr9fOf/zx0HX6Sn58fujx48GDo3HUSXqdOnTquamXiQ4YMURezgrPjePrppzV9+nSFt+2oShgBBBBAAAEEEEAAAQQQQAABzwuYz7lt61yagblmQHp+0FEO4OijpQsukBYtirzBuN19d2ScCALZJEACtJK3aWZnPvjggzKzP81RPfBXJr/+9a81dOhQ551mXdDSI3w90NJY+Z/hn8xHmwBt3bq1zB/X8c477yiaZ7vuJ44AAggggAACCCCAAAIIIICAlwRcn7+3b6/ABCIvjSQ5fTVJYFsC9N//lj79VDr55OQ8l1YRyAQBxwToTOha+vtgEohjx44NJT9r1aoVWBz43gqTn6bXZlOjxo0bBwewdevWSgeyZcuWUJ1GjRqFzjlBAAEEEEAAAQQQQAABBBBAAIHKBbZvlxYvttcbMcIe91t02DCpWjX7qF3JY3ttogh4T4AEqOOd/fDDD7rhhhv0wQcfBGuYhObDDz+sc88913FH2XDbtm2DATO7c8eOHWULy11t2LAhFOnYsWPonBMEEEAAAQQQQAABBBBAAAEEEKhcYPZsKWx7jTI3+P3z91KMY49VIKdRelX2JwnQsh5cZZ8ACVDLO929e3fwM/e1a9cGS00y889//rNONNvGRXl0Cttebvny5RXetSJsy7Xw+yq8iUIEEEAAAQQQQAABBBBAAAEEEAgKuBJ4bdpI3bqBVCrgSgZ/8om0Zk1pLX4ikH0CJEAt73TSpEn6/PPPgyUnnXRScObn0WbF4BiOXr16hWrPmzcvdF7+xHz+/tFHHwXDJsHKJ/DlhbhGAAEEEEAAAQQQQAABBBBAwC0Q+IBTr79uL+fz97Iuw4fzGXxZEa78IkACtNybNp+8v/baa8Go+ez9/vvvV/369cvVqvyyQ4cOoRmjb731lmxJ0IKCgmD7RT9uU/fTn/608oapgQACCCCAAAIIIIAAAggggAACIYHnn5cOHgxdljlxzXgsU8lHF8cdJ519tn3Arlm09tpEEfCWALvAh72vQ4cOafLkyaGI2c194sSJoeuKTs4880xdVu7frDfffLOuu+664G333HOPNm/erAsvvFDNmjXTqlWr9Je//EWln8ebT9979uxZ0SMoQwABBBBAAAEEEEAAAQQQQACBcgKuxJ1J9p1xRrnKXAZyF9KSJZEQH38smZUA27WLLCOCgNcFSICGvcFly5Zp/fr1oYg5D78OFVhObJ+un3zyyRo/frzuu+8+HThwQNOmTQv+ycnJUemsT9NUixYtgonW6tWZkGuhJYQAAggggAACCCCAAAIIIICAVSCwhYfmz7cWyXz+7tr13H6HP6LmM/hbbrGP9ZlnpNtus5cRRcDLAmTcwt7eunXrwq4Sc9qnT5/QBkqlCc7S5Gdubm7gX8gjguUNGjRIzANpBQEEEEAAAQQQQAABBBBAAAGfCLzwghRYXc56lPtI01rHj8HWrd0zY12zaf3oxJizS4AZoGHvc+TIkTJ/En0cf/zxwZmfZhao2VzJbHzUvHlztWrVSnXr1k3042gPAQQQQAABBBBAAAEEEEAAAV8IuBJ2xx7rXuvSFzCVDNIkh5cujaz04YfSV19JbdpElhFBwMsCzABN4durVauWOnfurH79+sms+UnyM4X4PAoBBBBAAAEEEEAAAQQQQCCrBPbuVWDDYfuQTIKPVebsNiZqPoN3Ha6ksqs+cQS8IMAMUC+8JfqIAAIIIIAAAggggAACCRHo3r27Zs6cGdGWWaefAwEEvCXw0kvS/v32PleU4LPf4a+o2ejotNOkjz6KHLdJgI4ZExkngoCXBUiAevnt0XcEEEAAAQQQQAABBBCIScCsvd+tW7eY7qEyAghkpoBrpmKzZtJ552VmnzOpV2aTKFsC9P33FdgQWmrZMpN6S18QiE+AT+Dj8+NuBBBAAAEEEEAAAQQQQAABBBBIsYCZ+Tl3rv2hw4ZJTOq224RHXbNki4ulZ58Nr8k5At4XIAHq/XfICBBAAAEEEEAAAQQQQAABBBDwlcCcOZJZA9R2sPu7TSUydsIJUpcukXETeeYZe5woAl4VIAHq1TdHvxFAAAEEEEAAAQQQQAABBBDwqYDr8/fGjaWePX2KUoVhu5LFS5ZIGzdWoUFuQSBDBUiAZuiLoVsIIIAAAggggAACCCCAAAIIIBApUFAgvfxyZNxELr1UymW3EzuOJepKgPIZvAWLkKcFSIB6+vXReQQQQAABBBBAAAEEEEAAAQT8JTBvnrR7t33MroSevTbRjh2lTp3sDq5ZtvbaRBHIbAESoJn9fugdAggggAACCCCAAAIIIIAAAgiECbgScw0aSH36hFXkNCoBV9L4rbekLVuiaoJKCGS8AAnQjH9FdBABBBBAAAEEEEAAAQQQQAABBIzAoUPSiy/aLS65RKpRw15G1C3gSoAePizNmuW+jxIEvCRAAtRLb4u+IoAAAggggAACCCCAAAIIIOBjgfnzpR9+sAO4Enn22kRLBTp3lsyO8LbDNdvWVpcYApksQAI0k98OfUMAAQQQQAABBBBAAAEEEEAAgZCAKyFXv77Ur1+oGicxCowYYb9h8WJp2zZ7GVEEvCRAAtRLb4u+IoAAAggggAACCCCAAAIIIOBTgcJC6fnn7YMfMkSqWdNeRrRyAdfs2aIiafbsyu+nBgKZLkACNNPfEP1DAAEEEEAAAQQQQAABBBBAAAG9/rq0fbsdwpXAs9cmWl6ga1epXbvy0ZJr16xbe22iCGSmAAnQzHwv9AoBBBBAAAEEEEAAAQQQQAABBMIEXIm4unWl/v3DKnJaJQFXEnnhQnfiuUoP4iYE0iBAAjQN6DwSAQQQQAABBBBAAAEEEEAAAQSiFzCfYj/3nL3+4MFSfr69jGj0Aq4EqFl6wGUffevURCC9AiRA0+vP0xFAAAEEEEAAAQQQQAABBBBAoBKBijbjcSXuKmmS4nIC3btLbdqUC/546Zp9a69NFIHMEyABmnnvhB4hgAACCCCAAAIIIIAAAggggECYgCsBZ2Z+/uQnYRU5jUtg+HD77QsWSD/8YC8jioAXBEiAeuEt0UcEEEAAAQQQQAABBBBAAAEEfCpw+LB7J/KBA6U6dXwKk4Rhjxhhb/TQIemFF+xlRBHwggAJUC+8JfqIAAIIIIAAAggggAACCCCAgE8F3npL2rzZPng+f7e7VDV65plSy5b2u12zcO21iSKQWQIkQDPrfdAbBBBAAAEEEEAAAQQQQAABBBAIE3Al3mrVkgYNCqvIadwC1apJrs/gX31V2rUr7kfQAAJpESABmhZ2HooAAggggAACCCCAAAIIIIAAApUJFBe7P38fMECqV6+yFiiPVcA1q7agQHrxxVhboz4CmSFAAjQz3gO9QAABBBBAAAEEEEAAAQQQQACBcgJLlkgbNpQL/njpStTZaxONVuCcc6Tmze21XbNx7bWJIpA5AiRAM+dd0BMEEEAAAQQQQAABBBBAAAEEEAgTePbZsIuw07w86eKLwwKcJkzAfAY/bJi9uXnzpD177GVEEchkARKgmfx26BsCCCCAAAIIIIAAAggggAACPhZwJUAvvFA66igfwyR56K7Ztfv3Sy+/nOSH0zwCSRAgAZoEVJpEAAEEEEAAAQQQQAABBBBAAIH4BJYulb7+2t6GK0Fnr000VoHzz5eOPtp+F5/B212IZrZAbmZ3j94hgAACCCCAAAIIIIAAAokTWLZsmaZMmRLRYH5+vv77v/87Ik4AAQTSJ+BKtOUGMhlDhqSvX354cvXAdDnzGbztX4tz5kj79km1a/tBgjFmiwAJ0Gx5k4wDAQQQQAABBBBAAAEEKhXYvn27lphdVcodderUKRfhEgEE0i3g+vy9b1+pUaN09y77n29m2doSoCb5OXeuNHx49hswwuwR4BP47HmXjAQBBBBAAAEEEEAAAQQQQACBrBD46CNp7Vr7UPj83e6S6GjPnlKTJvZWn3nGHieKQKYKkADN1DdDvxBAAAEEEEAAAQQQQAABBBDwqYDr8/ecHGnoUJ+ipHjYxvrSS+0PNRshHThgLyOKQCYKkADNxLdCnxBAAAEEEEAAAQQQQAABBBDwsYDr8/devaSmTX0Mk+Khu2bb7tkjvfJKijvD4xCIQ4AEaBx43IoAAggggAACCCCAAAIIIIAAAokVWLlSWrPG3qYrIWevTTRegT593OutumbpxvtM7kcgGQIkQJOhSpsIIIAAAggggAACCCCAAAIIIFAlAVdizexMfsklVWqSm6ookBvYOtu15MCLL0oFBVVsmNsQSLEACdAUg/M4BBBAAAEEEEAAAQQQQAABBBBwC7gSoOedJx1zjPs+SpIj4Jp1u2uXNH9+cp5JqwgkWoAEaKJFaQ8BBBBAAAEEEEAAAQQQQAABBKoksHq1tGqV/VZXIs5em2iiBPr1kxo0sLfmSlbbaxNFIH0CJEDTZ8+TEUAAAQQQQAABBBBAAAEEEEAgTOCZZ8Iuwk6rVZOGDQsLcJoygbw8acgQ++Oef146dMheRhSBTBIgAZpJb4O+IIAAAggggAACCCCAAAIIIOBjAdeMwh49pBYtfAyT5qG7Zt/+8IO0YEGaO8fjEYhCgARoFEhUQQABBBBAAAEEEEAAAQQQQACB5Aps3iytWGF/hisBZ69NNNEC/ftL9erZW3Ulre21iSKQHgESoOlx56kIIIAAAggggAACCCCAAAIIIBAmsGRJ2EW50+HDywW4TKlAzZrSxRfbH2k+gy8utpcRRSBTBEiAZsqboB8IIIAAAggggAACCCCAAAII+Fjgvffsgz/zTKlVK3sZ0dQJuGbhfv+9dPhw6vrBkxCoigAJ0KqocQ8CCCCAAAIIIIAAAggggAACCCRUYN06e3OuxJu9NtFkCfzkJ1KdOvbWi4rscaIIZIoACdBMeRP0AwEEEEAAAQQQQAABBBBAAAEEIgT4/D2CJC2B/Hxp0CD7owsL7XGiCGSKAAnQTHkT9AMBBBBAq8us6gAAQABJREFUAAEEEEAAAQQQQAABBMoIdOsmHX98mRAXaRQYMSKND+fRCMQhQAI0DjxuRQABBBBAAAEEEEAAAQQQQACB5Anw+XvybKvS8sCBUu3aVbmTexBIrwAJ0PT683QEEEAAAQQQQAABBBBAAAEEEHAI8Pm7AyZNYZP8vOgi98PZDd5tQ0l6BUiAptefpyOAAAIIIIAAAggggAACCCDgS4Hly6V333UPvUsX6YQT3OWUpEegolm5mzdL11wjzZ2bnr7xVARcAiRAXTLEEUAAAQQQQAABBBBAAAEEEEAg4QKLFkmnny517SrNn+9uvqJEm/suSpItMHiwlJdnf4rZDOnxxyXzqfzZZ0tr1tjrEUUg1QIkQFMtzvMQQAABBBBAAAEEEEAAAQQQ8KnAgw9KfftKy5ZVDnDUUZXXoUbqBd55Ryoqqvy5770nnXWWtGRJ5XWpgUCyBUiAJluY9hFAAAEEEEAAAQQQQAABBBBAQI89Jo0bJx0+HB3GmDHSm29GV5daqRH44gvJ7AQfTQLU9GjnTunSS6VNm1LTP56CgEuABKhLhjgCCCCAAAIIIIAAAggggAACCCREYONGafTo2Jo6dEgaNUo6eDC2+6idPIGxY6Vdu2Jrf8sW6a67YruH2ggkWoAEaKJFaQ8BBBBAAAEEEEAAAQQQQAABBMoITJok7dtXJhTVxZdfSjNmRFWVSkkWWL9eeu65qj1k+vSS2aBVu5u7EIhfIDf+JmgBAQQQQAABBBBAAAEEEPCGwKmnnqpHH300orO5ufynUQQKAQQSKDBrVtUbM/defXXV7+fOxAjEs7O7mc27YIE0fHhi+kIrCMQqwP+Vj1WM+ggggAACCCCAAAIIIOBZgaZNmwY2YAnswMKBAAIpE9i7V/rqq6o/buXKqt/LnYkTWLcuvrbivT++p3O33wX4BN7vvwGMHwEEEEAAAQQQQAABBBBAAIEkCnz/fXyNb98e3/3cnRiBgoL42on3/viezt1+FyAB6vffAMaPAAIIIIAAAggggAACCCCAQBIFmjSJr/F474/v6dxdKtC8eelZ1X62aFG1+7gLgUQIkABNhCJtIIAAAggggAACCCCAAAIIIICAVaB2balDB2tRVMGuXaOqRqUkC/TqFd8DevaM737uRiAeARKg8ehxLwIIIIAAAggggAACCCCAAAIIVCpw2WWVVnFWiOdeZ6MUxCxw+ulSp04x3xa84fzzpbZtq3YvdyGQCAESoIlQpA0EEEAAAQQQQAABBBBAAAEEEHAK/PrXUv36zmJnQceO0hVXOIspSKFAtWrSgw/G/sDqgczTxImx38cdCCRSgARoIjVpCwEEEEAAAQQQQAABBBBAAAEEIgTMOp7TpkkmiRbtkZ8v/eMfUk5OtHdQL9kCAwdKd9wR21OGD5d69IjtHmojkGgBEqCJFqU9BBBAAAEEEEAAAQQQQAABBBCIEBgxQpo8OSJsDTRsKL34otStm7WYYBoFJkwomQmamxtdJ1aulIqLo6tLLQSSJUACNFmytIsAAggggAACCCCAAAIIIIAAAmUEGjUqcxlxYWZ7Xnml9NFHUt++EcUEMkRgzBhp1Srp5z+XGjeuuFOrV0vPPVdxHUoRSLYACdBkC9M+AggggAACCCCAAAIIIIAAAggEBV55xQ3xf/+vtGWLNGOG1Lq1ux4lmSHQoYP02GPS1q1SrVoV9+mhhyoupxSBZAuQAE22MO0jgAACCCCAAAIIIIAAAggggEDwM+jXX3dDnHNO5bMJ3XdTki4Bs8mR+WOO2rVLfpb/33fekd54o3yUawRSJ0ACNHXWPAkBBBBAAAEEEEAAAQQQQAAB3wq8/37JDE/fAvhg4PXquQf5wAPuMkoQSLYACdBkC9M+AggggAACCCCAAAIIIIAAAgho7lwQsl0gL0+68EL7KOfMkf79b3sZUQSSLUACNNnCtI8AAggggAACCCCAAAIIIIAAAqpo/U94skdg3Dj7WMxO8BMn2suIIpBsARKgyRamfQQQQAABBBBAAAEEEEAAAQR8LvDDD9IHH/gcwSfD79dP6trVPtiZM6Vvv7WXEUUgmQIkQJOpS9sIIIAAAggggAACCCCAAAIIIBD8/L2oCAi/CNx2m32kBw9Kkyfby4gikEwBEqDJ1KVtBBBAAAEEEEAAAQQQQAABBBBwrv9Z0aY5sHlXYPhwqU0be/+nTZN27rSXEUUgWQIkQJMlS7sIIIAAAggggAACCCCAAAIIIBAUeO01O8QJJ9jjRL0tkJsrjRljH8OuXdKjj9rLiCKQLAESoMmSpV0EEEAAAQQQQAABBBBAAAEEENCHH0obN9oh2rWzx4l6X+Dqq6XGje3jmDpVKiiwlxFFIBkCJECToUqbCCCAAAIIIIAAAggggAACCCAQFHDt/m5mCbo+k4bO+wK1a0s33mgfx6ZN0vTp9jKiCCRDgARoMlRpEwEEEEAAAQQQQAABBBBAAAEEggJz59ohLrhAqlnTXkY0OwRuuEHKz7ePxWyGVFxsLyOKQKIFSIAmWpT2EEAAAQQQQAABBBBAAAEEEEAgKLB7t/T++3aMiy6yx4lmj0CTJtK119rHs2aNNHu2vYwoAokWIAGaaFHaQwABBBBAAAEEEEAAAQQQQACBoID5/P3QITvGT35ijxPNLoGbbpJycuxjeughe5woAokWIAGaaFHaQwABBBBAAAEEEEAAAQQQQACBoIBr/c9jjpFOOQUkPwgcf7x0+eX2kS5ZIr3xhr2MKAKJFAgsOcyBAAIIIIAAAggggAACCPhDYOXKlXr88ccjBlurVi3dd999EXECCCAQn8CCBfb7Bw+2x4lmp8CYMdLMmfaxPfCAZNaD5UAgmQIkQJOpS9sIIIAAAggggAACCCCQUQJbtmzRnDlzIvpUp04dEqARKgQQiE9gxQrpm2/sbbD+p90lW6Pdukn9+0uvvho5QvOv5FWrpE6dIsuIIJAoAT6BT5Qk7SCAAAIIIIAAAggggAACCCCAQEjAtfu7WQ+yd+9QNU58IjBunH2gZif4iRPtZUQRSJQACdBESdIOAggggAACCCCAAAIIIIAAAgiEBFzrf557rtSwYagaJz4R6NtX6trVPljzefy339rLiCKQCAESoIlQpA0EEEAAAQQQQAABBBBAAAEEEAgJ7NsnmQ1ubAe7v9tU/BG77Tb7OA8dkiZPtpcRRSARAiRAE6FIGwgggAACCCCAAAIIIIAAAgggEBIwaz0WFIQuy5yw/mcZDl9dXHaZ1KaNfch//au0c6e9jCgC8QqQAI1XkPsRQAABBBBAAAEEEEAAAQQQQKCMgGv9z6ZNpVNPLVOVCx8JmPVfx461D3j3bumRR+xlRBGIV4AEaLyC3I8AAggggAACCCCAAAIIIIAAAmUEFiwocxm6GDRIqlYtdMmJDwVGjZIaN7YPfOpU98xh+x1EEYhOgARodE7UQgABBBBAAAEEEEAAAQQQQACBKARWrZK+/NJekfU/7S5+itauLY0ebR/x5s3S9On2MqIIxCNAAjQePe5FAAEEEEAAAQQQQAABBBBAAIEyAq7d383Mzz59ylTlwqcC118vmUSo7TCbIR0+bCshhkDVBUiAVt2OOxFAAAEEEEAAAQQQQAABBBBAoJyAa/3Ps8+WzBqgHAg0aSJdc43dYc0a6bnn7GVEEaiqAAnQqspxHwIIIIAAAggggAACCCCAAAIIlBE4cEB6++0yodAFu7+HKDgJCNx8s2Q2RbIdDz5oixJDoOoCJECrbsedCCCAAAIIIIAAAggggAACCCAQJmA2P9q/PywQdsr6n2EYnKptW+mKK+wQ774rLV5sLyOKQFUESIBWRY17EEAAAQQQQAABBBBAAAEEEEAgQsC1/mfDhlK3bhHVCfhcYMwYN8ADD7jLKEEgVgESoLGKUR8BBBBAAAEEEEAAAQQQQAABBKwCZgao7Rg40P25s60+MX8InHaa1L+/faxmLdlPP7WXEUUgVgESoLGKUR8BBBBAAAEEEEAAAQQQQAABBCIEPv9cMhvY2A7W/7SpEDMC48bZHYqLJWaB2m2Ixi5AAjR2M+5AAAEEEEAAAQQQQAABBBBAAIFyAq7d36tVk/r2LVeZSwR+FDC/G2YmqO2YOVP69ltbCTEEYhMgARqbF7URQAABBBBAAAEEEEAAAQQQQMAi4Fr/s3t36ZhjLDcQQuBHgdtus1McOiRNmmQvI4pALAIkQGPRoi4CCCCAAAIIIIAAAggggAACCEQIHDwovfFGRDgYYPd3uwvRIwLDhyu4K/yRyJGzadOkH344cs0ZAlURIAFaFTXuQQABBBBAAAEEEEAAAQQQQACBkMDChdLevaHLMies/1mGgwuLQE6O5NoRfvdu6dFHLTcRQiAGARKgMWBRFQEEEEAAAQQQQAABBBBAAAEEIgVc638edZR0xhmR9YkgUF5g1CipSZPy0ZLrqVOlggJ7GVEEohEgARqNEnUQQAABBBBAAAEEEEAAAQQQQMAp4Fr/03z+npvrvI0CBEICtWtLN94YuixzsnmzNH16mRAXCMQkQAI0Ji4qI4AAAggggAACCCCAAAIIIIBAuMD69dKaNeGRI+es/3nEgrPKBW64QTKJUNthNkM6fNhWQgyBygVIgFZuRA0EEEAAAQQQQAABBBBAAAEEEHAIvPSSoyAQ7tfPXUYJAuUFGjeWrr22fLTk+rPPpNmz7WVEEahMgInolQlRjgACCCCAAAIIIIAAAggggAACTgHX+p9du0rHHee8LasL5gZQ3n333eAY165dGxrrpMA0xvr166tmzZr6r//6r1CckyMCN98sPfKIVFR0JFZ69tBDktkxngOBWAVIgMYqRn0EEEAAAQQQQAABBBDwrECnTp10zz33RPQ/l0UKI0wIIBCNQGGhtHixvaafd39/JbAo6pQpUyJg/vCHPwRj9erVIwEaoVMSaNNGuuIK6Z//jKxgcsrm961nz8gyIghUJEACtCIdyhBAAAEEEEAAAQQQQCCrBJo3b67LLrssq8bEYBBIp4BJRu3aZe8B63/aXYhWLjBmjD0Bau584AESoJULUqO8AAnQ8iJcI4AAAggggAACCCCAAAIIIIBAVAKu3d/r1pXOPjuqJrKy0tVXX61zzz3XObYaNWo4yyiQTjtN6t9fevXVSA2z5MKnn0onnxxZlshIcXGxZs2aVWGT5quCjh07VliHwswQIAGaGe+BXiCAAAIIIIAAAggggAACCCDgOQHX+p8meZWX57nhJKzDXQMLoJo/HFUXuPVWewI0kJfUxInS3/5W9bajubMwsL5DZV8MjB8/XnfddVc0zVEnzQLsAp/mF8DjEUAAAQQQQAABBBBAAAEEEPCiwKZNJTPxbH338/qfNg9isQv06SN162a/71//kjZssJcRRcAmwAxQmwoxBBBAAAEEEEAAAQQQQAABBBCoUOCll9zF/fq5yyhBIFoBMwvUbIhU/jh0SJo8ueRP+bJEXefk5OiOO+4INrdlyxZNmzYteG4+eR82bFjw/Pzzz0/U42gnyQIkQJMMTPMIIIAAAggggAACCCCAAAIIZKOAa/3PU06RzE7eHAjEKzB8uNS2rbRuXWRLJh9pvj5v0CCyLBGR6tWra8KECcGmli9fHkqAdunSJRRPxHNoIzUCfAKfGmeeggACCCCAAAIIIIAAAggggEDWCBQVSQsX2ofD7u92F6KxCwQmYcrsCG87du+WHn3UVkIMgUgBEqCRJkQQQAABBBBAAAEEEEAAAQQQQKACgbfflnbssFdg/U+7C9GqCVx9tdSkif3eKVOkggJ7GVEEwgVIgIZrcI4AAggggAACCCCAAAIIIIAAApUKuHZ/z8+Xzjmn0tupgEDUAuZ3avRoe/XA0px68kl7GVEEwgVIgIZrcI4AAggggAACCCCAAAIIIIAAApUKuNb/vPBCqVatSm+nAgIxCVx/vVS7tv0WsxnS4cP2MqIIlAqQAC2V4CcCCCCAAAIIIIAAAggggAACCFQqsHWrFNgTxnqw/qeVhWCcAo0bS9dea2/ks8+k2bPtZUQRKBUgAVoqwU8EEEAAAQQQQAABBBBAAAEEEKhUYM4cqbjYXs3MAOVAIBkCN98smU2RbMeDD9qixBA4IkAC9IgFZwgggAACCCCAAAIIIIAAAgggUImAa/3PE0+U2rev5GaKEaiiQJs20siR9pvfe09atMheRhQBI0AClN8DBBBAAAEEEEAAAQQQQAABBBCISsCstfj66/aq7P5udyGaOIExY9xtPfCAu4wSBEiA8juAAAIIIIAAAggggAACCCCAAAJRCbz7rvTdd/aqrP9pdyGaOIGuXaUBA+ztmY25PvnEXkYUgVwIYhMYE/jrhvcCc6tvuukmDR8+PKqbi4qKNDfwjcCCBQu0fv167du3Tx07dlTnzp3Vo0cPnXTSSVG1QyUEEEAAAQQQQAABBBBAAAEE0ing2v29Zk3p/PPT2TOe7ReBceOkefMiR2vWpTWzQP/2t8gyIggwAzSG34FZs2YFk58x3KJt27bp6quv1sSJE/Xhhx9qa2C7vD179mjp0qV6/PHHdd111wX+wbX8kxvLQ6iLAAIIIIAAAggggAACCCCAQAoEXOt/9ukj1a6dgg7wCN8LmN+1bt3sDP/6l7Rhg72MqL8FSIBG+f7nz5+vP/zhD1HWLqm2d+9ejR07VuvWrQsG2gdWg77qqqtkZpH269dPeXl5MrNDJ0yYIJNc5UAAAQQQQAABBBBAAAEEEEAgUwW2b5eWLbP3jvU/7S5EkyNw6632dg8dkiZNspcR9bcAn8BX8v4LCgr02GOP6amnnlKxmU8dw/HEE09o7dq1wTt69+6tO++8UzVq1AheDx06VCtWrNC4wNxtkyidMmWKLrjgAjVp0iSGJ1AVAQQQQAABBBBAAAEEEEAAgdQIzJkjmU2QbAfrf9pUiCVLwKxIePzx0pdfRj5h2jTpN7+RGjSILCPiXwFmgFbw7j/++GONGjVKM2fODPxL3vFvecf9u3bt0gsvvBAsbdasWZnkZ+ktXbp0CcbNtZkJWlq/tJyfCCCAAAIIIIAAAggggAACCGSKgGv9z9atpQ4dMqWX9MMPAjk5Cnxdax9pYNVBPfKIvYyofwVIgFrevZnpOXnyZN14442BtSNKFo9o1apV1JsemSYXLlyo/fv3B1u/5JJLQjM/yz/u3HPPVcuWLYNhkwAtLCwsX4VrBBBAAAEEEEAAAQQQQAABBNIqYD6IDOzraz0GD7aGCSKQVIHAfDU1bWp/xNSp0oED9jKi/hQgAWp572a25+zZs0MlgwYNCn4Gb9bwLD2qVatWemr9+cknn4TiZ555ZujcdtK9e/dg+Pvvvw+sp+JYUMV2IzEEEEAAAQQQQAABBBBAAAEEUiDwwQfSli32B7H+p92FaHIF8vMVmLhmf4b5XZ0+3V5G1J8CJEAreO9nnHFGYNr0I7rttttUq1atCmpGFn366afBoEmUtmvXLrJCWCQ8sfqlbQGLsLqcIoAAAggggAACCCCAAAIIIJBqAdfu72abi549U90bnodAicD110u1a9s1zGZIMa5maG+IaFYIkAC1vMbq1avrT3/6U/AzeLNOZ1WOb7/9Nnhb08B87NzciveaOvroo0OP+Oabb0LnnCCAAAIIIIAAAggggAACCCCQCQKu9T979ZLq1s2EHtIHPwo0biz94hf2kX/+uTRrlr2MqP8EKs7M+c8jOGIza/Pkk0+u8ujN2p+lmyY1bNiw0nYahG1NZjZPiuZYvHhxcJ1RV13zKb3ZfGlPYPXfffv2uaoRRwABBBBAAAEEEEDAVwKrV6/W008/HTHmvLy84JdfEQUEEEBAO3dKS5faIdj93e5CNHUCN99csumRbUuVBx+ULrssdX3hSZkrQAI0Ce9m7969oVZr1qwZOnedhNc5EOUqvStWrAjuTu9q08RNYvXQoUMkQCtCogwBBBBAAAEEEEDAVwJmk9MZM2ZEjLlOnTokQCNUCCBQImBmf9qSS6aU9T/5LUm3QOvW0hVXKPDv9sievP++tGiRZGYqc/hbgE/gk/D+w2dcmr9JruwIr1NQUFBZdcoRQAABBBBAAAEEEEAAAQQQSJmAa/3PFi2kjh1T1g0ehIBTYOxYZ5EeeMBdRol/BEiAJuFdh6/5WVRUVOkTCsP+Ki08GVrpjVRAAAEEEEAAAQQQQAABBBBAIMkCCxbYHzB4sD1OFIFUC5x6qjRggP2pJoH/ySf2MqL+EeAT+CS86/z8/FCrBw8eDJ27TsLrmE9vojmGDBmiijZoMusaTZ8+XeFtR9MudRBAAAEEEEAAAQQQQAABBBAoFfjoI+nHPX5LQ6GfrP8ZouAkAwRuvVWaN8/ekYkTpb//3V5G1B8CJECT8J5r164dajV8PdBQsNxJ+Cfz0SZAWwcWuTB/XMc777yjaJ7tup84AggggAACCCCAAAIIIIAAAq7d33MD2YTevfFBIHMEzO/j6adLH34Y2aennpLuvVdq2TKyjIg/BPgEPgnv2Wxq1Lhx42DLW7durfQJW7ZsCdVp1KhR6JwTBBBAAAEEEEAAAQQQQAABBNIp4Fr/87zzpKOOSmfPeDYCkQJmFqjtCOwPrcmTbSXE/CJAAjRJb7pt27bBls3szh07dlT4FLMTZenRkRWkSyn4iQACCCCAAAIIIIAAAgggkEaB3buld9+1d4Dd3+0uRNMrMGyYdPzx9j5Mm6ZAfsZeRjT7BUiAJukdd+rUKdTy8uXLQ+e2kxUrVoTC4feFgpwggAACCCCAAAIIIIAAAgggkGKBV1+VzMw528H6nzYVYukWyMmRxoyx92LPHunRR+1lRLNfgARokt5xr169Qi3Pc63CG6hhPn//yKwqHThOPPFE8Ql8kIL/QQABBBBAAAEEEEAAAQQQSLOAa/3PY46ROndOc+d4PAIOgVGjpKZN7YVTp0oHDtjLiGa3AAnQJL3fDh06BBOapvm33norsBNZ5FZkBQUFuv/++1VUVBTsxU9/+tMk9YZmEUAAAQQQQAABBBBAAAEEEIhNYP58e/2BA6Vq1exlRBFIt0B+vjR6tL0XZguWJ5+0lxHNbgESoEl8vzfffHOo9XvuuUfTp0/Xxo0bVVhYKPPZ+y233KIPPvggWMd8+t6zZ89QfU4QQAABBBBAAAEEEEAAAQQQSJfAJ59IX39tfzrrf9pdiGaOwPXXS3Xq2PszaZJ0+LC9jGj2CpAATeK7PfnkkzV+/HjVqlVLxcXFmhZYcfeKK65Qv379dMMNN6h0bdAWLVpo4sSJql6d15HE10HTCCCAAAIIIIAAAggggAACUQq4dn83/9nap0+UjVANgTQJNGokXXut/eFffCHNmmUvI5q9AmTckvxu+wT+L8Of//zn4OfwpQnO0k/ec3NzNWLEiGB5gwYNktwTmkcAAQQQQAABBBBAAAEEEEAgOgHX+p/nnKPA3hXRtUEtBNIpYD7KDaRdrMeDD1rDBLNYwPGrkMUjjmNogwcPlvkT63H88ccHZ38eCKy0+/nnnwc3PmrevLlatWqlunXrxtoc9RFAAAEEEEAAAQQQQAABBBBImsC+fdLbb9ubZ/d3uwvRzBNo3VqBr3ClGTMi+/b++9KiRVKvXpFlRLJTgBmgKXyv5lP4zoGt8swn8GbNT5KfKcTnUQgggAACCCCAAAIIIIAAAlEJLFggBfbstR6s/2llIZihAmPHujsWWImQw0cCJEB99LIZKgIIIIAAAggggAACCCCAAAKVCbjW/2zSROratbK7KUcgcwROPVVyzVo2yzysXJk5faUnyRUgAZpcX1pHAAEEEEAAAQQQQAABBBBAwFMC8+fbuztwoAKb99rLiCKQqQLjxrl79sAD7jJKskuAf3Vl1/tkNAgggAACCCCAAAIIIIAAAghUWWD1amntWvvtrpl09tpEEcgMgd69pe7d7X3517+k9evtZUSzS4AEaHa9T0aDAAIIIIAAAggggAACCCCAQJUFXLu/V6umwH4WVW6WGxFIq4BrFmhhoTR5clq7xsNTJEACNEXQPAYBBBBAAAEEEEAAAQQQQACBTBdwrf955plS06aZ3nv6h4BdYNgwqV07e9m0adKOHfYyotkjQAI0e94lI0EAAQQQQAABBBBAAAEEEECgygIHDkhvvmm/nd3f7S5EvSGQkyONGWPv65490iOP2MuIZo8ACdDseZeMBAEEEEAAAQQQQAABBBBAAIEqC7z+urR/v/121v+0uxD1jsBVV7lnMU+dKpm/AODIXgESoNn7bhkZAggggAACCCCAAAIIIIAAAlELuNb/bNjQvYlM1I1TEYE0C+TnS6NH2zuxdav05JP2MqLZIUACNDveI6NAAAEEEEAAAQQQQAABBBBAIC4B1/qfZvan+YSYAwGvC1x/vVSnjn0UkyZJhw/by4h6XyDX+0NgBAgggAACCCCAAAIIIIBAdAIdOnTQ2LFjIyrXqFEjIkYAAT8JfPWV9MUX9hGz/qfdhaj3BBo1kq69VvrjHyP7bn7/n31WGjEisoyI9wVIgHr/HTICBBBAAAEEEEAAAQQQiFKgdevWgf/4DfzXLwcCCJQReOmlMpdlLi68sMwlFwh4WuDXvy7Z9KiwMHIYDz5IAjRSJTsifAKfHe+RUSCAAAIIIIAAAggggAACCCBQZQHX+p+nny4dc0yVm+VGBDJOoFUraeRIe7eWLpUWLrSXEfW2ADNAvf3+6D0CCCCAAAIIIIAAAggggAACcQkcPCgtWmRvgt3f7S5EvS1gVkL5xz/sY3jgAal3b3tZtkVXr16tCRMmVDis22+/XSeffHKFdbxQSALUC2+JPiKAAAIIIIAAAggggAACCCCQJIHFi6W9e+2Ns/6n3YWotwW6dJFMct8289nEVqyQTJ1sP7Zs2aIZM2ZUOMxRo0ZlRQKUT+ArfM0UIoAAAggggAACCCCAAAIIIJDdAq7d3+vXl846K7vHzuj8KzBunHvsZi1QjuwSIAGaXe+T0SCAAAIIIIAAAggggAACCCAQk4BtFpxpYMAAKZfvRmOypLJ3BMxn7t272/v7r39J33xjL8um6OmBRX4/+OCD4J/bbrstNLQxY8aE4mdlyd+CkAANvV5OEEAAAQQQQAABBBBAAAEEEPCXwIYN0r//bR8z63/aXYhmj8Ctt9rHYnaInzzZXpZN0bp168okQc2fVmZ3qB+Pli1bhuL16tUrDXv6JwlQT78+Oo8AAggggAACCCCAAAIIIIBA1QVeftl9b//+7jJKEMgGgWHDpHbt7COZNk3avt1eRtR7AiRAvffO6DECCCCAAAIIIIAAAggggAACCRFwrf9pNoA57riEPIJGEMhYgeqBrFjga2/rYTYGe/RRaxFBDwqQAPXgS6PLCCCAAAIIIIAAAggggAACCMQrYD7zXbjQ3gq7v9tdiGafQGCTczVrZh/X1KnSgQP2MqLeEiAB6q33RW8RQAABBBBAAAEEEEAAAQQQSIjAm29Ku3bZm2L9T7sL0ewTqFVLGj3aPq6tW6UnnrCXEfWWAAlQb70veosAAggggAACCCCAAAIIIIBAQgRcu78H9kXROeck5BE0goAnBK6/XqpTx97VSZOkw4ftZUS9I0AC1Dvvip4igAACCCCAAAIIIIAAAgggkDAB1/qf/fpJeXkJewwNIZDxAg0bSr/4hb2ba9dKCxbYy4h6R4AEqHfeFT1FAAEEEEAAAQQQQAABBBBAICECmzZJK1fam2L9T7sL0ewWuPlmKTfXPsYnn7THiXpHgASod94VPUUAAQQQQAABBBBAAAEEEEAgIQJz5rib6d/fXUYJAtkq0KqVNHKkfXSrVtnjRL0jQALUO++KniKAAAIIIIAAAggggAACCCCQEAHX+p+dOklt2iTkETSCgOcExo71XJfpcJQCJECjhKIaAggggAACCCCAAAIIIIAAAtkgUFQkvfaafSTs/m53IeoPgS5dpMqWgDCzp816oYsW+cMkW0ZJAjRb3iTjQAABBBBAAAEEEEAAAQQQQCAKgSVLpB077BUrS/7Y7yKKQPYIjBtX8Vh275amTZN69y5Jlm7dWnF9SjNDgARoZrwHeoEAAggggAACCCCAAAIIIIBASgRcu7/n50vnnZeSLvAQBDJWoFcv6dhjo+ueWUrijDOk9eujq0+t9AmQAE2fPU9GAAEEEEAAAQQQQAABBBBAIOUCrvU/+/aVatVKeXd4IAIZJfDPf0qbNkXfpW++kYYOlQoLo7+HmqkXIAGaenOeiAACCCCAAAIIIIAAAggggEBaBLZtkz76yP5o1v+0uxD1j8C+fdKYMbGP1/wz9Ze/xH4fd6ROgARo6qx5EgIIIIAAAggggAACCCCAAAJpFTCfvxcX27tAAtTuQtQ/ArNnxzb7M1zm0UfDrzjPNAESoJn2RugPAggggAACCCCAAAIIIIAAAkkScK3/2aGD1K5dkh5Kswh4RMC1PEQ03f/0U2nDhmhqUicdAiRA06HOMxFAAAEEEEAAAQQQQAABBBBIscDhw9KCBfaHsvu73YWovwS++iq+8cZ7f3xP5+6KBHIrKqQMAQQQQAABBBBAAAEEEMgmgbVr12rOnDkRQ8rLy9Mvf/nLiDgBBLJJ4P33pe++s4+Iz9/tLkT9JRDvRkbbt/vLy0ujJQHqpbdFXxFAAAEEEEAAAQQQQCAugXXr1unhhx+OaKNOnTokQCNUCGSbgOvz3po1pV69sm20jCfZAv/4xz+0efPm4GMOHToU/Llr1y499NBDwfO2bdtq+PDhye5GQts/7rj4mvvZz6Q77pBGj5by8+Nri7sTK0ACNLGetIYAAggggAACCCCAAAIIIIBARgq41v80yU+SNRn5yjK6U3/84x/1wQcflOnjzp07NXbs2GBswIABnkuA9ukj/c//lBlSTBe7d0u33SZNnSqNHy+NGiXl5MTUBJWTJMAaoEmCpVkEEEAAAQQQQAABBBBAAAEEMkXAfJpbLlcV6hrrf4YoOPG5wGWXSXXrxo/w7bfStddKXbpIL7wQf3u0EL8AM0DjN6QFBBBAAAEEEEAAAQQQQAABBDJawHz+bjZBsh2s/2lTIVaZwJ133qlt27Y5qx0X7/fkzpaTV9C0qfRf/1XyJxFPWbVKGjpUOvdcaeLEkp+JaJc2YhcgARq7GXcggAACCCCAAAIIIIAAAggg4CkB1/qfrVtLJ57oqaHQ2QwRGDJkSIb0JLHdMJ+wL10qzZ6duHbffls677ySZOh990kdOyaubVqKToBP4KNzohYCCCCAAAIIIIAAAggggAACnhQoLpZefdXe9YED7XGiCPhVoFo16emnSzYyMucVHW3aSP/n/0j161dU60jZ889LnTtLv/iFZD6T50idAAnQ1FnzJAQQQAABBBBAAAEEEEAAAQRSLrBsmbRli/2xrP9pdyHqb4HcwPfSgT2e9OGH0n/+Z2SC86yzpClTpDVrpEcfldauLUmY5uVV7lZUJE2bJnXoIN1+u/TDD5XfQ434BUiAxm9ICwgggAACCCCAAAIIIIAAAghkrIBr9/caNaTevTO223QMgbQLnHaa9Le/SW+8caQrZqOkd9+VbrxRKk14NmlSkjBdvVq68kqpspmjprX9+6X775fatZMmTZIKCo48g7PEC5AATbwpLSKAAAIIIIAAAggggAACCCCQMQKu9T8vuCAxO15nzEDpCAIpEMjJcT+kbVtpxoySmaMXXuiuF16yfbs0Zox0wgnS9OnuzcrC7+E8dgESoLGbcQcCCCCAAAIIIIAAAggggAACnhDYuVN67z17V9n93e5CFIF4BczMUbPu7oIF0umnR9faN99Io0ZJXbtKc+ZEdw+1ohcgARq9FTURQAABBBBAAAEEEEAAAQQQ8JSAScIUFtq7zPqfdheiCCRKoG/fkh3lZ84s+dQ9mnZXrpQGDZJ69XL/5UU07VCnrAAJ0LIeXCGAAAIIIIAAAggggAACCCCQNQKu9T9btJBOPjlrhslAEMhYAbMe6MiR0r//LU2dKjVrFl1XFy+Wzj5bMmuOfvZZdPdQyy1AAtRtQwkCCCCAAAIIIIAAAggggAACnhYwM0Btx8CBtigxBBBIloDZdOxXvyrZMf6uu6Jff/fZZ0v+suK666RNm5LVu+xvlwRo9r9jRogAAggggAACCCCAAAIIIOBDgeXLpW+/tQ+c9T/tLkQRSLZA3brS+PElidDrr5dMYrSywyxj8ec/S+3bS3feKe3aVdkdlJcXIAFaXoRrBBBAAAEEEEAAAQQQQAABBLJAwLX7e26uZNYm5EAAgfQJmE/hH3lEWrVKuvxyyXwqX9mxb580YULJeqJ//KN08GBld1BeKkACtFSCnwgggAACCCCAAAIIIIAAAghkkYBr/c9zzpGOOiqLBspQEPCwgJnV+dRT0vvvS336RDeQ776TbrpJOvFEacYMqbg4uvv8XIsEqJ/fPmNHAAEEEEAAAQQQQAABBBDISoE9e6R33rEPjd3f7S5EEUinQPfu0muvSWbmdteu0fXkq6+kn/1M6tZNmjcvunv8WosEqF/fPONGAAEEEEAAAQQQQAABBBDIWoH586VDh+zDY/1PuwtRBDJBYMAAadky6e9/l9q0ia5HH38smX+uzdIWH3wQ3T1+q0UC1G9vnPEigAACCCCAAAIIIIAAAghkvYBr/c+jj5ZOPTXrh88AEfC0gFkP1MzsXLNG+v3vpSZNohvO669LZ54pjRwpffFFdPf4pRYJUL+8acaJAAIIIIAAAggggAACCCDgGwHX57Dm8/doNlvxDRQDRSCDBfLyStb6XLtWuuMOqXbtyjtr1gM1a4p26iT96lfS1q2V3+OHGiRA/fCWGSMCCCCAAAIIIIAAAggggIBvBMyu0l9/bR8u63/aXYgikMkC9euX7P5uZnX+8pdSbm7lvTVLYJhd5tu1k377W8msC+zngwSon98+Y0cAAQQQQAABBBBAAAEEEMg6Adfu79UDGYB+/bJuuAwIAd8IHHus9Kc/SZ9+Kg0bFt2wTeJz/PiSROjDD7vXBt606Uh75jzbdpYnAXrk/XKGAAIIIIAAAggggAACCCCAgOcFXOt/nn221KiR54fHABDwvcAJJ0jPPiu9+67Us2d0HOZT+BtvlDp2LPlE3iQ49+6Vfvc7qWVL6e67j7Rz//3SccdJv/mNtHv3kbiXz0iAevnt0XcEEEAAAQQQQAABBBBAAAEEwgT27ZPefDMsEHbK7u9hGJwikAUCZ50lLVokvfSS1LlzdAMy64maTZJOOaVkVqhJcm7YEHnvxo0lyVFTz+wy7/UjilUDvD5E+o8AAggggAACCCCAAAIIlAi0adNG1157bQRHntlpggOBLBAwu0AXFNgHwvqfdheiCHhdYNAgyfzz/fe/S3fdJX3zTeUjMmsFR3OYtnr1KpltetJJ0dyRmXVIgGbme6FXCCCAAAIIIIAAAgggkASB9u3ba+zYsUlomSYRyAwB1/qfTZpI3bplRh/pBQIIJF7ArPF71VUlszunTpXuu0/avj0xz9m5UxoxomQmaE5OYtpMdSsBHg4EEEAAAQQQQAABBBBAAAEEEMgGAdf6n+bzd5Mg4UAAgewWqFlTGjNGMp+633qrlJ+fmPF+8on0z38mpq10tMK//tKhzjMRQAABBBBAAAEEEEAAAQQQSLDAZ59JX35pb5T1P+0uRBHIVoEGDSSzmdHnn0vXXCMlYuYmCdBs/W1hXAgggAACCCCAAAIIIIAAAgh4RMA1+7NaNal/f48Mgm4igEBCBVq0kKZNk1aulIYOja/pd96J7/503s0M0HTq82wEEEAAAQQQQAABBBBAAAEEEiTgWv+ze3epadMEPYRmEEDAkwIdO0rPPBNf13ftkvbvj6+NdN1NAjRd8jwXAQQQQAABBBBAAAEEEEAAgQQJHDggLV5sb4zd3+0uRBHwm0CNGlKtWlUfdW5gK3WzxqgXDxKgXnxr9BkBBBBAAAEEEEAAAQQQQACBMIFFi9wzs1j/MwyKUwR8LtC+fdUB2rXz7mZqJECr/t65EwEEEEAAAQQQQAABBBBAAIGMEHCt/9mwoXTmmRnRRTqBAAIZIHDxxVXvRDz3Vv2pibmTBGhiHGkFAQQQQAABBBBAAAEEEEAAgbQJuNb/NJsfJWL357QNjAcjgEBCBW64QcrPj71J8+n7jTfGfl+m3EECNFPeBP1AAAEEEEAAAQQQQAABBBBAoAoCX30lffaZ/UbW/7S7EEXArwJmV/h77ol99L/7ndSqVez3ZcodJEAz5U3QDwQQQAABBBBAAAEEEEAAAQSqIDBnjvsmMwOUAwEEEAgXuPlm6aabwiMVn5tZo+PGVVwn00tJgGb6G6J/CCCAAAIIIIAAAggggAACCFQg4Fr/87TTpGOPreBGihBAwLcCv/+9NH26dMwxboKjj5Yee0x6+GF3Ha+UkAD1ypuinwgggAACCCCAAAIIIIAAAgiUEzh4UFq4sFzwx0t2f7e7EEUAgRKB//W/pLVrpZkzpR49jqicdZY0Y0ZJ2c9/fiTu5bNcL3eeviOAAAIIIIAAAggggAACCCDgZ4E335T27LELsP6n3YUoAggcEahdWxo5UtqxQ1qypCR+5ZWS+ZNNBzNAs+ltMhYEEEAAAQQQQAABBBBAAAFfCbh2f69fv+yMLl+hMFgEEECgnAAJ0HIgXCKAAAIIIIAAAggggAACCCDgFQHX+p8XXijlZug3n08//bRycnKCf+6+++4Q9cjANLTS+KeffhqKc4IAAgjEK5Ch/zqMd1jcjwACCCCAAAIIIIAAAggggEB2C2zYILnyhJm8/mdxcbEOHz4c8XJM3PwxR+nPiEoEEEAAgSoIkACtAhq3IIAAAggggAACCCCAAAIIIJBuAdfn76ZfAwaku3fu59erV08dOnRwVwiU1KxZs8JyChFAAIFYBEiAxqJFXQQQQAABBBBAAAEEEEAAAQQyRMCVAD3lFKllywzppKUbAwcOlPnDgQACCKRKgDVAUyXNcxBAAAEEEEAAAQQQQAABBBBIkEBhofTaa/bG2P3d7kIUAQT8K0AC1L/vnpEjgAACCCCAAAIIIIAAAgh4VODtt6Vdu+ydz+T1P+09JooAAggkV4AEaHJ9aR0BBBBAAAEEEEAAAQQQQACBhAu4dn+vU0c677yEP44GEUAAAU8LkAD19Ouj8wgggAACCCCAAAIIIIAAAn4UcK3/2bevlJfnRxHGjAACCLgFSIC6bShBAAEEEEAAAQQQQAABBBBAIOMENm+WVqywd4v1P+0uRBFAwN8C7ALv7/fP6BFAAAEEEEAAAQQQ8JXA+vXrtXjx4ogx16hRQ1dccUVEnAACmShgZn8WF9t7NmCAPU4UAQQQ8LMACVA/v33GjgACCCCAAAIIIICAzwTWrFmju+++O2LUdQILJ5IAjWAhkKECrvU/TzpJats2QztNtxBAAIE0CvAJfBrxeTQCCCCAAAIIIIAAAggggAACsQgUFUnz59vvYPd3uwtRBBBAgAQovwMIIIAAAggggAACCCCAAAIIeETgvfekHTvsnWX9T7sLUQQQQIAEKL8DCCCAAAIIIIAAAggggAACCHhEwLX7e36+dMEFHhkE3UQAAQRSLEACNMXgPA4BBBBAAAEEEEAAAQQQQACBqgq41v/s3VuqVauqrXIfAgggkN0CJECz+/0yOgQQQAABBBBAAAEEEEAAgSwR2LZN+vBD+2BY/9PuQhQBBBAwAiRA+T1AAAEEEEAAAQQQQAABBBBAwAMC8+ZJxcX2jrL+p92FKAIIIGAESIDye4AAAggggAACCCCAAAIIIICABwRc63+2aye1b++BAdBFBBBAIE0CuWl6Lo9FAAEEEEAAAQQQQAABBBBAAIFyAhs3btRZZ51VLloy83PTptLwA4GT/yi9ELM/QxScIIAAAlYBEqBWFoIIIIAAAggggAACCCCAAAIIpF6gsLBQGzZsqOTBe8qUs/5nGQ4uEEAAgQgBEqARJAQQQAABBBBAAAEEEEAAAQQQSI9A9erVVadOneDDTTK0oKAgeF69eq4OH675Y6dqhDpXMxAyO8BzIIAAAgi4BVgD1G1DCQIIIIAAAggggAACCCCAAAIpFTjuuOO0Z8+e4J/nnnsu9OxmzW4InJuZn+bPqMCfkuOCC6TatUuv+IkAAgggYBMgAWpTIYYAAggggAACCCCAAAIIIIBABgls2WLvDOt/2l2IIoAAAuECJEDDNThHAAEEEEAAAQQQQAABBBBAIAMFiovtnWL9T7sLUQQQQCBcgARouAbnCCCAAAIIIIAAAggggAACCHhEoFUrqWNHj3SWbiKAAAJpFCABmkZ8Ho0AAggggAACCCCAAAIIIIBAVQX4/L2qctyHAAJ+EyAB6rc3zngRQAABBBBAAAEEEEAAAQSyQoAEaFa8RgaBAAIpECABmgJkHoEAAggggAACCCCAAAIIIIBAIgVq1JD69Elki7SFAAIIZK9AbvYOjZEhgAACCCCAAAIIIIAAAggg4F2BPXvcfT/vPKlePXc5JQggEJ9AcWDnsaeffjrYyNdffx1q7JtvvtFTTz0VvO7cubM6deoUKuMkcwVIgGbuu6FnCCCAAAIIIIAAAggggAACPhMwu72bnMuUKdI777gHz+7vbhtKEEiEQGFhoUaOHBnR1JIlS2T+mGP8+PG66667IuoQyDwBEqCZ907oEQIIIIAAAggggAACCCCAgA8Fvv9euvxy6fXXKx+82QGeAwEEEEAgOgESoNE5UQsBBBBAAAEEEEAAAQQQQACBpAns3i316iV98kl0j7jmGumEE6Ru3aKrTy0EEIhNICcnR7/5zW8qvKlnz54VllOYOQIkQDPnXdATBBBAAAEEEEAAAQQQQAABnwpcf330yU9DtG+fdOml0urVUn6+T9EYNgJJFKhevbp++9vfJvEJNJ1KAXaBT6U2z0IAAQQQQAABBBBAAAEEEECgnMDy5dKMGeWCUVwG9mLRww9HUZEqCCCAgM8FmAHq818Aho8AAggggAACCCCAgJ8EmjdvruHDh0cMuWbNmhExAgikSsAkP83mR1U5/v53aezYqtzJPQgggIB/BEiA+uddM1IEEEAAAQQQQAABBHwv0KlTJ917772+dwAgswTeeKPq/Vm5UvrhB6lBg6q3wZ0IIIBAtgvwCXy2v2HGhwACCCCAAAIIIIAAAgggkNECGzfG171Nm+K7n7sRQACBbBcgAZrtb5jxIYAAAggggAACCCCAAAIIZLRAvJsYxXt/RuPQOQQQQCABAiRAE4BIEwgggAACCCCAAAIIIIAAAghUVaBdu6reKdWqJQWWtuVAAAEEEKhAgARoBTgUIYAAAggggAACCCCAAAIIIJBsgYEDq/6Efv2kvLyq38+dCCDgX4Hly5erd+/ewT+///3vQxBTp04NxZctWxaKe/mETZC8/PboOwIIIIAAAggggAACCCCAgOcF/vM/pd/+Vvr++9iHctNNsd/DHQgggIAR+CGwg9qiRYsiML744guZP+bYvn17RLkXAyRAU/DWioqKNHfuXC1YsEDr16/Xvn371LFjR3Xu3Fk9evTQSSedlIJe8AgEEEAAAQQQQAABBBBAAIFMFDjqKGnSJGnUqNh6N3Kk1LdvbPdQGwEEEPCjAAnQJL/1bdu26ZZbbtG6devKPGnp0qUyf6ZPn67bb79dAwYMKFOeLRfffSetXCmZn40aSaecIh19dLaMrmQcBQXShg3S7t0lYzv22OwaH6NBAAEEEEAAAQQQQACB5AtcdZX0+efSPfdE96wLLpAeeyy6utRCAAEEbALnnHOONm3aZCsKxRqZZE4WHCRAk/gS9+7dq7Fjx4aSn+3bt9e5556rpk2b6uOPP9Ybb7yhgwcPasKECTJ1hw0blsTepLbpwNA0frwCU6mlw4ePPLtaNQUMpDvvlPr3PxL34tk770gPPijNmyft339kBK1bS+ZvYseNK0n6HinhDAEEEEAAAQQQQAABBBBwCwT+0zDwhaACk2ikrVvt9cx6n7/6lXTffaz9aRciigAC0QrUqFFDxxxzTLTVPV2PBGgSX98TTzyhtWvXBp9gFpW9M5D1M79c5hg6dKhWrFgRSJKNCyY/p0yZogsCf4XXpEmTYLlX/8ckOwM5X02ebB9BcbH01lsKzHiV/vf/lh5+WAETe91MjR46JI0eLf3pT/Yefv21NHGi9Je/SDNmSBddZK/nhah5n+Z9mSTvV19JgdUcdNxxUp8+Eoute+EN0kcEEEAAAQQQQAABrwn87GfSJZdITz0lBf6TUm+/XTKCVq2k666T/uM/pDZtvDYq+osAAgikV4Bd4JPkv2vXLr3wwgvB1ps1a1Ym+Vn6yC5dugTj5tqsE1pav7Tciz9NYtCV/Cw/HpMg/PnPy0cz+9okcK+4wp38DO/9jh3S4MEKvNfwqHfOFy6UunaVevaU7r1X+uc/S/6fMLM20aBBUmBCs2bO9M546CkCCCCAAAIIIIAAAl4RqFtXuuYa6f/9vyM9vvRSBZZPI/l5RIQzBBBAIHoBEqDRW8VUc2Ege7T/x++iLwn89V3pzM/yjZhP4lu2bBkMmwRoYWFh+SqeuX7uOemRR2Lr7j/+ocA6qLHdk87aJvn3/9k7E7gpimtvH1ZBEEEREBEBMaK4ERUTMdcVr1tMXJC4JFFjjF71KiZxIUYTzXULKkZjIpqY5HPJ1USJWwAT94sGFUXFPa4giygiIIgK3/wLa+iZd5aed5vu6qd+v/ednu7qnj5PnVNddfpU1R13xL8DRVAeeeTqOULjn1X/nCrHkSNXz99a7m5y63nZEUeYjRlTLgf7IQABCEAAAhCAAAQgAAEIQAACEIBA/Qm0r/8thHkHzz//fF6w4cOH57dLbeywww5udfj333/fpk+fbtXyl7pGEvaNHRu9i0W5LyuiO4q2Ne69u9snB1puClRrm3PHa45QJX2W267X8SVLzM47z93eF/9yY8MtNya8bMqNFbdNTeedeebq4f5rrWWmv3btyp5U9wNy8J5yipmiXeOk8eMtN2fIahnj5CcPBCAAAQhAAAIQgAAEIAABCEAAAhBoTQI4QFuI9syZM92V2+S8eJtuumnFX9HiSD69/vrrqXSAzphh9uKLXgp9jsr93RfdUbQtp/C/3D4NFT/ppKLDqfi6T+4uc57bsum03JEr3FENH9efT3L2emeo/9Rk5n7bf5bap2Ol9sfdV+l8OaJPPDG+89PLo0WtRuWKfNAgv4dPCEAAAhCAAAQgAAEIQAACEIAABCCQDAI4QFuoHGbPnu2urBXf27evjLl37975u3j77bfz22naeOyxNN1t/e9VQ+M1Q0J09fj639XqKFzdW61JC0NpeoBap0Co9XfIDwEIQAACEIAABCAAAQhAAAIQgAAEaiVQ2TNX69XI7who7s+VX3iRevToUZVK9+6rh4IroxZPipMeeughe/DBB8tmfeqpp0yLLy3Jjb/++OOP3dyiK1ZUGpJe9lKxDixYYNalSzTrBrkv236x443cp4aKa3y7j4bdMLfdcveTu3grpB/kfuOT3F9ujLv95Yvf65v73PuL7Z1zn2mWMefVtHe/kKXcR6/cgc7u4JQpOWnTLG45EdkPAQhAAAIQgAAEIACBOhFYlZuXqssXHS0F1rRkn65OIvKzEIAABEoS6Khhrs2YcIA2I0x/qaUaR/xFWkvjjaukaJ7ly5dXyb368LPPPpsbUn1zxbxyrH6aC82TA1Rzkv7973+vmL8pB7fe2uymm6JXOCz6pcx2y91PmR9s5t3/EbneQZHt6GbaZYzKUmr7hYKdLahiBb/DFwhAAAIQgAAEIAABCGSFwE2RjlZL9umywhM5IQCBdBA48MADc2vDfLFQTDPccm4mQlJzE5DD0ac4Hutonk8+UUQhCQIQgAAEIM9nAcAAAEAASURBVAABCEAAAhCAAAQgAAEIQAACEGgOAkSANgfFomtE5/z8/PNKq4SvPvGzzz7LXyHqDM3vbIYNDZuIMxy/sT+lEf9PPGG5of/+Crkx8W54uP9e/KlQZg2TX506dVq96nu1lcfLHS+331+/3PFy+0udp7xr5FOO6bm/SuWbWxrdNlbGlKZFuft+ucq9a6X7vvk8X/nK6nLM72ADAhCAAAQgAAEIQAACEKiJgIJipk9XX6N80kK7mvKMBAEIQCBUAs0Z/SlGOEBbQFM6d149J6IuHWeOlmgeP79Ltdv6+te/bltr3HmZdOutt9qf/vSn/O9vttlm9h//ER2yXebEJuyeNMnskktqv8AJJ5j95je1n9faZ8j5uW1uWtPcbAJfpPg8zzjD7FvfyrmEcwG++tNcmX7bf8bd15jzCx23/v7jfH49TiaXZ7vtzM48M3Z2MkIAAhCAAAQgAAEIQAACJQhoYdy99967xJE1uyZMmGCHHnromh1sQQACEIBARQI4QCviadzBtddeO39idD7Q/M6ijeiQ+bgO0AEDBpj+yqXHcsuyx/ntcuc3Zv/YsWYTJ+ZiBqsFDUYu3r+/2QUXRHYkeLNtbsKIq68222svyy0qFf9G5RiUjM08f2/8G8jl1P16R2slB+oDDzS+PEaPrumWyAwBCEAAAhCAAAQgAAEIlCCw7rrr2rnnnlviyJpdX/7yl9d8YQsCEIAABKoSwAFaFVHtGbSo0frrr2/vv/++zZ8/v+oF5s2bl8+z3nrr5bfTttGtm9ndd+fWQM+9rHxDC79XSX1zI6eVv2fPKhkTdHjXXVdHq/4gtwB8nKjKgQPN/va3+jo/hS+3YKT7+2IBybJEd9vNTJG8ms6gltSnj9nJJ9dyBnkhAAEIQAACEIAABCAAgVIE5AD9+c9/XuoQ+yAAAQhAoJEEWASpkeCqnTZQnq9cUnTnwoULK2afNWtW/vgWW2yR307jxuDBZtOmmR11VOW5IDVa48knLTeMP31SHnec2b33Wi4Ct/K9H5RbGF4sFOWaltSmjZkWmezRI/4dd+hgdsstZl27xj+HnBCAAAQgAAEIQAACEIAABCAAAQhAoLUI5OLCSC1BYMstt8w5+HIevlyaMWOG7abQujLp2WefzR/ReWlPiuj8f//PcsM2zG6/3eyZZ8wWLLBcVOxqh6ccg2kX8z//0+yll8xuu83szjvNXnnFbPFis969zbQQ0OGHm+24YzpLMjddrP3zn2bf+IbZO+9UlkFRv3J+VlDvyhfgKAQgAAEIQAACEIAABCAAAQhAAAIQaGECOEBbCLAcnlqESGny5MllHaAa/v7000+7fJtvvrmleQi8EyLyT460kBfFyc104CJdFe0aWho2zEx++QsvNLvuOrMPPyyUUOt8aVEnjczZOM0L3ReKxTcIQAACEIAABDJAQO1vH6gQFbddu3a2zz77RHexDQEIQAACEIBAIARwgLZQQWrVdTk0X86tCPToo486J+h/Kmwwkj7JrUZz8cUX2+eff+72HnnkkZGjbEKgvgS6dze79NLVTtB//cvsrbdWL6bUr9/qKNfIWl/1vVF+HQIQgAAEIAABCNRA4LnnnrPTTz+9wRlajBQHaAMs7IAABCAAAQgEQQAHaAsW45gxY+yEE05wv/A///M/NnfuXBs5cqT16tXLXnjhBZswYYIbHq8MGvq+q1bYIUEgYQS0gNKIEav/EnZr3A4EIAABCEAAAhCAAAQgAAEIQAACEKhKAAdoVUSNzzB06FC3et9FF11ky5cvt+uvv979aXiNj/rU1TfaaCO75JJLrG3bto3/Mc6EAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEGhDA49YASfPu2GOPPezaa691w+G9g9M7P9vnQutGjRrljnfXeGMSBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQg0KwEiABtVpylLzZo0CAX+ako0FdffdU08Xrfvn2tf//+1rVr19InsRcCEIAABCAAAQhAAAIQgAAEIAABCEAAAhBoMgEcoE1GGP8CnTp1sq233tr9xT+LnBCAAAQgAAEIQAACEIAABCAAAQhAAAIQgEBjCTAEvrHkOA8CEIAABCAAAQhAAAIQgAAEIAABCEAAAhBIPAEcoIkvIm4QAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQaCwBHKCNJcd5EIAABCAAAQhAAAIQgAAEIAABCEAAAhCAQOIJ4ABNfBFxgxCAAAQgAAEIQAACEIAABCAAAQhAAAIQgEBjCeAAbSw5zoMABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQSTwAHaOKLiBuEAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEGksAB2hjyXEeBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgkHgCOEATX0TcIAQgAAEIQAACEIAABCAAAQhAAAIQgAAEINBYAjhAG0uO8yAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAIHEE8ABmvgi4gYhAAEIQAACEIAABCAAAQhAAAIQgAAEIACBxhLAAdpYcpwHAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIJJ4ADtDEFxE3CAEIQAACEIAABCAAAQhAAAIQgAAEIAABCDSWAA7QxpLjPAhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQCDxBHCAJr6IuEEIQAACEIAABCAAAQhAAAIQgAAEIAABCECgsQRwgDaWHOdBAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACiSeAAzTxRcQNQgACEIAABCAAAQhAAAIQgAAEIAABCEAAAo0l0L6xJ3Jeugi88sor9tBDD6XrprlbCEAAAhCAAAQgAAEINDOBGTNm2Mcff9zgqitXrqS93IAKOyAAAQhAAAL1ITBixAhr37753JZtVuVSfUThV1uSwEUXXWRjx45tyZ/g2hCAAAQgAAEIQAACEIAABCAAAQhAAAIQaHYCCxYssPXXX7/Zrtt8rtRmuyUu1BwEvvSlL9k3vvENmzlzpr322mvNcclGXUPe+rXWWit/7ooVK+zTTz/Nfw9hQ/JF30osW7bMFEEQUlp77bWtTZs2eZGWLl2a3w5lo0uXLnlRVH4qx5BSu3btrFOnTnmRZIeyx5BSx44drUOHDnmRli9fbp9//nn+ewgbKkOVpU+KYArtPWbUFiVbqSgtL38aP9u2bWudO3fO3/pnn31mn3zySf57CBuyQ9mjTzz7PYl0fYb+7Fe7RjL6pOeFnhshpeJ2OM/+dJaunhl6dvhEO9yTSM9nFp/9atuojRNSykI7PPRnPw7QkCwyIsshhxxi+jvrrLPskksuiRxp3U11ZHv37p3/0ffee88WLlyY/x7CRo8ePaxbt255Ud55553gnGe9evUq6MxqSoWQkhxKG220UV4kdYDefvvt/PcQNvTAjsooO5Q9hpRkh+utt15epHfffdeWLFmS/x7CxgYbbFDgPHv99deDa1z27ds3/8JFnfU33ngjhKLLyyDHYNQWFy9ebHPmzMkfD2FDz349N3yaP3++ffjhh/5rEJ+qa9ZZZ528LG+99VZwjuw+ffrkX/DqZcSrr76alzeEjeJnv162zJo1KwTR8jLIcbbhhhvmv3/wwQemaJqQ0rrrrmtqi/s0e/ZsC81BqGd/9CW2gltCC7aIPhf10uzNN9/0RRrEpwJmojIuWrTI5s2bF4RsXgg9E3v27Om/OvkkZ0hJz/6uXbvmRZKehhZQomeGD7ZQPVPPYLo86GbcYAh8M8JM4qVuu+02u/vuu+t2a3Pnzi14gG288cYFlX/dbqwZf1iVQrQxueWWWxY4RJvxp+p2qaeffrqgY7fTTjvlHRR1u6lm/GE5WZ566qn8FdV533rrrfPfQ9hQpyfquFbHdsCAASGIlpdBDoioI2mzzTZr1iET+R+q48bzzz9f4NQdNmxYQZR9HW+t2X768ccfz19LzsIvf/nL+e8hbMjhqdEZPqkxrVEbISXZoezRp0022aTACeP3p/lT9anqVZ+22mqrgk6R35/mTz0X9Xz06Stf+YrfDOJT0Ulq3/ikzvvQoUP91yA+1T6Ndl71gql///5ByOaF0EuyqCNJ9Wn0ZajPl+bP5557rsCpu/322xeMeEmzbLp3OVmmTZuWF0PO3u222y7/PYQNOQJffPHFvChyFA4ePDj/PYQNvXxQIJBPAwcOLAiE8vvT/PnSSy8VvNDdZpttCkYSpFk2f+9PPPFEfgSdIpeHDx/uD9Xl85prrrHo6LCm3gQO0KYS5PyKBG6++Wb7+c9/ns9z+umn2w9+8IP89xA2zjjjDPvb3/6WF+XGG2+0HXfcMf89hI299tqr4IGmznt02H/aZXz//fdt5513zosh5+df/vKX/PcQNu677z47+eST86J85zvfsZ/85Cf57yFsXHrppfa73/0uL8oVV1xh++23X/57CBuHH364TZ8+PS/Kgw8+GJxjaciQIflh/RpB8PDDD+flDWFDi68cdthheVH23XdfGz9+fP57CBs33HCDXXzxxXlRNCf5d7/73fz3EDb++7//2yZPnpwXRS+c1REKKX3ta18zRe8qKRrkhRdeCEk8U2d9jz32yMskp5LarSElBUH88Ic/zIv0/e9/3370ox/lv4ewccEFF5ja3j6ps7znnnv6r0F8HnzwwQUvzh577LGgnLyKoIsGHuil2ZQpU4IoOy/Ev/71L1Pb26dvfvObdR2l6e+jOT9/+9vfmtrePp1//vk2evRo/zWIz+OPP75gobw777zTNt988yBk80LI4ekjdzUcPvqi0OdJ8+eayUTSLAX3DgEIQAACEIAABCAAAQhAAAIQgAAEIAABCECgBAEcoCWgsAsCEIAABCAAAQhAAAIQgAAEIAABCEAAAhAIgwAO0DDKESkgAAEIQAACEIAABCAAAQhAAAIQgAAEIACBEgRwgJaAwi4IQAACEIAABCAAAQhAAAIQgAAEIAABCEAgDAI4QMMoR6SAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEShDAAVoCCrsgAAEIQAACEIAABCAAAQhAAAIQgAAEIACBMAi0D0MMpEgqgQEDBth+++2Xv73Bgwfnt0PZ2Hbbbe3TTz/Ni7Peeuvlt0PZ2H333W3BggV5cdq2DevdyVprrVWgp/3798/LGspGnz59CmQcOnRoKKLl5dhiiy0KZOzbt2/+WCgbO++8s6ksfercubPfDOZz//33t5UrVzp5evToEYxcXpDu3bsX6OmwYcP8oWA+Bw0aVCDjwIEDg5HNC7L99ttbu3bt/FcLUVf32msv+/DDD52MUVnzQqd8Q/VntI0qvQ0t6TkYlXHIkCGhiWhbbbVVgYy9e/cOTsZddtnFNtlkk7xcHTt2zG+HsKH6JaqnvXr1CkGsAhl69uxZION2221XcDyEL+rnR8sxxP7U8OHDrUuXLvni6tatW347lI29997bli5d6sRRHzm01GZVLoUmFPJAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEBCBsMK4KFMIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhECOEAjMNiEAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEwiKAAzSs8kQaCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAIEIAB2gEBpsQgAAEIAABCEAAAhCAAAQgAAEIQAACEIBAWARwgIZVnkgDAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIRAjgAI3AYBMCEIAABCAAAQhAAAIQgAAEIAABCEAAAhAIiwAO0LDKE2kgAAEIQAACEIAABCAAAQhAAAIQgAAEIACBCAEcoBEYbEIAAhCAAAQgAAEIQAACEIAABCAAAQhAAAJhEWgfljhIA4GWJ/Dpp59a+/btrU2bNjX92GeffWYffPCBO6dLly6mv7SmFStW2KxZs2zOnDm2wQYb2KBBgxyTtMpT6r4///xze/bZZ92h3r17W9++fUtlS+W+ZcuW2RtvvGGvv/66LVq0yDbeeGPr37+/+2zXrl0qZSp104sXL3ZySt5evXrZRhttZB07diyVte77PvnkE3vkkUfcfWy33XbWs2fPut9TUm5A9eabb77p6s9NNtnEBg4cmLr6ZtWqVa7OlL0tWbLEpJuqY7p27Zr/Ux2z9tprJwV7o+5Dejxv3jxbvny5+5OMetZJTn2uu+66jbouJ7UOAT3bG1NHSq9V9kqqa0n1JZD1csxCG1UaNnv2bJs/f75TNrUbau2X1FdLy/96Vtqoej6qDPW3zjrr2IYbbmjrr79+eTB1PEIbtTx89e/Vp1I5durUyb70pS/ZeuutV/6EBB7JShvVo2+TE3iV/8InBCBQmsCHH35ov//9751DTB1xVXBDhgyxYcOG2be+9S1ba621Sp8Y2fvyyy/bcccd5/Ycc8wxduyxx0aOJmdz4cKFzikmR0NxY0oP69tuu81uuukmExOf5BDedttt7Uc/+pH169fP7071p5wU++67r5PhO9/5jn3/+99PrDxPPfWU/fvf/3b3d+CBBzr9LHWzct7/v//3/+xPf/qTc74U55Ej9MQTT7Svfe1rxYcS8116949//MMef/xxZ0Nbbrllwb2pIfLnP//Z/vKXv9j7779fcExOmN13390OP/xw5+wtOFjnL++9954dfPDB7i7UAL7gggts6623rvNdtdzPr1y50t555x1TvSi93GyzzVyjMfqL6thNmDDB7rvvPlN+n1Tf7LXXXnbaaacl/kXSgw8+aA888IBNnz69oM70skQ/27Zta5tuuqlts802NnLkSBs6dGj0cGK3X3jhBZs4caLNmDHDvRSr1Kzs3r27yWa32mor22+//RLb2Uss7Ba4MennPffc42xR9atehm2xxRamZ4l0MU4688wzberUqS6rf5ET5zzyNB+BrJQjbdQ1OvOrX/3Ktcm1R+WvZ2MSU5baqOIveVUP6kXgWWed1aBI1F5X2T333HOu/RPNoLr3gAMOcH9qEyQlZa2NKu56Uf3KK6/Y22+/7YISvvzlLzdoc06aNMluuOEGe/fddwuKqk+fPvbDH/7QvvKVrxTsT9qXLLRRSzHHAVqKCvsgECHwxBNP2C9+8Yt89GbkkNuUw+/ss8+u2lFIugNUD+vf/e53eUea3l6p4v72t7+dd2pefPHFrqNUzMB/79y5s40ZMybvOPT70/iZJgfouHHj7G9/+5vDLEdEqTfIc+fOtTPOOMO9paxWHir3iy66KHGNaTlYzjvvvLxj83/+53/sP/7jP/Li6A2sjuuzUlKE08knn2wHHXRQpWyteizauNQPqyMjW5ITIrT06quv2s9//nN76623CkTbYYcd7Pzzz3eREOKhMipuVEZPUGS26ma9jEpaUoT8JZdcYs8880yjb23nnXe2//qv/zK9jEpiUodbL8P0bGtM6tChg3tW6KWLXk6QWpeAoqwuu+wymzx5cskf1gvQUaNG2fHHH1/1JS8O0JIIW2VnVsqRNmpDdUqLAzQrbVRFSV555ZV21113ucLSC80//OEPBQV33XXXueemAkoqJb0A/9nPfpaYiPostVEVSCGnpgJGoi90FaX73//937bPPvu4otNxvaSvlNTPUFu+OKCo0jmtcSwLbdRKHJP5qqjSHXMMAq1IQEP5xo4d697i+Z9Vp/ujjz4yNTqVVImoo/69733Pvvvd7/psqfp8+OGH7ac//WlBlJWGnd57773uDeW1117r3mgqSsQnvd3S0He9IXvttdccDzG58MIL3XBxRYQmIal8qjU0St3nxx9/nN+t4X3FzhodTKpjIn/jX2zoAS5nYdQxqIi7wYMHm/RZzlFFNr/00kvuDEVXXn311S7Crvha9fouJ8upp55aUJbRMpLu/eQnP3FRhf4eJaOiWtVo0dAU6akinDQ87vLLLzc57H1Dxp+TlE81wH75y1+a3s7qLbKG74eQHn30UVfXSL7i9OSTT7oo8t/85jeuHvHOTzn0FYmmIeLaJ6eiooBUP8vhrYjmOFH4xb/XUt91X6eccootWLAg/xOSQcPbVK/K3nxEq5yccuBqn/4UGaL6RkkRdYoQGT9+fIPo2PyF67ShDt6ll15a8OsqAz0XNC2KhvLrRYOm1JC9qWMo2cVGZaekyN8777zTnn/+eVMHWeeRWo+AOm5R56dGtvTo0cNF8eou9Ny49dZb7bHHHnPlE9I0MK1HueV/KQvlGHIbVW1o1Y2NSeqL+KQRFcURg5pyRFH3SU8htFHFWC9wpas+Rduo2qfnptorPql81E5V+056oP6KXhCLh579ClpQe0ht1aSlUNuokktOTvEvTioj9XHVp9Bf1PmpNqrKUmWnMvTn33HHHa6vlaRghiy0UYvLrvg7DtBiInyHQITAVVddlXd+akiiOrXqIKiCk7Pot7/9rRvaqO/XX3+969D5Ye6RyyR6U84ERWP5DrmceprDS84idVTVqNJbSO+wkPw//vGPC4ZJq3OrKQI09FjXUcdYbz0V4VPvdNJJJzW6cenvXdGVPsLS79NnWob6/fWvf81HoimyVw61aOSkl0nDdOUYlLNX52y++eaJieZVpIN3ZP/nf/6nHXnkkW4uSH/vcthKV5X01l3TMWiYbTTJEaMpHPRmVzorB+NOO+3kbDqar97bevOvBoqGgCsCXVMw6O+II45IhE01lo86A3J0+bpEQ6E1pEh1xr/+9S/n/NNwapW1nKFK3/zmN10UZLQDsHTpUhdl8fe//905RP/4xz+6KLXG3ldznqdngYa8yfmpzujXv/5193JM9aZP0j3VlTfeeKMrX0XZaVoUJbFRvXL33XfbtGnTXKdIQ/1VnyZlbkVFfsp2lOT0VITDnnvu6Rr/ceYQViSJZLvllltcXaO5iPXyItqZcBfnX4sRUAft9ttvd9eXbqqjLWe8dFajH+SYVkddtqZ6VW0ftYdwgrZYkTTqwlkox9DbqPfff797LjZKASInqY1QnJI83Vb0XkNoo6rN4p2feuGpkQ3Rdracm2rbKKmePeqoo9wIO714iibZ9BVXXOEcaHohqpF5CrJJUgq1jSrGmj7LOy/V7tS0WXruaRi8bFVttF//+tcueET51S4755xz3JR4+u6T2jgKPNHLDfkKNLVYtB3o87X2ZxbaqHGYMgQ+DiXyNCBw8803uxD+BgeaYYc6+XJu1DupA+uHyO62225uTr5S96QHt4Y8qFJROuGEE0ref1KHwI8ePdo5EfSWWNFUGobqk5x+GiLnZVMIv95GlpubTsMhVdErqUOlzn+90ze+8Y0mO0DLyZAUB2i14UWav9RHd8pRWCk6V07vo48+2jErNXynHIuW3K9GoO5JSfMGasqJaJJjVE5ROZbUwJBDrFJDQ3OIyumvpOGdmuah3ik6vEhvinVfmgdUjkGfFF2nulEMGrNQib9OvT71kkhlo/SDH/zAyeKHBalRqc6B3pb7tMsuu7ipGPz36KfqJL2lV+dYjVRFsvlrRfO19rY6QHLmKVWrAzVPmJyb6gBJds39FU1iJWZKehadfvrp0cN12z7kkEOcc17c1VEr9zyodoOyVw2dFgclRc+os1HvlIX2jRzYcnLKYS0d02iA4qQ2kF4kqf5VUgSznu+lFndI4hB4zaPn2y7FsjX1e3Q0TFOv1ZTzs1COobdR1c5WG64lUlIcoKG3UVV2eu7r+a+XgnJaFo8Qiw6XrlYuejaqL6lAFE0Po3ZRsaO0JfSl0jWz0EbVCz+1tTSiTKPH1P/Vc88nPQvV7vSR13Jka4RkuWmY5BTX8HclTWek9QfqnbLQRo3DODmz68a5W/IkhoAiqVQBtMSfKv4kpOiQZ73JK5fUGZQzxU8+rg6CFu1IQ5o5c2Z+jj11rqPOT92/nIda5MkndU4rdXZVuQ8YMMBl18TRSUialiDqLFKnfY899nARS4paKvcXfXMrmUrlS4J81e5BzkFFWClJ7krOT+WR41APeKU3c8Pik2CPevPqkyJ6i5Ns1d+nnJmVnJ86VwvoKPJQSQ60JCYNjVLnVvJKZ5U0RFoNMnUIFcmqCfbTlBTdqaR6RtEPUYel6k9FmUUjzPS9XNK5chIrqbHqV8Itl7+19ityU2nHHXes+gJo++23dxHWKkd1mIqT6i7VwUq6bvFwuuL8rfFdnD1rRbpWeh5Uux91FDXXsI9s1fQISUhZaN+obldSXVjK+aljPXv2dJEuWl1aac6cOc6pL3tLQ2qJ9qm/ZlLkD70cs9BG1ZzrxQseanREqTZn8T45aXxS+7z4uKapSnoKoY0qxr6dqsCPYuenjvu5stW2qzZdmp6NejmqpIh8/xLK7UjIvxDbqJomzD/f1L6JOj+FXUEhUX+ARoaWc34qv9q6vl/t62rtr2cKvY0aly1D4OOSIl8BATm6VClrfij/hl0VtubEaGrS3GFJSP5hJpminfJS96aGh94EaR5N8dAcIeo8aJX4JCc/J6TKbtdddy15q4cddpgbqqiDlSp6HRcDyayK3l9b++uZtLK27knRRX6uUumuoghVRuWS8vjhLHKGJnkV+HIyaL+cZurQKxVHmLmdJf5556AaphqOUzyUvMQpLbpLMihpvtJu3bo1+C11zH0qXhXe7y/+VIdDQ/79tYuPJ+G7nHx6AaFOjYbc/POf/3S3pcgsRQxqMn0Nq1EjTI0s/xImCfde6h5ULyhpqG2ppCkzZKua51PlXK3e1XxLYqQ6V/WN9KPeyb84843eavejFxIayq9IX0UfdOnSpeAUlb0ihDRfpoYia1qKeibN16kkXStXjrXcn5z7w4cPdw5eP4VFLee3RN4stW+q6ZP0UdFbmn9Zzih14s8991zTgohxpjtoifKJe03VmXKwR/VK0atqp4SSfDs11HL07ciQ26h6bml6CU2Joul51O6S3Hr5pdEelZLaAV6/ZZdJbwOUkiWENqrk8m1JtUtKJd9Ola3GqTvVXlc+6YOu3ZSXjaXupzn2hdpGVb9fc3qWSmqv+BSnT6XyViSob//6c+v1GXobNS5XHKBxSZGvgIAaI5qTRJEDamBqDjeF56tDXsmpVHCRhH/x89RJ1jhJDkRFLKlBonM1HELRoP37949zel3y+MU2VGblOgU6pvls3n//fbewRbUb9U4IDZdISho4cKCbX076qbn3NDeL5kvS8D5FRYacotGQ0e1KMms6BEXNynGqhle9HaB+ASA5/jQJefGLlmqdv1Ky+kUH4jIpdY3W2qfFYTQPr+bD1LBoPz+m3lRPmTLF/anM1DBTxIf0XZ+yRTVQk5L0UkGp2MkXvT8f7VpcxtE80W3VW+og+Lf20WP12FY9qeTlqHYPUTnVQSqOxpPtqVOrZ4rmEGuMrle7h1qO++hPOaiba0ieni9KPoq7lvtpibxZat/EKUPxkMNTQzK1mJwWydPCXJpLOslJL7k0PFH3+eKLL7pb3X///fOR40m+97j35tupoZZjVtqocnQpKlBzkutlvZya6lspKl5TqaRhIaO4OlucL9oGi24X54t+T1obVfemdqoiNf2Iq+j9alsBJLWMjJPuq22jFJeLy1yHf6G1USsFYkXbdtH2Wznsvm+dhBE8usfQ26jlyqF4fzivQYsl43urENAKyr4RrMpac9b5xXRa5QZa8Ef69evnri6ni++4V/s5LWahiEklOWq0WJBf8bbaufU4rjkFleTk8g3pUvehN4/qBPk3R6Xy+H0+IsE7rfz+en8qukxzsGi+Vg25VPlozlM1NuOWb71laMzv60HundKK4ImT5IjxUaNJKEcfeazG4P/93/81EEFOen+ffph1g0yRHYoY1ArbSvV2KEVuq+qmhqJqzkUNl1ZkoG9Y6UStbi9nqF66aD4+1UWaF1VzbWol+SQk/zLIDwUrdU++g6Ao0GpD/DVRve8gDPhi6o1S12zNfV7GuLamqHSfSjWmVS/7urmS49hfo6U/vZ3pBYKPaGnqbz799NPuEuUiZ5p6/caen4X2zZtfRGVXYySHg6bf8I6YiRMnupeJ1c6r93HZlOpMPyRVUXZ+ztl631tz/L5vp4Zajllqo0of1NbRgqJ+xWjNM6+X9aXaPc2hP0m4RghtVF92+vQjx4rZ+umn1Mbx7ZbiPNHvvo2qfV/60peihxK7HUobVYuQqk1dKvk2qo6Vc3ZHz/PtG9qoUSr138YBWv8ySP0d6EGtt5ZKGlKqYfEhJN+wlCxa6Chu0px9fji5OvGKMkyqg813CvQwji4+UiyrVrLTwjHVhoHLWawVgpWSUtkXy6IhtlpRWXOfKWm+Vr15D6VTJIdKcSSVX4xKMvopK4q5RL8rStYn79Dx3+vxKYe1jxJTBKT0rDjttttubpc6uD5qpDiP/65FTvxbUO9c9cfS8KnGsCJC5YTQCyjNJVlqSJWiIuUQjtNIaw25fZ1w1113WakOuzp7zz77rLsV6anyVUpakVNJskfr60rntPQx78TTdAU+6qzcb+oljF9MRY4l/6Iimj+60FoSbNFPO6B7VBSgd85G77mWbcnvyzyJthh6+0YvTTSvZZwk57ciQf2c2hpiPmnSpDin1jWPXhxoPjc/XYZe1Gu6iRCSr/dCLccstlEVzavgCdmangsKopD+ak7wpIx0aIrthNhGFQ8//ZJeDKqNWZzUTlNdJMea2qmVkhxw//u//+uyyMa1EFKaUtrbqGKtBWOLk9o7GlXgk/qPlZ4l0gXfDvTtX39uvT5Db6PG5dou14n6WdzM5INAOQJ6s6XOqioHrTatVdQUcZfmpCF+GuolZ4sijfQQijOhuBrZI0aMcA41DQOXo0XDWNSQ828G5YTTX72TGld6s6xoHi0GIydTpTeNlcpUzl7NgeqjguQILtWhr7fM+n1Fs8phpjKVU1ANEnXk9CDTG0wNOVUEpFa1V5J+q/GS1KQ3xT6qTh0h3bei/vTglf5qWK0cKdrWMIzoHDZRmeR0UqNLq1UqSUf9IizRfPXY1mTkcnipsy5ZVHbRBQB0rxp+JA7SZc3f46OV/P2qflIUky9XOZSkp5X02p/b0p8qF9/gVVSq6pBqSUNx5DRSpJqGx2s+IjmLVQdJp32UQVLqGw2T0gTsui81HNUZkAwaVqt5LhWdLR2U/Ko3fTn6KKAoD01noYWglL761a+6aNfo8Xpuy/mpkRCa11NlUqoelB7/4he/yNutZCheAV0vFC+55BIXCSt914uaek9poI6YRgxobmAN01Q0hOqXWofo6SWNXpaqzJVkq5pnMglRrsW6E2L7Rk5MvdRUlLUcElq0Kzq0r5iB/676RVNs+BedatvIZtXW0RQNSscee6zPnphP3bdsTi+E5ESSrD4iKzE32YgbCb0cs9pGlSqofaJnu0ZeybbUttGzxT/nlUfPGD/q5eijjy4YFaLjSUlZaKOqXtT0Wmpna5oitcHkFPXTUyjSVe1S1bt6tmu/yjI6kkflpdEjehbKCaqkRXcq9ctcplb4l4U2qkYMyM7UtlF/Qu0bzRutvsOMGTPciEHtUztII8/UFlL7Ve234vl3tV/T4ikASu02jUBUGzgJKeQ2aly+bXINl1VxM5MPApUIKILw8ssvd1k07FKr/KY9KTJFDhKfNKeU5mTbd999XSfA7y/1qYefVvHzq/epAvTmdswxxySmk6DwfL/qt+SQU0kd8WrRnl5mPfDVGVKF6t9O77333s4Z6vMk+VONDEWE6OGmNCA3lFaOXC3AonJW0hCkuDzcCa38T049RQPGTZqfVg1rnxQxqShndWbl2FBSo0xDrYvnJPTn1OPzN7/5TcGbdTn/FH0up7U6uHJsa0oD2a0aI3L0qlGqpEalHMI+OlZ55UTzx+shT/Q35UDQgl1KijpTBEhTkhxwKlc5EuVUKl7NsinXbsq5WlBFzs5ySQ1QOajl7PPTh2jePr2AUINTZfjEE0/k50FVOcphnxT5JJd0UA5en/SyRc4WdWj1kkURubJXPSOU9LJNkc2ST0kv3vRdOuufGYoGiuMUdxdo4X/q4Klh7x1e+jnVm7JDRQnK4avOnspG0bl6mSS7U3mqvlUHQ/Wtj5xQHg1TTsJLwXLoQmzfjBkzJm9HsrtddtnFvXw45JBDymHI75cNy5Z9irZvolHL/ngSPtU+Ub2il7SyOb1AkZ6mPYVejllvo0o/Vf8oIk11qdpm6l+pH3HNNdfkXwSqHV7shEmKbmeljarn2/e+9738KCS1vfTc1sKiirzTyulaSFB9Dr0IVn9L/Ur1N+To1jNfwSQ+qZ2u9noSUlbaqOL/7W9/Oz8NWCn2xx13nHt2aM0PJZWfnptaJV7tbr28lz36Np4CFPx0gaWu19r7Qm+jxuGJAzQOJfLEIqCOmsL+9ZZIb201B10ISUMV5CiJzm2qyqM4WqeUrIo40BB4HwLv8yTJAap7UlSWnNdaaVhJTl45m+IkPSjejMwjJoeZGjt6a5aWpLKV7l5//fWuUaIOuVbf9pGCSXeA6v59NJaieeTE1J9/+BaXg+aIPOCAA/K7dY50MpqS+BJDDUatlnr77bfnHUPRe467LceMGpVxbDjuNZuar7kbl029n5Y6X3WMhhD5aNfo7ygqS3WHOgRyIKqerZTkdFHnXyMOkpQ0tF2LBMaZekDRx5JTziefVBf5+lcyHp2L7ElaVJ3qlrFjx7rREf6+G/Mpx5vKcOTIkY05vdXOCbF9o47e2WefXaCncmT7EQDV4N5777126aWX5iPNff6kOkB1f3Iw+Ln1tACiOqxpT1kox6y3UaWjml9fzwq9QFJSVKBGbT322GPue5IdoFlpo6ogVMdodEf0BaEroBr/6aWpXjL5CNIaT2/27Flpowqcoqpla4riLE7qN2j9CL2MUDsvOidocV5914tvtXmTNI1BFtqopcoiuq999AvbEGgKAXXUjjzyyKZcIpHn6k2rhi1o/h3v6POROtVuWFEGekOroX433HBD1UU9ql2vpY7LGaZIOEX8aWhGLZ0CvfnyXDTXpIZuyMGUpuTfqGsYoB56amh652ca5ND9a4oF/UUdCYrU8s5QOTn1oNYDvThaLjpUXDp7zjnnuCEdSZNdjmlFVSsyVw40Raz6qOM496rhgl/72tdcNK9fzCXOeeRpPgJy+KnRqKhIDd/zjUdFR8iR6ed6lR5reK7mGfSRgtG70LB4ObEVdZi0JKee6lI5MhXJqYZyqbTDDjvY6aefXjCVg/Lp5ZEiefTc0fNH9VLSkuoMPdsUrSo5FXXtp1yIc68a0i8H1KGHHlrz8Pk412/uPCG2b/TsnjBhgrOxv//9787e4rZtxHe//fZzU3DopYWfx7W5uTf39bSgo/5CSlkox6y3UaWvcqRokUM9W9Q+9c/ONOhyVtqoKgvVL3ru60W9ptbyowDjlpPa8XouavopPXdIrU9AUxeoz64pxfTCQf0mDV+X83PnnXd25aIX9nJQn3vuuS7is9Rdqk2roe9JcWL7e8xCG9XLWu6TCNByZNgPgRIE5FBSaLuG1spRVEuaP3++62xoPlE5cBTVk8Sk8H1FrkbnV6x0n5rPRvOjqDNfS+ep0jXreUxDNeV0iS4KlfQI0Fp4KUJbzhW/kIXOVfkpylmOFkXfpcWBLQeZhhO98cYb7k9RaXKIehk1vFFvXRXVpPl7NQwpiXMMqgx0z35OS82B+ZWvfEW7M5/0plqNUA0PU92kFzVylmq4dBqGr+qZoXmx9ZJIL1b03PD66BdNKC5kySxnfxrk8/euelMdBf3JDjXvlRzXqlvU+FdnQfOEetnlACUlh4DKSWWnMis3R3Slu1VHX89M6fnkyZMrZeVYCxLIQjlmvY0q9dEUIhpG7eeJ1L4kR4Dq/uIm334LoY0qmfXcV92qdqqitVXHqp2q0TB6Luo5L+eaAk/UJkjStFPRMqONGqVRuK1pOjTvq8pXzkWVoRzhtQQTFV6x9b5lpY1aTBQHaDERvkMAAhDIEVBkkx/Kpwmuo0NUAQQBCEAAAhCAAAQgAIF6EJAjTVN0KWBBSXMMKtKSBAEIQAAClQngAK3Mh6MQgAAEIAABCEAAAhCAAAQgAAEIQAACEIBAigkwB2iKCy/Jt67hcBqaoSGq+tPcYBp6quGo+tRKeGlPyBhGOSr8X2/QpacqUw27kY7qT8NV0zIcvJI9hS4jtogtVtL/JB0L3RaTxJp7gUAlAlmwxdBl5NnPs7+SjSfpGLZIvz9J+ljuXkLXUy83DlBPgs8mE9CqaRMnTnRz08yZM6fiKs1aQEFznWi1cU2k7xe+aPJNtPAFkLEQcBrLUfPYaL4yzSuoVZorLaKjefg0d6R0VRNfayh8GiYlz4KM2CK2iC0W6gDfIACB8gSy8FzMgow8+wt1nHZ4IY+kfMMWC0sijXoqCUKvb7Kgp4WauPobQ+BLUWFfTQQ08bZWJNQkz41JWhVYiwKdeOKJLkK0Mddo6XOQsTrhpJfjBx98YH/4wx+c87OS07OSpFqA5YQTTnDO0Er56nUsCzJii9W1C1uszqilc2TBFluaIdeHQHMQyIItZkFGnv3VrYFnf3VGLZ0DW6xOOOl6KglCr2+yoKeVNBEHaCU6HKtK4K677rJLL720IJ+GDPfp08etaqfV7TSkWJF0K1ascEOMZXQaHr9w4cKC8xRpN27cOHdewYE6f0HGDdwqhWkuR62qfPLJJ7uIz6g6KfK4d+/epjeT0lvJqOkaNKxKb8Xmz59vc+fOdas1+vMUdaZrHXbYYX5XIj6zICO2iC1q5VSfsEVPgk8IQKAUgSw8F7MgI89+nv08+0vVcK2/D1vEFtNgi9UsAwdoNUIcL0tAb0fOO+88N9RdzqODDjrI9txzT9tss82cw7PsiV8ceO+992zatGl2yy232FtvveX2brHFFjZhwoRqp7bacWRsV5V10stR0Z5jxoyxmTNnOlmGDBlio0ePtu2339569OhRVb7PPvvMDYGYPHmy3XPPPc5BqpPk+NeQ+CSkLMiILWKL2GIy6psk1HncAwSqEcjCczELMvLs59nPsz8Zz35sEVtMgy1WaxvoOA7QOJTIU5LAIYcc4iLkOnfubFdccYUNHTq0ZL5qOxVtd+aZZ9pTTz3lsp5//vm2++67VzutVY4jY3zMSS1HOS0vvvhiJ4gc9Oeee661bds2vmCRnI899pidffbZzgmqiOUbbrih0deKXLbJm1mQEVuMrybYYnxWzZ0zdFu8+eab3ZQ3zc1N1zviiCPsyCOPbIlL13TNLMh4wAEHVJynvSZgRZllA0lIoduiGGdBRp798a2JZ398Vs2dE1uMTzSpeioJQq9vsqCncTSxcV6AOFcmT9AENDRYf0pnnXVWo52fOl/RoxdddJH16tVLX+3RRx91n/X+h4y1lUBSy/H55593gmy66aZ2zjnnNMlhqYjPk046yV1PCyhpsa8kpNBlxBZr0zJssTZezZk7dFvUVDYfffRRi/ypU5SElAUZW6oMdd2kpNBtUZxDl5Fnf23WxLO/Nl7NmRtbjE8zqXqahfomdD2Nq4U4QOOSIl8BAW9A7du3b5YFYRRFOnz4cPcb77zzTsFv1esLMtZOPonl+NxzzzlBRowYYdLXpqbddtstf4mk6GroMmKLeZWLvYEtxkbVrBlDt8XDDz/cTSGi+Vd9UmemZ8+eTf7TnOFJSFmQ8de//rVtvPHGBbjXW2+9Jpeh9CApKXRbFOfQZeTZX7s18eyvnVlznIEt1kYxiXqahfomdD2Nq4VN9wbE/SXyBUVAb0mUunXrZp06dWoW2bQgjVJSokCQsXHFmtRy9BHGjZNqzVnSeS3q5RdLWnOkflteV0OV0ctHfVObjmGLtfFqjtxeV0O1RTk7tQjc4MGD3ciNlStXujbAdddd55xnzcGw3tfIgoxbb721XXvttfbDH/7QXnzxRYd8//33t+OPP77e+Jvt90O3RYEKXUYvH8/+2syCZ39tvJojt9fVUJ/9Xj5ssTZtwRZr49VauYkAbS3Sgf3ORhtt5CTSiu7NNQz46aefdtfUIkpJSMjYuFJIajn6N3uNk2rNWbqOnJ9KSdPVUGXEFtfoXy1b2GIttJonr9fVUG3RU9pnn32c80zfFy1aZBdccIHJGRpSCl3GddZZx83fvskmm7hiu/HGG/NzsYdQjlmwxdBl9PLR16jNInn218arOXJ7XQ312e/lwxZr0xZssTZerZUbB2hrkQ7sd+T48UPgxo8fb1oVrClJk/I+++yz7hJapTsJCRlrL4UkluPmm2/uBLn//vvNP4hql2z1GYsXL7arr77afVHnsW/fvo29VLOeF7qM2GLt6oIt1s6sOc4I3RajjA488EDbaaed3K7p06fbrbfeGj0cxHboMnbp0sXN46723KpVq5wje+nSpUGUXRZsMXQZefbXboo8+2tn1hxnYIu1UUyinmahvgldT+NqYbuf5VLczOSDgCfQtWtXmzt3rr366qumeRBfeeUVNySuR48ePkusTw13V6fpyiuvdPm7d+9up556qqlRXu+EjPFLIMnlOHDgQLvjjjuck/7hhx82OS61IJKGsdeSpOtaQV66rjR69Gjbfvvta7lEi+UNXUZsMb7qYIvxWbVEztBtsZjZtttua3fddZerX1966SU76KCDrEOHDsXZUv09dBk1ZFOLF73wwgu2bNky09xskjntKQu2GLqMPPvjWyHP/visWiInthiPapL1NAv1Teh6Gk8Lzdrk3viuipuZfBCIEliwYIGdcsopNmvWrPzuAQMG2HbbbWcKle/du7dpUQPNpyVnk1ZWVcW3cOFCmzdvnr388ss2Y8YM89EGynPFFVfYsGHD8ter9wYyhlGOt9xyi11zzTV5dVIHT3qmeewUxSnHvfS0Y8eObni7dFV6qTlvZs+ebc8884y98cYb+fN33HFHGzduXJNWlM9frJk2QpcRW8QWscVkDtrRC6bLL7/c1WQ/+MEP7KijjmqmWi05lwldRjk+v/vd77opjTTH22233ebab8kpgcbdSejPRVEJXUae/Tz7efYn49mPLWKLabHFai0GHKDVCHG8IoEPP/zQxo4dm1+JsmLmCgcVlTdmzBgbOXJkhVz1OYSM8bknuRw13EKddDk3m5I05FORoOokJi2FLiO2GF/jsMX4rFoiZ+i2GGWm9+g333yzffzxx6ZRHKNGjYoeDmI7CzLOnDnTpk6d6sprjz32cCMlQii8LNhi6DLy7I9viTz747NqiZzYYjyqSdbTLNQ3oetpNS3EAVqNEMdjEXj88cddB0jzePoFYuKc2K9fP1ND+9BDD3VReHHOqVceZCxPPi3lqOhjRbao4tdE3nGThnTK8XnAAQfYiBEj4p5Wl3xZkBFbLK9a2GJ5Nq19JAu22NpM+T0INIZAFmwxCzLy7C+v/Tz7y7Np7SPYYnniadFTSRB6fZMFPS2niThAy5Fhf6MIaIi7hrbrT29QlixZ4oYSa5GkTp06ubmlNNxYQ+UHDRpkqgjTlpAxjHKcM2eOKeJFUzhouLv+FMHUvn17p6eah1bD46WrGiqv6RzSlkKXEVvEFtNik6HbYlrKgfuEQBZsMXQZefbz7E9LTYYtdnYBTvT7k62xoetpMX0coMVE+A4BCEAAAhCAAAQgAAEIQAACEIAABCAAAQgEQ6B9MJIgSOIJvPvuu3bttde6+9RCSVotNrSEjGGU6E033ZRf7f20005L/PQMjaEeuozYYmO0InnnhK6nIh66jNhi8uyqMXcUup5mwRazICP1TWOsO3nnUN8kr0xqvSNssVZiycwfoi3iAE2mrgV5V4sXL7b777/fyabVtkN0gCJjGKqruWz9YhAnnHBCGEIVSRG6jNhiUYGn9GvoeqpiCV1GbDGlxld026HraRZsMQsyUt8UGW5Kv1LfpLTgIreNLUZgpHgzRFtsm+Ly4NYhAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCFQkgAO0Ih4OQgACEIAABCAAAQhAAAIQgAAEIAABCEAAAmkmgAM0zaXHvUMAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIVCeAArYiHgxCAAAQgAAEIQAACEIAABCAAAQhAAAIQgECaCeAATXPpce8QgAAEIAABCEAAAhCAAAQgAAEIQAACEIBARQI4QCvi4SAEIAABCEAAAhCAAAQgAAEIQAACEIAABCCQZgLt03zz3Hv6CLRr187ddNu24frekTF9ell8x23atDFfjtoOMWVBRl+G1Dfp1eAs6GkWZMQW02uD/s6zoKfI6Es73Z/UN+kuP909tpj+MpQE2GL6yzFEW2yzKpfSXzRIAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCECgIYFww/AaysoeCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAIGMEGAKfsQJvDXEXL15sc+bMsSVLlpi2P/74Y+vUqZN16dLFunbtat27d7e+ffu2xq202G8gY/rLUcHvs2bNskWLFuV19fPPP3c6Kj3Vn/R07bXXbjE9aukLZ0FGbBFbbGk7ao7rY4vp11PpQej1TRb01NvzggUL7KOPPrLly5fbJ598Yh07dnTtVLVVu3XrZmuttZbPmtrP0GVUuc2bN8+VocpRbTjf19Dnuuuum9qy8zeeBRlD11OVZegyZkFPsyBj6Hrq61UcoJ4En00iIIP561//ak8++aS9/PLLpkZ0paRGydZbb23bb7+97b///ta5c+dK2RNxDBkbFkMay/HBBx+0Bx54wKZPn24ffvhhQ6EiezR35KabbmrbbLONjRw50oYOHRo5mtzN0GXEFhvqHrbYkEkS9mCLhaWQRj3NQn0Tup5KC/UyftKkSTZlyhR7/fXXbdmyZYXKGfmmeesGDRpkW265pe2888721a9+1c1JGMmSyM0syPjCCy/YxIkTbcaMGS7YolJ/QwEXKsOtttrK9ttvP1t//fUTWW7FNxW6jFnQ0yzIGLqeyi5DlzELelpcv+o7c4CWosK+mgj87//+r/3ud7+r2JisdEE1UL7zne/YoYcemtgGJjJWKsHVx5Jejor2vOSSS+yZZ56pLkyZHOoI/dd//ZdtsskmZXLUd3cWZMQWq+sYtlidUUvnwBarE066nkqC0OubLOjpBx98YH/4wx+c87OS07OSxg4cONBOOOEE5wytlK9ex7Igo15c33TTTS7IojGcO3ToYPvuu6+deOKJboRPY67R0ueELmMW9DQLMoaup7Lz0GXMgp5Wqq9xgFaiw7GqBOT4VMPSJw0h6tevn6mhoYb10qVL3SENJZKTU8ON586da++++6699tpr/jT3qbezZ555piVtxWZkTH85aoiUOi+K5PFJkQAbbrih6SEgnVy5cqU7JCfnkCFD3D7t//e//+301p+3zjrr2Pjx4+1LX/qS35WIzyzIiC1ii3qG+IQtehKt/4ktYotpsEVNWXDyySe7iM+olej537t3bzclk9qnartq+LSGOCoiZv78+a4N8Omnn+ZP00q4utZhhx2W35eEjSzIeNddd9mll15agFvl1qdPH9tggw3cVEUqQ0XurlixwpWj2nZqFy1cuLDgPEX2jhs3zp1XcKDOX0KXMQt6mgUZQ9dTVQOhy5gFPa1WneMArUaI42UJPPTQQ3bOOee443J6qmEo55EaiT699NJL9qtf/cqee+4522mnneyiiy5yzlEdnz17tt19993uzw9FPvzww12EnT+/3p/IuLoE0lyOGh517LHHOoe7nOtf//rX7Xvf+571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KUt7OS5btswuu+wymzx5coHevP3226a/KVOm2KhRo+z444+P5bAvuEhCvmRBRmwRW0yIuVW8DWwx/XqqAg69vsmCniJjGO2b0G2R+iYMPc1CfYMtpr99kwU9rdhIzx1kDtBqhDhelsC8efNs7NixBc7P3r17uxW0/UmzZs2yk08+2f74xz/6Xan6RMbVxZX2cpwwYUKB87NTp0624YYb5nVx1apVduutt5qij9999938/jRthC4jtogtpsUesUWztD8zslDfhK6nqi+Q0Szt7Zss2GIWZMQWscU0tOGwxfTraRw9IwI0DiXylCRw1VVX2fLly92xkSNH2imnnGI9evRwja2XXnrJfvvb39r06dPd9+uvv940n40f5l7yggnciYzpL8dXX33Vbr/9dqdd0s8zzjjDdt55Z2vbtq0tWbLE7rzzTvvTn/7kIpffeecdp8cq9759+yZQI0vfUhZkxBaxxdLan6y92GL69VQaFXp9kwU9RcYw2jeh2yL1TRh6moX6BltMf/smC3oap1dABGgcSuRpQGDBggX20EMPuf277babnXvuuc75qR1aAEnzKl555ZV22mmnue/aryjQm266SZupSMgYRjlOnDjRVq5cae3atbPLL7/cdtllF+f8lBJ27drVjjjiCLvxxhtt0003dXo5f/58p7d+Ua40KGvoMmKL2GIa7FD3iC3y7E+Droaup1mwxSzIyLOfZ38a6lNsMQw9zUJ9k4Vnf5w6AwdoHErkaUDgrbfeyu878cQT89vFG4cccoj9/Oc/dyvD65iiQu+7777ibIn8joxriiXN5aiFuZT22msvGzx4sNsu/tezZ0/79a9/bdttt507NGfOHBcpqnlS0pBClxFbXKOF2OIaFkncwhZXl0qa9TQL9U3oeiotRMbVtpjm9k0WbDELMmKL2OJqAsn+jy2mX0/jahgO0LikyFdAQAvHKK2zzjpVhwrvvvvu9rOf/SwfCaoVw55++umC6yXxCzIWlkray3HzzTcvFKjoW5cuXWzcuHE2dOhQd0QrxSuy+fPPPy/KmbyvXldDldHLR32zWvewxeTZoL8jr6vYolna9TQL9U2oeip7DN0WsyCjL8Ms2GIWZKS+MUtrXwNb9K281Z9pb9+EbIuFJVX6Gw7Q0lzYW4XAZ5995nKstdZaVXKuPrzrrru6uRX1Tef+5Cc/yTdOY12g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AQhAAAIQgAAEIAABCEAAAhCAAAQgUIoADtBSVNgHAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIBEEAB2gQxYgQEIAABCDw/9uxYxoAABiGYfxZl0AQVH77zftCgAABAgQIECBAgAABAgQIlIAAWio2AgQIECBAgAABAgQIECBAgAABAgQuBATQizc6ggABAgQIECBAgAABAgQIECBAgACBEhBAS8VGgAABAgQIECBAgAABAgQIECBAgMCFgAB68UZHECBAgAABAgQIECBAgAABAgQIECBQAgJoqdgIECBAgAABAgQIECBAgAABAgQIELgQEEAv3ugIAgQIECBAgAABAgQIECBAgAABAgRKQAAtFRsBAgQIECBAgAABAgQIECBAgAABAhcCAujFGx1BgAABAgQIECBAgAABAgQIECBAgEAJCKClYiNAgAABAgQIECBAgAABAgQIECBA4EJAAL14oyMIECBAgAABAgQIECBAgAABAgQIECgBAbRUbAQIECBAgAABAgQIECBAgAABAgQIXAgIoBdvdAQBAgQIECBAgAABAgQIECBAgAABAiUggJaKjQABAgQIECBAgAABAgQIECBAgACBCwEB9OKNjiBAgAABAgQIECBAgAABAgQIECBAoAQE0FKxESBAgAABAgQIECBAgAABAgQIECBwISCAXrzREQQIECBAgAABAgQIECBAgAABAgQIlIAAWio2AgQIECBAgAABAgQIECBAgAABAgQuBATQizc6ggABAgQIECBAgAABAgQIECBAgACBEhBAS8VGgAABAgQIECBAgAABAgQIECBAgMCFgAB68UZHECBAgAABAgQIECBAgAABAgQIECBQAgJoqdgIECBAgAABAgQIECBAgAABAgQIELgQGDfhjbkkMzlvAAAAAElFTkSuQmCC" width="672" /></p>
<div class="sourceCode" id="cb91"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb91-1"><a href="#cb91-1" aria-hidden="true" tabindex="-1"></a>estimates_jukyo_number_WLS <span class="ot">&lt;-</span> df_estimates 　 <span class="co">#for robustness check</span></span>
<span id="cb91-2"><a href="#cb91-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb91-3"><a href="#cb91-3" aria-hidden="true" tabindex="-1"></a>results_jukyo_number_WLS <span class="ot">&lt;-</span> estimation_results <span class="co"># for only-post DID table</span></span></code></pre></div>
</div>
<div id="wls-no-trends-post-covid-month-dummiestable-c.5-6" class="section level2" number="10.3">
<h2><span class="header-section-number">10.3</span> WLS, no trends, post-covid-month dummies,Table C.5 (6)</h2>
<div class="sourceCode" id="cb92"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb92-1"><a href="#cb92-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb92-2"><a href="#cb92-2" aria-hidden="true" tabindex="-1"></a>estimation_results <span class="ot">&lt;-</span> <span class="fu">dynamic_onlypost_DID_jukyo_WLS</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb92-3"><a href="#cb92-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>jukyo_number, </span>
<span id="cb92-4"><a href="#cb92-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>unemploy_shock_diff2)</span>
<span id="cb92-5"><a href="#cb92-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb92-6"><a href="#cb92-6" aria-hidden="true" tabindex="-1"></a>texreg<span class="sc">::</span><span class="fu">screenreg</span>(<span class="at">l =</span> estimation_results , <span class="at">include.ci =</span> <span class="cn">FALSE</span>, <span class="at">digits=</span><span class="dv">3</span>)</span></code></pre></div>
<pre><code>## 
## ==================================
##                         Model 1   
## ----------------------------------
## treat_var:date_2020_04    1.028   
##                          (0.711)  
## treat_var:date_2020_05   15.236 * 
##                          (6.932)  
## treat_var:date_2020_06   27.509 **
##                          (9.317)  
## treat_var:date_2020_07   15.259 **
##                          (5.281)  
## treat_var:date_2020_08    6.540 * 
##                          (2.972)  
## treat_var:date_2020_09    4.367 * 
##                          (2.124)  
## ----------------------------------
## R^2                       0.785   
## Adj. R^2                  0.750   
## Num. obs.               423       
## RMSE                    362.045   
## N Clusters               47       
## ==================================
## *** p &lt; 0.001; ** p &lt; 0.01; * p &lt; 0.05</code></pre>
<div class="sourceCode" id="cb94"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb94-1"><a href="#cb94-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb94-2"><a href="#cb94-2" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_main</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb94-3"><a href="#cb94-3" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;unemploy_shock_diff2&quot;</span>,</span>
<span id="cb94-4"><a href="#cb94-4" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;jukyo_number_WLS&quot;</span>)</span>
<span id="cb94-5"><a href="#cb94-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb94-6"><a href="#cb94-6" aria-hidden="true" tabindex="-1"></a><span class="co"># Event study graph</span></span>
<span id="cb94-7"><a href="#cb94-7" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_WLS_onlypost <span class="ot">&lt;-</span> <span class="fu">event_study_graph</span>(<span class="at">data =</span> df_estimates ,</span>
<span id="cb94-8"><a href="#cb94-8" aria-hidden="true" tabindex="-1"></a>                                          <span class="at">graph_title =</span> <span class="st">&quot;jukyo_number_WLS&quot;</span>)</span>
<span id="cb94-9"><a href="#cb94-9" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb94-10"><a href="#cb94-10" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_jukyo_number_WLS_onlypost)</span></code></pre></div>
<div id="htmlwidget-b73d040cf9b02a050081" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-b73d040cf9b02a050081">{"x":{"data":[{"x":[1,1,1,1,1,1,1,3,4,5,6,7,8,2],"y":[null,null,null,null,null,null,null,1.02757691164646,15.2361182013199,27.5088404205306,15.2585127551871,6.53958047603798,4.36669381314561,0],"text":["month: 2018-01<br />estimate:        NA<br />label: blue<br />label: <br />label: ","month: 2018-01<br />estimate:        NA<br />label: blue<br />label: <br />label: ","month: 2018-01<br />estimate:        NA<br />label: blue<br />label: <br />label: ","month: 2018-01<br />estimate:        NA<br />label: blue<br />label: <br />label: ","month: 2018-01<br />estimate:        NA<br />label: blue<br />label: <br />label: ","month: 2018-01<br />estimate:        NA<br />label: blue<br />label: <br />label: ","month: 2018-01<br />estimate:        NA<br />label: blue<br />label: <br />label: ","month: 2020-04<br />estimate:  1.027577<br />label: blue<br />label: <br />label: ","month: 2020-05<br />estimate: 15.236118<br />label: blue<br />label: <br />label: ","month: 2020-06<br />estimate: 27.508840<br />label: blue<br />label: <br />label: ","month: 2020-07<br />estimate: 15.258513<br />label: blue<br />label: <br />label: ","month: 2020-08<br />estimate:  6.539580<br />label: blue<br />label: <br />label: ","month: 2020-09<br />estimate:  4.366694<br />label: blue<br />label: <br />label: ","month: 2020-01<br />estimate:  0.000000<br />label: blue<br />label: <br />label: "],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,0,255,1)","opacity":1,"size":9.4488188976378,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(0,0,255,1)"}},"hoveron":"points","legendgroup":"","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1,1,1,1,1,1,1,2,3,4,5,6,7,8],"y":[null,null,null,null,null,null,null,0,1.02757691164646,15.2361182013199,27.5088404205306,15.2585127551871,6.53958047603798,4.36669381314561],"text":["month: 2018-01<br />estimate:        NA<br />label: blue<br />label: <br />label: ","month: 2018-01<br />estimate:        NA<br />label: blue<br />label: <br />label: ","month: 2018-01<br />estimate:        NA<br />label: blue<br />label: <br />label: ","month: 2018-01<br />estimate:        NA<br />label: blue<br />label: <br />label: ","month: 2018-01<br />estimate:        NA<br />label: blue<br />label: <br />label: ","month: 2018-01<br />estimate:        NA<br />label: blue<br />label: <br />label: ","month: 2018-01<br />estimate:        NA<br />label: blue<br />label: <br />label: ","month: 2020-01<br />estimate:  0.000000<br />label: blue<br />label: <br />label: ","month: 2020-04<br />estimate:  1.027577<br />label: blue<br />label: <br />label: ","month: 2020-05<br />estimate: 15.236118<br />label: blue<br />label: <br />label: ","month: 2020-06<br />estimate: 27.508840<br />label: blue<br />label: <br />label: ","month: 2020-07<br />estimate: 15.258513<br />label: blue<br />label: <br />label: ","month: 2020-08<br />estimate:  6.539580<br />label: blue<br />label: <br />label: ","month: 2020-09<br />estimate:  4.366694<br />label: blue<br />label: <br />label: "],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,0,255,1)","dash":"solid"},"hoveron":"points","legendgroup":"","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1,1,1,1,1,1,1,3,4,5,6,7,8,2],"y":[null,null,null,null,null,null,null,1.02757691164646,15.2361182013199,27.5088404205306,15.2585127551871,6.53958047603798,4.36669381314561,0],"text":["ci_lower:         NA<br />ci_upper:        NA<br />width: 0.5<br />colour: black<br />month: 2018-01<br />estimate:        NA<br />label: black<br />label: <br />label: ","ci_lower:         NA<br />ci_upper:        NA<br />width: 0.5<br />colour: black<br />month: 2018-01<br />estimate:        NA<br />label: black<br />label: <br />label: ","ci_lower:         NA<br />ci_upper:        NA<br />width: 0.5<br />colour: black<br />month: 2018-01<br />estimate:        NA<br />label: black<br />label: <br />label: ","ci_lower:         NA<br />ci_upper:        NA<br />width: 0.5<br />colour: black<br />month: 2018-01<br />estimate:        NA<br />label: black<br />label: <br />label: ","ci_lower:         NA<br />ci_upper:        NA<br />width: 0.5<br />colour: black<br />month: 2018-01<br />estimate:        NA<br />label: black<br />label: <br />label: ","ci_lower:         NA<br />ci_upper:        NA<br />width: 0.5<br />colour: black<br />month: 2018-01<br />estimate:        NA<br />label: black<br />label: <br />label: ","ci_lower:         NA<br />ci_upper:        NA<br />width: 0.5<br />colour: black<br />month: 2018-01<br />estimate:        NA<br />label: black<br />label: <br />label: ","ci_lower: -0.1664644<br />ci_upper:  2.221618<br />width: 0.5<br />colour: black<br />month: 2020-04<br />estimate:  1.027577<br />label: black<br />label: <br />label: ","ci_lower:  3.5990888<br />ci_upper: 26.873148<br />width: 0.5<br />colour: black<br />month: 2020-05<br />estimate: 15.236118<br />label: black<br />label: <br />label: ","ci_lower: 11.8691625<br />ci_upper: 43.148518<br />width: 0.5<br />colour: black<br />month: 2020-06<br />estimate: 27.508840<br />label: black<br />label: <br />label: ","ci_lower:  6.3935704<br />ci_upper: 24.123455<br />width: 0.5<br />colour: black<br />month: 2020-07<br />estimate: 15.258513<br />label: black<br />label: <br />label: ","ci_lower:  1.5508470<br />ci_upper: 11.528314<br />width: 0.5<br />colour: black<br />month: 2020-08<br />estimate:  6.539580<br />label: black<br />label: <br />label: ","ci_lower:  0.8006636<br />ci_upper:  7.932724<br />width: 0.5<br />colour: black<br />month: 2020-09<br />estimate:  4.366694<br />label: black<br />label: <br />label: ","ci_lower:  0.0000000<br />ci_upper:  0.000000<br />width: 0.5<br />colour: black<br />month: 2020-01<br />estimate:  0.000000<br />label: black<br />label: <br />label: "],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[null,null,null,null,null,null,null,1.19404133450033,11.6370293804771,15.6396778902896,8.8649423116223,4.98873345996262,3.56603017489917,0],"arrayminus":[null,null,null,null,null,null,null,1.19404133450033,11.6370293804771,15.6396778902896,8.86494231162236,4.98873345996259,3.56603017489916,0],"type":"data","width":3.07317073170732,"symmetric":false,"color":"rgba(0,0,0,1)"},"legendgroup":"","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,8.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-2.33221355953758,45.3142674475039],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":30.8841843088418},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"jukyo_number_WLS","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,8.6],"tickmode":"array","ticktext":["2018-01","2020-01","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8],"categoryorder":"array","categoryarray":["2018-01","2020-01","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-2.33221355953758,45.3142674475039],"tickmode":"array","ticktext":["0","10","20","30","40"],"tickvals":[0,10,20,30,40],"categoryorder":"array","categoryarray":["0","10","20","30","40"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","showSendToCloud":false},"source":"A","attrs":{"44115c10f2cc":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"44115cb45e4c":{"x":{},"y":{},"colour":{},"shape":{}},"4411459aff20":{"ymin":{},"ymax":{},"width":{},"colour":{},"x":{},"y":{},"colour.1":{},"shape":{}},"441142e3b193":{"yintercept":{}},"4411729f4c33":{"xintercept":{}}},"cur_data":"44115c10f2cc","visdat":{"44115c10f2cc":["function (y) ","x"],"44115cb45e4c":["function (y) ","x"],"4411459aff20":["function (y) ","x"],"441142e3b193":["function (y) ","x"],"4411729f4c33":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
<div class="sourceCode" id="cb95"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb95-1"><a href="#cb95-1" aria-hidden="true" tabindex="-1"></a>estimates_jukyo_number_WLS_onlypost <span class="ot">&lt;-</span> df_estimates <span class="co">#for robustness check</span></span>
<span id="cb95-2"><a href="#cb95-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb95-3"><a href="#cb95-3" aria-hidden="true" tabindex="-1"></a>results_jukyo_number_WLS_onlypost <span class="ot">&lt;-</span> estimation_results <span class="co"># for only-post DID table</span></span></code></pre></div>
</div>
</div>
<div id="y-housing-security-benefit住居確保給付金の決定件数-with-covar" class="section level1" number="11">
<h1><span class="header-section-number">11</span> Y = housing security benefit/住居確保給付金の決定件数 with covar</h1>
<div id="ols-no-trends-5" class="section level2" number="11.1">
<h2><span class="header-section-number">11.1</span> OLS, no trends</h2>
<div class="sourceCode" id="cb96"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb96-1"><a href="#cb96-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb96-2"><a href="#cb96-2" aria-hidden="true" tabindex="-1"></a>estimation_results  <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_jukyo_OLS_covar8Xcovid_months</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb96-3"><a href="#cb96-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>jukyo_number, </span>
<span id="cb96-4"><a href="#cb96-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>unemploy_shock_diff2)</span>
<span id="cb96-5"><a href="#cb96-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb96-6"><a href="#cb96-6" aria-hidden="true" tabindex="-1"></a><span class="co">#texreg::screenreg(l = estimation_results , include.ci = FALSE, digits=3)</span></span>
<span id="cb96-7"><a href="#cb96-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb96-8"><a href="#cb96-8" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb96-9"><a href="#cb96-9" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_jukyo</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb96-10"><a href="#cb96-10" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;unemploy_shock_diff2&quot;</span>,</span>
<span id="cb96-11"><a href="#cb96-11" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;jukyo_number_OLS&quot;</span>)</span>
<span id="cb96-12"><a href="#cb96-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb96-13"><a href="#cb96-13" aria-hidden="true" tabindex="-1"></a><span class="co"># Event study graph</span></span>
<span id="cb96-14"><a href="#cb96-14" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_OLS_covar <span class="ot">&lt;-</span> <span class="fu">event_study_graph_jukyo</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb96-15"><a href="#cb96-15" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;jukyo_number_OLS&quot;</span>)</span>
<span id="cb96-16"><a href="#cb96-16" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_OLS_covar </span></code></pre></div>
<pre><code>## Warning: Removed 12 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABUAAAAPACAYAAAD0ZtPZAAAEDmlDQ1BrQ0dDb2xvclNwYWNlR2VuZXJpY1JHQgAAOI2NVV1oHFUUPpu5syskzoPUpqaSDv41lLRsUtGE2uj+ZbNt3CyTbLRBkMns3Z1pJjPj/KRpKT4UQRDBqOCT4P9bwSchaqvtiy2itFCiBIMo+ND6R6HSFwnruTOzu5O4a73L3PnmnO9+595z7t4LkLgsW5beJQIsGq4t5dPis8fmxMQ6dMF90A190C0rjpUqlSYBG+PCv9rt7yDG3tf2t/f/Z+uuUEcBiN2F2Kw4yiLiZQD+FcWyXYAEQfvICddi+AnEO2ycIOISw7UAVxieD/Cyz5mRMohfRSwoqoz+xNuIB+cj9loEB3Pw2448NaitKSLLRck2q5pOI9O9g/t/tkXda8Tbg0+PszB9FN8DuPaXKnKW4YcQn1Xk3HSIry5ps8UQ/2W5aQnxIwBdu7yFcgrxPsRjVXu8HOh0qao30cArp9SZZxDfg3h1wTzKxu5E/LUxX5wKdX5SnAzmDx4A4OIqLbB69yMesE1pKojLjVdoNsfyiPi45hZmAn3uLWdpOtfQOaVmikEs7ovj8hFWpz7EV6mel0L9Xy23FMYlPYZenAx0yDB1/PX6dledmQjikjkXCxqMJS9WtfFCyH9XtSekEF+2dH+P4tzITduTygGfv58a5VCTH5PtXD7EFZiNyUDBhHnsFTBgE0SQIA9pfFtgo6cKGuhooeilaKH41eDs38Ip+f4At1Rq/sjr6NEwQqb/I/DQqsLvaFUjvAx+eWirddAJZnAj1DFJL0mSg/gcIpPkMBkhoyCSJ8lTZIxk0TpKDjXHliJzZPO50dR5ASNSnzeLvIvod0HG/mdkmOC0z8VKnzcQ2M/Yz2vKldduXjp9bleLu0ZWn7vWc+l0JGcaai10yNrUnXLP/8Jf59ewX+c3Wgz+B34Df+vbVrc16zTMVgp9um9bxEfzPU5kPqUtVWxhs6OiWTVW+gIfywB9uXi7CGcGW/zk98k/kmvJ95IfJn/j3uQ+4c5zn3Kfcd+AyF3gLnJfcl9xH3OfR2rUee80a+6vo7EK5mmXUdyfQlrYLTwoZIU9wsPCZEtP6BWGhAlhL3p2N6sTjRdduwbHsG9kq32sgBepc+xurLPW4T9URpYGJ3ym4+8zA05u44QjST8ZIoVtu3qE7fWmdn5LPdqvgcZz8Ww8BWJ8X3w0PhQ/wnCDGd+LvlHs8dRy6bLLDuKMaZ20tZrqisPJ5ONiCq8yKhYM5cCgKOu66Lsc0aYOtZdo5QCwezI4wm9J/v0X23mlZXOfBjj8Jzv3WrY5D+CsA9D7aMs2gGfjve8ArD6mePZSeCfEYt8CONWDw8FXTxrPqx/r9Vt4biXeANh8vV7/+/16ffMD1N8AuKD/A/8leAvFY9bLAAAAOGVYSWZNTQAqAAAACAABh2kABAAAAAEAAAAaAAAAAAACoAIABAAAAAEAAAVAoAMABAAAAAEAAAPAAAAAALYRw1EAAEAASURBVHgB7N0JvG1j3Tjw3+War6lIIWPmEMpUouklkSmu6JXIlDQoKaKSJEpKb0LUW8qYN7xEKXOm9xaSKUNRCVHm2fnv377/fe7e+6x9zj7TPvus/X0+n9NZ61nPWut5vs8+R/d3nmFKXyWFRIAAAQIECBAgQIAAAQIECBAgQIAAgRIKzFbCNmkSAQIECBAgQIAAAQIECBAgQIAAAQIEqgICoD4IBAgQIECAAAECBAgQIECAAAECBAiUVkAAtLRdq2EECBAgQIAAAQIECBAgQIAAAQIECAiA+gwQIECAAAECBAgQIECAAAECBAgQIFBaAQHQ0nathhEgQIAAAQIECBAgQIAAAQIECBAgIADqM0CAAAECBAgQIECAAAECBAgQIECAQGkFBEBL27UaRoAAAQIECBAgQIAAAQIECBAgQICAAKjPAAECBAgQIECAAAECBAgQIECAAAECpRUQAC1t12oYAQIECBAgQIAAAQIECBAgQIAAAQICoD4DBAgQIECAAAECBAgQIECAAAECBAiUVkAAtLRdq2EECBAgQIAAAQIECBAgQIAAAQIECAiA+gwQIECAAAECBAgQIECAAAECBAgQIFBaAQHQ0nathhEgQIAAAQIECBAgQIAAAQIECBAgIADqM0CAAAECBAgQIECAAAECBAgQIECAQGkFBEBL27UaRoAAAQIECBAgQIAAAQIECBAgQICAAKjPAAECBAgQIECAAAECBAgQIECAAAECpRUQAC1t12oYAQIECBAgQIAAAQIECBAgQIAAAQICoD4DBAgQIECAAAECBAgQIECAAAECBAiUVkAAtLRdq2EECBAgQIAAAQIECBAgQIAAAQIECExFUC6Bc889N5544on+Rr35zW+OZZddtv98Ig4uvPDCePTRR/tfvd5668UKK6zQf+6AQK8IdOPPZ6/YD6edd911V+TvrSuuuCIeeOCBeOihh+Lhhx+OhRZaKJZZZpn+r3XWWSc233zzmH322Yfz+Iayt9xyS9x4440NedOnT4855pijIW+8T+6+++644IIL4qqrrupv8yOPPBILLrhgvOpVr6p+rbLKKtX2brjhhjF1qv/7MN594vkECBAgQIAAAQIECIydwJS+Shq7x3nSRAtkYDH/8V5Lp556auy888610wn5vtZaazX8A/973/te7LXXXhNSFy8lMJEC3fjzOZEe3fTul156KX7wgx/E0UcfHXfeeWfbVVtqqaVi7733jg9/+MOx6KKLtn1freBXvvKV+PznP187rX7/97//XQ08NmSO08lZZ50VX/ziF+PWW29t+w0ZCN5pp53iS1/6UiyyyCJt36cgAQIECBAgQIAAAQIEJkrAFPiJkvdeAgQIEOgKgRz5uPrqq8cee+wxrOBnVv6+++6Lgw46KF772tfGpz71qXjxxRe7ok1DVSL/ULbxxhvHDjvsMKzgZz43A7Tf/e53Y8UVV6x+H+pdrhMgQIAAAQIECBAgQGCiBQRAJ7oHvJ8AAQIEJkzgy1/+cmyxxRZx2223DVqHOeecc9Drzz33XBxzzDHxrne9K/75z38OWnaiL/71r3+Nt7/97dUp/qOpy7/+9a/Yd99945BDDhnNY9xLgAABAgQIECBAgACBcRewiNe4E3sBAQIECHSbwAsvvFCdtv6jH/1oQNWmTJkS73znO6uB0Xe84x2x5JJLVqekP/3003HPPfdUvy6++OL44Q9/GJlXny677LJ44xvfGD//+c/jDW94Q/2lrjh+8sknY9NNN437779/QH3e+ta3xo477lhtb7b5Na95TTz++OPxl7/8pfp19dVXRy6r0jzK9fDDD49Xv/rV1WDogIfKIECAAAECBAgQIECAQBcICIB2QSeMZRVyCmduXFFLq666au3QdwIECBD4/wIHHHBAFAU//+M//iO++tWvxtprrz3Aat55543Xv/711a/3vve9kaNHc03jXMezPhCaAcMcYfmHP/whllhiiQHPmciME044YcCU9wzYHnfccbH++usPqFoGNnOqe6Zc5/TQQw+NL3zhC/HjH/+4oWxO/992222rQdOGC04IECBAgAABAgQIECDQBQICoF3QCWNZhc985jNj+TjPIkCAQOkEzjnnnPjWt77V0K7cyf3II4+MT3/60w35g5284hWvqK7/mUHTLbfcMv7xj3/0F8/p4Rkw/MUvftGfN9EHzz//fHWafn09ll122eqO9+1u4JTlM3CczzrjjDP6H1VbAiA3kZIIECBAgAABAgQIECDQbQLWAO22HlEfAgQIEBg3gb///e+x2267NTw/p7yfeeaZwwp+1j8gR1Bee+21/SMla9cuuuiiOOmkk2qnE/79+uuvj2x/fTr++ONHtHv9ySefHCuttFL9oyJHl+bSAhIBAgQIECBAgAABAgS6TUAAtNt6RH0IECBAYNwEvvnNb8Zjjz3W8PyDDz64On27IXOYJ0svvXT85Cc/idlma/zPak4N/9vf/jbMp41P8T/96U8ND546dWpstNFGDXntnsw333wDAslPPPFE3Hnnne0+QjkCBAgQIECAAAECBAh0TMAU+I5Re1EZBXK0UwYVbr311ur010UWWaS6Gcib3vSmyADBZE+5huG9995bDeBksCTXA8yNXV772tdOyqbl5i0zZsyobujy0EMPxate9apqW9Zaa62Ye+65B21Tbh5Tu/fZZ5+tjvZbZZVVYrHFFhv0vuFcfOqpp+K3v/1t5C7dzzzzTHU9xRVWWKG65uRwnjNU2Xx+9u2DDz4YGbR65StfWe3bddddN6ZNmzbU7W1fT+PLL7+8ui5xtmPNNdeM/BmZqJSBzxylWJ9WW221+NKXvlSfNeLjHAn60Y9+NL797W/3PyN9c73Mz372s/15E3XQvPHRwgsvHLmu6UhT7nh/4IEHNtz+xz/+MdJUIkCAAAECBAgQIECAQDcJCIB2U2+MQV1yNE8GrGopN7bYZpttaqf931dfffXINepqKf+B/ra3va12OuT3173udZFBoFo666yzYoMNNqidjvr7fffdF7nJyD//+c/+Z+U01aOOOire//73V+uem5TUT7fMf4jvt99+/eXbPXj3u99dDQbVyucGKP/5n/9ZOx3wPde6y1Fk//3f/x133XXXgB2R84Y555wzckflDIZstdVWA57RDRm5SUtttNY888xTDeRmvbJ93/jGN6o7XDePGKvVO+0/9rGPxS677BLZL4OlTn7W6tu04IILRgZjMmVgMfv1lFNOiQceeGBAdTMolxuIZZBqgQUWaLien8Xc5OanP/1pZBC0OeWaiN/5zndi8803b77U9nmuHZnvPvvss6t1bb5xueWWiw996EPVMhmIHknKgGr+PshRijfffHPhI/Jzu8kmm8QnP/nJ2GyzzQrLNGeut956/SMc0/HGG2+sFsn1NA877LBqILd2zxxzzBE77bRTfO5znxswfbpWZjy/f//7368GfOvf8fGPf3zAqM3668M9zs9KGtdvRnfaaad1RQA0/4BRnx5++OFq3410o6b8Y8hee+0V888/fzWInv2fQW6JAAECBAgQIECAAAECXSfQJ5VKoBKY7Kt8yPq/Tj311ML2VTbv6C+T5S+88MLCcq0yK6PlGu6/7LLLWhXtq/wjuaFsZdfklmXzQiXg1FcJKjXcUwmy9VWCNw33VTYdaSizxhprNFxv5+SOO+5oeEYlQNNXCQq0vPXcc8/tW3755RvuqfcuOq4EhvsqgdKWz5yoC6uuump/OyqjwKrVqATG+iq7XPfnF7WnPi/b9uijjw7ahE5+1urbtNBCC1XrVQn092244YZttSk/q5VgZH97zjvvvL7KKLm27q0E5vsqI0z77y06KPr5vOCCC9p+R+UPHH2VNRyLHj1o3vnnn9+35JJLttWOWv9WNvZpsGj1gqWWWqr/uZURtdVild3R+/Nqz6v/XgkYt3rcuOZXAuQN9crPSGX39jF/ZyVY3fCebHslGF/4nsMPP3xA2X//+9+FZUeb+etf/3rAu3bdddfRPtb9BAgQIECAAAECBAgQ6HqBxsXKKv9KkwhMpECulZcjUetHseaaejltNUdT1qccEVefclRbq5Ft9eXqj3M34/q0xRZbFE7RzanT73vf+6qjOe++++76W4Y8vuaaayJHyV1xxRVDlp3IAjmaNe1vueWWtquRbcsRtJXfdG3f08mCOcIt25TTyttJOXpxhx12qBb9n//5n2p/14+UHuwZOcqveXr1YOXz2sUXX1xde7Ldd1x55ZWR0/Urf3AY6tH913PUZ45Czmnvw0m//OUvY/3114/bb799OLfFddddF1/4whda3pOjTHMUd6dTjhbPjYrq05vf/ObI0c9jnbbeeusBjzz99NMH5HU6I0elVwLhDa/94Q9/GJ/5zGeiEghuyHdCgAABAgQIECBAgACBMgkIgJapNyd5W3Jqcgar6gOMs88+e/zgBz+oTk9ubl5RsLIy4rW5WMvzDNo1l//gBz9YWH7PPfeMn/3sZw3Xcur3zjvvXA165dqQGbz93//932rwpzJKtKFsTod9z3veE7fddltDfrecZIA3PWvTdrNt2267bXXJgcro4OoO2XvvvXfkOo7NKQNev/rVr5qzJ/w8p/LnkhC1Kdm51mG2IQOVGYzOJQyyX5un8Oe1nMacyyDUArvZ7py2nUGsX/ziF9V1D4um+h566KENS0sMhZBLT2Q9M2VgMJcVOOecc6rT9HONzgyo5pT0+pTrdlZGZzb8nNRfrz/O5+czX3755frsyABdBv/TpjKCt+qRyx5URso2lPvzn/9cXUKjfqmJhgJNJ/k5yqUE6t+X097rg4z5OauMCm66c/xP82e0OciXf5gYj5RrYzavrZl/LJjolMsnfOITnxhQjaOPProaGM2lD66++uqG/htQWAYBAgQIECBAgAABAgQmo0DXj1FVwWEJFE2xLXpAJ6cltzMFvhL87FtppZUapmdW/rHeVwlWFVW/P6+yfl/DPTnN96WXXuq/PtjBpZde2nDvoosu2vf8888PuKWybmBDucrPeV9l05i+nLrcKlU2W+nbbrvtBtxX2TRnXKbctqrHYPn108WzTbWv7K/KiMmWt374wx/uL1u7J5cjaJU6+Vlr1aacAl8JHBZWsRK07quMMh7Qpmxb5u+///6FfVYJ8vVVAokD7mteqqH+pc0/nzW/nDp+1VVX1RftP87Pc2WE3oD3VAK0/WWKDiojN/sqG3E13JfvqazXW1S8mpdT+A844ICGe7KOlTVvW95TPwW+1p78nn1RGUVa/ZlKq8ofNvo+//nPV/NaPmwcLxx//PED2nXRRReN2xubf++lR1Hq5BT4fH/2ceWPMQMs6vsufxdWRrz35VIFuSxG9p9EgAABAgQIECBAgACBySxgBGjlX33SxArkTtG5eU1lPc7+iuSosTPPPDN23HHH/ryig+Zp8DnNt93pwc3T33M0Z763PuXovOYdoivBgfj9738/6KY3uZFObmhTCSbVP646AvSkk05qyOumk9wNvLJO4KAbWlUCSfHOd76zodqVYHDh5kINhSbopLKmaVxyySXVHd+LqpAjc3PDraKUI0RzZGT9CMZauRw5miOIK4H7Wlb1e6uNoxoK1Z2k+f/93/9FTscuSrkExNe+9rXqqNT667kp02DT0w866KCG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c2RiO2mOOeaoTpHsxBTuRRddNI499tiGauXIrAxetjsVvnkzpHxYjnrN0ZrDTbne4q9//evq5imtgr2tgp8ZZMngVo6869XUzZ+1ieyTHMWZ63g2f6ZaBT9z5PXVV18da665ZlvVzp/Z0047LfKPFq024sm1HIuCnxnM23///auB++b6tfXySVIolxHI9T+PO+646o73I6l2/g7dYostIjdt6+bgZ61tGfTOEawZCM1N2UaacoRrLs+QazS3+5kc6bvcR4AAAQIECBAgQIAAgdEICICORq8E9+b07lzLMv/xniODilL+4z53Tf/tb38bOUW3U+kDH/hA9b3178tAYvNaiPXX649zVFfzGn9F69/V3zPYcY64O+GEEyLXCcz1UnPEZ6uUAaOcOpsjR3PjmeaNgFrdV+b8bv6sTaR7jmzOdUAHCyDl2rG5A3yO5lx++eWHXd1DDjmkOsV9r732GnTd0HxwBj4zqJXLPOQ08Hb/QDLsSnXRDfm7L4PRt99+ezUwuNlmmw0IShdVN/slg8s5Rfz8888ftA+L7p/ovO22264avMxN4nJEaLvLc+RnMEd15+/CXA+0+ffsRLfL+wkQIECAAAECBAgQINAsMKUy8qevOdP55BXIjSzuuuuu/gaceuqpsfPOO/efD3aQ6wNecskl1X/MP/zww7HIIotUd2TPqeS5vttkS7kG3mte85qoTaPPIMf9999fXdduLNqSU+Bzh/n0fuihhyJHqOZoqgyK5KjP/C4VC5Tts1bcyuHn5u7r1113XXX9z7w7pxbnOp3rrrvu8B/W4o6c2p1B+VzDN3/Osy9yrcfllluu/yuXbOj1lMsC/PnPf45cFiS/7rvvvmqgL3+ul1lmmerPd075Huk6n93omxtu5Wfjb3/7W/WzkeuC5u/Peeedt/oZyd+nuT5ojqSXCBAgQIAAAQIECBAgMJkEBEAnU2+1Uddc+zL/0V5LuePz9OnTa6c99T03etlmm23627zVVltVN3/pz3BAgAABAgQIECBAgAABAgQIECBQegFT4EvWxY899lhDi3IH315NP/jBDxqa/uEPf7jh3AkBAgQIECBAgAABAgQIECBAgED5BQRAS9bHjz/+eEOLchp7L6Zcky83+ailnEqc65hKBAgQIECAAAECBAgQIECAAAECvSUgAFqi/s6deJt3SM8djnst5dqcudlLrmdXS7nBSS9s5lJrr+8ECBAgQIAAAQIECBAgQIAAAQIzBYq3/aYzKQWOP/74hnovuOCC1U2AGjJLdpK7Nv/73/+ubszxxBNPxPXXXx/HHXdcXHHFFf0tXWCBBWKfffbpP3dAgAABAgQIECBAgAABAgQIECDQOwICoJO4r48++ug455xzqjs333HHHdXde+ubs91228Ucc8xRn1W646uvvjqGWtvzkEMOiQwGd2P60Y9+VN1FvlN1S6vcuVoiMFECPvMTJe+9BAgQIECAAAECBAgQ6F0BAdBJ3PeXXHJJXHvttdWv5mZMmTIldt111+bs0p0PFczbcMMNY//99+/adv/kJz+JX/7ylx2r36abbioA2jFtLyoS8JkvUpFHgAABAgQIECBAgAABAuMpYA3Q8dQdx2f39fXFddddV/iGueeeO04//fTYaKONCq+XKXPppZdu2Zz1118/zj///JhtNh/zlkguECBAgAABAgQIECBAgAABAgRKLmAE6CTt4Icffjje8IY3xD333BN/+9vfIkd8rrzyyrHWWmvFRz7ykdhggw0macuGV+0cAbr11lvHjTfeGH/+859j6tSpscIKK8Tee+8de+yxR8wzzzzDe2CHS2+//fbVfuzUa5dYYolOvcp7CBQK+MwXssgkQIAAAQIECBAgQIAAgXEUmFIZSdg3js/36A4IPPfcc/Hyyy93fbBvvClyE6R5553Xbu/jDe35BAgQIECAAAECBAgQIECAAIFJJCAAOok6S1UJECBAgAABAgQIECBAgAABAgQIEBiegMURh+elNAECBAgQIECAAAECBAgQIECAAAECk0hAAHQSdZaqEiBAgAABAgQIECBAgAABAgQIECAwPAEB0OF5KU2AAAECBAgQIECAAAECBAgQIECAwCQSEACdRJ2lqgQIECBAgAABAgQIECBAgAABAgQIDE9AAHR4XkoTIECAAAECBAgQIECAAAECBAgQIDCJBARAJ1FnqSoBAgQIECBAgAABAgQIECBAgAABAsMTEAAdnpfSBAgQIECAAAECBAgQIECAAAECBAhMIgEB0EnUWapKgAABAgQIECBAgAABAgQIECBAgMDwBARAh+elNAECBAgQIECAAAECBAgQIECAAAECk0hAAHQSdZaqEiBAgAABAgQIECBAgAABAgQIECAwPAEB0OF5KU2AAAECBAgQIECAAAECBAgQIECAwCQSEACdRJ2lqgQIECBAgAABAgQIECBAgAABAgQIDE9AAHR4XkoTIECAAAECBAgQIECAAAECBAgQIDCJBARAJ1FnqSoBAgQIECBAgAABAgQIECBAgAABAsMTEAAdnpfSBAgQIECAAAECBAgQIECAAAECBAhMIgEB0EnUWapKgAABAgQIECBAgAABAgQIECBAgMDwBARAh+elNAECBAgQIECAAAECBAgQIECAAAECk0hg6iSqq6o2CXznO9+JSy65pD/3sMMOizXWWKP/3AEBAgQIECBAgAABAhEPP/xwnHPOOYUUH/rQh2LOOecsvCaTAAECBAgQKIeAAOgk7sff//73ce655/a3YL/99us/dkCAAAECBAgQIECAwEyBBx54II455phCjp133lkAtFBGJgECBAgQKI+AKfDl6UstIUCAAAECBAgQIECAAAECBAgQIECgSUAAtAnEKQECBAgQIECAAAECBAgQIECAAAEC5REQAC1PX2oJAQIECBAgQIAAAQIECBAgQIAAAQJNAgKgTSBOCRAgQIAAAQIECBAgQIAAAQIECBAoj4AAaHn6UksIECBAgAABAgQIECBAgAABAgQIEGgSEABtAnFKgAABAgQIECBAgAABAgQIECBAgEB5BARAy9OXWkKAAAECBAgQIECAAAECBAgQIECAQJOAAGgTiFMCBAgQIECAAAECBAgQIECAAAECBMojIABanr7UEgIECBAgQIAAAQIECBAgQIAAAQIEmgQEQJtAnBIgQIAAAQIECBAgQIAAAQIECBAgUB4BAdDy9KWWECBAgAABAgQIECBAgAABAgQIECDQJCAA2gTilAABAgQIECBAgAABAgQIECBAgACB8ggIgJanL7WEAAECBAgQIECAAAECBAgQIECAAIEmAQHQJhCnBAgQIECAAAECBAgQIECAAAECBAiUR0AAtDx9qSUECBAgQIAAAQIECBAgQIAAAQIECDQJCIA2gTglQIAAAQIECBAgQIAAAQIECBAgQKA8AgKg5elLLSFAgAABAgQIECBAgAABAgQIECBAoElAALQJxCkBAgQIECBAgAABAgQIECBAgAABAuUREAAtT19qCQECBAgQIECAAAECBAgQIECAAAECTQICoE0gTgkQIECAAAECBAgQIECAAAECBAgQKI/A1PI0RUsIECBAgAABAgQIECAwUGDBBReMt7/97QMvVHKmTvVPokIYmQQIECBAoEQC/mtfos7UFAIECBAgQIAAAQIEBgosvfTScfzxxw+8IIcAAQIECBDoCQFT4HuimzWSAAECBAgQIECAAAECBAgQIECAQG8KCID2Zr9rNQECBAgQIECAAAECBAgQIECAAIGeEBAA7Ylu1kgCBAgQIECAAAECBAgQIECAAAECvSkgANqb/a7VBAgQIECAAAECBAgQIECAAAECBHpCQAC0J7pZIwkQIECAAAECBAgQIECAAAECBAj0poBd4Huz37WaAAECBAgQIECAAAECBAgQGAeBE044IR544IGWT1566aXjQx/6UMvrLhAgMPYCAqBjb+qJBAgQIECAAAECBAgQIECAQI8KZAD097//fcvWb7TRRgKgLXVcIDA+AqbAj4+rpxIgQIAAAQIECBAgQIAAAQIECBAg0AUCRoB2QSeoAgECBAgQIECAAAECBAgQIFAOgSOPPDL+9a9/VRuz6667xrPPPhsLL7xwHH/88dW8RRddtBwN1QoCk0hAAHQSdZaqEiBAgAABAgQIECBAgAABAt0t8B//8R/9Fdxjjz2qAdB55pknpk+f3p/vgACBzgqYAt9Zb28jQIAAAQIECBAgQIAAAQIECBAgQKCDAgKgHcT2KgIECBAgQIAAAQIECBAgQIAAAQIEOisgANpZb28jQIAAAQIECBAgQIAAAQIECBAgQKCDAgKgHcT2KgIECBAgQIAAAQIECBAgQIAAAQIEOisgANpZb28jQIAAAQIECBAgQIAAAQIECBAgQKCDAgKgHcT2KgIECBAgQIAAAQIECBAgQIAAAQIEOisgANpZb28jQIAAAQIECBAgQIAAAQIECBAgQKCDAgKgHcT2KgIECBAgQIAAAQIECBAgQIAAAQIEOisgANpZb28jQIAAAQIECBAgQIAAAQIECBAgQKCDAgKgHcT2KgIECBAgQIAAAQIECBAgQIAAAQIEOisgANpZb28jQIAAAQIECBAgQIAAAQIECBAgQKCDAgKgHcT2KgIECBAgQIAAAQIECBAgQIAAAQIEOisgANpZb28jQIAAAQIECBAgQIAAAQIECBAgQKCDAlM7+C6vIkCAAAECBAgQIECAQMcFnnzyybjpppsK37v++uvH7LPPXnhNJgECBAgQIFAOAQHQcvSjVhAgQIAAAQIECBAg0ELgnnvuid12263w6owZM2LatGmF12QSIECAAAEC5RAwBb4c/agVBAgQIECAAAECBAgQIECAAAECBAgUCAiAFqDIIkCAAAECBAgQIECAAAECBAgQIECgHAICoOXoR60gQIAAAQIECBAgQIAAAQIECBAgQKBAQAC0AEUWAQIECBAgQIAAAQIECBAgQIAAAQLlEBAALUc/agUBAgQIECBAgAABAgQIECBAgAABAgUCAqAFKLIIECBAgAABAgQIECBAgAABAgQIECiHgABoOfpRKwgQIECAAAECBAgQIECAAAECBAgQKBAQAC1AkUWAAAECBAgQIECAAAECBAgQIECAQDkEBEDL0Y9aQYAAAQIECBAgQIAAAQIECBAgQIBAgYAAaAGKLAIECBAgQIAAAQIECBAgQIAAAQIEyiEgAFqOftQKAgQIECBAgAABAgQIECBAgAABAgQKBARAC1BkESBAgAABAgQIECBAgAABAgQIECBQDgEB0HL0o1YQIECAAAECBAgQIECAAAECBAgQIFAgIABagCKLAAECBAgQIECAAAECBAgQIECAAIFyCAiAlqMftYIAAQIECBAgQIAAAQIECBAgQIAAgQIBAdACFFkECBAgQIAAAQIECBAgQIAAAQIECJRDQAC0HP2oFQQIECBAgAABAgQIECBAgAABAgQIFAgIgBagyCJAgAABAgQIECBAgAABAgQIECBAoBwCAqDl6EetIECAAAECBAgQIECAAAECBAgQIECgQEAAtABFFgECBAgQIECAAAECBAgQIECAAAEC5RAQAC1HP2oFAQIECBAgQIAAAQIECBAgQIAAAQIFAgKgBSiyCBAgQIAAAQIECBAgQIAAAQIECBAoh4AAaDn6USsIECBAgAABAgQIECBAgAABAgQIECgQmFqQJ4sAAQIECBAgQIAAAQKlEZhvvvli7bXXLmzP7LPPXpgvkwABAgQIECiPgABoefpSSwgQIECAAAECBAgQKBBYfvnl47TTTiu4IosAAQIECBDoBQFT4Huhl7WRAAECBAgQIECAAAECBAgQIECAQI8KCID2aMdrNgECBAgQIECAAAECBAgQIECAAIFeEBAA7YVe1kYCBAgQIECAAAECBAgQIECAAAECPSogANqjHa/ZBAgQIECAAAECBAgQIECAAAECBHpBQAC0F3pZGwkQIECAAAECBAgQIECAAAECBAj0qIAAaI92vGYTIECAAAECBAgQIECAAAECBAgQ6AUBAdBe6GVtJECAAAECBAgQIECAAAECBAgQINCjAgKgPdrxmk2AAAECBAgQIECAAAECBAgQIECgFwQEQHuhl7WRAAECBAgQIECAAAECBAgQIECAQI8KCID2aMdrNgECBAgQIECAAAECBAgQIECAAIFeEBAA7YVe1kYCBAgQIECAAAECBAgQIECAAAECPSogANqjHa/ZBAgQIECAAAECBAgQIECAAAECBHpBQAC0F3pZGwkQIECAAAECBAgQIECAAAECBAj0qIAAaI92vGYTIECAAAECBAgQIECAAAECBAgQ6AUBAdBe6GVtJECAAAECBAgQIECAAAECBAgQINCjAgKgPdrxmk2AAAECBAgQIECAAAECBAgQIECgFwQEQHuhl7WRAAECBAgQIECAAAECBAgQIECAQI8KCID2aMdrNgECBAgQIECAAAECBAgQIECAAIFeEBAA7YVe1kYCBAgQIECAAAECBAgQIECAAAECPSogANqjHa/ZBAgQIECAAAECBAgQIECAAAECBHpBQAC0F3pZGwkQIECAAAECBAgQIECAAAECBAj0qIAAaI92vGYTIECAAAECBAgQIECAAAECBAgQ6AUBAdBe6GVtJECAAAECBAgQIECAAAECBAgQINCjAlN7tN2aTYAAAQIECBAgQIBAjwg888wzce+99xa2duWVV47ZZjMupBBHJgECBAgQKImAAGhJOlIzCBAgQIAAAQIECBAoFvjTn/4U22+/feHFGTNmxLRp0wqvySRAgAABAgTKIeBPneXoR60gQIAAAQIECBAgQIAAAQIECBAgQKBAQAC0AEUWAQIECBAgQIAAAQIECBAgQIAAAQLlEBAALUc/agUBAgQIECBAgAABAgQIECBAgAABAgUCAqAFKLIIECBAgAABAgQIECBAgAABAgQIECiHgABoOfpRKwgQIECAAAECBAgQIECAAAECBAgQKBAQAC1AkUWAAAECBAgQIECAAAECBAgQIECAQDkEBEDL0Y9aQYAAAQIECBAgQIAAAQIECBAgQIBAgYAAaAGKLAIECBAgQIAAAQIECBAgQIAAAQIEyiEgAFqOftQKAgQIECBAgAABAgQIECBAgAABAgQKBARAC1BkESBAgAABAgQIECBAgAABAgQIECBQDgEB0HL0o1YQIECAAAECBAgQIECAAAECBAgQIFAgIABagCKLAAECBAgQIECAAAECBAgQIECAAIFyCAiAlqMftYIAAQIECBAgQIAAAQIECBAgQIAAgQIBAdACFFkECBAgQIAAAQIECBAgQIAAAQIECJRDQAC0HP2oFQQIECBAgAABAgQIECBAgAABAgQIFAgIgBagyCJAgAABAgQIECBAgAABAgQIECBAoBwCAqDl6EetIECAAAECBAgQIECAAAECBAgQIECgQEAAtABFFgECBAgQIECAAAECBAgQIECAAAEC5RAQAC1HP2oFAQIECBAgQIAAAQIECBAgQIAAAQIFAgKgBSiyCBAgQIAAAQIECBAgQIAAAQIECBAoh8DUcjRDKwgQIECAAAECBAgQIECAAIHJINDX19eymlOmTGl5zQUCBAiMVMAI0JHKuY8AAQIECBAgQIAAAQIECBAYlsCiiy4as802W8uvnXfeeVjPU5gAAQLtCAiAtqOkDAECBAgQIECAAAECBAgQIECAAAECk1LAFPhx7Lannnoq9t1333j00Udjo402igMOOGAc3+bRBAgQIECAAAECBAgUCcw111yx7LLLFl2qjkIrvCCTAIFxEVhxxRUjR4G+9NJLceedd1bfMffcc/f/jC6xxBLj8l4PJUCgtwUEQMex/7/5zW/G3XffXX3Dk08+OY5v8mgCBAgQIECAAAECBFoJrLTSSnHRRRe1uiyfAIEOClx99dXVtz3++OOx4IILVo/XWGONuO666zpYC68iQKDXBEyBH6ce/81vfhMXX3zxOD3dYwkQIECAAAECBAgQIECAAAECBAgQaEdAALQdpWGWeeihh+LrX//6MO9SnAABAgQIECBAgAABAgQIECBAgACBsRYQAB1j0b6+vjjiiCPiiSeeiHnmmWeMn+5xBAgQIECAAAECBAgQIECAAAECBAgMR0AAdDhabZQ944wzYsaMGTFlypTYb7/9+u/Ic4kAAQIECBAgQIAAAQIECBAgQIAAgc4KCICOofddd90VJ554YvWJO+20U6y55ppj+HSPIkCAAAECBAgQIECAAAECBAgQIEBguAICoMMVa1H++eefj8MOOyxeeOGFeN3rXhe77757i5KyCRAgQIAAAQIECBAgQIAAAQIECBDolIAA6BhJf+9734t777035phjjjjkkEOq38fo0R5DgAABAgQIECBAgAABAgQIECBAgMAIBaaO8D631QnccMMNcdZZZ1Vz9txzz1huueXqro78MEeUXnTRRS0f8Pjjj1ff9eCDD8ZTTz3VspwLBAgQIECAAAECBAgQIECAAAECBHpVQAB0lD2fQcivfOUr1aestdZaMX369FE+cdbtuZP8I488Miuj4Gjq1KnVDZcKLskiQIAAAQIECBAgQIAAAQIECBAg0PMCpsCP8iNw1FFHVYOU8803Xxx88MGCkaP0dDsBAgQIECBAgAABAgQIECBAgACBsRQwAnQUmhdeeGFcfvnl1Sd84hOfiMUWW2wUTxt4a47uzDVFW6UXX3wxXnrppejr62tVRD4BAgQIECBAgAABAgQIECBAgACBnhYQAB1h9//973+PY489tnr3JptsEpttttkIn9T6tq9+9auRX61S7jR/yimntLosnwABAgQIECBAgAABAgQIECBAgEDPCwiAjuAjkKMuv/zlL8czzzwTCyywQOy9996R63U2p/qNiV544YX+MrPPPnvMO++8zcWdEyBAgAABAgQIECBAgAABAgQIECAwxgICoCMAfeyxx+KWW26p3pmbIO24445DPuWKK66I/Mr0hje8IY477rgh71GAAAECBAgQIECAAAECBAgQINBtAmeeeWbceeedLau18MILx7777tvyugsEOi0gANppce8jQIAAAQIECBAgQIAAAQIECExigVNPPTXOP//8li1YdtllBUBb6rgwEQICoCNQn3vuuWOXXXYZ8s4cKXruuedWyy2zzDLx1re+tXq8+OKLD3mvAgQIECBAgAABAgQIECBAgAABAgQIjF5AAHQEhrl+5x577DHknffdd19/AHT55Zdv654hH6oAAQIECBAgQIAAAQIECBAgQGACBfbff//YYYcdqjU48MADIzeKzvTf//3fMdtss8W0adOq5/6HQLcICIB2S0+oBwECBAgQIECAAAECBAgQIEBgEghssskm/bU84ogj+gOgH/jAB6oB0P6LDgh0icBsXVIP1SBAgAABAgQIECBAgAABAgQIECBAgMCYCwiAjjmpBxIgQIAAAQIECBAgQIAAAQIECBAg0C0CAqDd0hPqQYAAAQIECBAgQIAAAQIECBAgQIDAmAtYA3TMSWc9cKmlloorr7xyVoYjAgQIECBAgAABAgQIECBAgAABAgQ6KmAEaEe5vYwAAQIECBAgQIAAAQIECBAgQIAAgU4KGAHaSW3vIkCAAAECBAgQIECg4wLPP/98PPLII4XvffWrXx1TpkwpvCaTAAECBAgQKIeAAGg5+lErCBAgQIAAAQIECBBoIXD77bfH9ttvX3h1xowZMW3atMJrMgkQIECAAIFyCJgCX45+1AoCBAgQIECAAAECBAgQIECAAAECBAoEBEALUGQRIECAAAECBAgQIECAAAECBAgQIFAOAQHQcvSjVhAgQIAAAQIECBAgQIAAAQIECBAgUCAgAFqAIosAAQIECBAgQIAAAQIECBAgQIAAgXIICICWox+1ggABAgQIECBAgAABAgQIECBAgACBAgEB0AIUWQQIECBAgAABAgQIECBAgAABAgQIlENAALQc/agVBAgQIECAAAECBAgQIECAAAECBAgUCAiAFqDIIkCAAAECBAgQIECAAAECBAgQIECgHAICoOXoR60gQIAAAQIECBAgQIAAAQIECBAgQKBAQAC0AEUWAQIECBAgQIAAAQIECBAgQIAAAQLlEBAALUc/agUBAgQIECBAgAABAgQIECBAgAABAgUCAqAFKLIIECBAgAABAgTagMcDAABAAElEQVQIECBAgAABAgQIECiHgABoOfpRKwgQIECAAAECBAgQIECAAAECBAgQKBAQAC1AkUWAAAECBAgQIECAAAECBAgQIECAQDkEBEDL0Y9aQYAAAQIECBAgQIAAAQIECBAgQIBAgYAAaAGKLAIECBAgQIAAAQIECBAgQIAAAQIEyiEgAFqOftQKAgQIECBAgAABAgQIECBAgAABAgQKBARAC1BkESBAgAABAgQIECBAgAABAgQIECBQDgEB0HL0o1YQIECAAAECBAgQIECAAAECBAgQIFAgIABagCKLAAECBAgQIECAAAECBAgQIECAAIFyCAiAlqMftYIAAQIECBAgQIAAAQIECBAgQIAAgQIBAdACFFkECBAgQIAAAQIECBAgQIAAAQIECJRDQAC0HP2oFQQIECBAgAABAgQIECBAgAABAgQIFAhMLciTRYAAAQIECBAgQIAAgdIITJ06NRZaaKHC9kyZMqUwXyYBAgQIECBQHgEB0PL0pZYQIECAAAECBAgQIFAgsOqqq8Z1111XcEUWAQIECBAg0AsCpsD3Qi9rIwECBAgQIECAAAECBAgQIECAAIEeFRAA7dGO12wCBAgQIECAAAECBAgQIECAAAECvSAgANoLvayNBAgQIECAAAECBAgQIECAAAECBHpUQAC0RzteswkQIECAAAECBAgQIECAAAECBAj0goAAaC/0sjYSIECAAAECBAgQIECAAAECBAgQ6FEBAdAe7XjNJkCAAAECBAgQIECAAAECBAgQINALAgKgvdDL2kiAAAECBAgQIECAAAECBAgQIECgRwUEQHu04zWbAAECBAgQIECAAAECBAgQIECAQC8ICID2Qi9rIwECBAgQIECAAAECBAgQIECAAIEeFRAA7dGO12wCBAgQIECAAAECBAgQIECAAAECvSAgANoLvayNBAgQIECAAAECBAgQIECAAAECBHpUQAC0RzteswkQIECAAAECBAgQIECAAAECBAj0goAAaC/0sjYSIECAAAECBAgQIECAAAECBAgQ6FEBAdAe7XjNJkCAAAECBAgQIECAAAECBAgQINALAgKgvdDL2kiAAAECBAgQIECAAAECBAgQIECgRwUEQHu04zWbAAECBAgQIECAAAECBAgQIECAQC8ICID2Qi9rIwECBAgQIECAAAECBAgQIECAAIEeFRAA7dGO12wCBAgQIECAAAECBAgQIECAAAECvSAgANoLvayNBAgQIECAAAECBAgQIECAAAECBHpUQAC0RzteswkQIECAAAECBAgQIECAAAECBAj0goAAaC/0sjYSIECAAAECBAgQIECAAAECBAgQ6FEBAdAe7XjNJkCAAAECBAgQIECAAAECBAgQINALAgKgvdDL2kiAAAECBAgQIECAAAECBAgQIECgRwWm9mi7NZsAAQIECBAgQIAAgR4RePnll+O5554rbO0888xTmC+TAAECBAgQKI+AAGh5+lJLCBAgQIAAAQIECBAoELjlllti++23L7gSMWPGjJg2bVrhNZkECBAgQIBAOQRMgS9HP2oFAQIECBAgQIAAAQIECBAgQIAAAQIFAgKgBSiyCBAgQIAAAQIECBAgQIAAAQIECBAoh4AAaDn6USsIECBAgAABAgQIECBAgAABAgQIECgQEAAtQJFFgAABAgQIECBAgAABAgQIECBAgEA5BARAy9GPWkGAAAECBAgQIECAAAECBAgQIECAQIGAAGgBiiwCBAgQIECAAAECBAgQIECAAAECBMohIABajn7UCgIECBAgQIAAAQIECBAgQIAA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cr3Q0aQrrhjN3e4lMHqBqaN/hCcQIECAAAECBAgQIECgewVuueWW2GmnnQoreM0118R8881XeE0mAQIE6gVOO63+bNbxbJWhZe9736zzMh3ljvEf/WjEU09FfPazI2/Z3/8+8nvdSWAsBARAx0LRMwgQIECAAAECBAgQ6FqBl19+OZ577rnC+vXlVsUSAQIEhhDIXxVnnVVc6O1vj3j1q4uvlSV34YVH15IMpErdJ/DQQw/FAw88MGjFVltttZg6dfKHDyd/CwbtJhcJECBAgAABAgQIECBAgAABAqMTuOqqiPvuK35GGae/N7d0ueWac4Z3nsHjHCX7jncM7z6lx1fg5JNPjoNyl6pB0j/+8Y9YbLHFBikxOS5VBmpLBAgQIECAAAECBAgQIECAAAECrQRaTX+fc86IbbdtdVd58jfaKGL++UfenkceiXjnOyN22SXin/8c+XPcSWCkAkaAjlTOfQQIECBAgAABAgQIECBAgEDpBV56KeJnPytu5rvfHbHQQsXXypQ711wRe+8dcfTRo2vVj38cceGFEcccMzMYOrqnuXu0AquuumpMnz69+pjrr78+7r333urx2yvrOiy66KLV47nnnnu0r+mK+wVAu6IbVIIAAQIECBAgQIAAAQIECBDoRoFf/SqislRiYdpxx8LsUmbmTOmzz45KkGx0zcvRoB/8YMSPfhTxve9FvO51o3ueu0cusNVWW0V+Zdp99937A6CHHXZYvPnNbx75g7vwTlPgu7BTVIkAAQIECBAgQIAAAQIEek/g8ccfj8G+Wm3m1XtSnW3x6acXv2/eeSO23LL4Whlzc6Tr+eeP3YZPv/51xOqrRxxxRMQLL5RRTJu6SUAAtJt6Q10IECBAgAABAgQIECBAoCcFMri54IILDvp16KGH9qTNRDa60i3x858X1yAHzs03X/G1suZWNgSPG26I2HTTwVv4+tdHvPe9EVOmDF7u2WcjDj44Yu21I665ZvCyrhIYjYAA6Gj03EuAAAECBAgQIECAAAECBAiUVuCCCyIee6y4eb2w+3tRy5dcMuKiiyKuvjri4x+PmGeeWaV2223mKNGbb44499yISy+NWGmlWddbHd1yS1SmXEfsu29URkG3KiWfwMgFBEBHbudOAgQIECBAgAABAgQIECAwJgKzzTZbrLvuutWv1+fwuf+fFl544f78pZZaqpbte4cEWu3+ntPBhxoF2aEqTthrNtww4thjI5ZZZlYVTjopYostZo383HjjiJtuijjkkIg555xVruiory/iu9+NWGWViHPOKSohj8DIBWyCNHI7dxIgQIAAAQIECBAgQIAAgTERmGOOOeK6666rPuuPf/xj1IKgb3vb2yo7kLfYgnxM3uwhrQSefDIiR4AWpe22GzqgV3RfL+blDvKVPXUiR8zuuWfEVVcNrvD3v0ekb06h/6//isgRpxKB0QoYATpaQfcTIECAAAECBAgQIECAAAECpRPItT+feaa4Wb06/b1Yo73cHNl5xRURJ5wQkSNoh0rnnRex6qoR3/52xMsvD1XadQKDCwiADu7jKgECBAgQIECAAAECBAgQINCDAq2mvy+2WMQmm/QgyBg0OTdFylGgt90WscMOQz/wiSdmrjO6/vozp9IPfYcSBIoFBECLXeQSIECAAAECBAgQIECAAAECPSrw6KMRv/pVceOnT4+Yffbia3LbE3j1qyPOOGPmEgNLLz30Pbnz/BvfGHHggRFPPz10eSUINAsIgDaLOCdAgAABAgQIECBAgAABAgR6WuCssyJeeKGYwPT3YpeR5G6+eURlydv45CeHDiq/+GLEUUdFZX3ciIsvHsnb3NPLAgKgvdz72k6AAAECBAgQIECAAAECBAgMEGg1/T1HK6633oDiMkYhMN98EcccE3H99RFrrz30g+69N2KzzSJ23jnioYeGLq8EgRQQAPU5IECAAAECBAgQIECAAAECBAj8f4EHHoi48spijhz9metYSmMvkMHPDIJ+4xsRGRQdKv30pxG5sdIppwxV0nUCAqA+AwQIECBAgAABAgQIECBAgACBfoHTT2+967jp7/1M43KQa6vuv//MafE5PX6olGu17r57xNveFnHnnUOVdr2XBYwA7eXe13YCBAgQIECAAAECBAgQIECgQaDV9PeVV45YY42Gok7GSSCXGrjggogMRueGSUOlyy6b2Tdf/nLE888PVdr1XhQQAO3FXtdmAgQIECBAgAABAgQIECBAYIDAPfdE5I7jRSnXnJQ6KzB9esRtt0XsscfQSw8891zEoYdGrLVWxFVXdbae3tb9AgKg3d9HakiAAAECBAgQIECAAAECBAh0QCDXlWyVMhgndV5goYUiTjwx4oorZq75OVQNbr014q1vjdhrr4h//3uo0q73ioAA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BMokIAFaptYWKwECBAgQIECAAAECBAgQKKBAq5sfjRoV8d73FjBgIREg0C8BCdB+cVmZAAECBAgQIECAAAECBAgQaDeBc85pfkRbbhkxZUrzZWoJECiPgARoedpapAQIECBAgAABAgQIECBAoHAC114bkXeAb1b23LNZrToCBMomMLZsAYuXAAECBAgQIECAAIFyCay99tpx8cUXNw160UUXbVqvkgCBzhFodfOjsZWMx+67d04cjpQAgeETkAAdPlt7JkCAAAECBAgQIECgDQQmTJgQq6++ehsciUMgQGCoBebOjTj33OZ73W67iMmTmy9TS4BAuQQMgS9Xe4uWAAECBAgQIECAAAECBAgURuC3v4146KHm4bj7e3MXtQTKKCABWsZWFzMBAgQIECBAgAABAgQIECiAQKu7v0+cGLHzzgUIUAgECAyJgATokDDaCQECBAgQIECAAAECBAgQILAwBWbNijj//ObP+M53RiyxRPNlagkQKJ+ABGj52lzEBAgQIECAAAECBAgQIECg4wV+9auIxx9vHoa7vzd3UUugrAISoGVteXETIECAAAECBAgQIECAAIEOFmh19/fFF4/YcccODsyhEyAw5AISoENOaocECBAgQIAAAQIECBAgQIDAcAo8/3zEz37W/Bl23TUirwGqECBAoCYgAVqT8JcAAQIECBAgQIAAAQIECBDoCIGf/zzi2WebH6q7vzd3UUugzAISoGVufbETIECAAAECBAgQIECAAIEOFGh19/fJkyO23bYDA3LIBAgMq4AE6LDy2jkBAgQIECBAgAABAgQIECAwlAJPPRWRN0BqVnbfPWLs2GZL1BEgUGYBCdAyt77YCRAgQIAAAQIECBAgQIBAhwmcf37ESy81P2jD35u7qCVQdgEJ0LK/AsRPgAABAgQIECBAgAABAgQ6SKDV8PeVVop4y1s6KBCHSoDAQhOQAF1o1J6IAAECBAgQIECAAAECBAgQGIzAo49GXHFF8z3suWfEqFHNl6klQKDcAhKg5W5/0RMgQIAAAQIECBAgQIBAmwncddcrB/TPf7a+2/kra5Vn6txzI+bMaR6v4e/NXdQSIBAhAepVQIAAAQIECBAgQIAAAQIERlhg9uyI006LWHPNiJ12euVgrroqIu9s/t73Rtx66yv1ZZ1qNfw93TbdtKwq4iYwMIFnn302pk+fXn08//zz9Z089thj9fq5c+fW6zt5QgK0k1vPsRMgQIAAAQIECBAgQIBAxwvksO63vjXiYx+LuPPOBcPJG/6cd17EhhtGnHHGgsvLUnPffRHTpjWPVu/P5i5qCfQkcPLJJ8dKlYvn5uPHP/5xfdVddtmlXv/P7IZegDK2ADEIgQABAgQIECBAgAABAgQIdKRApQNWbLttxE039X74M2dG7LdfZShnpSvTPvv0vn7R1sj8zLx5zaPK638qBAgQaCUgAdpKRj0BAgQIECBAgAABAgQIEBhmgUMO6Vvys+thZE/R7DG6+upda4s/3Wr4e/aMXXfd4scvQgJDLbDKKqvE1ltv3eNux48f3+PyTlkoAdopLeU4CRAgQIAAAQIECBAgQKBQAjncfSBD2nNI/Fe/GnHWWYXi6DGY226L+Mtfmq9i+HtzF7UEehPYa6+9Ih9lKK4BWoZWFiMBAgQIECBAgAABAgQItJ3AT37S+o7mvR3sBRdEZCK0LOVHP2od6R57tF5mCQECBFJAD1CvAwIECBAgQIAAAQIECBAgMAIC11478Cd95pmIW26J2Hjjge+jk7bscn+Wbof9xjdGrLpqtyozBIZEIO+OPmPGjOq+nsn/cC+XW2+9NZ566qkYNWpUvO51r6tV+9vmAhKgbd5ADo8AAQIECBAgQIAAAQIEiinwyCODi2uw2w/u2Rfe1n/6U8Q//tH8+Qx/b+6idvACRx99dJx66qkL7Gj77bev1o0dOzZmzZq1wHIV7SlgCHx7toujIkCAAAECBAgQIECAAIGCCyyxxOACXHzxwW3fKVu3uvnRmDER73lPp0ThOAkQGEkBPUBHUt9zEyBAgAABAgQIECBAgEBpBV7zmohLLhl4+IcfHnHmmRFrrTXwfbT7lvPmRZxzTvOjzJtXL79882VqCQxWYJNNNqkk2Ftn2MdkBl7pGAEJ0I5pKgdKgAABAgQIECBAgMBABG6//fY49NBDm27648qFBRdZZJGmy1QSGG6BnXaKOPnkgT/LNddEbLBBxJe/HJXXeOUmHwX8hn/11RH339/cyPD35i5qh0Zg3333jXwoxRAo4NtjMRpGFAQIECBAgAABAgQIDI3ACy+8EHnTimZlzpw5zarVEVgoAttsE7HZZhHXXz/wp3vxxYjPfz4ibxJ0+unz9zfwvbXflq2Gv48fH7Hrru13vI6IAIH2FHAN0PZsF0dFgAABAgQIECBAgAABAgUXqNxEOk47LSq9kAcf6I03RrzhDRGHHRbx/POD31877GH27Iif/KT5kbzjHRFLLdV8mVoCBAg0CkiANoqYJ0CAAAECBAgQIECAAAECC0lg000jspfjoosO/gmzQ/MJJ0S87nURl146+P2N9B4uvzzin/9sfhSGvzd3UUuAQHMBCdDmLmoJECBAgAABAgQIECBAgMBCEdh554jf/z7iTW9q/XSTJkUcdFDEW97Sep3akrvvjnj72yM+9KGIGTNqtZ33t9Xw98UWi3jXuzovHkdMgMDICUiAjpy9ZyZAgAABAgQIECBAgAABAlWBjTaKyBv+TJsW8ZGPvIKyyioR3/9+xD33RHzrWxG/+938YfOvetUr67SaOuusiNe+dv71QVut0671L70UccEFzY8ubx6VSVCFAAECfRWQAO2rlPUIECBAgAABAgQIECBAgMAwC+R1PD/1qVeeJIfI77NPxDLLzK/L64Z+9KMRf/97xC67vLJeq6kcQp7DxXfcMeK++1qt1X71v/xlxNNPNz+uPfdsXq+WAAECrQQkQFvJqCdAgAABAgQIECBAgAABAm0qsMIK83tInn9+RE73Vi66KGK99SJOOSVi7tze1h755XlX+2ZlySUj8gZICgECBPojIAHaHy3rEiBAgAABAgQIECBAgACBNhLYddf5vUH32y8ie4f2VJ59dv51RPNaozff3NOaI7ssj/MXv2h+DLvtFjF+fPNlagkQINBKQAK0lYx6AgQIECBAgAABAgQIECDQAQJ5PdDvfS/it7+NeM1rej/ga6+N2HjjiC9/OSKvtdlu5cILI154oflRuft7c5eFXXvEEUfEtttuW33ce++99affbrvtqnUf+MAH6nUmCLSDgARoO7SCYyBAgAABAgQIECBAgAABAoMU2HLLiBtvjPj85yPGjet5Z7NmRRx5ZETt5ks9r71wl7a6+/tyy0VstdXCPRbP1lzgxsoL7fLLL68+nn/++fpKV1xxRbXu97//fb3OBIF2EJAAbYdWcAwECBAgQIAAAQIECBAgQGAIBCZOjDjmmIjrr494/et73+Gtt0Zk4vTAA1vfdKj3vQzdGjNmRFx6afP97bFHxJgxzZepJUCAQE8CY3taaBkBAgQIECBAgAABAgQIECDQeQIbbBCRQ91POiniS1+KeO651jHMmxdx6qkRP/3p/L877dR63eFe8pOfRGTv1GbF3d+bqYxM3Q9+8IPKZQpaXKegckhjx0o3jUzLeNZWAl6RrWTUEyBAgAABAgQIECBAgACBDhYYXRnzefDBEe9+d8QBB0RccknPwTz4YMTOO0e8970R3/xmxPLL97z+cCxtdff3VVeNeOMbh+MZ7XMgAssss8xANrMNgRETMAR+xOg9MQECBAgQIECAAAECBAgQGH6BTB7+6lcRZ50VMXly78937rkR664b8f3v977uUK4xfXrElVc236Pen81d1BIg0DcBCdC+OVmLAAECBAgQIECAAAECBAh0tMDee0f8/e8Re+3VexhPPBGx774Rb3tbxB139L7+UKxxzjkRc+c235O7vzd3UUuAQN8EJED75mQtAgQIECBAgAABAgQIECDQ8QLZA/TssyMuvjhilVV6D+c3v4nI64ked1zE7Nm9rz+YNVrd/f21r51/DIPZt20JECi3gARoudtf9AQIECBAgAABAgQIECBQQoF3vCPi5psjPvnJiLxWaE8l73Xz2c/Ov6v8DTf0tObAl915Z8R11zXfXu/P5i5qCRDou0Avb3N935E1CRAgQIAAAQIECBAgQIAAgc4RWGyx+Tc7uuaaiPXX7/24//KXiM03jzj88Ijnn+99/f6s0ermR7kPCdD+SFqXAIFmAhKgzVTUESBAgAABAgQIECBAgACBkghkUjN7dh55ZMSECT0HPWdOxPHHz0+YXnZZz+v2Z2mr4e+bbRax5pr92ZN1CRAgsKCABOiCJmoIECBAgAABAgQIECBAgECpBMaNizjiiIgbb4x4y1t6D/2uuyK22y5in30iHn+89/V7WiN7k+Zw/GZF789mKuoIEOivgARof8WsT4AAAQIECBAgQIAAAQIECiqw9toRv/tdxHe+E7HEEr0HeeaZEXmToryD+0DLjBnNtxw1KmKPPZovU0uAAIH+CEiA9kfLugQIECBAgAABAgQIECBAoOACmXg84ICIv/89Ypddeg/20Ucj9twz4l3virj//t7Xb1yjVQI0e6KutFLj2uYJECDQfwEJ0P6b2YIAAQIECBAgQIAAAQIECBReYMUVIy64IOK88yKWX773cH/xi4j11ov49rcj5s7tff3aGjNn1qa6/zX8vbuHOQIEBi4gATpwO1sSIECAAAECBAgQIECAAIHCC+y++/zeoPvuG5G9Q3sqzzwT8YlPRLz5zRG33NLTmj0vGzs2Ip9XIUCAwFAIVN5SFAIECBAgQIAAAQIECBRXYI011oj/bXGL6UUWWaS4gYuMwBAKLLlkxOmnR7z//RH77x9x++0973zatIiNN474/OcjvvCFiPHje16/cWneYGny5MZa8wQIEBiYgATowNxsRYAAAQIECBAgQIBAhwgstthisckmm3TI0TpMAu0tsNVWEX/9a8RXvxpxwgkRs2e3Pt4c2p7r5RD6730vYost5q/729/2ftMkw99bu1pCgED/BSRA+29mCwIECBAgQIAAAQIECBAgUFqBiRMjvv71+Tc+2m+/iOuv75kih8LnkPi8o/tdd0X88Y89rz9hQt9uvtTzXiwlQIDAKwKuAfqKhSkCBAgQIECAAAECBAgQIECgjwIbbhhx7bXze4IuumjPG82bF/HjH/ee/My9jBsX8dRTPe/PUgIECPRHQAK0P1rWJUCAAAECBAgQIECAAAECBOoCY8ZEHHJIxN/+FvH2t9erBzXx7LMRO+8c8dJLg9qNjQkQIFAXkACtU5ggQIAAAQIECBAgQIAAAQIEBiKw2moRl1wSceaZEcssM5A9dN/mT3+KOPnk7nXmCBAgMFABCdCBytmOAAECBAgQIECAAAECBAgQ6CbwwQ9G/P3vEUNxE6NvfCMih84rBAgQGKyABOhgBW1PgAABAgQIECBAgAABAgQI1AVe/eqIH/0o4pe/jHjVq+rV/Z546KGIG27o92Y2IECAwAICEqALkKggQIAAAQIECBAgQIAAAQIEBiuwww4R73rX4PZyxx2D297WBAgQSAEJUK8DAgQIECBAgAABAgQIsBEuQAAAQABJREFUECBAYFgEZs4c3G7zhkgKAQIEBisgATpYQdsTIECAAAECBAgQIECAAAECTQVWWKFpdZ8rB7t9n5/IigQIFFpAArTQzSs4AgQIECBAgAABAgQIECAwcgJvetPAn3vMmIg3vGHg29uSAAECNQEJ0JqEvwQIECBAgAABAgQIECBAgMCQCvzrv0YstdTAdrn99hHLLDOwbW1FgACBrgISoF01TBMgQIAAAQIECBAgQIAAAQJDJjBpUsS//3v/d5e9P48+uv/b2YIAAQLNBCRAm6moI0CAAAECBAgQIECAAAECBIZE4NOfjthpp/7t6hvfiNhoo/5tY20CBAi0EpAAbSWjngABAgQIECBAgAABAgQIEBi0wOhK5uHccyP23rv3XY0bF3HqqRGf/GTv61qDAAECfRWQAO2rlPUIECBAgAABAgQIECBAgACBAQlMmBBx1lkRv/pVxFvfGpFJ0a5lscUi9tor4m9/i/jYx7ouMU2AAIHBC4wd/C7sgQABAgQIECBAgAABAgQIECDQu0De2Cgf99wTsdpq89dfb72I66+PmDix9+2tQYAAgYEINPzmMpBd2IYAAQIECBAgQIAAAQIECBAg0HeBpZd+Zd3s/Sn5+YqHKQIEhl5AAnToTe2RAAECBAgQIECAAAECBAgQIECAAIE2EZAAbZOGcBgECBAgQIAAAQIECBAgQIAAAQIECAy9gATo0JvaIwECBAgQIECAAAECBAgQIECAAAECbSIgAdomDeEwCBAgQIAAAQIECBAgQIAAAQIECBAYegEJ0KE3tUcCBAgQIECAAAECBAgQIECAAAECBNpEQAK0TRrCYRAgQIAAAQIECBAgQIAAAQIECBAgMPQCY4d+l/ZIgAABAgQIECBAgACB9hG466674sgjj2x6QKeddlpMnDix6TKVBAgQIECAQDEEJECL0Y6iIECAAAECBAgQIECghcCzzz4b06ZNa7p09uzZTetVEiBAgAABAsURMAS+OG0pEgIECBAgQIAAAQIECBAgQIAAAQIEGgQkQBtAzBIgQIAAAQIECBAgQIAAAQIECBAgUBwBCdDitKVICBAgQIAAAQIECBAgQIAAAQIECBBoEJAAbQAxS4AAAQIECBAgQIAAAQIECBAYqMBmm20WY8aMqT6eeeaZ6m6mT59er9tqq60GumvbESAwQAE3QRognM0IECBAgAABAgQIECBAgAABAo0Cc+fOjXw0llpd7W/jcvMECAyfgATo8NnaMwECBAgQIECAAAECBAgQIFAygalTp0at52ez0KdMmdKsWh0BAsMoIAE6jLh2TYAAAQIECBAgQIAAAQIECJRL4MILLyxXwKIl0AECrgHaAY3kEAkQIECAAAECBAgQIECAAAECBAgQGJiABOjA3GxFgAABAgQIECBAgAABAgQIECBAgEAHCEiAdkAjOUQCBAgQIECAAAECBAgQIECAAAECBAYmIAE6MDdbESBAgAABAgQIECBAgAABAgQIECDQAQISoB3QSA6RAAECBAgQIECAAAECBAgQIECAAIGBCUiADszNVgQIECBAgAABAgQIECBAgAABAgQIdICABGgHNJJDJECAAAECBAgQIECAAAECBAgQIEBgYAISoANzsxUBAgQIECBAgAABAgQIECBAgAABAh0gIAHaAY3kEAkQIECAAAECBAgQIECAAAECBAgQGJiABOjA3GxFgAABAgQIECBAgAABAgQIECBAgEAHCEiAdkAjOUQCBAgQIECAAAECBAgQIECAAAECBAYmIAE6MDdbESBAgAABAgQIECBAgAABAgQIECDQAQISoB3QSA6RAAECBAgQIECAAAECBAgQIECAAIGBCUiADszNVgQIECBAgAABAgQIECBAgAABAgQIdICABGgHNJJDJECAAAECBAgQIECAAAECBAgQIEBgYAISoANzsxUBAgQIECBAgAABAgQIECBAgAABAh0gMLYDjtEhEiBAgAABAgQIECBAYMACq666apx66qlNt584cWLTepUECBAgQIBAcQQkQIvTliIhQIAAAQIECBAgQKCJwBJLLBHbbLNNkyWqCBAgQIAAgTIIGAJfhlYWIwECBAgQIECAAAECBAgQIECAAIGSCkiAlrThhU2AAAECBAgQIECAAAECBAgQIECgDAISoGVoZTESIECAAAECBAgQIECAAAECBAgQKKmABGhJG17YBAgQIECAAAECBAgQIECAAAECBMogIAFahlYWIwECBAgQIECAAAECBAgQIECAAIGSCkiAlrThhU2AAAECBAgQIECAAAECBAgQIECgDAISoGVoZTESIECAAAECBAgQIECAAAECBAgQKKmABGhJG17YBAgQIECAAAECBAgQIECAAAECBMogMLYMQYqRAAECBAgQIECAAAECBAi0s8DcuXPj29/+dvUQH3roofqh3nHHHXHyySdX5zfddNPYYost6stMECBAgEDfBCRA++ZkLQIECBAgQIAAAQIECBAgMGwCs2bNik9+8pML7P+vf/1rvf7www+XAF1ASAUBAgR6FzAEvncjaxAgQIAAAQIECBAgQIAAAQIECBAg0KECeoB2aMM5bAIECBAgQIAAAQIECBAojsC4cePilFNO6TGgTTbZpMflFhIgQIBAcwEJ0OYuagkQIECAAAECBAgQIECAwEITGD16dBx44IEL7fk8EQECBMokYAh8mVpbrAQIECBAgAABAgQIECBAgAABAgRKJiABWrIGFy4BAgQIECBAgAABAgQIECBAgACBMglIgJaptcVKgAABAgQIECBAgAABAgQIECBAoGQCEqAla3DhEiBAgAABAgQIECBAgAABAgQIECiTgARomVpbrAQIECBAgAABAgQIECBAgAABAgRKJiABWrIGFy4BAgQIECBAgAABAgQIECBAgACBMglIgJaptcVKgAABAgQIECBAgAABAgQIECBAoGQCEqAla3DhEiBAgAABAgQIECBAgAABAgQIECiTgARomVpbrAQIECBAgAABAgQIECBAgAABAgRKJiABWrIGFy4BAgQIECBAgAABAgQIECBAgACBMgmMLVOwYiVAgAABAgQIECBAoHwC9913X5x44olNAz/22GNjwoQJTZepJECAAAECBIohIAFajHYUBQECBAgQIECAAAECLQSefPLJuOiii5ouPeqooyRAm8qoJECAAAECxREwBL44bSkSAgQIECBAgAABAgQIECBAgAABAgQaBCRAG0DMEiBAgAABAgQIECBAgAABAgQIECBQHAEJ0OK0pUgIECBAgAABAgQIECBAgAABAgQIEGgQkABtADFLgAABAgQIECBAgAABAgQIECBAgEBxBCRAi9OWIiFAgAABAgQIECBAgAABAgQIECBAoEFAArQBxCwBAgQIECBAgAABAgQIECBAgAABAsURkAAtTluKhAABAgQIECBAgAABAgQIECBAgACBBgEJ0AYQswQIECBAgAABAgQIECBAgAABAgQIFEdAArQ4bSkSAgQIECBAgAABAgQIECBAgAABAgQaBCRAG0DMEiBAgAABAgQIECBAgAABAgQIECBQHAEJ0OK0pUgIECBAgAABAgQIECBAgAABAgQIEGgQkABtABnK2eeeey4+9KEPxU477RTHH3/8UO7avggQIECAAAECBAgQIECAAAECBAgQ6IPA2D6sY5UBCpx44olx5513Vrd+9tlnB7gXmxEgQIAAAQIECBAgQIAAAQIECBAgMFABPUAHKtfLdldccUVccsklvaxlMQECBAgQIECAAAECBAgQIECAAAECwykgAToMuo8++miccMIJw7BnuyRAgAABAgQIECBAgAABAgQIECBAoD8CEqD90erDuvPmzYtjjjkmnnnmmVhkkUX6sIVVCBAgQIAAAQIECBAgQIAAAQIECBAYLgEJ0CGWPeecc+KGG26IUaNGxUEHHVTfe84rBAgQIECAAAECBAgQIECAAAECBAgsXAEJ0CH0vuOOO+K73/1udY977bVXbLjhhkO4d7siQIAAAQIECBAgQIAAAQIECBAgQKC/AhKg/RVrsf7MmTPjyCOPjFmzZsWaa64Z++67b4s1VRMgQIAAAQIECBAgQIAAAQIECBAgsLAEJECHSPq0006Lu+++O8aNGxdHHHFE9e8Q7dpuCBAgQIAAAQIECBAgQIAAAQIECBAYoMDYAW5nsy4C1113XZx33nnVmv333z9WX331LksHPnnqqafG1Vdf3XIHt99+e6y88srx2GOPxQsvvNByPQsIECBAgAABAgQIECBAgAABAgQIlFVAAnSQLf/000/H0UcfXd3LxhtvHHvssccg9/jK5tmjNG+o1FPJO82PGTOmp1UsI0CAAAECBAgQIECAAAECBAgQIFBaAUPgB9n0xx13XMyYMSMWW2yx+OIXv1i9+/sgd2lzAgQIECBAgAABAgQIECBAgAABAgSGSEAP0EFAXnTRRfG73/2uuodPf/rTsdxyyw1ibzYlQIAAAQIECBAgQGA4BKZMmVIftdW4/wkTJjRWmSdAgAABAgQKJiAB2qVBL7/88rjkkku61Cw4eeihh8ayyy4b06dPj5NOOqm6wlZbbRXveMc7Flx5kDXZo/Tggw9uuZfDDjsszjnnnJgzZ07LdSwgQIAAAQIECBAgUHaBpZdeOnbfffeyM4ifAAECBAiUVkACtEvTP/DAAzFt2rQuNQtOvvjii9WE41FHHVW98dASSywRBxxwQDzzzDMLrPzcc8/V62bNmlVfJ6/Zueiii9aXtZpYcsklIx+tSv5aPXv27FaL1RMgQIAAAQIECBAgQIAAAQIECBAovYAE6ABeAk899VT87W9/q26ZN0Hac889e93LlVdeGfnIstFGG8XJJ5/c6zZWIECAAAECBAgQIECAAAECBAgQIEBgcAISoF38dtttt9h+++271Cw4OXny5Mikp0KAAAECBAgQIECAAAECBAgQIECAQPsLSIB2aaNJkyZFPnorEydOjL333ru31SJ7iv70pz+trrfqqqvGlltuWZ1eccUVe93WCgQIECBAgAABAgQIECBAgAABAgQIDF5AAnQAhnn9zo985CO9bnnffffVE6BrrLFGn7bpdadWIECAAAECBAgQIECAAAECBAgQIECgzwKj+7ymFQkQIECAAAECBAgQIECAAAECBAgQINBhAhKgHdZgDpcAAQIECBAgQIAAAQIECBAgQIAAgb4LSID23cqaBAgQIECAAAECBAgQIECAAAECBAh0mIAEaIc1mMMlQIAAAQIECBAgQIAAAQIECBAgQKDvAm6C1Herfq85derUuOqqq/q9nQ0IECBAgAABAgQIECBAgAABAgQIEBgaAT1Ah8bRXggQIECAAAECBAgQIECAAAECBAgQaEMBCdA2bBSHRIAAAQIECBAgQIAAAQIECBAgQIDA0AhIgA6No70QIECAAAECBAgQIECAAAECBAgQINCGAhKgbdgoDokAAQIECBAgQIAAAQIECBAgQIAAgaERkAAdGkd7IUCAAAECBAgQIECAAAECBAgQIECgDQUkQNuwURwSAQIECBAgQIAAAQIECBAgQIAAAQJDIyABOjSO9kKAAAECBAgQIECAAAECBAgQIECAQBsKSIC2YaM4JAIECBAgQIAAAQIECBAgQIAAAQIEhkZAAnRoHO2FAAECBAgQIECAAAECBAgQIECAAIE2FJAAbcNGcUgECBAgQIAAAQIECBAgQIAAAQIECAyNgATo0DjaCwECBAgQIECAAAECBAgQIECAAAECbSggAdqGjeKQCBAgQIAAAQIECBAgQIAAAQIECBAYGgEJ0KFxtBcCBAgQIECAAAECBAgQIECAAAECBNpQYGwbHpNDIkCAAAECBAgQIECAwJAJTJ8+PU4//fSm+/vc5z4X48ePb7pMJQECBAgQIFAMAQnQYrSjKAgQIECAAAECBAgQaCHw2GOPxdlnn9106cEHHywB2lRGJQECBAgQKI6AIfDFaUuRECBAgAABAgQIECBAgAABAgQIECDQICAB2gBilgABAgQIECBAgAABAgQIECBAgACB4ghIgBanLUVCgAABAgQIECBAgAABAgQIECBAgECDgARoA4hZAgQIECBAgAABAgQIECBAgAABAgSKIyABWpy2FAkBAgQIECBAgAABAgQIECBAgAABAg0CEqANIGYJECBAgAABAgQIECBAgAABAgQIECiOgARocdpSJAQIECBAgAABAgQIECBAgAABAgQINAhIgDaAmCVAgAABAgQIECBAgAABAgQIECBAoDgCEqDFaUuRECBAgAABAgQIECBAgAABAgQIECDQICAB2gBilgABAgQIECBAgAABAgQIECBAgACB4ghIgBanLUVCgAABAgQIECBAgAABAgQIECBAgECDgARoA4hZAgQIECBAgAABAgQIECBAgAABAgSKIyABWpy2FAkBAgQIECBAgAABAgQIECBAgAABAg0CEqANIGYJECBAgAABAgQIECBAgAABAgQIECiOgARocdpSJAQIECBAgAABAgQIECBAgAABAgQINAhIgDaAmCVAgAABAgQIECBAgAABAgQIECBAoDgCEqDFaUuRECBAgAABAgQIECBAgAABAgQIECDQICAB2gBilgABAgQIECBAgAABAgQIECBAgACB4ghIgBanLUVCgAABAgQIECBAgAABAgQIECBAgECDgARoA4hZAgQIECBAgAABAgQIECBAgAABAgSKIyABWpy2FAkBAgQIECBAgAABAgQIECBAgAABAg0CEqANIGYJECBAgAABAgQIECBAgAABAgQIECiOgARocdpSJAQIECBAgAABAgQIECBAgAABAgQINAiMbZg3S4AAAQIECBAgQIAAgUIJrLDCCnHYYYc1jWn8+PFN61USIECAAAECxRGQAC1OW4qEAAECBAgQIECAAIEmAq9+9atjv/32a7JEFQECBAgQIFAGAUPgy9DKYiRAgAABAgQIECBAgAABAgQIECBQUgEJ0JI2vLAJECBAgAABAgQIECBAgAABAgQIlEFAArQMrSxGAgQIECBAgAABAgQIECBAgAABAiUVkAAtacMLmwABAgQIECBAgAABAgQIECBAgEAZBCRAy9DKYiRAgAABAgQIECBAgAABAgQIECBQUgEJ0JI2vLAJECBAgAABAgQIECBAgAABAgQIlEFAArQMrSxGAgQIECBAgAABAgQIECBAgAABAiUVkAAtacMLmwABAgQIECBAgAABAgQIECBAgEAZBCRAy9DKYiRAgAABAgQIECBAgAABAgQIECBQUgEJ0JI2vLAJECBAgAABAgQIECBAgAABAgQIlEFAArQMrSxGAgQIECBAgAABAgQIECBAgAABAiUVkAAtacMLmwABAgQIECBAgAABAgQIECBAgEAZBCRAy9DKYiRAgAABAgQIECBAgAABAgQIECBQUgEJ0JI2vLAJECBAgAABAgQIECBAgAABAgQIlEFAArQMrSxGAgQIECBAgAABAgQIECBAgAABAiUVkAAtacMLmwABAgQIECBAgAABAgQIECBAgEAZBCRAy9DKYiRAgAABAgQIECBAgAABAgQIECBQUgEJ0JI2vLAJECBAgAABAgQIECBAgAABAgQIlEFAArQMrSxGAgQIECBAgAABAgQIECBAgAABAiUVkAAtacMLmwABAgQIECBAgAABAgQIECBAgEAZBCRAy9DKYiRAgAABAgQIECBAgAABAgQIECBQUgEJ0JI2vLAJECBAgAABAgQIECBAgAABAgQIlEFAArQMrSxGAgQIECBAgAABAgQIECBAgAABAiUVGFvSuIVNgAABAgQIECBAgEBJBB555JE499xzm0b70Y9+NMaPH990mUoCBAgQIECgGAISoMVoR1EQIECAAAECBAgQINBCIBOgp5xyStOl++yzjwRoUxmVBAgQIECgOAKGwBenLUVCgAABAgQIECBAgAABAgQIECBAgECDgARoA4hZAgQIECBAgAABAgQIECBAgAABAgSKIyABWpy2FAkBAgQIECBAgAABAgQIECBAgAABAg0CEqANIGYJECBAgAABAgQIECBAgAABAgQIECiOgARocdpSJAQIECBAgAABAgQIECBAgAABAgQINAhIgDaAmCVAgAABAgQIECBAgAABAgQIECBAoDgCEqDFaUuRECBAgAABAgQIECBAgAABAgQIECDQICAB2gBilgABAgQIECBAgAABAgQIECBAgACB4ghIgBanLUVCgAABAgQIECBAgAABAgQIECBAgECDgARoA4hZAgQIECBAgAABAgQIECBAgAABAgSKIyABWpy2FAkBAgQIECBAgAABAgQIECBAgAABAg0CEqANIGYJECBAgAABAgQIECBAgAABAgQIECiOgARocdpSJAQIECBAgAABAgQIECBAgAABAgQINAhIgDaAmCVAgAABAgQIECBAgAABAgQIECBAoDgCEqDFaUuRECBAgAABAgQIECBAgAABAgQIECDQICAB2gBilgABAgQIECBAgAABAgQIECBAgACB4ghIgBanLUVCgAABAgQIECBAgAABAgQIECBAgECDgARoA4hZAgQIECBAgAABAgQIECBAgAABAgSKIyABWpy2FAkBAgQIECBAgAABAgQIECBAgAABAg0CEqANIGYJECBAgAABAgQIECBAgAABAgQIECiOgARocdpSJAQIECBAgAABAgQIECBAgAABAgQINAhIgDaAmCVAgAABAgQIECBAgAABAgQIECBAoDgCEqDFaUuRECBAgAABAgQIECBAgAABAgQIECDQIDC2Yd4sAQIECBAgQIAAAQIECiWw7LLLxn777dc0pvHjxzetV0mAAAECBAgUR0ACtDhtKRICBAgQIECAAAECBJoILL/88nHYYYc1WaKKAAECBAgQKIOAIfBlaGUxEiBAgAABAgQIECBAgAABAgQIECipgARoSRte2AQIECBAgAABAgQIECBAgAABAgTKICABWoZWFiMBAgQIECBAgAABAgQIECBAgACBkgpIgJa04YVNgAABAgQIECBAgAABAgQIECBAoAwCEqBlaGUxEiBAgAABAgQIECBAgAABAgQIECipgARoSRte2AQIECBAgAABAgQIECBAgAABAgTKICABWoZWFiMBAgQIECBAgAABAgQIECBAgACBkgpIgJa04YVNgAABAgQIECBAgAABAgQIECBAoAwCEqBlaGUxEiBAgAABAgQIECBAgAABAgQIECipgARoSRte2AQIECBAgAABAgQIECBAgAABAgTKICABWoZWFiMBAgQIECBAgAABAgQIECBAgACBkgpIgJa04YVNgAABAgQIECBAgAABAgQIECBAoAwCEqBlaGUxEiBAgAABAgQIECBAgAABAgQIECipgARoSRte2AQIECBAgAABAgQIECBAgAABAgTKICABWoZWFiMBAgQIECBAgAABAgQIECBAgACBkgpIgJa04YVNgAABAgQIECBAgAABAgQIECBAoAwCEqBlaGUxEiBAgAABAgQIECBAgAABAgQIECipgARoSRte2AQIECBAgAABAgQIECBAgAABAgTKICABWoZWFiMBAgQIECBAgAABAgQIECBAgACBkgpIgJa04YVNgAABAgQIECBAgAABAgQIECBAoAwCEqBlaGUxEiBAgAABAgQIECBAgAABAgQIECipgARoSRte2AQIECBAgAABAgQIECBAgAABAgTKICABWoZWFiMBAgQIECBAgAABAgQIECBAgACBkgqMLWncwiZAgAABAgQIECBAoCQCM2bMiIsvvrhptHvssUeMGzeu6TKVBAgQIECAQDEEJECL0Y6iIECAAAECBAgQIECghcCDDz4YRx11VNOlu+yyiwRoUxmVBAgQIECgOAKGwBenLUVCgAABAgQIECBAgAABAgQIECBAgECDgARoA4hZAgQIECBAgAABAgQIECBAgAABAgSKIyABWpy2FAkBAgQIECBAgAABAgQIECBAgAABAg0CEqANIGYJECBAgAABAgQIECBAgAABAgQIECiOgARocdpSJAQIECBAgAABAgQIECBAgAABAgQINAhIgDaAmCVAgAABAgQIECBAgAABAgQIECBAoDgCEqDFaUuRECBAgAABAgQIECBAgAABAgQIECDQICAB2gBilgABAgQIECBAgAABAgQIECBAgACB4ghIgBanLUVCgAABAgQIECBAgAABAgQIECBAgECDgARoA4hZAgQIECBAgAABAgQIECBAgAABAgSKIyABWpy2FAkBAgQIECBAgAABAgQIECBAgAABAg0CEqANIGYJECBAgAABAgQIECBAgAABAgQIECiOgARocdpSJAQIECBAgAABAgQIECBAgAABAgQINAhIgDaAmCVAgAABAgQIECBAgAABAgQIECBAoDgCEqDFaUuRECBAgAABAgQIECBAgAABAgQIECDQICAB2gBilgABAgQIECBAgAABAgQIECBAgACB4ghIgBanLUVCgAABAgQIECBAgAABAgQIECBAgECDgARoA4hZAgQIECBAgAABAgQIECBAgAABAgSKIyABWpy2FAkBAgQIECBAgAABAgQIECBAgAABAg0CEqANIGYJECBAgAABAgQIECBAgAABAgQIECiOgARocdpSJAQIECBAgAABAgQIECBAgAABAgQINAhIgDaAmCVAgAABAgQIECBAgAABAgQIECBAoDgCEqDFaUuRECBAgAABAgQIECBAgAABAgQIECDQIDC2Yd4sAQIECBAgQIAAAQIECiWw9NJLx2677dY0pnHjxjWtV0mAAAECBAgUR0ACtDhtKRICBAgQIECAAAECBJoITJkyJY455pgmS1QRIECAAAECZRAwBL4MrSxGAgQIECBAgAABAgQIECBAgAABAiUVkAAtacMLmwABAgQIECBAgAABAgQIECBAgEAZBCRAy9DKYiRAgAABAgQIECBAgAABAgQIECBQUgEJ0JI2vLAJECBAgAABAgQIECBAgAABAgQIlEFAArQMrSxGAgQIECBAgAABAgQIECBAgAABAiUVkAAtacMLmwABAgQIECBAgAABAgQIECBAgEAZBMaWIciFEeNLL70U5557btx4441x7733xlNPPRVTpkyJVVZZJd75znfGpptuujAOw3MQIECAAAECBAgQIECAAAECBAgQINBFQAK0C8ZAJ//85z/HscceG9OnT++2i9tvvz3ycdlll8V2220XBx98cEyaNKnbOmYIECBAgAABAgQIECBAgAABAgQIEBg+AQnQQdo+8sgj8YUvfCGeffbZ6p7WWWed2HrrrWOZZZaJu+++Oy688MJ47rnn4tJLL43Zs2fHkUceOchntDkBAgQIECBAgAABAgQIECBAgAABAn0VkADtq1SL9Y4//vh68nPXXXeNT33qUzFmzJj62rvvvnt8/OMfj4ceeih+85vfVHuDbrvttvXlJggQIECAAAECBAgQIECAAAECBAgQGD4BN0EahO3MmTPj+uuvr+5h2WWXjYMOOqhb8jMXTJ48uTr0vfY0V111VW3SXwIECBAgQIAAAQIECBAgQIAAAQIEhllAAnQQwDnEfc6cOdU9rLfeejFu3Lime9t4441j9Oj51LfddlvTdVQSIECAAAECBAgQIECAAAECBAgQIDD0AhKgQ2T6/PPPt9zT3LlzY968edXls2bNarmeBQQIECBAgAABAgQIECBAgAABAgQIDK2ABOggPFdeeeWYMGFCdQ8333xzPPnkk033Nm3atHoCdK211mq6jkoCBAgQIECAAAECBAgQIECAAAECBIZewE2QBmG66KKLxrvf/e743//93+qNkL72ta/Fl7/85Vh88cXre80h7yeeeGJ1ftSoUbHXXnvVl/U28eCDD8ZTTz3VcrW883wmYLNXafYyVQgQIECAAAECBAgQIECAAAECBAgQ6C4gAdrdo99z+++/f8yYMSN+/etfxx/+8IdqgnOzzTar3vzo3nvvrdZlcnLs2LFx2GGHxQYbbNDn5zjppJPiZz/7WY/rr7LKKjF9+vT6neh7XNlCAgQIECBAgAABAgQIECBAgAABAiUTkAAdZINnYvOII46IjTbaKI4//vjqMPjLLrus216XXHLJ+OY3vxmrr756t3ozBAgQIECAAAECBAgQIECgTAI//elP46WXXoqu99HITkXnnntulSE7+Wy++eZlIhErAQILQUACdJDIzzzzTOTQ92uuuaa+p0mTJsVSSy0VOYQ9e3/mtUE/8YlPxH777VcdMl9f0QQBAgQIECBAgAABAgQIECiRQH4vfuyxx7pFfOedd8Yee+xRrcvLxp199tndlpshQIDAYAUkQAchmNfgPPDAA+Puu++u7mX99dePQw89tN7Tc+bMmXHFFVfEt771rchEaV4L9LnnnosPfOADfXrW9dZbr7p+q5X//Oc/x3333RezZ89utYp6AgQIECBAgAABAgQIECBAgAABAqUWGDWvUkot0CX4yy+/PC655JIuNQtOZoJz2WWXrS4444wz4swzz6xO53U///M//zNGjx69wEbZE3SfffaJF154obr8hz/8YeQd5Adb9t133/j+979f300Ovd9mm23q8yYIECBAgAABAgQIECBAgEA7CRx33HE9dvTJ+2bstttu7XTIjoUAgQII6AHapREfeOCBmDZtWpeaBSdffPHFeuX5559fnc67u3/2s59tmvzMFVZaaaXIZOUpp5xSHRJ/3nnnxcEHH1zfjwkCBAgQIECAAAECBAgQIFAGgcMPP7wMYYqRAIE2E1iwu2KbHWC7Hs4TTzwRTz/9dPXwpkyZEssvv3yPh9r1Is533XVXj+taSIAAAQIECBAgQIAAAQIECBAgQIDA0AjoAdrFMbvZb7/99l1qFpycPHlytbKW/MyZZZZZZsEVG2pWXHHFes3jjz9enzZBgAABAgQIECBAgAABAgQIECBAgMDwCUiAdrHNu7fnoy8lh7WPGzcuZs2aFbfddlvMmTMnxowZ03LTvA5orayyyiq1SX8JECBAgAABAgQIEBhmgSeffDJ+//vfN32W7AAxdqyvRU1xVBIgQIAAgYII+KQfYEPmSdJqq60W//jHP6o3N7r55psjL9bcqlxzzTX1RWuttVZ92gQBAgQIECBAgAABAsMrcN9997W8Bv8NN9zQ504Qw3uU9k6AAAECBAgMl4BrgA5Cdscdd6xv/ZWvfCWmT59en+86cffdd9fv1j5+/Hh3au+KY5oAAQIECBAgQIAAAQIECBAgQIDAMApIgA4Cd9ddd43NNtusuod//vOf8alPfSp+9rOfxf3331+te+SRR+Kcc86J/fffP2bOnFmtO+CAA8IQ+EGg25QAAQIECBAgQIAAAQIECBAgQIBAPwQMge8HVuOqo0aNii9+8YvxpS99KW666aZ4+OGH4/jjj6+uVrs+aG2bXPfd73537L777rUqfwkQIECAAAECBAgQIECAAAECBAgQGGYBCdBBAudd4b/97W/Hz3/+8zjjjDOidof3vDlSray99trxmc98JtZbb71alb8ECBAgQIAAAQIECBAgQIAAAQIECCwEAQnQIUDO3p077bRT9fHEE0/EPffcEzNmzIiVV145pk6dGossssgQPItdECBAgAABAgQIECBAgAABAgQIECDQXwEJ0P6K9bL+UkstFflQCBAgQIAAAQIECBAgQIAAAQIECBAYeQE3QRr5NnAEBAgQIECAAAECBAgQIECAAAECBAgMk4AE6DDB2i0BAgQIECBAgAABAgQIECBAgAABAiMvIAE68m3gCAgQIECAAAECBAgQIECAAAECBAgQGCYBCdBhgrVbAgQIECBAgAABAgQIECBAgAABAgRGXkACdOTbwBEQIECAAAECBAgQIECAAAECBAgQIDBMAhKgwwRrtwQIECBAgAABAgQIECBAgAABAgQIjLyABOjIt4EjIECAAAECBAgQIECAAAECBAgQIEBgmAQkQIcJ1m4JECBAgAABAgQIECBAgAABAgQIEBh5AQnQkW8DR0CAAAECBAgQIECAAAECBAgQIECAwDAJSIAOE6zdEiBAgAABAgQIECBAgAABAgQIECAw8gISoCPfBo6AAAECBAgQIECAAAECBAgQIECAAIFhEpAAHSZYuyVAgAABAgQIECBAgAABAgQIECBAYOQFJEBHvg0cAQECBAgQIECAAAECBAgQIECAAAECwyQgATpMsHZLgAABAgQIECBAgAABAgQIECBAgMDIC0iAjnwbOAICBAgQIECAAAECBAgQIECAAAECBIZJYOww7dduR0DgxhtvjLFjNekI0HtKAgQIECBAgACBNha488474/nnn296hFdddVUsuuiiTZepJECAAAECBEZG4E1vetOQ5rhky0amHYflWQ855JBh2a+dEiBAgAABAgQIECiqwA477FDU0MRFgAABAgQ6VuCxxx6LZZZZZsiOXwJ0yCgX/o423njj2HnnneOPf/xjPPTQQwv/AF5+xux1OmHChPrzz5o1K2bOnFmfL8LE6NGjY5FFFqmHMnv27HjppZfq80WYGDVqVLfeD3PmzIkXX3yxCKF1i2GxxRarz8+bN69lb5D6Sh04kb1Ysj1r5bnnnqtNFuZv/n/M/5e1UsQYJ06cGGPGjKmFGC+88ELMnTu3Pl+EifHjx8e4cePqoeR7Tr73FKlkfBlnreRnR36GFKk4DyhGazoPKEY7ZhTOA4rRls4DitGOzgOK0Y7yAcVox1GVBMC8YoRS3ih23333+L//+78RA1h88cVjhRVWqD//448/HpmpL1LJE5CpU6fWQ3r66afj4Ycfrs8XYSK/wK6++ur1UHKY2AMPPFCfL8rEa17zmnoomai/55576vNFmch2rF0OI9/ib7/99qKEVo8j/z/m/8tayaGNRUucrbjiijFp0qRaiHHvvfcW7oeXV7/61bHUUkvVY3zwwQejaMnsjC/jrJVHHnkknnrqqdpsIf6W4Twgf3RZeeWV6+3lPKBO0XETZTsPyB/O7rjjjo5rp94O2HlAb0Kdsdx5QGe0U29H2XgeMGPGjMhHkYrzgJFpzaHuASoBOjLtOKTPesopp8R11103pPvsz87yRdn1xCq/tHdNFvZnX+26bn7RueWWW+qHl92w11prrfp8ESay59Vf/vKXeij5QbbeeuvV54swkcnAP/zhD/VQsudy9qQuWrnhhhsie2JnyR49m2++edFCjJtuuqlbomzTTTft1pOwCAHfdttt8cQTT9RDWX/99aNrD+b6gg6euPvuuyMTgrWSiYmll166NluIv9OnT4/77ruvHsuqq64ayy+/fH2+CBNlPA+YPHlyrLnmmkVovnoMzgPqFB0/4Tyg45uwGkAZzwPWXnvtbj+MFqElnQcUoRUjGvMBZTgPWGKJJWLdddcd0QY89dRTh/T7jwToiDZnMZ78F7/4RXS9/uj+++/fbb4IUV5//fXxvve9rx7Ku971rjjhhBPq80WYyN6e22yzTT2U17/+9fHDH/6wPl+EiRx22jWpO2XKlLj88suLEFq3GPJi0bVe2Dns5m9/+1u35UWY2W233brFNW3atMIlzg488MC47LLL6s11/vnnd3v91hd08MRRRx3V7X0mT3K6vg91cGj1Q//e977X7fPiS1/6UrfPk/qKHTxRxvOAnXbaKY4//vgObrUFD/3++++Pbbfdtr6gDOcB2au36/tsPfgOn9hiiy3qva+cB3RuYzaeB1xwwQUjnowYas0jjzwyzj777Ppuv/Od78Tb3va2+nwRJspwHvDzn/88Dj300HpzFTEfkB3O3v/+99djLMN5wL/8y7/E//zP/9RjLsLEKxdQK0I0YiBAgAABAgQIECBAgAABAgQIECBAgEAXAQnQLhgmCRAgQIAAAQIECBAgQIAAAQIECBAoloAEaLHaUzQECBAgQIAAAQIECBAgQIAAAQIECHQRkADtgmGSAAECBAgQIECAAAECBAgQIECAAIFiCUiAFqs9RUOAAAECBAgQIECAAAECBAgQIECAQBcBCdAuGCYJECBAgAABAgQIECBAgAABAgQIECiWwNhihSOakRBYccUVY4cddqg/9TrrrFOfLsrE0ksv3S3GjTbaqCih1eNYdNFFu8W45ppr1pcVZWL06NHdYpw8eXJRQusWx7bbbhtPP/10tW7s2GK+zb/5zW+OqVOn1uMeP358fbooE5tuuml0jetVr3pVUUKrx/G6172u2//J5ZZbrr6sKBNrrLFGtxhXXXXVooRWj8N5QJ2ioycWW2yxbq9V5wGd25zbbbdd/Txg3LhxnRtID0dexvOAJZZYogeRzlzkPKAz263xqFdaaaVunx/yAY1CnTFfhvOAUfMqpTOaw1ESIECAAAECBAgQIECAAAECBAgQIECgfwKGwPfPy9oECBAgQIAAAQIECBAgQIAAAQIECHSQgARoBzWWQyVAgAABAgQIECBAgAABAgQIECBAoH8CEqD987I2AQIECBAgQIAAAQIECBAgQIAAAQIdJCAB2kGN5VAJECBAgAABAgQIECBAgAABAgQIEOifgARo/7ysTYAAAQIECBAgQIAAAQIECBAgQIBABwlIgHZQYzlUAgQIECBAgAABAgQIECBAgAABAgT6JyAB2j8vaxMgQIAAAQIECBAgQIAAAQIECBAg0EECEqAd1FgOlQABAgQIECBAgAABAgQIECBAgACB/gmM7d/q1iZQHoGZM2fG+PHj+x3wU089FS+99FJ1u2WXXbbf27fTBo899lg8+OCD8cILL8Raa60VyyyzTDsd3pAcy5w5c+Kvf/1rdV/LLbdcrLjiikOy33bYSbbb3XffHXfddVfk63LllVeOqVOnVv+OGTOmHQ5xyI7hmWeeqcaaMef/u5VWWmlA/3+H7IB62FG+P1x11VXVNTbaaKOYPHlyD2uXa9Hs2bOr7ZjvOxMnTozXvOY1sfTSS3ccQr4eH3rooXj22Wcjp59//vlqPIsttlhMmjQpllxyycK81+TnxNNPPx0vvvhi9bMvPzczznwsscQSMWHChI5rvzIdsHOdYrS2doxIgwceeKD63vvqV786Vl999Rg7tnhfdfPz8dFHH62+cPMcYtSoUYV4Ec+bNy8efvjh6jnrPffcE4svvnisssoqseqq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" width="672" /></p>
<div class="sourceCode" id="cb98"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb98-1"><a href="#cb98-1" aria-hidden="true" tabindex="-1"></a>estimates_jukyo_number_OLS_covar <span class="ot">&lt;-</span> df_estimates 　 <span class="co">#for robustness check</span></span></code></pre></div>
</div>
<div id="wls-no-trends-figure-5-f-table-c.6-5-1" class="section level2" number="11.2">
<h2><span class="header-section-number">11.2</span> WLS, no trends, Figure 5 (f) &amp; Table C.6 (5)</h2>
<div class="sourceCode" id="cb99"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb99-1"><a href="#cb99-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb99-2"><a href="#cb99-2" aria-hidden="true" tabindex="-1"></a>estimation_results  <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_jukyo_WLS_covar8Xcovid_months</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb99-3"><a href="#cb99-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>jukyo_number, </span>
<span id="cb99-4"><a href="#cb99-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>unemploy_shock_diff2)</span>
<span id="cb99-5"><a href="#cb99-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb99-6"><a href="#cb99-6" aria-hidden="true" tabindex="-1"></a>texreg<span class="sc">::</span><span class="fu">screenreg</span>(<span class="at">l =</span> estimation_results , <span class="at">include.ci =</span> <span class="cn">FALSE</span>, <span class="at">digits=</span><span class="dv">3</span>)</span></code></pre></div>
<pre><code>## 
## ====================================================================
##                                                         Model 1     
## --------------------------------------------------------------------
## treat_var:date_2019_01                                     0.118    
##                                                           (0.062)   
## treat_var:date_2019_02                                     0.108    
##                                                           (0.075)   
## treat_var:date_2020_04                                    -1.072    
##                                                           (0.807)   
## treat_var:date_2020_05                                    -5.270    
##                                                           (3.709)   
## treat_var:date_2020_06                                    -4.337    
##                                                           (2.750)   
## treat_var:date_2020_07                                    -1.145    
##                                                           (2.236)   
## treat_var:date_2020_08                                    -1.958    
##                                                           (0.986)   
## treat_var:date_2020_09                                    -1.155    
##                                                           (0.682)   
## date_2020_04:google_mobility_index_2020may                -0.024    
##                                                           (0.148)   
## date_2020_05:google_mobility_index_2020may                -0.060    
##                                                           (0.712)   
## date_2020_06:google_mobility_index_2020may                -1.568 *  
##                                                           (0.752)   
## date_2020_07:google_mobility_index_2020may                -0.943    
##                                                           (0.591)   
## date_2020_08:google_mobility_index_2020may                -0.504 *  
##                                                           (0.241)   
## date_2020_09:google_mobility_index_2020may                -0.319    
##                                                           (0.164)   
## date_2020_04:infection_rate_cumulative2020jun              0.002    
##                                                           (0.073)   
## date_2020_05:infection_rate_cumulative2020jun              0.551    
##                                                           (0.445)   
## date_2020_06:infection_rate_cumulative2020jun              0.415    
##                                                           (0.404)   
## date_2020_07:infection_rate_cumulative2020jun              0.406    
##                                                           (0.313)   
## date_2020_08:infection_rate_cumulative2020jun              0.291 *  
##                                                           (0.141)   
## date_2020_09:infection_rate_cumulative2020jun              0.209    
##                                                           (0.133)   
## date_2020_04:death_rate_cumulative2020jun                  0.478    
##                                                           (0.679)   
## date_2020_05:death_rate_cumulative2020jun                  0.226    
##                                                           (4.439)   
## date_2020_06:death_rate_cumulative2020jun                 -2.383    
##                                                           (4.129)   
## date_2020_07:death_rate_cumulative2020jun                 -3.733    
##                                                           (3.080)   
## date_2020_08:death_rate_cumulative2020jun                 -2.790    
##                                                           (1.546)   
## date_2020_09:death_rate_cumulative2020jun                 -1.978    
##                                                           (1.304)   
## date_2020_04:Population_per_1_km_2_of_inhabitable_area     0.000    
##                                                           (0.000)   
## date_2020_05:Population_per_1_km_2_of_inhabitable_area     0.003 ** 
##                                                           (0.001)   
## date_2020_06:Population_per_1_km_2_of_inhabitable_area     0.005 ***
##                                                           (0.001)   
## date_2020_07:Population_per_1_km_2_of_inhabitable_area     0.002    
##                                                           (0.001)   
## date_2020_08:Population_per_1_km_2_of_inhabitable_area     0.000    
##                                                           (0.000)   
## date_2020_09:Population_per_1_km_2_of_inhabitable_area     0.000    
##                                                           (0.000)   
## date_2020_04:Secondary_industry_ratio                    -23.782 *  
##                                                          (11.709)   
## date_2020_05:Secondary_industry_ratio                   -127.705    
##                                                          (65.888)   
## date_2020_06:Secondary_industry_ratio                   -109.665 ** 
##                                                          (36.380)   
## date_2020_07:Secondary_industry_ratio                    -15.060    
##                                                          (43.782)   
## date_2020_08:Secondary_industry_ratio                    -37.852 ** 
##                                                          (13.144)   
## date_2020_09:Secondary_industry_ratio                    -30.531 ** 
##                                                          (10.076)   
## date_2020_04:Tertiary_industry_ratio                     -12.907    
##                                                          (12.016)   
## date_2020_05:Tertiary_industry_ratio                     -56.344    
##                                                          (75.774)   
## date_2020_06:Tertiary_industry_ratio                     -49.819    
##                                                          (50.876)   
## date_2020_07:Tertiary_industry_ratio                     -14.300    
##                                                          (54.598)   
## date_2020_08:Tertiary_industry_ratio                     -31.769    
##                                                          (19.553)   
## date_2020_09:Tertiary_industry_ratio                     -33.438 *  
##                                                          (13.683)   
## date_2020_04:Total_population                             -0.002    
##                                                           (0.001)   
## date_2020_05:Total_population                             -0.026 *  
##                                                           (0.011)   
## date_2020_06:Total_population                             -0.026 ** 
##                                                           (0.008)   
## date_2020_07:Total_population                             -0.003    
##                                                           (0.007)   
## date_2020_08:Total_population                             -0.003    
##                                                           (0.002)   
## date_2020_09:Total_population                             -0.003    
##                                                           (0.002)   
## date_2020_04:Ratio_of_aged_population                     -0.054    
##                                                           (0.088)   
## date_2020_05:Ratio_of_aged_population                     -0.913 *  
##                                                           (0.415)   
## date_2020_06:Ratio_of_aged_population                     -0.504    
##                                                           (0.361)   
## date_2020_07:Ratio_of_aged_population                     -0.102    
##                                                           (0.272)   
## date_2020_08:Ratio_of_aged_population                     -0.165    
##                                                           (0.118)   
## date_2020_09:Ratio_of_aged_population                     -0.145    
##                                                           (0.091)   
## --------------------------------------------------------------------
## R^2                                                        0.972    
## Adj. R^2                                                   0.963    
## Num. obs.                                                423        
## RMSE                                                     140.039    
## N Clusters                                                47        
## ====================================================================
## *** p &lt; 0.001; ** p &lt; 0.01; * p &lt; 0.05</code></pre>
<div class="sourceCode" id="cb101"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb101-1"><a href="#cb101-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb101-2"><a href="#cb101-2" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_jukyo</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb101-3"><a href="#cb101-3" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;unemploy_shock_diff2&quot;</span>,</span>
<span id="cb101-4"><a href="#cb101-4" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;jukyo_number_WLS&quot;</span>)</span>
<span id="cb101-5"><a href="#cb101-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb101-6"><a href="#cb101-6" aria-hidden="true" tabindex="-1"></a><span class="co"># Event study graph</span></span>
<span id="cb101-7"><a href="#cb101-7" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_WLS_covar <span class="ot">&lt;-</span> <span class="fu">event_study_graph_jukyo</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb101-8"><a href="#cb101-8" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;jukyo_number_WLS&quot;</span>)</span>
<span id="cb101-9"><a href="#cb101-9" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_WLS_covar</span></code></pre></div>
<pre><code>## Warning: Removed 12 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,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zz8/nnjiieqh9ddfP5ZZZpnq/mRs/PSnP41//vOf1Vuvvfbasdxyy1X3bRCYKgLd+PvZ7/Z33313XH311TXN3HTTTWOxxRaryRvJzgsvvBBnnXVWDAwM1BRfaaWVYq211qrJG+nOj3/843j88cerxRdffPHYZJNNqvs333xz3HjjjdX93Nhll11i5plnrsmb6J2//OUvceGFF8avfvWreOCBB+If//hHPProozHPPPPEQgstVP5ZccUVY+utt4711lsvpk3zf1Mm+pm4PgECBAgQIECAAIGpIDBD6R9gtf8Cmwqt1saWAhlYvPPOO6vlTjvttHjnO99Z3Z+MjTXXXLPmH/AnnHBC7LnnnpNRFfckMKkC3fj7OakgHbj5TTfdFKuvvnrNnY4++uj4yEc+UpM3kp1rrrkm8kul+pQByyuuuKI+u+X+008/XQ4gPv/889WyH//4x+OII46o7h9++OHx6U9/urqfG//+97/L59VkTtDOOeecE5/97GfjlltuGfEd5p133th1113j0EMPjQUWWGDE5ylIgAABAgQIECBAgACBegFD4OtF7BMgQIAAgTqBVVddtdw7sZhd3yO0eGy47Ysvvrjh4bzef/7zn4bHhsu89tproxj8zLJvetObhjulY8fyi7SNNtoodt5551EFP7OCGaA97rjj4tWvfnX5s2OVdiMCBAgQIECAAAECBPpOQAC07x6pBhEgQIBAuwVmmGGGyCHvxdTuAOhzzz0Xl19+efEWI9r+xS9+UVNujjnmaNjDtKZQB3buu+++sll9/UZ763/961+x7777xsEHHzzaU5UnQIAAAQIECBAgQIBAWUAA1ItAgAABAgRGIPDGN76xplTOX3nHHXfU5LXaeeSRR+K3v/1ttdiMM9b+Z7hZ79DqCQ02rrrqqprcjTfeOGaZZZaavE7vZE/WLbbYIu69994ht95www3LPTpz3tLf/e535blAb7vttrj00kvjW9/6Vrz3ve9tOPfnYYcdFscee+yQ68kgQIAAAQIECBAgQIBAKwGrC7QSmqLH99hjj/LCFJXm5+IcEgECBKaywGabbTak+dkLdDSLsWWQ78UXX6xe5x3veEecfvrp1f3RBkCz1+h1111XPT83umH4+4knnjhkyPtrX/vaOOaYY2KdddapqW/uLLLIIuWh7rn9/ve/Pw455JD4zGc+E9/73vcy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36P8e5tzgNbPL93oWvIIECBAgAABAgQIECAwEgEB0JEoTcEyOfflPffcU215zv+3yy67VPen0kYu9JILdVTSdtttV178pbLvkwABAgQIECBAgAABAgQIECBAoHsFDIHv3mczqTV77LHHau4/3Gq/NQX7cOeUU06padX73//+mn07BAgQIECAAAECBAgQIECAAAEC3SsgANq9z2ZSa/b444/X3D+HsU/FlMP4cxGPSsqhxPXziVaO+SRAgAABAgQIECBAgAABAgQIEOg+AQHQ7nsmk16jXGm3foX0+eeff9Lr1ekK5NycueBLzldXSbna9lRZ0KXSZp8ECBAgQIAAAQIECBAgQIAAgV4WaLxcdy+3SN3HLXD88cfXXGOeeeYpLwJUk9lnO7feemv8+9//Li+88cQTT8Svf/3rOOaYY+IXv/hFtaVzzz137L333tV9GwQIECBAgAABAgQIECBAgAABAt0vIADa/c9owmt41FFHxQ9/+MPy6s233XZbeXXe4k133HHHmHnmmYtZfbd99dVXR6u5PQ8++ODIYHA3pu9+97vlVeQ7Vbe0WnLJJTt1O/chMETAOz+ERAYBAgQIECBAgAABAgQINBEQAG0CM5WyL7vssrjuuuvKP/XtnmGGGeK9731vfXbf7bcK5q233npxwAEHdG27Tz/99Lj00ks7Vr8ttthCALRj2m7USMA730hFHgECBAgQIECAAAECBAg0EjAHaCOVKZQ3MDAQ119/fcMWzzrrrHHWWWfFBhts0PB4P2UutdRSTZuzzjrrxAUXXBAzzujXpSmSAwQIECBAgAABAgQIECBAgACBLhXQA7RLH0ynqvXwww/HGmusEXfddVfcf//9kT0+V1hhhVhzzTVjn332iXXXXbdTVZnU+2QP0O233z5uvPHGuOeee2LatGmx3HLLxV577RV77LFHzDbbbJNav1Y332mnncrPsVW5dh1ffPHF23Up1yEwJgHv/JjYnESAAAECBAgQIECAAIEpKTBDqQfgwJRsuUYPEXj22WfjxRdf7Ppg35CKtzkjF0GaffbZrfbeZleXI0CAAAECBAgQIECAAAECBAhMhoAA6GSouycBAgQIECBAgAABAgQIECBAgAABAh0RMKlhR5jdhAABAgQIECBAgAABAgQIECBAgACByRAQAJ0MdfckQIAAAQIECBAgQIAAAQIECBAgQKAjAgKgHWF2EwIECBAgQIAAAQIECBAgQIAAAQIEJkNAAHQy1N2TAAECBAgQIECAAAECBAgQIECAAIGOCAiAdoTZTQgQIECAAAECBAgQIECAAAECBAgQmAwBAdDJUHdPAgQIECBAgAABAgQIECBAgAABAgQ6IiAA2hFmNyFAgAABAgQIECBAgAABAgQIECBAYDIEBEAnQ909CRAgQIAAAQIECBAgQIAAAQIECBDoiIAAaEeY3YQAAQIECBAgQIAAAQIECBAgQIAAgckQEACdDHX3JECAAAECBAgQIECAAAECBAgQIECgIwICoB1hdhMCBAgQIECAAAECBAgQIECAAAECBCZDQAB0MtTdkwABAgQIECBAgAABAgQIECBAgACBjggIgHaE2U0IECBAgAABAgQIECBAgAABAgQIEJgMAQHQyVB3TwIECBAgQIAAAQIECBAgQIAAAQIEOiIgANoRZjchQIAAAQIECBAgQIAAAQIECBAgQGAyBARAJ0PdPQkQIECAAAECBAgQIECAAAECBAgQ6IiAAGhHmN2EAAECBAgQIECAAAECBAgQIECAAIHJEJg2GTd1z+4S2H///eOee+6pVuqMM86I2WefvbpvgwABAgQIECBAgEA/C3zzm9+MgYGBIU1885vfHEssscSQfBkECBAgQIBAbwkIgPbW85qQ2l555ZVx0003Va/9/PPPV7dtECBAgAABAgQIEOh3ga985SsNA6CrrLKKAGi/P3ztI0CAAIEpIWAI/JR4zBpJgAABAgQIECBAgAABAgQIECBAYGoKCIBOzeeu1QQIECBAgAABAgQIECBAgAABAgSmhIAA6JR4zBpJgAABAgQIECBAgAABAgQIECBAYGoKCIBOzeeu1QQIECBAgAABAgQIECBAgAABAgSmhIAA6JR4zBpJgAABAgQIECBAgAABAgQIECBAYGoKCIBOzeeu1QQIECBAgAABAgQIECBAgAABAgSmhIAA6JR4zBpJgAABAgQIECBAgAABAgQIECBAYGoKCIBOzeeu1QQIECBAgAABAgQIECBAgAABAgSmhIAA6JR4zBpJgAABAgQIECBAgAABAgQIECBAYGoKCIBOzeeu1QQIECBAgAABAgQIECBAgAABAgSmhIAA6JR4zBpJgAABAgQIECBAgAABAgQIECBAYGoKCIBOzeeu1QQIECBAgAABAgQIECBAgAABAgSmhIAA6JR4zBpJgAABAgQIECBAgAABAgQIECBAYGoKCIBOzeeu1QQIECBAgAABAgQIECBAgAABAgSmhIAA6JR4zBpJgAABAgQIECBAgAABAgQIECBAYGoKCIBOzeeu1QQIECBAgAABAgQIECBAgAABAgSmhIAA6JR4zBpJgAABAgQIECBAgAABAgQIECBAYGoKCIBOzeeu1QQIECBAgAABAgQIECBAgAABAgSmhIAA6JR4zBpJgAABAgQIECBAgAABAgQIECBAYGoKCIBOzeeu1QQIECBAgAABAgQIECBAgAABAgSmhMC0KdFKjSRAgAABAgQIECBAgEATgc022yxefPHFIUfnn3/+IXkyCBAgQIAAgd4TEADtvWemxgQIECBAgAABAgQItFHg2GOPbePVXIoAAQIECBDoNgFD4LvtiagPAQIECBAgQIAAAQIECBAgQIAAAQJtExAAbRulCxEgQIAAAQIECBAgQIAAAQIECBAg0G0CAqDd9kTUhwABAgQIECBAgAABAgQIECBAgACBtgkIgLaN0oUIECBAgAABAgQIECBAgAABAgQIEOg2AQHQbnsi6kOAAAECBAgQIECAAAECBAgQIECAQNsErALfNkoXIkCAAAECBAgQIECAAAECBAhMHYFrr702LrnkkqYNnnHGGeOQQw5petwBAp0SEADtlLT7ECBAgAABAgQIECBAgAABAgT6SOCaa66JQw89tGmLBECb0jjQYQFD4DsM7nYECBAgQIAAAQIECBAgQIAAAQIECHROQA/Qzlm7EwECBAgQIECAAAECBAgQIECgbwS22WabWGKJJcrt+frXvx45JD7TEUccEcsss0zMMMMM5X3/Q2CyBQRAJ/sJuD8BAgQIECBAgAABAgQIECBAoAcFll9++cifTOedd141ALrFFlvEmmuu2YMtUuV+FTAEvl+frHYRIECAAAECBAgQIECAAAECBAgQIBACoF4CAgQIECBAgAABAgQIECBAgAABAgT6VkAAtG8frYYRIECAAAECBAgQIECAAAECBAgQICAA6h0gQIAAAQIECBAgQIAAAQIECBAgQKBvBQRA+/bRahgBAgQIECBAgAABAgQIECBAgAABAgKg3gECBAgQIECAAAECBAgQIECAAAECBPpWQAC0bx+thhEgQIAAAQIECBAgQIAAAQIECBAgIADqHSBAgAABAgQIECBAgAABAgQIECBAoG8FBED79tFqGAECBAgQIECAAAECBAgQIECAAAECAqDeAQIECBAgQIAAAQIECBAgQIAAAQIE+lZAALRvH62GESBAgAABAgQIECBAgAABAgQIECAgAOodIECAAAECBAgQIECAAAECBAgQIECgbwUEQPv20WoYAQIECBAgQIAAAQIECBAgQIAAAQLTEBAgQIAAAQIECBAgQGAqC1xzzTUxMDAwhGDllVeOeeedd0i+DAIECBAgQKC3BARAe+t5qS0BAgQIECBAgAABAm0W2H333RsGQE8++eRYf/3123w3lyNAgAABAgQ6LWAIfKfF3Y8AAQIECBAgQIAAAQIECBAgQIAAgY4JCIB2jNqNCBAgQIAAAQIECBAgQIAAAQIECBDotIAAaKfF3Y8AAQIECBAgQIAAAQIECBAgQIAAgY4JCIB2jNqNCBAgQIAAAQIECBAgQIAAAQIECBDotIAAaKfF3Y8AAQIECBAgQIAAAQIECBAgQIAAgY4JCIB2jNqNCBAgQIAAAQIECBAgQIAAAQIECBDotIAAaKfF3Y8AAQIECBAgQIAAAQIECBAgQIAAgY4JCIB2jNqNCBAgQIAAAQIECBAgQIAAAQIECBDotIAAaKfF3Y8AAQIECBAgQIAAAQIECBAgQIAAgY4JCIB2jNqNCBAgQIAAAQIECBAgQIAAAQIECBDotIAAaKfF3Y8AAQIECBAgQIAAAQIECBAgQIAAgY4JCIB2jNqNCBAgQIAAAQIECBAgQIAAAQIECBDotIAAaKfF3Y8AAQIECBAgQIAAAQIECBAgQIAAgY4JCIB2jNqNCBAgQIAAAQIECBAgQIAAAQIECBDotIAAaKfF3Y8AAQIECBAgQIAAAQIECBAgQIAAgY4JCIB2jNqNCBAgQIAAAQIECBAgQIAAAQIECBDotIAAaKfF3Y8AAQIECBAgQIAAAQIECBAgQIAAgY4JCIB2jNqNCBAgQIAAAQIECBAgQIAAAQIECBDotIAAaKfF3Y8AAQIECBAgQIAAAQIECBAgQIAAgY4JCIB2jNqNCBAgQIAAAQIECBAgQIAAAQIECBDotIAAaKfF3Y8AAQIECBAgQIAAAQIECBAgQIAAgY4JCIB2jNqNCBAgQIAAAQIECBAgQIAAAQIECBDotIAAaKfF3Y8AAQIECBAgQIAAAQIECBAgQIAAgY4JTOvYndyIAAECBAgQIECAAAECXSiw1lprxcDAwJCazTXXXEPyZBAgQIAAAQK9JyAA2nvPTI0JECBAgAABAgQIEGijwBlnnNHGq7kUAQIECBAg0G0ChsB32xNRHwIECBAgQIAAAQIECBAgQIAAAQIE2iYgANo2ShciQIAAAQIECBAgQIAAAQIECBAgQKDbBARAu+2JqA8BAgQIECBAgAABAgQIECBAgAABAm0TEABtG6ULESBAgAABAgQIECBAgAABAgQIECDQbQICoN32RNSHAAECBAgQIECAAAECBAgQIECAAIG2CQiAto3ShQgQIECAAAECBAgQIECAAAECBAgQ6DYBAdBueyLqQ4AAAQIECBAgQIAAAQIECBAgQIBA2wQEQNtG6UIECBAgQIAAAQIECBAgQIAAAQIECHSbgABotz0R9SFAgAABAgQIECBAgAABAgQIECBAoG0CAqBto3QhAgQIECBAgAABAgQIECBAgAABAgS6TUAAtNueiPoQIECAAAECBAgQIECAAAECBAgQINA2AQHQtlG6EAECBAgQIECAAAECBAgQIECAAAEC3SYgANptT0R9CBAgQIAAAQIECBAgQIAAAQIECBBom4AAaNsoXYgAAQIECBAgQIAAAQIECBAgQIAAgW4TEADttieiPgQIECBAgAABAgQIECBAgAABAgQItE1AALRtlC5EgAABAgQIECBAgAABAgQIECBAgEC3CQiAdtsTUR8CBAgQIECAAAECBAgQIECAAAECBNomIADaNkoXIkCAAAECBAgQIECAAAECBAgQIECg2wQEQLvtiagPAQIECBAgQIAAAQIECBAgQIAAAQJtExAAbRulCxEgQIAAAQIECBAgQIAAAQIECBAg0G0CAqDd9kTUhwABAgQIECBAgAABAgQIECBAgACBtgkIgLaN0oUIECBAgAABAgQIECBAgAABAgQIEOg2AQHQbnsi6kOAAAECBAgQIECAAAECBAgQIECAQNsEprXtSi5EgAABAgQIECBAgACBHhT485//HAMDA0NqvuSSS8acc845JF8GAQIECBAg0FsCAqC99bzUlgABAgQIECBAgACBNgu89a1vbRgAPfnkk2P99ddv891cjgABAgQIEOi0gCHwnRZ3PwIECBAgQIAAAQIECBAgQIAAAQIEOiYgANoxajciQIAAAQIECBAgQIAAAQIECBAgQKDTAobAd1rc/QgQIECAAAECBAgQIECAAIGywCabbNJwCooKz7777hs77bRTZdcnAQIExiQgADomNicRIECAAAECBAgQIECAAAEC4xW46qqrhg2AbrvttuO9hfMJECAQhsB7CQgQIECAAAECBAgQIECAAAECBAgQ6FsBPUD79tFqGAECBAgQIECAAAECBAgQ6G6BBx98sNwD9Kabboo3velN5cpuv/32ccIJJ5S355prru5ugNoRINATAgKgPfGYVJIAAQIECBAgQIAAAQIECPSfwEILLVRu1Pzzz19t3GyzzRYLL7xwdd8GAQIExitgCPx4BZ1PgAABAgQIECBAgAABAgQIECBAgEDXCgiAdu2jUTECBAgQIECAAAECBAgQIECAAAECBMYrIAA6XkHnEyBAgAABAgQIECBAgAABAgQIECDQtQICoF37aFSMAAECBAgQIECAAAECBAgQIECAAIHxCgiAjlfQ+QQIECBAgAABAgQIECBAgAABAgQIdK2AAGjXPhoVI0CAAAECBAgQIECAAAECBAgQIEBgvAICoOMVdD4BAgQIECBAgAABAgQIECBAgAABAl0rIADatY9GxQgQIECAAAECBAgQIECAAAECBAgQGK+AAOh4BZ1PgAABAgQIECBAgAABAgQIECBAgEDXCgiAdu2jUTECBAgQIECAAAECBAgQIECAAAECBMYrIAA6XkHnEyBAgAABAgQIECBAgAABAgQIECDQtQICoF37aFSMAAECBAgQIECAAAECBAgQIECAAIHxCgiAjlfQ+QQIECBAgAABAgQIECBAgAABAgQIdK2AAGjXPhoVI0CAAAECBAgQIECAAAECBAgQIEBgvAICoOMVdD4BAgQIECBAgAABAgQIECBAgAABAl0rIADatY9GxQgQIECAAAECBAgQIECAAAECBAgQGK/AtPFewPkECBAgQIAAAQIECBDoZYFlllkmBgYGhjRhttlmG5IngwABAgQIEOg9AQHQ3ntmakyAAAECBAgQIECAQBsFLrroojZezaUIECBAgACBbhMwBL7bnoj6ECBAgAABAgQIECBAgAABAgQIECDQNgEB0LZRuhABAgQIECBAgAABAgQIECBAgAABAt0mIADabU9EfQgQIECAAAECBAgQIECAAAECBAgQaJuAAGjbKF2IAAECBAgQIECA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Ax/4QPnn73//e9xxxx3xspe9LPKXadFFF408LhEgQIAAAQIECBAgQIAAAQIECEy8wG233RarrbbasDe6/PLLY9NNNx22jIOTLyAAOvnPoGENFltsscgfiQABAgQIECBAgAABAgQIECBAgACBsQsIgI7dzpkECBAgQIAAAQIECBAgQIAAAQJ9KpDTFW677bbl1v3tb3+LG2+8sby9Ymn13+WWW668veCCC/Zp6/urWQKg/fU8tYYAAQIECBAgQIAAAQIECBAgQKANAksttVScf/755Sudcsopsfvuu5e33/ve98aBBx7Yhju4RKcETCrZKWn3IUCAAAECBAgQIECAAAECBAgQIECg4wICoB0nd0MCBAgQIECAAAECBAgQIECAAAECBDolIADaKWn3IUCAAAECBAgQIECAAAECBAgQIECg4wICoB0nd0MCBAgQIECAAAECBAgQIECAAAECBDolIADaKWn3IUCAAAECBAgQIECAAAECBAgQIECg4wICoB0nd0MCBAgQIECAAAECBAgQIECAAAECBDolIADaKWn3IUCAAAECBAgQIECAAAECBAgQIECg4wICoB0nd0MCBAgQIECAAAECBAgQIECAAAECBDolIADaKWn3IUCAAAECBAgQIECAAAECBAgQIECg4wICoB0nd0MCBAgQIECAAAECBAgQIECAAAECBDolIADaKWn3IUCAAAECBAgQIECAAAECBAgQIECg4wICoB0nd0MCBAgQIECAAAECBAgQIECAAAECBDolMK1TN3IfAgQIECBAgAABAgQIdKPAfPPNFy+++OKQqs0888xD8mQQIECAAAECvScgANp7z0yNCRAgQIAAAQIECBBoo8C1117bxqu5FAECBAgQINBtAobAd9sTUR8CBAgQIECAAAECBAgQIECAAAECBNomIADaNkoXIkCAAAECBAgQIECAAAECBAgQIECg2wQEQLvtiagPAQIECBAgQIAAAQIECBAgQIAAAQJtExAAbRulCxEgQIAAAQIECBAgQIAAAQIECBAg0G0CAqDd9kTUhwABAgQIECBAgAABAgQIECBAgACBtgkIgLaN0oUIECBAgAABAgQIECBAgAABAgQIEOg2AQHQbnsi6kOAAAECBAgQIECAAAECBAgQIECAQNsEBEDbRulCBAgQIECAAAECBAgQIECAAAECBAh0m4AAaLc9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8cdHzDtv6/JTuYQA6FR++tpOgAABAgQIECBAgAABAj0pkKs7N+sdZxh8Tz7Srq70t77VuHovf3nEjjs2PtaO3NlmizjyyIjf/jZi3XVbXzGDhjvtNLhK+l//2rp8t5R4/vmII44YnNf04otb12qOOSKOPnrQZe21W5dXIkIA1FtAgAABAgQIECBAgAABAgR6UKBZ4OmKKyKeeaYHG6TKXSlwww0RuRBPo7T77hG54vhEp1VXjbj66ohjj42YZ57Wd7vwwoiVV474ylcisld0N6df/jJijTUiPvnJiJzXtFXadtuIP/854iMfiZhpplalHa8ICIBWJHwSIECAAAECBAgQIECAAIEeEmg2DD7na7zooh5qiKp2tcAJJzSv3vvf3/xYu4/kIkn77DMY/Hvb21pf/cknB4OEr3td8wBu66tMXIlHH434n/+J2GijiFtuaX2fV7xicHqL7OGd29LoBARAR+elNAECBAgQIECAAAECBAgQ6AqBXAk+hyA3SobBN1KRN1qBXIn87LMbn/XGN0Ysv3zjYxOZu+iiEblI0E9+ErHUUq3v9PvfD66kvv/+EU880bp8J0qceurgIkcnnxwxMDD8HadNizjggMHAb7MvPYa/gqMpIADqPSBAgAABAgQIECBAgAABAj0okMNft9++ccWzB2ir1aMbnymXwHSB73wnIntSNkoTtfhRo3s1ynvzmyP+9KfB4GCroeD5u/D1r0estFLEZH45kEPXN9444n3vi3jkkUatqs3LLzly+oEvfzki5/2Uxi4gADp2O2cSIECAAAECBAgQIECAAIFJFWjWI+wf/4j41a8mtWpu3gcC3/xm40YsvHBEzkU52SmDghkczCBhDnVvle67b/BLg7e+NSK3O5VyTt6DDx6c6/Oqq1rfNVd0z1Xtc97TXOldGr+AAOj4DV2BAAECBAgQIECAAAECBAhMisBmmzVfhGYye7pNCoabtlUgF+e5+ebGl9xjj4iZZ258bDJycxGh664b7OU511yta3DeeYO9Qb/xjYnvKX3JJYOrux92WMRzz7Wu2zveEXHrrRF7710ati1q1xpshCVQjhBKMQIECBAgQIAAAQIECBAg0G0C2QNuiy0a1ypXwpYIjFWg2eJHGZTLxXu6LWW99ttvcEGhZlNDFOuc84F+6EOD84PmPKHtTg8+GJHBzC23jPjLX1pffdllIy69NOKMMyKyh63UXgEB0PZ6uhoBAgQIECBAgAABAgQIEOioQLNh8LfdNjhHYkcr42Z9IZArlJ97buOmbL11xNJLNz7WDblLLBHxox8Nrpie261SZfj8Rz/afL7TVtcoHs/5RnP4+gorRJx1VvFI4+1ZZhkcHv/HP0ZsvnnjMnLHLyAAOn5DVyBAgAABAgQIECBAgAABApMmsNVWETPM0Pj2hsE3dpE7vECuTv7ss43L7Lln4/xuy80vBm65ZbBXaKuh5C+8MDiX6MorR4yn5/SNN0asu27EvvtGPPZYa5FNNom46aaIz32u+VQWra+ixEgEBEBHoqQMAQIECBAgQIAAAQIECBDoUoFFFolYf/3GlRMAbewit7nAwEDEt77V+Hj2qMyAe6+knA80V3+//vqINddsXeu//jVim20idt454oEHBsvnYklf+ELEkUdOPz97eH7mM9OHtv/nP4Or0b/2tRG//vX0cs22Flww4jvfibjiiojll29WSn47BQRA26npWgQIECBAgAABAgQIECBAYBIEmg2Dz+G9uSK8RGCkApddFnHHHY1LZ+/PmWZqfKybczMwecMNEUcfHZHz5rZK55wzOIQ9g6HLLRfxqU9F3H779LMyUJq9NldcMSJ/93K4+1e/GpE9SYdL2VM750/NRY522224ko61W2Bauy/oegQIECBAgAABAgQIEOglgVvzX6ISgR4XePObIz72saGNyPkIcz7EXhm2PLQFcjot0Gzxo2mlCNLuu3e6Nu27XwZuP/KRiJ12Ghyi/pOfDH/txx9vPRz++ecjfvzj4a9TObrKKhFp26y3dqWcz4kR0AN0YlxdlQABAgQIECBAgAABAgQIdEwge6LlT6NkGHwjFXmNBHLl8gsuaHRksKfjYos1PtZLuUsuOdjG7OW56KITX/PZZ4844oiI3/1O8HPitZvfQQC0uY0jBAgQIECAAAECBAgQIECgZwSaDYO/8sqInKNQItBKIOf+zF6NjdJeezXK7d28t70t4s9/jthnn4hWiySNtZXZM/tPf4r4+McjZp55rFdxXjsEBEDboegaBAgQIECAAAECBAgQIEBgkgWaBUCfeSbi4osnuXJu3/UCOV3CSSc1ruayy0ZstlnjY72cO888EcceG3H11RGrrtq+liy+eMQPfhCRw+yXXrp913WlsQsIgI7dzpkECBAgQIAAAQIECBAgQKBrBF7/+ohcXbpRMgy+kYq8osBPfxrxt78Vc6Zv5xyyuYBPv6Z11hkcop4rvY+3nfvtN9izdMcd+1WrN9slANqbz02tCRAgQIAAAQIECBAgQIBAjUAO491++5qs6k72AG21QnW1sI0pKdBs8aNZZol4z3v6nyQXeTrooIhZZx1fWzOIOtdc47uGs9svIADaflNXJECAAAECBAgQIECAAAECkyLQbBj8I49E/OIXk1IlN+0BgXvvjbjoosYVzVXTm/UsbnxGb+eO94uC557r7fb3a+0FQPv1yWoXAQIECBAgQIAAAQIECEw5gU03jZhttsbNNgy+sYvciBNPjMg5QBulflv8qFEbi3njWel+jjkicl5RqfsEBEC775moEQECBAgQIECAAAECBAgQGJNABj+32qrxqT/+ceN8uVNbIFd9P/nkxgYrrhjxhjc0PtavuRtvPPaWbbLJ2M915sQKCIBOrK+rEyBAgAABAgQIECBAgACBjgo0GwZ/990RN93U0aq4WQ8IZM/gBx5oXNF99mmc38+5733v2Fs3FeZKHbvO5J4pADq5/u5OgAABAgQIECBAgAABAgTaKpA9QHNBpEbJMPhGKlM7r9niR9mb+F3vmno2G20U8Za3jL7d660XYeX30bt16owmfxI7dXv3IUCAAAECBAgQIECAAAECBNopkAvWbLBB4ysKgDZ2maq5d94ZccUVjVu/664R887b+Fi/537nOxHLLTfyVua8od//fsQMM4z8HCU7KyAA2llvdyNAgAABAgQIECBAgAABAhMu0GwY/O9+13y484RXyg26TiB7fw4MNK7WVFv8qKgw33wRV18dsfHGxdzG2699bcR110Usvnjj43K7Q0AAtDueg1oQIECAAAECBAgQIECAAIG2CWyzTeNLZbDrRz9qfEzu1BJ49tmI7OnYKK2xRkQG9qZyyp7U2Ts2e3ZuumnttBLZ0zMXhzrllIjrr494xSumslRvtF0AtDeek1oSIECAAAECBAgQIECAAIERC+Tw3VVWaVzcMPjGLlMt95xzIh55pHGrp+LiR40kMtC5004Rl18ecfzx00t87nMRv/xlRC6Y1Gy+3emlbXWDgABoNzwFdSBAgAABAgQIECBAgAABAm0WaDYM/qqrIv7znzbfzOV6TqDZ4kdzzRXxjnf0XHMmvMIzzzz9FrPMMn3bVm8ICID2xnNSSwIECBAgQIAAAQIECBAgMCqBZgHQHPp84YWjupTCfSZwyy2Dc1w2ata73x0x55yNjsgj0LsCAqC9++zUnAABAgQIECBAgAABAgQINBXIORwXXrjxYcPgG7tMldzjjmve0g98oPkxRwj0qoAAaK8+OfUmQIAAAQIECBAgQIAAAQLDCOT8hW99a+MCF18c8d//Nj4mt78Fnnoq4rTTGrdxvfUiVl+98TG5BHpZYFovV17dCRAgQIAAAQIECBAgQIAAgeYCOQy+0VyP//pXxM9/HvHGNzY/15H+FDjjjIjHHmvctr32apwvt38FvvjFL5bmBP5PPP7449VG/uUvf4mDDz64vL/hhhvG5ptvXj3WqxsCoL365NSbAAECBAgQIECAAAECBAi0ENh444g55oh48smhBXMYvADoUJd+zznxxMYtnG++iLe9rfExuf0r8NWvfjUeeuihmgbec889cdhhh5XzDjrooL4IgBoCX/OI7RAgQIAAAQIECBAgQIAAgf4RmHXWiK23btyen/ykcb7c/hX43e8ifvObxu173/siZput8TG5BHpdQA/QXn+C6k+AAAECBAgQIECAAAECBIYRyGHw55wztECpk1f8/vcRa6459Jic/hQ4/vjm7dpjj+bHHOlfgZNOOimeeeaZpg1cYYUVmh7rpQMCoL30tNSVAAECBAgQIECAAAECBAiMUmDLLSNmminihReGnpjD4AVAh7r0Y05O8XjmmY1btummEX0S52rcQLlNBbbZZpumx/rpgCHw/fQ0tYUAAQIECBD4f/buBE6OqlwY9xuyEUggbAHCkgRlVUhYZVURFJHlzyKIcEVENq8XPpCoH6jXq4JeF/wEBQUuKJvIFUXZJCByFWSReIEgIGogQFhkS2II2UjmP6fDtDPp6pmeTM90VfdTv9+kq06dOvWe5/TMdN6pU0WAAAECBAgQWE5grbUi3vWu5Qrf3EwJUEtrCFxxRfa9YFPvPfyoNd4DrdxLCdBWHn19J0CAAAECBAgQIECg/eq3bWObbbap+LrnnnvoEGiowB133BHDhg0rfZ155pnlWI477rhy+SOPPFIu724lTYPPWh58MGLmzKw9yppN4KKLsns0ZkxEtfdH9hFKCRRPQAK0eGMmYgIECBAgQIAAAQIE6igwf/78WLhwYcXX0qVL63gWTRHovUB6Dy5e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AVqbU8NqPfnkk3H++ee3/xVoVulryZIlDYvFiQkQIECAAAECBAgQIECgtQXe8Y6IMWOyDUyDz3appfShhyLuvTe75tFHR6yySvY+pQQI1CYgAVqbU0NqLV68OL785S/HokWLGnJ+JyVAgAABAgQIECBAgAABAp0FVmrPIrRPUMxcbr45wjU7mTQ9Fnb38KMTT+zxcBUIEOhBQAK0B6BG7r744ovjb3/7WyNDcG4CBAgQIECAAAECBAgQINBFoNo0+Fdeibjzzi5VbdQg8NprEVddlV3xne+M2Gqr7H1KCRCoXUACtHarAa35wAMPxE9+8pPSOUeMGDGg53YyAgQIECBAgAABAgQIECBQTWCvvapPyTYNvppa9fKU/Jw7N3u/hx9luygl0FsBCdDeig1A/bntP/nOOuusaGtri5122il22WWX8lkHDRpUXrdCgAABAgQIECBAgAABAgQGWiBdo7PPPtlnveGG7HKl1QWqTX9fe+2IQw6pfpw9BAjULiABWrvVgNU855xz4sUXX4xRo0bFGWecEZKeA0bvRAQIECBAgAABAgQIECBQg0C1afDTp0c8/HANDahSErjvvogHH8zGOPbYiOHDs/cpJUCgdwISoL3z6vfat956a9x+++2l80yePDnWTn/ysRAgQIAAAQIECBAgQIAAgRwJ7LdfRHogUtZiGnyWSnZZtas/0+TPE07IPkYpAQK9FxjS+0Mc0V8CL7zwQnz7298uNf/e97433vOe99TlVH/9619j4cKFVdtaunRp+1+Vhndbp+rBdhAgQIAAAQIECBAgQIBAywmka3V23z3id7+r7HpKgH7+85XlSroKzJ4dcc01Xcs6ttpTAvGWt3RseSVAoK8CEqB9FazT8SkJme77OW/evBgzZkycdtppdWo54pRTToknnnii2/bGjRtXqvPGG290W89OAgQIECBAgAABAgQIECCQBNI0+KwE6B//GPHccxFjx3LqTuCyyyLmz8+uceKJ2eVKCRBYMYEqF6yvWGOOWnGBq6++Oh566KFSA2eeeWbp/p8r3pojCRAgQIAAAQIECBAgQIBA/woceGB2++3P8w3T4LNtOpdeeGHnrX+ur79+RDXbf9ayRoBAbwQkQHuj1U91H3/88bj44otLrR922GGx/fbb99OZNEuAAAECBAgQIECAAAECBOoj8Na3RrztbdltSYBmu3SU/va3EY891rHV9fW44yKGmK/bFcUWgT4K+JbqI2BfD0/35vzyl78cS5YsifHjx8eJ/XCd+2677dZ+75DqNw9JD12aM2dOtKU/01kIECBAgAABAgQIECBAgECNAmka/COPVFa+446IuXOjfXZj5T4lEdUefjR4cMTxxxMiQKDeAhKg9RZtby8lFKdMmdJty+kJ7+len+eff348/fTTMbj9p9wXvvCF0sOIuj1wBXZ+voe7T0+cODGef/75FWjZIQQIECBAgAABAgQIECDQygIpAfrVr1YKLFoU8atfRRx+eOW+Vi9pfwRI/Pzn2Qof+EDERhtl71NKgMCKC0iArrhd1SNnzpwZ99xzT9X9aceCBQvi3nvvjeuuu65U74gjjoj122/0MTf9iWy5ZfHixeWS9JCkjjojRoxovyzeEJZxrBAgQIAAAQIECBAgQIDAgArsuGPEeutFvPBC5WnTNHgJ0EqX9nRApARx1nLSSVmlyggQ6KuA7FlfBftw/F133VU++qqrror01dNywgknlKucd955se2225a3rRAgQIAAAQIECBAgQIAAgYEUGDRo2dPgsx7ok64AfeMN97NcfjxSAjRrGTcu4v3vz9qjjACBvgpIgPZVMOP4Qw89NPbZZ5+MPf8sWnvttf+5YY0AAQIECBAgQIAAgYYJ/Ko9S5N1P/w0Q8tCgEDPAmkafFYCdNasiPSwn7326rmNVqqRpsBnLel6p5U8qjqLRhmBPgtIgPaZsLKBkSNHRvrqadl5551j9dVX76la/O53v4sZM2aU6v1/7b9ZOo5ZL80zsBAgQIAAAQIECBAg0CeBCRMm9Ol4BxNodYH3vCfa/w8c8dprlRJpGnyrJ0DTIzeuvz7bp0Ns6NCIY4/t2PJKgEC9BSRA6y3ai/Z23333SF89Lc8++2w5AXp4+w1UNt54454OsZ8AAQIECBAgQIAAAQIECAyIwPDhy6ZuX3tt5elS4q/97m0tucyZE3HmmREXXbTsVgDdIRx00LJ7qXZXxz4CBFZcwMXVK27nSAIECBAgQIAAAQIECBAgQKBdIE2Dz1qeeiriwQez9jR3Wep3+6TPuOCCnpOfSeLgg5vbQ+8INFpAArTRI+D8BAgQIECAAAECBAgQIECg4AIf+EDE4MHZnUjT4FtpSbcC2G+/iD//ufZen31291Pka29JTQIEsgQkQLNUlBEgQIAAAQIECBAgQIAAAQI1C6y5ZsQ735ldvdUSoF/9asQjj2RbVCtN9b/2tWp7lRMg0FcBCdC+CjqeAAECBAgQIECAAAECBAgQqDoN/oEHIp55pjWA5s2LOPfcFetrOu7111fsWEcRINC9gARo9z652Psf//Efceedd5a+PAApF0MiCAIECBAgQIAAAQIECBBYTuDAA5cr6LTZKleB3nbbiicxU/L017/uhGaVAIG6CUiA1o1SQwQIECBAgAABAgQIECBAoHUFJkyI2Gab7P63SgK0N/f9zJJ67LGsUmUECPRVQAK0r4KOJ0CAAAECBAgQIECAAAECBEoC1Z4G/9vfRsyZ0/xIs2f3rY99Pb5vZ3c0geYVkABt3rHVMwIECBAgQIAAAQIECBAgMKAC1RKgixdH3HzzgIbSkJOts07fTjtmTN+OdzQBAtkCEqDZLkoJECBAgAABAgQIECBAgACBXgpst13EhhtmH9Ts0+BfeCHimmuy+15r6Y471lpTPQIEeiMgAdobLXUJECBAgAABAgQIECBAgACBqgKDBkVUexjSLbdEpCtBm3FJV7dOnBhx//0r3ruUON511xU/3pEECFQXkACtbmMPAQIECBAgQIAAAQIECBAg0EuBatPg0z1A77ijl43lvPrChRGnnhqx334RL77Yt2C/9KWIlWRp+oboaAJVBHxrVYFRTIAAAQIECBAgQIAAAQIECPRe4N3vjlhttezjmmka/KOPRuy0U8S552b3tTelhx8eceyxvTlCXQIEeiMgAdobLXUJECBAgAABAgQIECBAgACBbgWGDYvYd9/sKjfckF1etNILL4zYYYeIadP6HvlRR0Vcdlnf29ECAQLVBSRAq9vYQ4AAAQIECBAgQIAAAQIECKyAQLVp8M88E/HHP65Agzk55JVXIg4+OOKkkyLmz+8+qPRAqHR16Nvfnl0vlf/0pxFXXhmx8srZdZQSIFAfAQnQ+jhqhQABAgQIECBAgAABAgQIEHhTIF0BOnRoNkdRp8Gn+5emBx394hfZ/eooTQ+COv30iHvuiTjllIiHH454/PGIkSOX1Rg1atl2Kv/gBzuO8kqAQH8KSID2p662CRAgQIAAAQIECBAgQIBACwqMHh3xrndld7xoCdD05Pozz4zYe++IZ5/N7lNH6XrrRUyZEvGtb0WkWwF0LJttFjF8+LKt9Jq2LQQIDJyABOjAWTsTAQIECBAgQIAAAQIECBBoGYFq0+DTfTNnzCgGw/TpEbvtFvG1r0UsXdp9zPvvv+yeoO99b/f17CVAYOAFJEAH3twZCRAgQIAAAQIECBAgQIBA0wsceGD1LhbhKtDLL4+YNCni/vur9yPtSffvPO+8iPSAp3XW6b6uvQQINEZAArQx7s5KgAABAgQIECBAgAABAgSaWmDjjSO23Ta7i3lOgP7jHxFHHhnx0Y9GvPZadvwdpW97W8Qf/hBx8skdJV4JEMijgARoHkdFTAQIECBAgAABAgQIECBAoAkEqk2Dv/POiFmz8tfB9OCi9KCjq6/uObZPfCJi6tSIrbfuua4aBAg0VkACtLH+zk6AAAECBAgQIECAAAECBJpWoFoC9I03Im66KT/dXrIk4itfidhjj57vT7r22hHpCtYLLlg2/T0/vRAJAQLVBCRAq8koJ0CAAAECBAgQIECAAAECBPokkO6hmabCZy15mQb/9NMRe+4Z8e//HpESod0te+0V8dBDEd3d37S74+0jQKAxAkMac1pnJUCAAAECBAgQIECAQD4EDjnkkPakR2XW40tf+lL7A1DaszcWAgT6JJCuAv3udyubmDIlYuHCiOHDK/cNVMm110Ycf3zE7Nndn3Ho0GVXiH7mMxGDBnVf114CBPInIAGavzEREQECBAgQIECAAAECAyjw6KOPRltbW8UZ582bV1GmgACB3gtUS4DOnRvxm99E7Ltv79vs6xHp2/v//J+ISy7puaVNN4348Y8jdtih57pqECCQTwFT4PM5LqIiQIAAAQIECBAgQIAAAQJNIfDOd0aMHp3dlUZMg//f/43YbrvaJWN3sAAAQABJREFUkp/pSfCpvuRn9vgpJVAUAQnQooyUOAkQIECAAAECBAgQIECAQAEF0vTxD3wgO/Abboj2K7Cz99W7NJ3nnHMidtkl4i9/6b711VeP+MlPIn70o4iRI7uvay8BAvkXkADN/xiJkAABAgQIECBAgAABAgQIFFqg2tPgn3su4v77+79rL7wQ8f73R0yeHLFoUffn2223ZQ86+tCHuq9nLwECxRGQAC3OWImUAAECBAgQIECAAAECBAgUUiAlH4cNyw69v6fB33RTxDbbRNx6a/b5O0oHD172JPjf/jZi3LiOUq8ECDSDgARoM4yiPhAgQIAAAQIECBAgQIAAgRwLrLZaxJ57ZgfYXwnQBQsiTjklYv/9I156KfvcHaUp4fk//xPxpS9FpESohQCB5hLwFPjmGk+9IUCAAAECBAgQIECAAAECuRRI0+CnTKkM7ZFHIp55prK8LyWpzQ9/OOLhh3tu5fDDIy68sPqDmnpuoXVr/LI9e33ppZeWAKZOnVqGOO2002L19huprrTSSnHdddeVy60QaJSABGij5J2XAAECBAgQIECAAAECBAi0kMCBB0Z88pPZDz1K087rtXz/+xGnnx4xf373La66asR550Uce2z39eytLvC3v/0trr/++ooKv31zQFMC1EIgDwLeiXkYBTEQIECAAAECBAgQIECAAIEmF9hgg4jtt8/uZJp+3tfllVci0lWm//qvPSc/UxwPPCD52VdzxxMoioArQIsyUuIkQIAAAQIECBAgQIAAAQIFF0gJyk4zpcu9eeih8uoKrdx+e8TRR0ekp8p3twwatOxJ8GefHTF0aHc17atF4Nj2y2cPOOCAqlUHJXALgRwISIDmYBCEQIAAAQIECBAgQIAAAQIEWkEgJUC/8IXKni5dWllWS8nixcva+8Y3sqfWd25j/fUjLr88Yu+9O5da74vAGmusEenLQiDvAqbA532ExEeAAAECBAgQIECAAAECBJpEYOutIyZMqE9n2m8/GbvuGvH1r/ec/EwXKU6bJvlZH3mtECiegARo8cZMxAQIECBAgAABAgQIECBAoLAC6SrQvi6XXRax7bbZ0+k7t73yyhHf+160P6gnYu21O++xToBAKwlIgLbSaOsrAQIECBAgQIAAAQIECBBosEBfEqBz5kR8+MMRxxwT8dpr3Xfk7W+PuP/+ZU+e776mvQQINLuABGizj7D+ESBAgAABAgQIECBAgACBHAnssUfEmmv2PqC7746YNCniJz/p+dhPfnJZ8jMlQS0ECBCQAPUeIECAAAECBAgQIECAAAECBAZMYPDgiP32q366RYu67luyJOLLX4545zsjZszoum/5rTTNPU13T9Pe0/R3CwECBJKABKj3AQECBAgQIECAAAECBAgQIDCgAt1Ng//Zz5Zd6fnNb0b85S8R7353xBe/GJESod0t6enu6UFH6YFHFgIECHQWGNJ5wzoBAgQIECBAgAABAgQIECBAoL8F9tyz/Yqs9kuyli7NPtNDD0Wkr89+tucnvA8dGnH22RGTJ0cMGpTdnlICBFpbQAK0tcdf7wkQIECAAAECBAgQIECAwIAKpCs5jzqqevKzczBtbZ23Ktc33TTi6qsjtt++cp8SAgQIdAiYAt8h4ZUAAQIECBAgQIAAAQIECBDod4F0P89bbun7aT72sYgHHpD87LukFgg0v4ArQJt/jPWQAAECBAgQIECAAAECBAjkQuD55yPSvT37soweHXHhhRGHH96XVhxLgEArCUiAttJo6ysBAgQIECBAgAABAgQIEGigwH//d8T8+SsewO67R1x1VcTGG694G44kQKD1BEyBb70x12MCBAgQIECAAAECBAgQINAQgf/5n76d9pJLJD/7JuhoAq0pIAHamuOu1wQIECBAgAABAgQIECBAYMAFnn22b6d84YW+He9oAgRaU8AU+NYcd70mQIAAAQIECBAgQOBNgR//+MeZFpumx0tbCBCoq8CwYX1rrq/H9+3sjiZAoKgCEqBFHTlxEyBAgAABAgQIECBQF4HtttuuLu1ohACBngXGj4/4/e97rletRjreQoAAgd4KmALfWzH1CRAgQIAAAQIECBAgQIAAgRUS2HffFTqsdNCkSRHrrbfixzuSAIHWFZAAbd2x13MCBAgQIECAAAECBAgQIDCgAgcfHDF27Iqd8uSTV+w4RxEgQEAC1HuAAAECBAgQIECAAAECBAgQGBCBVVaJ+H//r/en2nnniI9+tPfHOYIAAQJJQALU+4AAAQIECBAgQIAAAQIECBAYMIHDD4/4j/+o/XTpeWTXXRcxeHDtx6hJgACBzgISoJ01rBMgQIAAAQIECBAgQIAAAQL9LvDFL0ZcfnnEWmt1f6pDD4247z73/uxeyV4CBHoSkADtSch+AgQIECBAgAABAgQIECBAoO4CH/lIxPTpEeedF7HLLv9sfo01Ik45ZVni89prI9K2hQABAn0RGNKXgx1LgAABAgQIECBAgAABAgQIEFhRgdVXj0gPN9ptt4jtt1/WyvvfH3HuuSvaouMIECBQKeAK0EoTJQQIECBAgAABAgQIECBAgAABAgQINImABGiTDKRuECBAgAABAgQIECBAgAABAgQIECBQKSABWmmihAABAgQIECBAgAABAgQIECBAgACBJhGQAG2SgdQNAgQIECBAgAABAgQIECBAgAABAgQqBSRAK02UECBAgAABAgQIECBAgAABAgQIECDQJAISoE0ykLpBgAABAgQIECBAgAABAgQIECBAgEClgARopYkSAgQIECBAgAABAgQIECBAgAABAgSaREACtEkGUjcIECBAgAABAgQIECBAgAABAgQIEKgUkACtNFFCgAABAgQIECBAgAABAgQIECBAgECTCEiANslA6gYBAgQIECBAgAABAgQIECBAgAABApUCEqCVJkoIECBAgAABAgQIECBAgAABAgQIEGgSAQnQJhlI3SBAgAABAgQIECBAgAABAgQIECBAoFJAArTSRAkBAgQIECBAgAABAgQIECBAgAABAk0iIAHaJAOpGwQIECBAgAABAgQIECBAgAABAgQIVApIgFaaKCFAgAABAgQIECBAgAABAgQIECBAoEkEJECbZCB1gwABAgQIECBAgAABAgQIECBAgACBSoEhlUVKCBAgQIAAAQIECBAg0DoCxx57bCxdurSiw5/+9KfjbW97W0W5AgIECBAgQKBYAhKgxRov0RIgQIAAAQIECBAgUGeBu+++O9ra2ipanT17dkWZAgIECBAgQKB4AqbAF2/MREyAAAECBAgQIECAAAECBAgQIECAQI0CEqA1QqlGgAABAgQIECBAgAABAgQIECBAgEDxBCRAizdmIiZAgAABAgQIECBAgAABAgQIECBAoEYBCdAaoVQjQIAAAQIECBAgQIAAAQIECBAgQKB4AhKgxRszERMgQIAAAQIECBAgQIAAAQIECBAgUKOABGiNUKoRIECAAAECBAgQIECAAAECBAgQIFA8AQnQ4o2ZiAkQIECAAAECBAgQIECAAAECBAgQqFFAArRGKNUIECBAgAABAgQIECBAgAABAgQIECiegARo8cZMxAQIECBAgAABAgQIECBAgAABAgQI1CggAVojlGoECBAgQIAAAQIECBAgQIAAAQIECBRPQAK0eGMmYgIECBAgQIAAAQIECBAgQIAAAQIEahSQAK0RSjUCBAgQIECAAAECBAgQIECAAAECBIonIAFavDETMQECBAgQIECAAAECBAgQIECAAAECNQpIgNYIpRoBAgQIECBAgAABAgQIECBAgAABAsUTkAAt3piJmAABAgQIECBAgAABAgQIECBAgACBGgUkQGuEUo0AAQIECBAgQIAAAQIECBAgQIAAgeIJSIAWb8xETIAAAQIECBAgQIAAAQIECBAgQIBAjQISoDVCqUaAAAECBAgQIECAAAECBAgQIECAQPEEJECLN2YiJkCAAAECBAgQIECAAAECBAgQIECgRgEJ0BqhVCNAgAABAgQIECBAgAABAgQIECBAoHgCEqDFGzMREyBAgAABAgQIECBAgAABAgQIECBQo4AEaI1QqhEgQIAAAQIECBAgQIAAAQIECBAgUDwBCdDijZmICRAgQIAAAQIECBAgQIAAAQIECBCoUWBIjfVUI0CAAAECBAgQIECAQFMKXHDBBdHW1lbRty233LKiTAEBAgQIECBQPAEJ0OKNmYgJECBAgAABAgQIEKijwHve8546tqYpAgQIECBAIG8CpsDnbUTEQ4AAAQIECBAgQIAAAQIECBAgQIBA3QQkQOtGqSECBAgQIECAAAECBAgQIECAAAECBPImIAGatxERDwECBAgQIECAAAECBAgQIECAAAECdROQAK0bpYYIECBAgAABAgQIECBAgAABAgQIEMibgARo3kZEPAQIECBAgAABAgQIECBAgAABAgQI1E1AArRulBoiQIAAAQIECBAgQIAAAQIECBAgQCBvAhKgeRsR8RAgQIAAAQIECBAgQIAAAQIECBAgUDcBCdC6UWqIAAECBAgQIECAAAECBAgQIECAAIG8CUiA5m1ExEOAAAECBAgQIECAAAECBAgQIECAQN0EJEDrRqkhAgQIECBAgAABAgQIECBAgAABAgTyJiABmrcREQ8BAgQIECBAgAABAgQIECBAgAABAnUTkACtG6WGCBAgQIAAAQIECBAgQIAAAQIECBDIm4AEaN5GRDwECBAgQIAAAQIECBAgQIAAAQIECNRNQAK0bpQaIkCAAAECBAgQIECAAAECBAgQIEAgbwISoHkbEfEQIECAAAECBAgQIECAAAECBAgQIFA3AQnQulFqiAABAgQIECBAgAABAgQIECBAgACBvAlIgOZtRMRDgAABAgQIECBAgAABAgQIECBAgEDdBCRA60apIQIECBAgQIAAAQIECBAgQIAAAQIE8iYgAZq3EREPAQIECBAgQIAAAQIECBAgQIAAAQJ1E5AArRulhggQIECAAAECBAgQIECAAAECBAgQyJuABGjeRkQ8BAgQIECAAAECBAgQIECAAAECBAjUTUACtG6UGiJAgAABAgQIECBAgAABAgQIECBAIG8CEqB5GxHxECBAgAABAgQIECBAgAABAgQIECBQN4EhdWtJQwQIECBAgAABAgQIECigwOmnnx5Lly6tiPykk06KzTffvKJcAQECBAgQIFAsAQnQYo2XaAkQIECAAAECBAgQqLPATTfdFG1tbRWtfvCDH5QArVBRQIAAAQIEiidgCnzxxkzEBAgQIECAAAECBAgQIECAAAECBAjUKCABWiOUagQIECBAgAABAgQIECBAgAABAgQIFE9AArR4YyZiAgQIECBAgAABAgQIECBAgAABAgRqFJAArRFKNQIECBAgQIAAAQIECBAgQIAAAQIEiicgAVq8MRMxAQIECBAgQIAAAQIECBAgQIAAAQI1CkiA1gilGgECBAgQIECAAAECBAgQIECAAAECxROQAC3emImYAAECBAgQIECAAAECBAgQIECAAIEaBSRAa4RSjQABAgQIECBAgAABAgQIECBAgACB4glIgBZvzERMgAABAgQIECBAgAABAgQIECBAgECNAhKgNUKpRoAAAQIECBAgQIAAAQIECBAgQIBA8QQkQIs3ZiImQIAAAQIECBAgQIAAAQIECBAgQKBGAQnQGqFUI0CAAAECBAgQIECAAAECBAgQIECgeAISoMUbMxETIECAAAECBAgQIECAAAECBAgQIFCjgARojVCqESBAgAABAgQIECBAgAABAgQIECBQPAEJ0OKNmYgJECBAgAABAgQIECBAgAABAgQIEKhRQAK0RijVCBAgQIAAAQIECBAgQIAAAQIECBAonoAEaPHGTMQECBAgQIAAAQIECBAgQIAAAQIECNQoIAFaI5RqBAgQIECAAAECBAgQIECAAAECBAgUT0ACtHhjJmICBAgQIECAAAECBAgQIECAAAECBGoUkACtEUo1AgQIECBAgAABAgQIECBAgAABAgSKJyABWrwxEzEBAgQIECBAgAABAgQIECBAgAABAjUKSIDWCKUaAQIECBAgQIAAAQIECBAgQIAAAQLFE5AALd6YiZgAAQIECBAgQIAAAQIECBAgQIAAgRoFhtRYTzUCBAgQIECAAAECBAg0pcDZZ58dbW1tFX1761vfWlGmgAABAgQIECiegARo8cZMxAQIECBAgAABAgQI1FHg0EMPrWNrmiJAgAABAgTyJmAKfN5GRDwECBAgQIAAAQIECBAgQIAAAQIECNRNQAK0bpQaIkCAAAECBAgQIECAAAECBAgQIEAgbwISoHkbEfEQIECAAAECBAgQIECAAAECBAgQIFA3AQnQulFqiAABAgQIECBAgAABAgQIECBAgACBvAlIgOZtRMRDgAABAgQIECBAgAABAgQIECBAgEDdBDwFvm6U9Wno0UcfjZ///OcxY8aMePrpp2PkyJExfvz42GqrreLII4+MVVZZpT4n0goBAgQIECBAgAABAgQIECBAgACBFhCQAM3JIC9evDjOPffcuP7666Otra0c1fz58+Oll16K+++/P2688caYPHly7L777uX9VggQIECAAAECBAgQIECAAAECBAgQqC4gAVrdZkD3XHjhhfHLX/6ydM6hQ4fGAQccEJtvvnnMmzcv7r777pg6dWq88sor8YUvfCEuuuii2HTTTQc0PicjQIAAAQIECBAgQIAAAQIECBAgUEQBCdAcjNqf/vSnuOaaa0qRjBo1Ki644ILStPeO0A477LC48sorIyVJ33jjjfjyl78cl112Way0klu4dhh5JUCAAAECBAgQIECAAAECBAgQIJAlIIOWpTLAZffdd1/5jMcff3yX5GfHjqOOOqp0H9C0ne4P+swzz3Ts8kqAAAECBAgQIECAAAECBAgQIECAQBUBCdAqMANZ/Je//KV8um233ba83nll0KBBsd1225WLHn/88fK6FQIECBAgQIAAAQIECBAgQIAAAQIEsgUkQLNdGlaa7vlZbVm6dGl5V3pokoUAAQIECBAgQIAAAQIECBAgQIAAge4FJEC79xmQvZ0faJQeeJS1pHt/dp4q3/mYrPrKCBAgQIAAAQIECBAgQIAAAQIECBCIkADNwbvgkEMOiREjRpQiueqqq+LOO+/sElW62vO8886L6dOnl8p32GGH2GyzzbrUsUGAAAECBAgQIECAAAECBAgQIECAQKWAp8BXmgx4yZprrhnnnHNOfPazn425c+fGmWeeGdtss00pyTl//vx44IEH4rnnnivFtdVWW5WeAt+bIL/73e/Gyy+/XPWQlGAdM2ZMqU7nafZVD7CDAAECBAgQIECAAAECBAgQIECAQEEEJEBzMlBbb711/PjHP47JkydHesDRtGnTSl+dwzv00EPjlFNOiZVW6t2FuzfffHM88cQTnZuqWB89enS8+uqrIQFaQaOAAAECBAgQIECAAAECBAgQIECgwAK9y6QVuKN5D/22226Lo48+upT8TLGmp75vsMEGsdpqq5VD/9nPfhann356vPTSS+UyKwQIECBAgAABAgQIECBAgAABAgQIVBdwBWh1mwHbc8MNN8Q3vvGN0vmGDx8eJ554YhxwwAGx8sorl8rS9Pc0jf2uu+6KqVOnxr/927+VttO0dQsBAgQIECBAgAABAgQIECBAgAABAtUFJECr26zwnttvvz2mTJnS7fFpqntKYKZ7fp5//vnlut/61rdi0qRJ5e20Mnbs2Pja175Wuk/oL37xi9L9QC+66KL4/Oc/36VetY2vfOUrMW/evGq745Of/GQ8+eSTsWTJkqp17CBAgAABAgQIECBAgAABAgQIECBQRAEJ0H4YtZkzZ8Y999zTbcsLFiwo7b/11lvLycn99tuvIvnZuZF//dd/LT0h/pVXXok0ZT5tpwco9bSkp8Z3twwePDhef/317qrYR4AAAQIECBAgQIAAAQIECBAgQKCQAu4B2uBhe+qpp8oRbL/99uX1rJURI0aUng6f9qWHFc2YMSOrmjICBAgQIECAAAECBAgQIECAAAECBN4UcAVoP7wV0tPa99lnn25bXnvttUv758yZU67XUVYuyFhJ0+E7lvTUdgsBAgQIECBAgAABAgQIECBAgAABAtUFJECr26zwnpEjR0b6qmWZMGFCudpjjz0W2267bXk7ayU9EKljGTduXMeqVwIECBAgQIAAAQIECBAgQIAAAQIEMgQkQDNQBrJo0003LZ/u/vvvjyOPPLK8vfxKepDRgw8+WCoeMmRIdE6eLl/XNgECBAgQIECAAAECtQmkh4a2tbVVVD7qqKPiLW95S0W5AgIECBAgQKBYAhKgDR6vdMXneuutFy+88EJMnTo1Lr744jj++OMrokofyM4999yYNWtWad/ee+8dKQlqIUCAAAECBAgQIECgbwJXXXVVZgJ0r732kgDtG62jCRAgQIBALgQ8BKnBw7DKKqvE5z73uRg0aFApkssvvzy+/vWvR7oaND0pPn09/PDDccopp8SvfvWrUp111103Tj311AZH7vQECBAgQIAAAQIECBAgQIAAAQIE8i/gEsIcjNGkSZPitNNOi/PPPz8WLlwYN954Y+lr8ODBpae9d56Okx6C9KUvfSlWXXXVHEQuBAIECBAgQIAAAQIECBAgQIAAAQL5FnAFaE7G5+CDD44rrrgidt1110iJz7QsWbKkPBVnxIgR8ZGPfCTSFaJbbLFFTqIWBgECBAgQIECAAAECBAgQIECAAIF8C7gCNEfjs/7665emvy9evDhmzpwZM2bMiJT4TA87GjNmTHmafI5CFgoBAgQIECBAgAABAgQIECBAgACBXAtIgOZweIYOHVpKenrKew4HR0gECBAgQIAAAQIECBAgQIAAAQKFEjAFvlDDJVgCBAgQIECAAAECBAgQIECAAAECBHojIAHaGy11CRAgQIAAAQIECBAgQIAAAQIECBAolIAEaKGGS7AECBAgQIAAAQIECBAgQIAAAQIECPRGQAK0N1rqEiBAgAABAgQIECBAgAABAgQIECBQKAEJ0EINl2AJECBAgAABAgQIECBAgAABAgQIEOiNgARob7TUJUCAAAECBAgQIECAAAECBAgQIECgUAISoIUaLsESIECAAAECBAgQIECAAAECBAgQINAbAQnQ3mipS4AAAQIECBAgQIAAAQIECBAgQIBAoQQkQAs1XIIlQIAAAQIECBAgQIAAAQIECBAgQKA3AhKgvdFSlwABAgQIECBAgAABAgQIECBAgACBQglIgBZquARLgAABAgQIECBAgAABAgQIECBAgEBvBCRAe6OlLgECBAgQIECAAAECBAgQIECAAAEChRKQAC3UcAmWAAECBAgQIECAAAECBAgQIECAAIHeCEiA9kZLXQIECBAgQIAAAQIECBAgQIAAAQIECiUgAVqo4RIsAQIECBAgQIAAAQIECBAgQIAAAQK9EZAA7Y2WugQIECBAgAABAgQIECBAgAABAgQIFEpAArRQwyVYAgQIECBAgAABAgQIECBAgAABAgR6IyAB2hstdQkQIECAAAECBAgQIECAAAECBAgQKJTAkEJFK1gCBAgQIECAAAECBAjUWeDTn/50tLW1VbQ6fvz4ijIFBAgQIECAQPEEJECLN2YiJkCAAAECBAgQIECgjgIf//jH69iapggQIECAAIG8CZgCn7cREQ8BAgQIECBAgAABAgQIECBAgAABAnUTkACtG6WGCBAgQIAAAQIECBAgQIAAAQIECBDIm4AEaN5GRDwECBAgQIAAAQIECBAgQIAAAQIECNRNQAK0bpQaIkCAAAECBAgQIECAAAECBAgQIEAgbwISoHkbEfEQIECAAAECBAgQIECAAAECBAgQIFA3AQnQulFqiAABAgQIECBAgAABAgQIECBAgACBvAkMyVtA4iFAgAABAgQIECBAgAABAgQINIPA2WefHQ8++GCpK3Pnzi29/uMf/4jDDjustL7tttvGmWee2Qxd1QcCuRaQAM318AiOAAECBAgQIECAAAECBAgQKKrAnXfeGVOmTOkS/qJFi+Laa68tlb322mtd9tkgQKB/BEyB7x9XrRIgQIAAAQIECBAgQIAAAQIECBAgkAMBV4DmYBCEQIAAAQIECBAgQIAAAQIECDSfwIUXXhgdU9+zejdq1KisYmUECNRZQAK0zqCaI0CAAAECBAgQIECAAAECBAgkgXHjxoEgQCAHAqbA52AQhECAAAECBAgQIECAAAECBAgQIECAQP8ISID2j6tWCRAgQIAAAQIECBAgQIAAAQIECBDIgYAEaA4GQQgECBAgQIAAAQIECBAgQIAAAQIECPSPgARo/7hqlQABAgQIECBAgAABAgQIECBAgACBHAhIgOZgEIRAgAABAgQIECBAgAABAgQIECBAgED/CEiA9o+rVgkQIECAAAECBAgQIECAAAECBAgQyIGABGgOBkEIBAgQIECAAAECBAgQIECAAAECBAj0j4AEaP+4apUAAQIECBAgQIAAAQIECBAgQIAAgRwISIDmYBCEQIAAAQIECBAgQIAAAQIECBAgQIBA/whIgPaPq1YJECBAgAABAgQIECBAgAABAgQIEMiBgARoDgZBCAQIECBAgAABAgQIECBAgAABAgQI9I+ABGj/uGqVAAECBAgQIECAAAECBAgQIECAAIEcCAzJQQxCIECAAAECBAgQIECAQMMEvve970VbW1vF+Q866KDYaKONKsoVECBAgAABAsUSkAAt1niJlgABAgQIECBAgACBOgtUS4But912EqB1ttYcAQIECBBohIAp8I1Qd04CBAgQIECAAAECBAgQIECAAAECBAZEQAJ0QJidhAABAgQIECBAgAABAgQIECBAgACBRghIgDZC3TkJECBAgAABAgQIECBAgAABAgQIEBgQAQnQAWF2EgIECBAgQIAAAQIECBAgQIAAAQIEGiEgAdoIdeckQIAAAQIECBAgQIAAAQIECBAgQGBABCRAB4TZSQgQIECAAAECBAgQIECAAAECBAgQaISABGgj1J2TAAECBAgQIECAAAECBAgQIECAAIEBEZAAHRBmJyFAgAABAgQIECBAgAABAgQIECBAoBECEqCNUHdOAgQIECBAgAABAgQIECBAgAABAgQGREACdECYnYQAAQIECBAgQIAAAQIECBAgQIAAgUYISIA2Qt05CRAgQIAAAQIECBAgQIAAAQIECBAYEAEJ0AFhdhICBAgQIECAAAECBAgQIECAAAECBBohIAHaCHXnJECAAAECBAgQIECAAAECBAgQIEBgQAQkQAeE2UkIECBAgAABAgQIECBAgAABAgQIEGiEgARoI9SdkwABAgQIECBAgAABAgQIECBAgACBARGQAB0QZichQIAAAQIECBAgQIAAAQIECBAgQKARAhKgjVB3TgIECBAgQIAAAQIECBAgQIAAAQIEBkRAAnRAmJ2EAAECBAgQIECAAAECBAgQIECAAIFGCEiANkLdOQkQIECAAAECBAgQIECAAAECBAgQGBABCdABYXYSAgQIECBAgAABAgQIECBAgAABAgQaISAB2gh15yRAgAABAgQIECBAgAABAgQIECBAYEAEJEAHhNlJCBAgQIAAAQIECBAgQIAAAQIECBBohIAEaCPUnZMAAQIECBAgQIAAAQIECBAgQIAAgQERGDIgZ3ESAgQIECBAgAABAgQI5FTguOOOi7a2toroNthgg4oyBQQIECBAgEDxBCRAizdmIiZAgAABAgQIECBAoI4CkydPrmNrmiJAgAABAgTyJmAKfN5GRDwECBAgQIAAAQIECBAgQIAAAQIECNRNQAK0bpQaIkCAAAECBAgQIECAAAECBAgQIEAgbwISoHkbEfEQIECAAAECBAgQIECAAAECBAgQIFA3AQnQulFqiAABAgQIECBAgAABAgQIECBAgACBvAlIgOZtRMRDgAABAgQIECBAgAABAgQIECBAgEDdBCRA60apIQIECBAgQIAAAQIECBAgQIAAAQIE8iYgAZq3EREPAQIECBAgQIAAAQIECBAgQIAAAQJ1E5AArRulhggQIECAAAECBAgQIECAAAECBAgQyJuABGjeRkQ8BAgQIECAAAECBAgQIECAAAECBAjUTUACtG6UGiJAgAABAgQIECBAgAABAgQIECBAIG8CEqB5GxHxECBAgAABAgQIECBAgAABAgQIECBQNwEJ0LpRaogAAQIECBAgQIAAAQIECBAgQIAAgbwJSIDmbUTEQ4AAAQIECBAgQIAAAQIECBAgQIBA3QQkQOtGqSECBAgQIECAAAECBAgQIECAAAECBPImIAGatxERDwECBAgQIECAAAECBAgQIECAAAECdROQAK0bpYYIECBAgAABAgQIECBAgAABAgQIEMibgARo3kZEPAQIECBAgAABAgQIECBAgAABAgQI1E1AArRulBoiQIAAAQIECBAgQIAAAQIECBAgQCBvAhKgeRsR8RAgQIAAAQIECBAgQIAAAQIECBAgUDcBCdC6UWqIAAECBAgQIECAAAECBAgQIECAAIG8CUiA5m1ExEOAAAECBAgQIECAAAECBAgQIECAQN0EJEDrRqkhAgQIECBAgAABAgQIECBAgAABAgTyJiABmrcREQ8BAgQIECBAgAABAgQIECBAgAABAnUTGFK3ljREgAABAgQIECBAgACBAgpceeWVmVHvtddesf7662fuU0iAAAECBAgUR0ACtDhjJVICBAgQIECAAAECBPpB4Kyzzoq2traKlidMmCABWqGigAABAgQIFE/AFPjijZmICRAgQIAAAQIECBAgQIAAAQIECBCoUUACtEYo1QgQIECAAAECBAgQIECAAAECBAgQKJ6ABGjxxkzEBAgQIECAAAECBAgQIECAAAECBAjUKCABWiOUagQIECBAgAABAgQIECBAgAABAgQIFE9AArR4YyZiAgQIECBAgAABAgQIECBAgAABAgRqFJAArRFKNQIECBAgQIAAAQIECBAgQIAAAQIEiicgAVq8MRMxAQIECBAgQIAAAQIECBAgQIAAAQI1CkiA1gilGgECBAgQIECAAAECBAgQIECAAAECxROQAC3emImYAAECBAgQIECAAAECBAgQIECAAIEaBSRAa4RSjQABAgQIECBAgAABAgQIECBAgACB4glIgBZvzERMgAABAgQIECBAgAABAgQIECBAgECNAhKgNUKpRoAAAQIECBAgQIAAAQIECBAgQIBA8QQkQIs3ZiImQIAAAQIECBAgQIAAAQIECBAgQKBGAQnQGqFUI0CAAAECBAgQIECAAAECBAgQIECgeAISoMUbMxETIECAAAECBAgQIECAAAECBAgQIFCjgARojVCqESBAgAABAgQIECBAgAABAgQIECBQPAEJ0OKNmYgJECBAgAABAgQIECBAgAABAgQIEKhRQAK0RijVCBAgQIAAAQIECBAgQIAAAQIECBAonoAEaPHGTMQECBAgQIAAAQIECBAgQIAAAQIECNQoIAFaI5RqBAgQIECAAAECBAgQIECAAAECBAgUT0ACtHhjJmICBAgQIECAAAECBAgQIECAAAECBGoUkACtEUo1AgQIECBAgAABAgQIECBAgAABAgSKJyABWrwxEzEBAgQIECBAgAABAgQIECBAgAABAjUKDKmxnmoECBAgQIAAAQIECBBoSoEPfvCDsXTp0oq+rbvuuhVlCggQIECAAIHiCUiAFm/MREyAAAECBAgQIECAQB0FzjrrrDq2pikCBAgQIEAgbwKmwOdtRMRDgAABAgQIECBAgAABAgQIECBAgEDdBCRA60apIQIECBAgQIAAAQIECBAgQIAAAQIE8iYgAZq3EREPAQIECBAgQIAAAQIECBAgQIAAAQJ1E5AArRulhggQIECAAAECBAgQIECAAAECBAgQyJuABGjeRkQ8BAgQIECAAAECBAgQIECAAAECBAjUTUACtG6UGiJAgAABAgQIECBAgAABAgQIECBAIG8CEqB5GxHxECBAgAABAgQIECBAgAABAgQIECBQNwEJ0LpRaogAAQIECBAgQIAAAQIECBAgQIAAgbwJSIDmbUTEQ4AAAQIECBAgQIAAAQIECBAgQIBA3QQkQOtGqSECBAgQIECAAAECBAgQIECAAAECBPImIAGatxERDwECBAgQIECAAAECBAgQIECAAAECdROQAK0bpYYIECBAgAABAgQIECBAgAABAgQIEMibgARo3kZEPAQIECBAgAABAgQIECBAgAABAgQI1E1AArRulBoiQIAAAQIECBAgQIAAAQIECBAgQCBvAhKgeRsR8RAgQIAAAQIECBAgQIAAAQIECBAgUDcBCdC6UWqIAAECBAgQIECAAAECBAgQIECAAIG8CQzJW0DiIUCAAAECBAgQIECAAAECBFpD4Kc//Wm0tbXFE088Ue7wU089Ff/93/9d2p40aVJsttlm5X1WCBAgsCICg9p/0LStyIGOaR6BiRMnxrRp08odmj17dqy++urlbSsECBAgQIAAAQIECBAgQKA/BFZaaaVSArRa2+ecc0586lOfqrZbOQECBGoSMAW+JiaVCBAgQIAAAQIECBAgQIAAAQIECBAoooAp8EUcNTETIECAAAECBAgQIECAAIEmEPj3f//3bq8A3WWXXZqgl7pAgECjBUyBb/QI5OD8psDnYBCEQIAAAQIECBAgQIAAAQIECBAg0C8CpsD3C6tGCRAgQIAAAQIECBAgQIAAAQIECBDIg4AEaB5GQQwECBAgQIAAAQIECBAgQIAAAQIECPSLgHuA9gurRgkQIECAAAECBAgQKIrATTfdlBnqTjvtFOuss07mPoUECBAgQIBAcQQkQIszViIlQIAAAQIECBAgQKAfBE4//fTMh7BceumlEqD94K1JAgQIECAw0AKmwA+0uPMRIECAAAECBAgQIECAAAECBAgQIDBgAhKgA0btRAQIECBAgAABAgQIECBAgAABAgQIDLSABOhAizsfAQIECBAgQIAAAQIECBAgQIAAAQIDJiABOmDUTkSAAAECBAgQIECAAAECBAgQIECAwEALeAhSP4pPnjw57rvvvjj11FPj0EMPrelMd999d9x2220xc+bM0teQIUNi4403jvHjx8dBBx0Um266aU3tqESAAAECBAgQIECAAAECBAgQIECAQIQEaD+9C37+85+Xkp+1Nv/cc8/FN7/5zZg6dWrFIbNnz45p06bFjTfeGIccckiccMIJMWLEiIp6CggQIECAAAECBAgQIECAAAECBAgQ6CogAdrVoy5b6QrO73znOzW3tXDhwjjjjDPiiSeeKB0zevToeN/73le66nPBggXx+OOPx69//etYsmRJXHvttTF37tz4/Oc/X3P7KhIgQIAAAQIECBAgQIAAAQIECBBoVQEJ0DqOfEpkXnLJJXHNNddEW1tbzS2ff/755eTnTjvtFF/84hdjtdVW63L8EUccEZ/61Kdi1qxZMWXKlNhtt91izz337FLHBgECBAgQIECAAAECBAgQIECAAAECXQU8BKmrxwpvPfjgg3HMMcfE1VdfHUuXLq25nTfeeCN+9atfleqPGjUqPve5z1UkP9POt771rfGZz3ym3O5NN91UXrdCgAABAgQIECBAgAABAgQIECBAgEC2gARotkvNpelKz29/+9tx8sknlx5alA5MDy2q9aFHaXp7muaelt133z3WXHPN0nrWP7vuumusvPLKpV3pOAsBAgQIECBAgAABAgQIECBAgAABAt0LSIB279Pj3nS153XXXVeut99++5WmwacrNjuWQYMGdaxWvM6bNy922GGH0v0+N99884r9nQtWWmmlWGONNUpF6cFIixYt6rzbOgECBAgQIECAAAECBAgQIECAAAECywm4B+hyICu6ueOOO5amwG+zzTa9aiLd8zN91bK8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17+Oe++9t/S9s9VWW3WJLf2B4Sc/+Ulce+218corr3TZl5Ixe+65Z3z4wx8uJXu77GzgxksvvRSHHHJIKYL0H7evfOUrsfXWWzcwov499dKlS+OZZ56J9LMwvSfTf1g322yzLid98cUX46KLLorbbrstUv2OJf2c2XvvvePUU0/N9R+P0n/If/azn8XUqVNL/fz/2zsTOCmqa/9fVtkkYFQQd9QIoqhBJYrvLy7kuRATFCRuUXk+oxGeEuOGikZ9rsjigorGJU/FaFQUUSCJuAUVFUFBcd9Z3FAWcec/34u36Rmqu2ume6arT/3O5zMzPVW3qut877lLnXvuvYW6YrxskOc9evRwBxxwgGvZsmVQObF/X375ZTdhwgQ3e/Zs7+DNpyNOXsrqtttu6/bff39zDorEZlKOB5s2bZqbNGmSt03qVAbAunbt6mg/unfvnuOq6odPP/10N336dH8wDOBUT6H/6otAWvqiOOdxkFF/tG3bdg2c9Huuv/5699RTT1U7RztKn3zgwIFr9GGrJayQfyqlL8oA2AMPPOCpbrHFFr49y4X4tddecxdffLF744031kjCQPyvfvUr38dr3779GueTcMBiXxSul156qXvwwQc9YvJg6NChrlmzZklAXvJnUF90TaSV2BddUwvn5ACNoqJjIlAHAs8++6y78MILM9GbNW+B0+/MM88s+PKQZAcoLzF/+ctfMs60ddZZx/3iF79wRx55ZMapeckll/gXp5r6h/95cafBDI7DcLwS/1ZKp3PEiBHu/vvv94hxSERFP/AScdppp/mIyEJ5QZ7TMcXZlCTB0XLuuedmHJv/+7//6/7f//t/mUckqpXz/M0nRDsNHjzY9evXL1+yBjuX7QDlS+FOGcIZYU1ef/119+c//9m9++671VTbaaed3Pnnn+8jQOBB/syfP79amux/iMimPmYAKmnyt7/9zdejRCPVRXjZZ8Clf//+iXx5x3nGABhtWV2ElynaBwZbGJSQNBwBbPKKK65wU6ZMifxSBjwHDBjgjjvuuIIDunKARiKs94Np6IsSMXfddde5yZMn+wjlxo0bu27durk+ffpk2m2cn7QT9NNyCe3K2WefHdknym5JDJ0AAEAASURBVHVNEo9XSl+UKLlf//rXHiH9l1NPPTUSJ+3HDTfcEDkQn30B7xMMCPfs2TP7cNk/W+2LAjbb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ERABERABERABERABERABEag9ATlAa89MV4iACIiACIiACIiACIiACIiACIiACIiACIiACFQIATlAKySj9JgiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAK1JyAHaO2Z6QoREAEREAEREAEREAEREAEREAEREAEREAEREIEKISAHaIVklB5TBERABERABERABERABERABERABERABERABESg9gTkAK09M10hAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiJQIQSaVshz6jFTRqBRo0auSZMmXms+W5SgX+PGNschrOtn3Uat60edYt1GresnG638llE2Wtl5qDJY2fnH06sMVnYeqgxWdv6pDFZ+/qkMVl4eNlpZJZX32HpiERABERABERABERABERABERABERABERABERABEShMwGboWWG9lUIEREAEREAEREAEREAEREAEREAEREAEREAERCAFBDQFPgWZnFQVCT7+4IMP3BdffOGWLVvmli5d6r7//nvXpk2bzE+nTp1cq1atkqpCwedCpwULFmT0+/LLL12LFi1c69atvY7t2rVz6FipYl0/6zZqXT/KlXUbta6fbLSNUzuR7BbSuo1a1y9Y19dff+0WLVrkvvrqK/9DfzT01fj7k5/8JCStyL/W9SNTPvnkE7dkyRKff+jbvHlzn4fkX9u2bd1aa61VkXkXHtq6ftZt1Lp+KoOVX8ekwUaxUzlAQ6uivw1G4NFHH3XTpk1zM2fOdJ9//nne72V9zC222MJ1797d9enTx3Xr1i1v+iScpINyzz33uOeee869+uqrjpeHfEKnervttnM9evRwBxxwgGvZsmW+5GU/Z10/AFu3Uev6WbdR6/qloQxaz0Pr+qXBRq23E+Thyy+/7CZMmOBmz57tB6vz9dcYiNhmm23ctttu6/bff3/305/+lFskWqzrR1DB5MmT3dSpU91bb73lVqxYkTM/WOu0c+fOPg932203t+uuuzrW7kuyWNcP9tZt1Lp+1m3Uun5pKINRdbzWAI2iomP1QoBoz0svvdTNmjWrzven0/KHP/zBbbrppnW+R31e+Le//c395S9/ydsJy/f9dLB/97vfuf79+yeyY2ZdP+s2al0/ypZ1G7Wun2w0Xwux6pzaicKM6jOFdRu1rh+2wSD87bff7gep62IrzZo1c/vtt5874YQT/Gyeutyj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bdS6fmkog9bz0Lp+abBRtRPk8pqivprz/dBy90XJGes2al0/6+2Edf1UBtdsH8IR+SyS006EPMn3Vw7QfHR0riQENt54Y+8YJMrxww8/dJMmTXLsQvbRRx+5bbbZJu934AxcZ5113PTp0326WbNm+XuEi5LgAKVzzHM+9NBD7ocffnCPPvqoe+6557yO7G7fvn378Lhr/G3atKnbfffd3YwZM/wU+C+++MI98cQTmXRJcIBa1w/Y1m3Uun7WbdS6fmkog9bz0Lp+abBRtRPqqyW5L6oyqPclvS+VNyBGZVBlMOllEBuNI3KAxqGkNEUT6N69u5s5c6Z38n3zzTc+EnThwoXuoIMOKnjvLl26uI4dO7qnnnrKR4BmX5AEByjP06FDBz8yzY7uRKni3J0zZ44fNSeKNZ+w2Plee+3ld4MnijRbkuAA5Xms64eO1m3Uun7WbdS6fmkog9bz0Lp+abBRtRPkcrSor1Z+5ws5Y91GretnvZ2wrp/KYHT7EI7KZ5GMdiLkR66/WgM0FxkdLymBTp06uXHjxrl+/fpldtomOjKu7L///u6mm27yHZ+41zR0uiOOOMJdddVVbrPNNst8dVwdmTYxduxYd8IJJ2T4ZG6SkA/W9bNuo9b1o5hYt1Hr+slG81f2aify82mIs9Zt1Lp+2Ij1etS6ftZt1Lp+KoP5W6pKaOet26h1/dJQBvOXMucaVUWrrSyUSOdFoJQEvvvuO/fqq6+65cuXu1122aXWt2YzpPvuu8+xQ9uUKVNqfX1DXEAkJ9P10Y/GrDZC9CjOYtYT3W+//dzRRx9dm8sbJK11/azbqHX9KATWbdS6frLR/FW52on8fBrirHUbta4fNmK9HrWun3Ubta6fymD+lqoS2nnrNmpdvzSUwahSJgdoFBUdEwEREAEREAEREAEREAEREAEREAEREAEREAERMEFAU+BNZKOUEAEREAEREAEREAEREAEREAEREAEREAEREAERiCIgB2gUFR0TAREQAREQAREQAREQAREQAREQAREQAREQAREwQUAOUBPZKCVEQAREQAREQAREQAREQAREQAREQAREQAREQASiCMgBGkVFx0RABERABERABERABERABERABERABERABERABEwQkAPURDZKCREQAREQAREQAREQAREQAREQAREQAREQAREQgSgCcoBGUdExERABERABERABERABERABERABERABERABERABEwTkADWRjVJCBERABERABERABERABERABERABERABERABEQgioAcoFFUdEwEREAEREAEREAEREAEREAEREAEREAEREAERMAEATlATWSjlBABERABERABERABERABERABERABERABERABEYgiIAdoFBUdEwEREAEREAEREAEREAEREAEREAEREAEREAERMEFADlAT2SglREAEREAEREAEREAEREAEREAEREAEREAEREAEogjIARpFRcdEQAREQAREQAREQAREQAREQAREQAREQAREQARMEJAD1EQ2SgkREAEREAEREAEREAEREAEREAEREAEREAEREIEoAnKARlHRMREQAREQAREQAREQAREQAREQAREQAREQAREQARME5AA1kY1SQgREQAREQAREQAREQAREQAREQAREQAREQAREIIqAHKBRVHRMBERABERABERABERABERABERABERABERABETABAE5QE1ko5QQAREQAREQAREQAREQAREQAREQAREQAREQARGIIiAHaBQVHRMBERABERABERABERABERABERABERABERABETBBQA5QE9koJURABERABERABERABERABERABERABERABERABKIIyAEaRUXHREAEREAEREAEREAEREAEREAEREAEREAEREAETBCQA9RENkoJERABERABERABERABERABERABERABERABERCBKAJygEZR0TEREAEREAEREAEREAEREAEREAEREAEREAEREAETBOQANZGNUkIEREAEREAEREAEREAEREAEREAEREAEREAERCCKgBygUVR0TAREQAREQAREQAREQAREQAREQAREQAREQAREwAQBOUBNZKOUEAEREAEREAEREAEREAEREAEREAEREAEREAERiCIgB2gUFR0TAREQAREQAREQAREQAREQAREQAREQAREQAREwQUAOUBPZKCVEQAREQAREQAREQAREQAREQAREQAREQAREQASiCMgBGkVFx0RABERABERABERABERABERABERABERABERABEwQkAPURDZKCREQAREQAREQAREQAREQAREQAREQAREQAREQgSgCcoBGUdExERABERABERABERABERABERABERABERABERABEwTkADWRjVJCBERABERABERABERABERABERABERABERABEQgioAcoFFUdEwEREAEREAEREAEREAEREAEREAEREAEREAERMAEATlATWSjlBABERABERABERABERABERABERABERABERABEYgiIAdoFBUdEwEREAEREAEREAEREAEREAEREAEREAEREAERMEFADlAT2SglREAEREAEREAEREAEREAEREAEREAEREAEREAEogjIARpFRcdEQAREQAREQAREQAREQAREQAREQAREQAREQARMEJAD1EQ2SgkREAEREAEREAEREAEREAEREAEREAEREAEREIEoAnKARlHRMREQAREQAREQAREQAREQAREQAREQAREQAREQARME5AA1kY1SQgREQAREQAREQAREQAREQAREQAREQAREQAREIIqAHKBRVHRMBERABERABERABERABERABERABERABERABETABAE5QE1ko5QQAREQAREQAREQAREQAREQAREQAREQAREQARGIIiAHaBQVHRMBERABERABERABERABERABERABERABERABETBBQA5QE9koJURABERABERABERABERABERABERABERABERABKIIyAEaRUXHREAEREAEREAEREAEREAEREAEREAEREAEREAETBCQA9RENkoJERABERABERABERABERABERABERABERABERCBKAJygEZR0TEREAEREAEREAEREAEREAEREAEREAEREAEREAETBOQANZGNUkIEREAEREAEREAEREAEREAEREAEREAEREAERCCKgBygUVR0TAREQAREQAREQAREQAREQAREQAREQAREQAREwAQBOUBNZKOUEAEREAEREAEREAEREAEREAEREAEREAEREAERiCIgB2gUFR0TAREQAREQAREQAREQAREQAREQAREQAREQAREwQUAOUBPZKCVEQAREQAREQAREQAREQAREQAREQAREQAREQASiCMgBGkVFx0RABERABERABERABERABERABERABERABERABEwQkAPURDZKCREQAREQAREQAREQAREQAREQAREQAREQAREQgSgCcoBGUdExERABERABERABERABERABERABERABERABERABEwTkADWRjVJCBERABERABERABERABERABERABERABERABEQgioAcoFFUdEwEREAEREAEREAEREAEREAEREAEREAEREAERMAEATlATWSjlBABERABERABERABERABERABERABERABERABEYgiIAdoFBUdEwEREAEREAEREAEREAEREAEREAEREAEREAERMEFADlAT2SglREAEREAEREAEREAEREAEREAEREAEREAEREAEogjIARpFRcdEQAREQAREQAREQAREQAREQAREQAREQAREQARMEJAD1EQ2SgkREAEREAEREAEREAEREAEREAEREAEREAEREIEoAnKARlHRMREQAREQAREQAREQAREQAREQAREQAREQAREQARME5AA1kY1SQgREQAREQAREQAREQAREQAREQAREQAREQAREIIqAHKBRVHRMBERABERABERABERABERABERABERABERABETABAE5QE1ko5QQAREQAREQAREQAREQAREQAREQAREQAREQARGIIiAHaBQVHRMBERABERABERABERABERABERABERABERABETBB4P8DYe2VhhOdTRoAAAAASUVORK5CYII=" width="672" /></p>
<div class="sourceCode" id="cb103"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb103-1"><a href="#cb103-1" aria-hidden="true" tabindex="-1"></a>estimates_jukyo_number_WLS_covar <span class="ot">&lt;-</span> df_estimates 　 <span class="co">#for robustness check</span></span>
<span id="cb103-2"><a href="#cb103-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb103-3"><a href="#cb103-3" aria-hidden="true" tabindex="-1"></a>results_jukyo_number_WLS_covar <span class="ot">&lt;-</span> estimation_results <span class="co"># for only-post DID table</span></span></code></pre></div>
</div>
<div id="wls-no-trends-post-covid-month-dummies-table-c.6-6" class="section level2" number="11.3">
<h2><span class="header-section-number">11.3</span> WLS, no trends, post-covid-month dummies, Table C.6 (6)</h2>
<div class="sourceCode" id="cb104"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb104-1"><a href="#cb104-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb104-2"><a href="#cb104-2" aria-hidden="true" tabindex="-1"></a>estimation_results <span class="ot">&lt;-</span> <span class="fu">dynamic_onlypost_DID_jukyo_WLS_covar8Xcovid_months</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb104-3"><a href="#cb104-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>jukyo_number, </span>
<span id="cb104-4"><a href="#cb104-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>unemploy_shock_diff2)</span>
<span id="cb104-5"><a href="#cb104-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb104-6"><a href="#cb104-6" aria-hidden="true" tabindex="-1"></a>texreg<span class="sc">::</span><span class="fu">screenreg</span>(<span class="at">l =</span> estimation_results , <span class="at">include.ci =</span> <span class="cn">FALSE</span>, <span class="at">digits=</span><span class="dv">3</span>)</span></code></pre></div>
<pre><code>## 
## ====================================================================
##                                                         Model 1     
## --------------------------------------------------------------------
## treat_var:date_2020_04                                    -1.147    
##                                                           (0.804)   
## treat_var:date_2020_05                                    -5.345    
##                                                           (3.697)   
## treat_var:date_2020_06                                    -4.412    
##                                                           (2.745)   
## treat_var:date_2020_07                                    -1.220    
##                                                           (2.225)   
## treat_var:date_2020_08                                    -2.033 *  
##                                                           (0.985)   
## treat_var:date_2020_09                                    -1.230    
##                                                           (0.676)   
## date_2020_04:google_mobility_index_2020may                -0.024    
##                                                           (0.148)   
## date_2020_05:google_mobility_index_2020may                -0.060    
##                                                           (0.710)   
## date_2020_06:google_mobility_index_2020may                -1.568 *  
##                                                           (0.750)   
## date_2020_07:google_mobility_index_2020may                -0.943    
##                                                           (0.589)   
## date_2020_08:google_mobility_index_2020may                -0.504 *  
##                                                           (0.240)   
## date_2020_09:google_mobility_index_2020may                -0.319    
##                                                           (0.164)   
## date_2020_04:infection_rate_cumulative2020jun              0.002    
##                                                           (0.072)   
## date_2020_05:infection_rate_cumulative2020jun              0.551    
##                                                           (0.444)   
## date_2020_06:infection_rate_cumulative2020jun              0.415    
##                                                           (0.403)   
## date_2020_07:infection_rate_cumulative2020jun              0.406    
##                                                           (0.312)   
## date_2020_08:infection_rate_cumulative2020jun              0.291 *  
##                                                           (0.141)   
## date_2020_09:infection_rate_cumulative2020jun              0.209    
##                                                           (0.132)   
## date_2020_04:death_rate_cumulative2020jun                  0.478    
##                                                           (0.677)   
## date_2020_05:death_rate_cumulative2020jun                  0.226    
##                                                           (4.425)   
## date_2020_06:death_rate_cumulative2020jun                 -2.383    
##                                                           (4.116)   
## date_2020_07:death_rate_cumulative2020jun                 -3.733    
##                                                           (3.070)   
## date_2020_08:death_rate_cumulative2020jun                 -2.790    
##                                                           (1.541)   
## date_2020_09:death_rate_cumulative2020jun                 -1.978    
##                                                           (1.300)   
## date_2020_04:Population_per_1_km_2_of_inhabitable_area     0.000    
##                                                           (0.000)   
## date_2020_05:Population_per_1_km_2_of_inhabitable_area     0.003 ** 
##                                                           (0.001)   
## date_2020_06:Population_per_1_km_2_of_inhabitable_area     0.005 ***
##                                                           (0.001)   
## date_2020_07:Population_per_1_km_2_of_inhabitable_area     0.002    
##                                                           (0.001)   
## date_2020_08:Population_per_1_km_2_of_inhabitable_area     0.000    
##                                                           (0.000)   
## date_2020_09:Population_per_1_km_2_of_inhabitable_area     0.000    
##                                                           (0.000)   
## date_2020_04:Secondary_industry_ratio                    -23.782 *  
##                                                          (11.672)   
## date_2020_05:Secondary_industry_ratio                   -127.705    
##                                                          (65.678)   
## date_2020_06:Secondary_industry_ratio                   -109.665 ** 
##                                                          (36.263)   
## date_2020_07:Secondary_industry_ratio                    -15.060    
##                                                          (43.642)   
## date_2020_08:Secondary_industry_ratio                    -37.852 ** 
##                                                          (13.102)   
## date_2020_09:Secondary_industry_ratio                    -30.531 ** 
##                                                          (10.044)   
## date_2020_04:Tertiary_industry_ratio                     -12.907    
##                                                          (11.978)   
## date_2020_05:Tertiary_industry_ratio                     -56.344    
##                                                          (75.533)   
## date_2020_06:Tertiary_industry_ratio                     -49.819    
##                                                          (50.714)   
## date_2020_07:Tertiary_industry_ratio                     -14.300    
##                                                          (54.424)   
## date_2020_08:Tertiary_industry_ratio                     -31.769    
##                                                          (19.491)   
## date_2020_09:Tertiary_industry_ratio                     -33.438 *  
##                                                          (13.639)   
## date_2020_04:Total_population                             -0.002    
##                                                           (0.001)   
## date_2020_05:Total_population                             -0.026 *  
##                                                           (0.010)   
## date_2020_06:Total_population                             -0.026 ** 
##                                                           (0.008)   
## date_2020_07:Total_population                             -0.003    
##                                                           (0.007)   
## date_2020_08:Total_population                             -0.003    
##                                                           (0.002)   
## date_2020_09:Total_population                             -0.003    
##                                                           (0.002)   
## date_2020_04:Ratio_of_aged_population                     -0.054    
##                                                           (0.087)   
## date_2020_05:Ratio_of_aged_population                     -0.913 *  
##                                                           (0.414)   
## date_2020_06:Ratio_of_aged_population                     -0.504    
##                                                           (0.360)   
## date_2020_07:Ratio_of_aged_population                     -0.102    
##                                                           (0.271)   
## date_2020_08:Ratio_of_aged_population                     -0.165    
##                                                           (0.118)   
## date_2020_09:Ratio_of_aged_population                     -0.145    
##                                                           (0.091)   
## --------------------------------------------------------------------
## R^2                                                        0.972    
## Adj. R^2                                                   0.963    
## Num. obs.                                                423        
## RMSE                                                     139.595    
## N Clusters                                                47        
## ====================================================================
## *** p &lt; 0.001; ** p &lt; 0.01; * p &lt; 0.05</code></pre>
<div class="sourceCode" id="cb106"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb106-1"><a href="#cb106-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb106-2"><a href="#cb106-2" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_main</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb106-3"><a href="#cb106-3" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;unemploy_shock_diff2&quot;</span>,</span>
<span id="cb106-4"><a href="#cb106-4" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;jukyo_number_WLS&quot;</span>)</span>
<span id="cb106-5"><a href="#cb106-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb106-6"><a href="#cb106-6" aria-hidden="true" tabindex="-1"></a><span class="co"># Event study graph</span></span>
<span id="cb106-7"><a href="#cb106-7" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_WLS_covar_onlypost <span class="ot">&lt;-</span> <span class="fu">event_study_graph</span>(<span class="at">data =</span> df_estimates ,</span>
<span id="cb106-8"><a href="#cb106-8" aria-hidden="true" tabindex="-1"></a>                                          <span class="at">graph_title =</span> <span class="st">&quot;jukyo_number_WLS&quot;</span>)</span>
<span id="cb106-9"><a href="#cb106-9" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb106-10"><a href="#cb106-10" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_jukyo_number_WLS_covar_onlypost)</span></code></pre></div>
<div id="htmlwidget-0ac3bcbe4c62d811eec3" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-0ac3bcbe4c62d811eec3">{"x":{"data":[{"x":[1,1,1,1,1,1,1,3,4,5,6,7,8,2],"y":[null,null,null,null,null,null,null,-1.14666293594059,-5.34540586834694,-4.41222175130935,-1.22001812267094,-2.0334542759665,-1.22959387901554,0],"text":["month: 2018-01<br />estimate:        NA<br />label: blue<br />label: <br />label: ","month: 2018-01<br />estimate:        NA<br />label: blue<br />label: <br />label: ","month: 2018-01<br />estimate:        NA<br />label: blue<br />label: <br />label: ","month: 2018-01<br />estimate:        NA<br />label: blue<br />label: <br />label: ","month: 2018-01<br />estimate:        NA<br />label: blue<br />label: <br />label: ","month: 2018-01<br />estimate:        NA<br />label: blue<br />label: <br />label: ","month: 2018-01<br />estimate:        NA<br />label: blue<br />label: <br />label: ","month: 2020-04<br />estimate: -1.146663<br />label: blue<br />label: <br />label: ","month: 2020-05<br />estimate: -5.345406<br />label: blue<br />label: <br />label: ","month: 2020-06<br />estimate: -4.412222<br />label: blue<br />label: <br />label: ","month: 2020-07<br />estimate: -1.220018<br />label: blue<br />label: <br />label: ","month: 2020-08<br />estimate: -2.033454<br />label: blue<br />label: <br />label: ","month: 2020-09<br />estimate: -1.229594<br />label: blue<br />label: <br />label: ","month: 2020-01<br />estimate:  0.000000<br />label: blue<br />label: <br />label: "],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,0,255,1)","opacity":1,"size":9.4488188976378,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(0,0,255,1)"}},"hoveron":"points","legendgroup":"","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1,1,1,1,1,1,1,2,3,4,5,6,7,8],"y":[null,null,null,null,null,null,null,0,-1.14666293594059,-5.34540586834694,-4.41222175130935,-1.22001812267094,-2.0334542759665,-1.22959387901554],"text":["month: 2018-01<br />estimate:        NA<br />label: blue<br />label: <br />label: ","month: 2018-01<br />estimate:        NA<br />label: blue<br />label: <br />label: ","month: 2018-01<br />estimate:        NA<br />label: blue<br />label: <br />label: ","month: 2018-01<br />estimate:        NA<br />label: blue<br />label: <br />label: ","month: 2018-01<br />estimate:        NA<br />label: blue<br />label: <br />label: ","month: 2018-01<br />estimate:        NA<br />label: blue<br />label: <br />label: ","month: 2018-01<br />estimate:        NA<br />label: blue<br />label: <br />label: ","month: 2020-01<br />estimate:  0.000000<br />label: blue<br />label: <br />label: ","month: 2020-04<br />estimate: -1.146663<br />label: blue<br />label: <br />label: ","month: 2020-05<br />estimate: -5.345406<br />label: blue<br />label: <br />label: ","month: 2020-06<br />estimate: -4.412222<br />label: blue<br />label: <br />label: ","month: 2020-07<br />estimate: -1.220018<br />label: blue<br />label: <br />label: ","month: 2020-08<br />estimate: -2.033454<br />label: blue<br />label: <br />label: ","month: 2020-09<br />estimate: -1.229594<br />label: blue<br />label: <br />label: "],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,0,255,1)","dash":"solid"},"hoveron":"points","legendgroup":"","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1,1,1,1,1,1,1,3,4,5,6,7,8,2],"y":[null,null,null,null,null,null,null,-1.14666293594059,-5.34540586834694,-4.41222175130935,-1.22001812267094,-2.0334542759665,-1.22959387901554,0],"text":["ci_lower:         NA<br />ci_upper:          NA<br />width: 0.5<br />colour: black<br />month: 2018-01<br />estimate:        NA<br />label: black<br />label: <br />label: ","ci_lower:         NA<br />ci_upper:          NA<br />width: 0.5<br />colour: black<br />month: 2018-01<br />estimate:        NA<br />label: black<br />label: <br />label: ","ci_lower:         NA<br />ci_upper:          NA<br />width: 0.5<br />colour: black<br />month: 2018-01<br />estimate:        NA<br />label: black<br />label: <br />label: ","ci_lower:         NA<br />ci_upper:          NA<br />width: 0.5<br />colour: black<br />month: 2018-01<br />estimate:        NA<br />label: black<br />label: <br />label: ","ci_lower:         NA<br />ci_upper:          NA<br />width: 0.5<br />colour: black<br />month: 2018-01<br />estimate:        NA<br />label: black<br />label: <br />label: ","ci_lower:         NA<br />ci_upper:          NA<br />width: 0.5<br />colour: black<br />month: 2018-01<br />estimate:        NA<br />label: black<br />label: <br />label: ","ci_lower:         NA<br />ci_upper:          NA<br />width: 0.5<br />colour: black<br />month: 2018-01<br />estimate:        NA<br />label: black<br />label: <br />label: ","ci_lower:  -2.495698<br />ci_upper:  0.20237195<br />width: 0.5<br />colour: black<br />month: 2020-04<br />estimate: -1.146663<br />label: black<br />label: <br />label: ","ci_lower: -11.551901<br />ci_upper:  0.86108883<br />width: 0.5<br />colour: black<br />month: 2020-05<br />estimate: -5.345406<br />label: black<br />label: <br />label: ","ci_lower:  -9.020260<br />ci_upper:  0.19581633<br />width: 0.5<br />colour: black<br />month: 2020-06<br />estimate: -4.412222<br />label: black<br />label: <br />label: ","ci_lower:  -4.954955<br />ci_upper:  2.51491921<br />width: 0.5<br />colour: black<br />month: 2020-07<br />estimate: -1.220018<br />label: black<br />label: <br />label: ","ci_lower:  -3.687568<br />ci_upper: -0.37934031<br />width: 0.5<br />colour: black<br />month: 2020-08<br />estimate: -2.033454<br />label: black<br />label: <br />label: ","ci_lower:  -2.363916<br />ci_upper: -0.09527157<br />width: 0.5<br />colour: black<br />month: 2020-09<br />estimate: -1.229594<br />label: black<br />label: <br />label: ","ci_lower:   0.000000<br />ci_upper:  0.00000000<br />width: 0.5<br />colour: black<br />month: 2020-01<br />estimate:  0.000000<br />label: black<br />label: <br />label: "],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[null,null,null,null,null,null,null,1.34903488901572,6.20649470239134,4.60803808026811,3.73493733280278,1.65411397073183,1.13432231249758,0],"arrayminus":[null,null,null,null,null,null,null,1.34903488901572,6.20649470239136,4.60803808026811,3.73493733280278,1.65411397073184,1.13432231249758,0],"type":"data","width":3.07317073170732,"symmetric":false,"color":"rgba(0,0,0,1)"},"legendgroup":"","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,8.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-12.2552415597818,3.21826019917535],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":38.854296388543},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"jukyo_number_WLS","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,8.6],"tickmode":"array","ticktext":["2018-01","2020-01","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8],"categoryorder":"array","categoryarray":["2018-01","2020-01","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-12.2552415597818,3.21826019917535],"tickmode":"array","ticktext":["-12","-8","-4","0"],"tickvals":[-12,-8,-4,0],"categoryorder":"array","categoryarray":["-12","-8","-4","0"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","showSendToCloud":false},"source":"A","attrs":{"441167e9b022":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"44111f2abd7a":{"x":{},"y":{},"colour":{},"shape":{}},"44112efda492":{"ymin":{},"ymax":{},"width":{},"colour":{},"x":{},"y":{},"colour.1":{},"shape":{}},"4411e3f8558":{"yintercept":{}},"44116c4b5bb6":{"xintercept":{}}},"cur_data":"441167e9b022","visdat":{"441167e9b022":["function (y) ","x"],"44111f2abd7a":["function (y) ","x"],"44112efda492":["function (y) ","x"],"4411e3f8558":["function (y) ","x"],"44116c4b5bb6":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
<div class="sourceCode" id="cb107"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb107-1"><a href="#cb107-1" aria-hidden="true" tabindex="-1"></a>estimates_jukyo_number_WLS_covar_onlypost <span class="ot">&lt;-</span> df_estimates <span class="co">#for robustness check</span></span>
<span id="cb107-2"><a href="#cb107-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb107-3"><a href="#cb107-3" aria-hidden="true" tabindex="-1"></a>results_jukyo_number_WLS_covar_onlypost <span class="ot">&lt;-</span> estimation_results <span class="co"># for only-post DID table</span></span></code></pre></div>
</div>
</div>
<div id="merge-outcome-resultsアウトカム結果の結合" class="section level1" number="12">
<h1><span class="header-section-number">12</span> Merge outcome results/アウトカム結果の結合</h1>
<div id="emergency-small-amount-funds緊急小口" class="section level2" number="12.1">
<h2><span class="header-section-number">12.1</span> emergency small amount funds/緊急小口</h2>
<div class="sourceCode" id="cb108"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb108-1"><a href="#cb108-1" aria-hidden="true" tabindex="-1"></a><span class="co">#merge and label estimates data</span></span>
<span id="cb108-2"><a href="#cb108-2" aria-hidden="true" tabindex="-1"></a>estimates_koguchi_number_bind <span class="ot">&lt;-</span> dplyr<span class="sc">::</span><span class="fu">bind_rows</span>(estimates_koguchi_number_OLS, </span>
<span id="cb108-3"><a href="#cb108-3" aria-hidden="true" tabindex="-1"></a>                                           　　　 estimates_koguchi_number_WLS)</span>
<span id="cb108-4"><a href="#cb108-4" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb108-5"><a href="#cb108-5" aria-hidden="true" tabindex="-1"></a><span class="co">#change labels and reorder labels</span></span>
<span id="cb108-6"><a href="#cb108-6" aria-hidden="true" tabindex="-1"></a>estimates_koguchi_number_bind <span class="ot">&lt;-</span> <span class="fu">estimates_labeling_poverty</span>(estimates_koguchi_number_bind)</span>
<span id="cb108-7"><a href="#cb108-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb108-8"><a href="#cb108-8" aria-hidden="true" tabindex="-1"></a><span class="co">#graph</span></span>
<span id="cb108-9"><a href="#cb108-9" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_bind <span class="ot">&lt;-</span> <span class="fu">event_study_graph_bind_legend</span>(<span class="at">data =</span> estimates_koguchi_number_bind, </span>
<span id="cb108-10"><a href="#cb108-10" aria-hidden="true" tabindex="-1"></a>                                             <span class="at">graph_title =</span> <span class="st">&quot;Emergency Small Amount Funds&quot;</span>) <span class="sc">+</span></span>
<span id="cb108-11"><a href="#cb108-11" aria-hidden="true" tabindex="-1"></a>  <span class="fu">theme</span>(<span class="at">legend.position =</span> <span class="st">&#39;none&#39;</span>)</span>
<span id="cb108-12"><a href="#cb108-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb108-13"><a href="#cb108-13" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_koguchi_number_bind)</span></code></pre></div>
<div id="htmlwidget-fe7572ac94b648982f72" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-fe7572ac94b648982f72">{"x":{"data":[{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.092257196683466,-0.0347731831097668,0.166705947758285,0.0940763173595052,-0.117986221119182,0.0212078291941502,0.114957801318699,0.111616698525424,0.0592589634828542,0.108766162091285,0.11177613396676,0.0652439512706202,23.829659020663,84.9720823732986,84.6303097800305,40.7364299525605,30.1625830272265,27.00948378072,0,null,null],"text":["month: 2019-01<br />estimate:  0.092257197<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate: -0.034773183<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.166705948<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:  0.094076317<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate: -0.117986221<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:  0.021207829<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:  0.114957801<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:  0.111616699<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:  0.059258963<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:  0.108766162<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:  0.111776134<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:  0.065243951<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate: 23.829659021<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: 84.972082373<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 84.630309780<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 40.736429953<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate: 30.162583027<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 27.009483781<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:  0.000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(248,118,109,1)","opacity":1,"size":11.3385826771654,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(248,118,109,1)"}},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.0573625251960301,0.0140757773702234,0.0118002713058374,0.038927570181194,-0.096881819426315,0.0714612162332458,0.059043744294744,0.107455287758807,0.0318676349441418,0.0933963352438028,0.0127163581335807,-0.00105177459732886,18.7233790500787,73.8398236797581,88.7678161647878,34.6888537893124,27.161723333362,21.8749531304157,0,null,null],"text":["month: 2019-01<br />estimate:  0.057362525<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  0.014075777<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  0.011800271<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:  0.038927570<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate: -0.096881819<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:  0.071461216<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:  0.059043744<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:  0.107455288<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:  0.031867635<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:  0.093396335<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:  0.012716358<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate: -0.001051775<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate: 18.723379050<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: 73.839823680<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 88.767816165<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 34.688853789<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 27.161723333<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 21.874953130<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:  0.000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,191,196,1)","opacity":1,"size":11.3385826771654,"symbol":"triangle-up","line":{"width":1.88976377952756,"color":"rgba(0,191,196,1)"}},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875,15.875,16.875,17.875,18.875,19.875,20.875],"y":[0.092257196683466,-0.0347731831097668,0.166705947758285,0.0940763173595052,-0.117986221119182,0.0212078291941502,0.114957801318699,0.111616698525424,0.0592589634828542,0.108766162091285,0.11177613396676,0.0652439512706202,0,null,null,23.829659020663,84.9720823732986,84.6303097800305,40.7364299525605,30.1625830272265,27.00948378072],"text":["month: 2019-01<br />estimate:  0.092257197<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate: -0.034773183<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.166705948<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:  0.094076317<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate: -0.117986221<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:  0.021207829<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:  0.114957801<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:  0.111616699<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:  0.059258963<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:  0.108766162<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:  0.111776134<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:  0.065243951<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:  0.000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate: 23.829659021<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: 84.972082373<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 84.630309780<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 40.736429953<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate: 30.162583027<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 27.009483781<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(248,118,109,1)","dash":"solid"},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125,16.125,17.125,18.125,19.125,20.125,21.125],"y":[0.0573625251960301,0.0140757773702234,0.0118002713058374,0.038927570181194,-0.096881819426315,0.0714612162332458,0.059043744294744,0.107455287758807,0.0318676349441418,0.0933963352438028,0.0127163581335807,-0.00105177459732886,0,null,null,18.7233790500787,73.8398236797581,88.7678161647878,34.6888537893124,27.161723333362,21.8749531304157],"text":["month: 2019-01<br />estimate:  0.057362525<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  0.014075777<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  0.011800271<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:  0.038927570<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate: -0.096881819<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:  0.071461216<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:  0.059043744<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:  0.107455288<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:  0.031867635<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:  0.093396335<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:  0.012716358<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate: -0.001051775<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:  0.000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate: 18.723379050<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: 73.839823680<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 88.767816165<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 34.688853789<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 27.161723333<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 21.874953130<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,191,196,1)","dash":"solid"},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.092257196683466,-0.0347731831097668,0.166705947758285,0.0940763173595052,-0.117986221119182,0.0212078291941502,0.114957801318699,0.111616698525424,0.0592589634828542,0.108766162091285,0.11177613396676,0.0652439512706202,23.829659020663,84.9720823732986,84.6303097800305,40.7364299525605,30.1625830272265,27.00948378072,0,null,null],"text":["ci_lower:  -0.137464533<br />ci_upper:   0.32197893<br />width: 0.5<br />month: 2019-01<br />estimate:  0.092257197<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.158098775<br />ci_upper:   0.08855241<br />width: 0.5<br />month: 2019-02<br />estimate: -0.034773183<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.044902758<br />ci_upper:   0.37831465<br />width: 0.5<br />month: 2019-03<br />estimate:  0.166705948<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.037865364<br />ci_upper:   0.22601800<br />width: 0.5<br />month: 2019-04<br />estimate:  0.094076317<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.250936978<br />ci_upper:   0.01496454<br />width: 0.5<br />month: 2019-05<br />estimate: -0.117986221<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.115458426<br />ci_upper:   0.15787408<br />width: 0.5<br />month: 2019-06<br />estimate:  0.021207829<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.010585336<br />ci_upper:   0.24050094<br />width: 0.5<br />month: 2019-07<br />estimate:  0.114957801<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.015689677<br />ci_upper:   0.23892307<br />width: 0.5<br />month: 2019-08<br />estimate:  0.111616699<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.062419461<br />ci_upper:   0.18093739<br />width: 0.5<br />month: 2019-09<br />estimate:  0.059258963<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.019068354<br />ci_upper:   0.23660068<br />width: 0.5<br />month: 2019-10<br />estimate:  0.108766162<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.075099424<br />ci_upper:   0.29865169<br />width: 0.5<br />month: 2019-11<br />estimate:  0.111776134<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.052519078<br />ci_upper:   0.18300698<br />width: 0.5<br />month: 2019-12<br />estimate:  0.065243951<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -16.009179215<br />ci_upper:  63.66849726<br />width: 0.5<br />month: 2020-04<br />estimate: 23.829659021<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -1.356050262<br />ci_upper: 171.30021501<br />width: 0.5<br />month: 2020-05<br />estimate: 84.972082373<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  15.806870549<br />ci_upper: 153.45374901<br />width: 0.5<br />month: 2020-06<br />estimate: 84.630309780<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -8.212807216<br />ci_upper:  89.68566712<br />width: 0.5<br />month: 2020-07<br />estimate: 40.736429953<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -8.174796698<br />ci_upper:  68.49996275<br />width: 0.5<br />month: 2020-08<br />estimate: 30.162583027<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -8.871448993<br />ci_upper:  62.89041655<br />width: 0.5<br />month: 2020-09<br />estimate: 27.009483781<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:   0.000000000<br />ci_upper:   0.00000000<br />width: 0.5<br />month: 2020-01<br />estimate:  0.000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5<br />month: 2020-02<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5<br />month: 2020-03<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.22972172994665,0.123325592388116,0.21160870581133,0.131941681160815,0.132950756794765,0.136666255126651,0.12554313769281,0.127306375228208,0.121678424223964,0.12783451601583,0.186875558399427,0.117763029053565,39.8388382361061,86.3281326350372,68.8234392310655,48.9492371686091,38.3373797255679,35.8809327738469,0,null,null],"arrayminus":[0.22972172994665,0.123325592388116,0.21160870581133,0.131941681160815,0.132950756794765,0.136666255126651,0.12554313769281,0.127306375228208,0.121678424223964,0.12783451601583,0.186875558399427,0.117763029053565,39.8388382361061,86.3281326350372,68.8234392310655,48.9492371686091,38.3373797255679,35.8809327738469,0,null,null],"type":"data","width":0.594339622641509,"symmetric":false,"color":"rgba(248,118,109,1)"},"name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.0573625251960301,0.0140757773702234,0.0118002713058374,0.038927570181194,-0.096881819426315,0.0714612162332458,0.059043744294744,0.107455287758807,0.0318676349441418,0.0933963352438028,0.0127163581335807,-0.00105177459732886,18.7233790500787,73.8398236797581,88.7678161647878,34.6888537893124,27.161723333362,21.8749531304157,0,null,null],"text":["ci_lower:  -0.085657233<br />ci_upper:   0.20038228<br />width: 0.5<br />month: 2019-01<br />estimate:  0.057362525<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.093642004<br />ci_upper:   0.12179356<br />width: 0.5<br />month: 2019-02<br />estimate:  0.014075777<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.170029411<br />ci_upper:   0.19362995<br />width: 0.5<br />month: 2019-03<br />estimate:  0.011800271<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.076288083<br />ci_upper:   0.15414322<br />width: 0.5<br />month: 2019-04<br />estimate:  0.038927570<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.206759069<br />ci_upper:   0.01299543<br />width: 0.5<br />month: 2019-05<br />estimate: -0.096881819<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.016013240<br />ci_upper:   0.15893567<br />width: 0.5<br />month: 2019-06<br />estimate:  0.071461216<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.104154889<br />ci_upper:   0.22224238<br />width: 0.5<br />month: 2019-07<br />estimate:  0.059043744<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.005774916<br />ci_upper:   0.22068549<br />width: 0.5<br />month: 2019-08<br />estimate:  0.107455288<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.108126454<br />ci_upper:   0.17186172<br />width: 0.5<br />month: 2019-09<br />estimate:  0.031867635<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.012713846<br />ci_upper:   0.19950652<br />width: 0.5<br />month: 2019-10<br />estimate:  0.093396335<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.144746677<br />ci_upper:   0.17017939<br />width: 0.5<br />month: 2019-11<br />estimate:  0.012716358<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.142462777<br />ci_upper:   0.14035923<br />width: 0.5<br />month: 2019-12<br />estimate: -0.001051775<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -18.123275286<br />ci_upper:  55.57003339<br />width: 0.5<br />month: 2020-04<br />estimate: 18.723379050<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:   1.988352566<br />ci_upper: 145.69129479<br />width: 0.5<br />month: 2020-05<br />estimate: 73.839823680<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  33.838122012<br />ci_upper: 143.69751032<br />width: 0.5<br />month: 2020-06<br />estimate: 88.767816165<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.938911033<br />ci_upper:  70.31661861<br />width: 0.5<br />month: 2020-07<br />estimate: 34.688853789<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:   2.859342823<br />ci_upper:  51.46410384<br />width: 0.5<br />month: 2020-08<br />estimate: 27.161723333<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -3.878792070<br />ci_upper:  47.62869833<br />width: 0.5<br />month: 2020-09<br />estimate: 21.874953130<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:   0.000000000<br />ci_upper:   0.00000000<br />width: 0.5<br />month: 2020-01<br />estimate:  0.000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5<br />month: 2020-02<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5<br />month: 2020-03<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.143019757987242,0.107717781764957,0.181829682258756,0.115215653270855,0.109877249119469,0.0874744557407098,0.163198633234481,0.113230203406324,0.139994088751044,0.106110181560812,0.157463035015633,0.141411002900065,36.8466543361544,71.8514711137661,54.9296941530923,35.6277648219561,24.3023805106647,25.7537452008236,0,null,null],"arrayminus":[0.143019757987242,0.107717781764957,0.181829682258756,0.115215653270855,0.109877249119469,0.0874744557407098,0.163198633234481,0.113230203406324,0.139994088751044,0.106110181560812,0.157463035015633,0.141411002900065,36.8466543361544,71.8514711137661,54.9296941530923,35.6277648219561,24.3023805106647,25.7537452008236,0,null,null],"type":"data","width":0.594339622641511,"symmetric":false,"color":"rgba(0,191,196,1)"},"name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-27.5944498007962,180.771389523056],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":38.854296388543},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"Emergency Small Amount Funds","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-27.5944498007962,180.771389523056],"tickmode":"array","ticktext":["0","50","100","150"],"tickvals":[0,50,100,150],"categoryorder":"array","categoryarray":["0","50","100","150"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","showSendToCloud":false},"source":"A","attrs":{"44111050cd79":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"441128e1cb4d":{"x":{},"y":{},"colour":{},"shape":{}},"44117fea4132":{"ymin":{},"ymax":{},"width":{},"x":{},"y":{},"colour":{},"shape":{}},"44116c5e7b39":{"yintercept":{}},"44112eec12c4":{"xintercept":{}}},"cur_data":"44111050cd79","visdat":{"44111050cd79":["function (y) ","x"],"441128e1cb4d":["function (y) ","x"],"44117fea4132":["function (y) ","x"],"44116c5e7b39":["function (y) ","x"],"44112eec12c4":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<div id="emergency-small-amount-funds緊急小口-with-covar" class="section level2" number="12.2">
<h2><span class="header-section-number">12.2</span> emergency small amount funds/緊急小口 with covar</h2>
<div class="sourceCode" id="cb109"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb109-1"><a href="#cb109-1" aria-hidden="true" tabindex="-1"></a><span class="co">#merge and label estimates data</span></span>
<span id="cb109-2"><a href="#cb109-2" aria-hidden="true" tabindex="-1"></a>estimates_koguchi_number_bind <span class="ot">&lt;-</span> dplyr<span class="sc">::</span><span class="fu">bind_rows</span>(estimates_koguchi_number_OLS_covar, </span>
<span id="cb109-3"><a href="#cb109-3" aria-hidden="true" tabindex="-1"></a>                                           estimates_koguchi_number_WLS_covar)</span>
<span id="cb109-4"><a href="#cb109-4" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb109-5"><a href="#cb109-5" aria-hidden="true" tabindex="-1"></a><span class="co">#change labels and reorder labels</span></span>
<span id="cb109-6"><a href="#cb109-6" aria-hidden="true" tabindex="-1"></a>estimates_koguchi_number_bind <span class="ot">&lt;-</span> <span class="fu">estimates_labeling_poverty</span>(estimates_koguchi_number_bind)</span>
<span id="cb109-7"><a href="#cb109-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb109-8"><a href="#cb109-8" aria-hidden="true" tabindex="-1"></a><span class="co">#graph</span></span>
<span id="cb109-9"><a href="#cb109-9" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_bind_covar <span class="ot">&lt;-</span> <span class="fu">event_study_graph_bind_legend</span>(<span class="at">data =</span> estimates_koguchi_number_bind, </span>
<span id="cb109-10"><a href="#cb109-10" aria-hidden="true" tabindex="-1"></a>                                             <span class="at">graph_title =</span> <span class="st">&quot;Emergency Small Amount Funds, with covariates&quot;</span>) <span class="sc">+</span></span>
<span id="cb109-11"><a href="#cb109-11" aria-hidden="true" tabindex="-1"></a>  <span class="fu">theme</span>(<span class="at">legend.position =</span> <span class="st">&#39;none&#39;</span>)</span>
<span id="cb109-12"><a href="#cb109-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb109-13"><a href="#cb109-13" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_koguchi_number_bind_covar)</span></code></pre></div>
<div id="htmlwidget-10b54de7e26c411cd7be" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-10b54de7e26c411cd7be">{"x":{"data":[{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.0922571966834478,-0.0347731831097328,0.166705947758324,0.0940763173595244,-0.117986221119195,0.0212078291941378,0.11495780131871,0.111616698525384,0.0592589634828926,0.10876616209131,0.111776133966788,0.0652439512706269,-8.50954369664165,34.0742608714376,30.4584936490019,10.2664588509333,9.4034686896734,14.0792382558993,0,null,null],"text":["month: 2019-01<br />estimate:  0.092257197<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate: -0.034773183<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.166705948<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:  0.094076317<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate: -0.117986221<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:  0.021207829<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:  0.114957801<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:  0.111616699<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:  0.059258963<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:  0.108766162<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:  0.111776134<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:  0.065243951<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate: -8.509543697<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: 34.074260871<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 30.458493649<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 10.266458851<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate:  9.403468690<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 14.079238256<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:  0.000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(248,118,109,1)","opacity":1,"size":11.3385826771654,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(248,118,109,1)"}},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.0358486677023289,-0.00743808012342677,-0.00971358618781997,0.0174137126874584,-0.118395676919997,0.0499473587395947,0.0375298868010878,0.0859414302651481,0.0103537774504467,0.0718824777501185,-0.00879749936009087,-0.0225656320909287,4.94073392099602,60.0292126542308,49.2299080086332,13.6089688309212,20.3255093274692,36.598359837827,0,null,null],"text":["month: 2019-01<br />estimate:  0.035848668<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate: -0.007438080<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate: -0.009713586<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:  0.017413713<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate: -0.118395677<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:  0.049947359<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:  0.037529887<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:  0.085941430<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:  0.010353777<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:  0.071882478<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate: -0.008797499<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate: -0.022565632<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate:  4.940733921<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: 60.029212654<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 49.229908009<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 13.608968831<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 20.325509327<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 36.598359838<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:  0.000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,191,196,1)","opacity":1,"size":11.3385826771654,"symbol":"triangle-up","line":{"width":1.88976377952756,"color":"rgba(0,191,196,1)"}},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875,15.875,16.875,17.875,18.875,19.875,20.875],"y":[0.0922571966834478,-0.0347731831097328,0.166705947758324,0.0940763173595244,-0.117986221119195,0.0212078291941378,0.11495780131871,0.111616698525384,0.0592589634828926,0.10876616209131,0.111776133966788,0.0652439512706269,0,null,null,-8.50954369664165,34.0742608714376,30.4584936490019,10.2664588509333,9.4034686896734,14.0792382558993],"text":["month: 2019-01<br />estimate:  0.092257197<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate: -0.034773183<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.166705948<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:  0.094076317<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate: -0.117986221<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:  0.021207829<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:  0.114957801<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:  0.111616699<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:  0.059258963<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:  0.108766162<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:  0.111776134<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:  0.065243951<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:  0.000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate: -8.509543697<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: 34.074260871<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 30.458493649<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 10.266458851<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate:  9.403468690<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 14.079238256<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(248,118,109,1)","dash":"solid"},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125,16.125,17.125,18.125,19.125,20.125,21.125],"y":[0.0358486677023289,-0.00743808012342677,-0.00971358618781997,0.0174137126874584,-0.118395676919997,0.0499473587395947,0.0375298868010878,0.0859414302651481,0.0103537774504467,0.0718824777501185,-0.00879749936009087,-0.0225656320909287,0,null,null,4.94073392099602,60.0292126542308,49.2299080086332,13.6089688309212,20.3255093274692,36.598359837827],"text":["month: 2019-01<br />estimate:  0.035848668<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate: -0.007438080<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate: -0.009713586<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:  0.017413713<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate: -0.118395677<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:  0.049947359<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:  0.037529887<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:  0.085941430<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:  0.010353777<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:  0.071882478<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate: -0.008797499<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate: -0.022565632<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:  0.000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate:  4.940733921<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: 60.029212654<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 49.229908009<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 13.608968831<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 20.325509327<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 36.598359838<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,191,196,1)","dash":"solid"},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.0922571966834478,-0.0347731831097328,0.166705947758324,0.0940763173595244,-0.117986221119195,0.0212078291941378,0.11495780131871,0.111616698525384,0.0592589634828926,0.10876616209131,0.111776133966788,0.0652439512706269,-8.50954369664165,34.0742608714376,30.4584936490019,10.2664588509333,9.4034686896734,14.0792382558993,0,null,null],"text":["ci_lower:  -0.14458937<br />ci_upper:   0.32910377<br />width: 0.5<br />month: 2019-01<br />estimate:  0.092257197<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.16192373<br />ci_upper:   0.09237736<br />width: 0.5<br />month: 2019-02<br />estimate: -0.034773183<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.05146582<br />ci_upper:   0.38487772<br />width: 0.5<br />month: 2019-03<br />estimate:  0.166705948<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.04195755<br />ci_upper:   0.23011018<br />width: 0.5<br />month: 2019-04<br />estimate:  0.094076317<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.25506046<br />ci_upper:   0.01908802<br />width: 0.5<br />month: 2019-05<br />estimate: -0.117986221<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.11969714<br />ci_upper:   0.16211280<br />width: 0.5<br />month: 2019-06<br />estimate:  0.021207829<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.01447907<br />ci_upper:   0.24439467<br />width: 0.5<br />month: 2019-07<br />estimate:  0.114957801<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.01963810<br />ci_upper:   0.24287149<br />width: 0.5<br />month: 2019-08<br />estimate:  0.111616699<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.06619333<br />ci_upper:   0.18471126<br />width: 0.5<br />month: 2019-09<br />estimate:  0.059258963<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.02303315<br />ci_upper:   0.24056548<br />width: 0.5<br />month: 2019-10<br />estimate:  0.108766162<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.08089539<br />ci_upper:   0.30444766<br />width: 0.5<br />month: 2019-11<br />estimate:  0.111776134<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.05617151<br />ci_upper:   0.18665941<br />width: 0.5<br />month: 2019-12<br />estimate:  0.065243951<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -51.23178527<br />ci_upper:  34.21269788<br />width: 0.5<br />month: 2020-04<br />estimate: -8.509543697<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -9.35349085<br />ci_upper:  77.50201260<br />width: 0.5<br />month: 2020-05<br />estimate: 34.074260871<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -13.17034015<br />ci_upper:  74.08732745<br />width: 0.5<br />month: 2020-06<br />estimate: 30.458493649<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -22.68354594<br />ci_upper:  43.21646364<br />width: 0.5<br />month: 2020-07<br />estimate: 10.266458851<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -18.57262185<br />ci_upper:  37.37955923<br />width: 0.5<br />month: 2020-08<br />estimate:  9.403468690<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -13.73633346<br />ci_upper:  41.89480997<br />width: 0.5<br />month: 2020-09<br />estimate: 14.079238256<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:   0.00000000<br />ci_upper:   0.00000000<br />width: 0.5<br />month: 2020-01<br />estimate:  0.000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:           NA<br />ci_upper:           NA<br />width: 0.5<br />month: 2020-02<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:           NA<br />ci_upper:           NA<br />width: 0.5<br />month: 2020-03<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.23684657121491,0.127150547353022,0.218171769915568,0.136033864946745,0.137074237151094,0.140904971995084,0.129436870024857,0.131254794560277,0.125452292088663,0.131799315666103,0.192671521599543,0.121415460598174,42.7222415718807,43.4277517238546,43.6288338021081,32.9500047860275,27.9760905380207,27.8155717142609,0,null,null],"arrayminus":[0.23684657121491,0.127150547353022,0.218171769915568,0.136033864946745,0.137074237151094,0.140904971995084,0.129436870024857,0.131254794560277,0.125452292088663,0.131799315666103,0.192671521599543,0.121415460598174,42.7222415718807,43.4277517238546,43.6288338021081,32.9500047860275,27.9760905380207,27.8155717142609,0,null,null],"type":"data","width":0.594339622641509,"symmetric":false,"color":"rgba(248,118,109,1)"},"name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.0358486677023289,-0.00743808012342677,-0.00971358618781997,0.0174137126874584,-0.118395676919997,0.0499473587395947,0.0375298868010878,0.0859414302651481,0.0103537774504467,0.0718824777501185,-0.00879749936009087,-0.0225656320909287,4.94073392099602,60.0292126542308,49.2299080086332,13.6089688309212,20.3255093274692,36.598359837827,0,null,null],"text":["ci_lower:  -0.09560202<br />ci_upper:   0.16729936<br />width: 0.5<br />month: 2019-01<br />estimate:  0.035848668<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.10729379<br />ci_upper:   0.09241763<br />width: 0.5<br />month: 2019-02<br />estimate: -0.007438080<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.17171422<br />ci_upper:   0.15228705<br />width: 0.5<br />month: 2019-03<br />estimate: -0.009713586<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.08081772<br />ci_upper:   0.11564514<br />width: 0.5<br />month: 2019-04<br />estimate:  0.017413713<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.22068111<br />ci_upper:  -0.01611024<br />width: 0.5<br />month: 2019-05<br />estimate: -0.118395677<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.03870325<br />ci_upper:   0.13859797<br />width: 0.5<br />month: 2019-06<br />estimate:  0.049947359<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.11239736<br />ci_upper:   0.18745713<br />width: 0.5<br />month: 2019-07<br />estimate:  0.037529887<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.01986176<br />ci_upper:   0.19174462<br />width: 0.5<br />month: 2019-08<br />estimate:  0.085941430<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.10656914<br />ci_upper:   0.12727669<br />width: 0.5<br />month: 2019-09<br />estimate:  0.010353777<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.02605927<br />ci_upper:   0.16982422<br />width: 0.5<br />month: 2019-10<br />estimate:  0.071882478<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.15594635<br />ci_upper:   0.13835135<br />width: 0.5<br />month: 2019-11<br />estimate: -0.008797499<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.15068488<br />ci_upper:   0.10555361<br />width: 0.5<br />month: 2019-12<br />estimate: -0.022565632<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -40.67751004<br />ci_upper:  50.55897788<br />width: 0.5<br />month: 2020-04<br />estimate:  4.940733921<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -24.85946779<br />ci_upper: 144.91789310<br />width: 0.5<br />month: 2020-05<br />estimate: 60.029212654<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -38.22083531<br />ci_upper: 136.68065133<br />width: 0.5<br />month: 2020-06<br />estimate: 49.229908009<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -33.52127287<br />ci_upper:  60.73921053<br />width: 0.5<br />month: 2020-07<br />estimate: 13.608968831<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -13.64422105<br />ci_upper:  54.29523970<br />width: 0.5<br />month: 2020-08<br />estimate: 20.325509327<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -4.29867321<br />ci_upper:  77.49539289<br />width: 0.5<br />month: 2020-09<br />estimate: 36.598359838<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:   0.00000000<br />ci_upper:   0.00000000<br />width: 0.5<br />month: 2020-01<br />estimate:  0.000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:           NA<br />ci_upper:           NA<br />width: 0.5<br />month: 2020-02<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:           NA<br />ci_upper:           NA<br />width: 0.5<br />month: 2020-03<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.131450691472918,0.0998557118701538,0.1620006358316,0.0982314277589815,0.10228543403959,0.0886506077578202,0.149927241884912,0.105803190869054,0.116922915332016,0.0979417428413504,0.147148847833049,0.128119245450327,45.6182439600609,84.8886804487866,87.4507433225061,47.1302416960222,33.9697303758902,40.8970330480158,0,null,null],"arrayminus":[0.131450691472918,0.0998557118701538,0.1620006358316,0.0982314277589815,0.10228543403959,0.0886506077578202,0.149927241884912,0.105803190869054,0.116922915332016,0.0979417428413504,0.147148847833049,0.128119245450327,45.6182439600609,84.8886804487866,87.4507433225061,47.1302416960222,33.9697303758902,40.8970330480158,0,null,null],"type":"data","width":0.594339622641511,"symmetric":false,"color":"rgba(0,191,196,1)"},"name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-61.0392691870993,154.725377021594],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":38.854296388543},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"Emergency Small Amount Funds, with covariates","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-61.0392691870993,154.725377021594],"tickmode":"array","ticktext":["-50","0","50","100","150"],"tickvals":[-50,-7.105427357601e-15,50,100,150],"categoryorder":"array","categoryarray":["-50","0","50","100","150"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","showSendToCloud":false},"source":"A","attrs":{"44111c121517":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"44116726a766":{"x":{},"y":{},"colour":{},"shape":{}},"44111ab84e72":{"ymin":{},"ymax":{},"width":{},"x":{},"y":{},"colour":{},"shape":{}},"44113a262c12":{"yintercept":{}},"441120176f91":{"xintercept":{}}},"cur_data":"44111c121517","visdat":{"44111c121517":["function (y) ","x"],"44116726a766":["function (y) ","x"],"44111ab84e72":["function (y) ","x"],"44113a262c12":["function (y) ","x"],"441120176f91":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<div id="general-support-funds総合支援" class="section level2" number="12.3">
<h2><span class="header-section-number">12.3</span> general support funds/総合支援</h2>
<div class="sourceCode" id="cb110"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb110-1"><a href="#cb110-1" aria-hidden="true" tabindex="-1"></a><span class="co">#merge and label estimates data</span></span>
<span id="cb110-2"><a href="#cb110-2" aria-hidden="true" tabindex="-1"></a>estimates_sogo_number_bind <span class="ot">&lt;-</span> dplyr<span class="sc">::</span><span class="fu">bind_rows</span>(estimates_sogo_number_OLS, </span>
<span id="cb110-3"><a href="#cb110-3" aria-hidden="true" tabindex="-1"></a>                                               estimates_sogo_number_WLS)</span>
<span id="cb110-4"><a href="#cb110-4" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb110-5"><a href="#cb110-5" aria-hidden="true" tabindex="-1"></a><span class="co">#change labels and reorder labels</span></span>
<span id="cb110-6"><a href="#cb110-6" aria-hidden="true" tabindex="-1"></a>estimates_sogo_number_bind <span class="ot">&lt;-</span> <span class="fu">estimates_labeling_poverty</span>(estimates_sogo_number_bind)</span>
<span id="cb110-7"><a href="#cb110-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb110-8"><a href="#cb110-8" aria-hidden="true" tabindex="-1"></a><span class="co">#graph</span></span>
<span id="cb110-9"><a href="#cb110-9" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_bind <span class="ot">&lt;-</span> <span class="fu">event_study_graph_bind_legend</span>(<span class="at">data =</span> estimates_sogo_number_bind, </span>
<span id="cb110-10"><a href="#cb110-10" aria-hidden="true" tabindex="-1"></a>                                             <span class="at">graph_title =</span> <span class="st">&quot;General Support Funds&quot;</span>) <span class="sc">+</span> </span>
<span id="cb110-11"><a href="#cb110-11" aria-hidden="true" tabindex="-1"></a>  <span class="fu">theme</span>(<span class="at">legend.position =</span> <span class="st">&#39;none&#39;</span>)</span>
<span id="cb110-12"><a href="#cb110-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb110-13"><a href="#cb110-13" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_sogo_number_bind)</span></code></pre></div>
<div id="htmlwidget-23b275ddcdae46d66d8a" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-23b275ddcdae46d66d8a">{"x":{"data":[{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.0416715176605393,0.0410710457383416,0.0318999052788485,0.0350657191860151,0.0094011080815477,0.0261495794728219,0.0585241183986227,0.0400702167217162,-0.00105981379815034,0.0122050185190616,0.0320166422133141,0.031507981994821,0.727152011419804,17.5221730562198,66.287721546475,81.837385886163,51.9248768309216,44.4212319510478,0,null,null],"text":["month: 2019-01<br />estimate:  0.0416715177<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:  0.0410710457<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.0318999053<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:  0.0350657192<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:  0.0094011081<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:  0.0261495795<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:  0.0585241184<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:  0.0400702167<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate: -0.0010598138<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:  0.0122050185<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:  0.0320166422<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:  0.0315079820<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate:  0.7271520114<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: 17.5221730562<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 66.2877215465<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 81.8373858862<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate: 51.9248768309<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 44.4212319510<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:  0.0000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(248,118,109,1)","opacity":1,"size":11.3385826771654,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(248,118,109,1)"}},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.0337478619793714,0.0180430578804831,0.0288330323734627,0.0238445111000303,0.000125788913230451,0.0150908599140323,0.0284155920051958,0.0142093333254465,0.00276603369118078,0.00588668923971625,0.0194310916916791,0.0146625138217047,-0.394628974941462,9.878505469004,54.386851254724,82.4444344684692,52.0641278026676,43.0709713928697,0,null,null],"text":["month: 2019-01<br />estimate:  0.0337478620<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  0.0180430579<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  0.0288330324<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:  0.0238445111<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:  0.0001257889<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:  0.0150908599<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:  0.0284155920<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:  0.0142093333<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:  0.0027660337<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:  0.0058866892<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:  0.0194310917<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:  0.0146625138<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate: -0.3946289749<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate:  9.8785054690<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 54.3868512547<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 82.4444344685<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 52.0641278027<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 43.0709713929<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:  0.0000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,191,196,1)","opacity":1,"size":11.3385826771654,"symbol":"triangle-up","line":{"width":1.88976377952756,"color":"rgba(0,191,196,1)"}},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875,15.875,16.875,17.875,18.875,19.875,20.875],"y":[0.0416715176605393,0.0410710457383416,0.0318999052788485,0.0350657191860151,0.0094011080815477,0.0261495794728219,0.0585241183986227,0.0400702167217162,-0.00105981379815034,0.0122050185190616,0.0320166422133141,0.031507981994821,0,null,null,0.727152011419804,17.5221730562198,66.287721546475,81.837385886163,51.9248768309216,44.4212319510478],"text":["month: 2019-01<br />estimate:  0.0416715177<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:  0.0410710457<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.0318999053<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:  0.0350657192<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:  0.0094011081<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:  0.0261495795<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:  0.0585241184<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:  0.0400702167<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate: -0.0010598138<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:  0.0122050185<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:  0.0320166422<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:  0.0315079820<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:  0.0000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate:  0.7271520114<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: 17.5221730562<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 66.2877215465<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 81.8373858862<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate: 51.9248768309<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 44.4212319510<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(248,118,109,1)","dash":"solid"},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125,16.125,17.125,18.125,19.125,20.125,21.125],"y":[0.0337478619793714,0.0180430578804831,0.0288330323734627,0.0238445111000303,0.000125788913230451,0.0150908599140323,0.0284155920051958,0.0142093333254465,0.00276603369118078,0.00588668923971625,0.0194310916916791,0.0146625138217047,0,null,null,-0.394628974941462,9.878505469004,54.386851254724,82.4444344684692,52.0641278026676,43.0709713928697],"text":["month: 2019-01<br />estimate:  0.0337478620<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  0.0180430579<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  0.0288330324<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:  0.0238445111<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:  0.0001257889<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:  0.0150908599<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:  0.0284155920<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:  0.0142093333<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:  0.0027660337<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:  0.0058866892<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:  0.0194310917<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:  0.0146625138<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:  0.0000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate: -0.3946289749<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate:  9.8785054690<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 54.3868512547<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 82.4444344685<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 52.0641278027<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 43.0709713929<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,191,196,1)","dash":"solid"},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.0416715176605393,0.0410710457383416,0.0318999052788485,0.0350657191860151,0.0094011080815477,0.0261495794728219,0.0585241183986227,0.0400702167217162,-0.00105981379815034,0.0122050185190616,0.0320166422133141,0.031507981994821,0.727152011419804,17.5221730562198,66.287721546475,81.837385886163,51.9248768309216,44.4212319510478,0,null,null],"text":["ci_lower:  7.048127e-03<br />ci_upper:   0.07629491<br />width: 0.5<br />month: 2019-01<br />estimate:  0.0416715177<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -7.526299e-04<br />ci_upper:   0.08289472<br />width: 0.5<br />month: 2019-02<br />estimate:  0.0410710457<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -5.429199e-03<br />ci_upper:   0.06922901<br />width: 0.5<br />month: 2019-03<br />estimate:  0.0318999053<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -1.072452e-02<br />ci_upper:   0.08085596<br />width: 0.5<br />month: 2019-04<br />estimate:  0.0350657192<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -2.738253e-02<br />ci_upper:   0.04618474<br />width: 0.5<br />month: 2019-05<br />estimate:  0.0094011081<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -1.198881e-02<br />ci_upper:   0.06428797<br />width: 0.5<br />month: 2019-06<br />estimate:  0.0261495795<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -6.411254e-03<br />ci_upper:   0.12345949<br />width: 0.5<br />month: 2019-07<br />estimate:  0.0585241184<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -2.731734e-02<br />ci_upper:   0.10745777<br />width: 0.5<br />month: 2019-08<br />estimate:  0.0400702167<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -2.854448e-02<br />ci_upper:   0.02642486<br />width: 0.5<br />month: 2019-09<br />estimate: -0.0010598138<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -2.438120e-02<br />ci_upper:   0.04879124<br />width: 0.5<br />month: 2019-10<br />estimate:  0.0122050185<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -8.042982e-03<br />ci_upper:   0.07207627<br />width: 0.5<br />month: 2019-11<br />estimate:  0.0320166422<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -1.126750e-02<br />ci_upper:   0.07428346<br />width: 0.5<br />month: 2019-12<br />estimate:  0.0315079820<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -3.706929e+00<br />ci_upper:   5.16123346<br />width: 0.5<br />month: 2020-04<br />estimate:  0.7271520114<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  1.248381e+00<br />ci_upper:  33.79596534<br />width: 0.5<br />month: 2020-05<br />estimate: 17.5221730562<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  2.172001e+01<br />ci_upper: 110.85543663<br />width: 0.5<br />month: 2020-06<br />estimate: 66.2877215465<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  1.694101e+01<br />ci_upper: 146.73375761<br />width: 0.5<br />month: 2020-07<br />estimate: 81.8373858862<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  7.283015e+00<br />ci_upper:  96.56673898<br />width: 0.5<br />month: 2020-08<br />estimate: 51.9248768309<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -1.798163e+00<br />ci_upper:  90.64062720<br />width: 0.5<br />month: 2020-09<br />estimate: 44.4212319510<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  0.000000e+00<br />ci_upper:   0.00000000<br />width: 0.5<br />month: 2020-01<br />estimate:  0.0000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5<br />month: 2020-02<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5<br />month: 2020-03<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.0346233902689864,0.0418236756166823,0.0373291047054165,0.0457902408415814,0.0367836368746917,0.0381383916078339,0.0649353727878994,0.0673875538402699,0.0274846697955945,0.0365862182879935,0.0400596245714787,0.0427754784196691,4.43408145094527,16.2737922844276,44.5677150796112,64.8963717258514,44.6418621519618,46.2193952521172,0,null,null],"arrayminus":[0.0346233902689864,0.0418236756166824,0.0373291047054165,0.0457902408415814,0.0367836368746917,0.0381383916078339,0.0649353727878994,0.0673875538402699,0.0274846697955945,0.0365862182879935,0.0400596245714787,0.042775478419669,4.43408145094527,16.2737922844276,44.5677150796112,64.8963717258514,44.6418621519618,46.2193952521172,0,null,null],"type":"data","width":0.594339622641509,"symmetric":false,"color":"rgba(248,118,109,1)"},"name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.0337478619793714,0.0180430578804831,0.0288330323734627,0.0238445111000303,0.000125788913230451,0.0150908599140323,0.0284155920051958,0.0142093333254465,0.00276603369118078,0.00588668923971625,0.0194310916916791,0.0146625138217047,-0.394628974941462,9.878505469004,54.386851254724,82.4444344684692,52.0641278026676,43.0709713928697,0,null,null],"text":["ci_lower: -1.534466e-02<br />ci_upper:   0.08284039<br />width: 0.5<br />month: 2019-01<br />estimate:  0.0337478620<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -3.691263e-02<br />ci_upper:   0.07299875<br />width: 0.5<br />month: 2019-02<br />estimate:  0.0180430579<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -2.283888e-02<br />ci_upper:   0.08050495<br />width: 0.5<br />month: 2019-03<br />estimate:  0.0288330324<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -2.953254e-02<br />ci_upper:   0.07722156<br />width: 0.5<br />month: 2019-04<br />estimate:  0.0238445111<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -5.281445e-02<br />ci_upper:   0.05306603<br />width: 0.5<br />month: 2019-05<br />estimate:  0.0001257889<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -3.602751e-02<br />ci_upper:   0.06620923<br />width: 0.5<br />month: 2019-06<br />estimate:  0.0150908599<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -2.112183e-02<br />ci_upper:   0.07795301<br />width: 0.5<br />month: 2019-07<br />estimate:  0.0284155920<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -5.184697e-02<br />ci_upper:   0.08026564<br />width: 0.5<br />month: 2019-08<br />estimate:  0.0142093333<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -4.389515e-02<br />ci_upper:   0.04942722<br />width: 0.5<br />month: 2019-09<br />estimate:  0.0027660337<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -4.089130e-02<br />ci_upper:   0.05266468<br />width: 0.5<br />month: 2019-10<br />estimate:  0.0058866892<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -3.420547e-02<br />ci_upper:   0.07306766<br />width: 0.5<br />month: 2019-11<br />estimate:  0.0194310917<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -3.844828e-02<br />ci_upper:   0.06777331<br />width: 0.5<br />month: 2019-12<br />estimate:  0.0146625138<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -2.978399e+00<br />ci_upper:   2.18914125<br />width: 0.5<br />month: 2020-04<br />estimate: -0.3946289749<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -1.067610e+01<br />ci_upper:  30.43311532<br />width: 0.5<br />month: 2020-05<br />estimate:  9.8785054690<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  4.138092e+00<br />ci_upper: 104.63561012<br />width: 0.5<br />month: 2020-06<br />estimate: 54.3868512547<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  2.908439e+01<br />ci_upper: 135.80447771<br />width: 0.5<br />month: 2020-07<br />estimate: 82.4444344685<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  2.367411e+01<br />ci_upper:  80.45414675<br />width: 0.5<br />month: 2020-08<br />estimate: 52.0641278027<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  3.421720e+00<br />ci_upper:  82.72022279<br />width: 0.5<br />month: 2020-09<br />estimate: 43.0709713929<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  0.000000e+00<br />ci_upper:   0.00000000<br />width: 0.5<br />month: 2020-01<br />estimate:  0.0000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5<br />month: 2020-02<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5<br />month: 2020-03<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.0490925261144702,0.0549556884954669,0.0516719163798192,0.0533770484481773,0.0529402368292525,0.0511183686062427,0.0495374192803846,0.0660563051478514,0.0466611861987706,0.0467779920521257,0.0536365635692878,0.0531107975025588,2.58377022802406,20.5546098506973,50.2487588694128,53.3600432424928,28.3900189495909,39.6492513941364,0,null,null],"arrayminus":[0.0490925261144702,0.054955688495467,0.0516719163798192,0.0533770484481773,0.0529402368292525,0.0511183686062427,0.0495374192803846,0.0660563051478514,0.0466611861987706,0.0467779920521257,0.0536365635692878,0.0531107975025588,2.58377022802406,20.5546098506973,50.2487588694128,53.3600432424928,28.3900189495909,39.6492513941364,0,null,null],"type":"data","width":0.594339622641511,"symmetric":false,"color":"rgba(0,191,196,1)"},"name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-18.5465974813787,154.6042507117],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":38.854296388543},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"General Support Funds","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-18.5465974813787,154.6042507117],"tickmode":"array","ticktext":["0","50","100","150"],"tickvals":[0,50,100,150],"categoryorder":"array","categoryarray":["0","50","100","150"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","showSendToCloud":false},"source":"A","attrs":{"441142aaf642":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"4411660d893f":{"x":{},"y":{},"colour":{},"shape":{}},"44112adbb71":{"ymin":{},"ymax":{},"width":{},"x":{},"y":{},"colour":{},"shape":{}},"44115becf916":{"yintercept":{}},"441122d54280":{"xintercept":{}}},"cur_data":"441142aaf642","visdat":{"441142aaf642":["function (y) ","x"],"4411660d893f":["function (y) ","x"],"44112adbb71":["function (y) ","x"],"44115becf916":["function (y) ","x"],"441122d54280":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<div id="general-support-funds総合支援-with-covar" class="section level2" number="12.4">
<h2><span class="header-section-number">12.4</span> general support funds/総合支援 with covar</h2>
<div class="sourceCode" id="cb111"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb111-1"><a href="#cb111-1" aria-hidden="true" tabindex="-1"></a><span class="co">#merge and label estimates data</span></span>
<span id="cb111-2"><a href="#cb111-2" aria-hidden="true" tabindex="-1"></a>estimates_sogo_number_bind <span class="ot">&lt;-</span> dplyr<span class="sc">::</span><span class="fu">bind_rows</span>(estimates_sogo_number_OLS_covar, </span>
<span id="cb111-3"><a href="#cb111-3" aria-hidden="true" tabindex="-1"></a>                                               estimates_sogo_number_WLS_covar)</span>
<span id="cb111-4"><a href="#cb111-4" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb111-5"><a href="#cb111-5" aria-hidden="true" tabindex="-1"></a><span class="co">#change labels and reorder labels</span></span>
<span id="cb111-6"><a href="#cb111-6" aria-hidden="true" tabindex="-1"></a>estimates_sogo_number_bind <span class="ot">&lt;-</span> <span class="fu">estimates_labeling_poverty</span>(estimates_sogo_number_bind)</span>
<span id="cb111-7"><a href="#cb111-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb111-8"><a href="#cb111-8" aria-hidden="true" tabindex="-1"></a><span class="co">#graph</span></span>
<span id="cb111-9"><a href="#cb111-9" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_bind_covar <span class="ot">&lt;-</span> <span class="fu">event_study_graph_bind_legend</span>(<span class="at">data =</span> estimates_sogo_number_bind, </span>
<span id="cb111-10"><a href="#cb111-10" aria-hidden="true" tabindex="-1"></a>                                             <span class="at">graph_title =</span> <span class="st">&quot;General Support Funds, with covariates&quot;</span>) <span class="sc">+</span></span>
<span id="cb111-11"><a href="#cb111-11" aria-hidden="true" tabindex="-1"></a>  <span class="fu">theme</span>(<span class="at">legend.position =</span> <span class="st">&#39;none&#39;</span>)</span>
<span id="cb111-12"><a href="#cb111-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb111-13"><a href="#cb111-13" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_sogo_number_bind_covar)</span></code></pre></div>
<div id="htmlwidget-627a7a59a6c8b3ec5473" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-627a7a59a6c8b3ec5473">{"x":{"data":[{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.0416715176605637,0.0410710457383193,0.031899905278857,0.035065719186029,0.00940110808150884,0.0261495794727896,0.0585241183986218,0.0400702167216797,-0.00105981379813087,0.0122050185190664,0.0320166422133585,0.0315079819948257,0.847203322824888,9.00404567178854,46.1592759723456,53.2351513480868,26.5073236452483,20.5684236119977,0,null,null],"text":["month: 2019-01<br />estimate:  0.0416715177<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:  0.0410710457<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.0318999053<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:  0.0350657192<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:  0.0094011081<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:  0.0261495795<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:  0.0585241184<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:  0.0400702167<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate: -0.0010598138<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:  0.0122050185<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:  0.0320166422<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:  0.0315079820<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate:  0.8472033228<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate:  9.0040456718<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 46.1592759723<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 53.2351513481<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate: 26.5073236452<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 20.5684236120<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:  0.0000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(248,118,109,1)","opacity":1,"size":11.3385826771654,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(248,118,109,1)"}},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.0104766113976507,-0.00522819270122313,0.00556178179175872,0.000573260518239497,-0.0231454616685285,-0.00818039066761939,0.00514434142348301,-0.00906191725623989,-0.0205052168905478,-0.017384561342032,-0.00384015889004329,-0.00860873675993934,0.00207081609250334,9.23116054114745,62.3372147650886,87.7762648187545,35.8632919766309,26.9889397662744,0,null,null],"text":["month: 2019-01<br />estimate:  0.0104766114<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate: -0.0052281927<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  0.0055617818<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:  0.0005732605<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate: -0.0231454617<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate: -0.0081803907<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:  0.0051443414<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate: -0.0090619173<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate: -0.0205052169<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate: -0.0173845613<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate: -0.0038401589<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate: -0.0086087368<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate:  0.0020708161<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate:  9.2311605411<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 62.3372147651<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 87.7762648188<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 35.8632919766<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 26.9889397663<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:  0.0000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,191,196,1)","opacity":1,"size":11.3385826771654,"symbol":"triangle-up","line":{"width":1.88976377952756,"color":"rgba(0,191,196,1)"}},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875,15.875,16.875,17.875,18.875,19.875,20.875],"y":[0.0416715176605637,0.0410710457383193,0.031899905278857,0.035065719186029,0.00940110808150884,0.0261495794727896,0.0585241183986218,0.0400702167216797,-0.00105981379813087,0.0122050185190664,0.0320166422133585,0.0315079819948257,0,null,null,0.847203322824888,9.00404567178854,46.1592759723456,53.2351513480868,26.5073236452483,20.5684236119977],"text":["month: 2019-01<br />estimate:  0.0416715177<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:  0.0410710457<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.0318999053<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:  0.0350657192<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:  0.0094011081<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:  0.0261495795<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:  0.0585241184<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:  0.0400702167<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate: -0.0010598138<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:  0.0122050185<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:  0.0320166422<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:  0.0315079820<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:  0.0000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate:  0.8472033228<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate:  9.0040456718<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 46.1592759723<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 53.2351513481<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate: 26.5073236452<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 20.5684236120<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(248,118,109,1)","dash":"solid"},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125,16.125,17.125,18.125,19.125,20.125,21.125],"y":[0.0104766113976507,-0.00522819270122313,0.00556178179175872,0.000573260518239497,-0.0231454616685285,-0.00818039066761939,0.00514434142348301,-0.00906191725623989,-0.0205052168905478,-0.017384561342032,-0.00384015889004329,-0.00860873675993934,0,null,null,0.00207081609250334,9.23116054114745,62.3372147650886,87.7762648187545,35.8632919766309,26.9889397662744],"text":["month: 2019-01<br />estimate:  0.0104766114<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate: -0.0052281927<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  0.0055617818<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:  0.0005732605<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate: -0.0231454617<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate: -0.0081803907<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:  0.0051443414<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate: -0.0090619173<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate: -0.0205052169<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate: -0.0173845613<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate: -0.0038401589<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate: -0.0086087368<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:  0.0000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate:  0.0020708161<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate:  9.2311605411<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 62.3372147651<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 87.7762648188<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 35.8632919766<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 26.9889397663<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,191,196,1)","dash":"solid"},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.0416715176605637,0.0410710457383193,0.031899905278857,0.035065719186029,0.00940110808150884,0.0261495794727896,0.0585241183986218,0.0400702167216797,-0.00105981379813087,0.0122050185190664,0.0320166422133585,0.0315079819948257,0.847203322824888,9.00404567178854,46.1592759723456,53.2351513480868,26.5073236452483,20.5684236119977,0,null,null],"text":["ci_lower:   0.005974280<br />ci_upper:   0.077368756<br />width: 0.5<br />month: 2019-01<br />estimate:  0.0416715177<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.002049795<br />ci_upper:   0.084191887<br />width: 0.5<br />month: 2019-02<br />estimate:  0.0410710457<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.006586965<br />ci_upper:   0.070386776<br />width: 0.5<br />month: 2019-03<br />estimate:  0.0318999053<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.012144710<br />ci_upper:   0.082276149<br />width: 0.5<br />month: 2019-04<br />estimate:  0.0350657192<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.028523377<br />ci_upper:   0.047325593<br />width: 0.5<br />month: 2019-05<br />estimate:  0.0094011081<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.013171678<br />ci_upper:   0.065470837<br />width: 0.5<br />month: 2019-06<br />estimate:  0.0261495795<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.008425231<br />ci_upper:   0.125473468<br />width: 0.5<br />month: 2019-07<br />estimate:  0.0585241184<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.029407369<br />ci_upper:   0.109547802<br />width: 0.5<br />month: 2019-08<br />estimate:  0.0400702167<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.029396923<br />ci_upper:   0.027277296<br />width: 0.5<br />month: 2019-09<br />estimate: -0.0010598138<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.025515925<br />ci_upper:   0.049925962<br />width: 0.5<br />month: 2019-10<br />estimate:  0.0122050185<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.009285435<br />ci_upper:   0.073318720<br />width: 0.5<br />month: 2019-11<br />estimate:  0.0320166422<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.012594182<br />ci_upper:   0.075610146<br />width: 0.5<br />month: 2019-12<br />estimate:  0.0315079820<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -6.940562554<br />ci_upper:   8.634969200<br />width: 0.5<br />month: 2020-04<br />estimate:  0.8472033228<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -12.724461901<br />ci_upper:  30.732553245<br />width: 0.5<br />month: 2020-05<br />estimate:  9.0040456718<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  18.869587638<br />ci_upper:  73.448964307<br />width: 0.5<br />month: 2020-06<br />estimate: 46.1592759723<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  18.513003849<br />ci_upper:  87.957298847<br />width: 0.5<br />month: 2020-07<br />estimate: 53.2351513481<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:   3.150154656<br />ci_upper:  49.864492635<br />width: 0.5<br />month: 2020-08<br />estimate: 26.5073236452<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -2.968410333<br />ci_upper:  44.105257557<br />width: 0.5<br />month: 2020-09<br />estimate: 20.5684236120<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:   0.000000000<br />ci_upper:   0.000000000<br />width: 0.5<br />month: 2020-01<br />estimate:  0.0000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:            NA<br />width: 0.5<br />month: 2020-02<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:            NA<br />width: 0.5<br />month: 2020-03<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.0356972380223751,0.0431208408750634,0.0384868704391451,0.0472104295267616,0.0379244848755148,0.039321257447001,0.0669493495411123,0.0694775852221366,0.0283371094426893,0.0377209433383249,0.0413020776402219,0.0441021639395246,7.78776587714176,21.7285075730458,27.2896883348445,34.7221474993284,23.3571689894113,23.536833944943,0,null,null],"arrayminus":[0.0356972380223751,0.0431208408750634,0.0384868704391451,0.0472104295267616,0.0379244848755148,0.039321257447001,0.0669493495411123,0.0694775852221366,0.0283371094426893,0.0377209433383249,0.0413020776402219,0.0441021639395246,7.78776587714176,21.7285075730458,27.2896883348445,34.7221474993284,23.3571689894113,23.536833944943,0,null,null],"type":"data","width":0.594339622641509,"symmetric":false,"color":"rgba(248,118,109,1)"},"name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.0104766113976507,-0.00522819270122313,0.00556178179175872,0.000573260518239497,-0.0231454616685285,-0.00818039066761939,0.00514434142348301,-0.00906191725623989,-0.0205052168905478,-0.017384561342032,-0.00384015889004329,-0.00860873675993934,0.00207081609250334,9.23116054114745,62.3372147650886,87.7762648187545,35.8632919766309,26.9889397662744,0,null,null],"text":["ci_lower:  -0.013582046<br />ci_upper:   0.034535269<br />width: 0.5<br />month: 2019-01<br />estimate:  0.0104766114<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.033645026<br />ci_upper:   0.023188641<br />width: 0.5<br />month: 2019-02<br />estimate: -0.0052281927<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.024781396<br />ci_upper:   0.035904960<br />width: 0.5<br />month: 2019-03<br />estimate:  0.0055617818<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.029630360<br />ci_upper:   0.030776882<br />width: 0.5<br />month: 2019-04<br />estimate:  0.0005732605<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.049072996<br />ci_upper:   0.002782073<br />width: 0.5<br />month: 2019-05<br />estimate: -0.0231454617<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.032473080<br />ci_upper:   0.016112299<br />width: 0.5<br />month: 2019-06<br />estimate: -0.0081803907<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.021345127<br />ci_upper:   0.031633809<br />width: 0.5<br />month: 2019-07<br />estimate:  0.0051443414<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.049692488<br />ci_upper:   0.031568653<br />width: 0.5<br />month: 2019-08<br />estimate: -0.0090619173<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.039121684<br />ci_upper:  -0.001888750<br />width: 0.5<br />month: 2019-09<br />estimate: -0.0205052169<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.037580531<br />ci_upper:   0.002811409<br />width: 0.5<br />month: 2019-10<br />estimate: -0.0173845613<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.032400454<br />ci_upper:   0.024720136<br />width: 0.5<br />month: 2019-11<br />estimate: -0.0038401589<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.038479472<br />ci_upper:   0.021261999<br />width: 0.5<br />month: 2019-12<br />estimate: -0.0086087368<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -5.615379116<br />ci_upper:   5.619520749<br />width: 0.5<br />month: 2020-04<br />estimate:  0.0020708161<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -21.990728659<br />ci_upper:  40.453049742<br />width: 0.5<br />month: 2020-05<br />estimate:  9.2311605411<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:   4.709461745<br />ci_upper: 119.964967785<br />width: 0.5<br />month: 2020-06<br />estimate: 62.3372147651<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  22.060859570<br />ci_upper: 153.491670068<br />width: 0.5<br />month: 2020-07<br />estimate: 87.7762648188<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:   1.669590751<br />ci_upper:  70.056993202<br />width: 0.5<br />month: 2020-08<br />estimate: 35.8632919766<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -8.249823590<br />ci_upper:  62.227703123<br />width: 0.5<br />month: 2020-09<br />estimate: 26.9889397663<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:   0.000000000<br />ci_upper:   0.000000000<br />width: 0.5<br />month: 2020-01<br />estimate:  0.0000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:            NA<br />width: 0.5<br />month: 2020-02<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:            NA<br />width: 0.5<br />month: 2020-03<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.0240586574753853,0.0284168332241819,0.0303431778901075,0.0302036209936453,0.0259275343648722,0.0242926892490366,0.0264894679414158,0.0406305706696541,0.0186164667430677,0.0201959698737196,0.0285602948092007,0.0298707355170201,5.61744993248863,31.2218892004184,57.6277530196732,65.7154052490224,34.1937012253616,35.2387633564545,0,null,null],"arrayminus":[0.0240586574753853,0.0284168332241819,0.0303431778901075,0.0302036209936453,0.0259275343648722,0.0242926892490366,0.0264894679414158,0.0406305706696541,0.0186164667430677,0.0201959698737196,0.0285602948092007,0.0298707355170201,5.61744993248863,31.2218892004184,57.6277530196732,65.7154052490224,34.1937012253616,35.2387633564545,0,null,null],"type":"data","width":0.594339622641511,"symmetric":false,"color":"rgba(0,191,196,1)"},"name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-30.7648485956233,162.265790004129],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":38.854296388543},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"General Support Funds, with covariates","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-30.7648485956233,162.265790004129],"tickmode":"array","ticktext":["0","50","100","150"],"tickvals":[3.5527136788005e-15,50,100,150],"categoryorder":"array","categoryarray":["0","50","100","150"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","showSendToCloud":false},"source":"A","attrs":{"4411231417ef":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"44117c2f5de6":{"x":{},"y":{},"colour":{},"shape":{}},"44119bde6bc":{"ymin":{},"ymax":{},"width":{},"x":{},"y":{},"colour":{},"shape":{}},"4411127745a3":{"yintercept":{}},"4411547cd9cd":{"xintercept":{}}},"cur_data":"4411231417ef","visdat":{"4411231417ef":["function (y) ","x"],"44117c2f5de6":["function (y) ","x"],"44119bde6bc":["function (y) ","x"],"4411127745a3":["function (y) ","x"],"4411547cd9cd":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<div id="housing-security-benefit居住確保給付金" class="section level2" number="12.5">
<h2><span class="header-section-number">12.5</span> housing security benefit/居住確保給付金</h2>
<div class="sourceCode" id="cb112"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb112-1"><a href="#cb112-1" aria-hidden="true" tabindex="-1"></a><span class="co">#merge and label estimates data</span></span>
<span id="cb112-2"><a href="#cb112-2" aria-hidden="true" tabindex="-1"></a>estimates_jukyo_number_bind <span class="ot">&lt;-</span> dplyr<span class="sc">::</span><span class="fu">bind_rows</span>(estimates_jukyo_number_OLS, </span>
<span id="cb112-3"><a href="#cb112-3" aria-hidden="true" tabindex="-1"></a>                                                estimates_jukyo_number_WLS)</span>
<span id="cb112-4"><a href="#cb112-4" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb112-5"><a href="#cb112-5" aria-hidden="true" tabindex="-1"></a><span class="co">#change labels and reorder labels</span></span>
<span id="cb112-6"><a href="#cb112-6" aria-hidden="true" tabindex="-1"></a>estimates_jukyo_number_bind <span class="ot">&lt;-</span> <span class="fu">estimates_labeling_poverty</span>(estimates_jukyo_number_bind)</span>
<span id="cb112-7"><a href="#cb112-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb112-8"><a href="#cb112-8" aria-hidden="true" tabindex="-1"></a><span class="co">#graph</span></span>
<span id="cb112-9"><a href="#cb112-9" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_bind <span class="ot">&lt;-</span> <span class="fu">event_study_graph_bind_legend</span>(<span class="at">data =</span> estimates_jukyo_number_bind, </span>
<span id="cb112-10"><a href="#cb112-10" aria-hidden="true" tabindex="-1"></a>                                             <span class="at">graph_title =</span> <span class="st">&quot;Housing Security Benefit&quot;</span>) <span class="sc">+</span></span>
<span id="cb112-11"><a href="#cb112-11" aria-hidden="true" tabindex="-1"></a>  <span class="fu">theme</span>(<span class="at">legend.position =</span> <span class="st">&#39;none&#39;</span>)</span>
<span id="cb112-12"><a href="#cb112-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb112-13"><a href="#cb112-13" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_jukyo_number_bind)</span></code></pre></div>
<div id="htmlwidget-147485b485c628271312" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-147485b485c628271312">{"x":{"data":[{"x":[0.875,1.875,15.875,16.875,17.875,18.875,19.875,20.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875],"y":[0.149600097718494,0.100704190811891,0.458573653864166,10.5669399021714,19.0270575438353,10.5102887812187,4.7607309060617,3.24644755857246,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["month: 2019-01<br />estimate:  0.1496001<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:  0.1007042<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate:  0.4585737<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: 10.5669399<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 19.0270575<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 10.5102888<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate:  4.7607309<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate:  3.2464476<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(248,118,109,1)","opacity":1,"size":11.3385826771654,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(248,118,109,1)"}},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,16.125,17.125,18.125,19.125,20.125,21.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125],"y":[0.117502480457477,0.107578801495555,1.10260400563082,15.3111452953042,27.583867514515,15.3335398491714,6.61460757002231,4.44172090712996,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["month: 2019-01<br />estimate:  0.1175025<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  0.1075788<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate:  1.1026040<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: 15.3111453<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 27.5838675<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 15.3335398<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate:  6.6146076<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate:  4.4417209<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,191,196,1)","opacity":1,"size":11.3385826771654,"symbol":"triangle-up","line":{"width":1.88976377952756,"color":"rgba(0,191,196,1)"}},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875,15.875,16.875,17.875,18.875,19.875,20.875],"y":[0.149600097718494,0.100704190811891,0,null,null,null,null,null,null,null,null,null,null,null,null,0.458573653864166,10.5669399021714,19.0270575438353,10.5102887812187,4.7607309060617,3.24644755857246],"text":["month: 2019-01<br />estimate:  0.1496001<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:  0.1007042<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate:  0.4585737<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: 10.5669399<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 19.0270575<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 10.5102888<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate:  4.7607309<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate:  3.2464476<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(248,118,109,1)","dash":"solid"},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125,16.125,17.125,18.125,19.125,20.125,21.125],"y":[0.117502480457477,0.107578801495555,0,null,null,null,null,null,null,null,null,null,null,null,null,1.10260400563082,15.3111452953042,27.583867514515,15.3335398491714,6.61460757002231,4.44172090712996],"text":["month: 2019-01<br />estimate:  0.1175025<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  0.1075788<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate:  1.1026040<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: 15.3111453<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 27.5838675<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 15.3335398<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate:  6.6146076<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate:  4.4417209<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,191,196,1)","dash":"solid"},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,15.875,16.875,17.875,18.875,19.875,20.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875],"y":[0.149600097718494,0.100704190811891,0.458573653864166,10.5669399021714,19.0270575438353,10.5102887812187,4.7607309060617,3.24644755857246,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["ci_lower:  0.03356936<br />ci_upper:  0.2656308<br />width: 0.5<br />month: 2019-01<br />estimate:  0.1496001<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -0.00116565<br />ci_upper:  0.2025740<br />width: 0.5<br />month: 2019-02<br />estimate:  0.1007042<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -0.90795764<br />ci_upper:  1.8251050<br />width: 0.5<br />month: 2020-04<br />estimate:  0.4585737<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  1.72752806<br />ci_upper: 19.4063517<br />width: 0.5<br />month: 2020-05<br />estimate: 10.5669399<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  9.92378936<br />ci_upper: 28.1303257<br />width: 0.5<br />month: 2020-06<br />estimate: 19.0270575<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  5.43952181<br />ci_upper: 15.5810557<br />width: 0.5<br />month: 2020-07<br />estimate: 10.5102888<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  2.28371326<br />ci_upper:  7.2377486<br />width: 0.5<br />month: 2020-08<br />estimate:  4.7607309<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  1.31437106<br />ci_upper:  5.1785241<br />width: 0.5<br />month: 2020-09<br />estimate:  3.2464476<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  0.00000000<br />ci_upper:  0.0000000<br />width: 0.5<br />month: 2019-03<br />estimate:  0.0000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-04<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-05<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-06<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-07<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-08<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-09<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-10<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-11<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-12<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2020-01<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2020-02<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2020-03<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.116030742496822,0.101869840368341,1.36653129812895,8.83941183941638,9.10326818507195,5.07076696727706,2.47701764525593,1.9320765028519,0,null,null,null,null,null,null,null,null,null,null,null,null],"arrayminus":[0.116030742496822,0.101869840368341,1.36653129812895,8.83941183941638,9.10326818507195,5.07076696727706,2.47701764525593,1.9320765028519,0,null,null,null,null,null,null,null,null,null,null,null,null],"type":"data","width":0.594339622641509,"symmetric":false,"color":"rgba(248,118,109,1)"},"name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,16.125,17.125,18.125,19.125,20.125,21.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125],"y":[0.117502480457477,0.107578801495555,1.10260400563082,15.3111452953042,27.583867514515,15.3335398491714,6.61460757002231,4.44172090712996,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["ci_lower:  0.02095645<br />ci_upper:  0.2140485<br />width: 0.5<br />month: 2019-01<br />estimate:  0.1175025<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -0.01037220<br />ci_upper:  0.2255298<br />width: 0.5<br />month: 2019-02<br />estimate:  0.1075788<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -0.12256161<br />ci_upper:  2.3277696<br />width: 0.5<br />month: 2020-04<br />estimate:  1.1026040<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  3.61157476<br />ci_upper: 27.0107158<br />width: 0.5<br />month: 2020-05<br />estimate: 15.3111453<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: 11.87500958<br />ci_upper: 43.2927255<br />width: 0.5<br />month: 2020-06<br />estimate: 27.5838675<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  6.41038366<br />ci_upper: 24.2566960<br />width: 0.5<br />month: 2020-07<br />estimate: 15.3335398<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  1.57969850<br />ci_upper: 11.6495166<br />width: 0.5<br />month: 2020-08<br />estimate:  6.6146076<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  0.82848316<br />ci_upper:  8.0549587<br />width: 0.5<br />month: 2020-09<br />estimate:  4.4417209<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  0.00000000<br />ci_upper:  0.0000000<br />width: 0.5<br />month: 2019-03<br />estimate:  0.0000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-04<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-05<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-06<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-07<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-08<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-09<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-10<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-11<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-12<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2020-01<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2020-02<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2020-03<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.0965460256172193,0.117951002400574,1.22516561347945,11.6995705325855,15.7088579376959,8.9231561842299,5.03490906753243,3.61323775137512,0,null,null,null,null,null,null,null,null,null,null,null,null],"arrayminus":[0.0965460256172193,0.117951002400574,1.22516561347945,11.6995705325855,15.7088579376959,8.9231561842299,5.03490906753243,3.61323775137512,0,null,null,null,null,null,null,null,null,null,null,null,null],"type":"data","width":0.594339622641511,"symmetric":false,"color":"rgba(0,191,196,1)"},"name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-3.11799179908857,45.5027596070347],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":30.8841843088418},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"Housing Security Benefit","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-3.11799179908857,45.5027596070347],"tickmode":"array","ticktext":["0","10","20","30","40"],"tickvals":[0,10,20,30,40],"categoryorder":"array","categoryarray":["0","10","20","30","40"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","showSendToCloud":false},"source":"A","attrs":{"441123445eb2":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"44115da50a34":{"x":{},"y":{},"colour":{},"shape":{}},"44117e410bf3":{"ymin":{},"ymax":{},"width":{},"x":{},"y":{},"colour":{},"shape":{}},"44116077bf46":{"yintercept":{}},"441155aebe24":{"xintercept":{}}},"cur_data":"441123445eb2","visdat":{"441123445eb2":["function (y) ","x"],"44115da50a34":["function (y) ","x"],"44117e410bf3":["function (y) ","x"],"44116077bf46":["function (y) ","x"],"441155aebe24":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<div id="housing-security-benefit居住確保給付金-with-covar" class="section level2" number="12.6">
<h2><span class="header-section-number">12.6</span> housing security benefit/居住確保給付金 with covar</h2>
<div class="sourceCode" id="cb113"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb113-1"><a href="#cb113-1" aria-hidden="true" tabindex="-1"></a><span class="co">#merge and label estimates data</span></span>
<span id="cb113-2"><a href="#cb113-2" aria-hidden="true" tabindex="-1"></a>estimates_jukyo_number_bind <span class="ot">&lt;-</span> dplyr<span class="sc">::</span><span class="fu">bind_rows</span>(estimates_jukyo_number_OLS_covar, </span>
<span id="cb113-3"><a href="#cb113-3" aria-hidden="true" tabindex="-1"></a>                                                estimates_jukyo_number_WLS_covar)</span>
<span id="cb113-4"><a href="#cb113-4" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb113-5"><a href="#cb113-5" aria-hidden="true" tabindex="-1"></a><span class="co">#change labels and reorder labels</span></span>
<span id="cb113-6"><a href="#cb113-6" aria-hidden="true" tabindex="-1"></a>estimates_jukyo_number_bind <span class="ot">&lt;-</span> <span class="fu">estimates_labeling_poverty</span>(estimates_jukyo_number_bind)</span>
<span id="cb113-7"><a href="#cb113-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb113-8"><a href="#cb113-8" aria-hidden="true" tabindex="-1"></a><span class="co">#graph</span></span>
<span id="cb113-9"><a href="#cb113-9" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_bind_covar <span class="ot">&lt;-</span> <span class="fu">event_study_graph_bind_legend</span>(<span class="at">data =</span> estimates_jukyo_number_bind, </span>
<span id="cb113-10"><a href="#cb113-10" aria-hidden="true" tabindex="-1"></a>                                             <span class="at">graph_title =</span> <span class="st">&quot;Housing Security Benefit, with covariates&quot;</span>) <span class="sc">+</span></span>
<span id="cb113-11"><a href="#cb113-11" aria-hidden="true" tabindex="-1"></a>  <span class="fu">theme</span>(<span class="at">legend.position =</span> <span class="st">&#39;none&#39;</span>)</span>
<span id="cb113-12"><a href="#cb113-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb113-13"><a href="#cb113-13" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_jukyo_number_bind_covar)</span></code></pre></div>
<div id="htmlwidget-6ee11bbdf36616e20971" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-6ee11bbdf36616e20971">{"x":{"data":[{"x":[0.875,1.875,15.875,16.875,17.875,18.875,19.875,20.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875],"y":[0.149600097718502,0.10070419081189,-1.01610930717232,-1.87874403736105,2.00334142488374,1.26887913636057,0.418930961039269,0.161034283165453,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["month: 2019-01<br />estimate:  0.1496001<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:  0.1007042<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate: -1.0161093<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: -1.8787440<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate:  2.0033414<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate:  1.2688791<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate:  0.4189310<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate:  0.1610343<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(248,118,109,1)","opacity":1,"size":11.3385826771654,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(248,118,109,1)"}},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,16.125,17.125,18.125,19.125,20.125,21.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125],"y":[0.117502480457485,0.107578801495557,-1.07163584195625,-5.27037877436258,-4.33719465732501,-1.1449910286866,-1.95842718198216,-1.1545667850312,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["month: 2019-01<br />estimate:  0.1175025<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  0.1075788<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate: -1.0716358<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: -5.2703788<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: -4.3371947<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: -1.1449910<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: -1.9584272<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: -1.1545668<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,191,196,1)","opacity":1,"size":11.3385826771654,"symbol":"triangle-up","line":{"width":1.88976377952756,"color":"rgba(0,191,196,1)"}},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875,15.875,16.875,17.875,18.875,19.875,20.875],"y":[0.149600097718502,0.10070419081189,0,null,null,null,null,null,null,null,null,null,null,null,null,-1.01610930717232,-1.87874403736105,2.00334142488374,1.26887913636057,0.418930961039269,0.161034283165453],"text":["month: 2019-01<br />estimate:  0.1496001<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:  0.1007042<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate: -1.0161093<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: -1.8787440<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate:  2.0033414<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate:  1.2688791<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate:  0.4189310<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate:  0.1610343<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(248,118,109,1)","dash":"solid"},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125,16.125,17.125,18.125,19.125,20.125,21.125],"y":[0.117502480457485,0.107578801495557,0,null,null,null,null,null,null,null,null,null,null,null,null,-1.07163584195625,-5.27037877436258,-4.33719465732501,-1.1449910286866,-1.95842718198216,-1.1545667850312],"text":["month: 2019-01<br />estimate:  0.1175025<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  0.1075788<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate: -1.0716358<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: -5.2703788<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: -4.3371947<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: -1.1449910<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: -1.9584272<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: -1.1545668<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,191,196,1)","dash":"solid"},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,15.875,16.875,17.875,18.875,19.875,20.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875],"y":[0.149600097718502,0.10070419081189,-1.01610930717232,-1.87874403736105,2.00334142488374,1.26887913636057,0.418930961039269,0.161034283165453,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["ci_lower:   0.024963087<br />ci_upper:  0.27423711<br />width: 0.5<br />month: 2019-01<br />estimate:  0.1496001<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.008721571<br />ci_upper:  0.21012995<br />width: 0.5<br />month: 2019-02<br />estimate:  0.1007042<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -3.122969355<br />ci_upper:  1.09075074<br />width: 0.5<br />month: 2020-04<br />estimate: -1.0161093<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -8.031481367<br />ci_upper:  4.27399329<br />width: 0.5<br />month: 2020-05<br />estimate: -1.8787440<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -2.402033083<br />ci_upper:  6.40871593<br />width: 0.5<br />month: 2020-06<br />estimate:  2.0033414<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -1.322937001<br />ci_upper:  3.86069527<br />width: 0.5<br />month: 2020-07<br />estimate:  1.2688791<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -1.029431959<br />ci_upper:  1.86729388<br />width: 0.5<br />month: 2020-08<br />estimate:  0.4189310<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.889668163<br />ci_upper:  1.21173673<br />width: 0.5<br />month: 2020-09<br />estimate:  0.1610343<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:   0.000000000<br />ci_upper:  0.00000000<br />width: 0.5<br />month: 2019-03<br />estimate:  0.0000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-04<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-05<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-06<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-07<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-08<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-09<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-10<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-11<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-12<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2020-01<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2020-02<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2020-03<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.124637010821942,0.10942576185584,2.10686004816804,6.15273732965119,4.40537450794817,2.59181613708276,1.44836291964736,1.05070244637596,0,null,null,null,null,null,null,null,null,null,null,null,null],"arrayminus":[0.124637010821942,0.10942576185584,2.10686004816804,6.15273732965119,4.40537450794817,2.59181613708276,1.44836291964736,1.05070244637596,0,null,null,null,null,null,null,null,null,null,null,null,null],"type":"data","width":0.594339622641509,"symmetric":false,"color":"rgba(248,118,109,1)"},"name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,16.125,17.125,18.125,19.125,20.125,21.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125],"y":[0.117502480457485,0.107578801495557,-1.07163584195625,-5.27037877436258,-4.33719465732501,-1.1449910286866,-1.95842718198216,-1.1545667850312,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["ci_lower:   0.013795413<br />ci_upper:  0.22120955<br />width: 0.5<br />month: 2019-01<br />estimate:  0.1175025<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.019120899<br />ci_upper:  0.23427850<br />width: 0.5<br />month: 2019-02<br />estimate:  0.1075788<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -2.426435061<br />ci_upper:  0.28316338<br />width: 0.5<br />month: 2020-04<br />estimate: -1.0716358<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -11.495999509<br />ci_upper:  0.95524196<br />width: 0.5<br />month: 2020-05<br />estimate: -5.2703788<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -8.953963653<br />ci_upper:  0.27957434<br />width: 0.5<br />month: 2020-06<br />estimate: -4.3371947<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -4.898360138<br />ci_upper:  2.60837808<br />width: 0.5<br />month: 2020-07<br />estimate: -1.1449910<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -3.614061690<br />ci_upper: -0.30279267<br />width: 0.5<br />month: 2020-08<br />estimate: -1.9584272<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -2.298949661<br />ci_upper: -0.01018391<br />width: 0.5<br />month: 2020-09<br />estimate: -1.1545668<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:   0.000000000<br />ci_upper:  0.00000000<br />width: 0.5<br />month: 2019-03<br />estimate:  0.0000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-04<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-05<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-06<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-07<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-08<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-09<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-10<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-11<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-12<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2020-01<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2020-02<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2020-03<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.103707067460696,0.126699700841116,1.35479921867115,6.22562073479571,4.61676899560999,3.75336910940808,1.65563450754365,1.14438287602938,0,null,null,null,null,null,null,null,null,null,null,null,null],"arrayminus":[0.103707067460696,0.126699700841116,1.35479921867115,6.22562073479571,4.61676899560999,3.75336910940808,1.65563450754365,1.14438287602938,0,null,null,null,null,null,null,null,null,null,null,null,null],"type":"data","width":0.594339622641511,"symmetric":false,"color":"rgba(0,191,196,1)"},"name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-12.3912352812578,7.30395170493142],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":38.854296388543},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"Housing Security Benefit, with covariates","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-12.3912352812578,7.30395170493142],"tickmode":"array","ticktext":["-10","-5","0","5"],"tickvals":[-10,-5,0,5],"categoryorder":"array","categoryarray":["-10","-5","0","5"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","showSendToCloud":false},"source":"A","attrs":{"4411106ea4c9":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"44115004908c":{"x":{},"y":{},"colour":{},"shape":{}},"44115bae005e":{"ymin":{},"ymax":{},"width":{},"x":{},"y":{},"colour":{},"shape":{}},"44117c9a4a57":{"yintercept":{}},"44117586d5a9":{"xintercept":{}}},"cur_data":"4411106ea4c9","visdat":{"4411106ea4c9":["function (y) ","x"],"44115004908c":["function (y) ","x"],"44115bae005e":["function (y) ","x"],"44117c9a4a57":["function (y) ","x"],"44117586d5a9":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<div id="ggplotly" class="section level2" number="12.7">
<h2><span class="header-section-number">12.7</span> GGplotly</h2>
<div class="sourceCode" id="cb114"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb114-1"><a href="#cb114-1" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_koguchi_number_bind)</span></code></pre></div>
<div id="htmlwidget-22caf54b4a632c8b8c1b" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-22caf54b4a632c8b8c1b">{"x":{"data":[{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.092257196683466,-0.0347731831097668,0.166705947758285,0.0940763173595052,-0.117986221119182,0.0212078291941502,0.114957801318699,0.111616698525424,0.0592589634828542,0.108766162091285,0.11177613396676,0.0652439512706202,23.829659020663,84.9720823732986,84.6303097800305,40.7364299525605,30.1625830272265,27.00948378072,0,null,null],"text":["month: 2019-01<br />estimate:  0.092257197<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate: -0.034773183<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.166705948<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:  0.094076317<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate: -0.117986221<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:  0.021207829<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:  0.114957801<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:  0.111616699<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:  0.059258963<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:  0.108766162<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:  0.111776134<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:  0.065243951<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate: 23.829659021<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: 84.972082373<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 84.630309780<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 40.736429953<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate: 30.162583027<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 27.009483781<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:  0.000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(248,118,109,1)","opacity":1,"size":11.3385826771654,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(248,118,109,1)"}},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.0573625251960301,0.0140757773702234,0.0118002713058374,0.038927570181194,-0.096881819426315,0.0714612162332458,0.059043744294744,0.107455287758807,0.0318676349441418,0.0933963352438028,0.0127163581335807,-0.00105177459732886,18.7233790500787,73.8398236797581,88.7678161647878,34.6888537893124,27.161723333362,21.8749531304157,0,null,null],"text":["month: 2019-01<br />estimate:  0.057362525<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  0.014075777<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  0.011800271<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:  0.038927570<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate: -0.096881819<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:  0.071461216<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:  0.059043744<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:  0.107455288<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:  0.031867635<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:  0.093396335<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:  0.012716358<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate: -0.001051775<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate: 18.723379050<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: 73.839823680<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 88.767816165<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 34.688853789<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 27.161723333<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 21.874953130<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:  0.000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,191,196,1)","opacity":1,"size":11.3385826771654,"symbol":"triangle-up","line":{"width":1.88976377952756,"color":"rgba(0,191,196,1)"}},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875,15.875,16.875,17.875,18.875,19.875,20.875],"y":[0.092257196683466,-0.0347731831097668,0.166705947758285,0.0940763173595052,-0.117986221119182,0.0212078291941502,0.114957801318699,0.111616698525424,0.0592589634828542,0.108766162091285,0.11177613396676,0.0652439512706202,0,null,null,23.829659020663,84.9720823732986,84.6303097800305,40.7364299525605,30.1625830272265,27.00948378072],"text":["month: 2019-01<br />estimate:  0.092257197<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate: -0.034773183<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.166705948<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:  0.094076317<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate: -0.117986221<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:  0.021207829<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:  0.114957801<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:  0.111616699<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:  0.059258963<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:  0.108766162<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:  0.111776134<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:  0.065243951<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:  0.000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate: 23.829659021<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: 84.972082373<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 84.630309780<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 40.736429953<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate: 30.162583027<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 27.009483781<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(248,118,109,1)","dash":"solid"},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125,16.125,17.125,18.125,19.125,20.125,21.125],"y":[0.0573625251960301,0.0140757773702234,0.0118002713058374,0.038927570181194,-0.096881819426315,0.0714612162332458,0.059043744294744,0.107455287758807,0.0318676349441418,0.0933963352438028,0.0127163581335807,-0.00105177459732886,0,null,null,18.7233790500787,73.8398236797581,88.7678161647878,34.6888537893124,27.161723333362,21.8749531304157],"text":["month: 2019-01<br />estimate:  0.057362525<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  0.014075777<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  0.011800271<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:  0.038927570<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate: -0.096881819<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:  0.071461216<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:  0.059043744<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:  0.107455288<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:  0.031867635<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:  0.093396335<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:  0.012716358<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate: -0.001051775<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:  0.000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate: 18.723379050<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: 73.839823680<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 88.767816165<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 34.688853789<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 27.161723333<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 21.874953130<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,191,196,1)","dash":"solid"},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.092257196683466,-0.0347731831097668,0.166705947758285,0.0940763173595052,-0.117986221119182,0.0212078291941502,0.114957801318699,0.111616698525424,0.0592589634828542,0.108766162091285,0.11177613396676,0.0652439512706202,23.829659020663,84.9720823732986,84.6303097800305,40.7364299525605,30.1625830272265,27.00948378072,0,null,null],"text":["ci_lower:  -0.137464533<br />ci_upper:   0.32197893<br />width: 0.5<br />month: 2019-01<br />estimate:  0.092257197<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.158098775<br />ci_upper:   0.08855241<br />width: 0.5<br />month: 2019-02<br />estimate: -0.034773183<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.044902758<br />ci_upper:   0.37831465<br />width: 0.5<br />month: 2019-03<br />estimate:  0.166705948<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.037865364<br />ci_upper:   0.22601800<br />width: 0.5<br />month: 2019-04<br />estimate:  0.094076317<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.250936978<br />ci_upper:   0.01496454<br />width: 0.5<br />month: 2019-05<br />estimate: -0.117986221<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.115458426<br />ci_upper:   0.15787408<br />width: 0.5<br />month: 2019-06<br />estimate:  0.021207829<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.010585336<br />ci_upper:   0.24050094<br />width: 0.5<br />month: 2019-07<br />estimate:  0.114957801<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.015689677<br />ci_upper:   0.23892307<br />width: 0.5<br />month: 2019-08<br />estimate:  0.111616699<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.062419461<br />ci_upper:   0.18093739<br />width: 0.5<br />month: 2019-09<br />estimate:  0.059258963<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.019068354<br />ci_upper:   0.23660068<br />width: 0.5<br />month: 2019-10<br />estimate:  0.108766162<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.075099424<br />ci_upper:   0.29865169<br />width: 0.5<br />month: 2019-11<br />estimate:  0.111776134<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.052519078<br />ci_upper:   0.18300698<br />width: 0.5<br />month: 2019-12<br />estimate:  0.065243951<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -16.009179215<br />ci_upper:  63.66849726<br />width: 0.5<br />month: 2020-04<br />estimate: 23.829659021<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -1.356050262<br />ci_upper: 171.30021501<br />width: 0.5<br />month: 2020-05<br />estimate: 84.972082373<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  15.806870549<br />ci_upper: 153.45374901<br />width: 0.5<br />month: 2020-06<br />estimate: 84.630309780<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -8.212807216<br />ci_upper:  89.68566712<br />width: 0.5<br />month: 2020-07<br />estimate: 40.736429953<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -8.174796698<br />ci_upper:  68.49996275<br />width: 0.5<br />month: 2020-08<br />estimate: 30.162583027<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -8.871448993<br />ci_upper:  62.89041655<br />width: 0.5<br />month: 2020-09<br />estimate: 27.009483781<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:   0.000000000<br />ci_upper:   0.00000000<br />width: 0.5<br />month: 2020-01<br />estimate:  0.000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5<br />month: 2020-02<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5<br />month: 2020-03<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.22972172994665,0.123325592388116,0.21160870581133,0.131941681160815,0.132950756794765,0.136666255126651,0.12554313769281,0.127306375228208,0.121678424223964,0.12783451601583,0.186875558399427,0.117763029053565,39.8388382361061,86.3281326350372,68.8234392310655,48.9492371686091,38.3373797255679,35.8809327738469,0,null,null],"arrayminus":[0.22972172994665,0.123325592388116,0.21160870581133,0.131941681160815,0.132950756794765,0.136666255126651,0.12554313769281,0.127306375228208,0.121678424223964,0.12783451601583,0.186875558399427,0.117763029053565,39.8388382361061,86.3281326350372,68.8234392310655,48.9492371686091,38.3373797255679,35.8809327738469,0,null,null],"type":"data","width":0.594339622641509,"symmetric":false,"color":"rgba(248,118,109,1)"},"name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.0573625251960301,0.0140757773702234,0.0118002713058374,0.038927570181194,-0.096881819426315,0.0714612162332458,0.059043744294744,0.107455287758807,0.0318676349441418,0.0933963352438028,0.0127163581335807,-0.00105177459732886,18.7233790500787,73.8398236797581,88.7678161647878,34.6888537893124,27.161723333362,21.8749531304157,0,null,null],"text":["ci_lower:  -0.085657233<br />ci_upper:   0.20038228<br />width: 0.5<br />month: 2019-01<br />estimate:  0.057362525<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.093642004<br />ci_upper:   0.12179356<br />width: 0.5<br />month: 2019-02<br />estimate:  0.014075777<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.170029411<br />ci_upper:   0.19362995<br />width: 0.5<br />month: 2019-03<br />estimate:  0.011800271<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.076288083<br />ci_upper:   0.15414322<br />width: 0.5<br />month: 2019-04<br />estimate:  0.038927570<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.206759069<br />ci_upper:   0.01299543<br />width: 0.5<br />month: 2019-05<br />estimate: -0.096881819<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.016013240<br />ci_upper:   0.15893567<br />width: 0.5<br />month: 2019-06<br />estimate:  0.071461216<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.104154889<br />ci_upper:   0.22224238<br />width: 0.5<br />month: 2019-07<br />estimate:  0.059043744<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.005774916<br />ci_upper:   0.22068549<br />width: 0.5<br />month: 2019-08<br />estimate:  0.107455288<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.108126454<br />ci_upper:   0.17186172<br />width: 0.5<br />month: 2019-09<br />estimate:  0.031867635<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.012713846<br />ci_upper:   0.19950652<br />width: 0.5<br />month: 2019-10<br />estimate:  0.093396335<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.144746677<br />ci_upper:   0.17017939<br />width: 0.5<br />month: 2019-11<br />estimate:  0.012716358<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.142462777<br />ci_upper:   0.14035923<br />width: 0.5<br />month: 2019-12<br />estimate: -0.001051775<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -18.123275286<br />ci_upper:  55.57003339<br />width: 0.5<br />month: 2020-04<br />estimate: 18.723379050<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:   1.988352566<br />ci_upper: 145.69129479<br />width: 0.5<br />month: 2020-05<br />estimate: 73.839823680<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  33.838122012<br />ci_upper: 143.69751032<br />width: 0.5<br />month: 2020-06<br />estimate: 88.767816165<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.938911033<br />ci_upper:  70.31661861<br />width: 0.5<br />month: 2020-07<br />estimate: 34.688853789<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:   2.859342823<br />ci_upper:  51.46410384<br />width: 0.5<br />month: 2020-08<br />estimate: 27.161723333<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -3.878792070<br />ci_upper:  47.62869833<br />width: 0.5<br />month: 2020-09<br />estimate: 21.874953130<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:   0.000000000<br />ci_upper:   0.00000000<br />width: 0.5<br />month: 2020-01<br />estimate:  0.000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5<br />month: 2020-02<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5<br />month: 2020-03<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.143019757987242,0.107717781764957,0.181829682258756,0.115215653270855,0.109877249119469,0.0874744557407098,0.163198633234481,0.113230203406324,0.139994088751044,0.106110181560812,0.157463035015633,0.141411002900065,36.8466543361544,71.8514711137661,54.9296941530923,35.6277648219561,24.3023805106647,25.7537452008236,0,null,null],"arrayminus":[0.143019757987242,0.107717781764957,0.181829682258756,0.115215653270855,0.109877249119469,0.0874744557407098,0.163198633234481,0.113230203406324,0.139994088751044,0.106110181560812,0.157463035015633,0.141411002900065,36.8466543361544,71.8514711137661,54.9296941530923,35.6277648219561,24.3023805106647,25.7537452008236,0,null,null],"type":"data","width":0.594339622641511,"symmetric":false,"color":"rgba(0,191,196,1)"},"name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-27.5944498007962,180.771389523056],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":38.854296388543},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"Emergency Small Amount Funds","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-27.5944498007962,180.771389523056],"tickmode":"array","ticktext":["0","50","100","150"],"tickvals":[0,50,100,150],"categoryorder":"array","categoryarray":["0","50","100","150"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","showSendToCloud":false},"source":"A","attrs":{"4411f40d2a3":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"441168c4d327":{"x":{},"y":{},"colour":{},"shape":{}},"44115202db2d":{"ymin":{},"ymax":{},"width":{},"x":{},"y":{},"colour":{},"shape":{}},"44113983916b":{"yintercept":{}},"44116cc0254c":{"xintercept":{}}},"cur_data":"4411f40d2a3","visdat":{"4411f40d2a3":["function (y) ","x"],"441168c4d327":["function (y) ","x"],"44115202db2d":["function (y) ","x"],"44113983916b":["function (y) ","x"],"44116cc0254c":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
<div class="sourceCode" id="cb115"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb115-1"><a href="#cb115-1" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_koguchi_number_bind_covar)</span></code></pre></div>
<div id="htmlwidget-04172828481d5b6a80b8" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-04172828481d5b6a80b8">{"x":{"data":[{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.0922571966834478,-0.0347731831097328,0.166705947758324,0.0940763173595244,-0.117986221119195,0.0212078291941378,0.11495780131871,0.111616698525384,0.0592589634828926,0.10876616209131,0.111776133966788,0.0652439512706269,-8.50954369664165,34.0742608714376,30.4584936490019,10.2664588509333,9.4034686896734,14.0792382558993,0,null,null],"text":["month: 2019-01<br />estimate:  0.092257197<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate: -0.034773183<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.166705948<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:  0.094076317<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate: -0.117986221<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:  0.021207829<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:  0.114957801<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:  0.111616699<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:  0.059258963<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:  0.108766162<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:  0.111776134<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:  0.065243951<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate: -8.509543697<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: 34.074260871<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 30.458493649<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 10.266458851<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate:  9.403468690<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 14.079238256<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:  0.000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(248,118,109,1)","opacity":1,"size":11.3385826771654,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(248,118,109,1)"}},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.0358486677023289,-0.00743808012342677,-0.00971358618781997,0.0174137126874584,-0.118395676919997,0.0499473587395947,0.0375298868010878,0.0859414302651481,0.0103537774504467,0.0718824777501185,-0.00879749936009087,-0.0225656320909287,4.94073392099602,60.0292126542308,49.2299080086332,13.6089688309212,20.3255093274692,36.598359837827,0,null,null],"text":["month: 2019-01<br />estimate:  0.035848668<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate: -0.007438080<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate: -0.009713586<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:  0.017413713<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate: -0.118395677<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:  0.049947359<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:  0.037529887<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:  0.085941430<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:  0.010353777<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:  0.071882478<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate: -0.008797499<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate: -0.022565632<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate:  4.940733921<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: 60.029212654<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 49.229908009<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 13.608968831<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 20.325509327<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 36.598359838<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:  0.000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,191,196,1)","opacity":1,"size":11.3385826771654,"symbol":"triangle-up","line":{"width":1.88976377952756,"color":"rgba(0,191,196,1)"}},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875,15.875,16.875,17.875,18.875,19.875,20.875],"y":[0.0922571966834478,-0.0347731831097328,0.166705947758324,0.0940763173595244,-0.117986221119195,0.0212078291941378,0.11495780131871,0.111616698525384,0.0592589634828926,0.10876616209131,0.111776133966788,0.0652439512706269,0,null,null,-8.50954369664165,34.0742608714376,30.4584936490019,10.2664588509333,9.4034686896734,14.0792382558993],"text":["month: 2019-01<br />estimate:  0.092257197<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate: -0.034773183<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.166705948<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:  0.094076317<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate: -0.117986221<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:  0.021207829<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:  0.114957801<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:  0.111616699<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:  0.059258963<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:  0.108766162<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:  0.111776134<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:  0.065243951<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:  0.000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate: -8.509543697<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: 34.074260871<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 30.458493649<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 10.266458851<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate:  9.403468690<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 14.079238256<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(248,118,109,1)","dash":"solid"},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125,16.125,17.125,18.125,19.125,20.125,21.125],"y":[0.0358486677023289,-0.00743808012342677,-0.00971358618781997,0.0174137126874584,-0.118395676919997,0.0499473587395947,0.0375298868010878,0.0859414302651481,0.0103537774504467,0.0718824777501185,-0.00879749936009087,-0.0225656320909287,0,null,null,4.94073392099602,60.0292126542308,49.2299080086332,13.6089688309212,20.3255093274692,36.598359837827],"text":["month: 2019-01<br />estimate:  0.035848668<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate: -0.007438080<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate: -0.009713586<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:  0.017413713<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate: -0.118395677<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:  0.049947359<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:  0.037529887<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:  0.085941430<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:  0.010353777<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:  0.071882478<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate: -0.008797499<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate: -0.022565632<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:  0.000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate:  4.940733921<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: 60.029212654<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 49.229908009<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 13.608968831<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 20.325509327<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 36.598359838<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,191,196,1)","dash":"solid"},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.0922571966834478,-0.0347731831097328,0.166705947758324,0.0940763173595244,-0.117986221119195,0.0212078291941378,0.11495780131871,0.111616698525384,0.0592589634828926,0.10876616209131,0.111776133966788,0.0652439512706269,-8.50954369664165,34.0742608714376,30.4584936490019,10.2664588509333,9.4034686896734,14.0792382558993,0,null,null],"text":["ci_lower:  -0.14458937<br />ci_upper:   0.32910377<br />width: 0.5<br />month: 2019-01<br />estimate:  0.092257197<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.16192373<br />ci_upper:   0.09237736<br />width: 0.5<br />month: 2019-02<br />estimate: -0.034773183<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.05146582<br />ci_upper:   0.38487772<br />width: 0.5<br />month: 2019-03<br />estimate:  0.166705948<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.04195755<br />ci_upper:   0.23011018<br />width: 0.5<br />month: 2019-04<br />estimate:  0.094076317<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.25506046<br />ci_upper:   0.01908802<br />width: 0.5<br />month: 2019-05<br />estimate: -0.117986221<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.11969714<br />ci_upper:   0.16211280<br />width: 0.5<br />month: 2019-06<br />estimate:  0.021207829<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.01447907<br />ci_upper:   0.24439467<br />width: 0.5<br />month: 2019-07<br />estimate:  0.114957801<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.01963810<br />ci_upper:   0.24287149<br />width: 0.5<br />month: 2019-08<br />estimate:  0.111616699<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.06619333<br />ci_upper:   0.18471126<br />width: 0.5<br />month: 2019-09<br />estimate:  0.059258963<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.02303315<br />ci_upper:   0.24056548<br />width: 0.5<br />month: 2019-10<br />estimate:  0.108766162<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.08089539<br />ci_upper:   0.30444766<br />width: 0.5<br />month: 2019-11<br />estimate:  0.111776134<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.05617151<br />ci_upper:   0.18665941<br />width: 0.5<br />month: 2019-12<br />estimate:  0.065243951<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -51.23178527<br />ci_upper:  34.21269788<br />width: 0.5<br />month: 2020-04<br />estimate: -8.509543697<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -9.35349085<br />ci_upper:  77.50201260<br />width: 0.5<br />month: 2020-05<br />estimate: 34.074260871<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -13.17034015<br />ci_upper:  74.08732745<br />width: 0.5<br />month: 2020-06<br />estimate: 30.458493649<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -22.68354594<br />ci_upper:  43.21646364<br />width: 0.5<br />month: 2020-07<br />estimate: 10.266458851<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -18.57262185<br />ci_upper:  37.37955923<br />width: 0.5<br />month: 2020-08<br />estimate:  9.403468690<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -13.73633346<br />ci_upper:  41.89480997<br />width: 0.5<br />month: 2020-09<br />estimate: 14.079238256<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:   0.00000000<br />ci_upper:   0.00000000<br />width: 0.5<br />month: 2020-01<br />estimate:  0.000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:           NA<br />ci_upper:           NA<br />width: 0.5<br />month: 2020-02<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:           NA<br />ci_upper:           NA<br />width: 0.5<br />month: 2020-03<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.23684657121491,0.127150547353022,0.218171769915568,0.136033864946745,0.137074237151094,0.140904971995084,0.129436870024857,0.131254794560277,0.125452292088663,0.131799315666103,0.192671521599543,0.121415460598174,42.7222415718807,43.4277517238546,43.6288338021081,32.9500047860275,27.9760905380207,27.8155717142609,0,null,null],"arrayminus":[0.23684657121491,0.127150547353022,0.218171769915568,0.136033864946745,0.137074237151094,0.140904971995084,0.129436870024857,0.131254794560277,0.125452292088663,0.131799315666103,0.192671521599543,0.121415460598174,42.7222415718807,43.4277517238546,43.6288338021081,32.9500047860275,27.9760905380207,27.8155717142609,0,null,null],"type":"data","width":0.594339622641509,"symmetric":false,"color":"rgba(248,118,109,1)"},"name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.0358486677023289,-0.00743808012342677,-0.00971358618781997,0.0174137126874584,-0.118395676919997,0.0499473587395947,0.0375298868010878,0.0859414302651481,0.0103537774504467,0.0718824777501185,-0.00879749936009087,-0.0225656320909287,4.94073392099602,60.0292126542308,49.2299080086332,13.6089688309212,20.3255093274692,36.598359837827,0,null,null],"text":["ci_lower:  -0.09560202<br />ci_upper:   0.16729936<br />width: 0.5<br />month: 2019-01<br />estimate:  0.035848668<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.10729379<br />ci_upper:   0.09241763<br />width: 0.5<br />month: 2019-02<br />estimate: -0.007438080<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.17171422<br />ci_upper:   0.15228705<br />width: 0.5<br />month: 2019-03<br />estimate: -0.009713586<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.08081772<br />ci_upper:   0.11564514<br />width: 0.5<br />month: 2019-04<br />estimate:  0.017413713<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.22068111<br />ci_upper:  -0.01611024<br />width: 0.5<br />month: 2019-05<br />estimate: -0.118395677<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.03870325<br />ci_upper:   0.13859797<br />width: 0.5<br />month: 2019-06<br />estimate:  0.049947359<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.11239736<br />ci_upper:   0.18745713<br />width: 0.5<br />month: 2019-07<br />estimate:  0.037529887<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.01986176<br />ci_upper:   0.19174462<br />width: 0.5<br />month: 2019-08<br />estimate:  0.085941430<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.10656914<br />ci_upper:   0.12727669<br />width: 0.5<br />month: 2019-09<br />estimate:  0.010353777<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.02605927<br />ci_upper:   0.16982422<br />width: 0.5<br />month: 2019-10<br />estimate:  0.071882478<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.15594635<br />ci_upper:   0.13835135<br />width: 0.5<br />month: 2019-11<br />estimate: -0.008797499<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.15068488<br />ci_upper:   0.10555361<br />width: 0.5<br />month: 2019-12<br />estimate: -0.022565632<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -40.67751004<br />ci_upper:  50.55897788<br />width: 0.5<br />month: 2020-04<br />estimate:  4.940733921<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -24.85946779<br />ci_upper: 144.91789310<br />width: 0.5<br />month: 2020-05<br />estimate: 60.029212654<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -38.22083531<br />ci_upper: 136.68065133<br />width: 0.5<br />month: 2020-06<br />estimate: 49.229908009<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -33.52127287<br />ci_upper:  60.73921053<br />width: 0.5<br />month: 2020-07<br />estimate: 13.608968831<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -13.64422105<br />ci_upper:  54.29523970<br />width: 0.5<br />month: 2020-08<br />estimate: 20.325509327<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -4.29867321<br />ci_upper:  77.49539289<br />width: 0.5<br />month: 2020-09<br />estimate: 36.598359838<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:   0.00000000<br />ci_upper:   0.00000000<br />width: 0.5<br />month: 2020-01<br />estimate:  0.000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:           NA<br />ci_upper:           NA<br />width: 0.5<br />month: 2020-02<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:           NA<br />ci_upper:           NA<br />width: 0.5<br />month: 2020-03<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.131450691472918,0.0998557118701538,0.1620006358316,0.0982314277589815,0.10228543403959,0.0886506077578202,0.149927241884912,0.105803190869054,0.116922915332016,0.0979417428413504,0.147148847833049,0.128119245450327,45.6182439600609,84.8886804487866,87.4507433225061,47.1302416960222,33.9697303758902,40.8970330480158,0,null,null],"arrayminus":[0.131450691472918,0.0998557118701538,0.1620006358316,0.0982314277589815,0.10228543403959,0.0886506077578202,0.149927241884912,0.105803190869054,0.116922915332016,0.0979417428413504,0.147148847833049,0.128119245450327,45.6182439600609,84.8886804487866,87.4507433225061,47.1302416960222,33.9697303758902,40.8970330480158,0,null,null],"type":"data","width":0.594339622641511,"symmetric":false,"color":"rgba(0,191,196,1)"},"name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-61.0392691870993,154.725377021594],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":38.854296388543},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"Emergency Small Amount Funds, with covariates","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-61.0392691870993,154.725377021594],"tickmode":"array","ticktext":["-50","0","50","100","150"],"tickvals":[-50,-7.105427357601e-15,50,100,150],"categoryorder":"array","categoryarray":["-50","0","50","100","150"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","showSendToCloud":false},"source":"A","attrs":{"44115e695abd":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"441156c45eb7":{"x":{},"y":{},"colour":{},"shape":{}},"441176266ce1":{"ymin":{},"ymax":{},"width":{},"x":{},"y":{},"colour":{},"shape":{}},"441154b66460":{"yintercept":{}},"441112780613":{"xintercept":{}}},"cur_data":"44115e695abd","visdat":{"44115e695abd":["function (y) ","x"],"441156c45eb7":["function (y) ","x"],"441176266ce1":["function (y) ","x"],"441154b66460":["function (y) ","x"],"441112780613":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
<div class="sourceCode" id="cb116"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb116-1"><a href="#cb116-1" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_sogo_number_bind)</span></code></pre></div>
<div id="htmlwidget-1455ec7529ddf90b0b64" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-1455ec7529ddf90b0b64">{"x":{"data":[{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.0416715176605393,0.0410710457383416,0.0318999052788485,0.0350657191860151,0.0094011080815477,0.0261495794728219,0.0585241183986227,0.0400702167217162,-0.00105981379815034,0.0122050185190616,0.0320166422133141,0.031507981994821,0.727152011419804,17.5221730562198,66.287721546475,81.837385886163,51.9248768309216,44.4212319510478,0,null,null],"text":["month: 2019-01<br />estimate:  0.0416715177<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:  0.0410710457<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.0318999053<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:  0.0350657192<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:  0.0094011081<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:  0.0261495795<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:  0.0585241184<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:  0.0400702167<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate: -0.0010598138<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:  0.0122050185<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:  0.0320166422<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:  0.0315079820<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate:  0.7271520114<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: 17.5221730562<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 66.2877215465<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 81.8373858862<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate: 51.9248768309<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 44.4212319510<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:  0.0000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(248,118,109,1)","opacity":1,"size":11.3385826771654,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(248,118,109,1)"}},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.0337478619793714,0.0180430578804831,0.0288330323734627,0.0238445111000303,0.000125788913230451,0.0150908599140323,0.0284155920051958,0.0142093333254465,0.00276603369118078,0.00588668923971625,0.0194310916916791,0.0146625138217047,-0.394628974941462,9.878505469004,54.386851254724,82.4444344684692,52.0641278026676,43.0709713928697,0,null,null],"text":["month: 2019-01<br />estimate:  0.0337478620<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  0.0180430579<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  0.0288330324<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:  0.0238445111<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:  0.0001257889<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:  0.0150908599<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:  0.0284155920<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:  0.0142093333<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:  0.0027660337<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:  0.0058866892<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:  0.0194310917<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:  0.0146625138<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate: -0.3946289749<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate:  9.8785054690<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 54.3868512547<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 82.4444344685<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 52.0641278027<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 43.0709713929<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:  0.0000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,191,196,1)","opacity":1,"size":11.3385826771654,"symbol":"triangle-up","line":{"width":1.88976377952756,"color":"rgba(0,191,196,1)"}},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875,15.875,16.875,17.875,18.875,19.875,20.875],"y":[0.0416715176605393,0.0410710457383416,0.0318999052788485,0.0350657191860151,0.0094011080815477,0.0261495794728219,0.0585241183986227,0.0400702167217162,-0.00105981379815034,0.0122050185190616,0.0320166422133141,0.031507981994821,0,null,null,0.727152011419804,17.5221730562198,66.287721546475,81.837385886163,51.9248768309216,44.4212319510478],"text":["month: 2019-01<br />estimate:  0.0416715177<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:  0.0410710457<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.0318999053<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:  0.0350657192<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:  0.0094011081<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:  0.0261495795<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:  0.0585241184<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:  0.0400702167<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate: -0.0010598138<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:  0.0122050185<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:  0.0320166422<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:  0.0315079820<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:  0.0000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate:  0.7271520114<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: 17.5221730562<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 66.2877215465<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 81.8373858862<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate: 51.9248768309<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 44.4212319510<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(248,118,109,1)","dash":"solid"},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125,16.125,17.125,18.125,19.125,20.125,21.125],"y":[0.0337478619793714,0.0180430578804831,0.0288330323734627,0.0238445111000303,0.000125788913230451,0.0150908599140323,0.0284155920051958,0.0142093333254465,0.00276603369118078,0.00588668923971625,0.0194310916916791,0.0146625138217047,0,null,null,-0.394628974941462,9.878505469004,54.386851254724,82.4444344684692,52.0641278026676,43.0709713928697],"text":["month: 2019-01<br />estimate:  0.0337478620<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  0.0180430579<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  0.0288330324<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:  0.0238445111<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:  0.0001257889<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:  0.0150908599<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:  0.0284155920<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:  0.0142093333<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:  0.0027660337<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:  0.0058866892<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:  0.0194310917<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:  0.0146625138<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:  0.0000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate: -0.3946289749<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate:  9.8785054690<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 54.3868512547<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 82.4444344685<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 52.0641278027<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 43.0709713929<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,191,196,1)","dash":"solid"},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.0416715176605393,0.0410710457383416,0.0318999052788485,0.0350657191860151,0.0094011080815477,0.0261495794728219,0.0585241183986227,0.0400702167217162,-0.00105981379815034,0.0122050185190616,0.0320166422133141,0.031507981994821,0.727152011419804,17.5221730562198,66.287721546475,81.837385886163,51.9248768309216,44.4212319510478,0,null,null],"text":["ci_lower:  7.048127e-03<br />ci_upper:   0.07629491<br />width: 0.5<br />month: 2019-01<br />estimate:  0.0416715177<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -7.526299e-04<br />ci_upper:   0.08289472<br />width: 0.5<br />month: 2019-02<br />estimate:  0.0410710457<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -5.429199e-03<br />ci_upper:   0.06922901<br />width: 0.5<br />month: 2019-03<br />estimate:  0.0318999053<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -1.072452e-02<br />ci_upper:   0.08085596<br />width: 0.5<br />month: 2019-04<br />estimate:  0.0350657192<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -2.738253e-02<br />ci_upper:   0.04618474<br />width: 0.5<br />month: 2019-05<br />estimate:  0.0094011081<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -1.198881e-02<br />ci_upper:   0.06428797<br />width: 0.5<br />month: 2019-06<br />estimate:  0.0261495795<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -6.411254e-03<br />ci_upper:   0.12345949<br />width: 0.5<br />month: 2019-07<br />estimate:  0.0585241184<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -2.731734e-02<br />ci_upper:   0.10745777<br />width: 0.5<br />month: 2019-08<br />estimate:  0.0400702167<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -2.854448e-02<br />ci_upper:   0.02642486<br />width: 0.5<br />month: 2019-09<br />estimate: -0.0010598138<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -2.438120e-02<br />ci_upper:   0.04879124<br />width: 0.5<br />month: 2019-10<br />estimate:  0.0122050185<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -8.042982e-03<br />ci_upper:   0.07207627<br />width: 0.5<br />month: 2019-11<br />estimate:  0.0320166422<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -1.126750e-02<br />ci_upper:   0.07428346<br />width: 0.5<br />month: 2019-12<br />estimate:  0.0315079820<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -3.706929e+00<br />ci_upper:   5.16123346<br />width: 0.5<br />month: 2020-04<br />estimate:  0.7271520114<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  1.248381e+00<br />ci_upper:  33.79596534<br />width: 0.5<br />month: 2020-05<br />estimate: 17.5221730562<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  2.172001e+01<br />ci_upper: 110.85543663<br />width: 0.5<br />month: 2020-06<br />estimate: 66.2877215465<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  1.694101e+01<br />ci_upper: 146.73375761<br />width: 0.5<br />month: 2020-07<br />estimate: 81.8373858862<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  7.283015e+00<br />ci_upper:  96.56673898<br />width: 0.5<br />month: 2020-08<br />estimate: 51.9248768309<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -1.798163e+00<br />ci_upper:  90.64062720<br />width: 0.5<br />month: 2020-09<br />estimate: 44.4212319510<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  0.000000e+00<br />ci_upper:   0.00000000<br />width: 0.5<br />month: 2020-01<br />estimate:  0.0000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5<br />month: 2020-02<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5<br />month: 2020-03<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.0346233902689864,0.0418236756166823,0.0373291047054165,0.0457902408415814,0.0367836368746917,0.0381383916078339,0.0649353727878994,0.0673875538402699,0.0274846697955945,0.0365862182879935,0.0400596245714787,0.0427754784196691,4.43408145094527,16.2737922844276,44.5677150796112,64.8963717258514,44.6418621519618,46.2193952521172,0,null,null],"arrayminus":[0.0346233902689864,0.0418236756166824,0.0373291047054165,0.0457902408415814,0.0367836368746917,0.0381383916078339,0.0649353727878994,0.0673875538402699,0.0274846697955945,0.0365862182879935,0.0400596245714787,0.042775478419669,4.43408145094527,16.2737922844276,44.5677150796112,64.8963717258514,44.6418621519618,46.2193952521172,0,null,null],"type":"data","width":0.594339622641509,"symmetric":false,"color":"rgba(248,118,109,1)"},"name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.0337478619793714,0.0180430578804831,0.0288330323734627,0.0238445111000303,0.000125788913230451,0.0150908599140323,0.0284155920051958,0.0142093333254465,0.00276603369118078,0.00588668923971625,0.0194310916916791,0.0146625138217047,-0.394628974941462,9.878505469004,54.386851254724,82.4444344684692,52.0641278026676,43.0709713928697,0,null,null],"text":["ci_lower: -1.534466e-02<br />ci_upper:   0.08284039<br />width: 0.5<br />month: 2019-01<br />estimate:  0.0337478620<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -3.691263e-02<br />ci_upper:   0.07299875<br />width: 0.5<br />month: 2019-02<br />estimate:  0.0180430579<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -2.283888e-02<br />ci_upper:   0.08050495<br />width: 0.5<br />month: 2019-03<br />estimate:  0.0288330324<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -2.953254e-02<br />ci_upper:   0.07722156<br />width: 0.5<br />month: 2019-04<br />estimate:  0.0238445111<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -5.281445e-02<br />ci_upper:   0.05306603<br />width: 0.5<br />month: 2019-05<br />estimate:  0.0001257889<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -3.602751e-02<br />ci_upper:   0.06620923<br />width: 0.5<br />month: 2019-06<br />estimate:  0.0150908599<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -2.112183e-02<br />ci_upper:   0.07795301<br />width: 0.5<br />month: 2019-07<br />estimate:  0.0284155920<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -5.184697e-02<br />ci_upper:   0.08026564<br />width: 0.5<br />month: 2019-08<br />estimate:  0.0142093333<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -4.389515e-02<br />ci_upper:   0.04942722<br />width: 0.5<br />month: 2019-09<br />estimate:  0.0027660337<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -4.089130e-02<br />ci_upper:   0.05266468<br />width: 0.5<br />month: 2019-10<br />estimate:  0.0058866892<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -3.420547e-02<br />ci_upper:   0.07306766<br />width: 0.5<br />month: 2019-11<br />estimate:  0.0194310917<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -3.844828e-02<br />ci_upper:   0.06777331<br />width: 0.5<br />month: 2019-12<br />estimate:  0.0146625138<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -2.978399e+00<br />ci_upper:   2.18914125<br />width: 0.5<br />month: 2020-04<br />estimate: -0.3946289749<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -1.067610e+01<br />ci_upper:  30.43311532<br />width: 0.5<br />month: 2020-05<br />estimate:  9.8785054690<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  4.138092e+00<br />ci_upper: 104.63561012<br />width: 0.5<br />month: 2020-06<br />estimate: 54.3868512547<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  2.908439e+01<br />ci_upper: 135.80447771<br />width: 0.5<br />month: 2020-07<br />estimate: 82.4444344685<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  2.367411e+01<br />ci_upper:  80.45414675<br />width: 0.5<br />month: 2020-08<br />estimate: 52.0641278027<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  3.421720e+00<br />ci_upper:  82.72022279<br />width: 0.5<br />month: 2020-09<br />estimate: 43.0709713929<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  0.000000e+00<br />ci_upper:   0.00000000<br />width: 0.5<br />month: 2020-01<br />estimate:  0.0000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5<br />month: 2020-02<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5<br />month: 2020-03<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.0490925261144702,0.0549556884954669,0.0516719163798192,0.0533770484481773,0.0529402368292525,0.0511183686062427,0.0495374192803846,0.0660563051478514,0.0466611861987706,0.0467779920521257,0.0536365635692878,0.0531107975025588,2.58377022802406,20.5546098506973,50.2487588694128,53.3600432424928,28.3900189495909,39.6492513941364,0,null,null],"arrayminus":[0.0490925261144702,0.054955688495467,0.0516719163798192,0.0533770484481773,0.0529402368292525,0.0511183686062427,0.0495374192803846,0.0660563051478514,0.0466611861987706,0.0467779920521257,0.0536365635692878,0.0531107975025588,2.58377022802406,20.5546098506973,50.2487588694128,53.3600432424928,28.3900189495909,39.6492513941364,0,null,null],"type":"data","width":0.594339622641511,"symmetric":false,"color":"rgba(0,191,196,1)"},"name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-18.5465974813787,154.6042507117],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":38.854296388543},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"General Support Funds","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-18.5465974813787,154.6042507117],"tickmode":"array","ticktext":["0","50","100","150"],"tickvals":[0,50,100,150],"categoryorder":"array","categoryarray":["0","50","100","150"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","showSendToCloud":false},"source":"A","attrs":{"441139e1179d":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"441168d5621a":{"x":{},"y":{},"colour":{},"shape":{}},"4411111bcebb":{"ymin":{},"ymax":{},"width":{},"x":{},"y":{},"colour":{},"shape":{}},"441138a15fc3":{"yintercept":{}},"44116a961840":{"xintercept":{}}},"cur_data":"441139e1179d","visdat":{"441139e1179d":["function (y) ","x"],"441168d5621a":["function (y) ","x"],"4411111bcebb":["function (y) ","x"],"441138a15fc3":["function (y) ","x"],"44116a961840":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
<div class="sourceCode" id="cb117"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb117-1"><a href="#cb117-1" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_sogo_number_bind_covar)</span></code></pre></div>
<div id="htmlwidget-b56eb3c7b918f82fe0c7" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-b56eb3c7b918f82fe0c7">{"x":{"data":[{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.0416715176605637,0.0410710457383193,0.031899905278857,0.035065719186029,0.00940110808150884,0.0261495794727896,0.0585241183986218,0.0400702167216797,-0.00105981379813087,0.0122050185190664,0.0320166422133585,0.0315079819948257,0.847203322824888,9.00404567178854,46.1592759723456,53.2351513480868,26.5073236452483,20.5684236119977,0,null,null],"text":["month: 2019-01<br />estimate:  0.0416715177<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:  0.0410710457<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.0318999053<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:  0.0350657192<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:  0.0094011081<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:  0.0261495795<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:  0.0585241184<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:  0.0400702167<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate: -0.0010598138<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:  0.0122050185<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:  0.0320166422<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:  0.0315079820<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate:  0.8472033228<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate:  9.0040456718<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 46.1592759723<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 53.2351513481<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate: 26.5073236452<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 20.5684236120<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:  0.0000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(248,118,109,1)","opacity":1,"size":11.3385826771654,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(248,118,109,1)"}},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.0104766113976507,-0.00522819270122313,0.00556178179175872,0.000573260518239497,-0.0231454616685285,-0.00818039066761939,0.00514434142348301,-0.00906191725623989,-0.0205052168905478,-0.017384561342032,-0.00384015889004329,-0.00860873675993934,0.00207081609250334,9.23116054114745,62.3372147650886,87.7762648187545,35.8632919766309,26.9889397662744,0,null,null],"text":["month: 2019-01<br />estimate:  0.0104766114<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate: -0.0052281927<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  0.0055617818<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:  0.0005732605<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate: -0.0231454617<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate: -0.0081803907<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:  0.0051443414<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate: -0.0090619173<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate: -0.0205052169<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate: -0.0173845613<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate: -0.0038401589<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate: -0.0086087368<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate:  0.0020708161<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate:  9.2311605411<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 62.3372147651<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 87.7762648188<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 35.8632919766<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 26.9889397663<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:  0.0000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,191,196,1)","opacity":1,"size":11.3385826771654,"symbol":"triangle-up","line":{"width":1.88976377952756,"color":"rgba(0,191,196,1)"}},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875,15.875,16.875,17.875,18.875,19.875,20.875],"y":[0.0416715176605637,0.0410710457383193,0.031899905278857,0.035065719186029,0.00940110808150884,0.0261495794727896,0.0585241183986218,0.0400702167216797,-0.00105981379813087,0.0122050185190664,0.0320166422133585,0.0315079819948257,0,null,null,0.847203322824888,9.00404567178854,46.1592759723456,53.2351513480868,26.5073236452483,20.5684236119977],"text":["month: 2019-01<br />estimate:  0.0416715177<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:  0.0410710457<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.0318999053<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:  0.0350657192<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:  0.0094011081<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:  0.0261495795<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:  0.0585241184<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:  0.0400702167<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate: -0.0010598138<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:  0.0122050185<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:  0.0320166422<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:  0.0315079820<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:  0.0000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate:  0.8472033228<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate:  9.0040456718<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 46.1592759723<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 53.2351513481<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate: 26.5073236452<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 20.5684236120<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(248,118,109,1)","dash":"solid"},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125,16.125,17.125,18.125,19.125,20.125,21.125],"y":[0.0104766113976507,-0.00522819270122313,0.00556178179175872,0.000573260518239497,-0.0231454616685285,-0.00818039066761939,0.00514434142348301,-0.00906191725623989,-0.0205052168905478,-0.017384561342032,-0.00384015889004329,-0.00860873675993934,0,null,null,0.00207081609250334,9.23116054114745,62.3372147650886,87.7762648187545,35.8632919766309,26.9889397662744],"text":["month: 2019-01<br />estimate:  0.0104766114<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate: -0.0052281927<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  0.0055617818<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:  0.0005732605<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate: -0.0231454617<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate: -0.0081803907<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:  0.0051443414<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate: -0.0090619173<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate: -0.0205052169<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate: -0.0173845613<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate: -0.0038401589<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate: -0.0086087368<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:  0.0000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate:  0.0020708161<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate:  9.2311605411<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 62.3372147651<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 87.7762648188<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 35.8632919766<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 26.9889397663<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,191,196,1)","dash":"solid"},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.0416715176605637,0.0410710457383193,0.031899905278857,0.035065719186029,0.00940110808150884,0.0261495794727896,0.0585241183986218,0.0400702167216797,-0.00105981379813087,0.0122050185190664,0.0320166422133585,0.0315079819948257,0.847203322824888,9.00404567178854,46.1592759723456,53.2351513480868,26.5073236452483,20.5684236119977,0,null,null],"text":["ci_lower:   0.005974280<br />ci_upper:   0.077368756<br />width: 0.5<br />month: 2019-01<br />estimate:  0.0416715177<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.002049795<br />ci_upper:   0.084191887<br />width: 0.5<br />month: 2019-02<br />estimate:  0.0410710457<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.006586965<br />ci_upper:   0.070386776<br />width: 0.5<br />month: 2019-03<br />estimate:  0.0318999053<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.012144710<br />ci_upper:   0.082276149<br />width: 0.5<br />month: 2019-04<br />estimate:  0.0350657192<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.028523377<br />ci_upper:   0.047325593<br />width: 0.5<br />month: 2019-05<br />estimate:  0.0094011081<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.013171678<br />ci_upper:   0.065470837<br />width: 0.5<br />month: 2019-06<br />estimate:  0.0261495795<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.008425231<br />ci_upper:   0.125473468<br />width: 0.5<br />month: 2019-07<br />estimate:  0.0585241184<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.029407369<br />ci_upper:   0.109547802<br />width: 0.5<br />month: 2019-08<br />estimate:  0.0400702167<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.029396923<br />ci_upper:   0.027277296<br />width: 0.5<br />month: 2019-09<br />estimate: -0.0010598138<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.025515925<br />ci_upper:   0.049925962<br />width: 0.5<br />month: 2019-10<br />estimate:  0.0122050185<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.009285435<br />ci_upper:   0.073318720<br />width: 0.5<br />month: 2019-11<br />estimate:  0.0320166422<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.012594182<br />ci_upper:   0.075610146<br />width: 0.5<br />month: 2019-12<br />estimate:  0.0315079820<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -6.940562554<br />ci_upper:   8.634969200<br />width: 0.5<br />month: 2020-04<br />estimate:  0.8472033228<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -12.724461901<br />ci_upper:  30.732553245<br />width: 0.5<br />month: 2020-05<br />estimate:  9.0040456718<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  18.869587638<br />ci_upper:  73.448964307<br />width: 0.5<br />month: 2020-06<br />estimate: 46.1592759723<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  18.513003849<br />ci_upper:  87.957298847<br />width: 0.5<br />month: 2020-07<br />estimate: 53.2351513481<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:   3.150154656<br />ci_upper:  49.864492635<br />width: 0.5<br />month: 2020-08<br />estimate: 26.5073236452<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -2.968410333<br />ci_upper:  44.105257557<br />width: 0.5<br />month: 2020-09<br />estimate: 20.5684236120<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:   0.000000000<br />ci_upper:   0.000000000<br />width: 0.5<br />month: 2020-01<br />estimate:  0.0000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:            NA<br />width: 0.5<br />month: 2020-02<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:            NA<br />width: 0.5<br />month: 2020-03<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.0356972380223751,0.0431208408750634,0.0384868704391451,0.0472104295267616,0.0379244848755148,0.039321257447001,0.0669493495411123,0.0694775852221366,0.0283371094426893,0.0377209433383249,0.0413020776402219,0.0441021639395246,7.78776587714176,21.7285075730458,27.2896883348445,34.7221474993284,23.3571689894113,23.536833944943,0,null,null],"arrayminus":[0.0356972380223751,0.0431208408750634,0.0384868704391451,0.0472104295267616,0.0379244848755148,0.039321257447001,0.0669493495411123,0.0694775852221366,0.0283371094426893,0.0377209433383249,0.0413020776402219,0.0441021639395246,7.78776587714176,21.7285075730458,27.2896883348445,34.7221474993284,23.3571689894113,23.536833944943,0,null,null],"type":"data","width":0.594339622641509,"symmetric":false,"color":"rgba(248,118,109,1)"},"name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.0104766113976507,-0.00522819270122313,0.00556178179175872,0.000573260518239497,-0.0231454616685285,-0.00818039066761939,0.00514434142348301,-0.00906191725623989,-0.0205052168905478,-0.017384561342032,-0.00384015889004329,-0.00860873675993934,0.00207081609250334,9.23116054114745,62.3372147650886,87.7762648187545,35.8632919766309,26.9889397662744,0,null,null],"text":["ci_lower:  -0.013582046<br />ci_upper:   0.034535269<br />width: 0.5<br />month: 2019-01<br />estimate:  0.0104766114<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.033645026<br />ci_upper:   0.023188641<br />width: 0.5<br />month: 2019-02<br />estimate: -0.0052281927<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.024781396<br />ci_upper:   0.035904960<br />width: 0.5<br />month: 2019-03<br />estimate:  0.0055617818<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.029630360<br />ci_upper:   0.030776882<br />width: 0.5<br />month: 2019-04<br />estimate:  0.0005732605<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.049072996<br />ci_upper:   0.002782073<br />width: 0.5<br />month: 2019-05<br />estimate: -0.0231454617<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.032473080<br />ci_upper:   0.016112299<br />width: 0.5<br />month: 2019-06<br />estimate: -0.0081803907<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.021345127<br />ci_upper:   0.031633809<br />width: 0.5<br />month: 2019-07<br />estimate:  0.0051443414<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.049692488<br />ci_upper:   0.031568653<br />width: 0.5<br />month: 2019-08<br />estimate: -0.0090619173<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.039121684<br />ci_upper:  -0.001888750<br />width: 0.5<br />month: 2019-09<br />estimate: -0.0205052169<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.037580531<br />ci_upper:   0.002811409<br />width: 0.5<br />month: 2019-10<br />estimate: -0.0173845613<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.032400454<br />ci_upper:   0.024720136<br />width: 0.5<br />month: 2019-11<br />estimate: -0.0038401589<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.038479472<br />ci_upper:   0.021261999<br />width: 0.5<br />month: 2019-12<br />estimate: -0.0086087368<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -5.615379116<br />ci_upper:   5.619520749<br />width: 0.5<br />month: 2020-04<br />estimate:  0.0020708161<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -21.990728659<br />ci_upper:  40.453049742<br />width: 0.5<br />month: 2020-05<br />estimate:  9.2311605411<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:   4.709461745<br />ci_upper: 119.964967785<br />width: 0.5<br />month: 2020-06<br />estimate: 62.3372147651<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  22.060859570<br />ci_upper: 153.491670068<br />width: 0.5<br />month: 2020-07<br />estimate: 87.7762648188<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:   1.669590751<br />ci_upper:  70.056993202<br />width: 0.5<br />month: 2020-08<br />estimate: 35.8632919766<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -8.249823590<br />ci_upper:  62.227703123<br />width: 0.5<br />month: 2020-09<br />estimate: 26.9889397663<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:   0.000000000<br />ci_upper:   0.000000000<br />width: 0.5<br />month: 2020-01<br />estimate:  0.0000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:            NA<br />width: 0.5<br />month: 2020-02<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:            NA<br />width: 0.5<br />month: 2020-03<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.0240586574753853,0.0284168332241819,0.0303431778901075,0.0302036209936453,0.0259275343648722,0.0242926892490366,0.0264894679414158,0.0406305706696541,0.0186164667430677,0.0201959698737196,0.0285602948092007,0.0298707355170201,5.61744993248863,31.2218892004184,57.6277530196732,65.7154052490224,34.1937012253616,35.2387633564545,0,null,null],"arrayminus":[0.0240586574753853,0.0284168332241819,0.0303431778901075,0.0302036209936453,0.0259275343648722,0.0242926892490366,0.0264894679414158,0.0406305706696541,0.0186164667430677,0.0201959698737196,0.0285602948092007,0.0298707355170201,5.61744993248863,31.2218892004184,57.6277530196732,65.7154052490224,34.1937012253616,35.2387633564545,0,null,null],"type":"data","width":0.594339622641511,"symmetric":false,"color":"rgba(0,191,196,1)"},"name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-30.7648485956233,162.265790004129],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":38.854296388543},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"General Support Funds, with covariates","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-30.7648485956233,162.265790004129],"tickmode":"array","ticktext":["0","50","100","150"],"tickvals":[3.5527136788005e-15,50,100,150],"categoryorder":"array","categoryarray":["0","50","100","150"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","showSendToCloud":false},"source":"A","attrs":{"44112e5b9ff2":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"4411161e0a5":{"x":{},"y":{},"colour":{},"shape":{}},"441140e37158":{"ymin":{},"ymax":{},"width":{},"x":{},"y":{},"colour":{},"shape":{}},"4411142669b0":{"yintercept":{}},"441165e4ac25":{"xintercept":{}}},"cur_data":"44112e5b9ff2","visdat":{"44112e5b9ff2":["function (y) ","x"],"4411161e0a5":["function (y) ","x"],"441140e37158":["function (y) ","x"],"4411142669b0":["function (y) ","x"],"441165e4ac25":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
<div class="sourceCode" id="cb118"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb118-1"><a href="#cb118-1" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_jukyo_number_bind)</span></code></pre></div>
<div id="htmlwidget-113a789407b3d808f44a" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-113a789407b3d808f44a">{"x":{"data":[{"x":[0.875,1.875,15.875,16.875,17.875,18.875,19.875,20.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875],"y":[0.149600097718494,0.100704190811891,0.458573653864166,10.5669399021714,19.0270575438353,10.5102887812187,4.7607309060617,3.24644755857246,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["month: 2019-01<br />estimate:  0.1496001<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:  0.1007042<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate:  0.4585737<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: 10.5669399<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 19.0270575<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 10.5102888<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate:  4.7607309<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate:  3.2464476<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(248,118,109,1)","opacity":1,"size":11.3385826771654,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(248,118,109,1)"}},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,16.125,17.125,18.125,19.125,20.125,21.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125],"y":[0.117502480457477,0.107578801495555,1.10260400563082,15.3111452953042,27.583867514515,15.3335398491714,6.61460757002231,4.44172090712996,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["month: 2019-01<br />estimate:  0.1175025<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  0.1075788<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate:  1.1026040<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: 15.3111453<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 27.5838675<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 15.3335398<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate:  6.6146076<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate:  4.4417209<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,191,196,1)","opacity":1,"size":11.3385826771654,"symbol":"triangle-up","line":{"width":1.88976377952756,"color":"rgba(0,191,196,1)"}},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875,15.875,16.875,17.875,18.875,19.875,20.875],"y":[0.149600097718494,0.100704190811891,0,null,null,null,null,null,null,null,null,null,null,null,null,0.458573653864166,10.5669399021714,19.0270575438353,10.5102887812187,4.7607309060617,3.24644755857246],"text":["month: 2019-01<br />estimate:  0.1496001<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:  0.1007042<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate:  0.4585737<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: 10.5669399<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 19.0270575<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 10.5102888<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate:  4.7607309<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate:  3.2464476<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(248,118,109,1)","dash":"solid"},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125,16.125,17.125,18.125,19.125,20.125,21.125],"y":[0.117502480457477,0.107578801495555,0,null,null,null,null,null,null,null,null,null,null,null,null,1.10260400563082,15.3111452953042,27.583867514515,15.3335398491714,6.61460757002231,4.44172090712996],"text":["month: 2019-01<br />estimate:  0.1175025<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  0.1075788<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate:  1.1026040<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: 15.3111453<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 27.5838675<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 15.3335398<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate:  6.6146076<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate:  4.4417209<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,191,196,1)","dash":"solid"},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,15.875,16.875,17.875,18.875,19.875,20.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875],"y":[0.149600097718494,0.100704190811891,0.458573653864166,10.5669399021714,19.0270575438353,10.5102887812187,4.7607309060617,3.24644755857246,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["ci_lower:  0.03356936<br />ci_upper:  0.2656308<br />width: 0.5<br />month: 2019-01<br />estimate:  0.1496001<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -0.00116565<br />ci_upper:  0.2025740<br />width: 0.5<br />month: 2019-02<br />estimate:  0.1007042<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower: -0.90795764<br />ci_upper:  1.8251050<br />width: 0.5<br />month: 2020-04<br />estimate:  0.4585737<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  1.72752806<br />ci_upper: 19.4063517<br />width: 0.5<br />month: 2020-05<br />estimate: 10.5669399<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  9.92378936<br />ci_upper: 28.1303257<br />width: 0.5<br />month: 2020-06<br />estimate: 19.0270575<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  5.43952181<br />ci_upper: 15.5810557<br />width: 0.5<br />month: 2020-07<br />estimate: 10.5102888<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  2.28371326<br />ci_upper:  7.2377486<br />width: 0.5<br />month: 2020-08<br />estimate:  4.7607309<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  1.31437106<br />ci_upper:  5.1785241<br />width: 0.5<br />month: 2020-09<br />estimate:  3.2464476<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  0.00000000<br />ci_upper:  0.0000000<br />width: 0.5<br />month: 2019-03<br />estimate:  0.0000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-04<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-05<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-06<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-07<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-08<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-09<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-10<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-11<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-12<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2020-01<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2020-02<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2020-03<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.116030742496822,0.101869840368341,1.36653129812895,8.83941183941638,9.10326818507195,5.07076696727706,2.47701764525593,1.9320765028519,0,null,null,null,null,null,null,null,null,null,null,null,null],"arrayminus":[0.116030742496822,0.101869840368341,1.36653129812895,8.83941183941638,9.10326818507195,5.07076696727706,2.47701764525593,1.9320765028519,0,null,null,null,null,null,null,null,null,null,null,null,null],"type":"data","width":0.594339622641509,"symmetric":false,"color":"rgba(248,118,109,1)"},"name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,16.125,17.125,18.125,19.125,20.125,21.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125],"y":[0.117502480457477,0.107578801495555,1.10260400563082,15.3111452953042,27.583867514515,15.3335398491714,6.61460757002231,4.44172090712996,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["ci_lower:  0.02095645<br />ci_upper:  0.2140485<br />width: 0.5<br />month: 2019-01<br />estimate:  0.1175025<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -0.01037220<br />ci_upper:  0.2255298<br />width: 0.5<br />month: 2019-02<br />estimate:  0.1075788<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -0.12256161<br />ci_upper:  2.3277696<br />width: 0.5<br />month: 2020-04<br />estimate:  1.1026040<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  3.61157476<br />ci_upper: 27.0107158<br />width: 0.5<br />month: 2020-05<br />estimate: 15.3111453<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: 11.87500958<br />ci_upper: 43.2927255<br />width: 0.5<br />month: 2020-06<br />estimate: 27.5838675<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  6.41038366<br />ci_upper: 24.2566960<br />width: 0.5<br />month: 2020-07<br />estimate: 15.3335398<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  1.57969850<br />ci_upper: 11.6495166<br />width: 0.5<br />month: 2020-08<br />estimate:  6.6146076<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  0.82848316<br />ci_upper:  8.0549587<br />width: 0.5<br />month: 2020-09<br />estimate:  4.4417209<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  0.00000000<br />ci_upper:  0.0000000<br />width: 0.5<br />month: 2019-03<br />estimate:  0.0000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-04<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-05<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-06<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-07<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-08<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-09<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-10<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-11<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2019-12<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2020-01<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2020-02<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:          NA<br />ci_upper:         NA<br />width: 0.5<br />month: 2020-03<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.0965460256172193,0.117951002400574,1.22516561347945,11.6995705325855,15.7088579376959,8.9231561842299,5.03490906753243,3.61323775137512,0,null,null,null,null,null,null,null,null,null,null,null,null],"arrayminus":[0.0965460256172193,0.117951002400574,1.22516561347945,11.6995705325855,15.7088579376959,8.9231561842299,5.03490906753243,3.61323775137512,0,null,null,null,null,null,null,null,null,null,null,null,null],"type":"data","width":0.594339622641511,"symmetric":false,"color":"rgba(0,191,196,1)"},"name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-3.11799179908857,45.5027596070347],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":30.8841843088418},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"Housing Security Benefit","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-3.11799179908857,45.5027596070347],"tickmode":"array","ticktext":["0","10","20","30","40"],"tickvals":[0,10,20,30,40],"categoryorder":"array","categoryarray":["0","10","20","30","40"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","showSendToCloud":false},"source":"A","attrs":{"4411ff1e9ee":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"44115335106f":{"x":{},"y":{},"colour":{},"shape":{}},"441140ca1216":{"ymin":{},"ymax":{},"width":{},"x":{},"y":{},"colour":{},"shape":{}},"441112698395":{"yintercept":{}},"44114d3db4a4":{"xintercept":{}}},"cur_data":"4411ff1e9ee","visdat":{"4411ff1e9ee":["function (y) ","x"],"44115335106f":["function (y) ","x"],"441140ca1216":["function (y) ","x"],"441112698395":["function (y) ","x"],"44114d3db4a4":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
<div class="sourceCode" id="cb119"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb119-1"><a href="#cb119-1" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_jukyo_number_bind_covar)</span></code></pre></div>
<div id="htmlwidget-35adb1eb43450a951828" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-35adb1eb43450a951828">{"x":{"data":[{"x":[0.875,1.875,15.875,16.875,17.875,18.875,19.875,20.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875],"y":[0.149600097718502,0.10070419081189,-1.01610930717232,-1.87874403736105,2.00334142488374,1.26887913636057,0.418930961039269,0.161034283165453,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["month: 2019-01<br />estimate:  0.1496001<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:  0.1007042<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate: -1.0161093<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: -1.8787440<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate:  2.0033414<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate:  1.2688791<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate:  0.4189310<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate:  0.1610343<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(248,118,109,1)","opacity":1,"size":11.3385826771654,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(248,118,109,1)"}},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,16.125,17.125,18.125,19.125,20.125,21.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125],"y":[0.117502480457485,0.107578801495557,-1.07163584195625,-5.27037877436258,-4.33719465732501,-1.1449910286866,-1.95842718198216,-1.1545667850312,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["month: 2019-01<br />estimate:  0.1175025<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  0.1075788<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate: -1.0716358<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: -5.2703788<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: -4.3371947<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: -1.1449910<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: -1.9584272<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: -1.1545668<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,191,196,1)","opacity":1,"size":11.3385826771654,"symbol":"triangle-up","line":{"width":1.88976377952756,"color":"rgba(0,191,196,1)"}},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875,15.875,16.875,17.875,18.875,19.875,20.875],"y":[0.149600097718502,0.10070419081189,0,null,null,null,null,null,null,null,null,null,null,null,null,-1.01610930717232,-1.87874403736105,2.00334142488374,1.26887913636057,0.418930961039269,0.161034283165453],"text":["month: 2019-01<br />estimate:  0.1496001<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:  0.1007042<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate: -1.0161093<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: -1.8787440<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate:  2.0033414<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate:  1.2688791<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate:  0.4189310<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate:  0.1610343<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(248,118,109,1)","dash":"solid"},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125,16.125,17.125,18.125,19.125,20.125,21.125],"y":[0.117502480457485,0.107578801495557,0,null,null,null,null,null,null,null,null,null,null,null,null,-1.07163584195625,-5.27037877436258,-4.33719465732501,-1.1449910286866,-1.95842718198216,-1.1545667850312],"text":["month: 2019-01<br />estimate:  0.1175025<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  0.1075788<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate: -1.0716358<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: -5.2703788<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: -4.3371947<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: -1.1449910<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: -1.9584272<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: -1.1545668<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,191,196,1)","dash":"solid"},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,15.875,16.875,17.875,18.875,19.875,20.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875],"y":[0.149600097718502,0.10070419081189,-1.01610930717232,-1.87874403736105,2.00334142488374,1.26887913636057,0.418930961039269,0.161034283165453,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["ci_lower:   0.024963087<br />ci_upper:  0.27423711<br />width: 0.5<br />month: 2019-01<br />estimate:  0.1496001<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.008721571<br />ci_upper:  0.21012995<br />width: 0.5<br />month: 2019-02<br />estimate:  0.1007042<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -3.122969355<br />ci_upper:  1.09075074<br />width: 0.5<br />month: 2020-04<br />estimate: -1.0161093<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -8.031481367<br />ci_upper:  4.27399329<br />width: 0.5<br />month: 2020-05<br />estimate: -1.8787440<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -2.402033083<br />ci_upper:  6.40871593<br />width: 0.5<br />month: 2020-06<br />estimate:  2.0033414<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -1.322937001<br />ci_upper:  3.86069527<br />width: 0.5<br />month: 2020-07<br />estimate:  1.2688791<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -1.029431959<br />ci_upper:  1.86729388<br />width: 0.5<br />month: 2020-08<br />estimate:  0.4189310<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:  -0.889668163<br />ci_upper:  1.21173673<br />width: 0.5<br />month: 2020-09<br />estimate:  0.1610343<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:   0.000000000<br />ci_upper:  0.00000000<br />width: 0.5<br />month: 2019-03<br />estimate:  0.0000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-04<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-05<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-06<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-07<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-08<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-09<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-10<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-11<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-12<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2020-01<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2020-02<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2020-03<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.124637010821942,0.10942576185584,2.10686004816804,6.15273732965119,4.40537450794817,2.59181613708276,1.44836291964736,1.05070244637596,0,null,null,null,null,null,null,null,null,null,null,null,null],"arrayminus":[0.124637010821942,0.10942576185584,2.10686004816804,6.15273732965119,4.40537450794817,2.59181613708276,1.44836291964736,1.05070244637596,0,null,null,null,null,null,null,null,null,null,null,null,null],"type":"data","width":0.594339622641509,"symmetric":false,"color":"rgba(248,118,109,1)"},"name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,16.125,17.125,18.125,19.125,20.125,21.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125],"y":[0.117502480457485,0.107578801495557,-1.07163584195625,-5.27037877436258,-4.33719465732501,-1.1449910286866,-1.95842718198216,-1.1545667850312,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["ci_lower:   0.013795413<br />ci_upper:  0.22120955<br />width: 0.5<br />month: 2019-01<br />estimate:  0.1175025<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -0.019120899<br />ci_upper:  0.23427850<br />width: 0.5<br />month: 2019-02<br />estimate:  0.1075788<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -2.426435061<br />ci_upper:  0.28316338<br />width: 0.5<br />month: 2020-04<br />estimate: -1.0716358<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower: -11.495999509<br />ci_upper:  0.95524196<br />width: 0.5<br />month: 2020-05<br />estimate: -5.2703788<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -8.953963653<br />ci_upper:  0.27957434<br />width: 0.5<br />month: 2020-06<br />estimate: -4.3371947<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -4.898360138<br />ci_upper:  2.60837808<br />width: 0.5<br />month: 2020-07<br />estimate: -1.1449910<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -3.614061690<br />ci_upper: -0.30279267<br />width: 0.5<br />month: 2020-08<br />estimate: -1.9584272<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:  -2.298949661<br />ci_upper: -0.01018391<br />width: 0.5<br />month: 2020-09<br />estimate: -1.1545668<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:   0.000000000<br />ci_upper:  0.00000000<br />width: 0.5<br />month: 2019-03<br />estimate:  0.0000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-04<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-05<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-06<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-07<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-08<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-09<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-10<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-11<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2019-12<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2020-01<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2020-02<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","ci_lower:            NA<br />ci_upper:          NA<br />width: 0.5<br />month: 2020-03<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.103707067460696,0.126699700841116,1.35479921867115,6.22562073479571,4.61676899560999,3.75336910940808,1.65563450754365,1.14438287602938,0,null,null,null,null,null,null,null,null,null,null,null,null],"arrayminus":[0.103707067460696,0.126699700841116,1.35479921867115,6.22562073479571,4.61676899560999,3.75336910940808,1.65563450754365,1.14438287602938,0,null,null,null,null,null,null,null,null,null,null,null,null],"type":"data","width":0.594339622641511,"symmetric":false,"color":"rgba(0,191,196,1)"},"name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-12.3912352812578,7.30395170493142],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":38.854296388543},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"Housing Security Benefit, with covariates","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-12.3912352812578,7.30395170493142],"tickmode":"array","ticktext":["-10","-5","0","5"],"tickvals":[-10,-5,0,5],"categoryorder":"array","categoryarray":["-10","-5","0","5"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","showSendToCloud":false},"source":"A","attrs":{"44114919a173":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"441131b6aa83":{"x":{},"y":{},"colour":{},"shape":{}},"44114f7497f4":{"ymin":{},"ymax":{},"width":{},"x":{},"y":{},"colour":{},"shape":{}},"44116fa43cec":{"yintercept":{}},"441179be337":{"xintercept":{}}},"cur_data":"44114919a173","visdat":{"44114919a173":["function (y) ","x"],"441131b6aa83":["function (y) ","x"],"44114f7497f4":["function (y) ","x"],"44116fa43cec":["function (y) ","x"],"441179be337":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
</div>
<div id="merge-graphsグラフ統合" class="section level1" number="13">
<h1><span class="header-section-number">13</span> Merge graphs/グラフ統合</h1>
<div id="extract-legendlegend取り出し" class="section level2" number="13.1">
<h2><span class="header-section-number">13.1</span> Extract legend/legend取り出し</h2>
<div class="sourceCode" id="cb120"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb120-1"><a href="#cb120-1" aria-hidden="true" tabindex="-1"></a><span class="co">#Legendの表示</span></span>
<span id="cb120-2"><a href="#cb120-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb120-3"><a href="#cb120-3" aria-hidden="true" tabindex="-1"></a>graph_for_legend  <span class="ot">&lt;-</span>　graph_koguchi_number_bind <span class="sc">+</span></span>
<span id="cb120-4"><a href="#cb120-4" aria-hidden="true" tabindex="-1"></a> <span class="fu">theme</span>(<span class="at">legend.position =</span> <span class="st">&#39;bottom&#39;</span>, <span class="co"># Adjust x axis label</span></span>
<span id="cb120-5"><a href="#cb120-5" aria-hidden="true" tabindex="-1"></a>       <span class="at">legend.title =</span> <span class="fu">element_text</span>(<span class="at">color =</span> <span class="st">&quot;black&quot;</span>, <span class="at">size =</span> <span class="dv">20</span>),</span>
<span id="cb120-6"><a href="#cb120-6" aria-hidden="true" tabindex="-1"></a>       <span class="at">legend.text =</span> <span class="fu">element_text</span>(<span class="at">color =</span> <span class="st">&quot;black&quot;</span>, <span class="at">size =</span> <span class="dv">20</span>))</span>
<span id="cb120-7"><a href="#cb120-7" aria-hidden="true" tabindex="-1"></a>graph_for_legend  </span></code></pre></div>
<pre><code>## Warning: Removed 4 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABUAAAAPACAYAAAD0ZtPZAAAEDmlDQ1BrQ0dDb2xvclNwYWNlR2VuZXJpY1JHQgAAOI2NVV1oHFUUPpu5syskzoPUpqaSDv41lLRsUtGE2uj+ZbNt3CyTbLRBkMns3Z1pJjPj/KRpKT4UQRDBqOCT4P9bwSchaqvtiy2itFCiBIMo+ND6R6HSFwnruTOzu5O4a73L3PnmnO9+595z7t4LkLgsW5beJQIsGq4t5dPis8fmxMQ6dMF90A190C0rjpUqlSYBG+PCv9rt7yDG3tf2t/f/Z+uuUEcBiN2F2Kw4yiLiZQD+FcWyXYAEQfvICddi+AnEO2ycIOISw7UAVxieD/Cyz5mRMohfRSwoqoz+xNuIB+cj9loEB3Pw2448NaitKSLLRck2q5pOI9O9g/t/tkXda8Tbg0+PszB9FN8DuPaXKnKW4YcQn1Xk3HSIry5ps8UQ/2W5aQnxIwBdu7yFcgrxPsRjVXu8HOh0qao30cArp9SZZxDfg3h1wTzKxu5E/LUxX5wKdX5SnAzmDx4A4OIqLbB69yMesE1pKojLjVdoNsfyiPi45hZmAn3uLWdpOtfQOaVmikEs7ovj8hFWpz7EV6mel0L9Xy23FMYlPYZenAx0yDB1/PX6dledmQjikjkXCxqMJS9WtfFCyH9XtSekEF+2dH+P4tzITduTygGfv58a5VCTH5PtXD7EFZiNyUDBhHnsFTBgE0SQIA9pfFtgo6cKGuhooeilaKH41eDs38Ip+f4At1Rq/sjr6NEwQqb/I/DQqsLvaFUjvAx+eWirddAJZnAj1DFJL0mSg/gcIpPkMBkhoyCSJ8lTZIxk0TpKDjXHliJzZPO50dR5ASNSnzeLvIvod0HG/mdkmOC0z8VKnzcQ2M/Yz2vKldduXjp9bleLu0ZWn7vWc+l0JGcaai10yNrUnXLP/8Jf59ewX+c3Wgz+B34Df+vbVrc16zTMVgp9um9bxEfzPU5kPqUtVWxhs6OiWTVW+gIfywB9uXi7CGcGW/zk98k/kmvJ95IfJn/j3uQ+4c5zn3Kfcd+AyF3gLnJfcl9xH3OfR2rUee80a+6vo7EK5mmXUdyfQlrYLTwoZIU9wsPCZEtP6BWGhAlhL3p2N6sTjRdduwbHsG9kq32sgBepc+xurLPW4T9URpYGJ3ym4+8zA05u44QjST8ZIoVtu3qE7fWmdn5LPdqvgcZz8Ww8BWJ8X3w0PhQ/wnCDGd+LvlHs8dRy6bLLDuKMaZ20tZrqisPJ5ONiCq8yKhYM5cCgKOu66Lsc0aYOtZdo5QCwezI4wm9J/v0X23mlZXOfBjj8Jzv3WrY5D+CsA9D7aMs2gGfjve8ArD6mePZSeCfEYt8CONWDw8FXTxrPqx/r9Vt4biXeANh8vV7/+/16ffMD1N8AuKD/A/8leAvFY9bLAAAAOGVYSWZNTQAqAAAACAABh2kABAAAAAEAAAAaAAAAAAACoAIABAAAAAEAAAVAoAMABAAAAAEAAAPAAAAAALYRw1EAAEAASURBVHgB7N0JmGNVmTDg0wtNA83S7LuKzS6IC8imiM8gCjooKILOr4wjguuIgIojKg4OoIKCGyiIiIKgwiiio6AiCLLJJiCLzdJssu/Q3XR3/vsFk765laSSqiSVSr3neapz13POfe+tdOXLWSaVspQkAgQIECBAgAABAgQIECBAgAABAgQIDKDA5AG8JpdEgAABAgQIECBAgAABAgQIECBAgACBsoAAqAeBAAECBAgQIECAAAECBAgQIECAAIGBFRAAHdhb68IIECBAgAABAgQIECBAgAABAgQIEBAA9QwQIECAAAECBAgQIECAAAECBAgQIDCwAgKgA3trXRgBAgQIECBAgAABAgQIECBAgAABAgKgngECBAgQIECAAAECBAgQIECAAAECBAZWQAB0YG+tCyNAgAABAgQIECBAgAABAgQIECBAQADUM0CAAAECBAgQIECAAAECBAgQIECAwMAKCIAO7K11YQQIECBAgAABAgQIECBAgAABAgQICIB6BggQIECAAAECBAgQIECAAAECBAgQGFgBAdCBvbUujAABAgQIECBAgAABAgQIECBAgAABAVDPAAECBAgQIECAAAECBAgQIECAAAECAysgADqwt9aFESBAgAABAgQIECBAgAABAgQIECAgAOoZIECAAAECBAgQIECAAAECBAgQIEBgYAUEQAf21rowAgQIECBAgAABAgQIECBAgAABAgQEQD0DBAgQIECAAAECBAgQIECAAAECBAgMrIAA6MDeWhdGgAABAgQIECBAgAABAgQIECBAgIAAqGeAAAECBAgQIECAAAECBAgQIECAAIGBFRAAHdhb68IIECBAgAABAgQIECBAgAABAgQIEJiKgEC7Ao888kj61a9+1e5pbR2/3nrrpW233batcxxMgMDYCsyePTude+656U9/+lO677770gMPPJAefvjhtPzyy6dVV121/LPxxhunXXbZpfz7PXWq/4JGc8d+8pOfpHnz5lWzeN3rXpfWXHPN6nplodXjKsd36/WMM85Izz33XE32e+yxR1pqqaVqtlkhMFYC8XzGc9qttPvuu6ell166W9kPVL6nn356WrhwYfWa3vCGN6SVV165um6BAAECBAgQINCuwKRSlto9yfETW+Avf/lLeuUrX9lVhH/7t39Lp556alfLkDkBAp0RiADb5z//+XTjjTe2nOEKK6yQ3vnOd6bDDjvMh9qW1WoPXGmllVJ8IVVJ8cXUG9/4xspq9bXV46ondGHhiiuuSFtttdWQnE8++eS0zz77DNluA4FGApdffnmaNWtWWnHFFRsdMuLtjz/+eIr3pm6lOXPmpHXWWadb2Q9UvvHFyNy5c6vXdMkll6Rtttmmum6BAAECBAgQINCugC7w7Yo5ngABAgTKAn//+9/TDjvskPbcc8+2gp9x8mOPPZa+9a1vpQ022KD8inSwBb73ve/VvcBvf/vbdbfbSKAoEMH+/fbbrxwEi/cPiQABAgQIECBAgEA7AgKg7Wg5lgABAgTKAnfffXeKLtcXXnjhqEQeffTR9KEPfSgdeuiho8rHyf0r8Oyzz6bozlovRWu+q666qt4u2wiUBaKj0oknnlj+suQ73/lOWrRoERkCBAgQIECAAAECbQsYgK1tMifUE3jFK16R1lprrXq7RrTt5S9/+YjOcxIBAt0XeOqpp9LOO++c7rrrriGFveY1r0l77bVXWnvttcs/a6yxRnriiSfSnXfeWf65+OKL0w9/+MO0YMGCmnMPP/zwtPrqq5eDoTU7rIx7gZ/97GcpuhZX0qabbppuuOGGymo6/vjjUwS2JAL1BOL9Y999963ZNWnSpJr1bq5stNFG5eBrJ8ow3m0nFOVBgAABAgQIEBiZgADoyNycVRA4+OCD0zve8Y7CVqsECAyiwAknnDCky3uMC/z1r389bb311kMuOQKb0dU90vve97702c9+Nn3uc58bMs7vgQcemGKSkAiaSoMjUOz+/o1vfCPtuOOO1Qs87bTT0le+8pW03HLLVbdZINAvAjEm+X/913/1S3XUgwABAgQIECBAYIQCusCPEM5pBAgQmIgC8+fPT8ccc0zNpb/oRS9KMQFPveBnzYH/XInjf/CDHwz50iRmNC/mXe9828aPwG233ZYuuOCCaoU32WST9NrXvjZtvvnm1W1PP/10+XmobrBAgAABAgQIECBAgACBDgsIgHYYVHYECBAYZIEYs/Hee++tucSYyGaVVVap2dbKykknnZQ23HDDmkOjdelzzz1Xs83K+BWIWd5jDMdKesMb3lBe3GOPPSqbyq/RDV4iQIAAAQIECBAgQIBAtwQEQLslK18CBAgMoMCtt95ac1VTp05Nr371q2u2tbqyzDLLpPe+9701hz/55JPplltuqdlmZXwKxGQ1p5xySk3lKwHQd73rXTXbY0zQiy66qGabFQIECBAgQIAAAQIECHRKwBignZKUT98IxOQqf/nLX8oTrjzwwANp1VVXTeuss0562ctelqZPn960njG5S+XcuXPnlsct3HjjjdNqq63W9LxWd8bM2X/961/T/fffnyLQs9JKK5Unftlqq63SjBkzWs1m2OPiuv/4xz+mhx9+OK2//vrppS99aVp55ZWHPS8OeOSRR9Ls2bNTdF196KGHytdeyaOlDNo8qFcm+WrFPbj99tvTPffckyKAF2NUbrHFFuXnJH/caJbnzJmT7rjjjvJzGF1811tvvTRr1qy07rrrlsscTd5jeW5x4qOZM2empZdeesRV2mmnndInP/nJmvMjGBYT5Ywk9evvfwQDr7/++vLEUfE79uijj5bfj8IvfjdjDNVll112JJfct+ecd955NRNlxXMSk2RFevGLX5y23XbbdMkll1TrHy2JRxpMr2ZSZ6Ffn4moarR2ji8VbrzxxvSPf/yj/CzE+9GWW26Z4guC8Z568V473o36rf7dvmfxd0U88/F3RvwdFBPmveQlL0kxNEqnUky6Fvn//e9/L/+9tcIKK5R/t6LHQfxfLBEgQIAAAQITVCDrmiYRaEvgyiuvjP6MNT8//vGP28pjNAdnk2eUshnnyz/ZeHLVrLLgZSmbqKCUTaBSU7dKXbMgQ+mQQw4pZX8YV8+pLGQzVJfe//73l7IgZN1zsz/MS+eee27l8LZen3nmmdJRRx1Vysa8q5t31G/atGml17/+9aVf//rXLeedBU2rDlmAs3reEUccUcpmmq0pa4kllii95z3vKd10003V44oLF154YelNb3pTKZtd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CAyYgADogN1Ql0OAAAECBAgQIECAAAECBAgQIECAwGIBAdDFFpYIECBAgAABAgQIECBAgAABAgQIEBgwAQHQAbuhLocAAQIECBAgQIAAAQIECBAgQIAAgcUCAqCLLSwRIECAAAECBAgQIECAAAECBAgQIDBgAgKgA3ZDXQ4BAgQIECBAgAABAgQIECBAgAABAosFBEAXW1giQIAAAQIECBAgQIAAAQIECBAgQGDABARAB+yGuhwCBAgQIECAAAECBAgQIECAAAECBBYLCIAutrBEgAABAgQIECBAgAABAgQIECBAgMCACQiADtgNdTkECBAgQIAAAQIECBAgQIAAAQIECCwWEABdbGGJAAECBAgQIECAAAECBAgQIECAAIEBExAAHbAb6nIIECBAgAABAgQIECBAgAABAgQIEFgsMHXxoiUCQwWOOuqo9Oc//7m64+ijj04vfvGLq+sWCBAgQIAAAQIECBAgQIAAAQIECPSzgABoP9+dPqjb5Zdfnn7+859Xa3LooYdWly0QIECAAAECBAgQIECAAAECBAgQ6HcBXeD7/Q6pHwECBAgQIECAAAECBAgQIECAAAECIxYQAB0xnRMJECBAgAABAgQIECBAgAABAgQIEOh3AQHQfr9D6keAAAECBAgQIECAAAECBAgQIECAwIgFBEBHTOdEAgQIECBAgAABAgQIECBAgAABAgT6XUAAtN/vkPoRIECAAAECBAgQIECAAAECBAgQIDBiAQHQEdM5kQABAgQIECBAgAABAgQIECBAgACBfhcQAO33O6R+BAgQIECAAAECBAgQIECAAAECBAiMWEAAdMR0TiRAgAABAgQIECBAgAABAgQIECBAoN8FBED7/Q6pHwECBAgQIECAAAECBAgQIECAAAECIxYQAB0xnRMJECBAgAABAgQIECBAgAABAgQIEOh3AQHQfr9D6keAAAECBAgQIECAAAECBAgQIECAwIgFBEBHTOdEAgQIECBAgAABAgQIECBAgAABAgT6XUAAtN/vkPoRIECAAAECBAgQIECAAAECBAgQIDBiAQHQEdM5kQABAgQIECBAgAABAgQIECBAgACBfhcQAO33O6R+BAgQIECAAAECBAgQIECAAAECBAiMWEAAdMR0TiRAgAABAgQIECBAgAABAgQIECBAoN8FpvZ7BdWPAAECBAgQIECAAAECvRB47rnn0o033li3qA033DBNnz697j4bCRAgQIAAgf4WEADt7/ujdgQIECBAgAABAgQI9Ejg8ccfT3vuuWfd0s4999w0a9asuvtsJECAAAECBPpbQBf4/r4/akeAAAECBAgQIECAAAECBAgQIECAwCgEBEBHgedUAgQIECBAgAABAgQIECBAgAABAgT6W0AAtL/vj9oRIECAAAECBAgQIECAAAECBAgQIDAKAWOAjgLPqQQIECBAgAABAgQIECBAgEDrAosefjgt/NsN1RMmLTk9Td1yq+q6BQIECHRDQAC0G6ryJECAAAECBAgQIECAAAECBIYILLrj9jTvuydUt09acSUB0KqGBQIEuiWgC3y3ZOVLgAABAgQIECBAgAABAgQINBUoLVjQdL+dBAgQ6ISAAGgnFOVBgAABAgQIECBAgAABAgQIDCswea210+R1X1A9bontX11dtkCAAIFuCQiAdktWvgQIECBAgAABAgQIECBAgECNwOTVV0+T1167um3qVq+qLlsgQIBAtwQEQLslK18CBAgQIECAAAECBAgQIECAAAECBMZcQAB0zG+BChAgQIAAAQIECBAgQIAAAQIECBAg0C0BAdBuycqXAAECBAgQIECAAAECBAgQIECAAIExFxAAHfNboAIECBAgQIAAAQIECBAgQIAAAQIECHRLQAC0W7LyJUCAAAECBAgQIECAAAECBAgQIEBgzAUEQMf8FqgAAQIECBAgQIAAAQIECBAgQIAAAQLdEhAA7ZasfAkQIECAAAECBAgQIECAAAECBAgQGHMBAdAxvwUqQIAAAQIECBAgQIAAAQIECBAgQIBAtwQEQLslK18CBAgQIECAAAECBAgQIECAAAECBMZcQAB0zG+BChAgQIAAAQIECBAgQIAAAQIECBAg0C0BAdBuycqXAAECBAgQIECAAAECBAgQIECAAIExFxAAHfNboAIECBAgQIAAAQIECBAgQIAAAQIECHRLQAC0W7LyJUCAAAECBAgQIECAAAECBAgQIEBgzAUEQMf8FqgAAQIECBAgQIAAAQIECBAgQIAAAQLdEhAA7ZasfAkQIECAAAECBAgQIECAAAECBAgQGHOBqWNeAxUgQIAAAQIECBAgQIBAHwhMmTIlbbDBBnVrMm3atLrbbSRAgAABAgT6X0AAtP/vkRoSIECAAAECBAgQINADgZkzZ6ZzzjmnByUpggABAgQIEOilgC7wvdRWFgECBAgQIECAAAECBAgQIECAAAECPRUQAO0pt8IIECBAgAABAgQIECBAgAABAgQIEOilgABoL7WVRYAAAQIECBAgQIAAAQIECBAgQIBATwUEQHvKrTACBAgQIECAAAECBAgQIECAAAECBHopIADaS21lESBAgAABAgQIECBAgAABAgQIECDQUwEB0J5yK4wAAQIECBAgQIAAAQIECBAgQIAAgV4KCID2UltZBAgQIECAAAECBAgQIECAAAECBAj0VEAAtKfcCiNAgAABAgQIECBAgAABAgQIECBAoJcCAqC91FYWAQIECBAgQIAAAQIECBAgQIAAAQI9FRAA7Sm3wggQIECAAAECBAgQIECAAAECBAgQ6KWAAGgvtZVFgAABAgQIECBAgAABAgQIECBAgEBPBQRAe8qtMAIECBAgQIAAAQIECBAgQIAAAQIEeikgANpLbWURIECAAAECBAgQIECAAAECBAgQINBTAQHQnnIrjAABAgQIECBAgAABAgQIECBAgACBXgoIgPZSW1kECBAgQIAAAQIECBAgQIAAAQIECPRUQAC0p9wKI0CAAAECBAgQIECAAAECBAgQIECglwICoL3UVhYBAgQIECBAgAABAgQIECBAgAABAj0VEADtKbfCCBAgQIAAAQIECBAgQIAAAQIECBDopYAAaC+1lUWAAAECBAgQIECAAAECBAgQIECAQE8FBEB7yq0wAgQIECBAgAABAgQIECBAgAABAgR6KSAA2kttZREgQIAAAQIECBAgQIAAAQIECBAg0FMBAdCeciuMAAECBAgQIECAAAECBAgQIECAAIFeCgiA9lJbWQQIECBAgAABAgQIECBAgAABAgQI9FRgak9LUxgBAgQIECBAgAABAgT6VGDhwoXp7rvvrlu7NdZYI02bNq3uPhsJECBAgACB/hYQAO3v+6N2BAgQIECAAAECBAj0SODRRx9Nr3/96+uWdu6556ZZs2bV3WcjAQIECBAg0N8CAqBt3p+DDjooXXbZZeljH/tY2mOPPYY9++KLL06XXHLJsMfFAdOnT08f+chHGh4b30j/+te/Tueff36666670jPPPJM23njjtNlmm6VtttkmbbTRRg3PtYMAAQIECBAgQIAAAQIECBDorsCC665N83/5i2ohk1ddLU1/3/ur6xYIEBgbAQHQNtzPOuuscvCzjVPSb3/72/T73/++pVOWWWaZhgHQBx98MB144IHp9ttvr8nriiuuSPFzyimnpEMOOSTtvPPONfutECBAgAABAgQIECBAgAABAr0RKD3+WFp0803VwkpPPVVdtkCAwNgJCIC2aH/eeeelr33tay0evfiwW2+9dfHKCJeefvrpdPDBB1eDn9H1ZrvttkurrLJKuuaaa9KFF16Y5s+fnw4//PAUx+6+++4jLMlpBAgQIECAAAECBAgQIECAQMcEsp6cEgECYy8gADrMPZg3b1466aST0hlnnJFKpdIwR9fufvbZZ6uDqL/yla9Mn/nMZ2oPKKxNnjy5sOX51ZNPPjnNnj27vLLjjjumQw89NC2xxBLl9d122y1dd9116ROf+EQ5+Hncccel17zmNWnllVeum5eNBAgQIECAAAECBAgQIECAQHcEpr5qm/RcNgzeohuvLxcwfb8PdqcguRIg0JZA/YhbW1kM7sHRunKfffZJp59+elq0aFHbFxpBy0rQdJNNNkkrrbRS05+ZM2cOKeOJJ55Iv/jF8+OHrLrqqjXBz8rBm2++eXl7rMc4oZW9nYI2AABAAElEQVTjK/u9EiBAgAABAgQIECBAgAABAt0XmDRtWpq0xOK2ZpOWWbr7hSqBAIFhBQRA6xBF0PKYY44pj8d59913l49Yd911W5r0KJ9dvvv7hhtumN/V8vIf/vCHFC1JI73lLW+ptvwsZhBd4tdZZ53y5giALliwoHiIdQIECBAgQIAAAQIECBAgQIAAAQITTkAAtM4tj9aeZ599dnXPrrvuWu4GH2NvVtKkSZMqiw1fOxEAvf7655vNRyFbbbVVw7JiR3Szj/Twww+nq666qrzsHwIECBAgQIAAAQIECBAgQIAAAQITWWBxu+yJrNDg2rfccstyF/joYj6SVAmArrDCCmm11VYrZxGtS++///601FJLpeWXX37YbG+44YbyMRFwffGLX9z0+HyA9rbbbhs2YNo0MzsJECBAgAABAgQIECBAgAABAgQIDICAAGidmxiTER1//PFp0003rbO3tU0xFmcEISNF9/e//vWv6fvf/355wqK5c+eWt8eYnjE26P7775/WWmut8rbiP/fcc095U8z4PnVq89tVCbLGCXPmzClmVXf9lltuSY899ljdfbExZpWPYG1MBjWScVAbZmwHAQIECBAgQIAAAQIECBAgQIAAgR4INI+o9aAC/VhEtLYcTfAzrikCkPPnzy9fXszS/sEPDp357YEHHkjxc+mll6YPfOADaffdd6/hiLE/K0HHehMk1RycrURL00qKyZNaSUcffXS64IILmh4aY4vedddd1bFImx5sJwECBAgQIECAAAECBAgQIECAAIE+EhAA7dLNqHR/j+wjkDl9+vS0xRZbpJe97GVpxRVXTLfffns58HjvvfemaBH61a9+NS277LJpp512qtYoWl9W0pJLLllZbPiaP6bSyrThwXYQIECAAAECBAgQIECAAAECBAgQmAACAqBdusn5AOjKK69cnlX+RS96UU1p//7v/56OO+64dM4555S3H3vsseWJjCqtPZ955pnq8dOmTasuN1rIHxNd1iUCBAgQIECAAAECBAgQIECAAAECE11AALRLT8Buu+1W7kZ/3333pde+9rVpjTXWGFJStAo98MAD00033ZQiYPr444+nM888M+23337lY/NjfsaYosOlBQsWVA/JB0OrG+ssbL311k0nY/rjH/+Y7rzzztRK+XWyt4kAAQIECBAgQIAAAQIECBAgQIDAmAoIgHaJf+21107xM1yaMmVKeu9735sOOeSQ8qH5lqMx+VAlVcYTrazXe80fs8wyy9Q7ZMi2aIXaLO2xxx7p8ssvb3aIfQQIECBAgAABAgQIECBAgAABAgT6VmBy39ZsAlVs1qxZ1autzBwfG5Zeeunq9vx4oNWNhYV8l/lWA6CFLKwSIECAAAECBAgQIECAAAECBAgQGCgBAdA+uJ2rrLJKtRbRDb6SYlKjlVZaqbwas8UPl+6///7qITHRkkSAAAECBAgQIECAAAECBAgQIEBgogsIgHbpCYgWm3fffXeaPXv2sCXkg5vrrLNOzfGViZOideejjz5as6+4EuVV0sYbb1xZ9EqAAAECBAgQIECAAAECBAgQIEBgwgoIgHbh1kewctddd0177713ev/735+Gm5H9jjvuqNZi3XXXrS7HwiabbFJdv/baa6vL9Rauu+666ub8edWNFggQIECAAAECBAgQIECAAAECBAhMMAEB0C7c8Bi7sxKAjImJLrvssqalnHbaadX922+/fXU5FmIG+Ur6zW9+U1kc8hrd36+++ury9g033DDpAj+EyAYCBAgQIECAAAECBAgQIECAAIEJKCAA2qWbng9kHnvssenJJ5+sW9JPf/rTdM0115T3rb/++mmnnXaqOS62RUAz0p/+9KdULwgaLUyPPPLItHDhwvJx73rXu8qv/iFAgAABAgQIECBAgAABAgQIECAw0QUEQLv0BOy5555ps802K+ceY3zuu+++6eKLL07RPX7BggXp1ltvTV/84hdTBEcjTZs2LX30ox9NkyZNKq/n/znggAOqq3HOKaecku69995yPtHt/cADD0xXXnll+ZhoebrDDjtUj7dAgAABAgQIECBAgAABAgTGu8CtTz2Vjr11dvXn+3fMGe+XpP4ECPRQYGoPy5pQRU2dOjUddthh5aBmTE50zz33pE996lNlg9gXQdBKWnXVVcvB0I022qiyqeZ10003Led1xBFHpLlz56YTTzyx/DNlypRqq884Ya211kpHHXVUmjxZXLsG0AoBAgQIECBAgAABAgQIjGuBm554Kh1x863Va1hnqelpnxfWzqFR3WmBAAECBQGRsgJIJ1dXWWWV9IMf/CB94AMfSMsss0w160rwc4UVVkg77rhjOZjZKPhZOel1r3tdOuGEE8rd4SsBzkqX9wiovv3tby/vjzwlAgQIECBAgAABAgQIECAwyALPlUqDfHmujQCBDgtoAdoG6Jve9KYUP+2kJZZYIr3zne9Me+21V/rHP/6R5syZk2JipA022CCtvvrq7WSV1ltvvXKwNFqBRhf6mPhozTXXTDFz/IwZM9rKy8EECBAgQIAAAQIECNQKREOD6J1VL0XvK4kAgbETeNnM5dPLV1g+XfXY4+VK7P+iF45dZZRMgMC4ExAA7dEtiz+mIlgZP6NN06dPL48vWhljdLT5OZ8AAQIECBAgQIAAgZRWXHHFdNFFF6EgQKAPBdZeaqm07tJLVQOg26+8Uh/WUpUIEOhXAQHQfr0z6kWAAAECBAgQIECAAAECBAhMCIF/ZD09b3nyqeq1zsiGunv5TEPcVUEsEBilgADoKAGdToAAAQIECBAgQIAAAQIECBAYjcD59z+YDvrrDdUsNl9+ufTbV29bXbdAgMDoBEyCNDo/ZxMgQIAAAQIECBAgQIAAAQIEOirw3KJFHc1PZgQmuoAA6ER/Alw/AQIECBAgQIAAAQIECBAgMKYCGy47I62VzfdRSf+y2iqVRa8ECHRAQAC0A4iyIECAAAECBAgQIECAAAECBAiMVGDLFWem9bMgaCW9e911K4teCRDogIAAaAcQZUGAAAECBAgQIECAAAECBAgQIECAQH8KCID2531RKwIECBAgQIAAAQIECBAgQIAAAQIEOiAgANoBRFkQIECAAAECBAgQIECAAAECBAgQINCfAgKg/Xlf1IoAAQIECBAgQIAAAQIECBAgQIAAgQ4ICIB2AFEWBAgQIECAAAECBAgQIECAAAECBAj0p4AAaH/eF7UiQIAAAQIECBAgQIAAAQIECBAgQKADAgKgHUCUBQECBAgQIECAAAECBAgQIECAAAEC/SkgANqf90WtCBAgQIAAAQIECBAgQIAAAQIECBDogIAAaAcQZUGAAAECBAgQIECAAAECBAgQIECAQH8KCID2531RKwIECBAgQIAAAQIECBAgQIAAAQIEOiAgANoBRFkQIECAAAECBAgQIECAAAECBAgQINCfAgKg/Xlf1IoAAQIECBAgQIAAAQIECBAgQIAAgQ4ICIB2AFEWBAgQIECAAAECBAgQIECAAAECBAj0p4AAaH/eF7UiQIAAAQIECBAgQIAAAQIECBAgQKADAgKgHUCUBQECBAgQIECAAAECBAgQIECAAAEC/SkgANqf90WtCBAgQIAAAQIECBAgQIAAAQIECBDogIAAaAcQZUGAAAECBAgQIECAAAECBAgQIECAQH8KCID2531RKwIECBAgQIAAAQIECBAgQIAAAQIEOiAwtQN5yIIAAQIECBAgQIAAAQLjXqBUKqUnn3yy7nXMmDEjTZ6s/UhdHBsJECBAgECfCwiA9vkNUj0CBAgQIECAAAECBHoj8PDDD6ftttuubmHnnntumjVrVt19NhIgQIAAAQL9LeArzP6+P2pHgAABAgQIECBAgAABAgQIECBAgMAoBARAR4HnVAIECBAgQIAAAQIECBAgQIAAAQIE+ltAALS/74/aESBAgAABAgQIECBAgAABAgQIECAwCgEB0FHgOZUAAQIECBAgQIAAAQIECBAgQIAAgf4WEADt7/ujdgQIECBAgAABAgQIECBAgAABAgQIjEJAAHQUeE4lQIAAAQIECBAgQIAAAQIECBAgQKC/BQRA+/v+qB0BAgQIECBAgAABAgQIECBAgAABAqMQEAAdBZ5TCRAgQIAAAQIECBAgQIAAAQIECBDobwEB0P6+P2pHgAABAgQIECBAgAABAgQIECBAgMAoBARAR4HnVAIECBAgQIAAAQIECBAgQIAAAQIE+ltAALS/74/aESBAgAABAgQIECBAgAABAgQIECAwCgEB0FHgOZUAAQIECBAgQIAAAQIECBAgQIAAgf4WEADt7/ujdgQIECBAgAABAgQIECBAgAABAgQIjEJAAHQUeE4lQIAAAQIECBAgQIAAAQIECBAgQKC/BQRA+/v+qB0BAgQIECBAgAABAgQIECBAgAABAqMQEAAdBZ5TCRAgQIAAAQIECBAgQIAAAQIECBDobwEB0P6+P2pHgAABAgQIECBAgAABAgQIECBAgMAoBARAR4HnVAIECBAgQIAAAQIECBAgQIAAAQIE+ltAALS/74/aESBAgAABAgQIECBAgAABAgQIECAwCgEB0FHgOZUAAQIECBAgQIAAAQIECBAgQIAAgf4WEADt7/ujdgQIECBAgAABAgQIECBAgAABAgQIjEJAAHQUeE4lQIAAAQIECBAgQIAAAQIECBAgQKC/BQRA+/v+qB0BAgQIECBAgAABAgQIECBAgAABAqMQmDqKc51KgAABAgQIECBAgACBgRJYYokl6l7PpEmT6m63kQABAgQIEOh/AQHQ/r9HakiAAAECBAgQIECAQA8EVl555XT99df3oCRFECBAgAABAr0U0AW+l9rKIkCAAAECBAgQIECAAAECBAgQIECgpwICoD3lVhgBAgQIECBAgAABAgQIECBAgAABAr0UEADtpbayCBAgQIAAAQIECBAgQIAAAQIECBDoqYAAaE+5FUaAAAECBAgQIECAAAECBAgQIECAQC8FBEB7qa0sAgQIECBAgAABAgQIECBAgAABAgR6KiAA2lNuhREgQIAAAQIECBAgQIAAAQIECBAg0EsBAdBeaiuLAAECBAgQIECAAAECBAgQIECAAIGeCgiA9pRbYQQIECBAgAABAgQIECBAgAABAgQI9FJAALSX2soiQIAAAQIECBAgQIAAAQIECBAgQKCnAgKgPeVWGAECBAgQIECAAAECBAgQIECAAAECvRQQAO2ltrIIECBAgAABAgQIECBAgAABAgQIEOipgABoT7kVRoAAAQIECBAgQIAAAQIECBAgQIBALwUEQHuprSwCBAgQIECAAAECBAgQIECAAAECBHoqIADaU26FESBAgAABAgQIECBAgAABAgQIECDQSwEB0F5qK4sAAQIECBAgQIAAAQIECBAgQIAAgZ4KCID2lFthBAgQIECAAAECBAgQIECAAAECBAj0UkAAtJfayiJAgAABAgQIECBAgAABAgQIECBAoKcCAqA95VYYAQIECBAgQIAAAQIECBAgQIAAAQK9FBAA7aW2sggQIECAAAECBAgQIECAAAECBAgQ6KmAAGhPuRVGgAABAgQIECBAgAABAgQIECBAgEAvBQRAe6mtLAIECBAgQIAAAQIECBAgQIAAAQIEeiogANpTboURIECAAAECBAgQIECAAAECBAgQINBLAQHQXmoriwABAgQIECBAgAABAgQIECBAgACBngoIgPaUW2EECBAgQIAAAQIECBAgQIAAAQIECPRSYGovC1MWAQIECBAgQIAAAQIE+lXgoYceSq9+9avrVu+cc85Js2bNqrvPRgIECBAgQKC/BQRA+/v+qB0BAgQIECBAgAABAj0UWLRoUQ9LUxQBAgQIECDQCwFd4HuhrAwCBAgQIECAAAECBAgQIECAAAECBMZEQAB0TNgVSoAAAQIECBAgQIAAAQIECBAgQIBALwQEQHuhrAwCBAgQIECAAAECBAgQIECAAAECBMZEQAB0TNgVSoAAAQIECBAgQIAAAQIECBAgQIBALwQEQHuhrAwCBAgQIECAAAECBAgQIECAAAECBMZEQAB0TNgVSoAAAQIECBAgQIAAAQIECBAgQIBALwQEQHuhrAwCBAgQIECAAAECBAgQIECAAAECBMZEQAB0TNgVSoAAAQIECBAgQIAAAQIECBAgQIBALwQEQHuhrAwCBAgQIECAAAECBAgQIECAAAECBMZEQAB0TNgVSoAAAQIECBAgQIAAAQIECBAgQIBALwQEQHuhrAwCBAgQIECAAAECBAgQIECAAAECBMZEQAB0TNgVSoAAAQIECBAgQIAAAQIECBAgQIBALwQEQHuhrAwCBAgQIECAAAECBAgQIECAAAECBMZEQAB0TNgVSoAAAQIECBAgQIAAAQIECBAgQIBALwQEQHuhrAwCBAgQIECAAAECBAgQIECAAAECBMZEQAB0TNgVSoAAAQIECBAgQIAAAQIECBAgQIBALwQEQHuhrAwCBAgQIECAAAECBAgQIECAAAECBMZEQAB0TNgVSoAAAQIECBAgQIAAAQIECBAgQIBALwQEQHuhrAwCBAgQIECAAAECBAgQIECAAAECBMZEQAB0TNgVSoAAAQIECBAgQIAAAQIECBAgQIBALwQEQHuhrAwCBAgQIECAAAECBAgQIECAAAECBMZEQAB0TNgVSoAAAQIECBAgQIAAAQIECBAgQIBALwQEQHuhrAwCBAgQIECAAAECBAgQIECAAAECBMZEYOqYlKpQAgQIECBAgAABAgQI9JnASiutlP7yl7/UrdXSSy9dd7uNBAgQIECAQP8LCID2/z1SQwIECBAgQIAAAQIEeiAwadKkNGPGjB6UpAgCBAgQIECglwK6wPdSW1kECBAgQIAAAQIECBAgQIAAAQIECPRUQAC0p9wKI0CAAAECBAgQIECAAAECBAgQIECglwICoL3UVhYBAgQIECBAgAABAgQIECBAgAABAj0VEADtKbfCCBAgQIAAAQIECBAgQIAAAQIECBDopYBJkNrUPuigg9Jll12WPvaxj6U99tijpbMXLlyYfv3rX6fzzz8/3XXXXemZZ55JG2+8cdpss83SNttskzbaaKOe5tNSYQ4iQIAAAQIECBAgQIAAAQIECBAgMAACAqBt3MSzzjqrHPxs45T04IMPpgMPPDDdfvvtNaddccUVKX5OOeWUdMghh6Sdd965Zn9xpVP5FPO1ToAAAQIECBAgQIAAAQIECBAgQGCQBQRAW7y75513Xvra177W4tHPH/b000+ngw8+uBr8nDVrVtpuu+3SKquskq655pp04YUXpvnz56fDDz88xbG777573fw7lU/dzG0kQIAAAQIECBAgQIAAAQIECBAgMMACAqDD3Nx58+alk046KZ1xxhmpVCoNc3Tt7pNPPjnNnj27vHHHHXdMhx56aFpiiSXK67vttlu67rrr0ic+8Yly8PO4445Lr3nNa9LKK69cm0m21ql8hmRsAwECBAgQIECAAAECBAgQIECAAIEBFzAJUpMbHK0099lnn3T66aenRYsWNTly6K4nnngi/eIXvyjvWHXVVWuCn5WjN9988/L2WI9xQivHV/bHa6fyyedpmQABAgQIECBAgAABAgQIECBAgMBEERAArXOno6XnMccckz7ykY+ku+++u3zEuuuu2/KkR3HCH/7wh/Tss8+Wz33LW95SbflZ3pD7J7rEr7POOuUtEQBdsGBBbm/n8qnJ1AoBAgQIECBAgAABAgQIECBAgACBCSIgAFrnRkdrz7PPPru6Z9dddy13g48xPCtp0qRJlcW6r9dff311+1ZbbVVdrrfwyle+srz54YcfTldddVXNIZ3KpyZTKwQIECBAgAABAgQIECBAgAABAgQmiIAAaJMbveWWW6ZvfvOb6VOf+lSaPn16kyOH7rrhhhvKGyNQ+uIXv3joAbkt+cDqbbfdltuTUqfyqcnUCgECBAgQIECAAAECBAgQIECAAIEJImASpDo3evLkyen4449Pm266aZ29rW265557ygfGjO9TpzZnXm211aqZzpkzp7ocC53KpyZTKwQIECBAgAABAgQIECBAgAABAgQmiEDzyNwEQSheZrTaHE3wM8b+rEyaNHPmzGL2Q9ZXWGGF6raY9KiSOpVPJb96r9/73vfSjTfeWG9Xedtdd92VVl999fTII4+k+fPnNzzODgIECBAgQIAAAQIECBAgQIAAAQL9KCAA2oW78vTTT1dzXXLJJavLjRbyx8ydO7d6WKfyqWZYZ+Gyyy5LF1xwQZ09izctt9xy6fHHH1+8wRIBAgQIECBAgAABAgQIECBAgACBcSJgDNAu3Khnnnmmmuu0adOqy40W8sfMmzevelin8qlmaIEAAQIECBAgQIAAAQIECBAgQIDABBMQAO3CDc+P+blw4cJhS1iwYEH1mHwwtFP5VDO3QIAAAQIECBAgQIAAAQIECBAgQGCCCegC34UbvtRSS1VzbWXczPwxyyyzTPXcTuVTzbDOwsEHH5z23XffOnue3/SZz3wm/fGPfzT+Z0MhOwgQIECAAAECBAgQIECAAAECBPpZQAC0C3dn6aWXruaaH8ezurGwkO/qng+AdiqfQnE1q7NmzapZL65EffLjkhb3WydAgAABAgQIECBAgAABAgQIECDQzwK6wHfh7sSkRiuttFI55wceeGDYEu6///7qMSuuuGJ1uVP5VDO0QIAAAQIECBAgQIAAAQIECBAgQGCCCQiAdumGv+hFLyrnHK07H3300aal3H333dX9G2+8cXU5FjqVT02mVggQIECAAAECBAgQIECAAAECBAhMEAEB0C7d6E022aSa87XXXltdrrdw3XXXVTfnz4uN+fXR5FMtwAIBAgQIECBAgAABAgQIECBAgACBCSQgANqlm/3a1762mvNvfvOb6nJxIbq/X3311eXNG264Ycp3gY+NncqnWK51AgQIECBAgAABAgQIECBAgAABAhNBQAC0S3d5/fXXTxHQjPSnP/0p1QuCzps3Lx155JFp4cKF5ePe9a53lV/z/3Qqn3yelgkQIECAAAECBAgQGCrwyCOPpG222abuz+233z70BFsIECBAgACBcSEgANrF23TAAQdUc//iF7+YTjnllHTvvfemBQsWpOj2fuCBB6Yrr7yyfEx0dd9hhx2qx+cXOpVPPk/LBAgQIECAAAECBAjUCixatChFELTeT6XRQu0Z1ggQIECAAIHxIDB1PFRyvNZx0003TYcddlg64ogj0ty5c9OJJ55Y/pkyZUq11Wdc21prrZWOOuqoNHly/Xh0p/IZr47qTYAAAQIECBAgQIAAAQIECBAgQGCkAvUjbiPNzXlDBF73utelE044odwdvhLgrHx7PHXq1PT2t7+9vH+FFVYYcm5+Q6fyyedpmQABAgQIECBAgAABAgQIECBAgMCgC2gB2sYdftOb3pTip9203nrrlVt+RivQW2+9NcXER2uuuWZad91104wZM1rOrlP5tFygAwkQIECAAAECBAgQIECAAAECBAiMcwEB0B7ewOnTp6fNNtus/DOaYjuVz2jq4FwCBAgQIECAAAECBAgQIECAAAEC40FAF/jxcJfUkQABAgQIECBAgAABAgQIECBAgACBEQkIgI6IzUkECBAgQIAAAQIECBAgQIAAAQIECIwHAQHQ8XCX1JEAAQIECBAgQIAAAQIECBAYaIHHn3tuoK/PxREYSwEB0LHUVzYBAgQIECBAgAABAgQIECAw4QVKpVK69amnqg7XP/5EddkCAQKjFxAAHb2hHAgQIECAAAECBAgQIECAAAECIxY4/a570lMLFlbP/8qtf08RFJUIEOiMgABoZxzlQoAAAQIECBAgQIAAAQIECBBoW+CpBQvSETffUnPeDU88mX56z70126wQIDByAQHQkds5kwABAgQIECBAgAABAgQIECAwKoGv3jo7PThv/pA8Dv/bLenpLDgqESAwegEB0NEbyoEAAQIECBAgQIAAAQIECBAg0LbAHU8/k75z2x11z7t/3rx07N9vq7vPRgIE2hMQAG3Py9EECBAgQIAAAQIECBAgQIAAgY4IfPbGm9JzTcb6PCELjs555pmOlCUTAhNZQAB0It99106AAAECBAgQIECAAAECBAiMicCFDz6Ufnv/A03LnrdoUTrsxpubHmMnAQLDCwiADm/kCAIECBAgQIAAAQIE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l+JFdNLFCe985B3ejVq/hdBvs1rCuEyN5FD6YT7UAfundNRDunTDfTCiod4ZZwumFKmY8432dq2EIVsZQ+GNnNd1L8lXi02hnGajIP0Nr7tRyr+fJ+Wzv5aKJYulaqvSr7JKees2Vx22PaRej54iF16UjeoxzSRAAiRAAiTgGgGsVbFNjXKD7FAd+veq/T/36Oba/dyIOPXj89xIZR2Ps1+/fnLjjTfKpEmTpFgNrXzkkUf0X56qhFfYeuf32GMPmTx5suSqxkc2Sa4ylhUefkQ2JdlxWjHsGx5m+INUqfyDgTcbjWbRlEZjHsYYwZ8PJa9TJ8Gf3wSGlQLlgYW/KjXcHh7ZVWpqARi2MRQylVMWZIodGvIFhxyq/zKVBrfvm6fmlMSfHwVlNG+vbvrPl/qpZ61gxMH6z5f6qToKvFezzYPVaV6Yb5/+/jm9KIvCwUCde8hh6v15WBal2nlSMR0T/iJJvupwoZAACZAACZAACYQS+ElN01ZePYAc00VhyrZsExpAsyTHDjnkEOnatavceuutsnTpUuWsVWkZP/OVAWrcuHFy1llnSbMs9rjLkqyoVTLhHUkhAa8RwJySWKWaQgIkQAIkQAIkQAIkQAIkQAIkQAJ+JEADaBblajc1JBXen/AChREUCx91VAs/dFbznzVWnk4UEiABEiABEiABEiABEiABEiABEiABEiABEkglgRv79ZZ/9OllRVmYZSOPkXAaQK3sy56N+sqLcJ999tF/2ZNqppQESIAESIAESIAESIAESIAESIAESIAESCDbCGABW7cWsU0Xi+yaLDJdVHgfEiABEiABEiABEiABEiABEiABEiABEiABEiABXxCgAdQX2UglSIAESIAESIAESIAESIAESIAESIAESIAESIAEIhGgATQSFR4jARIgARIgARIgARIgARIgARIgARIgARIgARLwBQEaQH2RjVSCBEiABEiABEiABEiABEiABEiABEiABEiABEggEgEaQCNR4TESIAESIAESIAESIAESIAESIAESIAESIAESIAFfEKAB1BfZSCVIgARIgARIgARIgARIgARIgARIgARIgARIgAQiEaABNBIVHiMBEiABEiABEiABEiABEiABEiABEiABEgghULFihVRt2WwdK5/9tbXth43yeXOlattWS5Wyjz+ytrmR3QRoAM3u/GPqSYAESIAESIAESIAESIAESIAESIAESCAtBCoWL5SqjRute5V98rG17YeNiqVLRHbtslSpmPuttc2N7CaQn93JZ+pJgARIgARIgARIgARIgARIIDUEGjRoIBdeeGHEyFq2bBnxOA+SAAmQQJ0mkJdXp9XPNuVL33tXqnbuDCS7tERK33xdCo8Zm21qJJVeGkCTwsaLSIAESIAESIAESIAESIAE/EagUaNGcvnll/tNLepDAiRAAikjkNd/X6l3bkMrvpxmza1tP2wUHHSw5PXsZamS06yZte2Hjar1a0UqygOqVFZK5dqf/aCWIx1oAHWEiYFIgARIgARIgARIgARIgARIgARIgARIoG4TyOvUSfDnV8lt117wR/EfARpA/Zen1IgESIAESIAESIAESIAESIAESIAESIAESIAEQggUjj9VCsaeYB3LKSy0tv2+QQOo33OY+pEACZAACZAACZAACZAACZAACZAACZAACdR5AjkNGgr+6qJwFfi6mOvUmQRIgARIgARIgARIgARIgARIgARIgARIgATqCAEaQOtIRlNNEiABEiABEiABEiABEiABEiABEiABEiABEqiLBGgArYu5Tp1JgARIgARIgARIgARIgARIgARIgARIgARIoI4QoAG0jmQ01SQBEiABEiABEiABEiABEiABEiABEiABEiCBukiABtC6mOvUmQRIgARIgARIgARIgARIgARIgARIgARIgATqCAEaQOtIRlNNEiABEiABEiABEiABEiABEiABEiABEiABEqiLBGgArYu5Tp1JgARIgARIgARIgARIgARIgARIgARIgARIoI4QoAG0jmQ01SQBEiABEiABEiABEiABEiABEiABEiABEiCBukiABtC6mOvUmQRIgARIgARIgARIgARIgARIgARIgARIgATqCAEaQOtIRlNNEiABEiABEiABEiABEiABEiABEiABEiABEqiLBGgArYu5Tp1JgARIgARIgARIgARIgARIgARIgARIgARIoI4QoAG0jmQ01SQBEiABEiABEiABEiABEiABEiABEiABEiCBukiABtC6mOvUmQRIgARIgARIgARIgARIgARIgARIgARIgATqCAEaQOtIRlNNEiABEiABEiABEiABEiABEiAB7xOoKi+XqpISK6FVu3ZZ29wgARIgARJIjgANoMlx41UkQAIkQAIkQAIkQAIkQAIkQAIkkHIClcuWSvknH1nxljz8kLXNDRIgARIggeQI0ACaHDdeRQIkQAIkQAIkQAIkQAIkQAIkQALuE8jNcf8evAMJkAAJ+JxAvs/1o3okQAIkQAIkQAIkQAIkQAIkQAIkkD0EGjaUvN59guktLAxuc4sESIAESCApAjSAJoWNF5EACZAACZAACZAACZAACZAACZBA6gnkde4iDa66JvURM0YSIAESqMMEOAS+Dmc+VScBEiABEiABEiABEiABEiABEiABEiABEiABvxOgAdTvOUz9SIAESIAESIAESIAESIAESIAEfE/gx5275KvNWyw9n/pptbXNDRIgARKo6wQ4BL6ulwDqTwIkQAIkQAIkQAIkQAIkoAkUFRXJtGnTItIYN26ctGjRIuI5HiQBLxBYW1wsi3bstJLy/i8brG1ukAAJkEBdJ0ADaF0vAdSfBEiABEiABEiABEiABEhAE9i1a5dMnjw5Io2RI0fSABqRDA96lUAeV4/3atYwXSRAAhkgQANoBqDzliRAAiRAAiRAAiRAAiRAAiRAAiSQSgL9mzaR54YOtqLMz8mxtrlBAiRAAnWdAA2gdb0EUH8SIAESIAESIAESIAESIAESIIGsJ9CisFBGtWmd9XpQARIgARJwgwAXQXKDKuMkARIgARIgARIgARIgARIgARIgARIgARIgARLwBAEaQD2RDUwECZAACZAACZAACZAACZAACZAACZAACZAACZCAGwRoAHWDKuMkARIgARIgARIgARIgARIgARIgARIgARIgARLwBAEaQD2RDUwECZAACZAACZAACZAACZAACZAACZAACZAACZCAGwRoAHWDKuMkARIgARIgARIgARIgARIgARIgARIgARIgARLwBAEaQD2RDUwECZAACZAACZAACZAACZAACZAACZAACZAACZCAGwRoAHWDKuMkARIgARIgARIgARIgARIgARIgARIgARIgARLwBAEaQD2RDUwECZAACZAACZAACZAACZAACZAACZAACZAACZCAGwRoAHWDKuMkARIgARIgARIgARIgARIgARIgARIgARIgARLwBAEaQD2RDUwECZAACZAACZAACZAACZAACZAACZAACZAACZCAGwRoAHWDKuMkARIgARIgARIgARIgARIgARIgARIgARIgARLwBAEaQD2RDUwECZAACZAACZAACZAACZAACZAACZAACZAACZCAGwRoAHWDKuMkARIgARIgARIgARIgARIgARIgARIgARIgARLwBAEaQD2RDUwECZAACZAACZAACZAACZAACZAACZAACZAACZCAGwRoAHWDKuMkARIgARIgARIgARIgARIgARIgARIgARIgARLwBAEaQD2RDUwECZAACZAACZAACZAACZAACZAACZAACZAACZCAGwRoAHWDKuMkARIgARIgARIgARIgARIgARIgARIgARIgARLwBAEaQD2RDUwECZAACZAACZAACZAACZAACZAACZAACZAACZCAGwRoAHWDKuMkARIgARIgARIgARIgARIgARIgARIgARIgARLwBIF8T6SCicgaAm+//bYsWbIka9LLhJIACZAACZAACZAACZCAUwLbt28X/EWS6dOnS/v27SOd4jESIAESIAESIIEUEzj55JOlsLAwZbHmVClJWWyMyHcEUOBeeukl3+lFhUiABEiABEiABEiABEiABEiABEiABEiABLxJYOPGjdKqVauUJY4eoClD6c+IjjrqKGnXrp289tpr8vPPP2dEyZycHGnatKl17/Lyctm1a5e1n+0bubm50qRJE0uNsrIy2b17t7Wf7Rt5eXnSuHFjS43S0lIpKiqy9rN9Iz8/Xxo1amSpUVJSIsXFxdZ+tm8UFBRIw4YNLTWgG3T0i6BHsUGDBpY6KJsoo36RevXqSf369S118G7BO8YvAt2goxF8G/CN8IugbNp7vXfu3CkVFRV+UU+/O/EONbJjxw6prKw0u1n/i28fvoFG4FXoJ78D1F1QhzGybds2s+mLX9Q9UQc14jf9mjVrZlTT5TKa16sVKMs27PrhvYL3i18kvG2E7wK+D36R8LaR39p+4W0jv7X9wttGfmv7hbeN/Nb2C28b+a3tF6x1+uWNST1SSuCPf/yjjg/D3jNlAMVHAkZYIzBQ+MkAio+EXT9UYPxkAMVL1K4fGhB+MoDC+GLXb8uWLb4ygMIAY9dv06ZNvjKAwrjbtm1b83qRX3/91VcGUBhg7L2m69ev95UBFAaYFi1aWPmH75SfDKBowNs7AP3WiIB+9g4yv3VAoGzaO1j8ZqBv2bJlSAeE3wy8rVu3FmOgh+HabwbQNm3aWAZsvDf9ZACFgdBed8G7008GUBgI7frh3eknA2h42wjvTj+1/WBAs+cfnj0/tf3C20Zb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Ro2kcePG0rx586x/p6D8/vLLL1JcXKz/8M40+uG3WbNmWZVndSWxZWVlkp+fLzk5OQmpjOdy8+bN+hrkL/4o6SfAuifrnukvdbW/Y12oe+IbiHoL/po0aSIdOnTwbNto4cKFOp34Tg8ZMqT2GeyTGPCNW7lypf7WdenSRfbaay/9vcyRRhYfAABAAElEQVQW9epC3dPkRU6VErPDXxIgAfcIzJw5U9544w1ZvHixbN26VRuO+vTpI8cff7zsu+++jm7897//XT7//HMd1hg/HF2YpkCoXK9fv1430Js2bVrjrj/++KM89NBD8sUXX4ScgwH0N7/5jZx22mkJN6xCIvLIDgwXRx99tE7NmWeeKX/84x89krLQZHzzzTeCPIGgHMJgFEnQ6H3yySfliSeeEFTSwgWG0AsvvFAOPvjg8FOe2Mfz9v7778uXX34p55xzjvTt2zckXWicP/vss/Liiy/Kpk2bQs7B4DRmzBg5/fTTtaE35GQGdzZs2CAnnXSSTgGen5tuukn22WefDKbI3VujYrZkyRL56aeftLF3//33r2FEefvtt2Xq1Kmydu3akMS0b99errjiCjnwwANDjntpB51C//vf/2T27Nn6GxGvaoaGB/J70KBBcuyxx0qDBg28pE7EtCxYsEBeeeUVmTt3rjbwxtIRRl48p/3795djjjnGsw3BiIr67CDen//97391px4ad/hO9O7dWwYOHKi/2/Xq1YurMeo95513ng73hz/8Qb+H417EACkhwLqn6HoO654pKU4piaSu1D0BC7qivYbOviuvvLIGP9TB7733Xvn+++8FdW27oI04duxY/Zeb651Bu5MnT5bXX39dJ/W4446TCRMmSEFBgT3pvtmurKyU1atX63oZ8gdOO+hYt8uvv/4qU6ZMkffee08Q3gg6Cw877DC5/PLLa9RXTZhM/9aFumckxjSARqLCYySQQgLoufzXv/4l77zzTsRY4UlxyimnyJ/+9CeJ15DwqgEUxokHH3xQYICAERQf6n79+snhhx8u48aN03rjI3/JJZdor6aIINTBwYMHyzXXXJP1jd1sMYDecccd8uqrr+rsgGEikicuDNp/+9vftFddtHwzx2FgmjRpkqd6PGFsuf766y3D5i233CIjR440SdZ64Tw8W2MJPLZRfk15jhU2HefsBlDcDxUtVEJhyPaTwDgNoyYM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EEAAAQQQQAABBBBAAAEEELBCgACoFdVIIRBAAAEEEEAAAQQQQAABBBBAAAEEEEDATYAAqJsKaQgggAACCCCAAAIIIIAAAggggAACCCBghQABUCuqkUIggAACCCCAAAIIIIAAAggggAACCCCAgJsAAVA3FdIQQAABBBBAAAEEEEAAAQQQQAABBBBAwAoBAqBWVCOFQAABBBBAAAEEEEAAAQQQQAABBBBAAAE3AQKgbiqkIYAAAggggAACCCCAAAIIIIAAAggggIAVAgRArahGCoEAAggggAACCCCAAAIIIIAAAggggAACbgIEQN1USEMAAQQQQAABBBBAAAEEEEAAAQQQQAABKwQIgFpRjRQCAQQQQAABBBBAAAEEEEAAAQQQQAABBNwECIC6qZCGAAIIIIAAAggggAACCCCAAAIIIIAAAlYIEAC1ohopBAIIIIAAAggggAACCCCAAAIIIIAAAgi4CRAAdVMhDQEEEEAAAQQQQAABBBBAAAEEEEAAAQSsECAAakU1UggEEEAAAQQQQAABBBBAAAEEEEAAAQQQcBMgAOqmQhoCCCCAAAIIIIAAAggggAACCCCAAAIIWCFAANSKaqQQCCCAAAIIIIAAAggggAACCCCAAAIIIOAmQADUTYU0BBBAAAEEEEAAAQQQQAABBBBAAAEEELBCgACoFdVIIRBAAAEEEEAAAQQQQAABBBBAAAEEEEDATYAAqJsKaQgggAACCCCAAAIIIIAAAggggAACCCBghQABUCuqkUIggAACCCCAAAIIIIAAAggggAACCCCAgJsAAVA3FdIQQAABBBBAAAEEEEAAAQQQQAABBBBAwAoBAqBWVCOFQAABBBBAAAEEEEAAAQQQQAABBBBAAAE3AQKgbiqkIYAAAggggAACCCCAAAIIIIAAAggggIAVAgRArahGCoEAAggggAACCCCAAAIIIIAAAggggAACbgIEQN1USEMAAQQQQAABBBBAAAEEEEAAAQQQQAABKwQIgFpRjRQCAQQQQAABBBBAAAEEEEAAAQQQQAABBNwECIC6qZCGAAIIIIAAAggggAACCCCAAAIIIIAAAlYIEAC1ohopBAIIIIAAAggggAACCCCAAAIIIIAAAgi4CRAAdVMhDQEEEEAAAQQQQAABBBBAAAEEEEAAAQSsECAAakU1UggEEEAAAQQQQAABBBBAAAEEEEAAAQQQcBMgAOqmQhoCCCCAAAIIIIAAAggggAACCCCAAAIIWCFAANSKaqQQCCCAAAIIIIAAAggggAACCCCAAAIIIOAmQADUTYU0BBBAAAEEEEAAAQQQQAABBBBAAAEEELBCgACoFdVIIRBAAAEEEEAAAQQQQAABBBBAAAEEEEDATYAAqJsKaQgggAACCCCAAAIIIIAAAggggAACCCBghQABUCuqkUIggAACCCCAAAIIIIAAAggggAACCCCAgJsAAVA3FdIQQAABBBBAAAEEEEAAAQQQQAABBBBAwAoBAqBWVCOFQAABBBBAAAEEEEAAAQQQQAABBBBAAAE3AQKgbiqkIYAAAggggAACCCCAAAIIIIAAAggggIAVAgRArahGCoEAAggggAACCCCAAAIIIIAAAggggAACbgIEQN1USEMAAQQQQAABBBBAAAEEEEAAAQQQQAABKwQIgFpRjRQCAQQQQAABBBBAAAEEEEAAAQQQQAABBNwECIC6qZCGAAIIIIAAAggggAACCCCAAAIIIIAAAlYIEAC1ohopBAIIIIAAAggggAACCCCAAAIIIIAAAgi4CRAAdVMhDQEEEEAAAQQQQAABBBBAAAEEEEAAAQSsECAAakU1UggEEEAAAQQQQAABBBBAAAEEEEAAAQQQcBMgAOqmQhoCCCCAAAIIIIAAAggggAACCCCAAAIIWCFAANSKaqQQCCCAAAIIIIAAAggggAACCCCAAAIIIOAmQADUTYU0BBBAAAEEEEAAAQQQQAABBBBAAAEEELBCgACoFdVIIRBAAAEEEEAAAQQQQAABBBBAAAEEEEDATYAAqJsKaQgggAACCCCAAAIIIIAAAggggAACCCBghQABUCuqkUIggAACCCCAAAIIIIAAAggggAACCCCAgJsAAVA3FdIQQAABBBBAAAEEEEAAAQQQQAABBBBAwAoBAqBWVCOFQAABBBBAAAEEEEAAAQQQQAABBBBAAAE3AQKgbiqkIYAAAggggAACCCCAAAIIIIAAAggggIAVAgRArahGCoEAAggggAACCCCAAAIIIIAAAggggAACbgIEQN1USEMAAQQQQAABBBBAAAEEEEAAAQQQQAABKwQIgFpRjRQCAQQQQAABBBBAAAEEEEAAAQQQQAABBNwECIC6qZCGAAIIIIAAAggggAACCCCAAAIIIIAAAlYIEAC1ohopBAII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" width="672" /></p>
<div class="sourceCode" id="cb122"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb122-1"><a href="#cb122-1" aria-hidden="true" tabindex="-1"></a><span class="co">#extract legend</span></span>
<span id="cb122-2"><a href="#cb122-2" aria-hidden="true" tabindex="-1"></a>legend_model_types <span class="ot">&lt;-</span> ggpubr<span class="sc">::</span><span class="fu">get_legend</span>(graph_for_legend)</span></code></pre></div>
<pre><code>## Warning: Removed 4 rows containing missing values (geom_point).</code></pre>
<div class="sourceCode" id="cb124"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb124-1"><a href="#cb124-1" aria-hidden="true" tabindex="-1"></a>legend_model_types <span class="ot">&lt;-</span> ggpubr<span class="sc">::</span><span class="fu">as_ggplot</span>(legend_model_types)</span>
<span id="cb124-2"><a href="#cb124-2" aria-hidden="true" tabindex="-1"></a>legend_model_types</span></code></pre></div>
<p><img src="data:image/png;base64,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OUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYgaXDVqYwAgQIECBAgEAbgWeffTb96U9/SnfeeWfKj5955pk0Y8aMtPzyy6e3ve1taf3111/4Z/vtt09jx45t8ykD3/Xqq6+m+++/v+mNo0aNSptttlnTvpF4cs8996TLL788Pf7443WP7PLSSy+l1VZbLa2xxhr1PxtssEHaY4896kYjMUbfuegCs2bNSlOmTGn6oDFjxqSNN964ad9Anzz66KNp9uzZLW8bN25cWnnllVv2d7pj5syZ6Yknnmg6/E1velP999m4s1t/W35XjV3ymAABAgQIjKxAz4LaNrJD8O0ECBAgQIAAgcUr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sLyY14QJE5oGle/VmW8pUbYV7/+Zw9QVV1yx6W2NZ4TmF5599tmUP79sK/6ec0jbLmgs+5zheN3vajiUfQcBAgQIEBgaAQHo0Dj6FAIECBAgsFgF8iJFr9fCybI/9cve581dpLHMv/Ly9NqUKaXf9fqsFxfpe4bizXNrZ+HdeuutLR/1z//8zy37hnrHBz/4wZaPLK623nLACO3YdtttU75fZ3F76aWX0te//vU0bty4tOeee6YzzjgjTZ06tXhYZZ/PqZ2lOKUWUHb655wpU9P1f3++43rn1u5XedTdkzr+/DyOv9fuL9ot2y677NI0lHm1sbX7PTUdVHty+eWXN+0qhp35xXaXrReD06YPqT3JZ4gWA9Add9wx5dtOdOO2pP6uurEXxkSAAAECBMoEli47wOsECBAgQIDAyAu8XrtH5yu1hYqGZauFra8cW/5dS713qzT2C/82LEPq60tyWJdD0OKW70G4uLf111+/5Sueeuqpln3dsiMv0rTddtuldqu05+Ar36Ox9z6NeUXvnXbaqX6GYD77rt2iT91SV3/juP2FmekjN7UG5P29Z6Cv/fW559LWf7m247cdMG7t9KN3bd7x8YvzwHb3Ac2Xwe+www59fu0999yTnnzyyabX2wWgeTGszTffPOXje7c8v/IiYn1t999/f8tq8e2C1L7ePxL7l8Tf1Ug4+04CBAgQILCoAs4AXVRB7ydAgAABAsMgsKALL7Nd8GLzQiXDwNDyFc8/33q2Xl75ffnll285dqh3tFuVupsD0HxP1MsuuyxtueWWpRSTJ09OP//5z9OnPvWptNFGG9VXdj/ooIPS2WefnZ555pnS93fLAd10tmWvyfQ5rYF972vD/XdeXX311Vdv+tqy+4AWz+LM7+/rPxyKwejNN9+cXnjhhabva3xSpft/9o57Sfxd9dbubwIECBAgUCUBAWiVumWsBAgQILDECix4ceQvNy/iv147822kt3YB6MorrzwswyqurJ6/tHhm3LAMZABfsu6666Ybb7wx5ft+5ntAdro9/fTT6bzzzkuf/OQn62FoPiv09NNPT//4xz86/YgROe7pV8rvZzncA3u8i/4zo6enp2nxomxxww039LtYUTEAzWdo5s9ptxXP3swLJ/35z39ud2h9X/Hy93XWWSe94x3v6PP4bnlhSftddYu7cRAgQIAAgYEICEAH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DMtyyy2Xtt9++5a3DsVnt3zoMO/wuxpmcF9HgAABAgQGIOAeoAPAcigBAgQIECBQfYG8yNH06dPT448/niZPnlz/M2XKlJTPEM0LCa2//vr1v3MoWJUVqYeiK3lhmkmTJtVXu3/uuedS/vP888/XF0PKl/7nP+uuu279Ho3tzuAbijH4DALRBPyuonVUPQQIECBQVQEBaFU7Z9wECBAgQIAAAQIECBAgQIAAAQIECJQKuAS+lMgBBAgQIECAAAECBAgQIECAAAECBAhUVUAAWtXOGTcBAgQIECBAgAABAgQIECBAgAABAqUCAtBSIgcQIECAAAECBAgQIECAAAECBAgQIFBVAQFoVTtn3AQIECBAgAABAgQIECBAgAABAgQIlAoIQEuJHECAAAECBAgQIECAAAECBAgQIECAQFUFBKBV7ZxxEyBAgAABAgQIECBAgAABAgQIECBQKiAALSVyAAECBAgQIECAAAECBAgQIECAAAECVRUQgFa1c8ZNgAABAgQIECBAgAABAgQIECBAgECpgAC0lMgBBAgQIECAAAECBAgQIECAAAECBAhUVUAAWtXOGTcBAgQIECBAgAABAgQIECBAgAABAqUCAtBSIgcQIECAAAECBAgQIECAAAECBAgQIFBVAQFoVTtn3AQIECBAgAABAgQIECBAgAABAgQIlAoIQEuJHECAAAECBAgQIECAAAECBAgQIECAQFUFBKBV7ZxxEyBAgAABAgQIECBAgAABAgQIECBQKiAALSVyAAECBAgQIECAAAECBAgQIECAAAECVRUQgFa1c8ZNgAABAgQIECBAgAABAgQIECBAgECpgAC0lMgBBAgQIECAAAECBAgQIECAAAECBAhUVUAAWtXOGTcBAgQIECBAgAABAgQIECBAgAABAqUCAtBSIgcQIECAAAECBAgQIECAAAECBAgQIFBVAQFoVTtn3AQIECBAgAABAgQIECBAgAABAgQIlAoIQEuJHECAAAECBAgQIECAAAECBAgQIECAQFUFBKBV7ZxxEyBAgAABAgQIECBAgAABAgQIECBQKiAALSVyAAECBAgQIECAAAECBAgQIECAAAECVRUQgFa1c8ZNgAABAgQIECBAgAABAgQIECBAgECpgAC0lMgBBAgQIECAAAECBAgQIECAAAECBAhUVUAAWtXOGTcBAgQIECBAgAABAgQIECBAgAABAqUCAtBSIgcQIECAAAECBAgQIECAAAECBAgQIFBVAQFoVTtn3AQIECBAgAABAgQIECBAgAABAgQIlAoIQEuJHECAAAECBAgQIECAAAECBAgQIECAQFUFBKBV7ZxxEyBAgAABAgQIECBAgAABAgQIECBQKiAALSVyAAECBAgQIECAAAECBAgQIECAAAECVRUQgFa1c8ZNgAABAgQIECBAgAABAgQIECBAgECpgAC0lMgBBAgQIECAAAECBAgQIECAAAECBAhUVUAAWtXOGTcBAgQIECBAgAABAgQIECBAgAABAqUCAtBSIgcQIECAAAECBAgQIECAAAECBAgQIFBVAQFoVTtn3AQIECBAgAABAgQIECBAgAABAgQIlAoIQEuJHECAAAECBAgQIECAAAECBAgQIECAQFUFBKBV7ZxxEyBAgAABAgQIECBAgAABAgQIECBQKiAALSVyAAECBAgQIECAAAECBAgQIECAAAECVRUQgFa1c8ZNgAABAgQIECBAgAABAgQIECBAgECpgAC0lMgBBAgQIECAAAECBAgQIECAAAECBAhUVUAAWtXOGTcBAgQIECBAgAABAgQIECBAgAABAqUCAtBSIgcQIECAAAECBAgQIECAAAECBAgQIFBVAQFoVTtn3AQIECBAgAABAgQIECBAgAABAgQIlAoIQEuJHECAAAECBAgQIECAAAECBAgQIECAQFUFBKBV7ZxxEyBAgAABAgQIECBAgAABAgQIECBQKiAALSVyAAECBAgQIECAAAECBAgQIECAAAECVRUQgFa1c8ZNgAABAgQIECBAgAABAgQIECBAgECpgAC0lMgBBAgQIECAAAECBAgQIECAAAECBAhUVUAAWtXOGTcBAgQIECBAgAABAgQIECBAgAABAqUCAtBSIgcQIECAAAECBAgQIECAAAECBAgQIFBVAQFoVTtn3AQIECBAgAABAgQIECBAgAABAgQIlAoIQEuJHECAAAECBAgQIECAAAECBAgQIECAQFUFBKBV7ZxxEyBAgAABAgQIECBAgAABAgQIECBQKiAALSVyAAECBAgQIECAAAECBAgQIECAAAECVRUQgFa1c8ZNgAABAgQIECBAgAABAgQIECBAgECpgAC0lMgBBAgQIECAAAECBAgQIECAAAECBAhUVUAAWtXOGTcBAgQIECBAgAABAgQIECBAgAABAqUCAtBSIgcQIECAAAECBAgQIECAAAECBAgQIFBVAQFoVTtn3AQIECBAgAABAgQIECBAgAABAgQIlAoIQEuJHECAAAECBAgQIECAAAECBAgQIECAQFUFBKBV7ZxxEyBAgAABAgQIECBAgAABAgQIECBQKiAALSVyAAECBAgQIECAAAECBAgQIECAAAECVRUQgFa1c8ZNgAABAgQIECBAgAABAgQIECBAgECpgAC0lMgBBAgQIECAAAECBAgQIECAAAECBAhUVUAAWtXOGTcBAgQIECBAgAABAgQIECBAgAABAqUCAtBSIgcQIECAAAECBAgQIECAAAECBAgQIFBVAQFoVTtn3AQIECBAgAABAgQIECBAgAABAgQIlAoIQEuJHECAAAECBAgQIECAAAECBAgQIECAQFUFBKBV7ZxxEyBAgAABAgQIECBAgAABAgQIECBQKiAALSVyAAECBAgQIECAAAECBAgQIECAAAECVRUQgFa1c8ZNgAABAgQIECBAgAABAgQIECBAgECpgAC0lMgBBAgQIECAAAECBAgQIECAAAECBAhUVUAAWtXOGTcBAgQIECBAgAABAgQIECBAgAABAqUCAtBSIgcQIECAAAECBAgQIECAAAECBAgQIFBVAQFoVTtn3AQIECBAgAABAgQIECBAgAABAgQIlAoIQEuJHECAAAECBAgQIECAAAECBAgQIECAQFUFBKBV7ZxxEyBAgAABAgQIECBAgAABAgQIECBQKiAALSVyAAECBAgQIECAAAECBAgQIECAAAECVRUQgFa1c8ZNgAABAgQIECBAgAABAgQIECBAgECpgAC0lMgBBAgQIECAAAECBAgQIECAAAECBAhUVUAAWtXOGTcBAgQIECBAgAABAgQIECBAgAABAqUCAtBSIgcQIECAAAECBAgQIECAAAECBAgQIFBVAQFoVTtn3AQIECBAgAABAgQIECBAgAABAgQIlAoIQEuJHECAAAECBAgQIECAAAECBAgQIECAQFUFBKBV7ZxxEyBAgAABAgQIECBAgAABAgQIECBQKiAALSVyAAECBAgQIECAAAECBAgQIECAAAECVRUQgFa1c8ZNgAABAgQIECBAgAABAgQIECBAgECpgAC0lMgBBAgQIECAAAECBAgQIECAAAECBAhUVUAAWtXOGTcBAgQIECBAgAABAgQIECBAgAABAqUCAtBSIgcQIECAAAECBAgQIECAAAECBAgQIFBVAQFoVTtn3AQIECBAgAABAgQIECBAgAABAgQIlAoIQEuJHECAAAECBAgQIECAAAECBAgQIECAQFUFBKBV7ZxxEyBAgAABAgQIECBAgAABAgQIECBQKiAALSVyAAECBAgQIECAAAECBAgQIECAAAECVRUQgFa1c8ZNgAABAgQIECBAgAABAgQIECBAgECpgAC0lMgBBAgQIECAAAECBAgQIECAAAECBAhUVUAAWtXOGTcBAgQIECBAgAABAgQIECBAgAABAqUCAtBSIgcQIECAAAECBAgQIECAAAECBAgQIFBVAQFoVTtn3AQIECDw/9qxQxsAAACEYf9/zQnTJPUIUhwECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKeAATSIBAgQIECBAgAABAgQIECBAgAABAgReBRygr8vpTYAAAQIECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKeAATSIBAgQIECBAgAABAgQIECBAgAABAgReBRygr8vpTYAAAQIECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKeAATSIBAgQIECBAgAABAgQIECBAgAABAgReBRygr8vpTYAAAQIECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKeAATSIBAgQIECBAgAABAgQIECBAgAABAgReBRygr8vpTYAAAQIECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKeAATSIBAgQIECBAgAABAgQIECBAgAABAgReBRygr8vpTYAAAQIECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKeAATSIBAgQIECBAgAABAgQIECBAgAABAgReBRygr8vpTYAAAQIECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKeAATSIBAgQIECBAgAABAgQIECBAgAABAgReBRygr8vpTYAAAQIECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKeAATSIBAgQIECBAgAABAgQIECBAgAABAgReBRygr8vpTYAAAQIECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKeAATSIBAgQIECBAgAABAgQIECBAgAABAgReBRygr8vpTYAAAQIECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKeAATSIBAgQIECBAgAABAgQIECBAgAABAgReBRygr8vpTYAAAQIECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKeAATSIBAgQIECBAgAABAgQIECBAgAABAgReBRygr8vpTYAAAQIECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKeAATSIBAgQIECBAgAABAgQIECBAgAABAgReBRygr8vpTYAAAQIECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKeAATSIBAgQIECBAgAABAgQIECBAgAABAgReBRygr8vpTYAAAQIECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKeAATSIBAgQIECBAgAABAgQIECBAgAABAgReBRygr8vpTYAAAQIECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKTAK5TTYcAdf5AAAAABJRU5ErkJggg==" width="672" /></p>
</div>
<div id="merge統合" class="section level2" number="13.2">
<h2><span class="header-section-number">13.2</span> Merge/統合</h2>
<p>グラフを統合して論文用に保存。 ### graph size</p>
<div class="sourceCode" id="cb125"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb125-1"><a href="#cb125-1" aria-hidden="true" tabindex="-1"></a>dpi_num <span class="ot">&lt;-</span> <span class="dv">100</span></span>
<span id="cb125-2"><a href="#cb125-2" aria-hidden="true" tabindex="-1"></a>width_num <span class="ot">&lt;-</span> <span class="dv">15</span></span>
<span id="cb125-3"><a href="#cb125-3" aria-hidden="true" tabindex="-1"></a>height_num <span class="ot">&lt;-</span> <span class="dv">15</span></span></code></pre></div>
<div id="wls" class="section level3" number="13.2.1">
<h3><span class="header-section-number">13.2.1</span> WLS</h3>
<div class="sourceCode" id="cb126"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb126-1"><a href="#cb126-1" aria-hidden="true" tabindex="-1"></a>ymin <span class="ot">&lt;-</span> <span class="sc">-</span> <span class="dv">50</span></span>
<span id="cb126-2"><a href="#cb126-2" aria-hidden="true" tabindex="-1"></a>ymax <span class="ot">&lt;-</span> <span class="dv">155</span></span>
<span id="cb126-3"><a href="#cb126-3" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb126-4"><a href="#cb126-4" aria-hidden="true" tabindex="-1"></a>ymin_num <span class="ot">&lt;-</span> <span class="sc">-</span> <span class="dv">50</span></span>
<span id="cb126-5"><a href="#cb126-5" aria-hidden="true" tabindex="-1"></a>ymax_num  <span class="ot">&lt;-</span> <span class="dv">150</span></span>
<span id="cb126-6"><a href="#cb126-6" aria-hidden="true" tabindex="-1"></a>interval <span class="ot">&lt;-</span> <span class="dv">25</span></span>
<span id="cb126-7"><a href="#cb126-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb126-8"><a href="#cb126-8" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_WLS <span class="ot">&lt;-</span> graph_koguchi_number_WLS <span class="sc">+</span> </span>
<span id="cb126-9"><a href="#cb126-9" aria-hidden="true" tabindex="-1"></a>  <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;(a) Emergency Small Amount Funds&quot;</span>) <span class="sc">+</span> </span>
<span id="cb126-10"><a href="#cb126-10" aria-hidden="true" tabindex="-1"></a>  <span class="fu">scale_y_continuous</span>(<span class="at">limit =</span> <span class="fu">c</span>(ymin, ymax), <span class="at">breaks=</span><span class="fu">seq</span>(ymin_num, ymax_num, interval))</span>
<span id="cb126-11"><a href="#cb126-11" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb126-12"><a href="#cb126-12" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_WLS_covar <span class="ot">&lt;-</span> graph_koguchi_number_WLS_covar <span class="sc">+</span> </span>
<span id="cb126-13"><a href="#cb126-13" aria-hidden="true" tabindex="-1"></a>  <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;(b) Emergency Small Amount Funds, with covariates&quot;</span>) <span class="sc">+</span> </span>
<span id="cb126-14"><a href="#cb126-14" aria-hidden="true" tabindex="-1"></a>  <span class="fu">scale_y_continuous</span>(<span class="at">limit =</span> <span class="fu">c</span>(ymin, ymax), <span class="at">breaks=</span><span class="fu">seq</span>(ymin_num, ymax_num, interval))</span>
<span id="cb126-15"><a href="#cb126-15" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb126-16"><a href="#cb126-16" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_WLS <span class="ot">&lt;-</span> graph_sogo_number_WLS <span class="sc">+</span> </span>
<span id="cb126-17"><a href="#cb126-17" aria-hidden="true" tabindex="-1"></a>  <span class="fu">labs</span>(<span class="at">title =</span>  <span class="st">&quot;(c) General Support Funds&quot;</span>)<span class="sc">+</span> </span>
<span id="cb126-18"><a href="#cb126-18" aria-hidden="true" tabindex="-1"></a>  <span class="fu">scale_y_continuous</span>(<span class="at">limit =</span> <span class="fu">c</span>(ymin, ymax), <span class="at">breaks=</span><span class="fu">seq</span>(ymin_num, ymax_num, interval))</span>
<span id="cb126-19"><a href="#cb126-19" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb126-20"><a href="#cb126-20" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_WLS_covar <span class="ot">&lt;-</span> graph_sogo_number_WLS_covar <span class="sc">+</span> </span>
<span id="cb126-21"><a href="#cb126-21" aria-hidden="true" tabindex="-1"></a>  <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;(d) General Support Funds, with covariates&quot;</span>) <span class="sc">+</span> </span>
<span id="cb126-22"><a href="#cb126-22" aria-hidden="true" tabindex="-1"></a>  <span class="fu">scale_y_continuous</span>(<span class="at">limit =</span> <span class="fu">c</span>(ymin, ymax), <span class="at">breaks=</span><span class="fu">seq</span>(ymin_num, ymax_num, interval))</span>
<span id="cb126-23"><a href="#cb126-23" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb126-24"><a href="#cb126-24" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_WLS <span class="ot">&lt;-</span> graph_jukyo_number_WLS <span class="sc">+</span> </span>
<span id="cb126-25"><a href="#cb126-25" aria-hidden="true" tabindex="-1"></a>  <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;(e) Housing Security Benefit&quot;</span>) <span class="sc">+</span> </span>
<span id="cb126-26"><a href="#cb126-26" aria-hidden="true" tabindex="-1"></a>  <span class="fu">scale_y_continuous</span>(<span class="at">limit =</span> <span class="fu">c</span>(<span class="sc">-</span><span class="dv">15</span>, <span class="dv">50</span>), <span class="at">breaks=</span><span class="fu">seq</span>(<span class="sc">-</span><span class="dv">10</span>, <span class="dv">50</span>, <span class="dv">10</span>))</span>
<span id="cb126-27"><a href="#cb126-27" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb126-28"><a href="#cb126-28" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_WLS_covar <span class="ot">&lt;-</span> graph_jukyo_number_WLS_covar <span class="sc">+</span> </span>
<span id="cb126-29"><a href="#cb126-29" aria-hidden="true" tabindex="-1"></a>  <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;(f) Housing Security Benefit, with covariates&quot;</span>) <span class="sc">+</span> </span>
<span id="cb126-30"><a href="#cb126-30" aria-hidden="true" tabindex="-1"></a>  <span class="fu">scale_y_continuous</span>(<span class="at">limit =</span> <span class="fu">c</span>(<span class="sc">-</span><span class="dv">15</span>, <span class="dv">50</span>), <span class="at">breaks=</span><span class="fu">seq</span>(<span class="sc">-</span><span class="dv">10</span>, <span class="dv">50</span>, <span class="dv">10</span>))</span>
<span id="cb126-31"><a href="#cb126-31" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb126-32"><a href="#cb126-32" aria-hidden="true" tabindex="-1"></a>graph <span class="ot">&lt;-</span> (graph_koguchi_number_WLS <span class="sc">|</span> graph_koguchi_number_WLS_covar) <span class="sc">/</span> </span>
<span id="cb126-33"><a href="#cb126-33" aria-hidden="true" tabindex="-1"></a>  (graph_sogo_number_WLS <span class="sc">|</span> graph_sogo_number_WLS_covar) <span class="sc">/</span></span>
<span id="cb126-34"><a href="#cb126-34" aria-hidden="true" tabindex="-1"></a>    (graph_jukyo_number_WLS <span class="sc">|</span> graph_jukyo_number_WLS_covar) </span>
<span id="cb126-35"><a href="#cb126-35" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb126-36"><a href="#cb126-36" aria-hidden="true" tabindex="-1"></a>graph</span></code></pre></div>
<pre><code>## Warning: Removed 2 rows containing missing values (geom_point).

## Warning: Removed 2 rows containing missing values (geom_point).

## Warning: Removed 2 rows containing missing values (geom_point).

## Warning: Removed 2 rows containing missing values (geom_point).</code></pre>
<pre><code>## Warning: Removed 12 rows containing missing values (geom_point).

## Warning: Removed 12 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,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QAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQIAMYM4BBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoEUEyABukQPJbiCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJkAHMOIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAi0iQAZwixxIdgMBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBAgA5hzAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEGgRATKAW+RAshsIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAGcCcAwgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggECLCJAB3CIHkt1AAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEyADmHEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRaRIAM4BY5kOwGAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggQAYw5wACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCDQIgJkALfIgWQ3EEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAATKAOQcQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBFhEgA7hFDiS7gQACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCJABzDmAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIItIgAGcAtciDZDQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQIAMYM4BBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoEUEyABukQPJbiCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJkAHMOIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAi0i0KFF9oPdaGKB9957zwwaNMjMnDnTLLbYYubll182Cy+8cEP2qFAomA022MC8+uqrpl27duaBBx4w66+/furb8vnnn5v7778/1fX07t07k31JdSdYOAJtTGDy5Mnmvvvu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BBBAAAEESgiQAVwChsEIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAswmQAdxsR4ztRQABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBEoIkAFcAobBCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQLMJkAHcbEeM7UUAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRKCJABXAKGwQgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggECzCZAB3GxHjO1FAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEESgh0KDGcwXUUmDBhgjnssMPMQgstZO67776KS549e7YZMWKE0WectPnmm5u11lorctKffvrJPPDAA+aRRx4x7733npk5c6bp16+fWXXVVc16661n+vbtGzkfAxFAAAEEEEAAAQQQQAABBNq2wHHHHWfGjh1rfvOb35ghQ4ZUxHj66afNM888U3E6TTD//PObI444ouS0xLIlaRiBAAIIIIAAAggggAACCFQUIAO4IlFtE8yYMcOcc845plAoxF6QMmrvuuuu2NMvu+yykRnAn376qTn22GPNO++8E1jWCy+8YPR3/fXXmxNPPNFsvfXWgfH0IIAAAggggAACCCCAAAIItG2B0aNHO5m/SRQeeugh89hjj8WaZYEFFiiZAUwsG4uQiRBAAAEEEEAAAQQQQACBkgJkAJekqX3EN998Y4455hin5G2SpU2aNCnJ5JHTat2//e1vvczfFVdc0WywwQamW7duZvz48ebJJ58033//vTnrrLOMpt1pp50il8NABBBAAAEEEEAAAQQQQACBtiXw8MMPm4svvjjxTr/55puJ5wnPQCwbFqEfAQQQQAABBBBAAAEEEEguQAZwcrNYc7z66qvm3HPPNVOmTIk1vX+it956y+u98MILjTJvyyW9OR1O1113nZk8ebIzeLPNNjPDhw838847r9O//fbbm1deecUcf/zxTubvpZdeajbeeGOz+OKLhxdDPwIIIIAAAggggAACCCCAQBsRmDVrlhk5cqS59dZbE9ViJZ5vv/3WTJs2zZEaOHCgOfnkk8uqzTPPPJHjiWUjWRiIAAIIIIAAAggggAACCCQSiI64Ei2Cif0CCnovueQSc+ihh1aV+atluW9Nt2/f3qyxxhpmscUWK/untpP86auvvjL33HOPM2iJJZYIZP6606222mrOcPWrbSV3enc8nwgggAACCCCAAAIIIIAAAm1HQDVF7bvvvuaWW24xs2fPTrzjegHZbfpolVVWKRvDKsbt2rVr0TqIZYtIGIAAAggggAACCCCAAAIIVCVACeCq2KJneu2118zpp59uPvzwQ2eCdu3amT333NPcd9995vPPP4+eKWKomwG83HLLmY4dO0ZMUX7Q448/7rx9ral22GEHr+RveC5VCb3MMss4VVQrA3jvvfc2HTpwSoSd6EcAAQQQQKARAjvvvLP5+uuvi1Z90kknmY022qhoOAMQQAABBBCoRkCZtiNGjDB33nmnN3uvXr3MoEGDzKhRo7xhlTrcOFbTrbzyypUmjxxPLBvJwkAEEEAAAQSaRmDixInm6KOPjtxe3WuECzJFTshABBBAAIG6CJDbVxfGOQt55plnvMxfvdF8yimnmAEDBpgHH3zQmUAZwpXSZ599Zr744gtnsmqDZlU/7aa1117b7Yz8VNVc7733nvnvf/9rxo0bZypNH7kQBiKAAAIIIIBA3QXeffddo5JQ4aS2EUkIIIAAAgjUS0Clff2Zv9ttt535zW9+Yx555BFvFXFi2XpkABPLeuR0IIAAAggg0JQC33//vXn77bcjt72aGkYiF8RABBBAAIFYAmQAx2KKP9HCCy9sdt11VzNkyBAT1TZvpSX5g+a+fft6k8+cOdNMnz7d9OjRw6hq6HJJJZGVFKSvsMIK5SYNtC+sH2cygMtyMRIBBBBAAAEEEEAAAQQQaEkBlfhVFdBqLqia5MayXbp0Md27d3cWodLFH3/8senUqZNZZJFFKi6WWLYiERMggAACCCCAAAIIIIAAArEEyACOxRRvos0339zssccepnPnzvFmiJjKDZo1StUzX3/99eYf//iH+eijj5yp55tvPtO7d2+z9dZbO5nMUW9iv//++8603bp1q1ilsxuYa4apU6c68/EPAQQQQAABBBBAAAEEEECgbQjMM8885qqrrjL9+/eveod/+uknr7SParKaMGGC+etf/2peeeUV89133znLXWKJJYzaBj744IPNUkstFbkuYtlIFgYigAACCCCAAAIIIIAAAokFyABOTFZ6hkqlbUvPOXfMW2+95fX8/ve/Nyr560+qRkNtKejv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c/jhh/sHed39+/c3p59+ujnnnHPMd999Z6655hrnTyWF3VK/mnippZYy5513nplnHt4F8PDoQAABBBBAAAEEEEAAAQQQiC3QoUMHJ/5Upu60adPM+++/b373u98582ucMoHdtMQSSziZwX379nUHBT6JZQMc9CCAAAIIIIAAAggggAACVQmQAVwVW7oz7bnnnkYley+99FKvjV4381cZuMstt5wZOnSoGTx4cNkN2XzzzZ1p//CHPzhvXCtD2c38VRC+4447mn322ccsssgiZZfDSAQQQAABBBBAAIHmF5g0aZJTGs+/JwsuuKBZccUV/YPoRgABBKoS6Natm7nhhhvM7bff7nx+8803znLczN8uXbqYNddc06iEb9euXcuug1i2LA8jEUAAAQQQQAABBBBAAIGKAmQAVySqfYLRo0cnXogexCkDWEHz1KlTnTeoe/ToYdQmkqqKjpt69+7tlPxVKWBVu/Xxxx+bnj17ml69ehk98CMhgAACCCCAAAIItA2BXXfd1Wt7093jDTbYwIwZM8bt5RMBBBDwBH7+858b/SVJ8847r9l9992dF5Y/+ugjJ5bVy8wrrbSSUTybJBHLJtFiWgQQQAABBBBAAAEEEEAgKEAGcNAjd30LLLCA6devn/NXy8bNP//8TptMbrtMtSyLeRFAAAEEEEAAAQQQQAABBBAoJaAmhvTisf5qTcSytQoyPwIIIIAAAggggAACCLRFARp+bYtHnX1GAAEEEEAAAQQQaHMCaj5E1a+6aeDAgWaLLbZwe/lEAAEEEEAAAQQQQAABBBBAIFcCn376qenevXvR34gRI3K1nWwMAnkUoARwHo8K24QAAggggAACCCCAQJ0FzjnnHLPEEkuYl156yVnysGHDzIEHHljntbA4BBBAAAEEEEAAAQQQQAABBOoj8NNPP5lPPvmkaGFqOpOEAALlBSgBXN6HsQgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAhkLqGmRLl26mA4d5pZlXHjhhY2aCSEhgEB5gbnfmvLTMRYBBBBAAAEEEEAAAQQQqKuASiNPmTIlsMz27dubX/ziF4Fh9CCAAAIIIIAAAggggAACCLQ9AdViNX36dLPVVluZhx9+2AGYMGGC6dWrV9vDYI8RSChABnBCMCZHAAEEEEAAAQQQQACB+ghcfvnl5tprrw0srFOnTmbmzJmBYfQggAACCCCAAAIIIIAAAggggAACCMQXIAM4vhVTIoAAAggggAACmQnceOONRm3dhNMyyywTHkQ/AggggAACCCCAAAIIIIAAAg0X6NOnjxk9enTkdlBlbyQLAxFAAIHUBMgATo2WBSOAAAIIIIAAAtUL9O3bt/qZmROBJhHYdtttzXfffWduvvlmZ4vXWGMNqn9ukmPHZiKAAAIIIIAAAgggEBZQbT79+/cPD6YfAQQQQKABAvM0YJ2sEgEEEEAAAQQQQAABBBAwQ4YMMQceeKAnsc4665gzzjjD66cDAQQQQAABBBBAAAEEEEAAAQQQQCC5ABnAyc2YAwEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEMilABnAuTwsbBQCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCQXIAM4ORmzIEAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgjkUoAM4FweFjYKAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQSC5ABnByM+ZAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEcilABnAuDwsbhQACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCQXIAM4uRlzIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAArkUIAM4l4eFjUIAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQSSC5ABnNyMORBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIFcCpABnMvDwkYhgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACyQXIAE5uxhwIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBALgXIAM7lYWGjEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgeQCZAAnN2MOBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAIJcCZADn8rCwUQgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEByATKAk5sxBwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIJBLATKAc3lY2CgEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAguUCH5LMwBwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJtT+CII44wX3zxRWDHBw0aZI488sjAMHoQaKQAGcCN1GfdCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACTSMwatQo8+GHHwa2d+bMmWQAB0ToabQAVUA3+giwfgQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQKBOAmQA1wmSxSCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCLS2wAMPPGD23ntvbyfPP/98oz8SAnkSIAM4T0eDbUEAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEMitwOqrr26WXHJJb/v69OljVlhhBa+fDgTyIEAGcB6OAtuAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII1EGgQx2WwSIQQAABBBBAAAEE6iwwbNgw88033xQt9aijjjLrrLNO0XAGIIAAAggggAACCCCAAAIIINBIgcmTJ5vhw4dHbsK1115r5p9//shxDEQAAQQQqL8AGcD1N2WJCCCAAAIIIIBAzQLjx483X331VdFypk+fXjSMAQgggAACCCCAAAIIIIAAAgg0WkAvMf/73/+O3IzZs2dHDmcgAggggEA6AlQBnY4rS0UAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQyFyADOHNyVogAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgikI0AGcDquLBUBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBDIXIAM4MzJWSECCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCQjgAZwOm4slQEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAgcwEygDMnZ4UIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAOgJkAKfjylIRQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBzAXIAM6cnBUigAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAC6QiQAZyOK0tFAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEMhcgAzhzclaIAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIpCNABnA6riwVAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQyFyADODMyVkhAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkI4AGcDpuLJUBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAIHMBMoAzJ2eFCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQDoCZACn48pSEUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgcwFyADOnJwVIoAAAggggAACCCCAAAIIIIAAAggggAACCPw/e/cBZldVLoz/TSeJhCQklEAigWAI1QiEKgKK+l0QEJSioqKCFOEi7Q8fyBUufiIgzXL1giJwbYBwBVHBgPQmYghdCKGEklBCCyQh5X/WwXOYsvfMmZkzM2fO+a3nGc8+q+21fzuGrHn3XosAAQIECBAg0D0CAsDd46pXAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI9LjAwB4/YwOe8P77749DDz00VlxxxbjmmmsqFrj99tvjL3/5S8yZM6f4M3DgwJgwYUKstdZasfvuu8e6667bZl+33XZbpD4qSSussEIcdthhlVRVhwABAgQIECBAgAABAgQaQODoo4+Ou+66K4444ojYc889K7ri1157LX7729/Go48+WpzHvvTSSzFu3LgYP358bLLJJrHHHnvEoEGD2uzLXLZNHoUECBAgQIAAAQIECBBoV0AAuF2irlV444034rvf/W4sX7684o6ee+65OOOMM+Kee+5p1ebVV1+NmTNnxh/+8IfixPnAAw+MoUOHtqqXMq677rq44YYbMstaZg4fPlwAuCWK7wQIECBAgAABAgQIEGhQgSuuuKIY/O3I5V922WXx85//PN58881mzZ588slIP7fcckv8/ve/j2OOOSamTp3arE7TL+ayTTUcEyBAgAABAgQIECBAoOMCAsAdN6u4xYIFC+LII4+MZ555puI2ixYtiuOPPz6eeOKJYpuRI0fGxz/+8eJbvwsXLiw+RT19+vRYunRpXH755ZECzCeeeGJm/4899lhmvkwCBAgQIECAAAECBAgQIJAnkFaiOuecc/KKM/NT0Pa8884rl22xxRbFN37HjBlTfBP45ptvLgaB0/w4vVl8wQUXxMSJE8v1mx6YyzbVcEyAAAECBAgQIECAAIGOCwgAd9ysohYPPPBAnHbaafHUU09VVL9U6Uc/+lE5+Dtt2rT4j//4jxgxYkSpuPi5zz77FAPL8+fPj2uvvTa22Wab2GGHHZrVefvtt4uT7JS52Wab5QaJS43697cddMnCJwECBAgQIECAAAECBBpRID2Q/LOf/ay4hHNHV7E688wzi2QDBgyIU045JbbbbrtmhPvvv3/88Ic/jN/97nexePHiYp3zzz8/0lZHTZO5bFMNxwQIECBAgAABAgQIEOicQPOZVuf60KqJQJqs/vd//3dxUtuRCXPqYsmSJfGnP/2p2FvaL/iEE05oFfxNhZMmTYpjjz22+KZw+p72FW4ZAJ41a1Z52en1118/Vl555VRVIkCAAAECBAgQIECAAAECrQRmzJgR3/ve98oPEreq0EbG9ddfH2kunNLnPve5VsHflJ8CvYcddlg8+OCD8cgjj8Tjjz9eXOFqgw02SMXlZC5bpnBAgAABAgQIECBAgACBTgt47bPTdK0bponsl770peLSzCn4269fv9hvv/1i9OjRrStn5Dz66KORlnlOadttt22z3dZbbx0rrLBCsW5q1zI1XTJr8uTJLYt9J0CAAAECBAgQIECAAAECxQeHzzrrrGJwds6cOUWRCRMmxJ577lmxTgoel9Kuu+5aOmz1md4O3n777cv5//znP8vHpQNz2ZKETwIECBAgQIAAAQIECHRewBvAnbdr1fL222+P559/vpif3rg96aST4kMf+lD8+c9/LualgHBbKe0ZnJZrfumll6K9oG1asnnUqFHF87366qvFJbQGDx5c7t6kuUzhgAABAgQI9EmBH/zgB8XVQVoOfr311muZ5TsBAgQIEOi0wLJly+LKK68st995553jiCOOiOnTp5fz2pvLpoee08pTb7zxRqy66qrldlkHTVenevHFF1tVMZdtRSKDAAECBAj0GYGJEycWt5PIGvCQIUOysuURIECAQDcJCABXGTbt17v33nsXn5YePnx4h3pPe/6mn0rSm2++WQ42p6ezmwZ/U/vSpHnkyJHlCXh6K3nu3LkxdOjQWGmllSo5jToECBAgQIBALwlsueWWvXRmpyVAgACBRhTYfPPN48tf/nJsvPHGHb78tH1RpSkt/VxK66yzTumw/GkuW6ZwQIAAAQIE+pxA2tYwrWwpESBAgEDvCwgAV/Ee7LjjjvH5z38+hg0bVsVes7u66qqrygVTpkwpH6eDpUuXxhNPPFHMS28S33///fGLX/wiZs6cWV5iepVVVik+oX3QQQfFGmus0ay9LwQIECBAgAABAgQIECDQGAJpdamf/OQn0XIv3u64+rfeeiuuu+66ctfmsmUKBwQIECBAgAABAgQIEKiqgABwFTmznl6uYvflrtIS0RdffHHxe1qKq+UeS08//XRxSehUIQV9DznkkHLb0sG8efMi/dx5551x8MEHxx577FEqavfzhhtuKJ8/q/Jzzz1XDCqnt5Rfe+21rCryCBAgQIAAAQIECBAgQKAGBNKcsieCv+lS04PJ8+fPL151Wv1q3LhxzQS6ey57zjnnRNP9ipudvPBl9uzZxblsmnMvWrSoZbHvBAgQIECAAAECBAgQ6DMCAsB95la9O9AUVD366KMj7Rec0mc/+9lWS3SVlsxK5W+//XassMIK8cEPfjCmTp0aaW+mNKm98cYbIwVqFy5cGGeffXak5Tl22mmn1KTdlPY5vuOOO9qsl5a/NmFuk0ghAQIECBAgQIAAAQIEGkbgj3/8Y/z6178uXm9aNevYY49tde3dPZd9+OGHK5rLvvLKK63GJoMAAQIECBAgQIAAAQJ9SUAAuA/drRRQPf7442PWrFnFUY8fPz4OPPDAVlfQdNI8ZsyYOOuss2LixInN6u2///5x3nnnxdVXX13MP/fcc2OzzTaLUaNGNavnCwECBAgQIECAAAECBAgQ6IrAbbfdFqeffnq5i8MPPzxWXXXV8vfSgblsScInAQIECBAgQIAAAQIEuiYgANw1vx5r/eqrr8Zxxx0XDz74YPGcaQ/fM888M4YMGdJqDLvttltxCa/0pu72228fq6++eqs66a3go446Kh555JFIk+y0VPOll14aX//611vVlUGAAAECBAgQIECAAAECBDojkN78TcHfpUuXFpt/6Utfip133jmzK3PZTBaZBAgQIECAAAECBAgQ6LCAAHCHyXq+wZw5c4rLPj/77LPFk6eAbtq7qOV+SaWRrbnmmpF+2ksDBgyIr3zlK8W3ilPdpk9bt9U27Tm8zTbb5Fa57LLL4oQTTihP8HMrKiBAgAABAgQIECBAgACBuhX4+c9/HhdeeGH5+tJKVGkOmpe6ey77n//5n/HWW2/lnT6+8Y1vxHXXXRdLlizJraOAAAECBAgQIECAAAECfUFAALjG71J64ze9+ZveAE5p8uTJxaen016+1UiTJk0qd/PEE0+Uj9s6SPsFp5+8lJaRfuedd/KK5RMgQIAAAQIECBAgQIBAHQukAOoZZ5wR6e3flPr37x9HHnlkpDd8q5U6M5dNK2m1ldIKW+aybQkpI0CAAAECBAgQIECgrwgIANfwnbr55pvj5JNPjsWLFxdHueWWW8Ypp5wSQ4cOrdqox44dW+4rLQMtESBAgAABAgQIECBAgACBzgosWLAgTjzxxLjnnnuKXaTth7797W+3uYpUZ85lLtsZNW0IECBAgAABAgQIEGgUAQHgGr3Tv//97+P73/9+LF++vDjC3XffPY444ohIyza3l9KEe/78+bFo0aJYZ5112qw+b968cvn48ePLxw4IECBAgAABAgQIECBAgEBHBNLKVWneOmvWrGKzlVdeOb73ve8VV7KqpB9z2UqU1CFAgAABAgQIECBAgED7AgLA7Rv1eI20TNaZZ55ZPu+hhx4a++yzT/l7WwdpP6Odd965uP/u4MGDi0tupWWs8tKTTz5ZLpowYUL52AEBAgQIECBAgAABAgQIEKhU4I033igu81wK/k6cOLG4DPSqq65aURfmshUxqUSAAAECBAgQIECAAIGKBPpXVEulHhNI+/CefvrpxfP169cvTjjhhIqDv6nRsGHDYv311y+2T0tH33XXXcXjvP/51a9+VS7adttty8cOCBAgQIAAAQIECBAgQIBApQJpBavHHnusWH299daLH/7wh1Fp8Dc1MpetVFo9AgQIECBAgAABAgQItC8gANy+UY/WSJPmpUuXFs+5//77xyc/+ckOn79pIPfcc8+N9CR2Vrr88stjxowZxaJ11103dtppp6xq8ggQIECAAAECBAgQIECAQK5A2u/3+uuvL5anZZ9PO+20GDFiRG79vAJz2TwZ+QQIECBAgAABAgQIEOiYgCWgO+bVrbX//Oc/x8yZM4vnSG//PvTQQ3HsscdWdM70pvBKK61UrLvXXnvFrbfeGvfff3+kPX4POOCAOOyww2Lq1KmRloWePXt2XHrppZHOl1LKO/zwwyOdUyJAgAABAgQIECBAgAABApUKvPPOO3HWWWeVq6c3edO+v5WkadOmxWc+85lyVXPZMoUDAgQIECBAgAABAgQIdElAALhLfNVtfOWVV5Y7XL58edx5553l7+0dLFq0qFxl4MCBcfLJJxeDunPmzIlnn302jjvuuGJ5KluyZEm57iqrrBLf+c53Ii3RJREgQIAAAQIECBAgQIAAgY4I3HvvvfHMM8+Um6Tjpt/LBRkHo0ePbpZrLtuMwxcCBAgQIECAAAECBAh0WsAS0J2mq37DJ598smqdjh07Ni6++OI4+OCDY/jw4eV+S8HfkSNHxg477BAXXHCB4G9ZxwEBAgQIECBAgAABAgQIdEQgrTBVzWQuW01NfREgQIAAAQIECBAg0KgC3gDugTt/xRVXVHSWa6+9tqJ6lVYaNGhQfO5zn4t99tknXnjhhXj66adj8eLF8YEPfCBWW221SrtRjwABAgQIECBAgAABAgQaTGCXXXaJ9NNeSvPN9FPNZC5bTU19ESBAgAABAgQIECDQiAICwA1w1/v37x/jxo0r/jTA5bpEAgQIECBAgAABAgQIEKgDAXPZOriJLoEAAQIECBAgQIAAgV4RsAR0r7A7KQECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBKovIABcfVM9EiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoFcEBIB7hd1JCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUH0BAeDqm+qRAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECvSIgANwr7E5KgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACB6gsIAFffVI8ECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDoFYGBvXJWJyVAgAABAgQIEGhT4JhjjokFCxa0qvO1r30tPvShD7XKl0GAAAECBAgQIECAAAECBHpT4Mknn4zTTz89cwhnn312DBkyJLNMJgECBAhUX0AAuPqmeiRAgAABAgQIdFngxhtvjNdff71VP7vuumurPBkECBAgQIAAAQIECBAgQKC3BdIc9vrrr88cxtKlSzPzZRIgQIBA9whYArp7XPVKgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBHhcQAO5xcickQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA9wgIAHePq14JECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECDQ4wICwD1O7oQECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDoHgEB4O5x1SsBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgR6XEAAuMfJnZAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLdIyAA3D2ueiVAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgECPCwgA9zi5ExIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKB7BASAu8dVrwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOhxAQHgHid3QgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECHSPgABw97jqlQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAj0uIADc4+ROSIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAge4READuHle9EiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoMcFBIB7nNwJCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0D0CAsDd46pXAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI9LiAAHCPkzshAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEukdAALh7XPVKgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBHhcQAO5xcickQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA9wgIAHePq14JECBAgAABAgQIECBAgAABAgQIECBAPSoXwwAAQABJREFUgAABAgQIECDQ4wICwD1O7oQECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDoHgEB4O5x1SsBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgR6XEAAuMfJnZAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLdIyAA3D2ueiVAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgECPCwzs8TM6IQECBAgQIECAQLsCp556arzzzjut6m2yySat8mQQIECAAAECBAgQIECAAIHeFhg/fnx8//vfzxzG4MGDM/NlEiBAgED3CAgAd4+rXgkQIECAAAECXRL4xCc+0aX2GhMgQIAAAQIECBAgQIAAgZ4UGDVqVOyyyy49eUrnIkCAAIEcAUtA58DIJkCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQF8TEADua3fMeAkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIJAjIACcAyObAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECfU1AALiv3THjJUCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQI6AAHAOjGwCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAj0NQEB4L52x4yXAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECOQICwDkwsgkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINDXBASA+9odM14CBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAjkCAgA58DIJkCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQF8TEADua3fMeAkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIJAjIACcAyObAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECfU1AALiv3THjJUCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQI6AAHAOjGwCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAj0NQEB4L52x4yXAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECOQICwDkwsgkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINDXBASA+9odM14CBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAjkCAzMyZddRYH7778/Dj300FhxxRXjmmuuqbjnZ599Ni655JJ49NFHIx2vssoqseGGG8ZGG20UO+64YwwdOrTdvpYuXRp/+tOfYvr06fHMM8/EW2+9FVOmTCn2sdVWW8V6663Xbh8qECBAgAABAgQIECBAgEDjCRx99NFx1113xRFHHBF77rlnRQDVmoNWq5+KBq0SAQIECBAgQIAAAQIE6kxAALibb+gbb7wR3/3ud2P58uUdOtOvf/3r+OlPfxpp0ltKTz31VKSfFES++uqr44wzzigGlUvlLT9ffPHFOOqoo2L27NnNiv72t79F+rnooovi+OOPj0984hPNyn0hQIAAAQIECBAgQIAAgcYWuOKKK4rB344oVGsOWq1+OjJ2dQkQIECAAAECBAgQIFBPAgLA3Xg3FyxYEEceeWTxzduOnCYFeH/84x8XmwwePLj4tm9683fevHlx2223xaxZs+LBBx+Mb3zjG3H22WfH6NGjW3Wfzn3MMceUg7+TJk2KbbbZJsaOHRszZsyIm2++ORYvXhynnnpqpLp77LFHqz5kECBAgAABAgQIECBAgEDjCfzlL3+Jc845p0MXXq05aLX66dDgVSZAgAABAgQIECBAgECdCQgAd9MNfeCBB+K0004rvrHbkVPMnz8/zjrrrGKT4cOHF98enjp1armL/fffvxi0vf766+OJJ56IX/ziF8Ugc7nCvw4uvPDCYqA4fd1hhx3iW9/6VgwaNKhYuttuu8XMmTPj2GOPLQZ/zzvvvNhuu+1izJgx/2rtgwABAgQIECBAgAABAgQaTWDRokXxs5/9LH772992eBWras1Bq9VPo90710uAAAECBAgQIECAAIGmAv2bfnHcdYG33347zj333DjkkEM6HPxNZ7/sssuKb+am44MPPjiaBn9T3sCBA+Okk04q79375z//ubivbyorpddffz2uuuqq4te0b3DT4G+pzsYbb1zMT9/TMtOl+qVynwQIECBAgAABAgQIECDQOAJppagvf/nLkbYjWrZsWYcuvFpz0Gr106HBq0yAAAECBAgQIECAAIE6FBAAruJNTcsyf+lLX4rLL7+8+LR0v379Yr/99stcojnvtGn555SGDh0a//Zv/5ZZrX///rH33nsXy1LAOQWBm6a//vWvkfJT2n333ctv/jatk47TktDjx48vZqcA8JIlS1pW8Z0AAQIECBAgQIAAAQIE6lhg+fLlxVWoDjvssJgzZ07xSidMmBB77rlnxVddrTlotfqpeOAqEiBAgAABAgQIECBAoE4FBICreGNvv/32eP7554s9rrzyysU9kw488MAYMGBAMS8FhNtKqe0rr7xSrJLe/C0t2ZzVZtNNNy1nX3fddeXjdJCWny6ladOmlQ4zPzfbbLNi/ssvvxz33ntvZh2ZBAgQIECAAAECBAgQIFCfAult3yuvvLJ8cTvvvHNxGehJkyaV89qby1ZrDlqtfsoDd0CAAAECBAgQIECAAIEGFbAHcJVv/IgRI4pv56anpdMevh1J6Q3iUmo62S7lNf0cNWpUpCBzCtymvYCbplI/aZK+zjrrNC1qddz0PKmf9gLGrTqQQYAAAQIECHSLwKmnnlpe0aPpCfbdd9/YcMMNm2Y5JkCAAAECXRbYfPPNi0tAp+2COpqqNQetVj8dHb/6BAgQIECAQHUEnnnmmfjJT36S2dl//Md/xODBgzPLZBIgQIBA9QUEgKtouuOOO8bnP//5GDZsWKd6LS23lRqPGzeu3T5WXXXVYgA4Lff80ksvxZgxY4ptnn322eLn2LFji3sGt9VR6qOUnn766dJhm5+LFy+ORYsW5dZJZWmZ6rSUWPqRCBAgQIAAgY4L/P73v4+0F2LL9OEPf1gAuCWK7wQIECDQaYE0d0u/qN1ggw063Ue15qDV6ifvQtLcua2tj5YuXVqcy3Z0D+S888knQIAAAQKNJjB//vzi9ohZ133CCScIAGfByCNAgEA3CQgAVxG2vbdt2zvVggULylXSG77tpZEjR5arpF8QpwBwmtCWJqud6aPcYRsHl112WZxyyilt1IhIbxan5axTYFoiQIAAAQIECBAgQIAAgdoUSCtHdSX4W605aLX6aUv5iCOOiBtvvLGtKsW5bHp7KY1HIkCAAAECBAgQIECAQF8VsAdwDd25pgHgIUOGtDuypnUWLlxYrF+NPto9sQoECBAgQIAAAQIECBAgQKAgUK05aLX6cVMIECBAgAABAgQIECBAIEIAuIb+FLz11lvl0VSyH0LTOqUlmavRR3kQDggQIECAAAECBAgQIECAQBsC1ZqDVqufNoaqiAABAgQIECBAgAABAg0jYAnoGrrVAwe+dzvS3kPtpaZ1SsHgjvbRdP+jUh/tnTctLT158uTcamnp57SfcdO+cysrIECAAAECBAgQIECAAIE+K1CtOWi1+mkLcs0112xzLvvkk09G2l5p+fLlbXWjjAABAgQIECBAgAABAjUv8F7EseaHWv8DHDp0aPkiFy9eXD7OOyi99ZvKhw8fXqzW0T6anqfUR975Svn/9m//FuknL11wwQVxwAEH5BXLJ0CAAAECBAgQIECAAIE6EajWHLRa/bTF+q1vfaut4thzzz3jiiuuaLOOQgIECBAgQIAAAQIECPQFAUtA19BdahqAbbr/Ud4Qmy6RVWo7bNiwcvXO9lHuwAEBAgQIECBAgAABAgQIEGhDoFpz0Gr108ZQFREgQIAAAQIECBAgQKBhBASAa+hWjxs3rjyaefPmlY/zDkp1BgwYECNGjChWGzJkSKy88srF41J5XvuUP3fu3HLx6NGjy8cOCBAgQIAAAQIECBAgQIBAewLVmoNWq5/2xqucAAECBAgQIECAAAECjSAgAFxDd3mttdYqj+bZZ58tH2cdpP11X3jhhWLR2muvHWmyXEoTJ04sHqY3hOfPn1/KzvxMe/WW0pQpU0qHPgkQIECAAAECBAgQIECAQEUC1ZqDVqufigatEgECBAgQIECAAAECBOpYQAC4hm7upEmTYtCgQcURzZgxo82RPfTQQ/HOO+8U66y//vrN6jb9ft999zUra/ll5syZ5aym7cqZDggQIECAAAECBAgQIECAQBsCTeeSXZmDVqufNoaqiAABAgQIECBAgAABAg0hIABcQ7c57Xm0xRZbFEc0e/bs+Oc//5k7umuvvbZctvXWW5eP08H2229f/t60XjnzXwdp+ed//OMfxW+TJ08OS0C3FPKdAAECBAgQIECAAAECBNoTqNYctFr9tDde5QQIECBAgAABAgQIEKh3AQHgGrvDu+yyS3lEZ5xxRrzxxhvl76WDO+64I6655pri17RE1lZbbVUqKn6uu+66kQK6Kd16662RFQRetGhRnHbaabF06dJivc9//vPFT/9DgAABAgQIECBAgAABAgQ6IlCtOWi1+unI2NUlQIAAAQIECBAgQIBAPQoIANfYXd1mm23KbwE/8sgjcfjhh8ff//73SAHbF198MS677LI4/vjji4Hbfv36xUEHHRTps2X65je/Wc76zne+ExdddFE899xzkfYOTss+H3XUUXHPPfcU66Rltj7ykY+U6zsgQIAAAQIECBAgQIAAAQIdEajWHLRa/XRk7OoSIECAAAECBAgQIECg3gQG1tsF1cP1nHTSSfHtb387/va3v8Xjjz8eRxxxRAwYMKD8tm7pGr/xjW9Ey+WfS2UbbLBBnHzyyfHd7343Fi5cGBdccEHxp2U/a6yxRnzve9+L/v09C1Cy80mAAAECBAgQIECAAAECHROo1hy0Wv10bPRqEyBAgAABAgQIECBAoL4ERP1q8H6OGDEizjzzzNhvv/1ixRVXLI6wtFRz+rL22mvH6aefHnvttVebo99xxx3jpz/9aXE56FKAt9TPwIED47Of/WyxfOTIkW32o5AAAQIECBAgQIAAAQIECLQnUK05aLX6aW+8ygkQIECAAAECBAgQIFCvAt4A7oE7e8UVV3T4LClge+CBBxZ/0tLNjz32WAwZMiTGjx8fq6++esVv7KZgcXr7N70FnPqYO3dujBs3LiZMmBDve9/7OjwuDQgQIECAAAECBAgQIECg/gV22WWXSD8dTdWag1arn46OX30CBAgQIECAAAECBAjUg4AAcB+4iylgm366klZYYYXYaKONij9d6UdbAgQIECBAgAABAgQIECDQnkC15qDV6qe98SonQIAAAQIECBAgQIBAPQlYArqe7qZrIUCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgoQUEgBv69rt4AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgTqSUAAuJ7upmshQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKChBQSAG/r2u3gCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBOpJQAC4nu6mayFAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoKEFBIAb+va7eAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE6klAALie7qZrIUCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgoQUGNvTVu3gCBAgQIECAQI0KHHPMMbFo0aJWo5syZUqrPBkECBAgQIAAAQIECBAgQKC3BcaNGxcnnnhi5jAGDRqUmS+TAAECBLpHQAC4e1z1SoAAAQIECBDoksBee+3VpfYaEyBAgAABAgQIECBAgACBnhQYM2ZM7Lfffj15SuciQIAAgRwBS0DnwMgmQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAXxMQAO5rd8x4CRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkCMgAJwDI5sAAQIECBAgQIAAge4TeOihiEMOidh77/fOceGFEbvuGnH55RHLl7+X74gAAQIECBAgQIAAAQIECBAgQKByAQHgyq3UJECAAAECBAgQIECgiwJLl0YcfXTExhtH/Nd/Rcyd+16HixdHXH11xGc/G7H11hHPPPNemSMCBAgQIECAAAECBAgQIECAAIHKBASAK3NSiwABAgQIECBAgACBLgosW/ZucPf7349IgeC20p13RkybFjF7dlu1lBEgQIAAAQIECBAgQIAAAQIECLQUEABuKeI7AQIECBAgQIAAAQLdIvCd70RceWXlXb/wQsTuu0csWVJ5GzUJECBAgAABAgQIECBAgAABAo0uIADc6H8CXD8BAgQIECBAgACBHhB4/vmI007r+Ilmzoy44IKOt9OCAAECBAgQIECAAAECBAgQINCoAgLAjXrnXTcBAgQIECBAgACBHhT45S8j3nqrcyc8//zOtdOKAAECBAgQIECAAAECBAgQINCIAgLAjXjXXTMBAgQIECBAgACBHhaYPr3zJ7z33ohXXul8ey0JECBAgAABAgQIECBAgAABAo0kIADcSHfbtRIgQIAAAQIECBDoJYGnn+7aiefM6Vp7rQkQIECAAAECBAgQIECAAAECjSIgANwod9p1EiBAgAABAgQIEOhFgX79unbyrrbv2tm1JkCAAAECBAgQIECAAAECBAj0HQEB4L5zr4yUAAECBAgQIECAQJ8VmDCh80NPwd811+x8ey0JECBAgAABAgQIECBAgAABAo0kIADcSHfbtRIgQIAAAQIECBDoJYGPf7zzJ95ss4hRozrfXksCBAgQIECAAAECBAgQIECAQCMJCAA30t12rQQIECBAgAABAgR6SeBTn4ro7DLOX/96Lw3aaQkQIECAAAECBAgQIECAAAECfVBAALgP3jRDJkCAAAECBAgQINCXBJYsiTjkkIjlyzs+6vT275e/3PF2WhAgQIAAAQIECBAgQIAAAQIEGlVAALhR77zrJkCAAAECBAgQINBDAocdFvGXv3T8ZOPHR1x5ZcSAAR1vqwUBAgQIECBAgAABAgQIECBAoFEFBjbqhbtuAgQIECBAgAABAgS6X+CccyJ+8pOOn2dgYaZy990Rq63W8bZaECBAgAABAgQIECBAgAABAgQaWcAbwI189107AQIECBAgQIAAgW4UuOaaiKOOyj/BqFERY8dml6dlo198MbtMLgECBAgQIECAAAECBAgQIECAQL6AAHC+jRICBAgQIECAAAECBDopMHNmxL77Rixblt3B6NHvvuF70UXZ5Sn31lvzy5QQIECAAAECBAgQIECAAAECBAhkCwgAZ7vIJUCAAAECBAgQIECgkwJz50Z86lMRb7yR3cHgwRFXXBExaVLEsGHZdVKuAHC+jRICBAgQIECAAAECBAgQIECAQJ6AAHCejHwCBAgQIECAAAECBDossHBhxG67RTz9dH7TtCfwRz6SX14que220pFPAgQIECBAgAABAgQIECBAgACBSgUEgCuVUo8AAQIECBAgQIAAgTYFli+P+NKXIu66K7/accdF7L9/fnnTkqeeikhvE0sECBAgQIAAAQIECBAgQIAAAQKVCwgAV26lJgECBAgQIECAAAECbQicdFLEpZfmV/j0pyP+3//LL88q+etfs3LlESBAgAABAgQIECBAgAABAgQI5AkMzCuQT4AAAQIECBAg0HsCP/jBD2LRokWtBvCpwsaqkydPbpUvg0BvC/zylxGnnpo/ik03jfif/4no1y+/TlZJWgZ6n32ySuQRIECAAAECBAgQIFBLAs8//3z8Mk0MMtLhhx8egwcPziiRRYAAAQLdISAA3B2q+iRAgAABAgQIdFHg4osvjtdff71VLxtuuKEAcCsVGb0tkIK0X/1q/ijWWCPiqqsihg3Lr5NXcuuteSXyCRAgQIAAAQIECBCoJYEXX3wxzj///MwhHXLIIQLAmTIyCRAg0D0CloDuHle9EiBAgAABAgQIEGgIgdmzI9LSzhkvrBevf/jwiKuvjhg3rnMcDzwQsWBB59pqRYAAAQIECBAgQIAAAQIECBBoRAEB4Ea8666ZAAECBAgQIECAQBUEXnstYpddIgoP+mem/oXZRlr2eerUzOKKMpcsiUhvGEsECBAgQIAAAQIECBAgQIAAAQKVCQgAV+akFgECBAgQIECAAAECTQSWLo3Ya6+Ihx5qktni8LTTInbfvUVmG1/ztgSzDHQbaIoIECBAgAABAgQIECBAgAABAi0EBIBbgPhKgAABAgQIECBAgED7AocfHnHddfn10p7AxxyTX55VkrdMtABwlpY8AgQIECBAgAABAgQIECBAgEC2gABwtotcAgQIECBAgAABAgRyBM47L+LHP84pLGRvv33Ef/1XfnleyWqrZZfcc09EeuNYIkCAAAECBAgQIECAAAECBAgQaF9AALh9IzUIECBAgAABAgQIEPiXwJ/+FHHkkfkc664b8bvfRQwalF8nryQvAPzGGxH33pvXSj4BAgQIECBAgAABAgQIECBAgEBTAQHgphqOCRAgQIAAAQIECBDIFXjggYi9985/G3f06IhrrolIn51JY8ZEDBmS3dIy0NkucgkQIECAAAECBAgQIECAAAECLQUEgFuK+E6AAAECBAgQIECAQCuBefMidtklIr2Nm5XSG7/pzd/0BnBn04ABEVtumd1aADjbRS4BAgQIECBAgAABAgQIECBAoKWAAHBLEd8JECBAgAABAgQIEGgmsHBhxG67RTz1VLPsZl/Snr/bb98sq1Nftt02u9ldd2XnyyVAgAABAgQIECBAgAABAgQIEGguIADc3MM3AgQIECBAgAABAgRaCOy/f8Sdd7bIbPL1mGMivvrVJhldOMwLAD/7bMTjj3ehY00JECBAgAABAgQIECBAgAABAg0iIADcIDfaZRIgQIAAAQIECBDojMC3vx3xm9/kt9x994jTTssv72jJtGkR/fplt7IMdLaLXAIECBAgQIAAAQIECBAgQIBAUwEB4KYajgkQIECAAAECBAgQKAv8+tcRJ59c/trqYOrUiP/5n4j+VZxVjB4dsdFGrU5VzLjttux8uQQIECBAgAABAgQIECBAgAABAu8JVPFXNe916ogAAQIECBAgQIAAgb4tcMcdEWnp57w0blzE1VdHDB+eV6Pz+XnLQHsDuPOmWhIgQIAAAQIECBAgQIAAAQKNIyAA3Dj32pUSIECAAAECBAgQqEjgyScj0tLOixZlVx82LOKqqyLWWCO7vKu522yT3cOjj0a8+mp2mVwCBAgQIECAAAECBAgQIECAAIF3BQSA/UkgQIAAAQIECBAgQKAs8PrrEbvsEjFvXjmr2UHanzct+7zpps2yq/ol7w3g5csjbr65qqfSGQECBAgQIECAAAECBAgQIECg7gQG1t0V9eELuv322wu/0Orcb7R22223mDJlSrOrv62wSVrqs5K0wgorxGGHHVZJVXUIECBAgAABAgTqVGDp0oi994548MH8C/zudyM+/en88mqUTJgQsfrqEc8/37q3tAz0rru2zpdDgEDvCZxxxhmxNP0F0sG08sorxwEHHNCqlblsKxIZBAgQIECAAAECBAgQ6JCAAHCHuLq38mOPPRbXXHNNp06y+eabtwoAX3fddXHDDTdU1N/wwuZtAsAVUalEgAABAgQIEKhbgSOOiPjzn/MvL+0J/P/9f/nl1Sz5yEcifvOb1j3aB7i1iRwCvS2Q5rGdCQBPKDztkRUANpft7Tvq/AQIECBAgAABAgTqU2D+/PnxyCOPtLq4DTbYIEaMGNEqvy9nCAD35bvXZOxZfzBTQFkiQIAAAQIECBAgUInAj34U8cMf5tdMAdmf/CS/vNolaRnorADwP/4RsXhxxODB1T6j/ggQ6GmBrHlsGoO5bE/fCecjQIAAAQIECBAg0BgCN910U2FVs9bLmk2fPj0++tGP1hWCAHAN3c699torPvWpT1U0oh/84AeR/kCmlNqkN4CbprfffjvmzJlTzNpss83ixBNPbFrc6rh/f9tBt0KRQYAAAQIECBBoEIFrr43493/Pv9hJkyKuuKJng655+wAvXBhx110RH/5w/niVECDQswJXpL8gKkhpjvrNb36z8BDH4hg2bFgcd9xxrVqZy7YikUGAAAECBAgQIECAAIEOCwgAd5is+xoMHTo00k976frrry8Hf9Nr6WkC3TLNmjUrli9fXsxef/31I+2tJBEgQIAAAQIECBBoKZD2+y08h1hYvrVlybvfR42K+MMfIkaPzi7vrtwNN4wo7FISCxa0PkNaBloAuLWLHAK9JTC6gr8gFi1aFGeffXYx+JvG+a1vfSve//73txqyuWwrEhkECBAgQIAAAQIECFRJIM1B9i/sb3XJJZfEkiVLijG5ffbZJ8aNG1elM9RON177rJ17UdFInn766fje975XrJv27T311FNj0KBBrdo2XTJr8uTJrcplECBAgAABAgQIEHjxxYhddol4/fVsi/TPzMsvj+iNf04OGBCR9xawfYCz75dcArUscO6558bjjz9eHOK+++5b+P93YZ33jGQum4EiiwABAgQIECBAgACBqghMnTo1fv7zn5dfxhxVeOo9fZ8yZUpV+q+lTgSAa+luVDCW008/PdKSWCkdeOCBMWbMmMxWJs2ZLDIJECBAgAABAg0pUFhAJgoPtBa2BXnv8o86KqKwUEw8+eR7eS2P0r7AO+7YMrfnvufEh4pLQPfcKJyJAIGuCvz973+Pq6++utjNaqutFl/5yldyuzSXzaVRQIAAAQIECBAgQIAAgYoFLAFdMVXvV7zuuuvivvvuKw4kLeu8++675w6qNGkeOXJkrLrqqsV6aUnouXPnFp9sWGmllXLbKiBAgAABAgQIEKgPgddei/jiFyOuuqr19bz5ZkT6yUspQHzAAXmlPZO/zTbZ53n55YgHHohIy0RLBAjUtkBaVi0t/VxKaQujFVZYofS11ae5bCsSGQQIECBAgAABAgQIEOiwgABwh8l6p8Fbb70VP/7xj4sn79+/fxx99NGRPrPS0sIGbk888USxKC3/fP/998cvfvGLmDlzZixcuLCYv8oqqxTe+Fg/DjrooFhjjTWyusnNS3sy3Xvvvbnl6TwjRoyItMdT+pEIECBAgACBjgt87Wtfy/zv6KRJkzremRYNKZCCvymAmvb47WjaddeIwsIzvZ423zwiLQWdtT9xWgZaALjXb5EBEGhX4LLLLounnnqqWG+77baLrbfeOrdNd89lb7vttnjuuedyz//KK68U57ILCpuPp7FIBAgQIECAQMcE0otIhx56aGajrG0MMyvKJECAAIGqCAgAV4Wx+zv5zW9+Ey+nVx0KacfCOnzrrrtu7knTPsGLFy8ulqdg7CGHHNKq7rx58yL93HnnnXHwwQfHHnvs0apOXkZqc8opp+QVF/PTsl5p8iwA3CaTQgIECBAgkCvw9a9/PbdMAYFKBNKbv50J/n7wgxG/+lUUHjas5CzdW+d974vYdNOIu+9ufZ5CHKfwMGPrfDkECNSOQAqkXnTRRcUB9evXr7iNUVuj6+657MUXXxw33nhjW0OINJd95plnylsvtVlZIQECBAgQINBMIAWADz/88GZ5vhAgQIBA7wgIAPeOe4fOmt7aveKKK8ptvph+m9dGKi2Zlaqk/YLT8lofLPwmL21uPXr06Jg9e3Zx0puefE59p+W4Vlxxxdhpp53a6FURAQIECBAgQIBAXxG44YbsZZ8rGf/JJ0cMH15JzZ6pk/YBzgoApzeAJQIEalvg97//faQgcErbb799vP/9729zwOaybfIoJECAAAECBAgQIECAQMUCAsAVU/VexWuuuSZeS2v4FVJaMmvixIltDqbppHnMmDFx1llntWqz//77x3nnnRdXX311sa9zzz03Nttssxg1alSbfSskQIAAAQIECBCofYHzz+/8GNN+wWkJ6FpJaRnrwj9nW6Unn4yYOzei8JKBRIBADQq88847cemll5ZH1t6DzKmiuWyZywEBAgQIECBAgAABAgS6JCAA3CW+7m+8bNmy+O1vf1s+USWT5t122y022GCDeP7554tPWa+++url9qWD9FbwUUcdFY888khxkp0CzGlyXslyk5tsskmbS3n8/e9/j/Skd2m/4dI5fRIgQIAAAQIECPSMwPTpnT9PV9p2/qz5LdvYLjRuuilir73y2yohQKD3BK677rryNkZp399K9rDv7rnsroWnWzbeeONclLT10kMPPRQpeC0RIECAAAECBAgQIECgLwsIANf43Ut7+KZAbkrrrLNOTJ48ud0Rr7nmmpF+2ksDBgyIr3zlK3H88ccXqzZ92rqtthtuuGGkn7x0wQUXxIUXXphXLJ8AAQIECBAgQKAbBQo7fMRLL3X+BM8+G7F8eURhu86aSIXtOGPdddObga2Hk5aBFgBu7SKHQC0IXHvtteVh7LzzzuXjtg66ey7b3jhuKKyff6v15du6RcoIECBAgAABAgQIEOgjAv37yDgbdpg33nhj+dq7Y4/epk9hP/HEE+VzOSBAgAABAgQIEOibAl0N3Ha1fXeopWWgs5I4TZaKPAK9LzB//vy47777igN53/veF1tuuWXVB2UuW3VSHRIgQIAAAQIECBAgUEcCAsA1fDOXF169uCmta/ev9LGPfax0WLXPsWPHlvsq7TNcznBAgAABAgQIECDQ5wSGDOnavrjjx9fO278l/G23LR01/7z//og332ye5xsBAr0vcMstt0Taziilj3zkIzF48OCqD8pctuqkOiRAgAABAgQIECBAoI4EBIBr+GY+/PDDheX73l2/b6ONNopVV121otEuWLAg5syZE7NmzWq3/rx588p1xqff9kkECBAgQIAAAQJ9XuDjH+/8JXSlbefP2nbLvADwkiURd9zRdlulBAj0vMDNN99cPmlHHmQ2ly2zOSBAgAABAgQIECBAgECXBOwB3CW+7m18f3ql4V9p/fXXLx22+fnWW29F2tdo6dKlxaes//jHP8aQ9BpITnryySfLJRMmTCgfOyBAgAABAgQIEOi7Al//esQll3R8/Gn55wMP7Hi77m7xgQ9EjBoVUVhVtlVKy0DvtFOrbBkECPSSQFrJ6oEHHiif3Vy2TOGAAAECBAgQIECAAAECPSbgDeAeo+74iR588MFyo4kTJ5aP2zoYNmxYlCbYixcvjrvuuqut6vGrX/2qXL5t3qsV5RoOCBAgQIAAAQIE+oJA2jN33307PtKvfjVi6tSOt+vuFikwvd122We57bbsfLkECPSOwFNPPRXpTd6UVllllUhz1EqSuWwlSuoQIECAAAECBAgQIECgMgEB4MqceqVW0wDw2muvXfEYmgZyzz333HjjjTcy215++eUxY8aMYtm6665beHPCqxOZUDIJECBAgAABAn1Q4PzzIzbbrPKB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ECBAgAABAo0hIADcGPfZVRIgQIAAAQIECDSAwE035V9kemO23lLeMtACwPV2p10PAQIECBAgQIAAAQIECBAg0BEBAeCOaKlLgAABAgQIECBAoIYF8pZ/XnfdiNVXr+GBd3JoeQHg2bMj5s7tZKeaESBAgAABAgQIECBAgAABAgT6uIAAcB+/gYZPgAABAgQIECBAoCSQt/dtve3/W7rerbYqHbX+vPnm1nlyCBAgQIAAAQIECBAgQIAAAQKNICAA3Ah32TUSIECAAAECBAjUvcDChREzZ2ZfZr3t/1u6ynHjItZZp/St+adloJt7+EaAAAECBAgQIECAAAECBAg0joAAcOPca1dKgAABAgQIECBQxwJ33BHxzjvZF1ivbwCnq81bBjrvbehsIbkECBAgQIAAAQIECBAgQIAAgfoREACun3vpSggQIECAAAECBBpYIG//3xEjItZbr35h8gLA990X8dZb9XvdrowAAQIECBAgQIAAAQIECBAgkCcgAJwnI58AAQIECBAgQIBAHxLIe+M1BUj71/G/+vPebl6yJCIvKN6HbquhEiBAgAABAgQIECBAoKEFXn014uWX3yN4/PH3jh0RIJAvUMe/Csq/aCUECBAgQIAAAQIE6k3g7ruzrygvQJpdu+/lprebR43KHndeUDy7tlwCBAgQIECAAAECBAgQqBWBGTMiPvWpiLFjI+69971RffSjER/4QMQFF0QsXfpeviMCBJoLCAA39/CNAAECBAgQIECAQJ8TePDB5k9EN72Arbdu+q3+jvv1i/jwh7Ov69Zbs/PlEiBAgAABAgQIECBAgEDtCpx9dsRmm0X84Q8RaXWnlumxxyIOOCDiYx/Lnwu3bOM7gUYTEAButDvuegkQIECAAAECBOpOIO9N1wED3p00190Ft7igvLec01vRy5a1qOwrAQIECBAgQIAAAQIECNSswDnnRBx5ZGVv9954Y8QnPxnx9ts1ezkGRqDXBASAe43eiQkQIECAAAECBAhURyBvr9upUyPe977qnKOWe0n7HGel11+PSMuGSQQIECBAgAABAgQIECBQ+wL33x9x9NEdG+c990SccELH2qhNoBEEBIAb4S67RgIECBAgQIAAgboWyHsDOO/N2HrD+NCHIgYPzr4qy0Bnu8glQIAAAQIECBAgQIBArQmcdFJlb/62HPePfhTx3HMtcxvr+0EHHRTrrbdes5+PpTWypYYVEABu2FvvwgkQIECAAAECBOpB4JVXIh5/PPtK6n3/39JVr7BCxLRppW/NPwWAm3v4RoAAAQIECBAgQIAAgVoUSCs4/fGPnRvZ4sURV17Zubb10mrOnDnx6KOPNvuZNWtWvVye6+iEgABwJ9A0IUCAAAECBAgQIFArAjffnD+SLbbIL6u3krxloO+4o96u1PUQIECAAAECBAgQIECg/gTS9j0pkNvZdNddnW2pHYH6FBAArs/76qoIECBAgAABAgQaRCBv/9/3vz8i/TRKygsAFx6CjtmzG0XBdRIgQIAAAQIECBAgQKBvCsyd27Vxd7V9187e+63/8Ic/xG9/+9vyQE4qrKc922S47NGIBwLAjXjXXTMBAgQIECBAgEDdCOTt/9soyz+XbuSWW0b061f61vzTMtDNPXwjQIAAAQIECBAgQIBArQmMGNG1EXW1fdfOrjWB2hMQAK69e2JEBAgQIECAAAECBCoSeOediH/8I7vqNttk59dr7sorR6y/fvbVCQBnu8glQIAAAQIECBAgQIBArQhMnty1kUya1LX2WhOoNwEB4Hq7o66HAAECBAgQIECgYQT+9reIt9/OvtxGewM4KeQtA533lnS2nFwCBAgQIECAAAECBAgQ6GmBtdaK2Gijzp/1uusi5s/vfHstCdSbwMB6uyDXQ4AAAQIECBCoB4HPfvazsXDhwlaXMmHChFZ5MhpXIC+wOWxY1ybOfVU0BYB/+tPWo3/44YhXX40YObJ1mRwCBAgQIECAAAECBKojsHJhWZ7Pf/7zmZ0NHCgUkQkjs5nAccdF4c9Qs6yKv9x7b8RWW0Vcc03EOutU3ExFAnUr4G/dur21LowAAQIECBDoywLHHntsXx6+sfeQwO23Z58oTXob8fcrecteL1sWkZaB3mWXbC+5BAgQIECAAAECBAh0XWCNNdaIk046qesd6aFhBfbdN+KXv4z44x87R/DooxFbbhnxv/8bkTc/7FzPWhHoewKWgO5798yICRAgQIAAAQIECBQF7rorG6JRJ7oTJ0astlq2Sd7b0tm15RIgQIAAAQIECBAgQIBATwv06xfx619HfPjDnT/zSy9FfPSjEb/6Vef70JJAPQgIANfDXXQNBAgQIECAAAECDSfw+OMRzz+ffdmNuP9vSWK77UpHzT/TG8ASAQIECBAgQIAAAQIECNS2wIgRlQVvBw3Kv45Fi95dSvo//zO/jhIC9S4gAFzvd9j1ESBAgAABAgQI1KVA3hut6YnpadPq8pIruqi8t5/vuSdi8eKKulCJAAECBAgQIECAAAECBHpRIG+1qzSkr30tIu33m5Z7njKl7UGmFcm/+EVzwbaVlNargABwvd5Z10WAAAECBAgQIFDXAnn7/260UcSoUXV96W1e3LbbZhcvXBiRgsASAQIECBAgQIAAAQIECNS2QN4Dz2nU3/pWxNSpEWkLoDQvTss9t5UuuSRip50iXnmlrVrKCNSfgABw/d1TV0SAAAECBAgQINAAAnkT4kZe/jnd9o03jhg+PPsPgGWgs13kEiBAgAABAgQIECBAoJYE8ua7Lcc4cmTEn/4U8dWvtixp/v3mmyO23DLiscea5/tGoJ4FBIDr+e66NgIECBAgQIAAgboUeP31iIcfzr60vCWQs2vXX+7AgRFbbZV9XQLA2S5yCRAgQIAAAQIECBAgUCsCafWmGTMqH03aC/iCCyK++92ItCVSXkrB3zRXvOWWvBryCdSXQOHXIxIBAgQIECBAgAABAtUU+FralKhF+mhhXap99923RW7nvqanoZcty27b6G8AJ5W0DPT06a197rijdZ4cAgQIECBAgAABAgQIEKgdgbvv7tyevccdFzFp0rt7/r79dvb1vPxyxMc+FvGzn0V84QvZdeQSqBcBAeB6uZOugwABAgQIECBAoCYEli9fXphMFmaTLdKwYcOqGgBu0X3x69ixEWuvnVXSWHl5+wC/9NK7b05PmdJYHq6WAAECBAgQIECAAAECfUUg7evb2fSZz0SMHx+x224Rc+dm97J4ccR++0U8/njEt7+dXUcugXoQsAR0PdxF10CAAAECBAgQINBQAnkT4g9/uKEYci922rSIAQOyiy0Dne0ilwABAgQIECBAgAABArUgUOn+v3lj3WKLiLvuithgg7wa7+affHLE5z8fsWhR2/WUEuirAgLAffXOGTcBAgQIECBAgEBNCvQrbDp0ayHK+PGPf7w8vgsKGxJ985vfLH/vysHSpRH33JPdQ6Pv/1tSWXHFiA9+sPSt+acAcHMP3wgQIECAAAECBAgQIFBLAnfe2fXRvP/9ESmQvNNObff1q1+9uyR0WhpaIlBvAgLA9XZHXQ8BAgQIECBAgECvC2xTiMSussoq5XFssskmMXHixPL3rhzMmBHxxhvZPQgAv+eStwx0V58mf+8MjggQIECAAAECBAgQIECgmgKPPBKRtu6pRlpppYg//jHiwAPb7i09JLzllhH//Gfb9ZR2XODcc8+Nddddt9XP66+/3vHOtOiwgABwh8k0IECAAAECBAgQINB7AnkBzMGD89967b3R9t6Z84Lhs2ZFzJvXe+NyZgIECBAgQIAAAQIECBDIFsib72bXbj934MCIn/404vTTIwqLdeWmtB9wCgLfdFNuFQWdEHi58Gr14wXclj9L09JmUrcLCAB3O7ETECBAgAABAgQIEKieQN6EOO1zNGRI9c7T13vaeuv8K7j55vwyJQQIECBAgAABAgQIECDQOwJ58920zU9X0jHHRPzudxHDhuX3Mn9+FLZyirjoovw6Sjom0L9//0LgvXnkPSuvY72qXalA4fkHqdYEli1bFmeffXakz0rSjjvuGJtuumlm1fQkxZ/+9KeYPn16PPPMM/HWW2/FlClTYqONNoqtttoq1ltvvcx2MgkQIECAAAECBGpT4K67ssfVVsAzu0V9566xRsTaa0c88UTr60y/VPjMZ1rnyyFAoGsCtxX+z3X77bdX1MkKK6wQhx12WG5dc9lcGgUECBAgQIAAgboVyPun5MiR+VshVYrx6U9H3HhjxK67RrzwQnarxYsjvvzlKLyxGnHKKW2/NZzdg9ymAt/+9rfjC1/4QnEJ6JS/yy67xNVXX920iuNuFBAA7kbcznadArX/+7//W3Hz9xd2NM8KAL/44otx1FFHxezZs5v19be//S3Sz0WFR1mOP/74+MQnPtGs3BcCBAgQIECAAIHaFHj66YinnsoeW96Sx9m1GyM37QOcFQBOezxJBAhUX+C6666LG264oaKOhw8fnhsANpetiFAlAgQIECBAgEBdCbzySv4+vCkAXAibdDltvnlEeqi6EIeM++/P7+7UU98NAl94YUThuUWJQJ8UEACuwdv2zyrsNr5gwYI4prCuQSn4O2nSpNim8FvBsWPHxowZM+Lmwrp3iwuPs5xa+Jss1d1jjz1qUMKQCBAgQIAAAQIEmgrkPQ2d6qQloKXmAikofvHFzfPSt8I/hwsr47S9/FfrVnIIEGhP4LHHHmuvSrvl5rLtEqlAgAABAgQIEKhLgbRS0/Ll2Ze20krZ+Z3JnTAhIj0UvNdeEddem9/Db34TkR7CTu/qFcIqEoE+JyAAXIO3LG2IXUpnnnlmpOBtWyk9Od0yXVh4NGXWrFnF7B122CG+9a1vxaBBg4rfd9ttt5g5c2Yce+yxxeDveeedF9ttt12MGTOmZTe+EyBAgAABAgQI1JBA3n5IkydHrLJKDQ20RoaS3gDOSkuWRNx5Z0RhJxWJAIEqCbz99tsxZ86cYm+bbbZZnHjiiW32nPb+ykrmslkq8ggQIECAAAEC9S+QN98dNy5i6NDqXv+IERHXXBPxjW9E/OQn+X2nh7C33PLdunbTzHdSUpsC2TOu2hxrw4yq9NT0gAED4oMf/GCsvPLKbf6kvZOaptdffz2uuuqqYtYqhd8ENg3+luptvPHGxfz0Pe2tVKpfKvdJgAABAgQIECBQewJ5bwDb/zf7Xk2ZEjFqVHaZZaCzXeQS6KxAegB5+b9e2Vh//fXbnMOmOe6ojP9zmst2Vl87AgQIECBAgEDfF8gLAH/4w91zbYXwS/zXf0V8//sROc8mFk+cthXaaqsobHXSPePQK4HuEhAA7i7ZLvRbCgCvtdZaMWTIkA739Ne//jXS09cp7b777uU3f1t2lJaEHj9+fDE7BYCXpFchJAIECBAgQIAAgZoUSEsWFxZxyUz2/81kiX79orANSnZZXwoAP1PY7Co91NnyJ63qIxGoFYHSPDaNZ3JalqATyVy2E2iaECBAgAABAgTqQOCddyL+/vfsC+nuB56PPDLiiiva3iLo1VcjPvnJiLQncEoPPxxx773vHqf/TcHh559/77sjArUgIABcC3ehyRheeumleDX9bVJInZ00P/DAA+Uep02bVj7OOkhLc6X08ssvF/7CavI3VlZleQQIECBAgAABAr0mkJYsznteLy/I2WuDraET5y0DfdddEcuW1dBA2xhKWlb31FNPbfXT9N/9bTRXRKBHBKoRAG76Z9pctkdum5MQIECAAAECBGpCIAV///VOW6vx9MR8t7BrZtx8c8Tqq7c6fTkjBam/8pWItCR1YcGb+MtfykXxgx9ErLFGxGc+E4WtOd/Ld0SgNwUEgHtTP+PcTSfN6zVZVP6twisfzz77bHG55oxmzbIefPDB4vd+hVce1kmpUaUAAEAASURBVFlnnWZlLb803V/4ibSWgUSAAAECBAgQIFCTAnnLYY0cmR4crMkh18Sg8gLAhV1T4r77amKIBkGgLgRKc9mRhb+UVl111eI1pSWhX3jhhXjttdcqukZz2YqYVCJAgAABAgQI1J1A3nw37f1b2M2yR9Kmm0bcfXf758t70zfthvK730V86EMR117bI0N2EgJtCgxss1RhjwuUJs3pxGl55osuuij+8Ic/FCfNKW/w4MGx9tprxyc+8YnYc889C8vaFda1a5FSoDilsWPHxsCBbd/i0sQ81X/66afTh0SAAAECBAgQIFCDAnkT4hTgzPgnYQ1eQe8MKU3iC/+EjsWLW58/LQM9dWrr/FrL+cAHPhCXXnppHHbYYTF37tzC/lT94ze/+U1sscUWtTZU42lQgaVLl0bpgeK0ktX9998fv/jFLwrL1s+MhQsXFlVWWWWVwpsS68dBBx1UeDui8HpERjKXzUCRRYAAAQIECBDoIYFbbrklDjjggFZn++///u/YbrvtWuVXM+P227N723LLKGxxmV3WHblrrhmR5on77BPxxz927gzpYeNPf/rdN4r/tQBr5zrSikAXBdqODnaxc807LvD444+XG51wwgmR3vxtmhYXfnP1yCOPFH9uuummSHVWW221cpW09++yf61lN2rUqHJ+3kF6OruUXk9/M1WQ0r5Mv/zlL3NrpiXq0oT+jTfeiEr7zO1MAQECBAgQIECAQKQnidOTyFmpu/dDyjpnX8pbYYWIzTePyAqgp7xCTLXm08orrxyf/exn4/jjjy8GgNNDoOm7RKBWBNLDxGmumlIK+h5yyCGthjZv3rxIP3cW1rM/+OCDY4899mhWpyfmsj8orM13Xxuv/j/55JPFuWzammnRokXNxucLAQIECBAgQKDeBd5888149NFHW11myu/udMcd2WfoieWfW555xRUjrroq4t//PeJHP2pZWtn3tJz1F78YhQcjIwYMqKyNWgSqLSAAXG3RLvb3z3/+s9xDCv5OmDAhNi28trDBBhvE/PnzC5uLP1zYUPyGYp0ZM2bEscceGz/72c8KT8G8+xjMggULyu2HDBlSPs47aFqn9GR2Xt1S/nPPPRfpaaC20vDhw02Y2wJSRoAAAQIE2hG4+uqry79Mb1o1vfG3ZnokVWoogQceiMK/BbMvuTcmxNkjqd3c9JZ0XgC4dkdtZAT6jkDTlaxSIHeFwpMXH/zgBwtv2E+N0aNHx+zZs+PGG2+MNJdM886zzz47Viz8Zm2nnXYqX2RPzGXTHsOVzGVfeeWV8rgcECBAgAABApULpP+GppeHstJuhU1W21utMqudvPoXSDtT5i2r3FsPPKeg7Q9/GLHuuhFHHNG5e1AI5cRll737NnHnetCKQNcEBIC75lfV1qV9fkud7r333nHooYe2WuY5PSl90kknRfoPappIX3LJJYXNxwu7jxdS0zeG03LR7aWmdTzh3J6WcgIECBAg0HMCp5xySuZKGueee64AcM/dhpo5U95yWGm3j7TEsdS2QF6QvLBwTRRe+Iu11mq7vVICBNoWaBoAHjNmTJx11lkxceLEZo3233//OO+88yI94JRS+u/ZZoU18UorV5nLNuPyhQABAgQI9EmBtDLk//2//zdz7P/n//wfAeBMmdrJTPdoeWH5qfTvuZdffjnSSkRpZZTuTlkP66Zzpq2Ottqqu8/edv/pLeBTT42CQ9v18kqvuEIAOM9GfvcLCAB3v3HFZ0hPQJ1zzjmFp12eL/7H8JOf/GRm20022SSOOuqo4vLPqcLFF19cWJN+nxg2bFiz/4imfZjaS0uWLClXaRoMLmc6IECAAAECBAgQ6HWBvAnxhz4UUVh4RWpHID01nn55kJbSbpnS/k4CwC1VfCfQMYH0Rk9atSrNZbfffvtYffXVW3WQ3gpO89i0pVEKGL/22mvFva2//vWvF+s2fSPIXLYVnwwCBAgQIECAQN0K5M13C/+8jCY7WPbK9aeVuDob/E0DbmP3kV65HidtLAEB4Bq63ykAm5Z7riSlTdfXLaw/kCbOaXKc9ipaf/31Y+jQoeXmpT2YyhkZB03rpGWbK0m77LJLbJl2X89Jl19+efEN5Uom7TldyCZAgAABAgQIEGgikPcGcN6brU2aOiwIFB5cjylTIh56qDVH+mXDF77QOl8OAQKVC6StCSrZnmBAYS29tHpV2s86paZvDvfEXPbkk0+OpktNt7zCww8/PKZPnx7vvPNOyyLfCRAgQIAAAQIEukkgb77bW8s/N73MwovQXUpdbd+lk2vc8AICwH34j8CkSZPKE+YnCgvlpwBwegu4lNqa2JbqNF1mq9IA8EorrRTpJy+lpSGaBpbz6sknQIAAAQIECBBoX+DFFyNmzcquVwsT4uyR1V5uCpZnBYDTG8ASAQI9J5DmsaWU5rGl1BNz2dVWW610uszP9JayuWwmjUwCBAgQIECAQLcIFBaFiQcfzO66Fh54Tg8TdyUVVtOWCPSaQP9eO7MTd1lg1VVXLfeRls9KaciQIcW1+dPxvHnz0kebae7cueXy0aNHl48dECBAgAABAgQI1IbALbfkj6ONRVnyGzVoybbbZl94Cgr/65/S2RXkEiBQVYGxY8eW+yvNY1OGuWyZxQEBAgQIECBAoGEE7rgjYtmy7MuthQDwqFER48dnj6+S3MJunhKBXhMQAO41+tYnTvvxpk3VH3/88eJ+SK1rNM954YUXyhnjm/wtNHHixGJ+ert3flqkvo00Z86ccumUtC6eRIAAAQIECBAgUFMCecthpX1rC6uuShUK5AWA0y8b8vacqrDrhqy2vLCh8t/+9rdWP88880xDejT6RafVp9LcclbecgVNgJo+qNx0HpuqmMs2gXJIgAABAgQIEGgAgbz5bnpmcJ11agNgzz07P46utO38WbUk8K6AAHAN/Uk4//zz49Of/nTsv//+8bvf/a7dkaV9f0tpwoQJpcPiUtClL/e1s8v4zJkzS1WbtStnOiBAgAABAgQIEOhVgbzgZC08Dd2rMB08+dprR+St/moZ6A5iFqovWrQopk2b1urn3HPP7XhnWvRpgfTg8c477xz77rtvHHjggcU/G21dUN48NrVJ2xqVkrlsScInAQIECBAgQKB+BfLmu3kP8PaGxDHHRGHrzY6feYMNIgSAO+6mRfUEBICrZ9nlnjbffPNyH7cU1vpLT9XnpXvvvTceeeSRYnF6arrpk9Pbb799udm1115bPm55kJZ//sc//lHMnjx5clgCuqWQ7wQIECBAgACB3hVYvDgK/17LHoP9f7Nd2srN+yWCAHBbav8/e+cBL0V1/fGDFEEQERQUFVERUSzYUAwGMbbE3hUbxmjEv723JJrYe4ux19h7772hElHsBaXYuyhK3//97bLvbbnz3szW2d3v+XyWnbn13O/MW+bMufdc8iDQMgHt3Zt23Gr/3JdffrnFCjfeeGNT/tCcP0ps2SY0HEAAAhCAAAQgAIG6JzB7trmIQv5hxsne7d3b7KKL/HoGpXbqZHbddWZt2waVIB0C5SeAA7j8jEP3sNJKK1nXrl2T5RUG+pZbbvHWVVjnc845pylv1KhR7oek+Zdk2WWXNTl0Jc+7t1k+J7Bm7J922mk2W7+yTnbZZZfkN/9AAAIQgAAEIAABCMSHwCuvaKWlXx9WAPu5tJSa42tqKjpmjNnMmU2nHIQgIPtjt912syWXXLKp9GabbWZrrLFG0zkHjUMg05GrVeA///yzd/C33367vf7668k82a0bbrhhVjls2SwcnEAAAhCAAAQgAIG6JqDgpQGPjRY3e9cFbbVzzw3v0D34YLPVVqvry8fgaoAADuAYXaR5553Xjj/++CaNLr744qSj9/PPP0+uBpbj94knnrCRI0faxIkTk+XWXnttW3fddZvqpA8OOeSQ9KGdfPLJdu2115ra0T7DCvt82GGH2Ri96XKi2drDhg1rKs8BBCAAAQhAAAIQgEA8CATth9S5s9mKK8ZDx1rSIsgB/Ntv5p6Na2kk1de1ffv2bkb7dckQ0GltZHfstNNO6VO+G4jADjvsYJrQLNEev3vvvbfbW/sFU3ho2aAffvhh0i5Nhwjv0KGDHXjggdamTZs8StiyeUhIgAAEIAABCEAAAnVJICj8s3tUjKXzVE7dZ581GzKk9cvx5putl6EEBMpNoF25O6D9aASGuF+Pv/71r6b9gOfMmWN33XVX8iMDWeG0MmVbF0B+//33z0xqOh7oAsyfeOKJduqpp9q0adPsiiuuSH40Uz+96leFF1tsMTv99NNtnnmYC9AEjwMIQAACEIAABCAQEwJBBrHCYbnHOiQigVVWMZPzfOrU/IoKAx3GkM+vSQoEINCuXbuk/Smn7qeffmqfffaZHX300UkwypMTOC09e/ZMOoMHDBiQTsr6xpbNwsEJBCAAAQhAAAIQqFsCQROetVOmWysXS5EtLr0/+MDsgAPMHn3Ur6Z25vz+e3PbbvrzSYVAJQjg9asE5Yh97LrrrnbllVfaqquu2lQz7fyVA3eZZZax4447zg52U05kTAfJ+uuvb5deemkyHHTawZt2/qre9ttvn8zv1q1bUBOkQwACEIAABCAAAQhUkcDo0f7O4xYOy69l/FL16OwC6HglyNnuLUwiBCCQR2DhhRdOrgrXFkWdNdNirqSdv7I7hw8fnpyYHOT8TdfBlk2T4BsCEIAABCAAAQjUL4EgG6wW7N3+/c35b4KvjbYYuvXW4HxyIFAJAsHew0r0Th+BBPr162cXXHCBW50w1SZNmpScQb3IIouY9kRSqOiwsvTSSycNbK0CVtitr776ynq7Xcv79OljXbp0CdsM5SAAAQhAAAIQgAAEKkxAM4pdJFWvaNYxUhgBhYF2u6rkSdDs87yCJEAAAoEEFBp8xIgRyVDgX375ZdKW1WTm/u4NmezZKIItG4UWZSEAAQhAAAIQgEBtEXABY2zyZL/OteAA9muenXrDDWb77pudxhkEKkkAB3AlaRfQl2ZOL7/88slPAdWbqnTs2DG5J1N6X6amDA4gAAEIQAACEIAABGJJIGg2tHbuGDw4lirXhFJBLxO++cbsvffMAqLS1sTYUBICcSGgCFSaeKxPsYItWyxB6kMAAhCAAAQgAIH4EdAWPEESFLUpqHxc02XTu7V9bjFeXDVEr3onQAjoer/CjA8CEIAABCAAAQhAoCYJBK1IXWklswUWqMkhxUJpvUwI2j85yOkeC8VRAgIQgAAEIAABCEAAAhCAQJ0QCLK9FFq5Z8/6GGQiYXbjjfUxFkZRmwRwANfmdUNrCEAAAhCAAAQgAIE6JxBkEAetYK1zHCUb3vzzm62yir+5lmah+2uQCgEIQAACEIAABCAAAQhAAAJRCQRNeK7V7Y769vUTwAHs50JqZQjgAK4MZ3qBAAQgAAEIQAACEIBAaAI//pgKR+yrUKsGsW8s1UoLcqLjAK7WFaFfCEAAAhCAAAQgAAEIQKBRCPz6q9kbb/hHG2Sr+UvHJ/X3v/fr8uabZuPG+fNIhUC5CeAALjdh2ocABCAAAQhAAAIQgEBEAlr9q3BRPqlVg9g3lmqlDR3q7/mjj8y+/tqfRyoEIAABCEAAAhCAAAQgAAEIFE9g9GizWbP87dSqvbvuumZt2vjHdMMN/nRSIVBuAjiAy02Y9iEAAQhAAAIQgAAEIBCRQFA4rF69zIJCS0XsoqGLt/RSgVXADX1rMHgIQAACEIAABCAAAQhAoMwEguzdbt3MBgwoc+dlan6hhcyCVgHffHPwBO8yqUOzEEgSwAHMjQABCEAAAhCAAAQgAIGYEQja/1ezipHiCSy2WLAjHQdw8XxpAQIQgAAEIAABCEAAAhCAQBCBIHtXE3WDVtEGtRWn9F128WszaZLZc8/580iFQDkJ4AAuJ13ahgAEIAABCEAAAhCAQEQCCoU1Zoy/UksrV/01SA0iEBQGGgdwEDHSIQABCEAAAhCAAAQgAAEIFEdAWx29/LK/jVq3d7fd1qxDB//YCAPt50JqeQngAC4vX1qHAAQgAAEIQAACEIBAJAJjx5pNneqvss46/nRSoxMIcgC//rrZr79Gb48aEIAABCAAAQhAAAIQgAAEINAygbffNvvhB3+ZWrd3u3c3++Mf/WO74w6zmTP9eaRCoFwEcACXiyztQgACEIAABCAAAQhAoAACQeGwOnY0GzSogAap4iUQ5ACWUR60AtvbEIkQgAAEIAABCEAAAhCAAAQgEIpAkL3brp3ZmmuGaiLWhYLCQH/3ndlDD8VadZSrQwI4gOvwojIkCEAAAhCAAAQgAIHaJfDii37dBw8ODiflr0FqSwRWWMGsWzd/iZde8qeTCgEIQAACEIAABCAAAQhAAAKFEwiyd1dd1Wy++QpvNy41N9vMbP75/doQBtrPhdTyEXDzKhAIQAACEIAABCAAgbgR2GijjVwY2vw4tIsuumjcVEWfEhMIcj7W+n5IJcZUdHNt2piJ6QMP5Dc1enR+GikQgAAEIAABCEAAAhCAQMsEFlhgAfvTn/7kLdROSzyRhicQtAK4XuzdTp3MttnG7Npr8y/1/feb/fKLWZcu+XmkQKAcBPjVLQdV2oQABCAAAQhAAAJFEjj55JOLbIHqtUhg4kSzTz/1a17r+yH5R1XdVIWB9jmAX3mlunrROwQgAAEIQAACEIAABGqRwJJLLmnnnntuLaqOzhUg8PXXZuPH+zuqFwewRqcw0D4HsOb433mn2e67+xmQCoFSEyAEdKmJ0h4EIAABCEAAAhCAAAQKJBA0G1rNrb12gY1SLZBA0EuGn38OrEIGBCAAAQhAAAIQgAAEIAABCBRAoCV7d8iQAhqMaZX11zfr1cuvHGGg/VxILQ8BHMDl4UqrEIAABCAAAQhAAAIQiEwgaD+k5Zc3W2ihyM1RoRUCa67JvsqtICIbAhCAAAQgAAEIQAACEIBASQgEOYD79jVbbLGSdBGLRtq2NdtpJ78qTzxhppXQCAQqQQAHcCUo0wcEIAABCEAAAhCAAARCEAgyiAn/HAJeAUU6djRbY40CKlIFAhCAAAQgAAEIQAACEIAABCIRCLJ3gyIzRWo8ZoUVBtons2eb3XyzL4c0CJSeAA7g0jOlRQhAAAIQgAAEIAABCEQmMHWq2Ztv+qvVo0HsH2nlU2Fbeeb0CAEIQAACEIAABCAAAQg0FoHp083GjvWPuR4nPCvaVL9+/vESBtrPhdTSE8ABXHqmtAgBCEAAAhCAAAQgAIHIBF56yUyzgX1Sjwaxb5zVSBs6tBq90icEIAABCEAAAhCAAAQgAIHGIfDqq2ZyAvukXiflBq0CfuUVs/HjfSRIg0BpCeAALi1PWoMABCAAAQhAAAIQgEBBBILCYXXvbta/f0FNUikEAZzrISBRBAIQgAAEIAABCEAAAhCAQBEEXnzRX7lLF7MVV/Tn1XrqiBHBI2AVcDCbSuR8+63ZrFmpnjQx4YcfKtFr5fvAAVx55vQIAQhAAAIQgAAEIACBPAJBBrFmQ7dpk1echBIRWGghswEDStQYzUAAAhCAAAQgAAEIQAACEIBAHoGgCc9Dhpi1bZtXvC4SNJFboaB9cuONvlTSyk3g6afN1l/fbJFFzH77LdXbd9+Z9exptvHGZkHvZcqtV7naxwFcLrK0CwEIQAACEIAABCAAgZAE5swxe/llf+F6DYflH211UgkDXR3u9AoBCEAAAhCAAAQgAAEINAYBbXnkk3q3d4PCQL//vtmYMT4ipJWDgFb7HnCA2fDhZk89lb/9lvIffdRM9+PRR5vpHU09CA7geriKjAECEIAABCAAAQhAoKYJvPWW2U8/+YdQ7waxf9SVTW3JAZwOC1VZjegNAhCAAAQgAAEIQAACEIBAfRD44AOzb77xj6Xet+TZYQezeQK8cKwC9t8T5UjdZx+ziy4K1/Lpp5sdcki4snEvFXDrxV1t9IMABCAAAQhAAAIQgED9EAgKh9W+vdnqq9fPOOM6kpac7L/8Elet0QsCEIAABCAAAQhAAAIQgED8CQTZu3KMrrVW/PUvRsNFFzX7wx/8LdxyS/2sNPWPMB6p2m/56quj6XLBBWb33hutThxL4wCO41VBJwhAAAIQgAAEIACBhiIQZBDL+dupU0OhqMpg+/Uz69XL3zUOYD8XUiEAAQhAAAIQgAAEIAABCIQhEGTvrryyWdeuYVqo7TJBYaA//9zsySdre2xx116hnI87rjAtjzmmsHpxqoUDOE5XA10gAAEIQAACEIAABBqSwIsv+odd7+Gw/KOuTmpQGOhvvzW74gqzr7+ujl70CgEIQAACEIAABCAAAQhAoJYJNLq9u/XWZh07+q8gYaD9XEqVqntv4sTCWnvnHbM33iisblxq4QCOy5VADwhAAAIQgAAEIACBhiTw1Vdmn3ziH3pLoYn9NUgtlMDAgf6aM2ea7b232ZJLmh11lNm0af5ypEIAAhCAAAQgAAEIQAACEIBANoEffjB7773stPRZo9i7WuW8+ebpUWd/33mn2fTp2WmclY7ASy8V11ax9YvrvfjaOICLZ0gLEIAABCAAAQhAAAIQKJjA888HVx0yJDiPnNIReOUVM+3x05LI8XvGGWbDhpl9911LJcmDAAQgAAEIQAACEIAABCAAARHQCsxEws+ikSJeBYWB/ukns/vu8/MhtXgCX35ZXBvF1i+u9+Jr4wAuniEtQAACEIAABCAAAQhAoGACQfshLb202aKLFtwsFUMSmDw5NRv7xx/DVZCzeNttzWbNCleeUhCAAAQgAAEIQAACEIAABBqVQJC9K1u3b9/GofLHP5p16+YfL2Gg/VxKkdqlS3GtFFu/uN6Lr40DuHiGtAABCEAAAhCAAAQgAIGCCTT6fkgFgytRxUMOib6/7zPPpPYFLpEKNAMBCEAAAhCAAAQgAAEIQKAuCQQ5gIcOrcvhBg6qQwez7bf3Zz/4oFnYCcn+FkgNItC/f1BOuPRi64frpXylcACXjy0tQwACEIAABCAAAQhAoEUCCis8dqy/SKPsh+QffWVSP/zQ7I47CuvrtNMKq0ctCEAAAhCAAAQgAAEIQAACjUBAUZPGjPGPtJHCP6cJBIWB1h7At9+eLsV3KQlssolZu3aFtdipk9kf/lBY3bjUwgEclyuBHhCAAAQgAAEIQAACDUdA4YRnzPAPGwewn0spU++9t/DWJk40e+ONwutTEwIQgAAEIAABCEAAAhCAQD0TeO01s19/9Y+wEe3dddc1W3xxPw/CQPu5FJvao4fZ4MGFtbLffmadOxdWNy61cADH5UqgBwQgAAEIQAACEIBAwxEICv/ctavZwIENh6PiA37//eK6fO+94upTGwIQgAAEIAABCEAAAhCAQL0SCAr/rJWVgwbV66iDxzWP88btvLM/X9sMffaZP4/UwgmMHm2mifdRpV8/s+OPj1orfuVxAMfvmqARBCAAAQhAAAIQgECDEAgyiIcMMZNxiJSXwE8/Fdd+sfWL653aEIAABCAAAQhAAAIQgAAE4ksgaMKzVmS2bx9fvcupWVAY6DlzzG66qZw9N17b33yT2ndZocijSJ8+Zvffb9atW5Ra8SzLa6V4Xhe0ggAEIAABCEAAAhBoAAIvveQfZKPsh3STs3AvuOCCJggvOI/44Ycf3nRe7oNevYrrQbOJoxqTxfVIbQhAAAIQgAAEIAABCEAAArVBIMjebcTwz+krtsoqZiuskD7L/iYMdDaPYs5mz06ttv700/CttGljtuOOZq++arbccuHrxbkkDuA4Xx10gwAEIAABCEAAAhCoWwIKH/zdd/7hNYpB/Pjjj9udd97ZBOGtt96yiy++uOm83AeF7gWU1uvqq81kwD/5ZDqFbwhAAAIQgAAEIAABCEAAAhCYMCE4pHGjTHgOuguCVgGPHWvGNkNB1KKlH3ec2RNPBNfZfHOzdu1S+R07mv3rX2Zvv212881mPXsG16u1HBzAtXbF0BcCEIAABCAAAQhAoC4IBIXDUujnYh2TdQGoAoPYbDOzzp2L6+idd8z+8AeznXYKfsFRXA/UhgAEIAABCEAAAhCAAAQgUFsEgrY70ipLbXnUyBK0D7CY/Pe/jUymNGO/916zM84IbmvPPc1URntRS7p3T+33u/zyqfN6+neuj7uehsRYIAABCEAAAhCAQO0TePbZZ11o2fyNSlZccUU3G7GOpiPW/qUqeARBBrFWlM4/f8HN1lTFQw891IVYcjGWMqRt27YZZ+U91J4+ijh94onF93PLLal9gv7+d7ODDzbr0KH4NmkBAhCAAAQgAAEIQAACtURgypQpNmbMGK/Kw4YNs0o+63uVILFiBILsXTnZ5HBrZFlqKTNF/fIx0j7AJ53UyHSKG/v48WZ77GGWSPjbGTTIXNQxf149puIArserypggAAEIQAACEKh5AocddpjJeM6V888/3zbZZJPcZM5rkEDQCuBGCf+sSzZw4MDkp5qXT6GhnnrKzM25KFqmTjU76iizq64yt7ex2UYbFd0kDUAAAhCAAAQgAAEIQKBmCExwcX9HjRrl1Xesi28733zzefNIrD8CQfZuo4d/Tl/pESP8DuCPPzbT3smNvko6zSnK92+/mW27rdmPP/praQL4HXeYKeRzowghoBvlSjNOCEAAAhCAAAQgAIHYEPj+e7P33/erg0Hs51Ku1PbtU+Gfws6rCLOyV9d2443NttvObNKkcmlOuxCAAAQgAAEIQAACEIAABOJH4Oefzd56y69XI0149hNIpe6wQ/MetLnlbrghN4XzMAQ09+SNN/wlFXr8+uvNll7an1+vqTiA6/XKMi4IQAACEIAABCAAgdgSUKinoJBEGMSVv2wLLGD2wANm11xjttxy+f1rX+bhw82ef97sk0/MWtqzKbO2ZhcrxNnJJ5tNn56ZwzEEIAABCEAAAhCAAAQgAIH6JKAVrLNn+8eGvZvistBCqUnDPkq33mpuSzBfDmlBBC65xOzaa4NyzRT5a7PNgvPrNQcHcL1eWcYFAQhAAAIQgAAEIBBbAkHhsHr3NuvTJ7Zq17VicvJqr6D33jO3b1nzUJdd1uzzz82efDK1T5Ou0Y03mj39tNlKKzWXCzr69Vez449XuGuzBx8MKkU6BCAAAQhAAAIQgAAEIACB+iAQZO/K6Sn7CkkRUBhon3zzjdljj/lySPMRkP1+8MG+nFTaBhuYnXhicH495+AAruery9ggAAEIQAACEIAABGJJQCuAfTJ0qC+VtEoT6N+/uUftE9SrV/N5+mjYMLPXXjM791wzrSBuTcaPN9t0U7MttzTTvk4IBCAAAQhAAAIQgAAEIACBeiQQZO+y+jf7ass27Nw5Oy19RhjoNImWv7/7LrX1UlDErSWWMLvpJjNN+G5EadBhN+KlZswQgAAEIAABCEAAAnEgMHNm9grTTJ3Y/zeTRvyP27VLzTTWnr+7726mfYVak3vvTa0GPuEEs99+a600+RCAAAQgAAEIQAACEIAABGqHwJw5Zq+84tcXezebi5y/W22VnZY+u+ceM0WTQoIJ6F7bZReziRP9ZTp0MLvtNjOtPG9UwQHcqFeecUMAAhCAAAQgAAEIVIWAVo0GOf6YEV2VS1J0p1ohrP2GtEfwoEGtNzdtWioE1QormMmwRyAAAQhAAAIQgAAEIAABCNQDgXHjzKZM8Y8EezefS1AY6F9+wVbMp5WdoknVjzySnZZ5dt55ZmutlZnSeMc4gBvvmjNiCEAAAhCAAAQgAIEqEgjaD6lTJ7NVVqmiYnRdNAHNaNf+QxddZLbggq03N2FCasb3n/5k9uGHrZenBAQgAAEIQAACEIAABCAAgTgTCAr/rNWYq68eZ82ro9tGGwWvUCUMdPA1eeghs5NOCs7fdVezUaOC8xslBwdwo1xpxgkBCEAAAhCAAAQgEAsCQQaxZqa2bx8LFVGiCAJt25r93/+ZffCB2V57hQsLLeN1xRXNjjuOMF9FoKcqBCAAAQhAAAIQgAAEIFBlAkETnuX87dixysrFsHttK7Tjjn7FHn3UTHvcItkENJFaDt5EIjs9fbbSSmaXXpo+a+xvHMCNff0ZPQQgAAEIQAACEIBAhQm89JK/Q8Jh+bnUaqr2GbriCrPRo83WWKP1UcyYYXbKKWYDBpjdfnt2ee1tpIkDP/2UStf544+baT9pBAIQgAAEIAABCEAAAhCAQFwIBE14xt4NvkJBYaBl7916a3C9RsyZPt1s223Nvv/eP/quXc3uuMNsvvn8+Y2WigO40a4444UABCAAAQhAAAIQqBqBTz4x+/xzf/cKH4zUH4HBg81efjk1A7lHj9bHN3my2fbbm224odm775pdfrlZnz5mQ4eaffttqr5mOit/kUXMzjjDTM5jBAIQgAAEIAABCEAAAhCAQDUJyNadONGvAQ5gPxel6l1A377+fMJAZ3NRtK3XXstOyzy75hqzZZfNTGnsYxzAjX39GT0EIAABCEAAAhCAQAUJBM2GbtPGbO21K6gIXVWUwDzO6tpnn1RY6H33NdN5a6IVvgMHpup99pm/tGY9H3WU2fDhZt984y9DKgQgAAEIQAACEIAABCAAgUoQCLJ31feQIZXQoHb72GUXv+4KqR3kVPfXqN/UK6800ydIZBtvvXVQbmOmh3j10JhgGDUEIAABCEAAAhCAAARKTSBoP6Tllzfr3r3UvdFe3AjoGv/nP2avvhrO4R+0p1HuuHRfbb652bRpuTmcQwACEIAABCAAAQhAAAIQqAyBIAdwv35mvXpVRoda7SUoDLRswhtvrNVRlU7vsWPN9t8/uL311jM7+eTg/EbNcVtMI3El8KJ7k/PYY4/Zp59+mvy0czuC93Hx3/q6eABbbbWVW8re8lr2F9wvrtoIIx3dDuwHHHBAmKKUgQAEIAABCEAAAhAokECQQUw4rAKB1mi11VYz95xuds01Zkcfbfb118UPRGGmTz3V7MQTi2+LFiBQDIGf3GbVt9xyi73//vtJO/ZbF7u8d+/etsQSS9gqq6xi22yzjbVv377FLrBlW8RDJgQgAAEIQAACEIglgSBXBNsdtX65VljBbNAgs9dfzy+rMNDHHJOf3igpP/yQ2vc3aMKzMzXs5pvN2rZtFCLhx4kDODyripX83AXLP/PMM23MmDF5ff744482btw4u//++5OG8z4ullynTp3yyinh0UcftSeffNKbl5vYuXNnHMC5UDiHAAQgAAEIQAACJSQwZYrZW2/5G8Qg9nOp51SF/d5zz1SIqr//3ezii81mzy5uxGefbXbEEWZduhTXDrUhUCiB2267za666ir75ZdfspqYMGGC6fPcc8/ZPffc4+7TI2zVVVfNKpN5gi2bSYNjCEAAAhCAAAQgEH8Cv/3md15KcyY8h7t+CgPtcwC//bbZG2+Ym0wZrp16KqUV0LvtZvbJJ/5RaV7prbeywtxPx20/FZRBenUITJ8+3c3mOKbJ+dutWzfbYYcd7Mgjj7QDDzzQNt54YzeToa3NmTPHbr/9djtbb3kC5MMPPwzIIRkCEIAABCAAAQhAoNIERo829wzn7xWD2M+lEVLd475dcIHZa6+ZDR1a3IinTjV7+OHi2qA2BAolIKftBe5mTjt/11prLbf39T527LHH2u67756MZKW2J0+ebIcffrh7iRPwFseVwZYt9CpQDwIQgAAEIAABCFSHgCISzZzp7xt7188lN3Wnncw0UdgnWgXciHLSSWYPPBA88rPOYoJBMB0zVgC3RKcKef/+97/t448/TvY8ePBg+8c//mFdu3bN0mQn90tw6KGH2g9u7fsjjzziZtD8zoYPH55V5jc35UahoyVrrLGGHX/88Vn5uSfzzMNcgFwmnEMAAhCAAAQgAIFSEggKh7XQQua29ihlT7RViwRWXtnc6kizv/zF7MorCx+BZoxvt13h9akJgUIIKIrVWXr74kQTlv/5z3/a73//+6ym9nRL3i+66CK74447bMaMGckyl19+uWmro0zBls2kwTEEIAABCEAAAhCoDQJB9u4CC5gtv3xtjKHaWi6+uNmwYWZPP52viUIcn356sIM4v0btp7jdUe2EE4LHseOO5hZNBueTwwrgWN0Ds2bNsoceeiip0/zzz2/HHXdcnvNXmf3crulaEZyWBzxTIMaPH28JrY93soILIN+jR48WPwsuuGC6Ob4hAAEIQAACEIAABMpAgP1/ywC1Dpt0j/pFidspJjA8VlENUxkCLRB44oknTI5byYgRI/Kcv0qXo/eAAw6wAQMG6NQ++uij5D7ByZOMf7BlM2BwCAEIQAACEIAABGqEQJC9q+2OWHsW/iIqDLRPXBAde/ZZX059pmm8zqwIjKKmSQVXXFGfYy/lqFj2WUqaRbb1/vvv27S5O1kPdfHfunfvHtjiOu6Xs2PHjsl81cuVzJBZyy23XG425xCAAAQgAAEIQAACFSSg0M8KieUTwmH5qDRumpu3WZRobyg5kTffPBUOeu6c0KLapDIEWiPwesZmZVtssUVgca0OXm+99ZryP/jgg6bj9AG2bJoE3xCAAAQgAAEIQKA2CMjm0JZHPsHe9VEJTtt2W7MOHfz5jRIG2gULSka1+vZbP4cuXczuvNNM30jLBHAAt8ynorlT3aZdCtfct29fa81pq5DN6VW7P/74YzKEVqayGM2ZNDiGAAQgAAEIQAAC1SXw4YdmP//s10EzohEIpAmstFL6qPBvTTjQSuA//tGsf3+zc881t31M4e1REwKtEdDkZUWeWmKJJaxXr14tFld0qrR888036cOmb2zZJhQcQAACEIAABCAAgZog8O67Zt9/71cVe9fPJShVgVr/9Cd/7u23m/MD+fPqKfWgg8xeeSV4RFddZS6qUHA+Oc0EsjfbaU7nqAoEtOevPmHkl19+sS+++CJZtE+fPm5WSPa0kLTR3K1btyYDXCGhv/rqK+vUqZMtoOD7CAQgAAEIQAACEIBARQhoVaZP9Ajn5v8hEGgisNZaZostZvbZZ01JRR24KLt26KFmxx9vtvPOZvvvbzZoUFFNUhkCeQS0fVFYUejntCyzzDLpw6ZvbNkmFBxAAAIQgAAEIACBmiAQFP7ZBX9x/o6aGEKslFQY6LvvzldJk3q1g+iWW+bn1UvK9debXXJJ8GgOOcRs++2D88nJJoADOJtHzZzde++9Tboun7OL+uzZs+3jjz9O5msl8ZtvvmnXXHONjRs3rinEdM+ePZMztPfdd1/3gsm9YYog2qt4RgtTTZTXpk2bpj2IIzRNUQhAAAIQgAAEIFCXBNxjmFdWX91s3nm9WSQ2KAH3GJ101o4aVVoAv/5qduWVqY/CsP3f/5m1FF6stL3TGgRSBH51N+Kjjz7ahKPStqxsVdmzQTLHLZ/Hlg2iQzoEIAABCEAAAhDwE3jxRX+6Jp527uzPIzWYwGabmXXtajZlSn4ZhYGuVwewc2OZc1cFits11c44IzCbDA8BHMAeKHFP+tYFP7/uuuuSaso4zd1jadKkSU0OWjl999tvv7whff3116bPaBecf5R7u7TNNtvklQlKuOWWW+yf//xnUHYyfdlll3VhH7436YpAAAIQgAAEIACBRicQtAKY/ZAa/c7wj3/vvVMzvh95xJ9fbKpm6OujSL3q669/NVt88WJbpT4EWiegick/zI1HruhXvXv3zqpUblv2gAMOsKeffjqrz9wT2bKTJ0+23377LTeLcwhAAAIQgAAEIAABD4GgFcDYux5YIZI6djTnrzG3qC+/sLb60fZS88+fn1fLKT/9lBqzJi77RLbrrbeatcOj6cMTmMYewIFo4pmh0M+HH364ab9gyfZuvfvKK6+cpWw6ZJYSZbR2dL8Ya6+9dtLRq9BcI0aMaDK0p02b5vYEO9cee+yxrDY4gQAEIAABCEAAAhAoHYEvv/S3xX5Ifi6NnqpQaW7OpW2wQTgS2jf4lFPMVlwxXPl0Kbc7jJ10klnfvqnVwE89lc7hGwKlJ/Dggw/aTTfdlGx4vvnmsyOPPDKvE2zZPCQkQAACEIAABCAAgVgT0PqvDz/0q4gD2M8lTKrCQPtEcxTvvNOXU9tpI0eaZewUkzUYOX1lHy+6aFYyJyEI4C8PASkuRaZPn27HHHOMjR8/PqnSEkssYfvss0+eeplG80ILLWTnnHOOLbXUUlnl9txzT7vgggvsvvvuS6aff/75bv+5NWxB7TKOQAACEIAABCBQdQJaGZWe8JWpjP5vR+qHAA7g+rmWpR7JAguk9ndyj+x28snmouvk96BwagcfbHbssWbOn+ZsBbNnnjH797/N7rrLXKjb/Dq+FLeDTPIlgl4kaHcZhYfefff6m1XuGztplSHwglsWckZGvLYDDzzQrUB30/hzBFs2BwinEIAABCAAgRoj0Nk9oA4ZMsSrdVvNckTqjkDQ6l8NNOBWqDsG5RjQ8OFmiyxi5ptMrjDQe+xRjl6r0+bpp/v3PE5rc+qpZsOGpc/4jkIAB3AUWlUs++OPP9rRRx9tb7/9dlIL7eF71llnuT3j8jeN29IFgR84cKB98cUXtt5667mZEflTI7Qq+LDDDrP33nvPzdD50H5ya+xvdWvo/6r4b61It27dbOmllw4sJV3Vt/YiRiAAAQhAAAIQKIzAv+XBQeqaQL9+qRC8dT1IBlcUAc10PvRQs/33N3vySTPNApcjWPsE33GH2UYb5e+pJcNYn88/N7v0UrPLLzf3bB5ejXffTfUnZ/Juu6WcwSuskF//+efN9OIhYzvXZDjpnXc20+xtZzIgEEgS0MpfOX/T9uEe7m3Vpptu6qVTbltWtnFLtuxnn33m9lqbYolEwqsfiRCAAAQgAAEItExgmWWWcWFrr2m5ELl1RSDIAdynj5lbv4YUSEDzJXbayey88/IbkG2oaE6e+ZT5hWOeoihULmhtoCgUtguIixRIAAdwgeAqWe3TTz9Nhn2WMSqR0Xqe+8vP3S8prdPibgMvfVoTzbr685//nFxVrLKZs61bqitjPchgV70rrrjCvfzZu6UmyIMABCAAAQhAAAINT4DVvw1/C4QG0KGD2SabmIvWk3IAz+M28tl665ara2vVE080O/741OpezSl57rmW62Tmal+piy9OfTT7XKuC3TxTc3M9zQUTMu09lSuvvGKmz7/+ZS4KUX3NSs8dK+fhCFx11VV29dVXNxVWJCrZoEFSblv2hBNOCOo6mb7tttu61fBuKTwCAQhAAAIQgAAEIBCKQJADmPDPofC1WEgTgH0OYK27u/lms4MOarF67DM1aVlO7qB1hP37m7MlYj+MWCvoXh0gcSagFb+jRo2ytPN3ueWWs0suuSTQ+Rt1LP209GSufPzxx+lDviEAAQhAAAIQgAAEykwAg7jMgGk+SaB9e7MddzR79lmzcePMbSGTv2q4NVSalb3ddqkZ/Msu63f+ZrahVcpaBdyKry2zCsd1RmCWiz9+qovVlnb+zuNmLRzupu635PyNigBbNioxykMAAhCAAAQgAIHSEpgxw+x///O3yYRnP5coqW7HTpMT1CeKxlTLMnOm2fbbm339tX8U2u5IUa+6dvXnkxqOAA7gcJyqUupZ95ZGeyMppLJk7bXXtgsvvNC6d+9eMn0WXnjhprYUBhqBAAQgAAEIQAACEKgMAQziynCml2YCK62UCgutwEKaSR70MqG5RvaR9p+aa5pkZwScaQWy22UGaTAC2r/+iCOOMIV+lmj7oVNOOcWtIHdLyEso2LIlhElTEIAABCAAAQhAoAACY8aYTZ/ur8iEZz+XqKkjRvhrvPqqIrr682ohVWGdX3wxWNPLLjNbccXgfHLCEcABHI5TxUvdc889Llzb8TZD02icbLXVVnbaaadZp06dWtVFBrfCRo8fP77Vsl9nTLFYgqD8rfKiAAQgAAEIQAACECgFgQUWMPPtq1qKtmkDAq0R0P2ncGHvvZfaw3eLLcy0x1Q5RHsY//ZbOVqmzTgS0OTl/3PxwsfobaCTHj162EUXXWS/C/kGEFs2jlcVnSAAAQhAAAIQgICfQJADT6s3V17ZX4fUaASCHMBq5cYbo7VVrdIffdTc87ffmrldYuyCC5rTco/239+spXHnluc8mAB7AAezqVqOZkqfddZZTf3LgN5JwdBDyK+//prcn3e2C5zewW0WprbmnXfewJoTJkxoyuujndkRCEAAAhCAAAQgAIGyExgyxEz7uCIQqCaBNm3MNtww9Zk0yew//zG78kqzb74pnVZabezmtib3dipdq7QURwI/u42jD3Ue//RE5KWWWsrOPPNM69WrVyh1sWVDYaIQBCAAAQhAAAIQiA2BoP1/XSDTsk0wjc3gK6SItuAZPNjslVfyO5QD+B//yE+PQ4rbESZpWzpzwNkHzRqNHm2mT5Do3jnnnKBc0qMS4LVTVGJlLq99eM8444xkL23cG5njjjsutPNXleabbz63mmSFZH2tHn755ZeTx0H/3JgxTWTo0KFBxUiHAAQgAAEIQAACEIhIIJEIrhByMVxwA+RAoMQENBfUbdlqkyebXXed2Vprla6Dhx4qXVu0FF8CZ599tgtDl4pDN2DAgOTK37DOX40KWza+1xbNIAABCEAAAhCAgI9A0Apg7F0frcLTdtnFX/eDD8wUCjpuognF669vtu++2c7f1vTUbqW33WbWvn1rJckPSwAHcFhSFSono1mrdyV77rmnbbLJJpF7znTknn/++aaZ2D65/fbb7fXXX09mLeumkmyo6f8IBCAAAQhAAAIQgEBJCEyZEtwMBnEwG3KqS0DBg3bbLTUrW1F8R440F1moOJ0ygg4V1xC1Y0tAIZ+feOKJpH4K+6zti7p27RpZX2zZyMioAAEIQAACEIAABKpCQGF9M3aXzNJhnXWyTjkpksAOOwSvqM5Y31dkL6Wp7gLU2kYbmT33XLT2tCXRTTeZLb54tHqUbpkAIaBb5lPR3IcfftjGjRuX7FOrf9955x078sgjQ+mglcILaDMvJzu4X4Tnn3/e3nzzTfcj/LXtvffedsABB9iqq66aDAv9ySef2K233mrqT6JQ0QceeKCpTwQCEIAABCAAAQhAoDQEgoxhGTYK4YRAIO4EVl/d7OqrzbRH8DbbFK7tzJmF16Vm/AnMdBf4nIw4bVrJe/rpp4dSfLD7Mdxuu+2aymLLNqHgAAIQgAAEIAABCMSaQFD4Z211pDC+SOkILLKI2R/+YPboo/lt3nyzue1Egx3E+TXKmyJ31tw1h5E6cu6r5BgjVaJwqwRwALeKqHIF7rrrrqbOEi5m4OiWgqE3lUwdTJ8+vSmlXbt2duKJJyadup9++ql95jbeOvroo5P5ypulAOxzpWfPnnbyySebQnQhEIAABCAAAQhAAALFE5g2zdxKOLP33vO3NWiQWefO/jxSIRBHAnN3mClYNWZxF4yuJiq+9tprLnT45CZddZx53pThOejevXtWKrZsFg5OIAABCEAAAhCAQGwJBDmAV1zR3EK12Kpds4qNGOF3AH/5pdmTT5qL7lr9oU2aZHbppYXp4VxYSBkIEAK6DFALbXJCCWOjLewCpl/nNu8aNWqUe8HY/IYx7fzt1q2bDR8+3K644gqcv4VeMOpBAAIQgAAEIACBHAKXX2621FJmm21m9tNPOZlzT5l35+dCanwJ9O9vtthihevnzA6kjgkowlQpBVu2lDRpCwIQgAAEIAABCJSHQND+v4R/Lg9vRWTq1MnfdlzCQN9xh7nFh34dW0u9/34zhY9GSkuAFcCl5VlUa4888khR9XMrt3e7ZY9wU0N22mkn+9JNBZnkpmDMmDHD+rs3OIsobgACAQhAAAIQgAAEIFASAjJyRo40u+GG1puTUaQ9VjfeuPWylIBAHAhop5g99jA75ZTo2nTpYi7Eb/R61KgdArI39SmlYMuWkiZtQQACEIAABCAAgdIS+PFHc9tX+tv83e/86aQWR2D++c0239zc1p757dx5p9l//mPWsWN+XiVTIgS0zVPrt9/MbY9K+PA8MEUm4AAuEmAtVJ/HBd7v3bt38lML+qIjBCAAAQhAAAIQqDUChxwSzvmrcSlE9Lbbmilk1iqr1NpI0bdRCWgvp6uuMjexNBqBY44xc8GJEAgURABbtiBsVIIABCAAAQhAAAJlJfDSS2ZuB0uvsALYi6Ukibvs4ncAT5lidt99ZttvX5JuCm7kq68KrpqsWGz94nqvz9qEgK7P68qoIAABCEAAAhCAAAQqRECO3IsuitbZ1Klmf/lLsNEcrTVKQ6D8BLSP1113BYcd82mw5ZZmRx/tyyENAhCAAAQgAAEIQAACEKhVAkH7/yro6NJL1+qo4q/3JpuYLbigX89qh4EeM8bs7bf9uoVN7do1bEnKhSWAAzgsKcpBAAIQgAAEIAABCEDAQ6CQsLhqRgbSY495GiQJAjElsPbaZs8+a7bkki0rqJDR++1ndtttZi4YEQIBCEAAAhCAAAQgAAEI1BGBIAcw4Z/Le5E7dAhe5fvgg2Y//FDe/n2tf/CB2Q47mA0ebPbtt74S4dOWWy58WUqGI4A5Ho4TpSAAAQhAAAIQgAAEIJBH4JdfzB5/PC85dMLdd4cuSkEIxILAGmuYvfee2dlnm622WrZK2u93553NXnnF7N//NmvfPjufMwhAAAIQgAAEIAABCECgtgnMmpV63veNgvDPPiqlTVMYaJ/MmGF2++2+nPKkffaZ2T77mK2wQmrib1BI8LC9y850u5giJSaAA7jEQGkOAhCAAAQgAAEIQKBxCIwfbyZDq1B5551Ca1IPAtUj0LGj2aGHmv3vf2bbbNOsx/PPmyn0mIx3BAIQgAAEIAABCEAAAhCoPwKvv27266/+cbEC2M+llKnrrmu2xBL+FisRBlqrjI86ymzZZc0uv9xs9my/LlFT1SZSegI4gEvPlBYhAAEIQAACEIAABBqEwI8/FjfQYusX1zu1IVA8gbZtm9tQ6GcEAhCAAAQgAAEIQAACEKhfAkHhnzVJdNVV63fccRmZbC5FXfLJM8+YffedL6f4NDn9Tz01tcfzGWeY/fZb8W2mW9hqK7Pttkuf8V1KAjiAS0mTtiAAAQhAAAIQgAAEGopAz57FDXfhhYurT20IQAACEIAABCAAAQhAAAIQgEClCLz4or+nNdc00x61SPkJBIWBVhjmIAd9oVrNnGl2ySVm/fqZHXusWdhJ7POE9DwOH252/fWFake91giEvAytNUM+BCAAAQhAAAIQgAAEGo+AjKAFFih83ITKLZwdNSEAAQhAAAIQgAAEIAABCECgsgSCHMCEf67cdVh5ZbOBA/39aVueUoicyTffnNrjd9Qosy++CNeqdLvvPrNx48zWWy+4TufOZv/4h9mjj5p16RJcjpziCOAALo4ftSEAAQhAAAIQgAAEGphA+/ZmW29dOIAddii8LjUhAAEIQAACEIAABCAAAQhAAAKVIjBpktmnn/p7W2cdfzqp5SEQtAp44sTi+3vkEbPVVkuFmv7oo3DtLbVUaiXv2LFmm22WclA/9ZTZq6+a7b9/cxvav/iqq8yk5wknmLVr15zHUekJ4AAuPVNahAAEIAABCEAAAhBoIALHH19YqCs5jtkjqYFuFIYKAQhAAAIQgAAEIAABCECghgm0FF4YB3BlL+yIEWbaD7iUMnp0atXuJpuYvf56uJZ79TK78EKz998323VXs9zQz4p6dtBBzW2tsorZnnua9ejRnMZR+QjgAC4fW1qGAAQgAAEIQAACEGgAAssskzJ4ogy1T5/UPjpR6lAWAhCAAAQgAAEIQAACEIAABCBQLQJBDuABA3DoVfqaLLmkWanCbr/zTiqy2ZAhZs88E24kXbua/fOfZuPHp1b4KjoaEj8COIDjd03QCAIQgAAEIAABCECgxgjss4/Z+eebtW3buuIyjp94wqxnz9aIhTdFAABAAElEQVTLUgICEIAABCAAAQhAAAIQgAAEIBAHAkH7/7L6tzpXR6uAixGF9NZq3JVWMrv77nAtdexoduihZh9/bPa3v5lpL18kvgSIsB3fa4NmEIAABCAAAQg0MIFx48bZrFmz8ggs5TZWWXDBBfPSSag+gQMPNBs61OyYY8wef9xszpxsnXTZVObww826dMnO4wwCEIAABCAAAQhAAAIQgECtE5g6daoLBetiwXpk0KBBLjws69E8aGoi6ZdfzNxrCq+UaiWqt3ESAwnssEMqvPLMmf4iCun8xhtmCrucKd9+a3bKKWYXX2w2fXpmTvCxJrvvvrvZiSeaaR9fpDYI4ACujeuElhCAAAQgAAEINBiBvfbay6ZMmZI36vPdMtNNtCELEksCq61m9sgjZl99ZSZj7NlnU2pedllqZm07nr5jed1QCgIQgAAEIAABCEAAAhAonsB4Fw9255139jY0duxYm2+++bx5JMafgJyJs2f79cQB7OdS7lTto7vxxmb33+/v6dFHzfTRe4qzzzbTfrznnGN21llmP//sr+NL3Xprs5NPNlt+eV8uaXEmwCuoOF8ddIMABCAAAQhAAAIQqEkCvXqZaZ/ftKy6qhnO3zQNviEAAQhAAAIQgAAEIAABCECglggEhX+WE7J//1oaSX3p2q9f6+N57TWz9dc3NwHDzC3SDy3Dh5uddprZ4MGhq1AwZgSIuRCzC4I6EIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQCAuBF54wa+J9v9t08afR2p5CTz3nNlFF4XrI5EI7/xNRzZ78kmcv+HoxrcUDuD4Xhs0gwAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAJVIzBnjplCQPtEDmCk8gRmzDAbOdJs1qzS9b3ssmY332w2ZozZRhuVrl1aqh4BQkBXjz09QwACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAIHYEnjrLbMpU/zqsf+vn0u5U2+4wezjj0vTS+/eZn//u9lee7F1VWmIxqcVHMDxuRZoAgEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAARiQyAo/HP79mZrrBEbNRtKkTvvLH643bqZHXWU2UEHmXXqVHx7tBA/AjiA43dN0AgCEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIVJ3Aiy/6VdBesTgO/WzKnfrmm8X1cMghZn/7m9mCCxbXDrXjTYA9gON9fdAOAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCFSFQNAKYMI/V+VyJDv9/vvi+j74YJy/xRGsjdo4gGvjOqElBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEKgYgS++MPvkE393OID9XCqRutBCxfWy8MLF1ad2bRDAAVwb1wktIQABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgEDFCASFf5YC66xTMTXoKIfAoEE5CRFO+/cndHcEXDVdFAdwTV8+lIcABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACpScQFP556aXNFlmk9P3RYjgC220XrpyvVDF1fe2RFl8COIDje23QDAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhUhUDQCmBW/1blcjR1uuOOZssv33Qa+qBrV7NDDgldnII1TgAHcI1fQNSHAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAqUkkEiYvfaav0X2//VzqVRq27Zm//1vtFDObdqYXXGFWbH7B1dqjPRTPAEcwMUzpAUIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgUDcEZs0ymznTPxwcwH4ulUxdbTWze+81W3DB1ntt397sssvMtt++9bKUqB8COIDr51oyEghAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCBQNAE5gH2iMMIDB/pySKs0gQ02MBs71mzECDOtCvaJyrz8stlf/uLLJa2eCeAAruery9ggAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAQEQCQat/hwwxmwfPUkSa5Su+5JJmN9xg9tVXZgcd1NzPlluaTZpk9thjZquu2pzOUeMQ4M+0ca41I4UABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACrRIIWgFM+OdW0VWlQI8eZuus09z1KquYLbFE8zlHjUcAB3DjXXNGDAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQCCSQS/qxMJ6O/BKkQgEAcCOAAjsNVQAcIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgEGMC2md2rbVirCCqQQACTQRwADeh4AACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQMBHYOWVzbp08eWQBgEIxI0ADuC4XRH0gQAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIxI8D+vzG7IKgDgRYI4ABuAQ5ZEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQKBRCMyZEzxSHMDBbMiBQNwI4ACO2xVBHwhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCBQBQKzZgV3us46wXnkQAAC8SKAAzhe1wNtIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgEBVCMyc6e928cXN+vTx55EKAQjEj0C7+KmERhCAAAQgAAEIQAAC/fv3t19++SUPRNeuXfPSSIAABCAAAQhAAAIQgAAEIAABCFSbQMeOHW3AgAFeNeaZh7VoXjAxTAxaAUz45xheLFSCQAsEcAC3AIcsCEAAAhCAAAQgUC0CN9xwQ7W6pl8IQAACEIAABCAAAQhAAAIQgEBkAprIfM8990SuR4XqE5g61eyyy8xuu80syAFM+OfqXyc0gEAUAjiAo9CiLAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCoEwKPPGI2cqTZl1+2PCAWcbfMh1wIxI0AcRfidkXQBwIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQiUmcBNN5ltumnrzl+pcdBBZiqPQAACtUEAB3BtXCe0hAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIlIfDmm2Z//rPZ7NnhmpszJ1Ve9RAIQCD+BHAAx/8aoSEEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQKBmBI44wmzYtWnMqr3oIBCAQfwI4gON/jdAQAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCJSEwMSJZtr7txBRPdVHIACBeBPAARzv64N2EIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQKBkBB5/vLimHnusuPrUhgAEyk8AB3D5GdMDBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIgFgUmTilNj8uTi6lMbAhAoPwEcwOVnTA8QgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAIBYEEoni1Ci2fnG9UxsCEAhDAAdwGEqUgQAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAJ1QKBPn+IGUWz94nqnNgQgEIYADuAwlCgDAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABOqAwAYbFDeIYusX1zu1IQCBMARwAIehRBkIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgUAcE+vY123DDwgaieqqPQAAC8SbQLt7qoV2xBGbPnm0PPfSQPf744zbZ7cz+66+/2vLLL28rrbSSDRkyxAYMGFBsF9SHAAQgAAEIQAACEIAABMpI4KeffrLRo0cnn+XVTcJtuPXII4/YyiuvbIsuumgZe6ZpCFSPALZs9djTMwQgAAEIQAACjUHgzDPN1lrLbPr08OOdd14z1UMgAIH4E8ABHP9rVLCG33zzjR122GH2ySefZLXx6quvmj7XXnutHXPMMbbxxhtn5XMCAQhAAAIQgAAEIAABCMSHwDvvvGObbLJJk0Jz5sxJnt9www02YsSIpnQOIFAvBLBl6+VKMg4IQAACEIAABOJMYJVVzK64wmyPPcycidGqzOPiyaq86iEQgED8CeAAjv81KkjDqVOn2hFHHNHk/O3Xr5/97ne/s4UXXthef/11e/bZZ23GjBl20kknmcpus802BfVTqUqzZpk984zZ00+bffaZWYcOZkstZfbHP5pb+VApLfL7+fprc6urzSZONHOLrW2JJczWXz/1nV+6MinuctoTT5h99JHZL7+YWxVi7tqbrbBCZfr39TJlitnDD5u99ZbZ99+buw/NVl01FWakUydfjcql6Rp+9ZVZt24pVu2q+Kv422/mVvOk7vXPPzfTjLqllzb705/MBg+uHJPMntwCI3vlFbNHH03d5zrXfa59PtZZx0wPfpUW/a25wAZ2//1m48ebWw2VunZDh5ptt53Z4otXWqNUf/p7E6e33zb74YfUfb7aambDh6d+s6qh1YQJZnfeaTZmjJnudd3nLgiEbbWV2eqrV0OjVJ8ffGDu/yGzL74w69jRbJllUvdU167V00nXTP/HTJqU0kH3ua7dggtWT6dp01I66T7X70Pv3ma6z/v0qZ5O9AwBCEAAAhAoN4F6s2W1okb22Wuvmbk52slni4EDzU3iMJt//nLTDG5fdvULL6Sexzp3Tj2P6TmjffvgOuXOkd2oZ0QXvMzatDFbckmz3//eTPpVS2S/PvaY2ccfm+nZbLHFzIYNM1tuuWpp1Nzvzz+buQARSftatmM1JW3zjx2bus+7dzdbcUWzTTc169GjOprJbtQ9/uKLzff5ssum7Otevaqjk57pH3ww9Zvw6admbdum7nOty5CNXa2/P91Herel9SP6zdJ9vt561Q3v+t57Zvfea/b++6n7XNdMqxQ337y6Nprea7nXqvbtt6l72wVYtEGDqnM/pXvV/y0vv2z25ZdmXbqY9e+feuem39Fqid4/yL7Wfa73bH37puzrav6/Vy0WtdDvrrua6Xd7zz1T746CdO7Z0+yqq1K/7UFlSIcABGJGwIUPQ+qQwIUXXpgYOnRo8vO3v/0t4Zy9WaN84403Em7lbzJ/2LBhCTfDOiu/mJPLL7/cuYis6fOvf/2rmOYSN9+cSPTtK7eT/+PUT4wdW1QXkSt/9FEisd12icQ88/h12nDDROL11yM3W1SF779PJA45JJHo2NGv0yqrJBIPP1xUF5Er//JLInH00YlEp05+nRZYIJE45ZSEuz8jN11UBd3uRxyRSCy5ZLZeXbsmEjvvXPlrp8Fcemki0atXtj6Z9/zaaycSr75a1LAjV3766URi0KBgnZZfPpF46KHIzRZV4amnEgn1m8km83jeeROJww9PJKZPL6qbSJV1nx9zTCIx33x+vRZaKJE477xEYtasSM0WVXjKlERin30SibZt/TqJ2UYbJRIfflhUN5Er654aPNivU4cOicS++yYSX30VudmiKnz8cervvl27fL2UttNOicT48UV1Ebmyfs8POyyR6Nw5Xyddu2HDEomXXorcLBWqQGDXXXdteh5y0VeqoEF2l/vvv3/Cbf/RpNPAgQPdb6b70UTyCExxP6Tp59k111wzL7/SCS6iT+Kggw7K+/zvf/+rtCp5/W2//fZNrGRjIBAolkA1bVk3MbrpftZvwJgxYwoejp79zjorkeje3f//uWykI49MJH7+ueAuCqo4enQiMXx4ItGmTb5ess+OPz6R0LNkJcX9xCV22SWRaN8+XyfZt3vtlUh89lklNUr1N3JkIuF7RtTzmJ5p9WxbadG7iFGjEonevbNZyd6XbV3p+2natETi738Pfm7VM7777yvx00+VJXXDDfn2vq6bPnqPs/vulb+nrrkmkVh00ezrltZJ3/36JRL33VdZTvq7+vOf/X970un3v08k9JtRSdHvwZZbBnOSjaR7rtLvkW66KZFYbjm/XksvnUhcfXUiMWdOJUml3hHJrve9m1xssUTi3HMr+25Eo3/rrURi8839Oun3oBq/55W9KrXdm/7/P+OMRGKttXSv95j7TNQjea70Sj8f5NLc0L1wT9toEydOzM2uyvlRRx3VpNNdd91VFR1yO73llluadPq7fjBjIB+6F5Dpa7fZZpvFQKOUCvPPP39Sr956sKpTcf+dI/VGwO0RltAPohzAMmBznb/p8T7//PNNTuIrr7wynVz0d6kcwHpwOvBA/8NV5kOyjmUU3npr0aqHauCBBxIJOQpzdcg914ONHgArIW+/nUgstVTrOklH9/9SRR5KJ09OJFZeOZxOMirk8KiE3H1369dPD8/iNHt2+TXSi6HddgvHSc5NGR2VEDeHpEXnYfp+14ujk0+uhEaJhH6mgl7ApPVJf//ud5V5MJ00Kfx97ubcVORhWUa88+m0+hslVgsumEg891xlrt9JJ/lfNKavWfpbz1xFvGuNNJiwv+fuebBiL2PefLPlSU9pTvqdOvPMSMOlcBUIxM0BPMjN6kkbXelvFyGmCmTi32XcHMBxJoYDOM5Xp/Z0q7YtWyoHsJxdG2wQ7nlsxRUTiUq9w9Szg89RkH6+SH/LyfHBB5W5f+Tw0rNWuu+gbznSn3yyMjq98EIi0bNn6zrJFpLTtVJy6qnBjro0N00qrhQnTazWROV03y19axLvJ5+Un5TsazmYWtIlnSdWL79cfp3Uw377hdOpkvdU2Ptck4rPP78ynKRTjx7hWOk9UiUmFvz2W2pScPq+ael7iy0qNwkj7O+5Jqt8/nllrt/11ycSem/VEiPlaZL8s89WRid6KZxAD/fHKJtR33ERHMDhrgQO4HCcVKoRHMDzuD9kpM4IPPXUUy5UpIsr42QrF+ezfUAMGYWEXkIxLp3c6+KqzFKc5RjJv/5ldsEF4RRSKKZddjF77rlw5Qst9dJL5sJlmym8UWviImzbn/9sdvfdrZUsLl8hVDfaKBWqJ0xLp59u9s9/hilZeBmFoVaop3HjwrWhMF8K3VvuW/CWW8y23rr166c9L8TpL38Jp38xpY480uz668O1oFBMu++eCosWrkZhpW6/3ezAA1NhzVtrQY/2xx1nduWVrZUsLv/JJ8322Sf8PaJQXwphU05RyGeF5w57nyu89847h9tTpVC9dY9suWUqDHWYNhT2WOGgJ0wIU7rwMuedZ3b88SkzsLVWFP5cIdAUZq+c8vzz4X4PpIPC6+m3v9z/xyg81oYbhrse+p1yOz3YxReXkxJtQwACEIAABCpLoB5sWf0fvdNOqXCqYegpnKieKfW8UU656KLUs0OY/f0UclXhaLVVTjlF2zzpGSvM2BWKWTbm//5XTo3MFHZW10PhS1sT2ULHHmsmtuWWQw4xO+YYs5kzW+5J10zvBx54oOVyxeZKD9nWo0eHa+ndd1PXL8y7lHAt+ksdfnh421SsdK0V9riccsop4Z/Z0/dU2HcEheqt66Et1cLc5wqlfdBBZldfXWhv4erpOmyxhdl334Urr/dI+q0N85sWrsX8Uroeegdz8835eb4UhazeYYfy6qR+ZV/LFgwzdm3pJRszzO+sb0xh0zR2sdI7idZE4bOjvEtprT3yIQABCEAgmMA8wVnk1CqBt2RBzpXBrWwcusYaayRLfueesF7TpkQxET2MRnVSygDZa6/wDqKoQ1X7u+0W7mEm3bYeFuUElpOlXLLffql9kaO0f+KJqT2ootSJUlbO+7BOsXS7cvD95z/ps9J/a09k7WWhaxJWZOCU07GplxfnnhtWm1Q53Yd7712++1x7/+y7bzRO0uzgg8v3gkgTA0aNCueQzqQpA+SuuzJTSnt8wgmpfa2jtKoXMeU0nPXySfv9RhEZ2HqhVC758MOUcRqlfemk3/NyiYxSTRrSRJ2wor+9ESNSe7+FrRO1nCadaN+mKKK/Pe0RjEAgDIEH3I/Qx252RebntttuC1OVMhCAAAQqQqAebFnZDw89FA3X22+b/eMf0epEKf3BB9Gf9yZNSj2DR+knStlff009W+kZK6xonrsmVJZz4rBsRtlEUeSww8o7efGmm1IOn7A6iY846RqWSy680EwTKqPIO++Y6V1EuUSTgOUYiyKyO2T/lkv0nC67MarI4Vqu90hpp2ZUZ/z//V/0d09Rxq1J6LoeUUS/tTfcEKVGtLLXXmsW9VFZOpVzUohe+WqiQxTR/zH6nSqX6F4dOTLaeyRNqNek/TBO7HLpTbsQgAAEGoFAu0YYZKON8W39z+6kTZs2tswyy7Q4/H79+jXl62Vgaw7jpsJlPtDqS80yjCpyNKy5ptnii2v8/o/aDMpTelC+HIiFvGTXg5BmT6++eqrt1v5N69ZaOeVr1lwhK4z1wK/ZupoFmHaIlupbDpVCnW5HHWUmo7Cd+2Wax01Padu2+VPs+b//bW5lfBiq2WX0kCwDWrrontRx5nfQcbpcS/kymNPcs3tt+UwvcFZc0WzhhVPl0vdtulYx5xMnRje61K8e3jWfZMklm8eksRXzUbuqL8P0s890Fl3k5NPPoO4fcSnVt67v449H10c1DjjA7J57UnXTfGT05B6rRGZ6Zn7aSMpNe/31VLtR/9XvyKBBZp06ZTPK5JV5nGaZmZZ5nJmvVQHiFVWefjq1Orl379S1y6xfzD2udjRBpZAXYlqhq5nyq66aqU3wsa5PWNHKZ60Sjyp6aXrSSeWdWBBVJ8rHl4Db1ya+yqEZBCAAAUeg1m1Z/d+vybCFyPnnm+lZo2PHZntV7ei5J+gTNl/PGIU8j8mu22MPs169wo1Iz4Nh5dVXzfT8E1Vk82+2WcoeSj9rlepbtlDYFa2ZessGln0tvdI2rFikj/Vd6Lme++UMjCpa7Sdn9v77N9uwmbZpS/aqL09p0kXfev4sdIWqHLR6ZdWhQ/aIin2+V/2oDum0Bo8+ajZ0qFm3bqW3ZRXVKMokh7ROeo+02mrmovZl22caZ67dlU4Lm66/u6iThqWX3qfo3ZbWmehvLv3JtFkzj9P5md/K10eSTte57ldF3CtENFlcTuDM8Yc59nHLrCdd/vvfQjQyO/ro1O+b/vbTov4ypdDzW28t7H3pFVek/n/RfS4Rf9+3Ly1dNihPf3uFTFh4882Ug33HHZOq8A8EIAABCJSBQLsytEmTVSbw2VxPycLOO9ROnrQWpFeGJTcp5NtwOYrfeOONwFY1a7tr164u7Mf05CewYECGHv60ci9f/uOSpuUkD3Dn7m18hsgBUqgTJKOZkIfvu3I/5ZR1HhRbKStNi6srt8D6Rde3bzW3prU23w+63OVc3ZoFwGTZj8lOSp45K8u6N6XLoLjkkqbTWBykV8RWThnd/M6qzpIl3dnqWSkKy6ZPZeQq182EnK56uXM3BThD9MJKn8rIw64bn4V4gktvtqx0T2UERSizap+49l/w9KHfqB5N6dLpvvuaTst8oCnU13n62MClZf9OtfCz7qlfbNLNroG5ln9TU/3ckXubkCFpR3lGUhkP3VvIvN/zri4tW6ennzbTJ04iB/5ll5nb8iFOWqELBCAAAQhAIDqBctuyLzkPw5cthNv4wb3Bli071e1pM1vesogip8rkybmVvncJzsOUJ2u7lL5NqbKDo640a6pc0MEETy09+zTbZypwne9R0lOzNEnPuGam5DSl5+h1stLk0C5k4lxWI6FPnOFseqbOFHl1Vs5MSE4wjBoFK6uBMpwoypY+lRG9F/HZ/LI5ejapoPu8ctdOdvWVTX03Hwxyh2s1n7ojrR6unNzounIe3ixxnl7bIitlwoRwW8NkVSr4xM2ssG9yasu4cCssMkQh0vWpjLzruhnr6WorlzZfU7q2IKvcPaXr5tNJvwcLNekkm18LWyoj7o/KfBdFKwb0SYmcuFq5HzfR/3s4gON2VdAHAhCoJwJttNlxPQ2o0ceivX830oYvTpZbbjm7QlO8WpD3nQfpL3M3Oh02bJhbRXRSC6VTWTe4qXX/DBGf+Xu3Sc+3bonqyJEjXajNXVptN11AM0r9e7B85Irk3q5uerTpQblaMtF1PCOncxmDS+ekVfL0K9dZrtGs/pdxn3l0UAX53vWZazRLjUXcZ34dVEF03XzeygVduj7VEhleuTKvS+iTm1jB8wmuLzfNO0uqfZ9PdtpMy9IodSInYrMD2FOgjElB93lv12fnMvbbUtPOGk5OwMgts4BLaH4Rk5tb/nPffS5GYlUtmeA6zr3P9dKjr/tUS/QbFXSfZ+uk1fe5KymyS3BWDQJyMvw8d8OtJdwSjo5a1oXUBIE57g31+LmhX3TddP0QP4EvvvjCRQJxoUCc9OnTx+adV88tpZMNtNwIaQgClbBl//rXv7qJXE+3ynOy8+JKn3+7MEL9+/dvtXy6gCLX5O+bG/Q8Jkdr8yTBdBuV+ZZdLfs6V+L4PNbBKekedKomPrtD9obsjmqJnK0/ejrXs3S1ZgTqHYTeReRKNe9zOcbG5yrkzru4z6Ke9EolSSfplint3MlSmQkVPo7jff6lY/Czh4Oeyar1TC19pFeuyLaWjV0Nme06/djTcVeX1suTXqkk3ee573D1+5T9e65JzH37Vkon+olCQAvANBmurVvKvvTS1XzP3ay1Jgr+qj0knCy11FKtLnxrrlm+I/k+NIFQsuiii1qXLvo/prqidxDpCY/du3e3Hj2q9bzZzGGmC4cxQTObnHTu3NniEp1MNr9sfy2i1D1VStH9MHDgwFI2WVBbesJA6oiAZiqnJczLl8wy06b5XjKnWyv8e4aLh5SpV5iW/BEKgx7Qm8ccpu3Slmme4ZfdbjV10n80vv9s3BTEqoleBAY5dqrJKuhhuJo6xZHTwgF3TjU56UWCT1IPgr6c8qfF9T6P4z0VR53ieJ8HTUbJ/9tTaLlCwsuV/++isXuYf/75TR+JjOeoz0ONTa/6o880Srl2wddDqyX1kcxyMzn1KaVovrK2tkHqn0Dm31mmnRo08swy5bJl5QTO1CtIl3S6wn36bdk4PvvEUac4Po8F2R35z2Pp+6D833qV53sXMcOl61MNcTd/LG3+ON7nmgjvk2reU3G8z/UM7VswIIdntVhpUUUc76k46hT+Ps94le37wyCtSgQyo4ZGeRYqp7rdXAxzfSSFRh4ttX6d3F5q+qQlDqzmcfHs42jLxlGnRRZp/q0q9bXTPRoHwQEch6tQQh3Ss2DUZIcQS4Eyy8TlppTuCguUL75EvQyq5gshn07SvForbdW3ZtjlzrJTehx1iuP1QyfdLdnCfZ7NI+gsjn970tV3/bjP86+ij5NKVfO3M7xO2q8KiR8BOa7SwXZkhCG1RUAzgdPC9UuTyP8u932O8zefeb2m1IMtq/hq/hhrzb8nzdeP57FmFukjHyflVfP/0Dg+49eSTtzn6bu7+Zv7vJlFS0fc5y3Ryc7z3VNx/NuT1vm/55hJ2VczLmdxtIXKbXcUwj5TJ9ktcbBd4qiT2KbvqbhwytRJx6W2+eNwL2hcOIBFoY4kc8/fMHsWZc7Qz3QGt4RkpZVWsv322y+wyNixY+3+++9PhsxSoeWXX9623HLLwPK+DIWyzN+S+CVXNDc8p8KsDPA1UaG0sa6f73L6UtisITlplTx9wnX2gqfDY11atf7kFRrXF/JVYRB8q5U96pc86WvX4t88re7o0tb3pFcqSSvxZehkiq5btUJ5SQ/97eXe51rp83tlVkniaAwqbNZrHh7DXFpqhqIns8xJ4jTD04fup3zDy1OwTEmXunY1cztT9HsgVtWSO13HuWHr9H/M1tVSyO3pO8n1nctJK+x6upfL+r8mJfO5LbC+c3+iRBdOE4nP92677Wb//e9/kwq9+uqrtsYaa8RHOTQJJKCQr/vvv39e/rvvvmsDBlTzuTNPpVgk7LDDDm7f0tuSurzhNpRfeeWVY6EXStQegUrYsptuuqmtsMIKgXB0L7/nNrhM28nrrbeerb766oHlczPcn4ANGpSbOsUlvJyb6M5XdJ+gKFee4iVN0jPifZ4Wl3Zp0qtaconrOPd5bEmXNrJaCrl+FSpbtmOmaLXrWpkJFT5+yPV3rafP81xa80oWT4EyJsnm+NbTvlaWVitcr56j7/HotKxLq+Z9rqhVuQ472fzV4iREsmM/1UGGKPz6JhnnlT7UyilfhC+FWq6WLSv7LPXMk01D7zz7ZSdV7Eyc9NuZK/qNWjs3sSLnbdpMd+FUP/f2NXNmX5cu53RK/vhHswcfTJ/xHScCCy20kHvP8F0yfLDCHMdBtO3lY489llRl4sSJye1nqq3X0Ucf7fb8Pj2pxl133RXZB1IO/W+99Va3t7beb5v9/e9/txNPPLEc3URq86OPPrJll9X/v2abbbaZ3Xef7zk0UpMlKaxIVgqZrdXJCjFej6InDKSOCGSGHFDo5dYks4zir4cRvdRp6cWO9h2+9lqfMRKm9VSZ7bc3O/vs3PJDchO851u7d/VyIGfOvk4f+77ViC89nZbOd9sl2+jRuV2umpvgPXc+cMfMm+VNVN9hRC/8n3git+QfXII+LYsLQ2/Dh6fKpKPqFfOdrquof26b6JxQpDL6WjeQ5cTQw58W3LhImclP5rHSCjmXTm4bxpzZ+HLsXNoypLm5vXppfwJz+16kPm5bgLzjltIy89SGzvXR/TRuXK4KHXMTvOd77eV2v14iOyv3vinkXC+t3PyNHAn3t7fxxmbrrOMe5d2zfJiPOgkql54Bqnw9Z2rb8YyFWKo596NWguX3zke9zTapa6/6YlKKb0XMv+wyOeIy+9YFybkomdlzjxUlc+RIzSzzj9+XnpuWe57mKJ2y91AXJ4WmblkUrebII900g/bNjDI5ZR6nGWamZR7n5us3Klsn6fLXlhWamzt0qNu1yP39SQq5n1M1U/9m1v/gA3MvdzNzdexulBCy3HLmHlpDFJxbRNcmjHzt3iu+/HJ2yT59tnW/NVOyE93Z55+f7/bb3KQpfRN3iPO3CQcHEIAABCBQowQqYctuscUWLdJ59tln7YUXXmixTEuZq6ziXAD9nMvwo8xS7uHPNsxM8B7LTthpp+bnMT275H5UMTct8zwoX3aHnjWaRQ8oLbNIl9XcpbBbx6V1Sddt6VuM8p8R922pSlOenseWWSZ1mn7WKuY7Xddtae6uf1M3cw/cBQ3h2JF9rbkFaTu2UNs1t75e6+S/2nFGs+nTusj2SNufufZspp3qO07Xk+2Rzk9/y2Ezd/v3uUrIWdi7VYW0Tfzee6faU2HdM5lSzLl0yr6n3B9VyGf8XXYx6+leEeheCPORzkHlxCud/9JLZg88kDpv/te9+Agh+j3QvS4mPnsrTHq6TGZ9MXr66VwFVnMJ+rQs+n2Tze+zR31pYpSbnnuuMtrS8z//Sf39NGvgbpYQtmzfvmZ6h+gba+a4o+bL1te7kextdvo4nQ5rVjHgSGNcd93Ufa5+M6XYc7fmxjkrMlsUp4MyEwKPNUFpgQVS964KiX3md+Zxbl7ueWZZ2dYTJiglJfPO+75zzLmL4pEPPxzrrlXz34De4SIQgAAEIFA+As4FgdQTgfnkQZsrYeKWZ4bZCusATrdfzm85IuTIyH6oab1HOQvuvLP1coWUkMNHD9/5K5Nbbk1b/z3zjNnCC7dcrtBcOd0efTR67dtvTz24R6/Zeg0Z43/7W+vlcku4BTdJx1hueinO//GPlBMxaluDB+c7ZaK2EVT+q69SL4iyDeeg0s3pcpK7eRZlERk52p9eDrIosthiZm6im9v3Ikqt8GXFSgZhFNHfnpv01uRAjFI3TFltO3LKKWFKZpfRfb7rrtlppTqTw1u/g7lGZWvty8F++OGtlSos/623zPQyVMZ3FFl7bbPnnotSI3zZH39MvTT8/vvwdVRywQXdeviXUt/RarZeWtdsrbXM3CLRSCJD/LjjIlWhMAQg0AoBzf5dV2/tciTzOTsni1MIQKAEBDL/xmrZlj3hhMKe9Y45xuxf/yoBSE8TcmrqGTGqDHHzQF98MWqtcOXlkJbdGNUWcguS7JVXzO09Hq6fKKX0PLbmmmb/+1+UWiknj2z+KJMEw/agZ+hV3bzz/InDrbdwxBFmZ5zRerlCSijAiQt0Elm0COmooyJXC1VBjjEt2I9qC8kBNTdgS6h+ohTSeyQFD3EL1SKJ7sMbb2x20EWq3Eph3VNaoPD2260UzMnWZOGHH26efJGTXfSpJrSedVa0ZmQL3XKLmd7blENOPtns+OOjt6y/vdNOi14vTI177zW3wjBMyewyw4b5HP/ZZQo9+/TT1O+f7vco0qeP2e67R6lBWQhAAAIQiEpg7ry0qNUoH1cC87rplD3mTs/9OnuKr1flr+RVmSvdu3dPH1b9WzMvr7wy2sOuDMHrriuf6noYveaa5pmqYXu65JLyOX+lg9rX2KPIoYeWz/krPeTAj/qCQas099gjyiiilZVzS7NVo4i20b7wwig1opXVykbdU+mZlGFqy9Gqv41yiWZ033STWcZckla7kiGoOuVy/koBGYKrrdaqKk0FNONWK9HTq0ebMkp4IEMwajTX7bYz0+zycolmY8uZG0X+9Ccz/SaUS1Zc0eyEE6K1rhd65bzP5bzXb2eUvz2NQJMQ5AQuh0gXjblLl2it6wValL+NaK1TGgKNSWBr9yZYqwBzP330lgqBAATKRqBebFk967nI6JFEzotyTuj63e/MDjggkkqmyZSalF0ukc1//vnRWtfzkp7hyuH8lSZqX/ZZ1OcxOXrK4fyVTrJrLrggFYFK52FF0aKOPTZs6ejlNKFVK1SjiCKQHdb64skoTWaVlaM8apTLxRc3u/jirGZKeqL3SJqUHCVaj17Nyb6OaquEVVz3lO7zqPa7IpymV96H7StKOU2AkeM7isj2LZfzV3rofo2qk+zfQpzGYcetQBZzI7uGrZL8zYw6oT50466g/o7OOSdKjdS71auucmu8541Wj9IQgAAEIBCNgPtvH6k3AksttVRySFrd+8MPP7Q4vE81TWuuaK/eOIlCuFx9dbiHAb2P0xYAc4detmHIYNEszDAPygqvJENtxIiyqZNsWGNWqKNFFgnXj8ItlWsWcFoDOU7vucft5ulmGIYROX+vv758Bo500AsMbS8QlpMcoXLGlNOYkF7bbpsaexiDUCvQn3zS7RTmwouVU+RM0j0VJtSbXr7cfXcqvFE5dZJD+vHHzTbYoPVedK21GnnzzVsvW0wJ/Q4oJJRWbYYR3eeapFIuQz6tg4zNU09NvSxKpwV9y3BUNAC9BCinKCJA2BXGuu/0t9rC9nwlUVX/x1x0UbiXafo912SQqIZ2VEVXWin19yQHdRjZd18zzUpHIAABCEAAAvVCoF5sWTlX9KwRRrTKVs8+YeyBMO0FldHL+bArNvUsoudpOTLKKX/+c+q5NczzsZ7H9Owm+6mcojHreoSdH6/n3HI6NTVW2dV6Fg3DSeU1YVH2eNhnStUpRPS+Zuedw9V02zYm7ynZ2eUUXQ+tpg8jcmYqmlrYdwRh2vSV0TsFrZwNM3G/b9/UKs1yOlqloyYy33FH+MkUbgtJO+QQ3+hKl6bfwIceMltvvdbb1N+CnL/ldLRKC+mkvyVNLggjsmH1jiDqJJIwbWeW0d+eIsOFEYV81u95uV/5jhqVuiZhfqfk9NW7kT/8IcwIKAMBCEAAAsUQmKeYytSNJ4EVMt6av6ENPVuQcRlxhDLrtVClollaEarwS5rhJoMvV/RQpZVrCvWjvSwqITLkFXJKBkyQKHSpWzgSeZZ1UHutpWtG4muvpVbQBjly5CjWLFLN4vaxbK2PqPkymOWUP/fc1F46vvraq1kz/uSAirLi1NdWmDSFXhozpnUn4tJLmz3ySGGh28LokVtGqwT0p6p7S87zXJGheMIJqb+F/v1zc8tzrpcMb76Z2p/J9zJKeuoFkn5CtIK0EqIXGTLQFZ7Lt+JR95yMDu3X3cr2biVTVyuMFe5NoaCDVoZq9r1Cdus+DzN5pBTKHX106l6XE1wrtHNFvxkyAm++uXI6nXlmynjWRAafyFDUKgL95iuUdSVkv/1S16+lWd0KI/fUU2b7718JjVJGsH6nWgrrpS0FNBlJs7iDfvMroy29QAACEIAABEpLINMmrWVbVs98Ckuql/SyeXyiZ1etqHv66WB7yVev0DQ53vTCXc+lLU0o1fOjtqSo1It5PbfKOaZtaIJEz/56HtOzWyVkvfVS9rUm/wU5MzRxT3pHjb5TqP6yc/T83pqzUs+1el8R1mFVqD6qJztRz6T6BNmpWhmoZ1ZNMJYjqhIi20z2fBADvXuQ017P3OV2iqXHK/v6nXfMDjzQ75jXing5r2Vf696qhMiB2JrdoQkRcspGXVldqP6aDKz3SFrp71vgIdtn/fVTe3WLVyVEv5fPP5+KdOd7NyId9H7koINS2wUF/eaXUlf9H6OJKoo+0NLfla6xfs/FrBKia6L7xXft0v0rWqC2VQo7eSRdj28IQAACECiMgDMBkHojsJ6zVq6bGwv5EffUq3OfKPzzWHlOnSzn3sjHKQR0pr4yBDXj7rvvUvtBfvZZalWwHij04FCNcCF6CJZB8cknqW/t5zJ7tpkcPTKUM3zwmUMp67EeSjXTXKt79cD14YdmU6emjHuFhdVHD8uVFDmeDj445QjXvlPaC1R7bsp5IWNMxmmQQV0uPRVCWQaFnHZ6KSPjWNHS9dAsB7GcLjL0fU6zcumkdmUwKzTUlClmo0eb6T6XcSFntDhV+tpJJ91TmjBw3nmpvz3d59pPSfe5tkbUSttKi+4XOcz1+eILs/HjU/e5264xabyXe0a5b7z6DdIsc71E0H2lvZQUfEH3uV5WaUJINa6f/sa0P5DuKU0w0H2uVQB6ySFe1RA55tMvFTVJRtdQ97lmuMs4bellZLn0VUhE/Q7ov0P9NqT3eVdkCa049002KJcu6XbFQyvr5Xz27Yun1S+VmniR1olvCEAAAhCAQCUIyHatF1tWz60jR6Ym6epZQxN2v/kmNWlQNq4mvFXj2XWvvVITORVZSE4NPY/JIabtcjbdNPq2OaW4LzS5Wo4v2UGK+jN5cspOlCNFeVqtWGm7UX1rsqRsITl6P/7YbPr01HO0nHmVmoCeyVe2qp5PNbFA70jee8/sp59SEwi0ylR2rJ63K81Kjhx9dA31TK37XBMc9N6kGja/mOm+0ef/2bsPcDmquvHjJ71RQgmhJfQOAtKl84KAqCA1Ar5SpAvSxCAoRQEpAkFEKUrxpYgIIh3pCIIihCBIryF0SAIJSUjIP9/xf8a5e3f37t3de2fuvd/zPPfu7OzslM/Mzsw5v3POYERZBMc5DQg4zgmGdUYF9Oy+Y5j8Id2e83gjzgcc51TO51jjeMojz0jX5eQ7yANRjkQZ14wZIVBuwnHe3kcelW5zPe85Lx5wwH/+qJROBW+Ocypfczx15GOeKq0vxwsVdqiwcsstIYwdG8L77//nOOd5yl/9am0tvCvNv57xHDs8DojKIVSwIKj69tv/Oc7Zr+S7q1WsqWeZtXxn663/0/ik0qMQOJ/m8furZd2dRgEFFOiOAnMuq6buJrDcnCs9Ad3n5twl/XVOjo4g8NZcgTNp+pycy8/mVBWbRdRyTtqDaErBEzUBd9ihWCtJEJouOIuUqDnakc/SrWdbuTGlgKOzWvXVso5kZvgrWqJLZTKqRUrcnJecQgqxegQL8wgYVtp4av1utdV//ipNk8d4jikC9kVJFEhRQNXR3au3d3sJmFdqJdDeeTVr+kqFQJXGN2u5zkcBBRRQQIG8BLpjXpZ7Hx4ZUutjQzrDnvvWbbb5z19nLK+WZXB/Eysu1zJ9Z01Di9u99uqspbW9nCFD/tMzTWf1TtP2Gv13CgJh/BUpUcmbvyIlKpsX7ZxA5VeCrkVLtIburBbRtWw7vX7x/Gv+ipLI79OTVnufyd2R69/ZlVA6cluctwIKKNDVBebcYpu6o8ARmYdznDLnAYGXX355mDBhQpg5c+acWpnj5rRUO2pOVy+PJZtON1ubFjES1h13jNukgAIKKKCAAgoooEA3EKAi6flzuiR48cUX0625es7zRh6iqZVJgQYEzMs2gOdXFVBAAQUUUEABBRRQQIH/L2AL4G56KKwyp5+Pk+Y8pOO0004L06ZNm/Ocn0uSvz5zmmLGVr9s+mJz+nU5fU4/Jr1tTtRNjwQ3SwEFFFBAAQUUUECB5gt89tln4dBDD20xY3oYYvyG9K9vUqBOAfOydcL5NQUUUEABBRRQQAEFFGhTYPKc5+W9Mue5BzFORh72yTnPz1tmzjPZ5uKZEd0o2QK4G+3M0k3ZYs6DTS688MKkO+gY4I0Hdd85D9XYZZddks+H8lBIkwIKKKCAAgoooIACCiiggAIFEDAvW4Cd4CoooIACCiiggAIKKNANBe65556wxhprhKlTpyZb99577yXvH3300W63tbYA7na7tOUGLb300knLX1oBv/DCC+Gdd94Jiy66aBg55wEf3a02Q8st950CCiiggAIKKKCAAgp0lEC/OQ8xpAvo0rRm0R6oXrqCvu8yAuZlu8yuckUVUEABBRRQQAEFFFCggAIGgAu4UzpilQYOHBhWW2215K8j5u88FVBAAQUUUEABBRRQoOcI8GiZQw45pOdssFuam4B52dzoXbACCiiggAIKKKCAAt1OYPHFFw+77bZbq+0aPnx4q3FdfYQB4K6+B11/BRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRSoKrD22muHa665puo03eVDnwHcXfak26GAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAj1ewABwjz8EBFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAge4iYAC4u+xJt0MBBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBXq8gAHgHn8ICKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAt1FwABwd9mTbocCCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCvR4AQPAPf4QEEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBbqLgAHg7rIn3Q4FFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFOjxAgaAe/whIIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCnQXAQPA3WVPuh0KKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKNDjBQwA9/hDQAAFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFOguAgaAu8uedDsUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUKDHC/Tt8QICKKCAAgoooIACBRQYPnx4GDRoUKs1Kzeu1USOUEABBRRQQAEFFFBAAQUUUKCTBfr16xfIy5ZLvXr1KjfacQoooIACHSRgALiDYJ2tAgoooIACCijQiMDNN9/cyNf9rgIKKKCAAgoooIACCiiggAKdKrDSSiuFBx54oFOX6cIUUEABBcoL2AV0eRfHKqCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAl1OwABwl9tlrrACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCihQXsAAcHkXxyqggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAJdTsAAcJfbZa6wAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgooUF7AAHB5F8cqoIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACXU7AAHCX22WusAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKFBewABweRfHKqCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAl1OwABwl9tlrrACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCihQXsAAcHkXxyqggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAJdTsAAcJfbZa6wAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgooUF7AAHB5F8cqoIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooEAdAtddd1048sgj028+/vjjYY899ghTpkxJxznQcQIGgDvO1jkroIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoo0OMExo0bF2666aZ0uydMmBCuuuqqMGPGjHScAx0nYAC442ydswIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKNCpAn07dWkuTAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFurXAgQceGLbffvtW2zjPPPO0GueI5gsYAG6+qXNUQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQoMcKLLroooE/Uz4CdgGdj7tLVUABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBZouYAC46aTOUAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFMhHwABwPu4uVQEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFGi6gAHgppM6QwUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUCAfAQPA+bi7VAUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUKDpAgaAm07qDBVQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQIF8BAwA5+PuUhVQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQIGmCxgAbjqpM1RAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQXyEeibz2JdqgIKKKCAAgoooEA1gUmTJoXZs2e3mmTw4MGhf//+rcY7olgCZ599dnjmmWfSlbryyivDxx9/HDbffPN0nAMKKKCAAgoooIACCiigQHcSmDlzZvjkk0/KbtLQoUPLjnekAgoooEDHCBgA7hhX56qAAgoooIACCjQksOWWW4bJkye3mseYMWPCNtts02q8I4ojQOD+qKOOarFC5557bpg1a5YB4BYqvlFAAQUUUEABBRRQQIHuJEAl2F122aXsJj3xxBOBCs0mBRRQQIHOEbAL6M5xdikKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKBAhwvYArjDiV2AAgoooIACCiigQE8S6NWrV7jwwgtbbfKqq67aapwjFFBAAQUUUEABBRRQQAEFFFBAAQUUaLaAAeBmizo/BRRQQAEFFFBAgR4vsP/++/d4AwEUUEABBRRQQAEFFFBAAQUUUEABBfIRsAvofNxdqgIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKNB0AQPATSd1hgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooEA+AgaA83F3qQoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooEDTBQwAN53UGSqggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAL5CBgAzsfdpSqggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAJNFzAA3HRSZ6iAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAQW0M9QAAQABJREFUAgrkI9A3n8W61FoEHn744fCXv/wljB8/Pvnr27dvGDlyZFhyySXDDjvsEJZbbrmqs3nooYcC86glDRw4MBx66KG1TOo0CiiggAIKKKCAAgoooIACCpQVmDRpUvj9738fnnvuuSQf+/7774dFF100jBgxIqy++uphxx13DP369Sv73TjSvGyU8FUBBRRQQAEFFFBAAQUUqE/AAHB9bh36rQkTJoQzzzwzPPbYY62WM3HixDBu3Lhw8803Jxnn/fffPwwaNKjVdIy48847wz333FP2s9KRQ4YMMQBciuJ7BRRQQAEFFFBAAQUUUECBmgX+8Ic/hN/+9rfhk08+afGdV199NfD34IMPhhtvvDF8//vfD2uuuWaLabJvzMtmNRxWQAEFFFBAAQUUUEABBdovYAC4/WYd+o3p06eHY489Nrz88svJcoYOHRq+/OUvJ61+p02bltSivuuuu8KsWbPCddddFz7++ONw/PHHl12nF154oex4RyqggAIKKKCAAgoooIACCijQTAGCtuedd146y/XWWy9p8bvgggsmLYEfeOCBJAj8xhtvhKOPPjpccsklYamllkqnzw6Yl81qOKyAAgoooIACCiiggAIKtF/AAHD7zTr0G7/85S/T4O+6664bTjjhhDDPPPO0WOaoUaPCkUceGT766KNwxx13hA033DBsvvnmLab59NNPk0w2I9dee+2KQeL4pd69fRx0tPBVAQUUUEABBRRQQAEFFFCgdgF6sTrrrLOSL/Tp0yecfPLJYZNNNmkxg7333jucf/754Y9//GOYMWNGMs3FF18ceNRRNpmXzWo4rIACCiiggAIKKKCAAgrUJ9Ayp1XfPPxWkwRmzpwZbrvttmRuc889dzjuuONaBX/5cNlllw3HHHNM0lKY97fcckurAPBLL70UZs+ezcdh5ZVXDgsssEAy7D8FFFBAAQUUUEABBRRQQAEFmilw9913BwK3pN13371V8JfxBHoPPfTQ8PTTT4dnn302vPjii0kPV6ussgofp8m8bErhgAIKKKCAAgoooIACCihQt4DNPuuma/4Xn3vuuUA3z6SNNtoozD///BUX8qUvfSkMHDgw+ZzvlaZsl1krrLBC6ce+V0ABBRRQQAEFFFBAAQUUUKApAmPHjk3n8/Wvfz0dLh2gdfBmm22Wjn7++efT4ThgXjZK+KqAAgoooIACCiiggAIK1C9gALh+u6Z/c8qUKUl3zUsuuWRoK2hLl83zzTdfsg4TJ05MutDKrpCZ5qyGwwoooIACCiiggAIKKKCAAh0lQOVlep4aMWJEGD58eNXFZHuneu+991pNa162FYkjFFBAAQUUUEABBRRQQIF2C9gFdLvJOu4LPPOXv1rSJ598Et56661k0pEjR4b+/fu3+FrMNA8dOjTNgNMl9DvvvBMGDRoU5p133hbT+0YBBRRQQAEFFFBAAQUUUECBegR4fFGtia6fY1pmmWXiYPpqXjalcEABBRRQQAEFFFBAAQUUqFvAAHDddPl+8c9//nO6AiuttFI6zMCsWbPCyy+/nIyjJfFTTz0VLrvssjBu3Li0i+mFFlooqaF94IEHhsUWW6zF932jgAIKKKCAAgoooIACCiigQLMFpk6dGu688850tuZlUwoHFFBAAQUUUEABBRRQQIGmChgAbipn58zs/fffD1dccUWysF69eoXSZyy9/vrraZfQBH0PPvjgViv27rvvBv4eeeSRcNBBB4Udd9yx1TSVRtx///3h6quvrvRxYPmLLrpooJXy5MmTK07nBwoooIACCiiggAIKKKCAAj1HgIrJH330UbLB9H5FvjGbOjove8EFFyQVo7PLzA6/9tpryTqR554xY0b2I4cVUEABBRRQQAEFchAgvnDMMceEZ555Jl36scceG/bcc8+w7bbbpuMcUECB1gIGgFubFHoMQdWjjz468Lxg0i677BK+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FFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBfIS+Pzzz8PMmTNbLJ73jDcpoEDXE+jb9VbZNVZAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFGiWwODBg8PSSy/danaMNymgQNcTMADc9faZa6yAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKNE1g0003DS+99FLT5ueMFFAgXwG7gM7X36UroIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACTRMwANw0SmekgAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIK5CtgADhff5eugAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKNE3AAHDTKJ2RAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgookK+AAeB8/V26AgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoo0DSBvk2bkzNSQAEFFFBAAQUUaJrAAw88UHZe/fv3LzvekQoooIACCiiggAIKKKCAAgrkKbDqqquGsWPHll2FQYMGlR3vSAUUUECBjhEwANwxrs5VAQUUUEABBRRoSMDMcUN8flkBBRRQQAEFFFBAAQUUUKCTBXr37h3My3YyuotTQAEFKgjYBXQFGEcroIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACXU3AAHBX22OurwIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKFBBwABwBRhHK6CAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAl1NwABwV9tjrq8CCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCihQQcAAcAUYRyuggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAJdTcAAcFfbY66vAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgooUEHAAHAFGEcroIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACXU2gb1db4Z6wvp9//nk455xzAq+1pC222CKstdZaZSedNWtWuO2228Jdd90V3njjjTB16tSw0korhdVWWy1ssMEGYcUVVyz7PUcqoIACCiiggAIKKKCAAgoo0B6Bhx56KDz88MM1fWXgwIHh0EMPrTitedmKNH6ggAIKKKCAAgoooIACCrQpYAC4TaLOn4BA7Z/+9KeaF7zEEkuUDQC/99574aijjgqvvPJKi3n94x//CPxdfvnl4dhjjw1bb711i899o4ACCiiggAIKKKCAAgoooEB7Be68885wzz331PS1IUOGVAwAm5etidCJFFBAAQUUUEABBRRQQIGKAgaAK9Lk98Hzzz/f8MKnTJkSvv/976fB32WXXTZsuOGGYdiwYWHs2LHhgQceCDNmzAg//elPA9PuuOOODS/TGSiggAIKKKCAAgoooIACCvRcgRdeeKHhjTcv2zChM1BAAQUUUEABBRRQQAEFggHgAh4EL774YrpWZ511ViB4Wy1Rc7o0XXrppeGll15KRm+++ebhRz/6UejXr1/yfvvttw/jxo0LxxxzTBL8Pe+888Imm2wSFlxwwdLZ+F4BBRRQQAEFFFBAAQUUUECBNgU+/fTTMH78+GS6tddeOxx//PFVv9O7d++yn5uXLcviSAUUUEABBRRQQAEFFFCgXQLlc1ztmoUTN1sg1pru06dPWGONNcICCyxQ9Y9nJ2XT5MmTw5///Odk1EILLdQi+Bun+8IXvpCM5z3PVorTx899VUABBRRQQAEFFFBAAQUUUKBWASogz549O5l85ZVXrpqHJY8733zztZq1edlWJI5QQAEFFFBAAQUUUEABBeoSMABcF1vHfikGgJdccskwYMCAdi/s3nvvDdS+Ju2www5py9/SGdEl9IgRI5LRBIBnzpxZOonvFVBAAQUUUEABBRRQQAEFFGhTIOZjmXCFFVZoc/pyE5iXLafiOAUUUEABBRRQQAEFFFCg/QIGgNtv1qHfeP/998PEiROTZdSbaf7Xv/6VruO6666bDpcboGsu0gcffBAef/zxcpM4TgEFFFBAAQUUUEABBRRQQIGqAs0IAJuXrUrshwoooIACCiiggAIKKKBAzQIGgGum6pwJs5nmFVdcMV3o1KlTw5tvvpl015yOrDDw9NNPJ5/06tUrLLPMMhWm+s/o7POFX3755arT+qECCiiggAIKKKCAAgoooIAC5QRiXnbo0KFh+PDhySR0Cf3222+HSZMmlftKq3HmZVuROEIBBRRQQAEFFFBAAQUUqEugb13f8ksdJhAzzSyA7pkvv/zycPPNNyeZZsb1798/LL300mHrrbcOO+20UyDIW5oIFJOGDRsW+vatvotjxpzpX3/9dV7aTJ9//nnV7qJ5prBJAQUUUEABBRRQQAEFFFCgZwiQB4wViunJ6qmnngqXXXZZGDduXJg2bVqCsNBCCwWeDXzggQeGxRZbrCxMR+dleewR+dlKqdpnlb7jeAUUUEABBRRQQAEFFFCgiALVo4NFXONuvk4vvvhiuoXHHXdcoOVvNs2YMSM8++yzyd/9998fmGbhhRdOJ+HZvzHTOt9886XjKw1QOzumyZMnx8Gqr1dffXU4+eSTq06z/PLLhw8//DDQpbVJAQUUUEABBRRQQAEFFFCg+wpQmZi8Komg78EHH9xqY999993A3yOPPBIOOuigsOOOO7aYpjPysocccki47777Wiy39A152TfeeCOwPiYFFFBAAQUUUEABBRRQoKsKGAAu2J57/vnn0zUi+Dty5Miw1lprhVVWWSV89NFH4d///ne45557kmnGjh0bjjnmmPCb3/wm9OvXLxk3ZcqU9PsDBgxIhysNZKeJNbMrTet4BRRQQAEFFFBAAQUUUEABBUoFsj1ZETgdOHBgWGONNcKaa64Z5p9//vDKK68kgdcJEyYkLYLPOeecMPfcc4etttoqnZV52ZTCAQUUUEABBRRQQAEFFFCgYQEDwA0TNm8G8Tm/cY677bZboIZyaTfP1JT+8Y9/nLSwJSP9u9/9Luyzzz7J17Ithukuuq2UnWb69OltTe7nCiiggAIKKKCAAgoooIACCrQQyAaAF1xwwXD22WeHpZZaqsU0e++9dzjvvPPCTTfdlIwfM2ZMWHvttUPsucq8bAsu3yiggAIKKKCAAgoooIACDQkYAG6Ir7lf5nm95557bnjrrbeSZ/dus802ZRew+uqrh6OOOirp/pkJrrjiijBq1KgwePDgFs/8reVZvDwDKaZsMDiOK/c6zzzzhCWWWKLcR8m4SZMmJV171bL8ijPxAwUUUEABBRRQQAEFFFBAgS4hsP322ye9VpGX3WyzzcIiiyzSar1pFUw+lkcaETAm33jttdeGAw44IJmW/HBMteQl68nL8hzianlZ1v+TTz4Js2fPjqviqwIKKKCAAgoooIACCijQJQX+m8Pqkqtf/JUePXp0+kzecmtLMHePPfZIPiIAS3fPtaRNNtkkLLfccknGmczxq6++GlZeeeUwaNCg9OvxGUzpiDID2WmGDBlSZorWo772ta8F/iqlSy65JOy3336VPna8AgoooIACCiiggAIKKKBAwQXak5ddfPHFA39tpT59+iS9Vx177LHJpNmWw52Rl/3JT35SdRV32mmncP3111edxg8VUEABBRRQQAEFFFBAga4gYAC4g/fSI488EqrVXqbVbr1p2WWXTQLAfP/ll19OAsDZ+WWfoVRpGdlutmoNAFeal+MVUEABBRRQQAEFFFBAAQW6h0BH5WXJx8ZEPjYm87JRwlcFFFBAAQUUUEABBRRQoHGB3o3PwjnkJTB8+PB00XSfRRowYEBYYIEFkuF33303ea3275133kk/nn/++dNhBxRQQAEFFFBAAQUUUEABBRRotsCwYcPSWcZ8LCPMy6YsDiiggAIKKKCAAgoooIACDQvYArhhwuozuOaaa6pOwHOQYuIZRhMnTkz+yBTPO++88aOyr2+//XY6fsSIEenwUkstFT744INA696PPvoozDfffOlnpQPjx49PR6200krpsAMKKKCAAgookK/AVlttFT7++ONWK3HqqaeGLbbYotV4RyiggAIKKNBMgfbkZel9irzn9OnTwzLLLFN1NbIVlbP5WL5kXrYqnR8qoIACCihQeIGnn3467LvvvmXX8957723x+MKyEzlSAQUUUKBpAgaAm0ZZfkYLL7xw+Q/KjL344ovDVVddlXyy9957J89GKjNZOorn/sY0cuTIOJh0Bf3YY48l75988smw2WabpZ+VDowbNy4dxTOETQoooIACCihQDAEqhU2ePLnVysyYMaPVOEcooIACCijQbIFa87JUPN5uu+2SRx/1798/3HrrrUlr3krrUykfy/TkSc3LVpJzvAIKKKCAAsUX4FGIVAorl2bPnl1utOMUUEABBTpIwC6gOwi2ntmus8466dcefPDBUO2i+Pjjj4dnn302mZ5a09ma09mA7x133JHOs3SA7p+feOKJZPQKK6wQ7AK6VMj3CiiggAIKKKCAAgoooIAC1QR4dm+sTEwlpUcffbTa5GmlZybaaKONWkxrXrYFh28UUEABBRRQQAEFFFBAgboFDADXTdf8L6622mphnnnmSWb84osvht///vdlF0ItqrPPPjv97KCDDgp9+vRJ3y+33HKBgC7pr3/9aygXBKZrrp/97GdJLW2m22OPPXgxKaCAAgoooIACCiiggAIKKNAugWwgd8yYMWUfYcAM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9v5z7RVQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQIFUwABwSuGAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoo0LUF+nbt1XftFeh8gc8++yz07ds39OrVq10LnzlzZvjwww+T7wwZMiTw11lpxowZYfz48eGtt94Kw4YNC0svvXSyDZ21/ErLefPNN8O7776bfLzGGmu027TSfOsZ/+mnn4ZXXnklvPzyy2HSpElhxIgRYeTIkclrnz596pllU74za9asgBN/c889d1hkkUXCAgss0JR5M5N///vfybznnXfesM466zRtvnnMiN8Y+xCrgQMHhuWXXz7MP//8Hb4qH3/8cfLb+uSTTwLDU6dOTZbPb3yuueYKQ4cODYsuumiHr0e5Bbz//vth8uTJYdq0aWH69Omhf//+ybmHdZtnnnnCgAEDyn2tx4zj3IhJexPnCDxJCy20UHu/3uWm74rXPZA5/jkfcH5fbrnlmnrurHcnck4fN25c8vXhw4fndm5gBYp63WPdOJdyPmcd+Y0ttthidf1WmVdp4rf74IMPJqO591hwwQVLJ+lS77m3fPXVV5N7zCWWWCIstdRSHX6PN3v27OS+knNhvPZxbHPNi39c9wYPHtylLF1ZBXqCQFe89yni9ZxjhXuMIuRlOSe//fbbST6W6wF5Rq4HSy65ZCCPl2cyL1u7fh7Xc9auqHlZ7tfeeeedJB9LXpZjKeavec372K59z3bclF3xfN5xGpXn3BXzspbhVt6f8ZOi5mU7+rrXnfKyluHGo7njXw0Ad7yxS+gGAhMnTgy//e1vk0JbMlUEl1ZcccWw5pprhlGjRtUURHnppZfCd77znURj7733Dvvss09TZD766KMkYEkmrzQozYXnD3/4Q7jyyisD2xATAezVV189HH300WHxxRePozv99Y9//GOyfiz43nvvbWqB5T//+c+AOenrX/96ss+SNyX/uBn83e9+F6644ookU1HycRIAPuigg8LGG29c+lFD71k/CqDJzIwePbrVvFj38847Lzz11FOBdcymlVZaKXz1q19N/nr3bqwjhz//+c/h5ptvTmb/ta99LRxxxBGhX79+2cXlPkym9Pnnnw+vv/56UlD/xS9+sVUFittvvz1ceumlYcKECS3Wd+GFFw5HHXVUWH/99VuMb/QNBVEcv4899lh47rnnAgUv1RIZ1NVWWy2stdZaYbvttguDBg2qNnndnxF8xuLOO+9MCoG4Ka6UqNhAZZCVV145fOlLXwobbLBBq3NIpe925fGca2655ZZkv3FepKIHvynOE1/4whdq2rRTTz01PPzww8m0MZBU0xe70ERFvu6RIaagk8oVVGQoTZw/L7zwwvC3v/2txUdUnuGavdtuu+V2rPObPOyww5L1+t///d+w3377tVjHRt4U/brHMXXXXXeFRx55JLkH4tyTTWQAr7nmmnDdddeFDz74IPtRElTcfPPNwze/+c3kutziw3a+oVLMSSedlHyLY+InP/lJcn5u52w6dPLPP/88vPHGG8l5insAKjBQqSmbCDpcdNFF4S9/+Utg+pi4x9tyyy3D4Ycf3upaGaep9/W+++5L7tcef/zxFveV5ebH/ckyyyyTnFe32mqrsMoqq5SbzHEKKNAJAkW99+nK13N2W0flZckfkkcjcR4l/1ApkUc67bTTwosvvthqEu71yd9R7jDffPO1+ryREeZla9Mr6vW8qHnZZ555JvzpT38KTz75ZFLBuloem3wA95Krrrpq+MpXvlKIip61HRWNTVXU83ljW9X8bxc5L2sZbvn9XfS8bFGue10hL2sZbvljPM+xveZcUKuXWue5di5bgQII/OMf/wg//elP09a7patEAPXYY49tM3BAkKiZAWCCDr/5zW/SICctHQlyfetb30qDuj/72c+SQEfpOsf3BKEI+G277bZxVKe+EuAkQE1qdgD4rLPOCjfeeGMybzIR5VrNEkA45phjklZGyYRV/mFL5pqC1UYStbXGjBkTbrrppmQ2ZOovu+yyFrO8+OKLk6A9AfxqiYDiiSee2FALxNNPPz0NALMsCmg53ovQIopgAEFdAvTZSxW12gmgbLPNNgkPn1MIXi194xvfSI710koS1b5T6bPf//73yW+vWnC10ncZT2aVwM/OO+/ctCAUNcY5jgj+1rtetBo78MADk2BwtfXvqp/h8vOf/zzccccdZTeBY2OXXXYJ+++/f5uVen7wgx906wBwUa97ZCR+/etfJ8c5hcYEmDhnEVziN04i+Pvd7343aZVYdkfPGbn22muH448/vux1odJ3mjWe1pLxmtvsAHBRr3vYUZB3wgknpIHdU045JWyyySYpK619+ZzXaokW++zfuL+rTVvps/feey/s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gA7gaH7MjQACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCJgRqGcmEgLZYwWWLFnievfu7b788kvXqlUrN2fOHNe8efOyecRiMde3b1/37rvvuqqqKveXv/zF9enTp2yvn+uFJL7p06e7V1991S1btswtXbrU/5PHjRo1cm3atHFt27Z1nTt3dt/4xjfc8ccf75o1a5ZrsUzfwwWefPJJt23btoSC1E379u0Tz0v54OOPP3aTJk1yM2bMcCtWrHCrV692n3/+ufva177ma1nquXv37m7w4MF+XaxXj4+qUuaDZesFduzY4f74xz/qZ8iz5bBhw1yTJk3ynGvPbD5hwgS3c+fOxJv/1re+5Vq3bp14zgMEEEAAAQTKIVCOY1nNZ571Y1rJBce15ajIPe81OK7d83LOO44mwDFtNL9izq35fC/m67GsVIEXXnjBrV27NjHymGOOcV27dk08j/rg+eefd1988UViMccee6zr0qVL4jkPECi2QNaaju+EMyBQqwKDBg2KxQve/xs7dmytxDJ58uREDN26dYtt3bq1VuJIftEPP/wwduWVV8Y6duyYiC1wCvvboEGD2EknnRR74403khfHYwRSBPbee++Uuop/SKRML8WTJ554ItajR4+U1w2rZZnWokWL2M9//vPYZ599VoqQWOZuKPDPf/4zFv9BQUneWXznPa/6zVXf6dM//fTTksS9Oy40/gOolFzMnDlzd3ybvCcEEEAAAeMC5TiW1X7mWTymlfRxXGu8iCs8PI5rKzyBhJ9VoFTHtRzTZiUv+wTt53vZA9tDXvCII45I+U7hnnvuUb9zzfqZ/v3nAw88oF4+DREoRCBbTXMJ6Pi3rwy1J/CHP/zBn3ErEXz961938Y6eWgnmm9/8ppOzh2SYP3++u+6662olDnnR9evXu1NPPdX/6uj66693ixcvziuW7du3+7Mrjz76aDdixAh/1nBeC6AxAkUW+Oijj1z//v3d8OHD3bx58/Jauvxa7u677/bbB/nLgEA2Afnl5s9+9jMnv6pM/pVltvaMRwABBBBAAAEEoghYOZYN3oOlY1qJiePaIDP83V0EOK7dXTJp+31wXGs7P0S3Zwuwfu7Z+a/Ud08HcKVmbjeIWy77OmrUqMQ7ufXWW139+vUTz8v9YPTo0a5u3br+ZW+++WY3e/bscofgX/PII490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CBAgQIAAAQIECBAgQIAAAQIECBAgMOACAsADvgEtPgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAoBAeBCwicBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQGXEAAeMA3oMUnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAISAAXEj4JECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAwIALCAAP+Aa0+AQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECgEBIALCZ8ECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAYcAEB4AHfgBafAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEChYAAcCHhkwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgMuIAA84BvQ4hMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAQEAAuJHwSIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEBgwAUEgAd8A1p8AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIFAICwIWETwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECAy4gADwgG9Ai0+AAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIFCYFrR4ZPAeAk8+uij6dZbb23MbsUVV0zLL798o18HAQIECBAgMLrAs88+m4aGhoaNuMACC6R555132HADCBAgQIAAge4E/vSnP6UnnniiMZONNtooLbzwwo1+HQQIECBAgMDIAq+//np6/vnna0dadNFFa4cbSIAAAQK9EZgru7E4/M5ib/Iy1zlE4Iwzzkif/OQnG2v7pS99KR155JGNfh0ECBAgQIDA6AJx0zmCwNV0yimnpPe///3VwfoJECBAgACBLgV22GGHNHv27MZcrr/++rTBBhs0+nUQIECAAAECIwvcdNNNaccdd6wd6Q9/+EOKB5olAgQIEOiPgCag++MsFwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECPRcQAC458QyIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQH8EBID74ywXAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI9FxAALjnxDIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAfwQEgPvjLBcCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAj0XEAAuOfEMiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEB/BASA++MsFwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECPRcQAC458QyIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQH8EBID74ywXAgQIECBAgAABAgQIECBAgAABAgQIENND3uoAAEAASURBVCBAgAABAgQI9FxAALjnxDIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAfwQEgPvjLBcCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAj0XEAAuOfEMiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEB/BKb1Jxu5ECBAgAABAgQIdCJw2mmnpVdffXXYJKuuuuqwYQYQIECAAAECBAgQIECAAIGJFlhxxRXT9773vdrFmDFjRu1wAwkQIECgNwICwL1xNVcCBAgQIECAQFcCG220UVfTm5gAAQIECBAgQIAAAQIECPRTYKGFFkrvfve7+5mlvAgQIECghYAmoFvAGEyAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIFBExAAHrQtZnkJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECDQQkAAuAWMwQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEBg0AQHgQdtilpcAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQItBASAW8AYTIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgUETEAAetC1meQkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINBCQAC4BYzBBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQGDQBAeBB22KWlwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAi0EBIBbwBhMgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBQRMQAB60LWZ5CRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0EJAALgFjMEECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAYNAEB4EHbYpaXAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECLQQEgFvAGEyAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIFBExAAHrQtZnkJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECDQQkAAuAWMwQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEBg0AQHgQdtilpcAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQItBASAW8AYTIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgUETmDZoC2x5CRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBD4vwKvvvpqev3115s45p577jR9+vSmYXrmHAE1gOecbW1NCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEppjAhz/84TT//PM3/a266qpTbC2tTicCagB3ojXGcW+++ea03377pYUXXjhdcsklo87ljTfeSCeddFKKz3bSVlttlTbYYIPaUeOJj5/+9KfpsssuSw8++GB64YUX0uqrr57WWmut9K53vSutttpqtdMZSIAAAQIECBAgQIAAAQJztsAhhxySrrvuunTQQQelHXbYYVSMq6++Ol1zzTWjjhcjzDfffOmAAw5oOa6ybEsaXxAgQIAAAQIECBAgQGBUAQHgUYm6G+G5555LX/nKV9LQ0FDbM4pA7f/+3/+77fHf9ra31QaAn3zyyXTwwQene++9t2lev//971P8nXXWWenwww9P73vf+5q+10OAAAECBAgQIECAAAECc7bA7Nmz8+BvJwo///nP0xVXXNHWJAsuuGDLALCybFuERiJAgAABAgQIECDQEFhxxRVTxIruv//+fNisWbPSGmus0fhex5wnIADcw23+17/+NX3uc5/La952ks0dd9zRyei140ben//85xvB35VXXjltuummackll0w33nhj+vWvf51eeeWV9OUvfznFuNtvv33tfAwkQIAAAQIECBAgQIAAgTlL4Be/+EU6+eSTO17pO++8s+NpqhMoy1ZF9BMgQIAAAQIECBAYXeDUU09Nm222Wdppp53ykffZZ5909NFHjz6hMaasgABwjzbtn/70p3Tcccc1nrboJJu77rqrMfoJJ5yQIng7Uoonp6vpe9/7Xrr77rvzwVtuuWU66qij0rzzzpv3b7vttummm25Khx56aB78jQPD5ptvnpZYYonqbPQTIECAAAECBAgQIECAwBwi8PLLL6czzzwznXfeeR21YhU8L774YnrooYdyqQ033DAdeeSRI6rNPffctd8ry9ayGEiAAAECBAgQIECAAIGOBASAO+IafeQo9J5++unpwgsv7LjAXMy9eGp6nnnmSeuuu26aMWNG8VVbn88++2z60Y9+lI+71FJLNQV/ixmsvfba+fDDDjssxbuVYvy99tqr+NonAQIECBAgMMEC0YrICy+8MGwp9t5777T++usPG24AAQIECBDoRiBaijr++OMbQdxO5xUPIBevPoqm5hZffPFOZ5GUZTsmMwEBAgQIEJhUAvEqwrieqEunnHJKx/e56+ZjGAECBAi0JyAA3J5TW2PdcssteZX6Rx99NB9/rrnmSrvttlu65JJL0n//93+3NY8YqQgAL7/88mM6Kf7yl7/Mn76OeW233XaNmr/RX07RJPSyyy6bN1EdAeDdd989TZtmlygb6SZAgAABAhMlcNVVV+U3wqv5x7ldIkCAAAEC4yUQQduTTjopXXTRRY1ZLrfccmmjjTbKH2xuDByloyjHxmirrrrqKGPXf60sW+9iKAECBAgQGBSB5557LsX5vC5FJSSJAAECBPonUN/mUv/yn1I5XXPNNakI/sbTzvHOpKilEzV5I0VAeLT01FNPpb/85S/5aGMtNEfz00XaeOONi87az2iaK9L/+T//J91www214xhIgAABAgQIECBAgAABAlNT4I033mgK/m6zzTZ5M9DlVxG1U5YdjwCwsuzU3MesFQECBAgQIECAAAEC/RdQ3XOczRdZZJH8Jds77LBDqns372jZlQvNq622WmP0aALy6aefTksvvXQjoNz4stIRNZEjRSF9pZVWqnzb3Fsu1N9zzz1ptIBx89T6CBAgQIAAAQIECBAgQGAqCESN3z322CPF64LGkoqy7MyZM9OsWbPyWUTt4scffzzNP//8adFFFx11tsqyoxIZgQABAgQIECBAgAABAm0JCAC3xdTeSFtttVXadddd0wILLNDeBDVjFYXm+CqaZz7rrLPSj3/84/TYY4/lY0+fPj2tuOKK6X3ve1+KIHPdk9gPP/xwPu6SSy45apPORcE8JnjggQfy6Ub7FwX4CBa3Svfff39ewH/ttdfSq6++2mo0wwkQIECAAAECBAgQIEBgggXmnnvu9O1vfzutueaaY16SaNKxKCNGS1Y333xz+v73v59uuumm9NJLL+XzXWqppVK8G/hTn/pUestb3lKbV6/Lsrfddlv+YHVt5tnA559/Pi/LvvzyyylqRksECBAgQIAAAQIECBAYVAEB4HHccqPVtm0nq7vuuqsx2hFHHJGi5m85vfLKKykKrfF35ZVXphgnagUX6cUXX2wUVN/0pjcVg1t+xtPZRXr22WeLzhE/L7vssnTMMceMOE4Er+O9x9GktUSAAAECBAgQIECAAAECk1MgHiruJvgbaxUPE0dZNVIEfT/96U/n3eV/TzzxRIq/a6+9Nu27775p++23L3+d+lGWjXcd/+pXv2rKt9oTZdkHH3wwX57qd/oJECBAgAABAgQIECAwKAICwJNsS91xxx2NJYrg73LLLZc22GCDvEAeTUDfeuut6YorrsjHufHGG9Ohhx6av59p3nnnzYf99a9/bUw/Y8aMRnerjvI4xZPZrcY1nAABAgQIECBAgAABAgQIVAXKLVlFIHe++eZL6667blpvvfXSYostlu6999488PrII4/kNYIjELvwwgunrbfeujErZdkGhQ4CBAgQIECAAAECBAh0LSAA3DXh+M0gAr5Fk1cx15122intt99+w5p5jiel//Vf/zWvYRsF6XPOOSfttdde+YKUawxHc9GjpfI40cyVRIAAAQIECBAgQIAAAQIEOhEoB4CXWGKJdOKJJ6YVVlihaRZ77rlnOvXUU9PFF1+cDz/llFPShhtumIqWq5Rlm7j0ECBAgAABAgQIECBAoCsBAeCu+MZ34mnTpqWTTz45Pfroo/m7e9///vfXZrDOOuukgw8+OG/+OUY4++yz084775y/ezjmUaR4D9NoKd7TW6RyMLgYVvcZTV1Xm+sqjxe1mK+++urGu57K3+kmQIAAAQIECBAgQIAAgaklsO222+atVkVZdosttkhvfvObh61g1AqOcmy8zigCxs8880w6//zz0z777JOP24+y7KabbprXSB62cP9vQLS2df/996d2ytKt5mE4AQIECBAgQIAAAQIEJoPA36KFk2Fp5vBliABsNPfcTtp8883TKquskheco3B63333pTXWWCPNP//8jcmLdzA1BtR0lMdZcMEFa8YYPmiTTTZJ8dcqnXHGGWn27NmtvjacAAECBAgQIECAAAECBKaQwFvf+tYUf6OleeaZJ2+96vDDD89HLdcc7kdZdvfddx9xEXfYYYf0u9/9bsRxfEmAAAECBAgQIECAAIFBEJh7EBbSMtYLrLzyyo0v7rnnnrx7gQUWaAwrv0OpMbDSUW5mq90AcGUWegkQIECAAAECBAgQIECAQFsCdeXYmFBZti0+IxEgQIAAAQIECBAgQKAtAQHgtpgm50izZs1qLFg0nxVpxowZafHFF8+7n3jiifxzpH+PP/544+vFFlus0a2DAAECBAgQIECAAAECBAiMt8CSSy7ZmGVRjo0ByrINFh0ECBAgQIAAAQIECBDoWkAAuGvC8ZtBvI/3qaeeSnfddVf+PqTR5vzYY481Rll22WUb3SussELeHbV7n3766cbwuo6HHnqoMXj11VdvdOsgQIAAAQIECBAgQIAAAQLtCETrU1G2vPvuu0cdvfygcrkcGxMqy47KZwQCBAgQIECAAAECBAi0JSAA3BZTf0b6zne+kz784Q+nPffcM1144YWjZhrv/S3ScsstV3Tm7wIuev74xz8WnbWfN910U2N4vENYIkCAAAECBAgQIECAAAEC7QrEg8fbbLNN+uhHP5r23nvv9PLLL484aatybExULpMqy47I6EsCBAgQIECAAAECBAiMKCAAPCJPf7/caKONGhleddVVaWhoqNFf7bjhhhvSbbfdlg+Op6bLT05vscUWjdEvvfTSRne1I5p//sMf/pAPXnXVVZMmoKtC+gkQIECAAAECBAgQIEBgJIF4d28RuH3llVfSddddN9Lo6dxzz218v9lmmzW6o0NZtolDDwECBAgQIECAAAECBMYsIAA8Zrrxn3CttdZKiyyySD7jaAb6vPPOq80kmnU+8cQTG9/tu+++aZ555mn0r7LKKikCupF+85vfpLogcDyVfdxxx6XXX389H2/XXXfNP/0jQIAAAQIECBAgQIAAAQKdCJQDuaecckp67rnnaie/4IIL0o033ph/F+XWrbfeumk8ZdkmDj0ECBAgQIAAAQIECBAYs4AA8Jjpxn/CGTNmpCOPPLIx49NOOy0P9D7yyCN5beAI/F5++eVpjz32SPfff38+3iabbJLe8573NKYpOj772c8WnenYY49NZ511Vor5xHuGo9nngw8+OF1//fX5OPG09nvf+97G+DoIECBAgAABAgQIECBAgEC7Ah/5yEdSPNAcKd7x+8lPfjJdffXVKZqHjjLonXfemZdLIzgcafr06enAAw9Mc801V95f/qcsW9bQTYAAAQIECBAgQIAAgbEJTBvbZKbqlcC73vWutM8++6R4H/Abb7yRLrroovwvCsjRnFY57bDDDmn//fcvD2p0r7nmmunoo49OX/nKV9JLL72UzjjjjPwvagoXtX5j5Le85S3p+OOPT3PP7VmABp4OAgQIECBAgAABAgQIEGhbYNq0aXn5M4K6Dz30UHr44YfTYYcdlk8f30UQuEhLLbVUHgxebbXVikFNn8qyTRx6CBAgQIAAAQIECBAgMCYBUb8xsfV2ot122y2deeaZab311mtkVAR/I4C70korpSOOOCIddNBBKQrTrdJWW22V/v3f/z1vDroI8BbB35huxx13zL+fOXNmq1kYToAAAQIECBAgQIAAAQIERhVYcskl09lnn53iFUULLrhgY/wi+Bvlzi233DJ/MLlV8LeYSFm2kPBJgAABAgQIECBAgACBsQm0jh6ObX6mqhGYPXt2zdCRB6288srp1FNPTX/961/TAw88kD9BvfTSS6d4J1I0Fd1uWnHFFfMCdtQCjma3Hn/88bTMMsuk5ZZbLi200ELtzsZ4BAgQIECAAAECBAgQIDAHCXzwgx9M8ddJmnfeedMuu+ySdt555/TYY4/lZdl4mPntb397ivJsJ0lZthMt4xIgQIAAAQIECBAgQKBZQAC42WPS9cWT06uvvnr+183CzTfffPk7mYr3MnUzL9MSIECAAAECBAgQIECAAIFWAtECVTx4HH/dJmXZbgVNT4AAAQIECBAgQIDAnCigCeg5catbZwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEpqSAAPCU3KxWigABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBOVFAAHhO3OrWmQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBKSkgADwlN6uVIkCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEBgThSYNieutHUmQIAAAQIECEx2gX/7t39Lr7zyyrDFXHfddYcNM4AAAQIECBAgQIAAAQIECEy0wHLLLZdOPPHE2sWYPn167XADCRAgQKA3AgLAvXE1VwIECBAgQIBAVwJbb711V9ObmAABAgQIECBAgAABAgQI9FNg5syZaZtttulnlvIiQIAAgRYCmoBuAWMwAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBk1AAHjQtpjlJUCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQAsBAeAWMAYTIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEBg0AQEgAdti1leAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQItBAQAG4BYzABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQGTUAAeNC2mOUlQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBACwEB4BYwBhMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGDQBASAB22LWV4CBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAi0EBAAbgFjMAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAZNQAB40LaY5SVAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEALAQHgFjAGEyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAYNAEBIAHbYtZXgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECLQQEABuAWMwAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBk1AAHjQtpjlJUCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQAsBAeAWMAYTIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEBg0AQEgAdti1leAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQItBAQAG4BYzABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQGTUAAeNC2mOUlQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBACwEB4BYwBhMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGDQBASAB22LWV4CBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAi0EBAAbgFjMAECBAgQIECAAAECc57A9773vTRr1qxhf3fdddech2GNCRAgQIAAAQIECBAgQIAAgYEUmDaQS22hCRAgQIAAAQIECBAg0AOBF154IT3xxBPD5vzaa68NG2YAAQIECBAgQIAAAQIECBAgQGAyCqgBPBm3imUiQIAAAQIECBAgQGBCBGbMmJEWXXTRRt7zzDNPmjlzZopPiQABAgQIECBAgAABAgQIECAwCAJqAA/CVrKMBAgQIECAwBwncMwxx6QXX3xx2Hrvsssuaa211ho23AACBMZH4BOf+ETaaaed0iKLLJLPcP3110+/+93vxmfm5kKAAAECBAgQIEBgCgs8+OCD6bTTTqtdw6OPPjpNnz699jsDCRAgQGD8BQSAx9/UHAkQIECAAAECXQtcfPHF6dlnnx02n/e+970CwMNUDCBAgAABAgQIECBAgACBiRZ4+umn0+zZs2sX46ijjhIArpUxkAABAr0R0AR0b1zNlQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAn0XEADuO7kMCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0BsBAeDeuJorAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE+i4gANx3chkSIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgNwICwL1xNVcCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAj0XUAAuO/kMiRAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEBvBASAe+NqrgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOi7gABw38llSIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgd4ICAD3xtVcCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0HcBAeC+k8uQAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECvREQAO6Nq7kSIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECg7wICwH0nlyEBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgR6IyAA3BtXcyVAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEDfBQSA+04uQwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECPRGQAC4N67mSoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgb4LCAD3nVyGBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ6I2AAHBvXM2VAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECfReY1vcc58AMb7755rTffvulhRdeOF1yySVtC1xzzTXpF7/4RXrooYfyv2nTpqXlllsuLb/88mm77bZLq6yyyojzuvrqq1PMo50033zzpQMOOKCdUY1DgAABAgQIECBAgAABAnOAwCGHHJKuu+66dNBBB6UddtihrTV+5pln0nnnnZduv/32vBz71FNPpWWWWSYtu+yyaZ111knbb799mnfeeUecl7LsiDy+JECAAAECBAgQIECAwKgCAsCjEnU3wnPPPZe+8pWvpKGhobZn9Mgjj6Svfe1r6frrrx82zV/+8pd00003pR//+Md5wXnvvfdO888//7DxYsDPf/7zdMUVV9R+Vx244IILCgBXUfQTIECAAAECBAgQIEBgDhWYPXt2HvztZPV/+MMfpu9+97vp+eefb5rsvvvuS/F31VVXpf/6r/9Kn//859N6663XNE65R1m2rKGbAAECBAgQIECAAAECnQsIAHdu1vYUf/3rX9PnPve59OCDD7Y9zcsvv5wOP/zwdM899+TTzJw5M/3DP/xDXuv3pZdeyp+ivuyyy9Lrr7+eLrjgghQB5iOPPLJ2/nfeeWftcAMJECBAgAABAgQIECBAgEArgWiJ6uSTT271de3wCNqeeuqpje/e+c535jV+l1hiibwm8K9//es8CBzl46hZfMYZZ6QVVlihMX65Q1m2rKGbAAECBAgQIECAAAECnQsIAHdu1tYUf/rTn9Jxxx2X7r///rbGL0b65je/2Qj+brzxxul//I//kRZZZJHi6/xz5513zgPLTz/9dLr00kvTpptumrbccsumcV588cW8kB0DN9xww5ZB4mKiuef2OujCwicBAgQIECBAgAABAgTmRIF4IPnMM8/Mm3DutBWrE044ISebZ5550jHHHJM233zzJsI999wzfeMb30gXXnhheuWVV/JxvvOd76R41VE5KcuWNXQTIECAAAECBAgQIEBgbALNJa2xzcNUJYEorJ5++ul5obaTAnPM4rXXXks//elP87nF+4KPOOKIYcHf+HLllVdOhx56aF5TOPrjvcLVAPDdd9/daHZ6jTXWSIsvvniMKhEgQIAAAQIECBAgQIAAgWECN954Yzr++OMbDxIPG2GEAZdffnmKsnCkXXbZZVjwN4ZHoPeAAw5It9xyS7rtttvSXXfdlbdwteaaa8bXjaQs26DQQYAAAQIECBAgQIAAgTELqPY5ZrrhE0ZB9uMf/3jeNHMEf+eaa670sY99LC222GLDR64Zcvvtt6do5jnSZpttNuJ07373u9N8882XjxvTVVO5yaxVV121+rV+AgQIECBAgAABAgQIECCQPzh84okn5sHZhx56KBdZbrnl0g477NC2TgSPi/RP//RPReewz6gdvMUWWzSG33HHHY3uokNZtpDwSYAAAQIECBAgQIAAgbELqAE8drthU15zzTXp0UcfzYdHjdt//dd/Teuvv3762c9+lg+LgPBIKd4ZHM01P/XUU2m0oG002fymN70pz+8vf/lL3oTW9OnTG7NXaG5Q6CBAgAABAgMpEK19RBOZ1RQte0gECBAgQGC8BN5444100UUXNWa3zTbbpIMOOihddtlljWGjlWXjoec4Pz333HNp1qxZjenqOsqtUz355JPDRlGWHUZiAAECBAgQGBiBt7zlLfk98boFLt+7rvveMAIECBAYXwEB4PH1zJts3mmnnfKnpRdccMGO5h7v/I2/dtLzzz/fCDbH09nVE2hRaJ45c2ajAB61kh9//PE0//zzp0UXXbSdbIxDgAABAgQITJDAjjvuOEE5y5YAAQIE5kSBjTbaKO2xxx5p7bXX7nj14/VF7aZo+rlIK620UtHZ+FSWbVDoIECAAAECAycQD3rtuuuuA7fcFpgAAQJTUUAAeBy36lZbbZWf4BZYYIFxnGv9rH70ox81vlh99dUb3dHx+uuvp3vuuScfFjWJb7755vT9738/3XTTTY0mppdaaqn8Ce1PfepTKZ7MkggQIECAAAECBAgQIEBgzhOI1qW+/e1vp+q7eHsh8cILL6Sf//znjVkryzYodBAgQIAAAQIECBAgQGBcBQSAx5Gz7unlcZx9Y1bRRPTZZ5+d90dTXNV3LD3wwAONJiMj6PvpT3+6MW3R8cQTT6T4u/baa9O+++6btt9+++KrUT9///vfp0suuaTleLfeemuKAHMU7qOmskSAAAECBAgQIECAAAECk1MgypT9CP7G2seDyU8//XQOEa1fLbPMMk0ovS7LnnvuuanuvcPFQjzyyCN5WTaW8dVXXy0G+yRAgAABAgQIECBAgMDACQgAD9gmi4DqIYcckuJ9wZGiechqE11Fk1nx/Ysvvpjmm2++tO6666b11lsvxbuZ7r333vSrX/0qReH2pZdeSieddFJaeOGF09Zbbx2TjJqiwPwf//EfI44XTU/Hu6QEgEdk8iUBAgQIECBAgAABAgTmCIGf/OQnjXJktJoV77qvpl6XZa+88sq8LFzNt9wfZdl4l7EAcFlFNwECBAgQIECAAAECgyYgADxAW+zll19Ohx9+eLr77rvzpV522WXT3nvvPWwNyoXmJZZYIp144olphRVWaBpvzz33TKeeemq6+OKL8+GnnHJK2nDDDdOb3vSmpvH0ECBAgAABAgQIECBAgACBbgSuvvrq9NWvfrUxiwMPPDDNmjWr0V90KMsWEj4JECBAgAABAgQIECDQnYAAcHd+fZv6L3/5SzrssMPSLbfckucZTSyfcMIJacaMGcOWYdttt82b8Hr00UfTFltskd785jcPGydqBR988MHptttuS1HIfuaZZ9L555+f9tlnn2HjGkCAAAECBAgQIECAAAECBMYiEDV/I/j7+uuv55N//OMfT9tss03trJRla1kMJECAAAECBAgQIECAQMcCAsAdk/V/goceeihv9vnhhx/OM4+A7sknnzzsfUnFkr31rW9N8TdammeeedJee+2V1yqOcctPW4807ZZbbjni/C+99NK8dvErr7wy0mx8R4AAAQIECBAgQIAAAQJTWOC73/1u+t73vtdYw2iJKsqgrVKvy7IHHHBA2mWXXVpln4499th0zTXXpGh9SyJAgAABAgQIECBAgMAgCwgAT/KtFzV+o+Zv1ACOtOqqq+ZPT8e7fMcjrbzyyo3Z3HPPPY3ukTqWWWaZlsHnmC4CycU7ikeaj+8IECBAgAABAgQIECBAYOoJvPbaa+lrX/taitq/keaee+70uc99LkUN3/FKYynLvuMd7xgx+3hNkrLsiES+JECAAAECBAgQIEBgQAQEgCfxhvr1r3+djj766FTUpN1kk03SMccck+aff/5xW+oll1yyMa9oBloiQIAAAQIECBAgQIAAAQJjFYgA6pFHHpmuv/76fBbx+qEvfvGLadNNNx3rLGunU5atZTGQAAECBAgQIECAAAECuYAA8CTdEf7rv/4rff3rX09DQ0P5Em633XbpoIMOStFs82gpCtxPP/103mzVSiutNOLoTzzxROP7ZZddttGtgwABAgQIECBAgAABAgQIdCIQLVdFufXuu+/OJ1t88cXT8ccfn7dk1c58lGXbUTIOAQIECBAgQIAAAQIERhcQAB7dqO9jRDNZJ5xwQiPf/fbbL+28886N/pE6XnjhhbTNNtuk119/PU2fPj1vcmvGjBktJ7nvvvsa3y233HKNbh0ECBAgQIAAAQIECBAgQKBdgeeeey5v5rkI/q6wwgp5M9CzZs1qaxbKsm0xGYkAAQIECBAgQIAAAQJtCczd1lhG6ptAvIf3q1/9ap7fXHPNlY444oi2g78x0QILLJDWWGONfPpoOvq6667Lu1v9O/fccxtfbbbZZo1uHQQIECBAgAABAgQIECBAoF2BaMHqzjvvzEdfbbXV0je+8Y3UbvA3JlKWbVfaeAQIECBAgAABAgQIEBhdQAB4dKO+jhGF5qi9G2nPPfdM73//+zvOvxzIPeWUU1I8iV2XLrjggnTjjTfmX62yyipp6623rhvNMAIECBAgQIAAAQIECBAg0FIg3vd7+eWX599Hs8/HHXdcWmSRRVqO3+oLZdlWMoYTIECAAAECBAgQIECgMwFNQHfm1dOxf/azn6WbbropzyNq//75z39Ohx56aFt5Rk3hRRddNB/3Ix/5SPrNb36Tbr755hTv+P3kJz+ZDjjggLTeeuvlzULfe++96fzzz0+RX6RoKvrAAw9MkadEgAABAgQIECBAgAABAgTaFXj11VfTiSee2Bg9avLGe3/bSRtvvHH653/+58aoyrINCh0ECBAgQIAAAQIECBDoSkAAuCu+8Z34oosuasxwaGgoXXvttY3+0TpefvnlxijTpk1LRx99dB7Ufeihh9LDDz+cDjvssPz7+O61115rjLvUUkulY489NkUTXRIBAgQIECBAgAABAgQIEOhE4IYbbkgPPvhgY5LoLvc3vqjpWGyxxZqGKss2ceghQIAAAQIECBAgQIDAmAU0AT1muvGf8L777hu3mS655JLp7LPPTvvuu29acMEFG/Mtgr8zZ85MW265ZTrjjDMEfxs6OggQIECAAAECBAgQIECgE4FoYWo8k7LseGqaFwECBAgQIECAAAECc6qAGsB92PKzZ89uK5dLL720rfHaHWneeedNu+yyS9p5553TY489lh544IH0yiuvpLe//e1p6aWXbnc2xiNAgAABAgQIECBAgACBOUzggx/8YIq/0VKUN+NvPJOy7HhqmhcBAgQIECBAgAABAnOigADwHLDV55577rTMMsvkf3PA6lpFAgQIECBAgAABAgQIEJgCAsqyU2AjWgUCBAgQIECAwBQU+P3vf59Xtiuv2uKLL6611TKI7gkXEACe8E1gAQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAZBYNttt02PPvpo06Juv/326cILL2wapofARAp4B/BE6subAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC4yggADyOmGZFgAABAgQIECBAgAABAgQIECBAgAABAgQIECAwdQV22WWXtPbaazdW8O/+7u/S3//93zf6dRCYDAICwJNhK1gGAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBSS9wwgknpA984AON5dx///3Tvvvu2+jXQWAyCAgAT4atYBkIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECAwDgICwOOAaBYECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBCYDALTJsNCWAYCBAgQIECAAIFmgVNPPTW9+OKLzQOzvu222y6tuuqqw4YbQIAAAQIECBAgQIAAAQIEJlLg0UcfTWeffXbtInz2s59N06dPr/3OQAIECBAYfwEB4PE3NUcCBAgQIECAQNcC55xzTnr22WeHzWedddYRAB6mYgABAgQIECBAgAABAgQITLTAk08+mb773e/WLsYBBxwgAFwrYyABAgR6I6AJ6N64misBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgT6LiAA3HdyGRIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKA3AgLAvXE1VwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECPRdQAC47+QyJECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQG8EBIB742quBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ6LuAAHDfyWVIgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACB3ggIAPfG1VwJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECDQdwEB4L6Ty5AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQK9ERAA7o2ruRIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKDvAgLAfSeXIQECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBHojIADcG1dzJUCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQN8FBID7Ti5DAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI9EZAALg3ruZKgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBvgsIAPedXIYECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDojYAAcG9czZUAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJ9FxAA7ju5DAkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINAbAQHg3riaKwECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBPouIADcd3IZEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoDcCAsC9cTVXAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI9F1AALjv5DIkQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAbwQEgHvjaq4ECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDou4AAcN/JZUiAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIHeCAgA98bVXAkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINB3gWl9z1GGBAgQIECAAAECowrss88+6aWXXho23iqrrDJsmAEECBAgQIAAAQIECBAgQGCiBWbNmpUOOOCA2sWYd955a4cbSIAAAQK9ERAA7o2ruRIgQIAAAQIEuhL4xCc+0dX0JiZAgAABAgQIECBAgAABAv0UiADw/vvv388s5UWAAAECLQQ0Ad0CxmACBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgMmoAA8KBtMctLgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBFgICwC1gDCZAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgMCgCQgAD9oWs7wECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoISAA3ALGYAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECAyagADwoG0xy0uAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIEWAgLALWAMJkCAAAECBAgQIECAAAECBAgQ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hwAzgIvjPjNKBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBAAhY8PeEE6QXX6x8ME89JX3xhfTuu9Iuu1RenxrBEGAGcDDuI6NAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBAoAoGrr04s+Bum+OQT6bTTwt/4LAYBAsDFcJcZIwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQMELzJ4tjRiR/DBeekkaPz758zijMAUIABfmfaPXCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACRSYwdqy0ZUtqg37wwdTO46zCEyAAXHj3jB4jgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggUocCECakP+rXXpB07Uj+fMwtHgABw4dwreooAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIFDEAvPmpT74DRukZctSP58zC0eAAHDh3Ct6igACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggUMQC27enN/h0z0/v6pydLQECwNmS5joIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIpCHQtm3qJ5eWSi1apH4+ZxaOAAHgwrlX9BQBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQKCIBX75y9QHf/jhUnUig6kDFtCZ3OYCull0FQEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoHgFBg9OPYh79tnF61ZsIycAXGx3nPEigAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggUpMC++0pDhiTf9d69pf/5n+TP44zCFCAAXJj3jV4jgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggUocD/+3/JDbp9e+npp6Vq1ZI7j9qFK1BSuF2n5wgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggUl8AddyQ+3tJSaepUqWXLxM+hZuELMAO48O8hI0AAAQQQQAABBBBAAIEMCqxcubOx9eulTZt2fucIAQQQQAABBBBAAAEEEEAAgVwKfPut9MQTifdg82Zp1arE61MzGAIEgINxHxkFAggggAACCCCAAAIIpCnw+utSv35Shw47G/rsM6lZM+mMM6RZs3bmc4QAAggggAACCCCAAAIIIIBALgRuuknasiW5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+us9r0OH9DzVr++58+15771Xq12EXnn9es974AHP22mn9DzJao89PG/s2NCbrfUKU6dGr6kmTdLztfvunvfYY7XeRegNzJ7teb/+tec1a5aep06dPO+66zxvxYrQm63VCt9843nnnhu9plP/7ymfv/mN582fX6tdhF551SrPu/VWz9t663Qnnc9jj/W8Tz8Nvdlar/D00563116eV69ecr70u/Vf/+V5b79d612E3sCkSZ73i1/4/3b+7Gee9+ijoTdZ6xWmT4+eo8aNk510fW2xhef96U/Fv86/+87zhg3zvNat0/PUqpXnXXih5y1aVOtDD7WBNWs8729/87ztt0/PU4sW0f97c+eG2iSJiyzgusaN3wcl3hMNHTo0khPdI+y5Z/r5Tf2t7d7d8z76KL+Zv/nmm+N5+/vf/57fjbM1BBBAIA8CpSzLuobR8d9I/X67bs5rdUQTJnjegQd6nspjqb/xuh8rRblj3jzPO/10z9tss/Q89erleffc43nr1tXqsEOvrPuxiy/2vLZt0/Ok8u2VV3re0qWhN1urFfQIZfRoz9Pf4tRzJzuV+b/8sla7yGnlV17xvEMO8bxGjZLzpXtZlc8+/zynzdZqJT1nOPxwz0stXzdoEL3+X321VpvPaeWZMz3vuOP8y9e6x3aPrby1a3PadM4rLVkSvZZVvk+9prbZxvNuvNHz9FynmEH/1+++2/N6907P01Zbed7ll3veDz8UM0fRfek50f77e56uoUQr/d879dTSXOdvvul5Awakl69LeZ3r/7s89Gw00UnTffp43oMPep6eyxUzqOys8rXf73mXLqUp8xfz+Ov6vvR7fcABsfuWtu660vP9tpH7GMX/61+et9tu6ddb6vWn+dNO87zly/MrcvDBB2/Ik3lffPFFfjfO1goqMNP9YY49GznssMMKuq8wG2/hHrIpX530x7lCg/vvSKg0gSXurlI/iKoAVgE2tfI3drwTXGk0Vkn8f//3f7HoWn/nswL4n/9ML0T4/VFRZZAq9YoR3n/f8zp3rvmPnQpgL75YjBx5nioC/G7YU610YzlXPLsAAEAASURBVHrLLcXJk/7IH310zU7K49lne54qPIoR3HPvtEJEqpPmjzoq/zcqmY7v4Yc9r3nzmq1UkT5rVqat5DdeD6s237zmPKmCbNy4/O4709b0gEWFGL/zlRinysV7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W7ZsWdoxXXfddaZlBAQQQAABBBBAAAEEEEAAAQTKSWDatGl26qmn+mbptddes2bNmvkuIxIBBBBAIP8CVADn35QtIoAAAggggAACtRZYunSp6ZMa1qxZkxrFPAIIIIAAAggggAACCCCAAAIlF1i3bp0tWbLENx+e5/nGE4kAAgggUBgBuoAujCtbRQABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBIouQAVw0cnZIQIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIFAYASqAC+PKVhFAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIGiC1ABXHRydogAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggURoAK4MK4slUEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEECg6AJUABednB0igAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAChRGgArgwrmwVAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQKLoAFcBFJ2eHCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQGEEGhZms2w1HwJvvPGGvfDCCzZ//vzIp2HDhtalSxfr2rWrHXnkkbbttttm3c3EiRNN2wgSmjZtakOHDg2SlDQIIIAAAggggAACCCCAAAII+AosWbLEHnzwQZs+fXqkHLto0SLr1KmTde7c2XbZZRcbNGiQNWrUyHfdWCRl2ZgE3wgggAACCCCAAAIIIIBAbgJUAOfmVtC1FixYYDfeeKNNmjQpbT8//PCDTZ061Z5++ulIwXnIkCHWrFmztHSKGDdunL388su+y1IjN9lkEyqAU1GYRwABBBBAAAEEEEAAAQQQCCzw8MMP2913320//vhj0jpz5swxfV5//XV74okn7JJLLrHevXsnpUmcoSybqME0AggggAACCCBQvQLffvut7bzzzvb999/HEfr06WOXX365XXDBBfE4JhBAIF2ACuB0k5LGrFq1yoYPH26zZ8+O5KNVq1Z2yCGHRN76/emnnyKtqF988UVbt26dPfLII7Zs2TK78sorffM8c+ZM33giEUAAAQQQQAABBBBAAAEEEMingCptR48eHd/knnvuGXnjt127dpE3gcePHx+p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b731lpk7d27Bu+lbuz179jRbbLGF2XPPPU3//v0Lhi/1pDL2v/71r+bNN98077//vlFlq5Coc37AgAFm0KBBZt999zVt2rQpFLykc+jkjy1Em0Inv/TDzv04KRQ25ccqRE7SfNy4ceaRRx4xo0ePtoOMCpUzGmi02Wabmc0339zss88+pnPnzn4P38hQIeqkQVdPPfWUeeaZZ8zEiRPN119/nfep9A2XHj16WFY77rij2WGHHez3gfNeUOIJdPIHF6JNhagTNuVvU4SEQGgEQqxnoJOfldDu8OOkUNiUH6sQOWHnfmkXIqdQ370Q661iFWIdH5383r8QbSpEnbBzP3sKlZO/9uWF5BvA5fHj6goT0Gzfq666yowaNarkmNXBe/LJJ5uNNtqo5DiSF/75z382t912W8FO5uQ18X111P/4xz82Bx98cMU6ntEpTjj/dog2hU750yt5BjtPEknfx6bSuSSPhshJOmrA0z333GMHFyV19tlv1aqV2Xvvvc3QoUPtKhQ+1xQLE6JOs2fPNnfccYd1/hZy+hZ6tk022cScdNJJRnWFSgg6+VMM0aZC1Amb8rcpQkIgNAIh1jPQyd9KaHf4scKm6peTNMfO/dIvRE4hvnsh1luVwiHW8dHJ790L0aZC1Ak797OnUDn5a1+ZkDiAK8ORWCpAQEtdqlNWo+ycaEbTOuusY5TZTp8+3SxfvtyeUsdt37597TEd/+ijj+wy0e66Nddc01x33XWmT58+7lDJv3L8qsPZiZaWXH/99Y063FUBW7hwoT2lJSbl5NVy1dJp6tSpZsKECe4y+6tZWueee67RrOVyBJ386IVoU+jkl3YKhZ37scKm6peTNH/sscfM1VdfnfMQKk+6d+9uunTpYj9xoHJHM1mXLFlitFSNykSl+5w5c3Ku00zXa665xl6Xc6KROyHqpGUYTz31VDvjN/44qid069bNaKCVuImVlssWJ43QnTlzpi2Tv/nmm+iyZs2a2biGDBkSHStlA538qYVoUyHqhE352xQhIRAaAepjfikSIidpTrujftMvRJsKUSfs3M/GQ+UUok2FWG9V+oVYx0cnv/cvRJsKUSfs3M+eQuXkr33lQuIArhxLYiqDgJa5PO6446zDVM7R73//++b44483HTt2jGJVZ+79999v/vSnP9nOXXWYb7311vb80qVLzb/+9S/z97//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kQWMQ4vcO9rWWwHj0N4KOp4AAQIE+lpAALivRZVHgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBfhJwD+B+glctAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE+lpAALivRZVHgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBfhIQAO4neNUSIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgrwUEgPtaVHkECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDoJwEB4H6CVy0BAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgT6WkAAuK9FlUeAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIF+EhAA7id41RIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKCvBQSA+1pUeQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOgnAQHgfoJXLQECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBPpaQAC4r0WVR4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgX4SEADuJ3jVEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoK8FBID7WlR5BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ6CcBAeB+glctAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE+lpAALivRZVHgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBfhIQAO4neNUSIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgrwUEgPtaVHkECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDoJwEB4H6CVy0BAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgT6WmB4XxeoPAJLly6NRYsWVSA22mij2HDDDSvbVggQIECAAIHmBdasWRNtbW01BwwdOjSGDBlSky6BAAECBAgQaE5gxYoVsWDBgkrmUaNGxSabbFLZtkKAAAECBAg0L2Ds2ryVnAQIEMhDwBXAeSgPsjq+//3vx4QJEyqPSy65ZJAJOF0CBAgQINB3AtOmTYudd9655nH11Vf3XSVKIkCAAAECg1Dgt7/9bWXcmsawM2fOHIQKTpkAAQIECPSNwMknn1wzbk1j2XPOOadvKlAKAQIECHRLQAC4W1wyEyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoLgCAsDF7RstI0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQLcEBIC7xSUzAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEiisgAFzcvtEyAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIdEtAALhbXDITIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECguAICwMXtGy0jQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAtwQEgLvFJTMBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgSKKyAAXNy+0TICBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAh0S0AAuFtcMhMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKC4AgLAxe0bLSNAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEC3BASAu8UlMwECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBIorIABc3L7RMgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECHRLYHi3cstMgAABAgQIECCQq8AnPvGJWLx4cU2db3/722vSJBAgQIAAAQIECBAgQIAAgf4QmD59erzjHe+oqXrSpEk1aRIIECBAoPUCAsCtN1YDAQIECBAgQKDHAkcccUSPj3UgAQIECBAgQIAAAQIECBDIQ2D//feP9LAQIECAQDEETAFdjH7QCgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECPRaQAC414QKIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQDEEBICL0Q9aQYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgV4LCAD3mlABBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKIbA8GI0QyuqBdasWRNf+cpXIj03sxx66KGxxx571M26evXqmDVrVtx+++3x/PPPx7Jly2Ly5MkxderU2HfffWOnnXaqe5xEAgQIECBAgAABAgQIECDQmYCxa2c69hEgQIAAAQIECBAgQKD/BASA+8++Yc0pUPuTn/yk4f6OO9761rfWDQC/9NJLccopp8QzzzzT7pD77rsv0uOaa66JM844Iw4//PB2+20QIECAAAECBAgQIECAAIGuBIxduxKynwABAgQIECBAgAABAv0jIADcP+6d1vqnP/2p0/3N7Fy6dGmceuqpleDvpEmTYv/994+xY8fGQw89FHfddVesXLkyLrjggkh5p02b1kyx8hAgQIAAAQIECBAgQIAAgUzA2NULgQABAgQIECBAgAABAsUUEAAuYL88+eSTlVZ96UtfihS87WwZNWpUze6rr746nnrqqSz9kEMOibPPPjtGjBiRbR955JExe/bsOO2007Lg7yWXXBIHHnhgjBkzpqYcCQQIECBAgAABAgQIECBAoJ6AsWs9FWkECBAgQIAAAQIECBDof4Gh/d8ELego8MQTT2RJw4YNi9122y023XTTTh/rrrtuuyKWLFkSN998c5a22WabtQv+ljPusssuWXraTvcJLucv7/dMgAABAgQIECBAgAABAgQ6EzB27UzHPgIECBAgQIAAAQIECPSfgABw/9k3rLk8iN5mm21i5MiRDfM12nHnnXfGX//612z3e9/73sqVvx3zpymhx48fnyWnAPCqVas6ZrFNgAABAgQIECBAgAABAgTqChi71mWRSIAAAQIECBAgQIAAgX4XEADu9y5o34CFCxfGK6+8kiXuuOOO7Xc2ufXoo49Wcu69996V9Xore+65Z5b88ssvxwMPPFAvizQCBAgQIECAAAECBAgQINBOwNi1HYcNAgQIECBAgAABAgQIFEpAALhQ3RFR/gV1atZOO+1Uad2yZcti7ty52XTNlcQGK4899li2Z8iQITFx4sQGud5Irr6/8NNPP91pXjsJECBAgAABAgQIECBAgEASMHb1OiBAgAABAgQIECBAgEBxBYYXt2mDs2XVg+g0PfM111wTP/vZz2LevHkZyDrrrBPbbbddHH744XH00UdHCvJ2XFKgOC1jx46N4cM77+LNN9+8cvhzzz1XWbdCgAABAgQIECBAgAABAgQaCRi7NpKRToAAAQIECBAgQIAAgf4X6Dw62P/tG3QtePLJJyvnfNZZZ0W68rd6WblyZfzxj3/MHr/+9a8j5dliiy0qWdK9f9esWZNtb7zxxpX0RiujR4+u7FqyZEllvbOVn/70p3HppZc2zPKXv/wl0v2L0/PixYsb5rODAAECBAgQIECAAAECBAamwEAYu6bbHJ1xxhkNgdN4O41d0/OCBQsa5rODAAECBAgQIECAAAECA01AALhgPfanP/2p0qI0CJ0wYULsscceMWXKlCyYOmfOnPjVr36V5XnooYfitNNOi6uuuipGjBiRpS1durRy/MiRIyvrjVaq8yxfvrxRtnbpKVD87LPPtkvruJGuVB42bFjHZNsECBAgQIAAAQIECBAgsBYIDISxa/qBdDNj1/RDawsBAgQIECBAgAABAgTWJgEB4AL1Zgr4lqdvTs065phj4p/+6Z9qpnmeNm1anHPOObFo0aJ45pln4rvf/W589KMfzc4klVFeUhC2q6U6z4oVK7rKbj8BAgQIECBAgAABAgQIDHIBY9dB/gJw+gQIECBAgAABAgQIFF5AALhAXZTu1/vVr341/vznP2f37j3iiCPqtm7XXXeNU045JZv+OWW49tpr49hjj43111+/3T1/V69eXff46sRVq1ZVNquDwZVEKwQIECBAgAABAgQIECBAoErA2LUKwyoBAgQIECBAgAABAgQKKCAAXKBOSQHYNN1zM8uBBx4Y22+/fTzxxBORAr1pWqudd9451ltvvcrhzUxjVZ1n1KhRlWM7WznuuONi+vTpDbN8+9vfjk9+8pPR1tbWMI8dBAgQIECAAAECBAgQIDAwBQbK2HW//faLRx55pCHyXXfdFe985zuNXRsK2UGAAAECBAgQIECAwEAVGDpQG67dEZMmTaowPP3009l6ugq4vFTfD7ic1vG5esroZgPAQ4cOjTTgb/RIvwYX/O0obZsAAQIECBAgQIAAAQKDU6C/xq5DhgxpOG5N49kRI0YYuw7Ol6SzJkCAAAECBAgQILDWCwgAD+Au3nzzzSut/8tf/pKtjxw5MjbddNNsfcGCBZX9jVbmz59f2bXJJptU1q0QIECAAAECBAgQIECAAIG+EDB27QtFZRAgQIAAAQIECBAgQKB5AQHg5q1anjPdj3fhwoXx5JNPRjmg21ml8+bNq+weP358ZX3bbbfN1tPVvYsXL66k11t54YUXKsmTJ0+urFshQIAAAQIECBAgQIAAAQL1BIxd66lII0CAAAECBAgQIECAQHEEBICL0xdxxRVXxFFHHRUf+chH4sc//nGXLUv3/S0vEyZMKK9m9wIubzz88MPl1brPs2fPrqSnewhbCBAgQIAAAQIECBAgQIBAZwLGrp3p2EeAAAECBAgQIECAAIH+FxAA7v8+qLRgr732qqzffffdnd6L6IEHHog//vGPWf509W/1FcAHH3xwpZxbbrmlst5xJU3//OCDD2bJO+64Y5gCuqOQbQIECBAgQIAAAQIECBDoKGDs2lHENgECBAgQIECAAAECBIolMLxYzRncrZk6dWpsuOGGsWTJkmwa6Ouuuy6OPfbYGpQ0rfOXv/zlSvo//uM/xrBhwyrb22+/faSA7uOPPx733HNPpCDw4YcfXtmfVlasWBEXXXRRrF69Oks//vjj2+23QYAAAQIECBRD4Nvf/nYsWLCgpjGHHnpo7L333jXpEggQIECAQKsFjF1bLax8AgQIECAw8AR+8pOfVC5Yqm79brvtFkcccUR1knUCBAgQyEFAADgH5GarGDlyZHzmM5+J0047LTvksssuixdffDELAm+55ZbxyiuvRLry95JLLolFixZlefbZZ5844IADaqqYOXNmfOITn8jSP//5z0e6X/Bhhx0Wm222WfzhD3+Ib33rW1GeHjpN/XzQQQfVlCGBAAECBAgQ6H+Bm2++OebMmVPTkPQ3XQC4hkUCAQIECOQgYOyaA7IqCBAgQIDAABP47//+75g1a1ZNq2fMmCEAXKMigQABAq0XEABuvXG3ath3333jxBNPzO4HvGbNmrjxxhuzxzrrrBMrV65sV9bRRx8dJ510Uru08saUKVPivPPOiwsvvDCWL18eV155ZfZIVwqXr/pNebfeeuu4+OKLY+hQs4GX7TwTIECAAAECBAgQIECAQOcCxq6d+9hLgAABAgQIECBAgACB/hQQ9etP/QZ1f+ADH4irrroq3v72t1dylIO/KYA7ceLEOOuss+Jf//VfY/jwxjH8NDXk5Zdfnk0HXQ7wloO/6bjp06dn+0ePHl2pxwoBAgQIECBAgAABAgQIEGhGwNi1GSV5CBAgQIAAAQIECBAgkL9A4+hh/m1RY5XApEmTsqmely5dGs8991zMnTs3tthii0j3903TbTW7bLfddtmVv+kq4CeeeCLmz58fW221VUyYMCE22GCDZouRjwABAgQIECBAgAABAgQI1AgYu9aQSCBAgAABAgQIECBAgEC/CwgA93sXdN6AUaNGxeTJk7NH5zk737vuuuvG1KlTs0fnOe0lQIAAAQIECBAgQIAAAQLdEzB27Z6X3AQIECBAgAABAgQIEGilgCmgW6mrbAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECOQoIACcI7aqCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0EoBAeBW6iqbAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECOQoIAOeIrSoCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAi0UkAAuJW6yiZAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgECOAgLAOWKrigABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAq0UEABupa6yCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkKOAAHCO2KoiQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAKwUEgFupq2wCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAjkKCAAnCO2qggQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINBKAQHgVuoqmwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAjkKCADniK0qAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQItFJAALiVusomQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAjgICwDliq4oAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQKtFBAAbqWusgkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIJCjgABwjtiqIkCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQCsFBIBbqatsAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI5CggAJwjtqoIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECDQSgEB4FbqKpsAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQI5CgzPsS5VESBAgAABAgQIdFPg/e9/fyxcuLDmqN13370mTQIBAgQIECBAgAABAgQIEOgPgXe/+92xww471FQ9ZcqUmjQJBAgQINB6AQHg1hurgQABAgQIECDQY4EZM2b0+FgHEiBAgAABAgQIECBAgACBPATe+c53RnpYCBAgQKAYAqaAsA27KAAAQABJREFULkY/aAUBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgR6LSAA3GtCBRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAYAgLAxegHrSBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgECvBQSAe02oAAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBRDQAC4GP2gFQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOi1gABwrwkVQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgWIICAAXox+0ggABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAr0WEADuNaECCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUAwBAeBi9INWECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoNcCAsC9JlQAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEiiEgAFyMftAKAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI9FpAALjXhAogQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAMQQEgIvRD1pBgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBXgsIAPeaUAEECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAohoAAcDH6QSsIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECDQawEB4F4TKoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLFEBAALkY/aAUBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgR6LSAA3GtCBRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAYAgLAxegHrSBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgECvBQSAe02oAAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBRDQAC4GP2gFQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOi1gABwrwkVQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgWIICAAXox+0ggABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAr0WGN7rEhRAgAABAgQIECDQMoHrr78+Xn755Zry99lnn9h1111r0iUQIECAAAECBAgQIECAAIG8BW677bZ4+umna6qdPHlyHHjggTXpEggQIECgtQICwK31VToBAgQIECBAoFcC//mf/xlz5sypKeP0008XAK5RkUCAAAECBAgQIECAAAEC/SHw85//PGbNmlVT9YwZMwSAa1QkECBAoPUCpoBuvbEaCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkIuAAHAuzCohQIAAAQIECBAgQKAzgWOOOSaGDh3a7rHxxht3doh9BAgQIECAAAECBAgQIECAAAECdQRMAV0HRRIBAgQIECBAgAABAvkKtLW1RXpULx23q/dZJ0CAAAECBAgQIECAAAECBAgQqC/gCuD6LlIJECBAgAABAgQIEMhRYKuttoqtt966UuPo0aNj0qRJlW0rBAgQIECAAAECBAgQIECAAAECzQkIADfnJBcBAgQIECBAgAABAi0U+OpXvxpXXnllpYYPf/jDcf/991e2rRAgQIAAAQIECBAgQIAAAQIECDQnIADcnJNcBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKLyAAHDhu0gDCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0JyAAHBzTnIRIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECg8AICwIXvIg0kQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAcwICwM05yUWAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIHCCwgAF76LNJAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLNCQgAN+ckFwECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAovIABc+C7SQAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECDQnIADcnJNcBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKLyAAHDhu0gDCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0JyAAHBzTnIRIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECg8AICwIXvIg0kQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAcwICwM05yUWAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIHCCwgAF76LNJAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLNCQgAN+ckFwECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAovIABc+C7SQAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECDQnIADcnJNcBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKLzA8MK3UAPbCdxwww3xne98J0u77LLLYty4ce32d9xYvXp1zJo1K26//fZ4/vnnY9myZTF58uSYOnVq7LvvvrHTTjt1PMQ2AQIECBAgQIAAAQIECBDolYCxa6/4HEyAAAECBAgQIECAAIFeCQgA94ov34OfeeaZ+PrXvx4rV67MKk7B3c6Wl156KU455ZRIx1Uv9913X6THNddcE2eccUYcfvjh1butEyBAgAABAgUS+Lu/+7vYe++9a1o0ZcqUmjQJBAgQIECgCALGrkXoBW0gQIAAAQL5Chx00EGx2Wab1VS622671aRJIECAAIHWCwgAt964T2p4/fXX4/zzz68Ef7sqdOnSpXHqqadWgr+TJk2K/fffP8aOHRsPPfRQ3HXXXVlZF1xwQaS806ZN66pI+wkQIECAAIF+EPiHf/iHfqhVlQQIECBAoGcCxq49c3MUAQIECBAY6AJHHXVUpIeFAAECBIohIABcjH7oshVXXHFFPPnkk13mK2e4+uqr46mnnso2DznkkDj77LNjxIgR2faRRx4Zs2fPjtNOOy0L/l5yySVx4IEHxpgxY8qHeyZAgAABAgQIECBAgAABAt0WMHbtNpkDCBAgQIAAAQIECBAg0OcCQ/u8RAX2ucCDDz4YP/jBD7Jy11tvvS7LX7JkSdx8881ZvjTtRnXwt3zwLrvskqWn7TSVdDl/eb9nAgQIECBAgAABAgQIECDQHQFj1+5oyUuAAAECBAgQIECAAIHWCQgAt862T0p+9dVXI03T3NbWlt3/b999962UO2TIkMp69cqdd94Zf/3rX7Ok9773vZUrf6vzpPU0JfT48eOz5BQAXrVqVccstgkQIECAAAECBAgQIECAQJcCxq5dEslAgAABAgQIECBAgACB3AQEgHOj7llF//Ef/xELFiyIt7zlLXHGGWdEo6BvdemPPvpoZXPvvfeurNdb2XPPPbPkl19+OR544IF6WaQRIECAAAECBAgQIECAAIFOBYxdO+WxkwABAgQIECBAgAABArkKCADnyt29ym699da44447soM+/elPN32P3sceeyw7JgWLJ06c2GmlkyZNqux/+umnK+tWCBAgQIAAAQIECBAgQIBAMwLGrs0oyUOAAAECBAgQIECAAIH8BASA87PuVk3z5s2LL3/5y9kxhx12WBx66KFNHz937tws79ixY2P48OGdHrf55ptX9j/33HOVdSsECBAgQIAAAQIECBAgQKArAWPXroTsJ0CAAAECBAgQIECAQP4CnUcH82+PGksCa9asye77u3Tp0thss81i5syZTbuke/+m49Oy8cYbd3nc6NGjK3mWLFlSWe9s5YYbbogvfvGLDbMsX748tttuu3jllVdi0aJFDfPZQYAAAQIECBAgQIAAAQIDV6DoY9ff//738alPfaoh8Ouvv56NXdPYe/78+Q3z2UGAAAECBAgQIECAAIGBJiAAXMAe+/73vx8PP/xw1rIzzzwzu/9vs81MA9fyMnLkyPJqw+fqPClw28ySgsxdBXbTlcdDh7rAvBlPeQgQIECAAAECBAgQIDAQBYo+dk0B3mbGrsOGDRuI/NpMgAABAgQIECBAgACBhgIidA1p+mfH448/HldccUVW+fTp02OPPfboVkOWLVtWyb/OOutU1hutVOdZsWJFo2zSCRAgQIAAAQIECBAgQIBARcDYtUJhhQABAgQIECBAgAABAoUTcAVwgbokBWDPP//8WL16dWyzzTZx4okndrt11ff8TeV0taxataqSpToYXEmss5J+HT1ixIg6e95IStOApV9aWwgQIECAAAECBAgQIEBg7RMYKGPXIUOGdDp2bWtri5UrV0Z6thAgQIAAAQIECBAgQGBtEhAALlBvfv3rX4/nnnsuUoD17LPPjurpmZtt5nrrrVfJmgayXS3VeUaNGtVV9mz/scceG+nRaLnyyivjhBNOaLRbOgECBAgQIECAAAECBAgMYIGBMnbdb7/94tFHH20o/etf/zoOPvjghvvtIECAAAECBAgQIECAwEAVEAAuSM/99re/jRtvvDFrTQqubrnllvHqq6/WtK76ytp0v99ynhT4TVf/rr/++pVjqu8HXEnssFI9ZXSzAeAORdgkQIAAAQIECBAgQIAAgUEiYOw6SDraaRIgQIAAAQIECBAgMKAFBIAL0n333HNPpSXf+973Ij26Wj7+8Y9XslxyySXx9re/PbtqeNNNN42XX345FixYUNnfaGX+/PmVXZtsskll3QoBAgQIECBAgAABAgQIEOgoYOzaUcQ2AQIECBAgQIAAAQIEiicwtHhN0qLeCmy77bZZEenq3sWLF3da3AsvvFDZP3ny5Mq6FQIECBAgQIAAAQIECBAg0EoBY9dW6iqbAAECBAgQIECAAIHBLOAK4IL0/j777BMbbbRRl62566674tlnn83yHXnkkZVjtthii8qxO++8c9x///3Z9sMPP9zpPY1mz57d7rjKhhUCBAgQIECAAAECBAgQINBBwNi1A4hNAgQIECBAgAABAgQIFFBAALggnfI3f/M3kR5dLXPnzq0EgGfMmBETJkyoOeTggw+Oa6+9Nku/5ZZbGgaA0/TPDz74YJZvxx13DFNA11BKIECAAAECBAgQIECAAIEqAWPXKgyrBAgQIECAAAECBAgQKKiAKaAL2jG9adb2228fKaCblnR/phQE7risWLEiLrrooli9enW26/jjj++YxTYBAgQIECBAgAABAgQIEGiZgLFry2gVTIAAAQIECBAgQIDAIBcQAF5LXwAzZ86snNnnP//5uOaaa+LFF1+MVatWRZr2+ZRTTqlME52mjD7ooIMq+a0QIECAAAECBAgQIECAAIE8BIxd81BWBwECBAgQIECAAAECg03AFNBraY9PmTIlzjvvvLjwwgtj+fLlceWVV2aPYcOGVa76Tae+9dZbx8UXXxxDh/otwFr6UnBaBAgQIECAAAECBAgQKKyAsWthu0bDCBAgQIAAAQIECBAYwAKifgO487pq+qGHHhqXX355Nh10OcBbnvJ5+PDhMX369Gz/6NGjuyrKfgIECBAgQIAAAQIECBAg0BIBY9eWsCqUAAECBAgQIECAAIFBLOAK4AHW+eeee26kR7PLdtttl135m64CfuKJJ2L+/Pmx1VZbxYQJE2KDDTZothj5CBAgQIAAAQIECBAgQIBA0wLGrk1TyUiAAAECBAgQIECAAIE+FxAA7nPSYha47rrrxtSpU7NHMVuoVQQIECBAgAABAgQIECAw2AWMXQf7K8D5EyBAgAABAgQIECDQFwKmgO4LRWUQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgAAKuAC5AJ2gCAQIECBAgQKCRwK233hqLFy+u2b3rrrvGTjvtVJMugQABAgQIECBAgAABAgQI5C3wm9/8Jp5//vmaaidOnBh77rlnTboEAgQIEGitgABwa32VToAAAQIECBDolcBll10Wc+bMqSnj9NNPFwCuUZFAgAABAgQIECBAgAABAv0h8MMf/jBmzZpVU/WMGTMEgGtUJBAgQKD1AqaAbr2xGggQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIJCLgABwLswqIUCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQOsFBIBbb6wGAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI5CIgAJwLs0oIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECDQegEB4NYbq4EAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQK5CAgA58KsEgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECLReQAC49cZqIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQC4CAsC5MKuEAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECrRcQAG69sRoIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCQi4AAcC7MKiFAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEDrBQSAW2+sBgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECOQiIACcC7NKCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0HoBAeDWG6uBAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECuQgIAOfCrBICBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAi0XkAAuPXGaiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEAuAgLAuTCrhAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAq0XEABuvbEaCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkIuAAHAuzCohQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA6wUEgFtvrAYCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAjkIiAAnAuzSggQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINB6AQHg1hurgQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABArkICADnwqwSAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQItF5AALj1xmogQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBALgLDc6lFJQQIECBAgAABAj0SOOigg2L77bevOXbixIk1aRIIECBAgAABAgQIECBAgEB/COy5554xYsSImqp32223mjQJBAgQINB6AQHg1hurgQABAgQIECDQY4GZM2f2+FgHEiBAgAABAgQIECBAgACBPAQ+8IEPRHpYCBAgQKAYAqaALkY/aAUBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgR6LSAA3GtCBRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAYAgLAxegHrSBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgECvBQSAe02oAAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBRDQAC4GP2gFQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOi1gABwrwkVQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgWIICAAXox+0ggABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAr0WEADuNaECCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUAwBAeBi9INWECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoNcCAsC9JlQAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEiiEgAFyMftAKAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI9FpAALjXhAogQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAMQQEgIvRD1pBgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBXgsIAPeaUAEECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAohoAAcDH6QSsIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECDQawEB4F4TKoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLFEBAALkY/aAUBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgR6LSAA3GtCBRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAYAgLAxegHrSBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgECvBQSAe02oAAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBRDQAC4GP2gFQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOi1gABwrwkVQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgWIICAAXox+0ggABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAr0WGN7rEhRAgAABAgQIECDQMoF77703Xn311Zryd9hhh9hmm21q0iUQIECAAAECBAgQIECAAIG8BWbPnh3z5s2rqXbcuHGx884716RLIECAAIHWCggAt9ZX6QQIECBAgACBXglcfPHFMWfOnJoyTj/99PjoRz9aky6BAAECBAgQIECAAAECBAjkLfDtb387Zs2aVVPtjBkz4nOf+1xNugQCBAgQaK2AKaBb66t0AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI5CYgAJwbtYoIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECDQWgEB4Nb6Kp0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQK5CQgA50atIgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECLRWQAC4tb5KJ0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQG4CAsC5UauIAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECrRUQAG6tr9IJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCQm4AAcG7UKiJAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEBrBQSAW+urdAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECOQmIACcG7WKCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0FoBAeDW+iqdAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECuQkIAOdGrSICBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAi0VkAAuLW+SidAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEBuAgLAuVGriAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAq0VEABura/SCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkJvA8NxqUlG3Be6666745S9/Gf/7v/8b8+bNi4022ii23XbbOOyww7LHsGHDuixz9erVMWvWrLj99tvj+eefj2XLlsXkyZNj6tSpse+++8ZOO+3UZRkyECBAgAABAgQIECBAgACBRgLGro1kpBMgQIAAAQIECBAgQKB/BASA+8e901oXLVoUn/3sZ+Ohhx5ql++ll16K9Pj9738fd955Z5x//vkxcuTIdnmqN1LeU045JZ555pnq5LjvvvuyxzXXXBNnnHFGHH744e322yBAgAABAgQIECBAgAABAl0JGLt2JWQ/AQIECBAgQIAAAQIE+kdAALh/3BvWumrVqvjMZz4TjzzySJZns802i/e85z0xbty4LPh72223xVNPPRW/+c1vYubMmXHxxRfHW97ylpryli5dGqeeemol+Dtp0qTYf//9Y+zYsVlgOf1Ce+XKlXHBBRdEyjtt2rSaMiQQIECAAAECBAgQIECAAIF6Asau9VSkESBAgAABAgQIECBAoBgCAsDF6IdKK66++upK8Hf33XePCy+8MNZff/3K/mOOOSYuuuiiuOWWW7J83/zmN7NAbyXD/62kclKgOC2HHHJInH322TFixIhs+8gjj4zZs2fHaaedlgV/L7nkkjjwwANjzJgx2X7/ECBAgAABAgQIECBAgACBzgSMXTvTsY8AAQIECBAgQIAAAQL9KzC0f6tXe7VAW1tbdr/elJamdk5XAlcHf1P68OHD4+STT44NNtggbWb3CE5X8lYvS5YsiZtvvjlLSlcQVwd/y/l22WWXLD1tp/sEl/OX93smQIAAAQIECBAgQIAAAQL1BIxd66lII0CAAAECBAgQIECAQHEEBICL0xfxhz/8IZvmOTVpjz32yKZrrte8FBROUzqnJQV/582b1y5buj/wX//61yztve99b+XK33aZShtpSujx48dnySkAnKbwshAgQIAAAQIECBAgQIAAgc4EjF0707GPAAECBAgQIECAAAEC/S9gCuj+74NKC6ZMmRI33XRTNnXzhhtuWEmvt7Js2bIseejQoTF69Oh2WR599NHK9t57711Zr7ey5557xvPPPx8vv/xyPPDAA9FV/nplSCNAgAABAgQIECBAgACBwSNg7Dp4+tqZEiBAgAABAgQIECAwMAUEgAvWb5tsskmkR2fLokWLKvf3TQPvjsHixx57LDt8yJAhMXHixM6KqlxJnDI9/fTTAsCdatlJgAABAgQIECBAgAABAknA2NXrgAABAgQIECBAgAABAsUVEAAubt/UbdnixYvj1FNPze7bmzIcdthhNfnmzp2bpY0dOza7Z3BNhqqEzTffvLL13HPPVdatECBAgAABAsUQ2H333WPMmDE1jRk3blxNmgQCBAgQIFAUAWPXovSEdhAgQIAAgXwEJk+eHK+99lpNZTvssENNmgQCBAgQaL2AAHDrjXtdw0MPPRQpOPv444/HLbfcEitWrIhhw4bFpz71qTjqqKPalZ/u/btmzZosbeONN263r95G9fTRS5YsqZelJu0HP/hBXHDBBTXp5YRUf7pH8SuvvBILFy4sJ3smQIAAAQIEeiBwzjnn9OAohxAgQIAAgfwFijZ2/c1vfhMf//jHG0K0tbVlY9elS5fGn//854b57CBAgAABAgS6FjjxxBMjPSwECBAgUAwBAeBi9EOnrTj33HOze/RWZ/rIRz5SE/xN+9PAtbyMHDmyvNrwuTrP8uXLG+ar3rF69ep4/fXXq5Nq1tO9iS0ECBAgQIAAAQIECBAgMHgEijZ2TQHeZsau6fZJFgIECBAgQIAAAQIECKxNAqJ0Be/NdLXvyy+/nN1fab311qu09sorr4wPfehDlXsBl3csW7asvBrrrLNOZb3RSnWeVJeFAAECBAgQIECAAAECBAh0V8DYtbti8hMgQIAAAQIECBAgQKB1Aq4Abp1tn5Q8fPjwmDVrVmywwQaRfr2cpoL+2te+Fr/73e/imWeeiZNOOikuvfTSmDhxYlZfyl9e0pW6XS2rVq2qZKkOBlcS66ykQPSmm25aZ88bSWka6jSddHkq6oYZ7SBAgAABAgQIECBAgACBtUKgiGPXNMbtbOy6cuXKSPcqbmbsvFZ0kpMgQIAAAQIECBAgQGDQCLwZLRw0pzywTjTd6zcFf9OSpqV661vfGl/60pfivPPOi9tvvz1ee+21uPzyy+MLX/hClqf6KuE0mO1qqc4zatSorrJn+6dNmxbp0WhJVyefcMIJjXZLJ0CAAAECBAgQIECAAIG1TKCIY9e99tor0n2AGy2//vWv4+CDD260WzoBAgQIECBAgAABAgQGrIApoAdo182cOTPK9++99957Y+HChdmZrL/++pUzqr4fcCWxw0r1lNHNBoA7FGGTAAECBAgQIECAAAECBAjUFTB2rcsikQABAgQIECBAgAABAi0VEABuKW/rCt9www0r0z6nWubOnZtVloLC5SmuFixY0GUD5s+fX8mzySabVNatECBAgAABAgQIECBAgACB3goYu/ZW0PEECBAgQIAAAQIECBDovoAAcPfNWnZEms758ccfjzvvvDMWLVrUZT0bb7xxJU+672552XbbbbPVdHVvup9RZ8sLL7xQ2T158uTKuhUCBAgQIECAAAECBAgQIFBPwNi1noo0AgQIECBAgAABAgQIFEdAALg4fRHXXXddfOxjH4tzzjknbr311i5b9swzz1TybL/99pX1nXfeubL+8MMPV9brrcyePbuSXH1cJdEKAQIECBAgQIAAAQIECBCoEjB2rcKwSoAAAQIECBAgQIAAgQIKCAAXqFP22muvSmvuuOOOynq9lcceeyxefPHFbFea8rk87XNKOPjgg7P09M8tt9xSWe+4kqZ/fvDBB7PkHXfcMUwB3VHINgECBAgQIECAAAECBAh0FDB27ShimwABAgQIECBAgAABAsUSEAAuUH+kK3DHjBmTteiPf/xj/OhHP6rbuldffTX+/d//vbLv2GOPraynlXQ1cAropuWee+6pGwResWJFXHTRRbF69eos3/HHH589+4cAAQIECBAgQIAAAQIECHQmYOzamY59BAgQIECAAAECBAgQ6H8BAeD+74NKC4YPHx7nnntuDB36Rrd8/etfj0svvTTSlbppSffz/dWvfhUf/OAH47nnnsvS9txzzzjmmGOy9ep/Zs6cWdn8/Oc/H9dcc012xfCqVasiTft8yimnxP3335/lSYP3gw46qJLfCgECBAgQIECAAAECBAgQaCRg7NpIRjoBAgQIECBAgAABAgSKITC8GM3QirLArrvuGp/61Kfikksuya7OTfdWSo911lknVq5cWc6WPafg72c+85kYMmRIu/S0MWXKlDjvvPPiwgsvjOXLl8eVV16ZPYYNG1a56jfl23rrrePiiy+uBJ1TmoUAAQIECBAgQIAAAQIECHQmYOzamY59BAgQIECAAAECBAgQ6F8BVwD3r3/d2qdNmxbf+c53IgV4y0t18DdNE33WWWfFV77ylXb3/i3nLT8feuihcfnll2fTQZevKi5P+Zx+sT19+vRs/+jRo8uHeCZAgAABAgQIECBAgAABAk0JGLs2xSQTAQIECBAgQIAAAQIEchdwBXDu5M1VuM0222QB3tdeey2effbZmDt3bowdOza23Xbb2HjjjZsrpJRru+22y678TVcBP/HEE9l00ltttVVMmDAhNthgg6bLkZEAAQIECBAgQIAAAQIECHQUMHbtKGKbAAECBAgQIECAAAEC/S8gANz/fdBpC1KQ9m1ve1v26DRjFzvXXXfdmDp1avboIqvdBAgQIECAAAECBAgQIECgWwLGrt3ikpkAAQIECBAgQIAAAQItFTAFdEt5FU6AAAECBAgQIECAQDMCjz8eceONb+b83e8i7r47Ys2aN9OsESBAgAABAgQIECBAgAABAgQIdC0gANy1kRwECBAgQIAAAQIECLRI4LHHIt75zoiddor41rferOTeeyMOPDBixx3bB4bfzGGNAAECBAgQIECAAAECBAgQIECgnoAAcD0VaQQIECBAgAABAgQItFzgJz+J2HvviNtua1zVk09GTJsWceqpjfPYQ4AAAQIECBAgQIAAAQIECBAg8KaAAPCbFtYIECBAgAABAgQIEMhJIF3he+yxEcuWNVfhl74UcdFFzeWViwABAgQIECBAgAABAgQIECAwmAUEgAdz7zt3AgQIECBAgAABAv0gsGpVxEc/GrFiRfcqP/vsiD/9qXvHyE2AAAECBAgQIECAAAECBAgQGGwCAsCDrcedLwECBAgQIECAAIF+FvjxjyP++MfuNyIFjl0F3H03RxAgQIAAAQIECBAgQIAAAQKDS0AAeHD1t7MlQIAAAQIECBAg0O8CN97Y8ybcfHPEmjU9P96RBAgQIECAAAECBAgQIECAAIG1XUAAeG3vYedHgAABAgQIECBAoGACjz3W8wa9/HLEvHk9P96RBAgQIECAAAECBAgQIECAAIG1XWD42n6Czo8AAQIECBAgMJAFHitFypYtW1ZzCuPHj48tttiiJl0CgYEgsGhR71q5eHHEVlv1rgxHEyBAgAABAgQIECDQdwJPPfVULKrzQX/s2LGxzTbb9F1FSiJAgACBpgQEgJtikokAAQIECBAg0D8CZ511VsyZM6em8tNPPz0++tGP1qRLIDAQBDbbLOLFF3ve0tJ3SBYCBAgQIECAAAECBAok8LWvfS1mzZpV06IZM2bE5z73uZp0CQQIECDQWgFTQLfWV+kECBAgQIAAAQIECHQQ2H33Dgnd2Bw3LiIFkC0ECBAgQIAAAQIECBAgQIAAAQL1BQSA67tIJUCAAAECBAgQIECgRQLTp/e84Pe9r+fHOpIAAQIECBAgQIAAAQIECBAgMBgETAE9GHrZORIgQIAAAQIECBD4P4FVq1bFcccdV+Pxrne9K7dpxY84ImLffSPuvbemGZ0mjBoVUZr93EKAAAECBAgQIECAAAECBAgQINCJgABwJzh2ESBAgAABAgQIEFjbBFavXh3XX399zWltscUWNWmtTLj22oi9945YvLj5Wr71rYicm9l84+QkQIAAAQIECBAgQIAAAQIECBREwBTQBekIzSBAgAABAgQIECAwmAQmTYr45jebP+Njj414//ubzy8nAQIECBAgQIAAAQIECBAgQGCwCggAD9aed94ECBAgQIAAAQKDUmCdddaJRx55JN797ndXzv+6666LM888s7Kd18rjjzdf04svNp9XTgIECBAgQIAAAQIECBAgQIDAYBYQAB7Mve/cCRAgQIAAAQIEBp3AkCFD4m1ve1uMHj26cu6TSpfjbrnllpXtvFbqzETdsOp77omYP7/hbjsIECBAgAABAgQIECBAgAABAgT+T0AA2EuBAAECBAgQIECAAIHcBZ56KmL27OarXbMm4oYbms8vJwECBAgQIECAAAECBAgQIEBgsAoIAA/WnnfeBAgQIECAAAECBPpR4Ic/7H7l3bliuPulO4IAAQIECBAgQIAAAQIECBAgsHYICACvHf3oLAgQIECAAAECBAgMKIGeBHN//euIhQsH1GlqLAECBAgQIECAAAECBAgQIEAgdwEB4NzJVUiAAAECBAgQIEBgcAv87/9GPPBA9w1Wr4648cbuH+cIAgQIECBAgAABAgQIECBAgMBgEhAAHky97VwJECBAgAABAgQIFEDgRz/quhEbblg/T0+uHK5fklQCBAgQIECAAAECBAgQIECAwNopIAC8dvarsyJAgAABAgQIECBQWIFGQdyJE99s8g47vLlevfarX0UsWlSdYp0AAQIECBAgQIAAAQIECBAgQKBaQAC4WsM6AQIECBAgQIAAAQItFZg7N+L3v69fxQEHvJm+/fZvrlevrVoVcdNN1SnWCRAgQIAAAQIECBAgQIAAAQIEqgUEgKs1rBMgQIAAAQIECBAg0FKBNP1zW1v9Kvbb7830zTePeOtb39yuXmt0BXF1HusECBAgQIAAAQIECBAgQIAAgcEqIAA8WHveeRMgQIAAAQIECBDoB4Ef/7h+pVOnRowf337f+97Xfru8dfvtEX/5S3nLMwECBAgQIECAAAECBAgQIECAQLWAAHC1hnUCBAgQIECAAAECBFomMH9+xG9+U7/4esHeemnp6JUrI26+uX45UgkQIECAAAECBAgQIECAAAECg11AAHiwvwKcPwECBAgQIECAAIGcBNLUzWvW1K+sXrD3He+IGDeufn7TQNd3kUqAAAECBAgQIECAAAECBAgQEAD2GiBAgAABAgQIECBAIBeBRkHbHXeM2Hnn2iYMGRJx9NG16Snl1lsjXn21/j6pBAgQIECAAAECBAgQIECAAIHBLCAAPJh737kTIECAAAECBAgQyElg4cKIu++uX9mMGfXTU2q9K4NT+vLlET/7WVqzECBAgAABAgQIECBAgAABAgQIVAsIAFdrWCdAgAABAgQIECBAoCUCP/5xxOrV9YtudJVvyr3ffhFbbFH/uEZXFNfPLZUAAQIECBAgQIAAAQIECBAgMDgEBIAHRz87SwIECBAgQIAAAQL9KpACwPWW7baL2HXXenveSBtaGrE0ChDPmhWxdGnjY+0hQIAAAQIECBAgQIAAAQIECAxGAQHgwdjrzpkAAQIECBAgQIBAjgKLF0f893/Xr7Cz6Z/LRzSaBvqvf434xS/KuTwTIECAAAECBAgQIECAAAECBAgkgeEYCBAgQIAAAQIEiiswadKkGD689iPbmDFjittoLSPQQeDGGyNef71D4v9tNgruVuc+4ICIsWMjXnqpOvWN9TQN9PTptelSCBAgQIAAAQIECBDIT2D8+PExderUmgrHjRtXkyaBAAECBFovUPttYuvrVAMBAgQIECBAgECTAl/60peazCkbgeIKNLpX74QJEXvs0XW7hw2LmDYt4vLLa/P+/OcR6Urg9dar3SeFAAECBAgQIECAAIF8BE455ZR8KlILAQIECDQlYAropphkIkCAAAECBAgQIECgJwJLlkTccUf9I7tz5W6jK4XTPYB/+cv65UslQIAAAQIECBAgQIAAAQIECAxGAQHgwdjrzpkAAQIECBAgQIBATgI33RSxcmX9yhoFdevl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ApULcO9auQ+1CCCAAAIIIIAAAggggEC+BZgBnO8rUM3zx7+zt3v37uWO8tVXX0U+t2nTRkVFlef427VrF9v3yySnQezYsSMy47ikpMT525aStuQzBQEEEEAAAQQQQCBcAv/4h/94grT8c7SXXbpIP/xh9FP5334zmcu34hMCCKQrkM9719LSUuc9a/ReduvWrdy7pnuB2R8BBBBAAAEEEEAAAQQCKVB5djCQXaZT3w7ZMhUAAEAASURBVH77rZ599tkIhCVaTznllBiKvfvXErRWoktExyodG82bN49F161bF9uubONvf/ubbrnllsqaqIv3bduqVatkfaUggAACCCCAAAIIhEPAL2lqbxWxd+4GsdjM5NmzE3s2bZpkz03utltiHREEEMiMQL7vXd955x2df/75lQ7G7l1tha2lS5dW2o5KBBBAAAEEEEAAAQQQQKCQBJgBXEhXy+ur3ZheddVVsncuWTnjjDPUq1evyLb9TzRu2/Xr17dflZb4Nps3b660LZUIIIAAAggggAACNVdg8WJp+nT3+G2p5aAWv6WpvYmBGjs2qL2mXwgUvgD3roV/DRkBAggggAACCCCAAAIIFK4ACeACunZbtmzx3mF2rT7//PNIrzt27KgLL7yw3Ag2btwY+xz/XuBYsMJGfBs7PgUBBBBAAAEEEEAAAZeA3+xfaxvkBHC3btK++7pGJFU2JvceRBFAIBkB7l2TUaINAggggAACCCCAAAIIIJA9AZaAzp5tRo+8Zs0a/e53v9O8efMix23btq3uvvvuhFm+8e/83b59e5V9sPf1Rkt8Mjgac/1u1qyZ9tprL1dVJLZ27VotX75cyZzf9yBUIIAAAggggAACCARKwC9Zau/YtXftBrnYLODv/xldrptvvSUtWya1b18uzAcEEEhDIEj3rg0bNqz03tUeoF6yZIni74vTGDq7IoAAAggggAACCCCAAAKBESABHJhL4d8RuyG1ZZ+/speUeWXXXXfVfffdpw4dOiTsZDe40VJSUhLd9P0d36Zx48a+7eIrTj75ZNmPX3niiSd0wQUX+FUTRwABBBBAAAEEECgwAXs1pr0z11X8llh2tc1XzPp4882JZ9+xQ3rxReniixPriCCAQOoCQbt3PeCAAzRp0iTfgUydOlV9+/b1racCAQQQQAABBBBAAAEEEChUAZaADviVsxm/F3vfSEWTv127dtWf//xnZ/LXhtKoUaPYiOLfBxwLVtiIXzI62QRwhUPwEQEEEEAAAQQQQCDkAmPGSPbOXFcJ8vLP0f7ut5/k/TPaWfxmNjsbE0QAAV8B7l19aahAAAEEEEAAAQQQQAABBHIuwAzgnJMnf8I333zTm6lws6KzdA899FDdcsstip/lW/Fo9evXV6tWrbRy5Up98803FasTPttSzdHSsmXL6Ca/EUAAAQQQQCAgAu3atdP69esTetOkSZOEGAEEsiXglyTt0UPq3j1bZ83scW0W8G23JR7TmwCoFSukNm0S64gggEByAty7JudEKwQQQAABBMIsYN8t77777glDbNGiRUKMAAIIIIBA9gVIAGffuFpnePnll3XPPfd4My3KploMHjxYl19+uerUqVPl8Tp16hRJANvs3tWrV6uyv2Rtia5o6V4o395FO8xvBBBAAAEEaoDAo48+WgNGyRCDLGDPFNq7cl2lEJZ/jvbbLwG8fbv00kvyXmESbclvBBBIRYB711S0aIsAAggggEB4BX7/+9+Hd3CMDAEEEChAAZaADuBFmzBhgu6+++5Y8vfSSy/VsGHDkkr+2nB62FSM78vs2bOjm87fc+bMicXj94sF2UAAAQQQQAABBBCo0QJjx0r2rlxXKaQE8I9+JHXu7BqF5DfD2d2aKAIIRAW4d41K8BsBBBBAAAEEEEAAAQQQCJYACeBgXQ8tWLBAo0aNivSqVq1auv766/XTn/40pV727ds31n7SpEmx7YobtvzzrFmzImF7tzBLQFcU4jMCCCCAAAIIIICAX3K0SxepZ8/C8vFLWL/+urRqVWGNhd4ikG8B7l3zfQU4PwIIIIAAAggggAACCCDgL0AC2N8mLzW27PN2W4fOK7/4xS80cODAlPvRxfs2zhK6Vt7y1utzJYG3bNmiO+64I3auoUOHpnwedkAAAQQQQAABBBAIt8DKlZK9I9dVzjjDFQ12zC8BvG2b5L2BhYIAAikIcO+aAhZNEUAAAQQQQAABBBBAAIEcC/AO4ByDV3a6iRMnKroks83+/fDDDzV8+PDKdonV2UzhXXbZJfb5iiuu0EUXXRT5fNttt2nZsmXq16+f2rZtGznuY489pujy0Lb089FHHx3blw0EEEAAAQQQQAABBEzgxRclS466ypAhrmiwY717S3vuKX3xRWI/baaz9/wlBQEEkhDg3jUJJJoggAACCCCAAAIIIIAAAnkUIAGcR/yKp37RvmH7vpSWlurdd9+Nfqzyt83ojS/77ruvbr75Zt1+++3avHmznnjiichPnTp1YrN+rf1uu+2mO++8U7VrMxk83o9tBBBAAAEEEEAAAWnMGLdCp07SAQe464IetVnA3qI7CeXVV6W1a+U9VJlQRQABBCoIcO9aAYSPCCCAAAIIIIAAAggggEDABMj6BeiCLFq0KKO9OfbYY/Xoo49GloOOJnijy0sXFRXpDG/dPqtv3rx5Rs/LwRBAAAEEEEAAAQQKX2DNGum119zj8FtK2d06WFG/vpeUSOPGBauv9AaBoApw7xrUK0O/EEAAAQQQQAABBBBAAIEyAWYAB+hPgutdvel2b++9947M/LVZwPPnz9fy5cvVoUMH7bHHHmrSpEm6h2d/BBBAAAEEEEAAgZAK2Dtxt251D84viepuHazoIYdIu+8uLVmS2C9bBvrccxPjRBBAoLwA967lPfiEAAIIIIAAAggggAACCARNgARw0K5IlvrToEED9ezZM/KTpVNwWAQQQAABBBBAAIEQCVgy1FU6dpQOOshVUxixWrUke3/x/fcn9nfSJGn9eqlp08Q6IgggkBsB7l1z48xZEEAAAQQQQAABBBBAINwCLAEd7uvL6BBAAAEEEEAAAQQQSFlg3TppyhT3bjb715KohVz8ZjBv2SL985+FPDL6jgACCCCAAAIIIIAAAggggAACCEgkgPlTgAACCCCAAAIIIIAAAuUEXnlFsmSoq9js2UIvffpIu+7qHoXfzGd3a6IIIIAAAggggAACCCCAAAIIIIBA8ARIAAfvmtAjBBBAAAEEEEAAAQTyKjBmjPv0ljS15Gmhl9reXdBpp7lHUVwsbdjgriOKAAIIIIAAAggggAACCCCAAAIIFIIACeBCuEr0EQEEEEAAAQQQQACBHAlY8nPiRPfJbPZvoS//HB2Z3zLQmzZJEyZEW/EbAQQQQAABBBBAAAEEEEAAAQQQKDwBEsCFd83oMQIIIIAAAggggAACWRMYP16yJKir+CVNXW2DHjvySKltW3cvWQba7UIUAQQQQAABBBBAAAEEEEAAAQQKQ4AEcGFcJ3qJAAIIIIAAAggggEBOBPySn5YstaRpWEqdOtKPf+weTWVJcPceRBFAAAEEEEAAAQQQQAABBBBAAIHgCJAADs61oCcIIIAAAggggAACCORVoLLljy1Zau/ODVPxm9Fc2TLYYRo/Y0EAAQQQQAABBBBAAAEEEEAAgXAKhOwrnHBeJEaFAAIIIIAAAggggEAuBOzdv5b8dBW/ZKmrbaHE+vaVWrVy99ZvJrS7NVEEEEAAAQQQQAABBBBAAAEEEEAgOAIkgINzLegJAggggAACCCCAAAJ5FfBLelqS1JKlYStFRdLgwe5RvfKKtGWLu44oAggggAACCCCAAAIIIIAAAgggEGQBEsBBvjr0DQEEEEAAAQQQQACBHAlYsvOf/3SfzJKkliwNY/Gb2bx+vTR5chhHzJgQQAABBBBAAAEEEEAAAQQQQCDsAiSAw36FGR8CCCCAAAIIIIAAAkkIWLJz3Tp3Q78kqbt1YUWPO05q3tzdZ78Z0e7WRBFAAAEEEEAAAQQQQAABBBBAAIFgCJAADsZ1oBcIIIAAAggggAACCORVwC/ZaclRS5KGtdStK516qnt048ZJJSXuOqIIIIAAAggggAACCCCAAAIIIIBAUAVIAAf1ytAvBBBAAAEEEEAAAQRyJLB1q2TJTlc55RTJkqRhLn4znNeskV57LcwjZ2wIIIAAAggggAACCCCAAAIIIBBGARLAYbyqjAkBBBBAAAEEEEAAgRQEpk+XLNnpKn7JUVfbQo316yc1a+buvd/MaHdroggggAACCCCAAAIIIIAAAggggED+BUgA5/8a0AMEEEAAAQQQQAABBPIq8Oqr7tM3bSr17++uC1O0fn3p5JPdI3rpJam01F1HFAEEEEAAAQQQQAABBBBAAAEEEAiiQFEQO0WfEEAAAQQQQAABBMoEVq9ere3btydwNG7cWA0bNkyIE0CgOgL/+pd7L0uKWnK0JhSb6fzcc4kjXbXKf3ZwYmsiCCCAAAIIIIAAAgjUTIH169dry5YtCYNv0KCBmjRpkhAngAACCCCQXQESwNn15egIIIAAAggggEBaAr/4xS/00UcfJRzjmmuu0fnnn58QJ4BAdQTWrnXvVROWf46OfOBAeV9MSd99F43s/F1SsnObLQQQQAABBBBAAAEEEEgUGDFihIqLixMqzjzzTI0cOTIhTgABBBBAILsCLAGdXV+OjgACCCCAAAIIIIBAQQp4k8xlSdGaUryJCTrxRPdoHRMZ3A2JIoAAAggggAACCCCAAAIIIIAAAgEQIAEcgItAFxBAAAEEEEAAAQQQCJrACSfIW2Y8aL3Kbn/8ZjzzDuDsunN0BBBAAAEEEEAAAQQQQAABBBDIrAAJ4Mx6cjQEEEAAAQQQQAABBEIh4JcMDcXgfAZhSe9GjXwqCSOAAAIIIIAAAggggAACCCCAAAIFIkACuEAuFN1EAAEEEEAAAQQQQCBXAjbz15KhNa1Y8nfQIP9RMxPY34YaBBBAAAEEEEAAAQQQQAABBBAIjgAJ4OBcC3qCAAIIIIAAAggggEBOBGbMkD7+2P9U9u7fJk3868NcU9nM53XrpFtukebODbMAY0MAAQQQQAABBBBAAAEEEEAAgUIXIAFc6FeQ/iOAAAIIIIAAAgggkKTAuHFS9+7SQQdJM2f67zRkiH9d2GtOOkmqX989ym3bpBtvlHr2lCxR/PXX7nZEEUAAAQQQQAABBBBAAAEEEEAAgXwKkADOpz7nRgABBBBAAAEEEEAgBwK2dPGVV0qnnlr5zN9oVzp0iG7VvN9ffCHVqlX1uMeMKUukz5tXdVtaIIAAAggggAACCCCAAAIIIIAAArkUIAGcS23OhQACCCCAAAIIIIBAHgRs1uof/5j8ic84Q1qwIPn2YWm5cqVkM4A3b05uRF99Vdbe9qMggAACCCCAAAIIIIAAAggggAACQREgARyUK0E/EEAAAQQQQAABBBDIgsCsWdKtt6Z2YEtoXnhhavuEofVNN0mLFqU2Emtv+1EQQAABBBBAAAEEEEAAAQQQQACBoAiQAA7KlaAfCCCAAAIIIIAAAghkQWDkSMmWgE61vPaa9Pbbqe5VuO3XrZMee6x6/bf91q6t3r7shQACCCCAAAIIIIAAAggggAACCGRagARwpkU5HgIIIIAAAggggAACARHYuFGaOLH6nRk7tvr7FtqekyZJJSXV67XtN3ly9fZlLwQQQAABBBBAAAEEEEAAAQQQQCDTAiSAMy3K8RBAAAEEEEAAAQQQCIjA/PnSpk3V78ycOdXft9D2NKt0Srr7p3Nu9kUAAQQQQAABBBBAAAEEEEAAAQTiBUgAx2uwjQACCCCAAAIIIIBAiATsXb7plHT3T+fcud53/fr0zpju/umdnb0RQAABBBBAAAEEEEAAAQQQQACBnQIkgHdasIUAAggggAACCCCAQKgEWrdObzjp7p/e2XO7d/v26Z0v3f3TOzt7I4AAAggggAACCCCAAAIIIIAAAjsFSADvtGALAQQQQAABBBBAAIFQCXTpIjVsWP0h9epV/X0Lbc8+fdLrcbr7p3d29kYAAQQQQAABBBBAAAEEEEAAAQR2CpAA3mnBFgIIIIAAAggggAACoRKw5O8JJ1R/SKefXv19C23P3r0lS5hXp9h+tj8FAQQQQAABBBBAAAEEEEAAAQQQCIIACeAgXAX6gAACCCCAAAIIIIBAlgRGjJBqV+Nf/f37S4cemqVOBfCwtWpJf/hD9Tpm+9n+FAQQQAABBBBAAAEEEEAAAQQQQCAIAtX4KigI3aYPCCCAAAIIIIAAAgggkIzAD38o3XRTMi13tmnTRnrssZ2fa8qWzXi+6KLURnvssVJNmimdmg6tEUAAAQQQQAABBBBAAAEEEEAgHwIkgPOhzjkRQAABBBBAAAEEEMihgM0CPvfc5E64227SpEnSnnsm1z5srR56SLryyuRHtWJF8m1piQACCCCAAAIIIIAAAggggAACCORCgARwLpQ5BwIIIIAAAggggAACeRao6v22detKv/61NHOmtP/+ee5sHk9fp450zz3Sv/8tHX+8ZJ8rKx98IBUXV9aCOgQQQAABBBBAAAEEEEAAAQQQQCC3AiSAc+vN2RBAAAEEEEAAAQQQyIvAxIn+p73jDslmsv75z1Lbtv7talLNEUdIU6ZI33wj7bJL5SMfNaryemoRQAABBBBAAAEEEEAAAQQQQACBXAqQAM6lNudCAAEEEEAAAQQQQCAPAuvWSe+953/ifv2qTnL67x3umpYtJZsdbSX6u+zTzv/917+k//5352e2EEAAAQQQQAABBBBAAAEEEEAAgXwKkADOpz7nRgABBBBAAAEEEEAgBwI2+3fbthycKOSnaNjQf4A2i5qCAAIIIIAAAggggAACCCCAAAIIBEGgKAidoA8IIIAAAggggAACboFGjRqpcePGCZV1/aYiJrQkgIBU2fLP+CQvYP+3s6Wh33orcZ8XX5QWLJD23juxjggCCCCAAAIIIIAAAmEXqF+/vvPetUGDBmEfOuNDAAEEAilAAjiQl4VOIYAAAggggAACZQLPP/88FAikLWDvsqVkRmD4cHcCePt26a67pD/9KTPn4SgIIIAAAggggAACCBSSwJ133in7oSCAAAIIBEOAJaCDcR3oBQIIIIAAAggggAACWRGYPVtasiQrh66RBz3pJKlbN/fQR4+WVqxw1xFFAAEEEEAAAQQQQAABBBBAAAEEciVAAjhX0pwHAQQQQAABBBBAAIE8CBQXu09aq5Y7TrRyAXOzWcCusmmT9MADrhpiCCCAAAIIIIAAAggggAACCCCAQO4ESADnzpozIYAAAggggAACCCCQcwG/9/+2aZPzroTmhEOHSrvu6h6OLQG9caO7jigCCCCAAAIIIIAAAggggAACCCCQCwESwLlQ5hwIIIAAAggggAACCORBYMMGado094n9Epju1kTjBerVk664Ij6yc3vlSunxx3d+ZgsBBBBAAAEEEEAAAQQQQAABBBDItQAJ4FyLcz4EEEAAAQQQQAABBHIkMHmyVFLiPlmHDu440eQELrxQatbM3fa++6Rt29x1RBFAAAEEEEAAAQQQQAABBBBAAIFsC5AAzrYwx0cAAQQQQAABBBBAIE8Cfss/t20rNW+ep06F5LS77CJddJF7MIsWSX//u7uOKAIIIIAAAggggAACCCCAAAIIIJBtARLA2Rbm+AgggAACCCCAAAII5ElgyhT3iU84QapVy11HNHmB3/5WsuWgXeXuu11RYggggAACCCCAAAIIIIAAAggggED2BUgAZ9+YMyCAAAIIIIAAAgggkHOBDz+UFi50n3bgQHecaGoCtoz2Oee493n/fWnSJHcdUQQQQAABBBBAAAEEEEAAAQQQQCCbAiSAs6nLsRFAAAEEEEAAAQQQyJOA3/LPtb07gOOOy1OnQnjaq67yn009alQIB8yQEEAAAQQQQAABBBBAAAEEEEAg8AIkgAN/ieggAggggAACCCCAAAKpCxQXu/c55BCpdWt3HdHUBbp3l04+2b3f669LM2e664gigAACCCCAAAIIIIAAAggggAAC2RIgAZwtWY6LAAIIIIAAAggggECeBDZtkt56y33yQYPccaLVFxg+3H/fO+/0r6MGAQQQQAABBBBAAAEEEEAAAQQQyIYACeBsqHJMBBBAAAEEEEAAAQTyKGAzTzdvdneA9/+6XdKJHn64dNhh7iOMGeP/Lmb3HkQRQAABBBBAAAEEEEAAAQQQQACB9ARIAKfnx94IIIAAAggggAACCAROwG/555YtpQMPDFx3Q9Gha65xD2P7dunuu911RBFAAAEEEEAAAQQQQAABBBBAAIFsCJAAzoYqx0QAAQQQQAABBBBAII8CU6a4T27LP9fmDsCNk2b0lFOkrl3dB3nmGenbb911RBFAAAEEEEAAAQQQQAABBBBAAIFMC/D1T6ZFOR4CCCCAAAIIIIAAAnkU+Owz6dNP3R1g+We3SyaitWpJV1/tPtLGjdKDD7rriCKAAAIIIIAAAggggAACCCCAAAKZFiABnGlRjocAAggggAACCCCAQB4F/JZ/tgTl8cfnsWM14NTnnCO1b+8e6COPSJYIpiCAAAIIIIAAAggggAACCCCAAALZFiABnG1hjo8AAggggAACCCCAQA4FJk50n8ze/euXnHTvQTRVgfr1pcsvd+9lS0A/+aS7jigCCCCAAAIIIIAAAggggAACCCCQSQESwJnU5FgIIIAAAggggAACCORRoKREmjrV3QGWf3a7ZDp60UVS06buo/7xj9L27e46oggggAACCCCAAAIIIIAAAggggECmBEgAZ0qS4yCAAAIIIIAAAgggkGeBf/1L2rDB3YlBg9zxoETPPPNMDYrr5H333afmzZsHpXtJ92OXXaRf/9rdfOFC6f/+z11HFAEEEEAAAQQQQAABBBBAAAEEEMiUAAngTElyHAQQQAABBBBAAAEE8izgt/xzs2bSwQfnuXM16PS//a1Ut657wHff7Y4TRQABBBBAAAEEEEAAAQQQQAABBDIlUJSpA3EcBBBAAAEEEEAAAQQQyK9AcbH7/AMGSEUB/5d/hw4d1LVr13IDaOq3lnK5VsH7sPvu0tCh0jPPJPZt5kxpyhSpX7/EumQj3bp107p168o1P/nkk/Xoo4+Wi/EBAQQQQAABBBBAAAEEEEAAAQRqpkDAvwaqmReFUSOAAAIIIIAAAgggkKrAkiXSxx+794pbWdndIABRW/I5TOWqq6TRo6XS0sRRjRqVXgJ42bJlWrt2bbkDr169utxnPiCAAAIIIIAAAggggAACCCCAQM0VYAnomnvtGTkCCCCAAAIIIIBAiATGj/cfTDqzTf2PSk1lAvvuK514orvFq69K77/vrksm2sxb07tevXqxpg0bNlSjRo1in9lAAAEEEEAAAQQQQAABBBBAAIGaLUACuGZff0aPAAIIIIAAAgEX2L59u1w/pa5phQEfC93LroDf8s+9ekm2JDEl9wLDh/uf8847/euqqvnyyy916aWXxpqNGTPGW276mdhnNhBAAAEEEEAAAQQQyLXAjh07nPeuFqcggAACCORegARw7s05IwIIIIAAAgggkLTAkCFD1KNHj4Sfp59+Oulj0DD8Atu2SW+84R5nISz/7O554UePPFI65BD3OP7xD2nRIncdUQQQQAABBBBAAAEECk3gyiuvTLhvtXvZG2+8sdCGQn8RQACBUAiQAA7FZWQQCCCAAAIIIIAAAjVZ4N//ltatcwsMHOiOE82NwDXXuM/jTe7XPfe464gigAACCCCAAAIIIIAAAggggAAC6QgUpbMz++ZW4IMPPogs9da0aVONr+wlb3HdsiUji731AF/1XjS2ePFibdy4Ud27d1fPnj112GGHqVu3bnGt2UQAAQQQQAABBBAoRIGJE929btxY6tPHXUc0NwKnnir94AfSp58mnu+pp6SbbpJatUqsI4JAIQtw71rIV4++I4AAAggggAACCCCAQBgESAAXyFVcv369br/9dqXyvr8VK1Zo2LBhWrhwYblRTp8+XfYzevRoXXvttRowYEC5ej4ggAACCCCAAAIIFJaAXwK4Xz+pXr3CGkvYelvbW3PpqqukCy9MHJn3bKYeekjesniJdUQQKFQB7l0L9crRbwQQQAABBBBAAAEEEAiTAEtAF8DV3LBhg+wdCjaDN9li+1x99dWx5O8+++yj8847z/vy6Sodf/zx3heB9WSzg2+99VaNHTs22cPSDgEEEEAAAQQQQCBgAsuWSd5CMc7C8s9OlpwHf/YzqV0792kffljatMldRxSBQhPg3rXQrhj9RQABBBBAAAEEEEAAgbAKMAM44Fd27ty5uuOOO/TFF1+k1NOnn35an3/+eWSfY445RiNGjFDdunUjn0/11qGbM2eOhg8fLrtBf+CBB3TUUUepdevWKZ2DxggggAACCCCAAAL5F5gwQd4qMe5+9O/vjhPNrUD9+tJvfytdd13ieb1Fe2RLQV96aWIdEQQKSYB710K6WvQVAQQQQAABBBBAAAEEwi7ADOCAXuFN3jSA+++/X5dccknKyd9169Zp3LhxkZG1bdu2XPI3OtxevXpF4vbZZgJH20fr+Y0AAggggAACCCBQGAJ+yz937y516lQYY6gJvbz4YqlJE/dI773X/k3uriOKQNAFuHcN+hWifwgggAACCCCAAAIIIFATBUgAB/Cqz5s3L7Jc8wsvvBB552+tWrV07rnnqmXLlkn19o033vCWkStbR27w4MGxmb8Vdz788MPVsWPHSNgSwNu2bavYhM8IIIAAAggggAACARbYsUN67TV3B1n+2e2Sr2jz5u73AFt/FiyQvH/6UxAoOAHuXQvuktFhBBBAAAEEEEAAAQQQqCECJIADeKHfeecdff3115GetWrVSvfdd58uvPBC1alTJxKzhHBlxZbeipaDDz44uun83bt370h85cqVmjlzprMNQQQQQAABBBBAAIFgCkybJq1a5e7boEHuONH8CVx+ubyHM93nv+sud5woAkEW4N41yFeHviGAAAIIIIAAAggggEBNFiABHNCr36xZM11wwQV67rnndMABB6TUS3sK24olijt37lzpvvvss0+sfoFNPaAggAACCCCAAAIIFIxAcbG7qw0bSkce6a4jmj8BW3znrLPc5//vf/1nc7v3IIpAMAS4dw3GdaAXCCCAAAIIIIAAAggggEC8QFH8B7aDIXDsscdq6NChatSoUbU69NVXX0X2a9OmjYqKKr/E7dq1i53jyy+/jG1XtrF582Zt2LDBt4nV2WzlHd6ahKWlpb7tqEAAAQQQQAABBBBIT8Dv/b/ePyfVoEF6x2bv7AhcfbX07LPuY48aJR13nLuOKAJBFAj6vevWrVu1bt06Xzqrs3tXu2+1+1cKAggggAACCCCAAAIIIBAWgcqzg2EZZYGNo6pZu5UNx979G71xbdGiRWVNI3XN7WVk35fKboyjbez3mDFjdMstt8SHErZtDKu89Qi//fbbhDoCCCCAAAIIIIAAAukL2D+zZs1yH4f3/7pdghDdbz/phBOkCRMSezN5sjR7tvTDHybWEUEgiAJBv3d97733dP7551dKZ2P47rvvtHTp0krbUYkAAggggAACCCCAAAIIFJJA7ULqLH2tWiB+Zm79+vWr3CG+jc3spSCAAAIIIIAAAggUhoAt/+w3YY0EcLCv4fDh/v2zWcAUBGqCAPeuNeEqM0YEEEAAAQQQQAABBBDIlwAJ4HzJZ+m8GzdujB25Xr16sW2/jfg2W7Zs8WtGHAEEEEAAAQQQQCBgAn7LP++zj2Q/lOAKHH20dPDB7v793/9JX3zhriOKQJgEuHcN09VkLAgggAACCCCAAAIIIBA0AZaADtoVSbM/8e/83b59e5VH27ZtW6xNfDI4FnRstG7dWj179nTUlIVWrFihRYsWKf7Yvo2pQAABBBBAAAEEEEhZwHtdpV591b0bs3/dLkGL2izg009P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AAIIIIAAAggggAACCCCAAAJpC/AO4LQJOQACCCCAAAIIIIAAAm6BbdukqVPddRZt2dJ7E3DZq4D9G1GDAAIIIIAAAggggAACCCCAAAIIIIBACgLMAE4Bi6YIIIAAAggggAACCCQjUFIi3XWX1L69dPzx/nv07y/V5l/k/kDUIIAAAggggAACCCCAAAIIIIAAAgikLMAM4JTJ2AEBBBBAAAEEEEAAAX+Bb76RBg+Wpk3zbxOtWbhQ2rxZatAgGuE3AlULjB8/Xp999lms4TvvvKPWrVvroIMOisXYQAABBBBAAAEEEEAAAQQQQACBmivAfIOae+0ZOQIIIIAAAggggECGBSyZe9JJySV/7dT/+Y/0y19muBMcLvQCQ4cO1SuvvBIb56233urNOPemnFMQQAABBBBAAAEEEEAAAQQQQAABT4AEMH8MEEAAAQQQQAABBBDIkMDIkdL06akd7Pnnpb//PbV9aI0AAggggAACCCCAAAIIIIAAAggggICfAEtA+8kQRwABBBBAAAEEEEAgBYE1a6T77kthh7imN94o/eQncQE2EahE4PLLL/eWDvemm8eVXr16xX1iEwEEEEAAAQQQQAABBBBAAAEEarIACeCafPUZOwIIIIAAAggggEDGBCZMkDZurN7hPvlEmjtX2m+/6u3PXjVL4KabbqpZA2a0CCCAAAIIIIAAAggggAACCCCQkgBLQKfERWMEEEAAAQQQQAABBNwC77/vjicbnTUr2Za0QwABBBBAAAEEEEAAAQQQQAABBBBAwF+AGcD+NqGo2b59u4qLi/Xqq69q8eLF3qyUjerevbt69uypww47TN26dQvFOBkEAggggAACCCCQb4EVK9Lrwbffprc/eyOAAAKFLMC9ayFfPfqOAAIIIIAAAghkR+Dee+/VGnvfUlzZZ5999LOf/SwuwiYCCLgESAC7VEISW+F9Czls2DAtXLiw3IimT58u+xk9erSuvfZaDRgwoFx9UD94uWzNni0vkS3V9uau77GHZK86q1Urvz1ev16esbRundSunbT33lKdOvntE2dHAAEEEEAAgdwLtGqV3jlbtkxvf/ZGIJ8C73tT4O2h02j58ssv9cILL+i0007z/u3OwlNRF367BcJ272qjtGX9Fy2Stm6VdttN2n9/qW5d9/hzFbVXh3/+ubRqldS6ddm9a/36uTo750EAAQQQ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EEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEmggo+Pmf/yTe+dtkQOjL+eeb+VYL+OGHzWbMCGWywM5f/zrxLuSuXQuckNERKIMAAeAyIDILBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBzAL9+pnde69Zq1aZh6vviBH+vA947lyzG27IntcoQ44/3myFFaKMyTgIlF+AAHD5TZkjAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBASGDXXc3uvNOsZctQz5RO1Zq9+eaUnlX4On262S23mB1zjNnGG5t17pxourqURc+cWcrUTItAaQI5fmalzZipEUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEHACe+1ldtttZkOHmn3/vevb+Kn37R51lFmbNmYHHGA2b17jsC++aOwupWvJErPXXjN79tnE3zPPmH32WSlzzDytlkNCIC4BAsBxybNcBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQKCZCRx4oNl335kdeaSZAr6pSYHhgw82O/FEs9mzG4eqSeXrrzfTp4LEuWoSN05l9tVXZs89Z6ZAr4K+L7yQWH54nEp0r7lmJebKPBGIJkAAOJoTYyGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCJRB4IgjzL791uyEEzLPTEHgcPDXjTVlitlxx5nddFPincLdurkhjZ/vv99Yu1cB3zfeyFzbuHGK8nd16mS26ablny9zRCCqAAHgqFKMhwACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggUBaB4cPNFiww+81vCp/dq6+abb+92fPPm33ySWNTzgr4fvxx4fMr9xTDhpktv3y555p5fkuXLm1owvozW7RoUXKEWbNm2QorrGDt2rVL9qOjeQkQAG5e25u1RQABBBBAAIEaExgxYoS99957abk+9NBD7Wc/+1laf3oggAACCCCAAAIIIIAAAgggUG2BK6+8sqGJ3YY2dlPSzjvvbL/61a9S+vIVgUaBhtseQRD4ggsa+0Xt+uADM9UAXrYs6hSFj9e+faIJ6UKmXG01s7PPLmSK0sadPn269erVq8lMNtlkE7viiivslFNOadKfL81HgABw89nWrCkCCCCAAAII1KDAtGnT7K233krL+Zw5c9L60QMBBBBAAAEEEEAA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AggggAACCEQV2GuvvZKvstQ0Z599tk2cONGuuuqqqLNgPASarQAB4Gay6Vu3bm29e/cO/prJKrOaCCCAAAIIIIAAAggggAACNSbAtWuNbTCyiwACCCCAAAIIVFDg9ddft1mzZiWXMH36dHv77beT3+lAAIHsAjQBnd2GIQgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEBNCVADuKY2F5lFAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBOpfYOrUqfb99983WdGWLQlrNQHhCwJZBPilZIGhNwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQDwC7dq1i2fBLBWBOhCgCeg62IisAgIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIICABAsDsBwgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggECdCBAArpMNyWoggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACBIDZBxBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIE6ESAAXCcbktVAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEECACzDyCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJ1IkAAuE42JKuBAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIEABmH0AAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQTqRIAAcJ1sSFYDAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQaAkBAggggAACCCCAgL8CI0aMsPnz56dlcIMNNkjrRw8EEEAAAQQQQAABBBBAAAEE4hA4/PDDbdCgQWmL7tatW1o/eiCAAAIIVF6AAHDljVkCAggggAACCCBQtEDfvn2LnpYJEUAAAQQQQAABBBBAAAEEEKiGwOabb16NxbAMBBBAAIGIAjQBHRGK0RBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAHfBQgA+76FyB8CCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCAQUYAAcEQoRkMAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQR8FyAA7PsWIn8IIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBARAECwBGhGA0BBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBDwXYAAsO9biPwhgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACEQUIAEeEYjQEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEDAdwECwL5vIfKHAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIRBQgABwRitEQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAAB3wUIAPu+hcgfAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggEFGAAHBEKEZDAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEfBcgAOz7FiJ/CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQEQBAsARoRgNAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQ8F2AALDvW4j8IYAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAhEFCABHhGI0BBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAwHcBAsC+byHyhwACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCEQUIAAcEYrREEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAd8FCAD7voXIHwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIBBRgABwRChGQwABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBHwXIADs+xYifwgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEBEAQLAEaEYDQEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEPBdgACw71uI/CGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIRBQgAR4RiNAQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQMB3gZa+Z5D8IYAAAggggAACzVngqquuso8//jiNYPDgwdavX7+0/vRAAAEEEEAAAQQQQAABBBBAoNoCY8aMsUmTJqUtdtttt7UhQ4ak9acHAggggEBlBQgAV9aXuSOAAAIIIIAAAiUJPPHEE/bWW2+lzaNXr14EgNNU6IEAAggggAACCCCAAAIIIBCHwEsvvWRjx45NW3SrVq0IAKep0AMBBBCovABNQFfemCUggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACVREgAFwVZhaCAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIVF6AAHDljVkCAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggUBUBAsBVYWYhCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQOUFCABX3pglIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAlURIABcFWYWggACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCFRegABw5Y1ZAgIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIFAVAQLAVWFmIQgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEDlBQgAV96YJSCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJVESAAXBVmFoIAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAghUXoAAcOWNWQICCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCBQFQECd5ik4QAAQABJREFUwFVhZiEIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBA5QUIAFfemCUggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACVREgAFwVZhaCAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIVF6AAHDljVkCAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggUBUBAsBVYWYhCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQOUFCABX3pglIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAlURIABcFWYWggACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCFRegABw5Y1ZAgIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIFAVAQLAVWFmIQgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEDlBQgAV96YJSCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJVEWhZlaWwkGYt8Mgjj9g333zTrA1YeQQQQAABBIoVmDp1qs2dOzdt8rvvvtumTZuW1p8eCCCAQL0KbL755nbggQfW6+qxXh4IvPLKK3bGGWd4kBOygAACCCCAQO0JPPPMMzZnzpy0jI8fP96WLFmS1p8eCCCAQL0KdOvWzYYPHx776rX4oSHFngsyUFcCo0aNsqOPPrqu1omVQQABBBBAAAEEEEAAgXgFDj74YBszZky8mWDpdSUwYcIEGzBgQF2tEyuDAAIIIIAAAggggAAC8QpsvfXW9uKLL8abiYalUwM49k1QfxnYfvvt7frrr7dHH33U7rnnnrKuYOfOna1FixbBPL///nv7/PPPyzr/Yma28sor20orrZScdN68ebE/1bbCCitYx44dk3lauHChzZ8/P/k9ro5OnTrZ8ssvn1z87Nmzk91xdbRt29b059JXX31lixYtcl9j+ZSRrFxavHixffnll+5rbJ/ap7RvuaSnOuN+hki/Pf0GXfr666/tu+++c19j+dQxSscql5YuXWpffPGF+xrbZ/v27a1Vq1bJ5atG6bJly5Lf4+hQfpQvl7799lsvWozo0qWLy5JR1iQp0jp8LWtWW201W265xrecUNakbbqgR2pZo7JPZWDcadVVV7WWLRsvUShrMm8RyprMLvRFoFCBH//4x8G166RJk+yGG24odPKc4/t4PGvTpo21a9cumW8fzp1VZqvsdkk1xHRNHXfq0KGDrbjiisls6N6DzgvjTK1bt7ZVVlklmYUFCxaY/uJO4XNnXV9karmm2nmUk7xc8uE+jfYn7Vcu6bpVv8G4U/jcWdf3mWpvVjuPOk7peOWSD/dpdH6q47pLvp47+3DtQ1nj9pL8n5Q1+Y3cGLVQ1ujen+4Bxpkoa6Lr+1jWRM999DEb765En4YxEcgp0KtXL9Ofmn0udwBYBaMLAOuA6kMAWCc24QCG1jvuZk10Yhq+sNDJsg8BYF2EuQCiLix8ODHVRWHYShdhPgSAw3nSRb0PAWAFWsMX0b4EEMNWCpb7EAAO50kPYPgQANaDDuEbftqn4g4Ap56Y6qaaD68M0DHd97JGN4soazKfjuhY5VtZo4dVwscFX8saHwLAOk6Fyxqd68X9sJEeVglvP8qazL899dX2Cz9Y50NZkz23DEHA7Ec/+pEde+yxdv/995c9AKzyKPzwnQ9BldTjma57fDt3Vn58CACn3hRUnuIOAKeeO+tc3ocAcGoZ6UMAWPdpwsFy3Q/x7dxZx2AfAsC69nEP6msf9+FYlXrurAeFfbtPo23nw7lzprLGt3NnH8oaPWwUPlZR1mQ/C0wta3T/nbIms1emsibuALDuhYT3dcqazNtOfVPLGu3ncZc12XNb/BCagC7ejinzCLz99tv2+uuv5xmrsMEXXHBBMmChC7LTTz+9sBlUYOz77rvPXn311eScDz30UOvRo0fyexwd77//vt18883JRW+22WY2ZMiQ5Pe4Oq644oomgejzzz8/rqwkl/vYY4/Z008/nfwuJ3nFmXTBdc011ySzoP1J+1XcSbUiPvnkk2Q2RowY0eQmb3JAFTuee+45e/jhh5NL3G233axv377J73F06OJ05MiRyUWvvvrqdtxxxyW/x9Xx97//3d55553k4o8//njr2rVr8nscHVOmTDG9x9al7bbbznbddVf3NbZPHZvcDT5dUJ922mmx5cUt+N5777XXXnvNfbXDDjvM1ltvveT3ODree+89Gz16dHLRejfnPvvsk/weV8fll1+evJmmQP55550XV1aSy1WrKHoflkv77ruvbbrppu5rLJ96COvaa69NLnv99de3YcOGJb/H1ZFa1vzmN79pUgMkjnylljWDBg2yPn36xJGV5DJTyxoXxEqOEFPHbbfdZu+++25y6XrnUfhp/eSAIjvWWWcd23bbbYucmskQyC4wa9Yse+qpp7KPUMQQnc+HAylnnXVWk4BwEbMseRJd9+j6x6U999zTfvrTn7qvsXwqMKfrRJfWWmstL14ppXMcneu49H//939Nav+5/tX81LmgzgldUvPlO+64o/say6fOmcPX9Wo16qSTToolL+GF6hpD1xouHXnkkda9e3f3NZZPXYvpmsylrbbayn72s5+5r7F9XnrppckHQRQ4OOecc2LLi1vw2LFj7fnnn3df7cADD7QNN9ww+T2ODpUTf/nLX5KLVsWXgw46KPk9ro7Usubss89u0npBHPlKLWsGDx5sago1zpRa1ujdnEcddVScWQqWrXu3uofrkg9lje5x6163Sz6UNXrgSTEBl3wpa+666y574403XLaCfUr7Vpxp2rRpTV6Zo9+efoNxp3BZo4cMdKyKOz300EP2wgsvJLNR7rJGrXvusssuyfnH1dEyrgWz3PoXcDWBy7mmF110UTIArNoh+mHGnXRREQ4A6wIs7gCU2pcPB4B1s8wHq+uuu65JANiHPH388cdNAsC6ofvzn/881t1q+vTpTQLAuqnrg9U///nPJgFgBXrCTSDFgaYns8IBYAWg4rZSbadwAFhP3sWdJ22b8ePHNwkA77777qZmD+NMCq6GA8C6qPfBKnxhoScCfciTmqYMB4BV1sQdgNJNmXAAeN111/XCSkFNV5tCAWAftp/KmnAAWOcJcV+EKUgXDgCvscYaXljdeeedaWVN+LUWcRyz1JJDuKz5yU9+EruVaqKFyxoZ+bCvq6wJB4D32GMP08MFJAR8F6jEMVAPRIQDwPvtt1/sD0/qBng4AKwAVNzHjs8++6xJAFjN0cadJ+2vCkCFA8Aqt+MOIOqGaTgAvMkmm8RupZvy4QCwWoHwYfvpnkg4ALzzzjvbFltsEeuhSO8cDweAVT76YPXHP/4xGQBWa3I+5GnGjBlNAsB61VzcN9GnTp3aJACsh1V8sLr11lvTyhrVSowzqWY0ZU20LaAAVDgArIdC4g4g6kGQcADYh7JGtWrD92lUKcyH35+Ch+EAsMoaXSvGmVTWjBkzJpkFX8qaK6+80ruyRtet4QCwD2VNcsOVsWO5Ms6LWSGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIxChAADhGfBaNAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIlFOAAHA5NZkXAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggEKMAAeAY8Vk0AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggUE4BAsDl1GReCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQIwCBIBjxGfRCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQDkFWvzQkMo5Q+aFQCUF7r//fvv++++DRbRq1cp23333Si4u0rxfe+01mzlzZnLcvn37WpcuXZLf4+j4/PPP7Zlnnkkuulu3brblllsmv8fVMW7cOPvuu++Si997772T3XF1vPnmmzZt2rTk4uUkrzjT119/bePHj09mQfuT9qu405NPPmlffvllMht77LGHrbjiisnvcXRMnz7dpkyZklz0JptsYuuvv37yexwdixcvtoceeii56Pbt29uOO+6Y/B5Xx3PPPWefffZZcvEDBw60VVZZJfk9jo6PPvrIXn755eSie/bsaRtvvHHye1wd9913n7nTo9atW9ugQYPiykpyua+++qp98MEHye/bbbedde7cOfk9jo7UsqZ79+62xRZbxJGVJst8+OGHbeHChUG/Fi1a2F577dVkeBxfUsuarbbaytZaa604spJcJmVNkiJvR2pZ07t3b+vRo0fe6So5QmpZ06FDBxswYEAlFxlp3hMnTrTZs2cnx91pp51s5ZVXTn6nA4HmJKDzeR1rXRo8eLC1bNnSfY3l85133rGpU6cml73ZZpvZuuuum/weR4fKbJXdLq266qrWr18/9zW2z2effdbmzJmTXP4uu+xibdu2TX6Po0PngjondKlXr16mvziTzpl17uySjGQVd9I1hq41XNI+pX0rzqRrMV2TuaTfnn6DcSddu+q8QknHKB2r4k66xtf5l0vbbLON/ehHP3JfY/nUvRDdE3FJ+VG+4k4+ljW6x6brH5coa5xE+qfu3eq62iXKGifR9JOypqlHrm++ljUPPvigLVmyJMi6L2XN5MmTbcaMGUlOH8qaZGbK2EEAuIyYzAoBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBCIU4AmoOPUZ9kIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAGQUIAJcRk1khgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACcQoQAI5Tn2UjgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACZRQgAFxGTGaFAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIxClAADhOfZaNAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIlFGAAHAZMZkVAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggEKcAAeA49Vk2AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggUEYBAsBlxGRWCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQJwCLeNcOMtGoBYFlixZYi1btrQWLVoUlP2lS5faF198EUzTtm1b01810+eff24ff/yxfffdd9azZ0/r1KlTNRefdVnK0+zZs4Phm2++ecGuWWdc4IAffvjBPv30U5sxY4a9//77tvLKK9vaa69t66yzjrVv377AuZV39GXLlgXbTlbK149+9KOybr9FixbZ008/HWRa22C11VYr7wpUcW76nb333nuBV+vWre3HP/6xrbrqqhXPgfafjz76yL766iv75ptv7OuvvzZtt3bt2iX/1lhjDWvTpk3F85K6AG3fzz77zBYuXBj8KV86/ihv+ox7/07NbxzfFy9ebCuuuGLBi9b2lq9Sly5dCp6+FieoRSvlWb/PTz75xDp37mzrrbdeUI7H7e9L+ScHnRvo2KkyUPt1t27drHv37sHn8ssvHyuVjqfKm/Ko39maa65Z1O8100rUU/mn9dN5ps5h9KlzmHXXXbcq+7q2kX5frvz79ttvTWWwK2s6dOhgKgNJCCBQfQGuXctrTtmd35Nr1/xG4THiKLu5dg1vgdrrrtXjehzSXLuWT13H9smTJwcz7Nq1a6zn9s312lX4b731VnC/U/fxtt566/Jt4BjmFEf5p9VsjteuLRoK/h9i2MYsEoGaEvjyyy/tb3/7W1DY6caabmr16tXLfvKTn9iBBx5orVq1yrs+//3vf+2oo44KxjviiCPsl7/8Zd5pooygExoFLnVzbZVVVkmbZPr06faXv/zFnnvuuSbDFABW3g844IDYgq7K0NVXX2133XVXkLcnnniibDcqFey6//77g/n26NHDttxyy6A7079p06bZJZdcYu+++27aYN34/tnPfhZsr44dO6YNL6XHK6+8EgReldczzjgjbVbadvKZMmWK6SQ/nDbccEMbPHhw8LfccqU15jBnzhwbMmRIMHvtFxdeeKH17t07vLjYu1VAazt98MEHQYB6iy22SHuI4uGHH7abb77ZZs2a1SS/q6++up166qm27bbbNulfji9PPvmkab999dVXTceJXEnbSfvipptuarvssottvPHGuUYvadibb75p9957r02aNCm4KZ+rqNexY6ONNrJNNtnE9thjj7I+XFDSSlR4Ym23Bx980HRs1rZTsEu/q5///OfBNoqy+N/85jc2ceLE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NChpdj/9lltucfPmzfPP58yZEzVPuUaKVooxmSH5K1dJX04jf19aJD1TtUqKm+kIIIAAAggggAAC1RFQPR7ks098fhWtFGOi1rNdU6r5i1dN35IO4PSGLAEBBBBAAAEEEEgl8Kc//cn99Kc/zZ29awvbsWOHe+211/zf9OnT3Y033hjd4ZoqmD/PvHPnTjdp0iQ3Y8aMgsV9+OGHzv5mzpzpRo8e7a644oqozumChaR4oWilGBP5iy8y8pdtq/joaYkAAggggAACCCCQVoBj53hBrOKs+Owa52StFK0UYzIrxfXP4mrugXsAN7c474cAAggggAACCOQJrF+/3o0fP76g87dnz56uY8eOuVarVq1yY8eOdQ8++GBuXFM/mTp1akHnr52RfNBBB+Xetra21j3++OPOzjRes2ZNbnxTPlG0UozJckD+4iqR/MU5WStVq/j/AS0RQAABBBBAAAEE0gioHg/y2Sc+q4pWijFR69muKdX8xatWryVnAFfPkiUhgAACCCCAAAKNFrjrrrvcrl27/HwjR45048aNc927d3fWwbpkyRL3y1/+0s2fP9+//tWvfuXsviXhMs+NfrPIGd5991331FNP+dYWy/e+9z03dOhQ16pVK7d9+3b37LPPut/+9rf+LOWVK1f6mO3/0atXr8h3qKyZopViTOQvvr7IX7at4qOnJQIIIIAAAggggEBaAY6d4wWxirPis2uck7VStFKMyawU1z+LqyUGOoBbQp33bCBw9tln+y+2G0yowgi7b2ElwyOPPOIefvjhSmZNnOfiiy923/zmNxPbFWuAVTGVhuPIX0OTUmMUrRRjMj/Wv1JV1HC8opViTBs3bnQvvPCCBxwxYoSbMGFCDrOmpsbfa/fOO+90Tz75pLNH6xS2s4Dt7OBK9yO5Nyjz5JlnnnF79+51rVu3dnfccYc74ogjcq27dOnibD/2l3/5l+766693dt/hDRs2uGuvvdZ3Vu+77765ttV8omilGJOZk7+4yiN/cU7WStUq/n9ASwSqJ6B4nKoYk4krHnthFb8ukL9sW5G/bOdPcVulejzIZ5/4Wle0UoyJWs92TanmL161ui3pAK6uJ0urUGDr1q1N1gFcYUhu9+7dzuJqiuGzzz6reLFYxdGRvzgna6VopRiTWbH+mULcoGilGNOKFStyoFdddVXuef0n5513nrOO1Ztv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" width="960" /></p>
<div class="sourceCode" id="cb129"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb129-1"><a href="#cb129-1" aria-hidden="true" tabindex="-1"></a><span class="co">#保存</span></span>
<span id="cb129-2"><a href="#cb129-2" aria-hidden="true" tabindex="-1"></a><span class="fu">ggsave</span>(<span class="at">file =</span> <span class="st">&quot;output/graph_unemploy_diff2_on_2nd_safetynet_WLS.pdf&quot;</span>, <span class="at">plot =</span> graph, </span>
<span id="cb129-3"><a href="#cb129-3" aria-hidden="true" tabindex="-1"></a>       <span class="at">dpi =</span> dpi_num, <span class="at">width =</span> width_num, <span class="at">height =</span> height_num)  </span></code></pre></div>
<pre><code>## Warning: Removed 2 rows containing missing values (geom_point).</code></pre>
<pre><code>## Warning: Removed 2 rows containing missing values (geom_point).

## Warning: Removed 2 rows containing missing values (geom_point).

## Warning: Removed 2 rows containing missing values (geom_point).</code></pre>
<pre><code>## Warning: Removed 12 rows containing missing values (geom_point).

## Warning: Removed 12 rows containing missing values (geom_point).</code></pre>
</div>
<div id="robustness-check" class="section level3" number="13.2.2">
<h3><span class="header-section-number">13.2.2</span> Robustness check</h3>
<div class="sourceCode" id="cb133"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb133-1"><a href="#cb133-1" aria-hidden="true" tabindex="-1"></a><span class="co"># 2021Feb12Waki</span></span>
<span id="cb133-2"><a href="#cb133-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb133-3"><a href="#cb133-3" aria-hidden="true" tabindex="-1"></a>ymin <span class="ot">&lt;-</span> <span class="sc">-</span> <span class="dv">55</span></span>
<span id="cb133-4"><a href="#cb133-4" aria-hidden="true" tabindex="-1"></a>ymax <span class="ot">&lt;-</span> <span class="dv">175</span></span>
<span id="cb133-5"><a href="#cb133-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb133-6"><a href="#cb133-6" aria-hidden="true" tabindex="-1"></a>ymin_num <span class="ot">&lt;-</span> <span class="sc">-</span> <span class="dv">50</span></span>
<span id="cb133-7"><a href="#cb133-7" aria-hidden="true" tabindex="-1"></a>ymax_num  <span class="ot">&lt;-</span> <span class="dv">175</span></span>
<span id="cb133-8"><a href="#cb133-8" aria-hidden="true" tabindex="-1"></a>interval <span class="ot">&lt;-</span> <span class="dv">25</span></span>
<span id="cb133-9"><a href="#cb133-9" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb133-10"><a href="#cb133-10" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_bind　 <span class="ot">&lt;-</span> graph_koguchi_number_bind <span class="sc">+</span> </span>
<span id="cb133-11"><a href="#cb133-11" aria-hidden="true" tabindex="-1"></a>  <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;(a) Emergency Small Amount Funds&quot;</span>)　<span class="sc">+</span> </span>
<span id="cb133-12"><a href="#cb133-12" aria-hidden="true" tabindex="-1"></a>  <span class="fu">scale_y_continuous</span>(<span class="at">limit =</span> <span class="fu">c</span>(ymin, ymax), <span class="at">breaks=</span><span class="fu">seq</span>(ymin_num, ymax_num, interval))</span>
<span id="cb133-13"><a href="#cb133-13" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb133-14"><a href="#cb133-14" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_bind_covar　 <span class="ot">&lt;-</span> graph_koguchi_number_bind_covar<span class="sc">+</span> </span>
<span id="cb133-15"><a href="#cb133-15" aria-hidden="true" tabindex="-1"></a>  <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;(b) Emergency Small Amount Funds, with covariates&quot;</span>) <span class="sc">+</span> </span>
<span id="cb133-16"><a href="#cb133-16" aria-hidden="true" tabindex="-1"></a>  <span class="fu">scale_y_continuous</span>(<span class="at">limit =</span> <span class="fu">c</span>(ymin, ymax), <span class="at">breaks=</span><span class="fu">seq</span>(ymin_num, ymax_num, interval))</span>
<span id="cb133-17"><a href="#cb133-17" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb133-18"><a href="#cb133-18" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_bind　 <span class="ot">&lt;-</span> graph_sogo_number_bind<span class="sc">+</span> </span>
<span id="cb133-19"><a href="#cb133-19" aria-hidden="true" tabindex="-1"></a>  <span class="fu">labs</span>(<span class="at">title =</span>  <span class="st">&quot;(c) General Support Funds&quot;</span>) <span class="sc">+</span> </span>
<span id="cb133-20"><a href="#cb133-20" aria-hidden="true" tabindex="-1"></a>  <span class="fu">scale_y_continuous</span>(<span class="at">limit =</span> <span class="fu">c</span>(ymin, ymax), <span class="at">breaks=</span><span class="fu">seq</span>(ymin_num, ymax_num, interval))</span>
<span id="cb133-21"><a href="#cb133-21" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb133-22"><a href="#cb133-22" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_bind_covar　 <span class="ot">&lt;-</span> graph_sogo_number_bind_covar<span class="sc">+</span> </span>
<span id="cb133-23"><a href="#cb133-23" aria-hidden="true" tabindex="-1"></a>  <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;(d) General Support Funds, with covariates&quot;</span>) <span class="sc">+</span> </span>
<span id="cb133-24"><a href="#cb133-24" aria-hidden="true" tabindex="-1"></a>  <span class="fu">scale_y_continuous</span>(<span class="at">limit =</span> <span class="fu">c</span>(ymin, ymax), <span class="at">breaks=</span><span class="fu">seq</span>(ymin_num, ymax_num, interval))</span>
<span id="cb133-25"><a href="#cb133-25" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb133-26"><a href="#cb133-26" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_bind　 <span class="ot">&lt;-</span> graph_jukyo_number_bind<span class="sc">+</span> </span>
<span id="cb133-27"><a href="#cb133-27" aria-hidden="true" tabindex="-1"></a>  <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;(e) Housing Security Benefit&quot;</span>) <span class="sc">+</span> </span>
<span id="cb133-28"><a href="#cb133-28" aria-hidden="true" tabindex="-1"></a>  <span class="fu">scale_y_continuous</span>(<span class="at">limit =</span> <span class="fu">c</span>(<span class="sc">-</span><span class="dv">15</span>, <span class="dv">50</span>), <span class="at">breaks=</span><span class="fu">seq</span>(<span class="sc">-</span><span class="dv">10</span>, <span class="dv">50</span>, <span class="dv">10</span>))</span>
<span id="cb133-29"><a href="#cb133-29" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb133-30"><a href="#cb133-30" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_bind_covar　 <span class="ot">&lt;-</span> 　graph_jukyo_number_bind_covar<span class="sc">+</span> </span>
<span id="cb133-31"><a href="#cb133-31" aria-hidden="true" tabindex="-1"></a>  <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;(f) Housing Security Benefit, with covariates&quot;</span>) <span class="sc">+</span> </span>
<span id="cb133-32"><a href="#cb133-32" aria-hidden="true" tabindex="-1"></a>  <span class="fu">scale_y_continuous</span>(<span class="at">limit =</span> <span class="fu">c</span>(<span class="sc">-</span><span class="dv">15</span>, <span class="dv">50</span>), <span class="at">breaks=</span><span class="fu">seq</span>(<span class="sc">-</span><span class="dv">10</span>, <span class="dv">50</span>, <span class="dv">10</span>))</span>
<span id="cb133-33"><a href="#cb133-33" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb133-34"><a href="#cb133-34" aria-hidden="true" tabindex="-1"></a>graph_2nd_tier_diff_models <span class="ot">&lt;-</span>  (graph_koguchi_number_bind <span class="sc">+</span> graph_koguchi_number_bind_covar)<span class="sc">/</span></span>
<span id="cb133-35"><a href="#cb133-35" aria-hidden="true" tabindex="-1"></a>                                (graph_sogo_number_bind <span class="sc">+</span> graph_sogo_number_bind_covar)<span class="sc">/</span></span>
<span id="cb133-36"><a href="#cb133-36" aria-hidden="true" tabindex="-1"></a>                                (graph_jukyo_number_bind <span class="sc">+</span> graph_jukyo_number_bind_covar)<span class="sc">/</span>legend_model_types <span class="sc">+</span> </span>
<span id="cb133-37"><a href="#cb133-37" aria-hidden="true" tabindex="-1"></a><span class="fu">plot_layout</span>(<span class="at">heights =</span> <span class="fu">c</span>(<span class="dv">2</span>,<span class="dv">2</span>,<span class="dv">2</span>, <span class="fl">0.5</span>))  <span class="co">#0.3から0.5へ変更 2021Sep7 Waki</span></span>
<span id="cb133-38"><a href="#cb133-38" aria-hidden="true" tabindex="-1"></a> </span>
<span id="cb133-39"><a href="#cb133-39" aria-hidden="true" tabindex="-1"></a> </span>
<span id="cb133-40"><a href="#cb133-40" aria-hidden="true" tabindex="-1"></a>graph_2nd_tier_diff_models</span></code></pre></div>
<pre><code>## Warning: Removed 4 rows containing missing values (geom_point).

## Warning: Removed 4 rows containing missing values (geom_point).

## Warning: Removed 4 rows containing missing values (geom_point).

## Warning: Removed 4 rows containing missing values (geom_point).</code></pre>
<pre><code>## Warning: Removed 24 rows containing missing values (geom_point).

## Warning: Removed 24 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,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BBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBAgAYhzAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBOhYgAaiODx6bjgACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAACUCcAwgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII1LEACUB1fPDYdAQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEESADiHEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoI4FSACq44PHpiOAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggQAIQ5wACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAnUsQAJQHR88Nh0BBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAARKAOAcQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEKhjARKA6vjgsekIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCJAAxDmAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEAdC5AAVMcHj01HAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQIAEIM4BBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQTqWIAEoDo+eGw6AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIkAHEOIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCBQxwIkANXxwWPTEUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBAgAYhzAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBOhYgAaiODx6bjgACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAACUCcAwgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII1LEACUB1fPDYdAQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEESADiHEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoI4FWtXxtrPpDSIwefJk07dvXzN9+nSz2GKLmXHjxpn27dvXZO9yuZzZaKONzFtvvWVatGhhHn30UbPhhhtWfVu+++47M3LkyKqup1u3bqnsS1V3goUj0MwEPvroI/PII4+YUaNGmS+++MJ8/fXXZurUqWaRRRYxSyyxhPNv1VVXNf369XM+361a8bXelFPknnvuMb/++qu3iC222MIsvfTSXr+/I8m0/vkq3T1s2DDz22+/BRY7YMAA06ZNm8AwehCohYDOTZ2j1Sr9+/c3bdu2rdbiG2q5d911l/n999+9fdpuu+1Mp06dvH46EEAAAQQQSCoQJ5bzwAMPmGnTpnmLVrxlhRVW8Por0VGrOI62nVhOJY4gy0Cg8QSI5aR7TOPGZ+JOV+2tJ45TbWGW31QBYjlNFazc/MRyKmdZzpL0zFb3+25Zb731zEorreT2Nvnvww8/bH744QdvORtssIHp3r27108HAk0RaGF/KOeasgDmRaCpAnpwrUQblauuusqccMIJTV1kk+Z/7LHHjB6KqKyyyipm7NixZoEFFmjSMkvN/Prrr5s+ffqUmqxJ4/fdd19zxx13NGkZzIwAAukIKChxzjnnmHfeeSf2Cjt06GD23ntvc+655/JQN7ZacEIlofpv6nWTv/322wcn+l9fkmkjF1CBga+99ppZd91185Z0yy23mAMPPDBvOAMQKCTw6quvmhVXXNF07Nix0CRlDf/xxx+Nrk3VKpMmTTJdunSp1uIbarlKCpw5c6a3T6NHjzYKLFAQQAABBBAoVyBOLEcB8g8//NBbxb/+9S+zzz77eP2V6qhFHEfbTiynUkeQ5SDQGALEcmpzHOPGZ+JOV829II5TTd3mtexqxXGkSCwnO+cSsZzaHou11lrLeT7sbsWQIUPMEUcc4fYW/Bv389mrV6/A85+bb77ZHHTQQQWXywgEkgjQBFgSLaatuIASUtzkn5VXXtkcffTRFV9H0gVuu+22XgLQhAkTzPnnn590EUyPAAIIlCWg4Pimm25qdt9998DNX5yFKVv8+uuvN7qW6i+l8QX0oyCq3HDDDVGDGYZAnoAS3vTDVYkg/jdO8iZkAAIIIIAAAggg4BPIWiyHOI7v4NCJAAKpCxDLSZ28bldIHKduD11mNpw4TmYOBRuCQJ4An888EgbUUIAEoBriN/dVqymbgQMHegyXXXaZad26tddfy47LL7/czDfffM4mXHLJJYEsz1puF+tGAIHGFZgyZYpRk1PPP/98k3by+++/N8ccc4wZNGhQk5bDzNkWmDFjhlE1sFFFbxmMGTMmahTDEHAEVAHoTTfd5CQM3njjjWbOnDnIIIAAAggggAACsQSyGsshjhPr8DERAghUWIBYToVBG3hxxHEa+OCmsGvEcVJAZhUIlCnA57NMOGarqkCrqi6dhSNQROC4444zU6dOdab4wx/+YHbaaaciU6c7SlWvqfmUoUOHmtmzZ5tDDjnEvPLKK6ZVq/Q+Muuss45ZZpllKrbja6+9dsWWxYIQQKCyAj///LPRW6uTJ0/OW/Amm2xi9txzT7Pssss6/5Zaainz008/mYkTJzr/XnzxRaOq9HWt8pcLLrjAdO7c2UkG8g+nuzEE7rvvPqdKXndv9L319ttvu71GVZIqsYOCQJSAriGHHXZYYFSLFi0C/dXqUfOqqqmsEkVVIVMQQAABBBBAIF2BrMZyshDH0ZEglpPu+cjaEKilALGcWurX37qJ49TfMcvSFtcyjiMHYjlZOhvYlqwJ1PrzmTUPticbAullM2Rjf9mKjAiMGDHC3H333d7WnHPOOV53VjrOPPNMc9tttzkP1VWTwhVXXGFOO+201DbvlFNOMXvssUdq62NFCCBQO4F//OMfeU1+9enTx1x77bVm/fXXz9swJfa4D9APPfRQ89e//tWcffbZRlXx+8tJJ51k+vfvb5Q0RGksgXC10dddd53ZfPPNvZ288847jd6Cbt++vTeMDgSyILDvvvsa3WNREEAAAQQQQKD+BLIey6l1HEdHlFhO/Z3XbDEC5QoQyylXrnnORxyneR73RtlrYjmNciTZjyQCRx11lPnqq6+8WfS8hoJAvQjQBFi9HKkG2k5Vh+ZPpFHtP2r2JmtlhRVWMAcccIC3WRdeeKH54YcfvH46EEAAgUoIzJo1y1x55ZWBRen6M3LkyMjkn8CE/+vR9Lfffnte0uCvv/6at+yo+RlWXwIff/yxefbZZ72N7tmzp9lss81M7969vWG//PKLc054A+hAAAEEEEAAAQQQQKAJAvUQyyGO04QDzKwIIJBIgFhOIq5mPzFxnGZ/CgCAAAJ1KHD44YebQYMGef9U0ycFgXoRIAGoXo5UA23ngw8+aN5//31vj4499livO2sdqtraLdOmTTN6s4OCAAIIVFLg1VdfNZ9//nlgkTfccINZfPHFA8Pi9KjZwh49egQm1XXrt99+Cwyjp74FbrnlFqMHMG7ZbrvtnM4BAwa4g5y/agaMggACCCCAAAIIIIBAJQTqJZZDHKcSR5tlIIBAKQFiOaWEGO8XII7j16AbAQQQQAABBKotQAJQtYVZfp6AmiRxS9u2bc0OO+zg9mbu7xprrGFWWmklb7uuueYaozc8KAgggEClBD744IPAolq1amVUM1o5pV27dubggw8OzKrkRX/SZWAkPXUnMGfOHKd5Sv+GuwlA++yzj3+wefvtt80LL7wQGEYPAggggAACCCCAAALlCNRLLIc4TjlHl3kQQCCpALGcpGLNd3riOM332LPnCCCAAAII1EqgVa1WzHqbp8Arr7xiRo0a5e18v379jB5Yl1t0A/3WW2+ZyZMnm++++858//33ZsEFFzSLLrqo6dSpk1GbjAsvvHC5i3fm+9Of/mQuuugip1u1dNx1112BpsGatPA6mXn27Nnm9ddfNxMnTjRff/21WWKJJUyXLl3MWmut5XgX242ff/7Zm3fmzJlm5ZVXNquuuqpZcskli80We9yUKVPM+PHjnbY4leiw2GKLmc6dO5t1113XLLTQQrGXE2dC7ftzzz1npk6d6iSGKbCo8yxO0fn50UcfGVX5+u233zr7r+QyLaPSJU0Td9t1DD755BPz2WefGSWw6BisueaaznniTtPUv5MmTTKffvqpcx6qeaNu3bqZFVdc0Sy33HLOOpu6/FrNr+uXv+j6peTIcsvWW28daGZRy1EiSK9evcpaZFY//2lc/8sCq/JMTzzxhPOd565G58omm2zi9Hbv3t1suOGGZvTo0e5oo9qkyk0o8xYS0ZHV80KbqhqvFIx95513zJdffulcp3VN6tu3b5PuOSIYUh+UxrU29Z1q8BVW+5jpnkLnu+4xdB+07LLLmtVWW82oCZRKlh9//NFZx4cffujcc3Xo0MH5bKnWOX0fUxBAAAEEGlug0rEcV0u/63Tvqt+wM2bMMEsttZTzW1vfZU0pxHHm6mX5nj2tuEW9xHF0xNIy8X+2qn2vqnURy/GLF+4mllO5WH5h5dqMIY5T2r2R4zja+zSutaWVmSKJQLWPWRqxHOI4SY54dqfVcx293P3FF184z2KXWWYZ5xlrpeN+SQWqfX/XCN8LaT+/Cv/uURMSFARSE7BBGLVZ4v0bNmxYWet+4IEHcjvvvHPOPij3luVfrts933zz5ewDv9w///nPnK25p6x1jRkzJrCO1VdfvazlFJvp//7v/wLr0Pb/5z//KTZLRcdtvvnmOfvF4fzr2bOnt2ybvJM788wzczYIl7d92kab/JI744wzcvZmwpvH7bDJQjnbRmbOJuFEzmu/oHKPPPKIO3miv9OnT89dcsklud69e0cuW9s2//zz57bZZpvco48+mmjZNnHIs7DJOd68Ngks16ZNm8D6WrdunTvggANyEyZM8KYLdzz//PO5P/7xj7kWLVoE5nXPUZvAkrviiityNjDnzHrHHXd469cxufrqq8OLjOyvpon//ND2usUmdOUuvPDCnE1kitw37ePaa6+du/XWW3P2y86dLdFfm9SXszVv5WwAuOA6dBz233//nE2uily2Tb7KLb/88gFXLbOcYmtaCSzn9ttvL2cxgXlsE115+2YDf4FpkvTI+ogjjsidfPLJOZ23uv4VO0f9x7cePv/VvP537NgxcCxGjhxZkD7JtAUXUsaI3XffPbCNtha9wFKuv/76wHhdC+3NX2CaOD31dl7oeqTzfZVVVsnZJMSAgXu9lcVWW22VGzFiRBwCZxpde9zvR/19+umnY8+rCW1SVmB++4Cr4Px+82pca23ihrctSy+9dJ6RTZLyxmtf77777oLbGnfEDz/8kLeeCy64IO7sZU+X1nGr9jErBvDss8/mbCJ9wfsLm/iX0z2IW2yCfOBYFDsX3Xnsg9icvqP0uXI/R1F/dU9nm1vJ2R//7qz8RQABBBBoMIFyYzm6p/F/d/zrX/9yZGwA2/ktbV8IC4x3p7XJpbnzzz8/ZwO/ZUmmEcfRhhHLSXZ4qhW3qNc4jvSqZaJl1/JelViOjkCyQixn7vOCcmL5ceMzcadLduRKT00cJ9qoWnEcrS2tmIDWVc1rbS3iONqnWsRyGuWYya9YqXYsp17jOLZW+0BMcuDAgcUYvXH67gyfO8cff7w3vljH77//nrMvTAfWG36+pOeL/riwnt25pRKfTz2LcX//6O/NN9/sLF7Psm3tq0Wfu6233nrOcx8ZpFUqcX9XbFsr+b1gK7QIHDsdRw1LWvRssWvXroFl+eOtUcur5vOrJL97SACKOjoMq4qALp66iXcvaLbWgpwSTJIUBVdsrTPeMtxlxflra57J2UzJJKvzplXwyb+Oxx57zBtXiY5aB438XzT2jW5nl3QxtzVJBPbbb+DvtjW95GwtCx7Fgw8+WDI5y51/r7328pJfvAUU6XjooYdy9u32WNvlrkNf1P7tK7L4nK1Nxlu2renImVSBR3dZUX+vu+66vEXq3FbiT9T0UcOUKKPPyJAhQwLzxHlQWm0T//mhz63Km2++WTQpJ7yPG2ywQU5flknKPffck7M1eAU8wsv19ysR6JhjjolM9ttxxx0Dy1HyWNLy3nvvBZah9X3zzTdJF5M3/VNPPRVYrvbpwAMPzJuuWgP8xzfLn/80rv9JgkFJpq3UsbNvhzjJjf7z3n2I4q7D1lCWN83FF1/sjo79t17OC+2QbqqVaON3KdWta5J+qJUqTT3O4aQL/dAvVPzm1bjWKhGwlIt/vJI3m1pqETTSNqd13Kp9zKL8k9xfKOnNvUaEz8VSCUAvv/xyztbWmOicWWCBBXLnnntu1GYzDAEEEECgjgWaEsuJSgDSi0ClXuZy70mU0GprYi5Lr9pxHG0UsZy5LzLFOUDVjFvUYxxHZtU00fJrca+q9RLLkUL1i//4EsuJ9zJXU38nlnNUieNEq1UzjqM1NvVYh38/1yqWU4s4jvxqEctplGMmv6iSRiynnuM4egnevf/XX93bxSnhpP8k8you5l+nnh+Hi557+qfRszu3VOLz6f8u13qUAGRbvMnZFlQC6/VvQ7h72223LevlX3c/4v6t5P1d1Dqr8b0Q/i365z//OWrVRYeFn9fqpVq3MofwjGk8v0r0uye8gfQjUC2Byy67LHDRGjBgQKJVPfnkkwVrkwlf9Ar168OpLNik5bTTTgts+yGHHJJ0EUWnz1rQSLVFhL/cCpm6w20TNM4+Dh8+vODb6O604b9///vfi/q4I1VrS8uWLQPHIrysQv2qAebdd991F1Xwb/gCqhunYuvUwzU9cPcX9SsDt9C2FBquTFLVqOQfXyoBKA0T/42IHkrbpkZytqm1wHb6t7lQt0ziZCQr+/r0009PvHx3vQcddJD/cDjdOi/d8e7fcePG5U1XbIBqw3Ln1d9dd9212OSxx+mt1qiktlNOOSVnq8SPvZxyJ/QfXwWNsvj5T+v6n+THZpJpyz024fnCP4bat28feY6E39BW7Rz6XCUp9XBe6LOjewn/5zJJt65jtlnHoixNPc5NCRpV+lpbiR+mRbEiRtYiaKTNSOu4+T8naXw/KnisNz2SnOea9rzzzsspOcc/X7EEIJ17iy++eGB6/7yluk866aSIs4FBCCCAAAL1KtCUWE446LrffvvlfSeV+l5RQuozzzyTmK/acRxtELGcbMRy6i2Oo3OHWM682uHdawCxHJ0Z8Yv/twixnOwmABHHCZ7TacRxtMa0YgJal/+zWOm4QC3iONqnWsRyGuWYyS9c0ojl1HscRy8cuPcD7t84z/LUSog7vf+vPEqVv/zlL4F59SwmXMLPSKudAHT00UeX9dxt4403Thz7D+9rof5qPKvzr6ua3wt6tuo/L1T7faHkHf82+bvDlWToN2ZUSev5VaLfPVEbyjAEqiGw/fbbBz5sSZq40gNp/Zjxf1jVbdtHzqkZMVXdpbfCVI30Sy+9lLvzzjudZj7C06tfTRkkLa+99lpg3XqYWsmSpaCRmrnq0aOHt7+6cT3yyCNzd911l9OUxG233eY07RXVpJUuqP4qvNU0lBJadKzVFJcujmpWK3xc9BC2VO0wamopPJ/6d9lll5zGjR071lmGql9Tk1rhC7OmVRMWpZqC819AdeOpJt/861WtL/6mwPr37x84FZTgstFGGwXm0fx6kDZo0KCcmhTSufriiy8626km6vzLD7sWSwBKy8T/Q0YJT/7zQ9srg0svvdTZNzUZo/OlULNgcWrPCgeYXZ8999wzd9NNN+XeeOMN54eIPveqCjHq7dG//e1vgeOi464m69xl6W/UTV1gJl+PjqsStPzzJ2lGyLeoyE7th3/Zbrf2TZnJo0aNqtpNnP/4ZvHzn+b1P8mPzSTTRh70MgaGr5+FklH1VrV7Drl/izVnFrUpWT8vtM0KELv75/7VNUnVxuq7XteIzz77LPfwww/nzj777MhagtRM5TvvvBNF4Axr6nEuNwGoGtdaBXB0DdU/PXBwzdy/akLNHa+/5daa6MesRdBI60/ruPk/J9U4Zn5LdUfdX6iZ1nPOOSen71fdB+sBqb4D/dvmHmP/X92HRBUlnoYf1uq7SN+ZmueTTz5xavBUU696C1Kfw3Cze/ocllOtbtT2MAwBBBBAoPYCTYnlhL9T/N9F+u5UFf16WUPfYePHj3fu4TbbbLO8+xT9Do9Te6Nfq9pxHK2LWE42Yjn1FMfReUMsh1iOzoOmFv/9PrGc7CYAEccJnulpxHG0xrRiAlqX/7NY6bhALeI42qdaxHIa5ZjJL1yqHctplDhO+DncVVddFabM699yyy3zfjfo90acZ8BqIcL/2yQqTlYsAagSn0//9cO/LepWpQRqYeSWW25xXmBVgoniuWp2MDyt+pVwWo1SjWd1/u2s5vfC5MmT8yp3+O9//+tffdFu/f4MWysxM1zSfH6V6HdPeEPpR6AaAnr4rods/g/Lp59+GntVhx12WGBePVhQ4k+p8vjjjweSNbR+VeWWtCYEZQWGH+LpAUilSpaCRv5jpCSar776KnI39UC1UM04Gn7iiSc6bZmHZ1YihZJ2/OtR97XXXhue1OvXRdWfWKTp1TyXqp0rVHTM9LAqvJ7BgwcXmsUZ7r+A+ufVl7HOJ53L2oePPvood9ZZZznD/AtUkyn++dStt/X1ZRNVtLwTTjghbx53GWp+LKqkaVLoRkQ3QMVqEDj00EPz9ktNcRUryvZW0pm7//qrWk6KHWvVuBRuGlDXiPA1JuysWnfiXgv0QNW/TUro0rGrVNH5usMOOwTW4V+furVO1eyiJufUBJvOw0qUQsc3K5//NK//SX5sJpm2EsdJD9PD58QLL7wQuWidT0oK8E9f6rMXXlDWzwslqPj3T91KJlXyU6Hy448/RtYYpGpVp0+fHjlbU49z+N4hbrXR/n2rxrU2Kpij62+lS9R6iiW2Vmr9aR23Qp+Tahyzf//733nnvO4vlOQWVVS9tBJ0/eeSvzsqsKHl6F7HP53ejvmkxD2vrkXhGoZ22223qM1iGAIIIIBAnQk0NZZTKAFIv+f1kkNU0W+0U089NfB9pO8m1R6UpFQ7jqNtIZaTjVhOvcRxdM4Qy5HC3EIsx5Uo72+h3yLEcozzgmKUalN/J0Yts9gw4jhBnbTiOFprU491FmM5UfGVasRx5Be1rmrHchrxmMkyjVhOo8Rx9KzNH4/q16+fCAsWxXLDsSh3/j322KPgfBoxadKkwLoU+4p6TlQsAci/gqjPTJzPZ6Hvcj3D1ssRhcoNN9wQ2H7td58+fQpNXvbwaj6r00al8b2gJtLc80J/991339geeuHSP+8GG2wQOW+az6+S/O4xkVvLQAQqLKCHDP4PysILLxz74bUyWMM3XapVJm7RW9D+das7Kkuv1PLCCQZDhw4tNUvs8VFBIwXK1GRSJf6VqnUl6otmtdVWK/hA1N2xqEQe+aoGmGJFD6X8tchoHr35V6iEH2DpTfO4b5b/85//DBz/RRZZpGibmFEXUCUfKeGnVPnpp59yqp7cf77ph/fMmTNLzZorlElbKAEoTZOo80MP2sNNn4V3UtX3bbXVVgEPJYepBqRCRVnNfj+96Vmsdg53OUr20Tb551VtFv6iWqL849X91FNP+Scp2B3ORC6nvdCCC//fiGnTphXM4A5vt/pVI4OSOpQN//bbb5dafMHxUcc3K5//tK//SX5sJpm2IH6CEaoC1H8e6DuiWAknQM4333w51dgRt2T5vNA1tUuXLgEPJcjpx1ucEraRa6G3JJp6nMP3L0kTgKp1rS33h2kcX/80UevR9UXJIeX+81e361+Xvzut4xb1OanGMVNQY5lllgmc8/phX6pZWyWKHnzwwYH53OtIoQSgcHOXV155pZ+2YHe42mV9R0UFTwougBEIIIAAApkUaEosRzsUlQCk78o4920XXnhh4DtM97NxmgLwQ1YzjqP1EMvJRiynXuI4OmeI5UhhXiGWQyxn3tkwrytpLD/u77+4083bkqZ1EceZ55dmHEdrbeqxzmIsJyq+EifBYN5RiN8Vta5qx3Ia8ZilFctplDjOq6++Grj310vixZ6rqSYXN8alv3oh3O3XywbFXp6+/vrrvWk1jxI4okotEoC6d++e+/7776M2JzBML4q7++vuv2qiqWSp5rO6tL4XVJGI30kVleiZU5yiY+Gf98Ybb8ybLe3nV0l+95AAlHe4GFANgfPOOy/wQVl//fVjr0bVQfs/ZEr++PLLL2PPH1VNl2rzSFr233//wHbsvffeSRdRcPqooJF/n5varSbRipWoB1hxqkK7//77AybaTjXV9s033xRbnTMu/ABWXyZRRccvXNOQmnJJUnS++Q0PP/zwgrNHXUB1QxCnRFXjrCbJ4hQly4S/ULTNUQlAaZtEnR9xqlHUfoerXdc+Pf3005EkOm8U1PUfqyOOOCJy2qiB4XZb9cMkXMIBYD0YLVV0s66kRf92KZmoGkU3pkpECNeC5F93oe5u3bo5b8q+9957iTYt6vhm5fOf9vU/yY/NJNMmOiARE+shf7gZzKhrg39WJc6FzxW9SRG3ZPm80PUnvG+lanfz77duzMM1JCmhKKpWr6Ye56YGjapxrZVFVDCnGoGjqPWEj13SftUuV6qkddyiPifVOGZR91sPPPBAKQZnvJJuo96IKpQAtOmmmwY+X2r6NU6ZMmWKc7+mz5baHj/ggANi3Q/GWTbTIIAAAgjUTqApsRxtdVQC0MUXXxxrh/Q7TMF7/71Cqbd5wwuuZhxH6yKWY5ymCcLu6k8zblEPcZy0TbS+tO5VieXknIeMxHJ01s0tWY3lNPV3ort/cf4SxwkqpRnH0ZqbeqyzGMuJiq9UI44jv6h1+e/HyukuFctpxGOWViynUeI4ei6y9NJLB+791exVoXLSSSd50+ol8nCySrEadMItMRSqUb4WCUClKnNwPbR/4c9iOc+93eWF/1b7/i6t7wUlGuklRb+VauYqVdTyiX8ePa9T6wLhkvY9T5LfPS3tDlAQqLrAuHHjAuuwD+YD/cV67AN7Yz+QxgaezIEHHmhszRvG1rJSbJbAuK5duxqbVBAYZm/CA/1xesLbHN6nOMuol2lsTQrGVo1WcnNXWGGFvGn22Wcf06lTp7zh4QG2GrvAIHvDGuh3e+644w5jv/zdXmNr8DE2q9nrj9NhE0MCk9mHWYFlBkaGeuwNv7E1GoWGRvfah3GBETL8wx/+EBhWqMcmtjnneKHx/uG1NrEPyo29afdvUsFue5Nk7IPHwHh78xDod3vsjZaxtQW4vca2m5zoWNuHjc66evXqZexbdcbWjmPCn3Vbk4+3fHXce++9xt4EBIaFe0aMGGFs7TzeYO2TbcPb669kh81UN7Y2LGPfgjOXXnqpWWmllWIvXp8hzWObMzLHHnussT/WYs/rnzBLn/+sXP/9PrXotj8YA8dT54l9mFF0U3Qe2OaBAtPYmuuMTTYMDIvbk6XzQtcKf9E16aijjvIPKtptb9iNTSQNTGObaTQvvfRSYFite6p1ra31fjXy+qt1zMLnvG0X3fmOi2NpE3JM+Luv2Hxt2rQJjLbJzYHv5sBIX4+tocjY5DpjE46MbRLM2CZRY90P+hZBJwIIIIBABgXCcY9wXCTpJiuWc9xxx8WaTd9JJ598cmBa2zS0sYlBgWHFesLbG96fYvPW47gs3bPXMm6RxTiOzqdammj91bxXJZZDLEfnmFuI5RhDHMc9G+b+Df+mbdQ4jva2WtfaoCh9lRSo1jELn/fViuU0ShxH8W49z/EX27yZvzfQ7R+nGHj4eaZ9CT0wvduj50X+cfbFb7Plllu6o2v6V7G1bbbZJtY2KPavZ4r+YmsO8vc2qVvnbzXv78Kfj2p9L+jZpK3MI2Dxr3/9K9Af1aN4qL/oeWP79u39g5zuWt/zFPvdQwJQ3uFiQDUEbNVjgcXamioC/cV6ll9+eecDOmjQIHPLLbcY21RSscnzxukiGP5g2rf886YrNcDWzhKYJLxPgZF13mObrYq1BzYjN286+4Zf3rCoAfpi9RfbfJa/1+vWQyR/sbX5GJvR6x9Usju8P7/++qvRw944RcddNx+lipZps3MDk9naZQL9pXr22msvY7NRS03mPFjzT5S2iZK3bK1M/k0o2K3Pn83gD4wv9Pl78MEHA9Ntt912zo+mwMAiPdouBYPfeustc9999xlbZbAJ3wDry16JRW7ReffQQw+5vZF/w1/2SjSqdlHg1taSZWxtPuaNN94wtmkVs8UWW+QlU0VthxLm/v73vxt52Jp8oiYpOiz8eSk0cRqf/6xc/wsZpDX85ptvDqxq8803NzbbOzAsqif80P+LL74wSmgrp2TlvNAPj+eeey6wC0p4CycaBiaI6DnkkEOMrVUpMCa83MDIGvRU61pbg11pNqus1jF79NFHA4b6bMe5N3FnUvJ83KKAlL/YpjKNrdHH2KYm/YMju/Wjk4IAAggg0FgC4bhHklhOlIReJFEydtxiq+MPTKrfOrZmmcCwYj3NKY4jh6zcs2tbahnLyWIcp9YmWn+17lWJ5Uh3biGWM9eBWI4xxHHcT4VxHiCH4y2NGsfRXlfrWjtPlK5KC1TrmKUVy2mkOM5OO+0UOLzh523uSNtCjLE14Li9TgJP+D7Yn+TjTWg7FOfyvzSuZ1BJ48r+5VWyW89/4hZVerHssssGJv/uu+8C/U3pqeb9Xdrx/fBz2ieeeMKEf+f6rfT88u677/YPKvhyZa3veYr97gmmhwV2hx4EKicQrvFDtbhUu3zwwQfGVnnm/Asnl/gzF+NuR3ibp06d6tQiEzcRIu563On++te/Og/83f6m/FU2aJISd/qowF3cgGA4MSNq+3ScXnnllcCoDTbYINAfp2exxRZzHpZPmjTJm1znh2qHKlXiJjS9//775ueffw4sLqqGpMAEoR49zNM8xTJ1s2ASx82/a0r2UuKBWwolAIUfLib10/JLfR51LuhGUjX/uEUZv7vttpvbG/ir7dYNgVuUfKZartIqOidU45D+nXrqqU6Ck222xUmA0PXNto1rZs+eHbk5uu7uuuuuZuTIkUYJI3FLVj7/cbc3arpKX/+j1pHWMNUGpR8m/qLa8OKUPffc0wwcODBQy9WQIUMKnu/FlpmV82LChAnGVrcZ2NQePXoE+uP0KDlRN8ivv/66N3n4+8YbUaOOal1ra7Q73mp32WUXY6vl9fqTdpRzvJOuo9zpq3HMvvrqK/PZZ58FNinp96PuZRQYiHP/qwetl19+uZqJ9tb58ssvG9WgoBr2tt9+e+etKtVwmJUAibehdCCAAAIIVFyg0rEcPWBJUpSwrZdk/L+R9du7d+/esRaTdhxHG0UsZ+7D3vC9dZqxnKzFcXReEMuRQuFCLGeeDbGcysXy56mm20UcJ+jdnOI42vNqxAWCorXpI5Yzzz3Os440YzmNFMdRAky7du2cGqYl/uabbxpZhluE8T+v0XRbbbWV8/vAP68SD/XyQPge4+GHH9YsXtG5nZWiZJIkRS76znFL+PmkO7ycv9V8Vpf298Laa6/tnB86n1T0PG3YsGEFa6ZV7UT+ZCodlyTP1+J4V+r5VbHfPSQAxTkSTNNkgXDQKFwjT7krUGKP3v7Sh0VBIP1TjRn6G35AWO463PnCgSN9eegiEKe5K3cZSf7atrqNbb8zySwVmza8r0kWHKdWCi0vzpvrSrJScxL+cuONNzoXZ/+wON3hc1DnjG4MSpW4TTAp6zhckn5ha3491BszZkx4UV5/FkyS/pDx17ijHfE/VPR2zHboZs5f4p5L/nnidKvmBH8CkLLx5arkoHC58847Aw9M+/XrZ/RGV62Kku623npr55+2QU2TKTlEGdnaJ39TZRqv5s2U8KSbm7gPjLPy+df2FytpXv+LbUe1x6kZHf9nRjVsrLfeembKlCmxVq2bU/8bJ3r7Qd+TSZMosnJehK/lQijnWqv59JnwJwAVy/zX9GmXal1r096P8Pr69OljVANTI5ZqHLOo8zL8hk8pSyX/qCmwONcN3feo6dQLL7wwb7H68a9/ShBSUEWBGSUE6V+5n8O8lTAAAQQQQCBTAuF7r6bGcuL+JvEjqDr4cAKQf3yx7vA9bLXjONoWYjnG+X1dy1hO1uI4Oi+I5UihaYVYTnG/8PWu+NTBsXHjb3FiucEl5/c1h1gOcZzgcQ/fS2hsub8fsx7H0b5VIy6g5da6EMuZdwTiPOtIM5bTSHEcxb3VlNfw4cMdcMXE1dTXfvvtN+8A2C5/ApDiU2ohQy97qhYgd9wPP/zgPGfTuesv/qan9LL3Djvs4B9d0+44rYP4N7AS38v+5fm7q/msrhbfC7qP1IvSblGlAIWaplazvf6y//77x3qe7Z9H3Wnc8xT73UMCUPiI0F9xAb3l4s+W0wqa8qPko48+MldddZXzQFPdaZWobdaFqloJQGntV9R6mhLUS9o8V9T63WH+IJ877PPPPzf619SiBKA4pVgGpX9+fw03Gq4bj3ISRUr9AMqCSVTTT36LcrpVK5BuyvwlbgDCP0+cbt1E6kGoe8x+++03p0q/o446Km/2WjT/lbcRRQbojQNlqeufHsheeeWVTjOJ/lqWlPl96aWXmhtuuKHIkuaNysrnf94Wzeuq1fV/3hak26UHFAoc+YuSupIm7/jnV7dqARo8eHB4cNH+rJwXCpyHS6nrZnh6tz/8ACp8r+JOV6u/1bjW1mpfmst6q3HMKhE0kr8ensZJANK0559/vlMdsu63dR2KKnqopyY03WY011lnHaeGvH333bes+5+odTAMAQQQQKC2ApWO5Whvyrlv03eY+7amlqEXvuKW5hTHkUlW7tlrHbfIWhxHx6bWJtqGatyrEsuRbPJCLCe5Wb3MQRwn/0g1pziO9r4a19p8VYZUUqAaxyztWE4jxXH0MrObAKTjXCoBSDVUu88k9cK/mwCkefUirD8BaOzYsYHY2GabbdakZ9VaRyVLU+7lK7kd1b6/q8X3guKVamFDzwJV1LKGnhGHE2j0fMCfJKYkq7itMWi5aT+/Kva7p6U2iIJANQVUE4+/9gKtS8kRSYs+jGqmR1VGX3fddc4HqdQyFlpoITNgwAATzsotNV/U+KhtjvoBHzVvvQ2L0zxXGvsUTgip5Dr9VeMVW27Hjh2LjfbGhWteKbdZjKgApbcS25EFE9UkUOkS9eA9XLVjpdap7VfWrr8o4zdcxo0bFwg0K9mvKc3WhJdf6X6dqxdccIGTHKlrn78oiSTqxso/jdudlc+/uz36W+vrv39b0uzWj5SJEydWfJW33XZboK3jOCvIynkRvgZqu0pdNwvt3xJLLBEY5U+cC4yoUU81rrU12pVms9pqHLPw96N+eIbP3TjASWoN0jquuOIKoyYn+/fvH+s+WrVpnXjiiU5TYapmmYIAAgggUP8ClYrl+CXKeUkm/Lsw/Nvbv/xwd3OK42jfs3rPHj4uTemPE8vJWhxH+xv+HdMUg/C8cUw0Txr3qlpP+DOrYZUoxHKKK2bl8+/fyuYYyyGO4z8D5naHr3+NHMfRHlfjWpuvypBKClTjmKUdy2mkOI5q5PE326WEHv/z5fHjxxt/axz+Vj783TpHdE32lyw3/6Xt9O+3f7vT7g6fv1p/Je/vavG9oGd7O+64Y4Ay6pmgmgbzPyNQKz3hl4gDC/lfT63ueYr97qEGoKgjxbCKCujBnC5c/jeIVfVVkqI3ltXMQLE3l/Ul161bN7PGGms47fmp2jdlcCoRQ9vg/9Bq2qQlapuLfbiSLp/p8wWigoM777xzk95qc9eiN9UrWZa37UD6i74k9XZ8VMDRP124e/LkyeFBgf56MglseIkeNb+lm229ZeqWb7/91u2s+F9l7V5yySXeckePHm0+/vhj5xriDgzX/rP33nt72eTuNE39q5sd3bDqrQD96969u1lrrbWatFhdKwcNGmROO+00bzmqNUYJTRpXbyUL1/9amQ0dOrQqq1byqm5m9TmotxJObpsxY4ZRLVfh4XH2y60FzJ22GjX6+a9p7nr4m32BLB23Dh06BMAU9ND3Y9IkIPcNl8DCSvToXvq+++5zEkjVzOR///tfJ3gSdU/sLkrfZQq4KIHo+OOPdwfzFwEEEECgDgUqEcsJ77Z+/3Tu3Dk8uGh/+A1q/WaKW6K+s4jjxNUrf7p6iVukFceRZL2YJD3qxHKI5RQ6Z5prLIc4Tv4ZEY7XZD2Ooz3IUkwgX5QhUQJZO2a1iuU0QhxH8Vk15TVq1CjnUKspKj3XWHPNNZ1+1QjkL1tuuaXXq+cqujdxX4TWMhQPc2sI8icA6RmxnjVS8gWqfX9Xq++Fgw8+OFC71J133mnOPffcAEC4+S81HVaqZPWehwSgUkeO8U0W0EN9PaTwZ2UmebCvB5XbbbddXvKPgjbKBt14442dhJ/VVlut4ANAPfz2F3/GqH94se6obVYzQpTqCajNXNXe5E/eOvLII53zoXprLW/JqpkqXJTMs8oqq4QHF+2fNGlS0fH1ZFJ0R0IjdROmfVMSjluKJfy505T7V8dlgw02MC+99JK3CH3hn3XWWU6/EhbV7y/VSJZQlZYvvPCCt5p99tnHRGUeexPE7DjiiCMCCUCaTdUP1lsCUFau/zHZKzqZ9n3EiBGBZepHnJJckxb9CL7pppsCs6lJuGqc04GVVKEnqi1kvfGqe4CkJfymbJyEitmzZ8deje49ykm6iL0CJowtUM/HLeohqWoGi3O++oGaUpuYfvjre0X/ZKmk2ccee8xJCHrjjTcCb2JpnZrmhBNOcJrbVO2dFAQQQACB+hRoaiwnaq/VjHrUd1vUtO6w8HdYkgQg4jiuYrp/6yVukVYcR/r1YpL0TCGWM1eMWE7wzGmusRziOMHzwO2rdRxH21HPMQHXsbn9rfdjFnW/m2Ysp97jOErMcROAdO4rBuUmAPmb+FKykD9WrqQePf+45557nI+MXtB/5ZVXnGfIeqngtdde8z5KahpsmWWW8frpmCdQ7fu7Wn0vKM9Az/Tdl4I//PBD8/LLLxs9c1FRv/95oZps/dOf/jQPJqIry/c8JABFHDAGVV5AH6pyE4DOPPNM8/bbbwc2yr2Ix3lzSxd5fwKJFlSJBKCmVFcZ2Bl6Cgoo4Kjg3rvvvutNM2bMmEwmAOnNsVatWgV+UFQjAaieTLyDFrND7VX6E4BK1YYUtVjVBKJal+LU8qXsXf8XutqWdROANNx/zerdu3eTa+aJ2t5VV101kACkG9JKFL2tqxtgf8A7qurGSqyrmsvIyvW/mvtYaNlKQAsnr6r5y3JrL1M1lP5medTOra6na6+9dqFNyOTwqKQH/YAuJwEo/DAp6q3cMEL4fiI83t8frs7UP47udAXq+bhFJZvr3O3bt28ixFIJxnEXpnudTTbZxPl34YUXGr2JpRrFrr32WueHsn85l19+udN8r38Y3QgggAAC9SXQlFhO1J76f59EjY8aFr5n0+/GuCW8PuI4ceWaNl29xC3SiuNIs15MyjnyxHKM83CxHLvwPMRy5opUKpYf9q12P3GcaOFax3G0VfUcE4hWbfyh9X7MshTLqcc4jl6aPuWUU7wTXQlAau1AL1r6X6befPPN854DqVZqNwFIC3jqqaecBKCRI0cGWqnZZZddvOXTkS9Qzfu7Wn0v6H58v/32M5deeqm3w4ppuglA4QoBdt99d9O2bVtv2qiOLD+/ahm1wQxDoNIC4YzXcBCm0Pp+/fVX8+9//zswWpmZuuDHSf7RjG42n38h/ubI/MOLdYe3OepLvNj8jCtPIPxGlt40z2JRVqyCR/7y+uuv+3tLduth8SeffFJyunoxKbkjoQnCgdxyEoC23357o6CuavhR96OPPhpay7zePfbYw5nWHaJzy31A+uCDD7qDnb8HHHBAoL9SPUoA8hdlGatmhaYW3QyHkw+SvCnb1PVXYv4sXf8rsT9Jl3HzzTcHZtG5Um7yjxZ0yCGHBJanHtUCVG9FiT7hG299bpIW3QeEr7fLLbdc3mJUC52/6LyMW6KuYeUkIMddH9PNE2ik46a3tsL30f5k2Xl7XbhLAXS3+uPCU+WPiRNwUxvgaupLCYW6R/cXDctaNdz+7aMbAQQQQKC0QPg7KBwXKb2E4BT+l3uCY6L7VGNQuBmv8O/G6DnnDg1vL3GcYlqVHVcPcYs04zjSrQeTcs6C8Gcy6ndQqeUSy5krRCxnrkOlYvmlzrtKjyeOEy2adhxHW9FIMYFo1cYb2mjHrFaxnEaJ4+ieqUePHt6J/uKLLxrFtvRC6/Tp073hSvYJl/AwJQCp+Jv/Uj8JQFIoXKp5f1eL7wV3T8NNet1///3uKHP33Xd73eoITxsYaXuy/vyKBKDwEaO/KgLhIEvchxBqniMc7Onfv79T00rcDX366afzJi0nASi8zeF9ylsJAyoiEA6QPPvss+bHH39MtGxV76eEMS1r6623NocddlggUzjRwopMHG5e6aqrrgrckBSZ1Rl1xRVX5NX4ETVPPZlEbX+hYeGbCiXvJDnW06ZNc6rs0xfve++95zRNopvtQqV9+/ZmwIABgdFuk0v+BCBlyas652qUzTbbLG+x559/ft6wpAN03QtXlRo+b5IuM+3ps3T9T3vflYymB+f+su+++/p7E3frXNc57y933XVXos+Yf95adevzuN566wVW/49//CNxkoGSi8O1Yu24446B5apnwQUXDAzz1wwWGBHR469xKWI0g6oo0EjHTTXa7brrrgEtBZaTJNaohrs4RbXQHXXUUUZvUOk+N5zQU2wZqhb35JNPDkyi76Go4H1gInoQQAABBDItEI57hOMiSTf+P//5T6JZwgnrCyywgOnSpUvsZYS3N7w/sRfEhIkFwr8/sxrLSSuOI8B6MUl6sInlzBUjljPXobnGcojjFL5ypB3H0ZY0UkygsGxjjWm0Y5ZWLKeR4zhqBswtSmzSvaT++cuWW27p73W6u3XrZlZYYQVvuJp4UjNNjz/+uDdM92Q9e/b0+unIF6jm/V0tvhfcPVTFARtssIHba1TbrJ7D6EUVf0tEOkc22mgjb7qojqzf85AAFHXUGFZxgaWXXjqwzPBb94GRvp7wwzmNWn311X1TFO9Uok84+15zxMmEDS85vM3hfQpPT39lBFTdn7/oDT63mSb/8GLdaoJCX/JqAufJJ580Q4cOzXubvtj8ccepujcFJN2iZjGGDBni9hb9q/26+uqri07jjqwnE3eb4/xVG5yqhs8tSv655ppr3N6Sf//73/8Gkl7UhmupJlLCWbxKAHr//ffNhAkTvPXpTTTVcFCNorZrlZTmL9qPQYMG+Qcl6lYClM5Ff9ENSzlNJPmXkXZ3lq7/ae/7LbfcElilfjQ2NQFItebstddegeXqzYk77rgjMKweesLJELpBT7IfeqvynHPOCeyqHiSFE4s0QbhK0vHjxwfmK9Sjmn7Cbw0UmrYWw8OBFW1DOfdGtdj2OOtstOMWTlZVkmu4hsxCLkrCOe+88wqNDgzXtUb3LQqoKNlN57t+zMYtHTp0CEzasmVLpznKwEB6EEAAAQTqSiAc9wjHRZLuzKhRo7xaV0vNqxpNBw8eHJjs8MMPN/p+iVvC2xven7jLYbrkAvUSt0grjiPBejFJerSJ5cwVI5Yz16G5xnKI4xS/cqQZx9GWNFpMQPtEHEcK+SXL8bc0YjmNHMcJ3zepVRh/ApBa4yjU4oG/FiDFgdWEvV4ed4s/ucgd1pS/jfj5rPb9XdrfC/7jG34mqFqA7r33Xv8kJk6LIFm/54n/qzmw6/QgkExgk002Cczw2muvOe01BgZG9ISbx9Ek48aNi5gyetAll1wS2Q7zzJkzo2coMlTVzPlLeJ/84+iunMDGG29s9t5778AC9RZg3Oa1dL5cf/31gfn79etnVlpppcCwSvSo+RgFJP1FNxf+dkn949xu1XJ18MEHB25C3HFRf+vJJGr7Cw3T5/3II48MjFYtSuGmrAIT/K9H05x00kmBUarGUTfBxYpqOejatas3iY7Vrbfe6vWrI86XfWCGhD1nnHFG3hwXXHCBOeaYY2Ltu3/mn3/+2am+Mvz5UJu5SQLl/mXWqjtL1/80DaKqjtT3TVTzVEm3S9eZcImbpBier5b92o9FF100sAlK6AnXGBiYwNej74RwE0pq0zfqehE+D5XUo4TSUkWuutfJalGyaviaEOdam9X9CW9Xox031RYXvm9RUo+S+EoVfafFbSZv3XXXNQqg+Iu+j+IW/9tUmkfLigqCxF0e0yGAAAII1F4gHPeIG8sptOV6SKMaeePUynzRRRcFfg/p/u/ss88utOjI4cRxIllSGVgvcYu04jhCrxeTpCcIsZx5YsRyjAn/FpNOrWL5845MdbuI45T2TTOOo60Jn4eNEMshjhN9nmU5/pZGLKeR4ziqpWXxxRf3DvzIkSPN6NGjvf6o2n/ckf4EIA279tpr3VHO30o3/9WIn89q39+l/b3gPwH22GMPo5el3aIEoHvuucftdWLm+++/v9dfqCP8XaPpsnTPQwJQoSPH8IoKbLrppkZNA7hF7TSqasxSRW8Sq8o2f1FCwJQpU/yD8roVTPrrX/+aVwuGO6E/29MdVuyvHor5q//StFFNhRRbRtJxMtLDzEr+q9e3+y+77DKz0ELMQ6ekAABAAElEQVQLeYRq9kK1ppSqPlw1uWy77bZ5D8hOOOEEb1mV7vjLX/4S+PJQFqiqlFYtRFFBTn0hqImNhx56KNGm1JNJkh0799xzAw/25bf++uvnff78y1TSy4EHHmj87czrC1zNmJQqeuDvT/BRTQlqis0takKs2p91JSH5t8Fdt5IU9MD34osvdmolcoeH/+rzoHNdNUgp611vnfmLqrOMc8PinycL3Vm5/qdt8cADD+Q1TbXffvtVZDP0ozBcE5S+255//vmKLD+thbRr186cfvrpgdWpus6111676L2FPt+nnnqqGThwYGBeJQEWqlkunDSl72Y1RVoskVjX52OPPTawjiz2yNFfbrvtNn9vXXc32nFT7XjhZL2PPvrIbLjhhiZcs4H/wOl75Oijj/YPKtm92267BaZRrYlxauNT8k+4JsNDDz00sCx6EEAAAQTqT6DcWE6xPdV3hn6r6W3cqKJ7tuOPP95ceumlgdG6XyvWxHNgYttTiziOtoFYzrwjUS9xi7TiOJKpF5N5RzFeF7GceU7EcrIRy593RKrfRRyntHGacRxtTaPFBFxh4jiuxNy/WY+/pRXLSSuOo/t3xV79/+K+jBk8cvH69OLiH//4R29ixcF0n+2WYglAeh7nf9HT/1y0c+fOzvMmdzmV+tuIn89q3t+l/b3gP87t27c3/hq69HzEX+u/nj0vu+yy/lkiuzP//Mq+fUNBIBWBP/3pTzn7KfH+2YfssdZ72mmnefO489ukoNywYcNyNqEisAybCJCzTX7lbEJFYB57sQ/0a5lJyiOPPBKYv3fv3klmLznt//3f/wWW7+5npf/a5KnIbbEJAoH1yzBOkXd4G9966604s+YefPDBwLz2glp0Phv8C0zvrtdma+ZshmbONlHhzD9jxozcm2++mbMBw5x96zxvHltLTNH12Le/AvPYNwSKTh810j4oCyzD3VabBJezyR65E088Mafttm2R5k1ns4UDw+zbQ1GrcIalZVLu+eFuuE04COzTTTfd5I6K/Kvz1DVz/9obgpytTSlnExVyNoHP+ezbGjxytmaDnG3qK2962xxQ5LKjBmo54WuEu177ED9qlooPs8HvnE1Wy9sPdzv0t0ePHjmbnZ6ztSTlbIAyt88+++TWWGONyPPcnc9WcZ+ziRFFt7fc45vG5z/t63/Hjh0Dx8C+WVDQLsm0BRcSMWKbbbYJbIOuY/bhRcSU5Q268sorA8vXuWKbBstbWJbPC22svv9tVaR5+yIv+3Ao98QTT+RsAmHOJsjl3nnnnZxNbsnZN27zprc/xnP2zfC8/fcPCF/DZKbrtw3s5mxtW7nPPvssZ9vcztm3SXJ+N11XdL/gfh7195lnnvEvOtDtn1fTxv0udhcS3s5S19p11lknsG1aZ69evXK21r2cTXzMlfP9526L+1fnrn//1V3se82drxJ/wx5ad6WPW9rHzCa75nnaB6E5fW/qXLQPTHO2SdGc7lv1ufbb28BJoL/Qef/FF1/kbJN4gWm1HPvmVc4mK+cmTZrkfK50jKZOneqc+7aJwpw+S/712SrXc7Ypz0ocSpaBAAIIIFBjgXJjOdrsFVdcMfD94P/dZZtrztmq1p3fd5rWvtCRu+uuu3I26Sgwj75ftBxbw4Imi12qHcfRhhDLMbksxHLqKY6j84ZYDrEcYjn6JMwtlYjlx43PxJ3O3ba4f4njzHveU+w7Ic04jo5dGjEBrSfNuEAacRztU61iOY14zORZ7VhOWnEcW6tO3j26Yq/VLHru5481ud36TWGbri+66rXWWityXlsbadH5/CPXXHPNwDLsy3n+0YHucj6fTb1+2BfnA9tX6PlvYEMT9lTzWV3a3wv+XVeM3j2fwn9txRP+SYt2p/38KsnvHlN0yxmJQAUF9PDN/0GybfzFWrqCPDarNDCvuxw96LPVbOV0odMNZvjhg6azTTLl/va3vwXm10PAJMU20ROY37YRnmT2ktMSNCodNLJZurk999wzcBzc88D9a2sJKpjIoWls2455SWPhg5PkAhqe199//vnnF91Wd5vdv7ppue666/IeFiswVKikZdLUG5HwzXuph9JKhgkHmV0n/dVDzDZt2hT0Pe644wqRFRxuq+SMXJ4+m2kVJTZtv/32kdvh3/+43UqMGjt2bMnNL/f4ppEAlPb1P0kwKMm0JQ/C/yZQslb4Ib19iyPu7LGm++abb3Lzzz9/4DxT/1dffRWYP8vnhbuh+pEZldTj/4wUu1YosfDOO+90F1fw7+233x7w8i+/WLe+B5Ss55/GtlVdcD3lmrsLTHqtVTKqf9vC3bbmGHfRZf+tVdBIG5zGcUv7mNk3nZxE0PCxcvsLne/6nIS/X2y1yQWP65gxY3K2Jr2C54euGfr8uOsN/9X9mG0ipuDyGYEAAgggUF8C5cZytJfhBKBwbMb9DtHLMm53+O+SSy4Z63dNWLXacRytj1hONmI59RTH0XlDLGdesoD/804sZ64LsZzksfy48Zm40+lzGrcQx3kw8P1dLAFIpmnFcbSuNGICWk+acYE04jjap1rFchrxmMkzjVhOGnGcWiQA6flD1Ev+q6++umiLllNOOSVwfXLvOfSSQNySJAGonM9nU68faSQAVftZXZrfC/7jruSjqAoabLPTOVvzv3/Sot1pP79K8ruHJsDsp56SjkC/fv2ctvPctaktdvvJcXsL/rUPGYx9C8xpCic8kZrgePfdd83LL7/sNAumpnDcstRSSxlbS5D5xz/+YcJtOmrdtsYYd9KSf0eNGhWYZqeddgr001N9gdatWzvnwXnnnWfUpmZUsTcEkeeUvUkw9gvY/POf/wxU/Re1jEoNU/Xkapd0+eWXL7lI+6a9UXWxxxxzTF416IX2VQutN5OSEP+boFWrVkZtM9uArVF3uNgvZ2NregoPdpqJu+iii4yt4SRvXKkBNjksbxL7MN3YzO284dUaoGbudM7Yt2CNzolyi6rHVJX5ujbat8rKXUwm5svC9T9NCDXBpPPbXyrV/Je7zE6dOuU1a6dqUG1tM+4kdfPX3pCbp556ythE34LX9qhrhXbQ1nRjbIKCsbWklNxfHQObjGlUdW+comuzmu7T90CWi62Jx2yyySYFN9HWnFRwXD2MaMTjZhN8zH333VewWa+o892+8eTMU+x+Inw8NY++h20tcuFRTr+uGb/88kvkuFVWWcWoaRc1b0pBAAEEEGgMgXJjOVF7r2ZSzz777Lx7t0LNtNvgvlH8ppzfNcRxoo5A+sPqKW6RRhxHR6CeTJKcMcRyiOW450tziuUQx3GPery/acVxtDWNGBMgjhM8z+ol/pZGLKdR4zhqJsomHgUPvO0r1vyXO3HUfPalg1jzustI8rdRP5/Vvr9L83vBfzxthQzG1s7lH+R061lBkhhqlu95SADKO7wMqJaAHjpuuOGG3uK//vprY5vz8fqLday88spG7fDZ6saMzdYvNqnRtJrONutjdt99d2daW0tQ4IG6Eo/sW/9Fl+OOtE17GPuWtNtrlFhkq6r2+ulIV2DQoEHmgw8+MEcccYSxzV4UXbkSf5QIofZBbZNzsR/eFl1ogpH2bXsnCWP48OHGNtdklFCibdYXSNeuXY3GDx061JnGNrfiLNlm1AbWoJucUqWeTErtizteX8D27VBjm5Qztrk0Y2sicEfl/VXCi21+xLz33nvm9NNPj0waypspNMDWOGR0A+gvBxxwgL83tW61P6rkHdu8mXMNU1uicUr37t3NqaeeamytP+bqq6/O2584y8jiNLW8/qfpoe+lW265JbBKfW/aZq4CwyrRc8ghh+Qt5sYbb8xLPsqbKIMDdJOtRF+d9/379zf6UV2o6Lpim2F0vv9tc0lG9wZxi31rxLzxxhtO29NRiYlajhKEdF3XPYOt/jPuoms2naxsk06Om4Im4aJrar2XRjxu+s77+9//bmyzc06Cu87rqKLvDn0nKkneNscVNUnRYTvssINzL33DDTeY5WMkM9u3opwEXNsMq7HNhRVdNiMRQAABBOpLoCmxnKg9Peecc5xk0WJJPfq9PHjwYGPfZjb6nZO0EMdJKlb96eslbpFWHEfi9WKS5OwglkMsxz1fmkMshziOe7ST/U0rjqOtarSYAHGcuedavcXftNVpxHIaNY4TVRlDnASgP/zhD3mJHIqzJ0numHvGxfu/kT+f1b6/S/N7wX80lQAUjqtGVRTgnyeqO6v3PC3sjUrpKlii9ohhCJQhcM8993hJOZpdD+3vuOOOREvS281KAPnwww+dxI6pU6caBaSUmGObOHASKxItsMTEF154YeAtfvXbJj1KzMXoNARUU4Ye4uphk23Wxnz//femc+fOplu3bt6/OAk0aWxr3HXY6s2NkuPc8vDDDxvdvMUtjWiifbdV6TkJg/rsy0dfXT169DC2mkTnb7GH/nHslHila4iuJyp6wD958mTnfIozfzWnmT17tnOeK4it8/zbb791tlNJUTrftd2yUIJZo5e0r/+N7tmI+6eaAV944QXnHkHXCl07VKOWHiKp1h/9bWrRd82TTz5pbFXfzmdS9yC2mmuz6aabFqwxpanrrPb82if3+tq+fXtjqxM1tup55+3kaq87reU34nGT3aRJk8z48eOd42eb8jO6j7DNrZitt966YkEN1bCp813r0j9163qsdel7yFY5XJHPVlrnAutBAAEEEEguUIlYTtRax40b5yS1TpkyxRmt+w+9wbzuuutGTR57GHGc2FQ1mbDR4hZNjePoIDSaiXtiEct53RDLMc5vhzRj+e75x9/6EEgjjiOJRosJEMeJrrG4Ps766sdyqhnH0UukejlfiRP6/Cp5gxIUaPTPZ7Xv79L6Xggetcr0Zen5FQlAlTmmLCWmgH7Q6gHchAkTnDn00P7zzz83cWu4iLmaik2mJAM9RFFtQiraTj300MMxCgKVFtAXWziRRTVO6K16SnUFRowYYXbddVdvJTvvvLPRMAoCCCCAAAIIIIAAAggg0NwF6imWQxynuZ+t6e4/cZx0vcNrI5YTFqEfAQQQQACB6gqoBkM1d6WWLvSiMgUBBLIpQBNg2TwuDbtVqurOX3uOsuHiNsVVC5RnnnnGS/7R+tWcFMk/tTgS9bHOSy65xGy00UZG1cRddNFFTnXlSbb8xRdfDEyuJlmSNFETmJmeRALhppcOPfTQRPMzMQIIIIAAAggggAACCCDQqAL1FMshjtOoZ2F19os4TnVc01oqsZy0pFkPAggggAACcwWeeuopp0PNHlEQQCC7AtQAlN1j07Bbpurn9OXg1qqz9tprO83bZHGH9957b3PXXXc5m7bQQgs5tf907Ngxi5vKNmVA4N///rfTrJ27KWqLVM3ExC1qz/Shhx7yJleTGi+99JLXT0d1BFSrl2r6UlNbKqp2XsPUnjAFAQQQQAABBBBAAAEEEEDAmHqJ5RDH4WxNIkAcJ4lWtqYllpOt48HWIIAAAgg0vsCwYcPMnnvu6ezotddea4499tjG32n2EIE6FaAGoDo9cPW82XqofsYZZ3i7MGbMGKfNd29ARjq++uorc//993tbc/TRRxuSfzwOOiIEVltttcDQ559/3owbNy4wrFCP3lp6+OGHA6MVuKRUV0DVdavNWjf5R2vTjSvJP9V1Z+kIIIAAAggggAACCCBQXwL1EMshjlNf51QWtpY4ThaOQvJtIJaT3Iw5EEAAAQQQaIrAZZddZvbaay9nEd26dTP77bdfUxbHvAggUGUBagCqMjCLjxaYNWuWWWONNcyECROcCTbffHPz9NNPR09co6FK+Lnhhhuctas9y3fffdcsvvjiNdoaVlsPAjqvl1pqKfPdd995m9ulSxczZMgQ069fP2+Yv+Onn34y1113nVHbqXPmzPFGrb766ua1114zCyywgDeMjqYJ6Hrzww8/mB49ephp06aZV1991ShTXYlablETf5MmTTKLLLKIO4i/CCCAAAIIIIAAAggggAACViDrsRziOJymSQWI4yQVS396Yjnpm7NGBBBAAAEEwgK77rqrGTFihFlyySWdZ7k9e/YMT0I/AghkSIAEoAwdjOa2KXr4vuGGGzrVSGvfR44cabbffvtMMLz//vumV69eXq0gagbMrdouExvIRmRWQE1+bbfddt557W6oEnp0vi+33HJm4YUXNlOmTHESTXTeKwnIX5T0o+QfzUOpnMDQoUPNoYceWnSBymQ/+eSTi07DSAQQQAABBBBAAAEEEECguQpkNZZDHKe5npFN32/iOE03rOYSiOVUU5dlI4AAAgggEE/giy++MJdeeqk5++yzTYcOHeLNxFQIIFAzARKAakbPiiXwl7/8xVx00UUOhpIdxo4da1q2rH3LdAMGDDDDhw93tkvd9957r9PNfwjEERg8eLA58cQT40yaN41qEFLC2aabbpo3jgFNE3jiiSfMNttsU3AhStB64YUXMnENKriRjEAAAQQQQAABBBBAAAEEaiyQxVgOcZwanxR1vnriONk9gMRysnts2DIEEEAAAQQQQACBbArUPtMimy5sVUoC55xzjnHb2x4/fry5/fbbU1pz4dW89NJLXvJPp06dzPXXX194YsYgECEwcOBAc//995u+fftGjI0eNN988xkFLJUER/JPtFFTh3bt2rXgItZff33z0EMPkfxTUIgRCCCAAAIIIIAAAggggMBcgazFcojjcGY2VYA4TlMFqzc/sZzq2bJkBBBAAAEEEEAAgcYUoAagxjyudbVXY8aMMeutt57T3Nayyy5rPvjgA7PgggvWbB/+8Ic/mFGjRjnrv/vuu81uu+1Ws21hxfUv8NRTT5k77rjDfPzxx+bTTz81n332mZkzZ45RM19LL7206dKli9lpp53MPvvsYzp37lz/O5zhPZg5c6bZa6+9nCQrHYtWrVqZlVZayRx55JHmsMMOM23atMnw1rNpCCCAAAIIIIAAAggggEB2BLIUyyGOk53zohG2hDhOto4isZxsHQ+2BgEEEEAAAQQQQCD7AiQAZf8YNYst/Pbbb81vv/3m7Ktq3WndunVN9juXy5kvv/zSWXeLFi1IyKjJUWjsleo8//nnn82iiy7a2Dua8b2bNm2aadu2rVHNSxQEEEAAAQQQQAABBBBAAIHkAlmI5RDHSX7cmCOZAHGcZF7VnJpYTjV1WTYCCCCAAAIIIIBAowiQANQoR5L9QAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEGiWAi2b5V6z0wgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIINIgACUANciDZDQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIHmKUACUPM87uw1AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQIMIkADUIAeS3UAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBongIkADXP485eI4AAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCDSIAAlADXIg2Q0EEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACB5ilAAlDzPO7sNQIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggECDCJAA1CAHkt1AAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQaJ4CJAA1z+POXiOAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgg0iAAJQA1yINkNBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgeYpQAJQ8zzu7DUCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAgwiQANQgB5LdQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEGieAiQANc/jzl4jgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIINIgACUANciDZDQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIHmKUACUPM87uw1AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQIMIkADUIAeS3UAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBongIkADXP485eI4AAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCDSIQKsG2Q92I0MCEyZMMM8995y3RX379jVrr722108HAggggAACCCDQXAQmT55sZs2albe7iy22mOnQoUPecAYggAACCCCAAAK1EHjiiSfMxx9/7K16wIABplOnTl4/HQgggAACCCCAQHMQmD17tpk4cWLkrnbp0sXMP//8keMYiAACCCCAQFYESADKypFooO0YNWqUOfLII709Ov/880kA8jToQAABBBBAAIHmJHDMMceY9957L2+XTz/9dHPQQQflDWcAAggggAACCCBQC4EhQ4aY4cOHe6vu06cPCUCeBh0IIIAAAggg0FwEvvvuO9OvX7/I3R05cqTp3r175DgGIoAAAgggkBUBmgDLypFgOxBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQKEOABKAy0JgFAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIGsCNAEWApHYvz48UbNPyy88MLmkUceKbjG0aNHm+eff77g+GIjdt55Z7PqqqsGJnnxxReNlhmnLLjggua4446LMynTIIAAAggggAACCCCAAAIIIIAAAg0tcPLJJ5tXXnnF/PnPfzYDBgwouK+XXXaZ+f333wuOLzRiscUWM4cddljeaGI5eSQMQAABBBBAAAEEEEAAAQQQQACBmAIkAMWEKneyadOmmYsuusjkcrmSi/jggw+KJggVW0Dfvn3zEoAef/xx8/TTTxebzRvXrl07EoA8DToQQAABBBBAAAEEEEAAAQQQQKC5CgwfPtxJ/omz/3rRq5wEoOWWWy4yAYhYThx1pkEAAQQQQAABBBBAAAEEEEAAgSgBmgCLUqnQsF9++cWceOKJZvLkyRVaYuHFtG/fPm+kEoooCCCAAAIIIIAAAggggAACCCCAAALxBJ544glz1VVXxZu4CVNFxXG0OGI5TUBlVgQQQAABBBBAAAEEEEAAAQSauQA1AFXpBHjrrbfMxRdfbCZOnBh7DbvvvrvZcccdY01/7bXXmieffNKZVvOoBiB/mTFjhpkyZYozqE+fPuass87yj87rbtmSXLA8FAYggAACCCCAAAIIIIAAAggggECzEPj111/N0KFDzbBhw2LV4uyiqLagOEUxmoEDB5pZs2aZtm3bmtNPPz1vNmI5eSQMQAABBBBAAAEEEEAAAQQQQACBBAIkACXAijOpgjU33nijue+++xIFjLTsNm3aOP9Kreepp57ykn969erlBJDC83z00Ufe+nv27GnUtjwFAQQQQAABBBBAAAEEEEAAAQQQQCAoMHbsWHPJJZd4L1IFxxbv69ixY/EJ7FglFw0ePNhJ/tHEgwYNMl27ds2bj1hOHgkDEEAAAQQQQAABBBBAAAEEEEAggQDVviTAKjXp22+/bQ444ABz7733Osk3LVq0MPvtt5+JEwwqtWx3/KRJk5yglPrbtWtnLrjgAtO6dWt3tPfXX2V0jx49vOF0IIAAAggggAACCCCAAAIIIIAAAggYJ3Zz5ZVXmuOOO85L/lluueXMgAEDKspz9dVXmw8//NBZ5l577WU23njjyOUTy4lkYSACCCCAAAIIIIAAAggggAACCMQUIAEoJlScyUaPHm2++OILZ1LVuKM24w8//HAz33zzOcOUENTUcumllxrVMqSiZXfq1ClykQSNIlkYiAACCCCAAAIIIIAAAggggAACCDgCc+bMMffff7+nscMOOzjNgK244oresKbGcl5//XXz0EMPOcvr3LmzOfjgg71lhzuI5YRF6EcAAQQQQAABBBBAAAEEEEAAgSQCNAGWRCvGtO3btzd77LGH87aYauipZHn88cfNuHHjnEWqWa9ddtml4OLdoFGHDh3Mkksu6UyXy+XMV1995TQztsgiixSclxEIIIAAAggggAACCCCAAAIIIIBAcxHo27evOfDAA03v3r0rusuzZ892mv5yFzpw4ECz4IILur15f4nl5JEwAAEEEEAAAQQQQAABBBBAAAEEEgiQAJQAq9SkW2yxhdlnn31M27ZtS02aePz06dPN9ddf78zXsmVLc/LJJxv9jSq///67+fjjj51Rav5r/Pjx5tZbbzVvvvmmmTlzpjN8iSWWMEoiOvLII80yyywTtRiGIYAAAggggAACCCCAAAIIIIAAAg0roLjKkCFDTK9evaqyj/fcc4+ZOHGis+xNNtnEbLjhhgXXQyynIA0jEEAAAQQQQAABBBBAAAEEEEAgpgAJQDGh4kzWvXv3OJOVNc1//vMfM3XqVGdeJRqttNJKBZczadIkM2vWLGe8kn6OPvrovGm//vpro38vv/yyOeqoo0z//v3zpik0YMSIEebKK68sNNr88ssvZoUVVjA//vij+e677wpOxwgEEEAAAQQQQAABBBBAAAEEEECgVgJq3qtayT+Kjdx2223Ormk9asa9WKl2LOf00083arq+UFHMSbEcNW3vvjxWaFqGI4AAAggggAACCCCAAAIIIIBANgVIAMrmcQlslQIvw4cP94btv//+XndUh1tltMbNmDHDqV56zTXXNGuttZbp2LGj+eSTT8yzzz5rPv/8cyeoM3jwYLPwwgubrbfeOmpxecMUxFJTYsVK69atC9ZQVGw+xiGAAAIIIIAAAggggAACCCCAAAL1LvDAAw84L0hpPzbbbDPTtWvXortU7VjO999/HyuWo2QlCgIIIIAAAggggAACCCCAAAII1KcACUB1cNweeeQRpzYdbaqqjNYbWcWKP2jUqVMnp7ae8DwHHXSQueaaa8xDDz3kLOrqq682ffr0MYsuumixRTMOAQQQQAABBBBAAAEEEEAAAQQQQKCIwG+//Wbuvvtub4pSL3JpQmI5HhcdCCCAAAIIIIAAAggggAACCCBQpgAJQGXCpTXbnDlzzLBhw7zVxQka7bzzzk4V1qq2WW+ZLbXUUt78bseCCy5oTjrpJDNhwgQnyKTmuhScOuKII9xJCv7V22DF3gjL5XJG/ygIIIAAAggggAACCCCAAAIIIIBAcxN4/PHHvWbcN9xwQ7PiiiuWJKh2LKdly5bEckoeBSZAAAEEEEAAAQQQQAABBBBAoL4FSADK+PF78803nfbXtZndu3c3PXr0KLnFyy67rNG/UmW++eYzBx98sDnjjDOcSf1vmxWbd++99zb6V6jcdNNN5rDDDis0muEIIIAAAggggAACCCCAAAIIIIBAwwo89thj3r7tsMMOXnexjmrHcm644YZiqzcDBgwIND9fdGJGIoAAAggggAACCCCAAAIIIIBAJgVIAMrkYZm3Uc8++6zXs/XWW3vdlerwv4X28ccfV2qxLAcBBBBAAAEEEEDAClx//fVm1qxZeRaLLbZY3jAGIJB1gTlffWl+vf1WbzPn331PM1/X5b1+OhBAAAEEjPn+++/NuHHjHIqFFlrIrL/++hVnIZZTcVIWiAACCCCAAAIIOAIdO3Y0jz76aKRGnBfvI2dkIAIIIIAAAikKkACUInbSVakZreeee86bbauttvK6K9Wx+OKLe4tSM2AUBBBAAAEEEEAAgcoJEByqnCVLqr1AbsYM8/tb470NyW0fr1YLbwY6EEAAgWYg8MILLxg1566y6aabmvnnn7/ie00sp+KkLBABBBBAAAEEEHAEWrVqZbp164YGAggggAACdStAAlCGD927775rvv32W2cLV199dbPkkkvG2tpffvnFeePs119/dZoNKzbT119/7Y3u0qWL100HAggggAACCCCAAAIIIIAAAggggEAygeeff96bIcmLXMRyPDY6EEAAAQQQQAABBBBAAAEEEECgTAESgMqES2O28ePnvV3bs2fPWKucPn26Ufvyv//+u/OW2ciRI80CCyxQcN5PP/3UG7fccst53XQggAACCCCAAAIIIIAAAn6Blst2MS06dDC5H34wpnVrM9/KPfyj6UYAAQSavYBqcn7rrbc8B2I5HgUdCCCAAAIIIIAAAggggAACCCCQgkDLFNbBKsoUePvtt705V1hhBa+7WEfbtm2NG2CaNWuWeeWVV4pNbu68805v/MYbb+x104EAAggggAACCCCAAAII+AVa2KrQTcv//YRs0cK0qEKzNv710Y0AAgjUm8DEiRONavJRWWKJJYxiNHEKsZw4SkyDAAIIIIAAAggggAACCCCAAAKlBEgAKiVUw/H+BKAkbY76E3muvvpqM23atMi9uPfee83YsWOdcSuttJLZeuutI6djIAIIIIAAAggggAACCCCAAAIIIIBAcYFy4zhaKrGc4raMRQABBBBAAAEEEEAAAQQQQACB0gIkAJU2qskUM2fONF9//bW37uWXX97rLtWx++67m9VXX92ZTMs47LDDzIsvvmjUPNjs2bPNBx98YC688EKj5CCV+e2bu8cff7xpYd/ipSCAAAIIIIAAAggggAACCCCAAAIIJBdQDUBuSfIil+YhluPK8RcBBBBAAAEEEEAAAQQQQAABBMoVsHW4U7Io8N1333mbtfTSS5s2bdp4/aU6Wtmq+c8991wnqWfKlCnms88+M6effrozm8YpCcgtqpJayUCrrLKKO4i/CCCAAAIIIIAAAggggAACCCCAAAIJBfyxnLhNuburIJbjSvAXAQQQQAABBBBAAAEEEEAAAQTKFaAGoHLlqjzft99+660hadBIMy6++OLm9ttvN0cddZRp166dtyw3+adDhw5m8803NzfddBPJP54OHQgggAACCCCAAAIIIIAAAggggEB5AlOnTvVmTFoDkGYkluPx0YEAAggggAACCCCAAAIIIIAAAmUIUANQGWhJZxk+fHjSWUzv3r3NCy+8kHg+/wytW7c2e++9t9lzzz3Nl19+aSZNmmRmzZplVl55ZdO5c2f/pHQjgAACCCCAAAIIIIAAAggggAACCFiBP/7xj86/pBiDBw9OOkve9MRy8kgYgAACCCCAAAIIIIAAAggggAACMQVIAIoJVc+TtWzZ0qgZMf2jIIAAAggggAACCCCAAAIIIIAAAghkW4BYTraPD1uHAAIIIIAAAggggAACCCCAQBYFaAIsi0eFbUIAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAIKYACUAxoZgMAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIEsCpAAlMWjwjYhgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIBBTgASgmFBMhgACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAFgVIAMriUWGbEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBCIKUACUEwoJkMAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAA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E/YS+vlAzZZh3+/bT6dktfGSC1EgAAIgAAL1SeCDDz6g1157jY4ePerWjYKCApLP999/T59++indfffdNGjQILc8xgPocow0EAYBEAABEAABEAABEACBOCFgNORPTomTTqEbIBA5Ag5btV6ZQ7yVQxKWAAyA4uzSVVZW0r333ktbt/JWACwZGRl0+umnK68/FRUVahXZ3LlzeZcAG3344Yd05MgRuv/++72exaZNm7zGIxIEQAAEQAAEQAAEQAAEQKD+CCT16UvyCVS2H6vZb35b2bFAiyEfCIAACIBAjAiI0c60adP01oYNG6Y8/rRp00Z5Alq4cKEyAiosLKS77rqLpk+fTl3YGNSbQJfjjQriQAAEQAAEQAAEQAAEQAAEQAAEokmgav48vfrqb+dT6lnn6McIJBYBGADF2fV68cUXdeOfoby35D/+8Q9q0aKFWy8vv/xy+stf/kKlpaU0e/ZsGjFiBI0ZM8YtT3l5uVIySeSQIUN8Gglphcx1rDrW8uEbBEAABEAABEAABEAABEAgtgSa8VbAh6udq3CyUrHKLLb00RoIgAAI+CcgXpynTJmiMlksFnr44Ydp1KhRboUmTpxIL7zwAn300UdktVpVnldeeYVkq3ejQJdjpIEwCIAACIAACIAACIAACIAACIBArAiYmjYjh6sxE+8cBElcAu6ahsQ9jwbR82pW6n/11VfqXJo3b0733XdfLeMfSczPz6fJkycrT0Fy/MUXX9QyANqyZQs5HM6faZ8+fah169aSFQICIAACIAACIAACIAACIJBgBF4fMoisdrvqdXZaaoL1Ht0FARAAgYZNYN68eSSGOyJXXHFFLeMfiRdDn1tvvZXWrl1L69evp82bNysPz337unuDgy5HaEFAAARAAARAAARAAARAAARAAARiTcDSqTORawGiuTOHIQlLAAZAcXTpNmzYQLLNl8jIkSMpMzPTZ+9OOukkSktLU/mlnKcYXUb37NnTMxnHIAACIAACIAACIAACIAACCUJgQEbLBOkpugkCIAACjY/AihUr9JM+//zz9bBnQLwDjR49WhkASdrGjRvJ0wAIuhxPajgGARAAARAAARAAARAAARAAARCIBYHUP1wTi2bQRgwImGPQBpoIkEBZWZnarqszW9XVZbQjW3a1atVK1Xzw4EHlQtrYDJRGRhoIgwAIgAAIgAAIgAAI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ARAAARAAARAAARAAARAAgcZEQPQt8omkQJcTSZqoCwRAAARAAARAAARAAARAAATil0DfFi3omk65egeTTfDdosNAIGQCMAAKGV3iFDSbzZSTk6M+idNr9BQEQAAEQAAEQAAEQAAEQAAEQAAEQAAEGicB6HIa53XHWYMACIAACIAACIAACIAACDQeAsNbZ5J8ICAQSQIwI4skTdQFAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAjEmAAOgGANHcyAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAuET2Hy0TK9ka1lNWI9EAAQaEQEYADWii41TBQEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAIGGQmDB3n36qXy/74AeRgAEGiMBGAA1xquOcwYBEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEACBBCfQPi1NP4M2qSl6GAEQaIwEkhrjSeOcQQAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQCCSBMqqq6ncZlNVOvjfA1YrZabAKCWSjD3rujCnPfVp0VxFt01N9UzGMQg0KgIwAGpUlxsnCwIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgEA0CheXltLuyUlUtBkBLSw/S6W2zo9EU6nQROC+nHViAAAi4CGALMAwFEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEEhgAvAAFIcXz26307PPPkvyHYiMHTuWjj/+eK9Zbexi7quvvqK5c+dSYWEhHTt2jHr37k39+vWjE088kXr16uW1HCJBAARAAARAAARAAARAAARAAARAAARAAAQCI7B48WL64YcfAsqclpZGt956q8+80OX4RIMEEAABEAABEAABEAABEIh7ApnJKTSxU57ez9z0dD2MAAiAAAhEmwAMgKJNOIT6xVDnk08+Cbhkp06dvBoA7d27l+68807atm2bW12//PILyefNN9+ke++9l8444wy3dByAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAgETmDOnDk0f/78gAo0bdrUpwEQdDkBIUQmEAABEAABEAABEAABEIhbAtlpqfR4vz5x2z90DARAoGETgAFQHF7fjRs3ht2rsrIyuvvuu3Xjn/z8fBoxYgRlZWXRihUraOHChWS1WunRRx8lyTt+/Piw20QFIAACIAACIAACIAACIAACIAACIAACINAYCWzatCns04YuJ2yEqAAEQAAEQAAEQAAEQAAEQAAEQAAEGjUBGADF4eXfvHmz3qspU6aQGO/4E1k55imvv/46bdmyRUWPGTOGHnjgAUpOTlbHF1xwAa1atYomT56sjH+mTZtGo0aNojZt2nhWg2MQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAE/BMrLy6moqEjlGDJkCN1///1+chOZzWav6dDleMWCSBAAARAAARAAARAAARAAARAAARAAgQAJeNc4BFgY2aJDQFs1ZrFYaODAgdS6dWu/H9k73iiHDx+mWbNmqajs7Gw34x8tX//+/VW8HMve8lp+LR3fIAACIAACIAACIAACIAACIAACIAACIAACdROQBVgOh0Nl7NOnj18djuh4WrVqVatS6HJqIUEECIAACIAACIAACIAACIAACIAACIBAkARgABQksFhk1wyAOnfuTKmpqUE3+e2335KsPhO58MILdc8/nhXJlmC5ubkqWgyAqqurPbPgGARAAARAAARAAARAAARAAARAAARAAARAwA8BTY8jWXr27Oknp+8k6HJ8s0EKCIAACIAACIAACIAACIAACIAACIBAYASwBVhgnGKWa9++fXTw4EHVXqhKozVr1uj9HTp0qB72FhDX1IWFhbR//35avnw51ZXfWx2IAwEQAAEQAAEQAAEQ8E7giy++oNLS0lqJ8gzWq1evWvGIAAEQAAEQAAEQSDwCkTAAgi4n8a47egwCIAACIAACINDwCMji+o8++sjriZ133nnUsmVLr2mIBAEQAAEQAIF4IQADoHi5Eq5+GJVGxpdCx44dUy+P2rVrR7I1mD9Zu3atSjaZTNStWzd/WSk/P19P37p1KwyAdBoIgAAIgAAIgAAIgED4BF5++WXasGFDrYruueceGADVooIIEAABEAABEEhMApouJyMjg9q2batOQrYE2717N6Wnpwf0ogi6nMS89ug1CIAACIAACIBAwyJw5MgReuSRR7ye1IknnhjQc53XwogEARAAARAAgRgRgAFQjEAH2oymNJL8sj3Xm2++SZ9//jnt2rVLVZGSkkJdu3alM844gyZMmEBi5OMpxcXFKiorK4uSkvxfYk0xJQV27NjhWZXXY6vVShUVFV7TJFLSzGYzibJLPhAQAAEQAAEQAAEQAAEQAAEQAAEQAAEQaIgEbDYbyYIqEfHkvHr1anrjjTdo1apVuu4kOzub+vTpQzfeeCN16NDBK4Zo63JkYZm/rd/lPESXY7fbvfYPkSAAAiAAAiAAAiAAAiAAAiAAAiAAAvFPwL91SPz3v8H1cPPmzfo53XfffSQKGqOI8c369evV57vvviPJI16BNBH3hJqyplWrVlq0z29ZnabJ4cOHtaDf7w8++IAefvhhv3nEs9CBAwdItjSDgAAIgAAIgAAIgAAIgAAIgAAIgAAIgEBDJCCLqURXIyJGP3/6059qneaePXtIPkuWLKGbbrqJxo8f75YnFrqcO+64gxYsWODWrueB6HJkm3jpDwQEQAAEQAAEQAAEQAAEQAAEQAAEQCDxCMAAKM6u2caNG/UeifFPXl4eHX/88dS3b1+1Bdhvv/1G8+fPV3lWrFhBkydPpldffZWSk5NVXFlZmV4+NTVVD/sKGPP48+rjqzziQQAEQAAEQAAEQAAEQAAEQAAEQAAEQKCxEjB6chbDmbS0NBo4cCANGjSIMjMzadu2bcrwpqSkRHkEevbZZ1zXmB8AAEAASURBVKl58+Y0btw4HRl0OToKBEAABEAABEAABEAABEAABEAABEAABMIgAAOgMOBFuqgY/Ggun6Xuyy67jG6++eZa23zJSrG///3vysOOKJLeeustuvbaa1V3jB6DZLuwusSYp7Kysq7sSAcBEAABEAABEAABEAABEAABEAABEAABEHARMBoAtWnThqZOnUpdunRx4zNx4kSaNm0affbZZyr++eefpyFDhpDmuRm6HDdcOAABEAABEAABEAABEACBuCNQ9c0cvU9Vc2dTyrjT9WMEQAAEQCCeCMAAKI6uRlJSEj333HO0c+dOkvCZZ57ptXcDBgygO++8U23/JRlmzJhBl19+OTVp0kSV0wrJ/u11iXH/d6MxkL9yoqCSfe19iWz9VVRU5HdveV9lEQ8CIAACIAACIAACIAACIAACIAACIAACiULgggsuUF6bRZczevRoat++fa2ui1cg0ePIlu5iMHTo0CF6//336YYbblB5RQekSbR0OR07dvSry9m+fbvql8Ph0LqCbxAAARAAARAAARAAARAAARcBU9OmpD0pm5o0BRcQAAEQiFsCNRqGuO1iYnfsnnvuIbvd7vMkxJjnyiuvVOligCPbfQUio0aNou7duyvFkSiHCgoKqE+fPpSenq4X1/ag1yO8BIx5mvIfr0Dk7LPPJvn4kunTp9OkSZN8JSMeBEAABEAABEAABEAABEAABEAABEAABOKWQDC6HDGskU9dYrFYlPfme++9V2U1eg6KhS7ngQce8NvFCRMm0MyZM/3mQSIIgAAIgAAIgAAIgAAINFYC5pwccpSVqdM353RorBhw3iAAAglAAAZAUb5IS5YsIX+rt8RrT6iSn5+vDICk/NatW5UBkLE+4x7yvtowupkO1ADIV12IBwEQAAEQAAEQAAEQAAEQAAEQAAEQAIFEJxAtXY7ocTQRPY4m0OVoJPANAiAAAiAAAiAAAiAAAvFJIO2PTu+d8dk79AoEQAAEagiYa4IIJRqBtm3b6l0W99Eiqamp1Lp1axXes2eP+vb3z+7du/XkzMxMPYwACIAACIAACIAACIAACIAACIAACIAACIBA5AhkZWXplWl6HImALkfHggAIgAAIgAAIgAAIgAAIgAAIgAAIgEAYBOABKAx4gRR99913/WaTfeA1qa6upoMHD6qPKIVatmypJXn93rVrlx6fm5urh7t06UL79+8n8e5TWlpKrVq10tM8A0VFRXpU79699TACIAACIAACIAACIAACIAACIAACIAACINAYCQSjyxHvy6J7qayspG7duvnFZVyoZdTjSCHocvyiQyIIgAAIgAAIgAAIgAAIgAAIgAAIgEAABGAAFACkcLK0a9cu4OKvvPIKvf322yr/xIkT1d7w/goXFBToyXl5eXq4T58+tHTpUnW8cuVKGj16tJ7mGVi1apUeJeUgIAACIAACIAACIAACIAACIAACIAACINCYCQSqy5GFV+ecc47a+j0lJYW+/PJL5c3HFztfehzJD12OL2qIBwEQAAEQAAEQAAEQAAEQAAEQAAEQCJQAtgALlFQM8p1wwgl6K99//z05HA792DOwfPlyWr9+vYqWVWPGlWNGg5/Zs2d7FtWPZfuvX3/9VR337NmTsAWYjgYBEAABEAABEAABEAABEAABEAABEAABEPBLoEmTJspwRzJZrVb66aef/ObX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rLjRErBqhRU3q1ZYcUvjYZ/3qI1VK6y4pXFpPC4D0nhcppLLx9pXSY6B/CX9f/buA/5q6v7/+MGJgoqIgiiioCKiVltw19WidbUW90KLdRdHna36K+4Jaq2jVq274sC2Ku6FCo6KIu4NuEDRWkdR0fvPO/0nJrnJvbnJTW5yv6/zeMA3Nzfj5JmT3ORzP/eEHoBq+/BuiwUuuOACM2fOHLsWQ4cONSNHjjSLL764UfLMyy+/bC655BIzefJk+/Vll11m9ExF5zFfraz6a6+9ZsaNG2dXQfU9+uijzfrrr2/mmWce8/nnn5t//vOf5uqrr7Z7MpoxY4a9XdrW3r17t7Lapqz1FlpZ20pZ613WtlLWetPG8z81lrWtlLXetHHaeFwB2nhcqeZNx7VK8yzjLIk2HkepudOUtY03V4GlIdA8Ac5jzbOMu6SynsfK2lbKWm+1p7K2lbLWu6xtpaz1po3H/dRo3nRlbStlrTdtvHltN+6SytpWylpv2njcltm86craVspa7+btufpLogeg+kZM0SKBjz76yDz88MP22jfZZBPzf//3f3byj0Z06tTJDBw40Jx//vnmsMMOs19rvHoBuu666zTY0vL3v//dfPfdd2beeec1Y8aMMRtuuKGd/KNKde3a1ey2227m2muvNf3797frOWvWLHs7Pv74Y+qdQKCsbaWs9dYuoo0naKgpZilrWylrvWnjKRprwlnL2lbKWm/aeMKGmmK2sraVstabNp6isSactaxtpaz1TribmA2BXATKeq9Y1vNBWeutxljWtlLWepe1rZS13rTxXD5yfCspa1spa71p477ml8uLsraVstabNp5Ls/atpKxtpaz1po37ml/bvSABqO12afts0LRp09yNOfDAA93h4MD2229vTjzxRDPffP/r0Eq9At17773ByXJ9/fbbb9vr++lPf2pWXHHF0HX36NHDXHjhhWbNNde033///fftnoL03MJWlbLWu6xtpaz1Vvssa1spa73L2lbKWm/aeP6fQmVtK2WtN22cNh5XgDYeV6p503Gt0jzLOEsqcxuPs31Mg0ArBDiP5ate5vNYWdtKWetd1rZS1nrrTFDWtlLWepe1rZS13rTxfD/vtbaytpWy1ps2ThuPK0AbjyvVvOnKeq3SPIH6SyIBqL4RU7RIYPr06faaF1lkkbqPxtp0003NqFGj3J6ATjvtNPPMM8+0qObGOHUfMGBAzTp06dLFnHPOOWbQoEH2dK+88ord09G3335bc76s3ix7vcvWVhzvstVb7c+pO208q6PRv1zHu2xtpaz1po37218er8raVspab9p4Hq3av46ytpWy1ps27m9/ebwqa1spa73z2KesA4GkAs5xVdZ7Re65ku75xucre1uhjTe+z5PM4bSTsh2b2lan7mVtK2Wtd9naitNOylZv2niSM1q6ecraVspab9p4uvaaZO6ytpWy1ps2nqSVlmceEoDKs686XE3nzp1rb/OCCy4Ya9s33nhjM3LkSHtazXvccce5N1qxFtDEiZy6d+7cue5StX1nnHGGWWaZZexpH3/8cXPeeefVnS+LCcpe77K1Fce7bPVW23PqThvP4kisXqbjXba2UtZ608ar22DWY8raVspab9p41i26evllbStlrTdtvLoNZj2mrG2lrPXOen+yfATSCDjHVVnvFbnnSrP3G5u37G2FNt7Y/k46tdNOynZsanudupe1rZS13mVrK047KVu9aeNJz2rJ5ytrWylrvWnjydtq0jnL2lbKWm/aeNKWWo75SAAqx37qkLVcdtll7e3W8xM///zzWAY77rij2WmnnexpP/vsM3PUUUeZTz75JNa8zZzIqbvTDVm9ZXfr1s2MHj3a6K+Knid+ww031Jut6e+Xvd5layuOd9nqrYbn1J023vTDMHSBjnfZ2kpZ600bb93nD2089BSQyUjn+OQ8nglv1UIdb9p4FU1mIxxz2nhmxL4FO960cR8LLxDokALO+aCs51/OY/k127K3Fdp4Pm3FaSdlOzal49S9rG2lrPUuW1tx2knZ6k0bJ3YW91OANt66tsJ5PG4rTTcdbZw2nq4FZTM3CUDZuLLUJgg4J00t6pZbbom9xIMPPtioNyCV9957zxx55JGxE4hir6TOhE7d77nnHvOf//ynztT/e1s9AKknoAUWWMAeceGFF5q77ror1rzNmqjs9ZZDmdqK4122equ+Tt1p49LIvjjeWhNtPHtvrcExp43n66210cbzNaeN5+tNG8/HW2vhPN6a+wjaeH5tnDUhUFSBsp9/5cr1aD6tq+xtpazX0bTxfNq31kIb53o0Tmtz2ommLdPnj+rr1L2s58Oy1rtsbcVpJ2WrN228dd9Plq2t0MZb11bKdh5X286rzDvKKnmtjPUg0IjAoosuavQ4LGW/T5061b6g7NevX91FdOrUyWywwQbm6aefNh9++KGZPXu2efTRR03fvn3NhAkT7PnXWmsto39ZFSXx3HfffWbOnDnm9ddfN0OGDDELLbRQ3dUttdRSZoUVVjAPPvigPa3qXalU7O1455137HEjRoyou5ykE5S13mVtK2Wtt9pXWdtKWetd1rZS1nrTxo39uZnn509Z20pZ600bp42rDcQptPH82wrXKvneu5W5jcc5hpkGgVYIcB7jPBa33ZW1rZS13mX9zCtrvXUclLWtlLXeZW0rZa03bTz/e8WytpWy1ps2ThtXG4hTaOP5t5WyXqvEaU/NmoYEoGZJspymCyiRR0k748ePN99995156KGHzL/+9S8zbdo006NHD7P44otHrnO++eYzG264oXnyySftR4B9+umn5pFHHnGnzzoBqE+fPnbSknogevfdd80dd9xh13vWrFlm1VVXdesRNqBt7t69u5k4caL99rPPPmsvw5k2ywSgsta7rG2lrPVWWyxrWylrvcvaVspab9p4/p8/ZW0rZa03bZw2rjYQp9DG828rXKt8YvK8dytzG49zDDMNAq0Q4DzGeSxuuytrWylrvcv6mVfWeus4KGtbKWu9y9pWylpv2nj+94plbStlrTdtnDauNhCn0MbzbytlvVaJ056aNQ0JQM2SZDmZCPTs2dP+tcQzzzxj94SjBJrnn3/e7r1HPeXUKp07dzabbbaZ0bzqRchbsk4A0rrWWGMNM3nyZDsB6euvv7Z7Avrggw/MsGHDvFUJHV5llVVMr169zKRJk+zt9k6UZQKQ1lPWepe1rZS13mVuK7TxfM+HtHHO497PsFrDZW0rZa035/H8j82ytpWy1ps2Thuv9Znjfa/Mbdy7HQwjUCQB7rm454rbHsvaVspa77J+5pW13joOytpWylrvsraVstabNs49V9zPe9p4/m2F8zjX43GPz7K2lbLWO+5+STvdPGkXwPwIZC2wxx57mAsuuMAsv/zy7qrUA1Ccoq7XLrroInPggQcaJQTlWXr37m0uvfRS88tf/tJdd9x6q55bbbWVueKKK+wbReodT6CsbaWs9aaNrxGvYTZxqrK2lbLWmzZOG497+NLG820rZT021Z7K2lbKWu+ytpWy1ps2nv89Z9zPKaZDIG8BzmP5nw/4rOZ6NO5xXta2UtZ6l/V8WNZ66zgoa1spa73L2lbKWm/aeP7XWGVtK2WtN22cNq42EKeUuY3H2b6003SqWCXtQpgfgbwE1JOPHom19tprGyX3NFLUe5AScqZOnWq23HJLs/feezcye6pp586da1555RXzxRdf2HVvdGF33XWXufXWW83bb79t7r777kZnTzx9WeutDS5rWylrvcvaVspab9o45/G4J3baeP5thfM41ypxj8+ytpWy1rus58Oy1ptrlfw/f+Kee5gOgbwFOI/lfz7gs5rr0bjHeVnbSlnrXdbzYVnrreOgrG2lrPUua1spa71p4/lfY5W1rZS13rRx2rjaQJxS5jYeZ/uSTEMCUBI15kEAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoCACPAKsIDuCaiCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkESABKAkasyDAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEBBBEgAKsiOoBoIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCQRIAEoiRrzIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCBQEAESgAqyI6gGAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJJBEgASqLGPAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIFESABKCC7AiqgQACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAEgESgJKoMQ8CCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgURIAGoIDuCaiCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkESABKAkasyDAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEBBBEgAKsiOoBoIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCQRIAEoiRrzIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCBQEAESgAqyI6gGAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJJBEgASqLGPAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIFESABKCC7AiqgQACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAEgESgJKoMQ8CCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgURIAGoIDuCaiCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkESABKAkasyDAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEBBBEgAKsiOoBoIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCQRIAEoiRrzIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCBQEAESgAqyI6gGAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJJBEgASqLGPAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIFESABKCC7AiqgQACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAEgESgJKoMQ8CCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgURIAGoIDuCaiCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkESABKAkasyDAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEBBBEgAKsiOoBoIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCQRIAEoiRrzIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCBQEAESgAqyI6gGAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJJBEgASqLGPAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIFESABKCC7AiqgQACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAEgESgJKoMQ8CCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgURIAGoIDuCaiCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkESABKAkasyDAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEBBBEgAKsiOoBoIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCQRIAEoiRrzIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCBQEAESgAqyI6gGAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJJBEgASqLGPAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIFESABKCC7AiqgQACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAEgESgJKoMQ8CCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgURIAGoIDuCaiCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkESABKAkasyDAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEBBBEgAKsiOoBoIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCQRIAEoiRrzIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCBQEAESgAqyI6gGAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJJBEgASqLGPAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIFESABKCC7AiqgQACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAEgESgJKoMQ8CCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgURIAGoIDuCaiCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkESABKAkasyDAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEBBBEgAKsiOoBoIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCQRIAEoiRrzIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCBQEAESgAqyI6gGAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJJBEgASqLGPAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIFESABKCC7AiqgQACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAEgESgJKoMQ8CCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgURIAGoIDuCaiCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkESABKAkasyDAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEBBBEgAKsiOoBoIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCQRIAEoiRrzIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCBQEAESgAqyI6gGAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJJBEgASqLGPAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIFESABKCC7AiqgQACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAEgESgJKoMQ8CCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgURIAGoIDuCaiCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkESABKAkasyDAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEBBBEgAKsiOoBoIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCQRIAEoiRrzIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCBQEAESgAqyI6gGAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJJBEgASqLGPAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIFESABKCC7AiqgQACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAEgESgJKoMQ8CCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgURIAGoIDuCaiCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkESABKAkasyDAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEBBBEgAKsiOoBoIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCQRIAEoiRrzIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCBQEAESgAqyI6gGAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJJBEgASqLGPAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIFESABKCC7AiqgQACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAEgESgJKoMQ8CCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgURIAGoIDuCaiCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkESABKAkasyDAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEBBBEgAKsiOoBoIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCQRIAEoiRrzIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCBQEAESgAqyI6gGAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJJBEgASqLGPAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIFESABKCC7AiqgQACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAEoH5kszEPAg0U2DGjBlmyJAh5ssvvzRLLLGEmTJlill00UWbuYqay6pUKmaDDTYwzz//vOnUqZO58847zfrrr19znjzfVP0efPBBM2nSJPPuu++ad955x/6n4c6dO5sll1zSLLXUUqZfv35m8803N5tttpnp2rVrnlVkXSUUuOmmm8xXX33l1lztpnfv3u7rLAfeeOMNc8cdd5hHH33UvP/++2bWrFlm9uzZZrHFFrPbstrzwIEDzVZbbWUfi/PNx0dVlvuDZccX+Oabb8zYsWPjz9DglMOGDTMLL7xwg3N1zMn/9re/mW+//dbd+J/97GemR48e7msGEEAAAQQQQAABBLIVyCOWE+ear+gxHe0F4jrZtsWOunTiOh11z7PdSQWI6SSVa/58cT7fm79WlugIjB8/3nz88cfOS7POOuuYlVZayX2dduD22283//73v93FrLfeeqZ///7uawYQaLZA1m262fVleQjkIdDJugmt5LEi1oFAlIC+5FfSjcp5551nDj300KhJMxt/9913G315qLLKKquYZ5991iy44IKZrS/Ogl9//XVz1VVXmWuuucZMmzYtziz2NAsssIAZOnSoGTVqlBk8eHDs+ZiwYwko2c57oa+LpC233DJTBAWn1C5ffPHF2Ovp1q2b2W233cyJJ57Il/ux1Tr2hE8++aRZccUVTffu3ZsO8emnnxq1yazK9OnTTZ8+fbJafFstd6GFFjJz5sxxt2nixIlGAQUKAggggAACCCCAQD4CecRy4l7zFTGmo71AXCeftthR10Jcp6Pu+fbf7qziOsR0itN24n6+F6fG7VWTtdZay/7+y9mqSy65xOy///7Oy5p/4xyfgwYN8sX/r7jiCvOrX/2q5nJ5E4E0AmnadJr1NjpvnOOn0WUyPQJRAjwCLEqG8bkIKLnFSf5ZeeWVzUEHHZTLeoMr2WKLLdwEoJdfftmcfPLJwUlye62bkR122MHOuj7llFMaSv5RJb/++mu7d5W1117b7Lzzznav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c1R9lRi1zz77GOvxdvYk+isbq8vTqFnc8VmsSzdBDz/8sLsODfzmN7+xk+58I+u80DYde+yxxsp0d6fUcuslADVyzLgLZiATgazOy9avpX31VUJP3POkZjzssMNiJQApscjqOtld1/3332+sHn2M9SxuM2jQIHd82IBuNCkIIIAAAggggEBHFwjGQBqJ5eR1zVdrH2UV09E6w65fWx3XaXX8I4v7h1ZvUyP3p+0e01G7J64jheqSNK7TjjEd6TRy3FRrMqZZAlmck1W3PD/f2yWuox9LexOAFA+3Hj9ftautJwEYqwccd7yShILftSjJRz+0DRbFvLw/BFbsXAkiRSibbbZZ7GooqXLZZZc1b7/9tjvPxx9/7A6nHcjyu8ZWxNRHjBjhSwC69957ja7fozob0HdF+n7FWxSXDSutvK7J6nOkldsUZhwcl+d1b7ucX4OGvP5egASg7y0YylAg2DuLepaJW1544QXfpCussILvdZwXcRNLgssK1nP27Nl2DzlJl+csXxcxwaILvFYWXaA88cQTviqst956vtdxXljPFjZWl31m+vTp7uTq7aVeAlC9992F/f8BZbHXSwBq9Tapqup5KusiX6srTPufeo7xFhkUrShQql6c9M96vJedoKckICWHaDusZyP7svy99de55Je//KUZP3682XTTTb1vFWZYv1RopChxS7+E8N7YKEEqTgJQFut6+eWXjdXtp28T1Htao0XbpYv1p59+2p01eI5x3/AM5HHMeFaXenC77bYzVne8iZeTxDbxyhqcMYvz8syZM40SWL2l0c91tZFgb2fe5TnDCqaq9zBvL3iPP/64/UspJQBtueWW9i+pfvzjHxcmKOLUnb8IIIAAAggggEARBJLGcvK85qvllFVMR+ssWlynCPGPZt8/FGGb8rg/LVtMR+2fuI4Uvi9J4zrtGNORSh7Hzff66YaI6XzvFyfWnvfne7vEdZQA06VLF7u3aYk/99xzRpbBnv+VvOEtP/3pT80aa6zhm1fxc/1QNvj9lLeXIC1DbbsoRUkXjRS5eOPkn3/+eSOz15w2y+8aWxFT1w/91UbUplTUc9LYsWPNyJEjQx3UQ5E3oUr7ptnfsTTjuqZonyPN2KbQHeIZmfd1b7ucXz2EDAYESAAKgPAyG4Fg0CjOo22cmuhiyFuUXJJXCQaLdHGlD0g9milNKVqg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7bff3uyyyy55V4H1IYAAAggggAACCCCAAAIIIIAAAoUVKFosx4EipuNI8BcBBBBAAAEEGhFYeumlzbnnnmu6devWyGxMiwACCCCAQGEFSAAq7K7pGBUbNWqUWW211eyNnTp1qrn66qtbsuGTJk0y48aNs9fdo0cPo6xvCgIIIIAAAggggAACCCCAAAIIIICAX6AosRynVsR0HAn+IoAAAggggAACCCCAAAIIdHSB+To6ANvfWgGn++h11lnH7n3nhBNOsHve6dy5c64V8/ZEpOSfpZZaKtf1szIEECivwIgRI8ysWbPcDVh99dXd4WYP5LmuZted5SGAAAIIIIAAAggggEB7CBQlluNoEtNxJPiLAAJJBPKKteS1niQGzIMAAggggAACCCDQPgKdKlZpn81hS8oq8NFHH5lvvvnGrr564Jl//vlz2xQdAh988IG9vk6dOplevXrltm5WhAACCCCAAAIIIIAAAggggAACCJRRoJWxHMeLmI4jwV8EEEAAAQQQQAABBBBAAAEEjCEBiFaAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggECJBeYpcd2pOgIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACHV6ABKAO3wQAQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEECizAAlAZd571B0BBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEECgwwuQANThmwAACCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAmUWIAGozHuPuiOAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgh0eAESgDp8EwAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoMwCJACVee9RdwQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIEOL0ACUIdvAgAggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIlFmABKAy7z3qjgACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIINDhBUgA6vBNAAAEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBMguQAFTmvUfdEUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBDq8AAlAHb4JAIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCBQZgESgMq896g7AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQIcXIAGowzcBABBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQTKLEACUJn3HnVHAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQ6PACJAB1+CYAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggECZBUgAKvPeo+4IIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACHV5gvg4vAEDTBW6//XZz5plnusvdd999zfDhw93XDCCAAAIIIIAAAh1F4M9//rOZOXNm1eZuvvnmZt11160azwgEEEAAAQQQQKAVAscff7x5+OGH3VVfdtllZsCAAe5rBhBAAAEEEEAAgY4g8Pnnn5sxY8aEbupBBx1kevToEfoeIxFAAAEEECiKAAlARdkTbVSPDz74wDz66KPuFm2xxRbuMAMIIIAAAggggEBHErjjjjvMK6+8UrXJffr0IQGoSoURCCCAAAIIINAqgZdeeskXy9GXXxQEEEAAAQQQQKCjCXz55ZfmuuuuC93s3XffnQSgUBlGIoAAAggUSYBHgBVpb1AXBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQaFCABqEEwJkcAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoEgCPAIsh70xdepUc/DBB5tFFlnE6DEQUWXixIlmwoQJUW/XHP+LX/zCDBw40DfNY489ZrTMOKVz585m5MiRcSZlGgQQQAABBBBAAAEEEEAAAQQQQKCtBY488kjzxBNPmMMOO8xsv/32kdt69tlnm2+//Tby/ag3llhiCbPvvvtWvU0sp4qEEQgggAACCCCAAAIIIIAAAgggEFOABKCYUEkn++yzz8zpp59uKpVK3UW89tprNROEai1gyJAhVQlA99xzj3nggQdqzea+16VLFxKAXA0GEEAAAQQQQAABBBBAAAEEEECgowqMGzfOTv6Js/36oVeSBKDlllsuNAGIWE4cdaZBAAEEEEAAAQQQQAABBBBAAIEwAR4BFqbSpHFffPGF+e1vf2tmzJjRpCVGL2bRRRetelMJRRQEEEAAAQQQQAABBBBAAAEEEEAAgXgC9957rznvvPPiTZxiqrA4jhZHLCcFKrMigAACCCCAAAIIIIAAAggg0MEF6AEoowbw/PPPmzPOOMNMmzYt9hp22mkns+2228aa/oILLjD33XefPa3mUQ9A3vLf//7XvPPOO/aowYMHm+OPP977dtXwPPOQC1aFwggEEEAAAQQQQAABBBBAAAEEEOgQAl999ZW5/PLLzdixY2P14uygqLegOEUxmsMPP9x8/fXXZuGFFzbHHnts1WzEcqpIGIEAAggggAACCCCAAAIIIIAAAg0IkADUAFacSRWsufTSS80tt9zSUMBIy15ooYXsf/XWc//997vJP4MGDbIDSMF53njjDXf9q666qtGz5SkIIIAAAggggAACCCCAAAIIIIAAAn6BZ5991px55pnuD6n879Z+1b1799oTWO8quejcc8+1k3808QknnGD69u1bNR+xnCoSRiCAAAIIIIAAAggggAACCCCAQAMCdPvSAFa9SV944QWz1157mZtvvtlOvunUqZPZc889TZxgUL1lO+9Pnz7dDkrpdZcuXcwpp5xi5p9/fudt96+3y+gBAwa44xlAAAEEEEAAAQQQQAABBBBAAAEEEDB27GbMmDFm5MiRbvLPcsstZ7bffvum8px//vnm9ddft5e56667mg033DB0+cRyQlkYiQACCCCAAAIIIIAAAggggAACMQVIAIoJFWeyiRMnmvfff9+eVD3u6Jnx++23n5l33nntcUoISlvOOusso16GVLTsHj16hC6SoFEoCyMRQAABBBBAAAEEEEAAAQQQQAABW+C7774zt956q6ux9dZb248BW3HFFd1xaWM5Tz/9tLntttvs5fXq1cuMGDHCXXZwgFhOUITXCCCAAAIIIIAAAggggAACCCDQiACPAGtEK8a0iy66qNl5553tX4uph55mlnvuucdMmTLFXqQe67XddttFLt4JGnXr1s307NnTnq5SqZiZM2fajxlbbLHFIuflDQQQQAABBBBAAAEEEEAAAQQQQKCjCAwZMsTsvffeZo011mjqJs+dO9d+9Jez0MMPP9x07tzZeVn1l1hOFQkjEEAAAQQQQAABBBBAAAEEEECgAQESgBrAqjfpZpttZnbffXez8MIL15u04fe//PJLc9FFF9nzzTPPPObII480+htWvv32W/Pmm2/ab+nxX1OnTjVXXnmlee6558ycOXPs8UsttZRREtEBBxxglllmmbDFRI5TEtG0adMi358xY4adZKRA1zfffBM5HW8ggAACCCCAAAIIIIAAAggggAACrRJQXOWSSy4xgwYNyqQKN910kxs/2Wijjcz6668fuZ6sYzmvvvqq+fe//x25/i+++MKO5Xz11VdGPSNREEAAAQQQQAABBBBAAAEEEECgfAIkADVxn/Xv37+JS/Mv6oYbbjCzZ8+2RyrRaKWVVvJP4Hk1ffp08/XXX9tjlPRz0EEHed793+CsWbOM/j3++OPmwAMPNMOGDauaJmrEfffdZ0466aSot+3xffr0MR9//LH56KOPak7HmwgggAACCCCAAAIIIIAAAggggEArBPR4r6ySf5RQc9VVV9mbpfXoMe61StaxnNGjR5uHHnqoVhWMYjn6UZfz6PmaE/MmAggggAACCCCAAAIIIIAAAggUToAEoMLtkuoKqdeecePGuW8MHz7cHQ4bcLqM1nsK2qh76TXXXNOstdZapnv37uatt96ygz7vvfee3SPQueeeaxZZZBEzdOjQsMUxDgEEEEAAAQQQQAABBBBAAAEEEECgAYF//OMfRklAKptssonp27dvzbmJ5dTk4U0EEEAAAQQQQAABBBBAAAEEEIghQAJQDKRWT3LHHXeYTz/91K6GuoxeYYUValbJGzTq0aOHGTPm/7F3H/BVFWnjx5/0RgkloSb03gVRigi8ovuKu7igyOpacP+giLAgyguvoGJZxEJbdXXFAr5rQcTCoguCIk1QhBBaaAFCAiEEAoT09j9z9BxucntyQ25yf/P5XO6cOTNz5nzvu74yPjMz36rN2LFjZfHixbJq1Sq9r0WLFkmfPn2kXr16DvvmJgIIIIAAAggggAACCCCAAAIIIICAfQF1HPry5cvNCs4WcqmKzOWYXGQQQAABBBBAAAEEEEAAAQQQQKCcAgQAlRPuajVT565/8skn5uNcmTQaMWKEvoX16dOn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tVJQUJDcfffdMmbMGElNTZWkpCTJz8+X9u3bS+PGjV3thnoIIIAAAggggAACCCCAAAIIIICAzwjcdtttoj7OkppvUR9PJuZyPKlJXwgggAACCCCAAAIIIIAAAgj4lgABQD7we/v7+0vTpk31jw+8Lq+IAAIIIIAAAggggAACCCCAAAIIVGsB5nKq9c/H4BFAAAEEEEAAAQQQQAABBBCoEgGOAKsSdh6KAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggIBnBNgByDOO9IIAAggggAACCCCAgJXAhQsXpKioyKo8IiJCQkNDrcopQAABBBBAAAEEEEAAAQQQQAABBBCoGoHi4mLJyMiw+fDIyEgJCAiweY9CBBBAAAEEvEWAACBv+SUYBwIIIIAAAggggECNE7jvvvvk4MGDVu81Y8YMGTt2rFU5BQggUDkCxRcvipQU6537hYSKX1hY5TyIXhFAAAEEEEAAAQQQQAABBKqtQHp6utxwww02x//1119LmzZtbN6jEAEEEEAAAW8RIADIW34JxoEAAggggAACCCCAAAIIIFApAtnTHxPJzdX7Dvr9HyTkjrsq5Tl0igACCCCAAAIIIIAAAggggAACCCCAAAIIVJWAf1U9mOcigAACCCCAAAIIIIAAAgggcFUECgvNx5RkZZl5MggggAACCCCAAAIIIIAAAggggAACCCCAQE0RIACopvySvAcCCCCAAAIIIIAAAggggIBNAb/atc1yv4haZp4MAggggAACCCCAAAIIIIAAAggggAACCCBQUwQIAKopvyTvgQACCCCAAAIIIIAAAgggYFMgoFMXszzwmt5mngwCCCCAAAIIIIAAAggggAACCCCAAAIIIFBTBAJryot483vs2bNHJk6cKLW1VaerV692eagpKSnywQcfyMGDB0Xlo6OjpWvXrtKtWzcZOnSohIWFOe2rqKhIvvnmG1m3bp2cPHlSsrOzpVOnTnof/fr1k44dOzrtgwoIIIAAAggggAACCCCAAAIIIICALwk8/vjjsn37dpkyZYqMGjXKpVf31ByMp/pxadBUQgABBBBAAAEEEEAAAQQQQACBGiNAAFAl/5SZmZkyd+5cKSkpcetJH330kbz11luiJn2MdOLECVEfFUS0atUqefnll/WgIuN+2e+zZ8/KtGnT5NixY6Vu/fzz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EAABEAABEAABEAABEAABEHCGgDjtTJgwQbvY8ccfr0T8ady4sRIJaM6cOYoT0NatW+n222+nSZMmUYcOHbT0+g3YcvQ0sA0CIAACIAACIAACIAACIAACIAACIGCHAByA7NBKQNrnn39ec/4ZMmQI3XfffVS3bt2gki+++GK69dZb6cCBAzRjxgw66aSTaOTIkUFpCgoKFCOTHBw0aFBEJyE1U0pKirqJbxAAARAAARAAARAAARAAARAAARAAARAAAQsEJIrz+PHjlZSpqan0wAMP0PDhw4Nyjh07liZOnEgfffQRFRcXK2leffVVkqXe9QJbjp4GtkEABEAABEAABEAABEAABEAABEAABOwSCLY02M2N9I4S8Pv9NH36dOWaderUoXvuuSfM+UdOdu7cme68804lUpDsf/HFF2EOQBs2bKBAICCnqWfPntSoUSNlG39AAARAAARAAARAAARAAARAAARAAARAAAScITBz5kwSxx2RSy65JMz5R46Lo8+NN95IK1eupNWrV9P69euVCM+9evWS05rAlqOhwAYIgAAIgAAIgAAIgAAIgAAIgAAIgEAMBBD2JQZobmVZs2YNyTJfIsOGDaOGDRtGLOrEE0+krKws5bzkCxV9yOhu3bqFnsY+CIAACIAACIAACIAACIAACIAACIAACIBAnASWLl2qXeGss87StkM3JDrQiBEjtMNr167VttUN2HJUEvgGARAAARAAARAAARAAARCoCgIFpaVascc4cAUEBEDAewTgAJREz+zYsWPKcl3t27enaE47smRXgwYNlNofPHhQCSGtvxUYjfQ0sA0CIAACIAACIAACIAACIAACIAACIAACzhOQyVsSeblNmzbUrFkz0wL00Zn37NkTlha2nDAkOAACIAACIAACIAACIAACIJBAAl/u3KWVNiVvu7aNDRAAAe8QwBJgSfSshgwZQvKxIkePHqUdO3YoSdu2bUsZGRlB2VSjUf369TUDlCwJtmvXLsrOzqZ69eoFpccOCIAACIAACIAACIAACIAACIAACIAACICAPQKyfLtVkaW/VOnUqZO6qX3DlqOhwAYIgAAIgAAIgAAIgAAIgEAVEMjkABRFZWVKyQ0y0qugBigSBEAgXgJwAIqXYBXl/+yzz7SSe/TooW3LRimHZ9u4caNyTCIJLV++nN58801atmyZtsRY06ZNlRlq119/PbVq1SooP3ZAAARAAARAAARAAARAAARAAARAAARAAAScI5Cfn09ff/21dkHYcjQU2AABEAABEAABEAABEAABEEgSAic3bkSHK5b+6lW3bpLUCtUAARCwQwAOQHZoJUnavXv30ltvvaXUxufzUega81u2bNGWBBOnnxtuuCGs5rt37yb5zJ8/n8aNG0fnnXdeWJpIBz7//HOaOHFipNMkS5LJMmaHDh2iAwcOREyHEyAAAiAAAiAAAiAAAiAAAiAAAiAAAiBQEwjIxCzVRiLRn1u2bBl0227bcu677z5asGBBUJn6nW3btim2nJ07d2qTx/TnsQ0CIAACIAACIAACIAACIFD9Cbw2qH/1v0ncIQhUcwJwAPLYA5alv26//XY6duyYUvMLLriA+vTpE3QXashoOVhQUEBZWVnUr18/6t+/P8na9Js2baLZs2fT9u3bFaPOM888Q3Xq1KFRo0YFXSfSjjj2yDXMRJYkS01NNUuCcyAAAiAAAiAAAiAAAiAAAiAAAiAAAiBQ7Ql8+eWX9N577yn3WatWLbrzzjvD7tltW4449lix5chEMwgIgAAIgAAIgAAIgAAIgAAIgAAIgIA3CcAByEPPraioiO6++27asGGDUus2bdrQtddeG3YHeqNR48aN6emnn6YOHToEpRs7dixNmDCBpk2bphx/7rnnaNCgQdSgQYOgdNgBARAAARAAARAAARAAARAAARAAARAAARCIjcC8efPoiSee0DLfdNNN1KxZM21f3YAtRyWBbxAAARAAARAAARAAARAAARAAARAAgVgJwAEoVnIJzifLat111120cuVKpeSmTZvS+PHjKTMzM6wmZ599NvXq1Yt27NhBI0aMoBYtWoSlkahAt912G61evZrEyCRRfaZMmULXXXddWFocAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQsEdAIv+I809paamS8fLLL6czzjjD8CKw5RhiwUEQAAEQAAEQAAEQAAEQAAEQAAEQAAEbBOAAZANWLEnFaaesrCxi1r59+9Kll14a8bycyMvLU5b9kvXYRcSh59lnnw1bL145yX9at26tfNT9SN+yRNeVV16pRBWSNPrZZpHyyPGLL76Yzj///IhJ3njjDbrhhhsoEAhETIMTIAACIAACIAACIFATCEiURYniGCrizA0BARAAARAAARBITgJO2HJe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AARAAARAAARAAARAAARAAARAAARAAARAwBkCcAByhiOuAgIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAJVQiCtSkpFoaYEysrK6JlnniH5tiKnnnoqDRw40DBpaWkpTZ8+nb799lvaunUr5efnU48ePah37940dOhQ6t69u2E+HAQBEAABEAABEAABEAABEAABEAABEAABELBGYN68efTjjz9aSpyVlUU33nhjxLSw5UREgxMgAAIgAAIgAAIgAAIgAAIgAAIgAAImBOAAZAKnqk6Jo84nn3xiufh27doZOgDt2bOHbrvtNtq0aVPQtRYtWkTymTx5Mt199900evTooPPYAQEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQsE7g66+/plmzZlnKkJOTE9EBCLYcSwiRCARAAARAAARAAARAAARAAARAAARAwIAAHIAMoFT1obVr18ZdhWPHjtEdd9yhOf907tyZTjrpJGrSpAktXbqU5syZQ8XFxfTQQw+RpD3vvPPiLhMXAAEQAAEQAAEQAAEQAAEQAAEQAAEQAIGaSGDdunVx3zZsOXEjxAVAAARAAARAAARAAARAAARAAARAoEYTgANQEj7+9evXa7UaP348ifOOmcjMsVB54403aMOGDcrhkSNH0j//+U9KT09X9s8++2xatmwZ3XnnnYrzz4QJE2j48OHUuHHj0MtgHwRAAARAAARAAARAAARAAARAAARAAARAwIRAQUEB5eXlKSkGDRpE9957r0lqopSUFMPzsOUYYsFBEAABEAABEAABEAABEAABEAABEAABiwSMLQ4WMyOZOwTUWWOpqanUr18/atSokelH1o7Xy+HDh+mzzz5TDjVt2jTI+UdN16dPH+W47Mva8mp69Ty+QQAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEohOQCViBQEBJ2LNnT1Mbjth4GjRoEHZR2HLCkOAACIAACIAACIAACIAACIAACIAACICATQJwALIJLBHJVQeg9u3bU2Zmpu0iv/vuO5LZZyLnnHOOFvkn9EKyJFibNm2Uw+IA5Pf7Q5NgHwRAAARAAARAAARAAARAAARAAARAAARAwISAaseRJN26dTNJGfkUbDmR2eAMCIAACIAACIAACIAACIAACIAACICANQJwALLGKWGp9u7dSwcP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AAIgAAIWCMAByAKkeJI0b97ccnZZNuvdd99V0o8dO1ZZG94sc25urna6bdu22nbPnj1p8eLFyv6vv/5KI0aM0M6Fbixbtkw7JPkgIAACIAACIAACIAACIAACIAACIAACIFCTCVi15cjEqzPOOENZ+j0jI4O+/PJLJZpPJHaR7DiSHracSNRwHARAAARAAARAAARAAARAAARAAARAwCoBLAFmlVQC0g0ePFgrZe7cuRQIBLT90I0lS5bQ6tWrlcMya0w/c0zv8DNjxozQrNq+LP/1yy+/KPvdunUjLAGmocEGCIAACIAACIAACIAACIAACIAACIAACJgSqFWrluK4I4mKi4tpwYIFpunVSV+SaNiwYUFpYcsJwoEdEAABEAABEAABEAABEAABEAABEACBGAjAASgGaG5l6d27N9WtW1e5/Pr16+mDDz4wLEpCSz/99NPauXHjxlFqaqq236VLFxKHHpEffviBjJyAJDT1Y489psxSk3SXXnqpfEFAAARAAARAAARAAARAAARAAARAAARAAAQsEtA78jz33HN05MgRw5wffvghLV26VDkndptRo0YFpYMtJwgHdkAABEAABEAABEAABEAABEAABEAABGIgAAegGKC5lSUzM5Puvfde7fIvvPCC4uizfft2JRqQOP7MnDmTrrjiCtq8ebOS7oQTTqCTTz5Zy6Nu3HLLLeomPfzwwzR58mSS6/j9fpJlv2677TZtmTAJM33KKado6bEBAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAQncCFF15IMqFLZPfu3XTNNdfQvHnzSJYHExvMunXrFLuMOAeJyFJhN910E/l8PmVf/we2HD0NbIMACIAACIAACIAACIAACIAACIAACNglkGY3A9K7S2Do0KF03XXX0auvvkplZWU0depU5SMGIgknrZcxY8bQX//6V/0hbbtXr150//3306OPPkqFhYU0adIk5SORgkpLS7V0rVq1oscff5xSUuALpkHBBgiAAAiAAAiAAAiAAAiAAAiAAAiAAAhYIJCWlqbYX8SpJy8vj7Zt20Z33XWXklPOiROQKk2bNlWcgbp3764eCvqGLScIB3ZAAARAAARAAARAAARAAARAAARAAARsEoDXh01giUh+2WWX0WuvvUb9+/fXilOdf8SBp1OnTnTPPffQzTffTGJMiiSnnnoqvfzyy8pyYKqDj+r8I/kuuOAC5Xz9+vUjXQLHQQAEQAAEQAAEQAAEQAAEQAAEQAAEQAAETAg0adKE3nrrLZIl2nNycrSUqvOP2F1GjhypTMyK5PyjZoItRyWBbxAAARAAARAAARAAARAAARAAARAAAbsEInuP2L0S0jtKoHPnzjRhwgQ6duwYbdmyRZlB1rx5c5I14WWpMKvSsWNHxcAkUYAk7PSuXbuoZcuW1LZtW6pdu7bVyyAdCIAACIAACIAACIAACIAACIAACIAACIBABALp6el0ySWX0MUXX0w7d+5UbDkymatr164k9hw7AluOHVpICwIgAAIgAAIgAAIgAAIgAAIgAAIgoBKAA5BKIkm/ZeZYjx49lE88VczKylLWpFfXpY/nWsgLAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAQTkAiMMvEK/nEK7DlxEsQ+UEABEAABEAABEAABEAABEAABECgZhHAEmA163njbkEABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABKoZATgAVbMHitsBARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARCoWQTgAFSznjfuFgRAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAoJoRgANQNXuguB0QAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAIGaRQAOQDXreeNuQQAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEqhmBtGp2P7idJCTw7rvv0pIlS5KwZqgSCIAACIAACIAACLhLYNGiRXT06NGwQiZOnEjTpk0LO44DIAACIAACIKASeOutt6h27drqLr5BIKEEbr/9dmrQoEFCy0RhIAACIAACIAACIFDVBIqKimj79u2G1Rg3bhzezw3J4CAIgAAIgIAQ6NKlCz3++ONVDgMOQFX+CKp/BVatWkXygYAACIAACIAACIAACJQTEOdoOEhDG0AABEAABMwIyOADHIDMCOGcmwRmz57t5uVxbRAAARAAARAAARDwHIFvvvnGc3VGhUEABEAABBJHYPDgwYkrzKQkX4DF5DxOgYBtAjt27FAc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y8yEzjocTvAiHi+0s9N7771nt956q7344ou1dsEB6Pvf/74dffTRRb+0rVVQgC833HCDPfDAA64mXCu8aA6VMNj8+9//7qrr3r277bTTTvVW/fbbb9vll19u7777bp08MBgddNBBduKJJ1qHDh3q7E/7h1dffdUZY3A+I0eOrFMddAKep0yZYhiQRBPuhSFDhri/xo3TD0p35ZVX2mOPPeYggLMRI0ZYs2bNopAottGphSY++OADZ/z6zne+44wWUfDjx4+3O+64wz788MPoz9alSxc766yzbLfddqv1e4gvcJp58MEH7ZVXXnFtYqEuCIwvO+ywg7s3DjzwQGvVqlUImDnrgIMSOH3iiSec4RbGz/oS7kkY0LfbbjsbMGCA7b777hXfFtZ3Lg3xO56Vt99+uzPqw+gJx7BevXpZv3793LMljnMVnrknnXSSg3/CCSe49rEhzoWlTvVVKtf5FxpSX6X8O0l9lfI5LLYE9VWKZUz5xYAYqCQG2Pujixcvdi/o4TiQPckJL6RgA7nnnnucjcrzDltI37597eyzz7auXbv6nyvyE44HgwcPdth+9KMf2U9/+tOgONGvgJ0DCbY9jFdyJdg//vznP9uf/vQn52iQnQeOQKeeeqp997vfzd6V+ndo/Mknn7SXXnrJjZUwdo0mOOjed9999te//tU+/fTT6C7n6LH33nvbMccc45yYau1M4cvHH39shx12mCsZ9sZLL73U2QlSqCrVIr/66iubM2eOs4VAG5hAiUla0YQJimPGjLF//etfhvw+4f7cb7/97Mwzz6xj+/F50vx85plnDGPG1157rVa7katO2PZg44TNe9CgQda7d+9c2YL9Nm3aNHvkkUds0qRJzuExnx0K9m/cC9tvv70dcMABwSctBiMlpYqY7QopUZJqseqrqK+ST2Dqq7Q19VXyKST3PvVVcvPC+qscgFivnHBXPAN4OXz11Vfb448/nhMrjDBHHnmknXzyyQUjRYR2AILB/ve//7172Q0nIAzeMGDDwG3o0KHufGDsGDZsmJvxkfME1/2488472/nnn1/RA6aGfKkGL9lDDjnE0Qej0TnnnJOTShjmbrvttpwGo+gBcI6AIaR///7Rn1PbxsyZ66+/3h599FFXBwb4d955Z636gBv4YWTMl+DkcfHFF7vZZPnylbsv6gCEsqDrX//61zQzyGCE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4i71yjWqWpdKPVjHiQExIAbEgBgQA2JADIgBMSAGxIAYEANiQAyIATEgBsSAGBADYkAMiAExIAbEgBgQA2JADIgBMdCwDHCFSGlYrlS7GBADYkAMiAExIAbEgBgQA2JADIgBMSAGxIAYEANiQAyIATEgBsSAGBADYkAMiAExIAbEgBioOAa0BFjFXRIBisPAsmXLbP78+bZ8+XLD9ueff24tW7a0Nm3aWNu2ba19+/a2ySabxCkqaB4E3Jo7d6599tlnGexffvmlwwzc+APu1q1bB8VVqDJW3DgvVq2w4mbVCituabxQ65X8flatsOJm1jiwf/HFF7Zw4UJbtWqV+8Mz3/dV8Ln++usnL9KESvzkk09s6dKlDjfOo3nz5g47cLdr185atGiRUE3JFsOKm1UrrLihOlatsOJm1Qor7mRbVpUmBpJhQP3RZHgsphTZFYphq/y80nj5HBZbgjReLGPl5ZfGy+OvlKOl8VJYK/8YjbnK57CYEpjHXKxaYcXNqhVW3LiPWbXCiruYtrNQXjkAFWJI+yuGAdywDz74oL3yyis2Y8YMw6AjX8JLtR122MF22mknO/DAA61Vq1b5sqe675lnnrGnn37aXnvtNVuyZEneuho3bmzdu3e3Pn362KBBg6x3795586e5kxU3q1ZYcUODrFphxc2qFVbc0niaT5rcZTNrZdq0afbII4/YpEmTnLNyvv4KHJa3224723777e2AAw6wjh075iYkwK9wph4/frw98cQTNnPmTFu5cmW9tTZp0sS6devmsA8YMMB23313wzrKDZFYcYMrVq2w4mbVCituabwhWkTVKQYqkwGNucJeF+Z+NKtWWHGzaoUVN1oCVq2w4mbVCituZo1rzBW2r4LaZFcIy7k0HpZvaTw838waT4utRuteSuT3okirZpUrBopg4C9/+Yv98Y9/zPsyKl9xeMH2ox/9yI444oigL6gQ7efKK6+0N954Ix+8vPvwYu20006zLbbYIm++JHey4gYHrFphxc2qFVbc0rja8bhtvTQeXitw9L3nnnuck3Lc6xTN16xZMxs8eLCdeuqpLiJgdF+a24sWLbI777zTOf/kc/rJh2GrrbayU045xdBnCZVYcYMfVq2w4mbVCituaTx8Ox6q3VU9YqBYBtQfDd8flV1BtrO49ymrVlhxs7aHrLhxH7BqhRU3q1Y05go/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8RQbPhUtBsSAGBADYkAMiAExIAbEQGIMaMyVGJWxC5JdITZViWSUxhOhsahCpPGi6Co7M7PGyz75GAU0jpFHWcSAGBADYkAMiAExIAbEgBjIwcDChQtt1KhRtZx/OnfubK1atcrknjt3rg0bNszuuuuuzG+VsDFmzJhazj+IWrTxxhtnoFVVVdn9999viEb04YcfZn5v6A1W3KxaYcUNnbJqhRU3q1ZYcTd0W6z6xYAYEANiQAyIATEgBsQAKwMac4W9csxjLlatsOJm1QorbrQErFphxR2q9VUEoFBMqx4xIAbEgBgQA2JADIiBbxwDN954o61atcqd16BBg2z48OHWoUMHg/PM9OnT7fe//7299tpr7vsf/vAHw/rPfpmvhiTjnXfesYceeshBAN5f/vKXNmDAAGvcuLEtX77c/v73v9uf/vQnF8lozpw57rxwrptssklDwjZW3CCNVSusuFm1wopbGm/QplGViwExIAbEgBgQA2JADIgBMRCTAY25YhKVYDbZFRIkM0ZR0ngMkhLOIo0nTGiB4pg1XuDUEtstB6DEqFRBSTNw77332j333JN0sa68H/zgB3bsscemUjYKHTJkiHvRl0YF48aNS6NYVyYrblatsOKGWFi1woqbVSusuKVx90io8y/N5w+rVj755BN79tlnHVd77bWXXXjhhRneGjVqZNtuu61df/319uCDD7pPOAUhChCiA6XZD8mAyLPxyCOP2FdffWVNmjSxa665xnr06JHJ3bZtW0Nf6Xvf+56dffbZ9t5779lHH31kZ555pnNo2mCDDTJ5Q2+w4mbVCitu6JJVK6y4WbXCijt026v6xEAxDGjMVZetNG1QrP1osMSqFVbcrFphxS2N120L8YvsCnV5kcbrcpK2VjTmys15Wr8yj7lYtcKKm1UrrLhxz7NqhRV3Wu1srnLlAJSLFf1WEQysXr3ali5dmgqWL774IpVyfaHAjZd8bIkVN6tWWHFD16xaYcXNqhVW3NJ4+KcXq1Zmz56dIevUU0/NbGdvHH744QanmUsuucTWrl3rnGg6depkiBjUUGnWrFmu6v3226+W808Uz4Ybbmg333yzjRw50t544w2bP3++ixSEWS3RJc6ix6S9zYqbVSusuKFDVq2w4mbVCivutNtalS8GymFAY6667KVpg2LtR4MlVq2w4mbVCituabxuW5j2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AAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEE0ggQAJRGjXUQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEECiIAAFABTkRZAMBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgTQCBAClUWMdBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQKIkAAUEFOBNlAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCCNAAFAadRYBwEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBgggQAFSQE0E2EEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBII0AAUBo11kEAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoCACBAAV5ESQDQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEE0ggQAJRGjXUQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEECiIAAFABTkRZAMBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgTQCBAClUWMdBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQKIkAAUEFOBNlAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCCNAAFAadRYBwEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBgggQAFSQE0E2EEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBII0AAUBo11kEAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoCACBAAV5ESQDQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEE0ggQAJRGjXUQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEECiIAAFABTkRZAMBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgTQCBAClUWMdBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQKIkAAUEFOBNlAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCCNAAFAadRYBwEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBgggQAFSQE0E2EEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBII0AAUBo11kEAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoCACBAAV5ESQDQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEE0ggQAJRGjXUQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEECiIAAFABTkRZAMBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgTQCBAClUWMdBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQKIkAAUEFOBNlAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCCNAAFAadRYBwEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBgggQAFSQE0E2EEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBII0AAUBo11kEAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoCACBAAV5ESQDQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEE0ggQAJRGjXUQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEECiIAAFABTkRZAMBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgTQCBAClUWMdBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQKIkAAUEFOBNlAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCCNAAFAadRYBwEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBgggQAFSQE0E2EEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBII0AAUBo11kEAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoCACBAAV5ESQDQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEE0ggQAJRGjXUQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEECiIAAFABTkRZAMBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgTQCBAClUWMdBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQKIkAAUEFOBNlAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCCNAAFAadRYBwEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBgggQAFSQE0E2EEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBII0AAUBo11kEAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoCACBAAV5ESQDQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEE0ggQAJRGjXUQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEECiIAAFABTkRZAMBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgTQCBAClUWMdBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQKIkAAUEFOBNlAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCCNAAFAadRYBwEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBgggQAFSQE0E2EEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBII0AAUBo11kEAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoCACBAAV5ESQDQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEE0ggQAJRGjXUQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEECiIAAFABTkRZAMBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgTQCBAClUWMdBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQKIkAAUEFOBNlAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCCNAAFAadRYBwEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBgggQAFSQE0E2EEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBII0AAUBo11kEAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoCACBAAV5ESQDQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEE0ggQAJRGjXUQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEECiIAAFABTkRZAMBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgTQCBAClUWMdBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQKIkAAUEFOBNlAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCCNAAFAadRYBwEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBgggQAFSQE0E2EEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBII0AAUBo11kEAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoCACBAAV5ESQDQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEE0ggQAJRGjXUQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEECiIAAFABTkRZAMBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgTQCBAClUWMdBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQKIkAAUEFOBNlAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCCNAAFAadRYBwEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBggi0L0g+yEYrFpgyZYraYIMN1HfffaeWXHJJ9cYbb6hOnTo1RKRUKqnNNttMjR8/XrVp00Y98sgjatNNN809L7Nnz1YPPPBAYD+bbLKJWmWVVQLT0ow8/vjjavr06d6qYtyvXz9vnIH6BYYPH66++OILb0MbbbSRWm211bxxBpIJvP/+++rhhx9Wo0aNUp9++qmaMWOGmjVrllp88cXV0ksv7fxbY401VP/+/Z3rs317PsqSCTdu6dZ4rcjnydixYxOhS5nu0qWL85ko9+wVVlhBtWvXLtE2WDgfgeeff15dd9116p133lHTpk1Tv/zyi1puueWcfyuvvLIaOnSos+PWWNbzEWerCCCAAAIIIFAUgTR1N3GenaiHKcoZtisfPG9ne76oh8nWs0hba43XCvUwRSqB9eclzrNEayzn9cvW3kLerg899JD66quvvIxk9T7M2yADCIQE8i7Tod0xikBjBfQXbRICDRXQwSglfRU4/y655JKG5kV2PmLECC8/vXv3Lv3www+552nChAnePl0L/YIxk/1uvfXWgW2vv/76mWyXjbQIrLvuugHja665pmUmQ7EF7rzzztKaa64ZsHSvh0p/O3fuXPrzn/9c+vzzz2PvhwUbJ1DPtfLSSy+VdCBY4zKfcs9nnnlmojIdVdZ1MFBpzz33LN18882ln3/+OWVOWK0ege+//740cODAqueyT58+3i7SlnVby7l34AwggAACCCCAQNMKJKm7SfrsRD1M0xab3A4s7fN2bhmydMPUw1h64hJkO+21YvN3U+phEhSQAi+a5FkibTmXw7e5rOd9+tK6xjUNvwe44YYb8j4ktt/KBdKWadNsca8h0/lif3YJ0AWYftNGapzALbfc4rSyIzlYffXVlX6R37jM/G/PO+64o9ppp52cMR2Yo84444yG54kMINDMApMmTVJbbbWV0gEO6u233050qPIrgauuusq5f8hfUvMJSOtagwcPVvIrEP+vQprvSCsf0Zdffql0xazaf//9lQ7iVPpLQOWFmZOLgNjfc889Vbe99tprV51fbSblvJoO8xBAAAEEEECg0QJJ626SPjtRD9PoM8z+W5sA9TCt7YzHP16+m863oh4mfpnJa8mkzxJJ80FZTypWe3lMaxuxBALVBLiGqukwL6kAAUBJxVg+MwHp1ueoo47ytnfBBReoBRZYwBtv5MCFF17odbdy3nnnJe6+pZF5Z98I2CQwdepUte2226rnnnuurmzLF/MhQ4aok08+ua7tsHJxBHQ8tdPVkgSHXnvttWrevHnFyVwDcyLdZG6++ebq0UcfbWAuWteuR44cqe66667Ig+7QoYNacMEFnXlpAoAo55GsTEQAAQQQQACBAgkkrbtJ++xEPUyBTjpZaWoB6mGa+vSmPji+m1amox6msk1ec9I+S8TJD2U9jlKyZTBN5sXSCIQFuIbCIoxnIdA+i42wDQTSCBxxxBFKd+firLrFFluoXXfdNc1mcllnrbXWUgcccIC6/vrr1dy5c9Wf/vQnp8WF9u25ZHIBZ6OtUuDbb79V8kvPKVOmlB3/lltuqfbaay+1/PLLO/+WXXZZNXv2bPXxxx87/6T/51tvvdW5Pv0r62Z+1TLLLOMEA/mnM2yfgJzvgw8+OJDxNm3aBMZtHdHdJ1QMeP3pp5/Ud999p3RTx+qzzz6LvD7kc0lazBo9erSSzytSvgL3339/2Q6OPPJIddxxx6nu3bs78+QXGm4gUNnCVSY0czmvctjMQgABBBBAAAGLBJLW3aR9dqIexqJCQVatFaAextpTl3vGm/27KfUwuRehTHeQ9lkiTiaavazHMch6GUyzFmV7rU2Aa6i1nXEzx0s0gxln9hISGDZsmNOdiTv5tNNOcwcL8/ekk05SN910kxNgMGbMGDV06FB1/PHHFyZ/ZKQ4AocddpiaPn26lyHpoodUW+Cf//xnWZdfYnf55ZerjTfeuGwDEtgjrcFIOuigg9Qpp5yiTj31VCXN0fvT3/72NzVgwAAlQUOkYglwrcw/H7fffrtafPHFY50c6fZs+PDhTlmXZtrdJF8Mjj76aFoCckFy/Dt+/PjA1uX+dOmllwamLbnkkoFxynqAgxEEEEAAAQQQsFQgTd1Nmmcnl4d6GFeCv7UEeN6uJRQ9n3qYaJdmnsq1Mv/sUg9jVylP+ixBOc/n/OKajytbbZwAZbpx9uzZvAABQObNW/0epTkzfyCNtP4jXQAVLa200krqj3/8o9MKkOTtrLPOUoMHD1adO3cuWlbJT4MFDjnkkAbnwL7dSysnF110USDjcs1JoMNSSy0VmF5pRJa/+eablWzrjjvu8Bb78ccfnW1Lt4KkYglwrSQ/H/KZM2jQIKe1LOn6a8KECd5GHnvsMfXmm2+qvn37etMYyF7g66+/Dmx0hx12CIxHjVDWo1SYhgACCCCAAAI2CaStu0nz7OS6UA/jSvC3lgDP27WEyudTD1Nu0hqmcK0kP8vUwyQ3y3qNpM8SlPOsz8D87eGajytbbZwAZbpx9uzZvEBb87tkj61d4IEHHlDvvfeex3D44Yd7w0UbkKau3fTNN98o+aUMCQEE6hd4+eWX1bRp0wIbuvrqq2MH//hXlK76evXq5Z/kXKs///xzYBojCNgsIC3MXHHFFWWHcNddd5VNY0K2AnPmzAlscLnllguMM4IAAggggAACCDSjQNq6m3qfnaiHacbSxDEVQYB6mCKcBfJgkwD1MI07W/U+SzQu5+wZAQQQQACBYggQAFSM89CqcnHhhRd6x7vIIouonXfe2Rsv2sA666yjVlttNS9bl112mdPaiDeBAQQQSCUwceLEwHrt27dX0hpYmrTooouqAw88MLCqBOz5Aw0DMxlBwFKB7bbbTvXo0SOQe8p5gCOXEfn1uz8tvPDC/lGGEUAAAQQQQACBphRIW3dT77MT9TBNWZw4qAIIUA9TgJNAFqwToB6mMaes3meJxuSavSKAAAIIIFAcAboAK865aBU5eemll9SoUaO8Y+3fv7+Sl/f1pKlTp6px48ap6dOnK3npL9H5yyyzjNpwww1Vx44d69m0s+7vf/97dc455zjD0mKJ9BksXYO1xiQtqkiFwdtvv60+++wz1bVrV8d6gw02qPs8mvaUpkTff/99NWnSJKfsSPOucjzSkszKK69sOjuB/Ul5/vDDD9Unn3yiJDBGyvO6665b9uI/sFLMkS+++MI57g8++EDNnDlTdevWzQlyk0pWk2nKlCmB3XXp0kVJQGDatP322we6FpTtvPXWW2qttdZKtcm87ytupiZPnqw++ugj9fHHHyv5dYuUvVVXXVWtsMIKzrl3l7Ph74wZM9Szzz6rZs2a5ZUpuaZI2QpIUKr/+vn0009T78BUOfdnMM/7m7ufRhyXu2/+IoAAAggggAACzSCQR91NEhfqYeZrNVMdjBwR9TDUw1S6D5j8Dkc9TKWzwPRKAtTDVJKZP93k9Vs9J8xtRgGp35cfP0r9Z4cOHZS0yr366qsr6Ta2kSnvz5JmeQacN2+eGj9+vFOXLe+lvvzyS+c8yrsgeW+w/vrrq8UWWyyTU2nq3YTJY0oLY+K+XOTn+rRuTbeejqYlIWBMQFfiyM/ovX933HFHqn1/9913pfPOO6/Ut29fb1v+7crwggsuWNphhx1KjzzySKp9uCuNGTMmsI8+ffq4szL7O2HChMA+JP/XXXddJtvfeuutA9vWH6qJtvvDDz+UdABUqXfv3iUdjBLYlmsu1r/5zW9Kw4YNi73ttddeu6Qf2Lx/Tz31VOx1ZcFVVlnFW1e2M3r06Jrrf//99yXdjZtzLG7eo/7qB8iSbna8pB/kam5TFpBy5j+WW265peJ622yzjbesDvTwlhPns846q6S/VEYaSz5//etfl/7973+X9EOGt17cgeeee67029/+ttSmTZvI7Utehg4dWpo7d66zSTkG/zFdeumlcXcVazk5D2F7/WASa92ohcRk8ODBpWOOOcYpr//6179Kcl0lSabuK/pBt6RbEyvJNRA2cMcXWGCB0v7771/SgVo1D8HktaQDK71yoYPGvLzJPUK3ihI4HjkGHSwZOA+1rhUdkOdtv3v37oHtiY0OhvPmS/m88847S/rLQ2nFFVcMTBffNGmnnXYKbOfmm29Os5nAOmeeeWbZcXz11VeBZZKMbLXVVoHtDRo0KMnqpTzLeaPubwKQ5XGdfvrpgXIQ/uzTX1ID86UsyrOCP1Ur62nKuX/bDCOAAAIIIIAAAnkLJKm7yeLZKXw8rbkeJq86GDE2+d3RPafUw1AP45aF8N8sv8OFtx0epx6mpf7VX2eZ9rsp9TDUw2R9/db7LFGtDkbuB2nLevhektf4PvvsE6hnOuqoo2LtSurDw5/tRx55ZKx1f/nll5L+4Wxgv+F66GquWZiuueaagTrOG264wcn7Tz/9VNItUVZ9T7LRRhuVpP4/zXuSWEARC2X9WRLeRdbPgK+99lrg/Er9pUxLmuSe37Nnz8C25F1TtXT//feXdtttt5LUobrvO6L+tmvXrqQbF3DOpZz3WinvdxPV9p/1MWVxDfnzm/V92b9tdziv53p3+/zNVkBluzm2hkBlAXmAkBu6e6PXrX2Uvv3228orVJjz4IMPlpZffnlvO+72qv2VhxXdYk2FLdaerFvlCOzv0Ucfrb1SgiWKGgAkH2oSaFPNNjxvk002cR6qax3+EkssEdju8OHDa60SmK8jvgPrP/PMM4H54ZEXX3yxpFu7CawTznt4fKGFFirJF5BaSbfOE9juNddcU3EV/4OtXAOS3nzzzarBIOF8ibE8eMVJco1J4E94G5XGJchIrlU5Bv8yEsSQZXryyScD25d9HXDAAVnuItG2TN1X7rrrrpKOai87dr+1f1iCaIYMGVKq9gBs8lrSLRN5eV966aUd4zPOOMOb5s+7O3zFFVd456LWtRJ1L3S3E/VXAuIk7bLLLoE8SHBo0vTuu+8GtiH2n3/+edLNlC2fZQCQfKlddtllA/mUwMG4Ke9ybvr+5h531sd19NFHB4yjyl54mnzG+FO1sp62nPu3zzACCCCAAAIIIJCXQNK6myyenaKOpTXWw+RZByPGJr87yv6oh2n5AWT4+4N/vDXWw2T9HU7KW6VEPUzlOst6vptSD1OpxAWn513WG1EPk8cx1fssUa0ORs5IPWU9eEbzGZMf3vo/F6T+NU4KB0zLNuKuKz+m9u9Tt6pTtstqrlmY+suv5EUCgHRrMaU11lgjkDd/PsPDO+64Y0m3/FKW96wn5PFZ4s9jXs+A8qNvv9lf//pX/25jDYffE8mPdt0fkYc38Oqrr5Z+9atfBfbp33+1YSmDurWn8CYD43m/mwjs7H8jeR1TFteQm9887svutt2/eT7Xu/vgb7YCbfUFR0LAiMA999yjdGSxt69+/fol7jbq8ssvVzpyVEkTZknSY489pjbeeGOlb6pJVvOW3WOPPbxhGdCtTgTGm21Ef4AraXJbrKWbrCTphRdeUDoCW+ko4CSr5bqsjqZV+oup09VXkh39+OOP6tRTT1W6VZkkqyVaVvKmW81wmkKMu6IYy/WjPw6qrqKDhJT0Vf3QQw9VXc4/U39xcPIjXVLlmbbcckulA/kCu9DBHOq4445TOlo5MD3vERP3FR24oU444QQl9xLpqjBukuY+r7zySqVbN4q7itHlpGsAuUYqJd06mNp7770rzc5s+v/93/8FtqWD6pT8S5J0az+BxXXgnNMUaWBig0fkc9Tf5ZcOUlI6cC5WrkyU83BG8ry/uftqxHG5++YvAggggAACCCDQjAJZ1N1k4dKa6mGarQ5Gzj/1MNTDVLoPmPoORz1MpTOQzXTqYWo7mirr/pzkXQ/TiGPyH1+zDst7C3+S7qXivMd6/PHH/as5w7KulINaKfy+QN4DNTrpQAulWz5X77zzTuys6B/qqwEDBii55+eR8v4syfsZMFxv/N///jfwjjaOWbjOfL/99lO6oYeyVfUPvpXujUS9/vrrZfPiTJCu3mR93RJSnMWdZfJ+N9GIY4p98P9b0MR9ucjP9Um9WtPy7VvTwXKsjRXQXTwFMhCuzAnMjBjRTZQq3YRh2Zzf/e53zoe8bvFB6QhQJ5DilVdeUVJppSOZveU/+ugjtfvuuzsvheWlaZIkwTC6yzFvlfCxeDOaZOCQQw5x/PyHo7uOUrqrGSWBG9I3p+6Kx/kwF+tbb701ECg0a9YstfPOO6uXX35Z6Yht/2aMD0swiQTL6JY8vH1LH6MHHXSQkrKjI5bVUkstpSTPH374obrpppuUlDV5+HLTRRdd5By7/lWWOymTv7IPCTKQfUsSYymjEqymm+9UuvUeJWVNHjQmTpwY2Kc83MhDvm7dKjDdHZHgoF133VXJcv4kx3rooYcq3YqQ0lH8zjHr6F0lD39yLiVJ8M+5557rXy3zYd2ljtIR52XBVRdccIHS3d8p3XWUE4Qm+Wzbtm3m+3c3aOq+ImUoynSvvfZSuvs8td566zl9F0vA3dNPP610qy5On7huPm+88UYlfY5LEFFRkpTfgw8+OPAFS+6tcm51c5BONqV861+Zxs6y3Ffk/EuSazd8z9ddjTnXq7vBTTfd1Bl0g3VmzpzpznLuS+eff743Xm1Arhe5j/mTlMEiJd1Eq3Pt+vMkFW5yD6uVTJVzfz7yvL+5+8nruPbcc0+lf4Xk7kadcsopatq0ad74gQceqNyy507Uv1B3B2v+TVvOa26YBRBAAAEEEEAAgQwEwvUdtepu8np2ak31MM1UByNFkHoY6mEq3Yry+g4XtT/qYaJUgtPq+W5KM0SR7wAAQABJREFUPUzQMjxmsqy7+867HibPY8rrWcK1qaesu9vI8+9KK62k+vTpo8aNG+ftRgJbevfu7Y1HDciP3qOSPMvpll+iZnnTwgFA8p4kScrD9KqrrvKyIO8D+vfvrwYOHKikzk1+JPv222+r++67z6k79xbUA6NGjVK6BfqyemT/MmmH8/4syfsZUOq3pV7TDZDSvaSoJ554QumWk2KRyLsK/ztWWSkcACrT5N2bPLvL+yx/2n777Z33cFIedav2zvsveU8r7+F0i09OXvzLS/2rBByJS62Ux7sJ/z7zPqYsrqE878uuRZGf69088reCQLYNCrE1BKIFpPuajh07Bpp+0zf66IUjpkpzaIsuumhgfel+Rpreq5T0B0Dp2GOPDayjL4PSxRdfXGmVitNlW+Eup/SHVMXlk86Iau5N8q4DAer+F26qUQfvVM2efvleZrbkkkuWHn744Yrrff311yX9MFa2njTXqD8gItcz1fS0fhAO5Et/sJZqnbuRI0eWpPsvKS/uP13pGXkcMjFsHLcLMHfb8le2IU1vVko6YMnLi7ueNLdbKenWdMqWlz5Sp0yZErmKXKN/+ctfytZx9yXdPGWd5LrSgWIV9yn71gFLJf3wWJJupKSrNP2wmlk2TN1XpAl96e7NtZS/nTp1qnr/0kFhZc1l6gCxUtR909S1JPD+Zjb9xyNNtsq1JuVIzpH+clD6+9//7kzzn7Ak18pXX30VMJP9iWWlFC6/0lWk9GcdJ8m91n88Uu6qdbsWZ5vuMmm7ABNH6bpSB/o53ePp1pQCedSBgiXpd7dWMlXOJR/hpntd06zvb7Ivk8cl/am7xyJ/9RdRyULVFLesJy3nVXfKTAQQQAABBBBAoE6BeutuZPdpnp2ist1a6mFM1cGIsanvjtTDtNQlUQ/TcnWb/A5HPUyLe57fTamHaXH2D5ks66bqYUwek1gmfZaIW85l20Wth5F6VH/dkw5+kexWTPLOJfz+wl3/D3/4Q8X1ZIZuJSiwL3lfElWHGtc1rWml8itdQelgqIrHcPXVVwfyL8dd651XxY1VmZH3Z4mpZ0DpJs0tG/J33333rXLUwVmnnXZaYF39Y+3gAv8b0z8SDiwn7zHuuOOOyGX9E+WZceGFFw6sK+c/qjzKeibfTZg6JjmuNNeQqfuyied6MSBlLyBdyJAQyF3g+eefD9zEF1tssUQv8nUzfoH1dQsTJd0aQqx8/+tf/wqsu/jii6fqFzTcd+X1118fa/9xFpKbtf9DOM/hag9Dunm9Uo8ePQJ5kRfh8lAYJ0UFXEkftlHJVMXTSSedFDgeHbUdlZ2yabrFp8B6utWgig8ecR+GZSdRD7YSYCUBH9WSjnIv6ZZiAnnSkfAlHRVdttrs2bNL3bp1CyyrW6soyfmtlXQLPIH13LKYRwCQ5EV3h1XSXaBF7tPdt/+vnAcJfLrkkktKb731Vq3DqTrf1H1F/yoqcHy6lZyS/sVC1bzJTAn2kbLhP37dAk7ZeqauJdlx1EO2BGdKwE+clORaSfrgO3bs2ICVuOnWs+Jkq6R/uRBYN01/yJV2FBUAJOdMzm3UP5knAWPyRcl/7v3D+tcTsT/HTJVzOX4T9zfX2eRxJa14kjzGLetJy7l7/PxFAAEEEEAAAQTyEKi37kbylObZqdKxNHs9jMk6GDE29d2Repj5AUDUwwSvbJPf4aiHabHP87sp9TAtzv4hk2XdVD2MyWMSy6TPEnHLuWy7qPUwuieFQD2g1A1Wq8sfMWJEYHl/PaL8cL7aj2h1SzuBdSXQISrFdU1rGlV+V1llldKXX34ZlZ3ANPnBsL+uVI5/xowZgWXqHcnzs8TkM6AE4vitpKGGOXPmxOKR8+Ff99prry1bT7YVbjxB92JQtlylCWeffXZgH7I/eV8alUy9mzB5THKcaa4hU/dlE8/1UeeaafUL5Nevir5KSQi4AtKFkT+ttdZaTnNv/mmVhqWZuWHDhgVm65uOitsdk3T1JF0quUm3VqN0RLU7GvuvNMPoT+Fj8s+zdVi6v9ItxASyf+KJJyodFBSYVmlERwQ7Tfn551944YVOE43+aSaHpQlIf9Iv3P2jFYf32Wcfp+spaZpw8803d7rT+uKLLyouX88M/ZBTs5sk6VZJuj/yJ/0gH9kfsFwv06dP9y/qdD+lfxUQmBY1It1y6Qe7qFm5TNMPnE4XZzpQTOkvNjX3ob8AqAcffNDpPkzuI5LX448/XkkfsUmSqfuKdEn1yCOPBLIm3QfF6RqvZ8+eavDgwYF1b7vttsB4EUak27Yk3R/lled11llH6RcEgc3H8ZLuyu6+++7AeuH+kQMzMxiRe4l0/Rf1T+ZJ05r6ES9yT3If0JH3ga7QIhfUE02V80r7l+lZ399km0U4LskHCQEEEEAAAQQQaDaBcD1HkrqbPCyavR6mGetgpBxQDzP/apBuwKmHmW9h8jsc9TDzzU38Tz1MubLJsl6+9/lTsq6HKcIxVTrWZpquf7Stunfv7h2S1A2GP0+9mXpAtxjujeofmyrdyr43rgNhlP7hrDceHtA9PQQmJe3+K7ByxiPSDVjnzp1rbvXUU08NLCP1qNWOObBwjJG8P0tMPgPutttuSv+o2jtq6aYr/L7Vm+kbeOGFF5w6WHeSvLvRrUu5o95f6a5OBzR54/IeS7cQ543XGpAuAMPp008/DU+qOJ7Hu4lGH1PFg/3fDJP35fB9qIjvV2t5tdb5BAC11jNv+LjfeOONwB51FHdgvNqI9GMogQ5u0i34KAkASpIkiMWf5APWv03/vErD4TyHj6nSejZNDz/8SeDPYYcdFvsQ5CEg/PAlAUXysNCopJsQDOxa+hDVTQgGpkWNLLfcckpH+irpd1R3CaZ0l1qqa9euUYvWNU2MJUgtTtJR92WVR9IXaTjdf//9gUnSp+sWW2wRmFZpRB7Q/vGPf1Sanct0HaHv9NGrW7xR559/vlpttdVi70c3xemsIwE1hx9+uNLR0rHWNXVfkWvKX950N06J7l/ST69UGErFu47qVrr1IyUBK0VJOrpfHXrooUXJTlkfxBLY4/8CEpVR+cKjW6LyZsl1JpVYRU2nn3660w/yO++8UzOLpsp5pYzkcX+TfTX6uCodL9MRQAABBBBAAAHbBcL1HOF6ENPHF95/OH+m85P1/pqxDkaMqIdRinqY4NVi8jsc9TBB+7zHdIvKgV1QD9PY9xh51MOYvH4DhamVjUj9uNT7+pP8ALBS8s/T3U06nzv+ZZ966in/qDcs9cr+ebqnDrXddtt58xs5IO9jdthhh1hZkHcB8h7Dn+SHw1mlvD9LTD4DyruFQYMGBWhuvfXWwHjUiLxH8yd5N9GpUyf/JGdYfpArP8KVd0ryo1r5gbnunaJsuUoT5EfQ7dq1C8yO+/4jr3cTjTymAESFEZP35aI/11cgYrIWIACIYmBEQKKO/SlJaxESfOFP0pqPRDUnSbrZ3cDiP/74Y1lLN4EFIkbCraKEjylilbom6ebsnFaOpKWjev5JCytxkgQpPPvss4FFJaAizq+V/Cv96U9/KovSDm/Xv3zew1G/GJQWfeJEhMsDRN5J92nqtDQUZz/yUKub7A4s+tNPPwXGpWxLhLI/SYszSdLee+8diApPsm49y+ru5pTuRk69++676vXXX1e6Gza17bbbxiqDEtB35ZVXKvHUTaDWzIap+8oDDzwQyMtOO+0Uu0UtWVGOR37xMX78eHXPPfc4ramEH7oCOzA8IvdF+YJalCRfZiTIyk26OzynxSh3POpv+MuMBF0VOUlAk+7aUvXt29f5clUtr6bKeaU8ZH1/c/fT6ONy88FfBBBAAAEEEECg2QTC9RxJ6m7ysGjmephmrYORckA9jFLUwwTvCCa/w1EPE7TPe4x6mKCwybIe3PP8sTzqYRp9TFHH2azTdt1118Chhev43ZmfffaZGjdunDvqBPCE33/5g3y8BfWAtPboD66Quuqk73/828tyWN4DxE0SMLL88ssHFs+y94Y8P0sa8QwYfi6RFqTCz/1+THnndOedd/onlf3w1p254oorOgFGJ598srrxxhuVtMiTJMk7r3BgUfidV6Xt5fVuopHHVOlY/dNN3peL/lzvd2E4KBAMkQzOYwyBzATCrZRIKz5xknwYvvTSS4FFN9lkk8B4nBFplkwCaiZPnuwtPnHiRCXRpXFTOM/SdYsEHbRtm08c3SmnnKIkmKbetM0226hnnnmm5mZ0v5pKukfzp169evlHYw3LB7Z88L722mve8uFz6M0wMKD7sFXSDZm/O50XX3xRyS8JpVWVfv36eb/MasTDbpIyKFwSle9vAjH8MCRdYUkzjv600kor+UdrDktAh6yTZdR8zZ36FpD9Syss8u+4445zAmCef/55J0Dt6aefVrpPZDV37lzfGi2Dcq/Zfffd1fDhw5WU/ahk8r4SDjRLei4k/3ndY6Jskk5bddVVk66S6/Jyr5cvy/4uveQXDXvssUfkfuVaCjeZK93/5Z3Gjh1b9sXGv08J5JPrWFommjRpknr11VeVfPGUL/hukmtgv/32c1q9GjJkiDvZ+2uynHs7DQ1kfX+TzRfhuEKHySgCCCCAAAIIINA0AmnrbvICaOZ6mGatg5GyQD2McupUklwXzVwPY/o7HPUwSUpe/ctSD9NiaLqst+y5ZSjrepgiHFPL0TX/kATALLrook6vBHK0b775ppo+fXpZayr+ukxZ7je/+Y3zQ0H/uvKD7Kh3Vw899JCs4qUidf8lQRdJkrQyIz0KuCn8TsSdnuZvnp8ljXgGlAYG5MekUqYkSb3yHXfcoY444ohIHmmhyB9QJeem0ruWyA3EmCjvZ+Vdj/yTH/H6k9x74qSivZvI4phqHbfp+3LRn+trebXm+QQAteazb/DYw5VI4YjOSlmRIBvphsmfrr32WufDyT8tznA4D3IzloejuClc8SQPUPIhmEe3UHHzlOVyYR/ZdtKHLjc/EuTgDwCqFk3srpPXX+lOSrqAO+uss8p2IQ9y8k8ChOQBWR6yJSBI/qU99rKd1JiQ9IuZv3UT2bQ/sEnG/QECMi4pzbHIORwzZsz8DTT4f+labvvtt3f+SVYkKEJ+rSABERLo4e++SeZLCykSBCIPtFEBNybvK/IlzZ8kELGZUpLu2kwdtzQ/7Q8AeuSRR5Sc86j+af/zn/8Eumjr37+/kpao8k5yTYY/UyrtU75cyYP2JZdc4tyrJDjUTXL9S7Oqcn3Ir7z8yWQ59+/XP5z1/U22XYTj8h8jwwgggAACCCCAQDMJhOsF4tbd5GUQfmZupnqYsLUYpvnuLusVqQ5G8kM9TLpz2az1MKa/w1EPI1eh2UQ9zHxv02U96ixnXQ9ThGOKOs5mnSa9EUgXkvfee69ziFLvJ119yQ8A/ckfACTvNKTHDPlRtrQC5M776quvnLr99ddf37+q8nc9Jb1s7LzzzoH5jRzp0qVLot1L8GxeKc/PkkY9A8q9+qijjvLI5EezlQKApIspf9p///1T9QIggT3y41Z5Fys/XJd/0vuD/A03RuDfX9zhRrybyPuYah276fty0Z/ra3m15vkEALXms2/o2CUi0R8tKrsNV+JUykpUCyTTpk1T8q/eJB86SVJUnuXDulkCgOSDI5zqqXzybyt8/v3zTAyfccYZTtOW8gJdKgyjkgSaPfjgg153Qeutt56SlkD23XffXAMCunfvHpWd1NP8rQPJRuRLQJqAhrTnPnXGE6worSDJrxPknwRvXXTRRU7Tkv7WkCTi//zzz1dXX3112ZZN3VckP/Jly5+aLQCoaFH2Yi1flJdddlmvpayff/7ZabL0sMMO858KZ9im7r+k6zdpSlUC4o455hjvWOQXG6eeeqq6/fbbvWkyYKqcB3YaGsn6/laU4wodJqMIIIAAAggggEBTCNRTd5MXQDPXwzRzHYyUB+phkv+wpFnrYUx+N6UeJq+7cfXtUg8z38dkWa90RrKuhynCMVU61madLj9qdQOA5BhrBQBtscUWSgJ5JMmP3d0AIBmXbsD8AUDSIvnUqVNllpO23nrr2O/p3HXy/NvowHP32PL+LGnUM6C855LeFqSuXJL0siDvSMNBNPIuzx8oJoFWBxxwgLNOnP/ef/9954es8qNcGc4zmXo3YfKYank14r5c5Of6Wl6teX4+fRe1ZlGOvUxAIjnDrZRIUEKcFH55HmeduMv4mweMs05UnqNutnG2VcRlwtbysjmqsi1O3pdeeunAYv7AjMAMQyPykDJ06FAl3UgNGDBAhVvRicqGtGB09NFHO12FSZOZeSXprzbLFG4NJ223ZmnPfZbHEmdbSyyxhDrzzDOVPFB27NgxsMq///1vp7WQwEQ9Ei7r4fn1jPvvK1GBb9I0aTMl8S9akmtKfpXgT/KLhnB64403vGZPZZ4Ec/72t78NL1a4cfmlRu/evQP5kiZbw18eTZXzQEZCI1nf32TzRTiu0GEyigACCCCAAAIINIVAPXU3eQE0cz1M+Lm2mepgpDxQD5P8qmjWephwWU8uU3kNfx2MLEU9TGWrPOdQDzNf12RZr3Q+s66HKcIxVTrWZp0uLfK0bdvy2lYCevzv1saNGxfoAcDfw4V/WHwkAMifitz9l+TTf9z+fJsezvuzJHxdmXoGlLrvXXbZJcAZVWcu9cz+93lbbbVVZC8LgQ3pEQkm2mOPPZxW6q+44opYwT/yPmfgwIGx3teF9yfjeb+baMQxRR2nf1q4/Pjn1Tscfq5yt1fk53o3j/wtF6AFoHITpmQsIF9g5cPb3/JKuE/HSruMarlkt912U1lEA0sLL0lSVJ7z/oBJkr96lw0HT3z//fdKWlEJT4+zn3ArNHm0khS3H1B/fqU5zHvuucd5US5dBI0YMcJ5EI46t+560n2ZPDxLANGRRx7pTi7s3/AvxuSBVVo3iqo4rXYQU6ZMqTa7rnnykCJdlYmt/FtllVXUr371q7q2Kd23Sesoxx9/vLcd6QpMgjxknj+Zuq9Il1PyxdtfVmfOnOnPSiGG/fkrRIYyyIT8KuG8887ztjR69Gj1wQcfqJVXXtmbFm79Z9CgQd4vZryFCjggn6d//OMf1QknnODlTioCpP/ozTbbzJtmqpx7OzQ00KzHZYiP3SCAAAIIIIAAAhUF6qm7qbjROmdEfVdvlnqYcF1L0etg5FSm+e5IPUz8i6BZ62FMfoejHiZ+ect6SephVGQL7I16j5HV+TV5/WaVZ9u3I+9RpCuvUaNGOYciXVFJ/fa6667rjEuLQP603XbbeaNSvy73QfdHgrINae3FbSHIHwAkL/SlfJLKBfL+LGnkM+CBBx4YaGHqP//5jzr99NMDCOHuv6TrsFpJWpaSdzD+FqbC60iZk7r5ddZZR/Xt29fpuk5aoZIfsMv3EH/QkSzb6FTUY2rkfbk1PNc3utxluX8CgLLUZFuRAvICXFqEkRf+bor7Elz6rZXWWvw3/0MPPVTttNNO7qaM/Y3Ks3Qz0ywpqo9Vifhce+21Ex9iOFI03CJQ1AalG5u4SQI73KYK467jX04e4gYPHuz8k/1KcMCjjz7qBAS9/vrrgah6WU+W+ctf/uJ0KyRRzEVOq6++eln2pBIp3GJI2UKhCZMnTw5NyW5UmjIdOXKkt0Hpai0q2txbIOaAnFN/AJCsJs0zhgOATN1X5MuV7EsCT9xU7SHYXabevyavpXrzmtf6Ut432WQT9cILL3i7kC80f//7351xCUiVcX+SyipbUtR1Ln0n+wOATJVz02bNelymHdkfAggggAACCCAQFqin7ia8razGm7keptF1MHKOTH53pB6m9lXRrPUwJr/DUQ9Tu5zltQT1MMqpAyzKe4yszrPJ6zerPDfDdiQwxw0AkuOR9xZuAJC/iy8JFpJgCjdJ0ITUg991113OJPlR8EsvvaQ233xz50e4r7zyiruo0zXYcsst540z0CKQ92dJI58B5b2qvNN0f8A/adIk9eKLLzrBOCIg4/769MUWW0z9/ve/b8GJGJJeUmS74fceErQvLVpJ+ZOAH3nPGA5+cjcn7/v8yd/qlX+6qeEiH1MR7svN/FxvqoyZ2E9bEzthHwiEA2WiKnGilKQCSloH8acxY8b4R40Nh/NcT9N8xjKdYEdRQToff/xxgi20LBpeLyoqtWXp+UP+IK/wvPB4ls3ctW/fXm255ZbqrLPOUtLtlzz8XHrppSqq/9ALL7wwnJXCja+44opKjsmf0vyKLM+KpzXWWMOfPeeLSGBCyhGJFA+3NhXVZKfJ+0q4HKU5F9ISV5KH3kZdSylPW26rhX+d4O8/W77I+INS5UtIva1Q5XYgERuWXweH048//hiYZLKcB3ac80izHlfObGweAQQQQAABBBCIJZC27ibWxlMs1Mz1MI2ug5HT0ajvjtTDRF8MzVoPY/o7HPUw0eXLxFTqYYrzHiOr8236+s0q37ZvR348608SACRJfhDt/1HtNtts43S56V823A3Yk08+6cwePnx4oIeO3/3ud/7VGA4J5PlZ0shnQLmm99tvv8DRSpdfbgr/YHbPPfdUiyyyiDs78u9JJ52k3nrrrcA8CUST7rOkBf5DDjnECTCqFPwjgWrhZ9Ik70ICO85opMjHVLT7crM912dUhAqxGQKACnEamj8TyyyzTOAgw5U4gZmhkXBLB9JCSyNSOM/hirFG5CnLfUoEbvjDXCJ+kyZpWePDDz8MrLbCCisExmVEfhHhT+GX1/554eGoIIo4DwXhB4nwdmW8W7duTldfEmi2/vrrBxaRaWmavA5sJOcRiVCXICB/ksCmJEkCrMLnMMn6tZYNBwBJOZNWmOpN8iUoHBwWDiB092HqvpLFl4V+/fopCTiUX1PJ8COPPOIehvO3EddSIAMFHfnDH/7guLnZk88Ot0L1gQcecCc7f6VLLZuS/1dAbr6jfrVjqpy7eTD1t1mPy5Qf+0EAAQQQQAABBCoJ1FN3U2mb9Uxv5noY03Uwch4a8d2Reph4V0Cz18OY/A5HPUy8MpfHUtTDKGWyrOdxDqO22YzHFHWcRZom5r169fKy9PzzzysJknj55ZfVd999500PB/vIjPA0NwDI3/2XLEcAkChUTnl+ljTiGdB/pOFgzfvuu8+bfeedd3rDMhBeNjBTj8g7vdtuuy0wWd6pSdBa3G573daI/BuRd4yNSjYcU6Puy63hub5R5S6P/RIAlIcq2ywTCAfLuP2Qli0YMSF8M3vmmWfU119/HbFk5UkzZsxwPnBkW9tvv706+OCDA9HSlddsmRPOc/iYWpa0c0giNTfaaKNA5v/5z38mDniRD/xwqyu77LJLYLsy0qFDh8A0f2scgRkRI88++2zE1PJJ0sTlYYcdpiQaXs5XOKCnfI2WKdK84THHHNMyQQ9J89hRDySBhQowEu7y6pJLLgl8OaiVxaFDh6pws4u11kkyX/p2DaczzjgjPCnx+FNPPVXWhHn4/uFuNDw9r/tK+MuCBO8kuX998803TjOc8uD57rvvOt3USROL/mTiWvLvz5bhTp06qYEDBwayO2zYMGfcHwAk9z7phs6m5P+1j5vvcGCdTDdVzt08mPrbrMdlyo/9IIAAAggggAAClQTC9RzhepBK6+U1Pbz/cP7y2q+J7Zqug5FjMvHdkXqY+aWHepjgVWTyOxz1MEF7k2PUwzRnPYzJ69dkeS36vqQbMDfJS3epu5Z//rTddtv5R53hlVdeWa200kredOneSbozeuyxx7xpck7XXHNNb5yBcoE8P0sa8QzoP0K3y0Z3mvTmIT98f+eddwIt+Ug52WyzzdzFIv9+9NFHavbs2YF5AwYMKOuhIrBAaETe6YRTIwOAbDgmU/fl1vpcHy6Pto4TAGTrmbMs3927dw/kOEnrIuEmD+UXYH//+98D26s1Il03yYOONDv3xBNPqOuvv16Ff9lWaxvhPIePqdb6NszffffdA9mUD/1bbrklMK3aiLTActpppwUW6dGjR1lgkSwQbupw3LhxgfUqjUhLP+FI5ErLSr+311xzjfNwLAFGsg/5AI+bOnfuHFi0bdu2ZV1MBRYoyIg0UbjQQgt5uZk+fbrj4E2oMiDXl3SBlmeSPoslEM+fRowYoU4++WT/pETDEiAjx+1P8iAkEfVRydR9Rfq/lWYZ3STBP5dddpk7WvOvuEjgmZuklZcNNtjAHXX+mriWAjs0NBKunJbdxoky92cv/CsFCQB677331IQJE7zFpFUlafnLlnTxxRcHvoxJvqX7svAXU5luqpzLvkymZjquLMq5SXv2hQACCCCAAALNLRCu5wjXg5g++vD+w/kznZ+s92eyDkbybuK7I/Uw80sJ9TDBq8XkdzjqYYL2ccey+m5KPUyw66ZGvceIe97jLGfy+o2Tn3qXyaqs15uPWuuH3aVFFX8AkPQAUKnle38rQPK+5qyzzlLyI1M3+YOL3Gn1/LXFNMkx5v1ZYvoZMHzs4Xu1tAJ09913BxaL02J+uCEA2UCfPn0C26k2IoE+N9xwQ9kiSd8BlG2gjgmNOKak11D4/pDXZ01rfa6vo/gUalUCgAp1Opo3M1tuuWXg4F555RWnz9LAxAojm2++uRo0aFBg7tVXX63idmv0xhtvqKuuuiqwfv/+/dVqq60WmFZrRJpa9KfwMfnn2Tp84IEHqi5dugSyLwE94SjewAK+EXH+4IMPfFOUkn5C5YMinMKtVUhQjwRp1UoS0CPlJ07acMMNlTwM+9OZZ57pH6067I+MlwVlW1EfxlU30oCZ0uWa9K3qT/KgH9VqiH8ZOc9SBvxfCPzzsxw+4YQTyjYn52bIkCFl3XiVLRia8O233zrNlobvCccee6ySoK2oZOq+IuX80EMPDWRBfgkY7qossMD/RmSZv/3tb4FZ0jxr+HoycS0FMmFoRILYwucvjps/e9L6V8+ePb1Jcg38+9//9sZlIM6XmcAKDRy58cYby8qEZOdPf/pTZK5MlfPInec4sZmOK4tyniM1m0YAAQQQQACBViYQrudIUneTB1Wz18OYrIOR82PiuyP1MC1XAvUwLRYmv8NRD9PinmQoq++m1MMU4z1GknNfa1mT12+tvGQxP6uynkVeqm1jk002UUsttZS3yPDhw9Xo0aO98ajWf9yZ/gAgmXb55Ze7s5y/WXf/ZYtpAKHGSN6fJaafAcOHK102LrLIIt5kCQC66667vHGpk99///298UoD4WdLWU7ex8ZN5513npJWZsIpz94pwvsKjzfimJJeQ6buy631uT5cJqwd161pkBDIXUC3zlHSXSqV9IXi/dM39tj7/eSTT0odO3b01pXt6ECV0u233151G7rLnJJu2SGwnqyrAzuqrheeqQNTSvqle2A7uiWZ8GKpx3VrFIFtSx6vu+661Nvzr6i7WwpsW3eD5Z9dNqw/dAPLS150NHlJNwNYtqw7QUeSl3SwRZmRfvFeEruopLvxKtuP5PX777+PWtyZdv7555f0w0fZepLHp59+OnI9yZfM9//TLdxELuufqKPqS7rllsB6Z599tn8Rb1i3aBNYTgcpefPCA7p5zcCyOsI5vEjVcd2iTWD9SuVEd1VW0g9xgWV185KlCy64oPTLL7+U7WPs2LElHRQXWN5vprvoKlun3gk68CJyf127di2dc845Jbl+KyXdKo4zXwfTlPSvGMu2I85y36mWTN1XdAS2c7/ye+p+nEvjx4+vmD0dhFXSv8YIHJecz6h1TF1LklkdXBbIkw7cq3gMUTOSXCuyfvhzQ3fpF7XZqtNOOeWUQJ4XXHBBb1x3p1aznFTdeIyZOrDN259bBiZPnlzSrUFV/ae7OyhNnTq1pPv3Lp166qkl3cJP2XZke3379i3JPbhSMlXOZf+m7m+yL5PHFb7v3nzzzZKFqilJWc+inFfNDDMRQAABBBBAAIGYAvXW3chu0jw7RWWvtdTDmKqDEWNT3x2ph2mpg6IepuXqNvkdjnqYFvdGfDelHsbcewxT9TAmr18pvUmfJZKUc9l+mnoY/QPPkm6BO/BP6vbyTLqVlsi6QKkP/M9//lNx159//nnZexq3TlL3ihH5biBqY0lc05jWW3433njjgI+8J8gy5f1ZYvIZMMplv/32C/i5ZUT+7rjjjlGrRE7T3c4FtiPvdqZMmRK5rDtR3k/p3iAqltOhQ4e6iwb+mno3YfKY3ANMeg2Zui+beK53DfibrYDKdnNsDYHKAr///e8DHwSVbuKVtiDBH/4PIXdYR6uWdIRqyQ3IkQCSN998s3TkkUeWdGstZevoFjUq7aLi9IcffjiwHXnhmmUqUgCQbnavpJs4DByvWIul7nqt9Pjjj5d0M3jOg+Lbb79duummm0o64rRseQme0b/Wq8oUfpiX/eg+aku6JaGSbs3FecErgWI6Sj3wYlmCseQcuGVA/lYKAJJAGN0NWWBZWV5H0ZcefPDBkryIdwNi5IW77G/fffctC/6RIJNKD/VJHobrfbANm1UKABJ43dVU2XHLscvDhP5FTunoo48uyfUj5n5LGdZRx4FpEsSQdZKgBXmYDO/bPy6BMvpXCSX5knXiiSeW9tlnn9I666wTeW276+lm4Uu679pY2TV1X5EvIG7+3L+LLrpoSf8isPTcc8+VJOBHrj3dglZJt1BT0l19lS2vu+OreEzhciH7yPpakp2besh2D3S99dYrc1hrrbVKulW40i677FKKE4AkpuEATvccHH744e6ucvsbFQDk7r/ev506dXLulbUyb6qcm7y/yTGbOq7w9ZV1AFAW5bxWGWA+AggggAACCCAQV6Deups0z05ReWst9TAm62DEOXx+8vjuSD1MSwCQ+52Pepj5V7mp73CyN+ph5psnqbPM6rsp9TDm6itM1sOYvH7Dn1W16mGSlHO5MtKUdd2qTlkdpbwjyTPJOy/3c8T/V+o5P/vss6q7lmAl/zru8MEHH1x1Pf/MJK5pTOstv3kHAIlFnp8lpp8B/edWhuV9mlsuwn//+9//hhevOH788ceXbUcCaO644w7nfYd/Rd2TQ0l+EC+NFPj3Ga67l21GJVPvJkwek3ucaa4hE/dlE8/1rgF/sxUgAChbT7ZWRUACRfw3dd3PZZWly2fpfh9Le+21V2Ab/u3JsLQSFP6w8C8jUdPywZo06e6KAvs96aSTkm6i6vJFCgCSjMrDa1RQj99y4YUXDpj450lgQ7UodBdDHt7968UdltZoJBjEv7zuA9fdbNlfab0o3BqOf11pEUTy7J/mH5ZypZs+L9uuOyHJw3C9D7bhL0DVAoAkf2LlP5Zaw3L9XHHFFWUBVvIwkUeSwJd+/folymO1Y5DAGWnNKG4ydV+RYKdwRbr/OKRlq2rX1BFHHFH1kExdS6Yest2DlSA1v1N4+M9//rO7aNW/4ZbQ3O28+uqrVdfLYmZeAUBS1uO2pGeqnJu+v5k6rvB9t1bFk5SbJJ8LWZXzLMor20AAAQQQQAABBOqtu0nz7BSl3prqYUzVwYizqe+O1MOUBwG530PDf1tTPYyp73BS1qmHEYXGfTelHsbMewyT9TAmr9+kzxJJ6mDkukhTD9OIACAJloj6gXufPn3kMKqmqFY75PNHAqzjpiSuaUzrLb8mAoDy/iwx+QwYPu/ynjTqh+HS84rugiu8eMVxaUH017/+dWQdvpRf3aVWSc7V8ssvX/ajeymThxxySEl63vA/H8m7yahk6t2EyWNyjzPNNWTqvpz3c71rwN9sBdrqi4qEgBGB/v37K+k70k3Sl7suzu5ozb8LLLCA0l1+qX/84x9K+kSMSvqhKHKb+oNG6Ruo+te//qX0F+uoVatOGzVqVGD+rrvuGhhvthH9Ia+efPJJpT98K3rplpYiD1u3zqF0sIzae++9I+f7J+pmBpUOLFG6tSD/5IrDUgbOPfdcpVsiqrhM1Awd8a50SyFKtwwTNVvpD0o1Z86cyHm9e/dWuss4paOSI+cXfaJYSR/BK664Ys2s6paS1P3336+GDBmi9MNtYPlK11xgoRQjOrjKyd/dd9+tZP9pk9xbdKtf6p133lG6haDYmzF1X9HNfjtlUFdiKxkOJ/3AraKuKfHR3aGpiy66KLxKYNzUtRTYqYERHTyjttxyy4p70q2QVZznn6GDP/2jzrCuTFA6sr5setEn6NbPlH4poz788EMl/fDGSabKeZy8ZLlMsxxXVuU8S1u2hQACCCCAAAKtV6Deupus5FpTPYypOhg5N6a+O1IPQz1M1L3A5Hc46mGizkD1aVl+N6UepnHvMaqf5fRzTV6/6XMZb80sy3q8PaZbSv9gWenAo7KVt9tuu7Jp4QlR6+nW6FScdcPbijNui2mcY/Evk/dniclnQP9xybC8Jz3ggAPCk533ekneBekf1zvvbVdbbbWybelAIud9zYsvvqimTp2qdE8c3jLLLrus0q0EqX/+859K9wDhTZcBeXese3wJTDM50ohjSnMNmbovt+bnepPlLut9tURjZL1ltodASED3/ag23XRTb+qMGTOU7vrGG487oPuGVBMnTlSDBw9WSy65ZNXVJPBHggLef/99pbscix1o4t+o7ktRjR492pskH0wbbLCBN96sA/IhJx++ujUVNWDAAKVbJ6l4qPKwoLuUUrrVH6W77lI6qrfisuEZOhpdvf766+q3v/1tZGCELC8BQrqVGOc86Ob3wpuINb7zzjsr3QStuvrqq2MFw+gIdyfoQncnp3R3YbH2UdSFxE4CY+69916lu9BSEvgg1448yPXs2dOxvf76651ldLdKzmGEA4DkC0eeaeDAgc7+dfdXas8991SdO3eOtbtVVllFHXfccU45vfTSS5V8kUmTTNxX5DrR0exq/PjxSne9pnSrVBWzKgFNuis69e6776r/9//+X8Vrw78BU9eSf595D8t9R3fV59yD5IE2nMQnTtKtL5WVjT/+8Y9xVm3YMlI+dNeDSr48yUsYKee6C0b1xhtvqP33319FedTKrIlyXisPecy3/biyKud52LJNBBBAAAEEEGh9AlnV3dQj1xrrYUzVwch5MfXdkXoY6mEq3QdMfYejHqbSGYienuV3U+ph5hubKuvRZzSfqc1wTFmW9XyUW7Ya9UP0OEE8W2yxRdmP6HfaaaeyaS17qm/IJtOkR5r3Z4nJZ8DwsUsAkByfP0UFcPrnRw2vvvrq6q233lK6yzS1xBJLRC3iTZNlZTl5VyfvgSTJ+0T/j8Ol4Qh519jIZPqY6rmGTNyXW/NzfSPLYT37biMNCtWzAdZFIInAXXfd5d3UZT15wX3LLbck2URgWWk1QwJOJEjj888/V19++aVaZplllO5j0vtXb+DCWWedFWhxRsZ191OBfLSGEYnWHTlypJo0aZKS4C3dDJ7zoSwBJNLqj/ytN8n5e+KJJ9THH3/snE+peNRNA6qtttqqYus9afYpkcayj8mTJzv/ZFhaX+nWrZtTfnSThJkcT5q8FWUdsZDz7KaHHnpIyYe8qTR37lzn2paKX7m2Z86cqWbNmuUEzcg1LoF4vXr1coKZss6TifuK5FmuIQmClIBGsZaPYzkm3fyp81ce+tImU9dS2vylWU+OybXq1KmT0k1+Kt0NVqxAGAlokzIjZUiS/HpjypQpzvWeJi/NsI6pcm7ayvbjqqecm7ZmfwgggAACCCDQvAJZ190klaIeRikTdTByXkx9d6QepvZV0FrrYUx+h6MepnY5dJeo97sp9TCuZMtfk2W9Za/5DjXDMSUt69dee63zw3QJmpDPagneIAUFkpoG1y7+WJ6fJXL0pp4B85KW92xShy/vEaVhBqmPl/d8Ujevu/ay8r2b6WOq5xoycV/muT6vqyfb7RIAlK0nW6shIDcfCRaZMGGCs6S84J42bVrs1j5qbD7z2fJCftVVV3WiUWXj0iqJBIvIy2cSAs0qIA+Z4eATaaVJWkUiIWCjwLBhw9Tuu+/uZX233XZTMo2EAAIIIIAAAggggAAC5QKNrLuhHqb8fDCl+QWoh2n+c9zajpB6mNZ2xlvP8UpLG9JVj7SuLz9YJSGAAAIIIFBEAboAK+JZaeI8Sbc2/tZzJHKy0U25VeN++umnveAfWU66EyP4p5oY84ogcN5556nNNttMSXON55xzjhozZkyibEkfq/4kXQ0l6dbNvy7DCBRB4MYbbwxk46CDDgqMM4IAAggggAACCCCAAAItAo2su6EepuU8MGSPAPUw9pwrcmpGgHoYM87sxbzAk08+6exUugciIYAAAgggUFQBWgAq6plp4nxJ82DygCR9PEr69a9/7XT1U8RDHjRokLr99tudrHXs2NFp/adWH5ZFPA7y1LoEbrvtNqd7PfeopV9g6VotbpK+hR988EFvcekS7YUXXvDGGUDAJgFptU1acpNu5SRJt2EyrV27djYdBnlFAAEEEEAAAQQQQMCoQKPqbqiHMXqa2VlGAtTDZATJZppCgHqYpjiNHESEwB133KH22msvZ87ll1+uDj/88IilmIQAAggggEDjBWgBqPHnoNXlQF66nnDCCd5xS+skL730kjdelIHp06er++67z8vOn//8Z0Xwj8fBQIEF1l577UDunnvuOfXGG28EplUakV/oPPTQQ4HZUgFLQsBGAWlGffDgwV7wjxyDfDkn+MfGs0meEUAAAQQQQAABBEwKNKLuhnoYk2eYfWUpQD1Mlppsy2YB6mFsPnvkvZrABRdcoPbee29nkZVXXlntt99+1RZnHgIIIIAAAg0VoAWghvK33p3/9NNPap111lETJkxwELbZZhv11FNPFQpEAn6uvvpqJ0/Sp+s777yjllpqqULlkcwgECUg19eyyy6rvvjiC292jx491DXXXKP69+/vTfMPzJ49W11xxRVK+jGeN2+eN6tPnz7qlVdeUQsttJA3jQEEiiggnydfffWV6tWrl/rmm2/Uyy+/rOTXOBIA5ybpwnHy5Mlq8cUXdyfxFwEEEEAAAQQQQAABBCoImK67oR6mwolgcuEFqIcp/CkigzkIUA+TAyqbLKzA7rvvroYNG6a6devmvMdac801C5tXMoYAAggggAABQJSBhgnIy9lNN91USbPSkoYPH6769evXsPz4d/zee++ptdZay2s1QroBc5t39C/HMAJFFZAuv3baaSfv+nLzKQE9ct2tsMIKarHFFlNTp051AiLk+pMgIH+SoB8J/pF1SAgUXeD6669XBx10UNVsyq91jjnmmKrLMBMBBBBAAAEEEEAAAQRaBEzV3VAP02LOkJ0C1MPYed7IdXoB6mHS27GmfQKffvqpOv/889Wpp56qOnfubN8BkGMEEEAAgVYlQABQqzrdxTvYE088UZ1zzjlOxiTIYOzYsapt28b3TDdw4EB17733OvmS4bvvvrt4eOQIgRoCF198sTr66KNrLBU9W1oQksC3rbbaKnoBpiJQMIHHH39c7bDDDhVzJYFvI0eOLMRnTMVMMgMBBBBAAAEEEEAAgQIKmKi7oR6mgCeeLCUWoB4mMRkrWCxAPYzFJ4+sI4AAAggggEBTCzQ+0qKpeTm4WgKnnXaacvvJHjdunLr55ptrrZL7/BdeeMEL/unatau66qqrct8nO0AgD4GjjjpK3XfffWqDDTaIvfl27dopqXiVYDyCf2KzsWABBHr27FkxFxtvvLF68MEHCf6pKMQMBBBAAAEEEEAAAQQqC+Rdd0M9TGV75tglQD2MXeeL3NYnQD1MfX6sjQACCCCAAAII5CVAC0B5ybLd2AJjxoxRG220kdPd1vLLL68mTpyoOnToEHv9rBfcYost1KhRo5zN3nnnnWqPPfbIehdsDwHjAk8++aS65ZZb1AcffKA++ugj9cknn6h58+Yp6eare/fuqkePHmrXXXdV++yzj1pmmWWM548dIlCvwA8//KD23ntvJ3hNynj79u3Vaqutpg499FB18MEHq4UXXrjeXbA+AggggAACCCCAAAKtViDPuhvqYVptsWrqA6cepqlPLwenBaiHoRgggAACCCCAAALFFCAAqJjnpdXlaubMmernn392jlta3VlggQUaYlAqldRnn33m7LtNmzYEQjTkLLBTEwJyvX377beqS5cuJnbHPhAwKvDNN9+oRRZZREmLViQEEEAAAQQQQAABBBDIRiCPuhvqYbI5N2yl+ALUwxT/HJHD9ALUw6S3Y00EEEAAAQQQQCBrAQKAshZlewgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIGBRoa3Bf7AoBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQyFiAAKGNQNocAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAgEkBAoBMarMvBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQyFiAAKGNQNocAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAgEkBAoBMarMvBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQyFiAAKGNQNocAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAgEkBAoBMarMvBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQyFiAAKGNQNocAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAgEkBAoBMarMvBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQyFiAAKGNQNocAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAgEkBAoBMarMvBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQyFiAAKGNQNocAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAgEkBAoBMarMvBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQyFiAAKGNQNocAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAgEkBAoBMarMvBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQyFiAAKGNQNocAAggggAACCCCAAAIIIIAAAggg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gAACCCCAAAIIIIAAAggggAACCCCAAAIBFiAAKMDADI8AAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQCAFCAAKpC5jI4AAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCAQYAECgAIMzPAIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCARSgACgQOoyNgIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACARYgACjAwAyPAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEAgBQgACqQuYyOAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggEGABAoACDMzwCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggEUoAAoEDqMjYCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgEWIAAowMAMjwACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAIAUIAAqkLmMjgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIBBgAQKAAgzM8AgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIBFKAAKBA6jI2AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIBFiAAKMDADI8AAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQCAFbIEcnLERQAABBBBAAAEEEEBA5L333pP09HQ3isGDB8vo0aPdyilAAAFrCOSUlsqh80XGZK6Jbye2UH5HY4CQQQABBBBAAAEEEEAAAQSaicBnn30mW7dudXuanj17yvjx493KKUAAAQQQQMCKAgQAWfGtMCcEEEAAAQQQQACBZiXw8ccfy/r1692eacqUKQQAualQgIB1BD45eUpmfLPHmNCem8ZIfESEcU0GAQQQQAABBBBAAAEEEECgeQh88cUXsnLlSreHGTVqFAFAbioUIIAAAghYVYCfLlr1zTAvBBBAAAEE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jywUIoAAAggggAACCCCAAAIIIIBAEwkQANRE8N5u+69//UueeuopcWiLuio98MADMm3aNAkLC/PWzahT57w7044dO5xZj987d+40yl37GYVkEEAAAQQQQAABBBBAAIFGENiWly+/TLv090nNW3aIiJDXhw2W1uG2mlXVrsO696x2Xe+LDgkisbH17t7QjgPj2srz2nFgISYD5ZWXy+Svt0q+vdykBcUIIBBIAdZuAqnL2AgggAACCCCAAAIIIIAAAgggUB8BAoDqoxbAPhkZGfLEE0/odwgJCZFZs2bJpEmT6nTH0aNHG+3XrFlj5Gtm1PFf27dv14v79OnDEWA1gbhGAAEEEEAAAQQQQAABvwiUVFYa41Rd/KGDUaBlsopLZMrmbVJa5fnIrUhtJ5xV2o44STExrt085qsKLhyh7LGyDoUhFRXiOHeuDj383/TbnTrKoyl9TAfOKCqWu7dul3IPbrl2u2k/KhBAoGECrN00zI/eCCCAAAIIIIAAAggggAACCCAQGAECgALjWu9Rf//730vlxcXxu+66S26++eY6j9W7d29RAT0qbdq0STwFAZWVlelHijnvNXny5Drfhw4IIIAAAggggAACCCCAgC8Cm87kGs02nD5j5FXmvBZoc8fmrXLGS8DKc1elypB2cdX61bxwaP1Llz8v5f/8R82qel078vOk5InF9errz0739+ohk5MuMx3y89yzMn3n7mr1KshqV0GhUfbvGuZGBRkEEKiXAGs39WKjEwIIIIAAAggggAACCCCAAAIIBFjA+97pAb45w1cX+Pjjj8V5JJfa/WfPnj0yY8aM6o1MrtROQW3btjVqp06dKj/72c/068cff1xycnJk7NixkpiYqI/70ksvifN4MHX01w033GD0JYMAAggggAACCCCAAAII+EtgtxaI8k3hpZ10PjiRI/P69ZV47UivSi1Q5d6tabLv3HnT2/26T7KM79LZtF5VVJ3NldLnnpGqI4e9tqtzpRYEZIW05Mp+kqntkvQfl0Aq13m9dSxbesTGyEO9e+nFf8k6JoVaYJUzvZhxRO7qniRRPh4r7ezHNwIIuAuwduNuQgkCCCCAAAIIIIAAAggggAACCFhDgAAga7wHfRbvvvuuMRuHthD+5ZdfGte1ZdSOPq6pf//+Mn/+fFm0aJGUlpbKihUr9E+YtuDr3PVHte/atassWbJEQrUt9UkIIIAAAggggAACCCCAgL8F5uzZV23IksoqeWL/QVmc2l9m79orNXcEcm38g65dZGrvZNcit3zlwQNSuvQZcRRe2vHGrZEfCqrOnBb1d5r6sUZjJ5v299orQ66S7/z3Szl4vsjj7Rdppj1jY2V0QgdZtO9gtTYntb8XVRDQry4GCFWr5AIBBOokwNpNnbhojAACCCCAAAIIIIAAAggggAACjShA1EcjYtd2qyNHjtTWpE71Y8aMkeXLl+vHgTkDfJzBPzabTSZOnKjXx8V530q/TjelMQIIIIAAAggggAACCCBwUeCD4zmijqiqmV47miUL9+6XlUcza1YZ18Pj28nTA680rj1lyv+9XkoWLQx48I+6tyNX22Xo2d+Lo6TE01QCXtYmPFzeGDZE2keEm97rF2k7ZcY3uz0ep7b0UIbkaD8OISGAQMMEWLtpmB+9EUAAAQQQQAABBBBAAAEEEEAgcALsABQ42zqPvGZEMRMHAABAAElEQVTNmjr3qa1Dz5499Z1/1C5ABw8elJMnT0qXLl0kKSlJWrVqVVt36hFAAAEEEEAAAQQQQACBegmUVlbKAi3Ix1Oq0gr/mG5+XNflMdGycuggiTDZqdShHW9l//MbUr7uU0/DXyrTgmYifnS7OE6fkvIN60TbHvVSnUsuNLm3hN90s5R/+L5UZR51qamerUzbLsUL5kr0r6ZJaMeO1Ssb4erymBhZdfVgufWLzVJWpRSrp1Kt7N3jJ6oXXrwq1t7HY9r7WDZooMd6ChFAwDcB1m58c6IVAggggAACCCCAAAIIIIAAAgg0vgABQI1v3iR3jIqKktTUVP3TJBPgpggggAACCCCAAAIIINCiBNSRU1n12C2nbbhN3tR2uomPiPDopY76Kvnjc1K1v/rRYjUbh7RrJ1G/nCphPXvpVRG3TpTKvXuk7C9viuN4tl4WfusPJPza6yS0Q4J+bbtqkJStWC4VX39VczjjWvUtnjdHoh78pdj6e9+hyOjkx8xQ7bmeHZgq92/fUedR38k+IXd3v1yGtGMX2Drj0QGBRhBg7aYRkLkFAggggAACCCCAAAIIIIAAAs1YgCPAmvHL5dEQQAABBBBAAAEEEEAAgaYQUEdNqSOn6ppsISHyypBBkmyyW2nl0SNSPHd2rcE/ob2SJXreQiP4R80jRNsNyDZgoLZzTydjWuFXDzeCf/Q2kZES9cAvRQULeU3FRVL65GKxr/nYa7NAVX6/a2eZcUVyvYafs3uvOByOevWlEwIIIIAAAggggAACCCCAAAIIIIAAAghYV4AAIOu+G2aGAAIIIIAAAggggAACCASlgDpqSh05Vdf0RGp/ua5De4/dyr/8QkoWzhfH2VyP9c5C26jREv3bORIaV/9dbiK+N16itGO+RAsIMk1aEI39z69L6cvLxVFebtosUBUPawFAP+japc7Db8svkLePHa9zPzoggAACCCCAAAIIIIAAAggggAACCCCAgLUFCACy9vthdggggAACCCCAAAIIIIBAUAlszcsXddRUXdODvXrIj5Muc+vmqKqSsr+9JWUv/FHEbnerNwpCQyXi9jsl6v/ulRBbw0+7tg0aLNHTZhjDm2UqNm2UkkULpSo/36xJwMqfHnilDI9vV+fxH993QIoqKurcjw4IIIAAAggggAACCCCAAAIIIIAAAgggYF0BAoCs+26YGQIIIIAAAggggAACCCAQVALqaKnZ2hFTdU1do6NkVt8r3Lo5ioul9JmnpPyjD9zqqhVoR4ZFzZgpEWNvqlbc0IuQzp19GqIq/ZCUzJstlRnpPrX3V6MILejpmQFXSl3/sD9ZVibP1eOINn/Nm3EQQAABBBBAAAEEEEAAAQQQQAABBBBAwP8CdV0n9P8MGBEBBBBAAAEEEEAAAQQQQKBZCKijpbZrR0zVNWWXlEpaQWG1blXHj0vxvDlSuXNHtfKaF6FJl0vM/IViS+lXs8qv1yHtvO+048jLk5LfPSbl/93k1/s6Bytd9Sc5f+dk/VP0qwedxbL88BGpMq58zyzPOCJHtQArEgIIIIAAAggggAACCCCAAAIIIIAAAgg0D4GG74vePBx4CgQQQAABBBBAAAEEAiYwaNAgCQ8Pdxu/b9++bmUUIBCsAupIKXW0VH3T7F175cORwyUkJEQq0rZL6QvLREpLvA5nGzZcIu/5qYRERnpt54/K0MSO2r3uk7JX/yRidnxWebmUvfSCVGVlSsQPJ0mItkOPv5KjqMgYynHxKLS9hefk9aNZRnldMmXa0Wrz9+yXPw0dVJdutEUAAQQQQAABBBBAAAEEmqWAWqMZN26c27P16xfYH5u43ZACBBBAAAEEGiBAAFAD8OiKAAIIIIAAAggggIAvAvfdd58vzWiDQFALqCOl1NFS9U1b8/PlH9kn5P9t3yz2d94W0Y4TM01akFDEhIkS8b1bTJsEoiL8+hsktHMXKV36rDgK8k1vUb76I6k6liVRP/+FhMTEmLarS0VIWNil5hcDCudox63VZ/cf50D/yjkpm87kynUd2juL+EYAAQQQQAABBBBAAAEEWqTA+PHjRX1ICCCAAAIIBLOA/36OGMwKzB0BBBBAAAEEEEAAAQQQQKDeAuooqRczDte7v+oYpe2qY3vpebH//W/eg3+ioyXqV9MaPfjH+XBhyb0let5jEtqjp7PI43flNzv1I8yqThz3WF/XQtvI640u4UOHyb9OaME7uWeNsvpmVBBRpbdgq/oOTD8EEEAAAQQQQAABBBBAAAEEEEAAAQQQaFQBAoAalZubIYAAAggggAACCCCAAALNT0AdJWWv8rJjTy2P3LXovLy9/mP5n6Peg4hCOnWWmLkLxHZV0x5bFRofL9G/nSO2a0d6fTLHyRwpnv+oVOxI89qurpUqYGfe3n117eax/d5z5+WNzPodI+ZxQAoRQAABBBBAAAEEEEAAAQQQQAABBBBAoEkECABqEnZuigACCCCAAAIIIIAAAgg0D4H8cruoo6Tqm4afypF31/5LUgryvA4RNmCgHvyjjuCyQgqJiJCon/5cIm77kYh2JJlpKimR0meeEvtHH5g2qWvFN4WFkllcUtdupu2X7DsoBeXlpvVUIIAAAggggAACCCCAAAIIIIAAAggggID1BQgAsv47YoYIIIAAAggggAACCCCAgGUF0ouK6z23Ow7tk1Ub10q8vczrGOHf+X8SNfURCYmJ8dquKSoj/ve7EvXwdBFvc9N27LH/7S0pfWGZOOz2Bk9zR35hg8dwHeCsFvzz5IFDrkXkEUAAAQQQQAABBBBAAAEEEEAAAQQQQCDIBAgACrIXxnQRQAABBBBAAAEEEEAAASsJFFVU1Hk64VWVsmjz5zJ3+2axacExpknbZSfy5w9K5A8nSUiodf98tV3cnUgdUeYtVXz5uZQ8vkCqzuZ6a1ZrXbmjqtY2dW3wyuGjsu/cubp2oz0CCCCAAAIIIIAAAggggAACCCCAAAIIWETAuiuoFgFiGggggAACCCCAAAIIIIAAAv4TaK3tgPPmvz+RiUfSvQ56qlUriZo1V8KHj/DaziqVoVrwT8zcBaKOKvOWqo4clpJ5c6Ty0EFvzRq9ToVhff/zr6WQo8Aa3Z4bIoAAAggggAACCCCAAAIIIIAAAggg4A8BAoD8ocgYCCCAAAIIIIAAAggggAACPglM37lNBuee8dr2q4RE+e6Yb8tbIWFe21mtUh1Rpo4qC9eOBfOWHAUFUvK7x6R847+9NTOtiwkLk8TISK+fSJcdk+LDw6WDtptSREiI6ZiqIk8L/rlx43/lcFGR13ZUIoAAAggggAACCCCAAAIIIIAAAggggID1BGzWmxIzQgABBBBAAAEEEEAAAQQQCBaB6zu0l5Ht4+W/uWc9Trl9RLj8oGsXWa4dMaVS23K7x3bOQtuYb8mY26fIHi3IJRiTOqos8rYfSWhSkpS98rKI2Y46lZV6fVVWpkT86PY6HXH2426XyV1jb/TKc+/WNPngRI7e5p0RwySlTWup1I5bm7N7r/zpSKZp3+ySUvn2pi/llSFXyUjt3ZIQQAABBBBAAAEEEEAAAQQQQAABBBBAIDgE2AEoON4Ts0QAAQQQQAABBBBAAAEELCmQWVxiGvyjJrx0YKpE7d1T+9y1gJ/Iu+6RqDvvkpAgDf5xfcjwESMletajEtIu3rXYLV/+yRopfXKxOM6fd6vzd0GYtgPQ767sJ0+k9hOVN0v5WtDSbV9tkTeOZpk1oRwBBBBAAAEEEEAAAQQQQAABBBBAAAEELCZAAJDFXgjTQQABBBBAAAEEEEAAAQSCSeBocbHpdO/v1lWufXWFVGakm7ZRFSFt20r0zNkSPtr7rjZeB7FgZViPnhI97zEJ7ZXsdXaVe3ZL8fw5UnnsmNd2/qqccnmSvDV8qLQNN98UuELbLeiRb3bLo9qOQWrnIBICCCCAAAIIIIAAAggggAACCCCAAAIIWFuAACBrvx9mhwACCCCAAAIIIIAAAggEpcDA6Ch56I2VooJbvKVQPUhmoYT1vsJbs6CtC42Lk+jfzhHb9Td4fQbHqVNS8thcqdi2xWs7f1Wqo9tWjxwhvWJjvQ75knZ02x1fb5Vz5RVe21GJAAIIIIAAAggggAACCCCAAAIIIIAAAk0rQABQ0/pzdwQQQAABBBBAAAEEEEAgaAQcFRVS8c1Osf/zH17n3Eo7XeqZD94R26mTXtvZrr1OD44Jjfd+TJbXQYKgMsRmk6h77pOIH98hEurlz/DSUil97hmxv/dutaeqKiyQyv37jLLKE8f9sltQz1ax8q/rrhEVDOQtrT99Rr7z3y/kaJH5bk/e+lOHAAIIIIAAAggggAACCCCAAAIIIIAAAoEXMN/vO/D35g51FPjmm2/kgQcekNatW8tHH33kU+/KykpZvXq1rF27VrKysqRY254/JSVFUlNTZcSIEdK3b1+fxqERAggggAACCCCAAAIItFwBR1WVVHz2b7G/+444CvLl7e49ZaIXjoVfbJSkvLPmLUJCJGLSjyXi5v81b9MMayLG3Syhl10mpcuWihQVmT6h/R9/lyrt7zfbjWOk/IP3pHLfXhGXY7iqdu+Sklm/lpDEjhLxne+KbdRoCfEWWGR6J9GOAQuXvwwbIrO0o75WHc0ybXngfJF8e9MX8srQQTKiffMO2DJFoAIBHwRYu/EBiSYIIIAAAggggAACCCCAAAIIIBAQAQKAAsLq/0HPnTsnixYt0tZ8HT4Pfvr0aZk2bZocPny4Wp/NmzeL+qxatUpmzpwp48aNq1bPBQIIIIAAAggggAACCCDgFHCUlEjpC8ukcsd2vWhPXDt5PmWATDyS4WxS7fu2jIPy3ayj1cqqXURGStT034it/5XViq14saug0JhWVnGJlGg/sIgOCzPK6pNRzx0zb6GUPvuUVGVnmw5RsfkrUR9vyaHtsFS28hUp37Beoh6aKqHx3nfyMRvLpgUPLUntL321H5vM1gKBKk3+7jxbXi4Tv9wsT2htf5x0mdlwlCPQYgVYu2mxr54HRwABBBBAAAEEEEAAAQQQQMASAgQAWeI1eJ9EkfbL0Icffljfwcd7y0u1qs/06dON4J/k5GQZOXKkJCQkSFpammzcuFHsdrssXLhQ++FpkUyYMOFSZ3IIIIAAAggggAACCCCAgCagjvwqefpJqTqwX/coDrPJQ9dcL+Umu80kF+bL7LTNXu0iJ94mtpTg2Il077nzxrMc147n8kcAkBowNDFRoufMl9LlL0jl9q3GPeqbqTpyWErmPSrRj86T0A4J9R1G7uqeJL1iY+SerWlSqL17T6lCCw56eOcuOXj+vMxJ6SOh2m5O/kzrTp2WLXn5+pAxWrDVL5J7+nN4xkIgYAKs3QSMloERQAABBBBAAAEEEEAAAQQQQMBHgVAf29GsiQR27dolP/3pT2Xfvn11msHKlSslPT1d73PjjTfKSy+9JPfcc4/ccsstMnfuXHnmmWckNjZWr1+6dKmcOXOmTuPTGAEEEEAAAQQQQAABBJq/gP2vfzaCf9TTzh08TA63buvxwSMrK2TpF/+RaG2XHG8ppK3n/t76NFVdK1vDdvvxNu+Q6Gh9157w74331sznOnU0W+mzvxeH9kOPhqRRCR3kX9ddIz20QCBv6YWMIzJl8zY5bxIo5K2vtzoVAPTMwXT980K6512mvPWnDoGmEGDtpinUuScCCCCAAAIIIIAAAggggAACCNQUIACopohFrku0bfafe+45+fnPfy5Hj3rZPt/DfAsLC+X999/XaxK1X5bOmTNHwsPDq7UcMGCAXq4KK7UFemf7ao24QAABBBBAAAEEEEAAgRYrUJVzQsrXfmo8/z+Tesi73XsZ1zUzc9K2yBXaDkCeUlif4Njxp+bcb+jQQV4afJXxaWXz7ya6IdruOZG3TpSoB34pEhFR8/Z1vq7KytLe2Sd17lezQ3KrVrJ65Ai5rn18zapq12u1YJ3v/vdLySwurlbekIuTpWVG96LKKiNPBgErCrB2Y8W3wpwQQAABBBBAAAEEEEAAAQQQaLkCBABZ8N3v3r1b7rzzTvn73/8uDm17dbUofMcdd0h8vPfFV+ejbNiwQdQilErjx493C/5xtlNHgnXr1k2/VAFAFX7+5abzPnwjgAACCCCAAAIIIIBA8AnowT9VFwIwjrRqLY8OGW76EDcfOyqTMg56rI/40WQJ65visc7qhZdru+B8r0sn4xNhcvRZQ5/DNmy4diTYPJHIyIYOJfYPPxBHLbsw+XKTuIhweWv4ULkj6cLfjGZ99mnHpH170xfy9dk8syZ1Kh+j7UDkTCPi2zmzfCNgOQHWbiz3SpgQAggggAACCCCAAAIIIIAAAi1egAAgC/4T+Pzzz+XEiRP6zNq3by/PPvus3HfffRIWdmH7eRUQ5C2praedadiwYc6sx++hQ4fq5bm5ubJt2zaPbShEAAEEEEAAAQQQQACBlidQsX2r/tB2LejloWuul2Jb9V1FnSKRWrDJoi1fOC/dvy/+OMG9ghJXgdAuXUX79YdrUf3yReelct/e+vWt0cumvfsnB/SXx/r1FW+LB7n2crn1i6/lr1nZNUao+2WPVheOqlY9L4uJrvsA9ECgkQRYu2kkaG6DAAIIIIAAAggggAACCCCAAAI+C3hbw/N5EBr6X6BNmzZy7733yptvvimDBw+u0w3Ur9BUUoFCvXqZb9Gv2iQnJ6svPWVkZDizfCOAAAIIIIAAAggggEALFnCUlYrjzBldYPGAwbK7XXtTjSsK8qV1eblpfWX2MdM6Ki4JVB0/LlJaeqmgAbmq9EMN6O3e9d6e3eXNYUOktZcj0Mq13Wsf2vGNLNy7X6q0PAmBliDA2k1LeMs8IwIIIIAAAggggAACCCCAAALBI2ALnqm2nJmOGTNGJk+eLDExMfV66OzsC7+6TEhIEJuXBVo1eMeOHY17ZGZmGnkyCCCAAAIIIIAAAggg0HIFHPkF+sOv63yZvNbb+/FdbSrMg3/UII6CC2O1XE3fntyR758jtNTdqvK0sbp29+3GPra6MTFBPhp5jdyxeascLb5w5LSnrn9MPywHzhfJC4MGSGwtf4966k8ZAsEiwNpNsLwp5okAAggggAACCPx/9s4EPqry6v+/WTLZIQlJgIR93/dVFpWq+LZaFXex1Nr2X9/avlWptlZxV0Qt7q1bq2DrviMiCiqgogKy70tYAmQPkH3W/3nuZCaTZGYyk5lJJuF3/Fzvvc92n/u9IZk59/ecQwIkQAIkQAIkcPoQoAAoCp91U1F7/E25SsLr2+12rUlqaqq/plpdSkqKu82pU6fcx/4OVq1ahTfffNNnk0OHDiErKwvl5eUIdEyfg7GCBEiABEiABEiABEiABEig5QnExeF4fAL+Mv6MkK+tk7FoARAIR/qv2ss0lTY6gNl4bTIgOQnLpk7Gr9dvxNoS34Klz/ILcME33+FViRrULZ5pvLzCZGGbJxDtvptdu3bhqaee8sm5SKK8Kd9NtUQeKykp8dmOFSRAAiRAAiRAAiRAAiRAAiRAAiRAAm2HAAVAbedZBTTTiooKd7vY2Fj3sa8DzzbK6ROI5ebmYuXKlX6bJiUlwWw2+23DShIgARIgARIgARIgARIggegkYJfP87dMmoYTPr5TpEqKsEBNl+Y7fVigY4SrnUNSU9l2OlMmqzGtP3wP00WXhGv4kMbRBbCAI9AL2AsLJfSSc2FIoH0CbZdmMuGtSePxl6078NoR3+nddpaV4/w1a/HK+NEYF8Z7C3SebEcC0UygJXw3xcXFAfluopkT50YCJEACJEACJEACJEACJEACJEACJBAcAQqAguMV9a0rKyvdczSJY7Yp82xTU1PTVHPWkwAJkAAJkAAJkAAJNIPAtm3boF7ENbRu3bohlAgCDcfjOQmEi8DCfQewLj3T+3Aiopm3ab33Oi+lxqHDvJS2UpHMXcJduC/usPhPX+Zu2AIH+q5ZQEIiUFm3qKO5l7Vt2QRragaQ2aW5Q/jtF6PXY+HIYRiQnIh7d+yGUPVqRbIoZNbaH7BwxHBc1k3uj0YCJKARoO+GPwgkQAIkQAIkQAIkEH0E9u/fD7UAvqGlpaVh+PDhDYt5TgIkQAIkQAJRSYACoKh8LM2flNFY90htNluTA1mtVncbTzGQu5AHJEACJEACJEACJEACIRN49tln8cUXXzQaZ86cObjjjjsalbOABFqTwLfFJXh8736fU7hh1zZMKCrwWV+vIiEBhhEjgUNH6hVHy0k0pSfTGQwwjh4D6zdrwoPHY4GH7WAOMGJEeMb1GOWGPr3RLzEJN2zchHKr9++fZrsDf9i0BXskRfTtA/sjUunJPKbFQxKIegL03UT9I+IESYAESIAESIAETkMCb7/9Nl5++eVGdz59+nS8+OKLjcpZQAIkQAIkQALRSKBOLRKNs+OcgiYQHx/v7hNICi7PNomJsto0APvpT3+KMWPG+Gz53nvv4f7774enuMhnY1aQAAmQAAmQAAmQAAmQAAlEDYFiidjy+42bfUZ0GV1ciJu2bw54vqYLL0JUiWwkck3iy6+656+T82gy088vgnXtN4A9vOm7al56HlV9+yL2iqugRRoK402f0zkDH0+ZhDk//IjDVVU+R35KokrtFRHQM6NGINFj4UrDDtUeC1lyq+qiNTVsx3MSaMsEWsJ3M2rUKHzwwQc+MW3YsAG/+c1vEMjiMZ+DsIIESIAESIAESIAESIAESIAESIAESCCqCFAAFFWPI/TJJMgKW5d55pR3lTXce4adDlQAlJqaCrX5ss6dO4PpxHzRYTkJkAAJkAAJkAAJkAAJRC+BP23airxq76mBk0Uc9MR3a2BUabQCMP2AgYg57/wAWrZsk2gT/Xjevb5LV8T87EJYlnzoWRyWY9uPG1C5aSOMZ82A6ZJZ0HfoGJZx1SCDkpOxbNpkXL9+I74vKfU57rK8Avz82++xePwYZHssXvHs8M7RY+7TDaUnYBExlEo5RiOB9kSgJXw3ysczePBgn9gKCgrou/FJhxUkQAIkQAIkQAIkQAIkQAIkQAIk0DYJ0IvWNp+bz1nHxsaiU6dOWr1y5jRl+fn57iYqjymNBEiABEiABEiABEiABEjg9CTw/IGDWFFQ6PPm569fi+zKCp/1nhX67j0Q/8eboPMT6cWzPY/rCJhmXQbD2PF1BeE8EjGN9YsVqLz1Fpg/+gAOjzRhoV6mk8mEtyeNx1Xdsv0Otf1UGc7/ei2UuKehHaqsxJJjee7iMklZ/VLOIfc5D0igvRCg76a9PEneBwmQAAmQAAmQAAmQAAmQAAmQAAlEFwEKgKLreYRlNr1799bGUdF9Skt9r75UjXJzc93X9LcyzN2IByRAAiRAAiRAAiRAAiRAAu2OwOYTJ/HAjl0+7+ua/btx/tHDPus9K4xTpiJ+3t3QdejgWczjAAmoCEVxf/g/xJz/0wB7APr+AxD/wHwYzzwL0Oma7lddDfO7b6PyL3NhWb0KjjClHDPJ3J8YNRzzBg+Av1kU1pgxa+0PeN8j2o+a9L07dsPSIMLUwr37URhGoVLTcNiCBFqGAH03LcOZVyEBEiABEiABEiABEiABEiABEiCB04kABUDt8GkPGTLEfVebN292H3s72LJli7vYs5+7kAckQAIkQAIkQAIkQAIkQALtmkC5RFn53Xc/wOLjLgecLMUdm9bDMGwETL+8HoYhQxuLTJKSYJw2HfH3PoC4//e/0MXG+RiNxYEQUCKg2KtnI/6eB2AYOQowGLx203fvjtjf/R7xd9wFg0Rdirv+t0h48GEYRoz02r5hoUMWjNT86wVUzfsbrFvrvhs2bBfs+Y19+2CRpPlK9DFvNV6NiI7+d+MWLNi9Fw4R/XxTVIxP8uoi1LquqaIAzd+113XKPQm0GwKePhj6btrNY+WNkAAJkAAJkAAJkAAJkAAJkAAJkECrEjC26tV58YgQOOuss7B48WJt7OXLl0OdezOV/mvjxo1a1cCBA8EUYN4osYwESIAESIAESIAESIAE2jeBP69ag4NWm9ebjBPxxVNrVyNBRChxf/iTM6XXjJ/AJt8lqm67ReujHzgI8bffKYFn/MV88To8C5sgYJDorvG33AqHRHc1r/gMFonao0wJfGLnXAd9RmajEfTZ3RA/9zYYvlwFVFQ1qvdWYM89gurHFsAwdBhMV10DQ4+e3poFVXZe50x8PGUSfrFuA3Krqn32fVwi/OwpK8e+8nKfbV4/kotf9eqB4R2jN6pUidmM5ySNnssuyeqKwR2SXafck0AjAvTdNELCAhIgARIgARIgARIgARIgARIgARIggRAJMAJQiACjsXv//v2hBD3Kvv76aygRUEOrkRDqDz/8MGw2p6N/9uzZDZvwnARIgARIgARIgARIgARIoJ0T+O+q1figqsbnXd698QcMGjS4TvxT21IXU7eWRGcwUvzjk2B4KnQJCTD06eseTJ/Z2av4x91ADnQdOrpPdR1T3Mf+Dmzbt6HqrjtQ/cJzsJcU+2saUJ0SwHw69QyMT/V//aUS+Wd3eYXPMR1SM2/7Tp/10VBxwmzBU/sOuLc9fgRN0TBfzqH1CdB30/rPgDMgARIgARIgARIgARIgARIgARIggfZGgAKg9vZEa+/n5ptvdt/Zgw8+iEWLFuHYsWOwygpelfZr7ty5WL9+vdZGhZ0+88wz3e15QAIkQAIkQAIkQAIkQAIk0P4J7FyzGneWnvJ5oxcczsHVWV0Q+/s/OCP/+GzJimgnEHfzn2G64ipAhERNmqTjsn6zBpW3zUXN22/CUVXZZBd/DdJjTXhn0gRc3i3LX7Mm674rKcWHx4432S5aGtiEI40EmiJA301ThFhPAiRAAiRAAiRAAiRAAiRAAiRAAiQQDIG6ZZvB9GLbqCcwdOhQ3HvvvZg/fz6qq6vx0ksvaZvBYHBH/VE3kZ2djQULFkCvpxYs6h8qJ0gCJEACJEACJEACJEACYSJQtupL3HAkD1UpqV5H7FFehvlxMYi97nro+F3BK6O2VKgzGmH62YWIOfNsmD98D5aVKyBfDP3fgsUCy8cfwSI/K6aLZiHm7BnNFoLFGvR4etQI9E9Kwvxde9Bcacz9O3dDpRaLl++10Wad42KRHReHo/L9W9n4FP9Rj6Jt/pxP6xCg76Z1uPOqJEACJEACJEACJEACJEACJEACJNBeCVD10V6frNzXjBkz8Pzzz2vpwFwCH1fKL6M4gC+//HKtPoWOyXb8U8BbIwESIAESIAESIAESIIH6BJT4456NW7Dbh/jHaLfjGWsN0n/1a4p/6qNr82c6EeDEzp6DhIcfg3H8xMDup6wM5v8sQuXfboN1/Q+B9fFoZc87joqb/6htv372cbzfIQEJzRTw5FZV45/7czxGj57DRCWyEqGTy7rGx7kOuScBvwTou/GLh5UkQAIkQAIkQAIkQAIkQAIkQAIkQAJBEGAEoCBgtXbT9957L+gp9OnTR4v8o6IA7d27F/n5+cjKykKPHj2QJM5fGgmQAAmQAAmQAAmQAAmQwOlDwPzpJ1iyejX+e8ZZPm/6r+ZKTLj2Wp/1rGj7BPSZmYj7w//Btn8fal7/L+x79zR5Uw75Lln99JPQ9x+A2KuugaFf/yb7qAYOqw2OkhJ323FJCVgychTmrPvRHS3HXRnAwdP7DuCq7t2QFYUCm4LqGvcdVEuEpSRGz3LzOJ0O6Ls5nZ4275UESIAESIAESIAESIAESIAESIAEootA3fK06JoXZxNmAnESinz48OE455xzMGTIEIp/wsyXw5EACZAACZAACZAACZBAtBMwL/kQBz98H7ePm+xzqmfbLLjx0kt91rOifREw9O2HhDvvRtwfb4Kuc5eAbk6JharuvwdVzzwJe35ek310el39NnoDhnbsgNsHBSYgqt8ZqJIIVf9vwybsL6+Aw9HcZGINRw39/LP8AlR4pFV7Pudg6INyhNOOAH03p90j5w2TAAmQAAmQAAmQAAmQAAmQAAmQQFgJMAJQWHFyMBIgARIgARIgARIgARIgARKIPgI177+LKhH/3HTWeThlivU6wc4OO54+fyZ0ugaCDa+tWRjtBE5YLO4pFteY3cfeDozjxsMwegwsX66E+QOJPCtpv5oy27ofUPnjBsTMOAemiy+BLim5XhdHVSWsG9bDuvFHQNJjwWrV6i1frEBNYQEW6r3/HNYbxMfJ+hMnMOWrNUiWcUeldMRo2UZ1dO5bI/WWRURJ9+zYVW+2z+zLwTXdu6M15lNvIjwhARIgARIgARIgARIgARIgARIggTZGwJabK34Ep19Dl5wMfaf0NnYHnC4JtB4BCoBajz2vTAIkQAIkQAIkQAIkQAIkQAIRJ1Dz5uuwfPIxnhw2Cj+mZ3q9ng4OPDt5ItJjTV7rWdj2CKwpKnZPekleHqZmdHKfezvQGQwwnXMeYqZMg3npR7B8ugzwEBF56wOJeGP5fDksX6+G6YKLEHPeTCAmBpYVn4uQ6F2gvLxRN9vmTfhXVQ0OjBzXqC7YgjIRFan79LzXDPkZHp2SIlsHbT9Sog2lmiL7c/1SziEcqKisN30Vqej+Xbvxj9Ej65XzhARIgARIgARIgARIgARIgARIgARIwD+B6if/DkdBgdbIOG064n7zO/8dWEsCJOAmQAGQGwUPSIAESIAESIAESIAESIAESKB9Eaj5z2JNoPFtZhc8N2iYz5u7qX8/TE33LxDx2ZkVUUlA5fu2184sRUQ5gZouPh6xl10pkX3Ohfndt2H9Zg0k15b/7lVVML/9BiwrPwM6psCRc8Bn++LYWDw9ZITP+lArCiXakUrHpTaX9UyI16IEKWGQihg0rEMyElVUojBYkVxv4d79Xkd67+hx/LpXT4xNTfFaz0ISIAESIAESIAESIAESIAESIAESIIHGBByVdYtsHCdPNm7AEhIgAZ8EwuPx8jk8K0iABEiABEiABEiABEiABEiABFqagEMEGzWL/g3rl1+gODYOt0ycCoeP1F4TRJzw5wH9WnqKvF6ECVzaLQv2WuHOSEmPFazp09IQ99vfwTbzf2B+8zXYtm1tcghHSQmgNj+2cNholMdENiJPw8sfqqyC2j44lqdVKXHUgOQkjFGpw2q3wRJSPEavaoKzh3btgYpE5Mvu3L4Tn0yZxNR6vgCxnARIgARIgARIgARIgARIgARIgAQaENCnZ8BeG1VYl+E9mnWDLjwlARKoJUABEH8USIAESIAESIAESIAESIAESKAdEXBI6qGaf70Iq6RlUnFb/jxhCori4r3eoYoM89yYUTD4EAd57cTCNkHg6VHhibJj6NED8bf+FdatW0QI9DrsRw43+/7Vz+NbvVtfbKYiI+0qK9e2144c1e7HpNdJZCCVNqxOFNQvMdGvcGfbyVN4/UiuXx4bT5zEW7nHcGX3bL/tWEkCJEACJEACJEACJEACJEACJEACJOAkYBg8BPaDOdqJcUR4/BtkSwKnCwEKgE6XJ837JAESIAESIAESIAESIAESaPcEHDYbal74J6zfrdXu9aWBQ7CmS5bP+35i5DBkxcf5rGdF9BCwrF7lnoz1h+8Q+4tfus9b4sA4fAQMQ4dpKcHM774DR6n/SD++5uQrEpWv9i1VbrY78KOIddTmsiSjAaMkepIrSpASB2VLijSXqeg+StTUlD0oUYIu6No5bGnHmroe60mABEiABEiABEiABEiABEiABEiABEiABE5PAhQAnZ7PnXdNAiRAAiRAAiRAAiRAAiTQzgg4JA1R9T+egW3DOu3ONqd1wt8l3ZIv+3WvHji/S2df1SyPMgI6jyhNDpuKYdPyppMUWTHTzoRx4mRYPl0G89IlQHVVUBOZmXsIB5M64FBSMqqN4XFJxMu8qiTyVbjtxg0/YPDJUm3Y7Slp+M2IMUg3mbQoQXEGPb4rcdY1dd2Cmho8sXc/7hg8sKmmrCcBEiABEiABEiABEiABEiABEiABEiABEiCBZhMIj7et2ZdnRxIgARIgARIgARIgARIgARIggVAJOCwWVD/9JGybN2pDlUlqrz9NmgarCCO82dAOybhr8CBvVSyLUgI6SU8FU6w2O11SYqvOUiciGNPPL0LMWWfD/MF7sKz8PKD56KTVs2tXa21V5Jx8iaaTo8RAyR1EFJSsCYN2pqTgaGJyQOO5Ginxz7/HjoYS5aiUW5vUdvIkCmvMribN2o8rKsDokiKtb5wI7JQVmc34vKBQOw7mf8/nHMS1PbqjZ2JCMN3YlgRIgARIgARIgARIgARIgARIgARIgARIgAQCJkABUMCo2JAESIAESIAESIAESIAESIAEoo+AQwQJ1U8uhG3bVvfk7hg7Cbk+RBQJBgNeGDMKsSKWoLUdArGzfwG1RZMpUVLsnOtg3bkDjmNHg5qaEgN1qarStsmF+e6+32dkYvZZM7Xz8/OP4crSYhSmpKKgY4q2L+7QEXb5GW5oW0+dwl8G9seMzAx31VEZ3y0IElHQ5pOnUFYr5HE38nOQKpF7XOZ57CoLZq9SjN2zcxdeHjcmmG5sSwIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIBE6AAKGBUbEgCJEACJEACJEACJEACJEAC0UXAUV2N6scfg23XTvfE3ujdD5907+U+b3jw8LAh6NvKEWQazonnbZxAkGnAAr3blIpyTNu6qX5zSYWmy8iAvnMXbdN16Qp9FzlO7QiHRAJSacpcli0RhtR2QdcuWpHD4cC+igpnhCARBClx0PZTZajxkT7s3V59MHf7Zq3vO737uoZt9n5ZXgHWFBVjWnqnZo/BjiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiTgiwAFQL7IsJwESIAESIAESIAESIAESIAEopiAo6oSVY89Avu+ve5Z7pHoKPePHu8+b3hwWXYWruie3bCY5yQQEgFdYhIcJSUhjRFwZxHxOAoKYFPb1i31u0lkIJ1EENLEQUoUJCIhndrLpktN08RB/ZOSoLbLuzn/HVhE/LPlk6X4ccMGbEnrhM1p6dinogzp9KiQVHou8zx2lTVnP2/7TqycPgUGETLRSIAESIAESIAESIAESIAESIAESCBSBGwHc2B+7x338LGz58j35M7ucx6QAAm0TwIUALXP58q7IgESIAESIAESIAESiCIC/fv3R3l5eaMZ9ezZs1EZC0igKQIL9+zDzdldUfXow7DnHHA3rxbxw58mTUeNwfvXvN6JCVgwfIi7PQ9IIFwEVEQeHDkcruGaP47NBkfecdjU5gzcUzeWiHn0mZnQ1UYO0kRBSiAkOpyB77yJgSIsuvqAU0xXJf+WtotgyCoioHDbrrJyvHroCK7r1SPcQ3M8EiABEiABEiABEiABEiCBEAj06NEDEyZMaDTCwIEDG5WxgATaAgGHpMq2ba6LquuYdVlbmDbnSAIkECIB757hEAdldxIgARIgARIgARIgARIggToCt9xyS90Jj0ggBAIfH8/DS1u34Zp/P4ek48frjfTAqHHY2zGlXpnrxKTX4YUxo5Bo5FdAFxPuw0fAOHIUbD9uCN+AkRjJYoH96FFANlsT48eLkGhcUWG9Vn/dvAHfZnTBQYkOFKot2L0XF2d1RYqpLsJQqGOyPwmQAAmQAAmQAAmQAAmQQGgErrnmGqiNRgIk0HoEHDXVsG3ZAtvuXe5JWNeuhS4uHvoBA+ul/XY3iKIDy+pVMH/0gXtGCfMfgc4jurC7ggckEEEC9P5GEC6HJgESIAESIAESIAESIAESIIFwEagWUcLTGzbiP199hqRTJ+sN+0m3nnijz4B6ZZ4n8wYPxPCOHTyLWvR4eX6B+3pLRMR0kYgfaO2HgHHceNS8/hpQXRXaTUVxWqzdHVPDIv5RgEpFjPSYRPJ6YNjg0HixNwmQAAmQAAmQAAmQAAmQAAmQAAn4IGAYOAhQC8GsVuhSUqDP7uajZesXOyoqYF7yISwrPgPkO7OnWb/7FmrTdewI00WzYDzrbOgkcm80mv3kCTgK63xgkGjDNBJoaQLhj2fd0nfA65EACZAACZAACZAACZAACZDAaUBg8aYteGzZhxjQQPxzJDEJfxs3ySeB8zpn4re9e/msb4mKE+Y6583JBo6clrg+rxFZArqkZJh+dmFIFzFOnY7El15B3G//1z2OLisbhsFDoEtLc5e11sHn2d3DeumXDx3GHkkHRiMBEiABEiABEiABEiABEiABEiCBSBDQxcZCy3utBtcbojYSje1gDirv+Cssy5Y2Ev94cnGcPImaxS+jasFDcJSVeVZFzzF9XtHzLE7jmTAC0Gn88E+HW7eLsnK/qEb7JyW1uds9UF6BPkmJbW7enDAJkAAJkAAJkAAJkED4CeQfzcX0fz2HbhX1BQMWiZhy08SpKI8xeb1o17hYPDFymNe6lixMjpGvntXOK6b5mGtLzofXCj+BmJ9dANuObbDt3BH04LquXRE7+xfQycpEXXo6sPeANoZBwnvHX3apduwwm2EvyIcjLw92teU7N3XukBV2kbbyMIfstsl31bt27MIbE8dFeuocnwTaBIFd4sAflJzcJubqOckc8Tn1TqTvxpMJj0mABEiABEiABEiABEggUAK2QwdR9eD9gLkm0C6wS3qwygfvQ8Jd90KXkBBwv0g3dNjt0Pfu476MvldvOMrLZFFTJ3cZD0igJQhQANQSlHmNViPwn8NH8N/Dufh06mQRuepabR7BXrhcwvFdsvYHLB4/BiNTOgbbvVXbrykqRrE45y9mWodWfQ68OAmQAAmQAAmQQPshoIQOlvkPNhL/qDtcOGwUNnfK8HqzKtzrP0ePRJrJuzjIa6cIFb4/eQKstWGP42TVGa39EVDht+P+eBOqnlyoOeMCvUNd1yzEz721SaedTn6ODd0kCo/aGpijploTBTny853ioLzjboEQonVVoNzDV4VF+EzS46koXTQSOJ0JfC1+hBs3bsG3Z09DokpR0EZMLTr7fxs24/d9e+OS7LaV2vJgRSWWioDyxr51LyjaCHZOkwRIgARIgARIgARIoJ0QcFRVovqJhUGJf1y37jh+DNUv/BPxN811FbXa3n7iBCxLPoDl++/g6YOwq8hGN/8f9D17Iea8mTCeMRU6PZMztdqDOo0u3Ha+VZ9GD4W3Gh4CpyTM2oLde0WMYsEbuUdxdffozW3Z8I4f37sf+TU1uHP7TiyZ4judQ8N+rX2uVrHOkzmXWayYKU7s+CjNwdnanHh9EiABEiABEiABEgiUgP3YMZya/wBSyk416rK6c1e8OHBoo3JXwdwB/TCpU+unTlLzSY0CEZKLC/eRI6CTKBjxt90O83vvwPLZp35Dd6sw5CrtV+zsa6GLD23Fni42DgZxqEFtDcxRWekUA6lIQbVRg+xKIJSXD1RWNGjd8qd3SxSgszLSYaITsOXh84pRQcDlR1A+kCf3HcDfBg2IinkFMonXjxzF1lOn8MDO3Ti/S9vygagIZEp4NSsrC13j4wK5XbYhARIgARIgARIgARIggbASMC/9GI6S4maPadv4I6zbtsI4bHizxwi1o+XrNahZ9LJfEZNdohzVvPg8LJ9/hrj/uwn6ThL5uNbWFpdABYVQ1jUuDsM6dqit4Y4Emk+AAqDms2PPKCfw2J59mvhHTfOhXXtwYdcuSGoDK8nUKqwXcw5qdNeVnsB7R49hVnaWdh7t/1t86Ah2lTnTUvxjfw7USycaCZAACZAACZAACZBA8wjYjhyWvObzYawV/9hlmKraz7NFIniYO2FKXS73Bpc4Q4Q/N/fv26CUpyQQeQIqjVfsFVch5ifnwvrNGlg3bYT9wH6gNgKUvkdPGEaMRMyUqdBnZUd8QiocuEFCcKutoVm3b0f1Iw81LPZ6fnnOPkwoLPBapwpj5J4fLCjGsWpnrrtnRo2AIcAotCdl8UpGbKzPsVlBAu2ZwKviR9hZ60d47kAOZvfohp5RFMbfF3u18Gm++JqUHZV/98+KD+TPbcQHsro2+pia+/27duMfEi2QRgIkQAIkQAIkQAIkQAItScAhohcliAnVLJ983GoCIPNHH8L87lsB34KKCFR19zzE/22e+EOc731v27ode8udi5NmSVRRfjYPGCcb+iFAAZAfOKxquwT2lZfj3wcPu2+gsMaMJySqzp2DB7rLovVArQA12x3u6d2vrSTrjIQoj6ZzQiItPSIRl1z2jKzcU1GXsriSzIWEexIgARIgARIgARJwE7BLqiLrj+uhvvzbS0uhRBO6lFQYBg2GcfQY2IuLUPXIw0CFU1ytOq5Pz8Q1Z890j+HrIC0mRhwGI6APUHzgaxyWk0AoBPSdOsH084thnDgJlbffBths2nCmq66BceiwUIYOW1/j0KHQpabBUVrS5JjDpY3avJkuPR2JI4bj6VVfiwDI2eLirC4wMqqPN1wsIwE3ASV+8/QjKF/IPeITeXncGHebaD1YuHcfiiT9ucue1Xwg2ciOj3cVReXeGXFpl3tu7x09jl/36omxqSnuMh6QAAmQAAmQAAmQAAmQQKQJ2HZsB6qrQr6Mbfs2VD37FPQdU6CiEiMpSfZqS4TOdZwk5QlyHsbv6NZ1PwQl/nHdqEMW+VU9/hgS7n1AS4Ve6vGdIq92QZGrbUvtHXJd27YtsOfmwn7yJHQSiUgnPh0VWUnfpW2lOm4pZtF+HQqAov0JhTg/mzhZly1bhhUrVuDIkSOolPDngwcPxvDhwzF58mQMGjQoxCu0XHeV/kCFandIeGXtF3d6huRN7On1F7YS0VhrV5i6ZviCRNW5tkd39EoMLby8a7xg9uqXp0NyQMqyV+3Fjvrl6c3WSPjl5fn1V5Uer66BEtPcNrC/ty5RU/bonr0oFeedy6rsdtwn4qXnxnAlmYsJ9yRAAiRAAiRAAiRgLyiA+a03YF33vVcYKmJKjRJ+K/FObQhgrw39FD45aji6+Pi86acbq0ggIgQcEiXDJf7RLlBTq5CJyNWCHzTm3PO0f5PB96zrEXNu08K8utY8IoHGBNqV76aoEPajR+E4KT4QiWylT+sEvUTgUkLXhvaoRG4u8fAjqPpleQVaaqqp6Z0aNo/4uUOc75rvxmqBzvUCwctVcyoq8FLOoXo1ygeiFnA9N2ZUvfJoO3lFFsvtlkVznqbSz38i6ed1FA57YuExCZAACZAACZAACYREoErez8ZH+cL+kG4wxM72w/U/T4cynO2H7+FcctTEKBJptL44SIRBSiykCYU8BEO14iGtTh03+C7jEL9GzWJJ+9VMcxTkw/zh+4i9ejYGJiejSNKAKRvaoWXTfymxj/mD92Bd/ZVXH6Ra7qDv1Rumy66AcfgINcWoM4d8N7Pt3S2p5ErhkO9xellcqeasz8yMurm25IQaf/tuyavzWhElUFhYiLlz5yInJ6feddatWwe1LVq0CLfffjtmzoxeZ6VDHEGWFZ/B8sVKqF+IDU0nvwyNU6bBdMGF8gs6WatekV+IlQVFDZtqUXWUMGjR+JZZSeYQh4rl8+WwblgHu4ivPE2fnQ3D2PEwnXc+dPLLXZkr771nO9exSqd1jYTB7tZCK8kc4riy790D6+ZNcMjPkaOyQuOr79IFhlFjJHx+b9fUtP0eCdf9ioTtbmgfHFMryXpgfFpqwyqekwAJkAAJkAAJkMBpR8C6ZTOq//G05PFqYoVTbaSUhoAS1RdZ9TnNz4ql/9e7J87tHPkvufb8PPf07CfkS7bMWUfHlpsJD+oINH6fLOK2KDIl3rF89YV836y/ECPQKeo6d0HMOecF2pztSKARgXbhu5G/TdZvv4Zl+afw6sgXX4Zx3ASYLr4EelnMpWyv+Exe9ojc7AlGCVJWTp8ScBo9z77BHivRj+XLlbB+/129dIVqHBXdyzhmHGLOmwl9Rt3f1ru374KlwaIz1f6DY3m4vlcpJrSgD8QmkQRtKtWiWjBXViariOUFRUYGjJJqUT9gYL1Fc2p1sRJdNbSNJ07irdxjuLJ75NMyNrw2z0mABEiABEiABEigPRJwyGfF2T9swNOyQCvaI0S2Fn+7vHtscZMgGQ61BXtpWdigCYdqhUJ2+dytglWEYurdt+nCn2uROL+pFQBNbMHvEVaJwFT9zJMSedyZfszXvajI5dWPLYDxrBmI/cUvG4mhfPWLdLlt/36Y338HKgIU5PtoQ9N3646Yn10I4+QzvC50+I+8074oqyuSY9qnVKZ93lXDp3wanlfIP9hbb73VLf7p168fpkyZggxxAmzatAmrV6+GWb74P/DAA/JvuwKzZs2KOko2UX9WP/k4HLJ6zJepX7CWZUthWfUl4n57AxyjRkOJfHyZiq6jouxMi/BKMstXX6LmzdcgIZe8TkWthlOb5bPliL3iSsT85FwsOnQYu2rz3jfsVC2/vO7bsRsvjI38SjKrKGVr3nkTDklL4dVEDaopPq+8GsYhQ7Um88Q5pwRM3kw57j6dOtnrL1hv7VlGAiRAAiRAAiRAAu2RgPbFWkL8evtSGuj9dpd0YI7Gagp3dyWruK5nD/d5JA9su3e7h3ccOwr5cgG0kFjdfWEetAkC+uxuSFr034Dnulyif7hMfXeLtOlMJsT96RZU3X+PhB8PMjqR/MzH3zQ3ahxgkWbF8cNPoD34buzFxah+6nEtpaVPQiJ8ta5ZBevab2CSVa4mEc3dJSIaX34E5Rt5VRyy18mCokiaWvRU8/JLkgaw1OtlHEVF4rf5FJaVnyPmpxfANOsyrBbn/GcFvv1UygeyvAV8ILZdO1Hzxmuw5xzwOnfL0iXQyapX02Xic5JUjMoe2b0PJxpEXHJ1fnDXHlzQtTMSG6xudtVzTwIkQAIkQAIkQAIkEDiBt0Vc/a18blTv9Z5vgfd6gc+sdVuq4AO2bVth/Xq1RMb+oXUnE8zVa2rgUFtJGH0UEvW7RqIAWXu3fPYX69YtqF74aFA+SqtaOCURg+L+dHOrvu9VP0Pm1/6jBeDw9wjtuUdQ8/w/JMDICsT98SZJEdfR3VylWrtLtAQHKipx15CB7vL2dEABUHt6mh738vLLL2O/qN+UnX322Zg3bx5iYmK084suughbtmzBbbfdpol/nnrqKUyfPh3psrIpWkw5Mqr+Lr98zDWBTUmENtVPLsTi2ddhv9l/oDclVonkSrKa/76qOYgCmrjkt6xZ/AqKj+bikc7+HVsfHZeVZPKBYVKntICGDraRQ/2xWfSyM9RbE501xeeChxBz8Sx8NXkqVvlxzG8+eQpv5B7F1d27NTEqq0mABEiABEiABEigfRJQovXqZ54K6ou1NxK/mTrDrwBIybEf2r0HL40d7a17WMt0EjaZRgKRIFAkTjWXFdWogNORN4OsDIv/6x3ad0pfQoCGs9ClpSFOxD/6rKyGVTwngYAJtHXfjT0vD1UP3hv46lfxO5hfXYTPT5zCl3FJfjk9snsvLsnuio61viy/jZtRaf78M5j/u1gytXtfzFRvSIlyZ1nyIcyHDmLemMn1qhqebBEfyOtHjmpRnBvWhetcpQswv/dOk8OpyGY1EnnQJhEID4oQaPHhxpGbXYMUyO/eJ/buxx2D26cD3HWf3JMACZAACZAACZBApAlUyGdeJa5W9qG81/u1pCZqyQiRkb6/5oxvy811in6+/caZKrg5g7TDPlYJEuEYJsEYBg/X7q7q2adRUX5Sy8iiS+4AXYdkySIje8kk49xqjyU7jiqHSk/mJ0q4N2Qq8lL1s83zUdo2boBFgkSYLrnU29ARL1PiH6UFUBFQAzWV7abq3rsQP+8e6FOd2Woe2LkHlfId78Wcg/hFz27oLRzbm1EA1N6eqNzPKXnB8NFHH2l3limrfTzFP67bHTFihFb+17/+FSrXvGp//fXXu6pbdW+XiD9VTz8RuPindrYlplg8Xi7pFGQFpz9TK8lUtJ3re/X016xZuVO7jQAAQABJREFUdWYVjUhWhwVrfy85iRNplia7zZMVcsunTYbez8rvJgfx0aDm+X/C+sN3Pmq9F1d89AHuNsRJEkiD9wa1pQ/Jh50Lu3ZBEleS+eXEShIgARIgARIggfZJQL2ok2/wId3c51ndsDmtacH+x8fztVVmZ0RINO66CYOkFTFdfpXrFLLaoO6YRyQQAoHU2Lrvc3EGfQgjBdfV0LsP4u97UF6qvwurRJj1Ga3LYECMhL5WDi9XOufgrsTWJOAk0NZ9Nw6J6lP1xGOBi39qH7xF/Bn3W+yAuBL8WYlEqnlUItY8MGywv2bNqrP+uB7m/ywKuu/iymrskSjaTdl8EeP+PCsyPpCad97SxEhNzcGzXq2wviMlHbZ4/47t58UBfm3P7uhJka8nPh6TAAmQAAmQAAmQACyrV8Guoh+L6Tqlw3TueT6pPLnvAPI9Fra4smRE4r2ez0lEQYVKT2v57lsR/qzxHy00CuYaLVPQicBFLUoKdGGShOJxioA0sZBLKOTa14qHNLGQHCfJJsfmt98A5Ltcc80skUaN08+EXv4dKCuzWFssjZb57TeDEv+47tFRXKQJh+LvvBs/ikbgnaPHtCqV1lmld148YayrabvZUwDUbh5l3Y18+eWX8m/X+Y/34osvdkf+qWvhPFIpwbp3744jR45oAqA5c+bAGAUCDfMbrwPlwb8gWTh8FMqaEP+4GKiwx7NkpWaKKXwvKtTKN/Nb8oszSNvboSNe6zMgoF5bRdz1+pFczO7RPaD2gTYyL18WtPhHjb2o3yAcbEL8o9oVysrdx2Ul2TyuJFM4aCRAAiRAAiRAAqcRAYekxlLpakOxpd164paJU2ELcFWPinj5+bQzIiIad92HoVdvqI1GAuEm8Of+/fC73r20YQ3KmdWCppfvZnHXXQ+7RDq1bfpRi7ChQlwr06WkiOjnMhjGjIFq19CU08sztc6Ryir0TvL/sr3hGDw/vQi0ed/N0o/gOH486Ie2qL/4EdRq1QDsZVm8NUcEKQOS/UcLCmAodxOHiiD90ovu80APSsXf9OTQkQE1j5QPxCq/l1QkomBNiYi/aUL8o8Y02x24R0LhvzxuTLCXYHsSIAESIAESIAESaNcELJLK1r5ju3aPuh49fQqADslnzecO5NRj4YoQObtH9GfJuHHjZizPd6blHiZikQ/OmFjvXpo6UZlGbFs2wSKiHy1KiwSgiLTpJKKvQZ6JQxbeOeTdskME++pYUuD4XtgT6Um11Pgqmqm6Z7Udd4paIn5pWahh/mQpYiW1896qavx5yzZ8KD8nugj7b+ySScciQTiaayp1svmLFZiXUN+fo9I7ryoswpkZTS+6bO61W6MfBUCtQT3C19y2bZv7ChMmTHAfezsYN26cJgAqlpztP/74I5pq722McJapf8DWdd8HPeSuDin4oEdvmGr/mNjlF4382pMUCbLBeawpIWtHVo7ZR/bsxUPDhgR9LV8dzO+93aw/Jg+MGhfwyxx17fm79uLnXbuGTVGp/jCYJWRbsFYcG4dnhzjD0gXS94UDEkpNhEu9EpkuIhBebEMCJEACJEACJNA+CKjc5pDPns2193v2xl/GnwG7LvBIKNtPleG/h3MljG14RePNvQf2I4FgCKhFGuFcqBHMtV1t9SL20UuUH312N6hVi8rUSjlDv/7asbf/FcoKz7zquvRlm0Q4RAGQN1IscxFoy74bR1UlLMuDj35cLJGbXxw4xO27UT4bu/LZ+PDd2MShfZcIUt6YOM6FLeS9+dNPmhWV74mho3BK5h+ohdsH4hB/V83rrwV6eXc7s4iH548MnN+yvAKskTTv09I7ucfgAQmQAAmQAAmQAAmcjgRUOnfzZ7J4ft06OPLqhO+Ow4dQMfcmGMeNR8zM/4Fe0kO77N4duzVRtevctZ8vWTJ+LlkykmOi+7V8vnynLbc6RTvqOFCzHcyB9Zs1sEiKr+YEeAj0Oo3aSTTq+Lm3yjPw/tlVfW9xlDsFQZowSN6HqgjddWV1x57lECETzTcB64rPoLau0uRl+b5x8pUXYJRnoVM/3yrQiMEIndqraOESRVmV6bRjZ73WTto4y53ttX5qDK28to9R+qtxZLN8uSKw9M2+p423NvyIH4c3XuygFlJ+MX0KjAEuvPRziaipEmq09kZg+/ZaFaqIYPr27ev39vr16+euP3DgQKsLgKzr17nnE8zBoFMnsO1979F35kw/B7s6ptQbTq0j/XDXbm1zVuhcMqHadqqFOHk1GVFtkZy5rK7coywjG7jgUlcTba9T6ksv5uolQa9hlV8onaq9h1vTSXe9JmGSuchY2iai1ZkffIRE6adeA6nkW2o8g/zPfayV62TVt+rv3NTq2YbHqkx3SvJJDh4BvYxvcNhlL+21Y6d0yiDH6txV5jr+PLs7ymNMMnpgpoVSE8fdovGNf7kGNgJbkQAJkAAJkAAJkEDbI+AKEd2cmb/Zux/uHDtJXoy6Pj0GPsrDkn7kIkk/0kF9waaRAAk0i4Ch/4Bm9VOdTrfw7s0GdRp3bNO+m82bJVyMOein18lcg++XvOu1351jJ+KzrPrCVfXXb6tErR4qm9Ma+m5UqfNvZJ2fxltZ7d9R2ens4hlp4LvReojfo6HV9tI8Q5YmfDfq+srnovltavdXLV2GJHF4K1+N5p+RSyjfjds3o8pl03wzal977K6v9eOoPjqJ9K3L7gl9Vo/6/hl1XS8+G5cvZ316Jg5LuP9gTDnAV4oDvKWjsAUzR7YlARIgARIgARIggUgSsEikkJo35Z2jj3d3jqJCWERYbln5uZYe2vSzC/G1iKg/ycv3Oq0i+eyssmTcNWSg1/poKVQCfJfVHblK6u/tJ07AKpGRtBRfua7P6/XbBHSm/FbNXDhnuvIan+IfdW1dfIK2ISMjoKm4GjlkgY8zopArmlCdUEgJiSxfrgQk2tPpbur7UqykLYN8z1Ob58+M53E0cKoUYdGjktXGm+0Rkdgrh47gN717eqtuk2UUALXJx+Z/0kePHtUaZMgvtKZSenXu3Nk92OHDh93H/g5UtCDXNby1Oy4hoOPi4kQgadU2b218ldn27PZVFXT5ku698IWEOd6emoaTQazSCvpCAXSYs3cn+ovQRtnBpA74l6x4ixpLEWWs2lrAVOjA1RJKbXo7C6XWAuh4CRIgARIgARIggTZKwJU+KNjpv9p3IO4dPV68Fa7Xj8GNUGy24LE9+3Df0MHBdWRrEiCBZhFIk/RAdwyqEwwN6RDcC/dmXZSd2jQBl18lUr6bclndqhZ6+bKcnBzNd2OTyDKWIB3u9jD6br7N7IL/yN+8LbJqtyQu3td0W6T8okMHMCXfubr7lPybfmCU/B2OFkuUFyN9AkudFuqUd5WV41VxgF/Xq0eoQ7E/CZAACZAACZAACbQ5AjWvLoJFopsEZPI52vzWG7CIAGbeoBF+u7yYI1kyenZD78ToTRU9W7J4rC0p1e7jyu5Zje7HIfdr2yhpadesgm3rluZHZBHRj3HsOBinToe+X39UL3wUwX7HUNGXTOeep83xu+ISzFn3o3u+b04aj9Ep9VM9uSsDONDFxkJt8BFZCLI4oDmpeV2XPiHBFWpkoUCqEs7QWoTAPwcPQ4EIwnyZ8qFemt0VqfI9sD0YBUDt4Sl63EOVrAiyK7WdWGpqqkeN98MUCW3uslMSzi4Q+/TTT3Hffff5bdqjRw+UlJSgqKhISzH2/feBpfWyZWTCMWmK37EDrSxMz0B3Uxxmqw625qddCPR6/tqdIX/Q4+Pkj4VYX/mlHtvK8/E3V8+6rpUV6FfmFC6p8s3yx+5UjPM+PNsFc7z+hx9g6pQW8XyQwcyJbUmABEiABEiABEggUgTsiUmwB/j5Vq2OUXKfQ7JSv1BS3P7eHlrIYd3+ffjiRAkSVbhcGgmQQMQJeCbgLikuRGDfggObVq9eveC5gCewXmwVrQRawnezWaL0XH/99X4RKN+NEgodO3YMhYXyMxuo70Yc1uHy3eRKxOZ+icnQ4lO3sq9kTHwsUiXlujKbCHB/38rz8fvwPCqTLWaMKilyl+xP7oBjCUnu8+YcHJcXOl8fP4oYeblBIwESIAESIAESIIHThYA9Pw92iQaCAP04Li658Uk4+0QpznYV+Nh/uuZrjEmtey/ro1nYih3yztg2bqJTqCO+IcOqVdBJAAdfZqiqdn8G7ixBI74vKdaaqmg4dhHZOEpL5IOypAhTnzUnnuFrGJ/luqQk6OQ9o07eX+vkXSkqJTvKli1wzDgX9gGDoSIrNWkqO0p2N+hVVJ/a7y8lEmHp2pq6TCsF8ln2+wgKORxdsmCbMk1YON/HNzlnjwZWCQ26NrMrzHoV/1NFBHW4mR8ZMw6vDx8Jk90GtaSoi/LnSbAN2KxwWOU9t0WOazUAWmf+LyACVepnXxae+P1+J9/9Pli1GqEu5kpPT28yO1NAkw6xET3BIQKMtu4VEnrMZbFKndiEebaprq5uonXzqpUzKS8vL7DOqRKJpmndUkBjqUBdPSWbfDRYhURaqnsywMgomVeTbBLicUo2l/XWDkJkarUjPz/fNST3JEACJEACJEACJNC+CejkxVlWdlD3qNaCheXzoiiKykSQXxbU1dmYBEggGglkZmZG47Q4p2YSiEbfjRIlBey7SZC/VGoLg6l4xJ2ixEdi65SOOhlNmP4Wh4FRk0PEGHGqcxd3M3kVgoxQmYrrp7igwD0mD0iABEiABEiABEjgtCEQpA9HcVGSmoD8ODXVgX/mDhfwrh6RfCRtlz9T0u+RrgblZciTzW1KUOPxmdNdHuyBErTI4oNGpsYPlL0SITV47+yetwxcLQEqAnwr3WgaARd0di4cCLi9R8PB2rHnu1a1JFBMPtdrm/MMXijV1nAXLIHhWoKyWs6+OktQjDzZQrEYldIuCozLOKLgIYRzCpUeOQdNAagbPdvUSE5DGgmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQQOQI0HcTObYcmQRIgARIgARIgARIgARIgARIgAROZwKMANTOnr7RI7y/yuPelFmV0rLWPMVArjJvexUieubMmd6qtDKVR37Dhg1wCYr69OmDn/zkJz7be1aYly2F9asvPIuafWyW1dYqhNotE6fgQIfm53ps9gQ8OmZUV0naL+fzMEtYu4JWzmvvMTW/hykiCuvrkQJsh4TlqzKER714WXYWbhnQz+/1WUkCJEACJEACJEAC7YFA1T+egeNQjtdbUZ8QnUF/gbtHT8A3Iawg8noBKewpOa4XTxjDNB6+ALGcBNoAAc/ovW1gupxiEwRawnfTqVMnv74blfJrlaQAcEWD7iqprwL13VjWfQ/LO281cZeBVSvfTYWsknx8yAh8K6H0W9PSJTJ2R7NzcZxN5nUwWQXej35T/qZhpc70DGq2KgXYiVjfqR2CuaOJaal4fOTwYLqwLQmQAAmQAAmQAAm0OQIOiwVV994lKZbMQc39pHyOfa3PQJTGxeKkpMk9YYrVthL5LOZQOd592M39++LybsFFi/YxlLvYumUzzK/9R9J9eUaWcVd7PzDGIOaXv4Je3i1bN6zHpwWFWCCfy5Vdt3cXrt2/23s/H6X6vv1gGDsexuHDoRMWoZh56RJYV3+lDWG67noYBw/1O9y5q79FhaTKSpPgGB9PmeS3bbgqHZKOy/LpJ7Cu+jKgIeeNPwNrO6l4nYHbr3v1xK979wy8g5+WKiVc1YP3Bf1z7hryUGIS5o8cC6PdgVLhnO8RFXZK3nHES+qyLPlZur5HNnRW8XjK81Ap4xxaGjM5lzKHKvOsU+/OVXozyR7jsKu62no5dljqxoBnNCrXhJrYq7TON0w+CzkdOjTRsn71w8OGYHpGev3CAM88v+sH2CUizSgAigjW1hs0Pr4uXZNZch42ZZ5tEhMDC988bdo0qM2XvfTSS/j444/d1cpRmSR5HQMxm+Q3rPr4oyab7uqQgr+Omwz5twv1N1TncGh7veyVeZadkrIOp05JqbONqtc7m0k7Oag9HpIsOTrVP2hpr/7TTO20MWtLtGL5X+11tO619Zbv1kpcOWeOyborOYfx/P8aeamTIn/8XXNV+R21+cuwaj4qLJfrfrR+6poNPiho09AqdTBIXT+VN1Ng2GUu6k+7/AqVY7VXU3Voe+1Yq3OWq3qtrTi47PILV/0itMuF7LLXjtW5bKdkfHVeZTDisMEkH1oaTEabR/D/e/54Pq6QDzmD2ohDLfg7ZA8SIAESIAESIAEScBKIv/gS5xdsL0DUZzSXAOiv332D494+k8vn6fib50KXkOBlhMCKYmXcBJVfnUYCJEACJNDqBFrCdzNo0CA89dRTPu9ViX/eeOMNd70KVR6o78YhTv2Kxa+IU8H/y4VC8X38YfJ0qIVQypPg8nW4/CGeZeXy8qGh78ZZ7/SVKP+Lsix5uXJJloTbF19HPd+NaqD5Z1w7da56OPfKN6KOrZs3wVFaoirkzLd/Y4OkAzNJ+Hflp9FJV81fI2M4j8Wv5FEuh07zGE4VqVNXlWrQV3w3Jr0eNhlHkdN8Mq5j2avPBO5yd70qk/byUsomfj7lt6nz2Sh/jcxELnRKfDWq3CrnOTGxsMg+HLak9CQur6jEeZ2ZhjAcPDkGCZAACZAACZBAdBKw7tgOXe1nxGBmqLw0czd816jLZTPOxyaX0EM+5w05UYLRxUXoXFWBUvmMvPnoEVwyYRyS09KgE/G2Tt6T6QLI6tLoQrUFtoM5qPr3izDKZ8ag7anH5UOrQ/NNOXr0RkHt50iLfPZMKC9vcjhd586ImTINxqnToJfP0OGyGpmTpfb6cfJdxdjEe+Yi+ZxdZpfPxrIP9HtNWOZ6xVWwjRkLsyyQsO3c4X3IuDh8d85MfBgfnBBFDfbwoSP4sqwcXWWMTvIzkmaK0UROSuikjl1lqXKuvmv4NfV9ZPqZsHz4vt9mvirvHXcG1ndM81r9ftc6QVvGgMH4Zc8eXts1t7D6n8/Aqt7D15pZ7vWk3HOpKQ4dJbVeZ9mUKWHSs4NHyIKIWGxPScXejim1PQLf3ZtzCKslGEqsoQmegQ/Z4i0pAGpx5JG9YILHSwHPnPK+ruoZdjpQAZCvscJRbujbF4YhQ2GTP7a+TDlP/jZ+Mralhe8PibqW0rH+buhQjExpXrQgsyiDza+9qobyaR9374UlPfv4rG9uxS97dseC4f7Vr77Gtu3Z7fOFlGefmyZOxWbXBxbPimYeK4fXXdt34a1J45s5AruRAAmQAAmQAAmQQNsgYBgwEDHn/1RbFdRwxp6SnE6WGnQ64Yw84Nku9vd/RIxEZqCRAAmQAAm0DwJt3XejkxWUxrPOhvWLlX4fyEOjxmFDRme/bYKt3CUdruzdGxcpEVAzzNopDdULH/Xbc0tqJ9wmq3O1VWd+WwZXOS29E95upg/EXlyMyltvFsWPkgn5tieGjsT6MDO/e8cubcFcTFMvFHxPizUkQAIkQAIkQAIkENUEHCVOgXhEJiki7R3y+VJtGVWVuDxnH67bvAHGtavhDClQe1URLGhiIPms7dyLKMglDnKVKaGQ61jau6xm0b8lqkszxD9qAHlXF7TJu2jjhEmIEdGPof+AoLu3tw6Gfv0R/9c7YC8tFZHKtzC/8Zp2i7ouXRF77Rw4Bg7CnWtEvCIReII19XS+KykNqFuS0aCJg9yiIIlKVScSch6nnjEViTt2IOXwIS36qTHA5/9x954Bf89YsGsvLpbvax1FuBWImWVhyQmzBcUiOivRNgtK5Z17SW1ZqdoPGYWixBQtwlap/OyXy7257NlvvsLMY0dcp3hFBEih2KHKKryQcxB/7Bf+9/mhzCuYvhQABUOrDbRV0XZUmOdicQwUFBQ0OeP8/Hx3mzRRmkaDma65FlX33Q3IP3Jv9r4IaLaEWfyjrqN+id65fSeWNDM0XMxPzoHlyxVwHD/ubdoSQceABSPGeK0LtfBVUYBeJ2rKwR2CD0+tXkgZRoyETcID+rINIvz5WJS/4bbVRcVYnpePmV3C6xAM9zw5HgmQAAmQAAmQAAmESsB05dVwnDwB69pvAx9KnESmq65BzMSWCV0c+MTYkgRIgARIIBQC7cJ3c8mlsEn6d/W3zZv9KKt/l0TAj6Cudd+O3VpEmnjxswRrxpGjYBg2HLZtW312vX+0LFSSv8HhtjXiA/lUfCDnN8MHohdfX8wM8Tt9vtzntI7Ji5gXBw7xWd/cihyJAPSirIL9fd/w+4WaOyf2IwESIAESIAESIIGwEqhpvBgrrOPXDlYoKdr/ISm2/jl4OKbnHcPVB/bg7ONHYVAiDJmDo6YQjqLCwC4tkU6UQAgi+nB4vOsNrHMzWsnnY/U52jhtOoyjx4YUsagZV28TXfSpqRIqtC5qjFWiSj1i0+HNL1fjhEVSW0XYyiW1Vrm1CodFwOLXRk0A1CY/dx1EaJMqP3uZkuHm9a8+c3f7IT1TUiJ3kLpqJIq47MGR49x1TR2USPu/bduBa7p300Q8DcU8TpGPCHyknTpW8w7IfGgDlCDIZZUSWTYc9sTe/biyWzYyJQJtWzQKgNriU2tizr1lJZQSAKnoPqWiNkxVv3B8WG5urrtm8ODQFHHugUI8MHTvgbjf3oDqfzzdSHlaIbkDHx0+OsQr+O6+rvQE3j96HJdkB7+STCdzi//TLahU4iVh39BeGDgUxz3yITasD+VchYieJ+KldybLL+xmWKzk+Ky8Zx5QVtaotxJGac6vRjXhKbhbHHdnZ2Y0HZouPJfjKCRAAiRAAiTQKgRycnLkz2zjv7Pp6enIyspqlTnxoi1LQCcOgLgbboS5Zy+Y339Xc+z4m4EuNQ2x1/0KxlGREZD7uzbrSIAESIAEIk+grftu9B06Iu5PN6Pq4QcbLeBSfoT7lEM5QnZUUpn/Y38O5g7o16wrxP3vjeIDuQuOwsYL5z7q0Qsbwxj9uOEEVTSdGc30gZguvQxWES45jh9rOKx2vmDEWNRI+vZI2MK9+3B5tyxkeDjXI3EdjkkCJEACJEACrUng2LFjKCoqajSFZIm6oj670dovAV3H5mUGaS4Rh4hpVknKJLV1ro0KdMWBvciS44BNhBMOSSsWadNnZ0t6LxH9nDEFekmpFK2mso4os9qd+9aY50kRtOQUFsL1LcUgwppXDh2K2Gf0kO9Rfg5PmWK1LTcxCV93rns3/mbv/lgmUX+aa+/Ku3a1tYSp70FPSyRUZdYwLeSokMirD+7agydHDW+JWwj7NSLzrTDs0+SAwRAYMmQI1q9fr3XZvHkzzjrrLJ/dt2zZ4q5T/aLFjBMmIk7yGaqcfp5iml0dU3H+0cNepqmDXkWykZx8odrRZoRgc11T3zUL8bffierH/w5HSbGrWPuFUyJ5PWcd3Ocucx3o5JerSnumSwo+eo9rDNf+kAiPenqkgXOVN7XXp2cg/qa5qFJhsCsq6jV/t1dfbJPQhJGygzLnFw4cxB/acCi1SLHhuCRAAiRAAu2HwCOPPIIvvvii0Q3NmTMHd9xxR6NyFrRfAqb/+Zk4TabCsuIziZywHvajuXU3K19S9RI62Th+AmLOmsHVVHVkeEQCJEAC7Y5Ae/DdGPr2Q/ydd6P6iYX1fCCHxL8xuqRQ2xo+OL0IbPT9+0uAndAi7FSKQ9YuTn59M8ZR/hfNd/PE32GX0Peeti+5o1ffDURYY5DQ/fq00P0jW0+ewtjUFM/LBnSskxXj8Tf/GVWPzG+0MnydrNBdKmnnI2VqVe58CeW/cOSwSF2C45IACZAACZBAqxNYvHgxXn755UbzmD59Ol588cVG5SxoPwT03buH9Waqg4hUmS+f8Z6RqEDPSlSgs4/nSlSgvVp0IC0qUFhnFdxg+r59EX/llTC0AfGbQ74XVNemyi23Rj7SjifJw/KO87P8QizPL8Da4hL8oqAIbdHTa9Prcd30czxvrc0cl0k0rDLUpQQL18TfzD2KX/XqgVEpLSsQDMf8KQAKB8UoG0MJftQHFWXLly+HOvdmKv3Xxo0btaqBAwciWlKAueZqlLRUCQseg+WD92H5erW2SnpscSHU5jb5I2oYPQaxl10OJb6JBjP06ImE+x+EWc37ixVafnaVQ/HejT/Un55eD+NZMxArYbNVzs7WNpWjMuHu+1H93LOwH9jvns65R4/Ih4133OeuA8PgIYidPUdCDCa5ipq9NwoLGgmQAAmQAAmQAAmcLgT0srIs9tLLAdkcasWWSp8iLxbVijNdEE6i04UX75MESIAE2iOBs8RX0x58NwaJbJcw/xGYly2V9FQSMr6iHL3Ky3D3xnX1HpvyIZguuwLK9xANplJqxc+7BxaZt/mTjwGJKqTslu2bG03POH4iTJfOgj4zs1FdSxfoO3dGwj3iu3npedg2OX16ag6DTpTi2yWNfTd6WSgX+4tfydwzQp5qc8RWIV+UA5AACZAACZAACZBACxDQd+4CXVY2HMeONnm1fUkdsD6zM9IkNZJzq9H2HcW/45K4W3XBv/NSUYG+yOqubV0rK3BFzl5cnrMPXUIIWtDkzTRooO9ZF+nKOGp0mxD/qFt4/chR2GvvxSLvY5ub6aUBDq+nSmy0SQT9y/MKRPSTj51l5fXaLeo/CK/1HeAui1SETvcFeBBRAndK9p2Pp0yK6DUiMTgFQJGg2spj9peVVErQs3v3bnz99deaCGjmzJn1ZlUjYccefvhh2GoVkbNnz65XHy0nKqR07JzrYLp6Nmw7d8B+/DgcZaegkyg3+oxMZ+ScxMRoma57Hmo1Wey1c2D6+cWwikPGtm8PHJKOTZlOQuSpVXKGMWOg7i+aTHMk3X0frOt/gGXNati2b0NHyf8IS+0s4+KhhFnGs2fAKFGLaCRAAiRAAiRAAiRAAqER0Kmc7fK5lkYCJEACJHB6EWhPvhudRHBWi5tMF10C+57dsOUeEXHrSegkErKuUxoMg4dKuoDgI95E+idC/Q1Wc44573xYt2yGbdcOp+9GQvfrOqZAL+Im45ix4n8KXTwTznvRSRoSFQnIKn4y65crtbkny4uhZGut8yYmRvOXxUiqBoNEFQw12lI4586xSIAESIAESIAESCBaCZhm/g9qXn6pyem927svXhzUOCqi3mFHqrx77STCoDyPTB0DRKidI0EALHpDk2O7GhxPSMSTQ0fhaYkMNENESVcf2INpeccQvKzINWIAe5mj6fz/ATbVZY4JoFfEmiihjcs8j11lrr2K+DN/9x7Xqba/f+dunN8lE/FhWmSnogt9I9F9PhXRz2cS6SdfnrMvs4v4q8YQuSeVGWtCnNxXiQjOVJROmpNAguxS4UChyPDkrXbYbH3pCbx39BhmZWeFbcyWGIgCoJag3ArXuPnmm3HDDTdoV37wwQeRl5eHc889F5myWmnHjh144YUXoNKDKVNhp88880ztOFr/pxPnhRKeQG1tyFRkn5jpZ2pbG5o2jOMmaJtD/nAqp51DVvDpkjs4V6UzWk9bepScKwmQAAmQAAmQAAmQAAmQAAmQQJQSaHe+G/EXGAYN1rYoRe51Wrr4eMRMnKRtXhtEaaFRoiqpzWG3w3FKfDenyqCTRXJaREEjXb5R+tg4LRIgARIgARIggSglYJR3eZaVnzdKEdtwuipSjzdTwo9iWUSvNk/bI0EBmmtqzBXZ3bUtS97TXalFBdqPzOqq5g7ps184Ut36HLwZFdbVX7l7WT9bjpjRY93nngeP792Pwpr6ko9jEt3zmX0HcOvA5kcfLRaBzYra1F5fFRZBpSCOBis1W7D6rInoLZ/7zfI9oFTmWSJlar5qr4RBzs1VVr+8SvpEuyWIwKmTLNZIM8UgtXafpvaiFdD2nmXSRpWZ5LvocwdycM+O3WG/PaegTCKxhklQFvYJehmQ3wa9QGkPRUOHDsW9996L+fPnSxTjarz00kvaZpAfTlfUH3Wf2dnZWLBgAfQUdbSHxx72e9CJw0gnYbGhNhoJkAAJkAAJkAAJkAAJkAAJkAAJkEDYCNB3EzaUp/VAOvHpqWjTCOHl0mkNkDdPAiRAAiRAAiRAAkJAfaaK+9PNqLxnHlBWFnVMjiUm4fFho/GUbOclJuBakwHTRAhkWfFZQKnLmrohfZ8+yKtNi6vaHqwIv8ioqTl41utiY+GorHQW+cgEc7CiEi8cOOjZzX387P4cXNOjG7JF7B+o7S+vkLReKrVXAdaVlLrTigXavyXaqRRnd4vIZfH4MZropbNEY1VboKaiGXkKhYobiIaUeEiJiQ4IWyWkCocpydyQDsnIkGeqRD1KsNNJiXtilMjHKfTx3CsxT7BWJCKwv+/ZH2y3gNofr67B0yIo+8vA5gvKArpQGBtRABRGmNE21IwZM9CrVy889NBD2Lt3L+yi6nOJf4wi7Ljkkkvwy1/+Eh07RlcaqmjjyPmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQQCQI0HcTCaockwRIgARIgARIgARIgASCJ6BPz0DCHXeh6vG/w5Gf5x5AxUxxSRJSJP1T93IPgZAEXlARGFEbgdEmAo1jVXXCCSV4SPQSndEu7VQKJ5XCyirHgZqKQ7NMxBnLKoAeIm65+pzzccmb/0W6pB4LxYxjx2upjlxjrCwohLoXg4+IR652kdrru3WHPV4ldhL2Xb2nX7prxy4oQYw3q5Z34ipyy3NjRnmr1srUM1ApnlypvfZVCNQwWLI87zJ5rpEylYZslUQlOjMjPehLqPRhWfFq8y0aUj+Tk79cHfTYvjqoJzQqpSP+PqJx6jxffYItV2ngIsn8n0pQ1r0buicELigL9h7C2Z4CoHDSjMKx+ohiU0X/UVGAlAgoPz8fWVlZ6NGjB5KSkqJwxpwSCZAACZAACZAACZAACZAACZAACZAACZw+BOi7OX2eNe+UBEiABEiABEiABEggugkosUnCvffD/PESWJYvAywWt/hHzfyG3du1DSKkiPnJOTBdcAl0Sckh3dTa4hIsPnQES/PyJK2Td0GLtwscrqrCAqn4+wWX4tyjR3D1gT2YXJAH70nKvI3gLNP36o0v0ztjx8Gj7kZFEgVm0aHDuL5XT3dZSx7E//kvfi+3WgQwSgjjzz44lifzL8WEtLo0bBUiblldVIzleQX4vKBAot1Y/A0RcN1QiXAzs3OmtiUYDai2BZZq698HD+H1I07udw0eiGnpgWVkSRVhWaTMW1q1UK/12uFc/KpnDwzr2CHUobz2v7p7Nq7olu21LlyFMfpg/2WF68rBj0MBUPDM2mSPOAn/NXz4cG1rkzfASZMACZAACZAACZAACZAACZAACZAACZBAOyZA3007fri8NRIgARIgARIgARIggTZDQCeRZ2Ivv1LEPRfCumUzav77KnDypHP+CVJ37RwYR44W4U94Ai1M7pQGtZWYB+NNEYP8R8QS+4OIRmOVlEnLuvfUtp7lp3DVgb2YdXA/Okm0oiZNhEx6uZ97JFpOQ3t09z7MkqASKREUmzS8ZiDnKjLRvO27AmmKO7fvxKJxY6AiGn0qgqE1Iv6pkehAoVqMREZSz0yJfs7vkhlUqjHPa6u0WC7rIdFlhkdIIOO6RlN7f2nVmurrr17J2tSz+OCMif6aNbtuXGqdyKvZg7SjjhQAtaOHyVshARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIIjYASAsVMnAzrN9/AtnmjNpiKEBQzZVpoA/vonWYy4X/79ta2r0Wo8qpEBfokL99nmitvwxxK6oAFI8Zi4bBROE+iAi38bg0M3hrWlsXOuQ7/MsR4FRyVSvSjR/fsxYPDhvgZoeWrXjl4GLvLywO68JaTpzB65VcBtW2qUccYI2ZkZGCmCH5+IvtkOW9vdreftGqh3ut3JaX4SKIy/TyrS6hDsX8TBNrfT2YTN8xqEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEmiKQNwf/wS4osZItJ2WsKmSCkptRTVmvJmbq0UFyqmoDPjSFr0BS7v3woJ138Jgs6HcaIRZytLMtVGBRGwU+5vf4eSoMfj7l6t9jvuKiJDmSOqmgcnhiXbk80IBVpRKarJH9+wLsHXozVRUnvNUlB/ZJkkqMWMLPf/QZx78CDtPlSFX0sqpdGZNWWF1DQrkWbhskPx8GCQqUlP27tFjuLBrZ+gCaNvUWKz3TYACIN9sWEMCJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJHCaEtDFxLTanafHmnBj3z74fZ/e+Lq4BItFkLNMogJZJQ1WMHZKBD/nnH8xZh47gmvjYzHtwguh75SO+Vu2ocxq9TmUSrd1l6RuenPSeJ9tIlVRIfMqFAFUoaQy0/YiXnpDUqSdkMhEkbTRKR01wY8S/gwOQAwTybm05NjqXldOnxLQJf998BD+tm2nu+2HktqrYyv+O3FPhAcaAQqA+INAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAlFIQEVMmSYRgdSmBDGvixDmP4eP4HBlVcCzNRsMWCJRgZZIj35bduLczhn47+HcJvuvknRky/MLMFMEMaHaSRHvuAU9DcQ9SuRTJPemoh6pNlWuqEuhXrSJ/rES1We6cFX3p0Q/mXGxTfRg9YVdu2BExw5uEEkSYYoWPQT4NKLnWXAmJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJOCVQEZsLP6vXx/8sW9vKHGOigqkBDoqWk+gtq+iAvsOVATaHPfs2IWzM9JhapACyy7XLDE7RT1FkhJKCXgaRu1xnSthjyWIOQY8uWY07GSKwbmZmZjZJRNnyn0liDiKFjgB9TOoNlp0EqAAKDqfC2dFAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAo0IqKhAZ4l4RW0F1TV47UiuFtHnSFXgUYEaDeqjIKeiEld8tw7d4uOdEXxE7KOi9BSLqMfuo080Fv9cItf8pndPjEtNgV740UigPRKgAKg9PlXeEwmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQQLsnoNJW3dS/rxYZ6KvCIiySqEArCgrDet/flZTKeGpru7arrAxjUjpGjfjnndxjbpgqpdsFIlCikUCoBPShDsD+JEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACrUdARbWZkZmBRePHYMNPzoSRUW7qPYw95RV4RcRR0WKeMYiMOso2ouW5tPV58CeprT9Bzp8ESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAEagl0iYtzC4A6mUw4T4RBFAYAj+7ZixJJYRYNpiI3JRuN2tZZjmkkEA4CTAEWDoocgwRIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgASijECc3oDFE8biV+t/xLK8gqiYXYLBgIxYk2yxzr3JuU93ncv+hf0HsTQ/P6zzPWmx4tHd+zB/+JCwjtucwZZNndycbuxDAn4JUADkFw8rSYAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESKDtEthQeiLi4p+OMUak1wp53MIeJfLxEPek14p+lADIn20+cTLs4h/X9RYdOow5PbtjcIdkVxH3JNBuCFAA1G4eJW+EBEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABOoTuGPbjvoFIZx1kLRVdw4egKy4eHcUHyXsMenDl2Tszu07Q5ih/652qZ4n478zeYL/hqwlgTZIgAKgNvjQOGUSIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESaIpApc2GTSdPNdUs4PpTVisKaswSRadHwH2CaXjCbMFV3bO1LZB+d2zbiWq7HckiTLpnyMBAumhtyuU+kqQPjQTaEwH+RLenp8l7IQESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIIFaAictlrCzeHbfAVwtIp3s+Piwj51iisHsHt0DHveeHbs1AVCcQR9Uv4AvwIYk0IYIhC8OVxu6aU6VBEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABNo7ATscYb/FKom4c//O3WEflwOSAAmERoACoND4sTcJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJRBWB8Mt+6t/eB8fy8ENJaf1CnpEACbQqAaYAa1X8vDgJkAAJkAAJkAAJkMDpQCArKwv9+/dvdKsZGRmNylhAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiTQsgQyMzO9+m6ys7NbdiK8GgmEkYBdFEAGGS/JaMTv+/T2O/LusnKsLCzU2kxITcG41FS/7V2VhyorMSEtsLauPtyTAAlEjgAFQJFjy5FJgARIgARIgARIgARIQCMwb948kiABEiABEiABEiABEiABEiABEiABEiABEohSAtdffz3URiOB9kTAoHPeTUdjDO4aMtDvrb2Te8wtADo7Mx039+/ntz0rSYAEopMAU4BF53PhrEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEggIAKMABQQpuhotHXrVtx4441ITk7G0qVLA5qUzWbDsmXLsGLFChw5cgSVEoZt8ODBGD58OCZPnoxBgwYFNA4bkQAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJ+CdA341/PqwlARIgARIgARIgARIgARIgARIgARKIHAEKgCLHNqwjl5WVYf78+XA4JFljgFYoeRrnzp2LnJycej3WrVsHtS1atAi33347Zs6cWa+eJyRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAsERoO8mOF5sTQIkQAIkQAIkQAIkQAIkEDkC1q1bAItFu4CjpBi2Qwdh6NkrchfkyCRAAlFBgAKgqHgM/idRUVGBW265RYvg479lXa3qc+utt7rFP/369cOUKVOQkZGBTZs2YfXq1TCbzXjggQeg2s6aNauuM49IgARIgARIgARIgARIgARIgARIgARIgAQCJkDfTcCo2JAESIAESIAESIAESIAESKAlCDQMKtHwvCXmwGuQAAm0OAEKgFoc+f9n7zzgrSiuP37oVaSDgA00igU1WBI1UYnEGg3WGI0mRo0F/7YU7InGjr3EGjWxxRajIUGTWKJBQiyADTQiKkUsIE2Q9v785mX33nffLXvv3d13h/edz+e9u2V29ux3z8zOnD17prwTvv7663bppZfa+++/X9aBd955p7377rvumN12283OPfdca9OmjVvff//9bfLkyfbzn//cOf9cd9119s1vftN69uxZ1jnIDAEIQAACEIAABCAAAQhAAAIQgAAEmjsBbDfNXQO4fghAAAIQgAAEIAABCNQegRZt21qL7He/revfE9eepEgEAQjESaBlnIVRVnwElixZYtdee62deOKJZTv/LFiwwB5//HEnTO/evRs4/wQSDhkyxG3X+sqVK8P8wX5+IQABCEAAAhCAAAQgAAEIQAACEIAABAoTwHZTmA17IAABCEAAAhCAAAQgAIGmJdBq08HW6cprw79WAwY0rUCcHQIQSIUADkCpYC7vJG+88YYdddRR9vDDD1vd6nBsLVq0sB/84AfWvXv3SAU988wzJiOU0ne/+90w8k/uwZoSbN1113Wb5TC0YsWK3CysQwACEIAABCAAAQhAAAIQgAAEIAABCOQQwHaTA4RVCEAAAhCAAAQgAAEIQAACTUDgpXnzbNH/3nF/9uUye23+giaQglNCoHYI4ABUO/cilGTcuHE2e/Zst96jRw+75ppr7LjjjrNWrVq5bXIIKpYUejpI22+/fbCY93fbbbd12z/77DN75ZVX8uZhIwQgAAEIQAACEIAABCAAAQhAAAIQgECGALabDAuWIAABCEAAAhCAAAQgAAEINBWBJStXWd3/Tr5q9e+Xq1Y2lSicFwI1QaB1TUiBEI0IdOnSxQ499FA78MADrVOnTo32F9ugr9CU5Cg0aNCgYllto402CvdPmzbNSjkMhZlZgAAEIAABCEAAAhCAAAQgAAEIQAACzZgAtptmfPO5dAhAAAIQgAAEIAABCECgJggo2knrrOAZLax4II2aEBohIJAgARyAEoRbadHDhg2zww8/3Dp27FhRETNnznTH9erVy1q3Ln6L+/TpE57jgw8+CJdZgAAEIAABCEAAAhCAAAQgAAEIQAACEMhPANtNfi5shQAEIAABCEAAAhCAAAQg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yxsIp/6K+i1B+uijj2zBggXBas3+arCU3SbqReEHH3xQs/JmC9anTx9ba621wk2SW/LXelKbomd/kKQn0hcfkuTODnX7zjvveOGc36VLF5O+BEntodpFH5LGFDKYKilk/XvvveeD2K497NatWyjrzJkzbfHixeF6rS5oGq4NN9wwFE8yS3YSBHwj8LWvfc31tx9//HHbf//9Exd/TWln1c9Xf9+HpLFhdjvri70st531yV6m8VWnTp1C9fDFXqaPOTWuDZJP9rL11luvwRSZvtjLZLfp1atXgNzZJ32wl6nPmT029MleJt6yUwbpww8/9GLqy1x7mT64nj17dnAZNf2bay979913vXjhnWsv++yzz0x/PqRse5mcC8Tch5RrL5OOpxFcoFo2ufYyTaertsWHlGsve//99+3LL7+sedFz7WXz58+3OXPm1LzcEjD3HZ+v9rJPPvkklQ9I4rip2X0Wn+xlcVw7U4DFQZEy8hK488477fLLL8+7L86NevGXnTQQCQzg2dtrbVnewPrLTvKK9yHBPP27tKYwp34mrztriq6IFG1isvqyJj2H0BV0pRAB2sRCZJLbvqYw96XPojuZy5w2MTn9VslN9fzcd9997Yorrkj24ii9WRJ45pln7MQTT0z82nPrDu1s4sgbPR98YZ6rKyLFsy1ZfVmTmPuiK7nMqZ/J6rhKz+0zwxzmhQjk1k/l86VtydVzX+WmfhbSzvi25+oKzONjW6ikNYW5L7qi+5DLPI02ccstt7QHH3ywkBqkth0HoNRQc6KkCMjJ6I477giLv/rqq23vvfcO12t1QV+JDhs2LBRv2223tXvvvTdcr+WFn/zkJ/bss8+GIuqLwU022SRcr9WFf/7zn3bssceG4h166KF2wQUXhOu1vLD77rs38B5/4403TFGkaj3JEfDSSy8NxTzrrLPsqKOOCtdrdUFfMOlBHSR9Ufa3v/0tWK3p33POOcceeuihUEa1jzvvvHO4XqsLU6ZMafDl8W677WY333xzrYrbQC5FvXv55ZfDbWofsyPrhDtqbGHMmDF2+umnh1Idc8wxqUTuC09YxcIOO+wQRhPTlx8TJ06sorT0Dr3uuuvsxhtvDE+o9nHEiBHheq0uKArK17/+9VC8LbbYwh555JFwvZYXTjnlFBs7dmwootrHIUOGhOu1uvCf//zHjjjiiFA8RWZI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ihVhxowZYfHixbm+19rYDTfcEK6++uowc+bMMGXKlFp3r6s+c+ZJA0isiJWkseKZ6D0kVqoL+M5S3afSVu8h76FKsVFcLlbESnFMVFrP8neWSueknEBfCHjOes4mjbMsP2fFuThPGudiRawkjRXPRL+XiZXqAn4vq+5Taav3kPdQpdgoLhcrfR8rxdcgrXUJQGlJaocAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAEwRMAdYEdIckQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkJaABKC0JLVDgAABAgQIECBAgAABAgQI2d4wHwAANgxJREFUECBAgAABAgQIECBAgAABAgQIECBAoAkCEoCagO6QBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBNISkACUlqR2CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECDRBQAJQE9AdkgABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEBaAhKA0pLUDgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIEmCEgAagK6QxIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBIS0ACUFqS2iFAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECDQBAEJQE1Ad0gCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECaQlIAEpLUjsECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEmiAgAagJ6A5JgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIC0BCUBpSWqHAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQBMEJAA1Ad0hCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECKQlIAEoLUntECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEGiCgASgJqA7JAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIG0BCQApSWpHQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJNEJAA1AR0hyRAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCQloAEoLQktUOAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgCQISgJqA7pAECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE0hKQAJSWpHYIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQINEFAAlAT0B2SAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQFoCEoDSktQOAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgSYISABqArpDEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEEhLQAJQWpLaIUCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINAEAQlATUB3SAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJpCUgASktSOwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgSaICABqAnoDkmAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgLQEJQGlJaocAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAEwQkADUB3SEJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIpCUgASgtSe0QIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQaIKABKAmoDskAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgbQEJAClJakdAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAk0QkADUBHSHJECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIJCWgASgtCS1Q4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAJAhKAmoDukAQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgTSEpAAlJakdggQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAg0QUACUBPQHZIAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAWgISgNKS1A4BAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBJghIAGoCukMSIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQSEtAAlBaktohQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0AQBCUBNQHdIAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAmkJSABKS1I7BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBJogIAGoCegOSYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCAtAQlAaUlqhwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEATBCQANQHdIQkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAikJSABKC1J7RAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBogoAEoCagOyQBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBtAQkAKUlqR0CBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECTRCQANQEdIckQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkJaABKC0JLVDgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoAkCEoCagO6QBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBNISkACUlqR2CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECDRBQAJQE9AdkgABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEBaAhKA0pLUDgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIEmCEgAagK6QxIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBIS0ACUFqS2iFAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECDQBAEJQE1Ad0gCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECaQlIAEpLUjsECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEmiAgAagJ6A5JgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIC0BCUBpSWqHAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQBMEJAA1Ad0hCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECKQlIAEoLUntECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEGiCgASgJqA7JAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIG0BCQApSWpHQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJNEJAA1AR0hyRAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCQloAEoLQktUOAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgCQISgJqA7pAECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE0hKQAJSWpHYIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQINEFAAlAT0B2SAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQFoCEoDSktQOAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgSYISABqArpDEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEEhLQAJQWpLaIUCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINAEAQlATUB3SAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJpCUgASktSOwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgSaICABqAnoDkmAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgLQEJQGlJaocAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAEwQkADUB3SEJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIpCUgASgtSe0QIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQaIKABKAmoDskAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgbQEJAClJakdAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAk0QkADUBHSHJECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIJCWgASgtCS1Q4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAJAhKAmoDukAQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgTSEpAAlJakdggQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAg0QUACUBPQHZIAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAWgISgNKS1A4BAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBJghIAGoCukMSIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQSEtgYFoNaYcAAQIECBAgQIAAAQIECBAgQCCEuXPnhhtuuCFMmzYt9/nVV18N8+bNC8OHDw/jxo0Lm222WeffxIkTw9ChQ+tmW7FiRXjiiScK2unfv3/YfvvtC8qasTJ9+vQwZcqUMHPmzBAtos+iRYvCuuuuG9Zbb73c3xZbbBEOPPDAnE8z+uiY9QssXLgwzJo1q6ChwYMHh6233rqgrNaVZ599Nrz11lslu2288cZh1KhRJeVJC15//fXw4osvFlRfa621cvdm98JWvbfcV92vks8ECBAgQIAAAQIECBAgEAX6rexYUBAgQIAAAQIECBAgQIAAAQIECPReYPHixeGcc84JV155Zbj//vtD0p9b1l577XDEEUeEr3/963Ulv8TEmrFjxxacwLBhw0LsVzOWl156KfzsZz8L1157bXjhhRcSd2HbbbcNH/vYx8I3v/nNMGbMmMT7qdh8gccff7wk4WzIkCHhjTfeCIMGDepVB2PyzXve854Qk3WKl+985zvhlFNOKS5OvP6DH/wg/PjHPy6oH+PujDPOKChrpXvLfVVwaawQIECAAAECBAgQIECAQJGAKcCKQKwSIECAAAECBAgQIECAAAECBJIKxASFX//61yGOYHPCCSeE++67L3HyTzzG/Pnzw+mnnx623HLLXOLL1KlTkx66Jeu9/fbbuaSKbbbZJpcQVUvyTzyhOIrRaaedlhs15he/+EVYvnx5S56nTpUKbLfddmH99dcv2LBkyZLwwAMPFJTVsnLPPfeUTf6JbcRRtupZbr/99pLdP/zhD5eUtUKB+6oVroI+ECBAgAABAgQIECBAoPUFJAC1/jXSQwIECBAgQIAAAQIECBAgQKAFBeKUVjvuuGNu9J44Skg9y7vvvhuuu+66sNdee4Vf/epX9TTVtH3jSC8TJkwIcWSVclM21dKxOJ3Uf/zHf4TddtstLFiwoJZd1W2iwH777Vdy9L///e8lZUkLrr/++opVH3rooTBnzpyK26ttWLZsWbj77rsLqsTRivbcc8+CslZYcV+1wlXQBwIECBAgQIAAAQIECGRDYGA2uqmXBAgQIECAAAECBAgQIECAAIHWEYgjk3z84x8Pc+fOrdipkSNHht133z03KkqczmrRokXhueeey/09//zzYenSpSX7xhGFjj322DBt2rRw/vnnh8GDB5fUacWCONLLJz7xiRCTMiotI0aMCBtuuGHub9111w0xaWrWrFkhTmsUEzLKLdEhOt94441h6NCh5apkvuzdlSvDn16ZEw7asHD0nCyeWEwA+t3vflfQ9TvvvDN861vfKihLulJtlJ84zd6UKVPCl770paTNdda79957Q4zZ7svEiRNbLsbcV92vkM8ECBAgQIAAAQIECBAg0JOABKCehGwnQIAAAQIECBAgQIAAAQIECHQTiEkHBx10UIjT8hQvAwYMCF/4whfCEUcckUv+GTiw/E8vMRnowgsvDL/85S9zCUHF7Vx00UW56bDiqEAxWabVl29+85vhtttuK+nmqFGjwpFHHhmOOeaYkumh8pXj6EePPvpo+OlPfxr+53/+J8T17ktMIIlJHldccUX34rb5/PsXXgrfe+yJsPPoUWHjYdlOcpo0aVLJdenttHYxue7BBx8saC/eC6+99lpnWRwhqDcJQOVi9Z/+6Z86222VD+6rVrkS+kGAAAECBAgQIECAAIFsCPTr+H/LrMxGV/WSAAECBAgQIECAAAECBAgQINBcgTjt10477VR2WqoDDjggnHXWWWGbbbZJ3MmY7PLHP/4xfPWrXw1xqp/i5VOf+lS48sori4tL1uNoOmPHji0oHzZsWFi8eHFBWSNWXnnllTBu3LiSUXwOOeSQ8Jvf/CastdZaiQ/75JNPhs997nO5EZCKd4qjtuyyyy7FxZlef3P5irD7LbeH1zpGQPrn9ceE33xwx0yfT+z8dtttl0te634iM2bMCFtvvXX3oh4/X3rppblkunzFjTbaKJd4d/bZZ+eLwtprr50bhSsm3tWyxGSfOKpU9+Xhhx8O73vf+7oX5T43695yX5VcCgUECBAgQIAAAQIECBAg0INA/x6220yAAAECBAgQIECAAAECBAgQINAhEKepikktCxYsKPDo169fOOmkk8LkyZNrSv6JjfTv3z8ceuihIY6Ssummmxa0G1euuuqqcNlll5WUt1LBmWeeWZL8E6c+u/jii2tK/onnNH78+HD11VeHddZZp+QUTz311JKyrBec8fQzueSfeB7XzX413PWP+Vk/pbDvvvuWnEMcxanWpXj6r7333jvEKca6L/Pnzw8xMayWJU6zVzwqUUye22GHHWpppuF13VcNJ3YAAgQIECBAgAABAgQItJ2ABKC2u6ROiAABAgQIECBAgAABAgQIEGiEQEzyue+++0qaPu+888KPfvSjXDJPycaEBXHUlHvuuSe8//3vL9kjTp8VRwNp1aU4USP284ILLghDhgzpVZdjIlS5pKdrrrkmvPzyy71qsxV3em7R4vDfz88q6NqJHVOBvZvxwbqLk3TiCf79738vOM+eVuLIWMUj9MQEoH322ScUT6tXLv6qtR+nFYtT8HVf9t9//xAT+VppKXde7qtWukL6QoAAAQIECBAgQIAAgdYTkADUetdEjwgQIECAAAECBAgQIECAQKYEVi5dElY89GBY9tcbw7I/XR2W33xTWPH4Y2Flx0gb7bLEkUbOOeecktM54ogjwte+9rWS8t4UjBkzJvz+978PgwYNKtg9jjgUpwhrxSXOLP/ss88WdC2O3rP99tsXlNW6Eqdo2mKLLQp2i8eK0zS1y3LS40+G5UXJPo8tfDNc9sJLmT7FmKhTPCVXrQlAMUln3rx5BQ6x3TidXBxdqvty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CBAgQIAAAQIECBBoB4E19t0v9Bs5Iiz5r/8bQoKRSPqNXjsMOebfw4Attsjk6X/2s58N999/f0Hf4zRDxx57bEFZmitz584Njz32WEmTn/nMZ0rKmlUQ+zdt2rTw6quvhtjf+Hf88ceH8ePHp9Kl3XbbLfzLv/xLiKP+dF9mzGhcck334/T288LlK8KPt9u2t7sn2q9fR613Vq4MAzqmIcvCst9++4UHH3yws6t333135+clHc+Q4lF7DjjggM7tPX2IbcdRbrpPyxfvzzg9WFyKE4BictEaHQmJrbq4r1r1yugXAQIECBAgQIAAAQIEWl9AAlDrXyM9JECAAAECBAgQIECAAAECLScwcOddw7CttwnLr/1TWD717yEsXlTSx35rrx3W2HtSWOOAj4R+gweXbM9KQUwAOu6440Kc+iu/TJ48OcSphTbZZJN8Uar/nn/++QXHi41PmDAhbL755qkep57GrrnmmnDiiScWNLHLLruklgAUG44JT8UJQM8880zBMVttZf2hQ8LHh45ttW41tT8xSee0007r7MNDDz0UVnSMlBRHeLrrrrvC22+/3bktfige1adgY9HK6NGjQ4y77klFcfSsr3/967maxaN1tfr0X+6rogtslQABAgQIECBAgAABAgQSC5gCLDGVigQIECBAgAABAgQIECBAgEB3gf4jRnZMB/bFMPycX4eh3/9hGPy1r4dBX/hSGHLUv4Wh/3lKGH7m2WHQJw7KdPJPPN8NN9ww7LXXXt1PPZe8cOaZZxaUpbWybNmykqSX2PZhhx2W1iFSaSc/wkr3xronYXQv7+3ncglPixaVJpv1tn379Y3AxIkTw+BuSYAx4efRRx/NHfy2224r6MQWHSOFxb9aluKEoYcffji3exyV6sknnyxoqtUTgNxXBZfLCgECBAgQIECAAAECBAjUICABqAYsVQkQIECAAAECBAgQIECAAIFSgX79+4cBW24V1th9jzBovw+HgbvuFgZssmlpxQyXfP7zny/p/QUXXBAaMR3Vz3/+8zBnzpyC48Upiw455JCCsmavlJvq69prrw1vvPFGal0rdogNb7nllqm1r6G+ERg6dGjYY489Cg5233335daLE4CKk3kKdqqwUpzUE5N+li5dGu68886CPTbddNOw9dZbF5S12or7qtWuiP4QIECAAAECBAgQIEAgOwISgLJzrfSUAAECBAgQIECAAAECBAgQaJJAHH1n++23Lzj6W2+9FQ4++OCS6YsKKtW4EqdD+uEPf1iyVzz+OuusU1LezIKtttqqpE8x+efss89OrVvF0zfFhuNxLdkTiNOAdV9iAlAc7eqee+7pXhwOOOCAgvUkK7vttlsYNWpUZ9U4vdjjjz+em16ss7DjQ3GiUPdtrfLZfdUqV0I/CBAgQIAAAQIECBAgkD0BCUDZu2Z6TIAAAQIECBAgQIAAAQIECPSxQJy+6KKLLgoDBw4sOPL06dPD4YcfHpYvX15Q3puVp59+Ohx66KG56cW67x9HLWnUdGPdj1Pr5zgq0b/927+V7HbqqaeWjLxSUilBweLFi8Ppp59eUnPSpEklZQpaX2Dfffct6OT9998f4l+cDiy/DBo0KOyzzz751cT/DhgwIBS3/8gjj4TiKel6M7pQ4k6kVNF9lRKkZggQIECAAAECBAgQILAaCkgAWg0vulMmQIAAAQIECBAgQIAAAQIEahfYeeedw/HHH1+y4xVXXBEOPPDAsHDhwpJtSQvuvffe3BRJL774YsEu/TumV7vkkkvCyJEjC8pbZeXoo48Oa665ZkF34shIH/3oR8Ptt99eUF7LSkwK+eQnPxnmzp1bsNv+++8fdtxxx4IyK9kQ+OAHP1gwSk9MnrvxxhsLOj9hwoSSeCqoUGWlOLknJhc98MADnXvEJKGsJI+5rzovmw8ECBAgQIAAAQIECBAgUIOABKAasFQlQIAAAQIECBAgQIAAAQIEVm+Bk046Keywww4lCH/7299yiSlXXnllybZqBYsWLQonnnhi2GuvvcK8efNKqn77298Oe+65Z0l5qxSsvfba4dhjjy3pTkyG2nvvvcMXv/jF8Morr5Rsr1YQE4c+9KEPhZtuuqmk2gknnFBSpiAbAjEBp/voPnGargsuuKCg88VJPAUbe1gpnt4rJuZ1H11ol112CaNHj+6hldbY7L5qjeugFwQIECBAgAABAgQIEMiaQL+VHUvWOq2/BAgQIECAAAECBAgQIECAAIFmCcyePTs3Ok0ctafcsvvuu4fDDjssfOxjHwsbb7xxSZX4U0zc99prrw0XXnhhmDNnTkmdWPCJT3wixCSGOC1ST8urr74axo4dW1AtTiX0ne98p6CstytxGrIjjjii7O7vvPNO+PSnPx3+9Kc/ld0e+xGTgT7+8Y/npmnacMMNw4gRIzrrxhGDnnrqqfDXv/41XHfddRVHDoqJRmeddVbnfj5kT+C8884LRx11VMWOT5s2LXzgAx+ouL2nDePHjw8zZswoWy0m7/3oRz8qu61aYbPuLfdVtatiGwECBAgQIECAAAECBAiUE5AAVE5FGQECBAgQIECAAAECBAgQIECgisCSJUvCV77ylXDZZZdVqRXCRhttFNZff/2w3nrrhbhPTCZ46aWXwuuvv15xv4EDB4af/OQnIY7+069fv4r1um8ol6TQfXu9n+OIPNWm9Iojrey3335h6tSpiQ41ZMiQ3Ggs0aH7KC2Vdj744IPD5ZdfHuKUaJbsCsREr2222absCYwZMybE5LqkMV+ukZgk9qtf/arcpnDnnXfmptkru7FKYTPvLfdVlQtjEwECBAgQIECAAAECBAiUCPjVpIREAQECBAgQIECAAAECBAgQIECgukBMYLn00kvDqaeeWjUpJSb73HfffWHy5MkhThP26KOPVk3+iclCsd5xxx1XVyJE9d6nv3Xo0KG50Xu+8IUvJGo8JkPFZI+ekn9iMkgceeh3v/tdVedEB1Wp6QJbb7112VGxYsfiFF71JP/ENipNITZy5Miw2267xSqZWtxXmbpcOkuAAAECBAgQIECAAIGmC0gAavol0AECBAgQIECAAAECBAgQIEAgqwInnHBCeOihh3KjAcX/sb63Sxz95Pjjj8+1teeee/a2mabuN3r06HDJJZeE2267Lbz3ve+tuy/bbrttuPXWW8N///d/h8GDB9fdngZaQyCOFFVuqZS8U65upbI41Vy5WJk0aVKII2tlcXFfZfGq6TMBAgQIECBAgAABAgSaIyABqDnujkqAAAECBAgQIECAAAECBAi0icAOO+wQ/uu//iu8+OKLuRGBNt5440RnFqezikkP//u//5vb96c//WluqrBEO7dwpZjANG3atPCXv/wlHH300WHzzTdP3NsRI0aEz33uczmTmFiV1WSoxCe8GlYslwAUR/6JIwDVuwwbNixMnDixpJk02i5ptI8L3Fd9DO5wBAgQIECAAAECBAgQyKBAv5UdSwb7rcsECBAgQIAAAQIECBAgQIAAgZYUiD+1zJkzJ8ycOTM8//zzub9Zs2aFOELQpptuGjbbbLPcvzExJo7usTosM2bMCI8//niYN29eeO2113J/8+fPDzHhJ057Fv822WSTsMcee5QdwWV1MHKOBGoVcF/VKqY+AQIECBAgQIAAAQIE2ltAAlB7X19nR4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0OYCpgBr8wvs9AgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBNpbQAJQe19fZ0eAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINDmAhKA2vwCOz0CBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIH2FpAA1N7X19kRIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAi0uYAEoDa/wE6PAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgvQUkALX39XV2BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECbS4gAajNL7DTI0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQaG8BCUDtfX2dHQECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQJsLSABq8wvs9AgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBNpbQAJQe19fZ0eAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINDmAhKA2vwCOz0CBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIH2FpAA1N7X19kRIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAi0uYAEoDa/wE6PAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgvQUkALX39XV2BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECbS4gAajNL7DTI0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQaG8BCUDtfX2dHQECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQJsLSABq8wvs9AgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBNpbQAJQe19fZ0eAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINDmAhKA2vwCOz0CBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIH2FpAA1N7X19kRIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAi0uYAEoDa/wE6PAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgvQUkALX39XV2BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECbS4gAajNL7DTI0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQaG8BCUDtfX2dHQECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQJsLSABq8wvs9AgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBNpbQAJQe19fZ0eAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINDmAhKA2vwCOz0CBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIH2FpAA1N7X19kRIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAi0uYAEoDa/wE6PAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgvQUkALX39XV2BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECbS4gAajNL7DTI0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQaG+B/wdPsYJZSsEtRQAAAABJRU5ErkJggg==" width="1152" /></p>
<div class="sourceCode" id="cb136"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb136-1"><a href="#cb136-1" aria-hidden="true" tabindex="-1"></a><span class="co">#保存</span></span>
<span id="cb136-2"><a href="#cb136-2" aria-hidden="true" tabindex="-1"></a><span class="fu">ggsave</span>(<span class="at">file =</span> <span class="st">&quot;output/graph_unemploy_diff2_on_2nd_safetynet_robust.pdf&quot;</span>, <span class="at">plot =</span> graph_2nd_tier_diff_models, </span>
<span id="cb136-3"><a href="#cb136-3" aria-hidden="true" tabindex="-1"></a>       <span class="at">dpi =</span> dpi_num, <span class="at">width =</span> width_num, <span class="at">height =</span> height_num)     </span></code></pre></div>
<pre><code>## Warning: Removed 4 rows containing missing values (geom_point).</code></pre>
<pre><code>## Warning: Removed 4 rows containing missing values (geom_point).

## Warning: Removed 4 rows containing missing values (geom_point).

## Warning: Removed 4 rows containing missing values (geom_point).</code></pre>
<pre><code>## Warning: Removed 24 rows containing missing values (geom_point).

## Warning: Removed 24 rows containing missing values (geom_point).</code></pre>
</div>
</div>
</div>
<div id="regression-table回帰結果表-without-covar" class="section level1" number="14">
<h1><span class="header-section-number">14</span> Regression table/回帰結果表 without covar</h1>
<div class="sourceCode" id="cb140"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb140-1"><a href="#cb140-1" aria-hidden="true" tabindex="-1"></a><span class="fu">options</span>(<span class="st">&quot;modelsummary_format_numeric_latex&quot;</span> <span class="ot">=</span> <span class="st">&quot;plain&quot;</span>)</span>
<span id="cb140-2"><a href="#cb140-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb140-3"><a href="#cb140-3" aria-hidden="true" tabindex="-1"></a><span class="co"># 列の選択 column order</span></span>
<span id="cb140-4"><a href="#cb140-4" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb140-5"><a href="#cb140-5" aria-hidden="true" tabindex="-1"></a><span class="co"># 緊急小口、総合支援、住居確保、YOYのみ, monthlyhのみ</span></span>
<span id="cb140-6"><a href="#cb140-6" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb140-7"><a href="#cb140-7" aria-hidden="true" tabindex="-1"></a>rows_MONTH <span class="ot">&lt;-</span> <span class="fu">tribble</span>(<span class="sc">~</span>name, <span class="sc">~</span><span class="st">&quot;(1)&quot;</span>, <span class="sc">~</span><span class="st">&quot;(2)&quot;</span>, <span class="sc">~</span><span class="st">&quot;(3)&quot;</span>, <span class="sc">~</span><span class="st">&quot;(4)&quot;</span>, <span class="sc">~</span><span class="st">&quot;(5)&quot;</span>, <span class="sc">~</span><span class="st">&quot;(6)&quot;</span>, </span>
<span id="cb140-8"><a href="#cb140-8" aria-hidden="true" tabindex="-1"></a><span class="st">&quot;Ref. month&quot;</span>, <span class="st">&quot;</span><span class="sc">\\</span><span class="st">footnotesize{Jan.2020}&quot;</span>, <span class="st">&quot;</span><span class="sc">\\</span><span class="st">footnotesize{$</span><span class="sc">\\</span><span class="st">leq$Jan.2020}&quot;</span>,  <span class="st">&quot;</span><span class="sc">\\</span><span class="st">footnotesize{Jan.2020}&quot;</span>, <span class="st">&quot;</span><span class="sc">\\</span><span class="st">footnotesize{$</span><span class="sc">\\</span><span class="st">leq$Jan.2020}&quot;</span>,<span class="st">&quot;</span><span class="sc">\\</span><span class="st">footnotesize{Jan.2020}&quot;</span>, <span class="st">&quot;</span><span class="sc">\\</span><span class="st">footnotesize{$</span><span class="sc">\\</span><span class="st">leq$Jan.2020}&quot;</span>)</span>
<span id="cb140-9"><a href="#cb140-9" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb140-10"><a href="#cb140-10" aria-hidden="true" tabindex="-1"></a><span class="do">## results list</span></span>
<span id="cb140-11"><a href="#cb140-11" aria-hidden="true" tabindex="-1"></a>table_results_MONTH <span class="ot">&lt;-</span> <span class="fu">list</span>()</span>
<span id="cb140-12"><a href="#cb140-12" aria-hidden="true" tabindex="-1"></a>table_results_MONTH[[<span class="st">&quot;(1)&quot;</span>]] <span class="ot">&lt;-</span> results_koguchi_number_WLS</span>
<span id="cb140-13"><a href="#cb140-13" aria-hidden="true" tabindex="-1"></a>table_results_MONTH[[<span class="st">&quot;(2)&quot;</span>]] <span class="ot">&lt;-</span> results_koguchi_number_WLS_onlypost</span>
<span id="cb140-14"><a href="#cb140-14" aria-hidden="true" tabindex="-1"></a>table_results_MONTH[[<span class="st">&quot;(3)&quot;</span>]] <span class="ot">&lt;-</span> results_sogo_number_WLS</span>
<span id="cb140-15"><a href="#cb140-15" aria-hidden="true" tabindex="-1"></a>table_results_MONTH[[<span class="st">&quot;(4)&quot;</span>]] <span class="ot">&lt;-</span> results_sogo_number_WLS_onlypost</span>
<span id="cb140-16"><a href="#cb140-16" aria-hidden="true" tabindex="-1"></a>table_results_MONTH[[<span class="st">&quot;(5)&quot;</span>]] <span class="ot">&lt;-</span> results_jukyo_number_WLS</span>
<span id="cb140-17"><a href="#cb140-17" aria-hidden="true" tabindex="-1"></a>table_results_MONTH[[<span class="st">&quot;(6)&quot;</span>]] <span class="ot">&lt;-</span> results_jukyo_number_WLS_onlypost</span>
<span id="cb140-18"><a href="#cb140-18" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb140-19"><a href="#cb140-19" aria-hidden="true" tabindex="-1"></a><span class="do">## HTML table</span></span>
<span id="cb140-20"><a href="#cb140-20" aria-hidden="true" tabindex="-1"></a><span class="fu">estimates_table_MONTH</span>(<span class="at">df =</span> table_results_MONTH,</span>
<span id="cb140-21"><a href="#cb140-21" aria-hidden="true" tabindex="-1"></a>                      <span class="at">rows =</span> rows_MONTH,</span>
<span id="cb140-22"><a href="#cb140-22" aria-hidden="true" tabindex="-1"></a>                      <span class="at">title_words =</span> <span class="st">&quot;UIbenefit&quot;</span>,</span>
<span id="cb140-23"><a href="#cb140-23" aria-hidden="true" tabindex="-1"></a>                      <span class="at">gof =</span> gm,</span>
<span id="cb140-24"><a href="#cb140-24" aria-hidden="true" tabindex="-1"></a>                      <span class="at">output_style =</span> <span class="st">&quot;html&quot;</span>) <span class="sc">%&gt;%</span></span>
<span id="cb140-25"><a href="#cb140-25" aria-hidden="true" tabindex="-1"></a>    kableExtra<span class="sc">::</span><span class="fu">add_header_above</span>(<span class="fu">c</span>(<span class="st">&quot; &quot;</span> <span class="ot">=</span> <span class="dv">1</span>, <span class="st">&quot;Emergency S.A.&quot;</span> <span class="ot">=</span> <span class="dv">2</span>, <span class="st">&quot;General Support&quot;</span> <span class="ot">=</span> <span class="dv">2</span>, <span class="st">&quot;Housing Security&quot;</span> <span class="ot">=</span> <span class="dv">2</span>))</span></code></pre></div>
<pre><code>## 14 coefficients  not defined because the design matrix is rank deficient</code></pre>
<pre><code>## 2 coefficients  not defined because the design matrix is rank deficient</code></pre>
<pre><code>## 14 coefficients  not defined because the design matrix is rank deficient</code></pre>
<pre><code>## 2 coefficients  not defined because the design matrix is rank deficient</code></pre>
<table class="table" style="width: auto !important; margin-left: auto; margin-right: auto;">
<caption>
UIbenefit
</caption>
<thead>
<tr>
<th style="empty-cells: hide;border-bottom:hidden;" colspan="1">
</th>
<th style="border-bottom:hidden;padding-bottom:0; padding-left:3px;padding-right:3px;text-align: center; " colspan="2">
<div style="border-bottom: 1px solid #ddd; padding-bottom: 5px; ">
Emergency S.A.
</div>
</th>
<th style="border-bottom:hidden;padding-bottom:0; padding-left:3px;padding-right:3px;text-align: center; " colspan="2">
<div style="border-bottom: 1px solid #ddd; padding-bottom: 5px; ">
General Support
</div>
</th>
<th style="border-bottom:hidden;padding-bottom:0; padding-left:3px;padding-right:3px;text-align: center; " colspan="2">
<div style="border-bottom: 1px solid #ddd; padding-bottom: 5px; ">
Housing Security
</div>
</th>
</tr>
<tr>
<th style="text-align:left;">
</th>
<th style="text-align:center;">
<ol style="list-style-type: decimal">
<li></th>
<th style="text-align:center;">
<ol start="2" style="list-style-type: decimal">
<li></th>
<th style="text-align:center;">
<ol start="3" style="list-style-type: decimal">
<li></th>
<th style="text-align:center;">
<ol start="4" style="list-style-type: decimal">
<li></th>
<th style="text-align:center;">
<ol start="5" style="list-style-type: decimal">
<li></th>
<th style="text-align:center;">
<ol start="6" style="list-style-type: decimal">
<li></th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;">
Apr. 2020
</td>
<td style="text-align:center;">
18.723
</td>
<td style="text-align:center;">
18.693
</td>
<td style="text-align:center;">
−0.395
</td>
<td style="text-align:center;">
−0.410
</td>
<td style="text-align:center;">
1.103
</td>
<td style="text-align:center;">
1.028
</td>
</tr>
<tr>
<td style="text-align:left;">
</td>
<td style="text-align:center;">
(21.950)
</td>
<td style="text-align:center;">
(21.755)
</td>
<td style="text-align:center;">
(1.539)
</td>
<td style="text-align:center;">
(1.522)
</td>
<td style="text-align:center;">
(0.730)
</td>
<td style="text-align:center;">
(0.711)
</td>
</tr>
<tr>
<td style="text-align:left;">
May. 2020
</td>
<td style="text-align:center;">
73.840
</td>
<td style="text-align:center;">
73.809
</td>
<td style="text-align:center;">
9.879
</td>
<td style="text-align:center;">
9.863
</td>
<td style="text-align:center;">
15.311
</td>
<td style="text-align:center;">
15.236
</td>
</tr>
<tr>
<td style="text-align:left;">
</td>
<td style="text-align:center;">
(42.803)
</td>
<td style="text-align:center;">
(42.459)
</td>
<td style="text-align:center;">
(12.245)
</td>
<td style="text-align:center;">
(12.136)
</td>
<td style="text-align:center;">
(6.970)
</td>
<td style="text-align:center;">
(6.932)
</td>
</tr>
<tr>
<td style="text-align:left;">
Jun. 2020
</td>
<td style="text-align:center;">
88.768
</td>
<td style="text-align:center;">
88.737
</td>
<td style="text-align:center;">
54.387
</td>
<td style="text-align:center;">
54.371
</td>
<td style="text-align:center;">
27.584
</td>
<td style="text-align:center;">
27.509
</td>
</tr>
<tr>
<td style="text-align:left;">
</td>
<td style="text-align:center;">
(32.722)
</td>
<td style="text-align:center;">
(32.461)
</td>
<td style="text-align:center;">
(29.934)
</td>
<td style="text-align:center;">
(29.696)
</td>
<td style="text-align:center;">
(9.358)
</td>
<td style="text-align:center;">
(9.317)
</td>
</tr>
<tr>
<td style="text-align:left;">
Jul. 2020
</td>
<td style="text-align:center;">
34.689
</td>
<td style="text-align:center;">
34.658
</td>
<td style="text-align:center;">
82.444
</td>
<td style="text-align:center;">
82.429
</td>
<td style="text-align:center;">
15.334
</td>
<td style="text-align:center;">
15.259
</td>
</tr>
<tr>
<td style="text-align:left;">
</td>
<td style="text-align:center;">
(21.224)
</td>
<td style="text-align:center;">
(21.043)
</td>
<td style="text-align:center;">
(31.787)
</td>
<td style="text-align:center;">
(31.538)
</td>
<td style="text-align:center;">
(5.316)
</td>
<td style="text-align:center;">
(5.281)
</td>
</tr>
<tr>
<td style="text-align:left;">
Aug. 2020
</td>
<td style="text-align:center;">
27.162
</td>
<td style="text-align:center;">
27.131
</td>
<td style="text-align:center;">
52.064
</td>
<td style="text-align:center;">
52.048
</td>
<td style="text-align:center;">
6.615
</td>
<td style="text-align:center;">
6.540
</td>
</tr>
<tr>
<td style="text-align:left;">
</td>
<td style="text-align:center;">
(14.477)
</td>
<td style="text-align:center;">
(14.347)
</td>
<td style="text-align:center;">
(16.912)
</td>
<td style="text-align:center;">
(16.772)
</td>
<td style="text-align:center;">
(2.999)
</td>
<td style="text-align:center;">
(2.972)
</td>
</tr>
<tr>
<td style="text-align:left;">
Sep. 2020
</td>
<td style="text-align:center;">
21.875
</td>
<td style="text-align:center;">
21.844
</td>
<td style="text-align:center;">
43.071
</td>
<td style="text-align:center;">
43.055
</td>
<td style="text-align:center;">
4.442
</td>
<td style="text-align:center;">
4.367
</td>
</tr>
<tr>
<td style="text-align:left;box-shadow: 0px 1px">
</td>
<td style="text-align:center;box-shadow: 0px 1px">
(15.342)
</td>
<td style="text-align:center;box-shadow: 0px 1px">
(15.209)
</td>
<td style="text-align:center;box-shadow: 0px 1px">
(23.620)
</td>
<td style="text-align:center;box-shadow: 0px 1px">
(23.427)
</td>
<td style="text-align:center;box-shadow: 0px 1px">
(2.152)
</td>
<td style="text-align:center;box-shadow: 0px 1px">
(2.124)
</td>
</tr>
<tr>
<td style="text-align:left;">
Sample size
</td>
<td style="text-align:center;">
893
</td>
<td style="text-align:center;">
893
</td>
<td style="text-align:center;">
893
</td>
<td style="text-align:center;">
893
</td>
<td style="text-align:center;">
423
</td>
<td style="text-align:center;">
423
</td>
</tr>
<tr>
<td style="text-align:left;">
R2 Adj.
</td>
<td style="text-align:center;">
0.795
</td>
<td style="text-align:center;">
0.798
</td>
<td style="text-align:center;">
0.722
</td>
<td style="text-align:center;">
0.726
</td>
<td style="text-align:center;">
0.749
</td>
<td style="text-align:center;">
0.750
</td>
</tr>
<tr>
<td style="text-align:left;">
Ref. month
</td>
<td style="text-align:center;">
{Jan.2020}
</td>
<td style="text-align:center;">
{<span class="math inline">\(\leq\)</span>Jan.2020}
</td>
<td style="text-align:center;">
{Jan.2020}
</td>
<td style="text-align:center;">
{<span class="math inline">\(\leq\)</span>Jan.2020}
</td>
<td style="text-align:center;">
{Jan.2020}
</td>
<td style="text-align:center;">
{<span class="math inline">\(\leq\)</span>Jan.2020}
</td>
</tr>
</tbody>
</table></li>
</ol></li>
</ol></li>
</ol></li>
</ol></li>
</ol></li>
</ol>
<div class="sourceCode" id="cb145"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb145-1"><a href="#cb145-1" aria-hidden="true" tabindex="-1"></a><span class="do">## Latex table</span></span>
<span id="cb145-2"><a href="#cb145-2" aria-hidden="true" tabindex="-1"></a><span class="fu">estimates_table_MONTH</span>(<span class="at">df =</span> table_results_MONTH,</span>
<span id="cb145-3"><a href="#cb145-3" aria-hidden="true" tabindex="-1"></a>                      <span class="at">rows =</span> rows_MONTH,</span>
<span id="cb145-4"><a href="#cb145-4" aria-hidden="true" tabindex="-1"></a>                      <span class="at">gof =</span> gm,</span>
<span id="cb145-5"><a href="#cb145-5" aria-hidden="true" tabindex="-1"></a>                      <span class="at">title_words =</span> <span class="st">&quot;Estimation results for second-tier safety net, without covariates&quot;</span>, </span>
<span id="cb145-6"><a href="#cb145-6" aria-hidden="true" tabindex="-1"></a>                      <span class="at">output_style =</span> <span class="st">&quot;latex&quot;</span>) <span class="sc">%&gt;%</span> </span>
<span id="cb145-7"><a href="#cb145-7" aria-hidden="true" tabindex="-1"></a>  kableExtra<span class="sc">::</span><span class="fu">add_header_above</span>(<span class="fu">c</span>(<span class="st">&quot; &quot;</span> <span class="ot">=</span> <span class="dv">1</span>, <span class="st">&quot;Emergency S.A.&quot;</span> <span class="ot">=</span> <span class="dv">2</span>, <span class="st">&quot;General Support&quot;</span> <span class="ot">=</span> <span class="dv">2</span>, <span class="st">&quot;Housing Security&quot;</span> <span class="ot">=</span> <span class="dv">2</span>)) <span class="sc">%&gt;%</span></span>
<span id="cb145-8"><a href="#cb145-8" aria-hidden="true" tabindex="-1"></a>  kableExtra<span class="sc">::</span><span class="fu">add_footnote</span>(<span class="fu">c</span>(<span class="st">&quot;Notes: Columns (1), (3), and (5) present baseline WLS estimates shown in  the left-hand side of Figure </span><span class="sc">\\</span><span class="st">ref{fig:DID_unemploy_on_2nd_safetynet}. Columns (2), (4), and (6) present WLS estimates based on the model </span><span class="sc">\\</span><span class="st">eqref{eq:did_model_ver2}, weighted by prefecture population size, but individual linear trends are not incorporated. The treatment variable is the COVID-19-induced employment shock, which is calculated as equation </span><span class="sc">\\</span><span class="st">eqref{eq:employment_shock}. Robust standard errors are clustered at the prefecture level.&quot;</span>),<span class="at">threeparttable =</span> <span class="cn">TRUE</span>, <span class="at">notation =</span> <span class="st">&quot;none&quot;</span>,<span class="at">escape =</span> <span class="cn">FALSE</span>) <span class="sc">%&gt;%</span> </span>
<span id="cb145-9"><a href="#cb145-9" aria-hidden="true" tabindex="-1"></a>  kableExtra<span class="sc">::</span><span class="fu">column_spec</span>(<span class="dv">2</span><span class="sc">:</span><span class="dv">5</span>, <span class="at">width =</span> <span class="st">&quot;1.5cm&quot;</span>) <span class="sc">%&gt;%</span> </span>
<span id="cb145-10"><a href="#cb145-10" aria-hidden="true" tabindex="-1"></a>  kableExtra<span class="sc">::</span><span class="fu">save_kable</span>(<span class="st">&quot;output/table_unemploy_diff2_on_2nd_safetynet_robust.tex&quot;</span>)</span></code></pre></div>
<pre><code>## 14 coefficients  not defined because the design matrix is rank deficient
## 
## 2 coefficients  not defined because the design matrix is rank deficient</code></pre>
<pre><code>## 14 coefficients  not defined because the design matrix is rank deficient</code></pre>
<pre><code>## 2 coefficients  not defined because the design matrix is rank deficient</code></pre>
</div>
<div id="regression-table回帰結果表-with-covar" class="section level1" number="15">
<h1><span class="header-section-number">15</span> Regression table/回帰結果表 with covar</h1>
<div class="sourceCode" id="cb149"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb149-1"><a href="#cb149-1" aria-hidden="true" tabindex="-1"></a><span class="co"># 列の選択 column order</span></span>
<span id="cb149-2"><a href="#cb149-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb149-3"><a href="#cb149-3" aria-hidden="true" tabindex="-1"></a><span class="co"># 緊急小口、総合支援、住居確保、YOYのみ, monthlyhのみ</span></span>
<span id="cb149-4"><a href="#cb149-4" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb149-5"><a href="#cb149-5" aria-hidden="true" tabindex="-1"></a>rows_MONTH <span class="ot">&lt;-</span> <span class="fu">tribble</span>(<span class="sc">~</span>name, <span class="sc">~</span><span class="st">&quot;(1)&quot;</span>, <span class="sc">~</span><span class="st">&quot;(2)&quot;</span>, <span class="sc">~</span><span class="st">&quot;(3)&quot;</span>, <span class="sc">~</span><span class="st">&quot;(4)&quot;</span>, <span class="sc">~</span><span class="st">&quot;(5)&quot;</span>, <span class="sc">~</span><span class="st">&quot;(6)&quot;</span>, </span>
<span id="cb149-6"><a href="#cb149-6" aria-hidden="true" tabindex="-1"></a><span class="st">&quot;Ref. month&quot;</span>, <span class="st">&quot;</span><span class="sc">\\</span><span class="st">footnotesize{Jan.2020}&quot;</span>, <span class="st">&quot;</span><span class="sc">\\</span><span class="st">footnotesize{$</span><span class="sc">\\</span><span class="st">leq$Jan.2020}&quot;</span>,  <span class="st">&quot;</span><span class="sc">\\</span><span class="st">footnotesize{Jan.2020}&quot;</span>, <span class="st">&quot;</span><span class="sc">\\</span><span class="st">footnotesize{$</span><span class="sc">\\</span><span class="st">leq$Jan.2020}&quot;</span>,<span class="st">&quot;</span><span class="sc">\\</span><span class="st">footnotesize{Jan.2020}&quot;</span>, <span class="st">&quot;</span><span class="sc">\\</span><span class="st">footnotesize{$</span><span class="sc">\\</span><span class="st">leq$Jan.2020}&quot;</span>)</span>
<span id="cb149-7"><a href="#cb149-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb149-8"><a href="#cb149-8" aria-hidden="true" tabindex="-1"></a><span class="do">## results list</span></span>
<span id="cb149-9"><a href="#cb149-9" aria-hidden="true" tabindex="-1"></a>table_results_MONTH <span class="ot">&lt;-</span> <span class="fu">list</span>()</span>
<span id="cb149-10"><a href="#cb149-10" aria-hidden="true" tabindex="-1"></a>table_results_MONTH[[<span class="st">&quot;(1)&quot;</span>]] <span class="ot">&lt;-</span> results_koguchi_number_WLS_covar</span>
<span id="cb149-11"><a href="#cb149-11" aria-hidden="true" tabindex="-1"></a>table_results_MONTH[[<span class="st">&quot;(2)&quot;</span>]] <span class="ot">&lt;-</span> results_koguchi_number_WLS_covar_onlypost</span>
<span id="cb149-12"><a href="#cb149-12" aria-hidden="true" tabindex="-1"></a>table_results_MONTH[[<span class="st">&quot;(3)&quot;</span>]] <span class="ot">&lt;-</span> results_sogo_number_WLS_covar</span>
<span id="cb149-13"><a href="#cb149-13" aria-hidden="true" tabindex="-1"></a>table_results_MONTH[[<span class="st">&quot;(4)&quot;</span>]] <span class="ot">&lt;-</span> results_sogo_number_WLS_covar_onlypost</span>
<span id="cb149-14"><a href="#cb149-14" aria-hidden="true" tabindex="-1"></a>table_results_MONTH[[<span class="st">&quot;(5)&quot;</span>]] <span class="ot">&lt;-</span> results_jukyo_number_WLS_covar</span>
<span id="cb149-15"><a href="#cb149-15" aria-hidden="true" tabindex="-1"></a>table_results_MONTH[[<span class="st">&quot;(6)&quot;</span>]] <span class="ot">&lt;-</span> results_jukyo_number_WLS_covar_onlypost</span>
<span id="cb149-16"><a href="#cb149-16" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb149-17"><a href="#cb149-17" aria-hidden="true" tabindex="-1"></a><span class="do">## HTML table</span></span>
<span id="cb149-18"><a href="#cb149-18" aria-hidden="true" tabindex="-1"></a><span class="fu">estimates_table_MONTH</span>(<span class="at">df =</span> table_results_MONTH,</span>
<span id="cb149-19"><a href="#cb149-19" aria-hidden="true" tabindex="-1"></a>                      <span class="at">rows =</span> rows_MONTH,</span>
<span id="cb149-20"><a href="#cb149-20" aria-hidden="true" tabindex="-1"></a>                      <span class="at">title_words =</span> <span class="st">&quot;UIbenefit&quot;</span>,</span>
<span id="cb149-21"><a href="#cb149-21" aria-hidden="true" tabindex="-1"></a>                      <span class="at">gof =</span> gm,</span>
<span id="cb149-22"><a href="#cb149-22" aria-hidden="true" tabindex="-1"></a>                      <span class="at">output_style =</span> <span class="st">&quot;html&quot;</span>) <span class="sc">%&gt;%</span></span>
<span id="cb149-23"><a href="#cb149-23" aria-hidden="true" tabindex="-1"></a>    kableExtra<span class="sc">::</span><span class="fu">add_header_above</span>(<span class="fu">c</span>(<span class="st">&quot; &quot;</span> <span class="ot">=</span> <span class="dv">1</span>, <span class="st">&quot;Emergency S.A.&quot;</span> <span class="ot">=</span> <span class="dv">2</span>, <span class="st">&quot;General Support&quot;</span> <span class="ot">=</span> <span class="dv">2</span>, <span class="st">&quot;Housing Security&quot;</span> <span class="ot">=</span> <span class="dv">2</span>))</span></code></pre></div>
<pre><code>## 30 coefficients  not defined because the design matrix is rank deficient</code></pre>
<pre><code>## 18 coefficients  not defined because the design matrix is rank deficient</code></pre>
<pre><code>## 30 coefficients  not defined because the design matrix is rank deficient</code></pre>
<pre><code>## 18 coefficients  not defined because the design matrix is rank deficient</code></pre>
<table class="table" style="width: auto !important; margin-left: auto; margin-right: auto;">
<caption>
UIbenefit
</caption>
<thead>
<tr>
<th style="empty-cells: hide;border-bottom:hidden;" colspan="1">
</th>
<th style="border-bottom:hidden;padding-bottom:0; padding-left:3px;padding-right:3px;text-align: center; " colspan="2">
<div style="border-bottom: 1px solid #ddd; padding-bottom: 5px; ">
Emergency S.A.
</div>
</th>
<th style="border-bottom:hidden;padding-bottom:0; padding-left:3px;padding-right:3px;text-align: center; " colspan="2">
<div style="border-bottom: 1px solid #ddd; padding-bottom: 5px; ">
General Support
</div>
</th>
<th style="border-bottom:hidden;padding-bottom:0; padding-left:3px;padding-right:3px;text-align: center; " colspan="2">
<div style="border-bottom: 1px solid #ddd; padding-bottom: 5px; ">
Housing Security
</div>
</th>
</tr>
<tr>
<th style="text-align:left;">
</th>
<th style="text-align:center;">
<ol style="list-style-type: decimal">
<li></th>
<th style="text-align:center;">
<ol start="2" style="list-style-type: decimal">
<li></th>
<th style="text-align:center;">
<ol start="3" style="list-style-type: decimal">
<li></th>
<th style="text-align:center;">
<ol start="4" style="list-style-type: decimal">
<li></th>
<th style="text-align:center;">
<ol start="5" style="list-style-type: decimal">
<li></th>
<th style="text-align:center;">
<ol start="6" style="list-style-type: decimal">
<li></th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;">
Apr. 2020
</td>
<td style="text-align:center;">
4.941
</td>
<td style="text-align:center;">
4.930
</td>
<td style="text-align:center;">
0.002
</td>
<td style="text-align:center;">
0.008
</td>
<td style="text-align:center;">
−1.072
</td>
<td style="text-align:center;">
−1.147
</td>
</tr>
<tr>
<td style="text-align:left;">
</td>
<td style="text-align:center;">
(27.175)
</td>
<td style="text-align:center;">
(26.958)
</td>
<td style="text-align:center;">
(3.346)
</td>
<td style="text-align:center;">
(3.318)
</td>
<td style="text-align:center;">
(0.807)
</td>
<td style="text-align:center;">
(0.804)
</td>
</tr>
<tr>
<td style="text-align:left;">
May. 2020
</td>
<td style="text-align:center;">
60.029
</td>
<td style="text-align:center;">
60.018
</td>
<td style="text-align:center;">
9.231
</td>
<td style="text-align:center;">
9.237
</td>
<td style="text-align:center;">
−5.270
</td>
<td style="text-align:center;">
−5.345
</td>
</tr>
<tr>
<td style="text-align:left;">
</td>
<td style="text-align:center;">
(50.569)
</td>
<td style="text-align:center;">
(50.170)
</td>
<td style="text-align:center;">
(18.599)
</td>
<td style="text-align:center;">
(18.451)
</td>
<td style="text-align:center;">
(3.709)
</td>
<td style="text-align:center;">
(3.697)
</td>
</tr>
<tr>
<td style="text-align:left;">
Jun. 2020
</td>
<td style="text-align:center;">
49.230
</td>
<td style="text-align:center;">
49.219
</td>
<td style="text-align:center;">
62.337
</td>
<td style="text-align:center;">
62.343
</td>
<td style="text-align:center;">
−4.337
</td>
<td style="text-align:center;">
−4.412
</td>
</tr>
<tr>
<td style="text-align:left;">
</td>
<td style="text-align:center;">
(52.096)
</td>
<td style="text-align:center;">
(51.683)
</td>
<td style="text-align:center;">
(34.330)
</td>
<td style="text-align:center;">
(34.059)
</td>
<td style="text-align:center;">
(2.750)
</td>
<td style="text-align:center;">
(2.745)
</td>
</tr>
<tr>
<td style="text-align:left;">
Jul. 2020
</td>
<td style="text-align:center;">
13.609
</td>
<td style="text-align:center;">
13.598
</td>
<td style="text-align:center;">
87.776
</td>
<td style="text-align:center;">
87.782
</td>
<td style="text-align:center;">
−1.145
</td>
<td style="text-align:center;">
−1.220
</td>
</tr>
<tr>
<td style="text-align:left;">
</td>
<td style="text-align:center;">
(28.076)
</td>
<td style="text-align:center;">
(27.849)
</td>
<td style="text-align:center;">
(39.148)
</td>
<td style="text-align:center;">
(38.840)
</td>
<td style="text-align:center;">
(2.236)
</td>
<td style="text-align:center;">
(2.225)
</td>
</tr>
<tr>
<td style="text-align:left;">
Aug. 2020
</td>
<td style="text-align:center;">
20.326
</td>
<td style="text-align:center;">
20.315
</td>
<td style="text-align:center;">
35.863
</td>
<td style="text-align:center;">
35.869
</td>
<td style="text-align:center;">
−1.958
</td>
<td style="text-align:center;">
−2.033
</td>
</tr>
<tr>
<td style="text-align:left;">
</td>
<td style="text-align:center;">
(20.236)
</td>
<td style="text-align:center;">
(20.073)
</td>
<td style="text-align:center;">
(20.370)
</td>
<td style="text-align:center;">
(20.207)
</td>
<td style="text-align:center;">
(0.986)
</td>
<td style="text-align:center;">
(0.985)
</td>
</tr>
<tr>
<td style="text-align:left;">
Sep. 2020
</td>
<td style="text-align:center;">
36.598
</td>
<td style="text-align:center;">
36.587
</td>
<td style="text-align:center;">
26.989
</td>
<td style="text-align:center;">
26.995
</td>
<td style="text-align:center;">
−1.155
</td>
<td style="text-align:center;">
−1.230
</td>
</tr>
<tr>
<td style="text-align:left;box-shadow: 0px 1px">
</td>
<td style="text-align:center;box-shadow: 0px 1px">
(24.363)
</td>
<td style="text-align:center;box-shadow: 0px 1px">
(24.173)
</td>
<td style="text-align:center;box-shadow: 0px 1px">
(20.992)
</td>
<td style="text-align:center;box-shadow: 0px 1px">
(20.825)
</td>
<td style="text-align:center;box-shadow: 0px 1px">
(0.682)
</td>
<td style="text-align:center;box-shadow: 0px 1px">
(0.676)
</td>
</tr>
<tr>
<td style="text-align:left;">
Sample size
</td>
<td style="text-align:center;">
893
</td>
<td style="text-align:center;">
893
</td>
<td style="text-align:center;">
893
</td>
<td style="text-align:center;">
893
</td>
<td style="text-align:center;">
423
</td>
<td style="text-align:center;">
423
</td>
</tr>
<tr>
<td style="text-align:left;">
R2 Adj.
</td>
<td style="text-align:center;">
0.870
</td>
<td style="text-align:center;">
0.872
</td>
<td style="text-align:center;">
0.852
</td>
<td style="text-align:center;">
0.855
</td>
<td style="text-align:center;">
0.963
</td>
<td style="text-align:center;">
0.963
</td>
</tr>
<tr>
<td style="text-align:left;">
Ref. month
</td>
<td style="text-align:center;">
{Jan.2020}
</td>
<td style="text-align:center;">
{<span class="math inline">\(\leq\)</span>Jan.2020}
</td>
<td style="text-align:center;">
{Jan.2020}
</td>
<td style="text-align:center;">
{<span class="math inline">\(\leq\)</span>Jan.2020}
</td>
<td style="text-align:center;">
{Jan.2020}
</td>
<td style="text-align:center;">
{<span class="math inline">\(\leq\)</span>Jan.2020}
</td>
</tr>
</tbody>
</table></li>
</ol></li>
</ol></li>
</ol></li>
</ol></li>
</ol></li>
</ol>
<div class="sourceCode" id="cb154"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb154-1"><a href="#cb154-1" aria-hidden="true" tabindex="-1"></a><span class="do">## Latex table</span></span>
<span id="cb154-2"><a href="#cb154-2" aria-hidden="true" tabindex="-1"></a><span class="fu">estimates_table_MONTH</span>(<span class="at">df =</span> table_results_MONTH,</span>
<span id="cb154-3"><a href="#cb154-3" aria-hidden="true" tabindex="-1"></a>                      <span class="at">rows =</span> rows_MONTH,</span>
<span id="cb154-4"><a href="#cb154-4" aria-hidden="true" tabindex="-1"></a>                      <span class="at">gof =</span> gm,</span>
<span id="cb154-5"><a href="#cb154-5" aria-hidden="true" tabindex="-1"></a>                      <span class="at">title_words =</span> <span class="st">&quot;Estimation results for second-tier safety net, with covariates&quot;</span>, </span>
<span id="cb154-6"><a href="#cb154-6" aria-hidden="true" tabindex="-1"></a>                      <span class="at">output_style =</span> <span class="st">&quot;latex&quot;</span>) <span class="sc">%&gt;%</span> </span>
<span id="cb154-7"><a href="#cb154-7" aria-hidden="true" tabindex="-1"></a>  kableExtra<span class="sc">::</span><span class="fu">add_header_above</span>(<span class="fu">c</span>(<span class="st">&quot; &quot;</span> <span class="ot">=</span> <span class="dv">1</span>, <span class="st">&quot;Emergency S.A.&quot;</span> <span class="ot">=</span> <span class="dv">2</span>, <span class="st">&quot;General Support&quot;</span> <span class="ot">=</span> <span class="dv">2</span>, <span class="st">&quot;Housing Security&quot;</span> <span class="ot">=</span> <span class="dv">2</span>)) <span class="sc">%&gt;%</span></span>
<span id="cb154-8"><a href="#cb154-8" aria-hidden="true" tabindex="-1"></a>  kableExtra<span class="sc">::</span><span class="fu">add_footnote</span>(<span class="fu">c</span>(<span class="st">&quot;Notes:  Columns (1), (3), and (5) present WLS estimates shown in the right-hand side of Figure </span><span class="sc">\\</span><span class="st">ref{fig:DID_unemploy_on_2nd_safetynet}. Columns (2), (4), and (6) present WLS estimates based on the model </span><span class="sc">\\</span><span class="st">eqref{eq:did_model_ver2}, weighted by prefecture population size, but individual linear trends are not incorporated and eight covariates are additionally controlled for. The treatment variable is the COVID-19-induced employment shock, which is calculated as equation </span><span class="sc">\\</span><span class="st">eqref{eq:employment_shock}. Robust standard errors are clustered at the prefecture level.&quot;</span>),<span class="at">threeparttable =</span> <span class="cn">TRUE</span>, <span class="at">notation =</span> <span class="st">&quot;none&quot;</span>,<span class="at">escape =</span> <span class="cn">FALSE</span>) <span class="sc">%&gt;%</span> </span>
<span id="cb154-9"><a href="#cb154-9" aria-hidden="true" tabindex="-1"></a>  kableExtra<span class="sc">::</span><span class="fu">column_spec</span>(<span class="dv">2</span><span class="sc">:</span><span class="dv">5</span>, <span class="at">width =</span> <span class="st">&quot;1.5cm&quot;</span>) <span class="sc">%&gt;%</span> </span>
<span id="cb154-10"><a href="#cb154-10" aria-hidden="true" tabindex="-1"></a>  kableExtra<span class="sc">::</span><span class="fu">save_kable</span>(<span class="st">&quot;output/table_unemploy_diff2_on_2nd_safetynet_robust_covar.tex&quot;</span>)</span></code></pre></div>
<pre><code>## 30 coefficients  not defined because the design matrix is rank deficient
## 
## 18 coefficients  not defined because the design matrix is rank deficient</code></pre>
<pre><code>## 30 coefficients  not defined because the design matrix is rank deficient</code></pre>
<pre><code>## 18 coefficients  not defined because the design matrix is rank deficient</code></pre>
</div>



</div>
</div>

</div>

<script>

// add bootstrap table styles to pandoc tables
function bootstrapStylePandocTables() {
  $('tr.odd').parent('tbody').parent('table').addClass('table table-condensed');
}
$(document).ready(function () {
  bootstrapStylePandocTables();
});


</script>

<!-- tabsets -->

<script>
$(document).ready(function () {
  window.buildTabsets("TOC");
});

$(document).ready(function () {
  $('.tabset-dropdown > .nav-tabs > li').click(function () {
    $(this).parent().toggleClass('nav-tabs-open');
  });
});
</script>

<!-- code folding -->
<script>
$(document).ready(function () {
  window.initializeCodeFolding("hide" === "show");
});
</script>

<script>
$(document).ready(function ()  {

    // temporarily add toc-ignore selector to headers for the consistency with Pandoc
    $('.unlisted.unnumbered').addClass('toc-ignore')

    // move toc-ignore selectors from section div to header
    $('div.section.toc-ignore')
        .removeClass('toc-ignore')
        .children('h1,h2,h3,h4,h5').addClass('toc-ignore');

    // establish options
    var options = {
      selectors: "h1,h2,h3",
      theme: "bootstrap3",
      context: '.toc-content',
      hashGenerator: function (text) {
        return text.replace(/[.\\/?&!#<>]/g, '').replace(/\s/g, '_');
      },
      ignoreSelector: ".toc-ignore",
      scrollTo: 0
    };
    options.showAndHide = true;
    options.smoothScroll = true;

    // tocify
    var toc = $("#TOC").tocify(options).data("toc-tocify");
});
</script>

<!-- dynamically load mathjax for compatibility with self-contained -->
<script>
  (function () {
    var script = document.createElement("script");
    script.type = "text/javascript";
    script.src  = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
    document.getElementsByTagName("head")[0].appendChild(script);
  })();
</script>

</body>
</html>
